(57)【特許請求の範囲】
【請求項１】
１つがマスタノード装置である複数のノード装置がシリアル伝送路によりループ状に接続され、
送信元ノード識別子データを有するブロックヘッダデータ及び送信データを含むノードブロックを挿入及び削除可能な１つの可変長フレームが前記複数のノード装置を順次巡り、
前記可変長フレームへの前記ノードブロックの挿入は、前記可変長フレームを受信した受信ノード装置がデータの送信を行うときに、前記受信ノード装置によって新たな自ノードブロックの挿入として行われ、
前記可変長フレームからの前記ノードブロックの削除は、前記受信ノード装置が受信した前記可変長フレーム中に前記受信ノード装置により以前に挿入された自ノードブロックがあるとき、前記受信ノード装置による前記以前に挿入された自ノードブロックの削除として行われる通信システムにおいて、
前記マスタノード装置は、
システム初期化時には、新たな可変長フレームとして、通常可変長フレームを生成して前記シリアル伝送路に送出し、
前記可変長フレームが消失したと判断した時には、リトライ可変長フレームを生成して前記シリアル伝送路に送出し、
前記受信した可変長フレームが前記リトライ可変長フレームであるときには、前回の可変長フレーム時に挿入した自ノードブロックを前記リトライ可変長フレームに挿入するとともに、挿入されたノードブロックを変更せずに、前記リトライ可変長フレームを前記通常可変長フレームに変更し、
前記マスタノード装置以外のノード装置は、前記受信した可変長フレームが前記リトライ可変長フレームであるときには、前回の可変長フレーム時に挿入した自ノードブロックを前記リトライ可変長フレームに挿入する、ことを特徴とする通信システム。
【請求項２】
前記ノードブロックそれぞれはエラー検出部を有し、
前記受信ノード装置は、受信した可変長フレームに含まれる他のノード装置が送信した他ノードブロックの内、エラー無と判定されたものに含まれる送信データを記憶することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記受信ノード装置は、前記受信した可変長フレームに含まれる前記受信ノード装置が送信した自ノードブロックがエラー有と判定されたとき、前記自ノードブロックを前記可変長フレームから削除した後、前記自ノードブロックが含むべきデータを含む新たな自ノードブロックを生成して前記可変長フレームに挿入する、ことを特徴とする請求項１又は２に記載の通信システム。
【請求項４】
送信元ノード識別子データを有するブロックヘッダデータ及び送信データを含むノードブロックを挿入及び削除可能な１つの可変長フレームが巡るループ状のフレーム巡回経路上に配設される複数のノード装置におけるマスタノード装置が具備する通信制御装置であって、
前記可変長フレームを受信し、前記受信した可変長フレームに前記ノード装置が以前に挿入した自ノードブロックが存在するときには、該以前に挿入した自ノードブロックを削除するフレーム受信処理装置と；
前記フレーム受信処理装置を介したノードブロックに、新たに送信すべきデータがあるときには、前記送信すべきデータを含む新たな自ノードブロックが付加されたノードブロック群を作成し、前記ノードブロック群が挿入された可変長データフレームを前記フレーム巡回経路へ向けて送出するフレーム送信処理装置と；を備え、
前記フレーム送信処理装置は、
システム初期化時には、新たな可変長フレームとして、通常可変長フレームを生成して前記シリアル伝送路に送出し、
前記可変長フレームが消失したと判断した時には、リトライ可変長フレームを生成して前記シリアル伝送路に送出し、
前記受信した可変長フレームが前記リトライ可変長フレームであるときには、前回の可変長フレーム時に挿入した自ノードブロックを前記リトライ可変長フレームに挿入するとともに、挿入されたノードブロックを変更せずに、前記リトライ可変長フレームを前記通常可変長フレームに変更することを特徴とする通信制御装置。
【請求項５】
前記フレーム送信処理装置は、前記新たな自ノードブロックを前記他ノードブロックの後ろに挿入する、ことを特徴とする請求項４に記載の通信制御装置。
【請求項６】
前記ノードブロックそれぞれはエラー検出部を有し、
前記フレーム受信処理装置は、受信した可変長フレームに含まれる他のノード装置が挿入した他ノードブロックの内、エラー無と判定されたものに含まれる送信データをバッファ記憶装置に転送することを特徴とする請求項４又は５に記載の通信制御装置。
【請求項７】
前記フレーム送信処理装置は、前記受信した可変長フレームに含まれる自ノード装置が送信した自ノードブロックがエラー有と判定されたとき、前記自ノードブロックが含むべきデータを含むノードブロックを前記新たな自ノードブロックとして作成する、ことを特徴とする請求項４〜６のいずれか一項に記載の通信制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信システム及び通信制御装置に係り、より詳しくは、複数のノード装置がノード間伝送媒体によりループ状に接続された通信システム、該通信システムにおけるノード装置が具備する通信制御装置に関する。
【０００２】
【従来の技術】
複数の装置相互間でネットワークを介してデータの送受信を行う様々な通信システムが構築されている。こうした通信システムでは、装置間接続、装置間通信の容易さや通信資源の効率的な活用のために、様々な通信システムが提案されている。こうした通信システムにおけるデータ伝送路としては、複数の伝送路相互間における信号の同期合わせを行う必要がないことから、データ転送速度を向上可能であり、かつ、構成も簡易化可能なシリアル伝送路が主流となっている。
【０００３】
こうしたシリアル伝送路を使用する通信プロトコルの下位層（ＯＳＩの７階層モデルにおける物理層及びデータリンク層に相当）として代表的なものとして、例えば、ＡＮＳＩのＸ３Ｔ１１により規格化されているファイバチャンネル（Fiber Channel）がある。このファイバチャンネルを採用すると、複数のノード装置を簡易に接続可能であり、かつ、複数のノード装置相互間において高速なデータ転送が可能となっている。
【０００４】
ここで、ファイバチャンネルでは、複数のノード装置間でデータ通信を行う幾何学的構成として、ファブリックと呼ばれる交換機に類似したスイッチ装置を使用するスター状接続構成と、スイッチ装置のような特別の装置を使用しないループ状接続構成とがある。これらのスター状接続構成とループ状接続構成とを比較してみると、ループ状接続構成の方が簡易な構成であるといえる。
【０００５】
【発明が解決しようとする課題】
上述のループ状接続構成のファイバチャンネルでは、シリアル伝送路におけるフレームの衝突を避けるために、データ転送を行おうとするノード装置は、データ転送に使用する経路を他のノード装置が使用していないときにデータ伝送を行う方式が一般に採用されている。このため、データ転送を行おうとするノード装置は、まず、データ転送に使用する経路を他のノード装置が使用しているか否かを確認する。こうした確認の結果、データ転送に使用する経路を他のノード装置が使用していないことが確認されると、データ転送を行おうとするノード装置は、データ転送に使用する経路の使用権を獲得し、データ転送を開始する。かかる経路の使用権の獲得にあたっては、各ノード装置の使用権要求の競合が発生し得ることから、データ転送のたびに使用権要求のアービトレーション（調停）を行うことが必要となる。
【０００６】
このため、データ転送が開始された後には高速のデータ転送が可能であるが、データ転送をしようとしてからデータ転送開始までのオーバヘッド時間が存在するため、ノード装置がデータ転送を行おうとしてから、そのデータ転送が完了するまでの時間は、伝送媒体上をその転送データが伝送される時間に比べて長いものとなっていた。さらに、他のノード装置による使用権要求の発生状況により、使用権の獲得動作開始からデータ転送開始までのオーバヘッド時間が非常に長くなる可能性もあった。すなわち、データ転送を行おうとしたノード装置にとって、データ転送を行おうとしてからデータ転送が完了するまでの時間（以下、「データ転送のターンアラウンド時間」という）が長く、かつ、不定となっていた。
【０００７】
本発明は、上記の事情のもとでなされたものであり、その第１の目的は、簡易な構成で、ノード装置間におけるデータ転送のターンアラウンド時間を短縮化でき、かつ、データ転送のターンアラウンド時間を保証可能な通信システムを提供することにある。
【０００８】
また、本発明の第２の目的は、複数のノード装置におけるマスタノード装置が装備することにより、本発明の通信システムを容易に構築することができる通信制御装置を提供することにある。
【０００９】
【課題を解決するための手段】
本発明の通信システムは、１つがマスタノード装置である複数のノード装置がシリアル伝送路によりループ状に接続され、送信元ノード識別子データを有するブロックヘッダデータ及び送信データを含むノードブロックを挿入及び削除可能な１つの可変長フレームが前記複数のノード装置を順次巡り、前記可変長フレームへの前記ノードブロックの挿入は、前記可変長フレームを受信した受信ノード装置がデータの送信を行うときに、前記受信ノード装置によって新たな自ノードブロックの挿入として行われ、前記可変長フレームからの前記ノードブロックの削除は、前記受信ノード装置が受信した前記可変長フレーム中に前記受信ノード装置により以前に挿入された自ノードブロックがあるとき、前記受信ノード装置による前記以前に挿入された自ノードブロックの削除として行われる通信システムにおいて、前記マスタノード装置が、システム初期化時には、新たな可変長フレームとして、通常可変長フレームを生成して前記シリアル伝送路に送出し、前記可変長フレームが消失したと判断した時には、リトライ可変長フレームを生成して前記シリアル伝送路に送出し、前記受信した可変長フレームが前記リトライ可変長フレームであるときには、前回の可変長フレーム時に挿入した自ノードブロックを前記リトライ可変長フレームに挿入するとともに、挿入されたノードブロックを変更せずに、前記リトライ可変長フレームを前記通常可変長フレームに変更し、前記マスタノード装置以外のノード装置は、前記受信した可変長フレームが前記リトライ可変長フレームであるときには、前回の可変長フレーム時に挿入した自ノードブロックを前記リトライ可変長フレームに挿入する、ことを特徴とする通信システムである。
【００１０】
これによれば、複数のノード装置を順次巡るループ状のフレーム経路上には、１つの可変長フレームが存在するのみである。このため、フレーム経路におけるフレーム衝突は原理的に発生し得ない。
【００１１】
そして、データ送信を行おうとするノード装置は、可変長フレームを受信したときに、あたかも可変長フレームという貨物列車に車両を新たに連結するように、送信データを含むノードブロックを可変長フレームに挿入する。なお、本発明においては、送信元のノード装置の識別子データはノードブロックのブロックヘッダ部に入れられるが、送信先のノード装置の識別子データについては、ブロックヘッダ部に入れてもよいし、また、ノードブロックの送信データ部に入れてもよい。
【００１２】
また、データ送信を行ったノード装置は、他のノード装置を巡った可変長フレームを受信したときに、受信した可変長フレームに挿入されている、前回の可変長フレームの受信時に自分が挿入した自ノードブロックを可変長フレームから削除する。こうして、可変長フレーム中のデータブロックの数がノード装置の数を超えることを防止している。この結果、可変長フレームの長さ（構成ビット数）が一定値以下になることが保証される。
【００１３】
したがって、本発明の通信システムによれば、フレーム経路上におけるフレーム衝突が発生し得ないことから、フレーム経路の使用権に関する調停を行うことが不要であり、かつ、ノードブロックを可変長フレームに挿入したノード装置がそのブロックを可変長フレームから削除するという簡易な方式により、可変長フレーム長を制限する。したがって、簡単な構成で、装置間におけるデータ転送のターンアラウンド時間を短縮化でき、かつ、データ転送のターンアラウンド時間を保証できる。
【００１４】
本発明の通信システムでは、前記ノードブロックそれぞれがエラー検出部を有し、前記受信ノード装置が、受信した可変長フレームに含まれる他のノード装置が送信した他ノードブロックの内、エラー無と判定されたものに含まれる送信データを記憶する構成とすることができる。
【００１５】
また、本発明の通信システムでは、前記受信ノード装置が、前記受信した可変長フレームに含まれる前記受信ノード装置が送信した自ノードブロックがエラー有と判定されたとき、前記自ノードブロックを前記可変長フレームから削除した後、前記自ノードブロックが含むべきデータを含む新たな自ノードブロックを生成して前記可変長フレームに挿入する構成とすることができる。
【００１９】
本発明の通信制御装置は、送信元ノード識別子データを有するブロックヘッダデータ及び送信データを含むノードブロックを挿入及び削除可能な１つの可変長フレームが巡るループ状のフレーム巡回経路上に配設される複数のノード装置におけるマスタノード装置が具備する通信制御装置であって、前記可変長フレームを受信し、前記受信した可変長フレームに前記ノード装置が以前に挿入した自ノードブロックが存在するときには、該以前に挿入した自ノードブロックを削除するフレーム受信処理装置と；前記フレーム受信処理装置を介したノードブロックに、新たに送信すべきデータがあるときには、前記送信すべきデータを含む新たな自ノードブロックが付加されたノードブロック群を作成し、前記ノードブロック群が挿入された可変長データフレームを前記フレーム巡回経路へ向けて送出するフレーム送信処理装置と；を備え、前記フレーム送信処理装置が、システム初期化時には、新たな可変長フレームとして、通常可変長フレームを生成して前記シリアル伝送路に送出し、前記可変長フレームが消失したと判断した時には、リトライ可変長フレームを生成して前記シリアル伝送路に送出し、前記受信した可変長フレームが前記リトライ可変長フレームであるときには、前回の可変長フレーム時に挿入した自ノードブロックを前記リトライ可変長フレームに挿入するとともに、挿入されたノードブロックを変更せずに、前記リトライ可変長フレームを前記通常可変長フレームに変更することを特徴とする通信制御装置である。
【００２０】
この通信制御装置を、複数のノード装置がシリアル伝送路によりループ状に接続され、前記複数のノード装置相互間においてデータ通信可能な通信システムにおけるマスタノード装置の通信制御装置として使用することにより、本発明の通信システムを容易に構築することができる。
【００２３】
本発明の通信制御装置では、前記フレーム送信処理装置が、前記新たな自ノードブロックを前記他ノードブロックの後ろに付加する構成とすることができる。
【００２４】
また、本発明の通信制御装置では、前記ノードブロックそれぞれがエラー検出部を有する場合、前記フレーム受信処理装置が、受信した可変長フレームに含まれる他のノード装置が挿入した他ノードブロックの内、エラー無と判定されたものに含まれる送信データをバッファ記憶装置に転送する構成とすることができる。
【００２５】
また、本発明の通信制御装置では、前記フレーム送信処理装置が、前記受信した可変長フレームに含まれる自ノード装置が送信した自ノードブロックがエラー有と判定されたとき、前記自ノードブロックが含むべきデータを含むノードブロックを前記新たな自ノードブロックとして作成する構成とすることができる。
【００２７】
【発明の実施の形態】
以下、本発明の一実施形態を、添付図面を参照して説明する。
【００２８】
図１には、本発明の一実施形態に係る通信システム１００の構成が示されている。図１に示されるように、この通信システム１００は、１台のマスタノード装置１０Ｍと、通常ノード装置１０Ｎi（ｉ＝１〜Ｐ）とを備えている。そして、マスタノード装置１０Ｍ及び通常ノード装置１０Ｎiが、シリアル伝送媒体としての光ファイバ１５0〜１５Pによって、ループ状に接続されている。すなわち、光ファイバ１５0によってマスタノード装置１０Ｍと通常ノード装置１０Ｎ1とが接続され、光ファイバ１５j（ｊ＝１〜（Ｐ−１））によって通常ノード装置１０Ｎjと通常ノード装置１０Ｎj+1とが接続され、さらに、光ファイバ１５Pによって通常ノード装置１０ＮPとマスタノード装置１０Ｍとが接続されている。こうした光ファイバ１５0〜１５Pによるマスタノード装置１０Ｍ及び通常ノード装置１０Ｎiのループ状接続により、ループ状のフレーム伝送路１９が形成されている。なお、以下の説明においてマスタノード装置１０Ｍ及び通常ノード装置１０Ｎiを総称する場合には、「ノード装置１０Ｍ，１０Ｎi」と記すものとする。
【００２９】
こうしたループ状のフレーム伝送路１９には、通常時には１つの可変長フレームＦＬＭが存在し、マスタノード装置１０Ｍ及び通常ノード装置１０Ｎiを順次巡っている。この可変長フレームＦＬＭは、図２（Ａ）に示されるように、フレームの開始を示すフレーム開始指示部ＳＯＦ（以下、単に「ＳＯＦ」と記す）、フレームの属性を示すフレームヘッダ部ＦＨ、マスタノード装置１０Ｍ及び通常ノード装置１０Ｎiの中でデータ送信を行おうとするノード装置それぞれにより挿入されたノードブロックＮＢ（Ｓk）（ｋ＝１〜Ｑ）から成るノードブロック部ＮＢＰ、及びフレームの終了を示すフレーム終了指示部ＥＯＦ（以下、単に「ＥＯＦ」と記す）から構成される。ここで、パラメータＳkは、ノードブロックＮＢ（Ｓk）を可変長フレームＦＬＭに挿入したノード装置を示している。
【００３０】
以上の可変長フレームＦＬＭの構成要素の内、ＳＯＦ、フレームヘッダ部ＦＨ、及びＥＯＦは必須構成要素であり、可変長フレームＦＬＭには必ず含まれている。一方、ノードブロック部ＮＢＰは可変長フレームＦＬＭの任意構成要素であり、データ送信を行おうとするノード装置がないときには、可変長フレームＦＬＭ中には、ノードブロック部ＮＢＰは存在しないことになる。
【００３１】
前記フレームヘッダ部ＦＨは固定長を有する。そして、フレームヘッダ部ＦＨは、内部の所定位置に、可変長フレームＦＬＭが通常可変長フレームであるか、又は、リトライ可変長フレームであるかを示すリトライフラグＲを含んでいる。ここで、リトライフラグＲがオフの場合には、可変長フレームＦＬＭが通常可変長フレームであることを示し、また、リトライフラグＲがオンの場合には、可変長フレームＦＬＭがリトライ可変長フレームであることを示すようになっている。
【００３２】
前記ノードブロックＮＢ（Ｓk）は、図２（Ｂ）に示されるように、ノードブロックＮＢ（Ｓk）のデータ通信処理上の情報を含む固定長のブロックヘッダ部ＢＨ（Ｓk）、ノードブロックＮＢ（Ｓk）を挿入したノード装置が送信しようとしている可変長の送信データＳＤ（Ｓk）、及びノードブロックＮＢ（Ｓk）における伝送エラーの有無をチェックするための固定長のチェックコード部ＣＨＫから構成されている。ここで、チェックコード部ＣＨＫにおけるチェックコードとしては様々なエラー検出用コードを採用することができるが、本実施形態においては、（Ｘ16＋Ｘ12＋Ｘ5＋１）を生成多項式とする巡回冗長検査コード（以下、「ＣＲＣコード」と呼ぶ）を採用している。なお、チェックコード部ＣＨＫにおけるチェックコードは、こうした巡回冗長検査（ＣＲＣ）に限定されず、また、ＣＲＣによるチェックを行う場合であっても、生成多項式として他のものを採用してもよい。例えば、上記の本実施形態の生成多項式は１６ビットのＣＲＣコードを算出するものであるが、３２ビットのＣＲＣコードを算出する生成多項式を採用することもできるし、また、１６ビットのＣＲＣコードを算出する他の生成多項式を採用してもよい。
【００３３】
前記ブロックヘッダ部ＢＨ（Ｓk）は、図２（Ｃ）に示されるように、可変長フレームにブロックヘッダ部ＢＨ（Ｓk）を挿入したノード装置の識別子、すなわち送信データＳＤ（Ｓk）の送信元ノード識別子ＳＮ（Ｓk）と、送信データＳＤ（Ｓk）が格納されるべき、マスタノード装置１０Ｍ及び通常ノード装置１０Ｎiそれぞれが備える後述するメモリ４０内領域の先頭アドレスＴＡＤ（以下、「転送先頭アドレス」という）ＴＡＤ（Ｓk）、及び送信データＳＤ（Ｓk）のバイト数ＢＳとを所定位置に含んでいる。なお、本実施形態では、ブロックヘッダ部ＢＨ（Ｓk）には、送信データＳＤ（Ｓk）の送信先ノード識別子ＤＮ（Ｓk）が更に含まれているものとする。
【００３４】
図１に戻り、前記通常ノード装置１０Ｎi（ｉ＝１〜Ｐ）それぞれは、通常ノード装置１０Ｎiそれぞれの処理を統括制御するホスト計算機５０Ｎiと、フレーム伝送路１９を介して他のノード装置のホスト計算機との間でデータ通信を行う際の通信制御を行う通信制御装置２０Ｎと、ホスト計算機５０Ｎi及び通信制御装置２０Ｎの双方からアクセス可能なメモリ装置４０とを備えている。すなわち、全ての通常ノード装置１０Ｎiは、通信制御装置２０Ｎ及びメモリ装置４０を構成要素として同様に備えており、通常ノード装置１０Ｎi相互間においては、通信制御装置２０Ｎ及びメモリ装置４０以外のホスト計算機５０Ｎi等の構成が異なっている。
【００３５】
前記通信制御装置２０Ｎは、図３に示されるように、（ａ）光ファイバ１５iを介した可変長フレームＦＬＭを受信し、光電気信号変換等を行って受信フレーム信号ＲＦＬＭに変換するレシーバ２１Ｒと、（ｂ）受信フレーム信号ＲＦＬＭを入力して処理するフレーム受信処理装置２２と、（ｃ）送信フレーム信号ＳＦＬＭの生成処理を行うフレーム送信処理装置２３Ｎと、（ｄ）送信フレーム信号ＳＦＬＭを光電変換等して可変長フレームＦＬＭを光ファイバ１５iに送出する信号トランスミッタ２１Ｔとを備えている。なお、本実施形態では、フレーム伝送路１９を介した通信の物理層インターフェースとして、ファイバチャンネルと同様の物理層インターフェースを採用しており、信号レシーバ２１Ｒが光電気信号変換に加えて周知の１０Ｂ／８Ｂ変換を行うとともに、信号トランスミッタ２１Ｔが光電気信号変換に加えて周知の８Ｂ／１０Ｂ変換を行っている。
【００３６】
通信制御装置２０Ｎは、さらに、（ｅ）内部バスＩＢの使用権の調停を行うバスアービタ２４、（ｆ）メモリ４０へのアクセスのために内部バスＩＢの信号とメモリアクセス信号との整合を図るメモリインターフェース２５、及び（ｇ）内部バスＩＢの信号とホスト計算機５０Ｎiが採用するホストバス信号との整合を図るホストインターフェース２６を備えている。そして、フレーム受信処理装置２２から、バスアービタ２４及びメモリインターフェース２５を介して、メモリ４０にデータ転送ができるようになっている。また、フレーム受信処理装置２２から、バスアービタ２４及びホストインターフェース２６を介して、ホスト計算機５０Ｎiにデータ転送ができるようになっている。また、ホスト計算機５０Ｎiから、ホストインターフェース２６及びバスアービタを介して、フレーム送信処理装置２３Ｎにデータ転送ができるようになっている。さらに、ホスト計算機５０Ｎiが、ホストインターフェース２６、バスアービタ２４、及びメモリインターフェースを介して、メモリ４０をアクセス可能となっている。
【００３７】
なお、内部バスＩＢのマスタとなり得るのは、フレーム受信処理装置２２及びホスト計算機５０Ｎiであるが、両者の間で内部バスＩＢの使用権獲得要求の競合が生じた場合、バスアービタは２４、フレーム受信処理装置２２による使用権獲得要求を優先するようになっている。
【００３８】
以上のようなデータの転送以外に、フレーム受信処理装置２２はホスト計算機５０Ｎiへ向けて割り込み処理要求を通知することが可能となっている。なお、図３においては、データ信号の流れが実線矢印にて示されているが、割り込み要求等の制御信号の流れの表示は省略されている。
【００３９】
前記フレーム受信処理装置２２は、図４に示されるように、フレーム解析装置３１、ブロック解析器３２、及びブロックデータ転送器３３とを備えている。
【００４０】
前記フレーム解析装置３１は、受信フレーム信号ＲＦＬＭを入力して、ＳＯＦ及びＥＯＦを検出するとともに、フレームヘッダ部ＦＨからリトライフラグＲを抽出する。そして、フレーム解析装置３１は、ＳＯＦ検出によりオンとなりＥＯＦ検出によりオフとなるフレーム信号受信ＦＬＲを、ブロック解析器３２及びフレーム送信処理装置２３Ｎへ向けて出力する。また、フレーム解析装置３１は、リトライフラグＲ及びノードブロック部ＮＢＰを、速やかに順次、ブロック解析器３２及びフレーム送信処理装置２３Ｎへ向けて出力する。
【００４１】
前記ブロック解析器３２は、フレーム信号受信ＦＬＲがオンであるときに入力したリトライフラグＲがオンである場合には、受信した可変長フレームＦＬＭがリトライ可変長フレームであると判定する。そして、速やかに可変長フレームの送出を開始するべき旨をフレーム送信開始信号ＳＦＬにより、また、前回の可変長フレームＦＬＭの受信時に送信したデータを再度送信すべき旨を送信データ選択信号ＳＤＳにより、フレーム送信処理装置２３Ｎへ通知する。
【００４２】
一方、ブロック解析器３２は、フレーム信号受信ＦＬＲがオンであるときに入力したリトライフラグＲがオフである場合には、受信した可変長フレームＦＬＭが通常可変長フレームであると判定する。そして、入力したノードブロック部ＮＢＰに含まれるノードブロックＮＢ（Ｓk）ごとに、順次、ＣＲＣコードを利用したＣＲＣチェックを行って、ノードブロックＮＢ（Ｓk）内における誤りの有無のチェックを行う。
【００４３】
かかるＣＲＣチェックにあたり、ブロック解析器３２は、最初のノードブロックＮＢ（Ｓ1）の開始を、フレーム信号受信ＦＬＲがオンであるときに入力したノードブロック部ＮＢの始まりをもって認識する。また、ノードブロックＮＢ（Ｓ1）の終了を、ブロックヘッダＢＨ（Ｓ1）が有する固定バイト数及びブロックヘッダＢＨ（Ｓ1）内の送信データＳＤ（Ｓ1）のバイト数ＢＳ（Ｓ1）に基づいて認識する。そして、ブロック解析器３２は、以降のノードブロックＮＢ（Ｓk）の開始を、直前のノードブロックＮＢ（Ｓk-1）の終了に基づいて認識するとともに、ブロックＮＢ（Ｓk）の終了を、ブロックヘッダＢＨ（Ｓk）が有する固定バイト数及びブロックヘッダＢＨ（Ｓk）内の送信データＳＤ（Ｓk）のバイト数ＢＳ（Ｓk）に基づいて認識しつつ、ノードブロックＮＢ（Ｓk）のＣＲＣチェックを行う。
【００４４】
また、ブロック解析器３２は、受信した可変長フレームＦＬＭが通常可変長フレームであるときには、入力したノードブロックＮＢ（Ｓk）が、自ノードが送信したノードブロックであるか否かをチェックする。このチェックにあたり、ブロック解析器３２は、自ノード識別子とノードブロックＮＢ（Ｓk）中の送信元ノード識別子ＳＮ（Ｓk）とを比較する。なお、本実施形態では、後述する可変長フレームＦＬＭに対するノードブロックの削除及び追加処理によって、各ノード装置１０Ｍ，１０Ｎiにより受信された可変長フレームＦＬＭに自ノードブロックが存在するとすれば、それは、ノードブロックＮＢ（Ｓ1）に限定されるようになっている。このため、ブロック解析器３２は、自ノードが送信したノードブロックであるか否かをチェックを最初のノードブロックＮＢ（Ｓ1）についてのみ行うこととしている。
【００４５】
以上の自ノードブロックチェックを最初のノードブロックＮＢ（Ｓ1）について行った結果、自ノードブロックではないと判定されたとき、ブロック解析器３２は、ノードブロックＮＢ（Ｓ1）のＣＲＣチェックの終了を待たずに、ノードブロックＮＢ（Ｓ1）から始まるブロックノード部ＮＢＰが挿入された可変長フレームの送出を速やかに開始するべき旨をフレーム送信開始信号ＳＦＬにより、フレーム送信装置２３Ｎに通知するとともに、前回の可変長フレームＦＬＭの受信時に送信したデータを格納しているデータバッファを解放すべき旨を送信データ選択信号ＳＤＳにより、フレーム送信装置２３Ｎに通知する。そして、ノードブロックＮＢ（Ｓ1）のＣＲＣチェックが終了し、ＣＲＣエラーを検出しなかったとき、ブロック解析器３２は、ノードブロックＮＢ（Ｓ1）を、ブロックデータ転送器３３ヘ向けて出力する。以後に入力するノードブロックＮＢ（Ｓk）については、ブロック解析器３２は、自ノードブロックを行わずにＣＲＣチェックのみを行い、ノードブロックＮＢ（Ｓk）においてＣＲＣエラーを検出しなかったとき、ノードブロックＮＢ（Ｓk）を、ブロックデータ転送器３３ヘ向けて出力する。
【００４６】
また、自ノードブロックチェックを最初のノードブロックＮＢ（Ｓ1）について行った結果、自ノードブロックであると判定されたときは、ブロック解析器３２は、ノードブロックＮＢ（Ｓ1）のＣＲＣチェックが終了を待って、ノードブロック（Ｓ1）が削除され、ノードブロックＮＢ（Ｓ2）から始まるブロックノード部ＮＢＰが挿入された可変長フレームの送出を開始するべき旨をフレーム送信開始信号ＳＦＬにより、フレーム送信装置２３Ｎに通知する。
【００４７】
ノードブロックＮＢ（Ｓ1）のＣＲＣチェックにより、ノードブロックＮＢ（Ｓ1）におけるエラーが検出されなかったときには、ブロック解析器３２は、以後に入力するノードブロックＮＢ（Ｓk）についてＣＲＣチェックを行い、ノードブロックＮＢ（Ｓk）においてＣＲＣエラーを検出しなかったとき、ノードブロックＮＢ（Ｓk）を、ブロックデータ転送器３３ヘ向けて出力する。
【００４８】
一方、ノードブロックＮＢ（Ｓ1）のＣＲＣチェックにより、ノードブロックＮＢ（Ｓ1）におけるエラーが検出されたときには、ブロック解析器３２は、前回の可変長フレームＦＬＭの受信時に送信したデータを再度送信すべき旨を送信データ選択信号ＳＤＳにより、フレーム送信処理装置２３Ｎへ通知する。そして、ブロック解析器３２は、以後に入力するノードブロックＮＢ（Ｓk）についてＣＲＣチェックを行い、ノードブロックＮＢ（Ｓk）においてＣＲＣエラーを検出しなかったとき、ノードブロックＮＢ（Ｓk）を、ブロックデータ転送器３３ヘ向けて出力する。
【００４９】
前記ブロックデータ転送器３３は、ブロック解析器３２からのノードブロックＮＢ（Ｓk）を受け、ノードブロックＮＢ（Ｓk）におけるブロックヘッダＢＨ（Ｓk）内の転送先頭アドレスＴＡＤ（Ｓk）及びバイト数ＢＳ（Ｓk）を使用して、ノードブロックＮＢ（Ｓk）における送信データＳＤ（Ｓk）を、バスアービタ２４及びメモリインターフェース２５を介してメモリ４０に転送する。また、ブロックデータ転送器３３は、ブロックヘッダＢＨ（Ｓk）内の送信先ノードＤＮ（Ｓk）が自ノードであるか否かを判定する。そして、送信先ノードＤＮ（Ｓk）が自ノードなかったときには、ブロックデータ転送器３３は、上記の送信データＳＤ（Ｓk）のメモリ４０への転送のみを行う。一方、送信先ノードＤＮ（Ｓk）が自ノードではなかったときには、ブロックデータ転送器３３は、上記の送信データＳＤ（Ｓk）のメモリ４０への転送に加えて、ブロックヘッダＢＨ（Ｓk）を、バスアービタ２４及びホストインターフェース２６を介してホスト計算機５０Ｎiのローカルメモリの所定アドレスに転送し、その後にホスト計算機５０Ｎiに対して割り込み要求ＩＲＱを発行する。
【００５０】
前記フレーム送信処理装置２３Ｎは、図５に示されるように、送信データバッファ３６と、フレーム生成器３７Ｎとを備えている。
【００５１】
前記送信データバッファ３６はトグルバッファであり、２つのバッファ単位をノードブロック送信ごとに交換しながら、ブロックヘッダ及び送信データから成るノードブロックデータの送信バッファとして使用されるようになっている。バッファ単位それぞれには、ホスト計算機５０Ｎiがホストインターフェース２６及びバスアービタ２４を介してノードブロックデータを書き込めるようになっている。なお、１回のノードブロックデータ量すなわちホスト計算機５０Ｎiが１つのバッファ単位に書き込むべきデータ量がバッファ単位の容量よりも大きいときには、バッファ単位がフルになった時点でホスト計算機５０Ｎiの書き込み動作が待たされる。そして、後述する自ノードブロック送信におけるノードブロックデータバッファ３６からのノードブロックデータの読み出しによりそのバッファ単位に空きができるまで、ホスト計算機５０Ｎiによるそのバッファ単位へのデータ書き込みが禁止される。
【００５２】
また、バッファ単位にノードブロックデータ書き込まれると、そのノードブロックデータが送信された後、フレーム受信処理装置２２（より詳しくは、ブロック解析器３２）から、前回の可変長フレームＦＬＭの受信時に送信したノードブロックデータを格納しているデータバッファを解放すべき旨を送信データ選択信号ＳＤＳにより通知されると、そのバッファ単位は、次のノードブロックデータのために解放される。この解放の結果、ホスト計算機５０Ｎiによるそのバッファ単位へのデータ書き込みが可能となる。
【００５３】
なお、ホスト計算機５０Ｎiが送信データバッファ３６にノードブロックデータを書き込むときには、そのノードブロックデータ内の送信データが、そのノードブロックデータで指定される先頭アドレス転送先頭アドレスとバイト数とで指定される自ノード装置１０Ｎi内のメモリ４０の領域に、同時に書き込まれるようになっている。
【００５４】
前記フレーム生成器３７Ｎは、フレーム受信処理装置２２からのリトライフラグＲ、ノードブロック部ＮＢＰ、及びフレーム送信開始信号ＳＦＬを入力し、フレーム送信開始信号ＳＦＬによって指示されたタイミングに従って、送信フレーム信号ＳＦＬＭとして、ＳＯＦの出力を開始する。このＳＯＦの出力に引き続き、フレーム受信処理装置２２からのリトライフラグＲを含むフレームヘッダＦＨ、及びフレーム受信処理装置２２からのノードブロック部ＮＢＰのうち、自ノードブロックを除いたもの（以下、「ノードブロック部ＮＢＰ’」と呼ぶ）を、送信フレーム信号ＳＦＬＭとして、順次送出する。そして、ノードブロック部ＮＢＰ’の送出後、新たなノードブロックデータがある場合には、新たなノードブロックデータを送信データバッファ３６から読み出して、送信フレーム信号ＳＦＬＭとして送出する。こうしてノードブロック部の出力が終了すると、引き続いて、フレーム生成器３７Ｎは、送信フレーム信号ＳＦＬＭとしてＥＯＦを出力する。
【００５５】
以上説明した通信制御装置２０Ｎは、各要素が、基本クロックに同期して動作するハードウエア回路によって構成されている。
【００５６】
前記メモリ４０は、複数の高速アクセス可能なメモリ素子、例えばスタティックＲＡＭ（Random Access Memory）素子等を有している。このメモリ４０は、図６に示されるように、ノード装置１０Ｍ，１０Ｎiごと、メモリ領域ＭＡＭ，ＭＡＮi（ｉ＝１〜Ｐ）が割り付けられている。これに応じて、ノード装置１０Ｍ，１０Ｎiは、送信するノードブロックにおけるブロックヘッダ内の転送先頭アドレス及びバイト数を設定するようになっており、ノード装置１０Ｍ，１０Ｎiから送信された送信データそれぞれは、メモリ領域ＭＡＭ，ＭＡＮiに格納されるようになっている。
【００５７】
ここで、以上のように構成された通信制御装置２０Ｎの全体的な動作について説明する。
【００５８】
通信制御装置２０Ｎは、まず、ＳＯＦ（図２（Ａ）参照）の受信を監視して、可変長フレームＦＬＭの受信を開始したか否かを判定する。ここで、否定的な判定がなされたときは、再度、受信の監視及び可変長フレームＦＬＭの受信開始の判定を行う。一方、肯定的な判定がなされたときは、通信制御装置２０Ｎは、受信した可変長フレームＦＬＭのフレームヘッダＦＨにおけるリトライフラグＲ（図２（Ａ）参照）がオンであるか否かを判定する。
【００５９】
ここで、受信した可変長フレームＦＬＭが、図７（Ａ）に示されるような、リトライ可変長フレームＦＬＭＲ１であり、リトライフラグＲがオンであったときには、通信制御装置２０Ｎは、リトライ可変長フレームを受信したと認識し、前回の通常可変長フレームの受信時に挿入した自ノードブロックを、最後のノードブロックとして今回受信したリトライ可変長フレームＦＬＭＲ１に挿入して送信する。すなわち、前回の通常可変長フレームの受信時に自ノードブロックを挿入していなかった場合には、通信制御装置２０Ｎは、図７（Ａ）に示されるリトライ可変長フレームＦＬＭＲ１と同一のリトライ可変長フレームを、可変長フレームＦＬＭとして送信する。一方、前回の通常可変長フレームの受信時に自ノードブロックを挿入していた場合には、通信制御装置２０Ｎは、図７（Ｂ）に示されるような、図７（Ａ）に示されるリトライ可変長フレームＦＬＭＲ１内の最後のノードブロックＮＢ（ＳQ）とＥＯＦとの間に、前回の通常可変長フレームの受信時に挿入した自ノードブロックＮＢ（ＳQ+1）が挿入されたリトライ可変長フレームＦＬＭＳ１を可変長フレームＦＬＭとして送信する。
【００６０】
なお、通信制御装置２０Ｎによるリトライ可変長フレームの送信は、受信したリトライ可変長フレームにおけるリトライフラグＲがオンであることの検出後、速やかに開始される。また、受信したリトライ可変長フレームにノードブロック部ＮＢＰ（図２（Ａ）参照）が含まれていないときには、通信制御装置２０Ｎは、フレームヘッダＦＨとＥＯＦとの間に前回の通常可変長フレームの受信時に挿入した自ノードブロックが挿入されたリトライ可変長フレームを送信することになる。
【００６１】
また、受信した可変長フレームＦＬＭが、図８（Ａ）に示されるような通常可変長フレームＦＬＭＲ２であり、リトライフラグＲがオフであったときには、通信制御装置２０Ｎは、受信した可変長フレームＦＬＭＲ２が通常可変長フレームであると認識し、最初のノードブロックＮＢ（Ｓ1）が自ノードブロックであるか否かを判定する。そして、否定的な判定がなされたときには、通信制御装置２０Ｎは、新たに送信すべき自ノードブロックを最後のノードブロックとして今回受信した可変長フレームＦＬＭに挿入して送信する。すなわち、新たに送信すべき自ノードブロックがない場合には、通信制御装置２０Ｎは、図８（Ａ）に示される通常可変長フレームＦＬＭＲ１と同一の通常可変長フレームを、可変長フレームＦＬＭとして送信する。一方、新たに送信すべき自ノードブロックがある場合には、通信制御装置２０Ｎは、図８（Ｂ）に示されるような、図８（Ａ）に示される通常可変長フレームＦＬＭＲ２内の最後のノードブロックＮＢ（ＳQ）とＥＯＦとの間に、新たに送信すべき自ノードブロックＮＢ（ＳQ+1）が挿入された通常可変長フレームＦＬＭＳ２を、可変長フレームＦＬＭとして送信する。
【００６２】
なお、受信した通常可変長フレームの最初のノードブロックＮＢ（Ｓ1）が自ノードブロックでない場合における通信制御装置２０Ｎによる通常可変長フレームの送信は、受信した可変長フレームにおけるリトライフラグＲがオフであることの検出後、速やかに開始される。また、受信したリトライ可変長フレームにノードブロック部ＮＢＰが含まれていないときには、通信制御装置２０Ｎは、フレームヘッダＦＨとＥＯＦとの間に新たに送信すべき自ノードブロックが挿入されたリトライ可変長フレームを送信することになる。
【００６３】
受信した可変長フレームＦＬＭが、図８（Ａ）のように、通常可変長フレームＦＬＭＲ２であり、かつ、最初のノードブロックＮＢ（Ｓ1）が自ノードブロックではないとき、以上の通常可変長フレームＦＬＭＳ２等の送信処理と並行して、通信制御装置２０Ｎは、ノードブロックＮＢ（Ｓ1）〜ＮＢ（ＳP）のＣＲＣチェックと、ノードブロックＮＢ（Ｓ1）〜ＮＢ（ＳP）内の送信データＳＤ（Ｓ1）〜ＳＤ（ＳP）のメモリ４０への転送処理を行う。かかる転送処理においては、上述したように、ブロック解析器３２によりＣＲＣエラーが検出されなかったノードブロックＮＢ（Ｓk）内の送信データＳＤ（Ｓk）のみが、ブロックヘッダＢＨ（Ｓk）内の転送先頭アドレスＴＡＤ（Ｓk）及びバイト数ＢＳに従って、ブロックデータ転送器３３によりメモリ４０へ転送される。そして、送信データＳＤ（Ｓk）がメモリ４０へ転送されたノードブロックＮＢ（Ｓk）におけるブロックヘッダＢＨ（Ｓk）内の送信先ノード識別子ＤＮ（Ｓk）が自ノードを示すものについて、上述したように、ブロックデータ転送器３３によるホスト計算機５０Ｎiへの割り込み要求処理が行われる。
【００６４】
また、受信した可変長フレームＦＬＭが、図９（Ａ）に示されるように、リトライフラグがオフの通常可変長フレームであり、かつ、最初のノードブロックＮＢ（Ｓ1）が自ノードブロックである通常可変長フレームＦＬＭＲ３あった場合には、通信制御装置２０Ｎは、まず、ノードブロックＮＢ（Ｓ1）についてＣＲＣチェックを行う。このＣＲＣチェックの結果、エラーが検出されなかったときには、通信制御装置２０Ｎは、受信した自ノードブロックＮＢ（Ｓ1）が削除され、かつ、新たに送信すべき自ノードブロックを最後のノードブロックとして挿入された通常可変長フレームを送信する。すなわち、新たに送信すべき自ノードブロックがない場合には、通信制御装置２０Ｎは、図９（Ｂ）に示されるような、図９（Ａ）に示される通常可変長フレームＦＬＭからノードブロックＮＢ（Ｓ1）が削除された通常可変長フレームＦＬＭＳ３を、可変長フレームＦＬＭとして送信する。また、新たに送信すべき自ノードブロックがある場合には、通信制御装置２０Ｎは、図９（Ｃ）に示されるような、図９（Ａ）に示される通常可変長フレームＦＬＭからノードブロックＮＢ（Ｓ1）が削除され、かつ、最後のノードブロックＮＢ’（ＳQ）として新たに送信すべき自ノードブロックが挿入された通常可変長フレームＦＬＭＳ３’を、可変長フレームＦＬＭとして送信する。
【００６５】
一方、前回の可変長フレームＦＬＭの受信時に自ノードブロックを挿入しており、かつ、最初のノードブロックＮＢ（Ｓ1）でＣＲＣエラーが検出されたときには、通信制御装置２０Ｎは、この最初のノードブロックＮＢ（Ｓ1）が自ノードブロックであり、かつ、ＣＲＣエラーが発生したと認識する。そして、通信制御装置２０Ｎは、図９（Ｄ）に示されるような、受信した自ノードブロックＮＢ（Ｓ1）が削除され、かつ、最後のノードブロックＮＢ’（ＳQ）として前回の通常可変長フレームの受信時に挿入した自ノードブロックが挿入された通常可変長フレームＦＬＭＳ３”を、可変長フレームＦＬＭとして送信する。
【００６６】
なお、受信した通常可変長フレームの最初のノードブロックＮＢ（Ｓ1）が自ノードブロックである場合における通信制御装置２０Ｎによるリトライ可変長フレームの送信は、受信した可変長フレームにおける最初のノードブロックＮＢ（Ｓ1）のＣＲＣチェック後、速やかに開始される。また、受信した通常可変長フレームに自ノードブロックＮＢ（Ｓ1）のみが含まれているときには、通信制御装置２０Ｎは、フレームヘッダＦＨとＥＯＦとの間に新たに送信すべき自ノードブロック又は前回の通常可変長フレームの受信時に挿入した自ノードブロックが挿入されたリトライ可変長フレームを送信することになる。
【００６７】
受信した可変長フレームＦＬＭが、図９（Ａ）のように、通常可変長フレームＦＬＭＲ３であり、かつ、最初のノードブロックＮＢ（Ｓ1）が自ノードブロックであるとき、以上の通常可変長フレームＦＬＭＳ３，ＦＬＭＳ３’，ＦＬＭＳ３”の送信処理と並行して、通信制御装置２０Ｎは、ノードブロックＮＢ（Ｓ2）〜ＮＢ（ＳQ）のＣＲＣチェックと、ノードブロックＮＢ（Ｓ2）〜ＮＢ（ＳQ）内の送信データＳＤ（Ｓ2）〜ＳＤ（ＳQ）のメモリ４０への転送処理を行う。かかる転送処理においては、上述した通常可変長フレームであり、かつ、最初のノードブロックＮＢ（Ｓ1）が自ノードブロックではないときと同様にして、ブロック解析器３２によりＣＲＣエラーが検出されなかったノードブロックＮＢ（Ｓk）内の送信データＳＤ（Ｓk）のみが、ブロックヘッダＢＨ（Ｓk）内の転送先頭アドレスＴＡＤ（Ｓk）及びバイト数ＢＳに従って、ブロックデータ転送器３３によりメモリ４０へ転送される。また、上述した通常可変長フレームであり、かつ、最初のノードブロックＮＢ（Ｓ1）が自ノードブロックではないときと同様の割り込み処理が行われる。
【００６８】
図１に戻り、前記マスタノード装置１０Ｍは、マスタノード装置１０Ｍの処理を統括制御するホスト計算機５０Ｍと、他のノード装置のホスト計算機との間でデータ通信を行う際の通信制御を行う通信制御装置２０Ｍと、ホスト計算機５０Ｍ及び通信制御装置２０Ｍの双方からアクセス可能なメモリ装置４０とを備えている。なお、マスタノード装置１０Ｍの説明にあたり、通常ノード装置１０Ｎiと同一の構成要素を有する場合には、同一の符号を付し、重複する説明を省略する。
【００６９】
前記通信制御装置２０Ｍは、図１０に示されるように、光ファイバ１５Pを介した可変長フレームＦＬＭを受信し、光電気信号変換等を行って受信フレーム信号ＲＦＬＭに変換するレシーバ２１Ｒと、受信フレーム信号ＲＦＬＭを入力して処理するフレーム受信処理装置２２と、送信フレーム信号ＳＦＬＭの生成処理を行うフレーム送信処理装置２３Ｍと、送信フレーム信号ＳＦＬＭを光電変換等して可変長フレームＦＬＭを光ファイバ１５0に送出する信号トランスミッタ２１Ｔとを備えている。そして、通信制御装置２０Ｍは、上述の通信制御装置２０Ｎと同様に、さらに、バスアービタ２４、メモリインターフェース２５、及びホストインターフェース２６を備えている。なお、図１０においても図３の場合と同様に、データ信号の流れが実線矢印にて示されているが、割り込み要求等の制御信号の流れの表示は省略されている。
【００７０】
前記フレーム送信処理装置２３Ｍは、図１１に示されるように、上述した図５に示されたフレーム送信処理装置２３Ｎと比べて、フレーム生成器３７Ｎに代えてフレーム生成器３７Ｍを備えるとともに、フレーム生成制御器３８を更に備える点が相違する。
【００７１】
前記フレーム生成制御器３８は、パワーオン等による初期化が行われたことを検出すると、新たな可変長フレームＦＬＭをフレーム伝送路１９に送出すべき旨をフレーム生成制御信号ＦＬＧによりフレーム生成器３７Ｍに通知する。また、フレーム生成制御器３８は、フレーム受信処理装置２２から出力されたフレーム信号受信ＦＬＲをモニタし、可変長フレームＦＬＭを所定時間以上にわたって受信しないときに可変長フレームＦＬＭが消失したものと判断し、新たに可変長フレームＦＬＭをリトライ可変長フレームとして、フレーム伝送路１９に送出すべき旨をフレーム生成制御信号ＦＬＧによりフレーム生成器３７Ｍに通知する。ここで、フレーム生成制御器３８は、可変長フレームＦＬＭを所定時間以上にわたって受信しないことを、ＳＯＦ又はＥＯＦを所定時間以上にわたって検出しないことによって検出する。
【００７２】
さらに、フレーム生成制御器３８は、リトライ可変長フレームの送出指示をフレーム生成制御信号ＦＬＧによりフレーム生成器３７Ｍに通知後、リトライ可変長フレームを所定時間以上にわたって受信しないときに、フレーム伝送路１９のいずれかにおいて故障が発生したと判断する。そして、フレーム生成制御器３８は、その旨をホスト計算機５０Ｍに通知する。
【００７３】
前記フレーム生成器３７Ｍは、上記のフレーム生成器３７Ｎの作用に加えて、フレーム生成制御器３８からのフレーム生成制御信号ＦＬＧによる指示に応じて、新たな可変長フレームＦＬＭとして、通常可変長フレーム又はリトライ可変長フレームを生成してフレーム伝送路１９に送出する。さらに、フレーム生成器３７Ｍは、リトライ可変長フレームを受信したときは、リトライ可変長フレームを通常可変長フレームに変更して、フレーム伝送路１９に送出する。
【００７４】
ここで、以上のように構成された通信制御装置２０Ｍの全体的な動作について説明する。
【００７５】
電源投入や新たな通常ノード装置の増設等伴う通信システム１００の初期化が行われると、通信制御装置２０Ｍが、新たに通常可変長フレームとして、可変長フレームＦＬＭの生成を指示する。この指示を受けた通信制御装置２０Ｍは、図１２（Ａ）に示されるような、ノードブロック部ＮＢＰを含まず、フレームヘッダ部ＦＨにおけるリトライフラグＲがオフに設定された可変長フレームＦＬＭＳ４を生成し、可変長フレームＦＬＭとして送信する。その後、この可変長フレームＦＬＭがフレーム伝送路１９を進行し、ノード装置１０Ｍ，１０Ｎiを順次巡る。
【００７６】
かかる通常可変長フレームＦＬＭの巡回にあたり、マスタノード装置１０Ｍは、通常可変長フレームＦＬＭの消失の監視を除いて、上述の通常ノード装置２０Ｎiと同様に動作する。こうした通常可変長フレームＦＬＭの巡回中において、可変長フレームＦＬＭの消失エラーが検出されると、通信制御装置２０Ｍは、図１２（Ｂ）に示されるような、ノードブロック部ＮＢＰを含まず、フレームヘッダ部ＦＨにおけるリトライフラグＲがオンに設定されたリトライ可変長フレームＦＬＭＳ５を生成し、可変長フレームＦＬＭとして送信する。
【００７７】
そして、通常ノード装置１０Ｎiを順次巡回した可変長フレームとして、図１３（Ａ）に示されるようなリトライ可変長フレームＦＬＭＲ４を受信すると、通信制御装置２０Ｍは、リトライ可変長フレームＦＬＭＲ４中のリトライフラグＲをオフに設定するとともに、前回の通常可変長フレームを受信したときに挿入した自ノードブロックを挿入して送信する。すなわち、前回の通常可変長フレームを受信したときに挿入した自ノードブロックがないときには、通信制御装置２０Ｍは、図１３（Ｂ）に示されるような、図１３（Ａ）のリトライ通常可変長フレームＦＬＭＲ４のリトライフラグＲをオフに設定変更したのみの通常可変長フレームＦＬＭＳ６を、可変長フレームＦＬＭとして送信する。一方、前回の通常可変長フレームを受信したときに挿入した自ノードブロックがあるときには、通信制御装置２０Ｍは、図１３（Ｃ）に示されるような、図１３（Ａ）のリトライ可変長フレームＦＬＭのリトライフラグＲをオフに設定変更するとともに、最後のノードブロックＮＢ（ＳQ+1）として前回の通常可変長フレームを受信したときに挿入した自ノードブロックが挿入された通常可変長フレームＦＬＭＳ６’を、可変長フレームＦＬＭとして送信する。
【００７８】
なお、以上のような可変長フレームＦＬＭの巡回と、可変長フレームＦＬＭ受信処理における他ノードブロック内の送信データのメモリ４０への転送と、自ノードブロックの可変長フレームＦＬＭへの挿入処理における自ノードブロック内の送信データのメモリ４０への書き込みが行われる結果、可変長フレームＦＬＭの巡回時間程度のタイムラグはあるが、各ノード装置１０Ｍ，１０Ｎiにおけるメモリ４０の内容は互いに同一となるようになっている。
【００７９】
以上のように構成された通信システム１００では、複数のノード装置１０Ｍ，１０Ｎiを順次巡るループ状のフレーム伝送経路上には、１つの可変長フレームＦＬＭが存在するのみである。このため、フレーム伝送経路におけるフレーム衝突は原理的に発生し得ない。
【００８０】
そして、データ送信を行おうとするノード装置１０Ｍ，１０Ｎiは、可変長フレームＦＬＭを受信したときに、あたかも可変長フレームＦＬＭという貨物列車に車両を新たに連結するように、送信データを含むノードブロックを可変長フレームＦＬＭに挿入する。また、データ送信を行ったノード装置１０Ｍ，１０Ｎiは、他のノード装置を巡った可変長フレームＦＬＭを受信したときに、受信した可変長フレームＦＬＭに挿入されている、前回の可変長フレームＦＬＭの受信時に自分が挿入した自ノードブロックを可変長フレームＦＬＭから削除する。
【００８１】
したがって、本実施形態の通信システム１００によれば、簡単な構成で、ノード装置１０Ｍ、１０Ｎi間におけるデータ転送のターンアラウンド時間を短縮化でき、かつ、データ転送のターンアラウンド時間の上限を保証することができる。
【００８２】
また、ノード装置１０Ｍ、１０Ｎi間におけるデータ転送をハードウエア回路で構成された通信制御装置２０Ｍ，２０Ｎのみ制御するので、ホスト計算機５０Ｍ，５０Ｎiに負担をかけずに、かつ、高速で行うことができる。
【００８３】
また、フレーム伝送経路１９における可変長フレームＦＬＭの消失を監視し、可変長フレームＦＬＭの消失が検出された場合に、通信制御装置２０Ｍ，２０Ｎによるリトライ処理により、消失直前の可変長フレームＦＬＭを速やかに再現するので、速やかにフレーム消失エラーからの回復ができる。
【００８４】
また、ノード装置１０Ｍ，１０Ｎiが挿入したノードブロックごとにエラー検出を行い、エラーが検出されたノードブロックに含まれる送信データは無視するとともに、同一のノードブロックを再送するので、信頼性が高く、かつ、確実なノード装置１０Ｍ、１０Ｎi間におけるデータ転送を行うことができる。
【００８５】
また、僅かな時間差はあるが、ノード装置１０Ｍ，１０Ｎiそれぞれのメモリ４０相互間で記憶データが同一となるので、ノード装置１０Ｍ，１０Ｎi相互間において、同一のデータを共有することができる。すなわち、ノード装置１０Ｍ，１０Ｎiのメモリ４０を一種の共有メモリとして使用することができる。
【００８６】
なお、上記の実施形態では、シリアル伝送路として光ファイバを使用したが、同軸ケーブルやツイストペア線を使用することもできる。
【００８７】
また、上記の実施形態では、個別に設けたメモリ４０にデータを転送したが、ホスト計算機５０Ｍ，５０Ｎiのローカルメモリに直接転送するようにしてもよい。
【００８８】
また、上記の実施形態では、ブロックヘッダ内に送信先ノード識別子を含ませることとしたが、送信データ内に送信先ノード識別子を含ませることとしてもよい。また、送信先ノード識別子は、ブロックヘッダ内の任意の位置に置くことができる。
【００８９】
さらに、送信すべきデータを送信データとする自ノードブロックを送信した後、送信先ノード識別子を送信データとする自ノードブロックを別途送信し、この送信先ノード識別子から成る送信データを受信した、当該送信先ノード識別子で特定されるノード装置において割り込み要求を発生させることとしてもよい。
【００９０】
また、ブロックデータ転送器３３が、ホスト計算機５０Ｍ，Ｎiへの割り込み要求を発生させるのではなく、処理要求をメモリ４０内の特定領域に書き込むこととし、ホスト計算機５０Ｍ，Ｎiが自ノード内のメモリ４０内におけるその特定領域内のデータを定期的にセンスすることとしてもよい。
【００９１】
また、上述のような各メモリ４０の内容が相互に同一となることを利用して、一つのホスト計算機が自ノードのメモリ４０内の特定領域に処理要求を書き込むことにより、実質的に他ノードのメモリ４０内の特定領域に処理要求を書き込むこととするとともに、他のホスト計算機が、自ノードのメモリ４０内の特定領域をセンスすることにより、処理要求を伝達するようにしてもよい。
【００９２】
また、上記の実施形態では、ノードブロック単位にホスト計算機５０Ｍ，５０Ｎiへ割り込み要求を行うこととしたが、ノードブロック部が含まれる可変長フレームＦＬＭの受信単位で、ホスト計算機５０Ｍ，５０Ｎiへ割り込み要求を行うこととすることもできる。
【００９３】
【発明の効果】
以上説明したように、本発明の通信システムによれば、ループ状にノード装置間が接続される簡易な構成で、ターンアラウンド時間を短縮化し、かつ、ターンアラウンド時間の上限を保証しつつ、ノード装置間でデータ転送を行うことができる。
【００９４】
また、本発明の通信方法によれば、ノード装置間におけるデータ転送のターンアラウンド時間を短縮化でき、かつ、データ転送のターンアラウンド時間の上限を保証することができる。
【００９５】
また、本発明の通信制御装置を各ノード装置が備えることにより、簡易な構成で、ターンアラウンド時間を短縮化し、かつ、ターンアラウンド時間の上限を保証しつつ、ノード装置間でデータ転送を行うことができる通信システムを構築することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る通信システムの構成を概略的に示すブロック図である。
【図２】図２（Ａ）〜図２（Ｃ）は、図１の可変長クレームの構成を説明するための図である。
【図３】図１の通常ノード装置の通信制御装置の構成を示すブロック図である。
【図４】図３のフレーム受信装置の構成を示すブロック図である。
【図５】図３のフレーム送信装置の構成を示すブロック図である。
【図６】図１のメモリのアドレス割付を説明するための図である。
【図７】図７（Ａ）及び図７（Ｂ）は、図３の通信制御装置における処理を説明するための図（その１）である。
【図８】図８（Ａ）及び図８（Ｂ）は、図３の通信制御装置における処理を説明するための図（その２）である。
【図９】図９（Ａ）〜図９（Ｄ）は、図３の通信制御装置における処理を説明するための図（その３）である。
【図１０】図１のマスタノード装置の通信制御装置の構成を示すブロック図である。
【図１１】図１０のフレーム送信装置の構成を示すブロック図である。
【図１２】図１２（Ａ）及び図１２（Ｂ）は、図１０の通信制御装置における処理を説明するための図（その１）である。
【図１３】図１３（Ａ）〜図１３（Ｃ）は、図１０の通信制御装置における処理を説明するための図（その２）である。
【符号の説明】
１０Ｍ…マスタノード装置（ノード装置）、１０Ｎ1〜１０ＮP…通常ノード装置（ノード装置）、１５0〜１５P…光ファイバ（シリアル伝送路）、１９…フレーム伝送路（フレーム巡回経路）、２０Ｍ，２０Ｎ…通信制御装置、２２…フレーム受信処理装置、２３Ｍ，２３Ｎ…フレーム送信処理装置、４０…メモリ、１００…通信システム、ＦＬＭ…可変長フレーム。
【図１】
0003715560.tif 000002
【図２】
0003715560.tif 000003
【図３】
0003715560.tif 000004
【図４】
0003715560.tif 000005
【図５】
0003715560.tif 000006
【図６】
0003715560.tif 000007
【図７】
0003715560.tif 000008
【図８】
0003715560.tif 000009
【図９】
0003715560.tif 000010
【図１０】
0003715560.tif 000011
【図１１】
0003715560.tif 000012
【図１２】
0003715560.tif 000013
【図１３】
0003715560.tif 000014