專利名稱:用于提供逐出協(xié)議的方法和系統(tǒng)的制作方法
一般說來,本發(fā)明涉及一種用于數(shù)據(jù)處理的方法和系統(tǒng),具體地說,涉及一種用于給稀疏目錄提供一個逐出協(xié)議的方法和系統(tǒng)。更具體地說,本發(fā)明涉及一種用于在非均勻存儲器訪問計算機(jī)系統(tǒng)內(nèi)從稀疏目錄中逐出一個高速緩沖存儲器界線的方法和系統(tǒng)。
眾所周知,在計算機(jī)技術(shù)方面,可通過把若干個單獨(dú)處理機(jī)的處理能力組合成一個多處理機(jī)(MP)系統(tǒng),實(shí)現(xiàn)更大的計算機(jī)系統(tǒng)性能。可用一些不同的拓?fù)浣Y(jié)構(gòu)來設(shè)計MP計算機(jī)系統(tǒng),這取決于特定應(yīng)用的性能要求。例如,對稱多處理機(jī)(SMP)結(jié)構(gòu)是一種常用的較簡單的MP計算機(jī)系統(tǒng)拓?fù)浣Y(jié)構(gòu),其中象系統(tǒng)存儲器之類的資源是由多個處理機(jī)共享的。拓?fù)浣Y(jié)構(gòu)名稱“對稱”是基于事實(shí)在SMP計算機(jī)系統(tǒng)內(nèi)的全部處理機(jī)可對稱地訪問該系統(tǒng)內(nèi)的全部資源。
雖然SMP拓?fù)浣Y(jié)構(gòu)允許使用相對簡單的處理機(jī)間通信和數(shù)據(jù)共享協(xié)議,但總的說來,SMP拓?fù)浣Y(jié)構(gòu)具有一個有限的可擴(kuò)充性和帶寬,尤其是在系統(tǒng)規(guī)模擴(kuò)大時的系統(tǒng)存儲器級別情況下更是如此。結(jié)果,叫作非均勻存儲訪問(NUMA)的另一種MP計算機(jī)系統(tǒng)拓?fù)浣Y(jié)構(gòu)已作為一種替代設(shè)計而出現(xiàn),該設(shè)計以某種附加復(fù)雜性為代價,消除SMP拓?fù)浣Y(jié)構(gòu)的許多限制。
一種典型的NUMA計算機(jī)系統(tǒng)包括一些互連的節(jié)點(diǎn)。每個節(jié)點(diǎn)包括至少一個處理機(jī)和一個局部“系統(tǒng)”存儲器。NUMA拓?fù)浣Y(jié)構(gòu)名稱基于事實(shí)一個處理機(jī)在其局部節(jié)點(diǎn)對系統(tǒng)存儲器中所存儲數(shù)據(jù)的訪問等待時間,小于在其遠(yuǎn)程節(jié)點(diǎn)對系統(tǒng)存儲器中所存儲數(shù)據(jù)的訪問等待時間。NUMA計算機(jī)系統(tǒng)能進(jìn)一步分成非高速緩沖存儲器相關(guān)和高速緩沖存儲器相關(guān)兩類,這取決于是否在不同節(jié)點(diǎn)的高速緩沖存儲器中保持?jǐn)?shù)據(jù)的相關(guān)性。NUMA拓?fù)浣Y(jié)構(gòu)通過使NUMA計算機(jī)系統(tǒng)內(nèi)的每個節(jié)點(diǎn)都起一個較小的SMP系統(tǒng)的作用,消除常規(guī)SMP拓?fù)浣Y(jié)構(gòu)的可擴(kuò)充性的限制。這樣,每個節(jié)點(diǎn)內(nèi)的共享部件由于只供幾個處理機(jī)使用而能最佳化,而整個系統(tǒng)則由于比較小的等待時間而得益于較大規(guī)模并行操作的有效利用率。
在NUMA計算機(jī)系統(tǒng)內(nèi)有幾個問題,它們涉及用于稀疏目錄的逐出協(xié)議的開發(fā)。第一個問題起因于為逐出而選擇的項(xiàng)目的管理,第二個問題起因于用來使逐出發(fā)生的遠(yuǎn)程事務(wù)處理的生成,和第三個問題起因于生成一個事務(wù)處理,使數(shù)據(jù)實(shí)際回寫到局部存儲器。因此,希望提供一種改進(jìn)的方法,用于在NUMA計算機(jī)系統(tǒng)內(nèi)從稀疏目錄中逐出一個高速緩沖存儲器界線(cache line)。
按照本發(fā)明的方法和系統(tǒng),NUMA計算機(jī)系統(tǒng)包括至少兩個耦合于互連線的節(jié)點(diǎn)。每個這種節(jié)點(diǎn)都包括一個局部系統(tǒng)存儲器。響應(yīng)從稀疏目錄中逐出一個項(xiàng)目的請求,當(dāng)項(xiàng)目涉及一個修改高速緩沖存儲器界線時,把一個非干預(yù)回寫請求送到一個具有該修改高速緩沖存儲器界線的節(jié)點(diǎn)。當(dāng)已經(jīng)把來自修改高速緩沖存儲器界線的數(shù)據(jù)回寫到一個節(jié)點(diǎn)的局部系統(tǒng)存儲器以后,就能從稀疏目錄中逐出該項(xiàng)目。如果項(xiàng)目涉及一個共享界線,就把一個無效請求發(fā)送到目錄項(xiàng)目指示可以保持一個界線復(fù)制品的全部節(jié)點(diǎn)。在確認(rèn)了全部無效請求以后,就能從稀疏目錄中逐出該項(xiàng)目。
在下面詳細(xì)寫出的描述中,會明白本發(fā)明的全部目的、特征和優(yōu)點(diǎn)。
當(dāng)結(jié)合附圖閱讀時,參考一個說明性實(shí)施例的下面詳細(xì)描述,會最好地了解本發(fā)明自身、以及優(yōu)選使用模式、它的進(jìn)一步的目的和優(yōu)點(diǎn),在附圖中
圖1是根據(jù)本發(fā)明優(yōu)選實(shí)施例的非均勻存儲器訪問(NUMA)計算機(jī)系統(tǒng)的方塊圖;圖2a描述一個I-命令的說明性實(shí)施例;圖2b是圖1所示節(jié)點(diǎn)控制器的更詳細(xì)方塊圖;圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于稀疏目錄的逐出邏輯的方塊圖;圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的稀疏目錄內(nèi)項(xiàng)目的方塊圖;和圖5根據(jù)本發(fā)明的優(yōu)選實(shí)施例描述一個用于從NUMA計算機(jī)系統(tǒng)內(nèi)稀疏目錄中逐出一個高速緩沖存儲器界線的方法的實(shí)例。
I.NUMA系統(tǒng)A.系統(tǒng)概述現(xiàn)在參照諸圖,尤其是圖1,說明按照本發(fā)明一個優(yōu)選實(shí)施例的非均勻存儲器訪問(NUMA)計算機(jī)系統(tǒng)的方塊圖。所描述的實(shí)施例能例如通過一個工作站、服務(wù)器或主計算機(jī)實(shí)現(xiàn)。如所示,NUMA計算機(jī)系統(tǒng)包括一些(N個)處理節(jié)點(diǎn)10a-10d,它們用互連線22來互連。每個處理節(jié)點(diǎn)10a-10d都包括至少一個,多達(dá)M個處理機(jī)。處理機(jī)12a-12d最好相同,并且可以包括一個在可從紐約阿爾莫克的國際商業(yè)機(jī)器公司(IBM公司)買到的處理機(jī)的power pcTM線路內(nèi)的處理機(jī)。除了寄存器以外,指令流邏輯和執(zhí)行部件也用來執(zhí)行程序指令,每個處理機(jī)12a-12d還包括一個單片一級(L1)高速緩沖存儲器(未示出),它與各個二極(L2)高速緩沖存儲器14a-14d一起,用來把數(shù)據(jù)從系統(tǒng)存儲器18移動到相關(guān)處理機(jī)12。換句話說,L1高速緩沖存儲器和L2高速緩沖存儲器14a-14d,在系統(tǒng)存儲器18與暫時緩沖可能要由相關(guān)處理機(jī)12訪問的數(shù)據(jù)的處理機(jī)12之間,起中間存儲的作用。L2高速緩沖存儲器14一般具有比L1緩沖存儲器大得多的存儲容量,但有較長的訪問等待時間。例如,L2高速緩沖存儲器14a-14d可以具有1-16兆字節(jié)(MB)的存儲容量,而單片L1高速緩沖存儲器可以具有8-32千字節(jié)的存儲容量。雖然L2高速緩沖存儲器14a-14d是作為處理機(jī)12的外部設(shè)備而示于圖1中,但應(yīng)當(dāng)了解,L2高速緩沖存儲器14a-14d也能夠另外作為單片高速緩沖存儲器的附加級而裝入相關(guān)的處理機(jī)12內(nèi)。此外,應(yīng)當(dāng)了解,能用一個或多個附加級的高速緩沖存儲器(L3,L4等)去提供附加的數(shù)據(jù)存儲。在下面的討論中,認(rèn)為每個處理機(jī)12及其相關(guān)高速緩沖存儲器分級結(jié)構(gòu)(L1,L2,等)是一個單探究器(snooper)。
如所示,處理節(jié)點(diǎn)10a-10d還包括一個相應(yīng)的節(jié)點(diǎn)控制器20,它與系統(tǒng)存儲器18和L2高速緩沖存儲器14a-14d一起,耦合于局部互連線16。每個節(jié)點(diǎn)控制器20用作一個局部代理者,通過執(zhí)行至少兩個功能而用于遠(yuǎn)程處理節(jié)點(diǎn)10。首先,每個節(jié)點(diǎn)控制器20探究相關(guān)的局部互連線16,并且促進(jìn)局部通信事務(wù)傳送到遠(yuǎn)程處理節(jié)點(diǎn)10。其次,每個節(jié)點(diǎn)控制器20探究節(jié)點(diǎn)互連線22上的通信事務(wù),并且控制相關(guān)局部互連線16上的相關(guān)通信事務(wù)。由一個仲裁器24控制每個局部互連線16上的通信。如下面進(jìn)一步討論的那樣,仲裁器24根據(jù)由處理機(jī)12生成的總線請求信號,調(diào)節(jié)對局部互連線16的訪問,并且編譯用于局部互連線16上所探究通信事務(wù)的相關(guān)請求。
當(dāng)然,NUMA計算機(jī)系統(tǒng)8可進(jìn)一步包括一些不是了解本發(fā)明必需的附加設(shè)備,從而略去,以免遮蔽本發(fā)明。例如,每個節(jié)點(diǎn)10還可以裝配I/O設(shè)備(比如顯示設(shè)備,鍵盤,或圖形指示器),用于存儲操作系統(tǒng)和應(yīng)用軟件的非易失性存儲器,和用于連接到網(wǎng)絡(luò)或附屬設(shè)備的串行和并行端口。
B.存儲器結(jié)構(gòu)NUMA計算機(jī)系統(tǒng)8中全部處理機(jī)12都共用一個單獨(dú)的物理存儲器空間,這意味著每個物理地址都只涉及系統(tǒng)存儲器18之一中一個單獨(dú)的位置。這樣,通常能夠由NUMA計算機(jī)系統(tǒng)8中任一處理機(jī)12訪問的系統(tǒng)存儲器全部內(nèi)容,能被看成是分區(qū)于4個系統(tǒng)存儲器18之間的。例如,對于圖1所示本發(fā)明說明性實(shí)施例來說,處理機(jī)12可尋址一個16吉字節(jié)的地址空間,該空間包括一個通用存儲區(qū)和一個保留區(qū)。通用存儲區(qū)被分成500兆字節(jié)段,每隔3個段分配4個處理節(jié)點(diǎn)10的每個節(jié)點(diǎn)。保留區(qū)可包含約2吉字節(jié),包括一些系統(tǒng)控制和外圍存儲和I/O區(qū),它們每一個都分配到處理節(jié)點(diǎn)10的每個相應(yīng)節(jié)點(diǎn)。
對本討論來說,處理節(jié)點(diǎn)在它的系統(tǒng)存儲器18中存儲一個特定數(shù)據(jù),該節(jié)點(diǎn)被看成是用于這個數(shù)據(jù)的本地節(jié)點(diǎn),而其它處理節(jié)點(diǎn)被看成是相對于該特定數(shù)據(jù)的遠(yuǎn)程節(jié)點(diǎn)。
C.存儲器相關(guān)性因?yàn)槟苡肗UMA計算機(jī)系統(tǒng)8內(nèi)任何處理機(jī)12請求、訪問和修改每個系統(tǒng)存儲器18內(nèi)存儲的數(shù)據(jù),所以NUMA計算機(jī)系統(tǒng)8執(zhí)行一個高速緩沖存儲相關(guān)性協(xié)議,以便既在同一處理節(jié)點(diǎn)內(nèi)的諸高速緩沖存儲器之間又在不同處理節(jié)點(diǎn)內(nèi)的諸高速緩沖存儲器之間,保持相關(guān)性。這樣,NUMA計算機(jī)系統(tǒng)8被適當(dāng)?shù)貧w入CC-NUMA計算機(jī)系統(tǒng)一類。所執(zhí)行的高速緩沖存儲相關(guān)性協(xié)議是執(zhí)行一相關(guān)的,并且可以包括例如熟知的修改、獨(dú)占、共用、無效(MESI)協(xié)議,或它的變體。在下文中,將假定,L1高速緩沖存儲器,L2高速緩沖存儲器14、和仲裁器24執(zhí)行常規(guī)的MESI協(xié)議,其節(jié)點(diǎn)控制器20識別M.S和I狀態(tài),并且考慮把E狀態(tài)合并成用于正確性的M狀態(tài)。即,節(jié)點(diǎn)控制器20假定,由遠(yuǎn)程高速緩沖存儲器獨(dú)占地保存的數(shù)據(jù)是已被修改的,而不管該數(shù)據(jù)是否已被真正修改過。
D.互連結(jié)構(gòu)局部互連線16和節(jié)點(diǎn)互連線22皆可用任何基于總線的廣播結(jié)構(gòu)、基于開關(guān)的廣播結(jié)構(gòu)或基于開關(guān)的非廣播結(jié)構(gòu)來執(zhí)行。然而,在一個優(yōu)選實(shí)施例中,至少節(jié)點(diǎn)互連線22是作為基于開關(guān)的非廣播互連線來執(zhí)行的,該互連線由IBM公司開發(fā)的6XX通信協(xié)議來控制。局部互連線16和節(jié)點(diǎn)互連線22允許分離事務(wù)處理,這意味著在包括通信事務(wù)處理的地址與數(shù)據(jù)使用期間不存在固定的計時關(guān)系,并且數(shù)據(jù)包能夠不同于相應(yīng)地址包而排序。通過流水線通信事務(wù)處理,也可優(yōu)選地提高局部互連線16和節(jié)點(diǎn)互連線22的利用率,這就允許隨后的通信事務(wù)處理成為在以前通信事務(wù)處理主機(jī)從各個接收器接收相關(guān)性響應(yīng)之前的源。
不管所執(zhí)行的一種還是多種互連結(jié)構(gòu),都至少利用三種“包”(在此使用的包從種屬上說指的是一種離散信息單元)-地址,數(shù)據(jù),和相關(guān)性響應(yīng)-來通過節(jié)點(diǎn)互連線22在諸處理節(jié)點(diǎn)10之間和通過局部互連線16在諸探究器之間,傳送信息?,F(xiàn)在參照表I和II,分別對地址和數(shù)據(jù)包給出相關(guān)字段和定義的摘要。
表I
表II
如表I和II所示,為了允許一個接收節(jié)點(diǎn)探究器確定每個包所屬的通信事務(wù),就用一個事務(wù)標(biāo)記來識別通信事務(wù)處理中的每個包。本專業(yè)的技術(shù)人員會了解,可以利用附加的數(shù)據(jù)流控制邏輯和相關(guān)的數(shù)據(jù)流控制信號,去調(diào)節(jié)有限通信資源的利用。
在各個處理節(jié)點(diǎn)10內(nèi),狀態(tài)和相關(guān)性響應(yīng)交往于各個探究器與局部伸裁器24之間。在局部互連線16內(nèi)用于狀態(tài)和相關(guān)性通信的信號線,摘要于下表III中。
表III
通過局部互連線16的AResp和AStat線路傳送狀態(tài)和相關(guān)性響應(yīng),最好具有一種與有關(guān)地址包的固定但可程序化的計時關(guān)系。例如,在地址包的第二循環(huán)后繼接收中可能需要AStatOut表決數(shù)據(jù)庫,它對是否各個探究器已經(jīng)成功地收到一個在局部互連線16上傳送的地址包,提供一個初步指示。仲裁器24編譯AStatOut表決數(shù)據(jù)庫,并且在固定但可編程數(shù)目的循環(huán)以后(例如1個循環(huán)以后),發(fā)布AStatIn表決。下面在表IV中摘要可能的AStat表決數(shù)據(jù)庫。
表IV
在后面的AStatIn時期,在固定但可編程數(shù)目的循環(huán)(例如2個循環(huán))以后可能需要ARespOut表決數(shù)據(jù)庫。仲裁器24還編輯各個探究器的ARespOut表決數(shù)據(jù)庫,并且最好在下一個循環(huán)中交付一個ARespIn表決??赡艿腁Resp表決數(shù)據(jù)庫最好包括列于表V中的相關(guān)性響應(yīng),表V按照優(yōu)先權(quán)降序列出這樣的AResp表決數(shù)據(jù)庫。
表V
常由一個節(jié)點(diǎn)控制器20發(fā)布的ReRun AResp表決指示,所探究的請求具有長的等待時間(例如,該請求將由在遠(yuǎn)程處理節(jié)點(diǎn)的處理機(jī)12或系統(tǒng)存儲器18來服務(wù)),并且指令該請求在較晚的時間重新發(fā)布事務(wù)處理。這樣,和Retry AResp表決形成對比,一個ReRun使表決ReRun的事務(wù)的接收器(不是事務(wù)的發(fā)端器),負(fù)責(zé)引起通信事務(wù)在較晚的時間重新發(fā)布。
現(xiàn)在參看圖2a,它說明I-命令的一個示記性實(shí)施例,利用I-命令在互連線22上的諸節(jié)點(diǎn)控制器20之間連通響應(yīng)和命令。如所示,一個I-命令36包括5個字段命令類型字段33,目標(biāo)節(jié)點(diǎn)字段35,源節(jié)點(diǎn)字段37,事務(wù)標(biāo)記字段38,和有效(V)字段39。命令類型字段33提供一個I-命令類型的編碼指示36。下面在表VI中列出一些可能的I-命令,它們能在命令類型字段33內(nèi)編碼。
表VI
對于每種I-命令,在目標(biāo)節(jié)點(diǎn)字段35中指定接收器,在源節(jié)點(diǎn)字段37中指定發(fā)送節(jié)點(diǎn),且在事務(wù)標(biāo)記字段38內(nèi)指定I-命令涉及的事務(wù)。由有效(V)字段39指示I-命令36的有效性。
E.節(jié)點(diǎn)控制器現(xiàn)在參照2b,它說明圖1的NUMA計算機(jī)系統(tǒng)8中的節(jié)點(diǎn)控制器20的更詳細(xì)的方塊圖。如圖2b所示,耦合于局部互連線16與節(jié)點(diǎn)互連線22之間的各個節(jié)點(diǎn)控制器20皆包括事務(wù)接收單元(TRU)40,事務(wù)發(fā)送單元(TSU)42,數(shù)據(jù)接收單元(DRU)44,和數(shù)據(jù)發(fā)送單元46。TRU 40、TSU 42、DRU 44和DSU 46能夠例如用字段可編程門陣列(FPGAs)或應(yīng)用特定積分電路(ASICs)來執(zhí)行。如所示,通過節(jié)點(diǎn)控制器20的地址和數(shù)據(jù)通路是分為二支的,地址信號由TRU 40和TSU 42處理,而數(shù)據(jù)信號由DSU 44和DRU 46處理。
TRU 40是如此指定,以致于指示節(jié)點(diǎn)互連線22的事務(wù)流出,它負(fù)責(zé)通過一個I-命令通道從其他節(jié)點(diǎn)接收I-命令,從節(jié)點(diǎn)互連線22的共用地址總線接受事務(wù),在局部互連線16上發(fā)布事務(wù),向TSU發(fā)送響應(yīng)。TRU 40包括響應(yīng)多路復(fù)用器52,它從節(jié)點(diǎn)互連線22接收事務(wù),并且把所選擇的事務(wù)送到總線主機(jī)54和TSU 42內(nèi)的相關(guān)性響應(yīng)邏輯電路56。根據(jù)來自響應(yīng)多路復(fù)用器52的通信事務(wù)的接收,總線主機(jī)54能夠啟動在它的局部互連線16上的通信事務(wù),該事務(wù)是與所接收的通信事務(wù)相同的,或者是為TSU內(nèi)的目錄控制而生成的,用于逐出之類目錄的維護(hù)。
TSU 42如它的名稱所示,是一個用于流向節(jié)點(diǎn)互連線22的事務(wù)的管道,它與TRU 40相互作用,以處理存儲器請求事務(wù),并且向DRU 44和DSU 46發(fā)布命令,以便在局部互連線16與節(jié)點(diǎn)互連線22之間控制數(shù)據(jù)的傳送。TSU 42還用相關(guān)性響應(yīng)邏輯電路56執(zhí)行用于節(jié)點(diǎn)互連線22的所選擇(即MSI)相關(guān)性協(xié)議,和用目錄控制邏輯電路58維護(hù)相關(guān)性目錄50。
表VII
相關(guān)性目錄50存儲數(shù)據(jù)的系統(tǒng)存儲器地址(例如高速緩沖存儲器行),這些數(shù)據(jù)是在局部處理節(jié)點(diǎn)用作本地節(jié)點(diǎn)的遠(yuǎn)程節(jié)點(diǎn)為高速緩沖存儲器檢驗(yàn)的。用于各個數(shù)據(jù)的地址指示是與各個遠(yuǎn)程處理節(jié)點(diǎn)的標(biāo)識符聯(lián)合存儲的,該節(jié)點(diǎn)具有在各個這種遠(yuǎn)程處理節(jié)點(diǎn)的數(shù)據(jù)復(fù)制品和數(shù)據(jù)相關(guān)性狀態(tài)。用于相關(guān)性目錄50中的項(xiàng)目的可能相關(guān)性狀態(tài)摘要于表VII中。如表VII中所示,由遠(yuǎn)程處理節(jié)點(diǎn)保持的高速緩沖存儲器行的相關(guān)性狀態(tài)的知識是不精確的。這種不精確性是由于下述事實(shí)一個遠(yuǎn)程地保持的高速緩沖存儲器行能夠造成一個從S到I,從E到I,或從E到M的變換,而不通知本地節(jié)點(diǎn)的節(jié)點(diǎn)控制器20。
II.稀疏目錄逐出概述現(xiàn)在參照圖3,它按照本發(fā)明一個優(yōu)選實(shí)施例說明一個用于NUMA計算機(jī)系統(tǒng)內(nèi)的稀疏目錄的逐個邏輯電路的方塊圖。如圖所示,逐出邏輯60包括三個部件,即逐出選擇邏輯61,逐出生成邏輯62,和逐出緩沖器63。逐出選擇邏輯61接受在一個相關(guān)性目錄(例如來自圖2b的相關(guān)性目錄50)內(nèi)的當(dāng)前項(xiàng)目的狀態(tài),且確定用于逐出的“最佳”選擇。如果相關(guān)性目錄內(nèi)的全部項(xiàng)目都處于未決狀態(tài),就設(shè)置一個逐出-忙標(biāo)志。當(dāng)設(shè)置逐出-忙標(biāo)志時,相關(guān)性目錄中遺漏的和需要進(jìn)入相關(guān)性目錄的任何事務(wù)將被重試。逐出生成邏輯62接受用于逐出的選擇項(xiàng)目(或候選者),并且生成一個完成逐出所需的適當(dāng)互連事務(wù)。逐出緩沖器63除了保持關(guān)于什么樣的響應(yīng)是完成逐出所需的信息以外,還保持正在逐出的存儲器行的地址。如果針對正在逐出的存儲器行接收一個新的請求,就重試該請求。在完成逐出以后,就從逐出邏輯60中刪除該項(xiàng)目。相關(guān)性目錄保證,正在逐出的項(xiàng)目要直到已用一個新項(xiàng)目更新主相關(guān)性目錄中的項(xiàng)目時才被訪問。
此外,逐出選擇邏輯61還利用一個優(yōu)先隨機(jī)模式來從用于逐出的相關(guān)性目錄中選擇一個項(xiàng)目。優(yōu)選隨機(jī)模式的優(yōu)先級基于相關(guān)性目錄的狀態(tài)。一般說來,當(dāng)不能逐出未決項(xiàng)目時,首選選擇共用的項(xiàng)目,然后選擇修正的項(xiàng)目。在具有相同狀態(tài)的一組項(xiàng)目內(nèi),不論是處于共用狀態(tài)還是修正狀態(tài),都利用一個連續(xù)的計數(shù)器去選擇一個逐出項(xiàng)目。
現(xiàn)在參照圖4,它按照本發(fā)明一個優(yōu)選實(shí)施例說明一個稀疏目錄內(nèi)的項(xiàng)目的方塊圖。如圖所示,項(xiàng)目70包括一個索引字段71,一個位向量字段72,和一個狀態(tài)字段73。索引字段71包含高速緩沖存儲器行的標(biāo)記。位向量字段72指示哪一些節(jié)點(diǎn)包含具有索引字段71的行。向量字段72內(nèi)的大小(即向量數(shù))應(yīng)相當(dāng)于NUMA計數(shù)機(jī)系統(tǒng)內(nèi)的節(jié)點(diǎn)數(shù)。位Vi涉及節(jié)點(diǎn)i。狀態(tài)字段73指示具有一個索引字段71中所含標(biāo)記的行狀態(tài)。
III.稀疏目錄逐出協(xié)議為了使一個共用項(xiàng)目失效,逐出邏輯60生成一個無效事務(wù),在本例中的一個DClaim事務(wù),把該事務(wù)傳送到NUMA計算機(jī)系統(tǒng)內(nèi)的全部節(jié)點(diǎn),使相關(guān)性目錄指示一個可以含于其中的共用復(fù)制品。用一個AutoRetry位集合發(fā)布該事務(wù),從而迫使一個在目的地節(jié)點(diǎn)的事務(wù)接收單元(比如圖2b中事務(wù)接收單元40)局部地連續(xù)重試事務(wù),直至以原始響應(yīng)完成事務(wù)為止。在事務(wù)完成以后,把一個響應(yīng)送回逐出緩沖器63。在逐出緩沖器63接收一個用于全部DClaim事務(wù)的證實(shí)以后,從逐出緩沖器63中刪除項(xiàng)目。在這時,已從稀疏目錄中刪除該行。
然而,在使一個修改項(xiàng)目失效時,需要局部存儲器接受所逐出的數(shù)據(jù),如果有的話。為了作到這點(diǎn),就利用一個帶有禁止干預(yù)和AutoRetry位集合的無效讀,在本例中的一個有修改意圖的讀(RWITM)。AutoRetry位的功能類似于如上所述的DClaim事務(wù)的功能。需要一個非干預(yù)的模式去強(qiáng)制擁有數(shù)據(jù)的處理機(jī),生成一個要在本地節(jié)點(diǎn)上發(fā)布的給存儲器的事務(wù),并且允許數(shù)據(jù)回寫到本地節(jié)點(diǎn)的局部存儲器中。逐出邏輯60還必須保證,要到數(shù)據(jù)已被回寫到局部存儲器時才從逐出緩沖器63中清除項(xiàng)目。非干預(yù)清倉請求的使用可導(dǎo)致固有處理機(jī)生成回寫事務(wù),該系統(tǒng)對此運(yùn)用適當(dāng)?shù)臎_突檢測規(guī)則。只需要逐出邏輯電路繼續(xù)試驗(yàn)RWITM請求,直至完全完成為止,在此時保證修改的數(shù)據(jù)已回寫到本地節(jié)點(diǎn)的系統(tǒng)存儲器。
例如,如圖5所示,一個本地節(jié)點(diǎn)10a正在試圖逐出一個目錄項(xiàng)目,其中行可能保持于遠(yuǎn)程節(jié)點(diǎn)10b的修改狀態(tài)。逐出邏輯(從圖3看)生成一個具有確認(rèn)AutoRetry位和未確認(rèn)干預(yù)允許位的RWITM事務(wù)(即一個非干預(yù)RWITM事務(wù)),如圖5a所示。在遠(yuǎn)程節(jié)點(diǎn)10b發(fā)布RWITM事務(wù)時,可能出現(xiàn)下述三種情況之一。第一種情況是除了處理機(jī)在試圖把修改的數(shù)據(jù)推回系統(tǒng)存儲器時生成一個重試之外,還由于各種原因能使RWITM事務(wù)變成Retry。在這種情況下,AutoRetry模式會強(qiáng)制事務(wù)接收單元在節(jié)點(diǎn)10b重新發(fā)布RWITM事務(wù)。第二種情況是遠(yuǎn)程節(jié)點(diǎn)10b沒有修改的高速緩沖存儲器行,并且RWITM會接收一個清除響應(yīng)。節(jié)點(diǎn)控制器20b中的事務(wù)接收單元(比如圖2b中的事務(wù)接收單元40)隨后會把一個響應(yīng)送回逐出邏輯電路,并且逐出會完成。第三種情況是高速緩沖存儲器可能有修改的高速緩沖存儲器行,并且由于禁止干預(yù),故處理機(jī)會重試RWITM,然后在寫回刪除(WBK)請求下試圖把數(shù)據(jù)推回局部存儲器。
當(dāng)這事務(wù)是一個給遠(yuǎn)程存儲器的請求時,在節(jié)點(diǎn)10b的節(jié)點(diǎn)控制器20就會重新運(yùn)行它。同時,在節(jié)點(diǎn)控制器20b的事務(wù)接收單元會繼續(xù)重試逐出RWITM事務(wù),如圖5b所示,但因?yàn)樵诠?jié)點(diǎn)控制器20b的事務(wù)接收單元重新運(yùn)行WBK事務(wù),故在節(jié)點(diǎn)控制器20b的事務(wù)發(fā)送單元會重試逐出RWITM事務(wù)。當(dāng)在本發(fā)節(jié)點(diǎn)10a上完成WBK請求,并且完成數(shù)據(jù)傳送以后,本地節(jié)點(diǎn)10a會把一個響應(yīng)送回遠(yuǎn)程節(jié)點(diǎn)10b,這會從節(jié)點(diǎn)控制器20b內(nèi)的事務(wù)發(fā)送單元內(nèi)的未決緩沖器中清除WBK請求,如圖5c所示。當(dāng)節(jié)點(diǎn)控制器20b內(nèi)的事務(wù)發(fā)送單元試圖重新發(fā)布逐出事務(wù)時,節(jié)點(diǎn)控制器20b內(nèi)的事務(wù)接收單元會接收一個清除響應(yīng),因?yàn)楣逃械奶幚頇C(jī)不再具有修改的高速緩沖存儲器行。節(jié)點(diǎn)控制器20b內(nèi)的事務(wù)接收單元會把該響應(yīng)送回節(jié)點(diǎn)10a內(nèi)的逐出邏輯,這會清除未決的緩沖器,現(xiàn)在已從節(jié)點(diǎn)的相關(guān)性目錄中成功地逐出包含一個用于修改高速緩沖存儲器行的項(xiàng)目的目錄項(xiàng)目,并且局部存儲器具有有效的數(shù)據(jù)。
象已描述的一樣,本發(fā)明提供一種用于提供一個逐出協(xié)議的方法,該協(xié)議用于NUMA計算機(jī)系統(tǒng)內(nèi)的稀疏目錄。
雖已參照一個優(yōu)選實(shí)施例,特別示出和描述本發(fā)明,但本專業(yè)的技術(shù)人員會了解,此中可在形式和細(xì)節(jié)上作出各種變更,而不背離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種用于提供一個逐出協(xié)議的方法,該協(xié)議用于一個非均勻存儲器訪問(NUMA)計算機(jī)系統(tǒng)內(nèi)的稀疏目錄,其中所述的NUMA計算機(jī)系統(tǒng)至少包括兩個耦合于互連線的節(jié)點(diǎn),所述至少兩個節(jié)點(diǎn)中的每個節(jié)點(diǎn)都包括一個局部系統(tǒng)存儲器,所述的方法包括下述步驟響應(yīng)一個用于從稀疏目錄中逐出一個項(xiàng)目的請求,其中所述項(xiàng)目涉及一個修改的高速緩沖存儲器行,把一個非干預(yù)性回寫請求發(fā)送到一個具有所述修改高速緩沖存儲器行的節(jié)點(diǎn);和在來自所述修改高速緩沖存儲器行的數(shù)據(jù)隨后被寫回到一個所述節(jié)點(diǎn)的局部系統(tǒng)存儲器以后,從所述稀疏目錄中逐出所述的項(xiàng)目。
2.根據(jù)權(quán)利要求1的方法,其中所述的非干預(yù)性回寫請求是一個帶有AutoRetry的非干預(yù)性回寫。
3.根據(jù)權(quán)利要求1的方法,其中所述的非干預(yù)性回寫請求是一個非干預(yù)性的有修改意圖讀事務(wù)。
4.一種能夠提供一個用于稀疏目錄的逐出協(xié)議的非均勻存儲器訪問(NUMA)計算機(jī)系統(tǒng),其中所述的NUMA計算機(jī)系統(tǒng)包括至少兩個耦合于互連線的節(jié)點(diǎn),所述至少兩個節(jié)點(diǎn)中的每個節(jié)點(diǎn)都包括一個局部系統(tǒng)存儲器,所述的NUMA計算機(jī)系統(tǒng)包括用于響應(yīng)一個用于從稀疏目錄中逐出一個項(xiàng)目的請求,把一個非干預(yù)性回寫請求發(fā)送到一個具有所述修改高速緩沖存儲器行的節(jié)點(diǎn)的裝置,其中所述的項(xiàng)目涉及到一個修改的高速緩沖存儲器行;和用于在來自所述修改高速緩沖存儲器行的數(shù)據(jù)隨后被寫回到一個所述節(jié)點(diǎn)的局部系統(tǒng)存儲器以后,從所述稀疏目錄中逐出所述項(xiàng)目的裝置。
5.根據(jù)權(quán)利要求4的NUMA計算機(jī)系統(tǒng),其中所述的非干預(yù)性回寫請求是一個帶有AutoRetry的非干預(yù)性回寫。
6.根據(jù)權(quán)利要求4的NUMA計算機(jī)系統(tǒng),其中所述的非干預(yù)性回寫請求是一個非干預(yù)性的有修改意圖讀事務(wù)。
全文摘要
公開一種用于在非均勻存儲器訪問計算機(jī)系統(tǒng)內(nèi)提供逐出協(xié)議的方法和系統(tǒng)。在項(xiàng)目涉及修改高速緩沖存儲器行時,響應(yīng)用于從稀疏目錄中逐出一個項(xiàng)目的請求,把非干預(yù)性回寫請求送到一個具有修改高速緩沖存儲器行的節(jié)點(diǎn)。在已把來自修改高速緩沖存儲器行的數(shù)據(jù)回寫到節(jié)點(diǎn)的局部系統(tǒng)存儲器以后,就能從稀疏目錄中逐出該項(xiàng)目。如果項(xiàng)目涉及共用行,就把失效請求送到全部節(jié)點(diǎn),從而目錄項(xiàng)目指示可保持該行的復(fù)制品。一旦確認(rèn)全部失效,就能從稀疏目錄中逐出該項(xiàng)目。
文檔編號G06F9/52GK1264873SQ9912706
公開日2000年8月30日 申請日期1999年12月27日 優(yōu)先權(quán)日1999年2月26日
發(fā)明者蓋里·戴爾·卡彭特, 馬克·埃德華·迪恩, 戴維·布萊恩·格拉斯哥 申請人:國際商業(yè)機(jī)器公司