JP3758523B2 - 双方向リングネットワーク、ノード装置および双方向リングネットワーク制御方法 - Google Patents
双方向リングネットワーク、ノード装置および双方向リングネットワーク制御方法 Download PDFInfo
- Publication number
- JP3758523B2 JP3758523B2 JP2001150590A JP2001150590A JP3758523B2 JP 3758523 B2 JP3758523 B2 JP 3758523B2 JP 2001150590 A JP2001150590 A JP 2001150590A JP 2001150590 A JP2001150590 A JP 2001150590A JP 3758523 B2 JP3758523 B2 JP 3758523B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- node device
- packet
- ring network
- recording register
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Description
【発明の属する技術分野】
本発明はコンピュータ間のデータ通信ネットワークに関し、さらに詳しくは複数のノード装置をリング状に接続して双方向に通信する双方向リングネットワークに関する。
【0002】
【従来の技術】
コンピュータネットワークの一つの方式としてリングネットワークがある。一般に複数のノード装置をリング状に接続したものをリングネットワークと呼ぶが、各ノード装置間の通信が一方向にのみ可能であるものを単方向リングネットワーク、各ノード装置間が双方向に通信可能であるものを双方向リングネットワークと呼ぶ。リングネットワークにはノード装置数に比してリンク数が比較的少ないため、安価に実現できるというメリットがある。
【0003】
リングネットワークによってデータ通信を行う場合の一つの課題は、デッドロックの回避である。デッドロックとはリソース獲得時の競合によって処理が先に進めなくなる「すくみ」の状態を指す。一般にパケット交換方式によって通信する場合には、各パケットがノード装置内バッファをリソースとして取り合うことになる。このときリソースの依存関係がループを構成すると、デッドロックの可能性がある。
【0004】
4ノードリングネットワークでデッドロックに陥るケースを説明する。図10は4ノードリングネットワークを示している。各ノード装置1001(0) 〜1001(3) は計算機などの処理装置1003(0) 〜1003(3) と一対一に接続されており、隣接するノード装置から入力されたパケットを一つだけ保持するバッファ1002(0) 〜1002(3) と、処理装置1003(0) 〜1003(3) から入力されたパケットを保持するバッファ1004(0) 〜1004(3) とを有している。
【0005】
入力されたパケットが自分(に接続された処理装置)宛でなかった場合にはリング接続された次のノード装置にパケットをフォワードする。しかし、パケットを次のノード装置に渡すためには次のノード装置のバッファが空いている必要がある。バッファ1002(0) 〜1002(3) にはそれぞれ固有の宛先が記述されたパケット1005(0) 〜1005(3) が保持されている。図中のパケット1005(0) 〜1005(3) に記述された数字1,2,3,0 は宛先のノード番号を示している。例えばノード装置1001(1) 内のバッファ1002(1) にはノード装置1001(2) に通信すべきパケット1005(2) が保持されているが、宛先のノード装置1001(2) 内のバッファ1002(2) には既に別のパケット1005(3) が保持されており、ノード装置1001(1) はノード装置1001(2) にパケット1005(2) を受け渡すことができない。すべてのノード装置において上記と同様の状態が発生するため、すべてのノード装置がリソースが空くのを待ちつづけるすくみ状態、すなわちデッドロックに陥る。
【0006】
これは蓄積交換によるルーティングを行っている場合だが、ワームホールルーティングの場合にもリソースとしてリンクを取り合うために、同様にデッドロックに陥ることがある。
【0007】
富田眞治著「並列コンピュータ工学」(昭晃堂,1996 )p.42〜p.47では、「相互結合網におけるデッドロック」として4ノードで構成された単方向リングネットワークのデッドロックの例が紹介され、以下の解決策が提示されている。
【0008】
1.チャネルの共有化、すなわち仮想チャネルによって依存関係のサイクルを切断する。さらにノード装置内のバッファ数、仮想チャネル数を増やして任意のノードペア間の通信において競合を回避するよう構成した構造化バッファプールと呼ばれる方式もある。
【0009】
2.チャネルが獲得できない場合に獲得してきたチャネルを解放する。しかし、この場合チャネル解放のためのバッファに関してデッドロックの問題が発生するため、この方式はデッドロックの根本的な解決にはならない。
【0010】
3.一度に全チャネルを獲得する。この方式は集中制御を必要とし、各ノード装置による分散制御では実現困難である。
【0011】
4.特定のパケットが優先的にチャネルを獲得する方式。この方式はデッドロックの可能性がない場合にも特定のパケットが優先的にチャネルを獲得することを回避できず、非効率となる。
【0012】
5.リングの切断、すなわちリソースの依存関係が構成するサイクルを断ち切る。但し単方向リングネットワークにおいては直接通信不可能なノード装置ができてしまうため、通信を中継ノードにおいて一旦完結させるか、あるいは逆方向のリングを付加するなどの対策を取る必要がある。
【0013】
デッドロックの回避方法としてもっとも一般的なのは、1.に示した仮想チャネルを使用してリソースの依存関係にあるサイクルを断ち切ることである。仮想チャネルの基本的な考え方は、物理的なリンクの本数を増やさずに仮想的にノード装置間のチャネル本数を増やし、チャネルの依存関係がサイクルを構成しないようにリソースの獲得を制御することである。これはノード装置内に複数のバッファを用意し、パケット送信先などによって使用バッファを決定することによって実現されている。これらの手法は Dallyらの米国特許(U.S. patent 4,933,933 Torus routing chip)などに詳述されている。
【0014】
このような仮想チャネルによってデッドロックを回避した場合には、チャネルの数分のバッファを用意する必要があり、複数のバッファを制御するための制御回路も複雑化する。また、必要となるチャネル数はノード数に依存するため、ノード装置の構成によってネットワークの大きさが制限され、拡張性に乏しいという問題もある。
【0015】
構造化バッファプールの場合にもノード装置内のバッファ数増加と、それに伴う制御回路の複雑化の問題は避けられない。
【0016】
次に5.のリングの切断について説明する。
【0017】
逆方向のリング接続を付加した4ノード双方向リングネットワークにおいて、ルーティングの方向を制限することによって特定チャネル間の依存関係を解消し、デッドロックを回避する例を図11に示す。
【0018】
図11は4ノード双方向リングネットワークの構成図である。通信リンクC1〜C8によって双方向に通信可能なリング状に接続されたノード装置1101(0) 〜1101(3) は、それぞれ計算機などの処理装置1102(0) 〜1102(3) と一対一に接続されている。各ノード装置1101(0) 〜1101(3) は時計回り方向のリンクから受信したパケットを保持するバッファ1103(0) 〜1103(3) と、反時計回り方向のリンクから受信したパケットを保持するバッファ1104(0) 〜1104(3) と、直接接続された処理装置1102(0) 〜1102(3) から受信したパケットを保持するバッファ1105(0) 〜1105(3) をそれぞれ有している。隣接するノード装置1101(0) 〜1101(3) からパケットを受信した場合にはその送信先ノード番号を確認して処理装置1102(0) 〜1102(3) に渡すか次のノード装置1101(0) 〜1101(3) にフォワードするかのいずれかの処理を行う。
【0019】
図12は図11の双方向リングネットワークにおける、チャネルの依存関係を有向グラフで表現したものである。C1〜C8は図11に示されたリンクにそれぞれ対応している。この図ではC1→C2→C3→C4→C1とC5→C6→C7→C8→C5の二つのサイクルが存在し、デッドロックの可能性がある。
【0020】
そこで、ルーティングに以下のような制限を設ける。「ノード装置1101(0) はパケットを中継しない、すなわち、ノード装置1101(0) のバッファ1103(0) とバッファ1104(0) には、常に送信先ノード番号が0を示すパケットのみが入力される。」図13に上記の制限を加えた場合のチャネルの依存関係のグラフを示す。図13においては依存関係のサイクルは存在せず、デッドロックは回避されている。
【0021】
図14は上記のルーティング方向制限によってデッドロック回避を行った場合の具体的なルーティング方法を示している。図のように、送信元ノードと送信先ノードとによってパケットの経路が固定的に決定される。ノード装置1101(0) が送信元ノード、もしくは送信先ノードである場合には、パケットが選択可能な経路が複数存在する。図14ではそのような場合に経路の短い方を選択して記してある。ノード1101(0) からノード1101(2) への通信、およびノード1101(2) からノード1101(0) への通信は距離の等しい二つの選択可能な経路が存在し、図14にはその両方を記してある。
【0022】
このように、ノード数が4以下であればデッドロックフリーで且つノード間距離が最短になるようにパケットのルートを決定可能となることが、"A Survey of Wormhole Routing Techniques in Direct Networks",L.M.Ni and P.K.McKinley, IEEE Computer,Feb 1993,p.62-76などに示されている。
【0023】
このようにリングの切断によってデッドロックを回避した場合には、ノード数が増加した場合にパケット経路を最短距離で設定できないという問題はあるものの、ノード装置の構成は比較的単純であり、しかもネットワークの規模が大きい場合、つまりノード数が多い場合にも、ノード装置の構成には影響を与えないというメリットがある。
【0024】
【発明が解決しようとする課題】
しかし、リングの切断によってデッドロックを回避した場合には、ルーティングが固定化されているため、ネットワークの状態に応じてパケットのルートを変更することができないということが問題として指摘されている。例えば、ノード番号「0」〜「9」の10台のノード装置N0〜N9が、ノード番号の順に双方向のリンクによってリング状に接続され、且つノード番号「0」のノード装置N0が切断点にされている双方向リングネットワークにおいて、ネットワークの状態が変化し、切断点のノード装置N0に隣接するノード装置N1,N9間のトラフィックが最も多くなったとしても、ノードN1,N9間のパケットは、最も遠回りの経路を通って送受信され続けることになるという問題がある。
【0025】
また、パケットのルートをテーブルなどに記録することで変更可能なように設計した場合にも、テーブルの書き換え時にはチャネルの依存関係を考慮した上で人手で設計する必要があり、且つネットワークの運用中には変更できないという問題があった。
【0026】
【発明の目的】
本発明は上記の課題に鑑みてなされたものであり、その目的は次の通りである。
【0027】
第一の目的は、デッドロックを回避するための依存関係の切断点を変更するという簡単な操作を行うだけで、双方向リングネットワークのルーティングを容易に変更できるようにすることにある。
【0028】
第二の目的は、上記依存関係の切断点の変更に際し、変更をノード装置に指示するための専用接続を必要とせず、ネットワークの通常パスを流れるパケットによって可能にすることにある。
【0029】
第三の目的は、上記依存関係の切断点の変更を、ネットワークの運用を継続しつつ行えるようにすることにある。
【0030】
第四の目的は、上記依存関係の切断点を変更することによって、双方向リングネットワーク中の特定のリンクを未使用状態に設定し、ネットワークの拡張、あるいは保守などを容易に行えるようにすることにある。これらの目的を達成するノード装置は、構成が単純であり、且つネットワーク中のノード数の増加にも同じ構成のノード装置を使用して容易に対応可能なものでなくてはならない。
【0031】
【課題を解決するための手段】
本発明では、基本的にリンクの切断によってデッドロックを回避するアプローチを取る。このためにノード数が5以上の場合にパケットが遠回りの経路を選択することは避けられないが、ノード数が増えた場合にも同一のノード装置でリングネットワークを構成可能となる。
【0032】
上記の目的を達成するために、本発明によるノード装置は、双方向リングネットワーク中の依存関係の切断点を記録する書き換え可能な切断点記録レジスタを有し、
受信したパケットの送信先ノード番号から上記切断点記録レジスタに設定された値を減算する演算器を有し、
さらに自身のノード番号から上記切断点記録レジスタに設定された値を減算する演算器を有し、
二つの演算器の出力結果の比較に基づいてパケットの送信先を決定するルート決定手段を有する。
【0033】
さらに、本発明によるノード装置は、上記切断点記録レジスタに対して、双方向リングネットワーク中を流れる制御用特殊パケットに従って内容を書き換える構成を有する。
【0034】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【0035】
図1は、本発明の第一の実施例のブロック図であり、請求項1,2に示す発明を実施した双方向リングネットワークを構成するノード装置の一例を示している。本ノード装置によって構成されるリングネットワークは双方向リングネットワークである。
【0036】
ここでは説明の簡略化のために蓄積交換式のネットワークを例にとって説明する。しかし以下に示す方式は、パケットを第一番目のフリットと読み替え、行き先アドレスを持たない第二番目以降のフリットを第一番目のフリットと同じ行き先にルーティングするよう制御することで、容易にワームホールルーティングの場合にも適用可能である。
【0037】
ノード装置101 は3つの入出力ポートを有している。一つ目の入出力ポートは入力ポート114 と出力ポート115 とから構成され、計算機などの処理装置(図示せず)に接続される。入力バッファ部108 は処理装置からの入力を入力ポート114 を介して受け取るバッファ部であり、出力制御部109 は出力ポート115 を介して処理装置へのパケットの出力を制御する。
【0038】
残る二つの入出力ポートは、リングネットワークを構成する別のノード装置と接続される。二つ目の入出力ポート、すなわち入力ポート116 と出力ポート117 は別のノード装置に接続され、三つ目の入出力ポート、すなわち入力ポート119 と出力ポート118 もまた別のノード装置に接続される。従って入力ポート116 および出力ポート118 の接続はリングネットワークにおける一方向のループを形成する接続であり、入力ポート119 および出力ポート117 は双方向リングネットワークにおいて前記のループと逆方向のループを形成する接続である。ここでは、入力ポート116 および出力ポート118 によって形成されるループを順方向のループ、入力ポート119 および出力ポート117 によって形成されるループを逆方向のループと呼ぶ。
【0039】
順方向のループを形成する入力バッファ部110 は、順方向ループを流れるパケットを保持するバッファ(図示せず)を有している。このバッファはFirst In First Outの規則に従って制御される。入力バッファ部110 は、順方向のループを形成する出力制御部112 のほかに、処理装置への出力制御部109 と、切断点記録レジスタ102 に対して接続されている。
【0040】
逆方向のループを形成する入力バッファ部113 は、逆方向のループを流れるパケットを保持するバッファ(図示せず)を有している。このバッファはFirst In First Outの規則に従って制御される。入力バッファ部113 は、逆方向のループを形成する出力制御部111 のほかに、処理装置への出力制御部109 と、切断点記録レジスタ102 に対して接続されている。
【0041】
処理装置からの入力を受ける入力バッファ部108 は、パケットを保持するバッファ(図示せず)を有している。このバッファはFirst In First Outの規則に従って制御される。入力バッファ部108 は送信先記録レジスタ103 への書き込み手段を有し、ルート決定手段105 からの指示を受け、順方向のループを形成する出力制御部112 と、逆方向のループを形成する出力制御部111 とにパケットを出力することができる。また、切断点記録レジスタ102 への書き込み手段を有している。
【0042】
送信先記録レジスタ103 は、入力バッファ部108 のパケットの送信先ノード番号を記録するレジスタである。この値は減算器107 に入力される。送信先記録レジスタ103 には、ネットワークを構成するノード装置数の最大値を記録するに十分なサイズが必要とされる。
【0043】
切断点記録レジスタ102 はデッドロックを回避するために依存関係を切断する場所を記録するレジスタである。このレジスタは入力バッファ部110 、入力バッファ部113 、入力バッファ部108 によって書き込み可能であり、その値は減算器106 と減算器107 に入力される。切断点記録レジスタ102 には、ネットワークを構成するノード装置数の最大値を記録するに十分なサイズが必要とされる。
【0044】
ノード番号記録レジスタ104 はリングネットワークにおいて各ノード装置に付与される固有のノード番号を記録するレジスタであり、各パケットはこの番号を行き先として使用する。本発明においてこの値は、リングネットワークを構成するあるノード装置に0番の番号が付与され、続いて順方向のループに沿って隣接するノード装置に対して1,2,…のように昇順に番号が付与される。ノード番号記録レジスタ104 の値はネットワークの運用開始前に設定される値であり、入力バッファ部108,110,113 の指示によって書き込み可能とする。但し図においては書きこみ手段を省略している。(専用線によって書き込み可能としても良い。)ノード番号記録レジスタ104 の値は、減算器106 とルート決定手段105 に入力される。ノード番号記録レジスタ104 には、ネットワークを構成するノード装置数の最大値を記録するに十分なサイズが必要とされる。
【0045】
減算器106 はノード番号記録レジスタ104 の値から切断点記録レジスタ102 の値を減算する回路であり、出力値はルート決定手段105 に入力される。切断点記録レジスタ102 の値の方がノード番号記録レジスタ104 の値よりも大きい場合には、結果は2の補数の形で符号付のビット列として出力される。減算器106 の出力値は、切断点のノード装置から自ノード装置までの順方向のホップ数に相当するものになる。なお、減算器106 は演算結果を符号付のビット列で表現するため、出力値のビット幅は、ノード番号記録レジスタ104 および切断点記録レジスタ102 で必要となる、ネットワークを構成するノード装置数の最大値を記録するに必要なビット数よりも1ビット以上大きくとる。
【0046】
減算器107 は送信先記録レジスタ103 の値から切断点記録レジスタ102 の値を減算する回路であり、出力値はルート決定手段105 に入力される。切断点記録レジスタ102 の値の方が送信先記録レジスタ103 の値よりも大きい場合には、結果は2の補数の形で符号付のビット列として出力される。減算器107 の出力値は、切断点のノード装置からパケットの送信先のノード装置までの順方向のホップ数に相当するものになる。なお、減算器107 は演算結果を符号付のビット列で表現するため、出力値のビット幅は、送信先記録レジスタ103 および切断点記録レジスタ102 で必要となる、ネットワークを構成するノード装置数の最大値を記録するに必要なビット数よりも1ビット以上大きくとる。
【0047】
ルート決定手段105 は、減算器107 、減算器106 、ノード番号記録レジスタ104 からの入力を受け、入力バッファ部108 に保持されるパケットの出力先を判定・指示する機能を有する。尚、このような機能を有するルート決定手段105 は、比較器等を用いて低コストで実現することができる。
【0048】
次にノード装置101 の動作について説明する。
【0049】
順方向のループにおいては、入力バッファ部110 がループを流れるパケットを受信する。入力バッファ部110 では受け取ったパケットの送信先ノード番号を判定し、これがノード装置固有の番号と一致している場合にはパケットは出力制御部109 、出力ポート115 を介して処理装置に出力される。送信先ノード番号とノード装置固有の番号が異なる場合にはループの方向に沿って出力制御部112 、出力ポート118 を介して次のノード装置にパケットを受け渡す。このノード装置固有の番号はノード番号記録レジスタ104 に保持されている値に等しい。図ではノード番号記録レジスタ104 の値を読み出して判断するように描かれているが、入力バッファ部110 がこの値のコピーを保持していても良い。
【0050】
逆方向のループにおいては、入力バッファ部113 がループを流れるパケットを受信する。入力バッファ部113 では、順方向のループの場合と同様に、受け取ったパケットの送信先ノード番号とノード装置固有の番号を比較する。一致した場合にはパケットは出力制御部109 と出力ポート115 を介して処理装置へと受け渡され、不一致であった場合には、パケットは逆方向のループに沿って出力制御部111 と出力ポート117 を介して別のノード装置に出力される。
【0051】
ここまでの動作は双方向リングネットワークを構成する従来のノード装置と変わらない。次にノード装置101 が処理装置からパケットを受け取った場合の動作を説明する。
【0052】
処理装置から入力されたパケットは入力バッファ部108 に入力される。入力バッファ部108 では、パケットの送信先ノード番号を読み出して送信先記録レジスタ103 に入力する。
【0053】
次に減算器107 は書き込まれた送信先記録レジスタ103 の値から、切断点記録レジスタ102 の値を減算し、結果をルート決定手段105 に入力する。
【0054】
ルート決定手段105 は、上記減算器107 の減算結果のほかに、減算器106 によるノード番号記録レジスタ104 の値から切断点記録レジスタ102 の値を減算した結果とノード番号記録レジスタ104 の値とを入力として受け、入力バッファ部108 に保持されたパケットの出力先を決定する。
【0055】
ルート決定手段105 によるパケットの出力先の決定方法を図2の流れ図を用いて説明する。但し本実施例では、送信元ノード番号と送信先ノード番号が同じケース、つまり自分自身への通信は起こり得ないものとしている。図2によるルートの決定方法においては、切断点記録レジスタ102 に指定された値と同じ番号を持つノード装置が、順方向のループおよび逆方向のループ両方の依存関係の切断点となっている。
【0056】
まずステップ201 では減算器106 の値を確認する。この値はノード番号記録レジスタ104 と切断点記録レジスタ102 の値の差分である。この値が0である場合には、このノード装置101 自身が順方向のループと逆方向のループの両方の依存関係の切断点となっている。この場合はステップ202 に示すようにパケットの出力先は任意である。つまり、どちらのループにパケットを送出した場合であっても、デッドロックは発生しない。
【0057】
送出方向が任意である場合には、何らかの方法によって送出方向を決定する必要がある。例えば、固定的に順方向もしくは逆方向に流す、順方向と逆方向を交互に利用する、順方向と逆方向のうちノード装置のホップ数が少ない方を判定することによって決定する、などの方法がある。入力バッファ部108 は、送出方向が順方向ループに決定した場合には出力制御部112 に、送出方向が逆方向ループに決定した場合には出力制御部111 に、パケットを送出する。
【0058】
次にステップ203 において、減算器107 の値を確認する。この値は送信先記録レジスタ103 と切断点記録レジスタ102 の値の差分である。この値が0である場合には、パケットの送信先のノード装置が順方向のループと逆方向のループの両方の依存関係の切断点となっている。この場合はステップ204 に示すようにパケットの出力先は任意である。つまり、どちらのループにパケットを送出した場合であっても、デッドロックは発生しない。ステップ204 ではステップ202 の場合と同様、何らかの規則に従ってパケットの送出方向を決定する。
【0059】
次にステップ205 において、減算器106 の出力値と減算器107 の出力値を比較する。減算器の出力が負の値であった場合には2の補数の形式で出力されているが、ステップ205 においてはそれぞれの出力値を符号なし整数として扱って比較する。従って減算結果が負の数であった場合には、減算結果が正の数であった場合よりも大きい数値であるとして扱われる。この比較の結果、減算器106 の出力値が減算器107 の出力値よりも大きかった場合、ステップ206 において送出方向は逆方向ループに決定される。この場合入力バッファ部108 のパケットは出力制御部111 に対して出力される。一方、減算器106 の出力値が減算器107 の出力値よりも小さい値であった場合には、ステップ207 において送出方向は順方向ループに決定される。この場合入力バッファ部108 のパケットは出力制御部112 に対して出力される。
【0060】
次に本発明によるノード装置101 を使用して6ノード双方向リングネットワークを構成した場合を例にとり、そのルーティング方向の決定について図3を用いて説明する。
【0061】
図3は6ノード双方向リングネットワークの構成図である。本発明によるノード装置301(0)〜301(5)はリンクC1〜C12 によってリング状に接続されている。ノード装置301(0)〜301(5)にはそれぞれ計算機などの処理装置が接続されているが、図3では省略している。
【0062】
ここでは切断点記録レジスタ102 に2が記録されている場合を例に取る。この場合、ノード番号が2であるノード装置301(2)が順方向のループと逆方向のループの両方の依存関係を切断するノード装置となる。この場合のリンクの依存関係を図4に示す。ノード装置301(2)において依存関係が切断されているため、リンクC2からリンクC3への依存関係がない。つまり、リンクC2を使用してノード装置301(2)に到達したパケットは、常にノード装置301(2)が送信先ノードであり、順方向ループのリンクC3を使用してノード装置301(3)に出力されることはない。同様に逆方向のループに関しても、リンクC10 からリンクC11 への依存関係がない。従って、逆方向ループのリンクC10 を使用してノード装置301(2)に到達したパケットは、常にノード装置301(2)が送信先ノードであり、逆方向ループのリンクC11 を使用してノード装置301(1)に送られることはない。
【0063】
ルート決定手段105 の動作をより具体的に説明する。以下に4つの通信パターンにおいて実際にどのようにルートが決定されるかを示している。ここでリングネットワークを構成するノード数は6であるので、切断点記録レジスタ102 、送信先記録レジスタ103 、ノード番号記録レジスタ104 のビット幅を3 ビット、減算器106 および減算器107 の出力ビット幅を4ビットとする。
【0064】
(1) ノード装置301(3)からノード装置301(5)までパケットを送る場合。このとき減算器107 の出力は5−2=3(二進数で0011)、減算器106 の出力は3−2=1(二進数で0001)となる。図2のステップ205 において減算器106 の出力は減算器107 の出力よりも小さいため、ステップ207 に従ってパケットは順方向ループに送出される。
【0065】
(2) ノード装置301(3)からノード装置301(1)までパケットを送る場合。このとき減算器107 の出力は1−2=−1(二進数で2の補数によって表現すると1111)、減算器106 の出力は3−2=1(二進数で0001)となる。図2のステップ205 における比較は符号なし整数として扱われるため、減算器107 の出力値(1111)が減算器106 の出力値(0001)よりも大きいと判断され、ステップ207 に従ってパケットは順方向ループに送出される。
【0066】
(3) ノード装置301(1)からノード装置301(0)までパケットを送る場合。このとき減算器107 の出力は0−2=−2(二進数で2の補数によって表現すると1110)、減算器106 の出力は1−2=−1(二進数で2の補数によって表現すると1111)となる。図2のステップ205 における比較は符号なし整数として扱われるため、減算器107 の出力値(1110)は減算器106 の出力値(1111)よりも小さいと判断され、ステップ206 に従ってパケットは逆方向ループに送出される。
【0067】
(4) ノード装置301(2)からノード装置301(4)までパケットを送る場合。このときステップ201 において減算器106 の出力が2−2=0となるため、ステップ202 に従ってパケットの送出方向は任意となる。この場合は別の方法によって送出方向を決定することになる。
【0068】
図5は、本発明によるノード装置101 を使用した6ノード双方向リングネットワークにおいて、切断点記録レジスタ102 に保持された値が2である場合、ルート決定手段105 においてどのルートが選択されるかを、パケットの送信元ノード番号と送信先ノード番号毎に示したものである。
【0069】
次に、このノード装置101 を使用して構成した双方向リングネットワークにおいて、運用中に依存関係の切断点を変更する場合について説明する。本発明による双方向リングネットワークにおいては、このような依存関係の切断点の移動を、専用線による各ノード装置への指示ではなく、処理装置からのネットワーク管理用のパケットが通常のループ上を伝播することによって行うことが可能となる。
【0070】
図3に示した6ノード双方向リングネットワーク(ノード装置として本発明による図1のノード装置を使用)において、依存関係の切断点をノード装置301(2)からノード装置301(1)へと変更する場合の例である。ノード装置301(0)〜301(5)はリンクC1〜C12 によってリング状に接続されており、各ノード装置301(0)〜301(5)には計算機などの処理装置が接続されるが、図では省略している。
【0071】
最初の時点ではノード装置301(0)〜301(5)内の切断点記録レジスタ102 には2が記録されている。この時点においてノード装置301(2)から、依存関係の切断点を移動させる指示が、通常の通信パケットとしてネットワークに投入される。このパケットを以下では制御用特殊パケットと記載する。
【0072】
制御用特殊パケットのノード装置301(2)での動作を図1を用いて説明する。制御用特殊パケットは処理装置と接続された入力ポート114 を使用して入力バッファ部108 に対して入力される。入力バッファ部108 はパケットが制御用特殊パケットであることを判別すると、パケットの出力先を決定する。この場合パケットの出力先はルート決定手段105 によっては設定されず、依存関係の切断点が移動する方向と逆向きのループに沿って移動するように、入力バッファ部108 によって決定される。この例においては依存関係の切断点は逆方向ループと同じ方向(つまりノード装置固有の番号が−1される方向)に移動させるため、パケット自身は順方向ループに沿ってリングを一周する。このために入力バッファ部108 は順方向のループを形成する出力制御部112 に対してパケットを送出する。パケットの送出と同時に、入力バッファ部108 は切断点記録レジスタ102 の内容を2から1に更新する。以後、ノード装置301(2)においては依存関係の切断点はノード装置301(1)にあるものとしてルートを決定する。
【0073】
次にノード装置301(3)が制御用特殊パケットを受信してからの動作を図1を用いて説明する。制御用特殊パケットは順方向ループの入力ポート116 から入力バッファ部110 に入力される。入力バッファ部110 内のバッファは First In First Out の規則に従ってサービスを行うため、制御用特殊パケットのサービスの順番になるまで何も特別な処理は行われない。サービス順になると、このパケットは順方向ループに沿って出力制御部112 に渡される。このとき同時に、入力バッファ部110 は切断点記録レジスタ102 の内容を2から1に書き換える。以後、ノード装置301(3)においては依存関係の切断点はノード装置301(1)にあるものとしてルートを決定する。
【0074】
ノード装置301(4),301(5),301(0)において、制御用特殊パケットは上記ノード装置301(3)の場合と同様に処理される。
【0075】
制御用特殊パケットがノード装置301(4)においてサービスされた直後の状態を想定し、過渡状態におけるリンクの依存関係を示す。この時点ではノード装置301(2),301(3),301(4)においては、切断点記録レジスタ102 の値は1に更新されているため、依存関係の切断点はノード装置301(1)にあるものと認識している。ノード装置301(5),301(0),301(1)においては、切断点記録レジスタ102 の値は2となっているため、依存関係の切断点はノード装置301(2)にあるものと認識している。
【0076】
まず順方向のループに関して着目すると、ノード装置301(2),301(3),301(4)はノード装置301(1)が依存関係の切断点であると認識しているため、ノード装置301(2),301(3),301(4)によって送信されたパケットによって、C3→C4→C5→C6→C1のようにリンクの依存関係が形成されることになる。一方、ノード装置301(5),301(0),301(1)はノード装置301(2)が依存関係の切断点であると認識しているため、ノード装置301(5),301(0),301(1)によって送信されたパケットは、C6→C1→C2のような依存関係を形成する。このときC2→C3の依存関係が存在しないのでサイクルは形成されず、デッドロックは起こり得ない。
【0077】
次に逆方向のループに関して着目すると、ノード装置301(2),301(3),301(4)はノード装置301(1)が依存関係の切断点であると認識しているため、ノード装置301(2),301(3),301(4)によって送信されたパケットによって、C9→C10 →C11 のようにリンクの依存関係が形成されることになる。一方、ノード装置301(5),301(0),301(1)はノード装置301(2)が依存関係の切断点であると認識しているため、ノード装置301(5),301(0),301(1)によって送信されたパケットは、C12 →C7→C8→C9→C10 のような依存関係を形成する。このときC11 →C12 の依存関係が存在しないのでサイクルは形成されず、デッドロックは起こり得ない。
【0078】
従ってこの双方向リングネットワークにおいては、制御用特殊パケットがネットワークを巡回中にもデッドロックは起こり得ない。
【0079】
次に、制御用特殊パケットがノード装置301(1)に到達した後の動作を図1を用いて説明する。制御用特殊パケットは順方向ループの入力ポート116 から入力バッファ部110 に入力される。入力バッファ部110 内のバッファは First In First Out の規則に従ってサービスを行うため、制御用特殊パケットのサービスの順番になるまで何も特別な処理は行われない。サービス順になると、入力バッファ部110 は、制御用特殊パケットによって示される新しい依存関係の切断点が自分のノード番号と一致することを認識し、パケットを廃棄する。このとき同時に、入力バッファ部110 は切断点記録レジスタ102 の内容を2から1に書き換える。以後、ノード装置301(1)においては依存関係の切断点はノード装置301(1)にあるものとしてルートを決定する。
【0080】
以上説明したように、制御用特殊パケットがノード装置301(2)から順方向ループに沿って301(1)まで到達することによって、リングネットワークを構成するすべてのノード装置301(0)〜(5) が依存関係の切断点を301(1)にあるものとして認識し、ネットワークにおけるパケットのルートが変更される。但しネットワークがワームホールルーティングを採用している場合には、各ノードにおける切断点記録レジスタ102 の更新に際し、パケット単位で処理が完結している必要があることに注意しなければならない。
【0081】
依存関係の切断点をノード装置301(2)から順方向のループに沿ってノード装置301(3)に移動させる場合には、制御用制御パケットをノード装置301(2)から逆方向ループに沿ってノード装置301(3)まで到達させることによって実現可能である。
【0082】
次に本発明の第二の実施例として、請求項3,4に示した発明を実施した例を説明する。
【0083】
図6は、請求項3,4にかかる本発明を実施した双方向リングネットワークを構成するノード装置101aの一例である。上記ノード装置101aは、図1に示した請求項1,2にかかる発明を実施した双方向リングネットワークを構成するノード装置101 とほぼ同様の構成を有している。そのため共通点については説明を省略し、相違点のみを説明する。
【0084】
図6に示したノード装置101aにおいては、図1に示したノード装置101 と比較してノード数記録レジスタ601 と加算器602 とが追加され、さらにルート決定手段105 の代わりにルート決定手段105aを備えている。ノード数記録レジスタ601 はリングネットワークを構成するノード装置の数を記録するレジスタである。ノード数記録レジスタ601 の値はネットワークの運用開始前に設定される値であり、入力バッファ部108,110,113 の指示によって書き込み可能とする。但し図においては書きこみ手段を省略している。(専用線によって書き込み可能としても良い。)ノード数記録レジスタ601 の値は加算器602 に入力される。ノード数記録レジスタ601 には、ネットワークを構成するノード装置数の最大値を記録するに十分なサイズが必要とされる。
【0085】
加算器602 は、ノード数記録レジスタ601 の値と減算器106 の出力値とを加算する回路であり、出力値はルート決定手段105aに入力されている。加算器602 は減算器106 と同じビット幅を必要とする。
【0086】
次にノード装置101aの動作について説明する。
【0087】
ノード装置101aがリングネットワークを構成する他のノード装置からパケットを受信した場合の動作は、図1に示したノード装置の場合と変わらない。処理装置からパケットを受信した場合もほとんど同様であるが、ルート決定手段105aの動作が異なる。
【0088】
ルート決定手段105aによるパケットの出力先の決定方法を図7の流れ図を用いて説明する。但し本実施例では、送信元ノード番号と送信先ノード番号が同じケース、つまり自分自身への通信は起こり得ないものと仮定する。
【0089】
図7によるルート決定方法においては、切断点記録レジスタ102 に指定された値と同じ番号を持つノード装置が順方向のループの依存関係の切断点となり、上記ノード装置の順方向ループに沿って一つ先に接続されたノード装置が逆方向のループの依存関係の切断点となる。
【0090】
まずステップ701 では減算器106 の値を確認する。この値はノード番号記録レジスタ104 と切断点記録レジスタ102 の値の差分である。この値が0である場合には、このノード装置101a自身は順方向のループの依存関係の切断点となっている。従って順方向のループを使用すればネットワーク中のどのノード装置であっても通信可能である。また、順方向に沿って一つだけ先にあるノード装置が逆方向のループの依存関係の切断点となっている。従ってやはり逆方向のループによってもネットワーク中のどのノード装置に対しても通信可能となる。この場合ステップ702 に示すようにパケットの出力先は任意である。どちらのループにパケットを送出した場合であっても、デッドロックは発生しない。
【0091】
送出方向が任意である場合には、図1に示したノード装置101 の動作例の場合と同様、何らかの方法によって送出方向を決定する必要がある。入力バッファ部108 は、送出方向が順方向ループに決定した場合には出力制御部112 に、送出方向が逆方向ループに決定した場合には出力制御部111 に、パケットを出力する。
【0092】
次にステップ703 において、再び減算器106 の値を確認する。この値が1である場合には、このノード装置101a自身は逆方向のループの依存関係の切断点となっている。従って逆方向のループを使用すればネットワーク中のどのノード装置であっても通信可能である。また、逆方向に沿って一つだけ先にあるノード装置が、順方向のループの依存関係の切断点となっている。従ってやはり順方向のループによってもネットワーク中のどのノード装置に対しても通信可能となる。この場合ステップ704 に示すようにパケットの出力先は任意である。どちらのループにパケットを送出した場合であっても、デッドロックは発生しない。
【0093】
ノード装置101a自身のノード番号が0である場合、逆方向のループの依存関係の切断点であっても、ステップ703 においてそれが発見できない。これを発見するために次のステップ705 において加算器602 の出力値を確認する。この値はノード数記録レジスタ601 と減算器106 の値の和である。この値が1となるのは、ネットワークを構成するノード装置数(すなわちノード数記録レジスタ601 の値)をNとして、切断点記録レジスタ102 の値がN−1、ノード番号記録レジスタ104 の値が0の場合のみである。ノード装置101aは逆方向のループの依存関係の切断点となるので、ステップ703 の場合と同様、送出方向は任意となる(ステップ706 )。
【0094】
次にステップ707 において、減算器107 の出力値を確認する。この値は送信先記録レジスタ103 と切断点記録レジスタ102 の値の差分である。この値が0のとき、送信先のノードは順方向のループの依存関係の切断点となっており、順方向のループを使用して通信可能である。しかし、このノード装置から順方向のループに沿って一つだけ先に接続されたノード装置が、逆方向のループの依存関係の切断点となっているため、逆方向のループを使用して通信することは不可能である。この場合ステップ708 において送出方向は順方向ループに決定される。入力バッファ部108 のパケットは出力制御部112 に対して出力される。
【0095】
次にステップ709 において、減算器106 の出力値と減算器107 の出力値を比較する。減算器の出力が負であった場合には2の補数の形式で出力されているが、ステップ709 においてはそれぞれの出力値を符号なし整数として扱って比較する。従って減算結果が負の数であった場合には、減算結果が正の数であった場合よりも大きい数値であるとして扱われる。この比較の結果、減算器106 の出力値が減算器107 の出力値よりも大きかった場合、ステップ710 において送出方向は逆方向ループに決定される。この場合入力バッファ部108 のパケットは出力制御部111 に対して出力される。一方、減算器106 の出力値が減算器107 の出力値よりも小さい値であった場合には、ステップ711 において送出方向は順方向ループに決定される。この場合入力バッファ部108 のパケットは出力制御部112 に対して出力される。
【0096】
次に本発明によるノード装置101aを使用して6ノード双方向リングネットワークを構成した場合を例にとり、そのルーティング方向の決定について、図を用いて説明する。
【0097】
6ノード双方向リングネットワークは、図1によるノード装置101 を使用した場合と同様に構成される。このため説明には同じ図3を使用する。ノード装置301(0)〜301(5)はリンクC1〜C12 によってリング状に接続されている。ノード装置301(0)〜301(5)にはそれぞれ計算機などの処理装置が接続されているが、図3では省略している。
【0098】
ここでは切断点記録レジスタ102 に2が記録されている場合を例に取る。この場合、ノード番号が2であるノード装置301(2)が順方向のループの依存関係を切断するノードとなり、ノード番号が3であるノード装置301(3)が逆方向のループの依存関係を切断するノードとなる。この場合のリンクの依存関係を図8に示す。ノード装置301(2)において順方向のループの依存関係が切断されているため、リンクC2からリンクC3への依存関係がない。つまり、リンクC2を使用してノード装置301(2)に到達したパケットは、常にノード装置301(2)が送信先ノードであり、順方向ループのリンクC3を使用してノード装置301(3)に出力されることはない。同様に逆方向のループに関しては、ノード装置301(3)においてループの依存関係が切断されているため、リンクC9からリンクC10 への依存関係がない。従って、リンクC9を使用してノード装置301(3)に到達したパケットは、常にノード装置301(3)が送信先ノードであり、逆方向ループのリンクC10 を使用してノード装置301(2)に出力されることはない。
【0099】
図9は、本発明によるノード装置101aを使用した6ノード双方向リングネットワークにおいて、切断点記録レジスタ102 に保持された値が2である場合、ルート決定手段105aにおいてどのルートが選択されるかを、パケットの送信元ノード番号と送信先ノード番号毎に示したものである。
【0100】
次に、このノード装置101aを使用して構成した双方向リングネットワークにおいて、運用中に依存関係の切断点を変更する場合について説明する。本発明による双方向リングネットワークにおいては、このような依存関係の切断点の移動を、専用線による各ノード装置への指示ではなく、処理装置からのネットワーク管理用のパケットが通常のループ上を伝播することによって行うことが可能となる。
【0101】
図3に示した6ノード双方向リングネットワーク(ノード装置として本発明による図6のノード装置を使用)において、順方向ループの依存関係の切断点をノード装置301(2)からノード装置301(1)に、逆方向ループの依存関係の切断点をノード装置301(3)からノード装置301(2)へと変更する場合の例である。ノード装置301(0)〜301(5)はリンクC1〜C12 によってリング状に接続されており、各ノード装置301(0)〜301(5)には計算機などの処理装置が接続されるが、図では省略している。
【0102】
最初の時点ではノード装置301(0)〜301(5)内の切断点記録レジスタ102 には2が記録されており、ネットワーク中のリンクの依存関係は図8のようになっている。この時点においてノード装置301(2)から、依存関係の切断点を移動させる指示が、制御用特殊パケットとしてネットワークに投入される。
【0103】
制御用特殊パケットがノード装置301(2)に入力された時の動作を図6を用いて説明する。制御用特殊パケットは処理装置と接続された入力ポート114 を使用して入力バッファ部108 に対して入力される。入力バッファ部108 はパケットが制御用特殊パケットであることを判別すると、パケットの出力先を決定する。この場合パケットの出力先はルート決定手段105aによっては設定されず、依存関係の切断点が移動する方向と逆向きのループに沿って移動するように、入力バッファ部108 によって決定される。この例においては依存関係の切断点は逆方向ループと同じ方向(つまりノード装置固有の番号が−1される方向)に移動させるため、パケット自身は順方向ループに沿ってリングを一周する。このために入力バッファ部108 は順方向のループを形成する出力制御部112 に対してパケットを送出する。パケットの送出と同時に、入力バッファ部108 は切断点記録レジスタ102 の内容を2から1に更新する。以後、ノード装置301(2)においては、順方向ループの依存関係の切断点はノード装置301(1)にあるものとし、逆方向ループの依存関係の切断点はノード装置301(2)にあるものとしてルートを決定する。
【0104】
次にノード装置301(3)が制御用特殊パケットを受信してからの動作を図6を用いて説明する。制御用特殊パケットは順方向ループの入力ポート116 から入力バッファ部110 に入力される。入力バッファ部110 内のバッファは First In First Out の規則に従ってサービスを行うため、制御用特殊パケットのサービスの順番になるまで何も特別な処理は行われない。サービス順になると、このパケットは順方向ループに沿って出力制御部112 に渡される。このとき同時に、入力バッファ部110 は切断点記録レジスタ102 の内容を2から1に書き換える。以後、ノード装置301(3)においては、順方向ループの依存関係の切断点はノード装置301(1)にあるものとし、逆方向ループの依存関係の切断点はノード装置301(2)にあるものとしてルートを決定する。
【0105】
ノード装置301(4),301(5),301(0)において、制御用特殊パケットは上記ノード装置301(3)の場合と同様に処理される。
【0106】
制御用特殊パケットがノード装置301(4)においてサービスされた直後の状態を想定し、過渡状態におけるリンクの依存関係を示す。この時点ではノード装置301(2),301(3),301(4)においては、切断点記録レジスタ102 の値は1に更新されているため、順方向ループの依存関係の切断点はノード装置301(1)にあるものと認識し、逆方向ループの依存関係の切断点はノード装置301(2)にあるものと認識している。ノード装置301(5),301(0),301(1)においては、切断点記録レジスタ102 の値は2となっているため、順方向ループの依存関係の切断点はノード装置301(2)にあるものと認識し、逆方向ループの依存関係の切断点はノード装置301(3)にあるものと認識している。
【0107】
まず順方向のループに関して着目すると、ノード装置301(2),301(3),301(4)はノード装置301(1)が依存関係の切断点であると認識しているため、ノード装置301(2),301(3),301(4)によって送信されたパケットによって、C3→C4→C5→C6→C1のようにリンクの依存関係が形成されることになる。一方、ノード装置301(5),301(0),301(1)はノード装置301(2)が依存関係の切断点であると認識しているため、ノード装置301(5),301(0),301(1)によって送信されたパケットは、C6→C1→C2のような依存関係を形成する。このときC2→C3の依存関係が存在しないのでサイクルは形成されず、デッドロックは起こり得ない。
【0108】
次に逆方向のループに関して着目すると、ノード装置301(2),301(3),301(4)はノード装置301(2)が依存関係の切断点であると認識しているため、ノード装置301(2),301(3),301(4)によって送信されたパケットによって、C11 →C12 →C7→C8→C9→C10 のようにリンクの依存関係が形成されることになる。一方、ノード装置301(5),301(0),301(1)はノード装置301(3)が依存関係の切断点であると認識しているため、ノード装置301(5),301(0),301(1)によって送信されたパケットは、C12 →C7→C8→C9のような依存関係を形成する。このときC10 →C11 の依存関係が存在しないのでサイクルは形成されず、デッドロックは起こり得ない。
【0109】
従ってこの双方向リングネットワークにおいては、制御用特殊パケットがネットワークを巡回中にもデッドロックは起こり得ない。
【0110】
次に、制御用特殊パケットがノード装置301(1)に到達した後の動作を図6を用いて説明する。制御用特殊パケットは順方向ループの入力ポート116 から入力バッファ部110 に入力される。入力バッファ部110 内のバッファは First In First Out の規則に従ってサービスを行うため、制御用特殊パケットのサービスの順番になるまで何も特別な処理は行われない。サービス順になると、入力バッファ部110 は、このパケットに従って切断点記録レジスタ102 の内容を2から1に更新する。このとき更新後の切断点記録レジスタの値と、自身のノード装置番号が一致することを認識すると、入力バッファ部110 は制御用特殊パケットを廃棄する。
【0111】
以上説明したように、制御用特殊パケットがノード装置301(2)から順方向ループに沿って301(1)まで到達することによって、リングネットワークを構成するすべてのノード装置301(0)〜301(5)が、順方向ループの依存関係の切断点をノード装置301(2)からノード装置301(1)に、逆方向ループの依存関係の切断点をノード装置301(3)からノード装置301(2)へと移動させ、ネットワークにおけるパケットのルートが変更される。但しネットワークがワームホールルーティングを採用している場合には、各ノードにおける切断点記録レジスタ102 の更新に際し、パケット単位で処理が完結している必要があることに注意しなければならない。
【0112】
依存関係の切断点を順方向のループに沿って移動させる場合には、制御用特殊パケットをノード装置301(3)から逆方向ループに沿って一周させることによって実現可能である。制御用特殊パケットはノード装置の入力バッファ部113 において、更新後の切断点記録レジスタ102 の値と、自身のノード番号(ノード番号記録レジスタ104 の値)を比較するため、パケット自身が逆方向ループ上を移動した場合には、制御用特殊パケット自身は発行元のノード装置301(3)まで到達する。
【0113】
次に、請求項8に示した発明について説明する。
【0114】
図3の6ノード双方向リングネットワークにおいて、各ノード装置301(0)〜301(5)内の切断点記録レジスタ102 の内容が2である場合を例に取る。この場合既に説明したように、各ノード間リンクの依存関係は図8のように示され、パケットの送出方向はルート決定手段105aによって図9のように決定される。パケットが任意の方向に送出できるのは、送信元ノード番号が2もしくは3の場合である。パケットの送出方向決定は図7に示した方法に従っているが、送出方向が任意であると判定された後、
・ステップ702 において送出方向が任意となった場合には逆方向ループに対して送出
・ステップ704,706 において送出方向が任意となった場合には順方向ループに対して送出のように設定すると、リンクC3とリンクC10 、すなわちノード装置301(2)とノード装置301(3)の間のリンクはまったく使用されなくなる。上記のような設定によってノード装置301(2)と301(3)の間のリンクを未使用状態に設定した後、リンクに使用するケーブル等の交換作業や、ノードの追加作業を行うことが可能になる。
【0115】
【発明の効果】
以上、説明したように、本発明においては、次のような効果を奏する。
【0116】
第一の効果は、双方向リングネットワークにおけるパケットのルートを、ネットワークの状態に応じて容易に変更できるということである。その理由は、切断点記録レジスタに記録されている切断点のノード装置のノード番号に基づいて、デッドロックの発生しないパケットのルートを自動的に決定するルート決定手段を備えているので、切断点記録レジスタの値を変更するという簡単な操作を行うだけでパケットのルートを変更できるからである。
【0117】
第二の効果は、上記依存関係の切断点の変更に際し、変更をネットワークの通常パスを流れるパケットによって可能としたことにより、変更をノード装置に指示するための専用接続が不要となることである。
【0118】
第三の効果は、上記依存関係の切断点の変更を、ネットワークの運用を継続しつつ行えることである。
【0119】
第四の効果は、上記依存関係の切断点を変更することによって、双方向リングネットワークの特定のリンクを未使用状態に設定することによって、ネットワークの保守、拡張が容易に行える環境を提供できることである。
【図面の簡単な説明】
【図1】 請求項1,2,9,10にかかるノード装置101 の構成例を示すブロック図である。
【図2】 ノード装置101 内のルート決定手段105 が行う処理の一例を示す流れ図である。
【図3】 6ノード双方向リングネットワークの構成例を示すブロック図である。
【図4】 図3の6ノード双方向リンクネットワークをノード装置101 を用いて構成した場合の、リンク間の依存関係を示す有向グラフの一例を示す図である。
【図5】 図3の6ノード双方向リンクネットワークをノード装置101 を用いて構成した場合の、ルーティング設定の一例を示す図である。
【図6】 請求項3,4,11,12にかかるノード装置101aの構成例を示すブロック図である。
【図7】ノード装置101a内のルート決定手段105aが行う処理の一例を示す流れ図である。
【図8】 図3の6ノード双方向リンクネットワークをノード装置101aを用いて構成した場合の、リンク間の依存関係を示す有向グラフの一例を示す図である。
【図9】 図3の6ノード双方向リンクネットワークをノード装置101aを用いて構成した場合の、ルーティング設定の一例を示す図である。
【図10】単方向リングネットワークにおけるデッドロックの一例を示す図である。
【図11】 従来技術による4ノード双方向リングネットワークの構成例を示すブロック図である。
【図12】 従来技術による4ノード双方向リングネットワークにおけるリンク間の依存関係を示す有向グラフの一例を示す図である。
【図13】 従来技術による4ノード双方向リングネットワークにおいて、ルーティング方向制限によるデッドロック回避を実施した場合のリンク間の依存関係を示す有向グラフの一例を示す図である。
【図14】 従来技術による4ノード双方向リングネットワークにおいて、ルーティング制限によるデッドロック回避を実施した場合のルーティング設定の一例を示す図である。
【符号の説明】
101,101a…ノード装置
102 …切断点記録レジスタ
103 …送信先記録レジスタ
104 …ノード番号記録レジスタ
105,105a …ルート決定手段
106,107 …減算器
108,110,113 …入力バッファ部
109,111,112 …出力制御部
114,116,119 …入力ポート
115,117,118 …出力ポート
301(0)〜301(5)…ノード装置
C1〜C12 …リンク
601 …ノード数記録レジスタ
602 …加算器
1001(0) 〜1001(3) …ノード装置
1002(0) 〜1002(3) …ループを構成するバッファ
1003(0) 〜1003(3) …処理装置
1004(0) 〜1004(3) …処理装置からの入力を受けるバッファ
1005(0) 〜1005(3) …パケット
1101(0) 〜1101(3) …ノード装置
1102(0) 〜1102(3) …処理装置
1103(0) 〜1103(3) …順方向ループを構成するバッファ
1104(0) 〜1104(3) …逆方向ループを構成するバッファ
1105(0) 〜1105(3) …処理装置からの入力を受けるバッファ
Claims (19)
- 複数のノード装置がリング状に双方向のリンクによって接続され、さらに前記各ノード装置にそれぞれ異なる処理装置が接続され、処理装置からのパケットをノード装置間で送受信しつつ目的の処理装置に到達させる双方向リングネットワークに於いて、
前記各ノード装置には、リングに沿って順にノード番号が付されており、且つ、
前記各ノード装置が、
自ノード装置に接続されている処理装置からのパケットを保持して到着順にサービスする入力バッファと、
デッドロック回避のための切断点とするノード装置のノード番号を記録する書き換え可能な切断点記録レジスタと、
前記入力バッファに保持されているパケットの出力先に関し、前記双方向のリンクの内のどちらに送出すべきかを判定するルート決定手段であって、前記切断点記録レジスタの値によって示される切断点のノード装置が自ノード装置である場合、および前記入力バッファに保持されているパケットの送信先のノード装置である場合は、パケットの送出方向を任意と判定し、それ以外の場合は、自ノード装置と前記切断点のノード装置との間の所定方向のホップ数と、前記パケットの送信先のノード装置と前記切断点のノード装置との間の前記所定方向のホップ数とに基づいてパケットの送出方向を決定するルート決定手段と、
を有することを特徴とする双方向リングネットワーク。 - 請求項1記載の双方向リングネットワークにおいて、
前記各ノード装置が、
自ノード装置のノード番号から前記切断点記録レジスタに記録されているノード番号を減算し、結果を符号付整数で出力する第一の減算器と、
前記入力バッファに保持されているパケットの送信先のノード装置のノード番号から前記切断点記録レジスタに記録されているノード番号を減算し、結果を符号付整数で出力する第二の減算器とを有し、
前記ルート決定手段が、
前記第一の減算器の出力が0である場合は、パケットの送出方向を任意と判定する第一のステップと、
前記第二の減算器の出力が0である場合は、パケットの送出方向を任意と判定する第二のステップと、
前記第一の減算器の出力値と前記第二の減算器の出力値とを符号なし整数として比較し、前者の方が大きい場合にはパケットの送出方向をノード番号が降順となる逆方向に、後者の方が大きい場合にはパケットの送出方向をノード番号が昇順となる順方向に決定する第三のステップとを行う構成を有することを特徴とする双方向リングネットワーク。 - 請求項1記載の双方向リングネットワークにおいて、
前記切断点記録レジスタには、順方向ループの切断点にするノード装置のノード番号が記録され、且つ、
前記ルート決定手段が、
前記切断点記録レジスタの値によって示される順方向ループの切断点とするノード装置が、自ノード装置である場合は、パケットの送出方向を任意と判定し、
前記順方向ループの切断点のノード装置よりも順方向ループに沿って1つ先のノード装置が、自ノード装置である場合は、パケットの送出方向を任意と判定し、
それ以外の場合は、自ノード装置と前記順方向ループの切断点のノード装置との間の所定方向のホップ数と、パケットの送信先のノード装置と前記順方向ループの切断点のノード装置との間の前記所定方向のホップ数とに基づいて、パケットの送出方向を決定する構成を有することを特徴とする双方向リングネットワーク。 - 請求項1記載の双方向リングネットワークにおいて、
前記切断点記録レジスタには、順方向ループの切断点とするノード装置のノード番号が記録され、
前記各ノード装置が、
自ノード装置のノード番号から前記切断点記録レジスタに記録されているノード番号を減算し、結果を符号付整数で出力する第一の減算器と、
前記入力バッファに保持されているパケットの送信先のノード装置のノード番号から前記切断点記録レジスタに記録されているノード番号を減算し、結果を符号付整数で出力する第二の減算器とを有し、
前記ルート決定手段が、
前記第一の減算器の出力が0である場合は、パケットの送出方向を任意と判定する第一のステップと、
前記第一の減算器の出力が1である場合は、パケットの送出方向を任意と判定する第二のステップと、
前記切断点記録レジスタの値が0であり、且つ自ノード装置固有のノード番号が双方向リングネットワーク中で最大の値である場合は、パケットの送出方向を任意と判定する第三のステップと、
前記第二の減算器の出力が0である場合は、パケットの送出方向をノード番号が昇順となる順方向に決定する第四のステップと、
前記第一の減算器の出力値と前記第二の減算器の出力値とを符号なし整数として比較し、前者の方が大きい場合はパケットの送出方向をノード番号が降順になる逆方向に、後者の方が大きい場合はパケットの送出方向をノード番号が昇順になる順方向に決定する第五のステップとを行う構成を有することを特徴とする双方向リングネットワーク。 - 複数のノード装置がリング状に双方向のリンクによって接続され、さらに前記各ノード装置にそれぞれ異なる処理装置が接続され、処理装置からのパケットをノード装置間で送受信しつつ目的の処理装置に到達させる双方向リングネットワークに於いて、
前記各ノード装置には、リングに沿って順にノード番号が付されており、且つ、
前記各ノード装置が、
自ノード装置に接続されている処理装置からのパケットを保持して到着順にサービスする入力バッファと、
デッドロック回避のための切断点とするノード装置のノード番号を記録する書き換え可能な切断点記録レジスタと、
前記入力バッファに保持されているパケットの出力先に関し、前記切断点記録レジスタの値から、前記双方向のリンクの内のどちらに送出すべきかを判定するルート決定手段と、
切断点記録レジスタに記録されているノード番号の変更を指示する制御用特殊パケットが、自ノード装置に接続されている処理装置、もしくは隣接するノード装置から到着した場合、前記制御用特殊パケットに先行するパケットの処理が完了してから自ノード装置内の切断点記録レジスタの値を前記制御用特殊パケットの指示に従って更新する構成を有することを特徴とする双方向リングネットワーク。 - 請求項5記載の双方向リングネットワークにおいて、
前記各ノード装置が、
自ノード装置に接続されている処理装置から到着した、前記切断点記録レジスタに記録されているノード番号の変更を指示する制御用特殊パケットを隣接するノード装置の内の一方のノード装置へ送出する構成を有すると共に、隣接する一方のノード装置から到着した制御用特殊パケットを隣接する他方のノード装置へ送出する構成を有することを特徴とする双方向リングネットワーク。 - 請求項6記載の双方向リングネットワークにおいて、
前記各ノード装置が、
自ノード装置に接続されている処理装置から制御用特殊パケットが到着した場合、該制御用特殊パケットの内容と現時点の順方向ループの切断点のノード装置とに基づいて切断点の双方向リングネットワーク上での移動方向を判断し、前記制御用特殊パケットが流れる方向が前記切断点の移動方向とは反対の方向になるように、前記制御用特殊パケットを隣接するノード装置の内の何れか一方のノード装置へ送出する構成を有することを特徴とする双方向リングネットワーク。 - 請求項4記載の双方向リングネットワークに於いて、
前記ルート決定手段が、
前記第一のステップにおいて送出方向を任意と判定した場合にはパケットの送出方向をノード番号が降順となる方向に決定し、前記第二もしくは第三のステップにおいて送出方向を任意と判定した場合にはノード番号が昇順となる方向にパケットの送出方向を決定する構成を有することを特徴とする双方向リングネットワーク。 - 自ノード装置に接続される処理装置からのパケットを保持して到着順にサービスする入力バッファと、
デッドロック回避のための切断点とするノード装置のノード番号を記録する書き換え可能な切断点記録レジスタと、
前記入力バッファに保持されているパケットの出力先に関し、自ノード装置に接続される双方向のリンクの内のどちらに送出すべきかを判定するルート決定手段であって、前記切断点記録レジスタの値によって示される切断点のノード装置が自ノード装置である場合、および前記入力バッファに保持されているパケットの送信先のノード装置である場合は、パケットの送出方向を任意と判定し、それ以外の場合は、自ノード装置と前記切断点のノード装置との間の所定方向のホップ数と、前記パケットの送信先のノード装置と前記切断点のノード装置との間の前記所定方向のホップ数とに基づいてパケットの送出方向を決定するルート決定手段と、
を有することを特徴とするノード装置。 - 請求項9記載のノード装置において、
自ノード装置のノード番号から前記切断点記録レジスタに記録されているノード番号を減算し、結果を符号付整数で出力する第一の減算器と、
前記入力バッファに保持されているパケットの送信先のノード装置のノード番号から前記切断点記録レジスタに記録されているノード番号を減算し、結果を符号付整数で出力する第二の減算器とを有し、且つ、
前記ルート決定手段が、
前記第一の減算器の出力が0である場合は、前記パケットの送出方向を任意と判定する第一のステップと、
前記第二の減算器の出力が0である場合は、前記パケットの送出方向を任意と判定する第二のステップと、
前記第一の減算器の出力値と前記第二の減算器の出力値とを符号なし整数として比較し、前者の方が大きい場合にはパケットの送出方向をノード番号が降順となる逆方向に、後者の方が大きい場合にはパケットの送出方向をノード番号が昇順となる順方向に決定する第三のステップとを行う構成を有することを特徴とするノード装置。 - 請求項9記載のノード装置において、
前記切断点記録レジスタには、順方向ループの切断点にするノード装置のノード番号が記録され、
前記ルート決定手段が、
前記切断点記録レジスタの値によって示される順方向ループの切断点とするノード装置が自ノード装置である場合は、パケットの送出方向を任意と判定し、
前記順方向ループの切断点のノード装置よりも順方向ループに沿って1つ先のノード装置が自ノード装置である場合は、パケットの送出方向を任意と判定し、
それ以外の場合は、自ノード装置と前記順方向ループの切断点のノード装置との間の所定方向のホップ数と、前記パケットの送信先のノード装置と前記順方向ループの切断点のノード装置との間の前記所定方向のホップ数とに基づいてパケットの送出方向を決定する構成を有することを特徴とするノード装置。 - 請求項9記載のノード装置において、
前記切断点記録レジスタには、順方向ループの切断点とするノード装置のノード番号が記録され、且つ、
自ノード装置のノード番号から前記切断点記録レジスタに記録されているノード番号を減算し、結果を符号付整数で出力する第一の減算器と、
前記入力バッファに保持されているパケットの送信先のノード装置のノード番号から前記切断点記録レジスタに記録されているノード番号を減算し、結果を符号付整数で出力する第二の減算器とを有し、且つ、
前記ルート決定手段が、
前記第一の減算器の出力が0である場合は、パケットの送出方向を任意と判定する第一のステップと、
前記第一の減算器の出力が1である場合は、パケットの送出方向を任意と判定する第二のステップと、
前記切断点記録レジスタの値が0であり、且つ自ノード装置固有のノード番号が双方向リングネットワーク中で最大の値である場合は、パケットの送出方向を任意と判定する第三のステップと、
前記第二の減算器の出力が0である場合は、パケットの送出方向をノード番号が昇順となる順方向に決定する第四のステップと、
前記第一の減算器の出力値と前記第二の減算器の出力値とを符号なし整数として比較し、前者の方が大きい場合はパケットの送出方向をノード番号が降順となる逆方向に、後者の方が大きい場合はパケットの送出方向をノード番号が昇順となる順方向に決定する第五のステップとを行う構成を有することを特徴とするノード装置。 - 自ノード装置に接続される処理装置からのパケットを保持して到着順にサービスする入力バッファと、
デッドロック回避のための切断点とするノード装置のノード番号を記録する書き換え可能な切断点記録レジスタと、
前記入力バッファに保持されているパケットの出力先に関し、前記切断点記録レジスタの値から、自ノード装置に接続される双方向のリンクの内のどちらに送出すべきかを判定するルート決定手段と、
切断点記録レジスタに記録されているノード番号の変更を指示する制御用特殊パケットが、自ノード装置に接続される処理装置、もしくは自ノード装置に双方向のリンクによって接続される隣接ノード装置から到着した場合、前記制御用特殊パケットに先行するパケットの処理が完了してから自ノード装置内の切断点記録レジスタの値を前記制御用特殊パケットの指示に従って更新する構成を有することを特徴とするノード装置。 - 請求項13記載のノード装置において、
自ノード装置に接続される処理装置から到着した、切断点記録レジスタに記録されているノード番号の変更を指示する制御用特殊パケットを、隣接するノード装置の内の一方のノード装置へ送出する構成を有すると共に、隣接する一方のノード装置から到着した制御用特殊パケットを隣接する他方のノード装置へ送出する構成を有することを特徴とするノード装置。 - 請求項14記載のノード装置に於いて、
自ノード装置に接続される処理装置から制御用特殊パケットが到着した場合、該制御用特殊パケットの内容と前記切断点記録レジスタの内容とに基づいて切断点の双方向リングネットワーク上での移動方向を判断し、前記制御用特殊パケットが流れる方向が前記切断点の移動方向とは反対の方向になるように、前記制御用特殊パケットを隣接するノード装置の内の一方のノード装置へ送出する構成を有することを特徴とするノード装置。 - 請求項12記載のノード装置に於いて、
前記ルート決定手段が、
前記第一のステップにおいて送出方向を任意と判定した場合には、パケットの送出方向をノード番号が降順となる逆方向に決定し、前記第二もしくは第三のステップにおいて送出方向を任意と判定した場合には、パケットの送出方向をノード番号が昇順となる順方向に決定する構成を有することを特徴とするノード装置。 - 複数のノード装置がリング状に双方向のリンクによって接続され、さらに前記各ノード装置にそれぞれ異なる処理装置が接続され、処理装置からのパケットをノード装置間で送受信しつつ目的の処理装置に到達させる双方向リングネットワークであって、
前記各ノード装置には、リングに沿って順にノード番号が付されており、且つ、
前記各ノード装置が、
自ノード装置に接続されている処理装置からのパケットを保持して到着順にサービスする入力バッファと、
デッドロック回避のための切断点とするノード装置のノード番号を記録する書き換え可能な切断点記録レジスタと、
前記入力バッファに保持されているパケットの出力先に関し、前記切断点記録レジスタの値から、前記双方向のリンクの内のどちらに送出すべきかを判定するルート決定手段と、
を有する双方向リングネットワークを制御する双方向リングネットワーク制御方法であって、
自ノード装置に接続されている処理装置もしくはリングを形成している隣接したノード装置から切断点記録レジスタに記録されているノード番号の変更を指示する制御用特殊パケットが到着した場合、前記制御用特殊パケットに先行するパケットの処理が完了してから前記制御用特殊パケットによって、自ノード装置内の切断点記録レジスタの値が更新されることを特徴とする双方向リングネットワーク制御方法。 - 請求項17記載の双方向リングネットワーク制御方法において、
前記処理装置から到着した制御用特殊パケットが、
前記処理装置に接続されているノード装置内の切断点記録レジスタの値を更新し、
さらにリングネットワーク上を各ノード装置の前記切断点記録レジスタの内容を更新しつつ一周することにより、
デッドロックを回避するための依存関係の切断点を双方向リングネットワーク上で移動させることを特徴とする双方向リングネットワーク制御方法。 - 請求項18記載の双方向リングネットワーク制御方法において、
前記制御用特殊パケットは、
デッドロックを回避するための依存関係の切断点を双方向リングネットワーク上で移動させる方向とは逆の回転方向にリングネットワーク上を一周することを特徴とする双方向リングネットワーク制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001150590A JP3758523B2 (ja) | 2001-05-21 | 2001-05-21 | 双方向リングネットワーク、ノード装置および双方向リングネットワーク制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001150590A JP3758523B2 (ja) | 2001-05-21 | 2001-05-21 | 双方向リングネットワーク、ノード装置および双方向リングネットワーク制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002344463A JP2002344463A (ja) | 2002-11-29 |
JP3758523B2 true JP3758523B2 (ja) | 2006-03-22 |
Family
ID=18995579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001150590A Expired - Fee Related JP3758523B2 (ja) | 2001-05-21 | 2001-05-21 | 双方向リングネットワーク、ノード装置および双方向リングネットワーク制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3758523B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4129023B2 (ja) * | 2003-06-02 | 2008-07-30 | 富士通株式会社 | ノード装置及びrprネットワーク |
US7765385B2 (en) * | 2007-04-18 | 2010-07-27 | International Business Machines Corporation | Fault recovery on a parallel computer system with a torus network |
JP4639223B2 (ja) * | 2007-12-27 | 2011-02-23 | 株式会社日立製作所 | ストレージサブシステム |
JP5233553B2 (ja) * | 2008-09-29 | 2013-07-10 | 沖電気工業株式会社 | ネットワーク経路設定システム、ネットワーク経路設定方法、及び、ネットワーク設定サーバ |
-
2001
- 2001-05-21 JP JP2001150590A patent/JP3758523B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002344463A (ja) | 2002-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5895202B2 (ja) | 中継器、中継器の制御方法、およびコンピュータプログラム | |
JP4808513B2 (ja) | システムオンチップの大域的非同期通信アーキテクチャ | |
US6728205B1 (en) | Method and apparatus for automatic protection switching | |
US7809006B2 (en) | Routing with virtual channels | |
US9600440B2 (en) | Network topology of hierarchical ring with recursive shortcuts | |
US7983195B2 (en) | Method of routing virtual links in a frame-switching network with guaranteed determinism | |
JPH0888627A (ja) | ネットワーク内ノードのグループ化およびデータ転送方法 | |
Kentis et al. | Effects of port congestion in the gate control list scheduling of time sensitive networks | |
US6545977B2 (en) | Methods and apparatus for routing signals in a ring network | |
CN116915708A (zh) | 路由数据包的方法、处理器及可读存储介质 | |
CN104125149A (zh) | 优化软件定义的网络的网络元件的配置***的方法和设备 | |
Oh et al. | RT-SDN: adaptive routing and priority ordering for software-defined real-time networking | |
Kurbanov et al. | Deadlock-free routing in spacewire onboard network | |
JP3758523B2 (ja) | 双方向リングネットワーク、ノード装置および双方向リングネットワーク制御方法 | |
JP2002359634A (ja) | 通信経路設計方法、通信経路設計装置及びプログラム | |
KR20050087838A (ko) | 리턴 경로 결정 방법 및 집적 회로 | |
CN116418492A (zh) | 一种路由建立方法、***及量子密码网络 | |
CN109600431B (zh) | 面向移动通信网路的内容增量传输方法、移动通信*** | |
JP2535874B2 (ja) | パケット交換網のル−ティング制御方式 | |
JP2016225729A (ja) | ネットワークシステム、データ転送制御方法及び制御装置 | |
JP3821377B2 (ja) | 双方向リングネットワーク、ノード装置、および双方向リングネットワークのルーティング情報構成方法 | |
EP4383672A1 (en) | Deadlock prevention of switch memory overflow | |
CN117135110B (zh) | 一种自适应路由方法、装置、***、设备及存储介质 | |
JP2003234764A (ja) | 光バースト信号ルーチング方式 | |
He et al. | Enhancing Throughput for TTEthernet via Co-optimizing Routing and Scheduling: An Online Time-Varying Graph-based Method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050830 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050913 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051111 |
|
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: 20051213 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051226 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100113 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |