(58)【調査した分野】(Int.Cl.,DB名)
前記移行条件が、前記平均消費電力値が大きいときには前記平均消費電力値が小さいときに比べて前記平均消費電力値が前記第1の基準値より低下してから短い時間で成立する請求項1から請求項3のいずれかに記載の方法。
前記パワー・オン状態において、所定のプログラムが生成したプロセスを強制的にサスペンドし、かつ強制的にサスペンドした前記プロセスの実行に関連するデバイスの電源を停止するステップを有する請求項1から請求項4のいずれかに記載の方法。
前記パワー・オン状態が、前記システムが前記携帯式コンピュータの使用を中断するイベントを受け取ったときに所定のプロセスを強制的にサスペンドするドーズ・モードで動作する状態である請求項6または請求項7に記載の方法。
前記移行条件が、前記消費電力値が小さいほど前記消費電力値が前記第1の基準値より低下してから長い経過時間で成立する特性を備えている請求項11または請求項12に記載のコンピュータ。
前記コンピュータが電池ユニットを搭載する携帯式コンピュータで、前記計算部は前記電池ユニットの放電時のデータから前記コンピュータの消費電力を取得する請求項11から請求項13のいずれかに記載のコンピュータ。
【背景技術】
【0002】
コンピュータは電力源が存在するときに、システムがパワー・オン状態、スリープ状態またはソフト・オフ状態のいずれかのパワー・ステートに遷移する。システムはパワー・オン状態のときにだけ有用な処理をすることができるため、スリープ状態またはソフト・オフ状態のときはパワー・オン状態に遷移してから処理をする必要がある。スリープ状態にはさまざまな深度が定義されており、深度が深いほど消費電力は小さくなるとともにパワー・オン状態に遷移するまでの時間(レイテンシィ)が長くなる。ソフト・オフ状態ではほとんどのデバイスの電力が停止するため消費電力は最小になるがレイテンシィは最大になる。
【0003】
システムがパワー・オン状態のときに中央演算処理装置(CPU)およびその他のデバイス(以後、CPU以外のデバイスを単にデバイスという。)は、作業状態に応じてさまざまなパワー・ステートにダイナミックに遷移し消費電力の低減を図っている。システムがパワー・オン状態のときにCPUはアクティブ状態とスリープ状態の間を遷移し、システムがスリープ状態またはソフト・オフ状態のときに電力が停止して停止状態となる。デバイスはシステムがパワー・オン状態のときに、アクティブ状態、スリープ状態、または停止状態の間を遷移することができる。多くのデバイスはシステムがスリープ状態のときに停止する。
【0004】
CPUはアクティブ状態のときにプロセスを実行することができるが、スリープ状態のときには割り込みに応じてアクティブ状態に遷移してからプロセスを実行する。CPUのスリープ状態にも消費電力とレイテンシィの視点で深度が存在する。スリープ状態の深度が深いほど消費電力は低下するがレイテンシィは長くなる。OSおよびチップ・セットはCPUの使用率に応じてスリープ状態におけるCPUの深度を制御する。
【0005】
CPUはスリープ状態の深度に応じて、コアの電圧、クロック動作、クロック周波数、PLLの動作、キャッシュ・コンテキストのフラッシュなどの消費電力の要因となる項目を制御する。ここにCPUの使用率Yは、アイドル・プロセスのユーザ・モード時間の割合をUi、アイドル・プロセスのカーネル・モード時間の割合をKi、経過時間をEtとしたときに次の式で計算することができる。
Y=(1−(Ui+Ki)/Et)×100%
【0006】
CPUの使用率がほとんどゼロに近い状態を一般にアイドル状態というが、本明細書においてはこれを使用率アイドル状態ということにする。これまでシステムが使用率アイドル状態に遷移したときは、システムの消費電力が十分に小さいと考えられていた。しかしパワー・オン状態のときは各デバイスが独自のアルゴリズムで所定のパワー・ステートに遷移するため、使用率アイドル状態に移行してもシステムとしては一定の電力を消費している。一例では、使用率アイドル状態のときのシステムの消費電力は5W程度で、スリープ状態のときには110mW程度である。
【0007】
CPUには、コアの機能の他にメモリ・コントローラ機能やグラフィックス機能などが搭載されるようになり消費電力も一層増大する傾向にある。近年、インテル(登録商標)社は使用率アイドル状態におけるシステムの消費電力を低減するために、パワー・オン状態に複数のパワー・ステート(S0ix)を定義した新たなパワー・マネジメント手法を提唱している。その手法では、一層深いスリープ状態に遷移できるようなCPUを提供し、遅延可能な割り込みやDMAアクセスをまとめて行って使用率アイドル状態のときにCPUをできるだけ深いスリープ状態に遷移させる手法を取り入れたり、デバイスにも積極的に停止状態に移行することを要求したりする。
【0008】
マイクロソフト(登録商標)社は、システムの動作中にアイドル状態のデバイスの電力を下げるランタイム・アイドル状態検出またはS0アイドルの実装を推奨している。さらにはシステムが動作中にデバイスの電力を完全に停止する手法を提案している。この手法は一般にRuntime D3といわれることもある。ランタイム・アイドル状態検出では、パワー・オン状態でデバイスが従来よりも一層深いスリープ状態または停止状態まで遷移する。したがってこのようなパワー・オン状態における新しいパワー・マネジメント手法が導入されると、今後はシステムがパワー・オン状態のときにCPUの使用率が低下したりデバイスのアイドル時間が長くなったりするとシステムの消費電力がサスペンド状態のときの消費電力近くまで低下する。
【0009】
特許文献1は、オフィスから会議室に移動する場合に短時間だけLCD筐体を閉じたようなときに、無線の接続やチャット・アプリケーションの実行などの特定の機能を実現しながら通常モードより消費電力の少ないドーズ・モード(Doze Mode)に遷移させて、短時間で復帰させる発明を開示する。ドーズ・モードでは、多くのプロセスが強制サスペンド状態または実行待ち状態に遷移するためにCPUの使用率が低下してシステムの消費電力が低下する。また、ドーズ・モードでは特定の機能および基本機能を実現するのに必要な最小限のデバイスを除いた多くのデバイスの電力が停止する。したがってドーズ・モードでは、パワー・ステートはパワー・オン状態であるが消費電力は著しく小さい。
【0010】
特許文献2は、コンピュータがいずれかのスリープ状態に遷移している間に電源供給状態が変化したときに、スリープ状態の深度を変化させる発明を開示する。同文献には電源供給状態を、バッテリィの状態と外部電源の組み合わせで判断することが記載されている。また、同文献には、パワー・オン状態からスリープ状態への遷移は、ユーザがスリープ・ボタンを押したとき、またはACPI−OSがPCの一定時間のアイドル状態を検出したときに行われることが記載されている。
【発明を実施するための形態】
【0024】
[ハードウェア構成とパワー・ステート]
図1は、本実施の形態にかかるノートPCのシステム10を構成する主要なハードウェアを説明する機能ブロック図である。
図2は、システム10、CPU11およびデバイス群のパワー・ステートを説明する図である。
図3はノートPCの電力ブロック50の構成を説明する機能ブロック図である。本明細書の全体に渡って、同一の要素には同一の参照番号を付与する。システム10を搭載するノートPCは、表面にキーボードを搭載し内部に電子デバイスを収納したシステム筐体とLCD19を収納するLCD筐体とで構成される。LCD筐体はシステム筐体に対して開閉ができるように構成されている。
【0025】
図2においてシステム10は、ACPI(Advanced Configuration and Power Interface)の規格に規定されているパワー・オン状態に対応するS0ステート、スリープ状態に対応するS1ステート〜S4ステート、ソフト・オフ状態に対応するS5ステートに遷移する。システムはパワー・オン状態で、アプリケーションが生成したユーザ・モード・スレッドをCPU11にディスパッチして実行することができる。
【0026】
本実施の形態では、スリープ状態にシステム・メモリ13の記憶を保持するS3ステート(サスペンド状態)およびシステム・コンテキストをハードディスク・ドライブ(HDD)21に格納するS4ステート(ハイバネーション状態)だけを採用するが、他のスリープ状態を設けてもよい。スリープ状態には、OSがS3ステートに遷移させてから一定の時間が経過したのちにファームウェアROM27に格納されたUEFI(Unified Extensible Firmware Interface)ファームウェアが自動的に遷移させるS4ステートも含む。
【0027】
スリープ状態ではサスペンド状態、ハイバネーション状態、ソフト・オフ状態の順番にシステム10の消費電力は小さくなるがパワー・オン状態に復帰する際のレイテンシィは長くなる。CPU11はパワー・オン状態のときに、アクティブ状態に対応するC0ステートまたはスリープ状態に対応するC1ステート〜Cnステートに遷移する。nの数が大きくなるほど消費電力が低下しかつレイテンシィが長くなる。CPU11は、アクティブ状態のときにだけプロセスを実行できる。スリープ状態のCPU11は、割り込みがあったときにアクティブ状態に復帰してからプロセスを実行することができる。CPU11は、サスペンド状態、ハイバネーション状態またはソフト・オフ状態のときに電力が停止して停止状態に遷移する。
【0028】
デバイスは、システムがパワー・オン状態のときにアクティブ状態に対応するD0ステート、スリープ状態に対応するD1ステート、D2ステートおよび停止状態に対応するD3hotステート、D3offステートにダイナミックに遷移する。D1ステート、D2ステート、D3hotステート、D3offステートの順番にデバイスの消費電力が小さくなるがアクティブ状態に復帰する際のレイテンシィは長くなる。多くのデバイスは基本的にシステムがサスペンド状態、ハイバネーション状態のときにスリープ状態または停止状態に遷移し、ソフト・オフ状態のときにD3offステートに遷移する。なかには、スリープ状態のときにD0ステートを維持するデバイスも存在する。
【0029】
なお、デバイスによっては、D1ステート〜D3hotステートを定義していない場合があり、パワー・オン状態でどのパワー・ステートまで遷移するかはデバイスにより異なる。パワー・オン状態でデバイスは独自のアルゴリズムで所定のスリープ状態に遷移してよいが、インテル(登録商標)社またはマイクロソフト(登録商標)社が提唱する新しいパワー・マネジメントでは、パワー・オン状態で多くのデバイスがD3offステートまで遷移することになるため、システム10の消費電力は従来よりも大幅に低下する。
【0030】
ノートPCのハードウェア構成は当業者が容易に理解できるため簡単に説明する。CPU11には、システム・メモリ13、ビデオ・カード15およびチップ・セット19が接続される。ビデオ・カード15にはLCD17が接続される。CPU11は、アクティブ状態のときにたとえばインテル(登録商標)社のSpeedStep(登録商標)という技術を採用し、使用率に応じて動作周波数および動作電圧の組を所定の値に低下させることができる。
【0031】
CPU11はまた使用率の低下に応じて、コア電圧の低下、コア・クロックの停止、PLLの停止、キャッシュのシステム・メモリ13や専用メモリへのフラッシュなどを行ってスリープ状態の深度を変更し、割り込みがあったときには深度に応じたレイテンシィでアクティブ状態に遷移して命令を実行する。OSは、CPU11の動作状態や使用率を監視してチップ・セット19を通じてスリープ状態の深度を制御する。
【0032】
チップ・セット19は、USB(Universal Serial Bus)、シリアルATA(AT Attachment)、SPI (Serial Peripheral Interface)バス、 PCI(Peripheral Component Interconnect)バス、PCI−Expressバス、およびLPC(Low Pin Count)バスなどのコントローラを備えており複数のデバイスが接続される。
図1ではデバイスの例示として、HDD21、光学ディスク・ドライブ(ODD)23、USBポート25、ファームウェアROM27、無線カード29およびオーディオ・デバイス31を示している。チップ・セット19にはさらにリッド・センサ83およびパワー・ボタン85が接続されている。
【0033】
ファームウェアROM27は、UEFIフォーラムが策定したBIOSに代わってまたはBIOSに加えて使用する新しいシステム・ファームウェア(以後、UEFIファームウェアという。)を格納する。チップ・セット19には、さらにエンベデッド・コントローラ(EC)33が接続されている。EC33には、キーボード、ポインティング・デバイス、タッチパッドなどの入力デバイス35が接続される。EC33は
図3に示すように、CPU51、RAM53、ROM55、EEPROM57、タイマ59および入力デバイスのコントローラ61などで構成されたマイクロ・コンピュータである。
【0034】
ROM55には、本実施の形態にかかる電力アイドル状態でのパワー・ステートを制御するファームウェアが格納されている。EEPROM57は、
図6〜
図8を参照して説明する電力アイドル状態でのパワー・ステートの制御に使用する基準値や設定値などの制御データを格納する。EC33は、温度や電力などのノートPCの動作環境の管理にかかるプログラムをCPU11とは独立して実行することができる。
【0035】
EC33には、パワー・コントローラ81および電池ユニット37が接続されている。パワー・コントローラ81にはDC/DCコンバータ79が接続されている。パワー・コントローラ81はDC/DCコンバータ79を制御するワイヤード・ロジックのディジタル制御回路(ASIC)である。
【0036】
電池ユニット37は、CPU63、RAM65、ROM67、EEPROM69、タイマ71および電池セット73などで構成されている。電池ユニット37は、電池パックとして構成してシステム筐体のベイに装着したり、基板に実装してシステム筐体の内部に収納したりすることができる。CPU63は、電池セット73の残存容量の計算、充放電電流、充放電電圧の管理などを行う。
【0037】
電池セット73がシステム10に電力を供給するときは、放電電力がシステム10の消費電力となる。EC33はたとえば2秒といった周期で定期的にCPU63から電池セット73の放電電流を受け取ってシステム10の消費電力Pを計算する。EC33は消費電力Pから、
図6〜
図8で説明する観察時間sで平均したシステム10の平均消費電力Pavを計算する。なお、EC33は定期的にCPU63から放電電力を受け取るようにしてもよい。あるいは、CPU63がシステム10の平均消費電力Pavを計算して、EC33に送るようにしてもよい。
【0038】
DC/DCコンバータ79は独立して動作する複数のモジュールで構成されており、AC/DCアダプタ77または電池ユニット37から供給される直流電圧を、システム10を動作させるために必要な複数の電圧に変換し、さらにパワー・ステートに応じて定義された電力供給区分に基づいて各々のデバイスに電力を供給する。スイッチ群80は、パワー・オン状態のときにチップ・セット19からEC33経由で指示されたアイドル状態のデバイスやドーズ・モードのときに指示されたデバイスの電源を停止する。リッド・センサ83は、システム筐体に対するLCD筐体の開閉状態を検出する。パワー・ボタン85はシステム筐体に物理的に一体に結合するように取り付けられておりユーザが押下してパワー・ステートの操作をする。
【0039】
リッド・センサ83およびパワー・ボタン85は、チップ・セット19に信号を送って、システム10のパワー・ステートを変更するイベントを生成する。リッド・センサ83は、LCD筐体がシステム筐体に対して閉じられたときにドーズ・モードに移行する移行イベントを生成し開かれたときにドーズ・モードから通常モードにレジュームする復帰イベントを生成する。EC33は、チップ・セット19がイベントを生成したときにシステム10のパワー・ステートを変更する。AC/DCアダプタ77はDC/DCコンバータ79または充電器75に電力を供給する。充電器75は、電池セット73を充電する。
【0040】
[ソフトウェア構成]
図4は、システム10を構成する主要なソフトウェア100の構成を説明するための機能ブロック図である。ソフトウェア100はHDD21に格納されており、CPU11はこれらをシステム・メモリ13にロードして実行する。ソフトウェア100はパワー・オン状態の1つの動作モードであるドーズ・モード(
図5参照)をサポートする。第1グループのアプリケーション101は、ドーズ・モードのときにも維持する必要のある特定の機能または基本機能に関するプログラム群である。特定の機能は一例として、チャット・プログラムまたは無線接続を維持するために必要なプログラムを含む。基本機能は電池セット73の充電状態を監視する機能、電池セット73の残容量が低下したときに自動的にスリープ状態に遷移してシステム・メモリ13に展開されたデータの消失を防ぐ機能、および筐体内部の温度を管理する機能を含む。
【0041】
第2グループのアプリケーション103は、ドーズ・モードの間も停止できないプログラムで一例としてウィルス対策プログラムを含む。パワーマネジメント・プログラム(PMプログラム)105は、ドーズ・モードおよび本実施の形態にかかる電力アイドル状態でのパワー・マネジメントを実現するためのプログラムである。PMプログラム105は、ドーズ・モードへの移行イベントの検知、ドーズ・モードでのプロセスの制御、および通常モードへの復帰イベントの検知と通常モードへの復帰作業を行う。さらに、第1グループのアプリケーション101をユーザが選択したり電力アイドル状態でのパワー・ステートを制御するためにユーザが観察時間やタイムアウトの時間を設定したりするための画面をLCD17に表示する。
【0042】
PMプログラム105は、OS107を通じてEC33から、システム10が電力アイドル状態に滞留している間にサスペンド状態への移行条件が成立したことを示す通知を受け取ると、OS107にシステム10をスリープ状態に遷移させるように要求する。PMプログラム105は、第1グループのアプリケーション101および第2グループのアプリケーション103を認識して強制サスペンドするプログラムのプロセスを決定することができる。PMプログラム105は、電力アイドル状態でのパワー・ステートの制御において、スリープ状態へ移行させたくないプログラムのブラック・リストを保有する。PMプログラム105は、OS107を通じてEC33から移行条件が成立した通知を受け取った時点でブラック・リストに記述されたプログラムのプロセスが実行されているときは、スリープ状態への遷移を保留する。
【0043】
OS107は、API109、システム・プロセス生成部111、電源管理部112、およびプロセス管理部113を含んでいる。OS107は、CPU11の使用率および動作状態に応じてCPU11を所定の深度のスリープ状態に遷移させる。本発明の適用においては、パワー・オン状態でOS107がCPU11およびデバイス群のスリープ状態の深度をできるだけ深くできることが望ましい。OS107は一例としてWindows(登録商標)7または8とすることができる。
【0044】
システム・プロセス生成部111は、OS107を構成するさまざまなプログラムを実行するためのシステム・プロセスを生成する。電源管理部112は、CPU11の使用率、命令の実行状態および電源関係のイベントなどを監視して、デバイス・ドライバやその他のモジュールにデバイスを制御するための通知をする。電源管理部112は使用率アイドル状態の継続時間を計時するアイドル・タイマを含む。
【0045】
プロセス管理部113は、プロセス・リスト115、スケジューラ117、およびキュー119を含み、アプリケーションおよびシステム・プロセス生成部111が生成したプロセスおよびスレッドを管理する。プロセス・リスト115は、システム10が現在生成しているすべてのプロセスを登録する。スケジューラ117は、生成されているスレッドに対して所定のアルゴリズムでプリエンプティブなタスク・スイッチを行う。キュー119には、実行可能状態、実行待ち状態、または強制サスペンド状態のいずれかに遷移したプロセスがそれらの状態ごとに登録される。
【0046】
デバイス・ドライバ群125は、システム10のデバイス群に対応するように構成されている。デバイス・ドライバ群125は、リッド・センサ83が生成した通常モードからドーズ・モードへの移行イベントおよびドーズ・モードから通常モードへの復帰イベントをOS107に伝える。デバイス・ドライバ群125は、ドーズ・モードの間に強制サスペンドできないスレッドがHDD21に対して行ったI/Oリクエスト・パケットを登録するキューを含む。
【0047】
[パワー・ステートの状態遷移]
図5は、システム10のパワー・ステートの遷移を説明する図である。システム10のパワー・ステートは、パワー・オン状態151、スリープ状態153およびソフト・オフ状態155で構成されている。パワー・オン状態151は、通常モード157とドーズ・モード159で構成されている。スリープ状態153とソフト・オフ状態155を併せて省電力状態という。通常モード157は、ドーズ・モード159に対して対照的なパワー・オン状態151での通常の動作モードで、プロセスの実行やデバイスへの電力供給をPMプログラム105が制限しない動作モードをいう。
【0048】
ドーズ・モード159の詳細は特許文献1に開示されているが本発明に関連する範囲では以下の特徴を備えている。ドーズ・モード159では、プロセス・リスト115に登録されたプロセスが、強制サスペンド・グループとI/O監視グループに分類される。第1グループのアプリケーション101および第2グループのアプリケーション103以外のアプリケーションが生成したプロセスおよび第1グループのアプリケーション101または第2グループのアプリケーション103の実行に必要がないシステム・プロセスは強制サスペンド・グループに分類される。
【0049】
PMプログラム105は、強制サスペンド・グループのプロセスをキュー119に登録して強制サスペンド状態に遷移させる。ほとんどのアプリケーションが生成したプロセスは強制サスペンド状態に遷移するために、CPU11は使用率が低下して深いスリープ状態153に遷移することができるようになる。I/O監視グループのプロセスは、通常モード157と同じように実行可能状態または実行待ち状態に遷移するようにキュー119に登録される。
【0050】
CPU11はスケジューラ117のアルゴリズムに基づいてキュー119に登録されたプロセスを実行する。I/O監視グループのプロセスがHDD21にI/OアクセスをするためのI/Oリクエスト・パケットは、ドーズ・モード159の間デバイス・ドライバ群125のキューに登録し、I/Oリクエスト・パケットの処理完了通知がリクエストしたプロセスに戻らないようにすることで当該プロセスを実行待ち状態に遷移させることができる。その結果、ドーズ・モード159の間、HDD21はスピン・ダウンしたり電力を停止したりすることができるようになる。
【0051】
PMプログラム105は、ドーズ・モード159の間に維持する必要がある機能に関連のないデバイスの電力を停止することができる。PMプログラム105はチップ・セット19を通じてスイッチ群80を操作して所定のデバイス群の電力を停止する。電力を停止するデバイス群は一例として、HDD21、ODD23、USBポート25、オーディオ・デバイス31、およびLCD17などである。ドーズ・モード159ではCPU11の使用率が低下してその消費電力が低下するとともに、多くのデバイスの電力も停止するため通常モード157に比べて大幅にシステム10の消費電力が低下する。
【0052】
しかもドーズ・モード159の間はCPU11がスリープ状態であっても、通常モード157に復帰したときに短いレイテンシィでアクティブ状態に復帰して強制サスペンドを解除し、プロセス・リスト115に登録されたすべてのプロセスを短時間で実行できるようになる。通常モード157からドーズ・モード159への遷移は、LCD筐体を閉じてリッド・センサ83が動作したときに生成される移行イベントで行う。ドーズ・モード159から通常モード157への復帰は、ドーズ・モード159での所定時間の間にLCD筐体が開いてリッド・センサ83が動作したときに生成される復帰イベントで行うことができる。
【0053】
所定時間の間にLCD筐体が開かないときは、本発明にかかる電力アイドル状態でのパワー・ステートの制御方法により、パワー・オン状態151を維持したり、ドーズ・モード159からサスペンド状態161またはハイバネーション状態163へ移行したりする。通常モード157からサスペンド状態161、ハイバネーション状態163またはソフト・オフ状態への移行は、GUIの操作、キーボードのFnキーの押下、パワー・ボタン85の押下、またはリッド・センサ83の動作により行う。さらに、システム10の消費電力が低下したときには本発明にかかる電力アイドル状態でのパワー・ステートの制御方法で行う。サスペンド状態161、ハイバネーション状態163またはソフト・オフ状態155から通常モード157への移行は、パワー・ボタン85の押下またはリッド・センサ161の動作に基づいて行う。
【0054】
サスペンド状態161からハイバネーション状態163への遷移は、サスペンド状態161に遷移している時間が所定値を越えたとUEFIファームウェアが判断したときに、OSに認識させないでUEFIファームウェアが自動的に行う。ユーザはPMプログラム105を通じてサスペンド状態161に遷移している時間を設定する。その場合の通常モード157への復帰はリッド・センサ83の動作またはパワー・ボタン85の押下により、UEFIファームウェアが一旦サスペンド状態161まで復帰させたあとにOSが通常モード157に復帰させる。
【0055】
[電力アイドル状態とサスペンド制御]
本発明では、システム10をパワー・オン状態151からスリープ状態153またはソフト・オフ状態155に移行させるタイミングを判断するために、従来の使用率アイドル状態に代えて、システム10の消費電力に基づく電力アイドル状態という新しい概念を導入する。電力アイドル状態は、システム10の消費電力Pまたは平均消費電力Pavが所定の上限値Pih以下の状態をいう。さらに電力アイドル状態はシステム10の消費電力Pまたは平均消費電力Pavが上限値Pihと下限値Pilの間にある状態をいう。一例としてシステムの最大消費電力Pmaxが90Wのときに電力アイドル状態の上限値Pihは5Wで下限値Pilは500mWとすることができる。
【0056】
消費電力Pと平均消費電力Pavの違いは、電力を計算するときの平均時間の相違による。消費電力Pは電池ユニット37が放電時のデータから計測した値、または電池ユニット37から放電時のデータを取得したEC33が計算した値としている。平均消費電力Pavは、以下に説明する観測時間sの間の平均の消費電力とする。消費電力Pより平均消費電力Pavの方が平均する時間が長い。一例では、平均する時間が消費電力Pでは2秒間で平均消費電力Pavでは10分とする。消費電力Pは瞬間電力に近い値である。
【0057】
電力アイドル状態での範囲には使用率アイドル状態を含むことができるが、使用率アイドル状態でのシステム10の消費電力Pよりも一層小さい範囲にまで渡っている。一例として上限値Pihは、インテル(登録商標)社やマイクロソフト(登録商標)社が提唱する新たなパワー・マネジメントを導入しない場合における使用率アイドル状態での消費電力Pに設定することができる。また、下限値Pilはサスペンド状態におけるシステムの消費電力Pの5倍以下の値として設定することができる。
【0058】
[電力アイドル状態での第1のパワー・ステートの制御方法]
つぎに、電力アイドル状態におけるシステム10のパワー・ステートを制御する方法を、
図6を参照して説明する。
図6において、ライン171はパワー・オン状態151におけるシステム10の消費電力Pが時刻t0で開始電力Pstまで低下し、その後さらにPst以下に滞留している様子を示している。開始電力Pstは、電力アイドル状態の上限値Pihとすることができる。上限値Pihを使用率アイドル状態に設定する場合は、OS107がシステム10の使用率アイドル状態への遷移を認識した時点で時刻t0を設定することができる。なお、システム10の消費電力Pには、電力ブロック50を構成する要素が消費する電力も含む。
【0059】
時刻t0でEC33はタイマ59を動作させてシステム10の電力アイドル状態の監視を開始する。なお、EC33は消費電力Pが開始電力Pst以上に戻ったときにタイマ59をリセットして電力アイドル状態の監視を停止する。EC33は、タイマ59が計時する時間に基づいて観測時間sが時間軸上に連続するタイム・ウィンドウ173または時間移動平均を計算するように観測時間sがサンプリング周期tsで経過時間t方向にシフトするタイム・ウィンドウ175を設定する。
【0060】
EC33は、取得した消費電力Pに基づいて観測時間sごとの平均消費電力Pavを計算する。EC33は、平均消費電力Pavに対する基準値177を設定する。基準値177は、電力アイドル状態の上限値Pihおよび下限値Pilで構成している。EC33は、観測時間sについて計算した平均消費電力Pavが上限値Pihよりも大きいと判断したときは、システム10が停止できない状態にあるとみなしてパワー・オン状態を維持する。
【0061】
EC33は、平均消費電力Pavが上限値Pihと下限値Pilの間にあると判断したときは、クィック・レジュームの機会確保よりもバッテリィの消費量低減の方に高いウェートをおいてサスペンド状態161に移行させる。平均消費電力Pavが下限値Pil以下のときは、サスペンド状態161での平均消費電力P(S3)との差が小さいためにサスペンド状態161に移行させてもバッテリィの消費量低減効果が少ない。EC33は、平均消費電力Pavが下限値Pil以下であると判断したときはクィック・レジュームの機会確保を優先させてパワー・オン状態151を維持する。ちなみに一例として、サスペンド状態161での消費電力P(S3)は110mWで、ハイバネーション状態163での消費電力P(S4)は60mWである。
【0062】
開始電力Pst、サンプリング周期ts、上限値Pihおよび下限値PilはあらかじめEEPROM57に登録しておくことができる。また観測時間sは、PMプログラム105が提供するGUIを通じてユーザが入力し、UEFIファームウェアがEEPROM57に登録しておくことができる。
図6で説明した方法では、観測時間sのタイム・ウィンドウが設定されている間は、システム10がサスペンド状態に遷移することはないため、システム10が観測時間sの間電力アイドル状態に遷移しているときに移行条件が成立する。本発明は平均消費電力Pavを計算することに代えて、消費電力Pが電力アイドル状態の上限値Pih以下に遷移したときを開始時刻とする経過時間をEC33が計時し、消費電力Pが電力アイドル状態に観測時間sだけ滞留したと判断したときに移行条件が成立したとみなすこともできる。
【0063】
[電力アイドル状態での第2のパワー・ステートの制御方法]
電力アイドル状態におけるシステム10の消費電力Pが小さいほど、電力アイドル状態の深度は深いといえる。つぎに
図7、
図8を参照して、電力アイドル状態の深度に応じてサスペンド状態161に移行するまでの時間を変えながらパワー・ステートを制御する方法を説明する。
図7ではシステム10の消費電力Pが、
図6と同じようにライン171のように低下している。
【0064】
図8のブロック201でパワー・オン状態151のシステム10の消費電力Pが時刻t0で開始電力Pstまで低下する。ブロック203でEC33は時刻t0からタイマ59を動作させて電力アイドル状態の監視を開始する。EC33はタイマ59が計時する時間に基づいて、時刻t0からの観測時間がサンプリング周期tsずつ長くなるような観測時間s1から観測時間sxまでのタイム・ウィンドウ181を設定し、各タイム・ウィンドウでの平均消費電力値Pavの計算を開始する。
【0065】
ライン183は、基準電力値P1から下限値Pilまで経過時間tに対して平均消費電力が低下する特性を備えた基準値を示す。ライン183の基準値は、システム10の平均消費電力値Pavが小さいほど、電力アイドル状態に長い時間滞留してから移行条件が成立するように構成されている。基準電力値P1は、電力アイドル状態の上限値Pihよりもわずかに小さい値に設定している。ブロック205、207でEC33は、最初に時刻t0から時刻t1までの観察時間s1の間の平均消費電力値Pav1を計算する。ブロック209でEC33は、観測時間s1が終了した時刻t1に対応する基準値P1と平均消費電力値Pav1を比較する。平均消費電力値Pav1が基準値P1よりも大きいときはブロック211に移行する。
【0066】
ブロック211でEC33は、平均消費電力値Pav1と上限値Pihを比較する。平均消費電力値Pav1が上限値Pihよりも大きい場合はブロック225に移行し、小さい場合はブロック213で移行条件が成立したと判断する。ブロック221で、ECはタイム・ウィンドウ181が最後の観測時間sxのものであるか否かを判断する。
【0067】
最後の観測時間sxで計算した平均消費電力値Pavxがブロック209で基準値よりも小さいと判断したことは、平均消費電力値Pavが電力アイドル状態の下限値Pilよりも小さいことを意味している。最後の観測時間sxの場合はブロック225でEC33は、電力アイドル状態の監視を終了してブロック203に戻る。その結果、パワー・オン状態151が維持される。ブロック221で最後の観測時間sxでない場合はブロック223、ブロック207でつぎの観測時間s2のタイム・ウィンドウで平均消費電力値Pav2を計算する。
【0068】
この方法では、平均消費電力値Pavが小さくて電力アイドル状態の深度が深いほど電力アイドル状態に遷移してからのパワー・オン状態151を維持する時間が長くなり、平均消費電力値Pavが大きくて深度が浅いほど短時間でサスペンド状態161に移行することになるので、クィック・レジュームの機会確保とバッテリィの消費量の低減を合理的に調和させることができる。最大の観測時間sxは、一例で2時間とすることができる。ライン183の基準値はデータ・テーブルまたは数式の形式でEEPROM57に格納しておくことができる。ライン183は直線で例示しているが指数関数などの曲線でもよい。ライン183の特性はクィック・レジュームの機会確保とバッテリィの消費量の低減のトレード・オフの調和ポリシーに基づいて画定することができる。
【0069】
タイム・ウィンドウ181に代えて、同一の観測時間sで形成した
図6のタイム・ウィンドウ173、175を利用してもよい。
図6、
図7、
図8の手順で説明した電力アイドル状態におけるパワー・ステートの制御方法は、パワー・オン状態からの遷移先がサスペンド状態161だけでなくハイバネーション状態163またはソフト・オフ状態155に適用することもできる。また、サスペンド状態161に遷移してから一定の時間後にUEFIファームウェアが自動的にハイバネーション状態163に遷移させる場合は、一定の時間をゼロに設定しサスペンド状態161に遷移した後にただちにハイバネーション状態163に遷移させることができる。
【0070】
[ドーズ・モードからサスペンド状態への移行手順]
つぎに、電力アイドル状態でドーズ・モード159からスリープ状態153またはソフト・オフ状態155に遷移する手順を
図9のフローチャートに基づいて説明する。ブロック301ではシステム10が通常モード157で動作している。ブロック303でユーザがLCD筐体を閉じるとリッド・センサ83が動作し、チップ・セット19がCPU11に割り込みをかける。そして移行イベントがOS107を通じてPMプログラム105に送られる。移行イベントを受け取ったPMプログラム105は、API関数を呼び出してプロセス管理部113のプロセス・リスト115から現在生成されているすべてのプロセスの名称、プロセスIDおよびそれらの特権モードに関する情報を取得する。
【0071】
現在生成されているプロセスはプロセス管理部113により、実行状態、実行可能状態、実行待ち状態、または強制サスペンド状態のいずれかの状態で管理されている。PMプログラム105は、すべてのプロセスから強制サスペンドするプロセスを抽出し、それらのプロセスに対するAPI関数を呼び出して強制サスペンド状態に遷移させる。強制サスペンド状態に遷移したプロセスは実行を停止するのでCPU11の使用率は低下する。
【0072】
電源管理部112が検出したCPU11の使用率に応じてOS107はCPU11の動作周波数および動作電圧の組を低下させる。さらに電源管理部112は、CPU11がアイドル状態になったり使用率が所定値以下になったりしたと判断したときは、CPU11をスリープ状態または処理速度が低い分だけより電力消費の低いCnステートに遷移させて消費電力を低下させる。PMプログラム105は、ドーズ・モード159で特定の機能および基本機能を実現するのに必要な最小限のデバイスだけを動作させるために、チップ・セット19を通じてスイッチ群80を操作する。ブロック305でシステム10はドーズ・モード159に移行する。
【0073】
ドーズ・モード159に移行したあとも、EC33は定期的にシステム10の消費電力Pを監視している。ブロック307でEC33は、システム10の消費電力Pが時刻t0で開始電力Pstまで低下したことを検出するとブロック309で
図6〜
図8を参照して説明した電力アイドル状態の監視を開始する。サスペンド状態161への移行条件が成立したときはブロック319に移行し、不成立のときはブロック313に移行する。移行条件が不成立であることは、平均消費電力値Pavが上限値Pihより大きい場合、下限値Pilより小さい場合、またはライン183の基準値を充足しない場合のいずれかである。
【0074】
ブロック313でEC33は、平均消費電力値Pavと下限値Pilを比較する。平均消費電力値Pavが下限値Pilよりも小さいときはブロック315に移行し大きいときはブロック316に移行する。ブロック316でEC33は、平均消費電力値Pavと上限値Pihを比較する。平均消費電力値Pavが上限値Pihよりも小さい場合はブロック309に戻り大きい場合はブロック317に移行する。ブロック309に戻るのは、平均消費電力値Pavがライン183の基準値を充足しない場合である。ブロック317でEC33はタイマ59をリセットして電力アイドル状態の監視を停止しブロック307に戻る。
【0075】
ブロック315でEC33は、時刻t0からの経過時間tが所定の時間toutに到達したか否かを判断する。所定の時間は、
図7の最大の観測時間sxよりも十分に長い時間とする。平均消費電力値Pavが下限値Pilよりも小さい場合は、ドーズ・モード159を維持してもよいが、所定の時間toutを経過したときはサスペンド状態161に移行できるようにブロック319に移行する。ブロック315の手順によれば、ノートPCが放置されたときに所定の時間tout以上パワー・オン状態151が持続することでバッテリィが消耗することを防ぐことができる。経過時間tが所定の時間toutを経過しない間はブロック316に戻る。
【0076】
ブロック319でEC33は、サスペンド状態161に移行するための移行イベントをチップ・セット19に設定する。チップ・セット19がCPU11に割り込みをかけることで移行イベントはOS107経由でPMプログラム105に通知される。PMプログラム105は、プロセス・リスト115から取得した現在実行されているプロセスが、ブラック・リストに登録されている重要なプログラムのプロセスを含むか否かを判断する。重要なプロセスが実行されている場合は、サスペンド状態161への移行を保留する。
【0077】
重要なプロセスが実行されていないときはブロック321に移行する。PMプログラム105はドーズ・モード159の間に強制サスペンドしていたプロセスをレジュームさせて実行可能状態に遷移させる。さらに停止していたデバイスの電力を復帰してシステム10を通常モード157に移行させる。つづいてPMプログラム105がOS107にサスペンド状態161に移行することを要求すると、OS107は動作中のデバイスや実行中のプログラムにコンテキストをシステム・メモリ13に記憶するように要求する。
【0078】
サスペンド状態161への移行準備が完了するとOSは、サスペンド状態161に移行するようにチップ・セット19のレジスタを設定する。チップ・セット19のレジスタに移行イベントが設定されると、EC33はパワー・コントローラ81を通じてDC/DCコンバータ79を制御する。その結果、システム10は通常モード157を経由してドーズ・モード159からサスペンド状態161に移行する。
【0079】
通常モード157で動作しているときにも、ノートPCの負荷が軽くなるとシステム10の消費電力Pは低下する。特に、新しいパワー・マネジメント手法が導入されてパワー・オン状態においてCPU11がより深いスリープ状態に遷移し、さらに多くのデバイスがダイナミックに電力を停止するようになると、使用率アイドル状態を認識して省電力状態に移行する方法では、必要以上にクィック・レジュームの機会を喪失することになる。本発明ではブロック303、305の手順をスキップして、システム10を直接通常モード157からサスペンド状態161に移行させることでクィック・レジュームの機会を確保することができる。
【0080】
これまで、ドーズ・モード159または通常モード157からの移行先を、サスペンド状態161を例にして説明したが、移行先はハイバネーション状態163またはソフト・オフ状態155とすることもできる。また、ドーズ・モードへの移行のトリガはリッド・センサ83ではなく、GUIの操作、キーボードのFnキーの押下、パワー・ボタン85の押下、画面のオフとしてもよい。また、サスペンド状態161に移行したあとは、電池セット73の残容量の低下、電力アイドル状態に遷移してからの所定時間の経過などでハイバネーション状態163またはソフト・オフ状態155に移行させることができる。これまでの説明ではEC33がサスペンド状態161への移行条件を判断する例を説明したが、移行条件は電池ユニット37やPMプログラム105が判断するようにしてもよい。
【0081】
システム10が電池ユニット37から電力の供給を受ける場合のパワー・ステートの制御方法を説明したが、本発明はノートPCがAC/DCアダプタ77から電力の供給を受ける場合にも適用することができる。この場合、システム10の消費電力Pを測定するときの電力源を一時的にAC/DCアダプタ77から電池ユニット37に切り換えると、電池ユニット37の放電データからシステム10の消費電力Pを取得することができる。あるいはAC/DCアダプタ77とDC/DCコンバータ79の間に接続した電力を検出するためのセンス抵抗からEC33が電力情報を送るようにした電力検出回路を設けてもよい。
【0082】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。