新四季網

滿足部分寫和非監聽存取之間的存儲器排序要求的製作方法

2023-06-17 02:02:51

專利名稱:滿足部分寫和非監聽存取之間的存儲器排序要求的製作方法
技術領域:
本發明涉及高速點對點互連鏈路,尤其涉及用於實現一致互連架構的 一致性協議。
背景技術:
當電子系統包括多個高速緩衝存儲器時,維持該系統中保持的數據的 有效性或一致性以確保數據操作的完整性。 一致性通常通過根據高速緩存 一致性協議操縱數據來實現。隨著高速緩存和/或處理器的數量增加,維持 一致性的複雜程度增加,這可能導致系統的多個組件之間的更多衝突。例如,當多個組件(例如高速緩衝存儲器、處理器)請求同一數據塊 時,多個組件之間的衝突按照維持數據有效性的方式來解決。早先的高速 緩存一致性協議通常只讓單個組件對衝突解決負責。然而,隨著系統複雜 程度的提高,依賴於單個組件來解決衝突會降低總的系統性能。一般而言,存在兩種提供高速緩存一致性的基本方案監聽(現在通 常稱為對稱多處理,SMP)和目錄(現在通常稱為分布式共享存儲DSM)。 這兩種方案之間的基本差別圍繞在元信息的放置和存取;g卩,有關在何處 保存高速緩存線的副本的信息。對於基於目錄的方案而言,除存儲未被高速緩存的數據的固定位置以 外,還存在指示已高速緩存的副本駐留在何處的一固定位置,即目錄。為 了按照新的方法存取高速緩存線, 一個節點必須與包含該目錄的節點(通 常是包含未高速緩存數據存儲庫的同一節點)通信,從而允許響應的節點 在主存儲副本有效時提供數據。在目錄系統中,這樣的節點被稱為歸屬節 點。目錄可按照兩種方式來分發。首先,主存儲數據(未高速緩存儲存庫) 通常在節點之間分發,且目錄按照相同方式來分發。其次,元信息本身可被分發,從而在歸屬節點處只保持關於該線是否被高速緩存,以及如果是, 則單個副本駐留在何處的信息。例如,SCI使用該方案,其中包含高速緩存 的副本的每一節點維護到具有高速緩存的副本的其它節點的連結,從而共 同維護完整的目錄。為監聽高速緩存,元信息與高速緩存的副本本身一起分發,以使高速 緩存線的每一有效副本由一單元保持,該單元用來識別存取高速緩存線的 請求並相應地作出響應。通常,存在數據以未高速緩存狀態,即其原始位 置保持的儲存庫。通常,對此原始位置負責的代理或單元被稱為歸屬節點。 當請求對高速緩存線的存取時,作出請求的節點通常廣播所請求的高速緩 存線的地址以及所需的許可,而持有所請求的高速緩存線的副本的節點據 此作出響應。然而,在某些現有的一致性和消息通信協議下,在特定情況下對高速 緩存線的部分讀和非監聽存儲器存取(即一致性架構中的非一致性存取) 可能導致將無效數據轉發給請求者。通常這些情況源自對協議內的存儲器 排序規則的違反。因此,接收到無效數據的代理可能執行非法操作,這有 可能導致系統內的不穩定。


