(57)【要約】【課題】ＵＳＢ通信の通信時間を短縮する。【解決手段】本通信方法は、ホスト装置（１１）と、ｎ個のターゲット装置（ＴＧＴ＿１〜ＴＧＴ＿３）とがスイッチングハブ（１２）を介してＵＳＢ通信を行うための通信方法であって、ターゲット装置毎にホスト装置とデータの送受信が可能な第１通信モードと、複数のターゲット装置のデータをまとめてホスト装置に送信可能な第２通信モードとが切り替え可能にされる。本通信方法は、以下の処理を含む。ホスト装置が一のターゲット装置と通信を行うとき、他のターゲット装置に対して通信モードを指示する処理。第２通信モードが指示された場合に、他のターゲット装置が夫々の転送データを１つのターゲット装置の記憶部にまとめて格納する処理。前記通信の完了後、前記１つのターゲット装置が、自らの転送データと前記格納した転送データをまとめてホスト装置に送信する処理。【選択図】図１
2014168144.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置と、一時的にデータを格納するための記憶部を備えるｎ個（ｎは３以上の整数）のターゲット装置とが、スイッチングハブを介してＵＳＢ規格に従ったデータの送受信を行うための通信方法であって、
前記ホスト装置と前記ｎ個のターゲット装置とは、前記ターゲット装置毎に前記ホスト装置とデータの送受信が可能な第１通信モードと、複数のターゲット装置のデータをまとめてホスト装置に送信可能な第２通信モードとを切り替えて通信可能とされ、
前記ホスト装置が、一のターゲット装置と通信を行うとき、前記一のターゲット装置以外の他のターゲット装置に対して通信モードを指示する第１処理と、
前記ホスト装置が、前記一のターゲット装置と通信を開始する第２処理と、
前記第１処理において前記第２通信モードが指示された場合に、前記他のターゲット装置が、相互に通信を行うことにより、夫々が保有する前記ホスト装置に転送するための転送データを１つの前記他のターゲット装置内の前記記憶部にまとめて格納する第３処理と、
前記ホスト装置と前記一のターゲット装置の通信の完了後、前記第３処理において前記転送データを前記記憶部にまとめて格納したターゲット装置が、自らの転送データと前記記憶部に格納した転送データとをまとめて前記ホスト装置に送信する第４処理と、を含む通信方法。
【請求項２】
前記１つの前記他のターゲット装置は、前記他のターゲット装置の中で前記記憶部の記憶容量が最も大きくされる請求項１に記載の通信方法。
【請求項３】
前記第３処理は、
前記他のターゲット装置が、夫々の保有する前記記憶部の記憶容量の大きさを示す記憶容量の情報を相互に送受信する第５処理と、
前記他のターゲット装置が、前記記憶容量の情報に基づいて自らの前記記憶部の記憶容量が最も大きいか否かを判別し、前記記憶容量が最も大きいと判断したターゲット装置が、それ以外のターゲット装置に対して、転送データの蓄積が可能であることを通知する第６処理と、
前記それ以外のターゲット装置が、前記ホスト装置に転送するための転送データを前記記憶容量が最も大きいと判断したターゲット装置に送信し、前記記憶容量が最も大きいと判断したターゲット装置が、受信した前記転送データを前記記憶部に格納する第７処理と、を含む請求項２に記載の通信方法。
【請求項４】
前記第１処理において、前記ホスト装置は、前記他のターゲット装置に対して、前記ホスト装置と通信が可能になるまでの待機時間を示す情報を更に送信し、
前記第７処理において、前記それ以外のターゲット装置は、前記待機時間を示す情報に基づいて、前記ホスト装置と前記一のターゲット装置の通信が完了するまでに送信可能なデータ量を算出するとともに、前記算出したデータ量に応じた前記転送データを、前記記憶容量が最も大きいと判断したターゲット装置に対して送信するデータとする請求項３に記載の通信方法。
【請求項５】
前記待機時間を示す情報は、前記ホスト装置と前記一のターゲット装置との通信で予定されているトランザクション数の情報を含む請求項４に記載の通信方法。
【請求項６】
前記待機時間を示す情報は、前記ホスト装置と前記一のターゲット装置との通信に要する予測時間の情報を含む請求項４に記載の通信方法。
【請求項７】
ホスト装置と、ｎ個（ｎは３以上の整数）のターゲット装置とが、スイッチングハブを介してＵＳＢ規格に従ってデータの送受信を行うための通信方法であって、
前記ホスト装置と前記ｎ個のターゲット装置とは、前記ターゲット装置毎に前記ホスト装置とデータの送受信が可能な第１通信モードと、複数のターゲット装置のデータをまとめてホスト装置に送信可能な第２通信モードとを切り替えて通信可能とされ、
前記スイッチングハブは、一次的にデータの格納が可能な記憶部を含み、
前記ホスト装置が、一のターゲット装置と通信を行うとき、前記一のターゲット装置以外の他のターゲット装置と前記スイッチングハブに対して通信モードを指示する第１処理と、
前記ホスト装置が、前記一のターゲット装置と通信を開始する第２処理と、
前記第１処理において前記第２通信モードが指示された場合に、前記他のターゲット装置が、前記スイッチングハブと通信を行うことにより、夫々の前記他のターゲット装置が保有する前記ホスト装置に転送するための転送データを前記スイッチングハブ内の前記記憶部にまとめて格納する第３処理と、
前記ホスト装置と前記一のターゲット装置の通信の完了後、前記スイッチングハブが前記記憶部に格納した前記転送データをまとめて前記ホスト装置に送信する第４処理と、を含む通信方法。
【請求項８】
前記第３処理は、
前記スイッチングハブが、前記転送データの蓄積が可能であることを前記他のターゲット装置に通知する第５処理と、
前記他のターゲット装置が、前記転送データを前記スイッチングハブに送信し、前記スイッチングハブが受信した前記転送データを前記記憶部に蓄積する第６処理と、を含む請求項２に記載の通信方法。
【請求項９】
前記第１処理において、前記ホスト装置は、前記他のターゲット装置と前記スイッチングハブに対して、前記ホスト装置と通信が可能になるまでの待機時間を示す情報を更に送信し、
前記第６処理において、前記他のターゲット装置は、前記待機時間を示す情報に基づいて、前記ホスト装置と前記一のターゲット装置の通信が完了するまでに送信可能なデータ量を算出するとともに、前記算出したデータ量に応じた前記転送データを、前記スイッチングハブに送信するデータとする請求項９に記載の通信方法。
【請求項１０】
前記待機時間を示す情報は、前記ホスト装置と前記一のターゲット装置との通信で予定されているトランザクション数の情報を含む請求項９に記載の通信方法。
【請求項１１】
前記待機時間を示す情報は、前記ホスト装置と前記一のターゲット装置との通信に要する予測時間の情報を含む請求項９に記載の通信方法。
【請求項１２】
ＵＳＢ規格に従って通信が可能なスイッチングハブであって、
ホスト装置と接続するための第１入出力ポートと、
ターゲット装置と接続するためのｎ個（ｎは３以上の整数）の第２入出力ポートと、
前記第１入出力ポートと前記第２入出力ポートとの間の接続を切り替えることにより、前記第１入出力ポートに接続された前記ホスト装置と前記第２入出力ポートに接続された前記ターゲット装置との間の通信を制御するための通信制御部と、
記憶部と、を有し、
前記通信制御部は、前記第１入出力ポートと一の前記第２入出力ポートとの接続を確立しているとき、前記ホスト装置に転送するための転送データが他の前記第２入出力ポートに供給された場合には、前記転送データを前記記憶部にまとめて格納し、前記第１入出力ポートと前記一の前記第２入出力ポートとの接続の解除後に、前記記憶部に格納した転送データをまとめて前記第１入出力ポートから出力することが可能にされるスイッチングハブ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に従ってデータの送受信を行うための通信方法、スイッチングハブ、及びデータ転送システムに関し、特に複数のターゲット装置がスイッチングハブを介してホスト装置とデータの送受信を行うための通信方法に適用して有効な技術に関する。
【背景技術】
【０００２】
パソコンや家庭用のマルチメディア機器などのホスト装置にハードディスクドライブやメモリカードリーダ、プリンタ、デジタルカメラ等の周辺装置（以下、ターゲット装置とも称する。）を接続する汎用インターフェースとして、ＵＳＢが知られている。ＵＳＢでは、ハブを用いることにより、ホスト装置の１つのポートに複数のターゲット装置を接続して通信することができる。このようなＵＳＢ規格による通信（以下、単にＵＳＢ通信とも称する。）を行うデータ転送システムにおけるハブに関する従来技術として、例えば特許文献１に開示がある。
【０００３】
従来から、ＵＳＢ通信以外の分野において、１つのホスト装置と複数の周辺装置との間で通信を行う方法が知られている。例えば、特許文献２には、同報通信により、マスタ装置と複数のスレーブ装置との間で通信を行うマスタ／スレーブ通信方法が開示されている。同文献には、マスタ装置が複数のスレーブ装置に対して制御及び監視を行う場合に、マスタ装置が同報通信により監視・制御命令を各スレーブ装置に対して送信し、各スレーブ装置はそれに対する応答を前記マスタ装置が指定した中継装置に送信し、中継装置が各スレーブ装置からの応答を前記マスタ装置に送信する方法が開示されている。
【０００４】
これに対し、ＵＳＢ通信のデータ転送システムでは、ホスト装置が各ターゲット装置に順次問い合わせを行うポーリングによって、ホスト装置と各ターゲット装置間の通信が実現される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００８−５１３８８５号公報
【特許文献２】特開２００８−６０７５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、ＵＳＢ規格による通信（以下、単に、ＵＳＢ通信とも称する。）はホスト装置主導の通信方式であるため、例えば、一つのターゲット装置がホスト装置と通信を行っている期間は、他のターゲット装置は通信を行うことができない、又は、通信ができても制限される。例えば、３つのターゲット装置がハブを介してホスト装置に接続されているデータ転送システムにおいて、１つのターゲット装置がホスト装置との間で大容量のデータをやり取りしている場合を考える。データ転送のスケジュールは、所定の時間毎に反復される夫々のフレームによって区切られ、そのフレーム内で夫々のターゲット装置に転送時間が割り当てられる。この場合、従来のＵＳＢ通信では、ホスト装置は、大容量の転送データを扱う前記１つのターゲット装置には長い転送時間を割り当て、残りの２つのターゲット装置には短い転送時間を割り当てる。そのため、前記残りの２つのターゲット装置は１つのフレームにおいて転送できるデータ量が制限され、目的とするデータ転送を完了するのに必要なトランザクション数が増加する。また、１つのトランザクションでは、トークンパケットの転送、データパケットの転送、ハンドシェイクパケットの転送という手順で通信が行われるため、前記残りの２つのターゲット装置の転送すべきデータの総データ量が少ない場合であっても、トランザクション数が増加すれば、通信のオーバーヘッドが大きくなり、スループットが悪化する。これにより、ＵＳＢ通信の通信時間が長くなり、レスポンスが悪くなるという問題があった。
【０００７】
このような課題を解決するための手段等を以下に説明するが、その他の課題と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される実施の形態のうち代表的なものの概要を簡単に説明すれば下記のとおりである。
【０００９】
すなわち、本通信方法は、ホスト装置と、ｎ個のターゲット装置とがスイッチングハブを介してＵＳＢ通信を行うための通信方法であって、ターゲット装置毎にホスト装置とデータの送受信が可能な第１通信モードと、複数のターゲット装置のデータをまとめてホスト装置に送信可能な第２通信モードとが切り替え可能にされる。本通信方法は、以下の処理を含む。ホスト装置が一のターゲット装置と通信を行うとき、他のターゲット装置に対して通信モードを指示する処理。第２通信モードが指示された場合に、他のターゲット装置が夫々の転送データを１つのターゲット装置の記憶部にまとめて格納する処理。前記通信の完了後、前記１つのターゲット装置が、自らの転送データと前記格納した転送データをまとめてホスト装置に送信する処理。
【発明の効果】
【００１０】
本願において開示される実施の形態のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１１】
すなわち、ホスト装置に複数のターゲット装置が接続されたデータ転送システムにおいて、ＵＳＢ通信の通信時間を短縮することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係るＵＳＢ通信が可能なデータ転送システムを例示する図である。
【図２】実施の形態１に係るデータ転送システムにおける第２通信モードによる通信方法の一例を示すフロー図である。
【図３】実施の形態１に係るデータ転送システムにおける第２通信モードによる通信方法の別の一例を示すフロー図である。
【図４】実施の形態２に係るＵＳＢ通信が可能なデータ転送システムを例示する図である。
【図５】実施の形態３に係るデータ転送システムにおける第２通信モードによる通信方法の一例を示すフロー図である。
【図６】実施の形態２に係るデータ転送システムにおける第２通信モードによる通信方法の別の一例を示すフロー図である。
【図７】実施の形態１に係る通信方法を適用したデータ転送システムの具体例を示す図である。
【図８】実施の形態１に係る通信方法を適用したデータ転送システムの別の具体例を示す図である。
【発明を実施するための形態】
【００１３】
１．実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１４】
〔１〕（１つのＵＳＢターゲット装置がホスト装置と通信を行っている期間に他のＵＳＢターゲット装置間でデータをまとめ、上記通信後にまとめたデータをホスト装置に送信する通信方法）
本願の代表的な実施の形態に係る通信方法は、ホスト装置（１１）と、一時的にデータを格納するための記憶部（１０１）を備えるｎ個（ｎは３以上の整数）のターゲット装置（ＴＧＴ＿１〜ＴＧＴ＿３）とが、スイッチングハブ（１２）を介してＵＳＢ規格に従ったデータの送受信を行うための通信方法である。前記ホスト装置と前記ｎ個のターゲット装置とは、前記ターゲット装置毎に前記ホスト装置とデータの送受信が可能な第１通信モードと、複数のターゲット装置のデータをまとめてホスト装置に送信可能な第２通信モードとを切り替えて通信可能とされる。本通信方法は、以下の処理を含む。前記ホスト装置が、一のターゲット装置（ＴＧＴ＿３）と通信を行うとき、前記一のターゲット装置以外の他のターゲット装置（ＴＧＴ＿１、ＴＧＴ＿２）に対して通信モードを指示する第１処理（Ｓ１０１、Ｓ１０３）。前記ホスト装置が、前記一のターゲット装置と通信を開始する第２処理（Ｓ１０５）。前記第１処理において前記第２通信モードが指示された場合に、前記他のターゲット装置が、相互に通信を行うことにより、夫々が保有する前記ホスト装置に転送するための転送データを１つの前記他のターゲット装置内の前記記憶部にまとめて格納する第３処理（Ｓ１１０）。前記ホスト装置と前記一のターゲット装置の通信の完了後、前記第３処理において前記転送データを前記記憶部にまとめて格納したターゲット装置（ＴＧＴ＿１）が、自らの転送データと前記記憶部に格納した転送データとをまとめて前記ホスト装置に送信する第４処理（Ｓ１１５）。
【００１５】
これによれば、前記他のターゲット装置の夫々がホスト装置と通信を確立してデータを転送する場合に比べて、前記他のターゲット装置の全ての転送データの送信が完了するのに必要なトランザクション数が少なくなるので、転送におけるオーバーヘッドが小さくなり、スループットが向上する。また、ＵＳＢ規格では、スイッチングハブに接続されたターゲット装置の通信スピードが相異する場合、通信スピードの一番遅いターゲット装置に合わせて通信を行わなくてはならないが、本通信方法では、記憶部に転送データをまとめて蓄積したターゲット装置が取り得る最速の通信スピードによってデータ通信を行うことが可能となる。したがって、本通信方法によれば、ホスト装置とｎ個のターゲット装置とがスイッチングハブを介して接続されるデータ転送システムにおいて、ＵＳＢ通信の通信時間を短縮することができる。
【００１６】
〔２〕（バッファの記憶容量が最も大きいターゲット装置にデータを蓄積）
項１の通信方法において、前記１つの前記他のターゲット装置は、前記他のターゲット装置の中で前記記憶部の記憶容量が最も大きくされる。
【００１７】
これによれば、より多くのデータを前記記憶部に格納することができるから、スループットを更に向上させることができる。
【００１８】
〔３〕（記憶容量が最も大きいターゲット装置を判別し、転送データを送信）
項２の通信方法において、前記第３処理は、以下の処理を含む。前記他のターゲット装置が、夫々の保有する前記記憶部の記憶容量の大きさを示す記憶容量の情報を相互に送受信する第５処理（Ｓ１０６、Ｓ１０７）。前記他のターゲット装置が、前記記憶容量の情報に基づいて、自らの前記記憶部の記憶容量が最も大きいか否かを判別し、前記記憶容量が最も大きいと判断したターゲット装置が、それ以外のターゲット装置に対して、転送データの蓄積が可能であることを通知する第６処理（Ｓ１０８）。前記第６処理の通知を受けたターゲット装置が、前記ホスト装置に転送するための転送データを前記記憶容量が最も大きいと判断したターゲット装置に送信し、前記記憶容量が最も大きいと判断したターゲット装置が、受信した前記転送データを前記記憶部に格納する第７処理（Ｓ１１０）。
【００１９】
これによれば、最も大きな記憶容量の記憶部を有するターゲット装置を容易に判別することができ、判別されたターゲット装置に対して、他のターゲット装置が転送データを送信することが容易となる。
【００２０】
〔４〕（所定時間内に送信可能なデータを蓄積）
項３の通信方法は、前記第１処理において、前記ホスト装置が、前記他のターゲット装置に対して、前記ホスト装置と通信が可能になるまでの待機時間を示す情報を更に送信する。前記第７処理において、前記それ以外のターゲット装置は、前記待機時間を示す情報に基づいて、前記ホスト装置と前記一のターゲット装置の通信が完了するまでに送信可能なデータ量を算出するとともに、前記算出したデータ量に応じた前記転送データを、前記記憶容量が最も大きいと判断したターゲット装置に対して送信するデータとする。
【００２１】
これによれば、前記ホスト装置と前記一のターゲット装置が通信を行っている期間に、より多くの転送データを前記記憶部に格納することが可能となり、スループットの更なる向上に資する。
【００２２】
〔５〕（予測トランザクション数）
項４の通信方法において、前記待機時間を示す情報は、前記ホスト装置と前記一のターゲット装置との通信で予定されているトランザクション数の情報を含む。
【００２３】
〔６〕（予測時間）
項４の通信方法において、前記待機時間を示す情報は、前記ホスト装置と前記一のターゲット装置との通信に要する予測時間の情報を含む。
【００２４】
〔７〕（１つのＵＳＢターゲット装置がホスト装置と通信を行っている期間に他のＵＳＢターゲット装置のデータをスイッチングハブのバッファメモリにまとめて格納し、上記通信後にまとめたデータをホスト装置に送信する通信方法）
本願の代表的な実施の形態に係る通信方法は、ホスト装置（１１）と、ｎ個（ｎは３以上の整数）のターゲット装置（ＴＧＴ＿１Ａ〜ＴＧＴ＿３Ａ）とが、スイッチングハブ（２２）を介してＵＳＢ規格に従ったデータの送受信を行うための通信方法である。前記ホスト装置と前記ｎ個のターゲット装置とは、前記ターゲット装置毎に前記ホスト装置とデータの送受信が可能な第１通信モードと、複数のターゲット装置のデータをまとめてホスト装置に送信可能な第２通信モードとを切り替えて通信可能とされる。前記スイッチングハブは、一次的にデータの格納が可能な記憶部（２２５）を含む。本通信方法は、以下の処理を含む。前記ホスト装置が、一のターゲット装置と通信を行うとき、前記一のターゲット装置以外の他のターゲット装置と前記スイッチングハブに対して通信モードを指示する第１処理（Ｓ３０１、Ｓ３０３、Ｓ３０５）。前記ホスト装置が、前記一のターゲット装置と通信を開始する第２処理（Ｓ３０７）。前記第１処理において前記第２通信モードが指示された場合に、前記他のターゲット装置が、前記スイッチングハブと通信を行うことにより、夫々の前記他のターゲット装置が保有する前記ホスト装置に転送するための転送データを前記スイッチングハブ内の前記記憶部にまとめて格納する第３処理（Ｓ３０８〜Ｓ３１３）。前記ホスト装置と前記一のターゲット装置の通信の完了後、前記スイッチングハブが前記記憶部に格納した前記転送データをまとめて前記ホスト装置に送信する第４処理（Ｓ３２０）。
【００２５】
本通信方法では、前記一のターゲット装置と前記ホスト装置が通信を行っている期間に、前記スイッチングハブが、擬似的なホスト装置として、他のホスト装置からの転送データを蓄積するとともに、上記通信後に蓄積した転送データをホスト装置にまとめて送信する。これによれば、前記他のターゲット装置の夫々がホスト装置と通信を確立してデータを転送する場合に比べて、前記他のターゲット装置の全ての転送データの送信が完了するのに必要なトランザクション数が少なくなるので、転送におけるオーバーヘッドが小さくなり、スループットが向上する。また、ＵＳＢ規格では、スイッチングハブに接続されたターゲット装置の通信スピードが相異する場合、通信スピードの一番遅いターゲット装置に合わせて通信を行わなくてはならないが、本通信方法では、スイッチングハブが取り得る最速の通信スピードによってホスト装置とデータ通信を行うことが可能となる。したがって、本通信方法によれば、ホスト装置とｎ個のターゲット装置とがスイッチングハブを介して接続されるデータ転送システムにおいて、ＵＳＢ通信の通信時間を短縮することができる。
【００２６】
〔８〕（スイッチングハブとターゲット装置との間の通信方法の詳細）
項７の通信方法において、前記第３処理は、前記スイッチングハブが、前記転送データの蓄積が可能であることを前記他のターゲット装置に通知する第５処理（Ｓ３０８、Ｓ３１０）と、前記他のターゲット装置が前記転送データを前記スイッチングハブに送信し、前記スイッチングハブが受信した前記転送データを前記記憶部に蓄積する第６処理（Ｓ３１２、Ｓ３１３）とを含む。
【００２７】
これによれば、ホスト装置を介さずにスイッチングハブとターゲット装置間で通信を実行することが容易となる。
【００２８】
〔９〕（所定時間内に送信可能なデータを蓄積）
項８の通信方法は、前記第１処理において、前記ホスト装置が、前記他のターゲット装置と前記スイッチングハブに対して、前記ホスト装置と通信が可能になるまでの待機時間を示す情報を更に送信する。前記第６処理において、前記他のターゲット装置は、前記待機時間を示す情報に基づいて、前記ホスト装置と前記一のターゲット装置の通信が完了するまでに送信可能なデータ量を算出するとともに、前記算出したデータ量に応じた前記転送データを、前記スイッチングハブに送信するデータとする。
【００２９】
これによれば、前記ホスト装置と前記一のターゲット装置が通信を行っている期間に、より多くの転送データを前記記憶部に格納することが可能となり、スループットの更なる向上に資する。
【００３０】
〔１０〕（予測トランザクション数）
項９の通信方法において、前記待機時間を示す情報は、前記ホスト装置と前記一のターゲット装置との通信で予定されているトランザクション数の情報を含む。
【００３１】
〔１１〕（予測時間）
項９の通信方法において、前記待機時間を示す情報は、前記ホスト装置と前記一のターゲット装置との通信に要する予測時間の情報を含む。
【００３２】
〔１２〕（スイッチングハブ）
本願の代表的な実施の形態に係るスイッチングハブ（２２）は、ＵＳＢ規格に従って通信が可能なスイッチングハブである。本スイッチングハブは、ホスト装置（１１）と接続するための第１入出力ポート（１２１）と、ターゲット装置（ＴＧＴ＿１Ａ〜ＴＧＴ＿３Ａ）と接続するためのｎ個（ｎは３以上の整数）の第２入出力ポート（１２３〜１２５）と、を有する。本スイッチングハブは更に、前記第１入出力ポートと前記第２入出力ポートとの間の接続を切り替えることにより、前記第１入出力ポートに接続された前記ホスト装置と前記第２入出力ポートに接続された前記ターゲット装置との間の通信を制御するための通信制御部（２２０、１２２）と、記憶部（２２５）とを有する。前記通信制御部は、前記第１入出力ポートと一の前記第２入出力ポートとの接続を確立しているとき、前記ホスト装置に転送するための転送データが他の前記第２入出力ポートに供給された場合には、前記転送データを前記記憶部にまとめて格納する。更に前記通信制御部は、前記第１入出力ポートと前記一の前記第２入出力ポートとの接続の解除後に、前記記憶部に格納した転送データをまとめて前記第１入出力ポートから出力することが可能にされる。
【００３３】
これによれば、第１入出力ポートに接続する第２入出力ポートを順次切り替えながら、夫々の前記他のターゲット装置とホスト装置との間の通信を構築する従来のスイッチングハブに比べて、前記他のターゲット装置の全ての転送データの送信が完了するのに必要なトランザクション数が少なくなるので、転送におけるオーバーヘッドが小さくなり、スループットが向上する。また、ＵＳＢ規格では、スイッチングハブに接続されたターゲット装置の通信スピードが相異する場合、通信スピードの一番遅いターゲット装置に合わせて通信を行わなくてはならないが、本スイッチングハブによれば、スイッチングハブが取り得る最速の通信スピードによってデータ通信を行うことが可能となる。したがって、本スイッチングハブによれば、ＵＳＢ通信の通信時間を短縮することができる。
【００３４】
〔１３〕（データ転送システム）
本願の代表的な実施の形態に係るデータ転送システム（１）は、ホスト装置（１１）と、ｎ個（ｎは３以上の整数）のターゲット装置（ＴＧＴ＿１〜ＴＧＴ＿３）を有する。本データ転送システムは、前記ホスト装置が接続される第１入出力ポート（１２１）と、夫々の前記ターゲット装置が対応して接続されるｎ個の第２入出力ポート（１２３〜１２５）とを含み、前記第１入出力ポートと前記第２入出力ポートとの接続と前記第２入出力ポート間の接続が切り替え可能にされるスイッチングハブ（１２）を更に有する。前記ターゲット装置は、データを一時的に格納するための記憶部（１０１）を含む。前記他のターゲット装置が、相互に通信を行うことにより、前記他のターゲット装置が保有する前記ホスト装置に転送するための転送データが１つの前記他のターゲット装置内の前記記憶部にまとめて格納される。前記ホスト装置と前記一のターゲット装置の通信が完了したら、前記転送データをまとめて格納したターゲット装置が、そのターゲット装置が保持する転送データと前記記憶部に格納された転送データとをまとめて前記ホスト装置に送信する。
【００３５】
これによれば、前記他のターゲット装置の夫々がホスト装置にデータを転送する場合に比べて、前記他のターゲット装置の全ての転送データの送信が完了するのに必要なトランザクション数が少なくなるので、転送におけるオーバーヘッドが小さくなり、スループットが向上する。これにより、データ転送システムにおけるＵＳＢ通信の通信時間を短縮することができる。
【００３６】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００３７】
≪実施の形態１≫
図１に、ＵＳＢ通信が可能なデータ転送システムが例示される。
【００３８】
同図に示されるデータ転送システム１は、ホスト装置（ＨＯＳＴ）１１と、複数の周辺装置（ターゲット装置，ＰＲＤ）ＴＧＴ＿１〜ＴＧＴ＿３と、スイッチングハブ（ＳＷ＿ＨＵＢ）１２とを含んで構成され、ホスト装置１１とターゲット装置ＴＧＴ＿１〜ＴＧＴ＿３（総称する場合は、単にＴＧＴと表記する。）とは、スイッチングハブ１２を介してＵＳＢ通信が可能にされる。
【００３９】
一般にＵＳＢ通信では、フレームという複数のパケットからなるデータブロックを所定の周期で転送することによって通信が行われる。前記所定の周期は、フル・スピードモードで１ｍｓ、ハイ・スピードモードでは１２５μｓである。フレームは、ＳＯＦ（Ｓｔａｒｔ  ｏｆ  ｆｒａｍｅ）と呼ばれるＳＯＦパケットと、複数のトランザクションから構成される。トランザクションは、ホスト装置とターゲット装置との間で複数のパケットのやり取りすることによって実現される１つのデータ転送の最小単位である。トランザクションは、転送の種類及びターゲット装置のアドレスを指定するトークンパケットと、転送の対象のデータを含むデータパケットと、データの正常受信や受信ミス等を示すＡＣＫやＮＡＣ等のハンドシェイクパケットと、から構成される。例えば、バルク転送の場合、トークンパケットとして、ホスト装置からターゲット装置へのデータの転送を指示するＯＵＴトークンと、ターゲット装置からホスト装置へのデータの転送を指示するＩＮトークンがある。１フレーム内のトランザクションは、必要に応じてターゲット装置毎に割り当て可能にされ、これにより、１フレームの期間に各ターゲット装置に少しずつ転送時間を割り当てることができる。
【００４０】
ホスト装置１１は、スイッチングハブ１２を介してターゲット装置ＴＧＴ＿１〜ＴＧＴ＿３の夫々とインターフェースされる。ホスト装置１１は、例えば、パソコンやサーバ、家庭用のマルチメディア機器等である。ホスト装置１１は、例えば、ロー・スピードモード（１．５Ｍｂｐｓ）、フル・スピードモード（１２Ｍｂｐｓ）、及びハイ・スピードモード（４８０Ｍｂｐｓ）に対応しており、何れかの通信スピードでターゲット装置ＴＧＴ＿１〜ＴＧＴ＿３にアクセス可能にされる。
【００４１】
ホスト装置１１は、中央処理装置（ＣＰＵ）１１０、メモリ（ＭＲＹ）１１１、バス１１２、ＵＳＢホストコントローラ（ＵＳＢ＿ＣＮＴ）１１３、及びその他の図示されない周辺回路を含んで構成される。特に制限されないが、中央処理装置１１０、メモリ１１１、バス１１２、ＵＳＢホストコントローラ１１３、及びその他の図示されない周辺回路は、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成される。ホスト装置１１は、例えばマイクロコントローラである。
【００４２】
中央処理装置１１０は、メモリ１１１に予め格納されたプログラムにしたがって各種の演算処理を実行するとともに、ホスト装置１１内の各機能部の統括的な制御を行う。メモリ１１１は、中央処理装置１１０による演算処理において演算結果やプログラム等が一時的に格納されるＲＡＭや、中央処理装置１１０が実行するプログラム等を格納するＲＯＭ等を含む。
【００４３】
ＵＳＢホストコントローラ１１３は、ホスト装置１１とターゲット装置ＴＧＴ＿１〜ＴＧＴ＿３との間のＵＳＢ通信を制御する。ＵＳＢホストコントローラ１１３は、バス１１２を介して、中央処理装置１１０やメモリ１１１、図示されない周辺回路と共通に接続される。ＵＳＢホストコントローラ１１３は、例えば、制御部（ＣＮＴ）１１３０及び入出力ポート（Ｉ／Ｏ＿ＰＲＴ）１１３１を含む。入出力ポート１１３１は、スイッチングハブ１２のアップストリームポート（入出力ポート１２１）に接続され、データの送受信が可能にされる。図示はしないが、入出力ポート１１３１は、例えば、複数の外部端子と、上記外部端子に供給されたデータを受信するとともに上記外部端子にデータを送信するための外部インターフェース回路と、を含んで構成される。
【００４４】
制御部１１３０は、入出力ポート１１３１を制御することにより、ターゲット装置ＴＧＴ＿１〜ＴＧＴ＿３との間のＵＳＢ通信を制御する。特に制限されないが、制御部１１３０は、中央処理装置がＲＯＭやＲＡＭに格納されたプログラムを実行することにより各種の機能を実現するプログラム処理装置である。制御部１１３０は、ターゲット装置ＴＧＴ＿１〜ＴＧＴ＿３に対して通信要求の有無を順次問い合わせ（ポーリング）、通信要求の有ったターゲット装置との間で通信を確立する。このとき、スイッチングハブ１２及びターゲット装置ＴＧＴ＿１〜ＴＧＴ＿３に対して、第１通信モードと第２通信モードの何れかを指定する。第１通信モードは、従来のＵＳＢ通信と同様に、ターゲット装置ＴＧＴ＿１〜ＴＧＴ_３毎にホスト装置１１とデータの送受信が可能にされるモードである。第２通信モードは、複数のターゲット装置ＴＧＴのデータをまとめてホスト装置１１に送信可能なモードである。
【００４５】
具体的には、制御部１１３０は、一つのターゲット装置ＴＧＴとの通信において転送対象とされる転送データのデータ量を判別し、その通信時間が長くなると判断した場合には第２通信モードを指示し、そうでない場合には第１通信モードを指示する。例えば、ホスト装置１１からターゲット装置ＴＧＴ＿３に対して転送データを送信するとき、制御部１１３０は、ターゲット装置ＴＧＴ＿３に送信すべき転送データのデータ量に基づいて、ターゲット装置ＴＧＴ＿３との通信が完了するまでの所要時間を算出し、所定の閾値と比較する。算出した所要時間が所定の閾値よりも小さい場合には、ターゲット装置ＴＧＴ＿３以外の他のターゲット装置ＴＧＴ＿１、ＴＧＴ＿２に対して第１通信モードでの通信を行うことを指示する。他方、算出した所要時間が所定の閾値よりも大きい場合には、ターゲット装置ＴＧＴ＿３以外の他のターゲット装置ＴＧＴ＿１、ＴＧＴ＿２に対して第２通信モードでの通信を行うことを指示するとともに、ホスト装置１１と通信が可能になるまでの待機時間の情報を送信する。前記待機時間の情報は、例えば、ホスト装置１１とターゲット装置ＴＧＴ＿３との通信で予定されている予測トランザクション数の情報や、ホスト装置１１とターゲット装置ＴＧＴ＿３との通信に要する予測時間の情報等である。
【００４６】
スイッチングハブ１２は、ホスト装置１１と接続可能なアップストリームポートとしての入出力ポート（Ｉ／Ｏ＿ＰＲＴ）１２１と、ターゲット装置ＴＧＴと接続可能なダウンストリームポートとしてのｎ個（ｎは３以上の整数）の入出力ポート（Ｉ／Ｏ＿ＰＲＴ）と、スイッチング回路（ＳＷＣＩＲ）１２２、制御部（ＣＮＴ）１２０と、を含んで構成される。なお、同図には、ダウンストリームポートとしてのｎ個の入出力ポートとして、入出力ポート１２３、１２４、１２５の３つのポートが例示されているが、３つ以上であれば、その数に制限はない。
【００４７】
入出力ポート１２１は、上述したように、ホスト装置１１における入出力ポート１１３１と接続され、データの送受信が可能にされる。入出力ポート１２３〜１２５は、対応するターゲット装置ＴＧＴ＿１〜ＴＧＴ＿３の入出力ポート（Ｉ／Ｏ＿ＰＲＴ）１０４に接続され、データの送受信が可能にされる。図示はしないが、入出力ポート１２１、１２３〜１２５は、例えば、複数の外部端子と、上記外部端子に供給されたデータを受信するとともに上記外部端子にデータを送信するための外部インターフェース回路と、を含んで構成される。スイッチング回路１２２は、入出力ポート１２１と入出力ポート１２３〜１２５の間の接続と遮断を切り替えるとともに、入出力ポート１２３〜１２５間の接続と遮断を切り替える。これにより、入出力ポート１２１、１２３〜１２５間で様々な通信経路を確立することができる。特に限定されないが、図１には、入出力ポート１２３と入出力ポート１２４とを接続し、入出力ポート１２１と入出力ポート１２５とを接続した場合が例示されている。
【００４８】
制御部１２０は、入出力ポート１２１、１２３〜１２５及びスイッチング回路１２２を制御することにより、入出力ポート１２１に接続されたホスト装置１１と入出力ポート１２３〜１２５に接続されたターゲット装置ＴＧＴ＿１〜ＴＧＴ＿３との間の通信を制御する。例えば、制御部１２０は、ホスト装置１１におけるＵＳＢホストコントローラ１１３から送信された制御信号に基づいてスイッチング回路１２２を制御することにより、指定された通信経路を確立し、ホスト装置１１とターゲット装置ＴＧＴ＿１〜ＴＧＴ＿３通信や、ターゲット装置ＴＧＴ＿１〜ＴＧＴ＿３同士の通信を可能にする。
【００４９】
ターゲット装置ＴＧＴ＿１〜ＴＧＴ＿３は、ホスト装置１１との間のＵＳＢ通信に加え、ターゲット装置間でのＵＳＢ通信が可能にされる。ターゲット装置ＴＧＴは、例えば、ＯＴＧ（Ｏｎ−Ｔｈｅ−Ｇｏ）規格に対応したＵＳＢ機器であり、ハードディスクドライブやメモリカードリーダ、プリンタ、デジタルカメラ等である。
【００５０】
ターゲット装置ＴＧＴ＿１〜ＴＧＴ＿３は、例えば、ＵＳＢターゲットコントローラ１００及び内部回路１０３を含んで構成される。内部回路１０３は、ターゲット装置ＴＧＴ＿１〜ＴＧＴ_３特有の機能を実現するための機能部である。ＵＳＢターゲットコントローラ１００は、スイッチングハブ１２を介して、ホスト装置１１や他のターゲット装置と通信を行う。ＵＳＢターゲットコントローラ１００は、例えば、バッファメモリ１０１、制御部１０２、及び入出力ポート（Ｉ／Ｏ＿ＰＲＴ）１０４を含んで構成される。ＵＳＢターゲットコントローラ１００は、特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成された１チップの半導体集積回路である。なお、バッファメモリ１０１は、制御部１０２等と同じチップに構成しても良いし、別チップとしても良く、特に制限されない。入出力ポート１０４は、スイッチングハブ１２における入出力ポート１２３〜１２５の何れか１つと接続され、データの送受信が可能にされる。図示はしないが、入出力ポート１０４は、例えば、複数の外部端子と、上記外部端子に供給されたデータを受信するとともに上記外部端子にデータを送信するための外部インターフェース回路と、を含んで構成される。バッファメモリ１０１は、データを格納するための記憶装置である。例えば、バッファメモリ１０１は大容量の揮発性の記憶領域を含んで構成される。特に制限されないが、バッファメモリ１０１はＲＡＭである。
【００５１】
制御部１０２は、スイッチングハブ１２を介してホスト装置１１から供給された制御信号に基づいて入出力ポート１０４を制御することにより、スイッチングハブ１２を介したホスト装置１１との通信、及び他のターゲット装置との通信を可能にする。例えば、ホスト装置１１から供給された制御信号によって第１通信モードが指示された場合には、制御部１０２は、内部回路１０３から供給されたホスト装置１１に送信すべき転送データを入出力ポート１０４から送信するとともに、入出力ポート１０４で受信した転送データを必要に応じて内部回路１０３に供給する。他方、ホスト装置１１から供給された制御信号によって第２通信モードが指示された場合には、制御部１０２は、他のターゲット装置との間で通信を行う。具体的には、制御部１０２は、他のターゲット装置との間で、バッファメモリ１０１の記憶容量の大きさを示す記憶容量の情報を相互にやり取りし、自らのバッファメモリ１０１の記憶容量が最も大きいか否かを判別する。最も大きいと判別した場合には、データの蓄積が可能であることを示す情報を他のターゲット装置に送信するとともに、他のターゲット装置から送信された転送データをバッファメモリ１０１に格納する。そして、自らの内部回路１０３から供給された転送データと、バッファメモリ１０１に格納された転送データとをまとめて、ホスト装置１１に送信する。他方、自らのバッファメモリ１０１の記憶容量が他のターゲット装置のそれよりも小さいと判別した場合には、制御部１０２は、ホスト装置１１に送信すべき転送データを、最も記憶容量の大きいバッファメモリ１０１を持つターゲット装置に対して送信する。より具体的には、制御部１０２は、ホスト装置１１から受信した前記待機時間の情報に基づいて、他のターゲット装置との間で通信可能な時間を算出するとともに、その算出した時間内に送信可能な最大データ量を算出する。そして、算出した最大データ量に応じた転送データを最も記憶容量の大きいバッファメモリ１０１を持つターゲット装置に対して送信する。なお、上記算出した最大データ量よりも、送信先のターゲット装置のバッファメモリの記憶容量の方が小さい場合には、当該バッファメモリに格納可能なデータ量の転送データを送信する。そして、ホスト装置とターゲット装置の通信を終わった段階で、残りの転送データをホスト装置にあらためて送信するようにすれば良い。
【００５２】
次に、データ転送システム１における第２通信モードでの通信方法について、図２、３を用いて詳細に説明する。
【００５３】
図２は、実施の形態１に係るデータ転送システムにおける第２通信モードによる通信方法の一例を示すフロー図である。同図には、ホスト装置１１がターゲット装置ＴＧＴ＿３に対して大容量のデータを送信し、ターゲット装置ＴＧＴ＿１及びターゲット装置ＴＧＴ＿２が小容量のデータをホスト装置１１に送信する場合の通信手順が例示されている。
【００５４】
先ず、ホスト装置１１は、ターゲット装置ＴＧＴ＿３に送信すべき転送データのデータ量に基づいて、ターゲット装置ＴＧＴ＿３との通信が完了するまでの所要時間を算出し、所定の閾値と比較する。ホスト装置１１は、算出した所要時間が所定の閾値よりも大きい判断したら、バルク通信のトランザクションによってターゲット装置ＴＧＴ＿１に対して第２通信モードでの通信を行うことを指示するとともに、ホスト装置１１と通信が可能になるまでの待機時間の情報を送信する（Ｓ１０１）。ターゲット装置ＴＧＴ＿１は、それに対する応答（ＡＣＫ）をホスト装置１１に送信する（Ｓ１０２）。同様に、ホスト装置１１は、ターゲット装置ＴＧＴ＿２に対して第２通信モードでの通信を行うことを指示するとともに、前記待機時間の情報を送信する（Ｓ１０３）。ターゲット装置ＴＧＴ＿２は、それに対する応答（ＡＣＫ）をホスト装置１１に送信する（Ｓ１０４）。ホスト装置１１はターゲット装置ＴＧＴ＿３との間で通信を開始する（Ｓ１０５）。具体的には、ホスト装置１１は、他のターゲット装置ＴＧＴ＿１，ＴＧＴ＿２に通知した前記待機時間の情報に基づく送信完了予定時刻まで、転送データを送信することを繰り返し行う。仮にデータの再送が必要となり、当初の送信完了予定時刻までに全てのデータの送信が終わらない場合であっても、当初の送信完了予定時刻になったらデータの送信を停止する。このとき、ホスト装置１１は、ターゲット装置ＴＧＴ＿１、ＴＧＴ＿２のトランザクションを発行せず、ターゲット装置ＴＧＴ＿３のトランザクションのみによってデータの送信を行う。これにより、より短い時間でターゲット装置ＴＧＴ＿３へのデータ転送を完了することができる。
【００５５】
処理Ｓ１０５においてホスト装置１１とターゲット装置ＴＧＴ＿３の通信が開始されると、ターゲット装置ＴＧＴ＿１、ＴＧＴ＿２間の通信が開始される。具体的には、ホスト装置１１からターゲット装置ＴＧＴ＿１，ＴＧＴ＿２への定期的なＳＯＦパケットの送信が停止したら、それをトリガとして、ターゲット装置ＴＧＴ＿１及びＴＧＴ＿２は通信を開始する。先ず、ターゲット装置ＴＧＴ＿１は、自らが保有するバッファメモリ１０１に関する記憶容量の情報をターゲット装置ＴＧＴ＿２に送信する（Ｓ１０６）。次に、ターゲット装置ＴＧＴ＿２が、自らが保有するバッファメモリ１０１に関する記憶容量の情報をターゲット装置ＴＧＴ＿１に送信する（Ｓ１０７）。特に制限されないが、ターゲット装置ＴＧＴ＿１、ＴＧＴ＿２のどちらから記憶容量の情報の送信を開始するかは、例えば、ホスト装置１１と接続されたときに割り振られたターゲット装置毎のアドレス番号の小さい方から行うものとする。記憶容量の情報を受信したターゲット装置ＴＧＴ＿１、ＴＧＴ＿２は、どちらのバッファメモリ１０１の記憶容量が大きいかを判別する。ターゲット装置ＴＧＴ＿１のバッファメモリ１０１の方が記憶容量が大きいと判断された場合、ターゲット装置ＴＧＴ＿１が、ターゲット装置ＴＧＴ＿２に対して、データの蓄積が可能であることを通知する（Ｓ１０８）。上記通知を受け取ったターゲット装置ＴＧＴ＿２は、それに対する応答（ＡＣＫ）をターゲット装置ＴＧＴ＿１に送信する（Ｓ１０９）。
【００５６】
その後、ターゲット装置ＴＧＴ＿２は、ホスト装置１１に転送すべき転送データをターゲット装置ＴＧＴ＿１に送信することを開始する（Ｓ１１０）。具体的には、ターゲット装置ＴＧＴ＿２は、処理Ｓ１０３において受信した前記待機時間の情報に基づいて、ターゲット装置ＴＧＴ＿１との間で通信可能な時間を算出するとともに、その算出した時間内に送信可能な最大データ量を算出する。そして、算出した最大データ量に応じた転送データをターゲット装置ＴＧＴ＿１に対して送信する。一方、ターゲット装置ＴＧＴ＿１は、ターゲット装置ＴＧＴ＿２から送信された転送データを自らのバッファメモリ１０１に逐次格納する。
【００５７】
ホスト装置１１は、ターゲット装置ＴＧＴ＿３に対するデータの送信が完了したら、その送信が完了したことをターゲット装置ＴＧＴ＿１に通知する（Ｓ１１１）。ターゲット装置ＴＧＴ＿１は、それに対する応答（ＡＣＫ）に加え、ターゲット装置ＴＧＴ＿２の転送データを蓄積していることをホスト装置１１に通知する（Ｓ１１２）。同様に、ホスト装置１１は、送信が完了したことをターゲット装置ＴＧＴ＿２に通知する（Ｓ１１３）。ターゲット装置ＴＧＴ＿２は、それに対する応答（ＡＣＫ）をホスト装置１１に通知する（Ｓ１１４）。その後、ターゲット装置ＴＧＴ＿１は、バッファメモリ１０１に格納したターゲット装置ＴＧＴ＿２の転送データと、自らが保有するホスト装置１１に転送すべき転送データとをまとめて、ホスト装置１１に送信する（Ｓ１１５）。例えば、ターゲット装置ＴＧＴ＿１は、最初のバルク通知のトランザクションでデータの蓄積を行ったことをホスト装置１１に通知し、その後のトランザクションでまとめて転送データを送信する。この通信は、ホスト装置１１とターゲット装置ＴＧＴ＿１との間でのみで行われる。すなわち、この通信のフレームには、ターゲット装置ＴＧＴ＿２やターゲット装置ＴＧＴ＿３のトランザクションは含まれず、ターゲット装置ＴＧＴ＿１のトランザクションのみよってデータが送信される。
【００５８】
ターゲット装置ＴＧＴ＿１は、ホスト装置１１へのデータ送信が完了したら、バッファメモリ１０１に格納した転送データをホスト装置１１に転送したことを、ターゲット装置ＴＧＴ＿２に対して通知する（Ｓ１１６）。ターゲット装置ＴＧＴ＿２は、それに対する応答（ＡＣＫ）をターゲット装置ＴＧＴ＿１に通知する（Ｓ１１７）。以上の処理が完了すると、ホスト装置１１及びターゲット装置ＴＧＴは、通常のオペレーションに戻る。
【００５９】
図３は、第２通信モードによる通信方法の別の一例を示すフロー図である。同図には、ターゲット装置ＴＧＴ＿３がホスト装置１１に対して大容量のデータを送信し、ターゲット装置ＴＧＴ＿１及びターゲット装置ＴＧＴ＿２が小容量のデータをホスト装置１１に送信する場合の通信手順が例示されている。
【００６０】
先ず、ターゲット装置ＴＧＴ＿３は、ホスト装置１１からのポーリングによりデータ転送の有無の問い合わせを受けたら、転送データの優先的な送信要求と、送信の目的とされる転送データのデータ量の情報をホスト装置１１に通知する（Ｓ２０１）。ホスト装置１１は、それに対する応答をターゲット装置ＴＧＴ＿３に送信する（Ｓ２０２）。ホスト装置１１は、受信した前記データ量の情報に基づいて、ターゲット装置ＴＧＴ＿３との通信が完了するまでの所要時間を算出し、所定の閾値と比較する。ホスト装置１１は、算出した所要時間が所定の閾値よりも大きい判断したら、バルク通信のトランザクションによってターゲット装置ＴＧＴ＿１に対して第２通信モードでの通信を行うことを指示するとともに、ホスト装置１１と通信が可能になるまでの待機時間の情報を送信する（Ｓ１０１）。ターゲット装置ＴＧＴ＿１は、それに対する応答（ＡＣＫ）をホスト装置１１に送信する（Ｓ１０２）。同様に、ホスト装置１１は、ターゲット装置ＴＧＴ＿２に対して第２通信モードでの通信を行うことを指示するとともに、ホスト装置１１と通信が可能になるまでの待機時間の情報を送信する（Ｓ１０３）。ターゲット装置ＴＧＴ＿２は、それに対する応答（ＡＣＫ）をホスト装置１１に送信する（Ｓ１０４）。
【００６１】
ホスト装置１１は、ターゲット装置ＴＧＴ＿３との間で通信を開始する（Ｓ２０５）。具体的には、ホスト装置１１は、他のターゲット装置ＴＧＴ＿１，ＴＧＴ＿２に通知した前記待機時間の情報に基づく送信完了予定時刻まで、転送データを受信することを繰り返し行う。仮にデータの再送が必要となり、当初の送信完了予定時刻までに全てのデータの受信が終わらない場合であっても、当初の送信完了予定時刻になったらデータの受信を停止する。このとき、ホスト装置１１は、ターゲット装置ＴＧＴ＿１、ＴＧＴ＿２のトランザクションを発行せず、ターゲット装置ＴＧＴ＿３のトランザクションのみによってデータの送信を行う。
【００６２】
処理Ｓ２０５においてホスト装置１１とターゲット装置ＴＧＴ＿３の通信が開始されると、ターゲット装置ＴＧＴ＿１、ＴＧＴ＿２間の通信が開始される。その後の処理は、図２の処理Ｓ１０６〜Ｓ１１７と同様である。これにより、ターゲット装置ＴＧＴ＿２の転送データがターゲット装置ＴＧＴ＿１のバッファメモリ１０１に一旦蓄積され、ホスト装置１１とターゲット装置ＴＧＴ＿３との通信の完了後に、ターゲット装置ＴＧＴ＿１が、自らの転送データとバッファメモリ１０１に蓄積されたデータとをまとめてホスト装置１１に送信する。
【００６３】
以上の通信方法によれば、１つのフレームの中で割り振られたトランザクションによって夫々のターゲット装置がホスト装置にデータを転送する場合に比べて、データ転送におけるオーバーヘッドを小さくすることができる。例えば、上記例の場合、ターゲット装置ＴＧＴ＿１が転送データをまとめてホスト装置１１に送信することにより、ターゲット装置ＴＧＴ＿１とターゲット装置ＴＧＴ＿２とが別個にホスト装置１１にデータを送信する場合に比べてイン・トークンパケットの送信回数が少なくなるため、データ転送におけるオーバーヘッドが小さくなり、スループットが向上する。
【００６４】
また、ＵＳＢ規格では、スイッチングハブに接続されたターゲット装置の通信スピードが相異する場合、通信スピードが一番遅いターゲット装置の通信スピードに従わなくてはならないが、上記方法によれば、転送データをバッファメモリに蓄積したターゲット装置が取り得る最速の通信スピードでデータ通信を行うことができる。例えば、ターゲット装置ＴＧＴ＿２がロー・スピードモードに、ターゲット装置ＴＧＴ＿１がフル・スピードモードに対応している場合、１フレーム内でターゲット装置ＴＧＴ＿１とターゲット装置ＴＧＴ＿２がデータ送信を行うには、ターゲット装置ＴＧＴ＿２だけでなくターゲット装置ＴＧＴ＿１もロー・スピードモードで通信を行う必要がある。しかしながら、上記方法によれば、ターゲット装置ＴＧＴ＿１のみホスト装置１１と通信を行うので、フル・スピードモードでデータを転送することができ、スループットを向上させることができる。
【００６５】
以上、実施の形態１に係るデータ転送システム１によれば、ＵＳＢ通信の通信時間を短縮することが可能となる。
【００６６】
≪実施の形態２≫
実施の形態１では、一つのターゲット装置がホスト装置と通信を行っている期間に他のターゲット装置間で通信を行い、他のターゲット装置の１つに転送データを蓄積する構成及び方法を例示したが、実施の形態２では、上記期間に、他のターゲット装置の転送データをスイッチングハブに蓄積する構成及び方法を例示する。
【００６７】
図４に、実施の形態２に係る、ＵＳＢ通信が可能なデータ転送システムを例示する。
【００６８】
同図に示されるデータ転送システム２は、ホスト装置１１と、複数の周辺装置（ターゲット装置）ＴＧＴ＿１〜ＴＧＴ＿３と、スイッチングハブ２２とを含んで構成され、ホスト装置１１とターゲット装置ＴＧＴとは、スイッチングハブ２２を介してＵＳＢ通信が可能にされる。なお、同図において、実施の形態１に係るデータ転送システムと同様の構成要素には同一の符号を付して、その詳細な説明を省略する。
【００６９】
スイッチングハブ２２は、ホスト装置１１のＵＳＢホストコントローラ１１３と接続可能にされるアップストリームポートとしての入出力ポート１２１と、ターゲット装置ＴＧＴと接続可能にされるダウンストリームポートとしてのｎ個（ｎは３以上の整数）の入出力ポートと、スイッチング回路１２２、制御部２２０と、バッファメモリ（ＢＵＦ）２２５と、を含んで構成される。なお、同図には、ダウンストリームポートとしてのｎ個の入出力ポートとして、入出力ポート１２３、１２４、１２５の３つのポートが例示されているが、３つ以上であれば、その数に制限はない。特に制限されないが、入出力ポート１２１、１２３、１２４、１２５、スイッチング回路１２２、制御部２２０、及びバッファメモリ２２５は、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成される。なお、バッファメモリ２２５は、制御部２２０等と同じチップに構成しても良いし、別チップとしても良く、特に制限されない。
【００７０】
バッファメモリ２２５は、データを格納するための記憶装置である。例えば、バッファメモリ２２５は大容量の揮発性の記憶領域を含んで構成される。特に制限されないが、バッファメモリ２２５は、ＲＡＭである。
【００７１】
制御部２２０は、入出力ポート１２１、１２３〜１２５及びスイッチング回路１２２を制御することにより、入出力ポート１２１に接続されたホスト装置１１と入出力ポート１２３〜１２５に接続されたターゲット装置ＴＧＴ＿１Ａ〜ＴＧＴ＿３Ａとの間の通信を制御する。例えば、制御部２２０は、ホスト装置１１におけるＵＳＢホストコントローラ１１３から送信された制御信号によって第１通信モードが指示された場合には、指定されたターゲット装置ＴＧＴが接続される入出力ポート１２３〜１２５と入出力ポート１２１との接続を確立することにより、ホスト装置１１と指定されたターゲット装置ＴＧＴとの通信を可能にする。他方、ＵＳＢホストコントローラ１１３から送信された制御信号によって第２通信モードが指示された場合には、制御部２２０は、第１通信モードと同様に一つのターゲット装置とホスト装置１１との通信経路を確立するとともに、擬似ホスト装置として、他のターゲット装置とスイッチングハブ２２との間のデータの送受信を可能にする。具体的には、制御部２２０は、第２通信モードを指示する制御信号を受け取ったら、データの蓄積が可能であることを他のターゲット装置に通知するとともに、通知したターゲット装置から送信された夫々の転送データをバッファメモリ２２５にまとめて格納する。そして、バッファメモリ２２５に格納された転送データを、ホスト装置１１にまとめて送信する。なお、バッファメモリ２２５の記憶容量よりも他のターゲット装置から送信される転送データの方が大きい場合には、当該バッファメモリに格納可能なデータ量の転送データだけを受信する。そして、ホスト装置とターゲット装置の通信を終わった段階で、第１通信モードにおいて、残りの転送データを持つターゲット装置からホスト装置１１にあらためて、前記残りの転送データを送信するようにすれば良い。
【００７２】
ターゲット装置ＴＧＴ＿１Ａ〜ＴＧＴ＿３Ａは、ホスト装置１１との間のＵＳＢ通信に加え、スイッチングハブとの間でＵＳＢ通信が可能にされる。ターゲット装置ＴＧＴ＿１Ａ〜ＴＧＴ＿３Ａは、例えば、ＵＳＢターゲットコントローラ２００及び内部回路１０３を含んで構成される。ＵＳＢターゲットコントローラ２００は、スイッチングハブ２２を介してホスト装置１１と通信を行うとともに、擬似ホスト装置としてのスイッチングハブ２２と通信を行う。ＵＳＢターゲットコントローラ２００は、例えば、制御部２０２、及び入出力ポート（Ｉ／Ｏ＿ＰＲＴ）１０４を含んで構成される。
【００７３】
制御部２０２は、ホスト装置１１から供給された制御信号によって第１通信モードが指示された場合には、内部回路１０３から供給されたホスト装置１１に送信すべき転送データを入出力ポート１０４から送信するとともに、入出力ポート１０４で受信した転送データを内部回路１０３に供給する。他方、ホスト装置１１から供給された制御信号によって第２通信モードが指示された場合には、制御部２０２は、擬似ホスト装置としてのスイッチングハブ２２と通信を行う。例えば、制御部２０２は、ホスト装置１１から受信した前記待機時間の情報に基づいて、スイッチングハブ２２との間で通信可能な時間を算出するとともに、その算出した時間内に送信可能な最大データ量を算出する。そして、スイッチングハブ２２からデータの蓄積が可能であることの通知を受け取ったら、算出した最大データ量に応じた転送データをスイッチングハブ２２に対して送信する。
【００７４】
次に、データ転送システム２における第２通信モードでの通信方法について、図５、６を用いて詳細に説明する。
【００７５】
図５は、データ転送システム２における第２通信モードによる通信方法の一例を示すフロー図である。同図には、ホスト装置１１がターゲット装置ＴＧＴ＿３Ａに対して大容量のデータを送信し、ターゲット装置ＴＧＴ＿１Ａ及びターゲット装置ＴＧＴ＿２Ａが小容量のデータをホスト装置１１に送信する場合の通信手順が例示されている。
【００７６】
先ず、ホスト装置１１は、ターゲット装置ＴＧＴ＿３Ａに送信すべき転送データのデータ量に基づいて、ターゲット装置ＴＧＴ＿３Ａとの通信が完了するまでの所要時間を算出し、所定の閾値と比較する。ホスト装置１１は、算出した所要時間が所定の閾値よりも大きい判断したら、バルク通信のトランザクションによって、スイッチングハブ２２に対して第２通信モードでの通信を行うことを指示するとともに、ホスト装置１１との通信が可能になるまでの待機時間の情報を送信する（Ｓ３０１）。スイッチングハブ２２（制御部２２０）は、それに対する応答（ＡＣＫ）をホスト装置１１に送信する（Ｓ３０２）。同様に、ホスト装置１１は、ターゲット装置ＴＧＴ＿１Ａに対して第２通信モードでの通信を行うことを指示するとともに、前記待機時間の情報を送信する（Ｓ３０３）。ターゲット装置ＴＧＴ＿１Ａは、それに対する応答（ＡＣＫ）をホスト装置１１に送信する（Ｓ３０４）。更に、ホスト装置１１は、ターゲット装置ＴＧＴ＿２Ａに対して第２通信モードでの通信を行うことを指示するとともに、前記待機時間の情報を送信する（Ｓ３０５）。ターゲット装置ＴＧＴ＿２Ａは、それに対する応答（ＡＣＫ）をホスト装置１１に送信する（Ｓ３０６）。
【００７７】
ホスト装置１１はターゲット装置ＴＧＴ＿３Ａとの間で通信を開始する（Ｓ３０７）。具体的には、ホスト装置１１は、スイッチングハブ２２や他のターゲット装置ＴＧＴ＿１Ａ，ＴＧＴ＿２Ａに通知した前記待機時間の情報に基づく送信完了予定時刻になるまで、転送データを送信することを繰り返し行う。仮にデータの再送が必要となり、当初の送信完了予定時刻までに全てのデータの送信が終わらない場合であっても、当初の送信完了予定時刻になったら転送データの送信を停止する。このとき、ホスト装置１１は、ターゲット装置ＴＧＴ＿１Ａ、ＴＧＴ＿２Ａのトランザクションを発行せず、ターゲット装置ＴＧＴ＿３Ａのトランザクションのみによってデータの送信を行う。
【００７８】
処理Ｓ３０７においてホスト装置１１とターゲット装置ＴＧＴ＿３Ａの通信が開始されると、スイッチングハブ２２とターゲット装置ＴＧＴ＿１Ａ、ＴＧＴ＿２Ａの通信が開始される。具体的には、ホスト装置１１からターゲット装置ＴＧＴ＿１Ａ，ＴＧＴ＿２Ａへの定期的なＳＯＦパケットの送信が停止したら、それをトリガとして、スイッチングハブ２２が擬似ホスト装置として、ターゲット装置ＴＧＴ＿１Ａ、ＴＧＴ＿２Ａと通信を開始する。先ず、スイッチングハブ２２は、データの蓄積が可能であることをターゲット装置ＴＧＴ＿１Ａに送信する（Ｓ３０８）。ターゲット装置ＴＧＴ＿１Ａは、それに対する応答（ＡＣＫ）をスイッチングハブ２２に送信する（Ｓ３０９）。同様に、スイッチングハブ２２は、データの蓄積が可能であることをターゲット装置ＴＧＴ＿２Ａに送信する（Ｓ３１０）。ターゲット装置ＴＧＴ＿２Ａは、それに対する応答（ＡＣＫ）をスイッチングハブ２２に送信する（Ｓ３１１）。
【００７９】
その後、ターゲット装置ＴＧＴ＿１Ａは、ホスト装置１１に転送すべき転送データをスイッチングハブ２２に送信する（Ｓ３１２）。具体的には、ターゲット装置ＴＧＴ＿１Ａは、処理Ｓ３０３において受信した前記待機時間の情報に基づいて、スイッチングハブ２２との間で通信可能な時間を算出するとともに、その算出した時間内に送信可能な最大データ量を算出する。そして、算出した最大データ量に応じた転送データをスイッチングハブ２２に対して送信する。一方、スイッチングハブ２２は、ターゲット装置ＴＧＴ＿１Ａから送信された転送データをバッファメモリ２２５に逐次格納する。同様に、ターゲット装置ＴＧＴ＿２Ａは、ホスト装置１１に転送すべき転送データをスイッチングハブ２２に送信する（Ｓ３１３）。具体的には、ターゲット装置ＴＧＴ＿２は、処理Ｓ３０５において受信した前記待機時間の情報に基づいて、スイッチングハブ２２との間で通信可能な時間を算出するとともに、その算出した時間内に送信可能な最大データ量を算出する。そして、算出した最大データ量に応じた転送データをスイッチングハブ２２に対して送信する。一方、スイッチングハブ２２は、ターゲット装置ＴＧＴ＿２Ａから送信された転送データをバッファメモリ２２５に逐次格納する。
【００８０】
ホスト装置１１は、ターゲット装置ＴＧＴ＿３Ａに対するデータの送信が完了したら、その送信が完了したことをスイッチングハブ２２に通知する（Ｓ３１４）。スイッチングハブ２２は、それに対する応答（ＡＣＫ）に加え、ターゲット装置ＴＧＴ＿１Ａ、ＴＧＴ＿２Ａの転送データを蓄積していることをホスト装置１１に通知する（Ｓ３１５）。同様に、ホスト装置１１は、送信が完了したことをターゲット装置ＴＧＴ＿１Ａに通知する（Ｓ３１６）。ターゲット装置ＴＧＴ＿１Ａは、それに対する応答（ＡＣＫ）をホスト装置１１に通知する（Ｓ３１７）。更に、ホスト装置１１は、送信が完了したことをターゲット装置ＴＧＴ＿２Ａに通知する（Ｓ３１８）。ターゲット装置ＴＧＴ＿２Ａは、それに対する応答（ＡＣＫ）をホスト装置１１に通知する（Ｓ３１９）。
【００８１】
その後、スイッチングハブ２２は、バッファメモリ２２５に格納したターゲット装置ＴＧＴ＿１Ａ及びターゲット装置ＴＧＴ＿２Ａの転送データをホスト装置１１に送信する（Ｓ３２０）。例えば、スイッチングハブ２２は、最初のバルク通知のトランザクションでデータの蓄積を行ったことをホスト装置１１に通知し、その後のトランザクションでまとめて転送データを送信する。この通信は、ホスト装置１１とスイッチングハブ２２との間でのみで行われる。すなわち、この通信のフレームには、ターゲット装置ＴＧＴ＿３Ａのトランザクションや、ターゲット装置ＴＧＴ＿１Ａ、ＴＧＴ＿２Ａのトランザクションが含まれず、スイッチングハブ２２のトランザクションのみよってデータが送信される。
【００８２】
スイッチングハブ２２は、ホスト装置１１へのデータ送信が完了したら、バッファメモリ２２５に格納した転送データをホスト装置１１に転送したことをターゲット装置ＴＧＴ＿１Ａに対して通知する（Ｓ３２１）。ターゲット装置ＴＧＴ＿１Ａは、それに対する応答（ＡＣＫ）をスイッチングハブ２２に通知する（Ｓ３２２）。同様に、スイッチングハブ２２は、バッファメモリ２２５に格納した転送データをホスト装置１１に転送したことをターゲット装置ＴＧＴ＿２Ａに対して通知する（Ｓ３２３）。ターゲット装置ＴＧＴ＿２Ａは、それに対する応答（ＡＣＫ）をスイッチングハブ２２に通知する（Ｓ３２４）。以上の処理が完了すると、ホスト装置１１及びターゲット装置ＴＧＴは、通常のオペレーションに戻る。
【００８３】
図６は、データ転送システム２における第２通信モードによる通信方法の別の一例を示すフロー図である。同図には、ターゲット装置ＴＧＴ＿３Ａがホスト装置１１に対して大容量のデータを送信し、ターゲット装置ＴＧＴ＿１Ａ及びターゲット装置ＴＧＴ＿２Ａが小容量のデータをホスト装置１１に送信する場合の通信手順が例示されている。
【００８４】
先ず、ターゲット装置ＴＧＴ＿３Ａは、ホスト装置１１からのポーリングによりデータ転送の有無の問い合わせを受けたら、転送データの優先的な送信要求と、送信の目的とされる転送データのデータ量の情報をホスト装置１１に通知する（Ｓ４０１）。ホスト装置１１は、それに対する応答をターゲット装置ＴＧＴ＿３Ａに送信する（Ｓ４０２）。ホスト装置１１は、ターゲット装置ＴＧＴ＿３Ａから受信した前記データ量の情報に基づいて、ターゲット装置ＴＧＴ＿３Ａとの通信が完了するまでの所要時間を算出し、所定の閾値と比較する。ホスト装置１１は、算出した所要時間が所定の閾値よりも大きい判断したら、スイッチングハブ２２に対して第２通信モードでの通信を行うことを指示するとともに、ホスト装置１１との通信が可能になるまでの待機時間の情報を送信する（Ｓ３０１）。スイッチングハブ２２（制御部２２０）は、それに対する応答（ＡＣＫ）をホスト装置１１に送信する（Ｓ３０２）。同様に、ホスト装置１１は、ターゲット装置ＴＧＴ＿１Ａに対して第２通信モードでの通信を行うことを指示するとともに、前記待機時間の情報を送信する（Ｓ３０３）。ターゲット装置ＴＧＴ＿１Ａは、それに対する応答（ＡＣＫ）をホスト装置１１に送信する（Ｓ３０４）。更に、ホスト装置１１は、ターゲット装置ＴＧＴ＿２Ａに対して第２通信モードでの通信を行うことを指示するとともに、前記待機時間の情報を送信する（Ｓ３０５）。ターゲット装置ＴＧＴ＿２Ａは、それに対する応答（ＡＣＫ）をホスト装置１１に送信する（Ｓ３０６）。
【００８５】
ホスト装置１１はターゲット装置ＴＧＴ＿３Ａとの間で通信を開始する（Ｓ４０７）。具体的には、ホスト装置１１は、スイッチングハブ２２や他のターゲット装置ＴＧＴ＿１Ａ，ＴＧＴ＿２Ａに通知した待機時間の情報に基づく送信完了予定時刻まで、転送データの受信を繰り返し行う。仮にデータの再送が必要となり、当初の送信完了予定時刻までに全てのデータの受信が終わらない場合であっても、当初の送信完了予定時刻になったらデータの受信を停止する。このとき、ホスト装置１１は、ターゲット装置ＴＧＴ＿１Ａ、ＴＧＴ＿２Ａのトランザクションを発行せず、ターゲット装置ＴＧＴ＿３Ａのトランザクションのみによってデータの送信を行う。処理Ｓ４０７においてホスト装置１１とターゲット装置ＴＧＴ＿３の通信が開始されると、スイッチングハブ２２とターゲット装置ＴＧＴ＿１Ａ、ＴＧＴ＿２Ａとの間の通信が開始される。その後の処理は、図５の処理Ｓ３０８〜Ｓ３２４と同様である。これにより、ターゲット装置ＴＧＴ＿１Ａ、ＴＧＴ＿２Ａの転送データがスイッチングハブ２２のバッファメモリ２２５に一旦蓄積され、ホスト装置１１とターゲット装置ＴＧＴ＿３Ａとの通信の完了後に、スイッチングハブ２２が、バッファメモリ２２５に蓄積された転送データをまとめてホスト装置１１に送信する。
【００８６】
以上の通信方法によれば、１つのフレームの中で割り振られたトランザクションによって、夫々のターゲット装置がホスト装置にデータを転送する場合に比べて、データ転送におけるオーバーヘッドを小さくすることができる。例えば、上記例の場合、スイッチングハブ２２が転送データをまとめてホスト装置１１に送信することにより、ターゲット装置ＴＧＴ＿１Ａとターゲット装置ＴＧＴ＿２Ａとが別個にホスト装置１１にデータを送信する場合に比べてイン・トークンパケットの送信回数が少なくなるため、データ転送におけるオーバーヘッドが小さくなり、スループットが向上する。
【００８７】
また、スイッチングハブ２２が取り得る最速の通信スピードでデータ通信を行うことができる。例えば、ターゲット装置ＴＧＴ＿１Ａとターゲット装置ＴＧＴ＿２Ａがロー・スピードモードに、スイッチングハブ２２がフル・スピードモードに対応している場合、１フレーム内でターゲット装置ＴＧＴ＿１Ａ、ＴＧＴ＿２Ａがデータ送信を行うには、ターゲット装置ＴＧＴ＿１、ＴＧＴ＿２とホスト装置１１との間ではロー・スピードモードで通信を行う必要がある。しかしながら、上記方法によれば、スイッチングハブ２２のみがデータを送信するので、フル・スピードモードでホスト装置１１と通信を行うことができ、スループットを向上させることができる。
【００８８】
以上、実施の形態２に係るデータ転送システム２によれば、ＵＳＢ通信の通信時間を短縮することが可能となる。
【００８９】
≪実施の形態３≫
図７に、実施の形態１に係る通信方法を適用したデータ転送システムの具体例を示す。同図に示されるデータ転送システム１Ａにおいて、ホスト装置１１としてのメディアサーバ（ＭＤ＿ＳＶＲ）１１Ａは、スイッチングハブ１２Ａを介して、ターゲット装置ＴＧＴとしてのビデオカメラ（ＶＤＣＡＭ）１０Ａ、スマートフォン（ＳＭＴＰＨ）１０Ｂ、及びデジタルカメラ（ＤＧＣＡＭ）１０Ｃと、ＵＳＢによりインターフェースされる。
【００９０】
メディアサーバ１１Ａは、動画データや画像データ等が蓄積可能とされ、必要に応じてモニタ（ＴＶ等）に接続されて映像の再生が可能にされる。ビデオカメラ１０Ａは、録画した大容量の動画データが格納される。スマートフォン１０Ｂは、例えばカメラ機能を備え、小量の画像データが蓄積されている。また、スマートフォン１０Ｂ内のＵＳＢターゲットコントローラ１００は、一次的にデータの蓄積が可能なバッファメモリ１０１を有している。デジタルカメラ１０Ｃは、小量の画像データが蓄積されている。
【００９１】
データ転送システム１Ａにおいて、ビデオカメラ１０Ａ、スマートフォン１０Ｂ、及びデジタルカメラ１０Ｃからメディアサーバ１１Ａにデータを転送する場合を考える。この場合、ビデオカメラ１０Ａの転送データが他のスマートフォン１０Ｂやデジタルカメラ１０Ｃの転送データよりもデータ量が大きいため、先ず、メディアサーバ１１Ａとビデオカメラ１０Ａとの間で優先的にＵＳＢ通信を行う。通信を開始する際、メディアサーバ１１Ａは、スマートフォン１０Ｂ及びデジタルカメラ１０Ｃに対して、第２通信モードで通信するように指示するとともに前記待機時間の情報を送信する。メディアサーバ１１Ａとビデオカメラ１０Ａが通信を行っている期間に、スマートフォン１０Ｂ及びデジタルカメラ１０Ｃは相互に通信を行う。この通信において、デジタルカメラ１０Ｃは、メディアサーバ１１Ａに転送すべき画像データとしての転送データをスマートフォン１０Ｂに送信し、当該転送データがスマートフォン１０Ｂのバッファメモリ１０１に蓄積される。その後、メディアサーバ１１Ａとビデオカメラ１０Ａの通信が完了すると、スマートフォン１０Ｂはメディアサーバ１１Ａとの間でＵＳＢ通信を確立し、自らが保有する画像データと、バッファメモリ１０１に蓄積されたデジタルカメラ１０Ｃの画像データとをまとめて送信する。これにより、従来のＵＳＢ通信に比べて各ターゲット装置からホスト装置へのデータ転送を効率良く行うことができ、データ転送システムにおけるＵＳＢ通信の通信時間を短縮することができる。
【００９２】
≪実施の形態４≫
図８に、実施の形態１に係る通信方法を適用したデータ転送システムの別の具体例を示す。同図に示されるデータ転送システム１Ｂにおいて、ホスト装置１１としてのメディアサーバ１１Ａは、スイッチングハブ１２Ａを介して、ターゲット装置ＴＧＴとしてのスマートフォン（ＳＭＴＰＨ）１０Ｄ、スマートフォン１０Ｂ、及びデジタルカメラ１０Ｃと、ＵＳＢによりインターフェースされる。なお、図８において実施の形態３に係るデータ転送システム１Ａと同様の構成要素には同一の符号を付して、その詳細な説明を省略する。
【００９３】
スマートフォン１０Ｄは、大容量のデータの格納が可能にされる不揮発性の記憶装置（例えばフラッシュメモリ）を備え、例えば、当該記憶装置に格納した動画データの再生が外出先で可能にされる。
【００９４】
データ転送システム１Ｂにおいて、メディアサーバ１１Ａからスマートフォン１０Ｄに動画データを転送するとともに、スマートフォン１０Ｂ及びデジタルカメラ１０Ｃからメディアサーバ１１Ａにデータを転送する場合を考える。この場合、メディアサーバ１１Ａからスマートフォン１０Ｄに転送される転送データ（動画データ）が、他のスマートフォン１０Ｂやデジタルカメラ１０Ｃの転送データよりもデータ量が大きいため、先ず、メディアサーバ１１Ａとスマートフォン１０Ｄとの間で優先的にＵＳＢ通信を行う。通信を開始する際、メディアサーバ１１Ａは、スマートフォン１０Ｂ及びデジタルカメラ１０Ｃに対して、第２通信モードで通信するように指示するとともに前記待機時間の情報を送信する。メディアサーバ１１Ａとスマートフォン１０Ｄとが通信を行っている期間に、スマートフォン１０Ｂ及びデジタルカメラ１０Ｃは相互に通信を行う。この通信において、デジタルカメラ１０Ｃは、メディアサーバ１１Ａに転送すべき画像データとしての転送データをスマートフォン１０Ｂに送信し、当該転送データがスマートフォン１０Ｂのバッファメモリ１０１に蓄積される。その後、メディアサーバ１１Ａとスマートフォン１０Ｄの通信が完了すると、スマートフォン１０Ｂはメディアサーバ１１Ａとの間でＵＳＢ通信を確立し、自らが保有する画像データと、バッファメモリ１０１に蓄積されたデジタルカメラ１０Ｃの画像データとをまとめて送信する。これにより、実施の形態３に係るデータ転送システムと同様に、データ転送システムにおけるＵＳＢ通信の通信時間を短縮することができる。
【００９５】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００９６】
例えば、実施の形態１において各ターゲット装置ＴＧＴがＵＳＢターゲットコントローラ１００内にバッファメモリ１０１を備える構成を例示したが、これに限られない。例えば、ホスト装置１１とターゲット装置ＴＧＴ＿３が通信を行っている期間に、ターゲット装置ＴＧＴ＿１，ＴＧＴ＿２が通信を行う場合、ターゲット装置ＴＧＴ＿１、ＴＧＴ＿２の少なくとも１つがバッファメモリを備えていればよい。
【００９７】
また、実施の形態１乃至４では、ターゲット装置ＴＧＴが３つの場合を例示したが、これに限られず、３つ以上であれば、上記通信方法によるＵＳＢ通信の通信時間の短縮の効果が得られる。例えば、実施の形態１において、ターゲット装置が４つスイッチングハブ１２に接続されていたとすると、一つのターゲット装置がホスト装置と通信を行っている間、残りの３つのターゲット装置間で通信を行うことができる。このとき、上記３つのターゲット装置は、相互に記憶容量の情報をやり取りし、夫々のターゲット装置が自らのバッファメモリの記憶容量が最も大きいか否かを判別する。そして、最も大きい記憶容量のバッファメモリを有すると判断したターゲット装置が残り２つのターゲット装置に対して、データの蓄積が可能であることを示す情報を通知する。それ以降の処理を実施の形態１で示した方法と同様することで、上記と同様の効果を得ることができる。
【００９８】
実施の形態２の図５，６において、ターゲット装置ＴＧＴ＿１Ａ，ＴＧＴ＿２Ａからホスト装置１１に転送データを送信する場合について例示したが、ホスト装置１１からターゲット装置ＴＧＴ＿１Ａ，ＴＧＴ＿２Ｂに転送データを送信する場合でも同様に、ＵＳＢ通信の通信時間を短縮することができる。例えば、初めに、ホスト装置１１からスイッチングハブ２２に対して、ターゲット装置ＴＧＴ＿１Ａ，ＴＧＴ＿２Ａに転送すべき転送データをまとめて送信し、バッファメモリ２２５に格納しておく。そして、ホスト装置１１とターゲット装置ＴＧＴ＿３Ａが通信を開始したら、スイッチングハブ２２がバッファメモリ２２５に格納された転送データをターゲット装置ＴＧＴ＿１、ＴＧＴ２に順次転送すれば良い。
【００９９】
バッファメモリ１０１、２２５が揮発性の記憶装置である場合を例示したが、書き換え可能な不揮発性の記憶装置（例えばフラッシュメモリ）であっても良い。
【符号の説明】
【０１００】
１  データ転送システム
１１  ホスト装置
ＴＧＴ，ＴＧＴ＿１〜ＴＧＴ＿３  周辺装置（ターゲット装置，ＰＲＤ）
１２  スイッチングハブ
１１０  中央処理装置（ＣＰＵ）
１１１  メモリ（ＭＲＹ）
１１２  バス
１１３  ＵＳＢホストコントローラ（ＵＳＢ＿ＣＮＴ）
１１３０  制御部（ＣＮＴ）
１１３１  入出力ポート（Ｉ／Ｏ＿ＰＲＴ）
１２０  制御部（ＣＮＴ）
１２１  入出力ポート（Ｉ／Ｏ＿ＰＲＴ，アップストリームポート）
１２２  スイッチング回路（ＳＷＣＩＲ）
１２３，１２４，１２５  入出力ポート（Ｉ／Ｏ＿ＰＲＴ，ダウンストリームポート）
１００  ＵＳＢターゲットコントローラ
１０１  バッファメモリ
１０２  制御部
１０３  内部回路
１０４  入出力ポート（Ｉ／Ｏ＿ＰＲＴ）
２  データ転送システム
ＴＧＴ＿１Ａ，ＴＧＴ＿２Ａ、ＴＧＴ＿３Ａ
２２  スイッチングハブ
２２０  制御部（ＣＮＴ）
２２５  バッファメモリ（ＢＵＦ）
２００  ＵＳＢターゲットコントローラ
２０２  制御部（ＣＮＴ）
１Ａ、２Ａ  データ転送システム
１１Ａ  メディアサーバ
１２Ａ  スイッチングハブ
１０Ａ  ビデオカメラ
１０Ｂ、１０Ｄ  スマートフォン
１０Ｃ  デジタルカメラ
【図１】
2014168144.tif 000003
【図２】
2014168144.tif 000004
【図３】
2014168144.tif 000005
【図４】
2014168144.tif 000006
【図５】
2014168144.tif 000007
【図６】
2014168144.tif 000008
【図７】
2014168144.tif 000009
【図８】
2014168144.tif 000010