TWI274998B - Method for memory coherency, systems for supporting distributed cache coherency conflict resolution, method for resolving a writeback race conflict, and for resolving a race conflict for request for ownership of two substantially simultaneous requests - Google Patents
Method for memory coherency, systems for supporting distributed cache coherency conflict resolution, method for resolving a writeback race conflict, and for resolving a race conflict for request for ownership of two substantially simultaneous requests Download PDFInfo
- Publication number
- TWI274998B TWI274998B TW094111562A TW94111562A TWI274998B TW I274998 B TWI274998 B TW I274998B TW 094111562 A TW094111562 A TW 094111562A TW 94111562 A TW94111562 A TW 94111562A TW I274998 B TWI274998 B TW I274998B
- Authority
- TW
- Taiwan
- Prior art keywords
- node
- message
- conflict
- peer
- request
- 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
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- 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
-
- 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/0817—Cache consistency protocols using directory methods
Description
1274998 (1) 九、發明說明 谵 【發明所屬之技術領域] 本發明係有關快取記憶體。更特定地說,本發明係有 關多快取多處理器系統中的分散式衝突排解。 【先前技術】 當電子系統包括多重快取記憶體時,必須維持可供使 > 用之資料的有效性。典型上,此係藉由按照快取記憶體相 干性協定來操作資料來予以達成的。隨著快取記憶體及/ 或處理器的數量增加,維持快取記憶體相干性的複雜度也 跟著增加。 當多個組件(例如,快取記憶體、處理器)請求相同的 資料區塊時,必須以保持資料之有效性的方法來解決多個 組件之間的衝突。目前的快取記憶體相干性協定典型上具 有一負責衝突排解的單一組件。但是,當系統的複雜度增 • 加時,只單靠一單一組件來解決衝突會使整個系統的性能 降低。 用來提供快取記憶體相干性’即窺察(現在常常被稱 爲對稱多重處理(Symmetric Multiprocessing SMP))及目錄 (常常被稱爲分散式共有記憶體(Distributed Shared Memory DSM))有兩種的基本設計。基本差異係與配置及 對元資訊的存取有關’亦即,有關於儲存快取線之拷貝之 位置的資訊。 對窺察式快取而言’以經快取之拷貝本身來分配資 -4 - (2) (2)1274998 訊,亦即,快取線的各個有效拷貝是被一單兀所持有’而 每當任何節點以一新的途徑來請求允許對快取線的存取 時,該單元必須察覺出其責任。某些位置(通常是在一固 定位置處)爲一儲存庫,當資料未被快取時,資料被儲存 於其中。此位置可容納有效的拷貝,即使當該線被快取 時。但是,請求節點通常不知道此節點的位置,即請求節 點只簡單地廣播所請求之快取線的位址以及所需的許可, 而且可能具有拷貝的所有節點都必須回應,以確保一致性 被維持,如果沒有其它(等位)節點回應,則含有未被快 取之拷貝的節點要回應。 對以目錄爲基礎之方案而言,除了儲存未被快取之資 料的固定位置以外,還有一個固定的位置,即指示被快取 之拷貝所在位置的目錄。爲了以一新的途徑來對快取線進 行存取,節點必須與含有該目錄的節點通信連絡,其通常 是與含有未被快取之儲存庫相同的節點,因此,當主要儲 存拷貝係有效時,允許回應的節點提供資料。這種節點被 稱爲起始節點(Η 〇 m e η 〇 d e)。 分散目錄的方式有二。其一,主要儲存資料(未被快 取的儲存庫)常常被分散於各節點中,且目錄也以相同的 方式分散。其二’元資訊本身可以被分散,起始節點處保 持與快取線不論是否被快取同樣少的資訊,且如果如此, 起始節點保持在單一拷貝所在之處。舉例來說,SC I使用 此方案’且每一個含有被快取之拷貝的節點與含有被快取 之拷貝的其它節點保持鏈結,因此,集體地維持一完整的 - 5- (3) (3)1274998 目錄。 窺察式方案靠的是廣播’因其沒有任何一個持有元資 訊之場所,所以,每次的詢問都必須通知所有節點,每〜 個節點負責做它該做的部分’以確保相干性被維持。這包 括了干預訊息,當另一節點正在提供資料時,通知起始節 點不要回應。 窺察式方案的優點在於回應可以是直接且快速的,但 不能做到良好的擴充,因爲所有的節點都需要觀察所有的 詢問。目錄式方案天生係可更加擴充的,但需要較複雜的 回應,常常涉及3個節點的點對點通信。 【發明內容及實施方式】 本文描述在多節點系統中,用於分散式快取相千性衝 突排解的技術。在以下的描述中,爲了解釋,提出了諸多 特定的詳細內容,以提供對本發明徹底的了解。但是,熟 悉此方面技術的人士將可明瞭,沒有這些特定的詳細內 容,照樣可實施本發明。在其他例中,結構與裝置係以方 塊圖的方式來予以顯示,以免對本發明造成混淆。 以下的討論係從多節點系統中之節點的觀點來予以提 供的。在一實施例中,節點包括具有內部快取記憶體、外 部快取記憶體及/或外部記憶體的處理器。在另一實施例 中’節點爲與其它電子系統互連的電子系統(例如,電腦 系統、可攜式裝置)。也可使用其它類型的節點組態。 在以下各圖中所描述的起始節點用作即將被請求之資 冬 (4) (4)1274998 料的起始節點,其意謂著起始節點與非快取記憶體(例 如,主記憶體)有關,而當未被快取時,即將被請求之資 料被儲存於非快速記憶體中。舉例來說,起始節點可以是 處理器、快取記憶體與隨機存取記憶體(RAM),其中, RAM提供資料一非快取儲存的位置。 所主張之標的物協助多節點系統中之分散式快取相干 性的衝突排解。在一實施例中,衝突排解被解決於起始節 點處。在一態樣中,所主張之標的物協助衝突排解協定, 其針對通信於節點間之訊息的數量係有效率的。舉例來 說,節點可以被分類如下:源節點、起始節點及對等節 點。所主張之標的物描述用於源節點與起始節點的協定。 在一實施例中,所主張之標的物利用一對等節點協定,如 同針對相應用所討論的。在圖5中將討論用於源節點的演 算法。同樣地,在圖6中將討論用於起始節點的演算法。 請求訊息 以下的訊息爲來自請求節點之對資料/動作的請求。 埠讀取無效線(PRIL):此爲對資料段之拷貝的請求, 其中,使提供者節點的資料拷貝無效。此訊息也可被稱爲 ’’所有權的請求"。在一實施例中,PRIL是向包括起始節 點的所有節點廣播。 埠寫入線 (PWL):此訊息致使資料(例如,經修改的 快取線)被寫到記憶體’因此,是一'寫回線。此訊息也可 被稱爲”髒追還”。在一實施例中,PWL被送到起始節點。 (5) 1274998 回應訊息 以下的訊息爲從對等節點(亦即,非起始節點)到請求 節點之訊息,以回應於上述請求。 獨有資料(E-DΑΤΑ) —當送出回應的節點具有所請求 之資料的獨有拷貝時,此訊息爲(P RIL)的爲對請求回應。 在一實施例中,該節點將資料的獨有拷貝向前送到請求節 點。 傳送到起始節點的訊息 這些訊息係藉由對等節點而被傳送給到始節點。 無效狀態確認(I_ACK):當送出回應的節點具有所請 求之資料的無效拷貝或沒有所請求之資料的拷貝時,以此 訊息回應請求(PRIL及PWL)。 獨有狀態確認(E_ACK) ··當送出回應的節點具有所請 0 求之資料的獨有拷貝或沒有所請求之資料的拷貝時,以此 訊息回應請求(PRIL及PWL)。 資料已接收的確認(D A CK):此訊息是被請求節點送 到起始節點。 I一ACK —Conflict :此訊息指示所請求之快取線有一共 同待解決的請求。 來自起始節點的訊息 這些訊息係從起始節點被送至對等及/或請求節點。 -8- 1274998 • (6) ^ 獨有完成(E_CMP):因爲請求節點已經接收到獨有 資料’所以此訊息指不具有獨有快取狀態之S靑求卽點之請 求的完成。在一實施例中,起始節點在發出此訊息之後將 快取線去配置(de-al locate)。 無效資料完成(I_DATA —CMP):此訊息包含所請求之 資料即將被送到請求節點,並指示具有’’無效”快取狀態之 請求節點之PRIL請求的完成。 # 完成(CMP):此訊息被送到請求PWL的節點,以指 示經修改之資料寫回記憶體的完成。 I_CMP :此訊息被送到發生衝突狀況之兩個節點的其 中之一,以指示衝突線被去配置。 XFER —(NodelD):此訊息致使接收節點將資料轉移到 訊息中所指示的節點。當起始節點被告知衝突狀況時,起 始節點將此訊息送到請求資料之目前擁有者,要求資料的 目前擁有者將資料轉移到目標節點。如果起始節點決定未 解決的衝突請求是P RIL訊息,則送出X F RI訊息而不是 X F R訊息,意指當啓動資料轉移時,目前的擁有者必須使 快取線無效。 E 一 CMP —XFER(NodelD) : E 一 CMP 一 XFER 爲係由 E一CMP與XFER訊息所構成的複合訊息。因此,此訊息指 不此事務是在起始節點處完成,並且也致使接收節點傳送 資料到訊息中所指示的節點。當起始節點被告知衝突狀況 時’起始節點將此訊息送到所請求之資料的目前擁有者, 要求資料的目前擁有者將資料轉移到目標節點。 (7) 1274998 至此,起始節點與請求節點間往來之訊息的討 束。 以下的討論係從多節點系統內之節點的觀點來予 供的。在-實施例中,_包含具有內部快取記憶體 部快取記憶體及/或外部記憶體的處理器。在另一實 中,節點爲與其它電子系統互連的電子系統(例如, 系統、可攜式裝置)。也可使用其它類型的節點組態 以下的例子中’在訊息之前的數字指示相對時間(以,, 頭的訊息是在以,,1 . 1 ”、”2”或”3 ”等開頭的訊息之前 出)。舉例來說,數字表示兩個節點之間大略的時 列。但是,此數字不能被用來決定不同節點對之間 序。例如,節點A與B之間的” 4 ”可能領先於節點c 之間的” 2 ”。而且,以虛線表示的訊息指示中按順序 order)起始通道。例如,中序起始通道可以是在一相 向上之相同的節點對之間,以確保來自請求節點之被 於來自相同請求節點之第二訊息之前的第一訊息係按 順序被接收(第一訊息能被接收節點接收到,而第二 隨後被接收節點接收到)。 圖1提供支援讀取事務之協定之槪念性舉例說明 施例。在此實施例中,複數個節點A、B及C被連接 始節點Η。很明顯地,所主張之標的物並不限於3 點,且可允許不同數量的節點。 在一態樣中,圖中描繪一讀取事務。節點的初始 如下。節點Α與Β具有資料的無效拷貝。反之,節
論結 以提 、外 施例 電腦 ,在 1,,開 被送 間序 的時 與D ;(i η -似方 送出 照該 訊息 的實 至起 個節 狀態 點C -10- (8) (8)1274998 具·有資料的獨有拷貝(此亦被描繪於圖中,做爲節點的第 〜狀態(I爲無效,E爲獨有)。 首先’請求節點A發出PRIL請求給節點B、C及起 始節點。在一實施例中,PRIL請求是以一按順序起始通 道而連通到起始節點。 接下來’節點C以E —DATA回應於節點A的PRIL請 求’並回以資料的獨有拷貝。同樣地,節點C以E_ACK ®應於起始節點,以指示節點C已向前傳送所請求之資料 的獨有拷貝。同時,節點B向前送出I_ACK,以指示其 具有所請求之資料的無效拷貝。 因此’因爲請求節點A已接收到獨有資料,所以起 始節點發出E __ C Μ P給節點a,以指示節點a對獨有資料 請求的完成。在一實施例中,起始節點在發出此訊息後將 快取線去配置。因此’起始節點根據接收自其他節點的訊 息來監督及控制讀取事務。 圖2 供支援易回競爭衝突之協定之槪念性舉例說明 的貝施例。在此貫5也例中,複數個節點A、B及C被連接 至起妃節點Η。很明顯地,所主張之標的物並不限於3個 節點,且可允許不同數量的節點。 在一態樣中,圖中描繪一寫回競爭衝突。節點的初始 狀態如下。節點Α與Β具有資料的無效拷貝。反之,節 點C具有資料之經修改的拷貝(此亦被描繪於圖中,做爲 節點的第一狀S?、(I爲無效,]y[爲經修改))。 首先,請求節點A發出pRIL請求給節點β、^及起 -11 - (9) (9)1274998 始節點。在一實施例中,PRIL請求是以一按順序起始通 道而被連通到起始節點。同時,節點C發出一 PWL請求 給起始節點,以便將經修改的資料寫回記憶體。在一實施 例中,P RI L請求是以一按順序起始通道而被連通到起始 節點。因此,由於A的修改資料請求與C的PWL(寫回) 請求相衝突,存在有寫回競爭衝突。在一實施例中,寫回 是在起始通道上送出,且在節點C處不會阻擋A的PRIL 請求。 接下來,節點C與B發出I_ACK訊息以回應A的 PRIL請求。I_ACK訊息被送到起始節點做爲A之PRIL 請求的回應,以指示它們具有所請求之資料的無效拷貝, 或是沒有所請求之資料的拷貝。 起始節點將解決此衝突。首先,起始節點在接收到來 自節點B及C的I_ACK訊息時,回應C的PWL請求及A 的PRIL請求。起始節點以CMP訊息回應給節點C,以指 示經修改之資料寫回記憶體的完成。此外,起始節點以 I_DATA_CMP訊息回應節點A,其包含所請求之資料並指 示A之PRIL請求的完成。 圖3提供支援兩個請求間,請求所有權之競爭衝突之 協定的槪念性舉例說明的實施例。例如,舉例說明中描繪 支援因在幾乎相同時間發出請求所導致之共用線衝突的協 定。首先,節點A傳送一 PRIL訊息給節點B、C及起始 節點240,以請求一資料區塊。在一實施例中,PRIL訊息 是經由按順序起始通道而被送到起始節點。在一短時間周 -12- 1274998 . do) - 期之後,或者甚至在同一時間,節點B將P RIL訊息送到 節點A、C及起始節點,請求相同的資料區塊。在一實施 例中,P RI L訊息是經由按順序起始通道而被送到起始節 點。 現在,有兩個競爭的P RIL訊息,一個來自節點A, 一個來自節點B。吾人先在此段中解釋對A之PRIL請求 的處理,在下段中再解釋對B之PRIL請求的處理。節點 ^ A和節點C兩者都將I_ACK_Conflict訊息送到起始節 點’以指示對所請求之快取線有一共同待解決的請求。 對於A的PRIL請求,節點C將E_Data訊息送到節 點A做爲對a之PRIL請求的回應,以指示節點C具有所 請求之資料的獨有拷貝。此外,在一實施例中,節點C將 資料的獨有拷貝向前傳送到A節點。同時,節點C將 E一ACK訊息送到起始節點,以指示它已將所請求之資料 的獨有拷貝向前傳送。在一實施例中,E_ACK訊息是經 由按順序起始通道而被送到起始節點。 對於B的PRIL請求,節點C將I —ACK訊息送到起 始節點,因爲節點C在將資料的獨有拷貝送到a節點之 後,使所請求的資料無效。 因此’起始節點由發出I —CMP訊息給節點B,以及 藉由發出E —CMP_XFER(B)訊息給節點a,以解決共同待 解決的PRIL請求。E_CMP —XFER(B)訊息致使接收節點 (節點A)將資料的獨有拷貝轉移到訊息中所指示的節點 (節點B )。當起始節點被告知衝突情況需要所請求之資 ~ 13 - (11) (11)1274998 料的目前擁有者將資料轉移到目標節點(在本例中爲節點 B)時’起始節點將E_CMP —XFER(B)訊息送到所請求之資 料的目前擁有者,在本例中爲節點A。 因此,節點A在接收到E —CMP —XFER(B)訊息後,藉 由將E —DATA訊息送到節點B而將資料的獨有拷貝轉移 到節點B。 圖4提供支援兩個請求間,請求所有權之延遲衝突之 協定的槪念性舉例說明的實施例。例如,節點A傳送一 P RIL訊息到節點B、C及起始節點,請求一資料區塊。如 果節點B在確認A之PRIL請求後發出一 PRIL請求,即 產生一延遲衝突。 首先,請求節點A發出一 PRIL請求給節點B、C及 起始節點。在一實施例中,PRIL訊息是經由按順序起始 通道而被連通起始節點。 接下來,節點C以E_ACK回應於A的PRIL及起始 節點,以指示節點C已向前傳送所請求之資料的獨有拷 貝。同時,節點B以I__ACK回應於A的PRIL,以指示其 具有所請求之資料的無效拷貝。 第三,節點B發出PRIL請求給節點B、C及起始節 點。在一實施例中,PRIL訊息是經由按順序起始通道而 被連通到起始節點。 第四,節點C以E_D ΑΤΑ回應於A的PRIL請求,此 外,節點C以I^Ack訊息回應於B的PRIL請求。同時, 節點A以I__Ack__Conflict訊息回應於B的PRIL到起始節 -14 - (12) (12)1274998 點。 第五,起始節點不管有衝突的事實仍將E _ C Μ P送到 節點Α。理想上,當偵測到衝突時,將XFER訊息與CMP 連結,就像圖3 —樣。但是這不會發生,因爲當起始節點 收集所有對A之PRIL請求的回應時,沒有出現衝突的指 示。衝突指示器I_Ack —Conflict ( A對B之PRIL的回 應)仍在途中,而且並未被起始節點所接收到。在此情況 中,節點A在接收到來自起始節點的E_CMP時,將一 DACK訊息送到起始節點,以指示節點A是快取線的所有 者,且因爲DACK是在按順序起始通道上被傳送,所以起 始節點錯過了衝突,且需要送出X f e r命令,其將推擠在 其前方的I_Ack_Conflict,而I一 Ack_Cnflict也是在相同 的起始通道上被傳送的。在一實施例中,D A C K訊息是以 按順序起始通道而被連通到起始節點。 因此,起始節點藉由先接收DACK,而後發出I_CMP 訊息給節點B,以及發出Xfer(B)訊息給節點A,以解決 兩請求者之間的延遲衝突。Xfer(B)訊息致使接收節點(節 點A )將資料的獨有拷貝轉移到訊息中所指示的節點(節點 B)。當起始節點被告知衝突情況需要所請求之資料的目前 擁有者將資料轉移到目標節點(在本例中爲節點B)時,起 始節點將X f e I· (B )訊息送到所請求之資料的目前擁有者, 在本例中爲節點A。因此,在接收到起始節點的Xfer(B) 訊息時’節點A以E _ D a t a訊息而將資料的獨有拷貝送到 節點B。 -15- (13) 1274998 圖5爲源節點演算法之方法的流程圖實施例。如先前 所討論的,節點可被分類如下··源節點、起始節點、及對 等節點。所主張之標的物描述在源節點處所使用的演算 法。在一實施例中,所主張之標的物使用對等節點協定, 女口同針對相關應用所討論的。 圖5描繪用於源節點演算法的方法。舉例來說,以下 的情況可致使斷定一 Dack訊息。 ® 在一實施例中,斷定D a c k的情況之一爲所請求的快 取線是在預定的狀態中,諸如向前傳送、獨有、或修改等 狀態,並偵測到至少一個衝突,且接收到完成而沒有轉移 (Xfr)訊息。 在另一實施例中,協定可被修改,俾使在衝突期間衝 突鏈中的每次事務,將被要求經過DACK階段。換言之, 圖3中的E_CMP —XFER將被己夂變成E 一 CMP 一 Conflict。在 接收到E_CMP__Conflict(衝突完成)時,節點 A將發出 0 DACK給起始節點。起始節點在接收到DACK之後,將會 發出XFER。這可以簡化硬體的實施,因爲其讓衝突處理 流程能夠相當類似於圖3及4。但是,所有衝突都使用 DACK,其將會稍微減緩衝突排解的速度。這通常不是問 題,因爲衝突不常發生。 在一實施例中,所有進來的請求都被阻擋在DACK的 斷定與DACK之CMP的接收之間。這協助起始節點決定 是否到達衝突鏈的終點。 在一實施例中,當接收到DACK的CMP或XFER,阻 -16- 1274998 - (14) * 擋情況被去除。該節點的行爲將會像對等節點一樣。 圖6爲起始節點演算法之方法的流程圖實施例。如先 前所討論的,節點可被分類如下:源節點、起始節點及對 等節點。所主張之標的物描述用於源節點及起始節點的協 定。在一實施例中,所主張之標的物是使用對等節點協 定’如同針對相關應用所討論的。 圖6描繪用於起始節點演算法的方法。舉例來說,起 ^ 始節點演算法可以被用來解決其它節點之間的衝突。 例如,在一實施例中,以下的條件/事件被用來收回 衝突。起始節點將收回(結束)衝突請求,並將衝突因子從 衝突鏈中移除,如果: 接收到所有的確認訊息,以及 接收到Xfer或向前傳送訊息,以及
Xfer被送出’或者該訊息爲衝突鏈中的最後一個訊 息。 — 替換地,在另一實施例中,以下的條件/事件被用來 收回衝突: 接收到所有的確認訊息,以及 所有的衝突都被找到,以及 衝突鏈中之待解決衝突不是轉移或向前傳送的目標, 以及
Xfer被送出,或者該訊息爲衝突鏈中的最後一個訊 息。 而且,起始節點演算法也監督及決定衝突訊息的格式 -17- (15) 1274998 • 與記錄。例如,來自一節點的衝突訊息可能只含有原始事 務的事務ID。替換地,在另一實施例中,來自一節點的 衝突訊息可能含有原始事務的事務ID與衝突事務的事務 ID。此兩個事務ID可以被用來建構一衝突鏈接表。由於 原始及衝突事務的ID兩者都出現,所以衝突鏈可被記錄 於兩事務之各自的記錄入口處。就像YAP(專利號碼???) 一樣,此協定需要一實質的記錄表,以儲存進行中的每一 B 個事務。當一請求抵達起始節點處時,起始節點可簡單地 查閱衝突鏈以找到所有的衝突,而不需要緩慢且浪費的位 址CAM。例如,圖2中從C到起始節點的ack被最佳 化成 I —Ack_Conflict。此 I_ A c k —C o nfl i c t 具有 A 的 PRIL 事務ID (原始的)及PWL事務ID (衝突因子)。當a的PRIL 抵達起始節點處,起始節點可以簡單地使用PWL的事務 ID,以取代緩慢且浪費的定址C A Μ搜尋,而P W L的事務 ID係記錄自I — Ack —Conflict,以尋找PWL記錄入口。 支援分散式快取記憶體相干性衝突排解的例示性系統 圖7爲節點之實施例的方塊圖。節點7 0 0係例舉有單 處理器、快取記憶體、記憶體控制器與記憶體;但是,在 一節點中可包括任何數目之任何這些組件。此外,節點內 還可包括附加及/或不同的組件(例如,匯流排橋接器)。 處理器7 1 0可以是習知技術中已知之任何類型的處理 器。在一實施例中,處理器7 1 0包括快取記憶體7 2 0。在 替換實施例中,快取記憶體7 20是在處理器7 1 0的外部, -18 - (16) 1274998 或者,處理器7 1 0的外部或內部還可包括附加的 體。 記憶體控制器7 3 0與快取記憶體720及記憶 連接。記憶體控制器7 3 0操作爲快取記憶體7 2 0 7 4 0之間的介面。在一實施例中,記憶體控制器 本文所描述的快取記憶體相干性協定來維持快取 干性。記憶體控制器7 3 0經由節點鏈結7 5 0而與 互動。在替換實施例中,如本文的描述,處理器 憶體控制器73 0互動,以保持快取記憶體相干性 器7 1 0經由替換的節點鏈結75 5而與其它節點互 在一實施例中,節點鏈結7 5 0包括用於每一 用介面,節點7 0 0與其互動。在替換實施例中, 7 5 0包括許多介面,其係與許多和節點7 0 0互動 同。在一實施例中,節點7 0 0與代表多個節點的 代理互動。 圖8爲多處理器系統的實施例。多處理器系 欲代表具有多個處理器的一列系統,例如電腦系 監視系統等等。替換的多處理器系統可包括更多 及/或不同的組件。在某些情況中,本文所描述 憶體管理技術可以被應用於單處理器及多處理器 處理器系統8 0 0可被組構而操作爲多節點系統。 多處理器系統8 0 0包括匯流排系統8 1 0或其 置以互通資訊。匯流排系統8 1 0可包括任何數目 及相關的互連電路,例如,匯流排橋接器。處理 快取記憶 體740相 與記憶體 7 3 0按照 記憶體相 其它節點 7 1 〇與記 ,且處理 動。 節點的專 節點鏈結 之節點不 一或多個 統8 00意 統、即時 或更少, 的快取記 系統。多 它通信裝 的匯流排 器82 0係 -19: (17) (17)
1274998 與匯流排系統8 1 0相連接以處理資訊。處理器8 2 Ο · 快取記憶體822,例如,〇階(LO)的快取記憶體,J 取記憶體控制器824。在一實施例中,處理器820」 取記憶體82 5相連接,其可以爲任何類型的快取記j 在替換實施例中,快取記憶體8 2 5可與匯流排系統 連接。其它類型的處理器-快取記憶體組態也都可使 在一實施例中,快取記憶體控制器824係經由1 億體介面828而與快取記憶體822相連接,其可以j 例來說,處理器820內部的匯流排。快取記憶體控f 經由快取記憶體介面826而與快取記憶體825相連3 提供處理器820與外部快取記憶體之間的介面。 多處理器系統800另包括具有快取記憶體8 3 2 J 記憶體控制器8 3 4的處理器8 3 0。快取記憶體控制彳 係經由快取記憶體介面8 3 8而與快取記憶體8 3 2相$ 同樣地,快取記憶體控制器8 3 4係經由快取記憶體 8 3 6而與快取記憶體8 3 5相連接。在一實施例中,快 億體8 3 5與處理器83 0相連接。 雖然多處理器系統8 0 0係例舉有兩個處理器,但 理器系統8 0 0可包括任何數目的處理器及/或協同 器。多處理器系統8 0 0另包括與匯流排系統8 1 0相連 g己憶體系統8 4 0。記憶體系統8 4 0在適當的場合可包 態(例如,隨機存取記億體)及靜態(例如,唯讀記憶 C D - R 〇 Μ、碟片儲存、快閃記憶體)記憶體裝置的任意 及相關的裝置。記憶體系統8 4 0的記憶體裝置被用來 1*包括 (及快 i與快 體。 :10相 目。 !:取記 卜舉 1器係 h苴 :快取 "34 丨接。 :介面 :取記 .多處 .處理 接的 括動 體、 組合 儲存 -20- (18) 1274998 .由多處理器系統8 00之處理器所執行之資訊及指令。在處 理器執行指令期間,記憶體系統840也可被用來儲存暫時 性的變數或其它中間資訊。 指令可從靜態或遠端儲存裝置(諸如磁碟片、唯讀記 億體(ROM)積體電路、CD-ROM、DVD)經由遠端連接(可 以是有線或無線連接等)而被提供給記億體系統840。在 替換實施例中,可用固定線路電路來取代軟體指令’或者 瞻固定線路電路可以與軟體指令相結合。因此,序列指令的 執行並不限於固定線路電路與軟體指令之任何特定的組 合。 多處理器系統8 0 0另包括網路介面8 5 0,以提供對網 路的存取,諸如區域網路及/或網際網路。網路介面8 5 0 能夠提供無線及/或有線的網路介面,其可包括與遠端電 子可存取媒體間之指令的往來通信。電子可存取媒體包括 提供(亦即,儲存及/或傳送)可被電子裝置(例如,電 ^ 腦、個人數位助理、蜂巢式電話)讀取之形式的內容(例 如,電腦可執行指令)的任何機構。 舉例來說,機器可存取媒體包括唯讀記億體(ROM)、 隨機存取記憶體(RAM)、磁碟片儲存媒體、光學儲存媒 體、快閃記憶體裝置;電氣、光學、聲學或其它型式之傳 播信號(例如載波、紅外線信號、數位信號)。 多處理器系統8 0 0可包括顯示裝置8 6 0,諸如陰極射 線管(CRT)或液晶顯示器(LCD),以顯示資訊。輸入裝置 8 7 0包括,例如具有文數字及其它鍵的鍵盤,典型上係連 - 21 - (19) (19)1274998 接至匯流排810,以選擇性地與處理器82 〇及/或8 3 〇通信 資訊及命令選擇。其它類型的使用者輸入裝置爲游標控制 裝置’諸如滑鼠、軌跡球、或游標方向鍵,以選擇性地與 處理器8 2 0及8 3 0通信方向資訊及命令選擇,及控制游標 在顯示裝置8 6 0上的移動。 本說明書中參考的’’ 一個實施例”或”一實施例”意指在 本發明之至少一個實施例中所包含之關於該實施例所描述 的特定特徵、結構或特性。本說明書中各處出現的”在一 實施例中” 一語,不需將其全部視爲相同的實施例。 在上述的說明書中,本發明已參照其特定的實施例來 加以描述。但是,很明顯地,另外可做各種的修改與變 化’而不會偏離本發明之較廣義的精神與範圍。因此,說 明書及圖式可視爲說明而無限制意味。 【圖式簡單說明】 本發明係經由C實例來予以舉例說明,但這些實例並 非限制的,在所附圖式的各圖中,相同的參考編號代表相 同的元件。 圖1提供支援讀取事務之協定之槪念性舉例說明的實 施例。 圖2提供支援寫回競爭衝突之協定的槪念性舉例說明 的實施例。 圖3提供支援兩個請求間,請求所有權之競爭衝突之 協定的槪念性說明的實施例。 -22- 1274998 • (20) • 圖4提供支援兩個請求間,請求所有權之延遲衝突之 協定的槪念性舉例說明的實施例。 圖5係用於源節點演算法之方法的流程圖的實施例。 圖6係用於起始節點演算法之方法的流程圖的實施 例。 圖7係節點之實施例的方塊圖。 圖8係多處理器系統的實施例。 【主要元件符號說明】 700 節 點 7 10 處 理 器 720 快 取 記 憶 體 730 記 憶 體 控 制 器 740 記 憶 體 750 節 點 鏈 結 755 節 點 鏈 結 800 多 處 理 器 系 統 8 10 匯 流 排 系 統 820 處 理 器 822 快 取 記 憶 體 824 快 取 記 憶 體 控 制器 825 快 取 記 憶 體 826 快 取 記 憶 體 介 面 828 快 取 記 憶 體 介 面 -23- 1274998 (21) 832 快 取 記 憶 體 834 快 取 記 憶 體 控 制器 830 處 理 器 83 6 快 取 記 憶 體 介 面 83 8 快 取 記 憶 體 介 面 835 快 取 記 憶 體 840 記 憶 體 系 統 850 網 路 介 面 860 顯 示 裝 置 870 輸 入 裝 置 -24
Claims (1)
1274998 - (1) . 十、申請專利範圍 1. 一種用於記憶體相干性之方法,包含: 在多節點系統中,將對資料區塊之拷貝的請求彳足胃_ 對等節點傳送給多個節點; 將資料區塊的拷貝從第二對等節點傳送給第—對等_ 點,並傳送一確認給起始節點;以及 從起始節點傳送完成訊息給第一節點,以指+ ·+* a· μ 了日Τρ;來自第 一對等節點的請求之完成。 2 ·如申請專利範圍第1項的方法,其中,阶%次r N ^ 將封資料 區塊之拷貝的請求從第一對等節點傳送給多個節點包含^ 第一對等節點經由按順序起始通道傳送給起始節s占。 3 ·如申請專利範圍第1項的方法,其中,從第二對 等節點傳送給第一對等節點之資料區塊的拷貝爲裔料區塊^ 的獨有拷貝。 4· 一種用於記憶體相干性之方法,包含以下步驟: ® 在多節點系統中,將對資料區塊之拷貝的請求從第_ 對等節點傳送給多個節點; 將資料區塊的拷貝從第二對等節點傳送給第一對等節 點,並傳送一確認給起始節點;以及 從起始節點傳送完成訊息給第一節點,以指示來自第 一對等節點的請求之完成,並將與資料區塊之拷貝相關的 快取線去配置。 5·如申請專利範圍第4項的方法,其中,將對資料 區塊之拷貝的請求從第一對等節點傳送給多個節點包含從 >25- 1274998 • (2) ’ 第〜對等節點經由按順序起始通道傳送給起始節點。 6 ·如申請專利範圍第4項的方法,其中,從第二對 等節點傳送給第一對等節點之資料區塊的拷貝爲資料區塊 的獨有拷貝。 7 · —種用以支援分散式快取記憶體相干性衝突排解 之系統,包含·· 複數個封等卽點’係連接至起始節點,由快取記憶體 相干性協定所監督,而快取記憶體相干性協定係至少部分 根據藉由起始節點來解決複數個對等節點間的衝突,如果 發生以下情況: 接收到所有複數個確認訊息,以及 接收到一轉移(Xfer)訊息或向前傳送訊息,及 轉移(Xfer)訊息被送出,或該訊息爲衝突鏈中的最後 一個訊息; 貝(1,起始節點收回衝突的請求,並從衝突鏈中移除衝 _突因子。 8 .如申請專利範圍第7項的系統,另包含如果發生 以下情況: 接收到所有複數個確認訊息,及 所有複數個衝突都被找到,以及 衝突鏈中複數個待解決的衝突不是轉移或向前傳送的 目標,以及 轉移(Xfer)訊息被送出,或該訊息爲衝突鏈中的最後 一個訊息; -26- (3) (3)1274998 則,起始節點收回衝突的請求,並從衝突鏈中移除衝 突算子。 9.如申請專利範圍第7項的系統,其中,該衝突訊 息僅含有原始事務的事務ID。 10·如申請專利範圍第7項的系統,其中,該衝突訊 息含有原始事務的事務ID以及衝突事務的事務id。 11· 一種用以支援分散式快取記憶體相干性衝突排解 之系統,包含: 至少一連接至複數個對等節點的源節點,複數個對等 節點連接至起始節點,由快取記憶體相干性協定所監督, 快取記憶體相干性協定至少部分根據藉由起始節點來解決 複數個封寺自卩點間的衝突’源節點請求至少一快取線的拷 貝,如果發生以下情況: 如果快取線爲在向前傳送、獨有或修改狀態其中之一 的快取線,並偵測到至少一個衝突,且接收到完成而沒有 接收到轉移(Xfr)訊息; 則,源節點斷定資料確認訊息。 1 2 ·如申請專利範圍第1 1項的系統,其中,該快取 記憶體相干性協定協助在衝突期間,衝突鏈中的每一個事 務啓動一資料確認循環。 1 3 ·如申請專利範圍第〗2項的系統,其中,該資料 確認循環包含將 E_CMP —XFER 訊息變換成 E —CMP_Conflict 訊息。 1 4 ·如申請專利範圍第1 2項的系統,另包含如果發 -27- (4) (4)1274998 生以下情況: 所有進來的請求都被阻擋在資料確認訊息之斷定與資 料訊息之完成的接收之間; 則,源節點斷定一資料確認訊息。 ]5 . —種用以解決寫回競爭衝突的方法,包含: 在多節點系統中’將封資料區塊之拷貝的請求從第一 對等節點傳送給多個節點; 將經修改之資料區塊之拷貝的快取線(寫回線)被寫入 g己憶體中的請求,從第二對等節點傳送給起始節點;以及 在起始節點處解決第一對等節點與第二對等節點間的 寫回競爭衝突 。 1 6.如申請專利範圍第1 5項的方法,其中,從第二 k寸等自卩點到起始卽點的易回目靑求係經由中序起始通道來予 以傳送的。 1 7 ·如申請專利範圍第1 5項的方法,其中,第二對 等節點及第三對等節點產生I — ACK訊息,以回應第一節 點的請求。 18·如申請專利範圍第1 5項的方法,其中,解決寫 回競爭衝突包含起始節點將藉由以下步驟來解決彳厨^ ·· 以完成CMP訊息回應給第一對等節點,而完成CMP 訊息指示經修改之資料寫回記憶體之完成;以及 以I —DATA-CMP訊息回應第一對等節點,而 I〜DATA_CMP訊息包括資料區塊之拷貝及指示來自第一對 等節點之請求的完成。 -28- (5) 1274998 ί9· V種爲兩實質上同時發生之請求之所有權的請求 解決競^孝衝突的方法,包含: 在多節點系統中,將對資料區塊之拷貝的請求從第一 對等節點傳送給多個節點; 在多節點系統中’將對相同資料區塊之拷貝的請求從 第二對等節點傳送給多個節點; 在起始節點處解決第一對等節點與第二對等節點之 間的競爭衝突。 2 〇 ·如申請專利範圍第1 9項的方法,其中,從第一
對等節點到起始節點的請求係經由按順序起始 通道 來予以傳送的。 2 1·如申請專利範圍第丨5項的方法,其中,該解決 競爭衝突包含起始節點將藉由以下步驟來解決衝突:
在起始節點處接收來自第一及第二對等節點的 一ACK —Conflict訊息,以指示所請求之快取線有一共同待 解決的請求;以及 ^ - …心,丨、口來一對寺節點, 曰π弟二對等節點具有所請求資料的獨有拷目,且第三 對=點將資料的獨有拷貝向前傳送給第—對等節點;第 二Γ嶋E—ACK訊息給起始節點,以指示其已將 Bra、之貝料的獨有拷貝向前傳送給第一對等節點; 一從第三對等節點送出LACK訊息給起始節里’ 應桌二對等節g纟的^ 以回 〜 因其在送出資料的獨有拷貝給第 ¥、寺lp點之後’已使所請求的資料無效;以及 ” -29- (6) 1274998 經由起始節點發出I_CMP訊息 出 E — CMP —XFER(第二節點1D)訊息; 決競爭衝突;E_CMP_XFER(第二節點 等節點將資料的獨有拷貝轉移到第二: '第二對等節點及發 第一對等節點來解 ID)訊息致使第一對 等節點。
- 30-
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/833,963 US7822929B2 (en) | 2004-04-27 | 2004-04-27 | Two-hop cache coherency protocol |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200608204A TW200608204A (en) | 2006-03-01 |
TWI274998B true TWI274998B (en) | 2007-03-01 |
Family
ID=34966020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW094111562A TWI274998B (en) | 2004-04-27 | 2005-04-12 | Method for memory coherency, systems for supporting distributed cache coherency conflict resolution, method for resolving a writeback race conflict, and for resolving a race conflict for request for ownership of two substantially simultaneous requests |
Country Status (8)
Country | Link |
---|---|
US (1) | US7822929B2 (zh) |
JP (1) | JP4789926B2 (zh) |
KR (1) | KR100880059B1 (zh) |
CN (1) | CN100377114C (zh) |
DE (1) | DE112005000974T5 (zh) |
GB (2) | GB2447119B (zh) |
TW (1) | TWI274998B (zh) |
WO (1) | WO2005109206A2 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7512741B1 (en) | 2006-01-11 | 2009-03-31 | Intel Corporation | Two-hop source snoop based messaging protocol |
JP4572169B2 (ja) * | 2006-01-26 | 2010-10-27 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステム及びその動作方法 |
JP4449931B2 (ja) * | 2006-03-30 | 2010-04-14 | ブラザー工業株式会社 | 管理装置、および管理システム |
US7941610B2 (en) | 2006-04-27 | 2011-05-10 | Hewlett-Packard Development Company, L.P. | Coherency directory updating in a multiprocessor computing system |
US7836144B2 (en) * | 2006-12-29 | 2010-11-16 | Intel Corporation | System and method for a 3-hop cache coherency protocol |
US8190820B2 (en) | 2008-06-13 | 2012-05-29 | Intel Corporation | Optimizing concurrent accesses in a directory-based coherency protocol |
US8205045B2 (en) * | 2008-07-07 | 2012-06-19 | Intel Corporation | Satisfying memory ordering requirements between partial writes and non-snoop accesses |
US8250311B2 (en) | 2008-07-07 | 2012-08-21 | Intel Corporation | Satisfying memory ordering requirements between partial reads and non-snoop accesses |
WO2013100984A1 (en) * | 2011-12-28 | 2013-07-04 | Intel Corporation | High bandwidth full-block write commands |
US9235519B2 (en) * | 2012-07-30 | 2016-01-12 | Futurewei Technologies, Inc. | Method for peer to peer cache forwarding |
US20140040561A1 (en) * | 2012-07-31 | 2014-02-06 | Futurewei Technologies, Inc. | Handling cache write-back and cache eviction for cache coherence |
US9152501B2 (en) * | 2012-12-19 | 2015-10-06 | International Business Machines Corporation | Write performance in fault-tolerant clustered storage systems |
US9727464B2 (en) * | 2014-11-20 | 2017-08-08 | International Business Machines Corporation | Nested cache coherency protocol in a tiered multi-node computer system |
US9886382B2 (en) | 2014-11-20 | 2018-02-06 | International Business Machines Corporation | Configuration based cache coherency protocol selection |
US11269773B2 (en) * | 2019-10-08 | 2022-03-08 | Arm Limited | Exclusivity in circuitry having a home node providing coherency control |
Family Cites Families (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5297269A (en) | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
JPH04261487A (ja) * | 1991-02-15 | 1992-09-17 | Sekisui Chem Co Ltd | 粘着テープ |
US5190386A (en) * | 1992-01-28 | 1993-03-02 | Eudy James R | Printer with edge strip trimmer |
US5463629A (en) | 1992-07-13 | 1995-10-31 | Ko; Cheng-Hsu | Dynamic channel allocation method and system for integrated services digital network |
EP0600626A1 (en) | 1992-11-13 | 1994-06-08 | Cyrix Corporation | Coherency for write-back cache in a system designed for write-through cache |
US5812814A (en) * | 1993-02-26 | 1998-09-22 | Kabushiki Kaisha Toshiba | Alternative flash EEPROM semiconductor memory system |
JP2819982B2 (ja) | 1993-03-18 | 1998-11-05 | 株式会社日立製作所 | 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム |
JP3183993B2 (ja) | 1993-03-31 | 2001-07-09 | 株式会社東芝 | ディスク制御システム |
US5623644A (en) | 1994-08-25 | 1997-04-22 | Intel Corporation | Point-to-point phase-tolerant communication |
US5893160A (en) * | 1996-04-08 | 1999-04-06 | Sun Microsystems, Inc. | Deterministic distributed multi-cache coherence method and system |
US5819296A (en) | 1996-10-31 | 1998-10-06 | Veritas Software Corporation | Method and apparatus for moving large numbers of data files between computer systems using import and export processes employing a directory of file handles |
US6636944B1 (en) | 1997-04-24 | 2003-10-21 | International Business Machines Corporation | Associative cache and method for replacing data entries having an IO state |
US6189043B1 (en) | 1997-06-09 | 2001-02-13 | At&T Corp | Dynamic cache replication in a internet environment through routers and servers utilizing a reverse tree generation |
US6092155A (en) | 1997-07-10 | 2000-07-18 | International Business Machines Corporation | Cache coherent network adapter for scalable shared memory processing systems |
US6085276A (en) * | 1997-10-24 | 2000-07-04 | Compaq Computers Corporation | Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies |
US6009488A (en) | 1997-11-07 | 1999-12-28 | Microlinc, Llc | Computer having packet-based interconnect channel |
US6460119B1 (en) | 1997-12-29 | 2002-10-01 | Intel Corporation | Snoop blocking for cache coherency |
US6341337B1 (en) | 1998-01-30 | 2002-01-22 | Sun Microsystems, Inc. | Apparatus and method for implementing a snoop bus protocol without snoop-in and snoop-out logic |
US6067611A (en) | 1998-06-30 | 2000-05-23 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that buffers potential third node transactions to decrease communication latency |
US6430657B1 (en) | 1998-10-12 | 2002-08-06 | Institute For The Development Of Emerging Architecture L.L.C. | Computer system that provides atomicity by using a tlb to indicate whether an exportable instruction should be executed using cache coherency or by exporting the exportable instruction, and emulates instructions specifying a bus lock |
JP2000132531A (ja) * | 1998-10-23 | 2000-05-12 | Pfu Ltd | マルチプロセッサ |
US6275907B1 (en) | 1998-11-02 | 2001-08-14 | International Business Machines Corporation | Reservation management in a non-uniform memory access (NUMA) data processing system |
US6477535B1 (en) | 1998-11-25 | 2002-11-05 | Computer Associates Think Inc. | Method and apparatus for concurrent DBMS table operations |
US6338122B1 (en) | 1998-12-15 | 2002-01-08 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node |
KR100615660B1 (ko) * | 1998-12-21 | 2006-08-25 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 메모리 취소 메세지를 이용한 시스템 메모리 대역폭의유지 및 캐시 코히런시 유지 |
US6275905B1 (en) | 1998-12-21 | 2001-08-14 | Advanced Micro Devices, Inc. | Messaging scheme to maintain cache coherency and conserve system memory bandwidth during a memory read operation in a multiprocessing computer system |
US6370621B1 (en) | 1998-12-21 | 2002-04-09 | Advanced Micro Devices, Inc. | Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation |
US6263409B1 (en) | 1998-12-22 | 2001-07-17 | Unisys Corporation | Data processing system and method for substituting one type of request for another for increased performance when processing back-to-back requests of certain types |
US6275995B1 (en) * | 1999-02-26 | 2001-08-21 | Sweports Limited | Hand covering with reversible cleaning membrane |
JP4363539B2 (ja) | 1999-06-04 | 2009-11-11 | 諏訪熱工業株式会社 | ボールペン用ボール |
US6442597B1 (en) | 1999-07-08 | 2002-08-27 | International Business Machines Corporation | Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory |
US6484220B1 (en) | 1999-08-26 | 2002-11-19 | International Business Machines Corporation | Transfer of data between processors in a multi-processor system |
US6405289B1 (en) | 1999-11-09 | 2002-06-11 | International Business Machines Corporation | Multiprocessor system in which a cache serving as a highest point of coherency is indicated by a snoop response |
JP3959914B2 (ja) | 1999-12-24 | 2007-08-15 | 株式会社日立製作所 | 主記憶共有型並列計算機及びそれに用いるノード制御装置 |
US6493809B1 (en) | 2000-01-28 | 2002-12-10 | International Business Machines Corporation | Maintaining order of write operations in a multiprocessor for memory consistency |
US6922755B1 (en) | 2000-02-18 | 2005-07-26 | International Business Machines Corporation | Directory tree multinode computer system |
US6769017B1 (en) | 2000-03-13 | 2004-07-27 | Hewlett-Packard Development Company, L.P. | Apparatus for and method of memory-affinity process scheduling in CC-NUMA systems |
US7062541B1 (en) | 2000-04-27 | 2006-06-13 | International Business Machines Corporation | System and method for transferring related data objects in a distributed data storage environment |
US6640287B2 (en) | 2000-06-10 | 2003-10-28 | Hewlett-Packard Development Company, L.P. | Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests |
US6795900B1 (en) | 2000-07-20 | 2004-09-21 | Silicon Graphics, Inc. | Method and system for storing data at input/output (I/O) interfaces for a multiprocessor system |
US6594733B1 (en) | 2000-09-27 | 2003-07-15 | John T. Cardente | Cache based vector coherency methods and mechanisms for tracking and managing data use in a multiprocessor system |
US6760728B1 (en) | 2000-09-27 | 2004-07-06 | Palmsource, Inc. | Method and apparatus for importing and exporting directory and calendar information to and from personal information management applications |
US6631449B1 (en) | 2000-10-05 | 2003-10-07 | Veritas Operating Corporation | Dynamic distributed data system and method |
DE10052443A1 (de) * | 2000-10-23 | 2002-05-08 | Boehringer Werkzeugmaschinen | Kombimaschine |
US6826591B2 (en) | 2000-12-15 | 2004-11-30 | International Business Machines Corporation | Flexible result data structure and multi-node logging for a multi-node application system |
US6571322B2 (en) | 2000-12-28 | 2003-05-27 | International Business Machines Corporation | Multiprocessor computer system with sectored cache line mechanism for cache intervention |
US6859864B2 (en) * | 2000-12-29 | 2005-02-22 | Intel Corporation | Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line |
US6615319B2 (en) * | 2000-12-29 | 2003-09-02 | Intel Corporation | Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture |
US6763434B2 (en) | 2000-12-30 | 2004-07-13 | International Business Machines Corporation | Data processing system and method for resolving a conflict between requests to modify a shared cache line |
US6842830B2 (en) | 2001-03-31 | 2005-01-11 | Intel Corporation | Mechanism for handling explicit writeback in a cache coherent multi-node architecture |
US6877026B2 (en) | 2001-06-08 | 2005-04-05 | Sun Microsystems, Inc. | Bulk import in a directory server |
US6901485B2 (en) | 2001-06-21 | 2005-05-31 | International Business Machines Corporation | Memory directory management in a multi-node computer system |
US6691192B2 (en) | 2001-08-24 | 2004-02-10 | Intel Corporation | Enhanced general input/output architecture and related methods for establishing virtual channels therein |
US20030074430A1 (en) | 2001-10-05 | 2003-04-17 | Gieseke Eric James | Object oriented provisioning server object model |
US6785774B2 (en) * | 2001-10-16 | 2004-08-31 | International Business Machines Corporation | High performance symmetric multiprocessing systems via super-coherent data mechanisms |
US6877030B2 (en) | 2002-02-28 | 2005-04-05 | Silicon Graphics, Inc. | Method and system for cache coherence in DSM multiprocessor system without growth of the sharing vector |
US6944719B2 (en) | 2002-05-15 | 2005-09-13 | Broadcom Corp. | Scalable cache coherent distributed shared memory processing system |
US7269709B2 (en) | 2002-05-15 | 2007-09-11 | Broadcom Corporation | Memory controller configurable to allow bandwidth/latency tradeoff |
US7209976B2 (en) | 2002-07-16 | 2007-04-24 | Jeremy Benjamin | Protocol communication and transit packet forwarding routed between multiple virtual routers within a single physical router |
US7051163B2 (en) * | 2002-10-03 | 2006-05-23 | Hewlett-Packard Development Company, L.P. | Directory structure permitting efficient write-backs in a shared memory computer system |
US6934814B2 (en) | 2002-11-05 | 2005-08-23 | Newisys, Inc. | Cache coherence directory eviction mechanisms in multiprocessor systems which maintain transaction ordering |
US7209776B2 (en) * | 2002-12-03 | 2007-04-24 | Aesculap Ag & Co. Kg | Method of determining the position of the articular point of a joint |
US7130969B2 (en) | 2002-12-19 | 2006-10-31 | Intel Corporation | Hierarchical directories for cache coherency in a multiprocessor system |
US6922756B2 (en) * | 2002-12-19 | 2005-07-26 | Intel Corporation | Forward state for use in cache coherency in a multiprocessor system |
US7111128B2 (en) | 2002-12-19 | 2006-09-19 | Intel Corporation | Hierarchical virtual model of a cache hierarchy in a multiprocessor system |
US6954829B2 (en) | 2002-12-19 | 2005-10-11 | Intel Corporation | Non-speculative distributed conflict resolution for a cache coherency protocol |
JP3944449B2 (ja) | 2002-12-19 | 2007-07-11 | 株式会社日立製作所 | 計算機システム、磁気ディスク装置、および、ディスクキャッシュ制御方法 |
US7917646B2 (en) * | 2002-12-19 | 2011-03-29 | Intel Corporation | Speculative distributed conflict resolution for a cache coherency protocol |
JP4085389B2 (ja) * | 2003-12-24 | 2008-05-14 | 日本電気株式会社 | マルチプロセッサシステム、マルチプロセッサシステムにおける一貫性制御装置及び一貫性制御方法 |
US8145847B2 (en) * | 2004-01-20 | 2012-03-27 | Hewlett-Packard Development Company, L.P. | Cache coherency protocol with ordering points |
US7818391B2 (en) * | 2004-01-20 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | System and method to facilitate ordering point migration |
US7533134B2 (en) | 2004-04-01 | 2009-05-12 | Microsoft Corporation | Systems and methods for the propagation of conflict resolution to enforce item convergence (i.e., data convergence) |
-
2004
- 2004-04-27 US US10/833,963 patent/US7822929B2/en not_active Expired - Fee Related
-
2005
- 2005-04-08 JP JP2007509505A patent/JP4789926B2/ja not_active Expired - Fee Related
- 2005-04-08 GB GB0802718A patent/GB2447119B/en active Active
- 2005-04-08 GB GB0620090A patent/GB2427730B/en active Active
- 2005-04-08 WO PCT/US2005/012087 patent/WO2005109206A2/en active Application Filing
- 2005-04-08 DE DE112005000974T patent/DE112005000974T5/de not_active Withdrawn
- 2005-04-08 KR KR1020067022561A patent/KR100880059B1/ko not_active IP Right Cessation
- 2005-04-12 TW TW094111562A patent/TWI274998B/zh active
- 2005-04-27 CN CNB200510068123XA patent/CN100377114C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2005109206A2 (en) | 2005-11-17 |
GB2427730B (en) | 2008-10-29 |
GB0620090D0 (en) | 2006-11-22 |
US20070022252A1 (en) | 2007-01-25 |
GB2447119B (en) | 2008-12-03 |
KR100880059B1 (ko) | 2009-01-22 |
US7822929B2 (en) | 2010-10-26 |
JP4789926B2 (ja) | 2011-10-12 |
GB2447119A (en) | 2008-09-03 |
KR20070007865A (ko) | 2007-01-16 |
TW200608204A (en) | 2006-03-01 |
JP2007535037A (ja) | 2007-11-29 |
GB2427730A (en) | 2007-01-03 |
CN1690986A (zh) | 2005-11-02 |
GB0802718D0 (en) | 2008-03-26 |
CN100377114C (zh) | 2008-03-26 |
WO2005109206A3 (en) | 2006-02-02 |
DE112005000974T5 (de) | 2007-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI274998B (en) | Method for memory coherency, systems for supporting distributed cache coherency conflict resolution, method for resolving a writeback race conflict, and for resolving a race conflict for request for ownership of two substantially simultaneous requests | |
JP4261487B2 (ja) | キャッシュ・コヒーレンス・プロトコルに対する投機的分散競合解決 | |
TW200424854A (en) | Non-speculative distributed conflict resolution for a cache coherency protocol | |
JP5575870B2 (ja) | 部分読出と非スヌープアクセスとの間のメモリ順序付け要件の充足 | |
CN1729458B (zh) | 状态转发方法 | |
US20070079075A1 (en) | Providing cache coherency in an extended multiple processor environment | |
TW200815992A (en) | An exclusive ownership snoop filter | |
TW200821834A (en) | Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation | |
TW200832133A (en) | Handling of write access requests to shared memory in a data processing apparatus | |
US20080162661A1 (en) | System and method for a 3-hop cache coherency protocol | |
US11119927B2 (en) | Coordination of cache memory operations | |
TWI386810B (zh) | 多處理器系統以目錄為主之資料傳輸協定 | |
JP2018109965A (ja) | データ処理 | |
US20050240734A1 (en) | Cache coherence protocol | |
US7506108B2 (en) | Requester-generated forward for late conflicts in a cache coherency protocol | |
TW200529001A (en) | A protocol for maintaining cache coherency in a CMP | |
EP3788492B1 (en) | Separating completion and data responses for higher read throughput and lower link utilization in a data processing network | |
US8090914B2 (en) | System and method for creating ordering points | |
US20050262250A1 (en) | Messaging protocol | |
JP7277075B2 (ja) | スヌープリクエストに対する応答の転送 | |
CN110083548A (zh) | 数据处理方法及相关网元、设备、系统 | |
JP6570873B2 (ja) | マルチプロセッサシステムのメインメモリ対する投機的クエリ | |
US8972663B2 (en) | Broadcast cache coherence on partially-ordered network |