TWI463318B - 快取一致性處理系統、快取記憶體,及其方法 - Google Patents
快取一致性處理系統、快取記憶體,及其方法 Download PDFInfo
- Publication number
- TWI463318B TWI463318B TW096109587A TW96109587A TWI463318B TW I463318 B TWI463318 B TW I463318B TW 096109587 A TW096109587 A TW 096109587A TW 96109587 A TW96109587 A TW 96109587A TW I463318 B TWI463318 B TW I463318B
- Authority
- TW
- Taiwan
- Prior art keywords
- consistency
- cache
- data
- block
- dedicated access
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/507—Control mechanisms for virtual memory, cache or TLB using speculative control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明一般有關資料處理,尤其有關快取一致性資料處理系統的資料處理。
習用的對稱式多處理器(symmetric multiprocessor,SMP)電腦系統(如伺服器電腦系統)包括多個處理單元,其全部耦合至通常包含一或多個位址、資料、及控制匯流排的系統互連。亦耦合至系統互連的是系統記憶體,其代表多處理器電腦系統中揮發性記憶體的最低階,且其一般可讓所有處理單元存取以進行讀取及寫入存取。為了降低駐存於系統記憶體之指令及資料的存取延遲,通常另外由相應的多階快取階層支援各處理單元,且一或多個處理器核心可共用多階快取階層的低階。
由於多個處理器核心可請求對相同資料快取線的寫入存取,且由於修改的快取線和系統記憶體並非即時同步,因此多處理器電腦系統的快取階層通常建置快取一致性協定,以在系統記憶體內容的處理器核心「觀點」中確保至少最低階的一致性。尤其,快取一致性至少要求在處理單元存取記憶體區塊的複製及其後存取記憶體區塊的更新複製後,處理單元無法再次存取記憶體區塊的舊複製。
快取一致性協定一般定義一組結合各快取階層之快取線所儲存的一致性狀態,及一組用以在快取階層之間傳達快取狀態資訊的一致性訊息。在典型的建置中,一致性狀態資訊採取熟知的MESI(修改、專用、共用、無效[Modified,Exclusive,Shared,Invalid])協定或其改編的形式,及一致性訊息指示在記憶體存取請求之請求者及/或接收者之快取階層中,以協定定義的一致性狀態轉變。
在一些快取一致性協定中,以不精確的方式形成及/或更新一或多個一致性狀態以回應後續操作。因此,這些一致性狀態無法準確地反映相關聯之記憶體區塊的整個系統一致性狀態。本發明認定,不精確或不準確一致性狀態的存在即使並未造成一致性錯誤,亦可在減少或消除不精確一致性狀態的情況下導致執行不需要的系統操作。
有鑑於上述,本發明提供一種改良的快取一致性資料處理系統、快取系統、及快取一致性資料處理系統之資料處理的方法。
在一具體實施例中,一種快取一致性資料處理系統包括至少第一及第二一致性定義域。在資料處理系統之第一一致性定義域的第一快取記憶體中,將與儲存位置及位址標籤相關聯的一致性狀態欄位設定為第一資料-無效一致性狀態,其指示位址標籤有效且儲存位置不含有效資料。回應監視專用存取操作,專用存取請求指定匹配位址標籤的目標位址並指示啟始專用存取操作之請求者的相對位置,第一快取記憶體將一致性狀態欄位自第一資料-無效一致性狀態更新為第二資料-無效一致性狀態,其指示位址標籤有效、儲存位置不含有效資料、及與位址標籤相關聯的目標記憶體區塊在基於請求者的相對位置成功完成專用存取操作後是否在第一一致性定義域內受到快取。藉由更新資料-無效一致性狀態,可提高資料-無效一致性狀態提供之提示資訊的精確性,因而改良後續資料存取操作之廣播範圍的選擇。
參考以下所述詳細說明,將可瞭解本發明的所有目的、特色、及優點。
參考圖式,尤其參考圖1,其中顯示本發明之快取一致性對稱式多處理器(SMP)資料處理系統之示範性具體實施例的高階方塊圖。如圖所示,資料處理系統100包括處理資料及指令的多個處理節點102a、102b。處理節點102a、102b係耦合至系統互連110,以傳達位址、資料、及控制資訊。例如,可將系統互連110建置為以匯流排連接的互連、交換式互連或混合互連。
在所示的具體實施例中,將各處理節點102實現為含有四個處理單元104a-104d的多晶片模組(multi-chip module,MCM),較佳是將各處理單元實現為個別的積體電路。由區域(local)互連114耦合各處理節點102內的處理單元104a-104d以進行通信,這和系統互連110一樣,可以一或多個匯流排及/或交換器實施區域互連。
耦合至各區域互連114的裝置不僅包括處理單元104,還包括一或多個系統記憶體108a-108d。在資料處理系統100的任何處理節點102中,一般可由任何處理單元104的處理器核心存取及修改駐存於系統記憶體108的資料及指令。在本發明的替代性具體實施例中,可將一或多個系統記憶體108耦合至系統互連110,而非耦合至區域互連114。
熟習本技術者應明白,SMP資料處理系統100可包括許多未顯示的額外組件,如互連橋接器、非揮發性儲存裝置、連接至網路或連接裝置的連接埠等。由於此類額外組件非瞭解本發明所必需,因此未在圖1顯示或在此進一步加以說明。然而,應明白,可將本發明所提供的重點項目應用於不同架構的快取一致性資料處理系統,因此絕不限於圖1所示的一般資料處理系統架構。
參考圖2,其中描繪本發明之示範性處理單元104的細部方塊圖。在所示的具體實施例中,各處理單元104包括兩個獨立處理指令及資料的處理器核心200a、200b。各處理器核心200包括:至少一提取(fetching)及排序(ordering)執行指令的指令定序單元(instruction sequencing unit,ISU)208,及一或多個執行指令的執行單元224。如以下進一步說明,執行單元224較佳是包括載入-儲存單元(load-store unit,LSU)228,其用於執行參照記憶體區塊或導致產生參照記憶體區塊之操作的記憶體存取指令。
各處理器核心200的操作由多階揮發性記憶體階層來支援,多階揮發性記憶體階層在其最低階有共用的系統記憶體108a-108d及在其較高階有一或多階的快取記憶體。在所示的具體實施例中,各處理單元104包括整合記憶體控制器(integrated memory controller,IMC)206,其在其處理節點102內控制系統記憶體108a-108d之個別系統記憶體之讀取及寫入的存取,以回應自處理器核心200a-200b接收的請求及由區域互連114上之監視程式(S)222所監視的操作。IMC 206包括基底位址暫存器(base address register,BAR)邏輯240,BAR邏輯240包括範圍暫存器(range register),該範圍暫存器定義IMC 206負責的位址。
在解說性具體實施例中,處理單元104的快取記憶體階層包括在各處理器核心200內的儲存通過一階(level one,L1)快取226及由處理單元104之所有處理器核心200a、200b共用的二階(L2)快取230。L2快取230包括L2陣列及目錄234及包含主控器232及監視程式236的快取控制器。主控器232啟始區域互連114及系統互連110上的異動,並回應自相關聯之處理器核心200a-200b接收的記憶體存取(及其他)請求而存取L2陣列及目錄234。監視程式236監視區域互連114的操作、提供適當回應、及執行操作所需之L2陣列及目錄234的任何存取。
雖然所示的快取階層僅包括二階快取,但熟習本技術者應明白,替代性具體實施例可包括晶片上或晶片外單列或前瞻快取的額外階級(L3、L4、L5等),其可完全包含、局部包含或不包含較高階快取的內容。
各處理單元104進一步包括回應邏輯210的執行個體(instance),其建置分散式一致性發信機制的一部分,以維持資料處理系統100內的快取一致性。此外,各處理單元104包括互連邏輯212的執行個體,以選擇性轉送(forwarding)其區域互連114及系統互連110間的通信。最後,各處理單元104包括支援連接一或多個I/O裝置(如I/O裝置216)的整合I/O(輸入/輸出)控制器214。I/O控制器214可在區域互連114及/或系統互連110上發出操作以回應I/O裝置216的請求。
參考圖3,其中顯示L2陣列及目錄234之示範性具體實施例的細部方塊圖。如圖所示,L2陣列及目錄234包括集合相聯L2快取陣列300及L2快取陣列300之內容的L2快取目錄302。如在習用的集合相聯快取中,系統記憶體108的記憶體位置係利用系統記憶體(真實)位址內的預定索引位元而對應到快取陣列300內的特定全等(congruence)類別。快取陣列300內儲存的特定快取線係記錄於快取目錄302中,快取目錄302含有快取陣列300中各快取線的一個目錄項目。如熟習本技術者所明白,快取目錄302中的各目錄項目包含:至少一標籤欄位304,其利用對應之真實位址的標籤部分指定儲存於快取陣列300的特定快取線;狀態欄位306,其指示快取線的一致性狀態;及LRU(最近最少使用)欄位308,其指示相同全等類別中相對於其他快取線之快取線的取代順序。
參考圖4,其中描繪圖1資料處理系統100之區域互連114或系統互連110之示範性操作的時空圖。操作始於L2快取230的主控器232(或其他主控器,如I/O控制器214)在區域互連114及/或系統互連110上發出請求402時。請求402較佳是包括指示所需存取類型的異動類型及指示將由請求存取之資源的資源識別碼(如,真實位址)。一般的請求類型較佳是包括以下表I所提出的類型。
由L2快取230的監視程式236及記憶體控制器206的監視程式222(圖2)接收請求402。一般而言(但存在一些例外),如同請求402的主控器232,在相同L2快取230中的監視程式236不會監視請求402(即,一般並無自我監視),因為唯有在處理單元104無法在內部伺服請求402時,才在區域互連114及/或系統互連110上傳輸請求402。接收請求402的各監視程式222、236提供相應的局部回應406,以代表至少該監視程式對請求402的回應。記憶體控制器206內的監視程式222根據以下項目決定提供的局部回應406,如:監視程式222是否對請求位址有責任及其是否具有可供伺服請求的資源。L2快取230的監視程式236可根據以下項目決定其局部回應406,如:其L2快取目錄302的可用性、監視程式236內之監視邏輯執行個體處理請求的可用性、及L2快取目錄302中和請求位址相關聯的一致性狀態。
監視程式222及236的局部回應在邏輯上不是由回應邏輯210的一或多個執行個體按階段結合就是全部一次結合,以決定整個系統上對請求402的結合回應(CR)410。由於以下討論的範圍限制,回應邏輯210將經由其區域互連114及/或系統互連110提供結合回應410給主控器232及監視程式222、236,以指示整個系統上對請求402的回應(如,成功、失敗、重試等)。如果CR 410指示請求402成功,則CR 410將指示如:所請求記憶體區塊的資料來源、由主控器232快取所請求記憶體區塊的快取狀態、及是否需要在一或多個L2快取230中使所請求記憶體區塊變成無效的「清理(clean up)」(如,清除[KILL])操作。
回應接收結合回應410,一或多個主控器232及監視程式222、236通常執行一或多個操作以伺服請求402。這些操作包括:供應資料給主控器232;使在一或多個L2快取230中快取之資料的一致性狀態變成無效或以其他方式對其進行更新;執行逐出操作;寫回資料至系統記憶體108等。如果請求402要求,將在回應邏輯210產生結合回應410的前後,在主控器232之間傳輸所請求的記憶體區塊或目標記憶體區塊。
在以下說明中,將參考該監視程式相對於請求所指定的請求位址是否是一致性最高點(Highest Point of Coherency,HPC)、一致性最低點(Lowest Point of Coherency,LPC)、或二者皆非,說明監視程式222、236對請求的局部回應及監視程式回應請求及/或其結合回應而執行的操作。本文將LPC定義為記憶體裝置或I/O裝置,其可作為記憶體區塊之儲存機制的控制點。在沒有記憶體區塊之HPC的情況下,LPC控制對保有記憶體區塊之真實映像的儲存裝置的存取並具有同意或拒絕產生記憶體區塊之附加快取複製之請求的權限。對於圖1及2之資料處理系統具體實施例的典型請求,LPC係為保有參照記憶體區塊之系統記憶體108的記憶體控制器206。本文將HPC定義為唯一識別裝置如下:快取記憶體區塊的真實映像(可以和LPC對應的記憶體區塊一致或不一致)且具有同意或拒絕修改記憶體區塊之請求的權限。在說明上,HPC亦可提供記憶體區塊的複製給請求者,以回應不修改記憶體區塊的操作。因此,對於圖1及2之資料處理系統具體實施例的典型請求,HPC(如果有的話)係為L2快取230。雖然可以利用其他指示符(indicators)指定記憶體區塊的HPC,但本發明的較佳具體實施例利用L2快取230之L2快取目錄302內選定的快取一致性狀態,指定記憶體區塊的HPC(如果有的話),如以下進一步參考表II所述。
仍然參考圖4,在請求402中參照之記憶體區塊的HPC(如果有的話)或在沒有HPC的情況下,記憶體區塊的LPC較佳是回應請求402而在保護窗404a期間具有保護傳送記憶體區塊之所有權的責任。在圖4所示的示範性情況中,監視程式236(為請求402之請求位址所指定之記憶體區塊的HPC)在從監視程式236決定其局部回應406時延伸至監視程式236接收結合回應410的保護窗404a期間,保護傳送所請求記憶體區塊的所有權至主控器232。在保護窗404a期間,監視程式236藉由以下方式保護傳送所有權:提供局部回應406給指定相同請求位址的其他請求,以防止其他主控器在將所有權成功傳送至主控器232之前得到所有權。主控器232同樣地啟始保護窗404b以在接收結合回應410後,保護其在請求402中所請求之記憶體區塊的所有權。
由於監視程式222、236均具有處理上述CPU及I/O請求的有限資源,若干不同階級的局部回應及對應的CR均有可能。例如,如果記憶體控制器206內對所請求記憶體區塊有責任的監視程式222具有可供處理請求的佇列,監視程式222將以指示其可用作請求之LPC的局部回應來回應。另一方面,如果監視程式222沒有可供處理請求的佇列,監視程式222將以指示其為記憶體區塊之LPC但目前無法伺服請求的局部回應來回應。
類似地,L2快取230的監視程式236需要監視邏輯的可用執行個體及存取L2快取目錄302以處理請求。對於這些資源的任一項(或二者)沒有存取權限將造成因缺少所需資源而發信目前無法伺服請求的局部回應(及對應的CR)。
下文中,視需要,將提供指示監視程式具有目前伺服請求所需的可用全部內部資源之局部回應的監視程式222、236說是「確認」請求。對於監視程式236,確認監視操作的局部回應較佳是指示監視程式236之所請求記憶體區塊或目標記憶體區塊的快取狀態。提供局部回應指示監視程式236沒有目前伺服請求所需之所有可用內部資源的監視程式222、236可說是「可能隱藏」或「無法」伺服請求。此類監視程式236為「可能隱藏」或「無法」伺服請求是因為就上述定義的意義而言,監視程式236由於缺少監視邏輯的可用執行個體或目前缺少對於L2快取目錄302的存取權限而無法「確認」請求,且就其他主控器232及監視程式222、236的觀點來看,具有未知的一致性狀態。
習用之廣播式資料處理系統透過廣播通信處理快取一致性及資料傳遞,這在習用的系統中係在系統互連上傳輸至系統中至少所有記憶體控制器及快取階層。和替代性架構及類似規模的系統相比,廣播式系統傾向於提供降低的存取延遲及較佳的資料處理和對共用記憶體區塊的一致性管理。
由於廣播式系統的大小規模,使得系統互連上的流量增加,也就是說隨著系統互連上的通信需要更多頻寬,系統成本隨著系統規模明顯上升。也就是說,具有各含n個異動之平均流量之m個處理器核心的系統具有m x n的流量,也就是說廣播式系統的流量按倍數(multiplicatively)成長而非按加總(additively)成長。除了實質上較大互連頻寬的需求之外,系統大小的增加是增加部分存取延遲的次要影響。例如,最糟的情況是,讀取資料的存取延遲受到以下限制:保有共用一致性狀態之所請求記憶體區塊(從中可提供所請求資料的來源)之最遠低階快取的結合回應延遲。
為了減少系統互連頻寬需求與存取延遲,同時仍能維持廣播式系統的優點,將允許分散於資料處理系統100中的多個L2快取230保有「特殊」共用一致性狀態之相同記憶體區塊的複製,以允許這些快取使用快取與快取間的干預將記憶體區塊供應至請求的L2快取230。為了在SMP資料處理系統(如資料處理系統100)中,對共用的記憶體區塊建置多個同時發生及散布的來源,必須解決兩個議題。第一,必須建置在上文略為提及之「特殊」共用一致性狀態中掌控記憶體區塊複製之建立的一些規則。第二,必須有一個規則掌控哪個監視的L2快取230(如果有的話)提供共用記憶體區塊給請求的L2快取230,例如以回應匯流排讀取操作或匯流排「RWITM」操作。
根據本發明,可藉由建置資料來源定義域來解決這兩個議題。尤其,允許在SMP資料處理系統內的各定義域(其中定義域經定義包括一或多個參與回應資料請求的低階(如,L2)快取)只包括一次保存「特殊」共用一致性狀態之一個特定記憶體區塊的一個快取階層。該快取階層若在相同定義域中由請求的低階快取啟始匯流排讀取型(如,「讀取」或「RWITM」)操作時存在的話,則負責將所請求記憶體區塊的來源提供給請求的低階快取。在圖1的資料處理系統100中,雖然可定義許多不同的定義域大小,但如果將各處理節點102(即,MCM)視為資料來源定義域會比較方便。以下將參考表II說明一個此類「特殊」共用狀態(即,Sr)的範例。
雖然建置上述資料傳遞定義域改良了資料存取延遲,但此改良並未解決流量隨著系統規模增加的m x n倍數成長。為了降低流量同時仍然維持廣播式一致性機制,本發明的較佳具體實施例另外建置一致性定義域,其如同上述的資料傳遞定義域,能夠便利地(但不一定要)以形成個別一致性定義域的各處理節點102來建置。資料傳遞定義域及一致性定義域可以(但不一定要)共同擴充,且為了說明資料處理系統100的示範性操作,在下文將假設其具有由處理節點102所定義的邊界。
在可以少於所有一致性定義域的參與來伺服請求的情況中,建置一致性定義域將藉由在系統互連110上限制定義域間廣播通信來降低系統流量。例如,如果處理節點102a的處理單元104a具有要發出的匯流排讀取操作,則處理單元104a可選擇先將匯流排讀取操作廣播至其本身一致性定義域(如,處理節點102a)內的所有參與者,而不廣播至其他一致性定義域(如,處理節點102b)的參與者。本文將傳輸至僅操作之主控器的相同一致性定義內之參與者的廣播操作定義為「區域操作」。如果可在處理單元104a的一致性定義域內伺服區域匯流排讀取操作,則不必執行匯流排讀取操作的進一步廣播。然而,如果區域匯流排讀取操作的局部回應及結合回應指示無法在處理節點102a的一致性定義域內單獨伺服匯流排讀取操作,則除了區域一致性定義域以外,可擴充廣播的範圍包括一或多個額外的一致性定義域。
在基本的建置中,採用兩個廣播範圍:只包括區域一致性定義域的「區域」範圍及包括SMP資料處理系統中所有其他一致性定義域的「全域(global)」範圍。因此,本文將傳輸給SMP資料處理系統中所有一致性定義域的操作定義為「全域操作」。重要的是,無論是採用區域操作或更廣範圍的操作(如,全域操作)來伺服操作,均在SMP資料處理系統的所有一致性定義域上維持快取一致性。區域及全域操作的範例係詳細說明於美國專利申請案第11/055,305號,其全文以引用方式併入本文。
在較佳具體實施例中,由區域/全域範圍指示符(信號)指示匯流排操作中的操作範圍,該指示符在一項具體實施例中包含1位元旗標(flag)。在處理單元104內轉送邏輯212較佳是決定是否要基於操作中區域/全域範圍指示符(信號)的設定,將經由區域互連114接收的操作轉送至系統互連110。
在本說明中,如果一致性定義域(或處理節點)含有記憶體區塊的LPC,一致性定義域是指記憶體區塊的「本地(home)」一致性定義域(或「本地」節點)。
為了限制不必要之區域操作的發出及從而降低操作延遲並節省區域互連的附加頻寬,本發明較佳是根據記憶體區塊建置定義域指示符,以指示是否從區域一致性定義域外部快取相關聯之記憶體區塊的複製。例如,圖5描繪本發明之定義域指示符的第一示範性建置。如圖5所示,可在動態隨機存取記憶體(DRAM)中建置的系統記憶體108儲存複數個記憶體區塊500。系統記憶體108結合各記憶體區塊500儲存用以在記憶體區塊500及定義域指示符504中校正錯誤(如果有的話)之相關聯的錯誤校正碼(ECC)502。儘管在本發明的一些具體實施例中,定義域指示符504可識別特定的一致性定義域(即,指定一致性定義域或節點ID),但在下文將假設定義域指示符504是快取相關聯的記憶體區塊500(若快取,則僅在與當作記憶體區塊500之LPC之記憶體控制器206的相同一致性定義域內)時所設定(如,設定為’1’以指示「區域」)的1位元指示符。否則,重設定義域指示符504(如,重設為’0’以指示「全域」)。可以不精確的方式建置指示「區域」之定義域指示符504的設定,因「全域」的錯誤設定並不會引起任何一致性錯誤,只是可能造成操作之不必要的全域廣播。
回應操作而提供記憶體區塊之來源的記憶體控制器206(及L2快取230)較佳是結合所請求的記憶體區塊來傳輸相關聯的定義域指示符504。
本發明較佳是建置經設計可運用建置上述資料傳遞定義域及一致性定義域的快取一致性協定。在較佳具體實施例中,除了提供(1)快取是否是記憶體區塊之HPC的指示之外,協定內的快取一致性狀態亦指示(2)所快取的複製在該記憶體階層階級的快取中是否是唯一的(即,在整個系統上是唯一所快取的複製),(3)快取是否及何時可以將記憶體區塊的複製提供給請求記憶體區塊的主控器,(4)所快取之記憶體區塊的映像是否和LPC之對應的記憶體區塊(系統記憶體)一致,及(5)遠端一致性定義域的另一個快取是否(可能)保有具有匹配位址的快取項目。這五個特性可以下列表II所總結之熟知MESI(修改、專用、共用、無效)協定的示範性改編形式來表示。
為了避免必須存取LPC以決定是否已知要快取(如果要快取,則僅在區域進行)記憶體區塊,利用Ig(無效全域)一致性狀態在沒有任何記憶體區塊複製在一致性定義域中維持快取的情況下維持定義域指示。本文將Ig狀態定義為指示以下項目的快取一致性狀態:(1)快取陣列之相關聯的記憶體區塊無效,(2)快取目錄的位址標籤有效,及(3)可能在本地一致性定義域以外的一致性定義域中快取以位址標籤識別之記憶體區塊的複製。Ig指示較佳是不精確,也就是說在不違反一致性的情況下可能不準確。
Ig狀態係形成於本地一致性定義域的低階快取中,以回應另一一致性定義域中回應專用存取請求(如,匯流排「RWITM」操作)而提供所請求的記憶體區塊給請求者的該快取。
由於包括Ig狀態的快取目錄項目負有可能的有用資訊,因此在至少一些建置中需要比I狀態的項目優先保留Ig狀態的項目(如,藉由修改用來選擇取代之犧牲快取項目的最久未用(Least Recently Used,LRU)演算法)。由於Ig目錄項目係保留在快取中,一些Ig項目可能隨著時間而變成「過時(stale)」,因為其專用存取請求造成形成Ig狀態的快取可解除配置或回寫其對記憶體區塊的複製,而不用通知保有Ig狀態之記憶體區塊之位址標籤的快取。在此類情況下,不正確地指示應發出全域操作而非區域操作的「過時」Ig狀態並不會造成任何一致性錯誤,而只會造成利用區域操作來伺服的某些操作被發出為全域操作。此等無效率之發生將限於最終取代「過時」Ig快取項目之所經歷的持續時間內。
數個規則掌控Ig快取項目的選擇及取代。第一,如果快取選擇Ig項目作為取代的犧牲者,則執行逐出Ig項目(與選擇I、In、或Igp項目時的情況不同),以更新系統記憶體108中對應的定義域指示符504。第二,如果使記憶體區塊載入快取的請求在該相同快取的Ig快取項目上命中,則快取會將Ig命中視為快取遺失並執行以Ig項目為選定犧牲者的逐出操作。快取因此避免將兩個相同位址標籤的複製放在快取目錄中。第三,較佳是執行逐出Ig狀態作為限制於區域一致性定義域之範圍中的僅限區域操作。第四,較佳是執行逐出Ig狀態作為僅限無資料位址操作,其中將定義域指示寫回至LPC的定義域指示符504。
根據本發明建置Ig狀態,即使未在本地一致性定義域中維持快取之記憶體區塊的有效複製時,亦可藉由在本地一致性定義域中維持記憶體區塊的快取定義域指示符來提高通信效率。如以下說明,可利用Ig狀態提供的快取定義域指示以針對目標為相關聯之記憶體區塊的操作,預測互連結構上的全域廣播範圍。
在非本地一致性定義域中未維持快取任何記憶體區塊之複製的情況中,可利用Igp(僅限無效全域預測)一致性狀態維持快取定義域指示。本文將Igp狀態定義為指示以下內容的快取一致性狀態(1)快取陣列之相關聯的記憶體區塊無效;(2)快取目錄中的位址標籤有效;(3)目前的一致性定義域並非本地一致性定義域;及(4)可能在目前非本地一致性定義域以外的一致性定義域中快取由位址標籤所識別之記憶體區塊的複製。雖然以精確的方式形成Igp指示,但較佳是以不精確的方式維持Igp指示,亦即在不違反一致性的情況下,Igp指示可能不正確。
Igp狀態係形成於非本地一致性定義域的低階快取中,以回應另一一致性定義域中回應專用存取請求(如,「RWITM」、「DClaim」、「DCBZ」、「清除」、「寫入」、或「局部寫入」請求)而提供所請求記憶體區塊的一致性所有權給請求者的該快取。
由於包括Igp狀態的快取目錄項目負有可能的有用資訊,因此在至少一些建置中需要比I狀態的項目(如果有的話)優先保留Igp狀態的項目(如,藉由修改用來選擇取代之犧牲快取項目的最久未用(LRU)演算法)。由於Igp目錄項目係保留在快取中,因此一些Igp項目可能隨著時間而變成「過時」,因為記憶體區塊的複製可能返回一致性定義域,而不受保有Igp狀態之記憶體區塊之位址標籤之快取的監視下。在此類情況下,不正確地指示應發出全域操作而非區域操作的「過時」Igp狀態並不會造成任何一致性錯誤,而只會使得原本利用區域操作來伺服的某些操作發出為全域操作。此等無效率之發生將限於最終取代「過時」Igp快取項目之所經歷的持續時間內。
與Ig項目的處理相反,將不會如根據取代演算法(如,LRU)或因為造成記憶體區塊載入該相同快取之Igp快取項目之快取命中的請求,執行逐出Igp項目來回應選擇Igp項目作為取代的犧牲者,。相反地,只是解除配置Igp項目。由於Igp項目並不維持基本定義域指示符504之快取且可能已經修改的複製,將不執行任何逐出。
根據本發明建置Igp狀態,即使未在非本地一致性定義域中維持快取記憶體區塊的有效複製時,亦可為了範圍預測的目的,藉由在非本地一致性定義域中維持記憶體區塊的快取定義域指示符來提高通信效率。
本文將In狀態定義為指示以下項目的快取一致性狀態(1)快取陣列之相關聯的記憶體區塊無效,(2)快取目錄的位址標籤有效,及(3)可能快取為位址標籤所識別之記憶體區塊的複製(如果快取,僅由區域一致性定義域內的一或多個其他快取階層加以快取)。In指示較佳是不精確,也就是說在不違反一致性的情況下可能不準確。In狀態係於低階快取中形成,以回應提供所請求記憶體區塊給相同一致性定義域的請求者以回應專用存取請求(如,匯流排「RWITM」操作)的該快取。
由於包括In狀態的快取目錄項目負有可能的有用資訊,因此在至少一些建置中需要比I狀態的項目優先保留In狀態的項目(如,藉由修改用來選擇取代之犧牲快取項目的最久未用(LRU)演算法)。由於In目錄項目係保留在快取中,一些In項目可能隨著時間變成「過時」,因為其專用存取請求造成形成In狀態的快取本身可將記憶體區塊的共用複製供應給遠端一致性定義域,而不用通知保有In狀態之記憶體區塊之位址標籤的快取。在此類情況下,不正確地指示應發出區域操作而非全域操作的「過時」In狀態並不會造成任何一致性錯誤,只是會造成一開始錯誤地將某些操作發出為區域操作而非全域操作。此等無效率之發生將限於最終取代「過時」In快取項目所經歷的持續時間內。在較佳具體實施例中,並不會逐出In一致性狀態中的快取項目,相反地只是加以取代而已。因此,不像Ig快取項目,不會利用In快取項目來更新系統記憶體108的定義域指示符504。
根據本發明建置In狀態,將藉由維持記憶體區塊的快取定義域指示符,讓主控器為其操作之一選擇區域範圍進行諮詢,以提高通信效率。因此,節省了其他一致性定義域中之系統互連110及區域互連114的頻寬。
在說明如下的操作中,能夠決定保有Sr一致性狀態之共用的所請求記憶體區塊的低階快取是否位在請求主控器的相同定義域內將很有用。在一項具體實施例中,保有Sr一致性狀態中所請求記憶體區塊之低階快取之監視程式的回應行為可指示在請求主控器的相同定義域內是否存在「區域」Sr監視程式。例如,假設各匯流排操作包括指示匯流排操作是否越過定義域邊界的範圍指示符(如,主控器或單一區域/非區域範圍位元的明確定義域識別碼),則保有Sr一致性狀態之共用記憶體區塊的低階快取可提供確認Sr狀態之請求僅用於相同資料來源定義域內之主控器之請求的局部回應,及提供指示所有其他請求之S狀態的局部回應。在此類具體實施例中,可如表III所示對回應行為進行總結,其中利用加撇符號(’)標出和記憶體區塊之實際快取狀態不同的局部回應。
假設回應行為如以上表III所提出,則藉由增加在可用作資料來源之SMP資料處理系統內散布之記憶體區塊的共用複製數量,將可大幅降低共用資料的平均資料延遲。
首先參考圖6,其中根據本發明描繪資料處理系統中伺服處理器(CPU)專用存取(或儲存修改)請求之示範性方法的高階邏輯流程圖。如同本文提出的其他邏輯流程圖,可按照與所示的不同順序執行或同時執行圖6所描繪的至少某些步驟。
圖6的程序始於方塊600,其代表L2快取230中的主控器232自其處理單元104中之相關聯的處理器核心200接收CPU專用存取請求(如,CPU資料儲存請求或CPU清除請求等)。回應接收CPU請求,主控器232在方塊602決定目標記憶體區塊(於CPU專用存取請求內由目標位址識別)在L2快取目錄302中,是否保持在允許伺服CPU專用存取請求而不用在互連結構上發出匯流排操作的一致性狀態中。例如,如果L2快取目錄302指示目標記憶體區塊的一致性狀態是M或Me狀態之一,則可伺服CPU資料儲存請求而不用在互連結構上發出匯流排操作。如果主控器232在方塊602決定可伺服CPU專用存取請求而不用在互連結構上發出匯流排操作,則主控器232視需要存取L2快取陣列300以伺服CPU請求,如方塊632所示。例如,主控器232可將在CPU資料儲存請求中提供的資料儲存至L2快取陣列300中。在方塊632之後,程序終止於方塊634。
返回方塊602,如果目標記憶體區塊在L2目錄302中,未保持在允許伺服CPU專用存取請求而不用在互連結構上發出匯流排操作的一致性狀態中,則另外在方塊604決定是否需要逐出現有的快取線,以在L2快取230中容納目標記憶體區塊。在一具體實施例中,如果為回應CPU專用存取請求而選擇自請求之處理器的L2快取230逐出的記憶體區塊,並在L2目錄302中將此記憶體區塊標記為M、T、Te、Tn、或Ig一致性狀態中的任一個,則在方塊604需要進行逐出操作。回應方塊604需要進行逐出的決定,執行快取逐出操作,如方塊606所示。同時,主控器232在方塊610決定為伺服CPU專用存取請求而發出匯流排操作的範圍。例如,在一具體實施例中,主控器232在方塊610決定廣播匯流排操作為限於單一處理節點102之範圍的區域操作或涵蓋資料處理系統100所有處理節點102的全域操作。
在一開始將各匯流排操作發出作為區域操作且僅發出作為區域操作一次的第一具體實施例中,如方塊610描繪的決定只是表示主控器決定先前是否已將匯流排操作發出作為區域匯流排操作。在以區域範圍重試區域匯流排操作的第二替代具體實施例中,如方塊610描繪的決定表示主控器決定先前是否已發出匯流排操作超過臨限值次數。在第三替代具體實施例中,在方塊610根據主控器232預測區域匯流排操作在未與其他一致性定義域之處理節點進行通信的情況下,決定是否可能成功解決目標記憶體區塊的一致性。例如,如果相關聯的L2快取目錄302使目標位址與In一致性狀態相關聯,主控器232可選擇區域匯流排操作,及如果相關聯的L2快取目錄302使目標位址與Ig或Igp一致性狀態相關聯,主控器232可選擇全域匯流排操作。如果未成功發出操作(即,接收「重試」結合回應),則方塊610描繪的決定可進一步考慮自不成功操作之結合回應所獲得的資訊,例如,快取線是否存在於區域一致性定義域之Ig或Igp一致性狀態的指示。
回應方塊610的決定,主控器232發出僅在含有主控器232的區域一致性定義域(如,處理節點102)內廣播的區域匯流排專用存取操作(方塊612),或發出在資料處理系統100的所有一致性定義域中廣播的全域匯流排專用存取操作(方塊620)。專用存取操作包括至少識別專用存取操作類型(「RWITM」、「DClaim」、「DCBZ」、「清除」、「寫入」、或「局部寫入」)的異動類型(Ttype)及識別目標記憶體區塊的目標位址。主控器232接著等待接收操作的結合回應,如方塊622及624所示。
為了本說明的目的,結合回應可以是至少三種一般類型中的任一個:「成功」、「清理成功」、及「重試」。如果結合回應指示「重試」,主控器232無法利用在方塊612或620發出的專用存取操作獲得目標記憶體區塊的一致性所有權,因而必須重新發出操作(可能以擴大的廣播範圍來進行)。因此,程序自方塊622返回說明過的方塊610。如果主控器232未接收指示「重試」的CR,而是接收指示「清理成功」的CR,則主控器232已獲予目標記憶體區塊的一致性所有權,因而必須使保存在其他快取記憶體230中之目標記憶體區塊的任何剩餘快取複製變成無效。為了這麼做,主控器232啟始選定範圍(如,區域或全域)的背景清除(BK)操作,如方塊626所示。在至少一些具體實施例中,主控器232可根據專用存取操作之CR中含有的資訊來選擇範圍。在方塊626後,在方塊624測試背景清除操作的CR。回應方塊624決定專用存取操作或背景清除操作的CR指示「成功」,主控器232已成功獲得目標記憶體區塊的專用存取權限。其後,主控器232更新用以進行範圍選擇的預測器(如,一致性狀態或基於記錄的預測器),如方塊630所描繪。此外,主控器232伺服CPU請求,如方塊632所示。之後,程序結束於方塊634。
因此,假設處理及其在相同一致性定義域內之資料之間存有密切關係,則可經常利用限於請求主控器之一致性定義域之範圍或小於完整全域範圍之其他有限範圍的廣播通信伺服CPU請求。因此,結合上述資料傳遞定義域及一致性定義域不僅改良資料存取延遲,且亦藉由限制廣播通信範圍來減少系統互連(及其他區域互連)的流量。
現在參考圖7A-7C,其中根據本發明描繪如L2快取監視程式236之快取監視程式藉以處理專用存取操作(又稱為「儲存修改操作」)之示範性方法的高階邏輯流程圖。專用存取請求包括上述的「RWITM」、「DClaim」、「DCBZ」、「清除」、「寫入」、及「局部寫入」操作。
如圖所示,程序始於圖7A的方塊700,以回應L2快取監視程式236在其區域互連114上接收請求。回應接收請求,監視程式236如藉由參考請求的異動類型(Ttype)欄位,在方塊702決定請求是否屬於專用存取操作。如果否,監視程式236執行其他處理,如方塊704所示,及程序結束於方塊740。然而,如果監視程式236在方塊702決定請求屬於專用存取操作,則監視程式236在方塊706進一步決定其目前實質上是否能夠回應專用存取操作(如,其是否具有可用的監視邏輯執行個體及對其L2快取目錄302的目前存取權限)。如果監視程式236目前實質上無法回應定義域查詢請求,則監視程式236提供指示「Retry_other(重試其他)」的局部回應(PR),如方塊708所描繪,及專用存取操作的處理結束於方塊740。
假設監視程式236能夠實質上回應專用存取操作,則監視程式236在方塊710決定相關聯的L2快取目錄302對於含有目標位址的記憶體區塊是否指示標籤有效、資料-無效一致性狀態(如,In、Ig、Igp、I)。如果是,程序通過跨頁連接符(page connector)A傳到圖7B,其詳細說明如下。然而,如果相關聯的L2快取目錄302指示資料-有效一致性狀態(Mx、Tx、或Sx),則程序分頭平行進行至方塊712及其後方塊,這些方塊代表監視程式236執行的一致性狀態更新,並經由跨頁連接符B分頭進行至圖7C,其中描繪監視程式236的資料傳遞及保護活動(如果有的話)。
首先參考方塊712,監視程式236藉由參考自其L2快取目錄302讀取的一致性狀態,決定其是否位在所監視請求之目標位址所識別之目標記憶體區塊的HPC。如果否,監視程式236視情況在方塊714決定所監視請求的Ttype是否指示所監視請求是背景清除請求。如果否,則程序移至以下說明的方塊720。
回應方塊714的肯定決定,允許(但不一定要)監視程式在根據監視程式236是否駐存在原來發出背景清除請求之裝置(如,L2快取230)的相同一致性定義域內(方塊716)而接收結合回應之前,更新其L2快取目錄302中之目標位址的一致性狀態。例如,監視程式236可藉由檢查背景清除請求所含範圍位元,做出如方塊716所示的決定。如果監視程式236在方塊716決定其在啟始背景清除請求之裝置的相同一致性定義域內,則監視程式236在其L2快取目錄302中,將背景清除請求之目標位址的一致性狀態更新為In一致性狀態(方塊724)。如上述,In一致性狀態提供不精確指示,其指出記憶體區塊的HPC駐存於區域(不一定是本地)一致性定義域,並指出後續請求記憶體區塊的區域操作可能成功。另一方面,如果監視程式236在方塊716決定其不在啟始背景清除請求之裝置的相同一致性定義域中,則程序移至方塊734。方塊734描繪監視程式236在其L2快取目錄302中,將目標位址的一致性狀態更新為Igp。如上述,Igp一致性狀態提供不精確指示,其指出目標記憶體區塊的HPC駐存於遠端一致性定義域,並指出請求目標記憶體區塊的後續操作應為全域。在方塊724或方塊734之後,程序結束於方塊740。
現在參考方塊720,如果在可選方塊714做出否定決定或如果未執行如方塊714所示的決定,則監視程式236等待接收專用存取請求的結合回應。回應在方塊720接收結合回應,監視程式236在方塊726決定專用存取請求的結合回應是否指示「重試」。如果否,專用存取請求以「成功」或「清理成功」CR繼續進行,及程序移至已經說明的方塊716。然而,如果專用存取請求的結合回應指示「重試」(即,專用存取請求不成功),則監視程式236只要在其L2快取目錄302中,將目標位址的一致性狀態更新為I,如方塊728所描繪。採用I一致性狀態而非Ig、Igp或、In狀態是因為對於監視程式236,不成功之專用存取操作的結合回應未指示目標位址之HPC的相對位置。在方塊728之後,程序終止於方塊740。
返回方塊712,回應監視程式236決定其位在目標位址的HPC,監視程式236等待接收專用存取請求的結合回應,如方塊718所描繪。回應監視程式236接收結合回應,程序繼續進行至方塊722。方塊722顯示監視程式236決定其是否駐存於原來發出專用存取請求之裝置(如,L2快取230)的相同一致性定義域中。如上述,監視程式236可藉由檢查專用存取請求所含範圍位元,做出如方塊722所示的決定。如果監視程式236在方塊722決定其在啟始專用存取請求之裝置的相同一致性定義域內,則監視程式236在其L2快取目錄302中,將目標位址的一致性狀態更新為In一致性狀態(方塊724)。如上述,In一致性狀態提供不精確指示,其指出記憶體區塊的HPC駐存於區域(不一定是本地)一致性定義域,並指出後續請求記憶體區塊的區域操作可能成功。另一方面,如果監視程式236在方塊722決定其不在啟始專用存取請求之裝置的相同一致性定義域內,則監視程式236根據監視程式236是否駐存於目標位址之本地系統記憶體108的相同一致性定義域,在其L2快取目錄302中更新目標位址的一致性狀態(方塊730)。在一較佳具體實施例中,根據CR內監視程式區域記憶體控制器(MCLS)欄位的狀態,做出如方塊730描繪的決定。可根據圖10描繪及下文說明的方法,設定CR之MCLS欄位的狀態。
回應在方塊730決定未判定CR的MCLS欄位,亦即監視程式236不駐存於目標位址之本地系統記憶體108的相同一致性定義域中,監視程式236在其L2快取目錄302中,將目標位址的一致性狀態更新為Igp(方塊734)。否則,監視程式236將目標位址的一致性狀態更新為Ig(方塊732)。Igp及Ig一致性狀態二者皆提供不精確指示,其指出目標記憶體區塊的HPC駐存於遠端一致性定義域,並指出請求目標記憶體區塊的後續操作應為全域。然而,不必對Igp一致性狀態進行後續逐出至系統記憶體108,而是只要解除配置。在方塊732或方塊734之後,程序結束於方塊740。
現在參考圖7B,其中描繪監視程式236對具有目標位址之專用存取請求的回應,監視程式236在其L2快取目錄302中具有該目標位址的資料-無效一致性狀態(如,In、Ig、Igp、或I)。程序自圖7A經由跨頁連接符A進行,然後繼續進行至方塊742,其描繪對專用存取請求提供適當局部回應的監視程式236。在一些具體實施例中,在方塊742提供的局部回應對於除了Ig的所有Ix一致性狀態可以是「空」,以指示含有監視程式236的L2快取230未保有目標記憶體區塊的資料-有效複製。對於Ig一致性狀態,局部回應的形式為目標位址的HPC可能駐存於含有監視程式236之一致性定義域之外的「重試」指示。在其他具體實施例中,在方塊742為非Ig一致性狀態產生的局部回應可另外提供反映區域一致性狀態(Igp或In)指示之範圍資訊的範圍提示。在方塊742之後,程序於方塊744分頭進行,及如果目標位址的區域一致性狀態為Ig,則繼續進行至方塊746,否則繼續進行至方塊750。
在方塊746,監視程式236視情況決定所監視請求的Ttype是否指示所監視請求為背景清除請求。如果否(或如果未做出選擇性決定),則程序移至方塊747,其說明如下。如果在可選方塊746決定所監視請求為背景清除請求,則進一步在方塊749決定監視程式236是否駐存於原來發出背景清除請求之裝置(如,L2快取230)的相同一致性定義域內(方塊749)。例如,監視程式236可藉由檢查背景清除請求所含範圍位元,做出如方塊749所示的決定。如果監視程式236在方塊749決定其在啟始背景清除請求之裝置的相同一致性定義域內,則程序通過跨頁連接符D移至方塊757,其描繪監視程式236在其L2快取目錄302中,將背景清除請求之目標位址的一致性狀態更新為In一致性狀態。如上述,In一致性狀態提供不精確指示,其指出記憶體區塊的HPC駐存於區域(不一定是本地)一致性定義域,並指出後續請求記憶體區塊的區域操作可能成功。然後此程序終止於方塊760。另一方面,如果監視程式236在方塊749決定其不在啟始背景清除請求之裝置的相同一致性定義域中,則程序移至方塊747。
方塊747描繪監視程式236等待接收所監視請求的結合回應。回應接收所監視請求的結合回應,在方塊748決定結合回應是否指示「重試」。如果是,則監視之操作不成功,因而監視程式236不更新其對目標位址的一致性狀態。因此,程序通過跨頁連接符C移至並結束於方塊760。然而,如果所監視請求的結合回應並未指示「重試」,則監視程式236在方塊758藉由參考所監視請求所含範圍位元,決定其是否位在發出所監視請求之主控器232的相同一致性定義域(如,處理節點102)內。如果是,監視程式236在其L2快取目錄302中,將背景清除請求之目標位址的一致性狀態更新為In一致性狀態(方塊757)。之後,程序結束於方塊760。
返回方塊758,回應監視程式236決定其不在發出所監視請求之主控器232的相同一致性定義域內,監視程式236決定其是否駐存於目標位址之本地系統記憶體108的相同一致性定義域內(方塊759)。在一較佳具體實施例中,根據CR內監視程式區域記憶體控制器(MCLS)欄位的狀態,做出如方塊759描繪的決定。如果監視程式236在方塊759決定其在目標位址之本地系統記憶體108的相同一致性定義域內,則監視程式236在其L2快取目錄302中不對Ig一致性狀態進行任何更新,及程序終止於方塊760。在此例中不進行任何一致性狀態更新,因為可能需要使用Ig一致性狀態更新系統記憶體108中相關聯之定義域指示符504的狀態。然而,如果監視程式236在方塊759做出否定決定,則監視程式236在其L2快取目錄302中,將背景清除請求之目標位址的一致性狀態更新為Igp一致性狀態(方塊756)。如果一致性狀態已經是Igp,則根據監視程式236建置的複雜性,可執行或不執行一致性狀態更新。如上述,Igp一致性狀態提供不精確指示,其指出目標記憶體區塊的HPC駐存於遠端一致性定義域,並指出請求目標記憶體區塊的後續操作應為全域。在方塊756之後,程序結束於方塊760。
現在參考方塊750,如果所監視請求之目標位址的區域一致性狀態不是Ig,則監視程式236在其L2快取目錄302中,可視情況更新目標位址的Ix一致性狀態,而不用參考所監視請求的CR,以減少將監視程式236配置給所監視請求的佔有期。或者,監視程式236在其L2快取目錄302中,可回應CR而更新目標位址的Ix一致性狀態。等待CR執行更新代表為了改良準確性,以佔有期持續期間交換效能,因為監視程式236不確定所監視請求的主控器232在接收CR之前,是否成功獲得目標位址的一致性所有權。如果建置監視程式236而不參考CR以更新Ix一致性狀態,則程序直接移至方塊755,其說明如下。然而,如果建置監視程式236致使其藉由參考CR而更新所監視請求的Ix一致性狀態,則程序繼續進行至方塊751,其代表監視程式236藉由參考所監視請求的Ttype做出可選決定,決定所監視請求是否是背景清除請求。如果是,則程序繼續進行至以下說明的方塊755。如果監視程式236在方塊751決定所監視請求不是背景清除請求,則監視程式236在方塊752等待接收所監視請求的CR。
回應接收結合回應,監視程式236在方塊753決定專用存取請求的結合回應是否指示「重試」。如果否,專用存取請求以「成功」或「清理成功」CR繼續進行,及程序移至方塊755。然而,如果專用存取請求的結合回應指示「重試」(即,專用存取請求不成功),則監視程式236只要視情況在其L2快取目錄302中,將目標位址的一致性狀態更新為I,如方塊754所描繪。採用I一致性狀態而非Ig、Igp或、In狀態是因為對於監視程式236,不成功的專用存取操作未指示目標位址之HPC的相對位置。在方塊753的肯定決定或可選方塊754之後,程序終止於方塊760。
現在參考方塊755,監視程式236根據監視程式236是否駐存於原來發出所監視請求之裝置(如,L2快取230)的相同一致性定義域內,在其L2快取目錄302中更新目標位址的Ix一致性狀態。例如,監視程式236可藉由檢查所監視請求所含範圍位元,做出如方塊755所示的決定。如果監視程式236在方塊755決定其在啟始所監視請求之裝置的相同一致性定義域內,則監視程式236在其L2快取目錄302中,將所監視請求之目標位址的一致性狀態更新為In一致性狀態(方塊757)。另一方面,如果監視程式236在方塊755決定其不在啟始所監視請求之裝置的相同一致性定義域內,則監視程式236在其L2快取目錄302中,將目標位址的一致性狀態更新為Igp(方塊756)。如果一致性狀態在方塊757已經是In或如果一致性狀態在方塊756已經是Igp,則根據監視程式236建置的複雜性,可執行或不執行更新。在方塊756或方塊757之後,程序結束於方塊760。
現在參考圖7C,其中描繪保有目標記憶體區塊之資料-有效快取複製之L2快取230之監視程式236的資料傳遞及保護活動(如果有的話)。如圖所示,監視程式236在方塊761例如藉由檢查所監視請求指定的Ttype,決定所監視專用存取操作是否為「RWITM」操作。如上文表I所示,「RWITM」操作是專用存取操作,其中啟始者自另一參與者請求記憶體區塊之映像的唯一複製,其意圖更新(修改)此複製。如果在方塊761決定專用存取操作為「RWITM」操作,則程序移至方塊770,其說明如下。如果否,程序繼續進行至方塊762,其描繪監視程式236例如藉由參考相關聯之L2快取目錄302之目標記憶體區塊的一致性狀態,決定其是否位在目標記憶體區塊的HPC內。回應在方塊762決定監視程式236不在專用存取操作之目標記憶體區塊的HPC中,監視程式236產生或導致產生「空」局部回應(方塊764)。然而,回應在方塊762決定監視程式236駐存於HPC,監視程式236提供(或導致提供)「HPC_ack」局部回應,告知已選擇專用存取操作的啟始者為目標記憶體區塊的新HPC及啟始者延伸保護窗404a,以防止其他請求者獲得記憶體區塊的一致性所有權(方塊766)。
現在參考方塊770及其後方塊,監視程式236根據其相關聯之L2快取目錄302之目標記憶體區塊的一致性狀態回應「RWITM」操作。尤其,如果L2快取目錄302之目標記憶體區塊的一致性狀態為Mx(如,M或Me),則延伸保護窗404a以防止其他請求者獲得目標記憶體區塊的所有權,提供「HPC_ack」局部回應,及供應記憶體區塊的複製給請求者,如方塊770及772所示。
或者,如果L2快取目錄302之目標記憶體區塊的一致性狀態為Sr及監視程式236位在請求者的相同資料來源定義域(如,處理節點102),則監視程式236延伸保護窗404a,提供「共用」局部回應,及供應記憶體區塊的複製給請求者,如方塊774及776所示。或者,如果L2快取目錄302之目標記憶體區塊的一致性狀態為Tx(如,T、Te、Tn、或Ten),如方塊780所示,則監視程式236延伸保護窗404a,以防止其他請求者獲得目標記憶體區塊的所有權及提供「HPC_ack」局部回應,如方塊782所示。此外,如方塊784及786所示,監視程式236可根據自回應邏輯210接收的結合回應,供應目標記憶體區塊的複製給請求者。也就是說,如果結合回應指示此監視程式236負責供應目標記憶體區塊的複製(如,相同一致性定義域中沒有監視程式236像請求者保有Sr狀態的目標記憶體區塊),則監視程式236將目標記憶體區塊的複製傳輸給請求者,如方塊786所示。
再次參考方塊780,回應否定決定,監視程式236只是提供「空」局部回應,如方塊790所示。在方塊766、764、772、776、784、786、及790的任何方塊之後,程序結束於方塊792。
藉由參考上文提及的專利申請案,應明白,在CR指示IMC 206有責任將所請求記憶體區塊供應給請求的主控器232的每個情況中,對於區域範圍的專用存取請求,IMC 206可能能夠或可能無法這麼做。因此,在某些建置中,如方塊726、748、及753所示決定CR是否指示「重試」將另外悲觀地認為,為了在旁觀監視的L2快取記憶體230處更新目標位址的一致性狀態,指示IMC 206負責供應目標記憶體區塊的CR為「重試」CR。
現在參考圖8,其中根據本發明顯示IMC 18藉以回應所監視請求之示範性程序的高階邏輯流程圖。如圖所描繪,程序始於方塊800及其後繼續進行至方塊802,其顯示IMC 18藉由參考BAR邏輯240決定其對所監視請求中指定的目標位址是否有責任。如果否,則IMC 18不配置監視程式222給所監視請求,及程序簡單地終止於方塊830。另一方面,如果IMC 18在方塊802決定其對目標位址有責任,則IMC 18在方塊832產生LPC_Ack局部回應。接著,IMC 18在方塊803藉由參考所監視請求的Ttype,決定請求是否為專用存取請求。如果否,IMC執行其他處理,如方塊804所示。之後,程序結束於方塊830。
返回方塊803,回應決定所監視請求為專用存取請求,IMC 18進一步在方塊810及820決定其監視程式222之一對於所監視請求的目標位址是否在作用中及監視程式222之一是否可用於分派。如果IMC 18在方塊810決定其監視程式222之一對於所監視請求的目標位址已經在作用中,或在方塊820決定其沒有可用於分派的監視程式222,則程序繼續進行至方塊812,其顯示IMC 18傳輸Retry_LPC局部回應給所監視請求。之後,程序結束於方塊830。
如果IMC 18在方塊810決定其沒有任何監視程式222對於所監視請求的目標位址在作用中,及在方塊820決定其有可用於分派的監視程式222,則程序繼續進行至方塊822及824,其顯示IMC 18分派監視程式222以等待接收對所監視請求的結合回應。回應接收結合回應,分派的監視程式222視需要自系統記憶體108供應請求的資料,及視需要更新系統記憶體108的定義域指示符504(方塊826)。其後,將監視程式解除配置,及程序結束於方塊830。
現在參考圖9,其中根據本發明描繪藉以產生及累積專用存取操作之局部回應之示範性方法的高階邏輯流程圖。在所描繪的具體實施例中,逐節點依序或平行累積局部回應,直到獲得單一完整局部回應。
如圖所示,程序始於方塊900,然後繼續進行至方塊902,其顯示第一處理節點102內的處理單元104將局部回應中的所有位元欄位初始化為0。接著,在方塊910,處理單元104中的各監視程式222、236以累積的局部回應對其個別局部回應執行邏輯或運算。處理節點102內的回應邏輯210接著在方塊912決定在目前的處理節點102內,是否由L2快取監視程式236及記憶體控制器監視程式222分別判定HPC_ack局部回應及LPC_ack局部回應。如果是,目標記憶體區塊的先前HPC及目標記憶體區塊的本地系統記憶體108均存在於此處理節點102中。因此,回應邏輯210以累積局部回應內之對應的MCLS位元,對判定的MCLS位元執行邏輯或運算,如方塊914所描繪。
接著,在方塊916,目前處理節點102的回應邏輯210決定目前處理節點102是否是為其累積局部回應的最後一個處理節點102(如,處理節點102含有啟始專用存取請求的主控器232)。如果否,回應邏輯210將累積的局部回應傳輸至下一個處理節點102,以進行處理,如方918塊所描繪。其後,在下一個處理節點102累積局部回應,如方塊910及其後方塊所描繪。另一方面,如果回應邏輯210決定目前處理節點102是對其累積局部回應的最後一個處理節點102,則程序移至方塊920,其描繪提供累積的局部回應給含有啟始專用存取操作之主控器232之處理單元104的回應邏輯210。其後,圖9所描繪的程序終止於方塊922。
現在參考圖10,其中根據本發明顯示示範性方法的高階邏輯流程圖,回應邏輯210在存在Ix L2快取監視程式236的情況下,利用此示範性方法產生專用存取操作的結合回應。(有關產生其他一致性狀態之結合回應的進一步細節請見上文提及之共同待審的申請案。)在一較佳具體實施例中,產生專用存取操作之結合回應的回應邏輯210是含有發出專用存取操作之主控器232之處理單元104的回應邏輯210。
如圖所描繪,程序始於方塊1000以回應接收累積的局部回應,及其後繼續進行至方塊1002,其描繪決定專用存取操作是否是全域操作及累積的局部回應是否包括記憶體控制器206的LPC_ack局部回應。如果回應邏輯210在方塊1002決定專用存取操作是全域操作及累積的局部回應不包括LPC_ack局部回應,則處理在方塊1004因找不到目標位址的LPC所造成的錯誤狀況而停止。
另一方面,如果回應邏輯210在方塊1002做出否定決定,則回應邏輯210在方塊1006決定專用存取操作是否具有區域範圍及累積的局部回應指示未接收LPC_ack局部回應或HPC_ack局部回應。方塊1006的肯定決定指示應增加專用存取請求的範圍,因為目標位址的LPC不在區域一致性定義域內及HPC可能不在區域一致性定義域內。因此,回應1006方塊的肯定決定,程序移至方塊1009,其描繪回應邏輯210產生指示「重試」的結合回應(及視情況進一步指示應以增加的範圍重新發出請求)。如上文參考圖6的方塊622及610所述,回應圖10之方塊1006或方塊1002的肯定決定所產生的「重試」CR將使主控器232可能以增加的廣播範圍重新發出專用存取請求。程序接著移至以下說明的方塊1022。
再次參考方塊1006,回應否定決定,程序移至方塊1008。方塊1008顯示回應邏輯210決定累積的局部回應是否包括L2快取監視程式236的HPC_ack局部回應或不包括IMC 206的Retry_LPC局部回應。回應方塊1008的否定決定,程序移至方塊1009,其描繪回應邏輯210產生指示「重試」的結合回應。然後此程序移至方塊1022。
返回方塊1008,如果回應邏輯210做出肯定決定,程序從方塊1008繼續進行至方塊1010,其顯示回應邏輯210決定累積的局部回應指示Retry_other或「共用」局部回應的存在。如果是,可將專用存取請求之目標記憶體區塊的一致性所有權授予啟始的主控器232,但至少一個非HPC L2快取記憶體230可保留目標記憶體區塊的快取資料-有效複製。因此,回應邏輯210產生「清理成功」的結合回應,如Addr_ack_BK。如上述,「清理成功」CR將使啟始的主控器232發出背景清除請求,如圖6的方塊626所描繪。其後,程序移至以下說明的方塊1022。
再次參考方塊1010,回應由回應邏輯210決定累積的局部回應未指示接收Retry_other或「共用」局部回應,程序移至方塊1020,其描繪回應邏輯210產生指示「成功」的結合回應,如Addr_ack結合回應。程序接著繼續進行至方塊1022,其描繪回應邏輯210決定MCLS欄位是否在累積的局部回應內判定,如上文參考圖9的方塊912及914所述。如果否,程序直接繼續進行至方塊1026。另一方面,如果在方塊1022做出肯定決定,則回應邏輯210在方塊1024判定MCLS欄位在結合回應內。然後此程序移至方塊1026。
方塊1026描繪回應邏輯210以匹配原始專用存取請求之廣播範圍的廣播範圍傳輸結合回應(方塊1026)。之後,程序終止於方塊1030。
如上述,本發明提供一種改良的資料處理系統、處理單元、快取階層及資料處理方法,其提供可能在一致性定義域之內或之外快取記憶體區塊的指示。根據本發明,回應對專用存取操作的結合回應,可建立及/或更新由一致性狀態提供的指示。
雖然如所述已經參考較佳具體實施例說明本發明,但熟習本技術者應明白,可在不脫離本發明的精神及範疇下,進行形式及細節的各種改變。
18、206...整合記憶體控制器(IMC)
100...資料處理系統
102a、102b...處理節點
104a-104d...處理單元
108a-108d...系統記憶體
110...系統互連
114...區域互連
200a、200b...處理器核心
208...指令定序單元
210...回應邏輯
212...互連邏輯
214...I/O控制器
216...I/O裝置
222、236...監視程式(S)
224...執行單元
226...一階(L1)快取
228...載入儲存單元(LSU)
230...二階(L2)快取
232...主控器
234、302...L2陣列及目錄
240...基底位址暫存器(BAR)邏輯
300...L2快取陣列
304...標籤欄位
306...狀態欄位
308...LRU欄位
404a、404b...保護窗
500...記憶體區塊
502...錯誤校正碼(ECC)
504...定義域指示符
視為本發明之特性的新穎特色如隨附的申請專利範圍所述。然而,要完全瞭解本發明及其較佳使用模式,請參考解說性具體實施例的詳細說明並結合附圖來研讀,其中:圖1根據本發明,為示範性資料處理系統的高階方塊圖;圖2根據本發明,為處理單元的細部方塊圖;圖3為圖2所示之L2快取陣列及目錄的細部方塊圖;圖4為圖1資料處理系統之系統互連之示範性異動(transaction)的時空圖(time-space diagram);圖5根據本發明之較佳具體實施例,顯示定義域指示符;圖6根據本發明,為快取記憶體藉以伺服自資料處理系統中處理器核心接收之操作之示範性方法的高階邏輯流程圖;及圖7A-7C根據本發明,一起形成快取藉以處理監視之儲存修改操作之示範性方法的高階邏輯流程圖;圖8根據本發明,為記憶體控制器藉以處理監視之儲存修改操作之示範性方法的高階邏輯流程圖;圖9根據本發明之一具體實施例,為藉以分段累積局部回應之示範性程序的高階邏輯流程圖;以及圖10根據本發明之一具體實施例,為藉以產生儲存修改操作之結合回應之示範性程序的高階邏輯流程圖。
100...資料處理系統
102a、102b...處理節點
104a-104d...處理單元
108a-108d...系統記憶體
110...系統互連
114...區域互連
Claims (19)
- 一種在一包括至少第一及第二一致性定義域的快取一致性資料處理系統中的資料處理方法,該方法包含:在該資料處理系統之該第一一致性定義域的一第一快取記憶體中,將一與一儲存位置及一位址標籤相關聯的一致性狀態欄位設定為一第一資料-無效一致性狀態,其指示該位址標籤有效且該儲存位置不含有效資料;以及回應監視一專用存取操作,該專用存取請求指定一匹配該位址標籤的目標位址及指示啟始該專用存取操作之一請求者的一相對定義域位置,該第一快取記憶體將該一致性狀態欄位自該第一資料-無效一致性狀態更新為一第二資料-無效一致性狀態,其指示該位址標籤有效、該儲存位置不含有效資料、及在根據該請求者的該相對定義域位置成功完成該專用存取操作時,是否在該第一一致性定義域內快取一與該位址標籤相關聯的目標記憶體區塊。
- 如請求項1所述之方法,其中:該專用存取操作包含一第一專用存取操作;以及該設定包含將該一致性狀態欄位設定為該第一資料-無效一致性狀態,以回應由該資料處理系統之一第 二快取記憶體啟始的一第二專用存取操作。
- 如請求項1所述之方法,其中:該專用存取操作包含一背景清除操作;該方法進一步包含一第二快取記憶體發出該背景清除操作,以回應該第二快取記憶體已獲得該目標記憶體區塊之專用一致性所有權的一指示。
- 如請求項1所述之方法,其進一步包含:該第一快取記憶體藉由參考該一致性狀態欄位,預測目標為該記憶體區塊之一資料存取請求之廣播傳輸的一範圍。
- 如請求項1所述之方法,其中:該專用存取操作包括一專用存取請求及一指示對該專用存取請求之一整個系統回應的結合回應;以及該更新包含該第一快取記憶體更新該一致性狀態欄位,以回應該專用存取操作的該結合回應,其指示該請求者已獲得該目標記憶體區塊的專用一致性所有權。
- 如請求項5所述之方法,其中:該第一資料-無效一致性狀態指示是否可能在該第一一致性定義域內快取與該位址標籤相關聯的一目標記憶體區塊;以及 該方法進一步包含:回應指示該請求者無法成功獲得該目標記憶體區塊之專用一致性所有權的該結合回應,將該一致性狀態欄位自該第一資料-無效一致性狀態更新為一第三資料-無效一致性狀態,其指示該資料儲存位置不含有效資料及不提供快取該目標記憶體區塊之一複製之一位置的指示。
- 一種用於一包括至少第一及第二一致性定義域之快取一致性資料處理系統的快取記憶體,每個一致性定義域包括至少一處理單元,其中該第一一致性定義域包括該快取記憶體及該第二一致性定義域包括另一一致性快取記憶體,該快取記憶體包含:一快取控制器;一資料陣列,其包括一快取一記憶體區塊的資料儲存位置;以及一快取目錄,其包括:一標籤欄位,其用於聯合該記憶體區塊儲存一位址標籤;一一致性狀態欄位,其與該標籤欄位及該資料儲存位置相關聯,其中該一致性狀態欄位具有複數個可能的一致性狀態,其包括一第一及第二資料-無效一致性狀態,其中該第一資料-無效一致性狀態指示該位址標籤有效及該儲存位置不含有效資 料,及一第二資料-無效一致性狀態指示該位址標籤有效、該儲存位置不含有效資料、及是否可能在該第一一致性定義域內快取與該位址標籤相關聯的一目標記憶體區塊;其中該快取控制器將該一致性狀態欄位自該第一資料-無效一致性狀態更新為該第二資料-無效一致性狀態,以回應監視一專用存取操作,該專用存取操作指定一匹配該位址標籤的目標位址及含有啟始該專用存取操作之一請求者之一相對定義域位置的一指示。
- 如請求項7所述之快取記憶體,其中該專用存取操作包含一第一專用存取操作以及該快取控制器將該一致性狀態欄位設定為該第一資料-無效一致性狀態,以回應該資料處理系統之一第二快取記憶體啟始的一第二專用存取操作。
- 如請求項7所述之快取記憶體,其中:該專用存取操作包含該資料處理系統之一第二快取記憶體的一背景清除操作。
- 如請求項7所述之快取記憶體,其中:該快取控制器藉由參考該一致性狀態欄位,預測目標為該目標記憶體區塊之一資料存取請求之廣播傳輸的一範圍。
- 如請求項7所述之快取記憶體,其中:該專用存取操作包括一專用存取請求及一指示對該專用存取請求之一整個系統回應的結合回應;以及該快取控制器更新該一致性狀態欄位,以回應該專用存取操作的該結合回應,其指示該請求者已獲得該目標記憶體區塊的專用一致性所有權。
- 如請求項11所述之快取記憶體,其中:該第一資料-無效一致性狀態指示是否可能在該第一一致性定義域內快取與該位址標籤相關聯的一目標記憶體區塊;以及該快取控制器回應指示該請求者無法成功獲得該目標記憶體區塊之專用一致性所有權的該結合回應,將該一致性狀態欄位自該第一資料-無效一致性狀態更新為一第三資料-無效一致性狀態,其指示該資料儲存位置不含有效資料及不提供快取該目標記憶體區塊之一複製之一定義域位置的指示。
- 一種處理單元,包含:至少一處理器核心;以及一如請求項7所述之快取記憶體,電性耦合該至少一處理器核心。
- 一種快取一致性資料處理系統,其包含:一互連結構;由該互連結構耦合的第一及第二一致性定義域,其中該第一一致性定義域包括由一第一快取記憶體支援的至少一第一處理單元,及該第二一致性定義域包括由一一致性第二快取記憶體支援的一第二處理單元,其中在該資料處理系統之該第一一致性定義域內的該第一快取記憶體包括:一快取控制器;一資料陣列,其包括一快取一記憶體區塊的資料儲存位置;以及一快取目錄,包括:一標籤欄位,其用於聯合該記憶體區塊儲存一位址標籤;一一致性狀態欄位,其與該標籤欄位及該資料儲存位置相關聯,其中該一致性狀態欄位具有複數個可能的一致性狀態,其包括一第一及第二資料-無效一致性狀態,其中該第一資料-無效一致性狀態指示該位址標籤有效及該儲存位置不含有效資料,及一第二資料-無效一致性狀態指示該位址標籤有效、該儲存位置不含有效資料、及是否可能在該第一一致性定義域內快取與該位址標籤相關聯的一目標記憶體區塊;其中該快取控制器將該一致性狀態欄位自該第一 資料-無效一致性狀態更新為該第二資料-無效一致性狀態,以回應監視一專用存取操作,該專用存取操作指定一匹配該位址標籤的目標位址及含有啟始該專用存取操作之一請求者之一相對定義域位置的一指示。
- 如請求項14所述之快取一致性資料處理系統,其中該專用存取操作包含一第一專用存取操作以及該快取控制器將該一致性狀態欄位設定為該第一資料-無效一致性狀態,以回應該資料處理系統之一第二快取記憶體啟始的一第二專用存取操作。
- 如請求項14所述之快取一致性資料處理系統,其中:該專用存取操作包含該資料處理系統之一第二快取記憶體的一背景清除操作。
- 如請求項14所述之快取一致性資料處理系統,其中:該快取控制器藉由參考該一致性狀態欄位,預測目標為該目標記憶體區塊之一資料存取請求之廣播傳輸的一範圍。
- 如請求項14所述之快取一致性資料處理系統,其中: 該專用存取操作包括一專用存取請求及一指示對該專用存取請求之一整個系統回應的結合回應;以及該快取控制器更新該一致性狀態欄位,以回應該專用存取操作的該結合回應,其指示該請求者已獲得該目標記憶體區塊的專用一致性所有權。
- 如請求項14所述之快取一致性資料處理系統,其中:該第一資料-無效一致性狀態指示是否可能在該第一一致性定義域內快取與該位址標籤相關聯的一目標記憶體區塊;以及該快取控制器回應指示該請求者無法成功獲得該目標記憶體區塊之專用一致性所有權的該結合回應,將該一致性狀態欄位自該第一資料-無效一致性狀態更新為一第三資料-無效一致性狀態,其指示該資料儲存位置不含有效資料及不提供快取該目標記憶體區塊之一複製之一定義域位置的指示。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/388,017 US7451277B2 (en) | 2006-03-23 | 2006-03-23 | Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200821834A TW200821834A (en) | 2008-05-16 |
TWI463318B true TWI463318B (zh) | 2014-12-01 |
Family
ID=38534943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096109587A TWI463318B (zh) | 2006-03-23 | 2007-03-20 | 快取一致性處理系統、快取記憶體,及其方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7451277B2 (zh) |
JP (1) | JP5078396B2 (zh) |
CN (1) | CN100520738C (zh) |
TW (1) | TWI463318B (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451277B2 (en) * | 2006-03-23 | 2008-11-11 | International Business Machines Corporation | Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation |
US8561037B2 (en) * | 2007-08-29 | 2013-10-15 | Convey Computer | Compiler for generating an executable comprising instructions for a plurality of different instruction sets |
US9035959B2 (en) | 2008-03-28 | 2015-05-19 | Intel Corporation | Technique to share information among different cache coherency domains |
US8250311B2 (en) * | 2008-07-07 | 2012-08-21 | Intel Corporation | Satisfying memory ordering requirements between partial reads and non-snoop accesses |
US20100332762A1 (en) * | 2009-06-30 | 2010-12-30 | Moga Adrian C | Directory cache allocation based on snoop response information |
US8327107B2 (en) * | 2010-03-08 | 2012-12-04 | International Business Machines Corporation | Volume coherency verification for sequential-access storage media |
US8935485B2 (en) | 2011-08-08 | 2015-01-13 | Arm Limited | Snoop filter and non-inclusive shared cache memory |
US9152501B2 (en) * | 2012-12-19 | 2015-10-06 | International Business Machines Corporation | Write performance in fault-tolerant clustered storage systems |
TWI526966B (zh) | 2013-11-25 | 2016-03-21 | 財團法人資訊工業策進會 | 資料處理裝置及資料處理方法 |
US9411542B2 (en) * | 2014-02-21 | 2016-08-09 | Analog Devices Global | Interruptible store exclusive |
US11163682B2 (en) * | 2015-12-29 | 2021-11-02 | Intel Corporation | Systems, methods, and apparatuses for distributed consistency memory |
US20170286118A1 (en) * | 2016-04-01 | 2017-10-05 | Intel Corporation | Processors, methods, systems, and instructions to fetch data to indicated cache level with guaranteed completion |
CN106341402B (zh) * | 2016-08-30 | 2019-11-12 | 中国民生银行股份有限公司 | 基于多架构分布式缓存的处理方法和装置 |
EP3889787B1 (en) * | 2016-12-12 | 2023-11-01 | Intel Corporation | Apparatuses and methods for a processor architecture |
US11159636B2 (en) * | 2017-02-08 | 2021-10-26 | Arm Limited | Forwarding responses to snoop requests |
US10248330B2 (en) * | 2017-05-30 | 2019-04-02 | Seagate Technology Llc | Data storage device with buffer tenure management |
US10713169B2 (en) | 2018-01-17 | 2020-07-14 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US10579527B2 (en) | 2018-01-17 | 2020-03-03 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US10387310B2 (en) * | 2018-01-17 | 2019-08-20 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US11068407B2 (en) | 2018-10-26 | 2021-07-20 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction |
US10884740B2 (en) | 2018-11-08 | 2021-01-05 | International Business Machines Corporation | Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads |
US11119781B2 (en) | 2018-12-11 | 2021-09-14 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a fronting load |
US10733102B2 (en) * | 2018-12-19 | 2020-08-04 | International Business Machines Corporation | Selectively updating a coherence state in response to a storage update |
CN110049104A (zh) * | 2019-03-15 | 2019-07-23 | 佛山市顺德区中山大学研究院 | 基于分层片上互连网络的混合缓存方法、系统及存储介质 |
US11106608B1 (en) | 2020-06-22 | 2021-08-31 | International Business Machines Corporation | Synchronizing access to shared memory by extending protection for a target address of a store-conditional request |
US20210011864A1 (en) * | 2020-09-25 | 2021-01-14 | Francesc Guim Bernat | System, apparatus and methods for dynamically providing coherent memory domains |
CN112433961B (zh) * | 2020-12-02 | 2022-07-08 | 海光信息技术股份有限公司 | 复合缓存目录系统及其管理方法 |
US11693776B2 (en) | 2021-06-18 | 2023-07-04 | International Business Machines Corporation | Variable protection window extension for a target address of a store-conditional request |
US11556472B1 (en) * | 2021-08-04 | 2023-01-17 | International Business Machines Corporation | Data processing system having masters that adapt to agents with differing retry behaviors |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5852716A (en) * | 1996-07-02 | 1998-12-22 | Sun Microsystems, Inc. | Split-SMP computer system with local domains and a top repeater that distinguishes local and global transactions |
TW439030B (en) * | 1998-02-17 | 2001-06-07 | Ibm | Cache coherency protocol for a data processing system including a multi-level memory hierarchy |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5829034A (en) * | 1996-07-01 | 1998-10-27 | Sun Microsystems, Inc. | Method and apparatus for a coherence transformer with limited memory for connecting computer system coherence domains |
CN1230721A (zh) * | 1998-02-17 | 1999-10-06 | 国际商业机器公司 | 具有指令和数据的悬停(h)状态的高速缓存相关协议 |
US6141733A (en) * | 1998-02-17 | 2000-10-31 | International Business Machines Corporation | Cache coherency protocol with independent implementation of optimized cache operations |
US6886079B2 (en) * | 2001-06-21 | 2005-04-26 | International Business Machines Corporation | Dynamic history based mechanism for the granting of exclusive data ownership in a non-uniform memory access (NUMA) computer system |
US7716428B2 (en) * | 2006-02-28 | 2010-05-11 | International Business Machines Corporation | Data processing system, cache system and method for reducing imprecise invalid coherency states |
US7451277B2 (en) * | 2006-03-23 | 2008-11-11 | International Business Machines Corporation | Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation |
-
2006
- 2006-03-23 US US11/388,017 patent/US7451277B2/en not_active Expired - Fee Related
-
2007
- 2007-03-13 CN CNB2007101359280A patent/CN100520738C/zh not_active Expired - Fee Related
- 2007-03-13 JP JP2007062831A patent/JP5078396B2/ja not_active Expired - Fee Related
- 2007-03-20 TW TW096109587A patent/TWI463318B/zh not_active IP Right Cessation
-
2008
- 2008-08-13 US US12/190,766 patent/US7743218B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5852716A (en) * | 1996-07-02 | 1998-12-22 | Sun Microsystems, Inc. | Split-SMP computer system with local domains and a top repeater that distinguishes local and global transactions |
TW439030B (en) * | 1998-02-17 | 2001-06-07 | Ibm | Cache coherency protocol for a data processing system including a multi-level memory hierarchy |
Also Published As
Publication number | Publication date |
---|---|
JP5078396B2 (ja) | 2012-11-21 |
US7743218B2 (en) | 2010-06-22 |
JP2007257631A (ja) | 2007-10-04 |
US7451277B2 (en) | 2008-11-11 |
TW200821834A (en) | 2008-05-16 |
CN101042680A (zh) | 2007-09-26 |
CN100520738C (zh) | 2009-07-29 |
US20070226427A1 (en) | 2007-09-27 |
US20080301377A1 (en) | 2008-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI463318B (zh) | 快取一致性處理系統、快取記憶體,及其方法 | |
TWI393005B (zh) | 用於在具有多重一致性定義域之資料處理系統中處置清空操作之資料處理系統、快取系統以及方法 | |
JP4928812B2 (ja) | タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法 | |
US8140770B2 (en) | Data processing system and method for predictively selecting a scope of broadcast of an operation | |
JP4594900B2 (ja) | メモリ・ブロックを初期設定するためのプロセッサ、データ処理システム、および方法 | |
JP5116418B2 (ja) | マルチプロセッサ・データ処理システムにおいて、データを処理する方法、マルチプロセッサ・データ処理システムのための処理ユニット、およびデータ処理システム | |
US7389388B2 (en) | Data processing system and method for efficient communication utilizing an in coherency state | |
US7716428B2 (en) | Data processing system, cache system and method for reducing imprecise invalid coherency states | |
US8504779B2 (en) | Memory coherence directory supporting remotely sourced requests of nodal scope | |
US7475196B2 (en) | Processor, data processing system, and method for initializing a memory block in a data processing system having multiple coherency domains | |
US7577797B2 (en) | Data processing system, cache system and method for precisely forming an invalid coherency state based upon a combined response | |
US20060179245A1 (en) | Data processing system and method for efficient communication utilizing an Tn and Ten coherency states | |
JP5004571B2 (ja) | 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法 | |
US7454578B2 (en) | Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory | |
US7584331B2 (en) | Data processing system and method for selectively updating an invalid coherency state in response to snooping a castout | |
US7725619B2 (en) | Data processing system and method that permit pipelining of I/O write operations and multiple operation scopes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |