(57)【要約】【課題】パケット転送時における消費電力が低減されたＵＳＢ装置を提供する。【解決手段】ＵＳＢ装置は、アップストリームポートとダウンストリームポートの間を転送されるパケットを解析するパケット解析部と、解析結果に基づき、ＵＳＢデバイスが接続された第１のダウンストリームポートと、第１のダウンストリームポートに接続されたＵＳＢデバイスに割り当てられたＵＳＢアドレスと、の対応関係を、ＵＳＢアドレス管理情報として生成するＵＳＢアドレス管理部と、複数のＩＯバッファを制御するバッファ制御部と、を備える。バッファ制御部は、ＵＳＢアドレス管理情報に基づいて、トークンパケットが規定するＵＳＢアドレスが割り当てられたＵＳＢデバイスが接続された第２のダウンストリームポートを特定すると共に、第２のダウンストリームポートとは異なる第３のダウンストリームポートに対応するＩＯバッファを非活性化する。【選択図】図１
2014086031.tif 000002
【特許請求の範囲】
【請求項１】
アップストリームポートと、
複数のダウンストリームポートと、
前記複数のダウンストリームポートのそれぞれに対応する複数のＩＯバッファと、
前記アップストリームポートと前記ダウンストリームポートの間を転送されるパケットを解析するパケット解析部と、
前記パケット解析部による解析結果に基づき、前記複数のダウンストリームポートのうち、ＵＳＢデバイスが接続された第１のダウンストリームポートと、前記第１のダウンストリームポートに接続されたＵＳＢデバイスに割り当てられたＵＳＢアドレスと、の対応関係を、ＵＳＢアドレス管理情報として生成するＵＳＢアドレス管理部と、
前記複数のＩＯバッファのそれぞれについて、活性化及び非活性化を制御するバッファ制御部と、
を備え、
前記バッファ制御部は、前記ＵＳＢアドレス管理情報に基づいて、前記第１のダウンストリームポートであって、トークンパケットが規定するＵＳＢアドレスが割り当てられたＵＳＢデバイスが接続された第２のダウンストリームポートを特定すると共に、前記複数のダウンストリームポートのうち、前記第２のダウンストリームポートとは異なる第３のダウンストリームポートに対応する前記ＩＯバッファを非活性化するＵＳＢ装置。
【請求項２】
前記バッファ制御部は、トランザクションの開始前は、前記複数のダウンストリームポートのそれぞれに対応する前記ＩＯバッファを非活性状態とする請求項１のＵＳＢ装置。
【請求項３】
前記パケット解析部は、パケットのパケット識別子を抽出すると共に、前記アップストリームポートから前記ダウンストリームポートに向かう第１のパケット転送の開始及び終了を検出し、
前記バッファ制御部は、前記抽出されたパケット識別子がトークンパケットのパケット識別子を示し、かつ、前記第１のパケット転送が終了した場合に、前記第３のダウンストリームポートに対応する前記ＩＯバッファを非活性化する請求項２のＵＳＢ装置。
【請求項４】
前記パケット解析部は、前記ダウンストリームポートから前記アップストリームポートに向かう第２のパケット転送の開始及び終了を検出し、
前記バッファ制御部は、前記第２のパケット転送の開始の検出と、前記抽出されたパケット識別子がハンドシェイクパケットのパケット識別子であること、に基づいてトランザクションの終了を判定し、トランザクションが継続している間は、前記第３のダウンストリームポートに対応する前記ＩＯバッファを非活性状態とする請求項３のＵＳＢ装置。
【請求項５】
前記バッファ制御部は、前記パケット解析部における解析結果に基づいて、前記第３のダウンストリームポートに対応する前記ＩＯバッファの消費電力を削減するように制御する請求項４のＵＳＢ装置。
【請求項６】
前記複数のＩＯバッファのそれぞれは、シリアルバスを駆動するドライバ及び前記シリアルバスから信号を受信するレシーバを備え、
前記バッファ制御部は、前記抽出されたパケットのパケット識別子から定まる第１のパケットに続く第２のパケットの転送方向に基づき、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバ又は前記レシーバの活性化及び非活性化を制御する請求項５のＵＳＢ装置。
【請求項７】
前記バッファ制御部は、前記第２のパケットの転送方向が、前記アップストリームポートから前記ダウンストリームポートに向かう方向の場合には、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバを活性化し、
前記第２のパケットの転送方向が、前記ダウンストリームポートから前記アップストリームポートに向かう方向の場合には、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記レシーバを活性化する請求項６のＵＳＢ装置。
【請求項８】
前記バッファ制御部は、前記第２のパケットの転送方向に基づき、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバを非活性状態としている場合に、前記第１のパケット転送の開始を認識すると前記複数のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバを活性化する請求項７のＵＳＢ装置。
【請求項９】
前記パケット解析部は、ＵＳＢホストコントローラから送信されるセットアドレスリクエストを検出すると共に、前記セットアドレスリクエストにより規定されるＵＳＢアドレスを抽出し、
前記ＵＳＢアドレス管理部は、前記セットアドレスリクエストに対して応答するＵＳＢデバイスが接続されたダウンストリームポートと、前記抽出されたＵＳＢアドレスと、を対応付けることで、前記ＵＳＢアドレス管理情報を生成する請求項１乃至８のいずれか一項に記載のＵＳＢ装置。
【請求項１０】
前記複数のＩＯバッファのそれぞれは、シリアルバスにおける電位差が所定の範囲内にあるか否かを検出するスケルチを含み、
前記ＵＳＢアドレス管理部は、前記スケルチが出力する信号に基づいて、前記セットアドレスリクエストに応答するＵＳＢデバイスが接続されたダウンストリームポートを特定する請求項９のＵＳＢ装置。
【請求項１１】
アップストリームポートと、
複数のダウンストリームポートと、
前記複数のダウンストリームポートのそれぞれに対応する複数のＩＯバッファと、を備えるＵＳＢ装置の制御方法であって、
前記アップストリームポートと前記ダウンストリームポートの間を転送されるパケットを解析する工程と、
前記パケットを解析する工程により得られた解析結果に基づき、前記複数のダウンストリームポートのうち、ＵＳＢデバイスが接続された第１のダウンストリームポートと、前記第１のダウンストリームポートに接続されたＵＳＢデバイスに割り当てられたＵＳＢアドレスと、の対応関係を、ＵＳＢアドレス管理情報として生成する工程と、
前記ＵＳＢアドレス管理情報に基づいて、前記第１のダウンストリームポートであって、トークンパケットが規定するＵＳＢアドレスが割り当てられたＵＳＢデバイスが接続された第２のダウンストリームポートを特定する工程と、
前記複数のダウンストリームポートのうち、前記第２のダウンストリームポートとは異なる第３のダウンストリームポートに対応する前記ＩＯバッファを非活性化に制御する工程と、
を含むＵＳＢ装置の制御方法。
【請求項１２】
トランザクションの開始前は、前記複数のダウンストリームポートのそれぞれに対応する前記ＩＯバッファを非活性状態とする工程を含む請求項１１のＵＳＢ装置の制御方法。
【請求項１３】
前記パケットを解析する工程は、パケットのパケット識別子を抽出すると共に、前記アップストリームポートから前記ダウンストリームポートに向かう第１のパケット転送の開始及び終了を検出し、
前記ＩＯバッファを制御する工程は、前記抽出されたパケット識別子がトークンパケットのパケット識別子を示し、かつ、前記第１のパケット転送が終了した場合に、前記第３のダウンストリームポートに対応する前記ＩＯバッファを非活性化する請求項１２のＵＳＢ装置の制御方法。
【請求項１４】
前記パケットを解析する工程は、前記ダウンストリームポートから前記アップストリームポートに向かう第２のパケット転送の開始及び終了を検出し、
前記ＩＯバッファを制御する工程は、前記第２のパケット転送の開始の検出と、前記抽出されたパケット識別子がハンドシェイクパケットのパケット識別子であること、に基づいてトランザクションの終了を判定し、トランザクションが継続する間は、前記第３のダウンストリームポートに対応する前記ＩＯバッファを非活性状態とする請求項１３のＵＳＢ装置の制御方法。
【請求項１５】
前記ＩＯバッファを制御する工程は、前記パケットを解析する工程における解析結果に基づいて、前記第３のダウンストリームポートに対応する前記ＩＯバッファの消費電力を削減するように制御する請求項１４のＵＳＢ装置の制御方法。
【請求項１６】
前記複数のＩＯバッファのそれぞれは、シリアルバスを駆動するドライバ及び前記シリアルバスから信号を受信するレシーバを備え、
前記ＩＯバッファを制御する工程は、前記抽出されたパケットのパケット識別子から定まる第１のパケットに続く第２のパケットの転送方向に基づき、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバ又は前記レシーバの活性化及び非活性化を制御する請求項１５のＵＳＢ装置の制御方法。
【請求項１７】
前記ＩＯバッファを制御する工程は、前記第２のパケットの転送方向が、前記アップストリームポートから前記ダウンストリームポートに向かう方向の場合には、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバを活性化し、
前記第２のパケットの転送方向が、前記ダウンストリームポートから前記アップストリームポートに向かう方向の場合には、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記レシーバを活性化する請求項１６のＵＳＢ装置の制御方法。
【請求項１８】
前記ＩＯバッファを制御する工程は、前記第２のパケットの転送方向に基づき、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバを非活性状態としている場合に、前記第１のパケット転送の開始を認識すると前記複数のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバを活性化する請求項１７のＵＳＢ装置の制御方法。
【請求項１９】
前記パケットを解析する工程は、ＵＳＢホストコントローラから送信されるセットアドレスリクエストを検出すると共に、前記セットアドレスリクエストにより規定されるＵＳＢアドレスを抽出し、
前記ＵＳＢアドレス管理情報を生成する工程は、前記セットアドレスリクエストに対して応答するＵＳＢデバイスが接続されたダウンストリームポートと、前記抽出されたＵＳＢアドレスと、を対応付けることで、前記ＵＳＢアドレス管理情報を生成する請求項１１乃至１８のいずれか一項に記載のＵＳＢ装置の制御方法。
【請求項２０】
トークンパケットを、複数のダウンストリームポートのそれぞれに接続されたＵＳＢデバイスに転送する工程と、
前記複数のダウンストリームポートのうち、ＵＳＢデバイスが接続された第１のダウンストリームポートと、前記第１のダウンストリームポートに接続されたＵＳＢデバイスに割り当てられたＵＳＢアドレスと、の対応関係に規定するＵＳＢアドレス管理情報に基づいて、前記第１のダウンストリームポートであって、トークンパケットが規定するＵＳＢアドレスが割り当てられたＵＳＢデバイスが接続された第２のダウンストリームポートを介して、パケットを転送する工程と、
を含むパケット転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ（Universal Serial Bus）装置、その制御方法及びパケット転送方法に関する。例えば、複数のケーブルを集線するＵＳＢ装置、その制御方法及びパケット転送方法に好適に利用できるものである。
【背景技術】
【０００２】
近年、ＵＳＢ規格に対応したＰＣ（Personal Computer）や電子機器が、広く普及している。ＵＳＢ装置に対する電源供給は、ＡＣアダプタ等から電源供給を受ける形態と、ＵＳＢホストコントローラから電源供給を受ける形態（所謂、バスパワード）と、に大別できる。両者を比較すると、取扱いの容易さから、バスパワードに対応したＵＳＢ装置が強く望まれる。非特許文献１は、ＵＳＢ装置がバスパワードに対応する際の仕様（例えば、消費電力等）を規定する。
【０００３】
ＵＳＢホストコントローラと複数のＵＳＢデバイスとの接続を実現するＵＳＢハブに対しても、バスパワードへの対応が求められる。特に、ノートＰＣ等を初めとしたバッテリを主電源とする機器に接続されるＵＳＢ装置（ＵＳＢハブ及びＵＳＢデバイス）には、バスパワードへの対応が強く求められる。
【０００４】
特許文献１において、ポートにデバイスが接続されたことを検出する手段と、デバイスの電力容量と、に基づいて、検出手段により検出された外部デバイスに電源を供給するか否かを制御する電源供給制御手段と、を備えるＵＳＢ装置が開示されている。
【０００５】
特許文献２において、ＵＳＢポートの状態を監視するステータス監視手段により、ＵＳＢポートがデータ転送していないときに差動入力バッファをパワーダウンさせるＵＳＢ装置が開示されている。
【０００６】
特許文献３において、ＵＳＢホストコントローラを備えた情報処理装置において、ＵＳＢデバイスを制御するＵＳＢホストコントローラを省電力制御の対象とすることで効率のよい省電力制御機能を実現する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許４９８２５１２号公報
【特許文献２】特許３７８２２２６号公報
【特許文献３】特開２０００−０１０９０７号公報
【非特許文献】
【０００８】
【非特許文献１】Universal Serial Bus Specification Revision 2.0、[online]、April 27、2000、［平成２４年１０月９日検索］、インターネット<URL:http://www.usb.org/developers/docs/>
【発明の概要】
【発明が解決しようとする課題】
【０００９】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
【００１０】
ＵＳＢハブにおいても、バスパワードに対応していることが市場における必須の要求事項となりつつある。ＵＳＢハブであっても、ノートＰＣなど設置場所を問わず使用される機器と接続される場合が多いためである。さらに、ＵＳＢハブが使用される環境を考慮すれば、単にバスパワードに対応しているのみならず、可能な限り低消費電力であることが求められる。
【００１１】
ここで、ＵＳＢハブは、ＵＳＢホストコントローラがエニュメレーション処理時にＵＳＢデバイスに対して割り当てるＵＳＢアドレスを管理しない。より詳細には、ＵＳＢハブの仕様を規定する非特許文献１には、ＵＳＢハブによるＵＳＢアドレスの管理は規定されていない。そのため、ＵＳＢハブとＵＳＢデバイスを接続するダウンストリームポート（ＤＳＰ；Downstream Port）に入力されたパケットの全てを、ＵＳＢハブとＵＳＢホストコントローラと接続するアップストリームポート（ＵＳＰ；Upstream Port）に転送（リピート）する必要がある。
【００１２】
しかし、ＵＳＢホストコントローラとＵＳＢデバイス間の通信は、互いの通信対象が特定されていることが大半である。従って、アップストリームポートに入力されたパケットの全てを一律にダウンストリームポートに転送するという制御は、本来の通信には不要なダウンストリームポートを活性化していることに他ならない。従って、このような制御では、ＵＳＢハブのさらなる低消費電力化を達成できない。即ち、本発明者らの上記検討によれば、ＵＳＢハブのさらなる低消費電力化という課題がある。
【００１３】
特許文献１が開示する情報処理装置は、ＵＳＢデバイスがポートに接続されたことを検出する。さらに、情報処理装置は、未使用ポートに対する電力供給能力が利用可能な電力供給能力を超える場合に、未使用ポートの電源をオフするものである。一方、ＵＳＢハブにおいて、具備しているポートにＵＳＢデバイスの接続を許可しない（ポートに電力を供給しない）という制御は許容できない。従って、特許文献１が開示する技術は、ＵＳＢハブの消費電力を低減させることに寄与しない。
【００１４】
また、特許文献２は、シリアルバス（Ｄ＋、Ｄ−）を監視することで、データ転送が行われていないアイドルステートを検出し、ＵＳＢホストコントローラの低消費電力を実現する技術である。従って、上述したＵＳＢハブにおけるダウンストリームポートの制御とは無関係である。上述したダウンストリームポートの制御は、バスがアクティブな状態における制御であるため、特許文献３が開示する技術をＵＳＢハブに適用したとしても、より一層の低消費電力化を実現できる余地がある。
【００１５】
さらに、特許文献３は、ポートにＵＳＢデバイスが接続されていない場合に、ＵＳＢホストコントローラの機能を停止する技術である。従って、ＵＳＢハブに特許文献３が開示する技術を適用することはできない。
【００１６】
なお、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１７】
一実施の形態によれば、アップストリームポートと、複数のダウンストリームポートと、前記複数のダウンストリームポートのそれぞれに対応する複数のＩＯバッファと、パケット解析部と、ＵＳＢアドレス管理部と、バッファ制御部と、を備えるＵＳＢ装置が提供される。パケット解析部は、前記アップストリームポートと前記ダウンストリームポートの間を転送されるパケットを解析する。ＵＳＢアドレス管理部は、前記パケット解析部による解析結果に基づき、前記複数のダウンストリームポートのうち、ＵＳＢデバイスが接続された第１のダウンストリームポートと、前記第１のダウンストリームポートに接続されたＵＳＢデバイスに割り当てられたＵＳＢアドレスと、の対応関係を、ＵＳＢアドレス管理情報として生成する。バッファ制御部は、前記複数のＩＯバッファのそれぞれについて、活性化及び非活性化を制御する。さらに、バッファ制御部は、前記ＵＳＢアドレス管理情報に基づいて、前記第１のダウンストリームポートであって、トークンパケットが規定するＵＳＢアドレスが割り当てられたＵＳＢデバイスが接続された第２のダウンストリームポートを特定すると共に、前記複数のダウンストリームポートのうち、前記第２のダウンストリームポートとは異なる第３のダウンストリームポートに対応する前記ＩＯバッファを非活性化する。
【発明の効果】
【００１８】
一実施の形態によれば、パケット転送時における消費電力が低減されたＵＳＢ装置、その制御方法及びパケット転送方法が、提供される。
【図面の簡単な説明】
【００１９】
【図１】一実施形態の概要を説明するための図である。
【図２】セットアドレスリクエストの詳細を説明するための図である。
【図３】ＵＳＢハブにおけるダウンストリームポートの制御を説明するための図である。
【図４】第１の実施形態に係るＵＳＢハブ１の内部構成の一例を示す図である。
【図５】ＵＳＢハブ１の動作の一例を示すフローチャートである。
【図６】ＵＳＢアドレス管理情報の一例を示す図である。
【図７】ＵＳＢハブ１における各種信号のタイミングチャートの一例である。
【図８】ＵＳＢハブ１における各種信号のタイミングチャートの一例である。
【図９】ＵＳＢハブ１における各種信号のタイミングチャートの一例である。
【図１０】ＵＳＢ規格のトークンパケットに対するパケットリピートディレイの模式図である。
【発明を実施するための形態】
【００２０】
初めに、図１を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００２１】
上述のように、ＵＳＢハブには、ＵＳＢデバイスに割り当てられたＵＳＢアドレスの管理は要求されていない。そのため、ＵＳＢハブでは、アップストリームポートに入力されたパケットの全てを一律にダウンストリームポートに転送するという制御が行われている。即ち、このような制御では、ＵＳＢホストコントローラとＵＳＢデバイスとの間の通信には無関係なダウンストリームポートを活性化しており、本来不要なはずの電力を浪費しているという問題がある。そのため、パケット転送時における消費電力が低減されたＵＳＢ装置が、望まれる。
【００２２】
そこで、一例として図１に示すＵＳＢ装置１００を提供する。ＵＳＢ装置１００は、アップストリームポート１０１と、複数のダウンストリームポート１０２と、複数のダウンストリームポート１０２のそれぞれに対応する複数のＩＯバッファ１０３と、パケット解析部１０４と、ＵＳＢアドレス管理部１０５と、バッファ制御部１０６と、を備えている。パケット解析部１０４は、アップストリームポート１０１とダウンストリームポート１０２の間を転送されるパケットを解析する。ＵＳＢアドレス管理部１０５は、パケット解析部１０４による解析結果に基づき、複数のダウンストリームポート１０２のうち、ＵＳＢデバイスが接続された第１のダウンストリームポートと、第１のダウンストリームポートに接続されたＵＳＢデバイスに割り当てられたＵＳＢアドレスと、の対応関係を、ＵＳＢアドレス管理情報として生成する。バッファ制御部１０６は、複数のＩＯバッファ１０３のそれぞれについて、活性化及び非活性化を制御する。さらに、バッファ制御部１０６は、ＵＳＢアドレス管理情報に基づいて、第１のダウンストリームポートであって、トークンパケットが規定するＵＳＢアドレスが割り当てられたＵＳＢデバイスが接続された第２のダウンストリームポートを特定すると共に、複数のダウンストリームポート１０２のうち、第２のダウンストリームポートとは異なる第３のダウンストリームポートに対応するＩＯバッファ１０３を非活性化する。
【００２３】
ＵＳＢ装置１００は、アップストリームポート１０１とダウンストリームポート１０２の間を転送されるパケットを解析する。パケットを解析することで、ＵＳＢホストコントローラがＵＳＢデバイスに割り当てるＵＳＢアドレスと、当該ＵＳＢデバイスが接続されたダウンストリームポートと、の対応関係をＵＳＢアドレス管理情報として管理する。そして、ＵＳＢ装置１００は、ＵＳＢホストコントローラが送信するトークンパケットから、ＵＳＢホストコントローラの通信対象となるＵＳＢデバイスに割り当てられたＵＳＢアドレスを取得する。さらに、ＵＳＢ装置１００は、トークンパケットから取得したＵＳＢアドレスが割り当てられたＵＳＢデバイスを、ＵＳＢアドレス管理情報を参照することで特定し、トークンパケットから取得したＵＳＢアドレスが割り当てられたＵＳＢデバイスと接続されたダウンストリームポート以外のダウンストリームポートに対応するＩＯバッファを非活性化する。即ち、ＵＳＢホストコントローラが通信対象としていないＵＳＢデバイスが接続されたダウンストリームポートに対応するＩＯバッファを非活性化することで、ＵＳＢ装置１００の消費電力の低減を実現する。
【００２４】
さらに、下記の形態が可能である。
【００２５】
［形態１］
アップストリームポートと、
複数のダウンストリームポートと、
前記複数のダウンストリームポートのそれぞれに対応する複数のＩＯバッファと、
前記アップストリームポートと前記ダウンストリームポートの間を転送されるパケットを解析するパケット解析部と、
前記パケット解析部による解析結果に基づき、前記複数のダウンストリームポートのうち、ＵＳＢデバイスが接続された第１のダウンストリームポートと、前記第１のダウンストリームポートに接続されたＵＳＢデバイスに割り当てられたＵＳＢアドレスと、の対応関係を、ＵＳＢアドレス管理情報として生成するＵＳＢアドレス管理部と、
前記複数のＩＯバッファのそれぞれについて、活性化及び非活性化を制御するバッファ制御部と、
を備え、
前記バッファ制御部は、前記ＵＳＢアドレス管理情報に基づいて、前記第１のダウンストリームポートであって、トークンパケットが規定するＵＳＢアドレスが割り当てられたＵＳＢデバイスが接続された第２のダウンストリームポートを特定すると共に、前記複数のダウンストリームポートのうち、前記第２のダウンストリームポートとは異なる第３のダウンストリームポートに対応する前記ＩＯバッファを非活性化するＵＳＢ装置。
［形態２］
前記バッファ制御部は、トランザクションの開始前は、前記複数のダウンストリームポートのそれぞれに対応する前記ＩＯバッファを非活性状態とすることが好ましい。
［形態３］
前記パケット解析部は、パケットのパケット識別子を抽出すると共に、前記アップストリームポートから前記ダウンストリームポートに向かう第１のパケット転送の開始及び終了を検出し、
前記バッファ制御部は、前記抽出されたパケット識別子がトークンパケットのパケット識別子を示し、かつ、前記第１のパケット転送が終了した場合に、前記第３のダウンストリームポートに対応する前記ＩＯバッファを非活性化することが好ましい。
［形態４］
前記パケット解析部は、前記ダウンストリームポートから前記アップストリームポートに向かう第２のパケット転送の開始及び終了を検出し、
前記バッファ制御部は、前記第２のパケット転送の開始の検出と、前記抽出されたパケット識別子がハンドシェイクパケットのパケット識別子であること、に基づいてトランザクションの終了を判定し、トランザクションが継続している間は、前記第３のダウンストリームポートに対応する前記ＩＯバッファを非活性状態とすることが好ましい。
［形態５］
前記バッファ制御部は、前記パケット解析部における解析結果に基づいて、前記第３のダウンストリームポートに対応する前記ＩＯバッファの消費電力を削減するように制御することが好ましい。
［形態６］
前記複数のＩＯバッファのそれぞれは、シリアルバスを駆動するドライバ及び前記シリアルバスから信号を受信するレシーバを備え、
前記バッファ制御部は、前記抽出されたパケットのパケット識別子から定まる第１のパケットに続く第２のパケットの転送方向に基づき、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバ又は前記レシーバの活性化及び非活性化を制御することが好ましい。
［形態７］
前記バッファ制御部は、前記第２のパケットの転送方向が、前記アップストリームポートから前記ダウンストリームポートに向かう方向の場合には、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバを活性化し、
前記第２のパケットの転送方向が、前記ダウンストリームポートから前記アップストリームポートに向かう方向の場合には、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記レシーバを活性化することが好ましい。
［形態８］
前記バッファ制御部は、前記第２のパケットの転送方向に基づき、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバを非活性状態としている場合に、前記第１のパケット転送の開始を認識すると前記複数のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバを活性化することが好ましい。
［形態９］
前記パケット解析部は、ＵＳＢホストコントローラから送信されるセットアドレスリクエストを検出すると共に、前記セットアドレスリクエストにより規定されるＵＳＢアドレスを抽出し、
前記ＵＳＢアドレス管理部は、前記セットアドレスリクエストに対して応答するＵＳＢデバイスが接続されたダウンストリームポートと、前記抽出されたＵＳＢアドレスと、を対応付けることで、前記ＵＳＢアドレス管理情報を生成することが好ましい。
［形態１０］
前記複数のＩＯバッファのそれぞれは、シリアルバスにおける電位差が所定の範囲内にあるか否かを検出するスケルチを含み、
前記ＵＳＢアドレス管理部は、前記スケルチが出力する信号に基づいて、前記セットアドレスリクエストに応答するＵＳＢデバイスが接続されたダウンストリームポートを特定することが好ましい。
［形態１１］
アップストリームポートと、
複数のダウンストリームポートと、
前記複数のダウンストリームポートのそれぞれに対応する複数のＩＯバッファと、を備えるＵＳＢ装置の制御方法であって、
前記アップストリームポートと前記ダウンストリームポートの間を転送されるパケットを解析する工程と、
前記パケットを解析する工程により得られた解析結果に基づき、前記複数のダウンストリームポートのうち、ＵＳＢデバイスが接続された第１のダウンストリームポートと、前記第１のダウンストリームポートに接続されたＵＳＢデバイスに割り当てられたＵＳＢアドレスと、の対応関係を、ＵＳＢアドレス管理情報として生成する工程と、
前記ＵＳＢアドレス管理情報に基づいて、前記第１のダウンストリームポートであって、トークンパケットが規定するＵＳＢアドレスが割り当てられたＵＳＢデバイスが接続された第２のダウンストリームポートを特定する工程と、
前記複数のダウンストリームポートのうち、前記第２のダウンストリームポートとは異なる第３のダウンストリームポートに対応する前記ＩＯバッファを非活性化に制御する工程と、
を含むＵＳＢ装置の制御方法。
なお、本方法は、アップストリームポートと、ダウンストリームポートと、ＩＯバッファと、を備えるＵＳＢ装置という、特定の機械に結びつけられている。
［形態１２］
トランザクションの開始前は、前記複数のダウンストリームポートのそれぞれに対応する前記ＩＯバッファを非活性状態とする工程を含むことが好ましい。
［形態１３］
前記パケットを解析する工程は、パケットのパケット識別子を抽出すると共に、前記アップストリームポートから前記ダウンストリームポートに向かう第１のパケット転送の開始及び終了を検出し、
前記ＩＯバッファを制御する工程は、前記抽出されたパケット識別子がトークンパケットのパケット識別子を示し、かつ、前記第１のパケット転送が終了した場合に、前記第３のダウンストリームポートに対応する前記ＩＯバッファを非活性化することが好ましい。
［形態１４］
前記パケットを解析する工程は、前記ダウンストリームポートから前記アップストリームポートに向かう第２のパケット転送の開始及び終了を検出し、
前記ＩＯバッファを制御する工程は、前記第２のパケット転送の開始の検出と、前記抽出されたパケット識別子がハンドシェイクパケットのパケット識別子であること、に基づいてトランザクションの終了を判定し、トランザクションが継続する間は、前記第３のダウンストリームポートに対応する前記ＩＯバッファを非活性状態とすることが好ましい。
［形態１５］
前記ＩＯバッファを制御する工程は、前記パケットを解析する工程における解析結果に基づいて、前記第３のダウンストリームポートに対応する前記ＩＯバッファの消費電力を削減するように制御することが好ましい。
［形態１６］
前記複数のＩＯバッファのそれぞれは、シリアルバスを駆動するドライバ及び前記シリアルバスから信号を受信するレシーバを備え、
前記ＩＯバッファを制御する工程は、前記抽出されたパケットのパケット識別子から定まる第１のパケットに続く第２のパケットの転送方向に基づき、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバ又は前記レシーバの活性化及び非活性化を制御することが好ましい。
［形態１７］
前記ＩＯバッファを制御する工程は、前記第２のパケットの転送方向が、前記アップストリームポートから前記ダウンストリームポートに向かう方向の場合には、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバを活性化し、
前記第２のパケットの転送方向が、前記ダウンストリームポートから前記アップストリームポートに向かう方向の場合には、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記レシーバを活性化することが好ましい。
［形態１８］
前記ＩＯバッファを制御する工程は、前記第２のパケットの転送方向に基づき、前記第２のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバを非活性状態としている場合に、前記第１のパケット転送の開始を認識すると前記複数のダウンストリームポートに対応する前記ＩＯバッファに含まれる前記ドライバを活性化することが好ましい。
［形態１９］
前記パケットを解析する工程は、ＵＳＢホストコントローラから送信されるセットアドレスリクエストを検出すると共に、前記セットアドレスリクエストにより規定されるＵＳＢアドレスを抽出し、
前記ＵＳＢアドレス管理情報を生成する工程は、前記セットアドレスリクエストに対して応答するＵＳＢデバイスが接続されたダウンストリームポートと、前記抽出されたＵＳＢアドレスと、を対応付けることで、前記ＵＳＢアドレス管理情報を生成することが好ましい。
［形態２０］
前記複数のＩＯバッファのそれぞれは、シリアルバスにおける電位差が所定の範囲内にあるか否かを検出するスケルチを含み、
前記ＵＳＢアドレス管理情報を生成する工程は、前記スケルチが出力する信号に基づいて、前記セットアドレスリクエストに応答するＵＳＢデバイスが接続されたダウンストリームポートを特定することが好ましい。
［形態２１］
トークンパケットを、複数のダウンストリームポートのそれぞれに接続されたＵＳＢデバイスに転送する工程と、
前記複数のダウンストリームポートのうち、ＵＳＢデバイスが接続された第１のダウンストリームポートと、前記第１のダウンストリームポートに接続されたＵＳＢデバイスに割り当てられたＵＳＢアドレスと、の対応関係に規定するＵＳＢアドレス管理情報に基づいて、前記第１のダウンストリームポートであって、トークンパケットが規定するＵＳＢアドレスが割り当てられたＵＳＢデバイスが接続された第２のダウンストリームポートを介して、パケットを転送する工程と、
を含むパケット転送方法。
なお、本方法は、パケットの転送を行うＵＳＢ装置という、特定の機械に結びつけられている。
［形態２２］
アップストリームポートと、
複数のダウンストリームポートと、
前記アップストリームポートと前記ダウンストリームポートの間に転送される信号をパラレル信号又はシリアル信号に変換するシリアルパラレル変換回路と、
前記複数のダウンストリームポートのそれぞれに対応する複数のＩＯバッファと、
前記アップストリームポートと前記ダウンストリームポートの間を転送されるパケットに応じたパラレル信号の解析を行うパケット解析部と、
前記パケット解析部による解析結果に基づき、前記複数のダウンストリームポートのうち、ＵＳＢデバイスが接続された第１のダウンストリームポートと、前記第１のダウンストリームポートに接続されたＵＳＢデバイスに割り当てられたＵＳＢアドレスと、の対応関係を、ＵＳＢアドレス管理情報として生成するＵＳＢアドレス管理部と、
前記ＵＳＢアドレス管理情報を記憶するメモリと、
前記複数のＩＯバッファのそれぞれについて、活性化及び非活性化を制御するバッファ制御部と、
を備え、
前記バッファ制御部は、前記メモリにアクセスすることで前記ＵＳＢアドレス管理情報を参照し、前記第１のダウンストリームポートであって、トークンパケットが規定するＵＳＢアドレスが割り当てられたＵＳＢデバイスが接続された第２のダウンストリームポートを特定すると共に、前記複数のダウンストリームポートのうち、前記第２のダウンストリームポートとは異なる第３のダウンストリームポートに対応する前記ＩＯバッファを非活性化するＵＳＢ装置。
［形態２３］
アップストリームポートと、
複数のダウンストリームポートと、
前記複数のダウンストリームポートのそれぞれに対応する複数のＩＯバッファと、を備えるＵＳＢ装置を制御するコンピュータに実行させるプログラムであって、
前記アップストリームポートと前記ダウンストリームポートの間を転送されるパケットを解析する処理と、
前記パケットを解析する処理により得られた解析結果に基づき、前記複数のダウンストリームポートのうち、ＵＳＢデバイスが接続された第１のダウンストリームポートと、前記第１のダウンストリームポートに接続されたＵＳＢデバイスに割り当てられたＵＳＢアドレスと、の対応関係を、ＵＳＢアドレス管理情報として生成する処理と、
前記ＵＳＢアドレス管理情報に基づいて、前記第１のダウンストリームポートであって、トークンパケットが規定するＵＳＢアドレスが割り当てられたＵＳＢデバイスが接続された第２のダウンストリームポートを特定する処理と、
前記複数のダウンストリームポートのうち、前記第２のダウンストリームポートとは異なる第３のダウンストリームポートに対応する前記ＩＯバッファを非活性化に制御する処理と、
を実行させるプログラム。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（ｎｏｎ−ｔｒａｎｓｉｅｎｔ）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【００２６】
次に、具体的な実施形態の説明に先立ち、必要な限度でＵＳＢ装置のエニュメレーション処理（初期化処理）と、ＵＳＢハブのダウンストリームポートの制御について説明する。なお、これらの処理及び制御の詳細は、非特許文献１に規定されている。
【００２７】
初めに、エニュメレーション処理について説明する。
【００２８】
ＵＳＢホストコントローラは、ＵＳＢデバイスとの間で通信を開始するにあたり、ＵＳＢポートに接続されたＵＳＢデバイスを検出すると、エニュメレーション処理を実行する。エニュメレーション処理の概略は、以下のとおりである。
・ＵＳＢホストコントローラは、ＵＳＢデバイスがサポートする仕様を認識する。
・ＵＳＢホストコントローラは、ＵＳＢデバイスにＵＳＢアドレスを割り当てる。
【００２９】
このように、ＵＳＢホストコントローラは、ＵＳＢデバイスと通信を開始するにあたり、ＵＳＢデバイスにＵＳＢアドレスを割り当てる。その際、ＵＳＢホストコントローラは、セットアドレスリクエストをＵＳＢデバイスに送信することで、ユニークなＵＳＢアドレスをＵＳＢデバイスに割り当てる。
【００３０】
図２は、セットアドレスリクエストの詳細を説明するための図である。図２（ａ）に示すように、ＵＳＢホストコントローラは、ＵＳＢデバイスに対してトークンパケットに続いてデータパケットを送信する。その際、ＵＳＢホストコントローラが送信するトークンパケットに格納されるＵＳＢアドレスは「０」である。また、ＵＳＢホストコントローラは、セットアドレスリクエストとして、ｂｍＲｅｑｕｅｓｔＴｙｐｅフィールドに「０」、ｂＲｅｑｕｅｓｔフィールドに「５」、ｗＶａｌｕｅに設定するＵＳＢアドレス、をそれぞれ格納したデータパケットをＵＳＢデバイスに送信する（図２（ｃ）参照）。
【００３１】
セットアドレスリクエストを正常に受け取ったＵＳＢデバイスは、ハンドシェイクパケットをＵＳＢホストコントローラに送信する。ＵＳＢホストコントローラが、ＵＳＢデバイスからのＡＣＫ（Acknowledge）応答を受信することで、ＵＳＢデバイスに対するＵＳＢアドレスの割り当てが完了する。
【００３２】
次に、ＵＳＢハブにおけるダウンストリームポートの制御について説明する。
【００３３】
図３は、ＵＳＢハブにおけるダウンストリームポートの制御を説明するための図である。図３に示すＵＳＢハブは、１つのアップストリームポートと４つのダウンストリームポートを備えている。
【００３４】
ＵＳＢハブが、アップストリームポートにおけるパケット受信を検出すると、接続されている全ての有効なダウンストリームポートにパケットを転送する（図３（ａ）参照）。即ち、図３（ａ）に示すように、アップストリームポートにおけるパケット受信を検出すると、ＵＳＢハブはブロードキャストモードで動作し、全ての有効なダウンストリームポートにパケットを転送する。なお、無効なダウンストリームポートに対しては、パケットを転送しない。
【００３５】
また、ＵＳＢハブは、有効なダウンストリームポートにおいてパケット受信を検出すると、アップストリームポートに対しパケットを転送し、ダウンストリームポート相互には接続しない（図３（ｂ）参照）。
【００３６】
このように、ＵＳＢハブにおけるアップストリームポートとダウンストリームポート間のパケット転送は、アップストリームポート（ＵＳＢホストコントローラ）とダウンストリームポート（ＵＳＢデバイス）の間でのみ行われ、ダウンストリームポート相互にはパケット転送を行わない。このようなＵＳＢハブにおけるダウンストリームポートの制御は、Ｈｉｇｈ−Ｓｐｅｅｄ転送、Ｆｕｌｌ−Ｓｐｅｅｄ転送及びＬｏｗ−Ｓｐｅｅｄ転送を行う場合に適用される。
【００３７】
ここで、非特許文献１は、ＵＳＢハブに対して、ダウンストリームポートに接続されるＵＳＢデバイスに係るＵＳＢアドレスの管理を要求していない。ＵＳＢホストコントローラは、上述したように、エニュメレーション処理において、セットアドレスリクエストをＵＳＢデバイスに対し送信する。その際、ＵＳＢホストコントローラは、ＵＳＢツリー内のＵＳＢデバイスに対して、重複するＵＳＢアドレスを割り当てることはない。そのため、ＵＳＢデバイスと割り当てられるＵＳＢアドレスの関係は一意に定まる。
【００３８】
従って、ＵＳＢハブが、ＵＳＢアドレスを含むトークンパケットをブロードキャストモードで送信したとしても、応答するＵＳＢデバイスはＵＳＢツリー内で１つであり、ＵＳＢハブではＵＳＢアドレスの管理をしていなくても、パケットの転送が実現できている。
【００３９】
以上のように、ＵＳＢハブは、アップストリームポートにおいてパケットの受信を検出した場合、全ての有効なダウンストリームポートに対しパケットを転送する。さらに、いずれのダウンストリームポートから応答があるか把握できないので、有効なダウンストリームポートを全て活性化しておく。例えば、図３（ｂ）のように、右端のダウンストリームポートを介してパケットを受信する場合であっても、他の３つのダウンストリームポートを活性化しておく必要がある。ＵＳＢハブでは、ＵＳＢアドレスを管理しておらず、ブロードキャストしたトークンパケット及びデータパケットに対する応答が、右端のダウンストリームポートに送信されてくることが把握できないためである。
【００４０】
しかし、ＵＳＢホストコントローラとＵＳＢデバイスとの間の通信には無関係なダウンストリームポートを活性化しているため、このようなダウンストリームポートの制御には、本来不要なはずの電力を浪費しているという問題がある。
【００４１】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
【００４２】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。
【００４３】
図４は、本実施形態に係るＵＳＢハブ１の内部構成の一例を示す図である。
【００４４】
ＵＳＢハブ１は、アップストリームポート１０と、ダウンストリームポート２０〜２２と、アップストリームポート制御回路３０と、ダウンストリームポート制御回路４０と、を含んで構成される。なお、ＵＳＢハブ１は、３つのダウンストリームポートを備えるものとして以降の説明を行うが、ダウンストリームポートの数を限定する趣旨ではない。ＵＳＢハブは、２つのダウンストリームポートを備えていてもよいし、４つ以上のダウンストリームポートを備えていてもよい。
【００４５】
アップストリームポート制御回路３０は、アップストリームポート１０とダウンストリームポート制御回路４０に接続される。アップストリームポート制御回路３０は、アップストリームポート１０に関する制御を実現する。アップストリームポート制御回路３０は、アップストリームポート１０を介してシリアルのＵＳＢ信号２０１の送受信を行う。また、アップストリームポート制御回路３０は、ダウンストリームポート制御回路４０との間でパラレル信号の送受信を行う。なお、アップストリームポート制御回路３０からダウンストリームポート制御回路４０に向けたパラレル信号をパラレル送信信号２０５とする。ダウンストリームポート制御回路４０からアップストリームポート制御回路３０に向けたパラレル信号をパラレル受信信号２０６とする。
【００４６】
ダウンストリームポート制御回路４０は、ダウンストリームポート２０〜２２に関する制御を実現する。ダウンストリームポート制御回路４０は、ＵＳＢトランシーバ３０１と、シリアルパラレル変換回路３０２と、パケット解析回路３０３と、パケット転送制御回路３０４と、メモリ３０５と、を含んで構成される。
【００４７】
ＵＳＢトランシーバ３０１は、ダウンストリームポート２０〜２２を介したパケットの転送を実現する回路である。ＵＳＢトランシーバ３０１には、ダウンストリームポート２０〜２２のそれぞれに対応したＩＯバッファ３１０〜３１２が含まれている。なお、ダウンストリームポート２０とＩＯバッファ３１０の間で送受信される信号をＵＳＢ信号２０２とする。ＵＳＢ信号２０３及びＵＳＢ信号２０４についても同様に定める。
【００４８】
シリアルパラレル変換回路３０２は、シリアル信号とパラレル信号の相互変換を実現する回路である。シリアルパラレル変換回路３０２は、アップストリームポート制御回路３０が出力するパラレル送信信号２０５と、ＵＳＢトランシーバ３０１が出力するスケルチ検出信号２０７及び受信データ信号２０８と、を受け付ける。また、シリアルパラレル変換回路３０２は、アップストリームポート制御回路３０及びパケット解析回路３０３に対し、パラレル受信信号２０６を出力し、ＵＳＢトランシーバ３０１に対し、送信データ信号２０９を出力する。
【００４９】
パケット解析回路３０３は、アップストリームポート１０と、ダウンストリームポート２０〜２２と、の間で転送されるパケットの解析を行う。パケット解析回路３０３は、各種の解析信号をパケット転送制御回路３０４に出力する。より具体的には、パケット解析回路３０３は、送信パケット検出信号２１０と、受信パケット検出信号２１１と、ＰＩＤ（Packet Identifier；パケット識別子）解析信号２１２と、ＵＳＢアドレス解析信号２１３と、リクエスト解析信号２１４と、をパケット転送制御回路３０４に出力する。
【００５０】
パケット解析回路３０３は、パラレル送信信号２０５を監視することで、アップストリームポート１０からダウンストリームポート２０〜２２に向けたパケット転送の開始を検出した際には、直ちに送信パケット検出信号２１０をアサートする。また、パケット解析回路３０３は、パラレル送信信号２０５を監視することで、アップストリームポート１０からダウンストリームポート２０〜２２に向けたパケット転送の終了を検出した際には、送信パケット検出信号２１０をネゲートする。同様に、パケット解析回路３０３は、パラレル受信信号２０６に応じ、受信パケット検出信号２１１をアサート又はネゲートする。
【００５１】
パケット解析回路３０３は、アップストリームポート１０及びダウンストリームポート２０〜２２間においてパケットの転送が始まると、転送中のパケットのＰＩＤを抽出する。パケット解析回路３０３は、抽出したＰＩＤをＰＩＤ解析信号２１２として、パケット転送制御回路３０４に出力する。
【００５２】
また、パケット解析回路３０３は、転送中のパケットがトークンパケットである場合には、トークンパケットに含まれるＵＳＢアドレスを抽出する。パケット解析回路３０３は、抽出したＵＳＢアドレスをＵＳＢアドレス解析信号２１３として、パケット転送制御回路３０４に出力する。
【００５３】
さらに、パケット解析回路３０３は、転送中のパケットがデータパケットであって、コントロール転送のリクエストに関する情報を含む場合には、当該リクエストを抽出し、リクエスト解析信号２１４として、パケット転送制御回路３０４に出力する。なお、パケット解析回路３０３におけるリクエストの解析（デコード）には、データパケットに格納された全ての情報が必要なわけではない。より具体的には、リクエストの解析にはデータパケットの先頭から５バイトまで（Ｄａｔａ０  ＰＩＤ〜ｍＶａｌｕｅまでの５バイト、図２（ｃ）参照）が必要である。
【００５４】
パケット転送制御回路３０４は、パケット解析回路３０３が出力する各種の解析信号と、ＵＳＢトランシーバ３０１が出力するスケルチ検出信号２０７と、メモリ３０５が保持する情報と、に基づいて、ＵＳＢトランシーバ３０１の活性化及び非活性化を制御する。より具体的には、パケット転送制御回路３０４は、ドライバイネーブル信号２１５及びレシーバイネーブル信号２１６を適切に制御し、ＵＳＢトランシーバ３０１に含まれるＩＯバッファのそれぞれについて、その消費電力を削減するように、パケットの送受信の許可又は禁止をきめ細かく制御する。なお、上述のＵＳＢアドレス管理部１０５とバッファ制御部１０６が、パケット転送制御回路３０４に相当する。
【００５５】
パケット転送制御回路３０４は、ダウンストリームポート２０〜２２のそれぞれに対応した送信フラグ及び受信フラグを記憶するレジスタ（図示せず）等を備えている。パケット転送制御回路３０４は、送信フラグ及び受信フラグをセット又はクリアすることで、ＩＯバッファ３１０〜３１２に対応するドライバイネーブル信号２１５及びレシーバイネーブル信号２１６を制御する。より詳細には、パケット転送制御回路３０４は、送信フラグがセットされたＩＯバッファに対応するドライバイネーブル信号２１５を適切なタイミングでアサートし、送信フラグがクリアされたＩＯバッファに対応するドライバイネーブル信号２１５を適切なタイミングでネゲートする。同様に、パケット転送制御回路３０４は、受信フラグの状態（セット又はクリア）に応じて、レシーバイネーブル信号２１６をアサート又はネゲートする。
【００５６】
パケット転送制御回路３０４は、メモリ３０５にアクセス可能である。メモリ３０５は、ＵＳＢデバイスが接続されたダウンストリームポート２０〜２２と、ＵＳＢデバイスに割り当てられたＵＳＢアドレスと、の組み合わせを記憶する。メモリ３０５が記憶する情報を、ＵＳＢアドレス管理情報とする。
【００５７】
パケット転送制御回路３０４は、ＵＳＢアドレス管理情報を参照することで、ダウンストリームポートに接続されたＵＳＢデバイスに割り当てられたＵＳＢアドレスを知ることができる。
【００５８】
上述したように、ＵＳＢトランシーバ３０１には、ＩＯバッファ３１０〜３１２が含まれている。ＩＯバッファ３１０〜３１２は、シリアルパラレル変換回路３０２が出力する送信データ信号２０９を受け付ける。また、ＩＯバッファ３１０〜３１２は、シリアルパラレル変換回路３０２に対して、受信データ信号２０８を出力する。さらに、ＩＯバッファ３１０〜３１２は、シリアルパラレル変換回路３０２及びパケット転送制御回路３０４に対して、スケルチ検出信号２０７を出力する。ＩＯバッファ３１０〜３１２は、パケット転送制御回路３０４からドライバイネーブル信号２１５及びレシーバイネーブル信号２１６を受け付ける。
【００５９】
ＩＯバッファ３１０には、ドライバ４０１と、レシーバ４０２と、スケルチ４０３と、が含まれている。なお、ＩＯバッファ３１０〜３１２の内部構成は、同一であるため、ＩＯバッファ３１１及び３１２についての説明は省略する。
【００６０】
ドライバ４０１は、シリアルパラレル変換回路３０２が出力する送信データ信号２０９を受け付け、受け付けた送信データ信号２０９の論理に基づき、シリアルバス（Ｄ＋、Ｄ−）を駆動することで、ＵＳＢ信号２０２を送信する。また、ドライバ４０１は、ドライバイネーブル信号２１５に応じて、その活性状態が制御される。より具体的には、ドライバイネーブル信号２１５のアサートに応じて、ドライバ４０１は活性化する。
【００６１】
レシーバ４０２は、ＵＳＢデバイスが駆動するシリアルバス（Ｄ＋、Ｄ−）からＵＳＢ信号２０２を受信する。レシーバ４０２は、受け付けたＵＳＢ信号２０２の論理に応じた受信データ信号２０８をシリアルパラレル変換回路３０２に出力する。また、レシーバ４０２は、レシーバイネーブル信号２１６に応じて、その活性状態が制御される。より具体的には、レシーバイネーブル信号２１６のアサートに応じて、レシーバ４０２は活性化する。
【００６２】
スケルチ４０３は、シリアルバス（Ｄ＋、Ｄ−）における電位差が所定の範囲内にあるか否かを検出することで、ダウンストリームポート２０を介したパケット転送の有無を検出する。即ち、シリアルバス（Ｄ＋、Ｄ−）上を伝達するＵＳＢ信号２０２は、差動信号であり、ダウンストリームポート２０を介したパケット転送が行われていれば、シリアルバス（Ｄ＋、Ｄ−）の電位差は所定の範囲を超えるのが通常である。換言するならば、シリアルバス（Ｄ＋、Ｄ−）の電位差が所定の範囲内であれば、ダウンストリームポート２０を介したパケット転送は行われていないと判断できる。スケルチ４０３は、スケルチ検出信号２０７を、シリアルパラレル変換回路３０２及びパケット転送制御回路３０４に出力する。シリアルパラレル変換回路３０２は、スケルチ検出信号２０７に基づき、ＵＳＢトランシーバ３０１を介したパケット転送の開始を判断する。シリアルパラレル変換回路３０２は、スケルチ検出信号２０７によりシリアルバス（Ｄ＋、Ｄ−）の電位差が所定の範囲を超えることを確認した後、受信データ信号２０８に対するシリアルパラレル変換を開始する。また、スケルチ検出信号２０７によりシリアルバス（Ｄ＋、Ｄ−）の電位差が所定の範囲を収まることを確認した後、受信データ信号２０８に対するシリアルパラレル変換を終了する。なお、パケット転送制御回路３０４におけるスケルチ検出信号２０７の利用についての詳細は後述する。
【００６３】
なお、スケルチ検出信号２０７、受信データ信号２０８、送信データ信号２０９、ドライバイネーブル信号２１５及びレシーバイネーブル信号２１６の各種信号は、ＵＳＢハブ１が備えるダウンストリームポートの数に相当するバス幅を持つ信号である。例えば、図４に示すように、ＵＳＢハブ１が３つのダウンストリームポートを備える場合には、それぞれ３ビットのバス幅を持つ信号となる。
【００６４】
次に、ＵＳＢハブ１の動作について説明する。
【００６５】
図５は、ＵＳＢハブ１の動作の一例を示すフローチャートである。
【００６６】
ステップＳ１０１において、パケット転送制御回路３０４は、送信パケット検出信号２１０がアサートされた状態、かつ、ＰＩＤ解析信号２１２がトークンパケットに対応したＰＩＤであるか否かを確認する。パケット転送制御回路３０４は、ＰＩＤ解析信号２１２がトークンパケットの転送を示している場合にステップＳ１０２以降の処理を実行する（ステップＳ１０１、Ｙｅｓ分岐）。
【００６７】
ステップＳ１０２において、パケット転送制御回路３０４は、トランザクションの送受信対象を確認するため、パケット解析回路３０３が出力するＵＳＢアドレス解析信号２１３を確認する。その際、ＵＳＢアドレス解析信号２１３がブロードキャストアドレス（ＵＳＢアドレス＝０）である場合に、ステップＳ１０３に遷移する。なお、本ステップにおいて、トークンパケットに含まれるＵＳＢアドレスが「０」である場合には、セットアドレスリクエストに関する処理が完了していないＵＳＢデバイスに向けたトランザクションと捉えることができる。ＵＳＢアドレス解析信号２１３が「０」でなければ、ステップＳ１１１に遷移する（ステップＳ１０２、Ｎｏ分岐）。
【００６８】
ステップＳ１０３において、パケット転送制御回路３０４は、ダウンストリームポート２０〜２２に対してパケットを転送する制御をＵＳＢトランシーバ３０１に対して行う。即ち、パケット転送制御回路３０４は、全ての有効なダウンストリームポートを送受信対象のポートと判定し、ブロードキャストモードによる転送を実現する設定を、ＵＳＢトランシーバ３０１に設定する。
【００６９】
ステップＳ１０４において、パケット転送制御回路３０４は、トークンパケットに続くパケット送信の検出を待機する。本ステップでは、パケット転送制御回路３０４は、データパケットの受信を期待する。
【００７０】
データパケットを受信した場合（ステップＳ１０４、Ｙｅｓ分岐）は、パケット転送制御回路３０４は、リクエスト解析信号２１４を確認し、リクエストの種別がセットアドレスリクエストか否かを判定する（ステップＳ１０５）。セットアドレスリクエスト以外のリクエストである場合（ステップＳ１０５、Ｎｏ分岐）には、図５に示す処理を終了する。図５に示す処理を終了することで、パケット転送制御回路３０４は、次のトークンパケットの受信に備える。
【００７１】
ステップＳ１０６において、パケット転送制御回路３０４は、セットアドレスリクエストである場合（ステップＳ１０５、Ｙｅｓ分岐）は、ダウンストリームポート２０〜２２のいずれかのポートを介してパケット転送がなされるか確認する。本ステップでは、パケット転送制御回路３０４は、セットアドレスリクエストに対するハンドシェイクパケットが、ＵＳＢデバイスから送信されることを期待する。
【００７２】
ステップＳ１０７において、パケット転送制御回路３０４は、パケット解析回路３０３が出力するＰＩＤ解析信号２１２が、ハンドシェイクパケットに対応したＰＩＤか否かを判定する。
【００７３】
ＰＩＤ解析信号２１２が、ハンドシェイクパケットの転送を示さない場合（ステップＳ１０７、Ｎｏ分岐）には、ＰＩＤ解析信号２１２がトークンパケットの転送を示すか否かを確認する（ステップＳ１０８）。ＰＩＤ解析信号２１２が、ハンドシェイクパケットの転送を示さずトークンパケットの転送を示す場合（ステップＳ１０８、Ｙｅｓ分岐）には、パケット転送制御回路３０４は、ステップＳ１０２に戻り処理を継続する。このような場合、ＵＳＢデバイスがハンドシェイクパケットを返送していないと考えることができる。そこで、パケット転送制御回路３０４は、ステップＳ１０２に遷移し処理を継続する。
【００７４】
ＰＩＤ解析信号２１２が、ハンドシェイクパケットの転送を示す場合（ステップＳ１０７、Ｙｅｓ分岐）には、ステップＳ１０９に遷移する。
【００７５】
ステップＳ１０９において、パケット転送制御回路３０４は、ＵＳＢトランシーバ３０１に含まれるＩＯバッファ３１０〜３１２のそれぞれが出力するスケルチ検出信号２０７を確認する。パケット転送制御回路３０４が、スケルチ検出信号２０７を確認することで、ダウンストリームポート２０〜２２に接続されたＵＳＢデバイスのうち、セットアドレスリクエストに対するハンドシェイクパケットを送信したＵＳＢデバイスに接続されたダウンストリームポートが特定できる。
【００７６】
ステップＳ１１０において、パケット転送制御回路３０４は、ステップＳ１０５で受信したセットアドレスリクエストにより設定されるＵＳＢアドレス（セットアドレスリクエストから抽出されるＵＳＢアドレス）と、当該セットアドレスリクエストに対する応答（ハンドシェイクパケット）を受信したダウンストリームポートと、を対応付けることで、前記ＵＳＢアドレス管理情報を生成し、メモリ３０５に書き込む。
【００７７】
ステップＳ１０２〜Ｓ１１０の処理は、アップストリームポート１０において受信したトークンパケットのＵＳＢアドレスが「０」（ブロードキャストアドレス）である場合に実行される。トークンパケットのＵＳＢアドレスが「０」以外の場合（ステップＳ１０２、Ｎｏ分岐）には、ステップＳ１１１及びＳ１１２の処理が実行される。
【００７８】
ステップＳ１０２において、トークンパケットのＵＳＢアドレスが「０」以外であれば、セットアドレスリクエストに関する処理が完了したＵＳＢデバイスに対するトランザクションと捉えることができる。
【００７９】
ステップＳ１１１において、パケット転送制御回路３０４は、メモリ３０５からＵＳＢアドレス管理情報を読み出す。ＵＳＢアドレス管理情報を読み出すことで、ステップＳ１０１で受信したトークンパケットに含まれるＵＳＢアドレスに対応したＵＳＢデバイスが接続されたダウンストリームポートを特定する。図６は、ＵＳＢアドレス管理情報の一例を示す図である。図６に示すように、ＵＳＢアドレス管理情報には、ＵＳＢアドレスと、そのＵＳＢアドレスに対応するダウンストリームポートと、の関係が規定されている。
【００８０】
ＵＳＢアドレス管理情報が上記のような場合において、トークンパケットに含まれるＵＳＢアドレスが「Ａ１」であれば、ダウンストリームポート２０に接続されたＵＳＢデバイスから応答があることを認識できる。換言するならば、トークンパケットに含まれるＵＳＢアドレスが、「Ａ１」であれば、ダウンストリームポート２１及び２２に接続されたＵＳＢデバイスからの応答に配慮する必要はない。なお、トークンパケットに含まれるＵＳＢアドレスに対応したＵＳＢデバイスが接続されたダウンストリームポートを送受信対象ポートとし、以降の説明を行う。
【００８１】
ステップＳ１１２において、パケット転送制御回路３０４は、前ステップで確定した送受信対象ポートに対応したＩＯバッファを活性化すると共に、他のダウンストリームポートに対応したＩＯバッファを非活性化する。即ち、パケット転送制御回路３０４は、新たなトークンパケットを検出するまでの間は、ダウンストリームポートをブロードキャストモードとして制御するのではなく、ユニキャストモードとして制御する。
【００８２】
次に、ＵＳＢトランシーバ３０１に含まれるＩＯバッファ３１０〜３１２の活性化／非活性化に関する制御について説明する。
【００８３】
図７は、ＵＳＢハブ１における各種信号のタイミングチャートの一例である。なお、図７のタイミングチャートでは、ダウンストリームポート２０及び２１が有効、ダウンストリームポート２２は無効を前提する。また、ダウンストリームポート２０には、ＵＳＢアドレスとして「Ａ１」が付与されたＵＳＢデバイスが接続されているとする。さらに、ＵＳＢハブ１におけるトランザクションの開始前（ＵＳＢホストコントローラからトークンパケットが送信される前）の状態を待機状態とする。
【００８４】
待機状態（時刻ｔ０１）においては、パケット転送制御回路３０４は、ダウンストリームポート２０及び２１に対応した送信フラグをセットし、受信フラグをクリアする。
【００８５】
時刻ｔ０２において、アップストリームポート１０において、トランザクションのタイプがＯＵＴ（ＰＩＤ＝ＯＵＴ）、かつ、ＵＳＢアドレスが「Ａ１」のトークンパケットを受信する。すると、パケット解析回路３０３が送信パケット検出信号２１０をアサートする。送信パケット検出信号２１０のアサートを受けて、パケット転送制御回路３０４は、ダウンストリームポート２０及び２１の送信フラグがセットされていることに応じ、ドライバイネーブル信号２１５をアサートする。図７では、ダウンストリームポート２０及び２１の送信フラグが共にセットされているため、それぞれのポートに対応したドライバイネーブル信号２１５がアサートされる。
【００８６】
パケット解析回路３０３は、アップストリームポート制御回路３０からダウンストリームポート制御回路４０に転送されるパケットを解析することで得られたＵＳＢアドレス（図７においては、ＵＳＢアドレス＝「Ａ１」）をＵＳＢアドレス解析信号２１３として、パケット転送制御回路３０４に出力する。パケット転送制御回路３０４は、ＵＳＢアドレスが「０」ではないので、メモリ３０５にアクセスし、ＵＳＢアドレス管理情報を参照する。パケット転送制御回路３０４は、ＵＳＢアドレス管理情報を参照することで、ダウンストリームポート２０を送受信対象ポートに設定し、管理する（時刻ｔ０３）。
【００８７】
さらに、時刻ｔ０３において、パケット転送制御回路３０４は、パケット解析回路３０３が出力するＰＩＤ解析信号２１２が示すＰＩＤがＯＵＴ（ＰＩＤ＝ＯＵＴ）である場合には、トークンパケットに続いて、データパケットが、ＵＳＢホストコントローラからアップストリームポート１０に送信されてくることが把握できる。
【００８８】
トークンパケットに続くデータパケットはダウンストリームポート２０に接続されたＵＳＢデバイス（ＵＳＢアドレスとして「Ａ１」が割り当てられたＵＳＢデバイス）に向けられたパケットであることが決まっている。そのため、パケット転送制御回路３０４は、ダウンストリームポート２０の送信フラグは引き続きセット状態とする。しかし、パケット転送制御回路３０４は、ダウンストリームポート２１の送信フラグはクリアする。即ち、ダウンストリームポート２０及び２１の送受信フラグの状態は、トークンパケットに格納されたＵＳＢアドレスが割り当てられたＵＳＢデバイスが接続されたダウンストリームポート２０の送信フラグのみがセットされた状態となる。
【００８９】
時刻ｔ０４において、アップストリームポート１０が受信したパケットを、ダウンストリームポート２０及び２１を介して転送する処理が終了する。パケット転送制御回路３０４では、ダウンストリームポート２０及び２１におけるパケット転送の終了を認識すると、ドライバイネーブル信号２１５をネゲートする。図７では、ダウンストリームポート２０及び２１のそれぞれに対応したドライバイネーブル信号２１５がネゲートされている。
【００９０】
時刻ｔ０５において、パケット解析回路３０３は、アップストリームポート１０におけるデータパケットの受信を検出し、送信パケット検出信号２１０をアサートする。パケット転送制御回路３０４は、アサートされた送信パケット検出信号２１０に応じて、送信フラグがセットされたダウンストリームポートに対応するドライバイネーブル信号２１５をアサートする。図７においては、ダウンストリームポート２０に対応する送信フラグがセットされ、ダウンストリームポート２１に対応する送信フラグはクリアされているため、ダウンストリームポート２０に対応するドライバイネーブル信号２１５に限りアサートする。その結果、ダウンストリームポート２０にはデータパケットが転送されるが、ダウンストリームポート２１にはデータパケットは転送されない。
【００９１】
時刻ｔ０６において、パケット解析回路３０３におけるＰＩＤの解析が終了し、ＰＩＤ解析信号２１２に送信パケットのＰＩＤが設定される。図７においては、ＰＩＤ解析信号２１２は、データＰＩＤを示す。
【００９２】
パケット転送制御回路３０４は、ＰＩＤ解析信号２１２がデータＰＩＤを示すことを認識すると、ＵＳＢデバイスによる送信が予定されるハンドシェイクパケットの受信に備える。より具体的には、送受信対象ポートであるダウンストリームポート２０に対応した送信フラグをクリアし、受信フラグをセットする。
【００９３】
時刻ｔ０７において、パケット転送制御回路３０４は、データパケットの転送が終了したことに応じて、ダウンストリームポート２０に対応したドライバイネーブル信号２１５をネゲートする。一方、パケット転送制御回路３０４は、受信フラグがセットされているため、ダウンストリームポート２０に対応したレシーバイネーブル信号２１６をアサートする。
【００９４】
時刻ｔ０８において、ダウンストリームポート２０に接続されたＵＳＢデバイスが、ハンドシェイクパケットを送信する。ハンドシェイクパケットの送信を受けて、パケット解析回路３０３は、受信パケット検出信号２１１をアサートすると共に、受信パケットのＰＩＤの解析を開始する。解析した結果、受信パケットがハンドシェイクＰＩＤを持つ場合には、ＰＩＤ解析信号２１２にはハンドシェイクＰＩＤが設定される（時刻ｔ０９）。
【００９５】
時刻ｔ０９において、ハンドシェイクＰＩＤが設定されたＰＩＤ解析信号２１２を受けたパケット転送制御回路３０４は、ハンドシェイクパケットが送信されたということは、トランザクションの完了を意味するので、ダウンストリームポート２０及び２１を待機状態に初期化する（送信フラグをセットし、受信フラグをクリアする）。
【００９６】
時刻ｔ１０において、パケット転送制御回路３０４は、ハンドシェイクパケットの転送が完了すると、ダウンストリームポート２０に対応した受信フラグに従い、レシーバイネーブル信号２１６をネゲートする。
【００９７】
以上、図７を参照しつつ、トランザクションのタイプがＯＵＴ（ＰＩＤ＝ＯＵＴ）のトークンパケットをアップストリームポート１０において受信した場合のＵＳＢハブ１の動作について説明した。次に、トランザクションのタイプがＩＮ（ＰＩＤ＝ＩＮ）のトークンパケットをアップストリームポート１０において受信した場合のＵＳＢハブ１の動作について説明する。
【００９８】
図８は、ＵＳＢハブ１における各種信号のタイミングチャートの一例である。なお、図８のタイミングチャートを用いて動作を説明するにあたり、各種の前提条件は、図７を用いて説明した際の前提条件と同一とする。
【００９９】
待機状態（時刻ｔ１１）においては、パケット転送制御回路３０４が管理するダウンストリームポート２０及び２１に対応した送信フラグをセットし、受信フラグをクリアする。
【０１００】
時刻ｔ１２において、アップストリームポート１０において、トランザクションのタイプがＩＮ（ＰＩＤ＝ＩＮ）、かつ、ＵＳＢアドレスが「Ａ１」のトークンパケットを受信する。その後、パケット解析回路３０３が、送信パケット検出信号２１０をアサートする。送信パケット検出信号２１０のアサートを受けて、パケット転送制御回路３０４は、ダウンストリームポート２０及び２１の送信フラグがセットされていることに応じ、ドライバイネーブル信号２１５をアサートする。図８では、ダウンストリームポート２０及び２１の送信フラグが共にセットされているため、それぞれのポートに対応したドライバイネーブル信号２１５がアサートされる。
【０１０１】
パケット解析回路３０３は、アップストリームポート制御回路３０からダウンストリームポート制御回路４０に転送されるパケットを解析することで得られたＵＳＢアドレス（図８においては、ＵＳＢアドレス＝「Ａ１」）をＵＳＢアドレス解析信号２１３として、パケット転送制御回路３０４に出力する。パケット転送制御回路３０４は、ＵＳＢアドレスが「０」ではないので、メモリ３０５にアクセスし、ＵＳＢアドレス管理情報を参照する。パケット転送制御回路３０４は、ＵＳＢアドレス管理情報を参照することで、ダウンストリームポート２０を送受信対象ポートに設定し、管理する（時刻ｔ１３）。
【０１０２】
さらに、時刻ｔ１３において、パケット転送制御回路３０４は、パケット解析回路３０３が出力するＰＩＤ解析信号２１２が示すＰＩＤがＩＮ（ＰＩＤ＝ＩＮ）であるので、データパケットが、ダウンストリームポート２０に接続されたＵＳＢデバイスから送信されてくることが把握できる。そこで、パケット転送制御回路３０４は、ダウンストリームポート２０及び２１の送信フラグをクリアする。一方、パケット転送制御回路３０４は、ダウンストリームポート２０に接続されたＵＳＢデバイスから送信されてくるデータパケットの受信に備えるため、ダウンストリームポート２０に対応する受信フラグをセットする。
【０１０３】
時刻ｔ１４において、アップストリームポート１０が受信したトークンパケットを、ダウンストリームポート２０及び２１を介して転送する処理が終了する。パケット転送制御回路３０４では、ダウンストリームポート２０及び２１におけるパケット転送の終了を認識すると、ドライバイネーブル信号２１５をネゲートする。図８では、ダウンストリームポート２０及び２１のそれぞれに対応したドライバイネーブル信号２１５がネゲートされている。
【０１０４】
また、パケット解析回路３０３は、ダウンストリームポート２０及び２１におけるパケット転送の終了を認識すると、セットされた受信フラグに応じて、ダウンストリームポート２０に対応するレシーバイネーブル信号２１６をアサートする。その結果、ダウンストリームポート２０からアップストリームポート１０にデータパケットが転送される。一方、時刻ｔ１４において、ダウンストリームポート２１に対応する受信フラグは既にクリアされているため、ダウンストリームポート２１に対応するレシーバイネーブル信号２１６はアサートされない。
【０１０５】
時刻ｔ１５において、ダウンストリームポート２０に接続されたＵＳＢデバイスからデータパケットの転送がなされる。
【０１０６】
時刻ｔ１６において、パケット解析回路３０３におけるＰＩＤの解析が終了し、ＰＩＤ解析信号２１２に受信パケットのＰＩＤが設定される。図８においては、ＰＩＤ解析信号２１２は、データＰＩＤを示す。
【０１０７】
パケット転送制御回路３０４は、ＰＩＤ解析信号２１２がデータＰＩＤを示すことを認識すると、ダウンストリームポート２０及び２１に対応した送信フラグをセットする。パケット転送制御回路３０４は、データＰＩＤを示すＰＩＤ解析信号２１２を受信すると、ブロードキャストモードにより、ＵＳＢホストコントローラが送信するパケットを転送する。ダウンストリームポート２０に対応した送信フラグに加えて、ダウンストリームポート２１に対応した送信フラグをセットする理由は（パケットをブロードキャストする理由は）、アイソクロナス転送を含めた転送形態に対応するためである。アイソクロナス転送以外の転送形態であれば、ＰＩＤ解析信号２１２がデータＰＩＤを示す場合には、ハンドシェイクパケットがＵＳＢホストコントローラから転送されることが予定される。しかし、アイソクロナス転送の場合には、ＵＳＢホストコントローラからトークンパケットが転送されるので、ブロードキャストモードによる転送を行う。
【０１０８】
このように、時刻ｔ１６において、パケット転送制御回路３０４は、ＵＳＢホストコントローラによる送信が予定されるハンドシェイクパケット等の受信に備える。より具体的には、有効なダウンストリームポート２０及び２１に対応した送信フラグをセットし、受信フラグをクリアする。
【０１０９】
時刻ｔ１７において、パケット転送制御回路３０４は、データパケットの転送が終了したことに応じて、ダウンストリームポート２０に対応したレシーバイネーブル信号２１６をネゲートする。
【０１１０】
時刻ｔ１８において、アップストリームポート１０に接続されたＵＳＢホストコントローラが、ハンドシェイクパケットを送信する。ハンドシェイクパケットの送信を受けて、パケット解析回路３０３は、送信パケット検出信号２１０をアサートすると共に、送信パケットのＰＩＤの解析を開始する。送信パケット検出信号２１０のアサートを受けて、パケット転送制御回路３０４は、ダウンストリームポート２０及び２１に対応したドライバイネーブル信号２１５をアサートする。また、パケット解析回路３０３が解析した結果、送信パケットがハンドシェイクＰＩＤを持つ場合には、ＰＩＤ解析信号２１２にはハンドシェイクＰＩＤが設定される（時刻ｔ１９）。
【０１１１】
時刻ｔ１９において、ハンドシェイクＰＩＤが設定されたＰＩＤ解析信号２１２を受けたパケット転送制御回路３０４は、ハンドシェイクパケットが送信されたということは、トランザクションの完了を意味するので、ダウンストリームポート２０及び２１を待機状態に初期化する（送信フラグをセットし、受信フラグをクリアする）。
【０１１２】
時刻ｔ２０において、パケット転送制御回路３０４は、ハンドシェイクパケットの転送が完了すると、ダウンストリームポート２０に対応した受信フラグに従い、レシーバイネーブル信号２１６をネゲートする。
【０１１３】
ＵＳＢにおけるパケットの転送形態には、コントロール、バルク、インタラプト及びアイソクロナス転送が存在する。これらの転送形態のうち、アイソクロナス転送以外の形態については、ＵＳＢハブ１は、ハンドシェイクパケットの転送を確認することで、トランザクションの完了を知ることができる。しかし、アイソクロナス転送では、ハンドシェイクパケットが送信されることがない。そこで、パケット転送制御回路３０４では、アイソクロナス転送に対する配慮も必要である。
【０１１４】
図９は、ＵＳＢハブ１における各種信号のタイミングチャートの一例である。図９は、アイソクロナス転送時におけるＵＳＢ信号及び解析信号のタイミングチャートの一例である。図７と図９のタイミングチャートの相違点は、データパケットに送信に続いて、ハンドシェイクパケットが送信されないことである（図９、時刻ｔ２８参照）。なお、アイソクロナス転送であっても、時刻ｔ２１〜ｔ２７の間におけるパケット転送制御回路３０４の動作と、図７を用いて説明した時刻ｔ０１〜ｔ０７の間におけるパケット転送制御回路３０４の動作とでは相違点はないので、さらなる説明を省略する。
【０１１５】
図９の時刻ｔ２７において、パケット転送制御回路３０４は、ダウンストリームポート２０に対応した送受信フラグに応じて、ドライバイネーブル信号２１５をネゲート、レシーバイネーブル信号２１６をアサートする。この場合、パケット転送制御回路３０４は、ハンドシェイクパケットの受信を期待している。しかし、ＵＳＢデバイスからハンドシェイクパケットは送信されず、ＵＳＢホストコントローラから送信されたパケットを受信している（時刻ｔ２８）。
【０１１６】
このような場合には、パケット転送制御回路３０４では、次のトランザクションのトークンパケットを受信したと判断する。そこで、パケット転送制御回路３０４は、送受信フラグの状態に関わらず、全ての有効なダウンストリームポートのドライバイネーブル信号２１５をアサートすると共に、レシーバイネーブル信号２１６をネゲートする（時刻ｔ２８）。このように、パケット転送制御回路３０４では、レシーバイネーブル信号２１６をアサートしている状態でアップストリームポート１０におけるパケットの受信を確認した場合には、ブロードキャストモードでパケットを転送することで、アイソクロナス転送に対応する。
【０１１７】
さらに、パケット解析回路３０３が、アップストリームポート１０が受信したパケットを解析した結果、受信パケットがトークンパケット（ＰＩＤ＝ＯＵＴ、ＵＳＢアドレス＝Ａｎ（但し、ｎは自然数））と判断されると、パケット転送制御回路３０４は現在のダウンストリームポートの動作に、送受信フラグの設定を変更する（時刻ｔ２９）。より具体的には、時刻ｔ２９において、パケット転送制御回路３０４は、ダウンストリームポート２０又は２１のいずれかのダウンストリームポートに対応した送信フラグをセットし、受信フラグをクリアする。図９では、ダウンストリームポート２０に対応した送信フラグをセットしている。
【０１１８】
なお、トランザクションのタイプがＩＮ（ＰＩＤ＝ＩＮ）のトークンパケットをアップストリームポート１０において受信した場合のパケット転送制御回路３０４の動作（図８参照）は、アイソクロナス転送も考慮に入れた動作である。上述したように、アイソクロナス転送時には、ＵＳＢコントローラからハンドシェイクパケットは送信されず、トークンパケットが送信される。ＵＳＢハブ１では、アップストリームポート１０において、データパケットに続いて受信するパケットが、ハンドシェイクパケットかトークンパケットであるかを判断することはできない。そこで、パケット転送制御回路３０４は、図８の時刻ｔ１６において、有効なダウンストリームポート２０及び２１の送信フラグをセットし、ＵＳＢホストコントローラから転送されてくるパケットがハンドシェイクパケットであっても、トークンパケットであっても対応可能なように、ブロードキャストモードによるパケット転送の設定を行う。なお、ハンドシェイクパケットをブロードキャストモードで転送したとしても、ハンドシェイクパケットは短いパケットであるため、その転送に必要な時間は極めて短く、消費電力に対する影響は極めて軽微である。
【０１１９】
ここで、ネットワークを構成する際の使用するスイッチングハブ等で行っているポート制御をＵＳＢハブに適用することが考えられる。しかし、本発明者の検討の結果、スイッチングハブ等で行われているポート制御を、ＵＳＢハブに適用することはできないことが判明した。
【０１２０】
スイッチングハブには、パケットを受信してから特定のポートにパケットを転送するまでのレイテンシに対する規定がない。そのため、スイッチングハブでは、パケットの一部を受信後、送信ポートを制御するカットスルー方式や、パケットの全てを受信後、送信ポートを制御するストア＆フォアード方式と、等のポート制御が可能である。しかし、カットスルー方式においては２０μｓ、ストア＆フォアード方式においては８００μｓ〜１８００μｓ程度、スイッチングハブを通過する際にパケットが遅延する。
【０１２１】
一方、ＵＳＢ規格には、Ｈｉｇｈ−Ｓｐｅｅｄ転送時のパケットリピートディレイ（アップストリームポートからパケットを受信してからダウンストリームポートへ送信するまでのレイテンシ）として許容される値が、３６ＨＳビット＋４ｎｓ以下であるという規定が存在する。
【０１２２】
図１０は、ＵＳＢ規格のトークンパケットに対するＨｉｇｈ−Ｓｐｅｅｄパケットリピートディレイの模式図である。図１０から明らかなとおり、パケット検出から３６ＨＳビット＋４ｎｓ経過時には、ＳＹＮＣ領域とＰＩＤ領域の一部（ＰＩＤの約６ビット目）までしか受信できない。つまり、ＵＳＢハブでは、パケットを検出した後にポート制御を行うことはできないため、ＵＳＢハブではイーサネット（登録商標）におけるスイッチングハブの技術を適用することはできない。
【０１２３】
そこで、本実施形態に係るＵＳＢハブ１では、アップストリームポート１０で受信したトークンパケットはブロードキャストモードで送信し、トークンパケットの解析が完了したタイミング以降において、ユニキャストモードでのパケット転送に切り替えている。
【０１２４】
なお、本実施形態において説明した低消費電力化技術は、Ｈｉｇｈ−Ｓｐｅｅｄ転送をサポートするＵＳＢ２．０規格に準拠したＵＳＢハブのみならず、ＵＳＢ３．０規格に準拠したＵＳＢハブにも適用できる。ＵＳＢ３．０規格に準拠したＵＳＢハブは、Ｓｕｐｅｒ−Ｓｐｅｅｄ転送を制御するＵＳＢ３．０制御回路と、ＵＳＢ２．０制御回路と、が独立した構成となっている。ＵＳＢ３．０規格で扱われるパケットには、送信先が特定できるフィールドが含まれている。従って、ＵＳＢハブのＵＳＢ３．０制御回路では、当該フィールドに記載された送信先にパケットをユニキャストする。そのため、ＵＳＢ２．０制御回路部分の消費電力を低減することができれば、ＵＳＢ３．０規格に準拠したＵＳＢハブ全体の消費電力の低減を実現できる。
【０１２５】
以上のように、本実施形態に係るＵＳＢハブ１は、ＵＳＢホストコントローラが割り当てたＵＳＢアドレスと、そのＵＳＢアドレスに対応したＵＳＢデバイスが接続されたダウンストリームポートと、の関係をＵＳＢアドレス管理情報として記憶する。ＵＳＢアドレス管理情報の生成は、ＵＳＢハブ１が自動的に行うものであり、ユーザやＵＳＢホストコントローラに対する要求事項は存在しない。より具体的には、ＵＳＢホストコントローラからＵＳＢデバイスに送られるセットアドレスリクエストを検出し、セットアドレスリクエストに対して応答するハンドシェイクパケットを受信するダウンストリームポートを特定することで、ＵＳＢアドレス管理情報を生成し、メモリ３０５に記憶する。
【０１２６】
なお、ＵＳＢハブ１の各機能は、プログラムを組み込んだ、ＬＳＩ（Large Scale Integration）等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、記憶装置に格納し、そのプログラムを主記憶部にロードしてＣＰＵ（Central Processing Unit）において実行することにより、ソフトウェア的に実現することも可能である。
【０１２７】
本実施形態に係るＵＳＢハブ１は、２段階の低消費電力化技術を実施することで、ＵＳＢハブの消費電力を低減する。
【０１２８】
第１に、トークンパケットを受信した際には、有効な全てのダウンストリームポートに対してトークンパケットを転送するが、トークンパケットの解析が終了し、トランザクションの完了に必要なダウンストリームポートを特定した後は、当該ダウンストリームポートに対応したＩＯバッファに限り活性化する。つまり、当該トランザクションとは無関係なダウンストリームポートが確定した段階で、そのようなダウンストリームポートに対応するＩＯバッファを非活性化する。即ち、トークンパケット以外のパケットもブロードキャストモードで転送していたのに対し、トークンパケット以外はブロードキャストモードで転送せず、ユニキャストモードで転送することで、ＵＳＢハブ１における消費電力の低減を達成する。より具体的には、ＵＳＢハブ１が備えるダウンストリームポートの数が３であれば、凡そ、パケット転送時の消費電力を１／３とすることができる。
【０１２９】
第２に、アップストリームポートとダウンストリームポート間に転送されるパケットを解析し、当該パケットを解析した結果に応じて、ＩＯバッファに含まれるドライバ及びレシーバに対するきめ細かい制御を実施する。即ち、パケットを解析した結果、当該パケットに続くパケットが、ＵＳＢホストコントローラからＵＳＢデバイスに向かうパケットであると判明すれば、ドライバを活性化し、レシーバを非活性化する。一方、ＵＳＢデバイスからハンドシェイクパケット等のパケットが送信されてくることが判明すれば、ドライバを非活性化し、レシーバを活性化する。即ち、予測されるパケットの転送方向に基づいて、当該パケットの転送に必要なドライバ又はレシーバの一方に限り活性化する。その結果、ＵＳＢハブ１の消費電力をさらに低減させることができる。
【０１３０】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１３１】
１  ＵＳＢハブ
１０、１０１  アップストリームポート
２０〜２２、１０２  ダウンストリームポート
３０  アップストリームポート制御回路
４０  ダウンストリームポート制御回路
１００  ＵＳＢ装置
１０４  パケット解析部
１０５  ＵＳＢアドレス管理部
１０６  バッファ制御部
２０１〜２０４  ＵＳＢ信号
２０５  パラレル送信信号
２０６  パラレル受信信号
２０７  スケルチ検出信号
２０８  受信データ信号
２０９  送信データ信号
２１０  送信パケット検出信号
２１１  受信パケット検出信号
２１２  ＰＩＤ解析信号
２１３  ＵＳＢアドレス解析信号
２１４  リクエスト解析信号
２１５  ドライバイネーブル信号
２１６  レシーバイネーブル信号
３０１  ＵＳＢトランシーバ
３０２  シリアルパラレル変換回路
３０３  パケット解析回路
３０４  パケット転送制御回路
３０５  メモリ
３１０〜３１２、１０３  ＩＯバッファ
４０１  ドライバ
４０２  レシーバ
４０３  スケルチ
【図１】
2014086031.tif 000003
【図２】
2014086031.tif 000004
【図３】
2014086031.tif 000005
【図４】
2014086031.tif 000006
【図５】
2014086031.tif 000007
【図６】
2014086031.tif 000008
【図７】
2014086031.tif 000009
【図８】
2014086031.tif 000010
【図９】
2014086031.tif 000011
【図１０】
2014086031.tif 000012