TW542958B - A method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system - Google Patents

A method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system Download PDF

Info

Publication number
TW542958B
TW542958B TW090120536A TW90120536A TW542958B TW 542958 B TW542958 B TW 542958B TW 090120536 A TW090120536 A TW 090120536A TW 90120536 A TW90120536 A TW 90120536A TW 542958 B TW542958 B TW 542958B
Authority
TW
Taiwan
Prior art keywords
input
output
request
memory
transaction
Prior art date
Application number
TW090120536A
Other languages
English (en)
Inventor
Manoj Khare
Akhilesh Kumar
Lily P Looi
Kenneth C Creta
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
Application granted granted Critical
Publication of TW542958B publication Critical patent/TW542958B/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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/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)

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)
  • Multi Processors (AREA)

Description

542958 A7 B7 五、發明説明(1 ) 發明背景 1·發明範圍 本發明之一具體實施例與電腦系統之範圍有關,包含分 散式記憶體,而且,更特別的是,本發明與在此類系統 中’以管線作業之輸入/輸出事務處理之方法有關。 2.相關先前技藝討論 某些輸入/輸出(I/O)匯流排,例如週邊元件相互連接(PCI) 匯流排,具有嚴謹的事務處理次序之要求。在一電腦系統 中,此一 I/O匯流排與記憶體之間只有一條路徑,因此I/O 匯流排對於管線作業有序之要求相對的較容易。該方法對 於具有非分散式記憶體架構之系統作業較佳,因為一單一 路徑存在於I/O匯流排與記憶體之間。 然而,對於具有一分散式記憶體架構之系統而言,一I/O 匯流排與記憶體之間具有多重路徑,由於該複雜性包含透 過多重路徑維持處理作業,因此常見的作業並非來自於I/O 匯流排之管線作業有序之請求。使用一非管線作業之方 法,在對記憶體發出下一個I/O匯流排請求之前,一 I/O橋 接器將完成一第一I/O匯流排請求,此一方法用以導引事務 處理朝向分散式記憶體,其可限制I/O處理能力之完成。此 方法可能造成所有系統效能下降,或是要求重要的軟體進 行修正,以避免限制I/O處理能力之完成。 圖示簡述 本發明係藉由舉例之方式加以說明,而且並非對伴隨之 圖示加以限制,其中類似的涵義表示相似的元件,而且其 -4- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) A7 B7 542958 五、發明説明(2 中: 圖1係一分散式記憶體、快取相關、多處理器系統之範例 之方塊圖,其中根據一具體實施例所述,有序之I/O作業處 理可有效率的進行管線作業。 圖2係一輸入/輸出橋接器之具體實施例之方塊圖,其對於 有序之I/O事務處理提供有效率之管線作業,並且其可用於 圖1之系統。 圖3係說明圖2之預先擷取引擎(engine)之作業流程圖。 圖4係說明圖2之取回引擎之作業流程圖。 圖5係說明一種用於管線作業有序之1/〇事務處理具體實 施例之方法之流程圖。 詳細描沭 下面將描述一種用於管線作業有序之輸入/輸出事務處理 至一分散式記憶體、快取相關系統之方法及裝置,在下面 的描述中,將對特別的積體電路、系統及電路型態描述其 目的,然而’吾人能了解,其他的具體實施例以另一種方 式組態,應用於其他的積體電路及電路或系統之型態。 以一具體實施例來說,一預先擷取引擎預先擷取來自一 为散式、相關記憶體之資料,且由一輸入/輸出匯流排回應 一第一事務處理,並導引至分散式、相關記憶體。一相關 快取緩衝器接收預先擷取資料,並且與在系統中之分散 式、相關記憶體及其他的相關快取記憶體維持相關性。 圖1代表一電路系統10〇之範例之方塊圖,其中並可以有 效的使用本發明之一具體實施例。電腦系統1〇〇係一分散式 -5- 本纸張尺度適用中國國家標準(CNS) A4規格(210X297公釐)
裝 訂
542958 A7 B7 五、發明説明(3 ) e己’fe體、快取相關、多處理器系統,該範例中系統1 〇 〇包含 處理節點105及110,其間並包含多數的處理節點,此外在 系統100包含一相互連接網路115及一輸入/輸出節點12〇。 每一個處理節點105及110分別包含一或更多處理指令之 處理器125,一或更多晶片組元件13〇及135,及一或更多 本地記憶體140及145,晶片組元件13 0及135具有許多功 能,例如執行記憶體控制、多工處理支援、及/或對於個別 之節點維持快取相關。一或更多處理器丨25,每一個均包含 及耦合至一快取記憶體14 7,對此一具體實施例來說,快取 記憶體147係與彼此及與藉由記憶體14〇及145於分散式、 相關記憶體之應用具有相關性。 此一具體實施例中之記憶體140及145作為一分散式、相 關主記憶體共同作業,每一個記憶體14〇及145可視為一較 大記憶體之部分或一區域,此外也包含非相關性區域,對 此一具體實施例來說,使用眾所皆知的MESI(修改,互 斥,共旱或無效)狀恕協定,在快取記憶體14 7與記憶體14 0 及145之間維持相關性,並且與相關系統相互連接匯流排 160 ' 165及170產生關聯,為了在不同的記憶體14〇、145 與在I/O節點120之一相關快取緩衝器之間維持相關性,相 關系統相互連接匯流排160、165及170將藉由相互連接網 路115,在處理節點1〇5及11〇及1/〇節點12〇之間傳遞資 訊’也就疋如下面所描述之細節。對此一具體實施例來 说,相關糸統相互連接匯流排1 60、1 65及1 70係在處理節 點與I/O節點之間以點對點方式相互連接,通訊事務處理方 -6- 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公嫠) 542958 A7 B7 五、發明説明(4 ) 面而言並沒有次序之限制。 相互連接網路1 15可於I/O節點120與處理節點(例如處理 節點105及110)之間傳遞訊息,對此一具體實施例來說,相 互連接網路115並未在這些訊息之間(I/O節點120與一或更 多之處理節點105及110間之通訊)維持有序之作業。 I/O節點120包含一連接一或更多I/O匯流排155之I/O橋 接器150,例如一週邊元件相互連接匯流排(PCI)與處理節 點105及110,一 I/O橋接器120之具體實施例之進一步的細 節將於下面,並參考圖2進行描述。 對其他的具體實施例來說,系統1〇〇可以另一種方式進行 組態,例如,晶片組及/或記憶體可包含於一或更多之處理 器125之内,且/或相互連接網路115可不包含在内。而且, 記憶體之相關性可依據不同的協定及/或使用不同型態之相 互連接方法來維持,具有比一 I/O匯流排及記憶體之間更多 之路徑之其他的系統型態,也同樣的包含於不同的具體實 施例之範圍内。 圖2係一 I/O橋接器250之方塊圖,對此一具體實施例來 說,可使用於圖1之I/O橋接器150之應用中。I/O橋接器 250包含一或更多I/O快取缓衝器205,一或更多I/O事務處 理請求缓衝器210,一預先擷取引繁215及一取回(retire)引 擎220,其他的電路系統,例如其他的I/O事務處理方法, 缓衝法(buffering)及控制電路系統(並未表示出來)也同樣 包含在内。 下面將作更細部的描述,快取缓衝器205包含位址、資料 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 542958 A7 B7 五 發明説明 及狀態欄位,且用來儲存預先擷取資料,並且回應一或更 丨·. 多I/O事務處理請求,以幫助I/O事務處理請求之管線作 :: 業,該位址欄位表示儲存於記憶體中所對應之資料欄位之 i 資料位址,該快取缓衝器205之一具體實施例係與系統中其 ί, 他的相關記憶體維持相關性,其中1/0橋接器也包含在内, :; 例如,I/O橋接器係包含於圖1中之系統100,快取緩衝器 ; 205與分散式、相關記憶體140、145及相關快取記憶體147 | 維持相關性’ I/O快取缓衝器之狀態欄位係用於表示所對應 ·| 之資料攔位之資料相關狀態(例如’此一具體實施例所使用 ::
之MESI協定,Μ(修改)、Ε(互斥)、S(共享)、1(無效))。 I I/O事務處理請求缓衝器2 1〇(請參考I/O請求緩衝器)產生 芩 儲存事務處理請求,即由一或更多I/O匯流排255導引至圖1 i 所描述之分散式、相關記憶體,此請求可改變成為對内的 卜 相關請求及對内的相關I/O請求。 η 對此一具體實施例而言,I/O事務處理請求緩衝器210可 ; 用於儲存所有的I/O事務處理請求,不論是否有導引他們至 | 相關記憶體之範圍。I/O請求並未被導引至相關記憶體,因 此可參考作為非相關事務處理請求,例如,可包含1/0埠 ΐ (port)存取、架構存取、中斷及/或特殊之事務處理(例如鎖 | 定),因此,即使某些導引至相關記憶體範圍之1/0事務處 ί 理,亦可被分類成為非相關事務處理,例如,一鎖定序列 ί 期間,至相關記憶體進行存取之記憶體可被分類成為非相 ί
關事務處理。 I 所預期之相關快取缓衝器之尺寸及/或輸入/輸出請求缓衝 ί -8- 本纸裱尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 542958 A7 B7
五、發明説明(6 ) 為可猎由平衡§己憶體及所有I/O處理能力與缓衝器中可赛^ 之空間來決定。 X f 同樣的’對於某些具體實施例而言,_1/0事務處理請求 寫入或讀取具有多線條之記憶體,並儲存於1/0事務處=請 求緩衝器210,以作為一單一事務處理,而非藉由預先擷取 及取回引擎之方式作為記憶體線條範圍中之多重對單—之 線條事務處理,對此一具體實施例而言,這些單一線條事 務處理之每一個方法係根據下面所描述之方法,用於單_ 對單一之線條事務處理。 一具體實施例之I/O事務處理請求缓衝器210包含位址、 資料及控制欄位’位址欄位表示與請求相結合之位址,例 如存取記憶體位址。資料欄位產生對應之資料,並寫入有 關於寫入請求之記憶體,或是恢復一讀取請求之資料位 置。而且控制欄位可用於表示相對的指令有序之作業資 訊,請求類型及/或與I/O事務處理請求有關之額外資訊。 I/O請求缓衝器2 10儲存來自I/O匯流排255之相關及非相 關I/O事務處理請求,事務處理之類型可藉由位址與事務處 理、請求類型及/或位於控制襴位之控制資訊相結合來決 定。 對此一具體實施例而言,每一個耦合至I/O橋接器250之 不同的I/O匯流排255,I/O橋接器250包含一類似I/O請求 缓衝器21〇之分離之1/0請求緩衝器。對另一具體實施例而 言,一單一之I/O請求缓衝器210提供暫時的儲存I/O事務處 理請求,並由耦合至I/O橋接器250之所有I/O匯流排255接 -9- 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 542958 A7 B7 五、發明説明(7 ) 收。對這個具體實施例而言,I/O事務處理請求緩衝器2 10 之控制欄位同樣表示接收事務處理之匯流排,對另一具體 實施例而言,I/O橋接器250可包含一些類似於I/O事務處理 請求缓衝器210之不同之I/O事務處理請求缓衝器,其中一 或更多緩衝器係由並聯之I/O匯流排255所共享。 同樣的,快取緩衝器205可包含並聯之快取缓衝器或一單 一之快取缓衝器。 預先擷取引擎2 15及取回引擎220可使用兩個分離之電路 區塊執行,或將它們組合以提供下面所描述之功能。 在作業上而言,由一或更声I/O匯流排255所產生之對内 的事務處理請求係暫時的儲存於I/O事務處理請求缓衝器 210。以一具體實施例而言,I/O事務處理請求缓衝器210 當作一先進先出(FIFO)緩衝器來應用,因此進來之事務處 理依順序儲存於緩衝器,其中它們由I/O匯流排255接收, 而且有序之事務處理並不需作其他的表示。以另一具體實 施例而言,相關的事務處理有序作業可於控制攔位中表 示。 預先擷取引擎2 15使至相關記憶體之事務處理請求之管線 作業能夠作業,該預先擷取引擎藉由執行一非束缚(nonbinding) 預先擷取之資料 ,並與 I/O 事務處理請求缓衝器 210之事務處理相結合,然後儲存該預先擷取之資料於I/O 快取緩衝器205。當處理另一個事務處理或是等待一先前之 預先擷取作業之回應時,預先擷取之資料將會被執行,另 外,預先擷取引擎215可預先擷取資料,並與I/O事務處理 -10- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 542958 A7 B7 五、發明説明(8 ) 請求緩衝H之任-個相關事務處理請求相結合,不論盆是 否依序被接收。以此種方式來說,管線作㈣能執行1 先揭取引擎215之-具體實施例之作業請參考圖2及圖3,以 進行更細部的描述。
如圖3之區塊305所表示,首先.預先擷取引擎215由1/〇 事務處理請求緩衝器210選擇一相關請求,一些方法中之任 個均可用於選擇懸置之相關請求,並由預先掘取引擎W 進行作業,例如,預先齡引擎215可單純的選擇緩衝器 210之下-個懸置請求,如果具有並聯之1/〇事務處理請求 緩衝器,該預先擷取引擎215將可使用一劃分時段之方法, 例如,選擇一緩衝器之下一個懸置相關請求。另外,由下 一個懸置相關請求之預先擷取引擎之作業將可任意改變, 然而,不管使用什麼方法,預先擷取引擎215在選擇懸置請 求或是執行預先擷取作業時,將不需要遵守有序作業之規 定。 ' 此外,以一具體實施例而言,如果(例如)預先擷取引擎 215在其他方面閒置(例如,在1/〇事務處理請求緩衝器21〇 中並/又有懸置事務處理請求),預先#員取引擎215將可預 先擷取資料,以該具體實施例而言,預先擷取引擎215可使 用一些方法中任何一種,以決定資料在預期之1/〇事務處理 上可預先擷取,例如,預先擷取引擎215可預先擷取下一個 記憶體線條或是擷取接在預先擷取資料後之線條,在這個 方法中,如果一即將來臨的對内之1/0事務處理請求在先前 之請求後表示出連續的資料,該資料將會立即的被獲得, -11 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 542958 A7 B7 五、發明説明(9 ) 其他決定資料是否預先擷取之方法也包含在不同的具體實 施例之範圍之内。 在決策方塊310中,其決定是否所選擇之相關請求不是讀 取請求就是寫入請求,如果(例如)預先擷取引擎215作業在 一懸置之讀取請求,那麼在區塊315中,預先擷取引擎215 將決定是否一有效的請求記憶體線條之複製可於I / Ο快取缓 衝器205獲得,如果如此的話,在區塊320之預先擷取引擎 仍舊決定是否在I / 0事務處理請求缓衝器2 1 0有更多之懸置 請求,且在區塊305仍舊預先擷取資料,並與在I/O事務處 理請求緩衝器2 10之其他懸置請求相結合。 在決策區塊315中,如果一有效之請求記憶體線條之複製 並未在本地的I/O快取缓衝器205中獲得,那麼在區塊325 中,預先擷取引擎215將透過相關系統相互連接270發出一 讀取請求,以預先擷取所請求之記憶體線條,並進行讀 取,在這裡I/O橋接器包含於類似圖1中之系統100之一系 統,透過相關系統相互連接270發出一讀取請求,藉由相互 連接網路傳遞資訊,並透過相關系統相互連接匯流排耦合 至不同種類的系統處理節點,再連接至系統之分散式、相 關記憶體,在這裡該系統包含以不同方法組態而成之I/O橋 接器250,透過相關系統相互連接發出一讀取請求可藉由不 同的路徑到達分散式、相關記憶體。 該預先擷取作業,如同一具體實施例之預先擷取引擎2 15 所執行之其他的預先擷取作業,是一個非束缚之預先擷取 作業,在本文中非束缚的意思就是,如果由系統中某些其 -12- 本纸張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 542958 A7 B7 五、發明説明(1〇 ) 他之記憶體/快取代理程式透過相關系統相互連接270接收 一進入之窺探(snoop)請求,而且這個窺探請求撞擊I/O快 取緩衝器205之一線條,對於分散式、相關記憶體(以一具 體實施例之MESI協定而言)之記憶體/快取相關協定來說是 被跟隨的(followed),因此,所對應之事務處理請求之預 先擷取作業及取回作業之間,儲存於I/O快取缓衝器205之 預先擷取記憶體線條將可能無效,而且/或I/O快取缓衝器 205可能失去線條本身,處理發出之方法請參考取回引擎 22 0之作業,並於下面做更細部的討論。 繼續參考圖2及圖3,由相關系統相互連接中等待一回應 時,在區塊320中,預先擷取引擎2 15可開始決定是否在 I/O事務處理請求缓衝器210有更多之懸置請求,或是否需 預先擷取額外的資料,預先擷取引擎能持續預先擷取資 料,並對在I/O事務處理請求緩衝器210其他的懸置請求或 是描述在上面之預先擷取資料之方式做出回應。 在區塊330中,透過相關系統相互連接170所接收之請求 資料,預先擷取引擎215在I/O快取緩衝器205以一共享狀 態配置資料,並藉由記憶體位址之表示與位於I/O快取緩衝 器之位址欄位資料、位於對應之資料欄位之請求資料及位 於對應之狀態欄位之快取相關狀態(在此範例中為共享)相結 合來共同完成。 回到決策區塊310,如果選擇請求以寫入請求替代,那麼 在區塊335中,該預先擷取引擎215將決定是否I/O快取缓 衝器205擁有一對應至寫入請求之互斥的記憶體線條之複製 -13- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 542958 A7 B7 五、發明説明(11 ) (例如,使用MESI協定,不是以E就是Μ狀態來說明),如 果像這樣的話,在區塊320中,如先前所描述,該預先擷取 引擎2 15可持續預先擷取對應至其他的懸置請求之資料或是 如上面所描述之推測性的預先擷取資料。 如果在決策區塊335中,I/O快取緩衝器335並未擁有與寫 入請求相結合之一互斥的且特別之記憶體線條之複製,那 麼在區塊340中,預先擷取引擎215發出一請求,以透過相 關系統相互連接270預先擷取記憶體線條本身,對一具體實 施例而言,請求之方式將依寫入請求是否為一部份的線條 寫入請求或是全部的線條寫入請求而不同,例如,對全部 的線條寫入請求來說,預先擷取引擎沒有對於記憶體線條 之内容進行讀取,即可發出一使其他的記憶體複製無效之 無效請求,然而,對部份的線條寫入請求來說,預先擷取 引擎可發出對於使其他的記憶體複製無效之讀取請求,並 且獲得記憶體線條之内容。 類似的讀取請求,當透過相互連接270等待窺探回應時, 預先擷取引擎215可持續預先擷取與其他的懸置I/O事務處 理請求相結合之資料。 在區塊345中,由上端接收一窺探請求時,預先擷取引擎 在I/O快取緩衝器205之互斥狀態(例如,根據MESI協定 之” Ε”狀態)中配置請求記憶體線條,那麼一具體實施例之 方法將在區塊320中持續決定是否有更多之懸置I/O請求來 進行作業。 與上面預先擷取引擎2 15平行之取回引擎220,其依序的 -14- 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐)
裝 訂
542958 A7 B7
由I/O事務處理請求缓衝器210完成作業,以取回1/〇事務處 理請求,取回引擎2 15之一具體實施例之作業請參考圖2及 圖4進行描述。
在區塊405中,取回引擎220依序的選擇下一個事務處 理’以由I/O事務處理請求緩衝器2 1〇取回資料,對一具體 實施例而言,取回引擎220由一特別之;[/〇匯流排接收時, 可僅依序的取回事務處理請求,以另一具體實施例而言, 取回引擎220可依據特定之有序規則取回事務處理請求,其 可因所接收之事務處理順序而產玍差異,對一具體實施例 而σ 這些有序之需求可在事務處理中詳細說明,然後根 據狀態機(例如取回引擎220)進行處理。 % 例如,對一具體實施例而言,一讀取事務處理請求與獲 得於I/O快取緩衝器205之對應資料可於早先接收、讀取事 務處理请求之前取回,如此一後續有效之讀取請求將傳達 一未完成之先前的讀取請求,然而,對相同的具體實施例 來說,在早先接收一寫入請求之前可不將一讀取請求取 回。其他的有序規則之型態可利用於取回引擎之上,以確 疋錯誤之資料不會由系統中之記憶體寫入或讀出,該指令 並將依照順序取回,以防止錯誤的讀取或參考寫入事務處 理作為程式之順序。 而且’如上面所描述,對此一具體實施例而言,I/O事務 處理请求緩衝器2 10亦可儲存非相關I/O事務處理請求,對 類似一具體實施例而言,由取回引擎維持之取回順序也包 含有序的撤回該非相關1/0事務處理請求。 -15 542958 A7 _____ B7 五、發明説明(13 ) 在區塊410中,一旦選取撤回之I/O事務處理請求,取回 引擎220將決定在區塊4 15中是否該事務處理為一讀取事務 處理或是寫入事務處理,如果該事務處理為一讀取之事務 處理,那麼在區塊420中,取回引擎220將決定是否與該事 務處理相結合之記憶體線條在I/O快取緩衝器205中為存在 且有效的,如果如此的話,那麼在區塊425中,由I/O快取 缓衝器205所對應之資料將透過I/O匯流排之對應資料送回 至請求I/O代理程式255。 假如在決策區塊420中,其決定所對應之記憶體線條不是 存在於I/O快取缓衝器205就是無效的話(也許如上面所描述 由系統中另一個快取代理程式產生窺探請求),那麼在區塊 440中,取回引擎將透過相關系統相互連接270發出一讀取 請求,以擷取對應至事務處理請求之記憶體線條,一旦請 求資料透過相關系統相互連接270送回至I/O橋接器250, 該資料將提供至區塊425中之請求I/O代理程式。 ΐ 在區塊430中,一旦I/O事務處理請求完成服務,其將由 I/O事務處理請求緩衝器2 10中移除,這可以一些方法中之 任何一種來完成,對一具體實施例而言(例如),I/O事務處 理請求緩衝器210之資料將被清除,以另一具體實施例而 言,在缓衝器210之線條所獲得之後續的資料,可透過使用 一旗標或是另一種方式來覆寫。 回到決策區塊415,如果將I/O事務處理請求取回以寫入 請求取代,那麼在決策區塊445中,其將決定是否I/O快取 缓衝器205在互斥狀態(例如,根據MESI協定,不是Μ就是 -16- 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐) 542958 A7 B7 五、發明説明(14 ) E狀態)中擁有對應之記憶體線條,如上面所描述,即使記 憶體線條已於先前預先擷取,I/O快取缓衝器205可能在預 先擷取記憶體線條時及取回事務處理請求時之間失去線條 本身,這可能由於(例如)來自系統中另一個快取代理程式之 一中間的窺探作業撞擊在I/O快取緩衝器205之請求快取線 條。 如果I/O快取缓衝器205在互斥狀態中擁有記憶體線條, 那麼在區塊450中,與記憶體線條相結合之資料將根據寫入 請求及線條紀錄之狀態(如修改)於I/O快取緩衝器205中進 行更新(該資料將根據暫時儲存於寫入缓衝器(並未表示出來) 之寫入請求寫入記憶體線條,例如,預先寫入I/O快取缓衝 器205之記憶體線條)。 如果寫入請求係一完全的線條寫入請求,全部的資料線 條將根據寫入請求簡單的寫入I/O快取緩衝器205中所對應 之資料欄位。假如寫入請求為部分的線條寫入請求,該資 料將以熟悉此技藝之人士所熟知之方式寫入,並與目前在 I/O快取緩衝器205之對應線條之賣料合併。 以一具體實施例而言,假如在I/O快取緩衝器205之一被 修改之線條以一新的線條取代,並對任何擷取、預先擷取 或是獲得之作業做出回應時,最好容許對於I/O快取缓衝器 205狀態進行追蹤,例如,I/O橋接器250透過相關系統相 互連接270送出一請求,以在分散式記憶體中適當的更新線 條。如果在I/O快取緩衝器205之一未使用過之線條(例如目 前無資料儲存於快取線條)對一預先擷取作業回應時被取 -17- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
裝 542958 A7 B7 五、發明説明(15 ) 代,例如,I/O橋接器250透過相關系統相互連接270送出 一窺探請求,以表示對系統中快取缓衝器之狀態進行追蹤 之動作。這些窺探請求可藉由包含於I/O橋接器(並未表示 出來)内之其他的相關控制邏輯傳送,其他的相關控制邏輯 也執行某些功能,例如對其他型態之動作做出回應之窺 探,及/或解釋與I/O快取緩衝器205及/或系統中其他快取 代理程式相結合之相關狀態。 裝 請繼續參考圖2及圖4,在決策區塊445中,假如I/O快取 缓衝器205並未擁有對應至互斥狀態之寫入請求之記憶體線 條,那麼在區塊455中,取回引擎220將以上面所描述對應 至預先擷取作業之一相似的方式,透過相關系統相互連接 請求且獲得記憶體線條,那麼在區塊45.0之取回引擎將依照 上面所描述之方式取回寫入請求,並持續更新在I/O快取缓 衝器205之資料。 一旦完成在區塊430之請求後,該請求將由I/O事務處理 請求緩衝器210中移除。 在決策區塊435中,其將決定在I/O事務處理請求緩衝器 210中是否有更多之懸置請求,如果如此的話,它們將以類 似的方式進行處理及取回。
使用上面所描述之方式,系統中管線作業有序之I/O事務 處理請求,可能在一 I/O匯流排及記憶體之間具有多重路徑 (如同在系統中具有分散式、相關記憶體),這個管線作業將 部分的藉由一預先擷取引擎,執行促進非束缚、無次序之 預先擷取作業,並回應至相關記憶體,以存取一或更多I/O -18- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 542958 A7 B7 五、發明説明(16 ) 匯流排之請求。此外,上面所描述之本地的I/O快取緩衝器 雖然與分散式記憶體子系統及快取記憶體之剩餘數維持相 關性,其將藉由儲存預先擷取作業之結果促進管線作業之 運作。為使I/O請求之管線作業能夠改善I/O處理能力,因 此,全面的系統效能將與先前多重處理器、分散式記憶 體、快取相關系統之處理I/O事務處理之方法做比較。 圖5為說明一管線作業有序之I/O事務處理具體實施例之 方法之一流程圖,在區塊5〇5中,欲緩衝之"〇事務處理係 由一I/O匯流排導引至分散式、相關記憶體,在區塊51〇 中,資料係由分散式、相關記憶體預先擷取,並對一第一 欲緩衝之輸入/輸出事務處理做出回應,且暫時儲存於區塊 515。在區塊520中,預先擷取資料及儲存於分散式、相關 記憶體與其他快取記憶體之資料之間維持相關性,並且在 區塊525中,該欲緩衝之;[/〇事務處理將依序的被取回,吾 人將了解,對於其他之具體實施例而言,該方法可以只包 含上面所描述之某些動作,或是可包含非上面所描述之額 外的動作,此外,更多之動作將比上面所描述或是與 上面所描述之另一個同時發生之動作,以不同之順序執 行。 在之前的詳細說明中,本發明已參考特殊範例之具體實 施例來進行描述’然、而,吾人將了解不同的修改或改變而 沒有偏離本發”請專職H乏㈣神及_亦能採 用’因此,該詳細說明及圖示將被當作_例證,而不是一 限制性之意義。 -19-

