JP2007035026A - 対称型マルチプロセッシングシステムにおける排他的読み出し要求の待ち時間を削減するためのシステム - Google Patents
対称型マルチプロセッシングシステムにおける排他的読み出し要求の待ち時間を削減するためのシステム Download PDFInfo
- Publication number
- JP2007035026A JP2007035026A JP2006196761A JP2006196761A JP2007035026A JP 2007035026 A JP2007035026 A JP 2007035026A JP 2006196761 A JP2006196761 A JP 2006196761A JP 2006196761 A JP2006196761 A JP 2006196761A JP 2007035026 A JP2007035026 A JP 2007035026A
- Authority
- JP
- Japan
- Prior art keywords
- requested
- cache
- cache line
- line
- copy
- 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.)
- Withdrawn
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/0817—Cache consistency protocols using directory methods
-
- 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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
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)
Abstract
【課題】排他的読み出し要求の待ち時間を削減するためのSMPシステムを提供する。
【解決手段】
本発明にかかるシステムは、排他的読み出し要求を処理するためのSMPシステム(100)であって、このシステムは、少なくとも1つのクロスバースイッチ(101)に接続された少なくとも1つのCPU(103)およびキャッシュメモリ(106)を含む、複数のセルボード(102)と、セルボードのそれぞれのキャッシュメモリ(106)で変更されたキャッシュラインのリスト(109)を含む、各クロスバースイッチにおける変更ラインリストと、システムのキャッシュラインのそれぞれのアドレス、ステータス、及びロケーションを記録するための、各クロスバースイッチにおけるキャッシュコヒーレンシディレクトリ(108)とを備える。
【選択図】図1A
【解決手段】
本発明にかかるシステムは、排他的読み出し要求を処理するためのSMPシステム(100)であって、このシステムは、少なくとも1つのクロスバースイッチ(101)に接続された少なくとも1つのCPU(103)およびキャッシュメモリ(106)を含む、複数のセルボード(102)と、セルボードのそれぞれのキャッシュメモリ(106)で変更されたキャッシュラインのリスト(109)を含む、各クロスバースイッチにおける変更ラインリストと、システムのキャッシュラインのそれぞれのアドレス、ステータス、及びロケーションを記録するための、各クロスバースイッチにおけるキャッシュコヒーレンシディレクトリ(108)とを備える。
【選択図】図1A
Description
本発明は、対称型マルチプロセッシングシステムにおける排他的読み出し要求の待ち時間を削減するためのシステムに関する。
対称型マルチプロセシング(SMP)システムは、1つ又は2つ以上のCPUセルボードを含む。CPUセルボードは、1つ又は2つ以上のCPU、キャッシュ、及びメモリを含む。セルボードは、通常は1つ又は2つ以上のクロスバースイッチを含む一組のリンクである「システムファブリック」によって接続される。セルボード間で(また、単一のセルボード上のCPU間でも)データを共有することができるが、プロトコルに従ってキャッシュコヒーレンシを維持しなければならない。キャッシュはデータを共有することができるが、同じメモリアドレスが、異なるキャッシュの異なる値を有することは決してできない。
一般的なキャッシュコヒーレンシのインプリメンテーションは、キャッシュコヒーレンシディレクトリと呼ばれるディレクトリを使用する。このキャッシュコヒーレンシディレクトリは、各キャッシュに関連付けられる。キャッシュコヒーレンシディレクトリは、すべてのキャッシュラインのアドレスを、ステータス(たとえば、無効、共有、排他)及びシステムにおけるそのラインのロケーションと共に記録する。一般に、ビットベクトルが、キャッシュラインロケーションを表すのに使用される。各ビットは、プロセッサ又は(いくつかのインプリメンテーションでは)プロセッサバスに対応する。キャッシュコヒーレンシディレクトリの情報が与えられると、プロトコルが、キャッシュコヒーレンシを維持するようにインプリメントされる。
通常のキャッシュコヒーレンシプロトコルでは、各キャッシュアドレスが、ホームディレクトリを有し、システムのいずれの場所においてもキャッシュをミスした排他的読み出しは、最初にそのディレクトリに向かう。ミスされたアドレスが(特定のセルボードにとって)「ローカル」でない場合、キャッシュミスは、システムファブリックをトラバースしなければならない。システムファブリックの構成に応じて、(ミスされたアドレスがローカルアドレスでなかった場合)1つ又は2つ以上のクロスバースイッチを横断して、特定のアドレスのホームディレクトリに到達しなければならない。
要求がホームディレクトリに一旦到達すると、3つの可能なケースがある。
1.(ディレクトリから判断されたように、)ラインのリモートコピーが存在しないケース。このケースでは、ホームディレクトリは、ローカルメモリ又はローカルキャッシュのいずれかから、要求されたラインをフェッチし、そのラインをシステムファブリックを横切って要求側CPUへ送る。
2.リモート共有コピーが存在するケース。このケースでは、ホームディレクトリは、コピーを含むすべてのノードへ「無効」コマンドを送り、次いで、ローカルメモリ又はローカルキャッシュのいずれかから、要求されたラインをフェッチし、そのラインをシステムファブリックを横切って要求側ノードへ送らなければならない。
3.リモート排他コピーが存在するケース。ホームディレクトリは、そのコピーをフェッチして、リモートキャッシュのそのコピーを無効にし、次いで、要求側ノードへそのコピーを送る。
1.(ディレクトリから判断されたように、)ラインのリモートコピーが存在しないケース。このケースでは、ホームディレクトリは、ローカルメモリ又はローカルキャッシュのいずれかから、要求されたラインをフェッチし、そのラインをシステムファブリックを横切って要求側CPUへ送る。
2.リモート共有コピーが存在するケース。このケースでは、ホームディレクトリは、コピーを含むすべてのノードへ「無効」コマンドを送り、次いで、ローカルメモリ又はローカルキャッシュのいずれかから、要求されたラインをフェッチし、そのラインをシステムファブリックを横切って要求側ノードへ送らなければならない。
3.リモート排他コピーが存在するケース。ホームディレクトリは、そのコピーをフェッチして、リモートキャッシュのそのコピーを無効にし、次いで、要求側ノードへそのコピーを送る。
これらの要求の待ち時間は、ホップ数によって左右される。ホップのそれぞれは、システムファブリックをトラバースするのに必要な時間を増加させる。SMPが大きくなるにつれて、クロスバースイッチの個数及びノード間のリンクの長さが増加し、これは、ホップするのに必要な平均時間を長くする。また、いくつかのSMPの設計は、(キャッシュではなく)メインメモリにディレクトリを保持し、上記ケース3を、さらに多くの時間を要するものにする。
性能上の問題に匹敵する、上記のタイプのシステムに関連する設計問題が存在する。すなわち、クロスバースイッチ及びリンクの個数を増加させると、ホップ待ち時間は削減されるが、これらの余分なコンポーネントの費用、それらを所与のサイズのキャビネット内に設計することの難しさ、及びそれらコンポーネントへの電源供給及びそれらコンポーネントの冷却の難しさは、些細な問題ではない。
排他的読み出し要求を処理するための対称型マルチプロセッシングシステムが提供される。システムは、複数のセルボードを含み、各セルボードは、少なくとも1つのCPU及びキャッシュメモリを含み、すべてのセルボードは、少なくとも1つのクロスバースイッチに接続される。システムは、セルボードのそれぞれにおけるライトスルーキャッシュメモリと、セルボードのそれぞれのキャッシュメモリで変更されたキャッシュラインのリストを有する、各クロスバースイッチにおける変更ラインリストと、システムのキャッシュラインのそれぞれのアドレス、ステータス、及びロケーションを記録するための、同じく各クロスバースイッチにおけるキャッシュコヒーレンシディレクトリと、をさらに備える。
変更ラインリストは、アクセスされて、それによって、要求されたキャッシュラインを含まないセルボードからの排他的読み出し要求のそれぞれについて、要求されたキャッシュラインのコピーが得られる。
変更ラインリストは、アクセスされて、それによって、要求されたキャッシュラインを含まないセルボードからの排他的読み出し要求のそれぞれについて、要求されたキャッシュラインのコピーが得られる。
本システムは、少なくとも1つのクロスバースイッチを含む対称型マルチプロセシング(SMP)システムを含む。図1Aは、本システム100の一例示の実施の形態の図である。本システム100は、クロスバースイッチ101を介して相互接続された複数のセルボード102(*)を備える。本文書では、参照番号の後に続く括弧内のアスタリスク「(*)」は、その参照番号によって表されるエンティティの1つ又は2つ以上の存在を指し、そのように指定されたタイプのエンティティは、少なくとも1つの実施の形態に複数存在する場合がある。図1Bは、複数のクロスバースイッチ101(1)、101(2)、…101(N)を有する本システムの一例示の実施の形態の図である。本システムの代替的な実施の形態は、2つ以上のクロスバースイッチ101(*)を含む場合があることに留意すべきである。クロスバースイッチ101(*)は、本明細書で説明する単一のクロスバースイッチと同じように機能し、一定のキャッシュコヒーレンシディレクトリは、以下に示すような差をアドレス指定する。
図1Aに示すように、各セルボード102(*)は、プロセッサキャッシュメモリ106を含む1つ又は2つ以上のプロセッサ(「CPU」)103、これらプロセッサによって共有されるメモリ105、及びメモリコントローラ104を含む。各物理セルボード102は、「セル」と呼ばれる、対応する類似の論理エンティティを有し、「セル102」という用語は、以下では、その参照が特に物理セルボードを対象としていない限り、この論理対応物を指すのに使用される。クロスバースイッチ101は、システムメモリ110を含む。システムメモリ110は、集中(centralized)キャッシュコヒーレンシディレクトリ108、及び、変更キャッシュラインのリスト109を含む。これらディレクトリ108及びリスト109は、クロスバーロジックによって記憶される。クロスバースイッチ101は、(キャッシュコヒーレンシプロトコルにおいて与えられた応答を検査することによって)キャッシュラインが変更されたことを検出すると、そのキャッシュラインを変更ラインリスト109に記憶する。
ちょうどアドレス指定可能ワードがメモリストレージの基本単位であるように、キャッシュラインがキャッシュストレージの基本単位である。たとえば、キャッシュラインは、128バイト、すなわち4ワードから成る場合がある。データストレージ単位の(最小から最大への)階層は、
ビット
バイト
ワード
キャッシュライン
キャッシュセット
である。
ビット
バイト
ワード
キャッシュライン
キャッシュセット
である。
キャッシュセットよりも大きなデータの単位が存在するが、ハードウェアのキャッシュレベルでは、キャッシュセットが、目に触れる機会の多い最大の単位である。
変更ラインリスト109は、排他的読み出しの平均待ち時間を短くする。たとえば、セルAで或るキャッシュラインが変更された場合に、その変更されたラインは中央ロケーションにキャッシュされているので、セルBがそのラインを要求すると、システムファブリックをセルAへトラバースしてそのラインを取り出す必要はない。
本システムでは、セルボード102のそれぞれにおけるキャッシュメモリ105は、ライトスルーキャッシュである。ライトスルーキャッシュでは、特定のセルボードのキャッシュ、たとえばキャッシュ105(1)、で変更されたどのキャッシュライン(又は、より簡単に「ライン」)も、クロスバー変更ラインリスト109へ送出され、クロスバー変更ラインリスト109では、他のセルボード102(*)からの要求は、変更されたラインが特定のボードのローカルキャッシュメモリ105(1)にしか記憶されていない場合よりも高速に、変更されたラインにアクセスすることができる。
一例示のキャッシュコヒーレンシディレクトリ108のフォーマットを以下の表1に示す。
一例示の実施の形態では、各キャッシュコヒーレンシディレクトリ108には、以下のフィールドが存在する。
「キャッシュID」 キャッシュラインの現在のロケーションを識別する。共有ラインの場合、2つ以上のエントリーが存在することができる。
「インデックス」 キャッシュラインセットを識別する。
「タグ」 セット内でラインを識別する。
「ステータス」 MESI−「変更」、「排他」、「共有」、又は「無効」(例として)。
「キャッシュID」 キャッシュラインの現在のロケーションを識別する。共有ラインの場合、2つ以上のエントリーが存在することができる。
「インデックス」 キャッシュラインセットを識別する。
「タグ」 セット内でラインを識別する。
「ステータス」 MESI−「変更」、「排他」、「共有」、又は「無効」(例として)。
キャッシュラインは、ハードウェア設計を簡単にするためにセットにグループ化される。キャッシュIDは、キャッシュの識別子であり、ラインが現在存在する特定のキャッシュ105(*)を示す。キャッシュラインアドレスは、タグフィールド、インデックスフィールド、及びブロックオフセットフィールド(セット内でラインを見つけるのに使用される)を含む。ブロックオフセットは、キャッシュライン内のワードを指し、読み出し要求がその情報を提供する場合には、ディレクトリエントリーには必要とされない。したがって、各キャッシュコヒーレンシディレクトリエントリーは、要求側が特定のキャッシュラインにアクセスすることを可能にすると同時に、システムがキャッシュコヒーレンシを維持することを可能にするのに必要なすべての情報を含む。一例示の実施の形態では、キャッシュコヒーレンシディレクトリ108は、内容アドレス指定可能メモリ(連想メモリ)(CAM)でインプリメントされ、変更キャッシュラインリスト109は、従来のDRAMでインプリメントされる。ただし、ディレクトリ108及び変更ラインリスト109は、代替的に、他の任意の適切なタイプのメモリを介してインプリメントすることもできる。クロスバースイッチ101のロジックは、キャッシュコヒーレンシディレクトリ108の更新を取り扱う。
集中キャッシュコヒーレンシディレクトリ108を使用することによって、プロトコルが最適化され、また、変更されたキャッシュラインが、要求したラインのローカルコピーを有しないセル102(*)によって要求された場合に、変更されたキャッシュラインを中央に(クロスバースイッチ101に)配置することが可能になる。本システムは、当該技術分野で既知のように、キャッシュコヒーレンシを維持するプロトコルをインプリメントする。(たとえば、Hennessey and Patterson著のComputer Architecture, A Quantitative Approach (2nd. Ed.)の 第8.4章, (Morgan-Kaufmann出版, ISBN 1-55860-329-8)を参照されたい。)
本実施の形態では、セルボード上のプロセッサキャッシュ106は、ライトスルーキャッシュとしてインプリメントされ、その結果、所与のキャッシュラインが変更されているか否かは、キャッシュコヒーレンシディレクトリ108から判断することができる。セルボード102(*)のそれぞれにおけるライトスルーキャッシュ105を使用することによって、キャッシュコヒーレンシディレクトリ(108)は、所与のラインが変更されているか否かを判断することが可能になる。
図2A及び図2Bは、本システムの一実施の形態において、排他的読み出し要求を処理する際に実行される例示の一組のステップを示すフローチャートである。図2Aに示すように、(ステップ205において)排他的読み出し(要求)が、特定のセル102(*)のキャッシュ及びローカルメモリの双方をミスすると、要求されたアドレスは、ステップ215において、その要求されたメモリアドレスの「ホーム」クロスバースイッチキャッシュコヒーレンシディレクトリ108へ転送される。
「ホーム」の通常の意味は、アドレス空間がセル間で分割されているシステムに関連する。このようなシステムでは、8つのアドレス及び2つのセルが存在する場合、各セルは、4つのアドレスを有し、そのセルは、それら4つのアドレスに対して「ホームセル」である。キャッシュコヒーレンシディレクトリが(従来技術と同様に)そのセルに存在する場合、「ホームディレクトリ」は、「ホームセル」の自然な拡張となる。しかしながら、本システムでは、セルのそれぞれに事前に配置されたキャッシュコヒーレンシディレクトリは、セルから移動されている(removed)一方、クロスバースイッチ101においてセルのそれぞれのディレクトリを結合することにより、アドレス区画の特徴を維持する。したがって、マルチクロスバーシステムでは、2つの以上の「ホーム」クロスバースイッチキャッシュコヒーレンシディレクトリが存在する。このディレクトリの実際のロケーションは、要求されたメモリアドレスの関数である。本文書では、特定のキャッシュラインのホームセルは、セル102(H)と呼ばれ、要求側セルは、セル102(R)と呼ばれる。それら特定の参照番号が図面に存在しない場合であっても(ホームセル及び要求側セルは状況に依存するので)、そのように呼ばれる。
図1Aに示すようなシステムでは、システムが1つのクロスバースイッチしか有しない場合、対象となるシステムアドレス空間は、基本的に、クロスバースイッチ101のシステムメモリ110から成る。図1Bに示すシステム等、複数のクロスバースイッチ101を有するシステムでは、システムアドレス空間は、最初に、利用可能なクロスバースイッチ間で区画される。したがって、本システムでは、仮想のクロスバースイッチ「A」上のキャッシュコヒーレンシディレクトリ108が、アドレス0〜3を取り扱い、仮想のクロスバースイッチ「B」上のキャッシュコヒーレンシディレクトリが、アドレス4〜7を取り扱い、以下同様の取り扱いが行われる。
本システムのマルチクロスバーバージョンでは、特定のメモリアドレスの「ホームディレクトリ」(ホームキャッシュコヒーレンシディレクトリ)108は、以下の手順に従って決定される。すなわち、たとえば、4つのクロスバースイッチ101に4つのホームディレクトリ108が存在する場合、要求されたアドレスの2ビットが、どのクロスバー101が適切なディレクトリを有するかを判断するのに使用される。
適切なクロスバーを突き止めるのに使用されるこの特定の2ビットは、インプリメンテーションに特有のものであるが、基本的な概念は、クロスバーアドレスがキャッシュコヒーレンシディレクトリ108も指定するのに使用されるということである。したがって、1つのクロスバー101あたり1つのディレクトリ108が存在し、各ディレクトリは、特定の一組のアドレスに対して「ホーム」である。
図2Aに示すように、排他的読み出しを生成したセル102(*)が、要求されたキャッシュラインのローカルコピーを有する場合、そのラインがステップ210において返され、この特定の要求について、本システムによる処理は(それ以上)必要でない。一方、読み出し要求を受け取ったセルが、要求されたキャッシュラインのローカルコピーを有しない場合、この状況は「キャッシュミス」と呼ばれる。受け取り側セル102(*)が、要求されたキャッシュラインのローカルコピーを有しない場合、そのセルは、ラインの要求(要求側セルは、要求されたラインのアドレスのみを提供すればよい)を適切なクロスバースイッチ101(*)に送り、そのようにして、ラインがそのセルのキャッシュにもメモリにも存在しなかったことを示す。
図3は、キャッシュミスを処理する際に本システムの一実施の形態によって実行される例示の一組のステップを示すフローチャートである。キャッシュミスは、一般に、本システムによって以下に説明するように取り扱われる。
ステップ305において、クロスバースイッチ101は、自身のキャッシュコヒーレンシディレクトリ108をチェックして、要求されたラインのロケーション及びそのラインの状態(たとえば、変更、排他、共有、又は無効)を検出する(find)。ステップ310において、ラインアドレスが「非ホーム」アドレスであると判断されると、ステップ315において、その要求を現在取り扱っているクロスバースイッチ101(*)は、このアドレスが「ホーム」であるクロスバースイッチ101(*)へその要求を転送する。そうでなく、アドレスが「ホーム」アドレスである場合、ステップ320において、キャッシュコヒーレンシディレクトリ108がチェックされて、ラインが変更されているかどうかが判断される。ラインが変更されたラインでない場合、クロスバースイッチ101は、ステップ325において、そのアドレスの「ホーム」セルボードへ要求を転送する。キャッシュコヒーレンシディレクトリ108が、ラインが変更されていることを示す場合、ラインは、クロスバースイッチの変更ラインリスト109にあるはずである。
ステップ330において、クロスバースイッチ101は、キャッシュメモリにアクセスするのと類似した方法によって、変更されたラインを取り出す。すなわち、変更ラインリスト109に示された物理アドレスを指し示す内容アドレス指定可能タグを使用することによって取り出す。次に、ステップ335において、キャッシュラインの要求が排他的読み出しであったのか、それとも共有読み出しであったのかを判断するチェックが行われる。要求が共有読み出しであった場合、ステップ345において、クロスバースイッチは、ラインが共有されていることを示すメッセージを、ラインを変更したキャッシュへ送る。いくつかのプロトコルでは、そのラインは無効にされる。要求が排他的読み出しのものであった場合、ステップ340において、クロスバースイッチは、ラインが現在無効であることを示すメッセージを、ラインを変更したキャッシュへ送る。
このように、クロスバーキャッシュコヒーレンシディレクトリ108が、要求されたキャッシュラインが現在どこに位置するかを判断するのに使用され、また、ラインが変更されたか否かを判断するのにも使用されることが分かる。要求されたラインのアドレスが「ホーム」アドレスであり、そのラインが変更されている場合、そのラインは、適切なクロスバースイッチ101(*)の変更ラインリスト109にある。他のあらゆるタイプの要求は、別のクロスバースイッチ101(*)又はセル102(*)へ転送される。
図2Aに示すように、キャッシュライン要求がホームクロスバーディレクトリ108に一旦達すると、ステップ220において、クロスバースイッチ101のキャッシュコヒーレンシディレクトリ108の検査により決定される4つの可能なケースが存在する。図2Bは、図2Aの続きのフローチャートであり、図2Aのブロック221〜224は、図2Bのブロック230、240、250、及び260にそれぞれ続くことに留意されたい。ブロック221〜224で実行されるオペレーションを以下に説明する。
ブロック221では、クロスバースイッチにキャッシュラインのコピーは存在せず、唯一のコピーは、ホームセル102(H)に記憶されている。ここで、ホームセル102(H)は、排他モードの場合もあるし、排他モードでない場合もある。図2Bに示すように、この状況では、要求を受け取ったクロスバースイッチ101は、ステップ230において、「読み出し無効」メッセージをホームセル102(H)へ送り、要求側セル102(R)へそのラインを転送する。「読み出し無効」は、ホームセルがラインの現在のバージョンで応答することを暗に意味することに留意されたい。
ステップ232において、要求されたラインのコピーは、クロスバースイッチ101にキャッシュされ、キャッシュコヒーレンシディレクトリ108は、要求側セル102(R)による排他的所有権を反映するように更新される。次の排他的読み出し要求が、次に、(図2Aの)ステップ205において処理される。
ブロック222では、クロスバースイッチは、要求されたラインのコピーを有する。図2Bに示すように、この場合、要求を受け取ったクロスバースイッチ101は、ステップ240において、ラインを所有するセル102(*)に「無効」コマンドを送り、次いで、ステップ242において、要求側セルにそのコピーを転送する。次に、ステップ244において、クロスバーのキャッシュコヒーレンシディレクトリ108は、所有権の変更を反映するように更新される。一例示の実施の形態では、このインプリメンテーションは、要求側セルの読み出し排他コマンドがクロスバーに到達した時に、ラインを所有するセルが新しい値をライトスルーしている最中である競合状態を回避するためのメカニズムを含むことができる。ステップ246において、ハンドシェークやリドゥ等の措置が取られ、古い値が要求側セルへ転送されている間、ラインの新しい値が処理中(in-flight)でないことが保証される。クロスバーにラインのコピーをこのように保持することによって、これまでの方法に比べて1回のメモリ読み出し及び2つのファブリックホップが省かれる。次の排他的読み出し要求が、次に、(図2Aの)ステップ205において処理される。
ブロック223では、クロスバースイッチは、要求されたラインのコピーを有しないが、排他モードの非ホームセル102(*)にはラインのコピーが存在する。図2Bに示すように、この状況では、要求を受け取ったクロスバースイッチ101は、ステップ250において、キャッシュラインを所有するセルへ「読み出し無効」メッセージを送り、ステップ252において、要求側セルボードへラインを転送する。ステップ254において、ラインのコピーがクロスバースイッチにキャッシュされ、ディレクトリは、要求側セルによる排他的所有権を反映するように更新される。次の排他的読み出し要求が、次に、(図2Aの)ステップ205において処理される。
ブロック224では、キャッシュコヒーレンシディレクトリ108によって、要求されたラインのリモート共有コピーが存在すると判断される。図2Bに示すように、この場合、要求を受け取ったクロスバースイッチ101は、ステップ260において、コピーを含むすべてのセルへ「読み出し無効」コマンドを送り、ステップ262において、要求されたラインのすべてのコピーを無効にし、次いで、ステップ264において、要求されたラインをホームセルからフェッチして、そのラインを、システムファブリックを横断して要求側セルへ送る。ステップ266において、ラインのコピーがクロスバースイッチ101にキャッシュされ、キャッシュコヒーレンシディレクトリ108は、要求側セルによる排他的所有権を反映するように更新される。次の排他的読み出し要求が、次に、(図2Aの)ステップ205において処理される。
頻繁に変更されるキャッシュラインの場合、ブロック222(及び後続のブロック)によって表されるケースが最も一般的なケースとなるはずである。したがって、ホットラインをキャッシュする結果、平均オフセル(off-cell)待ち時間が大幅に削減される。
本システムの範囲から逸脱することなく、上記方法及び上記システムに一定の変更を行うことができる。上記説明に含まれるすべての事項又は添付図面に示されるすべての事項は、例示として解釈されるべきであり、限定する意味に解釈されるべきでないことに留意すべきである。たとえば、図1A及び図1Bに示すシステムは、それら図に示すコンポーネント以外のコンポーネントを含むように構成することができ、それらのコンポーネントは、他の構成で配置することができる。図2A、図2B、及び図3に示す要素及びステップも、本明細書で説明した方法に従って変更することができ、それら図に示すステップは、上述したシステムの精神から逸脱することなく、他の構成で並べることができる。
100・・・SMPシステム
101・・・クロスバースイッチ
102(1)〜(N)・・・セルボード1〜N
103・・・CPU
104・・・メモリコントローラ
105(1)、(N)・・・キャッシュメモリ
106・・・キャッシュ
108・・・キャッシュコヒーレンシディレクトリ
109・・・変更ラインリスト
101・・・クロスバースイッチ
102(1)〜(N)・・・セルボード1〜N
103・・・CPU
104・・・メモリコントローラ
105(1)、(N)・・・キャッシュメモリ
106・・・キャッシュ
108・・・キャッシュコヒーレンシディレクトリ
109・・・変更ラインリスト
Claims (7)
- 排他的読み出し要求を処理するための対称型マルチプロセッシングシステム(100)であって、
前記システムは、複数のセルボード(102)を含み、
各セルボードは、少なくとも1つのクロスバースイッチ(101)に接続された少なくとも1つのCPU(103)及びキャッシュメモリ(106)を含み、
前記システムは、
前記セルボード(102)のそれぞれの前記キャッシュメモリ(106)で変更されたキャッシュラインのリスト(109)を含む、各前記クロスバースイッチ(101)における変更ラインリスト(109)と、
前記システムの前記キャッシュラインのそれぞれのアドレス、ステータス、及びロケーションを記録するための、各前記クロスバースイッチ(101)におけるキャッシュコヒーレンシディレクトリ(108)と
を備え、
前記セルボード(102)のそれぞれ1つにおける前記キャッシュメモリ(106)は、ライトスルーキャッシュメモリを備え、
前記変更ラインリスト(109)は、アクセスされて、それによって、前記要求されたキャッシュラインを含まない前記セルボード(102)からの前記排他的読み出し要求のそれぞれについて、要求されたキャッシュラインのコピーが得られる
対称型マルチプロセッシングシステム。 - 前記ステータスは、無効状態、共有状態、及び排他状態から成る群から選択される状態である
請求項1に記載の対称型マルチプロセッシングシステム。 - 少なくとも1つの前記クロスバースイッチ(101)が、前記要求されたキャッシュラインのコピーを有する場合に、前記要求されたキャッシュラインのコピーが、前記要求されたキャッシュラインのコピーを有する前記クロスバースイッチ(101)から、前記要求されたキャッシュラインを要求した前記セルボード(102)へ送られ、前記キャッシュコヒーレンシディレクトリ(108)は、前記要求されたキャッシュラインの所有権の変更を示すように更新される
請求項1に記載の対称型マルチプロセッシングシステム。 - 前記クロスバースイッチ(101)が、前記要求されたキャッシュラインのコピーを有しないが、前記要求されたキャッシュラインのコピーが、或る非ホームセルボード(102)に存在する場合に、前記要求されたキャッシュラインのコピーは、1つの前記クロスバースイッチ(101)に記憶され、前記キャッシュコヒーレンシディレクトリ(108)は、前記要求されたキャッシュラインを要求した前記セルボード(102)による排他的所有権を示すように更新される
請求項1に記載の対称型マルチプロセッシングシステム。 - 前記要求されたキャッシュラインのコピーが、どの前記クロスバースイッチ(101)にも存在せず、唯一の前記コピーが、ホームセルボード(102)に記憶されている場合に、前記要求されたキャッシュラインは、前記要求されたキャッシュラインを要求した前記セルボード(102)へ転送され、前記コピーは、1つの前記クロスバースイッチ(101)に記憶され、前記キャッシュコヒーレンシディレクトリ(108)は、前記要求されたキャッシュラインを要求した前記セルボード(102)による排他的所有権を示すように更新される
請求項1に記載の対称型マルチプロセッシングシステム。 - 前記クロスバースイッチ(101)が、前記要求されたキャッシュラインのコピーを有しないが、前記要求されたキャッシュラインのコピーが、複数の前記非ホームセルボード(102)の1つに存在する場合に、前記要求されたキャッシュラインは、前記要求されたキャッシュラインのコピーを有する前記クロスバースイッチ(101)から、前記要求されたキャッシュラインを要求した前記セルボード(102)へ送られ、前記要求されたキャッシュラインのコピーは、1つの前記クロスバースイッチ(101)に記憶され、前記キャッシュコヒーレンシディレクトリ(108)は、前記要求されたキャッシュラインを要求した前記セルボード(102)による排他的所有権を示すように更新される
請求項1に記載の対称型マルチプロセッシングシステム。 - 前記要求されたキャッシュラインのリモート共有コピーが前記システムに存在する場合に、前記要求されたキャッシュラインは、自身のホームセルボード(102)からフェッチされて、前記要求されたキャッシュラインを要求した前記セルボード(102)へ送られ、前記要求されたキャッシュラインのコピーは、1つの前記クロスバースイッチ(101)に記憶され、前記キャッシュコヒーレンシディレクトリ(108)は、前記要求されたキャッシュラインを要求した前記セルボード(102)による排他的所有権を示すように更新される
請求項1に記載の対称型マルチプロセッシングシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/186,333 US7376799B2 (en) | 2005-07-21 | 2005-07-21 | System for reducing the latency of exclusive read requests in a symmetric multi-processing system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007035026A true JP2007035026A (ja) | 2007-02-08 |
Family
ID=37650512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006196761A Withdrawn JP2007035026A (ja) | 2005-07-21 | 2006-07-19 | 対称型マルチプロセッシングシステムにおける排他的読み出し要求の待ち時間を削減するためのシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US7376799B2 (ja) |
JP (1) | JP2007035026A (ja) |
DE (1) | DE102006030879B4 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014186675A (ja) * | 2013-03-25 | 2014-10-02 | Fujitsu Ltd | 演算処理装置、情報処理装置及び情報処理装置の制御方法 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080098178A1 (en) * | 2006-10-23 | 2008-04-24 | Veazey Judson E | Data storage on a switching system coupling multiple processors of a computer system |
US9311241B2 (en) * | 2012-12-29 | 2016-04-12 | Intel Corporation | Method and apparatus to write modified cache data to a backing store while retaining write permissions |
KR20150103477A (ko) * | 2014-03-03 | 2015-09-11 | 주식회사 티맥스 소프트 | 분산환경 기반의 캐쉬 관리 장치 및 방법 |
US10356904B2 (en) * | 2014-05-14 | 2019-07-16 | AT&S Austria Technologie & Systemtechnik Aktiengesellshaft | Conductor track with enlargement-free transition between conductor path and contact structure |
US10503641B2 (en) * | 2016-05-31 | 2019-12-10 | Advanced Micro Devices, Inc. | Cache coherence for processing in memory |
US10282297B2 (en) * | 2017-02-08 | 2019-05-07 | Arm Limited | Read-with overridable-invalidate transaction |
CN108449228B (zh) * | 2018-03-05 | 2020-03-17 | 新华三技术有限公司 | 报文处理方法及网络设备 |
US10740239B2 (en) * | 2018-12-11 | 2020-08-11 | International Business Machines Corporation | Translation entry invalidation in a multithreaded data processing system |
US11656992B2 (en) * | 2019-05-03 | 2023-05-23 | Western Digital Technologies, Inc. | Distributed cache with in-network prefetch |
US11765250B2 (en) | 2020-06-26 | 2023-09-19 | Western Digital Technologies, Inc. | Devices and methods for managing network traffic for a distributed cache |
US11675706B2 (en) | 2020-06-30 | 2023-06-13 | Western Digital Technologies, Inc. | Devices and methods for failure detection and recovery for a distributed cache |
US11360906B2 (en) * | 2020-08-14 | 2022-06-14 | Alibaba Group Holding Limited | Inter-device processing system with cache coherency |
US11736417B2 (en) | 2020-08-17 | 2023-08-22 | Western Digital Technologies, Inc. | Devices and methods for network message sequencing |
US12088470B2 (en) | 2020-12-18 | 2024-09-10 | Western Digital Technologies, Inc. | Management of non-volatile memory express nodes |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04291446A (ja) * | 1990-12-05 | 1992-10-15 | Ncr Corp | スケーラブルメモリ帯域を備えた緊密結合型多重プロセッサ |
US5887146A (en) * | 1995-08-14 | 1999-03-23 | Data General Corporation | Symmetric multiprocessing computer with non-uniform memory access architecture |
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 |
US7051150B2 (en) * | 2002-07-29 | 2006-05-23 | Freescale Semiconductor, Inc. | Scalable on chip network |
US7080214B2 (en) * | 2003-10-16 | 2006-07-18 | International Business Machines Corporation | Directory based support for function shipping in a multiprocessor system |
-
2005
- 2005-07-21 US US11/186,333 patent/US7376799B2/en active Active
-
2006
- 2006-07-04 DE DE102006030879A patent/DE102006030879B4/de not_active Expired - Fee Related
- 2006-07-19 JP JP2006196761A patent/JP2007035026A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014186675A (ja) * | 2013-03-25 | 2014-10-02 | Fujitsu Ltd | 演算処理装置、情報処理装置及び情報処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20070022254A1 (en) | 2007-01-25 |
DE102006030879A1 (de) | 2007-02-01 |
DE102006030879B4 (de) | 2012-12-20 |
US7376799B2 (en) | 2008-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007035026A (ja) | 対称型マルチプロセッシングシステムにおける排他的読み出し要求の待ち時間を削減するためのシステム | |
US7363462B2 (en) | Performing virtual to global address translation in processing subsystem | |
TWI506433B (zh) | 監測過濾機構 | |
US5680576A (en) | Directory-based coherence protocol allowing efficient dropping of clean-exclusive data | |
US6629205B2 (en) | System and method for increasing the snoop bandwidth to cache tags in a cache memory subsystem | |
US7669010B2 (en) | Prefetch miss indicator for cache coherence directory misses on external caches | |
US7765381B2 (en) | Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes | |
US6088769A (en) | Multiprocessor cache coherence directed by combined local and global tables | |
US8489819B2 (en) | Victim cache lateral castout targeting | |
US8225045B2 (en) | Lateral cache-to-cache cast-in | |
US8037252B2 (en) | Method for reducing coherence enforcement by selective directory update on replacement of unmodified cache blocks in a directory-based coherent multiprocessor | |
JP2006277762A (ja) | 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ | |
JP2007199999A (ja) | マルチプロセッサシステム及びその動作方法 | |
US20060265554A1 (en) | Apparatus and method of controlling data sharing on a shared memory computer system | |
US7308538B2 (en) | Scope-based cache coherence | |
JP2008108256A (ja) | コンピュータシステムの複数のプロセッサを結合するスイッチングシステムのデータストレージ | |
WO2007013985A1 (en) | Cache coherence protocol with speculative writestream | |
US6973547B2 (en) | Coherence message prediction mechanism and multiprocessing computer system employing the same | |
EP1611513B1 (en) | Multi-node system in which global address generated by processing subsystem includes global to local translation information | |
KR19990072293A (ko) | 배회(h)상태및최근(r)상태를갖는캐쉬코히어런시프로토콜 | |
JP4162493B2 (ja) | 下位レベルのキャッシュを含むアクセスを促進するためのリバースディレクトリ | |
US6651157B1 (en) | Multi-processor system and method of accessing data therein | |
JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
US20210397560A1 (en) | Cache stashing system | |
US7383390B1 (en) | Resource-limited directories with fine-grained eviction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20080402 |