(57)【要約】【課題】USBデバイスの接続を待っている状態だけでなく、他の状態においてもUSBホストコントローラ側のPLL回路の省電力を実現できるUSBホストコントローラを提供する。【解決手段】USBホストコントローラ１３は、PLL回路１６ａの生成したクロック信号を利用してUSBデバイス１９とCPU１１間でデータ転送を行う第１のモード状態の場合に、USBデバイス１９とCPU１１間の通信がないときに、PLL回路１６ａの動作を停止させるサスペンド信号を生成して、PLL回路１６ａを含む物理層１６に出力するサスペンド信号生成部２３と、USBデバイス１９が接続されていない接続待機状態の場合と、PLL回路１６ａの生成したクロック信号を利用しないでUSBデバイス１９とCPU１１間でデータ転送を行う第２のモード状態の場合に、PLL回路１６ａの動作を停止させるサスペンド信号を生成して、物理層１６に出力する制御部２１と、を有する。【選択図】図２
2010015318.tif 000002
【特許請求の範囲】
【請求項１】
PLL回路の生成したクロック信号を利用してUSBデバイスとCPU間でデータ転送を行う第１のモード状態の場合に、前記USBデバイスと前記CPU間の通信がないときに、前記PLL回路の動作を停止させる所定の信号を生成して、前記PLL回路を含む物理層に出力する省電力制御回路と、
前記USBデバイスが接続されていない接続待機状態の場合と、前記PLL回路の生成した前記クロック信号を利用しないで前記USBデバイスと前記CPU間で前記データ転送を行う第２のモード状態の場合に、前記PLL回路の動作を停止させる前記所定の信号を生成して、前記物理層に出力する制御回路と、
を有することを特徴とするUSBホストコントローラ。
【請求項２】
前記制御回路は、ハードウエア回路で構成され、前記接続待機状態への遷移及び前記第２のモード状態への遷移を検出するステートマシン部を有することを特徴とする請求項１に記載のUSBホストコントローラ。
【請求項３】
前記制御回路は、ハードウエア回路で構成され、レジスタ回路を有し、該レジスタには、前記接続待機状態あるいは前記第２のモード状態に対応するデータがストアされ、
前記制御回路は、前記レジスタ回路のデータに基づいて、前記所定の信号を出力することを特徴とする請求項１に記載のUSBホストコントローラ。
【請求項４】
CPUと、
PLL回路の生成したクロック信号を利用してUSBデバイスと前記CPU間でデータ転送を行う第１のモードの場合に、前記USBデバイスと前記CPUとの通信がないときに、前記PLL回路の動作を停止させる所定の信号を生成して、前記PLL回路を含む物理層に出力する省電力制御回路と、前記USBデバイスが接続されていない接続待機状態の場合と、前記PLL回路の生成した前記クロック信号を利用しないで前記USBデバイスと前記CPU間で前記データ転送を行う第２のモード状態の場合に、前記PLL回路の動作を停止させる前記所定の信号を生成して、前記物理層に出力する制御回路とを有するUSBホストコントローラと、
を有する情報処理装置。
【請求項５】
コンピュータに、USBホストコントローラの制御を実現させるためのプログラムであって、
PLL回路の生成したクロック信号を利用してUSBデバイスとCPU間でデータ転送を行う第１のモード状態の場合に、前記USBデバイスと前記CPU間の通信がないときに、前記PLL回路の動作を停止させる所定の信号を生成して、前記PLL回路を含む物理層に出力する第１のコード部と、
前記USBデバイスが接続されていない接続待機状態の場合と、前記PLL回路の生成した前記クロック信号を利用しないで前記USBデバイスと前記CPU間で前記データ転送を行う第２のモード状態の場合に、前記PLL回路の動作を停止させる前記所定の信号を生成して、前記物理層に出力する第２のコード部と、
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、USBホストコントローラ、情報処理装置及びプログラムに関し、特に、USBホストコントローラの物理層のPLL回路の動作を制御するUSBホストコントローラ、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来より、コンピュータ等の機器と、周辺機器を接続するためのシリアルバスの規格の一つとしてのUSBが、広く利用されている。  
そのUSBの規格の一つであるUSB2.0規格と、USB2.0 ホストコントローラの規格であるEHCI規格とに準拠したHigh SpeedモードをサポートするUSB2.0 ホストコントローラは、デジタル層（以下、Link部ともいう）と物理層（以下、PHY部ともいう）から構成されている。PHY部にはHigh Speed (480MHz)モード時のシリアルデータ用クロック信号を生成するためにPLL回路が実装されている。このPLL回路の消費電力は、USB2.0 ホストコントローラのLink部とPHY部内の消費電力の大半を占めている。  
そして、このPLL回路を低消費電力状態へするためには、USB2.0規格において定義されているサスペンド状態へと移行させる必要がある。
【０００３】
ところが、このサスペンド状態は、USBデバイスが接続された状態において、かつUSB のバス上で転送するデータが存在しないアイドル状態においてのみ有効となる状態である。そのため、従来は、USB2.0 ホストコントローラをサスペンド状態以外の状態においては、PLL回路を低消費電力状態へ移行することができなかった。
【０００４】
これは、例えば、USB2.0 ホストコントローラに電力が供給されていても、USB デバイスの接続がされていない状態においては、USBデバイスがUSB2.0 ホストコントローラに接続されたことを検出するためにはPLL回路で生成されたクロックが必要である等の理由からである。
【０００５】
また、サスペンド状態以外の時であっても、消費電力の低減を図る技術が提案されている。例えば、転送状態において、USBデバイス内の各クロックを停止させることができるようにする技術が提案されている（例えば、特許文献１参照）。
【０００６】
しかし、この提案の技術は、USBデバイス側における省電力を図るものであり、USBホストコントローラ側の省電力を図るものではない。
【０００７】
さらに、USBケーブルの接続前においては受信回路をディスエイブルにする技術、及びUSBデバイスの接続を待っている状態において、PHY部へのサスペンド信号をアクティブにする技術も提案されている（例えば、特許文献２および非特許文献１参照）。
【０００８】
しかし、前者は、PLL回路の省電力を図るものではなく、後者は、USBデバイスの接続を待っている状態においてのみPLL回路の省電力を図るものである。
【特許文献１】特開2006-344159号公報
【特許文献２】特開2005-182385号公報
【非特許文献１】シノプシス（SYNOPSYS）社「アプリケーションノート  フォー  デザインウエア  レガシー  USB2  PHYハードマクロ  アグレッシブ・ロー・パワー（AppNote For DesignWare Legacy USB 2 PHY HARD MACRO AGGRESSIVE LOW POWER」2007年１０月
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、本発明は、USBデバイスの接続を待っている状態だけでなく、他の状態においてもUSBホストコントローラ側のPLL回路の省電力を実現できるUSBホストコントローラ、情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様によれば、PLL回路の生成したクロック信号を利用してUSBデバイスとCPU間でデータ転送を行う第１のモード状態の場合に、前記USBデバイスと前記CPU間の通信がないときに、前記PLL回路の動作を停止させる所定の信号を生成して、前記PLL回路を含む物理層に出力する省電力制御回路と、前記USBデバイスが接続されていない接続待機状態の場合と、前記PLL回路の生成した前記クロック信号を利用しないで前記USBデバイスと前記CPU間で前記データ転送を行う第２のモード状態の場合に、前記PLL回路の動作を停止させる前記所定の信号を生成して、前記物理層に出力する制御回路と、を有するUSBホストコントローラを提供することができる。
【発明の効果】
【００１１】
本発明のUSBホストコントローラ、情報処理装置及びプログラムによれば、USBデバイスの接続を待っている状態だけでなく、他の状態においてもPLL回路の省電力を実現できる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施の形態を説明する。  
（第１の実施の形態）
まず図１に基づき、本発明の第１の実施の形態に係わるUSBホストコントローラを含む情報処理装置の構成を説明する。図１は、本実施の形態に係わるUSBホストコントローラを含む情報処理装置の構成を示す構成図である。
【００１３】
図１に示すように、情報処理装置としてのパーソナルコンピュータ（以下、PCという）１は、中央処理装置（CPU）１１と、主メモリ１２と、USBホストコントローラ１３とを含み、CPU１１と主メモリ１２とUSBホストコントローラ１３は、互いに内部バス１４により接続されている。USBホストコントローラ１３は、ここでは、USB2.0ホストコントローラである。
【００１４】
USBホストコントローラ１３は、デジタル層であるLink部１５と、物理層であるPHY部１６とを含む。Link部１５とPHY部１６とは、シリアルインターフェース１７とパラレルインターフェース１８により接続されている。PHY部１６は、消費電力の大きいPLL回路１６ａを含んで構成されている。
【００１５】
PC１では、CPU１１は、主メモリ１２上に展開されたプログラムを実行する。そして、PC１のUSBホストコントローラ１３には、USBメモリ、ハードディスク装置、マウス等のUSBデバイス１９が、接続可能となっている。PC１は、接続されたUSBデバイス１９を周辺機器として利用することができる。
【００１６】
PLL回路１６ａは、低速クロックから高速クロックを生成する。PLL回路１６ａは、USB2.0タイプのUSBデバイスが接続されているときには、動作しなければならないが、USB規格で定義されたサスペンド状態になると停止してもよい回路である。すなわち、USB2.0タイプのUSBデバイスが接続されている状態は、PLL回路１６ａの生成したクロック信号を利用して、USBデバイス１９とCPU１１間でデータ転送が行われるモード状態である。
【００１７】
なお、USBホストコントローラ１３が接続されるバスは、ここでは、CPU１１が接続される内部バス１４であるが、CPU１１が接続される内部バス１４とは異なるバスでもよい。
【００１８】
Link部１５とPHY部１６とのインターフェース１７，１８は、UTMI+規格（Revision1.0）に準拠したインターフェースである。また、本実施の形態では、USB2.0ホストコントローラ１３の形態は、このUTMI+規格のインターフェースを持つPHY部１６で、かつPHY部１６は、Full/Low Speedモード（以下、低速モードともいう）転送時にはシリアルインターフェースで転送を行うモードを備えるPHY部である。そして、USB1.1タイプのUSBデバイスが接続されている状態は、PLL回路１６ａの生成したクロック信号を利用しないで、USBデバイス１９とCPU１１間でデータ転送が行われるモード状態である。
【００１９】
本実施の形態では、USB2.0規格で定義されているサスペンド状態（以下、状態Aともいう）以外の状態において、PHY部１６のPLL回路１６ａを省電力状態に変更することができる状態として以下の２つの状態が定義される。
【００２０】
状態B：USB デバイスの接続を待っている状態（デバイス接続待機状態）
状態C：低速モード（Full/Low Speed）での動作状態
本実施の形態のUSBホストコントローラ１３は、上記のように定義した２つの状態B,Cのいずれかを検出した場合、PHY部１６をサスペンド状態へと移行させ、かつ検出した状態が変更された場合、PHY部１６をサスペンド状態から復帰させる機能をもつ制御部を有する。
【００２１】
図２は、その制御部を有するUSBホストコントローラ１３の内部構成を示す構成図である。USBホストコントローラ１３は、Link部１５と、PHY部１６と、制御部２１と、AND回路２２とを含んで構成されている。
【００２２】
Link部１５は、省電力制御回路であるサスペンド信号生成部２３と、レジスタ部２４と、を含む。制御部２１は、カウンタ２５と、ステートマシン部２６とを含む、ハードウエア回路で構成された制御回路である。
【００２３】
Link部１５のサスペンド信号生成部２３は、USB2.0規格で定義されているサスペンド状態を検知すると、所定の信号としてのサスペンド信号SSを出力する回路である。サスペンド信号SSは、USBデバイス１９が接続されているがUSBデバイス１９とCPU１１間のデータ通信がないときにLOWとなる信号である。サスペンド信号SSは、AND回路２２の一方の入力端に供給される。
【００２４】
省電力制御回路であるサスペンド信号生成部２３は、USB2.0規格で定義されたサスペンド状態（状態A）になると、例えばCPU１１からの指示に応じて省電力モードにするサスペンド信号SSを生成して、PHY部１６に出力する。
【００２５】
PHY部１６は、AND回路２２からのサスペンド信号SのLOWが入力されると、サスペンド状態となり、PLL回路１６ａへの電源供給を停止する等して、内部のPLL回路１６ａの動作を停止させるように、PLL回路１６ａを制御する。
【００２６】
レジスタ部２４は、複数のレジスタを含み、USBホストコントローラ１３内に実装されるEHCI規格で定義された内部レジスタの値を含む値を登録する。
【００２７】
図２では、レジスタ部２４は、それぞれが１ビットのデータを保持可能な３つのレジスタr1,r2,r3を含む。レジスタr1,r2,r3は、それぞれ次の内容を示す。
【００２８】
レジスタr1：EHCI Operational RegistersのCONFIGFLAG bit
レジスタr2：EHCI Operational RegistersのPORTSC.Port Owner bit
レジスタr3：EHCI Operational RegistersのPORTSC.CCS bit
レジスタ[r1,r2,r3]の値は、状態Bでは、[1,0,0]を示し、状態Cでは、[1,1,0]を示し、状態Aでは、[1,0,1]を示す。
【００２９】
通常、PC１が起動されると、レジスタ[r1,r2,r3]の値は、初期値として[1,0,0]に設定される。その後、USBデバイス１９が接続されると、CPU１１は、その接続されたUSBデバイス１９の種類によって、すなわちUSB2.0のタイプか、USB1.1のタイプかの判定を行う。CPU１１は、その判定の結果、USBデバイス１９がUSB1.1のタイプの場合、レジスタ[r1,r2,r3]の値を[1,1,0]に変更し、USB2.0のタイプの場合、レジスタ[r1,r2,r3]の値を[1,0,1]に変更する。
【００３０】
制御部２１は、カウンタ２５を有する。制御部２１は、レジスタ部２４における内部レジスタの値を監視し、カウンタ２５で所定期間を計時し、レジスタ部２４のレジスタの値がその所定期間維持されたか否かを検出する。  
制御部２１は、出力信号としては、PHY部１６をサスペンド状態へと移行させるための、所定の信号としてのサスペンド信号SCを出力する制御回路である。ハードウエア回路である制御部２１内は、ステートマシン部２６を有し、レジスタの値を監視して、制御部２１は、USBホストコントローラ１３の動作状態が状態BとCの場合に、PLL回路１６ａの動作を停止させる、LOWのサスペンド信号SCをPHY部１６へ出力する。サスペンド信号SCは、通常はHIGHで、状態が状態B,CになるとLOWとなる。
【００３１】
上述したように、カウンタ２５は、各レジスタ値が所定期間同じ値を保持しているかを判定するためのカウンタである。各レジスタ値が、所定期間、同じ値を保持するとカウント値が所定の値となる。よって、各レジスタ値は、所定期間、同じ値を保持した時に確定され、その確定した値がステートマシン部２６に入力され、その値に基づいて、ステートマシン部２６は、USBホストコントローラ１３の動作状態を判定する。すなわち、ステートマシン部２６は、Link部１５の内部レジスタであるレジスタ[r1,r2,r3]の値に基づいて、USBホストコントローラ１３の動作状態が状態B,Cへ遷移したか否かを検出することができる。
【００３２】
より具体的に説明する。  
デバイス接続待機状態（状態B）は、EHCI規格で定義された次のレジスタ値の条件を満たすことによって成立する。
【００３３】
[条件１−１：デバイス接続待機状態検出条件]
EHCI Operational RegistersのCONFIGFLAG=1’b1かつ
PORTSC.Port Owner=1’b0 かつ
PORTSC.CCS bit=1’b0」
この条件１−１の状態が、制御部２１内のカウンタ２５により、数msの所定期間、例えば３ms以上、カウントされることによって、維持された場合、デバイス接続待機状態（状態B）と判定される。
【００３４】
また、USB1.1における低速モード（Full/Low Speed）の動作状態（状態C）は、次のレジスタ値の条件を満たすことによって成立する。
【００３５】
[条件１−２：低速モード状態検出条件]
EHCI Operational RegistersのCONFIGFLAG=1’b1かつ
PORTSC.Port Owner=1’b1かつ
PORTSC.CCS bit=1’b0
この条件１−２の状態が、制御部２１内のカウンタ２５により、数msの所定期間、例えば3ms以上、カウントされることによって、維持された場合、低速モード状態（状態C）と判定される。
【００３６】
本実施の形態では、これら２つの動作状態を検出した場合をPHY部１６はサスペンド可能な状態と定義し、制御部２１内のステートマシン部２６の状態を遷移させる。
【００３７】
ステートマシン部２６は、判定した動作状態の遷移に応じて、LOWのサスペンド信号SCをAND回路２２の他方の入力端に供給する。すなわち、ステートマシン部２６は、動作状態が状態BあるいはCに遷移したことを検出すると、LOWのサスペンド信号SCを出力する。
【００３８】
また、制御部２１とLink部１５には、PHY部１６からの入力としてUTMI+規格で定義されているPHY部１６からの出力信号であるラインステート信号（line_state[1:0]）LSが入力される。ここでは、ラインステート信号は、DP/DM信号の状態を示す２ビット信号である。DP/DM信号は、USBバスの状態を示す信号である。
【００３９】
図３は、ステートマシン部２６における状態遷移を説明するための状態遷移図である。ここでは、３つの動作状態が定義されている。１つの動作状態は、初期状態であるアイドル状態であり、この動作状態では、PHY部１６へのサスペンド信号Sは非アクティブ、すなわちHIGHである。なお、図３では、状態Aについては、示されていない。
【００４０】
２つ目の動作状態は、上述した状態Bすなわちデバイス接続待機状態であり、アイドル状態において上述したデバイス接続待機状態検出条件の成立が検出された後に遷移する状態である。デバイス接続待機状態は、デバイスが接続されていない状態である。このデバイス接続待機状態では、サスペンド信号SCはLOWとなる。図３において、矢印TR1が、アイドル状態から状態Bへの遷移を示す。
【００４１】
３つ目の動作状態は、上述した状態Ｃすなわち低速モード状態であり、アイドル状態において上述した低速モード状態検出条件の成立が検出された後に遷移する状態である。この低速モード状態では、サスペンド信号SCはLOWとなる。図３において、矢印TR2が、アイドル状態から状態Cへの遷移を示す。
【００４２】
動作状態がアイドル状態から状態Ｂと状態Ｃに遷移した場合、制御部２１は、サスペンド信号SCをLOWにして、PHY部１６へのサスペンド信号Sをアクティブ、すなわちLOWにし、PHY部１６をサスペンド状態へと移行させる。すなわち、デバイス接続待機状態（状態B）と低速モード状態（状態C）では、サスペンド信号SはLOWとなり、PHY部１６はサスペンド状態となる。
【００４３】
また、制御部２１では、デバイス接続待機状態あるいは低速モード状態からアイドル状態におけるサスペンド状態からの復帰を行うための制御が必要となる。
【００４４】
デバイス接続待機状態からの復帰の条件は次の条件が成立した場合である。
【００４５】
条件２−１：デバイス接続待機状態時に新規USBデバイスの接続を検出する。
【００４６】
低速モード状態からの復帰の条件は次の条件が成立した場合である。
【００４７】
条件２−２：低速モード状態時にUSBデバイスの切断すなわち抜き取りを検出する。
【００４８】
条件２−１の成立を検出するには、EHCI規格のレジスタ値以外にPHY部１６からの入力信号であるラインステート信号LSが用いられる。
【００４９】
ラインステート信号LSは、UTMI+規格で定義されている信号であり、USBバスのDP/DMの状態を反映する信号である。PHY部１６がサスペンド状態にあってUSBデバイスの接続が発生した場合、ラインステート信号LSは、DP/DMの状態を検出する回路を経由して出力される。そのためPLL回路が停止している省電力モードであっても、ラインステート信号LSによりDP/DMの状態を監視可能となる。DP/DM信号は、USBデバイスが接続されていないときは、共に０であるが、USBデバイスが接続されるといずれかの信号が１となる。よって、DP/DMの状態を検出する回路は、このDP/DM信号を用いて、条件２−１の条件の成立を判定する。復帰条件２−１の条件は、次の状態を満たすことにより成立する。
【００５０】
条件３−１：ラインステート信号LS[1:0]が2’b00ではない。
【００５１】
この条件３−１の検出によって、動作状態は、デバイス接続待機状態からアイドル状態へ遷移する。図３において、矢印TR3が、デバイス接続待機状態からアイドル状態への遷移を示す。
【００５２】
また、条件２−２は、EHCI規格の内部レジスタ値が次の条件を満たすことにより成立する。  
条件３−２：
EHCI Operational RegistersのCONFIGFLAG=1’b1かつ
PORTSC.Port Owner=1’b0かつ
PORTSC.CCS bit=1’b0
この条件３−２の検出によって、動作状態は、低速モード状態からアイドル状態へ遷移する。図３において、矢印TR4が、低速モード状態からアイドル状態への遷移を示す。
【００５３】
２つの条件３−１，３−２の条件成立により、動作状態は、アイドル状態へ遷移し、PHY部１６へのサスペンド信号Sは再び非アクティブ、すなわちHIGH状態となる。その結果、PHY部１６のPLL１６ａは省電力状態から復帰する。
【００５４】
例えば、デバイス接続待機状態において、USB2.0対応のUSBデバイスが接続されると、状態は、デバイス接続待機状態からアイドル状態になる。そして、USBデバイスが接続された状態において、かつUSB のバス上で転送するデータが存在しないと、USB規格で定義された、図３には図示しないサスペンド状態、すなわち、USB2.0規格で定義されているサスペンド状態（状態A）に移行する。
【００５５】
また、デバイス接続待機状態において、USB1.1タイプのUSBデバイスが接続されると、動作状態は、デバイス接続待機状態から一旦アイドル状態になるが、USBデバイスがUSB1.1タイプのUSBデバイスと判定されると、状態は、アイドル状態から低速モード状態（状態C）に移行し、上述したように、PLL回路１６ａをオフすることができる。
【００５６】
この状態においても、USB1.1タイプのUSBデバイスが接続された状態において、かつUSB のバス上で転送するデータが存在しないと、USB規格で定義された、図３には図示しないサスペンド状態に移行する。
【００５７】
さらに、その低速モード状態（状態C）において、USB1.1対応のUSBデバイスが抜かれると、上述した復帰条件２が成立する。その結果、動作状態は、状態Cからアイドル状態に遷移するが、USBデバイスが抜かれた状態が所定期間継続すると、デバイス接続待機状態（状態B）に遷移する。
【００５８】
次に、上述した情報処理装置１の動作について説明する。  
図４は、上述した情報処理装置１におけるUSBホストコントローラの省電力制御の流れの例を示すフローチャートである。なお、図４の処理は、CPU１１と制御部２１によって実行される。
【００５９】
まず、PC１の電源がONになると、オペレーティングシステム（OS）が起動され、その後、USBデバイス１９の接続待ちの状態になる（ステップS1）。  
そして、制御部２１は、上述した条件１−１すなわちデバイス接続待機状態検出条件が成立したか否かを判定する（ステップS2）。
【００６０】
制御部２１は、条件１−１が成立していると判定されると、動作状態は、デバイス接続待機状態（状態B）に遷移する。上述したLOWのサスペンド信号SCを出力することによって、PLL回路１６ａの動作を停止する省電力モードにする（ステップS3）。図２に示すように、AND回路２２は、サスペンド信号SSとSCのいずれかがLOWになると、LOWのサスペンド信号Sを出力するので、すなわち、PHY部１６のPLL回路１６ａは停止する。
【００６１】
PLL動作停止の省電力モードになると、制御部２１は、条件２−１すなわちデバイス接続待機状態時に新規USBデバイスの接続が検出されたかを判定する（ステップS4）。  
ステップS4で、条件２−１が成立しなければ、ステップS4でNOとなり、処理はステップS3に戻る。
【００６２】
CPU１１は、ステップS2でNOあるいはステップS4でYESの場合、USBデバイス１９が接続されたか否かを判定する（ステップS5）。USBデバイス１９の接続が無ければ、処理は、ステップS1に戻る。
【００６３】
CPU１１は、USBデバイス１９の接続が検出されると、ステップS5でYESとなって、USBリセット処理を実行する（ステップS6）。USBリセット処理には、接続されたUSBデバイスのタイプ、すなわちUSB1.1タイプかUSB2.0タイプかの認証処理が含まれる。
【００６４】
USBリセット処理（ステップS6）の後、制御部２１は、上述した条件１−２の条件が成立したか否かを判定する（ステップS7）。
【００６５】
ステップS7でUSBデバイス１９がUSB1.1タイプである、すなわち動作状態が状態Ｃになった判定されると、制御部２１は、PLL回路１６ａの動作を停止する省電力モードにする（ステップS8）。その後、CPU１１は、USB1.1の動作に対応した処理を実行する（ステップS9）。
【００６６】
制御部２１は、USBデバイス１９が切断、すなわち抜き取られたか否かを判定する（ステップS10）。この抜き取りは、条件２−２の成立の有無により判定される。この抜き取りが検出されると、動作状態は、アイドル状態に遷移し、その状態が所定期間続くと、動作状態は、デバイス接続待機状態（状態B）に遷移する。
【００６７】
USBデバイス１９が切断されたときは、ステップS10でYESとなり、処理は、ステップS1に戻る。
【００６８】
USBデバイス１９が切断されていないときは、ステップS10でNOとなり、CPU１１は、USB規格で定義されたサスペンド状態にあるか否かを判定する（ステップS11）。
【００６９】
USB規格で定義されたサスペンド状態は、上述したように、USBデバイス１９が接続された状態において、かつUSB のバス上で転送するデータが存在しないアイドル状態である。
【００７０】
サスペンド状態でなければ、ステップS11でNOとなり、処理は、ステップS9に戻る。  
サスペンド状態であれば、CPU１１は、USBデバイスを、USB規格に対応する省電力モードにする（ステップS12）。
【００７１】
そして、制御部２１は、USBデバイス１９が切断、すなわち抜き取られたか否かを判定する（ステップS13）。この抜き取りは、条件２−２の成立の有無により判定される。  
USBデバイス１９が切断されたときは、ステップS13でYESとなり、処理は、ステップS1に戻る。
【００７２】
USBデバイス１９が切断されていないときは、ステップS13でNOとなり、処理は、ステップS11に戻る。
【００７３】
一方、ステップS7でUSBデバイス１９がUSB2.0タイプである判定されたときは、CPU１１は、USB2.0の動作に対応した処理を実行する（ステップS14）。  
制御部２１は、USBデバイス１９が切断、すなわち抜き取られたか否かを判定する（ステップS15）。
【００７４】
USBデバイス１９が切断されたときは、ステップS15でYESとなり、処理は、ステップS1に戻る。  
USBデバイス１９が切断されていないときは、ステップS15でNOとなり、CPU１１は、USB規格で定義されたサスペンド状態にあるか否かを判定する（ステップS16）。
【００７５】
USB規格で定義されたサスペンド状態は、上述したように、USBデバイス１９が接続された状態において、かつUSB のバス上で転送するデータが存在しないアイドル状態である。  
サスペンド状態でなければ、ステップS16でNOとなり、処理は、ステップS14に戻る。  
サスペンド状態であれば、CPU１１は、USBデバイスをUSB規格に対応する省電力モードにする（ステップS17）。この省電力モードは、CPU１１が、USBホストコントローラ１３へ所定の制御信号を出力することによって、Link部１５のサスペンド信号生成部２３が、サスペンド信号SSを生成して出力することによって達成される。
【００７６】
そして、制御部２１は、USBデバイス１９が切断、すなわち抜き取られたか否かを判定する（ステップS18）。  
USBデバイス１９が切断されたときは、ステップS18でYESとなり、処理は、ステップS1に戻る。  
USBデバイス１９が切断されていないときは、ステップS18でNOとなり、処理は、ステップS16に戻る。
【００７７】
以上のように、本実施の形態に係る情報処理装置１では、ハードウエアである制御部２１によって、上述したデバイス接続待機状態、または低速モード状態の２つの状態において、省電力状態への移行が可能となり、USBホストコントローラの動作状態に応じた省電力制御が可能となる。
【００７８】
すなわち、具体的には、本実施の形態のUSBホストコントローラは、USBデバイスが接続されていない接続待機状態だけでなく、USB1.1タイプのUSBデバイスが接続された状態においても、PLL回路の動作を停止する省電力モードになる。
【００７９】
（第２の実施の形態）
上述した第１の実施の形態では、制御部はカウンタを有していたが、本実施の形態では、制御部は、CPUからアクセス可能な３つのレジスタを有する。そして、本実施の形態は、制御部が、CPUによって書かれたレジスタの内容に応じて、PLL回路を停止する省電力モードの制御を行うようにした点が、第１の実施の形態と異なる。
【００８０】
図５は、本実施の形態に係る制御部を有するUSBホストコントローラ１３Aの内部構成を示す構成図である。なお、図５及び図６において、第１の実施の形態と同じ構成要素については、同じ符号を付し説明は省略する。
【００８１】
制御部２１Aは、CPU１１からアクセス可能な、すなわち読み出し及び書き込み可能な、レジスタ回路２４Aを有する。レジスタ回路２４Aは、３つのレジスタR1,R2,R3を有し、それぞれ１bitのレジスタである。すなわち、各レジスタには、各動作状態に対応するデータが、Link部１５の内部レジスタの値に基づいてCPU１１によって書かれることによってストアされる。そして、第１の実施の形態で述べた４つの条件１−１，１−２，２−１，２−２の条件の成立の検出は、CPU１１が実行するソフトウエアプログラムによって行われる。
【００８２】
条件１−１の成立している動作状態すなわちデバイス接続待機状態の検出は、EHCI規格で定義されているEHCI Operational RegistersのPORTSC.CCS bitの状態を監視することによって行われる。そのPORTSC.CCS bitは、USBデバイス１９の接続状態を示すbitであるため、このbitがある所定期間1’b0を示す場合は、USBデバイス１９が接続されていない状態を示す。
【００８３】
そこで、CPU１１は、PORTSC.CCS bit = 1’b0を所定の期間例えば数msカウントした場合、CPU１１は、動作状態はデバイス接続待機状態（状態B）である、と判断する。
【００８４】
そして、CPU１１は、条件１−１の成立を検出すると、ハードウエア回路で構成された制御部２１A内のレジスタ群２４A中のレジスタR1に「１」を書く。レジスタR1のレジスタ値の初期値は「０」であるが、このbitが「０」から「１」に変化することは、図３の遷移TR1の条件が成立したことを意味する。
【００８５】
そのため、ステートマシン部２６の動作状態は、アイドル状態からデバイス接続待機状態へ遷移し、制御部２１Aは、そのレジスタ回路２４A中のデータに基づいて、サスペンド制御信号SCをLOWにして、PHY部１６へのサスペンド信号SをアクティブすなわちLOWとし、PHY部１６をサスペンド状態へと移行させる。
【００８６】
また、CPU１１は、条件１−２の成立している状態すなわち低速モード状態の検出は、EHCI規格で定義されているレジスタ値が次の条件を満たすか否かにより行われる。
【００８７】
条件４：
EHCI Operational RegistersのCONFIGFLAG=1’b1かつ
PORTSC.Port Owner=1’b1かつ
PORTSC.CCS bit=1’b0、
あるいは
CONFIGFLAG=1’b0かつ
PORTSC.CCS bit=1’b0
そして、CPU１１は、条件１−２の成立を検出すると、制御部２１A内のレジスタ群２４A中のレジスタR2に「１」を書く。レジスタR2のレジスタ値の初期値は「０」であるが、このbitが「０」から「１」に変化することは、図３の遷移TR2の条件が成立したことを意味する。ステートマシン部２６の動作状態は、アイドル状態から低速モード状態（状態C）へ遷移し、制御部２１Aは、そのレジスタ回路２４A中のデータに基づいて、サスペンド制御信号SCをLOWにして、PHY部１６へのサスペンド信号SをアクティブすなわちLOWとし、PHY部１６をサスペンド状態へと移行させる。
【００８８】
このように、CPU１１が、条件１−１あるいは１−２の成立を検出すると、レジスタR1又はR2に「１」を書く。制御部２１Aは、レジスタR1又はR2の内容を監視し、その内容に応じて、サスペンド信号SCの出力を制御する。
【００８９】
従って、ステートマシン部２６は、動作状態がアイドル状態から、デバイス接続待機状態又は低速モード状態へ遷移すると、PHY部１６へのサスペンド信号SをアクティブとしてPHY部１６を、PLL動作停止省電力モードのサスペンド状態へと移行させる。
【００９０】
さらに、CPU１１は、デバイス接続待機状態において、条件２−１すなわちUSBデバイス１９の接続の検出を、次のようにして行う。
【００９１】
すなわち、ラインステート信号LSの２ビットが共に「０」でない状態が検出されると、制御部２１Aは、レジスタ群２４A中のレジスタR3を「１」に変更する。すなわち、制御部２１Aは、ラインステート信号LSを入力して監視し、ラインステート信号LSの２ビットが共に「０」でない場合には、レジスタR3に「１」を自動的に書くように構成されている。なお、レジスタR3の初期値は「０」である。そして、制御部２１Aは、レジスタR3におけるこの変化により、CPU１１への所定の割込信号を出力する。
【００９２】
その割込信号を検出したCPU１１は、レジスタR1とR3の各ビットを「０」に変更する。この変更は、上述した割込信号の発生の要因のクリアを意味する。
【００９３】
また、USBデバイス１９の接続の検出は、図３の遷移TR3の条件が成立したことを意味する。ステートマシン部２６の動作状態を、デバイス接続待機状態からアイドル状態へ変更する。その結果、ステートマシン部２６の動作状態は、デバイス接続待機状態からアイドル状態へ遷移し、PHY部１６へのサスペンド信号Sを非アクティブとしてPHY部１６のPLL１６ａを、動作状態へと移行させる。
【００９４】
また、CPU１１は、低速モード状態において、条件２−２すなわちUSBデバイスの切断すなわち抜き取りの検出を、次のようにして行う。
【００９５】
すなわち、低速モード状態で動作中に、第１の実施の形態と同様に、USBデバイス１９の切断すなわち抜き取りが検出されると、USBホストコントローラ１３Aは、CPU１１へ割込信号を出力し、CPU１１はその割り込みを検出する。
【００９６】
その割込信号を検出したCPU１１は、その割込信号がUSBデバイス１９の切断であることを示す割込信号であるので、条件２−２が成立したと判断して、レジスタR2のビットを「０」に変更する。また、この変更は、図３の遷移TR4の条件が成立したことを意味する。その結果、ステートマシン２６の動作状態は、低速モード状態からアイドル状態へ遷移し、PHY部１６へのサスペンド信号Sを非アクティブとしてPHY部１６のPLL１６ａを、動作状態へと移行させる。
【００９７】
次に、本実施の形態の情報処理装置の動作について説明する。  
図６は、上述した情報処理装置の省電力制御の流れの例を示すフローチャートである。なお、図６の処理は、CPU１１によって実行される。なお、図６において、図４と同じ処理については、同じ符号を付し、説明は省略する。  
CPU１１は、ステップS2でYESとなると、レジスタR1に「１」を書く（ステップS51）。制御部２１Aは、レジスタR1が「１」になると、サスペンド信号SCをLOWにして省電力モードにする（ステップS3）。
【００９８】
また、条件２−１が成立すると、CPU１１は、レジスタR3に「１」を書き（ステップS52）、割込信号を生成して出力し（ステップS53）、レジスタR1,R3をクリアにする（ステップS54）。  
また、USBリセット（ステップS6）の後、上述した条件４が成立したか否かが判断される（ステップS55)。
【００９９】
条件４が成立すると、ステップS55でYESとなりとなり、CPU１１は、レジスタR2に「１」を書く（ステップS56）。レジスタR2が「１」になったので、制御部２１Aは、サスペンド信号SCをLOWとして出力することによって、PLL回路１６ａの動作を停止する省電力モードにする（ステップS8）。
【０１００】
また、USBデバイス１９が切断すなわち抜かれた場合（ステップS10とS13でYESの場合）、レジスタR2を「０」にするようにクリアする（ステップS57,S58）。  
以上のように、本実施の形態によれば、制御部２１Aに３つのレジスタを有して、CPU１１がこのレジスタの内容を動作状態に応じて書き換えるというソフトウエアプログラムを実行して、制御部２１Aがそのレジスタの内容に応じて、PLL回路の動作を停止するようにサスペンド信号を出力する。
【０１０１】
これにより、本実施の形態に係る情報処理装置では、CPU１１によって、上述したデバイス接続待機状態、及び低速モード状態の２つの動作状態において、省電力状態への移行が可能となり、USBホストコントローラの動作状態に応じた省電力制御が可能となる。
【０１０２】
すなわち、具体的には、本実施の形態のUSBホストコントローラは、USBデバイスが接続されていない接続待機状態だけでなく、USB1.1タイプのUSBデバイスが接続された状態においても、PLL回路の動作を停止する省電力モードになる。
【０１０３】
以上のように、上述した各実施の形態における情報処理装置によれば、従来のサスペンド状態に加えて、USBホストコントローラにUSBデバイスが接続されていないデバイス待機状態だけでなく、USBホストコントローラが低速モード状態においても、PHY部のPLL回路の動作を停止させて省電力が可能である。
【０１０４】
なお、上述した２つの実施の形態では、情報処理装置としてPCを例に挙げたが、PCは携帯型のPCも含み、さらに、情報処理装置としてはPC以外の装置、例えば携帯電話、デジタルオーディオプレーヤ等、でもよい。
【０１０５】
本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウエアやソフトウエア・ルーチンに１対１には対応しない。従って、本明細書では、以下、実施の形態の各機能を有する仮想的回路ブロック（部）を想定して実施の形態を説明した。また、本実施の形態における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
【０１０６】
なお、以上説明した動作を実行するプログラムは、コンピュータプログラム製品として、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬媒体や、ハードディスク等の記憶媒体に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムコードがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールすることで、容易に本発明の情報処理装置を実現することができる。
【０１０７】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【０１０８】
【図１】本発明の第１の実施の形態に係わるUSBホストコントローラを含む情報処理装置の構成を示す構成図である。
【図２】本発明の第１の実施の形態に係わるUSBホストコントローラの内部構成を示す構成図である。
【図３】本発明の第１の実施の形態に係わる、ステートマシン部における状態遷移を説明するための状態遷移図である。
【図４】本発明の第１の実施の形態に係わる、情報処理装置におけるUSBホストコントローラの省電力制御の流れの例を示すフローチャートである。
【図５】本発明の第２の実施の形態に係わるUSBホストコントローラの内部構成を示す構成図である。
【図６】本発明の第２の実施の形態に係わる、情報処理装置の省電力制御の流れの例を示すフローチャートである。
【符号の説明】
【０１０９】
１  情報処理装置、１１  CPU、１２  主メモリ、１３、１３A  USBホストコントローラ、１４  内部バス、１５  Link部、１６  PHY部、１６ａ  PLL回路、１７，１８  インターフェース、１９  USB]デバイス、２１、２１A  制御部、２２  AND回路、２３  サスペンド信号生成部、２４  レジスタ回路、２５  カウンタ、２６  ステートマシン部
【図１】
2010015318.tif 000003
【図２】
2010015318.tif 000004
【図３】
2010015318.tif 000005
【図４】
2010015318.tif 000006
【図５】
2010015318.tif 000007
【図６】
2010015318.tif 000008