(57)【特許請求の範囲】
【請求項１】
第１の機器に接続される第１のポートと、第２の機器に接続される第２のポートとが接続したデータ中継装置であって、
データフロー制御用パケット、及びデータパケットを記憶する記憶部と、
前記第１のポート、又は前記第２のポートから受信した前記データフロー制御用パケット、及び前記データパケットの前記記憶部への書き込みを制御する書込み制御部と、
前記記憶部へ書き込まれた前記データフロー制御用パケット、及び前記データパケットを前記書き込みのタイミングと非同期に読み出して、前記第１のポート、又は前記第２のポートへ送信する読出し制御部と、
送信した前記データパケットが送信先の前記第１の機器、又は前記第２の機器に正常に送信されたか否かを判断し、送信されたと判断された場合は、前記記憶部から送信した前記データパケットを削除するとともに、送信されていないと判断された場合は、前記記憶部から前記データパケットを読み出して再送するよう指示する再送制御部と、
を備えることを特徴とするデータ中継装置。
【請求項２】
前記データフロー制御用パケット、及び前記データパケットが前記記憶部へと書き込みされる前に入力され、パケットの異常の有無を検出するエラー検出部をさらに備え、
前記記憶部は、空き容量が所定容量より少なくなった場合にその旨を示すバッファフル信号を前記エラー検出部へと送信するとともに、
前記エラー検出部は、前記バッファフル信号が入力されている場合は、入力された前記データパケットを破棄する
ことを特徴とする請求項１に記載のデータ中継装置。
【請求項３】
前記エラー検出部は、前記データフロー制御用パケットの異常を検出した場合、前記データフロー制御用パケットを破棄する
ことを特徴とする請求項２に記載のデータ中継装置。
【請求項４】
前記エラー検出部は、前記データパケットの異常を検出した場合、当該データパケットの送信元の前記第１の機器、または前記第２の機器に対して前記データパケットを再送するよう指示する再送指示パケットを送信する
ことを特徴とする請求項２に記載のデータ中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器間でデータを中継するデータ中継装置に関する。
【背景技術】
【０００２】
ローカルバスの規格であるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）  Ｅｘｐｒｅｓｓ（以下、「ＰＣＩｅ」と略称する。）は、ＰＣやサーバ、組み込み機器内の通信などで利用される高速データ転送バスの規格として広く知られている。例えば、特許文献１においては、このＰＣＩｅ規格の構造として、物理層、データリンク層、トランザクション層の３層からなることが示されている。
【０００３】
トランザクション層は、ＣＰＵやデバイスから発行されたリクエスト（読み取り／書き込み要求）を受け取り、ヘッダ、データ、及びＥＣＲＣを含むトランザクション層パケット（Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ  Ｐａｃｋｅｔ、以下、ＴＬＰと称す）化し、データリンク層に転送する。データリンク層は、ＰＣＩｅリンク経由でのパケットの伝送を確実に行うために、データの整合性を維持する機能を有しており、トランザクション層から受け取ったＴＬＰにシーケンス番号、ＬＣＲＣを付加してデータリンク層パケット（Ｄａｔａｌｉｎｋ  Ｌａｙｅｒ  Ｐａｃｋｅｔ、以下ＤＬＬＰと称す）を作成して物理層に転送する。シーケンス番号は、全てのパケットが届いたか否かを、ＬＣＲＣはパケットの中身が変わっていないかどうかを、パケットの受信側のデータリンク層で確認するためのものである。物理層は、データリンク層から受け取ったＤＬＬＰの先頭と末尾にフレーミングシンボルを付加し、パケットをシリアルデータとして転送する機能を有している。
【０００４】
上述のような３層の構造をもったＰＣＩｅの従来の動作概念を説明する。図１７においては、データ中継装置１００では、図中の左側に位置し、上流側の機器と接続されるＰＣＩｅ回路１００ａと、図中の右側に位置し下流側の機器に接続されるＰＣＩｅ回路１００ｂとを有している。ＰＣＩｅ回路１００ａからＴＬＰを受信し、ＰＣＩｅ回路１００ｂへと中継する場合の説明を以下に行う。
【０００５】
ＰＣＩｅ回路１００ａの受信ポートＲＸに送信元の機器からのＴＬＰが到着すると、エラー検出部１０１ａはＣＲＣ(Cyclic  Redundancy  Check)の値を参照して、ＴＬＰにエラーが含まれているか否かの判定を行う。ＴＬＰのエラーが無いと判定された場合、エラー検出部１０１ａはＰＣＩｅ回路１００ａの送信ポートＴＸへＡＣＫパケットを転送する。一方、ＴＬＰのエラーがあると判定された場合は、エラー検出部１０１ａはＮａｋパケットをＰＣＩｅ回路１００ａの送信ポートＴＸへ転送するとともに、受信したＴＬＰを破棄する。
【０００６】
ＴＬＰのエラーが検出されなかった場合は、ＴＬＰはポートアービトレーション回路１０３に対するコマンド、データ(メモリライト、リード、データなど)に変換されて受信バッファ１０２ａに記憶される。そして、ＴＬＰのコマンド、及びデータのポートアービトレーション回路１０３への転送が完了すると、受信フロー制御部１０４ａは、受信バッファ１０２ａに空きが生じるので、空きサイズをクレジット情報として持つ、データ制御用（ＦＣ）パケットをＰＩＣｅ回路１００ａの送信ポートＴＸへと送信する。
【０００７】
ポートアービトレーション回路１０３は、ＰＣＩｅ回路１００ａから受信したＴＬＰのコマンド、及びデータをＰＣＩｅ回路１００ｂの送信バッファ１０５ｂに記憶させる。送信フロー制御部１０６ｂは、下流側の機器の記憶バッファ（図示せず）の容量に空きがあるか否かを判定し、記憶バッファに空きがある場合のみ、ＰＩＣｅ回路１００ｂの送信ポートＴＸより送信バッファ１０５ｂに記憶されたＴＬＰを出力させる。下流側の機器の記憶バッファの空き容量は、下流側の機器よりデータフロー制御用（ＦＣ)パケットにより、通知されるクレジット情報に基づいて、管理されている。ＦＣパケットは、ＰＩＣｅ回路１００ｂの受信ポートＲＸより受信され、クレジット検出部１０７ｂにより抽出されたクレジット情報が、ＰＩＣｅ回路１００ｂの送信フロー制御部１０６ｂへと通知される。
【０００８】
再送バッファ１０８ｂは、送信ポートＴＸより出力されたＴＬＰが欠損などのエラーがあった場合に再送信をするために、出力されたＴＬＰを複製して記憶する。その後、下流側の機器からは正常にＴＬＰを受信したか否かが、ＡＣＫ(Acknowledge)パケット、又はＮａｋ(Negative  Acknowledgment)パケットによって通達される。ＡＣＫ／Ｎａｋ検出部１０９ｂは、通達されたＡＣＫパケット、及びＮａｋパケットを確認し、ＡＣＫかＮａｋのいずれのパケットを受信したかを再送バッファ制御部１１０ｂに通知する。再送バッファ制御部１１０ｂは、ＡＣＫが通知された場合は、正常にＴＬＰが下流側の機器に届いたので、再送バッファ１０８ｂに記憶されていたＴＬＰの複製を破棄するよう指示し、Ｎａｋが通知された場合は、再送バッファ１０８ｂに保持されたＴＬＰを再度送信するよう指示する。
【０００９】
以上のパケット転送をＰＣＩｅ回路１００ａ、１００ｂの間で双方向、及び同時並行動作することで、データ中継が行われる。パケット転送による高速シリアル方式では、送信用のバッファ、受信用のバッファ、再送用のバッファを持つことで、データ転送と、エラー発生時の再送によるデータ保障、およびフロー制御が行なわれる。
【００１０】
次に、受信バッファ１０２ａ、１０２ｂの構成と動作について、図１８を用いて説明する。受信バッファ１０２ａ、１０２ｂはＰ：Ｐｏｓｔｅｄ、ＮＰ：Ｎｏｎ−Ｐｏｓｔｅｄ、Ｃｐｌ：Ｃｏｍｐｌｅｔｉｏｎの３種類のバッファがそれぞれヘッダ領域とデータ領域に分かれた、合計６つのバッファで構成されている。
【００１１】
Ｐは送信先の機器からの応答を期待しないリクエスト(メモリライトなど)が記憶され、ＮＰは送信先の機器からの応答を期待するリクエスト(メモリリードなど)が記憶され、ＣｐｌはＮＰリクエストに対する応答パケット(メモリリードリクエストに対して応答されたメモリリードデータなど)が記憶される。
【００１２】
受信バッファ１０２ａ、１０２ｂは、データリンク層から転送されてくるＴＬＰが入力され、ＴＬＰを出力時にポートアービトレーション回路１０３へのコマンド、およびデータの形式に変換して転送する。受信バッファ１０２ａ、１０２ｂへと入力されたＴＬＰはヘッダ情報からＰ、ＮＰ、Ｃｐｌのいずれに該当するかが判別され、対応するバッファ領域へと記憶される。図１７では、Ｐのパケット１、ＮＰのパケット２、Ｃｐｌのパケット３の順で入力され、それぞれのパケットが対応するバッファに記憶される。対応するバッファに格納されたパケットは、ヘッダ情報がトランザクション層からのコマンドとして、データがトランザクション層からのデータとして、それぞれＴＬＰの種類（Ｐ、ＮＰ，Ｃｐｌ）ごとにポートアービトレーション回路１０３に出力される。
【００１３】
また、受信バッファ１０２ａ、１０２ｂは、ヘッダやデータがバッファに記憶された場合は、消費された容量に応じたクレジット情報を出力し、一方、ポートアービトレーション回路１０３へヘッダやデータが出力された場合は、空きが生じて増えた容量に応じたクレジット情報を出力する。受信フロー制御部１０４ａ、１０４ｂは、クレジット情報をＦＣパケットとして転送する。
【００１４】
次に、送信バッファ１０５ａ、１０５ｂの構成と動作について、図１９を用いて説明する。送信バッファ１０５ａ、１０５ｂも受信バッファ１０２ａ、１０２ｂと同様、Ｐ：Ｐｏｓｔｅｄ、ＮＰ：Ｎｏｎ−Ｐｏｓｔｅｄ、Ｃｐｌ：Ｃｏｍｐｌｅｔｉｏｎの３種類のバッファがそれぞれヘッダ領域とデータ領域に分かれた、合計６つのバッファで構成されている。
【００１５】
送信バッファ１０５ａ、１０５ｂへは、ポートアービトレーション回路１０３からトランザクション層へと送信されるコマンド、及びデータが入力され、その種類に対応して、Ｐ、ＮＰ，Ｃｐｌごとにコマンドはヘッダバッファに、データはデータバッファにそれぞれ記憶される。送信バッファ１０５ａ、１０５ｂは、送信フロー制御部１０６ａ、１０６ｂへと出力する。
【００１６】
送信フロー制御部１０６ａ、１０６ｂは、データリンク層のクレジット検出部１０７ａ、１０７ｂから送信先の機器の記憶バッファの空き容量を示すクレジット情報が通知され、送信先の機器のバッファに空きがある場合は、対応するヘッダとデータを選択し、ＴＬＰを生成しデータリンク層へと転送する。
【発明の概要】
【発明が解決しようとする課題】
【００１７】
しかしながら、上記に示した中継装置にあっては、ＰＣＩｅ回路はパケットの中継やフロー制御を処理するために、複数のパケットバッファと複雑なフロー制御回路が実装されたトランザクション層が必要となる。このトランザクション層の回路はデータリンク層と比較しても回路規模が非常に大きく、Ｐ、ＮＰ，Ｃｐｌのパケットの種類ごとに回路を実装する必要があり、回路チップのコストが高くなってしまう要因にもなっていた。
【００１８】
また、トランザクション層の動作はデータリンク層とフロー制御の処理に関しては、相互に連動しており、トランザクション層のみを削除して物理層とデータリンクのみのポート構成とした回路を動作させることが不可能だった。さらにトランザクション層もデータリンク層もなくし、物理層のみを実装したデータ中継回路で回路規模を少なくすることは可能だが、その場合は、データリンク層の持つエラー検出やデータの再送の機能まで失われてしまい、長いケーブルを利用した場合など、ＡＣＫ／Ｎａｋの伝達に時間を要する場合にデータ転送効率が低下してしまう問題が発生する。
【００１９】
本発明は、上記に鑑みてなされたものであって、エラー検出やデータ再送機能を損なうことなく回路規模を小さくすることができるデータ中継装置を提供することにある。
【課題を解決するための手段】
【００２０】
上述した課題を解決し、目的を達成するために、本発明は、第１の機器に接続される第１のポートと、第２の機器に接続される第２のポートとが接続したデータ中継装置であって、データフロー制御用パケット、及びデータパケットを記憶する記憶部と、前記第１のポート、又は前記第２のポートから受信した前記データフロー制御用パケット、及び前記データパケットの前記記憶部への書き込みを制御する書込み制御部と、前記記憶部へ書き込まれた前記データフロー制御用パケット、及び前記データパケットを前記書き込みのタイミングと非同期に読み出して、前記第１のポート、又は前記第２のポートへ送信する読出し制御部と、送信した前記データパケットが送信先の前記第１の機器、又は前記第２の機器に正常に送信されたか否かを判断し、送信されたと判断された場合は、前記記憶部から送信した前記データパケットを削除するとともに、送信されていないと判断された場合は、前記記憶部から前記データパケットを読み出して再送するよう指示する再送制御部と、を備えることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、エラー検出やデータ再送機能を損なうことなく回路規模を小さくすることができるという効果を奏する。
【図面の簡単な説明】
【００２２】
【図１】図１は、実施形態の２つのホスト間でＰＣＩｅケーブル規格に準拠した情報通信を行う通信システムの概念図である。
【図２】図２は、実施形態の通信システムのケーブル接続部の具体的な構成例を示す図である。
【図３】図３は、実施形態の通信システムのケーブル接続部の構成において、第１の機器が第２の機器に対してＰＣＩｅの５レーン相当の通信帯域が必要なデータ転送を実行した場合のデータフローの一例を示す図である。
【図４】図４は、実施形態のＰＣＩｅ中継回路の構成例を示す図である。
【図５】図５は、実施形態のＴＬＰ、及びＤＬＬＰのパケット構造を示す図である。
【図６】図６は、実施形態の再送バッファの構成、及び動作を示す概念図である。
【図７】図７は、実施形態のＰＣＩｅ中継装置の動作を示す図である。
【図８】図８は、実施形態のＰＣＩｅ中継装置の動作を示す図である。
【図９】図９は、実施形態のＰＣＩｅ中継装置の動作を示す図である。
【図１０】図１０は、実施形態のＰＣＩｅ中継装置の動作を示す図である。
【図１１】図１１は、実施形態のＰＣＩｅ中継装置の動作を示す図である。
【図１２】図１２は、実施形態のＰＣＩｅ中継装置の動作を示す図である。
【図１３】図１３は、実施形態のＰＣＩｅ中継装置の動作を示す図である。
【図１４】図１４は、実施形態の送信ポートにおける処理の流れを示すフロー図である。
【図１５】図１５は、実施形態の受信ポートにおける処理の流れを示すフロー図である。
【図１６】図１６は、実施形態の再送バッファにおける処理の流れを示すフロー図である。
【図１７】図１７は、従来のＰＣＩｅ中継回路の構成例を示す概念図である。
【図１８】図１８は、従来のＰＣＩｅ中継回路における受信バッファの構成例を示す概念図である。
【図１９】図１９は、従来のＰＣＩｅ中継回路における送信バッファの構成例を示す概念図である。
【発明を実施するための形態】
【００２３】
以下に添付図面を参照して、データ中継装置の実施の形態を詳細に説明する。
【００２４】
図１は、２つのホスト間でＰＣＩｅケーブル規格に準拠した情報通信を行う通信システムの概念図である。この図１に示す通信システムは、第１の機器Ａと第２の機器Ｂとを通信可能に接続した通信システムである。第１の機器Ａは、制御主体となるＣＰＵ１ａを備えたホストである。第２の機器Ｂは、制御主体となるＣＰＵ１ｂを備えたホストである。これら第１の機器Ａと第２の機器Ｂには、それぞれＰＣＩｅカードスロットが設けられている。第１の機器Ａおよび第２の機器ＢのＰＣＩｅカードスロットには、ＰＣＩｅケーブルインターフェースボードが装着される。そして、第１の機器ＡのＰＣＩｅケーブルインターフェースボードと、第２の機器ＢのＰＣＩｅケーブルインターフェースボードとが、例えば、複数のケーブルで構成される多レーンケーブルで接続される。
【００２５】
図１に戻り、第１の機器Ａは、ＰＣＩｅ中継回路１０ａを備えている。ＰＣＩｅ中継回路１０ａの上流ポート１１ａは、ルートコンプレックス２ａと接続されている。ＰＣＩｅ中継回路１０ａの下流ポート１１ｂは、第２の機器Ｂにおけるエンドポイント２ｂと接続されている。
【００２６】
図２は、本実施形態に係る通信システムのケーブルを介したデータ転送に関わる部分であるケーブル接続部の具体的な構成例を示す図である。本実施形態に係る通信システムは、第１の機器Ａに装着されたＰＣＩｅケーブルインターフェースボード２０ａと、第２の機器Ｂに装着されたＰＣＩｅケーブルインターフェースボード２０ｂとが、ＰＣＩｅの８レーンに対応するｘ８メタルケーブル２１により接続された構成である。なお、本実施形態では、本実施形態に係る通信システムはｘ８構成に限らず、様々なレーン数に対応した構成とすることができる。
【００２７】
なお、本明細書では、第１の機器Ａの構成要素の符号に添え字ａを付し、第２の機器Ｂの構成要素の符号に添え字ｂを付して、両者を区別している。
【００２８】
第１の機器Ａに装着されるＰＣＩｅケーブルインターフェースボード２０ａには、ＰＣＩｅ中継装置１０が実装されている。ＰＣＩｅ中継装置１０は、ｘ８上流ポート１１ａを備える。このｘ８上流ポート１１ａは、図示しないｘ８カードエッジコネクタを介して、ルートコンプレックス２ａのｘ８ポートに接続される。また、ＰＣＩｅ中継装置１０は、ｘ８下流ポート１１ｂを備える。このｘ８ポート１１ｂは、それぞれがＰＣＩｅの１レーンに対応する（以下、「ｘ１」と表記する。）８本のメタルケーブル２１に接続される。ＰＣＩｅ中継装置１０の下流ポート１１ｂの各レーンとメタルケーブル２１との間には、それぞれリピータ２３ａが設けられる。リピータ２３ａは、電気信号の増幅および整形処理を行う。なお、ＰＣＩｅの１レーンは受信用、送信用それぞれ２つの信号線による差動信号で情報伝送するため、１レーンあたり４本の信号線が必要であるが、本実施形態では１本のケーブルがこれら４本の信号線を含むものとして説明する。
【００２９】
第２の機器Ｂに装着されるＰＣＩｅケーブルインターフェースボード２０ｂは、エンドポイント２ｂのｘ８ポートと、８本のメタルケーブル２１とに接続される。エンドポイント２ｂのｘ８ポートの各レーンとメタルケーブル２１との間には、それぞれリピータ２３ｂが設けられる。リピータ２３ｂは、リピータ２３ａと同様、電気信号の増幅および整形処理を行う。
【００３０】
なお、図２に示す例では第１の機器Ａと第２の機器Ｂとメタルケーブル２１により接続しているが、メタルケーブル２１に代えて光ケーブルを用いることもできる。メタルケーブル２１に代えて光ケーブルを用いた場合、リピータ２３ａ，２３ｂが、光トランシーバに置き換わる。光トランシーバは、電気信号と光信号との変換を行う。
【００３１】
図３は、図２に示した通信システムのケーブル接続部の構成において、第１の機器Ａが第２の機器Ｂに対してＰＣＩｅの５レーン相当の通信帯域が必要なデータ転送を実行した場合のデータフローの一例を示す図である。図３に示す例では、第１の機器Ａが５つのＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）２４を使ってデータ転送を実行している。なお、図３ではケーブル接続部の第１の機器Ａ側のみを図示しており、図中の破線で示す矢印が、第１の機器Ａ内におけるデータフローを示している。
【００３２】
第１の機器Ａには、５つのＤＭＡＣ２４が搭載されている。各ＤＭＡＣ２４は、それぞれｘ１のデータ転送性能を有するものとする。各ＤＭＡＣ２４は、第１の機器Ａが備えるメモリ２５からデータを読み込みながら、読み込んだデータをパケットに分割し、内部バスを経由して、ルートコンプレックス２ａのｘ８ポートにパケットを転送する。ルートコンプレックス２ａのｘ８ポートは、ＤＭＡＣ２４から受信したパケットをそれぞれ８ｂｉｔずつに分割し、８つのレーンすべてに均等に分散して、ＰＣＩｅケーブルインターフェースボード２０ａに実装されたＰＣＩｅ中継装置１０のｘ８上流ポート１１ａに転送する。ＰＣＩｅ中継装置１０は、ｘ８上流ポート１１ａの各レーンに８ｂｉｔずつ分割されて送られてくるデータを、再びパケットデータに変換しなおして、ｘ８下流ポート１あｂに転送する。ｘ８下流ポート１１ｂは、受信したパケットをそれぞれ再度８ｂｉｔずつに分割し、８つのレーンすべてに均等に分散して、８本のメタルケーブル２１を介して第２の機器Ｂ側に転送する。
【００３３】
また、図示しない第２の機器Ｂ側では、エンドポイント２ｂのｘ８ポートにおいて、ｘ８の各レーンに８ｂｉｔずつ分割されて送られてくるデータを、再びパケットデータに変換しなおして、第２の機器Ｂが備えるメモリに転送する。
【００３４】
以上のように、従来の通信システムにおいては、ＰＣＩｅの５レーン相当の通信帯域が必要なデータ転送を実行する場合でも、ｘ８の構成であれば、８レーンすべてを使ってデータ転送を実行するようにしている。
【００３５】
続いて、データ中継装置の構成について図４を用いて説明する。図４は、ＰＣＩｅ装置を構成する２つのＰＣＩｅ中継回路１０ａ、１０ｂの構成の例を示す概念図である。図３に示されるように、ＰＣＩｅ中継回路１０ａ、１０ｂは、物理層３０ａ、３０ｂとデータリンク層４０ａ、４０ｂの２層構造からなる２つの中継回路を備えており、各中継回路１０ａ、１０ｂのデータリンク層４０ａ、４０ｂの間を、データの書き込みと読み出しが非同期に動作するパケット再送バッファ（記憶部）５０ａ、５０ｂが論理的に接続している。
【００３６】
中継回路１０ａ、１０ｂの物理層３０ａ、３０ｂは、第１の機器Ａ、第２の機器Ｂからの信号の入力を受け付ける受信ポートＲＸと、第１の機器Ａ、第２の機器Ｂへと信号を送信する送信ポートＴＸ、を備えている。また、中継回路１０ａ、１０ｂのデータリンク層４０ａ、４０ｂは、再送バッファ５０ａ、５０ｂ（記憶部に相当）と、エラー検出部５１ａ、５１ｂと、ＦＣ検出部５２ａ、５２ｂと、ＡＣＫ／Ｎａｋ検出部５３ａ、５３ｂと、再送バッファ制御部５４ａ、５４ｂと、をそれぞれ備えている。
【００３７】
この中継回路１０ａ、１０ｂでは、データパケットであるトランザクションレイヤパケット（ＴＬＰ）、エラー制御用のパケットであるＤＬＬＰ  ＡＣＫ／Ｎａｋパケット（以下、「ＡＣＫ／Ｎａｋパケット」）、データフロー制御用パケットであるＤＬＬＰ  ＦＣパケット（以下、「ＦＣパケット」）が送受信される。ＴＬＰは、各機器が発行するメモリライトやメモリリード、コンプリーションなどの送信先の機器のアプリケーション層との間でデータ転送を伴うトランザクションを扱うパケットである。
【００３８】
図５は、ＴＬＰのデータ構造を示す概念図である。図５（ａ）に示されるように、ＴＬＰは、ヘッダ領域と、データ領域(ペイロード)と、ＰＳＮ（Packet  Sequence  Number）と、ＬＣＲＣ(Link  Cyclic  Redundancy  Check)とを含んでいる。ＰＳＮは、パケットを識別するための識別番号でありパケットごとに固有の番号が付与されている。ＰＳＮは、パケット転送時にエラーが発生した際にどのパケットがエラーになったかを識別するために使用される。ＬＣＲＣは、エラー検出のために用いられる領域であり、ヘッダ領域とデータ領域とを対象としてＣＲＣの値を計算した結果である。
【００３９】
図５（ｂ）に示されるように、ＤＬＬＰは、ＤＬＬＰの種類を示すＴｙｐｅ領域と、データ領域と、ＣＲＣとを含んでいる。Ｔｙｐｅ領域は、ＤＬＬＰの種類であるＡＣＫパケット、Ｎａｋパケット、及びＦＣパケットのいずれであるかを示す。データはＤＬＬＰのＴｙｐｅによって異なり、例えばＡＣＫ/Ｎａｋパケットの場合はＰＳＮ、ＦＣパケットの場合はフロー制御に使われるクレジット情報やＶＣ（Virtual  Channel）番号が含まれる。ＣＲＣは、Ｔｙｐｅ領域とデータ領域に対して計算された値が含まれる。
【００４０】
データリンク層４０ａ、４０ｂは、ＴＬＰ、又はＦＣパケットが一方のＰＣＩｅ中継回路１０ａ、１０ｂに入力された場合は、再送バッファ５０ａ、５０ｂを介して他方のＰＣＩｅ中継回路１０ａ、１０ｂへとパケットを転送する。また、データリンク層４０ａ、４０ｂは、ＡＣＫ/ＮａｋパケットがＰＣＩｅ中継回路１０ａ、１０ｂに入力された場合は、エラー制御を行う。
【００４１】
エラー検出部５１ａ、５１ｂは、ＴＬＰ、及びＦＣパケットを確認して、エラーの有無を判定し、エラーがある場合は、パケットの再送を送信元の機器に対して要求しＮａｋパケットを、エラーがない場合は、パケットを削除してＡＣＫパケットをそれぞれ送信元の機器の送信ポートＴＸへと送信する。
【００４２】
次に再送バッファ５０ａ、５０ｂの具体的な構成について図６を用いて説明する。図６は、再送バッファ５０ａ、５０ｂの構成と動作とを概念的に示した概念図である。図６に示されるように、再送バッファ５０ａ、５０ｂにはＴＬＰとＤＬＬＰとが混在して記憶されている。再送バッファ５０ａ、５０ｂに転送されてくるＤＬＬＰは、エラー検出部５１ａ、５１ｂにおいてエラー制御用のＡＣＫ／Ｎａｋパケットは処理されるため、フロー制御用のＦＣパケットのみである。再送バッファ５０ａ、５０ｂに記憶されるＴＬＰは、送信元の機器側のＰＣＩｅ中継回路１０ａ、１０ｂのデータリンク層４０ａ、４０ｂにて付加されたＰＳＮやＬＣＲＣの情報が保持された形式で記憶される。ＤＬＬＰも同様に、送信元の機器側のＰＣＩｅ中継回路１０ａ、１０ｂのデータリンク層４０ａ、４０ｂが生成した形式で記憶される。
【００４３】
再送バッファ５０ａ、５０ｂは、送信元側のＰＣＩｅ中継回路１０ａ、１０ｂのエラー検出部５１ａ、５１ｂからパケットの入力を受け付けるとともに、送信先側のＰＣＩｅ中継回路１０ａ、１０ｂの物理層３０ａ、３０ｂの送信ポートＴＸへとこの受け付けたパケットを送信する。再送バッファ５０ａ、５０ｂは、各パケットが入力された順にパケットを出力するＦＩＦＯ（First  in  First  Out）形式である。再送バッファ５０ａ、５０ｂはパケットがＤＬＬＰの場合は、出力後バッファ領域からパケットを削除し、バッファ領域を開放する。再送バッファ５０ａ、５０ｂは、パケットがＴＬＰの場合はすぐにバッファ領域を開放せず、後述する再送バッファ制御部５４ａ、５４ｂからのＴＬＰ削除指示、及びＰＳＮを受信した後に、指示されたＰＳＮで特定されるＴＬＰ以前に入力されたＴＬＰが記憶されているバッファ領域を開放する。
【００４４】
一方、再送バッファ５０ａ、５０ｂは、再送バッファ制御部５４ａ、５４ｂからＴＬＰ再送指示、及びＰＳＮを受信した場合に、指示されたＴＬＰ以降に入力されたバッファに記憶されているＴＬＰを再送する。再送バッファ５０ａ、５０ｂは、このようにパケットの送信先のＰＣＩｅ中継回路１０ａ、１０ｂに設けられた再送バッファ制御部５４ａ、５４ｂから再送制御信号（ＴＬＰ削除指示、及びＴＬＰ再送指示）を受け取る。
【００４５】
また、再送バッファ５０ａ、５０ｂは、送信元のＰＣＩｅ中継回路１０ａ、１０ｂのデータリンク層４０ａ、４０ｂに設けられたエラー検出部５１ａ、５１ｂに対してバッファフル信号を出力する。バッファフル信号は、再送バッファ５０ａ、５０ｂに空き容量が所定量以下になった場合に出力される。送信元のエラー検出部５１ａ、５１ｂは、バッファフル信号が入力されている間、送信元の機器からＴＬＰを受信するたびに、エラーの有無にかかわらずＮａｋを送信元の機器の送信ポートＴＸへと出力し、再送バッファ５０ａ、５０ｂの容量がオーバーしないように制御する。
【００４６】
したがって、再送バッファ５０ａ、５０ｂはパケットのリクエスト種類やヘッダ、データの区別なく単一のバッファに記憶可能であり、また仮想チャネルをどれだけ使用したとしても、再送バッファ５０ａ、５０ｂを実装するだけでよいため、トランザクション層を実装した通常のＰＣＩｅ回路と比較して非常に小さい回路構成でデータ中継を処理することが可能になる。なお、再送バッファ５０ａ、５０ｂのサイズは、使用するケーブル長に合わせて変更することができ、ケーブル経由で接続される機器からのＡＣＫ/Ｎａｋパケットの応答があるまでに要する時間の間だけ再送バッファの容量がオーバーせず、ＴＬＰが記憶可能なサイズを実装すればデータ転送効率の低下も発生せず好適である。
【００４７】
次にＰＣＩｅ回路の動作例を、次の図７から図１４のデータフロー図を用いて動作ステップごとに詳しく説明する。図中にて付与されている「（）」で囲まれた番号は、データの流れ、および処理の順番を示している。
【００４８】
図７は、ＴＬＰを送信元の機器から受信し、エラーがなかった場合のデータフローを示している。この図ではＰＣＩｅ中継回路１０ａと接続された機器Ａが送信元、ＰＣＩｅ中継回路１０ｂと接続された機器Ｂが送信先となっているが、反対の場合も同様のデータフローとなる。まず、（１）ＴＬＰがＰＣＩｅ中継回路１０ａの受信ポートＲＸから入力される。（２）エラー検出部５１ａは、入力されたＴＬＰのＬＣＲＣの値を確認し、エラーの有無を判定する。エラーがない場合は、エラー検出部５１ａは、ＡＣＫパケットを送信ポートＴＸから送信元の機器Ａへと送信する。（３）エラー検出部５１ａは、ＰＣＩｅ中継回路１０ｂの再送バッファ５０ｂへとＴＬＰを転送し再送バッファ５０ｂに記憶させる。（４）再送バッファ５０ｂに記憶されたＴＬＰは読み出されて、送信先側のＰＣＩｅ中継回路１０ｂの送信ポートＴＸへと転送される。このとき、ＴＬＰは再送バッファ５０ｂからは削除されずに記憶されたままである。
【００４９】
図８は、ＴＬＰを送信元の機器Ａから受信し、エラーがあった場合のデータフローを示している。この図ではＰＣＩｅ中継回路１０ａと接続された機器Ａが送信元、ＰＣＩｅ中継回路１０ｂと接続された機器Ｂが送信先となっているが、反対の場合も同様のデータフローとなる。（１）まず、ＴＬＰがＰＣＩｅ中継回路１０ａの受信ポートＲＸから入力される。（２）エラー検出部５１ａは、入力されたＴＬＰのＬＣＲＣの値を確認し、エラーの有無を判定する。エラーがある場合は、エラー検出部５１ａは、Ｎａｋパケットを送信ポートＴＸから送信元の機器Ａへと送信する。（３）エラー検出部５１ａは、入力されたＴＬＰを破棄する。
【００５０】
図９は、ＴＬＰを送信元の機器Ａから受信し、再送バッファ５０ｂの容量オーバーがあった場合のデータフローを示している。この図ではＰＣＩｅ中継回路１０ａと接続された機器Ａが送信元、ＰＣＩｅ中継回路１０ｂと接続された機器Ｂが送信先となっているが、反対の場合も同様のデータフローとなる。（１）再送バッファ５０ｂに空きが無くなった場合、もしくはまもなく空きがなくなる場合、再送バッファ５０ｂは、エラー検出部５１ａに対してバッファフル信号を出力する。（２）エラー検出部５１ａは、送信元の機器Ａと接続された受信ポートＲＸからＴＬＰを受信する。（３）エラー検出部５１ａは、エラー検出部５１ａに対してバッファフル信号が出力されている状態においては、ＴＬＰのエラーの有無にかかわらず、Ｎａｋパケットを送信元の機器Ａと接続された送信ポートＴＸへと出力する。（４）そして、エラー検出部５１ａは、受信したＴＬＰを破棄する。このように制御が行われることで、ＰＣＩｅ中継回路１０ａ、１０ｂに再送バッファ５０ａ、５０ｂの容量がオーバーすることなくパケット転送が可能となる。
【００５１】
図１０は、ＴＬＰを送信先の機器Ｂへと送信した後に、送信先においてエラーがなかった場合のデータフローを示している。この図ではＰＣＩｅ中継回路１０ａと接続された機器Ａが送信元、ＰＣＩｅ中継回路１０ｂと接続された機器Ｂが送信先となっているが、反対の場合も同様のデータフローとなる。まず、（１）ＴＬＰが正常に送信先の機器Ｂにて受信された場合、送信先の機器Ｂに接続されたＰＣＩｅ中継回路１０ｂの受信ポートＲＸからＡＣＫパケットが入力されエラー検出部５１ｂへと転送される。（２）エラー検出部５１ｂは、ＡＣＫパケットのＣＲＣの値を確認してエラーの有無を判定し、エラーがない場合はＡＣＫ／Ｎａｋ検出部５３ｂへとＡＣＫパケットを転送する。（３）ＡＣＫ／Ｎａｋ検出部５３ｂは、ＡＣＫパケットのＴｙｐｅの値を確認して、ＡＣＫパケットであるか否かを判定し、ＡＣＫパケットであると判定した場合は、データ領域からＰＳＮを取得して、ＡＣＫであることを示すＡＣＫ信号、及びＰＳＮを再送バッファ制御部５４ｂへと送信する。（４）再送バッファ制御部５４ｂは、再送バッファ５０ｂに対して、ＰＳＮを指定してＴＬＰ削除指示を送信する。（５）再送バッファ５０ｂは、指定されたＰＳＮ以前に入力されたＴＬＰが保持されているバッファ領域を開放する。
【００５２】
図１１は、ＴＬＰを送信先の機器Ｂへと送信した後に、ＴＬＰにエラーが検出された場合のデータフローを示している。この図ではＰＣＩｅ中継回路１０ａと接続された機器が送信元、ＰＣＩｅ中継回路１０ｂと接続された機器Ｂが送信先となっているが、反対の場合も同様のデータフローとなる。まず、（１）ＴＬＰが正常に送信先の機器Ｂにて受信されなかった場合、送信先の機器Ｂに接続されたＰＣＩｅ中継回路１０ｂの受信ポートＲＸからＮａｋパケットが入力されエラー検出部５１ｂへと転送される。（２）エラー検出部５１ｂは、ＮａｋパケットのＣＲＣの値を確認してエラーの有無を判定し、エラーがない場合はＡＣＫ／Ｎａｋ検出部５３ｂへとＮａｋパケットを転送する。（３）ＡＣＫ／Ｎａｋ検出部５３ｂは、ＮａｋパケットのＴｙｐｅの値を確認して、Ｎａｋパケットであるか否かを判定し、Ｎａｋパケットであると判定した場合は、データ領域からＰＳＮを取得して、Ｎａｋパケットであることを示すＮａｋ信号、及びＰＳＮを再送バッファ制御部５４ｂへと送信する。（４）再送バッファ制御部５４ｂは、再送バッファ５０ｂに対して、ＰＳＮを指定してＴＬＰ再送指示を送信する。（５）再送バッファ５０ｂは、指定されたＰＳＮ以降に入力され記憶されているＴＬＰをＰＳＮの順番で再送する。ＴＬＰの再送は、送信先の機器Ｂから正常にＡＣＫパケットを受信して、再送バッファ５０ｂが開放されるまで繰り返し行われる。この動作によって、エラーの無いデータ通信が相互の機器間で保証されることになる。
【００５３】
図１２は、ＦＣパケットを機器Ｂからの受信し、エラーがなかった場合のデータフローを示している。この図ではＰＣＩｅ中継回路１０ｂと接続された機器Ｂが送信元、ＰＣＩｅ中継回路１０ａと接続された機器Ａが送信先となっているが、反対の場合も同様のデータフローとなる。（１）ＦＣパケットは、送信元の機器Ｂと接続されたＰＣＩｅ中継回路１０ｂの受信ポートＲＸから入力されエラー検出部５１ｂへと転送される。（２）エラー検出部５１ｂは、ＦＣパケットのＣＲＣの値を確認してエラーの有無を判定し、エラーがない場合はＦＣ検出部５２ｂへとＦＣパケットを転送する。（３）ＦＣ検出部５２ｂは、ＦＣパケットのＴｙｐｅの値を確認してＦＣパケットであるか否かを判定し、ＦＣパケットである場合は、そのままＦＣパケットを再送バッファ５０ａへと転送する。（４）再送バッファ５０ａは、ＦＣパケットを送信先の機器Ａに接続されたＰＣＩｅ中継回路１０ａの送信ポートＴＸへと転送する。（５）再送バッファ５０ａは、送信ポートＴＸからの指示を受けてＦＣパケットを削除する。以上のように、ＦＣパケットは再送バッファ５０ａを経由して、そのまま送信先の機器Ａに接続されたＰＣＩｅ中継回路１０ａの送信ポートＴＸへと転送される。再送バッファ５０ａはＦＣパケットに対しては書き込みと読み出しを非同期に行うためのバッファとして機能し、再送制御は行わない。
【００５４】
図１３は、各種ＤＬＬＰパケットを送信元の機器Ｂからの受信し、ＤＬＬＰパケットにエラーがあった場合のデータフローを示している。この図ではＰＣＩｅ中継回路１０ｂと接続された機器Ｂが送信元、ＰＣＩｅ中継回路１０ａと接続された機器Ａが送信先となっているが、反対の場合も同様のデータフローとなる。（１）ＤＬＬＰは、送信元の機器Ｂと接続されたＰＣＩｅ中継回路１０ｂの受信ポートＲＸから入力されエラー検出部５１ｂへと転送される。このＤＬＬＰは、ＡＣＫパケット、Ｎａｋパケット、及びＦＣパケットのいずれかである。（２）エラー検出部５１ｂは、ＦＣパケットのＣＲＣの値を確認してエラーの有無を判定し、エラーがある場合はＤＬＬＰの種類にかかわらず受信したＤＬＬＰを破棄する。ＤＬＬＰはＡＣＫパケット、Ｎａｋパケット、及びＦＣパケットともに、次のＴＬＰに対する応答などで随時内容が更新され続けて受信されており、リクエストやデータの欠落が許されないＴＬＰとは異なり途中のパケットの欠落が許されるためである。
【００５５】
続いて、ＰＣＩｅ中継回路１０ａ、１０ｂの送信ポートＴＸ側における動作の流れを図１４のフロー図を用いて説明する。図１４に示されるように、送信ポートＴＸは、再送バッファ５０ａ、５０ｂから記憶されているパケットの読出しを行う指示を送る（ステップＳ１０１）。パケットが読み出されて、このパケットが送信ポートＴＸへ入力されると、送信ポートＴＸでは、このパケットがＴＬＰかＦＣパケットであるか否かの判定が行われる（ステップＳ１０２）。パケットがＴＬＰである場合は（ステップＳ１０２：ＴＬＰ）、送信ポートＴＸは、ＴＬＰを送信先の機器Ａ又は機器Ｂに向けて送信する（ステップＳ１０３）。
【００５６】
一方、パケットがＦＣパケットである場合は（ステップＳ１０２：ＤＬＬＰ  ＦＣ）、送信ポートＴＸは、ＦＣパケットを送信先の機器Ａ又は機器Ｂに向けて送信する（ステップＳ１０４）。そして、送信ポートＴＸは再送バッファ５０ａ又は５０ｂに対してＦＣパケットを削除する旨指示を送る（ステップＳ１０５）。
【００５７】
パケットを送信し終わった後は、送信ポートＴＸは再送バッファ５０ａ又は５０ｂの読出し位置を次の位置へと変更する指示を出し（ステップＳ１０６）、ステップＳ１０１からの読み出しの処理を再度行う。
【００５８】
続いて、ＰＣＩｅ中継回路１０ａ、１０ｂの受信ポートＲＸ側における動作の流れを図１５のフロー図を用いて説明する。図１５に示されるように、受信ポートＲＸでは、まずパケットを受信するところから処理がスタートする（ステップＳ２０１）。次いで、受信ポートＲＸでは、受信されたパケットが、ＴＬＰであるか、ＤＬＬＰであるかが判定される（ステップＳ２０２）。パケットがＴＬＰである場合（ステップＳ２０２：ＴＬＰ）、エラー検出部５１ａ、５１ｂは、パケットのエラー有無を判定する（ステップＳ２０３）。次いで、エラー検出部５１ａ、５１ｂに対してバッファフル信号が入力されているかが判定される（ステップＳ２０４）。
【００５９】
エラーが検出されず、バッファフル信号が入力されていない場合（ステップＳ２０３、ステップＳ２０４：Ｎｏ）、エラー検出部５１ａ、５１ｂは、ＡＣＫパケットを送信元の機器Ａ、Ｂに接続された送信ポートＴＸへと送信し（ステップＳ２０５）、次いでＴＬＰを再送バッファ５０ａ、５０ｂに書き込む指示を行う（ステップＳ２０６）。一方、エラーが検出されるか、バッファフル信号が入力されている場合（ステップＳ２０３、ステップＳ２０４のいずれかがＹｅｓ）、エラー検出部５１ａ、５１ｂは、Ｎａｋパケットを送信元の機器Ａ、Ｂに接続された送信ポートＴＸへと送信する（ステップＳ２０７）。
【００６０】
受信したパケットがＤＬＬＰである場合（ステップＳ２０２：ＤＬＬＰ）、エラー検出部５１ａ、５１ｂは、パケットのエラー有無を判定する（ステップＳ２０８）。パケットのエラーがないと判定された場合（ステップＳ２０８：Ｎｏ）、ＡＣＫ／Ｎａｋ検出部５３ａ、５３ｂ、又はＦＣ検出部５２ａ、５２ｂは、パケットがＦＣパケットであるか、ＡＣＫパケットであるか、及びＮａｋパケットであるかを判定する（ステップＳ２０９）。
【００６１】
パケットがＦＣパケットであると判定された場合（ステップＳ２０９：ＦＣパケット）、エラー検出部５１ａ、５１ｂはＦＣパケットを再送バッファ５０ａ、５０ｂへと転送し、記録するよう指示を出力する（ステップＳ２１０）。パケットがＡＣＫパケットであると判定された場合（ステップＳ２０９：ＡＣＫパケット）、ＡＣＫ／Ｎａｋ検出部５３ａ、５３ｂは再送バッファ制御部５４ａ、５４ｂにＡＣＫ信号を転送し、ＡＣＫ信号を受信した再送バッファ制御部５４ａ、５４ｂはＴＬＰを再送バッファ５０ａ、５０ｂから削除するよう指示を出力する（ステップＳ２１１）。パケットがＮａｋパケットであると判定された場合（ステップＳ２０９：Ｎａｋパケット）、ＡＣＫ／Ｎａｋ検出部５３ａ、５３ｂは再送バッファ制御部５４ａ、５４ｂにＮａｋ信号を転送し、Ｎａｋ信号を受信した再送バッファ制御部５４ａ、５４ｂはＴＬＰを再送バッファ５０ａ、５０ｂから再送するよう指示を出力する（ステップＳ２１２）。
【００６２】
パケットのエラーがあると判定された場合（ステップＳ２０８：Ｙｅｓ）、エラー検出部５１ａ、５１ｂはパケットを削除する（ステップＳ２１３）。
【００６３】
続いて、ＰＣＩｅ中継回路１０ａ、１０ｂの再送バッファ５０ａ、５０ｂにおける動作の流れを図１６のフロー図を用いて説明する。再送バッファ５０ａ、５０ｂは、まず指示が入力された場合に、その指示がパケットの書き込み指示であったか否かを判定する（ステップＳ３０１）。パケットの書き込み指示があった場合（ステップＳ３０１：Ｙｅｓ）、再送バッファ５０ａ、５０ｂはパケットをバッファ領域に記憶する（ステップＳ３０２）。パケットの書き込み指示を受けてパケットが記憶された後、再送バッファ５０ａ、５０ｂはバッファ領域に空きがあるか否か、具体的にはバッファ領域の空き容量が所定の容量以上あるか否かを判定する（ステップＳ３０３）。バッファ領域に十分な空き容量がある場合（ステップＳ３０３：Ｙｅｓ）、処理を終了する。一方、バッファ領域に空き容量が所定の容量未満の場合（ステップＳ３０３：Ｎｏ）、再送バッファ５０ａ、５０ｂはエラー検出部５１ａ、５１ｂに対してバッファフル信号を出力する（ステップＳ３０４）。
【００６４】
再送バッファ５０ａ、５０ｂへの書き込み指示がなかった場合（ステップＳ３０１：Ｎｏ）、再送バッファ５０ａ、５０ｂは記録されているパケットの読出し指示があったか否かを判定する（ステップＳ３０５）。パケットの読出し指示があったと判定された場合（ステップＳ３０５：Ｙｅｓ）、再送バッファ５０ａ、５０ｂはその読み出す対象のパケットがＴＬＰかＤＬＬＰ（ＦＣパケット）であるか否かを判定する（ステップＳ３０６）。パケットがＴＬＰであると判定された場合（ステップＳ３０６：ＴＬＰ）、再送バッファ５０ａ、５０ｂはバッファからＴＬＰを送信ポートＴＸへと転送する（ステップＳ３０７）。再送バッファ５０ａ、５０ｂは転送が終わると、バッファの読出し位置を変更する指示を受信し（ステップＳ３０８）、受信すると読み出し位置を１パケット分進める（ステップＳ３０９）。
【００６５】
一方、受信したパケットがＦＣパケットであると判定された場合（ステップＳ３０６：ＦＣパケット）、再送バッファ５０ａ、５０ｂはＦＣパケットを送信ポートＴＸへと転送する（ステップＳ３１０）。再送バッファ５０ａ、５０ｂは転送が終わるとＤＬＬＰのパケットの削除指令を受信し（ステップＳ３１１）、バッファ領域を開放してＦＣパケットを削除する（ステップＳ３１２）。
【００６６】
再送バッファ５０ａ、５０ｂへの読み出し指示がなかった場合（ステップＳ３０５：Ｎｏ）、再送バッファ５０ａ、５０ｂは制御信号の入力があったか否かを判定する（ステップＳ３１３）。制御信号の入力があった場合（ステップＳ３１３：Ｙｅｓ）、その制御信号がＴＬＰ削除指示であるか、ＴＬＰ再送指示であるか否かを再送バッファ５０ａ、５０ｂは判定する（ステップＳ３１４）。ＴＬＰ削除指示であると判定された場合（ステップＳ３１４：ＴＬＰ削除指示）、再送バッファ５０ａ、５０ｂは、ＴＬＰ削除指示とともに送られるＰＳＮで特定されるパケット以前に書き込まれたＴＬＰをバッファ領域から削除する（ステップＳ３１５）。ＴＬＰを削除後、又はステップＳ３１２でのＤＬＬＰの削除後は、再送バッファ５０ａ、５０ｂはバッファ領域の空き容量が所定の容量以上存在しているかを判定する（ステップＳ３１６）。パケットを削除することでバッファ領域の空き容量が確保される結果、バッファ領域の空き容量が所定の容量以上存在していると判定された場合（ステップＳ３１６：Ｙｅｓ）、再送バッファ５０ａ、５０ｂはエラー検出部５１ａ、５１ｂに通知中のバッファフル信号の出力を停止する（ステップＳ３１７）。一方、バッファ領域の空き容量が所定の容量未満であると判定された場合（ステップＳ３１６：Ｎｏ）、バッファフル信号は継続して出力された状態となる。
【００６７】
ＴＬＰ再送指示であると判定された場合（ステップＳ３１４：ＴＬＰ再送指示）、再送バッファ５０ａ、５０ｂはＴＬＰ再送指令とともに受信したＰＳＮまでパケットの読み出し位置を戻す（ステップＳ３１８）。再送バッファ５０ａ、５０ｂへの制御信号の入力がなかった場合（ステップＳ３１３：Ｎｏ）、処理を最初から繰り返す。
【符号の説明】
【００６８】
１０ａ  ＰＣＩｅ中継回路
１０ｂ  ＰＣＩｅ中継回路
３０ａ  物理層
４０ａ  データリンク層
５０ａ  再送バッファ
５０ｂ  再送バッファ
５１ａ  エラー検出部
５１ｂ  エラー検出部
５２ａ  ＦＣ検出部
５２ｂ  ＦＣ検出部
５３ａ  ＡＣＫ／Ｎａｋ検出部
５３ｂ  ＡＣＫ／Ｎａｋ検出部
５４ａ  再送バッファ制御部
５４ｂ  再送バッファ制御部
【先行技術文献】
【特許文献】
【００６９】
【特許文献１】特開２０１１−０２８６５０号公報
【図１】
0006003136.tif 000002
【図２】
0006003136.tif 000003
【図３】
0006003136.tif 000004
【図４】
0006003136.tif 000005
【図５】
0006003136.tif 000006
【図６】
0006003136.tif 000007
【図７】
0006003136.tif 000008
【図８】
0006003136.tif 000009
【図９】
0006003136.tif 000010
【図１０】
0006003136.tif 000011
【図１１】
0006003136.tif 000012
【図１２】
0006003136.tif 000013
【図１３】
0006003136.tif 000014
【図１４】
0006003136.tif 000015
【図１５】
0006003136.tif 000016
【図１６】
0006003136.tif 000017
【図１７】
0006003136.tif 000018
【図１８】
0006003136.tif 000019
【図１９】
0006003136.tif 000020