TWI416322B - 最佳化以目錄為基礎的一致性協定中之同時存取 - Google Patents

最佳化以目錄為基礎的一致性協定中之同時存取 Download PDF

Info

Publication number
TWI416322B
TWI416322B TW098118567A TW98118567A TWI416322B TW I416322 B TWI416322 B TW I416322B TW 098118567 A TW098118567 A TW 098118567A TW 98118567 A TW98118567 A TW 98118567A TW I416322 B TWI416322 B TW I416322B
Authority
TW
Taiwan
Prior art keywords
cache
directory
request
agent
cache agent
Prior art date
Application number
TW098118567A
Other languages
English (en)
Other versions
TW201011536A (en
Inventor
Hariharan Thantry
Akhilesh Kumar
Seungjoon Park
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of TW201011536A publication Critical patent/TW201011536A/zh
Application granted granted Critical
Publication of TWI416322B publication Critical patent/TWI416322B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

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

最佳化以目錄為基礎的一致性協定中之同時存取
本發明關於最佳化以目錄為基礎的一致性協定中之同時存取。
很多計算系統包含多個處理器及輸入/輸出(I/O)代理,也包含一致性記憶體,輸入/輸出(I/O)代理與I/O及儲存裝置介接,一致性記憶體可以是多個處理器的一致性快取。由於一或更多快取常包含於這些多個處理器中,所以,一致性快取意指處理器與可能請求存取該快取的其它代理(例如,其它處理器或I/O代理)共享其快取。
當計算系統包含多個一致性快取記憶體及例如多個處理器及I/O代理等多個請求代理時,當二代理同時請求存取快取線時,會發生衝突。為了減輕此問題,典型上使用快取一致性協定,完成仲裁多個請求代理之間對特定快取線存取之系統。通常,使用例如目錄等中央實體,以藉由儲存標示存在於一或更多快取記憶體中的不同快取線的位置及狀態的登錄來維持快取一致性協定。快取一致性演繹法界定對相同記憶體位置的讀取及寫入的行為。假使符合下述條件,則取得快取的一致性性:(1)由處理器P對位置X作的讀取接著由相同處理器P對X的寫入,而在P作的該寫入及讀取指令之間沒有由另一處理器對X的寫入,必須總是返回由P寫入的值;(2)由處理器P1對位置X作的讀取接著由另一處理器P2對X的寫入必須返回由P2作的寫入值,假使在該等二存取之間沒有由任何處理器對X的寫入;(3)假使在二存取之間未發生任何處理器對X寫入,則跟隨另一處理器P2對位置X的寫入之後,由處理器P1對位置X所作的讀取必須將P2寫入的值歸還。
但是,隨著計算系統中快取及/或請求代理的數目增加,維持快取一致性的複雜度增加,以及這些代理之間所需的訊息數目也增加,而快取一致性協定必須適應新規模的計算系統。再者,為了維持一致性,必須送出增加數目的訊息,這會增加互連上的流量,降低其它通訊的頻寬,以及又導致在回覆對資料的請求時之潛時。
【發明內容及實施方式】
在不同的實施例中,耦合不同的系統代理之系統的下層互連的特性可以用以增加在用於快取一致性之目錄處的訊息處理的並行性,降低互連上的頻寬及降低在系統每一個別的核心之錯失處理的整體潛時。
現在參考圖1,其顯示根據本發明的一實施例之系統的一部份的方塊圖。如圖1所示,系統10包括多個快取代理C1-C3。每一此快取代理可以包含或具有對快取記憶體之存取,以及,在不同的實施例中可以為處理器插座、核心、或其它包含快取記憶體或與快取記憶體相關連的處理單元。快取代理C1-C3中的每一代理經由互連20而耦合,互連20可為環互連。如圖1的實施法所示,環互連20可以包含三個獨立的訊息路徑以用於分別載送請求、回應、及資料分封,但是,本發明的範圍不限於此。
除了快取代理之外,如圖1所示,尚有目錄D存在。目錄D可為本地代理的一部份或是管理快取一致性協定及能夠一致性存取儲存於不同的快取代理C1-C3中的資訊之其它單元。舉例而言,目錄D可以包含表格,該表格將資訊儲存於不同的登錄中,這些資訊關於儲存於快取代理C1-C3中的快取線的位置、以及它們的狀態。在某些實施例中,當被請求的資料未存在於任何快取代理中時,本地代理也可以用以存取主記憶體。
如此,當快取代理尋找專有地存取資料或共享存取時,其可以送出例如專有權(RdO)請求或共享資料請求(RdS)等請求給目錄D,以取得所請求的資料。如同下述將進一步說明般,系統10可以實施快取一致性協定,其中,在對應的資料訊息由轉送快取代理傳送給請求方(例如,快取至快取轉送訊息)之後,某些確認訊息可以傳送給目錄D,以致於可以在互連20上實現縮減的頻寬及潛時。注意,對於圖1的環互連架構,可以假定環互連20上的任何起點一目的地對之間並無排序,但是,未被反傳的訊息(亦即,資料及響應訊息)可以被假定為在用於相同訊息類別的任何二個快取代理之間依序轉送。
如同下述進一步說明般,目錄D可以包含陣列,該陣列包含用於儲存在系統10的不同快取中的資訊之元資料。再者,目錄D可以包含一或更多佇列以保留待決的請求、已被處理的請求以及由於衝突或其它原因而尚無法被處理的待決請求等二請求。但是,本發明的範圍未侷限於此,在某些實施中,使用MESI(修改的、專有的、共享的、無效的)或MESIF(修改的、專有的、共享的、無效的、已轉送的)協定,以實施快取一致性協定。
現在考慮快取代理C1對同時也由M狀態中的快取代理C2所保有的快取區塊(例如A1)之擁有權讀取(RFO)請求的交易。假定又有C3也對相同的快取區塊提出RFO請求且請求是在C2的請求被完全處理之前抵達目錄D。換言之,此第二請求是對相同資料的同時請求。
具有純私有快取記憶體的訊息流動顯示於下述圖2中,圖2是根據本發明的一實施例之協定處理的流程圖。目錄將對快取區塊的待決的同時請求保留在佇列中,以及以抵達的先進先出次序來提供它們。圖2也顯示在每一快取代理與目錄處所作的狀態轉換。顯示於圖2之不同訊息的名稱(RdO、FwdO、等等)是助記手段的,且在不同的實施法中可以具有不同的標記。一般而言,這些名稱包含訊息型式縮寫(例如,讀取(Rd)、轉送(Fwd)、等等),以及請求的快取狀態(從快取代理至目錄)、請求的轉送狀態(從目錄至被監聽的快取)、或轉換快取狀態(從快取至快取、或目錄至快取)縮寫(例如,MESI之一)。
如圖2所示,在初始時,快取代理C1-C3具有下述狀態:C1及C3處於無效(I)狀態及C2處於修改(M)狀態,表示快取代理C2專有地保有唯一有效的資料拷貝。如此,目錄D顯示C2保有有效資料的專有拷貝。如圖2所示,快取代理C1送出對此資料之請求至目錄D,亦即,對專有擁有權(RdO)讀取之請取。在接收到此請求時,目錄D可以查詢其表格中對應的登錄以決定有效專有的資料拷貝在快取代理C2中。如此,目錄D將監聽請求(例如,轉送請求(亦即,FwdO))送至快取代理C2。注意,之後,快取代理C3提出對相同資料的類似請求,且因此,快取代理C1及C3尋求對相同的資料同時存取。因此,在時間A,目錄D將來自快取代理C3的請求儲存於請求FIFO佇列中。
又參考圖2,當快取代理C2接收來自目錄D的轉送請求時,其會使其快取線的拷貝無效以及將被請求的資料直接傳送至快取代理C1以回應監聽請求。資料訊息含有由回應的快取修改之真實資料,以及,訊息型式助記憶手段(亦即DataM)標示接收的快取C1應轉頂至的MESI狀態(亦即M)。注意,快取代理C2不會將完成(CMP)回應傳回至目錄D,一直到其將被請求的資料送出至快取代理C1之後為止。如圖2所示,當在目錄D收到此完成訊息時,來自快取代理C3的請求可以在時間C時脫離佇列。時間B”至C反應目錄必須等待(可能是零)以確保快取代理C1在來自目錄的監聽訊息(FwdO)之前至少一周期看到資料訊息(DataM)之時間總量。由於我們假定以無緩衝環互連作為下層互連,所以,此時間可以由環上的任何代理準確地計算。此時,目錄D可以將監聽請求(亦即,轉送請求(FwdO))傳送至快取代理C1以致於被請求的資料可以轉送至快取代理C3。
又參考圖2,回應此請求,快取代理C1可以將對監聽請求(例如,資料訊息(DataM))的回應(包含被請求的資料)傳送至快取代理C3,且之後,將完成(CMP)訊息回傳給目錄D。此時,快取代理C1將根據一致性協定的標準規則而使其快取線的拷貝有效(I)。如此,在結束圖(2)中所示的處理之後,如同對應的目錄登錄所標示般,快取代理C1及C2包含有效的線拷貝,而此線的修改的有效拷貝存在於快取代理C3中。
由於圖2中所示的協定處理,可以避免其它情形中需要傳送的不同的其它一致性協定訊息。舉例而言,取代上述流程,假使完成訊息需要在目錄D可以開始任何佇列中的請求之處理之前被傳送至目錄D,則將會在互連上造成增加的訊息及浪費頻寬。再者,當來自快取C3的同時請求被佇列在目錄D中時,將發生更大量的潛時。亦即,在不同的實施例中,任何在時間B之後抵達快取代理C1的轉送請求可以由快取代理C1處理,而來自快取代理C1之過渡的完成訊息不需回傳至目錄D。此外,對於例如圖1的無緩衝環的訊息特性之確知可以運用來準確地評估環互連20上的二代理之間的訊息遍歷時間。
如此,在不同實施例中,控制快取代理以致於其首先在注入對於請求方的監聽響應(例如資料訊息)之後總是將對於監聽請求的完成訊息注回至環互連上的目錄。依此方式,接著,目錄可以在可能為零或更多周期之最少的及預定的時間延遲之後,注入用於環互連之同時請求的監聽請求。至少部份地根據來自快取代理之完成訊息的抵達以及正請求的快取代理、轉送快取代理及目錄D之相對位置,可計算此時間延遲。
在一實施例中,假定單向環(演繹法也保持雙向環,下述的持續時間計算可以修改)、以及用於不同的拓蹼參數之下述值:
從第二請求方(C2)至目錄的跳躍數目=N
從第一請求方(C1)至目錄的跳躍數目=M
從C1至C2的跳躍數目=P
環停止之間的延遲(亦即,以周期計,環訊息從一跳躍移至另一跳躍所耗費的時間)=D;及完成訊息抵達之後,在初始化轉送請求給C1之前目錄必須等待的時間=T(以周期計)。
在一實施例中,可以使用下述等式:
T=(P-N-M+1)*D [等式1]
外加的周期(亦即,「+1」)確保來自目錄的轉送請求在資料訊息已由代理接收之後至少一周期抵達快取代理(C1)。此計算係假定資料及完成訊息在相同周期中被注入環停止中,以及,資料訊息在完成訊息之前被注入。在某些情形中,T可以是小於零,在此情形中,目錄可以將轉送請求立即注入以C1為目的地之環中。
注意,此分析對於所有快取代理作出下述假設:(1)當轉送請求由任何快取代理接收時,在傳送響應給目錄之前,快取代理首先將被轉送的資料及狀態置於請求方。這二訊息可以在相同的周期中注入,但是,無論在任何情形中,完成訊息不可在資料訊息被注入資料環之前被注入;(2)從環停止至相同環停止上的協定代理之訊息以抵達環停止的次序由協定代理處理;(3)來自環停止的協定代理而以相同環停止為目的地之訊息由協定代理依它們的產生次序注入;(4)對於響應及資料訊息頻道無反傳(亦即,當由快取代理提出請求時緩衝器被預先保留);(5)用於響應及資料訊息之任何二環停止之間的訊息轉送的持續時間可以由無緩衝環上的所有代理準確地預測;以及(6)等式1假定所有分封具有相同大小。注意,對於不同大小的分封,可以修改持續時間計算以容納分封尺寸。
在一實施例中,除了顯著地降低對相同位址的同時存取(衝突或其它情形)所耗的時間之外,在一致性協定流程中尚可以消除至少一訊息。此協定也可以顯著地降低多個代理以同時方式爭奪相同快取區塊的擁有權之屏障同步的潛時。
為了量化本發明的實施例於快取對快取轉送情形中取得之潛時縮減,可以檢查對以所有緒參與的屏障同步處理所耗費的時間量。屏障同步是一機制,用於緒在「同步」點等待直到組中的所有其它成員抵達相同的同步點為止,在此時,所有緒從屏障被「釋放」及繼續正常處理。在屏障同步處理中,每一緒在抵達屏障時使屏障計數增量1,檢查屏障的值以確定所有緒是否已抵達屏障,以及,在其它情形中進入忙線一等待狀態。為了使量化保持簡單,假定屏障同步快取區塊在無插入的S狀態之M狀態下四處移動。
假定分封遍歷整個環的全部時間為T周期,以及,假定有效地降低用於任何分封的最大潛時至T/2周期、及所有代理均勻地隨機分佈於環上之雙向環,則下述等式代表一代理用於取得及更新同步變數之潛時。具體而言,記住平均情形中目錄在接收對相同位址的第二請求之前必須等待平均T/8周期,則完成請求處理之以周期計的潛時如下所述:
潛時=(T/4+T/4+T/4+T/8)=7T/8周期 [等式2]
注意,以根據傳統方法(亦時,T週期)對衝突位址請求處理而在被處理之前必須等待的時間量,來表示此潛時縮減。類似地,對於處理成對的同時請求之傳統方法,以周期計的耗費時間將為:
潛時=2*T 周期
取代地,根據本發明的一實施例,可以如下所述般達成總潛時。對於最佳的情形而言,來自目錄的FwdO訊息將準確地在請求方收到資料之後的1周期到達。假定在二情形中協定處理負擔相同,且因此可以忽略:
潛時=(T/4+T/4+T/4)+1+T/4=T+1周期[最佳情形] …[等式3]
對於最壞的情形,假定監聽訊息在請求方看見資料後耗費T/4周期才到達請求方。在此情形中,潛時將為:
潛時=(T/4+T/4+T/4)+(T/4+T/4)=5T/4周期[最壞情形] …[等式4]
因此,在平均的情形中,可以爭論快取代理C1在看到轉送的資料之後為了監聽而觀察到的延遲將為~T/8周期。所以,在平均的情形中,可以以下述等式來表示與二參與的緒同步之屏障的潛時(假定在第一緒的請求被完全處理之前第二緒的請求就到達):
總潛時=(3T/4)+(T/8+T/4) [平均情形,用於二緒,屏障同步]=3T/4+3T/8=9T/8 周期 …[等式5]
如此,對相同位址目前具有至少一待決的交易之下,X個存取抵達,則等式5是用於降低同時存取中的總時間之通用等式。注意,所有X個存取不需在第一交易完成之前抵達,僅有當交易(從第二交易起)抵達時,會有目前進行的交易。這通常是屏障同步的情形,特別是對於具有很多核心的大規模系統。
概括而言,導因於不同代理對相同快取區塊的同時存取之對目錄處交易待決所觀測到的潛時降低約為=(T-7T/8)=T/8周期。此外,假定X個背對背存取,當目前在目錄處對相同的位址有交易在進行時每一存取(但第一個除外)抵達目錄,則用於完成同時存取的總潛時為3T/4+X*(3T/8)。因此,相較於習知的方法,整體系統潛時縮減為T/4+X*5T/8。
根據所有交易涉及快取對快取轉移之假設,可以藉由觀測習知的情形中必須有二訊息,以及根據一實施例,在此頻道上僅有一訊息,以計算確認環上的頻寬縮減。因此,假定所有交易是快取對快取轉移,則確認環上的頻寬縮減為50%。
實施例如此藉由降低在目錄處佇列所耗費的時間、以及降低用於完成與取得快取區塊相關的一致性操作所需的訊息數目,可以改良對相同的快取區塊之同時請求的潛時。因此,其為潛時縮減及頻寬節省技術。實施例可以在目錄使用計時器以準確地決定確保特定代理何時自同級快取收到轉送的訊息。此外,實施例可以使用硬體支援以確保訊息的定序。
實施例如此降低非重試目錄為基礎的一致性協定中對相同快取區塊之同時一致性操作所耗費的時間。這些操作在執行經常屏障同步之多緒識別、探勘及合成(RMS)工作量之中是相當普通的。實施例如此開發下層互連的特性,用以降低一致性操作中的潛時及訊息計數。
在不同的實施例中,可以提供某些硬體結構以確保用於協定引擎(PE)環介面處監聽響應、以及用於完成訊息之訊息類別間的定序(舉例而言,響應及資料)。一機制可以具有單獨的先進先出(FIFO)結構,以用於在所有快取代理之所有訊息類別(請求、響應&資料),但是,這類實施法對於性能是有害的。
如此,在其它實施例中,在協定引擎與環代理之間可以設置結合邏輯。更具體而言,此硬碟結構可以位於響應佇列及資料佇列之間,響應佇列及資料佇列耦合於協定引擎至環停止之間。此邏輯可以防止完成響應在對應的對原始請求方之資料響應注入無緩衝(BL)環之前被注入確認(AK)環。此邏輯可以視個別佇列的本質及它們的汲取特性而採取不同的形式。
在用於每一佇列的FIFO實施例中,例如8位元標籤(遠大於FIFO佇列中登錄的數目)等標籤可以由協定引擎(響應產生實體)附著至監聽響應及完成訊息。然後,比較器電路可以耦合在完成佇列的領頭處。當完成響應抵達佇列的領頭時,以及在其被注入AK環之前,對資料佇列的領頭檢查完成響應。假使資料佇列中的領頭登錄標籤具有的值低於完成登錄中的標籤,則資料響應尚不會被注入BL環。另一方面,假使其具有相等或更高的值,則資料響應將在相同的時脈周期中被注入或是已被注入BL環。
現在參考圖3,顯示根據本發明的一實施例之輸出排序器的方塊圖。如圖3所示,輸出排序器200可以用以將監聽響應從協定引擎210至環停止定序,環停止係由對環互連的多個環的連接所形成,舉例而言,這些環為無緩衝環245及確認(AK)環255,資料在無緩衝環245上傳輸,完成及其他例如確認訊息等訊息在確認環255上傳送。
如圖3所示,協定引擎210可以產生包含與每一訊息組有關的標籤(例如,8位元標籤)之完成訊息及資料訊息。要於相關環上被送出的這些訊息會提供給佇列220及230中對應之一,亦即,完成佇列220及資料佇列230,在一實施例中,它們可以適應地作為FIFO緩衝器。如圖3所示,完成佇列220的領頭登錄可以提供給比較器240,而於其中與資料緩衝器230的領頭相比較。比較會標示完成佇列220的標籤具有的值是否小於資料標籤的值,意指對應的資料標籤尚未被注入環245中。因此,比較器240的輸出可以由邏輯250使用以防止完成佇列220的領頭處的登錄被注入確認環255。雖然於圖3的實施例中以特定實施法來說明,但是,本發明的範圍不限於此。
為了確保從環停止注入的監聽在從環停止至協定引擎之路徑上不會追過被轉送的資料,內容可定址記憶體(CAM)可以設於輸入路徑上。在輸入路徑上的CAM會使得從目錄至CAM之每一監聽請求成為輸入佇列以及捕捉以快取/核心為目的地之「傳送中」的資料分封(具有狀態資訊)。
假使資料於資料佇列中被捕捉,則監聽被阻擋直到用於相同位址的資料訊息被注入快取控制器為止。在快取區塊脫離被待決的監聽監聽之前,這允許快取供應資料給核心,以由核心消耗它及執行至少一操作(舉例而言,用於此資料被供應以由新的值將資料覆寫之RFO請求的情形)。
現在,參考圖4,顯示根據本發明的一實施例之輸入路徑結構的方塊圖。如圖4所示,給定的快取代理可以耦合至多個環,亦即,請求(亦即AD)環305、資料(亦即BL)環310、及確認(亦即AK)環315。根據一實施例,即使保證監聽請求在來自同級快取記憶體的轉送資料之後至少一周期抵達環停止,在觀測到轉送資料之前仍然能由快取代理真正地看到監聽。這將由快取代理對目錄造成不一致的響應。為了防止此情形發生,提供涉及內容可定址記憶體(CAM)325之設計。每一進入的監聽在進入的協定資料佇列320中執行快取區位址查詢以查詢可能在傳送中的任何訊息。假使無訊息,則經由監聽賦能邏輯330而使監聽賦能,以及,將監聽經由快取輸入佇列372傳送至快取370的快取控制器380。假使有資料訊息用於相同的快取區塊(在345),則在資料響應協定佇列350中標記資料分封(區塊355),以及,使監聽保持待決。隨著進入的資料響應協定FIFO佇列350被汲取,假使遇到被標記的分封時(在365),則在經由延遲單元332的固定延遲之後,開啟監聽賦能邏輯330。這允許在進入的監聽佇列320的頂部之監聽被釋放。在快取控制器380之內的協定處理因此而保持不變。輸出協定處理375包含輸出排序器,確保從快取響應佇列374收到的監聽響應的一部份之資料訊息在完成訊息被置於AK環315上之前至少一周期被置於BL環310上。雖然在圖4的實施例中顯示以特定實施法,但是,本發明的範圍不限於此。
藉由將用於查詢的CAM結構導入於第一與第二輸入佇列之間,可以以較少數目的訊息來實現明顯回寫(EWB)(M拷貝回收)及填充暗示(S拷貝回收)交易。在傳統的協定中,EWB請求及填充暗示需要在真正地回收線之前首先查閱目錄以檢查是否沒有進行中的衝突請求。藉由提供CAM結構,EWB可以沒有這些訊息而繼續進行,以及,由於進入的監聽將駐於協定緩衝器FIFO結構中一直到EWB/填充暗示完成為止,所以,進入的監聽可以「捕捉」EWB。
實施例可以以不同的實施法而實施於例如存在於本地代理中的目錄中。現在參考圖5,顯示根據本發明的一實施例之目錄的方塊圖。如圖5所示,目錄400可為本地代理的目錄,其包含不同的結構以保持關於儲存於相關連的快取中的快取線、以及存在於給定本地代理目錄的其他此類元件之中的某些控制邏輯、佇列、計時器。
如圖5所示,目錄400可以包含具有多個登錄的目錄陣列410,多個登錄中的每一登錄與多個快取中之一者中的給定的快取線相關連,所述多個快取是與目錄400相關連。每一登錄可以包含與快取線的位置有關的不同資訊、以及其狀態,在潛在的其它此類資訊之中。再者,目錄400包含待決的請求佇列420,待決的請求佇列420可為儲存器,用以儲存來自與目錄400相關連之不同的快取代理之不同請求。為了決定給定的請求是否可以被執行,首先決定對相同的快取線之任何先前未完成的請求是否已經存在於待決的請求佇列420中。
又如圖5所示,監聽邏輯430可以存在。此邏輯可以用以分析進入的請求以及目錄陣列410中的資訊,以使不同的監聽請求能夠傳輸給不同的快取代理。再者,實施例可以包含同時請求邏輯450,同時請求邏輯450可以用以處理對單一快取線之多個請求正進入至目錄400的情形。舉例而言,同時請求邏輯450可以決定對於單一快取線的多個同時請求的存在以及使來自目錄400的第二此類同時請求能夠更快地傳輸,亦即,在接收到與第一同時請求相關連的完成訊息之前。為達此目的,配合一或更多計時器440,同時請求邏輯450可以決定第二同時請求從目錄400送出之前其被儲存於待決的請求佇列420中之預定的最小時間延遲。舉例而言,一或更多計時器可以用以準確地計時同時請求從目錄送出以允許積極處理快取錯失請求之間預定數目的周期。雖然圖5的實施例以特定實施法顯示,但是,本發明的範圍不限於此。
在一特定實施法中,同時請求邏輯450可以根據下述圖6的流程圖以處理此同時請求。現在參考圖6,顯示方法500的流程圖,根據本發明的實施例,方法500可以由目錄或其它追蹤結構使用以決定同時監聽請求送出之前的最小時間延遲。如圖6所示,方法500可以開始接收來自第二快取代理之對於快取線的請求(方塊510)。根據請求,目錄可以決定快取線存在於第一快取代理中。因此,目錄可以產生第一監聽請求以將快取線從第一快取代理送至第二快取代理(方塊530)。
在某些時間點,在傳輸此第一監聽請求之前或之後,但是在快取對快取轉送的確認完成之前,目錄可以從第三快取代理接收對於相同快取線之同時請求(方塊540)。因此,目錄可以將同時請求儲存於例如待決的請求佇列或例如目錄內之FIFO的其它暫時儲存器中。
之後,目錄可以接收第一與第二快取代理之間的快取線的傳輸確認(方塊550)。在方塊560接收到此確認時,可以決定最小的時間延遲。此時間延遲可以被計算成為目錄可以傳輸第二監聽請求以請求快取線從第二快取代理轉送至第三快取代理之前的時段。在一實施例中,根據等式1,以執行此計算。在鑽石形方塊570中,根據例如目錄中的計時器,決定是否已達到此最小時間延遲。假使否,則鑽石形方塊570可以返回其本身的迴路。當實現時間延遲時,第二監聽請求可以傳送至第二快取代理以促使快取至快取轉送(方塊580)。然後,目錄接著可以接收該傳輸的確認(方塊590),以致於待決的請求可以從其在佇列中的位置脫離佇列。雖然以此特定實施法來顯示圖6的實施例,但是,本發明的範圍不限於此。
實施例可以以很多不同的系統型式實施。現在參考圖7,顯示根據本發明的實施例之系統的方塊圖。如圖7所示,多處理器系統600是點對點互連系統,以及,包含經由點對點互連650而耦合的第一處理器670及第二處理器680。如圖7所示,處理器670和680均可以為多核心處理器,包含第一及第二處理器核心(亦即,處理器核心674a及674b以及處理器核心684a和684b)、以及目錄673和683,目錄673和683可以經由無緩衝環互連而耦合至核心。每一目錄均可以包含例如圖5所示的邏輯而能夠以最小的潛時來傳輸同時監聽請求。
仍然參考圖7,第一處理器670又包含記憶體控制器集線器(MCH)672及點對點(P-P)介面676和678。同樣地,第二處理器680包含MCH 682及P-P介面686和688。如圖7所示,MCH 672和678將處理器耦合至各別記憶體,亦即記憶體632和634,記憶體632和634可為局部地附著於各別處理器的主記憶體(例如,動態隨機存取記憶體(DRAM))之部份。第一處理器670和第二處理器680可以分別經由P-P互連662和664而耦合至晶片組690。如圖7所示,晶片組690包含P-P介面694及698。
此外,晶片組690包含介面692以將晶片組690與高性能繪圖引擎638耦合。接著,晶片組690可以經由介面696而耦合至第一匯流排616。如圖7所示,不同的I/O裝置614可以耦合至第一匯流排616,以及匯流排橋618,而匯流排橋618耦合第一匯流排616與第二匯流排620。不同的裝置可以耦合至第二匯流排620,舉例而言,在一實施例中,這些裝置包括鍵盤/滑鼠622、通訊裝置626和資料儲存單元628,舉例而言,資料儲存單元628可為包含碼630之碟片驅動器或其它大量儲存裝置。此外,音頻I/O 624可以耦合至第二匯流排620。
實施例可以以碼實施且可以儲存於儲存媒體上,儲存媒體儲存有指令,這些指令可以使系統編程以執行指令。儲存媒體可以包含但不限於包括磁碟、光碟、光碟唯讀記憶體(CD-ROM)、可改寫光碟(CD-RW)、及磁光碟等任何型式的碟片、例如唯讀記憶體(ROM)、如動態隨機存取記憶體(DRAM)和靜態隨機存取記憶體(SRAM)等隨機存取記憶體(RAM)、可抹拭可編程唯讀記憶體(EPROM)、快閃記憶體、電可抹拭可編程唯讀記憶體(EEPROM)等半導體裝置、磁卡或光學卡、或是任何適用於儲存電子指令的其它型式的媒體。
雖然已參考有限數目的實施例來說明本發明,但是,習於此技藝者可以瞭解其眾多修改及變異。後附的申請專利範圍涵蓋落於本發明的真正精神及範圍之內的所有這些修改及變異。
10...系統
20...環互連
200...輸出排序器
210...協定引擎
220...完成佇列
230...資料佇列
240...比較器
245...無緩衝環
250...邏輯
255...確認環
305...請求環
310...資料環
315...確認環
320...協定資料佇列
325...內容可定址記憶體
330...監聽賦能邏輯
332...延遲單元
350...資料響應協定佇列
370...快取記憶體
372...快取輸入佇列
374...快取響應佇列
380...快取控制器
400...目錄
410...目錄陣列
420...待決的請求佇列
430...監聽邏輯
440...計時器
450...同時請求邏輯
600...多處理器系統
614...I/O裝置
616...第一匯流排
618...匯流排橋
620...第二匯流排
622...鍵盤/滑鼠
624...音頻I/O
626...通訊裝置
628...資料儲存單元
630...碼
632...記憶體
634...記憶體
650...點對點互連
652...點對點互連
670...第一處理器
672...記憶體控制器集線器
673...目錄
674a...處理器核心
674b...處理器核心
676...點對點介面
678...點對點介面
680...第二處理器
682...記憶體控制器集線器
683...目錄
684a...處理器核心
684b...處理器核心
686...點對點介面
688...點對點介面
690...晶片組
692...介面
694、698...點對點介面
696...介面
C1...快取代理
C2...快取代理
C3...快取代理
D...目錄
圖1是根據本發明的一實施例之系統的一部份的方塊圖。
圖2是根據本發明的一實施例之協定處理的流程圖。
圖3是根據本發明的一實施例之輸出定序器的方塊圖。
圖4是根據本發明的一實施例之輸入路徑結構的方塊圖。
圖5是根據本發明的一實施例之目錄的方塊圖。
圖6是根據本發明的實施例之方法的流程圖。
圖7是根據本發明的實施例之系統的方塊圖。
10...系統
20...環互連
C1...快取代理
C2...快取代理
C3...快取代理
D...目錄

Claims (17)

  1. 一種處理電腦系統中來自多個代理的請求之方法,包括:在第一快取代理中決定與第一佇列中用於完成訊息之登錄相關連的標籤值是否小於第二佇列中用於資料訊息的對應登錄之標籤值;至少部份地根據該決定,將該完成訊息注入至耦合於目錄、該第一快取代理及第二快取代理之互連,否則防止注入該完成訊息。在該目錄接收來自該第一快取代理的該完成訊息以標示該第一快取代理已送出快取線給該第二快取代理,以回應對於該快取線的第一請求;決定該目錄可以傳送第二請求給該第二快取代理以轉送該快取線給第三快取代理之前的時間延遲;以及在該時間延遲之後傳送該第二請求。
  2. 如申請專利範圍第1項之方法,其中,在該第一快取代理將包含該快取線的對應資料訊息注入至該互連之後,該第一快取代理傳送該完成訊息。
  3. 如申請專利範圍第2項之方法,又包括在該互連的第一通道上接收該完成訊息以及在該互連的第二通道上傳送該第二請求。
  4. 如申請專利範圍第1項之方法,又包括:將該第三快取代理中的該快取線儲存於進入的資料佇列中; 決定來自該目錄的進入的監聽請求是否對應於該快取線;及假使是,則將該進入的監聽請求維持於第二佇列中直到從該進入的資料佇列汲取該快取線為止。
  5. 如申請專利範圍第4項之方法,又包括在傳送監聽響應給該進入的監聽請求之前,傳送包含來自該第三快取代理之該快取線的資料訊息。
  6. 如申請專利範圍第1項之方法,又包括回收或送出用於來自該第一快取代理的快取線之填充暗示,而未將回收交易從該第一快取代理送至該目錄。
  7. 一種處理電腦系統中來自多個代理的請求之裝置,包括:多個快取代理,每一快取代理均包含快取記憶體;以及目錄,經由互連而耦合至該多個快取代理,該目錄用於儲存多個登錄,該多個登錄中的每一登錄均與儲存於耦合至該目錄的快取代理的快取記憶體中的快取線相關連,該目錄包含第一邏輯以用於決定該目錄可以傳送同時監聽請求之前的時間延遲;其中,該第一邏輯根據T=(P-N-M+1)*D以決定該時間延遲,其中,P對應於從第一快取代理至第二快取代理之互連跳躍數目,N對應於從該第二快取代理至該目錄之互連跳躍數目,M對應於從該第一快取代理至該目錄的互連跳躍數目,以及,D對應於該互連上的環停止與環停 止之間的延遲。
  8. 如申請專利範圍第7項之裝置,其中,該目錄包含至少一計時器,用於標示該時間延遲何時完成。
  9. 如申請專利範圍第7項之裝置,其中,該目錄是傳送該同時監聽請求給第一快取代理,而未接收到來自該第一快取代理的完成訊息。
  10. 如申請專利範圍第7項之裝置,其中,該同時監聽請求對於該第一快取線從第一快取代理轉送至第二快取代理以回應該同時監聽請求的請求。
  11. 如申請專利範圍第10項之裝置,其中,該目錄是產生該同時監聽請求以回應來自該第二快取代理的第二請求,其中,在來自該第一快取代理之對於該快取線的第一請求之後,在該目錄中接收該第二請求。
  12. 如申請專利範圍第11項之裝置,其中,該目錄是將該第二請求儲存於請求方佇列中。
  13. 如申請專利範圍第11項之裝置,其中,該目錄將該第二請求脫離佇列以回應來自轉送該第一快取線給該第一快取代理之第三快取代理的完成訊息。
  14. 一種處理電腦系統中來自多個代理的請求之系統,包括:多核心處理器,包含多個快取代理及目錄,該目錄經由環互連而耦合至該多個快取代理,該環互連包含用於監聽請求、資料訊息、及確認訊息之獨立通道,該目錄包含同時請求邏輯以計算時間延遲,該時間延遲在該目錄可以 傳輸同時監聽請求給第一快取代理以促使第一快取線從該第一快取代理轉送至第二快取代理,而未接收到來自該第一快取代理之標示接收到該第一快取代理中的該第一快取線的第一確認訊息之前;及動態隨機存取記憶體(DRAM)耦合至該多核心處理器;其中,該同時請求邏輯至少部份地根據該環互連的特性以計算該時間延遲。
  15. 如申請專利範圍第14項之系統,其中,該同時請求邏輯在接收到標示該第一快取線傳輸至該第一快取代理之來自第三快取代理的第二確認訊息時,計算該時間延遲,該時間延遲對應於接收到該第二確認訊息與傳輸該同時監聽請求之間的周期數目。
  16. 如申請專利範圍第15項之系統,其中,該目錄包含至少一計時器以標示該時間延遲何時完成。
  17. 如申請專利範圍第15項之系統,其中,該第一快取代理配置成不接收到來自該第三快取代理的該第一快取線時防止確認訊息傳輸至該目錄。
TW098118567A 2008-06-13 2009-06-04 最佳化以目錄為基礎的一致性協定中之同時存取 TWI416322B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/157,792 US8190820B2 (en) 2008-06-13 2008-06-13 Optimizing concurrent accesses in a directory-based coherency protocol

Publications (2)

Publication Number Publication Date
TW201011536A TW201011536A (en) 2010-03-16
TWI416322B true TWI416322B (zh) 2013-11-21

Family

ID=40902559

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098118567A TWI416322B (zh) 2008-06-13 2009-06-04 最佳化以目錄為基礎的一致性協定中之同時存取

Country Status (6)

Country Link
US (1) US8190820B2 (zh)
JP (1) JP5037566B2 (zh)
CN (1) CN101604295B (zh)
DE (1) DE102009023898B4 (zh)
GB (1) GB2460747B (zh)
TW (1) TWI416322B (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8180963B2 (en) * 2009-05-21 2012-05-15 Empire Technology Development Llc Hierarchical read-combining local memories
US8468309B2 (en) * 2010-09-25 2013-06-18 Intel Corporation Optimized ring protocols and techniques
JP5772458B2 (ja) * 2011-09-29 2015-09-02 富士通株式会社 データ管理プログラム、ノード、および分散データベースシステム
US9280468B2 (en) * 2011-10-26 2016-03-08 Qualcomm Technologies, Inc. Three channel cache-coherency socket protocol
US9910807B2 (en) 2011-11-29 2018-03-06 Intel Corporation Ring protocol for low latency interconnect switch
US9639490B2 (en) 2011-11-29 2017-05-02 Intel Corporation Ring protocol for low latency interconnect switch
US9411728B2 (en) * 2011-12-23 2016-08-09 Intel Corporation Methods and apparatus for efficient communication between caches in hierarchical caching design
US9009416B1 (en) * 2011-12-30 2015-04-14 Emc Corporation System and method for managing cache system content directories
US8930947B1 (en) 2011-12-30 2015-01-06 Emc Corporation System and method for live migration of a virtual machine with dedicated cache
US8627012B1 (en) 2011-12-30 2014-01-07 Emc Corporation System and method for improving cache performance
US9235524B1 (en) 2011-12-30 2016-01-12 Emc Corporation System and method for improving cache performance
US9053033B1 (en) * 2011-12-30 2015-06-09 Emc Corporation System and method for cache content sharing
US9104529B1 (en) * 2011-12-30 2015-08-11 Emc Corporation System and method for copying a cache system
US9158578B1 (en) 2011-12-30 2015-10-13 Emc Corporation System and method for migrating virtual machines
US9135177B2 (en) 2013-02-26 2015-09-15 Apple Inc. Scheme to escalate requests with address conflicts
US9304926B2 (en) 2013-07-23 2016-04-05 Arm Limited Coherency control message flow
US9785556B2 (en) * 2014-12-23 2017-10-10 Intel Corporation Cross-die interface snoop or global observation message ordering
CN106326183B (zh) * 2015-06-30 2019-03-15 龙芯中科技术有限公司 基于目录的缓存一致性的实现方法及装置
US10387314B2 (en) * 2015-08-25 2019-08-20 Oracle International Corporation Reducing cache coherence directory bandwidth by aggregating victimization requests
US9817757B2 (en) 2015-11-17 2017-11-14 International Business Machines Corporation Scalable metadata management in a multi-grained caching framework
US9965390B2 (en) 2015-11-17 2018-05-08 International Business Machines Corporation Reducing defragmentation in a multi-grained writeback cache
US9971692B2 (en) 2015-11-17 2018-05-15 International Business Machines Corporation Supporting concurrent operations at fine granularity in a caching framework
US9916249B2 (en) 2015-11-17 2018-03-13 International Business Machines Corporation Space allocation in a multi-grained writeback cache
US10095595B2 (en) 2015-11-17 2018-10-09 International Business Machines Corporation Instant recovery in a multi-grained caching framework
US10152417B2 (en) * 2016-04-11 2018-12-11 International Business Machines Corporation Early freeing of a snoop machine of a data processing system prior to completion of snoop processing for an interconnect operation
US10733103B2 (en) 2017-12-13 2020-08-04 International Business Machines Corporation Non-blocking directory-based cache coherence
US11544193B2 (en) 2020-09-11 2023-01-03 Apple Inc. Scalable cache coherency protocol
CN112579479B (zh) * 2020-12-07 2022-07-08 成都海光微电子技术有限公司 在维护缓存一致性时维护事务次序的处理器及其方法
US11803471B2 (en) 2021-08-23 2023-10-31 Apple Inc. Scalable system on a chip

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055502A1 (en) * 2002-10-08 2005-03-10 Hass David T. Advanced processor with novel level 2 cache design
US20050160132A1 (en) * 2004-01-15 2005-07-21 Van Doren Stephen R. Transaction references for requests in a multi-processor network
TW200703100A (en) * 2004-12-27 2007-01-16 Intel Corp System and method for cache coherency in a cache with different cache location lengths
US20070233966A1 (en) * 2006-03-31 2007-10-04 Sundaram Chinthanmani Partial way hint line replacement algorithm for a snoop filter

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2474201B1 (fr) * 1980-01-22 1986-05-16 Bull Sa Procede et dispositif pour gerer les conflits poses par des acces multiples a un meme cache d'un systeme de traitement numerique de l'information comprenant au moins deux processus possedant chacun un cache
US5778438A (en) * 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5878213A (en) * 1996-02-15 1999-03-02 International Business Machines Corporation Methods, systems and computer program products for the synchronization of time coherent caching system
US5897657A (en) * 1996-07-01 1999-04-27 Sun Microsystems, Inc. Multiprocessing system employing a coherency protocol including a reply count
US5832276A (en) * 1996-10-07 1998-11-03 International Business Machines Corporation Resolving processor and system bus address collision in a high-level cache
US6065101A (en) * 1997-06-12 2000-05-16 International Business Machines Corporation Pipelined snooping of multiple L1 cache lines
US6122719A (en) * 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
FI108502B (fi) * 1998-12-11 2002-01-31 Nokia Corp Menetelmõ ja laitteet lyhytsanomien lõhettõmiseksi
US20040103248A1 (en) * 2002-10-08 2004-05-27 Hass David T. Advanced telecommunications processor
US6922756B2 (en) * 2002-12-19 2005-07-26 Intel Corporation Forward state for use in cache coherency in a multiprocessor system
US7917646B2 (en) * 2002-12-19 2011-03-29 Intel Corporation Speculative distributed conflict resolution for a cache coherency protocol
DE112004001984T5 (de) 2003-10-22 2006-08-17 Intel Corporation (A Delaware Corporation), Santa Clara Verfahren und Vorrichtung für effizient geordnete Speicher in einem Verbindungsnetzwerk
JP4085389B2 (ja) * 2003-12-24 2008-05-14 日本電気株式会社 マルチプロセッサシステム、マルチプロセッサシステムにおける一貫性制御装置及び一貫性制御方法
US7822929B2 (en) * 2004-04-27 2010-10-26 Intel Corporation Two-hop cache coherency protocol
CA2572616A1 (en) * 2004-07-07 2006-02-09 Yottayotta, Inc. Systems and methods for providing distributed cache coherence
US7406566B2 (en) * 2005-06-03 2008-07-29 Intel Corporation Ring interconnect with multiple coherence networks
US7437518B2 (en) * 2005-09-07 2008-10-14 Intel Corporation Hiding conflict, coherence completion and transaction ID elements of a coherence protocol
US8010753B2 (en) * 2005-09-28 2011-08-30 International Business Machines Corporation Systems and methods for temporarily transferring use of portions of partitioned memory between host computers
US7747897B2 (en) * 2005-11-18 2010-06-29 Intel Corporation Method and apparatus for lockstep processing on a fixed-latency interconnect
US20080005486A1 (en) * 2006-06-29 2008-01-03 Mannava Phanindra K Coordination of snoop responses in a multi-processor system
US8301790B2 (en) * 2007-05-30 2012-10-30 Randy Morrison Synchronization of audio and video signals from remote sources over the internet
US7779210B2 (en) * 2007-10-31 2010-08-17 Intel Corporation Avoiding snoop response dependency
JP2009245323A (ja) * 2008-03-31 2009-10-22 Nec Computertechno Ltd レイテンシ短縮方式及び方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055502A1 (en) * 2002-10-08 2005-03-10 Hass David T. Advanced processor with novel level 2 cache design
US20050160132A1 (en) * 2004-01-15 2005-07-21 Van Doren Stephen R. Transaction references for requests in a multi-processor network
TW200703100A (en) * 2004-12-27 2007-01-16 Intel Corp System and method for cache coherency in a cache with different cache location lengths
US20070233966A1 (en) * 2006-03-31 2007-10-04 Sundaram Chinthanmani Partial way hint line replacement algorithm for a snoop filter

Also Published As

Publication number Publication date
CN101604295A (zh) 2009-12-16
JP5037566B2 (ja) 2012-09-26
GB2460747B (en) 2010-08-04
US8190820B2 (en) 2012-05-29
GB2460747A (en) 2009-12-16
DE102009023898A1 (de) 2009-12-31
US20090313435A1 (en) 2009-12-17
JP2009301552A (ja) 2009-12-24
GB0909592D0 (en) 2009-07-15
CN101604295B (zh) 2013-03-27
TW201011536A (en) 2010-03-16
DE102009023898B4 (de) 2020-06-18

Similar Documents

Publication Publication Date Title
TWI416322B (zh) 最佳化以目錄為基礎的一致性協定中之同時存取
US10169080B2 (en) Method for work scheduling in a multi-chip system
US20200183841A1 (en) Relay consistent memory management in a multiple processor system
US9529532B2 (en) Method and apparatus for memory allocation in a multi-node system
US7814279B2 (en) Low-cost cache coherency for accelerators
TWI318737B (en) Method and apparatus for predicting early write-back of owned cache blocks, and multiprocessor computer system
US20150254182A1 (en) Multi-core network processor interconnect with multi-node connection
US10592459B2 (en) Method and system for ordering I/O access in a multi-node environment
US7836144B2 (en) System and method for a 3-hop cache coherency protocol
US9372800B2 (en) Inter-chip interconnect protocol for a multi-chip system
JP2001167077A (ja) ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
CN104991868B (zh) 一种多核处理器系统和缓存一致性处理方法
US6647469B1 (en) Using read current transactions for improved performance in directory-based coherent I/O systems
WO2020038466A1 (zh) 数据预取方法及装置
JP7419261B2 (ja) ストリーミングデータ転送のためのフロー圧縮を用いたデータ処理ネットワーク
US10917198B2 (en) Transfer protocol in a data processing network
CN114356839A (zh) 处理写操作的方法、设备、处理器及设备可读存储介质
US11874783B2 (en) Coherent block read fulfillment
JP6028470B2 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
KR20230070033A (ko) 캐시 라인 축출을 위한 다중 레벨 캐시 코히런시 프로토콜
CN117407194A (zh) 一种基于缓存一致性的异构通信架构
NZ716954A (en) Computing architecture with peripherals