两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

目錄的存儲(chǔ)方法、查詢(xún)方法及節(jié)點(diǎn)控制器的制造方法

文檔序號(hào):6515711閱讀:248來(lái)源:國(guó)知局
目錄的存儲(chǔ)方法、查詢(xún)方法及節(jié)點(diǎn)控制器的制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種目錄的存儲(chǔ)方法及存儲(chǔ)目錄的節(jié)點(diǎn)控制器,用以解決現(xiàn)有技術(shù)中為了減小NC的目錄存儲(chǔ)空間不足對(duì)CPU對(duì)于其緩存的遠(yuǎn)端節(jié)點(diǎn)的數(shù)據(jù)的使用的影響,會(huì)導(dǎo)致產(chǎn)生非常大的存儲(chǔ)資源需求量的問(wèn)題。方法包括:本地節(jié)點(diǎn)中的節(jié)點(diǎn)控制器NC獲得被遠(yuǎn)端節(jié)點(diǎn)讀取的數(shù)據(jù)塊在本地節(jié)點(diǎn)中的CPU中的存儲(chǔ)地址;確定分別位于存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;根據(jù)第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,確定尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間;在確定出的存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及目錄。本發(fā)明實(shí)施例還提供一種目錄的查詢(xún)方法及查詢(xún)目錄的節(jié)點(diǎn)控制器。
【專(zhuān)利說(shuō)明】目錄的存儲(chǔ)方法、查詢(xún)方法及節(jié)點(diǎn)控制器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種目錄的存儲(chǔ)方法、查詢(xún)方法及節(jié)點(diǎn)控制器。
【背景技術(shù)】
[0002]在由高性能的中央處理器(Central Processing Unit, CPU,后文也簡(jiǎn)稱(chēng)處理器)組建的緩存一致性非對(duì)稱(chēng)存儲(chǔ)器訪問(wèn)(Cache Coherence Non-Uniform Memory Access,CC-NUMA)系統(tǒng)中,由于CPU本身的對(duì)接擴(kuò)展能力有限,所以需要將CC-NUMA系統(tǒng)中的多個(gè)(PU劃分到不同節(jié)點(diǎn)(Node)中,再由節(jié)點(diǎn)控制器(Node Controller, NC)進(jìn)行多CPU擴(kuò)展,以增加可并行運(yùn)行的CPU個(gè)數(shù),從而提升CC-NUMA系統(tǒng)的性能。
[0003]一個(gè)簡(jiǎn)單的CC-NUMA系統(tǒng)的結(jié)構(gòu)示意圖如圖1所示。圖1所示的CC-NUMA系統(tǒng)共包含N+1個(gè)節(jié)點(diǎn),分別為NodeO?NodeN。以NodeO為例,其包含一個(gè)NC以及由該NC控制的η個(gè)CPU。其中,每個(gè)CPU都有自己的高速緩沖存儲(chǔ)器(Cache),該Cache具體可以為L(zhǎng)3Cache,即圖1中標(biāo)示的L3。此外,每個(gè)CPU還可以進(jìn)行內(nèi)存擴(kuò)展,比如可以在CPU原有內(nèi)存的基礎(chǔ)上,通過(guò)新增如圖1所示的雙列直插內(nèi)存模組(Dual in-line memory module,DMM)來(lái)實(shí)現(xiàn)對(duì)CPU的內(nèi)存擴(kuò)展。
[0004]在圖1所示的系統(tǒng)中,每個(gè)CPU都有自己的L3Cache,并且可以進(jìn)行內(nèi)存擴(kuò)展,該系統(tǒng)中的任意CPU可以對(duì)該系統(tǒng)中的除該CPU外的其他CPU的內(nèi)存進(jìn)行一致性訪問(wèn)。
[0005]按照現(xiàn)有技術(shù),針對(duì)每個(gè)NC而言,其需要通過(guò)保存如圖1所示的Dir即目錄(Directory),來(lái)實(shí)現(xiàn)記錄該NC所在節(jié)點(diǎn)內(nèi)的CPU內(nèi)存中的數(shù)據(jù)被其他節(jié)點(diǎn)(即不同于該NC所在節(jié)點(diǎn)的其他節(jié)點(diǎn),也稱(chēng)遠(yuǎn)端節(jié)點(diǎn))的CPU緩存的情況,以維護(hù)不同節(jié)點(diǎn)間的數(shù)據(jù)一致性。比如,假設(shè)Nodel中的CPU緩存了 NodeO中的CPU的內(nèi)存中的某數(shù)據(jù),則控制NodeO的NC需要利用一個(gè)Dir來(lái)記錄該數(shù)據(jù)被Nodel緩存這一,清況,并在該目錄中對(duì)Nodel中的CPU對(duì)該數(shù)據(jù)的占用狀態(tài)(可能為共享或獨(dú)占)進(jìn)行標(biāo)示。由于對(duì)CPU的內(nèi)存擴(kuò)展可能使得CPU具有容量非常大的內(nèi)存,因此,為了實(shí)現(xiàn)對(duì)遠(yuǎn)端節(jié)點(diǎn)對(duì)于CPU的內(nèi)存中的數(shù)據(jù)的緩存情況進(jìn)行充分記錄,維護(hù)目錄的NC上通常也可以通過(guò)新增DIMM的方式來(lái)實(shí)現(xiàn)對(duì)目錄的存儲(chǔ)空間進(jìn)行擴(kuò)展,以滿(mǎn)足大量的目錄對(duì)于存儲(chǔ)空間的需求量。
[0006]一般地,目錄與CPU的內(nèi)存中的數(shù)據(jù)量的對(duì)應(yīng)關(guān)系是:一條目錄對(duì)應(yīng)CPU內(nèi)存中的一個(gè)緩存塊(Cache Line),即每一條目錄記載的是一個(gè)Cache Line的數(shù)據(jù)被遠(yuǎn)端節(jié)點(diǎn)緩存的情況。其中,一個(gè)Cache Line的數(shù)據(jù)量大小可以是512bit。
[0007]以Ivy-Bridge EX這一 CPU為例,其L3Cache的容量為37.5MB,從而每個(gè)這樣的CPU實(shí)際可以緩存的Cache Line的最大個(gè)數(shù)為37.5MB/64B=600K個(gè)。對(duì)于一個(gè)32P的CC-NUMA系統(tǒng),即共包含32個(gè)CPU的CC-NUMA系統(tǒng)而言,由于針對(duì)該系統(tǒng)中的任何一個(gè)節(jié)點(diǎn),其對(duì)應(yīng)的所有遠(yuǎn)端節(jié)點(diǎn)共包含30個(gè)CPU,從而該節(jié)點(diǎn)的NC總共需要維護(hù)的目錄的最大個(gè)數(shù)為30X600K=18M個(gè)。由于對(duì)于任何一個(gè)CPU而言,其對(duì)于遠(yuǎn)端節(jié)點(diǎn)中數(shù)據(jù)的緩存狀態(tài)是處于變化中的,因此這也就使得NC維護(hù)的目錄處于動(dòng)態(tài)變化中。仍然以該32P的CC-NUMA系統(tǒng)為例,假設(shè)某節(jié)點(diǎn)中CPU的數(shù)據(jù)X被遠(yuǎn)端節(jié)點(diǎn)進(jìn)行緩存的情況發(fā)生了變化,那么該節(jié)點(diǎn)中NC所維護(hù)的目錄就需要發(fā)生相應(yīng)變化。特別地,在該NC所維護(hù)的目錄已達(dá)到最大個(gè)數(shù)的情況下,為了實(shí)現(xiàn)對(duì)數(shù)據(jù)X所對(duì)應(yīng)的目錄進(jìn)行保存,該NC只能通過(guò)刪除掉某條目錄的方式,為數(shù)據(jù)X所對(duì)應(yīng)的目錄釋放出存儲(chǔ)空間,并通知該目錄中記錄的CPU對(duì)相應(yīng)的數(shù)據(jù)進(jìn)行刪除。
[0008]由上述目錄的更新方式可以看出,若NC用于維護(hù)目錄的存儲(chǔ)空間過(guò)小,勢(shì)必導(dǎo)致CC-NUMA系統(tǒng)中頻繁出現(xiàn)通知CPU刪除其緩存的遠(yuǎn)端節(jié)點(diǎn)的數(shù)據(jù)的情況,從而會(huì)嚴(yán)重影響CPU對(duì)于其緩存的遠(yuǎn)端節(jié)點(diǎn)的數(shù)據(jù)的使用。
[0009]為了避免上述問(wèn)題,現(xiàn)有技術(shù)中提出了 “全目錄技術(shù)”。該技術(shù)的核心思想在于,按照CPU的最大內(nèi)存量,在NC上預(yù)留該最大內(nèi)存量所能支持的最大個(gè)數(shù)的Cache Line所對(duì)應(yīng)的目錄存儲(chǔ)空間。比如,若假設(shè)一個(gè)節(jié)點(diǎn)控制兩個(gè)CPU,且這兩個(gè)CPU在分別經(jīng)內(nèi)存擴(kuò)展后其內(nèi)存容量總和為2TB,且假設(shè)512bit為一個(gè)Cache Line的數(shù)據(jù)量,那么,為了避免目錄存儲(chǔ)空間的不足而導(dǎo)致對(duì)CPU對(duì)于從遠(yuǎn)端節(jié)點(diǎn)獲取到的數(shù)據(jù)的使用產(chǎn)生影響,需要在NC上為CPU中的每個(gè)Cache Line所分別對(duì)應(yīng)的每個(gè)目錄預(yù)留存儲(chǔ)空間,即NC上需要存儲(chǔ)的目錄條數(shù)應(yīng)為2TB/64Byte=32G。按照這樣的需求,如果假設(shè)一個(gè)目錄的大小為8bit,則NC上需要有32GByte的存儲(chǔ)空間,這無(wú)疑會(huì)產(chǎn)生非常大的存儲(chǔ)資源需求量。

【發(fā)明內(nèi)容】

[0010]本發(fā)明實(shí)施例提供一種目錄的存儲(chǔ)方法及存儲(chǔ)目錄的節(jié)點(diǎn)控制器,用以解決現(xiàn)有技術(shù)中為了減小NC的目錄存儲(chǔ)空間不足對(duì)CPU對(duì)于其緩存的遠(yuǎn)端節(jié)點(diǎn)的數(shù)據(jù)的使用的影響,會(huì)導(dǎo)致產(chǎn)生非常大的存儲(chǔ)資源需求量的問(wèn)題。
[0011]本發(fā)明實(shí)施例還提供一種目錄的查詢(xún)方法及查詢(xún)目錄的節(jié)點(diǎn)控制器。
[0012]本發(fā)明實(shí)施例采用以下技術(shù)方案:
[0013]第一方面,提供一種目錄的存儲(chǔ)方法,所述目錄用于記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)于本地節(jié)點(diǎn)中的中央處理器CPU中的數(shù)據(jù)塊的緩存情況,包括:所述本地節(jié)點(diǎn)中的節(jié)點(diǎn)控制器NC獲得所述CPU中被所述遠(yuǎn)端節(jié)點(diǎn)讀取的所述數(shù)據(jù)塊在所述CPU中的存儲(chǔ)地址;確定分別位于所述存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;其中,所述第一內(nèi)容和所述第二內(nèi)容至少共同包括所述存儲(chǔ)地址的所有內(nèi)容;所述第一特定位的位數(shù)大于預(yù)先規(guī)定的位數(shù)閾值,且小于所述存儲(chǔ)地址的總位數(shù);所述位數(shù)閾值滿(mǎn)足:按照所述位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與所述本地節(jié)點(diǎn)同處同一緩存一致性非對(duì)稱(chēng)存儲(chǔ)器訪問(wèn)CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和;根據(jù)所述第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,確定尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間;在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄。
[0014]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述第一內(nèi)容包含第一索引部分和第二索引部分;則根據(jù)所述第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,確定尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間,具體包括:根據(jù)所述第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,確定尋址地址與所述第一索引部分相匹配的存儲(chǔ)空間集合;根據(jù)所述第二索引部分,從確定出的所述存儲(chǔ)空間集合中,確定尋址地址與所述第二索引部分相匹配的存儲(chǔ)空間。
[0015]結(jié)合第一方面,或第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄,具體包括:從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的所述存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,確定一個(gè)存儲(chǔ)子空間;在確定出的所述存儲(chǔ)子空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄。
[0016]結(jié)合第一方面,在第三種可能的實(shí)現(xiàn)方式中,在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄,具體包括:判斷確定出的所述存儲(chǔ)空間中是否已存儲(chǔ)有其他目錄;在判斷結(jié)果為否時(shí),在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄;在判斷結(jié)果為是時(shí),釋放確定出的所述存儲(chǔ)空間后,在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄。
[0017]第二方面,提供一種目錄的查詢(xún)方法,包括:本地節(jié)點(diǎn)中的節(jié)點(diǎn)控制器NC獲得數(shù)據(jù)塊在本地節(jié)點(diǎn)中的中央處理器CPU中的存儲(chǔ)地址;確定分別位于所述存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;其中,所述第一內(nèi)容和所述第二內(nèi)容至少共同包括所述存儲(chǔ)地址的所有內(nèi)容;所述第一特定位的位數(shù)大于預(yù)先規(guī)定的位數(shù)閾值,且小于所述存儲(chǔ)地址的總位數(shù);所述位數(shù)閾值滿(mǎn)足:按照所述位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與所述本地節(jié)點(diǎn)同處同一緩存一致性非對(duì)稱(chēng)存儲(chǔ)器訪問(wèn)CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和;根據(jù)所述第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,查詢(xún)尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間;根據(jù)所述第二內(nèi)容,從查詢(xún)到的尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間中,查詢(xún)與所述第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的目錄;其中,所述目錄用于記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)于所述數(shù)據(jù)塊的緩存情況。
[0018]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述第一內(nèi)容包含第一索引部分和第二索引部分;則根據(jù)所述第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,查詢(xún)尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間,具體包括:根據(jù)所述第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,查詢(xún)尋址地址與所述第一索引部分相匹配的存儲(chǔ)空間集合;根據(jù)所述第二索引部分,從查詢(xún)到的尋址地址與所述第一索引部分相匹配的存儲(chǔ)空間集合中,查詢(xún)尋址地址與所述第二索引部分相匹配的存儲(chǔ)空間。
[0019]結(jié)合第二方面,或第二方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,根據(jù)所述第二內(nèi)容,從查詢(xún)到的尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間中查詢(xún)所述目錄,具體包括:根據(jù)所述第二內(nèi)容,從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,查詢(xún)與所述第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的所述目錄。
[0020]第三方面,提供一種存儲(chǔ)目錄的節(jié)點(diǎn)控制器,所述目錄用于記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)于本地節(jié)點(diǎn)中的中央處理器CPU中的數(shù)據(jù)塊的緩存情況,其中,所述本地節(jié)點(diǎn)為所述節(jié)點(diǎn)控制器所在的節(jié)點(diǎn),所述節(jié)點(diǎn)控制器包括:地址獲得單元,用于獲得所述CPU中被所述遠(yuǎn)端節(jié)點(diǎn)讀取的所述數(shù)據(jù)塊在所述CPU中的存儲(chǔ)地址;內(nèi)容確定單元,用于確定分別位于所述存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;其中,所述第一內(nèi)容和所述第二內(nèi)容至少共同包括所述存儲(chǔ)地址的所有內(nèi)容;所述第一特定位的位數(shù)大于預(yù)先規(guī)定的位數(shù)閾值,且小于所述存儲(chǔ)地址的總位數(shù);所述位數(shù)閾值滿(mǎn)足:按照所述位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與所述本地節(jié)點(diǎn)同處同一緩存一致性非對(duì)稱(chēng)存儲(chǔ)器訪問(wèn)CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和;存儲(chǔ)空間確定單元,用于根據(jù)所述第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,確定尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間;目錄存儲(chǔ)執(zhí)行單元,用于在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄。
[0021]結(jié)合第三方面,在第一種可能的實(shí)現(xiàn)方式中,所述第一內(nèi)容包含第一索引部分和第二索引部分;所述存儲(chǔ)空間確定單元具體用于:根據(jù)所述第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,確定尋址地址與所述第一索引部分相匹配的存儲(chǔ)空間集合;根據(jù)所述第二索引部分,從確定出的所述存儲(chǔ)空間集合中,確定尋址地址與所述第二索引部分相匹配的存儲(chǔ)空間。
[0022]結(jié)合第三方面,或第三方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述目錄存儲(chǔ)執(zhí)行單元具體用于:從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的所述存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,確定一個(gè)存儲(chǔ)子空間;在確定出的所述存儲(chǔ)子空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄。
[0023]結(jié)合第三方面,在第三種可能的實(shí)現(xiàn)方式中,所述目錄存儲(chǔ)執(zhí)行單元具體用于:判斷確定出的所述存儲(chǔ)空間中是否已存儲(chǔ)有其他目錄;在判斷結(jié)果為否時(shí),在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄;在判斷結(jié)果為是時(shí),釋放確定出的所述存儲(chǔ)空間后,在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄。
[0024]第四方面,提供一種查詢(xún)目錄的節(jié)點(diǎn)控制器,包括:存儲(chǔ)地址獲得單元,用于獲得數(shù)據(jù)塊在中央處理器CPU中的存儲(chǔ)地址;其中,所述CPU為所述節(jié)點(diǎn)控制器所在的本地節(jié)點(diǎn)中的CPU ;內(nèi)容確定單元,用于確定分別位于所述存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;其中,所述第一內(nèi)容和所述第二內(nèi)容至少共同包括所述存儲(chǔ)地址的所有內(nèi)容;所述第一特定位的位數(shù)大于預(yù)先規(guī)定的位數(shù)閾值,且小于所述存儲(chǔ)地址的總位數(shù);所述位數(shù)閾值滿(mǎn)足:按照所述位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與所述本地節(jié)點(diǎn)同處同一緩存一致性非對(duì)稱(chēng)存儲(chǔ)器訪問(wèn)CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和;存儲(chǔ)空間查詢(xún)單元,用于根據(jù)所述第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,查詢(xún)尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間;目錄查詢(xún)單元,用于根據(jù)所述第二內(nèi)容,從查詢(xún)到的尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間中,查詢(xún)與所述第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的目錄;其中,所述目錄用于記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)于所述數(shù)據(jù)塊的緩存情況。
[0025]結(jié)合第四方面,在第一種可能的實(shí)現(xiàn)方式中,所述第一內(nèi)容包含第一索引部分和第二索引部分;所述存儲(chǔ)空間查詢(xún)單元具體用于:根據(jù)所述第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,查詢(xún)尋址地址與所述第一索引部分相匹配的存儲(chǔ)空間集合;根據(jù)所述第二索引部分,從查詢(xún)到的尋址地址與所述第一索引部分相匹配的存儲(chǔ)空間集合中,查詢(xún)尋址地址與所述第二索引部分相匹配的存儲(chǔ)空間。
[0026]結(jié)合第四方面,或第四方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述目錄查詢(xún)單元具體用于:根據(jù)所述第二內(nèi)容,從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,查詢(xún)與所述第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的所述目錄。
[0027]本發(fā)明實(shí)施例的有益效果如下:
[0028]本發(fā)明實(shí)施例提供的上述方案中,由于第一特定位的位數(shù)被設(shè)置為大于預(yù)先規(guī)定的位數(shù)閾值,且小于數(shù)據(jù)的存儲(chǔ)地址的總位數(shù),且按照該位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與本地節(jié)點(diǎn)同處同一 CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和,從而按照第一特定位的位數(shù)進(jìn)行尋址時(shí),其所能尋址的不同尋址地址的最大個(gè)數(shù)不會(huì)超過(guò)按照數(shù)據(jù)的存儲(chǔ)地址的位數(shù)所能尋址的不同尋址地址的最大個(gè)數(shù),同時(shí)其所能尋址的不同尋址地址的最大個(gè)數(shù)也不會(huì)小于與本地節(jié)點(diǎn)同處同一CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和。因此與現(xiàn)有技術(shù)中的全目錄技術(shù)相比,本發(fā)明實(shí)施例提供的該方案在減小NC的目錄存儲(chǔ)空間不足對(duì)CPU對(duì)于其緩存的遠(yuǎn)端節(jié)點(diǎn)的數(shù)據(jù)的使用的影響的同時(shí),大大減小了目錄對(duì)于存儲(chǔ)資源的需求量。
【專(zhuān)利附圖】

