説明

デバイスコントローラ、USBデバイスコントローラ及び電力制御方法

【課題】バッファを効率的に使用し、バッファに蓄積されたデータ量に基づいて電力制御を行うことができるデバイスコントローラ、デバイス装置及び電力制御方法を提供すること
【解決手段】本発明にかかるデバイスコントローラ20は、ホスト装置40から出力されたデータを蓄積する入力バッファと、ホスト装置40へ出力するデータを蓄積する出力バッファと入力バッファ及び出力バッファと、ホスト装置40との間のデータの受け渡しを行うデータ通信部と、入力バッファ及び出力バッファの少なくとも一方に蓄積されているデータ量に基づいて、入力バッファ及び出力バッファに対するバッファの割当量を変更させるデータバッファコントロール部25とを備える。データバッファコントロール部25は、データ量が所定の値に達した場合にデータ通信部を通常電力モードから省電力モードへ遷移させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は電力制御を行うデバイスコントローラ、USBデバイスコントローラ及び電力制御方法に関する。
【背景技術】
【0002】
ホスト機器として動作するコンピュータ装置に、様々な周辺装置を接続するための規格として、一般的にUSB(Universal Serial Bus)規格が用いられている。また、USB規格を用いて通信を行うために、ホスト機器には、USBホストコントローラが搭載されており、ホスト機器に接続される周辺装置には、USBデバイスコントローラが搭載されている。なお、USB規格は時間の経過とともに検討が進みバージョンアップされている。現在は、USB2.0規格が主に市場において普及しているが、USB3.0規格も策定され、USB3.0規格を用いた製品も今後市場に普及していくものと考えられる。
【0003】
ここで、USB2.0規格を用いたUSBデバイスコントローラの一般的な構成を図8に示す。USB2.0規格を用いたUSBデバイスコントローラ121は、プロトコル制御部122とデータバッファ123とを備えている。USBデバイスコントローラ121は、ホスト機器に搭載されているUSBホストコントローラ111から受信したデータを、プロトコル制御部122においてデータ処理を行う。プロトコル制御部122においては、データ復調、ヘッダ解析等を実施する。データ処理が行われたデータは、データバッファ123に一時的に格納され、データを記憶するメモリ等の後段回路124へ出力される。
【0004】
USB3.0規格においては、データバッファを、パケットサイズ毎に変更が可能となる。具体的には、図9に示すように、エンドポイント(EP)毎に割り当てられるバッファサイズを変更することができる。エンドポイントとは、データ転送用バッファの制御部として用いられ、エンドポイント毎に割り当てられたバッファの、転送方向、転送方式等を定義することができる。転送方向としては、ホスト装置から周辺装置(デバイス装置)へデータが転送されるOUT転送や、周辺装置からホスト装置へデータが転送されるIN転送がある。また、転送方式としては、バルク転送や、インタラプト転送等がある。
【0005】
特許文献1には、USB規格を用いた周辺装置において、エンドポイントに割り当てられるバッファメモリを共用する構成が開示されている。具体的には、データ送信用バッファとデータ受信用バッファとでバッファメモリを共有する構成が開示されている。さらに、送信データと受信データとのパケット数をカウントし、それぞれのカウント値に応じて、データ送信用バッファに割り当てるバッファ容量と、データ受信用バッファに割り当てるバッファ容量とを変更する処理が開示されている。
【0006】
また、特許文献2には、USBホストコントローラにおいて、USBポートを介したデータ転送が行われていない場合、USBデバイス装置から出力されるデータを入力する入力バッファをパワーダウンさせるという省電力制御が開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2005−260638号公報
【特許文献2】特開平11−205412号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1に開示されているバッファメモリの割り当て制御を用いた場合、送受信データの統計値を用いて、バッファメモリの割り当て容量を決定している。しかし、ホストコントローラからデバイス装置へデータが転送される転送速度と、バッファから後段回路へデータが転送される転送速度との差異等により、バッファに蓄積されるデータ量は変化する。たとえば、バッファから後段回路への転送速度が相対的に遅い場合、ホストコントローラから転送されるデータが入力用のバッファに蓄積されていく。一方、後段回路からバッファへの転送速度が相対的に遅い場合、バッファに1パケット分のデータが準備されると、ホストコントローラへ送信されてしまう。そのため、出力用のバッファを有効に活用することができない。そのため、バッファメモリの割り当てを決定する際に、送受信データの数だけを用いたとしても、上記のような事情を考慮することはできず、適切なバッファメモリの割り当てを行うことができない。
【0009】
さらに、バッファから後段回路への転送速度が相対的に遅い場合、上述したように入力バッファへデータが蓄積され、デバイス装置が、ホストコントローラからデータを受け取ることができなくなる。しかし、このような場合においても、デバイス装置は、ホストコントローラから出力されるデータを受け取るために受信動作を継続しており、無駄な電力を消費するという問題がある。
【課題を解決するための手段】
【0010】
本発明の第1の態様にかかるデバイスコントローラは、ホスト装置から出力されたデータを蓄積する入力バッファと、前記ホスト装置へ出力するデータを蓄積する出力バッファと、前記入力バッファ及び前記出力バッファと、前記ホスト装置との間のデータの受け渡しを行うデータ通信部と、前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されているデータ量に基づいて前記入力バッファ及び前記出力バッファに対するバッファの割当量を変更させるバッファ制御部と、を備え、前記バッファ制御部は、前記データ量が所定の値に達した場合に前記データ通信部を通常電力モードから省電力モードもしくは省電力モードから通常電力モードへ遷移させるものである。
【0011】
このようなデバイスコントローラを用いることにより、バッファに蓄積されているデータ量に基づいて、入力バッファ及び出力バッファに対する割当量を変更させることができるとともに、データ通信部の動作モードを遷移させることができる。これにより、バッファを効率的に使用することができ、さらに、デバイスコントローラの省電力化を図ることができる。
【0012】
本発明の第2の態様にかかるUSBデバイスコントローラは、ホスト装置から出力されたデータを蓄積する入力バッファと、前記ホスト装置へ出力するデータを蓄積する出力バッファと、前記入力バッファ及び前記出力バッファと、前記ホスト装置との間のデータの受け渡しを行うデータ通信部と、前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されているデータ量に基づいて前記入力バッファ及び前記出力バッファに対するバッファの割当量を変更させるバッファ制御部と、を備え、前記バッファ制御部は、前記データ量が所定の値に達した場合に前記データ通信部を通常電力モードから省電力モードへ遷移させるものである。
【0013】
このようなUSBデバイスコントローラを用いることにより、バッファに蓄積されているデータ量に基づいて、入力バッファ及び出力バッファに対する割当量を変更させることができるとともに、データ通信部の動作モードを遷移させることができる。これにより、バッファを効率的に使用することができ、さらに、USBデバイスコントローラの省電力化を図ることができる。
【0014】
本発明の第3の態様にかかる電力制御方法は、ホスト装置から出力されたデータを蓄積する入力バッファ及び前記ホスト装置へ出力するデータを蓄積する出力バッファの少なくとも一方に蓄積されたデータ量に基づいて、前記入力バッファ及び前記出力バッファと、前記ホスト装置との間のデータの受け渡しを行うデータ通信部を通常電力モードから省電力モードへ遷移し、さらに、前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されたデータ量に基づいて、前記入力バッファ及び前記出力バッファに対するメモリ容量の割当量を変化するものである。
【0015】
このような電力制御方法を用いることにより、バッファに蓄積されているデータ量に基づいて、入力バッファ及び出力バッファに対する割当量を変更させることができるとともに、データ通信部の動作モードを遷移させることができる。これにより、バッファを効率的に使用することができ、さらに、デバイスコントローラ及びデバイス装置の省電力化を図ることができる。
【発明の効果】
【0016】
本発明により、バッファを効率的に使用し、バッファに蓄積されたデータ量に基づいて電力制御を行うことができるデバイスコントローラ、USBデバイスコントローラ及び電力制御方法を提供することができる。
【図面の簡単な説明】
【0017】
【図1】実施の形態1にかかるデバイス装置の構成図である。
【図2】実施の形態1にかかる入力バッファ及び出力バッファの割り当てを示す図である。
【図3】実施の形態1にかかるOUT転送時のデバイスコントローラの動作を説明した図である。
【図4】実施の形態1にかかるIN転送時のデバイスコントローラの動作を説明した図である。
【図5】実施の形態1にかかるデータバッファコントロール部のOUT転送時のフローチャートである。
【図6】実施の形態1にかかるデータバッファコントロール部のIN転送時のフローチャートである。
【図7】実施の形態2にかかるIN転送時のデバイスコントローラの動作を説明した図である。
【図8】USB2.0規格を用いたホスト装置とデバイス装置との構成図である。
【図9】一般的なデバイス装置におけるデータバッファの割り当てを示す図である。
【発明を実施するための形態】
【0018】
(実施の形態1)
以下、図面を参照して本発明の実施の形態について説明する。図1を用いて本発明の実施の形態1にかかるデバイス装置10の構成例について説明する。デバイス装置10は、デバイスコントローラ20と、データ記憶部30とを備えている。デバイスコントローラ20は、USB PHY部21と、USB LINK部22と、エンドポイント(OUT)23と、エンドポイント(IN)24と、データバッファコントロール部25と、データコントロール部26とを備えている。デバイスコントローラ20は、ホスト装置40とデータの入出力を行い、さらに、データ記憶部30ともデータの入出力を行う。また、USB PHY部21と、USB LINK部22とは、データ通信部27を構成している。
【0019】
ホスト装置40は、例えば、USBホストコントローラを搭載したパーソナルコンピュータ(PC)等の情報処理装置である。もしくは、ホスト装置40は、DVD等の光ディスクに記録されている情報を再生する情報再生装置等であってもよい。
【0020】
デバイス装置10は、USB規格を用いてホスト装置40と接続し、データ転送を行う周辺機器である。デバイス装置10は、例えば、データの保存を行うメモリ装置や、ホスト装置40に接続されるプリンタ機器、キーボード等であってもよい。また、デバイス装置10とホスト装置40とは、USBバスを用いた有線を用いて接続されてもよく、無線を用いて接続されてもよい。
【0021】
次に、デバイスコントローラ20の各構成要素について説明する。USB PHY部21は、ホスト装置40とデータ転送を行う。デバイスコントローラ20からホスト装置40に対してデータ転送を行う際、USB PHY部21は、例えば、8b/10b変調を行い、さらにパラレルデータをシリアルデータへ変換し、USBバスを介してホスト装置40へシリアルデータを出力する。また、ホスト装置40からデバイスコントローラ20に対してデータが転送された場合、例えば、USB PHY部21は、シリアルデータをパラレルデータへ変換し、8b/10b復調を行い、受信データを抽出する。USB PHY部21は、USBコネクタ等を介して、ホスト装置40とデータ転送を行う。
【0022】
USB LINK部22は、ホスト装置40との間のデータ転送を実行するためにリンク制御を行う。例えば、USB LINK部22は、ホスト装置40との間において転送されるデータのエラー検出を行う。さらに、USB LINK部22は、電力制御を行い、ホスト装置40との間のデータ転送が実行されていない場合等に、省電力化を図る機能を有する。
【0023】
エンドポイント(OUT)23は、ホスト装置40からデバイス装置10に対するデータ転送(OUT転送)時に、ホスト装置40から転送されたデータを、データバッファコントロール部25に出力する。また、エンドポイント(IN)24は、デバイス装置10からホスト装置40に対するデータ転送(IN転送)時に、データバッファコントロール部25に格納されているデータを、USB LINK部22及びUSB PHY部21を介してホスト装置40へ転送する。また、データバッファコントロール部25において管理されているバッファメモリは、エンドポイント毎にメモリ領域が割り当てられている。本図においては、バッファメモリは、エンドポイント(OUT)23及びエンドポイント(IN)24に割り当てられている。但し、デバイスコントローラ20は、複数のエンドポイントを有することができるため、3つ以上のエンドポイントにバッファメモリのメモリ領域が割り当てられてもよい。
【0024】
データバッファコントロール部25は、エンドポイント(OUT)23から出力されたデータを蓄積する。さらに、データバッファコントロール部25は、エンドポイント(IN)24へ出力するデータも蓄積する。データバッファコントロール部25は、共有メモリを有している。共有メモリは、エンドポイント(OUT)23に割り当てられたメモリ領域(以下、入力バッファ)と、エンドポイント(IN)24に割り当てられたメモリ領域(出力バッファ)とを含む。データバッファコントロール部25は、入力バッファ及び出力バッファの少なくとも一方に蓄積されたデータ量に基づいて、図2に示されているように入力バッファ及び出力バッファに割り当てる領域を変更する。
【0025】
例えば、入力バッファの全てにデータが蓄積された場合、データバッファコントロール部25へ入力されるデータの転送速度に対して、データバッファコントロール部25とデータ記憶部30との間のデータ転送速度が、ホスト装置40から行われるデータ転送に対して遅いことを意味している。このような場合、データバッファコントロール部25は、出力バッファに割り当てたメモリ領域を入力バッファに振り分けて、ホスト装置40から出力されるデータをできる限り受け取ることができるようにする。データバッファコントロール部25は、入力バッファに蓄積されるデータ量について基準値もしくは閾値を設定し、蓄積されたデータ量が基準値等を超えた場合に、出力バッファに割り当てたメモリ領域を入力バッファに振り分けてもよい。基準値もしくは閾値は、任意の値を設定できるようにしてもよい。
【0026】
さらに、出力バッファが空になっている状態が一定時間以上継続する場合も、データバッファコントロール部25からホスト装置40へ転送されるデータの転送速度に対して、データバッファコントロール部25とデータ記憶部30との間のデータ転送速度が遅いことを意味している。このような場合に、データバッファコントロール部25は、出力バッファに割り当てたメモリ領域を入力バッファに振り分けるようにしてもよい。データバッファコントロール部25は、出力バッファに蓄積されるデータ量について基準値もしくは閾値を設定し、蓄積されたデータ量が基準値等を下回っている場合に、出力バッファに割り当てたメモリ領域を入力バッファに振り分けてもよい。基準値もしくは閾値は、任意の値を設定できるようにしてもよい。
【0027】
データバッファコントロール部25は、上述した入力バッファ及び出力バッファの割り当て制御のほかに、USB LINK部22に対する電力制御も行う。例えば、データバッファコントロール部25は、入力バッファの全てにデータが蓄積された場合に、USB LINK部22へ自動的に低消費電力モード遷移要求を行い、USB LINK部22に対してLow Power State制御を開始する。データバッファコントロール部25は、入力バッファに蓄積されるデータ量について基準値もしくは閾値を設定し、蓄積されたデータ量が基準値を超えた場合に、USB LINK部22へ低消費電力モード遷移要求を行ってもよい。
【0028】
Low Power State制御は、USB3.0規格において採用されている制御方式である。Low Power State制御は、リンクの接続先、つまり、ホスト装置40との間のデータ通信がidle状態である場合に、デバイスコントローラが供給電力を自律的に低下させ、省電力化を図る制御である。Low Power State制御は、例えば、リンクをアクティブに保つモードと、リンクを停止させるモードとを有している。さらに、これら二つのモードの間に、電力供給を段階的に減少させるために、複数のモードが設定されてもよい。USB3.0においては、例えば、U0(Link active)、U1(Link idle-fast exit)、U2(Link idle-slower exit)、U3(Link suspend)の4つのモードが定義されている。
【0029】
データバッファコントロール部25は、入力バッファに空き領域ができた場合に、USB LINK部22へ自動的に低消費電力モードから通常電力モードへの復帰要求を行ってもよい。低消費電力モードから通常電力モードへの復帰要求は、入力バッファの空き領域に基準値や閾値を設け、基準値以上の空き領域ができた場合に行われてもよい。
【0030】
さらに、データバッファコントロール部25は、出力バッファにデータが蓄積されている場合に、USB LINK部22へ通常電力モード遷移要求を行い、出力バッファにデータが存在しない場合に、USB LINK部22へ低消費電力モード遷移要求を行ってもよい。また、USB LINK部22は、低消費電力モード遷移要求が行われた際に、ホスト装置40に対して、データ出力の停止を要求するデータ出力停止信号を出力してもよい。これにより、USB LINK部22は、ホスト装置40から出力されるデータがない状態において、低消費電力モードへ遷移することができる。そのため、USB LINK部22が低消費電力モードへ遷移したことにより、ホスト装置40から出力されるデータがロスすることを回避することができる。
【0031】
また、USB LINK部22は、通常電力モードへの復帰要求もしくは遷移要求が行われた際に、ホスト装置40に対してデータ出力の開始を要求するデータ出力開始信号を出力してもよい。これにより、ホスト装置40からデータが出力されるタイミングに、USB LINK部22を通常電力モードに遷移させることができるため、USB LINK部22に対して、効率的に電力が供給される。
【0032】
データコントロール部26は、データバッファコントロール部25の入力バッファからデータを受け取り、データ記憶部30へ出力する。さらに、データコントロール部26は、データ記憶部30からデータを受け取り、データバッファコントロール部25の出力バッファへ出力する。
【0033】
データ記憶部30は、デバイスコントローラ20に接続される後段回路の一例であり、ホスト装置40との間において送受信されるデータを記憶する。また、USB LINK部22が低消費電力モードに遷移している間も、データコントロール部26や、データ記憶部30等には電力が供給され、入力バッファからデータ記憶部30に対してデータを転送する処理や、データ記憶部30から出力バッファに対してデータを転送する処理等は実行される。
【0034】
続いて、図3を用いて本発明の実施の形態1にかかるOUT転送時のデバイスコントローラ20の動作について説明する。はじめに、エンドポイント(OUT)23は、ホスト装置40からコマンド(CMD)データを受信する。CMDデータは、データの転送方向、転送バイト数等の情報を含んでいる。その後、エンドポイント(OUT)23は、データ1乃至4を受け取り、入力バッファへ蓄積する。また、データコントロール部26とデータ記憶部30との間の転送速度が遅いために、データバッファコントロール部25からデータコントロール部26へデータが出力されず、入力バッファには、データ1乃至4が蓄積される。
【0035】
データバッファコントロール部25は、入力バッファにデータ1乃至4が蓄積されると、USB LINK部22に対して低消費電力モード遷移要求を行う。また、USB LINK部22は、低消費電力モード遷移要求が出力されたことに伴い、ホスト装置40に対して、データ出力停止信号を出力する。これにより、ホスト装置40から出力されるデータは停止される。次に、データ1がデータコントロール部26へ出力され、入力バッファに空き領域ができると、データバッファコントロール部25は、USB LINK部22に対して通常電力モードへの復帰要求を行う。また、USB LINK部22は、通常電力モードへの復帰要求が出力されたことに伴い、ホスト装置40に対して、データ出力開始信号を出力する。これにより、ホスト装置40からデータ5が出力され、入力バッファにデータ2乃至5が蓄積される。
【0036】
本図においては、USB LINK部22を低消費電力モードにて動作させている状態を、Flow Controlとして説明している。その他の図においても同様である。
【0037】
データバッファコントロール部25は、入力バッファにデータ2乃至5が蓄積されると、再びUSB LINK部22に対して低消費電力モード遷移要求を行う。これにより、ホスト装置40から出力されるデータは停止される。次に、データ2がデータコントロール部26へ出力され、入力バッファに空きができると、データバッファコントロール部25は、USB LINK部22に対して通常電力モードへの復帰要求を行う。さらに、データバッファコントロール部25は、入力バッファの上限値までデータが蓄積されたことにより、出力バッファに割り当てられているメモリ領域の一部を入力バッファに振り分けて入力バッファの容量を増加させる。
【0038】
入力バッファのメモリ領域が増加した後、ホスト装置40からデータ6が入力され、入力バッファにデータ3乃至6が蓄積される。さらに、データ3がデータコントロール部26へ出力されるとともに、ホスト装置40からデータ7が入力され、入力バッファにデータ4乃至7が蓄積される。その後ホスト装置8からデータ8が出力され、入力バッファに蓄積される。入力バッファからデータコントロール部26に対して最後のデータであるデータ8が出力されると、入力バッファと出力バッファとに対するメモリ領域の割り振りを、割り振りが変更される前の状態に戻す。データ8が最後のデータであるとの情報は、CMDデータに含まれていてもよい。
【0039】
続いて、図4を用いて本発明の実施の形態1にかかるIN転送時のデバイスコントローラ20の動作について説明する。はじめに、エンドポイント(IN)24は、ホスト装置40からCMDデータを受け取り、デバイスコントローラ20からホスト装置40へのデータ転送を開始する。USB LINK部22は、CMDデータを受け取った後データ1をホスト装置40へ出力するまで低消費電力モードにて動作している。次に、データコントロール部26から出力バッファに対してデータ1が出力され、出力バッファにデータ1が蓄積される。
【0040】
出力バッファにデータ1が蓄積されると、データバッファコントロール部25は、USB LINK部22に対して通常電力モードへの復帰要求を行う。USB LINK部22が通常電力モードへ復帰した場合、データ1がホスト装置40へ出力される。
【0041】
次に、出力バッファからデータ1が出力されることにより、出力バッファにデータが存在しなくなった場合、データバッファコントロール部25は、USB LINK部22に対して低消費電力モード遷移要求を行う。ここで、データバッファコントロール部25は、出力バッファにデータが存在しなくなったことに伴い、出力バッファに割り当てられているメモリ領域の一部を、入力バッファへ割り当てる。
【0042】
次に、データコントロール部26から出力用バッファに対してデータ2が出力され、出力バッファにデータ2が蓄積される。
【0043】
出力バッファにデータ2が蓄積されると、データバッファコントロール部25は、USB LINK部22に対して通常電力モードへの復帰要求を行う。USB LINK部22が通常電力モードへ復帰した場合、データ2がホスト装置40へ出力される。データ3及びデータ4についても、同様である。データ4がホスト装置40へ出力されると、入力バッファと出力バッファとに対するメモリ領域の割り振りを、割り振りが変更される前の状態に戻す。
【0044】
続いて、図5を用いて本発明の実施の形態1にかかるデータバッファコントロール部25におけるOUT転送時の処理の流れについて説明する。はじめに、データバッファコントロール部25は、ホスト装置40から出力されたデータを、入力バッファに蓄積する(S11)。
【0045】
次に、データバッファコントロール部25は、入力バッファに蓄積されたデータ量が基準値以上であるか否かを判定する(S12)。基準値は、入力バッファに蓄積可能なデータ量の上限値であってもよく、上限値よりも低い値であってもよい。データバッファコントロール部25が、入力バッファに蓄積されたデータ量が基準値以上ではないと判定した場合、ステップS11の処理を繰り返し、入力バッファにデータを蓄積する。データバッファコントロール部25が、入力バッファに蓄積されたデータ量が基準値以上であると判定した場合、USB LINK部22を低消費電力モードへ遷移させるために、USB LINK部22に対して、低消費電力モード遷移要求を出力する(S13)。
【0046】
次に、データバッファコントロール部25は、蓄積データ量が一定時間以上の間基準値以上の状態であるか否かを判定する(S14)。例えば、一定時間とは、予め定められた期間内において、蓄積データ量が基準値以上となる状態が検出された時間を定めた時間であってもよい。もしくは、一定時間とは、蓄積データ量が基準値以上となる状態が継続されている時間を定めた時間であってもよい。
【0047】
次に、データバッファコントロール部25は、蓄積データ量が一定時間以上の間基準値以上の状態であると判定した場合、入力バッファと出力バッファとに割り当てられているメモリ領域の割り振りを変更する(S15)。具体的には、出力バッファに割り当てられているメモリ領域の一部を入力バッファに割り振る。
【0048】
次に、データバッファコントロール部25は、入力バッファに空き容量があるか否かを判定する(S16)。もしくは、データバッファコントロール部25は、入力バッファの空き容量が、一定容量以上存在するか否かを判定してもよい。データバッファコントロール部25は、入力バッファに空き容量がある、もしくは、一定容量以上の空き容量が存在すると判定した場合、USB LINK部22を通常電力モードへ遷移させるために、USB LINK部22に対して、通常電力モード復帰要求を出力する(S17)。
【0049】
ステップS14において、データバッファコントロール部25は、蓄積データ量が一定時間以上基準値以上の状態ではないと判定した場合、ステップS15の処理を行わず、ステップS16の処理を実行する。また、ステップS16において、データバッファコントロール部25は、入力バッファに空き容量がない、もしくは、一定の容量以上の空き容量が存在しないと判定した場合、ステップS16の処理を繰り返す。
【0050】
ステップS14において、データバッファコントロール部25は、蓄積データ量が一定時間以上の間基準値以上の状態であるか否かを判定する代わりに、通常電力モードから低消費電力モードへの遷移要求もしくは低消費電力モードから通常電力モードへの遷移要求を行った回数に基づいて、メモリ領域の割り振りを行ってもよい。例えば、データバッファコントロール部25は、通常電力モードから低消費電力モードへの遷移要求を予め定められた回数実行した場合に、出力バッファに割り当てられているメモリ領域の一部を入力バッファに割り振ってもよい。
【0051】
続いて、図6を用いて本発明の実施の形態1にかかるデータバッファコントロール部25におけるIN転送時の処理の流れについて説明する。はじめに、データバッファコントロール部25は、データコントロール部26からデータを受け取り、出力バッファに蓄積する(S21)。次に、データバッファコントロール部25は、USB LINK部22を通常電力モードへ遷移させるために、USB LINK部22に対して、通常電力モード復帰要求を出力する(S22)。次に、データバッファコントロール部25は、USB LINK部22及びUSB PHY部21を介して、出力バッファに蓄積されているデータをホスト装置40へ出力する(S23)。
【0052】
次に、データバッファコントロール部25は、蓄積データ量が出力バッファに一定時間存在しない状態であるか否かを判定する(S24)。例えば、一定時間とは、予め定められた期間内において、蓄積データ量が存在しない状態が検出された時間を定めた時間であってもよい。もしくは、一定時間とは、蓄積データ量が存在しない状態が継続されている時間を定めた時間であってもよい。
【0053】
次に、データバッファコントロール部25は、蓄積データ量が出力バッファに一定時間以上存在しない状態であると判定した場合、入力バッファと出力バッファとに割り当てられているメモリ領域の割り振りを変更する(S15)。具体的には、出力バッファに割り当てられているメモリ領域の一部を入力バッファに割り振る。データバッファコントロール部25は、蓄積データ量が出力バッファに一定時間以上存在しない状態ではないと判定した場合、ステップS25の処理を行わず、処理を終了する。
【0054】
以上説明したように、本発明の実施の形態1にかかるデバイスコントローラ20を用いることにより、入力バッファ及び出力バッファの少なくとも一方のデータ蓄積量に基づいて、USB LINK部22を低消費電力モードから通常電力モードへ、もしくは、通常電力モードから低消費電力モードへ遷移させることができる。これにより、入力バッファにおいてデータバッファを受け付けることができないことにより、ホスト装置40からデータが出力されない場合に、USB LINK部22を低消費電力モードへ遷移させて、デバイスコントローラ20全体の省電力化を図ることができる。
【0055】
さらに、データコントロール部26から出力バッファに対してデータが出力されないことにより、出力バッファからホスト装置40に対してデータが出力されない場合に、USB LINK部22を低消費電力モードへ遷移させて、デバイスコントローラ20全体の省電力化を図ることができる。
【0056】
さらに、入力バッファ及び出力バッファの少なくとも一方のデータ蓄積量に基づいて、入力バッファ及び出力バッファに割り振られるメモリ容量を変更させることができる。たとえば、入力バッファに蓄積されるデータ量が増加した場合、さらにホスト装置40から空出力されるデータを蓄積することができるように、入力バッファのメモリ容量を増加させ、出力バッファのメモリ容量を減少させることができる。これにより、データバッファコントロール部25が有するデータバッファを効率的に使用することができる。
【0057】
さらに、データバッファコントロール部25は、入力バッファ及び出力バッファの少なくとも一方に蓄積されているデータ量に基づいて、USB LINK部22の電力制御及びデータバッファの容量制御を行うことができる。そのため、電力制御及びデータバッファ制御を行うための回路をそれぞれ設ける必要がないため、回路規模を減少させることもできる。
【0058】
さらに、USB3.0に対応したSerial ATA等のブリッジチップは、接続される機器が対応するSerial ATAのバージョン等によって転送速度が大きく変化する。これに対して、本発明の実施の形態1にかかるデバイスコントローラ20を用いることにより、入力バッファもしくは出力バッファに蓄積されたデータ量に応じて電力制御及びバッファ制御を行うことにより、転送速度に応じた制御を実施することができる。
【0059】
(実施の形態2)
続いて、図7を用いて本発明の実施の形態2にかかるIN転送時のデバイスコントローラ20の動作について説明する。はじめに、デバイスコントローラ20のエンドポイント(IN)24は、ホスト装置40からCMDデータを受け取り、デバイスコントローラ20からホスト装置40へのデータ転送を開始する。USB LINK部22は、CMDデータを受け取った後データ1をホスト装置40へ出力するまで低消費電力モードにて動作している。次に、データコントロール部26から出力用バッファに対してデータ1が出力され、出力バッファにデータ1が蓄積される。
【0060】
出力バッファにデータ1が蓄積されると、データバッファコントロール部25は、USB LINK部22に対して通常電力モードへの復帰要求を行う。USB LINK部22が通常電力モードへ復帰した場合、データ1がホスト装置40へ出力される。
【0061】
次に、出力バッファからデータ1が出力されることにより、出力バッファにデータが存在しなくなった場合、データバッファコントロール部25は、USB LINK部22に対して低消費電力モード遷移要求を行う。ここで、データバッファコントロール部25は、出力バッファにデータが存在しなくなったことにより、データ記憶部30及びデータコントロール部26からデータバッファコントロール部25に対する転送速度が遅いとみなす。これより、データバッファコントロール部25は、蓄積されるデータ量が基準値となるデータ量を満たすまで出力バッファにデータを蓄積し、基準値となるデータ量に達した場合に、まとめて出力バッファからホスト装置40に対してデータを送信する。
【0062】
つまり、基準値となるデータ量を4(又は4パケット)、とすると、データバッファコントロール部25は、データ2乃至4が出力バッファに蓄積された時点においては、データをホスト装置40へ出力しない。データバッファコントロール部25は、データ5が出力バッファに蓄積され、出力バッファにデータ2乃至5が蓄積されると、USB LINK部22に対して、通常電力モード復帰要求を出力する。さらに、データバッファコントロール部25は、データ2乃至5をまとめてホスト装置40へ出力する。
【0063】
以上説明したように、本発明の実施の形態2にかかるデバイスコントローラ20を用いることにより、出力バッファに蓄積されたデータをまとめてホスト装置40へ出力することができる。これにより、データバッファコントロール部25は、出力バッファに割り振られたメモリ容量を有効に活用することができる。
【0064】
さらに、出力バッファにデータが基準値となるデータ量まで蓄積されることにより、USB LINK部22を通常電力モードにて動作させる時間を短縮することができる。これにより、デバイスコントローラ20全体の省電力化を図ることができる。
【0065】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0066】
10 デバイス装置
20 デバイスコントローラ
21 USB PHY部
22 USB LINK部
23 エンドポイント(OUT)
24 エンドポイント(IN)
25 データバッファコントロール部
26 データコントロール部
27 データ通信部
30 データ記憶部
40 ホスト装置
110 ホスト装置
111 USBホストコントローラ
120 デバイス装置
121 USBデバイスコントローラ
122 プロトコル制御部
123 データバッファ
124 後段回路

