(57)【要約】【課題】コンピューティング構造でグローバル非同期信号を生成するシステムおよび方法を提供すること。【解決手段】具体的に言うと、処理アルゴリズムに従ってコンピューティング構造の選択された処理ノードの処理要素によって実行されるグローバル非同期動作を制御するためにグローバル割込み信号およびグローバル・バリア信号を生成する論理を実施し、短待ち時間パスを介して要素にグローバル割込み信号およびグローバル・バリア信号を通信するための処理ノードの物理相互接続を含む、グローバル割込みおよびバリア・ネットワークが実施される。グローバル非同期信号によって、それぞれ、処理アルゴリズムの性能を最適化するために選択された時刻に、処理ノードでの割込み動作およびバリア動作が開始される。一実施形態では、グローバル割込みおよびバリア・ネットワークが、複数の独立のネットワークによって相互接続された複数の処理ノードを含むスケーラブルな大量並列スーパーコンピューティング装置で実施され、各ノードに、並列アルゴリズム動作を実行する時に必要になる計算アクティビティまたは通信アクティビティを実行する１つまたは複数の処理要素が含まれる。１つの複数の独立のネットワークに、グローバル・ツリー・ネットワーク・ノードまたはそのサブツリーの間での高速グローバル・ツリー通信を使用可能にするグローバル・ツリー・ネットワークが含まれる。グローバル割込みおよびバリア・ネットワークは、グローバル非同期サイド・バンド信号を提供するために、グローバル・ツリー・ネットワークと並列に動作することができる。
2004529414.tif 000002
【特許請求の範囲】
【請求項１】
グローバル割込みおよびバリア・ネットワークであって、
処理アルゴリズムに従ってコンピューティング構造の選択された処理ノードの処理要素によって実行されるグローバル非同期動作を制御するためにグローバル割込み信号およびグローバル・バリア信号を生成する手段と、
短待ち時間パスを介して前記要素に前記グローバル割込み信号および前記グローバル・バリア信号を通信するために前記処理ノードを相互接続する手段であって、前記信号が、それぞれ、前記処理アルゴリズムの性能を最適化するために選択された時刻に選択された処理ノードで割込み動作およびバリア動作を開始する、手段と
を含むグローバル割込みおよびバリア・ネットワーク。
【請求項２】
それぞれがめいめいの処理要素を含む複数の相互接続された処理ノードを含むスケーラブルな大量並列コンピューティング構造で実施され、前記ノードが、第１ネットワーク・タイプによって相互接続される、請求項１に記載のグローバル割込みおよびバリア・ネットワーク。
【請求項３】
前記グローバル・シグナルが、非同期に生成され、通信される、請求項１に記載のグローバル割込みおよびバリア・ネットワーク。
【請求項４】
前記グローバル・シグナルが、非同期に通信される、請求項１に記載のグローバル割込みおよびバリア・ネットワーク。
【請求項５】
前記バリア信号を生成する手段が、１つまたは複数の接続するノードから信号を受け取り、前記信号に対するグローバル論理AND動作を実行する、各ノードにある手段を含み、前記論理AND動作が、前記選択されたノードでのグローバル・バリア動作を使用可能にするように機能し、前記選択されたノードが、前記グローバル・バリア動作が完了するまで、ある動作を状態超えて処理しないようにされる、請求項３に記載のグローバル割込みおよびバリア・ネットワーク。
【請求項６】
前記割込み信号を生成する手段が、１つまたは複数の接続するノードから信号を受け取り、前記信号に対するグローバル論理OR動作を実行する、各ノードにある手段を含み、前記論理OR動作が、前記選択されたノードでのグローバル通知動作を使用可能にするように機能する、請求項５に記載のグローバル割込みおよびバリア・ネットワーク。
【請求項７】
前記処理ノードを相互接続する前記手段が、ノードの間の短待ち時間パスを含むツリー・ネットワークを形成し、グローバル割込み信号およびグローバル・バリア信号が、前記ツリーの子ノードから親ノードへ上流に流れ、前記ツリーの親ノードから子ノードへ下流に流れる、請求項６に記載のグローバル割込みおよびバリア・ネットワーク。
【請求項８】
前記コンピューティング構造が、さらに、前記処理ノードの間での高速グローバル・ツリー通信を使用可能にする独立のグローバル・ツリー・ネットワークを含み、前記処理ノードを相互接続する前記手段が、前記グローバル非同期動作を前記処理アルゴリズムと調整して効率的に開始するために前記独立のグローバル・ツリー・ネットワークと並列に動作するツリー・ネットワークを形成する、請求項６に記載のグローバル割込みおよびバリア・ネットワーク。
【請求項９】
各前記ノードが、信号を他のノードに経路指定する関連する経路指定装置を含み、前記ルータが、前記グローバル非同期信号をめいめいの上流方向で前記ツリー・ネットワークの親ノードに向かって経路指定する上流ポートと、前記グローバル非同期信号をめいめいの下流方向で前記ツリー・ネットワークの子ノードに向かってブロードキャストする下流ポートとを含み、
各ノードが、前記ツリーの前記ノードの親ノードおよび子ノードで割込み動作およびバリア動作を開始するために、前記ノードを含む処理要素からおよびそれに接続された他のノードから受け取られる信号に応答する論理回路を含む
請求項７に記載のグローバル割込みおよびバリア・ネットワーク。
【請求項１０】
各前記論理回路が、前記処理要素からの制御信号に応答して非同期グローバル・シグナルをセットする手段を含む、請求項９に記載のグローバル割込みおよびバリア・ネットワーク。
【請求項１１】
各ノードが、非同期グローバル・シグナルを受け取る検出装置を含み、前記検出装置が、前記ツリー・ネットワークでの雑音の誤検出を防ぐために、前記受け取られた非同期信号をシステム・クロック信号と同期化する手段を含む、請求項１０に記載のグローバル割込みおよびバリア・ネットワーク。
【請求項１２】
非同期グローバル・シグナルを検出する前記手段が、エッジ・センシティブである、請求項１１に記載のグローバル割込みおよびバリア・ネットワーク。
【請求項１３】
コンピュータ構造全体にわたってグローバル・クロックを同期化するのに前記グローバル割込みおよびバリア・ネットワークを使用する手段をさらに含む、請求項１に記載のグローバル割込みおよびバリア・ネットワーク。
【請求項１４】
少なくとも１つの高速ネットワークによって相互接続された複数のノードを含むコンピューティング構造でグローバル非同期動作を実施する方法であって、
ａ）処理アルゴリズムに従ってコンピューティング構造の選択された処理ノードの処理要素によって実行されるグローバル非同期動作を制御するためにグローバル割込み信号およびグローバル・バリア信号を生成することと、
ｂ）短待ち時間パスを介して前記要素に前記グローバル割込み信号および前記グローバル・バリア信号を通信するために前記処理ノードを相互接続するもう１つの高速ネットワークを提供することであって、前記信号が、それぞれ、前記処理アルゴリズムの性能を最適化するために選択された時刻に選択された処理ノードで割込み動作およびバリア動作を開始する、提供することと
を含む方法。
【請求項１５】
それぞれがめいめいの処理要素を含む複数の相互接続された処理ノードを含むスケーラブルな大量並列コンピューティング構造で実施され、前記ノードが、独立のトーラス・ネットワークによって相互接続される、請求項１４に記載の方法。
【請求項１６】
前記グローバル・シグナルが、非同期に生成され、通信される、請求項１４に記載の方法。
【請求項１７】
前記グローバル・シグナルが、非同期に通信される、請求項１４に記載の方法。
【請求項１８】
前記生成するステップが、各ノードで実施される、
１つまたは複数の接続するノードから信号を受け取るステップと、
前記信号に対するグローバル論理AND動作を実行するステップであって、前記論理AND動作が、前記選択されたノードでのグローバル・バリア動作を使用可能にするように機能し、前記選択されたノードが、前記グローバル・バリア動作が完了するまで、ある動作を状態超えて処理しないようにされる、ステップと
を含む、請求項１６に記載の方法。
【請求項１９】
前記生成するステップが、さらに、各ノードで実施される、
１つまたは複数の接続するノードから信号を受け取るステップと、
前記信号に対するグローバル論理OR動作を実行するステップであって、前記論理OR動作が、前記選択されたノードでのグローバル通知動作を使用可能にするように機能する、ステップと
を含む、請求項１８に記載の方法。
【請求項２０】
前記処理ノードが、ノードの間の短待ち時間パスを含むグローバル・ツリー・ネットワークを形成するように相互接続され、グローバル割込み信号およびグローバル・バリア信号が、前記ツリーの子ノードから親ノードへ上流に流れ、前記ツリーの親ノードから子ノードへ下流に流れる、請求項１９に記載の方法。
【請求項２１】
前記コンピューティング構造が、さらに、前記処理ノードの間での高速グローバル・ツリー通信を使用可能にする独立のグローバル・ツリー・ネットワークを含み、前記処理ノードの前記相互接続が、前記グローバル非同期動作を前記処理アルゴリズムと調整して効率的に開始するために前記独立のグローバル・ツリー・ネットワークと並列に動作するツリー・ネットワークを形成する、請求項１９に記載の方法。
【請求項２２】
各前記ノードが、信号を他のノードに経路指定する関連する経路指定装置を含み、前記ルータが、前記グローバル非同期信号をめいめいの上流方向で前記ツリー・ネットワークの親ノードに向かって経路指定する上流ポートと、前記グローバル非同期信号をめいめいの下流方向で前記ツリー・ネットワークの子ノードに向かってブロードキャストする下流ポートとを含み、前記方法が、さらに、
前記ツリーの前記ノードの親ノードおよび子ノードで割込み動作およびバリア動作を開始するために、前記ノードを含む処理要素からおよびそれに接続された他のノードから受け取られる信号に応答する論理を各ノードで実施すること
を含む、請求項２０に記載の方法。
【請求項２３】
前記論理を実施することが、前記処理要素からの制御信号に応答して非同期グローバル・バリア信号またはグローバル割込み信号をセットするステップを含む、請求項２２に記載の方法。
【請求項２４】
各ノードが、
非同期グローバル・シグナルの受取を検出するステップと、
前記ツリー・ネットワークでの雑音の誤検出を防ぐために、前記受け取られた非同期信号をシステム・クロック信号と同期化するステップと
を実施する、請求項２３に記載の方法。
【請求項２５】
非同期グローバル・シグナルを検出する前記論理が、エッジ・センシティブである、請求項２４に記載の方法。
【請求項２６】
コンピュータ構造全体にわたってグローバル・クロックを同期化するのに前記グローバル割込みおよびバリア・ネットワークを使用するステップをさらに含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的には、分散メモリ・メッセージ受渡並列コンピュータの設計およびシステム・ソフトウェアに関し、具体的には、コンピュータ構造が複数個相互接続された処理ノードに対するグローバル割込みおよびグローバル・バリア動作をサポートする方法および装置に関する。
【背景技術】
【０００２】
スーパーコンピューティング技術では、多数の処理ノードを相互接続する大量並列コンピューティング構造が、一般に、グリッド、格子、またはトーラスなど、非常に規則的な構造として設計される。
【０００３】
そのような大量並列システムで一般に直面する特定の問題の１つが、多数のノードを使った集合的な算術演算または論理演算の効率的な計算である。
【０００４】
端で「ラップ」される単純な３次元最近傍相互接続を含む、図１に示された３次元トーラス相互接続構造１０は、ほとんどのタイプのプロセッサ間通信でよく機能するが、計算ノード１２のそれぞれによって供給されるオペランドから単一の結果が計算されるリダクションなどの集団操作については、それほどよく実行しない。
【０００５】
したがって、グローバル算術演算を必要とするものを含む多数のクラスの動作を効率的に信頼性のある形で実行するために最適化された処理ノードの独自の相互接続を含み、データを分散し、同期化し、限られたリソースを共用する、ウルトラスケール・スーパーコンピューティング・アーキテクチャを提供することが、非常に望ましい。
【０００６】
さらに、大型並列計算機では、ある状態を計算に参加する各ノードに知らせるためにある種のグローバル通知を実施することが有用である。たとえば、あるノードでエラーが発生する場合に、そのノードは、グローバル割込みをシグナリングし、その結果、他のすべてのノードがそれについて知り、計算機全体がエラー回復状態に進めるようにする。さらに、すべての処理ノードに関するある状況レベルが達成されるまで、参加するノードの動作を防ぐためにグローバル・バリアを実施することが有用である。
【０００７】
したがって、非常に短い待ち時間（レイテンシ）を有するグローバル割込みおよびバリア・ネットワークを提供し、その結果、相互接続された処理要素のコンピューティング構造全体が、同期動作にすばやく戻れるようにすることが、さらに望ましい。相互接続されたトーラスなどの高速ネットワークの通常のメッセージング受渡は、単に、より長い待ち時間のゆえに、この目的に完全には適しない。
【特許文献１】
米国仮出願番号＿＿＿＿＿＿（ＹＯＲ９２００１０２１１ＵＳ２、Ｄ＃  １５２７５）
【特許文献２】
米国仮出願番号＿＿＿＿＿＿（ＹＯＲ９２００２００２８ＵＳ１、Ｄ＃  １５２７１）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、個々のプロセッサの相互接続を含むコンピューティング構造内で短待ち時間グローバル・バリアおよび割込みネットワークを提供し、その結果、グローバル・リダクションなどのグローバル算術演算を効率的に信頼性のある形で実行できるようにすることである。
【０００９】
本発明のもう１つの目的は、コンピューティング構造の個々の処理ノードで実行される動作を効率的に制御できるグローバル割込み信号およびグローバル・バリア信号を発行する短待ち時間グローバル・バリアおよび割込みネットワークを提供することである。
【００１０】
本発明のもう１つの目的は、コンピューティング構造の個々の処理ノードで実行される動作を制御するためにグローバル割込み信号およびグローバル・バリア信号を非同期に発行する短待ち時間グローバル・バリアおよび割込みネットワークを提供することである。
【００１１】
本発明のもう１つの目的は、コンピューティング構造の個々の処理ノードで実行される動作を制御するためにグローバル割込み信号およびグローバル・バリア信号を同期式に発行する短待ち時間グローバル・バリアおよび割込みネットワークを提供することである。
【００１２】
本発明のもう１つの目的は、スケーラブルな大量並列スーパーコンピューティング装置でグローバル割込みおよびバリア機能性を提供する短待ち時間グローバル・バリアおよび割込みネットワークを組み込むことであり、このスケーラブルな大量並列スーパーコンピューティング装置は、独立のネットワークによって相互接続された複数の処理ノードを含み、各ノードは、並列アルゴリズム動作を実行する時に必要な計算アクティビティまたは通信アクティビティを実行する１つまたは複数の処理要素を含む。
【００１３】
本発明のもう１つの目的は、信頼性があり効率的なグローバル・リダクション動作およびブロードキャスト動作を実行する処理ノードのツリー相互接続として配置された物理ネットワークと並列に動作する同期式または非同期式のグローバル割込みおよびバリア機能を提供する短待ち時間グローバル・バリアおよび割込みネットワークを提供することである。
【課題を解決するための手段】
【００１４】
本発明の好ましい実施形態によれば、グローバル割込みおよびバリア・ネットワークであって、処理アルゴリズムに従ってコンピューティング構造の選択された処理ノードで処理要素によって実行されるグローバル非同期動作を制御するグローバル割込み信号およびグローバル・バリア信号を生成する方法および手段と、短待ち時間パスを介して要素にグローバル割込み信号およびグローバル・バリア信号を通信する、処理ノードを相互接続する方法および手段であって、信号が、それぞれ、処理アルゴリズムの性能を最適化するために選択された時刻に処理ノードで割込み動作およびバリア動作を開始する、方法および手段とを含むグローバル割込みおよびバリア・ネットワークが提供される。
【００１５】
もう１つの有利な実施形態では、グローバル割込みおよびバリア・ネットワークを使用して、スケーラブルな大量並列スーパーコンピュータ装置全体にわたってグローバル・クロック信号を同期化することができる。
【００１６】
有利なことに、グローバル割込み信号およびグローバル・バリア信号を生成するグローバル割込みおよびバリア・ネットワークは、スケーラブルな大量並列スーパーコンピュータ装置で実施され、スケーラブルな大量並列スーパーコンピュータ装置には、複数の独立のネットワークによって相互接続される複数の処理ノードであって、各ノードが、並列アルゴリズム動作を実行する時に必要な計算アクティビティまたは通信アクティビティを実行する１つまたは複数の処理要素を含む、複数の処理ノードと、ツリー・ネットワークまたはサブツリーの選択されたノードの間での高速グローバル・ツリー通信を可能にするグローバル・ツリー・ネットワークとが含まれる。
【００１７】
もう１つの実施形態では、グローバル割込みおよびバリア・ネットワークを、短待ち時間グローバル割込みおよびバリアを提供すると同時に、分割の柔軟性を示すために、大量並列分散メモリ・コンピュータで実施される既存のグローバル・ツリー・ネットワークに沿ったサイド・バンド・ネットワークとして実施することができる。
【００１８】
さらに、グローバル・ツリー・ネットワークを組み込んだスケーラブルな大量並列スーパーコンピュータで実施される時に、（同期式または非同期式の）グローバル・バリア動作および割込み動作を実施する本発明のグローバル割込みおよびバリア・ネットワークは、生命科学の分野で実行される並列アルゴリズムによく適する。
【００１９】
本発明の装置および方法のさらなる特徴、態様、および長所は、以下の説明、添付請求項、および添付図面に関してよりよく理解される。
【発明を実施するための最良の形態】
【００２０】
本発明によれば、図３からわかるように、本明細書に組み込まれる、本願の譲受人に譲渡された同時係属の米国仮出願番号＿＿＿＿＿＿（ＹＯＲ９２００１０２１１ＵＳ２、Ｄ＃  １５２７５）に記載の大量並列スーパーコンピュータなどのコンピューティング構造に、構造の処理ノード１２を相互接続する短待ち時間通信リンク１５を介して処理ノードの間でグローバル非同期信号またはグローバル同期信号を通信するネットワークである、グローバル割込みおよびバリア・ネットワーク６０が与えられる。一実施形態では、グローバル割込みおよびバリア・ネットワーク６０が、図２に示されたものなどのグローバル・コンバイニング・ツリーおよびメッセージ受渡ネットワーク２０と並列に動作し、グローバル・コンバイニング・ツリーおよびメッセージ受渡ネットワーク２０は、大量並列スーパーコンピューティング構造で非同期グローバル動作（たとえばグローバル・リダクションおよびグローバル通知）を提供するために処理ノード１２を相互接続するリンク１４を含むツリー構成である。図２からわかるように、このグローバル・コンバイニング・ツリーおよびメッセージ受渡ネットワーク２０には、さらに、高速ネットワーク・インターフェース９９を介する外部システム５０への高速アクセスをツリーに提供するための、入出力ノード１２’との関連が含まれる。すべてのノードが、さらに、ネットワーク・スイッチ１８を介する別のネットワーク・インターフェース９８への接続性を有する。
【００２１】
本明細書に組み込まれる、本願の譲受人に譲渡された同時係属の米国仮出願番号＿＿＿＿＿＿（ＹＯＲ９２００１０２１１ＵＳ２、Ｄ＃  １５２７５）に、そのような新規の大量並列スーパーコンピュータ・アーキテクチャが記載されており、そのアーキテクチャは、広範囲のアプリケーションにテラＯＰＳ（１兆演算毎秒）程度の処理能力を引き渡すように設計された、３次元トーラスの形である。この大量並列スーパーコンピュータ・アーキテクチャは、説明される例示的実施形態で、６４×３２×３２個のトーラスとして編成された６４ｋ個の処理ノードが含まれ、各処理ノード１２は、図１に示されているように、６つの隣接する処理ノード１２に接続される。このアーキテクチャを、通信よりかなり多くの計算を必要とするか、最近傍通信だけを必要とするアプリケーションに、数百テラＯＰＳまで活用することができる。
【００２２】
好ましい実施形態では、本明細書に組み込まれる、本願の譲受人に譲渡された同時係属の米国仮出願番号＿＿＿＿＿＿（Ｄ＃１５２７５）に記載されているように、各ノードが、システムオンアチップ・プロセスに基づく、すなわち、コンピュータ・ノードのすべての機能が、単一のＡＳＩＣに集積され、ノードのサイズおよび電力の劇的な削減がもたらされる。このスーパーコンピュータ・アーキテクチャをさらに活用して、ノード密度を高め、これによって、計算機の総合的なコスト／性能を下げることができる。各ノードで、PowerPC  ４４０組込み処理コア、浮動小数点コア、組込みＤＲＡＭ、統合外部ＤＤＲメモリ・コントローラ、メッセージ・プロセッサ、イーサネット（Ｒ）・アダプタ、ならびにネットワーク・ルータを含むがこれに制限されない、多数のそのような機能がコンピュータＡＳＩＣに組み込まれることが好ましい。一実施形態では、同一の計算ＡＳＩＣノードが、ファイルサーバ通信動作および入出力動作を処理するために、コンピュータ・ノードのサブセット、たとえば６４個のノードに関連する入出力ノードとして機能することができる。
【００２３】
前に述べたように、トーラス計算ノードを接続する相互接続ネットワークは、ほとんどのタイプのプロセッサ間通信に関して良好に働くが、計算ノードのそれぞれによって提供されるオペランドから単一の結果が計算されるリダクションなどの集合動作についてはそうでない。したがって、本明細書に組み込まれる、本願の譲受人に譲渡された同時係属の米国仮出願番号＿＿＿＿＿＿（Ｄ＃１５２７５）および本明細書に組み込まれる、本願の譲受人に譲渡された同時係属の米国仮出願番号＿＿＿＿＿＿（ＹＯＲ９２００２００２８ＵＳ１、Ｄ＃  １５２７１）に記載の新規の大量並列スーパーコンピュータ・アーキテクチャでは、図２に示されたツリー構造によるリンク１４に沿って処理ノード１２を物理的に相互接続するルータを含む追加のグローバル・ツリー・ネットワーク２０。グローバル・コンバイニング・ツリー・ネットワーク２０は、データの移動ならびに集合リダクション演算の計算によく適し、さらに、ブロードキャスト、同期式バリア、およびレシーバ・フィルタリング機能を提供する。
【００２４】
米国仮出願番号＿＿＿＿＿＿（ＹＯＲ９２００１０２１１ＵＳ２、Ｄ＃  １５２７５）に記載されているように、大量並列スーパーコンピューティング計算機のトーラス・ネットワークおよび同期式グローバル・ツリー・ネットワークの両方を、再配線なしで異なる論理区画に分割することができる。各論理区画は、電子的に分離される。本発明のグローバル非同期信号を実施する時には、それらも分割されることが非常に望ましい。したがって、好ましい実施形態では、グローバル非同期信号が、同期式グローバル・ツリー（図２および３）と同一のパスに従い、サイド・バンド信号のように機能して、再分割の利益を自動的に得る。
【００２５】
グローバル割込みおよびバリア・ネットワーク６０（図３）の機能性は、グローバル・コンバイニング・ツリー・ネットワーク２０の機能性に密接に関係し、これと並列に「サイド・バンド」ネットワークとして機能することができる。たとえば、グローバル「ｏｒ」機能は、割込みであり、グローバル「and」は、「すべて待機」である。これらの機能は、（１）論理区画（たとえばサブツリー・ネットワーク）内の各ノードがセットでき、検出できる信号、（２）すべての入力信号のグローバルANDまたはグローバルORを実行するハードウェア論理機能、および（３）結果を収集し、各ノードに配布するグローバル・ネットワークを含むグローバル非同期信号を生成し、通信することによって、グローバル割込みおよびバリア・ネットワーク６０内で使用される。複数の異なる信号が、大きいシステム内で共存することができ、この発想を、多数の形で実施することができる。これらを、本明細書に組み込まれる、本願の譲受人に譲渡された同時係属の米国仮出願番号＿＿＿＿＿＿（ＹＯＲ９２００１０２１１ＵＳ２、Ｄ＃  １５２７５）に記載の大量並列分散メモリ・コンピュータでの使用に関して説明する。
【００２６】
図３を参照すると、グローバル割込みおよびバリア・ネットワーク６０の各ルート・ノード６５は、グローバル・コンバイニング・ツリーの経路に沿って、コンピューティング構造の所定の数の計算ノード１２に接続され、特定の並列アルゴリズムに関する必要に応じて、たとえば大量並列スーパーコンピュータなどのコンピューティング構造でグローバル非同期動作を開始するために、それらとあいまって動作する。この２分様コンバイニング・ツリー・ネットワークとバリアおよび割込みネットワークが、スーパーコンピュータ計算機全体に延び、任意のノード１２から他のすべてのノード（ブロードキャスト）またはノード１２のサブセットに、短待ち時間でデータを送れるようになることが好ましい。他のツリー実施形態、たとえば３次ツリー、４次などを実施することができ、ここで、より短い待ち時間に関するトレードオフが、より多くの接続であることを理解されたい。メッセージ受渡は、グローバル・コンバイニング・ツリー２０でサポートされ、各ＡＳＩＣ内のプロセッサのいずれかによって制御され、すべて対すべての通信などの集中型動作を、計算ノードと独立に進行することができるようになる。このツリーの分岐のそれぞれは、１．４ＧＢ／ｓまたはプロセッサ・サイクルごとに２バイトの、送信方向および受信方向の両方での好ましいターゲット帯域幅を有する。
【００２７】
ツリー２０に組み込まれたハードウェア機能性は、整数加算、最大値、ビット単位の論理AND、ビット単位の論理OR、ビット単位の論理XOR、およびブロードキャストである。これらの機能は、最短の待ち時間が可能な形で実施される。
【００２８】
単純であるが効率的な実施形態は、グローバル同期式機能およびグローバル非同期式機能のすべてを計算ノードのＡＳＩＣに組み込み、したがって、これらのグローバル非同期論理機能に関する別々のハードウェア・チップおよび関連するパッケージ化を除去することである。図４に、本発明のグローバル割込みおよびバリア・ネットワークで実施される非同期グローバル・シグナル生成に使用される論理を示す。
【００２９】
具体的に言うと、図４に鑑みて、グローバル割込みおよびバリア・ネットワーク６０には、図２のグローバル・コンバイニング・ツリー・ネットワークに対するサイド・バンド・ネットワークとして実施される時に、ノードごとに１つの、相互接続されたルータ・デバイスのネットワークが含まれる。各ルータ・デバイスには、複数のポートが含まれ、これらのポートは、別のルータに接続される、または接続されない時に使用不可にされる、のいずれかとすることができる。ルータの動作に関する詳細は、本明細書に組み込まれる、本願の譲受人に譲渡された同時係属の米国仮出願番号＿＿＿＿＿＿（ＹＯＲ９２００２００２８ＵＳ１、Ｄ＃  １５２７１）に記載されている。しかし、説明のために、図４に示されているように、ルータは、３ツリーを構成することができる、データパスを提供する４つのポート１０１から１０４を有する。４つのポートのうちの１つ、たとえばポート１０１だけが、親ノードへの接続として指定され、残りのポートのうちの３つまでを、子ノードに接続することができる。ツリーの最下部の葉ノードは、親ノードに接続された１つのポートだけを使用可能にされ、ツリーのルートは、親を使用可能にされるのではなく、少なくとも１つの子を使用可能にされる。
【００３０】
図４は、図３のグローバル・シグナル・ツリーおよびバリア・ネットワークのために各ＡＳＩＣノード１２に含まれるルータ・デバイス内で実施される非同期論理１００の概略図である。グローバル・シグナル非同期ネットワークでは、サイド・バンド信号ごとに、４つの論理両方向ポート、１つのアップ・ツリー・ポート（図３、１０１）、および３つのダウン・ツリー・ポート（図４、１０２、１０３、および１０４）がある。これらの４つの論理両方向ポートは、４つの物理両方向ポートにマッピングされる。ソフトウェア構成を用いて、物理ポートの任意の１つを、アップ・ツリー論理ポートとしてマッピングすることができる。これによって、複数のこれらのノードが一緒に配置される基板のレイアウトの柔軟性が可能になる。アップ・ツリー・ポートおよびダウン・ツリー・ポートの他に、すべてのノードでＡＳＩＣプロセッサ・コアから生成される追加の入力信号１０５と、プロセッサの割込みユニットに入力される結果信号１０６がある。アップ・ツリー・パス１２０では、ダウン・ツリー・ポート１０２、１０３、および１０４からのすべての入力と中央プロセッサ（ＣＰＵ）からの入力１０５が、アップ・ツリー・パスに送出される前に論理ゲート１０７に入力される。この論理ゲート１０７は、グローバル・バリア動作を実行するために実施される時に論理AND機能を実行し（入力が論理「０」から「１」に推移する）、あるいは、グローバル割込み動作を実行するために実施される時にOR機能ネットワークとして実施することができる（入力が論理「１」から「０」に推移する）。ダウン・ツリー・パス１３０では、アップ・ツリーからの入力信号が、バッファ装置１０８によってバッファリングされ、その後、すべてのダウン・ツリー・ポート１０２、１０３、および１０４とプロセッサにブロードキャストされる。ツリーの最上部では、アップ・ツリー・ポート（図４、１０１）の２つの信号が、最上位ノード内またはリンク・チップ装置内のいずれかで初期ソフトウェア構成を介して単純に一緒に接続され、本明細書に組み込まれる、本願の譲受人に譲渡された同時係属の米国仮出願番号＿＿＿＿＿＿（ＹＯＲ９２００１０２１１ＵＳ２、Ｄ＃  １５２７５）で説明されているように、トーラスおよびツリー・サブネットワーク分割が可能になる。
【００３１】
図６に、ＡＳＩＣプロセッサが、図４のグローバル・ネットワークでグローバル・バリアをセットするために実施されるステップを示す。図６からわかるように、プロセッサ制御レジスタからの信号６０１が、ＡＳＩＣ内で実施されるタイマ論理回路６０２に入力される。信号６０１は、当初は論理「０」にセットされる。ＣＰＵは、バリア呼出しに入る時に、まず、制御レジスタに論理「１」レベルをセットし、その後、論理「０」に戻す。これによって、信号線６０１上の「０」「１」「０」パルスが生成される。タイマ論理回路６０２に、２つのプログラマブル・ハードウェア・タイマが含まれることが好ましい。タイマ論理回路６０２は、その入力６０１での論理「０」−「１」推移を検出する時に、その出力信号６０３を、レベル「０」から「１」にセットする。タイマ論理回路６０２は、信号６０４すなわち、図５のゲート２０４の出力が、ハイになり、グローバル・バリアの検出が知らされるのを待つ。タイマ論理６０２は、信号６０４がレベル「１」になるのを検出する時に、第１のタイマを始動する。第１のタイマでの時間枠Ｔ１の後に、タイマ論理６０２は、出力信号６０３の「０」への変更を開始し、第２のタイマを始動する。第２のタイマでの時間枠Ｔ２の後に、ＣＰＵが、別のバリア呼出しを開始することができる。
【００３２】
時間Ｔ１は、各ノードがグローバル割込みを検出することを保証するのに必要な持続時間についてセットされることが好ましい。これは、通常は、数システム・クロック・サイクルにすぎない。図５の２０４の出力が入力される割込みレジスタ・ユニットは、「０」から「１」または「１」から「０」の推移を検出し、記憶する（ＣＰＵによってクリアされるまで）という特性を有する。時間Ｔ２は、すべてのノードが前のバリアを終了し、その結果、次のバリアを進行できることを保証するために、非同期グローバル・ネットワークでツリーの最下部から最上部に進み、最下部に戻るラウンド・トリップ時間よりわずかに長いことが好ましい。時間Ｔ１およびＴ２は、バリアがセットされてから検出されるまでの待ち時間に影響せず、この待ち時間は、ネットワーク待ち時間のみによって決定される。
【００３３】
図６に示されたグローバル・バリアの設定に関連して、上の論理レベル「０」および「１」を逆にすることによって、グローバルOR動作がもたらされ、このグローバルOR動作は、（１）グローバルANDの場合にフリップ・フロップ２０１の入力に直接に接続される図４の信号１０６が、反転され、所定のソフトウェア構成を介するグローバルOR動作のために２０１の入力に接続され、最終的な結果は、図５の検出回路の出力６０４が、グローバル・イベント（バリアまたは割込み）が発生する時に必ず「０」から「１」になることであり、（２）グローバルORの場合に、上で説明した２つのタイマが、ローカル・プロセッサがグローバル割込みを設定したか否かに無関係に、グローバル割込みイベントが検出される（６０４が「０」から「１」になる）時から自動的に開始されることを除いて、グローバル割込みに適することを理解されたい。
【００３４】
複数の非同期信号が計算機で実施される場合がある。大量並列分散メモリ・コンピュータでは、４つのそのような信号が実施され、それぞれが、それ自体のアップ・ツリー・ポート、ダウン・ツリー・ポート、およびプロセッサ・インターフェースを備える。実施される信号のそれぞれは、論理レベル信号であり、上で述べたように、グローバルANDまたはグローバルORのいずれかとして機能することができる。各プロセッサが、動作の開始時にその入力１０５をハイ（たとえば論理１）に保つ場合に、任意の１つのノードが、グローバル割込み信号の開始を望む時に、そのノードを、その入力をロウにするように制御することができる。すべてのノードにブロードキャストされる図４のツリーの最上部の最終的なグローバル・シグナルは、その後すぐにロウにトグルされる。これによって、グローバル割込みに適するグローバルOR動作が実施される。その一方で、各プロセッサ１０５が、動作の開始時にその信号をロウ（たとえば論理０）に保つ場合に、上流パスの最上部のルートでの信号は、すべての参加ノードが対応する信号をハイにした後に限ってハイになる。これは、グローバル・バリアに適するグローバルAND機能に対応する。特定の非同期信号の初期状態は、ブート時に、ソフトウェア構成を介して決定される。大量並列分散メモリ・コンピュータでは、４つのグローバル非同期信号のうちで、２つがグローバルAND動作用に実施され、２つがグローバルOR動作用に実施されることが意図されている。
【００３５】
大量並列分散メモリ・コンピュータの例示的実施形態では、ダウン・ツリー・ポートの数が３つであるが、ダウン・ツリー・ポートの数に理論的な限界がないことに留意されたい。所与の計算機サイズに対して、すべてのノードですべてのダウン・ツリー・ポートが使用されるわけではない。すべてのポートを、ソフトウェア・マスクを介して個別に使用不可にすることができる。これは、プロセッサ信号についてもあてはまり、その結果、ノードは、グローバル動作に参加しない（たとえば入出力ノードのプロセッサなど）場合に、その動作に干渉しなくなる。
【００３６】
これらの信号は、非同期に伝搬されるので、ツリーの最下部から最上部に行き、最下部に戻る総ラウンド・トリップ遅延は、ＡＳＩＣの内部ゲート遅延、ノードの間のケーブル遅延、および総ラウンド・トリップに関するホップの総数のみによって決定される。これが非常に速いのは、ツリー構造によって、ホップの総数が減り、ＡＳＣＩ内のゲート遅延が小さい（信号の再キャプチャまたは再同期化を伴わない）からである。この遅延が、たとえば６４ｋノード・システムで数百プロセッサ・サイクルでしかないと推定され、これは、そのような大規模の計算機としては極度に高速である。
【００３７】
最後に、非同期信号がノードのプロセッサに戻る（図４、１０６）時に、この信号をシステム・クロックと同期化する必要がある。これは、図５に示された信号検出論理回路に示されているように、システム・クロック信号２０５によってクロッキングされる直列構成の複数のＤ型フリップ・フロップ２０１から２０３を含む検出回路２００を介して信号を供給することによって実行される。
【００３８】
具体的に言うと、図５からわかるように、非同期グローバル・ツリーからプロセッサに戻る非同期グローバル・シグナル１０６は、サイド・バンド・グローバル・シグナルがグローバルANDとして構成される場合には第１のＤフリップ・フロップ２０１の入力に直接に接続され、サイド・バンド・グローバル・シグナルがグローバルORとして構成される場合には反転された形で接続される。具体的に言うと、異なるフリップ・フロップ２０２および２０３からの出力は、プロセッサの割込みレジスタ２０６に信号を送る前に、論理ゲート２０４によってANDをとられる。この形で、システム・クロックより長いパルス幅を有する信号だけが、検出される。これは、グローバル非同期ネットワーク論理での雑音によって誘導されるグリッチの誤検出を避けるためである。プロセッサの割込みレジスタは、その入力が、たとえば「０」から「１」に変化する時に、マスク可能割込みを生成する。この論理は、グローバル非同期信号のそれぞれについて複製される。
【００３９】
さらに、割込みレジスタ２０６は、論理「０」から論理「１」への推移を検出し、記憶する（クリアされるまで）ことができる。このエッジ・センシティブ割込みユニット２０６は、図６のタイマ論理６０２が、タイムアウト期間の後に信号をデアサートして、次のグローバル・バリアまたはグローバル割込み呼出しに備えることができるようにするのに使用される。
【００４０】
本明細書に組み込まれる、本願の譲受人に譲渡された同時係属の米国仮出願番号＿＿＿＿＿＿（ＹＯＲ９２００１０２１１ＵＳ２、Ｄ＃  １５２７５）に記載のスーパーコンピューティング・アーキテクチャについて、任意のパケットを、割込み要求を付加してグローバル・ツリー・ネットワークに注入することができる。本発明によれば、これの最終的な効果は、パケットまたは、リダクションの場合にパケットから計算された結果を受け取るすべてのノードでのマスク可能割込みを引き起こすことである。リダクション結果は、その結果に寄与する注入されたパケットのいずれかが、割込みを要求した場合に、割込みを引き起こす。
【００４１】
グローバル・コンバイニング・ネットワークでのグローバル・リダクション動作も、グローバル・バリアを暗示する。これは、参加するすべてのノードが対応するオペランドを注入するまで、ネットワークがブロックされるからである。したがって、ソフトウェア・バリアを、グローバル・コンバイニング・ネットワークでのグローバル・リダクションを介して実施することもできるが、待ち時間は、非同期ネットワークより長くなる。この設計でははるかに少ない論理が用いられるので、本発明のグローバル非同期ネットワークは、一般に、より信頼性が高い。
【００４２】
さらに、二重機能グローバル・コンバイニング・ネットワークでのグローバル・ブロードキャストを使用して、すべての受信ノードでの割込みをトリガすることができる。これは、グローバル・コンバイニング・ネットワークを介して実施されるグローバル割込みにつながる。
【００４３】
本明細書に記載のグローバル非同期ネットワークは、グローバル・コンバイニング・ツリー・ネットワーク（図２）に従う非同期サイド・バンド信号およびＡＳＣＩに集積された非同期論理として実施することができるが、この非同期ネットワークを、同期式論理または非同期論理のいずれかを使用して実施できることを理解されたい。この論理は、ＡＳＩＣに集積するか、別々の論理チップとして実施することができ、さらに、特にシステム基板レベルで、厳密にコンバイニング・ネットワークに従う必要はない。しかし、一般に、この非同期ネットワークが、枠箱レベルなど、より高い統合レベルでコンバイニング・ネットワークに従い、その結果、コンバイニング・ネットワークの簡単な分割を実現できることが好ましい。
【００４４】
たとえば、さらに、本発明のグローバル割込みおよびバリア・ネットワークを使用して、並列計算機構造全体にわたってグローバル・クロックを同期化することができる。ノード内部のすべてのＣＰＵが、ローカル時刻を生成する内部タイマを有する。このローカル・クロックを較正する第１ステップは、グローバル割込み（グローバルOR）信号をセットする各ノードから、ツリーの最上部へのラウンド・トリップの後の、そのノードが同一の割込みを受け取るまでのラウンド・トリップ時間を測定することである。図３からわかるように、ルート・ノード６５は、ツリー・ネットワークの最上部にあり、ノード６６は、途中または、図３に示されているように、ツリー・ネットワークの最下部にある。すべての他のノードが遊休である（グローバル割込みを挿入しない）時に、ノード６６が、グローバル割込みをセットし、現在のローカル時刻をＴ１として記録する。割込みが、アップ・ツリーで移動し、その後、ノード６６までダウン・ツリーで移動した時に、ノード６６は、グローバル割込みを受け取った時刻をＴ２として記録する。Ｔ＝Ｔ２−Ｔ１が、ノード６６からツリーの最上部までの総ラウンド・トリップ時間である。このタイミング・ステップは、ノードごとに実行される。すべてのノードを較正したならば、第２ステップは、最上部ノード６５が、そのローカル時刻に０をセットし、その間にグローバル割込みをセットすることである。ノード６６は、グローバル割込みを検出した時に、そのタイマにＴ／２をセットする。他のすべてのノードが、同一のことを行う。このステップが終わったならば、区画内のすべてのノードが、多くとも数クロック・サイクル（たとえば１０サイクル）または数ナノ秒（たとえば１０ナノ秒）以内の非常に高い精度で、クロックをグローバル・クロックに同期化させている。
【００４５】
本発明の例示的な事前に形成された実施形態に関して本発明を具体的に図示し、説明してきたが、形態および詳細における前述および他の変更を、本発明の趣旨および範囲から逸脱せずに行うことができ、本発明の趣旨および範囲が、請求項の範囲のみによって制限されなければならないことを理解されたい。
【図面の簡単な説明】
【００４６】
【図１】３次元トーラスとして編成された大量並列スーパーコンピューティング計算機の小さい部分１０を示す図である。
【図２】本発明による外部ネットワーク接続を含むグローバル・コンバイニング・ツリー・ネットワークを示す図である。
【図３】本発明の原理によるグローバル・コンバイニング・ツリーおよびバリア・ネットワークを示す図である。
【図４】図２のツリー・ネットワークに関連するグローバル・サイド・バンド・ネットワークに関して各ＡＳＩＣで実施される非同期論理１００の概略図である。
【図５】グローバル・シグナルをシステム・クロックと同期化し、キャプチャする信号検出論理回路２００を示す図である。
【図６】図４のグローバル・ネットワークで、グローバル・バリアまたはグローバル割込みをセットするためにＡＳＩＣプロセッサについて実施される論理を示す図である。
【図１】
2004529414.tif 000003
【図２】
2004529414.tif 000004
【図３】
2004529414.tif 000005
【図４】
2004529414.tif 000006
【図５】
2004529414.tif 000007
【図６】
2004529414.tif 000008
【国際公開パンフレット】
2004529414.tif 000009
2004529414.tif 000010
2004529414.tif 000011
2004529414.tif 000012
2004529414.tif 000013
2004529414.tif 000014
2004529414.tif 000015
2004529414.tif 000016
2004529414.tif 000017
2004529414.tif 000018
2004529414.tif 000019
2004529414.tif 000020
2004529414.tif 000021
2004529414.tif 000022
2004529414.tif 000023
2004529414.tif 000024
2004529414.tif 000025
2004529414.tif 000026
2004529414.tif 000027
2004529414.tif 000028
2004529414.tif 000029
2004529414.tif 000030
2004529414.tif 000031
2004529414.tif 000032
2004529414.tif 000033
2004529414.tif 000034
【国際公開パンフレット（コレクトバージョン）】
2004529414.tif 000035
【国際調査報告】
2004529414.tif 000036