TWI338843B - A method for supporting improved burst transfers on a coherent bus - Google Patents

A method for supporting improved burst transfers on a coherent bus Download PDF

Info

Publication number
TWI338843B
TWI338843B TW094100644A TW94100644A TWI338843B TW I338843 B TWI338843 B TW I338843B TW 094100644 A TW094100644 A TW 094100644A TW 94100644 A TW94100644 A TW 94100644A TW I338843 B TWI338843 B TW I338843B
Authority
TW
Taiwan
Prior art keywords
cache
bus
response
processor
snoop
Prior art date
Application number
TW094100644A
Other languages
English (en)
Other versions
TW200534110A (en
Inventor
Charles Ray Johns
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW200534110A publication Critical patent/TW200534110A/zh
Application granted granted Critical
Publication of TWI338843B publication Critical patent/TWI338843B/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/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • 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
    • 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/0877Cache access modes
    • G06F12/0879Burst mode

Description

1338843 九、發明說明: 【發明所屬之技術領域】 本發明通常係關於多處理器架構領域,且更具體言之, 本發明係關於連接處理器之連貫匯流排上之資料轉^。 【先前技術】 藉由將CPU添加至共用匯流排而提供額外處理能力之先 前努力產生了 CPU間之簡單的主從式關係,稱為”非連貫不 對稱型多重處理"。儘管此架構彳艮簡單,但是其會因處理器 中之不良的任務分配而很快便達到了 "過早的,,瓶頸狀熊 (botUeneck)。架構限制發生在軟體與硬體中。早期,作= 系統_軟體既不能在多處理器(Mp)系統中執行,亦不能 充分利用增加之處理能力。 另外,大多⑽驅動程式是"單線程的”,其將其執行限制 為單-專用職理器。最初’此不是主要問題,因為"非 連貫不對稱型硬體,,通常不允許所有處理器存取所有系統 資源。一般而言,非連貫不對稱型硬體將單一處理器專用 請函數。此單,處理器之效能在其達到其效能限制時 可(且常常的確)變為系統瓶頸狀態。非連貫不對稱型硬體與 單線程軟體對系統效能造成障壁。因此,因為添加處理器 並不有益於由系統之處理器之一處理器的效能所限制之系 統,所以非連貫不對稱型機器顯示有限的可生 (scalability) 〇 、 f此則狀態之解決方法係再設計硬體與軟體,其導致 7之Ό線&軟體||合之對稱型多處理器(SMp)。”請p, 98778.doc 1338843 係此-系統:其令所有處 1 β私士 疋相问的’且所有資源、尤 疋所有記憶體及1/0空間與
SlUPl® 8A 、斷同樣疋可存取的。雖然 SMP硬體之對稱性質排除 須有效地劃分處理器中之任務㈣構障壁,但是軟體仍必 由:效能原因’大部分多‘理器系統採用快取記憶體來 減少存取共用資源之潛伏時間。由於快取記憶體係資料之 局部複製,因此在標準實施中使用-硬體連貫性協定以使 此#快取記憶體中之資料保持一致。數個多處理器系統提 ,雙匯流排以提供與丨/㈣源之通信及維護連貫性。用於維 護連貫性之匯流排為"MP匯流排"。無論吾人是否選擇多匯 流排架構,吾人均必須使此用於執行之介面最優化。當談 及效能及匯流排時,重要詞為•,連貫性"。在任何處理器中, 連貫性可採用很多形式。舉例而言,SMp可將連貫性資訊 傳輸過MP匯流排以用於快取狀態t之每一變化。快取狀態 維δ蔓疋在稱為快取線之資料區塊上。快取線緩衝器提供很 多益處。首先,其降低了對用於所轉移之每一位元組之連 員性資訊的需要。其次,在一叢發中’其允許資料經由通 常具有較小資料寬度之匯流排之轉移《第三,其藉由減小 快取記憶體中每一位元組所需之狀態資訊量(意即,快取標 記)而減小了快取結構之大小。在一 ΜΡ匯流排上,將單—扣 令所請求之資料量限制於一快取線。需要該限制來維持系 統快取記憶體間之連貫性。 本發明應用於I/O匯流排以及連貫ΜΡ匯流排(意即,維持 處理器間之連貫性的匯流排)。以上描述之目的並非意欲將 98778.doc 1338843 概念限制於SMP。所有MP類型可使用此手段或達成連貫性 之類似手段。 , 快取線緩衝器允許全部快取線經由匯流排橋接器之轉 移,其引起了兩個問題:若"〇裝置僅需要轉移少數資料位 π組則會怎樣。第二,若該轉移在一快取線中間開始或結 束則會怎樣?吾人可以兩方式中之一來解決此等問題:一 些處理益架構僅允許全部快取線轉移。在此情況下,吾人 φ 除使匯流排橋接器執行讀取所有權循環(read-for-ownership . cycle)並接著將新資料寫入至快取線中外別無選擇。當I〆。 裝置進行至下一快取線時,緩衝器必須逐出第一條線並在 隨後線中讀取。此方法消耗重要的匯流排頻寬,因為,,無價 值的"快取線讀取伴隨每一叢發寫入,此在1/〇裝置更新整 • 個快取線時係無需的。 另外,快取線讀取導致系統中之每一處理器窺探其快取 記憶體,若修改快取線則潛在地降低了效能。即使在執行 Φ 寫入與刪除(Write_With-k⑴)指令後,仍需要該窺探來使該 * 線热效。活修改快取線,則快取記憶體在允許匯流排橋接 器繼續進行讀取之前必須將修改資料寫入至記憶體。當來 自匯流排橋接器之新資料將覆寫整個快取線時,無需此等 讀取及寫入。先前技術之MP匯流排通常藉由支援”寫入與 刪除"及,,讀取與欲修改(Read with Intent t〇 M〇dify)”操作: 避免了無需之讀取及寫入。該"寫入與刪除,,操作通知快取 記憶體需要寫入全部快取線,因此即使該線含有資料亦允 許該線之快¢1記憶體直接無效。㈣,匯流排橋接器可執 98778.doc ⑧ 1338843 行部分字轉移,直至發生快取線邊界。接著,匯流排橋接 益可叢發寫人快取線而4執行#冑之標t;t'讀取及寫入。因 此,將需要能夠藉由一叢發指令而對所有快取線請求擴展 連貝!·生動作。另一目標將圍繞分離該叢發指令,以允許窺 铋快取5己憶體。最後,較佳處理此一快取設計:其中確定 了對處理器指示之請求多個快取線之指示。 【發明内容】
在夕處理器系統中,利用至少兩處理器、快取連貫性 控制器及位址集中器改良了連貫資料轉移。來自主控處理 态或快取連貫性控制器之起始"記憶體異動請求指令"傳至 一初始處理器。接著,快取連貫性控制器内之邏輯使用高 速匯流排判定來自隨後處理器或快取連貫性控制器之下一 記憶體異動請求之優先權接收狀態。使用可擴展之窥探回 應及累積窺探回應,對利用一叢發指令之所有快取線請求 發展了連貫性動作。來自主控處理器或快取連貫性控制器 之異動4求排隊特於—單—全域_行化裝置中,該裝置 亦充當一多重快取線請求指示器。 【實施方式】 在以下論述中,闡述了大量特定細節以提供對本發明之 徹底瞭解。然而’熟習此項技術者將瞭解到,可在無該等 特定細節之情況下實施本發明。在其它情況下為二 不必要之細即使本發明變模糊,已以示意圖或方塊圓形 說明熟知之元件。另外’在很大程度上,已省略了關於: 路通信、電磁訊號傳輪技術及其類似技術之細節,因為並 98778.doc 1338843 不認為該等細節是穿毛文¥ 4 且έ忍為其是 |疋凡埜理解本發明所必需的 在一般技術者之理解範圍内。 另外應注意,除非料“,㈣本文 綠可在硬體或軟體或其某組合Μ㈣行。=之^ Γ:Γ中電除非另外指示,否則根據諸如被編碼成執行該 ' "程式碼、軟體及/或積體電路之程式碼,可藉 由一諸如電腦或電子資料處理器之處理器來執行該等^
數。在本U書巾,相同參考字元詩指端子 '訊號線及 其相應訊號β 參看圖卜其揭示一包含兩個處理器之典型多處理器系統 的例不性區塊。此等類型之多處理器系統亦稱為麵^多 重指令多重資料)串流系統。在MIMD系統中,存在一組在 不同資料組上同時執行不同指令序列之"η"處理器。另外, 根據 Enslow(Enslow P.H‘ ’ Multiprocessor Organization - A Survey· Computing Surveys第 9卷,第】號,第 1〇3_129頁,
1977年3月),存在兩種一般類型之MIMD處理系統。第一子 類型(圖1例示性所示)為含有具有大致相當性能之兩個或兩 個以上處理器之緊密耦合多處理器。所有處理器對一共同 記憶雜共用存取。(此並不排除存在用於每一或一些處理器 之局部記憶體)。所有處理器對1/〇通道、控制單元及裝置共 用存取。(此並不排除存在一些局部1/〇介面及裝置整個 系統由一作業系統控制。此子類型稱為SMP(對稱型多處理 器)系統。第二子類型稱為,,鬆散耦合多處理器”。在此子類 型中存在多樣性之通用、實體及邏輯資源,可在一動態基 98778.doc ⑧ 礎上:該等資源指派至特定任務。上述資源藉由一通信網 實體刀配並相互作用。儘管個別處理器可具有其自己 ,局f5作業系統(〇s),但是高階作業系統⑽)統—並整合 、且件之控制。系統透明度允許僅由名稱請求服務, 而無須識別特徵為實體資源與邏輯資源之操作及相互作用 之服務資源及合作自主性。儘管資源間之合作是預設的, 但是若服務請求正忙於處理另一任務,則自主性觀念允許 服務資源拒絕服務請求或將其延遲。最後,在系統内無控 制層次。 ’’鬆散搞合多處理器”系統不允許共用諸如系統記憶體之 資源型中之處理器通常係使用高速網路來連 接。此等系統通常不支援該等處理器間之連貫性。所有通 信通常使用一訊息傳遞協定來處理。 目刖,緊岔耦合SMP被視為MP系統之最新技術發展狀 二因為在其匕重要特彳政中,其藉由一共用全域記憶體來 通信。該共用全域記憶體減少了裝置計數、潛伏時間及其 它設計問題。 緊密耦合SMP可充分利用快取記憶體。快取記憶體亦將 卸載頻繁使用之系統匯流排;當快取記憶體含有所請求之 資料時,在整個系統以及局部中全域地降低潛伏時間。 為處理第一問題,指令異動擴展以允許請求—個以上快 取線(即,叢發指令),且窺探回應及累積窺探回應異動擴 展’以藉由該叢發指令為所有快取線請求提供一連貫性動 作。用於該指令之一實施例係添加或擴展請求大小以支援 98778.doc -10. 1338843 多個快取線。若攔位不是連續的,則其它實施例可包括用 於識別位址請求之額外欄位。用於該回應之一實施例係在 回應異動内添加攔位。另外,哕笙s么 °亥專異動不需要在較低速度 I/O及MP匯流排上之傳輪。 在如今之當前高速匯㈣巾,將㈣格式^封包。封 包通常包括異動類型(例如,指令、回應、資料)、誤差校驗 攔位(例如,CRC)以及未使用或保留之欄位。由於封包通常 具有最小長度’因此未使用及保留之攔位是必需的。接著, 此等封包經由一狹窄介面而轉移至其它裝置。此例示性實 施例擴展封包中之資訊’以支援連貫叢發轉移。未使用及 保留之欄位有詩限制在匯流排上所發送之額夕卜資訊量。 為處理第二問題,用於多處理器系統内之每一處理器之 内部匯流排介面在内部匯流排上將叢發指令分離成多個快 取線請求。此分離允許窺探每一快取記憶體。或者,在未 分離每一快取線所需之指令的情況下,内部匯流排及快取 記憶體可接受修改以支援對叢發請求之直接窺探◊接著, 在每一處理器匯流排介面處,用於每一請求之快取線的窺 探回應聚結成一用於叢發指令之單一"處理器匯流排窺探 回應"。或者,内部匯流排及快取記憶體接受修改以支援用 於多個快取線之單一回應。 最後’設計收集函數以於MP匯流排上將分離之快取線指 令聚集成單一叢發指令。該叢發指令對系統提供請求一個 以上快取線之指示。在此情況下,快取記憶體為每一請求 之線發佈一單一叢發指令。典型處理器設計(包括快取記憶 98778.doc -11 - ⑧ 1338843 )亦將叫求(意即’預取)額外線以試圖為將來的快取失 誤㈣如m㈣減少潛伏時間。聚集函數利㈣請求,且額 外重要特徵為在收集處理期間緊密地匹配定時序列,因此 完全實現潛伏時間之改良。另-實施例係直接自處理器之 快取記憶體發佈—叢發指令。這樣排除了對分離聚集函數 之需要’並大大簡化了宁卩主P日 疋夺問題。另外,直接支援叢發指 令允許叢發指令與處理器之預取㈣_feteh)特徵緊密耗合。 因此系統100之較佳實施例的主要目標係藉由減少連貫 a肌里之量來改良緊密耦合同步或非同步多處理器系統之 效能、。代表性系統⑽之另—目的係支援大於快取線之轉移 上的連貝性》例不性系統i00之第三目的係對連貫處理器間 之叢發轉移提供額外支援。 對單-快取線叢發之處理詳盡評述於文獻巾。大多匯流 排協定支援各種指令以限制匯流排流量之量(例如,支援 '寫入與刪除"以避免對將由請求所覆寫之修改快取線之不 必要的寫入)。然而’大多匯流排僅在單一快取線上工作。 較佳實施例之-主要目的係支援1/0及Mp匯流排上之轉 移’以允許請求多個快取'線。由於匯流排上之連貫性流量 在效能與潛伏時間方面通常為瓶頸狀態,因此一種對多個 快取線請求連貫性之方法將藉由減少連貫性流量之量而改 良系統之總效能。總之’此等方法應在處理瓶頸狀態中提 供顯著之能力節省及減少。 當CPU將-位址置於匯流排上時,快取控制器校驗彼位 址之資料是否在快取記憶體中。若資料在快取記憶體中(其 98778.doc -12- 1338843 稱為"命中"_)),則該快取記憶體快速將其提供回至 CPU。若資料不在快取記憶體中(稱為失誤),則該快取記憶 體必須換出將很可能不與來自主要記憶體之請求資料一起 使用之一些資料。 藉由意識中之程式空間行為,一邏輯方法係回應失誤而 載入來自下方層次記憶體之資料區塊,以改良將來存取之 潛伏時間。此技術稱為預取。
用於分配式系統之組件處理器間之資料交換的介面被分 類為專用於連接兩個或兩個以上處理器之點對點介面及座 流排介面。將匯流排作為一串行或並行介面而實施。匯流 排具有以下特性。第-’該匯流排是數個主控器之間共用 且需要存取協定之唯一資源。第=,必須將一訊息之目的 文件自其中解碼·,匯流排上之每―處理器可與每—其它處 理器進行通信,且-次可廣播至數個處理器,且最後,可 由N處理器共用匯流排資料頻寬。
由於匯μ排自身為主動式裝置,因此其類似於連續處理 益。相反,對於點對點介面而言,其無需存取協定。不在 處理器之間共用資料頻寬。藉由添加一具有額外介面之新 處理器節點而擴展該資料頻寬。在一大型網路中,並非每 對處理器均可直接鏈接在1 m接鏈接之處理器之 間所轉移之資訊必須通過中間節點或交換器。 在圖1中’例不性系統100包含一處理器P0 11 0,其藉由 —記憶體匯流排MIF 1而連接至記憶體子系統MEM 16〇,並 藉由一輸入輸出介面I0IF 1而連接至一南橋(south-bridge) 98778.doc -13- ⑧ 1338843 SB 145(輸入輸出子系統)輸入輸出子系統是被設計成執行 單板周邊裝置之特定函數的一或多個積體電路。一輸入輸 出子系統類型稱為南橋。系統記憶體直接連接至處理器。 系統100進一步包含一第二處理器Η 12〇,其藉由一記憶體 匯流排MIF 2而連接至記憶體子系統MEM 165,並藉由—輸 入輸出介面IOIF 2而連接至系統匯流排SB〗5〇。即使該等處 理器各實體地連接分離記憶體子系統,但是兩個記憶體子 φ 系統操作為一單一鄰接邏輯系統記憶體》(此並不排除使用 • 連接至兩個處理器之單一實體記憶體。)處理器P0 1 1 〇及P J I20藉由一統一處理器匯流排μΡΒΙ而進一步彼此連接。p〇 110及P1 120與實體附著至P1 12〇之子系統之間、及ρι 及P0 110與實體附著至P0 11〇之子系統之間之通信是經由 一統一處理器匯流排MPB1。該μΡΒΙ係一連貫處理器匯流 排,其用於系統1 〇〇中以維持p〇 i丨〇與ρ丨i 2〇中之快取記憶 體之間的連貫性,並用於在處理器之間及在一處理器與一 • f體附著至其它處理器之子系統之間傳輸資料。ρι 12〇内 , 3有一 ACO 1 81處理’其使來自所有處理器之指令串行化 以用於適當之連貫性操作。接著,將串行化指令作為反射 才曰令廣播至系統中之所有處理器及裝置。反射指令係由該 系統中之所有快取記憶體窺探且由所有裝置解碼。 參看圖】A,甘4色- ,Α ,、揭不一包含四個處理器之典型多處理器系 統2〇0的例不性圖。每_處理器11〇至Ρ3 21幻組態成基
本上與圖1中相同,除了其自身之控制單元(CU 160至CU 266)及系統匯流排。處理器ρ〇丨1〇至ρ3 2丨6藉由記憶體匯流 98778.doc 1338843 排MIF1至MIF4而連接至記憶體子系統mem 160至MEM 266 ’並進一步連接至南橋(把)245至sb 26〇。因此,該等 處理器藉由輸入輸出介面j〇IF 1至I〇IF 4而連接至輸入輸 出子系統。 處理器P0 110至P3 216(包括在内)藉由個別統一處理器 匯流排μΡΒΟ至μΡΒ3而進一步連接至交換器請280。每一處 理器藉由一專用處理器匯流排(μΡΒ丨至μΡΒ4)而傳輸標誌。 φ 然而,圖1Α中之交換器SW 280以一有序之方式投送來自每 主動式匯>’IL排之標諸的流入,而非如圖1中之直接連接。 需要穿過交換器SW 280函數之μΡΒ之間的通信,以用於維 持每一個別處理器中之快取記憶體之間的連貫性,並用於 在處理器之間及在一處理器與一實體附著至其它處理器之 子系統之間傳輸資料。SW 280内含有一 ACO 282處理裝 置,其使來自所有處理器之指令串行化以用於適當之連貫 性操作。ACO 282執行與圖1中之AC0 181的函數相同之函 φ 數。 . 圖2及圖3是用於維持先前技術之多處理器系統中之連貫 性之MP匯流排協定的例示性實施例。更具體言之,圖2是 一載入(即’讀取)異動之例示性實施例,且圖3是一儲存異 動之例示性實施例。異動通常為各種裝置或處理進行之快 取線記憶體存取請求。記憶體存取請求通常為操作之結 果,其不能由局部快取層次來服務。異動通常分為三個狀 態:指令、窺探及資料。指令狀態是請求資訊轉移。分離 指令類型區別載入請求與儲存請求。通常,Mp匯流排具有 98778.doc Ί * 15 - ,^^ ⑧ 1338843 各種形式之載入與儲存請求以及本文令未描述之其它指令 類型。所有MP匯流排指令通常遵循與圖2及圖3中所概』: 協定相同的協定。指令狀態包含兩個指令異動。第—異動 是自請求者至ACO處理之指令。第二指令是來自該⑽處 理之反射指令。ACO藉由使接收自所有請求者之指令串行 化而產生反射指令。窺探狀態為维持連貫性而做準備,且 資料狀態為轉移指令所請求之f料而做準備。窺探狀態包
含兩個回應異動。第一異動是對反射指令之快取窺探之結 果。每-快取記憶體發送-窺探回應。累積該等窺探回應。 接著,將累積窺探回應廣播至所有窺探器(sn〇〇per)。並非 所有異動均需要資料狀態。該異動之實例為由直接附著至 請求處理器之記憶體子系統所服務之記憶體請求。對於此 異動而言,指令及窺探狀態是連貫性所必需的。由於資料 使用辦直接轉移至處理器,因此在此情況下無需資料狀 態。異動可由-主控裝置或—快取連貫性控制器(意即,窥 探器)而起始,並導致主控器與受控器之間的一系列封包轉 移。 乡有園2’其說明在雙處理器系統中自處理器ρ〇2〇ι所起 始之MP匯流排載入異動之—例示性實施例。爾流排載入 異動之基本序列如下。 在指令狀態205中,引發哭袭a 人 )丨努裔產生指令”CMD +標記"。此標 記是一轉移標記,且是每—鞀 ^ 顯者扣令之唯一識別符。進一 步採用一標記來使窺探回庙B ^ 木口應及载入貨料與一指令(意即,載 入請求)相關聯,即,作戽失 下马參考-貝料以判定其狀態。該標記 98778.doc -16- ⑧ 1338843 之另一目的係將載入資料投送至請求者。當允許窺探回應 以不同於反射指令之次序的次序傳回時,使用窺探回應上 之標記。若窺探回應係以反射指令之次序,則可暗指該標 記。
接著,使用MP匯流排指令轉移將指令轉發至串行化點 〇 250母代表性糸統1 〇〇僅具有一全域串行化點^ ac〇 25〇判定處理器P0 201之請求及來自其它主控器之請求進 入執行台(performance stage)的次序。接著’以由AC〇 25〇 處理所判定之次序將指令廣播至系統中之所有實體。實體 包括匯流排主控器、快取控制器、儲存控制器及匯流排橋 接器。
自單一串行化點ACO 250對指令狀態2〇5,,反射CMD +標 記”進行廣播保證了所有實體以相同次序接收該等指令。該 π反射CMD+標記"是由請求者所產生之cmd的複本。每一實 體使用一窺探狀態225 ”窺探回應"異動以反射指令(CMD)次 序將一窺探回復傳回至累積窺探回應函數24〇。接著,Ac〇 250將對應於反射指令之所有窺探回複合併為—單—累積 窺探回應。 在接收一發射指令之所有窺探回復並將其合併為一單— 累積窺探回應之後’ ACO 250使用"累積窺探回應,,異動將聚 結回應廣播至所有實體。若該"累積窺探回應”指示— 異動,則發生所有永久性快取狀態轉變,且若需要,則在 資料狀態235期間發生資料轉移。藉由處理器P1 2〇2將伊4己 附加至資料。在此情況下’藉由P 1 202(受控器)將資料轉移 98778.doc •17· 1338843 至請求者PO 202。處理器PO 201將標記用於使資料與原始指 令請求相關聯,並用於將資料投送至處理器p〇 2〇1内之校 正實體。該標記亦用於將資料投送至請求者。 存在因資源衝突或與其它異動之衝突而不能成功完成異 動之情況。在此情況下,由所有實體所接收之"累積窺探回 應"為"重試"。引發器(或主控器)在一接收到"重試回應" 時’即負責重新發佈異動。可使用相同或不同異動類型來 φ 重新發佈該異動。亦可使用相同或不同標記來重新發佈指 - 令。重試異動為無需資料狀態235之額外異動。 參看圖3’其說明自處理器P0 201所起始iMp匯流排儲存 異動之一例示性實施例。河!>匯流排儲存異動之基本序列與 MP匯流排載入異動之基本序列相同。對於儲存操作而言, 在資料狀態235期間,將資料在此情況下轉移至受控器ρι 202,而非如圖2中轉移至請求者。 熟習此項技術者可自圖2及圖3觀察到,來自處理器p〇 Φ 2〇1之每一請求需要在被請求以維持連貫性之資料之每一 • 快取線的匯流排上轉移之四個封包(指令、反射指令、窺探 回應及累積窺探回應)。由於MP匯流排在多處理器系統中通 常是效能瓶頸狀態,因此添加之連貫性動作僅激起該瓶頸 狀態。圖4及圓5揭示一用於使與連貫性相關聯之耗用最小 化之MP匯流排協定的改良式例示性實施例。該厘?匯流排協 定與先前技術不同’其界定用於請求轉移多個快取線並將" 窺採回應"及"組合窺探回應"封包擴充成包括由一指令 (CMD)所請求之所有快取線之回應的額外指令。 98778.doc ⑧ -18- 1338843 參看圖4,其揭示一用於請求具有單—指令之多個快取線 之經修改之載入異動的例示性實施例β此異動之名稱為 • ”ΜΡ匯流排叢發载入"異動《在圖4中,存在用於偵測哪些快 取線可用於聚集成一叢發類型指令之函數207。簡單之聚集 函數將用於偵測請求連續快取線之指令。使用厘卩匯流排指 令轉移將新叢發指令轉發至ACO 250。如在先前技術中, 藉由ACO 250使指令串行化,並將其作為叢發形式之反射 φ 指令而廣播至新指令分離函數209。該指令分離函數將該叢 發形式之反射指令分成單一快取線請求及轉發至該處理器 t之所有實體之彼等請求。如在先前技術中,每一實體執 行對由心令所清求之位址的窺探,並將一回應傳回至窺探 回應聚集函數227。藉由窺探回應聚集函數227累積p〇 2〇1 中用於指定快取線之每一實體的窺探回應。該累積與圖2中 先則技術之累積窺楝回應240所執行的累積相同,然而,該 累積僅在來自P0 201内之實體的回應上執行。接著,窺探 ^ 回應聚集函數227將由叢發指令所請求之所有快取線的回 _ 應聚集成新叢發窺探回應。接著,將該新回應發送至”累積 . 窺探回應分離"函數228。接著,以來自p} 2〇2之實體的回 應將叢發累積窺探回應累積成新叢發累積窺探回應。接 著,將该新回應發送至”累積窺探回應分離,,函數229。接 著,藉由函數228及229將來自P〇 “丨與卩丨2〇2之累積窺探回 應分離成個別累積窺探回應。接著,將該等個別累積窺探 * 回應轉發至相關處理器内之所有實體。自此點來看,資料 轉移與圊2中之資料轉移相同。 98778.doc -19- ⑧ 1338843 參看圖5 ’其揭示—用於請求具有單—指令之多個快取線 之I修改之儲存異動的例示性實施例。此異動稱為”MP匯 流排叢發儲存"異動。Mp匯流排叢發儲存異動之基本序列 與⑽匯流排叢發載人異動之基本序列相同。對於儲存操作 而言,在資料I態235期間,#資料在此情況下轉移至受控 器P1 202,而非如圖2中轉移至請求者。 工 . ® 4及圖5中所揭示之指令聚集207、指令分離209、窺探 #回應聚集227及累積窺探回應分離229函數減少了 μΡΒ上維 寺連貝14所需之轉移量。舉例而言,當集合超過兩個快取 線之叢發時,耗用自先前技術中之每一快取線四個里動減 纟至每—快取線兩個有效異動。此等聚集及分離函數可獨 立於糸統快取記憶體而得以實施或可被整合。另外,可將 集:數作為處理器之預取機制(為清晰起見未展示 4分而㈣’並可將分離函數作為快取記憶體之 窺探機制(為清晰走已目去 _ 未展示窺探機制)的—部分而實施。 應瞭解,本發明可&田 、 月了铋用卉多形式及實施例。因此,在不 脫離本發明之精神或銘崎 ^命的情況下,可對前述内容進行若 干蜒化。本文中所概述 設計模式。此揭示不庫被視之設計及程式 ^ ^ . 〜皮視為更吾趴任何特定設計或程式 «又。十核式’而係針對於 置之基礎機制。 4以及長式設計模式可據以建 但是應=二考其特:之,著特徵而得以描述, 的,且前述揭示中徵本質上是說明性的而非限制性 中㈤盖廣泛範圍之變化、修改、改變及替 98778.doc -20. 1338843 代,且在一些情況下,可採用本發明之一些特徵而不相應 使用其它特徵。熟習此項技術者根據對前述描述之瀏覽可 將终多此等變化及修改視為可取的。因此,廣泛地且以與 本發明之範疇一致之方式來解釋附加申請專利範圍係適當 的。 【圖式簡單說明】
圖1說明一包含兩個處理器之典型多處理器系統的例示 性方塊圖; 圖1 A說明一包含四個處理器之典型多處理器系統的例示 性圖; 圖2說明一載入連貫性協定之例示性實施例; 圖3說明—儲存連貫性協定之例示性實施例; 圖4說明一經修改之例示性叢發載入連貫性協定;且 圖5說明一經修改之例示性叢發儲存連貫性協定。 【主要元件符號說明】 100 糸統 110 處理器P0 120 處理器P 1 145 南橋SB 150 系統匯流排SB 160 記憶體子系統MEM 165 記憶體子系統MEM 181 ACO 201 處理器P0
98778.doc 1338843
202 處理器PI 205 指令狀態 207 指令聚集函數 209 指令分離函數 214 處理器P2 216 處理器P3 225 窺探狀態
227 窺探回應聚集函數 228 累積窺探回應分離函數 235 資料狀態 240 累積窺探回應函數
245 南橋SB
250 串行化點ACO
255 南橋SB
260 南橋SB
264 記憶體子系統MEM
266 記憶體子系統MEM
280 交換器SW
282 串行化點ACO 98778.doc -22-

Claims (1)

  1. a r» 供·_ι· I-,·.《· —,--··· 十、申請專利範圍: L~~ 一 —…; 一種在一包括柄合至位址集中器裝置之至少兩個處理器 及-快取連貫性控制器之多處理器系統中之方法,該方 法可在該快取連貫性控制器中操作以改良連貫資料轉 移,該方法包含以下步驟: 將一第一記憶體異動請求指令起始至該等多個處理器 之—第一處理器; 判疋一下一記憶體異動請求之優先權接收狀態; 利用一叢發指令擴展窺探回應及累積窺探回應,以對 所有快取線請求提供一連貫性動作; 將該等異動請求自-主控器處理器或該快取連貫性控 =轉發至一單獨全域串行化裝置,該單獨全域串行化 裝置進—步包含一多重快取線請求指示器; 將多個及連續連貫轉移群組成在該處理器匯流排上之 一叢發操作; 判定該叢發操作之發生; 對該叢發操作定時; 窺探該叢發操作以形成複數個窺探回覆; 集中忒等窺楝回覆之所有位址以形成一組合窺探回 應;及 將边組合窺探回應廣播至複數個裝置實體。 2. ^明求項丨之方法,其中判定該叢發操作之該發生之該判 疋包含偵測請求複數個快取線之一指示。 3. 如叫求項!之方法,纟中窺探該叢發操作之該窺探包含將 98778-990726.doc 1338843 該叢發操作分離成在一匯流排上之多個快取線請求。 4. 如請求項1之方法,其中窺探該叢發操作之該窺探包含至 少一匯流排及至少一快取記憶體直接支援一叢發操作。 5. 如請求項2之方法,其中該至少兩個處理器之每—處理器 支援窺探用於該叢發操作之複數個快取線。 6. 如呀求項1之方法,其中對該組合窺探回應之該廣播係在 複數個處理器之間。
    7·如凊求項1之方法,其中該判定該叢發操作之發生包括以 下步驟: 判疋對應於該處理器之先前快取線請求是否已存在 於一先進先出佇列中;且 對。玄快取線請求進行排隊,以回應該快取線請求已未 存在於該先進先出佇列中之一判定。 女口月长項1之方法,其令累積窺探回應僅在該等處理器内 之》亥等只體之個別回應通知上聚結為一組合回應。 9.種用於在一電腦系統中寒認程式碼之電腦程式產品, 該電腦程式產品具有—1 ^ ^ ,、上祖現有一電細程式之媒體, 該電腦程式包含: 用於判定來自一主批生丨口》 主控制盗或快取連貫性控制器之記憔 體異動請求之電腦裎式碼: 一 用於驗證記憶體昱叙& +、 筱吳動凊求之電腦程式碼; 用於驗證記憶體里魚& +、 姐異動凊求回應之電腦程式碼; 用於聚結來自複數個窺 · 規知宁·用(C〇ntentlon)及匯流排請 求之異動回應之電腦程式碼;及
    98778-990726.doc 1338843 用於起始一單一組合叢發操作指令之電腦裎式碼。 1 〇. —種用於在一電腦系統中之一連貫匯流排上提供改良 叢發轉移之電腦程式,該叢發轉移包括一包含以下^ 程式碼之電腦程式: 用於判定裝置窺探之電腦程式碼; 用於聚結來自窺探爭用及匯流排請求之一組合回應 電腦程式碼; 用於集中來自處理器及裝置之回應之位址的電腦程 用於將指令自一聚結回應廣播至裝置之電腦程式碼; 用於判定一資源衝突並將一指令發佈至該指令之原 引發益以用於重新發佈該指令之電腦程式碼。 98778-990726.doc 式 腦 之 式 及 始
TW094100644A 2004-01-16 2005-01-10 A method for supporting improved burst transfers on a coherent bus TWI338843B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/759,939 US7143246B2 (en) 2004-01-16 2004-01-16 Method for supporting improved burst transfers on a coherent bus

Publications (2)

Publication Number Publication Date
TW200534110A TW200534110A (en) 2005-10-16
TWI338843B true TWI338843B (en) 2011-03-11

Family

ID=34749807

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094100644A TWI338843B (en) 2004-01-16 2005-01-10 A method for supporting improved burst transfers on a coherent bus

Country Status (3)

Country Link
US (1) US7143246B2 (zh)
CN (1) CN1290022C (zh)
TW (1) TWI338843B (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060050722A1 (en) * 2004-09-03 2006-03-09 James Bury Interface circuitry for a receive ring buffer of an as fabric end node device
US7434009B2 (en) * 2004-09-30 2008-10-07 Freescale Semiconductor, Inc. Apparatus and method for providing information to a cache module using fetch bursts
TWI321414B (en) * 2004-10-15 2010-03-01 Sony Computer Entertainment Inc Methods and apparatus for supporting multiple configurations in a multi-processor system
US7469312B2 (en) * 2005-02-24 2008-12-23 International Business Machines Corporation Computer system bus bridge
US7275125B2 (en) 2005-02-24 2007-09-25 International Business Machines Corporation Pipeline bit handling circuit and method for a bus bridge
US7330925B2 (en) * 2005-02-24 2008-02-12 International Business Machines Corporation Transaction flow control mechanism for a bus bridge
US7275124B2 (en) * 2005-02-24 2007-09-25 International Business Machines Corporation Method and system for controlling forwarding or terminating of a request at a bus interface based on buffer availability
US7577793B2 (en) * 2006-01-19 2009-08-18 International Business Machines Corporation Patrol snooping for higher level cache eviction candidate identification
JP2008046902A (ja) * 2006-08-17 2008-02-28 Fujitsu Ltd 情報処理システム、情報処理基板、及びキャッシュタグ及びスヌープタグの更新方法
US7519780B2 (en) 2006-11-03 2009-04-14 International Business Machines Corporation System and method for reducing store latency in symmetrical multiprocessor systems
EP1939728A1 (de) * 2006-12-21 2008-07-02 Swiss Reinsurance Company System und Verfahren zur Berechnung von Schäden durch Naturkatastrophen
US8086936B2 (en) 2007-08-31 2011-12-27 International Business Machines Corporation Performing error correction at a memory device level that is transparent to a memory channel
US7861014B2 (en) 2007-08-31 2010-12-28 International Business Machines Corporation System for supporting partial cache line read operations to a memory module to reduce read data traffic on a memory channel
US7584308B2 (en) * 2007-08-31 2009-09-01 International Business Machines Corporation System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel
US7899983B2 (en) 2007-08-31 2011-03-01 International Business Machines Corporation Buffered memory module supporting double the memory device data width in the same physical space as a conventional memory module
US8082482B2 (en) 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
US7818497B2 (en) 2007-08-31 2010-10-19 International Business Machines Corporation Buffered memory module supporting two independent memory channels
US7840748B2 (en) 2007-08-31 2010-11-23 International Business Machines Corporation Buffered memory module with multiple memory device data interface ports supporting double the memory capacity
US7865674B2 (en) 2007-08-31 2011-01-04 International Business Machines Corporation System for enhancing the memory bandwidth available through a memory module
US8019919B2 (en) 2007-09-05 2011-09-13 International Business Machines Corporation Method for enhancing the memory bandwidth available through a memory module
US7558887B2 (en) * 2007-09-05 2009-07-07 International Business Machines Corporation Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel
US7770077B2 (en) 2008-01-24 2010-08-03 International Business Machines Corporation Using cache that is embedded in a memory hub to replace failed memory cells in a memory subsystem
US7930470B2 (en) 2008-01-24 2011-04-19 International Business Machines Corporation System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller
US7930469B2 (en) 2008-01-24 2011-04-19 International Business Machines Corporation System to provide memory system power reduction without reducing overall memory system performance
US8140936B2 (en) 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
US7925825B2 (en) 2008-01-24 2011-04-12 International Business Machines Corporation System to support a full asynchronous interface within a memory hub device
US7925826B2 (en) 2008-01-24 2011-04-12 International Business Machines Corporation System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency
US7925824B2 (en) 2008-01-24 2011-04-12 International Business Machines Corporation System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency
US8015365B2 (en) * 2008-05-30 2011-09-06 Intel Corporation Reducing back invalidation transactions from a snoop filter
US7873066B2 (en) * 2009-01-26 2011-01-18 International Business Machines Corporation Streaming direct inter-thread communication buffer packets that support hardware controlled arbitrary vector operand alignment in a densely threaded network on a chip
CN102207919A (zh) 2010-03-30 2011-10-05 国际商业机器公司 加速数据传输的处理单元、芯片、计算设备和方法
CN103514111A (zh) * 2012-06-21 2014-01-15 华为技术有限公司 一种Cache的替换方法及装置
US9632947B2 (en) * 2013-08-19 2017-04-25 Intel Corporation Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early
US10338974B2 (en) 2013-11-06 2019-07-02 Intel Corporation Virtual retry queue
US10310923B1 (en) 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
US9916245B2 (en) 2016-05-23 2018-03-13 International Business Machines Corporation Accessing partial cachelines in a data cache
US10152435B2 (en) 2016-06-20 2018-12-11 Western Digital Technologies, Inc. Coherent controller
US9684461B1 (en) 2016-10-31 2017-06-20 International Business Machines Corporation Dynamically adjusting read data return sizes based on memory interface bus utilization
US9892066B1 (en) 2016-10-31 2018-02-13 International Business Machines Corporation Dynamically adjusting read data return sizes based on interconnect bus utilization
US20180285269A1 (en) * 2017-04-03 2018-10-04 Qualcomm Incorporated Aggregating cache maintenance instructions in processor-based devices
US10831403B2 (en) 2017-05-19 2020-11-10 Seagate Technology Llc Probabalistic command aging and selection
US10423550B2 (en) 2017-10-25 2019-09-24 International Business Machines Corporation Managing efficient selection of a particular processor thread for handling an interrupt
US11487683B2 (en) 2020-04-15 2022-11-01 AyDeeKay LLC Seamlessly integrated microcontroller chip

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2708943B2 (ja) * 1990-08-08 1998-02-04 三菱電機株式会社 キャッシュメモリ制御装置
US5655102A (en) * 1993-09-29 1997-08-05 Silicon Graphics, Inc. System and method for piggybacking of read responses on a shared memory multiprocessor bus
US5717894A (en) * 1994-03-07 1998-02-10 Dell Usa, L.P. Method and apparatus for reducing write cycle wait states in a non-zero wait state cache system
US5710906A (en) * 1995-07-07 1998-01-20 Opti Inc. Predictive snooping of cache memory for master-initiated accesses
US5835972A (en) * 1996-05-28 1998-11-10 Advanced Micro Devices, Inc. Method and apparatus for optimization of data writes
US6088769A (en) * 1996-10-01 2000-07-11 International Business Machines Corporation Multiprocessor cache coherence directed by combined local and global tables
US6442629B1 (en) * 1999-11-09 2002-08-27 International Business Machines Corporation Bus protocol and token manager for execution of global operations utilizing a single token with multiple operations with explicit release
US6546462B1 (en) * 1999-12-30 2003-04-08 Intel Corporation CLFLUSH micro-architectural implementation method and system
US6877071B2 (en) * 2001-08-20 2005-04-05 Technology Ip Holdings, Inc. Multi-ported memory
US6968431B2 (en) * 2001-11-15 2005-11-22 International Business Machines Corporation Method and apparatus for livelock prevention in a multiprocessor system
US20030101297A1 (en) * 2001-11-29 2003-05-29 International Business Machines Corporation Dynamic request pacing in switch systems
US6785779B2 (en) * 2002-01-09 2004-08-31 International Business Machines Company Multi-level classification method for transaction address conflicts for ensuring efficient ordering in a two-level snoopy cache architecture
US6832294B2 (en) * 2002-04-22 2004-12-14 Sun Microsystems, Inc. Interleaved n-way set-associative external cache
US6848032B2 (en) * 2002-09-27 2005-01-25 Apple Computer, Inc. Pipelining cache-coherence operations in a shared-memory multiprocessing system

Also Published As

Publication number Publication date
US20050160239A1 (en) 2005-07-21
US7143246B2 (en) 2006-11-28
CN1641605A (zh) 2005-07-20
TW200534110A (en) 2005-10-16
CN1290022C (zh) 2006-12-13

Similar Documents

Publication Publication Date Title
TWI338843B (en) A method for supporting improved burst transfers on a coherent bus
US10169080B2 (en) Method for work scheduling in a multi-chip system
US7836144B2 (en) System and method for a 3-hop cache coherency protocol
US6950438B1 (en) System and method for implementing a separate virtual channel for posted requests in a multiprocessor computer system
US6745272B2 (en) System and method of increasing bandwidth for issuing ordered transactions into a distributed communication system
TW514780B (en) Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US20150253997A1 (en) Method and Apparatus for Memory Allocation in a Multi-Node System
US10592459B2 (en) Method and system for ordering I/O access in a multi-node environment
US9372800B2 (en) Inter-chip interconnect protocol for a multi-chip system
TW201539196A (zh) 用於處理多個交易之資料處理系統及方法
KR20030025296A (ko) 중앙 집중형 스누프 필터링 방법 및 장치
JP2004185639A (ja) マルチ幅のメモリ・サブシステムをサポートするための方法
EP2786257A1 (en) Ring protocol for low latency interconnect switch
JP2018109965A (ja) データ処理
US9207753B2 (en) Multiple-queue multiple-resource entry sleep and wakeup for power savings and bandwidth conservation in a retry based pipeline
TW577024B (en) Method and apparatus for providing global coherence in a large-way, high performance SMP system
EP2771796B1 (en) A three channel cache-coherency socket protocol
EP3788493B1 (en) Data processing network with flow compaction for streaming data transfer
EP3788492B1 (en) Separating completion and data responses for higher read throughput and lower link utilization in a data processing network
CN115858420B (zh) 用于支持多处理器架构的系统缓存架构和芯片
EP3788494B1 (en) Transfer protocol in a data processing network
TWI382313B (zh) 管理分離匯流排上匯流排代理之間的資料流程的方法和系統
US11803470B2 (en) Multi-level cache coherency protocol for cache line evictions
US20170235695A1 (en) Ring protocol for low latency interconnect switch
US6735654B2 (en) Method and apparatus for efficiently broadcasting transactions between an address repeater and a client