(57)【特許請求の範囲】
【請求項１】
ホスト装置から出力されたデータを蓄積する入力バッファと、
前記ホスト装置へ出力するデータを蓄積する出力バッファと、
前記入力バッファ及び前記出力バッファと、前記ホスト装置との間のデータの受け渡しを行うデータ通信部と、
前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されているデータ量に基づいて前記入力バッファ及び前記出力バッファに対するバッファの割当量を変更させるバッファ制御部と、を備え、
前記バッファ制御部は、前記データ量が所定の値に達した場合に前記データ通信部を通常電力モードから省電力モードもしくは省電力モードから通常電力モードへ遷移させるデバイスコントローラ。
【請求項２】
前記バッファ制御部は、
前記入力バッファに蓄積されたデータ量が第１の基準値を上回った場合に前記データ通信部を通常電力モードから省電力モードへ遷移させる、請求項１に記載のデバイスコントローラ。
【請求項３】
前記データ通信部は、
前記入力バッファに蓄積されたデータ量が前記第１の基準値を上回った場合、前記ホスト装置に対してデータの出力を停止させるデータ出力停止信号を出力する、請求項２に記載のデバイスコントローラ。
【請求項４】
前記入力バッファに蓄積されたデータ量が前記第１の基準値と同じ又は前記第１の基準値よりも低い第２の基準値を下回った場合、
前記バッファ制御部は、
前記データ通信部を前記省電力モードから前記通常電力モードへ遷移させる、請求項２又は３に記載のデバイスコントローラ。
【請求項５】
前記データ通信部は、前記入力バッファに蓄積されたデータ量が前記第２の基準値を下回った場合、前記ホスト装置に対してデータの出力を開始させるデータ出力開始信号を出力する、請求項４に記載のデバイスコントローラ。
【請求項６】
前記バッファ制御部は、
前記出力バッファに蓄積されたデータ量が第３の基準値を下回った場合に、前記データ通信部を通常電力モードから省電力モードへ遷移させる、請求項１乃至５のいずれか１項に記載のデバイスコントローラ。
【請求項７】
前記データ通信部は、
蓄積されたデータ量が前記第３の基準値を下回っている場合、前記蓄積されたデータを前記ホスト装置へ出力しない、請求項６に記載のデバイスコントローラ。
【請求項８】
前記バッファ制御部は、
前記出力バッファに蓄積されたデータ量が前記第３の基準値と同じ又は前記第３の基準値よりも高い第４の基準値を上回った場合に、前記データ通信部を前記省電力モードから前記通常電力モードへ遷移させる、請求項６又は７に記載のデバイスコントローラ。
【請求項９】
前記バッファ制御部は、
前記入力バッファに蓄積されたデータ量が第５の基準値を上回った場合に、又は、前記出力バッファに蓄積されたデータ量が第６の基準値を下回った場合に、前記出力バッファに割り当てられているメモリ領域の一部を前記入力バッファに割り当てる、請求項８に記載のデバイスコントローラ。
【請求項１０】
前記バッファ制御部は、
前記入力バッファに蓄積されたデータ量が所定の期間前記第５の基準値を上回った場合に、又は、前記出力バッファに蓄積されたデータ量が所定の期間前記第６の基準値を下回った場合に、前記出力バッファに割り当てられているメモリ領域の一部を前記入力バッファに割り当てる、請求項９に記載のデバイスコントローラ。
【請求項１１】
前記バッファ制御部は、
前記データ通信部が前記通常電力モードから前記省電力モードへ遷移した回数に基づいて、前記入力バッファに割り当てる領域及び前記出力バッファに割り当てる領域を変更する、請求項８に記載のデバイスコントローラ。
【請求項１２】
前記バッファ制御部は、
前記入力バッファ及び前記出力バッファに蓄積されたデータが全て転送された場合に、前記変更された前記入力バッファ及び前記出力バッファに割り当てられた領域を、変更前に前記入力バッファ及び前記出力バッファに割り当てられていた領域に戻す、請求項８乃至１１のいずれか１項に記載のデバイスコントローラ。
【請求項１３】
前記ホスト装置は、
ＵＳＢホストコントローラを有し、
前記データ通信部は、
前記入力バッファ及び前記出力バッファと、前記ＵＳＢホストコントローラとの間のデータの受け渡しを行う、請求項１乃至１２のいずれか１項に記載のデバイスコントローラ。
【請求項１４】
前記バッファ制御部は、
前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されているデータ量に基づいて、前記データ通信部を通常電力モードから低消費電力モードへ遷移させるＬｏｗ  Ｐｏｗｅｒ  Ｓｔａｔｅ制御を実行する請求項１３に記載のデバイスコントローラ。
【請求項１５】
ホスト装置から出力されたデータを蓄積する入力バッファと、
前記ホスト装置へ出力するデータを蓄積する出力バッファと、
前記入力バッファ及び前記出力バッファと、前記ホスト装置との間のデータの受け渡しを行うデータ通信部と、
前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されているデータ量に基づいて前記入力バッファ及び前記出力バッファに対するバッファの割当量を変更させるバッファ制御部と、を備え、
前記バッファ制御部は、前記データ量が所定の値に達した場合に前記データ通信部を通常電力モードから省電力モードへ遷移させることを特徴とするＵＳＢデバイスコントローラ。
【請求項１６】
前記バッファ制御部は、前記入力バッファに蓄積されたデータ量が第１のしきい値を上回った場合に、前記データ通信部を前記省電力モードに遷移させる請求項１５に記載のＵＳＢデバイスコントローラ。
【請求項１７】
前記バッファ制御部は、前記出力バッファに蓄積されたデータ量が第２のしきい値を下回った場合に、前記データ通信部を前記省電力モードに遷移させる請求項１５に記載のＵＳＢデバイスコントローラ。
【請求項１８】
前記データ通信部が省電力モードにて動作している間に、前記入力バッファ及び出力バッファの少なくとも一方に蓄積されたデータを処理するデータ処理部をさらに備える請求項１５に記載のＵＳＢデバイスコントローラ。
【請求項１９】
ホスト装置から出力されたデータを蓄積する入力バッファ及び前記ホスト装置へ出力するデータを蓄積する出力バッファの少なくとも一方に蓄積されたデータ量に基づいて、前記入力バッファ及び前記出力バッファと、前記ホスト装置との間のデータの受け渡しを行うデータ通信部を通常電力モードから省電力モードへ遷移し、
前記データ通信部が省電力モードへ遷移した後に、前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されたデータ量に基づいて、前記入力バッファ及び前記出力バッファに対するメモリ容量の割当量を変化する、電力制御方法。
【請求項２０】
前記入力バッファに蓄積されたデータ量が第１の基準値を上回った場合に前記データ通信部を通常電力モードから省電力モードへ遷移する、請求項１９に記載の電力制御方法。
【請求項２１】
前記データ通信部を通常電力モードから省電力モードへ遷移させる前に、前記データ通信部から前記ホスト装置に対してデータの出力を停止させるデー出力停止信号を出力する、請求項２０に記載の電力制御方法。
【請求項２２】
前記データ通信部を前記通常電力モードから前記省電力モードへ遷移させた後に、
前記入力バッファに蓄積されたデータ量が前記第１の基準値と同じ又は前記第１の基準値よりも低い第２の基準値を下回った場合、前記データ通信部を前記省電力モードから前記通常電力モードへ遷移させる、請求項２０又は２１に記載の電力制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電力制御を行うデバイスコントローラ、ＵＳＢデバイスコントローラ及び電力制御方法に関する。
【背景技術】
【０００２】
ホスト機器として動作するコンピュータ装置に、様々な周辺装置を接続するための規格として、一般的にＵＳＢ（Universal Serial Bus）規格が用いられている。また、ＵＳＢ規格を用いて通信を行うために、ホスト機器には、ＵＳＢホストコントローラが搭載されており、ホスト機器に接続される周辺装置には、ＵＳＢデバイスコントローラが搭載されている。なお、ＵＳＢ規格は時間の経過とともに検討が進みバージョンアップされている。現在は、ＵＳＢ２．０規格が主に市場において普及しているが、ＵＳＢ３．０規格も策定され、ＵＳＢ３．０規格を用いた製品も今後市場に普及していくものと考えられる。
【０００３】
ここで、ＵＳＢ２．０規格を用いたＵＳＢデバイスコントローラの一般的な構成を図８に示す。ＵＳＢ２．０規格を用いたＵＳＢデバイスコントローラ１２１は、プロトコル制御部１２２とデータバッファ１２３とを備えている。ＵＳＢデバイスコントローラ１２１は、ホスト機器に搭載されているＵＳＢホストコントローラ１１１から受信したデータを、プロトコル制御部１２２においてデータ処理を行う。プロトコル制御部１２２においては、データ復調、ヘッダ解析等を実施する。データ処理が行われたデータは、データバッファ１２３に一時的に格納され、データを記憶するメモリ等の後段回路１２４へ出力される。
【０００４】
ＵＳＢ３．０規格においては、データバッファを、パケットサイズ毎に変更が可能となる。具体的には、図９に示すように、エンドポイント（ＥＰ）毎に割り当てられるバッファサイズを変更することができる。エンドポイントとは、データ転送用バッファの制御部として用いられ、エンドポイント毎に割り当てられたバッファの、転送方向、転送方式等を定義することができる。転送方向としては、ホスト装置から周辺装置（デバイス装置）へデータが転送されるＯＵＴ転送や、周辺装置からホスト装置へデータが転送されるＩＮ転送がある。また、転送方式としては、バルク転送や、インタラプト転送等がある。
【０００５】
特許文献１には、ＵＳＢ規格を用いた周辺装置において、エンドポイントに割り当てられるバッファメモリを共用する構成が開示されている。具体的には、データ送信用バッファとデータ受信用バッファとでバッファメモリを共有する構成が開示されている。さらに、送信データと受信データとのパケット数をカウントし、それぞれのカウント値に応じて、データ送信用バッファに割り当てるバッファ容量と、データ受信用バッファに割り当てるバッファ容量とを変更する処理が開示されている。
【０００６】
また、特許文献２には、ＵＳＢホストコントローラにおいて、ＵＳＢポートを介したデータ転送が行われていない場合、ＵＳＢデバイス装置から出力されるデータを入力する入力バッファをパワーダウンさせるという省電力制御が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−２６０６３８号公報
【特許文献２】特開平１１−２０５４１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に開示されているバッファメモリの割り当て制御を用いた場合、送受信データの統計値を用いて、バッファメモリの割り当て容量を決定している。しかし、ホストコントローラからデバイス装置へデータが転送される転送速度と、バッファから後段回路へデータが転送される転送速度との差異等により、バッファに蓄積されるデータ量は変化する。たとえば、バッファから後段回路への転送速度が相対的に遅い場合、ホストコントローラから転送されるデータが入力用のバッファに蓄積されていく。一方、後段回路からバッファへの転送速度が相対的に遅い場合、バッファに１パケット分のデータが準備されると、ホストコントローラへ送信されてしまう。そのため、出力用のバッファを有効に活用することができない。そのため、バッファメモリの割り当てを決定する際に、送受信データの数だけを用いたとしても、上記のような事情を考慮することはできず、適切なバッファメモリの割り当てを行うことができない。
【０００９】
さらに、バッファから後段回路への転送速度が相対的に遅い場合、上述したように入力バッファへデータが蓄積され、デバイス装置が、ホストコントローラからデータを受け取ることができなくなる。しかし、このような場合においても、デバイス装置は、ホストコントローラから出力されるデータを受け取るために受信動作を継続しており、無駄な電力を消費するという問題がある。
【課題を解決するための手段】
【００１０】
本発明の第１の態様にかかるデバイスコントローラは、ホスト装置から出力されたデータを蓄積する入力バッファと、前記ホスト装置へ出力するデータを蓄積する出力バッファと、前記入力バッファ及び前記出力バッファと、前記ホスト装置との間のデータの受け渡しを行うデータ通信部と、前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されているデータ量に基づいて前記入力バッファ及び前記出力バッファに対するバッファの割当量を変更させるバッファ制御部と、を備え、前記バッファ制御部は、前記データ量が所定の値に達した場合に前記データ通信部を通常電力モードから省電力モードもしくは省電力モードから通常電力モードへ遷移させるものである。
【００１１】
このようなデバイスコントローラを用いることにより、バッファに蓄積されているデータ量に基づいて、入力バッファ及び出力バッファに対する割当量を変更させることができるとともに、データ通信部の動作モードを遷移させることができる。これにより、バッファを効率的に使用することができ、さらに、デバイスコントローラの省電力化を図ることができる。
【００１２】
本発明の第２の態様にかかるＵＳＢデバイスコントローラは、ホスト装置から出力されたデータを蓄積する入力バッファと、前記ホスト装置へ出力するデータを蓄積する出力バッファと、前記入力バッファ及び前記出力バッファと、前記ホスト装置との間のデータの受け渡しを行うデータ通信部と、前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されているデータ量に基づいて前記入力バッファ及び前記出力バッファに対するバッファの割当量を変更させるバッファ制御部と、を備え、前記バッファ制御部は、前記データ量が所定の値に達した場合に前記データ通信部を通常電力モードから省電力モードへ遷移させるものである。
【００１３】
このようなＵＳＢデバイスコントローラを用いることにより、バッファに蓄積されているデータ量に基づいて、入力バッファ及び出力バッファに対する割当量を変更させることができるとともに、データ通信部の動作モードを遷移させることができる。これにより、バッファを効率的に使用することができ、さらに、ＵＳＢデバイスコントローラの省電力化を図ることができる。
【００１４】
本発明の第３の態様にかかる電力制御方法は、ホスト装置から出力されたデータを蓄積する入力バッファ及び前記ホスト装置へ出力するデータを蓄積する出力バッファの少なくとも一方に蓄積されたデータ量に基づいて、前記入力バッファ及び前記出力バッファと、前記ホスト装置との間のデータの受け渡しを行うデータ通信部を通常電力モードから省電力モードへ遷移し、さらに、前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されたデータ量に基づいて、前記入力バッファ及び前記出力バッファに対するメモリ容量の割当量を変化するものである。
【００１５】
このような電力制御方法を用いることにより、バッファに蓄積されているデータ量に基づいて、入力バッファ及び出力バッファに対する割当量を変更させることができるとともに、データ通信部の動作モードを遷移させることができる。これにより、バッファを効率的に使用することができ、さらに、デバイスコントローラ及びデバイス装置の省電力化を図ることができる。
【発明の効果】
【００１６】
本発明により、バッファを効率的に使用し、バッファに蓄積されたデータ量に基づいて電力制御を行うことができるデバイスコントローラ、ＵＳＢデバイスコントローラ及び電力制御方法を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態１にかかるデバイス装置の構成図である。
【図２】実施の形態１にかかる入力バッファ及び出力バッファの割り当てを示す図である。
【図３】実施の形態１にかかるＯＵＴ転送時のデバイスコントローラの動作を説明した図である。
【図４】実施の形態１にかかるＩＮ転送時のデバイスコントローラの動作を説明した図である。
【図５】実施の形態１にかかるデータバッファコントロール部のＯＵＴ転送時のフローチャートである。
【図６】実施の形態１にかかるデータバッファコントロール部のＩＮ転送時のフローチャートである。
【図７】実施の形態２にかかるＩＮ転送時のデバイスコントローラの動作を説明した図である。
【図８】ＵＳＢ２．０規格を用いたホスト装置とデバイス装置との構成図である。
【図９】一般的なデバイス装置におけるデータバッファの割り当てを示す図である。
【発明を実施するための形態】
【００１８】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。図１を用いて本発明の実施の形態１にかかるデバイス装置１０の構成例について説明する。デバイス装置１０は、デバイスコントローラ２０と、データ記憶部３０とを備えている。デバイスコントローラ２０は、ＵＳＢ  ＰＨＹ部２１と、ＵＳＢ  ＬＩＮＫ部２２と、エンドポイント（ＯＵＴ）２３と、エンドポイント（ＩＮ）２４と、データバッファコントロール部２５と、データコントロール部２６とを備えている。デバイスコントローラ２０は、ホスト装置４０とデータの入出力を行い、さらに、データ記憶部３０ともデータの入出力を行う。また、ＵＳＢ  ＰＨＹ部２１と、ＵＳＢ  ＬＩＮＫ部２２とは、データ通信部２７を構成している。
【００１９】
ホスト装置４０は、例えば、ＵＳＢホストコントローラを搭載したパーソナルコンピュータ（ＰＣ）等の情報処理装置である。もしくは、ホスト装置４０は、ＤＶＤ等の光ディスクに記録されている情報を再生する情報再生装置等であってもよい。
【００２０】
デバイス装置１０は、ＵＳＢ規格を用いてホスト装置４０と接続し、データ転送を行う周辺機器である。デバイス装置１０は、例えば、データの保存を行うメモリ装置や、ホスト装置４０に接続されるプリンタ機器、キーボード等であってもよい。また、デバイス装置１０とホスト装置４０とは、ＵＳＢバスを用いた有線を用いて接続されてもよく、無線を用いて接続されてもよい。
【００２１】
次に、デバイスコントローラ２０の各構成要素について説明する。ＵＳＢ  ＰＨＹ部２１は、ホスト装置４０とデータ転送を行う。デバイスコントローラ２０からホスト装置４０に対してデータ転送を行う際、ＵＳＢ  ＰＨＹ部２１は、例えば、８ｂ／１０ｂ変調を行い、さらにパラレルデータをシリアルデータへ変換し、ＵＳＢバスを介してホスト装置４０へシリアルデータを出力する。また、ホスト装置４０からデバイスコントローラ２０に対してデータが転送された場合、例えば、ＵＳＢ  ＰＨＹ部２１は、シリアルデータをパラレルデータへ変換し、８ｂ／１０ｂ復調を行い、受信データを抽出する。ＵＳＢ  ＰＨＹ部２１は、ＵＳＢコネクタ等を介して、ホスト装置４０とデータ転送を行う。
【００２２】
ＵＳＢ  ＬＩＮＫ部２２は、ホスト装置４０との間のデータ転送を実行するためにリンク制御を行う。例えば、ＵＳＢ  ＬＩＮＫ部２２は、ホスト装置４０との間において転送されるデータのエラー検出を行う。さらに、ＵＳＢ  ＬＩＮＫ部２２は、電力制御を行い、ホスト装置４０との間のデータ転送が実行されていない場合等に、省電力化を図る機能を有する。
【００２３】
エンドポイント（ＯＵＴ）２３は、ホスト装置４０からデバイス装置１０に対するデータ転送（ＯＵＴ転送）時に、ホスト装置４０から転送されたデータを、データバッファコントロール部２５に出力する。また、エンドポイント（ＩＮ）２４は、デバイス装置１０からホスト装置４０に対するデータ転送（ＩＮ転送）時に、データバッファコントロール部２５に格納されているデータを、ＵＳＢ  ＬＩＮＫ部２２及びＵＳＢ  ＰＨＹ部２１を介してホスト装置４０へ転送する。また、データバッファコントロール部２５において管理されているバッファメモリは、エンドポイント毎にメモリ領域が割り当てられている。本図においては、バッファメモリは、エンドポイント（ＯＵＴ）２３及びエンドポイント（ＩＮ）２４に割り当てられている。但し、デバイスコントローラ２０は、複数のエンドポイントを有することができるため、３つ以上のエンドポイントにバッファメモリのメモリ領域が割り当てられてもよい。
【００２４】
データバッファコントロール部２５は、エンドポイント（ＯＵＴ）２３から出力されたデータを蓄積する。さらに、データバッファコントロール部２５は、エンドポイント（ＩＮ）２４へ出力するデータも蓄積する。データバッファコントロール部２５は、共有メモリを有している。共有メモリは、エンドポイント（ＯＵＴ）２３に割り当てられたメモリ領域（以下、入力バッファ）と、エンドポイント（ＩＮ）２４に割り当てられたメモリ領域（出力バッファ）とを含む。データバッファコントロール部２５は、入力バッファ及び出力バッファの少なくとも一方に蓄積されたデータ量に基づいて、図２に示されているように入力バッファ及び出力バッファに割り当てる領域を変更する。
【００２５】
例えば、入力バッファの全てにデータが蓄積された場合、データバッファコントロール部２５へ入力されるデータの転送速度に対して、データバッファコントロール部２５とデータ記憶部３０との間のデータ転送速度が、ホスト装置４０から行われるデータ転送に対して遅いことを意味している。このような場合、データバッファコントロール部２５は、出力バッファに割り当てたメモリ領域を入力バッファに振り分けて、ホスト装置４０から出力されるデータをできる限り受け取ることができるようにする。データバッファコントロール部２５は、入力バッファに蓄積されるデータ量について基準値もしくは閾値を設定し、蓄積されたデータ量が基準値等を超えた場合に、出力バッファに割り当てたメモリ領域を入力バッファに振り分けてもよい。基準値もしくは閾値は、任意の値を設定できるようにしてもよい。
【００２６】
さらに、出力バッファが空になっている状態が一定時間以上継続する場合も、データバッファコントロール部２５からホスト装置４０へ転送されるデータの転送速度に対して、データバッファコントロール部２５とデータ記憶部３０との間のデータ転送速度が遅いことを意味している。このような場合に、データバッファコントロール部２５は、出力バッファに割り当てたメモリ領域を入力バッファに振り分けるようにしてもよい。データバッファコントロール部２５は、出力バッファに蓄積されるデータ量について基準値もしくは閾値を設定し、蓄積されたデータ量が基準値等を下回っている場合に、出力バッファに割り当てたメモリ領域を入力バッファに振り分けてもよい。基準値もしくは閾値は、任意の値を設定できるようにしてもよい。
【００２７】
データバッファコントロール部２５は、上述した入力バッファ及び出力バッファの割り当て制御のほかに、ＵＳＢ  ＬＩＮＫ部２２に対する電力制御も行う。例えば、データバッファコントロール部２５は、入力バッファの全てにデータが蓄積された場合に、ＵＳＢ  ＬＩＮＫ部２２へ自動的に低消費電力モード遷移要求を行い、ＵＳＢ  ＬＩＮＫ部２２に対してＬｏｗ  Ｐｏｗｅｒ  Ｓｔａｔｅ制御を開始する。データバッファコントロール部２５は、入力バッファに蓄積されるデータ量について基準値もしくは閾値を設定し、蓄積されたデータ量が基準値を超えた場合に、ＵＳＢ  ＬＩＮＫ部２２へ低消費電力モード遷移要求を行ってもよい。
【００２８】
Ｌｏｗ  Ｐｏｗｅｒ  Ｓｔａｔｅ制御は、ＵＳＢ３．０規格において採用されている制御方式である。Ｌｏｗ  Ｐｏｗｅｒ  Ｓｔａｔｅ制御は、リンクの接続先、つまり、ホスト装置４０との間のデータ通信がｉｄｌｅ状態である場合に、デバイスコントローラが供給電力を自律的に低下させ、省電力化を図る制御である。Ｌｏｗ  Ｐｏｗｅｒ  Ｓｔａｔｅ制御は、例えば、リンクをアクティブに保つモードと、リンクを停止させるモードとを有している。さらに、これら二つのモードの間に、電力供給を段階的に減少させるために、複数のモードが設定されてもよい。ＵＳＢ３．０においては、例えば、Ｕ０（Link active）、Ｕ１（Link idle-fast exit）、Ｕ２（Link idle-slower exit）、Ｕ３（Link suspend）の４つのモードが定義されている。
【００２９】
データバッファコントロール部２５は、入力バッファに空き領域ができた場合に、ＵＳＢ  ＬＩＮＫ部２２へ自動的に低消費電力モードから通常電力モードへの復帰要求を行ってもよい。低消費電力モードから通常電力モードへの復帰要求は、入力バッファの空き領域に基準値や閾値を設け、基準値以上の空き領域ができた場合に行われてもよい。
【００３０】
さらに、データバッファコントロール部２５は、出力バッファにデータが蓄積されている場合に、ＵＳＢ  ＬＩＮＫ部２２へ通常電力モード遷移要求を行い、出力バッファにデータが存在しない場合に、ＵＳＢ  ＬＩＮＫ部２２へ低消費電力モード遷移要求を行ってもよい。また、ＵＳＢ  ＬＩＮＫ部２２は、低消費電力モード遷移要求が行われた際に、ホスト装置４０に対して、データ出力の停止を要求するデータ出力停止信号を出力してもよい。これにより、ＵＳＢ  ＬＩＮＫ部２２は、ホスト装置４０から出力されるデータがない状態において、低消費電力モードへ遷移することができる。そのため、ＵＳＢ  ＬＩＮＫ部２２が低消費電力モードへ遷移したことにより、ホスト装置４０から出力されるデータがロスすることを回避することができる。
【００３１】
また、ＵＳＢ  ＬＩＮＫ部２２は、通常電力モードへの復帰要求もしくは遷移要求が行われた際に、ホスト装置４０に対してデータ出力の開始を要求するデータ出力開始信号を出力してもよい。これにより、ホスト装置４０からデータが出力されるタイミングに、ＵＳＢ  ＬＩＮＫ部２２を通常電力モードに遷移させることができるため、ＵＳＢ  ＬＩＮＫ部２２に対して、効率的に電力が供給される。
【００３２】
データコントロール部２６は、データバッファコントロール部２５の入力バッファからデータを受け取り、データ記憶部３０へ出力する。さらに、データコントロール部２６は、データ記憶部３０からデータを受け取り、データバッファコントロール部２５の出力バッファへ出力する。
【００３３】
データ記憶部３０は、デバイスコントローラ２０に接続される後段回路の一例であり、ホスト装置４０との間において送受信されるデータを記憶する。また、ＵＳＢ  ＬＩＮＫ部２２が低消費電力モードに遷移している間も、データコントロール部２６や、データ記憶部３０等には電力が供給され、入力バッファからデータ記憶部３０に対してデータを転送する処理や、データ記憶部３０から出力バッファに対してデータを転送する処理等は実行される。
【００３４】
続いて、図３を用いて本発明の実施の形態１にかかるＯＵＴ転送時のデバイスコントローラ２０の動作について説明する。はじめに、エンドポイント（ＯＵＴ）２３は、ホスト装置４０からコマンド（ＣＭＤ）データを受信する。ＣＭＤデータは、データの転送方向、転送バイト数等の情報を含んでいる。その後、エンドポイント（ＯＵＴ）２３は、データ１乃至４を受け取り、入力バッファへ蓄積する。また、データコントロール部２６とデータ記憶部３０との間の転送速度が遅いために、データバッファコントロール部２５からデータコントロール部２６へデータが出力されず、入力バッファには、データ１乃至４が蓄積される。
【００３５】
データバッファコントロール部２５は、入力バッファにデータ１乃至４が蓄積されると、ＵＳＢ  ＬＩＮＫ部２２に対して低消費電力モード遷移要求を行う。また、ＵＳＢ  ＬＩＮＫ部２２は、低消費電力モード遷移要求が出力されたことに伴い、ホスト装置４０に対して、データ出力停止信号を出力する。これにより、ホスト装置４０から出力されるデータは停止される。次に、データ１がデータコントロール部２６へ出力され、入力バッファに空き領域ができると、データバッファコントロール部２５は、ＵＳＢ  ＬＩＮＫ部２２に対して通常電力モードへの復帰要求を行う。また、ＵＳＢ  ＬＩＮＫ部２２は、通常電力モードへの復帰要求が出力されたことに伴い、ホスト装置４０に対して、データ出力開始信号を出力する。これにより、ホスト装置４０からデータ５が出力され、入力バッファにデータ２乃至５が蓄積される。
【００３６】
本図においては、ＵＳＢ  ＬＩＮＫ部２２を低消費電力モードにて動作させている状態を、Ｆｌｏｗ  Ｃｏｎｔｒｏｌとして説明している。その他の図においても同様である。
【００３７】
データバッファコントロール部２５は、入力バッファにデータ２乃至５が蓄積されると、再びＵＳＢ  ＬＩＮＫ部２２に対して低消費電力モード遷移要求を行う。これにより、ホスト装置４０から出力されるデータは停止される。次に、データ２がデータコントロール部２６へ出力され、入力バッファに空きができると、データバッファコントロール部２５は、ＵＳＢ  ＬＩＮＫ部２２に対して通常電力モードへの復帰要求を行う。さらに、データバッファコントロール部２５は、入力バッファの上限値までデータが蓄積されたことにより、出力バッファに割り当てられているメモリ領域の一部を入力バッファに振り分けて入力バッファの容量を増加させる。
【００３８】
入力バッファのメモリ領域が増加した後、ホスト装置４０からデータ６が入力され、入力バッファにデータ３乃至６が蓄積される。さらに、データ３がデータコントロール部２６へ出力されるとともに、ホスト装置４０からデータ７が入力され、入力バッファにデータ４乃至７が蓄積される。その後ホスト装置８からデータ８が出力され、入力バッファに蓄積される。入力バッファからデータコントロール部２６に対して最後のデータであるデータ８が出力されると、入力バッファと出力バッファとに対するメモリ領域の割り振りを、割り振りが変更される前の状態に戻す。データ８が最後のデータであるとの情報は、ＣＭＤデータに含まれていてもよい。
【００３９】
続いて、図４を用いて本発明の実施の形態１にかかるＩＮ転送時のデバイスコントローラ２０の動作について説明する。はじめに、エンドポイント（ＩＮ）２４は、ホスト装置４０からＣＭＤデータを受け取り、デバイスコントローラ２０からホスト装置４０へのデータ転送を開始する。ＵＳＢ  ＬＩＮＫ部２２は、ＣＭＤデータを受け取った後データ１をホスト装置４０へ出力するまで低消費電力モードにて動作している。次に、データコントロール部２６から出力バッファに対してデータ１が出力され、出力バッファにデータ１が蓄積される。
【００４０】
出力バッファにデータ１が蓄積されると、データバッファコントロール部２５は、ＵＳＢ  ＬＩＮＫ部２２に対して通常電力モードへの復帰要求を行う。ＵＳＢ  ＬＩＮＫ部２２が通常電力モードへ復帰した場合、データ１がホスト装置４０へ出力される。
【００４１】
次に、出力バッファからデータ１が出力されることにより、出力バッファにデータが存在しなくなった場合、データバッファコントロール部２５は、ＵＳＢ  ＬＩＮＫ部２２に対して低消費電力モード遷移要求を行う。ここで、データバッファコントロール部２５は、出力バッファにデータが存在しなくなったことに伴い、出力バッファに割り当てられているメモリ領域の一部を、入力バッファへ割り当てる。
【００４２】
次に、データコントロール部２６から出力用バッファに対してデータ２が出力され、出力バッファにデータ２が蓄積される。
【００４３】
出力バッファにデータ２が蓄積されると、データバッファコントロール部２５は、ＵＳＢ  ＬＩＮＫ部２２に対して通常電力モードへの復帰要求を行う。ＵＳＢ  ＬＩＮＫ部２２が通常電力モードへ復帰した場合、データ２がホスト装置４０へ出力される。データ３及びデータ４についても、同様である。データ４がホスト装置４０へ出力されると、入力バッファと出力バッファとに対するメモリ領域の割り振りを、割り振りが変更される前の状態に戻す。
【００４４】
続いて、図５を用いて本発明の実施の形態１にかかるデータバッファコントロール部２５におけるＯＵＴ転送時の処理の流れについて説明する。はじめに、データバッファコントロール部２５は、ホスト装置４０から出力されたデータを、入力バッファに蓄積する（Ｓ１１）。
【００４５】
次に、データバッファコントロール部２５は、入力バッファに蓄積されたデータ量が基準値以上であるか否かを判定する（Ｓ１２）。基準値は、入力バッファに蓄積可能なデータ量の上限値であってもよく、上限値よりも低い値であってもよい。データバッファコントロール部２５が、入力バッファに蓄積されたデータ量が基準値以上ではないと判定した場合、ステップＳ１１の処理を繰り返し、入力バッファにデータを蓄積する。データバッファコントロール部２５が、入力バッファに蓄積されたデータ量が基準値以上であると判定した場合、ＵＳＢ  ＬＩＮＫ部２２を低消費電力モードへ遷移させるために、ＵＳＢ  ＬＩＮＫ部２２に対して、低消費電力モード遷移要求を出力する（Ｓ１３）。
【００４６】
次に、データバッファコントロール部２５は、蓄積データ量が一定時間以上の間基準値以上の状態であるか否かを判定する（Ｓ１４）。例えば、一定時間とは、予め定められた期間内において、蓄積データ量が基準値以上となる状態が検出された時間を定めた時間であってもよい。もしくは、一定時間とは、蓄積データ量が基準値以上となる状態が継続されている時間を定めた時間であってもよい。
【００４７】
次に、データバッファコントロール部２５は、蓄積データ量が一定時間以上の間基準値以上の状態であると判定した場合、入力バッファと出力バッファとに割り当てられているメモリ領域の割り振りを変更する（Ｓ１５）。具体的には、出力バッファに割り当てられているメモリ領域の一部を入力バッファに割り振る。
【００４８】
次に、データバッファコントロール部２５は、入力バッファに空き容量があるか否かを判定する（Ｓ１６）。もしくは、データバッファコントロール部２５は、入力バッファの空き容量が、一定容量以上存在するか否かを判定してもよい。データバッファコントロール部２５は、入力バッファに空き容量がある、もしくは、一定容量以上の空き容量が存在すると判定した場合、ＵＳＢ  ＬＩＮＫ部２２を通常電力モードへ遷移させるために、ＵＳＢ  ＬＩＮＫ部２２に対して、通常電力モード復帰要求を出力する（Ｓ１７）。
【００４９】
ステップＳ１４において、データバッファコントロール部２５は、蓄積データ量が一定時間以上基準値以上の状態ではないと判定した場合、ステップＳ１５の処理を行わず、ステップＳ１６の処理を実行する。また、ステップＳ１６において、データバッファコントロール部２５は、入力バッファに空き容量がない、もしくは、一定の容量以上の空き容量が存在しないと判定した場合、ステップＳ１６の処理を繰り返す。
【００５０】
ステップＳ１４において、データバッファコントロール部２５は、蓄積データ量が一定時間以上の間基準値以上の状態であるか否かを判定する代わりに、通常電力モードから低消費電力モードへの遷移要求もしくは低消費電力モードから通常電力モードへの遷移要求を行った回数に基づいて、メモリ領域の割り振りを行ってもよい。例えば、データバッファコントロール部２５は、通常電力モードから低消費電力モードへの遷移要求を予め定められた回数実行した場合に、出力バッファに割り当てられているメモリ領域の一部を入力バッファに割り振ってもよい。
【００５１】
続いて、図６を用いて本発明の実施の形態１にかかるデータバッファコントロール部２５におけるＩＮ転送時の処理の流れについて説明する。はじめに、データバッファコントロール部２５は、データコントロール部２６からデータを受け取り、出力バッファに蓄積する（Ｓ２１）。次に、データバッファコントロール部２５は、ＵＳＢ  ＬＩＮＫ部２２を通常電力モードへ遷移させるために、ＵＳＢ  ＬＩＮＫ部２２に対して、通常電力モード復帰要求を出力する（Ｓ２２）。次に、データバッファコントロール部２５は、ＵＳＢ  ＬＩＮＫ部２２及びＵＳＢ  ＰＨＹ部２１を介して、出力バッファに蓄積されているデータをホスト装置４０へ出力する（Ｓ２３）。
【００５２】
次に、データバッファコントロール部２５は、蓄積データ量が出力バッファに一定時間存在しない状態であるか否かを判定する（Ｓ２４）。例えば、一定時間とは、予め定められた期間内において、蓄積データ量が存在しない状態が検出された時間を定めた時間であってもよい。もしくは、一定時間とは、蓄積データ量が存在しない状態が継続されている時間を定めた時間であってもよい。
【００５３】
次に、データバッファコントロール部２５は、蓄積データ量が出力バッファに一定時間以上存在しない状態であると判定した場合、入力バッファと出力バッファとに割り当てられているメモリ領域の割り振りを変更する（Ｓ１５）。具体的には、出力バッファに割り当てられているメモリ領域の一部を入力バッファに割り振る。データバッファコントロール部２５は、蓄積データ量が出力バッファに一定時間以上存在しない状態ではないと判定した場合、ステップＳ２５の処理を行わず、処理を終了する。
【００５４】
以上説明したように、本発明の実施の形態１にかかるデバイスコントローラ２０を用いることにより、入力バッファ及び出力バッファの少なくとも一方のデータ蓄積量に基づいて、ＵＳＢ  ＬＩＮＫ部２２を低消費電力モードから通常電力モードへ、もしくは、通常電力モードから低消費電力モードへ遷移させることができる。これにより、入力バッファにおいてデータバッファを受け付けることができないことにより、ホスト装置４０からデータが出力されない場合に、ＵＳＢ  ＬＩＮＫ部２２を低消費電力モードへ遷移させて、デバイスコントローラ２０全体の省電力化を図ることができる。
【００５５】
さらに、データコントロール部２６から出力バッファに対してデータが出力されないことにより、出力バッファからホスト装置４０に対してデータが出力されない場合に、ＵＳＢ  ＬＩＮＫ部２２を低消費電力モードへ遷移させて、デバイスコントローラ２０全体の省電力化を図ることができる。
【００５６】
さらに、入力バッファ及び出力バッファの少なくとも一方のデータ蓄積量に基づいて、入力バッファ及び出力バッファに割り振られるメモリ容量を変更させることができる。たとえば、入力バッファに蓄積されるデータ量が増加した場合、さらにホスト装置４０から空出力されるデータを蓄積することができるように、入力バッファのメモリ容量を増加させ、出力バッファのメモリ容量を減少させることができる。これにより、データバッファコントロール部２５が有するデータバッファを効率的に使用することができる。
【００５７】
さらに、データバッファコントロール部２５は、入力バッファ及び出力バッファの少なくとも一方に蓄積されているデータ量に基づいて、ＵＳＢ  ＬＩＮＫ部２２の電力制御及びデータバッファの容量制御を行うことができる。そのため、電力制御及びデータバッファ制御を行うための回路をそれぞれ設ける必要がないため、回路規模を減少させることもできる。
【００５８】
さらに、ＵＳＢ３．０に対応したＳｅｒｉａｌ  ＡＴＡ等のブリッジチップは、接続される機器が対応するＳｅｒｉａｌ  ＡＴＡのバージョン等によって転送速度が大きく変化する。これに対して、本発明の実施の形態１にかかるデバイスコントローラ２０を用いることにより、入力バッファもしくは出力バッファに蓄積されたデータ量に応じて電力制御及びバッファ制御を行うことにより、転送速度に応じた制御を実施することができる。
【００５９】
（実施の形態２）
続いて、図７を用いて本発明の実施の形態２にかかるＩＮ転送時のデバイスコントローラ２０の動作について説明する。はじめに、デバイスコントローラ２０のエンドポイント（ＩＮ）２４は、ホスト装置４０からＣＭＤデータを受け取り、デバイスコントローラ２０からホスト装置４０へのデータ転送を開始する。ＵＳＢ  ＬＩＮＫ部２２は、ＣＭＤデータを受け取った後データ１をホスト装置４０へ出力するまで低消費電力モードにて動作している。次に、データコントロール部２６から出力用バッファに対してデータ１が出力され、出力バッファにデータ１が蓄積される。
【００６０】
出力バッファにデータ１が蓄積されると、データバッファコントロール部２５は、ＵＳＢ  ＬＩＮＫ部２２に対して通常電力モードへの復帰要求を行う。ＵＳＢ  ＬＩＮＫ部２２が通常電力モードへ復帰した場合、データ１がホスト装置４０へ出力される。
【００６１】
次に、出力バッファからデータ１が出力されることにより、出力バッファにデータが存在しなくなった場合、データバッファコントロール部２５は、ＵＳＢ  ＬＩＮＫ部２２に対して低消費電力モード遷移要求を行う。ここで、データバッファコントロール部２５は、出力バッファにデータが存在しなくなったことにより、データ記憶部３０及びデータコントロール部２６からデータバッファコントロール部２５に対する転送速度が遅いとみなす。これより、データバッファコントロール部２５は、蓄積されるデータ量が基準値となるデータ量を満たすまで出力バッファにデータを蓄積し、基準値となるデータ量に達した場合に、まとめて出力バッファからホスト装置４０に対してデータを送信する。
【００６２】
つまり、基準値となるデータ量を４（又は４パケット）、とすると、データバッファコントロール部２５は、データ２乃至４が出力バッファに蓄積された時点においては、データをホスト装置４０へ出力しない。データバッファコントロール部２５は、データ５が出力バッファに蓄積され、出力バッファにデータ２乃至５が蓄積されると、ＵＳＢ  ＬＩＮＫ部２２に対して、通常電力モード復帰要求を出力する。さらに、データバッファコントロール部２５は、データ２乃至５をまとめてホスト装置４０へ出力する。
【００６３】
以上説明したように、本発明の実施の形態２にかかるデバイスコントローラ２０を用いることにより、出力バッファに蓄積されたデータをまとめてホスト装置４０へ出力することができる。これにより、データバッファコントロール部２５は、出力バッファに割り振られたメモリ容量を有効に活用することができる。
【００６４】
さらに、出力バッファにデータが基準値となるデータ量まで蓄積されることにより、ＵＳＢ  ＬＩＮＫ部２２を通常電力モードにて動作させる時間を短縮することができる。これにより、デバイスコントローラ２０全体の省電力化を図ることができる。
【００６５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００６６】
１０  デバイス装置
２０  デバイスコントローラ
２１  ＵＳＢ  ＰＨＹ部
２２  ＵＳＢ  ＬＩＮＫ部
２３  エンドポイント（ＯＵＴ）
２４  エンドポイント（ＩＮ）
２５  データバッファコントロール部
２６  データコントロール部
２７  データ通信部
３０  データ記憶部
４０  ホスト装置
１１０  ホスト装置
１１１  ＵＳＢホストコントローラ
１２０  デバイス装置
１２１  ＵＳＢデバイスコントローラ
１２２  プロトコル制御部
１２３  データバッファ
１２４  後段回路
【図１】
0005791397.tif 000002
【図２】
0005791397.tif 000003
【図３】
0005791397.tif 000004
【図４】
0005791397.tif 000005
【図５】
0005791397.tif 000006
【図６】
0005791397.tif 000007
【図７】
0005791397.tif 000008
【図８】
0005791397.tif 000009
【図９】
0005791397.tif 000010