Claims (1)

  1. 542958 第090120536號專利申請案 bs 中文申請專利範圍替換本(92年5月)g· 六、申請專利範圍 1. 一種用以管線作業輸入/輸出事務處理至相關記憶體之裝 置,包括: 一由分散式、相關記憶體預先擷取資料之預先擷取引擎, 其由一輸入/輸出匯流排回應一第一事務處理,並導引至分 散式、相關記憶體;及 一接收預先擷取資料之輸入/輸出相關快取緩衝器,該相 關快取緩衝器與分散式、相關記憶體及與系統中其他的快取 記憶體,包含輸入/輸出相關快取緩衝器,維持相關性。 2. 如申請專利範圍第1項之裝置,其中由預先擷取引擎執行之 預先擷取作業係一非束縛之預先擷取作業,由相關快取緩衝 器接收之預先擷取資料可藉由位於一分散式、相關記憶體之 記憶體而改變。 3. 如申請專利範圍第2項之裝置,其中第一事務處理請求係一 記憶體讀取請求,而且預先擷取引擎發出一讀取請求,以由 回應第一事務處理之分散式、相關記憶體中預先擷取資料並 進行讀取。 4. 如申請專利範圍第2項之裝置,其中第一事務處理請求係一 記憶體寫入請求,且位於分散式、相關記憶體之預先擷取引 擎發出一預先擷取記憶體線條之請求,該記憶體線條並藉由 第一事務處理請求來表示。 5. 如申請專利範圍第1項之裝置,進一步包含: 一輸入/輸出事務處理請求緩衝器,其暫時儲存由輸入/輸 出匯流排接收之事務處理請求,並導引至分散式、相關記憶 體。 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 542958 一1L充修補 A BCD 々、申請專利範圍 6. 如申請專利範圍第5項之裝置,其中 預先擷取引擎預先擷取對事務處理請求回應之資料,並儲 存於輸入/輸出事務處理請求緩衝器。 7. 如申請專利範圍第6項之裝置,其中 預先擷取引擎預先擷取對事務處理請求回應之資料,並無 依照順序的儲存於輸入/輸出事務處理請求緩衝器,其中該 事務處理請求係由輸入/輸出匯流排所接收。 8. 如申請專利範圍第5項之裝置,進一步包含: 一取回引擎取回輸出/輸入事務處理請求,並於完成事務 處理請求之後依程式順序儲存於事務處理請求緩衝器。 9. 如申請專利範圍第8項之裝置,其中 取回引擎進一步的檢查輸入/輸出相關快取緩衝器,以決 定是否取回與輸入/輸出事務處理請求相結合之資料,且在 輸入/輸出相關快取緩衝器以一有效之狀態出現。 10. 如申請專利範圍第1項之裝置,其中 輸入/輸出相關快取緩衝器及使用MESI協定之分散式、相 關記憶體之間係維持相關性。 11. 一種用以管線作業輸入/輸出事務處理至相關記憶體之方 法,包含: 由一輸入/輸出匯流排接收回應一第一輸入/輸出事務處理 請求之預先擷取資料,並且導引至分散式、相關記憶體; 暫時儲存預先擷取資料;及 該預先擷取資料與儲存於分散式、相關記憶體之資料及儲 存於其他的快取記憶體之資料間維持相關性。 -2- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
    12. 如申請專利範圍第丨〖項之方法,進一步包含·· 緩衝由輸入/輸出匯流排所接收之輸入/輸出事務處理請 二,',並導引至分散式、相關記憶體。 13. 14. 15. 16. 17. 18. 19. 如申請專利範圍第12項之方法,進一步包含·· 預先擷取回應第二及第三緩衝輸入/輸出 料,其中 ^ &預先擴取回應可以任何順序執行之第_、第二及第三緩衝 輸入/輸出事務處理之資料。 如申請專利範圍第12項之方法,進一步包含·· ~依序的取回孩欲緩衝之輸入/輸出事務處理,其中該欲緩 衝《輸入/輸出事務處縣由輸人/輸出匯流排發出。 如申請專利範圍第14項之方法,其中取回包含: ^查對應至暫時儲縣回之事務處理請求,以蚊該暫時 儲存、預先擷取之資料是否為有效的資料。 如申請專利範圍第11項之方法,其中 維持相關性,包含維持使用一MESH^定之相關性。 如申請專利範M11項之方法,其中縣絲包含: 對回應至该第一事務處理請求之資料發出一請求,及 接收被請求之資料。 如申請專利範圍第1 7項之方法,其中 預先擷取回應一第二輸入/輸出事務處理之資料,其由輸 入/輸出匯流排接收,且導引至發生於發出該請求及接收被 請求資料間之分散式、相關記憶體。 一種電腦系統,包含·· -3 - 本紙張尺度適财® ®家標準(CNS) A4規格(^χ297公董) 正充修補 ABCD 第一及第二處理節點,每一個節點至少包含一 少-快取代理程式; i 一分散相關記憶體,其中部分之分散式相關記憶體係包含 於每一個第一及第二處理節點之内;及 一耦合至第一及第二處理節點之輸入/輸出節點,該輸入/ 輪出節點包含 一由分散式、相關記憶體預先擷取資料之預先擷取引 擎,回應來自第一輸入/輸出匯流排之第一事務處理,並 導引至分散式、相關記憶體;及 一輸入/輸出相關快取緩衝器接收預先擷取資料,該相 關快取緩衝器與分散式、相關記憶體及快取代理程式具有 相關性。 20·如申請專利範圍第19項之電腦系統,進一步包含: 一耦合每一個第一及第二處理節點至輸入/輸出節點之相 關系統相互連接,該相關系統相互連接傳遞資訊以維持分散 式、相關記憶體之相關性,且於輸入/輸出相關快取緩衝器 與分散式、相關記憶體之間維持相關性。 21·如申請專利範圍第2〇項之電腦系統,其中根據一 MESI協定 以維持相關性。 22·如申請專利範圍第19項之電腦系統,進一步包含 一於第一及第二處理節點與輸入/輸出節點之間傳遞資訊 之相互連接網路。 23·如申請專利範圍第19項之電腦系統,進一步包含 一於第一及第二處理節點與複數個輸入/輸出匯流排間耦 -4- 本紙張尺度適用中國國家標準(CNS) A4規格(21GX297公¢)' " 542958
    六、申請專利範圍 合之輸入/輸出橋接器,複數個輸入/輸出匯流排包含第一輸 入/輸出匯流排,輸入/輸出橋接器包含預先擷取引擎及輸入/ 輸出相關快取緩衝器。 24. 如申請專利範圍第22項之電腦系統,其中輸入/輸出橋接器 進一步包含: 至少一輸入/輸出事務處理請求緩衝器暫時的儲存由複數 個輸入/輸出匯流排接收之輸入/輸出事務處理請求,並導引 至分散式、相關記憶體。 25. 如申請專利範圍第24項之電腦系統,其中 預先擷取引擎預先擷取資料,且不管儲存事務處理請求之 順序的對儲存於輸入/輸出事務處理請求緩衝器之事務處理 請求做出回應。 26. 如申請專利範圍第24項之電腦系統,其中輸入/輸出橋接器 進一步包含 一取回引擎,其進一步的檢查輸入/輸出相關快取緩衝器 對應於取回之事務處理請求之有效的資料, 該取回引擎依照程式的順序取回儲存於輸入/輸出事務處 理請求緩衝器之事務處理請求。 -5- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
