欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

滿足部分讀取和非監(jiān)聽訪問之間的訪存順序要求的制作方法

文檔序號(hào):6579235閱讀:262來源:國(guó)知局
專利名稱:滿足部分讀取和非監(jiān)聽訪問之間的訪存順序要求的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及高速點(diǎn)對(duì)點(diǎn)互連鏈路,并且具體地,涉及用于實(shí)現(xiàn)一致互連架構(gòu)的一致性協(xié)議。
背景技術(shù)
當(dāng)電子系統(tǒng)包括多個(gè)高速緩沖存儲(chǔ)器時(shí),系統(tǒng)中保存的數(shù)據(jù)的有效性或一致性被維持,以確保數(shù)據(jù)操作的完整性。經(jīng)常通過根據(jù)高速緩存一致性協(xié)議處理數(shù)據(jù)來實(shí)現(xiàn)一致性。隨著高速緩存和/或處理器數(shù)目的增加,維持一致性的復(fù)雜性也增加,而這可能導(dǎo)致系統(tǒng)的多個(gè)組件之間發(fā)生更多沖關(guān)。
例如,當(dāng)多個(gè)組件(例如高速緩沖存儲(chǔ)器、處理器)請(qǐng)求相同數(shù)據(jù)塊時(shí),以維持該數(shù)據(jù)的有效性的方式解決多個(gè)組件之間的沖突。之前的高速緩存一致性協(xié)議典型地具有負(fù)責(zé)解決沖突的單個(gè)組件。然而,隨著系統(tǒng)復(fù)雜性的增加,依靠單個(gè)組件解決沖突可能會(huì)降低整個(gè)系統(tǒng)的性能。
一般地,存在兩種基本方案來提供高速緩存一致性監(jiān)聽(snooping)(現(xiàn)在通常稱為對(duì)稱多處理(SMP))和目錄(directory)(通常稱為分布式共享存儲(chǔ)器(DSM))。這兩種方案之間的根本不同圍繞在元信息的放置和訪問方面;即,關(guān)于在哪里保存高速緩存行(cache line)的拷貝的信息。
對(duì)基于目錄的方案來說,除了存儲(chǔ)著未緩存數(shù)據(jù)的 固定位置之外,還存在一個(gè)固定單元,即目錄,來指示緩存拷貝駐留在哪里。為了以新的方式訪問高速緩存行,節(jié)點(diǎn)必須與包含目錄的節(jié)點(diǎn)進(jìn)行通信,包含目錄的該節(jié)點(diǎn)通常和包含未緩存數(shù)據(jù)存儲(chǔ)庫(kù)的節(jié)點(diǎn)是同一節(jié)點(diǎn),由此允許應(yīng)答方節(jié)點(diǎn)在主存儲(chǔ)拷貝有效時(shí)提供數(shù)據(jù)。在目錄系統(tǒng)中,這樣的節(jié)點(diǎn)被稱為歸屬節(jié)點(diǎn)(home node)。
目錄可以用兩種方式進(jìn)行分布。第一,主存儲(chǔ)數(shù)據(jù)(未緩存存儲(chǔ)庫(kù))通常分布在節(jié)點(diǎn)之間,并且目錄以相同的方式進(jìn)行分布。第二,元信息自身可以被分布,在歸屬節(jié)點(diǎn)處僅保留關(guān)于行是否被緩存的信息,并且如果被
緩存的話,則還保留關(guān)于單個(gè)拷貝駐留在哪里的信息。例如,SCI使用該
方案,其中包含被緩存的拷貝的每個(gè)節(jié)點(diǎn)維持到具有被緩存的拷貝的其它節(jié)點(diǎn)的鏈路,由此共同維持完整的目錄。
對(duì)于監(jiān)聽高速緩存,元信息與緩存拷貝自身一同被分布,從而由單元來保存高速緩存行的每個(gè)有效拷貝,所述單元識(shí)別訪問該高速緩存行的請(qǐng)求,并相應(yīng)地作出應(yīng)答。典型地,存在著其中保存未緩存狀態(tài)的數(shù)據(jù)的存儲(chǔ)庫(kù),即數(shù)據(jù)的原始位置。通常,對(duì)該原始位置負(fù)責(zé)的代理或單元被稱為歸屬節(jié)點(diǎn)。當(dāng)請(qǐng)求訪問高速緩存行時(shí),請(qǐng)求方節(jié)點(diǎn)通常將被請(qǐng)求的高速緩存行的地址與所需許可一同廣播,而保存著被請(qǐng)求的高速緩存行的拷貝的節(jié)點(diǎn)相應(yīng)地作出應(yīng)答。
然而,在當(dāng)前一些一致性和消息傳送協(xié)議中,在特定環(huán)境下對(duì)高速緩存行的部分讀取和非監(jiān)聽存儲(chǔ)器訪問(即一致架構(gòu)中的非一致訪問)可能導(dǎo)致將無效數(shù)據(jù)轉(zhuǎn)發(fā)給請(qǐng)求者。通常,這些環(huán)境是由于違反了協(xié)議內(nèi)的訪存
順序(memory ordering)規(guī)則而引起。因此,接收到無效數(shù)據(jù)的代理可能執(zhí)行非法操作,這可能導(dǎo)致系統(tǒng)內(nèi)的不穩(wěn)定性。


本發(fā)明通過實(shí)例的方式說明,并且并不受附圖的限制。圖l說明了協(xié)議架構(gòu)的實(shí)施例。
圖2說明了包括多個(gè)處理器的系統(tǒng)的實(shí)施例,所述多個(gè)處理器耦合到利用點(diǎn)對(duì)點(diǎn)互連的芯片組。
圖3說明了用于雙向互連架構(gòu)的框圖的實(shí)施例,所述架構(gòu)利用分層的
輸入/lr出(i/o)棧。
圖4a說明了用于多個(gè)節(jié)點(diǎn)之間可能導(dǎo)致訪問無效數(shù)據(jù)的消息傳送協(xié)議的協(xié)議圖的實(shí)施例。
圖4b說明了用來響應(yīng)于部分和非監(jiān)聽存儲(chǔ)器訪問來提供有效數(shù)據(jù)的協(xié)議圖的實(shí)施例。
圖5a說明了用于多個(gè)節(jié)點(diǎn)之間可能導(dǎo)致訪問無效數(shù)據(jù)的消息傳送協(xié)議的協(xié)議圖的另一實(shí)施例。圖5b說明了用來響應(yīng)于部分和非監(jiān)聽存儲(chǔ)器訪問來提供有效數(shù)據(jù)的協(xié)議圖的另一實(shí)施例。
具體實(shí)施例方式
在下面的描述中,闡述了許多特定細(xì)節(jié),例如特定互連架構(gòu)、特定消息、特定偽碼、特定互連架構(gòu)層等的實(shí)例,以提供對(duì)本發(fā)明的透徹理解。然而,將對(duì)本領(lǐng)域技術(shù)人員顯而易見的是,并不是必須采用這些特定細(xì)節(jié)來實(shí)踐本發(fā)明。在其它實(shí)例中,未詳細(xì)描述熟知的組件或方法,例如特定的互連層架構(gòu)細(xì)節(jié)、特定的非相關(guān)消息和協(xié)議、處理器和高速緩存的特定操作細(xì)節(jié)等,以免不必要地混淆本發(fā)明。
本文描述的方法和裝置用于在互連架構(gòu)中提供部分訪問和非監(jiān)聽存儲(chǔ)器訪問之間適當(dāng)?shù)脑L存順序。特別地,對(duì)訪存順序要求的遵守主要參照說明性的、基于高速緩存一致鏈路的互連架構(gòu)來進(jìn)行討論。然而,用于提供適當(dāng)?shù)脑L存順序要求的方法和裝置并不限于此,它們可以用任何互連架構(gòu)來實(shí)現(xiàn)。
說明性的互連架構(gòu)的實(shí)施例
圖l說明了高度簡(jiǎn)化的協(xié)議架構(gòu)的實(shí)施例。在一個(gè)實(shí)施例中,該協(xié)議架構(gòu)在正常事務(wù)以及請(qǐng)求沖突期間要維持架構(gòu)中高速緩存內(nèi)的數(shù)據(jù)之間的數(shù)據(jù)一致性。此外,在一個(gè)實(shí)施例中,該協(xié)議架構(gòu)還為每個(gè)請(qǐng)求提供轉(zhuǎn)發(fā)進(jìn)度(forward progress),使得每個(gè)請(qǐng)求得到滿足并引退(retire)。
協(xié)議架構(gòu)可以包括任意數(shù)目的節(jié)點(diǎn)或代理。在一個(gè)實(shí)施例中,節(jié)點(diǎn)包括與內(nèi)部高速緩沖存儲(chǔ)器、外部高速緩沖存儲(chǔ)器和/或外部存儲(chǔ)器相關(guān)聯(lián)的處理器。然而,節(jié)點(diǎn)或代理可以是指互連架構(gòu)中的任何設(shè)備或其集合,例如處理器、存儲(chǔ)器控制中心、和I/O中心、通用控制中心、I/O設(shè)備、I/O設(shè)備的集合、或者能夠訪問存儲(chǔ)器的任何其它設(shè)備/組件。在另一實(shí)施例中,節(jié)點(diǎn)是與其它電子系統(tǒng)互連的電子系統(tǒng)(例如計(jì)算機(jī)系統(tǒng)、移動(dòng)設(shè)備)。其它類型的節(jié)點(diǎn)配置也可以被使用。
如所說明的,架構(gòu)100包括緩存節(jié)點(diǎn)/代理105-106和歸屬代理110-112。在一個(gè)實(shí)施例中,歸屬代理110-112用于保護(hù)作為一致存儲(chǔ)空間的最后存儲(chǔ)庫(kù)的存儲(chǔ)位置。換言之,代理110是對(duì)一致存儲(chǔ)空間的數(shù)據(jù)的多個(gè)原始物理存儲(chǔ)位置負(fù)責(zé)的歸屬代理。歸屬代理110-112可以執(zhí)行以下任務(wù)的任意組合,所述任務(wù)包括跟蹤來自緩存代理105-106的緩存狀態(tài)轉(zhuǎn)換、管理緩存代理105-106中的沖突、與存儲(chǔ)器接口、提供數(shù)據(jù)和/或所有權(quán),以及任何其它已知的歸屬代理相關(guān)的任務(wù)。
在一個(gè)實(shí)施例中,緩存代理105-106包括與高速緩沖存儲(chǔ)器相關(guān)聯(lián)的代理,例如包括高速緩沖存儲(chǔ)器和緩存I/O代理實(shí)體的處理器。緩存代理105-106可以執(zhí)行以下任務(wù)以及任何其它任務(wù)的任意組合,例如執(zhí)行對(duì)一致存儲(chǔ)空間的讀取和寫入請(qǐng)求、保存來自一致存儲(chǔ)空間的數(shù)據(jù)的緩存拷貝,以及將緩存拷貝提供給其它對(duì)等緩存代理。緩存代理或節(jié)點(diǎn)也可以被稱為相對(duì)于另一緩存代理的對(duì)等代理/節(jié)點(diǎn)。盡管未在圖1中特別說明,但是所述協(xié)議架構(gòu)還可以包括非緩存代理,例如代表I/O設(shè)備來參與或見證(witness)事務(wù)的輸入/輸出(I/O)中心。
在一個(gè)實(shí)施例中,緩存代理105-106和歸屬代理110-112通過在網(wǎng)絡(luò)結(jié)構(gòu)101上交換消息來維持?jǐn)?shù)據(jù)一致性并提供轉(zhuǎn)發(fā)信息。在一個(gè)實(shí)施例中,結(jié)構(gòu)101有助于通過點(diǎn)對(duì)點(diǎn)互連網(wǎng)絡(luò)將消息從一個(gè)代理/節(jié)點(diǎn)傳送到另一個(gè)代理/節(jié)點(diǎn)。通常說圖1描繪了基礎(chǔ)網(wǎng)絡(luò)的高速緩存一致性協(xié)議的概要視圖。
在一個(gè)實(shí)施例中,互連架構(gòu)100可以并入下面共同未決申請(qǐng)中所描述的新穎特征的任意組合。例如,標(biāo)題為"Forward State for Use in CacheCoherency in a Multi-Node System"的美國(guó)申請(qǐng)6,922,756描述了轉(zhuǎn)發(fā)高速緩存一致性狀態(tài)(F-狀態(tài))的利用。此外,在下面的申請(qǐng)中討論了各種情形下的 一致性協(xié)議的實(shí)例,所述申請(qǐng)包括:所遞交的標(biāo)題為"A Two-Hop CacheCoherency Protocol"的申請(qǐng)No. XX/XXX,XXX(代理人巻號(hào)為P15925)、所遞交的標(biāo)題為"AMessaging Protocol"的申請(qǐng)No. XX/XXX,XXX(代理人巻號(hào)為P18890)、所遞交的標(biāo)題為"A Cache Coherence Protocol"的申請(qǐng)No.XX/XXX,XXX(代理人巻號(hào)為P118891)、所遞交的標(biāo)題為"A Two-HopSource Snoop Based Cache Coherence Protocol " 的申請(qǐng) No,XX/XXX,XXX(代理人巻號(hào)為P22376)、以及所遞交的標(biāo)題為"A Two-HopSource Snoop Based Messaging Protocol"的申請(qǐng)No. XX/XXX,XXX(代理人巻號(hào)為P23106)。
10其它實(shí)例包括2002年遞交的標(biāo)題為"Speculative Distributed ConflictResolution for a Cache Coherency Protocol"的申請(qǐng)No. 10/XXX,XXX(代理人巻號(hào)為P13923); 2002年遞交的標(biāo)題為"Hierarchical Directories for CacheCoherency in a Multiprocessor System"的申請(qǐng)No. 10/XXX,XXX(代理人巻號(hào)為P13984); 2002年遞交的標(biāo)題為"Hierarchical Virtual Model of a CacheHierarchy in a Multiprocessor System"的申請(qǐng)No. 10/XXX,XXX(代理人巻號(hào)為P13985); 2002年遞交的標(biāo)題為"Non-Speculative Distributed ConflictResolution for a Cache Coherency Protocol"的申請(qǐng)No. 10/XXX,XXX(代理人巻號(hào)為P13986)。
注意,前述共同未決申請(qǐng)中描述的特征可以并入本文描述的實(shí)施例中;然而,本文描述的實(shí)施例并不限于此,它們可以包括額外的特征,并且可能不包括上述特征。
圖2說明了包括多個(gè)處理器的系統(tǒng)的實(shí)施例,所述多個(gè)處理器耦合到利用點(diǎn)對(duì)點(diǎn)互連架構(gòu)的芯片組。圖2的系統(tǒng)也可以包括數(shù)個(gè)處理器,為了清楚僅示出其中兩個(gè)處理器205、 210。如所說明的,處理器205、 210每一個(gè)包括兩個(gè)處理部件206-207、 211-212;但是,處理器205、 210中可以包括任意數(shù)目的處理部件。
處理部件是指線程單元、處理單元、上下文(context)、邏輯處理器、硬件線程、核心、和/或能夠保持處理器的狀態(tài)的任何其它部件,所述狀態(tài)例如執(zhí)行狀態(tài)或架構(gòu)狀態(tài)。換言之,在一個(gè)實(shí)施例中,處理部件是指能夠與代碼獨(dú)立相關(guān)聯(lián)的任何硬件,所述代碼例如軟件線程、操作系統(tǒng)、應(yīng)用程序或其它代碼。作為一個(gè)實(shí)例,物理處理器典型地是指可能包括任意數(shù)目的其它處理部件(例如核心或硬件線程)的集成電路。
核心通常是指位于集成電路上能夠維持獨(dú)立架構(gòu)狀態(tài)的邏輯,其中,每個(gè)獨(dú)立維持的架構(gòu)狀態(tài)與至少一些專用的執(zhí)行資源相關(guān)聯(lián)。與核心相反,硬件線程(也可以稱為物理線程)典型地是指位于集成電路上能夠維持獨(dú)立架構(gòu)狀態(tài)的任意邏輯,其中,所獨(dú)立維持的架構(gòu)狀態(tài)共享對(duì)執(zhí)行資源的訪問。因此,如所看到的,在一個(gè)實(shí)施例中,諸如單線程應(yīng)用程序的多個(gè)拷貝這樣的多個(gè)軟件線程能夠在多個(gè)處理部件上被并行執(zhí)行,所述多個(gè)處理部件可以包括前述處理部件(諸如核心或硬件線程)的任意組合。在處理器205、 210中還說明了資源208、 213,其典型地包括寄存器、單元、邏輯、固件、存儲(chǔ)器以及用于執(zhí)行代碼或與其它設(shè)備接口的其它資源。如上所述, 一些資源110可以部分或全部專用于處理部件,而其它資源在處理部件之間共享。例如,可以針對(duì)物理線程來復(fù)制較小的資源,例如指令指針和重命名邏輯??梢酝ㄟ^分區(qū)來共享一些資源,例如重排序/引退單元中的重排序緩沖器、指令旁路轉(zhuǎn)換緩沖器(ILTB)、加載/存儲(chǔ)緩沖器以及隊(duì)列。其它資源,諸如通用內(nèi)部寄存器、頁(yè)表基址寄存器、低級(jí)別數(shù)據(jù)高速緩存、數(shù)據(jù)TLB、執(zhí)行單元以及無序(out-of-order)單元,可能在線程之間被全部共享。相反,核心可以具有專用的執(zhí)行資源,同時(shí)共享至少一部分的較高級(jí)別高速緩存,例如二級(jí)高速緩存(L2)。
在一個(gè)實(shí)施例中,資源208、 213包括處理器流水線,所述處理器流水線可以包括任意數(shù)目的流水線級(jí)。流水線級(jí)的普通實(shí)例包括指令指針級(jí)、取址級(jí)、解碼級(jí)、驅(qū)動(dòng)級(jí)、和分配級(jí)、重命名級(jí)、隊(duì)列級(jí)、重排序級(jí)、調(diào)度級(jí)、分派級(jí)、執(zhí)行級(jí)、存儲(chǔ)器訪問級(jí)以及寄存器訪問級(jí)。注意,這些級(jí)的列表包括處理器流水線級(jí)的示例性非窮舉列表,處理器100中可以包括任何己知的流水線級(jí)。
處理器205、 210每一個(gè)還可以包括與存儲(chǔ)器209、 214相應(yīng)地有接口的存儲(chǔ)器控制器或本地存儲(chǔ)器控制器中心(MCH)。存儲(chǔ)器209、 214包括任意存儲(chǔ)器件,例如隨機(jī)存取存儲(chǔ)器(RAM)、高速緩沖存儲(chǔ)器、閃存或其它存儲(chǔ)器件。在一個(gè)實(shí)施例中,存儲(chǔ)器214包括高級(jí)別高速緩沖存儲(chǔ)器,而資源213包括低級(jí)別高速緩沖存儲(chǔ)器。在另一實(shí)施例中,存儲(chǔ)器209包括與處理器205相關(guān)聯(lián)的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM),所述處理器包括高速緩沖存儲(chǔ)器,以緩存來自DRAM 209的數(shù)據(jù)。注意,這只是說明性的實(shí)施例,因?yàn)榇鎯?chǔ)器209、 214可能包括任何類型的存儲(chǔ)器件。
在一個(gè)實(shí)施例中,在存儲(chǔ)器209、 214包括高速緩沖存儲(chǔ)器(被包含在處理器205、 210內(nèi)或者如所說明的那樣在其外部)的情況下,處理器205、210能夠作為歸屬節(jié)點(diǎn)和對(duì)等緩存節(jié)點(diǎn)。例如,當(dāng)事務(wù)引用了存儲(chǔ)器209中的存儲(chǔ)位置時(shí),對(duì)存儲(chǔ)器209負(fù)責(zé)的代理,即處理器205,被確定為與所述事務(wù)和所述存儲(chǔ)位置相關(guān)的歸屬代理。類似地,在事務(wù)引用了諸如存儲(chǔ)器214中的存儲(chǔ)位置這樣的另一存儲(chǔ)位置的情況下,處理器205被確定為對(duì)等緩存代理。
如所看到的,點(diǎn)對(duì)點(diǎn)鏈路220-224以點(diǎn)對(duì)點(diǎn)方式將組件耦合到一起。 在一個(gè)實(shí)施例中,物理鏈路220-224每一個(gè)包括雙向差分信號(hào)互連,例如 與下面參照?qǐng)D3討論的物理層相關(guān)聯(lián)的物理鏈路。因此,處理器205、 210 和芯片組230能夠相互直接通信。
芯片組230通常是對(duì)例如耦合到輸人/輸出(I/0)中心的存儲(chǔ)器控制器 中心這樣的多種集成電路的通稱。然而,在一個(gè)實(shí)施例中,在每個(gè)代理包 括一個(gè)版本的與存儲(chǔ)器有接口的存儲(chǔ)器控制器中心的情況下,芯片組230 是指I/O中心或其它控制器中心。在一個(gè)實(shí)施例中,如上所討論的,芯片 組230是參與或見證事務(wù)的非緩存代理。然而,芯片組230并不限于此, 這是因?yàn)樵谄渌鼘?shí)施例中,芯片組230是包括高速緩沖存儲(chǔ)器的緩存代理, 和/或包括以下這樣的存儲(chǔ)器的歸屬代理,所述存儲(chǔ)器具有數(shù)據(jù)的原始存儲(chǔ) 位置存儲(chǔ)庫(kù)。
如所說明的,芯片組230還與多種互連和I/O設(shè)備有接口,例如外圍 組件互連(PCI)或PCI Express (PCI-E)設(shè)備261 、集成設(shè)備電子技術(shù)(IDE)或 高級(jí)傳輸附件(ATA)設(shè)備262、通用串行總線(USB)設(shè)備263、局域網(wǎng)(LAN) 或無線LAN(WLAN)設(shè)備264、音頻設(shè)備265以及其它I/O設(shè)備266,其還 可以包括用于如本文所描述那樣耦合I/O設(shè)備的其它互連架構(gòu)。
參照?qǐng)D3,說明了利用分層互連棧的雙向互連架構(gòu)的框圖的實(shí)施例。 對(duì)圖3中的各層(例如,物理層302)的參考包括針對(duì)通用層的討論,其可以 用不同的代理來實(shí)現(xiàn),例如物理層302a和物理層302b。如所描繪的,互 連棧被劃分成5層,其中的一層或更多層基于設(shè)計(jì)實(shí)現(xiàn)可能是可選的。例 如,在一個(gè)實(shí)施例中,路由層304被嵌入在鏈路層303的功能中;因此, 在一個(gè)實(shí)施例中,路由層不是獨(dú)立的并且不同的層。
在一個(gè)實(shí)施例中,物理層302負(fù)責(zé)信息在物理介質(zhì)上的電子傳送。例 如,在鏈路層實(shí)體303a和303b之間利用物理點(diǎn)對(duì)點(diǎn)鏈路。作為說明性的 實(shí)例,物理鏈路包括差分信號(hào)方案,該方案包括雙向差分信號(hào)對(duì)351和352。 這里,物理層可能在邏輯上被分成電子子塊和邏輯子塊,從而該物理層將 該棧的剩余部分與信息的電子傳送隔離,并與鏈路層303進(jìn)行通信。
在一個(gè)實(shí)施例中,鏈路層303從該棧的較高層中抽象出(abstmct)物理層302,并提供鏈路相關(guān)的服務(wù),例如所連接的代理/實(shí)體之間的可靠數(shù)據(jù) 傳送與流控制,和到多個(gè)虛擬通道與消息類的物理通道/接口的虛擬化。這 里,虛擬通道可以視為供該棧的較高層使用的多個(gè)虛擬網(wǎng)絡(luò)。例如,協(xié)議 層306可能依靠由鏈路層303提供的抽象來將協(xié)議消息映射到消息類,并 因此映射到一個(gè)或更多虛擬通道。在一個(gè)實(shí)施例中,路由層304提供用于將分組從源路由到目的地的靈 活方法。如上所述,在極簡(jiǎn)單的拓?fù)渲校酚蓪?04可以是非顯式的,而 是集成到鏈路層303的功能中。例如,路由層304可以依靠鏈路層303的 抽象來指定<端口,虛擬網(wǎng)絡(luò)>對(duì),以路由分組。這里,路由表信息被保存 以提供用于分組的路由信息。在一個(gè)實(shí)施例中,傳輸層305提供端到端的可靠傳輸服務(wù)。與路由層 304類似,傳輸層305基于設(shè)計(jì)實(shí)現(xiàn)也是可選的。例如,傳輸層305依靠 路由層304的服務(wù)來為協(xié)議層306提供可靠傳輸支持。在一個(gè)實(shí)施例中, 在互連架構(gòu)內(nèi),組件子集包括傳輸層305。因此,該組件子集定義了分組 的關(guān)于傳輸層305的子字段,而其它組件可能未定義這些子字段。在一個(gè)實(shí)施例中,協(xié)議層306用于實(shí)現(xiàn)節(jié)點(diǎn)/代理之間較高級(jí)別的通信 協(xié)議,例如高速緩存一致性、排序、對(duì)等通信、中斷傳遞等。換言之,協(xié) 議層306針對(duì)節(jié)點(diǎn)或代理(例如,歸屬節(jié)點(diǎn)、對(duì)等節(jié)點(diǎn)、緩存節(jié)點(diǎn)以及非緩 存節(jié)點(diǎn)灘應(yīng)地定義了可允許的消息、請(qǐng)求、應(yīng)答、階段(phase)、 一致性狀 態(tài)等。下面討論消息的實(shí)例,例如歸屬節(jié)點(diǎn)消息、監(jiān)聽消息,應(yīng)答消息等。注意,對(duì)各層及其相關(guān)聯(lián)的邏輯的討論可以用任何方式耦合。例如, 可以說協(xié)議邏輯被耦合到物理層,即發(fā)射或接收邏輯。這里,如可以從圖 3看到的,在一個(gè)實(shí)施例中,協(xié)議邏輯可以并不直接耦合到物理層邏輯, 而是通過其它層邏輯來耦合。此外,在一個(gè)實(shí)施例中,互連棧被耦合到內(nèi) 部組件邏輯,例如高速緩存控制或高速緩沖存儲(chǔ)器邏輯,以啟動(dòng)適當(dāng)?shù)母?速緩存一致性操作。MESIF協(xié)議的實(shí)施例概述在一個(gè)實(shí)施例中,基本的已修改(Modified)、獨(dú)占(Exclusive)、共享 (Shared)、無效(Invalid)、轉(zhuǎn)發(fā)(Forward)(MESIF)協(xié)議提供了與監(jiān)聽協(xié)議類 似的協(xié)議,同時(shí)不存在單個(gè)串行化總線的潛在限制。和 聽高速緩存協(xié)議一樣,MESIF依靠具有數(shù)據(jù)的緩存拷貝的節(jié)點(diǎn)來維持一致性。使用點(diǎn)對(duì)點(diǎn) 鏈路而非同步的集中式廣播引入了時(shí)間異常(time warp)的問題,即,存在 的情況是,從不同節(jié)點(diǎn)角度來看,事件似乎以不同順序發(fā)生。例如,MESIF 協(xié)議通過識(shí)別由于時(shí)間異常造成的潛在差錯(cuò)并提供針對(duì)其的協(xié)議或軟件解 決方案,來處理時(shí)間異常。歸屬節(jié)點(diǎn)通常與數(shù)據(jù)的未緩存拷貝相關(guān)聯(lián)。因此,歸屬節(jié)點(diǎn)可以參與 和該歸屬節(jié)點(diǎn)相關(guān)聯(lián)的數(shù)據(jù)有關(guān)的事務(wù)。然而,歸屬節(jié)點(diǎn)并不必被包括在 與事務(wù)相關(guān)聯(lián)的"關(guān)鍵路徑"中,相反,歸屬節(jié)點(diǎn)可以插入(interject)到該 事務(wù)中來解決沖突和時(shí)間異常問題。在一個(gè)實(shí)施例中,因?yàn)樵摲桨傅牟l(fā) 廣播特性,MESIF實(shí)現(xiàn)了與監(jiān)聽協(xié)議相關(guān)聯(lián)的低時(shí)延,同時(shí),在特定情況 下以最小可能時(shí)延(單個(gè)請(qǐng)求-應(yīng)答往返)獲取了數(shù)據(jù)的可緩存拷貝。在一個(gè)實(shí)施例中,關(guān)于MESIF協(xié)議的基本事務(wù)包括,將初始請(qǐng)求廣播 到所有對(duì)等節(jié)點(diǎn)以及歸屬節(jié)點(diǎn)。如果被緩存的一個(gè)拷貝處在狀態(tài)E、 F或 M—致性狀態(tài)中,則該拷貝被包含在應(yīng)答中。然后,第二消息被發(fā)送到歸 屬節(jié)點(diǎn),來向其通知該請(qǐng)求已被滿足。如果所請(qǐng)求的行未被緩存,或者僅 存在S狀態(tài)拷貝,則發(fā)送到歸屬節(jié)點(diǎn)的第二請(qǐng)求被用來確認(rèn)之前的請(qǐng)求, 歸屬節(jié)點(diǎn)這時(shí)可能已經(jīng)從它的存儲(chǔ)器中取得該行。在任意一種情況中,出 于同步和解決沖突的目的,歸屬節(jié)點(diǎn)對(duì)第二請(qǐng)求作出應(yīng)答(并且可能對(duì)第一 請(qǐng)求作出應(yīng)答,盡管這兩個(gè)請(qǐng)求有時(shí)可能被組合)。注意,歸屬節(jié)點(diǎn)可以具 有一個(gè)或更多高速緩存,所以它可以如任何其它節(jié)點(diǎn)一樣對(duì)初始請(qǐng)求作出 應(yīng)答。在一個(gè)實(shí)施例中,以分布式的方式來處理沖突。因?yàn)閱为?dú)的請(qǐng)求可能 被延遲任意長(zhǎng)的時(shí)間,所以時(shí)間異常問題使得很難檢測(cè)到?jīng)_突。然而,如 果每個(gè)節(jié)點(diǎn)都在作出請(qǐng)求之后監(jiān)視沖突,那么將會(huì)檢測(cè)到?jīng)_突。盡管多個(gè) 節(jié)點(diǎn)都可能檢測(cè)到?jīng)_突,但是作為例子,其中至少一個(gè)節(jié)點(diǎn)將檢測(cè)到?jīng)_突。 因此,在一個(gè)實(shí)施例中,來自節(jié)點(diǎn)的應(yīng)答可能包括沖突信息。在一個(gè)實(shí)施例中,從應(yīng)答中接收到該數(shù)據(jù)的拷貝的節(jié)點(diǎn)被允許在接收 到該數(shù)據(jù)時(shí)立即在內(nèi)部使用該數(shù)據(jù),但是不會(huì)讓使用該數(shù)據(jù)的效果對(duì)系統(tǒng) 的其它部分可見(即全局可見),直到該節(jié)點(diǎn)接收到確認(rèn)。所述確認(rèn)還可以 包括這樣的指令,即請(qǐng)求方節(jié)點(diǎn)必須將其拷貝轉(zhuǎn)發(fā)到另一節(jié)點(diǎn),以及可能從它自己的高速緩存中逐出(evict)該節(jié)點(diǎn)。最后,當(dāng)一個(gè)節(jié)點(diǎn)通過提供緩存數(shù)據(jù)來對(duì)來自于另一節(jié)點(diǎn)的請(qǐng)求作出 應(yīng)答時(shí),在一個(gè)實(shí)施例中,該節(jié)點(diǎn)推遲其針對(duì)同一高速緩存行所接收的其 它請(qǐng)求,直到該節(jié)點(diǎn)從歸屬節(jié)點(diǎn)接收到一個(gè)應(yīng)答(其承認(rèn)了該節(jié)點(diǎn)轉(zhuǎn)發(fā)了所 述數(shù)據(jù)的事實(shí)),由此確保所有節(jié)點(diǎn)觀察到該高速緩存行(可能可寫)的相同 的傳送順序。如上所述,歸屬節(jié)點(diǎn)是用于未緩存數(shù)據(jù)的存儲(chǔ)庫(kù),但是該歸屬節(jié)點(diǎn)也 可以包括處理器和高速緩存。在這里,當(dāng)歸屬節(jié)點(diǎn)處理器未命中高速緩存 時(shí),歸屬節(jié)點(diǎn)向所有其它(對(duì)等)節(jié)點(diǎn)廣播請(qǐng)求,并且歸屬節(jié)點(diǎn)內(nèi)部處理該 請(qǐng)求,就像它是到達(dá)該歸屬節(jié)點(diǎn)的任何其它請(qǐng)求一樣。注意,這是一種特 殊情況,因?yàn)闅w屬節(jié)點(diǎn)并不顯式地向其自身(該歸屬節(jié)點(diǎn))發(fā)送消息。此外, 當(dāng)針對(duì)本地緩存的數(shù)據(jù)的外部請(qǐng)求到達(dá)時(shí),歸屬節(jié)點(diǎn)適當(dāng)?shù)刈鞒鰬?yīng)答。所公開的消息協(xié)議定義了在一致性(緩存和歸屬)代理、非緩存代理以 及其它代理(存儲(chǔ)器控制器、處理器等等)之間所允許的一組消息。 一致性 協(xié)議使用所述消息作為算法中的詞匯和語(yǔ)法來表達(dá)一致思想。該算法聰明 地對(duì)請(qǐng)求進(jìn)行排序、解決了沖突,并且描述了緩存代理之間的交互。盡管 上面描述了 MESIF協(xié)議,但是并非要求使用MESIF高速緩存一致性協(xié)議。 例如,可以不使用轉(zhuǎn)發(fā)狀態(tài),這導(dǎo)致使用已知的MESI協(xié)議。此外,注意 上面的討論包括MESIF協(xié)議的實(shí)施例的示例性概述。所以,上面描述的各 個(gè)組件可以在單獨(dú)的實(shí)施例中有所不同。下面包括了在消息傳送和/或一致 性協(xié)議中使用的可能消息的非窮舉示例性列表。監(jiān)聽消息在一個(gè)實(shí)施例中,監(jiān)聽消息被發(fā)往緩存代理(例如,對(duì)等緩存代理)。 監(jiān)聽消息通常不包括歸屬節(jié)點(diǎn)標(biāo)識(shí)符(ID),使得它們被路由到對(duì)等緩存代 理,但是不路由到歸屬節(jié)點(diǎn)。監(jiān)聽數(shù)據(jù)(Snoop Data, SnpData):這是一個(gè)用于得到E、 F或S狀態(tài) 下的數(shù)據(jù)的監(jiān)聽。監(jiān)聽失效擁有(Snoop Invalidate Own, SnpInvOwn):這是一個(gè)用于得 到E或M狀態(tài)下的數(shù)據(jù)的監(jiān)聽。在一個(gè)實(shí)施例中,響應(yīng)于在其本地存儲(chǔ)器 中將該數(shù)據(jù)保持在E或M狀態(tài),對(duì)等代理提供該數(shù)據(jù)。監(jiān)聽失效無效至獨(dú)占(Snoop Invalidate Invalid to Exclusive, SupIiivItoE):這是一個(gè)用于使對(duì)等緩存代理失效并將任何M狀態(tài)數(shù)據(jù)轉(zhuǎn) 儲(chǔ)(flush)到歸屬節(jié)點(diǎn)的監(jiān)聽。監(jiān)聽失效X至無效(Snoop Invalidate X to Invalid, SnpInvXtoI):這是一個(gè)用于使對(duì)等緩存代理失效并將任何M狀態(tài)數(shù)據(jù)轉(zhuǎn)儲(chǔ)到歸屬節(jié)點(diǎn)的監(jiān) 聽。監(jiān)聽失效無轉(zhuǎn)發(fā)(Snoop Invalidate No Forward, SnpInvNoFwd):這是一個(gè)用于獲得數(shù)據(jù)的監(jiān)聽,其使對(duì)等代理(l)將數(shù)據(jù)寫回保持在特定高速緩 存一致性狀態(tài)的存儲(chǔ)器,(2)使本地存儲(chǔ)器中保存的該數(shù)據(jù)失效,并且(3) 不將該數(shù)據(jù)直接提供給請(qǐng)求方節(jié)點(diǎn)。在一個(gè)實(shí)施例中,對(duì)等代理寫回保持 在M狀態(tài)的數(shù)據(jù)。在其它實(shí)施例中,對(duì)等代理還寫回保持在E狀態(tài)、S狀 態(tài)、F狀態(tài)或其組合的數(shù)據(jù)。 歸屬消息以下消息與歸屬節(jié)點(diǎn)相關(guān)聯(lián)。例如,以下消息中的一些是針對(duì)歸屬節(jié) 點(diǎn)的請(qǐng)求消息。實(shí)際上,要注意, 一些監(jiān)聽消息和歸屬消息之間存在相似 性。例如,上面的SnpInvNoFwd和下面的RdlnvNoFwd是類似的,區(qū)別在 于該監(jiān)聽消息被發(fā)往對(duì)等緩存代理,而該讀取消息被發(fā)往歸屬節(jié)點(diǎn)。因此, 通常說SnpInvNoFwd和RdlnvNoFwd都是同一種消息類型,例如讀取失效 類型、監(jiān)聽失效類型、讀取失效無轉(zhuǎn)發(fā)類型,以及監(jiān)聽失效無轉(zhuǎn)發(fā)類型。其它歸屬消息包括歸屬寫回標(biāo)記消息。這里,可以通過WbData消息 來單獨(dú)發(fā)送數(shù)據(jù),所述WbData消息可以按關(guān)于所述標(biāo)記消息的任何順序 被接收。下面包括的歸屬消息的其它實(shí)例是從緩存代理到歸屬代理的歸屬 監(jiān)聽?wèi)?yīng)答消息,和針對(duì)用于告知沖突階段開始的沖突消息的歸屬承認(rèn)。讀取數(shù)據(jù)(Read Data, RdData):這是對(duì)獨(dú)占(E)狀態(tài)以及可能的轉(zhuǎn)發(fā)(F) 狀態(tài)或S狀態(tài)(取決于實(shí)施例)的數(shù)據(jù)的請(qǐng)求。讀取失效擁有(Read Invalidate Own, RdlnvOwn):這是一個(gè)對(duì)M或E 狀態(tài)的高速緩存行的請(qǐng)求。失效無效至獨(dú)占(Invalidate Invalid to Exclusive, InvItoE):這是一個(gè) 對(duì)沒有數(shù)據(jù)的高速緩存行的請(qǐng)求。非監(jiān)聽讀取(Non-Snoop Read, NonsnpRd):這是一個(gè)執(zhí)行對(duì)存儲(chǔ)器的17非監(jiān)聽寫入(Non-Snoop Write, NonSnpW):這是一個(gè)執(zhí)行對(duì)存儲(chǔ)器的 非一致寫入的請(qǐng)求。讀取失效無轉(zhuǎn)發(fā)(Read Invalidate No Forward, RdlnvNoFwd):這是一個(gè)從存儲(chǔ)器讀取數(shù)據(jù)的請(qǐng)求。在一個(gè)實(shí)施例中,響應(yīng)于接收到該消息,歸 屬節(jié)點(diǎn)等待從緩存代理寫回的數(shù)據(jù),然后在接收到寫回的數(shù)據(jù)之后將正確 數(shù)據(jù)提供給請(qǐng)求方代理。在另一實(shí)施例中,歸屬節(jié)點(diǎn)從被引用的行保持在 無效狀態(tài)的對(duì)等緩存代理處接收應(yīng)答消息。這里,歸屬節(jié)點(diǎn)提供來自其本 地存儲(chǔ)器或原始存儲(chǔ)器存儲(chǔ)庫(kù)的正確數(shù)據(jù)。注意,如上所討論的,RdlnvNoFwd與SnpInvNoFwd消息類似;然而, 通常對(duì)于監(jiān)聽消息來說,歸屬節(jié)點(diǎn)標(biāo)識(shí)符(ID)未包括在該消息中,從而監(jiān) 聽消息未被路由到歸屬節(jié)點(diǎn),而RdlnvNoFwd被路由到歸屬節(jié)點(diǎn)。寫回已修改至無效、共享或獨(dú)占(WriteBack Modified to Invalid, Shared, or Exclusive, WbMtoI、 WbMtoS和WbMtoE):這是一個(gè)將M狀 態(tài)下的高速緩存行寫回存儲(chǔ)器并相應(yīng)地將該高速緩存行狀態(tài)轉(zhuǎn)換為無效狀 態(tài)、共享狀態(tài)或獨(dú)占狀態(tài)的請(qǐng)求。在一個(gè)實(shí)施例中,這些消息是指示要發(fā) 送數(shù)據(jù)的標(biāo)記消息,同時(shí)實(shí)際通過諸如\^*0站^消息的這樣單獨(dú)消息來 運(yùn)送所述數(shù)據(jù)。應(yīng)答無效或共享(Response Invalid or Shared, Rspl或RspS):對(duì)等代理相應(yīng)地被留有無效狀態(tài)或S狀態(tài)下的行。應(yīng)答轉(zhuǎn)發(fā)無效或共享(Response Forward Invalid or Shared, RspFwdl 或RspFwdS):對(duì)等代理已經(jīng)將數(shù)據(jù)發(fā)送給請(qǐng)求者,并且相應(yīng)地將該行留為無效或共享狀態(tài)。應(yīng)答轉(zhuǎn)發(fā)無效或共享寫回(Response Forward Invalid or Shared Writeback^ RspFwdIWb或RspFwdSWb):對(duì)等代理已經(jīng)將數(shù)據(jù)發(fā)送給請(qǐng) 求者并將WbIData發(fā)送給歸屬節(jié)點(diǎn),并且相應(yīng)地將該行留為無效或共享狀 態(tài)。應(yīng)答無效或共享寫回(Response Invalid or Shared Writeback RespIWb或RespSWb):對(duì)等代理已經(jīng)將數(shù)據(jù)逐出,同時(shí)發(fā)送WbIData消息給歸屬節(jié)點(diǎn),并且未將任何消息發(fā)送給請(qǐng)求者。應(yīng)答沖突(Response Conflict, RspCnfit):對(duì)等代理被留有無效狀態(tài)下 的行,并且該對(duì)等代理具有沖突的未解決請(qǐng)求。承認(rèn)沖突(Acknowledge Conflict, AckCnflt):數(shù)據(jù)完成/準(zhǔn)許和完成/強(qiáng) 制承認(rèn)沖突的承認(rèn)接收。非數(shù)據(jù)應(yīng)答消息在一個(gè)實(shí)施例中,非數(shù)據(jù)應(yīng)答消息包括準(zhǔn)許消息,用來準(zhǔn)許對(duì)一個(gè)行 的所有權(quán)而不發(fā)送數(shù)據(jù)。非數(shù)據(jù)應(yīng)答消息還可以包括完成消息,用來告知 完成、并且可能在沖突條件下從擁有者提取數(shù)據(jù)。準(zhǔn)許完成(Grant—Completion, GntCmp):準(zhǔn)許獨(dú)占所有權(quán)而沒有數(shù)據(jù)。準(zhǔn)許強(qiáng)制承認(rèn)沖突(Grant Force Acknowledge Conflict, Gnt_FrcAckCnflt):準(zhǔn)許獨(dú)占所有權(quán)而沒有數(shù)據(jù),加上強(qiáng)制承認(rèn)沖突。 完成(Completion, CMP):所有監(jiān)聽?wèi)?yīng)答都被收集到,并且未檢測(cè)到?jīng)_突。強(qiáng)制承認(rèn)沖突(Force Acknowledge Conflict, FrcAckCnflt):監(jiān)聽?wèi)?yīng)答 被收集,用于承認(rèn)沖突。完成轉(zhuǎn)發(fā)失效擁有(Complete Forward Invalidate Own, Cmp—FwdlnvOwii):完成請(qǐng)求,將獨(dú)占或己修改狀態(tài)下的行轉(zhuǎn)發(fā)給請(qǐng)求者, 并使本地拷貝失效。數(shù)據(jù)應(yīng)答消息DataC—*:對(duì)應(yīng)的MESIF狀態(tài)下的數(shù)據(jù)。DataC—*_Cmp:具有完成消息的對(duì)應(yīng)ESIF狀態(tài)下的數(shù)據(jù)。DataC_*_FrcAckCnflt:具有FrcAckCnflt消息的對(duì)應(yīng)ESIF狀態(tài)下的、j',.- i-口數(shù)據(jù)。Wb*Data:寫回?cái)?shù)據(jù),轉(zhuǎn)換到對(duì)應(yīng)的E、 S或I狀態(tài)。 非監(jiān)聽寫入數(shù)據(jù)(Non-Snoop Write Data, NonSnpWr):這是對(duì)存儲(chǔ)器 的非一致寫入。轉(zhuǎn)至圖4a,說明了用于在多個(gè)節(jié)點(diǎn)之間傳送消息的協(xié)議圖的實(shí)施例。 說明了四個(gè)節(jié)點(diǎn)或代理I/O中心、歸屬節(jié)點(diǎn)、具有高速緩存的處理器A 以及具有高速緩存的處理器B。注意,如所描繪的,處理器A、 B包括對(duì)等緩存代理,而i/o中心是非緩存代理,即見證方。圖4a中說明的協(xié)議是響應(yīng)于以下極其簡(jiǎn)化的交互模式 處理器B: X=l //B對(duì)數(shù)據(jù)X進(jìn)行寫入 處理器A: If(X=l) Y=l //A執(zhí)行X的部分讀取并對(duì)Y進(jìn)行寫入<formula>formula see original document page 20</formula>IOH執(zhí)行Y和X的非監(jiān)聽讀取 這里,注意,在一個(gè)實(shí)施例中,互連架構(gòu)支持部分存儲(chǔ)器訪問和非監(jiān) 聽存儲(chǔ)器訪問。例如,部分存儲(chǔ)器訪問,也可以稱為不可緩存(UC)存儲(chǔ)器 訪問,其包括對(duì)高速緩存行的一部分的訪問。這里,該高速緩存行的一些 可能包括無效數(shù)據(jù),所以根據(jù)存儲(chǔ)器訪問來更新或讀取一部分。此外,非 監(jiān)聽存儲(chǔ)器訪問是指來自諸如I/O中心這樣的非緩存代理的非一致存儲(chǔ)器 訪問。特別參考圖4a,處理器B執(zhí)行對(duì)數(shù)據(jù)X的寫入,即X=l。響應(yīng)于來 自處理器A的對(duì)數(shù)據(jù)X的部分讀取,RdlnvOwn(X)消息被發(fā)送到歸屬節(jié)點(diǎn), SnpInvOwn(X)消息被發(fā)送到對(duì)等代理B。因?yàn)锽當(dāng)前保存與數(shù)據(jù)X相關(guān) 聯(lián)的處于已修改狀態(tài)下的高速緩存行,所以響應(yīng)于接收到SnpInvOwn(X), 代理B將DataCLM(X-l)消息中的數(shù)據(jù)X提供給請(qǐng)求方代理A,并將 RspFwdI(X)消息發(fā)送到歸屬節(jié)點(diǎn),以指示它已經(jīng)將該數(shù)據(jù)提供給請(qǐng)求方代 理A、并且已經(jīng)將該高速緩存行留在無效狀態(tài),即LLC-M,I。這里,歸屬 節(jié)點(diǎn)將completion(X)消息發(fā)送到處理器A,以指示該事務(wù)的完成。然而,在代理B將數(shù)據(jù)發(fā)送到請(qǐng)求方代理A之后,并且在代理A接 收到完成消息之前,代理B發(fā)出請(qǐng)求數(shù)據(jù)X的請(qǐng)求消息,即SnpInvOwn(X), 其被用虛線圖示為單獨(dú)的事務(wù)。結(jié)果,代理A檢測(cè)到關(guān)于數(shù)據(jù)X的沖突。 因此,代理A將RspCnflt發(fā)送到歸屬節(jié)點(diǎn),并且隨后響應(yīng)于接收到數(shù)據(jù)/ 完成而發(fā)送AckCnflt(X)。因此,作為沖突仲裁者的歸屬節(jié)點(diǎn)將Cmp一FwdlnvOwn發(fā)送到代理A。 作為響應(yīng),代理A用消息標(biāo)記RspIWb(X)和數(shù)據(jù)消息WbIData(X-l)將X=l 寫回歸屬節(jié)點(diǎn),并且代理A執(zhí)行對(duì)Y的可緩存寫入,即Y-1。這里,用標(biāo) 記WbMtoI(Y)和數(shù)據(jù)消息WbIData(Y-l)將Y=l寫回歸屬節(jié)點(diǎn)。然而,來自代理A的、用以提供X的值1的寫回消息由于許多原因而被延遲了。同時(shí),非緩存代理I/O中心執(zhí)行Y的非監(jiān)聽讀取,即 NonSnpRd(Y),和X的非監(jiān)聽讀取,即NonSnpRd(X)。如可以從圖中看到 的,在響應(yīng)于NonSnpRd(X)的DataC—LCmp(X-0)消息中,由于從代理A 到歸屬節(jié)點(diǎn)的寫回消息的延遲,X具有值0而不是1。實(shí)質(zhì)上,無效值O 而非有效值1被提供給I/O中心,這是在歸屬節(jié)點(diǎn)處接收到正確數(shù)據(jù)之前 較早的部分讀取被巻入沖突并且非監(jiān)聽讀取被非緩存代理執(zhí)行的結(jié)果。這里,可能的問題可以被概括為,讀取失效擁有消息可能使對(duì)等代理 (B)將已修改拷貝轉(zhuǎn)發(fā)到部分讀取請(qǐng)求者(A)而不未寫回存儲(chǔ)器,而此時(shí)A 達(dá)到全局觀察并將X的正確值提供回歸屬節(jié)點(diǎn),歸屬節(jié)點(diǎn)可能己經(jīng)將錯(cuò)誤值提供給了i/o中心。因此,在一個(gè)實(shí)施例中,特定消息類型被用于部分存儲(chǔ)器訪問,例如 部分讀取。在一個(gè)實(shí)施例中,這種消息類型包括針對(duì)對(duì)等代理的監(jiān)聽失效 消息,用于指示相關(guān)聯(lián)的高速緩存行應(yīng)該被無效并且不應(yīng)被轉(zhuǎn)發(fā)到部分讀 取請(qǐng)求者。此外,在另一實(shí)施例中,該消息還用于向?qū)Φ却碇甘咎幱谔?定高速緩存一致性狀態(tài)(例如,已修改狀態(tài))的數(shù)據(jù)應(yīng)該被寫回存儲(chǔ)器,即 歸屬節(jié)點(diǎn)。類似地,在一個(gè)實(shí)施例中,這種特定消息類型包括針對(duì)歸屬節(jié)點(diǎn)的讀 取失效消息,而非針對(duì)對(duì)等代理的監(jiān)聽失效消息。在一個(gè)實(shí)施例中,響應(yīng) 于接收到讀取失效消息,歸屬節(jié)點(diǎn)要將正確數(shù)據(jù)提供給部分讀取請(qǐng)求者。 這里,提供正確數(shù)據(jù)可能包括,等待接收到監(jiān)聽消息的緩存代理寫回保持 在特定高速緩存一致性狀態(tài)(例如,已修改狀態(tài))的該數(shù)據(jù)的拷貝,并將該 拷貝提供給部分讀取請(qǐng)求者。在另一實(shí)施例中,提供正確數(shù)據(jù)可能包括, 從保持有無效狀態(tài)的該高速緩存行的對(duì)等代理處接收應(yīng)答,并將歸屬節(jié)點(diǎn) 中該數(shù)據(jù)的本地拷貝或來自與歸屬節(jié)點(diǎn)相關(guān)聯(lián)的原始存儲(chǔ)庫(kù)的該數(shù)據(jù)的拷 貝提供給部分讀取請(qǐng)求者。作為第一個(gè)實(shí)例,該消息類型包括讀取失效無轉(zhuǎn)發(fā)(RdINvNoFwd)消 息,其中發(fā)往對(duì)等代理的監(jiān)聽失效消息包括監(jiān)聽失效無轉(zhuǎn)發(fā)(SnpInvNoFwd) 消息,發(fā)往歸屬節(jié)點(diǎn)的讀取失效消息包括讀取失效無轉(zhuǎn)發(fā)消息。然而,消 息類型和消息并不限于此。實(shí)際上,在另一實(shí)施例中,使用另一種監(jiān)聽失 效消息,例如SnpInvItoE或SnpInvXtoI。這里,如上面所討論的,監(jiān)聽在21進(jìn)行無效,并且通過消息本身或者通過通用協(xié)議的實(shí)現(xiàn)來指示不將數(shù)據(jù)直 接從接收方代理轉(zhuǎn)發(fā)到部分讀取請(qǐng)求方代理。圖4b說明了用來響應(yīng)于部分和非監(jiān)聽存儲(chǔ)器訪問而提供有效數(shù)據(jù)的 協(xié)議圖的實(shí)施例。和圖4a的圖類似,同一代理被巻入前述交互模式中。然 而,在這里,替代響應(yīng)于代理A的部分讀取請(qǐng)求而將RdlnvOwn(X)消息發(fā) 送到歸屬節(jié)點(diǎn)并將SnpInvOwn(X)消息發(fā)送到對(duì)等代理B的是,響應(yīng)于該 部分讀取請(qǐng)求,將RdlnvNoFwd(X)消息發(fā)送到歸屬節(jié)點(diǎn)并將 SnpInvNoFwd(X)消息發(fā)送到對(duì)等代理B。這里,當(dāng)對(duì)等代理B接收到SnpInvOwn(X)消息時(shí),與該數(shù)據(jù)相關(guān)聯(lián) 的高速緩存行被保持在已修改高速緩存一致性狀態(tài)。因此,該數(shù)據(jù)的已修 改拷貝(即X-l)通過消息RspIWb(X)和WblData(X4)被寫回(即被推回)歸 屬節(jié)點(diǎn),而不是和圖4a中那樣將該數(shù)據(jù)直接提供給部分讀取請(qǐng)求者代理 A。然后,與圖4a類似的協(xié)議流繼續(xù)沖突階段。然而,注意,當(dāng)I/0中心 請(qǐng)求NonSnpRd(X)(即非監(jiān)聽讀取)時(shí),即使在非監(jiān)聽讀取之后發(fā)生RspI(X) 的延遲,有效數(shù)據(jù)X-1也已經(jīng)被寫回存儲(chǔ)器。因此,在該實(shí)施例中,針對(duì) 部分讀取使用監(jiān)聽失效無轉(zhuǎn)發(fā)消息而非監(jiān)聽失效擁有消息使得糾正了前述 的可能問題。換言之,響應(yīng)于針對(duì)部分讀取的監(jiān)聽失效無轉(zhuǎn)發(fā)消息,數(shù)據(jù) 未被直接轉(zhuǎn)發(fā)到部分讀取請(qǐng)求者,而是在I/O中心進(jìn)行非監(jiān)聽讀取之前進(jìn) 行已修改數(shù)據(jù)的寫回。轉(zhuǎn)至圖5a,說明了用于可能導(dǎo)致訪存順序破壞的不同場(chǎng)景的協(xié)議圖的 實(shí)施例。圖5a中說明的協(xié)議是響應(yīng)于以下示例性交互模式IOH: Data-New; Flag =New; 〃對(duì)數(shù)據(jù)和標(biāo)志的非監(jiān)聽寫入A: If(Flag=New) assert (Data=New); 〃數(shù)據(jù)和標(biāo)志的部分讀取 B: Read Data = Old; 〃數(shù)據(jù)的可緩存讀取 首先,代理B發(fā)起數(shù)據(jù)的高速緩存一致讀取事務(wù)。RdData和SnpData 消息被發(fā)送到歸屬節(jié)點(diǎn)和對(duì)等代理A。對(duì)等節(jié)點(diǎn)A用Rspl對(duì)歸屬節(jié)點(diǎn)作 出應(yīng)答,以指示與數(shù)據(jù)相關(guān)聯(lián)的高速緩存行被留在無效狀態(tài)。因此,歸屬 節(jié)點(diǎn)將DataCJE—Cmp消息提供給代理B,該消息使該高速緩存行轉(zhuǎn)換到于O(即舊值)。此夕卜,I/O中心或制造者發(fā)起與歸屬節(jié)點(diǎn)的非監(jiān)聽寫入事務(wù),該事務(wù)導(dǎo)致數(shù)據(jù)和標(biāo)志的每一個(gè)都被更新為新值, 即值l。然后,消費(fèi)者代理A發(fā)起標(biāo)志和數(shù)據(jù)的部分讀取事務(wù)。然而,當(dāng)對(duì)等 代理B接收到SnpInvOwn(D)時(shí),代理B將與數(shù)據(jù)相關(guān)聯(lián)的高速緩存行保 持在獨(dú)占狀態(tài)。結(jié)果,對(duì)等代理B將其數(shù)據(jù)的緩存拷貝(即等于舊值的數(shù)據(jù)) 和RspFwdI消息提供給歸屬節(jié)點(diǎn)。不幸地,替代取得制造者(即I/O中心) 存放(deposit)在存儲(chǔ)器中的數(shù)據(jù)的最新拷貝,A的數(shù)據(jù)讀取導(dǎo)致B的高速 緩存中的舊拷貝被轉(zhuǎn)發(fā)到A,即使A的標(biāo)志讀取的確從存儲(chǔ)器獲得了最新 拷貝。例如,假設(shè)I/O中心正在代表與處理器A進(jìn)行通信I/O設(shè)備執(zhí)行非監(jiān) 聽寫入。理想情況下,處理器A檢查標(biāo)志以査看新數(shù)據(jù)什么時(shí)候到達(dá),這 允許處理器執(zhí)行其它操作,直到數(shù)據(jù)已經(jīng)準(zhǔn)備好被處理。然而,在所說明 的一組條件中,處理器A讀取該標(biāo)志為新值,以指示新數(shù)據(jù)已經(jīng)到達(dá),并 且可能基于該新標(biāo)志值對(duì)相信為新數(shù)據(jù)的無效/舊數(shù)據(jù)進(jìn)行操作。從而,這 種訪存順序破壞可能導(dǎo)致無效執(zhí)行。轉(zhuǎn)至圖5b,說明了用來針對(duì)前述交互模式而提供適當(dāng)?shù)脑L存排序的協(xié) 議圖的實(shí)施例。這里,以請(qǐng)求、應(yīng)答和完成階段來執(zhí)行原始的一致讀取事 務(wù)。類似地,來自非緩存代理的非監(jiān)聽寫入被執(zhí)行,以更新數(shù)據(jù)和標(biāo)志。 然而,對(duì)于標(biāo)志和數(shù)據(jù)的部分讀取,利用了讀取失效無轉(zhuǎn)發(fā)和監(jiān)聽失效無 轉(zhuǎn)發(fā)消息。結(jié)果,對(duì)等代理在兩種情況下都不將數(shù)據(jù)直接轉(zhuǎn)發(fā)到消費(fèi)者/ 部分讀取請(qǐng)求方代理A。替代地,在該實(shí)施例中,利用被保持在獨(dú)占狀態(tài) 下的數(shù)據(jù),Rspl被發(fā)送到歸屬節(jié)點(diǎn),并且該高速緩存行被轉(zhuǎn)換到無效狀態(tài)。 此夕卜,歸屬節(jié)點(diǎn)揚(yáng)供已被I/0中心制造者存放的正確數(shù)據(jù),即Data-New。因此,如上面所看到的,通過使用用于部分讀取的協(xié)議消息來使對(duì)等 代理失效并且不轉(zhuǎn)發(fā)它們的緩存拷貝,避免了由部分讀取和非一致存儲(chǔ)器 訪問導(dǎo)致的訪存順序破壞。上面討論了訪存順序破壞以及可以如何糾正這 種破壞的一些說明性實(shí)例。此外,通過使用這些消息,部分訪問和非一致 訪問之間可能的許多交互模式也是可糾正的。此夕卜,在一個(gè)實(shí)施例中在協(xié) 議邏輯內(nèi)實(shí)現(xiàn)這些協(xié)議消息可能使得導(dǎo)致訪存順序破壞的遺留軟件的風(fēng)險(xiǎn)減小,減小軟件程序員遵從軟件限制以強(qiáng)制訪存順序所帶來的負(fù)擔(dān),并且 支持新的硬件和軟件使用模型。在這里使用的模塊是指任何硬件、軟件、固件或其組合。通常被圖示 為分離的模塊邊界一般是變化的并且有可能重疊。例如,第一模塊和第二 模塊可以共享硬件、軟件、固件或其組合,同時(shí)可能保留一些獨(dú)立的硬件、 軟件或固件。在一個(gè)實(shí)施例中,術(shù)語(yǔ)邏輯的使用包括硬件,例如,晶體管、 寄存器或者其它硬件,例如可編程邏輯器件。然而,在另一實(shí)施例中,邏 輯也可以包括與硬件集成的軟件或代碼,例如固件或微碼。在這里使用的值包括數(shù)字、狀態(tài)、邏輯狀態(tài)或二值邏輯狀態(tài)的任何己知表示。通常,對(duì)邏輯電平或者邏輯值的使用也被稱為1或o,這簡(jiǎn)單地 表示二值邏輯狀態(tài)。例如,1指高邏輯電平而o指低邏輯電平。在一個(gè)實(shí)施例中,儲(chǔ)存單元,例如晶體管或閃存單元,可以具有保持單個(gè)邏輯值或 者多個(gè)邏輯值的能力。然而,已經(jīng)使用了計(jì)算機(jī)系統(tǒng)中值的其它表示。例如,十進(jìn)制數(shù)字10也可以被表示為二進(jìn)制值1010,以及十六進(jìn)制字母A。 因此,值包括能夠被保持在計(jì)算機(jī)系統(tǒng)中的信息的任何表示。此外,狀態(tài)可以由值或者值的部分來表示。例如,第一值,例如邏輯 1,可以表示默認(rèn)或初始狀態(tài),而第二值,例如邏輯0,可以表示非默認(rèn)狀 態(tài)。另外,在一個(gè)實(shí)施例中,術(shù)語(yǔ)重置和置位分別指默認(rèn)的和更新的值或 狀態(tài)。例如,默認(rèn)值可能包括高邏輯值,即重置,而更新的值可能包括低 邏輯值,即置位。注意,值的任何組合可以被用來表示任何數(shù)量的狀態(tài)。上面闡述的方法、硬件、軟件、固件或代碼集的實(shí)施例可以通過儲(chǔ)存 在可由處理部件執(zhí)行的機(jī)器可訪問或機(jī)器可讀介質(zhì)上的指令或代碼來實(shí) 現(xiàn)。機(jī)器可訪問/可讀介質(zhì)包括提供(即儲(chǔ)存和/或傳送)機(jī)器(例如,計(jì)算機(jī) 或電子系統(tǒng))可讀形式的信息的任何機(jī)制。例如,機(jī)器可訪問介質(zhì)包括隨機(jī) 存取存儲(chǔ)器(RAM),如靜態(tài)RAM (SRAM)或動(dòng)態(tài)RAM (DRAM); ROM; 磁或光儲(chǔ)存介質(zhì);閃存器件;電儲(chǔ)存器件、光儲(chǔ)存器件、聲儲(chǔ)存器件或其 它形式的傳播信號(hào)(例如,載波、紅外信號(hào)、數(shù)字信號(hào))儲(chǔ)存器件等等。例 如,機(jī)器可以通過從能夠保存要在傳播信號(hào)上傳送的信息的介質(zhì)接收所述 傳播信號(hào)(例如,載波)來訪問儲(chǔ)存器件。在說明書中通篇提到"一個(gè)實(shí)施例"或者"一實(shí)施例"意指結(jié)合該實(shí)施例描述的特定特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個(gè)實(shí)施例中。 因此,短語(yǔ)"在一個(gè)實(shí)施例中"在說明書中各處出現(xiàn)并非全都指同一實(shí)施 例。此外,所述特定的特征、結(jié)構(gòu)或特性可以在一個(gè)或更多實(shí)施例中以任 何適當(dāng)?shù)姆绞浇M合。在前述說明書中,已經(jīng)參照特定的示例性實(shí)施例給出了詳細(xì)的描述。 然而顯而易見的是,可以對(duì)本發(fā)明作出各種修改和改變而不偏離如所附權(quán) 利要求書中所給出的本發(fā)明的寬泛精神和范圍。因此,說明書和附圖是要 被視為說明性的而非限制性的。此外,前面對(duì)實(shí)施例和其它示例性語(yǔ)言的 使用并非必須指同一實(shí)施例或同一實(shí)例,而是可以指不同的或相異的實(shí)施 例,以及可能地指同一實(shí)施例。
權(quán)利要求
1、一種裝置,包括協(xié)議層邏輯,用于生成與數(shù)據(jù)元素的讀取相關(guān)聯(lián)的第一消息,其中,所述第一消息向?qū)Φ却碇甘九c所述數(shù)據(jù)元素相關(guān)聯(lián)的高速緩存行要被無效,并且所述對(duì)等代理不將所述高速緩存行轉(zhuǎn)發(fā)到請(qǐng)求方代理;以及物理層邏輯,其耦合到所述協(xié)議層邏輯,用于將監(jiān)聽消息發(fā)送到所述對(duì)等代理。
2、 根據(jù)權(quán)利要求1所述的裝置,其中,所述第一消息包括監(jiān)聽失效無轉(zhuǎn)發(fā)消息。
3、 根據(jù)權(quán)利要求2所述的裝置,其中,所述協(xié)議層邏輯還用于生成要被路由到與所述數(shù)據(jù)元素相關(guān)聯(lián)的歸屬代理的讀取失效無轉(zhuǎn)發(fā)消息。
4、 根據(jù)權(quán)利要求1所述的裝置,其中,所述第一消息包括監(jiān)聽失效消息。
5、 根據(jù)權(quán)利要求1所述的裝置,其中,所述數(shù)據(jù)元素的所述讀取包括從所述高速緩存行對(duì)所述數(shù)據(jù)元素的部分讀取。
6、 根據(jù)權(quán)利要求1所述的裝置,其中,所述協(xié)議層邏輯在互連層棧中被耦合到所述物理層邏輯,從而所述互連層桟包括所述物理層邏輯、鏈路層邏輯以及所述協(xié)議層邏輯。
7、 根據(jù)權(quán)利要求6所述的裝置,其中,所述物理層邏輯耦合到鏈接至所述對(duì)等代理的串行點(diǎn)到點(diǎn)鏈路,并且其中,所述協(xié)議層邏輯實(shí)現(xiàn)MESIF高速緩存一致性協(xié)議。
8、 一種裝置,包括接收邏輯,用于接收引用了數(shù)據(jù)的監(jiān)聽失效消息;高速緩沖存儲(chǔ)器,其包括保存著所述數(shù)據(jù)的高速緩存行;以及協(xié)議邏輯,其耦合到所述接收邏輯和所述高速緩沖存儲(chǔ)器,所述協(xié)議邏輯用于響應(yīng)于所述接收邏輯接收到引用了所述數(shù)據(jù)的所述監(jiān)聽失效消息并且所述高速緩存行被保持在第一高速緩存一致性狀態(tài),生成所述數(shù)據(jù)向與該數(shù)據(jù)相關(guān)聯(lián)的歸屬節(jié)點(diǎn)的寫回、并且發(fā)起所述高速緩存行從所述第一高速緩存一致性狀態(tài)到無效高速緩存一致性狀態(tài)的轉(zhuǎn)換。
9、 根據(jù)權(quán)利要求8所述的裝置,其中,所述協(xié)議邏輯還用于響應(yīng)于所述接收邏輯接收到引用了所述數(shù)據(jù)的所述監(jiān)聽失效消息,不直接將所述數(shù)據(jù)提供給與所述監(jiān)聽失效消息相關(guān)聯(lián)的請(qǐng)求方代理、而不管所述高速緩存行被保持在何種高速緩存一致性狀態(tài)。
10、 根據(jù)權(quán)利要求9所述的裝置,其中,所述第一高速緩存一致性狀態(tài)是已修改高速緩存一致性狀態(tài)。
11、 根據(jù)權(quán)利要求10所述的裝置,其中,所述協(xié)議邏輯還用于響應(yīng)于所述接收邏輯接收到引用了所述數(shù)據(jù)的所述監(jiān)聽失效消息并且所述高速緩存行被保持在獨(dú)占或共享狀態(tài),將應(yīng)答無效消息提供給與所述數(shù)據(jù)相關(guān)聯(lián)的歸屬節(jié)點(diǎn)。
12、 根據(jù)權(quán)利要求8所述的裝置,其中,所述監(jiān)聽失效消息是從由監(jiān)聽失效無轉(zhuǎn)發(fā)消息、監(jiān)聽失效無效至獨(dú)占消息和監(jiān)聽失效X至無效消息構(gòu)成的組中選出的。
13、 根據(jù)權(quán)利要求8所述的裝置,其中,所述協(xié)議邏輯和所述接收邏輯在邏輯上被組織到互連層棧中,其中,所述互連層棧至少包括包含所述接收邏輯的物理層、鏈路層以及包含所述協(xié)議邏輯的協(xié)議層。
14、 根據(jù)權(quán)利要求8所述的裝置,其中,所述接收邏輯被耦合到高速點(diǎn)到點(diǎn)鏈路。
15、 一種系統(tǒng),包括第一對(duì)等節(jié)點(diǎn),用于實(shí)現(xiàn)第一互連棧,所述第一互連棧包括第一協(xié)議層和第一物理層,所述第一協(xié)議層用于生成引用了數(shù)據(jù)元素的第一消息和第二消息,所述第一物理層用于將所述第一消息發(fā)送到歸屬節(jié)點(diǎn)并將所述第二消息發(fā)送到第二對(duì)等節(jié)點(diǎn);其中,所述第二對(duì)等節(jié)點(diǎn)通過點(diǎn)到點(diǎn)鏈路被耦合到所述第一對(duì)等節(jié)點(diǎn),所述第二對(duì)等節(jié)點(diǎn)包括高速緩沖存儲(chǔ)器并且實(shí)現(xiàn)第二互連棧,所述高速緩沖存儲(chǔ)器保存著所述數(shù)據(jù)元素的緩存拷貝,所述第二互連棧包括第二物理層和第二協(xié)議層,所述第二物理層用于接收所述第二消息,所述第二協(xié)議層用于響應(yīng)于所述第二物理層接收到所述第二消息,不將所述數(shù)據(jù)元素的所述緩存拷貝直接轉(zhuǎn)發(fā)到所述第一對(duì)等節(jié)點(diǎn)、并使所述數(shù)據(jù)元素的所述緩存拷貝轉(zhuǎn)換到無效一致性狀態(tài);并且其中,所述歸屬節(jié)點(diǎn)通過點(diǎn)到點(diǎn)鏈路被耦合到所述第一對(duì)等節(jié)點(diǎn)并且實(shí)現(xiàn)第三互連棧,所述第三互連棧包括第三物理層和第三協(xié)議層,所述第三物理層用于接收所述第一消息,所述第三協(xié)議層用于響應(yīng)于所述第三物理層接收到所述第一消息,生成數(shù)據(jù)消息以將所述數(shù)據(jù)元素的正確拷貝提供給所述第一對(duì)等節(jié)點(diǎn)。
16、 根據(jù)權(quán)利要求15所述的裝置,其中,所述第二協(xié)議層還用于生成應(yīng)答消息,以向所述歸屬節(jié)點(diǎn)指示所述緩存拷貝留在無效狀態(tài),并且所述第二物理層還用于響應(yīng)于所述第二物理層接收到所述第二消息并且所述數(shù)據(jù)元素的所述緩存拷貝在所述高速緩沖存儲(chǔ)器中被保持在獨(dú)占或共享一致性狀態(tài),將所述應(yīng)答消息發(fā)送到所述歸屬節(jié)點(diǎn)。
17、 根據(jù)權(quán)利要求15所述的裝置,其中,所述第二協(xié)議層還用于生成寫回消息,以將所述數(shù)據(jù)元素的所述緩存拷貝提供給所述歸屬節(jié)點(diǎn),并且所述第二物理層還用于響應(yīng)于所述第二物理層接收到所述第二消息并且所述數(shù)據(jù)元素的所述緩存拷貝在所述高速緩沖存儲(chǔ)器中被保持在已修改一致性狀態(tài),發(fā)送所述寫回消息以將所述數(shù)據(jù)元素的所述緩存拷貝提供給所述歸屬節(jié)點(diǎn)。
18、 根據(jù)權(quán)利要求17所述的裝置,其中,所述第三協(xié)議層生成所述數(shù)據(jù)消息以將所述數(shù)據(jù)元素的正確拷貝提供給所述第一對(duì)等節(jié)點(diǎn)包括響應(yīng)于所述第三物理層接收到所述第一消息并從所述第二對(duì)等節(jié)點(diǎn)接收到所述數(shù)據(jù)元素的所述緩存拷貝,所述第三協(xié)議層生成所述數(shù)據(jù)消息以提供所述數(shù)據(jù)元素的所述緩存拷貝。
19、 根據(jù)權(quán)利要求18所述的裝置,其中,所述第一消息包括讀取失效消息,所述第二消息包括監(jiān)聽失效消息,并且所述數(shù)據(jù)消息包括寫回標(biāo)記消息和寫回?cái)?shù)據(jù)消息,并且其中,所述第一協(xié)議層用于響應(yīng)于所述數(shù)據(jù)元素的部分讀取而生成所述讀取失效消息和所述監(jiān)聽失效消息。
20、 根據(jù)權(quán)利要求19所述的裝置,其中,所述讀取失效消息包括讀取失效無轉(zhuǎn)發(fā)(RdlnvNoFwd)消息,所述監(jiān)聽失效消息包括監(jiān)聽失效無轉(zhuǎn)發(fā)(SnpInvNoFwd)消息,所述寫回標(biāo)記消息包括應(yīng)答無效寫回(RspIWb)消息,并且所述寫回?cái)?shù)據(jù)消息包括寫回?zé)o效數(shù)據(jù)(WbIData)消息。
21、 一種方法,包括請(qǐng)求方節(jié)點(diǎn)生成引用了數(shù)據(jù)的第一消息;對(duì)等節(jié)點(diǎn)接收引用了數(shù)據(jù)的所述第一消息;以及響應(yīng)于所述對(duì)等節(jié)點(diǎn)接收到所述第一消息,不直接將保存在所述對(duì)等節(jié)點(diǎn)的高速緩沖存儲(chǔ)器的高速緩存行中的所述數(shù)據(jù)的拷貝轉(zhuǎn)發(fā)到所述請(qǐng)求方節(jié)點(diǎn)、并使所述高速緩存行無效。
22、 根據(jù)權(quán)利要求21所述的方法,其中,請(qǐng)求方節(jié)點(diǎn)生成引用了數(shù)據(jù)的第一消息包括響應(yīng)于所述請(qǐng)求方節(jié)點(diǎn)的部分讀取請(qǐng)求,在所述請(qǐng)求方節(jié)點(diǎn)中實(shí)現(xiàn)的互連棧的協(xié)議層內(nèi)生成引用了數(shù)據(jù)的所述第一消息。
23、 根據(jù)權(quán)利要求21所述的方法,還包括響應(yīng)于所述對(duì)等節(jié)點(diǎn)接收到所述第一消息,確定所述高速緩存行是否處于已修改高速緩存一致性狀態(tài);以及響應(yīng)于確定所述高速緩存行處于所述已修改高速緩存一致性狀態(tài),將所述對(duì)等節(jié)點(diǎn)的高速緩沖存儲(chǔ)器的高速緩存行內(nèi)保存的所述數(shù)據(jù)的所述拷貝推送到歸屬節(jié)點(diǎn)。
24、 根據(jù)權(quán)利要求23所述的方法,還包括響應(yīng)于確定所述高速緩存行未處于所述已修改高速緩存一致性狀態(tài),將應(yīng)答消息從所述對(duì)等節(jié)點(diǎn)發(fā)送到所述歸屬節(jié)點(diǎn),以指示所述數(shù)據(jù)的所述拷貝在高速緩存行中被保持在無效高速緩存一致性狀態(tài)。
25、 根據(jù)權(quán)利要求24所述的方法,還包括響應(yīng)于所述歸屬節(jié)點(diǎn)從所述對(duì)等節(jié)點(diǎn)接收到所述應(yīng)答消息,將所述數(shù)據(jù)從所述歸屬節(jié)點(diǎn)轉(zhuǎn)發(fā)到所述請(qǐng)求方節(jié)點(diǎn),以及響應(yīng)于所述歸屬節(jié)點(diǎn)接收到從所述對(duì)等節(jié)點(diǎn)推送至所述歸屬節(jié)點(diǎn)的所述數(shù)據(jù)的所述拷貝,將從所述對(duì)等節(jié)點(diǎn)推至所述歸屬節(jié)點(diǎn)的所述數(shù)據(jù)的所述拷貝從所述歸屬節(jié)點(diǎn)轉(zhuǎn)發(fā)到所述請(qǐng)求方節(jié)點(diǎn)。
26、 根據(jù)權(quán)利要求25所述的方法,其中,所述第一消息包括監(jiān)聽失效無轉(zhuǎn)發(fā)(SnpInvNoFwd)消息。
27、 根據(jù)權(quán)利要求25所述的方法,其中,所述請(qǐng)求方節(jié)點(diǎn)、所述對(duì)等節(jié)點(diǎn)以及所述歸屬節(jié)點(diǎn)每一個(gè)均通過點(diǎn)到點(diǎn)串行鏈路相互互連。
全文摘要
本文描述了用于考慮到部分和非一致存儲(chǔ)器訪問而在基于高速緩存一致鏈路的互連中保持訪存順序的方法和裝置。在一個(gè)實(shí)施例中,利用讀取失效和/或監(jiān)聽失效消息來實(shí)現(xiàn)部分存儲(chǔ)器訪問,例如部分讀取。當(dāng)對(duì)等節(jié)點(diǎn)從請(qǐng)求方節(jié)點(diǎn)接收到引用了數(shù)據(jù)的監(jiān)聽失效消息時(shí),所述對(duì)等節(jié)點(diǎn)使與所述數(shù)據(jù)相關(guān)聯(lián)的高速緩存行失效,并且不直接將所述數(shù)據(jù)轉(zhuǎn)發(fā)到所述請(qǐng)求方節(jié)點(diǎn)。在一個(gè)實(shí)施例中,當(dāng)所述對(duì)等節(jié)點(diǎn)保存著處于已修改一致性狀態(tài)下的所引用的高速緩存行時(shí),響應(yīng)于接收到所述監(jiān)聽失效消息,所述對(duì)等節(jié)點(diǎn)將所述數(shù)據(jù)寫回與所述數(shù)據(jù)相關(guān)聯(lián)的歸屬節(jié)點(diǎn)。
文檔編號(hào)G06F12/08GK101625663SQ20091015874
公開日2010年1月13日 申請(qǐng)日期2009年7月7日 優(yōu)先權(quán)日2008年7月7日
發(fā)明者C-T·舒, J·瓦什, R·H·比爾斯, R·J·沙弗拉內(nèi)克 申請(qǐng)人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
浮梁县| 织金县| 泸西县| 南皮县| 望都县| 平和县| 漯河市| 荥阳市| 四平市| 苗栗县| 祁阳县| 青河县| 邹城市| 土默特右旗| 东丽区| 汕尾市| 石景山区| 华亭县| 丹东市| 定安县| 雅江县| 甘泉县| 盐池县| 沙田区| 汉阴县| 荔波县| 楚雄市| 苏州市| 渭源县| 佛冈县| 瑞金市| 金昌市| 建阳市| 南澳县| 普定县| 习水县| 元谋县| 汶上县| 临海市| 读书| 红安县|