(57)【要約】【課題】  パーティショニングされたコンピュータシステムにおける改良された通信方式を提供する。【解決手段】  本発明にかかるマルチプロセッサコンピュータシステム（９０など）は、各プロセッサが該プロセッサによって直接アドレス指定可能なアドレス空間（Ｃ０〜Ｃ２７）を有する複数のプロセッサ（９２）を備え、各アドレス空間（Ｃ０〜Ｃ２７）は、該アドレス空間および少なくとも１つの他のアドレス空間の双方内におけるメモリ（９４など）によって、該少なくとも１つの他のアドレス空間に直接リンクされ、直接に、または、直接リンクされたアドレス空間を通じてのいずれかで互いにリンクされた該システム内のアドレス空間の全サイズは、該システム内の資源が直接アドレス指定できるアドレス空間よりも大きいことがある。【選択図】図１
2006092534.tif 000002
【特許請求の範囲】
【請求項１】
マルチプロセッサコンピュータシステム（９０、１９０、２９０）であって、
各プロセッサが該プロセッサによって直接アドレス指定可能なアドレス空間（Ｃ０〜Ｃ２７）を有する複数のプロセッサ（９２）
を備え、
各アドレス空間（Ｃ０〜Ｃ２７）は、該アドレス空間および少なくとも１つの他のアドレス空間の双方内におけるメモリ（９４：０３、１４、１７、２０、２３、３４、３７、４０、４３、５４、５７、６０、６３、７４；１００、１１１、１２２、１３３、１４４、１５５、１６６；２０８、２１９、２２Ａ、２３Ｂ、２４Ｃ、２５Ｄ、２６Ｅ、２７Ｆ）によって、該少なくとも１つの他のアドレス空間に直接リンクされ、直接に、または、直接リンクされたアドレス空間を通じてのいずれかで互いにリンクされた該システム（９０、１９０、２９０）内のアドレス空間（Ｃ０〜Ｃ７、Ｃ１０〜Ｃ１７、Ｃ２０〜Ｃ２７）の全サイズは、該システム内の資源が直接アドレス指定できるアドレス空間（Ｃ０〜Ｃ２７）よりも大きいことがある
マルチプロセッサコンピュータシステム。
【請求項２】
少なくとも１つのアドレス空間（Ｃ０〜Ｃ１６、Ｃ２０〜Ｃ２７）は、複数のプロセッサ（９２）によって共有される
請求項１に記載のマルチプロセッサコンピュータシステム。
【請求項３】
ある順序を有する少なくとも３つのアドレス空間（Ｃ０〜Ｃ７）
を備え、
前記順序で隣接した１対のアドレス空間（Ｃ０、Ｃ１；Ｃ１、Ｃ２；Ｃ２、Ｃ３；Ｃ３、Ｃ４；Ｃ４、Ｃ５；Ｃ５、Ｃ６；Ｃ６、Ｃ７）が、
該１対の双方のアドレス空間内の少なくとも１つのメモリ領域（９４：０３、１４；１７、２０；２３、３４；３７、４０；４３、５４；５７、６０；６３、７４）
を有する
請求項１または２に記載のマルチプロセッサコンピュータシステム。
【請求項４】
前記順序の１つの隣接するアドレス空間（Ｃ１）のみを有する最初のアドレス空間（Ｃ０）、および、前記順序の１つの隣接するアドレス空間（Ｃ６）のみを有する最後のアドレス空間（Ｃ７）
を備える請求項３に記載のマルチプロセッサコンピュータシステム。
【請求項５】
ハブアドレス空間（Ｃ１７）を含む少なくとも３つのアドレス空間（Ｃ１０〜Ｃ１７）
を備え、
前記ハブアドレス空間以外のアドレス空間（Ｃ１０〜Ｃ１６）は、
該ハブアドレス空間（Ｃ１７）内の少なくとも１つのメモリ領域（９４：１００、１１１、１２２、１３３、１４４、１５５、１６６）
を含む請求項１〜４のいずれかに記載のマルチプロセッサコンピュータシステム。
【請求項６】
少なくとも３つのアドレス空間（Ｃ２０〜Ｃ２７）
を備え、
少なくとも１つのメモリ領域（９４：２０８、２１９、２２Ａ、２３Ｂ、２４Ｃ、２５Ｄ、２６Ｅ、２７Ｆ）
を備え、
該少なくとも１つのメモリ領域（９４：２０８、２１９、２２Ａ、２３Ｂ、２４Ｃ、２５Ｄ、２６Ｅ、２７Ｆ）は、前記少なくとも３つのアドレス空間（Ｃ２０〜Ｃ２７）のすべてに存在する
請求項１ないし５のいずれか１項に記載のマルチプロセッサコンピュータシステム。
【請求項７】
前記アドレス空間（Ｃ０〜Ｃ２７）の１つのアドレス空間内に、それぞれ複数のパーティション（Ｐ０〜Ｐ２７）
を備え、
少なくとも１つのアドレス空間（Ｃ０〜Ｃ７；Ｃ１７；Ｃ２０〜Ｃ２７）は、
該少なくとも１つのアドレス空間の一般に外部のパーティション内のメモリ
を含む請求項１〜６のいずれかに記載のマルチプロセッサコンピュータシステム。
【請求項８】
関連したハブアドレス空間（Ｃ１７）を有するハブパーティション（Ｐ１７）
を備え、
前記ハブアドレス空間は、
それぞれの他のパーティション（Ｐ１０〜Ｐ１６）のメモリの一部
を含む
請求項７に記載のマルチプロセッサコンピュータシステム。
【請求項９】
各パーティション（Ｐ２０〜Ｐ２７）は、
グローバルにアクセス可能なメモリ（９４：２０８、２１９、２２Ａ、２３Ｂ、２４Ｃ、２５Ｄ、２６Ｅ、２７Ｆ）
を含み、
各パーティションは、
該グローバルにアクセス可能なメモリを含む関連したアドレス空間（Ｃ２０〜Ｃ２７）
を有する
請求項７に記載のマルチプロセッサコンピュータシステム。
【請求項１０】
前記アドレス空間（Ｃ０〜Ｃ７）はプロセッサアドレス空間であり、
プロセッサ（９２）は、プロセッサアドレス空間（Ｃ０〜Ｃ７）内で資源を直接アドレス指定することができ、
メモリコントローラアドレス空間を有するメモリコントローラ（９６）
をさらに備え、
メモリコントローラ（９６）は、メモリコントローラアドレス空間内で資源を直接アドレス指定することができ、
該メモリコントローラアドレス空間は、前記プロセッサアドレス空間（Ｃ０、Ｃ７）と同一ではない
請求項１〜９のいずれかに記載のマルチプロセッサコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーティショニングされたコンピュータシステムにおける通信に関する。
【背景技術】
【０００２】
コンピュータシステムのプロセッサまたは他の資源は、明確なサイズのアドレスを直接使用してメモリおよび他の資源をアドレス指定できることがある。
資源がハンドリングできるアドレスの最大長は、その資源がアドレス指定できるアドレス空間の範囲を決定する。
資源は、自身のアドレス空間の外部のロケーションにアクセスすることができるが、これは、通常、時間および資源の双方を必要とする間接アドレス指定プロシージャを必要とする。
マルチプロセッサシステムでは、いくつかのセルを、共通の直接アドレス指定可能なアドレス空間の「コヒーレンシドメイン（coherency domain）」を共有するように設定することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、各セルは、一般に、コヒーレンシドメイン全体を直接アドレス指定できなければならないので、コヒーレンシドメインの全サイズ、したがって、セルのサイズの合計は、いずれか１つのプロセッサのアドレス空間に制限される。
【課題を解決するための手段】
【０００４】
本発明を例示するために、図面が、本発明を実施できる１つまたは複数の形態を示す。
しかしながら、本発明は、示した形態そのものに限定されるものではない。
【発明を実施するための最良の形態】
【０００５】
添付図面のうち、最初に図１を参照して、参照番号９０によって包括的に示す本発明によるコンピュータシステムの一実施の形態は、複数のセル００〜７７を有する。
各セルは、特に、少なくとも１つのプロセッサ９２、および、メモリコントローラ９６によって制御される少なくとも１つのメモリ９４を含む。
この実施の形態では、各セルは、同一のものとすることができ、各セルのプロセッサ９２およびメモリコントローラ９６は、８つのセルをカバーするだけ十分大きなアドレス空間をアドレス指定することができる。
この実施の形態では、セルは、アドレスにおいて、そのアドレスの最上位ビットにより識別される。
この最上位ビットは、図１のセル番号の右側の数字に対応するものである。
発信元セルまたは発信元プロセッサは、アクセスされるメモリのアドレスを直接指定することができ、それによって、間接アドレスを解釈することにより引き起こされる待ち時間を解消することができるので、発信元セルのアドレス空間内でのメモリアクセスは高速にすることができる。
【０００６】
各セルは、図１のセル番号の左側の数字によって識別されるパーティションＰ０〜Ｐ７に所属することができる。
この実施の形態では、パーティション内のセルは、同じパーティション内ならば、どのメモリからもデータを自由に読み出すことができ、どのメモリへもデータを自由に書き込むことができる。
別のパーティション内のメモリからのデータの読み出しには制限を課すことができ、別のパーティション内のメモリへのデータの書き込みにはより厳しい制限を課すことができる。
【０００７】
各セル００〜７７のプロセッサ９２は、「プロセッサコヒーレンシドメイン（processor coherency domain）」も有する。
このプロセッサコヒーレンシドメインは、パーティションよりも大きくなることはあるが、プロセッサのアドレス空間よりも大きくないセルの範囲である。
このセルの範囲内では、そのプロセッサは、メモリコントローラ９６と直接通信することができる。
プロセッサ９２は、自身のパーティションの外部ではあるが、読み出しまたは書き込みを開始するプロセッサのコヒーレンシドメイン内にあるメモリからのデータの読み出しおよび当該メモリへのデータの書き込みの許可を受けることができる。
しかしながら、このような読み出しおよび書き込みが許可される場合、それら読み出しおよび書き込みは、直接アドレス指定され、対応する小さな待ち時間で行われる。
各セル００〜７７のメモリコントローラ９６は、「メモリコントローラコヒーレンシドメイン」も有する。
このメモリコントローラコヒーレンシドメインは、パーティションよりも大きくなることはあるが、メモリコントローラのアドレス空間よりも大きくないセルの範囲である。
このセルの範囲内では、そのメモリコントローラは、プロセッサ９２と直接通信することができる。
後述するように、セルのプロセッサ用のプロセッサコヒーレンシドメインは、同じセルのメモリコントローラ用のメモリコントローラコヒーレンシドメインと必ずしも同じであるとは限らない。
それらドメインが同じである場合、または、それらドメインを区別する必要がない場合、プロセッサコヒーレンシドメインおよびメモリコントローラコヒーレンシドメインのいずれかまたは双方を簡潔に示すために、用語「コヒーレンシドメイン」が使用されることがある。
【０００８】
この実施の形態では、パーティションＰ０はセル００、０１、０２、０３を含む。
パーティションＰ０のセルのプロセッサは、プロセッサコヒーレンシドメインＣ０を有する。
このプロセッサコヒーレンシドメインＣ０は、それら４つのセルのメモリに加えて、セル１４のメモリも含む。
セル１４はパーティションＰ１に所属するものである。
パーティションＰ１はセル１４、１５、１６、１７を含む。
パーティションＰ１のプロセッサ９２は、プロセッサコヒーレンシドメインＣ１を有する。
このプロセッサコヒーレンシドメインＣ１は、それらセルのメモリに加えて、セル０３およびセル２０のメモリも含む。
セル０３はパーティションＰ０に所属するものであり、セル２０はパーティションＰ２に所属するものである。
パーティションＰ２はセル２０、２１、２２、２３を含む。
パーティションＰ２のプロセッサは、プロセッサコヒーレンシドメインＣ２を有する。
このプロセッサコヒーレンシドメインＣ２は、それらセルのメモリに加えて、セル１７およびセル３４のメモリも含む。
セル１７はパーティションＰ１に所属するものであり、セル３４はパーティションＰ３に所属するものである。
パーティションＰ３はセル３４、３５、３６、３７を含む。
パーティションＰ３のセルは、プロセッサコヒーレンシドメインＣ３を有する。
このプロセッサコヒーレンシドメインＣ３は、それらセルのメモリに加えて、セル２３およびセル４０のメモリも含む。
セル２３はパーティションＰ２に所属するものであり、セル４０はパーティションＰ４に所属するものである。
パーティションＰ４はセル４０、４１、４２、４３を含む。
パーティションＰ４のセルは、プロセッサコヒーレンシドメインＣ４を有する。
このプロセッサコヒーレンシドメインＣ４は、それらセルのメモリに加えて、セル３７およびセル５４のメモリも含む。
セル３７はパーティションＰ３に所属するものであり、セル５４はパーティションＰ５に所属するものである。
パーティションＰ５はセル５４、５５、５６、５７を含む。
パーティションＰ５のプロセッサは、プロセッサコヒーレンシドメインＣ５を有する。
このプロセッサコヒーレンシドメインＣ５は、それらセルのメモリに加えて、セル４３およびセル６０のメモリも含む。
セル４３はパーティションＰ４に所属するものであり、セル６０はパーティションＰ６に所属するものである。
パーティションＰ６はセル６０、６１、６２、６３を含む。
パーティションＰ６のプロセッサは、プロセッサコヒーレンシドメインＣ６を有する。
このプロセッサコヒーレンシドメインＣ６は、それらセルのメモリに加えて、セル５７およびセル７４のメモリも含む。
セル５７はパーティションＰ５に所属するものであり、セル７４はパーティションＰ７に所属するものである。
パーティションＰ７はセル７４、７５、７６、７７を含む。
パーティションＰ７のセルは、プロセッサコヒーレンシドメインＣ７を有する。
このプロセッサコヒーレンシドメインＣ７は、それらセルのメモリに加えて、セル６３のメモリも含む。
セル６３はパーティションＰ６に所属するものである。
【０００９】
図１から分かるように、どのセル００〜７７も、セル番号の右側の数字によって、あいまいさなく同じパーティションＰ０〜Ｐ７の他のセルを識別することができる。
この数字は、アドレスの最上位ビットを表すので、セルのデバイスは、そのセルが所属するパーティションの他のパーツをあいまいさなくアドレス指定することができ、したがって、同じパーティションにおけるアドレスを有する資源をターゲットにすることができる。
これに加えて、パーティションのプロセッサ９２は、そのパーティションの外部であるが、当該プロセッサのプロセッサコヒーレンシドメインにある２つのセルのメモリコントローラ９６を直接ターゲットにすることもできる。
例えば、パーティションＰ３のセル３４、３５、３６、３７のプロセッサ９２は、セル２３、３４、３５、３６，３７、４０のすべてのメモリコントローラを直接ターゲットにすることができる。
同様に、パーティションＰ４のセル４０、４１、４２、４３のプロセッサ９２は、セル３７、４０、４１、４２、４３、５４のすべてのメモリコントローラを直接ターゲットにすることができる。
【００１０】
その逆は、この実施の形態では当てはまらない。
例えば、セル３７のメモリコントローラ９６は、セル３４、３５、３６、３７、４０、４１、４２、４３のプロセッサ９２によってターゲットにされることが可能である。
したがって、そのメモリコントローラは、セル２３のプロセッサ９２と直接通信することができない。
その理由は、最上位ビット「３」を有するアドレスが、セル２３とセル４３との間であいまいになるからである。
このように、メモリコントローラコヒーレンシドメインを定義することが可能であるが、それらメモリコントローラコヒーレンシドメインは、プロセッサコヒーレンシドメインとは異なる。
２つのプロセッサコヒーレンシドメインが重なる部分におけるセル３７、４０等のセルの各対は、例えば、８セルのメモリコントローラコヒーレンシドメインを有し、この例では、セル３４、３５、３６、３７、４０、４１、４２、４３のメモリコントローラコヒーレンシドメインを有する。
パーティションの中ほどにあるセルの交互の対は、そのパーティションの４つのセルから成る４セルのメモリコントローラコヒーレンシドメインを有する。
明瞭にするために、メモリコントローラコヒーレンシドメインは図１には示されていない。
この実施の形態では、メモリコントローラコヒーレンシドメインは、プロセッサコヒーレンシドメインとは異なるので、プロセッサを発信元とするメッセージ、および、メモリコントローラを発信元とするメッセージについて個別に、論理アドレスをコンピュータシステムのセル間ファブリックを通じて物理ルーティングに変換しなければならない。
【００１１】
データが、例えばセル００からセル７７へ転送される場合、送信元セル００のプロセッサ９２は、セル０３のメモリへそのデータをコピーすることもできるし、別のパーティションへの書き込みに対するあらゆる制限を条件として、セル１４のメモリへそのデータをコピーすることもできる。
パーティションＰ１のどのセルのプロセッサも、セル０３またはセル１４のメモリからセル１７またはセル２０へそのデータをコピーすることができる。
パーティションＰ２のどのセルも、セル１７またはセル２０からセル２３またはセル３４へそのデータをコピーすることができる。
パーティションＰ３のどのセルも、セル２３またはセル３４からセル３７またはセル４０へそのデータをコピーすることができる。
以下同様である。
最終的に、データは、セル６３またはセル７４に到達する。
データは、セル６３またはセル７４から宛先セル７７へ直接アクセス可能である。
【００１２】
このデータ転送は、データの発信元でもなく宛先でもないセルによってコピーオペレーションが実行されることを必要とすることがある。
例えば、セル０３のメモリからセル２０のメモリへの転送は、セル１５またはセル１６によって実行することもできるし、セル００からセル７７への転送について上述したように、転送は、介在するパーティションのセルによるコピーを必要とすることもある。
この場合、中間のコピーを行うセルは、データがコピーされること、およびデータがコピーされる場所に気付く必要がある。
さらに、データは、パケットの形で提供することができ、このパケットは、当該パケットの宛先パーティションを示すメッセージヘッダを有する。
さらに、中間の転送を行うどのセルも、単に、パケットヘッダを読み出して、そのパケットが次のプロセッサコヒーレンシドメインへ転送されるものであることを認識する必要があるだけである。
転送を行うセルは、特定のパケットのルーティングの通知を積極的に受ける必要はない。
異なるパーティションのセル間の直接的なプロセッサ対プロセッサ通信から時に生じることがあるあいまいなアドレス指定を回避するために、プロセッサ９２の一部またはすべては、転送するパケットが配置されるメモリエリアを定期的にポーリングして、発生する新たなあらゆるパケットを外部からの催促なしに転送するようにプログラミングすることができる。
【００１３】
図１に示すように、コンピュータシステム９０は、８つのプロセッサコヒーレンシドメインおよび８つのパーティションを有する。
８つのプロセッサコヒーレンシドメインのそれぞれは５つまたは６つのセルを有し、８つのパーティションのそれぞれは４つのセルを有する。
図１のパーティションＰ１からＰ６およびプロセッサコヒーレンシドメインＣ１からＣ６について図示した重なり部分のパターンを繰り返すことによって、計算システムのパーティションの個数を際限なく増加させることができる。
【００１４】
セルのサイズと比較して、アドレス空間フォーマットが許せば、コヒーレンシドメインのセルの個数を８つよりも多くすることができる。
プロセッサコヒーレンシドメインおよびメモリコントローラコヒーレンシドメインがどんな大きさであっても、図１に示す構成では、パーティションのセルの最大数は、アドレス空間のセルの最大数の半分である。
【００１５】
図１に示すように、２つの隣接するプロセッサコヒーレンシドメイン間の各重なり部分において、各パーティションに１つずつの２つのセルは、双方のプロセッサコヒーレンシドメインに所属する。
この構成によって、非常に安全な制限をドメイン間のデータの転送に適用することが可能になる。
一方、或るパーティションが、隣のパーティションのセルに自由に書き込むことを許可されると、１つのセルのみが２つの隣接するプロセッサコヒーレンシドメイン間で共有される配置が可能である。
例えば、パーティションＰ０とパーティションＰ１との間のすべての交換がセル１４に書き込まれる場合、セル０３は、プロセッサコヒーレンシドメインＣ１に存在する必要はない。
パーティション間のトラフィック量が大きい場合には、例えば、プロセッサコヒーレンシドメインＣ３がセル２２およびセル４１をも含むように、図１に示すプロセッサコヒーレンシドメインＣ０〜Ｃ７のそれぞれは、各端部において１セル分、拡張することができる。
これによって、メモリコントローラ９６のすべてにわたるトラフィックの負担が分担される。
セルが、自身のパーティションにまたがるプロセッサコヒーレンシドメイン以外のプロセッサコヒーレンシドメインには存在しない場合に、そのセルのメモリについては、そのパーティションの外部を発信元とする妨害に対する脆弱性を小さくすることができる。
パーティション間のトラフィックのハンドリングにおいてアクティブでないプロセッサは、他のオペレーションについてより多くの能力を有することができる。
【００１６】
上述したように、パーティションのチェーンのような配置は、当該チェーンの遠く離れたセル間で転送されるデータのコピーを繰り返すことを必要とすることがある。
プロセッサコヒーレンシドメインＣ７にセル００を含め、プロセッサコヒーレンシドメインＣ０にセル７７を含めることによって、図１に示すパーティションのチェーンは、リングに変更することができる。
これによって、データが移動しなければならない最大距離は、チェーンの長さの半分に削減され、これによって、チェーンが長い場合に、待ち時間の有益な削減を提供することができる。
【００１７】
次に図２を参照して、参照番号１９０によって包括的に示す本発明によるコンピュータシステムの第２の実施の形態は、複数のセル１００〜１７７を有する。
これら複数のセル１００〜１７７の内部は図１に示すセル００と同様であり、各セルは、特に、プロセッサ９２、メモリ９４、およびメモリコントローラ９６を含む。
この実施の形態では、各セルは同一のものとすることができ、セルのプロセッサ９２は、プロセッサコヒーレンシドメインＣ１０〜Ｃ１７のアドレスをアドレス指定することができる。
この実施の形態では、セルは、アドレスにおいて、そのアドレスの最上位ビットにより識別される。
この最上位ビットは、セル番号の右側の数字に対応するものである。
発信元セルまたは発信元プロセッサは、アクセスされるメモリのアドレスを直接指定することができ、それによって、間接アドレスを解釈することにより引き起こされる待ち時間を削減することができるので、コヒーレンシドメイン内でのメモリアクセスは高速にすることができる。
【００１８】
また、セルは、パーティションＰ１０〜Ｐ１７にも所属する。
この実施の形態では、パーティション内のセルは、同じパーティション内ならば、どのメモリからもデータを自由に読み出すことができ、どのメモリへもデータを自由に書き込むことができる。
別のパーティション内のメモリについては、たとえ、そのメモリが読み出し元セルまたは書き込み元セルのプロセッサコヒーレンシドメイン内であっても、そのメモリからのデータの読み出しには制限を課すことができ、そのメモリへのデータの書き込みにはより厳しい制限を課すことができる。
【００１９】
この実施の形態では、パーティションＰ１０およびプロセッサコヒーレンシドメインＣ１０は、セル１００、１０１、１０２、１０３、１０４、１０５、１０６を含む。
パーティションＰ１１およびプロセッサコヒーレンシドメインＣ１１は、セル１１０、１１１、１１２、１１３、１１４、１１５、１１６を含む。
パーティションＰ１２およびプロセッサコヒーレンシドメインＣ１２は、セル１２０、１２１、１２２、１２３、１２４、１２５、１２６を含む。
パーティションＰ１３およびプロセッサコヒーレンシドメインＣ１３は、セル１３０、１３１、１３２、１３３、１３４、１３５、１３６を含む。
パーティションＰ１４およびプロセッサコヒーレンシドメインＣ１４は、セル１４０、１４１、１４２、１４３、１４４、１４５、１４６を含む。
パーティションＰ１５およびプロセッサコヒーレンシドメインＣ１５は、セル１５０、１５１、１５２、１５３、１５４、１５５、１５６を含む。
パーティションＰ１６およびプロセッサコヒーレンシドメインＣ１６は、セル１６０、１６１、１６２、１６３、１６４、１６５、１６６を含む。
【００２０】
パーティションＰ１７は、単一のセル１７７を含む。
プロセッサコヒーレンシドメインＣ１７は、上述したセル１００、１１１、１２２、１３３、１４４、１５５、１６６に加えて、セル１７７も含む。
【００２１】
データを或る「スポーク（spoke）」パーティションＰ１０〜Ｐ１６から別のスポークパーティションへ転送する場合、例えば、セル１０６からセル１６５へ転送する場合、送信元セル１０６またはパーティションＰ１０の別のセルのプロセッサ９２は、そのデータをセル１００のメモリ９４へコピーすることができる。
セル１００からは、「ハブ（hub）」セル１７７がデータをセル１６６へコピーすることができる。
セル１６６からは、データは、宛先セル１６５に直接アクセス可能であるか、または、パーティションＰ１６の別のセルによってセル１６５へコピーすることもできる。
【００２２】
図２の実施の形態のパケットの転送は、図１の実施の形態のパケットの転送とは異なる。
その理由は、図２では、「ハブ」セル１７７が、データパケットのメッセージヘッダを読み出し、そのパケットがどの「スポーク」パーティションＰ１０〜Ｐ１６へ配信されるかを決定するからである。
【００２３】
このように図２に示す実施の形態では、ハブセル１７７が、「ボーダ（border）」セル１００、１１１、１２２、１３３、１４４、１５５、１６６のメモリコントローラコヒーレンシドメインに存在するが、それらセルのプロセッサコヒーレンシドメインには存在しない。
その結果、スポークパーティション間のすべてのトラフィックは、ハブセル１７７のプロセッサが或るボーダセルからパケットを読み出し、別のボーダセルへそれらパケットを書き込むことによってハンドリングされる。
この配置によって、トラフィックのハンドリングについて、スポークパーティションＰ１０〜Ｐ１６の資源の使用が最小にされる。
別法では、ボーダセル１００〜１６６は、ハブセル１７７を含むプロセッサコヒーレンシドメインを有することができる。
その場合、ボーダセル１００は、送信元セル１０６からハブセル１７７のメモリへデータを直接コピーすることができ、ボーダセル１６６は、セル１７７から宛先セル１６５へデータを直接コピーすることができる。
【００２４】
データのコピーがハブセル１７７によって全面的にハンドリングされる場合であっても、ハブセルを、ボーダセル１００、１１１、〜のプロセッサコヒーレンシドメインに含めることができる。
これによって、ボーダセルのプロセッサ９２は、ハブセル１７７のプロセッサと直接通信することが可能になる。
例えば、これによって、或るボーダセルが、別のボーダセルへコピーされる新たなデータパケットを有する場合に、そのボーダセルのプロセッサ９２は、ハブセル１７７のプロセッサ９２がボーダセルのメモリコントローラ９６をポーリングするのを待機するのではなく、ハブセルに気付かせる割り込みを送信することが可能になる。
さらに、その割り込みが、ハブセル１７７から、割り込みを送信したセルへ応答を送信する必要のないものである場合、別のパーティションのセルは、コピーされるデータをそのパーティションのボーダセルのメモリに入れた後に、ハブセル１７７へ割り込みを送信することができる。
セルのプロセッサコヒーレンシドメインおよびメモリコントローラコヒーレンシドメインを定義することによって、通信ルーティングも全く同様に簡単化される。
その理由は、メッセージの発信元がセルのどの資源であるかに応じてメッセージを異なってルーティングする必要がないからである。
【００２５】
図２に示すように、コンピュータシステム１９０は、８つのセルを有する１つのハブコヒーレンシドメイン、および、それぞれが７つのセルの有する７つのスポークコヒーレンシドメインを有する。
上述したように、ボーダセル１００〜１６６は、自身のプロセッサコヒーレンシドメインおよびメモリコントローラコヒーレンシドメインを有する。
これらのドメインは、簡単にするために、図２には示されていない。
システム１９０は、単一のセルを有する１つのハブパーティションＰ１７、および、それぞれが７つのセルを有する７つのスポークパーティションを有する。
スポークパーティションＰ１０〜Ｐ１６の個数は、これよりも多くすることもできるし、少なくすることもでき、ハブコヒーレンシドメインＣ１７のセルの個数よりも１つ少ないものに限定されることが理解されよう。
スポーク間トラフィックのレベルが大きい場合、ハブセル１７７を２つ以上とすることができる。
ただし、その場合、スポークの個数はそれに対応して削減される。
ボーダセル１００、〜１６６のそれぞれは、他のスポークパーティション用のデータおよび他のスポークパーティションからのデータの、ハブセル１７７による読み出しおよびハブセル１７７からの書き込みの双方を可能にしなければならない。
その結果、これらのセルの安全性は制限されることがある。
この実施の形態では、パーティションＰ１７に所属するが、Ｃ１７を除くどのコヒーレンシドメインにも所属しない少なくとも１つのハブセル１７７が存在する。
このセルは、外部の妨害から強力に保護される環境にパーティションＰ１７のコア機能を収容することができる。
ハブパーティション全体が、不正を働くスポークパーティションによって妨害される危険性を削減するために、或るボーダセル１００〜１６６から別のセルへ転送されるデータが厳しく保護されるようにハブセル１７７を構成することができる。
【００２６】
セルのサイズと比較して、アドレス空間フォーマットが許せば、コヒーレンシドメインのセルの個数を図２に示す８つのセルよりも多くすることができる。
コヒーレンシドメインがどんな大きさであっても、図２に示す構成では、スポークパーティションＰ１０〜Ｐ１６のセルの最大数は、コヒーレンシドメインのセルの最大数よりも１つ少ない。
スポークパーティションＰ１０〜Ｐ１６の最大数は、ハブコヒーレンシドメインＣ１７のセルの個数よりも１つ少ない。
その結果、最大の全システムサイズは（Ｎ−１）（Ｎ−１）＋１セルである。
ここで、Ｎは、コヒーレンシドメインのセルの最大数である。
すなわち、Ｎ＝８の場合には５０セルであり、Ｎ＝１６の場合には２２６セルであり、Ｎ＝６４の場合には３９７０セルである。
【００２７】
しかしながら、その最大サイズ内では、任意のパーティションから他の任意のパーティションへ最大３回のコピーオペレーションでデータを転送することができ、ボーダセルがハブセル１７７のメモリへのコピーおよび当該メモリからのコピーを許可される場合には、最大２回のコピーオペレーションでデータを転送することができる。
したがって、別のパーティションからのデータのフェッチに必要とされる最大待ち時間は、図１に示す実施の形態よりも小さく、かつ、予測可能である。
【００２８】
次に図３を参照して、参照番号２９０によって包括的に示す本発明の一実施の形態によるコンピュータシステムの第３の形態は、複数のセル２００〜２７Ｆを有する。
これら複数のセル２００〜２７Ｆの内部は図１に示すセル００と同様であり、各セルは、特に、プロセッサ９２、メモリ９４、およびメモリコントローラ９６を含む。
この実施の形態では、各セルは同一のものとすることができ、各セルは、コヒーレンシドメインＣ２０〜Ｃ２７のアドレスをアドレス指定することができる。
この実施の形態では、プロセッサコヒーレンシドメインおよびメモリコントローラコヒーレンシドメインは同一とすることができる。
この実施の形態では、セルは、アドレスにおいて、そのアドレスの最上位ビットにより識別される。
この最上位ビットは、図３のセル番号の右側の数字に対応するものである。
発信元セルまたは発信元プロセッサは、アクセスされるメモリのアドレスを直接指定することができ、それによって、間接アドレスを解釈することにより引き起こされる待ち時間を解消することができるので、コヒーレンシドメイン内でのメモリアクセスは高速にすることができる。
【００２９】
また、各セルは、パーティションＰ２０〜Ｐ２７にも所属する。
これらのパーティションは、図３のセル番号の２番目の数字によって識別される。
この実施の形態では、パーティション内のプロセッサ９２は、同じパーティション内ならば、どのメモリからもデータを自由に読み出すことができ、どのメモリへもデータを自由に書き込むことができる。
別のパーティション内のメモリについては、たとえ、そのメモリが読み出し元プロセッサまたは書き込み元プロセッサのコヒーレンシドメイン内であっても、そのメモリからのデータの読み出しには制限を課すことができ、そのメモリへのデータの書き込みにはより厳しい制限を課すことができる。
【００３０】
この実施の形態では、パーティションＰ２０は、セル２００、２０１、２０２、２０３、２０４、２０５、２０６、２０７、２０８を含む。
パーティションＰ２０のセルはコヒーレンシドメインＣ２０に所属する。
パーティションＰ２１は、セル２１０、２１１、２１２、２１３、２１４、２１５、２１６、２１７、２１９を含む。
パーティションＰ１のセルはコヒーレンシドメインＣ１に所属する。
パーティションＰ２２は、セル２２０、２２１、２２２、２２３、２２４、２２５、２２６、２２７、２２Ａを含む。
パーティションＰ２２のセルはコヒーレンシドメインＣ２２に所属する。
パーティションＰ２３は、セル２３０、２３１、２３２、２３３、２３４、２３５、２３６、２３７、２３Ｂを含む。
パーティションＰ２３のセルはコヒーレンシドメインＣ２３に所属する。
パーティションＰ２４は、セル２４０、２４１、２４２、２４３、２４４、２４５、２４６、２４７、２４Ｃを含む。
パーティションＰ２４のセルはコヒーレンシドメインＣ２４に所属する。
パーティションＰ２５は、セル２５０、２５１、２５２、２５３、２５４、２５５、２５６、２５７、２５Ｄを含む。
パーティションＰ２５のセルはコヒーレンシドメインＣ２５に所属する。
パーティションＰ２６は、セル２６０、２６１、２６２、２６３、２６４、２６５、２６６、２６７、２６Ｅを含む。
パーティションＰ２６のセルはコヒーレンシドメインＣ２６に所属する。
パーティションＰ２７は、セル２７０、２７１、２７２、２７３、２７４、２７５、２７６、２７７、２７Ｆを含む。
パーティションＰ２７のセルはコヒーレンシドメインＣ２７に所属する。
各パーティション内では、セル番号の最後の数字がセルアドレスに対応する。
これらのアドレスは、そのパーティション内でのみ一意であることが理解されよう。
【００３１】
パーティション間のブリッジ２９２を形成するセル２０８、２１９、２２Ａ、２３Ｂ、２４Ｃ、２５Ｄ、２６Ｅ、２７Ｆのそれぞれは、グローバルに一意のアドレスを有する。
それらブリッジセルのプロセッサ９２は、自身のコヒーレンシドメインＣ２０〜Ｃ２７のアドレス方式内において、ブリッジ２９２の別のセルまたは自身のパーティションのセルのいずれかをあいまいさなくアドレス指定することができる。
この実施の形態では、ブリッジ２９２のグローバルに一意のセルは、あらゆるコヒーレンシドメインのアドレス空間に存在する。
一方、ブリッジ２９２に存在しないセルは、たとえ、他のパーティションのセルがブリッジに存在しても、それらセルをアドレス指定することを許可されない。
これによって、例えば、セル２２２はグローバルに一意のセルアドレス９を使用してセル２１９をアドレス指定できるが、セル２１９はローカルでのみ一意であるアドレス２を、セル２２２ではなくそれ自身のセル２１２を意味するものとして誤って識別することがあるという状況が回避される。
この制限によって、グローバルではなくローカルに一意のアドレスのあいまいさを解決する必要がなくなる。
したがって、実質的に、ブリッジセルは、ブリッジに加えて、そのセル自身のパーティションのコヒーレンシドメインも含むコヒーレンシドメインを有する。
パーティションの他のセルは、ブリッジセルのコヒーレンシドメインのサブセットであるコヒーレンシドメインを有する。
【００３２】
図３に示すこの実施の形態では、任意の２つのセル間を２つの転送オペレーションのみでデータを転送することができる。
例えば、データがセル２００からセル２７０へ転送される場合、そのデータは、パーティションＰ２０のプロセッサによってセル２００からブリッジセル２０８へコピーすることができる。
セル２０８は、ブリッジに存在するので、セル２７Ｆのプロセッサによってアドレス指定することができる。
次に、セル２７Ｆのプロセッサは、そのデータをセル２７０へ直接コピーすることができる。
【００３３】
別法では、データは、ブリッジセル２０８のプロセッサによって、セル２００からブリッジセル２７Ｆへコピーすることができる。
セル２７Ｆからは、宛先セル２７０のプロセッサによって直接データにアクセスすることができる。
一方、安全性のため、セルは、他のパーティションのセルからの読み出し許可を受けることはできるが、他のパーティションのセルへの書き込み許可を受けることはできない。
詳細には、ブリッジセル２０８〜２７Ｆは、互いの読み出し許可のみを受け、書き込み許可を受けない。
その場合、セル２０８からセル２７Ｆへの転送は、セル２７Ｆによる読み出しでなければならず、セル２０８による書き込みであってはならない。
したがって、この代替的な転送手続きは許可されないことになる。
逆に、送信元セル２７０から宛先セル２００への転送は、パーティションＰ２７のいずれかのプロセッサがセル２７０からブリッジセル２７Ｆへデータをコピーし、次いで、ブリッジセル２０８のプロセッサがセル２００へデータをコピーすることを必要とする。
【００３４】
この実施の形態では、セルの最大数はｐ＊ｂである。
ここで、ｐはパーティションのセルの個数であり、ｂはブリッジ２９２を共有するパーティションの個数であり、ｐ＋ｂ−１≦Ｎである。
ここで、Ｎはアドレス空間のセルの最大数である。
さらに、この最大値は、通例、（Ｎ／２＋１）（Ｎ／２）セルである。
すなわち、Ｎ＝８の場合に２０セルであり、Ｎ＝１６の場合に７２セルであり、Ｎ＝６４の場合に１０５６セルである。
（Ｎ／２＋１）個のパーティションのそれぞれに（Ｎ／２）個のセルではなく、（Ｎ／２）個のパーティションのそれぞれに（Ｎ／２＋１）個のセルを有することによって、通例、パーティション間のトラフィック量は削減される。
【００３５】
本発明の例示の実施の形態に関して本発明を説明し、かつ、図示してきたが、添付の特許請求の範囲で説明した本発明の精神および範囲から逸脱することなく、さまざまな変更、省略、および追加を実施の形態に行えることが当業者には理解されよう。
例えば、最初の２つの実施の形態は、８つのセルを含むアドレス空間を用いて説明されており、３番目の実施の形態は、１６個のセルを含むアドレス空間を用いて説明されている。
アドレス空間のサイズは、使用される特定のプロセッサおよびファブリックの能力に応じて、かつ、特定のシステムの要件に応じて、大きくすることもできるし、小さくすることもできる。
【００３６】
簡略化のために、実施の形態は、異なるコヒーレンシドメインを接続するのに、単一のチェーン、ブリッジ、またはハブを用いて説明されている。
しかしながら、本発明は、このような実施の形態に限定されるものではない。
例えば、ブリッジまたはハブの一部を形成しないものとして示されている図２または図３のセルは、他のパーティションにリンクする別のブリッジまたはハブの一部を形成することもできるし、チェーンの始点に存在することもできる。
ブリッジ、ハブ、およびチェーンのネットワークを適切に構成することによって、非常に長いチェーンが引き起こす待ち時間の問題なしに、ブリッジシステムおよびハブシステムのサイズ限界にとって大きすぎるセルのシステムを可能にすることができる。
【００３７】
言葉を簡単にするために、図面に示した実施の形態は、主として、各セルに１つのプロセッサおよび１つのメモリコントローラを有するものとして説明されているが、各セルに２つ以上のプロセッサ９２および／または２つ以上のメモリコントローラ９６が存在していてもよい。
言葉を簡単にするために、図面に示した実施の形態では、セルは、同じであるとして説明されているが、単一のコンピュータシステムが、すべて同じとは限らないセルを有することもできる。
単一のコンピュータシステムは、すべて同じサイズとは限らないアドレス空間を有するプロセッサおよび／またはメモリコントローラを有することができ、単一のシステムは、すべて同じサイズとは限らないコヒーレンシドメインを含むことができる。
【図面の簡単な説明】
【００３８】
【図１】本発明の一実施の形態によるコンピュータシステムの一実施の形態のブロック図である。
【図２】本発明の一実施の形態によるコンピュータシステムの第２の実施の形態のブロック図である。
【図３】本発明の一実施の形態によるコンピュータシステムの第３の実施の形態のブロック図である。
【符号の説明】
【００３９】
００〜７７，１００〜１７７，２００〜２７Ｆ・・・セル，
９２・・・プロセッサ
９６・・・メモリコントローラ，
９４・・・メモリ，
Ｐ０〜Ｐ７，Ｐ１０〜Ｐ１７，Ｐ２０〜Ｐ２７・・・パーティション，
９０，１９０，２９０・・・コンピュータシステム，
Ｃ１０〜Ｃ１７，Ｃ２０〜Ｃ２７・・・プロセッサコヒーレンシドメイン，
２９２・・・ブリッジ，
【図１】
2006092534.tif 000003
【図２】
2006092534.tif 000004
【図３】
2006092534.tif 000005