【附圖說(shuō)明】
[0029]圖1為一個(gè)簡(jiǎn)單的CC-NUMA系統(tǒng)的結(jié)構(gòu)示意圖;
[0030]圖2為本發(fā)明實(shí)施例提供的一種目錄的存儲(chǔ)方法的具體流程示意圖;
[0031]圖3為本發(fā)明實(shí)施例提供的一種目錄的查詢(xún)方法的具體流程示意圖;
[0032]圖4為實(shí)施例1中采用的CPU DI麗和NC DI麗的映射方式;
[0033]圖5為WayO?Wayl5中的任意存儲(chǔ)子空間所存儲(chǔ)的信息的格式示意圖;
[0034]圖6為用于存儲(chǔ)Dir的7個(gè)bit的劃分示意圖;
[0035]圖7為如圖1所示的CC-NUMA系統(tǒng)中的一個(gè)簡(jiǎn)單的跨節(jié)點(diǎn)的數(shù)據(jù)讀操作的實(shí)現(xiàn)流程不意圖;
[0036]圖8為Nodel的CPU發(fā)起對(duì)NodeO的CPU的內(nèi)存地址A的讀請(qǐng)求的示意圖;
[0037]圖9為從內(nèi)存地址A的不同位中選取內(nèi)容分別作為Index、Mux和Tag的示意圖;
[0038]圖10為NCO中設(shè)置的協(xié)議處理引擎和存儲(chǔ)控制器的示意圖;
[0039]圖11為實(shí)施例1中的尋址方式示意圖;
[0040]圖12為實(shí)施例2中的Cache Line的地址與NC DI麗中的存儲(chǔ)空間的地址的映射方式示意圖;
[0041]圖13為實(shí)施例2中的存儲(chǔ)空間被劃分為8個(gè)存儲(chǔ)子空間的示意圖;
[0042]圖14為實(shí)施例3中的Cache Line的地址與NC DI麗中的存儲(chǔ)空間的地址的映射方式示意圖;
[0043]圖15為本發(fā)明實(shí)施例提供的一種存儲(chǔ)目錄的NC的具體結(jié)構(gòu)示意圖;
[0044]圖16為本發(fā)明實(shí)施例提供的一種查詢(xún)目錄的NC的具體結(jié)構(gòu)示意圖;
[0045]圖17為本發(fā)明實(shí)施例提供的另一種存儲(chǔ)目錄的NC的具體結(jié)構(gòu)示意圖;
[0046]圖18為本發(fā)明實(shí)施例提供的另一種查詢(xún)目錄的NC的具體結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0047]為了解決現(xiàn)有技術(shù)中為了減小NC的目錄存儲(chǔ)空間不足對(duì)CPU對(duì)于其緩存的遠(yuǎn)端節(jié)點(diǎn)的數(shù)據(jù)的使用的影響,會(huì)導(dǎo)致產(chǎn)生非常大的存儲(chǔ)資源需求量的問(wèn)題,本發(fā)明實(shí)施例提供了一種目錄的存儲(chǔ)方法及存儲(chǔ)目錄的節(jié)點(diǎn)控制器。以下結(jié)合說(shuō)明書(shū)附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限制本發(fā)明。并且在不沖突的情況下,本說(shuō)明中的實(shí)施例及實(shí)施例中的特征可以互相結(jié)合。
[0048]首先,本發(fā)明實(shí)施例提供一種目錄的存儲(chǔ)方法,該方法的具體流程示意圖如圖2所示,主要包括下述步驟:
[0049]步驟21,本地節(jié)點(diǎn)中的NC獲得本地節(jié)點(diǎn)中的CPU中被遠(yuǎn)端節(jié)點(diǎn)讀取的數(shù)據(jù)塊在該CPU中的存儲(chǔ)地址;
[0050]比如,可以從遠(yuǎn)端節(jié)點(diǎn)發(fā)送來(lái)的數(shù)據(jù)訪問(wèn)請(qǐng)求中,獲得遠(yuǎn)端節(jié)點(diǎn)欲訪問(wèn)的數(shù)據(jù)塊在CPU中的存儲(chǔ)地址。該存儲(chǔ)地址可以為16位或32位等等,本發(fā)明實(shí)施例對(duì)此不做限定。
[0051]本發(fā)明實(shí)施例中,步驟21可以是由遠(yuǎn)端節(jié)點(diǎn)發(fā)送來(lái)的數(shù)據(jù)訪問(wèn)請(qǐng)求觸發(fā)執(zhí)行的,也可以是在判斷出遠(yuǎn)端節(jié)點(diǎn)實(shí)現(xiàn)對(duì)其欲訪問(wèn)的數(shù)據(jù)塊的成功訪問(wèn)后才執(zhí)行的,等等,本發(fā)明實(shí)施例對(duì)此也不做限定。
[0052]步驟22,NC確定分別位于獲得的該存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;
[0053]其中,本發(fā)明實(shí)施例對(duì)第一特定位和第二特定位的位數(shù)可以不做限定。但需要說(shuō)明的是,位于第一特定位的該第一內(nèi)容和位于第二特定位的該第二內(nèi)容至少共同包括該存儲(chǔ)地址的所有內(nèi)容。比如,當(dāng)該存儲(chǔ)地址為0000000000000001時(shí),該第一內(nèi)容和第二內(nèi)容應(yīng)共同覆蓋該存儲(chǔ)地址的所有內(nèi)容,即應(yīng)覆蓋“0000000000000001”。具體地,比如第一內(nèi)容可以為位于該存儲(chǔ)地址的高8位的內(nèi)容“00000000”,而該第二內(nèi)容可以為位于該存儲(chǔ)地址的低八位的內(nèi)容“00000001”;或者,比如第一內(nèi)容可以為位于該存儲(chǔ)地址的高10位的內(nèi)容“0000000000 ”,而該第二內(nèi)容可以為位于該存儲(chǔ)地址的低八位的內(nèi)容“00000001 ”。
[0054]本發(fā)明實(shí)施例中,通過(guò)第一特定位和第二特定位中的內(nèi)容至少共同包括該存儲(chǔ)地址的所有內(nèi)容,可以使得無(wú)論針對(duì)哪個(gè)數(shù)據(jù)塊的存儲(chǔ)地址而言,由第一特定位和第二特定位中的內(nèi)容,均可以實(shí)現(xiàn)共同唯一映射一個(gè)目錄。具體映射方式請(qǐng)參見(jiàn)后文的步驟23和步驟24,在此不再贅述。
[0055]此外需要說(shuō)明的是,第一特定位的位數(shù)可以大于預(yù)先規(guī)定的位數(shù)閾值,同時(shí)小于獲得的該存儲(chǔ)地址的總位數(shù)。其中,該位數(shù)閾值滿(mǎn)足:按照該位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與所述本地節(jié)點(diǎn)同處同一 CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和。由對(duì)第一特定位的位數(shù)的該限定可知,與現(xiàn)有技術(shù)中的全目錄技術(shù)相比,按照第一特定位的位數(shù)進(jìn)行尋址的不同尋址地址的最大個(gè)數(shù),不會(huì)超過(guò)按照數(shù)據(jù)塊的存儲(chǔ)地址的位數(shù)所能尋址的不同尋址地址的最大個(gè)數(shù)。
[0056]步驟23,根據(jù)確定的第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,確定尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間;
[0057]上述預(yù)先設(shè)置的用于存儲(chǔ)目錄的存儲(chǔ)空間的總個(gè)數(shù)可以等于根據(jù)第一特定位的位數(shù)可尋址的不同尋址地址的總個(gè)數(shù)。
[0058]根據(jù)上文可知,第一特定位的位數(shù)滿(mǎn)足:大于預(yù)先規(guī)定的位數(shù)閾值,同時(shí)小于獲得的該存儲(chǔ)地址的總位數(shù)。根據(jù)該條件可知,按照第一特定位的位數(shù)進(jìn)行尋址的不同尋址地址的最大個(gè)數(shù),不會(huì)超過(guò)按照數(shù)據(jù)塊的存儲(chǔ)地址的位數(shù)所能尋址的不同尋址地址的最大個(gè)數(shù),同時(shí)其所能尋址的不同尋址地址的最大個(gè)數(shù)也不會(huì)小于與本地節(jié)點(diǎn)同處同一 CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和。從而與現(xiàn)有技術(shù)中的全目錄技術(shù)相比,本發(fā)明實(shí)施例提供的該方案在減小NC的目錄存儲(chǔ)空間不足對(duì)(PU對(duì)于其緩存的遠(yuǎn)端節(jié)點(diǎn)的數(shù)據(jù)的使用的影響的同時(shí),大大減小了目錄對(duì)于存儲(chǔ)資源的
需求量。
[0059]步驟24,在確定出的具備與第一內(nèi)容相匹配的尋址地址的存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及CPU中被遠(yuǎn)端節(jié)點(diǎn)讀取的該數(shù)據(jù)塊所對(duì)應(yīng)的目錄。
[0060]本發(fā)明實(shí)施例中,該數(shù)據(jù)塊所對(duì)應(yīng)的目錄即表征該數(shù)據(jù)塊在遠(yuǎn)端節(jié)點(diǎn)的緩存情況的信息。與該目錄對(duì)應(yīng)存儲(chǔ)的該第二內(nèi)容主要用于后續(xù)當(dāng)需要對(duì)該目錄進(jìn)行查詢(xún)時(shí),可以與位于第一特定位的第一內(nèi)容共同作為唯一確定該條目錄的存儲(chǔ)位置的依據(jù)。具體實(shí)現(xiàn)對(duì)目錄進(jìn)行查詢(xún)的過(guò)程可以參見(jiàn)本說(shuō)明書(shū)后文中介紹的一種目錄的查詢(xún)方法。
[0061]可選的,本發(fā)明實(shí)施例提供的該方法中,第一內(nèi)容可以包含第一索引部分和第二索引部分?;诘谝凰饕糠趾偷诙饕糠?,上述步驟23的具體實(shí)現(xiàn)方式可以包括:
[0062]首先,根據(jù)第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,確定尋址地址與第一索引部分相匹配的存儲(chǔ)空間集合;
[0063]然后,再根據(jù)第二索引部分,從確定出的存儲(chǔ)空間集合中,確定尋址地址與第二索引部分相匹配的存儲(chǔ)空間。
[0064]舉例而言,假設(shè)該第二索引部分的位數(shù)為1,那么根據(jù)第二索引部分的位數(shù)可尋址的不同尋址地址的總個(gè)數(shù)為2。由此可以得出,尋址地址與第一索引部分相匹配的存儲(chǔ)空間集合包含兩個(gè)存儲(chǔ)空間,其分別具備尋址地址I和O。在這樣的場(chǎng)景下,當(dāng)?shù)诙饕糠譃镺時(shí),就可以從上述兩個(gè)存儲(chǔ)空間中,確定具備尋址地址“O”的存儲(chǔ)空間,作為對(duì)應(yīng)存儲(chǔ)第二內(nèi)容和被遠(yuǎn)端節(jié)點(diǎn)讀取的該數(shù)據(jù)塊所對(duì)應(yīng)的目錄的存儲(chǔ)空間。
[0065]本發(fā)明實(shí)施例中,可以靈活設(shè)置該第二索引部分的位數(shù),從而實(shí)現(xiàn)對(duì)存儲(chǔ)空間的靈活劃分。本發(fā)明實(shí)施例對(duì)第二索引部分的具體位數(shù)不做限定。
[0066]進(jìn)一步地,本發(fā)明實(shí)施例中,存儲(chǔ)空間還可以進(jìn)一步劃分為多個(gè)存儲(chǔ)子空間,而第二內(nèi)容和與上述數(shù)據(jù)塊對(duì)應(yīng)的目錄可以存儲(chǔ)在某個(gè)存儲(chǔ)子空間中。具體地,在確定出的上述存儲(chǔ)空間中對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及該數(shù)據(jù)塊所對(duì)應(yīng)的目錄的實(shí)現(xiàn)過(guò)程可以包括:
[0067]首先,從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,確定一個(gè)存儲(chǔ)子空間;
[0068]然后,在確定出的該存儲(chǔ)子空間中,對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及該數(shù)據(jù)塊所對(duì)應(yīng)的目錄。
[0069]比如,假設(shè)按照第一內(nèi)容中的第一索引部分而尋址到的尋址地址所指向的存儲(chǔ)空間集合的大小為512bit,且假設(shè)第一內(nèi)容中的第二索引部分的位數(shù)為I。那么,該存儲(chǔ)空間集合實(shí)際包含兩個(gè)存儲(chǔ)空間。若進(jìn)一步假設(shè)一個(gè)存儲(chǔ)空間可以被劃分為16個(gè)大小相等的存儲(chǔ)子空間,那么在對(duì)第二內(nèi)容和目錄進(jìn)行存儲(chǔ)時(shí),可以從該16個(gè)存儲(chǔ)子空間中選取一個(gè)存儲(chǔ)子空間,然后在該存儲(chǔ)子控件部分中對(duì)應(yīng)存儲(chǔ)該第二內(nèi)容和目錄。
[0070]需要說(shuō)明的是,采用本發(fā)明實(shí)施例提供的方案,在確定出的存儲(chǔ)空間中對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及目錄時(shí),可能會(huì)出現(xiàn)根據(jù)第一內(nèi)容所尋址到的存儲(chǔ)空間已滿(mǎn)的情況。為了在這樣的情況下實(shí)現(xiàn)對(duì)目錄的成功存儲(chǔ),前文所述的步驟24的具體實(shí)現(xiàn)方式可以包括:
[0071]首先,判斷確定出的尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間中是否已存儲(chǔ)有其他目錄;
[0072]然后,若判斷結(jié)果為否,則在確定出的該存儲(chǔ)空間中對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及被遠(yuǎn)端節(jié)點(diǎn)所訪問(wèn)的該數(shù)據(jù)塊所對(duì)應(yīng)的目錄;而若判斷結(jié)果為是,則在釋放確定出的存儲(chǔ)空間后,再在該存儲(chǔ)空間中對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及該數(shù)據(jù)塊所對(duì)應(yīng)的目錄。
[0073]通過(guò)本發(fā)明實(shí)施例提供的上述方法,由于第一特定位的位數(shù)被設(shè)置為大于預(yù)先規(guī)定的位數(shù)閾值,且小于數(shù)據(jù)塊的存儲(chǔ)地址的總位數(shù),從而按照第一特定位的位數(shù)進(jìn)行尋址時(shí),其所能尋址的不同尋址地址的最大個(gè)數(shù)不會(huì)超過(guò)按照數(shù)據(jù)塊的存儲(chǔ)地址的位數(shù)所能尋址的不同尋址地址的最大個(gè)數(shù),同時(shí)其所能尋址的不同尋址地址的最大個(gè)數(shù)也不會(huì)小于與本地節(jié)點(diǎn)同處同一 CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和,從而與現(xiàn)有技術(shù)中的全目錄技術(shù)相比,本發(fā)明實(shí)施例提供的該方案在減小NC的目錄存儲(chǔ)空間不足對(duì)CPU對(duì)于其緩存的遠(yuǎn)端節(jié)點(diǎn)的數(shù)據(jù)的使用的影響的同時(shí),大大減小了目錄對(duì)于存儲(chǔ)資源的需求量。
[0074]出于與本發(fā)明實(shí)施例提供的一種目錄的存儲(chǔ)方法相同的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種目錄的查詢(xún)方法,該方法具體包括如圖3所示的下述步驟:
[0075]步驟31,本地節(jié)點(diǎn)中的NC獲得數(shù)據(jù)塊在本地節(jié)點(diǎn)中的CPU中的存儲(chǔ)地址;
[0076]步驟32,確定分別位于該存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;其中,該第一內(nèi)容和該第二內(nèi)容至少共同包括該存儲(chǔ)地址的所有內(nèi)容;并且,第一特定位的位數(shù)滿(mǎn)足:大于預(yù)先規(guī)定的位數(shù)閾值,且小于該存儲(chǔ)地址的總位數(shù);該位數(shù)閾值滿(mǎn)足:按照該位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與本地節(jié)點(diǎn)同處同一 CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和;
[0077]步驟33,根據(jù)第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,查詢(xún)尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間;其中,預(yù)先設(shè)置的存儲(chǔ)空間的總個(gè)數(shù)一般可以等于根據(jù)第一特定位的位數(shù)可尋址的不同尋址地址的總個(gè)數(shù);
[0078]步驟34,根據(jù)第二內(nèi)容,從查詢(xún)到的尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間中,查詢(xún)與第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的目錄。其中,這里所述的目錄用于記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)于步驟31中所述的數(shù)據(jù)塊的緩存情況。
[0079]可選的,若第一內(nèi)容包含第一索引部分和第二索引部分,那么上述步驟33的具體實(shí)現(xiàn)方式可以包括如下步驟:
[0080]首先,根據(jù)第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,查詢(xún)尋址地址與第一索引部分相匹配的存儲(chǔ)空間集合;
[0081]然后,根據(jù)第二索引部分,從查詢(xún)到的尋址地址與第一索引部分相匹配的存儲(chǔ)空間集合中,查詢(xún)尋址地址與第二索引部分相匹配的存儲(chǔ)空間。
[0082]可選的,若存儲(chǔ)空間被按照預(yù)定存儲(chǔ)空間劃分方式進(jìn)行了劃分,那么,步驟34的具體實(shí)現(xiàn)過(guò)程可以包括:
[0083]根據(jù)第二內(nèi)容,從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,查詢(xún)與第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的目錄。
[0084]為了具體說(shuō)明本發(fā)明實(shí)施例提供的上述方案在實(shí)際中的應(yīng)用,以下著重介紹該方案在實(shí)際中的兩個(gè)具體的實(shí)施例。[0085]實(shí)施例1
[0086]在實(shí)施例1中,假設(shè)用作對(duì)CPU的內(nèi)存進(jìn)行擴(kuò)展的DI麗(后文簡(jiǎn)稱(chēng)CPU DI麗)中每512Bit的數(shù)據(jù)構(gòu)成一個(gè)Cache Line (即相當(dāng)于前文所說(shuō)的數(shù)據(jù)塊),且每個(gè)Cache Line均唯一對(duì)應(yīng)CPU的一個(gè)存儲(chǔ)地址。此外,假設(shè)當(dāng)Cache Line的數(shù)據(jù)被遠(yuǎn)端節(jié)點(diǎn)訪問(wèn)后,該CPU節(jié)點(diǎn)的NC需要在自身的存儲(chǔ)空間中存儲(chǔ)一條相應(yīng)的目錄,以記錄Cache Line的數(shù)據(jù)被遠(yuǎn)端節(jié)點(diǎn)緩存的情況,比如需要記錄該數(shù)據(jù)被哪個(gè)遠(yuǎn)端節(jié)點(diǎn)緩存,以及該遠(yuǎn)端節(jié)點(diǎn)對(duì)該數(shù)據(jù)是獨(dú)占還是與其他遠(yuǎn)端節(jié)點(diǎn)共享,等等。
[0087]在上述場(chǎng)景下,為了解決現(xiàn)有技術(shù)中為了減小NC的目錄存儲(chǔ)空間不足對(duì)CPU對(duì)于其緩存的遠(yuǎn)端節(jié)點(diǎn)的數(shù)據(jù)的使用的影響,會(huì)導(dǎo)致產(chǎn)生非常大的存儲(chǔ)資源需求量的問(wèn)題,實(shí)施例1中按照如圖4所示的映射方式,對(duì)CPU DMM與用于對(duì)NC的存儲(chǔ)空間進(jìn)行擴(kuò)展的DMM (后文簡(jiǎn)稱(chēng)NC DMM)進(jìn)行了映射。對(duì)圖4的說(shuō)明如下:
[0088]NC DI麗上每個(gè)可存儲(chǔ)512Bit的數(shù)據(jù)的存儲(chǔ)空間集合均包含2個(gè)16路組相聯(lián)的存儲(chǔ)空間,后文統(tǒng)稱(chēng)該存儲(chǔ)空間為Cache。進(jìn)一步地,每個(gè)Cache又被分劃分成了 16個(gè)部分,其中每部分相當(dāng)于前文所述的存儲(chǔ)子空間,其標(biāo)識(shí)分別為WayO?Wayl5。WayO?Wayl5可稱(chēng)為16路的目錄存儲(chǔ)器。
[0089]圖4中,CPU DMM中的存儲(chǔ)空間與NC DIMM中的存儲(chǔ)空間集合的映射方式包括:CPU DIMM中的每個(gè)Cache Line所分別唯一對(duì)應(yīng)的存儲(chǔ)地址中,處于第一特定位中的第一索引內(nèi)容被用作對(duì)NC DMM中的各個(gè)可存儲(chǔ)512Bit的數(shù)據(jù)的存儲(chǔ)空間集合進(jìn)行尋址的尋址地址,也稱(chēng)Index ;而CPU DIMM中的每個(gè)Cache Line所分別唯一對(duì)應(yīng)的存儲(chǔ)地址中,處于第一特定位中的第二索引內(nèi)容被用作對(duì)NC DIMM中的各個(gè)可存儲(chǔ)512Bit的數(shù)據(jù)的存儲(chǔ)空間集合所包含的存儲(chǔ)空間進(jìn)行尋址的尋址地址,也稱(chēng)Mux。此外,CPU DIMM中的每個(gè)CacheLine所分別唯一對(duì)應(yīng)的存儲(chǔ)地址中,處于第二特定位的內(nèi)容被用作與目錄對(duì)應(yīng)存儲(chǔ)在NCDIMM中的內(nèi)容。其中,該第二特定位中的內(nèi)容可稱(chēng)為T(mén)ag。需要說(shuō)明的是,第一特定位中的內(nèi)容(即本發(fā)明實(shí)施例中所述的第一內(nèi)容)和第二特定位中的內(nèi)容(即本發(fā)明實(shí)施例中所述的第二內(nèi)容)至少共同包括數(shù)據(jù)的存儲(chǔ)地址的所有內(nèi)容,以使得根據(jù)第一內(nèi)容和第二內(nèi)容,可以唯一確定一條存儲(chǔ)地址,即唯一確定一條目錄的存儲(chǔ)空間。
[0090]通過(guò)如圖4所示的映射方式,首先可以實(shí)現(xiàn)根據(jù)Index建立CPU DIMM中的多個(gè)Cache Line所分別對(duì)應(yīng)的存儲(chǔ)地址與NC DIMM中的同一存儲(chǔ)空間集合的地址的映射關(guān)系;進(jìn)一步地,若需要對(duì)該存儲(chǔ)空間集合進(jìn)行細(xì)分,則可以根據(jù)Mux建立CPU DMM中的多個(gè)Cache Line所分別對(duì)應(yīng)的存儲(chǔ)地址與該存儲(chǔ)空間集合所包含的存儲(chǔ)空間的映射關(guān)系;再進(jìn)一步地,還可以根據(jù)Tag建立CPU DMM中的多個(gè)Cache Line所分別對(duì)應(yīng)的存儲(chǔ)地址與該存儲(chǔ)空間集合所包含的存儲(chǔ)子空間的映射關(guān)系。
[0091]通過(guò)如圖4所示的映射方式,相當(dāng)于將NC DMM的深度擴(kuò)展了 2倍,而寬度則縮小了 1/2。
[0092]實(shí)施例1中,WayO?Wayl5中的任意存儲(chǔ)子空間所存儲(chǔ)的信息的格式如圖5所示。圖5中,每個(gè)存儲(chǔ)子空間中所存儲(chǔ)的信息包括=IBit的目錄狀態(tài)指示標(biāo)志V,8Bit的Tag,7Bit的Dir。對(duì)圖5的具體說(shuō)明如下:
[0093]目錄狀態(tài)指示標(biāo)志V,用于表征與該有效標(biāo)志同處一個(gè)存儲(chǔ)子空間中的目錄是否處于有效狀態(tài)。一般說(shuō)來(lái),在NC中未存儲(chǔ)有任何目錄的初始階段,NC DIMM中的所有目錄狀態(tài)指示標(biāo)志V均用于分別表征相應(yīng)的目錄處于無(wú)效狀態(tài)。
[0094]Tag即前文所述的第二內(nèi)容。由于在實(shí)施例1中,NC DMM的一個(gè)存儲(chǔ)空間集合會(huì)映射超過(guò)32個(gè)Cache Line所對(duì)應(yīng)的目錄,因此針對(duì)多個(gè)Cache Line所分別對(duì)應(yīng)的存儲(chǔ)地址而言,在根據(jù)從存儲(chǔ)地址中確定出的Index和Mux來(lái)尋址存儲(chǔ)空間時(shí),可能會(huì)出現(xiàn)的多個(gè)Cache Line所分別對(duì)應(yīng)的存儲(chǔ)地址會(huì)同時(shí)映射同一存儲(chǔ)空間的情況。在這樣的情況下,就需要進(jìn)一步進(jìn)行Tag的匹配,從而根據(jù)實(shí)現(xiàn)Index、Mux和Tag唯一定位出一個(gè)Cache Line對(duì)應(yīng)的目錄。
[0095]Dir即目錄。用于存儲(chǔ)Dir的7bit中,可以分配Ibit來(lái)作為狀態(tài)位state,對(duì)用于表征數(shù)據(jù)處于獨(dú)占或共享狀態(tài)的信息進(jìn)行存儲(chǔ);而此外的6bit則用于存儲(chǔ)用于表征數(shù)據(jù)在遠(yuǎn)端節(jié)點(diǎn)中的存儲(chǔ)位置的信息。具體用于存儲(chǔ)Dir的7個(gè)bit的劃分示意圖如圖6所示。其中,用于表征數(shù)據(jù)在遠(yuǎn)端節(jié)點(diǎn)中的存儲(chǔ)位置的信息是一個(gè)長(zhǎng)度為6bit的向量vector。
[0096]基于實(shí)施例1中的上述映射關(guān)系,如圖1所示的CC-NUMA系統(tǒng)中的一個(gè)簡(jiǎn)單的跨節(jié)點(diǎn)的數(shù)據(jù)讀操作的實(shí)現(xiàn)流程如圖7所示。需要說(shuō)明的是,該數(shù)據(jù)讀操作具體是指Nodel的CPU發(fā)起對(duì)NodeO的CPU的內(nèi)存地址A的讀請(qǐng)求,如圖8所示。
[0097]具體地,圖7所示的跨節(jié)點(diǎn)的數(shù)據(jù)讀操作的實(shí)現(xiàn)流程具體包括下述主要步驟:
[0098]步驟71,在CC-NUMA系統(tǒng)的初始狀態(tài)下,節(jié)點(diǎn)Nodel的CPU發(fā)起對(duì)NodeO的CPU內(nèi)存地址A的讀請(qǐng)求,其中,該讀請(qǐng)求中包含指向一個(gè)Cache Line所唯一對(duì)應(yīng)的地址A ;
[0099]實(shí)施例1中,可以假設(shè)CC-NUMA系統(tǒng)在初始狀態(tài)時(shí),所有的目錄狀態(tài)指示標(biāo)志V均分別表征相應(yīng)的目錄處于無(wú)效狀態(tài)。
[0100]步驟72,NCO在接收到內(nèi)存地址A的讀請(qǐng)求后,由于查詢(xún)到所有的目錄狀態(tài)指示標(biāo)志V均分別表征相應(yīng)的目錄處于無(wú)效狀態(tài),即還沒(méi)有任何的遠(yuǎn)端節(jié)點(diǎn)緩存內(nèi)存地址A中保存的數(shù)據(jù)的副本,從而向NCO所控制的CPU發(fā)起內(nèi)存地址A的讀請(qǐng)求;
[0101]步驟73,存儲(chǔ)有上述數(shù)據(jù)的CPU將自身的內(nèi)存地址A中的數(shù)據(jù)返回給NCO,并由該NCO將該數(shù)據(jù)轉(zhuǎn)發(fā)給節(jié)點(diǎn)Nodel中的CPU ;
[0102]步驟74,NC0按照如圖9所示的選取方式,從內(nèi)存地址A的不同位中選取內(nèi)容分別作為Index、Mux和Tag,從而相當(dāng)于得到一個(gè)如圖9所示的重映射地址A’ ;
[0103]需要說(shuō)明的是,本實(shí)施例1中,考慮到后續(xù)對(duì)于NodeO的CPU中的Cache Line所對(duì)應(yīng)的目錄的查詢(xún)往往會(huì)采用連續(xù)查詢(xún)的方式,即其可能會(huì)對(duì)NodeO的CPU的在地址上連續(xù)的多個(gè)Cache Line所對(duì)應(yīng)的目錄進(jìn)行查詢(xún),因此,在對(duì)目錄進(jìn)行存儲(chǔ)時(shí),可以在內(nèi)存地址A中選取一些位中的內(nèi)容,作為圖9中所示的“關(guān)聯(lián)”這一內(nèi)容。后續(xù)在對(duì)某個(gè)目錄進(jìn)行查詢(xún)時(shí),可以根據(jù)該“關(guān)聯(lián)”的位數(shù),一次性查詢(xún)到多個(gè)目錄并存儲(chǔ)到NodeO的內(nèi)存中,以便于與連續(xù)查詢(xún)的方式相匹配,從而提高查詢(xún)效率。實(shí)施例1中,可以將“關(guān)聯(lián)”視為T(mén)ag的一部分。
[0104]實(shí)施例1中,可以選取內(nèi)存地址A的低位中的幾位中的內(nèi)容作為關(guān)聯(lián),比如選取[1:0]這兩位中的內(nèi)容作為“關(guān)聯(lián)”,則針對(duì)內(nèi)存地址A以及與內(nèi)存地址A相似的多個(gè)內(nèi)存地址而言,當(dāng)該些內(nèi)存地址中除[1:0]這兩位外的其他位中的內(nèi)容均相同時(shí),[1:0]這兩位中的內(nèi)容分別為00、01、10和11的四個(gè)內(nèi)存地址中保存的數(shù)據(jù)的目錄會(huì)存儲(chǔ)在NC DMM中的、地址連續(xù)的存儲(chǔ)子空間中。
[0105]此外,可以選取內(nèi)存地址A中的部分高位中的內(nèi)容作為T(mén)ag,這樣可以保證在數(shù)據(jù)連續(xù)訪問(wèn)模式下,同一存儲(chǔ)空間中的存儲(chǔ)子空間不會(huì)被頻繁競(jìng)爭(zhēng)。
[0106]實(shí)施例1中,還可以選取內(nèi)存地址A的I位中的內(nèi)容作為Mux。一般地,不宜選取內(nèi)存地址A中太高的位中的內(nèi)容作為Mux。這是由于如果選取內(nèi)存地址A中太高的位中的內(nèi)容作為Mux,則可能使得CPU DIMM中內(nèi)存地址連續(xù)的兩個(gè)Cache Line所對(duì)應(yīng)的目錄最終被存儲(chǔ)到地址之間的距離較遠(yuǎn)的不同存儲(chǔ)空間中,從而不利于后續(xù)對(duì)于目錄的連續(xù)查詢(xún)。
[0107]步驟75,NC0根據(jù)通過(guò)執(zhí)行步驟74而得到的重映射地址A’,對(duì)內(nèi)存地址A中的數(shù)據(jù)所對(duì)應(yīng)的目錄進(jìn)行存儲(chǔ);
[0108]具體地,根據(jù)重映射地址A’中的Index,可以在NCODMM中,確定一個(gè)存儲(chǔ)空間集合;進(jìn)而根據(jù)重映射地址A’中Mux,可以在確定出的該存儲(chǔ)空間集合中進(jìn)一步確定出一個(gè)存儲(chǔ)空間;進(jìn)一步地,就可以將Tag和內(nèi)存地址A中的數(shù)據(jù)所對(duì)應(yīng)的目錄,存儲(chǔ)到確定出的該存儲(chǔ)空間中的一個(gè)存儲(chǔ)子空間中。需要說(shuō)明的是,在對(duì)Tag和目錄進(jìn)行存儲(chǔ)后,該存儲(chǔ)子空間中的目錄狀態(tài)指示標(biāo)志V被設(shè)置為表征目錄處于有效狀態(tài);并且,該存儲(chǔ)子空間中的狀態(tài)位state也根據(jù)上述數(shù)據(jù)處于獨(dú)占或共享狀態(tài)的信息被進(jìn)行了設(shè)置;同時(shí),向量vector也根據(jù)數(shù)據(jù)在遠(yuǎn)端節(jié)點(diǎn)中的存儲(chǔ)位置的信息進(jìn)行了設(shè)置。
[0109]實(shí)施例1中,在步驟75的執(zhí)行過(guò)程中,當(dāng)根據(jù)Index和Mux確定出了一個(gè)存儲(chǔ)空間后,若NCO發(fā)現(xiàn)該存儲(chǔ)空間所包含的所有存儲(chǔ)子空間中的目錄狀態(tài)指示標(biāo)志V當(dāng)前已被設(shè)置為表征目錄處于有效狀態(tài),即該存儲(chǔ)空間已被占用,則NCO可以從該存儲(chǔ)空間所包含的所有存儲(chǔ)子空間中,選擇并釋放一個(gè)存儲(chǔ)子空間,并將上述數(shù)據(jù)的目錄和上述Tag存儲(chǔ)到釋放后的該存儲(chǔ)子空間中,從而實(shí)現(xiàn)不同的目錄之間對(duì)于存儲(chǔ)子空間的“競(jìng)爭(zhēng)”。
[0110]實(shí)施例1中,可以通過(guò)在NCO中設(shè)置如圖10所示的協(xié)議處理引擎來(lái)完成對(duì)步驟75的實(shí)現(xiàn)。由于目錄是存儲(chǔ)于用于對(duì)NCO的內(nèi)存進(jìn)行擴(kuò)展的NC0DIMM中,因此,NCO中還可以進(jìn)一步設(shè)置一個(gè)如圖10所示存儲(chǔ)控制器,以實(shí)現(xiàn)后續(xù)對(duì)于目錄的查詢(xún)。
[0111]上述步驟71?步驟75執(zhí)行完畢后,NCO即完成了對(duì)內(nèi)存地址A中的數(shù)據(jù)所對(duì)應(yīng)的目錄的存儲(chǔ)。以后進(jìn)一步通過(guò)對(duì)后續(xù)步驟76和步驟77的介紹,說(shuō)明如何實(shí)現(xiàn)對(duì)目錄的查詢(xún)。
[0112]步驟76,NCO獲得待查詢(xún)的目錄所對(duì)應(yīng)的CPU的內(nèi)存地址A ;
[0113]步驟77,NC0按照如圖11所示的尋址方式,從NCODMM中,尋址與Index、Mux相匹配的NC0DIMM的存儲(chǔ)空間,并在尋址到存儲(chǔ)空間中,查詢(xún)與Tag對(duì)應(yīng)存儲(chǔ)的目錄,若查詢(xún)到該存儲(chǔ)空間中有與Tag對(duì)應(yīng)存儲(chǔ)的目錄,則可以獲取該目錄,而若查詢(xún)到該存儲(chǔ)空間中沒(méi)有與Tag對(duì)應(yīng)存儲(chǔ)的目錄,則確定該目錄未進(jìn)行存儲(chǔ)。
[0114]步驟77中,上述Index、Mux以及Tag均是根據(jù)內(nèi)存地址A確定出的。
[0115]與現(xiàn)有技術(shù)中的全目錄技術(shù)相比可知:按照現(xiàn)有技術(shù),若假設(shè)每一個(gè)Cache Line都分別對(duì)應(yīng)一個(gè)大小為8bit的目錄,那么CPU DMM的容量與NC DMM的容量之比為64:1,即2TByte的CPU DIMM需要32GByte的NC DIMM ;而采用本發(fā)明實(shí)施例1中的方案,在目錄之間采用競(jìng)爭(zhēng)的方式來(lái)實(shí)現(xiàn)存儲(chǔ)的情況下,若Tag的長(zhǎng)度為8bit,V的長(zhǎng)度為IBit,Dir的長(zhǎng)度為7bit,那么CPU DIMM的容量與NC DIMM的容量之比為(32*2~4)/1= (2~9)/l,SP2TByte的CPU DIMM只需要4GByte的NC DIMM。由此可見(jiàn),采用本發(fā)明實(shí)施例提供的方案可以明顯壓縮目錄對(duì)于NC DMM的需求。
[0116]實(shí)施例2[0117]相比于實(shí)施例1,實(shí)施例2與實(shí)施例1之間的主要差別在于Cache Line的地址與NC DIMM中的存儲(chǔ)空間的地址的映射方式不同。
[0118]具體而言,實(shí)施例2中的Cache Line的地址與NC DIMM中的存儲(chǔ)空間的地址的映射方式如圖12所示。對(duì)于如圖12所示的該映射關(guān)系的說(shuō)明與前文對(duì)圖4所示的映射關(guān)系的說(shuō)明類(lèi)似,在此不再贅述。
[0119]由圖12所示的映射關(guān)系可知,在實(shí)施例2中,Mux的位數(shù)為2。這樣,實(shí)施例2中的根據(jù)Index和Mux所尋址到的每個(gè)存儲(chǔ)空間集合包含的是4個(gè)存儲(chǔ)空間,其中,每個(gè)存儲(chǔ)空間由被劃分為8個(gè)存儲(chǔ)子空間,如圖13所示。
[0120]實(shí)施例2中,若假設(shè)每一個(gè)Cache Line都分別對(duì)應(yīng)一個(gè)大小為8bit的目錄、Tag的長(zhǎng)度為8bit、V的長(zhǎng)度為lBit,Dir的長(zhǎng)度為7bit,那么,CPU DIMM的容量與NC DIMM的容量之比為(32*2~5)/1= (2~10)/1,即 2TByte 的 CPU DIMM 只需要 2GByte 的 NC DIMM。
[0121]實(shí)施例3
[0122]相比于實(shí)施例1和實(shí)施例2,實(shí)施例3與實(shí)施例1和實(shí)施例2之間的主要差別在于Cache Line的地址與NC DIMM中的存儲(chǔ)空間的地址的映射方式不同。
[0123]具體而言,實(shí)施例3中的Cache Line的地址與NC DIMM中的存儲(chǔ)空間的地址的映射方式如圖14所示。對(duì)于圖14所示的該映射關(guān)系的說(shuō)明與前文對(duì)圖4和圖12所示的映射關(guān)系的說(shuō)明類(lèi)似,在此不再贅述。
[0124]由圖14所示的映射關(guān)系可知,在實(shí)施例3中未從Cache Line的地址中選取內(nèi)容作為Mux。這樣,實(shí)施例3中的根據(jù)Index和Mux所尋址到的每個(gè)存儲(chǔ)空間集合包含的是I個(gè)存儲(chǔ)空間,其中,每個(gè)存儲(chǔ)空間由被劃分為32個(gè)存儲(chǔ)子空間。
[0125]出于與本發(fā)明實(shí)施例提供的目錄的存儲(chǔ)方法相同的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種存儲(chǔ)目錄的NC,用以解決現(xiàn)有技術(shù)中為了減小NC的目錄存儲(chǔ)空間不足對(duì)CPU對(duì)于其緩存的遠(yuǎn)端節(jié)點(diǎn)的數(shù)據(jù)的使用的影響,會(huì)導(dǎo)致產(chǎn)生非常大的存儲(chǔ)資源需求量的問(wèn)題。其中,這里所述的目錄用于記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)于本地節(jié)點(diǎn)中的CPU中的數(shù)據(jù)塊的緩存情況,該本地節(jié)點(diǎn)為該存儲(chǔ)目錄的NC所在的節(jié)點(diǎn)。具體地,該NC的具體結(jié)構(gòu)示意圖如圖15所示,包括地址獲得單元151、內(nèi)容確定單元152、存儲(chǔ)空間確定單元153和目錄存儲(chǔ)執(zhí)行單元154。對(duì)該些單元的具體功能介紹如下:
[0126]地址獲得單元151,用于獲得CPU中被遠(yuǎn)端節(jié)點(diǎn)讀取的數(shù)據(jù)塊在CPU中的存儲(chǔ)地址;
[0127]內(nèi)容確定單元152,用于確定分別位于存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;其中,第一內(nèi)容和第二內(nèi)容至少共同包括存儲(chǔ)地址的所有內(nèi)容;第一特定位的位數(shù)大于預(yù)先規(guī)定的位數(shù)閾值,且小于存儲(chǔ)地址的總位數(shù);位數(shù)閾值滿(mǎn)足:按照位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與本地節(jié)點(diǎn)同處同一 CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和;
[0128]存儲(chǔ)空間確定單元153,用于根據(jù)第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,確定尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間;
[0129]目錄存儲(chǔ)執(zhí)行單元154,用于在確定出的存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及目錄。
[0130]可選的,當(dāng)?shù)谝粌?nèi)容包含第一索引部分和第二索引部分時(shí),存儲(chǔ)空間確定單元153具體可以用于:根據(jù)第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,確定尋址地址與第一索引部分相匹配的存儲(chǔ)空間集合;根據(jù)第二索引部分,從確定出的存儲(chǔ)空間集合中,確定尋址地址與第二索引部分相匹配的存儲(chǔ)空間。
[0131]可選的,目錄存儲(chǔ)執(zhí)行單元154具體可以用于:從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,確定一個(gè)存儲(chǔ)子空間;在確定出的存儲(chǔ)子空間中,對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及目錄。
[0132]可選的,目錄存儲(chǔ)執(zhí)行單元154具體可以用于:判斷確定出的存儲(chǔ)空間中是否已存儲(chǔ)有其他目錄;在判斷結(jié)果為否時(shí),在確定出的存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及目錄;在判斷結(jié)果為是時(shí),釋放確定出的存儲(chǔ)空間后,在確定出的存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及目錄。
[0133]出于本發(fā)明實(shí)施例提供的一種目錄的查詢(xún)方法的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種查詢(xún)目錄的NC,其具體結(jié)構(gòu)示意圖如圖16所示,包括存儲(chǔ)地址獲得單元161、內(nèi)容確定單元162、存儲(chǔ)空間查詢(xún)單元163和目錄查詢(xún)單元164。對(duì)于該些單元的功能介紹如下:
[0134]存儲(chǔ)地址獲得單元161,用于獲得數(shù)據(jù)塊在CPU中的存儲(chǔ)地址;其中,這里所述的CPU為該查詢(xún)目錄的NC所在的本地節(jié)點(diǎn)中的CPU ;
[0135]內(nèi)容確定單元162,用于確定分別位于存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;其中,第一內(nèi)容和第二內(nèi)容至少共同包括存儲(chǔ)地址的所有內(nèi)容;第一特定位的位數(shù)大于預(yù)先規(guī)定的位數(shù)閾值,且小于存儲(chǔ)地址的總位數(shù);位數(shù)閾值滿(mǎn)足:按照位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與本地節(jié)點(diǎn)同處同一 CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和;
[0136]存儲(chǔ)空間查詢(xún)單元163,用于根據(jù)第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,查詢(xún)尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間;
[0137]目錄查詢(xún)單元164,用于根據(jù)第二內(nèi)容,從查詢(xún)到的尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間中,查詢(xún)與第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的目錄;其中,該目錄用于記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)于數(shù)據(jù)塊的緩存情況。
[0138]可選的,當(dāng)?shù)谝粌?nèi)容包含第一索引部分和第二索引部分時(shí),存儲(chǔ)空間查詢(xún)單元163具體可以用于:
[0139]根據(jù)第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,查詢(xún)尋址地址與第一索引部分相匹配的存儲(chǔ)空間集合;
[0140]根據(jù)第二索引部分,從查詢(xún)到的尋址地址與第一索引部分相匹配的存儲(chǔ)空間集合中,查詢(xún)尋址地址與第二索引部分相匹配的存儲(chǔ)空間。
[0141]可選的,目錄查詢(xún)單元164具體可以用于:
[0142]根據(jù)第二內(nèi)容,從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,查詢(xún)與第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的目錄。
[0143]出于與本發(fā)明實(shí)施例提供的目錄的存儲(chǔ)方法相同的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種存儲(chǔ)目錄的NC,用以解決現(xiàn)有技術(shù)中為了減小NC的目錄存儲(chǔ)空間不足對(duì)CPU對(duì)于其緩存的遠(yuǎn)端節(jié)點(diǎn)的數(shù)據(jù)的使用的影響,會(huì)導(dǎo)致產(chǎn)生非常大的存儲(chǔ)資源需求量的問(wèn)題。其中,這里所述的目錄用于記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)于本地節(jié)點(diǎn)中的CPU中的數(shù)據(jù)塊的緩存情況,該本地節(jié)點(diǎn)為該存儲(chǔ)目錄的NC所在的節(jié)點(diǎn)。具體地,該NC的具體結(jié)構(gòu)示意圖如圖17所示,包括處理器171和存儲(chǔ)器172。對(duì)該些功能實(shí)體的具體功能介紹如下:
[0144]處理器171,用于獲得CPU中被遠(yuǎn)端節(jié)點(diǎn)讀取的數(shù)據(jù)塊在CPU中的存儲(chǔ)地址;確定分別位于存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;根據(jù)第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的存儲(chǔ)器172的各個(gè)存儲(chǔ)空間中,確定尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間;在確定出的存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及目錄;
[0145]存儲(chǔ)器172,用于對(duì)所述第二內(nèi)容以及目錄進(jìn)行存儲(chǔ)。
[0146]其中需要說(shuō)明的是:
[0147]第一內(nèi)容和第二內(nèi)容至少共同包括存儲(chǔ)地址的所有內(nèi)容;
[0148]第一特定位的位數(shù)大于預(yù)先規(guī)定的位數(shù)閾值,且小于存儲(chǔ)地址的總位數(shù);
[0149]該位數(shù)閾值滿(mǎn)足:按照位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與本地節(jié)點(diǎn)同處同一 CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和。
[0150]本發(fā)明實(shí)施例中,該NC也可以不包含存儲(chǔ)器172,即用于存儲(chǔ)目錄的存儲(chǔ)器也可以不作為該NC的一部分,而是以獨(dú)立于NC外的存儲(chǔ)器的形式存在。
[0151]可選的,當(dāng)?shù)谝粌?nèi)容包含第一索引部分和第二索引部分時(shí),處理器171具體可以用于:根據(jù)第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,確定尋址地址與第一索引部分相匹配的存儲(chǔ)空間集合;根據(jù)第二索引部分,從確定出的存儲(chǔ)空間集合中,確定尋址地址與第二索引部分相匹配的存儲(chǔ)空間。
[0152]可選的,處理器171具體可以用于:從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,確定一個(gè)存儲(chǔ)子空間;在確定出的存儲(chǔ)子空間中,對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及目錄。
[0153]可選的,處理器171具體可以用于:判斷確定出的存儲(chǔ)空間中是否已存儲(chǔ)有其他目錄;在判斷結(jié)果為否時(shí),在確定出的存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及目錄;在判斷結(jié)果為是時(shí),釋放確定出的存儲(chǔ)空間后,在確定出的存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)第二內(nèi)容以及目錄。
[0154]出于本發(fā)明實(shí)施例提供的一種目錄的查詢(xún)方法的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種查詢(xún)目錄的NC,其具體結(jié)構(gòu)示意圖如圖18所示,包括存儲(chǔ)器181和處理器182。對(duì)于該些功能實(shí)體的功能介紹如下:
[0155]存儲(chǔ)器181,用于存儲(chǔ)目錄;其中,這里所說(shuō)的目錄用于記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)于數(shù)據(jù)塊的緩存情況;
[0156]處理器182,用于獲得數(shù)據(jù)塊在CPU (這里所述的CPU為該查詢(xún)目錄的NC所在的本地節(jié)點(diǎn)中的CPU)中的存儲(chǔ)地址;確定分別位于存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,查詢(xún)尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間;根據(jù)第二內(nèi)容,從存儲(chǔ)器181的與查詢(xún)到的尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間中,查詢(xún)與第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的目錄。
[0157]需要說(shuō)明的是:
[0158]上述第一內(nèi)容和第二內(nèi)容至少共同包括存儲(chǔ)地址的所有內(nèi)容;
[0159]第一特定位的位數(shù)大于預(yù)先規(guī)定的位數(shù)閾值,且小于存儲(chǔ)地址的總位數(shù);[0160]位數(shù)閾值滿(mǎn)足:按照位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與本地節(jié)點(diǎn)同處同一 CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和。
[0161]本發(fā)明實(shí)施例中,該NC也可以不包含存儲(chǔ)器181,即存儲(chǔ)器181也可以不作為該NC的一部分,而是以獨(dú)立于NC外的存儲(chǔ)器的形式存在。
[0162]可選的,當(dāng)?shù)谝粌?nèi)容包含第一索引部分和第二索引部分時(shí),處理器182具體可以用于:
[0163]根據(jù)第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,查詢(xún)尋址地址與第一索引部分相匹配的存儲(chǔ)空間集合;
[0164]根據(jù)第二索引部分,從查詢(xún)到的尋址地址與第一索引部分相匹配的存儲(chǔ)空間集合中,查詢(xún)尋址地址與第二索引部分相匹配的存儲(chǔ)空間。
[0165]可選的,處理器182具體可以用于:
[0166]根據(jù)第二內(nèi)容,從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的尋址地址與第一內(nèi)容相匹配的存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,查詢(xún)與第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的目錄。
[0167]本發(fā)明實(shí)施例提供的上述方案中,由于第一特定位的位數(shù)被設(shè)置為大于預(yù)先規(guī)定的位數(shù)閾值,且小于數(shù)據(jù)的存儲(chǔ)地址的總位數(shù),且按照該位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與本地節(jié)點(diǎn)同處同一 CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和,從而按照第一特定位的位數(shù)進(jìn)行尋址時(shí),其所能尋址的不同尋址地址的最大個(gè)數(shù)不會(huì)超過(guò)按照數(shù)據(jù)的存儲(chǔ)地址的位數(shù)所能尋址的不同尋址地址的最大個(gè)數(shù),同時(shí)其所能尋址的不同尋址地址的最大個(gè)數(shù)也不會(huì)小于與本地節(jié)點(diǎn)同處同一CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和。因此與現(xiàn)有技術(shù)中的全目錄技術(shù)相比,本發(fā)明實(shí)施例提供的該方案在減小NC的目錄存儲(chǔ)空間不足對(duì)CPU對(duì)于其緩存的遠(yuǎn)端節(jié)點(diǎn)的數(shù)據(jù)的使用的影響的同時(shí),大大減小了目錄對(duì)于存儲(chǔ)資源的需求量。
[0168]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0169]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0170]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0171]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0172]盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
[0173]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種目錄的存儲(chǔ)方法,所述目錄用于記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)于本地節(jié)點(diǎn)中的中央處理器CPU中的數(shù)據(jù)塊的緩存情況,其特征在于,包括: 所述本地節(jié)點(diǎn)中的節(jié)點(diǎn)控制器NC獲得所述CPU中被所述遠(yuǎn)端節(jié)點(diǎn)讀取的所述數(shù)據(jù)塊在所述CPU中的存儲(chǔ)地址; 確定分別位于所述存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;其中,所述第一內(nèi)容和所述第二內(nèi)容至少共同包括所述存儲(chǔ)地址的所有內(nèi)容;所述第一特定位的位數(shù)大于預(yù)先規(guī)定的位數(shù)閾值,且小于所述存儲(chǔ)地址的總位數(shù);所述位數(shù)閾值滿(mǎn)足:按照所述位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與所述本地節(jié)點(diǎn)同處同一緩存一致性非對(duì)稱(chēng)存儲(chǔ)器訪問(wèn)CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和; 根據(jù)所述第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,確定尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間; 在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄。
2.如權(quán)利要求1所述的方法,其特征在于,所述第一內(nèi)容包含第一索引部分和第二索引部分;則 根據(jù)所述第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,確定尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間,具體包括: 根據(jù)所述第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,確定尋址地址與所述第一索引部分相匹配的存儲(chǔ)空間集合; 根據(jù)所述第二索引部分,從確定出的所述存儲(chǔ)空間集合中,確定尋址地址與所述第二索引部分相匹配的存儲(chǔ)空間。
3.如權(quán)利要求1或2所述的方法,其特征在于,在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄,具體包括: 從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的所述存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,確定一個(gè)存儲(chǔ)子空間; 在確定出的所述存儲(chǔ)子空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄。
4.如權(quán)利要求1所述的方法,其特征在于,在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄,具體包括: 判斷確定出的所述存儲(chǔ)空間中是否已存儲(chǔ)有其他目錄; 在判斷結(jié)果為否時(shí),在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄; 在判斷結(jié)果為是時(shí),釋放確定出的所述存儲(chǔ)空間后,在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄。
5.一種目錄的查詢(xún)方法,其特征在于,包括: 本地節(jié)點(diǎn)中的節(jié)點(diǎn)控制器NC獲得數(shù)據(jù)塊在本地節(jié)點(diǎn)中的中央處理器CPU中的存儲(chǔ)地址; 確定分別位于所述存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;其中,所述第一內(nèi)容和所述第二內(nèi)容至少共同包括所述存儲(chǔ)地址的所有內(nèi)容;所述第一特定位的位數(shù)大于預(yù)先規(guī)定的位數(shù)閾值,且小于所述存儲(chǔ)地址的總位數(shù);所述位數(shù)閾值滿(mǎn)足:按照所述位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與所述本地節(jié)點(diǎn)同處同一緩存一致性非對(duì)稱(chēng)存儲(chǔ)器訪問(wèn)CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和; 根據(jù)所述第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,查詢(xún)尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間; 根據(jù)所述第二內(nèi)容,從查詢(xún)到的尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間中,查詢(xún)與所述第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的目錄;其中,所述目錄用于記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)于所述數(shù)據(jù)塊的緩存情況。
6.如權(quán)利要求5所述的方法,其特征在于,所述第一內(nèi)容包含第一索引部分和第二索引部分;則 根據(jù)所述第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,查詢(xún)尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間,具體包括: 根據(jù)所述第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,查詢(xún)尋址地址與所述第一索引部分相匹配的存儲(chǔ)空間集合; 根據(jù)所述第二索引部分,從查詢(xún)到的尋址地址與所述第一索引部分相匹配的存儲(chǔ)空間集合中,查詢(xún)尋址地址與所述第二索引部分相匹配的存儲(chǔ)空間。
7.如權(quán)利要求5或6所述的方法,其特征在于,根據(jù)所述第二內(nèi)容,從查詢(xún)到的尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間中查詢(xún)所述目錄,具體包括: 根據(jù)所述第二內(nèi)容,從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,查詢(xún)與所述第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的所述目錄。
8.一種存儲(chǔ)目錄的節(jié)點(diǎn)控制器,所述目錄用于記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)于本地節(jié)點(diǎn)中的中央處理器CPU中的數(shù)據(jù)塊的緩存情況,其中,所述本地節(jié)點(diǎn)為所述節(jié)點(diǎn)控制器所在的節(jié)點(diǎn),其特征在于,包括: 地址獲得單元,用于獲得所述CPU中被所述遠(yuǎn)端節(jié)點(diǎn)讀取的所述數(shù)據(jù)塊在所述CPU中的存儲(chǔ)地址; 內(nèi)容確定單元,用于確定分別位于所述存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;其中,所述第一內(nèi)容和所述第二內(nèi)容至少共同包括所述存儲(chǔ)地址的所有內(nèi)容;所述第一特定位的位數(shù)大于預(yù)先規(guī)定的位數(shù)閾值,且小于所述存儲(chǔ)地址的總位數(shù);所述位數(shù)閾值滿(mǎn)足:按照所述位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與所述本地節(jié)點(diǎn)同處同一緩存一致性非對(duì)稱(chēng)存儲(chǔ)器訪問(wèn)CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和; 存儲(chǔ)空間確定單元,用于根據(jù)所述第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,確定尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間; 目錄存儲(chǔ)執(zhí)行單元,用于在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄。
9.如權(quán)利要求8所述的節(jié)點(diǎn)控制器,其特征在于,所述第一內(nèi)容包含第一索引部分和第二索引部分; 所述存儲(chǔ)空間確定單元具體用于:根據(jù)所述第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,確定尋址地址與所述第一索引部分相匹配的存儲(chǔ)空間集合; 根據(jù)所述第二索引部分,從確定出的所述存儲(chǔ)空間集合中,確定尋址地址與所述第二索引部分相匹配的存儲(chǔ)空間。
10.如權(quán)利要求8或9所述的節(jié)點(diǎn)控制器,其特征在于,所述目錄存儲(chǔ)執(zhí)行單元具體用于: 從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的所述存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,確定一個(gè)存儲(chǔ)子空間; 在確定出的所述存儲(chǔ)子空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄。
11.如權(quán)利要求8所述的節(jié)點(diǎn)控制器,其特征在于,所述目錄存儲(chǔ)執(zhí)行單元具體用于: 判斷確定出的所述存儲(chǔ)空間中是否已存儲(chǔ)有其他目錄; 在判斷結(jié)果為否時(shí),在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄; 在判斷結(jié)果為是時(shí),釋放確定出的所述存儲(chǔ)空間后,在確定出的所述存儲(chǔ)空間中,對(duì)應(yīng)存儲(chǔ)所述第二內(nèi)容以及所述目錄。
12.—種查詢(xún)目錄的節(jié)點(diǎn)控制器,其特征在于,包括: 存儲(chǔ)地址獲得單元,用于獲得數(shù)據(jù)塊在中央處理器CPU中的存儲(chǔ)地址;其中,所述CPU為所述節(jié)點(diǎn)控 制器所在的本地節(jié)點(diǎn)中的CPU ; 內(nèi)容確定單元,用于確定分別位于所述存儲(chǔ)地址的第一特定位和第二特定位的第一內(nèi)容和第二內(nèi)容;其中,所述第一內(nèi)容和所述第二內(nèi)容至少共同包括所述存儲(chǔ)地址的所有內(nèi)容;所述第一特定位的位數(shù)大于預(yù)先規(guī)定的位數(shù)閾值,且小于所述存儲(chǔ)地址的總位數(shù);所述位數(shù)閾值滿(mǎn)足:按照所述位數(shù)閾值所能尋址的不同存儲(chǔ)空間總個(gè)數(shù)不小于與所述本地節(jié)點(diǎn)同處同一緩存一致性非對(duì)稱(chēng)存儲(chǔ)器訪問(wèn)CC-NUMA系統(tǒng)的所有遠(yuǎn)端節(jié)點(diǎn)中的各CPU所能分別同時(shí)緩存的數(shù)據(jù)塊的最大個(gè)數(shù)之和; 存儲(chǔ)空間查詢(xún)單元,用于根據(jù)所述第一內(nèi)容,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間中,查詢(xún)尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間; 目錄查詢(xún)單元,用于根據(jù)所述第二內(nèi)容,從查詢(xún)到的尋址地址與所述第一內(nèi)容相匹配的存儲(chǔ)空間中,查詢(xún)與所述第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的目錄;其中,所述目錄用于記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)于所述數(shù)據(jù)塊的緩存情況。
13.如權(quán)利要求12所述的節(jié)點(diǎn)控制器,其特征在于,所述第一內(nèi)容包含第一索引部分和第二索引部分; 所述存儲(chǔ)空間查詢(xún)單元具體用于: 根據(jù)所述第一索引部分,從預(yù)先設(shè)置的用于存儲(chǔ)目錄的各個(gè)存儲(chǔ)空間集合中,查詢(xún)尋址地址與所述第一索引部分相匹配的存儲(chǔ)空間集合; 根據(jù)所述第二索引部分,從查詢(xún)到的尋址地址與所述第一索引部分相匹配的存儲(chǔ)空間集合中,查詢(xún)尋址地址與所述第二索引部分相匹配的存儲(chǔ)空間。
14.如權(quán)利要求12或13所述的節(jié)點(diǎn)控制器,其特征在于,所述目錄查詢(xún)單元具體用于: 根據(jù)所述第二內(nèi)容,從預(yù)先按照預(yù)定存儲(chǔ)空間劃分方式對(duì)確定出的尋址地址與所述第一 內(nèi)容相匹配的存儲(chǔ)空間進(jìn)行劃分而得到的多個(gè)存儲(chǔ)子空間中,查詢(xún)與所述第二內(nèi)容對(duì)應(yīng)存儲(chǔ)的所述目錄。
【文檔編號(hào)】G06F17/30GK103544269SQ201310487653
【公開(kāi)日】2014年1月29日 申請(qǐng)日期:2013年10月17日 優(yōu)先權(quán)日:2013年10月17日
【發(fā)明者】程永波 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
鸡泽县| 溆浦县| 纳雍县| 永清县| 吐鲁番市| 理塘县| 永德县| 共和县| 凤冈县| 桐梓县| 仲巴县| 石门县| 开封县| 松桃| 科技| 时尚| 大洼县| 莲花县| 策勒县| 肥城市| 岑溪市| 明星| 惠来县| 涞水县| 长白| 望城县| 凌云县| 定边县| 封丘县| 会同县| 康马县| 十堰市| 曲松县| 台江县| 常宁市| 弋阳县| 五河县| 盘锦市| 霸州市| 图们市| 新乡县|