(57)【要約】【課題】  エラー検出及び／またはエラー訂正が可能な論理を含む相互接続構造を提供する。【解決手段】  論理は、１つのデータ・ストリームを複数の固定サイズ・セグメントに配列する。個々のセグメントには、少なくともセット・プレゼンス・ビットとターゲット・アドレスとを含むヘッダと、少なくともセグメント・データとターゲット・アドレスのコピーとを含むペイロードと、ペイロードのパリティを指定するパリティビットとが含まれ、論理が、複数のセグメントを多次元行列に配列する。論理は、セグメントエラー、列エラー、ペイロードエラーを検出するための分析を含めて、複数のスイッチをデータが通過した後でセグメントデータを多次元で分析する。【選択図】  図１Ａ
2007528148.tif 000002
【特許請求の範囲】
【請求項１】
相互接続構造であって、
複数の入力ポート及び少なくとも１つの出力ポートを含むデータ・スイッチと、
ヘッダＨ及びペイロードＰを含むデータ・セグメントをサブセグメントの集合Ｃに配列するように適合された論理とを含み、
個々のサブセグメントｓｉが、ターゲット出力ポートに関する情報を含むヘッダｈｉと、前記ヘッダＨ及び前記ペイロードＰの関数であるペイロードｐｉとを含み、但し、ｉは０からＣ−１までの値であり、
前記ペイロードｐｉが、前記サブセグメントｓｉとは異なるサブセグメントｓｋのペイロードｐｋ中のデータに基づく少なくとも１つのエラー訂正ビットを更に含むことを特徴とする相互接続構造。
【請求項２】
選択された複数の入力ポートから前記サブセグメントｓｉの前記集合Ｃを少なくとも１つのターゲット出力ポートへ送信しかつ前記ヘッダｈｉによって指定された前記ターゲット出力ポートで受信された前記ペイロードｐｉから前記ペイロードＰを再構築するように適合されている論理を更に含み、
前記論理が、更に、サブセグメント・エラー状態において前記ペイロードＰを再構築するように適合されていることを特徴とする請求項１に記載の相互接続構造。
【請求項３】
前記論理が、サブセグメントｓｉのペイロードｐｉにエラーが生じた場合には前記ペイロードＰを再構築するように適合されていることを特徴とする請求項１に記載の相互接続構造。
【請求項４】
前記論理が、サブセグメントｓｉのミスルートが発生した場合には前記ペイロードＰを再構築するように適合されていることを特徴とする請求項１に記載の相互接続構造。
【請求項５】
複数のデータ・スイッチを更に含み、
前記サブセグメントの前記集合Ｃが、
サブセグメントｓ１及びｓ２であって、前記論理が前記複数のデータ・スイッチ内の異なるデータ・スイッチを通って前記サブセグメントｓ１及びｓ２を送信するように適合されている、該サブセグメントｓ１及びｓ２を含むことを特徴とする請求項１に記載の相互接続構造。
【請求項６】
前記データ・スイッチが、多重レベル最小論理（ＭＬＭＬ）ネットワークであることを特徴とする請求項１に記載の相互接続構造。
【請求項７】
前記論理が、サブセグメントｓ１のヘッダｈ１内のエラーが原因でサブセグメントｓ１のミスルートが発生した場合には、前記ペイロードＰを再構築するように適合されていることを特徴とする請求項１に記載の相互接続構造。
【請求項８】
前記論理が、サブセグメントｓ１とは異なるサブセグメントｓ２のヘッダｈ２内のエラーが原因でサブセグメントｓ１のミスルートが発生した場合には、前記ペイロードＰを再構築するように適合されていることを特徴とする請求項１に記載の相互接続構造。
【請求項９】
前記論理が、ハードウェア・エラーが原因でサブセグメントｓ１のミスルートが発生した場合には前記ペイロードＰを再構築するように適合されていることを特徴とする請求項１に記載の相互接続構造。
【請求項１０】
前記データ・セグメントが、データ・パケットであることを特徴とする請求項１に記載の相互接続構造。
【請求項１１】
前記データ・セグメントが、複数のサブセグメントに分解されたデータ・パケットであることを特徴とする請求項１に記載の相互接続構造。
【請求項１２】
相互接続構造であって、
複数の入力ポート及び少なくとも１つの出力ポートを含むデータ・スイッチと、
ヘッダＨ及びペイロードＰを含むデータ・セグメントをサブセグメントの集合Ｃに配列するように適合された論理とを含み、
個々のサブセグメントｓｉが、ターゲット出力ポートに関する情報を含むヘッダｈｉと、前記ヘッダＨ及び前記ペイロードＰの関数であるペイロードｐｉとを含み、但し、ｉは０からＣ−１までの値であり、
前記論理が、サブセグメントｓｉのミスルートが発生した場合には前記ペイロードＰを再構築するように適合されていることを特徴とする相互接続構造。
【請求項１３】
前記ペイロードｐｉが、サブセグメントｓｉとは異なるサブセグメントｓｋのペイロードｐｋ中のデータに基づく少なくとも１つのエラー訂正ビットを更に含むことを特徴とする請求項１２に記載の相互接続構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、相互接続アーキテクチャに関し、詳細には、エラー検出及び／またはエラー訂正が可能な論理を含む相互接続構造に関する。
【背景技術】
【０００２】
計算／通信プロダクトは、スーパコンピュータからグリッドコンピューティングスイッチ、増え続けるルータまで多岐にわたるが、相互接続ネットワーク技術は、そのような計算／通信プロダクトの基本構成要素である。しかしながら、この技術に依存するシステムのスケーラビリティは、既存の相互接続技術の特性によってかなり制限されている。
【０００３】
例えば、過去１０年間でスーパコンピュータは進歩したが、基礎物理の分野、気候及び環境モデリング、ＤＮＡ塩基配列決定におけるパターンマッチングなどにおいて生じるデータ転送集約的な計算処理上の問題の要求を費用効果的に満たす能力は、スーパコンピュータ相互接続ネットワークの待ち時間により制限され続けている。
【０００４】
例えば、スーパコンピュータのクレイ（Cray）Ｔ３Ｅにおいては、プロセッサ群は、３次元の双方向トーラスで相互接続されている。集中的なデータ転送に関連するコンピュータ・カーネルのクラスでは、アーキテクチャの待ち時間が原因で、平均するとプロセッサの９５％ないし９８％がデータを待つ間アイドル状態にある。さらに、そのようなアーキテクチャにおいて、コンピュータ中の約半分のボードがネットワークボードである。必然的に、マシン上で実行される浮動小数点演算は、パーソナルコンピュータ上での浮動小数点演算より最大で１００倍の費用がかかることがあり得る。
【０００５】
マイクロプロセッサの計算機能力及びパラレル・コンピューティングの費用が共に増大してきたので、代わりの並列処理プラットフォームを提供するためのハイエンド・ワークステーションのネットワーク化の概念が進化してきた。クラスタ・コンピューティングの費用効果的な解決には、バンド幅が大きくかつ待ち時間が短いスケーラブルな相互接続ネットワークを欠くことができない。今日まで、解決策は、ミリネット（Myrinet）及びＱｓＮｅｔなどの専用ハードウェアによって決まっていた。
【０００６】
ミリネット及びＱｓＮｅｔを用いる小型スイッチング・システムは、適度にバンド幅が大きくかつ中程度に待ち時間が短いが、スケーラビリティに関しては、費用及び待ち時間の点で、スーパコンピュータネットワークで見られるのと同じ問題を抱えている。というのも、両者は、Ｃｌｏｓネットワーク、ファット・ツリー（fat tree）、またはトーラスなどの複数ノード・コンフィギュレーションで接続される小さなクロスバ・ファブリックに基づくものであるからである。クロスバでできた大きな相互接続は、基本的に制限されている。
【０００７】
これと似たようなスケーラビリティの限界は、ライン速度がＯＣ１９２に増加したので、最大３２個のポートが基準であるような今日のインターネット・プロトコル（ＩＰ）ルータに到達した。
【０００８】
多くの産業にわたる次世代用途の絶え間なく増大する需要に対応することになる「スケーラブルな」相互接続アーキテクチャを捜し求めて多くの年月が研究開発に費やされてきた。しかしながら、アーキテクチャの能力が年月を重ねるにつれて大いに進化的に進歩したとしても、既存のアーキテクチャでは費用効果的な方法で増大する需要に対応することはできない。
【特許文献１】米国特許第５，９９６，０２０号明細書
【特許文献２】米国特許第６，２８９，０２１号明細書
【特許文献３】米国特許第６，７５４，２０７号明細書
【特許文献４】米国特許第６，６８７，２５３号明細書
【特許文献５】米国特許出願第０９／６９３，６０３号（発明の名称："Scaleable Interconnect Structure for Parallel Computing and Parallel Memory Access"、発明者：John Hesse、Coke Reed）
【特許文献６】米国特許出願番号第０９／６９３，３５８号（特許番号第７，０１６，３６３号）明細書
【特許文献７】米国特許出願第０９／６９２，０７３号（発明の名称："Scalable Method and Apparatus for Increasing Throughput in Multiple Level Minimum Logic Networks Using a Plurality of Control Lines"、発明者：Coke Reed、John Hesse）
【特許文献８】米国特許出願番号第０９／９１９，４６２号（出願公開番号第２００３００３５３７１号）明細書
【特許文献９】米国特許出願番号第１０／１２３，３８２号（出願公開番号第２００３０１９３９４３号）明細書
【特許文献１０】米国特許出願番号第１０／２８９，９０２号（出願公開番号第２００４００９０９６４号）明細書
【特許文献１１】米国特許出願番号第１０／７９８，５２６号（出願公開番号第２００４０２６４３６９号）明細書
【特許文献１２】米国特許出願番号第１０／８６６，４６１号（出願公開番号第２００４０２６７９５８号）明細書
【特許文献１３】米国特許出願番号第１０／８８７，７６２号（出願公開番号第２００５０００８０１０号）明細書
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで本発明は、上記従来の状況に鑑み、エラー検出及び／またはエラー訂正が可能な論理を含む相互接続構造を提供する。論理が、１つのデータ・ストリームを複数の固定サイズ・セグメントに配列（format）する。個々のセグメントには、少なくともセット・プレゼンス・ビットとターゲット・アドレスとを含むヘッダと、少なくともセグメント・データとターゲット・アドレスのコピーとを含むペイロードと、ペイロードのパリティを指定するパリティビットとが含まれ、論理が、複数のセグメントを多次元行列に配列する。論理は、セグメント・エラー、列エラー、ペイロード・エラーを検出するための分析を含めて、複数のスイッチをデータが通過した後でセグメント・データを多次元で分析する。
【課題を解決するための手段】
【００１０】
開示されているシステムは、限定されるものではないが、１）インターネット・プロトコル（ＩＰ）ルータを含むルータ、２）イーサネット・スイッチ、３）ＡＴＭスイッチ、４）記憶領域ネットワーク・システム（ＳＡＮＳ）、５）クラスタ・コンピューティング・システム、６）スーパコンピュータを含むシステムにおいて複数の相互接続構造を用いてデータを転送する構造及び作動方法に関する。本明細書中の開示は、並列スイッチを通過させるために行うメッセージのスケジューリング、マルチキャスティングの実現、システムの種々の部分におけるエラー訂正の実現、及び、不具合の生じた構成要素を置換するために行う余分または余剰なシステム構成要素の使用、のための構造及び方法について説明する。
【００１１】
関連する特許及び特許出願に記載されている相互接続構造は、短い待ち時間及び大きなバンド幅が重要であるとき、多数のデバイスの相互接続において使用する場合に非常に優れている。参照される相互接続構造及びネットワークの被選択出力ポートに複数のパケットを同時に転送する能力及びセルフルーティング特性もまた、有利に利用することができる。
【００１２】
図４Ａ及び４Ｂに示すのは、「多重レベル最小論理（Multiple Level Minimum Logic）」（ＭＬＭＬ）ネットワークと呼ばれ、「データ・ボルテックス（Data Vortex）」とも呼ばれる、全く新しい相互接続構造のトポロジ、論理、及び使用の例である。図５Ａないし図５Ｆ及び図６Ａ、６Ｂに開示されているようなシステムにおいて、２つの型の多重レベル最小論理（ＭＬＭＬ）相互接続構造を用いることができる。図４Ａに開示されている１つの型の相互接続構造は、「データ・ボルテックス・スイッチ」と呼ぶこともでき、リング状の循環シフトレジスタに配列された多重レベルの構造を有する。図４Ｂに示され、本明細書中で「階段状相互接続」と呼ばれる第２の型の相互接続構造においては、各レベルが非循環シフトレジスタの一群を含むようにデータ・ボルテックス・スイッチ構造の各リングの一部が省略されている。
【００１３】
図５Ａないし図５Ｆにおいては、図４Ｂに描写した型の階段状スイッチが、データを運ぶために用いられることがある。階段状スイッチはまた、図６Ａ及び６Ｂに描写されているスケジュールされたデータ・スイッチにおいても、データを運ぶために用いられる。階段状スイッチの複数のコピーを用いて、各パケット・セグメントの最終ビットの待ち時間を減少させ、かつ相互接続構造のバンド幅を大きくすることもできる。複数のスイッチを用いた実施形態においては、図５Ａないし図５Ｆがある技術を開示しており、それは、パケット・セグメントをサブセグメントに分解して、その後、これらのサブセグメントを１組の即ち１つのスタックを構成する階段状スイッチを通って同時に送信し、任意の２つのサブセグメントがその組内の同じスイッチを通過しないようにする技術である。組内の各階段状スイッチは、複数のクロスバ・スイッチからなる追加スイッチが後に続く。これと同じ構造、即ち、複数のクロスバ・スイッチが後に続くスタック構成の階段状スイッチを含む構造であって、階段状スイッチの出口レベルの各シフトレジスタに対して１つのクロスバを有するような構造は、図６Ａ及び６Ｂにおいてスケジュールされたデータ・スイッチにおいて、データを運ぶために用いられることができる。
【００１４】
本明細書中で開示した構造及び作動方法は、データ・パケット・セグメントのペイロードにおけるエラーを訂正し、ミスルーティングされたデータ・パケット・サブセグメントに起因するエラーを訂正するためのエラー訂正能力を有する。いくつかの実施形態においては、例示のシステムは、スタック構成のネットワークであって、図４Ｂに示されている階段コンフィギュレーションを有するスタックにおいて個々のネットワークを有するネットワーク・スタックを含む該スタック構成のネットワークを通ってルーティングされるデータ・パケット・セグメントに対してエラー訂正を行う。他の実施形態において、例示のシステムは、図４Ａに開示した多重レベル最小論理（ＭＬＭＬ）即ちデータ・ボルテックス・コンフィギュレーションを有する個々のスタック・メンバ・ネットワークを有するネットワーク・スタックにおいてエラー訂正を実行する。
【００１５】
開示されたシステムの種々の実施形態は、スタック構成のネットワークを通ってルーティングされたデータ・パケット・セグメントにおけるエラーを訂正するが、スタック内の個々のネットワークは図４Ｂに示される階段デザインを有し、スタック内の個々のスイッチの後には、複数のクロスバ・スイッチが続く。クロスバ・スイッチは、スタックの階段状相互接続構造の個々の最下位シフトレジスタに対応している。
【００１６】
例示の構造及び作動方法のいくつかは、データ・パケット・セグメントをサブセグメント群に分解するシステムにおいて生じるエラーを訂正する。サブセグメントは、階段状相互接続構造の出力ポートから出ることができず、例えばサブセグメントはスイッチにより破棄される。種々の実施形態により、図５Ａないし図５Ｆに開示されている要求／応答スイッチに入るパケットに対するエラーを訂正することができ、図６Ａ及び６Ｂに教示されているコンピューティング／記憶領域ネットワークに描写されている無制御スイッチに入るパケットに対するエラーも訂正することができる。それゆえに、開示されている構造及び対応する作動技術が、データ・スイッチング能力を含む広範なクラスのシステムにおいて用いられることがある。そのようなシステムには、ＭＬＭＬスイッチでも階段状スイッチでもいずれでもないスイッチが含まれることがある。この技術は、例えば、スタック構成のクロスバ・スイッチ群、またはスタック構成の環状ネットワーク群、Ｃｌｏｓネットワーク群、ファット・ツリー・ネットワーク群を含む複数のホップ・ネットワーク群に適用可能である。
【００１７】
図５Ａないし図５Ｆは、データの入力が要求プロセッサにより制御されるようなデータ・スイッチにおける複数の階段状相互接続構造を含むシステムを説明している。図６Ａ及び６Ｂには、スケジュールされたネットワークにおいて複数の階段状相互接続構造を有するシステムを開示している。そのようなシステムは、階段状相互接続構造のスタックに配列されたＫ・Ｎ個のスイッチと、Ｋ・Ｎ個のデータ・ストリームをスイッチ・スタックに挿入可能な入力デバイスを有する。そのようなシステムに対して多くの実施形態が可能である。一実施形態は、パケットをサブセグメントに分解せずに完全なデータ・パケット・セグメントで作動し、Ｋ・Ｎ個のセグメントをスタック構成の階段状相互接続構造に同時に挿入することができる入力デバイスを有するシステムである。各セグメントは、スタック内の個別スイッチに入る。別の実施形態において、データ・パケット・セグメントは各々が同じヘッダを有するＮ個のサブセグメントに分解され、入力デバイスは、相互接続構造に２つのパケット・セグメントを同時に挿入することができる。結果として生じるＫ・Ｎ個のサブセグメントの各々は、スタック内の個別スイッチへ挿入される。第３の実施形態において、データ・パケット・セグメントは各々が同じヘッダを有するＫ・Ｎ個のサブセグメントに分解され、入力デバイスは、特定のパケット・セグメントのＫ・Ｎ個のサブセグメント全てを同時に挿入することができる。各サブセグメントは、階段状スイッチのスタック内の個別スイッチ内に入る。階段状相互接続構造を通ってサブセグメントをルーティングするためにＨヘッダビットを用いるシステムにおいて、第１の実施形態においては１パケット・セグメント当たりＨヘッダビットが含まれ、第２の実施形態においては１パケット・セグメント当たりＮ・Ｈヘッダビットが含まれ、第３の実施形態においては１パケット・セグメント当たりＫ・Ｎ・Ｈヘッダビットが用いられている。従って、第１の実施形態は、ペイロード対ヘッダの比を最大にする。
【００１８】
入力コントローラ及び要求プロセッサを有するシステムを図５Ａないし図５Ｆに開示する。入力コントローラは、要求プロセッサに要求を送信し、データ・スイッチを経由してデータをスケジュールする。図６Ａ及び６Ｂにおいて、ターゲット出力ポートへデータをスケジュールする要求が、当該出力ポートに送信されるデータを制御する要求プロセッサに送信される。参考文献においてスイッチを経由してデータをスケジュールする要求は、相似または類似している。データ・パケット・セグメントをＫ・Ｎ個のサブセグメントに分解するシステム実施形態、例えば上記第３の実施形態において、要求は、Ｋ・Ｎ個のパケット・サブセグメントをスイッチに挿入することができる１組の使用可能時間を指定する。データ・パケット・セグメントをＮ個のサブセグメントに分解するシステム実施形態、例えば上記第２の実施形態において、要求は、２組のＮ個の階段状スイッチに１組ずつ、合計で２組の使用可能時間を指定する。完全なデータ・パケット・セグメントで作動するシステム実施形態、例えば上記第１の実施形態において、要求は、データ・パケット・セグメントに１組ずつ、合計でＫ・Ｎ組の使用可能時間を指定する。ゆえに、スタック構成の階段状スイッチを通ってデータをスケジュールするための論理は、第３の実施形態が最も簡単で、第１の実施形態が最も複雑である。第１の実施形態のより複雑な論理はまた、図５Ａないし図５Ｆに開示されている要求／応答スイッチと図６Ａ及び６Ｂに開示されているスケジュールされていないスイッチを通過するトラヒック量が、第１の実施形態で最大に、第３の実施形態で最小になるように、より多くのデータを含む要求パケットを有する。
【００１９】
図１Ａを参照すると、２つの型の多重レベル最小論理（ＭＬＭＬ）ネットワークを用いた被制御通信相互接続構造として構成されたシステム１００の一実施形態が略ブロック図で示されている。データパケットは、システム１００に入り、入力ライン１０２を経由して出入力デバイス１０４へ、その後ライン１０６を経由して入力コントローラ１０８へ送られる。メッセージパケットの到着に応えて、入力コントローラ１０８は、スタック構成のデータ・スイッチ１３０及びオプションのスタック構成の補助データ・スイッチ１３４を通ってターゲット出力ポートへデータパケットを送信するための要求をサブミットすることがある。入力コントローラ１０８は、パケットのターゲットである出力コントローラ１１２へのデータフローを決定する要求プロセッサ１１４へ要求スイッチ１１１を通って要求パケットを送信することによって、要求をすることができる。一実施形態において、要求スイッチ１１１は、スタック構成の要求スイッチ１１０のメンバであることがある。
【００２０】
通信ネットワーク・システムにおけるデータフロー制御
【００２１】
要求パケットは比較的短いので、要求パケット全体をスイッチ・スタック内の単一スイッチを経由して効率的に送信することができる。複数の入力コントローラ１０８が要求パケット群を同一要求プロセッサ１１４に同時に送信することがあるので、要求プロセッサに対してデータ・ボルテックス型のＭＬＭＬスイッチを用いることにより、パフォーマンスを大いに向上させることができる。同時にスイッチから出ることができるパケットよりも多くのパケットを、選択されたパケット挿入時間で要求スイッチ１１４に挿入することができる。その結果、要求パケットは、出て行く前にデータ・ボルテックスの回りを循環することがある。
【００２２】
要求プロセッサ１１４は、要求入力コントローラ１０８へ応答パケットを戻す。例えば、要求プロセッサ１１４は、場合によってはスタック構成の応答スイッチ１１８の一部として、応答スイッチ１１９を通って、また場合によってはオプションの２次応答スイッチ１２３を通って、応答パケットを送信することができる。応答スイッチ１２３は、スタック構成の応答スイッチ１２２の一部であることもある。要求スイッチにおいて要求パケットが通る応答スイッチ・スタックの同一レベルＬで応答スイッチを経由するように応答パケットをルーティングすることにより、性能が向上することがある。ルーティングは、要求パケットデータにおいて整数Ｌを指定することによって達成できる。
【００２３】
要求プロセッサが所与の時間に活動状態にすることができる未応答の要求の数は、制限されることがある。この制限は、スイッチ・スタック１１０において個々のスイッチ１１１に対するカウンタＣＬを維持する入力コントローラ１０８によって行われることができる。カウンタＣＬは、入力コントローラの内部に設けられることができる。カウンタＣＬは、初期設定を０とし、レベルＬで要求スイッチに送信された各要求パケットによりインクリメントされ、レベルＬで応答スイッチを通って戻った各応答パケットによりデクリメントされることができる。カウンタＣＬは、ライン１１６、１２０、１２４のバンド幅が超過しないように所定の閾値ＴＬの超過を防止するように管理されることができる。要求の管理は、レベルＬ応答スイッチが階段状相互接続コンフィギュレーションに存在することを可能にする。
【００２４】
一実施形態において、入力コントローラは、所与の応答パケットを受信するように指定されたビン（bin）を指定する。適切なビンへの転送は、補助スイッチ・スタック１２２における補助スイッチ１２３によって処理される。カウンタを用いてフローを制御する有効な代替案であるが、応答を待っていないビンが利用可能である場合に限り、要求を送信するために入力コントローラを制約することができる。ターゲット・ビンのコピーを応答パケットのペイロードに含めることができる。応答パケットにはエラー訂正ビットを含めることもでき、入力コントローラはエラーを検出及び訂正する能力を有する。物理ターゲット入力コントローラ及び入力コントローラ・ビンが、エラー訂正された応答パケットにおけるターゲット入力コントローラ及びビンのコピーと一致しなければ、入力コントローラは、要求の作り変えが保証されるかどうか決定することがある。応答パケット中のデータが訂正不可能なエラーを有することが決定されたら、入力コントローラは、要求の作り変えが保証されるかどうか決定することがある。要求プロセッサはデータ・スイッチを通ってパケットをスケジュールするが、応答パケットがミスルーティングされるかまたは訂正不可能であるために、対応する入力コントローラがパケットを送信しないならば、別のパケットをミスルーティングしない条件で、使用されていないデータ・スイッチに対して、スケジュールされたタイムスロットにギャップが生じることがある。
【００２５】
いくつかの実施形態は、要求パケットの送信に応えて応答パケットが到着するのを入力コントローラが待つ時間の量に制限ＴＬＩＭを強いることがある。指定された制限時間の終了後、入力コントローラは適切なカウンタを１ずつ減少させ、適切なビンを空にする。要求パケットが送信される時を示す要求パケットにタイムスタンプＴＳが付加されることがある。要求プロセッサは、時間ＴＳ＋ＴＬＩＭの後に入力コントローラに到達するであろう応答パケットを送信しない。計算された到達時間が制限を超えたら、要求プロセッサは要求パケットを破棄する。いくつかの実施形態において、応答スイッチＡＳ１ １１９及びＡＳ２ １２３から応答パケットを送信するのに費やされる時間は決定性でかつ固定されており、応答パケットが入力コントローラに到達することになる時間を要求プロセッサが計算することと、要求プロセッサが制限時間をきちんと守らせることとを可能にする。第１の実施形態において、ＴＬＩＭは全ての要求パケットに対して同一である。第２の実施形態において、ＴＬＩＭはメッセージの優先順位に依存する。
【００２６】
いくつかの実施形態において、入力コントローラは、パケット全体を、データ・スイッチを通過するようにスケジュールする。パケットは、データ・スイッチが常に同じ長さのセグメントを送信するようにセグメント化される。パケットの各セグメントは、全てのサブセグメントが複数のデータ・スイッチを通って同時に送信されるようなサブセグメントに更に分解されることがある。エラー訂正のために、サブセグメントの長さに等しい長さの１若しくは複数のエラー訂正パケットがデータ・スイッチを通って送信されることもある。それゆえに、セグメント及び対応するエラー訂正データパケットが、データ・スイッチ・スタック１３０内のデータ・スイッチ１３１と、その後にデータ・スイッチ・スタック１３４中のオプションの補助データ・スイッチ１３５とを通過して、同時に送信される。一実施形態において、スタック内のデータ・スイッチの数ＮＳは、サブセグメントの数と対応するエラー訂正パケットの数の和に等しい。代わりの実施形態において、複数のセグメントがデータ・スイッチ・スタック１３４を同時に通過するように、スタック内のデータ・スイッチの数をＮＳより多くすることができる。
【００２７】
１つの例においては、あるパケット・セグメントに対するサブセグメント及びチェック・ビット・パケットの数はＮに等しく、スタック１３０におけるデータ・スイッチの数はＷ・Ｎに等しい。例示の条件におけるデータ・スケジューリングを管理するための３つの実施形態が開示されている。第１の実施形態において、Ｗ・Ｎ個のデータ・スイッチは、各々がＮ個のスイッチを含む相互に排他的なＷ組に分けられる。入力コントローラは、パケットをデータ・スイッチへ送り込むための使用可能時間を、Ｗ組のスイッチの各々に対して１組の時間、合計でＷ組の時間を指定するような要求パケットを送信する。複数組の時間を指定することにより、十分な出力バッファ・スペースが確保され、また、データライン１３２及び１３６を通る経路が要求プロセッサにより保証される。ライン１３２及び１３６全体による妥当なバンド幅とＷ組のラインの各々においてデータラインによる十分なバンド幅とが利用可能である限り、リソースはデータを処理するのに十分である。
【００２８】
第２の実施形態において、入力コントローラがＷ組のスイッチの１つを選択し、その後、選択された組のスイッチを通ってパケットを送信するように要求する。要求が拒まれたら、入力コントローラは別の１組のスイッチを通って送信するように要求する。要求に対して１組を選ぶためのアルゴリズムは、ランダム処理、ラウンドロビン方式または他の方式に基づくことができる。
【００２９】
第３の実施形態は、Ｗの入力コントローラ群と、各群にそれぞれ割り当てられたＮ個のスイッチのサブスタックとを有する。スイッチを通るデータフローを管理するために他の実施形態が用いられることもある。
【００３０】
スイッチ出力インタフェース・コンフィギュレーション
【００３１】
スタック構成のスイッチ１１０の単一ＭＬＭＬデータ・ボルテックス・スイッチ１１１を通って要求パケット全部をタイミングよく送信することができるように、要求パケットは比較的短い。図２を参照すると、データ・ボルテックス・スイッチからの２つの出力バッファレベルが略ブロック図に示されている。出力バッファは、２つのレベルの「水漏れするバケツ（leaky bucket）」を表している。１つのバージョンには、オンチップ出力バッファ２１０と、より大きなオフチップ出力バッファ２２０とが組み込まれている。これらのバッファを用いてトラフィック量におけるバーストを処理する。第１の実施形態において、バッファは、先入れ先出し（ＦＩＦＯ）方式で作動する。第２の実施形態において、バッファの一方または両方が、状況次第で優先順位の高いメッセージＡがＡの前にバッファに入る優先順位の低いメッセージＢに先んじてバッファから出ることを可能にする戦略的アルゴリズムを用いる。
【００３２】
データ・セグメントは、一般的に要求パケットに比べて長い。よって、データ・セグメントをサブセグメント群に分解することにより、性能が向上することがある。例えば、各セグメントをＮ個のサブセグメントに分解することができる。要求プロセッサにより決定されたセグメント送信時間に、データ及び対応するエラー訂正ビットの両方とそれにプラスして追加のエラー訂正パケットとを含むＮ個のサブセグメントが、データ・スイッチ・スタック１３０を経由し、次に補助データ・スイッチ・スタック１３４を経由して同時に送信される。図３には、１つのＭＬＭＬ階段状スイッチ１３１及び複数のクロスバ・スイッチ３１４を含む第１のチップ３１０が示されているが、これらのスイッチは共同してオプションの第２のスイッチ１３５を構成する。例示のコンフィギュレーションはまた、階段状スイッチがスイッチＡＳ１ １１９であり、第２のスイッチがスイッチＡＳ２ １２３であるような図１Ａに示される応答スイッチにおいて用いられることもある。バッファは応答スイッチになくてもよい。スイッチを通るデータフローは制御されるので、スイッチに負荷がかかり過ぎることは決してなく、正しくルーティングされたデータは、チップからの直接の経路において保証される。それゆえに、バッファを排除することができる。典型的な実施形態において、バッファは望まれていない。というのも、要求プロセッサが、応答パケットが応答スイッチを通過し、要求を発して結果的に中間バッファリングを回避するための時間の決定的性質を活用するためである。
【００３３】
図３に示すコンフィギュレーションは、階段状スイッチをスイッチＤＳ１ １３１として含みかつ第２のスイッチがスイッチＤＳ２ １３５である配列で図１Ａに示されるデータ・スイッチに設けられることもある。スイッチを通るデータフローは制御されるので、バッファはデータ・スイッチにもなくてもよい。データ・スイッチに負荷がかかり過ぎることは決してなく、正しくルーティングされたデータは、チップの直接の経路を保証される。長さが出口段の出口カラムに依存するＦＩＦＯを用いる実施形態において、セグメントのエラーを訂正して再構築することができるオフチップ・デバイスに全てのサブセグメントが同時に到着することを容易にするためにバッファの排除は望ましい。図１Ａ及び図３に示したコンフィギュレーションにおいて、特定のセグメントの全サブセグメントは、スイッチ・スタック１３４及び対応するＦＩＦＯから同時に出ることが保証されている。バッファの排除は、さもなければ第１のサブセグメントのミスルート（misroute）に続いて生じていたかもしれない第２のサブセグメントのミスルートの発生の回避を容易にする。さらに、サブセグメントのミスルートは、別のサブセグメントがスイッチ・スタック１３４から出る時間に影響することはない。
【００３４】
図１Ａに示されているシステムにおいて、要求プロセッサ１１４は、過去にスケジュールされたパケットのみならず現在スケジュールされた他のパケットに関する情報に基づいてパケットのもっと後のスケジューリングを決定する。出力バッファ中のパケットは種々の時間に到着しており、出力バッファ中のパケットＰを破棄する決定は、Ｐの到着後にシステム１００に到着するパケットに関する情報に部分的に基づく。
【００３５】
図１Ｂを参照すると、略ブロック図は、クラスタ・コンピューティング及びメインフレーム・コンピューティングを含む幾つかの用途において有用であるシステム１５０を示している。図１Ａに示したシステム１００とは違って、システム１５０はパケットを破棄しない。
【００３６】
システム１５０には、構造及び機能が同じ型であり得るかまたは異なり得る複数のデバイス１７０が含まれる。デバイス１７０の機能は、計算、データの記憶及び検索、または計算とデータの記憶及び検索との組合せであることがある。デバイス１７０は、システム１５０の外部からライン１７２を経由してデータを受信し、ライン１７４を経由してデータをシステム外へ送信する。これらのデバイスは、相互接続ライン及びスイッチＵ１６０、Ｓ１８０、ＡＳ１９０を経由して相互に通信し合う。いくつかの実施形態において、スイッチＵはＭＬＭＬデータ・ボルテックスであることもある。デバイス１７０は、許可を求めることなくデータをスイッチＵに挿入することができる。複数のデバイスが、スイッチＵを通って同一ターゲット・デバイスＴへデータを送信することがあるので、ターゲット・デバイスＴへのデータのボリュームは、ライン群１６２を経由するデバイスＴへのバンド幅を超えることがある。よって、バッファ２１０は、データ・ボルテックス・スイッチの出力を受信し、入力バッファ２２０をコンピューティング／データ記憶装置に組み込むように配列されることができる。
【００３７】
スタック構成のスイッチ内のスイッチ群Ｓ１８０を通過するパケットは、例えば図６Ａ及び６Ｂにおいて説明されている技術を用いて、過負荷を防止するためにスケジュールまたは制御されるので、階段型のＭＬＭＬスイッチの形でスイッチ群Ｓを用いるのが便利である。複数のクロスバ・スイッチを用いてスイッチ群ＡＳ１８０を構成することができる。サブセグメンテーションを利用して、データのスイッチ通過を可能にすることができる。スイッチ群Ｓと補助スイッチ群ＡＳ間のインタフェースを図３に示す。
【００３８】
１組のセグメントまたはサブセグメントが、スケジュールされた階段状相互接続構造内のスイッチ・スタックに入るか、またはスケジュールされたまたは制御された階段状構造内のスイッチ・スタックであってクロスバ・スイッチの一群が後に続くスイッチ・スタックに入ると、その１組のセグメント群の第１ビット群は同時にスイッチから出ることになる。セグメント群の１つのサブセグメントがヘッダにビットエラーを有するのであれば、そのサブセグメントはターゲット出力ポートでスイッチから出ることにはならない。その代わり、このサブセグメントは、ヘッダにより指定された誤った出力ポートから出ることになるか、または任意の出力ポートから出ることができずに階段状スイッチの最下段の末端部で破棄されることになるかのいずれかである。ミスルーティングされたサブセグメントは、同一スイッチにおいて他のサブセグメントのミスルートを発生させることがある。ミスルーティングされたサブセグメントが階段状スイッチを経由してメッセージの更なるミスルートを発生させることはないことに留意されたい。さらに、パケット・セグメントがスタック内のスイッチ上でバッファされなければ、ミスルーティングされたサブセグメントは任意の他のサブセグメントのミスルートを発生させることはない。ミスルーティングされたサブセグメントは、任意の後から挿入されるサブセグメントの終了時間（exit time）を変更することはできない。
【００３９】
スケジュールされた階段状構造を実現するシステムとは対照的に、スケジュールされていないデータ・ボルテックス・スイッチにおいてミスルーティングされたセグメントは、スイッチに挿入される更なるセグメントの終了時間を変更することができる。従って、パケット・セグメントは、サブセグメントに分解されることなく、単一のデータ・ボルテックス・スイッチを通って、またはスタック構成のスケジュールされていないデータ・ボルテックス・スイッチを通って、最も効率的に送信される。
【００４０】
本明細書中で開示したシステム及び作動方法は、セグメントのヘッダまたはペイロードのいずれかにおけるビットエラーの効率的な訂正を可能にする。例示の方法は、シングルビットエラー訂正及び２ビットエラー検出を確実にする。例の変形については、図面の考察において説明されている。１つの例において、Ｄはデータキャリー・サブセグメント・ペイロードのデータビットの数を指定し、Ｔはサブセグメントのターゲット・アドレス内のビットの数を指定する。ターゲット・アドレスには、階段状スイッチを通ってサブセグメントをルーティングするために用いられるビットと、階段状スイッチに続いて、もし存在するのであればクロスバ・スイッチを通ってサブセグメントをルーティングするために用いられるビットとが含まれる。この例では、エラー訂正のために追加ビットを用いることができ、追加ビットは各セグメントに付加される。結果として生じる長いセグメントは、Ｎ＋１個のサブセグメントに分解される。図７Ａ及び図７Ｂを参照すると、サブセグメントのうちＮ個がデータビットを運び、エラー訂正に用いられるビットも運ぶ。サブセグメントのうちの１つはエラー訂正ビットのみを運ぶ。スイッチへの挿入の前に、サブセグメントの各々は長さＭを有し、このときＭ＝１＋Ｔ＋Ｔ＋Ｄ＋１である。データキャリー型サブセグメントには幾つかのフィールドが含まれる。第１のフィールドは長さＴ＋１のヘッダであるが、これには、いくつかの実施形態においてサブセグメントの存在を示すために常に１に設定されるプレゼンスまたは存在ビット７０２が含まれる。第１のフィールドには、ターゲット・アドレスを符号化するサブフィールドＴＡ７０４も含まれる。第２のフィールドは、長さＤ＋Ｔのペイロードであり、サブセグメント・ターゲット・アドレスのコピーを含むサブフィールドＴＣ７０８と、サブセグメント・データ含むサブフィールドＳＵＢＳＥＧ−ＤＡＴＡ７０６とが含まれている。第３のフィールドは、１ビットチェックまたは存在ビット及びＤ＋Ｔペイロードビットに対するパリティを指定するパリティビット７１４である。パリティビットを、存在ビットとＤ＋Ｔペイロードビットの合計を２で割った余り（modulus 2）として定義することができる。Ｎ個のデータキャリー型サブセグメント（サブセグメント０、１、・・・、Ｎ−１）は、Ｎ行、Ｍ列のＮ×Ｍ行列Ｑに配列される。行列Ｑの項目Ｑ（ｉ，ｊ）は、サブセグメントｊのｉ番目のビットを指定する。非データキャリー型サブセグメントＮのヘッダは、他のサブセグメント・ヘッダと同じである。サブセグメントＮのｉ番目のビットがヘッダビットでない場合、［Ｑ（ｉ，０）＋Ｑ（ｉ，１）＋...+Ｑ（ｉ，Ｎ‐１）］の和を２で割った余り（mod 2）であると定義されるのがパリティビットである。サブセグメントＮの最終ビットは、Ｎ個のデータキャリー型サブセグメントのＮ・（Ｔ＋Ｄ＋１）個のペイロード及び存在ビットの合計を２で割った余りである。サブセグメントＮをＱに加えると（Ｎ＋１）×Ｍ行列Ｒが得られるが、これはスイッチング・システムを通過したセグメント・データを表している。
【００４１】
各サブセグメントがスイッチを通過するとき、先行のターゲット・アドレス・ビットは破棄され、結果として生じるサブセグメントは、長さＴ＋Ｄ＋２を有する。スイッチ通過後、Ｎ個のデータキャリー型サブセグメントは、長さを減らされ、例えば１に設定されたプレゼンスまたは存在ビットのみを有するシングル・ビット・ヘッダを含む。ヘッダのＴ個のターゲット・アドレス・ビットは、スイッチ通過中に取り除かれる。サブセグメントの第２フィールドは、長さＤ＋Ｔのペイロードであり、サブセグメント・データ・ビットと、サブセグメントのターゲット・アドレスのコピーとを含む。第３フィールドは、ペイロードビット及び存在ビットを含むＤ＋Ｔ＋１ビットに対する１ビットのチェックビットまたはパリティビットである。非データキャリー型サブセグメントには、常に１に設定された単一の存在ビットが含まれ、その後にＴ＋Ｄ＋１パリティビットが続く。非データキャリー型サブセグメントを加えたＮ個のデータキャリー型サブセグメントは、図７Ｂに示すような（Ｎ＋１）×（Ｍ−Ｔ）行列Ｖを形成する。Ｎ＋１個のサブセグメントがＮ＋１個のスイッチを通過した後、任意の生じ得るシングルビットエラーを検出及び訂正しかつ任意の２ビットエラーを検出する処理がデータに対して実行される。ターゲット・アドレス内のエラーはミスルーティングされたサブセグメントをもたらすことになるので、スイッチのうちの１つを通ってサブセグメントを送信するために用いられるターゲット・アドレス内のシングルビットエラーは、伝送されたサブセグメント・データにおいて複数のビットエラーとして検出されることがある。しかしながら、送信されそこなったデータビットの全てを正しいビットに置き換えることによって、そのようなシングルビットエラーを効率的に検出しかつ訂正することができる。
【００４２】
ある実施形態において、エラー検出及び訂正のための処理は複数の動作を有する。第１に、エラー検出のために複数の型の合計計算を実行することができる。第１の型の合計計算は、行列Ｖにおいて行エラーを検出する。Ｎ個の個々のデータキャリー型サブセグメント・ペイロードの各々に対して、全てのビットが加算されて２で割った余りが求められる。具体例においては、各サブセグメントＫのＴ＋Ｄペイロードビットと、プレゼンス・ビットと、チェックビットとが加算され、即ち、各サブセグメントに対してＴ＋Ｄ＋２ビットの加算が行われる。その結果即ちこれを２で割った余りが１であれば、サブセグメントＫにおけるサブセグメント・エラー、即ち行列Ｖにおける行エラーの検出を指定する。結果が０であれば、サブセグメントＫにおいてサブセグメント行エラーが検出されないことを示す。第２の型の合計計算は、行列Ｖにおいて列エラーを検出する。行列Ｖにおいて各列でビットが合計される。例えば、（Ｔ＋１）＜ｉ≦（Ｄ＋２Ｔ＋２）のとき、行列Ｑの列ｉのビットの和を２で割った余りが計算され、行列ＲのＮ番目の行のｉ番目のビットが形成される。結果が１であれば、行列Ｖのｉ番目の列における列エラーの検出を指定する。結果が０であれば、行列Ｖのｉ番目の列における検出された列エラーを指定しない。第３の型の合計計算は、行列Ｖにおいて広域エラー（global error）を検出する。サブセグメント０からサブセグメント（Ｎ−１）までの行列ＶにおけるＮ・（Ｔ＋Ｄ＋１）非パリティビットに、サブセグメントＮの最終ビットを足した合計を２で割った余りが計算される。結果１は、行列Ｖにおけるペイロード・エラーを示し、行列Ｖにおける広域エラーとも呼ばれる。０は広域エラーの検出を指定しない。
【００４３】
第２に、行列Ｖのデータキャリー・サブセグメントにおけるターゲット・アドレスのＮ個のコピーは、それらのうちの１つにおいて生じ得るビットエラーをチェックされる。ターゲット・アドレス・コピーにおけるシングルビットエラーは、４つの判定基準条件によって示される。第１の判定基準は、単一のサブセグメント・ペイロードに対するデータチェックビットによる、特に行列Ｖの行チェックビットによる、エラー表示である。第２の判定基準は、サブセグメントＮにおける単一のデータチェックビットによるエラー表示であって、特に、コピーされたターゲット・アドレスを含むサブセグメントのセクションにおける行列Ｖの列チェックビットによるものである。第３の判定基準は、サブセグメント・ペイロードにおけるエラーを指定するサブセグメントＮのＭ番目のビット、広域チェックビットによるエラー表示である。第４の判定基準は、行チェックビットエラー及び列チェックビットエラーの両方を用いることにより示されるサブセグメントのターゲット・アドレスのコピーにおけるシングルビットエラーの訂正が、サブセグメントのターゲット・アドレスのコピーを受信データポートのアドレスに一致させることである。
【００４４】
第３に、ターゲット・アドレスの各サブセグメントのコピーは、受信データポートとの一致をチェックされる。プレゼンス・ビットは、データが到達しない場合とデータが入力ポート０に向けられる場合とを区別する。Ｖのいくつかの行に対してプレゼンス・ビットが０であれば、その行に対応するサブセグメントはミスルーティングされていた。正確に１つのサブセグメントに対するＴ個のヘッダビットとポートＩＤが一致しない場合、サブセグメントはミスルーティングされていた。いずれにしても、単一のミスルーティングされたサブセグメント中のデータは、サブセグメントＮからのチェックビットを用いることによってデータを正しいデータに置き換えることによって訂正されることができる。データ置換完了時には、他のエラーが存在しなければ、行ビット、列ビット、広域チェックビットを用いる処理は、エラーが存在しないことを示す。
【００４５】
第４に、Ｎ個のサブセグメント・ペイロードの各々は、シングルビットエラーをチェックされる。シングルビットエラーの存在は、３つの基準によって示される。第１の基準は、列の合計が行列Ｖにおける単一の列ビットエラーを検出することである。第２の基準においては、行の合計が行列Ｖにおける単一の行ビットエラーを検出する。そして第３の基準においては、広域の合計が行列Ｖにおける広域エラーを検出する。単一のエラーが検出される場合、エラーは、行列Ｖに、エラーを有する行とエラーを有する列とによって指定される独自の場所に配置される。シングルビットエラーは、訂正可能である。
【００４６】
第５に、唯一の行、列、または広域エラーが生じる状態では、そのような状態は、チェックビットのうちの１つにおけるシングルビットエラーにより生じる。エラーは無視される。
【００４７】
第６に、データが誤って２若しくはそれ以上のビットを含む状態が生じることがある。チェックビットと、サブセグメントアドレスのコピーとの検査が、結果的に、最初の５つの動作、例えば、行列Ｖにおける２つの行エラーの検出、行列Ｖにおける２つの列エラーの検出、行列Ｖにおける広域エラーの検出において記述されているものとは異なるエラー状態を生じさせるとき、複数ビットエラーが検出される。２ビットエラーは、いつでも検出可能である。エラー状態が示されなければ、データが訂正されているか、データが間違って２ビット以上を含み、一般的に検出可能ではないエラー状態であるかのいずれかである。
【００４８】
実施形態では、データキャリー・サブセグメントにおけるエラー訂正ビットはただ１つである。他のシステムは、追加のエラー訂正ビットを含むサブセグメントを有して構成されることがある。さらに、具体例において、１つのサブセグメントのみが、複数のサブセグメントからのデータビットによって決まるエラー訂正ビットを有する。他の実施形態は、複数のデータ・サブセグメントがミスルーティングされたとき、データの正しい再構築を可能にする複数のそのようなサブセグメントを有することがある。種々の実施形態において、サブセグメントは、サブセグメントｓｉのペイロードｐｉ及びデータに基づく少なくとも１のエラー訂正ビットを含むことがあり、サブセグメントｓｉとは異なるサブセグメントｓｋのペイロードｐｋ中のデータに基づく少なくとも１のエラー訂正ビットを含む。
【００４９】
図４Ａは、特許文献１で教示されている多重レベル最小論理（ＭＬＭＬ）ネットワークを例証する４シリンダ、８段のネットワークを示す略絵図である。連続メッセージの形のデータが、図４Ａの最上部にシリンダ３として示されるような、最も外側のシリンダに配置されたネットワークへの入力端末でネットワークに入り、メッセージのヘッダにおいて指定されるターゲット出力ポートに向かってノードからノードへ移動する。データは常に、１つの期間において次のアングルでノードへ移動する。メッセージは、図４Ａの下位レベルに示される内側のシリンダに向かって移動し、そのような移動によってメッセージはターゲット・ポートに近付く。
【００５０】
ネットワークは、２種類の伝送経路を有する。１つはデータ用、もう１つは制御情報用である。実施形態において、ネットワーク中の全てのノードが同じデザインであることがある。
【００５１】
他の実施形態において、ノードは、相互に異なるデザイン及び特性を有することがある。ノードは、同一シリンダ上のノードから、またはノードのシリンダから外に向かうシリンダから、データを受け取り、同一シリンダ上のノードへ、またはノードのシリンダから内に向かうシリンダへ、データを送信する。メッセージは、所与のレベルでのメッセージの第１ビットがシリンダの周囲を一様に移動するという意味で中心軸の回りを一様な回転で移動する。メッセージビットが、あるシリンダからより内側のシリンダへ移動するとき、そのメッセージビットは内側のシリンダでメッセージと正確に同期する。データは、用途または実施形態に応じて、相互接続またはネットワークに１若しくは複数の列またはアングルで入ることができ、１若しくは複数の列またはアングルで出ることができる。
【００５２】
ノードは、より外側に位置するシリンダに制御情報を送信し、より内側に位置するシリンダから制御情報を受信する。制御情報は、同じアングルまたは列でノードに伝送される。制御情報はまた、最も外側のシリンダ上のノードから入力ポートへ伝送され、入力ポートからのメッセージを受信することができる最も外側のシリンダ上のノードがメッセージを受け取ることができないときを入力ポートに知らせる。同様に、出力ポートは、出力ポートがデータを受け取ることができないときはいつでも、制御情報を最も内側のシリンダ上のノードへ送信することができる。一般的に、任意のシリンダ上のノードは、制御信号送信ノードがメッセージを受信することができないことをノードまたは入力ポートに知らせるために制御信号を送信する。ノードは、より内側に位置するシリンダ上のノードまたは出力ポートから制御信号を受信する。制御信号は、受信者が受信者ノードのシリンダからそれより内側のシリンダ上の第３のノードにメッセージを送信することができるかどうかを制御信号の受信者に知らせる。
【００５３】
図４Ａに示すネットワークにおいて、ノードＡが同一シリンダ上のノードＢへメッセージを送信したら、ノードＢは外側のシリンダ上のノードＪを経由してデータを受信し、その後、ノードＡはノードＪへ制御情報を独立して送信する。ノードＢは、ノードＡ及びＪを経由してメッセージを受信するが、ノードＡとＪの間の制御情報交換には関与しない。制御信号及びデータルーティング・トポロジ及びメッセージルーティング方式については詳細に後述する。
【００５４】
特許文献１では、位置に関して「シリンダ」及び「アングル」なる語が用いられている。これらの語は、特許文献２及び本明細書中で用いられている「レベル」及び「列」とそれぞれ類似している。データは１つのシリンダから次のシリンダへ水平または斜方向に移動し、制御情報は同じアングルでノードに外向き送信される。
【００５５】
図４Ｂは、階段状相互接続構造を示す概略図である。階段状相互接続構造には１つの入力列しかなく、右から左へ戻る接続もＦＩＦＯもない。この構造は、しかしながら、複数の出力列を有することがある。そのような相互接続のいくつかの実施形態の特性は、同一サイクル中にどの出力行にも複数のＯＵＴＬＩＭメッセージが送信されないときに各メッセージが入力ポートから出力ポートへのワームホール接続経路を確立するような整数ＯＵＴＬＩＭの存在である。
【００５６】
階段状相互接続の別の実施形態において、メッセージのマルチキャスティングは、単一のペイロードに対する複数ヘッダの使用によってサポートされる。１つの時間サイクル中に単一の入力ポートからのペイロードが複数の出力ポートに送信されるとき、マルチキャスティングが発生する。各ヘッダはペイロードに対するターゲット・アドレスを指定し、アドレスは任意の出力ポートである場合がある。出力ポートは同一時間サイクル中に２以上の入力ポートからメッセージを受信できないという規則は尚も認められる。第１のヘッダは上記したように処理され、制御論理は、後に続くペイロードのフローを導く内部ラッチを設定する。第１のヘッダの直後に、第２のヘッダは、そのレベルに対するルートを決定するアドレスビットが異なるセルに到達するまで第１のヘッダの経路を辿る。ここで第２のヘッダは第１のヘッダとは異なる方向にルーティングされる。セル中の追加ラッチは１を表し、セルから流出する二分岐フローを制御する。別の言い方をすれば、第２のヘッダは、アドレスが異なる方向を示し、後に続くトラフィックがセルから両方向に出るようにセルが接続を行うまで、第１のヘッダの後に続く。同様に、第３のヘッダは、レベルを決定するヘッダビットが異なる方向に分岐を示すまで、最初の２つによって確立された経路を辿る。ヘッダがセルを通って左から右へ動くとき、ヘッダは常に、上からメッセージを受信することができないことを示すビジー信号を上向きに送信する。
【００５７】
第１のヘッダ、第２のヘッダ、及び任意の他のヘッダに対しては、常にこの規則に従う。別の言い方をすれば、セルがビジー信号を上向きに送信するとき、制御信号は全てのヘッダが処理されるまで維持され、第２のヘッダが、第１のヘッダが確立した経路を使用しないようにする。許容されるヘッダの数はタイミング信号の関数であり、タイミング信号はチップの外側にあることができる。階段状相互接続のマルチキャスティング実施形態は、外部タイミング信号の制御下で異なる時間に１、２、３、またはそれ以上のヘッダを有するメッセージを収容することができる。マルチキャストされないメッセージは、第２及び第３のヘッダの代わりに空のヘッダ（例えば全て０）が続くような単一のヘッダのみを有する。ひとたびあるサイクルにおいて全てのヘッダが処理されると、上記したように、ペイロードは最終ヘッダの直後に続く。他の実施形態において、メッセージのヘッダに特殊なマルチキャストフラグを含め、次々に上記ターゲット出力に対応する１組の宛先へメッセージのコピーを送信するターゲット出力へメッセージを送信することによって、マルチキャスティングが達成される。
【００５８】
ここでは種々の実施形態について開示してきたが、これらの実施形態は例示として理解されるべきものであり、特許請求の範囲を限定するものではない。記載されている実施形態に関して多くの変形、改変、付加及び改良が可能である。例えば、当業者は、本明細書中に開示されている構造及び方法を提供するのに必要なステップを容易に実現するであろうし、処理パラメータ、材料、及び次元が与えられているのは例示のためだけであることを理解するであろう。修正のみならず、所望の構造を得るために、特許請求の範囲内で、パラメータ、材料、構成要素、及び次元を変えることができる。特許請求の範囲を逸脱しないかぎり、本明細書中に開示されている実施形態の変形及び改変をなすこともできる。
【図面の簡単な説明】
【００５９】
【図１Ａ】複数のＭＬＭＬデータ・ボルテックス・ネットワークと、複数のＭＬＭＬ階段状相互接続との両方を含む通信システムを示す略ブロック図である。
【図１Ｂ】複数のＭＬＭＬデータ・ボルテックス・ネットワークと、複数のＭＬＭＬ階段状相互接続との両方を有するコンフィギュレーションにおけるクラスタ・コンピューティング／記憶領域ネットワークのためのシステムを示す略ブロック図である。
【図２】ＭＬＭＬデータ・ボルテックス・スイッチの出力セクションを示す略ブロック図である。
【図３】補助クロスバ・スイッチを含むＭＬＭＬ階段状スイッチの出力部分を示す略ブロック図である。
【図４Ａ】多重レベル最小論理（ＭＬＭＬ）ネットワークを例証する４シリンダ、８段のネットワークを示す略絵図である。
【図４Ｂ】階段状相互接続構造を示す概略図である。
【図５Ａ】インテリジェント制御による輻輳なしのスイッチング・システムの実施形態及び特徴を示す略ブロック図である。
【図５Ｂ】インテリジェント制御による輻輳なしのスイッチング・システムの実施形態及び特徴を示す略ブロック図である。
【図５Ｃ】インテリジェント制御による輻輳なしのスイッチング・システムの実施形態及び特徴を示す略ブロック図である。
【図５Ｄ】インテリジェント制御による輻輳なしのスイッチング・システムの実施形態及び特徴を示す略ブロック図である。
【図５Ｅ】インテリジェント制御による輻輳なしのスイッチング・システムの実施形態及び特徴を示す略ブロック図である。
【図５Ｆ】インテリジェント制御による輻輳なしのスイッチング・システムの実施形態及び特徴を示す略ブロック図である。
【図６Ａ】スケジュールされたネットワーク及びスケジュールされていないネットワークの両方に接続された複数のコンピューティング／データ記憶デバイスを示す略ブロック図である。
【図６Ｂ】図６Ａに示したシステムにスケジュールされていないスイッチに対応する制御ラインを加えたシステムを示す略ブロック図である。
【図７Ａ】行列Ｑを形成し、その後非データキャリー型サブセグメントを付けて行列Ｒを形成するように配列されたデータキャリー型サブセグメントを示す略ブロック図である。
【図７Ｂ】スイッチを通過した後のサブセグメント・データを含む行列Ｖを示す略ブロック図である。
【図１Ａ】
2007528148.tif 000003
【図１Ｂ】
2007528148.tif 000004
【図２】
2007528148.tif 000005
【図３】
2007528148.tif 000006
【図４Ａ】
2007528148.tif 000007
【図４Ｂ】
2007528148.tif 000008
【図５Ａ】
2007528148.tif 000009
【図５Ｂ】
2007528148.tif 000010
【図５Ｃ】
2007528148.tif 000011
【図５Ｄ】
2007528148.tif 000012
【図５Ｅ】
2007528148.tif 000013
【図５Ｆ】
2007528148.tif 000014
【図６Ａ】
2007528148.tif 000015
【図６Ｂ】
2007528148.tif 000016
【図７Ａ】
2007528148.tif 000017
【図７Ｂ】
2007528148.tif 000018