(57)【要約】【課題】コンピュータシステムの複数のプロセッサを結合するスイッチングシステムのデータストレージを提供する。【解決手段】コンピューティングシステム１００には、複数の処理ユニット１１０ａ、１１０ｂ、１１０ｃが含まれる。各処理ユニット１１０には、スイッチングシステム１２０が結合されている。スイッチングシステム１２０はメモリ１３０を含む。処理ユニット１１０のそれぞれは、スイッチングシステム１２０を通じて処理ユニット１１０の別のものからのデータにアクセスするように構成されている。データが、処理ユニット１１０間でスイッチングシステム１２０を通過する時に、スイッチングシステム１２０は、メモリ１３０にデータのコピーを記憶するように構成されている。さらに、処理ユニット１１０のそれぞれは、スイッチングシステム１２０のメモリ１３０におけるデータのコピーにアクセスするようにさらに構成されている。【選択図】図１
2008108256.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングシステム（１００）であって、
複数の処理ユニット（１１０）と、
前記処理ユニット（１１０）のそれぞれに結合されたスイッチングシステム（１２０）であって、メモリ（１３０）を備える、スイッチングシステム（１２０）と
を備え、
前記処理ユニット（１１０）のそれぞれは、前記スイッチングシステム（１２０）を通じて、前記処理ユニット（１１０）の別のものからのデータにアクセスするように構成され、
前記スイッチングシステム（１２０）は、前記データが前記処理ユニット（１１０）間で該スイッチングシステム（１２０）を通過する時に、前記メモリ（１３０）内に前記データのコピーを記憶するように構成され、
前記処理ユニット（１１０）のそれぞれは、前記スイッチングシステム（１２０）の前記メモリ（１３０）における前記データの前記コピーにアクセスするようにさらに構成されている
コンピューティングシステム。
【請求項２】
前記スイッチングシステム（１２０）は、二対以上の前記処理ユニット（１１０）が該処理ユニットの間で同時にデータを転送することを可能にするように構成されている
請求項１に記載のコンピューティングシステム。
【請求項３】
前記スイッチングシステム（１２０）は、
前記処理ユニット（１１０）間で前記スイッチングシステム（１２０）を通過する前記データのいずれが前記メモリ（１３０）に記憶されるかを選択するように構成される制御回路（３４０）
をさらに備える
請求項１に記載のコンピューティングシステム。
【請求項４】
前記処理ユニット（１１０）間を通る前記データは、排他モード及び共有モードの一方で該処理ユニット（１１０）のうちの１つによって読み出され、
前記排他モードで読み出された前記データは、前記メモリ（１３０）に記憶されず、
前記共有モードで読み出された前記データは、前記メモリ（１３０）に記憶される
請求項１に記載のコンピューティングシステム。
【請求項５】
前記メモリ（１３０）内の前記データは、キャッシュ置き換えポリシーの下で置き換えられる
請求項１に記載のコンピューティングシステム。
【請求項６】
コンピューティングシステムを動作させる方法（２００）であって、
前記コンピューティングシステムのスイッチングシステムを介して該コンピューティングシステムの複数の処理ユニットを互いに結合すること（２０２）と、
前記処理ユニットのそれぞれにおいて、前記スイッチングシステムを通じて前記処理ユニットの別のものに記憶されたデータにアクセスすること（２０４）と、
前記スイッチングシステムにおいて、前記データが前記処理ユニット間で前記スイッチングシステムを通過する時に、前記データのコピーを記憶すること（２０６）と、
前記処理ユニットのそれぞれにおいて、前記スイッチングシステムに記憶された前記データの前記コピーにアクセスすること（２０８）と
を含むコンピューティングシステムを動作させる方法。
【請求項７】
前記処理ユニットのそれぞれは、前記スイッチングシステムを通じて前記処理ユニットの別のものに記憶された前記データに同時にアクセスすることができる
請求項６に記載のコンピューティングシステムを動作させる方法。
【請求項８】
前記処理ユニット間で前記スイッチングシステムを通過する前記データのいずれが前記スイッチングシステムに記憶されるかを選択すること
をさらに含む請求項６に記載のコンピューティングシステムを動作させる方法。
【請求項９】
前記処理ユニットの別のものに記憶された前記データにアクセスすること（２０４）は、排他モード及び共有モードの一方で実行され、
前記排他モードでアクセスされた前記データは、前記スイッチングシステムに記憶されず、
前記共有モードでアクセスされた前記データは、前記スイッチングシステムに記憶される
請求項６に記載のコンピューティングシステムを動作させる方法。
【請求項１０】
キャッシュ置き換えポリシーに従って前記スイッチングシステム内の前記データを置き換えること
をさらに含む請求項９に記載のコンピューティングシステムを動作させる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムの複数のプロセッサを結合するスイッチングシステムのデータストレージに関する。
【背景技術】
【０００２】
コンピューティングシステムは、汎用コンピューティングシステム又はより具体的なタスクを目的としたアルゴリズムデバイス等、多くの種類が売り出されている。しかしながら、コストに加えて、あらゆるコンピュータシステムの最も重要な特性の１つは、その性能である。性能、すなわち実行速度は、多くの場合、システムが特定の期間の間に実行できるオペレーション数の観点から定量化される。単一の主要な処理ユニットを使用する一般的なコンピュータシステムの性能は、多くのファクタによって、長年にわたり着実に増加してきた。たとえば、処理ユニット自体、データメモリ、入出力（Ｉ／Ｏ）周辺機器、システムのそれ以外の部分等のさまざまなシステムコンポーネントの生の動作速度の改善が、性能の増加に貢献してきた。加えて、使用される命令セット、組み込まれる内部データレジスタの個数等を含む処理ユニットの内部構造の進歩によっても、コンピュータの性能は高められてきた。頻繁にアクセスされるデータ用に１つ又は複数のキャッシュメモリを使用する階層的なデータストレージシステムの使用等、他のアーキテクチャ関連事項も、同様に、これらの性能改善に貢献してきた。
【０００３】
シングルプロセッサモデルを超えるコンピュータ実行速度のより大きな増大を生み出すために、複数の処理ユニットが互いに結合されて或る協調的な方法で作業する多数のマルチプロセッサコンピューティングシステムアーキテクチャが提案され、実施されている。或る共通のタスクを実行するために、処理ユニットは、通例、それら処理ユニット間の或るタイプの情報の共有を介して相互通信し、したがって、処理ユニットがそれらのアクティビティを調整することが可能になる。これらの工夫されたアーキテクチャの多くは、処理ユニット間で共通のメモリアドレス空間を介して、実行制御情報及びステータス情報に加えてデータの共有を実施する。
【０００４】
通例、マルチプロセシングコンピュータシステムの目的は、特定のタスクの実行時間を、シングルプロセッサコンピュータを上回って極端に短縮することである。この短縮は、使用される処理ユニットの個数に等しいファクタの理論的限界に近づいている。あいにく、共有アドレス空間の同じ部分を得るための複数の処理ユニット間の競合等、シングルプロセッサシステムでは遭遇しない問題が、処理ユニットの１つ又は複数の実行速度を低下させる可能性があり、それによって、得ることができる性能増加が抑制される可能性がある。
【０００５】
この問題に対処するために、いくつかのコンピューティングシステムは、同じデータの複数のコピーがシステム内に存在することを許容し、処理ユニット間で同じデータへのアクセスを得るためのあらゆる競合を軽減できるようにしている。しかしながら、処理ユニットのそれぞれは、システム内に存在するデータコピーの１つ又は複数を変更する場合があるので、データのコヒーレンス、すなわち一貫性は、そのデータのコピーの存在及び変更に対する制限に関するいくつかのルールなしでは損なわれるおそれがある。一方で、これらのルールは、データの複数のコピーを許容することの有効性を低減する傾向がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、コンピュータシステムの複数のプロセッサを結合するスイッチングシステムのデータストレージを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明にかかるコンピューティングシステムは、複数の処理ユニット（１１０）と、前記処理ユニット（１１０）のそれぞれに結合されたスイッチングシステム（１２０）であって、メモリ（１３０）を備える、スイッチングシステム（１２０）とを備え、前記処理ユニット（１１０）のそれぞれは、前記スイッチングシステム（１２０）を通じて、前記処理ユニット（１１０）の別のものからのデータにアクセスするように構成され、前記スイッチングシステム（１２０）は、前記データが前記処理ユニット（１１０）間で該スイッチングシステム（１２０）を通過する時に、前記メモリ（１３０）内に前記データのコピーを記憶するように構成され、前記処理ユニット（１１０）のそれぞれは、前記スイッチングシステム（１２０）の前記メモリ（１３０）における前記データの前記コピーにアクセスするようにさらに構成されている。
【発明を実施するための最良の形態】
【０００８】
本発明の一実施の形態は、図１に示すようなコンピューティングシステム１００である。コンピューティングシステム１００には、複数の処理ユニット１１０ａ、１１０ｂ、１１０ｃが含まれる。図１には少なくとも３つの処理ユニットが示されているが、他の実施の形態では、最低限２つを使用することができる。各処理ユニット１１０には、スイッチングシステム１２０が結合されている。スイッチングシステム１２０はメモリ１３０を含む。処理ユニット１１０のそれぞれは、スイッチングシステム１２０を通じて処理ユニット１１０の別のものからのデータにアクセスするように構成されている。データが、処理ユニット１１０間でスイッチングシステム１２０を通過する時に、スイッチングシステム１２０は、メモリ１３０にデータのコピーを記憶するように構成されている。さらに、処理ユニット１１０のそれぞれは、スイッチングシステム１２０のメモリ１３０におけるデータのコピーにアクセスするようにさらに構成されている。
【０００９】
図２は、図１のシステム１００等のコンピューティングシステムを動作させる方法２００をフロー図によって示している。しかしながら、他の実施の形態では、方法２００を実行するのに他のシステムを使用することができる。まず、複数の処理ユニットが、スイッチングシステムを介して互いに結合される（オペレーション２０２）。処理ユニットのそれぞれにおいて、処理ユニットの別のものにあるデータが、スイッチングシステムを通じてアクセスされる（オペレーション２０４）。スイッチングシステムでは、データが処理ユニット間でスイッチングシステムを通過する時に、データのコピーが記憶される（オペレーション２０６）。さらに、処理ユニットのそれぞれでは、スイッチングシステムに記憶されたデータのコピーがアクセスされる（オペレーション２０８）。
【００１０】
図３は、本発明の別の実施の形態による特定のコンピューティングシステム３００を示している。コンピューティングシステム３００は、以下では、処理ユニットの個数、処理ユニットを相互接続するのに使用されるスイッチングシステムのタイプ等、具体的に説明されるが、以下で具体的に述べられる詳細の変形を使用する他の実施の形態も可能である。
【００１１】
コンピューティングシステム３００は、４つの処理ユニット３１０ａ、３１０ｂ、３１０ｃ、３１０ｄを含む。処理ユニットのそれぞれは、クロスバースイッチ３２０に結合されている。メモリ３３０が、クロスバースイッチ３２０内に組み込まれるか、又は、クロスバースイッチ３２０と直接結合される。また、スイッチ３２０内には、制御ロジック３４０及びタグバンク３５０が存在している。制御ロジック３４０及びタグバンク３５０の機能は後述する。図３に示すような複数の処理ユニット及びスイッチを使用するシステムアーキテクチャは、「対称型マルチプロセシング」システム、すなわちＳＭＰシステムと呼ばれることが多い。この用語は、共通のメモリアドレス空間を共有する任意の個数の複数の同一の処理ユニットを使用するコンピューティングシステムに一般に適用される。ＳＭＰアーキテクチャは、一般に、ＵＮＩＸ（登録商標）コンピューティングシステム及びＮＴ／２０００コンピューティングシステムに使用される。図３は、４つの処理ユニット３１０の存在を具体的に示しているが、他の実施の形態では、これよりも多くの処理ユニット３１０を利用することもできるし、わずか２つの処理ユニット３１０のみを利用することもできる。
【００１２】
クロスバースイッチ３２０は、処理ユニット３１０の任意の２つの間のデータの移動等の通信を可能にするように構成されるスイッチングシステムとして動作する。さらに、処理ユニット３１０のいずれの間の通信も、クロスバースイッチ３２０を通じて同時に行うことができる。他の実施態様では、ステータス及び制御情報等の他の情報、プロセッサ間メッセージ等を、処理ユニット３１０間でスイッチ３２０を通じて渡すことができる。さらに他の実施の形態では、処理ユニット３１０間でデータの通過を円滑にするクロスバースイッチ以外のスイッチを利用することができる。別の実施態様では、２つ以上のスイッチ３２０を利用でき、これらスイッチ３２０の１つ又は複数はメモリ３３０を含み、さまざまな処理ユニット３１０を相互結合するスイッチングシステム又は「ファブリック」を形成するように構成することができる。このシナリオの下では、スイッチングファブリック又はスイッチングシステムを形成するスイッチの２つ以上の間にメモリ３３０を分散させることができる。
【００１３】
クロスバースイッチ３２０のメモリ３３０は、処理ユニット３１０間でスイッチ３２０を通過するデータの或る部分を記憶できる任意のメモリとすることができる。一実施態様では、メモリ３２０の記憶容量は、少なくとも１ギガバイト（ＧＢ）である。多数のメモリ技術のいずれもメモリ３２０に利用することができる。これらのメモリ技術には、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）及びスタティックランダムアクセスメモリ（ＳＲＡＭ）、並びにＤＲＡＭ又はＳＲＡＭのいずれかを使用したシングルインラインメモリモジュール（ＳＩＭＭ）及びデュアルインラインメモリモジュール（ＤＩＭＭ）が含まれるが、これらに限定されるものではない。
【００１４】
処理ユニットのうちの１つ３１０ａのより詳細な表現を図４のブロック図に提示する。図３の他の処理ユニット３１０のいずれか又はすべては、同じアーキテクチャを表すこともできるし、まったく異なる内部構造を使用することもできる。図４では、処理ユニット３１０ａは、４つのプロセッサ３１２ａ、３１２ｂ、３１２ｃ、３１２ｄを含む。これら４つのプロセッサのそれぞれは、さらに、キャッシュメモリ３１４ａ、３１４ｂ、３１４ｃ、３１４ｄをそれぞれ含む。さらに、プロセッサ３１２のそれぞれは、メモリコントローラ３１６に結合されている。メモリコントローラ３１６は、さらに、処理ユニット３１０ａ内に配置された又は処理ユニット３１０ａと密接に結合されたローカルメモリ３１８と、図３に示されたクロスバースイッチ３２０とのそれぞれに結合されている。他の実施の形態では、各処理ユニット３１０は、１つ又は複数のプロセッサ３１２を有することができる。
【００１５】
一般に、図３の特定のシステム３００の処理ユニット３１０のそれぞれは、同じ共有メモリアドレス空間にアクセスする。共有アドレス空間は、処理ユニット３１０のローカルメモリ３１８の一部又は全部の間に分散又はアロケートされている。一実施態様では、各処理ユニット３１０のローカルメモリ３１８は、処理ユニット３１０によって共有されるメモリアドレス空間の排他的部分に関連付けられたデータを含む。アドレス空間のその部分について、関連付けられた処理ユニット３１０は、そのデータの「ホーム」ロケーションとみなすことができ、そのホームロケーションから、他の処理ユニット３１０は、スイッチ３２０を通じてそのデータにアクセスすることができる。場合によっては、データの要求された部分の最新バージョンが、ホーム処理ユニット３１０ではなく、別の処理ユニット３１０に配置されている場合がある。しかしながら、このような実施の形態では、ホーム処理ユニット３１０及びスイッチ３２０またはこれらのうちのいずれか（ホーム処理ユニット３１０及び／又はスイッチ３２０）は、データの最新バージョンのロケーションを示すディレクトリ又は類似のデータ構造体に情報を保持する。別の実施の形態では、処理ユニット３１０のそれぞれは、別の処理ユニット３１０をホームとするデータ又は別の処理ユニット３１０から前にアクセスされたデータのキャッシュとして自身のローカルメモリ３１８を利用することもできる。したがって、処理ユニット３１０のうちの１つによってその共有アドレス空間内でアクセスされるどの特定のデータについても、そのデータは、そのデータを要求する処理ユニット３１０内に存在することもできるし、処理ユニット３１０の別のものに存在することもできるし、それら双方に存在することもできる。加えて、処理ユニット３１０のそれぞれは、自身が使用するために予約されたデータメモリにアクセスすることができる。これは、図４には明示的に示されていない。
【００１６】
図５は、図３のシステム３００を動作させるための方法５００の高レベル図を示している。図４に示す処理ユニット３１０ａについて、各プロセッサ３１２は、共有メモリ空間内の特定のデータにアクセスする（たとえば、読み出す）時に、まず、自身のキャッシュメモリ３１４を検索することができる（オペレーション５０２）。データがキャッシュ３１４で見つかると、そのデータがアクセスされる（オペレーション５０４）。データがキャッシュ３１４で見つからない場合、メモリコントローラ３１６は、プロセッサ３１２からデータ要求を受信する（オペレーション５０６）。これに応答して、メモリコントローラ３１６は、まず、処理ユニット３１０のローカルメモリ３１８を検索することができる（オペレーション５０８）。ローカルメモリ３１８における要求されたデータの検索が成功した場合、そのデータがアクセスされて、プロセッサ３１２に返される（オペレーション５１０）。成功しなかった場合、次に、要求をクロスバースイッチ３２０へ転送することができる（オペレーション５１２）。
【００１７】
クロスバースイッチ３２０が、処理ユニット３１０ａからメモリ要求を受信した後、スイッチ３２０は、要求されたデータを得るために自身のメモリ３３０を検索することができる（オペレーション５１４）。データがメモリ３３０に記憶されている場合、そのデータがアクセスされて、要求側の処理ユニット３１０へ返される（オペレーション５１６）。データが見つからない場合、スイッチ３２０は、要求されたデータのホームロケーションとして動作する特定の処理ユニット３１０等、残りの処理ユニット３１０のいずれがデータを保有しているかを決定することができ（オペレーション５１８）、要求をその処理ユニットへ方向付けることができる（オペレーション５２０）。要求を受信した処理ユニット３１０は、要求されたデータにアクセスし、そのデータをスイッチ３２０に返す（オペレーション５２２）。スイッチ３２０は、次に、要求されたデータを要求側の処理ユニット３１０へ転送する（オペレーション５２４）。加えて、スイッチ３２０は、要求側の処理ユニット３１０へ返されるデータのコピーを自身のメモリ３３０内に記憶することもできる（オペレーション５２６）。処理ユニット３１０のいずれも、その後、メモリ３３０内に記憶されたデータのコピーにアクセスすることができる（オペレーション５２８）。
【００１８】
要求されたデータの最新バージョンが、ホーム処理ユニット３１０に配置されていない場合、ホーム処理ユニット３１０は、要求されたデータの最新バージョンを保持する特定の処理ユニット３１０へスイッチ３２０を介して要求を転送することができる。別の実施態様では、スイッチ３２０は、ホーム処理ユニット３１０を関与させることなく、その要求を直接転送することができる。最新バージョンを保持するユニット３１０は、次に、要求されたデータをスイッチ３２０へ返すことができる。スイッチ３２０は、次に、データを要求側のユニット３１０へ直接渡すことができる。さらに別の実施の形態では、スイッチ３２０は、最新バージョンをホーム処理ユニット３１０へ転送することもでき、ホーム処理ユニット３１０は、次に、自身のデータのコピーを更新することができる。
【００１９】
２つ以上のスイッチ３２０がコンピューティングシステム３００内で使用される実施の形態では、スイッチ３２０の２つ以上が、さまざまな処理ユニット３１０間でのデータの要求及び応答の転送に関与することができる。たとえば、スイッチ３２０の或るものは、処理ユニット３１０の或るものからデータの要求を受信すると、直接又は別のスイッチ３２０を介して、その要求を別の処理ユニット３１０へ転送することができる。このような要求に応答して処理ユニット３１０により返されたデータは、同様の方法で要求側の処理ユニット３１０へ返されうる。さらに、データが通過するスイッチ３２０の１つ又は複数は、そのデータをその後に要求する別の処理ユニット３１０による後の取り出しのために、そのデータのコピーを記憶することができる。
【００２０】
単一の共有メモリ空間が、いくつかの処理ユニット３１０間で分散され、また、各処理ユニット３１０が、自身に関連付けられたキャッシュメモリ３１４又は自身のローカルメモリ３１８内にデータの一時的なコピーをキャッシュできることを考慮に入れると、潜在的なキャッシュコヒーレンス問題が結果として生じる可能性がある。換言すれば、同じデータについて、各コピーが潜在的に異なる値を示す複数のコピーが存在する場合がある。たとえば、或る処理ユニット３１０が、スイッチ３２０を通じて別の処理ユニット３１０のローカルメモリ３１８内に記憶されたデータにアクセスする場合、そのデータが、処理ユニット３１０ａのキャッシュメモリ３１４又はローカルメモリ３１８の一方の内部等、要求側の処理ユニット３１０に最終的にキャッシュされるかどうかについての疑問が存在する。データをローカルにキャッシュする結果、データの複数のコピーがシステム３００内に生じる。データのコピーをスイッチ３２０のメモリ３３０内に保存することも、潜在的に同じ問題を引き起こす。
【００２１】
起こり得るキャッシュコヒーレンシ問題に対処するために、スイッチ３２０は、処理ユニット３１０間でスイッチ３２０を通過するデータのいずれをメモリ３３０内に記憶するかを選択することができる。一実施の形態では、このような選択は、データを要求した処理ユニット３１０からスイッチ３２０により受信された情報に依存する場合がある。たとえば、要求されたデータは、排他モード及び共有モードの２つの異なるモードの一方の下でアクセスすることができる。共有モードでは、要求側の処理ユニット３１０は、データが読み出された後、自身がそのデータの値を変更しないことを示す。逆に、排他モードの下でデータへのアクセスを要求することは、処理ユニット３１０が、要求されているデータの値を変更する意図があることを示す。その結果、共有モードの下でアクセスされているその特定のデータの複数のコピーは、すべて同じ一貫した値を有する一方、排他モードの下で取得されているコピーデータは、変更される可能性があり、したがって、その同じデータの他のコピーは無効になる可能性がある。
【００２２】
これら２つのモードを使用する一実施の形態では、十分な空間がメモリ３３０内に存在する場合、スイッチ３２０は、共有モードで要求されたデータをメモリ３３０に記憶することができる。他方、排他モードの下でアクセスされている、スイッチ３２０を通過するデータは、メモリ３３０に記憶されない。したがって、１つ又は複数の処理ユニット３１０からのさらに別のデータ要求を満たすのに使用される、スイッチ３２０のメモリ３３０内のデータは、別の処理ユニット３１０による変更によって無効にされることから保護される。
【００２３】
スイッチ３２０を通過するデータの少なくともいくつかをメモリ３３０内に記憶することによって、スイッチ３２０は、メモリ３３０からデータを直接読み出して、そのデータを要求側の処理ユニット３１０へ転送することにより、その同じデータのその後の要求を満たすことができる。そうでない場合、上述したように、要求は、データを保有する処理ユニット３１０へ転送されることになり、その後、要求にサービスを提供する処理ユニット３１０は、自身のローカルメモリ３１８からデータを読み出して、そのデータをスイッチ３２０へ転送することになる。その時になって初めて、スイッチ３２０は、要求側の処理ユニット３１０へデータを転送することができる。したがって、メモリ３３０が、要求されたデータを含む状況では、データ要求とその要求を満たすこととの間の待ち時間は大幅に削減される。また、他の処理ユニット３１０へ転送されるデータ要求の個数が少なくなることによる結果として、処理ユニット３１０とスイッチ３２０との間の全体的なトラフィックレベルは大幅に減少し、したがって、システム３００のスループット及び性能は向上する。
【００２４】
スイッチ３２０のメモリ３３０で利用可能なデータストレージ量は有限であることを前提とすると、メモリ３３０は、或る時点でフルになる可能性があり、したがって、メモリ３３０に記憶されたデータのいずれを新しいデータと置き換えるかについての或る決定が必要とされる。一実施の形態においてこの問題に対処するために、スイッチ３２０は、少なくとも１つのキャッシュ置き換えポリシーの下で、メモリ３３０にすでに記憶されたデータを置き換えることができる。たとえば、スイッチ３２０は、最長未使用（ＬＲＵ）ポリシーを採用することができる。このＬＲＵポリシーでは、最も長くアクセスされていないメモリ３３０のデータが、メモリ３３０内に記憶される最も新しいデータと置き換えられる。別の実施態様では、スイッチ３２０は、最近未使用（ＮＲＵ）ポリシーを利用することができる。ＮＲＵポリシーでは、所定の期間内において最近アクセスされていないメモリ３３０内のデータがランダムに選択されて、新しいデータと置き換えられる。他の実施の形態では、先入れ先出し（ＦＩＦＯ）、セカンドチャンス、低使用頻度（ＮＦＵ）が含まれるが、これらに限定されるものではない、他のキャッシュ置き換えポリシーを利用することができる。
【００２５】
上記のいくつかの実施の形態で説明したように、メモリ３３０は、一種のキャッシュメモリとして実施することができる。その結果、メモリ３３０は、時に中央処理装置（ＣＰＵ）コンピュータボードに組み込まれるレベル４（Ｌ４）キャッシュ等の外部キャッシュメモリと同様の方法で設計することができる。
【００２６】
一実施の形態では、スイッチ３２０は、制御ロジック３４０を使用する。制御ロジック３４０は、処理ユニット３１０から受信されたデータの各要求を解析して、その要求を処理ユニット３１０のいずれに方向付けるかを決定する。この機能は、一例では、アクセスされるデータのアドレスを、特定の処理ユニット３１０に関連付けられた共有アドレス空間のアドレス又はアドレス範囲を列挙したテーブルと比較することによって行うことができる。この解析の一部として、制御ロジック３４０は、要求されたデータのアドレスを、「タグバンク」３５０と比較することもできる。タグバンク３５０は、データがメモリ３３０に配置されているかどうかに関する情報を含み、配置されている場合には、メモリ３３０内におけるそのデータのロケーションを含む。一例では、要求されたデータに関する情報を得るためにタグバンク３５０を検索するのに必要な時間を削減するために、不連続タグルックアップ（non-sequential tag look-up）方式が実施される。
【００２７】
タグバンク３５０で必要とされる情報の量を削減するために、共有メモリエリア、及び、その結果として、スイッチ３２０のメモリ３３０は、各ラインが共有アドレス空間の複数の連続したアドレスロケーションからのデータを含む、キャッシュ「ライン」に編成することができる。アドレス空間のロケーションをこのようにグループ化することによって、より小さなタグバンク３５０の保持及び検索が可能になる。
【００２８】
本発明のいくつかの実施の形態を本明細書で解説してきたが、本発明の範囲によって包含される他の実施の形態が可能である。たとえば、図３及び図４と共に説明した本発明の特定の実施の形態は、単一のクロスバースイッチ３２０を有するＳＭＰシステムを使用するが、１つ若しくは２つ以上のスイッチ、又は、スイッチングシステム若しくはスイッチングファブリックとして構成される他の相互接続デバイスと結合された複数のプロセッサを使用する他のコンピューティングシステムアーキテクチャも、本明細書で提示した実施の形態から利益を受けることができる。加えて、一実施の形態の態様を本明細書で解説した他の実施の形態の態様と組み合わせて、本発明のさらに別の実施態様を生み出すことができる。したがって、本発明を特定の実施の形態との関連で説明してきたが、このような説明は、限定のためではなく例示のために提供されたものである。したがって、本発明の適切な範囲は、添付の特許請求の範囲によってのみ画定される。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施の形態によるコンピューティングシステムのブロック図である。
【図２】本発明の一実施の形態によるコンピューティングシステムを動作させるための方法のフロー図である。
【図３】本発明の別の実施の形態によるコンピューティングシステムのブロック図である。
【図４】本発明の別の実施の形態による図３のコンピューティングシステムの処理ユニットのブロック図である。
【図５】本発明の一実施の形態による図３及び図４のコンピューティングシステムを動作させるための方法のフロー図である。
【符号の説明】
【００３０】
１００・・・コンピューティングシステム
１１０ａ，１１０ｂ，１１０ｃ・・・処理ユニット
１２０・・・スイッチングシステム
１３０・・・メモリ
３１０ａ，３１０ｂ，３１０ｃ，３１０ｄ・・・処理ユニット
３１２ａ，３１２ｂ，３１２ｃ，３１２ｄ・・・プロセッサ
３１４ａ，３１４ｂ，３１４ｃ，３１４ｄ・・・キャッシュメモリ
３１６・・・メモリコントローラ
３１８・・・ローカルメモリ
３２０・・・クロスバースイッチ
３３０・・・メモリ
３４０・・・制御ロジック
３５０・・・タグバンク
【図１】
2008108256.tif 000003
【図２】
2008108256.tif 000004
【図３】
2008108256.tif 000005
【図４】
2008108256.tif 000006
【図５】
2008108256.tif 000007