(57)【特許請求の範囲】
【請求項１】
複数の情報処理装置がそれぞれに対応して備えられる通信ノードを有するネットワーク上で、選択された情報処理装置同士が通信パケットを用いて通信する通信方法において、
通信パケットに優先度を付け、
情報処理装置の通信ノードはそれぞれ、そこを通過する通信パケットの優先度に応じて通信パケットの経路を同時に通信可能な別々の経路に設定或いは変更して、専用回線或いは迂回路も実現可能にし、通信遅延およびバンド幅を制御し、かつ、
前記通信パケットの優先度を通信ノード毎に付け替えることにより優先度を高い方向或いは低い方向に変更して、ルーティングを制御する、
ことから成る分散管理型通信方法。
【請求項２】
複数の情報処理装置がそれぞれに対応して備えられる通信ノードを有するネットワーク上で、選択された情報処理装置同士が通信パケットを用いて通信する通信装置において、
通信パケットに優先度を付け、
情報処理装置の通信ノードはそれぞれ、そこを通過する通信パケットの優先度に応じて通信パケットの経路を同時に通信可能な別々の経路に設定或いは変更して、専用回線或いは迂回路も実現可能にし、通信遅延およびバンド幅を制御し、かつ、
前記通信パケットの優先度を通信ノード毎に付け替えることにより優先度を高い方向或いは低い方向に変更して、ルーティングを制御する、
ことから成る分散管理型通信装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、各種ロボット、自動車、プラント、ホームオートメーション等の種々の分散実時間制御を実現するために必要な実時間通信（ハードリアルタイム通信）、及び、画像、音声等のマルチメディアデータを滑らかに伝送するために必要な実時間通信（ソフトリアルタイム通信）を可能にする通信方法及び方式に関するものである。
【０００２】
図１では人間型ロボットにおける分散実時間制御システムの例を示しているが、この例ではロボットの各機能ブロック（頭、目、耳、口、各関節等）を制御する情報処理装置間を本発明を用いた実時間通信リンクを用いて適切なトポロジで結合し、人間型ロボットシステムを構築している。
【０００３】
この例では、各モータやセンサ等を制御するためには遅延時間を保証するハードリアルタイム通信が必要であり、また、画像や音声データを滑らかに送受信するためにはバンド幅を保証するソフトリアルタイム通信が必要である。
【０００４】
【従来の技術】
USBやIEEE１３９４等の従来の実時間通信（アイソクロナス転送等）では、通信データのバンド幅の集中管理を行なっている主通信制御管理装置にあらかじめ通信のバンド幅を予約しておき、主装置がバンド幅を一元管理している。つまり、主通信制御管理装置がバンド幅を集中管理することによって、実時間通信を実現している。このような集中管理方式では大規模な実時間通信システムの構築は困難であり（USBでは最大１２７ノード、IEEE１３９４では最大６３ノード）、 また、主通信制御管理装置が故障した場合は全ての通信が停止する。
【０００５】
従来方式では、通信パケットに優先度が付加されていて追い越しをする実用システムは存在しないし、実験的な通信パケットを追い越す方式においても、短い遅延時間で通信パケットの追い越しを実現したり、通信パケットの再送を不要にしたり、通信ノード毎に優先度を付け替えて通信パケットの加速／減速を行い実時間通信を制御するということはない。
特開昭62-260452号公報では、多段相互結合網(MIN)を応用し、通信パケットに優先度を付けてパケットおよび回線交換を実現している。この方式は、元々、電話回線向けの技術であり、電話回線における被設定呼要求、呼設定要求、非同期データ要求などに優先度をつけてパケットまたは回線交換を可能にしている。音声データを通信する音声パケットを優先し、音声パケットに関してソフトリアルタイム通信を実現し、それ以外の余ったバンド幅でノンリアルタイムのデータのパケット通信を行うことを実現している。しかしながら、この方式では、ポートの数に依存した複数段のサブスイッチを経由して通信パケットが入出力されるため、ポート数を増加させるとバンド幅を大きくすることができるがサブスイッチの段数が増えて遅延時間まで大きくなってしまう。さらに、通信を行うためには最初に回線を開く必要があり、最初の通信の遅延が大きい。また、低い優先度のパケットは回線が開かないために送信元から送信を行うことができない状態が長期間続く可能性がある。したがって、音声通信のようなソフトリアルタイム通信には向いているが、制御用途のハードリアルタイム通信には不向きである。
【０００６】
従来方式では、同じネットワークアドレスを持つ通信パケットはある瞬間には必ず同じ経路をとって送信元から受信先に送信され、複数経路を通って同時に専用回線や迂回路を設けて通信することはできない。
特開昭58-151747号公報では、パケット交換機に接続されている各端末に所定のクラスを設定し、端末に割り当てられたクラス（優先度に相当）に従ったルーティングを行うことができる。クラスは端末に割り当てられており、障害の際には、あらかじめ静的に設定してあるルーティングテーブルによって、優先クラスが与えられている端末からのパケットは迂回路を通ることができる。非優先クラスが与えられている端末からのパケットは、平常時にも迂回路のみを通るように設定し、障害時にはパケットを廃棄するように設定できる。しかしながら、クラスは端末に付加されていて、ルーティングは状態が平常時から障害時に変化したときにしか変更されないので、平常時に動的にルーティングを変更することができない。また、ある瞬間において、送信元から受信先に対して一つの経路のみをルーティングして通信を行っており、複数経路をルーティングして同時に通信を行うことができない。
【０００７】
【発明が解決しようとする課題】
これに対して、本発明では、
１.  通信パケットに優先度を付け、高い優先度の通信パケットが低い優先度の通信パケットを通信ノード毎に短い遅延時間で通信パケットを再送することなく追い越すことにより実時間通信を制御する、
２. 全く同じネットワークアドレス（送信元アドレス及び送信先アドレス）を持つ通信パケットの経路を優先度によって別々の経路に設定し複数経路を同時にルーティングし同時に通信することを可能にすることによって専用回線や迂回路を設け同時にバンド幅と遅延時間を制御して実時間通信を制御する、
３. 通信パケットの優先度を通信ノード毎に付け替え通信パケットの加速／減速およびルーティングを分散制御することによって分散管理で実時間通信を制御する、
という方法を組み合わせることによって、分散管理を用いて大規模かつ量子時間の小さい実時間通信を実現する。
【０００８】
【課題を解決するための手段】
通信パケットのヘッダ部分には図２に示すようにネットワークアドレス（送信元アドレス、送信先アドレス等）以外に優先度を付加しておく。優先度は０が一番低く、数字が大きくなるにしたがって高くなる。
図３は通信ノードが計４個スター結合をしていて、通信ノード１（送信元１）と通信ノード２（送信元２）が同時に通信ノード３を介して通信ノード４に通信パケットを送信する場合を示している。図３(A)では通信ノード1が優先度１の通信パケットを通信ノード３に送信し、通信ノード２は優先度０の通信パケットを同時に通信ノード３に送信している。図３(B)では通信ノード３が通信ノード１及 び通信ノード２から通信パケットを受信しているが、通信ノード３は通信パケットの優先度の高い通信ノード１からの通信パケットを通信ノード４に対して送信し、優先度の低い通信ノード２からの通信パケットは通信ノード３で待たせておく。図３(C)では、通信ノード１からの通信パケットを通信ノード４に送信した後で、優先度の低い通信ノード２からの通信パケットを通信ノード４に送信していることを示している。
【０００９】
上記を実現するために次のような制御方法を行なう。図４は５入力５出力で一つの入力部当たり追い越し用バッファが４本あるネットワークスイッチの場合を示しているが、入力ポートから入力された通信パケットが通信ノードで衝突しない場合は、そのまま出力ポートへ出力する。図４において、異なる入力ポートから入力された通信パケットが同じ出力ポートに出力を行なう場合、通信パケットに付加された優先度に従い、低い優先度の通信パケットはバッファ（データを受け渡しするための一時的な記憶場所）に貯められ出力を待たされ、高い優先度の通信パケットは先に出力される。高い優先度の通信パケットの出力の後に低い優先度の通信パケットがバッファから出力ポートに出力され、優先度に従った通信パケットの追い越しが行なわれる。
【００１０】
上記の通信パケットの追い越しを実現するために通信パケットの大きさと等しいバッファを複数本入力ポート側に設ける。さらに、出力が待たされ続けている時に入力が入り続けバッファが溢れそうになった場合にバッファの内容を一時的に退避するための記憶装置（メモリ）を設けることができる。
【００１１】
図５は図４のネットワークスイッチのひとつの入力部の詳細を示しているが、通信パケットの追い越しは以下のように行なわれる。入力ポートから入力された通信パケットは、入力ポインタで指し示されているバッファ０からバッファ３のうち使用されていない空バッファに書き込まれる。入力パケットのヘッダ部分は必ず全て受信されてバッファに書き込まれ、その受信されたヘッダを元に図６のようなルーティングテーブル（経路制御表）を参照し出力ポート番号と優先度を得る。得られた出力ポート番号は図５のリンクストローブ（L０〜L４）に書き込まれ、例えばL０ビットが有効であればその入力パケットの出力先は出力ポート ０であることを示している。
【００１２】
図５においてL０からL４までの複数ビットが有効であればマルチキャストを意味し、全て有効であればブロードキャストを意味する。入力部の出力側では各出力ポート毎にそれぞれ独立に各バッファのリンクストローブを参照し、自出力ポートのリンクストローブが有効な場合、出力ポート側にある優先度調停装置（図４参照）に対して優先度と共に出力要求を行なう。優先度調停装置は、出力要求が一つの入力ポートからだけある場合はただちに出力許可を与え、出力要求が複数ある場合は優先度の一番高いものに出力許可を与える。一番優先度の高い要求が複数ある場合は、ラウンドロビン方式で出力許可を与える。
【００１３】
通信パケットの衝突がない場合や、衝突があってもその時点での最高優先度の通信パケットの場合は、ヘッダの受信とルーティングテーブル参照の遅延時間後に直ちに出力が開始される。入力部の出力側ではパケットの送信を終了したら各出力ポート毎に独立して自分のリンクストローブのみを無効にし、全てのリンクストローブが無効になったらそのバッファが空であることを意味する。
バッファにパケットが待たされているにも関わらず、入力パケットが連続して入力された場合、バッファを溢れさせないように少なくとも一つ以上の空バッファを常に用意するようにする。図５においてもし空バッファが残り少なく（例えば残り１本）なってしまった場合、次の入力パケットは退避用記憶装置（例えばSDRAM等）に退避される。出力が進み空バッファの残りが多く（例えば２本以上に）なると退避用記憶装置に退避されていた入力パケットを優先度を考慮してバッファに復元することにより、出力を継続する。
【００１４】
図５においてSDRAM出力ポインタは、退避されるべき入力パケットのSDRAMの退避アドレスを指し示しており、SDRAM入力ポインタはデータが復元される空バッファを指し示している。実時間通信においては、再送を行なうとそのために発生するオーバヘッドが非常に大きく実時間通信における量子時間が大きくなってしまうが、このように再送を行なわないことにより実時間通信の量子時間を非常に小さくできる。
【００１５】
全く同じネットワークアドレスを持つ通信パケットの経路を優先度により同時に通信可能な別々の経路に設定可能にすることによって専用線や迂回路を設けることができる。この際、送信時と受信時で別々の経路を設定することもできる。全く同じ送信元と受信先間において優先度毎に異なる複数の経路で同時に通信可能であり、バンド幅を広げることもできる。これらの機能より、通信パケットのバンド幅および遅延時間の制御を可能にする。
【００１６】
基本的にはネットワークアドレスと優先度の組でルーティングテーブルを参照するが、もしネットワークアドレスは同じであるが優先度が一致する組合わせ（経路）がルーティングテーブル上に無い場合には、最も優先度の低い優先度０の経路がデフォルト経路となる。
つまり、
１. ネットワークアドレスと優先度の両方が一致すればその経路が第一優先、
２. ネットワークアドレスは一致するが優先度が一致しない場合、優先度０の経路、
となる。この際、優先度０の経路はデフォルト経路となるので、途中で経路が消滅してしまわないようにルーティングテーブルに登録しておくことが推奨される。
【００１７】
図７は全く同じ送信元から送信先に対して異なる優先度の通信パケットを同時に通信している状態を示す。図７では、２次元格子の交点に通信ノードがあり、優先度０から優先度３までの４つの優先度を持つ通信パケットが異なる経路を通って送信元から送信先に同時に通信されている。例えば、優先度０の経路上は別の通信ノードからの通信パケットも同じ経路を通って送信先に通るように設定しておいて、優先度３の経路は図７の送信元と送信先の優先度３の通信パケットしか通らないように設定しておくことにより、他の通信パケット（他ノード間の通信パケットおよび自ノードからの別優先度の通信パケット）と全く衝突が起きない、短い遅延時間で高いスループットの専用線を実現することができる。
通常のネットワークでは、ある瞬間（時刻）においては、ある一つの経路が定まっており、その経路を通って通信が行われるが、このように優先度が異なると別々の経路で同時に通信を可能にする。また、前述のような設定にすると、送信元と受信先間のバンド幅を広くし遅延時間を低くすることもできる。
【００１８】
制御用の分散システムでは図８のような木構造を採る場合が多い。図８において、全ての線（実線、点線、破線）は、物理的な通信路を示している。図８において通信ノード０から通信ノード７に通信する場合、実時間性が低い優先度０の通信パケットは途中に通信ノード１と通信ノード３という通信ノードを経由して通信を行なうが、高い実時間性が要求される優先度３の通信パケットは通信ノード０から直接通信ノード７へ通信を行なっている。この際、点線の経路は優先度３の通信パケットしか通さないように設定しておけば、他の優先度の通信パケットは別経路を通るので、同じ通信ノード間での優先度の異なる別パケットにも邪魔されることのない、低い遅延時間で高いスループットの専用線を実現できる。
また、図８は、システム製作後に通信遅延時間が間に合わなかったりバンド幅が足りなかったという不具合が判明した場合に、後付けで容易に拡張できる（点線の経路を付け足すことができる）という説明図も兼ねている。例えば、システム設計者が、当初は木構造のアーキテクチャ（図８の点線部分以外）で分散制御を行うべくシステム設計を行った場合において、実際に製作してみたところ、ノード０からノード７の通信遅延時間がどうしても間に合わないことが判明したとする。本発明を用いると、ノード０とノード７間に新たに物理的に通信路（図８の点線部）を設け、優先度（この場合は、優先度３）に従ったルーティングを行えば、容易に後付けで拡張することができ、遅延時間やバンド幅に関する不具合を解消できる。
このように同じ送信元と送信先を持つ通信パケットでありながら、優先度が異なる場合には別経路を設定し、同時に通信することができる専用線や迂回路を設けることも可能となり、単位量子時間の小さな実時間通信システムを構築できる。
【００１９】
通信ノード毎に通信パケットの優先度の付け替えを行なうことによって、通信パケットの加速／減速およびルーティングの変更を行い、分散管理での実時間通信の制御を実現する。優先度の付け替えは、図６のようなルーティングテーブル（経路制御表）を用いることによって行なう。図６において、ネットワークアドレスと優先度を元にルーティングテーブルを参照し、出力ポート番号（複数可）を決定する。その際、優先度を付け替えないモード（図６の優先度付替ビットが無効）の場合は優先度はそのままであるが、優先度を付け替えるモード（図６の優先度付替ビットが有効）の場合、出力ポートから出力する際に通信パケットの優先度を新優先度に置き換える。つまり、現ノードでの通信パケットの優先度は入力パケットのヘッダに付加されている優先度で決定され、その優先度に従って追い抜きやルーティングが決定されるが、次ノードでの通信パケットの優先度を制御することができる。従って、優先度による追い越しとルーティングの両面で通信パケットの加速／減速を分散管理制御することができる。ルーティングテーブルの設定はソフトウェア（分散オペレーティングシステム等による分散管理）で行ない、ルーティング（経路制御）自身はハードウェアで行なう。
【００２０】
本発明は、前述のように構成したことにより、優先度による通信パケットの追い越しを再送することなく通信ノード毎に行なうという手法により実時間通信を実現する。同時に通信ノード毎に通信パケットの優先度を付け替え可能にし、それにともない通信パケットの加速／減速およびルーティング制御ができ、分散管理型の実時間通信制御を実現する。さらに、同じネットワークアドレスを持つ通信パケットの経路を優先度により同時に通信可能な別々の経路に設定できる機能によって、専用線や迂回路を設けることが可能になり、優先度に従った経路制御による遅延時間とバンド幅の両面における実時間通信制御を実現する。また、分散管理型なので、ある通信経路に不具合が発生し不通になったとしても、その影響を受けない経路の通信は保たれるし、ソフトウェアでルーティングテーブルを動的に書き換え経路を制御することが可能なので、不具合ノードを回避するように別の経路を設定することが可能な場合もあり、通信のロバスト性が高い。
【００２１】
【発明の実施の形態】
本発明は通商産業省工業技術院電子技術総合研究所で研究開発を行なった並列分散リアルタイム制御用レスポンシブ・プロセッサの実時間通信規格であるレスポンシブ・リンク上で利用されている。
【００２２】
レスポンシブ・リンクでは、図９のように制御用途用の低い遅延時間を保証するハードリアルタイム通信用のイベントラインとマルチメディアデータ転送用でバンド幅を保証するソフトリアルタイム通信用のデータラインを分離し（特開平１０-３０７８０３）、さらに本発明を利用することによって実時間通信を実現している。レスポンシブ・リンクは図４のように５入力５出力の構成をとっており、リンク０が自身のCPUに接続されていて、リンク１からリンク４までの４本が外部と入出力している。
【００２３】
図９のように入力ポートと出力ポートが一組のコネクタ／ケーブルとなっており、耐ノイズ性を向上させるために差動型で入出力を行ない、イベントリンクとデータリンクはそれぞれ同時に送受信することができる。レスポンシブ・リンクのパケットフォーマットは図１０のようになっており、イベントとデータそれぞれのヘッダ部分に優先度も含めて３２bitのネットワークアドレス（送信元アド レス(１６bit)と送信先アドレス(１６bit)）が埋め込まれている。さらに送信元アドレスと送信先アドレスそれぞれの最上位ビットが優先度ビット１,０となっ ており、計２bit（４通り）の優先度を有している。
【００２４】
ルーティングテーブルは図１１のようになっており、ルーティングテーブルの参照元は入力パケットのヘッダ部分そのもの（優先度が埋め込まれた送信元アドレスと送信先アドレス）である。参照先は、
・イベントラインのテーブルであることを示すEE（Event table Enable）
・データラインのテーブルであることを示すDE（Data table Enable）
・どのリンクに出力するかを示す出力ポート番号(リンクストローブ：L０〜L４)
・優先度付替有効ビット(PE)
・新優先度(P０,P１)
である。
【００２５】
図４において通信パケットが入力ポート（入力０〜４）から入力されると、まずヘッダ部分が図１１のテーブルで参照され出力ポート番号、優先度及び優先度付替有効ビットを得る。出力ポート番号で得られた出力ポート(出力０〜４)の優先度調停装置に対して優先度を出力し、出力側の優先度調停装置は入力が１つの入力ポートだけの場合は直ちに出力を許可し、複数の入力ポートから入力があった場合（通信パケットの衝突が起こった状況を意味する）、優先度にしたがって優先度の一番高いものに対して出力を許可する。（同じ優先度の場合はラウンドロビン）
【００２６】
優先度調停装置によって出力を待たされた通信パケットは図４のバッファ(バ ッファ００〜４３)に貯められ、優先度の高い通信パケットの出力が終った後に 出力される。もし出力すべき通信パケットが待たされ続けてバッファが溢れそうになると（残りの空バッファが１本）、後段にあるSDRAM（同期式DRAM）に退避し、バッファに溜っていた通信パケットが出力されて空きバッファができると優先度を考慮してSDRAMからバッファに通信パケットを復元して出力を行なう。
【００２７】
通信パケットを出力ポートに出力する際に、図１１の優先度付替有効ビット(PE)が有効になっている場合は、優先度(Priority０, Priority１)がそれぞれ新優先度（P１, P０）に付け替えられ、無効になっている場合には優先度は維持される 。また、本発明を用いた図１１のルーティングテーブルを用いて、同じネットワークアドレスを持っていても優先度が異なると別々の経路を設定できる。それらの別経路を用い、優先度の異なる通信パケットを同時に通信することができる。これらの通信パケットの優先度の付け替え及び優先度による経路制御ははルーティングテーブルに従いハードウェアで行なわれるが、ルーティングテーブルの管理・制御はソフトウェア（実時間分散オペレーティングシステム等）で行なわれ、分散管理型の実時間通信を実現している。
【００２８】
【発明の効果】
本発明によれば従来不可能であった分散管理型の実時間通信システムを、
(１)通信パケットの優先度による追い越し
(２)優先度による経路制御
(３)通信ノード毎の優先度の付け替え
という３つの手法を用いて実現する。同時に、これらの手法を組み合わせることにより、
・量子時間の非常に小さい実時間通信を実現可能
・再送不要
・同じ通信ノード間で同時に異なる複数経路で通信可能
・通信遅延やバンド幅に関して後付けで容易に拡張可能
・集中管理型と比較し非常に多くの通信ノードを接続することが可能
・通信経路の一部が壊れてもロバストな通信が可能
という効果を得る。
【図面の簡単な説明】
【図１】人間型ロボットを例にした分散制御システムを例示している。
【図２】通信パケットのヘッダ部分に優先度を付加したパケットフォーマットを例示している。
【図３】優先度に従った通信パケットの追い越しを例示している。
【図４】５入力５出力で一つの入力部当たり追い越し用バッファが４本あるネットワークスイッチを例示している。
【図５】図４のネットワークスイッチのひとつの入力部の詳細を示している。
【図６】入力パケットの受信されたヘッダを元に出力ポート番号と優先度を得るルーティングテーブル（経路制御表）を例示している。
【図７】全く同じ送信元から送信先に対して異なる優先度の通信パケットを同時に通信している状態を示す図である。
【図８】制御用の分散システムにおいて採用されるような木構造での優先度に従った経路制御を説明するための図である。
【図９】イベントラインとデータラインがそれぞれ同時に送受信することができるレスポンシブ・リンクの信号及びコネクタを例示している。
【図１０】レスポンシブリンクのパケットフォーマットを例示している。
【図１１】レスポンシブリンクのルーティングテーブルを例示している。
【図１】
0003890423.tif 000002
【図２】
0003890423.tif 000003
【図３】
0003890423.tif 000004
【図４】
0003890423.tif 000005
【図５】
0003890423.tif 000006
【図６】
0003890423.tif 000007
【図７】
0003890423.tif 000008
【図８】
0003890423.tif 000009
【図９】
0003890423.tif 000010
【図１０】
0003890423.tif 000011
【図１１】
0003890423.tif 000012