(57)【特許請求の範囲】
【請求項１】
複数の経路を介してパケットデータを送信する送信装置と、前記複数の経路を介して送信されたパケットデータを受信する受信装置とを有する情報処理システムであって、
前記送信装置は、
パケットデータを分割して分割データを生成する分割部と、
前記分割データをそれぞれ格納する送信バッファを有し、前記送信バッファに格納された分割データを前記複数の経路のうちの対応する経路を介して送信する複数の送信部と、
前記受信装置から分割データの再送信の要求があった場合に、前記複数の送信部の各々に対して、前記送信バッファに格納されている分割データを、再送信であることを示す情報と共に再送信させる制御を行なう制御部と、を備え、
前記受信装置は、
前記複数の経路のうちの対応する経路から受信した分割データのエラーを検出すると、他の受信部に後続の分割データの受信を停止させるよう通知する複数の受信部と、
前記複数の受信部のいずれかが受信した分割データのエラーを検出した場合に、正常に受信できなかった分割データの再送信を前記送信装置に要求する再送信要求部とを備え、
前記受信部の各々は、前記再送信要求部が分割データの再送信を要求した後に、前記送信装置から再送信であることを示す情報を含む分割データが送信されると、受信処理を再開する
ことを特徴とする情報処理システム。
【請求項２】
前記パケットデータは、前記分割部により分割される複数のデータブロックを含み、
前記分割データは、前記分割データが格納される送信バッファのアドレスと、再送信であるか否かを示す情報と、前記データブロックとを含み、
前記再送信要求部は、前記複数の受信部のいずれかがエラーを検出した場合に、前記受信装置が正常に受信できた分割データを示す情報と共に、前記送信装置に分割データの再送信を要求し、
前記制御部は、前記再送信の要求と共に受信した前記受信装置が正常に受信できた分割データを示す情報に基づいて、前記受信装置が正常に受信できなかったデータブロック以降の分割データを、前記各送信部に再送信させる
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
複数の経路を介して送信装置から送信されるパケットデータを受信する受信装置であって、
前記複数の経路のうちの対応する経路から受信した、パケットデータを分割して生成された分割データのエラーを検出すると、他の受信部に後続の分割データの受信を停止させるよう通知する複数の受信部と、
前記複数の受信部のいずれかが受信した分割データのエラーを検出した場合に、正常に受信できなかった分割データの再送信を前記送信装置に要求する再送信要求部とを備え、
前記受信部の各々は、前記再送信要求部が分割データの再送信を要求した後に、前記送信装置から再送信であることを示す情報を含む分割データが送信されると、受信処理を再開する
ことを特徴とする受信装置。
【請求項４】
複数の経路を介して、前記複数の経路のいずれかに接続され、送信バッファを有する複数の送信部を有する送信装置から、前記複数の経路のいずれかに接続された受信部とを有する受信装置にパケットデータを送信する情報処理方法であって、
前記送信装置により、パケットデータを分割して分割データを生成し、
前記分割データを、前記複数の送信部の前記送信バッファに格納し、
前記送信バッファに格納された分割データを、接続された経路を介して前記複数の送信部により送信し、
前記複数の受信部により、接続された経路から分割データを受信し、
受信した分割データのエラーを検出すると、エラーを検出した受信部により、他の受信部に後続の分割データの受信を停止させるよう通知し、
前記受信装置から前記送信装置に、分割データの再送信を前記送信装置に要求し、
前記受信装置から分割データの再送信の要求を受信すると、前記複数の送信部の各々から、前記送信バッファに格納されている前記分割データを、再送信であることを示す情報と共に再送信し、
前記送信装置から再送信であることを示す情報を含む分割データが送信されると、受信を停止していた前記受信部の各々により受信処理を再開する
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、情報処理システム、受信装置、及び情報処理方法に関する。
【背景技術】
【０００２】
近年、装置間の転送技術として１０Ｇｂｐｓを超える高速シリアル線（レーン）を束ねてデータ転送を行なう方式が一般に用いられるようになっている。このような高速シリアル転送では、一般に、送信側で転送する情報をパケットに分割してから、各パケットの最後に巡回冗長検査バイト（cyclic redundancy check；以下、ＣＲＣ）を付加して送信し、受信側でＣＲＣのチェックを行なう。伝送速度が高速になるにつれ、送信パケット内にエラーが発生する確率が高くなる。
【０００３】
このような装置間データ転送中に、パケットのデータ中にエラーが検出された場合、そのデータパケットが再送される。
例えば、下記の特許文献１および２では、エラーとなったパケット全体を再転送する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−７３５４号公報
【特許文献２】国際公開第９７／３３２２７号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、エラーとなったパケット全体を再送する場合、パケットの再送に要する時間が長くなる。
このようなデータパケット再送にかかる遅延は、特に、高速な半導体データ記憶装置へのデータの書き込みにおいて顕著となる。
本発明は、１つの側面では、データパケットの再送が発生した場合に、データパケット再送に要する時間を短縮させることを目的とする。
【０００６】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【０００７】
このため、本情報処理システムは、複数の経路を介してパケットデータを送信する送信装置と、前記複数の経路を介して送信されたパケットデータを受信する受信装置とを有する情報処理システムであって、前記送信装置は、パケットデータを分割して分割データを生成する分割部と、前記分割データをそれぞれ格納する送信バッファを有し、前記送信バッファに格納された分割データを前記複数の経路のうちの対応する経路を介して送信する複数の送信部と、前記受信装置から分割データの再送信の要求があった場合に、前記複数の送信部の各々に対して、前記送信バッファに格納されている分割データを、再送信であることを示す情報と共に再送信させる制御を行なう制御部と、を備え、前記受信装置は、前記複数の経路のうちの対応する経路から受信した分割データのエラーを検出すると、他の受信部に後続の分割データの受信を停止させるよう通知する複数の受信部と、前記複数の受信部のいずれかが受信した分割データのエラーを検出した場合に、正常に受信できなかった分割データの再送信を前記送信装置に要求する再送信要求部とを備え、前記受信部の各々は、前記再送信要求部が分割データの再送信を要求した後に、前記送信装置から再送信であることを示す情報を含む分割データが送信されると、受信処理を再開することを特徴としている。
【０００８】
また、本発明に関連する送信装置は、複数の経路を介して受信装置にパケットデータを送信する送信装置であって、送信されるパケットデータを分割して分割データを生成する分割部と、前記分割データをそれぞれ格納する送信バッファを有し、前記送信バッファに格納された分割データを前記複数の経路のうちの対応する経路を介して送信する複数の送信部と、前記受信装置から分割データの再送信の要求があった場合に、前記複数の送信部の各々に対して、前記送信バッファに格納されている分割データを、再送信であることを示す情報と共に再送信させる制御を行なう制御部と、を備えることを特徴としている。
【０００９】
また、本受信装置は、複数の経路を介して送信装置から送信されるパケットデータを受信する受信装置であって、前記複数の経路のうちの対応する経路から受信した、パケットデータを分割して生成された分割データのエラーを検出すると、他の受信部に後続の分割データの受信を停止させるよう通知する複数の受信部と、前記複数の受信部のいずれかが受信した分割データのエラーを検出した場合に、正常に受信できなかった分割データの再送信を前記送信装置に要求する再送信要求部とを備え、前記受信部の各々は、前記再送信要求部が分割データの再送信を要求した後に、前記送信装置から再送信であることを示す情報を含む分割データが送信されると、受信処理を再開することを特徴としている。
【００１０】
また、本情報処理方法は、複数の経路を介して、前記複数の経路のいずれかに接続され、送信バッファを有する複数の送信部を有する送信装置から、前記複数の経路のいずれかに接続された受信部とを有する受信装置にパケットデータを送信する情報処理方法であって、前記送信装置により、パケットデータを分割して分割データを生成し、前記分割データを、前記複数の送信部の前記送信バッファに格納し、前記送信バッファに格納された分割データを、接続された経路を介して前記複数の送信部により送信し、前記複数の受信部により、接続された経路から分割データを受信し、受信した分割データのエラーを検出すると、エラーを検出した受信部により、他の受信部に後続の分割データの受信を停止させるよう通知し、前記受信装置から前記送信装置に、分割データの再送信を前記送信装置に要求し、前記受信装置から分割データの再送信の要求を受信すると、前記複数の送信部の各々から、前記送信バッファに格納されている前記分割データを、再送信であることを示す情報と共に再送信し、前記送信装置から再送信であることを示す情報を含む分割データが送信されると、受信を停止していた前記受信部の各々により受信処理を再開することを特徴としている。
【発明の効果】
【００１１】
本開示によれば、データパケットの再送が発生した場合に、データパケット再送に要する時間を短縮させることができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態の一例としての情報処理システムのハードウェア構成を模式的に示す図である。
【図２】実施形態の一例としての情報処理システムにおけるポートの構成を模式的に示す図である。
【図３】実施形態の一例としての情報処理システムにおけるデータパケットのデータ構成例を示す図である。
【図４】実施形態の一例としての情報処理システムにおける再送要求コマンドパケットのデータ構成例を示す図である。
【図５】実施形態の一例としての情報処理システムにおける再送処理の概要を示す図である。
【図６】実施形態の一例としての情報処理システムにおけるポートにおける処理を模式的に示す図である。
【図７】実施形態の一例としての情報処理システムにおける処理のフローチャートである。
【図８】実施形態の一例としての情報処理システムにおけるタイムチャートである。
【図９】実施形態の一例としての情報処理システムにおけるタイムチャートである。
【発明を実施するための形態】
【００１３】
（Ａ）システム構成
図１は、実施形態の一例としての情報処理システム１の構成を模式的に示す図である。
本情報処理システム１は、情報処理装置（送信装置）１０と、記憶装置（System Storage Unit：ＳＳＵ）（受信装置）２０とを有し、情報処理装置１０と記憶装置２０とが、ケーブル３０で接続されている。
【００１４】
情報処理装置１０は、例えばクラスタを構成する個々のクラスタシステムなどである。情報処理装置１０は、ポート１２、メモリアクセス制御装置（memory access controller：ＭＡＣ）１３、メモリ１４、システム制御装置（system controller：ＳＣ）１５、中央処理装置（central processing unit：ＣＰＵ）１６、およびチャネル制御装置（channel controller：ＣＨ）１７を備える。
【００１５】
ポート１２は、高速シリアルデータ伝送を行なうインタフェースであり、３個のモジュール１２１を有する。そして、これらの３個のモジュール１２１が、後述する記憶装置２０のポート２２の３個のモジュール２２１と、ケーブル３０を介してそれぞれ接続されている。このポート１２は、システムチップ上に実装されている。また、ＭＡＣ１３、メモリ１４、ＳＣ１５、ＣＰＵ１６およびＣＨ１７もシステムチップ上に実装されていてもよい。
【００１６】
ＭＡＣ１３は、後述するメモリ１４へのアクセスを制御する。なお、図１には複数のＭＡＣ１３が図示されているが、ＭＡＣ１３は単一でも複数でもよい。
メモリ１４は、データを記憶する記憶装置であり、例えば、デュアルインラインメモリモジュール（dual inline memory module：ＤＩＭＭ）である。メモリ１４へのデータの読み出しおよび書き込みが、上述したＭＡＣ１３によって制御される。
【００１７】
システム制御装置１５は、ＣＰＵ１６とＭＡＣ１３、ポート１２，ＣＨ１７間のデータやコマンドの受け渡しを行なう。
ＣＰＵ１６は、演算処理を行なう装置である。なお、図１には複数のＣＰＵ１６が図示されているが、ＣＰＵ１６は単一でも複数でもよい。
ＣＨ１７は、チャネル制御装置であり、図示しない各種装置が接続され、その各種装置との間の入出力を行なうためのチャネルを制御している。
【００１８】
記憶装置２０は、高速記憶装置であり、例えば、半導体記憶装置である。例えば、この記憶装置２０は、情報処理装置１０に対して記憶領域を提供する。
記憶装置２０は、ポート２２、メモリアクセス制御装置（ＭＡＣ）２３、メモリ２４、優先度決定部２５、および処理部２６を備える。
ポート２２は、高速シリアルデータ伝送を行なうインタフェースであり、３個のモジュール２２１を有する。そして、これらの３個のモジュール２２１が、情報処理装置１０のポート１２のモジュール１２１と、ケーブル３０を介してそれぞれ接続されている。このポート２２は、システムチップ上に実装されている。また、ＭＡＣ２３、メモリ２４、優先度決定部２５、および処理部２６もシステムチップ上に実装されていてもよい。
【００１９】
ＭＡＣ２３は、メモリ２４へのアクセスを制御する。なお、図１には複数のＭＡＣ２３が図示されているが、ＭＡＣ２３は単一でも複数でもよい。
メモリ２４は、データを記憶する記憶装置であり、例えば、ＤＩＭＭである。メモリ２４へのデータの読み出しおよび書き込みがメモリアクセス制御装置２３によって制御される。
【００２０】
優先度決定部２５は、情報処理装置１０から送信された要求の優先度を決定する。
処理部２６は、記憶装置２０の構成に係わる処理を行なう。
ケーブル３０は、高速シリアル伝送技術を採用したシリアル線（レーン；経路）３１−０，３１−１，３１−２を束ねたものである。各シリアル線３１−０，３１−１，３１−２は、電気ケーブルまたは光ケーブルであり、例えば、１０Ｇｂｐｓを超える高い伝送速度を実現する。
【００２１】
なお、以下、シリアル線を示す符号としては、複数のシリアル線のうち１つを特定する必要があるときには符号３１−０〜３１−２を用いるが、任意のシリアル線を指すときには符号３１を用いる。
情報処理装置１０と、記憶装置２０とは、パケット化されたデータ（データパケット３００）を、ケーブル３０を介して送受信することにより、情報処理装置１０と記憶装置２０との間でデータの読み出し及び／又は書き込みを行なっている。また、データパケット３００にエラーが検出された場合、記憶装置２０から情報処理装置１０に対して、当該データパケットの再送を要求する再送要求コマンドパケット４００（図４参照）も送信される。
【００２２】
ここで、情報処理装置１０と記憶装置２０間のデータパケット転送では、図２に関して後述する複数個のモジュール１２１，２２１の対を使用して、データを、モジュールの対の個数に応じて分割したのち転送している。図１には、３組のモジュールの対（うち、１対は冗長モジュール）を使用してデータパケット転送を行なう例が図示されている。
なお、ここで定義するモジュール１２１，２２１とは、高速伝送の送受信処理を行なう回路（機能ブロック）であり、１対の冗長モジュールを含む。このような冗長モジュールが存在することにより、３個のモジュールのうちの１個のモジュールが破損しても、情報処理システム１の動作を継続することが可能となる。ここでは、後述するようにモジュール１２１−２，２２１−２を冗長モジュールとしている。
【００２３】
次に、図２を参照して、情報処理システム１におけるポート１２，２２の構成を更に詳細に説明する。
図２は、実施形態の一例としての情報処理システム１におけるポート１２，２２の構成を模式的に示す図である。
図２の左側には、情報処理装置１０のポート１２が、図２の右側には、記憶装置２０のポート２２が、それぞれ図示されている。
【００２４】
情報処理装置１０のポート１２は、図２の左側に示すように、分割部１１１、共通部（制御部）１１２、および送信側モジュール（送信部）１２１−０，１２１−１，１２１−２を有する。これらのうち、送信側モジュール１２１−２は冗長用の送信側モジュールである。
なお、以下、送信側モジュールを示す符号としては、複数の送信側モジュールのうち１つを特定する必要があるときには符号１２１−０〜１２１−２を用いるが、任意の送信側モジュールを指すときには符号１２１を用いる。
【００２５】
分割部１１１は、データの転送効率を上げるために、記憶装置２０に書き込むべきデータ（送信データ）を、送信側モジュール１２１の総数から、冗長用の送信側モジュール１２１の個数を引いた値、すなわち、送信側モジュール１２１の総数−１（図２では３−１＝２）に分割する。この分割されたデータが、送信側モジュール１２１−０，１２１−１のいずれかに送信される。
【００２６】
共通部１１２は、送信側モジュール１２１−０，１２１−１に対して共通の処理を行なう。共通部１１２は、読み出しカウンタ（ＲＤ−ＣＴ）格納部１１３、再送フラグ格納部１１４、再送要求受信レジスタ１１５、およびパケット解析部１１６を有する。
ＲＤ−ＣＴ格納部１１３は、記憶装置２０に記憶すべきデータをパケットに分割した際の、パケットのシーケンス番号である読み出しカウンタ（ＲＤ−ＣＴ）値を記憶する領域である。このＲＤ−ＣＴ値は、送信側モジュール１２１の後述するＲＡＭ１２２から読み出されるデータのアドレスに対応している。ＲＤ−ＣＴ格納部１１３に格納されているＲＤ−ＣＴ値は、ＲＡＭ１２２からデータが読み出される毎にインクリメントされる。
【００２７】
再送フラグ格納部１１４は、データパケットを再送すべきかどうかを示すフラグ値を記憶する領域である。例えば、記憶装置２０からデータの再送要求が行なわれると、再送フラグ格納部１１４に値“１”が記憶され、情報処理装置１０はデータパケットの再送を行なう。
再送要求受信レジスタ１１５は、記憶装置２０から受信した再送要求コマンドパケットを一時記憶するレジスタ群であり、レジスタ１１５−１〜１１５−５の５つのレジスタを有する。これらのレジスタは、図９を参照して後述する再送処理において、ＲＤ−ＣＴ格納部１１３および再送フラグ格納部１１４の値の書き換え、並びに再送データの読み出し再開のタイミングを調整するために使用される。
【００２８】
パケット解析部１１６は、記憶装置２０から受信したパケットを解析し、このパケットが、図４を参照して後述する再送要求コマンドパケット４００かどうかを判定する。パケット解析部１１６は、受信パケットが再送要求コマンドパケット４００である場合、このパケットを再送要求受信レジスタ１１５に渡す。
送信側モジュール１２１は、ランダムアクセスメモリ（random access memory：ＲＡＭ；送信バッファ）１２２と、データパケット生成部１２３とを有する。
【００２９】
なお、図２には、送信側モジュール１２１−０の内部構成のみが図示されているが、送信側モジュール１２１−０，１２１−１，１２１−２は同様の構成を有する。このため、図２には便宜上、送信側モジュール１２１−０の構成のみを示し、送信側モジュール１２１−１，１２１−２についての構成の図示を省略し、かつここでの説明も省略する。
ＲＡＭ１２２は、分割部１１１によって分割されたのち送信側モジュール１２１に送られた送信データを記憶する記憶領域である。
【００３０】
データパケット生成部１２３は、分割部１１１によって分割され、送信側モジュール１２１に送られた送信データに、前述の共通部１１２のＲＤ−ＣＴ格納部１１３から読み出したＲＤ−ＣＴ値を付加して、パケットを生成する。データパケット生成部１２３は、生成したパケットを、対応する受信側モジュール２２１に送信する。
一方、記憶装置２０のポート２２は、図２の右側に示すように、受信側モジュール（受信部）２２１−０，２２１−１，２２１−２と、再送要求処理部２２２とを有する。これらのうち、受信側モジュール２２１−２は冗長用の受信側モジュールである。
【００３１】
なお、以下、受信側モジュールを示す符号としては、複数の受信側モジュールのうち１つを特定する必要があるときには符号２２１−０〜２２１−２を用いるが、任意の受信側モジュールを指すときには符号２２１を用いる。
受信側モジュール２２１の個数は、情報処理装置１０のポート１２の送信側モジュール１２１の個数に対応している。具体的には、送信側モジュール１２１−０と受信側モジュール２２１−０とが、図１に示したシリアル線３１−１により接続されており、送信側モジュール１２１−１と受信側モジュール２２１−１とが、シリアル線３１−１により接続されている。更に、冗長用の送信側モジュール１２１−２と受信側モジュール２２１−２とが、シリアル線３１−２により接続されている。
【００３２】
受信側モジュール２２１は、パケットチェック部２１２、コピー部２１３，２１８、データパケット抑止フラグ格納部２１４、カウントアップフラグ格納部２１５、書き込みカウンタ（ＷＴ−ＣＴ）格納部２１６、ＲＡＭ２１７、および書き込みカウンタコピー（ＷＴ−ＣＴ−ＣＰ）格納部２１９を有する。
なお、図２には、受信側モジュール２２１−０の内部構成のみが図示されているが、受信側モジュール２２１−０，２２１−１，２２１−２は同様の構成を有する。このため、図２には便宜上、受信側モジュール２２１−０の構成のみを示し、受信側モジュール２２１−１，２２１−２についての構成の図示を省略し、かつここでの説明も省略する。
【００３３】
パケットチェック部２１２は、送信側ポート１２から受信したパケットをチェックする。例えば、パケットチェック部２１２は、受信パケットのＣＲＣチェック、パケット抜けチェックを実行して、エラーの有無を調べる。受信パケットにエラーが検出されなければ、パケットチェック部２１２は、コピー部２１８に、後述するＷＴ−ＣＴ格納部２１６の値を、後述するＷＴ−ＣＴ−ＣＰ格納部２１９にコピーさせる。受信パケットに何らかのエラーが検出されれば、パケットチェック部２１２は、データパケット抑止フラグ格納部２１４に値“１”をセットして、送信側ポート１２からの後続のパケットの受信を抑止すると共に、後述する再送要求処理部２２２にパケットエラーを通知する。
【００３４】
コピー部２１３は、後述する受信データパケットのヘッダ部３０１のＲＥＡＤ−ＡＤＲＳ３１２を、後述するＷＴ−ＣＴ格納部２１６にコピーする。
コピー部２１８は、後述するＷＴ−ＣＴ格納部２１６の値を、後述するＷＴ−ＣＴ−ＣＰ格納部２１９にコピーする。
データパケット抑止フラグ格納部２１４は、送信側ポート１２からの後続のパケットの受信を抑止するかどうかを示すフラグを記憶する領域である。後続のパケットの受信を抑止する場合にはデータパケット抑止フラグ格納部２１４に値“１”がセットされる。一方、後続のパケットの受信を抑止しない場合には値“１”はセットしない。すなわち値は”０”のままである。
【００３５】
カウントアップレジスタ２１５は、データのカウントアップを指示するレジスタである。パケットデータを受信する度にカウントアップ指示され、カウントアップレジスタ２１５に値“１”がセットされる。
ＷＴ−ＣＴ格納部２１６は、ＲＡＭ２１７にデータを書き込む際に使用される書き込みカウンタ（ＷＴ−ＣＴ）値を記憶する領域である。このＷＴ−ＣＴ値は、受信側モジュール２２１の後述するＲＡＭ２１７に書き込まれるデータのアドレスに対応している。ＷＴ−ＣＴ格納部２１６のＷＴ−ＣＴ値は、ＲＡＭ２１７にデータが書き込まれる毎にインクリメントされる。
【００３６】
ＲＡＭ２１７は、受信データパケットの書き込み先の記憶領域である。
ＷＴ−ＣＴ−ＣＰ格納部２１９は、情報処理装置１から正常に受信できた最後のデータを示す情報であるＷＴ−ＣＴ値を記憶する領域である。ＷＴ−ＣＴ−ＣＰ格納部２１９には、情報処理装置１から正常に受信できた最後のデータを示すＷＴ−ＣＴ格納部２１６のカウンタ値のコピーが格納される。ＷＴ−ＣＴ−ＣＰ格納部２１９にフラグ値を設定する具体的な処理に関しては、図６，図７を参照して後述する。
【００３７】
再送要求処理部２２２は、受信側モジュール２２１−０〜２によって共通に使用される処理部である。再送要求処理部２２２は、受信側モジュール２２１のパケットチェック部２１２によって、送信側ポート１２から受信したパケット内にエラーが検出された場合に、送信側ポート１２にデータパケットの再送を要求する。
図３は、実施形態の一例としての情報処理システム１で使用されるデータパケット３００の構成例を示す。
【００３８】
データパケット３００は、実施形態の一例としての情報処理システム１において、例えば、情報処理装置１０から記憶装置２０に送信されるデータをパケット化することで生成される。
データパケット３００は、例えば、ヘッダ部３０１、ペイロード部３０２およびターミネータ部３０３を有する。
【００３９】
ヘッダ部３０１は、パケットのヘッダであり、例えば、開始バイト３１０、ＫＩＮＤ／再送フラグ３１１、ＲＥＡＤ−ＡＤＲＳ３１２、および装置ＡＤＲＳ３１３を有する。
開始バイト３１０は、パケットの開始を示すバイトであり、図中“／ｓ”で示されている。ＫＩＮＤ／再送フラグ３１１は、パケットの種類を示す情報と共に、当該データパケットが再送パケットかどうかを示す情報を格納している。ＲＥＡＤ−ＡＤＲＳ３１２は、ＲＡＭ１２２の読み出し開始のアドレスを示す。装置ＡＤＲＳ３１３は、記憶装置２０のデータ格納先アドレスを示す。
【００４０】
ペイロード部３０２は、パケットにより送信するデータが格納されており、例えば、データバイト３１４とＣＲＣ３１５とを有する。データバイト３１４には、情報処理装置１０から記憶装置２０に送信されるデータ本体である。ＣＲＣ３１５は、図３において縦に並んだ８τ分のデータバイト３１４のＣＲＣである。例えば、図３の１０τにおけるＣＲＣ０ｎは、バイト０のＤＡＴＡ０ｎ〜７ｎの８τ分のデータバイト３１４のＣＲＣであり、ＣＲＣ１ｎは、バイト１のＤＡＴＡ０ｎ＋１〜７ｎ＋１の８τ分のデータバイト３１４のＣＲＣである。また、ＣＲＣ２ｎは、バイト１のＤＡＴＡ０ｎ＋２〜７ｎ＋２の８τ分のデータバイト３１４のＣＲＣである。
【００４１】
ターミネータ部３０３は、データパケットの終端を示し、例えば、ターミネータ３１６とアイドルバイト３１７とを有する。ターミネータ３１６は図中“／ｔ”で示されており、アイドルバイト３１７は図中“／ｉ”で示されている。
図４は、実施形態の一例としての情報処理システム１で使用される再送要求コマンドパケット４００のデータ構成例を示す。
【００４２】
再送要求コマンドパケット４００は、情報処理装置１０から記憶装置２０に送信されたデータパケット３００においてエラーが検出された場合に、情報処理装置１０に対してパケットの再送を要求するために使用されるコマンドパケットである。
再送要求コマンドパケット４００は、例えば、ヘッダ部４０１、ペイロード部４０２およびターミネータ部４０３を有する。
【００４３】
ヘッダ部４０１は、パケットのヘッダであり、例えば、開始バイト４１０、ＫＩＮＤ４１１およびＷＲＩＴＥ−ＡＤＲＳ４１２を有する。開始バイト４１０は、パケットの開始を示すバイトであり、図中“／ｓ”で示されている。ＫＩＮＤ４１１は、パケットの種類を示す情報を格納している。ＷＲＩＴＥ−ＡＤＲＳ４１２は、再送要求開始のアドレスを示す。
【００４４】
ペイロード部４０２は、この再送要求コマンドパケット４００の場合は、ヘッダ部４０１のＣＲＣデータであるＣＲＣ４１３を有する。例えば、図４の２τにおけるＣＲＣ０ｎは、開始バイト４１０のＣＲＣであり、ＣＲＣ１ｎは、ＫＩＮＤ４１１のＣＲＣである。また、ＣＲＣ２ｎは、ＷＲＩＴＥ−ＡＤＲＳ４１２のＣＲＣである。
ターミネータ部４０３は、データパケットの終端を示し、例えば、ターミネータ４１５とアイドルバイト４１６とを有する。ターミネータ４１５は図中“／ｔ”で示されており、アイドルバイト４１６は図中“／ｉ”で示されている。
【００４５】
なお、バイト“／ｓ”、“／ｔ”および“／ｉ”や、ＣＲＣの算出方法については、業界で一般に用いられている各種パケット伝送方式の規格に記載されており、これらの説明をここでは省略する。
（Ｂ）システムの動作
次に、上記の情報処理システム１の動作を示す。
【００４６】
まず、図５を参照して、実施形態の一例としての情報処理システム１におけるパケットエラー発生時の再送処理の概要を示す。
図５は、情報処理装置１０から記憶装置２０に対して、記憶装置２０に記憶させるデータのパケットを送信した際に、パケットエラーが発生した場合の概要を示す。
図５のステップＳＡ１において、情報処理装置１０は、送信するデータパケット３００に、読み出しカウンタ（ＲＤ−ＣＴ）値に対応するＲＥＡＤ−ＡＤＲＳ３１２を付加する。このＲＤ−ＣＴ値は、例えば、記憶装置２０に記憶すべきデータをパケットに分割した際の、パケットのシーケンス番号である。
【００４７】
ステップＳＡ２において、情報処理装置１０は、ＲＥＡＤ−ＡＤＲＳ３１２を付加したパケットを、記憶装置２０に送信する。
ステップＳＡ３において、記憶装置２０は、情報処理装置１０からデータパケット３００を受信し、ＷＴ−ＣＴ格納部２１６のＷＴ−ＣＴ値をインクリメントする。そして、記憶装置２０はＣＲＣのチェックを行ない、例えばＣＲＣエラーを検出する。
【００４８】
ステップＳＡ４において、記憶装置２０は、情報処理装置１０に対して、ＣＲＣエラーが発生したパケットに対するデータ再送要求コマンドパケット４００を送信する。その際、記憶装置２０は、エラーが発生したパケットのＷＴ−ＣＴ値を、ＷＲＩＴＥ−ＡＤＲＳ４１２としてデータ再送要求コマンドパケット４００に付加する。
ステップＳＡ５において、情報処理装置１０は、記憶装置２０からのデータ再送要求コマンドパケット４００を受信する。
【００４９】
そして、情報処理装置１０は、後続のパケットの送信を抑止すると共に、記憶装置２０から受信したデータ再送要求コマンドパケット４００中のＷＲＩＴＥ−ＡＤＲＳ４１２の値により、共通部１１２のＲＤ−ＣＴ格納部１１３の値を上書きする（この処理を、「ＲＤ−ＣＴを巻き戻す」とも称する）。
ステップＳＡ５と並行して、記憶装置２０は、ステップＳＡ６において、再送データを受信する準備を行なう。詳細には、記憶装置２０は、受信側モジュール２２１のＷＴ−ＣＴ格納部２１６のＷＴ−ＣＴ値を、正常に受信できた最後のデータのカウンタ値（ＷＴ−ＣＴ−ＣＰ）に戻す（この処理を、「ＷＴ−ＣＴを巻き戻す」とも称する）。
【００５０】
情報処理装置１０は、記憶装置２０に再送データパケット３００を送信する（ステップＳＡ７）。
最後に、記憶装置２０は、情報処理装置１０から再送データパケット３００を受信する（ステップＳＡ８）。
次に、図６，図７を参照して、情報処理システム１におけるポート１２，２２の処理を更に詳細に説明する。
【００５１】
図６は、実施形態の一例としてのブロック図であり、図７は、実施形態の一例としてのフローチャートであり、図６と図７の図中の丸かっこで囲んだ番号は、対応する処理を示している。また後述する図８，図９においても、丸かっこで囲んだ番号が対応する処理を示している。
この例においては、情報処理装置１０から、半導体記憶装置である記憶装置２０に記憶させたいデータをパケット転送する。
【００５２】
まず、情報処理装置１０の分割部１１１は、データの転送効率を上げるために、記憶装置２０に送信するデータを、送信側モジュール１２１の個数に対応した数に分割し（図７のステップＳＢ１）、分割した送信データを送信側モジュール１２１のいずれかに送信する。例えば、図６においては、データが２つに分割され、それぞれが、送信側モジュール１２１−０，１２１−１に送信される。なお、図２に示したモジュール１２１−２，２２１−２は、前述のように冗長用のモジュールであるので、簡潔を期するために本図では省略している。
【００５３】
分割されたデータは各送信側モジュール１２１のＲＡＭ１２２に書き込まれる。所定量のデータがＲＡＭ１２２に書き込まれると、ポート１２の共通部１１２は、ＲＤ−ＣＴ格納部１１３の値を参照して（図６の処理（１））、ＲＡＭ１２２に書き込まれているデータを、各送信側モジュール１２１のデータパケット生成部１２３に同時に読み出させる（図７のステップＳＢ２）。
【００５４】
詳細には、送信側モジュール１２１は、ＲＤ−ＣＴ格納部１１３に格納されているカウンタ値を参照して、ＲＡＭ１２２内のこのカウンタに対応するアドレスに格納されているデータを読み出す。なお、前述のように、ＲＤ−ＣＴ格納部１１３は、データがＲＡＭ１２２から読み出される毎にインクリメントされる。
データパケット生成部１２３は、読み出したデータをパケット化してデータパケット３００を生成する（図７のステップＳＢ３）。データパケット生成部１２３は、図３に示したパケットのヘッダ部３０１を生成する（図６の処理（２））。詳細には、データパケット生成部１２３は、ＲＡＭ１２２からデータを読み出すのに使用したＲＤ−ＣＴ格納部１１３の値を、データパケット３００のヘッダ部３０１のＲＥＡＤ−ＡＤＲＳ３１２にセットする。また、このデータパケット３００は再送データパケットではないので、図３のヘッダ部３０１の再送フラグには値“０”がセットされる。
【００５５】
また、データパケット３００のペイロード部３０２には、図３に示すように、所定バイト単位（本実施形態では６４バイト単位（８τ単位））にＣＲＣが付加される。
データパケット生成部１２３は、このようにして生成したデータパケット３００を、相手先の受信側モジュール２２１に送信する。
一方、受信側モジュール２２１はパケットを受信する（図７のステップＳＢ４）。
【００５６】
パケットチェック部２１２は、受信したパケットのＫＩＮＤ／再送フラグ３１１をチェックして、受信データパケットが、データパケットかコマンドパケットかをチェックする（図７のステップＳＢ５）。
受信パケットが、コマンドパケットである場合（図７のステップＳＢ５の「Ｃｍｄパケット」ルート参照）、パケットチェック部２１２は、受信パケットのチェック（例えば、ＣＲＣチェックやパケット抜けチェック）を行なう（図６の処理（３）、図７のステップＳＢ６）。
【００５７】
図７のステップＳＢ６においてエラーが検出された場合（図７のステップＳＢ６の「Ｙｅｓ」ルート参照）、パケットチェック部２１２は、パケットを破棄する（図７のステップＳＢ７）。
図７のステップＳＢ６においてエラーが検出されなかった場合（図７のステップＳＢ６の「Ｎｏ」ルート参照）、パケットチェック部２１２は、コマンドを解析して処理させる（図７のステップＳＢ８）。
【００５８】
一方、図７のステップＳＢ５において、受信パケットがデータパケットである場合（図７のステップＳＢ５の「Ｄａｔａパケット」ルート参照）、パケットチェック部２１２は、ＫＩＮＤ／再送フラグ３１１をチェックして、受信データパケットが、再送データパケットであるかどうかをチェックする（図７のステップＳＢ９）。
その際、受信データパケット３００のヘッダ部３０１の再送フラグ３１１の値が“１”であり、かつ、ヘッダ部３０１のＲＥＡＤ−ＡＤＲＳ３１２と受信側モジュール２１１のＷＴ−ＣＴ−ＣＰ格納部２１９の値とが対応（例えば一致）していれば、再送データパケットであると判定される。
【００５９】
受信データパケットが再送データパケットではない場合（図７のステップＳＢ９の「Ｎｏ」ルート参照）、受信データが、各送信側モジュール２１１のＷＴ−ＣＴ格納部２１６（図６の処理（４））の値に対応するＲＡＭ２１７のアドレスに書き込まれる（図７のステップＳＢ１１）。また、ＷＴ−ＣＴ格納部２１６は、ＲＡＭ２１７にデータが書き込まれる毎にインクリメントされる。
【００６０】
一方、受信データパケットが再送データパケットである場合（図７のステップＳＢ９の「Ｙｅｓ」ルート参照）、パケットチェック部２１２は、データパケット抑止フラグ２１４に値“０”をセットする（図６の処理（５））。また、コピー部２１３は、受信データパケットのヘッダ部３０１のＲＥＡＤ−ＡＤＲＳ３１２を、ＷＴ−ＣＴ格納部２１６にコピーする（図６の処理（１３）、図７のステップＳＢ１０）。
【００６１】
また、パケットチェック部２１２は、受信パケットのチェック（例えば、ＣＲＣチェックやパケット抜けチェック）を行なう（図６の処理（３）、図７のステップＳＢ１２）。
パケットチェック部２１２がパケットのエラーを検出しなかった場合（図７のステップＳＢ１２の「Ｎｏ」ルート参照）、コピー部２１８は、ＷＴ−ＣＴ格納部２１６の値を、ＷＴ−ＣＴ−ＣＰ格納部２１９にコピーする（図６の処理（８）、図７のステップＳＢ１３）。このように、ＷＴ−ＣＴ格納部２１６の値をコピーすることにより、ＷＴ−ＣＴ−ＣＰ格納部２１９に格納されている値が、正常に受信できた最後のデータブロックを示す値となる。
【００６２】
一方、図７のステップＳＢ１２においてパケットのエラーを検出した場合（図７のステップＳＢ１２の「Ｙｅｓ」ルート参照）、パケットチェック部２１２は、データパケット抑止フラグ格納部２１４に値“１”をセットして（図６の処理（５））、以降のデータパケットの受信を抑止する（図７のステップＳＢ１４）。このように、データパケット抑止フラグ格納部２１４に値“１”がセットされると、以降受信するデータパケットが、パケットチェック部２１２によって破棄されるようになる。これと同時に、パケットチェック部２１２は、再送要求処理部２２２にエラーを通知する。
【００６３】
受信側モジュール２２１からエラーを通知された再送要求処理部２２２は、図４に示すような再送要求コマンドパケット４００を生成する。その際、再送要求処理部２２２は、エラーを検出した受信側モジュール２２１のＷＴ−ＣＴ−ＣＰ格納部２１９の値を再送要求コマンドパケット４００のＷＲＩＴＥ−ＡＤＲＳ４１２にセットする。そして、再送要求処理部２２２は、生成した再送要求コマンドパケット４００を送信側ポート１２に送信し、再送要求を行なう（図６の処理（６）、図７のステップＳＢ１５）。
【００６４】
このように、再送要求コマンドパケット４００のＷＲＩＴＥ−ＡＤＲＳ４１２に、ＷＴ−ＣＴ−ＣＰ格納部２１９の値をセットすることにより、受信側ポート２２は、正常に受信できなかったデータ以降を再送するように送信側ポート１２に指示する。
更に、エラーを検出した受信側モジュール２２１は、他の受信側モジュール２２１に対して、データパケット抑止フラグ格納部２１４の値と、ＷＴ−ＣＴ−ＣＰ格納部２１９の値とを通知する（図６の処理（１２）、図７のステップＳＢ１６）。
【００６５】
エラーを検出した受信側モジュール２２１から通知を受けた他の受信側モジュール２２１は、自モジュール２２１のデータパケット抑止フラグ格納部２１４に値“１”をセットすると共に、自モジュール２２１のＷＴ−ＣＴ−ＣＰ格納部２１９の値を、受信した値に書き換える。
なお、複数の受信側モジュール２２１がエラーを検出した場合は、モジュール間スキューの影響により、各受信側モジュール２２１が報告するＷＴ−ＣＴ−ＣＰ格納部２１９の値が一致しないことがある。このような場合、再送要求処理部２２２は、複数の受信側モジュール２２１から報告されたＷＴ−ＣＴ−ＣＰ格納部２１９の値のうち値が最小なものを選択して、送信側ポート１２に送信する再送要求コマンドパケット４００を生成する。また、受信側モジュール２２１は、自モジュール２２１のＷＴ−ＣＴ−ＣＰ格納部２１９の値を、ＷＴ−ＣＴ−ＣＰ格納部２１９の値のうちの最小値で上書きする。
【００６６】
一方、送信側では、送信側ポート１２が、再送要求コマンドパケット４００を受信し、送信側ポート１２の共通部１１２のパケット解析部１１６がこのコマンドパケット４００を解析する（図６の処理（９）、図７のステップＳＢ１７）。
パケット解析部１１６は、受信コマンドパケットが再送要求コマンドパケット４００かどうかを判定する（図７のステップＳＢ１８）。
【００６７】
受信コマンドパケットが再送要求コマンドパケット４００でない場合（図７のステップＳＢ１８の「Ｎｏ」ルート参照）、このコマンドが適宜処理される（図７のステップＳＢ２０）。
一方、受信コマンドパケットが再送要求コマンドパケット４００である場合（図６の処理（９）、図７のステップＳＢ１８の「Ｙｅｓ」ルート参照）、ＲＤ−ＣＴ格納部１１３が停止され、データパケット生成部１２３によるＲＡＭ１２２からのデータの読み出しが一旦抑止される。これにより、以降のデータパケットの送出が阻止される。更に、再送要求コマンドパケット４００のＷＲＩＴＥ−ＡＤＲＳ４１２にセットされている、受信側モジュール２２１のＷＴ−ＣＴ−ＣＰ格納部２１９の値が、共通部１１２のＲＤ−ＣＴ格納部１１３にコピーされる（図６の処理（７））。同時に、再送フラグ格納部１１４に値“１”がセットされる（図６の処理（１０）、図７のステップＳＢ１９）。
【００６８】
次に、ＷＴ−ＣＴ−ＣＰ値をＲＤ−ＣＴ格納部１１３にコピーした後に、各送信側モジュール１２２が、ＲＤ−ＣＴ格納部１１３を再度動作させ、受信側ポート１２から再送を要求されているデータの再送を行なう（図７のステップＳＢ２１）。
その際、データパケット生成部１２３により、再送対象の先頭のデータパケット以降のパケットの生成時に再送フラグ収納部１１４の値が“０”にセットされ、２つめ以降の再送パケットのヘッダ部の再送フラグの値も“０”にセットされる（後述の図９（１０）参照）。
あるいは、再送対象の全データパケットが送信されたときに、再送フラグ収納部１１４の値が“０”にセットされ、各送信側モジュール１２１が再送するデータパケット３００のヘッダ部の再送フラグの値が“０”に戻されてもよい。
【００６９】
なお、再送対象の全データパケットが送信されたかどうかの判定は、例えば、図７のステップＳＢ１９においてＲＤ−ＣＴ格納部１１３が停止された時点のカウンタ値のバックアップ（不図示）と、ＲＤ−ＣＴ格納部１１の現在のカウンタ値とを比較することによって行なうことができる。
再送フラグ収納部１１４の値がいずれのタイミングで“０”にセットされても、受信側モジュール２２１が再送パケットを１つでも受信するとＷＴ−ＣＴ格納部２１６の値が巻き戻されるので、再送データが全てＲＡＭ２１７の正しいアドレスに書き込まれるようになる。
【００７０】
また、各受信側モジュール２２１は、再送データパケットを受信すると、当該パケットのヘッダ部３０１のＲＥＡＤ−ＡＤＲＳ３１２の値を、自身のＷＴ−ＣＴ格納部２１６にコピーする。また、データパケット抑止フラグ格納部２１４に値“０”をセットして、データパケットの受信動作を再開させる。仮に、再送フラグのみでパケットのヘッダ部３０１のＲＥＡＤ−ＡＤＲＳ３１２を自身のＷＴ−ＣＴ格納部２１６にコピーしてしまうと、再送フラグ格納部１１４でビット反転が起こる。この際に、ＲＥＡＤ−ＡＤＲＳ３１２が誤っていると、正常に書き込まれているＲＡＭ２１７のアドレスに、誤ってデータが上書きされることになる。これを防ぐために、ＲＥＡＤ−ＡＤＲＳ３１２とＷＴ−ＣＴ−ＣＰ格納部２１９の値とを対応（例えば一致）させるのである。このようにする理由は、パケットのヘッダ部３０１の情報がＣＲＣチェック前に使用されるためである。
【００７１】
次に、上記の再送処理を、図８，図９のタイムチャートを参照して更に詳細に説明する。図８，図９は、実施形態の一例としての情報処理システム１におけるタイムチャートである。
図８と図９とは時間的に連続している。つまり、図８は、情報処理装置１０における１τ〜３２τの時点、および記憶装置２０における０τ〜２０τの時点を示し、図９は情報処理装置１０における３３τ〜７４τの時点、および記憶装置２０における２１τ〜２４τの時点を示す。
【００７２】
前述のように、図８，図９の図中の丸かっこで囲んだ番号は、図６，図７の対応する処理を示している。
図８，図９中、上半分は情報処理装置１０側の処理を、下半分は記憶装置２０側の処理を示す。
更に、上半分の情報処理装置１０側は、上から順に、（ａ）共通部１１２のＲＤ−ＣＴ格納部１１３の値、（ｂ）送信データパケット３００、（ｃ）再送要求コマンドパケット４００の受信、（ｄ）共通部１１２の再送フラグ格納部１１４の値、および（ｅ）共通部１１２の再送要求レジスタ１１５−１〜１１５−５の値を示す。
【００７３】
また、下半分の記憶装置２０側は、上から順に、（ａ）受信側モジュール２２１のＷＴ−ＣＴ格納部２１６の値、（ｂ）受信データパケット３００、（ｃ）ＣＲＣのエラーの有無（「ＣＲＣ−ＯＫ」はエラーなし、「ＣＲＣ−ＥＲＲ」はエラーあり）を示す。更に、（ｄ）受信側モジュール２２１のＷＴ−ＣＴ−ＣＰ格納部２１９の値、（ｅ）データパケット抑止フラグ格納部２１４の値、および（ｆ）再送要求コマンドパケット４００の送信を示す。
【００７４】
なお、データパケット３００中の“／ｓ”はデータパケット３００のヘッダ部３０１を、“Ｄ”はペイロード部３０２のＤＡＴＡｎ３１４を、“Ｃ”はペイロード部３０２のＣＲＣ３１５を、“／ｔ”はターミネータ部３０３を示す。
情報処理装置１０は、図８の１τの時点（符号Ｐ１参照）において、データパケット３００のヘッダ部３０１を送信し、（再送ではない）通常のデータパケット３００の送出を開始する。このヘッダ部３０１には、図３の１τ目に示したような情報が入る。このデータパケット３００は再送データパケットではないので、再送フラグに値“０”がセットされ、共通部１１２のＲＤ−ＣＴ格納部１１３の値が“０”であれば、ＲＥＡＤ−ＡＤＲＳ３１２にも値“０”がセットされる。
【００７５】
続いて、情報処理装置１０はデータ“Ｄ”を８τ送出したのち（符号Ｐ２参照）、“Ｃ”で示すＣＲＣを送出する（符号Ｐ３）。以降、情報処理装置１０は、データと、定期的に挿入されるＣＲＣとを含むペイロード部３０２を送出する。
受信側の記憶装置２０は、このデータパケット３００を受信する（符号Ｐ４参照）。そして、受信データパケット３００に対してＣＲＣチェックを行ない、エラーが検出されない場合（処理（１））、ＷＴ−ＣＴ格納部２１６の値“８”が、ＷＴ−ＣＴ−Ｃ時点Ｐ格納部２１９にコピーされる（符号Ｐ５）。この動作は、ＣＲＣを正常に受信する都度繰り返される（例えば、符号Ｐ６参照）。
【００７６】
図９の受信側の記憶装置２０のＷＴ−ＣＴ格納部２１６の値が“２３”の時点において、受信したＣＲＣにエラーが検出される（符号Ｐ７参照）。このエラー検出をトリガとして、データパケット抑止フラグ格納部２１４に値“１”がセットされ（処理（３））、以降のデータパケットの受信が抑止される（処理（４））。更に、再送要求処理部２２２が、再送要求コマンドパケット４００を、図８に示すフォーマットで生成して、情報処理装置１０に送信する（処理（５））。この処理には、例えば３τ要する（符号Ｐ８参照）。なお、ＷＴ−ＣＴ−ＣＰ格納部２１９の値が“１６”であるので、再送要求コマンドパケット４００のＷＲＩＴＥ−ＡＤＲＳ４１２の値が“１６”に設定される。
【００７７】
送信側の情報処理装置１０は、再送要求コマンドパケット４００を受信する（処理（６）、符号Ｐ９参照）。この受信をトリガとして、共通部１１２のＲＤ−ＣＴ格納部１１３のカウントアップが抑止され（処理（７））、再送フラグ格納部１１４に値“１”がセットされ（処理（８））、ＷＴ−ＣＴ−ＣＰ格納部２１９の値が、ＲＤ−ＣＴ格納部１１３にコピーされる（処理（９））。本例においては、ＲＤ−ＣＴ格納部１１３は値“４６”が設定された状態でカウントアップが抑止され、ＷＴ−ＣＴ−ＣＰ格納部２１９の値“１６”に書き換えられる。その後、再度、ＲＡＭ１２２からのデータの読み出しが行なわれて、データパケット３００の再送が行われる。このデータパケット３００は再送データパケットであるので、ヘッダ部３０１の再送フラグには値“１”がセットされ、ＲＥＡＤ−ＡＤＲＳ３１２には“１６”が設定される。
【００７８】
再送データパケットの送信が開始される（符号Ｐ１０参照）と、データパケット生成部１２３により再送フラグ格納部１１４の値が“０”に戻される（処理（１０））。
受信側の記憶装置２０は、再送フラグに値“１”がセットされ、ＲＥＡＤ−ＡＤＲＳ３１２が“１６”に設定されているデータパケット３００を受信する（符号Ｐ１１参照）。自モジュール内のＷＴ−ＣＴ−ＣＰ格納部２１９の値が、データパケット３００のＲＥＡＤ−ＡＤＲＳ３１２と同じ“１６”であるので、記憶装置２０は、このデータパケット３００が再送データパケットであると認識する。
【００７９】
データパケット抑止フラグ格納部２１４に値“０”がセットされる（処理（１１））と共に、再送データパケット３００のＲＥＡＤ−ＡＤＲＳ３１２の値がＷＴ−ＣＴ格納部２１６にコピーされる。この後の処理は、通常通り行なわれる。
（Ｃ）効果
このように、実施形態の一例としての情報処理システム１によれば、パケットデータを分割して、複数の送信側モジュール１２１と複数の受信側モジュール２２１を使用して分割データを同時に送信するので、パケットデータ転送を高速化することができる。
【００８０】
また、実施形態の一例としての情報処理システム１によれば、受信側の記憶装置２０の再送要求処理部２２２が、正常に受信できた最後のデータブロックの情報を付加して再送要求を行なう。これにより、送信側の情報処理装置１０は、データパケットを失敗したパケット単位で再送せずに、エラーが発生した部分から再送を開始することができる。これにより、データの再送に要する時間を短縮することができる。つまり、再送要求コマンドパケット４００に、ＷＴ−ＣＴ−ＣＰ格納部２１９の値を付加することにより、受信側の記憶装置２０は、正常に受信できたデータは再送しないように送信側の情報処理装置１０に指示できるのである。
【００８１】
また、再送データパケットに、書き込み先のアドレスを示す情報ＷＲＩＴＥ−ＡＤＲＳが付加される。このため、受信側の記憶装置２０は、先に受信したパケット全体を破棄してデータの書き込みを最初から行なう必要がなく、エラーが発生した部分からデータの書き込みを行うことができる。これによっても、データの再送に要する時間を短縮することができる。
【００８２】
また、記憶装置２０が再送要求コマンドパケットを送信後、再送要求応答のやり取りを行なわずに、再送データパケットの送受信が行なわれるので、データの再送に要する時間を短縮することができる。
また、実施形態の一例としての情報処理システム１においては、１個のパケット内に一定間隔でＣＲＣを埋め込むので、パケット全体を再送信する必要がなく、パケット内のＣＲＣエラーを検出した以降のデータから再送信することができる。これにより、データパケット再送処理を高速化することができる。
【００８３】
更に、情報処理装置１０が、再送データパケット３００に再送フラグを付加すると共に、記憶装置２０が、受信した再送データパケット３００内の読み出しＲＡＭアドレス（ＲＥＡＤ−ＡＤＲＳ３１２）と、記憶装置２０の書き込みＲＡＭアドレス（ＷＴ−ＣＴ−ＣＰ格納部２１９）とを比較する。再送フラグの有無のチェックと、この比較を行なうことにより、正しい再送データパケットではないパケットのデータが、記憶装置２０に誤って書き込まれることを防止することができ、データの信頼性を担保することができる。
（Ｄ）その他
なお、上述した実施形態に関わらず、実施形態の一例としての趣旨を逸脱しない範囲で種々変形して実施することができる。
【００８４】
例えば、上記の実施形態においては、送信側を情報処理装置１０、受信側を記憶装置２０としたが、送信側装置と受信側装置とを、他の装置の組み合わせに使用してもよい。
また、上記の実施形態においては、データを２つに分割して各モジュールに送信しているが、データを３つ以上に分割して、転送効率を更に向上させることも可能である。
例えば、上記の実施形態においては送信側モジュール１２１，受信側モジュール２２１が３個存在するが、送信側モジュール１２１，受信側モジュール２２１の個数は３以上のどのような数でもよい。
【００８５】
また、上記の実施形態においては、６４データバイト単位（８τ単位）にＣＲＣを挿入したが、送信側および受信側の設定により、ＣＲＣを挿入する単位を、任意のバイト単位に変更することも可能である。
また、上記の実施形態においては、ポート１２，２２が、システムチップ上に実装されているが、ポート１２，２２の各構成要素が、コンピュータ上に読み込まれたソフトウェアによって実装されていてもよい。
【００８６】
更に、上記の実施形態においては、図３に示すフォーマットのデータパケットと、図４に示すフォーマットの再送要求コマンドパケットとを使用したが、これらは例示に過ぎず、データパケットおよび／または再送要求コマンドパケットに、ほかのフォーマットを使用してもよい。
また、上記の実施形態においては、データ転送効率を上げるために、パケットデータを分割して、それぞれの分割パケットデータを、複数のモジュール１２１，２２１間で送受信していたが、複数のモジュール１２１，２２１が同一のデータパケットを送受信してもよい。この場合、パケットデータ転送に冗長性を持たせることができる。
【００８７】
また、上記の実施形態においては、カウンタ値であるＲＤ−ＣＴ値を、データパケット３００中のアドレスを示す値であるＲＥＡＤ−ＡＤＲＳ３１２にセットしているが、ＲＤ−ＣＴ値に変換を施したのち、変換した値をＲＥＡＤ−ＡＤＲＳ３１２にセットしてもよい。
同様に、上記の実施形態においては、カウンタ値であるＷＴ−ＣＴ値を、再送要求パケット４００中のアドレス値ＷＲＩＴＥ−ＡＤＲＳ４１２にセットしているが、ＷＴ−ＣＴ値に変換を施したのち、変換した値をＷＲＩＴＥ−ＡＤＲＳ４１２にセットしてもよい。
【００８８】
（Ｅ）付記
（付記１）
複数の経路を介してパケットデータを送信する送信装置と、前記複数の経路を介して送信されたパケットデータを受信する受信装置とを有する情報処理システムであって、
前記送信装置は、
パケットデータを分割して分割データを生成する分割部と、
前記分割データをそれぞれ格納する送信バッファを有し、前記送信バッファに格納された分割データを前記複数の経路のうちの対応する経路を介して送信する複数の送信部と、
前記受信装置から分割データの再送信の要求があった場合に、前記複数の送信部の各々に対して、前記送信バッファに格納されている分割データを、再送信であることを示す情報と共に再送信させる制御を行なう制御部と、を備え、
前記受信装置は、
前記複数の経路のうちの対応する経路から受信した分割データのエラーを検出すると、他の受信部に後続の分割データの受信を停止させるよう通知する複数の受信部と、
前記複数の受信部のいずれかが受信した分割データのエラーを検出した場合に、正常に受信できなかった分割データの再送信を前記送信装置に要求する再送信要求部とを備え、
前記受信部の各々は、前記再送信要求部が分割データの再送信を要求した後に、前記送信装置から再送信であることを示す情報を含む分割データが送信されると、受信処理を再開する
ことを特徴とする情報処理システム。
【００８９】
（付記２）
前記パケットデータは、前記分割データが格納される送信バッファのアドレスと、再送信であるか否かを示す情報と、前記分割部により分割される複数のデータブロックとを含み、
前記再送信要求部は、前記複数の受信部のいずれかがエラーを検出した場合に、前記受信装置が正常に受信できた分割データを示す情報と共に、前記送信装置に分割データの再送信を要求し、
前記制御部は、前記再送信の要求と共に受信した前記受信装置が正常に受信できた分割データを示す情報に基づいて、前記受信装置が正常に受信できなかったデータブロック以降の分割データを、前記各送信部に再送信させる
ことを特徴とする付記１に記載の情報処理システム。
【００９０】
（付記３）
複数の経路を介して受信装置にパケットデータを送信する送信装置であって、
送信されるパケットデータを分割して分割データを生成する分割部と、
前記分割データをそれぞれ格納する送信バッファを有し、前記送信バッファに格納された分割データを前記複数の経路のうちの対応する経路を介して送信する複数の送信部と、
前記受信装置から分割データの再送信の要求があった場合に、前記複数の送信部の各々に対して、前記送信バッファに格納されている分割データを、再送信であることを示す情報と共に再送信させる制御を行なう制御部と、を備える
ことを特徴とする送信装置。
【００９１】
（付記４）
前記パケットデータは、前記分割データが格納される送信バッファのアドレスと、再送信であるか否かを示す情報と、前記分割部により分割される複数のデータブロックとを含み、
前記制御部は、前記再送信の要求と共に受信した前記受信装置が正常に受信できた分割データを示す情報に基づいて、前記受信装置が正常に受信できなかったデータブロック以降の分割データを、前記各送信部に再送信させる
ことを特徴とする付記３に記載の送信装置。
【００９２】
（付記５）
複数の経路を介して送信装置から送信されるパケットデータを受信する受信装置であって、
前記複数の経路のうちの対応する経路から受信した、パケットデータを分割して生成された分割データのエラーを検出すると、他の受信部に後続の分割データの受信を停止させるよう通知する複数の受信部と、
前記複数の受信部のいずれかが受信した分割データのエラーを検出した場合に、正常に受信できなかった分割データの再送信を前記送信装置に要求する再送信要求部とを備え、
前記受信部の各々は、前記再送信要求部が分割データの再送信を要求した後に、前記送信装置から再送信であることを示す情報を含む分割データが送信されると、受信処理を再開する
ことを特徴とする受信装置。
【００９３】
（付記６）
前記パケットデータは、前記分割データが格納される送信バッファのアドレスと、再送信であるか否かを示す情報と、前記分割部により分割される複数のデータブロックとを含み、
前記再送信要求部は、前記複数の受信部のいずれかがエラーを検出した場合に、前記受信装置が正常に受信できた分割データを示す情報と共に、前記送信装置に分割データの再送信を要求する、
ことを特徴とする付記５に記載の受信装置。
【００９４】
（付記７）
複数の経路を介して、前記複数の経路のいずれかに接続され、送信バッファを有する複数の送信部を有する送信装置から、前記複数の経路のいずれかに接続された受信部とを有する受信装置にパケットデータを送信する情報処理方法であって、
前記送信装置により、パケットデータを分割して分割データを生成し、
前記分割データを、前記複数の送信部の前記送信バッファに格納し、
前記送信バッファに格納された分割データを、接続された経路を介して前記複数の送信部により送信し、
前記複数の受信部により、接続された経路から分割データを受信し、
受信した分割データのエラーを検出すると、エラーを検出した受信部により、他の受信部に後続の分割データの受信を停止させるよう通知し、
前記受信装置から前記送信装置に、分割データの再送信を前記送信装置に要求し、
前記受信装置から分割データの再送信の要求を受信すると、前記複数の送信部の各々から、前記送信バッファに格納されている前記分割データを、再送信であることを示す情報と共に再送信し、
前記送信装置から再送信であることを示す情報を含む分割データが送信されると、受信を停止していた前記受信部の各々により受信処理を再開する
ことを特徴とする情報処理方法。
【００９５】
（付記８）
前記パケットデータは、前記分割データが格納される送信バッファのアドレスと、再送信であるか否かを示す情報と、前記分割部により分割される複数のデータブロックとを含み、
分割データの再送信を前記送信装置に要求する際に、前記受信装置が正常に受信できた分割データを示す情報と共に、前記送信装置に分割データの再送信を要求し、
前記各送信部は、前記再送信の要求と共に受信した前記情報に基づいて、前記受信装置が正常に受信できなかったデータブロック以降の分割データを再送信する
ことを特徴とする付記７に記載の情報処理方法。
【符号の説明】
【００９６】
１      情報処理システム
１０    情報処理装置（送信装置）
１１１  分割部
１１２  共通部（制御部）
１２１  送信側モジュール（送信部）
１２２  ＲＡＭ（送信バッファ）
２０    記憶装置（受信装置）
２２１  受信側モジュール（受信部）
２２２  再送要求部
３１    シリアル線（経路）
３０１  ヘッダ部
３０２  データ（データブロック）
３１１  再送フラグ（再送信であることを示す情報）
４１２  ＷＲＩＴＥ−ＡＤＲＳ（正常に受信できた分割データを示す情報）
【図１】
0005857568.tif 000002
【図２】
0005857568.tif 000003
【図３】
0005857568.tif 000004
【図４】
0005857568.tif 000005
【図５】
0005857568.tif 000006
【図６】
0005857568.tif 000007
【図７】
0005857568.tif 000008
【図８】
0005857568.tif 000009
【図９】
0005857568.tif 000010