本發明通過示例進行說明,而且不旨在受限於附圖的各圖。 圖1示出協議架構的一個實施例。圖2示出包括利用點對點互連耦合至晶片組的多個處理器的系統的實 施例。圖3示出利用分層的輸入/輸出(I/O)棧的雙向互連架構的框圖的實施例。圖4a示出可能導致存儲器排序違反的、多個節點之間的消息通信協議 的協議圖的實施例。圖4b示出可能導致存儲器排序違反的、多個節點之間的消息協議的協 議圖的另一實施例。圖5a示出遵守正確的存儲排序要求的、包括衝突階段中的消息的消息通信協議的協議圖的實施例。圖5b示出遵守正確的存儲排序要求的、包括衝突階段中的消息的消息 通信協議的協議圖的另一實施例。圖6a示出遵守正確的存儲排序要求的、包括衝突階段之前插入的數據 寫回階段的消息通信協議的協議圖的實施例。圖6b示出遵守正確的存儲排序要求的、包括衝突階段之前插入的數據 寫回階段的消息通信協議的協議圖的實施例。圖6c示出遵守正確的存儲排序要求的、包括衝突階段中的消息的消息 通信協議的協議圖的另 一 實施例。圖7a示出遵守正確的存儲排序要求的、包括衝突階段之後的消息的消 息通信協議的協議圖的實施例。圖7b示出遵守正確的存儲排序要求的、包括衝突階段之後的消息的消 息通信協議的協議圖的另 一 實施例。圖7c示出遵守正確的存儲排序要求的、包括衝突階段之後的消息的消 息通信協議的協議圖的另一實施例。
具體實施方式
在以下描述中,陳述了諸如特定互連架構、特定消息、特定偽代碼、 特定互連架構層等的示例之類的多個特定細節以提供對本發明的透徹理 解。然而對本領域普通技術人員顯而易見的是,不一定要採用這些特定細 節來實施本發明。在其它實例中,沒有詳細描述諸如特定互連層架構細節、 特定非關消息和協議、處理器和高速緩存的特定操作細節等之類的公知組 件或方法,以避免不必要地混淆本發明。此處描述的方法和裝置是為了提供互連架構中的部分存取與非監聽存 儲器存取之間的正確存儲器排序。具體而言,對存儲器排序要求的遵守主 要參考說明性的基於高速緩存一致鏈路的互連架構來討論。然而,提供正 確存儲器排序要求的方法和裝置不如此受限,他們可利用任何互連架構來 實現。說明性互連架構的實施例圖1示出高層簡化的協議架構的實施例。在一個實施例中,該協議架 構用來在正常事務期間以及在衝突請求期間維持架構內的高速緩存中的數 據之間的數據一致性。此外,在一個實施例中,該協議架構還為各個請求 提供前向進展,以使各個請求被滿足並引退。協議架構可包括任何數量的節點或代理。在一個實施例中,節點包括 與內部高速緩衝存儲器、外部高速緩衝存儲器、和/或外部存儲器相關聯的 處理器。然而,在互連架構中,節點或代理可指代任何設備或他們的集合, 諸如處理器、存儲器控制器集線器以及I/O集線器、通用控制器集線器、I/O 設備、I/O設備的集合、或能夠存取存儲器的任何其它設備/組件。在另一 實施例中,節點是與其它電子系統互連的電子系統(例如計算機系統、移 動設備)。還可使用其它類型的節點配置。如圖所示,架構100包括高速緩存節點/代理105-106和歸屬代理 110-112。在一個實施例中,歸屬代理110-112用來保衛作為一致性存儲空 間的最終儲存庫的存儲位置。換言之,代理110是負責一致性存儲空間的 數據的多個原始物理存儲位置的歸屬代理。歸屬代理110-112可執行以下 任務的任何組合,包括跟蹤來自高速緩存代理105-106的高速緩存狀態 轉移、管理高速緩存代理105-106之間的衝突、與存儲器接口、提供數據 和/或所有權、以及任何其它已知的歸屬代理相關的任務。在一個實施例中,高速緩存代理105-106包括與高速緩衝存儲器相關 聯的代理,諸如包括高速緩衝存儲器的處理器和高速緩存I/O代理實體。 高速緩存代理105-106可執行以下任務的任何組合諸如執行對一致性存 儲空間的讀和寫請求、保持來自一致性存儲空間的數據的高速緩存的副本、 以及向其它對等高速緩存代理提供高速緩存的副本,以及執行任何其它任 務。 一個高速緩存代理或節點也可被稱為與另一高速緩存代理有關的對等 代理/節點。雖然未在圖1中具體示出,但該協議架構還可包括諸如代表1/0 設備參與或見證事務的輸入/輸出(I/O)集線器之類的非高速緩存代理。在一個實施例中,高速緩存代理105-106和歸屬代理110-112維持數據 一致性,並通過在網絡結構101上交換消息來提供前向進展。在一個實施例中,結構101便於消息從一個代理/節點通過點對點互連網絡到另一個代理/節點的傳輸。通常說圖1描述了底層網絡的高速緩存一致性協議的抽象示圖。
在一個實施例中,互連架構100可包括如以下共同待審的申請所描述的新穎特徵的任何組合。例如,題為"用於多結點系統中的高速緩存一致性
的轉發狀態(Forward State for Use in Cache Coherency in a Multi-NodeSystem)"的美國專利號6,922,756描述了對轉發高速緩存一致性狀態(F狀態)的利用。而且,在2004年4月27日提交的題為"2跳高速緩存一致性協議(A Two-Hop Cache Coherency Protocol)"的美國專利申請號10/833,963(案巻號P15925) 、 2004年4月27日提交的題為"消息通信協議(AMessaging Protocol)"的美國專利申請號10/833,965 (案巻號P188卯)、2004年4月27日提交的題為"高速緩存一致性協議(A Cache Coherence Protocol)"的美國專利申請號10/833,977 (案巻號P18891) 、 2006年1月11日提交的題為"基於源監聽的2跳高速緩存一致性協議(A Two-Hop Source SnoopBased Cache Coherence Protocol)"的美國專利申請號11/330,977 (案巻號P22376)、以及2006年1月11日提交的題為"基於源監聽的2跳消息通信協議(A Two-Hop Source Snoop Based Messaging Protocol)"的美國專利申請號11/331,301 (案巻號P23106)中討論了各種情形下的一致性協議的示例,其它示例包括2002年12月19日提交的題為"用於高速緩存一致性協議的推測性分布式衝突解決(Speculative Distributed Conflict Resolution for aCache Coherency Protocol)"的美國專利申請號10/325,427(案巻號P13923);2002年12月19日提交的題為"用於多處理器系統中的高速緩存一致性的分層目錄(Hierarchical Directories for Cache Coherency in a MultiprocessorSystem)"的美國專利申請號10/326,234 (案巻號P13984); 2002年12月19日提交的題為"多處理器系統中的高速緩存分層結構的分層虛擬模型(Hierarchical Virtual Model of a Cache Hierarchy in a Multiprocessor System)"的美國專利申請號10/324,711 (案巻號P13985); 2002年12月19日提交的題為"用於高速緩存 一 致性協議的非推測性分布式衝突解決(Non-Speculative Distributed Conflict Resolution for a Cache CoherencyProtocol)"的美國專利申請號10/326,232 (案巻號P13986)。
要注意的是,在上述共同待審的申請中描述的特徵可包括在本文所描述的實施例中;然而,本文中所描述的實施例並不如此受限,因為他們可包括附加特徵,而且可能不包括任何一個上述特徵。
圖2示出包括利用點對點互連架構耦合至晶片組的多個處理器的系統的實施例。圖2的系統還可包括若干處理器,但為了清楚起見僅示出了其中兩個處理器205、 210。如圖所示,處理器205、 210各自包括兩個處理元素206-207、 211-212;不過處理器205、 210中可包括任意數量的處理元素。
處理元素指的是線程單元、進程單元、上下文、邏輯處理器、硬體線程、核、和/或能保持處理器的諸如執行狀態或架構狀態之類的狀態的任何其它元素。換言之,在一個實施例中,處理元素指的是能夠與諸如軟體線程、作業系統、應用程式、或其它代碼之類的代碼獨立地相關聯的任何硬體。作為示例,物理處理器通常指的是集成電路,其可能包括任意數量的諸如核或硬體線程之類的其它處理元素。
核通常指的是位於集成電路上的能夠維持獨立架構狀態的邏輯,其中每個獨立維持的架構狀態與至少某些專用執行資源相關聯。與核相反,也被稱為物理線程的硬體線程通常指的是位於集成電路上的能維持獨立架構狀態的任何邏輯,其中獨立維持的架構狀態共享對執行資源的存取。因此,如可理解的,在一個實施例中,諸如單線程應用程式的多個複製之類的多個軟體線程能在多個處理元素上並行執行,所述多個處理元素可包括諸如核或硬體線程之類的上述處理元素的任一個的組合。
在處理器205、 210中還示出了資源208、 213,其通常包括寄存器、單元、邏輯、固件、存儲器、以及用來執行代碼或與其它設備接口的其它資源。如上所述,資源110中的某一些可部分或完全地專用於處理元素,而其它的可在處理元素之間共享。例如,諸如指令指針和重命名邏輯之類的較小的資源可針對物理線程來複製。諸如重排序器/引退單元中的重排序緩衝器、指令後備轉換緩衝器(ILTB)、載入/存儲緩衝器、以及隊列等資源可通過分區來共享。諸如通用內部寄存器、頁表基本寄存器、低級數據緩存、數據TLB、執行單元、以及無序單元等其它資源可能在線程之間被完全共享。反之,核具有專用的執行資源,同時共享諸如二級高速緩存(L2)之類的較高級高速緩存的至少一部分。
在一個實施例中,資源208、 213包括處理器流水線,其可包括任何數量的流水線級。流水線級的普通示例包括指令指針級、取出級、解碼級、驅動級、以及分配級、重命名級、隊列級、記錄器級、調度級、分派級、執行級、存儲器存取級、以及寄存器存取級。注意,此級列表包括處理器流水線級的示例性非窮舉列表,因為處理器100中可包括任何已知的流水線級。
處理器205、 210還可各自包括相應地與存儲器209、 214接口的存儲器控制器或局部存儲器控制器集線器(MCH)。存儲器209、 214包括諸如隨機存取存儲器(RAM)、高速緩衝存儲器、快閃記憶體之類的任何存儲設備或其它存儲設備。在一個實施例中,存儲器214包括較高級高速緩衝存儲器,而資源213包括低級高速緩衝存儲器。在另一個實施例中,存儲器209包括與處理器205相關聯的動態隨機存取存儲器(DRAM),其包括用來高速緩存來自DRAM 209的數據的高速緩衝存儲器。注意,這是說明性實施例,因為存儲器209、 214可能包括任何類型的存儲設備。
在其中存儲器209、 214包括包含在處理器205、 210內或如圖所示在其外部的高速緩衝存儲器的一個實施例中,處理器205、 210能成為歸屬節點以及對等高速緩存節點。例如,當一事務引用了存儲器209內的存儲位置時,負責存儲器209的代理,即處理器205被確定為與該事務和存儲位置有關的歸屬代理。同樣,在事務引用諸如存儲器214中的位置之類的另一存儲位置的情況下,處理器205被確定為對等高速緩存代理。
如可理解的,點對點鏈路220-224以點對點的方式將組件耦合在一起。在一個實施例中,物理鏈路220-224各自包括諸如與以下參考圖3所討論的物理層相關聯的物理鏈路之類的雙向差分信令互連。因此,處理器205、210和晶片組230能彼此直接通信。
晶片組230通常指的是諸如耦合至輸入/輸出(I/O)集線器的存儲器控制器集線器之類的多個集成電路。不過,在其中各代理各自包括與存儲器接口的一版本的存儲器控制器集線器的一個實施例中,晶片組230指的是1/0集線器或其它控制器集線器。在一個實施例中,如上所述的晶片組230
是要參與或見證事務的非高速緩存代理。不過,晶片組230不如此受限,如在其它實施例中,晶片組230是包括高速緩衝存儲器的高速緩存代理和/或包括具有數據的原始存儲位置儲存庫的存儲器的歸屬代理。
如圖所示,晶片組230還將與多個互連和I/O設備接口,這些設備諸如外圍部件互連(PCI)或快速PCI(PCI-E)設備261、集成設備電子技術(IDE)或高級傳輸附連(ATA)設備262、通用串行總線(USB)設備263、區域網(LAN)或無線LAN (WLAN)設備264、音頻設備265以及其它I/O設備266,這些設備也可包括如本文所描述地用於耦合I/O設備的另一互連架構。
參考圖3,其示出利用分層互連棧的雙向互連架構的框圖的實施例。對圖3中諸如物理層302等各層的參考包括對諸如物理層302a和物理層302b等可以用不同代理實現的通用層的討論。如圖所示,互連棧被劃分成5層,其中的一層或多層基於設計實現可能是可任選的。例如,在一個實施例中,路由層304被嵌入在鏈路層的功能中;因此在一個實施例中,路由層不是單獨和分立的層。
在一個實施例中,物理層302負責物理介質上信息的電傳輸。例如,在鏈路層實體303a和303b之間採用了物理的點對點鏈路。作為一個說明性示例,物理鏈路包括不同的信令方案,其包括雙向差分信令對351和352。這裡,物理層可能在邏輯上被劃分成電的子塊和邏輯的子塊,以使物理層將棧的餘下部分與信息的電傳輸隔離,而且使物理層與鏈路層303通信。
在一個實施例中,鏈路層303從棧的上層抽象出物理層302並提供鏈路相關服務,如連接的代理/實體之間的可靠數據傳輸和流量控制和將物理信道/接口虛擬化成多個虛擬信道和消息類。這裡,虛擬信道可被視為棧的上層所使用的多個虛擬網絡。例如,協議層306可能依賴於由鏈路層303提供的抽象,以將協議消息映射到消息類中,並因此映射到一個或多個虛擬信道。
在一個實施例中,路由層304提供用於將分組從源路由至目的地的靈活方法。如上所述,在極簡單的拓撲中,路由層304可以不是明顯的,而
14是集成到鏈路層303的功能中。例如,路由層304可依賴於鏈路層303的抽象來指定對來路由分組。這裡,路由表信息被保持以提供關於分組的路由信息。
在一個實施例中,傳輸層305提供端對端的可靠傳輸服務。類似於路由層304,傳輸層305基於設計實現也是可任選的。作為一個示例,傳輸層305依賴於路由層304服務來為協議層306提供可靠的傳輸支持。在一個實施例中,在互連架構內, 一組件子集包括傳輸層305。因此,此組件子集定義了與傳輸層305相關的分組的子域,而其它組件可能沒有定義那些子域。
在一個實施例中,協議層306用來實現節點/代理之間的較高級通信協議,諸如高速緩存一致性、排序、對等通信、中斷傳遞。換言之,協議層306為諸如歸屬節點、對等節點、高速緩存節點、以及非高速緩存節點之類的節點或代理相應地定義了可允許的消息、請求、響應、階段、 一致性狀態等。諸如歸屬節點消息、監聽消息、響應消息等之類的消息示例在下文中討論。
注意,層以及與其相關聯的邏輯的討論可按照任何方式耦合。例如,可以說協議邏輯耦合至物理層,即發送或接收邏輯。這裡,如從圖3可以看出的,在一個實施例中,協議邏輯可能不直接耦合至物理層邏輯,而是通過其它層邏輯耦合至物理層邏輯。而且,在一個實施例中,互連棧耦合至諸如高速緩存控制或高速緩存邏輯之類的內部組件邏輯以啟動適當的高速緩存一致性動作。
MESIF協議的實施例的概覽
在一個實施例中,基本的修改獨佔共享無效轉發(MESIF)協議提供類似於監聽協議的協議,且沒有單個串行化總線的可能限制。類似於監聽高速緩存協議,MESIF依賴於具有高速緩存的數據副本的節點來保持一致性。使用點對點鏈路而不是同步的集中式廣播引入了時間扭曲的問題,即從不同節點的角度來看,事件看起來以不同的順序發生的事實。作為一個示例,MESIF協議通過識別由於時間扭曲而引起的可能錯誤,並提供對時間扭曲的協議或軟體解決方案,來處理時間扭曲。歸屬節點通常與數據的未高速緩存的副本相關聯。因此,歸屬節點可參與到有關與歸屬節點相關聯的數據的事務中。不過,歸屬節點不一定要被包括在與事務相關聯的"關鍵路徑"中,而是歸屬節點可插入到事務中來解決衝突和時間扭曲問題。在一個實施例中,因為該方案的並發廣播本質,MESIF實現了與監聽協議相關聯的低時延,同時在特定情況下以可能的最小時延(即單個往返請求—響應)來取得數據的可高速緩存的副本。
在一個實施例中,與MESIF協議有關的基本事務涉及對所有對等節點以及歸屬節點廣播初始請求。如果一副本以狀態E、 F、或M—致性狀態被高速緩存,則它被包括在響應中。然後第二消息被發送至歸屬節點,告知該請求已被滿足。如果所請求的線未被高速緩存,或如果僅S狀態副本存在,則發送至歸屬節點的第二請求用來確認前一請求,此刻歸屬節點已從其存儲器中取得該前一請求。在這兩種情況之一下,歸屬節點出於同步和衝突解決的目的響應第二請求(也可能響應第一請求,不過他們有時可組合)。要注意的是歸屬節點可具有一個或多個高速緩存,因此它可像任何其它節點一樣響應初始請求。
在一個實施例中,衝突是按照分布式方式來解決的。時間扭曲問題使得難以檢測衝突,因為個別的請求會被延遲任意長的時間。不過,如果每一個節點在作出請求之後監控衝突,則衝突將可被檢測。多個節點可能檢測到衝突,不過作為一個示例,至少一個節點將檢測到衝突。因此,在一個實施例中,來自節點的響應可能包括衝突信息。
在一個實施例中,接收來自響應的數據副本的節點被允許一接收就立刻在內部使用該數據,但不使使用該數據的效果對系統的餘下部分可見(即全局可見),直到該節點已經接收到確認。所述確認還可包括作出請求的節點必須將其副本轉發至另一節點、可能還將該節點從其自己的高速緩存中驅逐的指令。
最後,在一個實施例中,當節點通過提供高速緩存的數據來響應來自另一節點的請求時,該節點推遲它接收到的對同一高速緩存線的其它請求,直到該節點從歸屬節點接收到確認該節點已轉發數據的事實的響應,從而確保所有節點都觀察到(可能可寫的)高速緩存線的同一順序的傳輸。
16如上所述,歸屬節點是未高速緩存的數據的儲存庫,但歸屬節點還可包括處理器和高速緩存。這裡,當歸屬節點處理器未中高速緩存時,歸屬節點向所有其它(對等)節點廣播請求,而且歸屬節點像它對到達歸屬節
點的任何其它請求一樣在內部處理該請求。注意這是特殊的情況,因為歸屬節點不會向自己(歸屬節點)顯式地發送消息。此外,當對本地高速緩存的數據的外部請求到達時,歸屬節點適當地響應。
所公開的消息協議定義了一致性(高速緩存和歸屬)代理、非高速緩存代理、以及其它代理(存儲器控制器、處理器等)之間的一組允許的消息。 一致性協議將這些消息用作算法中的字和語法以表達一致性思想。此算法明顯地對請求排序、解決衝突、並描述高速緩存代理之間的交互。雖
然以上描述了 MESIF,但不一定要採用MESIF高速緩存一致性協議。例如,可以不採用轉發狀態,這將導致對已知的MESI協議的採用。而且,注意上述討論包括MESIF協議的實施例的示例性概覽。因此,以上描述各種組件在單獨的實施例中可以不同。以下包括了在消息通信和/或一致性協議中採用的可能消息的非窮舉示例性列表。監聽消息
在一個實施例中,監聽消息朝著諸如對等高速緩存代理之類的高速緩存代理來定向。監聽消息通常不包括歸屬節點標識符(ID),以使他們被路由至對等的高速緩存代理而不是路由至歸屬節點。
監聽數據(SnpData):這是用來獲取處於E、 F、或S狀態的數據的監聽。
監聽無效自己(SnpInvOwn):這是用來獲取E或M狀態的數據的監聽。在一個實施例中,對等代理響應於將其本地存儲器中的數據保持於E或M狀態來提供數據。
監聽無效無效到獨佔(SnpInvItoE):這是用來使對等高速緩存代理無效
並將任何M狀態數據轉儲清除到歸屬節點的監聽。
監聽無效X到無效(SnpInvXtoI):這是用來使對等高速緩存代理無效並將任何M狀態數據轉儲清除到歸屬節點的監聽。
歸屬消息以下消息與歸屬節點相關聯。作為一個示例,以下消息中的某些是對歸屬節點的請求消息。實際上,注意某些監聽消息與歸屬消息之間的相似性。然而,這些相似的消息的不同之處通常在於往歸屬節點的消息包括要路由至歸屬節點的歸屬節點ID,而廣播的對等節點消息可能不包括對歸屬節點的引用。
其它歸屬消息包括歸屬寫回標記消息。這裡,數據可通過WbData消息單獨地發送,該WbData消息可按照相對於標記消息的任何順序來接收。以下包括的歸屬消息的其它示例是從高速緩存代理到歸屬代理的歸屬監聽響應消息和發信號通知衝突階段開始的衝突消息的歸屬確認。
讀數據(RdData):這是對處於獨佔(E)狀態、也有可能處於轉發(F)狀態或S狀態的數據的請求,這取決於具體實施例。
讀無效自己(RdlnvOwn):這是對處於M或E狀態的高速緩存線的請求。
無效無效到獨佔(InvItoE):這是對沒有數據的高速緩存線的請求。
非監聽讀(NonSiipRd):這是執行對存儲器的非一致性讀的請求。非監聽寫(NonSiipW):這是執行對存儲器的非一致性寫的請求。寫回修改到無效、共享或獨佔(WbMtoI、 WbMtoS以及WbMtoE):
這是將處於M狀態的高速緩存線寫回存儲器,並使高速緩存線狀態轉移到無效狀態、共享狀態、或獨佔狀態的請求。在一個實施例中,這些消息是指示數據將被發送的標記消息,而數據實際上通過諸如WB+Data+消息之類的單獨的消息來傳送。
響應無效或共享(Rspl或RspS):相應地使對等代理結果具有處於無效狀態或S狀態的線。
響應轉發無效或共享(RspFwdl或RspFwdS):對等節點已將數據發送至請求者,因而該線相應地結果處於無效或共享狀態。
響應轉發無效或共享寫回(RspFwdIWb或RspFwdSWb):對等節點已將數據發送至請求者且將WbIData發送至歸屬節點,因而該線相應地結果處於無效或共享狀態。
響應無效或共享寫回(RspIWb或RspSWb):對等節點已將往歸屬節點的具有正在處理中的WbIData消息的數據驅逐,而且未將任何消息發送至請求者。
響應*寫回發送(Rsp*WbPost):對等節點已將往歸屬節點的具有正在處理中的Wb卩Data消息的數據驅逐,而且未將任何消息發送至請求者。而且,在一個實施例中,與R^^WbPost消息相關聯的AckCnflt消息的發送者未響應於接收Cmp—FwcP消息而被解除分配。作為一個示例,歸屬代理響應於將部分數據提交給存儲器來發送完整數據。
WbPost:對等節點已將往歸屬節點的具有正在處理的WMData消息的數據驅逐。而且,在一個實施例中,WbPost消息的發送者未響應於接收Cmp—Fwc^消息而被解除分配。這裡,發送者等待來自歸屬節點的完成。作為一個示例,歸屬代理響應於將數據提交給存儲器來發送完整消息。
響應衝突(RspCnflt):使對等節點結果具有處於無效狀態的線,而且該對等節點具有衝突的、未解決的請求。
確認衝突(AckCnflt):確認數據完成/授權和完成/強制確認衝突的接收。
確認衝突寫回無效(AckCnfltWbl):在一個實施例中,它如上所述發送AckCnflt信號。而且,在一個實施例中,該消息還發信號通知部分數據的寫回,該數據如下所述可包括在單獨的WbIData消息中。而且,與數據相關聯的高速緩存線轉移到無效狀態。
非數據響應消息
在一個實施例中,非數據響應消息包括用來在不發送數據的情況下授予線所有權的授權消息。非數據響應消息還可包括用來發信號通知完成和可能在衝突條件下從擁有者提取數據的完成消息。
授權完成(GntCmp):在沒有數據的情況下授予獨佔所有權。授權強制確認衝突(Gnt_FrcAckCnflt):在沒有數據的情況下授予獨佔所有權再加上強制確認衝突。
完成(CMP):所有監聽響應已收集而且未檢測到衝突。強制確認衝突(FrcAckCnflt):對於確認衝突,監聽響應已收集。完成轉發代碼(Cmp_FWdC0de):完成請求、將處於轉發或共享狀態
19的線轉發給請求者、以及使本地副本無效或保持其處於共享狀態。
完成轉發無效自己(Cmp一FwdlnvOwn):完成請求、將處於獨佔或
修改狀態的行轉發給請求者、以及使本地副本無效。數據響應消息
DataCJ:處於相應的MESIF狀態的數據。
DataC—^Cmp:具有完成的處於相應的ESIF狀態的數據。
DataC_*_FrcAckCnflt:具有FrcAckCnflt的處於相應的ESIF狀態的數據。
Wb+Data:寫回數據、轉移至相應的E、 S、或I狀態。WbIDataPtl或WbEDataPtl:寫回部分數據、轉移至相應的無效或獨佔狀態。
WMDataPtlPost:寫回部分數據、轉移至相應的一致狀態。而且,在一個實施例中,與Wb*DataPtlPost消息相關聯的AckCnflt消息的發送者未響應於接收Cmp一FwcP消息而解除分配。作為一個示例,歸屬代理響應於將部分數據提交給存儲器來發送完整消息。
非監聽寫數據(NonSnpWrData):這是對存儲器的非一致性寫。非監聽寫部分數據(N(mSnpWrDataPtl):這是部分數據的非一致性寫。
轉向圖4a,示出了可能導致存儲器排序違反的用於多個節點之間的消息通信的協議圖的實施例。如圖所示,該協議圖描述了5個節點,即輸入/輸出集線器(消費者)、用於"標誌"的歸屬節點0 (CHL0)、生產者節點(GQ0)、用於"數據"的歸屬節點(CHL1)、以及參與多個事務的另一高速緩存代理(GQ1)。注意,所描述的代理的數量和類型僅僅是說明性的,因為互連架構極其靈活,而且可包括任何數量或類型的代理。
這裡,生產者GQ0發起對與數據相關聯的高速緩存線的請求。InvItoE(D)消息被發送至歸屬節點1艮卩CHL1, SnpInvItoE(D)消息被發送/路由至對等代理(消費者GQ1)。然而,在此事務期間,GQ1用對數據的讀請求來啟動單獨的事務。注意,在此實例中代理GQ1和GQ0檢測到衝突,這由從對等代理GQ0和GQ1到歸屬代理CHL1的RspCnflt消息反映出。在歸屬節點CHL1接收到未解決的消息之後,它將Gnt一FrcAckCnflt發送至GQ0以授予所有權並強制確認該衝突。
此時,作為生產者的GQO執行對數據的部分寫,即Data:New(數據=新),並發送AckCnflt消息以確認Gnt—FrcAckCnflt消息。在一個實施例中,AckCnflt還指示事務的衝突階段的開始,而與AckCnflt相關聯的完成表示衝突階段的結束。然後歸屬節點CHL1發送Cmp—FwdCode消息以將數據推送回歸屬節點CHL1。然而,部分數據的寫回,即RspIWb(D)和WbIDataPtl(D)消息,因為諸如信道或路由延遲之類的任意數量的原因而被延遲。
同時,在數據已更新、已將部分數據響應提供給歸屬節點CHL1、以及己通過來自歸屬節點CHL1的Cmp_FwdC0de從對數據事務的部分寫解除分配之後,GQO現在啟動對標誌的寫入,即往CHLO歸屬節點的InvItoE(F)消息和往對等代理IOH和GQ1的相應的監聽。這裡,GQO獲得用於標誌的高速緩存線的所有權,即來自歸屬節點CHLO的Gnt一Cmp,並將標誌更新為新。而且,標誌的新值被寫回歸屬節點CHL0,艮卩WbMtoI(F)和Wbldata(F)。通常,這種情形的數據和標誌在I/O操作中採用,其中一個代理更新數據,然後設置標誌以使另一代理知道該數據已被更新且準備好取回。
因此,IOH可能繞標誌自旋,周期性地或在一定時間後檢査標誌以確定數據合適準備好取回。因此,IOH執行對標誌的非監聽、非一致性讀,即NonS叩Rd(F)。這裡,對歸屬節點CHL0的存儲器的讀取回指示數據己準備好取回的Flag = New值。不再圍繞標誌自旋的IOH啟動對數據的NonS叩Rd請求。然而,當接收到NonSnpRd,數據仍保持OLD (舊)值,因為來自GQO的對Data=New (數據=新)的寫回被延遲。因此,消費者IOH接收無效的舊數據,卻認為數據有效,這可能會導致非法操作或執行。
注意,標誌和數據的示例純粹是說明性的,用來描述其中部分存儲器存取和非一致性存儲器存取的無效存儲器排序可能導致無效/非法操作的一種可能情形。因此,此處公開的實施例可在任何部分存儲器存取情形下採用。類似地,圖4b示出了可能導致存儲器排序違反的用於多個節點之間的消息通信的協議圖的另一實施例。這裡,GQ0將用於數據的高速緩存線保
持於修改狀態而不是如上所述地請求該線。因此,在寫入數據之前,GQ0要以WBMtoE(D)和WbEData(D)將修改的副本推送回歸屬節點CHL1並轉移到獨佔狀態。然後GQO執行對其本地存儲器中的數據的部分寫。然而,如上所述,GQ1發出對數據的讀請求。注意,與以上不同,僅GQ0而不是GQ1檢測到衝突。如上所述,多個節點/代理可檢測衝突,但在一個實施例中,該協議依賴於至少一個節點來檢測該衝突。
因此,GQ0向歸屬節點CHL1提供RspCnflt消息以供解決。向衝突階段的相似轉移以相同的響應(即來自歸屬節點CHL1的Gnt—FrcAckCnflt、來自GQ的AckCnflt、來自CHL1的Cmp_FwdCode)、然後是如上所述被延遲的用消息RspIWb(d)和WbIDataPtl(D)的數據寫回發生。然後標誌被更新為新,並且IOH執行從存儲器對標誌的非一致性讀取。在因為標誌被更新為新而認為數據準備好取回的情況下,IOH請求數據的非監聽讀。如上所述,IOH響應於GQO的部分寫、對數據的非一致性讀、以及新數據的寫回延遲而接收到無效舊數據而不是已更新的新數據。
因此,在一個實施例中,可包括單個或多個消息的寫回階段在與諸如部分寫之類的部分存儲器存取相關聯的衝突階段時被插入,以將部分數據推送回歸屬節點。作為第一示例,用來確認衝突並提供寫回標記的AckCnfltWbI消息在衝突階段時生成。作為另一示例,採用寫回消息的寫回階段在AckCnflt消息被提供給歸屬節點之前被插入。作為又一示例,釆用寫回消息的寫回階段被包括在衝突階段內,即在AckCnflt消息之後。作為最後一個說明性示例,寫回階段被包括在採用Rsp*Post、 WbDataPost消息、或WbPost消息的衝突階段內或其之後,以使AckCnflt消息的發送者在接收到衝突階段的完成消息之後不被解除分配。
在衝突階段時啟動的寫回階段的這些示例純粹是說明性的,因為可採用一旦衝突就將部分數據推送回歸屬節點的任何已知消息或方法。然而,為進一步討論,在下文中參考圖5a-7c更詳細地討論了這些說明性示例。
轉到圖5a,其示出了在衝突階段開始時採用衝突確認和數據寫回消息的協議圖的實施例。圖5a的情形與圖4a的相似之處在於GQ0請求與數據相關聯的高速緩存線的獨佔所有權,GQ1發出對數據的讀請求,衝突被GQ0和GQ1檢測,而且與數據相關聯的歸屬節點CHL1向GQ0發送Gnt—FrcAckCnflt消息。然而,在一個實施例中,代替生產者只提供AckCnflt消息來確認對來自歸屬節點CHL1的Gnt—FrcAckCnflt的接收,GQ0生成並發送組合的AckCnfltWbI(D)消息。這裡,AckCnfltWbI消息用於兩個目的,即Gnt—FrcAckCnflt的確收和對於歸屬節點CHL1的關於數據將在諸如WbIDataPtl(D)之類的數據消息中提供的標記。
換言之,響應於生產者GQ0執行對數據的部分寫和從歸屬節點CHL1接收衝突消息,GQ0要執行對歸屬節點的部分數據寫回,即在衝突階段執行寫回階段。如前所述,在圖4a中,在衝突階段完成之後稍後才執行寫回。這裡,GQ0到衝突階段的末尾利用Cmp_FwdCode解除分配,因而下一事務能夠不管部分數據何時到達歸屬節點CHL1而開始,這導致IOH採集到無效數據。
反之,如從圖5a中可以看出,Cmp—FwdCode不被發送,直到部分數據被推送回歸屬節點CHL1、或被提交至其中的存儲器。因此,GQ0不被解除分配,而且更新標誌的下一事務不會開始,直到數據在CHL1更新且在GQ0處接收Cmp_FwdCode消息之後,這使得確保在更新標誌之前數據被更新。因此,當IOH執行標誌然後數據的非一致性讀時,保證CHL1處的數據是來自GQ0的最新副本。
同樣,參考圖5b,其示出了在衝突階段開始時釆用衝突確認和數據寫回消息的協議圖的另一實施例。這裡,該協議流程與圖4a的協議流程的相似之處在於GQO保持數據的修改的舊副本,將舊副本寫回歸屬節點CHL1,將數據更新至新值,GQ1發出對數據的讀請求,衝突被檢測,以及歸屬節點CHL1生成並向生產者GQ0發送衝突強制確認消息。
這裡,如參考圖5a所討論的,在一個實施例中,AckCnfltWbI消息被提供給歸屬節點CHL1,因為GQO執行了對數據的部分寫,而且GQ0從歸屬節點CHL1接收衝突消息。AckCnfltWbI消息通知歸屬節點衝突被確認,而且數據消息,即WbldataPtl消息將向歸屬節點CHL1提供數據。注意,根據以上對可能的時間扭曲的討論,WbiDataPtl可能在AckCnfltWbI之前被接收。不過,通過該協議的操作,CHL1以與協議流程一致的方式觀察到二者。因此,標誌事務不被啟動,直到GQ0從歸屬節點CHL1接收完成信號,該信號僅在接收到部分數據之後發送。因此,如上所述,IOH圍繞標誌自旋,直到該標誌被更新為新,該更新現在確保在CHL1處更新數據之後,這導致正確的存儲器排序且有效數據被提供給IOH。
接著參考圖6a,示出了在衝突階段釆用寫回階段的協議圖的另一實施例。如上所述,圖6a的協議圖至少在開始時類似於圖4a的協議圖。作為對比,響應於從歸屬節點CHL1接收Gnt_FrcAckCnflt消息,生產者代理GQ0執行對數據的部分寫,並利用WBMtoI數據標記消息和WbIDataPtl數據消息將該部分數據寫回歸屬節點CHL1。在GQ0接收寫回的完成消息之後,即在該部分數據在CHL1處提交且CHL1發送完成消息之後,GQ0然後將AckCnflt消息發送至歸屬節點CHL1,且歸屬節點CHL1將Cmp—FwdCode消息發送至GQ0。
如上所述,標誌寫事務直到GQ0接收到Cmp—FwdCode消息之後才開始,該消息直到新的數據被推送回CHL1之後才被發送。因此,IOH直到標誌被更新為新才讀取數據,而標誌直到數據在CHL1處提交才被更新。換言之,實施了在標誌被更新之前全局地觀察到的數據的存儲器排序。
類似地,圖6b示出了在衝突階段採用寫回階段的協議圖的另一實施例。這裡,協議流程仍類似於圖4b的協議流程。不過,如上述圖6a,響應於執行對數據的部分寫並從歸屬節點CHL1接收FrcAckCnflt消息,生產者代理GQO執行新數據的寫回。以來自GQ0的AckCnflt開始且以來自歸屬節點CHL1的Cmp一FwdCode結束的衝突階段直到來自CHL1的完成被GQO響應於接收新數據而接收才開始。因此,實施了在更新標誌值之前更新歸屬節點CHL1處的數據的存儲器排序,這導致向消費者IOH提供準確/有效的新數據。
轉到圖6c,其示出了採用包括對數據的寫回的寫回階段的協議圖的另一實施例。這裡,寫回階段類似於圖6a的寫回階段;不過,該寫回階段稍後才執行。而且,這裡代替採用RspIWb和WbIDataPtl消息(如圖4a所示),
24採用了 WbMtoI和WbiDataPtl消息來將數據寫回。換言之,在衝突階段採 用了寫回階段代替響應階段,該寫回階段在GQO移至標誌事務之前要求來 自歸屬節點CHL1的完成消息,而不是如圖4a那樣在沒有來自歸屬節點 CHL1的完成的情況下簡單地將數據轉發至GQ0。
參考圖7a,示出了採用用於數據寫回的可發布寫消息的協議圖的實施 例。這裡,該流程與圖6c的流程極其相似。然而,注意,採用了 RspIWbPost(D) 標記消息代替WbMtoI標記消息。因此,在一個實施例中,由RspIWbPost 啟動的階段被稱為響應階段。不過,注意RspIWbPost的功能,其直到在 GQ0處從歸屬節點CHL1接收到完成信號才如正確地響應一樣解除分配 GQ0。如可以看出的,在操作中,RspIWbPost與來自圖4a的RspIWb相比 更類似於來自圖6c的WbMtoI,這表現在GQ0在GQ0能移至標誌事務之 前等待來自歸屬節點CHL1的完成,而在圖4a中GQO在移至標誌事務之 前不等待完成。換言之,RsplWbPost指示"可發布寫",以使發送RsplWbPost 的節點,即GQO在被解除分配之前等待完成。因此,在一個實施例中,對 RspIWbPost的利用被稱為寫回階段。
同樣,圖7b示出了釆用用於數據寫回的可發布寫消息的協議圖的另一 實施例。這裡,注意"可發布寫"可由數據消息WbIDataPtlPost而不是標記 消息RspIWb指示。而且,如圖7c所示,可採用單獨的消息WbPost來指 示RspIWb禾B WbIDataPtl,在一個實施例中,他們是寫回階段的一部分, 其中GQ0直到響應於將部分數據提交給存儲器接收到來自歸屬節點CHL1 的完成才被解除分配。
如從上述可見的,在一個實施例中,在衝突階段執行寫回階段、插入 寫回階段、為寫回階段生成消息或啟動寫回階段可能具有與衝突階段的不 同的時間關係。在一個實施例中,在衝突階段的寫回階段包括在衝突階段 的開始,諸如與寫回標記消息組合的確認衝突消息,即AckCnfltWbi(D)。 在另一實施例中,在衝突階段的寫回階段包括在衝突階段之前,諸如在 Gnt—FrcAckCnflt之後和AckCnflt消息之前,即與圖6a和6b有關的討論。 在又一實施例中,在衝突階段的寫回階段包括在衝突階段之後,諸如在 AckCnflt和Cmp一FwdCode消息之後,即與圖6a到圖7c有關的討論。而且,在一個實施例中,寫回階段指的是諸如AckCnfltWbI、 WbMtoI、 以及WbiDataPtl之類的寫回消息。在另一實施例中,寫回階段還包括諸如 RspIWbPost、 WbIDataPtlPost以及WbPost之類的模擬寫回功能的響應相關 消息。作為一個示例,模擬寫回階段的功能包括不對發送代理解除分配, 或發送代理等待直到接收到寫回的完成消息。
因此,如從以上可看出的,當進行部分存儲器存取和非監聽/非一致性 存取、甚至當檢測到衝突時,可實施存儲器排序。因此,在諸如當第一代 理等待來自第二代理(其設置一標誌以指示數據被讀取)的數據之類的情 況下,正確的存儲器排序的實施確保提供有效/新數據而非不一致的無效數 據。
在此處使用的模塊指的是任何硬體、軟體、固件、或它們的組合。通 常被示為分開的模塊邊界一般不同而且有可能重疊。例如,第一和第二模 塊可共享硬體、軟體、固件、或它們的組合,同時可能保留某些獨立的硬
件、軟體或固件。在一個實施例中,術語"邏輯"的使用包括諸如電晶體、 寄存器之類的硬體或諸如可編程邏輯器件之類的其它硬體。然而,在另一 實施例中,邏輯還包括諸如固件或微碼之類的與硬體集成的軟體或代碼。
如在本文中所使用的值包括數字、狀態、邏輯狀態、或二進位邏輯狀 態的任何已知表示。通常,邏輯電平、邏輯值、或多個邏輯值的使用也被 稱為1和0,這簡單地表示了二進位邏輯狀態。例如,1指的是邏輯高電平, O指的是邏輯低電平。在一個實施例中,諸如電晶體或快閃記憶體單元之類的存儲 單元能夠保持單個邏輯值或多個邏輯值。不過,使用了計算機系統中的值 的其它表示。例如,十進位數字10也可被表示為二進位值1010和十六進 制字母A。因此,值包括能保持在計算機系統中的信息的任何表示。
而且,狀態也可由值或值的部分來表示。作為一個示例,諸如邏輯1 之類的第一值可表示默認或初始狀態,而諸如邏輯0之類的第二值可表示 非默認狀態。此外,在一個實施例中,術語重置和設置分別指的是默認和 已更新的值或狀態。例如,默認值可能包括高邏輯值,即重置,而已更新 的值可能包括低邏輯值,即設置。注意,值的任何組合可用來表示任意數 量的狀態。
26上述方法、硬體、軟體、固件或代碼的實施例可通過存儲在機器可存 取或機器可讀介質上可由處理元件執行的指令或代碼來實現。機器可存取/ 可讀介質包括提供(即存儲和/或發送)諸如計算機或電子系統之類的機器 可讀的形式的信息的任何介質。例如,機器可存取介質包括諸如靜態RAM
(SRAM)或動態RAM (DRAM)之類的隨機存取存儲器(RAM) ; ROM; 磁或光存儲介質;快閃記憶體設備;電存儲設備、光存儲設備、聲存儲設備或其 它形式的傳播信號(例如載波、紅外信號、數位訊號)存儲設備;等等。 例如,機器可通過從能保持要在傳播信號上發送的信息的介質接收諸如載 波之類的傳播信號來存取存儲設備。
在本說明書通篇中對"一個實施例"或"實施例"的引用意味著結合該實 施例描述的特定特徵、結構或特性包括在本發明的至少一個實施例中。因 此,在本說明書通篇中的多個位置中短語"在一個實施例中"或"在實施例中" 的出現不一定指的是同一實施例。而且,特定特徵、結構、或特性可按照 任何合適的方式在一個或多個實施例中組合。
在上述說明書中,已經參考特定示例性實施例給出了詳細描述。然而, 和明顯,在不背離如所附權利要求所述的本發明的更寬泛精神和範圍的情 況下,可對這些實施例作出各種修改和改變。因此,說明書和附圖應被認 為是說明性而非限制性意義。而且,實施例和其它示例性語言的上述使用 不一定指的是同一實施例或同一示例,而可能指的是不同和獨特的實施例, 也有可能是同一實施例。
2權利要求
1.一種裝置,包括第一邏輯,用來執行部分寫以更新部分數據;第二邏輯,用來響應於接收到與所述部分數據相關聯的衝突消息在衝突階段啟動寫回階段,其中所述寫回階段用來將所述部分數據提供給與所述部分數據相關聯的歸屬代理;以及耦合至所述第二邏輯的第三邏輯,用來在所述寫回階段期間將所述部分數據提供給所述歸屬代理。
2. 如權利要求1所述的裝置,其特徵在於,所述第一和第二邏輯是與互連 架構分層棧的物理層相關聯的協議邏輯,而且其中所述第三邏輯包括與所述互 連架構分層棧的物理層相關聯的物理邏輯。
3. 如權利要求1所述的裝置,其特徵在於,所述在衝突階段啟動寫回階段 的第二邏輯包括生成確認衝突和寫回消息的所述第二邏輯。
4. 如權利要求3所述的裝置,其特徵在於,所述響應於接收到與所述部分 數據相關聯的衝突消息來生成確認衝突和寫回消息的第二邏輯包括響應於接 收到來自所述歸屬代理的強制確認衝突消息來生成所述確認衝突和寫回消息 的所述第二邏輯。
5. 如權利要求4所述的裝置,其特徵在於,所述確認衝突和寫回消息包括 確認衝突寫回無效(AckCnfltWbl)消息,而來自所述歸屬代理的所述強制確 認衝突消息包括授權強制確認衝突(Gnt—FrcAckCnflt)消息。
6. 如權利要求1所述的裝置,其特徵在於,所述響應於接收到與所述部分 數據相關聯的衝突消息在衝突階段啟動寫回階段的第二邏輯包括響應於接收 到與所述部分數據相關聯的衝突消息來生成寫回標記消息和寫回數據消息的 所述第二邏輯。
7. 如權利要求6所述的裝置,其特徵在於,所述寫回標記消息包括寫回修 改到無效(WbMtoI)標記消息,所述寫回數據消息包括寫回部分無效數據(WbIDataPartial )消息,以及所述衝突消息包括授權強制確認衝突 (Gnt—FrcAckCnflt)消息。
8. 如權利要求7所述的裝置,其特徵在於,所述衝突消息從包括以下消息的組中選擇授權強制確認衝突(Gnt—FrcAckCnflt)消息;確認衝突(AckCnflt) 消息;以及完成轉發代碼(Cmp一FwdCode)消息。
9. 如權利要求1所述的裝置,其特徵在於,所述響應於接收到與所述部分 數據相關聯的衝突消息在衝突階段啟動寫回階段的第二邏輯包括響應於接收 到與所述部分數據相關聯的衝突消息來生成可發布寫回消息的所述第二邏輯。
10. 如權利要求9所述的裝置,其特徵在於,所述可發布寫回消息包括 從包括響應無效寫回可發布(RspIWbPost)消息、寫回部分無效數據可發布(WbIDataPost)消息、以及寫回可發布(WbPost)消息的組中選擇的消息, 而且其中所述衝突消息從包括以下消息的組中選擇授權強制確認衝突 (Gnt—FrcAckCnflt)消息;確認衝突(AckCnflt)消息;以及完成轉發代碼 (Cmp—FwdCode)消息。
11. 一種裝置,包括包括高速緩存線的高速緩衝存儲器;耦合至所述高速緩衝存儲器的第一邏輯,用來對所述高速緩存線執行部分 數據的部分寫;第二邏輯,用來接收來自與所述部分數據相關聯的歸屬節點的衝突消息; 耦合至所述第二邏輯的第三邏輯,用來生成一組合消息,所述組合消息向 所述歸屬節點表明對所述衝突消息的確認、且表明所述部分數據將響應於所述 第一邏輯執行所述部分數據的部分寫和所述第二邏輯接收所述衝突消息而在 數據消息中被發送;以及耦合至所述第三邏輯的第四邏輯,用來將所述組合消息發送至所述歸屬節點。
12. 如權利要求11所述的裝置,其特徵在於,所述組合消息包括確認 衝突寫回(AckCnfltWb)消息。
13. 如權利要求12所述的裝置,其特徵在於,所述衝突消息包括強制 確認衝突(FrcAckCnflt)消息。
14. 如權利要求12所述的裝置,其特徵在於,所述第三邏輯在啟動後 續事務之前等待來自與所述AckCnltWb消息和所述數據消息相關聯的所述歸屬節點的完成消息。
15. 如權利要求14所述的裝置,其特徵在於,所述完成消息包括完成轉發代碼(Cmp—FwdCode)消息。
16. 如權利要求11所述的裝置,其特徵在於,所述第二邏輯和所述第 四邏輯與互連分層棧的物理層邏輯相關聯,而且所述第三邏輯與所述互連分層 棧的協議層邏輯相關聯。
17. —種系統,包括包括第一邏輯的對等節點,所述第一邏輯響應於接收到來自與部分數據相 關聯的歸屬節點的衝突消息和所述對等節點執行對所述部分數據的部分寫來 生成寫回消息以在衝突階段啟動寫回階段;其中所述歸屬節點通過點對點鏈路耦合至所述第一對等節點,所述歸屬節 點包括第二邏輯,所述第二邏輯響應於在所述寫回階段期間接收到來自所述對 等節點的所述部分數據在所述衝突階段生成所述寫回階段的完成消息。
18. 如權利要求17所述的系統,其特徵在於,所述寫回消息從包括確 認衝突寫回消息、寫回至無效消息、響應寫回可發布消息、寫回部分數據可發 布消息、以及寫回可發布消息的組中選擇。
19. 如權利要求17所述的系統,其特徵在於,所述第一邏輯包括實現 互連架構一致性協議的協議邏輯,而且其中所述第二邏輯包括實現所述互連架 構一致性協議的協議邏輯。
20. 如權利要求17所述的系統,其特徵在於,所述對等節點中包括的 所述第一邏輯在啟動後續的寫事務之前等待直到接收到來自所述歸屬節點的 所述寫回階段的所述完成消息。
21. 如權利要求20所述的系統,其特徵在於,所述後續寫事務包括更 新被設置以向第二節點表明所述部分數據準備好被取回的標誌,其中所述第二 節點執行對所述標誌的非監聽讀,而且所述第二節點響應於所述標誌被設置來 執行從所述歸屬節點對所述部分數據的第二非監聽讀。
22. —種方法,包括在對等高速緩存代理中將部分數據更新為新的部分數據; 利用與所述部分數據相關聯的所述對等高速緩存代理接收衝突消息;響應於利用所述對等高速緩存代理接收所述衝突消息生成向歸屬代理表 明所述新的部分數據將被寫回所述歸屬代理的寫回消息;以及在所述歸屬代理接收到來自所述對等高速緩存代理的新的部分數據之後, 利用所述對等高速緩存代理來接收來自所述歸屬代理的完成消息。
23. 如權利要求22所述的方法,其特徵在於,還包括在將所述部分 數據更新為所述新的部分數據之前,響應於所述部分數據在所述對等高速緩存 代理中被保持於修改狀態將所述部分數據寫回所述歸屬代理,其中將所述部分 數據更新為新的部分數據在接收到所述衝突消息之前發生。
24. 如權利要求22所述的方法,其特徵在於,在所述對等高速緩存代 理中將所述部分數據更新為所述新的部分數據在接收到所述衝突消息之後發 生。
25. 如權利要求22所述的方法,其特徵在於,還包括 響應於在所述歸屬代理處接收響應衝突消息利用所述歸屬代理生成所述衝突消息;利用所述歸屬代理接收來自所述對等高速緩存代理的所述新的部分數據; 將所述新的部分數據提交至與所述歸屬節點相關聯的存儲器;以及 響應於利用所述歸屬代理接收所述新的部分數據以及將所述新的部分數據提交至與所述歸屬代理相關聯的存儲器,利用所述歸屬代理生成所述完成消息。
26. 如權利要求25所述的方法,其特徵在於,還包括 在接收到來自所述歸屬代理的完成消息之後利用所述對等代理寫標誌以設置所述標誌;利用第二對等代理執行對所述標誌的非一致性讀;響應於所述標誌在所述第二對等代理對所述標誌的非一致性讀時被設置, 利用所述第二對等代理執行對來自所述歸屬代理的新的部分數據的非一致性 讀。
27. 如權利要求17所述的系統,其特徵在於,所述寫回消息從包括確 認衝突寫回消息、寫回至無效消息、響應寫回可發布消息、寫回數據部分可發 布消息、以及寫回可發布消息的組中選擇。
28. 如權利要求27所述的系統,其特徵在於,所述衝突消息包括強制 確認衝突消息,而且其中所述完成消息是完成消息或完成轉發代碼消息。
全文摘要
此處描述了根據部分和非一致性存儲器存取來保持基於高速緩存一致性鏈路的互連中的存儲器排序的方法和裝置。在一個實施例中,當檢測到諸如部分寫之類的與部分存儲器存取相關聯的衝突時,在衝突階段處插入寫回階段以將該部分數據寫回歸屬代理。用來在衝突階段啟動寫回階段的示例消息包括用來在衝突階段的開始確認衝突並提供寫回標記的確認衝突寫回消息;衝突階段之前的寫回標記消息;衝突階段內的寫回標記消息;衝突階段之後的寫回標記消息;以及衝突階段之後的可發布消息。
文檔編號G06F12/08GK101625664SQ200910159840
公開日2010年1月13日 申請日期2009年7月7日 優先權日2008年7月7日
發明者C-T·周, R·H·比爾斯, R·J·薩弗蘭克 申請人:英特爾公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