JP5059061B2 - 部分読出と非スヌープアクセスとの間のメモリ順序付け要件の充足 - Google Patents
部分読出と非スヌープアクセスとの間のメモリ順序付け要件の充足 Download PDFInfo
- Publication number
- JP5059061B2 JP5059061B2 JP2009159799A JP2009159799A JP5059061B2 JP 5059061 B2 JP5059061 B2 JP 5059061B2 JP 2009159799 A JP2009159799 A JP 2009159799A JP 2009159799 A JP2009159799 A JP 2009159799A JP 5059061 B2 JP5059061 B2 JP 5059061B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- data
- node
- cache
- logic
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
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
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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
- G06F12/0824—Distributed directories, e.g. linked lists of caches
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- 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/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/70—Details relating to dynamic memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
図1は、高レベル簡易プロトコルアーキテクチャの実施例を表す。一実施例で、プロトコルアーキテクチャは、衝突する要求の間と同様に、通常のトランザクションの間、アーキテクチャ内のキャッシュにおいてデータ間のデータ整合性を保つべきである。更に、プロトコルアーキテクチャは、一実施例で、また、それぞれの要求が満足され引っ込められるように、夫々の要求についてフォワード・プログレス(forward progress)を提供する。
一実施例で、基本MESIF(Modified Exclusive Shared Invalid Forward)プロトコルは、単一のシリアライジング・バスの潜在的な制限を伴わずにスヌープ・プロトコルと同様のプロトコルを提供する。スヌーピング・キャッシュ・プロトコルのように、MESIFは、コヒーレンスを保つために、データのキャッシュコピーを有するノードに依存する。同期集中ブロードバンドよりむしろポイント・ツー・ポイントリンクの使用は、タイムワープの問題、すなわち、事象が異なるノードの側からすれば異なる順序で起こるように見えるという事実を持ち込む。一例として、MESIFプロトコルは、タイムワープに起因する潜在的エラーの認識を通してタイムワープを扱い、そのプロトコル又はソフトウェアソリューションを提供する。
一実施例で、スヌープメッセージは、例えばピアキャッシングエージェント等のキャッシングエージェントへ向けられる。通常、スヌープメッセージはホームノード識別子(ID)を有さず、これより、それらはホームノードには送られずにピアキャッシングエージェントに送られる。
下記のメッセージはホームノードと関連する。一例として、下記の幾つかはホームノードへの要求メッセージである。実際には、スヌープメッセージ及びホームメッセージのうち幾つかの間の類似性に留意すべきである。例えば、上記SnpInvNoFwd及び下記RdInvNoFwdは、スヌープメッセージがピアキャッシングエージェントへ向けられ且つ読み出しメッセージがホームエージェントへ向けられる点を除き、類似している。結果として、SnpInvNoFwd及びRdInvNoFwdは両方とも、例えばRead Invalidateタイプ、Snoop Invalidateタイプ、Read Invalidate No Forwardタイプ、及びSnoop Invalidate No Forwardタイプ等の同じメッセージタイプであると言われている。
一実施例で、無データ応答メッセージは、データを送信することなくラインのオーナーシップを認めるグラントメッセージを有する。無データ応答メッセージは、また、完了を知らせる完了メッセージを有し、潜在的に、コンフリクト状態下でオーナーからデータを取り出す。
DataC_*:対応するMESIF状態でのデータ。
ProcessorB:X=1 //BはデータXに書込
ProcessorA:if(X==1)Y=1 //AはXの部分読出を実行しYへ書込
IOH:if(Y==1)assert(X==1) //I/OハブはY及びXの非スヌープ読出を実行
ここで、留意すべきは、一実施例で、相互接続アーキテクチャは部分的なメモリアクセス及び非スヌープメモリアクセスをサポートする点である。一例として、部分メモリアクセス(キャッシュ不可(UC)メモリアクセスとも呼ばれる。)はキャッシュラインの一部へのアクセスを有する。ここで、キャッシュラインの一部は潜在的に無効データを有するので、メモリアクセスに従って、一部は更新又は読出のいずれかをされる。更に、非スヌープメモリアクセスは、例えばI/Oハブ等の非キャッシングエージェントからの非コヒーレントメモリアクセスを言う。
IOH:Data=New;Flag=New; //データ及びフラグへNew書込
A:If(Flag==New)assert(Data==New); //データ及びフラグの部分読出
B:ReadData==Old; //データのキャッシュ可能な読出
最初に、エージェントBは、データのキャッシュ・コヒーレント読出トランザクションを開始する。RdDataメッセージ及びSnpDataメッセージはホームノード及びピアエージェントAへ送信される。ピアノードAは、データと関連するキャッシュラインが無効状態のままであることを示すようRspIによりホームノードに応答する。結果として、ホームノードは、DataC_E_CmpメッセージをエージェントBへ供給する。エージェントBは、零に等しいデータ(すなわち、Old)を有してキャッシュラインを排他的状態へ遷移させる。更に、I/Oハブ又はプロデューサ(producer)は、ホームノードとの非スヌープ書込トランザクションを開始する。これにより、データ及びフラグは夫々、New(すなわち、1の値)に更新される。
101 ネットワーク構造
105,106 キャッシングエージェント
110〜112 ホームエージェント
205,210 プロセッサ
206,207,211,212 処理要素(PE)
208,213 リソース
209,214 メモリ
220〜222 ポイント・ツー・ポイントリンク
230 チップセット
261〜266 相互接続及びI/Oデバイス
302a,302b 物理レイヤ
303a,303b リンクレイヤ
304a,304b ルーティングレイヤ
305a,305b トランスポートレイヤ
306a,306b プロトコルレイヤ
351,352 双方向差動シグナリング対
Claims (23)
- データ要素の読出に関連し、ピアエージェントに、前記データ要素に関連するキャッシュラインが無効にされるべきであり、前記ピアエージェントが前記キャッシュラインを要求エージェントに転送すべきでないことを示すことができる第1のメッセージを生成するプロトコルレイヤロジックと、
スヌープメッセージを前記ピアエージェントへ送信するよう前記プロトコルレイヤロジックへ結合される物理レイヤロジックと
を有し、
前記第1のメッセージは、Snoop Invalidate No Forwardメッセージを含み、該Snoop Invalidate No Forwardメッセージは、前記ピアエージェントに、前記データ要素が前記ピアエージェントにおいて変形キャッシュ・コヒーレンス状態に保たれていることに応答して前記データ要素を該データ要素に関連するホームエージェントへライトバックさせ、前記キャッシュラインを無効にさせ、且つ、前記データ要素を前記要求エージェントへ直接には供給させないようにする、装置。 - 前記プロトコルレイヤロジックは、更に、前記データ要素に関連する前記ホームエージェントへ送られるRead Invalidate No Forwardメッセージを生成することができる、請求項1記載の装置。
- 前記データ要素の前記読出は、前記キャッシュラインからの前記データ要素の部分的な読出を含む、請求項1記載の装置。
- 前記プロトコルレイヤロジックは、相互接続レイヤスタックが前記物理レイヤロジック、リンクレイヤロジック、及び前記プロトコルレイヤロジックを有するように、前記相互接続レイヤスタックで前記物理レイヤロジックへ結合される、請求項1記載の装置。
- 前記物理レイヤロジックは、前記ピアエージェントへのシリアル・ポイント・ツー・ポイントリンクへ結合することができ、前記プロトコルレイヤロジックは、MESIFキャッシュ・コヒーレンス・プロトコルを実施することができる、請求項4記載の装置。
- データを参照するスヌープ無効化メッセージを受け取る受信ロジックと、
前記データを保持するキャッシュラインを有するキャッシュメモリと、
前記受信ロジック及び前記キャッシュメモリへ結合されるプロトコルロジックと
を有し、
前記プロトコルロジックは、前記受信ロジックが前記データを参照する前記スヌープ無効化メッセージを受け取り且つ前記キャッシュラインが第1のキャッシュ・コヒーレンス状態で保持されることに応答して、前記データに関連するホームノードへの前記データのライトバックを生成し、前記第1のキャッシュ・コヒーレンス状態から無効キャッシュ・コヒーレンス状態への前記キャッシュラインの遷移を開始し、
前記スヌープ無効化メッセージは、Snoop Invalidate No Forwardメッセージを含み、該Snoop Invalidate No Forwardメッセージは、前記プロトコルロジックに、前記データが前記プロトコルロジックにおいて前記第1のキャッシュ・コヒーレンス状態に保たれていることに応答して前記データを前記ホームノードへライトバックさせ、前記キャッシュラインを無効にさせ、且つ、前記データを前記スヌープ無効化メッセージに関連する要求エージェントへ直接には供給させないようにする、装置。 - 前記プロトコルロジックは、前記受信ロジックが前記データを参照する前記スヌープ無効化メッセージを受け取ることに応答して、更に、前記キャッシュラインが如何なるキャッシュ・コヒーレンス状態で保持されていようとも、前記スヌープ無効化メッセージに関連する要求エージェントへ前記データを直接には供給することができない、請求項6記載の装置。
- 前記第1のキャッシュ・コヒーレンス状態は変形キャッシュ・コヒーレンス状態である、請求項7記載の装置。
- 前記プロトコルロジックは、前記受信ロジックが前記データを参照する前記スヌープ無効化メッセージを受け取り且つ前記キャッシュラインが排他的状態又は共有状態で保持されることに応答して、更に、前記データに関連するホームノードへ前記データに関連するホームノードへResponse Invalidateメッセージを供給することができる、請求項8記載の装置。
- 前記プロトコルロジック及び前記受信ロジックは、論理的に相互接続レイヤスタックに編成され、該相互接続レイヤスタックは、少なくとも、前記受信ロジックを含む物理レイヤと、リンクレイヤと、前記プロトコルロジックを含むプロトコルレイヤとを有する、請求項6記載の装置。
- 前記受信ロジックは高速ポイント・ツー・ポイントリンクへ結合され得る、請求項6記載の装置。
- データ要素を参照する第1のメッセージ及び第2のメッセージを生成する第1のプロトコルレイヤと、前記第1のメッセージをホームノードへ及び前記第2のメッセージを第2のピアノードへ送信する第1の物理レイヤとを有する第1の相互接続スタックを実施する第1のピアノードを有し、
前記第2のピアノードは、
ポイント・ツー・ポイントリンクを介して前記第1のピアノードへ結合され、前記データ要素のキャッシュコピーを保持するキャッシュメモリを有し、
前記第2のメッセージを受け取る第2の物理レイヤと、前記第1のピアノードへ直接に前記データ要素の前記キャッシュコピーを転送せず、前記第2の物理レイヤが前記第2のメッセージを受け取ることに応答して前記データ要素の前記キャッシュコピーを無効コヒーレンス状態へ移す第2のプロトコルレイヤとを有する第2の相互接続スタックを実施し、
前記ホームノードは、
ポイント・ツー・ポイントリンクを介して前記第1のピアノードへ結合され、
前記第1のメッセージを受け取る第3の物理レイヤと、該第3の物理レイヤが前記第1のメッセージを受け取ることに応答して前記データ要素の正確なコピーを前記第1のピアノードへ供給するデータメッセージを生成する第3のプロトコルレイヤとを有する第3の相互接続スタックを実施し、
前記第2のメッセージは、Snoop Invalidate No Forwardメッセージを含み、該Snoop Invalidate No Forwardメッセージは、前記第2のピアノードに、前記データ要素が前記第2のピアノードにおいて変形キャッシュ・コヒーレンス状態に保たれていることに応答して前記データ要素を前記ホームノードへライトバックさせ、前記キャッシュラインを無効にさせ、且つ、前記データ要素を前記第1のピアノードへ直接には供給させないようにする、システム。 - 前記第2のプロトコルレイヤは、更に、前記キャッシュコピーが無効状態のままにされることを前記ホームノードに示す応答メッセージを生成し、
前記第2の物理レイヤは、更に、当該第2の物理レイヤが前記第2のメッセージを受け取り且つ前記データ要素の前記キャッシュコピーが前記キャッシュメモリに排他的又は共有コヒーレンス状態で保持されることに応答して、前記応答メッセージを前記ホームノードへ送信する、請求項12記載のシステム。 - 前記第2のプロトコルレイヤは、更に、前記データ要素の前記キャッシュコピーを前記ホームノードへ供給するライトバックメッセージを生成し、
前記第2の物理レイヤは、当該第2の物理レイヤが前記第2のメッセージを受け取り且つ前記データ要素の前記キャッシュコピーが前記キャッシュメモリに変形コヒーレンス状態で保持されることに応答して、前記データ要素の前記キャッシュコピーを前記ホームノードへ供給するよう前記ライトバックメッセージを送信する、請求項12記載のシステム。 - 前記データ要素の前記正確なコピーを前記第1のピアノードへ供給するよう前記データメッセージを生成する前記第3のプロトコルレイヤは、前記第3の物理レイヤが前記第1のメッセージを受け取り且つ前記第2のピアノードから前記データ要素の前記キャッシュコピーを受け取ることに応答して、前記データ要素の前記キャッシュコピーを供給するよう前記データメッセージを生成する前記第3のプロトコルレイヤを有する、請求項14記載のシステム。
- 前記第1のメッセージは読出無効化メッセージを含み、
前記データメッセージはライトバックマーカーメッセージ及びライトバックデータメッセージを含み、
前記第1のプロトコルレイヤは、前記データ要素の部分的な読出に応答して前記読出無効化メッセージ及び前記Snoop Invalidate No Forwardメッセージを生成する、請求項15記載のシステム。 - 前記読出無効化メッセージはRead Invalidate No Forward(RdInvNoFwd)メッセージを含み、
前記ライトバックマーカーメッセージはResponse Invalid Writeback(RspIWb)メッセージを含み、
前記ライトバックデータメッセージはWriteback Invalid Data(WbIData)メッセージを含む、請求項16記載のシステム。 - データを参照する第1のメッセージを要求ノードにより生成する段階と、
前記データを参照する前記第1のメッセージをピアノードにより受信する段階と、
前記ピアノードによる前記第1のメッセージの受信に応答して、前記ピアノードにあるキャッシュメモリのキャッシュラインに保持されている前記データのコピーを前記要求ノードへ直接に転送せず、前記キャッシュラインを無効化する段階と
を有し、
前記第1のメッセージは、Snoop Invalidate No Forwardメッセージを含み、該Snoop Invalidate No Forwardメッセージは、前記ピアノードに、前記データ要素が前記ピアノードにおいて変形キャッシュ・コヒーレンス状態に保たれていることに応答して前記データ要素を該データ要素に関連するホームノードへライトバックさせ、前記キャッシュラインを無効にさせ、且つ、前記データ要素を前記要求ノードへ直接には供給させないようにする、方法。 - 前記データを参照する第1のメッセージを要求ノードにより生成する段階は、前記要求ノードによる部分読出要求に応答して前記要求ノードに実装されている相互接続状態のプロトコルレイヤで前記データを参照する前記第1のメッセージを生成する段階を有する、請求項18記載の方法。
- 前記ピアノードによる前記第1のメッセージの受信に応答して、前記キャッシュメモリが変形キャッシュ・コヒーレンス状態にあるかどうかを決定する段階と、
前記キャッシュメモリが前記変形キャッシュ・コヒーレンス状態にあるとの決定に応答して、前記ピアノードにある前記キャッシュメモリの前記キャッシュラインに保持されている前記データの前記コピーを前記ホームノードへ転送する段階と
を更に有する請求項18記載の方法。 - 前記キャッシュラインが前記変形キャッシュ・コヒーレンス状態にないとの決定に応答して、前記データの前記コピーが無効キャッシュ・コヒーレンス状態でキャッシュラインに保持されていることを示すよう前記ピアノードから前記ホームノードへ応答メッセージを送信する段階を更に有する、請求項20記載の方法。
- 前記ホームノードから前記ピアノードから前記応答メッセージを受信することに応答して、前記ホームノードから前記要求ノードへ前記データを転送する段階と、
前記ホームノードが前記ピアノードから当該ホームノードに転送された前記データの前記コピーを受け取ることに応答して、前記ホームノードから前記要求ノードへ、前記ピアノードから前記ホームノードへ転送された前記データの前記コピーを転送する段階と
を更に有する請求項21記載の方法。 - 前記要求ノード、前記ピアノード及び前記ホームノードは夫々、ポイント・ツー・ポイントシリアルリンクを通して互いに相互接続される、請求項22記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/168,613 US8250311B2 (en) | 2008-07-07 | 2008-07-07 | Satisfying memory ordering requirements between partial reads and non-snoop accesses |
US12/168,613 | 2008-07-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010015572A JP2010015572A (ja) | 2010-01-21 |
JP5059061B2 true JP5059061B2 (ja) | 2012-10-24 |
Family
ID=41465231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009159799A Active JP5059061B2 (ja) | 2008-07-07 | 2009-07-06 | 部分読出と非スヌープアクセスとの間のメモリ順序付け要件の充足 |
Country Status (4)
Country | Link |
---|---|
US (5) | US8250311B2 (ja) |
JP (1) | JP5059061B2 (ja) |
CN (1) | CN101625663B (ja) |
DE (1) | DE102009032076B4 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7930459B2 (en) * | 2007-09-28 | 2011-04-19 | Intel Corporation | Coherent input output device |
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 |
WO2013095388A1 (en) * | 2011-12-20 | 2013-06-27 | Intel Corporation | Protocol for conflicting memory transactions |
WO2013103347A1 (en) * | 2012-01-06 | 2013-07-11 | Intel Corporation | Improving value of forward state by increasing local caching agent forwarding |
US20140095807A1 (en) * | 2012-09-28 | 2014-04-03 | Qualcomm Technologies, Inc. | Adaptive tuning of snoops |
CN104380269B (zh) * | 2012-10-22 | 2018-01-30 | 英特尔公司 | 高性能互连相干协议 |
US9342306B2 (en) | 2012-10-23 | 2016-05-17 | Analog Devices Global | Predicate counter |
US9201828B2 (en) * | 2012-10-23 | 2015-12-01 | Analog Devices, Inc. | Memory interconnect network architecture for vector processor |
US9152501B2 (en) | 2012-12-19 | 2015-10-06 | International Business Machines Corporation | Write performance in fault-tolerant clustered storage systems |
US9213643B2 (en) | 2013-03-13 | 2015-12-15 | Applied Micro Circuits Corporation | Broadcast messaging and acknowledgment messaging for power management in a multiprocessor system |
US20140281270A1 (en) * | 2013-03-15 | 2014-09-18 | Henk G. Neefs | Mechanism to improve input/output write bandwidth in scalable systems utilizing directory based coherecy |
US9785556B2 (en) * | 2014-12-23 | 2017-10-10 | Intel Corporation | Cross-die interface snoop or global observation message ordering |
US9684603B2 (en) * | 2015-01-22 | 2017-06-20 | Empire Technology Development Llc | Memory initialization using cache state |
US9424192B1 (en) | 2015-04-02 | 2016-08-23 | International Business Machines Corporation | Private memory table for reduced memory coherence traffic |
US9842050B2 (en) | 2015-04-30 | 2017-12-12 | International Business Machines Corporation | Add-on memory coherence directory |
KR102428563B1 (ko) | 2015-09-30 | 2022-08-03 | 삼성전자주식회사 | 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들 |
US11126564B2 (en) | 2016-01-12 | 2021-09-21 | Hewlett Packard Enterprise Development Lp | Partially coherent memory transfer |
JP2018195183A (ja) * | 2017-05-19 | 2018-12-06 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US10599567B2 (en) | 2017-10-06 | 2020-03-24 | International Business Machines Corporation | Non-coherent read in a strongly consistent cache system for frequently read but rarely updated data |
US10917198B2 (en) * | 2018-05-03 | 2021-02-09 | Arm Limited | Transfer protocol in a data processing network |
GR20180100189A (el) | 2018-05-03 | 2020-01-22 | Arm Limited | Δικτυο επεξεργασιας δεδομενων με συμπυκνωση ροης για μεταφορα δεδομενων μεσω streaming |
US10613996B2 (en) * | 2018-05-03 | 2020-04-07 | Arm Limited | Separating completion and data responses for higher read throughput and lower link utilization in a data processing network |
US10877836B2 (en) * | 2018-08-29 | 2020-12-29 | Arm Limited | Method and apparatus for coherent interconnect recovery with protocol layer re-transmission |
US11113232B2 (en) * | 2018-10-26 | 2021-09-07 | Super Micro Computer, Inc. | Disaggregated computer system |
US11294707B2 (en) * | 2019-05-24 | 2022-04-05 | Texas Instruments Incorporated | Global coherence operations |
US10999397B2 (en) * | 2019-07-23 | 2021-05-04 | Microsoft Technology Licensing, Llc | Clustered coherent cloud read cache without coherency messaging |
CN110727465B (zh) * | 2019-09-11 | 2021-08-10 | 无锡江南计算技术研究所 | 一种基于配置查找表的协议可重构一致性实现方法 |
US20200133649A1 (en) * | 2019-12-23 | 2020-04-30 | Intel Corporation | Processor controlled programmable logic device modification |
US11544193B2 (en) | 2020-09-11 | 2023-01-03 | Apple Inc. | Scalable cache coherency protocol |
WO2022246848A1 (zh) * | 2021-05-28 | 2022-12-01 | 华为技术有限公司 | 分布式缓存系统和数据缓存方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5467460A (en) * | 1990-02-14 | 1995-11-14 | Intel Corporation | M&A for minimizing data transfer to main memory from a writeback cache during a cache miss |
US6065099A (en) * | 1997-08-20 | 2000-05-16 | Cypress Semiconductor Corp. | System and method for updating the data stored in a cache memory attached to an input/output system |
JP2000132531A (ja) | 1998-10-23 | 2000-05-12 | Pfu Ltd | マルチプロセッサ |
JP2002108836A (ja) * | 2000-09-29 | 2002-04-12 | Hitachi Ltd | プロセッサシステム |
GB2367646B (en) * | 2000-10-03 | 2002-11-20 | Sun Microsystems Inc | Resource access control |
US7471675B2 (en) * | 2002-07-12 | 2008-12-30 | Intel Corporation | Arrangements facilitating ordered transactions |
US6922756B2 (en) | 2002-12-19 | 2005-07-26 | Intel Corporation | Forward state for use in cache coherency in a multiprocessor system |
US6954829B2 (en) | 2002-12-19 | 2005-10-11 | Intel Corporation | Non-speculative distributed conflict resolution for a cache coherency protocol |
US7917646B2 (en) | 2002-12-19 | 2011-03-29 | Intel Corporation | Speculative distributed conflict resolution for a cache coherency protocol |
US7111128B2 (en) | 2002-12-19 | 2006-09-19 | Intel Corporation | Hierarchical virtual model of a cache hierarchy in a multiprocessor system |
US7130969B2 (en) | 2002-12-19 | 2006-10-31 | Intel Corporation | Hierarchical directories for cache coherency in a multiprocessor system |
TWI242134B (en) * | 2004-02-12 | 2005-10-21 | Via Tech Inc | Data extraction method and system |
US20050262250A1 (en) | 2004-04-27 | 2005-11-24 | Batson Brannon J | Messaging protocol |
US20050240734A1 (en) * | 2004-04-27 | 2005-10-27 | Batson Brannon J | Cache coherence protocol |
US7822929B2 (en) | 2004-04-27 | 2010-10-26 | Intel Corporation | Two-hop cache coherency protocol |
US9727468B2 (en) * | 2004-09-09 | 2017-08-08 | Intel Corporation | Resolving multi-core shared cache access conflicts |
WO2006090328A2 (en) * | 2005-02-28 | 2006-08-31 | Koninklijke Philips Electronics N.V. | Multiprocessor system, testing device and method for generating cache coherence testing traffic |
US7376793B2 (en) | 2005-07-21 | 2008-05-20 | Sun Microsystems, Inc. | Cache coherence protocol with speculative writestream |
US7512741B1 (en) | 2006-01-11 | 2009-03-31 | Intel Corporation | Two-hop source snoop based messaging protocol |
US7543115B1 (en) | 2006-01-11 | 2009-06-02 | Intel Corporation | Two-hop source snoop based cache coherence protocol |
US7451277B2 (en) * | 2006-03-23 | 2008-11-11 | International Business Machines Corporation | Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation |
US7506108B2 (en) * | 2006-06-30 | 2009-03-17 | Intel Corporation | Requester-generated forward for late conflicts in a cache coherency protocol |
US20080065835A1 (en) * | 2006-09-11 | 2008-03-13 | Sun Microsystems, Inc. | Offloading operations for maintaining data coherence across a plurality of nodes |
US7657710B2 (en) | 2006-11-17 | 2010-02-02 | Sun Microsystems, Inc. | Cache coherence protocol with write-only permission |
US8250311B2 (en) | 2008-07-07 | 2012-08-21 | Intel Corporation | Satisfying memory ordering requirements between partial reads and non-snoop accesses |
-
2008
- 2008-07-07 US US12/168,613 patent/US8250311B2/en not_active Expired - Fee Related
-
2009
- 2009-07-06 JP JP2009159799A patent/JP5059061B2/ja active Active
- 2009-07-07 DE DE102009032076.8A patent/DE102009032076B4/de active Active
- 2009-07-07 CN CN2009101587445A patent/CN101625663B/zh active Active
-
2012
- 2012-08-21 US US13/591,157 patent/US8694736B2/en active Active
-
2013
- 2013-12-28 US US14/142,827 patent/US9058271B2/en not_active Expired - Fee Related
-
2014
- 2014-12-27 US US14/583,596 patent/US9703712B2/en active Active
-
2017
- 2017-07-11 US US15/646,961 patent/US10019366B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9703712B2 (en) | 2017-07-11 |
CN101625663B (zh) | 2013-07-10 |
US10019366B2 (en) | 2018-07-10 |
CN101625663A (zh) | 2010-01-13 |
US8694736B2 (en) | 2014-04-08 |
JP2010015572A (ja) | 2010-01-21 |
US20120317369A1 (en) | 2012-12-13 |
US20150178210A1 (en) | 2015-06-25 |
US8250311B2 (en) | 2012-08-21 |
US20100005246A1 (en) | 2010-01-07 |
DE102009032076A1 (de) | 2010-02-25 |
US9058271B2 (en) | 2015-06-16 |
DE102009032076B4 (de) | 2016-11-03 |
US20170308471A1 (en) | 2017-10-26 |
US20140115275A1 (en) | 2014-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5059061B2 (ja) | 部分読出と非スヌープアクセスとの間のメモリ順序付け要件の充足 | |
JP5575870B2 (ja) | 部分読出と非スヌープアクセスとの間のメモリ順序付け要件の充足 | |
US7657710B2 (en) | Cache coherence protocol with write-only permission | |
JP3661761B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)データ処理システム | |
JP4928812B2 (ja) | タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法 | |
US6832282B2 (en) | System and method for providing forward progress and avoiding starvation and livelock in a multiprocessor computer system | |
TWI431475B (zh) | 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法 | |
US7568073B2 (en) | Mechanisms and methods of cache coherence in network-based multiprocessor systems with ring-based snoop response collection | |
CN101354682B (zh) | 一种用于解决多处理器访问目录冲突的装置和方法 | |
US8111615B2 (en) | Dynamic update of route table | |
WO2014065876A1 (en) | High performance interconnect coherence protocol | |
JP2009064471A (ja) | マルチプロセッサ・システムにおけるキャッシュ・コヒーレンスにおいて用いるフォワード状態 | |
TW200815992A (en) | An exclusive ownership snoop filter | |
JP2007199999A (ja) | マルチプロセッサシステム及びその動作方法 | |
US20070011408A1 (en) | Adaptive snoop-and-forward mechanisms for multiprocessor systems | |
US7779210B2 (en) | Avoiding snoop response dependency | |
US20050262250A1 (en) | Messaging protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120104 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120330 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120404 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120425 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120703 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120801 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150810 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5059061 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |