(57)【要約】【課題】複数のクロスバーを使用する分散クロスバーネットワークのシステム及び方法を提供する。【解決手段】マルチプロセッシングシステム１００は、処理システム１０４、クロスバーネットワーク１０６、任意の複数の入出力デバイス１０８及び任意の複数の補助デバイス１１０を採用する。処理システム１０４は、複数のプロセッサクラスタ１１２を備える。Ｉ／Ｏデバイス１０８は、別のデバイスに対し又はユーザに対し情報を入力又は出力するためのデバイスであってもよく、又はこうしたデバイスに対する適当なインタフェースであってもよい。クロスバーネットワーク１０６は、リンク１０２を介して上述したコンポーネントを通信可能に結合する、複数のクロスバーを備える。【選択図】図１
2007220100.tif 000002
【特許請求の範囲】
【請求項１】
マルチプロセッシングシステム（１００）であって、
複数の高帯域幅ポイント・ツー・ポイントリンク（３０２）を有する複数のプロセッサと、
複数のプロセッサクラスタ（１１２）であって、各々に事前定義された数の前記プロセッサが存在する、複数のプロセッサクラスタ（１１２）と、
複数のクロスバー（３０４）であって、そのうちの１つは、前記複数のプロセッサクラスタのうちの１つの前記プロセッサの各々を前記複数のプロセッサクラスタのうちの別のものの前記プロセッサの各々に結合し、それにより、すべてのプロセッサが他のプロセッサの各々に結合され、該クロスバーの数は、［Ｘ×（Ｘ−１）／２］に等しく、ここで、Ｘはプロセッサクラスタの数に等しい、複数のクロスバー（３０４）と
を具備するマルチプロセッシングシステム。
【請求項２】
前記クロスバーは、
前記プロセッサクラスタの各々に存在するプロセッサの数の２倍に等しい数のポート
をさらに備える
請求項１に記載のマルチプロセッシングシステム。
【請求項３】
前記クロスバーは、
メモリデバイス（１０１）又は入出力デバイス（１０８）のうちの１つに結合するための少なくとも１つの追加のポート
をさらに備える
請求項２に記載のマルチプロセッシングシステム。
【請求項４】
前記プロセッサは、それらのそれぞれのクロスバーに結合するために事前定義された数のそれらのリンクを使用し、前記リンクの数はプロセッサクラスタの数から１を引いた数に等しい
請求項１に記載のマルチプロセッシングシステム。
【請求項５】
前記プロセッサは、メモリデバイス又は入出力デバイスのうちの１つに結合するためにそれらの残りのリンクのうちの少なくとも１つを使用する
請求項４に記載のマルチプロセッシングシステム。
【請求項６】
前記プロセッサのすべては、前記クロスバーのうちの１つにより互いに結合され、それによりプロセッサ間通信にはそれらのそれぞれのクロスバーを介する単一ホップが必要である
請求項１に記載のマルチプロセッシングシステム。
【請求項７】
複数のリンクグループ（３０６）
をさらに具備し、
各リンクグループは、
プロセッサクラスタの前記プロセッサの各々から１つのリンク
を有し、
各クロスバーは２つのリンクグループのみに結合し、それにより、前記複数のプロセッサクラスタのうちの１つの前記プロセッサは、前記クロスバーを通して前記複数のプロセッサクラスタのうちの別のものの前記プロセッサにのみ通信可能に結合する
請求項１に記載のマルチプロセッシングシステム。
【請求項８】
マルチプロセッシングシステムにおける、１つのクロスバーを介する単一ホップを使用する、プロセッサの任意の対の間のプロセッサ間通信の方法（８００）であって、
第１のクラスタの前記プロセッサのうちの選択された１つから、第１のクロスバーを介して、複数のクラスタのうちの第２のクラスタにおける前記プロセッサのうちの別の１つに通信することであって、その際、該通信は前記第１のクロスバーを介する単一ホップを使用し、前記第１のクラスタの前記プロセッサは、前記第１のクロスバーを介して前記第２のクラスタの前記プロセッサに結合される、通信すること（８０４）と、
前記第１のクラスタの前記選択されたプロセッサから、第２のクロスバーを介して、前記複数のクラスタのうちの第３のクラスタにおける別のプロセッサに通信することであって、その際、該通信は前記第２のクロスバーを介する単一ホップを使用し、前記第１のクラスタの前記プロセッサは、前記第２のクロスバーを介して前記第３のクラスタの前記プロセッサに結合される、通信すること（８０６）と、
前記第１のクラスタの前記選択されたプロセッサから、第（ｉ−１）のクロスバーを介して、前記複数のクラスタのうちの第ｉのクラスタにおける別のプロセッサに通信することであって、その際、該通信は前記第（ｉ−１）のクロスバーを介する単一ホップを使用し、前記第１のクラスタの前記プロセッサは、前記第（ｉ−１）のクロスバーを介して前記第ｉのクラスタの前記プロセッサに結合される、通信すること（８０８）と
を含むプロセッサ間通信の方法。
【請求項９】
前記クロスバーの数は、［Ｘ×（Ｘ−１）／２］又は［Ｘ！／（（Ｘ−２）！×２）］のうちの一方に等しく、ここで、Ｘは前記マルチプロセッシングシステムにおけるプロセッサクラスタの数に等しい
請求項８に記載のプロセッサ間通信の方法。
【請求項１０】
前記第１のクラスタの前記選択されたプロセッサから、第４のクロスバーを介して、前記複数のクラスタのうちの第４のクラスタにおける別のプロセッサに通信することであって、その際、該通信は前記第４のクロスバーを介する単一ホップを使用し、前記第１のクラスタの前記プロセッサは、前記第４のクロスバーを介して前記第４のクラスタの前記プロセッサに結合される、通信すること
をさらに含む請求項８に記載のプロセッサ間通信の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、包括的には、並列処理コンピュータシステムに関し、特に、複数のクロスバーを介するマルチプロセッシングシステムにおける単一ホップを使用するプロセッサ間通信のためのシステム及び方法に関する。
【背景技術】
【０００２】
マルチプロセッシングシステムは、単一オペレーティングシステムの指示の下で独立してタスクを実行する、多くの並列動作する中央処理装置（ＣＰＵ）を採用する。マルチプロセッシングシステムの１つのタイプは、複数のＣＰＵが、ＣＰＵ間の、並びに、ルータ装置、入出力（Ｉ／Ｏ）デバイス、メモリユニット及び／又は他のＣＰＵへの直接接続を提供するために高帯域幅ポイント・ツー・ポイントリンク（従来の共有バスアーキテクチャではなく）を採用することに基づく。
【０００３】
別のタイプのマルチプロセッシングシステムは、複数のコンピューティングノードに基づき、各ノードは、他のノードと通信するために高帯域幅ポイント・ツー・ポイントリンクを採用する。各ノードは、ＣＰＵ、メモリユニット、Ｉ／Ｏデバイス等、複数のコンポーネントを含んでもよい。個々のノードは、異なる数のコンポーネントを有してもよい。これらのタイプのマルチプロセッシングシステムはともに、エンドポイントを相互接続するために通信ファブリックを構築するという共通の問題を共有する。これらのエンドポイントを、本明細書では「プロセッサ」と呼ぶが、ＣＰＵ、メモリデバイス、Ｉ／Ｏデバイス、セル、ノード等を含むいかなるタイプのコンピューティングブロックであってもよい。
【０００４】
マルチプロセッシングシステム設計は、プロセッサをプロセッサの「クラスタ」にグループ化することができるようにすることが多い。クラスタは、クロスバー等のルータ装置を介して互いに通信可能に結合されることにより、クラスタのさまざまなプロセッサ間の通信を容易にする。複数のプロセッサクラスタ及びクロスバーをモジュラーボード上で又はシャーシにおいて組み立てることにより、多くのプロセッサを有する大型のマルチプロセッシングシステムを作成することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のマルチプロセッシングシステムのサイズが増大するに従い、ポートの数、そのためクロスバーのサイズもまた増大する。クロスバーが大型化するほど、製作に必要なシリコンの関連する面積が大きくなるため、単一ダイ上の大きい集積回路に関連する固有の故障率のため、且つポートの数が多くなるため、製作がより困難となり且つ費用がかかるようになる可能性がある。
【０００６】
マルチプロセッシングシステムの製作においてベンダが提供するクロスバーが使用される場合、マルチプロセッシングシステム設計者は、ベンダが提供するクロスバーで利用可能な事前定義された数のポートを有するクロスバーを使用しなければならない。このため、所望の数のＣＰＵ（及び／又は他のデバイス）を互いに結合するために、ベンダが提供するクロスバーにおいて所望の数のポートが利用可能でない場合、設計上の制限がある可能性がある。
【０００７】
これらの問題に対する従来の解決法では、プロセッサを相互接続するために複数レベルのクロスバーを使用する。これには、信号が２つ以上のクロスバーを伝播することが必要であり、システムを通してレイテンシが増大しシステム性能が低下する。
【課題を解決するための手段】
【０００８】
一実施の形態は、マルチプロセッシングシステムであって、複数の高帯域幅ポイント・ツー・ポイントリンクを有する複数のプロセッサと、複数のプロセッサクラスタであって、各々に事前定義された数のプロセッサが存在する、複数のプロセッサクラスタと、複数のクロスバーであって、そのうちの１つは、複数のプロセッサクラスタのうちの１つのプロセッサの各々を複数のプロセッサクラスタのうちの別のもののプロセッサの各々に結合し、それにより、すべてのプロセッサが他のプロセッサの各々に結合され、クロスバーの数は、（Ｘ×（Ｘ−１））／２に等しく、ここで、Ｘはプロセッサクラスタの数に等しい、複数のクロスバーとを具備する、マルチプロセッシングシステムである。
【０００９】
他の実施の形態は、マルチプロセッシングシステムにおける、１つのクロスバーを介する単一ホップを使用するプロセッサの任意の対の間のプロセッサ間通信の方法であって、第１のクラスタのプロセッサのうちの選択された１つから、第１のクロスバーを介して、複数のクラスタのうちの第２のクラスタにおけるプロセッサのうちの別の１つに通信することであって、その際、通信は第１のクロスバーを介する単一ホップを使用し、第１のクラスタのプロセッサは、第１のクロスバーを介して第２のクラスタのプロセッサに結合される、通信することと、第１のクラスタの選択されたプロセッサから、第２のクロスバーを介して、複数のクラスタのうちの第３のクラスタにおける別のプロセッサに通信することであって、その際、通信は第２のクロスバーを介する単一ホップを使用し、第１のクラスタのプロセッサは、第２のクロスバーを介して第３のクラスタのプロセッサに結合される、通信することと、第１のクラスタの選択されたプロセッサから、第（ｉ−１）のクロスバーを介して、複数のクラスタのうちの第ｉのクラスタにおける別のプロセッサに通信することであって、その際、通信は第（ｉ−１）のクロスバーを介する単一ホップを使用し、第１のクラスタのプロセッサは、第（ｉ−１）のクロスバーを介して第ｉのクラスタのプロセッサに結合される、通信することとを含む、プロセッサ間通信の方法である。
【００１０】
図面の構成要素は、必ずしも互いに一定の縮尺で描かれていない。各図面を通して同様の参照符号は対応する部分を示している。
【発明を実施するための最良の形態】
【００１１】
図１は、マルチプロセッシングシステム１００の一実施形態を示すブロック図である。マルチプロセッシングシステム１００は、単一オペレーティングシステムの指示の下で独立してタスクを実行する多くの並列動作する処理装置を採用する。マルチプロセッシングシステム１００の一実施形態は、複数の処理装置が、処理装置間の、並びに入出力（Ｉ／Ｏ）デバイス、メモリユニット及び／又は他のプロセッサへの直接接続を提供するために、高帯域幅ポイント・ツー・ポイントリンク１０２（従来の共有バスアーキテクチャではなく）を採用することに基づく。
【００１２】
マルチプロセッシングシステム１００は、処理システム１０４、クロスバーネットワーク１０６、任意の複数の入出力デバイス１０８及び任意の複数の補助デバイス１１０を採用する。処理システム１０４は、後により詳細に説明する複数のプロセッサクラスタ１１２を備える。Ｉ／Ｏデバイス１０８は、別のデバイスに対し又はユーザに対し情報を入力又は出力するためのデバイスであってもよく、又はこうしたデバイスに対する適当なインタフェースであってもよい。補助デバイス１１０は、リンク１０２を介してクロスバーネットワーク１０６に結合されてもよい、マルチプロセッシングシステム１００で使用される他のタイプのデバイスである。補助デバイス１１０の一例は、メモリデバイス又はシステムである。クロスバーネットワーク１０６は、リンク１０２を介して上述したコンポーネントを通信可能に結合する、後により詳細に説明する複数のクロスバーを備える。
【００１３】
図２は、クロスバーネットワーク１０６を介するプロセッサクラスタ間のリンクパス２０２を示すマルチプロセッシングシステム１００のブロック図である。リンクパス２０２は、概して、１つのプロセッサクラスタから別のプロセッサクラスタへのクロスバーネットワークを通る最短パスを示す。リンクグループ１０２は、プロセッサクラスタ１１２（図１）のプロセッサをクロスバーネットワーク１０６の１つのクロスバーに結合するリンクのセットを示す。したがって、リンクパスは、１つのプロセッサクラスタのプロセッサを別のプロセッサクラスタのプロセッサに結合する２つのリンクグループと、１つのクロスバーとから構成される。このマルチプロセッシングシステム１００の例示的な実施形態では、７つのプロセッサクラスタ１１２が示されている（１〜６及びｉ）。
【００１４】
プロセッサクラスタ１１２の各々は、パス２０２を介して他のプロセッサクラスタ１１２に結合される。パス２０２は、後により詳細に説明する、リンクグループ１０２と、クロスバーネットワーク１０６に存在するクロスバー（図示せず）とに対応する。この例示的な実施形態では、単一ホップ基準の下で７つのプロセッサクラスタを相互接続するために２１個のリンクパス２０２が必要である。すなわち、クロスバーネットワーク１０６に存在するクロスバー（図示せず）が、異なるプロセッサクラスタ１１２のプロセッサ間の接続を確立すると、プロセッサ間の通信に必要なのは、その接続するクロスバーを通る１ホップ通信のみである。
【００１５】
プロセッサクラスタ１１２（１〜６及びｉ）の各々が、複数のプロセッサ及び／又は他のコンポーネント（クロスバーネットワーク１０６を介して他のリモートデバイスと通信可能に結合するＩ／Ｏデバイス又はメモリユニット等）を有する場合、すべてのクラスタにおけるすべてのプロセッサのすべてのポートを相互接続するために単一クロスバーに必要なポートの数は、非現実的ではなくても非常に大きくなる。従来の解決法では、単一の大きいクロスバーが非現実的となる場合、複数の比較的大きいクロスバーを採用する。しかしながら、これら比較的大きいクロスバーのポートの数は、単一ホップ要件を満たすためにはマルチプロセッシングシステムのプロセッサの数に等しくなければならず、したがって、依然として実際的な限界を超える可能性がある。したがって、或る時点で、従来のマルチプロセッシングシステムは、クロスバーのサイズが限られることになるため、そのプロセッサ（及び／又は他のコンポーネント）の数が限られることになることが理解される。
【００１６】
マルチプロセッシングシステム１００のさまざまな実施形態は、クロスバーネットワーク１０６に存在する複数のクロスバーを備える。複数のクロスバーは、マルチプロセッシングシステム１００に存在するプロセッサのすべての間の単一ホップ接続を提供するように構成される。すなわち、プロセッサ（及び／又は他のコンポーネント）のすべては、プロセッサ間通信がそれらのそれぞれのクロスバーを介して単一ホップが必要であるように互いに結合される。
【００１７】
マルチプロセッシングシステム１００の実施形態では、マルチプロセッシングシステム１００に存在するプロセッサのすべての間の単一ホップ接続を提供するために必要なクロスバーの数を確定する。一実施形態では、必要なクロスバーの数は、
（１）クロスバー＝Ｘ×（Ｘ−１）／２
によって確定される。ここで、クロスバーは、プロセッサクラスタのプロセッサの数の２倍に等しい数のポートを有し、Ｘは、マルチプロセッシングシステム１００におけるプロセッサクラスタの数に等しい。
【００１８】
マルチプロセッシングシステムの別の実施形態では、マルチプロセッシングシステム１００に存在するプロセッサのすべての間の単一ホップ接続を提供するために必要なクロスバーの数を確定する。この実施形態では、必要なクロスバーの数は、
（２）クロスバー＝Ｘ！／（（Ｘ−２）！×２）
によって確定される。ここで、クロスバーは、プロセッサクラスタにおけるプロセッサの数の２倍に等しい数のポートを有し、Ｘは、マルチプロセッシングシステム１００におけるプロセッサクラスタの数に等しい。さらに、項Ｘ！は、Ｘの階乗を計算する算術処理に対応し、項（Ｘ−２）！は、項（Ｘ−２）の階乗を計算する算術処理に対応する。
【００１９】
図３は、第１のプロセッサクラスタから複数のクロスバーを通り他のプロセッサクラスタまでのリンクパスを示す図１のマルチプロセッシングシステム１００の一部のブロック図である。プロセッサクラスタ１には、複数のプロセッサＰ１、Ｐ２〜Ｐｎが存在する。プロセッサＰ１、Ｐ２〜Ｐｎの各々は、少なくともプロセッサクラスタの数より１つ少ない数に等しい複数のリンクを有する。リンクは、プロセッサＰ１、Ｐ２〜Ｐｎのうちの１つからの１つのポートを、クロスバーのうちの１つ（概して図を通して「Ｘ−ｂａｒ」として示す）からの１つのポートに結合する。たとえば、マルチプロセッシングシステムが７つのプロセッサクラスタを有する場合、プロセッサＰ１、Ｐ２〜Ｐｎの各々は６つのリンク（７−１）を採用する。
【００２０】
上述したように、プロセッサクラスタに存在する他のコンポーネントは、他のプロセッサクラスタにおける他のリモートデバイスへの接続を提供するためのリンクを有してもよい。他のコンポーネントの限定的でない例には、Ｉ／Ｏデバイス又はメモリデバイスがある。したがって、こうした実施形態では、プロセッサＰ１、Ｐ２〜Ｐｎの代りに他のコンポーネントを使用してもよい。さらに、プロセッサＰ１、Ｐ２〜Ｐｎ自体が複雑なデバイスであってもよく、たとえば、そこに複数のＣＰＵ及び／又はメモリデバイスが存在してもよい。
【００２１】
例示的な一例として、プロセッサＰ１、Ｐ２〜Ｐｎからのリンク３０２はクロスバー３０４に接続する。リンク３０２は、集合体として考えると、リンクグループ３０６に対応する。別のリンクグループ３０８は、クロスバー３０４とプロセッサクラスタ２とを結合する。リンクグループ３０８の個々のリンク（図示せず）は、プロセッサクラスタ２に存在するプロセッサ又は他のコンポーネント（図示せず）への結合を可能にする。したがって、プロセッサＰ１、Ｐ２〜Ｐｎは、各々、クロスバー３０４並びにリンクグループ３０６及び３０８を介してプロセッサクラスタ２のプロセッサに結合される。クロスバー３０４並びにリンクグループ３０６及び３０８は、リンクパス２０２に対応する。
【００２２】
同様に、プロセッサＰ１、Ｐ２〜Ｐｎからのリンク３１０は、クロスバー３１２に接続する。リンク３１０は、集合体で考えると、リンクグループ３１４に対応する。リンクグループ３１６は、クロスバー３１２とプロセッサクラスタｉとを結合する。リンクグループ３１６の個々のリンク（図示せず）は、プロセッサクラスタｉに存在するプロセッサ（図示せず）への結合を可能にする。したがって、プロセッサＰ１、Ｐ２〜Ｐｎは、各々、クロスバー３１２並びにリンクグループ３１４及び３１６を介してプロセッサクラスタｉのプロセッサに結合される。
【００２３】
プロセッサＰ１、Ｐ２〜Ｐｎからのリンク（図示せず）は、プロセッサＰ１、Ｐ２〜Ｐｎの、プロセッサクラスタ２及びｉのプロセッサへの結合に関して上述した方法と同様に、リンクグループ３１８及び３１９並びにクロスバー３２０を介して、プロセッサクラスタ３に存在するプロセッサ（図示せず）に接続する。同様に、プロセッサＰ１、Ｐ２〜Ｐｎからのリンク（図示せず）は、それぞれ、リンクグループ３２２及び３２３並びにクロスバー３２４と、リンクグループ３２６及び３２７並びにクロスバー３２８と、リンクグループ３３０及び３３１並びにクロスバー３３２とを介して、プロセッサクラスタ４、５及び６に存在するプロセッサ（図示せず）に接続する。
【００２４】
図４は、図３に示すマルチプロセッシングシステム１００の実施形態の、プロセッサクラスタ１及びプロセッサクラスタ２のプロセッサの、リンクグループ３０６及び３０８並びにクロスバー３０４を介する結合をより詳細に示すブロック図である。この例示的な実施形態では、プロセッサクラスタ１及び２（同様にプロセッサクラスタ３〜ｎ（図示せず））は、各々４つのプロセッサを有するように構成される。したがって、プロセッサクラスタ１はプロセッサＰ１〜Ｐ４を有し、プロセッサクラスタ２はプロセッサＰ５〜Ｐ８を有する。プロセッサＰ５〜Ｐ８からのリンク４０２は、リンクグループ３０８に対応するリンクである。クロスバー３０４は８つのポートを有し、１つのポートは一意にプロセッサＰ１〜Ｐ８に結合する。このため、クロスバー３０４は、上述したように、プロセッサクラスタにおけるプロセッサの数の２倍（２×４）に等しい数のポート（８）を有する。
【００２５】
図５は、所定数のクロスバー及びクロスバーを通るリンクを示す、各々が４つのプロセッサ（それぞれＰ１〜Ｐ４、Ｐ５〜Ｐ８、Ｐ９〜Ｐ１２及びＰ１３〜Ｐ１６）を有する４つのプロセッサクラスタ１〜４を有するマルチプロセッシングシステム１００の一実施形態のブロック図である。すなわち、各々４つのプロセッサを有する４つのプロセッサクラスタがある。したがって、プロセッサ間通信には、クラスタのプロセッサの各々からの３つのリンクが必要である。プロセッサ毎のリンクの数は、
（３）リンク＝Ｘ−１
に等しい。ここで、Ｘはプロセッサクラスタの数に等しい。
【００２６】
上記式（１）及び（２）に従って、各々が４つのプロセッサを有する４つのプロセッサクラスタがあるため、且つクロスバーの各々が８つのポート（プロセッサクラスタ毎のプロセッサの数の２倍、すなわち４×２＝８）を有するため、マルチプロセッシングシステム１００の実施形態では６つのクロスバーが必要である。
【００２７】
図５を参照すると、プロセッサクラスタ１及び２（並びにそれらの関連するプロセッサＰ１〜Ｐ８）、クロスバー３０４並びにリンクグループ３０６及び３０８は、図４に対応する。プロセッサＰ１〜Ｐ４の各々は、他のプロセッサへの接続を可能にするために各々３つのリンクが必要であるため、図５は、それぞれクロスバー３０４、５０６及び５０８に対する３つのリンクグループ３０６、５０２及び５０４を示す。リンクグループ５１０は、プロセッサクラスタ３のプロセッサＰ９〜Ｐ１２をクロスバー５０６に結合する。同様に、リンクグループ５１２は、プロセッサクラスタ４のプロセッサＰ１３〜Ｐ１６をクロスバー５０８に結合する。したがって、プロセッサＰ１〜Ｐ４のすべてが、３つのクロスバー３０４、５０６及び５０８を介して他のプロセッサに且つ互いに結合される。すなわち、プロセッサＰ１〜Ｐ４のすべてが、プロセッサ間通信のために単一ホップ接続で、他のプロセッサに且つ互いに結合される。
【００２８】
他のリンクグループ５１４は、１つのプロセッサクラスタのプロセッサを別のプロセッサクラスタのプロセッサと結合する。（リンクパス５１４の個々のリンクを破線で示す。）たとえば、クロスバー５１６は、プロセッサクラスタ２のプロセッサＰ５〜Ｐ８とプロセッサクラスタ３のプロセッサＰ９〜Ｐ１２との間の接続を提供する。クロスバー５１８は、プロセッサクラスタ２のプロセッサＰ５〜Ｐ８とプロセッサクラスタ４のプロセッサＰ１３〜Ｐ１６との間の接続を提供する。また、クロスバー５２０は、プロセッサクラスタ３のプロセッサＰ９〜Ｐ１２とプロセッサクラスタ４のプロセッサＰ１３〜Ｐ１６との間の接続を提供する。このため、クロスバーネットワーク１０６は、マルチプロセッシングシステム１００に存在するプロセッサＰ１〜Ｐ１６のすべての間の単一ホップ接続を提供する。
【００２９】
図６は、リンク６０２に結合された、追加のポートａ〜ｎを有するプロセッサＰ１〜Ｐｉを示す、マルチプロセッシングシステム１００の一実施形態のブロック図である。リンク６０２を使用して、限定されないがＩ／Ｏデバイス及び／又はメモリデバイス等の他のデバイスに結合してもよい。
【００３０】
図７は、入出力（Ｉ／Ｏ）デバイス、メモリデバイス及び／又は他のクロスバー等、他のデバイスに結合するために追加のリンクを可能にする８＋ｎポートクロスバーを示すマルチプロセッシングシステム１００の一実施形態のブロック図である。ここでは図４の例示的な実施形態を再び使用するため、リンクグループ３０６及び３０８のリンクに結合する８つのポート１〜８があり、そのため、プロセッサクラスタ１のプロセッサＰ１〜Ｐ４とプロセッサクラスタ２のプロセッサＰ５〜Ｐ８との間の接続が提供される。リンク７０２に結合されるポートａ〜ｎは、他のデバイスへの結合を可能にする。
【００３１】
図８は、複数のクロスバーを使用するプロセッサ間通信のための単一ホップ接続のプロセスの一実施形態を示すフローチャート８００である。代替の実施形態は、状態機械として構成されるハードウェアによりフローチャート８００のプロセスを実装する。これに関して、各ブロックは、指定された論理機能（複数可）を実装するために１つ又は複数の実行可能命令を含む、モジュール、セグメント又はコードの一部を表してもよい。また、代替の実施形態では、ブロックに示される機能は、図８に示す順序以外の順序で発生してもよく、又は追加の機能を含んでもよいことも留意すべきである。たとえば、後により明確にするように、関連する機能に応じて、図８において連続して示される２つのブロックは、実際には実質的に同時に実行されてもよく、ブロックは、逆の順序で実行されることがあってもよく、又はブロックのいくつかはすべての場合に実行されなくてもよい。こうした変更及び変形のすべては、本明細書において本開示の範囲内に含まれるように意図されている。
【００３２】
フローチャート８００のプロセスはブロック８０２で開始する。ブロック８０４において、第１のクラスタのプロセッサのうちの選択された１つは、第１のクロスバーを介して複数のクラスタのうちの第２のクラスタにおけるプロセッサのうちの別の１つと通信し、その際、通信は第１のクロスバーを介する単一ホップを使用し、第１のクラスタのプロセッサは、第１のクロスバーを介して第２のクラスタのプロセッサに結合される。ブロック８０６において、第１のクラスタの選択されたプロセッサは、第２のクロスバーを介して複数のクラスタのうちの第３のクラスタにおける別のプロセッサと通信し、その際、通信は第２のクロスバーを介する単一ホップを使用し、第１のクラスタのプロセッサは第２のクロスバーを介して第３のクラスタのプロセッサに結合される。ブロック８０８において、第１のクラスタの選択されたプロセッサは、第（ｉ−１）のクロスバーを介して複数のクラスタのうちの第ｉのクラスタにおける別のプロセッサと通信し、その際、通信は第（ｉ−１）のクロスバーを介する単一ホップを使用し、第１のクラスタのプロセッサは第（ｉ−１）のクロスバーを介して第ｉのクラスタのプロセッサに結合される。プロセスはブロック８１０で終了する。
【００３３】
上述した実施形態は、単に開示したシステム及び方法の例であるということが強調されるべきである。上述した実施形態に対し、多くの変形及び変更を行ってもよい。こうした変更及び変形はすべて、本明細書において本開示の範囲内にあるように意図されている。
【図面の簡単な説明】
【００３４】
【図１】マルチプロセッシングシステムの一実施形態を示すブロック図である。
【図２】クロスバーネットワークを介するプロセッサクラスタ間のリンクパスを示す図１のマルチプロセッシングシステムのブロック図である。
【図３】第１のプロセッサクラスタから複数のクロスバーを通り他のプロセッサクラスタまでのリンクパスを示す図１のマルチプロセッシングシステムの一部のブロック図である。
【図４】図３に示すマルチプロセッシングシステムの実施形態の、リンクパス及びクロスバーを介する、プロセッサクラスタ１及びプロセッサクラスタ２におけるプロセッサの結合をより詳細に示すブロック図である。
【図５】クロスバーを介する所定の数のクロスバー及びリンクを示す、各々が４つのプロセッサを含む４つのプロセッサクラスタを有するマルチプロセッシングシステムの一実施形態のブロック図である。
【図６】入出力（Ｉ／Ｏ）デバイスに且つ／又はプロセッサクラスタの他のプロセッサに結合するための追加のリンクを有するプロセッサを示すマルチプロセッシングシステムの一実施形態のブロック図である。
【図７】入出力（Ｉ／Ｏ）デバイスに且つ／又は他のクロスバーに結合するために追加のリンクを有する８＋ｎポートクロスバーを示すマルチプロセッシングシステムの一実施形態のブロック図である。
【図８】単一クロスバーを介するプロセッサ間通信のための単一ホップ接続のプロセスの一実施形態を示すフローチャートである。
【符号の説明】
【００３５】
１００・・・マルチプロセッシングシステム
１０２・・・高帯域幅ポイント・ツー・ポイントリンク
１０４・・・処理システム
１０６・・・クロスバーネットワーク
１０８・・・Ｉ／Ｏデバイス
１１０・・・補助デバイス
１１２・・・プロセッサクラスタ
２０２・・・リンクパス
３０２，３１０・・・リンク
３０４，３１２，３２０，３２４，３２８，３３２・・・クロスバー
３０６，３０８，３１４，３１６，３１８，３１９，３２２，３２３，３２６，３２７，３３０，３３１・・・リンクグループ
４０２・・・リンク
５０２，５０４，５１０，５１２，５１４・・・リンクグループ
５０６，５０８，５１６，５１８，５２０・・・クロスバー
６０２・・・リンク
７０２・・・リンク
【図１】
2007220100.tif 000003
【図２】
2007220100.tif 000004
【図３】
2007220100.tif 000005
【図４】
2007220100.tif 000006
【図５】
2007220100.tif 000007
【図６】
2007220100.tif 000008
【図７】
2007220100.tif 000009
【図８】
2007220100.tif 000010