JP5623550B2 - 任意のトポロジーの直接ネットワークにおけるデッドロック防止 - Google Patents

任意のトポロジーの直接ネットワークにおけるデッドロック防止 Download PDF

Info

Publication number
JP5623550B2
JP5623550B2 JP2012546134A JP2012546134A JP5623550B2 JP 5623550 B2 JP5623550 B2 JP 5623550B2 JP 2012546134 A JP2012546134 A JP 2012546134A JP 2012546134 A JP2012546134 A JP 2012546134A JP 5623550 B2 JP5623550 B2 JP 5623550B2
Authority
JP
Japan
Prior art keywords
switch
switching element
routing
rule
channel number
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.)
Active
Application number
JP2012546134A
Other languages
English (en)
Other versions
JP2013515449A (ja
Inventor
クラウスラー,ピーター・マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2013515449A publication Critical patent/JP2013515449A/ja
Application granted granted Critical
Publication of JP5623550B2 publication Critical patent/JP5623550B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/06Deflection routing, e.g. hot-potato routing
    • 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/17312Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/18Loop-free operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Description

本発明の態様は、包括的には、コンピュータネットワークにおいてデータをルーティングすることに関する。より詳細には、態様は、コンピュータネットワークにおいてシステム構成にかかわらずデッドロックを防止することを対象とする。
[関連出願の相互参照]
本出願は、2009年12月21日に出願された、「Deadlock Prevention In Direct Networks Of Arbitrary Topology」と題する米国特許出願第12/643,280号、代理人整理番号GOOGLE3.0−056の利益を主張する。該特許出願の開示内容の全体を引用することにより、本明細書の一部をなすものとする。
多くの通信ネットワークにおいて、多くの場合に複数のプロセッサが用いられる。プロセッサは、様々な構成で配置することができる。例えば、プロセッサのアレイはメッシュアーキテクチャ又はトーラスアーキテクチャで構成することができる。アレイは、異なるネットワーク内の他のアレイに相互接続することもできる。
そのような通信ネットワーク内の構成要素間でデータを渡すために、フロー制御を含む様々なルーティング方式が用いられてきた。一方、幾つかの通信ネットワークは、バッファ空間又は他のリソースが利用可能となるまでノードのスイッチへのリンク上のトラフィックを機能停止(ストール(stall))する可能性があるフロー制御メカニズムを用いる。ネットワークノードの出力リンク上の遮断は、スイッチを越えて後方へと伝播し、ストールされた出力をルーティングしようとしている該ネットワークノードの入力リンクをストールする場合がある。
「デッドロック」として知られる状態が生じる可能性がある。デッドロックでは、ストールされたリンクが間接的に該リンク自体に依存している。デッドロックは、データ損失エラーを引き起こし、修復するにはネットワークリスタートを必要とする場合がある深刻な状態である。これまで、デッドロックに対処するために様々な技法が用いられてきた。残念なことに、このような技法は様々な状況において失敗する場合がある。
例えば、「ターンモデル(turn model)」は、ネットワークトポロジーのタイプごとに特定の制約を要求する場合がある。ネットワークにリンク又はスイッチが欠けており、もはや完全なトポロジーを提供しないとき、ターンモデルは機能しなくなる場合がある。「up*/down*」ルーティングでは、全域木(spanning tree)によって任意のネットワークがカバーされる。経路は或る方向に流れることを強いられるが、これは全域木のルート付近のリンク負荷不平衡につながる場合があり、リンク又はスイッチが故障したとき、ネットワークリスタートを必要とする場合もある。「折返しクロス(folded Clos)」又は「ファットツリー」型のネットワークでは、デッドロックは経路制約を課すことによって対処されるが、これらの経路制約は過度に制限的である場合がある。
デッドロックを防止するためにブロッキングフロー制御を組み込んだシステム及び方法が提供される。そのようなシステム及び方法は、ネットワーク又は該ネットワーク内の経路が変更された場合であっても機能するように設計される。
1つの実施の形態では、コンピュータネットワークにおいてデッドロックを回避するようにパケットをルーティングする方法が提供される。本方法は、コンピュータネットワーク内の各スイッチに別個の(distinct)識別子を割り当てることを含む。該別個の識別子は、各それぞれのスイッチに一意である。本方法は、デッドロックが回避されるように、コンピュータネットワークにわたってパケットをルーティングするためのターン規則を設定することも含む。該ターン規則は、選択された条件が与えられて、第1のスイッチ(A)から中間スイッチ(B)を介して第2のスイッチ(C)にパケットを送信することを禁止する。条件は、中間スイッチBの別個の識別子が、第1のスイッチA及び第2のスイッチCの双方の別個の識別子の値よりも大きな値を有することと、中間スイッチBの別個の識別子が、第1のスイッチA及び第2のスイッチCの双方の別個の識別子の値よりも小さな値を有することと、からなる群から選択される。本方法は、コンピュータネットワーク内の各スイッチにターン規則を提供することと、該ターン規則に従ってコンピュータネットワークにわたってパケットをルーティングすることとを更に含む。選択された条件は、後続のパケットルーティングについて維持される。
1つの例では、本方法は、第1のスイッチA、第2のスイッチC、及び中間スイッチBは適応的なルーティングのために構成される。別の例では、第1のスイッチA、第2のスイッチC、及び中間スイッチBはそれぞれ複数のルーティングテーブルを保持する。更なる例では、各スイッチの別個の識別子はハードウェア識別子のハッシュである。
1つの代替形態では、本方法は、各スイッチにおいて複数の仮想チャネルをサポートすることと、選択された条件が与えられて、ターン規則が違反されるか否かを判断することと、複数の仮想チャネルの一意の順序を選択することによって、ターン規則の違反を許可する仮想チャネル規則を設定することと、該仮想チャネル規則に従ってコンピュータネットワークにわたってパケットをルーティングすることであって、仮想チャネル規則は後続のパケットルーティングについて維持される、ルーティングすることと、を更に含む。
別の代替形態例では、本方法は、各スイッチにおいて複数の仮想チャネルをサポートすることと、選択された条件が与えられて、ターン規則が違反されるか否かを判断することと、以下の条件、すなわち、仮想チャネル番号を、第1のチャネル番号からより大きいチャネル番号へ単調増加させること、又は仮想チャネル番号を、第1のチャネル番号からより小さいチャネル番号へ単調減少させること、のうちの一方のみが生じる場合にターン規則の違反を許可する仮想チャネル規則を設定することと、を更に含む。この代替形態において、本方法は、仮想チャネル規則に従ってコンピュータネットワークにわたって前記パケットをルーティングすることも含む。仮想チャネル規則は後続のパケットルーティングについて維持される。
別の例では、コンピュータネットワークはバタフライネットワークアーキテクチャである。更なる例では、コンピュータネットワークはチップマルチプロセッサアーキテクチャを備え、各スイッチは関連するプロセッサに結合される。
別の実施の形態よれば、コンピュータ可読記録媒体が提供される。この記録媒体は、コンピュータ可読記録媒体上に格納された命令を有する。該命令は、プロセッサによって実行されると、該プロセッサに対し、コンピュータネットワーク内の各スイッチに別個の識別子を割り当てる手順であって、該別個の識別子は各それぞれのスイッチに一意である、割り当てる手順と、デッドロックが回避されるように、コンピュータネットワークにわたってパケットをルーティングするためのターン規則を設定する手順であって、該ターン規則は、選択された条件が与えられて、第1のスイッチ(A)から中間スイッチ(B)を介して第2のスイッチ(C)にパケットを送信することを禁止するものであり、条件は、中間スイッチBの別個の識別子が、第1のスイッチA及び第2のスイッチCの双方の別個の識別子の値よりも大きな値を有することと、中間スイッチBの別個の識別子が、第1のスイッチA及び第2のスイッチCの双方の別個の識別子の値よりも小さな値を有することと、からなる群から選択される、設定する手順と、コンピュータネットワーク内の各スイッチにターン規則を提供する手順と、該ターン規則に従ってコンピュータネットワークにわたってパケットをルーティングする手順であって、選択された条件は後続のパケットルーティングについて維持されるものである、ルーティングする手順とを実行させる。
1つの例では、手順は、選択された条件が与えられて、ターン規則が違反されるか否かを判断することと、複数の仮想チャネルの一意の順序を選択することによって、ターン規則の違反を許可する仮想チャネル規則を設定することと、該仮想チャネル規則に従ってコンピュータネットワークにわたってパケットをルーティングすることであって、仮想チャネル規則は後続のパケットルーティングについて維持される、ルーティングすることとを更に含む。
別の例では、手順は、選択された条件が与えられて、ターン規則が違反されるか否かを判断することと、以下の条件、すなわち、仮想チャネル番号を、第1のチャネル番号からより大きいチャネル番号へ単調増加させること、又は仮想チャネル番号を、第1のチャネル番号からより小さいチャネル番号へ単調減少させること、のうちの一方のみが生じる場合には、ターン規則の違反を許可する仮想チャネル規則を設定することと、該仮想チャネル規則に従ってコンピュータネットワークにわたってパケットをルーティングすることであって、仮想チャネル規則は後続のパケットルーティングについて維持される、ルーティングすることとを更に含む。
更なる実施の形態では、コンピュータシステムは、該コンピュータシステム内のそれぞれのノードに配置された複数のスイッチング素子を備える。各スイッチング素子は別個の識別子によって識別される。隣接するスイッチング素子は互いに直接接続される。各スイッチング素子は、コンピュータシステムにおいてデッドロックが回避されるように、パケットをルーティングするためのターン規則を実行する。該ターン規則は、選択された条件が与えられて、パケットを第1のスイッチング素子(A)から中間スイッチング素子(B)を介して第2のスイッチング素子(C)に送信することを禁止する。条件は、中間スイッチング素子Bの別個の識別子が、第1のスイッチング素子A及び第2のスイッチング素子Cの双方の別個の識別子の値よりも大きな値を有することと、中間スイッチング素子Bの前記別個の識別子が、第1のスイッチング素子A及び第2のスイッチング素子Cの双方の別個の識別子の値よりも小さな値を有することと、からなる群から選択される。
1つの例では、第1のスイッチング素子A、第2のスイッチング素子C、及び中間スイッチング素子Bは、適応的なルーティングのために構成される。別の例では、第1のスイッチング素子A、第2のスイッチング素子C、及び中間スイッチング素子Bは、それぞれ複数のルーティングテーブルを格納する。更なる例では、各スイッチング素子の別個の識別子は、該それぞれのスイッチング素子のハードウェア識別子のハッシュである。
1つの代替形態では、スイッチング素子A、B、及びCは、それぞれ複数の仮想チャネルをサポートし、複数の仮想チャネルのあらかじめ選択された一意の順序に従ってターン規則の違反を許可する仮想チャネル規則を用いる。
別の代替形態では、スイッチング素子A、B、及びCは、それぞれ複数の仮想チャネルをサポートし、以下の条件、すなわち、仮想チャネル番号を、第1のチャネル番号からより大きなチャネル番号へ単調増加させること、又は仮想チャネル番号を、第1のチャネル番号からより小さなチャネル番号へ単調減少させること、のうちの一方のみが生じる場合にターン規則の違反を許可する仮想チャネル規則を用いる。
更に別の例では、コンピュータシステムはバタフライネットワークアーキテクチャを有する。更なる例では、コンピュータシステムはメッシュネットワークアーキテクチャを有する。
一代替形態では、コンピュータシステムはチップマルチプロセッサアーキテクチャを備え、各スイッチング素子は関連するプロセッサに結合される。また、更に別の代替形態では、複数のスイッチング素子は、コンピュータネットワークのノードにおいてルータを備える。該ルータのうちの少なくとも幾つかは、ネットワークにわたってデータパケットを送信するためのホストに接続する。
本発明の態様による使用のためのマルチプロセッサアーキテクチャを示す図である。 本発明の態様によるルータスイッチを示す図である。 本発明の態様によるルータスイッチを示す図である。 本発明の態様によるルーティングシナリオを示す図である。 本発明の態様による使用のための仮想チャネルを示す図である。 本発明の態様による多次元スイッチを示す図である。 本発明の態様とともに用いるためのチップマルチプロセッサを示す図である。
本発明の態様、特徴、及び利点は、好ましい実施形態の以下の説明と、添付の図面とを参照して検討したときに理解されるであろう。異なる図面内の同じ参照符号は、同じ要素又は類似の要素を特定することができる。さらに、以下の説明は限定的ではなく、本発明の範囲は添付の特許請求の範囲及び均等物によって規定される。
図1は、本発明の態様とともに用いるための一例示のコンピュータネットワークアーキテクチャ100を示している。示すように、アーキテクチャは、メッシュ型構成に配列されたノード102において複数のスイッチ(S0...S63)を含む。メッシュのX方向及びY方向の隣接ノード102におけるスイッチSは、接続/リンク104を介して互いに接続されている。例えば、スイッチS9はスイッチS1、S8、S10、及びS17に接続されている。メッシュ構成が示されているが、トーラス、バタフライ、平坦化したバタフライ等を含む任意の他のアークテキチャを用いることができる。
図1の例では、メッシュの上部ノード(S0...S7)及び下部ノード(S56...S63)又は側部ノードに沿ったスイッチをそれぞれのホスト106と接続することができる。ホストは、例えば、ネットワークインターフェースカードを介してネットワークに接続された処理デバイス又はコンピュータシステムとすることができる。各ホスト106は、トラフィックを発信することができ、及び/又は、ネットワーク内のノードからトラフィックを受信することができる。この例に示すように、1つのスイッチS(例えばS0、S4、S61)が各ホストに接続するが、複数のホストが単一のスイッチSに接続することもできる。他の構成は、単一のホストに接続する複数のスイッチSを有することもできる。加えて、或るホスト106は別のネットワーク108に結合することもできる。全てのそのような構成は、本明細書において説明されるように本発明に従って用いることができる。
図2Aは、所与のノード102がマルチポートルータスイッチ110を備える例を示している。示す構成では、マルチポートルータスイッチ110は、5ポートルータスイッチSである。4つのポートがメッシュの+X方向、−X方向、+Y方向、及び−Y方向において隣接ノードに接続する。第5のポートは、望ましくは、スイッチのそれぞれのノードにおいて同一ロケーションに位置するプロセッサ112(例えばホスト)に接続する。この例では、スイッチ110は図1のスイッチS4である。このため、−X方向のポートはスイッチS3に接続し、+X方向のポートはスイッチS5に接続し、−Y方向のポートはスイッチS12に接続する。スイッチS4はメッシュの上部エッジに沿って位置するので、+Y方向におけるスイッチS4のポートはホスト106に接続する。5ポートルータスイッチが示されているが、任意の数のポートを使用した他のタイプのマルチポートスイッチを用いることもできる。例として、Mellanox社のInfiniScale(商標)IV36ポートスイッチデバイスを用いることができる。このスイッチデバイスは、多次元6値6フラットネットワークトポロジーにおいて用いることができる。使用されるスイッチは異なるタイプ又は構成とすることができる。
図2Bを見ると、この図は、マルチポートルータスイッチ110が、バッファリング114と、データパケットをネットワーク内の他のノードにルーティングするためのルーティングメカニズム116とを備えうることを示している。ルータスイッチ110は、いずれの次のスイッチにパケットをルーティングするかを決定するための処理ロジック又はファームウェア(「ロジック」)118も含みうる。
本発明の1つの態様によれば、各スイッチSは、好ましくは以下の特徴を含む。まず、スイッチSはネットワーク内のルーティングを適切に可能にするために、大きなポート数を有するべきである。例えば、平坦化したバタフライネットワークにおいて、スイッチSあたり少なくとも28個のポートが存在するべきである。他のタイプのネットワークは、スイッチあたり、又は寸法あたり、より少ないか又はより多くのポートを用いることができる。別の特徴は、スイッチSが適応ルーティング機能を有するべきであるということである。好ましくは、スイッチSはスイッチ内に複数のルーティングテーブルを有することが可能であるべきである。この状況において、全てのポートが単一のルーティングテーブルによってルーティングされるわけではなく、スイッチがポート固有のルーティングを用いることが可能になる。
図3は、本発明の態様によるルーティング例を示している。4つのルータスイッチA、B、C、及びDが提供される。スイッチBを通じた1つの「ターン」(A,B,C)は、ホップ対(A,B)及び(B,C)を含み、データのパケットをAからBを介してCへ移動する。
各スイッチ「X」は、永続的で別個の識別子「I(X)」を割り当てられることが好ましい。スイッチA、B、C、及びDの識別子は、それぞれ、I(A)、I(B)、I(C)、及びI(D)である。識別子は、ネットワークによって、例えばランダムに、又は永続的なハードウェア識別情報を用いて割り当てることができる。このため、スイッチがInfiniBandのグローバル一意識別子(「GUID」)又は他の一意の識別子を有する場合、その識別子又は該識別子のハッシュは、別個の識別子としての役割を果たすことができる。
現実世界の例では、全てのスイッチS又はリンク104が常に「アップ」又はアクティブであるわけではない。一般的に言えば、通常、少なくとも1つの修復中の障害が存在する。そして、新たなスイッチがアドホックベースでネットワークに追加される場合がある。このため、一貫性を確保するために、各スイッチSの別個の識別子は経時的に変更しないことが好ましい。
図3の例について、別個の識別子に関して4つの可能な選択肢、すなわち、
I(A)<I(B)<I(C)
I(A)<I(B)>I(C)
I(A)>I(B)<I(C)
I(A)>I(B)>I(C)
が存在する。特定の(仮想)チャネル上のパケットフローが、パケットが別のチャネル上を流れる能力に依存するとき、「フロー依存」が存在する。スイッチに入るチャネル上のフローは、そのスイッチが、入力チャネルから出力へトラフィックをルーティングすることが可能である場合、スイッチを出るチャネル上のフローに依存する。仮想チャネル間のこの依存関係は、任意のチャネルが、直接的に又は推移的に(transitively)該チャネル自体に依存する場合、デッドロックにつながる可能性がある。
そのような問題を回避するために、1つの態様では、スイッチを通る経路は以下の規則に従って求められる。I(A)<I(B)かつI(C)<I(B)の場合でない限り、スイッチAからスイッチBを通ってスイッチCへの任意のターン「A〜B〜C」を経路において用いることができる。識別子I(X)の永続性によって、スイッチ及びリンクがネットワークを出入りし、新たな経路が計算されるにもかかわらず、デッドロックからの安全性が保証される。このシナリオにおいて、全ての経路におけるターンの包括的集合が、決してターンI(A)<I(B)>I(C)を含まないので、再ルーティングイベント後の古いトラフィックと新しいトラフィックとの間であってもデッドロックが発生する可能性はない。
A=4、B=5、C=2、及びD=3である例を検討する。本実施形態において、パケットはAからCにルーティングされる。上記の規則を用いると、4(A)<5(B)>2(C)であるので、パケットはスイッチBを通してルーティングすることができない。一方、4(A)>3(D)>2(C)であるので、パケットはスイッチDを通してルーティングすることができる。このため、ターン(A,D,C)が選択される。
代替的に、別の実施形態において、ターンの全ての組合せI(A)>I(B)<I(C)を禁止することができ、これは上記と同じ効果を伴い、特に、デッドロックからの安全性が保証される。この場合、ターン(A,B,C)は、(A,D,C)と異なり、禁止された関係に抵触しないので選択される。シナリオにおいて、隣接するスイッチ(例えばA及びB、B及びC、A及びD、又はC及びD)は、スイッチが一切介在することなく互いに直接接続される。
適応的なルーティングを実行するためのロジックは、図2Bの処理ロジック又はファームウェア118等の、各それぞれのノードにおけるスイッチS内に存在することができる。ルーティングロジックは、ネットワーク内の全てのスイッチSに内蔵されることが望ましい。各スイッチは、ルーティングテーブル又は等価なロジックを用いて、いずれの出力ポートを用いるかを決定することができる。ルーティングテーブルは柔軟性を提供し、パケットを容易に再ルーティングすることによって、滞りなく障害に対処する。ルーティングテーブルの一括した集合をプログラムすることによって「ルーティングアルゴリズム」を実行することが望ましい。好ましくは、各スイッチSは複数のルーティングテーブルを用いてポート固有のルーティングを可能にするように構成される。ネットワークに対する変更が生じると、スイッチは、該ネットワークを通じた幾つかの経路又は全ての経路を再計算することができる。
本発明の一態様による適応的なルーティングは、ポートの集合に、ローカルの宛先をマッピングする。データパケットを管理するスイッチは、いずれのスイッチにパケットを送信するかを選択することができる。選択されたホストから送信された、あらかじめ設定されたパケットを用いて、ネットワークトポロジーを明らかにすることができる。望ましくは、各スイッチSは、ネットワーク内の全てのホストのエントリと、各ホストへの距離とを有するテーブルを保持する。距離は、スイッチから、介在するノードを介してホストまでのホップ(例えば介在するスイッチ/ノード)数によって決まる。所与のスイッチは、距離に関して、該スイッチ自身からXホップ離れたホストを反復して計算することができる。これは近傍のスイッチを評価することによって行うことができる。1つの態様において、この距離決定は、上記で説明した規則を順守しながら行われ、すなわち、I(A)<I(B)>I(C)であるか、又はI(A)>I(B)<I(C)であるターンを回避する。
本発明の態様によれば、ネットワークにおいてノード間に代替経路を設けることによって、仮想チャネルを使用してデッドロックを解除することができる。仮想チャネルは、様々なネットワークにおいて、ネットワーク内のノード間でデータパケットをルーティングするのに用いることができる。図4は、図2A及び図2Bのルータスイッチ110のルーティングメカニズム116のための一例示の仮想チャネル構成200を示している。図4に示すように、スイッチを出入りする少なくとも1対の共有物理チャネル202が存在する。共有物理チャネル202とクロスバーアーキテクチャ206との間で、1組の独立した要求仮想チャネル及び応答仮想チャネル204を多重化することができる。
1つの態様によれば、上述したターン規則は、仮想チャネルを用いて違反することができる。具体的には、I(A)<I(B)>I(C)(又はI(A)>I(B)<I(C))のターンの組合せは、該ターンには、上位の(又は下位の)仮想ネットワークへの永続的な移行が伴うことができる場合にのみ許可される。換言すれば、複数の仮想チャネルを有するネットワークは、そうでない場合に許容できないターンを用いて、移行点(point of transition)をより大きな番号の(又はより小さな番号の)仮想チャネルにシグナリングすることができる。これは、移行を仮想チャネルのあらかじめ選択された順序に制限することによって達成することができる。
各スイッチはN個の仮想チャネルを備えることができる。例えば、N=4のとき、物理リンクあたり4つの仮想チャネルが存在する。換言すれば、データパケットを格納することができる、物理リンクの4つのバッファが存在する。本例では、各仮想チャネルは独自の別個のランク(例えば0、1、2、又は3)を有する。平坦化したバタフライの場合、少なくとも2つの仮想チャネルを用いるべきである。仮想チャネルに対し、N!(Nの階乗)個の異なる(一意の)順序が存在する。それらの順序のうちの任意のものを選択することができる。しかしながら、いったん1つの特定の順序が選択されると、デッドロックを回避するためにこれに従って進むべきである。
1つの例では、ターン規則は、パケットが単調増加する仮想チャネル番号にのみルーティングされている限り、違反することができる。例として、現在の仮想チャネル=1を仮定する。ここで、ターン規則の結果、仮想チャネル1に沿った有効なパスがない場合、仮想チャネル2を用いて、ターン規則に違反した経路を選択することができる。その後のターンは、ターン規則に違反しない限り仮想チャネル2を使用する。その後、仮想チャネル2を使用して利用可能な有効なパスがない場合、仮想チャネル3を用いて、ターン規則に違反するパスを選択することができる。
代替的な例において、ターン規則は、パケットが単調増加する仮想チャネル番号のみにルーティングされている限り違反することができる。例として、現在の仮想チャネル=1を仮定する。ここで、ターン規則の結果、仮想チャネル1に沿った有効なパスがない場合、仮想チャネル0を用いて、ターン規則に違反した経路を選択することができる。その後のターンは仮想チャネル0を使用する。このように、ターン規則は、単調増加する仮想チャネル番号又は単調減少する仮想チャネル番号を用いて違反することができる。この状況において、これらの2つの選択肢のうちの一方のみを用いることができる。ネットワークは、潜在的に結果としてデッドロック状況を生じることなく2つの選択肢間で変化することができない。
上記で示したように、本発明の態様は様々なネットワーク構成に組み込むことができる。実際に、本発明の態様を組み込むと、デッドロックは、各スイッチが別個の識別子を有する任意のネットワークトポロジーにおいて防止することができる。例として、図1等の2次元メッシュアーキテクチャ又はトーラス等の他の2次元アークテキチャを使用することができる。バタフライネットワーク及び平坦化したバタフライネットワーク等の他の多次元アーキテクチャも用いることができる。
1つの例において、ネットワーク内の全てのノードがN次元座標を割り当てられる。ネットワーク内にN個の軸が存在する。ここで、メッシュ型の例において、座標は隣接座標において1だけ異なる。換言すれば、各スイッチは、単一の軸上で座標が異なる全ての他のスイッチに接続する。スイッチ間の各ホップは1つの座標を置き換える。
図5は、5次元スイッチ300を示している。この例では、スイッチ300は、ホスト用の6個のポートを含む36個の双方向ポートを有する。示すように、近傍スイッチへの各リンクは単一の座標において異なる。
スイッチ300は、動作中、接続されたホストのうちの任意のものから、又は残りのポートにおいて接続された他のスイッチのうちの任意のものから入力パケットを受信することができる。ほとんどの場合、j個のディジットが異なる2つのスイッチ間の物理的最小経路数はj!(jの階乗)個である。上述したターン規則に従う許容可能な経路数はより少なく、下限が(j/2)!個である。
例えば、アドレス(1,2,3,4)及び(4,3,2,1)を有するスイッチ間の、4次元の平坦化したバタフライにおけるターンモデルの下での最小経路を検討する。以下の経路が正当なものである。
(1,2,3,4)−>(1,2,2,4)−>(1,2,2,1)−>(4,2,2,1)−>(4,3,2,1)
(1,2,3,4)−>(1,2,2,4)−>(1,2,2,1)−>(1,3,2,1)−>(4,3,2,1)
(1,2,3,4)−>(1,2,3,1)−>(1,2,2,1)−>(4,2,2,1)−>(4,3,2,1)
(1,2,3,4)−>(1,2,3,1)−>(1,2,2,1)−>(1,3,2,1)−>(4,3,2,1)
一方、その他の20個の最小長さの可能なパスは、
(1,2,3,4)−>(4,2,3,4)−>(4,3,3,4)−>(4,3,2,4)−>(4,3,2,1)
等の許容できないターンを含む。
この例において観察することができるように、スイッチの幾つかの対間の同じ仮想ネットワークにおける規則に適った最小経路の全てが、その座標がソースエンドポイントアドレス及び宛先エンドポイントアドレスの対応する座標の最小値であるスイッチを通らなくてはならない。これは上記の例では(1,2,2,1)である。
本発明の態様を、様々なタイプのコンピュータネットワークとともに用いることができる。これらのネットワークは、多数の物理的ロケーションに位置することができるホスト及びノードを有する分散型システムを含む。例として、ネットワークは、互いに結合された1つ又は複数のデータセンターを含むことができ、ホストは或るデータセンター内又は別々のデータセンター間の様々なサーバーを含む。本発明は、チップマルチプロセッサ等のマルチプロセッサコンピュータシステムにおいて用いることもできる。
図6は、本発明の態様とともに使用するための一例示のチップマルチプロセッサアーキテクチャ400を示している。示すように、アーキテクチャは、ノード402においてメッシュ型構成に配列された64個のプロセッサ(P0...P63)を含む。メッシュ内の隣接ノード402におけるプロセッサは、接続404を介して互いに直接リンクされる。例えば、プロセッサP9はプロセッサP1、P8、P10、及びP17に接続される。メッシュアーキテクチャが示されているが、本発明の態様に従って他のアーキテクチャを使用することもできる。
メッシュの上部ノード(P0...P7)及び下部ノード(P56...P63)に沿ったプロセッサは、それぞれのメモリコントローラ406に直接リンクすることができる。この例に示すように、4つのプロセッサ402が各メモリコントローラ406に接続する。加えて、各メモリコントローラ406が物理メモリ408に結合する。残りのプロセッサは、1つ又は複数の介在するノード402を通じてメモリコントローラ406と通信することができる。
パケットルーティングは、上述したのと同じ方式で、アーキテクチャ400において達成することができる。ターン規則に違反していない限り(すなわち、I(A)<I(B)>I(C)のとき、又はI(A)>I(B)<I(C)のとき、ターンはない)、デッドロックは回避される。複数の仮想チャネルを有するチップマルチプロセッサアーキテクチャは、そうでない場合に許容できないターンも使用して、移行点をより大きな番号の(又はより小さな番号の)仮想チャネルにシグナリングすることができる。ここで、ターン規則は、上記と同様に、単調増加する仮想チャネル番号又は単調減少する仮想チャネル番号のいずれかを使用して違反することができる。
本明細書における本発明の態様は特定の実施形態を参照しながら説明されてきたが、これらの実施形態は、本発明の原理及び応用例を例示しているにすぎないことは理解されたい。それゆえ、添付の特許請求の範囲によって規定されるような本発明の趣旨及び範囲から逸脱することなく、その例示的な実施形態に対して数多くの変更を行うことができること、及び他の構成を考案できることを理解されたい。
本発明は、コンピュータネットワークにおける効率的なパケットルーティングを含むがそれに限定されない広範な産業利用可能性を享有する。

Claims (18)

  1. コンピュータネットワークにおいてデッドロックを回避するようにパケットをルーティングする方法であって、
    前記コンピュータネットワーク内の各スイッチに別個の識別子を割り当てるステップであって、該別個の識別子はそれぞれの各スイッチに一意なものである、割り当てるステップと、
    前記デッドロックが回避されるように、前記コンピュータネットワークにわたって前記パケットをルーティングするためのターン規則を設定するステップであって、該ターン規則は、選択された条件が与えられて、第1のスイッチ(A)から中間スイッチ(B)を介して第2のスイッチ(C)に前記パケットを送信することを禁止するものであり、前記条件は、
    前記中間スイッチ(B)の前記別個の識別子が、前記第1のスイッチ(A)及び前記第2のスイッチ(C)の双方の前記別個の識別子の値よりも大きな値を有することと、
    前記中間スイッチ(B)の前記別個の識別子が、前記第1のスイッチ(A)及び前記第2のスイッチ(C)の双方の前記別個の識別子の値よりも小さな値を有することと、からなる群から選択されるものである、設定するステップと、
    前記コンピュータネットワーク内の前記各スイッチに前記ターン規則を提供するステップと、
    前記ターン規則に従って前記コンピュータネットワークにわたって前記パケットをルーティングするステップであって、前記選択された条件は、後続のパケットルーティングについて維持されるものである、ルーティングするステップと
    前記各スイッチにおいて複数の仮想チャネルをサポートするステップと、
    前記選択された条件が与えられて、前記ターン規則が違反されるか否かを判断するステップと、
    前記複数の仮想チャネルの一意の順序を選択することによって、前記ターン規則の違反を許可する仮想チャネル規則を設定するステップと、
    前記仮想チャネル規則に従って前記コンピュータネットワークにわたって前記パケットをルーティングするステップであって、該仮想チャネル規則は、後続のパケットルーティングについて維持されるものである、ルーティングするステップと
    を含んでなる、コンピュータネットワークにおいてデッドロックを回避するようにパケットをルーティングする方法。
  2. 前記第1のスイッチ(A)、前記第2のスイッチ(C)、及び前記中間スイッチ(B)は、適応的なルーティングのために構成されるものである請求項1に記載の方法。
  3. 前記第1のスイッチ(A)、前記第2のスイッチ(C)、及び前記中間スイッチ(B)は、複数のルーティングテーブルをそれぞれ保持するものである請求項1に記載の方法。
  4. 前記各スイッチの前記別個の識別子は、ハードウェア識別子のハッシュである請求項1に記載の方法。
  5. 以下の条件、すなわち、
    仮想チャネル番号を、第1のチャネル番号からより大きいチャネル番号へ単調増加させること、又は、前記仮想チャネル番号を、前記第1のチャネル番号からより小さいチャネル番号へ単調減少させること、のうちの一方のみが生じる場合には、前記ターン規則の違反を許可する前記仮想チャネル規則を設定するステップ
    更に含む、請求項1に記載の方法。
  6. 前記コンピュータネットワークは、バタフライネットワークアーキテクチャである請求項1に記載の方法。
  7. 前記コンピュータネットワークはチップマルチプロセッサアーキテクチャを備えており、前記各スイッチは関連するプロセッサに結合されるものである、請求項1に記載の方法。
  8. コンピュータ可読記録媒体であって、該コンピュータ可読記録媒体上に格納された命令を有し、該命令は、プロセッサによって実行されると、該プロセッサに対し、
    コンピュータネットワーク内の各スイッチに別個の識別子を割り当てる手順であって、該別個の識別子はそれぞれの各スイッチに一意なものである、割り当てる手順と、
    デッドロックが回避されるように、前記コンピュータネットワークにわたってパケットをルーティングするためのターン規則を設定する手順であって、該ターン規則は、選択された条件が与えられて、第1のスイッチ(A)から中間スイッチ(B)を介して第2のスイッチ(C)に前記パケットを送信することを禁止するものであり、前記条件は、
    前記中間スイッチ(B)の前記別個の識別子が、前記第1のスイッチ(A)及び前記第2のスイッチ(C)の双方の前記別個の識別子の値よりも大きな値を有することと、
    前記中間スイッチ(B)の前記別個の識別子が、前記第1のスイッチ(A)及び前記第2のスイッチ(C)の双方の前記別個の識別子の値よりも小さな値を有することと、からなる群から選択されるものである、設定する手順と、
    前記コンピュータネットワーク内の前記各スイッチに前記ターン規則を提供する手順と、
    前記ターン規則に従って前記コンピュータネットワークにわたって前記パケットをルーティングする手順であって、前記選択された条件は、後続のパケットルーティングについて維持されるものである、ルーティングする手順と、
    前記選択された条件が与えられて、前記ターン規則が違反されるか否かを判断する手順と、
    前記複数の仮想チャネルの一意の順序を選択することによって、前記ターン規則の違反を許可する仮想チャネル規則を設定する手順と、
    前記仮想チャネル規則に従って前記コンピュータネットワークにわたって前記パケットをルーティングする手順であって、該仮想チャネル規則は後続のパケットルーティングについて維持されるものである、ルーティングする手順と
    を実行させるものである、コンピュータ可読記録媒体。
  9. 前記手順は、 下の条件、すなわち、
    仮想チャネル番号を、第1のチャネル番号からより大きいチャネル番号へ単調増加させること、又は、
    前記仮想チャネル番号を、前記第1のチャネル番号からより小さいチャネル番号へ単調減少させること、のうちの一方のみが生じる場合には、前記ターン規則の違反を許可する前記仮想チャネル規則を設定すること
    を更に含む、請求項に記載の記録媒体。
  10. コンピュータシステムであって、
    該コンピュータシステム内のそれぞれのノードに配置された複数のスイッチング素子であって、各スイッチング素子は別個の識別子によって識別され、隣接するスイッチング素子は互いに直接接続されている、複数のスイッチング素子を備えており、
    前記各スイッチング素子は、該コンピュータシステムにおいてデッドロックが回避されるように、パケットをルーティングするためのターン規則を実行し、該ターン規則は、選択された条件が与えられて、第1のスイッチング素子(A)から中間スイッチング素子(B)を介して第2のスイッチング素子(C)にパケットを送信することを禁止するものであり、前記条件は、
    前記中間スイッチング素子(B)の前記別個の識別子が、前記第1のスイッチング素子(A)及び前記第2のスイッチング素子(C)の双方の前記別個の識別子の値よりも大きな値を有することと、
    前記中間スイッチング素子(B)の前記別個の識別子が、前記第1のスイッチング素子(A)及び前記第2のスイッチング素子(C)の双方の前記別個の識別子の値よりも小さな値を有することと、からなる群から選択されるものであり、
    前記スイッチング素子(A、B、及びC)は、複数の仮想チャネルをそれぞれサポートし、前記複数の仮想チャネルのあらかじめ選択された一意の順序に従って前記ターン規則の違反を許可する仮想チャネル規則を用いるものである、コンピュータシステム。
  11. 前記第1のスイッチング素子(A)、前記第2のスイッチング素子(C)、及び前記中間スイッチング素子(B)は、適応的なルーティングのために構成されるものである請求項10に記載のコンピュータシステム。
  12. 前記第1のスイッチング素子(A)、前記第2のスイッチング素子(C)、及び前記中間スイッチング素子(B)は、複数のルーティングテーブルをそれぞれ格納するものである請求項10に記載のコンピュータシステム。
  13. 前記各スイッチング素子の前記別個の識別子は、前記各スイッチング素子のハードウェア識別子のハッシュである請求項10に記載のコンピュータシステム。
  14. 仮想チャネル番号を、第1のチャネル番号からより大きなチャネル番号へ単調増加させること、又は、
    前記仮想チャネル番号を、前記第1のチャネル番号からより小さなチャネル番号へ単調減少させること、のうちの一方のみが生じる場合には、前記ターン規則の違反を許可するのである請求項10に記載のコンピュータシステム。
  15. 前記コンピュータシステムは、バタフライネットワークアーキテクチャを有する請求項10に記載のコンピュータシステム。
  16. 前記コンピュータシステムは、メッシュネットワークアーキテクチャを有する請求項10に記載のコンピュータシステム。
  17. 前記コンピュータシステムはチップマルチプロセッサアーキテクチャを備えており、前記各スイッチング素子は関連するプロセッサに結合されるものである、請求項10に記載のコンピュータシステム。
  18. 前記複数のスイッチング素子は、コンピュータネットワークの前記ノードにおけるルータを備えており、該ルータのうちの少なくとも幾つかは、前記ネットワークにわたってデータパケットを送信するためのホストに接続している請求項10に記載のコンピュータシステム。
JP2012546134A 2009-12-21 2010-12-21 任意のトポロジーの直接ネットワークにおけるデッドロック防止 Active JP5623550B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/643,280 2009-12-21
US12/643,280 US8139490B2 (en) 2009-12-21 2009-12-21 Deadlock prevention in direct networks of arbitrary topology
PCT/US2010/061467 WO2011084774A2 (en) 2009-12-21 2010-12-21 Deadlock prevention in direct networks of arbitrary topology

Publications (2)

Publication Number Publication Date
JP2013515449A JP2013515449A (ja) 2013-05-02
JP5623550B2 true JP5623550B2 (ja) 2014-11-12

Family

ID=44151001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012546134A Active JP5623550B2 (ja) 2009-12-21 2010-12-21 任意のトポロジーの直接ネットワークにおけるデッドロック防止

Country Status (4)

Country Link
US (3) US8139490B2 (ja)
EP (1) EP2517418B1 (ja)
JP (1) JP5623550B2 (ja)
WO (1) WO2011084774A2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5552938B2 (ja) * 2010-07-23 2014-07-16 富士通株式会社 禁止ターン決定プログラムおよび禁止ターン決定装置
KR101924002B1 (ko) * 2011-12-12 2018-12-03 삼성전자 주식회사 칩 멀티 프로세서, 및 칩 멀티 프로세서를 위한 라우터
US9379971B2 (en) * 2012-05-11 2016-06-28 Simula Inovation AS Method and apparatus for determining paths between source/destination pairs
US9197541B2 (en) * 2012-11-15 2015-11-24 Compass Electro Optical Systems Ltd. Router with passive interconnect and distributed switchless switching
GB2508891A (en) * 2012-12-14 2014-06-18 Ibm Deadlock-free routing of data packets in fat tree networks
US8761181B1 (en) * 2013-04-19 2014-06-24 Cubic Corporation Packet sequence number tracking for duplicate packet detection
US9294385B2 (en) 2014-03-03 2016-03-22 International Business Machines Corporation Deadlock-free routing in fat tree networks
CN104539536B (zh) * 2014-12-01 2017-10-17 清华大学 动态状态驱动的流控及Torus网络自适应路由方法
CN105224501B (zh) * 2015-09-01 2018-10-02 华为技术有限公司 改进圆环面网络及其确定数据包传输路径的方法和装置
US10491545B2 (en) 2017-05-26 2019-11-26 Hewlett Packard Enterprise Development Lp Virtual channel routing
CN109842553B (zh) * 2017-12-12 2021-10-08 中国科学院计算技术研究所 一种面向链路资源的自适应互连与路由控制方法和系统
US11294850B2 (en) * 2019-03-29 2022-04-05 Intel Corporation System, apparatus and method for increasing bandwidth of edge-located agents of an integrated circuit
US11108679B2 (en) 2019-08-08 2021-08-31 Mellanox Technologies Tlv Ltd. Producing deadlock-free routes in lossless cartesian topologies with minimal number of virtual lanes
US11425027B2 (en) 2020-11-01 2022-08-23 Mellanox Technologies, Ltd. Turn-based deadlock-free routing in a Cartesian topology
CN113965471B (zh) * 2021-10-22 2022-09-06 上海交通大学 基于RoCEv2协议的网络构建方法及系统
CN114826930B (zh) * 2022-04-20 2024-02-23 山东云海国创云计算装备产业创新中心有限公司 一种实现扁平式蝴蝶型网络拓扑的系统及方法
CN115277551B (zh) * 2022-07-28 2024-01-12 上海交通大学 基于环形结构的模块化三维片上网络无死锁路由系统和方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0243849A (ja) * 1988-08-03 1990-02-14 Fujitsu Ltd ノード間中継方式
US5701416A (en) * 1995-04-13 1997-12-23 Cray Research, Inc. Adaptive routing mechanism for torus interconnection network
JP3156766B2 (ja) * 1997-11-20 2001-04-16 日本電気株式会社 デッドロックを回避するパケットルーティング方式
US20040004966A1 (en) 2001-04-27 2004-01-08 Foster Michael S. Using virtual identifiers to route transmitted data through a network
JP4474527B2 (ja) * 2004-08-06 2010-06-09 パナソニック株式会社 マルチホップ型無線システムの構成方法及び無線ノード装置
EP2067319B1 (en) * 2006-09-29 2018-09-26 Telefonaktiebolaget LM Ericsson (publ) Loop-detection in moving networks
US7773618B2 (en) 2006-11-08 2010-08-10 Sicortex, Inc. System and method for preventing deadlock in richly-connected multi-processor computer system using dynamic assignment of virtual channels
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
US8285789B2 (en) 2007-10-05 2012-10-09 Intel Corporation Flattened butterfly processor interconnect network

Also Published As

Publication number Publication date
EP2517418B1 (en) 2014-11-19
US8441933B2 (en) 2013-05-14
US20130242731A1 (en) 2013-09-19
JP2013515449A (ja) 2013-05-02
US8964559B2 (en) 2015-02-24
US20120140631A1 (en) 2012-06-07
US8139490B2 (en) 2012-03-20
WO2011084774A3 (en) 2011-11-17
EP2517418A2 (en) 2012-10-31
US20110149981A1 (en) 2011-06-23
EP2517418A4 (en) 2013-06-05
WO2011084774A2 (en) 2011-07-14

Similar Documents

Publication Publication Date Title
JP5623550B2 (ja) 任意のトポロジーの直接ネットワークにおけるデッドロック防止
JP2817770B2 (ja) パケットの経路指定デッドロック回避方法及び装置
US8730965B2 (en) Systems and methods for dynamic routing in a multiprocessor network using local congestion sensing
US5898826A (en) Method and apparatus for deadlock-free routing around an unusable routing component in an N-dimensional network
US7379424B1 (en) Systems and methods for routing packets in multiprocessor computer systems
US5701416A (en) Adaptive routing mechanism for torus interconnection network
US7987288B2 (en) Method and arrangement for routing data packets in a packet-switching data network
US9577956B2 (en) System and method for supporting multi-homed fat-tree routing in a middleware machine environment
US20180026878A1 (en) Scalable deadlock-free deterministic minimal-path routing for dragonfly networks
US20030126268A1 (en) Method of preserving symmetrical routing in a communication system based upon a server farm
JPH08503799A (ja) マルチプロセッサ・システムにおける方向順ルーティング
JPH05153163A (ja) メツセージのルーテイング方法およびネツトワーク
US9565096B1 (en) Traffic distribution over multiple paths in a network
JPH1063629A (ja) ネットワーク内でルーティング・デッドロックの発生を防止する方法及び装置
US10374943B2 (en) Routing packets in dimensional order in multidimensional networks
US20230327976A1 (en) Deadlock-free multipath routing for direct interconnect networks
Adda et al. Routing and fault tolerance in Z-fat tree
US6631421B1 (en) Recursive partitioning of networks
Avresky et al. Dynamic Reconfiguration in High-Speed Computer Clusters.
JPS63501663A (ja) マルチプロセッサ通信装置
JPH10124472A (ja) 多ノードsciコンピュータシステムの経路指定方法
Theiss et al. FRoots: A fault tolerant and topology-flexible routing technique
JPH07239835A (ja) 並列計算機のネットワーク内データ転送制御方式
Lin et al. ACO-based fault-aware routing algorithm for Network-on-Chip systems
US20240195732A1 (en) Fault-tolerant routing algorithm for toroidal network topologies

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130417

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20130417

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130705

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131004

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131011

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140602

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140805

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: 20140826

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140924

R150 Certificate of patent or registration of utility model

Ref document number: 5623550

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250