(57)【要約】【課題】クィック・レジュームの機会確保と消費電力低減の調和を図ったパワー・ステートの制御方法を提供する。【解決手段】システムの消費電力の大きさに対して、電力アイドル状態の上限値Ｐｉｈと下限値Ｐｉｌを設定する。パワー・オン状態のときにシステムの消費電力を計算する。消費電力が低下してシステムが電力アイドル状態に入ったとき一定時間が経過してからサスペンド状態に移行する。システムの消費電力が従来に比べて小さくなったシステムにおいては、ＣＰＵ使用率に基づくアイドル時間でパワー・ステートを制御するよりも、クィック・レジュームの機会確保と消費電力の低減を合理的に調和させることができる。【選択図】図６
2014137680.tif 000002
【特許請求の範囲】
【請求項１】
パワー・オン状態で動作しているコンピュータのシステムが省電力状態に移行する方法であって、
前記システムの消費電力に対して基準値を設定するステップと、
前記システムの消費電力を測定するステップと、
前記コンピュータが前記システムの消費電力と前記基準値を比較して移行条件を判断するステップと、
前記移行条件が成立したときに、前記省電力状態に移行するステップと
を有する方法。
【請求項２】
前記移行条件が、所定の観測時間で計算した平均消費電力値が第１の基準値より低下した状態で成立する請求項１に記載の方法。
【請求項３】
前記移行条件が、前記平均消費電力値が前記第１の基準値より小さい第２の基準値より大きいときに成立する請求項２に記載の方法。
【請求項４】
前記平均消費電力値が前記第２の基準値よりも小さい間は前記パワー・オン状態を維持する請求項３に記載の方法。
【請求項５】
前記第２の基準値が前記省電力状態における前記システムの消費電力の５倍以下の値である請求項４に記載の方法。
【請求項６】
前記移行条件が、前記平均消費電力値が大きいときには前記平均消費電力値が小さいときに比べて前記平均消費電力値が前記第１の基準値より低下してから短い時間で成立する請求項２から請求項５のいずれかに記載の方法。
【請求項７】
前記パワー・オン状態において、所定のプログラムが生成したプロセスを強制的にサスペンドし、かつ強制的にサスペンドした前記プロセスの実行に関連するデバイスの電源を停止するステップを有する請求項１から請求項６のいずれかに記載の方法。
【請求項８】
パワー・オン状態で動作しているコンピュータのクィック・レジュームの機会確保と消費電力の低減を調和させる方法であって、
前記システムの消費電力の所定の範囲に対して電力アイドル状態を設定するステップと、
前記システムの消費電力を測定するステップと、
前記システムが前記電力アイドル状態に遷移したことを前記コンピュータが認識するステップと、
前記システムが前記電力アイドル状態に滞留していると判断したときに前記省電力状態に移行するステップと
を有する方法。
【請求項９】
前記消費電力の大きさで前記電力アイドル状態の深度を評価するステップと、
前記深度が深いほど前記省電力状態に移行するまでの時間を長く設定するステップと
を有する請求項８に記載の方法。
【請求項１０】
前記パワー・オン状態が、前記システムが前記携帯式コンピュータの使用を中断するイベントを受け取ったときに所定のプロセスを強制的にサスペンドするドーズ・モードで動作する状態である請求項８または請求項９に記載の方法。
【請求項１１】
前記パワー・オン状態においてプロセッサ以外の一部のデバイスの電力を停止するステップを有する請求項８から請求項１０のいずれかに記載の方法。
【請求項１２】
パワー・オン状態で動作しているコンピュータのシステムが省電力状態に移行する方法であって、
前記システムの消費電力の所定の範囲に対して電力アイドル状態を設定するステップと、
前記電力アイドル状態における前記システムの消費電力が小さいほど長い滞留時間で前記省電力状態への移行条件が成立する特性の基準値を前記コンピュータに提供するステップと、
前記システムの消費電力値を測定するステップと、
前記コンピュータが前記消費電力値と前記基準値を比較して前記移行条件を判断するステップと、
前記移行条件が成立したときに前記省電力状態に移行するステップと
を有する方法。
【請求項１３】
パワー・オン状態から省電力状態に遷移することが可能なコンピュータであって、
プロセッサと、
複数のデバイスと、
前記パワー・オン状態における前記コンピュータの消費電力値を取得する計算部と、
前記消費電力値と基準値を比較して移行条件を判断する判定部と、
前記移行条件が成立したときに前記パワー・オン状態から前記省電力状態に移行させる制御部と
を有するコンピュータ。
【請求項１４】
前記消費電力値が所定の時間継続して第１の基準値より小さいときに前記移行条件が成立する請求項１３に記載のコンピュータ。
【請求項１５】
前記基準値が前記第１の基準値と前記第１の基準値より小さい第２の基準値を含み、前記消費電力値が前記第１の基準値と前記第２の基準値の間にあるときに前記移行条件が成立する請求項１４に記載のコンピュータ。
【請求項１６】
前記基準値が、前記消費電力値が小さいほど前記消費電力値が前記第１の基準値より低下してから長い経過時間で前記移行条件が成立する特性を備えている請求項１３から請求項１５のいずれかに記載のコンピュータ。
【請求項１７】
前記コンピュータが電池ユニットを搭載する携帯式コンピュータで、前記計算部は前記電池ユニットの放電時のデータから前記コンピュータの消費電力を取得する請求項１３から請求項１６のいずれかに記載のコンピュータ。
【請求項１８】
前記パワー・オン状態で、リッド・センサが動作したことに応答して所定のプロセスを強制的にサスペンド状態に遷移させる請求項１７に記載のコンピュータ。
【請求項１９】
パワー・オン状態で動作しているコンピュータのクィック・レジュームの機会確保と消費電力の低減を調和させるために、前記コンピュータに、
システムの消費電力の所定の範囲に対して電力アイドル状態を設定する機能と
前記システムの消費電力を測定する機能と、
前記システムが前記電力アイドル状態に遷移したか否かを判断する機能と、
前記電力アイドル状態に滞留しているときに前記省電力状態に移行する機能と
を実現させるためのコンピュータ・プログラム。
【請求項２０】
前記システムが前記電力アイドル状態に滞留している滞留時間を計時する機能と、
前記滞留時間が所定値に到達したときに前記省電力状態に移行する機能と
を含む請求項１９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータがパワー・オン状態から省電力状態に移行する技術に関し、さらには、コンピュータがクィック・レジュームの機会確保と消費電力の低減を合理的に調和する技術に関する。
【背景技術】
【０００２】
コンピュータは電力源が存在するときに、システムがパワー・オン状態、スリープ状態またはソフト・オフ状態のいずれかのパワー・ステートに遷移する。システムはパワー・オン状態のときにだけ有用な処理をすることができるため、スリープ状態またはソフト・オフ状態のときはパワー・オン状態に遷移してから処理をする必要がある。スリープ状態にはさまざまな深度が定義されており、深度が深いほど消費電力は小さくなるとともにパワー・オン状態に遷移するまでの時間（レイテンシィ）が長くなる。ソフト・オフ状態ではほとんどのデバイスの電力が停止するため消費電力は最小になるがレイテンシィは最大になる。
【０００３】
システムがパワー・オン状態のときに中央演算処理装置（ＣＰＵ）およびその他のデバイス（以後、ＣＰＵ以外のデバイスを単にデバイスという。）は、作業状態に応じてさまざまなパワー・ステートにダイナミックに遷移し消費電力の低減を図っている。システムがパワー・オン状態のときにＣＰＵはアクティブ状態とスリープ状態の間を遷移し、システムがスリープ状態またはソフト・オフ状態のときに電力が停止して停止状態となる。デバイスはシステムがパワー・オン状態のときに、アクティブ状態、スリープ状態、または停止状態の間を遷移することができる。多くのデバイスはシステムがスリープ状態のときに停止する。
【０００４】
ＣＰＵはアクティブ状態のときにプロセスを実行することができるが、スリープ状態のときには割り込みに応じてアクティブ状態に遷移してからプロセスを実行する。ＣＰＵのスリープ状態にも消費電力とレイテンシィの視点で深度が存在する。スリープ状態の深度が深いほど消費電力は低下するがレイテンシィは長くなる。ＯＳおよびチップ・セットはＣＰＵの使用率に応じてスリープ状態におけるＣＰＵの深度を制御する。
【０００５】
ＣＰＵはスリープ状態の深度に応じて、コアの電圧、クロック動作、クロック周波数、ＰＬＬの動作、キャッシュ・コンテキストのフラッシュなどの消費電力の要因となる項目を制御する。ここにＣＰＵの使用率Ｙは、アイドル・プロセスのユーザ・モード時間の割合をＵｉ、アイドル・プロセスのカーネル・モード時間の割合をＫｉ、経過時間をＥｔとしたときに次の式で計算することができる。
Ｙ＝（１−（Ｕｉ＋Ｋｉ）／Ｅｔ）×１００％
【０００６】
ＣＰＵの使用率がほとんどゼロに近い状態を一般にアイドル状態というが、本明細書においてはこれを使用率アイドル状態ということにする。これまでシステムが使用率アイドル状態に遷移したときは、システムの消費電力が十分に小さいと考えられていた。しかしパワー・オン状態のときは各デバイスが独自のアルゴリズムで所定のパワー・ステートに遷移するため、使用率アイドル状態に移行してもシステムとしては一定の電力を消費している。一例では、使用率アイドル状態のときのシステムの消費電力は５Ｗ程度で、スリープ状態のときには１１０ｍＷ程度である。
【０００７】
ＣＰＵには、コアの機能の他にメモリ・コントローラ機能やグラフィックス機能などが搭載されるようになり消費電力も一層増大する傾向にある。近年、インテル（登録商標）社は使用率アイドル状態におけるシステムの消費電力を低減するために、パワー・オン状態に複数のパワー・ステート（Ｓ０ｉｘ）を定義した新たなパワー・マネジメント手法を提唱している。その手法では、一層深いスリープ状態に遷移できるようなＣＰＵを提供し、遅延可能な割り込みやＤＭＡアクセスをまとめて行って使用率アイドル状態のときにＣＰＵをできるだけ深いスリープ状態に遷移させる手法を取り入れたり、デバイスにも積極的に停止状態に移行することを要求したりする。
【０００８】
マイクロソフト（登録商標）社は、システムの動作中にアイドル状態のデバイスの電力を下げるランタイム・アイドル状態検出またはＳ０アイドルの実装を推奨している。さらにはシステムが動作中にデバイスの電力を完全に停止する手法を提案している。この手法は一般にRuntime D3といわれることもある。ランタイム・アイドル状態検出では、パワー・オン状態でデバイスが従来よりも一層深いスリープ状態または停止状態まで遷移する。したがってこのようなパワー・オン状態における新しいパワー・マネジメント手法が導入されると、今後はシステムがパワー・オン状態のときにＣＰＵの使用率が低下したりデバイスのアイドル時間が長くなったりするとシステムの消費電力がサスペンド状態のときの消費電力近くまで低下する。
【０００９】
特許文献１は、オフィスから会議室に移動する場合に短時間だけＬＣＤ筐体を閉じたようなときに、無線の接続やチャット・アプリケーションの実行などの特定の機能を実現しながら通常モードより消費電力の少ないドーズ・モード（Doze Mode）に遷移させて、短時間で復帰させる発明を開示する。ドーズ・モードでは、多くのプロセスが強制サスペンド状態または実行待ち状態に遷移するためにＣＰＵの使用率が低下してシステムの消費電力が低下する。また、ドーズ・モードでは特定の機能および基本機能を実現するのに必要な最小限のデバイスを除いた多くのデバイスの電力が停止する。したがってドーズ・モードでは、パワー・ステートはパワー・オン状態であるが消費電力は著しく小さい。
【００１０】
特許文献２は、コンピュータがいずれかのスリープ状態に遷移している間に電源供給状態が変化したときに、スリープ状態の深度を変化させる発明を開示する。同文献には電源供給状態を、バッテリィの状態と外部電源の組み合わせで判断することが記載されている。また、同文献には、パワー・オン状態からスリープ状態への遷移は、ユーザがスリープ・ボタンを押したとき、またはＡＣＰＩ−ＯＳがＰＣの一定時間のアイドル状態を検出したときに行われることが記載されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１１−１５０６１０号公報
【特許文献２】特開平１１−１６１３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
現在のノートブック型パーソナル・コンピュータ（ノートＰＣ）においては、特許文献２に記載するように、ＯＳがアイドル・タイマで計時した使用率アイドル状態の継続時間（アイドル時間）が所定値に到達したときに、システムをパワー・オン状態からスリープ状態に遷移させている。使用率アイドル状態の間は、ユーザがノートＰＣを使用する場合にＣＰＵおよびデバイスを短いレイテンシィでアクティブ状態に復帰させるクィック・レジュームを実現することができるが、有用な処理をしないにもかかわらずバッテリィを消費することになる。
【００１３】
ユーザがノートＰＣの操作中に一時的にアクセスを中断したときに発生するアイドル時間は比較的短いが、ユーザがノートＰＣから離れたときに発生するアイドル時間は長くなる。アイドル時間が短い間は、クィック・レジュームの機会を確保しておくことが利便性の上で重要であるが、アイドル時間が長くなるにしたがってバッテリィの消費量低減が重要になる。クィック・レジュームの機会確保とバッテリィ消費量の低減はトレード・オフの関係になるため、システムの消費電力の大きさに応じてクィック・レジュームの機会を確保する時間を決めることが望ましい。
【００１４】
使用率アイドル状態のときにＣＰＵは深いスリープ状態に遷移してその消費電力が最低レベルに達していると考えられるが、システムの消費電力はデバイスの状態によって大きく変化する。インテル（登録商標）社またはマイクロソフト（登録商標）社が提唱する新しいパワー・マネジメントが導入されると、パワー・オン状態の消費電力が一層低下する。したがって、これまでのようなＣＰＵの使用率でシステムをスリープ状態に遷移させる必要性を判断して遷移させるまでの時間を決める方法では、バッテリィの消費量とクィック・レジュームの機会確保の調和を適切に図ることができない。
【００１５】
たとえば、システムの消費電力がスリープ状態のときの消費電力に近い程度まで低下している場合は、パワー・オン状態を維持してクィック・レジュームの機会確保を優先させることが合理的である。また、システムの消費電力が小さいほどパワー・オン状態を維持してクィック・レジュームの機会を確保しておく時間を長くした方がより調和のとれたパワー・マネジメントといえる。
【００１６】
そこで本発明の目的は、コンピュータをパワー・オン状態から省電力状態に移行させる方法を提供することにある。さらに本発明の目的は、クィック・レジュームの機会確保と消費電力低減の調和を図る方法を提供することにある。さらに本発明の目的は、そのような方法を実現するコンピュータおよびコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００１７】
本発明の第１の態様では、パワー・オン状態で動作しているコンピュータのシステムが省電力状態に移行する方法を提供する。省電力状態は、サスペンド状態、ハイバネーション状態またはソフト・オフ状態のいずれかとすることができる。コンピュータがシステムの消費電力に対して基準値を設定しさらにシステムの消費電力を測定する。パワー・オン状態におけるシステムの消費電力は、プロセッサおよび各デバイスの動作状態に依存する。コンピュータはシステムの消費電力と基準値を比較して移行条件を判断する。コンピュータは移行条件が成立したときに省電力状態に移行する。
【００１８】
システムの消費電力に基づいてパワー・オン状態から省電力状態への移行のタイミングを決定することで、使用率アイドル状態の継続時間で判断するよりも合理的にクィック・レジュームの機会確保と消費電力の低減の調和を図ることができる。特に使用率アイドル状態のときよりも一層小さい消費電力になるシステムにおいて有効である。移行条件は、所定の観測時間で計算した平均消費電力値が第１の基準値より低下した状態で成立させることができる。所定の観測時間が経過するまでは、省電力状態に移行しないため、平均消費電力が観測時間の間第１の基準値より小さいときに移行条件が成立する。
【００１９】
移行条件は、平均消費電力値が第１の基準値より小さい第２の基準値より大きいときに成立するようにすれば、平均消費電力値が第２の基準値よりも小さいときにパワー・オン状態を維持してクィック・レジュームの機会の確保を優先させることができる。平均消費電力値が第２の基準値よりも小さい間はパワー・オン状態を維持してもよいが平均消費電力値が第２の基準値よりも低下してから所定の時間が経過したときに省電力状態に移行するようにしてもよい。移行条件は、平均消費電力値が大きいときには平均消費電力値が小さいときに比べて平均消費電力値が第１の基準値より低下してから短い時間で成立するようにしてもよい。この場合、平均消費電力値が大きいほど短時間で省電力状態に遷移するため、クィック・レジュームの機会確保と消費電力の低減の調和を一層合理的に図ることができる。
【００２０】
パワー・オン状態において、システムがアイドル状態のデバイスの電源を停止するような場合には、システムの消費電力が一層低下するため本発明を適用することが効果的である。さらにパワー・オン状態において、所定のプログラムが生成したプロセスを強制的にサスペンドし、かつ強制的にサスペンドしたプロセスに関連するデバイスの電源を停止する場合には、パワー・オン状態でのシステムの消費電力が大幅に低下するので本発明を適用することが一層効果的である。
【００２１】
本発明の第２の態様は、パワー・オン状態で動作しているコンピュータのクィック・レジュームの機会確保と消費電力の低減を調和させる方法を提供する。システムの消費電力の所定の範囲に対して電力アイドル状態を設定する。コンピュータがシステムの消費電力を測定する。コンピュータはシステムが電力アイドル状態に遷移したことを認識する。コンピュータはシステムが電力アイドル状態に滞留していると判断したときに省電力状態に遷移する。コンピュータは、消費電力の大きさで電力アイドル状態の深度を認識し、深度が深いほど省電力状態に移行するまでの時間を長く設定することができる。
【発明の効果】
【００２２】
本発明により、コンピュータをパワー・オン状態から省電力状態に移行させる方法を提供することができた。さらに本発明により、クィック・レジュームの機会確保と消費電力低減の調和を図る方法を提供することができた。さらに本発明により、そのような方法を実現するコンピュータおよびコンピュータ・プログラムを提供することができた。
【図面の簡単な説明】
【００２３】
【図１】本実施の形態にかかるノートＰＣのシステムを構成する主要なハードウェアを説明するための機能ブロック図である。
【図２】ノートＰＣのシステム１０、ＣＰＵ１１およびデバイス群のパワー・ステートを説明する図である。
【図３】ノートＰＣの電力ブロック５０の構成を説明する機能ブロック図である。
【図４】ノートＰＣのシステムを構成する主要なソフトウェアの構成を説明するための機能ブロック図である。
【図５】システム１０のパワー・ステートの遷移を説明する図である。
【図６】電力アイドル状態におけるシステム１０のパワー・ステートを制御する方法を説明する図である。
【図７】電力アイドル状態におけるシステム１０のパワー・ステートを制御する際の基準値を説明する図である。
【図８】電力アイドル状態におけるシステム１０のパワー・ステートを制御する手順を説明するフローチャートである。
【図９】ドーズ・モードからサスペンド状態への移行手順を示すフローチャートである。
【発明を実施するための形態】
【００２４】
［ハードウェア構成とパワー・ステート］
図１は、本実施の形態にかかるノートＰＣのシステム１０を構成する主要なハードウェアを説明する機能ブロック図である。図２は、システム１０、ＣＰＵ１１およびデバイス群のパワー・ステートを説明する図である。図３はノートＰＣの電力ブロック５０の構成を説明する機能ブロック図である。本明細書の全体に渡って、同一の要素には同一の参照番号を付与する。システム１０を搭載するノートＰＣは、表面にキーボードを搭載し内部に電子デバイスを収納したシステム筐体とＬＣＤ１９を収納するＬＣＤ筐体とで構成される。ＬＣＤ筐体はシステム筐体に対して開閉ができるように構成されている。
【００２５】
図２においてシステム１０は、ＡＣＰＩ（Advanced Configuration and Power Interface）の規格に規定されているパワー・オン状態に対応するＳ０ステート、スリープ状態に対応するＳ１ステート〜Ｓ４ステート、ソフト・オフ状態に対応するＳ５ステートに遷移する。システムはパワー・オン状態で、アプリケーションが生成したユーザ・モード・スレッドをＣＰＵ１１にディスパッチして実行することができる。
【００２６】
本実施の形態では、スリープ状態にシステム・メモリ１３の記憶を保持するＳ３ステート（サスペンド状態）およびシステム・コンテキストをハードディスク・ドライブ（ＨＤＤ）２１に格納するＳ４ステート（ハイバネーション状態）だけを採用するが、他のスリープ状態を設けてもよい。スリープ状態には、ＯＳがＳ３ステートに遷移させてから一定の時間が経過したのちにファームウェアＲＯＭ２７に格納されたＵＥＦＩ（Unified Extensible Firmware Interface）ファームウェアが自動的に遷移させるＳ４ステートも含む。
【００２７】
スリープ状態ではサスペンド状態、ハイバネーション状態、ソフト・オフ状態の順番にシステム１０の消費電力は小さくなるがパワー・オン状態に復帰する際のレイテンシィは長くなる。ＣＰＵ１１はパワー・オン状態のときに、アクティブ状態に対応するＣ０ステートまたはスリープ状態に対応するＣ１ステート〜Ｃｎステートに遷移する。ｎの数が大きくなるほど消費電力が低下しかつレイテンシィが長くなる。ＣＰＵ１１は、アクティブ状態のときにだけプロセスを実行できる。スリープ状態のＣＰＵ１１は、割り込みがあったときにアクティブ状態に復帰してからプロセスを実行することができる。ＣＰＵ１１は、サスペンド状態、ハイバネーション状態またはソフト・オフ状態のときに電力が停止して停止状態に遷移する。
【００２８】
デバイスは、システムがパワー・オン状態のときにアクティブ状態に対応するＤ０ステート、スリープ状態に対応するＤ１ステート、Ｄ２ステートおよび停止状態に対応するＤ３ｈｏｔステート、Ｄ３ｏｆｆステートにダイナミックに遷移する。Ｄ１ステート、Ｄ２ステート、Ｄ３ｈｏｔステート、Ｄ３ｏｆｆステートの順番にデバイスの消費電力が小さくなるがアクティブ状態に復帰する際のレイテンシィは長くなる。多くのデバイスは基本的にシステムがサスペンド状態、ハイバネーション状態のときにスリープ状態または停止状態に遷移し、ソフト・オフ状態のときにＤ３ｏｆｆステートに遷移する。なかには、スリープ状態のときにＤ０ステートを維持するデバイスも存在する。
【００２９】
なお、デバイスによっては、Ｄ１ステート〜Ｄ３ｈｏｔステートを定義していない場合があり、パワー・オン状態でどのパワー・ステートまで遷移するかはデバイスにより異なる。パワー・オン状態でデバイスは独自のアルゴリズムで所定のスリープ状態に遷移してよいが、インテル（登録商標）社またはマイクロソフト（登録商標）社が提唱する新しいパワー・マネジメントでは、パワー・オン状態で多くのデバイスがＤ３ｏｆｆステートまで遷移することになるため、システム１０の消費電力は従来よりも大幅に低下する。
【００３０】
ノートＰＣのハードウェア構成は当業者が容易に理解できるため簡単に説明する。ＣＰＵ１１には、システム・メモリ１３、ビデオ・カード１５およびチップ・セット１９が接続される。ビデオ・カード１５にはＬＣＤ１７が接続される。ＣＰＵ１１は、アクティブ状態のときにたとえばインテル（登録商標）社のSpeedStep（登録商標）という技術を採用し、使用率に応じて動作周波数および動作電圧の組を所定の値に低下させることができる。
【００３１】
ＣＰＵ１１はまた使用率の低下に応じて、コア電圧の低下、コア・クロックの停止、ＰＬＬの停止、キャッシュのシステム・メモリ１３や専用メモリへのフラッシュなどを行ってスリープ状態の深度を変更し、割り込みがあったときには深度に応じたレイテンシィでアクティブ状態に遷移して命令を実行する。ＯＳは、ＣＰＵ１１の動作状態や使用率を監視してチップ・セット１９を通じてスリープ状態の深度を制御する。
【００３２】
チップ・セット１９は、ＵＳＢ（Universal Serial Bus）、シリアルＡＴＡ（AT Attachment）、ＳＰＩ (Serial Peripheral Interface)バス、 ＰＣＩ（Peripheral Component Interconnect）バス、ＰＣＩ−Ｅｘｐｒｅｓｓバス、およびＬＰＣ（Low Pin Count）バスなどのコントローラを備えており複数のデバイスが接続される。図１ではデバイスの例示として、ＨＤＤ２１、光学ディスク・ドライブ（ＯＤＤ）２３、ＵＳＢポート２５、ファームウェアＲＯＭ２７、無線カード２９およびオーディオ・デバイス３１を示している。チップ・セット１９にはさらにリッド・センサ８３およびパワー・ボタン８５が接続されている。
【００３３】
ファームウェアＲＯＭ２７は、ＵＥＦＩフォーラムが策定したＢＩＯＳに代わってまたはＢＩＯＳに加えて使用する新しいシステム・ファームウェア（以後、ＵＥＦＩファームウェアという。）を格納する。チップ・セット１９には、さらにエンベデッド・コントローラ（ＥＣ）３３が接続されている。ＥＣ３３には、キーボード、ポインティング・デバイス、タッチパッドなどの入力デバイス３５が接続される。ＥＣ３３は図３に示すように、ＣＰＵ５１、ＲＡＭ５３、ＲＯＭ５５、ＥＥＰＲＯＭ５７、タイマ５９および入力デバイスのコントローラ６１などで構成されたマイクロ・コンピュータである。
【００３４】
ＲＯＭ５５には、本実施の形態にかかる電力アイドル状態でのパワー・ステートを制御するファームウェアが格納されている。ＥＥＰＲＯＭ５７は、図６〜図８を参照して説明する電力アイドル状態でのパワー・ステートの制御に使用する基準値や設定値などの制御データを格納する。ＥＣ３３は、温度や電力などのノートＰＣの動作環境の管理にかかるプログラムをＣＰＵ１１とは独立して実行することができる。
【００３５】
ＥＣ３３には、パワー・コントローラ８１および電池ユニット３７が接続されている。パワー・コントローラ８１にはＤＣ／ＤＣコンバータ７９が接続されている。パワー・コントローラ８１はＤＣ／ＤＣコンバータ７９を制御するワイヤード・ロジックのディジタル制御回路（ＡＳＩＣ）である。
【００３６】
電池ユニット３７は、ＣＰＵ６３、ＲＡＭ６５、ＲＯＭ６７、ＥＥＰＲＯＭ６９、タイマ７１および電池セット７３などで構成されている。電池ユニット３７は、電池パックとして構成してシステム筐体のベイに装着したり、基板に実装してシステム筐体の内部に収納したりすることができる。ＣＰＵ６３は、電池セット７３の残存容量の計算、充放電電流、充放電電圧の管理などを行う。
【００３７】
電池セット７３がシステム１０に電力を供給するときは、放電電力がシステム１０の消費電力となる。ＥＣ３３はたとえば２秒といった周期で定期的にＣＰＵ６３から電池セット７３の放電電流を受け取ってシステム１０の消費電力Ｐを計算する。ＥＣ３３は消費電力Ｐから、図６〜図８で説明する観察時間ｓで平均したシステム１０の平均消費電力Ｐａｖを計算する。なお、ＥＣ３３は定期的にＣＰＵ６３から放電電力を受け取るようにしてもよい。あるいは、ＣＰＵ６３がシステム１０の平均消費電力Ｐａｖを計算して、ＥＣ３３に送るようにしてもよい。
【００３８】
ＤＣ／ＤＣコンバータ７９は独立して動作する複数のモジュールで構成されており、ＡＣ／ＤＣアダプタ７７または電池ユニット３７から供給される直流電圧を、システム１０を動作させるために必要な複数の電圧に変換し、さらにパワー・ステートに応じて定義された電力供給区分に基づいて各々のデバイスに電力を供給する。スイッチ群８０は、パワー・オン状態のときにチップ・セット１９からＥＣ３３経由で指示されたアイドル状態のデバイスやドーズ・モードのときに指示されたデバイスの電源を停止する。リッド・センサ８３は、システム筐体に対するＬＣＤ筐体の開閉状態を検出する。パワー・ボタン８５はシステム筐体に物理的に一体に結合するように取り付けられておりユーザが押下してパワー・ステートの操作をする。
【００３９】
リッド・センサ８３およびパワー・ボタン８５は、チップ・セット１９に信号を送って、システム１０のパワー・ステートを変更するイベントを生成する。リッド・センサ８３は、ＬＣＤ筐体がシステム筐体に対して閉じられたときにドーズ・モードに移行する移行イベントを生成し開かれたときにドーズ・モードから通常モードにレジュームする復帰イベントを生成する。ＥＣ３３は、チップ・セット１９がイベントを生成したときにシステム１０のパワー・ステートを変更する。ＡＣ／ＤＣアダプタ７７はＤＣ／ＤＣコンバータ７９または充電器７５に電力を供給する。充電器７５は、電池セット７３を充電する。
【００４０】
［ソフトウェア構成］
図４は、システム１０を構成する主要なソフトウェア１００の構成を説明するための機能ブロック図である。ソフトウェア１００はＨＤＤ２１に格納されており、ＣＰＵ１１はこれらをシステム・メモリ１３にロードして実行する。ソフトウェア１００はパワー・オン状態の１つの動作モードであるドーズ・モード（図５参照）をサポートする。第１グループのアプリケーション１０１は、ドーズ・モードのときにも維持する必要のある特定の機能または基本機能に関するプログラム群である。特定の機能は一例として、チャット・プログラムまたは無線接続を維持するために必要なプログラムを含む。基本機能は電池セット７３の充電状態を監視する機能、電池セット７３の残容量が低下したときに自動的にスリープ状態に遷移してシステム・メモリ１３に展開されたデータの消失を防ぐ機能、および筐体内部の温度を管理する機能を含む。
【００４１】
第２グループのアプリケーション１０３は、ドーズ・モードの間も停止できないプログラムで一例としてウィルス対策プログラムを含む。パワーマネジメント・プログラム（ＰＭプログラム）１０５は、ドーズ・モードおよび本実施の形態にかかる電力アイドル状態でのパワー・マネジメントを実現するためのプログラムである。ＰＭプログラム１０５は、ドーズ・モードへの移行イベントの検知、ドーズ・モードでのプロセスの制御、および通常モードへの復帰イベントの検知と通常モードへの復帰作業を行う。さらに、第１グループのアプリケーション１０１をユーザが選択したり電力アイドル状態でのパワー・ステートを制御するためにユーザが観察時間やタイムアウトの時間を設定したりするための画面をＬＣＤ１７に表示する。
【００４２】
ＰＭプログラム１０５は、ＯＳ１０７を通じてＥＣ３３から、システム１０が電力アイドル状態に滞留している間にサスペンド状態への移行条件が成立したことを示す通知を受け取ると、ＯＳ１０７にシステム１０をスリープ状態に遷移させるように要求する。ＰＭプログラム１０５は、第１グループのアプリケーション１０１および第２グループのアプリケーション１０３を認識して強制サスペンドするプログラムのプロセスを決定することができる。ＰＭプログラム１０５は、電力アイドル状態でのパワー・ステートの制御において、スリープ状態へ移行させたくないプログラムのブラック・リストを保有する。ＰＭプログラム１０５は、ＯＳ１０７を通じてＥＣ３３から移行条件が成立した通知を受け取った時点でブラック・リストに記述されたプログラムのプロセスが実行されているときは、スリープ状態への遷移を保留する。
【００４３】
ＯＳ１０７は、ＡＰＩ１０９、システム・プロセス生成部１１１、電源管理部１１２、およびプロセス管理部１１３を含んでいる。ＯＳ１０７は、ＣＰＵ１１の使用率および動作状態に応じてＣＰＵ１１を所定の深度のスリープ状態に遷移させる。本発明の適用においては、パワー・オン状態でＯＳ１０７がＣＰＵ１１およびデバイス群のスリープ状態の深度をできるだけ深くできることが望ましい。ＯＳ１０７は一例としてＷｉｎｄｏｗｓ（登録商標）７または８とすることができる。
【００４４】
システム・プロセス生成部１１１は、ＯＳ１０７を構成するさまざまなプログラムを実行するためのシステム・プロセスを生成する。電源管理部１１２は、ＣＰＵ１１の使用率、命令の実行状態および電源関係のイベントなどを監視して、デバイス・ドライバやその他のモジュールにデバイスを制御するための通知をする。電源管理部１１２は使用率アイドル状態の継続時間を計時するアイドル・タイマを含む。
【００４５】
プロセス管理部１１３は、プロセス・リスト１１５、スケジューラ１１７、およびキュー１１９を含み、アプリケーションおよびシステム・プロセス生成部１１１が生成したプロセスおよびスレッドを管理する。プロセス・リスト１１５は、システム１０が現在生成しているすべてのプロセスを登録する。スケジューラ１１７は、生成されているスレッドに対して所定のアルゴリズムでプリエンプティブなタスク・スイッチを行う。キュー１１９には、実行可能状態、実行待ち状態、または強制サスペンド状態のいずれかに遷移したプロセスがそれらの状態ごとに登録される。
【００４６】
デバイス・ドライバ群１２５は、システム１０のデバイス群に対応するように構成されている。デバイス・ドライバ群１２５は、リッド・センサ８３が生成した通常モードからドーズ・モードへの移行イベントおよびドーズ・モードから通常モードへの復帰イベントをＯＳ１０７に伝える。デバイス・ドライバ群１２５は、ドーズ・モードの間に強制サスペンドできないスレッドがＨＤＤ２１に対して行ったＩ／Ｏリクエスト・パケットを登録するキューを含む。
【００４７】
［パワー・ステートの状態遷移］
図５は、システム１０のパワー・ステートの遷移を説明する図である。システム１０のパワー・ステートは、パワー・オン状態１５１、スリープ状態１５３およびソフト・オフ状態１５５で構成されている。パワー・オン状態１５１は、通常モード１５７とドーズ・モード１５９で構成されている。スリープ状態１５３とソフト・オフ状態１５５を併せて省電力状態という。通常モード１５７は、ドーズ・モード１５９に対して対照的なパワー・オン状態１５１での通常の動作モードで、プロセスの実行やデバイスへの電力供給をＰＭプログラム１０５が制限しない動作モードをいう。
【００４８】
ドーズ・モード１５９の詳細は特許文献１に開示されているが本発明に関連する範囲では以下の特徴を備えている。ドーズ・モード１５９では、プロセス・リスト１１５に登録されたプロセスが、強制サスペンド・グループとＩ／Ｏ監視グループに分類される。第１グループのアプリケーション１０１および第２グループのアプリケーション１０３以外のアプリケーションが生成したプロセスおよび第１グループのアプリケーション１０１または第２グループのアプリケーション１０３の実行に必要がないシステム・プロセスは強制サスペンド・グループに分類される。
【００４９】
ＰＭプログラム１０５は、強制サスペンド・グループのプロセスをキュー１１９に登録して強制サスペンド状態に遷移させる。ほとんどのアプリケーションが生成したプロセスは強制サスペンド状態に遷移するために、ＣＰＵ１１は使用率が低下して深いスリープ状態１５３に遷移することができるようになる。Ｉ／Ｏ監視グループのプロセスは、通常モード１５７と同じように実行可能状態または実行待ち状態に遷移するようにキュー１１９に登録される。
【００５０】
ＣＰＵ１１はスケジューラ１１７のアルゴリズムに基づいてキュー１１９に登録されたプロセスを実行する。Ｉ／Ｏ監視グループのプロセスがＨＤＤ２１にＩ／ＯアクセスをするためのＩ／Ｏリクエスト・パケットは、ドーズ・モード１５９の間デバイス・ドライバ群１２５のキューに登録し、Ｉ／Ｏリクエスト・パケットの処理完了通知がリクエストしたプロセスに戻らないようにすることで当該プロセスを実行待ち状態に遷移させることができる。その結果、ドーズ・モード１５９の間、ＨＤＤ２１はスピン・ダウンしたり電力を停止したりすることができるようになる。
【００５１】
ＰＭプログラム１０５は、ドーズ・モード１５９の間に維持する必要がある機能に関連のないデバイスの電力を停止することができる。ＰＭプログラム１０５はチップ・セット１９を通じてスイッチ群８０を操作して所定のデバイス群の電力を停止する。電力を停止するデバイス群は一例として、ＨＤＤ２１、ＯＤＤ２３、ＵＳＢポート２５、オーディオ・デバイス３１、およびＬＣＤ１７などである。ドーズ・モード１５９ではＣＰＵ１１の使用率が低下してその消費電力が低下するとともに、多くのデバイスの電力も停止するため通常モード１５７に比べて大幅にシステム１０の消費電力が低下する。
【００５２】
しかもドーズ・モード１５９の間はＣＰＵ１１がスリープ状態であっても、通常モード１５７に復帰したときに短いレイテンシィでアクティブ状態に復帰して強制サスペンドを解除し、プロセス・リスト１１５に登録されたすべてのプロセスを短時間で実行できるようになる。通常モード１５７からドーズ・モード１５９への遷移は、ＬＣＤ筐体を閉じてリッド・センサ８３が動作したときに生成される移行イベントで行う。ドーズ・モード１５９から通常モード１５７への復帰は、ドーズ・モード１５９での所定時間の間にＬＣＤ筐体が開いてリッド・センサ８３が動作したときに生成される復帰イベントで行うことができる。
【００５３】
所定時間の間にＬＣＤ筐体が開かないときは、本発明にかかる電力アイドル状態でのパワー・ステートの制御方法により、パワー・オン状態１５１を維持したり、ドーズ・モード１５９からサスペンド状態１６１またはハイバネーション状態１６３へ移行したりする。通常モード１５７からサスペンド状態１６１、ハイバネーション状態１６３またはソフト・オフ状態への移行は、ＧＵＩの操作、キーボードのＦｎキーの押下、パワー・ボタン８５の押下、またはリッド・センサ８３の動作により行う。さらに、システム１０の消費電力が低下したときには本発明にかかる電力アイドル状態でのパワー・ステートの制御方法で行う。サスペンド状態１６１、ハイバネーション状態１６３またはソフト・オフ状態１５５から通常モード１５７への移行は、パワー・ボタン８５の押下またはリッド・センサ１６１の動作に基づいて行う。
【００５４】
サスペンド状態１６１からハイバネーション状態１６３への遷移は、サスペンド状態１６１に遷移している時間が所定値を越えたとＵＥＦＩファームウェアが判断したときに、ＯＳに認識させないでＵＥＦＩファームウェアが自動的に行う。ユーザはＰＭプログラム１０５を通じてサスペンド状態１６１に遷移している時間を設定する。その場合の通常モード１５７への復帰はリッド・センサ８３の動作またはパワー・ボタン８５の押下により、ＵＥＦＩファームウェアが一旦サスペンド状態１６１まで復帰させたあとにＯＳが通常モード１５７に復帰させる。
【００５５】
［電力アイドル状態とサスペンド制御］
本発明では、システム１０をパワー・オン状態１５１からスリープ状態１５３またはソフト・オフ状態１５５に移行させるタイミングを判断するために、従来の使用率アイドル状態に代えて、システム１０の消費電力に基づく電力アイドル状態という新しい概念を導入する。電力アイドル状態は、システム１０の消費電力Ｐまたは平均消費電力Ｐａｖが所定の上限値Ｐｉｈ以下の状態をいう。さらに電力アイドル状態はシステム１０の消費電力Ｐまたは平均消費電力Ｐａｖが上限値Ｐｉｈと下限値Ｐｉｌの間にある状態をいう。一例としてシステムの最大消費電力Ｐｍａｘが９０Ｗのときに電力アイドル状態の上限値Ｐｉｈは５Ｗで下限値Ｐｉｌは５００ｍＷとすることができる。
【００５６】
消費電力Ｐと平均消費電力Ｐａｖの違いは、電力を計算するときの平均時間の相違による。消費電力Ｐは電池ユニット３７が放電時のデータから計測した値、または電池ユニット３７から放電時のデータを取得したＥＣ３３が計算した値としている。平均消費電力Ｐａｖは、以下に説明する観測時間ｓの間の平均の消費電力とする。消費電力Ｐより平均消費電力Ｐａｖの方が平均する時間が長い。一例では、平均する時間が消費電力Ｐでは２秒間で平均消費電力Ｐａｖでは１０分とする。消費電力Ｐは瞬間電力に近い値である。
【００５７】
電力アイドル状態での範囲には使用率アイドル状態を含むことができるが、使用率アイドル状態でのシステム１０の消費電力Ｐよりも一層小さい範囲にまで渡っている。一例として上限値Ｐｉｈは、インテル（登録商標）社やマイクロソフト（登録商標）社が提唱する新たなパワー・マネジメントを導入しない場合における使用率アイドル状態での消費電力Ｐに設定することができる。また、下限値Ｐｉｌはサスペンド状態におけるシステムの消費電力Ｐの５倍以下の値として設定することができる。
【００５８】
［電力アイドル状態での第１のパワー・ステートの制御方法］
つぎに、電力アイドル状態におけるシステム１０のパワー・ステートを制御する方法を、図６を参照して説明する。図６において、ライン１７１はパワー・オン状態１５１におけるシステム１０の消費電力Ｐが時刻ｔ０で開始電力Ｐｓｔまで低下し、その後さらにＰｓｔ以下に滞留している様子を示している。開始電力Ｐｓｔは、電力アイドル状態の上限値Ｐｉｈとすることができる。上限値Ｐｉｈを使用率アイドル状態に設定する場合は、ＯＳ１０７がシステム１０の使用率アイドル状態への遷移を認識した時点で時刻ｔ０を設定することができる。なお、システム１０の消費電力Ｐには、電力ブロック５０を構成する要素が消費する電力も含む。
【００５９】
時刻ｔ０でＥＣ３３はタイマ５９を動作させてシステム１０の電力アイドル状態の監視を開始する。なお、ＥＣ３３は消費電力Ｐが開始電力Ｐｓｔ以上に戻ったときにタイマ５９をリセットして電力アイドル状態の監視を停止する。ＥＣ３３は、タイマ５９が計時する時間に基づいて観測時間ｓが時間軸上に連続するタイム・ウィンドウ１７３または時間移動平均を計算するように観測時間ｓがサンプリング周期ｔｓで経過時間ｔ方向にシフトするタイム・ウィンドウ１７５を設定する。
【００６０】
ＥＣ３３は、取得した消費電力Ｐに基づいて観測時間ｓごとの平均消費電力Ｐａｖを計算する。ＥＣ３３は、平均消費電力Ｐａｖに対する基準値１７７を設定する。基準値１７７は、電力アイドル状態の上限値Ｐｉｈおよび下限値Ｐｉｌで構成している。ＥＣ３３は、観測時間ｓについて計算した平均消費電力Ｐａｖが上限値Ｐｉｈよりも大きいと判断したときは、システム１０が停止できない状態にあるとみなしてパワー・オン状態を維持する。
【００６１】
ＥＣ３３は、平均消費電力Ｐａｖが上限値Ｐｉｈと下限値Ｐｉｌの間にあると判断したときは、クィック・レジュームの機会確保よりもバッテリィの消費量低減の方に高いウェートをおいてサスペンド状態１６１に移行させる。平均消費電力Ｐａｖが下限値Ｐｉｌ以下のときは、サスペンド状態１６１での平均消費電力Ｐ(Ｓ３)との差が小さいためにサスペンド状態１６１に移行させてもバッテリィの消費量低減効果が少ない。ＥＣ３３は、平均消費電力Ｐａｖが下限値Ｐｉｌ以下であると判断したときはクィック・レジュームの機会確保を優先させてパワー・オン状態１５１を維持する。ちなみに一例として、サスペンド状態１６１での消費電力Ｐ(Ｓ３)は１１０ｍＷで、ハイバネーション状態１６３での消費電力Ｐ(Ｓ４)は６０ｍＷである。
【００６２】
開始電力Ｐｓｔ、サンプリング周期ｔｓ、上限値Ｐｉｈおよび下限値ＰｉｌはあらかじめＥＥＰＲＯＭ５７に登録しておくことができる。また観測時間ｓは、ＰＭプログラム１０５が提供するＧＵＩを通じてユーザが入力し、ＵＥＦＩファームウェアがＥＥＰＲＯＭ５７に登録しておくことができる。図６で説明した方法では、観測時間ｓのタイム・ウィンドウが設定されている間は、システム１０がサスペンド状態に遷移することはないため、システム１０が観測時間ｓの間電力アイドル状態に遷移しているときに移行条件が成立する。本発明は平均消費電力Ｐａｖを計算することに代えて、消費電力Ｐが電力アイドル状態の上限値Ｐｉｈ以下に遷移したときを開始時刻とする経過時間をＥＣ３３が計時し、消費電力Ｐが電力アイドル状態に観測時間ｓだけ滞留したと判断したときに移行条件が成立したとみなすこともできる。
【００６３】
［電力アイドル状態での第２のパワー・ステートの制御方法］
電力アイドル状態におけるシステム１０の消費電力Ｐが小さいほど、電力アイドル状態の深度は深いといえる。つぎに図７、図８を参照して、電力アイドル状態の深度に応じてサスペンド状態１６１に移行するまでの時間を変えながらパワー・ステートを制御する方法を説明する。図７ではシステム１０の消費電力Ｐが、図６と同じようにライン１７１のように低下している。
【００６４】
図８のブロック２０１でパワー・オン状態１５１のシステム１０の消費電力Ｐが時刻ｔ０で開始電力Ｐｓｔまで低下する。ブロック２０３でＥＣ３３は時刻ｔ０からタイマ５９を動作させて電力アイドル状態の監視を開始する。ＥＣ３３はタイマ５９が計時する時間に基づいて、時刻ｔ０からの観測時間がサンプリング周期ｔｓずつ長くなるような観測時間ｓ１から観測時間ｓｘまでのタイム・ウィンドウ１８１を設定し、各タイム・ウィンドウでの平均消費電力値Ｐａｖの計算を開始する。
【００６５】
ライン１８３は、基準電力値Ｐ１から下限値Ｐｉｌまで経過時間ｔに対して平均消費電力が低下する特性を備えた基準値を示す。ライン１８３の基準値は、システム１０の平均消費電力値Ｐａｖが小さいほど、電力アイドル状態に長い時間滞留してから移行条件が成立するように構成されている。基準電力値Ｐ１は、電力アイドル状態の上限値Ｐｉｈよりもわずかに小さい値に設定している。ブロック２０５、２０７でＥＣ３３は、最初に時刻ｔ０から時刻ｔ１までの観察時間ｓ１の間の平均消費電力値Ｐａｖ１を計算する。ブロック２０９でＥＣ３３は、観測時間ｓ１が終了した時刻ｔ１に対応する基準値Ｐ１と平均消費電力値Ｐａｖ１を比較する。平均消費電力値Ｐａｖ１が基準値Ｐ１よりも大きいときはブロック２１１に移行する。
【００６６】
ブロック２１１でＥＣ３３は、平均消費電力値Ｐａｖ１と上限値Ｐｉｈを比較する。平均消費電力値Ｐａｖ１が上限値Ｐｉｈよりも大きい場合はブロック２２５に移行し、小さい場合はブロック２１３で移行条件が成立したと判断する。ブロック２２１で、ＥＣはタイム・ウィンドウ１８１が最後の観測時間ｓｘのものであるか否かを判断する。
【００６７】
最後の観測時間ｓｘで計算した平均消費電力値Ｐａｖｘがブロック２０９で基準値よりも小さいと判断したことは、平均消費電力値Ｐａｖが電力アイドル状態の下限値Ｐｉｌよりも小さいことを意味している。最後の観測時間ｓｘの場合はブロック２２５でＥＣ３３は、電力アイドル状態の監視を終了してブロック２０３に戻る。その結果、パワー・オン状態１５１が維持される。ブロック２２１で最後の観測時間ｓｘでない場合はブロック２２３、ブロック２０７でつぎの観測時間ｓ２のタイム・ウィンドウで平均消費電力値Ｐａｖ２を計算する。
【００６８】
この方法では、平均消費電力値Ｐａｖが小さくて電力アイドル状態の深度が深いほど電力アイドル状態に遷移してからのパワー・オン状態１５１を維持する時間が長くなり、平均消費電力値Ｐａｖが大きくて深度が浅いほど短時間でサスペンド状態１６１に移行することになるので、クィック・レジュームの機会確保とバッテリィの消費量の低減を合理的に調和させることができる。最大の観測時間ｓｘは、一例で２時間とすることができる。ライン１８３の基準値はデータ・テーブルまたは数式の形式でＥＥＰＲＯＭ５７に格納しておくことができる。ライン１８３は直線で例示しているが指数関数などの曲線でもよい。ライン１８３の特性はクィック・レジュームの機会確保とバッテリィの消費量の低減のトレード・オフの調和ポリシーに基づいて画定することができる。
【００６９】
タイム・ウィンドウ１８１に代えて、同一の観測時間ｓで形成した図６のタイム・ウィンドウ１７３、１７５を利用してもよい。図６、図７、図８の手順で説明した電力アイドル状態におけるパワー・ステートの制御方法は、パワー・オン状態からの遷移先がサスペンド状態１６１だけでなくハイバネーション状態１６３またはソフト・オフ状態１５５に適用することもできる。また、サスペンド状態１６１に遷移してから一定の時間後にＵＥＦＩファームウェアが自動的にハイバネーション状態１６３に遷移させる場合は、一定の時間をゼロに設定しサスペンド状態１６１に遷移した後にただちにハイバネーション状態１６３に遷移させることができる。
【００７０】
［ドーズ・モードからサスペンド状態への移行手順］
つぎに、電力アイドル状態でドーズ・モード１５９からスリープ状態１５３またはソフト・オフ状態１５５に遷移する手順を図９のフローチャートに基づいて説明する。ブロック３０１ではシステム１０が通常モード１５７で動作している。ブロック３０３でユーザがＬＣＤ筐体を閉じるとリッド・センサ８３が動作し、チップ・セット１９がＣＰＵ１１に割り込みをかける。そして移行イベントがＯＳ１０７を通じてＰＭプログラム１０５に送られる。移行イベントを受け取ったＰＭプログラム１０５は、ＡＰＩ関数を呼び出してプロセス管理部１１３のプロセス・リスト１１５から現在生成されているすべてのプロセスの名称、プロセスＩＤおよびそれらの特権モードに関する情報を取得する。
【００７１】
現在生成されているプロセスはプロセス管理部１１３により、実行状態、実行可能状態、実行待ち状態、または強制サスペンド状態のいずれかの状態で管理されている。ＰＭプログラム１０５は、すべてのプロセスから強制サスペンドするプロセスを抽出し、それらのプロセスに対するＡＰＩ関数を呼び出して強制サスペンド状態に遷移させる。強制サスペンド状態に遷移したプロセスは実行を停止するのでＣＰＵ１１の使用率は低下する。
【００７２】
電源管理部１１２が検出したＣＰＵ１１の使用率に応じてＯＳ１０７はＣＰＵ１１の動作周波数および動作電圧の組を低下させる。さらに電源管理部１１２は、ＣＰＵ１１がアイドル状態になったり使用率が所定値以下になったりしたと判断したときは、ＣＰＵ１１をスリープ状態または処理速度が低い分だけより電力消費の低いＣｎステートに遷移させて消費電力を低下させる。ＰＭプログラム１０５は、ドーズ・モード１５９で特定の機能および基本機能を実現するのに必要な最小限のデバイスだけを動作させるために、チップ・セット１９を通じてスイッチ群８０を操作する。ブロック３０５でシステム１０はドーズ・モード１５９に移行する。
【００７３】
ドーズ・モード１５９に移行したあとも、ＥＣ３３は定期的にシステム１０の消費電力Ｐを監視している。ブロック３０７でＥＣ３３は、システム１０の消費電力Ｐが時刻ｔ０で開始電力Ｐｓｔまで低下したことを検出するとブロック３０９で図６〜図８を参照して説明した電力アイドル状態の監視を開始する。サスペンド状態１６１への移行条件が成立したときはブロック３１９に移行し、不成立のときはブロック３１３に移行する。移行条件が不成立であることは、平均消費電力値Ｐａｖが上限値Ｐｉｈより大きい場合、下限値Ｐｉｌより小さい場合、またはライン１８３の基準値を充足しない場合のいずれかである。
【００７４】
ブロック３１３でＥＣ３３は、平均消費電力値Ｐａｖと下限値Ｐｉｌを比較する。平均消費電力値Ｐａｖが下限値Ｐｉｌよりも小さいときはブロック３１５に移行し大きいときはブロック３１６に移行する。ブロック３１６でＥＣ３３は、平均消費電力値Ｐａｖと上限値Ｐｉｈを比較する。平均消費電力値Ｐａｖが上限値Ｐｉｈよりも小さい場合はブロック３０９に戻り大きい場合はブロック３１７に移行する。ブロック３０９に戻るのは、平均消費電力値Ｐａｖがライン１８３の基準値を充足しない場合である。ブロック３１７でＥＣ３３はタイマ５９をリセットして電力アイドル状態の監視を停止しブロック３０７に戻る。
【００７５】
ブロック３１５でＥＣ３３は、時刻ｔ０からの経過時間ｔが所定の時間ｔｏｕｔに到達したか否かを判断する。所定の時間は、図７の最大の観測時間ｓｘよりも十分に長い時間とする。平均消費電力値Ｐａｖが下限値Ｐｉｌよりも小さい場合は、ドーズ・モード１５９を維持してもよいが、所定の時間ｔｏｕｔを経過したときはサスペンド状態１６１に移行できるようにブロック３１９に移行する。ブロック３１５の手順によれば、ノートＰＣが放置されたときに所定の時間ｔｏｕｔ以上パワー・オン状態１５１が持続することでバッテリィが消耗することを防ぐことができる。経過時間ｔが所定の時間ｔｏｕｔを経過しない間はブロック３１６に戻る。
【００７６】
ブロック３１９でＥＣ３３は、サスペンド状態１６１に移行するための移行イベントをチップ・セット１９に設定する。チップ・セット１９がＣＰＵ１１に割り込みをかけることで移行イベントはＯＳ１０７経由でＰＭプログラム１０５に通知される。ＰＭプログラム１０５は、プロセス・リスト１１５から取得した現在実行されているプロセスが、ブラック・リストに登録されている重要なプログラムのプロセスを含むか否かを判断する。重要なプロセスが実行されている場合は、サスペンド状態１６１への移行を保留する。
【００７７】
重要なプロセスが実行されていないときはブロック３２１に移行する。ＰＭプログラム１０５はドーズ・モード１５９の間に強制サスペンドしていたプロセスをレジュームさせて実行可能状態に遷移させる。さらに停止していたデバイスの電力を復帰してシステム１０を通常モード１５７に移行させる。つづいてＰＭプログラム１０５がＯＳ１０７にサスペンド状態１６１に移行することを要求すると、ＯＳ１０７は動作中のデバイスや実行中のプログラムにコンテキストをシステム・メモリ１３に記憶するように要求する。
【００７８】
サスペンド状態１６１への移行準備が完了するとＯＳは、サスペンド状態１６１に移行するようにチップ・セット１９のレジスタを設定する。チップ・セット１９のレジスタに移行イベントが設定されると、ＥＣ３３はパワー・コントローラ８１を通じてＤＣ／ＤＣコンバータ７９を制御する。その結果、システム１０は通常モード１５７を経由してドーズ・モード１５９からサスペンド状態１６１に移行する。
【００７９】
通常モード１５７で動作しているときにも、ノートＰＣの負荷が軽くなるとシステム１０の消費電力Ｐは低下する。特に、新しいパワー・マネジメント手法が導入されてパワー・オン状態においてＣＰＵ１１がより深いスリープ状態に遷移し、さらに多くのデバイスがダイナミックに電力を停止するようになると、使用率アイドル状態を認識して省電力状態に移行する方法では、必要以上にクィック・レジュームの機会を喪失することになる。本発明ではブロック３０３、３０５の手順をスキップして、システム１０を直接通常モード１５７からサスペンド状態１６１に移行させることでクィック・レジュームの機会を確保することができる。
【００８０】
これまで、ドーズ・モード１５９または通常モード１５７からの移行先を、サスペンド状態１６１を例にして説明したが、移行先はハイバネーション状態１６３またはソフト・オフ状態１５５とすることもできる。また、ドーズ・モードへの移行のトリガはリッド・センサ８３ではなく、ＧＵＩの操作、キーボードのＦｎキーの押下、パワー・ボタン８５の押下、画面のオフとしてもよい。また、サスペンド状態１６１に移行したあとは、電池セット７３の残容量の低下、電力アイドル状態に遷移してからの所定時間の経過などでハイバネーション状態１６３またはソフト・オフ状態１５５に移行させることができる。これまでの説明ではＥＣ３３がサスペンド状態１６１への移行条件を判断する例を説明したが、移行条件は電池ユニット３７やＰＭプログラム１０５が判断するようにしてもよい。
【００８１】
システム１０が電池ユニット３７から電力の供給を受ける場合のパワー・ステートの制御方法を説明したが、本発明はノートＰＣがＡＣ／ＤＣアダプタ７７から電力の供給を受ける場合にも適用することができる。この場合、システム１０の消費電力Ｐを測定するときの電力源を一時的にＡＣ／ＤＣアダプタ７７から電池ユニット３７に切り換えると、電池ユニット３７の放電データからシステム１０の消費電力Ｐを取得することができる。あるいはＡＣ／ＤＣアダプタ７７とＤＣ／ＤＣコンバータ７９の間に接続した電力を検出するためのセンス抵抗からＥＣ３３が電力情報を送るようにした電力検出回路を設けてもよい。
【００８２】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【００８３】
１０  ノートＰＣのシステム
３３  エンベデッド・コントローラ（ＥＣ）
３７  電池ユニット
５０  ノートＰＣの電力ブロック
【図１】
2014137680.tif 000003
【図２】
2014137680.tif 000004
【図３】
2014137680.tif 000005
【図４】
2014137680.tif 000006
【図５】
2014137680.tif 000007
【図６】
2014137680.tif 000008
【図７】
2014137680.tif 000009
【図８】
2014137680.tif 000010
【図９】
2014137680.tif 000011