(57)【特許請求の範囲】
【請求項１】
複数の処理ノードが、少なくとも１つのスイッチング装置により相互結合され、前記スイッチング装置を介して各処理ノードが互いにデータ転送を行う並列プロセッサシステムにおいて、
前記各処理ノードは、次段の前記スイッチング装置に対してデータを送信し、また、前段の前記スイッチング装置から送信されてくるデータを受信する第１のデータ送受信装置を有し、
前記スイッチング装置は、前段のいずれかの処理ノードまたは他のスイッチング装置から送信されてくるデータを受信し、該データを次段のいずれかの処理ノードまたは他のスイッチング装置に対して送信する第２のデータ送受信装置を有し、
受信側の処理ノードは、受信したデータのエラーを検出した場合、前段の送信側のスイッチング装置内の第２のデータ送受信装置へデータの再送要求を行い、前段の送信側のスイッチング装置内の前記第２のデータ送受信装置は、前記再送要求に応じて前記エラーが検出されたデータを再送し、
受信側のスイッチング装置は、受信したデータのエラーを検出した場合、前段の送信側の処理ノードまたはスイッチング装置内の第１または第２のデータ送受信装置へデータの再送要求を行い、前段の送信側の処理ノードまたはスイッチング装置内の前記第１または第２のデータ送受信装置は、前記再送要求に応じて前記エラーが検出されたデータを再送することを特徴とする並列プロセッサシステム。
【請求項２】
複数の処理ノードが、少なくとも１つのスイッチング装置により相互結合され、前記スイッチング装置を介して各処理ノードが互いにデータ転送を行う並列プロセッサシステムにおいて、
各処理ノードは、次段の前記スイッチング装置に対してデータを送信し、また、前段の前記スイッチング装置から送信されてくるデータを受信する第１のデータ送受信装置を有し、
前記スイッチング装置は、前段のいずれかの処理ノードまたは他のスイッチング装置から送信されてくるデータを受信し、該データを次段のいずれかの処理ノードまたは他のスイッチング装置に対して送信する第２のデータ送受信装置を有し、
前記第１、第２のデータ送受信装置は、送受信する複数個のデータを一時的に保持する転送データバッファと、データの送受信と前記転送データバッファに対する送信データの読み出し及び受信データの書き込みとを制御する送受信制御手段と、受信データのエラーの有無を検出するエラー検出手段を有し、
各処理ノード内の前記第１のデータ送受信装置は、前記エラー検出手段がエラーを検出した場合に、前段の送信側のスイッチング装置へ再送要求を発行し、また、次段の受信側のスイッチング装置から発行された再送要求を受信した場合に前記送受信制御手段へデータの再送を指示する第１の再送制御手段を備え、
スイッチング装置内の前記第２のデータ送受信装置は、前記エラー検出手段がエラーを検出した場合に、前段の送信側の処理ノードまたはスイッチング装置へ再送要求を発行し、また、次段の受信側の処理ノードまたはスイッチング装置から発行された再送要求を受信した場合に前記送受信制御手段へデータの再送を指示する第２の再送制御手段を備え、
前記送受信制御手段は、前記再送の指示に応じて前記転送データバッファに保持されている既送信データを再度読み出して再送することを特徴とする並列プロセッサシステム。
【請求項３】
請求項２記載の並列プロセッサシステムにおいて、
前記転送データバッファは、複数のデータ保持領域を備え、送受信するデータを送信順または受信順に連続する前記データ保持領域に保持し、
前記送受信制御手段は、前記転送データバッファ内の各データ保持領域を指示するポインタを制御するバッファ制御手段を備え、
前記バッファ制御手段は、前記再送の指示に応じて、予め決められた減算値を前記ポインタから減算し、減算したポインタで指示されるデータ保持領域以降の領域に保持されている前記減算値分の複数の既送信データを順次読み出し、前記送受信制御手段は、読み出された前記既送信データを順次再送することを特徴とする並列プロセッサシステム。
【請求項４】
請求項３記載の並列プロセッサシステムにおいて、
前記送受信制御手段が前段の前記送信側の処理ノードまたはスイッチング装置から既受信データが再送されてきたことを認識すると、前記バッファ制御手段は、前記減算値を前記ポインタから減算し、再送されてきた既受信データを前記減算したポインタで指示されるデータ保持領域以降の領域に順次書き込むことを特徴とする並列プロセッサシステム。
【請求項５】
請求項３記載の並列プロセッサシステムにおいて、
前記第１、第２のデータ送受信装置は、外部から任意の値が設定される減算値設定手段をそれぞれ有し、前記バッファ制御手段は、前記減算値設定手段に設定された値を前記減算値として前記ポインタから減算することを特徴とする並列プロセッサシステム。
【請求項６】
請求項２記載の並列プロセッサシステムにおいて、
前記第１、第２のデータ送受信装置は、前記再送制御手段からのカウント指示に応じて再送リトライ回数をカウントするカウント手段と、外部から任意の値が設定されるリトライ値設定手段と、前記カウント手段がカウントした値と前記リトライ値設定手段に設定された値とが一致するか否か比較し、一致した場合に前記再送制御手段に通知するコンペア手段とをそれぞれ有し、
前記再送制御手段は、前記再送要求を受信すると前記カウント手段にカウントを指示し、前記コンペア手段から前記通知がないことを認識して前記送受信制御手段にデータの再送を指示することを特徴とする並列プロセッサシステム。
【請求項７】
複数の処理ノードが、少なくとも１つのスイッチング装置により相互結合され、前記スイッチング装置を介して各処理ノードが互いにデータ転送を行う並列プロセッサシステムのデータ転送方法において、
前記各処理ノードは、次段の前記スイッチング装置に対してデータを送信し、また、前段の前記スイッチング装置から送信されてくるデータを受信し、
前記スイッチング装置は、前段のいづれかの処理ノードまたは他のスイッチング装置から送信されてくるデータを受信し、また、次段のいずれかの処理ノードまたは他のスイッチング装置に対してデータを送信し、
前記処理ノードまたは前記スイッチング装置は、受信したデータのエラーの有無を検出し、
受信側の処理ノードは、前記エラーを検出した場合、前段の送信側のスイッチング装置へデータの再送要求を発行し、前段の前記送信側のスイッチング装置は、前記再送要求に応じて前記エラーが検出されたデータを含む複数の既送信データを再送し、
受信側のスイッチング装置は、前記エラーを検出した場合、前段の送信側の処理ノードまたはスイッチング装置へデータの再送要求を発行し、前段の前記送信側の処理ノードまたはスイッチング装置は、前記再送要求に応じて前記エラーが検出されたデータを含む複数の既送信データを再送することを特徴とするデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ送受信装置に係り、特に転送エラーが発生した場合にデータを再送する機能を有するデータ送受信装置に関する。
【０００２】
【従来の技術】
従来、複数の処理ノードをネットワークで接続した並列プロセッサシステムにおいては、処理ノード間のデータ転送中にネットワーク内で転送エラーが発生した場合であっても送信側処理ノードからの再送信を行っていた。
【０００３】
以下、このような従来技術について具体的に説明する。
【０００４】
図９は、従来の並列プロセッサシステムを示すブロック図である。
【０００５】
この並列プロセッサシステムでは、データ送信装置３００及びデータ受信装置４００を備えたデータ転送装置６０８を各々有するＮ個のプロセッサエレメント６００（１）〜（N）が相互結合網７００を介して互いに接続されている。
【０００６】
図９において、各プロセッサエレメント６００（１）〜（N）は、プロセッサ６０２、メモリ６０４、内部バス６０６、他のプロセッサエレメントとの間のデータ通信の為のデータ転送装置６０８をそれぞれ有している。また、各プロセッサエレメント６００（１）〜（Ｎ）のデータ転送装置６０８と相互結合網７００との間には、それぞれ外部バス６１２（１）〜（Ｎ）が設けられている。
【０００７】
この並列プロセッサシステムにおいて、例えば、プロセッサエレメント６００（１）からプロセッサエレメント６００（Ｎ）にデータ転送を行った場合に、相互結合網７００内にて転送エラーが発生したとする。すると、以下に説明するデータ送信装置３００及びデータ受信装置４００の動作に基づき、宛先のプロセッサエレメント６００（N）では、この転送エラーに基づく受信エラーを検出し、プロセッサエレメント６００（Ｎ）内のデータ転送装置６０８からプロセッサエレメント６００（１）に再送要求信号を送信する。プロセッサエレメント６００（１）は再送要求信号を受信することにより、転送処理を一時中断し、プロセッサエレメント６００（１）内のデータ転送装置６０８から転送エラーの発生したデータを再送する。
【０００８】
図７に、プロセッサエレメント６００内のデータ転送装置６０８が備えるデータ送信装置３００及びデータ受信装置４００のブロック図を示す。これらの装置は各プロセッサエレメントのデータ転送装置６０８内に備えられて、データの送受信を行うが、図７では、データ送信装置３００とデータ受信装置４００がそれぞれ別のプロセッサエレメントに備えられて、両者の間でデータ転送が行われるものとして説明する。
【０００９】
データ送信装置３００は、ＦＩＦＯメモリ３０２、ＦＩＦＯ制御回路３０４、ＥＣＣ回路３０６、データラッチ３０８、データセレクタ３１０、及びデータ送信制御回路３１２を備える。そして、データ送信装置３００はデータ１６を順次送信し、かつ、送信したデータに対してデータ受信装置４００でエラーが検出された場合には、データ受信装置４００から返送されてくる再送要求信号１８を受信する。
【００１０】
一方、データ受信装置４００は、データラッチ４０４とＥＣＣ回路４０６とを備えるデータ受信回路４０２、ＦＩＦＯメモリ４０８、ＦＩＦＯ制御回路４１０、及びデータ受信制御回路４１２を備えている。このうち、データラッチ４０４は、データ送信装置３００からのデータ１６を受信するための回路である。
【００１１】
データ送信を行う場合、データ送信装置３００内のデータ送信制御回路３１２は、ＦＩＦＯ制御回路３０４に指示を与えてＦＩＦＯメモリ３０２からデータを取り出させる。そして、取り出させたデータをデータセレクタ３１０に選択させて送信データ１６として送信させ、かつ、データラッチ３０８にそのデータを保持させる。データ送信制御回路３１２は、このようにしてあるデータ(データｎ＋１)を送信させ、かつ、このデータをデータラッチ３０８に保持させたうえで、ＦＩＦＯ制御回路３０４にＦＩＦＯメモリ３０２から引き続くデータ（データｎ＋２）を取り出させ、データセレクタ３１０に送信させる。その後、先に送信したデータｎ＋１に対する再送要求信号１８の有無を判定する。
【００１２】
判定の結果、データｎ＋１に対する再送要求信号１８を受信していないと判定した場合には、データｎ＋２をデータラッチ３０８に保持させ、それまでデータラッチ内に保持されていたデータｎ＋１を更新する。そして、ＦＩＦＯ制御回路３０４のＦＩＦＯポインタを更新させる。その後、ＦＩＦＯ制御回路３０４にＦＩＦＯメモリ３０２から引き続くデータ（データｎ＋３）を取り出させ、このデータｎ＋３をデータセレクタ３１０に送信させると言う一連のデータ連続送信動作を実行する。
【００１３】
一方、判定の結果、データｎ＋１に対する再送要求信号１８を受信したと判定した場合には、データｎ＋２をデータラッチ３０８に保持させずにデータｎ＋１を維持させ、ＦＩＦＯ制御回路３０４のＦＩＦＯポインタの更新を禁止する。そして、データラッチ３０８が保持しているデータｎ＋１をデータセレクタ３１０に再送データとして送信させるという再送動作を実行する。
【００１４】
データの受信を行う場合、データ受信装置４００内のデータ受信制御回路４１２は、データ送信装置３００から送られてくるデータをデータ受信回路４０２に受信させる。そして、データ受信回路４０２から出力されたデータをＦＩＦＯメモリ４０８へ格納させる。
【００１５】
データ受信制御回路４１２は、このようにしてあるデータ(データｎ＋１)をＦＩＦＯメモリ４０８に格納させた後、データ送信装置３００から送られてくる次のデータ（データｎ＋２）をデータラッチ４０４に受信させる。その後、ＥＣＣ回路４０６によるデータｎ＋１に対する誤り検出信号１７の生成の有無を判定する。この際、ＦＩＦＯ制御回路４１０のＦＩＦＯポインタは、ＦＩＦＯメモリ４０８の全領域のうちのデータｎ＋１が格納された領域を示している。
【００１６】
判定の結果、データｎ＋１に対する誤り検出信号１７が生成されていないと判定した場合には、ＦＩＦＯ制御回路４１０のＦＩＦＯポインタを更新させる。そして、ＥＣＣ回路４０６によりデータｎ＋２に対する検査及び出力を実行させ、ＥＣＣ回路４０６から出力されたデータｎ＋２をＦＩＦＯメモリ４０８へ格納させる。その後、データ送信装置３００から転送されてくる次のデータ（データｎ＋３）をデータラッチ４０４に受信させるという一連のデータ連続受信動作を実行する。
【００１７】
一方、判定の結果、データｎ＋１に対する誤り検出信号１７が生成されたと判定した場合には、データ送信装置３００へ向けて再送要求信号１８を送信する。一方、ＦＩＦＯメモリ４０８に格納されたデータｎ＋１を廃棄させるようにＦＩＦＯ制御回路４１０のポインタの更新を禁止し、また、受信済のデータｎ＋２も廃棄するようにＥＣＣ回路４０６による検査及び出力を禁止する。そして、データ送信装置３００から送られてくる再送データに対して、データ受信回路４０２による受信、検査及び出力を各々実行させる。その後、データ受信回路４０２から出力された再送データを上記ロックされたＦＩＦＯポインタに基づいてＦＩＦＯメモリ４０８へ格納させるという再受信動作を実行する。
【００１８】
図８は、以上のデータ送信装置３００及びデータ受信装置４００の動作を示したタイムチャートである。
【００１９】
データ送信装置３００では、例えばデータｎ＋１を送信した後、データｎ＋１に対する再送要求信号１８の受信の有無を確認しないまま次のデータｎ＋２をパイプライン方式で連続的に送信する。一方、データ受信装置４００は、データｎ＋１を受信した後、データｎ＋１の誤りの有無を確認しないままデータｎ＋２をパイプライン方式で連続的に受信する。そして、データｎ＋１について転送エラーが生じた場合には、データ受信装置４００はデータ送信装置３００に再送要求信号１８を送信して、受信したデータｎ＋１とデータｎ＋２との双方がデータ受信装置４００内で廃棄される。その後、データ送信装置３００のデータラッチ３０８から再送データ(Ｒデータｎ＋１)がデータセレクタ３１０を通して直ちに送信される。しかも、Ｒデータｎ＋１に引き続いて次のデータｎ＋２も直ちに再送される。
【００２０】
尚、以上のような従来技術に関するものとして特開平５−６１７９８号公報に記載されたものが知られている。
【００２１】
【発明が解決しようとする課題】
上記した従来技術においては、データ転送装置６０８が連続的にデータを送信するといってもデータｎ＋１からデータｎ＋３まで連続して送信しているに過ぎない。また、再送用のデータを一時的に保存するためのデータラッチをメモリとは別にデータ送信装置に持たせており、再送は１データ単位でしか行っていない。このような構成では、一時保存用のラッチ等の関係で転送距離と転送速度に制約を与えてしまう。
【００２２】
更に、プロセッサエレメント間でのデータ転送処理中にエラーが発生したポイントが仮に相互結合網内であったとしても、再送するには、必ず送信プロセッサエレメントから行わなければならない。また、送信プロセッサにおいて、この再送をソフトフェアによって実行する場合には、そのシステム上でのオーバヘッドが大きくなってしまう。
【００２３】
そこで、本発明の目的は、システム内の任意のポイントからデータ再送を行うことを可能とし、また再送データ数を可変としてシステムにおける転送距離や転送速度の制約なく、データ再送を行える並列プロセッサシステム及びデータ送受信装置を提供するものである。
【００２４】
【課題を解決するための手段】
上記目的を達成するため、本発明の並列プロセッサシステムでは、少なくとも１つのスイッチング装置により相互結合された複数の処理ノードの各々が、スイッチング装置に対して転送データを送信し、また、スイッチング装置から送信されてくる転送データを受信する。また、スイッチング装置は、いずれかの処理ノードまたは他のスイッチング装置から送信される転送データを受信し、該転送データを宛先の処理ノードまたは他のスイッチング装置に対して送信する。そして、受信側の処理ノードまたはスイッチング装置で受信したデータのエラーを検出した場合、送信側の処理ノードまたはスイッチング回路へ転送データの再送要求を行い、送信側の処理ノードまたはスイッチング回路は、再送要求に応じて転送データを再送する。
【００２５】
また、本発明の並列プロセッサシステムでは、各処理ノード及びスイッチング装置がそれぞれデータ送受信装置を備え、各データ送受信装置は、送受信する複数個のデータを一時的に保持する転送データバッファと、転送データの送受信と転送データバッファに対する送信データの読み出し及び受信データの書き込みとを制御する送受信制御手段と、受信データのエラーの有無を検出するエラー検出手段と、前記エラー検出手段がエラーを検出した場合に送信側の処理ノードまたはスイッチング回路へ再送要求を発行し、また、受信側の処理ノードまたはスイッチング装置から発行された再送要求を受信した場合に前記送受信制御手段へデータの再送を指示する再送制御手段とを備える。そして、送受信制御手段は、再送指示に応じて転送データバッファに保持されている既送信データを再度読み出して再送する。
【００２６】
更に、転送データバッファは、複数のデータ保持領域を備えて送受信するデータを送信順または受信順に連続する保持領域に保持し、送受信制御手段は、転送データバッファ内の各保持領域を指示するポインタを制御するバッファ制御手段を備える。そして、バッファ制御手段は、再送指示に応じて、予め決められた減算値をその時点でのポインタから減算し、減算したポインタで指示される領域以降の領域に保持されている減算値分の複数の既送信データを順次読み出し、送受信制御手段は、読み出された複数の既送信データを再送する。
【００２７】
このように構成することにより、処理ノードとスイッチング装置との間でデータ転送中に転送エラーが発生した場合でも、送信側の処理ノードまたはスイッチング装置から再送処理を行うことができるため、常に送信側の処理ノードが再送処理を行う必要がなくなり、処理ノードの再送処理にかかるオーバーヘッドを大幅に削減できる。
【００２８】
また、再送するデータ数を可変にすることができるため、各装置間の転送速度及び転送距離の制約をなくしてデータの再送を行うことができる。
【００２９】
【発明の実施の形態】
以下、本発明の実施例について、図１から図６を用いて具体的に説明する。
【００３０】
図５に本実施例における並列プロセッサシステムの構成図を示す。
【００３１】
図５において、Ｎ（０）〜Ｎ（１７）はそれぞれ処理ノードである。また、Ｓ（００）〜Ｓ（２０）は各処理ノード間を相互結合するスイッチング回路である。ここで、スイッチング回路Ｓ（００）〜Ｓ（０２）は、それぞれスイッチング回路Ｓ（１０）と接続し、スイッチング回路Ｓ（０３）〜Ｓ（０５）は、それぞれスイッチング回路Ｓ（１１）と接続し、また、スイッチング回路Ｓ（１０）とＳ（１１）は、それぞれスイッチング回路Ｓ（２０）と接続することによりノード間ネットワーク装置を構成している。
【００３２】
また、スイッチング回路のうちＳ（００）〜Ｓ（０５）は、ここではそれぞれ３台の処理ノードと接続している。
【００３３】
このように処理ノードＮ（０）〜Ｎ（１７）を、多段に接続されたスイッチング回路Ｓ（００）〜Ｓ（２０）を介して相互結合することにより、並列プロセッサシステムを構成している。そして、各処理ノードＮ（０）〜Ｎ（１７）は、スイッチング回路Ｓ（００）〜Ｓ（２０）を介して相互にデータ転送を行う。
【００３４】
尚、以上の構成における処理ノードＮの数、スイッチング回路Ｓの数、及びスイッチング回路Ｓに接続する処理ノードＮの数等は一例にすぎない。
【００３５】
図６に、図５において太線で囲まれた処理ノードＮ（０）〜Ｎ（２）及びスイッチング回路Ｓ（００）の詳細な構成図を示す。
【００３６】
図６において、処理ノードＮ（０）はプロセッサＰ、メモリＭとデータ送受信装置１００、及びこれらの間を接続する内部バス等から構成されている。処理ノードＮ（０）は、プロセッサＰの指示によりメモリＭに格納されているデータをデータ送受信装置１００を介して、接続しているスイッチング回路Ｓ（００）へ転送し、また、スイッチング回路Ｓ（００）から転送されてきたデータをデータ送受信装置１００で受信してメモリＭへ格納する。他の処理ノードＮ（１）〜Ｎ（１７）についても同様の構成を備えている。
【００３７】
一方、スイッチング回路Ｓ（００）は、接続している各処理ノードに対応して設けられているデータ送受信装置２００（０）〜２００（２）と、各処理ノードと次段のスイッチング回路Ｓ（１０）とを選択的に接続するスイッチング部Ｓ（０）等から構成されている。スイッチング回路Ｓ（００）は、接続しているいずれかの処理ノードＮ（０）〜Ｎ（２）から転送されてきたデータを、対応するデータ送受信装置２００で受信し、スイッチング部Ｓ（０）がそのデータ送受信装置２００を次段のスイッチング回路Ｓ（１０）へ接続することにより受信データをデータ送受信装置２００からスイッチング回路Ｓ（１０）へ転送する。また、スイッチング回路Ｓ（１０）から転送されてきたデータを、スイッチング部Ｓ（０）を介して転送すべき処理ノードＮ（０）〜Ｎ（２）に対応するデータ送受信装置２００で受信し、受信データをデータ送受信装置２００から対応する処理ノードＮ（０）〜Ｎ（２）へ転送する。他のスイッチング回路Ｓ（０１）〜Ｓ（２０）についても同様の構成を備えている。
【００３８】
図１に、本実施例において処理ノードＮ（０）〜Ｎ（１７）とスイッチング回路Ｓ（００）〜Ｓ（２０）がそれぞれ備えるデータ送受信装置１００及びデータ送受信装置２００の詳細な構成図を示す。
【００３９】
データ送受信装置１００及びデータ送受信装置２００は共に同一の構成を備え、データの送受信を実行するものである。但し、ここでは説明を簡単にするため、データ送受信装置１００を送信側、データ送受信装置２００を受信側として各々の構成及び動作を説明する。
【００４０】
図１において、データ送受信装置１００は、データの送信処理に必要な構成として、転送データバッファ１１０、バッファ制御回路１１１、データ送信制御回路１１２、データ受信制御回路１１３、再送制御回路１１４、リトライ既定値設定回路１１５、再送リトライカウント回路１１６、コンペア回路１１７及びポインタ減算既定値設定回路１１８を備える。
【００４１】
このうち転送データバッファ１１０は、ある一定の数のデータを保持できるだけの領域を持ち、次段のデータ送受信装置に送信するためのデータと、また、前段のデータ送受信装置から受信したデータを一時的に蓄えておくバッファである。この転送データバッファ１１０は、送信するためのデータまたは受信したデータを、例えばＦＩＦＯ形式により送信順または受信順に連続した領域に保持し、各データを保持する各々の領域は、それぞれ読み出しポインタまたは書き込みポインタで指示される。バッファ制御回路１１１は、転送データバッファ１１０への書き込み及び読み出しのポインタの制御、及びそのポインタによる転送データバッファ１１０に対するデータの読み出し、書き込みを行い、さらに、再送時に、ポインタ減算既定値設定回路１１８に設定されている１フレーム分の減算既定値を用いてポインタの減算を行い、そのポインタにより再送用データの読み出しを行う回路である。データ送信制御回路１１２は、転送データの送信制御及び転送データバッファ１１０からの転送データの読み出しをバッファ制御回路１１１に指示し、さらに、再送データの送信時、バッファ制御回路１１１へ書き込みポインタの減算指示と減算したポインタにより転送データバッファ１１０から再送データの読み出しを指示する回路である。データ受信制御回路１１３は、転送データの受信制御及び転送データバッファ１１０への転送データの書き込みをバッファ制御回路１１１に指示する回路である。再送制御回路１１４は、再送要求信号１０を受信した際に、データ送信制御回路１１２へ転送データの送信中断及びエラーが検出されたデータの再送を指示する回路である。リトライ既定値設定回路１１５は、再送時のエラー検出による最大再送リトライ回数の既定値が設定される回路であり、リトライ既定値は任意の値を設定できる。再送リトライカウント回路１１６は、同一データの再送時における再送リトライ回数をカウントする回路である。コンペア回路１１７は、リトライ既定値設定回路１１５と再送リトライカウント回路１１６の値を比較し、両者の値が一致していたら一致信号１３を再送制御回路１１４に発信する回路である。ポインタ減算既定値設定回路１１８は、再送時に、バッファ制御回路１１１が転送データバッファ１１０から再送用のデータを読み出すためにポインタの減算を行う際に使用する１フレーム分の減算既定値が設定される回路である。ここで、１フレームとは、１回のデータ再送において再送を行うデータ数を指し、減算既定値は、送受信装置間の転送速度、転送距離に応じて任意に設定できる。但し、１フレームのデータ数は、転送データバッファ１１０に保持できるデータ数以下とする。また、リトライ既定値設定回路１１５とポインタ減算既定値設定回路１１８に対するリトライ既定値と減算既定値の設定は、それぞれ上位に存在するシステム制御装置（図示せず）により行う。
【００４２】
一方、図１において、データ送受信装置２００は、データの受信処理に必要な構成として、転送データバッファ２１０、バッファ制御回路２１１、データ送信制御回路２１２、データ受信制御回路２１３、エラー検出器２１４、再送制御回路２１５、リトライ既定値設定回路２１６、再送リトライカウント回路２１７、コンペア回路２１８及びポインタ減算既定値設定回路２１９を備える。
【００４３】
このうち転送データバッファ２１０は、ある一定の数のデータを保持できるだけの領域を持ち、前段のデータ送受信装置からの受信データであって次段のデータ送受信装置に送信するためのデータを一時的に蓄えておくバッファである。この転送データバッファ２１０は、例えばＦＩＦＯ形式により受信したデータを受信順に連続した領域に保持し、各データを保持する各々の領域は、それぞれ読み出しポインタまたは書き込みポインタで指示される。バッファ制御回路２１１は、転送データバッファ２１０への書き込み、読み出しのポインタの制御、及びそのポインタによる転送データバッファ２１０に対するデータの読み出し、書き込みを行い、さらに、再送時に、ポインタ減算既定値設定回路２１９に設定されている１フレーム分の減算既定値を用いてポインタの減算を行い、そのポインタにより再送用データの書き込みを行う回路である。データ送信制御回路２１２は、転送データの送信制御及び転送データバッファ２１０からの転送データの読み出しをバッファ制御回路２１１に指示する回路である。データ受信制御回路２１３は、転送データの受信制御及び転送データバッファ２１０への転送データの書き込みをバッファ制御回路２１１に指示し、さらに、再送データの受信時、バッファ制御回路２１１へ書き込みポインタの減算指示と減算したポインタにより転送データバッファ２１０へ再送データの書き込みを指示する回路である。エラー検出器２１４は、データ１１のデータ転送エラーの有無のチェックを行い、エラーを検出した場合にはエラー検出信号１４を再制御回路２１５に発信する回路である。再送制御回路２１５は、エラー検出器２１４からのエラー検出信号１４を受け、前段のデータ送受信装置に対して再送要求信号１０を発信し、データ受信制御回路２１３に再送データの受信を指示する回路である。リトライ既定値設定回路２１６は、再送時のエラー検出による最大再送リトライ回数の既定値が設定される回路であり、リトライ既定値は任意の値を設定できる。再送リトライカウント回路２１７は、再送データの受信時に再度、転送エラーを検出することによる再送受信リトライ回数をカウントする回路である。コンペア回路２１８は、リトライ既定値設定回路２１６と再送リトライカウント回路２１７との値を比較し、一致した場合には再送制御回路２１５に再送動作中止信号１５を発信する。ポインタ減算既定値設定回路２１９は、再送時に、バッファ制御回路２１１が転送データバッファ２１０へ再送データを書き込むためにポインタの減算を行う際に使用する１フレーム分の減算既定値が設定される回路であり、減算既定値は送受信装置間の転送速度、転送距離に応じて任意に設定できる。但し、１フレームのデータ数は、転送データバッファ１１０に保持できるデータ数以下とする。また、減算既定値は、送信側装置と受信側装置との間で共通の値を設定する。また、リトライ既定値設定回路２１６とポインタ減算既定値設定回路２１９に対するリトライ既定値と減算既定値の設定は、上位に存在するシステム制御装置（図示せず）により行う。
【００４４】
上述した構成に加えて、データ送受信装置１００は、データの受信処理に必要な構成として、データ送受信装置２００において説明したのと同様のエラー検出器１１９、再送制御回路１２０、リトライ既定値設定回路１２１、再送リトライカウント回路１２２、コンペア回路１２３を備えている。また、データ送受信装置２００は、データの送信処理に必要な構成として、データ送受信装置１００において説明したのと同様の再送制御回路２２０、リトライ既定値設定回路２２１、再送リトライカウント回路２２２、コンペア回路２２３を備えている。このように、両データ送受信装置１００、２００は同一の構成となっている。
【００４５】
尚、本実施例では、両データ送受信装置１００、２００は、データ送信用の再送制御回路とデータ受信用の再送制御回路をそれぞれ備えているが、送信用と受信用とを兼用させて１つの再送制御回路のみを備える構成としても良い。
【００４６】
また、本実施例では、両データ送受信装置１００、２００がそれぞれエラー検出器１１９、２１４を備え、エラーを検出した場合に再送制御回路１２０、２１５から再送要求信号１０を発信しているが、各処理ノードNまたは各スイッチング回路Sが各データ送受信装置１００、２００の外部にエラー検出を行う装置を備え、そこから再送要求信号を発信する構成としても良い。また、処理ノードNにおいて、ソフトウェアによってデータ転送エラーのチェック及び再送要求信号の発信を行うように構成しても良い。
【００４７】
次に、本実施例のデータ送受信装置１００、２００の動作を図２〜図４に示す。
【００４８】
尚、本実施例のデータ送受信装置間では、データ転送要求元（本実施例では各ノード内のプロセッサＰが該当する）から転送を指示された可変長の一連のデータを、所定のデータ単位（例えば２ｂｙｔｅや４ｂｙｔｅ）毎に連続して転送（送受信）する。そして、一連のデータを構成する全てのデータ単位を転送し終えることにより、そのデータの転送が終了する。従って、以下の説明では、一回の転送動作で送受信される個々のデータ単位をそれぞれ転送データ或いは再送データとしてデータの送受信動作を説明する。
【００４９】
図２は、データ送受信装置１００における送信動作を示すフローチャートである。
【００５０】
データ送受信装置１００では、データ送信時、データ送信制御回路１１２がバッファ制御回路１１１に転送データバッファ１１０からの転送データの読み出しを指示し、それに従ってバッファ制御回路１１１が転送データバッファ１１０から転送データを読み出す（Ｓ１０１）。ここでデータ制御回路１１２は、転送データバッファ１１０から読み出されたデータが、転送すべき一連のデータを構成する最初のデータ（データ単位）である場合、即ち、ある一連のデータの転送を開始する場合には、その読み出されたデータ（最初のデータ）に、一連のデータの転送開始を示す情報（開始フラグ）、そのデータの宛先を示す情報（宛先アドレス）等の必要な制御情報を付加して次段のデータ送受信装置に送信する（Ｓ１０２）。また、最初のデータ以外のデータの場合には、読み出されたデータのみを送信する（Ｓ１０２）。但し、最初のデータ以外のデータであっても、開始フラグを除く上記した制御情報または上記以外の制御情報を付加して送信する構成としても良い。バッファ制御回路１１１は、転送データバッファ１１０から転送データを読み出すと、転送データバッファ１１０内の読み出すべきデータの保持領域を示す読み出しポインタを更新する（Ｓ１０３）。
【００５１】
再送制御回路１１４では、送信したデータに対する次段のデータ送受信装置からの再送要求信号１０の受信の有無を監視している（Ｓ１０４）。次段のデータ送受信装置から再送要求信号１０を受信していなければ、再送制御回路１１４からデータ送信制御回路１１２へ、再送要求は無い旨を示す、例えばＬｏｗレベルの信号が与えられている。
【００５２】
データ送信制御回路１１２は、データを送信すると、再送制御回路１１４からＬｏｗレベルの信号を受けていることを認識して、転送すべき一連のデータを構成する全ての転送データの送信処理を終了したか否かの確認を行い（Ｓ１０５）、送信を終了していなければ終了するまで、Ｓ１０１〜Ｓ１０５の動作を繰り返す。全ての転送データの送信を終了すると、データ送信制御回路１１２は、一連のデータの転送終了を示す情報（終了フラグ）を一つのデータとして次段のデータ送受信装置に送信し、その一連のデータの送信動作を終了し、引き続き新たな一連のデータの転送を開始する。もし引き続き転送すべき新たな一連のデータが無ければ、そのようなデータの転送をデータ転送要求元から指示されるまで待機する。
【００５３】
一方、再送制御回路１１４において、再送要求信号１０を受信したと判定した場合には（Ｓ１０４）、再送制御回路１１４は、再送要求信号１０を受信した旨を示す、例えばＨｉｇｈレベルの信号を再送リトライカウント回路１１６に発信する。再送リトライカウント回路１１６は、通常状態ではカウント値「０」を示しており、再送制御回路１１４からＨｉｇｈレベルの信号を受けると、再送リトライ回数をカウントアップする。このカウントアップされた再送リトライ回数はリトライ既定値設定回路１１５に設定されている最大再送リトライ回数の既定値とコンペア回路１１７で比較される（Ｓ１０６）。両者の回数が一致、或いは、カウントアップされた再送リトライ回数が最大再送リトライ回数の既定値より大きくなければ、コンペア回路１１７から再送制御回路１１４へ、例えばＬｏｗレベルの信号１３が与えられている。
【００５４】
再送制御回路１１４は、コンペア回路１１７からＬｏｗレベルの信号１３を受けていることを認識して、データ送信制御回路１１２にデータの送信動作の中断及びデータの再送を要求するＨｉｇｈレベルの信号を発信する。データ送信制御回路１１２は、再送制御回路１１４からＨｉｇｈレベルの信号を受信したことを認識して、バッファ制御回路１１１に対して転送データバッファ１１０からの転送データの読み出しの中断を指示する。バッファ制御回路１１１は転送データバッファ１１０からの転送データの読み出しを中断する（Ｓ１０８）。
【００５５】
次に、データ転送制御回路１１２は、バッファ制御回路１１１にバッファ読み出しポインタの減算を指示する。バッファ制御回路１１１は、ポインタ減算既定値設定回路１１８に設定されている１フレーム分の減算既定値をその時点でのバッファ読み出しポインタ値から減算する（Ｓ１０９）。その後、データ送信制御回路１１２は、バッファ制御回路１１１に転送データバッファ１１０からの再送データの読み出し開始を指示する。バッファ制御回路１１１は、減算したポインタ値を用いて転送データバッファ１１０から再送データを読み出す（Ｓ１１０）。バッファ制御回路１１１は、転送データバッファ１１０から再送データを読み出すと読み出しポインタを更新する。データ転送制御回路１１２は、データの再送開始を示す再送開始フラグを一つのデータとして再送を要求した次段のデータ送受信装置に送信する。そして、読み出された再送データを送信する（Ｓ１１１）。データ転送制御回路１１２は、データを送信すると、再送すべき１フレーム分の再送データを全て送信したかを確認し（Ｓ１１２）、全て送信するまで、Ｓ１１０〜Ｓ１１２の動作を繰り返す。１フレーム分の再送データの送信が終了すると、データ送信制御回路１１２は、データの再送終了を示す再送終了フラグを一つのデータとして次段のデータ送受信装置に送信し、データの再送信を終了する。
【００５６】
この再送動作の間も、再送制御回路１１４は、再送データに対する再送要求信号１０の受信の有無を監視している（Ｓ１１３）。再送要求信号１０を受信していなければ、再送制御回路１１４からデータ送信制御回路１１２へ、Ｌｏｗレベルの信号が与えられている。
【００５７】
データ送信制御回路１１２では、データの再送信終了後、再送制御回路１１４からＬｏｗレベルの信号を受けていることを認識した場合には、通常動作に復帰し、Ｓ１０１以降の動作を再開する。
【００５８】
しかし、再送制御回路１１４が再び再送要求信号１０を受信したと判定した場合には、再送制御回路１１４は、再送要求信号１０を受信した旨のＨｉｇｈレベルの信号を再送リトライカウント回路１１６に発信する。再送リトライカウント回路１１６は、再送制御回路１１４からのＨｉｇｈレベルの信号を受けて再送リトライ回数をカウントアップする。このカウントアップされた再送リトライ回数はリトライ既定値設定回路１１５に設定されている最大再送リトライ回数の既定値とコンペア回路１１７で比較される（Ｓ１０６）。両者の回数が一致、或いは、カウントアップされた再送リトライ回数が最大再送リトライ回数の既定値より大きくなければ、Ｌｏｗレベルの信号１３が再送制御回路１１４に与えられている。再送制御回路１１４は、コンペア回路１１７からＬｏｗレベルの信号１３を受けていることを認識して、データ送信制御回路１１２にデータの再送を要求するＨｉｇｈレベルの信号を発信する。
【００５９】
データ送信制御回路１１２は、データの再送信終了後に、再送制御回路１１４からＨｉｇｈレベルの信号を受信したことを認識して、前述のＳ１０８〜Ｓ１１３の動作を繰り返す。但し、この場合、既に再送信が終了した後にＳ１０８以降の動作を行うため、その時点では転送データバッファ１１０からのデータの読み出しは行っていない。従って、Ｓ１０８の動作は行わず、実質的にＳ１０９以降の動作を行う。そして、再送制御回路１１４からＨｉｇｈレベルの信号を受信することなくデータの再送動作を終了するか、コンペア回路１１７で再送リトライカウント回路１１６の値とリトライ既定値設定回路１１５の値の比較結果が一致したことに応じて再送制御回路１１４から再送動作の中止を指示する信号を受信するまで、以上の再送動作を繰り返す。
【００６０】
一方、コンペア回路１１７での比較の結果（Ｓ１０６）、再送リトライカウント回路１１６の値とリトライ既定値設定回路１１５の値が一致した場合には、コンペア回路１１７からＨｉｇｈレベルの信号１３が再送制御回路１１４に発信される。再送制御回路１１４は、このＨｉｇｈレベルの信号１３を受信したことを認識すると、データ送信制御回路１１２に再送動作の中止を指示する信号を発信する。また、再送制御回路１１４は、再送を引き起こした障害を固定障害と判断し、固定障害の発生を図示しないシステム制御装置に通知する。データ送信制御回路１１２は、再送動作の中止を指示する信号を受信したことを認識して再送動作を中止し、送信動作を終了する。
【００６１】
図３は、データ送受信装置２００における受信動作を示すフローチャートである。
【００６２】
データ送受信装置２００では、前段のデータ送受信装置から転送されてくるデータ１１を連続して受信する。このとき、ある一連のデータの受信を開始する場合、即ち、転送されてきたデータ１１がある一連のデータを構成する最初のデータ（データ単位）である場合には、データ受信制御回路２１３は、そのデータに付加された転送開始を示す情報（開始フラグ）、宛先を示す情報（宛先アドレス）等の制御情報を検出し、その一連のデータの受信を開始する（Ｓ２０１）。そして、バッファ制御回路２１１に対して受信データ１１の転送データバッファ２１０への書き込みを指示する。その指示に従って、バッファ制御回路２１１はデータ１１を転送データバッファ２１０に書き込む（Ｓ２０２）。その後、転送データバッファ２１０内の転送データを書き込むべき領域を示す書き込みポインタを更新する。
【００６３】
エラー検出器２１４は、データ１１を受信する度に、受信データ１１に対する転送エラーを検出したか否かを判定する（Ｓ２０３）。判定の結果、エラーを検出しなければ、エラー検出器２１４から再送制御回路２１５に与えられているエラー検出信号１４は、エラーを検出していない旨を示す、例えばＬｏｗレベルのままである。
【００６４】
再送制御回路２１５は、エラー検出器２１４からのエラー検出信号１４を監視しており、エラー検出信号１４がＬｏｗレベルである間は、再送制御回路２１５からデータ受信制御回路２１３へ、エラー未検出を示す、例えばＬｏｗレベルの信号が与えられている。
【００６５】
データ受信制御回路２１３は、再送制御回路２１５からＬｏｗレベルの信号を受けていることを認識して、一連のデータの転送終了を示す情報（終了フラグ）を検出したか、即ち、受信すべき一連のデータを構成する全ての転送データの受信を終了したかの確認を行う（Ｓ２０４）。受信処理を終了していなければ終了するまでＳ２０１〜Ｓ２０４の動作を繰り返す。エラー検出器２１４が転送エラーを検出することなくデータ受信制御回路２１３が終了フラグを検出すると、データ受信制御回路２１３は、全ての転送データの受信を終了したことを認識し、その一連のデータの受信動作を終了する。その後、引き続いて、新たに転送されてくる別の一連のデータがあれば、そのデータの受信を開始する。もし、引き続き受信すべき新たな一連のデータが転送されてこなければ、転送されてくるまで待機する。
【００６６】
一方、エラー検出器２１４が受信データ１１に対する転送エラーを検出すると（Ｓ２０３）、再送制御回路２１５にエラー検出を示すＨｉｇｈレベルのエラー検出信号１４を発信する。再送制御回路２１５は、Ｈｉｇｈレベルのエラー検出信号１４を受信すると、データ送信制御回路２１２に転送中のデータの送信中断を指示する信号を発信する。データ送信制御回路２１２は、再送制御回路２１５からの指示信号に応じて、バッファ制御回路２１１に対して転送データバッファ２１０からの転送データの読み出し処理の中断を指示する。バッファ制御回路２１１は、転送データバッファ２１０からの転送データの読み出しを停止する（Ｓ２０５）。次に、再送制御回路２１５は、前段のデータ送受信装置に対して再送要求信号１０を発信する（Ｓ２０６）。また、データ受信制御回路２１３に転送エラーを検出した旨を示すＨｉｇｈレベルの信号を発信する。データ受信制御回路２１３は、再送制御回路２１５からＨｉｇｈレベルの信号を受信したことを認識するが、データの再送開始を示す再送開始フラグを検出するまでは、引き続き前段のデータ送受信装置から転送されてくるデータの転送データバッファ２１０への書き込みをバッファ制御回路２１１に指示する。そして、バッファ制御回路２１１は、それらのデータを転送データバッファ２１０に書き込む。その後、データ受信制御回路２１３は、再送開始フラグを検出すると、バッファ制御回路２１１にバッファ書き込みポインタの減算を指示する。バッファ制御回路２１１はポインタ減算既定値設定回路２１９に設定されている１フレーム分の減算既定値をその時点でのバッファ書き込みポインタ値から減算する（Ｓ２０７）。
【００６７】
データ受信制御回路２１３は、再送データの受信を開始し（Ｓ２０８）、バッファ制御回路２１１に対して受信した再送データの転送データバッファ２１０への書き込みを指示する。その指示に従って、バッファ制御回路２１１は、減算したポインタ値を用いて既に転送データバッファ２１０に書き込まれている同一データ上に再送データを上書きする（Ｓ２０９）。そして、書き込みポインタを更新する。
【００６８】
エラー検出器２１４は、再送データを受信する度に、再送データに対する転送エラーを検出したか否かを判定する（Ｓ２１０）。転送エラーを検出しなければ、エラー検出器２１４から再送制御回路２１５に与えられているエラー検出信号１４はＬｏｗレベルのままである。また、再送制御回路２１５からデータ受信制御回路２１３へも、Ｌｏｗレベルの信号が与えられている。
【００６９】
データ受信制御回路２１３は、再送制御回路２１５からＬｏｗレベルの信号を受けていることを認識して、データの再送終了を示す再送終了フラグを検出したか、即ち、受信すべき１フレーム分の再送データの受信を終了したかの確認を行う（Ｓ２１１）。終了していなければ終了するまでＳ２０８〜Ｓ２１１の動作を繰り返す。エラー検出器２１４が転送エラーを検出することなくデータ受信制御回路２１３が再送終了フラグを検出すると、１フレーム分の再送データの受信を終了したことを認識し（Ｓ２１１）、通常動作に復帰してＳ２０１以降の動作を再開する。
【００７０】
しかし、エラー検出器２１４が再送データに対する転送エラーを検出した場合には（Ｓ２０９）、再送制御回路２１５にＨｉｇｈレベルのエラー検出信号１４を発信する。再送制御回路２１５は、Ｈｉｇｈレベルのエラー検出信号１４を受信すると、そのままエラー検出の情報を保持しておく（Ｓ２１２）。データ受信制御回路２１３は、データの再送終了を示す再送終了フラグを検出するまで、前段のデータ送受信装置から転送されてくる再送データの受信を行い（Ｓ２１３）、転送データバッファ２１０への書き込みをバッファ制御回路２１１に指示する。バッファ制御回路２１１は、減算したポインタ値を用いて既に転送データバッファ２１０に書き込まれている同一データ上に再送データを上書きする（Ｓ２１４）。そして、データ受信制御回路２１３は、再送終了フラグを検出したかの確認を行い（Ｓ２１５）、再送データの受信が終了するまでＳ２１３〜Ｓ２１５の動作を繰り返す。
【００７１】
再送データの受信が終了すると、データ受信制御回路２１３から再送制御回路２１５へ受信終了の旨の信号が発信される。データ受信制御回路２１３からのその信号を受信すると、再送制御回路２１５は、前段のデータ送受信装置に対して再送要求信号１０を再送信する（Ｓ２１６）。また、再送要求信号１０の再送信に伴い、再送制御回路２１５から再送リトライカウント回路２１７に再送データの転送エラーを検出した旨を示すＨｉｇｈレベルの信号が発信される。再送リトライカウント回路２１７は、通常状態ではカウント値「０」を示しており、再送制御回路２１５からＨｉｇｈレベルの信号を受けると、再送リトライ回数をカウントアップする。このカウントアップされた再送リトライ回数はリトライ既定値設定回路２１６に設定されている最大再送リトライ回数の既定値とコンペア回路２１８で比較される（Ｓ２１７）。両者の回数が一致、或いは、カウントアップされた再送リトライ回数が最大再送リトライ回数の既定値より大きくなければ、コンペア回路２１８から再送制御回路２１５へ、不一致を示す、例えばＬｏｗレベルの信号１５が与えられている。
【００７２】
再送制御回路２１５は、コンペア回路２１８からＬｏｗレベルの信号１５を受けていることを認識して、データ受信制御回路２１３に、再送データの転送エラーを検出した旨を示すＨｉｇｈレベルの信号を発信する。データ受信制御回路２１３は、再送制御回路２１５からＨｉｇｈレベルの信号を受信したことを認識する。そして、データ受信制御回路２１３は、その後に再送開始フラグを検出すると、上述した再送データの受信動作、即ち、Ｓ２０７〜Ｓ２１１の動作、更に、再送データの転送エラーが発生した場合にはＳ２１３〜Ｓ２１５の動作を行う。そして、再送データの転送エラーを検出することなく受信動作を終了するか、コンペア回路２１８で再送リトライカウント回路２１７の値とリトライ既定値設定回路２１６の値の比較結果が一致したことに応じて再送制御回路２１５から受信動作の中止を指示する信号を受信するまで、再送データの受信動作を繰り返す。
【００７３】
一方、コンペア回路２１８での比較の結果（Ｓ２１７）、再送リトライカウント回路２１７の値とリトライ既定値設定回路２１６の値が一致した場合には、コンペア回路２１８からＨｉｇｈレベルの信号１５が再送制御回路２１５に発信される。再送制御回路２１５は、このＨｉｇｈレベルの信号１５を受信したことを認識すると、データ受信制御回路２１３に受信動作の中止を指示する信号を発信する。また、再送制御回路２１５は、転送エラーを引き起こした障害を固定障害と判断し、固定障害の発生を図示しないシステム制御装置に通知する。データ受信制御回路２１３は、受信動作の中止を指示する信号を受信したことを認識して、それ以降の受信動作を行わず、受信動作を終了する。
【００７４】
図４は、上述した送信側のデータ送受信装置１００と受信側のデータ送受信装置２００の動作を示したタイムチャートである。
【００７５】
データ送受信装置１００は、データ転送要求元から転送を指示された一連のデータを構成する複数のデータ（データ１，データ２，データ３，…，データＮ，データＮ＋１，…）を、上述した送信動作に従って転送データバッファ１１０から読み出し、転送先であるデータ送受信装置２００に連続して送信する。このとき、図４に示す通り、データ送受信装置１００は、各データ（例えばデータ１）を転送データバッファ１１０から読み出して送信すると、そのデータ１に対する次段のデータ送受信装置２００での転送エラーの検出結果、即ち、転送エラーが検出された場合に次段のデータ送受信装置２００から発信される再送要求信号１０の受信を待つことなく、データ１に引き続くデータ２，データ３，…を連続して転送データバッファ１１０から読み出し、１サイクル毎に送信する。
【００７６】
一方、データ送受信装置２００は、連続して転送されてくるデータを１サイクル毎に受信する。このとき、データを受信する度にエラー検出器２１４にて転送エラーの検出を行うが、このエラー検出結果を待つことなく、受信データを転送データバッファ２１０に書き込んでいく。従って、図４に示す通り、例えばデータ１を受信すると、データ１の転送エラーの検出結果を待つことなく、データ１を転送データバッファ２１０に書き込むと共に、引き続くデータ２，データ３，…を連続して受信し、転送データバッファ２１０に書き込んでいく。
【００７７】
このような受信動作において、例えばデータ２に対して転送エラーが検出された場合には、データ送受信装置２００の再送制御回路２１５からデータ送受信装置１００の再送制御回路１１４へ再送要求信号１０が発信される。再送要求信号１０は、両データ送受信装置の間の転送速度と転送距離に応じた時間の経過後、データ送受信装置１００の再送制御回路１１４に受信される。図４には、データ送受信装置１００がデータＮを送信後に、再送制御回路１１４が再送要求信号１０を受信する場合が示されている。
【００７８】
データ送受信装置１００は、再送要求信号１０を受信すると、データの送信動作を中断する。但し、上述した通り、データ送受信装置２００がデータ２に対する転送エラーを検出してからデータ送受信装置１００が再送要求信号１０を受信し、送信動作を中断するまで、各装置間の転送速度と転送距離に応じた時間が必要なため、この時間の間は送信側のデータ送受信装置１００ではデータ２以降のデータ、即ちデータ３からデータＮまで送信し続ける。そのため、データ送受信装置２００は、データ２の転送エラーを検出した後も、データ送受信装置１００から転送されてくるデータＮまでのデータを受信し、転送データバッファ２１０に書き込む。
【００７９】
次に、データ送受信装置１００は再送動作を開始する。このときデータ送信制御回路１１２における読み出しポインタは、上述した送信動作によりデータＮ個分まで更新されている。そこで、ポインタ減算既定値設定回路１１８に設定された値をその時点での読み出しポインタ値から減算する。図４に示す通り、ここでは、データＮ個分の減算既定値を読み出しポインタ値から減算している。尚、当然ながら、減算既定値としては、受信側のデータ送受信装置が転送エラーを検出してから送信側のデータ送受信装置が送信動作を中断するまでに送信されるデータ数分以上の値が設定される。
【００８０】
そして、データ送受信装置１００では減算した読み出しポインタを用いて転送データバッファ１１０からデータ１以降のデータを再度読み出すと共に、再送開始を示す再送開始フラグを送信し、その後、データ１からデータＮまでを再送する。
【００８１】
データ送受信装置２００は、転送されてきた再送開始フラグにより再送開始を認識し、データ送受信装置１００と同様に、データ受信制御回路２１３における書き込みポインタからポインタ減算既定値設定回路２１９に設定された値を減算する。ポインタ減算既定値設定回路２１９には、データ送受信装置１００のポインタ減算既定値設定回路１１８と同じ値が設定されており、そのため、データＮ個分の減算既定値が書き込みポインタから減算される。そして、データ送受信装置２００は、再送されてくるデータ１からデータＮまでの再送データを受信し、減算した書き込みポインタを用いて転送データバッファ２１０に再送データを上書きしていく。
【００８２】
データ送受信装置１００は、データＮまでの再送を終了すると、再送終了フラグを送信する。データ送受信装置２００は、この再送終了フラグを受信して再送終了を認識する。
【００８３】
以上の再送動作において、データ送受信装置２００が各再送データの転送エラーを検出しなければ、再送は完了し、図４に示す通り、データ送受信装置１００とデータ送受信装置２００は、改めてデータＮ＋１以降のデータの送受信を再開する。また、図４には図示していないが、再送データの転送エラーが検出された場合には、データ１からデータＮまでの再送動作を繰り返し行う。
【００８４】
次に、以上の通りの構成を備えた本実施例の並列プロセッサシステムにおけるデータ転送動作について説明する。
【００８５】
ここでは、図５の並列プロセッサシステムにおける処理ノードＮ（０）から処理ノードＮ（１５）へデータ転送を行う場合を例に取って説明する。
【００８６】
処理ノードＮ（０）のデータ送受信装置１００は、自ノード内のプロセッサＰの指示に応じて、メモリＭから読み出される転送すべきデータを転送データバッファ１１０に蓄える。そして、処理ノードＮ（０）のデータ送受信装置１００は、上述した送信動作、即ち、図２の送信動作フローチャートに従って、転送データバッファ１１０に蓄えたデータをスイッチング回路Ｓ（００）へ転送する。
【００８７】
一方、処理ノードＮ（０）と処理ノードＮ（１５）を結合する各スイッチング回路内のデータ送受信装置２００は、前段の処理ノードまたはスイッチング回路から転送されてくるデータを、上述した受信動作、即ち、図３の受信動作フローチャートに従って受信し、転送データバッファ２１０に蓄える。そして、データ送受信装置２００は、スイッチング回路内のスイッチング部を介して、転送データバッファ２１０に蓄えた受信データを、上述した送信動作に従って次段のスイッチング回路或いは処理ノードに転送する。
【００８８】
このようなデータ転送の途中で、例えば、図５に示すポイントａ、即ち、処理ノードＮ（１５）とスイッチング回路Ｓ（０５）の間で転送エラーが発生したとする。
【００８９】
このとき、処理ノードＮ（１５）のデータ送受信装置１００は、上述した受信動作に従って、スイッチング回路Ｓ（０５）のデータ送受信装置２００から転送されてくるデータを受信している。そして、ポイントａでの転送エラーの発生に伴い、あるデータに対する転送エラーをエラー検出器１１９で検出し、再送制御回路１２０からスイッチング回路Ｓ（０５）のデータ送受信装置２００に再送要求信号１０を発信する。スイッチング回路Ｓ（０５）のデータ送受信装置２００は、再送制御回路２２０が再送要求信号１０を受信すると、上述した通り、データ送信を中断し、転送データバッファ２１０に蓄えられているデータを用いて再送動作を実行する。一方、処理ノードＮ（１５）のデータ送受信装置１００は、上述した通り、再送データの受信動作を実行する。この再送動作において転送エラーが発生しなければ、スイッチング回路Ｓ（０５）のデータ送受信装置２００と処理ノードＮ（１５）のデータ送受信装置１００は、再送動作を終了して通常のデータ転送動作に復帰する。そして、転送すべき全てのデータを転送し終わると、スイッチング回路Ｓ（０５）のデータ送受信装置２００と処理ノードＮ（１５）のデータ送受信装置１００は、それぞれ送受信動作を終了する。処理ノードＮ（１５）のデータ送受信装置１００が受信したデータは、転送データバッファ１１０からメモリＭに格納される。
【００９０】
このように、本実施例によれば、並列プロセッサシステムを構成する処理ノード及びスイッチング回路がそれぞれデータ送受信装置１００、２００を備え、ある処理ノードから他の処理ノードへノード間ネットワーク装置を介してデータ転送を行う際に、処理ノードとスイッチング回路との間、或いはスイッチング回路間等、任意のポイントで転送エラーが発生した場合でも、そのポイント間のみで再送動作を行うことができる。
【００９１】
また、データ送受信装置間では任意の数のデータの再送が可能であるため、各装置間の転送速度及び転送距離の制約をなくすことができる。
【００９２】
【発明の効果】
以上説明した通り、本発明によれば、並列プロセッサシステムを構成する各処理ノード及びスイッチング回路がそれぞれデータ送受信装置を備え、任意の処理ノードから他の処理ノードへノード間ネットワーク装置を介してデータ転送を行う際に、処理ノードとスイッチング回路との間、或いはスイッチング回路間等、任意のポイントで転送エラーが発生した場合でも、エラーの発生したポイント間で再送動作を行うことが可能である。従って、転送エラー発生時に、常に送信側の処理ノードがデータの再送を行う必要が無くなる。そのため、処理ノードが再送処理のために費やすオーバヘッドを大幅に低減することができる。また、任意のポイント間で再送動作を行えるため、ノード間ネットワーク装置の信頼性も向上できる。更に、本発明のデータ送受信装置では、再送時における再送データ数を可変にすることができるため、各装置間の転送速度及び転送距離の制約をなくしてデータの再送を行うことができる。また、データ転送時に使用する転送データバッファをそのまま再送データ用のバッファとして使用することにより、再送データ保持用のラッチ等を別に備える必要が無く、装置の物量を抑えることができる。
【図面の簡単な説明】
【図１】本発明の一実施例におけるデータ送受信装置の構成を示すブロック図である。
【図２】本発明の一実施例におけるデータ送受信装置の送信動作を示すフローチャートである。
【図３】本発明の一実施例におけるデータ送受信装置の受信動作を示すフローチャートである。
【図４】本発明の一実施例におけるデータ送受信装置の送受信動作を示すタイムチャートである。
【図５】本発明の一実施例における並列プロセッサシステムの構成図である。
【図６】本発明の一実施例における処理ノードとスイッチング回路の詳細構成図である。
【図７】従来技術におけるデータ送受信装置のブロック図である。
【図８】従来技術におけるデータ送受信装置の送受信動作を示すタイムチャートである。
【図９】従来技術におけるマルチプロセッサシステムの構成を示すブロック図である。
【符号の説明】
１００，２００  データ送受信装置
１１０，２１０  転送データバッファ
１１１，２１１  バッファ制御回路
１１２，２１２  データ送信制御回路
１１３，２１３  データ受信制御回路
１１４，１２０，２１５，２２０  再送制御回路
１１５，１２１，２１６，２２１  リトライ既定値設定回路
１１６，１２２，２１７，２２２  再送リトライカウント回路
１１７，１２３，２１８，２２３  コンペア回路
１１８，２１９  ポインタ減算値既定値設定回路
１１９，２１４  エラー検出器
３００  データ送信装置
３０２  ＦＩＦＯメモリ
３０４  ＦＩＦＯ制御回路
３０６  ＥＣＣ回路
３０８  データラッチ
３１０  データセレクタ
３１２  データ送信制御回路
４００  データ受信装置
４０２  データ受信回路
４０４  データラッチ
４０６  ＥＣＣ回路
４０８  ＦＩＦＯメモリ
４１０  ＦＩＦＯ制御回路
４１２  データ受信制御回路
６００  プロセッサエレメント
６０２  プロセッサ
６０４  メモリ
６０６  内部バス
６０８  データ転送装置
６１２  外部バス
７００  相互結合網
【図１】
0003709289.tif 000002
【図２】
0003709289.tif 000003
【図３】
0003709289.tif 000004
【図４】
0003709289.tif 000005
【図５】
0003709289.tif 000006
【図６】
0003709289.tif 000007
【図７】
0003709289.tif 000008
【図８】
0003709289.tif 000009
【図９】
0003709289.tif 000010