(57)【特許請求の範囲】
【請求項１】
送信装置と受信装置とが通信可能に接続された通信システムにおいて、
上記送信装置は、データパケットを上記受信装置に送信するためのパケット送信部と、上記受信装置へ送信されるデータパケットを再送用として保持する再送バッファと、上記受信装置へ送信されるデーダパケットに管理番号を割り当てる再送バッファ管理部を備え、
上記受信装置は、上記送信装置からのデータパケットを受信して、当該データパケットの正当性を判断する正当性判断部と、上記正当性判断部での判断結果に基づいて、上記パケットが承認されたことを示す肯定応答又は否定を示す否定応答を所定の間隔で上記送信装置に送信する確認応答送信部と、データパケットを上記送信装置に送信するためのパケット送信部とを備え、
上記受信装置は上記送信装置からのデータパケットを受信したとき、上記送信装置の再送をさせるために肯定応答又は否定応答である受信応答を行わず、
上記送信装置は上記送信装置の再送タイマーの満了後に上記送信装置の再送バッファに格納された所定量のデータパケットを再送信し、
上記受信装置は上記送信装置から再送信された所定量のデータパケットを受信し、上記受信した所定量のデータパケットの容量を上記送信装置の再送バッファの最大容量として推定することを特徴とする通信システム。
【請求項２】
上記送信装置と上記受信装置で、再送を行う場合には否定応答の受信又は再送タイマーの満了で再送制御を行い、
上記送信装置及び上記受信装置は、上記送信装置と上記受信装置の通信初期化時に最大ペイロードサイズと接続先のレーン幅に応じて、再送タイマー値を決定し、
上記受信装置が送信するデータパケットは、再送タイマーの満了時までに理論上送信可能なデータサイズを算出して最大ペイロードサイズでのパケット転送を行うことを特徴とする請求項１記載の通信システム。
【請求項３】
上記受信装置は、上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、それに応じて、上記受信装置から送出するパケットのパケット長を変更し、もしくはデータサイズを変更してパケット転送を行うことを特徴とする請求項２記載の通信システム。
【請求項４】
上記受信装置は、上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、
上記再送バッファにおいてデータが所定量を記憶していることを検出したときに、上記送信装置に対して、再送タイマーの満了時間を短縮し又は送信要求をすることを特徴とする請求項２又は３記載の通信システム。
【請求項５】
上記受信装置は、上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、上記再送バッファにおいてデータがフルの量を記憶していることを検出したときに、上記送信装置に対して、強制的に再送タイマーを満了し又は肯定応答を送出することを特徴とする請求項２又は３記載の通信システム。
【請求項６】
上記受信装置は上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、上記受信装置から上記送信装置ヘパケット転送を行うときに、上記送信装置の再送バッファのデータ蓄積状況と、次に転送するパケットサイズにより、上記送信装置の再送バッファを開放させるために応答送信要求信号を送出することを特徴とする請求項２又は３記載の通信システム。
【請求項７】
上記受信装置は上記送信装置の再送バッファの最大容量を推定し、それに応じた長さのデータパケットを送信するように上位層に通知することを特徴とする請求項２又は３記載の通信システム。
【請求項８】
上記受信装置は上記送信装置の再送バッファの最大容量を推定し、フロー制御を実装している通信システムにおいて、受信バッファの影響で通信の停止による誤認識を防ぐために、上記初期シーケンスにおいて、フロー制御の受信バッファを開放することを特徴とする請求項１乃至７のうちのいずれか１つに記載の通信システム。
【請求項９】
上記送信装置及び上記受信装置はそれぞれ対向デバイスの再送バッファの最大容量の情報を有するとき、お互いに再送バッファの最大容量の情報を送受信することを特徴とする請求項１乃至８のうちのいずれか１つに記載の通信システム。
【請求項１０】
上記送信装置及び上記受信装置は、その動作が上位層の装置又は対向するデバイスから制御可能であることを特徴とする請求項１乃至９のうちのいずれか１つに記載の通信システム。
【請求項１１】
送信装置と受信装置とが通信可能に接続された通信システムにおける受信装置のための再送バッファ容量の測定装置において、
上記受信装置は、上記送信装置からのデータパケットを受信して、当該データパケットの正当性を判断する正当性判断部と、上記正当性判断部での判断結果に基づいて、上記パケットが承認されたことを示す肯定応答又は否定を示す否定応答を所定の間隔で上記送信装置に送信する確認応答送信部と、データパケットを上記送信装置に送信するためのパケット送信部とを備え、
上記受信装置は上記送信装置からのデータパケットを受信したとき、上記送信装置の再送をさせるために肯定応答又は否定応答である受信応答を行わず、
上記受信装置は、上記送信装置の再送タイマーの満了後に上記送信装置の再送バッファに格納された所定量のデータパケットであって、上記送信装置から再送信された当該所定量のデータパケットを受信し、上記受信された所定量のデータパケットの容量を上記送信装置の再送バッファの最大容量として推定することを特徴とする再送バッファ容量の測定装置。
【請求項１２】
上記受信装置で再送を行う場合には否定応答の受信又は再送タイマーの満了で再送制御を行い、
上記受信装置は、上記送信装置と上記受信装置の通信初期化時に最大ペイロードサイズと接続先のレーン幅に応じて、再送タイマー値を決定し、
上記受信装置が送信するデータパケットは、再送タイマーの満了時までに理論上送信可能なデータサイズを算出して最大ペイロードサイズでのパケット転送を行うことを特徴とする請求項１１記載の再送バッファ容量の測定装置。
【請求項１３】
上記受信装置は、上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、それに応じて、上記受信装置から送出するパケットのパケット長を変更し、もしくはデータサイズを変更してパケット転送を行うことを特徴とする請求項１２記載の再送バッファ容量の測定装置。
【請求項１４】
上記受信装置は、上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、上記再送バッファにおいてデータが所定量を記憶していることを検出したときに、上記送信装置に対して、再送タイマーの満了時間を短縮し又は送信要求をすることを特徴とする請求項１２又は１３記載の再送バッファ容量の測定装置。
【請求項１５】
上記受信装置は、上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、上記再送バッファにおいてデータがフルの量を記憶していることを検出したときに、上記送信装置に対して、強制的に再送タイマーを満了し又は肯定応答を送出することを特徴とする請求項１２又は１３記載の再送バッファ容量の測定装置。
【請求項１６】
上記受信装置は上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、上記受信装置から上記送信装置ヘパケット転送を行うときに、上記送信装置の再送バッファのデータ蓄積状況と、次に転送するパケットサイズにより、上記送信装置の再送バッファを開放させるために応答送信要求信号を送出することを特徴とする請求項１２又は１３記載の再送バッファ容量の測定装置。
【請求項１７】
上記受信装置は上記送信装置の再送バッファの最大容量を推定し、それに応じた長さのデータパケットを送信するように上位層に通知することを特徴とする請求項１２又は１３記載の再送バッファ容量の測定装置。
【請求項１８】
上記受信装置は上記送信装置の再送バッファの最大容量を推定し、フロー制御を実装している通信システムにおいて、受信バッファの影響で通信の停止による誤認識を防ぐために、上記初期シーケンスにおいて、フロー制御の受信バッファを開放することを特徴とする請求項１１乃至１７のうちのいずれか１つに記載の再送バッファ容量の測定装置。
【請求項１９】
上記受信装置は対向デバイスの再送バッファの最大容量の情報を有するとき、お互いに再送バッファの最大容量の情報を送受信することを特徴とする請求項１１乃至１８のうちのいずれか１つに記載の再送バッファ容量の測定装置。
【請求項２０】
上記受信装置は、その動作が上位層の装置又は対向するデバイスから制御可能であることを特徴とする請求項１１乃至１９のうちのいずれか１つに記載の再送バッファ容量の測定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＰＣＩエキスプレス（ＰＣＩ  Ｅｘｐｒｅｓｓ）規格に準拠するリンク伝送路を用いて、再送バッファを有する再送可能な通信システムにおいて、対向デバイスの再送バッファの容量を認識する通信システム及び再送バッファ容量の測定装置に関する。
【背景技術】
【０００２】
近年、ＰＣボード上のＬＳＩ間の通信、ＰＣボード間の通信及び比較的短いケーブルを介する装置間の通信などの通信において、第３世代のＰＣ用インターフェース規格であるＰＣＩエキスプレスが採用されている（非特許文献１参照。）。ここで、ＰＣボードはＣＰＵと、ＣＰＵをＰＣＩエキスプレスリンクに接続するルートコンプレックスデバイスと、ルートコンプレックスデバイスにＰＣＩエキスプレスリンクを介して接続されたエンドポイントデバイスと、基準クロック信号発生回路とを備えて構成される。ここで、エンドポイントデバイスは、グラフィックスカード又はＵＳＢホストコントローラなどの半導体回路である。また、ＰＣＩエキスプレスリンクは、少なくとも１組の片方向の差動伝送路を含むデュアルシンプレックス方式のリンク伝送路である。
【０００３】
コンピュータ間のデータパケットの通信においては、信頼性のあるデータ配送を維持するために、送信装置からのデータパケットを誤りなく受信したときには、受信装置は確認応答を送信側に返すようにしている。このような通信システムにおいて、例えば特許文献１は、送信局と受信局間でのパケット通信において、送信局がＤＴパケットの送信時刻を記録し、該パケットに対応する肯定応答パケットであるＡＣＫ（acknowledge）パケットの受信時刻を測定する手段を備え、ＡＣＫパケットの受信時刻と対応するＤＴパケットの送信時刻の差から往復応答時間を算出する手段と、ＡＣＫパケットの受信間隔を測定する手段と、上記応答往復時間と上記受信間隔とに基づいて最適なウインドウサイズを計算する手段とを備えた通信システムを開示している。
【０００４】
しかしながら、特許文献１に開示された従来技術は、送信装置内に配置されたパケット再送のためのバッファのサイズと、受信装置からの確認応答の送信遅延（送信間隔）との関係を最適化することを意図したものではなかった。この問題点を解決するために、特許文献２においては、パケット再送用バッファのサイズと確認応答の送信遅延（間隔）を最適化することができる通信システムを提供するために、「送信装置と受信装置とが通信可能に接続された通信システムであって、上記送信装置は、データパケットを上記受信装置に送信するためのパケット送信部と、上記送信装置から上記受信装置に送信されるデータパケットを再送用として保持する再送バッファと、を具備し、上記受信装置は、上記送信装置からのデータパケットを受信して当該データパケットの正当性を判断する正当性判断部と、上記正当性判断部での判断結果に基づいて、上記パケットが承認されたことを示す肯定応答かあるいは上記パケットが承認されなかったことを示す否定応答を所定の間隔で上記送信装置に送信する確認応答送信部と、を具備し、上記送信装置はさらに、上記送信部から上記データパケットを送信してから、上記受信装置からの上記肯定応答を受信するまでの遅延時間を測定する遅延時間測定部と、上記遅延時間測定部で測定された遅延時間と、上記再送バッファの容量とに基づいて、上記確認応答送信部での肯定応答の送信間隔の適否を判断し、当該判断結果に基づいて上記肯定応答の送信間隔を変更する指示を上記受信装置に送信する送信間隔指示部とを具備したこと」を特徴としている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献２に係る通信システムは、回路化が容易であるが、Ｖｅｎｄｏｒ  Ｓｐｅｃｉｆｉｃ  ＤＬＬＰ（Data Link Layer Packet）を使用するため、対向デバイスも、同様の機能を持っていないと使えず、汎用性が無いという問題点があった。また、パケット長と連続性が変わる頻度が多い連続通信である場合、Ｖｅｎｄｏｒ  Ｓｐｅｃｉｆｉｃ  ＤＬＬＰが無駄なパケットとして通信の妨げになる可能性があるという問題点があった。
【０００６】
非特許文献１に係る従来技術では、再送バッファの容量は実装装置に依存して変化するために規定されておらず、また、対向デバイスの再送バッファやその管理に関して記述されていない。また、補足として、ＡＣＫＮＡＫレイテンシータイマー（以下、ＡＬタイマーという。）の満了でＡＣＫパケットを対向デバイスヘ送信し、そのＡＣＫパケットを受信したデバイスはＡＣＫパケットのシーケンスナンバー（例えば＃５）で再送バッファのそれに相当する部分（＃５）までを開放する。
【０００７】
ＰＣＩエキスプレスは高速シリアルインターフェースであり、ＩＯインターフェースである。対向デバイスは（エンドポイントに対してはルートコンプレックス、もしくは、その逆もある。）どの会社に対応したデバイスに挿入されるかわからない。そのため、対向デバイスの再送バッファの容量など不明で、どのような最大ペイロードサイズで通信されるかわからず、再送バッファや再送バッファ管理部が通信効率のボトルネックとなる可能性があった。
【０００８】
また、データ通信でノイズが重畳する可能性があり、通信効率に影響を与える可能性があり、ノイズが重畳すると通信エラーが発生し、再送バッファ又は送信バッファの容量がいっぱいとなる可能性があり、通信効率が下がるという問題点があった。
【０００９】
さらに、既存の仕様では、再送バッファは、対向デバイスからのＡＣＫにより再送バッファの容量は開放される。また、既存の仕様では、ＡＣＫはＡＬタイマーの満了で送信され、ＡＬタイマーはレーン幅と最大ペイロードサイズにより規定されている。そのため、対向デバイスの再送バッファがデータで満たされると、通信ができなくなるという問題点があった。
【００１０】
またさらに、通信は双方向で行われているため、以下に示すように、ＡＬタイマーの満了までに受信コンポーネントから長いパケット転送が発生すると、送信コンポーネントの再送バッファがいっぱいとなった場合に送信コンポーネントからのパケット転送が行われなくなり、通信効率が下がるという問題点があった。これについて以下詳述する。
【００１１】
図２は、ＰＣＩエキスプレスを用いた従来技術に係る通信システムにおいて、送信コンポーネント（エンドポイント：ＥＰ）と、受信コンポーネント（レシーブコンポーネント：ＲＣ）との間の通信手順の第１の従来例を示すタイミングチャートである。図２において、送信コンポーネントからパケット転送が行われた際、対向デバイスの再送バッファ管理部は、ＡＬタイマーの満了に基づいてＡＣＫパケットを返信していることを示す。ここで、送信コンポーネントから受信コンポーネントに対してパケット転送されていて、シーケンスナンバー（ＳＥＱ＃）は３つのパケットをまとめて最後のシーケンスナンバー（ＳＥＱ＃＝１２）で返信している。
【００１２】
図３はＰＣＩエキスプレスを用いた従来技術に係る通信システムにおいて、送信コンポーネント（ＥＰ）と、受信コンポーネント（ＲＣ）との間の通信手順の第２の従来例を示すタイミングチャートである。図３において、送信コンポーネントから受信コンポーネントに対してパケット転送している通信中に、否定応答パケットであるＮＡＫ（Negative ＡcＫnowledge）パケットが受信コンポーネントから送信コンポーネントへ返信されたことを示す。また、ＡＬタイマーが満了するとＡＣＫパケットをまとめて返信していることを示している。
【００１３】
図４はＰＣＩエキスプレスを用いた従来技術に係る通信システムにおいて、送信コンポーネント（ＥＰ）と、受信コンポーネント（ＲＣ）との間の通信手順の第３の従来例を示すタイミングチャートである。図４において、送信コンポーネントから受信コンポーネントヘパケット転送されているとき、受信コンポーネントのＡＬタイマーが満了する前に、受信コンポーネントから送信コンポーネントヘパケット転送を開始していることを示している。受信コンポーネントから送信コンポーネントへＡＣＫパケットが返信されるまでに、送信コンポーネントの再送バッファはいっぱいとなり、送信コンポーネントから受信コンポーネントへのパケット転送の通信が停止している。また、ＡＣＫパケット送信前に長いＴＬＰ（Transaction Layer Packet）の送信を開始したためにＡＣＫパケットを返信できない状態を示している。
【００１４】
図２乃至図４を参照して説明したように、ＡＬタイマーの満了までに受信コンポーネントから長いパケット転送が発生すると、送信コンポーネントの再送バッファがいっぱいとなった場合に送信コンポーネントからのパケット転送が行われなくなり、通信効率が下がる。
【００１５】
本発明の目的は以上の問題点を解決し、対向デバイスの再送バッファの最大容量を検出することができ、しかも通信効率を従来技術に比較して向上させることができる通信システムを提供することにある。
【００１６】
本発明の別の目的は以上の問題点を解決し、対向デバイスの再送バッファの最大容量を検出することができる再送バッファ容量の測定装置を提供することにある。
【課題を解決するための手段】
【００１７】
第１の発明に係る通信システムは、送信装置と受信装置とが通信可能に接続された通信システムにおいて、
上記送信装置は、データパケットを上記受信装置に送信するためのパケット送信部と、上記受信装置へ送信されるデータパケットを再送用として保持する再送バッファと、上記受信装置へ送信されるデーダパケットに管理番号を割り当てる再送バッファ管理部を備え、
上記受信装置は、上記送信装置からのデータパケットを受信して、当該データパケットの正当性を判断する正当性判断部と、上記正当性判断部での判断結果に基づいて、上記パケットが承認されたことを示す肯定応答又は否定を示す否定応答を所定の間隔で上記送信装置に送信する確認応答送信部と、データパケットを上記送信装置に送信するためのパケット送信部とを備え、
上記受信装置は上記送信装置からのデータパケットを受信したとき、上記送信装置の再送をさせるために肯定応答又は否定応答である受信応答を行わず、
上記送信装置は上記送信装置の再送タイマーの満了後に上記送信装置の再送バッファに格納された所定量のデータパケットを再送信し、
上記受信装置は上記送信装置から再送信された所定量のデータパケットを受信し、上記受信した所定量のデータパケットの容量を上記送信装置の再送バッファの最大容量として推定することを特徴とする。
【００１８】
上記通信システムにおいて、上記送信装置と上記受信装置で、再送を行う場合には否定応答の受信又は再送タイマーの満了で再送制御を行い、
上記送信装置及び上記受信装置は、上記送信装置と上記受信装置の通信初期化時に最大ペイロードサイズと接続先のレーン幅に応じて、再送タイマー値を決定し、
上記受信装置が送信するデータパケットは、再送タイマーの満了時までに理論上送信可能なデータサイズを算出して最大ペイロードサイズでのパケット転送を行うことを特徴とする。
【００１９】
また、上記通信システムにおいて、上記受信装置は、上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、それに応じて、上記受信装置から送出するパケットのパケット長を変更し、もしくはデータサイズを変更してパケット転送を行うことを特徴とする。
【００２０】
さらに、上記通信システムにおいて、上記受信装置は、上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、上記再送バッファにおいてデータが所定量を記憶していることを検出したときに、上記送信装置に対して、再送タイマーの満了時間を短縮し又は送信要求をすることを特徴とする。
【００２１】
またさらに、上記通信システムにおいて、上記受信装置は、上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、上記再送バッファにおいてデータがフルの量を記憶していることを検出したときに、上記送信装置に対して、強制的に再送タイマーを満了し又は肯定応答を送出することを特徴とする。
【００２２】
またさらに、上記通信システムにおいて、上記受信装置は上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、上記受信装置から上記送信装置ヘパケット転送を行うときに、上記送信装置の再送バッファのデータ蓄積状況と、次に転送するパケットサイズにより、上記送信装置の再送バッファを開放させるために応答送信要求信号を送出することを特徴とする。
【００２３】
また、上記通信システムにおいて、上記受信装置は上記送信装置の再送バッファの最大容量を推定し、それに応じた長さのデータパケットを送信するように上位層に通知することを特徴とする。
【００２４】
さらに、上記通信システムにおいて、上記受信装置は上記送信装置の再送バッファの最大容量を推定し、フロー制御を実装している通信システムにおいて、受信バッファの影響で通信の停止による誤認識を防ぐために、上記初期シーケンスにおいて、フロー制御の受信バッファを開放することを特徴とする。
【００２５】
またさらに、上記通信システムにおいて、上記送信装置及び上記受信装置はそれぞれ対向デバイスの再送バッファの最大容量の情報を有するとき、お互いに再送バッファの最大容量の情報を送受信することを特徴とする。
【００２６】
またさらに、上記通信システムにおいて、上記送信装置及び上記受信装置は、その動作が上位層の装置又は対向するデバイスから制御可能であることを特徴とする。
【００２７】
第２の発明に係る再送バッファ容量の測定装置は、送信装置と受信装置とが通信可能に接続された通信システムにおける受信装置のための再送バッファ容量の測定装置において、
上記受信装置は、上記送信装置からのデータパケットを受信して、当該データパケットの正当性を判断する正当性判断部と、上記正当性判断部での判断結果に基づいて、上記パケットが承認されたことを示す肯定応答又は否定を示す否定応答を所定の間隔で上記送信装置に送信する確認応答送信部と、データパケットを上記送信装置に送信するためのパケット送信部とを備え、
上記受信装置は上記送信装置からのデータパケットを受信したとき、上記送信装置の再送をさせるために肯定応答又は否定応答である受信応答を行わず、
上記受信装置は、上記送信装置の再送タイマーの満了後に上記送信装置の再送バッファに格納された所定量のデータパケットであって、上記送信装置から再送信された当該所定量のデータパケットを受信し、上記受信された所定量のデータパケットの容量を上記送信装置の再送バッファの最大容量として推定することを特徴とする。
【００２８】
上記再送バッファ容量の測定装置において、上記受信装置で再送を行う場合には否定応答の受信又は再送タイマーの満了で再送制御を行い、
上記受信装置は、上記送信装置と上記受信装置の通信初期化時に最大ペイロードサイズと接続先のレーン幅に応じて、再送タイマー値を決定し、
上記受信装置が送信するデータパケットは、再送タイマーの満了時までに理論上送信可能なデータサイズを算出して最大ペイロードサイズでのパケット転送を行うことを特徴とする。
【００２９】
また、上記再送バッファ容量の測定装置において、上記受信装置は、上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、それに応じて、上記受信装置から送出するパケットのパケット長を変更し、もしくはデータサイズを変更してパケット転送を行うことを特徴とする。
【００３０】
さらに、上記再送バッファ容量の測定装置において、上記受信装置は、上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、上記再送バッファにおいてデータが所定量を記憶していることを検出したときに、上記送信装置に対して、再送タイマーの満了時間を短縮し又は送信要求をすることを特徴とする。
【００３１】
またさらに、上記再送バッファ容量の測定装置において、上記受信装置は、上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、上記再送バッファにおいてデータがフルの量を記憶していることを検出したときに、上記送信装置に対して、強制的に再送タイマーを満了し又は肯定応答を送出することを特徴とする。
【００３２】
またさらに、上記再送バッファ容量の測定装置において、上記受信装置は上記受信装置から送出した受信応答と上記受信装置から送出したパケットデータのサイズに基づいて上記送信装置の再送バッファのデータ蓄積状況を推定し、上記受信装置から上記送信装置ヘパケット転送を行うときに、上記送信装置の再送バッファのデータ蓄積状況と、次に転送するパケットサイズにより、上記送信装置の再送バッファを開放させるために応答送信要求信号を送出することを特徴とする。
【００３３】
また、上記再送バッファ容量の測定装置において、上記受信装置は上記送信装置の再送バッファの最大容量を推定し、それに応じた長さのデータパケットを送信するように上位層に通知することを特徴とする。
【００３４】
さらに、上記再送バッファ容量の測定装置において、上記受信装置は上記送信装置の再送バッファの最大容量を推定し、フロー制御を実装している通信システムにおいて、受信バッファの影響で通信の停止による誤認識を防ぐために、上記初期シーケンスにおいて、フロー制御の受信バッファを開放することを特徴とする。
【００３５】
またさらに、上記再送バッファ容量の測定装置において、上記受信装置は対向デバイスの再送バッファの最大容量の情報を有するとき、お互いに再送バッファの最大容量の情報を送受信することを特徴とする。
【００３６】
またさらに、上記再送バッファ容量の測定装置において、上記受信装置は、その動作が上位層の装置又は対向するデバイスから制御可能であることを特徴とする。
【発明の効果】
【００３７】
本発明に係る通信システム及び再送バッファ容量の測定装置によれば、対向デバイスの再送バッファの最大容量を推定することができ、例えばＰＣＩエキクスプレスのようなＩＯインターフェースでは、様々なデバイスと接続することがあり、その接続に応じて、パケットの長さなどの通信の使用状況が変わってくる。対面デバイスの再送バッファの最大容量を推定することにより、以下のように通信効率を高めることができる。
【００３８】
また、上記受信装置から、上記送信装置がパケット送信をさせるために、パケットを送信し、上記受信装置では応答要求を返さない構成において、上記受信装置から上記送信装置がパケットを送信をさせるためにパケットを送信する。パケットの大きさは、再送タイマー満了までに理論上送信可能なパケットサイズで行う。できるだけ少ないパケットを送信させる上記初期化シーケンスから開始するので、上記初期化シーケンスの時間短縮ができる。
【００３９】
さらに、上記対向デバイスの再送バッファの最大容量を推定し、そのデータ蓄積状況に応じて、上記受信装置から肯定応答を送出することにより、上記送信装置の再送バッファにデータが満たされることによる通信効率の低下を防ぐことが可能である。
【００４０】
またさらに、対向デバイスの再送バッファのデータ蓄積状況と、次に受信コンポーネントから転送するパケットから判断し、肯定応答を送出するが、対向デバイスの再送バッファのデータ蓄積量が一定量を超えてしまっても、上記受信装置から長いパケットを送信している間に再送バッファが満たされ、上記送信装置から送信するパケット通信が止まる可能性がある。これを回避することができる。
【００４１】
また、対向デバイスの再送バッファの最大容量とデータ蓄積容量を推定し、これを利用して、最適な長さのパケットを上位層へ伝えることができる。この通知により、上位層から最適なパケットサイズでの転送が行えるため、通信効率を高めることができ、この情報は、当該装置のデバイス上位層及び対向デバイスヘも通知可能である。
【００４２】
さらに、受信装置の受信バッファの影響で、通信が止まることを防ぐため、受信バッファの開放をさせるものとする。また、通信システムとして双方のデバイスで再送バッファの最大容量及びデータ蓄積容量を通知可能にすることで、上記初期シーケンスを省くことができる。さらに、上位層もしくは対向デバイスにより、対向デバイスの再送バッファ認識のシーケンスを実施可能又は停止可能である。
【図面の簡単な説明】
【００４３】
【図１】本発明の一実施形態に係るＰＣＩエキスプレスを用いた通信システムの構成を示すブロック図である。
【図２】ＰＣＩエキスプレスを用いた従来技術に係る通信システムにおいて、送信コンポーネント（ＥＰ）１０と、受信コンポーネント（ＲＣ）２０との間の通信手順の第１の従来例を示すタイミングチャートである。
【図３】ＰＣＩエキスプレスを用いた従来技術に係る通信システムにおいて、送信コンポーネント（ＥＰ）１０と、受信コンポーネント（ＲＣ）２０との間の通信手順の第２の従来例を示すタイミングチャートである。
【図４】ＰＣＩエキスプレスを用いた従来技術に係る通信システムにおいて、送信コンポーネント（ＥＰ）１０と、受信コンポーネント（ＲＣ）２０との間の通信手順の第３の従来例を示すタイミングチャートである。
【図５】図１の通信システムにおいて、送信コンポーネント（ＥＰ）１０と、受信コンポーネント（ＲＣ）２０との間の通信手順の実施例１を示すタイミングチャートである。
【図６】図１の通信システムにおいて、対向デバイスの再送バッファ１３の容量を認識する通信手順を示すタイミングチャートである。
【図７】図１の通信システムにおいて、ＴＬＰのサイズの第１の管理方法の通信手順を示すタイミングチャートである。
【図８】図１の通信システムにおいて、ＴＬＰのサイズの第２の管理方法の通信手順を示すタイミングチャートである。
【図９】図１の通信システムにおける再送バッファの最大容量の認識及びＴＬＰのサイズの管理処理を示すフローチャートである。
【図１０】図１の通信システムの受信パケット管理部２２によるＴＬＰのサイズの管理処理を示すフローチャートである。
【発明を実施するための形態】
【００４４】
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
【００４５】
図１は本発明の一実施形態に係るＰＣＩエキスプレスを用いた通信システムの構成を示すブロック図である。本実施形態では、ＰＣＩエキスプレスを用いた通信システムについて以下に説明する。ここで、ＰＣＩエキスプレスはＰＣＩバスの上位互換となるシリアルバスであり、１レーンあたり最大２．５Ｇｂｐｓで最大３２レーンの広いデータバンド幅を有している。
【００４６】
まず、ＰＣＩエキスプレスの規格で定義されたデータリンク層に備えられた、リンク間で送受信されたＴＬＰの正当性を保証する機能について図１を参照して説明する。図１は、再送バッファ１３とＡＣＫ  ＤＬＬＰ（Data Link Layer Packet）によるＴＬＰ承認の手順を説明するための図であり、図１において、送信コンポーネント１０は所定の有線リンクバスを介して受信コンポーネント２０に接続されている。送信コンポーネント１０は、パケット受信部１１と、再送バッファ１３を有するパケット送信部１２とを備えて構成される。また、受信コンポーネント２０は、確認応答送信部２１ａを有するパケット送信部２１と、シーケンスナンバー管理部２２ａを有する受信パケット管理部２２と、正当性判断部２３と、再送バッファ状況管理部２４と、ＡＬタイマー２５ｔを有するＡＬタイマー管理部２５と、シーケンスナンバー管理部２６ａを有する応答送信制御部２６とを備えて構成される。
【００４７】
以上のように構成された通信システムにおいて、送信コンポーネント１０から複数のＴＬＰが受信コンポーネント２０に送信され、ここで、このＴＬＰには所定のシーケンスナンバーが付与されるとともに、送信されたＴＬＰは再送バッファ１３に記録される。受信コンポーネント２０の受信パケット管理部２２は複数のＴＬＰを受信して、そのシーケンスナンバーはシーケンスナンバー管理部２２ａにより記録されて管理される。次いで、正当性判断部２３は、従来例では、受信したＴＬＰの正当性について詳細後述するように判断してパケット送信部２１に伝達してＡＣＫパケットをパケット送信部２１から返信するように制御するが、本実施形態では、特に、以下の処理部を備えたことを特徴としている。
【００４８】
（１）再送バッファ状況管理部２４：対向デバイス（送信コンポーネント１０）の再送バッファ１３の最大容量と、現在蓄積しているデータ蓄積容量とを詳細後述する方法で認識して記憶して管理し、その情報は応答送信制御部２６又は上位層に伝達される。なお、受信コンポーネント２０の対向デバイスは送信コンポーネント１０であるが、送信コンポーネント１０の対向デバイスは受信コンポーネント２０であり、以下同様である。
（２）ＡＬタイマー２５ｔを有するＡＬタイマー管理部２５：正当性が確認された所定の複数のＴＬＰを受信したときにＡＬタイマー２５ｔが満了するように構成され、満了時にその旨が応答送信制御部２６に伝達される。
（３）応答送信制御部２６：受信コンポーネント２０からのＴＬＰの送信のシーケンスナンバーを記憶して管理するシーケンスナンバー管理部２６ａを備え、再送バッファ状況管理部２４が対向デバイスの再送バッファ１３が所定の一定量のデータを記憶していると判断したとき、もしくは、応答送信制御部２６が次に送信するＴＬＰの長さを認識して所定のしきい値長さを超えるときに、ＡＣＫ送信要求信号を発生して確認応答送信部２１ａに出力することにより、確認応答送信部２１ａはＡＣＫパケットを発生してパケット送信部２１から送信コンポーネント１０に送信するように制御する。
【００４９】
なお、送信コンポーネント１０は受信コンポーネント２０からＡＣＫ  ＤＬＬＰを受信してＴＬＰが承認されたことを知ると、ＴＬＰを承認済みとして再送バッファ１３から削除することになる。
【００５０】
また、本実施形態では、リンク間で送受信されたＴＬＰの正当性を保証する機能を実現するために、ＴＬＰ上にはシーケンスナンバーと、ＬＣＲＣ（Link Cyclic Redundancy Check）が用いられている。シーケンスナンバーは、過去４０９６個のＴＬＰについて連番で固有の値を示す１２ビットのＩＤであり、送信コンポーネント１０からＴＬＰを送信する際に生成される。受信コンポーネント２０は、その連続性を利用してＴＬＰの受信抜け等がないかどうかについての正当性を判断できる。一方、ＬＣＲＣは３２ビットのＣＲＣ（Cyclic Redundancy Check)である。ＬＣＲＣは送信コンポーネント１０からＴＬＰを送信する際に生成され、受信コンポーネント２０は受信コンポーネント２０自身で計算したＣＲＣと比較し、誤りを検出することができる。このように、受信コンポーネント２０のデータリンク層はシーケンスナンバーとＬＣＲＣが正しいか否かで、そのＴＬＰの正当性を判断する。このとき、受信コンポーネント２０のデータリンク層が、正当なＴＬＰを受信した場合にはＡＣＫ  ＤＬＬＰ（肯定ＤＬＬＰ）を送り返し、不当なＴＬＰを受信した場合にはＮＡＫ  ＤＬＬＰ（否定ＤＬＬＰ）を送り返す。
【００５１】
送信コンポーネント１０のデータリンク層は送信したＴＬＰを一旦再送バッファに保持しており、ＡＣＫ  ＤＬＬＰによって承認されることが通知された場合には、承認されたＴＬＰを再送バッファ１２から削除する。また、ＮＡＫ  ＤＬＬＰによって少なくとも１つのＴＬＰが非承認であることが通知された場合には、再送バッファ１２に残っている承認されなかったＴＬＰ以降のすべてのＴＬＰを受信コンポーネント２０に再送する。ただし、承認を示すＡＣＫ  ＤＬＬＰは必ずしも受信コンポーネント２０が１つのＴＬＰを受信する毎に送信する必要はなく、最後に承認したＴＬＰのシーケンスナンバーをＡＣＫ  ＤＬＬＰに載せて送ることで、そのシーケンスナンバーが示すＴＬＰまでを同時に承認することができる。これはＡＣＫ  ＤＬＬＰを送信する個数を抑制し、ＡＣＫ  ＤＬＬＰの送信による帯域の減少を押さえる効果がある。当該ＡＣＫ  ＤＬＬＰの送信遅延は規格上厳密には定められておらず、大まかなガイドラインが示されているだけであり、実装依存となっている。
【００５２】
以上説明したように、本実施形態では、受信コンポーネント２０からパケットを送信させるパケットを送信コンポーネント１０ヘ送信する。それに応じて、送信コンポーネント１０から受信コンポーネント２０ヘパケット転送が行われる。そのパケット転送では、受信コンポーネント２０は応答を返さないものとする。受信コンポーネント２０の受信パケット管理部２２と正当性判断部２３からの情報に基づいて、詳細後述するように、再送バッファ状況管理部２４は、送信コンポーネント１０の再送バッファ１３の最大容量と現在記憶されているデータ蓄積容量とを推定して認識する。
【００５３】
図５は図１の通信システムにおいて、送信コンポーネント（ＥＰ）１０と、受信コンポーネント（ＲＣ）２０との間の通信手順の実施例１を示すタイミングチャートである。図４の状態において、対向デバイスの再送バッファ１３の存在と再送バッファ１３の最大容量（すなわちバッファサイズ）を認識して、次に受信コンポーネント２０から送信コンポーネント１０へ転送するパケットの長さを認識し、ＡＣＫパケットを返すように応答送信要求信号を発生することを特徴としている。すなわち、ＡＬタイマー２５ｔが満了していないＡＣＫパケットの送信前において、所定のしきい値長さを超える長いＴＬＰを送信開始したためにＡＣＫパケットを返信できない場合があり、そのとき、再送バッファ状況管理部２４は再送バッファ１３に所定の一定量のデータが記憶されていると判断したとき、ＡＣＫ送信要求信号を発生して確認応答送信部２１ａに出力してＡＣＫパケットを強制的に送信コンポーネント１０に送信する。また、応答送信制御部２６は次に送信するＴＬＰの長さを認識していて、所定のしきい値長さを超えるＴＬＰを送信することを認識したときは、ＡＣＫ送信要求信号を発生して確認応答送信部２１ａに出力してＡＣＫパケットを強制的に送信コンポーネント１０に送信する。これによりＡＣＫパケットが送信コンポーネント１０により受信されて再送バッファ１３内のデータが削除されて正常な状態に戻ることができる。
【００５４】
図６は図１の通信システムにおいて、対向デバイスの再送バッファ１３の容量を認識する通信手順を示すタイミングチャートである。図６において、まず、受信コンポーネント２０は送信コンポーネント１０に対してパケット送信要求信号を送信し（ステップＳ１）、これに対して、送信コンポーネント１０は受信コンポーネント２０に対してＴＬＰを送信する（ステップＳ２）。図６の例では、受信コンポーネント２０はシーケンスナンバー＃１までのＴＬＰを受信しており、それを再送バッファ状況管理部２４を管理認識している。送信コンポーネント１０は受信コンポーネント２０に対してＴＬＰ（ＳＥＱ＃＝４）まで転送が完了したとき（ステップＳ３）受信コンポーネント２０はその旨を管理認識している（ステップＳ４）。このとき、再送バッファ状況管理部２４は対向デバイスである送信コンポーネント１０の再送バッファ１３の最大容量を認識しておらず、ＴＬＰ（ＳＥＱ＃＝４）までのデータを受信したことを確認している（ステップＳ５）。この場合において、再送バッファ状況管理部２４は応答送信制御部２６に対してＡＣＫパケットを送信しないように要求する（ステップＳ５）。これにより、送信コンポーネント１０の再送タイマーは満了して（ステップＳ６）送信コンポーネント１０は、ＴＬＰ（ＳＥＱ＃＝０〜４）を再送する（ステップＳ７）。これにより、再送バッファ状況管理部２４は、いままでにＴＬＰ（ＳＥＱ＃＝０〜４）を受信して再送がかかっているので再送バッファ１３の最大容量は図６に示すように当該５つのシーケンスナンバーのＴＬＰに対応するデータ蓄積容量であると推定して検出できる。
【００５５】
図７は図１の通信システムにおいて、ＴＬＰのサイズの第１の管理方法の通信手順を示すタイミングチャートである。互いに対向するデバイスの再送バッファの最大容量を図６の方法又は互いにデータ通信により伝達する方法により互いに認識しているものとする。図７において、送信コンポーネント１０は受信コンポーネント２０に対してＴＬＰ（ＳＥＱ＃＝３）を転送中（ステップＳ１１）において、所定の時間Ｔ１が経過したときは、ＡＬタイマー２５ｔが満了し、確認応答送信部２１ａはＡＣＫ（ＳＥＱ＃＝０）を送信コンポーネント１０に対して送信する（ステップＳ１２）。この状態で、シーケンスナンバー管理部２２ａはＴＬＰ（ＳＥＱ＃＝２）であると認識し、シーケンスナンバー管理部２６ａはＡＣＫ（ＳＥＱ＃＝０）であると認識している。ここで、再送バッファ状況管理部２４において、再送バッファ１３の蓄積データ蓄積容量が対向デバイスの上記再送バッファ１３の最大容量（一定量）を超えたと判断したときは（ステップＳ１３）ＡＣＫ送信要求信号を発生して応答送信制御部２６ａを介して確認応答送信部２１ａに出力する（ステップＳ１４）。このとき、再送バッファ状況管理部２４はそれが管理する再送バッファ１３のデータ蓄積状況をＴＬＰ（ＳＥＱ＃＝３）に更新し（ステップＳ１５）、また、シーケンスナンバー管理部２６ａはＡＣＫ（ＳＥＱ＃＝２）と認識し、確認応答送信部２１ａはＡＣＫ（ＳＥＱ＃＝２）を送信コンポーネント１０に対して送信する（ステップＳ１６）。
【００５６】
以上説明したように、図７のＴＬＰの第１の管理方法によれば、受信されたＴＬＰのシーケンスナンバーからＡＣＫパケットを返信したそのシーケンスナンバーを減算したシーケンスナンバーと、それに対応するＴＬＰサイズを受信コンポーネント２０において管理することができる。
【００５７】
図８は図１の通信システムにおいて、ＴＬＰのサイズの第２の管理方法の通信手順を示すタイミングチャートである。図８において、送信コンポーネント１０は受信コンポーネント２０に対してＴＬＰ（ＳＥＱ＃＝３）を転送中（ステップＳ２１）においては、再送バッファ状況管理部２４はＴＬＰ（ＳＥＱ＃＝２）までを受信したことを認識している。ここで、受信コンポーネント２０は送信コンポーネント１０に対してＴＬＰを送信しているときに（ステップＳ２２）、再送バッファ状況管理部２４で認識している再送バッファ１３のデータ蓄積容量が所定のしきい値（一定量）となっていることを検出したとき（ステップＳ２３）、もしくは、応答送信制御部２６ａがＴＬＰのデータ長が名杯と判断したとき（ステップＳ２４）、ＡＣＫ応答送信要求信号を発生して確認応答送信部２１ａに出力し、これに応答して、確認応答送信部２１ａはＡＣＫ（ＳＥＱ＃＝２）を送信する（ステップＳ２５）。これにより、送信コンポーネント１０の再送バッファ１３のデータは削除されて、受信コンポーネント２０は送信コンポーネント１０に対して次のＴＬＰを送信できる（ステップＳ２６）ようになる。
【００５８】
図９は図１の通信システムにおける再送バッファ１３の最大容量の認識及びＴＬＰのサイズの管理処理を示すフローチャートである。なお、図９及び図１０のフローは当該装置の動作に係るメインルーチン内のサブルーチンである。
【００５９】
図９のステップＳ３１において、互いにもしくは片方のコンポーネントの再送バッファ１３の最大容量を通知し、ステップＳ３２においてレジスタなどで再送バッファ１３の最大容量が実装されているか否かが判断され、ＹＥＳのときはステップＳ３３に進む一方、ＮＯのときはステップＳ４１に進む。ステップＳ３３では、対向デバイスの再送バッファ１３の最大容量をパケット（ＴＬＰ，ＤＬＬＰ）で確認し、ステップＳ３４において受信されたＴＬＰのシーケンスナンバー、ＡＣＫＮＡＫを送信したシーケンスナンバーと、そのＴＬＰのサイズを記憶して管理し、再送バッファ１３のデータ蓄積容量を推定する（図７参照。）。そして、ステップＳ３５において、対向デバイスの再送バッファ１３のデータ蓄積容量がしきい値を超えたか否かを判断し、ＹＥＳのときはステップＳ３６に進む一方、ＮＯのときはステップＳ３７に進む。ステップＳ３６では、受信コンポーネント２０からＡＣＫを送出させ、ＡＬタイマー２５ｔを満了させ（図８参照。）元のメインルーチンに戻る。一方、ステップＳ３７においてＡＬタイマー２５ｔが満了した後にＡＣＫを送信し元のメインルーチンに戻る。
【００６０】
ステップＳ４１では、受信コンポーネント２０でパケット（例えば大量のＭＲｄ）を送信コンポーネント１０に送り、送信コンポーネント１０に再送を起こさせるため、受信コンポーネント２０ではＡＣＫパケットを返信しないシーケンスに入る。ステップＳ４２において、受信コンポーネント２０でＮＡＫパケットがでないか、すなわち通信エラーにならないか否かが判断され、ＹＥＳのときはステップＳ４５に進む一方、ＮＯのときはステップＳ４３に進む。ステップＳ４３ではＮＡＫパケットを送出し、ステップＳ４４では、ＮＡＫパケットを複数回送出したか否かを判断し、ＮＯのときはステップＳ４１に戻る一方、ＹＥＳのときは元のメインルーチンに戻る。ステップＳ４５では、対向デバイスの再送バッファ１３の最大容量を測定し、次いで、ステップＳ４６において確度を上げるためにＴＬＰのデータペイロード長を変えて実施する。受信コンポーネント２０でパケット（例えばＭＲｄ）を送信コンポーネント１０に送り、送信コンポーネント１０に再送を起こさせるため、受信コンポーネント２０ではＡＣＫパケットを返信しないシーケンスに入る。ステップＳ４７において、受信コンポーネント２０でＮＡＫパケットがでないか、すなわち通信エラーにならないか否かが判断され、ＹＥＳのときはステップＳ５０に進む一方、ＮＯのときはステップＳ４８に進む。ステップＳ４８ではＮＡＫパケットを送出し、ステップＳ４９では、ＮＡＫパケットを複数回送出したか否かを判断し、ＮＯのときはステップＳ４６に戻る一方、ＹＥＳのときは元のメインルーチンに戻る。ステップＳ５０では、対向デバイスの再送バッファ１３の最大容量を測定し、ステップＳ５１では、対向デバイスの再送バッファ１３の最大容量を認識し、ステップＳ３４に進む。
【００６１】
すなわち、ステップＳ４１からステップＳ５１までは、対向デバイスの再送バッファ１３の自動的な最大容量の認識（検出）方法を示している。なお、変形例では、ステップＳ３８に示すように、ステップＳ４５からステップＳ５１にジャンプしてもよい。
【００６２】
以上のように構成された図９の処理では、送信コンポーネント１０及び受信コンポーネント２０で、それぞれ対向デバイスの再送バッファ１３を管理している場合、パケット通信を用いて、対向デバイスの再送バッファ１３の最大容量の情報の確認を行う。対向デバイスの再送バッファ１３の最大容量が認識できない場合、以下のような対向デバイスの拝送バッファを確認する方法を用いる。受信コンポーネント２０から、送信コンポーネント１０に対してパケット送信をさせるために、パケットを送信し、受信コンポーネント２０ではＡＣＫパケットを返さない構成としている。受信コンポーネント２０から、送信コンポーネント１０がパケット送信の初期シーケンスとして入るのは、受信コンポーネント２０の送信状況、送信コンポーネント１０からの通信が止まっている状況を確認して、初期シーケンス中に通信が発生した揚合、その状況を脱出する構成としている。上記初期シーケンスは自動的に入ることも可能なものとし、上位層もしくは、対向デバイスから制御可能な構成としてもよい。
【００６３】
本実施形態では、ＰＣＩエクスプレスでの実装をしているため、再送タイマーが実装されており、タイマー満了で再送は行われる。それにより送信コンポーネント１０が再送を起こすようにする。そのため、受信コンポーネント２０から、送信コンポーネント１０がパケット送信をさせるために、パケット送信に関しては、再送タイマーによる再送機能を用いて理論上転送可能な量のパケット要求を送出し、再送タイマー済了までに返ってきたパケットから判断する。要求したデータ量よりも小さいデータを受信ゴンポーネント２０で受信し、再送された場合、パケットの長さを変えて再度、送信コンポーネント１０からパケット転送させて、再送バッファ１３の最大容量を判断する。
【００６４】
上記の構成で、通常の通信において、対向デバイスの再送バッファ１３の最大容量（すなわちサイズ）を認識し、対向デバイスの再送バッブァ１３のデータ蓄積状況を把捉し、一定量を満たすと送信すること、また、受信コンポーネント２０からの送信を判断し、ＡＣＫパケットを送出する。さらに、対向デバイスの再送バッファ１３の最大容量を認識して、上位層に通知することにより受信コンポーネント２０から送信コンポーネント１０ヘパケット通信を行う際に、最適なパケットサイズでの転送が可能となる。これらを用いて、通信効率を高めることができる。
【００６５】
図１０は図１の通信システムの受信パケット管理部２２によるＴＬＰのサイズの管理処理を示すフローチャートである。
【００６６】
図１０において、ステップＳ６１で受信コンポーネント２０から送信コンポーネント１０へＴＬＰを送信し、ステップＳ６２で送信コンポーネント１０から受信コンポーネント２０で受信したＴＬＰのサイズを検出する。そして、ステップＳ６３で再送タイマー値と理論上転送可能なレートから算出したデータ容量に基づいて転送可能か否か（データ容量をレートで割り算すれば所要時間が計算できるので、その所要時間を再送タイマー値と比較して小さければ転送可能となる。）が判断され、ＹＥＳのときはステップＳ６４に進む一方、ＮＯのときはステップＳ６６に進む。ステップＳ６４では、送信コンポーネント１０の再送バッファ１３の最大容量は十分に大きいと判断し、通常状態でのパケット通信を行い、元のメインルーチンに戻る。
【００６７】
ステップＳ６６では、受信コンポーネント２０で受信したＴＬＰのサイズで送信コンポーネント１０にＴＬＰの長さを所定長だけ短くして送信し、ステップＳ６７で規定のデータ量を受信コンポーネント２０で受信したか否かが判断され、ＮＯのときはステップＳ６６に戻る一方、ＹＥＳのときはステップＳ６８に進む。ステップＳ６８で再送バッファ１３の認識についてはステップＳ６９に進み、それ以外についてはステップＳ７０に進む。ステップＳ６９では、受信コンポーネント２０で送信コンポーネント１０の再送バッファ１３のサイズ（最大容量）を認識し、受信コンポーネント２０で再送バッファ１３のデータ蓄積状態を認識できるために、しきい値に応じてＡＣＫパケットを送出できるために、再送バッファ１３の最適な使用が可能である。また、ステップＳ７０では、再送バッファ１３の最大容量をレジスタに設定し、送受信でのデータパケットの送受信での推奨長さを判別可能で送信コンポーネント１０及び受信コンポーネント２０ともに最適な長さでのパケット通信が可能である。
【００６８】
以上説明したように、図１０の処理では、互いに再送バッファ１３の情報を各デバイスで伝えることができる場合、図９での対向デバイスの再送バッファ１３の情報の通知方法を単純にパケット通信で実現することができ、図９と同様に通信効率を向上できる。
【００６９】
以上の実施形態において、対向デバイスの再送バッファ１３の最大容量を推定するときに、フロー制御を実装している通信システムにおいて、受信バッファの影響で通信の停止による誤認識を防ぐために、上記シーケンスにおいて、フロー制御の受信バッファを開放するように構成してもよい。
【００７０】
また、以上の実施形態において、受信コンポーネント２０は、再送バッファ１３の最大容量を推定し、それに応じた長さのデータパケットを送信するように上位層に通知してもよい。さらに、送信コンポーネント１０及び受信コンポーネント２０はそれぞれ対向デバイスの再送バッファ１３の最大容量の情報を有するとき、お互いに再送バッファの最大容量の情報を送受信してもよい。またさらに、送信コンポーネント１０及び受信コンポーネント２０はそれぞれ、それらの動作が上位層の装置又は対向するデバイスから制御可能であるように構成してもよい。
【００７１】
さらに、送信コンポーネント１０の動作評価のときに、再送バッファ１３の最大容量を推定するように構成してもよく、例えば、送信コンポーネント１０と受信コンポーネント２０とが通信可能に接続された通信システムにおける受信コンポーネント２０のための再送バッファ容量の測定装置を構成してもよい。
【００７２】
以上説明したように、本実施形態によれば、対向デバイスの再送バッファの最大容量を推定することができ、例えばＰＣＩエキクスプレスのようなＩＯインターフェースでは、様々なデバイスと接続することがあり、その接続に応じて、パケットの長さなどの通信の使用状況が変わってくる。対面デバイスの再送バッファの最大容量を推定することにより、以下のように通信効率を高めることができる。
【００７３】
また、受信コンポーネント２０から、送信コンポーネント１０がパケット送信をさせるために、パケットを送信し、受信コンポーネント２０では応答要求を返さない構成において、受信コンポーネント２０から送信コンポーネント１０がパケットを送信をさせるためにパケットを送信する。パケットの大きさは、再送タイマー満了までに理論上送信可能なパケットサイズで行う。できるだけ少ないパケットを送信させる上記初期化シーケンスから開始するので、上記初期化シーケンスの時間短縮ができる。
【００７４】
さらに、上記対向デバイスの再送バッファの最大容量を推定し、そのデータ蓄積状況に応じて、上記受信装置から肯定応答を送出することにより、送信コンポーネント１０の再送バッファにデータが満たされることによる通信効率の低下を防ぐことが可能である。
【００７５】
またさらに、対向デバイスの再送バッファのデータ蓄積状況と、次に受信コンポーネントから転送するパケットから判断し、肯定応答を送出するが、対向デバイスの再送バッファのデータ蓄積量が一定量を超えてしまっても、受信コンポーネント２０から長いパケットを送信している間に再送バッファが満たされ、送信コンポーネント１０から送信するパケット通信が止まる可能性がある。これを回避することができる。
【００７６】
また、対向デバイスの再送バッファの最大容量とデータ蓄積容量を推定し、これを利用して、最適な長さのパケットを上位層へ伝えることができる。この通知により、上位層から最適なパケットサイズでの転送が行えるため、通信効率を高めることができ、この情報は、当該装置のデバイス上位層及び対向デバイスヘも通知可能である。
【００７７】
さらに、受信コンポーネント２０の受信バッファの影響で、通信が止まることを防ぐため、受信バッファの開放をさせるものとする。また、通信システムとして双方のデバイスで再送バッファの最大容量及びデータ蓄積容量を通知可能にすることで、上記初期シーケンスを省くことができる。さらに、上位層もしくは対向デバイスにより、対向デバイスの再送バッファ認識のシーケンスを実施可能又は停止可能である。
【産業上の利用可能性】
【００７８】
以上詳述したように、本発明に係る通信システムに及び再送バッファ容量の測定装置によれば、送信装置と受信装置とが通信可能に接続された通信システムにおいて、上記送信装置は、データパケットを上記受信装置に送信するためのパケット送信部と、上記受信装置へ送信されるデータパケットを再送用として保持する再送バッファと、上記受信装置へ送信されるデーダパケットに管理番号を割り当てる再送バッファ管理部を備え、上記受信装置は、上記送信装置からのデータパケットを受信して、当該データパケットの正当性を判断する正当性判断部と、上記正当性判断部での判断結果に基づいて、上記パケットが承認されたことを示す肯定応答又は否定を示す否定応答を所定の間隔で上記送信装置に送信する確認応答送信部と、データパケットを上記送信装置に送信するためのパケット送信部とを備え、上記受信装置は上記送信装置からのデータパケットを受信したとき、上記送信装置の再送をさせるために肯定応答又は否定応答である受信応答を行わず、上記送信装置は上記送信装置の再送タイマーの満了後に上記送信装置の再送バッファに格納された所定量のデータパケットを再送信し、上記受信装置は上記送信装置から再送信された所定量のデータパケットを受信し、上記受信した所定量のデータパケットの容量を上記送信装置の再送バッファの最大容量として推定する。従って、対向デバイスの再送バッファの最大容量を推定することができ、例えばＰＣＩエキクスプレスのようなＩＯインターフェースでは、様々なデバイスと接続することがあり、その接続に応じて、パケットの長さなどの通信の使用状況が変わってくる。対面デバイスの再送バッファの最大容量を推定することにより、通信効率を高めることができる。
【符号の説明】
【００７９】
１０…送信コンポーネント、
１１…パケット受信部、
１２…パケット送信部、
２０…受信コンポーネント、
２１…パケット送信部、
２１ａ…確認応答送信部、
２２…受信パケット管理部２２、
２２ａ…シーケンスナンバー管理部、
２３…正当性判断部、
２４…再送バッファ状況管理部、
２５…ＡＬタイマー管理部、
２５ｔ…ＡＬタイマー、
２６…応答送信制御部、
２６ａ…シーケンスナンバー管理部２６ａ。
【先行技術文献】
【特許文献】
【００８０】
【特許文献１】特開２００１−１１１６１８号公報。
【特許文献２】特開２００７−１８０６１１号公報。
【非特許文献】
【００８１】
【非特許文献１】"PCI Express Base Specification Revision 2.0", Peripheral Component Interconnect-Special Interest Group (PCI-SIG), December 2006.
【非特許文献２】荒井信隆ほか，「改訂新版  ＰＣＩ  Ｅｘｐｒｅｓｓ入門講座  Ｇｅｎ２増補」，株式会社電話新聞社発行，８６〜１０３頁，２００８年６月２０日発行。
【図１】
0005532775.tif 000002
【図２】
0005532775.tif 000003
【図３】
0005532775.tif 000004
【図４】
0005532775.tif 000005
【図５】
0005532775.tif 000006
【図６】
0005532775.tif 000007
【図７】
0005532775.tif 000008
【図８】
0005532775.tif 000009
【図９】
0005532775.tif 000010
【図１０】
0005532775.tif 000011