【特許請求の範囲】
【請求項1】
ホスト装置から出力されたデータを蓄積する入力バッファと、
前記ホスト装置へ出力するデータを蓄積する出力バッファと、
前記入力バッファ及び前記出力バッファと、前記ホスト装置との間のデータの受け渡しを行うデータ通信部と、
前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されているデータ量に基づいて前記入力バッファ及び前記出力バッファに対するバッファの割当量を変更させるバッファ制御部と、を備え、
前記バッファ制御部は、前記データ量が所定の値に達した場合に前記データ通信部を通常電力モードから省電力モードもしくは省電力モードから通常電力モードへ遷移させるデバイスコントローラ。
【請求項2】
前記バッファ制御部は、
前記入力バッファに蓄積されたデータ量が第1の基準値を上回った場合に前記データ通信部を通常電力モードから省電力モードへ遷移させる、請求項1に記載のデバイスコントローラ。
【請求項3】
前記データ通信部は、
前記入力バッファに蓄積されたデータ量が前記第1の基準値を上回った場合、前記ホスト装置に対してデータの出力を停止させるデータ出力停止信号を出力する、請求項2に記載のデバイスコントローラ。
【請求項4】
前記入力バッファに蓄積されたデータ量が前記第1の基準値と同じ又は前記第1の基準値よりも低い第2の基準値を下回った場合、
前記バッファ制御部は、
前記データ通信部を前記省電力モードから前記通常電力モードへ遷移させる、請求項2又は3に記載のデバイスコントローラ。
【請求項5】
前記データ通信部は、前記入力バッファに蓄積されたデータ量が前記第2の基準値を下回った場合、前記ホスト装置に対してデータの出力を開始させるデータ出力開始信号を出力する、請求項4に記載のデバイスコントローラ。
【請求項6】
前記バッファ制御部は、
前記出力バッファに蓄積されたデータ量が第3の基準値を下回った場合に、前記データ通信部を通常電力モードから省電力モードへ遷移させる、請求項1乃至5のいずれか1項に記載のデバイスコントローラ。
【請求項7】
前記データ通信部は、
蓄積されたデータ量が前記第3の基準値を下回っている場合、前記蓄積されたデータを前記ホスト装置へ出力しない、請求項6に記載のデバイスコントローラ。
【請求項8】
前記バッファ制御部は、
前記出力バッファに蓄積されたデータ量が前記第3の基準値と同じ又は前記第3の基準値よりも高い第4の基準値を上回った場合に、前記データ通信部を前記省電力モードから前記通常電力モードへ遷移させる、請求項6又は7に記載のデバイスコントローラ。
【請求項9】
前記バッファ制御部は、
前記入力バッファに蓄積されたデータ量が第5の基準値を上回った場合に、又は、前記出力バッファに蓄積されたデータ量が第6の基準値を下回った場合に、前記出力バッファに割り当てられているメモリ領域の一部を前記入力バッファに割り当てる、請求項8に記載のデバイスコントローラ。
【請求項10】
前記バッファ制御部は、
前記入力バッファに蓄積されたデータ量が所定の期間前記第5の基準値を上回った場合に、又は、前記出力バッファに蓄積されたデータ量が所定の期間前記第6の基準値を下回った場合に、前記出力バッファに割り当てられているメモリ領域の一部を前記入力バッファに割り当てる、請求項9に記載のデバイスコントローラ。
【請求項11】
前記バッファ制御部は、
前記データ通信部が前記通常電力モードから前記省電力モードへ遷移した回数に基づいて、前記共用メモリ上の前記入力バッファに割り当てる領域及び前記出力バッファに割り当てる領域を変更する、請求項8に記載のデバイスコントローラ。
【請求項12】
前記バッファ制御部は、
前記入力バッファ及び前記出力バッファに蓄積されたデータが全て転送された場合に、前記変更された前記入力バッファ及び前記出力バッファに割り当てられた領域を、変更前に前記入力バッファ及び前記出力バッファに割り当てられていた領域に戻す、請求項8乃至11のいずれか1項に記載のデバイスコントローラ。
【請求項13】
前記ホスト装置は、
USBホストコントローラを有し、
前記データ通信部は、
前記入力バッファ及び前記出力バッファと、前記USBホストコントローラとの間のデータの受け渡しを行う、請求項1乃至12のいずれか1項に記載のデバイスコントローラ。
【請求項14】
前記バッファ制御部は、
前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されているデータ量に基づいて、前記データ通信部を通常電力モードから低消費電力モードへ遷移させるLow Power State制御を実行する請求項13に記載のデバイスコントローラ。
【請求項15】
ホスト装置から出力されたデータを蓄積する入力バッファと、
前記ホスト装置へ出力するデータを蓄積する出力バッファと、
前記入力バッファ及び前記出力バッファと、前記ホスト装置との間のデータの受け渡しを行うデータ通信部と、
前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されているデータ量に基づいて前記入力バッファ及び前記出力バッファに対するバッファの割当量を変更させるバッファ制御部と、を備え、
前記バッファ制御部は、前記データ量が所定の値に達した場合に前記データ通信部を通常電力モードから省電力モードへ遷移させることを特徴とするUSBデバイスコントローラ。
【請求項16】
前記バッファ制御部は、前記入力バッファに蓄積されたデータ量が第1のしきい値を上回った場合に、前記データ通信部を前記省電力モードに遷移させる請求項15に記載のUSBデバイスコントローラ。
【請求項17】
前記バッファ制御部は、前記出力バッファに蓄積されたデータ量が第2のしきい値を下回った場合に、前記データ通信部を前記省電力モードに遷移させる請求項15に記載のUSBデバイスコントローラ
【請求項18】
前記データ通信部が省電力モードにて動作している間に、前記入力バッファ及び出力バッファの少なくとも一方に蓄積されたデータを処理するデータ処理部をさらに備える請求項15に記載のUSBデバイスコントローラ。
【請求項19】
ホスト装置から出力されたデータを蓄積する入力バッファ及び前記ホスト装置へ出力するデータを蓄積する出力バッファの少なくとも一方に蓄積されたデータ量に基づいて、前記入力バッファ及び前記出力バッファと、前記ホスト装置との間のデータの受け渡しを行うデータ通信部を通常電力モードから省電力モードへ遷移し、
前記データ通信部が省電力モードへ遷移した後に、前記入力バッファ及び前記出力バッファの少なくとも一方に蓄積されたデータ量に基づいて、前記入力バッファ及び前記出力バッファに対するメモリ容量の割当量を変化する、電力制御方法。
【請求項20】
前記入力バッファに蓄積されたデータ量が第1の基準値を上回った場合に前記データ通信部を通常電力モードから省電力モードへ遷移する、請求項19に記載の電力制御方法。
【請求項21】
前記データ通信部を通常電力モードから省電力モードへ遷移させる前に、前記データ通信部から前記ホスト装置に対してデータの出力を停止させるデー出力停止信号を出力する、請求項20に記載の電力制御方法。
【請求項22】
前記データ通信部を前記通常電力モードから前記省電力モードへ遷移させた後に、
前記入力バッファに蓄積されたデータ量が前記第1の基準値と同じ又は前記第1の基準によりも低い第2の基準値を下回った場合、前記データ通信部を前記省電力モードから前記通常電力モードへ遷移させる、請求項20又は21に記載の電力制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−20284(P2013−20284A)
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【出願番号】特願2011−150562(P2011−150562)
【出願日】平成23年7月7日(2011.7.7)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】