(57)【要約】【課題】下げられたコスト、電力、およびフットプリントでテラＯＰＳ以上のスケールのコンピューティングを達成する、大量並列分散メモリ・スケーラブル・コンピュータ・アーキテクチャの新しいクラスを提供すること。【解決手段】新規の数百テラＯＰＳスケールの大量並列スーパーコンピュータに、システムオンチップ技術に基づくノード・アーキテクチャが含まれる、すなわち、各処理ノードに、単一の特定用途向け集積回路（ＡＳＩＣ）が含まれる。各ＡＳＩＣノード内に、複数の処理要素があり、処理要素のそれぞれは、中央処理装置（ＣＰＵ）および複数の浮動小数点プロセッサからなって、計算性能、パッケージ化密度、低コスト、低電力、および低い冷却の要件の最適のバランスが可能になる。単一ノード内の複数のプロセッサを、個別にまたは同時に使用して、任意の時点で解決されるか実行されている特定のアルゴリズムの要求に乗じて計算または通信の任意の組合せを扱うことができる。システムオンチップＡＳＩＣノードは、最適にパケット通信スループットを最大にし、待ち時間を最小にする複数の独立のネットワークによって相互接続される。好ましい実施形態では、複数のネットワークに、並列アルゴリズム・メッセージ受渡のための、グローバル・バリア機能および通知機能を提供するトーラス・ネットワーク、グローバル・ツリー・ネットワーク、およびグローバル非同期ネットワークを含む３つの高速ネットワークが含まれる。これらの複数の独立のネットワークは、アルゴリズム処理性能を最適化するために、アルゴリズムの必要または相に従って、集合的にまたは独立に使用することができる。並列アルゴリズムの特定のクラスまたは並列計算の部分について、このアーキテクチャは、異例の計算性能を示し、新しいクラスの並列アルゴリズムの計算を実行できるようにすることができる。追加のネットワークが、外部接続性のために設けられ、入出力機能と、システム管理および構成機能と、デバッグおよび監視機能に使用される。ミッドプレーンおよび他のハードウェア装置を実施する特殊なノード・パッケージ化技法によって、スーパーコンピューティング・リソースを最適化するための複数のネットワークでのスーパーコンピュータの分割が容易になる。【選択図】図２
2004538548.tif 000002
【特許請求の範囲】
【請求項１】
大量並列コンピューティング構造であって、
複数の独立のネットワークによって相互接続された複数の処理ノードであって、各ノードが、並列アルゴリズム動作を実行する時に必要になる計算アクティビティまたは通信アクティビティを実行する１つまたは複数の処理要素を含む、複数の処理ノード
を含み、前記複数の独立のネットワークが、前記ノードの間またはその独立の分割されたサブセットの間での、ポイントツーポイント通信およびグローバル通信と、グローバル・バリア動作および通知動作とを可能にするネットワークを含み、前記ノードを相互接続する前記複数の独立のネットワークの組合せが、アルゴリズム処理性能を最適化するために、アルゴリズムの帯域幅要件および待ち時間要件に従って協同でまたは独立に使用される
大量並列コンピューティング構造。
【請求項２】
前記複数の独立のネットワークの第１の独立のネットワークが、前記ノードの間またはその独立の分割されたサブセットの間での高速短待ち時間ポイントツーポイント通信およびマルチキャスト通信を提供するために最適化された形で前記ノードを相互接続する通信リンクを含むｎ次元トーラス・ネットワークを含む、請求項１に記載の大量並列コンピューティング構造。
【請求項３】
前記複数の独立のネットワークが、実行されるアルゴリズムの帯域幅要件および待ち時間要件に従って、個々のノードの間およびノードの分割されたサブセットの間での同時のコンピューティング・アクティビティおよびメッセージ通信アクティビティを可能にするために集合的に使用される、請求項２に記載の大量並列コンピューティング構造。
【請求項４】
前記複数の独立のネットワークが、並列アルゴリズムの必要に従って、前記複数のノードの１つまたは複数の分割されたサブセットの間での同時独立並列処理を可能にするために協同で使用される、請求項２に記載の大量並列コンピューティング構造。
【請求項５】
前記複数の独立のネットワークが、アルゴリズムの必要に従って、個々のノードの間でコンピューティング・アクティビティとメッセージ通信アクティビティの間で動的に切り替えられるようにするために、協同で使用される、請求項３に記載の大量並列コンピューティング構造。
【請求項６】
前記第１の独立の独立のネットワークが、スループットおよび待ち時間を最適化するために、ソース・ノードから宛先ノードへの総合接続されたリンクに沿ったパケットのバーチャル・カットスルー（ＶＣＴ）経路指定を可能にする手段を含み、前記ＶＣＴ手段が、ネットワーク・リンクに沿ったパケット経路指定を容易にするために個々のバッファリングされる仮想チャネルを提供する、請求項２に記載の大量並列コンピューティング構造。
【請求項７】
メッセージ・パケットのバーチャル・カットスルーを可能にする前記手段が、ネットワーク・コンテンションを避けるために適応経路指定アルゴリズムを使用する、請求項６に記載の大量並列コンピューティング構造。
【請求項８】
前記第１の独立のネットワークが、並列計算の決定的最短パス経路指定を可能にする手段を含む、請求項２に記載の大量並列コンピューティング構造。
【請求項９】
前記第１の独立のネットワークが、それによってパケットがノードまたはパケット・クラスに従って複数の宛先に投函される、パケットの自動マルチキャストの手段を含む、請求項２に記載の大量並列コンピューティング構造。
【請求項１０】
前記第１の独立のネットワークが、パケットの適応経路指定およびデッドロック・フリーの決定的最小パス経路指定を可能にする組込み仮想ネットワークを含む、請求項２に記載の大量並列コンピューティング構造。
【請求項１１】
前記複数のノードのそれぞれが、経路指定装置を含み、前記第１ネットワークが、ルータの間のパケットの経路指定を制御するトークン・ベースのフロー制御手段を実施する、請求項１０に記載の大量並列コンピューティング構造。
【請求項１２】
前記複数の独立のネットワークの第２の独立のネットワークが、前記ネットワークのノードの間または前記ネットワークのノードのサブセットの間での同時グローバル動作を容易にするノーダル相互接続を含むスケーラブル・グローバル・ツリー・ネットワークを含む、請求項２に記載の大量並列コンピューティング構造。
【請求項１３】
前記グローバル動作が、前記ツリー・ネットワークの葉ノードまたはそのサブツリー・ネットワークの葉ノードへのルート・ノードからの下流ブロードキャストのための前記ツリーの任意のノードで開始されるグローバル・ブロードキャスト動作と、上流へ、ノードから各ツリー・ネットワークまたは各サブツリー・ネットワークの前記ルート・ノードに向かうグローバル・リダクション動作とを含む、請求項１２に記載の大量並列コンピューティング構造。
【請求項１４】
複数のツリー・ネットワークまたは複数の部分ツリー・ネットワークの前記ルート・ノードが、他のネットワークで実行される処理と独立にそのツリー・ネットワークの高速入出力動作を実行するために入出力ノードと結合される、請求項１２に記載の大量並列コンピューティング構造。
【請求項１５】
各前記グローバル・ツリー・ネットワークのノードの間のポイントツーポイント・メッセージングおよびサブツリー・メッセージングを可能にするプログラマブル手段をさらに含み、各ノードが、ホスト・システムがすべてのノードに直接に通信できるようにする、それに関連する一意のアドレスを有する、請求項１４に記載の大量並列コンピューティング構造。
【請求項１６】
関連する前記一意のアドレスが、コンピューティング構造内のノードのエンコードされた幾何学的位置を含む、請求項１５に記載の大量並列コンピューティング構造。
【請求項１７】
ノードのサブセットに対するサービス・ノードの比率が、前記コンピューティング構造の最適化されたパッケージ化および利用を可能にするために構成可能である、請求項１２に記載の大量並列コンピューティング構造。
【請求項１８】
前記複数の独立のネットワークの第３の独立のネットワークが、非同期グローバル動作を可能にするグローバル・シグナル・ネットワークを含む、請求項２に記載の大量並列コンピューティング構造。
【請求項１９】
前記非同期グローバル動作が、グローバル・バリア動作を可能にするグローバル論理ＡＮＤ機能性の実施を含む、請求項１８に記載の大量並列コンピューティング構造。
【請求項２０】
前記非同期グローバル・シグナル動作が、グローバル通知動作をイネーブルするグローバル論理ＯＲ機能性の実施を含む、請求項２に記載の大量並列コンピューティング構造。
【請求項２１】
前記複数の独立のネットワークの第４の独立のネットワークが、各入出力ノードを外部ホスト・システムに接続する外部高速ネットワークを含む、請求項１４に記載の大量並列コンピューティング構造。
【請求項２２】
前記外部高速ネットワークが、ギガビット・イーサネット（Ｒ）である、請求項２１に記載の大量並列コンピューティング構造。
【請求項２３】
前記複数の独立のネットワークの第５の独立のネットワークが、前記コンピューティング構造内のすべてのノードまたはノードのサブセットに関する低水準のデバッグ機能、診断機能、および構成機能を提供する独立のネットワークを含む、請求項２に記載の大量並列コンピューティング構造。
【請求項２４】
ノードの内部処理要素の前記低水準のデバッグおよび検査を、前記第５のネットワークを介して、そのノードで実行されるソフトウェアから透過的に行うことができる、請求項２３に記載の大量並列コンピューティング構造。
【請求項２５】
前記第５のネットワークが、ＩＥＥＥ  １１４９（ＪＴＡＧ）ネットワークを含む、請求項２３に記載の大量並列コンピューティング構造。
【請求項２６】
前記複数の独立のネットワークの第６の独立のネットワークが、個々のノードに診断機能性および制御機能性を提供する独立の制御ネットワークを含む、請求項１５に記載の大量並列コンピューティング構造。
【請求項２７】
各ノードが、複数の処理要素を含み、前記処理要素のそれぞれが、特定のクラスの並列アルゴリズムを実行する時に必要な、計算アクティビティまたは通信アクティビティの任意の組合せを個別にまたは同時に操作することができる、請求項１に記載の大量並列コンピューティング構造。
【請求項２８】
前記処理要素のそれぞれの間での計算アクティビティまたは通信アクティビティのすばやいシフトを可能にする手段をさらに含む、請求項２７に記載の大量並列コンピューティング構造。
【請求項２９】
各処理要素が、中央処理装置（ＣＰＵ）および１つまたは複数の浮動小数点処理ユニットを含み、前記ノードが、ローカル組込み複数レベル・キャッシュ・メモリと、上位レベル・キャッシュのためのデータの事前取出しのために下位レベル・キャッシュに組み込まれるプログラマブル事前取出しエンジンとをさらに含む、請求項２８に記載の大量並列コンピューティング構造。
【請求項３０】
各ノードが、高いパッケージ化密度を可能にし、電力利用要件および冷却要件を減らす、システムオンチップ特定用途向け集積回路（ＡＳＩＣ）を含む、請求項１に記載の大量並列コンピューティング構造。
【請求項３１】
前記コンピューティング構造が、回路カード上でパッケージ化される所定の複数のＡＳＩＣノードを含み、複数の回路カードが、前記コンピューティング構造内でパッケージ化される個々のミッドプレーン・ユニット上で構成される、請求項１に記載の大量並列コンピューティング構造。
【請求項３２】
回路カードが、サブキューブまたは長方形として論理的に接続されるノードを含むように編成される、請求項３１に記載の大量並列コンピューティング構造。
【請求項３３】
処理される並列アルゴリズムの帯域幅要件および待ち時間要件に従って、前記ノードの間の独立の処理を可能にするさまざまな論理ネットワーク構成に従って、ノードのサブセットを分割する手段をさらに含む、請求項３１に記載の大量並列コンピューティング構造。
【請求項３４】
前記分割手段が、異なるミッドプレーンを相互接続する導体上で信号を再駆動し、スーパーコンピューティング・システムを複数の論理的に分離されたシステムに分割できるようにするために異なるポートの間で信号をリダイレクトする、リンク装置を含む、請求項３３に記載の大量並列コンピューティング構造。
【請求項３５】
残りのシステム動作に干渉せずに故障していると判定されたミッドプレーンをサービスするために、前記ミッドプレーンを避けて通信アクティビティおよびコンピューティング・アクティビティをマッピングするために前記リンク装置をプログラムする手段をさらに含む、請求項３４に記載の大量並列コンピューティング構造。
【請求項３６】
前記複数の独立のネットワークの１つが、前記分割をプログラムするために前記リンク装置を制御する独立の制御ネットワークを含む、請求項３４に記載の大量並列コンピューティング構造。
【請求項３７】
ミッドプレーン・ユニットのすべての回路カードに最小限のジッタでクロック信号を供給するクロック分配システムをさらに含む、請求項３１に記載の大量並列コンピューティング構造。
【請求項３８】
前記クロック分配システムが、前記コンピューティング構造およびそのネットワーク化された区画のすべてのノードへの同相のクロック分配を可能にする同調可能再駆動信号を使用する、請求項３７に記載の大量並列コンピューティング構造。
【請求項３９】
両方向で同時に信号を搬送するために、前記処理ノードを相互接続する高速両方向シリアル・リンクをさらに含む、請求項１に記載の大量並列コンピューティング構造。
【請求項４０】
各ノードＡＳＩＣが、前記処理ユニットのボトルネックを防ぐためのロック交換用に構成された前記処理ユニットによってアクセス可能なメモリ内の共用リソースをさらに含む、請求項３０に記載の大量並列コンピューティング構造。
【請求項４１】
通信される各パケットが、情報を担持する１つまたは複数のフィールドを含むヘッダを含み、１つの前記フィールドが、改善されたビットシリアル・ネットワーク通信用のエラー訂正能力を含む、請求項６に記載の大量並列コンピューティング構造。
【請求項４２】
前記パケット・ヘッダの１つの前記フィールドが、前記ネットワーク内のノードでのパケットの経路指定に関する可能な出力方向を表す定義された数のビットを含み、前記ビットが、ネットワーク・コンテンションを減らすために、パケットが、ノード宛先に達するために対応する方向に進む必要があることを示す、請求項４１に記載の大量並列コンピューティング構造。
【請求項４３】
データ・ストリームと共にクロック信号を送らずに、非同期データ・ストリームの最適なサンプリングおよびキャプチャを可能にする、前記リンクを介して送られるデータをキャプチャする手段をさらに実施する、請求項３９に記載の大量並列コンピューティング構造。
【請求項４４】
スケーラブル大量並列コンピューティング構造であって、
独立のネットワークによって相互接続された複数の処理ノードであって、各ノードが、並列アルゴリズム動作を実行する時に必要な計算アクティビティまたは通信アクティビティを実行する１つまたは複数の処理要素を含む、複数の処理ノードと、
第１の独立のネットワークであって、前記ネットワークの前記ノードの間またはノードのサブセットの間での高速短待ち時間のポイントツーポイント通信およびマルチキャスト・パケット通信を提供するために最適化された形で前記ノードを相互接続する通信リンクを含むｎ次元トーラス・ネットワークを含む第１の独立のネットワークと
を含み、複数の独立のネットワークの第２のネットワークが、前記ネットワークのノードの間またはノードのサブセットの間での同時グローバル動作を容易にするノーダル相互接続を含むスケーラブル・グローバル・ツリー・ネットワークを含み、前記スケーラブル大量並列コンピューティング構造が、
１つまたは複数のアルゴリズムの必要に従って独立の処理ネットワークの１つまたは複数の組合せを動的に構成する分割手段であって、各独立のネットワークが、前記第１のネットワークおよび前記第２のネットワークの分割可能な部分によって相互接続される処理ノードの構成可能なサブセットを含む、分割手段と
を含み、前記構成された独立の処理ネットワークのそれぞれが、アルゴリズム処理性能を最適化するために同時協力処理を可能にするのに使用される
スケーラブル大量並列コンピューティング構造。
【請求項４５】
前記複数の独立のネットワークの第３の独立のネットワークが、前記ネットワークのノードの間またはノードのサブセットの間での非同期グローバル動作を可能にするためのノーダル相互接続を含むスケーラブル・グローバル・シグナル・ネットワークを含む、請求項４４に記載のスケーラブル大量並列コンピューティング構造。
【請求項４６】
各ノードが、２つの処理要素を含むシステムオンチップ特定用途向け集積回路（ＡＳＩＣ）を含み、各処理要素が、特定のクラスのアルゴリズムを実行する時に必要になる、計算アクティビティまたは通信アクティビティあるいはその両方の任意の組合せを個別にまたは同時に操作することができる、請求項４４に記載のスケーラブル大量並列コンピューティング構造。
【請求項４７】
特定のクラスのアルゴリズムを実行する時に１つまたは複数の構成された独立の処理ネットワークの間で処理を切り替えられるようにする手段をさらに含む、請求項４４に記載のスケーラブル大量並列コンピューティング構造。
【請求項４８】
複数の独立のネットワークによって相互接続された複数の処理ノードを含む大量並列コンピューティング構造において、
それぞれが計算動作またはメッセージ受渡動作を実行できる複数の処理要素を含むシステムオンチップ特定用途向け集積回路（ＡＳＩＣ）と、
各前記処理要素での処理アクティビティおよびメッセージ受渡アクティビティのすばやい調整を可能にする手段であって、処理要素の１つまたは両方が、特定のクラスのアルゴリズムを実行する時に必要になる、前記ネットワークの他のノードとの通信のメッセージ受渡アクティビティを実行する間に、処理要素の他方または両方が、アルゴリズムによって必要とされる計算を実行する、手段と
を含む各処理ノード。
【請求項４９】
スケーラブル大量並列コンピューティング・システムであって、
トーラス・ネットワークを形成するためにリンクによって相互接続された複数の処理ノードであって、各処理ノードが、すべての隣接する処理ノードへのリンクを含む複数のリンクによって接続される、複数の処理ノードと、
グローバル・コンバイニング・ツリーと、割込み信号を含むグローバル・シグナルを通信する類似するコンバイニング・ツリーとを形成するために前記処理ノードを相互接続する通信リンクと、
前記トーラス・ネットワークおよびグローバル・ツリー・ネットワークからの信号と前記グローバル割込み信号とを受け取り、コンピューティング・システムを複数の論理的に別のコンピューティング・システムに分割できるようにするためにリンク手段の異なる部分の間で前記信号をリダイレクトする、リンク手段と
を含む、スケーラブル大量並列コンピューティング・システム。
【請求項５０】
リンク手段が、信号の高速形状および振幅を改善するために、複数の処理ノードを含むミッドプレーン装置の間のケーブル上の信号を再駆動する機能を提供する、請求項４９に記載の大量並列コンピューティング・システム。
【請求項５１】
リンク手段が、コンピューティング・システムの定義された軸に沿った１つの論理方向から１つのミッドプレーンを除去する第１のタイプの信号リダイレクションと、コンピューティング・システムを２つの半分または４つの１／４に分割できるようにする第２のタイプの信号リダイレクションとを実行する、請求項４９に記載の大量並列コンピューティング・システム。
【請求項５２】
大量並列コンピューティング・システムであって、
独立のネットワークによって総合接続された複数の処理ノードであって、各処理ノードが、それぞれが計算動作またはメッセージ受渡動作を実行できる複数の処理要素を含むシステムオンチップ特定用途向け集積回路（ＡＳＩＣ）を含む、複数の処理ノードと、
前記ネットワークの前記ノードの間またはノードのサブセットの間での高速短待ち時間ポイントツーポイント通信およびマルチキャスト・パケット通信を提供するために最適化された形で前記ノードを相互接続する通信リンクを含むｎ次元トーラス・ネットワークを含む第１の独立のネットワークと
を含み、前記複数の独立のネットワークの第２のネットワークが、前記ネットワークのノードの間またはノードのサブセットの間での同時グローバル動作を容易にするノーダル相互接続を含むスケーラブル・グローバル・ツリー・ネットワークを含み、前記大量並列コンピューティング・システムが、
１つまたは複数のアルゴリズムの必要に従って独立の処理ネットワークの１つまたは複数の組合せを動的に構成する分割手段であって、各独立のネットワークが、前記第１のネットワークおよび前記第２のネットワークの分割可能な部分によって相互接続される処理ノードの構成されたサブセットを含む、分割手段と
各独立の処理ネットワーク内の各前記処理要素で処理アクティビティおよびメッセージ受渡アクティビティのすばやい調整を可能にする手段であって、処理要素の１つまたは両方が、特定のクラスのアルゴリズムを実行する時に必要になる、前記ネットワークの他のノードとの通信のメッセージ受渡アクティビティを実行する間に、処理要素の他方または両方が、アルゴリズムによって必要とされる計算を実行する、手段と
を含み、前記構成された独立の処理ネットワークおよびそのノード処理要素のそれぞれが、アルゴリズム処理性能を最適化する協同処理を可能にするために動的に使用される
大量並列コンピューティング・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にはスーパーコンピュータのシステムおよびアーキテクチャの分野に関し、具体的には、新規の大量並列スーパーコンピュータに関する。
【背景技術】
【０００２】
大量並列コンピューティング構造（「ウルトラスケール・コンピュータ」または「スーパーコンピュータ」とも称する）では、一般に、グリッド構成、格子構成、またはトーラス構成などの非常に規則的な構造の形で多数の計算ノードが相互接続される。最もコスト／効率的なウルトラスケール・コンピュータの従来の手法は、単一プロセッサ構成または対称マルチプロセッサ（ＳＭＰ）構成で構成された標準プロセッサを使用することであり、ここで、ＳＭＰは、ネットワークを用いて相互接続されて、メッセージ受渡通信をサポートする。現在、これらのスーパーコンピューティング計算機は、ギガＯＰＳスケールを達成するコンピューティング性能を示す。しかし、ウルトラスケール・コンピュータを構成するＳＭＰ手法の現在の集団に関するコンピュータ業界の長年存在する２つの問題は、（１）プロセッサとメモリの間のクロック単位で測定される距離の増加と、（２）主流派の単一プロセッサまたは対称プロセッサ（ＳＭＰ）から作られる並列コンピュータの高い電力密度である。
【０００３】
第１の問題では、メモリへの距離の問題（待ち時間と帯域幅メトリックの両方によって測定される）は、コンピュータ設計者が直面する主要な問題である。というのは、これが、毎年のメモリ速度の増加および通信帯域幅の増加の割合をはるかに超える割合で性能が高まるマイクロプロセッサの問題に対処するからである。メモリ階層（キャッシュ）および待ち時間隠蔽の技法によって、例示的な解決策が提供されるが、これらの方法は、アプリケーション・プログラマが、よい効率を達成する（すなわち、命令パイプライン・バブルを最小にする）ために非常に規則的なプログラムおよびメモリ参照パターンを使用することを必要とする。したがって、この技法は、現代のアプリケーション技法（たとえば、構造化されないメッシュおよびオブジェクト指向プログラミングに関する複雑なデータ構造）に適していない。第２の問題では、より高い電力密度が、そのようなギガＯＰＳスケール・コンピュータの高いコストおよび機器要件（電源、冷却、およびフロア・スペース）に関連する。
【０００４】
プロセッサ・サイクル単位で測定されるメモリへの待ち時間を、少なくとも１桁減らし、削減されたコスト、電力、およびフットプリントでテラＯＰＳスケールでの大量並列コンピューティングを最適化する、ウルトラスケール・スーパーコンピューティング・アーキテクチャを提供することが、非常に望ましい。
【０００５】
多数のプロセッサを単一のＡＳＩＣに集積できるコンピューティング・モデルを可能にするＶＬＳＩの技術的進歩を活用するウルトラスケール・スーパーコンピューティング・アーキテクチャを提供することが、非常に望ましい。
【０００６】
さまざまなスケーラビリティのレベルを最適に達成するための処理ノードの独自の相互接続を含むウルトラスケール・スーパーコンピューティング・アーキテクチャを提供することが、非常に望ましい。
【０００７】
グローバル・リダクションの計算、データの分配、同期化、および限られたリソースの共用を効率的に信頼性のある形で実行するように最適化された処理ノードの独自の相互接続を含むウルトラスケール・スーパーコンピューティング・アーキテクチャを提供することが、非常に望ましい。
【非特許文献１】
P. Kermani、L. Kleinrock、「VirtualCut-Through: A New Computer Communication Switching Technique」、ComputerNetworks、Vol. 3, pp. 267-286、1979年
【非特許文献２】
William J. Dally、Larry R. Dennison、DavidHarris、Kinhong Kan、Thucydides Xanthoppulos、「Architecture and Implementation ofthe Reliable Router」、Proceedings of HOT Interconnects II、pp. 122-133、1994年８月
【非特許文献３】
Jose Duato、「A New Theory of Deadlock-FreeAdaptive Routing in Wormhole Networks」、IEEE Transactions on Parallel andDistributed Systems、 Vol. 4、No. 12、pp. 1320-1331、1993年１２月
【非特許文献４】
Steven L. Scott、Gregory M. Thorson、「TheCray T3E Network: Adaptive Routing in a High Performance 3D Torus」、InProceedings of HOT Interconnects IV、1996年８月
【非特許文献５】
C. Carrion、R. Beivide、J.A. Gregorio、F.Vallejo、「A Flow Control Mechanisn to Avoid Message Deadlock in k-ary n-cubeNetworks」、Proceedings of the Fourth International Conference on HighPerformance Computing、pp. 322-329、1997年１２月
【非特許文献６】
W.J. Dally、C. Seitz、「Deadlock-FreeMessage Routing in Multiprocessor Interconnection Networks」、IEEE Transactionson Computers、pp. 547-553、1987年５月
【非特許文献７】
Kevin Lamb、Larry R. Dennison、WilliamJ. Dally、「Simultaneous Bidirectional Signaling for IC Systems」、Proceedings ICCDConference、pp. 430-433、1990年１０月
【非特許文献８】
Matthew Haycock、Randy Mooney、「A 2.5Bb/s Bidirectional Signaling Technology」、Hot Interconnects V Proceedings、pp.149-156、1997年８月
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、下げられたコスト、電力、およびフットプリントでテラＯＰＳ以上のスケールのコンピューティングを達成する、大量並列分散メモリ・スケーラブル・コンピュータ・アーキテクチャの新しいクラスを提供することである。
【０００９】
本発明のもう１つの目的は、相互接続の観点から処理ノードの最大限のパッキング密度を可能にする、テラＯＰＳのスケールのコンピューティングを達成する、大量並列分散メモリ・スケーラブル・コンピュータの新しいクラスを提供することである。
【００１０】
本発明のもう１つの目的は、多数のプロセッサを単一のＡＳＩＣに集積できるコンピューティング・モデルを可能にするＶＬＳＩの技術的進歩を活用するウルトラスケール・スーパーコンピューティング・アーキテクチャを提供することである。大規模サーバについて期待される信頼性、可用性、および保守性というシステム属性を有しながら、最小限の電力消費のために最適化され、現在のアーキテクチャから達成可能なものより優れた価格性能比を達成できる、単純な処理コアが使用されることが好ましい。具体的に言うと、各コンピューティング・ノードに、１つのダイに集積された複数のプロセッサを使用するシステムオンチップＡＳＩＣが含まれ、各プロセッサは、すべてのシステム・リソースに完全にアクセスできる。単一ダイの多数のプロセッサによって、プロセッサの適応分割が可能になって、アプリケーションごとに計算またはメッセージング入出力などとして機能し、好ましくは、アプリケーション内のさまざまなアルゴリズム相による機能の適応分割を可能にされるか、入出力プロセッサまたは他のプロセッサがあまり利用されていない場合に、計算または通信に参加することができる。
【００１１】
本発明のもう１つの目的は、複数のネットワーク相互接続パラダイムを組み込んだウルトラスケール・スーパーコンピューティング・アーキテクチャを提供することである。このパラダイムに、３次元トーラス・ネットワーク、グローバル・ツリー・ネットワーク、およびグローバル非同期信号ネットワークが含まれることが好ましい。このアーキテクチャを用いると、並列処理メッセージ受渡アルゴリズムが、これらの相互接続を個別にまたは同時に活用できるようになり、相互接続の単一のパラダイムを用いては達成不能な性能レベルがもたらされる。追加の協同が、これらの相互接続のいずれかまたはすべてに同時にアクセスでき、各相互接続をピーク容量で活用する、各ノード内の複数の処理要素の同時使用から派生する。
【００１２】
本発明のもう１つの目的は、任意のノードが高帯域幅短待ち時間で他のすべてのノードにブロードキャストし、実行し、グローバル・リダクション動作を実行する能力を含む短待ち時間グローバル通信機能性を有する大量並列分散メモリ・スケーラブル・コンピュータ・アーキテクチャの新しいクラスを提供することである。そのようなグローバル通信機能性は、グローバル加算演算またはグローバル最大値演算、および集合演算などの単純な算術機能のほかに、グローバル「ｏｒ」演算またはグローバル「ａｎｄ」演算を含むアプリケーションのクラスに有益である。
【００１３】
本発明の追加の目的は、ウルトラスケール・スケーラブル・コンピュータ・アーキテクチャにおいて、大量並列処理技術で新しい新規の技法およびアルゴリズムを実行できるようにする鍵となる協同を提供することである。
【００１４】
本発明のもう１つの目的は、グローバル集団演算およびファイルシステム入出力の両方を行うためにツリー相互接続として配置された単一の物理ネットワークを提供することであり、ここで、両方のタイプの通信が、ネットワークのコストを共用するために搬送される。ツリー・ネットワークでは、追加的に入出力動作と集合トラフィックがトーラスから分離され、アプリケーションに任意の数の入出力サービス・ノードを接続する手段が提供されることが好ましい。これらの入出力ノードは、物理的および論理的にトーラスの外にあるので、アプリケーションは、トーラス・ノードの性能のバランスをくずさずに、入出力および外部対話を実行することができる。これは、かなり強化されたスケーラビリティにつながる。というのは、トーラス・ノードのすべてが、予測可能で反復可能な性能を示すが、入出力ノードが、非同期で予測不能な外部対話のすべての重荷を引き受けるからである。
【００１５】
さらに、これらの技法では、それぞれがより大きい計算機の特徴のすべてを保持する、柔軟に構成可能な個数のより小さい独立の並列コンピュータへの大量並列スーパーコンピュータの分割も提供される。このスーパーコンピュータの並々ならぬスケールを与えられれば、この分割技法によって、故障したラックまたはラックの部分（本明細書では「ミッドプレーン」と称する）を透過的に除去するか、それを避けてマッピングする能力が提供され、したがって、システムの残りの構成要素に干渉せずに、これらをサービスすることができる。
【００１６】
本発明のもう１つの目的は、物理位置を介するイーサネット（Ｒ）・アドレッシングおよびイーサネット（Ｒ）へのＪＴＡＧインターフェースなどの保守性を追加することである。
【課題を解決するための手段】
【００１７】
本発明の１態様によれば、スケーラブル大量並列スーパーコンピュータであって、複数の独立ネットワークによってｎ次元で相互接続された複数の処理ノードであって、各ノードが、並列アルゴリズム動作を実行する時に必要な計算アクティビティまたは通信アクティビティを実行する１つまたは複数の処理要素を含む、複数の処理ノードと、独立の分割されたノードのサブセットのノードの間でポイントツーポイント通信およびグローバル・ツリー通信を使用可能にするネットワークを含む複数の独立ネットワークであって、前記ノードを相互接続する前記複数の独立ネットワークの組合せが、並列アルゴリズム処理性能を最適化するために並列アルゴリズムの帯域幅要件および待ち時間要件に従って協同してまたは独立に使用される、複数の独立ネットワークとを含むスケーラブル大量並列スーパーコンピュータが提供される。
【００１８】
好ましい実施形態では、ノード・アーキテクチャが、システムオンチップ（ＳＯＣ）技術に基づき、ここで、基本構成要素は、単一の特定用途向け集積回路（ＡＳＩＣ）を含む完全な処理「ノード」である。集約される時に、これらの処理ノードのそれぞれを、「セル」と称し、複数の同一のセルから構成される大量並列計算機のこの新しいクラスを、「セルラ」コンピュータとして定義できるようになる。各ノードに、複数（たとえば２つ以上）の処理要素が含まれ、各処理要素に、中央処理装置（ＣＰＵ）、複数の浮動小数点プロセッサ、および複数のネットワーク・インターフェースが含まれる。これらの複数の処理要素の間の高速低オーバーヘッド調整のために、新規の「ロックボックス」が提供されるのが好ましい。
【００１９】
・ノードのＳＯＣ  ＡＳＩＣ設計によって、計算性能、パッケージ化密度、低コスト、電力、および冷却の要件の最適なバランスが可能になる。さらに、ノードのＳＯＣ  ＡＳＩＣ設計によって、新規のパッケージ化技術に関する先例のないレベルまでのスケーラビリティが可能になる。システムオンチップ・レベル集積によって、各ノードに関連するローカル・メイン・ストアを含むすべてのレベルのメモリへの短待ち時間が可能になり、これによって、従来のスーパーコンピュータ・システムにますます影響する性能ボトルネックが克服される。各ノード内では、複数の処理要素のそれぞれを、個別にまたは同時に使用して、任意の時点で解決されるか実行される特定のアルゴリズムによる必要に応じて、計算または通信の任意の組合せを処理することができる。
【００２０】
・動作の例のモードでは、処理要素の１つが、アルゴリズムが必要とする計算を実行すると同時に、他の処理要素が、通信アクティビティを実行する。これによって、処理要素の１つの計算能力を使用して、複雑なメッセージ・マッチング・プロトコルをオフロードすると同時に、他の処理要素が独立に計算を継続することができる。しばしばメッセージング・プロトコルの複雑な形に関して、しばしば「リダクション機能」と称する特定の算術機能を、メッセージ・データの到着時にそのメッセージ・データに対して呼び出す必要がある。１つのプロセッサである入出力プロセッサを実施して、第２の計算プロセッサを転ずることなく、これらの機能を実行することができる。さらに、入出力プロセッサの計算能力のゆえに、アプリケーションは、高められた計算能力を通信アクティビティに関連付ける新しいアルゴリズム開発をサポートする、任意の複雑なリダクション機能を定義することができる。並列アルゴリズムの特定のクラスまたは並列計算の部分に関して、このアーキテクチャで、両方の処理要素の力を適用して、通信アクティビティに対して協同で作業することができる。たとえば、大量のデータの交換が必要な期間中に、処理要素の１つがデータを送信しており、他の処理要素がデータを受信している可能性がある。並列アルゴリズムの特定のクラスまたは並列計算の部分に関して、このアーキテクチャでは、期待される計算性能の約２倍を実現することができる。このアーキテクチャを用いると、複数のネットワークを同時に、独立に、または協同で使用することができる。システムオンチップ・レベルの集積のゆえに、このアーキテクチャを活用するように設計されたオペレーティング・システム・ソフトウェアと協同して、そのような動作のモードの間の交換を、最小限のオーバーヘッドで行うことができる。計算がメッセージ到着を待っている場合に、これを自動的に行うことができる。
【００２１】
・複数のネットワーク・パラダイムが、個別にまたは同時に使用されるノードを相互接続するために実施され、このネットワーク・パラダイムには、並列アルゴリズム・メッセージ受渡用の３つの高速ネットワークが含まれる。追加のネットワークが、スーパーコンピュータ・ノードの、入出力サービスと、システム管理および構成サービスと、デバッグおよび監視サービスに使用される外部接続性のために設けられる。高速ネットワークに、ｎ次元トーラス構成、グローバル・ツリー構成、およびグローバル・シグナル構成が含まれることが好ましい。これらのネットワークのそれぞれの使用を、アルゴリズムの必要またはアルゴリズムの相に基づいて切り替えることができる。たとえば、計算の諸部分を、トーラスでまたはグローバル・ツリーの一部で実行することができ、これによって、複数のネットワークを新規の形で同時に使用する新しい並列アルゴリズムの開発が容易になる。
【００２２】
・トーラス・ネットワークに関して、立方体または長方形の通信および分割をサポートする３次元設計であることが好ましい。３次元設計を用いると、多数の物理的現象の計算シミュレーションのトーラス・ネットワークへの直接マッピングが可能になる。しかし、より高い次元数すなわち、４、５、または６次元トロイドを用いると、より多くのチップ対チップ接続およびかなり高い配線コストと引き換えに、より短くより短待ち時間のパスが可能になる。より低い次元は、より長い待ち時間とより少ないチップ対チップ通信をもたらす。
【００２３】
さらにバーチャル・カットスルー（Virtual Cut-Through、ＶＣＴ）パケットに基づく交換網を使用する最小パス適応ルーティング（Minimal-PathAdaptive-Routing）によって、ネットワーク輻輳のすべての点を避ける自動的な経路指定による持続的な高帯域幅がもたらされる。さらに、それから利益を得る並列計算の決定的最短パス経路または高優先順位メッセージがもたらされる。
【００２４】
・さらに、トーラスは、ネットワークに注入された単一のパケットを複数の宛先に投函することができる、「クラス経路指定」技法を使用する自動マルチキャストを提供する。ネットワークは、２つの動的バーチャル・サーキットおよび２つのデッドロック回避用のエスケープ「バブル」サーキット（escape "Bubble" circuit)を使用することによってデッドロック・フリーであることが好ましい。トーラス・ネットワークは、新規のアービトレーション・ポリシを使用して、大量スケーラブル・システムでの短待ち時間および高スループットを達成する。ポイントツーポイント・トークン・ベース・フロー制御によって、ネットワーク・バッファリングが最も有効に使用されると同時に、トラフィックがホット・スポットから分散される。パケットの保証された信頼性のある送達は、さらに、ヘッダに対する別のＣＲＣエラー検出と、破壊されたネットワーク・パケットの自動再送信用の完全なパケットＣＲＣエラー検出を使用することによって、トーラス内で使用可能にされる。
【００２５】
・グローバル・ツリー・ネットワークに関して、主要な機能性の１つが、グローバル・ブロードキャスト（ダウンツリー）動作およびグローバル・リデュース（global reduce）（アップツリー）動作をサポートすることである。追加の機能性を提供して、入出力、プログラム・ロード、システム管理、並列ジョブ監視、およびデバッグに使用されるプログラマブル・ポイントツーポイント・メッセージングまたはサブツリー・メッセージングをサポートする。この機能性によって、並列計算に干渉しないように、「サービス」ノードまたは入出力ノードをトーラスから分離できるようになる。すなわち、トーラス内のすべてのノードが、最大の計算速度で動作できると同時に、サービス・ノードが、非同期外部対話をオフロードする。これによって、計算動作を実行するすべてのノードが、最大の一貫した速度で動作するので、並列計算のスケーラビリティおよび反復可能度が保証される。グローバル・ツリーが、リダクション・メッセージング動作を実施する数学関数の実行をサポートすることが好ましい。グローバル・ツリー・ネットワークが、さらに、複数の独立の仮想チャネルをサポートし、複数の独立のグローバル動作を同時に進行できることが好ましい。この設計は、構成可能であり、サービス・ノードに対する計算ノードの比率は、並列計算の要件に応じて柔軟である。代替パッケージ化戦略を用いると、極端にデータ集中型の計算に理想的であるように、すべてサービス・ノードまたはすべて入出力ノードから構成される計算機を含むすべての比率が可能になる。
【００２６】
・第３のネットワークに、グローバル論理「ＡＮＤ」機能性またはグローバル論理「ＯＲ」機能性を提供するために複数の非同期「シグナル」の通信をサポートするグローバル・シグナル・ネットワークが含まれる。この機能性は、たとえば、区画内のすべてのノードが、計算の特定の点または並列アルゴリズムの相に到達したことをすべてのノードに示すグローバル・バリア動作（「ＡＮＤ」）と、たとえば区画内の１つまたは複数のノードが特定の状態または条件に達したことをすべてのノードに示すグローバル通知（「ＯＲ」）機能性を提供するために、特に設けられる。このネットワーク・タイプを使用することによって、新規の並列アルゴリズム、調整、およびシステム管理の技術が可能になる。
【００２７】
・さらなる独立のネットワークに、外部サーバおよびホスト・コンピュータへのサービス・ノードまたは入出力ノードの接続を提供する外部入出力ネットワーク（ギガビット・イーサネット（Ｒ）など）と、計算機全体のすべてのノードに関する完全な低水準のデバッグ、診断、および構成の機能を提供し、独立のホスト計算機からリモートで実行することができるＩＥＥＥ  １１４９．１  Joint Test Access Group（ＪＴＡＧ）ネットワークが含まれる。ＪＴＡＧネットワークの使用が、並列計算機のノードで実行されるソフトウェアの協力と共にまたはそれなしで動作することが好ましい。ネットワークが、計算機内のすべてのノードまたはノードのサブセットを同時にアドレッシングする能力を提供するので、ノードは、それが実行できる任意のソフトウェアに対して透過的にデバッグまたは検査することができる。この診断およびデバッグのレベルは、ハードウェアおよびソフトウェアの両方の膨大なレベルのスケーラビリティに関する実現技術である。
【００２８】
・新規のパッケージ化技術が、複数ネットワーク構成および複数プロセッサ構成を可能にする先例のないレベルのスケーラビリティを可能にするスーパーコンピューティング・システムに使用される。一実施形態では、複数の計算ノードおよび外部入出力ネットワークが可能にされる任意選択の入出力ノードを含む複数ノード「ノード・カード」が提供される。この形で、外部入出力ノードに対する計算ノードの比率を、所望の数の入出力ノードを有するユニットを「ミッドプレーン」ユニットに移植することによって、柔軟に選択することができる。高速シリアル・シグナリングが、新規の適応低電力データ・キャプチャ技法を使用して行われる。このパッケージ化技術によって、複数のサブネットワーク分割可能性が可能になり、複数の独立の問題に対する同時作業が可能になる。したがって、他の区画に干渉しない、より小さい開発区画、テスト区画、およびデバッグ区画を生成することができる。
【００２９】
・ミッドプレーンとラックの間の接続は、分割に基づいて動作可能になるように選択される。セグメント化によって、さらに、分離された区画が作成され、これらの区画のそれぞれが、すべての相互接続のすべての機能を維持し、予測可能で反復可能なパフォーマンスが提供される。これによって、同一のサイズおよび形状のすべての区画で有効なままである、微細な粒度のアプリケーション・パフォーマンス・チューニングおよびロード・バランシングが可能になる。極度に微妙なエラーまたは問題にであう場合に、この分割アーキテクチャによって、大スケール並列アプリケーションの正確な反復可能度が可能になる。本発明によって可能にされる分割可能性によって、ネットワーク構成を考案して、スーパーコンピューティング計算機の機能しないラックまたはミッドプレーンを避けるかそれを避けてマッピングし、その結果、残りの構成要素が動作を継続しながら、これらをサービスできるようにするために、セグメント化する能力が提供される。
【００３０】
・有利なことに、本発明の新規のパッケージ化およびシステム管理の方法および装置は、先例のないレベルのスケーラビリティまでのコンピューティング・ノードの集合をサポートし、並列コンピューティングの「グランド・チャレンジ（Grand Challenge）」問題の計算をサポートし、高性能計算カーネルに、有限差分方程式、密または疎の線形方程式の解、またはフーリエ変換が含まれ、多次元グリッドに自然にマッピングすることができる大きいクラスの問題に対処する。本発明が特に適する問題のクラスは、生命科学の分野にある。
【発明を実施するための最良の形態】
【００３１】
本発明の大量並列スーパーコンピュータ・アーキテクチャは、相互接続された３次元トーラスの形であり、広範囲のアプリケーションに数百テラＯＰＳ（数兆浮動小数点演算毎秒）程度の処理能力を与えるように設計されている。本明細書で説明する例示的実施形態では、大量並列スーパーコンピュータ・アーキテクチャに、６４×３２×３２個のトーラスとして編成された６４ｋ個の処理ノードが含まれ、各計算ノード１２が、図１の３次元トーラス・サブキューブ部分１０に示されているように、６方向トーラス・リンク１３を介して６個の隣接するノード１２に接続される。しかし、異なるトーラス構成のより多くの処理ノードを含む他のアーキテクチャが企図されていることを理解されたい。
【００３２】
本明細書で詳細に説明するように、各ノード１２に、単一のＡＳＩＣおよび複数のＳＤＲＡＭ−ＤＤＲメモリ・チップが含まれる。ノードは、少なくとも６つのネットワークを介して相互接続され、これらのネットワークの最大集合帯域幅は、ノードを物理的な３次元トーラスにマッピングする最も近い隣接リンクである。説明される実施形態では、相互接続構造に、非対称性を有しないことが好ましいトーラスが含まれる。というのは、ノードが、同一の帯域幅およびほぼ同一の待ち時間で、物理的に隣接するラックに配置されたノードに関して物理的に近いノードと通信するからである。これによって、より単純なプログラミング・モデルが促進される。ノードを動作させるＡＳＩＣは、システムオンチップ（ｓ−ｏ−ｃ）技術に基づき、システムが必要とするすべての機能性が組み込まれる。これには、４Ｍｂ以上の極端に高帯域幅の組込みＤＲＡＭが含まれる。ノード自体は、物理的に小さく、超高密度の処理および最適化のコスト／性能が可能になっている。
【００３３】
説明される実施形態では、システム・パッケージ化に、両面基板または「ミッドプレーン」上の５１２個の処理ノードが含まれる。各ノードに、メッセージ受渡動作を処理する第２プロセッサが含まれる。さらに、所定の複数の処理ノードに関連するのが、計算ノードに出入りする入出力通信を処理する、拡張外部メモリを有する二重プロセッサを含む専用入出力ノードである。各入出力ノードは、基本的な入出力タスクおよび高性能リアル・タイム・コードに必要なすべての機能を処理することができる小さいオペレーティング・システムを有する。コンパイル、診断、および分析に、ホスト計算機が必要である。入出力ノードには、計算ノードの層の上の、ホスト通信を処理するソフトウェア層が含まれる。ホストの選択は、アプリケーションのクラス、その帯域幅要件、および性能要件に依存する。
【００３４】
ノードの概要
図２は、本発明の原理による単一のコンピューティング・ノードＡＳＩＣ２０を示すブロック図である。各ノード１２は、コンピュータのすべての機能を単一のＡＳＩＣ２０に集積し、ノード・サイズおよび電力消費の劇的な削減を可能にする、システムオンチップ・プロセスに基づくことが好ましい。スーパーコンピュータでは、これをさらに活用して、ノード密度を高め、これによって、計算機の総合的なコスト／性能を減らすことができる。図２からわかるように、この設計のＡＳＩＣは、システム内で計算ノードおよび入出力ノードの両方として機能することができるが、このＡＳＩＣには、２つの処理コア２２ａおよび２２ｂが含まれ、この処理コアのそれぞれが、「二重」浮動小数点ユニット２４ａおよび２４ｂを有し、この「二重」浮動小数点ユニットのそれぞれに、プロセッサ・サイクルあたり４浮動小数点演算のピーク性能を与える２つの結合された標準浮動小数点ユニットが含まれる。一実施形態では、ノードの組込み処理コアが、IBM microelectronics社から入手可能なＰｏｗｅｒＰＣ４４０であるが、このコアの次世代版を、技術的改善として使用することができる。ＰｏｗｅｒＰＣ４４０コアの機能性の説明は、http://www.ibm.com/chips/products/powerpcにある。「二重」ＦＰＵ２４ａおよび２４ｂでは、データパスを６４ビットから１２８ビットに増やして、４倍長ワード浮動小数点のロードおよびストア（すなわちデータ移動）を可能にすることによって、データ帯域幅が増やされる。さらに、このユニットは、これらの実行ユニットを実数および虚数の複素数対にスプリットすることによって、２つの浮動小数点積和演算を１サイクルでディスパッチし、実行できるように設計されている。新しい設計の（単一命令複数データ）ＳＩＭＤ様の命令によって、この複素数対に、１サイクルあたり２つの浮動小数点積和を実行する能力が与えられると同時に、通常のスカラ命令では、実数部または虚数部だけが使用される。表１に示された例として、３つの複素数Ａ、Ｂ、およびＣに対して演算Ａ×Ｂ＋Ｃを実行するコードを検討されたい。計算の前に、レジスタａｒおよびａｉに、Ａの実数部および虚数部が含まれ、同様に、対ｂｒおよびｂｉと対ｃｒおよびｃｉに、ＢとＣの値が保持される。コンパイラが、２つの命令だけを必要とし、結果をレジスタ対ｄｒおよびｄｉに置く、下記のコードを自動的に精製することができる。
【００３５】
【表１】
2004538548.tif 000003
【００３６】
ノード１２では、さらに、他の機能がＡＳＩＣ２０に組み込まれる。組込み処理コアおよび浮動小数点コアのほかに、このシステムには、組込みＤＲＡＭ３５、統合外部ＤＤＲメモリ・コントローラ４３、メッセージ・プロセッサ、イーサネット（Ｒ）・アダプタ４５および４８、ならびに、任意の２つのノードが短待ち時間で通信できるようにするネットワーク・リンク・カットスルー・バッファおよび経路指定制御ブロック２６が含まれる。計算ノード１２には、特に、ＩＢＭ  ＰｏｗｅｒＰＣ４４０など、それぞれをメッセージ処理および計算動作に使用することができる２つの組込みコアが含まれる。このアーキテクチャは、さらに、バーチャル・カットスルー経路指定をサポートする。
【００３７】
さらに、図２からわかるように、バーチャル・カットスルー経路指定は、ネットワーク・アダプタの除去を可能にするためにＡＳＩＣに集積されるハードウェア・ブロック２６でサポートされる。仮想チャネル経路指定ネットワークは、２つの動的チャネルおよび２つの決定的チャネルでサポートされるのが好ましい。
【００３８】
図３は、パケット経路指定用のリンク・バッファおよび仮想経路指定ブロック２６を示す詳細なブロック図である。データ・フローは、左から右に進み、単一の入力１７および出力チャネル１９だけが示されている。アービトレーション論理要素３７ａおよび３７ｂが、２ステージ処理を介してハードウェアで実行される出力チャネル・アービトレーション用に設けられる。第１ステージ３７ａは、入力仮想チャネルにローカルであるが、第２ステージ３７ｂは、出力チャネルにローカルである。図からわかるように、ブロック２６には、ネットワークへ／からパケットを注入／受け取るための複数の出力／入力ＦＩＦＯが含まれ、これによって、全６つの両方向リンク・ポートの完全な同時利用が可能になる。
【００３９】
図２に戻ると、スクラッチＳＲＡＭ３９が、さらに、高性能プロセッサ間通信機構として働くために設けられる。プロセッサ２２ａおよび２２ｂの両方が、ＳＲＡＭへの同等のアクセスを有し、これは、「計算」プロセッサと「メッセージ」プロセッサの間のネットワーク通信記述子の効率的な交換にクリティカルである。スクラッチＳＲＡＭのサイズは、３２Ｋバイトから１２８Ｋバイト程度の範囲とすることができる。プロセッサ間通信の一般的なボトルネックは、ソフトウェア・ロックの交換なので、ノード・メモリ・システムに、特にロック交換の処理に合わせて調整された共用リソースが含まれる。すなわち、「ロックボックス」４０が、これらの複数の処理要素の間のすばやい低オーバーヘッド調整を可能にするために設けられる。
【００４０】
図２に戻ると、さらに、低コスト日用品ＤＤＲ外部メモリの使用を可能にするＤＤＲコントローラ４３が設けられる。前に述べたように、この外部メモリへの待ち時間は、クリティカルな設計パラメータの１つであり、異なるメモリ構成を、内部ＤＤＲコントローラを用いてサポートすることができ、これによって、多数のシステム・メモリ構成が可能になる。１つのターゲット・メモリ・システムは、２５６ＭＢのＤＤＲメモリに基づき、１２８ビット・データ・インターフェースが、プロセッサ周波数の１／２または１／３で稼動する。追加メモリが、ＥＣＣおよび潜在的に事前取出しポインタをサポートするために設けられる。入出力ノードとして機能する時に、ＡＳＩＣは、ＤＤＲコントローラの柔軟性を活用し、たとえば５１２ＭＢなど、より大きい外部ＤＤＲメモリをサポートする。
【００４１】
好ましい実施形態では、同一の計算ノードＡＳＩＣ２０を、ファイルサーバ通信および入出力動作を処理する、計算ノードのサブセット、たとえば６４個のノードに関連する入出力ノードとして使用することができる。すなわち、入出力ノードは、計算ノードに非常に似ているが、外部メモリ構成に関してのみ、および、たとえばギガビット・イーサネット（Ｒ）などの外部ネットワーク・インターフェースに加えて、異なるものとすることができる。計算ノードは、統合されたＧｂイーサネット（Ｒ）（共通のＡＳＩＣを共用する）を有することができるが、説明において、Ｇｂイーサネット（Ｒ）・インターフェース４８は、サービス機能性および入出力機能性を提供するノードに設けられる。すべてのノードが、１００Ｍｂイーサネット（Ｒ）・ネットワーク４５への直接接続性を有する。
【００４２】
ノードＡＳＩＣには、さらに、外部ファイル・システムへの接続に必要な入出力と、ブート、デバッグ、およびＲＡＳサポートに必要な入出力が含まれる。図２に示されているように、このために統合することができる２つのネットワークがある。１）論理イーサネット（Ｒ）機能を有する１００Ｍｂ／ｓイーサネット（Ｒ）４５を、ＡＳＩＣ内に集積することができる。この形で、各ノードＡＳＩＣが、独立にアドレス可能であり、ホスト・コンピュータが、システム内のすべてのノードに直接にアクセスできるようになる。これは、ブートおよび診断に有用な、極度に強力なツールである。もう１つの実施形態では、外部構成要素カウント、コストを減らし、信頼性を高めるために、複数のノードを、メディア独立インターフェース（Media Independent Interface、ＭＩＩ）層で直接に８方向計算カード上で接続することができる。そして、２）ノードＡＳＩＣに集積される、Ｇｂイーサネット（Ｒ）論理層を有するＧｂイーサネット（Ｒ）４８。このネットワークは、入出力ノードで使用され、Ｇｂイーサネット（Ｒ）が、ＡＳＩＣ内のＰＬＢ（プロセッサ・ローカル・バス）に常駐することが好ましい。これによって、入出力ノード内の入出力プロセッサが、ごくわずかなオーバーヘッドで、ＤＭＡ転送をセット・アップし、メッセージの処理に戻れるようになる。さらに、図２からわかるように、高速ファイルおよびホストの入出力に、Infinibandリンク４９によって適応することができる。
【００４３】
前に述べたように、このコンピュータでは、入出力、デバッグ、およびさまざまなタイプのプロセッサ間通信に６つまでの相互接続ネットワークが使用される。適当な低コストのスイッチおよびＲＡＩＤシステムの可用性に応じて、ギガビット・イーサネット（Ｒ）またはInfinibandが、ローカルに接続されたディスク・ストレージをサポートするのに使用される。高速のまたは１００Ｍｂ／ｓイーサネット（Ｒ）が、診断、デバッグ、および初期化のいくつかの態様に使用される。２種類の高帯域幅短待ち時間ネットワークによって、システム「ファブリック」が作られ、ＪＴＡＧが、内部プロセッサ要素へのアクセスに使用される。したがって、ノード内で、イーサネット（Ｒ）ＭＩＩ層（ＡＳＩＣピンに直接に）と内部ＪＴＡＧコントローラ（図示せず）の間のインターフェースが、組込みの分野でのデバッグを容易にするために、さらに集積される。
【００４４】
ノード・メモリ
計算ノードのメモリ・システムには、オンチップ・キャッシュ階層、オフチップ・メイン・ストア、および２つのＡＳＩＣプロセッサ２２ａおよび２２ｂの間のロックおよび通信に関する最適化されたオンチップ・サポートが含まれる。メモリ・システムは、下で説明するように、ターゲット・アプリケーションの範囲でのピーク性能について設計される。計算機の集合メモリは、複数コンピュータのスタイルで完全に分散され、ノードの間のハードウェア共用はない。各ノードは、たとえば、２５６メガバイトの物理メモリを所有し、６４Ｋノード・システムでは合計１６テラバイトがもたらされる。図２からわかるように、ノード１２の物理メモリは、ＡＳＩＣ内の２つのプロセッサによって共用され、ハードウェアによって、任意選択にコヒーレンシ・サポートが提供される。
【００４５】
図４に、単一ノードのメモリ・システム２５の基本構成要素を示す。図２および４からわかるように、第１レベル（Ｌ１）キャッシュ２８ａおよび２８ｂが、それぞれコア・マクロ２２ａおよび２２ｂ内に設けられる。めいめいの第２レベルＬ２Ｒキャッシュ３０ａおよび第２レベルＬ２Ｗキャッシュ３０ｂは、相対的により小さく、基本的に、Ｌ１データの事前取出しバッファおよびライトバック・バッファとして働く。第３レベル（Ｌ３）キャッシュ３５は、より大きく、命令とデータによって共用され、ほとんどのアプリケーションの実効ページ・セットへの高帯域幅低電力アクセスを提供する。最後に、ノーダル・メモリ・システムに、オフチップ・ダブルデータ・レート（ＤＤＲ）ＤＲＡＭからなるメイン・ストア３８が含まれる。具体的に言うと、Ｌ１命令キャッシュ（Ｉキャッシュ２７ａおよび２７ｂ）は、各４４０コア・マクロの一部であり、データ・キャッシュ２９ａおよび２９ｂから分離される。例の実施形態では、Ｉキャッシュが、３２Ｋバイトのサイズであり、３２バイトのライン・サイズを有する。Ｉキャッシュは、６４ウェイ・セットアソシアティブであり、１６セットが含まれる。ラインは、仮想アドレスタグを用いて保管され、ラウンドロビンの順序で置換される。イネーブルされる場合に、Ｉキャッシュは、キャッシュ・ミスに続く次の３ラインを投機的に事前取出しすることができる。図２からわかるように、Ｉキャッシュ・ライン・フィルは、各めいめいの４４０コア２２ａおよび２２ｂから発する専用の１２８ビット・バスを介して実行される。これらのフィルが、Ｌ２キャッシュを迂回し、Ｌ３キャッシュからサービスされ、したがって、Ｌ２キャッシュへのデータ・アクセスに干渉しないことが好ましい。Ｌ１データ・キャッシュ（Ｄキャッシュ２９ａおよび２９ｂ）は、４４０コア・マクロの一部であり、命令キャッシュから分離される。Ｌ１データ・キャッシュは、Ｉキャッシュと同一の基本編成を有するが、物理的にタグを付けられる。一実施形態では、Ｌ１データ・キャッシュが、３２Ｋバイトのサイズであり、３２バイトのライン・サイズを有し、それぞれ６４ウェイの１６セットを有するセットアソシアティブである。Ｉキャッシュと同様に、Ｌ１データ・キャッシュでは、ラウンドロビン置換ポリシが使用される。データ・キャッシュでは、２つの別々の１２８ビット・データ・バスが作られ、一方は読取用、他方は書込用であり、それぞれがプロセッサ周波数で稼動する。図２からわかるように、Ｌ１  Ｄキャッシュ・バスは、超短待ち時間Ｌ２ヒット・アクセスのために、Ｌ２キャッシュに直接に接続される。Ｌ１キャッシュとＬ２キャッシュの間のライン転送は、２つの連続する１６バイト転送を必要とし、最適に、クリティカル・ワードが最初に返される。４４０メモリ・システムを用いると、メモリのページをライトバック・キャッシュ可能、ライトスルー・キャッシュ可能、またはキャッシュ禁止としてマッピングできるようになる。Ｄキャッシュは、スヌープまたはスナーフをサポートせず、したがって、ライトバックとしてキャッシングされるページは、外部から無効化または更新することができない。Ｄキャッシュは、単一サイクル・ヒット待ち時間���提供し、７００ＭＨｚの公称設計周波数で、たとえば、ピーク・フィル・レートは、約１１．２Ｇバイト／秒である。
【００４６】
図４からわかるように、Ｌ２キャッシュ３０ａおよび３０ｂには、読取専用ライン・ストア（Ｌ２Ｒ）および書込バッファ（Ｌ２Ｗ）が含まれる。４４０コアのそれぞれが、それ自体のＬ２構造を有するが、ハードウェアによって、この２つの間のコヒーレンスを維持することができる。したがって、Ｌ１でライトバックとしてキャッシングされるデータは、２つのコアの間でコヒーレントに共用されるものとすることができる。Ｌ２Ｒは、非常に小さく、基本的に、Ｌ１ライン・フィルの事前取出しバッファとして働く。Ｌ２Ｒは、完全にアソシアティブであることが好ましく、８つのラインが含まれ、各ラインは、６４バイトのサイズである（すなわち、Ｌ１ラインのサイズの２倍）。Ｌ２Ｒヒットは、３サイクルの待ち時間を有すると期待され、ピークＬ１フィル・レートと一致する。Ｌ２書込バッファ（Ｌ２Ｗ）の存在によって、コアが、ライトバックを非常にすばやく完了できるようになり、より大きいＬ２／Ｌ３ライン・サイズを、実行中のストアのまえに集合化できるようになる。Ｌ２キャッシュ３０ａおよび３０ｂの両方によって、ある形の事前取出しが実施される。
【００４７】
Ｌ３キャッシュ３５は、IMB CU-11 Embedded DRAM（ＥＤＲＡＭ）から構成され、一実施形態では、４メガバイト以上のサイズである。キャッシュの編成に関する複数のオプションが可能である。たとえば、一実施形態では、両方のプロセッサによって共用される単純なセットアソシアティブ・キャッシュが実施される。もう１つの実施形態では、それぞれが共用される２つのキャッシュが実施される。２キャッシュ編成によって、両方のプロセッサが、ベスト・ケースでＬ３に同時にアクセスできるようになる。直接アクセスに関するＬ３キャッシュの部分を分離する能力が、さらに可能である。
【００４８】
たとえば、７００ＭＨｚの公称設計コア周波数で、Ｌ１キャッシュは、１．４ナノ秒サイクルごとに１６バイトのピーク・フィル・レートを維持することができる。ＥＤＲＡＭマクロによって、ページ・モードで５ナノ秒ごとに３２バイトのデータを供給することができる。したがって、ピークＬ１フィル・レートに一致するために、並列の２つのＥＤＲＡＭマクロが必要であり、Ｌ３キャッシュの６４バイトの最小ライン・サイズがもたらされる。Ｌ３キャッシュとＬ２キャッシュの間のデータパスは、コア周波数の半分で動作することができ、１サイクルごとに３２バイト（２５６ビット）を返すことができる。やはり、Ｌ３キャッシュを、同時プロセッサ・アクセスのために分割することができ、これによって、４バンクのＥＤＲＡＭマクロを必要とする実施形態がもたらされる。直接マッピングされるので、４Ｍバイトのキャッシュに、期待される２５６Ｍバイト・メイン・ストアの１／６４を保管することができ、これによって、６ビットのタグ・サイズがもたらされる。６４バイトのライン・サイズを仮定すると、ディレクトリ３３が、それぞれが６ビットの６４Ｋ項目を有し、３８４ＫビットのＳＲＡＭが必要になる。キャッシュが、４ウェイ・セットアソシアティブである場合には、ラインの数は同一であるが、タグ・サイズが８ビットに増える。ノード・メモリ・システム２５には、さらに、ボトルネックを避けるためのプロセッサ間通信および交換のためのロックを含む共用リソース４１が含まれる。
【００４９】
メイン・ストアは、ノードＡＳＩＣの外部であり、例の実施形態では、２５６Ｍバイトのサイズである。メイン・ストアは、日用品ダブルデータ・レート・シンクロナスＤＲＡＭ（ＳＤＲＡＭ−ＤＤＲ）デバイスから作られる。
【００５０】
システム相互接続（タイプおよびトポロジ）
イーサネット（Ｒ）およびＩＥＥＥ１１４９．１（ＪＴＡＧ）
一実施形態では、スーパーコンピュータが、ホスト・コンピューティング・システム５０または外部サーバに、２つの標準ネットワークを介してアクセスされる多数のノード（たとえば６４ｋ個）に見える。一方のネットワークが、「高速」または１００Ｍｂイーサネット（Ｒ）９８であり、これは、すべてのノードへの初期プログラム・ロードおよびデバッグ・アクセスに使用され、これによって、ＡＳＩＣノードのホスト制御が、非常に単純で簡単になる。さらに、ＪＴＡＧは、たとえばIBM RiscWatch（商標）ソフトウェア層を介してプロセッサのレジスタにアクセスできるようにするものであるが、ＡＳＩＣ内で１００ＭＨｚイーサネット（Ｒ）・ポート４５に接続され、標準イーサネット（Ｒ）Ｉ／Ｐを使用してアクセス可能である。
【００５１】
グローバル・コンバイニング・ツリー
図５に、ツリー構造に計算ノード１２を相互接続し、本発明によるグローバル・シグナルおよび外部ネットワーク接続を含む、グローバル・コンバイニング・ツリー・ネットワーク５９と称する第２のネットワークを示す。このツリーには、グローバル・コンバイニング・ツリーを介して所定の数の計算ノード１２に接続された関連する入出力処理ノード１２’が含まれる。図５に示された好ましい実施形態では、１つの入出力ノード１２’が、６４個の計算ノード１２のサービスおよび入出力動作の提供専用である。この、計算ノードに対する入出力ノードの比率は、スーパーコンピュータの物理的パッケージ化を最適化するために構成可能であることを理解されたい。すなわち、パッケージング設計によって、代替構成を可能にし、サービス・ノードに対する計算ノードの比率を、並列計算の要件に応じて変更することができる。好ましい実施形態では、パッケージ化技術によって、２５６：１から８：１までの比がサポートされる。代替パッケージ化戦略を用いると、すべてサービス・ノードまたはすべて入出力ノードからなる計算機を含む、極端にデータ集中型の計算に理想的な任意の比が可能になる。
【００５２】
図５からわかるように、１００Ｍｂ／ｓイーサネット（Ｒ）９８によって、計算ノード１２および関連する入出力ノード１２’の両方が、大きいネットワークに、たとえばネットワーク・スイッチ１８を介して接続される。各ノードＡＳＩＣは、一意のＭＡＣアドレスを有し、これによって、ホスト・システム５０がすべてのノードと通信できる。このＭＡＣアドレスに関連するＴＣＰ／ＩＰアドレスに、スーパーコンピューティング計算機のノードのエンコードされた幾何学的位置が含まれる。したがって、たとえば、故障したノードからの診断レポートを、そのＴＣＰ／ＩＰアドレスを介してラックの行、列、およびスーパーコンピュータのラック内の位置まで直接にトレースすることができる。高速ネットワークと結合されると、これによって、計算機内のすべてのノードの状態を同時に凍結する能力がもたらされる。８１９２０個の計算ノードおよび１２８０個の入出力ノードを含むスーパーコンピュータの一実施形態として、これは、先例のないレベルの診断、デバッグ、および検査をもたらす。
【００５３】
・入出力ノード１２’として機能する時に、ＡＳＩＣ２０に、ノードに対するローカル・ディスクとして働く大きいＲＡＩＤディスク・システム５５にアクセスするのに使用することができる、ギガビット・イーサネット（Ｒ）９９またはInfinibandなどの類似するインターフェースが含まれる。ＲＡＩＤシステム５５は、冗長性のために二重化され、スイッチ（図示せず）を介し、ギガビット・イーサネット（Ｒ）９９またはInfinibandの１０２４個のチャネルを介してシステムに接続される。スイッチは、ホストにもインターフェースし、これによって、ホストが、単純なイーサネット（Ｒ）Ｉ／Ｐトランザクションを介してシステム・ノードまたはＲＡＩＤディスク・システムのいずれかにアクセスできるようになる。計算機の内部では、追加の外部メモリを有するＡＳＩＣである専用入出力プロセッサによって、ギガビット・イーサネット（Ｒ）／Infiniband接続が終端される。どの入出力ノードも、最大のギガビット速度でＲＡＩＤディスクを読み取るか書き込むことができる。説明される例の実施形態では、システムの６４ｋ個のノードが、１テラビット毎秒以上の、ディスクまたはホストへのピーク集合入出力帯域幅を有するように構成される。
【００５４】
・この２分木風のコンバイニング・ツリー５９は、スーパーコンピュータ計算機全体に延び、データを任意のノード１２から他のすべてのノード１２（ブロードキャスト）またはノード１２のサブセットに短待ち時間で送信できることが好ましい。ツリーが、４つ以上のポート（３ポートは、バイナリ（２入、１出）を意味する）を有することができることを理解されたい。トーラスと同様に、高次のツリーすなわち４Ｄ、５Ｄ、または６Ｄによって、より多数のチップ対チップ接続およびかなり高い配線コストを犠牲にして、より短くより短待ち時間のパスが可能になる。より低い次元によって、より長い待ち時間とより少ないチップ対チップ通信がもたらされる。メッセージ受渡は、グローバル・コンバイニング・ツリー５９でサポートされ、各ＡＳＩＣ内の前記プロセッサのいずれかによって制御され、計算ノードと独立にすべて対すべての通信などの集中型動作が進行できるようになる。このツリーの各分岐は、送信方向と受信方向の両方で、１．４ＧＢ／ｓまたは２バイト毎プロセッサ・サイクルの好ましいターゲット帯域幅を有する。
【００５５】
・ツリー５９に組み込まれるハードウェア機能性は、整数の加算、減算、最大値、最小値、ビット単位のＡＮＤ、ＯＲ、ＸＯＲ、およびブロードキャストである。これらの機能は、最短の待ち時間が可能な形で実施される。たとえば、加算機能は、ワードの最下位バイトがグローバル・ネットワークに最初に送信されることをもたらす。この下位バイトは、他のソースから他のバイトに即座に加算され（ハードウェアで）、結果が、ツリーの次のレベルにシフト・アウトされる。この形で、６４ビット・ワードが、上位バイトがシフト・アウトされる前に、ツリーの複数の層を既に進んでいる。これは、計算機全体にわたる非常に短い待ち時間の加算の可能性をもたらす。この短待ち時間加算は、グローバル内積を必要とする疎な線形方程式の反復解法にクリティカルである。
【００５６】
・同一のツリーを、リングで送り出すのではなく、データのグローバル・ブロードキャストに使用することができる。１対多の通信では、これは、ソフトウェアの観点から、最近傍３Ｄリンク・ネットワークに対するかなりの改善である。ブロードキャスト機能性は、３Ｄリンク・ネットワークを介する通信を用いて同時である必要がある１対多転送がある時にも、非常に有用である。ブロードキャストは、３Ｄリンク・ネットワークを介して処理することもできる。
【００５７】
・最後に、計算機全体にわたるグローバル浮動小数点合計を、２分木を２回使用することによって、数マイクロ秒で実行することができる。１回目には、すべての指数の最大値を入手し、２回目には、シフトされた整数のすべてを、グローバル動作で加算する。
【００５８】
グローバル・コンバイニング・ツリーとバリア・ネットワーク
・図６に、本発明の原理によるグローバル・コンバイニング・ツリーおよびバリア・ネットワーク６０を示す。グローバル割込およびバリア・ネットワーク６０（図６）の機能性は、グローバル・コンバイニング・ツリー・ネットワーク５９（図５）の機能性に密接に関連し、それと並列に「サイドバンド」ネットワークとして機能することができる。たとえば、グローバル「ｏｒ」機能が、割込みであり、グローバル「ａｎｄ」が、「すべて待機（all wait）」である。これらの機能は、グローバル割込およびバリア・ネットワーク６０で、（１）論理区画（たとえばサブツリー・ネットワーク）内の各ノードがセットでき検出できる信号と、（２）すべての入力信号のグローバルＡＮＤまたはグローバルＯＲを実行するハードウェア論理機能と、（３）結果を収集し、各ノードに分配するグローバル・ネットワークとを含むグローバル非同期信号を生成し、通信することによって使用される。複数の異なる信号が、大規模システムで共存でき、この発想を、多数の形で実施することができる。単一ビット幅差動対が、コンバイニング・ツリー５９（図５）と並列に稼動して、短待ち時間グローバル割込およびバリアが容易になることが好ましい。
【００５９】
・図６に戻って、グローバル割込およびバリア・ネットワーク６０の各ルート・ノード６５は、グローバル・コンバイニング・ツリーの経路に沿ってコンピューティング構造の所定の個数の計算ノード１２に接続され、それに関連して動作して、特定の並列アルゴリズムが必要とする、コンピューティング構造、たとえば大量並列スーパーコンピュータのグローバル非同期動作を開始する。この２分木風のコンバイニング・ツリーと、バリアおよび割込みネットワークは、スーパーコンピュータ計算機全体に延びて、データを任意のノード１２から他のすべてのノードへ（ブロードキャスト）またはノード１２の部分集合へ、短待ち時間で送信できることが好ましい。他のツリー実施形態、たとえば３次ツリー、４次などを実施することができ、ここで、より短い待ち時間に関するトレードオフは、より多くの接続である。
【００６０】
・図２５に、グローバル割込みおよびバリア・ネットワーク６０で実施される非同期グローバル・シグナル生成に使用される論理を示す。具体的に言うと、図２５では、図５のグローバル・コンバイニング・ツリー・ネットワークに対するサイドバンド・ネットワークとして実施される時に、グローバル割込みおよびバリア・ネットワーク６０に、ノードごとに１つの相互接続されたルータ装置のネットワークが含まれる。各ルータ装置には、複数のポートが含まれ、これらのポートは、別のルータに接続される、または接続されない時にディスエーブルされる、のいずれかとすることができる。しかし、説明のために、図２５に示されているように、ルータは、３つのツリーを構成することができる、データパスを提供する４つのポート１２１から１２４を有する。４つのポートのうちの１つ、たとえばポート１２１だけが、親ノードへの接続として指定され、３つまでの残りのポートを、子ノードに接続することができる。ツリーの最下部の葉ノードは、親ノードに接続された１つのポートだけをイネーブルされ、ツリーのルートは、親をイネーブルされるのではなく、少なくとも１つの子をイネーブルされる。
【００６１】
・図２５は、図６のグローバル・シグナル・ツリーおよびバリア・ネットワークのために各ＡＳＩＣノード１２に含まれるルータ・デバイス内で実施される非同期論理１２５の概略図である。グローバル・シグナル非同期ネットワークでは、サイドバンド信号ごとに、４つの論理両方向ポート、１つのアップ・ツリー・ポート（図２５、１２１）、および３つのダウン・ツリー・ポート（図２５、１２２、１２３、および１２４）がある。これらの４つの論理両方向ポートは、４つの物理両方向ポートにマッピングされる。ソフトウェア構成を用いて、物理ポートの任意の１つを、アップ・ツリー論理ポートとしてマッピングすることができる。これによって、複数のこれらのノードが一緒に配置される基板のレイアウトの柔軟性が可能になる。アップ・ツリー・ポートおよびダウン・ツリー・ポートのほかに、すべてのノードでＡＳＩＣプロセッサ・コアから生成される追加の入力信号１３５と、プロセッサの割込みユニットに入力される結果信号１３６がある。アップ・ツリー・パス１３０では、ダウン・ツリー・ポート１２２、１２３、および１２４と中央プロセッサ（ＣＰＵ）からの入力１３５が、アップツリー・パスに送出される前に論理ゲート１２７に入力される。この論理ゲート１２７は、グローバル・バリア動作を実行するために実施される時に論理ＡＮＤ機能を実行し（入力が論理「０」から「１」に推移する）、あるいは、グローバル割込み動作を実行するために実施される時にＯＲ機能ネットワークとして実施することができる（入力が論理「１」から「０」に推移する）。ダウン・ツリー・パス１４０では、アップ・ツリーからの入力信号が、バッファ装置１２８によってバッファリングされ、その後、すべてのダウン・ツリー・ポート１２２、１２３、および１２４とプロセッサに信号１３６としてブロードキャストされる。ツリーの最上部では、アップ・ツリー・ポート（図２５、１２１）の２つの信号が、最上位ノード内またはリンク・チップ装置内のいずれかで初期ソフトウェア構成を介して単純に一緒に接続され、本明細書で詳細に説明するように、
【００６２】
・３次元トーラス
・図１に関して説明したように、物理的計算機アーキテクチャは、ｎ次元トーラス１０に関連し、このトーラスは、例の実施形態では、エッジで「ラップ」する、単純な３次元最近傍相互接続である。ＡＳＩＣの異なるラックの間に存在するものなどの飛行時間の差を除いて、すべての近傍が、等しい距離にあり、コードの作成および最適化が楽になる。最近傍リンクは、例の実施形態で、プロセッサ速度の４倍（たとえば、各方向で２．８Ｇビット／ｓ）とすることができる。したがって、各ノードは、たとえば４．２Ｇバイト／ｓの集合帯域幅を有する６つの独立の両方向最近傍リンクをサポートする。以下でさらに詳細に説明するように、システム回路カードは、２×２×２サブキューブで配線され、ラックごとに２つのミッドプレーンは、８×８×８サブキューブとして配線される。６４ｋ個の計算機全体は、６４×３２×３２個のトーラスであるが、他の分割が可能である。
【００６３】
・メッセージ受渡
・トーラス
・図１のトーラス・ネットワーク１０は、選択された「クラス」のノードへの汎用のポイントツーポイント・メッセージ受渡動作およびマルチキャスト動作に使用される。このトポロジは、ＡＳＩＣ内に組み込まれたルータの間の両方向ポイントツーポイント・シリアル・リンクを用いて構成された３次元トーラスである。したがって、各ＡＳＩＣは、６つの最近傍接続を有し、その一部が、比較的長いケーブルをトラバースする可能性がある。トーラス・ネットワークは、適応的と決定的の両方の最短パス経路指定を提供し、デッドロック・フリーである。スループットおよび待ち時間は、本明細書および参照によって本明細書に組み込まれる、P. Kermani、L. Kleinrock、「Virtual Cut-Through: A New ComputerCommunication Switching Technique」、Computer Networks、Vol. 3、pp. 267-286、1979年に記載の、バーチャル・カットスルー（ＶＣＴ）経路指定の使用を介して最適化される。メッセージは、複数のパケットから構成でき、パケットは、経路指定のアトミック単位である。したがって、同一メッセージからの適応的に経路指定されるパケットは、順序はずれで到着する場合がある。パケットは、サイズが可変であり、３２バイトの粒度で３２バイトから２５６バイトの範囲である（すなわち、パケットごとに１つから８つまでの３２バイト・チャンク）。
【００６４】
・仮想チャネル（ＶＣ）は、デッドロックフリーの適応経路指定を提供し、スループットを高めるのに使用され、スーパーコンピュータ内のトーラス・ネットワークは、２つのＶＣが適応経路指定を使用し、２つのＶＣが決定的経路指定を使用する構成で、４つ以上のＶＣを有することができる。決定的ＶＣの１つが、デッドロック・フリー性を保証するために適応的サブネットワークの「エスケープ・チャネル」として使用され、他方が、高優先順位パケット用に予約される。ほとんどのトラフィックが適応的に経路指定されると期待されるので、ヘッドオブライン（head-of-line）ブロッキングを減らし、ルータ内で単純なＦＩＦＯバッファを使用できるようにするために、２つの適応ＶＣが設けられる。
【００６５】
・ルータの間のフロー制御は、トークンの使用を介して提供される。というのは、ケーブルの待ち時間によって、複数のパケットが同時に飛行中になりえるからである。コンテンションがない場合に、最大リンク帯域幅を維持するのに十分なＶＣＴバッファ空間がある。
【００６６】
・ネットワークは、注入されたすべてのパケットの単一コピーを、信頼性のある形で送達する。ルータは、下流ルータが成功裡の受信を肯定応答するまで、すべてのパケットの良好なコピーを保存することによって、信頼性のある転送を保証する。リンクレベルのパリティまたはＣＲＣ（あるいはその両方）を使用することによって、ルータが、伝送中に破壊されたパケットを検出することができる。これが発生する時には、「エラー」インジケータが、パケットに付加され、レシーバがそれを破棄しなければならないことが示される。したがって、各パケットの単一の良好なコピーだけが、ネットワークを離れる。
【００６７】
・したがって、参考文献、William J. Dally、Larry R.Dennison、David Harris、Kinhong Kan、Thucydides Xanthoppulos、「Architecture andImplementation of the Reliable Router」、Proceedings of HOT Interconnects II、pp.122-133、1994年８月に記載の信頼性のあるルータのユニーク・トークン・プロトコル方式に類似する方式（常時、ネットワーク内のすべてのパケットの少なくとも２つのコピーが維持される）を使用することができる。しかし、例の実施形態によれば、本発明では、パケットがリンク上（パケット破壊のほとんどすべてがここで発生する）で危険な状態である間に、バックアップ・コピーだけが維持される。ルータ・ハードウェアがパケットを破壊するという希な場合には、メッセージ・レベルでのエラー検出によって、再送信要求が送信側にサブミットされる。
【００６８】
・図７に、リンク入力回路７２およびリンク出力回路７４を含む単一のトーラス・ルータ７０の基本アーキテクチャを示す。ローカル入力に、７つのネットワーク注入キュー７３が含まれ、そのうちの６つが、任意の方向に宛てられた通常のパケットに使用され、７番目が、任意の方向に宛てられた高優先順位パケットに使用される。ローカル出力には、１２個の受信キュー７６が含まれ、６つのキューが、各方向からの通常のパケット用であり、６つのキューが、各方向からの高優先順位パケット用である。
【００６９】
・各リンク入力７２には、ヘッドオブライン・ブロッキングを減らすために、少なくとも４つのＶＣＴキュー（仮想チャネルごとに１つ）と、クロスバ・スイッチ７８への２つの入力パスが含まれる。ＶＣＴ  ＦＩＦＯまたはおそらくは到着するパケットのどれが、クロスバ入力を使用することになるかを決定する関連する入力アービタがある。各リンク出力７４には、信頼性のための再送信ＦＩＦＯと、関連するリンクへの入力キューまたは注入キューからのパケットをスケジューリングする出力アービタが含まれる。入力回路と出力回路の間の通信が、フロー制御トークンの伝送を調整するために各リンク・ポートで提供されることを理解されたい。
【００７０】
・ルータ入力
・図８は、図７のリンク入力回路７２の例示的実施形態の詳細な図である。各入力回路７２の基本的な責任は、着信パケットを受け入れ、その保全性を検証し、必要な場合にバッファリングし、最終的に出力リンクまたはＣＰＵ受信キューに転送することである。図８からわかるように、２つの適応ＶＣ８２ａおよび８２ｂ、１つの決定的ＶＣ８２ｃ、および１つの高優先順位ＶＣ８２ｄに対応する４つの仮想チャネル（ＶＣ）ＦＩＦＯ８２がある。実施されるＶＣ  ＦＩＦＯの実際の数は、主に、経路指定アルゴリズムによって決定される。
【００７１】
・前に述べたように、フロー制御は、トークンの使用を介して管理され、トークンのそれぞれが、ＶＣ  ＦＩＦＯバッファ空間の３２バイトに関連する。したがって、単一のパケットが、複数のトークンを消費する場合がある。ＶＣ  ＦＩＦＯのそれぞれのトークンは、個別に管理され、下流ルータによって上流ルータにバッチで許可される。上流ルータは、パケット・サイズ全体をカバーするのに十分な数のトークンを有するのでない限り、絶対のパケットを送信しない。言い換えると、パケットは、必要な場合に下流ルータにそれを保管するのに十分なバッファ空間がない限り、絶対に送信されない。これは、デッドロック・フリー性を保証するための重要な特性である。
【００７２】
・パケットは、下流でそれをバッファリングするのに十分な空間がない限り、送信できないので、ＶＣ  ＦＩＦＯのサイズは、隣接するルータの間のリンク帯域幅および待ち時間によって指示される。このサイズによって、コンテンションがない時のリンク帯域幅の完全な利用が可能になる。ワースト・ケースでは、２つの隣接するルータを、計算機が分割される時に５ケーブル・ホップだけ離すことができ、各ケーブルホップは、約３０ナノ秒の待ち時間を有する。後で説明するように、隣接ケーブル・ホップは、リンク・チップをトラバースしなければならず、これは、約１０ナノ秒の待ち時間を有すると期待される。したがって、ワースト・ケースの、隣接するルータの間のリンク待ち時間は、約２００ナノ秒である。
【００７３】
・下記のシナリオを使用して、ＶＣ  ＦＩＦＯサイズを計算することができる。上流ルータが、２５６バイトのパケットを送る。下流ルータは、そのパケット全体を受け取り、保全性を検証する。パケットが、転送され、保管されないので、下流ルータは、即座に８つのトークンを返そうとする。しかし、上流リンクは、送信が開始されたばかりの２５６バイト・パケットによってブロックされている。上流リンクが解放されたならば、トークンが返される。ＶＣ  ＦＩＦＯは、このシナリオの待ち時間中に送ることができるすべてのデータを保管するのに十分に大きくしなければならない。２．８Ｇビット／秒リンク帯域幅を仮定すると、この計算は、下記のように進行する。
【００７４】
【表２】
2004538548.tif 000004
【００７５】
したがって、約６５７バイトのＶＣ  ＦＩＦＯサイズが十分である。しかし、より大きいＦＩＦＯを用いると、多少のゆるみが可能になり、その結果、トークンをバッチで返すことができ、ある量のネットワーク輻輳を許容できるようになる。本発明で使用されるＡＳＩＣ技術があれば、２Ｋバイト以上のＶＣ  ＦＩＦＯサイズを実施することが、容易に実現可能である。入力回路は、ヘッドオブライン・ブロッキングを減らすために、グローバル・クロスバへの２つの接続（パス）８３を有する。したがって、入力回路７２に、５×２クロスバ８７が含まれ、これによって、２つのＶＣ  ＦＩＦＯまたは１つのＶＣ  ＦＩＦＯおよび到着するパケットが、出力リンクに進めるようになる。ローカル入力回路７２に、６つの入力方向のそれぞれについて２つの（２つのプロセッサのそれぞれについて１つ）専用の受信ＦＩＦＯと、高優先順位パケット用の２つの受信ＦＩＦＯ（プロセッサごとに１つ）が含まれる。１つのプロセッサが通信専用である時には、そのプロセッサは、ＦＩＦＯの両方の組にアクセスできる。したがって、ルータで終了するパケットを、グローバル・クロスバを通過せずに、関連する受信ＦＩＦＯに直接に転送することができる。しかし、通常優先順位のパケットは、任意のＶＣで受信される可能性があり、したがって、これらは、入力クロスバを介して受信ＦＩＦＯに転送される。
【００７６】
パケットが到着する時に、経路選択機能８６を使用して、そのパケットが使用できる潜在的な出力ＶＣの組を判定する。一般に、この組には、有利な（すなわち最小限の）方向の適応ＶＣおよび決定的ＶＣの両方が含まれる。到着するパケットがＶＣ  ＦＩＦＯに保管される場合に、潜在的な経路が、そのパケットと共に保管される。
【００７７】
グローバル・クロスバ接続が空いている（または短時間だけ空きになる）時には、必ず、入力アービタ８８が、待機中のパケットまたは到着するパケットの１つを選択して、出力に関して調停する。選択されたパケットは、１時にある回数の試行についてその潜在的な出力の１つについて調停される。有限の回数の試行で出力を達成しない場合には、入力アービタが、その優先順位規則に従って、同一のパケットまたは異なるパケットのいずれかを選択して、その出力の１つについて試行する。したがって、すべてのアービトレーション・サイクルで、各入力回路が、成功するまで１つの出力ＶＣだけを要求する。高優先順位パケットは、当然、入力アービタ８８によって優先される。通常優先順位パケットは、最も満杯のＦＩＦＯ内のパケットを優先するが、周期的にランダムにまたはラウンドロビン順序でパケットをサービスすることによって長時間の停止状態を防ぐ、優先順位規則に従ってサービスされる。
【００７８】
受信パケット・パイプライン８１は、深さが限られており、したがって、到着パケットが、アービトレーションについて選択されていないか、時宜を得た形で出力ＶＣを得ない場合には、そのパケットは、適当なＶＣ  ＦＩＦＯに経路指定される。パケットが、そのＦＩＦＯの頭部に達する時に、そのパケットを、もう一度出力について調停することができる。ＦＩＦＯが空の場合には、パケットが、もう一度ほとんど即座に調停を開始することができる。したがって、パケットが、基本的にＦＩＦＯを「通って流れ」、ＦＩＦＯに入るのと同時に出ることが可能であり、これは、重要な最適化である。パケットのヘッダの別々のＣＲＣが、ヘッダが正しく受け取られる場合に限ってパケットがアービトレーションに勝つことを保証するのに使用される。
【００７９】
成功率を改善するために、入力アービタは、使用中のリンク、追加のパケットを受け入れることができないＶＣ、およびＶＣで使用可能なバッファ空間のレベルを示す状況インジケータを出力ＶＣから受け取る。出力ＶＣは、物理リンクが使用可能であり、ＶＣがパケットを受け入れることができる時にのみ調停される。適応パケットは、好ましい方向およびＶＣを有し、このＶＣは、リンクが空いている方向で最大の使用可能バッファ空間を有するＶＣである。アービトレーション・ハードウェアは、パイプライン化され、その結果、あるパケットの末尾と次に入力リンクを出るパケットの頭部との間にギャップがない。
【００８０】
メッセージ・トラフィックのほかに、入力回路７２は、トークンを許可するか、信頼性のために保管されるパケットのコピーを解放する下流ルータからフロー制御パケットを受け取る。これらのパケットは、フロー制御回路９０によって検出され、同一の物理リンクを共用する出力のフロー制御回路内の下流トークン・ストアの補充をもたらす。逆に、フロー制御回路は、正しく到着するパケットを検出し、同一の物理リンクを共用する出力のフロー制御回路に、トークン許可パケットを生成させる。
【００８１】
ルータ出力
図９は、図７のリンク出力回路７４の例示的実施形態を示す詳細な図である。この出力回路７４の基本的な責任は、出力リンク上のパケットをスケジューリングして、高いスループットおよび公平さを得、信頼性のために送られるすべてのパケットのコピーを保存し、リンクレベルのフロー制御および再送信を管理することである。
【００８２】
図９に関して、出力アービタ回路９８は、６つの入力のそれぞれおよび７つの注入ＦＩＦＯ（図１０に関して説明する）のそれぞれから、アービトレーション・サイクルごとに１３個までの要求を受け取る。出力アービタ回路９８は、１つの許可だけを返し、肯定応答を待つ。肯定応答が、次のアービトレーション・サイクルまでに来ない場合には、アービタは、もう一度調停する。肯定応答が来る場合には、出力制御によって、グローバル・クロスバがセットされ、その結果、勝った入力が出力に接続される。
【００８３】
物理出力リンクは、パケットに関して下流接続、対応する入力リンクで下流から来るトラフィックに関連するフロー制御に関して上流接続の両方とみなすことができる。フロー制御回路９２は、この両方の責任を処理する。フロー制御回路９２は、パケット・ヘッダ下流の代わりに各ＶＣのトークン・ストアを管理し、上流パケットの代わりにトークンを含むフロー制御パケットを生成するか、保管されたパケットの解放を生成する。下流トークンは、パケットが送られる時に必ず消費され、同一物理リンクを共用する入力のフロー制御回路９２によって補充される。逆に、フロー制御回路は、対応する入力のフロー制御回路によって要求された時に、フロー制御パケットを生成する責任も負う。再送信ＦＩＦＯ９５は、ネットワーク信頼性方式の鍵になる構成要素である。動作中に、物理リンクを横切るすべてのパケットが、下流ルータから肯定応答が返されるまで保管される。非常に時宜を得た形で肯定の肯定応答を用いて応答することは、下流ルータの責任である。パケットが、リンクを成功裡に横切る場合に、肯定の肯定応答が返され、そのパケットが、再送信ＦＩＦＯから削除される。送信エラーが検出される場合には、パケットの末尾に、エラー・フラグを用いてタグを付け、肯定の肯定応答が、上流ルータに返されず、タイムアウトおよび再送信がもたらされる。再送信の場合に、破壊されたパケットは、必ず、再送信ＦＩＦＯ９５の頭部にある。というのは、肯定応答が順番に返されるからである。さらに、パケットは、別の失敗の場合に再送信される時に、ＦＩＦＯの末尾に返される。この方式が、ルータの間の送信エラーだけをカバーすることを理解されたい。ルータ内で発生する破壊の防止および検出は行われない。
【００８４】
再送信ＦＩＦＯのサイズは、６５７バイト程度のサイズが提案されるＶＣ  ＦＩＦＯのサイズに非常に似た形で計算することができる。しかし、下流ルータに、肯定応答に応答する追加の時間を与えるために、このサイズはより大きい。追加のＶＣ  ＦＩＦＯ空間ではなく出力で再送信ＦＩＦＯ９５を使用することの利益は、すべてのＶＣについて単一のＦＩＦＯで十分であることである。ＶＣ  ＦＩＦＯが、転送されたパケットのコピーの保存に使用される場合には、各ＶＣ  ＦＩＦＯを、再送信ＦＩＦＯサイズと同一の量だけ拡張しなければならない。したがって、メモリ節約は、ＶＣの数において線形である。さらに、再送信は、完全に出力で処理されるので、単純になる。
【００８５】
ローカル注入の詳細
図１０は、図７のローカル・ネットワーク注入回路７３の例示的実施形態を示す詳細な図である。ローカル注入回路７３の基本的な責任は、プロセッサ（通常はメッセージ・プロセッサ）が、送信のためにネットワークにパケットを注入できるようにすることである。図１０からわかるように、例の実施形態では、７つの注入ＦＩＦＯ９４があり、６つは通常優先順位パケット用、１つは高優先順位パケット用である。ＦＩＦＯのすべてを、任意の出力ＶＣに経路指定することができ、すべて同時に調停することができる。この配置によって、最近傍通信の性能が最大化される。すなわち、ＣＰＵは、本質的に、６つの通常優先順位ＦＩＦＯのそれぞれを単一方向専用にすることができる。高優先順位ＦＩＦＯは、大量のメッセージ転送の前のスカウト・パケット（scout packet）と、ネットワーク輻輳のソフトウェア解決の両方に有用であると想定されている。図１１に関して説明するように、高優先順位パケットは、高優先順位ＶＣの通常優先順位パケットをバイパスし、高優先順位受信ＦＩＦＯで受信される。
【００８６】
ローカル受信の詳細
図１１は、図７のローカル・ネットワーク受信回路７６の例示的実施形態を示す詳細な図である。この回路の基本的な責任は、ルータで終了するパケットをバッファリングすることである。図１１からわかるように、６つの方向のそれぞれについて１つの高い優先順位および１つの低い優先順位の、１２個の受信ＦＩＦＯ９５がある。ＦＩＦＯを各方向の専用にすることによって、端末パケットがグローバル・クロスバを回避できるようになる。別々の高優先順位ＦＩＦＯによって、システム・ソフトウェアが、高輻輳の条件から回復できるようになり、大きいメッセージ・スカウト・パケットの待ち時間が減る。
【００８７】
トーラス経路指定アルゴリズム
トーラス経路指定アルゴリズムでは、可能な時に必ず個々のパケットを適応的に経路指定することによって、ネットワーク・スループットを最大にすることを試みる。経路指定アルゴリズムは、デッドロック・フリーであることを証明でき、最小限のパスだけを使用する。パケット待ち時間は、バーチャル・カットスルー（ＶＣＴ）経路指定の使用を介して最小にされ、ＶＣＴ経路指定は、適度な負荷の下で、ワームホール経路指定のように振る舞う。パケットは、サイズが変化し、ソフトウェアが待ち時間または帯域幅を優先できるようになっている。トーラス経路指定アルゴリズムの基本的な発想は、２つの仮想ネットワークすなわち適応ネットワークおよび決定的ネットワークを物理ネットワークに組み込むことである。適応ネットワークは、デッドロック・フリーではないが、決定的ネットワークは、デッドロック・フリーである。パケットは、常に決定的ネットワークを選択できるので、決定的ネットワークは、適応ネットワークでのデッドロックのエスケープ経路として働く。この手法に関するさらなる詳細は、参考文献、Jose Duato、「A New Theory of Deadlock-Free Adaptive Routing inWormhole Networks」、IEEE Transactions on Parallel and Distributed Systems、Vol. 4、No.12、pp. 1320-1331、1993年１２月、およびSteven L. Scott、Gregory M. Thorson、「The Cray T3ENetwork: Adaptive Routing in a High Performance 3D Torus」、In Proceedings of HOTInterconnects IV、1996年８月にある。そのようなアルゴリズムは、ネットワークでＶＣＴ経路指定が使用されるので、実施が比較的簡単である。さらに、パケットは、下流ルータにパケット全体を保持するのに十分なバッファ空間がない限り、絶対に送信されない。したがって、パケットがリンクを占める時間は、必ず有限であり、その結果、デッドロックは、バッファ空間依存性としてのみ発生する。決定的ネットワーク経路指定アルゴリズムは、サイクル・バッファ依存性を全く有しないことが保証され、適応ネットワーク経路決定アルゴリズムには、各ルータで決定的ネットワークに切り替える可能性が含まれる。
【００８８】
一実施形態では、適応ネットワークで、２つの同等のＶＣが使用される。すなわち、適応ネットワークを使用するパケットは、各ホップでどちらのＶＣでも使用することができる。２つの適応ＶＣの長所は、単に、バッファリングされるパケットの間のヘッドオブライン・ブロッキングが減ることである。その結果、２つのパスが、グローバル・クロスバ内に必要である。
【００８９】
その内容は、参考文献、C. Carrion、R. Beivide、J.A.Gregorio、F. Vallejo、「A Flow Control Mechanisn to Avoid Message Deadlock ink-ary n-cube Networks」、Proceedings of the Fourth International Conference onHigh Performance Computing、pp. 322-329、1997年１２月に記載のものなどの形でバブル・フロー制御が使用される場合に、決定的ネットワークに１つのＶＣだけが必要になる。このアルゴリズムでは、すべてのネットワーク・サイクルに少なくとも１つの空きパケット・バッファがあり、その結果、サイクリック・バッファ依存性に基づくデッドロックが不可能になることが保証される。複数のＶＣを使用する、他の周知の決定的デッドロックフリー経路指定アルゴリズムがある。たとえば、参考文献、W.J.Dally、C. Seitz、「Deadlock-Free Message Routing in Multiprocessor InterconnectionNetworks」、IEEE Transactions on Computers、pp. 547-553、1987年５月に記載の古典的次元順序付きアルゴリズムは、実施に２つのＶＣだけを必要とする。したがって、決定的ネットワークで、２つを超えないＶＣを使用することが好ましい。
【００９０】
適応ネットワークと決定的ネットワークの両方で、最小パス経路指定が使用されることが好ましい。すなわち、パケットは、有益な方向にのみ移動することができ、有益な方向は、パケットをその宛先に近づける方向である。さらに、経路指定アルゴリズムは、ノード障害を許容することができず、ノード障害は、本明細書で詳細に説明するように、計算機を再分割することによって処理される。
【００９１】
パケットが、ネットワークに注入される時に、ソフトウェアによって、どのパケットが適応ネットワークを使用できるかが指定される。ほとんどのトラフィックが、適応ネットワークを使用することが期待される。注入キューの頭部にあるパケットは、ルータによって、着信パケットに似た形で扱われる。
【００９２】
ルータで終了しないすべての着信パケットによって、経路選択機能８６（図８参照）がトリガされ、経路選択機能８６が、潜在的な出力ＶＣの組を生成する。その組は、出力が許可されるまで、パケットと共に残る。負荷が軽いネットワークでは、パケットが、すばやく出力を調停し、勝つことができ、ＶＣ  ＦＩＦＯでのバッファリングが回避されると期待される。それでも、パケットは、ＶＣ  ＦＩＦＯの頭部に達する時に調停することができる。
【００９３】
デッドロック・フリーであることを保証するために、すべてのパケットに、決定的アルゴリズムに準拠する潜在的なＶＣの組を含める必要がある。各ホップで、そのようなＶＣが１つだけある。さらに、適応ネットワークを使用することを許可されるパケットには、すべての有益な方向の適応ＶＣの両方が含まれる。したがって、適応ネットワークでのデッドロックは、１つ（または複数）のデッドロックしたパケットが決定的ＶＣを選択する時に、必ず解決される。最終的に、これが必ず発生する。というのは、決定的ネットワークが、有限の時間で待ち行列の処理をする（かつ、使用可能になる）ことが保証されるからである。
【００９４】
適応経路指定についてイネーブルされたパケットは、適応であれ決定的であれ、必ず最初の使用可能なＶＣを選択する。したがって、パケットは、２つの組み込まれたネットワークの間でジャンプすることができる。ＶＣＴ経路指定のゆえに、これは、デッドロック・フリーであることを証明できる。簡単に言うと、適応ネットワークから決定的ネットワークへの移動は、決定的ネットワークの観点から、注入とみなされる。逆に、決定的ネットワークから適応ネットワークへの移動は、決定的ネットワークの観点から、受信とみなされる。したがって、組み合わされたネットワークは、デッドロック・フリーのままになる。
【００９５】
トーラスでのクラス動作
線形ソルバおよびＦＦＴなどのアルゴリズムは、３次元トーラスの１次元または２次元の表面に物理的にマッピングされるノードのグループ内での情報のブロードキャストを必要とする。これらのマルチキャスト要件を効率的にサポートするために、本明細書で「クラス経路指定」と称する、トーラス・ネットワーク内の第２のタイプの経路指定を使用する。クラス経路指定は、すべてのトーラス・リンクの受信端の少数（たとえば４つから１６個まで）のローカル・レジスタの使用を介して実施されることが好ましい。「クラス」パケットとして区別されるメッセージについて、パケットの経路指定は、宛先によるのではなく、可能な出力のそれぞれの１ビットを担持するこのローカル・レジスタならびに、パケットが可能な継続のほかにローカルに保管されなければならないことを示す１ビットによって決定される。この経路指定によって、広範囲の幾何学形状に対する効率的なマルチキャストが可能になる。
【００９６】
パケット・フォーマット
パケット化、再組立、および検証を含めて、メッセージ全体を信頼性のある形で送達するのは、通信サブシステムの責任である。さらに、通信サブシステムには、メッセージ受渡インターフェース（ＭＰＩ）の性能を強化する特徴が含まれる。パケットは、経路指定のアトミック単位であるが、より大きいメッセージの一部であることがしばしばである。適応経路指定のゆえに、パケットは、順序はずれで到着する可能性がある。したがって、各パケットに、それが属するメッセージおよびそのメッセージ内でそれが属する位置を指定するのに十分な情報を含めなければならない。ネットワーク・ハードウェアに関する限り、その唯一の責任は、各パケットを、ソース・ルータの注入ＦＩＦＯから宛先ルータの受信ＦＩＦＯに信頼性のある形で転送することである。
【００９７】
図１２に、本発明の好ましい実施形態によるトランスポート・パケット１００のフォーマットを示す。図１２からわかるように、第１バイト１０２に、タイプ・フィールドおよびいくつかのフラグ・ビットが含まれる。タイプ・フィールドによって、フロー制御、アプリケーション・メッセージ、およびエラー回復など、ルータによって異なる形で処理される必要がある、少数の基本的なパケット・タイプが区別される。同様に、フラグ・ビットによって、パケットがさらに区別され、デコードの必要なしにハードウェアを直接に活動化することができる。ハードウェア設計によって、どの特徴がタイプ・フィールドにエンコードされ、どれがフラグによって指定されるかが決定される。タイプ・ビットには、本質的に、受信ＦＩＦＯのどの組がパケットを保持するかを選択するのに使用されるビットが含まれる。
【００９８】
トランスポート・パケットの第２バイト〜第３バイトには、経路指定ヒント・ビット１０４およびＶＣ番号１０６が含まれる。シリアル相互接続のゆえに、できる限り早くヒント・ビットを使用して出力アービトレーションを開始することが有利であり、ヒント・ビットには、６つの可能な出力方向のそれぞれについて１ビットがある。セットされたヒント・ビットは、パケットがその宛先に到達するために、対応する方向に進行する必要があることを示す。ヒント・ビットは、宛先座標に達し、宛先座標がローカル・ルータ座標と比較された後に更新される。ＶＣフィールドによって、４つの仮想チャネルのどれを介してパケットがルータに入るかが指定され、ＶＣフィールドは、使用される出力仮想チャネルに基づいて、各ホップで更新される。第３バイト１１０、第４バイト１１２、および第５バイト１１４は、それぞれ、宛先ノードの絶対座標を表し、ノードは、３次元メッシュとして番号を付けられる。すべてのノードが、それ自体の座標を有するように構成され、したがって、これらのフィールドを選択された出力方向と共に使用して、下流ルータに関してヒント・ビットを更新する。これらは、パケット宛先に到達した後に、パケット宛先を確認するのにも使用される。
【００９９】
トランスポート・パケットのサイズは、たとえば、３２バイトから２５６バイトまで、３２バイトの増分で可変である。サイズ・フィールド１１５によって、パケットの３２バイト「チャンク」の個数が示される。シーケンス番号フィールド１１８は、リンクレベル・シーケンス番号を維持し、その結果、脱落したパケットを検出できるようにするのに使用される。このフィールドは、エンドツーエンド・プロトコルなどの別の機構が、必要な検出を提供する場合に、不要になる可能性がある。ヘッダＣＲＣバイト１１９も、パケット・ヘッダ・エラーを訂正するために設けられる。パケットの終り１２０には、本明細書で詳細に説明するリンクレベルおよびエンドツーエンドのエラー検出および回復方式をサポートするエラー検出および表示ビットが含まれる。短く言うと、エンドツーエンド・エラー検出は、ローカル注入回路（図１０参照）によって生成され、ローカル受信回路（図１１参照）によって検査されるＣＲＣコードによって提供することができる。リンクレベル・エラー検出は、各ルータの出力回路（図９参照）によって生成され、各ルータの入力回路（図８参照）によって検査されるパリティ・ビットによって提供される。破壊されたパケットが検出される場合には、リンクレベル・パリティ・コードが、エラー・インジケータによって上書きされ、その結果、そのパケットは、どこかに到着した時に破棄される。エラーの検出が、ルータ出力回路に関して本明細書で説明するリンクレベル再送信をももたらすことを理解されたい。
【０１００】
説明したネットワーク・アーキテクチャでまだ対処されていないが、検討されている複数の問題がある。好ましい実施形態では、不正なリンクまたはルータを検出し、回避する、関連する機構と一緒に、欠けているパケットを処理するタイムアウト機構が実施されることを理解されたい。
【０１０１】
メッセージ受渡
グローバル・コンバイニング・ツリー（Global Combining Tree）
グローバル・コンバイニング・ツリーでのメッセージ受渡は、トーラス・ネットワークのパケット構造に似たパケット構造の使用を介して実行される。ツリー・ネットワークでの少数のクラス・ブロードキャスト動作に関する追加のサポートがある。ツリー・ネットワークは、システム割込みも使用することができる、トークン・ベースのネットワークである。メッセージは、ＶＣで非ブロッキングである。割込みは、同一のデータ・ストリームで搬送され、特殊な「割込み」帯域外ビットの使用を介して、パケット伝送中を含めていつでも、データにインターリーブすることができる。メッセージは、システム内の任意のノードでツリー・ネットワークに注入され、転送のタイプに応じて、ツリーの頂点または最終的な宛先のいずれかに達するまでツリーを登る。
【０１０２】
ツリーに関連するハードウェアは、計算ノードＡＳＩＣおよび入出力ノードＡＳＩＣに含まれる。計算プロセッサおよび入出力プロセッサへのインターフェースは、メモリ・マップＦＩＦＯである。各ＶＣは、ＶＣでの非ブロッキングを保証する独立のＦＩＦＯを有する。ツリーの算術機能およびブロードキャスト機能も、計算ＡＳＩＣに集積される。このローカル頂点で、ブロードキャスト動作および算術演算が、ハードウェアで実行され、非常に短い待ち時間につながる。ツリー構造は、もちろん、物理的な５１２個のノード・ミッドプレーン境界で「首を絞められる」ので、ツリーの帯域幅は、最近傍リンクほどケーブルに関して高コストでない。したがって、各方向で同時に２Ｂ／プロセッサ・クロックをサポートできる高帯域幅ツリー・インターフェースを提供することができる。入力ステージには、ＶＣレベルでセグメント化されるＦＩＦＯインターフェースも含まれる。
【０１０３】
パケットは、パケットの宛先がノードＩＤと一致するかどうかに応じて、ツリーで経路指定されるか、捨てられる。図１から５に関して示したように、Ｇｂイーサネット（Ｒ）・トラフィックでは、このネットワークを使用して、ファイルおよびホスト・データを入出力ノードに送る。
【０１０４】
システム・パッケージ化
図１３は、本発明のウルトラスケール・スケーラブル・スーパーコンピューティング計算機を示す概念的な平面図である。図１３に示された例示的実施形態では、本発明のスーパーコンピューティング計算機２００に、全部で８１９２０個のプロセッサと８０個のラック２０２が含まれ、８０個のうちの７２個のラックが、単一の７３７２８個のプロセッサ・システム（６５５３６個のシステムと共に予備の８つのラックが含まれる）として配線され、８つのラック２０４が、２つの別々の４０９６個のプロセッサ・システムとして配線される。７３７２８個のプロセッサ・システムに、たとえば８つのラック２０２のそれぞれの９つの行２０５として配置された、エレクトロニクスの７２個の計算ラックが含まれる。予備の行を有する、（ｘ−ｙ−ｚ）６４×３２×３２個の計算機に最適化された、ある配線編成が仮定される。計算ラックは、たとえばエンタープライズ・サーバに使用されるものなど、Ｓｐｅｃｔｒａ−ｓｔｒｉｐ社の対より線に基づくケーブルを使用して一緒に接続される。ラック２０２の各対によって、Ｚ次元のトーラスが完成する。したがって、ラックの各対には、（ｘ−ｙ−ｚ）８×８×３２として編成された２０４８個の計算ＡＳＩＣが含まれる。行またはアイルは、４つのそのような対を含み、（ｘ−ｙ−ｚ）８×３２×３２に編成され、「ｙ」方向が完成する。列によって、「ｘ」方向が完成する。７３７２８個のプロセッサ計算機全体が、物理的に（ｘ−ｙ−ｚ）７２×３２×３２として配線されるが、論理的には６４×３２×３２として使用される。９つのアイルの１つを、予備として予約することができ、このアイルは、６４ｋ個の計算ノード・システムの一部ではない。
【０１０５】
各計算ラックが、２つの「ミッドプレーン」からなり、各ミッドプレーンに、５１２個の計算プロセッサが含まれることが好ましい。ミッドプレーンは、互いに垂直に配置され、ラックの前後からアクセスされる。各パッシブ・ミッドプレーンに、ケーブルを受け入れる１２個のリンク・カード、それぞれが８つのプロセッサＡＳＩＣを有する６４個の計算カード、ギガビット・イーサネット（Ｒ）および／またはInfiniband接続を受け入れる２つまたは４つの入出力カード、システム・クロックを配布するクロック・カード、および計算カードのそれぞれからの１００Ｍｂ／ｓイーサネット（Ｒ）・リンクを統合する高速イーサネット（Ｒ）・スイッチ・カードが含まれる。ミッドプレーンの左右の端にある電源接続によって、電源からの４８Ｖ  ＤＣが配布される。
【０１０６】
後で説明するように、スーパーコンピューティング計算機は、空冷であることが好ましい。各計算ラック内では、熱い気流が、水平に左から右へ流れる。室内空気が、左側からラックに入り、ラックの右上にある垂直出口プレナムから出る。モジュールに配置された冷却ファンのバンクに、計算機の稼動中に個別にアクセスし、サービスすることができる。
【０１０７】
計算カードおよび入出力カードのそれぞれに、一意のアドレスが含まれる。この１８ビット・アドレスは、バックプレーン上のカード位置（９ビット）ならびにバックプレーンのアドレス（９ビット）によって定義される。追加ビットを、カード自体でエンコードし、その結果、各プロセッサが一意のアドレスを有するようにする。このアドレスは、たとえば、カードのイーサネット（Ｒ）・アドレスを形成するか、ホスト診断コードを介する障害の報告に使用される。
【０１０８】
クロック分配
好ましい実施形態では、共通の最高速度のクロックが、システム２００の７２個のラック２０２に供給される。その代わりに、クロックを、プロセッサ速度の２倍で供給して、プロセッサ速度の４倍でのシリアル・データ通信を容易にすることができる。本発明は、特に、長期間位相ジッタを避けるために各プロセッサでのＰＬＬを用いるクロック再生成の必要をなくす。共通クロックのもう１つの動機づけは、各プロセッサのローカル・クロックを共通周波数に保つことによる、長いソフトウェア・コンテキスト切替時間の可能性を除去することである。グローバル・ブロードキャスト機能を介する初期クロック同期化も提供される。
【０１０９】
このクロックを分配する１つの例示的手段を、大型スーパーコンピューティング計算機アレイ２１０の次元的に正確な上面図に重ねて、図１４に示す。ケーブル２１５として示されたアレイの中央付近の高周波数ソースは、クロック・スプリッタを使用して９つの出力にスプリットされ、ケーブル２２０に供給する２次ファンアウト・ボックス２１８への長さ約４．５ｍの差動ケーブルを介して分配されることが好ましい。これらの２次ボックス２１８は、ケーブル入力がクロック・ソースに置換される以外はクロック・スプリッタと同一であるが、３次クロック・スプリッタ２２３に分配し、３次クロック・スプリッタ２２３は、ケーブル２２４として示された１つのクロックを各ミッドプレーンに送る。ミッドプレーンでは、クロック分配カードが、ミッドプレーン上のすべてのカードのクロックを作る。計算カードおよびリンク・カードは、同一のクロック・スプリッタを使用して、カード上のすべてのＡＳＩＣのクロックを作る。クロック・ツリーの深さは、６ステージである。
【０１１０】
好ましい実施形態では、ＡＳＩＣへのすべてのクロックが、ほぼ同一の遅延を有し、同一の数のケーブル、コネクタ、バッファなどを通過する。バイポーラ技術に基づくＬＶＰＥＣＬ（Low Voltage Positive Emitter Coupled Logic）クロック・チップを使用すると、クロック・バッファを介する遅延が、電圧からほぼ独立になり、これによって、差動クロック・チップの温度変動に起因するクロック・ジッタがほぼ除去される。ジッタの主な原因は、温度差であると思われ、これは、低速であり、本明細書に記載の新規のデータ・キャプチャ方式によって追跡されると期待される。２つの他の独立の４０９６個のノード・システムは、それ自体の独立のクロック分配を有する。
【０１１１】
トーラス配線
前に述べたように、このシステムの各計算ＡＳＩＣは、６つの高速シリアル・リンクを用いて単一システム・イメージのすべての計算ノードを接続する３次元トーラスの一部である。各リンクは、双方向であり、２つの差動信号対（たとえば、リンクごとに合計４本のワイヤ）を使用し、各方向でプロセッサの周波数の４倍のビット・レートで稼動する。７００ＭＨｚの例示的プロセッサ周波数を用いると、最大データ・レートは２．８Ｇｂ／ｓ／方向であり、３つの基本的な方向Ｘ、Ｙ、およびＺのそれぞれで隣接する近傍への通信が可能になり、ＡＳＩＣごとに１６．８Ｇｂ／ｓ（２．１Ｇバイト／ｓ）の総トーラス帯域幅が得られる。表３に示されているように、計算カード・トーラス接続は、論理的な（ｘ−ｙ−ｚ）２×２×２構成で配置される。各論理次元での接続は、ミッドプレーンからコネクタを介してカードに入り、２つの計算ＡＳＩＣを直列に通過し、同一のコネクタによってカードから出る。同様に、ミッドプレーンの５１２個の計算ＡＳＩＣは、論理的に８×８×８のトーラス配置で接続される。各論理次元での接続は、リンク・カード上のリンクＡＳＩＣからミッドプレーンに入り、４つの計算カードおよび８つの計算ＡＳＩＣを直列に追加し、同一のリンクＡＳＩＣに戻る。これらのリンク・チップは、ミッドプレーンを出る信号のためにシリアル・リンクに動力を供給しなおす。
【０１１２】
【表３】
2004538548.tif 000005
【０１１３】
グローバル・コンバイニング・ツリー配線
前に述べたように、各計算ＡＳＩＣは、単一システム・イメージの計算ノード１２のすべてを接続するグローバル・コンバイニング・ツリーの一部である。各ＡＳＩＣ２０は、４つの再構成可能なリンク・ツリー接続を有する。ツリー内の各リンクは、両方向であり、８つの差動信号対（リンクごとに合計１６本のワイヤ）を使用し、各方向でプロセッサの周波数の１６倍のビット・レートまたは各方向でプロセッサ周波数の２倍のバイト・レートで稼動する。７００ＭＨｚのプロセッサ周波数を用いると、ツリーを上下する最大データ・レートが、１１．２Ｇｂ／ｓ／方向または１．４ＧＢ／ｓ／方向になる。これは、どの方向でも、トーラス・リンクのデータ・レートの４倍である。計算カード・ツリー・リンク接続２５０は、図１５に示されているように配置される。各カードは、ツリーの最上部に向かってコネクタ２５５を介してカードから出る１つの上流リンク２５２を有する。各カードは、ツリーの論理最下部に向かってカードから出る２つの下流リンク２５８も有する。各計算カードのローカル・ツリーのヘッド・ノード１２１は、４つのツリー・リンク接続のすべてを使用して、コネクタおよび論理的にツリーの下にある他のカードへの２つの短待ち時間下流リンクを提供する。
【０１１４】
図１６に、入出力カード・ツリー・リンク接続を示す。図１６からわかるように、ミッドプレーン上のツリーは、各入出力カード２６０ａおよび２６０ｂが、ローカル・ツリーの頭部にあり、ミッドプレーンのプロセッサの半分が、論理的にその下になるように、論理的に配置される。２つの入出力２６０ａおよび２６０ｂカードは、入出力ＡＳＩＣのうちの４つが、ミッドプレーン・ツリーの頭部になるように配線される。４つの入出力ＡＳＩＣのうちのどれが論理的にツリーの頭部になるかは、ソフトウェアによって構成可能である。これらの頂部の４つの入出力ＡＳＩＣは、計算カードの最上部計算ＡＳＩＣが、計算カードから出る上流信号および下流信号を送る形に似た形で、ミッドプレーンから出る上流信号および下流信号を送る。
【０１１５】
ラック設計
本発明のスーパーコンピューティング計算機のパッケージ化システム３１０では、ラック３１２ごとにできる限り多数のプロセッサが空冷される。ＡＳＩＣ、複数のＤＲＡＭモジュール、およびローカルＤＣ−ＤＣコンバータの非効率性を含む、計算カードに必要な目標電力は、たとえば１０Ｗである。完全なラックには、計算カードのほかに、エア・ムーバ、ＡＣ−ＤＣ電源、リンク・チップ、イーサネット（Ｒ）・スイッチ、入出力カード、クロックなどが含まれるので、これによって追加の熱負荷が追加される。したがって、説明される例の実施形態での最適の設計選択では、ラック３１２ごとに１０２４個の計算ノードが配置され、期待される総熱負荷は、ラックごとに１５ＫＷである。後で説明するように、これらの１０２４個の計算カードは、単一の構成要素の故障が非常に高価な交換をもたらす回路カードごとの多数の構成要素の置換を避けながら、ケーブルおよびコネクタの数を最小にする形で構成される。
【０１１６】
冷却
システム３１０のラック３１２は、強制空気対流によって冷却される。図１７に、ラック３１２内の基本的な気流を示す。空気は、ラックの１側面に取り付けられたファン３１５のアレイによって、ラックの反対側に引き込まれる。冷却気は、ミッドプレーンに挿入されたプロセッサ・カード（計算カードおよび入出力カード）を通って流れる。複数の平行の空気流路が、ラックのプレナム３２０によって集められ、カードの均一で効率的な冷却がもたらされる。アレイのファンは、グループにパッケージ化される。ファンの各グループは、冗長性を組み込まれたホットスワップ可能モジュール内に取り付けられる。ファン・モジュールは、ラックの動作に影響せずに交換することができる。ファンの速度および気温を、動作中に監視し、制御することができる。
【０１１７】
配電
システム・ラックは、分散電源システムによって電力を与えられる。少なくともより小さい電源モジュールに関して、ＤＣ−ＤＣ変換の高い効率に起因して、４８．０Ｖ配電が、配電方式として使用されることが好ましい。
【０１１８】
この分散電源システムの中間は、ＡＣ／ＤＣコンバータから派生し、ラック内のミッドプレーンに分散されることが好ましい。コンバータは、２＋１トポロジで接続されて、分散電力バスに必要な冗長性がもたらされる。コンバータは、ホットスワップ可能であり、ラックをシャット・ダウンせずにいつでも交換することができる。コンバータの状況は、リモート・ホストによってアクセス可能なマイクロコントローラによって監視される。
【０１１９】
分散電力の一部は、一定であり、もう１つは切り替えられる。切り替えられない電力バスは、ファン・モジュール、クロック、およびリンク・チップに連続的な電力を供給する。本明細書でさらに説明するように、システム分割に関して、ラックがサービスされている場合であっても、隣接するラックへの信号がメッセージ・ネットワークを通過できることを保証するために、リンク・チップへの電力が維持される。リンク・チップは、クロックとファンを必要とする。切り替えられる電力バスは、プロセッサ・カードへの電力を制御する。電源のＤＣ／ＤＣ変換は、電圧制御が正確であり、フィードバックの帯域幅が広く、大電流が局所化されるので、プロセッサ・カードに配置される。
【０１２０】
ＤＲＡＭシステム用の２．５Ｖと、ＡＳＩＣ用の約１．２Ｖから１．５Ｖの２つの電源電圧が使用されることが好ましい。信頼性に関する懸念は、冗長電源を並列に使用することによって対処される。
【０１２１】
ミッドプレーン
トーラスおよびグローバル・コンバイニング・ツリー・ネットワークの１つの可能な物理的経路指定を、図１８に示す。概念的には、ミッドプレーン３００に、６４個の計算カードのカード接続３０２、１２個のリンク（ケーブル）カード、２つの入出力カード、クロック、イーサネット（Ｒ）、および電源ユニット（リンク・カード用）のカード接続が含まれる。ミッドプレーン３００は、クロックと、トーラス・ネットワーク、ツリー・ネットワーク、およびイーサネット（Ｒ）・ネットワークの高速差動配線を提供する。
【０１２２】
システム分割
本発明のスーパーコンピュータは、ソフトウェア制御によって論理的に再割することができ、したがって、１つのシステムとして一緒に物理的に配線されたラックの大きいグループを、複数のシステムに論理的に分割することができる。これらの論理的に分離されたシステムのそれぞれが、異なるコードを同時に実行することができ、あるいは、いくつかの分離されたシステムを、他のシステムが計算している間にサービスすることができる。したがって、論理再分割によって、コード開発およびシステム保守が容易になる。再分割を制御するシステム・リンク・チップの動作を、図１９に関してこれから説明する。
【０１２３】
リンク・チップ
図１９からわかるように、トーラス・ネットワーク、グローバル・コンバイニング・ツリー・ネットワーク、およびグローバル割込み信号ネットワークは、リンク装置４００を通過する。このリンク装置は、リンク・チップと称するが、２つの機能をサービスする。第１に、リンク・チップは、ミッドプレーンの間でケーブル上の信号を再駆動し、異なるミッドプレーン上の計算ＡＳＩＣの間の長く損失があるトレースケーブルトレース接続の中央での高速信号の形状および振幅を改善する。第２に、リンク・チップは、その異なるポートの間で信号をリダイレクトする。このリダイレクション機能が、このスーパーコンピューティグ・システムを複数の論理的に別々のシステムに分割できるようにする機能である。
【０１２４】
正規リダイレクション
リンク・チップ４００は、正規リダイレクションおよびスプリット・リダイレクションと称する、２タイプの信号リダイレクションを実行する。正規リダイレクションでは、大きいコンピュータ・システムの１論理方向から１つのミッドプレーンが除去される。正規リダイレクションを、図１９のモード１および２として示されるモードで示す。これには、リンク・チップ４００のポート４０１、４０４、４０５、および４０６が用いられる。ポート４０１および４０４は、特定のトーラス論理方向ｘ、ｙ、またはｚで、現在のミッドプレーンと上位または下位のミッドプレーンとの間で＋方向ケーブルおよび−方向ケーブルに接続される。これらのケーブル接続を、図２０では矢印によって示す。ポート４０５および４０６は、ミッドプレーン内で８つのコンピュータ・プロセッサを介して直列に循環するトーラス・ループに接続される。これらのミッドプレーン・トーラス・ループの経路指定は、本明細書で図１３に関して説明した。モード１で動作する時に、リンク・チップ４００は、前のミッドプレーンから現在のミッドプレーンを介して次のミッドプレーンへ信号を経路指定する。これによって、現在のミッドプレーンが、より大きいコンピュータ・システムの一部になる。モード２で動作する時に、前のミッドプレーンからのポート４０４を介するケーブル信号が、ポート４０６を介して次のミッドプレーンに直接に渡され、現在のミッドプレーンが、より大きいコンピュータ・システムから除去される。やはりモード２で、現在のミッドプレーンの信号は、ポート４０５および４０６を介してミッドプレーン内でループし、より小さいコンピュータ・システムが作成される。
【０１２５】
スプリット・リダイレクション
スプリット・リダイレクションでは、大きい６４×３２×３２システムを、２つの同等の３２×３２×３２の半分に分割できるようになる。リンク・チップ４００で実施される時に、スプリット・リダイレクションでは、システム分割の多数の変形が可能である。しかし、長いケーブルのコストおよび信号保全性の懸念に起因して、スプリット・リダイレクションが、論理Ｘ方向でのみ物理的に配線され、大きいシステムを２つの等しい半分に分割できるようにするのに必要な数のラック・アイルでのみ物理的に配線されることが好ましい。スプリット・リダイレクションを、図１９のモード３および４に示す。３から１０までの８つのモードが、スプリット・リダイレクションを達成するのに必要であるが、図２９には、そのうちの２つ、モード３および４だけが示されている。スプリット・リダイレクションでは、リンク・チップ４００によって、隣接するミッドプレーンへの＋ケーブル方向または−ケーブル方向とみなされるケーブル・ポートが再定義される。リンク・チップ４００は、正規ポート４０１からの＋方向ポートを、スプリット・ポート４０２または４０３に再定義し、あるいは、正規ポート４０４からの−方向ポートをスプリット・ポート４０２または４０３に再定義する。正規ケーブルは、図２０で矢印を有する細い線によって示され、スプリット・ケーブルは、たとえば図２０で４２５ｂという符号を付けられたラックの行に示されたものなど、ロジカルＹケーブル」として示される。
【０１２６】
分割
論理再分割によって、本発明のスーパーコンピューティング・システムをどのように再分割できるかに関するある範囲のオプションが可能になる。図２０に、正規分割およびスプリット分割の両方を示し、ミッドプレーンをサービスのためにシステムから分離できる形を示す例を示す。
【０１２７】
スプリット分割は、大きい７２×３２×３２配線システムの、ほぼ等しい半分の、４０×３２×３２システムおよび３２×３２×３２システムへの分割をもたらすことができる。これは、ミッドプレーンが誤動作している時に、そのミッドプレーンが物理的にどこに配置されるかに無関係に、３２×３２×３２システムが必ず作成されることを保証するために、２つの形の１つで達成することができる。４０×３２×３２システムが上位５つのアイルであり、３２×３２×３２システムが下位４つのアイルであるか、その逆であるかのいずれかである。たとえば、図２０のラック４１０に示されたラックのミッドプレーンが、サービスを必要とする場合に、スプリット区画を使用して、上位４つのアイルと下位５つのアイルの間でシステムを分割することができる。この場合に、（図２０の下位５つのアイル）を含むラック４１５が、４０×３２×３２システムを形成し、上位４つのアイルのラック４２０が、別々の３２×３２×３２システムを形成する。両方のシステムを、このサイズで動作させることができ、あるいは、これらを、正規分割を使用してさらに再分割することができる。
【０１２８】
正規分割は、１つの８ノード・スライスを任意の論理方向から分離するのに使用される。ラック４１０のミッドプレーンが誤動作している場合に、正規分割を使用して、下側の４０×３２×３２システムの残りについて下から２番目のアイルを論理ｘ方向で分離し、アイル４２５ａ、４２５ｂ、４２５ｃ、および４２５ｄで提供されるラックによって示された３２×３２×３２システム（添付の凡例でシステム＃１として示される）およびアイル４３０に示されたラックを含む８×３２×３２システムを作成することができる。この論理ｙ方向での８×３２×３２セクションの正規分割によって、ラック４１０および４１１のラックが、アイル４３０の残りのラックから分離され、８×２４×３２セクション（添付の凡例でシステム＃２として示される）および８×８×３２セクション（ラック４１０および４１１を含む）が与えられる。８×８×３２セクションの論理ｚ方向での２回の正規分割によって、ラック４１０とラック４３２ａ、…、４３２ｆが分離され、８×８×１６セクション（添付の凡例でシステム＃３として示される）と２つの８×８×８セクション（添付の凡例でシステム＃４および５として示される）がもたらされ、他の再分割のすべてが計算している間に、８×８×８セクションの１つをサービスすることができる。上側４つのアイルの論理ｙ方向に沿った類似する分割によって、３２×１６×３２再分割４３５（添付の凡例でシステム＃６として示される）、３２×８×３２再分割４４０（添付の凡例でシステム＃７として示される）、および３２×８×３２再分割４４５（添付の凡例でシステム＃８として示される）がもたらされる。
【０１２９】
正規分割をさらに使用して、２つの小さい８×１６×３２（４０９６または４ラック）に、図１３の最下部に示されたシステム２０４を再分割することができる。この２つのシステムは、大きい７２×３２×３２システムとは別に物理的に配線されるので、大きいシステムと組み合わせて８０×３２×３２システムにすることはできず、互いに組み合わせることもできない。スプリット分割を、２つの小さい８×１６×３２システムにさらに提供することはできない。
【０１３０】
グローバル・コンバイニング・ツリー信号およびグローバル制御信号は、トーラス信号と同一のリンク・チップおよびケーブルを介して経路指定される。したがって、正規再分割およびスプリット再分割によって、ツリーが、トーラスと正確に同一の副区画に分割される。論理副区画内では、各ミッドプレーンの入出力プロセッサが、ソフトウェアによって再構成されて、図１５に関して前に説明したように、区画内のツリーが接続される。
【０１３１】
シグナリング
本明細書で説明するように、スーパーコンピュータには、２つの別々の高速通信ネットワークすなわち、３次元トーラスおよびグローバル・コンバイニング・ツリーが含まれる。これらのネットワークでのシグナリングの好ましい電気設計および実施の詳細を、図２１に関して説明する。
【０１３２】
単一方向シグナリングおよび同時両方向シグナリング
トーラス・ネットワークの帯域幅は、プロセッサ・クロック・サイクルごとに両方向で４ビットのデータを転送できるようになっていることが好ましい。この高速レートを達成する実施形態の１つが、各方向に１つの、２つの単一ビット単一方向リンクの使用である。したがって、各リンクは、プロセッサ・クロック周波数の４倍と等しいデータ・レートで動作しなければならない。これらの接続が、シリアル・リンクであり、データだけ（別々のクロックなし）が伝送されることが好ましい。参考文献、Kevin Lamb、Larry R. Dennison、William J. Dally、「SimultaneousBidirectional Signaling for IC Systems」、Proceedings ICCD Conference、pp. 430-433、1990年１０月、およびMatthewHaycock、Randy Mooney、「A 2.5 Bb/s Bidirectional Signaling Technology」、HotInterconnects V Proceedings、pp. 149-156、1997年８月に記載のものなどの同時両方向（ＢｉＤｉ）シグナリングを使用してもよい。すなわち、各ノードの間のリンクは、同時に両方向で信号を搬送する。したがって、リンク上の各方向でのデータ・レートを、同時ＢｉＤｉを使用することによって、プロセッサ・クロック周波数の２倍まで減らすことができる。同時ＢｉＤｉによって可能にされるより低速のデータ・レートによって、必要な相互接続帯域幅が減り、より複雑なドライバ／レシーバ回路を犠牲にして、データ・キャプチャ回路でのより緩和されたタイミング・バジェット（timingbudget）が可能になる。これらの理由から、同時ＢｉＤｉが、より拡張可能にもなる可能性がある。しかし、「逆方向チャネル」クロストークに起因する追加のノイズを、ノイズ・バジェットおよびタイミング・バジェット以内に含めなければならない。図２１に、２つのノードを相互接続するケーブル４５５の両端を駆動する差動同時両方向ドライバ／レシーバ回路４５０の対を示す。
【０１３３】
図２１からわかるように、同時ＢｉＤｉ設計４５０は、信号線の各端４６０ａおよび４６０ｂの被駆動信号の複製を、同一のめいめいの端で差動レシーバ４７０ａおよび４７０ｂの１つの入力に印加することによって動作する。これによって、効果的に、他端からの信号の検出の閾値が設定され、したがって受信される波形の近端ドライバの寄与が打ち消される。
【０１３４】
グローバル・ツリー・ネットワークでは、３次元トーラスと同一の回路および相互接続技術が使用されることが好ましい。したがって、接続ごとの生データ・レートは同一である。しかし、グローバル・ツリーには、各方向で４つの個々のデータ・リンクが含まれる。したがって、グローバル・ツリーは、プロセッサ・サイクルごとに１６ビットを転送することができる。これらの相互接続ネットワークで要求される高いデータ・レートに起因して、差動シグナリングが、すべての接続に使用される。既知のように、差動シグナリングは、改善されたノイズ・マージン、コモン・モード除去、および低い電源（同時スイッチング）ノイズ生成を含むさまざまな長所をもたらす。本発明のパッケージ化アーキテクチャでは、これらの高速差動相互接続が、本質的に２タイプであることが指示される。最も一般的な接続は、プリント回路カードを介するノードツーノードからまたはカードおよびバックプレーンの配線の組合せである。
【０１３５】
クロック分配
本発明のスーパーコンピュータでのシリアル・データ・キャプチャは、非常に低電力になるように設計されている。この目的に向けて、データが、ローカル・クロックを用いて始められ、ローカル・クロックを用いてキャプチャされ、この２つのローカル・クロックは、同一周波数であるが任意の位相である。これによって、データと共に起動クロックのコピーを送るという要件がなくなるが、この要件があると、実施されるシリアル・リンクの場合に、ＡＳＩＣを出るワイヤの数および駆動する回路の数が増える。
【０１３６】
この条件を達成する最も簡単な形は、システム内のすべてのプロセッサに、プロセッサの速度のクロック（最高速度のクロック）を分配することである。代替案では、低速クロックを分配し、ＡＳＩＣ内で所望のプロセッサ周波数にシフトすることができるが、必要なＰＬＬは、データ・キャプチャに有害であると論じられてきた。代替案は、プロセッサ速度の２倍のクロックを分配することであるが、これは、ＡＳＩＣ内でのプロセッサ・クロックの抽出を必要とする。これは、ＰＬＬなしで達成することができ、望み通りに、プロセッサ速度の２倍または４倍でチップからデータを駆動するための正確なクロック・エッジが可能になる。
【０１３７】
所望の多数のクロック・ファンアウト基板および所望の長さのケーブルを含むクロック分配を一緒に接続して、所望の深さを達成することができる。たとえば、１０のクロック・ファンアウトの場合に、５レベルの再駆動によって、１０００００個のクロックが生成される。たとえば、本明細書で図１４に関して説明したように、スーパーコンピュータに関するカード、基板などへのエレクトロニクスのセグメント化で、６レベルの再駆動が必要である。この形で、１００ｐｓ未満の最大スキューを有し、少なくとも７００ＭＨｚ、望ましくは１．４ＧＨｚの周波数の、安定した分配されるクロックが実現される。
【０１３８】
シリアル・データ・キャプチャ
ＡＳＩＣノードに関して２．８Ｇｂ／ｓ（各方向）のシリアル・リンクの帯域幅および最小限でも各方向で１．４Ｇｂ／ｓのデータ・レートとして、帯域幅は、本明細書で説明するように両方向である。両方向の要件は、本明細書で説明するように、低電力および低コストという動作制約に従って、複数の形で処理される。この手法に関連する特定の課題が、低電力制約である。これが、リンク伝送に関する相対位相情報の欠如と結合されて、標準的なＰＬＬクロックおよびデータ回復の設計が排除される。
【０１３９】
ＰＬＬを使用しない、データと共に移動するソース同期クロックの使用によるデータ伝送の達成という作業は、当技術分野で既知である。本発明では、入出力カウントおよび信号カウントが効果的に２倍になることに起因して、このクロックが、データと共には送られないので、位相抽出およびデータ回復が、やはり実行される。位相情報を回復できる複数の可能な形がある。
【０１４０】
この目的に使用されることが好ましいディジタル・データ・キャプチャ方式を、図２２および２３に関してこれから説明する。図２２および２３に、それぞれ、信頼性があり低電力で少数のセルを用いて、クロック速度の２倍から４倍のレートでデータをキャプチャし、ローカル・クロック・ドメインに移すという目的を達成する、シリアル・データ・キャプチャ用の受信マクロ・ブロック５００および送信マクロ・ブロック５２０を示す。図２２および２３からわかるように、内部クロック周波数は、ビット時間の周波数の半分すなわち、ダブル・データ・レート（ＤＤＲ）である。この方法は、望まれるならば、ＳＤＲモードで使用するか、クワッド・データ・レート方式に拡張することもできる。この方法は、たとえば両方向シグナリング代替物に関して、７００ＭＨｚクロックおよび１．４Ｇｂ／ｓ／対／方向の同時両方向通信と共に働く。
【０１４１】
受信マクロ・ブロック５００での待ち時間は、データのバイト位相に応じて７ビット時間と２ビット時間の間であるが、バイト出力をスキップすることによって、待ち時間を３から４ビット時間まで減らすことができる。これは、データ内容を無視できる時の信号再駆動に関して適度な手法である。
【０１４２】
図２２に示されたデータ・キャプチャ・ブロックに関して、高速タップ付き遅延線を介してビットを送り、ローカル・クロックを用いてすべてのタップをサンプリングすることによってデータをキャプチャする方法を実施する。各タップをそのとなりと比較して、同一であるかどうかを調べる。これらの比較の集団が、クロックド・ストリング（clocked string）を形成し、このクロックド・ストリングが、前のクロックド・ストリングと組み合わされて、最適サンプリング点の判定に使用することができるヒストリが生成される。最適サンプリング点は、データが遅延タップの間で変化しない領域を探すことによって、ヒストリ・ストリングから見つけることができる。ヒストリは、ローカル・クロックごとに更新される。プログラム可能な永続性期間を有し、分離ビット・エラーに対して免疫性であるキャプチャ方式を開発できるようにするために低い頻度で更新される追加の「アイ」パイプライン式レジスタがある。永続性時間は、任意の長さに設定することができるが、信頼性のある形でデータ・エッジをサンプリングするのに必要な最大時間より短くしてはならない。ローカル・クロック期間より高速のビット時間に対応するために、クロックの両方のエッジが、ＤＤＲデータのキャプチャに使用される。クロックの各エッジは、最適のアイを見つけるために、それ自体の関連するキャプチャ・レジスタおよび独立の論理を有する。したがって、この技法は、ローカル・クロックおよび送信側クロックのデューティ・サイクルの非対称性に対して十分に免疫性である。
【０１４３】
システム・ソフトウェア
ソフトウェアは、すべてのコンピュータのクリティカルな構成要素であり、新しいアーキテクチャを有するコンピュータで特に重要なので、最下レベルで非常に単純かつ効率的でありながら、ほとんどの並列アプリケーションを稼動させるのに十分である、ソフトウェアの堅牢な階層化システムが実施される。例示的実施形態のシステム・ソフトウェアには、７つの統合されたサブシステムが含まれ、これらのサブシステムを一緒にして「オペレーティング環境」と称する。これらのサブシステムのそれぞれは、ホスト複合体、計算ノード、および入出力ノードにまたがる、分散構成要素と、そのインターフェースからなる。サブシステムには、１）計算機管理、構成、および診断と、２）信頼性・可用性・保守性（ＲＡＳ）と、３）区画およびジョブ管理と、４）科学／技術コンピューティング・カーネルおよびランタイム環境と、５）ファイル・システムおよび入出力と、６）アプリケーション開発およびデバッグ・ツールと、７）性能トレースおよび視覚化ツールが含まれる。
【０１４４】
ホスト複合体
ホスト複合体は、アプリケーション開発およびシステム管理のための計算機へのインターフェースを提供し、ホスト複合体には、メッセージ受渡ソフトウェアを含む、アプリケーション・プログラマに提供されるシステム・カーネル動作およびソフトウェア・インターフェースを含む計算ノード・ソフトウェアと、アプリケーションをホスト複合体にインターフェースする入出力ノード・ソフトウェアが含まれる。ホスト複合体は、これから説明するように、ソフトウェアを稼動させるための必要に応じて、小さくすることも大きくすることもできる。
【０１４５】
システム・コンソールおよび区画管理
システム・コンソールは、ＲＡＳデータベースと共に、区画へのノードの割振りの責任を負う。本明細書で図１９および２０に関して説明するハードウェア分割戦略では、独立の電気的に分離された区画を作成する空間分割モデルが使用される。本発明のシステムでは、計算機で同時に使用可能な区画の数を、１から１２８までの範囲とすることができる。最小の区画は、８×８×８トーラスと８つの入出力ノードからなり、区画を、任意の次元で８ノードの倍数で増やすことができる。ホスト複合体ソフトウェアによって、対話インターフェースを介してまたは不在操作のためにバッチ管理システムを介してこれらの区画にアクセスできるようになる。使用することができるバッチ管理システムに、ＬｏａｄＬｅｖｅｌｅｒ（商標）が含まれる。
【０１４６】
ファイル・システム
ホスト複合体の最も重要なタスクの１つが、システムで稼動する並列アプリケーションのファイル入出力の必要をサービスすることである。一実施形態では、ハードウェアおよびソフトウェアが、計算機によって提供されるコンピューティング・リソースと独立に、１テラビット毎秒を超えるピーク維持可能帯域幅まで、絶対容量および集合帯域幅の両方に関して、ファイル・システムをスケーリングできるようになるように設計される。複数のアプリケーションが、適度なファイル入出力の必要を有し、他のアプリケーションは、飽くことを知らない必要を有する。ファイル・システムのサイズを決定するもう１つの要因が、総合的なアプリケーション性能に過度に影響せずに、透過的およびアプリケーション支援の両方の、チェックポイントおよびリスタート機能のサポートを提供するというオペレーティング環境の望みである。
【０１４７】
図２４に、フェールオーバを備えたツイン接続ＳＣＳＩ  ＲＡＩＤの概念的な繰り返し構造５５０を示す。図２４のファイル・システムは、ホットスワップＳＣＳＩディスク・ケージ５５３ａおよび５５３ｂなどから構成され、このディスク・ケージのそれぞれに、標準ラックマウント・フレーム内の複数のディスク・ドライブが含まれる。これらのディスク・ケージに、複数チャネル・ハードウェアＲＡＩＤ（新磁気ディスク制御機構）コントローラ、冗長電源、および２つの外部ＳＣＳＩバス接続が含まれることが好ましい。ハードウェアＲＡＩＤコントローラは、複数のディスク・ドライブをＲＡＩＤ「ストライプ・セット」にグループ化し、ＲＡＩＤ−０（保護なしの単純なストライピング）からＲＡＩＤ−５（パリティ保護付きのブロック回転ストライピング）までの範囲の複数のストライプセット構成をサポートする。複数のＲＡＩＤストライプセットが、ディスク・ドライブのより大きいアレイにまたがって一緒にストライピングされる、「スパニング」と称するより高水準のＲＡＩＤも、このハードウェア編成によってサポートされる。この例が、ＲＡＩＤ−５０であり、これは、複数のＲＡＩＤ−５ストライプセット自体が、ディスク・ドライブのより大きいクラスタにまたがってストライピングされる。本発明において、ＲＡＩＤ−５は、必要な信頼性を提供する。この構成では、複数ディスクＲＡＩＤ−５ストライプセットが、オンライン予備として使用可能なケージごとに少なくとも１つのディスクを有するように構成される。アクティブ・ディスク・ドライブの１つが故障した場合に、ハードウェアＲＡＩＤコントローラは、故障したドライブからのデータを予備に透過的に再構成し、この問題についてシステム管理ソフトウェアに通知すると同時に、故障したディスク・ドライブのホットスワップ・ベイのＬＥＤを点滅させる。
【０１４８】
ディスク・ケージのほかに、ファイル・システム５５０では、ラックマウントの日用品ＰＣが使用される。これらのＰＣのそれぞれに、２チャネルＳＣＳＩコントローラが含まれる。好ましい構成では、ＳＣＳＩチャネルの一方が、ＲＡＩＤディスク・ケージ、たとえば５５３ａへの「１次」インターフェースと指定され、他方が、ＲＡＩＤディスク・ケージ、たとえば５５３ｂへの、ホット・スタンバイまたは「フェールオーバ」モードにされ、そのＲＡＩＤケージの１次ＰＣが故障した場合にファイル・システム・インターフェースを引き受ける準備ができている。この構造では、ＲＡＩＤディスク・ケージが、「ツイン接続され」、これは、その内部ＳＣＳＩバスが、両端で、サーバ５５５、５５６などとして示された異なるホストにインターフェースすることを意味する。
【０１４９】
サーバＰＣに対する２つの追加構成要素がある。第１の構成要素は、リモートからの構成、ブート、電源オン／オフ、各ＰＣへのイーサネット（Ｒ）接続またはシリアル接続を介するＰＣの監視の能力を提供する、「基本管理コントローラ」（ＢＭＣ）などの「リモート管理」インターフェース構成要素である。第２の構成要素は、ギガビット・イーサネット（Ｒ）接続である。この接続は、マルチポート・ギガビット・イーサネット（Ｒ）・スイッチを介する、入出力ノードへのインターフェースを提供する。
【０１５０】
ＲＡＳデータベース
過渡的（ソフト）または永続的（ハード）のいずれであれ、本発明のスーパーコンピュータで、すべての可能な障害状態を追跡し、分析する能力は、非常に重要である。この目的のために、パッケージ化プランによって、システム・ソフトウェアに、計算機の主要な構成要素のすべての正常性および状況に関する完全な情報を与える。どの場合でも、この情報によって、計算機内の正確な位置が伝えられ、適当な場合に、ラック、ラック内のミッドプレーン、ミッドプレーン上のノードカード、およびノードカード上のノードが識別される。システム全体のイーサネット（Ｒ）・アダプタごとに、その一意の「ＭＡＣ」ハードウェア・アドレスが、ラック、ミッドプレーン、およびノードカード位置によって割り当てられ、これによって、装置の正確な位置がイーサネット（Ｒ）・アドレスにエンコードされる。ファンおよび電源内などのセンサおよびモニタの一部は、計算ノードおよび入出力ノードと独立に動作するが、ＥＣＣ障害などの他のセンサおよびモニタは、詳報を収集しホスト複合体に転送する、ノードで稼動するシステム・ソフトウェアに情報を供給する。
【０１５１】
公称範囲の外に含まれるすべての条件が、「ＲＡＳイベント」（ＲＡＳは信頼性・可用性・保守性を表す）を生成する能力を有する。ホスト複合体で稼動するシステム・ソフトウェアが、イーサネット（Ｒ）接続された、センサおよびモニタを管理するマイクロコントローラ、または計算ノードおよび入出力ノードのノード・カーネルのいずれかから、１００Ｍｂイーサネット（Ｒ）ＲＡＳネットワークを介してこれらのＲＡＳイベントを集める。この情報は、ホスト複合体で維持される複数索引付きのＲＡＳデータベースにログ記録される。このデータベースで追跡されるＲＡＳイベントには、１）ＥＣＣ訂正された単一ビット・エラーおよび訂正不能な複数ビット・エラーを含む、物理アドレスによって分離されたメモリ障害と、２）トーラスまたはグローバル・ツリーの高速リンクあるいは１００Ｍビットまたは１Ｇビットのイーサネット（Ｒ）のいずれかでの、ＣＲＣ不一致に起因するパケット再試行を含むネットワーク障害と、ラック電源とノードカードＤＣ−ＤＣコンバータの状況とを含む、公称範囲外の電圧および電力の変動と、４）ファン状況およびファンＲＰＭを含む、ラック内でまたは個々のノードによって検出される温度変動が含まれる。
【０１５２】
ＲＡＳデータベースは、次のように使用される：第１に、これは、システム管理者および区画管理ソフトウェアに計算機の正常性のリアルタイムの光景を与えるオンライン・ツールである；第２に、ＲＡＳイベントは、計算機内の地理的位置によって個々の構成要素に分離されるので、ＲＡＳデータベースは、パッケージ化、電力、および冷却の設計を検証するのに使用され、したがって、計算機の保守性が改善され；第３に、計算機の完全な「病歴」を維持することによって、ＲＡＳデータベースは、経時的に計算機のオンライン可用性を予測するようになるデータ・マイニング分析をサポートし、これによって、おそらくは実際の構成要素故障の前に、システム保守をスケジューリングし、計画できるようになる。うわべは無害なイベントの予測的な性質の例が、メモリ・チップで発生し、この場合に、メモリ・バンクでの、繰り返されるソフト・エラーまたはソフト・エラーのレートの加速によって、切迫したハード障害が強く示される。同様の分析が、データ・ケーブルおよび入出力装置と、ハード・ディスクに成功裡に適用されてきた。
【０１５３】
低水準デバッグ環境
本発明のスーパーコンピュータでは、各ＡＳＩＣが、完全なＩＥＥＥ  １１４９．１  ＪＴＡＧインターフェースをサポートする自己完結型低水準デバッグ・クライアントを提供する。この低水準デバッグ環境は、ＲＡＳおよび診断環境と密に結合される。この環境は、チップ内のすべての設計された状態およびデバイスに関する、ホスト・システム（ホスト複合体）からのＡＳＩＣへの可視性を提供する。この環境は、各プロセッサを調べる能力も提供し、すべての状態を検査するか修正できるようにし、シングルステップ動作またはブレークポイント設定をサポートする。この環境を用いると、わずかに上位の水準で状態を検査または修正することができる命令を、命令ストリームに挿入することが、透過的に可能になる。このデバッグ環境は、オンチップの完全なＩＥＥＥ  １１４９．１  ＪＴＡＧポートにインターフェースする１００Ｍｂ  ＲＡＳネットワークを介してサポートされる。ＪＴＡＧデバッグ・ポートへのアクセスは、アプリケーション動作にとって透過的に行われる。いくつかの場合に、ＪＴＡＧデバッグ・ポートへのアクセスは、システム・カーネルとインターフェースする。ホスト複合体ソフトウェアは、ＩＭＤ標準組込みソフトウェア開発ツールであるRiscWatch（商標）に基づくものとすることができる。もう１つの選択肢は、現在はハイエンド・サーバ・オファリングで使用される、拡張BlackWidow（商標）デバッグ環境である。
【０１５４】
高水準並列デバッグ環境
上で説明した低水準デバッグ環境のほかに、オペレーティング環境は、さらに、並列アプリケーションの高水準デバッグをサポートする。マルチプロセッサ・アプリケーション・デバッグ・インターフェースを提供する人気のあるツールの１つが、Etnus, LLC.社によって開発されたTotalView（商標）であり、これには、２つの主要な構成要素が含まれ、第１の構成要素は、ホスト・コンピュータ上で「デバッグ・サーバ」として稼動する、数百個のノードで稼動する並列アプリケーションのデバッグに使用されるグラフィカル・ユーザ・インターフェース（ＧＵＩ）である。TotalViewは、異なるノードで稼動するアプリケーション・ソース・コードの独立のビューと、並列アプリケーションのデータの状態を追跡できる変数ウィンドウを提供する。TotalViewは、並列アプリケーションの分散データ構造の内容の視覚化もサポートする。第２の構成要素は、ptrace()インターフェースをサポートする「デバッグ・クライアント」である。
【０１５５】
TotalViewのそれに非常に似たクライアントサーバ・モデルを既にサポートしている、Gnuデバッガ（ｇｄｂ）などの、追加の分散デバッグ環境を実施できることを理解されたい。
【０１５６】
並列アプリケーションでの、正しさのバグ、競合状態、またはアドレッシング障害のほとんどが、プログラムが数百個のノードを超えてスケーリングされるよりかなり前に除去されるので、ソース・コード・レベル・デバッグは、これらのタイプのエラーを見つけるのに最も適する。数百個のノードを超えるスケーラビリティに関して、並列プログラミングでの作業の多くが、パフォーマンス・チューニングおよびロード・バランシングで行われ、これは、個々のＵＴＥインターバル・ファイルおよびマージされたＵＴＥインターバル・ファイルを視覚化するツールであるUTE Gantt Chartなどのアプリケーション視覚化およびトレース・ツールによって最もよく達成される。
【０１５７】
科学および技術コンピューティング・カーネル
計算ノードおよび入出力ノードについて提案される科学および技術コンピューティング・カーネルを、これから説明する。
【０１５８】
アーキテクチャ的に、ノードＡＳＩＣ内で、計算プロセッサおよび入出力プロセッサは、同一であり、ハードウェアの観点から、すべてのオンチップ・デバイスへの対称アクセスを有する。この２つのプロセッサの間の唯一の相違は、一意のインスタンス番号を提供する、チップ上の各コアの「プロセッサ識別レジスタ」（ＰＩＲ）の１ビットのストラッピングである。規約により、低水準ＪＴＡＧデバッグを助けるために、システム・ソフトウェアは、コアに、たとえば計算プロセッサとして０と等しいＰＩＲを用い、たとえば入出力プロセッサとして１と等しいＰＩＲを用いてラベルを付ける。
【０１５９】
簡単に言うと、計算プロセッサの仕事は、気を散らさずにアプリケーション・コードを実行することである。入出力プロセッサの仕事は、メッセージの送信および受信という作業のほとんどを含む、並列オペレーティング・システムに要求されるすべてのアクティビティを計算プロセッサからオフロードすることである。この２つのプロセッサの間の単純で効率的なプログラミング・インターフェースと共に、この機能の分離によって、割込み、タイマ・ティック、コンテキスト・スワップ、保護ドメイン・クロッシング、およびほとんどの監視プログラム呼出しを含む、従来のオペレーティング・システムに固有のオーバーヘッドおよび非同期性なしに、各プロセッサがその使命を実行できるようになる。この構造によって、応答し、アプリケーション・エラー、クラッシュ、またはデッドロック、ならびに非致命的ＲＡＳイベントに耐える、特権を与えられ保護されるカーネル・コンテキストの維持が可能になる。全体として、この構造は、従来の手法よりはるかに微細な粒度で、並列アプリケーションのスケーラビリティの増大につながる、予測可能で反復可能なパフォーマンスを提供する。
【０１６０】
入出力プロセッサは、ほとんどの時間を監視プログラム状態で過ごし、着信パケットについて高速通信リンク・バッファおよびイーサネット（Ｒ）・コントローラを監視する。入出力プロセッサは、さらに、メッセージ送信またはファイル入出力などのサービス要求についてアプリケーションを監視し、ＲＡＳイベントについてノード自体を監視する。入出力プロセッサは、メッセージ受信突合せオーバーヘッドが、ＭＰＩ−２によって提供されるものを含む一方的な通信の場合のように単純かつ効率的に保たれる場合に、最高の帯域幅で通信リンクをサービスしながらこれらのタスクのすべてを実行することができる。
【０１６１】
全体として、この編成は、ほとんどのアプリケーションについて通信に対する計算の最善の比率をもたらすので、「バランスがとれている」。しかし、計算と通信が均等に分配されず、むしろバーストで交番するアプリケーションについて、「ハイリイ・コンピュート・バウンド（Highly Compute Bound）と称する代替手法が使用可能である。このモードでは、通信が遊休になる時間ウィンドウ中に入出力プロセッサの計算力を使用する、追加のアプリケーション・スレッドが作成される。しかし、この動作のモードは、コストなしではない。というのは、計算プロセッサ・スレッドと入出力プロセッサ・スレッドの間でのデータの共用が、アプリケーションによって明示的に管理されなければならないからである。ほとんどの場合に、これには、単純に、Ｌ１キャッシュをライトスルー・モードまたはおそらくはキャッシュ禁止モードにしたシステム呼出しが用いられる。さらに、すべての予期されないメッセージによって、割込みが生成される可能性が高く、これによって、予想される利益の一部が盗まれる。このモードでＲＡＳイベントが発生する場合には、やはり割込みが生成される。
【０１６２】
仮想記憶、キャッシュ、および事前取出しの管理
各ノードが単一のアプリケーション・コンテキストをサポートするという事実にもかかわらず、カーネルは、ＰＣ−４４０プロセッサによって複数の重要な形で提供される仮想記憶の管理機能、保護機能、および変換機能を、完全に利用する。第１に、カーネルは、アプリケーションによる誤ったまたは「無法な」ロードおよびストアに対してそれ自体を保護し、その結果、カーネルを破壊できなくする。これによって、カーネルによって提供される高水準のデバッグ機能およびトレース機能が無傷のままになることと、ホスト複合体が、ＲＡＳネットワークだけを介する場合であっても、カーネルと必ず相互作用できることが保証される。第２に、変換をサポートすることによって、カーネルが、アプリケーションを再コンパイルまたは再リンクする必要なしに、またはノードをオフラインと宣言する必要なしに、物理メモリの不良ページを避けてマッピングすることによって、システムの「可用性」を高めることができる。このメモリの仮想ビューによって、静的に割り振られたデータ区域および関数のアドレスが、同一の実行イメージを使用する異なるノードで同一になることを保証することによって、一方的な通信およびアクティブ・メッセージ・プログラミングも単純になる。第３に、本明細書で詳細に説明するように、カーネルが、アプリケーションまたはランタイム・ライブラリ・ディレクティブに基づいて、アプリケーションの性能を最適化するために、キャッシュおよび事前取出しハードウェアの挙動を制御することができる。第４に、アドレス空間を領域に編成することによって、動的に割り振られるデータおよびスタック区域を、過度に複雑なガーベジ・コレクションなしで増やし、減らすことができる。これによって、透過的チェックポイント・サポートの最適化ももたらされる。というのは、カーネルが、どれだけの領域がアプリケーションによる修正の対象であるかを知るからである。
【０１６３】
ＰＰＣ−４４０プロセッサでは、変換索引緩衝機構（ＴＬＢ、または、この場合には「ソフトＴＬＢ」）での変換のソフトウェア管理が使用されるので、カーネルは、大きい変換テーブルのストレージ・オーバーヘッドを受ける必要がない。さらなる最適化が、ＰＰＣ−４４０に、多数のＴＬＢ項目（６４個）が含まれ、そのそれぞれが、アドレス空間の可変量（たとえば１ＫＢから２５６ＭＢまで）をカバーできるという事実から生じる。これは、最も複雑なアプリケーション以外のすべてについて、これらの変換が、一旦確立されたならば、更新または置換される必要がない可能性が高いことを意味する。これに対する例外は、ランタイム・ヒープ・サイズ、アプリケーション・スタック・サイズ、またはキャッシュ管理ポリシが、そのような変更を必要とする時である。
【０１６４】
カーネルは、さらに、仮想記憶システムを使用して、メモリ階層のキャッシュ機構および事前取出し機構の挙動を制御する。これは、計算プロセッサと入出力プロセッサの間で明示的に共用されるメモリ区域に関して特に重要である。仮想記憶システムを、メモリ階層の挙動および性能の最適化および微調整に使用することもできる。ＰＰＣ−４４０では、各ＴＬＢ項目に、この目的に使用される下記の構成ビットがある。これらの属性は、メモリ・バスに置かれるTransfer Attributes（転送属性）で使用可能にされ、したがって、ＴＬＢ項目ごとの基準でメモリ・サブシステム全体の動作を構成するのに使用することができる。
【０１６５】
Ｕ０：ユーザ定義ストレージ属性０。４４０コアによって無視される。
Ｕ１：ユーザ定義ストレージ属性１。ストレージ・アクセスでＩ／Ｄキャッシュの「通常」部分と「過渡」部分のどちらを使用しなければならないかを選択するのにこのビットを使用するために、ＭＭＵＣＲ［Ｕ１ＴＥ］（Ｕ１過渡イネーブル（U1 Transient Enable））ビットを介して、４４０コアをプログラムすることができる。
Ｕ２：ユーザ定義ストレージ属性２。４４０コアは、ＭＭＵＣＲ［Ｕ２ＳＷＯＡＥ］（割振りイネーブルなしのＵ２ストア（U2 Store With Out Allocate Enable））ビットを使用して、データ・キャッシュをミスしたストアによって、キャッシュ内のラインが割り振られるかどうかを制御する。セットされた場合に、Ｌ３は、このポリシも尊重しなければならない。
Ｕ３：ユーザ定義ストレージ属性３。４４０コアによって無視される。
【０１６６】
これによって、メモリ・バスで明示される２ビットの情報、Ｕ０およびＵ３が提供されて、事前取出しポリシまたは問題の他のものが制御される。これらのビットの可能なエンコードには、下記が含まれる。
０ｂ００：このページのすべてのレベルで事前取出しをディスエーブルする。下の「Ｇ」を参照されたい。
０ｂ０１：Ｌ３で明示的に事前プログラムされた事前取出し。学習モードをディスエーブルする。
・０ｂ１０：事前取出し「学習」モードをイネーブルする。
・０ｂ１１：使用可能、おそらくは代替事前取出しポリシをイネーブルする。
【０１６７】
問題のＴＬＢ内の、バスで明示される他のビットには、下記が含まれる。
・ライトスルー（Write-Through、Ｗ）：カーネルは、明示的に共用されるデータ領域についてのみ、このビットをセットする。というのは、これによって、性能ペナルティが押し付けられるからである。
キャッシング禁止（Caching-Inhibited、Ｉ）：セットされた時に、Ｌ１およびＬ２でのキャッシングを禁止する。Ｌ３は、弱く順序付けられるが、コヒーレントである。キャッシングは、入出力空間およびＳＲＡＭについて禁止される。
メモリ・コヒーレンス要求（Memory-Coherence-Required、Ｍ）：Ｌ２でのスヌープによってメモリ待ち時間に１サイクルが追加される場合に、カーネルは、明示的に共用される区域だけについてこのビットをセットする。Ｌ１は、Ｍがセットされる時にライトスルーにセットされる。
保護（Guarded、Ｇ）：このビットは、事前取出しおよび投機のディスエーブルとして働き、順序通りのアクセスを強制する。通常は、入出力空間についてセットされるが、ある種の共用されるＳＲＡＭ区域についても必要である。
【０１６８】
カーネルＲＡＳ管理
カーネルは、遭遇するすべてのＲＡＳイベントを、ホスト複合体内のＲＡＳデータベース・サーバに報告する責任を負う。良性のイベントの場合には、後の報告のためにエラーが蓄積される場合がある。発生したイベントのタイプと共に、カーネルは、できる限り多くの関連情報を集めて、エラー状態の分離または理解を助ける。たとえば、メモリ・エラーの場合に、この情報に、エラーが発生した物理アドレスおよび仮想アドレスと、このアドレスによって参照されたセグメントのタイプが含まれる。さらに、このメモリ・エラーが、ＥＣＣ保護されない装置またはアドレスでのものであった場合に、その情報も、キャプチャされ、報告され、おそらくは、アプリケーション稼動の停止または終了がもたらされる。一般に、低水準のデバッグ・ツールおよび診断ツールによってノードを検査する機会が与えられるまで、状態は破棄されない。
【０１６９】
ＲＡＳイベントを報告するデフォルトの方法は、１００Ｍｂイーサネット（Ｒ）を介してホスト複合体にメッセージを送ることである。ＲＡＳイベントによって、イーサネット（Ｒ）自体の問題が示される場合には、メッセージを、報告のために入出力ノードに転送することができる。
【０１７０】
アプリケーション・チェックポイントおよびリスタートのサポート
カーネルは、ホスト複合体によって提供されるファイル・システム・インターフェースと協同して、アプリケーションによって支援されるチェックポイントおよびリスタートのサポートを提供する。さらに、アプリケーションの完全な状態をキャプチャし、復元するカーネルの能力を援助し、その性能を改善するハードウェア・アーキテクチャを含む透過的チェックポイント機能が、提供される。
【０１７１】
複数のアプリケーションが、チェックポイント機能に関する特殊なサポートを必要としない。そのようなアプリケーションは、単純なファイル入出力呼出しを介して、その分散状態の保管および復元を管理することができる。他のアプリケーションは、静止状態を簡単に達成できない場合があるが、グローバル・バリアを介して、システムによって開始される透過的チェックポイント機能によい機会がもたらされる。そのようなチェックポイントは、時刻に基づいて、または次のグローバル・バリアでチェックポイントをとらなければならないことを示すホスト複合体からの通知に基づいて開始することができる。
【０１７２】
チェックポイントおよびリスタート・サポートは、ＲＡＳ管理ソフトウェアとインターフェースする。信頼性および可用性の計画で、診断ソフトウェアまたは検証ソフトウェアを規則的な間隔で実行することが要求される場合に、この保守を実行する自然な点が、チェックポイント境界である。
【０１７３】
メッセージ受渡サポート
カーネルによって提供されるメッセージ受渡ソフトウェア・サポートを、これから説明する。最下レベルで、カーネルは、システムの内部高速ネットワークを効率的にサポートするように設計されたシステム・プログラミング・インターフェース（ＳＰＩ）をエクスポートする。トーラス・ネットワークとグローバル・ツリー・ネットワークの両方について、ＳＰＩは、ポイントツーポイント通信および集合通信またはクラス・ベースの通信のサポートを提供する。ＳＰＩは、ＭＰＩなどの高水準アプリケーション・プログラミング・インターフェース（ＡＰＩ）の移植ベースを提供し、ＭＰＩ−１、ＭＰＩ−２、およびＭＰＩ−ＩＯのサブセットを効率的にサポートする。
【０１７４】
一方的なメッセージング
本明細書で説明するように、単純で効率的なメッセージ受渡プロトコルを使用することによって、すべてのリンクの帯域幅全体が、短いメッセージについても持続される。一方的なメッセージングでは、メッセージによって、宛先または「ｇｅｔ」の場合にはソースの、データのメモリ・アドレスが伝えられる。これによって、ハードウェアが、多数の小さいパケットからの行列転置などのデータのブロックを、これらのパケットの処理での過剰なソフトウェア・オーバーヘッドなしで、メモリ内に直接に組み立てられるようになる。サポートされる一方的な通信プロトコルの例が、ＭＰＩ−２に含まれる。このプロトコルでは、「ｐｕｔ」および「ｇｅｔ」モデルを使用して、事前に確立されたまたは「オープンされた」通信ウィンドウとの間でデータを移動する。このモデルは、このシステムについて特に良好に働く。というのは、通信ウィンドウの使用によって、計算プロセッサと入出力プロセッサの間でメモリ・コヒーレンシを管理する機会がもたらされるからである。メモリ・コヒーレンスは、ウィンドウを介して管理されるので、このオーバヘッドを、複数のメッセージにわたって償却することができる。本発明のスーパーコンピューティング・システムで、「ｐｕｔ」は、「ｇｅｔ」より効率的である。というのは、「ｇｅｔ」が、追加されたプロトコル・メッセージを必要とし、これによって、本質的に、「ｇｅｔ」が、リモート・ノードから駆動される「ｐｕｔ」に変換されるからである。
【０１７５】
実施することができる一方的なメッセージングのより強力な形は、「ｐｕｔ」に似るが、宛先ノードで呼び出される関数アドレスが追加される。この、メッセージ到着によって動作がトリガされるメッセージングの形態を、「アクティブ」と称する。アクティブ・メッセージは、到着時にデータを変換するか何らかの形で計算しなければならない時に、特に強力である。ＭＰＩ−１では、ユーザが、集合的通信に対して動作するリダクション機能を定義できるようにすることによって、アクティブ・メッセージの単純で制限的な形が持たされる。現在のシステムでは、これを一般化して、計算プロセッサまたは入出力プロセッサのどちらが機能を実行するかを選択する能力を提供する。これらの機能は、アプリケーション・コンテキスト内でユーザモードで実行される。これは、アプリケーションが入出力プロセッサの計算能力を利用できるもう１つの形である。アクティブ・メッセージは、さらに、カーネル対カーネル・メッセージングのためにシステム・オペレーティング環境によって内部的に使用される場合がある。これの例は、入出力ノードがファイル入出力要求をサービスすることを計算ノードが要求する時に発生する。
【０１７６】
集合通信
集合通信をシステム・ネットワークにマッピングする時には、まず、特定の通信が、トーラス・ネットワークまたはツリー・ネットワークのどちらに適するかを判断しなければならない。考慮すべき要因には、通信グループのトポロジ、通信の期待される帯域幅要件、通信がツリーによってサポートされる「グローバル機能」を活用できるか否か、およびその時のネットワークの１つでのアクティビティがトラフィックの分配に他のものを使用することをを優先する可能性があるかどうかが含まれる。ノードの任意のグループ化を、どちらのネットワークでも作成することができる。最も単純な場合は、通信が真にすべてのノードへのブロードキャストである時であり、この場合には、明らかにグローバル・ツリーが優先される。しかし、ノードの列へのマルチキャストの場合には、本明細書で説明したように、トーラスのクラス経路指定を優先することができる。
【０１７７】
ランタイム・ライブラリ
計算ノード・ソフトウェアは、アプリケーション・プログラマに、よく知られたｕｎｉｘ風の開発環境に見えることが好ましい。これを達成するために、たとえばＣ、Ｃ＋＋、およびＦｏｒｔａｎ９５のランタイム・ライブラリの標準セットのサブセットが提供される。可能な範囲で、サポートされる機能では、オープン標準規格ＰＯＳＩＸ互換インターフェースが維持される。しかし、これらのライブラリによって提供される機能性の一部が、システム・アプリケーションによって使用されず、並列コンピューティング環境で意味をなさないことは、明らかである。
【０１７８】
ハードウェア・アーキテクチャの機能性を取り込むシステムへの低水準システム・プログラミング・インターフェース（ＳＰＩ）を引き渡す追加のインターフェースが設けられる。したがって、ＳＰＩは、ＭＰＩ（−１、−２、および−ＩＯのサブセット）と、Ｃ、Ｃ＋＋、およびＦｏｒｔａｎ９５のランタイムとを含む高水準アプリケーション・プログラミング・インターフェース（ＡＰＩ）の効率的な移植ベースとして働く。ＳＰＩは、並列アプリケーションのチューニングに必要な、アプリケーション・トレースおよびプロファイリング・サポートを提供するのにも使用される。多くの場合に、このサポートは、ＵＴＥ（Unified Trace Environment）視覚化ツールなどのホスト複合体上の環境とインターフェースする。
【０１７９】
前に述べたように、システム内のすべてのノードに、ＡＳＩＣに集積されたイーサネット（Ｒ）・ポート（または、その代わりにInfiniband（商標）ポート）が含まれる。そのポートを、ＴＣＰ／ＩＰを介してアプリケーション・プログラムに公開することができる。入出力ノードの場合に、イーサネット（Ｒ）・ポートを、アプリケーションから直接に使用可能にするか、その代わりに、カスタム・ランタイム環境から使用可能にすることができる。一般に、１００Ｍｂイーサネット（Ｒ）・ポート（図２）を、計算機管理およびエラー報告について、ＲＡＳネットワークとして使用することができる。スイッチングおよび分割を含む、このＲＡＳネットワークの外部ネットワーク・アーキテクチャを、さらに、ホスト複合体によって要求されるトラフィックの期待されるフローおよびタイプについて最適化することができる。入出力ノードのギガビット・イーサネット（Ｒ）は、ＩＰによって、またはＭＰＩ「インターコミュニケータ（inter-communicator）」を介するのいずれかで使用可能にされ、このＭＰＩインターコミュニケータは、ネットワーキングの詳細を標準ＭＰＩ呼出しの背後に隠蔽すると同時に、外部通信の柔軟な高帯域幅リンクを提供するという所望の機能を達成する。
【０１８０】
ＢＬＡＳおよびＢＬＡＣＳ数学ライブラリを含む「ＳｃａＬＡＰＡＣＫ」などの標準並列数学ライブラリが、人気を集めつつあり、本発明のスーパーコンピューティング・システムでサポートされる。これらのライブラリによって実行される通信では、ＭＰＩの非常に小さいサブセットが使用される。これらのＭＰＩ呼出しをサポートすることによって、移植の労力の焦点が、数学ルーチンおよびチューニングの問題に合わされる。ＥＳＳＬなどの単一ノード数学ライブラリまたはその並列版のＰＥＳＳＬが、広く使用されており、これらのライブラリは、使用可能であり、このシステムに移植することができる。
【０１８１】
入出力ノード・ソフトウェア
カーネルおよびランタイム・オペレーティング環境は、ディスクおよびギガビット・イーサネット（Ｒ）を介するホスト複合体へのホスト入出力を処理する。計算ノードのランタイム・ライブラリは、機能によってファイル入出力動作を達成し、この機能は、たとえば、高速グローバル・ツリー・ネットワークを介して入出力ノードに入出力要求を配送することであり、これによって、要求およびデータが、ギガビット・イーサネット（Ｒ）を介してホスト複合体ファイル・システム・サーバに転送される。ホスト複合体は、「フェールオーバ」戦略を使用して、信頼性のあるファイル・システム入出力を保証するので、入出力ノードは、アプリケーションに透過的に、故障したホスト・サーバからスタンバイ・サーバに要求をリダイレクトする機会を得る。さらに、ホスト複合体ファイル・システムの実装詳細を入出力ノードに分離することによって、ファイル・システム・サーバに関して異なる実施形態および戦略をサポートするのが単純になり、ファイル・システム・サーバのスケーラビリティでの柔軟性が可能になる。
【０１８２】
入出力ノードは、グローバル・ツリー（図５）に配置されるので、ＭＰＩ−ＩＯで定義されるものなどの集合入出力動作が、このシステムによって特にサポートされる。集合入出力の例は、アプリケーションですべてまたは多数のノードが、ファイルの同一の部分の読取を要求する時に発生する。この場合に、ファイル読取は、１回だけ行われ、その結果が、グローバル・ツリーを介して要求元ノードにブロードキャストされる。
【０１８３】
入出力ノードが、ホスト複合体のディスク・ドライブに対して装置レベルの制御を実行しないことが好ましい。さらに、機能レベルで入出力ノード・ソフトウェアにインターフェースし、ファイル・システム・レベルでホストによって管理されるファイル・システムにインターフェースするデーモンを、ホスト複合体で使用することができる。これによって、ホスト・ファイル・システムの代替実施形態をサポートする能力が、さらに強化される。というのは、ホスト・オペレーティング・システムが、そのネイティブ・インターフェースを介して低水準ファイル・システムを実行しているからである。最後に、ファイル・システム・ソフトウェアを実施する増分開発パスがもたらされる。
【０１８４】
ブート
電源投入時に開始され、各ノードで稼動するカーネルで終わる４ステップの処理として、ブートアップ・アルゴリズムを説明する。１）第１ステップは、電力がノードに印加される時に自動的に行われる。このステップでは、各ノードが、論理アレイおよびメモリ・アレイを検証し、その後、１００Ｍｂイーサネット（Ｒ）を自動的に構成し、イネーブルして、ホスト複合体からのＪＴＡＧコマンドを受け入れる、パワーオン・セルフ・テストを実行する。２）第２ステップは、ホスト複合体によって開始され、並列に実行されるが、これによって、パワーオン・セルフ・テストの結果を検査するＪＴＡＧインターフェースが実施され、各ノードのさらなる診断および構成が実行される。このステップでは、各ラックのすべてのセンサおよびモニタの状況も検証される。このステップは、ブートストラップ・プログラムおよびノードごとのパーソナライゼーション情報が、１００Ｍｂイーサネット（Ｒ）ＪＴＡＧインターフェースを介して各ノードにロードされ、実行を開始できるようになった時に完了する。ブートストラップ・プログラムは、チップの計算プロセッサおよび入出力プロセッサを完全に初期化し、組込みメモリおよびＤＤＲメモリを検査し、トーラス・ネットワークおよび／またはグローバル・ツリー・ネットワークと１００Ｍｂおよび／または１Ｇｂイーサネット（Ｒ）をテストし、構成し、最後に、状況メッセージを用いてホストに連絡する。ホスト複合体に必要な作業負荷を大幅に減らし、ブート処理の並列性を高めるのは、このステップ中に必要なブートストラップ・プログラムのロードを含むＪＴＡＧ相互作用のほとんどが、イーサネット（Ｒ）・ブロードキャスト・パケットを介して処理される場合である。３）第３ステップは、各ノードがブートストラップ・プログラムのソフトウェア制御の下で完全に機能する状態で開始され、ブートストラップ・プログラムは、ノード・パーソナライゼーション情報を使用して、次にどのように進行するかを判断する。ブートは、ホスト複合体の示されたサーバに連絡して、イーサネット（Ｒ）を介してカーネル全体をロードすることによって進行する。概念上、このステップは、よく知られた「ｂｏｏｔｐ」ネットワーク・ブート動作に似ているが、このシステムの計算機およびホストのアーキテクチャに従って設計されたものである。４）第４ステップは、各計算ノードおよび入出力ノードが、完全なシステム・ノード・カーネルを実行している時に開始される。この時点で、入出力ノードが、ホスト複合体に連絡して、本明細書に記載の、ファイル・システム・インターフェース・サービスおよび他の入出力サービスを提供する入出力ノード固有ソフトウェアをロードする。このソフトウェアは、カーネルからは、特別に構成され特権を与えられた「アプリケーション」プログラムに見える。その一方で、計算ノードは、アプリケーション・プログラムがロードされるまで、ホスト複合体からの連絡を待つ。システムの再分割が、区画内のすべてのノードの完全なリブートを必要としないが、すべてのノードが、内部高速リンクの使用を完全に静止していることを必要とすることを理解されたい。再分割の後に、カーネルは、すべての経路指定およびクラス使用構成をリセットする必要がある。
【０１８５】
電源オン・リセット状態
パワー・アップ時に、各ノードは、そのイーサネット（Ｒ）・ポートが生きており、ユニキャスト・パケットまたはブロードキャスト・パケットを受信するよう構成されていることを見つける。イーサネット（Ｒ）・ポートは、プロセッサのデバッグに一般に使用されるＪＴＡＧスキャン・ストリングに直接にインターフェースされる。これによって、システムの単一プロセッサ用に設計された非常に成熟したデバッグ環境の使用が可能になる。どのノードでも、この非常に強力な技法を使用して、ホストからアドレッシングし、完全にデバッグすることができる。このインターフェースは、ノードがまだリセットされている間に動作するようにマッピングすることができ、ＡＳＩＣ内のすべてのスキャンレジスタのアップロードおよびデバッグが可能になる。
【０１８６】
ノードは、電源を入れられ、初期システム検査のために、すべての使用可能なＬＢＩＳＴおよびすべての使用可能なＡＢＩＳＴを実行する。ハードウェア・シーケンサが、電源投入時のこのテストを自動的に制御し、これらの診断から得られる合否シグネチャを、レジスタ内でブート・コードから使用可能にする。１例が、４４０コアのＭＩＳＲシグネチャ・レジスタである。上のＬＢＩＳＴ／ＡＢＩＳＴによってカバーされる論理の量によって、システムのソフトウェア検査にどれほどの追加診断が必要になるかが決定される。
【０１８７】
パワーオン・リセット状態では、１００Ｍｂイーサネット（Ｒ）・バスを介してＪＴＡＧコマンドを受け入れるようにハードウェアが構成され、他の入出力コントローラが、１００Ｍｂイーサネット（Ｒ）と衝突しないことが保証される。さらに、ＬＢＩＳＴ／ＡＢＩＳＴが実行された後に、ＡＳＩＣのすべてのクロックが、動作状態にされる。
【０１８８】
１０／１００イーサネット（Ｒ）・コントローラのイーサネット（Ｒ）ＭＡＣアドレスは、各ノードの一意のアドレス可能度のために、ＡＳＩＣへの入出力終端を介してセット・アップされる。これによって、ノード故障の検出が可能になり、並列ノード・ブートが提供される。
【０１８９】
信頼性・可用性・保守性（ＲＡＳ）
最大のアップタイムについてスーパーコンピュータ・システムを最適化するために、最も頻繁に故障する個々の構成要素の冗長性が提供される。これは、システムを再分割して既知の欠陥のあるセクタを分離する能力に追加されるものである。システムの信頼性は、「ハード」障害および「ソフト」または過渡障害に関する構成要素の固有の故障率、構成要素の個数、およびこれらの障害が発生する時にシステムがこれらの障害に応答する形に依存する。したがって、潜在的な構成要素障害（ＡＳＩＣおよびその構成要素、ＤＤＲ、コネクタ（カード・エッジ接点およびケーブル・コネクタなど）、電源（ＤＣ−ＤＣおよびＡＣ−ＤＣ）、エア・ムービング・デバイス（Ａｉｒ  Ｍｏｖｉｎｇ  Ｄｅｖｉｃｅ）など）に関する障害保護方法が提供される。
【０１９０】
障害保護方法
ノードＡＳＩＣに、ソフト・エラーおよびハード・エラーに起因する高い故障率を有する構成要素に対するエラー検出および訂正回路が組み込まれる。これらの構成要素には、外部ＤＤＲメモリ、内部ＥＤＲＡＭ  Ｌ３、内部Ｌ２、および設計者が制御するすべてのＳＲＡＭアレイが含まれる。外部ＤＤＲメモリおよび内部ＥＤＲＡＭにも、冗長ビット・ステアリングが含まれる。ハードウェアによって制御される消し込みを実施して、外部ＤＤＲメモリおよび内部ＥＤＲＡＭから累積ソフト・エラーを除去することができる。内部レジスタ・アレイおよびクリティカル・データフロー・バスは、エラー検出用のパリティを有する。
【０１９１】
さらに、前に述べたように、このシステムで使用されるすべての電源が、複製される、すなわち、Ｎ＋１冗長性が実施される。サービス期間内に２つの故障を有する確率は、異例に小さい。さらに、本発明のすべてのエア・ムービング・デバイスが、Ｎ＋１冗長である。たとえば、２つのファンが、カバーされるノード・カードの冷却に使用され、第３のファンが冗長性のために使用される。３つのファンのすべてが動作している時には、ファン速度を下げて、信頼性を高める。１つが故障した時には、故障したファンが交換されるまで、他の２つの速度を上げる。同一のファン・ユニットの２つのファンがサービス期間内に故障する確率は、非常に低い。
【０１９２】
全体として、広範囲のエラー検出および訂正機能が、本発明で実施されるノードＡＳＩＣに組み込まれる。故障の場合に、本明細書で述べたように、計算機の１行（９ラック）を超えないように制限されると仮定して、このシステムを再分割して故障を除去することができる。システム再分割の後に、このシステムを、最後のチェックポイントからリスタートすることができる。
【０１９３】
トーラス・ネットワークの信頼性
トーラス・ネットワークは、それに注入されたすべてのパケットの単一のコピーを信頼性のある形で送達するか、回復不能エラー状態を示す。したがって、送信側のソフトウェアは、注入されたメッセージのコピーを保存する必要がなく、受信側のソフトウェアは、シーケンス番号を維持する必要がない。したがって、ネットワーク信頼性は、エンドツーエンドおよびリンクレベルのエラー検出の組合せによって提供される。ほとんどの場合に、リンクレベル・エラー検出特徴によって、エラーが発見され、しばしば回復される。エンドツーエンド・エラー検出は、主に、ルータ自体によって引き起こされ、リンクレベル・プロトコルによって見逃されたエラーを発見するのに使用される。
【０１９４】
リンクレベル・エラー
リンクレベル・エラー検出方式は、すべてのパケットに付加される複数のパリティ・ビットの使用に基づく。複数ビット・エラーは、シーケンシャル・バーストで発生する可能性があるので、データ・ビットに、ラウンドロビン順序で検査ビットが割り当てられる。したがって、各検査ビットは、オーバーラップしない組の４つおきのデータ・ビットをカバーする。この割当を用いると、複数ビット・エラーを検出する確率が、シーケンシャル割当方式の確率よりはるかに高くなる。
【０１９５】
バーチャル・カットスルー経路指定のゆえに、破壊されたものとして検出されるパケットが、複数の下流ルータを介して既に転送されている可能性がある。したがって、このパケットを単純に捨て、再送信することはできない。そうではなく、エラーを検出したルータは、パケットの最後のバイトを修正して、エラー状態を示し、そのパケットを最終的に受け取るすべてのルータによってそのパケットが捨てられるようにする。破壊されたパケットが、バーチャル・カットスルーＦＩＦＯに完全に保管されている場合には、そのパケットを即座に捨てることができる。
【０１９６】
破壊されたパケットをマークするほかに、エラーを検出したルータは、本明細書で図７および８に関して説明した機構を使用して、リンクレベル再送信を引き起こす。この回復機構によって、すべてのパケットの唯一の「良好な」コピーが、所期のレシーバに到着することが保証される。破壊されたものとしてマークされたパケットは、ルータのローカル受信回路によって自動的に破棄され、受信ＦＩＦＯには挿入されない。
【０１９７】
リンクレベル・エラーのもう１つの源は、「失われた」ビットであり、これは、誤って経路指定される、誤った形式のパケットにつながる。ネットワークは、単純にこの状態を報告し、システム・ソフトウェアが回復できるようにする。
【０１９８】
エンドツーエンド・エラー
エンドツーエンド・エラー検出機構は、パケットが正しく処理され、ルータによって破壊されないことを保証するのに使用される。リンクレベル・エラー検出機構は、そのようなエラーを発見することができない。というのは、修正されたヘッダ・ビットを回復するために、各ルータでパリティ・ビットがはぎ取られ、再生成されるからである。エンドツーエンド・エラー検出の機構は、パケット・タイプ、宛先、およびペイロードなど、移動中に修正されないパケット・フィールドに対する巡回冗長検査（ＣＲＣ）であることが好ましい。エンドツーエンドＣＲＣエラーの検出は、ハードウェアによって報告され、チェックポイント・ロールバックにつながる。
【０１９９】
可用性
本発明のシステム内の可用性は、単一ラックの粒度で定義され、管理される。すなわち、１０２４個のノードを含む「ラック」が、それを基礎として、良好または不良と判定され、管理される。初期プログラム・ロードの際に、この判定が、診断によって処理される。ランタイムには、これが、エラー検出および報告方式を介して処理される。欠陥のあるラックは、機能する区画に含めるために使用可能ではないので、構成マトリックスを作成して、すべてのラックの状況を識別する。
【０２００】
アプリケーション
多数の新しい協同によって、前には困難であったアルゴリズムを生かすことができるので、本発明のスケーラブル・ウルトラコンピュータの独自の特性から利益を得る多数のアプリケーションがある。これらのアプリケーションに鑑みて、このシステムに含まれるアーキテクチャ的改善には、最も重要な事に、４ビット／ｐｃｌｋ／方向まで倍にされたトーラス・リンク帯域幅と、グローバル・ツリー・ネットワークと、２５６ＭＢ／ノードまで増やされたベースライン・メモリ・サイズと、メッセージ受渡を支援するための各ノードへの第２プロセッサ・コアの追加が含まれる。
【０２０１】
科学アプリケーションの要約
最初から（基本的な原理に基づいて）量子分子動力学（ＭＤ）は、顕微鏡レベルで物質の挙動をシミュレートするように独自に配置され、科学の複数の分野で応用分野を見つけた。これは、ウルトラコンピュータの「キラー・アプリケーション」と呼ばれた。ＪＥＥＰコードは、最初の分子動力学の技術的現状の実施形態である。古典的ＭＤコードで行われたものと異なって、ＪＥＥＰでは、物質の電子構造および原子内相互作用の挙動に関する経験的な前提がない。量子力学の法則および運動方程式だけに基づいて、電子は、自由に結合を形成するか破壊し、原子は、自由に移動し、分子を形成する。
【０２０２】
ＪＥＥＰなどの第一原理ＭＤコードは、問題の広範囲の対象領域での応用例を有する。１つの例が、温度または圧力の極端な条件下での物質の理解である。もう１つの例には、複雑な生物系および材料特性のよりよい理解の形成が含まれる。１０６から１０７個の体積要素内の１０３から１０４個の原子を有し、現在の計算のタイム・ステップ後の計算で約１０２から１０４の係数または増加を有する問題をシミュレートすることが望ましい。さらに、１０３から１０４長いシミュレーション時間が要求される。
【０２０３】
物質応用例
ＪＥＥＰなどのコードによって、その領域が理論的観点と実験的観点の両方から接近が困難であった、暖かい物体の物理的特性（warm matter physics）すなわち、物性物理学（たとえば固体密度での冷たい物体）およびプラズマ物理学（たとえばイオン化した材料）の間のインターバルへの洞察がもたらされる。ＪＥＥＰは、破壊点まで引張られた時の炭化ケイ素（アモルファス半導体）の顕微鏡的塊の応答をモデル化するのに使用された。このシミュレーションは、硬度が、無秩序合金について第一原理から初めて計算された時である。この研究によって、破壊の始まりを材料の化学的特性に関連付けることが可能になったが、これは、過去には理論的および経験的の両方で、特性を表すことが困難であった。
【０２０４】
衝撃圧縮された液体重水素。異常な条件（圧力および温度）での水素ＥＯＳの計算。これによって、固体とプラズマの間（凝縮物質でも冷濃密物質でもない）の暖かい物体が、１／２ｅＶと１０ｅＶの間で科学的観点から非常に困難になることが調べられた。状態方程式（ＥＯＳ）および不透明度データは、この体制で最も弱い。
【０２０５】
このクラスのウルトラコンピュータでのみ達成可能なＪＥＥＰの材料科学の他の応用例には、圧力下の水（実験プログラムと関連）、高圧下での二酸化炭素の結晶構造、「超硬」高分子二酸化炭素が含まれる。
【０２０６】
生物学の応用例
ＪＥＥＰは、現在、水中のＤＮＡ骨格の小さい分離された断片に何が起こるかを試験している。これらの革新的なシミュレーションは、実際に、現実の生物学的環境（水溶液）での最初のＤＮＡ断片なので、重要である。たとえば、シミュレーションでは、断片からのジメチルリン酸の分子が水分子とどのように相互作用するかが調査される。これらの最初のシミュレーションは、広く使用されている相互作用の経験的モデルと比較されつつある。これらのシミュレーションによって、ＤＮＡ相互作用の標準モデルで設けられる前提が有効または無効とされることが期待される。しかし、現在のシミュレーションは、少数の塩基対と最小限の量の水分子を伴う骨格の小さい断片に制限される。さらに、シミュレーションは、ピコ秒のタイムスケールに制限される。生物学的に興味深いタイムスケールは、数百マイクロ秒である。本発明のシステムを用いると、生物学的に重要なＤＮＡ断片を、生物学的に関連するタイムスケールで、完全な水溶液内でモデル化することができる。本発明の能力を用いると、生物学的に正確な状況でのＤＮＡの重要な理解を、シミュレーションを介して得ることができる。これは、生化学の潜在的に重要な進歩の前兆になる。
【０２０７】
ＪＥＥＰのもう１つの生物学の応用例では、単一のＤＮＡ塩基対を抽出して、相補的な塩基がどのように相互作用するかを調べる。この研究の目標は、ＤＮＡを結合させるものと、どの分子相互作用が結合の鍵であるかを理解することである。希望は、結合機構がＤＮＡの複製にどのように影響するかを発見することである。これは、損傷または突然変異に鑑みて、ＤＮＡ複製の忠実度の理解をサポートする。本発明の並外れた計算能力を用いて、これらの詳細な調査を、初めて達成することができる。これは、生物学的に重要な文脈でのＤＮＡ結合および相互作用のよりよいモデルにつながる。
【０２０８】
ＪＥＥＰアルゴリズム
ＪＥＥＰは、現在はＭＰＩおよびＯｐｅｎＭＰを使用してＣ＋＋で記述される、プロプラエタリ・アルゴリズムである。密度汎関数理論（ＤＦＴ）を使用して、よりゆっくり動く原子核の回りの電子運動（電子−電子相互作用および電子−核相互作用）を説明し、古典動力学を使用して、空間内の原子核の運動を計算する。このシミュレーションの最も重要で時間がかかる部分は、各分子動力学ステップでの電子構造の計算である。これには、Ｋｏｈｎ−Ｓｈａｍ方程式を解くことが含まれ、この方程式は、各電子状態の結合された非線形積分微分方程式である。
【０２０９】
ＪＥＥＰで使用されるアルゴリズムは、解のフーリエ展開に基づく。このアルゴリズムのクリティカルな部分は、３次元複素フーリエ変換、数千個の長い（１０６から１０７）複素ベクトルの正規化である。この２つの演算の効率的な実装によって、アルゴリズム全体の効率的なパフォーマンスが保証される可能性が高い。
【０２１０】
本発明のスーパーコンピュータでは、このアプリケーションが必要とするＦＦＴ、線形方程式、および行列転置の演算が効率的に実施される。
【０２１１】
科学応用例の要約
最近のＦｅｒｍｉｏｎ  Ｍｏｎｔｅ  Ｃａｒｌｏの研究によって、電子および原子構造、凝縮物質、核物理、および生物学で生じるものを含む、量子多体問題を解く能力の大きな進歩が提供される。多体系のシュレージンガ方程式の数値解は、６０年以上にわたる研究対象であったが、これまでは、制御されない近似を伴わない正確な解が可能な方法は現れていない。実際、この問題は、非常に手ごわいので、大多数の研究（および最近のノーベル化学賞）の関心の対象は、密度汎関数理論であり、この理論の前提は、多体方程式の解が本質的に不可能であるということである。主要な問題は、次元数の問題であり、２０個の電子系（２分子の水など）の状態を記述する方程式が、６０次元の偏微分方程式になる。これを正確に３次元に写像する既知の方法はなく、偏微分方程式の数値解に関する従来の方法は、この多次元空間では通用しない。
【０２１２】
モンテ・カルロ法が、多次元の数学的問題の数値処理の実用的な方法を提供することが、一般に既知である。これは、放射線輸送（７次元まで）および統計物理学（数百万次元まで）にいつも使用される。ある種のシュレージンガ方程式（解がいたるところで可能である最低の状態に関する）を解く方法も、数十年にわたって使用可能であった。しかし、物理学的関心の対象であるほとんどの問題への曖昧でない適用は、この分野で周知の「Fermion Sign Problem」と称する問題によって妨げられてきた。その詳細な説明は、この簡単な報告には技術的にすぎるが、本質的に、この問題は、多数電子系が、パウリの原理（波動関数が同一粒子の交換において非対称でなければならない）を満たさなければならないという事実から派生する。標準的なモンテ・カルロ手法は、虚数時間でのシュレージンガ方程式が拡散方程式であり、局所的であるという事実に基づいて構築される。パウリの原理によって、非局所境界方程式が課せられるが、これは、モンテ・カルロ法に対する深い妨害である。
【０２１３】
この深い困難を克服できる新しいクラスの方法が、本発明のシステムで実行されるアプリケーションとして提案された。この新しい方法の中心になる要素は、算術符号を担持するオブジェクトに関する相関酔歩の使用である。ごく最近の進歩によって、プログラムの性能を数桁加速することができるアルゴリズムの変更が実証された。
【０２１４】
これらの量子モンテ・カルロ計算は、物理的、数学的、または数値的な近似なしで、多フェルミ粒子シュレージンガ方程式に対する（初めての）正確な数値解を作る。これは、科学界が関心を持つさまざまな物理系すなわち、原子構造、分子構造、凝縮物質（高圧下の水素など）、および核構造に適用される。
【０２１５】
科学応用例の要約
転位シミュレーションが、ひずみ＞１０％での加工硬化、１００％までの転位パターニング（dislocationpatterning）および塑性不安定および塑性流動局在性の展開、多結晶での転位のモデル化、脆性‐延性遷移のモデル化などの「グランド・チャレンジ」問題に対処できるようになると予想される。
【０２１６】
本発明のアーキテクチャは、転位動力学のアルゴリズムを分析することによって、これらの問題の対処において非常に有効である。転位動力学では、原子的領域と巨視的領域の中間のメゾスケール範囲での問題に対処する。実際の材料の挙動の多くが、このスケールでの転位の挙動によって決定される。
【０２１７】
本発明を、その例示的で前もって形成された実施形態に関して具体的に図示し、説明してきたが、当業者は、形態および詳細における前述および他の変更を、本発明の趣旨および範囲から逸脱せずに行うことができることを理解するであろう。本発明の趣旨および範囲は、請求項の範囲のみによって制限される。
【図面の簡単な説明】
【０２１８】
【図１】８つのコンピューティング・ノードを相互接続する３次元トーラスの小さい部分１０を示す図である。
【図２】本発明の原理によるコンピューティング・ノードＡＳＩＣを示す詳細なブロック図である。
【図３】図２のリンク・バッファおよびバーチャル・カットスルー経路指定制御ブロック２６を示す詳細なブロック図である。
【図４】単一ノードのメモリ・システムを示す詳細なブロック図である。
【図５】本発明によるグローバル・シグナルおよび外部ネットワークの接続を含むグローバル・コンバイニング・ツリー・ネットワークを示す図である。
【図６】本発明の原理によるグローバル・コンバイニング・ツリー・ネットワークおよびバリア・ネットワークを示す図である。
【図７】単一のトーラス・ルータ７０の基本アーキテクチャを示す図である。
【図８】図７のリンク入力回路７２の例示的実施形態の詳細な図である。
【図９】図７のリンク出力回路７４の例示的実施形態の詳細な図である。
【図１０】図７のローカル・ネットワーク注入回路７３の例示的実施形態を示す詳細な図である。
【図１１】図７のローカル・ネットワーク受信回路７６の例示的実施形態を示す詳細な図である。
【図１２】本発明の好ましい実施形態によるトランスポート・パケット１００のフォーマットを示す図である。
【図１３】本発明のウルトラスケール・スケーラブル・スーパーコンピューティング計算機を示す概念的な平面図である。
【図１４】本発明によるグローバル・クロック分配システムを示す図である。
【図１５】コンピュータ・カードのプロセッサ・ノードおよびツリー接続を示す概略図である。
【図１６】入出力カード・ツリー・リンク接続を示す図である。
【図１７】本発明によるラック内の基本的な気流を示す図である。
【図１８】本発明によるトーラスおよびツリーの１つの可能な物理的経路指定を示す図である。
【図１９】本発明による、システム再分割を制御するシステム・リンク・チップおよび動作を示す図である。
【図２０】本発明による正規分割およびスプリット分割の両方の例と、ミッドプレーンを分離できる方法を示す図である。
【図２１】２つのノードを相互接続するケーブルの両端を駆動する差動同時両方向ドライバ／レシーバ回路４５０の対を示すブロック図である。
【図２２】低電力で信頼性があり高速のシリアル・データ・キャプチャのための受信マクロ・ブロックを示す図である。
【図２３】低電力で信頼性があり高速のシリアル・データ・キャプチャのための送信マクロ・ブロックを示す図である。
【図２４】フェールオーバを備えたツイン接続ＳＣＳＩ  ＲＡＩＤの概念的な繰り返し構造５５０を示す図である。
【図２５】図６のグローバル割込みおよびバリア・ネットワーク６０で実施される非同期グローバル・シグナル生成に使用される論理を示す図である。
【図１】
2004538548.tif 000006
【図２】
2004538548.tif 000007
【図３】
2004538548.tif 000008
【図４】
2004538548.tif 000009
【図５】
2004538548.tif 000010
【図６】
2004538548.tif 000011
【図７】
2004538548.tif 000012
【図８】
2004538548.tif 000013
【図９】
2004538548.tif 000014
【図１０】
2004538548.tif 000015
【図１１】
2004538548.tif 000016
【図１２】
2004538548.tif 000017
【図１３】
2004538548.tif 000018
【図１４】
2004538548.tif 000019
【図１５】
2004538548.tif 000020
【図１６】
2004538548.tif 000021
【図１７】
2004538548.tif 000022
【図１８】
2004538548.tif 000023
【図１９】
2004538548.tif 000024
【図２０】
2004538548.tif 000025
【図２１】
2004538548.tif 000026
【図２２】
2004538548.tif 000027
【図２３】
2004538548.tif 000028
【図２４】
2004538548.tif 000029
【図２５】
2004538548.tif 000030
【国際公開パンフレット】
2004538548.tif 000031
2004538548.tif 000032
2004538548.tif 000033
2004538548.tif 000034
2004538548.tif 000035
2004538548.tif 000036
2004538548.tif 000037
2004538548.tif 000038
2004538548.tif 000039
2004538548.tif 000040
2004538548.tif 000041
2004538548.tif 000042
2004538548.tif 000043
2004538548.tif 000044
2004538548.tif 000045
2004538548.tif 000046
2004538548.tif 000047
2004538548.tif 000048
2004538548.tif 000049
2004538548.tif 000050
2004538548.tif 000051
2004538548.tif 000052
2004538548.tif 000053
2004538548.tif 000054
2004538548.tif 000055
2004538548.tif 000056
2004538548.tif 000057
2004538548.tif 000058
2004538548.tif 000059
2004538548.tif 000060
2004538548.tif 000061
2004538548.tif 000062
2004538548.tif 000063
2004538548.tif 000064
2004538548.tif 000065
2004538548.tif 000066
2004538548.tif 000067
2004538548.tif 000068
2004538548.tif 000069
2004538548.tif 000070
2004538548.tif 000071
2004538548.tif 000072
2004538548.tif 000073
2004538548.tif 000074
2004538548.tif 000075
2004538548.tif 000076
2004538548.tif 000077
2004538548.tif 000078
2004538548.tif 000079
2004538548.tif 000080
2004538548.tif 000081
2004538548.tif 000082
2004538548.tif 000083
2004538548.tif 000084
2004538548.tif 000085
2004538548.tif 000086
2004538548.tif 000087
2004538548.tif 000088
2004538548.tif 000089
2004538548.tif 000090
2004538548.tif 000091
2004538548.tif 000092
2004538548.tif 000093
2004538548.tif 000094
2004538548.tif 000095
2004538548.tif 000096
2004538548.tif 000097
2004538548.tif 000098
2004538548.tif 000099
2004538548.tif 000100
2004538548.tif 000101
2004538548.tif 000102
2004538548.tif 000103
2004538548.tif 000104
2004538548.tif 000105
2004538548.tif 000106
2004538548.tif 000107
2004538548.tif 000108
2004538548.tif 000109
2004538548.tif 000110
2004538548.tif 000111
2004538548.tif 000112
2004538548.tif 000113
2004538548.tif 000114
2004538548.tif 000115
2004538548.tif 000116
2004538548.tif 000117
2004538548.tif 000118
2004538548.tif 000119
2004538548.tif 000120
2004538548.tif 000121
2004538548.tif 000122
2004538548.tif 000123
2004538548.tif 000124
2004538548.tif 000125
2004538548.tif 000126
2004538548.tif 000127
2004538548.tif 000128
2004538548.tif 000129
2004538548.tif 000130
2004538548.tif 000131
2004538548.tif 000132
2004538548.tif 000133
2004538548.tif 000134
2004538548.tif 000135
2004538548.tif 000136
2004538548.tif 000137
2004538548.tif 000138
2004538548.tif 000139
2004538548.tif 000140
2004538548.tif 000141
2004538548.tif 000142
2004538548.tif 000143
2004538548.tif 000144
2004538548.tif 000145
【国際調査報告】
2004538548.tif 000146
2004538548.tif 000147