(57)【要約】【課題】データ送信装置からデータ受信装置へのデータ転送の完了を正しく判定することが可能なデータ通信システムを得る。【解決手段】データ送信装置１００は、データパケット１３１を生成するパケット生成部２２２と、データパケット１３１をデータ受信装置１２０に向けて送信するデータ送信部２２４と、データ送信の完了を判定する命令終了判定部２２６とを有する。データ受信装置１２０は、データパケット１３１の各々の受信が完了する毎にリプライ情報を発行するメモリリクエスト制御部３２２と、リプライ情報の数をカウントし、そのカウント値を保持するリプライ制御部３２３と、リプライ情報に関するカウント値を含むリプライパケット１３２を生成するリプライ生成部４６０とを有する。命令終了判定部２２６は、データパケット１３１の数と、リプライパケット１３２に含まれるカウント値とに基づいて、データ送信の完了を判定する。【選択図】図４
2011091693.tif 000002
【特許請求の範囲】
【請求項１】
データ送信装置と、
パケット交換ネットワークを介して前記データ送信装置に接続されたデータ受信装置とを備え、
前記データ送信装置は、
データ転送命令に応じて複数のデータパケットを生成するデータパケット生成部と、
前記複数のデータパケットを前記データ受信装置に向けて送信するデータパケット送信部と、
前記データ送信装置から前記データ受信装置へのデータ送信の完了を判定する判定部とを有し、
前記データ受信装置は、
前記複数のデータパケットの各々の受信が完了する毎にリプライ情報を発行するリプライ情報発行部と、
前記リプライ情報発行部によって発行されたリプライ情報の数をカウントし、そのカウント値を保持するリプライ情報管理部と、
前記リプライ情報管理部からリプライ情報を受け取ることにより、当該リプライ情報に関するカウント値を含むリプライパケットを生成するリプライパケット生成部と、
前記リプライパケット生成部によって生成されたリプライパケットを前記データ送信装置に向けて送信するリプライパケット送信部と
を有し、
前記判定部は、前記データパケット生成部が生成した前記複数のデータパケットの数と、前記データ受信装置から受信したリプライパケットに含まれるカウント値とに基づいて、前記データ送信装置から前記データ受信装置へのデータ送信の完了を判定する、データ通信システム。
【請求項２】
前記リプライ情報管理部は、
データ転送命令の識別情報とデータ送信装置の識別情報とによって区別されるリプライ情報の種別と、当該リプライ情報に対応するカウント値とが登録されるエントリ枠を複数有する管理テーブルと、
前記管理テーブルへのリプライ情報の登録順序を管理する順序管理部と
を有し、
前記管理テーブルに空きエントリ枠が存在していない状況において、前記管理テーブルに新たな種別のリプライ情報を登録する場合には、前記リプライ情報管理部は、前記管理テーブルに最古に登録されたリプライ情報を前記管理テーブルから前記リプライパケット生成部に送出することによって、前記管理テーブルに空きエントリ枠を作成し、当該新たな種別のリプライ情報を当該空きエントリ枠に登録する、請求項１に記載のデータ通信システム。
【請求項３】
前記リプライ情報管理部は、
リプライ情報と、当該リプライ情報に対応するカウント値とが登録される管理テーブルと、
前記管理テーブルにおいて当該リプライ情報に対応するカウント値が最後に更新されてからの経過時間を計測する計時部と
を有し、
前記リプライ情報管理部は、前記計時部によって計測された当該リプライ情報に関する経過時間が所定値を超えた場合には、当該リプライ情報を前記管理テーブルから前記リプライパケット生成部に送出する、請求項１又は２に記載のデータ通信システム。
【請求項４】
データ送信装置とデータ受信装置との間でのデータ通信方法であって、
（Ａ）前記データ送信装置において、データ転送命令に応じて複数のデータパケットを生成するステップと、
（Ｂ）前記ステップ（Ａ）で生成された前記複数のデータパケットを、前記データ受信装置に向けて送信するステップと、
（Ｃ）前記データ送信装置から前記データ受信装置へのデータ送信の完了を判定するステップと、
（Ｄ）前記データ受信装置において、前記複数のデータパケットの各々の受信が完了する毎にリプライ情報を発行するステップと、
（Ｅ）前記ステップ（Ｄ）において発行されたリプライ情報の数をカウントし、そのカウント値を保持するステップと、
（Ｆ）前記ステップ（Ｅ）において保持されているリプライ情報を受け取ることにより、当該リプライ情報に関するカウント値を含むリプライパケットを生成するステップと、
（Ｇ）前記ステップ（Ｆ）において生成されたリプライパケットを、前記データ送信装置に向けて送信するステップと、
（Ｈ）前記データ送信装置において、前記ステップ（Ｇ）で送信されたリプライパケットを受信するステップと
を備え、
前記ステップ（Ｂ）においては、前記ステップ（Ａ）において生成された前記複数のデータパケットの数と、前記ステップ（Ｈ）において受信したリプライパケットに含まれるカウント値とに基づいて、前記データ送信装置から前記データ受信装置へのデータ送信の完了を判定する、データ通信方法。
【請求項５】
前記ステップ（Ｅ）は、
（Ｅ−１）データ転送命令の識別情報とデータ送信装置の識別情報とによって区別されるリプライ情報の種別と、当該リプライ情報に対応するカウント値とが登録されるエントリ枠を複数有する管理テーブルを用いて、前記カウント値を保持するステップと、
（Ｅ−２）前記管理テーブルへのリプライ情報の登録順序を管理するステップと
を有し、
前記管理テーブルに空きエントリ枠が存在していない状況において、前記管理テーブルに新たな種別のリプライ情報を登録する場合には、前記管理テーブルに最古に登録されたリプライ情報に関してリプライパケットを生成することによって、前記管理テーブルに空きエントリ枠を作成し、当該新たな種別のリプライ情報を当該空きエントリ枠に登録する、請求項４に記載のデータ通信方法。
【請求項６】
前記ステップ（Ｅ）は、
（Ｅ−１）リプライ情報と、当該リプライ情報に対応するカウント値とが登録される管理テーブルを用いて、前記カウント値を保持するステップと、
（Ｅ−２）前記管理テーブルにおいて当該リプライ情報に対応するカウント値が最後に更新されてからの経過時間を計測するステップと
を有し、
前記ステップ（Ｅ−２）において計測されたリプライ情報に関する経過時間が所定値を超えた場合には、当該リプライ情報に関してリプライパケットを生成する、請求項４又は５に記載のデータ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信システム及びデータ通信方法に関する。
【背景技術】
【０００２】
下記特許文献１には、送信装置と受信装置とを備えるデータ転送装置が開示されている。当該データ転送装置においては、複数の伝送パケットをひとまとめにしたものがブロックとされ、受信装置は、１ブロック内の各伝送パケットがすべて正しく受信されたことを示すＡＣＫ信号を含む確認応答、あるいは、１ブロック内のいずれかの伝送パケットが正しく受信されなかったことを示すＮＡＫ信号を含む確認応答をブロック単位で生成して送信装置に返送する。送信装置は、受信装置からのブロック単位の確認応答がＮＡＫ信号を含む場合に、再送が必要な伝送パケットのみを複数個コピーして受信装置へ再送する。
【０００３】
受信装置は、ブロック内パケット番号記憶手段、確認応答生成手段、及び確認応答送信手段を有する。エラー又はロストとなった伝送パケットが存在した場合にその伝送パケットの再送を送信装置に対して要求するために、確認応答作成までの間、ブロック内パケット番号記憶手段は、その伝送パケットのブロック内パケット番号を記憶しておく。１ブロックを受信し終えると、確認応答手段はそのブロックに対する確認応答を生成し、確認応答送信手段は確認応答を送信装置へ送信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−３０８９３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に開示されたデータ転送装置によると、受信装置は、１ブロック内の伝送パケットを受信し終えると、そのブロックに対する確認応答を送信装置へ送信する。ここで、当該データ転送装置においては、ブロック内の複数の伝送パケットが受信装置へ到着する順序は保証されており、受信装置は、ブロック内の最終の伝送パケットを受信したことを契機として、そのブロックに対する確認応答を生成して送信装置へ送信する。
【０００６】
しかし、上記特許文献１に開示されたデータ転送装置によると、何らかの原因によってブロック内の複数の伝送パケットが送信装置から受信装置へ到着する順序が入れ替わり、最終の伝送パケットが他の伝送パケットよりも先に受信装置に到着した場合には、最終の伝送パケットが到着した時点で受信装置は確認応答（この場合はＮＡＫ信号を含む確認応答）を生成してしまう。従って、この場合には受信装置から送信装置へ正しい確認応答を送信することができないという問題がある。
【０００７】
本発明はかかる問題を解決するために成されたものであり、データ送信装置からデータ受信装置へのデータパケットの到着順序が入れ替わった場合であっても、データ送信装置からデータ受信装置へのデータ転送の完了を正しく判定することが可能な、データ通信システム及びデータ通信方法を得ることを目的とするものである。
【課題を解決するための手段】
【０００８】
本発明に係るデータ通信システムは、データ送信装置と、パケット交換ネットワークを介して前記データ送信装置に接続されたデータ受信装置とを備え、前記データ送信装置は、データ転送命令に応じて複数のデータパケットを生成するデータパケット生成部と、前
記複数のデータパケットを前記データ受信装置に向けて送信するデータパケット送信部と、前記データ送信装置から前記データ受信装置へのデータ送信の完了を判定する判定部とを有し、前記データ受信装置は、前記複数のデータパケットの各々の受信が完了する毎にリプライ情報を発行するリプライ情報発行部と、前記リプライ情報発行部によって発行されたリプライ情報の数をカウントし、そのカウント値を保持するリプライ情報管理部と、前記リプライ情報管理部からリプライ情報を受け取ることにより、当該リプライ情報に関するカウント値を含むリプライパケットを生成するリプライパケット生成部と、前記リプライパケット生成部によって生成されたリプライパケットを前記データ送信装置に向けて送信するリプライパケット送信部とを有し、前記判定部は、前記データパケット生成部が生成した前記複数のデータパケットの数と、前記データ受信装置から受信したリプライパケットに含まれるカウント値とに基づいて、前記データ送信装置から前記データ受信装置へのデータ送信の完了を判定することを特徴とするものである。
【０００９】
また、本発明に係るデータ通信方法は、データ送信装置とデータ受信装置との間でのデータ通信方法であって、（Ａ）前記データ送信装置において、データ転送命令に応じて複数のデータパケットを生成するステップと、（Ｂ）前記ステップ（Ａ）で生成された前記複数のデータパケットを、前記データ受信装置に向けて送信するステップと、（Ｃ）前記データ送信装置から前記データ受信装置へのデータ送信の完了を判定するステップと、（Ｄ）前記データ受信装置において、前記複数のデータパケットの各々の受信が完了する毎にリプライ情報を発行するステップと、（Ｅ）前記ステップ（Ｄ）において発行されたリプライ情報の数をカウントし、そのカウント値を保持するステップと、（Ｆ）前記ステップ（Ｅ）において保持されているリプライ情報を受け取ることにより、当該リプライ情報に関するカウント値を含むリプライパケットを生成するステップと、（Ｇ）前記ステップ（Ｆ）において生成されたリプライパケットを、前記データ送信装置に向けて送信するステップと、（Ｈ）前記データ送信装置において、前記ステップ（Ｇ）で送信されたリプライパケットを受信するステップとを備え、前記ステップ（Ｂ）においては、前記ステップ（Ａ）において生成された前記複数のデータパケットの数と、前記ステップ（Ｈ）において受信したリプライパケットに含まれるカウント値とに基づいて、前記データ送信装置から前記データ受信装置へのデータ送信の完了を判定することを特徴とするものである。
【発明の効果】
【００１０】
本発明によれば、データ送信装置からデータ受信装置へのデータパケットの到着順序が入れ替わった場合であっても、データ送信装置からデータ受信装置へのデータ転送の完了を正しく判定することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係るデータ通信システムの全体構成を示すブロック図である。
【図２】送信側ノード間制御部の構成例を示すブロック図である。
【図３】受信側ノード間制御部の構成例を示すブロック図である。
【図４】リプライ制御部の構成例を示すブロック図である。
【図５】リプライ制御部における処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００１３】
図１は、本発明の実施の形態に係るデータ通信システム１の全体構成を示すブロック図である。通信ノードであるデータ送信装置１００とデータ受信装置１２０とがノード間通信ネットワーク１３０（パケット交換ネットワーク）を介して接続されることにより、マ
ルチノードシステムが構成されている。
【００１４】
データ送信装置１００は、送信側ノード間制御部１０１、ＣＰＵ１０２、及びメモリ１０３を備えて構成されている。送信側ノード間制御部１０１は、ＣＰＵ１０２からノード間転送の起動命令を受け付け、一命令あたりの転送量をノード間転送のパケットに分解し、メモリ１０３から転送データを読み出し、データパケット１３１を生成し、ノード間転送を行う。
【００１５】
データ受信装置１２０は、受信側ノード間制御部１２１及びメモリ１２３を備えて構成されている。受信側ノード間制御部１２１は、データ送信装置１００からノード間通信ネットワーク１３０を経由して送られてくるデータパケット１３１を受け付け、メモリ１２３へのデータ書き込みを行った後、送信元ノードであるデータ送信装置１００に対してリプライパケット１３２を返却する。
【００１６】
図２は、送信側ノード間制御部１０１の構成例を示すブロック図である。図２の接続関係で示すように、送信側ノード間制御部１０１は、命令受信発行部２２１、パケット生成部２２２、メモリリクエスト発行部２２３、データ送信部２２４、リプライ受信部２２５、及び命令終了判定部２２６を備えて構成されている。命令受信発行部２２１は、ＣＰＵ１０２からノード間転送起動命令Ｓ１を受信し、受け付けたノード間転送起動命令Ｓ１毎に識別情報（以下「ＲＩＤ」と称す）を付加し、命令Ｓ２の発行制御を行う。パケット生成部２２２は、発行された命令Ｓ２をノード間データ転送のパケットサイズに分解し、パケットのヘッダ情報Ｓ３を生成し、該ヘッダ情報Ｓ３をデータ送信部２２４に指示する。メモリリクエスト発行部２２３は、パケット生成部２２２から１パケット単位のリクエストＳ４が渡されることにより、読み出しリクエストＳ５によってメモリ１０３からデータＳ６の読み出しを行う。データ送信部２２４は、メモリ１０３から読み出したデータＳ６をパケットサイズ毎にまとめ、データ整列が完了したならば、予めパケット生成部２２２から送られたデータパケットのヘッダ情報Ｓ３とともに、ノード間通信ネットワーク１３０にデータパケット１３１を送信する。
【００１７】
リプライ受信部２２５及び命令終了判定部２２６は、命令の終了判定処理（つまりデータ送信装置１００からデータ受信装置１２０へのデータ送信の完了の判定）を行うための待ち合わせ手段として機能する。リプライ受信部２２５は、データ受信装置１２０からノード間通信ネットワーク１３０を介して送られるリプライパケット１３２を受け付ける。リプライパケット１３２は、リプライ受信部２２５から命令終了判定部２２６に入力される。また、命令受信発行部２２１によって命令Ｓ２が発行されると、ＲＩＤとパケット分解数とに関する情報Ｓ７が、命令受信発行部２２１から命令終了判定部２２６に入力される。命令終了判定部２２６は、リプライパケット１３２と情報Ｓ７とに基づいて命令の終了判定を行う。
【００１８】
図３は、受信側ノード間制御部１２１の構成例を示すブロック図である。図３の接続関係で示すように、受信側ノード間制御部１２１は、データ受信部３２１、メモリリクエスト制御部３２２、リプライ制御部３２３、及びリプライ送信部３２４を備えて構成されている。データ受信部３２１は、ノード間通信ネットワーク１３０からデータパケット１３１を受信し、受け付けたデータパケット１３１のヘッダ情報Ｓ２０（図２のヘッダ情報Ｓ３に相当する）をメモリリクエスト制御部３２２に送信し、パケットのデータＳ２１を保持する。メモリリクエスト制御部３２２は、データ受信部３２１から送られたパケットのヘッダ情報Ｓ２０からメモリ１２３へのデータ書き込みのためのメモリリクエストＳ２２を生成し、メモリ書き込み時にデータ受信部３２１にデータ読み出し指示Ｓ２３を入力する。リプライ制御部３２３は、送信元ノードを識別するためのノード番号と、送信元ノードであるデータ送信装置１００で命令単位に付加されたＲＩＤとに基づいてデータパケッ
ト１３１のグループを識別し、リプライ情報をまとめることによりリプライパケット１３２を生成する。リプライ送信部３２４は、リプライ制御部３２３で生成されたリプライパケット１３２を、ノード間通信ネットワーク１３０を介してデータ送信装置１００に送信する。
【００１９】
メモリリクエスト制御部３２２は、メモリ１２３へのデータＳ２１の書き込み後に得られるリプライ情報Ｓ２４をメモリ１２３から受信し、ノード番号及びＲＩＤを含むリプライ情報Ｓ２４をリプライ制御部３２３に送信する。リプライ制御部３２３はリプライ管理テーブル４２０を保持しており、このリプライ管理テーブル４２０を用いてリプライ情報Ｓ２４をまとめる処理が行われる。
【００２０】
図４は、リプライ制御部３２３の構成例を示すブロック図である。図４の接続関係で示すように、リプライ制御部３２３は、リプライ管理テーブル４２０、エントリ更新制御部４３０、エントリ更新管理シフトレジスタ群４４０、エントリ更新管理部４５０、リプライ生成部４６０、比較器４７０、及び加算器４２２を備えて構成されている。リプライ管理テーブル４２０は、メモリリクエスト制御部３２２から送られたリプライ情報４１０（図３のリプライ情報Ｓ２４に相当する）を格納するための複数のエントリ枠（以下「エントリ」と称す）４２１を有している。エントリ更新制御部４３０は、リプライ管理テーブル４２０を検索し、更新対象のエントリ４２１の更新を行う。エントリ更新管理シフトレジスタ群４４０は、エントリ登録順に最古のエントリ４２１を管理する。エントリ更新管理部４５０は、エントリ解放条件が成立しなかった場合に強制解放を行う。リプライ生成部４６０は、リプライ管理テーブル４２０に格納されているリプライ情報４１０に基づいてリプライパケット１３２を生成する。比較器４７０は、メモリリクエスト制御部３２２から送られたリプライ情報４１０に含まれるノード番号４１１及びＲＩＤ４１２と、リプライ管理テーブル４２０の各エントリ４２１のノード番号及びＲＩＤとを比較する。加算器４２２は、比較器４７０による比較の結果、両者が一致したならば、該当するエントリ４２１内のパケット数に「１」を加算する。
【００２１】
以下、本実施の形態に係るデータ通信システム１の動作について説明する。
【００２２】
まず、基本的なデータ転送の動作について説明する。図２を参照して、ＣＰＵ１０２からノード間転送起動命令Ｓ１が発行されると、命令受信発行部２２１は、起動命令の受け付けを行い、受け付けた命令毎にユニークなＲＩＤを付加して、パケット生成部２２２に対して命令Ｓ２の発行を行う。同時に、命令の終了判定を行うために必要なＲＩＤとパケット分解数とに関する情報Ｓ７を命令終了判定部２２６に送信する。パケット生成部２２２は、発行された命令Ｓ２をノード間データ転送のパケットサイズに分解するとともに、パケットのヘッダ情報Ｓ３を生成してデータ送信部２２４に送信する。また、パケット生成部２２２は、メモリ１０３からのデータ読み出しを行うためのリクエストＳ４を、分解されたパケット単位でメモリ１０３に入力する。メモリリクエスト発行部２２３は、パケット生成部２２２から入力されたリクエストＳ４に基づき、パケット単位の読み出しリクエストＳ５によってメモリ１０３からデータＳ６の読み出しを行う。メモリ１０３から読み出されたデータＳ６は、データ送信部２２４に送られる。データ送信部２２４は、メモリ１０３から入力されたデータＳ６をパケットサイズ毎にまとめ、データ整列が完了したならば、予めパケット生成部２２２から送られたヘッダ情報Ｓ３を結合することにより、データパケット１３１を生成する。その後、ノード間通信ネットワーク１３０にデータパケット１３１を送信する。
【００２３】
データ送信部２２４から送信されたデータパケット１３１は、ノード間通信ネットワーク１３０を介して、送信先ノードであるデータ受信装置１２０に転送される。データ受信装置１２０では、受信側ノード間制御部１２１の制御によって、メモリ１２３へのデータ
の書き込みが行われる。
【００２４】
図３を参照して、データ受信部３２１は、ノード間通信ネットワーク１３０からデータパケット１３１を受信し、受け付けたデータパケット１３１からヘッダ情報Ｓ２０を抜き出してメモリリクエスト制御部３２２に送信するとともに、データパケット１３１のデータＳ２１を保持する。メモリリクエスト制御部３２２は、データ受信部３２１から送られたパケットのヘッダ情報Ｓ２０に基づいて、メモリ１２３へのデータ書き込みのためのメモリリクエストＳ２２を生成してメモリ１２３に入力するとともに、データ受信部３２１に対してデータ読み出し指示Ｓ２３を入力することにより、メモリ１２３へのデータＳ２１の書き込みを行う。また、メモリリクエスト制御部３２２は、メモリ１２３へのデータＳ２１の書き込み後に得られるリプライ情報Ｓ２４をメモリ１２３から受信すると、ノード番号及びＲＩＤを含むリプライ情報Ｓ２４をリプライ制御部３２３に送信する。リプライ制御部３２３は、リプライ管理テーブル４２０を保持しており、ノード番号及びＲＩＤに基づいてデータパケット１３１のグループを識別してリプライ情報Ｓ２４をまとめる処理を行うことにより、複数のリプライ情報Ｓ２４がまとめられたリプライパケット１３２を生成する。リプライ送信部３２４は、リプライ制御部３２３で生成されたリプライパケット１３２を、ノード間通信ネットワーク１３０を介してデータ送信装置１００に送信する。
【００２５】
図２を参照して、リプライ受信部２２５は、ノード間通信ネットワーク１３０から受信したリプライパケット１３２を受け付け、命令終了判定部２２６に送信する。命令終了判定部２２６は、リプライパケット１３２に含まれているリプライ情報のカウント値と、予め命令受信発行部２２１から入力されたＲＩＤ及びパケット分解数に関する情報Ｓ７とに基づいて、命令終了の判定を行う。具体的に命令終了判定部２２６は、リプライパケット１３２に含まれているリプライ情報のカウント値（複数のリプライパケット１３２に分割されている場合にはカウント値の累計）がパケット分解数に一致すると、命令終了と判定し、命令発行元のＣＰＵ１０２に対して終了報告Ｓ８を送信する。これにより、一つの命令に対応するデータ転送が完了する。
【００２６】
次に、リプライ制御部３２３の動作について説明する。図５は、リプライ制御部３２３における処理の流れを示すフローチャートである。リプライ制御部３２３による処理は、ノード間通信ネットワーク１３０から転送されたデータパケット１３１をメモリ１２３に書き込むことによって得られるリプライ情報４１０を、リプライ制御部３２３がメモリリクエスト制御部３２２から受信することによって開始される。図４に示すように、リプライ情報４１０にはノード番号４１１とＲＩＤ４１２とが含まれており、リプライ制御部３２３は、このノード番号４１１とＲＩＤ４１２とによってデータパケット１３１のグループを識別する。また、メモリアクセスの境界違反等が生じた場合には、リプライ情報４１０には例外情報４１３が含まれる。
【００２７】
リプライ情報４１０を受信すると、まずステップＳＰ０１においてエントリ更新制御部４３０は、比較器４７０を用いてリプライ管理テーブル４２０を検索することにより、受信したリプライ情報４１０のノード番号４１１及びＲＩＤ４１２と一致するエントリ４２１がリプライ管理テーブル４２０内に存在するか否かを判定する。
【００２８】
一致するエントリ４２１が存在する場合（つまりステップＳＰ０１の判定結果が「ＹＥＳ」である場合）は、次にステップＳＰ０２においてエントリ更新制御部４３０は、リプライ管理テーブル４２０から該当するエントリ４２１を読み出し、加算器４２２によってパケット数の更新を行う。つまり、該当するエントリ４２１内のパケット数に「１」を加算する。
【００２９】
次にステップＳＰ０３においてエントリ更新制御部４３０は、受信したリプライ情報４１０に例外情報４１３が含まれているか、あるいは受信したリプライ情報４１０がデータパケット１３１のグループ内の最終パケット（ラストパケット）であるか否かを判定する。
【００３０】
ステップＳＰ０３における判定の結果、受信したリプライ情報４１０に例外情報４１３が含まれている又はラストパケットである場合（つまりステップＳＰ０３の判定結果が「ＹＥＳ」である場合）は、リプライ管理テーブル４２０への再登録は行わず、次にステップＳＰ０４においてリプライ生成部４６０は、リプライパケット１３２を生成する。具体的には、リプライ管理テーブル４２０から読み出したエントリ４２１内のノード番号、ＲＩＤ、及びパケット数（ステップＳＰ０２による更新後のパケット数）に関する情報が、エントリ更新制御部４３０からリプライ生成部４６０に入力される。そして、リプライ生成部４６０は、これらの情報に基づいてリプライパケット１３２を生成する。作成されたリプライパケット１３２は、リプライ送信部３２４によって、ノード間通信ネットワーク１３０を介してデータ送信装置１００に送信される。
【００３１】
次にステップＳＰ０５においてエントリ更新制御部４３０は、リプライパケット１３２の作成が完了したエントリ４２１の内容を、リプライ管理テーブル４２０からクリアする。
【００３２】
ステップＳＰ０３における判定の結果、受信したリプライ情報４１０に例外情報４１３が含まれておらず、かつラストパケットでない場合（つまりステップＳＰ０３の判定結果が「ＮＯ」である場合）は、次にステップＳＰ０６においてエントリ更新制御部４３０は、リプライ管理テーブル４２０から読み出したエントリ４２１について、リプライ管理テーブル４２０への登録（書き戻し）を行う。
【００３３】
次にステップＳＰ０７においてエントリ更新制御部４３０は、更新フラグを「１」にセットするとともに、エントリ更新管理シフトレジスタ群４４０において、更新したエントリ４２１を最新エントリに設定する。
【００３４】
ステップＳＰ０１における判定の結果、一致するエントリ４２０が存在しない場合（つまりステップＳＰ０１の判定結果が「ＮＯ」である場合）は、次にステップＳＰ０８においてエントリ更新制御部４３０は、受信したリプライ情報４１０に例外情報４１３が含まれているか、あるいは受信したリプライ情報４１０がラストパケットであるか否かを判定する。
【００３５】
ステップＳＰ０８における判定の結果、受信したリプライ情報４１０に例外情報４１３が含まれている又はラストパケットである場合（つまりステップＳＰ０８の判定結果が「ＹＥＳ」である場合）は、次にステップＳＰ０９においてリプライ生成部４６０は、そのリプライ情報４１０に基づいてリプライパケット１３２を生成する。作成されたリプライパケット１３２は、リプライ送信部３２４によって、ノード間通信ネットワーク１３０を介してデータ送信装置１００に送信される。
【００３６】
ステップＳＰ０８における判定の結果、受信したリプライ情報４１０に例外情報４１３が含まれておらず、かつラストパケットでない場合（つまりステップＳＰ０８の判定結果が「ＮＯ」である場合）は、次にステップＳＰ１０においてエントリ更新制御部４３０は、リプライ管理テーブル４２０の全てのエントリ４２１が満杯であるか否かを判定する。つまり、リプライ管理テーブル４２０に空きエントリが存在するか否かを判定する。
【００３７】
ステップＳＰ１０における判定の結果、空きエントリが存在する場合（つまりステップ
ＳＰ１０の判定結果が「ＮＯ」である場合）は、次にステップＳＰ１５においてエントリ更新制御部４３０は、受信したリプライ情報４１０をリプライ管理テーブル４２０の空きエントリに登録（新規登録）する。
【００３８】
次にステップＳＰ１６においてエントリ更新制御部４３０は、更新フラグを「１」にセットするとともに、エントリ更新管理シフトレジスタ群４４０において、新規登録したエントリ４２１を最新エントリに設定する。
【００３９】
ステップＳＰ１０における判定の結果、空きエントリが存在しない場合（つまりステップＳＰ１０の判定結果が「ＹＥＳ」である場合）は、次にステップＳＰ１１においてエントリ更新制御部４３０は、新たなエントリを登録すべく最古のエントリをリプライ管理テーブル４２０から追い出すモード（追い出しモード）に設定されているか否かを判定する。
【００４０】
ステップＳＰ１１における判定の結果、追い出しモードに設定されていない場合（つまりステップＳＰ１１の判定結果が「ＮＯ」である場合）は、次にステップＳＰ０９においてリプライ生成部４６０は、そのリプライ情報４１０に基づいてリプライパケット１３２を生成する。作成されたリプライパケット１３２は、リプライ送信部３２４によって、ノード間通信ネットワーク１３０を介してデータ送信装置１００に送信される。
【００４１】
ステップＳＰ１１における判定の結果、追い出しモードに設定されている場合（つまりステップＳＰ１１の判定結果が「ＹＥＳ」である場合）は、次にステップＳＰ１２においてリプライ生成部４６０は、リプライ管理テーブル４２０に最も古く登録（新規登録及び更新登録を含む）されたエントリ４２１に関して、リプライパケット１３２を生成する。この場合、リプライ管理テーブル４２０から最古エントリが読み出され、その最古エントリ内のノード番号、ＲＩＤ、及びパケット数に関する情報が、エントリ更新制御部４３０からリプライ生成部４６０に入力される。作成されたリプライパケット１３２は、リプライ送信部３２４によって、ノード間通信ネットワーク１３０を介してデータ送信装置１００に送信される。なお、エントリ更新管理シフトレジスタ群４４０には、リプライ管理テーブル４２０の各エントリ４２１のエントリ番号が登録されおり、各エントリ４２１の登録順にシフトしていくことで、最古エントリを決定する。このように、最古エントリをエントリ管理テーブル４２０から追い出してリプライパケット１３２をデータ送信装置１００に返却することによって、通信障害によるパケットロストやパケット順序の逆転によるラストパケットの先行到着が発生した場合であっても、データ受信装置１２０からリプライパケット１３２が長時間返却されずに処理が停滞するという事態を回避することが可能となる。
【００４２】
次にステップＳＰ１３においてエントリ更新制御部４３０は、最古エントリを更新対象として、受信したリプライ情報４１０をリプライ管理テーブル４２０に登録（更新登録）する。つまり、エントリ管理テーブル４２０から最古エントリを追い出すことによって空きエントリを作成し、受信した新たなリプライ情報４１０をその空きエントリに登録する。
【００４３】
次にステップＳＰ１４においてエントリ更新制御部４３０は、更新フラグを「１」にセットするとともに、エントリ更新管理シフトレジスタ群４４０において、更新登録したエントリ４２１を最新エントリに設定する。
【００４４】
以上のように、リプライ管理テーブル４２０のエントリ４２１は、受信したリプライ情報４１０に例外情報４１３が含まれている場合、受信したリプライ情報４１０がラストパケットである場合、又は、リプライ管理テーブル４２０の満杯時に受信したリプライ情報
４１０を登録する場合に、リプライ管理テーブル４２０から解放（正常解放）される。
【００４５】
図５のフローチャートには示さないが、リプライ制御部３２３においては、上記の正常解放以外にも、エントリ更新管理部４５０の制御によってエントリ４２１の強制解放を行うこともできる。エントリ更新管理部４５０は、エントリ管理テーブル４２０の各エントリ４２１に関して、パケット数のカウント値が最後に更新されてからの経過時間を計測している。各エントリ４２１の経過時間に関する情報は、エントリ更新管理部４５０からエントリ更新制御部４３０に入力される。エントリ更新制御部４３０は、経過時間が所定値を超えたエントリ（つまり直近の一定時間内に更新が行われていないエントリ）をリプライ管理テーブル４２０から読み出してリプライ生成部４６０に送出する。リプライ生成部４６０は、当該エントリに関してリプライパケット１３２を生成し、リプライ送信部３２４は、生成されたリプライパケット１３２を、ノード間通信ネットワーク１３０を介してデータ送信装置１００に送信する。このように、最終更新時からの経過時間が所定時間を超えた場合には強制解放を行うことによって、通信障害によるパケットロストやパケット順序の逆転によるラストパケットの先行到着が発生した場合であっても、データ受信装置１２０からリプライパケット１３２が長時間返却されずに処理が停滞するという事態を回避することが可能となる。
【００４６】
このように本実施の形態に係るデータ通信システム１によれば、データ受信装置１２０において、メモリリクエスト制御部３２２（リプライ情報発行部）は、複数のデータパケット１３１の各々の受信が完了する毎にリプライ情報Ｓ２４を発行する。また、リプライ制御部３２３（リプライ情報管理部）は、リプライ管理テーブル４２０を用いて、メモリリクエスト制御部３２２によって発行されたリプライ情報Ｓ２４のカウント値（パケット数）を保持する。また、リプライ生成部４６０は、エントリ更新制御部４３０からリプライ情報を受け取ることにより、当該リプライ情報に関するカウント値を含むリプライパケット１３２を生成する。また、リプライ送信部３２４は、リプライ生成部４６０によって生成されたリプライパケット１３２をデータ送信装置１００に向けて送信する。そして、データ送信装置１００において、命令終了判定部２２６は、命令受信発行部２２１から入力されたデータパケットの分解数と、データ受信装置１２０から受信したリプライパケット１３２に含まれるリプライ情報のカウント値とに基づいて、データ送信装置１００からデータ受信装置１２０へのデータ送信の完了を判定する。
【００４７】
このように、データ受信装置１２０は、複数のデータパケット１３１の各々に対してリプライパケット１３２をデータ送信装置１００に返却するのではなく、受信したデータパケット１３１のパケット数に関する情報を含むリプライパケット１３２を返却する。従って、ノード間通信ネットワーク１３０上を流れるリプライパケット１３２の数を削減することができるため、ノード間通信ネットワーク１３０の通信トラフィックが軽減される。その結果、大量のリプライパケットによってデータパケット１３１の転送が阻害される事態を回避できるため、ノード間データ転送の性能向上を図ることが可能となる。
【００４８】
また、命令終了判定部２２６は、データパケットの分解数とリプライパケット１３２に含まれるリプライ情報のカウント値とに基づいて命令終了を判定するため、通信障害によるパケットロストやパケット順序の逆転によるラストパケットの先行到着が発生した場合であっても、データ送信装置１００からデータ受信装置１２０へのデータ転送の完了を正しく判定することが可能となる。
【符号の説明】
【００４９】
１  データ通信システム
１００  データ送信装置
１０１  送信側ノード間制御部
１２０  データ受信装置
１２１  受信側ノード間制御部
１３１  データパケット
１３２  リプライパケット
２２１  命令受信発行部
２２２  パケット生成部
２２３  メモリリクエスト発行部
２２４  データ送信部
２２５  リプライ受信部
２２６  命令終了判定部
３２１  データ受信部
３２２  メモリリクエスト制御部
３２３  リプライ制御部
３２４  リプライ送信部
４１０  リプライ情報
４２０  リプライ管理テーブル
４３０  エントリ更新制御部
４４０  エントリ更新管理シフトレジスタ群
４５０  エントリ更新管理部
４６０  リプライ生成部
【図１】
2011091693.tif 000003
【図２】
2011091693.tif 000004
【図３】
2011091693.tif 000005
【図４】
2011091693.tif 000006
【図５】
2011091693.tif 000007