專利名稱:實(shí)施高速緩存一致性的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及高速緩存一致性(Cache coherence)機(jī)制,并且尤 其涉及利用基于環(huán)的偵測(cè)響應(yīng)收集(ring-based snoop response collection )在基于網(wǎng)絡(luò)的多處理器系統(tǒng)中的高速緩存一致性。
背景技術(shù):
對(duì)稱多處理器("SMP")系統(tǒng)采用高速緩存一致性機(jī)制以確保 高速緩存一致性?;趥蓽y(cè)的高速緩存一致性是實(shí)現(xiàn)SMP系統(tǒng)的高速 緩存一致性的典型方案。利用基于偵測(cè)的高速緩存一致性,當(dāng)高速緩 存缺失(Cache Miss)發(fā)生時(shí),請(qǐng)求高速緩存向其對(duì)等的高速緩存廣 播高速緩存請(qǐng)求。適當(dāng)?shù)母咚倬彺鎮(zhèn)蓽y(cè)過濾機(jī)制用于減少由高速緩存 一致性消息和高速緩存?zhèn)蓽y(cè)操作造成的開銷。通常,在基于總線的 SMP系統(tǒng)中實(shí)現(xiàn)基于偵測(cè)的高速緩存一致性,在該SMP系統(tǒng)中高速緩 存經(jīng)由共享總線互相通信。為避免潛在的通信瓶頸,現(xiàn)代SMP系統(tǒng)通 常使用消息傳遞網(wǎng)絡(luò),而不是在物理上共享的總線。此類SMP系統(tǒng)被 稱為基于網(wǎng)絡(luò)的SMP系統(tǒng)。
現(xiàn)在參照?qǐng)Dl,示出了一個(gè)示例性高速緩存一致性多處理器系統(tǒng),
其包括經(jīng)由節(jié)點(diǎn)間互連網(wǎng)絡(luò)互連的多個(gè)節(jié)點(diǎn),其中每個(gè)節(jié)點(diǎn)包括中央
處理單元("CPU")和高速緩存。同樣連接到該節(jié)點(diǎn)間互連網(wǎng)絡(luò)上的
是存儲(chǔ)器和輸入/輸出("IO")設(shè)備。雖然存儲(chǔ)器被描述成一個(gè)部件,
但是存儲(chǔ)器可被物理地分成多個(gè)存儲(chǔ)器部分,其中每個(gè)存儲(chǔ)器部分在 操作上與節(jié)點(diǎn)相關(guān)。
現(xiàn)在參照?qǐng)D2,示出了另一個(gè)示例性高速緩存一致性多處理器系 統(tǒng),其包括經(jīng)由節(jié)點(diǎn)間互連網(wǎng)絡(luò)互連的多個(gè)節(jié)點(diǎn),其中每個(gè)節(jié)點(diǎn)包括 芯片多處理器("CMP")子系統(tǒng)。每個(gè)CMP子系統(tǒng)包括一個(gè)或多個(gè)能夠經(jīng)由節(jié)點(diǎn)內(nèi)結(jié)構(gòu)互相通信的高速緩存。存儲(chǔ)器部分,以及輸入/ 輸出設(shè)備也可被連接到節(jié)點(diǎn)內(nèi)結(jié)構(gòu)上。
利用基于偵測(cè)的高速緩存一致性,當(dāng)讀取高速緩存缺失發(fā)生時(shí), 請(qǐng)求高速緩存通常向其對(duì)等高速緩存和存儲(chǔ)器廣播高速緩存數(shù)據(jù)請(qǐng) 求。當(dāng)對(duì)等高速緩存收到高速緩存數(shù)據(jù)請(qǐng)求時(shí),該對(duì)等高速緩存執(zhí)行 本地高速緩存?zhèn)蓽y(cè)操作,并且產(chǎn)生表明是否在對(duì)等高速緩存中找到所 請(qǐng)求的數(shù)據(jù),以及相應(yīng)高速緩存管線的狀態(tài)的高速緩存?zhèn)蓽y(cè)響應(yīng)。如 果在對(duì)等高速緩存中找到所請(qǐng)求的數(shù)據(jù),則對(duì)等高速緩存可經(jīng)由高速 緩存至高速緩存?zhèn)魉拖蛘?qǐng)求高速緩存提供數(shù)據(jù)。如果沒有對(duì)等高速緩 存能夠提供數(shù)據(jù),則存儲(chǔ)器負(fù)責(zé)提供所請(qǐng)求的數(shù)據(jù)。
在高速緩存一致性SMP系統(tǒng)中,高速緩存請(qǐng)求可以是旨在獲得所 請(qǐng)求數(shù)據(jù)的共享拷貝的高速緩存數(shù)據(jù)請(qǐng)求、旨在獲得所請(qǐng)求數(shù)據(jù)的排 它拷貝(exclusive c叩y)的高速緩存數(shù)據(jù)和所有權(quán)請(qǐng)求、或旨在使其它 高速緩存中的所請(qǐng)求數(shù)據(jù)的共享拷貝無效的所有權(quán)請(qǐng)求。
用于獲得基于偵測(cè)的高速緩存一致性的若干技術(shù)為本領(lǐng)域技術(shù) 人員所熟知。例如,MESI偵測(cè)高速緩存一致性協(xié)議及其變型已被廣 泛地用于SMP系統(tǒng)中。正如名稱所暗示的,MESI具有4個(gè)高速緩存狀 態(tài)修改(M)、排它(E)、共享(S)以及無效(1)。如果高速緩存管線 在高速緩存中處于無效狀態(tài),則數(shù)據(jù)在高速緩存中不是有效的。如果 高速緩存管線在高速緩存中處于共享狀態(tài),則數(shù)據(jù)在高速緩存中有 效,并且在其它高速緩存中也可能有效。例如,當(dāng)從存儲(chǔ)器或另一個(gè) 高速緩存中檢索數(shù)據(jù)時(shí),進(jìn)入該狀態(tài),并且相應(yīng)的偵測(cè)響應(yīng)表明數(shù)據(jù) 在至少一個(gè)其它高速緩存中有效。如果高速緩存管線在高速緩存中處 于排它狀態(tài),則數(shù)據(jù)在該高速緩存中有效,并且在任何其他高速緩存 中不能有效。此外,相對(duì)于保存在存儲(chǔ)器中的數(shù)據(jù),該數(shù)據(jù)尚未被修 改。例如,當(dāng)從存儲(chǔ)器或另一個(gè)高速緩存中檢索數(shù)據(jù)時(shí),進(jìn)入該狀態(tài), 并且相應(yīng)的偵測(cè)響應(yīng)表明該數(shù)據(jù)在任何其他高速緩存中都不是有效 的。如果高速緩存管線在高速緩存中處于修改狀態(tài),則數(shù)據(jù)在高速緩 存中有效,并且在任何其他高速緩存中不可能有效。此外,作為存儲(chǔ)
器存儲(chǔ)操作的結(jié)果,該數(shù)據(jù)已被修改,并且修改的數(shù)據(jù)尚未被寫入存
儲(chǔ)器o
利用基于偵測(cè)的高速緩存一致性,當(dāng)高速緩存缺失發(fā)生時(shí),如果 在存儲(chǔ)器和另一個(gè)高速緩存中都找到所請(qǐng)求的數(shù)據(jù),因?yàn)楦咚倬彺嬷?高速緩存?zhèn)魉偷却龝r(shí)間通常小于存儲(chǔ)器訪問等待時(shí)間,所以通常優(yōu)選
經(jīng)由高速緩存至高速緩存?zhèn)魉吞峁?shù)據(jù)。例如,在IBM⑧Power 4系統(tǒng) 中,當(dāng)一個(gè)地址的數(shù)據(jù)在多芯片模塊中的一個(gè)或多個(gè)高速緩存中共享 時(shí),具有最后收到的共享拷貝的高速緩存可經(jīng)由高速緩存至高速緩存 傳送給相同多芯片模塊中的另 一 個(gè)高速緩存提供數(shù)據(jù)。
如果最初從高速緩存產(chǎn)生高速緩存請(qǐng)求,則該高速緩存被稱為高 速緩存請(qǐng)求的請(qǐng)求高速緩存。如果在給高速緩存請(qǐng)求提供服務(wù)過程中 需要偵測(cè)高速緩存,則該高速緩存被稱為高速緩存請(qǐng)求的偵測(cè)高速緩 存。如果高速緩存提供所請(qǐng)求數(shù)據(jù)給請(qǐng)求高速緩存,則該高速緩存被 稱為高速緩存請(qǐng)求的供給高速緩存。
同樣,如果最初從節(jié)點(diǎn)中的高速緩存產(chǎn)生高速緩存請(qǐng)求,則該節(jié) 點(diǎn)被稱為高速緩存請(qǐng)求的請(qǐng)求節(jié)點(diǎn)。如果在給高速緩存請(qǐng)求提供服務(wù) 過程中,需要偵測(cè)節(jié)點(diǎn)中的至少一個(gè)高速緩存,則該節(jié)點(diǎn)被稱為高速 緩存請(qǐng)求的偵測(cè)節(jié)點(diǎn)。如果節(jié)點(diǎn)中的高速緩存提供所請(qǐng)求數(shù)據(jù)給請(qǐng)求 節(jié)點(diǎn),則該節(jié)點(diǎn)被稱為高速緩存請(qǐng)求的供給節(jié)點(diǎn)。
在基于總線的SMP系統(tǒng)中,總線充當(dāng)中央仲裁器,其將所有總線 事務(wù)序列化,以確??偩€事務(wù)的全部順序。在基于網(wǎng)絡(luò)的SMP系統(tǒng)中, 可以于不同的接收高速緩存以不同順序接收消息。該一致性消息的序 列化保證的缺乏使得難以提供有效的高速緩存一致性支持。因此,存 在對(duì)于在基于網(wǎng)絡(luò)的多處理器系統(tǒng)中能夠有效地支持高速緩存一致 性的機(jī)制的需要。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)實(shí)施例,一種用于實(shí)施高速緩存一致性的計(jì)算 機(jī)實(shí)現(xiàn)的方法包括通過網(wǎng)絡(luò)無需排序限制地從請(qǐng)求節(jié)點(diǎn)多播對(duì)于存
儲(chǔ)器地址的高速緩存請(qǐng)求,通過嵌入所述網(wǎng)絡(luò)中的單向環(huán),由該請(qǐng)求 節(jié)點(diǎn)收集高速緩存請(qǐng)求的組合偵測(cè)響應(yīng),以及根據(jù)該組合偵測(cè)響應(yīng)在 請(qǐng)求節(jié)點(diǎn)處實(shí)施存儲(chǔ)器地址的高速緩存一致性。
才艮據(jù)本發(fā)明的一個(gè)實(shí)施例,高速緩存一致性系統(tǒng)包括通過網(wǎng)絡(luò)連 接的多個(gè)節(jié)點(diǎn),所述網(wǎng)絡(luò)包括嵌入的單向環(huán),以及實(shí)現(xiàn)該系統(tǒng)的高速 緩存一致性的高速緩存一致性機(jī)制,其中所述高速緩存一致性機(jī)制無 需任何排序限制地利用網(wǎng)絡(luò)傳送對(duì)于存儲(chǔ)器地址的高速緩存請(qǐng)求,并 且利用嵌入的單向環(huán)收集高速緩存請(qǐng)求的組合偵測(cè)響應(yīng)。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供一種計(jì)算機(jī)可讀介質(zhì),其包含了 由處理器可執(zhí)行的指令,該指令用來執(zhí)行用于實(shí)施高速緩存一致性的
方法。該方法包括通過網(wǎng)絡(luò)無需排序限制地從請(qǐng)求節(jié)點(diǎn)多播對(duì)于存 儲(chǔ)器地址的高速緩存請(qǐng)求,通過嵌入所述網(wǎng)絡(luò)中的單向環(huán),由該請(qǐng)求 節(jié)點(diǎn)收集高速緩存請(qǐng)求的組合偵測(cè)響應(yīng),以及根據(jù)該組合偵測(cè)響應(yīng)在 請(qǐng)求節(jié)點(diǎn)處實(shí)施存儲(chǔ)器地址的高速緩存一致性。
參照附圖,下面將更詳細(xì)地描述本公開的優(yōu)選實(shí)施例 圖l描述了示例性高速緩存一致多處理器系統(tǒng),其包括經(jīng)由節(jié)點(diǎn)
間互連網(wǎng)絡(luò)互連的多個(gè)節(jié)點(diǎn),其中每個(gè)節(jié)點(diǎn)包括CPU和高速緩存。 圖2描述了示例性高速緩存一致多處理器系統(tǒng),其包括經(jīng)由節(jié)點(diǎn)
間互連網(wǎng)絡(luò)互連的多個(gè)節(jié)點(diǎn),其中每個(gè)節(jié)點(diǎn)包括CMP子系統(tǒng),該CMP
子系統(tǒng)包括一個(gè)或多個(gè)高速緩存。
圖3示出了圖解請(qǐng)求節(jié)點(diǎn)如何處理到來的數(shù)據(jù)請(qǐng)求的流程圖。 圖4示出了圖解請(qǐng)求節(jié)點(diǎn)如何處理到來的數(shù)據(jù)和所有權(quán)請(qǐng)求的流程圖。
圖5示出了圖解請(qǐng)求節(jié)點(diǎn)如何處理到來的所有權(quán)請(qǐng)求的流程圖。 圖6示出了圖解偵測(cè)節(jié)點(diǎn)如何處理到來的高速緩存請(qǐng)求的流程圖。
圖7示出了圖解偵測(cè)節(jié)點(diǎn)如何處理高速緩存請(qǐng)求的到來的部分組
合偵測(cè)響應(yīng)(PCSR)的流程圖。
圖8示出了圖解偵測(cè)節(jié)點(diǎn)如何利用一致性沖突檢測(cè)支持處理到來 的高速緩存請(qǐng)求的流程圖。
圖9示出了圖解偵測(cè)節(jié)點(diǎn)如何利用一致性沖突檢測(cè)支持處理到來 的PCSR的流程圖。
圖10示出了圖解當(dāng)使用偵測(cè)過濾時(shí)偵測(cè)節(jié)點(diǎn)如何利用偵測(cè)列表 處理到來的PCSR的流程圖。
圖ll示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)節(jié)點(diǎn)的圖。
具體實(shí)施例方式
根據(jù)本公開的一個(gè)實(shí)施例,利用基于環(huán)的偵測(cè)響應(yīng)收集實(shí)現(xiàn)基于 網(wǎng)絡(luò)的多處理器系統(tǒng)中的高速緩存一致性。高速緩存一致性機(jī)制通過 沒有任何排序限制地利用多處理器系統(tǒng)的互連網(wǎng)絡(luò),同時(shí)利用嵌入互 連網(wǎng)絡(luò)中的單向環(huán)來收集高速緩存?zhèn)蓽y(cè)響應(yīng),多播高速緩存請(qǐng)求。
高速緩存一致系統(tǒng)包括經(jīng)由互連網(wǎng)絡(luò)彼此連接的多個(gè)節(jié)點(diǎn)?;ミB 網(wǎng)絡(luò)邏輯上包括請(qǐng)求網(wǎng)絡(luò)、響應(yīng)網(wǎng)絡(luò)和數(shù)據(jù)網(wǎng)絡(luò)。請(qǐng)求網(wǎng)絡(luò)被用于高 速緩存請(qǐng)求傳送,響應(yīng)網(wǎng)絡(luò)被用于高速緩存?zhèn)蓽y(cè)響應(yīng)傳送,而數(shù)據(jù)網(wǎng) 絡(luò)被用于所有其它傳送,包括高速緩存至高速緩存數(shù)據(jù)傳送以及高速 緩存與存儲(chǔ)器之間的數(shù)據(jù)傳送。雖然邏輯上互相獨(dú)立,但是請(qǐng)求網(wǎng)絡(luò)、 響應(yīng)網(wǎng)絡(luò)和數(shù)據(jù)網(wǎng)絡(luò)在物理上可以共享通信管腳和鏈接。
對(duì)于指定的存儲(chǔ)器地址,響應(yīng)網(wǎng)絡(luò)包括被用于傳送高速緩存?zhèn)蓽y(cè) 響應(yīng)的單向環(huán)。假設(shè)相同存儲(chǔ)器地址的高速緩存?zhèn)蓽y(cè)響應(yīng)使用相同單 向環(huán),那么不同的存儲(chǔ)器地址(通常以高速緩存管線粒度)可將嵌入所 述網(wǎng)絡(luò)中的不同的單向環(huán)用于高速緩存?zhèn)蓽y(cè)響應(yīng)。
對(duì)于指定的高速緩存請(qǐng)求的偵測(cè)節(jié)點(diǎn),如果在嵌入的單向環(huán)中節(jié) 點(diǎn)在偵測(cè)節(jié)點(diǎn)前面,則該節(jié)點(diǎn)被稱為在前節(jié)點(diǎn)。如果在嵌入的單向環(huán) 中節(jié)點(diǎn)在偵測(cè)節(jié)點(diǎn)之后,則該節(jié)點(diǎn)被稱為后續(xù)節(jié)點(diǎn)。如果在嵌入的單 向環(huán)中偵測(cè)節(jié)點(diǎn)在請(qǐng)求節(jié)點(diǎn)之后,則該高速緩存請(qǐng)求的偵測(cè)節(jié)點(diǎn)被稱 為第一偵測(cè)節(jié)點(diǎn)。如果在單向環(huán)互連網(wǎng)絡(luò)中請(qǐng)求節(jié)點(diǎn)在偵測(cè)節(jié)點(diǎn)之
后,則該高速緩存請(qǐng)求的偵測(cè)節(jié)點(diǎn)被稱為最后偵測(cè)節(jié)點(diǎn)。
當(dāng)偵測(cè)高速緩存執(zhí)行高速緩存?zhèn)蓽y(cè)操作時(shí),偵測(cè)高速緩存產(chǎn)生表 明高速緩存?zhèn)蓽y(cè)結(jié)果的高速緩存?zhèn)蓽y(cè)響應(yīng)。如果高速緩存?zhèn)蓽y(cè)響應(yīng)表 明僅在 一個(gè)偵測(cè)節(jié)點(diǎn)處本地高速緩存?zhèn)蓽y(cè)操作的結(jié)果,則該高速緩存
偵測(cè)響應(yīng)被稱為本地偵測(cè)響應(yīng)(LSR)。如果高速緩存?zhèn)蓽y(cè)響應(yīng)表明 在一個(gè)或更多偵測(cè)節(jié)點(diǎn)處本地高速緩存?zhèn)蓽y(cè)操作的結(jié)果,則該高速緩 存?zhèn)蓽y(cè)響應(yīng)被稱為部分組合的偵測(cè)響應(yīng)(PCSR)。如果高速緩存?zhèn)?測(cè)響應(yīng)表明在高速緩存請(qǐng)求的所有偵測(cè)節(jié)點(diǎn)處本地高速緩存?zhèn)蓽y(cè)操 作的結(jié)果,則該高速緩存?zhèn)蓽y(cè)響應(yīng)被稱為組合偵測(cè)響應(yīng)(CSR)。此 外,如果高速緩存?zhèn)蓽y(cè)響應(yīng)表明偵測(cè)節(jié)點(diǎn)能夠給請(qǐng)求節(jié)點(diǎn)提供所請(qǐng)求
數(shù)據(jù),則該高速緩存?zhèn)蓽y(cè)響應(yīng)被稱為正偵測(cè)響應(yīng);如果高速緩存?zhèn)蓽y(cè)
響應(yīng)表明沒有偵測(cè)節(jié)點(diǎn)能夠給請(qǐng)求節(jié)點(diǎn)提供所請(qǐng)求數(shù)據(jù),則該高速緩
存?zhèn)蓽y(cè)響應(yīng)被稱為負(fù)偵測(cè)響應(yīng)。
根據(jù)本公開的說明性實(shí)施例,當(dāng)存儲(chǔ)器地址的高速緩存缺失在請(qǐng) 求節(jié)點(diǎn)中發(fā)生時(shí),該請(qǐng)求節(jié)點(diǎn)沒有任何排序限制地向利用請(qǐng)求網(wǎng)絡(luò)的 所有偵測(cè)節(jié)點(diǎn)發(fā)出正確的高速緩存請(qǐng)求。如果需要所請(qǐng)求數(shù)據(jù),則一
旦收到所請(qǐng)求的數(shù)據(jù),無論相應(yīng)的CSR是否被接收,該請(qǐng)求節(jié)點(diǎn)在其 計(jì)算中能夠使用所請(qǐng)求的數(shù)據(jù)。當(dāng)請(qǐng)求節(jié)點(diǎn)收到CSR和所請(qǐng)求的數(shù)據(jù) (如果有的話)時(shí),其完成給高速緩存請(qǐng)求提供服務(wù)。
當(dāng)偵測(cè)節(jié)點(diǎn)從請(qǐng)求節(jié)點(diǎn)接收高速緩存請(qǐng)求時(shí),偵測(cè)節(jié)點(diǎn)執(zhí)行本地 高速緩存?zhèn)蓽y(cè)操作以產(chǎn)生LSR;以及如果來自在前節(jié)點(diǎn)的在前PCSR 已被接收和記錄,則根據(jù)高速緩存請(qǐng)求的LSR和在前PCSR計(jì)算新的 PCSR,或者如果高速緩存請(qǐng)求的在前PCSR尚未被接收,則為了后面 的使用記錄LSR。偵測(cè)節(jié)點(diǎn)需要確定是否利用嵌入的單向環(huán)向后續(xù)節(jié) 點(diǎn)轉(zhuǎn)發(fā)新的PCSR,或者記錄新的PCSR (以及稍后轉(zhuǎn)發(fā)它)。
當(dāng)偵測(cè)節(jié)點(diǎn)從在前節(jié)點(diǎn)接收到高速緩存請(qǐng)求的在前PCSR時(shí),如 果已經(jīng)產(chǎn)生和記錄了 LSR,則偵測(cè)節(jié)點(diǎn)根據(jù)高速緩存請(qǐng)求的在前 PCSR和先前記錄的LSR計(jì)算新的PCSR,或者如果尚未產(chǎn)生LSR,則 為了以后的使用記錄在前的PCSR。偵測(cè)節(jié)點(diǎn)需要確定是否利用嵌入
的單向環(huán)向后續(xù)節(jié)點(diǎn)轉(zhuǎn)發(fā)新的PCSR,或者記錄新的PCSR (以及稍后 轉(zhuǎn)發(fā)它)。
為計(jì)算高速緩存請(qǐng)求的新PCSR,偵測(cè)節(jié)點(diǎn)使用以下方法如果 在前PCSR指示數(shù)據(jù)尚未被提供給請(qǐng)求節(jié)點(diǎn)(負(fù)PCSR),以及LSR指 示數(shù)據(jù)尚未被提供給請(qǐng)求節(jié)點(diǎn)(負(fù)LSR),則新的PCSR指示數(shù)據(jù)尚 未被提供給請(qǐng)求節(jié)點(diǎn)(負(fù)PSCR)。另一方面,如果在前PCSR或者LSR 中的任意一個(gè)指示請(qǐng)求數(shù)據(jù)已被提供給請(qǐng)求節(jié)點(diǎn)(正PCSR或正 LSR),則新的PCSR指示數(shù)據(jù)已被提供給請(qǐng)求節(jié)點(diǎn)(正PCSR)。
當(dāng)高速緩存缺失在請(qǐng)求節(jié)點(diǎn)中的高速緩存中發(fā)生時(shí),請(qǐng)求節(jié)點(diǎn)可 接收數(shù)據(jù)請(qǐng)求、數(shù)據(jù)和所有權(quán)請(qǐng)求、或所有權(quán)請(qǐng)求。偵測(cè)節(jié)點(diǎn)可接收 高速緩存請(qǐng)求或PCSR。現(xiàn)在示出如何利用基于環(huán)的偵測(cè)響應(yīng)收集, 在高速緩存一致多處理器系統(tǒng)中處理此類請(qǐng)求和偵測(cè)響應(yīng)。
(l)數(shù)據(jù)請(qǐng)求的處理(在請(qǐng)求節(jié)點(diǎn)處)
圖3示出了圖解當(dāng)高速緩存缺失在請(qǐng)求節(jié)點(diǎn)中的請(qǐng)求高速緩存中 發(fā)生時(shí),請(qǐng)求節(jié)點(diǎn)如何處理到來的數(shù)據(jù)請(qǐng)求的流程圖。當(dāng)請(qǐng)求節(jié)點(diǎn)從 請(qǐng)求高速緩存收到高速緩存數(shù)據(jù)請(qǐng)求時(shí)(300),請(qǐng)求節(jié)點(diǎn)利用請(qǐng)求 網(wǎng)絡(luò)向偵測(cè)節(jié)點(diǎn)發(fā)送高速緩存數(shù)據(jù)請(qǐng)求(301),以及利用響應(yīng)網(wǎng)絡(luò)向高 速緩存請(qǐng)求的第一偵測(cè)節(jié)點(diǎn)發(fā)送高速緩存請(qǐng)求的初始(負(fù))PCSR (302 )。利用響應(yīng)網(wǎng)絡(luò),從請(qǐng)求節(jié)點(diǎn)向第一偵測(cè)節(jié)點(diǎn)發(fā)送的高速緩 存數(shù)據(jù)請(qǐng)求可與初始PCSR—起搭栽(piggyback)。請(qǐng)求節(jié)點(diǎn)等待從 供給節(jié)點(diǎn)接收所請(qǐng)求的數(shù)據(jù),或等待從高速緩存請(qǐng)求的最后偵測(cè)節(jié)點(diǎn) 接收高速緩存請(qǐng)求的CSR (303 )。偵測(cè)節(jié)點(diǎn)檢查偵測(cè)節(jié)點(diǎn)是否已收 到所請(qǐng)求的數(shù)據(jù)或高速緩存請(qǐng)求的CSR (304)。
如果偵測(cè)節(jié)點(diǎn)已經(jīng)從供給節(jié)點(diǎn)收到所請(qǐng)求的數(shù)據(jù),則請(qǐng)求節(jié)點(diǎn)在 請(qǐng)求高速緩存中緩存接收的數(shù)據(jù)(305),并且等待從最后偵測(cè)節(jié)點(diǎn) 接收高速緩存請(qǐng)求的CSR (306)。當(dāng)從最后偵測(cè)節(jié)點(diǎn)收到高速緩存 請(qǐng)求的CSR時(shí),請(qǐng)求節(jié)點(diǎn)將請(qǐng)求高速緩存狀態(tài)正確地設(shè)置成結(jié)束高速 緩存請(qǐng)求服務(wù)(307 )。
如果請(qǐng)求節(jié)點(diǎn)已經(jīng)從高速緩存請(qǐng)求的最后偵測(cè)節(jié)點(diǎn)收到高速緩
存請(qǐng)求的CSR,則請(qǐng)求節(jié)點(diǎn)檢查高速緩存請(qǐng)求的CSR是否為正或負(fù) (308)。如果高速緩存請(qǐng)求的CSR為正,則請(qǐng)求節(jié)點(diǎn)等待從供給節(jié) 點(diǎn)接收所請(qǐng)求的數(shù)據(jù)(309)。當(dāng)從供給節(jié)點(diǎn)收到所請(qǐng)求的數(shù)據(jù)時(shí), 請(qǐng)求節(jié)點(diǎn)在請(qǐng)求高速緩存中緩存接收的數(shù)據(jù),并且將請(qǐng)求高速緩存狀 態(tài)正確地設(shè)置成結(jié)束高速緩存請(qǐng)求服務(wù)(310)。否則,如果高速緩存請(qǐng) 求的CSR為負(fù),則請(qǐng)求節(jié)點(diǎn)向存儲(chǔ)器發(fā)送數(shù)據(jù)請(qǐng)求(311),并且等待從 存儲(chǔ)器中接收所請(qǐng)求的數(shù)據(jù)(312)。當(dāng)請(qǐng)求節(jié)點(diǎn)從存儲(chǔ)器中收到所 請(qǐng)求的數(shù)據(jù)時(shí),請(qǐng)求節(jié)點(diǎn)在請(qǐng)求高速緩存中緩存接收的數(shù)據(jù),并且將 請(qǐng)求高速緩存狀態(tài)正確地設(shè)置成結(jié)束高速緩存數(shù)據(jù)請(qǐng)求服務(wù)(313)。
(2)數(shù)據(jù)和所有權(quán)請(qǐng)求的處理(在請(qǐng)求節(jié)點(diǎn)處)
圖4示出了圖解當(dāng)高速緩存缺失在請(qǐng)求節(jié)點(diǎn)中的請(qǐng)求高速緩存中 發(fā)生時(shí),請(qǐng)求節(jié)點(diǎn)如何處理到來的數(shù)據(jù)和所有權(quán)請(qǐng)求的流程圖。當(dāng)請(qǐng) 求節(jié)點(diǎn)從請(qǐng)求高速緩存收到高速緩存數(shù)據(jù)和所有權(quán)請(qǐng)求時(shí)(400 ), 請(qǐng)求節(jié)點(diǎn)利用請(qǐng)求網(wǎng)絡(luò)向偵測(cè)節(jié)點(diǎn)發(fā)送高速緩存數(shù)據(jù)和所有權(quán)請(qǐng)求 (401),以及利用響應(yīng)網(wǎng)絡(luò)向高速緩存請(qǐng)求的第一偵測(cè)節(jié)點(diǎn)發(fā)送高速緩 存請(qǐng)求的初始(負(fù))PCSR (402)。利用響應(yīng)網(wǎng)絡(luò),從請(qǐng)求節(jié)點(diǎn)向第一 偵測(cè)節(jié)點(diǎn)發(fā)送的高速緩存數(shù)據(jù)和所有權(quán)請(qǐng)求可與初始PCSR—起搭 載。請(qǐng)求節(jié)點(diǎn)等待從供給節(jié)點(diǎn)接收所請(qǐng)求的數(shù)據(jù),或等待從最后偵測(cè) 節(jié)點(diǎn)接收高速緩存請(qǐng)求的CSR (403)。請(qǐng)求節(jié)點(diǎn)檢查其是否已經(jīng)從 供給節(jié)點(diǎn)收到所請(qǐng)求的數(shù)據(jù),或者從最后偵測(cè)節(jié)點(diǎn)收到高速緩存請(qǐng)求 的CSR( 404)'
如果請(qǐng)求節(jié)點(diǎn)已經(jīng)從供給節(jié)點(diǎn)收到所請(qǐng)求的數(shù)據(jù),則請(qǐng)求節(jié)點(diǎn)在 請(qǐng)求高速緩存中緩存接收的數(shù)據(jù)(405),并且等待從最后偵測(cè)節(jié)點(diǎn) 接收高速緩存請(qǐng)求的CSR (406)。當(dāng)從最后偵測(cè)節(jié)點(diǎn)收到高速緩存 請(qǐng)求的CSR時(shí),請(qǐng)求節(jié)點(diǎn)將請(qǐng)求高速緩存狀態(tài)正確地設(shè)置成結(jié)束高速 緩存請(qǐng)求服務(wù)(407 )。
如果請(qǐng)求節(jié)點(diǎn)已經(jīng)從最后偵測(cè)節(jié)點(diǎn)收到高速緩存請(qǐng)求的CSR,則 請(qǐng)求節(jié)點(diǎn)檢查高速緩存請(qǐng)求的CSR是否為正或負(fù)(408)。如果高速 緩存請(qǐng)求的CSR為正,則請(qǐng)求節(jié)點(diǎn)等待從供給節(jié)點(diǎn)接收所請(qǐng)求的數(shù)據(jù)
U09)。當(dāng)從供給節(jié)點(diǎn)收到所請(qǐng)求的數(shù)據(jù)時(shí),請(qǐng)求節(jié)點(diǎn)在請(qǐng)求高速 緩存中緩存接收的數(shù)據(jù),并且將請(qǐng)求高速緩存狀態(tài)正確地設(shè)置成結(jié)束 高速緩存數(shù)據(jù)和所有權(quán)請(qǐng)求服務(wù)(410)。否則,如果高速緩存請(qǐng)求的 CSR為負(fù),則請(qǐng)求節(jié)點(diǎn)向存儲(chǔ)器發(fā)送數(shù)據(jù)請(qǐng)求(411),并且等待從存儲(chǔ) 器中接收所請(qǐng)求的數(shù)據(jù)(412)。當(dāng)請(qǐng)求節(jié)點(diǎn)從存儲(chǔ)器中收到所請(qǐng)求的數(shù) 據(jù)時(shí),請(qǐng)求節(jié)點(diǎn)在請(qǐng)求高速緩存中緩存接收的數(shù)據(jù),并且將請(qǐng)求高速 緩存狀態(tài)正確地設(shè)置成結(jié)束高速緩存數(shù)據(jù)和所有權(quán)請(qǐng)求服務(wù)(413)。
(3) 所有權(quán)請(qǐng)求的處理(在請(qǐng)求節(jié)點(diǎn)處)
圖5示出了圖解當(dāng)高速緩存缺失在請(qǐng)求節(jié)點(diǎn)中的請(qǐng)求高速緩存中 發(fā)生時(shí),請(qǐng)求節(jié)點(diǎn)如何處理到來的所有權(quán)請(qǐng)求的流程圖。當(dāng)請(qǐng)求節(jié)點(diǎn) 從請(qǐng)求高速緩存收到高速緩存所有權(quán)請(qǐng)求時(shí)(500),節(jié)點(diǎn)利用請(qǐng)求 網(wǎng)絡(luò)向?qū)Φ?偵測(cè))節(jié)點(diǎn)發(fā)送所有權(quán)請(qǐng)求(501),以及利用響應(yīng)網(wǎng)絡(luò)向 高速緩存請(qǐng)求的第一偵測(cè)節(jié)點(diǎn)發(fā)送高速緩存請(qǐng)求的初始(負(fù))PCSR (502 )。利用響應(yīng)網(wǎng)絡(luò),從請(qǐng)求節(jié)點(diǎn)向第一偵測(cè)節(jié)點(diǎn)發(fā)送的高速緩 存所有權(quán)請(qǐng)求可與初始PCSR—起搭栽。請(qǐng)求節(jié)點(diǎn)等待從高速緩存請(qǐng) 求的最后偵測(cè)節(jié)點(diǎn)接收高速緩存請(qǐng)求的CSR( 503 )。當(dāng)收到高速緩存 請(qǐng)求的CSR時(shí),請(qǐng)求節(jié)點(diǎn)將請(qǐng)求高速緩存狀態(tài)正確地設(shè)置成結(jié)束高速 緩存請(qǐng)求服務(wù)(504 )。
(4) 高速緩存請(qǐng)求的處理(在偵測(cè)節(jié)點(diǎn)處)
圖6示出了圖解偵測(cè)節(jié)點(diǎn)如何處理到來的高速緩存請(qǐng)求的流程 圖。當(dāng)偵測(cè)節(jié)點(diǎn)從請(qǐng)求節(jié)點(diǎn)接收高速緩存請(qǐng)求時(shí)(600),偵測(cè)節(jié)點(diǎn) 執(zhí)行本地高速緩存?zhèn)蓽y(cè)操作,產(chǎn)生指示所請(qǐng)求的數(shù)據(jù)是否應(yīng)當(dāng)由偵測(cè) 節(jié)點(diǎn)提供給請(qǐng)求節(jié)點(diǎn)的高速緩存請(qǐng)求的LSR,以及如果高速緩存請(qǐng)求 的LSR指示應(yīng)當(dāng)提供所請(qǐng)求的數(shù)據(jù),則利用數(shù)據(jù)網(wǎng)絡(luò)向請(qǐng)求節(jié)點(diǎn)提供 數(shù)據(jù)(601)。偵測(cè)節(jié)點(diǎn)檢查是否從在前節(jié)點(diǎn)收到高速緩存請(qǐng)求的在 前PCSR(602)。如果收到高速緩存請(qǐng)求的在前PCSR,則偵測(cè)節(jié)點(diǎn) 基于高速緩存請(qǐng)求的在前PCSR和高速緩存請(qǐng)求的LSR,產(chǎn)生高速緩 存請(qǐng)求的新PCSR (603)。偵測(cè)節(jié)點(diǎn)利用響應(yīng)網(wǎng)絡(luò)向后續(xù)節(jié)點(diǎn)轉(zhuǎn)發(fā)高 速緩存請(qǐng)求的新PCSR (603 )。否則,如果沒有收到高速緩存請(qǐng)求的 在前PCSR,則偵測(cè)節(jié)點(diǎn)為了未來處理記錄高速緩存請(qǐng)求的 LSR( 604 )。
(5) PCSR的處理(在偵測(cè)節(jié)點(diǎn)處)
圖7示出了圖解偵測(cè)節(jié)點(diǎn)如何處理到來的PCSR的流程圖。當(dāng)偵測(cè) 節(jié)點(diǎn)從在前節(jié)點(diǎn)收到高速緩存請(qǐng)求的在前PCSR時(shí)(700),偵測(cè)節(jié)點(diǎn) 檢查偵測(cè)節(jié)點(diǎn)處是否有可用的高速緩存請(qǐng)求的LSR (701)。如果存 在可用的高速緩存請(qǐng)求的LSR,則偵測(cè)節(jié)點(diǎn)基于從在前節(jié)點(diǎn)接收的高 速緩存請(qǐng)求的在前PCSR,以及高速緩存請(qǐng)求的可用LSR,產(chǎn)生高速 緩存請(qǐng)求的新PCSR ( 702 )。偵測(cè)節(jié)點(diǎn)利用響應(yīng)網(wǎng)絡(luò)向后續(xù)節(jié)點(diǎn)轉(zhuǎn)發(fā) 高速緩存請(qǐng)求的新PCSR (702)。否則,如果偵測(cè)節(jié)點(diǎn)處沒有可用的 高速緩存請(qǐng)求的LSR,則偵測(cè)節(jié)點(diǎn)為了未來處理記錄從在前節(jié)點(diǎn)接收 的高速緩存請(qǐng)求的在前PCSR( 703 )。
一致性沖突檢測(cè)支持
當(dāng)不止一個(gè)節(jié)點(diǎn)同時(shí)發(fā)出關(guān)于相同地址的高速緩存請(qǐng)求時(shí),一致 性沖突可能發(fā)生。需要適當(dāng)?shù)臎_突處理以確保系統(tǒng)為高速緩存一致 的,以及能夠正向前進(jìn)?,F(xiàn)在示出偵測(cè)節(jié)點(diǎn)如何利用合適的沖突檢測(cè) 支持來處理高速緩存請(qǐng)求和在前PCSR。
根據(jù)本公開的說明性實(shí)施例,每個(gè)節(jié)點(diǎn)都保存PCSR向量,其中 PCSR向量的每個(gè)位對(duì)應(yīng)于請(qǐng)求節(jié)點(diǎn),其指示是否已收到來自相應(yīng)請(qǐng) 求節(jié)點(diǎn)的高速緩存請(qǐng)求的PCSR,以及是否尚未將該P(yáng)CSR用于計(jì)算新 PCSR。此外,每個(gè)節(jié)點(diǎn)都保存LSR向量,其中LSR向量的每個(gè)位對(duì) 應(yīng)于請(qǐng)求節(jié)點(diǎn),其指示來自相應(yīng)請(qǐng)求節(jié)點(diǎn)的高速緩存請(qǐng)求的LSR是否 已被產(chǎn)生,以及是否尚未利用該LSR來計(jì)算新PCSR。此外,每個(gè)節(jié) 點(diǎn)保存DRN(數(shù)據(jù)接收節(jié)點(diǎn))信息,其指示請(qǐng)求節(jié)點(diǎn)(如果有約話)已 經(jīng)有所請(qǐng)求數(shù)據(jù)了 ,其中PCSR向量指示相應(yīng)的PCSR已被收到并且尚 未被用于計(jì)算新PCSR,或者LSR向量指示相應(yīng)的LSR已被產(chǎn)生并且 尚未被用于計(jì)算新PCSR。
對(duì)于偵測(cè)節(jié)點(diǎn),我們用概念PCSI^V ( r )來表示針對(duì)請(qǐng)求節(jié)點(diǎn)r, 由請(qǐng)求節(jié)點(diǎn)r發(fā)出的高速緩存請(qǐng)求的PCSR是否已被偵測(cè)節(jié)點(diǎn)接收,并
且尚未被偵測(cè)節(jié)點(diǎn)用于產(chǎn)生要轉(zhuǎn)發(fā)到后續(xù)節(jié)點(diǎn)的新PCSR。如果 PCSR—V(r)表明可用(AVAILABLE),則來自請(qǐng)求節(jié)點(diǎn)r的高速緩 存請(qǐng)求的PCSR已被偵測(cè)節(jié)點(diǎn)接收,并且尚未被用于產(chǎn)生新PCSR。如 果PCSR—V ( r )表明不可用(UNAVAILABLE),則來自請(qǐng)求節(jié)點(diǎn)r 的高速緩存請(qǐng)求的PCSR尚未被偵測(cè)節(jié)點(diǎn)接收,或者來自請(qǐng)求節(jié)點(diǎn)的 高速緩存請(qǐng)求的PCSR已被偵測(cè)節(jié)點(diǎn)接收,并且已被用于產(chǎn)生新 PCSR。最初,針對(duì)系統(tǒng)中的每個(gè)請(qǐng)求節(jié)點(diǎn),PCSR向量表明不可用。 對(duì)于偵測(cè)高速緩存,我們用概念LSR一V ( r )來表示針對(duì)請(qǐng)求高速 緩存r,由請(qǐng)求節(jié)點(diǎn)r發(fā)出的高速緩存請(qǐng)求的LSR是否已被偵測(cè)節(jié)點(diǎn)產(chǎn) 生,并且尚未被偵測(cè)節(jié)點(diǎn)用于產(chǎn)生要轉(zhuǎn)發(fā)到后續(xù)節(jié)點(diǎn)的新PCSR。如 果LSRJS^ ( r )表明可用,則來自請(qǐng)求節(jié)點(diǎn)r的高速緩存請(qǐng)求的LSR已 被偵測(cè)節(jié)點(diǎn)產(chǎn)生,并且尚未被用于產(chǎn)生新PCSR。如果LSI^V(r)表 明不可用,則來自請(qǐng)求節(jié)點(diǎn)r的高速緩存請(qǐng)求的LSR尚未被偵測(cè)節(jié)點(diǎn)產(chǎn) 生,或者來自請(qǐng)求節(jié)點(diǎn)r的高速緩存請(qǐng)求的LSR已被偵測(cè)節(jié)點(diǎn)產(chǎn)生,并 且已被用于產(chǎn)生新PCSR。最初,針對(duì)系統(tǒng)中的每個(gè)請(qǐng)求節(jié)點(diǎn),LSR
向量表明不可用。
對(duì)于偵測(cè)節(jié)點(diǎn),我們用概念DRN來表示已經(jīng)給其提供有請(qǐng)求數(shù) 據(jù)的請(qǐng)求節(jié)點(diǎn)r,其中PCSRJV^(r)表明可用,或者LSR—V ( r )表明可 用。DRN的初值為無。
(6)利用一致性沖突檢測(cè)處理高速緩存請(qǐng)求(在偵測(cè)節(jié)點(diǎn)處)
圖8示出了圖解偵測(cè)節(jié)點(diǎn)如何利用一致性沖突檢測(cè)支持處理到來 的高速緩存請(qǐng)求的流程圖。當(dāng)偵測(cè)節(jié)點(diǎn)從請(qǐng)求節(jié)點(diǎn)r接收高速緩存請(qǐng) 求時(shí)(800 ),偵測(cè)節(jié)點(diǎn)執(zhí)行本地高速緩存?zhèn)蓽y(cè)操作,并且產(chǎn)生高速 緩存請(qǐng)求的LSR,其指示所請(qǐng)求的數(shù)據(jù)是否應(yīng)當(dāng)由偵測(cè)節(jié)點(diǎn)提供給請(qǐng) 求節(jié)點(diǎn)(801)。偵測(cè)節(jié)點(diǎn)檢查高速緩存請(qǐng)求的LSR是否指示所請(qǐng)求 的數(shù)據(jù)已由偵測(cè)節(jié)點(diǎn)提供給請(qǐng)求節(jié)點(diǎn)(802)。
如果高速緩存請(qǐng)求的LSR指示所請(qǐng)求的數(shù)據(jù)已由偵測(cè)節(jié)點(diǎn)提供 給請(qǐng)求節(jié)點(diǎn),則偵測(cè)節(jié)點(diǎn)利用數(shù)據(jù)網(wǎng)絡(luò)將數(shù)據(jù)提供給請(qǐng)求節(jié)點(diǎn) r( 803)。偵測(cè)節(jié)點(diǎn)檢查PCSR—V(r)是否為可用(804)。如果PCSR—V (r )為可用,則偵測(cè)節(jié)點(diǎn)基于從在前節(jié)點(diǎn)接收的高速緩存請(qǐng)求的 PCSR,以及高速緩存請(qǐng)求的LSR,產(chǎn)生高速緩存請(qǐng)求的新PCSR,并 且利用響應(yīng)網(wǎng)絡(luò)將新PCSR轉(zhuǎn)發(fā)給后續(xù)節(jié)點(diǎn)(805 )。偵測(cè)節(jié)點(diǎn)清除 PCSR—V(r)以指示不可用(806)。否則,如果PCSR—V(r)為不可 用,則偵測(cè)節(jié)點(diǎn)為了未來處理而記錄高速緩存請(qǐng)求的LSR( 807 ),并 且將LSR—V ( r )設(shè)置成指示可用,并且將DRN設(shè)置成r( 808 )。
如果高速緩存請(qǐng)求的LSR指示所請(qǐng)求的數(shù)據(jù)未被偵測(cè)節(jié)點(diǎn)提供 給請(qǐng)求節(jié)點(diǎn),則偵測(cè)節(jié)點(diǎn)檢查PCSR—V(r)是否為可用(809)。如果 PCSR一V ( r )為不可用,則偵測(cè)節(jié)點(diǎn)為了未來處理而記錄高速緩存請(qǐng) 求的LSR( 819 ),并且將LSR一V ( r )設(shè)置成指示可用(820 )。如果 PCSR_V ( r )為可用,則偵測(cè)節(jié)點(diǎn)檢查DRN是否被設(shè)置成r( 810 )。
如果DRN被設(shè)置成r,則偵測(cè)節(jié)點(diǎn)基于從在前節(jié)點(diǎn)接收的高速緩 存請(qǐng)求的PCSR和高速緩存請(qǐng)求的LSR,產(chǎn)生高速緩存請(qǐng)求的新 PCSR ,利用響應(yīng)網(wǎng)絡(luò)將高速緩存請(qǐng)求的新PCSR轉(zhuǎn)發(fā)給后續(xù)節(jié)點(diǎn) (811),以及清除PCSR—V ( r )以指示不可用(812)。對(duì)于每個(gè)節(jié) 點(diǎn)k,如果PCSR—V(k)指示可用,以及LSR—V(k)指示可用,則偵測(cè)節(jié) 點(diǎn)基于相應(yīng)記錄的PCSR和相應(yīng)記錄的LSR產(chǎn)生新PCSR,利用響應(yīng)網(wǎng) 絡(luò)將新PCSR轉(zhuǎn)發(fā)給后續(xù)節(jié)點(diǎn),以及清除PCSR一V(k)和LSR一V(k)以指 示不可用(813)。
如果DRN未被設(shè)置成r,則偵測(cè)節(jié)點(diǎn)檢查DRN是否指示沒有請(qǐng)求 節(jié)點(diǎn)要接收數(shù)據(jù)(814)。如果沒有請(qǐng)求節(jié)點(diǎn)要接收數(shù)據(jù),則偵測(cè)節(jié) 點(diǎn)基于從在前節(jié)點(diǎn)接收的高速緩存請(qǐng)求的PCSR和高速緩存請(qǐng)求的 LSR,產(chǎn)生高速緩存請(qǐng)求的新PCSR,利用響應(yīng)網(wǎng)絡(luò)將高速緩存請(qǐng)求 的新PCSR轉(zhuǎn)發(fā)給后續(xù)節(jié)點(diǎn)(815),以及清除PCSR—V( r )以指示不 可用(816)。否則,如果有任意節(jié)點(diǎn)要接收數(shù)據(jù),則為了未來處理 而記錄高速緩存請(qǐng)求的LSR(817),并且將LSF^V (r)設(shè)置成指示可 用(818)。
(7)利用一致性沖突檢測(cè)處理PCSR (在偵測(cè)節(jié)點(diǎn)處)
圖9示出了圖解偵測(cè)節(jié)點(diǎn)如何利用一致性沖突檢測(cè)支持處理高速
緩存請(qǐng)求的到來的PCSR的流程圖。當(dāng)偵測(cè)節(jié)點(diǎn)從在前節(jié)點(diǎn)接收高速 緩存請(qǐng)求的PCSR時(shí)(900),偵測(cè)節(jié)點(diǎn)檢查從在前節(jié)點(diǎn)接收的高速緩 存請(qǐng)求的PCSR是否指示數(shù)據(jù)已被提供給請(qǐng)求節(jié)點(diǎn)(901)。
如果從在前節(jié)點(diǎn)接收的高速緩存請(qǐng)求的PCSR指示數(shù)據(jù)已被提供 給請(qǐng)求節(jié)點(diǎn),則偵測(cè)節(jié)點(diǎn)檢查L(zhǎng)SR-V ( r )是否為可用(卯2)。如果 LSR一V ( r )為可用,則偵測(cè)節(jié)點(diǎn)基于從在前節(jié)點(diǎn)接收的高速緩存請(qǐng)求 的PCSR,以及高速緩存請(qǐng)求的LSR,產(chǎn)生高速緩存請(qǐng)求的新PCSR, 并且利用響應(yīng)網(wǎng)絡(luò)將高速緩存請(qǐng)求的新PCSR轉(zhuǎn)發(fā)給后續(xù)節(jié)點(diǎn)(903 )。 偵測(cè)節(jié)點(diǎn)清除LSRJV(r)以指示不可用(卯4)。否則,如果LSR_V (r )為不可用,則偵測(cè)節(jié)點(diǎn)為了未來處理而記錄從在前節(jié)點(diǎn)接收的高 速緩存請(qǐng)求的PCSR(905),并且將PCSI^V(r)設(shè)置成指示可用,以 及將DRN設(shè)置成r(卯6 )。
如果從在前節(jié)點(diǎn)接收的高速緩存請(qǐng)求的PCSR指示數(shù)據(jù)未被提供 給請(qǐng)求節(jié)點(diǎn),則偵測(cè)節(jié)點(diǎn)檢查L(zhǎng)SF^V ( r )是否為可用(卯7)。如果 LSR—V ( r )為不可用,則偵測(cè)節(jié)點(diǎn)為了未來處理而記錄從在前節(jié)點(diǎn)接 收的高速緩存請(qǐng)求的PCSR( 917 ),并且將PCSI^V ( r )設(shè)置成指示可 用(918)。如果LSR—V(r)為可用,則偵測(cè)節(jié)點(diǎn)檢查DRN是否被設(shè)置 成r(908)。
如果DRN被設(shè)置成r,則偵測(cè)節(jié)點(diǎn)基于從在前節(jié)點(diǎn)接收的高速緩 存請(qǐng)求的PCSR和高速緩存請(qǐng)求的LSR,產(chǎn)生高速緩存請(qǐng)求的新 PCSR ,利用響應(yīng)網(wǎng)絡(luò)將高速緩存請(qǐng)求的新PCSR轉(zhuǎn)發(fā)給后續(xù)節(jié)點(diǎn) (909),以及清除LSR—V(r)以指示不可用(910)。對(duì)于每個(gè)節(jié)點(diǎn) k,如果PCSR—V (k)指示可用,以及LSR—V (k)指示可用,則偵測(cè)節(jié) 點(diǎn)基于相應(yīng)記錄的PCSR和相應(yīng)記錄的LSR產(chǎn)生新PCSR,利用響應(yīng)網(wǎng) 絡(luò)將新PCSR轉(zhuǎn)發(fā)給后續(xù)節(jié)點(diǎn),以及清除PCSR—V (k)和LSR—V (k)以 指示不可用(911)。
如杲DRN未被設(shè)置成r,則偵測(cè)節(jié)點(diǎn)檢查DRN是否指示沒有節(jié)點(diǎn) 要接收數(shù)據(jù)(912)。如果沒有節(jié)點(diǎn)要接收數(shù)據(jù),則偵測(cè)節(jié)點(diǎn)基于從 在前節(jié)點(diǎn)接收的高速緩存請(qǐng)求的PCSR和高速緩存請(qǐng)求的LSR,產(chǎn)生
高速緩存請(qǐng)求的新PCSR,利用響應(yīng)網(wǎng)絡(luò)將高速緩存請(qǐng)求的新PCSR轉(zhuǎn) 發(fā)給后續(xù)節(jié)點(diǎn)(913),以及清除LSRJS^(r)以指示不可用()。 否則,如果有任何節(jié)點(diǎn)要接收數(shù)據(jù),則為了未來處理而記錄從在前節(jié) 點(diǎn)接收的高速緩存請(qǐng)求的PCSR( 915 ),并且將PCSI^V ( r )設(shè)置成指 示可用(916)。
偵測(cè)過濾實(shí)施
可以利用適當(dāng)?shù)膫蓽y(cè)過濾器來避免不必要的高速緩存請(qǐng)求和不 必要的本地高速緩存?zhèn)蓽y(cè)操作,以實(shí)施基于環(huán)的響應(yīng)收集系統(tǒng)。當(dāng)請(qǐng) 求節(jié)點(diǎn)接收高速緩存請(qǐng)求時(shí),相應(yīng)的偵測(cè)過濾器可以確定不需要偵測(cè) 一些偵測(cè)節(jié)點(diǎn)。例如,如果偵測(cè)過濾器建議針對(duì)一個(gè)節(jié)點(diǎn)過濾高速緩 存數(shù)據(jù)請(qǐng)求,則在該節(jié)點(diǎn)中不能找到所請(qǐng)求的數(shù)據(jù),或即使所請(qǐng)求的 數(shù)據(jù)在該節(jié)點(diǎn)中被緩存,也不能從該節(jié)點(diǎn)提供所請(qǐng)求的數(shù)據(jù)。相反, 如果偵測(cè)過濾器建議針對(duì)一個(gè)節(jié)點(diǎn)不過濾讀請(qǐng)求,則可以從該節(jié)點(diǎn)提 供所請(qǐng)求的數(shù)據(jù)。
現(xiàn)在示出在處理高速緩存請(qǐng)求時(shí),偵測(cè)過濾如何用于減少不必要 的高速緩存請(qǐng)求和不必要的本地高速緩存?zhèn)蓽y(cè)操作。
如果請(qǐng)求節(jié)點(diǎn)收到高速緩存數(shù)據(jù)請(qǐng)求,則請(qǐng)求高速緩存利用與圖 3相同的方法處理高速緩存數(shù)據(jù)請(qǐng)求,除了如下修改方框301和302之 外
(301)請(qǐng)求節(jié)點(diǎn)獲得給其發(fā)送高速緩存請(qǐng)求可能必需的偵測(cè)節(jié)點(diǎn) 的列表(高速緩存請(qǐng)求的偵測(cè)列表)。請(qǐng)求節(jié)點(diǎn)利用請(qǐng)求網(wǎng)絡(luò)將高速 緩存請(qǐng)求僅發(fā)送給在該列表中的偵測(cè)節(jié)點(diǎn)。
(302 )請(qǐng)求節(jié)點(diǎn)利用響應(yīng)網(wǎng)絡(luò)將高速緩存請(qǐng)求的PCSR,與請(qǐng)求 節(jié)點(diǎn)向其發(fā)送高速緩存請(qǐng)求的偵測(cè)節(jié)點(diǎn)的列表一起(PCSR和偵測(cè)列 表)發(fā)送給高速緩存請(qǐng)求的第一偵測(cè)節(jié)點(diǎn)。
此外,所有對(duì)CSR的提及應(yīng)當(dāng)被當(dāng)作CSR和偵測(cè)列表。然而,在 請(qǐng)求節(jié)點(diǎn)收到高速緩存請(qǐng)求的CSR和偵測(cè)列表之后,該請(qǐng)求節(jié)點(diǎn)不使 用收到的高速緩存請(qǐng)求的偵測(cè)列表,所以不需要進(jìn)一步改變。
如果請(qǐng)求節(jié)點(diǎn)收到高速緩存數(shù)據(jù)和所有權(quán)請(qǐng)求,則請(qǐng)求高速緩存
利用與圖4相同的方法處理高速緩存數(shù)據(jù)和所有權(quán)請(qǐng)求,除了如下修 改方框401和402之外
(401)請(qǐng)求節(jié)點(diǎn)獲得向其發(fā)送高速緩存請(qǐng)求可能必需的偵測(cè)節(jié) 點(diǎn)的列表(高速緩存請(qǐng)求的偵測(cè)列表)。請(qǐng)求節(jié)點(diǎn)利用請(qǐng)求網(wǎng)絡(luò)將高 速緩存請(qǐng)求僅發(fā)送給該列表中的偵測(cè)節(jié)點(diǎn)。
(402 )請(qǐng)求節(jié)點(diǎn)利用響應(yīng)網(wǎng)絡(luò)將高速緩存請(qǐng)求的PCSR,與請(qǐng)求 節(jié)點(diǎn)向其發(fā)送高速緩存請(qǐng)求的偵測(cè)節(jié)點(diǎn)的列表一起(PCSR和偵測(cè)列 表)發(fā)送給高速緩存請(qǐng)求的第一偵測(cè)節(jié)點(diǎn)。
此外,所有對(duì)CSR的提及應(yīng)當(dāng)被當(dāng)作CSR和偵測(cè)列表。然而,在 請(qǐng)求節(jié)點(diǎn)收到高速緩存請(qǐng)求的CSR和偵測(cè)列表之后,該請(qǐng)求節(jié)點(diǎn)不使 用高速緩存請(qǐng)求的偵測(cè)列表,所以不需要進(jìn)一步改變,
如果請(qǐng)求節(jié)點(diǎn)收到高速緩存所有權(quán)請(qǐng)求,則請(qǐng)求高速緩存利用與 圖5相同的方法處理高速緩存所有權(quán)請(qǐng)求,除了如下修改方框501和 502之外
(501)請(qǐng)求節(jié)點(diǎn)獲得向其發(fā)送高速緩存請(qǐng)求可能必需的偵測(cè)節(jié) 點(diǎn)的列表(高速緩存請(qǐng)求的偵測(cè)列表)。請(qǐng)求節(jié)點(diǎn)利用請(qǐng)求網(wǎng)絡(luò)將高 速緩存請(qǐng)求僅發(fā)送給該列表中的偵測(cè)節(jié)點(diǎn)。
(502 )請(qǐng)求節(jié)點(diǎn)利用響應(yīng)網(wǎng)絡(luò)將高速緩存請(qǐng)求的PCSR,與請(qǐng)求 節(jié)點(diǎn)向其發(fā)送高速緩存請(qǐng)求的偵測(cè)節(jié)點(diǎn)的列表一起(PCSR和偵測(cè)列 表)發(fā)送給高速緩存請(qǐng)求的第 一偵測(cè)節(jié)點(diǎn)。
此外,所有對(duì)CSR的提及應(yīng)當(dāng)被當(dāng)作CSR和偵測(cè)列表。然而,在 請(qǐng)求節(jié)點(diǎn)收到高速緩存請(qǐng)麥的CSR和偵測(cè)列表之后,該請(qǐng)求節(jié)點(diǎn)不使 用高速緩存請(qǐng)求的偵測(cè)列表,所以不需要進(jìn)一步改變。
圖10示出了圖解當(dāng)使用偵測(cè)過濾時(shí),偵測(cè)節(jié)點(diǎn)如何利用高速緩存 請(qǐng)求的偵測(cè)列表處理到來的PCSR的流程圖。當(dāng)偵測(cè)節(jié)點(diǎn)從在前節(jié)點(diǎn) 收到高速緩存請(qǐng)求的PCSR和偵測(cè)列表時(shí)(1000),偵測(cè)節(jié)點(diǎn)檢查在 偵測(cè)節(jié)點(diǎn)處是否有可用的高速緩存請(qǐng)求的LSR (1001)。如果在偵測(cè) 節(jié)點(diǎn)處有可用的高速緩存請(qǐng)求的LSR,則偵測(cè)節(jié)點(diǎn)基于從在前節(jié)點(diǎn)接 收的高速緩存請(qǐng)求的PCSR,以及高速緩存請(qǐng)求的可用LSR產(chǎn)生高速
緩存請(qǐng)求的新PCSR ( 1002)。偵測(cè)節(jié)點(diǎn)利用響應(yīng)網(wǎng)絡(luò)向后續(xù)節(jié)點(diǎn)轉(zhuǎn) 發(fā)高速緩存請(qǐng)求的新PCSR和偵測(cè)列表(1003)。否則,如果偵測(cè)節(jié) 點(diǎn)處沒有可用的高速緩存請(qǐng)求的LSR,則偵測(cè)節(jié)點(diǎn)檢查該偵測(cè)節(jié)點(diǎn)是 否被包含在收到的高速緩存請(qǐng)求的偵測(cè)列表中(1004 )。如果偵測(cè)節(jié)點(diǎn) 被包含在收到的高速緩存請(qǐng)求的偵測(cè)列表中,則偵測(cè)節(jié)點(diǎn)為了未來處 理而記錄從在前節(jié)點(diǎn)接收的高速緩存請(qǐng)求的PCSR和偵測(cè)列表 (1005)。否則,如果偵測(cè)節(jié)點(diǎn)未被包含在收到的高速緩存請(qǐng)求的偵 測(cè)列表中,則偵測(cè)節(jié)點(diǎn)利用響應(yīng)網(wǎng)絡(luò)將從在前節(jié)點(diǎn)接收的高速緩存請(qǐng) 求的PCSR和偵測(cè)列表轉(zhuǎn)發(fā)給后續(xù)節(jié)點(diǎn)。
應(yīng)當(dāng)理解,可以通過各種形式的硬件、軟件、固件、專用處理器 或其組合來實(shí)現(xiàn)本發(fā)明。在一個(gè)實(shí)施例中,本發(fā)明可以用軟件實(shí)現(xiàn)成 可觸知地嵌入在程序存儲(chǔ)設(shè)備上的應(yīng)用程序。該應(yīng)用程序可被上載到 包括任何適當(dāng)體系結(jié)構(gòu)的機(jī)器中,并且可被其執(zhí)行。
根據(jù)本發(fā)明的實(shí)施例,參考圖ll,用于在基于網(wǎng)絡(luò)的多處理器系 統(tǒng)中實(shí)施高速緩存一致性的計(jì)算機(jī)系統(tǒng)(1101)可特別包括中央處理 單元(CPU)( 1102)、存儲(chǔ)器(1103),以及輸入/輸出(I/0)接口 ( 1104 )。 計(jì)算機(jī)系統(tǒng)(1101)通常通過I/0接口 ( 1104 )連接到顯示器(1105 ), 以及諸如鼠標(biāo)和鍵盤的各種輸入設(shè)備(1106)上。支持電路可包括諸 如高速緩存、電源、時(shí)鐘電路以及通信總線的電路。存儲(chǔ)器(1103) 可包括隨機(jī)訪問存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、盤驅(qū)動(dòng)器、磁帶 驅(qū)動(dòng)器或其組合。本發(fā)明可被實(shí)現(xiàn)為被存儲(chǔ)在存儲(chǔ)器(1103)中的、 由CPU (1102)執(zhí)行的例程(1107)來處理來自信號(hào)源(1108)的信 號(hào)。這樣,當(dāng)執(zhí)行本發(fā)明的例程(1107)時(shí),計(jì)算機(jī)系統(tǒng)(1101)是 一種變成專用計(jì)算機(jī)系統(tǒng)的通用計(jì)算機(jī)系統(tǒng)。
計(jì)算機(jī)平臺(tái)(1101 )還包括操作系統(tǒng)和微指令代碼。此處描述的 各種進(jìn)程和功能可以是微指令代碼的一部分,或者是通過操作系統(tǒng)執(zhí) 行的應(yīng)用程序(或其組合)的一部分。此外,各種其它外部設(shè)備可被 連接到計(jì)算機(jī)平臺(tái)上,例如附加的數(shù)據(jù)存儲(chǔ)設(shè)備和打印設(shè)備。
可以進(jìn)一步理解,因?yàn)楦綀D中所示的一些組成系統(tǒng)部件和方法可
以用軟件實(shí)現(xiàn),所以系統(tǒng)部件(或過程)之間的實(shí)際連接可根據(jù)編程 本發(fā)明的方式而不同。根據(jù)此處提供的本發(fā)明的指導(dǎo),本領(lǐng)域普通技 術(shù)人員會(huì)能夠想到本發(fā)明的這些和類似實(shí)現(xiàn)或結(jié)構(gòu)。
前面描述了在基于網(wǎng)絡(luò)的多處理器系統(tǒng)中實(shí)施高速緩存一致性 的機(jī)制和方法的實(shí)施例,應(yīng)當(dāng)注意,本領(lǐng)域技術(shù)人員根據(jù)上述教導(dǎo)可 以進(jìn)行修改和變化。所以可以理解,在公開的本發(fā)明的具體實(shí)施例中 可以進(jìn)行各種落在所附權(quán)利要求書定義的發(fā)明范圍和宗旨內(nèi)的改變。
權(quán)利要求
1.一種用于實(shí)施高速緩存一致性的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括通過網(wǎng)絡(luò)無需排序限制地從請(qǐng)求節(jié)點(diǎn)多播對(duì)于存儲(chǔ)器地址的高速緩存請(qǐng)求;通過嵌入所述網(wǎng)絡(luò)中的單向環(huán),由所述請(qǐng)求節(jié)點(diǎn)收集所述高速緩存請(qǐng)求的組合偵測(cè)響應(yīng);以及根據(jù)所述組合偵測(cè)響應(yīng),在所述請(qǐng)求節(jié)點(diǎn)處實(shí)施所述存儲(chǔ)器地址的高速緩存一致性。
2. 如權(quán)利要求l所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 通過所述網(wǎng)絡(luò)將所述存儲(chǔ)器地址的數(shù)據(jù)提供給所述請(qǐng)求節(jié)點(diǎn); 在由所述請(qǐng)求節(jié)點(diǎn)收集所述高速緩存請(qǐng)求的所述偵測(cè)響應(yīng)之前,使用在所述請(qǐng)求節(jié)點(diǎn)處的所述數(shù)據(jù);以及在接收到所述高速緩存請(qǐng)求的數(shù)據(jù)和偵測(cè)響應(yīng)后,完成在所述請(qǐng) 求節(jié)點(diǎn)處的所述高速緩存請(qǐng)求。
3. 如權(quán)利要求2所迷的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 在偵測(cè)節(jié)點(diǎn)處從所述請(qǐng)求節(jié)點(diǎn)接收所述高速緩存請(qǐng)求; 在所述偵測(cè)節(jié)點(diǎn)處執(zhí)行本地高速緩存?zhèn)蓽y(cè)操作,并且產(chǎn)生所述高速緩存請(qǐng)求的LSR (本地偵測(cè)響應(yīng));以及為了后續(xù)處理在所述偵測(cè)節(jié)點(diǎn)處記錄所述LSR。
4. 如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 在偵測(cè)節(jié)點(diǎn)處從所述請(qǐng)求節(jié)點(diǎn)接收所述高速緩存請(qǐng)求;在所述偵測(cè)節(jié)點(diǎn)處執(zhí)行本地高速緩存?zhèn)蓽y(cè)操作,并且產(chǎn)生所述高 速緩存請(qǐng)求的LSR (本地偵測(cè)響應(yīng));基于來自在前節(jié)點(diǎn)的所述高速緩存請(qǐng)求的所述LSR以及在前 PCSR,確定所述高速緩存請(qǐng)求的新PCSR (部分組合偵測(cè)響應(yīng)),其 中在嵌入所述網(wǎng)絡(luò)中的單向環(huán)中所述在前節(jié)點(diǎn)在所述偵測(cè)節(jié)點(diǎn)之前; 以及通過嵌入所述網(wǎng)絡(luò)中的所述單向環(huán),將來自所述偵測(cè)節(jié)點(diǎn)的所述 高速緩存請(qǐng)求的所述新PCSR轉(zhuǎn)發(fā)給后續(xù)節(jié)點(diǎn),其中在嵌入所述網(wǎng)絡(luò) 中的所述單向環(huán)中所述后續(xù)節(jié)點(diǎn)在所述偵測(cè)節(jié)點(diǎn)之后。
5. 如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 在偵測(cè)節(jié)點(diǎn)處從在前節(jié)點(diǎn)接收在前PCSR(部分組合偵測(cè)響應(yīng)),其中在嵌入所述網(wǎng)絡(luò)中的所述單向環(huán)中所述在前節(jié)點(diǎn)在所述偵測(cè)節(jié) 點(diǎn)之前;以及為了后續(xù)處理在所述偵測(cè)節(jié)點(diǎn)處記錄所述在前PCSR。
6. 如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 在偵測(cè)節(jié)點(diǎn)處從在前節(jié)點(diǎn)接收在前PCSR(部分組合偵測(cè)響應(yīng)),其中在嵌入所述網(wǎng)絡(luò)中的所述單向環(huán)中所述在前節(jié)點(diǎn)在所述偵測(cè)節(jié) 點(diǎn)之前;基于所述高速緩存請(qǐng)求的所述在前PCSR和先前記錄的LSR (本 地偵測(cè)響應(yīng)),確定所述高速緩存請(qǐng)求的新PCSR;以及通過嵌入所述網(wǎng)絡(luò)中的所述單向環(huán),將來自所述偵測(cè)節(jié)點(diǎn)的所述 高速緩存請(qǐng)求的所述新PCSR轉(zhuǎn)發(fā)給后續(xù)節(jié)點(diǎn),其中在嵌入所述網(wǎng)絡(luò) 中的所述單向環(huán)中所述后續(xù)節(jié)點(diǎn)在所述偵測(cè)節(jié)點(diǎn)之后,
7,如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 在偵測(cè)節(jié)點(diǎn)處從在前節(jié)點(diǎn)接收在前PCSR (部分組合偵測(cè)響應(yīng))和偵測(cè)列表,其中所述偵測(cè)列表包括針對(duì)所述高速緩存請(qǐng)求需要被偵測(cè)的至少一個(gè)節(jié)點(diǎn);以及如果所述偵測(cè)節(jié)點(diǎn)被包含在所述偵測(cè)列表中,則在所述偵測(cè)節(jié)點(diǎn)處為后續(xù)處理記錄所述在前PCSR。
8. 如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 在偵測(cè)節(jié)點(diǎn)處從在前節(jié)點(diǎn)接收在前PCSR (部分組合偵測(cè)響應(yīng))和偵測(cè)列表,其中所述偵測(cè)列表包括針對(duì)所述高速緩存請(qǐng)求需要被偵 測(cè)的至少一個(gè)節(jié)點(diǎn);以及如果所述偵測(cè)節(jié)點(diǎn)沒有被包含在所述偵測(cè)列表中,則通過嵌入所 述網(wǎng)絡(luò)中的所述單向環(huán),將所述在前PCSR和所述偵測(cè)列表轉(zhuǎn)發(fā)給后 續(xù)節(jié)點(diǎn)。
9. 如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 在偵測(cè)節(jié)點(diǎn)處從在前節(jié)點(diǎn)接收在前PCSR (部分組合偵測(cè)響應(yīng))和偵測(cè)列表,其中所述偵測(cè)列表包括針對(duì)所述高速緩存請(qǐng)求需要被偵 測(cè)的至少一個(gè)節(jié)點(diǎn);基于所述高速緩存請(qǐng)求的所述在前PCSR和先前記錄的LSR (本 地偵測(cè)響應(yīng)),確定所述高速緩存請(qǐng)求的新PCSR;以及通過嵌入所述網(wǎng)絡(luò)中的所述單向環(huán),將來自所述偵測(cè)節(jié)點(diǎn)的所述 高速緩存請(qǐng)求的所述新PCSR和所述偵測(cè)列表轉(zhuǎn)發(fā)給后續(xù)節(jié)點(diǎn)。
10. 如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,將所述數(shù)據(jù) 提供給所述請(qǐng)求節(jié)點(diǎn)的步驟包括提供來自偵測(cè)節(jié)點(diǎn)的所述數(shù)據(jù)或提 供來自存儲(chǔ)器的所述數(shù)據(jù)中的一個(gè)。
11. 如權(quán)利要求l所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中對(duì)于所述存儲(chǔ) 器地址的高速緩存請(qǐng)求為數(shù)據(jù)請(qǐng)求、數(shù)據(jù)和所有權(quán)請(qǐng)求或所有權(quán)請(qǐng) 求。
12. 如權(quán)利要求l所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 通過所述網(wǎng)絡(luò)無需排序限制地多播來自所述請(qǐng)求節(jié)點(diǎn)的、對(duì)于第二存儲(chǔ)器地址的第二高速緩存請(qǐng)求;通過嵌入所述網(wǎng)絡(luò)中的第二單向環(huán),由所述請(qǐng)求節(jié)點(diǎn)收集所述第 二高速緩存請(qǐng)求的第二組合偵測(cè)響應(yīng);以及根據(jù)所述第二組合偵測(cè)響應(yīng),在所述請(qǐng)求節(jié)點(diǎn)處實(shí)施所述第二存 儲(chǔ)器地址的高速緩存一致性。
13. —種高速緩存一致性的系統(tǒng),包括 通過網(wǎng)絡(luò)連接的多個(gè)節(jié)點(diǎn),所述網(wǎng)絡(luò)包括嵌入的單向環(huán);以及 實(shí)現(xiàn)所述系統(tǒng)的高速緩存一致性的高速緩存一致性機(jī)構(gòu),其中,所述高速緩存一致性機(jī)構(gòu)利用所述網(wǎng)絡(luò)無需任何排序限制 地傳送對(duì)于存儲(chǔ)器地址的高速緩存請(qǐng)求,并且利用所述嵌入的單向環(huán) 來收集對(duì)于所述高速緩存請(qǐng)求的組合偵測(cè)響應(yīng)。
14. 如權(quán)利要求13所述的系統(tǒng),所述多個(gè)節(jié)點(diǎn)進(jìn)一步包括 請(qǐng)求節(jié)點(diǎn)、在所述嵌入的單向環(huán)中在所述請(qǐng)求節(jié)點(diǎn)之后的第一偵測(cè)節(jié)點(diǎn)以及在所述嵌入的單向環(huán)中在所述請(qǐng)求節(jié)點(diǎn)之前的最后偵測(cè) 節(jié)點(diǎn),其中,當(dāng)所述存儲(chǔ)器地址的高速緩存缺失在所述請(qǐng)求節(jié)點(diǎn)中的請(qǐng) 求高速緩存中發(fā)生時(shí),所述請(qǐng)求節(jié)點(diǎn)利用所述網(wǎng)絡(luò)、無需任何排序限 制地將對(duì)于所述存儲(chǔ)器地址的所述高速緩存請(qǐng)求多播給至少一個(gè)偵 測(cè)節(jié)點(diǎn),并且將初始PCSR (部分組合偵測(cè)響應(yīng))發(fā)送給所述第一偵 測(cè)節(jié)點(diǎn),其中,如果所述請(qǐng)求節(jié)點(diǎn)通過所述網(wǎng)絡(luò)接收到所請(qǐng)求的數(shù)據(jù),則 所述請(qǐng)求節(jié)點(diǎn)將所述高速緩存請(qǐng)求所請(qǐng)求的數(shù)據(jù)用于計(jì)算,以及其中,所述請(qǐng)求節(jié)點(diǎn)在接收到所述高速緩存請(qǐng)求的所請(qǐng)求數(shù)據(jù)和 所述偵測(cè)響應(yīng)后,完成在所述請(qǐng)求節(jié)點(diǎn)處的所述高速緩存請(qǐng)求。
15. 如權(quán)利要求13所述的系統(tǒng),所述多個(gè)節(jié)點(diǎn)進(jìn)一步包括偵測(cè)節(jié)點(diǎn)、在所述嵌入的單向環(huán)中在所述偵測(cè)節(jié)點(diǎn)之前的在前節(jié) 點(diǎn)、以及在所述嵌入的單向環(huán)中在所述偵測(cè)節(jié)點(diǎn)之后的后續(xù)節(jié)點(diǎn), 其中,當(dāng)所述偵測(cè)節(jié)點(diǎn)接收到所述高速緩存請(qǐng)求時(shí),如果從所述 在前節(jié)點(diǎn)接收的所述高速緩存請(qǐng)求的在前PCSR (部分組合偵測(cè)響應(yīng)) 未被記錄在所述偵測(cè)節(jié)點(diǎn)中,則所述偵測(cè)節(jié)點(diǎn)執(zhí)行本地高速緩存?zhèn)蓽y(cè) 操作以產(chǎn)生LSR (本地偵測(cè)響應(yīng)),并且為后續(xù)處理記錄所述LSR, 以及其中,當(dāng)所述偵測(cè)節(jié)點(diǎn)接收到所述高速緩存請(qǐng)求時(shí),如果從所述 在前節(jié)點(diǎn)接收的所述高速緩存請(qǐng)求的所述在前PCSR被記錄在所述偵 測(cè)節(jié)點(diǎn)中,則所述偵測(cè)節(jié)點(diǎn)執(zhí)行本地高速緩存?zhèn)蓽y(cè)操作以產(chǎn)生所述 LSR,基于所述在前PCSR和所述LSR計(jì)算新PCSR,并且將所述新 PCSR轉(zhuǎn)發(fā)給所述后續(xù)節(jié)點(diǎn)。
16. 如權(quán)利要求13所述的系統(tǒng),所述多個(gè)節(jié)點(diǎn)進(jìn)一步包括偵測(cè)節(jié)點(diǎn)、在所述嵌入的單向環(huán)中在所述偵測(cè)節(jié)點(diǎn)之前的在前節(jié) 點(diǎn)、以及在所述嵌入的單向環(huán)中在所述偵測(cè)節(jié)點(diǎn)之后的后續(xù)節(jié)點(diǎn),其中,當(dāng)所述偵測(cè)節(jié)點(diǎn)接收到來自所述在前節(jié)點(diǎn)的所述高速緩存 請(qǐng)求的在前PCSR (部分組合偵測(cè)響應(yīng))時(shí),如果在所述偵測(cè)節(jié)點(diǎn)處 未記錄所述高速緩存請(qǐng)求的LSR (本地偵測(cè)響應(yīng)),則所述偵測(cè)節(jié)點(diǎn) 為后續(xù)處理記錄所述PCSR,以及其中,當(dāng)所述偵測(cè)節(jié)點(diǎn)接收到來自所述在前節(jié)點(diǎn)的所述高速緩存 請(qǐng)求的所述在前PCSR時(shí),如果在所述偵測(cè)節(jié)點(diǎn)處記錄了所述高速緩 存請(qǐng)求的所述LSR,則所述偵測(cè)節(jié)點(diǎn)基于所述在前PCSR和所述LSR 計(jì)算新PCSR,并且將所述新PCSR轉(zhuǎn)發(fā)給所述后續(xù)節(jié)點(diǎn)。
17. 如權(quán)利要求13所述的系統(tǒng),所述多個(gè)節(jié)點(diǎn)進(jìn)一步包括偵測(cè)節(jié)點(diǎn)、在所述嵌入的單向環(huán)中在所述偵測(cè)節(jié)點(diǎn)之前的在前節(jié) 點(diǎn)、以及在所述嵌入的單向環(huán)中在所述偵測(cè)節(jié)點(diǎn)之后的后續(xù)節(jié)點(diǎn),其中,當(dāng)所述偵測(cè)節(jié)點(diǎn)接收到來自所述在前節(jié)點(diǎn)的所述高速緩存 請(qǐng)求的在前PCSR (部分組合偵測(cè)響應(yīng))和偵測(cè)列表時(shí),如果所述偵 測(cè)節(jié)點(diǎn)沒有包含在所述偵測(cè)列表中,則所述偵測(cè)節(jié)點(diǎn)將所述在前 PCSR和所述偵測(cè)列表轉(zhuǎn)發(fā)給所述后續(xù)節(jié)點(diǎn),其中,當(dāng)所述偵測(cè)節(jié)點(diǎn)從所述在前節(jié)點(diǎn)接收到所述高速緩存請(qǐng)求的所述在前PCSR和所述偵測(cè)列表時(shí),如果所述偵測(cè)節(jié)點(diǎn)包含在所述 偵測(cè)列表中,以及如果在所述偵測(cè)節(jié)點(diǎn)處未記錄所述高速緩存請(qǐng)求的 LSR(本地偵測(cè)響應(yīng)),則所述偵測(cè)節(jié)點(diǎn)為后續(xù)處理記錄所述在前 PCSR和所述偵測(cè)列表,以及其中,當(dāng)所述偵測(cè)節(jié)點(diǎn)從所述在前節(jié)點(diǎn)接收到所述高速緩存請(qǐng)求 的所述在前PCSR和所述偵測(cè)列表時(shí),如果所述偵測(cè)節(jié)點(diǎn)包含在所述 偵測(cè)列表中,以及如果在所述偵測(cè)節(jié)點(diǎn)處記錄了所述高速緩存請(qǐng)求的 LSR,則所述偵測(cè)節(jié)點(diǎn)基于所述在前PCSR和所述LSR計(jì)算新PCSR, 并且將所述新PCSR和所述偵測(cè)列表轉(zhuǎn)發(fā)給所述后續(xù)節(jié)點(diǎn)。
18. 如權(quán)利要求13所述的系統(tǒng),其中,對(duì)于所述存儲(chǔ)器地址的高 速緩存請(qǐng)求是數(shù)據(jù)請(qǐng)求、數(shù)據(jù)和所有權(quán)請(qǐng)求或所有權(quán)請(qǐng)求。
19. 如權(quán)利要求13所述的系統(tǒng),所述網(wǎng)絡(luò)進(jìn)一步包括 第二嵌入的單向環(huán),其中所述高速緩存一致性機(jī)構(gòu)利用所述網(wǎng)絡(luò)無需任何排序限制地傳送對(duì)于第二存儲(chǔ)器地址的第二高速緩存請(qǐng)求,并且利用所述第二嵌入的單向環(huán)收集對(duì)于所述第二高速緩存請(qǐng)求的第二組合偵測(cè)響應(yīng)。
全文摘要
提供了一種用于實(shí)施高速緩存一致性的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括通過網(wǎng)絡(luò)無需排序限制地從請(qǐng)求節(jié)點(diǎn)多播對(duì)于存儲(chǔ)器地址的高速緩存請(qǐng)求,由所述請(qǐng)求節(jié)點(diǎn)通過嵌入網(wǎng)絡(luò)中的單向環(huán),收集對(duì)于高速緩存請(qǐng)求的組合偵測(cè)響應(yīng),以及根據(jù)該組合偵測(cè)響應(yīng),在請(qǐng)求節(jié)點(diǎn)處實(shí)施存儲(chǔ)器地址的高速緩存一致性。
文檔編號(hào)G06F12/08GK101178691SQ20071018124
公開日2008年5月14日 申請(qǐng)日期2007年10月25日 優(yōu)先權(quán)日2006年11月6日
發(fā)明者卡里恩·施特勞斯, 沈曉衛(wèi) 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司