JPH10506736A - トーラス相互結合網のための適応ルーティング機構 - Google Patents

トーラス相互結合網のための適応ルーティング機構

Info

Publication number
JPH10506736A
JPH10506736A JP8530986A JP53098696A JPH10506736A JP H10506736 A JPH10506736 A JP H10506736A JP 8530986 A JP8530986 A JP 8530986A JP 53098696 A JP53098696 A JP 53098696A JP H10506736 A JPH10506736 A JP H10506736A
Authority
JP
Japan
Prior art keywords
virtual
packet
deterministic
routing
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP8530986A
Other languages
English (en)
Other versions
JP3532574B2 (ja
Inventor
ソーソン,グレゴリー・エム
スコット,スティーブン・エル
Original Assignee
クレイ・リサーチ・インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クレイ・リサーチ・インコーポレイテッド filed Critical クレイ・リサーチ・インコーポレイテッド
Publication of JPH10506736A publication Critical patent/JPH10506736A/ja
Application granted granted Critical
Publication of JP3532574B2 publication Critical patent/JP3532574B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus

Abstract

(57)【要約】 ルーティング機構は、2つのタイプの仮想チャンネルバッファを有する2つの非循環非適応仮想チャンネルと第3の仮想チャンネルバッファを有する1つの適応仮想チャンネルとを含み、上記2つのタイプの仮想チャンネルバッファは、n次元でネットワーク化されたシステムにおける複数のノード間の複数の決定的仮想パスに沿った複数のパケットを記憶し、上記第3の仮想チャンネルバッファは、上記複数のノード間の非決定的仮想パスに沿った上記複数のパケットを記憶する。上記複数のパケットは、ルーティング情報に基づいて上記複数の決定的仮想パスの選択された一部分又は上記複数の非決定的仮想パスの選択された一部分に沿った複数のノード間でルーティングされ、上記ルーティング情報は、上記ある1つの決定的仮想パスの選択された一部分に関連する第3のタイプの仮想チャンネルバッファが全体のパケットを記憶するために利用できる十分な空間を有しなければ、パケットは上記複数の非決定的仮想パスのうちの1つの選択された部分上にルーティングされないというような情報である。

Description

【発明の詳細な説明】 トーラス相互結合網のための適応ルーティング機構 発明の分野 本発明は一般的に、高速ディジタルデータ処理システムに関し、特に、デッド ロックを回避する多重処理ネットワーク内でのデータの適応ルーティングの方法 に関する。 発明の背景 マルチプロセッサコンピュータシステムは、相互結合網によって互いに接続さ れた幾つかの処理素子ノードを備える。上記マルチプロセッサシステムの全体的 性能は、大部分が相互結合網の性能に依存する。 相互結合網の性能低下の最初の原因は、上記網における一様でない通信パター ンとランダムな平衡状態(方程式)による輻輳である。輻輳が非常に局所的に限 定された処理素子ノードに制限されると、その輻輳はメッセージの大きな停滞へ 導く。上記輻輳問題に対処するために使用されている1つの技術は、適応ルーテ ィングである。適応ルーティングは、データの複数のパケットが相互結合網にお ける輻輳した領域の周囲を動的にルーティング(ルート選択)されることを可能 にする。それにもかかわらず、適応ルーティング機構の潜在的な性能の利点は、 もし適切に実施されなければ、設計の複雑さを加えてデッドロックの可能性を導 入する。さらに、三次元トーラス(正方格子網において、最左端と最右端、最上 端と最下端どうしのノードを結合したもの)相互結合トポロジにおいて、デッド ロックを回避するための前述の解決法は非常に高価であった。 相互結合網はノード間で情報のパケットを送信する。1つのパケットに含まれ る可能性のある情報の例は、メッセージ、共有されるメモリ動作、又は種々の形 態のデータである。パケットは多数の物理的転送単位(フィット(phits))を備 える。1つのフィットは典型的に、処理素子ノード間のネットワークの物理的通 信リンク又は物理チャンネルの幅である。 ネットワークの性能は、パケットの遅延及びスループットの関数である。パケ ットの遅延は、パケットの送信の開始から上記パケットの最後のフィットがそれ の 目的地で受信されるまでの時間である。パケットのスループットは典型的に、相 互結合網によって伝送される処理素子当たりの1秒当たりのバイトとして測定さ れる。遅延とスループットは独立し、両方とも通信負荷に依存する。相互結合網のタイプ 第1世代のマルチプロセッサシステムは、ストアアンドフォワード相互結合網 を利用する。ストアアンドフォワード相互結合網は、ソースから目的地へのパス に沿ってノードからノードに単一の単位としてパケットを転送する。パケットの 最後のフィットが受信されるまで、各ノードはパケットのヘッドを次のノード上 に送信するために待機する。 より最近のマルチプロセッサシステムは、ワームホールルーティングの幾つか の形態を使用する相互結合網を利用する。ワームホールルーティングの相互結合 網は、パケットの後部がノードによって受信される前に、上記ノードからのパケ ットの先頭をルーティングする。上記パケットはフロー制御単位(flow control units、以下、flit(フリット)という。)と呼ばれる幾つかのより小さいメッセ ージパケットに分割され、上記フリットは1つ又はそれ以上のフィットでもよい 。ヘッダのフリットは処理素子ノードによって受信され、それの目的地について 調査される。ヘッダのフリットは上記ルーティングアルゴリズムによって示され る次のノード上に送信される。残りのフリットはデータ列(train)のような方法 でヘッダのフリットの後に続く。ノード間のフロー制御は、ストアアンドフォワ ード相互結合網においてはパケット毎の基準よりむしろフリット毎の基準で達成 される。従って、ワームホールルーティングにおいて、1つのパケットは物理的 通信リンクをわたって部分的に転送されてもよく、そのとき、受信するノードに おいてバッファ空間の不足のためにブロックされるかもしれない。 ワームホールルーティングは、少し負荷を与えられたネットワークにおけるパ ケットの遅延を明らかに減少し、なぜなら、リンク上にパケットを転送するため の時間(1パケット×クロックの周期当たりのフィット)は、1ホップ当たりに 一度よりむしろネットワークの1回の横断当たりに一度だけ行われるからである 。ノードは全体のパケットをバッファする必要がないので、ワームホールルーテ ィ ングはまた、ネットワークにおいてバッファするときの必要条件を大幅に減少さ せる。 しかしながら、ワームホールルーティングに伴う問題は、ヘッダのフリットが ブロックすると、残りのフリットが上記ヘッダの後ろで立ち往生することである 。ブロックされたパケットは、ブロックされた所のノードを介してルーティング することをヘッダのフリットが所望してないパケットでさえも、進行する他の複 数のパケットを邪魔するかもしれない。このことは、特に一様でない通信パター ンの存在において、大きなネットワークの性能劣化を引き起こす。 相互結合網の第3のタイプは仮想カットスルー相互結合網である。仮想カット スルー相互結合網は、1つのパケットがバッファをブロックするときそのバッフ ァが1つの全体のパケットを受信しなければならないことを除いて、ワームホー ルネットワークに似ている。従って、仮想カットスルールーティングは、ワーム ホールルーティングにおいて発生するブロッキング固有の問題を回避するが、ブ ロックされたすべてのパケットをバッファする必要がある付加的なハードウェア のコストがある。 本アプリケーションはワームホールルーティングネットワークを拡張する複数 の機構に関係する。デッドロック デッドロックは、循環的依存状態(cyclic dependencies)が1組のチャンネ ルバッファ間に生じるときに発生し、含まれるすべてのバッファを満たしてブロ ックすることを引き起こす。相互結合網の設計と対応するルーティングアルゴリ ズムにおける最初の考慮は、デッドロックを回避することである。 デッドロック状況は、チャンネル−依存度のグラフによって定式化され、指示 されたグラフのノードはネットワークのチャンネルを表し、指示されたグラフの 弧はチャンネル間の依存度を表す。ある1つのパケットがチャンネルxからチャ ンネルyに直接ルーティングすることができる場合及びその場合に限って、1つ の弧はチャンネルxとyとの間に存在する。もしそれのチャンネル−依存度のグ ラフが非循環的であればネットワークはデッドロックフリー(デッドロック状態 が起きないこと)であることが提供される。 デッドロックを回避するための1つの簡単な方法は、循環的なバッファの依存 状態の可能性を除去するために、相互結合網上の処理素子ノード間の複数のパケ ットをルーティングするために用いられる相互結合網のトポロジ及び/又はルー ティング機能を制限することである。例えば、もしルーティング機能が制限され て、その結果、次元がいつもe−キューブ又は次元順序ルーティングアルゴリズ ムを用いて昇順で横断されるので、二次元のハイパーキューブトポロジはデッド ロックフリーである。ほとんどで、1つのホップが1次元当たりに行われてパケ ットがより低い次元にルーティングされないので、循環的バッファ依存状態はな い。各次元における反対側を流れているトラヒックが別個の複数組のバッファを 使用して、次元は昇順で横断されるので、e−キューブルーティングアルゴリズ ムはまた、n次元メッシュトポロジのデッドロックフリーを生成するために使用 されることができる。しかしながら、トーラストポロジは、e−キューブルーテ ィングに制限されたときにデッドロックフリーではなく、なぜなら、トーラスト ポロジにおける周囲を包囲するラップアラウンドリンクは、循環的バッファ依存 状態が単一のリング上で形成されることを可能にするからである。 さらに、複数のメッシュにおいて、デッドロックは要求パケットと応答パケッ トとの間の依存状態のために生じる。1つのノードは、上記ノードが前の要求に 対して応答パケットを送信するまで、より多くの要求パケットを受信することが できないので、もし応答パケットがネットワークにおいて要求パケットの後ろに 待機させられるときに、デッドロックは発生する。要求パケットと応答パケット との間のこの依存状態問題への高価な解決策は、要求と応答に対して独立した物 理ネットワークを使用することである。仮想チャンネル 仮想チャンネルは、デッドロックを回避してネットワークの輻輳を減少するた めに使用される。各物理チャンネルは1つ又はそれ以上の仮想チャンネルに分割 される。各仮想チャンネルは、仮想パスに沿った複数のパケットを記憶するため の仮想チャンネルバッファを含む。複数の仮想チャンネルは共通の物理チャンネ ルをわたって多重化されるが、他の点では独立して動作する。従って、共通の物 理チャンネルをわたって多重化された第1の仮想チャンネル上のブロックされた パケットは、共通の物理チャンネル上で多重化された第2の仮想チャンネルの後 ろの複数のパケットをブロックしない。適応ルーティング 適応ルーティングはマルチプロセッサコンピュータシステムの性能を増大する ために使用されている。適応ルーティング相互結合網は、上記相互結合網におけ る輻輳の回りの複数のパケットを動的にルーティングする。従って、適応ルーテ ィング機構は、ネットワークのスループットを劇的に増大し、通信パターンにお ける変化へのネットワークの感度を劇的に減少する。 適応ルーティングアルゴリズムは、最小又は非最小のいずれかであるとして特 徴付けられる。最小ルーティングアルゴリズムは、ソースノードと目的ノードの 間の最短距離のルーティングパスだけを可能にする。非最小ルーティングアルゴ リズムは、パケットがソースノードと目的ノードとの間の全体のルート距離を増 す代わりのパスをルーティングすることを可能にする。従って、非最小ルーティ ングアルゴリズムは、最小ルーティングアルゴリズムが単一のパスに束縛される 状況において適応ルーティングを可能にする。このように、非最小ルーティング アルゴリズムはネットワークにおける故障部(フォルト)の周囲を動的にルーテ ィングするために使用される。しかしながら、非最小ルーティングアルゴリズム は、異なる物理的な仕切りでの複数の処理間のネットワークの干渉を引き起こす 。さらに、前方向への進行が保証されないので、非最小ルーティングアルゴリズ ムはライブロック状況が発生することを許してしまう。デッドロックの回避は非 最小ルーティングアルゴリズムにおいてより困難になってしまう。 最小適応ルーティングアルゴリズムは完全に適応的又は部分的に適応的である ことが可能である。完全適応ルーティングアルゴリズムはソースと目的地の間の どのような代わりのパスをも可能にし、一方、部分適応ルーティングアルゴリズ ムは幾つかの方法での選択を制限する。例えば、部分適応ルーティングアルゴリ ズムは、すべての次元の正方向におけるルーティングが、負方向におけるいかな るルーティングが実行される前に終了される必要がある。二次元トーラスにおい て、これは、+X及び+Y方向におけるパケットの移動に対する完全適応性を結 果として生じるが、+X及び−Y方向において移動するパケットに対する決定的 ルーティングを結果として生じる。 デッドロックが回避されなければならないので、適応ルーティングアルゴリズ ムは実施することが困難である。上述したように、デッドロックは、チャンネル −依存度のグラフからの循環を除去するためにトポロジ又はルーティング機能を 制限することによって回避されることが可能である。対照的に、適応ルーティン グの目的は、パケットがルーティングしてもよい多数の代わりのパスを提供する ためにルーティング機能の自由度を増大させることである。 適応ルーティングによって生じられる付加的な問題は、ネットワークの順序付 けに関する。決定的(非適応)ルーティングを用いて、同一のソースから同一の 目的地に伝送される2つのパケットが順番に送られる。多くの状況において、上 記2つのパケットは、同一の遠隔のメモリ位置に要求を書き込むようなセットの 順序で伝送されなければならない。適応ルーティングは一般的に、2つのパケッ トが異なるルートを取って反対の順序で到達することを可能にする。従って、順 番にパケットを伝送する問題は、もし伝送順序が要求されれば、注意を向けられ なければならない。仮想チャンネルを使用する完全適応ルーティング C.R.Jesshope,P.R.Miller and J.P.Yantchev(シー・アール・ジェスホープ 、ピー・アール・ミラー及びジェイ・ピー・ヤンチェフ),High Performance Co mmunications in Processor Networks (プロセッサネットワークにおける高性能 通信),proc.16th International Symposium on Computer Architectureの15 0−157において1989年5月における物理ネットワークは、複数のターン (turns)によって起こされるサイクルを壊すために移動の方向に依存する多数 の仮想ネットワークに分割される。各仮想ネットワーク内の付加的仮想チャンネ ルはトーラスにおけるラップアラウンドリンクによって起こされるサイクルを壊 すために開かれる。2nの仮想ネットワークはn次元トーラス又はメッシュの ために必要とされる。2倍の仮想チャンネル数は二次元トーラストポロジにおけ るラップアラウンドサイクルを壊すために必要とされる。ジェスホープ他の文書 は、複数の要求とそれに対応する複数の応答によって生成される複数のサイクル に注意を向けていない。要求/応答サイクルは、すべてのサイクルを壊すために 必要とされる仮想チャンネル数を2倍にする。ジェスホープ他の方法を使用する 要求及び応答トラヒックに対する三次元メッシュを構築するために、1つの物理 チャンネル当たり16個の仮想チャンネルが必要とされる。少なくとも32個の 仮想チャンネルが、三次元トーラストポロジに対する1個の物理チャンネル当た りに必要とされる。 D.H.Linder and G.C.Harden(ディー・エイチ・リンダー及びジー・シー・ハ ーデン),An Adaptive and Fault Tolerant Wormhole Routing Strategy for k- ary n-cubes (k−aryでn個の立方体に対する適応及びフォールトトレラン トワームホールルーティングストラテジー),I.E.E.E.Trans.on Computersの 2−12において1991年1月における移動方向に基づく複数の仮想ネットワ ークは、n次元トーラス又はメッシュのために使用される。リンダー他は、n次 元トーラス又はメッシュに対して2n−1個の仮想ネットワークを必要とする。 さらに、1個の仮想ネットワーク当たりn+1個の仮想チャンネルがトーラスに おいてラップアラウンドリンクによって引き起こされるサイクルを壊すために必 要とされる。また、要求/応答サイクルはリンダー他の文献では注意を向けられ てない。リンダー他の方法を使用する三次元トーラストポロジは1個の物理チャ ンネル当たりに32個の仮想チャンネルを必要とする。 W.J.Dally and H.Aoki(ダブリュ・ジェイ・ダリー及びエイチ・アオキ),Ad aptive Routing Using Virtual Channels (仮想チャンネルを使用する適応ルーテ ィング),I.E.E.E.Transactions on Parallel and Distributed Systems,Vol .4,No.4の466−475における1993年4月において、静的アルゴリズ ムと動的ルーティングアルゴリズムが開示されている。ダリー他の静的アルゴリ ズムにおいて、移動方向に基づいて仮想チャンネルのクラスを生成することより むしろ、仮想チャンネルのクラスは、パケットが行う次元の反転の回数に基づ いて生成される。パケットがより高い番号を付けられた次元からより低い番号を 付けられた次元にルーティングするときに、次元の反転は発生する。n+1個の そのようなクラスを用いて、1つのパケットはn次元の反転を行うだけでもよく 、次いで、決定的にルーティングしなければならない。ダリー他の文献だけが複 数のメッシュについて論及している。ダリー他の動的方法はデッドロックフリー のサブネットワークのセクションのもとで以下で述べられる。仮想チャンネルを使用する部分的適応ルーティング 上記の文献は、付加的仮想チャンネルに基づいて完全適応ルーティング機構を 記述する。C.J.Glass and L.M.Ni(シー・ジェイ・グラス及びエル・エム・ニ ー),The Turn Model for Adaptive Routing(適応ルーティングのためのターン モデル),Proc.19th International Symposium on Computer Architectureの2 78−287の1992年5月において、仮想チャンネルを加えることなく部分 的適応性を提供するターンモデルルーティング方法が述べられる。上記ターンモ デルは、複数のパケットがチャンネル−依存度のグラフにおけるサイクルを壊す ために生成するターン数を制限する。グラス他は複数の二次元メッシュトポロジ のための幾つかの部分的適応ルーティングアルゴリズムを表す。例えば、パケッ トを決定的に西、次いで東、北及び南方向に適応的にルーティングする1番目に 西へルート選択するルーティングアルゴリズムが記述される。最小ルーティング に対して、1番目に西へルート選択するルーティングアルゴリズムは西に移動し ないパケットに対しては完全適応性を提供し、西に移動するパケットに対しては 適応性を提供しない。グラス他の文献は、余分な仮想チャンネルを加えることな く4より大きい基数を有するトーラスのための適応的でデッドロックフリーな最 小ルーティングアルゴリズムを提供することは不可能であることを述べる。複数 のトーラストポロジのための幾つかの非最小で部分的適応アルゴリズムはグラス 他の文献に表される。 A.A.Chien and J.H.Kim(エー・エー・チェン及びジェイ・エイチ・キム),P lanar-Adaptive Routine: Low-Cost Networks for Multiprocessors (二次元適応 ルーチン:マルチプロセッサに対する適応ネットワークのための低コストネッ トワーク),proc.19th International Symposium on Computer Architectureの 268−277における1992年5月において、二次元適応モデルが記述され る。二次元適応モデルは付加的な仮想チャンネルを使用することによってトーラ ス及びメッシュに対する部分的適応性を提供する。二次元適応モデルは一連の二 次元平面(例えば、三次元ネットワークにおけるXYとYZである。)において 適応的にパケットをルーティングする。二次元適応モデルは、2より大きいnで あり独立したnであるn次元ネットワークに対して一定数の仮想チャンネルを必 要とする。二次元適応モデルは、メッシュトポロジに対して1個の物理チャンネ ル当たり3個の仮想チャンネルを必要とし、トーラストポロジに対して1個の物 理チャンネル当たり6個の仮想チャンネルを必要とする。しかしながら、チェン 他の文献は要求/応答サイクルを考慮することを無視する。二次元適応モデルを 使用する三次元トーラスネットワークは、要求/応答サイクルを壊すために1個 の物理チャンネル当たり12個の仮想チャンネルを必要とする。デッドロックフリーなサブネットワーク 上述したように、以前は、相互結合網においてデッドロックを回避するために チャンネル−依存度のグラフは非循環的でなければならないと信じられていた。 次の2つのルーティング方法は、パケットがいつも入ることができてかつパケッ トがそれらの目的地に到達することを可能にするグラフの非循環的な部分があれ ば、チャンネル−依存度のグラフは非循環的でなくてもよいという考えに基づい ている。 第1のそのような方法は、上記で参照されてダリー他の文献において記述され たダリー他の動的ルーティングアルゴリズムである。ダリー他の静的アルゴリズ ムのように、ダリー他の動的アルゴリズムはパケットがとる次元の反転回数を計 数するが、フィールドのサイズとその回数を記録するために用いられるパケット とによる計数ではなく、この回数を制限しない。ネットワークは2つのクラスに 分割される:適応的と非適応的である。すべてのパケットは適応的仮想ネットワ ークにおいて始まり、所望される回数でより低い次元に変化する。より少ない次 元反転回数を有するパケットによって占有されたバッファ上で待機する必要があ る任意のパケットは、適応仮想ネットワークを出て非適応仮想ネットワークにお けるそれの目的地への別のルートにルーティングする必要がある。これは適応仮 想ネットワークにおける発生からのデッドロックサイクルを動的に防止する。 ダリー他の動的ルーティングアルゴリズムは、1個の物理チャンネル当たり単 一の仮想チャンネルだけを用いる完全適応ルーティングを提供する。しかしなが ら、パケットが非適応仮想ネットワークにおいてルーティングするために適応仮 想ネットワークを出なければならないとき、上記パケットはその移動時間のため に非適応仮想ネットワークに残らなければならない。それゆえ、パケットは非適 応仮想ネットワークに入るとすぐに、適応性は失われる。ダリーの動的方法は実 施することがかなり困難であり、なぜなら、次元の反転回数はすべてのパケット に対して保持されなければならず、ノードは、ノードが送信することができるす べての適応チャンネルに対するチャンネルバッファに記憶される、パケットの次 元の反転回数を知る必要がある。 チャンネル−依存度のグラフは非循環でなくてもよいという根本的な考えを使 用する第2の適応ルーティング方法は、J.Duato(ジェイ・デュアト),A New Th eory of Deadlock-Free Adaptive Routing in Wormhole Networks (ワームホール ネットワークにおけるデッドロックフリーな適応ルーティングの新しい理論),I .E.E.E.Transactions on Parallel and Distributed Systems,Vol.4,No.12の 1320−1331における1993年12月に開示される。デュアトの適応ル ーティング方法は1組の仮想チャンネル(C)を2つのサブセットの(C1、N C1)に分割する。第1のサブセット(C1)は、すべてのノード間の非適応的 でデッドロックフリーであるルーティングを実施する。第2のサブセット(NC 1)は最小であって適応的であるルーティングを実施し、それのチャンネル−依 存度のグラフにおけるサイクルを有する可能性がある。パケットはNC1チャン ネルにおいて自由にルーティングでき、循環的依存状態はNC1バッファ間で生 じるかもしれない。NC1チャンネルにおけるパケットはいつも、これらの循環 的依存状態を壊すためにC1チャンネルにルーティングできなければならない。 C1におけるパケットはいかなる時でもNC1チャンネルにルーティングしても よい。 発生するデッドロックを回避するために、デュアトは彼の適応ルーティング方 法における幾つかの制限を強要する。まず最初に、デュアトは、現在のチャンネ ルと目的ノードのより柔軟な機能よりむしろ現在のノードと目的ノードの機能と してルーティングを画成する。ほとんどのルーティングアルゴリズムは、現在の チャンネルと目的のノードの機能としてルーティング機能を画成する。デュアト の第2の制限は、仮想チャンネルの待ち行列(バッファ)は異なるパケットに属 するフリットを含むことはできないことである。この要求を実施するために、デ ュアトは、待ち行列が最後のフリットを受信した後でもう1つのヘッダフリット を受信する前に、上記待ち行列は空にされなければならないことを必要とする。 この制限は、NC1チャンネルにおけるすべてのパケットが、もし循環的依存状 態を壊すことが必要とされなければ、C1チャンネルにルーティングすることが できることを保証する。デュアトの方法において、パケットの先頭がそれのNC 1の待ち行列におけるもう1つのパケットの後ろでブロックされることは不可能 であり、よって上記先頭は(待ち行列の前で)いつもアクセス可能である。 デュアトの方法の第3の制限は、C1仮想ネットワークの拡張されたチャンネ ル−依存度のグラフが非循環的でなければならないことである。拡張されたチャ ンネル−依存度のグラフは、間接依存状態に対する付加的な弧を用いて増大され る通常のチャンネル−依存度のグラフである。パケットがチャンネルxからNC 1チャンネルにルーティングし、NC1チャンネルにおける0又はそれ以上のよ り付加的なホップでルーティングし、次いで、チャンネルy上のC1にルーティ ングすることができる場合及びその場合に限って、間接依存状態はC1チャンネ ルxとyの間に存在する。トーラスのC1サブネットワークに対する拡張された チャンネル−依存度のグラフは、循環的である。従って、デュアトの方法はトー ラストポロジに対しては機能しない。 適応的なルーティングへの上記のアプローチのどれもが、三次元トーラスネッ トワークに対しては適切な機構ではない。従って、完全適応ルーティング機構は 、いかなる次元のトーラス上でもデッドロックフリーなルーティングを提供し、 実 施のために最小仮想チャンネルを要求することを所望される。 発明の概要 本発明は、n次元トポロジにおける複数のノードと上記複数のノードを相互結 合する物理的通信リンクとを有するネットワーク化されたシステムにおいて、ソ ースノードと目的ノードの間でパケットをルーティングする方法と装置とを提供 する。1つのパケットは、ルーティング情報を有するヘッダを転送されるべき情 報に取り付けることによって形成される。各物理的通信リンクは、第1のタイプ の仮想チャンネルバッファと第2のタイプの仮想チャンネルバッファと第3のタ イプの仮想チャンネルバッファとを割り当てられる。2つの非循環非適応仮想チ ャンネルは、ルーティング情報に基づいてソースノードから目的ノードへの決定 的仮想パスに沿ったパケットを記憶するために、第1のタイプと第2のタイプと の仮想チャンネルバッファを使用することができるように画成される。適応仮想 チャンネルは、ルーティング情報に基づいてソースノードから目的ノードへの複 数の非決定的仮想パスに沿ったパケットを記憶するために第3のタイプの仮想チ ャンネルバッファを使用することができるように画成される。パケットは、ルー ティング情報に基づいて、ソースノードから隣接するノードへの1つの決定的仮 想パスの一部分、又はソースノードから隣接するノードへの複数の非決定的仮想 パスの一部分のいずれかに沿ってルーティングされ、上記ルーティング情報は、 ある1つの非決定的仮想パスの一部分に関連する第3のタイプの仮想チャンネル バッファが1つの全体のパケットを記憶するために利用できる十分な空間を有し ていなければ、上記非決定的仮想パスの一部分はルーティングのために選択され ないというような情報である。パケットは、上記パケットが目的ノードに到達す るまで、上述の方法におけるルーティング情報に基づいて選択された仮想パス上 をルーティングすることを続ける。 本発明の好ましい実施形態は、複数のパケットをルーティングする方向の順序 を画成する。方向の順序は、決定的仮想パスに沿った2n個の方向の各々におい てパケットをルーティングする優先順位を画成する。ある1つの非決定的仮想パ スは好ましくは、ブロックされる又はディスエーブルされる2n個の方向のうち の最も低い優先順位の方向においてルーティングするために予め選択される。 本発明の好ましい実施形態において、1つのパスは、1つの非決定的仮想パス を予め選択することと、パケットをルーティングする予め選択された非決定的仮 想パスの一部分及び決定的仮想パスの一部分との両方を要求することとによって 、ルーティングするために選択される。複数の物理的通信リンクへのアクセスは 、上記複数の物理的通信リンクに対する要求及び他の競合する要求に応答して承 認又は否認される。もし適応仮想チャンネルと非適応仮想チャンネルとが物理的 通信リンクのアクセスを両方ともに要求すれば、非適応仮想チャンネルが物理的 通信リンクへのアクセスを承認される。承認された仮想パスの一部分は、もし要 求のうちの少なくとも1つが承認されれば選択される。1つの非決定的仮想パス の一部分は、もし両方の要求が承認されれば選択される。上記要求は、要求のい ずれも承認されなければ再試行される。 本発明は好ましくは、複数のノード間で多数のパケットをルーティングする。 順序付けられたルーティングをサポートするための本発明の1つの形態において 、予め決められた順序で目的ノードに到達するために要求される複数のパケット の複数の順序依存グループが、決定される。決定的仮想パスだけが、複数のパケ ットの1つの順序依存グループにある上記複数のパケットをルーティングするた めに選択される。 要求パケットと応答パケットとの間で形成されるサイクルを説明するために、 複数の非循環非適応仮想チャンネルは好ましくは、要求情報を処理する2つの非 循環非適応仮想チャンネルと、応答情報を処理する2つの独立した非循環非適応 仮想チャンネルとを含む。 本発明の好ましい実施形態は、より短い代わりの複数のルーティングを提供す るために複数の最初の自由なホップと複数の最後のホップとを使用する。上記複 数の最初の自由なホップと上記複数の最後のホップによって、相互結合網は修復 不可能な多くの複合的な故障部の周囲に形成することができる。 本発明のもう1つの態様は、たとえ1つの非決定的仮想パスの一部分に関連す る第3のタイプの仮想チャンネルバッファが1つの全体のパケットを記憶するた めに十分な空間を有してなくても、上記1つの非決定的仮想パスの一部分がルー ティングのために選択されることを可能にすることによって、複数の任意長のパ ケットをサポートするルーティング機構を提供する。しかしながら、このルーテ ィング機構は、もし1つの非決定的仮想パスの一部分に関連する第3のタイプの 仮想チャンネルバッファが空でなければ、ルーティングのための上記1つの非決 定的仮想パスの一部分を選択しない。もし1つのパケットがある1つの非決定的 仮想パスの一部分にルーティングされれば、パケットが上記ある1つの非決定的 仮想パスの一部分に入るとき、上記パケットが存在する方向と決定的仮想パスは 記録される。上記パケットが決定的仮想パスに再び入ると、上記パケットは、も し記録された方向におけるすべての転送が完全に行わなければ、記録された方向 で記録された決定的仮想パス上をルーティングすることを続ける。 図面の簡単な説明 図1は、超並列処理(MPP)システムの図である。 図2は、図1のMPPシステムのための処理素子ノードと相互結合網コンポー ネントの図である。 図3は、図1のMPPシステムのための処理素子コンポーネントの図である。 図4は、三次元トーラスネットワークトポロジを有するMPPシステムの図で ある。 図5は、図1のMPPシステムの好ましい実施形態の各ネットワークの物理的 通信リンク又はチャンネルのために用いられる複数の仮想チャンネルを図示する 図である。 図6は、複数の仮想チャンネルを使用する三次元ネットワークにおける切り換 え機構のブロック図である。 図7は、部分的なZ平面を図示するMPPシステムネットワークのサブセクシ ョンである。 図8は、壊れた物理的通信リンクを回避するために+X及び−Xの物理的通信 リンクの両方の使用を図示するMPPシステムネットワークのサブセクションで ある。 図9は、物理的サイクルに対する横断時間の仮想チャンネルへの割り当てを図 示する図である。 好ましい実施形態の説明 好ましい実施形態の以下の詳細な説明において、これの一部分を形成しかつ本 発明が実施される特定の実施形態の図として示される添付の図面から参照される 。他の実施形態が利用され、構造的又は論理的変形例が本発明の範囲を逸脱する ことなく形成されてもよい。それゆえ、次の詳細な説明は限定的な解釈で取られ るのではなく、本発明の範囲は添付の請求の範囲によって定義される。MPPシステム 図1は、通常20で示される超並列処理(massively parallel processing、 MPP)システムのコンポーネントの簡単化されたモデルを図示する。MPPシ ステム20は典型的に、処理素子ノード22のような数百又は数千の処理素子ノ ードを備える。相互結合網24は、MPPシステム20における複数の処理素子 ノード間の通信パスを提供する。図1において図示される当該システム20のモ デルにおいて、相互結合網24は通信パスの三次元マトリックスを形成し、上記 通信パスは、矢印26によって示されるx、y及びz次元において複数の処理素 子ノードを接続する。相互結合網24はまた、複数の処理素子ノード22をI/ Oゲートウェイ28に接続する。I/Oゲートウェイ28は、ホストシステム( 図示せず。)とMPPシステム20との間でシステムデータ及び制御情報を転送 する。 上記ホストシステムは、MPPシステム20のためのソフトウェアコンパイラ を実行する。MPPシステム20のために記述されたすべてのソフトウェアプロ グラムは、ホストシステム上でコンパイルされるが、MPPシステム20におい て実行される。単一のキャビネットの構成においては、ホストシステムはMPP システム20と同一のキャビネットに属する。複数のキャビネットの構成におい ては、ホストシステムは、MPPシステム20に接続される離れたキャビネット に属する。 図2は、処理素子ノード22のより詳細な図面と処理素子ノード22の相互結 合網24への接続とを提供する。処理素子ノード22のような各処理素子ノード は典型的に、処理素子30とブロック転送エンジン32とネットワークインター フェース34とを備える。処理素子ノード22は1つ以上の処理素子30を備え てもよい。 図3において図示されるように、各処理素子30は、マイクロプロセッサ38 とローカルメモリ40とサポート回路42とを備える。 各処理素子30はローカルメモリ40を含むので、MPPシステム20は動的 な分散型メモリを含む。それにもかかわらず、MPPシステム20のメモリはま た、論理的に共有される。ある1つの処理素子30におけるマイクロプロセッサ 38は、その処理素子30におけるマイクロプロセッサ38を含まずに、もう1 つの処理素子30のメモリにアクセスすることができるので、MPPシステム2 0のメモリは論理的に共有される。 ローカルメモリ40は好ましくは、ダイナミックランダムアクセスメモリ(D RAM)を備え、システムデータを記憶する。低い待ち時間で高い帯域幅のデー タのパスは、マイクロプロセッサ38を処理素子30におけるローカルメモリ4 0に接続する。 サポート回路42はマイクロプロセッサ38の制御機能とアドレス機能を拡張 する。サポート回路42はデータ転送をローカルメモリ40に又はローカルメモ リ40から実行する。 図2に戻って参照すると、ブロック転送エンジン(block transfer engine、 BLT)32は、システムデータを再分散する非同期直接メモリアクセスコント ローラである。BLT32は、処理素子30におけるローカルメモリ40と遠隔 な処理素子におけるローカルメモリとの間でシステムデータを再分散する。BL T32は、処理素子30又は遠隔な処理素子に割り込むことなく、データを再分 散することができる。MPPシステム20の変形例の実施形態において、ソフト ウェアは、複数の処理素子30のローカルメモリ40間のデータのブロックの移 動を制御する。 ネットワークインターフェース34は、相互結合網24をわたってもう1つの 処理素子ノード22又はI/Oゲートウェイ28に送信されるべき情報をフォー マットする。ネットワークインターフェース34はまた、他の処理素子ノード2 2又はI/Oゲートウェイ28からの到来情報を受信し、上記情報を処理素子3 0に向けて送信する。 相互結合網24は、図2において図示されるネットワークルータ36のような 複数のネットワークルータを備える。さらに、相互結合網24は、各次元の各方 向における複数の物理的通信リンクを備える。複数のX次元の通信リンク44は x次元における複数の処理素子ノードに接続する。複数のY次元の通信リンク4 6はy次元における複数の処理素子ノードに接続する。複数のZ次元の通信リン ク48はz次元における複数の処理素子ノードに接続する。各次元における代表 的な通信リンクは図1において図示される。さらに、図2は、−X次元における 通信リンク44a、+X次元における通信リンク44b、−Y次元における通信 リンク46a、+Y次元における通信リンク46b、−Z次元における通信リン ク48a及び+Z次元における通信リンク48bを図示する。 通信リンク44、46及び48は、相互結合網24におけるネットワークルー タ36間でデータ及び制御情報を転送する。通信リンクは典型的に2つの単方向 チャンネルを備える。上記通信リンクにおける各チャンネルは好ましくは、デー タ信号と物理的単位(phit、フィット)タイプ信号と仮想チャンネル選択信号と 仮想チャンネル応答信号とを含む。 複数のデータ信号は好ましくは、要求情報又は応答情報のいずれかを運ぶ。要 求情報は、ノードに行動を実行するように要求する情報を含む。例えば、ソース ノードは、メモリからの情報を読み取るために目的ノードに情報を送信してもよ い。この要求は、通信リンクにおけるある1つのチャンネルをわたって送信され る。複数の応答情報は活動の結果である情報を含む。例えば、読取りデータのた めの要求を受信した後に、目的ノードはその応答をそのソースノードに返信する 。上記応答は上記読取りデータを含む。要求と応答は、デッドロックを回避する ように好ましくは論理的に分割される。要求と応答の論理的な分割は以下で説明 される。 相互結合網24は好ましくは、双方向のトーラスにおける複数の処理素子ノー ド22を接続する。図4は、x、y及びz次元における三次元トーラスネットワ ークを有するMPPシステムの好ましい実施形態を図示する。三次元トーラスに おける各処理素子ノードは、x、y及びz次元の十及び一方向における通信リン クを有する。明細書における他の幾つかの図面は三次元ネットワークの接続を示 す。明解にするために、これらの他の図面においては、各次元における上記トー ラスを完全にする複数の通信リンクは図示されない。 トーラストポロジにおいて、リングは、情報があるノードから同一の次元にお けるすべてのノードを介して元のノードに転送することができる各次元において 、形成される。トーラスネットワークは、情報の転送速度の高速化のような、ネ ットワークの通信のための幾つかの利点を提供する。トーラスネットワークのも う1つの利点は、情報を上記ネットワークの周囲を長距離で送信することによっ て、有害な通信リンクを回避する能力である。 情報は、パケットの形状で複数の通信リンク上の複数の処理素子ノード間を転 送される。各パケットは好ましくはヘッダを備える。上記ヘッダは、ネットワー クを介するパケットを処理するルート情報と、どの処理素子がパケットを受信す べきかを示す目的地情報と、パケットを受信して動作を実行する処理素子に命令 する制御情報とを含む。上記ヘッダはまた、どの処理素子がどのパケットを生成 したかを示すソース情報を含んでもよく、メモリアドレス情報を含んでもよい。 パケットは任意にボディを備える。パケットのボディは典型的に、複数の処理素 子ノード間を転送されるべきデータ又はホストシステムから若しくはホストシス テムへのシステムデータを含む。 各処理素子ノード30でのネットワークルータ36のようなネットワークルー タは、各パケットの各ヘッダにおいて含まれるルーティング情報に基づいて、相 互結合網24における複数の通信リンクを介してパケットを転送する。上記ヘッ ダと上記ボディは、種々のリンクを有し、同時に通信リンクのある1つのフィッ ト上を転送する。MPPシステム20は背景セクションにおいて定義されたワー ムホールルーティングを使用し、ルーティング情報は上記ワームホールルーティ ングにおけるヘッダのフリット(flit)に含まれ、残りのフリットはデータ列の ような方法でそれの後ろに続く。複数のノード間のフロー制御は、パケット毎の 基準よりむしろフリット毎の基準で実行され、従って、ある1つのパケットがリ ンク上を部分的に送信され、受信する処理素子ノードにおけるバッファ空間の不 足のためにブロックされることが起こりうる。上述したように、本発明の好まし い実施形態は、双方向の三次元トーラスネットワークであり、上記三次元トーラ スネットワークはさらにデッドロックの状況を悪化する。適応ルーティング機構 相互結合網24を介して複数のパケットをルーティングする本発明に係る適応 ルーティング機構は、共通の複数の物理的通信リンクをわたって多重化された複 数の仮想チャンネルを使用するが、他の点では独立的に動作する。背景セクショ ンにおいて説明されたデュアト(Duato)のデッドロックフリーなサブネットワ ーク方法を用いて、MPPシステム20は、仮想チャンネルC1の第1のサブセ ットを使用する適応ルーティング機構を用いる。上記仮想チャンネルC1は、す べてのノード間で非適応的でデッドロックフリーなルーティングを実行する。仮 想チャンネルの第2のタイプは仮想チャンネルNC1である。仮想チャンネルN C1は最小完全適応ルーティングを実行する。複数のパケットが仮想チャンネル NC1において自由にルーティングするので、仮想チャンネルNC1はそれのチ ャンネル−依存度のグラフにおける複数のサイクルを有する。デュアトの方法に おけるように、もしいかなるときにも、仮想チャンネルNC1においてデッドロ ックされることが決定されると、パケットは仮想チャンネルC1にジャンプする ことができなければならない。従って、仮想チャンネルNC1における複数のパ ケットはいつも仮想チャンネルC1にルーティングすることができなければなら ない。 図5は、各ネットワークの物理チャンネル又は物理的通信リンクのために使用 される複数の仮想チャンネルを図示する。2つの仮想チャンネル50及び52は 仮想要求ネットワークC1のために使用される。仮想チャンネル50はvc0タ イプの仮想チャンネルであり、仮想チャンネル52はvc1タイプの仮想チャン ネルである。同様に、応答C1仮想ネットワークは2つの仮想チャンネル54及 び56を備える。仮想チャンネル54はvc0タイプの仮想チャンネルであり、 仮想チャンネル56はvc1タイプの仮想チャンネルである。vcタイプである 第3の仮想チャンネルは適応NC1仮想チャンネル58であり、上記適応NC1 仮想チャンネル58は要求及び応答のネットワークの両方における適応ルーティ ングを提供する。図5に図示される好ましい実施形態は1つのNC1仮想チャン ネルを使用するが、独立したNC1仮想チャンネルは要求と応答の仮想ネットワ ークの両方のために使用されてもよい。 図6を参照すると、各ノードはローカル処理素子(processing element、PE )と同様に、6方向(+X,−X,+Y,−Y,+Z,−Z)の各々に対して1 つの入力及び1つの出力を有する。図6のブロック図は、複数の仮想チャンネル を使用する三次元の要求又は応答C1ネットワークにおける切り替えを図示する 。仮想チャンネルのためのバッファは、物理的通信リンクの受信側の最後での処 理ノードの複数の入力にある。各物理的通信リンク上の送信側のノードは、反対 方向のリンク上で送信されるフロー制御情報を使用して、受信側の処理素子ノー ドにおける各仮想チャンネルのために利用できるバッファ空間のトラックを保持 する。 いかなる時も、仮想チャンネルC1における1つのパケットは、複数のパケッ トの現在のノードでの仮想チャンネルNC1にルーティングしてもよく、上記複 数のパケットの現在のノードはそれの(最小限の)目的地に近い1つのパケット を移動する。仮想チャンネルNC1における1つのパケットはまた、それの現在 のノードで任意の仮想チャンネルNC1に最小限でルーティングしてもよい。仮 想チャンネルNC1における1つのパケットはいつでも仮想チャンネルC1にル ーティングしてもよい。仮想チャンネルC1のネットワークに再び入ると、パケ ットは、現在のノードの仮想チャンネルのルックアップテーブルを使用して、決 定的C1ルーティングアルゴリズムに従って物理及び仮想チャンネル上でルーテ ィングする。要求又は応答の仮想チャンネルC1ネットワーク内のいずれかで、 vc0仮想チャンネル又はvc1仮想チャンネル上のパケットのルーティングを 開始するために選択することと、パケットのルートの間に仮想チャンネルをいつ 変 更するかを決定することは、正確性と性能の両方に影響を与える。最初の比較は 正確性である(即ち、vc0とvc1との間の仮想チャンネル配置がデッドロッ クを防止する必要がある。)。 次の3つのステップが実行されて、複数のC1仮想チャンネルにおけるデッド ロックを防止する。まず最初に、複数の要求及び応答パケットは独立した複数組 の仮想チャンネル上にルーティングされる。このことは、要求と応答とのトラヒ ックの間のいかなるサイクルをも壊す。第2に、方向順序ルーティングは好まし くは、多数の方向を含むいかなるサイクルをも壊すために用いられる。言い換え れば、複数のパケットは、(+X,+Y,+Z,−X,−Y,−Z)のような予 め決められた方向の優先順位を用いてルーティングされる。例えば、上述の方向 の順序を用いて、+X、−Y及び+Zの目的地に対するルートは、まず最初に+ X、次いで+Z、次に−Yでルーティングする。方向順序ルーティングは、本発 明の譲受人であるクレイ・リサーチ・インコーポレイテッドに譲渡された係属中 の1992年の11月30日に出願された特許出願シリアル番号第07/983 ,979号で“マルチ処理システムにおける方向順序ルーティング(DIRECTION ORDER ROUTING IN MULTIPROCESSING SYSTEM)”と名称づけられた特許出願に詳 細に説明される。 デッドロックを回避するための第3のステップは、各リング内の複数のサイク ルを壊すための2つの仮想チャンネル(VC0及びVC1)の使用である。この 第3のステップは、性能を最適にするために種々の方法において実行されること が可能である。仮想チャンネル配置の好ましい方法は、本出願の発明者であるス ティーブン・エル・スコットとグレゴリー・エム・トーソンとにこれと共に同日 出願された名称“並列処理システムにおける最適化された仮想チャンネル配置( OPTIMIZED VIRTUAL CHANNEL ALLOCATION IN PARALLEL PROCESSING SYSTEM)”で ある係属中の一般的な米国特許出願に詳細に説明される。ある1つのパケットが 、そのリング(対応する次元における目的ノードの座標)上のパケットの目的地 に基づいて、(図2に図示された)仮想チャンネルルックアップテーブル37に おいて記憶されたルーティング情報によってリング上でルーティングを開始する と きに、vc0又はvc1仮想チャンネルは選択される。各処理素子ノードは、小 さくてシステムに設定可能な、上記処理素子ノードの6方向の各々に対する仮想 チャンネルルックアップテーブル37を有する。C1ネットワークにおけるルー ティングは厳密に決定的である。 C1とNC1との間のルーティング機構は、背景セクションにおいて説明され たデュアトの方法からの多くの制限を除去する。デュアトの方法とは異なり、ル ーティング関数は仮想チャンネルを考慮に入れる。さらに、本発明のルーティン グ機構は、多数のパケットからのフリットが同一の仮想チャンネルバッファに属 することを可能にする。最終的には、本発明のルーティング機構は、C1仮想ネ ットワークの拡張されたチャンネル−依存度のグラフにおける複数のサイクルを 可能にする。それにもかかわらず、次の制限はNC1仮想チャンネルに対して要 求される: 「NC1仮想チャンネルに対するバッファが全体のパケットを保持すべき空間 を有しないかぎり、パケットはそのNC1仮想チャンネルに入らなくてもよい。 」 本発明の適応ルーティング機構の上記の制限は2つの結果を生じる。第1に、 当該制限は複数のNC1仮想チャンネル内で発生するデッドロックを防止し、な ぜなら、パケットは、それの後部が異なるチャンネルバッファの先頭をブロック するようにNC1仮想チャンネルにおいてブロックすることができないからであ る。先頭がNC1仮想チャンネルバッファの前にある1つのパケットはいつでも 、C1仮想チャンネルにルーティングすることができるので、NC1仮想チャン ネルネットワークのデッドロックは不可能である。対照的に、デュアトの方法は 、パケットが同一の結果を達成するためには同一のチャンネルバッファを共有し ないことを必要とする。デュアトの制限は、リンクにわたる複数のパケットの送 信のパイプライン処理を妨げ、なぜなら、第2のパケットが送信を開始する前に 第2のパケットより前のパケットがそれのチャンネルバッファから出力されるま で、第2のパケットは待たなければならないからである。 本発明の上記の制限の第2の結果は、複数のC1仮想チャンネル間の間接依存 状態がもはや存在しないことである。NC1仮想チャンネルに入るどのパケット も、最初のNC1仮想チャンネルバッファによって完全に受信され、なぜなら、 そのチャンネルに対するバッファが上記全体のパケットを保持するための空間を 有さなければ、パケットはNC1仮想チャンネルに入らなくてもよいからである 。それゆえ、パケットはC1仮想チャンネルからNC1仮想チャンネルにルーテ ィングすることができずに戻り、次いでパケットの後部が最初のC1仮想チャン ネルバッファにおけるバッファ空間を消耗するようにブロックする。結果として 、デュアトの文献によって画成された拡張されたチャンネル−依存度のグラフは 、本発明の適応ルーティング機構に適切ではない。代わりに、本発明のルーティ ング機構は、任意の相互結合網トポロジを介して複数のパケットをルーティング するために使用されることができ、C1仮想チャンネル上のデッドロックフリー な決定的ルーティングアルゴリズムが上記任意の相互結合網トポロジのために構 築されることができる。好ましくは、上述したように、デッドロックフリーな決 定的ルーティングアルゴリズムは、要求ネットワークに割り当てられた2つの仮 想チャンネルと応答ネットワークに割り当てられた2つの仮想チャンネルとを有 する方向順序ルーティング方法である。 ソースノードから目的ノードへの2つのノード間で使用するための仮想パスを 選択するために使用されるルーティング機構は、次のようになる: A.もしNC1仮想チャンネルの先頭とC1仮想チャンネルの先頭とが両方と もに物理的通信リンクを要求すれば、C1仮想チャンネルが物理的通信リンクへ のアクセスが承認される。 B.与えられた1つのパケットは、2つのノード間の予め選択されたC1仮想 チャンネルパスと、2つのノード間のある1つのNC1仮想チャンネルパスとを 有し、上記予め選択されたC1仮想チャンネルパスと上記ある1つのNC1仮想 チャンネルパスとの両方を要求する。 C.上記ある1つのNC1仮想チャンネルパスは、ブロックされず又はディス エーブルされない最も高い順序の方向として選択される。 D.もし上記予め選択されたC1仮想チャンネルパスと上記ある1つのNC1 チャンネルパスに対する少なくとも1つの要求が承認されれば、承認された仮想 パスの一部分が選択される。上記予め選択されたC1仮想チャンネルパスの要求 と上記ある1つのNC1仮想チャンネルパスの要求の両方が承認されれば、上記 ある1つのNC1仮想チャンネルパスが選択される。 E.もし上記予め選択されたC1仮想チャンネルパスと上記ある1つのNC1 仮想チャンネルパスに対する2つの要求のいずれもが承認されなければ、パケッ トは次のクロックサイクルで両方の要求を再試行する。 上述のステップCにおいて、最も高い順序の方向が選択され、その結果、適応 的なNC1仮想チャンネルは、非適応的なC1仮想チャンネルにおいて後にルー ティングされる方向にルーティングする。例えば、+X、+Y、+Z、−X、− Y、−Zの優先順位を有するNC1チャンネルの方向の順序に対して、最も低い 順序の方向は+Xであり、最も高い順序の方向は−Zである。 上述のステップDにおいて、もし上記予め選択されたC1仮想チャンネルパス の要求と上記ある1つのNC1仮想チャンネルパスの要求の両方が承認されれば 、上記ある1つの適応的なNC1仮想チャンネルパスが2つの理由のために選択 される。まず第1に、もしパケットが上記NC1仮想チャンネルを承認されれば 、ステップAのために、他のC1仮想チャンネルはNC1仮想チャンネルによっ て要求された物理チャンネルを要求しなかっただろう。それゆえ、幾つかの他の パケットが与えられたパケットの道に存在することはより起こりそうにない。第 2の理由は、最も高い順序がより輻輳されにくい傾向にあることである。最も高 い順序の方向は、C1仮想チャンネルにおいて順序付けする方向のために、より 輻輳しにくい傾向にある。輻輳は、最も高い順序から最も低い順序への依存度の ストリングのために、結果として生じる。方向順序方法によって示されるように 、ルートは、最も低い順序の方向におけるC1仮想チャンネルに入る傾向があり 、最も高い順序の方向におけるC1仮想チャンネル上のネットワークを出る傾向 がある。任意長のパケットのためのサポート 好ましいMPPシステム20は、キャッシュラインより少し長いような最大の パケット長を有し、その結果、パケットがNC1仮想チャンネルにルーティング する前に上記NC1仮想チャンネルのバッファが上記全体のパケットのための空 間を有するという制限は、実行可能である。それにもかかわらず、本発明のもう 1つの実施形態は、パケットがNC1仮想チャンネルにルーティングする前に上 記NC1仮想チャンネルのバッファが上記全体のパケットのための空間を有する という制限を除去することによって、任意長のパケットを用いる適応ルーティン グをサポートする。本発明に係る適応ルーティング機構のこの実施形態はまた、 もしチャンネルバッファへの記憶が非常に制限されれば有効であり、又はNC1 仮想チャンネルバッファが全体のパケットを記憶する要求がある任意の他の場合 においては実行可能ではない。 この変形例の実施形態において、上記ルーティング機構は、複数のNC1仮想 チャンネル間のデッドロックを防ぐために2つの方法のいずれかを使用する。こ の第1の方法は、複数のパケットが同時にある1つのNC1仮想チャンネルバッ ファ内に存在することができないというデュアトの方法の制限を使用することで ある。第2の方法は、各NC1仮想チャンネルバッファに入るべき最後のパケッ トの先頭のトラックを保持して、そのパケットが上記NC1仮想チャンネルバッ ファからある1つのC1仮想チャンネルに排出されるようにイネーブルして、そ れの前のパケットをバイパスするハードウェアを使用することである。これらの 解決法のいずれかによって、複数のNC1仮想チャンネル間の循環的依存状態は 、ある1つのNC1仮想チャンネルバッファからある1つのC1チャンネル内に 複数のパケットをルーティングすることによって壊されることができる。 この実施形態において、NC1仮想チャンネルバッファは、もはや全体のパケ ットを記憶することを保証されない。従って、複数の間接依存状態は、幾つかの 中間のNC1仮想チャンネルを介する2つのC1仮想チャンネル間に発生する。 本発明に係る適応ルーティング機構のこの実施形態は、NC1仮想チャンネルに おける複数のパケットのルーティングでの余分な状態の情報を保持することと、 上記NC1仮想チャンネルからC1仮想チャンネルに再び入るときに使用する仮 想チャンネルの選択を制限することとによって、三次元トーラストポロジにおけ るC1仮想チャンネルでのデッドロックの発生によるこれらの間接依存状態を防 止 する。 C1仮想ネットワークは好ましくは、方向順序ルーティングを使用するので、 デッドロックを引き起こす間接依存状態に対する唯一の方法は、パケットが方向 iに移動しているC1仮想チャンネルを離れて、NC1仮想チャンネルにルーテ ィングして、次いで、NC1仮想チャンネルに再び入り、方向iでルーティング することを続けることである。この問題は、あるパケットがC1仮想チャンネル を離れる前にそれが移動していた同一の方向に移動してC1仮想チャンネルに再 び入り、上記パケットが同一の仮想チャンネル上で続けることを保証することと 、与えられた方向におけるすべてのリングのデートラインを調整することとによ って解決される。 C1仮想チャンネルc上を方向dで移動しているある1つのパケットがNC1 ネットワークに入ると、仮想チャンネルcはパケットのヘッダにセーブされる。 もし上記パケットが方向dにおいて実行すべき付加的なルーティングを有すれば 、ヘッダにおける(継続ビットと呼ばれる)1ビットはセットされる。上記パケ ットがNC1チャンネルにおいてルーティングすると、もし方向dが満たされれ ば継続ビットがクリアされる。C1仮想チャンネルにおいて使用される好ましい 方向順序ルーティングアルゴリズムを与えられると、方向dはいつも最も低い順 序のあまり満たされない方向であり、よって、方向dはパケットに明確にセーブ されなくてもよい。もしパケットがC1仮想チャンネルに再び入ればかつ入った とき、もし継続ビットがセットされれば、パケットは方向dにルーティングする ことを継続し、セーブされたC1仮想チャンネルcが使用される。さもなければ 、パケットは新しく最も高い順序の方向において開始し、仮想チャンネルはテー ブルのルックアップによって選択される。 これの変形例の実施形態のルーティング機構は、ただ1つのC1仮想チャンネ ルが与えられた方向におけるパケットによるすべてのホップに対して使用される ことを保証する。複数の仮想チャンネルテーブルにおける複数のデートラインが 与えられた方向のすべてのリングに対して同一であるので、循環的依存状態はC 1仮想チャンネル間では生じない。順序付けられたルーティングのためのサポート 適応ルーティング機構を有するある1つの相互結合網における目的のノードに 複数のパケットが伝送される順序は、保証されていない。複数のパケットが適応 ルーティングにおける複数のノード間の複数の代わりのパスのいずれかを横断す るので、第2のパケットはおそらく、第2のパケットの前に同一のソースノード から送信されたパケットの前の目的ノードに到達する。 応答パケットの伝送の順序がプログラムの正確性には影響を与えないので、応 答パケットはいつも、適応的にルーティングされることができる。さらに、MP Pシステム20は好ましくは、ほとんどの要求が任意の順序で伝送されることが できるための、緩和されたメモリ整合モデルをサポートする。しかしながら、幾 つかの場合において、これは許容されない。例えば、同一プロセスによって同一 の遠隔のメモリ位置に記述する2つのものは、もしプログラムの正確性が保護さ れるべきものであれば、順序通りに伝送されなければならない。 パケット毎を基準とする順序付けられた複数の要求を送信する機能は、MPP システム20によってサポートされる。特別に順序付けられたビットは、パケッ トの適応ルーティングを防ぐために順序付けられた要求パケットにセットされる 。このように、順序付けられた複数の要求パケットはいつも、いかなる2つの与 えられたノードの間の同一組の仮想チャンネルをも横断する。従って、順序付け られた複数のパケットは相互結合網を互いに通過することはできない。 たとえ特別に順序付けられたビットが、すべての要求が順序付けられることを 示すすべての要求パケットにおいてセットされても、適応ルーティングは複数の 応答パケットと共に実行する。さらに、一般的なルールとして、メモリ要求の作 業負荷は、書き込み要求より読み取り要求の方をより多く含むので、よって、応 答のトラヒックは、ほとんどの場合において要求トラヒックよりも重くなる傾向 にある。パケットのルーティング MPPシステム20は好ましくは、ソースノードから目的ノードへの三次元す べてにおいて絶対的なアドレス指定を使用する。あるいは代わって、MPPシス テム20は異なるアドレス指定を使用し、ここで、目的地のアドレスはソースノ ードで計算されて、それが目的ノードに到達すると0にデクリメント/インクリ メントされる。 上述したように、C1仮想チャンネルは好ましくは、(+X,+Y,+Z,− X,−Y,−Z)のような予め決められた方向の優先順位を有する方向順序ルー ティングを使用する。MPPシステム20の好ましい実施形態は、自由なホップ がデートラインに向かない限りは、ルートの最初のホップが順序付けの6方向の うちの最初の3方向のいずれか1つにおける自由なホップであることを可能する ことによって、この予め決定された方向の優先順位の例外を可能にする。特定の 最初の自由なホップの後に、パケットは、本発明の適応ルーティング機構によっ て指定されたC1仮想チャンネル上の方向順序付け又はNC1想チャンネルの適 応的順序付けによって指示される上記6方向のうちの残りの方向で通常にルーテ ィングすることを可能にされる。この“最初の”ホップは、与えられたパケット のソースが最初のホップを達成するためにパケットにおける余分なルーティング 情報を全く含む必要がないという意味において自由である。ソースノードのルー タは単に、パケットを最初のホップの方向に送信して、ルーティングはそのホッ プの目的地で開始する。 最初の自由なホップに加えて、上記ルーティング機構の好ましい実施形態は、 もし最後のホップがルーティング情報においてセットされれば、最も低い優先順 序の方向における最後のホップを実施することができる。この最後のホップは部 分的な平面へのより良いアクセスを可能にする。最後のホップは自由ではなく、 なぜなら、ある1つのビット(最後のホップビット)は、最後の方向における1 つのホップが取られるべきかどうかを示すことを必要とされるからである。 図7を参照すると、MPPシステム20は好ましくは、部分的なZ平面のよう な部分的な平面に対して可能であるように形成される。部分的なZ平面はZ次元 に垂直な平面である。(+X,+Y,+Z,−X,−Y,−Z)の方向の優先順 位を与えられると、部分的なZ平面上に生じるパケットのトラヒックは、部分的 なZ平面に隣接した平面への+Zにおける最初のホップを取ることができる。パ ケットのトラヒックは、隣接する平面から生じるパケットのトラヒックの対応す るルーティングタグと同一である複数めルーティングタグを有する隣接する平面 からルーティングされる。部分的なZ平面上の目的ノードにルーティングされる べきパケットのトラヒックは、+Z方向における上記部分的なZ平面に隣接する 平面にルーティングされる。+Zの隣接する平面から、−Z方向における最後の ホップは部分的なZ平面に到達するために取られる。通常のルートが部分的なZ 平面から又は部分的なZ平面に存在しなければ、最初と最後のホップのみが取ら れる。例えば、図7において、部分的なZ平面60からのパケットルーティング は、完全なZ平面への最初のホップを形成することができる。もし目的ノードが 部分的なZ平面60上にあれば、パケットは完全なZ平面62にルーティングす ることができて、次いで、部分的なZ平面60に到達するために−Z方向におい て最後のホップを取る。 MPPシステム20のような非常に大きなシステムにおいて複数の部分的なZ 平面を有するのは2つの主要な理由がある。第1に、MPPシステム20は好ま しくは、複数の余分なノードを含み、その結果、MPPシステム20は故障した ノードを余分なノードと置き換えて再形成されることができる。第2に、部分的 なZ平面によって、MPPシステム20は同時に1つのモジュールを更新される ことができる。例えば、MPPシステム20のある1つの実施形態において、あ る1つのモジュールは液体で冷却されるシステムにおいては8個の処理素子ノー ドを備え、空気で冷却されるシステムにおいては4個の処理素子ノードを備える 。 図8を参照すると、本発明に係るルーティング機構は最初と最後のホップを使 用し、より短い別のルートを提供する。さらに、最初と最後のホップによって、 相互結合網は他の方法では修復できない多くの複合的な故障部の周囲に形成する ことができる。例えば、ある1つのパケットのルーティングビットが−X、+Y 、+Zのパスを示す一方で、上記パケットは+Xの初期方向を与えられる。(+ X,+Y,+Z,−X,−Y,−Z)の方向の優先順序を与えられると、この例 では、パケットは、+Y方向、次いで+Z方向、最後に−X方向におけるルート を次に行う、+X方向における単一の“最初のホップ”を生成する。図8におい て、処 理素子ノード66と処理素子ノード68の間の+Yの物理的通信リンク64は壊 される。図8に図示されるように、パケットは+X方向における処理素子ノード 66から処理素子ノード70への最初の自由なホップを取る。次いで、処理素子 ノード70から、パケットは処理素子ノード72に+Y方向においてルーティン グし、次いで、目的のノード68に−X方向においてルーティングして、それに よって故障部の通信リンク64を回避する。 最初の自由なホップはデートラインには生成されることはできず、それにもか かわらず、vc0らvc0への依存状態はデートラインに沿って拡大される。最 初のホップへのもう1つの制限は、デートラインは与えられた方向に対して調整 されなければならないことであり、それにもかかわらずvc0らvc0の依存状 態はデートラインに沿って拡大される。仮想チャンネルの割り当て 上述したように、要求又は応答の仮想チャンネルネットワークのいずれかにお けるvc0とvc1との間の配置は、正確性と同様に性能にも悪い影響を与える 。ある1つの物理的通信リンクを共有する複数の仮想チャンネルの使用の平衡化 は、ネットワークにおけるコンテンション(競合)を減少し、通信の遅延を低下 させ、ネットワークの帯域幅を増大する。複数の仮想チャンネル配置は、デッド ロックがC1ネットワークにおいて回避されることを保証するために、各リング 内でのサイクルを壊すことを実行されなければならない。 仮想チャンネルvc0及びvc1間の配置の1つの方法は、横断時間の方法で ある。図9を参照すると、横断時間の方法は仮想チャンネルvc0上ですべての パケットを開始する。リング上のある1つのノード(デートラインノード74) は、リング上のデートラインノード74を通過するいずれのパケットでも仮想チ ャンネルvc1上に転送する。パケットは仮想チャンネルvc0上のデートライ ンノード74に入らずに出るので、サイクルはvc0のバッファ間には形成され ない。パケットは決してリングの周囲のすべての道を移動しないので、パケット は決して仮想チャンネルvc1上のデートラインノード74に入らず、従って、 サイクルはvc1のバッファ間には形成されない。さらに、パケットは決して仮 想 チャンネルvc1から仮想チャンネルvc0にはルーティングしないので、サイ クルはvc0及びvc1のバッファの両方を含んで形成されない。パケットは決 して仮想チャンネルvc1からデートラインノード74には入らないので、仮想 チャンネルvc1上のデートラインを横断することを試みるいかなるパケットも ハードウェアによって包括され、エラーのフラグが立てられる。 仮想チャンネルvc0とvc1との間の配置のもう1つの方法は、予想された 横断の方法(predicted-crossing)である。予想された横断の方法は仮想チャン ネル間でパケットを切り換える物理的デートラインノードを使用しない。代わり に、予想された横断の方法は論理デートラインノード又はリンクを使用してデッ ドロックを回避する。予想された横断の方法を使用する相互結合網において、リ ング上のパケットのソースノードと目的ノードが与えられた、論理デートライン ノード又はリンクを横断するいずれかのパケットは、仮想チャンネルvc0を使 用し、他では上記パケットは仮想チャンネルvc1を使用するというように、複 数のパケットは予めスケジュールを立てられる。パケットは与えられたリング上 の仮想チャンネルを切り換えない。論理デートラインに基づく予めスケジュール を立てることは、複数のvc1バッファ間のいかなるサイクルをも壊す。複数の vc0バッファ間にサイクルがないようにするために、パケットは予想された横 断の方法ではリングの周囲の中間点以上をルーティングしてはいけない。 従って、横断時間の方法においては、デートラインノードによって、仮想チャ ンネル上のメッセージはもう1つの仮想チャンネルに動的にスイッチすることが できる。対照的に、予想された横断の方法においては、メッセージは仮想チャン ネル上で予めスケジュールを立てられなければならず、その結果、メッセージは 論理デートラインを横断しない。 横断時間の方法と予想された横断の方法の両方は、仮想チャンネルを注意深く 選択することによって改善されることが可能であり、パケットは上記仮想チャン ネル上における仮想チャンネル使用の平衡化のためにルーティングされる。平衡 化された横断時間の方法として参照されるもう1つの仮想チャンネル配置方法に おいて、与えられたリング上の幾つかのソースノードは、仮想チャンネルvc0 よりむしろ仮想チャンネルvc1上のそれらのパケットを開始し、仮想チャンネ ルの使用を平衡化を行う。もしこれらのパケットがデートラインを横断すれば、 これらのパケットは仮想チャンネルvc1上に残る。従って、平衡化された横断 時間の方法において、仮想チャンネルvc1上のそれらのパケットを開始するソ ースノードを選択することは注意されなければならず、その結果、デッドロック はこの最適化によってリングの複数のvc1仮想チャンネル間には導入されない 。 平衡化された予想された横断の方法は、デートライン又は反対のデートライン のどちらも横断しないパケットによって導入された柔軟性を利用する予想された 横断の方法のスーパーセット(superset)である。この“不定の”状況において 、仮想チャンネルはvc0とvc1とのトラヒック間の平衡を最大にするために 選択される。 平衡化された予想された横断の方法は、平衡化された横断時間の方法より優れ た平衡を達成することができる。しかしながら、平衡化された横断時間の方法は メッセージを予めスケジュールを立てることをしない。結果として、平衡化され た横断時間の方法においては、仮想チャンネル割り当て情報は、パケットとは伝 送されないが、代わりに相互結合網それ自身に記憶される。対照的に、平衡化さ れた予想された横断の方法に要求される予めスケジュールを立てることは典型的 に、パケットと共に伝送される。平衡化された横断時間の方法を用いて、仮想チ ャンネル配置は、壊されたノード情報を再ロードされず、なぜなら、デートライ ンノードは、仮想チャンネルvc0及びvc1間のメッセージを物理的に切り換 えるからである。従って、平衡化された横断時間の方法において、仮想チャンネ ル割り当ては典型的には、最適化された優良なマシンに基礎を置かれる。一方、 論理デートラインノード又はリンクに要求される予めスケジュールを立てること は典型的には、壊されたノード情報を考慮に入れるためにパケットと共に再ロー ドされて伝送される必要がある。 平衡化された横断時間の方法又は平衡化された予想された横断の方法のいずれ かを用いて、すべての拘束されないルートを最適化する種々の方法が存在する。 拘束されないルートは、平衡化された横断時間の方法におけるデートラインを横 断しないパケットのルートと、平衡化された予想された横断の方法におけるデー トライン又は反対のデートラインのいずれも横断しないパケットのルートである 。すべての拘束されないルートを最適化する好ましい方法は、上記で引用された 、係属中であるスティーブン・エル・スコットとグレゴリー・エム・トーソンに よって同日出願された米国特許出願の名称“並列処理システムにおける最適化さ れた仮想チャンネル配置(OPTIMIZED VIRTUAL CHANNEL ALLOCATION IN PARALLEL PROCESSING SYSYTEMS)”に詳細に説明される。結論 本発明に係るルーティング機構は、いかなる次元のトーラス上でも完全に適応 的なデッドロックフリーなルーティングを提供する。本発明のルーティング機構 は5つの仮想チャンネルだけを必要とし:要求のための2つのC1チャンネルと 応答のための2つのC1チャンネルと1つのNC1チャンネルとである。物理又 は仮想デートラインのいずれかは、C1チャンネルにおけるデッドロックを回避 するために使用されることができる。ルーティング機構は、必要なときにパケッ ト毎の基準で順序付けられた伝送を提供するために容易に変更されることができ る。最後に、本発明のルーティング機構は、もし任意長のパケットがサポートさ れなければならないならば、変更された機構を使用することによって上述と同一 機能を提供することが可能である。
【手続補正書】 【提出日】1997年12月2日 【補正内容】 請求の範囲 1.n次元にネットワーク化されたシステムにおける複数のノード間で転送され るべき情報を含む複数のパケットをルーティングするルーティング機構であって 、上記ルーティング機構は、 2つのタイプの仮想チャンネルバッファを有し、複数のノード間の複数の決定 的仮想パスに沿った上記複数のパケットを記憶する2つの非循環的非適応仮想チ ャンネル(50,52,54,56)と、 第3のタイプの仮想チャンネルバッファを有し、複数のノード間の複数の非決 定的仮想パスに沿った上記複数のパケットを記憶する適応仮想チャンネル(58 と、 上記ルーティング情報に基づいて、決定的仮想パスに沿った2つの処理素子ノ ード間の上記決定的仮想パスの一部分、又は非決定的仮想パスに沿った2つの処 理素子ノード間の上記非決定的仮想パスの一部分のうちのいずれかを選択する手 段(36,37)とを備え、ここで、上記非決定的仮想パスの一部分に関連する 第3のタイプの仮想チャンネルバッファが1つの全体のパケットを記憶するため に利用できる十分な空間を有しなければ、上記非決定的仮想パスの一部分は選択 されず、 上記複数の仮想パスの選択された複数の部分に沿った上記処理素子ノード間の 上記複数のパケットをルーティングする手段(36)を備えた ルーティング機構 。 2.n次元にネットワーク化されたシステムにおける複数のノード間で転送され るべき情報を含む複数のパケットをルーティングするルーティング機構であって 、上記ルーティング機構は、 2つのタイプの仮想チャンネルバッファを有し、複数のノード間の複数の決定 的仮想パスに沿った上記複数のパケットを記憶する2つの非循環的非適応仮想チ ャンネル(50,52,54,56)と、 第3のタイプの仮想チャンネルバッファを有し、複数のノード間の複数の非決 定的仮想パスに沿った上記複数のパケットを記憶する適応仮想チャンネル(58 と、 決定的仮想パスに沿った2つのノード間の上記決定的仮想パスの一部分、又は 非決定的仮想パスに沿った2つのノード間の上記非決定的仮想パスの一部分のい ずれかを選択する手段(36,37)とを備え、ここで、上記非決定的仮想パス の一部分に関連する第3のタイプの仮想チャンネルバッファが空でなければ、上 記非決定的仮想パスの一部分は選択されず、 上記複数の仮想パスの選択された一部分に沿った複数のノード間のパケットを ルーティングする手段(36)とを備え、 上記ルーティングする手段は、パケットが非決定的仮想パスの一部分に入ると 上記パケットが存在する方向及び決定的仮想パスとを記録する手段と、上記記録 された方向におけるすべての転送が完了しなければ継続ビットをセットし、かつ 上記記録された方向におけるすべての転送が完了すれば上記継続ビットをクリア する手段と、上記バケットが上記非決定的仮想パスの一部分から上記決定的仮想 パスに再び入るときに、継続ビットがセットされれば、上記パケットを上記記録 された決定的仮想パスにおける上記記録された方向でルーティングする手段 とを 含むルーティング機構。 3.n次元トポロジにおいて、複数のノードと、上記複数のノードを相互結合す る複数の物理的通信リンクとを備えるネットワーク化されたシステムにおけるソ ースノードと目的ノードとの間で1つのパケットをルーティングする方法であっ て、上記方法は、 ルーティング情報を含むヘッダを生成すること(34)と、 1つのパケットを生成するために上記ヘッダを転送されるべき情報に取り付け ること(34)と、 第1のタイプの仮想チャンネルバッファと第2のタイプの仮想チャンネルバッ ファと第3のタイプの仮想チャンネルバッファとを、各物理的通信リンクに割り 当てることと、 上記ルーティング情報に基づいて上記ソースノードから上記目的ノードへの1 つの決定的仮想パスに沿ったパケットを記憶すべき第1及び第2のタイプの仮想 チャンネルバッファを使用することができる2つの非循環非適応仮想チャンネル(50,52,54,56) を画成することと、 上記ルーティング情報に基づいて上記ソースノードから上記目的ノードへの複 数の非決定的仮想パスに沿ったパケットを記憶すべき第3のタイプの仮想チャン ネルバッファを使用することができる1つの適応仮想チャンネル(58)を画成 することと、 上記ルーティング情報に基づいて、上記決定的仮想パスに沿った上記ソースノ ードから隣接するノードへの決定的仮想パスの一部分、又は上記ある1つの非決 定的仮想パスに沿った上記ソースノードからある1つの隣接するノードへの非決 定的仮想パスのうちの1つの一部分のいずれかを選択すること(36,37)と を備え、ここで、上記ある1つの非決定的仮想パスの一部分に関連する第3のタ イプの仮想チャンネルバッファが全体のパケットを記憶するために利用できる十 分な空間を有しなければ、上記ある1つの非決定的仮想パスの一部分は選択され ず、 上記選択された仮想パスの一部分に沿って上記ソースノードから上記隣接する ノードへ上記パケットをルーティングすること(36)と、 上記パケットが上記目的ノードに到達するまで、上記ソースノードから上記目 的ノードへの各ノードで仮想パスを選択し、上記選択された仮想パス上で上記パ ケットをルーティングすることを続けることとを備えた方法。 4.n次元トポロジにおいて、複数のノードと、上記ノードを相互結合する複数 の物理的通信リンクとを備えるネットワーク化されたシステムにおいてソースノ ードと目的ノードとの間の1つのパケットをルーティングする方法であって、上 記方法は、 ルーティング情報を含むヘッダを生成すること(34)と、 1つのパケットを形成するために上記ヘッダを転送されるべき情報に取り付け ること(34)と、 第1のタイプの仮想チャンネルバッファと第2のタイプの仮想チャンネルバッ ファと第3のタイプの仮想チャンネルバッファとを各物理的通信リンクに割り当 てることと、 上記ルーティング情報に基づいて、上記ソースノードから上記目的ノードへの 決定的仮想パスに沿った上記パケットを記憶する上記第1及び上記第2のタイプ の仮想チャンネルバッファを使用することができる2つの非循環的非適応仮想チ ャンネル(50,52,54,56)を画成することと、 上記ルーティング情報に基づいて、上記ソースノードから上記目的ノードへの 複数の非決定的仮想パスに沿った上記パケットを記憶する上記第3のタイプの仮 想チャンネルバッファを使用することができる適応仮想チャンネル(58)を画 成することと、 上記ルーティング情報に基づいて、上記決定的仮想パスに沿った上記ソースノ ードから隣接するノードへの上記決定的仮想パスの一部分、又はある1つの非決 定的仮想パスに沿って上記ソースノードから隣接するノードへの上記非決定的仮 想パスのうちの1つの一部分のいずれかを選択すること(36,37)とを備え 、ここで、上記ある1つの非決定的仮想パスの一部分に関連する上記第3のタイ プの仮想チャンネルバッファが空でなければ、上記ある1つの非決定的仮想パス の一部分は選択されず、 上記選択された仮想パスの一部分に沿って上記ソースノードから上記隣接する ノードヘ上記パケットをルーティングすること(36)と、 もしパケットが上記ある1つの非決定的仮想パスの一部分にルーティングされ れば、上記パケットが上記ある1つの非決定的仮想パスの一部分に入るとき上記 パケットが存在する方向と決定的仮想パスを記録し、上記記録された方向におけ るすべての転送が完了しなければ継続ビットをセットし、上記記録された方向に おけるすべての転送が完了すれば継続ビットをクリアし、上記パケットが上記決 定的仮想パスに再び入るときに、上記継続ビットがセットされれば、上記記録さ れた決定的仮想パスにおける上記記録された方向で上記パケットをルーティング することとを続け、 上記パケットが上記目的ノードに到達するまで、上記ソースノードから上記目 的ノードへの各ノードで仮想パスを選択して上記選択された仮想パス上を上記パ ケットをルーティングすることを続けることとを備えた方法。 5.複数のパケットをルーティングする方向の順序を画成するステップをさらに 備え、ここで、上記方向の順序は上記決定的仮想パスに沿って2n個の方向の各 々で上記複数のパケットをルーティングする優先順位を画成する請求項3又は4 記載の方法。 6.上記ある1つの非決定的仮想パスは、ブロックされた又はディスエーブルさ れた上記2n個の方向の最も低い優先順位の方向でルーティングするように予め 選択された請求項5記載の方法。 7.ルーティングするためのパスを選択するステップは、 上記ある1つの非決定的仮想パスを予め選択するステップと、 上記パケットをルーティングするための上記予め選択された非決定的仮想パス の一部分と上記決定的仮想パスの一部分との両方を要求するステップと、 上記複数の物理的通信リンクに対する土記要求と他の競合丁る要求とに応答し て上記複数の物理的通信リンクへのアクセスを承認又は否認するステップとを備 え、ここで、もし1つの適応仮想チャンネルと1つの非適応仮想チャンネルが両 方とも1つの物理的通信リンクのアクセスを要求すれば、上記非適応仮想チャン ネルは上記物理的通信リンクへのアクセスを承認され、 もし上記要求の少なくとも1つが承認されれば上記承認された仮想パスの一部 分を選択するステップとを備え、ここで、もし上記要求の両方が承認されれば上 記ある1つの非決定的仮想パスの一部分が選択され、 もし上記要求のいずれもが承認されなければ、上記要求するステップを再試行 するステップとを備えた請求項3又は4記載の方法。 8.上記方法は上記複数のノード間の多数のパケットをルーティングし、上記方 法は、 予め選択された順序で目的ノードに到達することを要求される複数のパケット の複数の順序依存グループを決定するステップと、 複数のパケットの1つの順序依存グループにある複数のパケットをルーティン グする複数の決定的仮想パスだけを選択するステップとを備えた請求項3又は4 記載の方法。 9.上記転送されるべき情報は要求情報及び応答情報を含み、上記非循環非適応 仮想チャンネルを画成するステップは、要求情報を処理する2つの非循環非適応 仮想チャンネルと応答情報を処理する非循環非適応仮想チャンネルとを画成する ことを含む請求項3又は4記載の方法。 10.上記選択するステップより前に、上記ソースノードから上記隣接するノー ドへの自由なホップでパケットを送信するステップをさらに含む請求項3又は4 記載の方法。 11.上記パケットを転送するステップは、目的ノードに隣接するある1つのノ ードからの最後のホップでパケットを送信して目的ノードへのルートを完成する ステップをさらに備えた請求項3又は4記載の方法。

Claims (1)

  1. 【特許請求の範囲】 1.n次元にネットワーク化されたシステムにおける複数のノード間で転送され るべき情報を含む複数のパケットをルーティングするルーティング機構であって 、上記ルーティング機構は、 2つのタイプの仮想チャンネルバッファを有し、複数のノード間の複数の決定 的仮想パスに沿った上記複数のパケットを記憶する2つの非循環的非適応仮想チ ャンネルと、 第3のタイプの仮想チャンネルバッファを有し、複数のノード間の複数の非決 定的仮想パスに沿った上記複数のパケットを記憶する適応仮想チャンネルと、 複数の決定的仮想パスの選択された一部分又は複数の非決定的仮想パスの選択 された一部分のいずれかに沿った複数のノード間の上記複数のパケットをルーテ ィングする手段とを備え、ここで、ある1つの非決定的仮想パスの選択された一 部分に関連する第3のタイプの仮想チャンネルバッファが1つの全体のパケット を記憶するために利用できる十分な空間を有しなければ、1つのパケットは上記 非決定的仮想パスのうちの1つの選択された一部分上にルーティングされないル ーティング機構。 2.n次元にネットワーク化されたシステムにおける複数のノード間で転送され るべき情報を含む複数のパケットをルーティングするルーティング機構であって 、上記ルーティング機構は、 2つのタイプの仮想チャンネルバッファを有し、複数のノード間の複数の決定 的仮想パスに沿った上記複数のパケットを記憶する2つの非循環的非適応仮想チ ャンネルと、 第3のタイプの仮想チャンネルバッファを有し、複数のノード間の複数の非決 定的仮想パスに沿った上記複数のパケットを記憶する適応仮想チャンネルと、 決定的仮想パスに沿った2つのノード間の上記決定的仮想パスの一部分、又は 非決定的仮想パスに沿った2つのノード間の上記非決定的仮想パスの一部分のい ずれかを選択する手段とを備え、ここで、上記非決定的仮想パスの一部分に関連 する第3のタイプの仮想チャンネルバッファが空でなければ、上記非決定的仮想 パスの一部分は選択されず、 上記複数の仮想パスの選択された一部分に沿った複数のノード間のパケットを ルーティングする手段とを備え、上記ルーティングする手段は、パケットが非決 定的仮想パスの一部分に入ると上記パケットが存在する方向及び決定的仮想パス とを記録する手段と、上記パケットが上記非決定的仮想パスの一部分から上記決 定的仮想パスに再び入るときに、もし記録された方向におけるすべての転送が終 了しなければ、上記パケットを上記記録された決定的仮想パスにおける上記記録 された方向でルーティングする手段とを含むルーティング機構。 3.n次元トポロジにおいて、複数のノードと、上記複数のノードを相互結合す る複数の物理的通信リンクとを備えるネットワーク化されたシステムにおけるソ ースノードと目的ノードとの間で1つのパケットをルーティングする方法であっ て、上記方法は、 ルーティング情報を含むヘッダを生成することと、 1つのパケットを生成するために上記ヘッダを転送されるべき情報に取り付け ることと、 第1のタイプの仮想チャンネルバッファと第2のタイプの仮想チャンネルバッ ファと第3のタイプの仮想チャンネルバッファとを、各物理的通信リンクに割り 当てることと、 上記ルーティング情報に基づいて上記ソースノードから上記目的ノードへの1 つの決定的仮想パスに沿ったパケットを記憶すべき第1及び第2のタイプの仮想 チャンネルバッファを使用することができる2つの非循環非適応仮想チャンネル を画成することと、 上記ルーティング情報に基づいて上記ソースノードから上記目的ノードへの複 数の非決定的仮想パスに沿ったパケットを記憶すべき第3のタイプの仮想チャン ネルバッファを使用することができる1つの適応仮想チャンネルを画成すること と、 上記ルーティング情報に基づいて、上記決定的仮想パスに沿った上記ソースノ ードから隣接するノードへの決定的仮想パスの一部分、又は上記ある1つの非決 定的仮想パスに沿った上記ソースノードからある1つの隣接するノードへの非決 定的仮想パスのうちの1つの一部分のいずれかを選択することとを備え、ここで 、上記ある1つの非決定的仮想パスの一部分に関連する第3のタイプの仮想チャ ンネルバッファが全体のパケットを記憶するために利用できる十分な空間を有し なければ、上記ある1つの非決定的仮想パスの一部分は選択されず、 上記選択された仮想パスの一部分に沿って上記ソースノードから上記隣接する ノードヘ上記パケットをルーティングすることと、 上記パケットが上記目的ノードに到達するまで、上記ソースノードから上記目 的ノードへの各ノードで仮想パスを選択し、上記選択された仮想パス上で上記パ ケットをルーティングすることを続けることとを備えた方法。 4.n次元トポロジにおいて、複数のノードと、上記ノードを相互結合する複数 の物理的通信リンクとを備えるネットワーク化されたシステムにおいてソースノ ードと目的ノードとの間の1つのパケットをルーティングする方法であって、上 記方法は、 ルーティング情報を含むヘッダを生成することと、 1つのパケットを形成するために上記ヘッダを転送されるべき情報に取り付け ることと、 第1のタイプの仮想チャンネルバッファと第2のタイプの仮想チャンネルバッ ファと第3のタイプの仮想チャンネルバッファとを各物理的通信リンクに割り当 てることと、 上記ルーティング情報に基づいて、上記ソースノードから上記目的ノードへの 決定的仮想パスに沿った上記パケットを記憶する上記第1及び上記第2のタイプ の仮想チャンネルバッファを使用することができる2つの非循環的非適応仮想チ ャンネルを画成することと、 上記ルーティング情報に基づいて、上記ソースノードから上記目的ノードへの 複数の非決定的仮想パスに沿った上記パケットを記憶する上記第3のタイプの仮 想チャンネルバッファを使用することができる適応仮想チャンネルを画成するこ とと、 上記ルーティング情報に基づいて、上記決定的仮想パスに沿った上記ソースノ ードから隣接するノードへの上記決定的仮想パスの一部分、又はある1つの非決 定的仮想パスに沿って上記ソースノードから隣接するノードへの上記非決定的仮 想パスのうちの1つの一部分のいずれかを選択することとを備え、ここで、上記 ある1つの非決定的仮想パスの一部分に関連する上記第3のタイプの仮想チャン ネルバッファが空でなければ、上記ある1つの非決定的仮想パスの一部分は選択 されず、 上記選択された仮想パスの一部分に沿って上記ソースノードから上記隣接する ノードヘ上記パケットをルーティングすることと、 もしパケットが上記ある1つの非決定的仮想パスの一部分にルーティングされ れば、上記パケットが上記ある1つの非決定的仮想パスの一部分に入るとき上記 パケットが存在する方向と決定的仮想パスを記録し、上記パケットが上記決定的 仮想パスに再び入るときに、もし上記記録された方向におけるすべての転送が完 了しなければ、上記記録された決定的仮想パスにおける上記記録された方向で上 記パケットをルーティングすることとを続け、 上記パケットが上記目的ノードに到達するまで、上記ソースノードから上記目 的ノードへの各ノードで仮想パスを選択して上記選択された仮想パス上を上記パ ケットをルーティングすることを続けることとを備えた方法。 5.複数のパケットをルーティングする方向の順序を画成するステップをさらに 備え、ここで、上記方向の順序は上記決定的仮想パスに沿って2n個の方向の各 々で上記複数のパケットをルーティングする優先順位を画成する請求項3又は4 記載の方法。 6.上記ある1つの非決定的仮想パスは、ブロックされた又はディスエーブルさ れた上記2n個の方向の最も低い優先順位の方向でルーティングするように予め 選択された請求項5記載の方法。 7.ルーティングするためのパスを選択するステップは、 上記ある1つの非決定的仮想パスを予め選択するステップと、 上記パケットをルーティングするための上記予め選択された非決定的仮想パス の一部分と上記決定的仮想パスの一部分との両方を要求するステップと、 上記複数の物理的通信リンクに対する上記要求と他の競合する要求とに応答し て上記複数の物理的通信リンクへのアクセスを承認又は否認するステップとを備 え、ここで、もし1つの適応仮想チャンネルと1つの非適応仮想チャンネルが両 方とも1つの物理的通信リンクのアクセスを要求すれば、上記非適応仮想チャン ネルは上記物理的通信リンクへのアクセスを承認され、 もし上記要求の少なくとも1つが承認されれば上記承認された仮想パスの一部 分を選択するステップとを備え、ここで、もし上記要求の両方が承認されれば上 記ある1つの非決定的仮想パスの一部分が選択され、 もし上記要求のいずれもが承認されなければ、上記要求するステップを再試行 するステップとを備えた請求項3又は4記載の方法。 8.上記方法は上記複数のノード間の多数のパケットをルーティングし、上記方 法は、 予め選択された順序で目的ノードに到達することを要求される複数のパケット の複数の順序依存グループを決定するステップと、 複数のパケットの1つの順序依存グループにある複数のパケットをルーティン グする複数の決定的仮想パスだけを選択するステップとを備えた請求項3又は4 記載の方法。 9.上記転送されるべき情報は要求情報及び応答情報を含み、上記非循環非適応 仮想チャンネルを画成するステップは、要求情報を処理する2つの非循環非適応 仮想チャンネルと応答情報を処理する非循環非適応仮想チャンネルとを画成する ことを含む請求項3又は4記載の方法。 10.上記選択するステップより前に、上記ソースノードから上記隣接するノー ドへの自由なホップでパケットを送信するステップをさらに含む請求項3又は4 記載の方法。 11.上記パケットを転送するステップは、目的ノードに隣接するある1つのノ ードからの最後のホップでパケットを送信して目的ノードへのルートを完成する ステップをさらに備えた請求項3又は4記載の方法。
JP53098696A 1995-04-13 1995-11-29 トーラス相互結合網のための適応ルーティング機構 Expired - Lifetime JP3532574B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/421,566 1995-04-13
US08/421,566 US5701416A (en) 1995-04-13 1995-04-13 Adaptive routing mechanism for torus interconnection network
PCT/US1995/015483 WO1996032681A1 (en) 1995-04-13 1995-11-29 Adaptive routing mechanism for torus interconnection network

Publications (2)

Publication Number Publication Date
JPH10506736A true JPH10506736A (ja) 1998-06-30
JP3532574B2 JP3532574B2 (ja) 2004-05-31

Family

ID=23671085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53098696A Expired - Lifetime JP3532574B2 (ja) 1995-04-13 1995-11-29 トーラス相互結合網のための適応ルーティング機構

Country Status (5)

Country Link
US (1) US5701416A (ja)
EP (1) EP0821816B1 (ja)
JP (1) JP3532574B2 (ja)
DE (1) DE69514550T2 (ja)
WO (1) WO1996032681A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010087002A1 (ja) * 2009-01-30 2010-08-05 富士通株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055618A (en) * 1995-10-31 2000-04-25 Cray Research, Inc. Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel
GB9601692D0 (en) * 1996-01-27 1996-03-27 Newbridge Networks Corp Network with ring architecture
SE507118C2 (sv) * 1996-08-26 1998-03-30 Ericsson Telefon Ab L M Förfarande för att optimera ett huvudsakligen optiskt ATM- nätvärk
US5828858A (en) * 1996-09-16 1998-10-27 Virginia Tech Intellectual Properties, Inc. Worm-hole run-time reconfigurable processor field programmable gate array (FPGA)
US6289021B1 (en) 1997-01-24 2001-09-11 Interactic Holdings, Llc Scaleable low-latency switch for usage in an interconnect structure
KR100259276B1 (ko) 1997-01-27 2000-06-15 윤종용 대역폭확장이 가능한 상호연결망
US5881304A (en) * 1997-03-21 1999-03-09 International Business Machines Corporation Incidence graph based communications and operations method and apparatus for parallel processing architecture
US5903770A (en) * 1997-03-21 1999-05-11 International Business Machines Corporation Incidence graph based communications and operations method and apparatus for parallel processing architecture
US6456588B1 (en) * 1997-04-21 2002-09-24 At&T Corp. Hypercube routing and restoration in telecommunications networks
US5970064A (en) * 1997-06-12 1999-10-19 Northern Telecom Limited Real time control architecture for admission control in communications network
US6285679B1 (en) * 1997-08-22 2001-09-04 Avici Systems, Inc. Methods and apparatus for event-driven routing
US6370145B1 (en) * 1997-08-22 2002-04-09 Avici Systems Internet switch router
US6230252B1 (en) * 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
US6101181A (en) * 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
US7185113B1 (en) * 1997-12-31 2007-02-27 Mci Communications Corporation System and method for establishing a virtual circuit in an ATM network
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
ATE320129T1 (de) * 1999-05-21 2006-03-15 Avici Systems Flit-cache in einem paketvermittelndem router
US7002958B1 (en) * 1999-09-10 2006-02-21 Pluris, Inc. Method for load-balancing with FIFO guarantees in multipath networks
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6751698B1 (en) 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
US6628615B1 (en) * 2000-01-18 2003-09-30 International Business Machines Corporation Two level virtual channels
US6826148B1 (en) 2000-07-25 2004-11-30 Sun Microsystems, Inc. System and method for implementing a routing scheme in a computer network using intention packets when fault conditions are detected
US6925056B1 (en) 2000-07-25 2005-08-02 Sun Microsystems, Inc. System and method for implementing a routing scheme using intention packets in a computer network
US6741561B1 (en) 2000-07-25 2004-05-25 Sun Microsystems, Inc. Routing mechanism using intention packets in a hierarchy or networks
US7401161B2 (en) 2000-12-18 2008-07-15 Sun Microsystems, Inc. High performance storage array interconnection fabric using multiple independent paths
US6718428B2 (en) 2000-12-18 2004-04-06 Sun Microsystems, Inc. Storage array interconnection fabric using a torus topology
KR100674329B1 (ko) * 2000-12-30 2007-01-24 주식회사 케이티 전송 제어 프로토콜/인터넷 프로토콜 네트웍에서 라우터의폭주 제어방법
US7072976B2 (en) * 2001-01-04 2006-07-04 Sun Microsystems, Inc. Scalable routing scheme for a multi-path interconnection fabric
US7225279B2 (en) * 2002-06-25 2007-05-29 Nvidia Corporation Data distributor in a computation unit forwarding network data to select components in respective communication method type
US6909695B2 (en) * 2001-05-07 2005-06-21 Sun Microsystems, Inc. Fault-tolerant, self-healing routing scheme for a multi-path interconnection fabric in a storage network
US7007189B2 (en) * 2001-05-07 2006-02-28 Sun Microsystems, Inc. Routing scheme using preferred paths in a multi-path interconnection fabric in a storage network
US6883108B2 (en) * 2001-05-07 2005-04-19 Sun Microsystems, Inc. Fault-tolerant routing scheme for a multi-path interconnection fabric in a storage network
US7000033B2 (en) * 2001-09-28 2006-02-14 Sun Microsystems, Inc. Mapping of nodes in an interconnection fabric
US7027413B2 (en) * 2001-09-28 2006-04-11 Sun Microsystems, Inc. Discovery of nodes in an interconnection fabric
US7080156B2 (en) * 2002-03-21 2006-07-18 Sun Microsystems, Inc. Message routing in a torus interconnect
US7154886B2 (en) 2002-07-22 2006-12-26 Qlogic Corporation Method and system for primary blade selection in a multi-module fiber channel switch
US7334046B1 (en) 2002-08-05 2008-02-19 Qlogic, Corporation System and method for optimizing frame routing in a network
US7577816B2 (en) 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US7362717B1 (en) 2002-10-03 2008-04-22 Qlogic, Corporation Method and system for using distributed name servers in multi-module fibre channel switches
US7319669B1 (en) * 2002-11-22 2008-01-15 Qlogic, Corporation Method and system for controlling packet flow in networks
US7324564B2 (en) * 2003-02-20 2008-01-29 Sun Microsystems, Inc. Transmitting odd-sized packets over a double data rate link
US6950905B2 (en) * 2003-02-20 2005-09-27 Sun Microsystems, Inc. Write posting memory interface with block-based read-ahead mechanism
GB0306855D0 (en) * 2003-03-25 2003-04-30 Ideas Network Ltd Data communication network
US20040257993A1 (en) * 2003-03-26 2004-12-23 Olav Lysne Method and device for network reconfiguration
US7003594B2 (en) * 2003-05-12 2006-02-21 Sun Microsystems, Inc. Streaming protocol for storage devices
US7620059B2 (en) 2003-07-16 2009-11-17 Qlogic, Corporation Method and apparatus for accelerating receive-modify-send frames in a fibre channel network
US7388843B2 (en) 2003-07-16 2008-06-17 Qlogic, Corporation Method and apparatus for testing loop pathway integrity in a fibre channel arbitrated loop
US7463646B2 (en) 2003-07-16 2008-12-09 Qlogic Corporation Method and system for fibre channel arbitrated loop acceleration
US7355966B2 (en) 2003-07-16 2008-04-08 Qlogic, Corporation Method and system for minimizing disruption in common-access networks
US7453802B2 (en) 2003-07-16 2008-11-18 Qlogic, Corporation Method and apparatus for detecting and removing orphaned primitives in a fibre channel network
US7792115B2 (en) 2003-07-21 2010-09-07 Qlogic, Corporation Method and system for routing and filtering network data packets in fibre channel systems
US7583597B2 (en) 2003-07-21 2009-09-01 Qlogic Corporation Method and system for improving bandwidth and reducing idles in fibre channel switches
US7522522B2 (en) 2003-07-21 2009-04-21 Qlogic, Corporation Method and system for reducing latency and congestion in fibre channel switches
US7646767B2 (en) 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
US7525983B2 (en) 2003-07-21 2009-04-28 Qlogic, Corporation Method and system for selecting virtual lanes in fibre channel switches
US7630384B2 (en) 2003-07-21 2009-12-08 Qlogic, Corporation Method and system for distributing credit in fibre channel systems
US7477655B2 (en) 2003-07-21 2009-01-13 Qlogic, Corporation Method and system for power control of fibre channel switches
US7580354B2 (en) 2003-07-21 2009-08-25 Qlogic, Corporation Multi-speed cut through operation in fibre channel switches
US7684401B2 (en) 2003-07-21 2010-03-23 Qlogic, Corporation Method and system for using extended fabric features with fibre channel switch elements
US7512067B2 (en) 2003-07-21 2009-03-31 Qlogic, Corporation Method and system for congestion control based on optimum bandwidth allocation in a fibre channel switch
US7522529B2 (en) 2003-07-21 2009-04-21 Qlogic, Corporation Method and system for detecting congestion and over subscription in a fibre channel network
US7894348B2 (en) 2003-07-21 2011-02-22 Qlogic, Corporation Method and system for congestion control in a fibre channel switch
US7430175B2 (en) 2003-07-21 2008-09-30 Qlogic, Corporation Method and system for managing traffic in fibre channel systems
US7447224B2 (en) 2003-07-21 2008-11-04 Qlogic, Corporation Method and system for routing fibre channel frames
US7420982B2 (en) 2003-07-21 2008-09-02 Qlogic, Corporation Method and system for keeping a fibre channel arbitrated loop open during frame gaps
US20050027880A1 (en) * 2003-08-01 2005-02-03 Darel Emmot System and method for routing information in a nodal computer network
US7379424B1 (en) 2003-08-18 2008-05-27 Cray Inc. Systems and methods for routing packets in multiprocessor computer systems
US7334110B1 (en) 2003-08-18 2008-02-19 Cray Inc. Decoupled scalar/vector computer architecture system and method
US7366873B1 (en) 2003-08-18 2008-04-29 Cray, Inc. Indirectly addressed vector load-operate-store method and apparatus
US7437521B1 (en) 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
US20050201356A1 (en) * 2004-03-11 2005-09-15 Yasuyuki Miura Adaptive routing for hierarchical interconnection network
US7340167B2 (en) 2004-04-23 2008-03-04 Qlogic, Corporation Fibre channel transparent switch for mixed switch fabrics
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7382721B2 (en) * 2004-04-27 2008-06-03 Hewlett-Packard Development Company, L.P. Nodal computer network
US7711878B2 (en) * 2004-05-21 2010-05-04 Intel Corporation Method and apparatus for acknowledgement-based handshake mechanism for interactively training links
US20050262184A1 (en) * 2004-05-21 2005-11-24 Naveen Cherukuri Method and apparatus for interactively training links in a lockstep fashion
US7209907B2 (en) * 2004-06-25 2007-04-24 Intel Corporation Method and apparatus for periodically retraining a serial links interface
US7404020B2 (en) 2004-07-20 2008-07-22 Qlogic, Corporation Integrated fibre channel fabric controller
US7411958B2 (en) 2004-10-01 2008-08-12 Qlogic, Corporation Method and system for transferring data directly between storage devices in a storage area network
US8295299B2 (en) 2004-10-01 2012-10-23 Qlogic, Corporation High speed fibre channel switch element
US7380030B2 (en) 2004-10-01 2008-05-27 Qlogic, Corp. Method and system for using an in-line credit extender with a host bus adapter
US7519058B2 (en) 2005-01-18 2009-04-14 Qlogic, Corporation Address translation in fibre channel switches
US7643477B2 (en) * 2005-08-24 2010-01-05 Intel Corporation Buffering data packets according to multiple flow control schemes
JP2007115223A (ja) * 2005-09-20 2007-05-10 Sharp Corp プロセッサおよびマルチプロセッサ構成方法
US7773617B2 (en) * 2006-11-08 2010-08-10 Sicortex, Inc. System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system
US7765385B2 (en) * 2007-04-18 2010-07-27 International Business Machines Corporation Fault recovery on a parallel computer system with a torus network
US7830905B2 (en) * 2007-04-20 2010-11-09 Cray Inc. Speculative forwarding in a high-radix router
US7809006B2 (en) * 2007-08-16 2010-10-05 D. E. Shaw Research, Llc Routing with virtual channels
US8014387B2 (en) 2007-08-27 2011-09-06 International Business Machines Corporation Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture
US7769892B2 (en) 2007-08-27 2010-08-03 International Business Machines Corporation System and method for handling indirect routing of information between supernodes of a multi-tiered full-graph interconnect architecture
US7958183B2 (en) * 2007-08-27 2011-06-07 International Business Machines Corporation Performing collective operations using software setup and partial software execution at leaf nodes in a multi-tiered full-graph interconnect architecture
US8185896B2 (en) * 2007-08-27 2012-05-22 International Business Machines Corporation Method for data processing using a multi-tiered full-graph interconnect architecture
US7809970B2 (en) 2007-08-27 2010-10-05 International Business Machines Corporation System and method for providing a high-speed message passing interface for barrier operations in a multi-tiered full-graph interconnect architecture
US7822889B2 (en) 2007-08-27 2010-10-26 International Business Machines Corporation Direct/indirect transmission of information using a multi-tiered full-graph interconnect architecture
US8140731B2 (en) * 2007-08-27 2012-03-20 International Business Machines Corporation System for data processing using a multi-tiered full-graph interconnect architecture
US7769891B2 (en) 2007-08-27 2010-08-03 International Business Machines Corporation System and method for providing multiple redundant direct routes between supernodes of a multi-tiered full-graph interconnect architecture
US7904590B2 (en) * 2007-08-27 2011-03-08 International Business Machines Corporation Routing information through a data processing system implementing a multi-tiered full-graph interconnect architecture
US8108545B2 (en) * 2007-08-27 2012-01-31 International Business Machines Corporation Packet coalescing in virtual channels of a data processing system in a multi-tiered full-graph interconnect architecture
US7793158B2 (en) 2007-08-27 2010-09-07 International Business Machines Corporation Providing reliability of communication between supernodes of a multi-tiered full-graph interconnect architecture
US7958182B2 (en) * 2007-08-27 2011-06-07 International Business Machines Corporation Providing full hardware support of collective operations in a multi-tiered full-graph interconnect architecture
US8085659B2 (en) * 2007-08-28 2011-12-27 Universidad Politecnica De Valencia Method and switch for routing data packets in interconnection networks
US7827428B2 (en) * 2007-08-31 2010-11-02 International Business Machines Corporation System for providing a cluster-wide system clock in a multi-tiered full-graph interconnect architecture
US7921316B2 (en) * 2007-09-11 2011-04-05 International Business Machines Corporation Cluster-wide system clock in a multi-tiered full-graph interconnect architecture
JP5076768B2 (ja) * 2007-09-21 2012-11-21 日本電気株式会社 ネットワークシステム、ネットワーク管理装置、通信装置、パス設定方法及びプログラム
US8077602B2 (en) 2008-02-01 2011-12-13 International Business Machines Corporation Performing dynamic request routing based on broadcast queue depths
US7779148B2 (en) * 2008-02-01 2010-08-17 International Business Machines Corporation Dynamic routing based on information of not responded active source requests quantity received in broadcast heartbeat signal and stored in local data structure for other processor chips
JP5212469B2 (ja) 2008-05-15 2013-06-19 富士通株式会社 コンピュータシステム及びコンピュータシステムの制御方法
JP2010218364A (ja) * 2009-03-18 2010-09-30 Fujitsu Ltd 情報処理システム、通信制御装置および方法
US8139490B2 (en) * 2009-12-21 2012-03-20 Google Inc. Deadlock prevention in direct networks of arbitrary topology
US9244880B2 (en) * 2012-08-30 2016-01-26 Netspeed Systems Automatic construction of deadlock free interconnects
CN102904806B (zh) * 2012-09-28 2015-04-15 清华大学 一种计算机系统的无死锁容错自适应路由方法
US9007962B2 (en) 2013-01-24 2015-04-14 International Business Machines Corporation Deadlock-free routing using edge-disjoint sub-networks
US9237093B2 (en) 2013-03-14 2016-01-12 Silicon Graphics International Corp. Bandwidth on-demand adaptive routing
US9294403B2 (en) * 2013-06-28 2016-03-22 Intel Corporation Mechanism to control resource utilization with adaptive routing
US9928204B2 (en) * 2015-02-12 2018-03-27 Netspeed Systems, Inc. Transaction expansion for NoC simulation and NoC design
US10237198B2 (en) 2016-12-06 2019-03-19 Hewlett Packard Enterprise Development Lp Shared-credit arbitration circuit
US10721185B2 (en) 2016-12-06 2020-07-21 Hewlett Packard Enterprise Development Lp Age-based arbitration circuit
US10452573B2 (en) 2016-12-06 2019-10-22 Hewlett Packard Enterprise Development Lp Scripted arbitration circuit
US10944694B2 (en) 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
US10474601B2 (en) 2017-02-06 2019-11-12 Oracle International Corporation Distributed fairness protocol for interconnect networks
US10498631B2 (en) 2017-08-15 2019-12-03 Hewlett Packard Enterprise Development Lp Routing packets using distance classes
US10374943B2 (en) 2017-08-16 2019-08-06 Hewlett Packard Enterprise Development Lp Routing packets in dimensional order in multidimensional networks
US10693811B2 (en) 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE28577E (en) * 1969-03-21 1975-10-21 Channel reallocation system and method
US4814973A (en) * 1983-05-31 1989-03-21 Hillis W Daniel Parallel processor
JP2644718B2 (ja) * 1983-12-28 1997-08-25 株式会社日立製作所 コンピュータシステム
US4771391A (en) * 1986-07-21 1988-09-13 International Business Machines Corporation Adaptive packet length traffic control in a local area network
US4933933A (en) * 1986-12-19 1990-06-12 The California Institute Of Technology Torus routing chip
US4984235A (en) * 1987-04-27 1991-01-08 Thinking Machines Corporation Method and apparatus for routing message packets and recording the roofing sequence
US5170482A (en) * 1987-08-14 1992-12-08 Regents Of The University Of Minnesota Improved hypercube topology for multiprocessor computer systems
US5008882A (en) * 1987-08-17 1991-04-16 California Institute Of Technology Method and apparatus for eliminating unsuccessful tries in a search tree
US4868818A (en) * 1987-10-29 1989-09-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Fault tolerant hypercube computer system architecture
US5105424A (en) * 1988-06-02 1992-04-14 California Institute Of Technology Inter-computer message routing system with each computer having separate routinng automata for each dimension of the network
US5347450A (en) * 1989-01-18 1994-09-13 Intel Corporation Message routing in a multiprocessor computer system
JP2749098B2 (ja) * 1989-02-03 1998-05-13 株式会社日立製作所 通信回線切替・併用方式
JP3072646B2 (ja) * 1989-03-20 2000-07-31 富士通株式会社 並列計算機間通信制御方式
CA2032620C (en) * 1989-12-22 1995-08-15 Takafumi Chujo Method for searching for alternate path in communication network
US5280474A (en) * 1990-01-05 1994-01-18 Maspar Computer Corporation Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays
US5218676A (en) * 1990-01-08 1993-06-08 The University Of Rochester Dynamic routing system for a multinode communications network
US5229990A (en) * 1990-10-03 1993-07-20 At&T Bell Laboratories N+K sparing in a telecommunications switching environment
US5239545A (en) * 1990-11-05 1993-08-24 Motorola, Inc. Channel access control in a communication system
US5313645A (en) * 1991-05-13 1994-05-17 International Business Machines Corporation Method for interconnecting and system of interconnected processing elements by controlling network density
US5175733A (en) * 1990-12-27 1992-12-29 Intel Corporation Adaptive message routing for multi-dimensional networks
DE69232828T2 (de) * 1991-06-19 2003-06-18 Fujitsu Ltd System zur übermittlung von unterscheidungsinformation von paketleitwegen
DE69132536T2 (de) * 1991-08-21 2001-10-04 Ibm Verbindungslose ATM-Datendienste
JP2861518B2 (ja) * 1991-09-03 1999-02-24 日本電気株式会社 適応多重化方式
JP3071007B2 (ja) * 1991-10-22 2000-07-31 富士通株式会社 通信ネットワーク制御方式
US5313628A (en) * 1991-12-30 1994-05-17 International Business Machines Corporation Component replacement control for fault-tolerant data processing system
EP0570729A3 (en) * 1992-05-22 1994-07-20 Ibm Apap i/o programmable router
US5333279A (en) * 1992-06-01 1994-07-26 Intel Corporation Self-timed mesh routing chip with data broadcasting
JPH06318951A (ja) * 1993-01-07 1994-11-15 Toshiba Corp セル転送方法およびセル転送システム
US5353283A (en) * 1993-05-28 1994-10-04 Bell Communications Research, Inc. General internet method for routing packets in a communications network
US5546549A (en) * 1994-06-01 1996-08-13 International Business Machines Corporation Multi-path channel (MPC) interface with user transparent, unbalanced, dynamically alterable computer input/output channels

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010087002A1 (ja) * 2009-01-30 2010-08-05 富士通株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体
US8090895B2 (en) 2009-01-30 2012-01-03 Fujitsu Limited Information processing system, information processing device, control method for information processing device, and computer-readable recording medium
JP5195933B2 (ja) * 2009-01-30 2013-05-15 富士通株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体

Also Published As

Publication number Publication date
JP3532574B2 (ja) 2004-05-31
DE69514550T2 (de) 2000-09-21
WO1996032681A1 (en) 1996-10-17
EP0821816B1 (en) 2000-01-12
DE69514550D1 (de) 2000-02-17
US5701416A (en) 1997-12-23
EP0821816A1 (en) 1998-02-04

Similar Documents

Publication Publication Date Title
JPH10506736A (ja) トーラス相互結合網のための適応ルーティング機構
US5797035A (en) Networked multiprocessor system with global distributed memory and block transfer engine
US5533198A (en) Direction order priority routing of packets between nodes in a networked system
US5659796A (en) System for randomly modifying virtual channel allocation and accepting the random modification based on the cost function
Chien et al. Planar-adaptive routing: low-cost adaptive networks for multiprocessors
EP0858633B1 (en) Virtual maintenance network in multiprocessing system
Mukherjee et al. The Alpha 21364 network architecture
EP1031096B1 (en) Virtual channel assignment in large torus systems
Chen et al. Fault-tolerant routing algorithm for meshes without using virtual channels
US7773618B2 (en) System and method for preventing deadlock in richly-connected multi-processor computer system using dynamic assignment of virtual channels
US20080107105A1 (en) System and method for communicating on a richly connected multi-processor computer system using a pool of buffers for dynamic association with a virtual channel
JP2010218364A (ja) 情報処理システム、通信制御装置および方法
US20080109586A1 (en) System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system
Seydim Wormhole routing in parallel computers
De Carlini et al. The routing problem in transputer-based parallel systems
Kim Planar-adaptive routing(PAR): low-cost adaptive networks for multiprocessors
Ok et al. An alternate dimension-order collective communication scheme on packet-switched 2D-mesh network
Ashraf et al. Introduction to routing in multicomputer networks
Adda A scalable multibus configuration for connecting transputer links
Demaine et al. A novel routing algorithm for k-ary n-cube interconnection networks
Loh et al. Adaptive, fault-tolerant, deadlock-free and livelock-free interval routing in mesh networks
Agrawal et al. Adaptive routing techniques for high reliability in multiprocessor interconnection networks
Lu et al. A fault-tolerant multistage combining network
Al-Awwami New mechanisms for improved adaptive routing in wormhole networks
Roy A DAG based wormhole routing strategy

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20031210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040304

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090312

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090312

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100312

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100312

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110312

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120312

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120312

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140312

Year of fee payment: 10

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term