(57)【要約】【課題】排他的読み出し要求の待ち時間を削減するためのＳＭＰシステムを提供する。【解決手段】本発明にかかるシステムは、排他的読み出し要求を処理するためのＳＭＰシステム（１００）であって、このシステムは、少なくとも１つのクロスバースイッチ（１０１）に接続された少なくとも１つのＣＰＵ（１０３）およびキャッシュメモリ（１０６）を含む、複数のセルボード（１０２）と、セルボードのそれぞれのキャッシュメモリ（１０６）で変更されたキャッシュラインのリスト（１０９）を含む、各クロスバースイッチにおける変更ラインリストと、システムのキャッシュラインのそれぞれのアドレス、ステータス、及びロケーションを記録するための、各クロスバースイッチにおけるキャッシュコヒーレンシディレクトリ（１０８）とを備える。【選択図】図１Ａ
2007035026.tif 000002
【特許請求の範囲】
【請求項１】
排他的読み出し要求を処理するための対称型マルチプロセッシングシステム（１００）であって、
前記システムは、複数のセルボード（１０２）を含み、
各セルボードは、少なくとも１つのクロスバースイッチ（１０１）に接続された少なくとも１つのＣＰＵ（１０３）及びキャッシュメモリ（１０６）を含み、
前記システムは、
前記セルボード（１０２）のそれぞれの前記キャッシュメモリ（１０６）で変更されたキャッシュラインのリスト（１０９）を含む、各前記クロスバースイッチ（１０１）における変更ラインリスト（１０９）と、
前記システムの前記キャッシュラインのそれぞれのアドレス、ステータス、及びロケーションを記録するための、各前記クロスバースイッチ（１０１）におけるキャッシュコヒーレンシディレクトリ（１０８）と
を備え、
前記セルボード（１０２）のそれぞれ１つにおける前記キャッシュメモリ（１０６）は、ライトスルーキャッシュメモリを備え、
前記変更ラインリスト（１０９）は、アクセスされて、それによって、前記要求されたキャッシュラインを含まない前記セルボード（１０２）からの前記排他的読み出し要求のそれぞれについて、要求されたキャッシュラインのコピーが得られる
対称型マルチプロセッシングシステム。
【請求項２】
前記ステータスは、無効状態、共有状態、及び排他状態から成る群から選択される状態である
請求項１に記載の対称型マルチプロセッシングシステム。
【請求項３】
少なくとも１つの前記クロスバースイッチ（１０１）が、前記要求されたキャッシュラインのコピーを有する場合に、前記要求されたキャッシュラインのコピーが、前記要求されたキャッシュラインのコピーを有する前記クロスバースイッチ（１０１）から、前記要求されたキャッシュラインを要求した前記セルボード（１０２）へ送られ、前記キャッシュコヒーレンシディレクトリ（１０８）は、前記要求されたキャッシュラインの所有権の変更を示すように更新される
請求項１に記載の対称型マルチプロセッシングシステム。
【請求項４】
前記クロスバースイッチ（１０１）が、前記要求されたキャッシュラインのコピーを有しないが、前記要求されたキャッシュラインのコピーが、或る非ホームセルボード（１０２）に存在する場合に、前記要求されたキャッシュラインのコピーは、１つの前記クロスバースイッチ（１０１）に記憶され、前記キャッシュコヒーレンシディレクトリ（１０８）は、前記要求されたキャッシュラインを要求した前記セルボード（１０２）による排他的所有権を示すように更新される
請求項１に記載の対称型マルチプロセッシングシステム。
【請求項５】
前記要求されたキャッシュラインのコピーが、どの前記クロスバースイッチ（１０１）にも存在せず、唯一の前記コピーが、ホームセルボード（１０２）に記憶されている場合に、前記要求されたキャッシュラインは、前記要求されたキャッシュラインを要求した前記セルボード（１０２）へ転送され、前記コピーは、１つの前記クロスバースイッチ（１０１）に記憶され、前記キャッシュコヒーレンシディレクトリ（１０８）は、前記要求されたキャッシュラインを要求した前記セルボード（１０２）による排他的所有権を示すように更新される
請求項１に記載の対称型マルチプロセッシングシステム。
【請求項６】
前記クロスバースイッチ（１０１）が、前記要求されたキャッシュラインのコピーを有しないが、前記要求されたキャッシュラインのコピーが、複数の前記非ホームセルボード（１０２）の１つに存在する場合に、前記要求されたキャッシュラインは、前記要求されたキャッシュラインのコピーを有する前記クロスバースイッチ（１０１）から、前記要求されたキャッシュラインを要求した前記セルボード（１０２）へ送られ、前記要求されたキャッシュラインのコピーは、１つの前記クロスバースイッチ（１０１）に記憶され、前記キャッシュコヒーレンシディレクトリ（１０８）は、前記要求されたキャッシュラインを要求した前記セルボード（１０２）による排他的所有権を示すように更新される
請求項１に記載の対称型マルチプロセッシングシステム。
【請求項７】
前記要求されたキャッシュラインのリモート共有コピーが前記システムに存在する場合に、前記要求されたキャッシュラインは、自身のホームセルボード（１０２）からフェッチされて、前記要求されたキャッシュラインを要求した前記セルボード（１０２）へ送られ、前記要求されたキャッシュラインのコピーは、１つの前記クロスバースイッチ（１０１）に記憶され、前記キャッシュコヒーレンシディレクトリ（１０８）は、前記要求されたキャッシュラインを要求した前記セルボード（１０２）による排他的所有権を示すように更新される
請求項１に記載の対称型マルチプロセッシングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対称型マルチプロセッシングシステムにおける排他的読み出し要求の待ち時間を削減するためのシステムに関する。
【背景技術】
【０００２】
対称型マルチプロセシング（ＳＭＰ）システムは、１つ又は２つ以上のＣＰＵセルボードを含む。ＣＰＵセルボードは、１つ又は２つ以上のＣＰＵ、キャッシュ、及びメモリを含む。セルボードは、通常は１つ又は２つ以上のクロスバースイッチを含む一組のリンクである「システムファブリック」によって接続される。セルボード間で（また、単一のセルボード上のＣＰＵ間でも）データを共有することができるが、プロトコルに従ってキャッシュコヒーレンシを維持しなければならない。キャッシュはデータを共有することができるが、同じメモリアドレスが、異なるキャッシュの異なる値を有することは決してできない。
【０００３】
一般的なキャッシュコヒーレンシのインプリメンテーションは、キャッシュコヒーレンシディレクトリと呼ばれるディレクトリを使用する。このキャッシュコヒーレンシディレクトリは、各キャッシュに関連付けられる。キャッシュコヒーレンシディレクトリは、すべてのキャッシュラインのアドレスを、ステータス（たとえば、無効、共有、排他）及びシステムにおけるそのラインのロケーションと共に記録する。一般に、ビットベクトルが、キャッシュラインロケーションを表すのに使用される。各ビットは、プロセッサ又は（いくつかのインプリメンテーションでは）プロセッサバスに対応する。キャッシュコヒーレンシディレクトリの情報が与えられると、プロトコルが、キャッシュコヒーレンシを維持するようにインプリメントされる。
【０００４】
通常のキャッシュコヒーレンシプロトコルでは、各キャッシュアドレスが、ホームディレクトリを有し、システムのいずれの場所においてもキャッシュをミスした排他的読み出しは、最初にそのディレクトリに向かう。ミスされたアドレスが（特定のセルボードにとって）「ローカル」でない場合、キャッシュミスは、システムファブリックをトラバースしなければならない。システムファブリックの構成に応じて、（ミスされたアドレスがローカルアドレスでなかった場合）１つ又は２つ以上のクロスバースイッチを横断して、特定のアドレスのホームディレクトリに到達しなければならない。
【０００５】
要求がホームディレクトリに一旦到達すると、３つの可能なケースがある。
１．（ディレクトリから判断されたように、）ラインのリモートコピーが存在しないケース。このケースでは、ホームディレクトリは、ローカルメモリ又はローカルキャッシュのいずれかから、要求されたラインをフェッチし、そのラインをシステムファブリックを横切って要求側ＣＰＵへ送る。
２．リモート共有コピーが存在するケース。このケースでは、ホームディレクトリは、コピーを含むすべてのノードへ「無効」コマンドを送り、次いで、ローカルメモリ又はローカルキャッシュのいずれかから、要求されたラインをフェッチし、そのラインをシステムファブリックを横切って要求側ノードへ送らなければならない。
３．リモート排他コピーが存在するケース。ホームディレクトリは、そのコピーをフェッチして、リモートキャッシュのそのコピーを無効にし、次いで、要求側ノードへそのコピーを送る。
【０００６】
これらの要求の待ち時間は、ホップ数によって左右される。ホップのそれぞれは、システムファブリックをトラバースするのに必要な時間を増加させる。ＳＭＰが大きくなるにつれて、クロスバースイッチの個数及びノード間のリンクの長さが増加し、これは、ホップするのに必要な平均時間を長くする。また、いくつかのＳＭＰの設計は、（キャッシュではなく）メインメモリにディレクトリを保持し、上記ケース３を、さらに多くの時間を要するものにする。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
性能上の問題に匹敵する、上記のタイプのシステムに関連する設計問題が存在する。すなわち、クロスバースイッチ及びリンクの個数を増加させると、ホップ待ち時間は削減されるが、これらの余分なコンポーネントの費用、それらを所与のサイズのキャビネット内に設計することの難しさ、及びそれらコンポーネントへの電源供給及びそれらコンポーネントの冷却の難しさは、些細な問題ではない。
【課題を解決するための手段】
【０００８】
排他的読み出し要求を処理するための対称型マルチプロセッシングシステムが提供される。システムは、複数のセルボードを含み、各セルボードは、少なくとも１つのＣＰＵ及びキャッシュメモリを含み、すべてのセルボードは、少なくとも１つのクロスバースイッチに接続される。システムは、セルボードのそれぞれにおけるライトスルーキャッシュメモリと、セルボードのそれぞれのキャッシュメモリで変更されたキャッシュラインのリストを有する、各クロスバースイッチにおける変更ラインリストと、システムのキャッシュラインのそれぞれのアドレス、ステータス、及びロケーションを記録するための、同じく各クロスバースイッチにおけるキャッシュコヒーレンシディレクトリと、をさらに備える。
変更ラインリストは、アクセスされて、それによって、要求されたキャッシュラインを含まないセルボードからの排他的読み出し要求のそれぞれについて、要求されたキャッシュラインのコピーが得られる。
【発明を実施するための最良の形態】
【０００９】
本システムは、少なくとも１つのクロスバースイッチを含む対称型マルチプロセシング（ＳＭＰ）システムを含む。図１Ａは、本システム１００の一例示の実施の形態の図である。本システム１００は、クロスバースイッチ１０１を介して相互接続された複数のセルボード１０２（＊）を備える。本文書では、参照番号の後に続く括弧内のアスタリスク「（＊）」は、その参照番号によって表されるエンティティの１つ又は２つ以上の存在を指し、そのように指定されたタイプのエンティティは、少なくとも１つの実施の形態に複数存在する場合がある。図１Ｂは、複数のクロスバースイッチ１０１（１）、１０１（２）、…１０１（Ｎ）を有する本システムの一例示の実施の形態の図である。本システムの代替的な実施の形態は、２つ以上のクロスバースイッチ１０１（＊）を含む場合があることに留意すべきである。クロスバースイッチ１０１（＊）は、本明細書で説明する単一のクロスバースイッチと同じように機能し、一定のキャッシュコヒーレンシディレクトリは、以下に示すような差をアドレス指定する。
【００１０】
図１Ａに示すように、各セルボード１０２（＊）は、プロセッサキャッシュメモリ１０６を含む１つ又は２つ以上のプロセッサ（「ＣＰＵ」）１０３、これらプロセッサによって共有されるメモリ１０５、及びメモリコントローラ１０４を含む。各物理セルボード１０２は、「セル」と呼ばれる、対応する類似の論理エンティティを有し、「セル１０２」という用語は、以下では、その参照が特に物理セルボードを対象としていない限り、この論理対応物を指すのに使用される。クロスバースイッチ１０１は、システムメモリ１１０を含む。システムメモリ１１０は、集中（centralized）キャッシュコヒーレンシディレクトリ１０８、及び、変更キャッシュラインのリスト１０９を含む。これらディレクトリ１０８及びリスト１０９は、クロスバーロジックによって記憶される。クロスバースイッチ１０１は、（キャッシュコヒーレンシプロトコルにおいて与えられた応答を検査することによって）キャッシュラインが変更されたことを検出すると、そのキャッシュラインを変更ラインリスト１０９に記憶する。
【００１１】
ちょうどアドレス指定可能ワードがメモリストレージの基本単位であるように、キャッシュラインがキャッシュストレージの基本単位である。たとえば、キャッシュラインは、１２８バイト、すなわち４ワードから成る場合がある。データストレージ単位の（最小から最大への）階層は、
ビット
バイト
ワード
キャッシュライン
キャッシュセット
である。
【００１２】
キャッシュセットよりも大きなデータの単位が存在するが、ハードウェアのキャッシュレベルでは、キャッシュセットが、目に触れる機会の多い最大の単位である。
【００１３】
変更ラインリスト１０９は、排他的読み出しの平均待ち時間を短くする。たとえば、セルＡで或るキャッシュラインが変更された場合に、その変更されたラインは中央ロケーションにキャッシュされているので、セルＢがそのラインを要求すると、システムファブリックをセルＡへトラバースしてそのラインを取り出す必要はない。
【００１４】
本システムでは、セルボード１０２のそれぞれにおけるキャッシュメモリ１０５は、ライトスルーキャッシュである。ライトスルーキャッシュでは、特定のセルボードのキャッシュ、たとえばキャッシュ１０５（１）、で変更されたどのキャッシュライン（又は、より簡単に「ライン」）も、クロスバー変更ラインリスト１０９へ送出され、クロスバー変更ラインリスト１０９では、他のセルボード１０２（＊）からの要求は、変更されたラインが特定のボードのローカルキャッシュメモリ１０５（１）にしか記憶されていない場合よりも高速に、変更されたラインにアクセスすることができる。
【００１５】
一例示のキャッシュコヒーレンシディレクトリ１０８のフォーマットを以下の表１に示す。
【００１６】
【表１】
2007035026.tif 000003
【００１７】
一例示の実施の形態では、各キャッシュコヒーレンシディレクトリ１０８には、以下のフィールドが存在する。
「キャッシュＩＤ」  キャッシュラインの現在のロケーションを識別する。共有ラインの場合、２つ以上のエントリーが存在することができる。
「インデックス」  キャッシュラインセットを識別する。
「タグ」  セット内でラインを識別する。
「ステータス」  ＭＥＳＩ−「変更」、「排他」、「共有」、又は「無効」（例として）。
【００１８】
キャッシュラインは、ハードウェア設計を簡単にするためにセットにグループ化される。キャッシュＩＤは、キャッシュの識別子であり、ラインが現在存在する特定のキャッシュ１０５（＊）を示す。キャッシュラインアドレスは、タグフィールド、インデックスフィールド、及びブロックオフセットフィールド（セット内でラインを見つけるのに使用される）を含む。ブロックオフセットは、キャッシュライン内のワードを指し、読み出し要求がその情報を提供する場合には、ディレクトリエントリーには必要とされない。したがって、各キャッシュコヒーレンシディレクトリエントリーは、要求側が特定のキャッシュラインにアクセスすることを可能にすると同時に、システムがキャッシュコヒーレンシを維持することを可能にするのに必要なすべての情報を含む。一例示の実施の形態では、キャッシュコヒーレンシディレクトリ１０８は、内容アドレス指定可能メモリ（連想メモリ）（ＣＡＭ）でインプリメントされ、変更キャッシュラインリスト１０９は、従来のＤＲＡＭでインプリメントされる。ただし、ディレクトリ１０８及び変更ラインリスト１０９は、代替的に、他の任意の適切なタイプのメモリを介してインプリメントすることもできる。クロスバースイッチ１０１のロジックは、キャッシュコヒーレンシディレクトリ１０８の更新を取り扱う。
【００１９】
集中キャッシュコヒーレンシディレクトリ１０８を使用することによって、プロトコルが最適化され、また、変更されたキャッシュラインが、要求したラインのローカルコピーを有しないセル１０２（＊）によって要求された場合に、変更されたキャッシュラインを中央に（クロスバースイッチ１０１に）配置することが可能になる。本システムは、当該技術分野で既知のように、キャッシュコヒーレンシを維持するプロトコルをインプリメントする。（たとえば、Hennessey and Patterson著のComputer Architecture, A Quantitative Approach (2nd. Ed.)の 第８．４章, (Morgan-Kaufmann出版, ISBN 1-55860-329-8)を参照されたい。）
【００２０】
本実施の形態では、セルボード上のプロセッサキャッシュ１０６は、ライトスルーキャッシュとしてインプリメントされ、その結果、所与のキャッシュラインが変更されているか否かは、キャッシュコヒーレンシディレクトリ１０８から判断することができる。セルボード１０２（＊）のそれぞれにおけるライトスルーキャッシュ１０５を使用することによって、キャッシュコヒーレンシディレクトリ（１０８）は、所与のラインが変更されているか否かを判断することが可能になる。
【００２１】
図２Ａ及び図２Ｂは、本システムの一実施の形態において、排他的読み出し要求を処理する際に実行される例示の一組のステップを示すフローチャートである。図２Ａに示すように、（ステップ２０５において）排他的読み出し（要求）が、特定のセル１０２（＊）のキャッシュ及びローカルメモリの双方をミスすると、要求されたアドレスは、ステップ２１５において、その要求されたメモリアドレスの「ホーム」クロスバースイッチキャッシュコヒーレンシディレクトリ１０８へ転送される。
【００２２】
「ホーム」の通常の意味は、アドレス空間がセル間で分割されているシステムに関連する。このようなシステムでは、８つのアドレス及び２つのセルが存在する場合、各セルは、４つのアドレスを有し、そのセルは、それら４つのアドレスに対して「ホームセル」である。キャッシュコヒーレンシディレクトリが（従来技術と同様に）そのセルに存在する場合、「ホームディレクトリ」は、「ホームセル」の自然な拡張となる。しかしながら、本システムでは、セルのそれぞれに事前に配置されたキャッシュコヒーレンシディレクトリは、セルから移動されている（removed）一方、クロスバースイッチ１０１においてセルのそれぞれのディレクトリを結合することにより、アドレス区画の特徴を維持する。したがって、マルチクロスバーシステムでは、２つの以上の「ホーム」クロスバースイッチキャッシュコヒーレンシディレクトリが存在する。このディレクトリの実際のロケーションは、要求されたメモリアドレスの関数である。本文書では、特定のキャッシュラインのホームセルは、セル１０２（Ｈ）と呼ばれ、要求側セルは、セル１０２（Ｒ）と呼ばれる。それら特定の参照番号が図面に存在しない場合であっても（ホームセル及び要求側セルは状況に依存するので）、そのように呼ばれる。
【００２３】
図１Ａに示すようなシステムでは、システムが１つのクロスバースイッチしか有しない場合、対象となるシステムアドレス空間は、基本的に、クロスバースイッチ１０１のシステムメモリ１１０から成る。図１Ｂに示すシステム等、複数のクロスバースイッチ１０１を有するシステムでは、システムアドレス空間は、最初に、利用可能なクロスバースイッチ間で区画される。したがって、本システムでは、仮想のクロスバースイッチ「Ａ」上のキャッシュコヒーレンシディレクトリ１０８が、アドレス０〜３を取り扱い、仮想のクロスバースイッチ「Ｂ」上のキャッシュコヒーレンシディレクトリが、アドレス４〜７を取り扱い、以下同様の取り扱いが行われる。
【００２４】
本システムのマルチクロスバーバージョンでは、特定のメモリアドレスの「ホームディレクトリ」（ホームキャッシュコヒーレンシディレクトリ）１０８は、以下の手順に従って決定される。すなわち、たとえば、４つのクロスバースイッチ１０１に４つのホームディレクトリ１０８が存在する場合、要求されたアドレスの２ビットが、どのクロスバー１０１が適切なディレクトリを有するかを判断するのに使用される。
【００２５】
適切なクロスバーを突き止めるのに使用されるこの特定の２ビットは、インプリメンテーションに特有のものであるが、基本的な概念は、クロスバーアドレスがキャッシュコヒーレンシディレクトリ１０８も指定するのに使用されるということである。したがって、１つのクロスバー１０１あたり１つのディレクトリ１０８が存在し、各ディレクトリは、特定の一組のアドレスに対して「ホーム」である。
【００２６】
図２Ａに示すように、排他的読み出しを生成したセル１０２（＊）が、要求されたキャッシュラインのローカルコピーを有する場合、そのラインがステップ２１０において返され、この特定の要求について、本システムによる処理は（それ以上）必要でない。一方、読み出し要求を受け取ったセルが、要求されたキャッシュラインのローカルコピーを有しない場合、この状況は「キャッシュミス」と呼ばれる。受け取り側セル１０２（＊）が、要求されたキャッシュラインのローカルコピーを有しない場合、そのセルは、ラインの要求（要求側セルは、要求されたラインのアドレスのみを提供すればよい）を適切なクロスバースイッチ１０１（＊）に送り、そのようにして、ラインがそのセルのキャッシュにもメモリにも存在しなかったことを示す。
【００２７】
図３は、キャッシュミスを処理する際に本システムの一実施の形態によって実行される例示の一組のステップを示すフローチャートである。キャッシュミスは、一般に、本システムによって以下に説明するように取り扱われる。
【００２８】
ステップ３０５において、クロスバースイッチ１０１は、自身のキャッシュコヒーレンシディレクトリ１０８をチェックして、要求されたラインのロケーション及びそのラインの状態（たとえば、変更、排他、共有、又は無効）を検出する（find）。ステップ３１０において、ラインアドレスが「非ホーム」アドレスであると判断されると、ステップ３１５において、その要求を現在取り扱っているクロスバースイッチ１０１（＊）は、このアドレスが「ホーム」であるクロスバースイッチ１０１（＊）へその要求を転送する。そうでなく、アドレスが「ホーム」アドレスである場合、ステップ３２０において、キャッシュコヒーレンシディレクトリ１０８がチェックされて、ラインが変更されているかどうかが判断される。ラインが変更されたラインでない場合、クロスバースイッチ１０１は、ステップ３２５において、そのアドレスの「ホーム」セルボードへ要求を転送する。キャッシュコヒーレンシディレクトリ１０８が、ラインが変更されていることを示す場合、ラインは、クロスバースイッチの変更ラインリスト１０９にあるはずである。
【００２９】
ステップ３３０において、クロスバースイッチ１０１は、キャッシュメモリにアクセスするのと類似した方法によって、変更されたラインを取り出す。すなわち、変更ラインリスト１０９に示された物理アドレスを指し示す内容アドレス指定可能タグを使用することによって取り出す。次に、ステップ３３５において、キャッシュラインの要求が排他的読み出しであったのか、それとも共有読み出しであったのかを判断するチェックが行われる。要求が共有読み出しであった場合、ステップ３４５において、クロスバースイッチは、ラインが共有されていることを示すメッセージを、ラインを変更したキャッシュへ送る。いくつかのプロトコルでは、そのラインは無効にされる。要求が排他的読み出しのものであった場合、ステップ３４０において、クロスバースイッチは、ラインが現在無効であることを示すメッセージを、ラインを変更したキャッシュへ送る。
【００３０】
このように、クロスバーキャッシュコヒーレンシディレクトリ１０８が、要求されたキャッシュラインが現在どこに位置するかを判断するのに使用され、また、ラインが変更されたか否かを判断するのにも使用されることが分かる。要求されたラインのアドレスが「ホーム」アドレスであり、そのラインが変更されている場合、そのラインは、適切なクロスバースイッチ１０１（＊）の変更ラインリスト１０９にある。他のあらゆるタイプの要求は、別のクロスバースイッチ１０１（＊）又はセル１０２（＊）へ転送される。
【００３１】
図２Ａに示すように、キャッシュライン要求がホームクロスバーディレクトリ１０８に一旦達すると、ステップ２２０において、クロスバースイッチ１０１のキャッシュコヒーレンシディレクトリ１０８の検査により決定される４つの可能なケースが存在する。図２Ｂは、図２Ａの続きのフローチャートであり、図２Ａのブロック２２１〜２２４は、図２Ｂのブロック２３０、２４０、２５０、及び２６０にそれぞれ続くことに留意されたい。ブロック２２１〜２２４で実行されるオペレーションを以下に説明する。
【００３２】
ブロック２２１では、クロスバースイッチにキャッシュラインのコピーは存在せず、唯一のコピーは、ホームセル１０２（Ｈ）に記憶されている。ここで、ホームセル１０２（Ｈ）は、排他モードの場合もあるし、排他モードでない場合もある。図２Ｂに示すように、この状況では、要求を受け取ったクロスバースイッチ１０１は、ステップ２３０において、「読み出し無効」メッセージをホームセル１０２（Ｈ）へ送り、要求側セル１０２（Ｒ）へそのラインを転送する。「読み出し無効」は、ホームセルがラインの現在のバージョンで応答することを暗に意味することに留意されたい。
【００３３】
ステップ２３２において、要求されたラインのコピーは、クロスバースイッチ１０１にキャッシュされ、キャッシュコヒーレンシディレクトリ１０８は、要求側セル１０２（Ｒ）による排他的所有権を反映するように更新される。次の排他的読み出し要求が、次に、（図２Ａの）ステップ２０５において処理される。
【００３４】
ブロック２２２では、クロスバースイッチは、要求されたラインのコピーを有する。図２Ｂに示すように、この場合、要求を受け取ったクロスバースイッチ１０１は、ステップ２４０において、ラインを所有するセル１０２（＊）に「無効」コマンドを送り、次いで、ステップ２４２において、要求側セルにそのコピーを転送する。次に、ステップ２４４において、クロスバーのキャッシュコヒーレンシディレクトリ１０８は、所有権の変更を反映するように更新される。一例示の実施の形態では、このインプリメンテーションは、要求側セルの読み出し排他コマンドがクロスバーに到達した時に、ラインを所有するセルが新しい値をライトスルーしている最中である競合状態を回避するためのメカニズムを含むことができる。ステップ２４６において、ハンドシェークやリドゥ等の措置が取られ、古い値が要求側セルへ転送されている間、ラインの新しい値が処理中（in-flight）でないことが保証される。クロスバーにラインのコピーをこのように保持することによって、これまでの方法に比べて１回のメモリ読み出し及び２つのファブリックホップが省かれる。次の排他的読み出し要求が、次に、（図２Ａの）ステップ２０５において処理される。
【００３５】
ブロック２２３では、クロスバースイッチは、要求されたラインのコピーを有しないが、排他モードの非ホームセル１０２（＊）にはラインのコピーが存在する。図２Ｂに示すように、この状況では、要求を受け取ったクロスバースイッチ１０１は、ステップ２５０において、キャッシュラインを所有するセルへ「読み出し無効」メッセージを送り、ステップ２５２において、要求側セルボードへラインを転送する。ステップ２５４において、ラインのコピーがクロスバースイッチにキャッシュされ、ディレクトリは、要求側セルによる排他的所有権を反映するように更新される。次の排他的読み出し要求が、次に、（図２Ａの）ステップ２０５において処理される。
【００３６】
ブロック２２４では、キャッシュコヒーレンシディレクトリ１０８によって、要求されたラインのリモート共有コピーが存在すると判断される。図２Ｂに示すように、この場合、要求を受け取ったクロスバースイッチ１０１は、ステップ２６０において、コピーを含むすべてのセルへ「読み出し無効」コマンドを送り、ステップ２６２において、要求されたラインのすべてのコピーを無効にし、次いで、ステップ２６４において、要求されたラインをホームセルからフェッチして、そのラインを、システムファブリックを横断して要求側セルへ送る。ステップ２６６において、ラインのコピーがクロスバースイッチ１０１にキャッシュされ、キャッシュコヒーレンシディレクトリ１０８は、要求側セルによる排他的所有権を反映するように更新される。次の排他的読み出し要求が、次に、（図２Ａの）ステップ２０５において処理される。
【００３７】
頻繁に変更されるキャッシュラインの場合、ブロック２２２（及び後続のブロック）によって表されるケースが最も一般的なケースとなるはずである。したがって、ホットラインをキャッシュする結果、平均オフセル（off-cell）待ち時間が大幅に削減される。
【００３８】
本システムの範囲から逸脱することなく、上記方法及び上記システムに一定の変更を行うことができる。上記説明に含まれるすべての事項又は添付図面に示されるすべての事項は、例示として解釈されるべきであり、限定する意味に解釈されるべきでないことに留意すべきである。たとえば、図１Ａ及び図１Ｂに示すシステムは、それら図に示すコンポーネント以外のコンポーネントを含むように構成することができ、それらのコンポーネントは、他の構成で配置することができる。図２Ａ、図２Ｂ、及び図３に示す要素及びステップも、本明細書で説明した方法に従って変更することができ、それら図に示すステップは、上述したシステムの精神から逸脱することなく、他の構成で並べることができる。
【図面の簡単な説明】
【００３９】
【図１Ａ】本システムの一例示の実施の形態の図である。
【図１Ｂ】複数のクロスバースイッチを有する本システムの一例示の実施の形態の図である。
【図２Ａ】本システムの一実施の形態において、排他的読み出し要求を処理する際に実行される例示の一組のステップの一部を示すフローチャートである。
【図２Ｂ】本システムの一実施の形態において、排他的読み出し要求を処理する際に実行される例示の一組のステップの一部を示すフローチャートである。
【図３】キャッシュミスを処理する際に本システムの一実施の形態によって実行される例示の一組のステップを示すフローチャートである。
【符号の説明】
【００４０】
１００・・・ＳＭＰシステム
１０１・・・クロスバースイッチ
１０２（１）〜（Ｎ）・・・セルボード１〜Ｎ
１０３・・・ＣＰＵ
１０４・・・メモリコントローラ
１０５（１）、（Ｎ）・・・キャッシュメモリ
１０６・・・キャッシュ
１０８・・・キャッシュコヒーレンシディレクトリ
１０９・・・変更ラインリスト
【図１Ａ】
2007035026.tif 000004
【図１Ｂ】
2007035026.tif 000005
【図２Ａ】
2007035026.tif 000006
【図２Ｂ】
2007035026.tif 000007
【図３】
2007035026.tif 000008