TW090120536A 2000-08-21 2001-08-21 A method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system TW542958B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/643,380 US7124252B1 (en) 2000-08-21 2000-08-21 Method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system

Publications (1)

Publication Number Publication Date
TW542958B true TW542958B (en) 2003-07-21

Family

ID=24580571

Family Applications (1)

Application Number Title Priority Date Filing Date
TW090120536A TW542958B (en) 2000-08-21 2001-08-21 A method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system

Country Status (9)

Country Link
US (1) US7124252B1 (zh)
EP (1) EP1311956B1 (zh)
KR (1) KR20030024895A (zh)
CN (1) CN1297903C (zh)
AT (1) ATE526630T1 (zh)
AU (1) AU2001281273A1 (zh)
HK (1) HK1052774B (zh)
TW (1) TW542958B (zh)
WO (1) WO2002017086A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI469047B (zh) * 2011-12-30 2015-01-11 Intel Corp 使用儲存預先擷取來消減久存潛時之方法和裝置
TWI494763B (zh) * 2013-01-10 2015-08-01 Skymedi Corp 分時緩衝器存取系統及記憶體控制器

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040022022A1 (en) * 2002-08-02 2004-02-05 Voge Brendan A. Modular system customized by system backplane
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US6922756B2 (en) * 2002-12-19 2005-07-26 Intel Corporation Forward state for use in cache coherency in a multiprocessor system
US6993540B2 (en) * 2002-12-20 2006-01-31 Intel Corporation Prefetching memory objects into a shared cache during garbage collection with a three-finger Cheney scan in a multithreaded processing environment
US7120753B2 (en) * 2004-04-20 2006-10-10 International Business Machines Corporation System and method for dynamically adjusting read ahead values based upon memory usage
US7200718B2 (en) 2004-04-26 2007-04-03 Broadband Royalty Corporation Cache memory for a scalable information distribution system
US20060179173A1 (en) * 2005-02-02 2006-08-10 Bockhaus John W Method and system for cache utilization by prefetching for multiple DMA reads
US7840752B2 (en) * 2006-10-30 2010-11-23 Microsoft Corporation Dynamic database memory management policies
US7930459B2 (en) * 2007-09-28 2011-04-19 Intel Corporation Coherent input output device
US8200905B2 (en) * 2008-08-14 2012-06-12 International Business Machines Corporation Effective prefetching with multiple processors and threads
US8688893B2 (en) * 2009-06-23 2014-04-01 Intel Mobile Communications GmbH Memory device and memory interface
US8898287B2 (en) * 2010-02-24 2014-11-25 Salesforce.Com, Inc. System, method and computer program product for monitoring data activity utilizing a shared data store
CN102014163B (zh) * 2010-12-08 2013-06-05 云海创想信息技术(北京)有限公司 一种基于事务驱动的云存储测试方法及系统
US9690679B2 (en) 2011-10-31 2017-06-27 Hewlett Packard Enterprise Development Lp Transaction commitment and replication in a storage system
US20140114928A1 (en) * 2012-10-22 2014-04-24 Robert Beers Coherence protocol tables
KR101700545B1 (ko) * 2012-10-22 2017-01-26 인텔 코포레이션 고성능 인터커넥트 코히어런스 프로토콜
US9569362B2 (en) * 2014-11-13 2017-02-14 Cavium, Inc. Programmable ordering and prefetch
US10013385B2 (en) 2014-11-13 2018-07-03 Cavium, Inc. Programmable validation of transaction requests
US10180796B2 (en) * 2015-10-16 2019-01-15 SK Hynix Inc. Memory system
KR102671937B1 (ko) * 2017-01-10 2024-06-05 에스케이하이닉스 주식회사 멀티 플레인을 포함하는 비휘발성 메모리 장치
US10795820B2 (en) * 2017-02-08 2020-10-06 Arm Limited Read transaction tracker lifetimes in a coherent interconnect system
CN111406251B (zh) * 2018-08-24 2023-12-08 华为技术有限公司 数据预取方法及装置
US10877895B2 (en) * 2018-08-27 2020-12-29 Qualcomm Incorporated Method, apparatus, and system for prefetching exclusive cache coherence state for store instructions
US20230185860A1 (en) 2021-12-13 2023-06-15 Relativity Oda Llc Queue Optimization in Cloud Computing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049847A (en) 1996-09-16 2000-04-11 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
US5875349A (en) 1996-12-04 1999-02-23 Intersect Technologies, Inc. Method and arrangement for allowing a computer to communicate with a data storage device
US5809536A (en) 1996-12-09 1998-09-15 Intel Corporation, Inc. Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache
US6085263A (en) 1997-10-24 2000-07-04 Compaq Computer Corp. Method and apparatus for employing commit-signals and prefetching to maintain inter-reference ordering in a high-performance I/O processor
US6058461A (en) * 1997-12-02 2000-05-02 Advanced Micro Devices, Inc. Computer system including priorities for memory operations and allowing a higher priority memory operation to interrupt a lower priority memory operation
US5948095A (en) * 1997-12-31 1999-09-07 Intel Corporation Method and apparatus for prefetching data in a computer system
US6581129B1 (en) * 1999-10-07 2003-06-17 International Business Machines Corporation Intelligent PCI/PCI-X host bridge
US6718454B1 (en) * 2000-04-29 2004-04-06 Hewlett-Packard Development Company, L.P. Systems and methods for prefetch operations to reduce latency associated with memory access

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI469047B (zh) * 2011-12-30 2015-01-11 Intel Corp 使用儲存預先擷取來消減久存潛時之方法和裝置
TWI494763B (zh) * 2013-01-10 2015-08-01 Skymedi Corp 分時緩衝器存取系統及記憶體控制器

Also Published As

Publication number Publication date
CN1297903C (zh) 2007-01-31
CN1470019A (zh) 2004-01-21
US7124252B1 (en) 2006-10-17
AU2001281273A1 (en) 2002-03-04
HK1052774B (zh) 2012-05-18
WO2002017086A3 (en) 2002-11-07
EP1311956A2 (en) 2003-05-21
WO2002017086A2 (en) 2002-02-28
ATE526630T1 (de) 2011-10-15
KR20030024895A (ko) 2003-03-26
EP1311956B1 (en) 2011-09-28
HK1052774A1 (en) 2003-09-26

Similar Documents

Publication Publication Date Title
TW542958B (en) A method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
US8103835B2 (en) Low-cost cache coherency for accelerators
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
JP5575870B2 (ja) 部分読出と非スヌープアクセスとの間のメモリ順序付け要件の充足
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
US7600080B1 (en) Avoiding deadlocks in a multiprocessor system
US6260117B1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
US7536514B2 (en) Early return indication for read exclusive requests in shared memory architecture
US20070083715A1 (en) Early return indication for return data prior to receiving all responses in shared memory architecture
JPH09114736A (ja) パケット交換型キャッシュコヒーレントマルチプロセッサシステムのデータプロセッサ用高速デュアルポート型キャッシュコントローラ
JPH10149342A (ja) プリフェッチ動作を実行するマルチプロセス・システム
JPH10289155A (ja) Smpバスの共用状態でのキャッシュ・ラインの共用介入方法及びシステム
US7711899B2 (en) Information processing device and data control method in information processing device
JPH10289154A (ja) Smpバスの排他状態でのキャッシュ・ラインの共用を行う方法及び装置
US5918069A (en) System for simultaneously writing back cached data via first bus and transferring cached data to second bus when read request is cached and dirty
JPH10289157A (ja) Smpバスの共用介入優先方法及びシステム
JPH1031625A (ja) マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ
TWI428754B (zh) 以主動式預取寬度執行加強式停懸狀態之系統及方法
US20080307169A1 (en) Method, Apparatus, System and Program Product Supporting Improved Access Latency for a Sectored Directory
JP3550092B2 (ja) キャッシュ装置及び制御方法
JPH11328106A (ja) グラフィックス・バスにアクセスするために多重のバス・マスタを可能とするアービトレーション機構を備えたコンピュータ・システム
JP2006079218A (ja) メモリ制御装置及び制御方法
JP3202943B2 (ja) 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法
JP2003099324A (ja) マルチメディアプロセッサ用のストリーミングデータキャッシュ

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees