説明

送信装置、通信システム、送信方法及び送信プログラム

【課題】最適な転送性能の下での情報転送ができる送信装置、通信システム、送信方法及び送信プログラムを提供する。
【解決手段】送信装置100は、受信装置に対してデータ送信を行い、受信装置がさらに受信可能なデータ量である受信許容量が第1の閾値以下である場合に、受信装置に対する前記データ送信を停止する。この送信装置100は、複数のデータパケットを所定のスループットで送信することによりデータ送信を行う送信部102、複数のデータパケットを受信している受信装置から受信許容量を受信する受信部101、受信許容量が第1の閾値を超える第2の閾値以下である場合に、スループットを低下させるスループット調整部103とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、送信装置、通信システム、送信方法及び送信プログラムに関し、特に最適な転送性能による情報転送技術に関する。
【背景技術】
【0002】
従来より、情報転送能力の異なる装置間における情報転送方法が種々提案されている。
【0003】
例えば、USB3.0(Super Speed)規格では、データパケットを連続的に送受信するバースト転送が定義されている。このバースト転送のうちOUT転送、すなわちホストからデバイスへのバースト転送においては、通常、ホストはデータパケットの間隔を可能な限り最短にして、すなわち最速で、複数のデータパケットを連続的に送信し、スループットを最大化する。
【0004】
このとき、データパケットを受信する側のデバイスにおいては、受信したデータパケットをいったん動作速度の速い受信バッファに格納し、受信バッファから順次データパケットを取り出してから、所定の処理を実施する。ここで、デバイスにおけるデータパケットの受信速度(スループット)が、ホストのデータパケットの送信速度(スループット)より低い場合、デバイスの受信バッファの空き容量が徐々に減少する。最終的に、デバイスの受信バッファがフルになると、それ以上のデータパケットの受信は不能になる。このとき、ホストがデータパケットの送信を続ければパケットのロス等が発生し、様々な問題が発生しかねない。そこで、ホストとしては、かかる問題を回避するため、一時的にデータ送信を中断する等の措置を講じる必要がある。
【0005】
例えばUSB3.0規格では、デバイスの受信バッファがフルになった時点で、デバイスはホストに、バッファフル状態を通知するためのパケットを送信する。これを契機に、ホストはフローコントロール状態に遷移し、一時的にデータ送信は中断される。フローコントロールとは、ホストがデータパケットの送信を中断し、デバイスから送信再開の指示を示すERDYパケットを受信するまで、さらなるデータパケットの送信を停止することである。受信バッファに空きが出た時点で、デバイスはホストに上述のERDYとよばれるパケットを送信し、これを契機に、ホストはフローコントロール状態を脱する、すなわちデータパケットの送信を再開することとなっている。
【0006】
また、特許文献1には、受信部内の受信バッファの空き容量が第1の容量以下になった場合に、送信部によるデータブロックの送信を停止させ、前記空き容量が第2の容量以上になった場合に、前記送信を再開させる構成が開示されている。
【0007】
また、特許文献2には、送信モジュールが次に転送しようとするデータのデータ長が、受信モジュール内の受信データバッファの残容量以下である場合、受信モジュールは送信モジュールに対し受信データバッファビジー信号を送出し、送信モジュールはデー手転送を中断する構成が記載されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2005−184354号公報
【特許文献2】特開平10−049344号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、上述のUSB3.0規格や特許文献記載の技術のように、デバイスのバッファの容量不足を検出したときに、ホストがデータ送信を一時停止する機能を有する場合においては、限界転送性能の高いホストを用いてデータ送信を行うよりも、限界転送性能の低いホストを用いてデータ送信を行うほうが、全体として高い通信速度、すなわち転送性能が得られるケースがある。
【0010】
出願人は、この原因を調査した結果、データ送信の一時停止及び再開の際に、ホストが実行する各種処理のための処理時間(オーバヘッド)が発生し、これが転送性能に影響していることが判明した。
【0011】
例えば、図7に示すように、USB3.0のSuper Speed転送では、デバイスがデータパケットを正常受信した際ホストに送信するACKパケット内に、NumPと呼ばれるフィールドが定義されている。これは、デバイスの受信バッファにおいて、残り何パケット分の空きがあるかを示す値である。ホストは、このNumPが1以上である場合はその数を上限とするパケットを連続送信することが可能であるが、NumPが0となった場合はフローコントロール状態へ遷移する。フローコントロール状態に遷移したホストは、データパケットのバースト転送を一時停止する。その後、フローコントロール状態を解除するためのERDYパケットをデバイスから受信したときに、データパケットの送信を再開する。このとき、ホストコントローラ内部では転送情報の取得や転送データの取得など、転送再開に必要な一連の処理を行うが、この際に一定のオーバヘッドが発生するのである。このオーバヘッドが頻繁に発生するならば、全体としての通信速度に悪影響を及ぼす。
【0012】
フローコントロール状態への遷移は、ホストコントローラの限界転送性能が高く、デバイス側の受信性能とのギャップが大きい場合ほど、より頻繁に発生する。そのため、結果的に、限界転送性能の低いホストコントローラのほうが、ホスト側のスループットとデバイス側のスループットが適度に拮抗し、フローコントロール状態へ遷移する頻度が少なくなるため、転送の一時停止ないし再開によるオーバヘッドが少ない分、全体としては高い転送性能が得られる場合があるのである。
【0013】
そこで、最適な転送速度を得るため、ホストがフローコントロール状態に遷移する頻度を低下させ、転送の一時停止ないし再開によるオーバヘッドを極小化することが求められる。
【課題を解決するための手段】
【0014】
本発明に係る送信装置は、受信装置に対してデータ送信を行い、前記受信装置がさらに受信可能なデータ量である受信許容量が第1の閾値以下である場合に、前記受信装置に対する前記データ送信を停止する送信装置であって、複数のデータパケットを所定のスループットで送信することにより前記データ送信を行う送信部と、前記複数のデータパケットを受信している前記受信装置から前記受信許容量を受信する受信部と、前記受信許容量が前記第1の閾値を超える第2の閾値以下である場合に、前記スループットを低下させるスループット調整部とを含むものである。
【0015】
本発明においては、受信部が受信した受信許容量に基づいて、スループット調整部が、スループットを低下させるよう送信部を制御することにより、フローコントロール状態に遷移する頻度を下げ、又はフローコントロール状態への遷移を回避することができる。
【0016】
本発明に係る通信システムは、上述の送信装置と、前記送信装置が送信するデータパケットを受信する受信装置であって、前記受信装置がさらに受信可能なデータ量である受信許容量を前記送信装置に対して送信する受信装置とを含むものである。
【0017】
本発明においては、受信装置が送信した受信許容量に基づいて、送信装置のスループット調整部が、スループットを低下させるよう送信部を制御することにより、フローコントロール状態に遷移する頻度を下げ、又はフローコントロール状態への遷移を回避することができる。
【0018】
本発明にかかる送信方法は、複数のデータパケットを所定のスループットで送信することによりデータ送信を行うステップと、前記複数のデータパケットを受信している受信装置から、前記受信装置がさらに受信可能なデータ量である受信許容量を受信するステップと、前記受信許容量が第2の閾値以下である場合に、前記スループットを低下させるステップとを含むものである。
【0019】
本発明においては、受信部が受信した受信許容量に基づいて、スループット調整部が、スループットを低下させるよう送信部を制御することにより、フローコントロール状態に遷移する頻度を下げ、又はフローコントロール状態への遷移を回避する方法を提供することができる。
【0020】
本発明に係る送信プログラムは、コンピュータに、上述の送信方法を実行させるものである。
【0021】
本発明においては、受信部が受信した受信許容量に基づいて、スループット調整部が、スループットを低下させるよう送信部を制御することにより、フローコントロール状態に遷移する頻度を下げ、又はフローコントロール状態への遷移を回避するプログラムを提供することができる。
【発明の効果】
【0022】
本発明により、特に最適な転送性能の下での情報転送ができる送信装置、通信システム、送信方法及び送信プログラムを提供することができる。
【図面の簡単な説明】
【0023】
【図1】実施の形態1の構成を示す図である。
【図2】実施の形態1の処理を示すシーケンス図である。
【図3】実施の形態1の処理を示すフローチャートである。
【図4】実施の形態2の構成を示す図である。
【図5】実施の形態2の処理を示すシーケンス図である。
【図6】実施の形態2の処理を示すフローチャートである。
【図7】従来の処理を示すシーケンス図である。
【発明を実施するための形態】
【0024】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【0025】
<実施の形態1>
図1を用いて、本発明の実施の形態1にかかる送信装置100の構成について説明する。
【0026】
送信装置100は、図示しない受信装置に対してデータパケットを送信する装置であり、典型的にはUSBホストコントローラである。また、典型的な受信装置はUSB3.0デバイスである。以下、本実施の形態においては、送信装置100として主にUSBホストコントローラを、受信装置として主にUSBデバイスを例として説明を行う。
【0027】
送信装置100は、受信装置に対してデータパケットを送信する送信部102、受信装置からパケットを受信する受信部101、及び送信部102を制御するスループット調整部103を有する。
【0028】
送信部102は、受信装置に対してデータパケットを送信する機能を備える。例えばUSBホストコントローラの場合であれば、送信部102は、USBホスト処理を実行するUSBホスト処理部、USBホスト処理部の指示に従ってデータパケットの送信を実行する送信処理部を含む。また、送信処理部は、送信すべきデータパケットを一時的に格納する送信バッファを備えることが望ましい。
【0029】
受信部101は、受信装置からデータパケットを受信する機能を備える。例えばUSBホストコントローラの場合であれば、受信部101は、データパケットを受信処理を実行する受信処理部、受信処理部が受信したデータパケットの内容を解析し、その情報を送信部102のUSBホスト処理部及び後述のスループット調整部103に転送する解析処理部を含む。本実施の形態では、解析処理部は、受信装置から受信したACKパケットの情報、例えばNumP情報をスループット調整部103に転送する。
【0030】
スループット調整部103は、送信部102に対して、データパケットの送信処理を制御するための指示を出力する機能を備える。本実施の形態では、スループット調整部103は、受信部101から、より具体的には解析処理部から、受信装置から受信したACKパケットに含まれるNumPフィールドの情報を受信する。スループット調整部103は、このNumP情報を基に、受信装置が現時点でさらに受信可能なデータ量を確認し、必要に応じて送信部102を制御する。具体的には、本実施の形態のスループット調整部103は、データパケットの送信速度すなわちスループットを低下させるよう送信部102を制御する。
【0031】
ここで、受信装置について説明する。受信装置は、送信装置100からデータパケットを受信して所定の処理を行う機能を備える。典型的な受信装置は、受信装置と送信装置100との通信速度のギャップを緩和するため、受信バッファを備えている。データパケットは、いったんこの受信バッファに格納されたのち、必要に応じて取り出され、所定の処理に供される。また、受信装置は、受信装置が現時点でさらに受信可能なデータ量を送信装置100に通知する機能を備える。例えばUSB3.0デバイスの場合であれば、受信装置は送信装置100からデータパケットを受信すると、これに対応するACKパケットを送信装置100に送信するところ、このACKパケットのNumPと呼ばれるフィールドに、受信バッファの空き容量、より具体的には現時点で受信バッファにさらに格納可能なデータパケットの数を設定する。なお、このACKパケットは、データパケットを受信する度に送信しても良く、あるいは複数のデータパケットを連続受信した後に複数のACKパケットを送信することとしても良い。いずれの場合であっても、1つのデータパケットに対して、1つの対応するACKパケットが送信される。
【0032】
つづいて、図2のシーケンス図及び図3のフローチャートを用いて、本発明の実施の形態1にかかる送信装置100の処理について説明する。
【0033】
S101(図3):まず、送信装置100の送信部102は、受信装置に対して、バースト転送によるデータパケット送信を開始する。通常、バースト転送においては、送信部102は、データパケットの送信間隔を可能な限り短くし、複数のデータパケットを連続的に高速で送信する。
【0034】
受信装置は、データパケットを受信すると、送信装置100に対して、受信装置が現時点でさらに受信可能なデータ量を送信する。具体的には、NumPフィールドに受信バッファの空き容量を設定したACKパケットを送信装置100に対して送信する。
【0035】
ここで、送信装置100に比較して受信装置のスループットが低い場合、受信装置の受信バッファの空き容量は徐々に減少する。これに伴い、受信装置が送信装置100に通知するNumPの値も、徐々に低下する(図2参照)。
【0036】
S102(図3):送信装置100の受信部101は、受信装置からACKパケットを受信する。受信部101は、このACKパケットの内容を解析し、NumPフィールドの値を参照する。
【0037】
S103(図3):ここで、NumP=0、すなわち受信バッファの空き容量が0であった場合、送信装置100はUSB3.0の仕様に従いフローコントロール状態に遷移することになる。すなわち、送信装置100は、データパケットの送信を中断し、受信装置から送信再開の指示を示すERDYパケットを受信するまで、さらなるデータパケットの送信を停止する。
【0038】
なお、ここでは、USB3.0規格にならい、フローコントロール状態に遷移するNumPの閾値を0として説明したが、この閾値は0以外の任意の値であってもよい。この場合、送信装置100は、NumPが当該閾値以下になったとき、フローコントロール状態に遷移する。
【0039】
S104(図3):一方、NumPが予め定められた閾値X以下であった場合、送信装置100のスループット調整部103は、送信部102を制御して、データパケットのスループットを低下させる。ここで、閾値Xは、受信バッファの容量がこれ以下である場合は、残り容量が少なく、バースト転送を続行するならばフローコントロール状態に遷移する蓋然性が高いことを意味する。そこで、閾値Xは、フローコントロール状態への遷移の契機となるNumPの閾値(本実施の形態では、当該閾値が0である場合を例として説明するが、当該閾値は0以外の任意の値であってもよい)を超える値に設定される。送信装置100は、NumPがX以下であるときにはスループットを低下させる処理を行うため、通常のバースト転送を行う場合に比較して、NumPが0に達してフローコントロール状態に遷移する頻度が低下する。
【0040】
ここで、送信装置100のスループット調整部103がスループットを低下させる処理について説明する。この処理は、具体的には、単位時間あたりに送信されるデータパケットの数を低下させることにより実現できる。より具体的には、例えばデータパケットを送信後、次のデータパケットを送信するまでの間に所定の待ち時間を挿入する、すなわち送信間隔を設定することにより実現可能である。通常のバースト転送時には、この送信間隔は0である。一方、NumPが閾値X以下である場合には、スループット調整部103は送信間隔として時間Nを設定する。このとき、データパケットの送信は、前のデータパケットが送信されてからN時間後に開始される。また、スループット調整部103はこの送信間隔Nを記憶しておき、NumPが再度閾値X以下であった場合には、送信間隔をNより長い時間、例えば2Nに更新することができる。これにより、NumPが閾値X以下である間は送信間隔が順次延長されてゆくため、フローコントロール状態に遷移する頻度をより低下させるか、フローコントロール状態に遷移することを回避することができるようになる。
【0041】
なお、もし受信部101が受信したNumPの値が、前回受信したNumPの値と一致するものであった場合には、スループット調整部103は、送信間隔Nを変更しないことが望ましい。NumPが変動しない場合、送信装置100と受信装置とのスループットが均衡しており、送信間隔Nが最適値であると考えられるからである。
【0042】
他方、NumPが閾値X以下となっていない場合は、スループット調整部103はスループット制御をおこなわず、通常のバースト転送を行うことができる。
【0043】
本実施の形態においては、受信部101が受信したNumPの値に基づいて、スループット調整部103が、スループットを低下させるよう送信部102を制御することにより、フローコントロール状態に遷移する頻度を下げ、又はフローコントロール状態への遷移を回避することができる。
【0044】
<実施の形態2>
つぎに、本発明の実施の形態2にかかる送信装置100の構成について説明する。
【0045】
実施の形態2にかかる送信装置100は、実施の形態1と同様の構成を備える。ただし、実施の形態2におけるスループット調整部103は以下の特徴を有する。
【0046】
スループット調整部103は、データパケットの送信速度すなわちスループットを低下させる制御に加え、NumPの値に応じて、スループットを上昇させる制御を行うことができる。これにより、送信装置100は、スループットを低下させすぎることなく、最適なスループットを維持することが可能になる。
【0047】
図5のシーケンス図及び図6のフローチャートを用いて、本発明の実施の形態2にかかる送信装置100の処理について説明する。
【0048】
S101〜S104(図6):送信装置100は、実施の形態1と同様に動作する。すなわち、送信部102は、通常、バースト転送によるデータパケット送信を行う。受信部101は、受信したACKパケットを解析し、NumPフィールドの値をスループット調整部103に転送する。スループット調整部103は、NumPが閾値X以下であった場合、送信部102を制御してスループットを低下させる。これに伴い、受信装置が送信装置100に通知するNumPの値も、徐々に上昇する(図5参照)。
【0049】
S105(図6):NumPが閾値X以下でない場合、スループット調整部103は以下の処理を行う。NumPが予め定められた閾値Y以上であるなら、スループット調整部103は、送信部102を制御して、データパケットのスループットを上昇させる。ここで、閾値Yは、受信バッファの容量がこれ以上となった場合は、受信バッファの残り容量が十分に増加していることを意味する。そこで、閾値Yは、閾値Xを超える値に設定される。これにより、スループット調整部103が過度に頻繁に作動することを防ぎ、安定したデータ送信を実現することができる。本実施の形態の送信装置100は、NumPがY以上であるときにはスループットを上昇させる処理を行うため、受信バッファの空き容量の状態に応じてスループットを調整し、最適なスループットを維持することが可能である。
【0050】
ここで、スループット調整部103がスループットを上昇させる処理について説明する。この処理は、具体的には、実施の形態1における処理とは反対に、単位時間あたりに送信されるデータパケットの数を上昇させることにより実現できる。より具体的には、例えばデータパケットを送信後、次のデータパケットを送信するまでの間に挿入される所定の待ち時間、すなわち送信間隔を短縮させることにより実現可能である。NumPが閾値Y以上である場合には、スループット調整部103は送信間隔2Nを、2Nより短い時間、例えばNに設定する。また、スループット調整部103はこの送信間隔を記憶しておき、NumPが再度閾値X以下であった場合には、送信間隔をさらに短い時間、例えば0に更新することができる。なお、送信間隔が既に0である場合には、スループット調整部103は、送信間隔短縮の処理を行う必要はない。これにより、NumPが閾値Y以上である間は送信間隔が順次短縮されてゆくため、受信バッファの状態に応じてスループットを漸次回復させ、適切なスループットでデータ送信を行うことができる。
【0051】
本実施の形態においては、受信部101が受信したNumPの値に基づいて、スループット調整部103が、スループットを上昇させるよう送信部102を制御することにより、状況に応じてスループットを回復させ、適切なスループットでデータ送信を行うことができる。
【0052】
<実施の形態3>
つぎに、本発明の実施の形態3にかかる送信装置100の構成について説明する。
【0053】
実施の形態3にかかる送信装置100は、実施の形態1又は2と同様の構成に加え、閾値X又はYの少なくとも一方を変化させる閾値調整部104を備える。以下、本実施の形態では、主に実施の形態2の構成を備え、閾値X及びYを調整する閾値調整部104を有する送信装置100を例として説明を行う。
【0054】
閾値調整部104は、スループット調整部103がスループットを調整する際に参照する閾値X及びYを、状況に応じて適切な値に設定する機能を備える。ここで、適切な閾値の値は、例えば以下のような方法により決定することができる。
【0055】
適切な閾値を決定する第1の方法は、送信装置100がフローコントロール状態に遷移する頻度が一定以上である場合に、閾値調整部104が、閾値X及びYを上昇させることである。頻繁にフローコントロール状態に遷移するのは、閾値Xが低すぎるためと考えられるからである。
【0056】
具体的には、送信装置100が現在の閾値のもとでデータ送信を実行し、フローコントロール状態に遷移する頻度が所定の頻度以上、例えば単位時間内に2回以上となった場合、閾値調整部104は、閾値X及びYを現在の値より大きな値で更新する。例えば、現在の閾値Xが1であれば2に、閾値Yが3であれば4に上昇させることができる。ここで、所定の頻度、閾値X及びYの初期値及び上昇幅等は適宜決定することができる。例えば、閾値Xの初期値を高く設定すれば、フローコントロール状態に遷移する頻度は低くなると期待できるが、仮に高すぎれば送信装置100の転送性能を生かし切ることができなくなる。そこで、稼働環境等を考慮しつつ、これらのパラメータを適切に設定する必要がある。
【0057】
かかる処理により、NumPが閾値X以下に達してからフローコントロール状態に遷移するまでの幅を自在に設定することができるので、フローコントロール状態に遷移する頻度を下げ、又はフローコントロール状態への遷移を回避することができる。
【0058】
適切な閾値を決定する第2の方法は、閾値XとYとの組合せを予め複数用意しておき、これらの組の中から最適な組を1つ選択して、閾値X及びYを決定することである。すなわち、閾値XとYとの組合せのうち、全体としての通信性能が最も良くなる組合せを試行錯誤により決定する。
【0059】
具体的には、(X,Y)の組合せを予め複数準備する。一例として、(X,Y)=(1,2)、(2,3)、及び(3,4)の3つの組を、図示しない記憶領域に予め格納しておく。以下、これらの組をそれぞれsetting1、setting2及びsetting3と呼ぶ。
【0060】
つぎに、送信装置100が、それぞれの組を用いて一定数のパケット送信を試行し、閾値調整部104が、それぞれに要した転送時間を計測、保存する。例えば、まずsetting1を用いてM個のパケットの転送を行い、転送時間T1を保存する。つぎにsetting2を用いてM個のパケットの転送を行い、転送時間T2を保存する。同様にsetting3を用いてM個のパケットの転送を行い、転送時間T3を保存する。
【0061】
つづいて、閾値調整部104は、保存された前記転送時間を比較し、最も短い転送時間に対応する(X,Y)の組を特定する。以後、閾値調整部104は、かかる(X,Y)の組を用いてデータ転送を実行する。
【0062】
なお、閾値調整部104は、以後のデータ転送においても同様に転送時間を計測、保管し、当該転送時間を、現在利用している(X,Y)の組に対応する転送時間に随時反映することとしても良い。この場合、閾値調整部104は、保存されている前記転送時間を随時比較し、その時点において最も最も短い転送時間に対応する(X,Y)の組を再度特定し、以後、かかる(X,Y)の組を用いてデータ転送を実行することとしても良い。
【0063】
また、上記説明においては、閾値調整部104は転送時間を計測、保存することとしたが、スループットを示す別の指標、例えば転送速度等を計測、保存しても良い。また、上記説明においては、閾値調整部104は(X,Y)の組に対応する転送時間を計測、保存し、最適値を決定することとしたが、実施の形態1のように閾値Yを用いない場合には、閾値Xのみについて転送時間を計測、保存し、最適なXを決定することとしても良い。
【0064】
かかる処理により、最も転送時間が短くなる閾値X及びYを用いてデータ転送を行うことが可能となる。
【0065】
本実施の形態においては、閾値調整部104が適切な閾値X及びYを設定することにより、適切なスループットでデータ送信を行うことができる。
【0066】
<その他の実施の形態>
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【0067】
また、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【0068】
100 送信装置
101 受信部
102 送信部
103 スループット調整部
104 閾値調整部

【特許請求の範囲】
【請求項1】
受信装置に対してデータ送信を行い、前記受信装置がさらに受信可能なデータ量である受信許容量が第1の閾値以下である場合に、前記受信装置に対する前記データ送信を停止する送信装置であって、
複数のデータパケットを所定のスループットで送信することにより前記データ送信を行う送信部と、
前記複数のデータパケットを受信している前記受信装置から前記受信許容量を受信する受信部と、
前記受信許容量が前記第1の閾値を超える第2の閾値以下である場合に、前記スループットを低下させるスループット調整部とを含む
送信装置。
【請求項2】
前記スループット調整部はさらに、前記受信許容量が前記第2の閾値を超える第3の閾値以上である場合に、前記スループットを上昇させる
請求項1記載の送信装置。
【請求項3】
前記第2の閾値を設定する閾値調整部をさらに含み、
前記閾値調整部は、前記受信許容量が所定の頻度を超えて前記第1の閾値以下となった場合に、前記第2の閾値を上昇させる
請求項1記載の送信装置。
【請求項4】
前記第2の閾値を設定する閾値調整部をさらに含み、
前記閾値調整部は、前記第2の閾値と、前記第2の閾値を用いて前記データパケットを一定数連続的に送信した際の所要時間との組を複数記憶しており、前記所要時間に基づいて適切な前記第2の閾値を選択する
請求項1記載の送信装置。
【請求項5】
前記第2の閾値及び前記第3の閾値を設定する閾値調整部をさらに含み、
前記閾値調整部は、前記受信許容量が所定の頻度を超えて前記第1の閾値以下となった場合に、前記第2の閾値及び前記第3の閾値を上昇させる
請求項2記載の送信装置。
【請求項6】
前記第2の閾値及び前記第3の閾値を設定する閾値調整部をさらに含み、
前記閾値調整部は、前記第2の閾値、前記第3の閾値、並びに前記第2の閾値及び前記第3の閾値を用いて前記データパケットを一定数連続的に送信した際の所要時間との組を複数記憶しており、前記所要時間に基づいて適切な前記第2の閾値及び前記第3の閾値を選択する
請求項2記載の送信装置。
【請求項7】
前記スループット調整部は、単位時間あたりに送信される前記データパケットの数である送信頻度を低下又は上昇させることにより、前記スループットを低下又は上昇させる
請求項1乃至6いずれか1項記載の送信装置。
【請求項8】
前記スループット調整部は、前記データパケット間に挿入される時間である送信間隔を延長又は短縮することにより、前記送信頻度を低下又は上昇させ、前記スループットを低下又は上昇させる
請求項7記載の送信装置。
【請求項9】
前記受信許容量は、前記受信装置が受信した前記データパケットを処理前に一時的に格納するバッファの空き容量を示す値である
請求項1乃至8いずれか1項記載の送信装置。
【請求項10】
USB3.0規格に準拠したことを特徴とする
請求項1乃至9いずれか1項記載の送信装置。
【請求項11】
前記受信許容量は、前記受信装置が前記データパケットを受信した際に前記送信装置に送信するACKパケットに含まれる
請求項1乃至10いずれか1項記載の送信装置。
【請求項12】
請求項1乃至11いずれか1項記載の送信装置と、
前記送信装置が送信するデータパケットを受信する受信装置であって、前記受信装置がさらに受信可能なデータ量である受信許容量を前記送信装置に対して送信する受信装置とを含む
通信システム。
【請求項13】
複数のデータパケットを所定のスループットで送信することによりデータ送信を行うステップと、
前記複数のデータパケットを受信している受信装置から、前記受信装置がさらに受信可能なデータ量である受信許容量を受信するステップと、
前記受信許容量が第2の閾値以下である場合に、前記スループットを低下させるステップとを含む
送信方法。
【請求項14】
前記受信許容量が前記第2の閾値を超える第3の閾値以上である場合に、前記スループットを上昇させるステップをさらに含む
請求項13記載の送信方法。
【請求項15】
前記受信許容量が所定の頻度を超えて前記第2の閾値より小さい第1の閾値以下となった場合に、前記第2の閾値を上昇させるステップをさらに含む
請求項13記載の送信方法。
【請求項16】
前記第2の閾値と、前記第2の閾値を用いて前記データパケットを一定数連続的に送信した際の所要時間との組を複数記憶しており、前記所要時間に基づいて適切な前記第2の閾値を選択するステップをさらに含む
請求項13記載の送信方法。
【請求項17】
前記受信許容量が所定の頻度を超えて前記第2の閾値より小さい第1の閾値以下となった場合に、前記第2の閾値及び前記第3の閾値を上昇させるステップをさらに含む
請求項14記載の送信方法。
【請求項18】
前記第2の閾値、前記第3の閾値、並びに前記第2の閾値及び前記第3の閾値を用いて前記データパケットを一定数連続的に送信した際の所要時間との組を複数記憶しており、前記所要時間に基づいて適切な前記第2の閾値及び前記第3の閾値を選択するステップをさらに含む
請求項14記載の送信方法。
【請求項19】
前記スループットを低下又は上昇させるステップにおいては、単位時間あたりに送信される前記データパケットの数である送信頻度を低下又は上昇させる
請求項13乃至18いずれか1項記載の送信方法。
【請求項20】
前記スループットを低下又は上昇させるステップにおいては、前記データパケット間に挿入される時間である送信間隔を延長又は短縮することにより、前記送信頻度を低下又は上昇させる
請求項19記載の送信方法。
【請求項21】
コンピュータに、請求項13乃至20いずれか1項記載の方法を実行させる
送信プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−81131(P2013−81131A)
【公開日】平成25年5月2日(2013.5.2)
【国際特許分類】
【出願番号】特願2011−220993(P2011−220993)
【出願日】平成23年10月5日(2011.10.5)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】