專利名稱:一種內(nèi)存數(shù)據(jù)緩沖方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)領(lǐng)域,尤其涉及一種內(nèi)存數(shù)據(jù)緩沖方法及裝置。
背景技術(shù):
現(xiàn)代的高級計算機(jī)系統(tǒng)都有多個CPU組成,為了提高CPU的訪問數(shù)據(jù)的速率,降低訪存延遲,都會在CPU上實現(xiàn)Cache功能,它的訪問速度一般都比直接訪問內(nèi)存快一個數(shù)量級以上的。由于每個CPU都會實現(xiàn)一塊Cache,因此同一地址的內(nèi)存會被緩存到不同的CPU Cache上,如果某個CPU對該地址進(jìn)行寫操作,必須使其他CPU中的緩存失效,如果緩存中有臟數(shù)據(jù)必須回寫到內(nèi)存。為了完成上述功能,現(xiàn)代多處理器計算機(jī)在內(nèi)存總線上實現(xiàn)了緩存一致性協(xié)議(Cache Coherence Protocol),比如Intel CPU平臺上的QPI總線、AMT(PU平臺上的HT總線都實現(xiàn)了緩存一致性協(xié)議。常見的典型緩存一致性協(xié)議包括SourceSnoop和Home Snoop兩種類型。為了實現(xiàn)緩存一致性協(xié)議,一般在CPU側(cè)實現(xiàn)緩存代理(Cache Agent)功能,在內(nèi)存?zhèn)葘崿F(xiàn)內(nèi)存代理(Home Agent)功能,兩者配合實現(xiàn)緩存一致性協(xié)議。Cache Agent主要實現(xiàn)CPU Cache的管理,并且發(fā)起對內(nèi)存的訪問功能,并且響應(yīng)其他請求的偵聽請求。Home Agent主要實現(xiàn)多個CA對同一地址的串行化訪問和對不同地址的并行化訪問。Home Snoop緩存一致性協(xié)議,所有的偵聽請求都是由內(nèi)存代理發(fā)送。為了減少偵聽發(fā)送的數(shù)量,一般會在內(nèi)存中存儲一個目錄,用于表示該地址內(nèi)存在各個緩存代理中的狀態(tài)。當(dāng)內(nèi)存代理接收一個緩存代理的請求時,就會從內(nèi)存中讀取該內(nèi)存數(shù)據(jù)和對應(yīng)的目錄,如果內(nèi)存目錄表示沒有緩存代理擁有該內(nèi)存數(shù)據(jù),內(nèi)存代理直接把數(shù)據(jù)發(fā)送給請求者緩存代理;如果表示有一個或者多個緩存代理擁有該內(nèi)存數(shù)據(jù),內(nèi)存會發(fā)送偵聽到目錄表示的緩存代理去,等待所有的偵聽響應(yīng)完畢后發(fā)送請求響應(yīng)給請求者緩存代理。在CPU中的緩存一般有4種狀態(tài),Modef ied (臟),Exclusive (獨占),Shared (共享),Invalid(無效)。為了滿足緩存一致性協(xié)議,對于同一地址的Μ/E狀態(tài)的緩存數(shù)據(jù)只能在一個緩存代理存在,這兩個狀態(tài)的數(shù)據(jù)CPU可以進(jìn)行直接的讀寫操作;對于同一地址的S狀態(tài),可以處于多個CPU的緩存代理中,但是該數(shù)據(jù)只能被CPU進(jìn)行讀操作;對于無效狀態(tài),表示緩存代理中沒有該地址的數(shù)據(jù)。區(qū)別于緩存代理中的緩存狀態(tài),在內(nèi)存目錄中記錄的狀態(tài)不會區(qū)分M/E,都把這兩類狀態(tài)統(tǒng)一為獨占狀態(tài),有的設(shè)計甚至不會區(qū)分M/E/S三個狀態(tài),只記錄是否在緩存代理中是否包含數(shù)據(jù)。現(xiàn)有的Home Snoop協(xié)議,為了加速對內(nèi)存目錄的讀取,會在內(nèi)存代理處添加一塊緩存(注意:此緩存不是CPU緩存代理的緩存),這樣做的好處可以對經(jīng)常訪問的內(nèi)存目錄,快速讀取,并且盡早發(fā)送偵聽到緩存代理,降低偵聽響應(yīng)的延遲。但是,如果目錄緩存命中,表示的緩存行的狀態(tài)為無效狀態(tài)時,雖然可以不發(fā)送偵聽請求到其他緩存代理,但是還必須往內(nèi)存進(jìn)行數(shù)據(jù)讀取,然后把數(shù)據(jù)發(fā)送給請求者緩存代理,這次內(nèi)存的讀取速度往往很慢,影響整個請求緩存的響應(yīng)時間。
發(fā)明內(nèi)容
本發(fā)明實施例所要解決的技術(shù)問題在于,提供一種內(nèi)存數(shù)據(jù)緩沖方法裝置。可解決現(xiàn)有技術(shù)中只對目錄信息作優(yōu)化,當(dāng)目錄緩存命中時,所表示的數(shù)據(jù)行為無效時,需要從內(nèi)存中取數(shù)據(jù),響應(yīng)請求的響應(yīng)時間。為了解決上述技術(shù)問題,本發(fā)明第一方面提供了一種內(nèi)存數(shù)據(jù)緩沖方法,包括在內(nèi)存代理Home Agent的存儲器中開辟至少包括目錄緩存和數(shù)據(jù)緩存的組合緩存區(qū),所述目錄緩存中的緩存行和所述數(shù)據(jù)緩存中的緩存行一一對應(yīng);接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述組合緩存區(qū)是否命中且有效,若為是,則直接對所述組合緩存區(qū)執(zhí)行相應(yīng)的操作。在第一種可能的實現(xiàn)方式中,所述組合緩存區(qū)包括描述信息,所述描述信息包括對比字段、目錄狀態(tài)信息、數(shù)據(jù)狀態(tài)信息和有效標(biāo)志位;所述根據(jù)所述操作地址判斷所述組合緩存區(qū)是否命中且有效包括根據(jù)所述操作地址查詢所述組合緩存區(qū)中是否存在匹配的對比字段,若存在,則所述組合緩存區(qū)命中;和根據(jù)所述組合緩存區(qū)中命中的緩存行的有效標(biāo)志位判斷所述命中的緩存行是否有效。結(jié)合第一方面和第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述操作地址為讀操作地址,所述直接對所述組合緩存區(qū)執(zhí)行相應(yīng)的操作包括直接向所述緩存代理返回所述命中的緩存行中的目錄信息和數(shù)據(jù)信息。結(jié)合第一方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述操作地址為寫操作地址,所述直接對所述組合緩存區(qū)執(zhí)行相應(yīng)的操作包括;在所述命中的緩存行中寫入新的數(shù)據(jù)信息和目錄信息,更新所述組合緩存區(qū)描述信息中的目錄狀態(tài)信息和數(shù)據(jù)狀態(tài)信息,并將有效標(biāo)志位置為有效。結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述組合緩存區(qū)未命中時,采用LRU最近最少使用算法選擇所述組合緩存區(qū)中的待替換緩存行,根據(jù)所述待替換緩存行的目錄狀態(tài)信息和數(shù)據(jù)狀態(tài)信息判斷是否需要將所述待替換緩存行中的目錄信息和數(shù)據(jù)信息與回內(nèi)存;將所述待替換緩存行的有效標(biāo)志位置為無效。本發(fā)明第二方面提供了一種內(nèi)存數(shù)據(jù)緩沖方法,包括在內(nèi)存代理Home Agent的存儲器中開辟目錄緩存和數(shù)據(jù)緩存,所述目錄緩存中的緩存行和所述數(shù)據(jù)緩存中的緩存行不是一一對應(yīng);接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述目錄緩存和所述數(shù)據(jù)緩存是否命中且有效,若為是,則直接對所述目錄緩存和所述數(shù)據(jù)緩存執(zhí)行相應(yīng)的操作。在第一種可能的實現(xiàn)方式中,所述目錄緩存包括目錄描述信息,所述目錄描述信息包括對比字段、目錄狀態(tài)信息、數(shù)據(jù)信息標(biāo)識位、數(shù)據(jù)信息身份標(biāo)識和目錄有效標(biāo)識位;所述數(shù)據(jù)緩存包括數(shù)據(jù)描述信息,所述數(shù)據(jù)描述信息包括數(shù)據(jù)狀態(tài)信息和數(shù)據(jù)有效標(biāo)識位;
所述接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述目錄緩存和所述數(shù)據(jù)緩存是否命中且有效包括根據(jù)所述操作地址查詢所述目錄緩存是否存在匹配的對比字段,若存在,則所述目錄緩存命中;根據(jù)所述目錄緩存中命中的緩存行的目錄有效標(biāo)志位判斷所述命中的緩存行是否有效,若為是,則根據(jù)所述被命中的緩存行的數(shù)據(jù)信息標(biāo)識位判斷所述數(shù)據(jù)緩存是否命中;根據(jù)命中的所述數(shù)據(jù)緩的緩存行中的數(shù)據(jù)有效標(biāo)識位判斷該命中的所述數(shù)據(jù)緩存中的緩存行是否有效。結(jié)合第二方面和第二方面第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述操作地址為讀操作地址,所述直接對所述目錄緩存和所述數(shù)據(jù)緩存執(zhí)行相應(yīng)的操作包括直接向所述緩存代理返回命中的目錄緩存的緩存行中的目錄信息和命中的數(shù)據(jù)緩存的緩存行中的數(shù)據(jù)信息。結(jié)合第二方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述操作地址為寫操作地址,所述直接對所述目錄緩存和所述數(shù)據(jù)緩存執(zhí)行相應(yīng)的操作包括在所述命中的目錄緩存的緩存行中寫入新的目錄信息和所述命中的數(shù)據(jù)緩存的緩存行中寫入新的數(shù)據(jù)信息。結(jié)合第二方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,還包括根據(jù)所述命中的數(shù)據(jù)緩存的緩存行的數(shù)據(jù)信息標(biāo)識位判斷所述數(shù)據(jù)緩存未命中時,采用LRU最近最少使用算法在所述數(shù)據(jù)緩存中剔除一個閑置的緩存行。本發(fā)明第四方面提供了一種內(nèi)存數(shù)據(jù)緩沖裝置,包括緩存分配模塊,用于在內(nèi)存代理Home Agent的存儲器中開辟至少包括目錄緩存和數(shù)據(jù)緩存的組合緩存區(qū),所述目錄緩存中的緩存行和所述數(shù)據(jù)緩存中的緩存行一一對應(yīng);操作執(zhí)行模塊,用于接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述組合緩存區(qū)是否命中且有效,若為是,則直接對所述組合緩存區(qū)執(zhí)行相應(yīng)的操作。在第一種可能的實現(xiàn)方式中,所述操作執(zhí)行模塊包括命中有效判斷單元,用于根據(jù)所述操作地址查詢所述組合緩存區(qū)中是否存在匹配的對比字段,若存在,則所述組合緩存區(qū)命中;和根據(jù)所述組合緩存區(qū)中命中的緩存行的有效標(biāo)志位判斷所述命中的緩存行是否有效;其中,所述組合緩存區(qū)包括描述信息,所述描述信息包括對比字段、目錄狀態(tài)信息、數(shù)據(jù)狀態(tài)信息和有效標(biāo)志位。結(jié)合第三方面和第三方面的的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述操作執(zhí)行模塊包括;讀操作執(zhí)行單元,用于直接向所述緩存代理返回所述命中的緩存行中的目錄信息和數(shù)據(jù)信息。結(jié)合第三方面的第二種可能的實現(xiàn)方式,在三種可能的實現(xiàn)方式中,所述操作執(zhí)行模塊包括
寫操作執(zhí)行單元,用于在所述命中的緩存行中寫入新的數(shù)據(jù)信息和目錄信息,更新所述組合緩存區(qū)描述信息中的目錄狀態(tài)信息和數(shù)據(jù)狀態(tài)信息,并將有效標(biāo)志位置為有效。結(jié)合第三方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,還包括替換模塊,用于接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述組合緩存區(qū)未命中時,采用LRU最近最少使用算法選擇所述組合緩存區(qū)中的待替換緩存行,根據(jù)所述待替換緩存行的目錄狀態(tài)信息和數(shù)據(jù)狀態(tài)信息判斷是否需要將所述待替換緩存行中的目錄信息和數(shù)據(jù)信息寫回內(nèi)存;將所述待替換緩存行的有效標(biāo)志位置為無效。本發(fā)明第四方面提供了一種內(nèi)存數(shù)據(jù)緩沖裝置,包括緩存分配模塊,用于在內(nèi)存代理Home Agent的存儲器中開辟目錄緩存和數(shù)據(jù)緩存,所述目錄緩存中的緩存行和所述數(shù)據(jù)緩存中的緩存行不是一一對應(yīng);操作執(zhí)行模塊,用于接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述目錄緩存和所述數(shù)據(jù)緩存是否命中且有效,若為是,則直接對所述目錄緩存和所述數(shù)據(jù)緩存執(zhí)行相應(yīng)的操作。在第一種可能的實現(xiàn)方式中,所述操作執(zhí)行模塊包括命中有效判斷單元,用于根據(jù)所述操作地址查詢所述目錄緩存是否存在匹配的對比字段,若存在,則所述目錄緩存命中;根據(jù)所述目錄緩存中命中的緩存行的目錄有效標(biāo)志位判斷所述命中的緩存行是否有效,若為是,則根據(jù)所述被命中的緩存行的數(shù)據(jù)信息標(biāo)識位判斷所述數(shù)據(jù)緩存是否命中;根據(jù)命中的所述數(shù)據(jù)緩的緩存行中的數(shù)據(jù)有效標(biāo)識位判斷該命中的所述數(shù)據(jù)緩存中的緩存行是否有效;所述目錄緩存包括目錄描述信息,所述目錄描述信息包括對比字段、目錄狀態(tài)信息、數(shù)據(jù)信息標(biāo)識位、數(shù)據(jù)信息身份標(biāo)識和目錄有效標(biāo)識位;所述數(shù)據(jù)緩存包括數(shù)據(jù)描述信息,所述數(shù)據(jù)描述信息包括數(shù)據(jù)狀態(tài)信息和數(shù)據(jù)有效標(biāo)識位。結(jié)合第四方面和第四方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述操作執(zhí)行單元包括;讀操作執(zhí)行單元,用于直接向所述緩存代理返回命中的目錄緩存的緩存行中的目錄信息和命中的數(shù)據(jù)緩存的緩存行中的數(shù)據(jù)信息。結(jié)合第四方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述操作執(zhí)行單元包括寫操作執(zhí)行單元,用于在所述命中的目錄緩存的緩存行中寫入新的目錄信息和所述命中的數(shù)據(jù)緩存的緩存行中寫入新的數(shù)據(jù)信息。結(jié)合第四方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,還包括替換模塊,用于根據(jù)所述被命中的緩存行的數(shù)據(jù)信息標(biāo)識位判斷所述數(shù)據(jù)緩存未命中時,采用LRU最近最少使用算法在所述數(shù)據(jù)緩存中剔除一個閑置的緩存行。實施本發(fā)明實施例,具有如下有益效果通過原有的目錄緩存方案,增加對應(yīng)的數(shù)據(jù)緩存,減少訪問內(nèi)存的次數(shù),降低數(shù)據(jù)獲得的延遲。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實施例的一種內(nèi)存數(shù)據(jù)緩沖方法的第一流程示意圖;圖2是本發(fā)明實施例的一種內(nèi)存數(shù)據(jù)緩沖方法的第二流程示意圖;圖3是本發(fā)明實施例的一種內(nèi)存數(shù)據(jù)緩沖方法的第三流程示意圖;圖4是本發(fā)明實施例的一種內(nèi)存數(shù)據(jù)緩沖方法的第四流程示意圖;圖5是圖4中替換操作的流程示意圖;圖6是本發(fā)明實施例的一種內(nèi)存數(shù)據(jù)緩沖裝置的第一結(jié)構(gòu)示意圖;圖7是本發(fā)明實施例的一種內(nèi)存數(shù)據(jù)緩沖裝置的第二結(jié)構(gòu)示意圖;圖8是圖7中操作執(zhí)行模塊的結(jié)構(gòu)示意圖;圖9是本發(fā)明實施例的一種內(nèi)存數(shù)據(jù)緩沖裝置的第三結(jié)構(gòu)示意圖;圖10是本發(fā)明實施例的一種內(nèi)存數(shù)據(jù)緩沖裝置的第四結(jié)構(gòu)示意圖;圖11是本發(fā)明實施例的一種內(nèi)存數(shù)據(jù)緩沖裝置的第五結(jié)構(gòu)示意圖;圖12是圖11中操作執(zhí)行模塊的結(jié)構(gòu)示意圖;圖13是本發(fā)明實施例的一種內(nèi)存數(shù)據(jù)緩沖裝置的第六結(jié)構(gòu)示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。參見圖1,為本發(fā)明實施例的一種內(nèi)存數(shù)據(jù)緩沖方法的第一種流程示意圖,該流程包括步驟101、在內(nèi)存代理的存儲器中開辟至少包括目錄緩存和數(shù)據(jù)緩存的組合緩存區(qū)。具體的,目錄緩存為內(nèi)存中裝入到內(nèi)存代理中的目錄信息內(nèi)存行的副本,目錄信息中記錄有內(nèi)存行的狀態(tài)信息和在緩存中的位置信息,狀態(tài)信息指的是無效、獨占、臟和共享狀態(tài),位置信息指的是內(nèi)存行具體被裝入到哪個CPU的緩存中,每一個內(nèi)存行數(shù)據(jù)對應(yīng)一個目錄信息,根據(jù)局部性原理,目錄緩存中只緩沖有部分經(jīng)常訪問到的目錄信息,數(shù)據(jù)緩存中的數(shù)據(jù)緩存行與目錄緩存中的目錄緩存行一一對應(yīng),即目錄緩存行中記錄的為對應(yīng)的數(shù)據(jù)緩存中的數(shù)據(jù)緩存行的狀態(tài)信息和位置信息,由于這種一一對應(yīng)的關(guān)系,可以目錄緩存行和數(shù)據(jù)緩存行關(guān)聯(lián)成一個組合緩存行。步驟102、接收緩存代理發(fā)出的讀操作地址。具體的,緩存代理發(fā)出一個讀操作請求,所述讀操作請求對應(yīng)一個讀操作地址。步驟103、組合緩存區(qū)是否命中。
具體的,根據(jù)讀操作地址判斷組合緩存區(qū)是否命中,所述組合緩存區(qū)包括描述信息,所述描述信息包括:對比字段、目錄狀態(tài)信息、數(shù)據(jù)狀態(tài)信息和有效標(biāo)志位,如下表所示
的組合緩存區(qū)的緩存行的結(jié)構(gòu)為:
權(quán)利要求
1.一種內(nèi)存數(shù)據(jù)緩沖方法,其特征在于,包括: 在內(nèi)存代理Home Agent的存儲器中開辟至少包括目錄緩存和數(shù)據(jù)緩存的組合緩存區(qū),所述目錄緩存中的緩存行和所述數(shù)據(jù)緩存中的緩存行一一對應(yīng); 接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述組合緩存區(qū)是否命中且有效,若為是,則直接對所述組合緩存區(qū)執(zhí)行相應(yīng)的操作。
2.如權(quán)利要求1所述的方法,其特征在于,所述組合緩存區(qū)包括描述信息,所述描述信息包括:對比字段、目錄狀態(tài)信息、數(shù)據(jù)狀態(tài)信息和有效標(biāo)志位; 所述根據(jù)所述操作地址判斷所述組合緩存區(qū)是否命中且有效包括: 根據(jù)所述操作地址查詢所述組合緩存區(qū)中是否存在匹配的對比字段,若存在,則所述組合緩存區(qū)命中;和 根據(jù)所述組合緩存區(qū)中命中的緩存行的有效標(biāo)志位判斷所述命中的緩存行是否有效。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述操作地址為讀操作地址,所述直接對所述組合緩存區(qū)執(zhí)行相應(yīng)的操作包括: 直接向所述緩存代理返回所述命中的緩存行中的目錄信息和數(shù)據(jù)信息。
4.如權(quán)利要求3所述的方法,其特征在于,所述操作地址為寫操作地址,所述直接對所述組合緩存區(qū)執(zhí)行相應(yīng)的操作包括; 在所述命中的緩存行中寫入新的數(shù)據(jù)信息和目錄信息,更新所述組合緩存區(qū)描述信息中的目錄狀態(tài)信息和數(shù)據(jù)狀態(tài)信息,并將有效標(biāo)志位置為有效。
5.如權(quán)利要求4所 述的方法,其特征在于,還包括: 接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述組合緩存區(qū)未命中時,采用LRU最近最少使用算法選擇所述組合緩存區(qū)中的待替換緩存行,根據(jù)所述待替換緩存行的目錄狀態(tài)信息和數(shù)據(jù)狀態(tài)信息判斷是否需要將所述待替換緩存行中的目錄信息和數(shù)據(jù)信息寫回內(nèi)存; 將所述待替換緩存行的有效標(biāo)志位置為無效。
6.一種內(nèi)存數(shù)據(jù)緩沖方法,其特征在于,包括; 在內(nèi)存代理Home Agent的存儲器中開辟目錄緩存和數(shù)據(jù)緩存,所述目錄緩存中的緩存行和所述數(shù)據(jù)緩存中的緩存行不是一一對應(yīng); 接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述目錄緩存和所述數(shù)據(jù)緩存是否命中且有效,若為是,則直接對所述目錄緩存和所述數(shù)據(jù)緩存執(zhí)行相應(yīng)的操作。
7.如權(quán)利要求6所述的方法,其特征在于,所述目錄緩存包括目錄描述信息,所述目錄描述信息包括對比字段、目錄狀態(tài)信息、數(shù)據(jù)信息標(biāo)識位、數(shù)據(jù)信息身份標(biāo)識和目錄有效標(biāo)識位;所述數(shù)據(jù)緩存包括數(shù)據(jù)描述信息,所述數(shù)據(jù)描述信息包括數(shù)據(jù)狀態(tài)信息和數(shù)據(jù)有效標(biāo)識位; 所述接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述目錄緩存和所述數(shù)據(jù)緩存是否命中且有效包括: 根據(jù)所述操作地址查詢所述目錄緩存是否存在匹配的對比字段,若存在,則所述目錄緩存命中; 根據(jù)所述目錄緩存中命中的緩存行的目錄有效標(biāo)志位判斷所述命中的緩存行是否有效,若為是,則根據(jù)所述被命中的緩存行的數(shù)據(jù)信息標(biāo)識位判斷所述數(shù)據(jù)緩存是否命中; 根據(jù)命中的所述數(shù)據(jù)緩的緩存行中的數(shù)據(jù)有效標(biāo)識位判斷該命中的所述數(shù)據(jù)緩存中的緩存行是否有效。
8.如權(quán)利要求6或7所述的方法,其特征在于,所述操作地址為讀操作地址,所述直接對所述目錄緩存和所述數(shù)據(jù)緩存執(zhí)行相應(yīng)的操作包括: 直接向所述緩存代理返回命中的目錄緩存的緩存行中的目錄信息和命中的數(shù)據(jù)緩存的緩存行中的數(shù)據(jù)信息。
9.如權(quán)利要求8所述的方法,其特征在于,所述操作地址為寫操作地址,所述直接對所述目錄緩存和所述數(shù)據(jù)緩存執(zhí)行相應(yīng)的操作包括: 在所述命中的目錄緩存的緩存行中寫入新的目錄信息和所述命中的數(shù)據(jù)緩存的緩存行中寫入新的數(shù)據(jù)信息。
10.如權(quán)利要求8所述的方法,其特征在于,還包括: 根據(jù)所述命中的數(shù)據(jù)緩存的緩存行的數(shù)據(jù)信息標(biāo)識位判斷所述數(shù)據(jù)緩存未命中時,采用LRU最近最少使用算法在所述數(shù)據(jù)緩存中剔除一個閑置的緩存行。
11.一種內(nèi)存數(shù)據(jù)緩沖裝置,其特征在于,包括: 緩存分配模塊,用于在內(nèi)存代理Home Agent的存儲器中開辟至少包括目錄緩存和數(shù)據(jù)緩存的組合緩存區(qū),所述目錄緩存中的緩存行和所述數(shù)據(jù)緩存中的緩存行一一對應(yīng); 操作執(zhí)行模塊,用于接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述組合緩存區(qū)是否命中且有效,若為是,則直接對所述組合緩存區(qū)執(zhí)行相應(yīng)的操作。
12.如權(quán)利要求11所述的裝置,其特征在于,所述操作執(zhí)行模塊包括: 命中有效判斷單元,用于根據(jù)所述操作地址查詢所述組合緩存區(qū)中是否存在匹配的對比字段,若存在,則所述組合緩存區(qū)命中;和 根據(jù)所述組合緩存區(qū)中命中的緩存行的有效標(biāo)志位判斷所述命中的緩存行是否有效;其中,所述組合緩存區(qū)包括描述信息,所述描述信息包括:對比字段、目錄狀態(tài)信息、數(shù)據(jù)狀態(tài)信息和有效標(biāo)志位。
13.如權(quán)利要求11或12所述的裝置,其特征在于,所述操作執(zhí)行模塊包括; 讀操作執(zhí)行單元,用于直接向所述緩存代理返回所述命中的緩存行中的目錄信息和數(shù)據(jù)信息。
14.如權(quán)利要求13所述的裝置,其特征在于,所述操作執(zhí)行模塊包括: 寫操作執(zhí)行單元,用于在所述命中的緩存行中寫入新的數(shù)據(jù)信息和目錄信息,更新所述組合緩存區(qū)描述信息中的目錄狀態(tài)信息和數(shù)據(jù)狀態(tài)信息,并將有效標(biāo)志位置為有效。
15.如權(quán)利要求14所述的裝置,其特征在于,還包括: 替換模塊,用于接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述組合緩存區(qū)未命中時,采用LRU最近最少使用算法選擇所述組合緩存區(qū)中的待替換緩存行,根據(jù)所述待替換緩存行的目錄狀態(tài)信息和數(shù)據(jù)狀態(tài)信息判斷是否需要將所述待替換緩存行中的目錄信息和數(shù)據(jù)信息寫回內(nèi)存; 將所述待替換緩存行的有效標(biāo)志位置為無效。
16.一種內(nèi)存數(shù)據(jù)緩沖裝置,其特征在于,包括: 緩存分配模塊,用于在內(nèi)存代理Home Agent的存儲器中開辟目錄緩存和數(shù)據(jù)緩存,所述目錄緩存中的緩存行和所述數(shù)據(jù)緩存中的緩存行不是一一對應(yīng); 操作執(zhí)行模塊,用于接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述目錄緩存和所述數(shù)據(jù)緩存是否命中且有效,若為是,則直接對所述目錄緩存和所述數(shù)據(jù)緩存執(zhí)行相應(yīng)的操作。
17.如權(quán)利要求16所述的裝置,其特征在于,所述操作執(zhí)行模塊包括: 命中有效判斷單元,用于根據(jù)所述操作地址查詢所述目錄緩存是否存在匹配的對比字段,若存在,則所述目錄緩存命中; 根據(jù)所述目錄緩存中命中的緩存行的目錄有效標(biāo)志位判斷所述命中的緩存行是否有效,若為是,則根據(jù)所述被命中的緩存行的數(shù)據(jù)信息標(biāo)識位判斷所述數(shù)據(jù)緩存是否命中; 根據(jù)命中的所述數(shù)據(jù)緩的緩存行中的數(shù)據(jù)有效標(biāo)識位判斷該命中的所述數(shù)據(jù)緩存中的緩存行是否有效;所述目錄緩存包括目錄描述信息,所述目錄描述信息包括對比字段、目錄狀態(tài)信息、數(shù)據(jù)信息標(biāo)識位、數(shù)據(jù)信息身份標(biāo)識和目錄有效標(biāo)識位;所述數(shù)據(jù)緩存包括數(shù)據(jù)描述信息,所述數(shù)據(jù)描述信息包括數(shù)據(jù)狀態(tài)信息和數(shù)據(jù)有效標(biāo)識位。
18.如權(quán)利要求16或17所述的裝置,其特征在于,所述操作執(zhí)行單元包括; 讀操作執(zhí)行單元,用于直接向所述緩存代理返回命中的目錄緩存的緩存行中的目錄信息和命中的數(shù)據(jù)緩存的緩存行中的數(shù)據(jù)信息。
19.如權(quán)利要求18所述的裝置,其特征在于,所述操作執(zhí)行單元包括: 寫操作執(zhí)行單元,用于在所述命中的目錄緩存的緩存行中寫入新的目錄信息和所述命中的數(shù)據(jù)緩存的緩存行中寫入新的數(shù)據(jù)信息。
20.如權(quán)利要求19所述的裝置,其特征在于,還包括: 替換模塊,用于根據(jù)所述 被命中的緩存行的數(shù)據(jù)信息標(biāo)識位判斷所述數(shù)據(jù)緩存未命中時,采用LRU最近最少使用算法在所述數(shù)據(jù)緩存中剔除一個閑置的緩存行。
全文摘要
本發(fā)明實施例公開了一種內(nèi)存數(shù)據(jù)緩沖的方法,包括在內(nèi)存代理HomeAgent的存儲器中開辟至少包括目錄緩存和數(shù)據(jù)緩存的組合緩存區(qū),所述目錄緩存中的緩存行和所述數(shù)據(jù)緩存中的緩存行一一對應(yīng);接收緩存代理Cache Agent發(fā)出的操作地址,根據(jù)所述操作地址判斷所述組合緩存區(qū)是否命中且有效,若為是,則直接對所述組合緩存區(qū)執(zhí)行相應(yīng)的操作。采用本發(fā)明,減少訪問內(nèi)存的次數(shù),降低數(shù)據(jù)獲得的延遲。
文檔編號G06F3/06GK103076992SQ20121057861
公開日2013年5月1日 申請日期2012年12月27日 優(yōu)先權(quán)日2012年12月27日
發(fā)明者徐建榮, 姚策, 陳昊 申請人:杭州華為數(shù)字技術(shù)有限公司