(57)【特許請求の範囲】
【請求項１】
パフォーマンス・ステップの設定が可能なプロセッサを有し、基本プログラムおよびオペレーティング・システムで動作するコンピュータ装置において消費電力を制御する方法であって、
前記基本プログラムの動作環境下において所定の負荷値で前記プロセッサを動作させながら複数のパフォーマンス・ステップに設定するステップと、
それぞれのパフォーマンス・ステップに対応する前記コンピュータ装置の消費電力を測定するステップと、
前記測定された消費電力に基づいて前記コンピュータ装置を特定の消費電力で動作させるパフォーマンス・ステップを導出するステップと、
前記オペレーティング・システムの動作環境下において前記コンピュータ装置の消費電力を低減させるイベントが発生したときに、前記プロセッサを前記導出されたパフォーマンス・ステップで動作させるステップとを有する消費電力の制御方法。
【請求項２】
前記イベントが前記コンピュータ装置をＡＣ駆動からバッテリー駆動に変更させるときに発行される請求項１記載の制御方法。
【請求項３】
前記イベントが前記コンピュータ装置の温度が上昇したときに発行される請求項１記載の制御方法。
【請求項４】
前記基本プログラムがＢＩＯＳプログラムである請求項１記載の消費電力の制御方法。
【請求項５】
前記所定の負荷値のプログラムが前記プロセッサを前記コンピュータ装置において許容される最大消費電力で動作させるプログラムである請求項１記載の制御方法。
【請求項６】
パフォーマンス・ステップの設定が可能なプロセッサを有し、基本プログラムおよびオペレーティング・システムで動作するコンピュータ装置において消費電力を制御する方法であって、
前記基本プログラムの動作環境下において前記コンピュータ装置で許容される最大負荷値より小さい複数の負荷値で前記プロセッサを動作させるステップと、
それぞれの負荷値において複数のパフォーマンス・ステップを設定し、それぞれのパフォーマンス・ステップに対応する前記コンピュータ装置の消費電力を測定するステップと、
前記測定された消費電力に基づいて前記プロセッサが前記最大負荷値で動作するときに前記コンピュータ装置を特定の消費電力で動作させるパフォーマンス・ステップを推定するステップと、
前記オペレーティング・システムの動作環境下において前記コンピュータ装置の消費電力を低減させるイベントが発生したときに、前記プロセッサを前記推定されたパフォーマンス・ステップで動作させるステップとを有する消費電力の制御方法。
【請求項７】
前記パフォーマンス・ステップを推定するステップが、前記測定された消費電力を１次式に近似するステップを含む請求項６記載の消費電力の制御方法。
【請求項８】
パフォーマンス・ステップの設定が可能なプロセッサを有し、基本プログラムおよびオペレーティング・システムで動作するコンピュータ装置において消費電力を制御する方法であって、
前記基本プログラムの動作環境下において複数の負荷値で前記プロセッサを動作させるステップと、
それぞれの負荷値において複数のパフォーマンス・ステップを設定し、それぞれのパフォーマンス・ステップに対応する前記コンピュータ装置の消費電力を測定するステップと、
前記測定された消費電力に基づいて前記コンピュータ装置を特定の消費電力で動作させることが可能な前記パフォーマンス・ステップと負荷値との関係を推定した推定パフォーマンスを生成するステップと、
前記オペレーティング・システムの動作環境下において前記プロセッサの負荷値を測定するステップと、
前記測定した負荷値と前記推定パフォーマンスに基づいて、前記コンピュータ装置のパフォーマンス・ステップを変更するステップと
を有する消費電力の制御方法。
【請求項９】
コンピュータ装置に搭載されるＢＩＯＳプログラムであって、
パフォーマンス・ステップの設定が可能なプロセッサに、
所定の負荷値で前記プロセッサを動作させながら複数のパフォーマンス・ステップに設定するステップと、
それぞれのパフォーマンス・ステップに対応する前記コンピュータ装置の消費電力を測定するステップと、
前記測定された消費電力に基づいて前記コンピュータ装置を特定の消費電力で動作させるパフォーマンス・ステップを導出するステップと
を実行させるＢＩＯＳプログラム。
【請求項１０】
コンピュータ装置に搭載されるＢＩＯＳプログラムであって、
パフォーマンス・ステップの設定が可能なプロセッサに、
複数の負荷値で前記プロセッサを動作させるステップと、
それぞれの負荷値において複数のパフォーマンス・ステップを設定し、それぞれのパフォーマンス・ステップに対応する前記コンピュータ装置の消費電力を測定するステップと、
前記測定された消費電力に基づいて前記コンピュータ装置を特定の消費電力で動作させることが可能な前記パフォーマンス・ステップと負荷値との関係を推定した推定パフォーマンスを生成するステップと
を実行させるＢＩＯＳプログラム。
【請求項１１】
パフォーマンス・ステップの設定が可能なプロセッサを有し、基本プログラムおよびオペレーティング・システムで動作するコンピュータ装置であって、
前記プロセッサに、
前記基本プログラムの動作環境下において所定の負荷値で前記プロセッサを動作させながら複数のパフォーマンス・ステップに設定するステップと、
それぞれのパフォーマンス・ステップに対応する前記コンピュータ装置の消費電力を測定するステップと、
前記測定された消費電力に基づいて前記コンピュータ装置を特定の消費電力で動作させるパフォーマンス・ステップを導出するステップとを実行させるプログラムを記憶した不揮発性半導体メモリと、
前記プロセッサに、
前記オペレーティング・システムの動作環境下において前記コンピュータ装置の消費電力を低減させるイベントが発生したときに、前記プロセッサを前記導出されたパフォーマンス・ステップで動作させるステップを実行させるプログラムを記憶した記録媒体と
を有するコンピュータ装置。
【請求項１２】
パフォーマンス・ステップの設定が可能なプロセッサを有し、基本プログラムおよびオペレーティング・システムで動作するコンピュータ装置であって、
前記プロセッサに、
前記基本プログラムの動作環境下で複数の負荷値で前記プロセッサを動作させるステップと、
それぞれの負荷値において複数のパフォーマンス・ステップを設定し、それぞれのパフォーマンス・ステップに対応する前記コンピュータ装置の消費電力を測定するステップと、
前記測定された消費電力に基づいて前記コンピュータ装置を特定の消費電力で動作させることが可能な前記パフォーマンス・ステップと負荷値との関係を推定した推定パフォーマンスを生成するステップとを実行させるプログラムを記憶した不揮発性半導体メモリと、
前記プロセッサに、
前記オペレーティング・システムの動作環境下において前記プロセッサの負荷値を測定するステップと、
前記測定した負荷値と前記推定パフォーマンスに基づいて、前記コンピュータ装置のパフォーマンス・ステップを変更するステップとを実行させるプログラムを記憶した記録媒体と
を有するコンピュータ装置。
【請求項１３】
基本プログラムおよびオペレーティング・システムで動作するコンピュータ装置であって、
パフォーマンス・ステップの設定が可能なプロセッサと、
前記基本プログラムの動作環境下において所定の負荷値で前記プロセッサを動作させながら複数のパフォーマンス・ステップに設定し、それぞれのパフォーマンス・ステップに対応する前記コンピュータ装置の消費電力を測定する測定手段と
前記測定された消費電力に基づいて前記コンピュータ装置を特定の消費電力で動作させるパフォーマンス・ステップを導出する導出手段と、
前記オペレーティング・システムの動作環境下において前記コンピュータ装置の消費電力を低減させるイベントが発生したときに、前記プロセッサを前記導出されたパフォーマンス・ステップで動作させる制御手段と
を有するコンピュータ装置。
【請求項１４】
前記測定手段が、前記プロセッサ単体の消費電力を測定する請求項１３記載のコンピュータ装置。
【請求項１５】
前記コンピュータ装置を起動するときに、前記コンピュータ装置の入出力装置の動作が停止した状態で、前記測定手段が前記コンピュータ装置の消費電力を測定する請求項１３記載のコンピュータ装置。
【請求項１６】
前記基本プログラムの動作環境下において前記コンピュータ装置を起動するときに前記パフォーマンス・ステップの導出を行うか否かについてユーザの選択を入力させる入力手段をさらに有する請求項１５記載のコンピュータ装置。
【請求項１７】
前記パフォーマンス・ステップの導出を最初に行ったときに測定された特定のパフォーマンス・ステップにおける前記コンピュータ装置の消費電力を記憶する不揮発性記憶手段をさらに有し、
その後前記コンピュータ装置を起動するときに、前記基本プログラムの動作環境下で、前記不揮発性記憶手段に記憶された前記特定の負荷およびパフォーマンスにおける前記コンピュータ装置の消費電力を再び測定し、前記不揮発性記憶手段に記憶された消費電力と前記再び測定された消費電力との差が一定値以下であることを確認する請求項１５記載のコンピュータ装置。
【請求項１８】
基本プログラムおよびオペレーティング・システムで動作するコンピュータ装置であって、
パフォーマンス・ステップの設定が可能なプロセッサと、
前記基本プログラムの動作環境下において複数の負荷値で前記プロセッサを動作させ、それぞれの負荷値において複数のパフォーマンス・ステップを設定し、それぞれのパフォーマンス・ステップに対応する前記コンピュータ装置の消費電力を測定する測定手段と、
前記測定された消費電力に基づいて前記コンピュータ装置を特定の消費電力で動作させることが可能な前記パフォーマンス・ステップと負荷値との関係を推定した推定パフォーマンスを生成する生成手段と、
前記オペレーティング・システムの動作環境下において前記プロセッサの負荷値を測定する測定手段と、
前記測定した負荷値と前記推定パフォーマンスに基づいて、前記コンピュータ装置のパフォーマンス・ステップを変更する変更手段と
を有するコンピュータ装置。
【請求項１９】
パフォーマンス・ステップの設定が可能なプロセッサを有し、基本プログラムおよびオペレーティング・システムで動作するコンピュータ装置において消費電力を制御する方法であって、
オペレーティング・システムの動作環境下で前記コンピュータ装置を前記基本プログラムの動作環境に相当する消費電力状態に維持するステップと、
前記消費電力が維持されたオペレーティング・システムの動作環境下において所定の負荷値で前記プロセッサを動作させながら複数のパフォーマンス・ステップに設定するステップと、
それぞれのパフォーマンス・ステップに対応する前記コンピュータ装置の消費電力を測定するステップと、
前記測定された消費電力に基づいて前記コンピュータ装置を特定の消費電力で動作させるパフォーマンス・ステップを導出するステップと、
前記消費電力状態が維持されたオペレーティング・システムの動作環境を通常のオペレーティング・システムの動作環境に変更し、前記コンピュータ装置の消費電力を低減させるイベントが発生したときに、前記プロセッサを前記導出されたパフォーマンス・ステップで動作させるステップとを有する消費電力の制御方法。
【請求項２０】
前記消費電力状態に維持するステップが、前記コンピュータ装置の全ての入出力装置および周辺装置の動作を停止し、前記コンピュータ装置へのユーザからの操作の受け付けを禁止し、前記コンピュータ装置外部からのイベントの発生を禁止し、前記プロセッサのマルチ・タスクでの動作を禁止するステップを含む請求項１９記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサのパフォーマンス・ステップを変更してコンピュータの消費電力を制御する技術に関し、さらに詳細には必要以上にパフォーマンス・ステップを低下させないで消費電力を抑制する技術に関する。
【背景技術】
【０００２】
パーソナル・コンピュータ（以下ＰＣという）は、筐体の内部にＣＰＵ、ビデオ・カードなどの多くのデバイスを搭載している。ノート・ブック型ＰＣ（以下ノートＰＣという）では、各々のデバイスはＡＣアダプタもしくはバッテリー・パックなどの直流電源から電力の供給を受けて動作する。ノートＰＣは、商用電源から電力の供給を受けられる場所では、商用電源に接続されたＡＣアダプタから電力の供給を受けて動作することができる（以下、この状態をＡＣ駆動という）。また、充電されたバッテリー・パックを装着すれば、商用電源から電力の供給を受けられない場所であっても、当該バッテリー・パックから電力の供給を受けて動作することができる（以下、この状態をバッテリー駆動という）。
【０００３】
ＰＣの中で、最も多くの電力を消費するデバイスはＣＰＵである。近年はＣＰＵの動作周波数の高周波化が進んでおり、それに伴ってＣＰＵの消費電力も増大している。ノートＰＣで高い動作周波数のＣＰＵを使用すると、消費電力が大きくなるので、バッテリー駆動において、ＡＣ駆動では問題にならなかった動作時間の問題が新たに生じてくる。ノートＰＣをバッテリー駆動で連続して長時間動作させるために、ノートＰＣの電子デバイスの中で最も消費電力の大きいＣＰＵのパフォーマンスを制限することが一般に行われている。なお、ＣＰＵのパフォーマンスはＣＰＵが所定の作業を処理するために必要とする時間で評価されるが、これはＣＰＵの動作周波数に比例する。ＣＰＵの消費電力は、動作周波数に比例するために、ＣＰＵの動作周波数を制御することで消費電力を制御することができる。
【０００４】
ＣＰＵの動作周波数を制御する技術として、スピード・ステップ（SpeedStep、登録商標）が知られている。スピード・ステップは米国インテル社が開発した、ＣＰＵの動作電圧および動作周波数の値を自由に設定できる技術である。その際に許可される最大の動作周波数を外部から指定することにより、実際に当該ＣＰＵが動作する周波数を低減することが可能である。ＣＰＵの動作周波数を低減すれば、動作周波数に連動して決定されるＣＰＵの動作電圧も当該動作周波数でＣＰＵを動作させるのに必要な値まで低減され、これによってＣＰＵの消費電力は一層低減される。スピード・ステップでは、最も低い最大動作周波数は、最も高い最大動作周波数のおよそ半分程度となる。（以下、ＣＰＵの動作周波数と、動作周波数に連動して決定される動作電圧との組み合わせをパフォーマンス・ステップという。）
【０００５】
また、オペレーティング・システム（以後ＯＳという）がＰＣの消費電力を制御する規格として、ＡＣＰＩ（Advanced Configuration and Power Interface）が知られている。この規格は、ＯＳがＢＩＯＳと連携してＰＣを構成する各部品の消費電力を管理するための統一された方式として米国インテル社、米国マイクロソフト社および株式会社東芝が中心になって策定したものであり、電源のオン／オフ、サスペンド／レジューム、ファンの制御など、各部品の消費電力の制御にまつわる様々な機能および動作をＯＳが中心となって細かく設定・管理できるものである。２０００年に公表されたバージョン２．０から、ＡＣＰＩはスピード・ステップによるＣＰＵのパフォーマンス・ステップの低減に正式に対応している。
【０００６】
なお、ＣＰＵの消費電力を制御する技術として、以下のような文献がある。特許文献１は、ＣＰＵを一時的に高パフォーマンスの動作モードに切り替え、その後低パフォーマンスの動作モードに切り替えることにより、放電電力の小さいバッテリーを用いたＰＣであっても高いパフォーマンスを得る技術を開示する。特許文献２はＰＣの消費電力が低下するとＣＰＵクロックを１／２分周器から供給し、消費電力が上昇するとＣＰＵクロックを最大動作とする技術を開示する。また、ＰＣの電源投入時に行われる自己診断テストの技術に関する文献としては、エラーの発生回数を判定してハードウェアを安定化する技術を開示する特許文献３がある。
【特許文献１】特開２００５−１８２５２２号公報
【特許文献２】特開平１０−２４０３７３号公報
【特許文献３】特開２００１−１９５２７７号公報
【０００７】
図１１は、ノートＰＣの消費電力の構成について示す図である。ノートＰＣの消費電力は、大きく分けてＣＰＵによって消費される電力５０１と、ＣＰＵ周辺のシステムによって消費される電力５０３と、さらにノートＰＣの筐体の内外に接続された多くの入出力機器および周辺機器によって消費される電力５０５とに分かれる。ＣＰＵ周辺のシステムによって消費される電力５０３には、ＤＣ−ＤＣコンバータでのロス、配線パターンでのロス、およびバスやコントローラなどでの消費電力などが含まれる。特にＤＣ−ＤＣコンバータでのロス、および配線パターンでのロスは、ＣＰＵ周辺のシステムによって消費される電力５０３の中で多くの割合を占め、またＣＰＵの消費電力５０１の変動に合わせて変動する。ちなみにバスやコントローラなどでの消費電力は、ＤＣ−ＤＣコンバータでのロスおよび配線パターンでのロスに比べて小さい。ＣＰＵ周辺のシステムによって消費される電力５０３は、ＣＰＵの消費電力５０１の変動に従って増減する。
【０００８】
従って、前述のスピード・ステップを利用してパフォーマンス・ステップを変更することにより、ＣＰＵによって消費される電力５０１と、ＣＰＵ周辺のシステムによって消費される電力５０３を制御することができる。以下、電力５０１と電力５０３の合計をシステム消費電力５０７という。一方、入出力機器および周辺機器によって消費される電力５０５は、当該機器の動作状況に応じて変動するが、電力値の制御はできない。このため、ノートＰＣの合計消費電力５０９の最大値を特定の値に制限する必要がある場合、要求される電力５０９の最大値から電力５０５の供給可能な最大値を引いた値以下にシステム消費電力５０７が収まるように、ＣＰＵのパフォーマンス・ステップを低減してシステム消費電力５０７を制御する必要がある。
【０００９】
図１２は、ＣＰＵが最大の電力を消費するようなプログラムを実行している状態において、ＣＰＵの各々のパフォーマンス・ステップに対するシステム消費電力５０７を示すグラフの一例である。従来のノートＰＣで行われている消費電力の低減手法では、ノートＰＣがＡＣ駆動からバッテリー駆動となった場合、ノートＰＣ全体の消費電力を所定の値まで制限するためにシステム消費電力５０７に対して上限となるべき値が設定される。システム消費電力５０７が最大となるときは、ＣＰＵが当該ノートＰＣで許容される最大の電力を消費するようなプログラムを実行している状態のときである。そのため、図１２に示したグラフから、システム消費電力５０７に対する特定の上限値が設定された場合に設定すべきパフォーマンス・ステップが導出される。たとえばシステム消費電力を８０Ｗ以内に制限する必要がある場合、図１２のグラフではシステム消費電力８０Ｗに対応する動作周波数は約２．３７ＧＨｚであるため、ＣＰＵのパフォーマンス・ステップを動作周波数２．３７ＧＨｚ以内に制限すればシステム消費電力８０Ｗ以内という要求を達成できる。
【００１０】
なお、ここでいうＣＰＵに対する当該ノートＰＣで許容される最大の消費電力とは、ＣＰＵが定格最大消費電力のときであるとは限らない。ＡＣアダプタの容量、廃熱能力といった設計上の他の制約条件を満たすためにＣＰＵを定格最大消費電力の９０％程度の消費電力で動作させる場合のときもある。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従来、図１２のグラフで示したようなシステム消費電力５０７に対するパフォーマンス・ステップの上限値は、ＣＰＵを含むノートＰＣの各々の構成部品の部品メーカーから開示された仕様値、または当該ノートＰＣの開発段階のサンプル製品で実測されたパフォーマンス・ステップに対する消費電力の特性値などから導出されていた。しかしながら従来は、実際のＣＰＵの消費電力の値が、ＣＰＵの消費電力に対する仕様値と異なることが多かった。たとえば、消費電力の仕様値が８８ＷとされているＣＰＵであっても、実際に消費電力を測定すると同一種類のＣＰＵの中でも７９〜８９Ｗ程度の範囲でばらつくことがある。また、必要なパフォーマンス・ステップに対する仕様値が十分に開示されない場合もある。
【００１２】
そのため従来は、バッテリー駆動に対して設定されたシステム消費電力の上限値を、同一種類の製品内での特性のバラツキ、およびサンプル製品と実際の製品との違いなどを見込んだマージンの分だけ、低い値に設定せざるを得なかった。これでは、ノートＰＣの実際の製品のシステム消費電力が上限を超えないパフォーマンス・ステップよりも、さらに低いパフォーマンス・ステップにＣＰＵが設定されることになる。たとえば図１２のグラフに示した例では、システム消費電力を８０Ｗ以内に抑えるという要求に対して、前述のように消費電力に１０Ｗ前後のばらつきのあるＣＰＵでは、その分を見込んで１０Ｗのマージン６０１を考慮し、要求されたシステム消費電力８０Ｗよりもマージンの分だけ低い７０Ｗに対応する２．１５ＧＨｚ以内にパフォーマンス・ステップを設定していた。しかし、大部分のＣＰＵでは消費電力の仕様値と実際の値の差がマージンとして見込まれた分よりも小さい。このため、本来はパフォーマンス・ステップをもっと高い値に設定できるにもかかわらず、一様にマージンの分だけ低いパフォーマンス・ステップに設定されてしまい、パフォーマンス・ステップの過大な低下６０３が発生することになる。
【００１３】
この問題を解決するためには、個々のノートＰＣで、パフォーマンス・ステップに対するシステム消費電力５０７などのような特性値を測定することが考えられる。前述のマージンは特性のバラツキによるものであるので、個々のノートＰＣでそのような特性値を実測できれば、マージンを考慮する必要はなくなる。従って、当該ノートＰＣでシステム消費電力５０７の上限が要求値を超えないパフォーマンス・ステップを導出して設定する際に、パフォーマンス・ステップを過大に低下させることがなくなる。また、多くのＰＣは電源や温度などの動作環境をＣＰＵと独立して制御するエンベデッド・コントローラを装備しており、エンベデッド・コントローラにはノートＰＣ全体の消費電力５１１を測定する手段が標準的に装備されている。この消費電力測定手段を利用してパフォーマンス・ステップに対するシステム消費電力などを測定することが可能である。
【００１４】
しかし、ノートＰＣ全体の消費電力５１１は、図１１で示したように入出力機器および周辺機器によって消費される電力５０５が含まれる。測定されたノートＰＣ全体の消費電力５１１の中で、システム消費電力５０７とそれ以外の消費電力５０５とを区別する方法は従来なかった。さらに、ＯＳの動作環境下でノートＰＣが起動している場合、ＣＰＵを含めた当該ノートＰＣを構成している全ての機器および部品が相互にアクセスしつつ動作し、そのたびに動作状況が大きく変動する。また、ＯＳが起動した直後から、ユーザの操作やネットワークからのアクセスなどによるイベントが頻繁に発生し、そのたびに動作状況が大きく変動する。さらにＯＳの動作環境下ではＣＰＵの動作がマルチ・タスクであることも、動作状況の変動を激しくしている。従って、ノートＰＣ全体の消費電力５１１も、ＣＰＵ単体の消費電力５０９も、動作状況に応じて激しく変動する。そのため、パフォーマンス・ステップの設定に利用できる消費電力を正確に把握することが困難であった。
【００１５】
そこで本発明の目的は、ＣＰＵのパフォーマンスを必要以上に低下させないでＰＣの消費電力を測定するプログラム、当該プログラムを実行して消費電力を制御する方法およびそのような制御方法を採用したコンピュータ装置を提供することにある。
【課題を解決するための手段】
【００１６】
本発明に係る消費電力の制御方法は、パフォーマンス・ステップの設定が可能なＣＰＵ（プロセッサ）を持ち、基本プログラムまたはオペレーティング・システムで動作するコンピュータ装置に適用される。まず、基本プログラムの動作環境下でＣＰＵを複数のパフォーマンス・ステップで動作させ、コンピュータ装置の消費電力を測定する。基本プログラムの動作環境であれば、入出力機器および周辺機器は動作せず、ユーザからの操作などによるイベントも発生しない。そして、ＣＰＵの他の機器および部品へのアクセスが、エンベデッド・コントローラ、最低限のバス、電源装置など、ＣＰＵ周辺の消費電力の小さい最低限のデバイスに限定される。さらに、ＣＰＵがシングル・タスクでの動作となるので、別のタスクが動作することに起因する測定値への影響も排除できる。そのため、この状態でコンピュータ装置の消費電力を測定すれば、測定された値がそのままシステム消費電力となる。
【００１７】
この環境で、ＣＰＵに対して所定の負荷値をかけて、複数のパフォーマンス・ステップで動作させれば、各々のパフォーマンス・ステップに対するシステム消費電力が測定できる。測定されたシステム消費電力は、当該コンピュータ装置に対して有効な特性値であるので、特性のバラツキなどによるマージンを考慮する必要はない。従って、そこから導出される当該コンピュータ装置を特定の消費電力で動作させるために必要なＣＰＵのパフォーマンス・ステップは、マージンの影響が排除され、必要以上にパフォーマンスを低下させないものとなる。あとは導出されたパフォーマンス・ステップをＯＳに通知し、コンピュータ装置を特定の消費電力で動作させるイベントが発生したときに通知されたパフォーマンス・ステップに基づいてＣＰＵを動作させればよい。このイベントは、たとえばコンピュータ装置がＡＣ駆動からバッテリー駆動に変更したとき、あるいはコンピュータ装置の温度が上昇したときなどに発生する。
【００１８】
なお、ここでいう基本プログラムとは、ＯＳを起動する前にＰＣの初期化および各種設定を行い、ＰＣを構成する各デバイスの制御を行うものである。この基本プログラムは、通常はＢＩＯＳ（Basic Input/Output System）プログラムを指すが、ＢＩＯＳの後継技術として開発が行われているＥＦＩ（Extensible Firmware Interface）などのプログラムも含む。また、ここでいうパフォーマンス・ステップは、ＣＰＵの動作周波数、および動作周波数に連動して決定される動作電圧などを含む。そして、基本プログラムの環境でＣＰＵを所定の負荷値で動作させるには、ＣＰＵをコンピュータ装置で許容される最大の消費電力で動作させるプログラムを使用する。
【００１９】
ただし、電力や熱に対する制約などにより、ＣＰＵに対して最大の負荷値をかけて動作させることが望ましくない場合がある。そのような場合は、最大の負荷値より低い複数の負荷値でＣＰＵを動作させて、各々の負荷でコンピュータ装置の消費電力を測定し、測定された値からＣＰＵが最大の負荷であるときの消費電力を推定することが可能である。また、測定されたコンピュータ装置の消費電力を容易に計算できる１次式に近似すれば、ＣＰＵが最大の負荷であるときの消費電力を容易に推定できる。あとは前述と同様に、推定された値に基づいてＣＰＵのパフォーマンス・ステップを導出すればよい。
【００２０】
基本プログラムの環境でＣＰＵに対するそれぞれ複数の負荷値およびパフォーマンス・ステップを設定して、消費電力を測定することにより、コンピュータ装置を特定の消費電力で動作させることが可能なパフォーマンス・ステップと負荷値との関係を表す推定パフォーマンスを生成することも可能である。多くのＰＣでは、標準的に装備されている手段およびメソッドに基づいてＣＰＵの負荷値を測定することが可能である。コンピュータ装置の消費電力が特定の値を超えないようにするために、この測定された負荷値を利用し、生成された推定パフォーマンスに基づいてパフォーマンス・ステップを変更することができる。
【００２１】
以上で述べたような特徴は、コンピュータ内部の発熱量を制御する方法としてだけでなく、基本プログラムの環境でそのような動作を実現するＢＩＯＳプログラムとしても提供される。あるいはそのようなＢＩＯＳプログラムを記憶した不揮発性メモリと、ＢＩＯＳプログラムによって導出されたパフォーマンス・ステップもしくは推定パフォーマンスに基づいてＯＳの動作環境下でＣＰＵを制御するプログラムを記憶した記憶媒体とを備えたコンピュータ装置としても提供される。
【００２２】
別の観点では、本発明に係るコンピュータ装置は、基本プログラムまたはＯＳで動作し、パフォーマンス・ステップの設定が可能なＣＰＵと、基本プログラムの動作環境下でＣＰＵを所定の負荷値で動作させながら複数のパフォーマンス・ステップに設定し、それぞれのパフォーマンス・ステップに対応するコンピュータ装置の消費電力を測定する測定手段を持つ。さらに、この測定手段が測定した消費電力に基づいて、コンピュータ装置を特定の消費電力で動作させるために必要なＣＰＵのパフォーマンス・ステップを導出する導出手段と、導出されたパフォーマンス・ステップに基づいてＯＳの動作環境下でＣＰＵを動作させる制御手段も持つ。これによって、コンピュータ装置を特定の消費電力で動作させるイベントが発生したときに、導出されたパフォーマンス・ステップに基づいてＣＰＵを動作させることが可能となる。さらに、コンピュータ装置がＣＰＵの負荷値を測定する測定手段を備えていれば、コンピュータ装置を特定の消費電力で動作させることが可能なパフォーマンス・ステップと負荷値との関係を表す推定パフォーマンスを前述と同じ方法で生成し、生成された推定パフォーマンスに基づいてパフォーマンス・ステップを変更することもできる。
【００２３】
コンピュータ装置の消費電力だけでなく、ＣＰＵ単体の消費電力に対して制限が必要になる場合もあるので、この測定手段はコンピュータ装置の消費電力と同時にＣＰＵ単体の消費電力を測定することを可能とすることが望ましい。また、コンピュータ装置を起動するときに、入出力装置の動作が停止した状態で、測定手段がコンピュータ装置の消費電力を測定することもできる。さらに、基本プログラムの動作環境下で、コンピュータ装置を起動するときにここまでで述べたようなパフォーマンス・ステップの導出を行うか否かをユーザに選択させ、これに対するユーザの選択を入力手段によって入力させて設定することもできる。
【００２４】
また、当該コンピュータ装置の設置環境の変化、および当該装置を構成するデバイスの経時劣化などにより、一度導出されたパフォーマンス・ステップが変化する可能性もある。そのような場合に備えて、最初に測定された特定のパフォーマンス・ステップにおけるコンピュータ装置の消費電力を不揮発性記憶手段に記憶しておくことができる。その後、コンピュータ装置を起動するときに、再び基本プログラムの動作環境下で、不揮発性記憶手段に記憶されたパフォーマンス・ステップにおける消費電力を再び測定し、記憶された消費電力と測定された消費電力との差を調べることができる。この差が少なければ、そのままＯＳを起動して、記憶された消費電力に基づくパフォーマンス・ステップでＣＰＵを動作させればよい。もし差が大きければ、再びパフォーマンス・ステップの導出を行えばよい。
【００２５】
なお、ここまで述べてきた本発明のパフォーマンス・ステップの導出に係る動作は、ＯＳの動作環境下で基本プログラムと同等の動作環境を再現することができれば、ＯＳの動作環境下で実行することができる。基本プログラムと同等の動作環境を再現する方法は、具体的にはコンピュータ装置の全ての入出力装置および周辺装置の動作を停止し、ユーザからコンピュータ装置へなされる操作の受付を禁止し、コンピュータ装置外部からのイベントの発生を禁止し、さらにＣＰＵのマルチ・タスクでの動作を禁止するなどのステップを含む。しかし、基本プログラムの動作環境下であればこれらの設定をより容易に行うことができるので、本発明のパフォーマンス・ステップの導出に係る動作は、ＯＳよりも基本プログラムの動作環境下で行う方がより望ましい。
【発明の効果】
【００２６】
本発明により、ＣＰＵのパフォーマンスを必要以上に低下させないでＰＣの消費電力を測定するプログラムを提供し、当該プログラムを実行して消費電力を制御する方法およびそのような制御方法を採用したコンピュータ装置を提供することができた。
【発明を実施するための最良の形態】
【００２７】
図１は、本発明の実施の形態にかかるノートＰＣ１０の外形図である。図２は、ノートＰＣ１０のシステム構成を示す概略ブロック図である。ノートＰＣ１０は、外形が表面にキーボードを搭載し内部に多くのデバイスを収納した筐体１３と、液晶ディスプレイ（ＬＣＤ）１１とで構成されている。また、ノートＰＣ１０の外部にはＡＣアダプタ１７があり、商用電源（図示せず）から得た交流を所定の電圧の直流に変換し、筐体１３に接続されたプラグ１９を介してノートＰＣ１０に電力を供給する。筐体１３の内部には、図２に示す各種のデバイスが搭載されている。ＣＰＵ２１は、ノートＰＣ１０の中枢機能を担う演算処理装置で、ＯＳ、ＢＩＯＳ、デバイス・ドライバ、あるいはアプリケーション・プログラムなどを実行する。ＣＰＵ２１は、システム・バスとしてのＦＳＢ(Front Side Bus)２３、ＣＰＵ２１と周辺機器との間の通信を行うためのＰＣＩ(Peripheral Component Interconnect)バス２５、ＩＳＡバスに代わるインタフェースであるＬＰＣ(Low Pin Count)バス２７という３段階のバスを介して各デバイスに接続されて信号の送受を行っている。
【００２８】
ＦＳＢ２３とＰＣＩバス２５は、メモリ／ＰＣＩチップと呼ばれるＣＰＵブリッジ２９によって連絡されている。ＣＰＵブリッジ２９は、メイン・メモリ３１へのアクセス動作を制御するためのメモリ・コントローラ機能や、ＦＳＢ２３とＰＣＩバス２５との間のデータ転送速度の差を吸収するためのデータ・バッファ機能などを含んだ構成となっている。メイン・メモリ３１は、ＣＰＵ２１が実行するプログラムの読み込み領域、処理データを書き込む作業領域として利用される書き込み可能メモリである。ビデオ・カード３３は、ビデオ・チップ（図示せず）およびＶＲＡＭ（図示せず）を有し、ＣＰＵ２１からの描画命令を受けて描画すべきイメージを生成しＶＲＡＭに書き込み、ＶＲＡＭから読み出されたイメージを描画データとしてディスプレイ１１に送る。
【００２９】
ＰＣＩバス２５には、Ｉ／Ｏブリッジ３５、ＣａｒｄＢｕｓコントローラ３７、ｍｉｎｉＰＣＩスロット４１、Ｅｔｈｅｒｎｅｔ（登録商標）コントローラ３９がそれぞれ接続されている。ＣａｒｄＢｕｓコントローラ３７は、ＰＣＩバス２５とＰＣカード（図示せず）とのデータ転送を制御するコントローラである。ＣａｒｄＢｕｓコントローラ３７にはＣａｒｄＢｕｓスロット３９が接続され、ＣａｒｄＢｕｓスロット３９にはＰＣカード（図示せず）が装着される。ｍｉｎｉＰＣＩスロット４１には、例えば無線ＬＡＮモジュールが内蔵されたｍｉｎｉＰＣＩカード（図示せず）が装着される。Ｅｔｈｅｒｎｅｔコントローラ４３は、ノートＰＣ１０を有線ＬＡＮに接続するためのコントローラである。
【００３０】
Ｉ／Ｏブリッジ３５は、ＰＣＩバス２５とＬＰＣバス２７とのブリッジ機能を備えている。また、Ｉ／Ｏブリッジ３５は、ＩＤＥ(Integrated Device Electronics)インタフェース機能を備えており、ハード・ディスク・ドライブ(ＨＤＤ)４７および光学ドライブ４９（ＣＤドライブ，ＤＶＤドライブ等）が接続される。また、Ｉ／Ｏブリッジ３５にはＵＳＢコネクタ４５が接続されている。ＵＳＢコネクタ４５にはＵＳＢに対応した各種周辺機器（図示せず）が接続される。ＬＰＣバス２７には、エンベデッド・コントローラ５１、ＢＩＯＳフラッシュＲＯＭ５３、ＣＭＯＳ−ＲＡＭ５５、Ｉ／Ｏコントローラ５７が接続されている。Ｉ／Ｏコントローラ５７にはＩ／Ｏコネクタ５９が接続されている。ＢＩＯＳ−ＲＯＭ５３およびＣＭＯＳ−ＲＡＭ５５については後述する。
【００３１】
エンベデッド・コントローラ５１は、８〜１６ビットのＣＰＵ、ＲＯＭ、ＲＡＭなどで構成されたマイクロ・コンピュータであり、さらに複数チャネルのＡ／Ｄ入力端子、Ｄ／Ａ出力端子、およびデジタル入出力端子を備えている。エンベデッド・コントローラ５１には、それらの入出力端子を介して冷却ファン（図示せず）、温度センサ（図示せず）および電源装置６１などが接続されており、ＰＣ内部の動作環境の管理に係るプログラムをＣＰＵ２１とは独立して動作させることができる。電源装置６１は、ＡＣアダプタ１７、バッテリー・パック（図示せず）、ＤＣ−ＤＣコンバータ、およびレギュレータを含む。電源装置６１の詳しい構成については後述する。
【００３２】
図３は、本発明の実施の形態にかかるノートＰＣ１０の中で、ＣＰＵ２１のパフォーマンス・ステップの制御を実現するデバイスの構成について示すブロック図である。電源装置６１の中には、ＡＣアダプタ１７もしくはバッテリー・パックによって構成される直流電源１０１と、ＣＰＵに電力を供給するＤＣ−ＤＣコンバータ１０３、５．０Ｖシステム負荷１１５に電力を供給するＤＣ−ＤＣコンバータ１０５、３．３Ｖシステム負荷１１７に電力を供給するＤＣ−ＤＣコンバータ１０７が含まれる。５．０Ｖシステム負荷１１５は、ＨＤＤ４７、光学ドライブ４９、ＵＳＢコネクタ４５などを含む。３．３Ｖシステム負荷１１７は、ＣＰＵブリッジ２９、Ｉ／Ｏブリッジ３５などを含む。ＤＣ−ＤＣコンバータ１０３から出力された電力は、さらにレギュレータ１０９によってパルス幅変調が行われ、動作電圧が決定されてＣＰＵ２１に供給される。ちなみに、パルス幅変調によって動作電圧を決定する技術は、たとえば特開２００３−８８１１０号公報などによって既に公知である。
【００３３】
エンベデッド・コントローラ５１は、ＣＰＵ２１からの制御信号により、レギュレータ１０９にＣＰＵ２１の動作電圧を指定する制御信号を送ることによって、ＣＰＵ２１の動作電圧を設定することが可能である。また、直流電源１０１からの出力、およびレギュレータ１０９からの出力には、各々センス抵抗１１１および１１３が接続されている。各々のセンス抵抗１１１および１１３の両端の電圧は、エンベデッド・コントローラ５１のＡ／Ｄ入力端子に入力され、これによってエンベデッド・コントローラ５１は各々、ノートＰＣ全体およびＣＰＵ２１単体に供給される電流値を測定可能である。電流値を測定することにより、ノートＰＣ１０全体およびＣＰＵ２１単体で消費されている電力をリアルタイムに把握することが可能となる。特に、ノートＰＣ１０をＯＳが起動する前にＢＩＯＳによる制御で動作させることにより、入出力機器および周辺機器の動作を全て停止し、ＣＰＵのバスを介した他の機器および部品へのアクセスをＣＰＵ周辺の消費電力の小さい最低限のデバイスに限定した状態を容易に設定できる。この状態で測定されたノートＰＣ１０全体の消費電力は、そのままシステム消費電力である。以上の電流測定に係る動作がＣＰＵ２１とは独立して行われる点も、測定値の正確性を確保する上で好都合である。さらにエンベデッド・コントローラ５１は、直流電源１０１として電力を供給しているのがＡＣアダプタ１７であるかバッテリー・パックであるかを把握し、それに応じてノートＰＣ１０の動作をＡＣ駆動とバッテリー駆動とで切り替える信号をＣＰＵ２１に対して送ることも可能である。
【００３４】
ちなみに、図２および３は本実施の形態を説明するために、主要なハードウェアの構成および接続関係を簡素化して記載したに過ぎないものである。ノートＰＣ１０を構成するためには、これら以外にも多くのデバイスが使われるが、それらは当業者には周知であるので詳しく言及しない。もちろん、図２および３で記載した複数のブロックを１個の集積回路としたり、逆に１個のブロックを複数の集積回路に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【００３５】
図４は、本発明の実施例にかかるノートＰＣ１０の、ＢＩＯＳ−ＲＯＭ５３およびＣＭＯＳ−ＲＡＭ５５が記憶する各種ソフトウェアおよびデータの構成を示す図である。図４（Ａ）に示すＢＩＯＳ−ＲＯＭ５３は、不揮発性で記憶内容を電気的に書き替え可能なメモリであり、ＰＣの起動および管理に使われるシステムＢＩＯＳ１５１、電源管理および温度管理などの各種ユーティリティ１５３、ＰＣの電源投入時やハードウェアリセット時に実行される自己診断テストであるＰＯＳＴ（Power On Self Test）１５５、消費電力テスト用にＣＰＵに９０％の負荷値をかけるプログラムであるテスト用負荷（９０％）１５７、同様にＣＰＵに各々７０％，５０％の負荷値をかけるプログラムであるテスト用負荷（７０％）１５９およびテスト用負荷（５０％）１６１、およびＨＤＤ４７にアクセスするＩＮＴ１３Ｈハンドラ１６３などが記憶されている。図４（Ｂ）に示すＣＭＯＳ−ＲＡＭ５５は、ノートＰＣ１０の電源を切っても消失しないようにバッテリーでバックアップされたＲＡＭであり、システムＢＩＯＳによって操作される各デバイスの設定情報１６５、および消費電力管理情報１６７を格納する。
【００３６】
以上で示したノートＰＣ１０を構成する各々のデバイス、および当該ノートＰＣで動作するＯＳおよびＢＩＯＳはＡＣＰＩおよびスピード・ステップに対応している。ＡＣＰＩおよびスピード・ステップに対応したハードウェア、ＯＳおよびＢＩＯＳを備えたＰＣであれば、ＣＰＵ２１のパフォーマンス・ステップの制御、およびＰＣ全体およびＣＰＵ２１単体の消費電力の測定は標準的に装備されている。従って、ＢＩＯＳおよびエンベデッド・コントローラ５１のファームウェアを一部変更するだけで、本発明を実施することが可能である。また、ノートＰＣ１０がＯＳによる制御下で動作しているときは、ＣＰＵ２１にＨＡＬＴ命令が発行されて一時停止している時間とＨＡＬＴ命令から復帰して動作している時間との比率から、ＣＰＵ２１に現在かかっている負荷値をリアルタイムに把握することが可能である。
【００３７】
図５は、ノートＰＣ１０を製造後最初に起動したときなどにＢＩＯＳで実行される、本実施の形態にかかるシステム電力情報を測定する処理をフローチャートで書き表したものである。図６は、ＣＰＵ２１の負荷値が最高値である場合のパフォーマンス・ステップと消費電力との関係を示すグラフである。以下、ＣＰＵ２１に対してノートＰＣ１０で許容する最大の負荷値を９０％として説明する。ノートＰＣ１０に電源を投入すると（ブロック２０１）、システムＢＩＯＳ１５１が起動され（ブロック２０３）、以下ＢＩＯＳでの動作環境で、まずＰＯＳＴ１５５が実行される（ブロック２０５）。ＰＯＳＴの中で、他の装置のテスト（ブロック２０７）が終了したら、エンベデッド・コントローラ５１が、ノートＰＣ１０が現在ＡＣ駆動であるかバッテリー駆動であるかを判別する（ブロック２０９）。
【００３８】
ノートＰＣ１０が現在ＡＣ駆動であると判別された場合、当該ノートＰＣで動作が可能なＣＰＵ２１の負荷値の最高値である９０％のテスト用負荷１５７を、ＣＰＵ２１のパフォーマンス・ステップを複数段階で変更しながら実行する（ブロック２１１）。エンベデッド・コントローラ５１はその間、ＣＰＵ２１のパフォーマンス・ステップを変更しつつ、システム消費電力およびＣＰＵ２１単体の消費電力を測定する。これによって、図６のグラフに示すようなＣＰＵ２１のパフォーマンス・ステップと消費電力との関係を把握することが可能である。図６（Ａ）はＣＰＵ２１単体の消費電力、図６（Ｂ）はシステム消費電力について示す。
【００３９】
図７は、ＣＰＵ２１の負荷値が最高値より低い場合のパフォーマンス・ステップと消費電力との関係を示すグラフおよび表である。ブロック２０９でノートＰＣ１０が現在バッテリー駆動であると判別された場合、バッテリー駆動の状態でそのままＣＰＵ２１に最高値である９０％の負荷値をかけると、バッテリーが消耗している場合やバッテリーの容量が小さい場合などでは過負荷を生じるので望ましくない。そこで、最高値より低い複数の負荷値でＣＰＵ２１の複数のパフォーマンス・ステップを実行して消費電力を測定し（ブロック２１３）、そこからＣＰＵ２１の負荷値が最高値である場合の消費電力を推定する（ブロック２１５）。ここでは、テスト用負荷（７０％）１５９およびテスト用負荷（５０％）１６１を使用し、測定された消費電力の値を１次式に近似することによって、ＣＰＵ２１の負荷値が９０％である場合の消費電力を推定する。
【００４０】
たとえば、ＣＰＵ２１のパフォーマンス・ステップが動作周波数３．２０ＧＨｚ、動作電圧１．３７５０Ｖである場合、ＣＰＵ２１の負荷値を７０％および５０％として、各々１０３．０Ｗおよび８４．７Ｗのシステム消費電力が測定できたものとする。システム消費電力のうち、負荷に応じて変動しない分をＫ（Ｗ）、負荷に比例する分をＰ（Ｗ）とすると、以下の式（１）および式（２）が成立する。
【００４１】
【数１】
0004410215.tif 000002
【００４２】
【数２】
0004410215.tif 000003
【００４３】
式（１）および式（２）を連立方程式として解けば、Ｋ＝３９（Ｗ）、Ｐ＝９１．５（Ｗ）が導ける。ここから、負荷値が９０％である場合のシステム消費電力は、式（３）にこれらのＫおよびＰの値を代入することによって導ける。
【００４４】
【数３】
0004410215.tif 000004
【００４５】
負荷値が９０％である場合のシステム消費電力は、推定値が１２１．３Ｗであるのに対し、実測値は１２６．２Ｗであり、約４％の誤差で近似できている。上記以外のパフォーマンス・ステップの場合についても、同じようにＣＰＵ２１の負荷値を７０％および５０％として測定されたシステム消費電力から、負荷値が９０％である場合のシステム消費電力を推定した。その結果が図７に示されている。図７（Ａ）は測定値および推定値の比較表であり、図７（Ｂ）はそれをグラフで表示したものである。２通りの負荷値から１次式で近似するという最も簡単な方法であっても、その推定値と実測値とを比較すれば、５％以内の誤差で近似できていることがわかる。動作周波数２．４０ＧＨｚ以下では、誤差は１〜２％程度とさらに小さい。もちろん、消費電力を測定する負荷値の数を増やしたり、２次式などのより複雑な近似式を適用したりなどの方法で、近似の精度を向上することもできる。
【００４６】
図５に戻って、測定または推定されたＣＰＵ２１の負荷値が最高値である場合のパフォーマンス・ステップと消費電力との関係に基づいて、ノートＰＣ１０のシステム消費電力またはＣＰＵ２１単体の消費電力を特定の制限値以下で動作させる必要がある場合に設定すべきＣＰＵのパフォーマンス・ステップの上限値を導出する（ブロック２１７）。たとえば図６（Ｂ）のグラフに示したような関係が測定された場合に、バッテリー駆動である場合にノートＰＣ１０のシステム消費電力の制限値を８０Ｗ以内とするという要求に対して、ＣＰＵ２１のパフォーマンス・ステップを動作周波数２．３７ＧＨｚ以内に制限すれば要求を達成できることがわかる。従来技術では、ここで特性のバラツキなどによるマージンを約１０Ｗ程度考慮する必要があるので、システム消費電力７０Ｗに対応する動作周波数２．１５ＧＨｚ以内にパフォーマンス・ステップを制限する必要があったのに対して、本発明ではそのようなマージンを考慮する必要がないので、より高いパフォーマンス・ステップに設定することが可能となることがわかる。
【００４７】
もちろん、ＣＰＵ２１単体の消費電力を特定の制限値以下にする必要がある場合も、同じ方法でパフォーマンス・ステップを導出して制御することが可能である。特に、ＣＰＵ２１の温度はＣＰＵ単体の消費電力に強く依存することがわかっているので、ＣＰＵの温度を一定値以下に抑えたい場合は、当該温度に対応する消費電力を開発段階で把握していれば、あとはここまでで述べたのと同じ方法でＣＰＵ単体の消費電力を当該温度に対応する制限値以下に抑えるパフォーマンス・ステップを導出し、これに基づいて制御することによってＣＰＵの温度を抑制することが可能である。
【００４８】
図８は、パフォーマンス・ステップと消費電力との関係を示すグラフで、特定の消費電力の制限値に対する動作周波数の導出について示す図である。図６（Ｂ）のグラフに示した関係で、８０Ｗのシステム消費電力に対応する動作周波数を２．３７ＧＨｚとして導出したのは、動作周波数２．４０ＧＨｚでシステム消費電力８１．２Ｗの点３０５と、動作周波数２．１３ＧＨｚでシステム消費電力６９．３Ｗの点３０７とを直線３０１で結び、この直線上でシステム消費電力８０Ｗに対応する点の動作周波数２．３７ＧＨｚを導出するという方法による。ＣＰＵ２１の動作周波数に対する消費電力の実際の特性３０３は、動作周波数に比例する要因と、動作電圧の二乗に比例する要因とを持つため、動作周波数が上昇するにつれて傾き（消費電力の変化率）がやや大きくなる曲線となる。しかし点３０５と点３０７との間で動作周波数の上昇に伴う傾きの変化は小さいので、直線３０１で近似しても実際の特性から大きく外れることはない。また、特定の動作周波数に対する消費電力は、実際の曲線３０３から導出される値よりも、近似された直線３０１から導出される値の方が少々大きくなる。このため、近似された直線３０１で消費電力値からパフォーマンス・ステップを導出しても、消費電力の制限値を超えることはない。もちろん、特性のバラツキなどによるマージンを考慮する従来技術に比べても、バッテリー駆動時の要求まで消費電力を制限しながら、より高いパフォーマンス・ステップに設定することが可能である。
【００４９】
また、ＣＰＵ２１のパフォーマンス・ステップである動作周波数および動作電圧は、通常は数段階〜１０数段階程度の数値で設定されることが多いが、基本的には任意の位置に設定可能なものである。特に本発明では、パフォーマンス・ステップを任意の位置に設定できることが望ましい。たとえば図８に示した特性の場合で、ＣＰＵ２１の動作周波数が２．４０ＧＨｚと２．１３ＧＨｚの間の値を設定することが不可能である場合は、動作周波数をシステム消費電力８０Ｗに対応する２．３７ＧＨｚに設定することは当然できない。システム消費電力が８０Ｗの制限値を超えない範囲で動作周波数を設定する必要があるから、このような場合は動作周波数を２．１３ＧＨｚにせざるを得ない。しかし、従来技術でシステム消費電力を８０Ｗから１０Ｗのマージンを差し引いた７０Ｗを超えない範囲で設定する場合、同じ方法で導出される動作周波数は２．１５ＧＨｚとなる。つまり、ＣＰＵ２１の動作周波数が２．４０ＧＨｚと２．１３ＧＨｚの間の値を設定することが不可能である場合は、従来技術と本発明とで結果的に同じ２．１３ＧＨｚの動作周波数に設定することとなる。従って、本発明ではパフォーマンス・ステップを任意の値に設定可能としないと、従来技術と本発明とでパフォーマンス・ステップの設定値に差が生じないことになる場合がある。
【００５０】
再び図５に戻って、導出されたＣＰＵ２１のパフォーマンス・ステップの上限値はＢＩＯＳによってＣＭＯＳ−ＲＡＭ５５にシステム設定情報１６５として保持される（ブロック２１９）。また、ここに至るまでの処理で設定されたＣＰＵ２１の負荷値およびパフォーマンス・ステップの条件と、その条件で測定された消費電力の値のセットも、消費電力管理情報１６７としてＣＭＯＳ−ＲＡＭ５５に記憶される（ブロック２２１）。ここまでで、ＰＯＳＴ１５５が終了する。ＰＯＳＴ１５５の実行結果に異常がなければ、システムＢＩＯＳ１５１はＩＮＴ１３Ｈハンドラ１６３を呼び出してＨＤＤ４７にアクセスし、ＯＳを起動する（ブロック２２３）。ＯＳの起動により、ＢＩＯＳでの動作環境は終了する。
【００５１】
起動されたＯＳは、ＡＣＰＩの標準的なメソッドの一つである「＿ＰＰＣ」などによって、設定されたパフォーマンス・ステップの上限値をＢＩＯＳに照会し、その値を受け取る（ブロック２２５）。以後、ＯＳによる制御下で動作している状態で、ノートＰＣ１０の筐体１３に接続されたＡＣアダプタ１７のプラグ１９が抜かれるなどして、ノートＰＣ１０がＡＣ駆動からバッテリー駆動に切り替わるイベントが発生したときには（ブロック２２７）、ＣＰＵ２１のパフォーマンス・ステップの上限値を設定された値に切り替えればよい。逆に、ノートＰＣ１０がバッテリー駆動からＡＣ駆動に切り替わるイベントが発生したときには、ＣＰＵ２１のパフォーマンス・ステップの上限値を元に戻せばよい。このパフォーマンス・ステップの上限値の切り替えも、ＡＣＰＩおよびスピード・ステップの標準的なメソッドに従って行われる。
【００５２】
なお、ノートＰＣ１０でＯＳが起動される前にオプションとしてシステムＢＩＯＳ１５１の設定メニューを表示させることも可能であり（ブロック２４０）、表示された設定メニューの中で本発明に係るパフォーマンス・ステップの上限値の導出を無効に設定することができる。もちろん、設定メニューを表示させないでそのままＯＳを起動することも可能である。設定メニューでパフォーマンス・ステップの上限値の導出を無効とした場合、図５でいうブロック２０９〜２２１の処理を行わず、ＢＩＯＳによる一般的なセルフ・テスト（ブロック２０７まで）だけを行ってＯＳを起動する。そして、パフォーマンス・ステップの上限値は、従来技術によって、特性のバラツキなどによるマージンを考慮して低めに設定された値となる。テスト用負荷１５７，１５９，１６１を実行するとＯＳを起動できないなどのような重大なエラーが発生するような場合以外で、パフォーマンス・ステップの上限値の導出を無効とする必要は特にない。
【００５３】
図９は、図５に示したシステム電力情報を測定する処理が既に行われたノートＰＣ１０を起動したときにＢＩＯＳで実行される処理をフローチャートで書き表したものである。ノートＰＣ１０に電源を投入してから、他のデバイスのテストが終了するまでは図５の処理と同一であるので、参照番号を図５と同一とし、説明を省略する。その後、ノートＰＣ１０の消費電力のテストが開始される（ブロック４０９）。ただしここで行われる消費電力のテストは、ＣＭＯＳ−ＲＡＭ５５に消費電力管理情報１６７として記憶されている前回の測定値の中から特定の１〜２個について、同一条件で再測定するものである。そして同一条件で測定された前回と今回の消費電力の測定値の違いを比較する（ブロック４１１）。前回と今回の消費電力の測定値の違いが一定値以下で、測定誤差の範囲内とみなせるものであれば、パフォーマンス・ステップと消費電力との関係は特に変化していないものとみなせる。従って、パフォーマンス・ステップの上限値はシステム設定情報１６５に記憶された前回と同一値として、ＯＳを起動する（ブロック２２３）。消費電力の測定値の違いが一定値を超えていれば、図５に示したブロック２０９〜２２１と同一の処理を行い、パフォーマンス・ステップの上限値を再び導出してから（ブロック４１３）、ＯＳを起動する（ブロック２２３）。ＯＳを起動した後の処理も図５と同一であるので、参照番号を図５と同一とし、説明を省略する。
【００５４】
なお、ＯＳが起動される前にオプションとしてシステムＢＩＯＳ１５１が表示することが可能である設定メニュー（ブロック４４０）の中で、図９で示した処理の実行頻度を設定することも可能である。ノートＰＣ１０に電源を投入するたびに毎回行うようにしてもよいし、また数日〜数十日に一度程度の実行周期を設定することもできる。実行周期を設定した場合は、図５または図９で示した処理の前回実行日から設定された周期が経過していなければ当該処理を実行せず、ＢＩＯＳによる一般的なセルフテスト（ブロック２０７まで）だけを行って、パフォーマンス・ステップの上限値を前回と同一としてＯＳを起動することとなる。通常、ノートＰＣ１０の設置環境の変化およびデバイスの経時劣化は僅かなものであるので、パフォーマンス・ステップの上限値が変化することは少なく、従って実行周期は数十日に一度であっても特に問題はない。
【００５５】
以上、ここまでで述べた実施の形態では、消費電力の制限値に基づいてパフォーマンス・ステップの上限のみを設定してきた。この実施の形態の発展として、システム負荷の変化に対するパフォーマンス・ステップを直接設定することもできる。図１０は、システム消費電力の目標値が特定の値Ｐである場合の、ＣＰＵ２１に対する負荷値とパフォーマンス・ステップとの関係の導出について述べたグラフである。ＡＣＰＩおよびスピード・ステップの標準的なメソッドには、ＣＰＵに対する負荷値をリアルタイムに測定し、当該負荷値に対してＣＰＵのパフォーマンス・ステップを制御する技術が含まれる。この技術に本発明を適用して、より高いパフォーマンス・ステップでＣＰＵを使用することができる。まずは図１０（Ａ）で示すように、ＢＩＯＳによる制御下でＣＰＵ２１に対する２通りの負荷値Ｔ１およびＴ２、および２通りの動作周波数ｆａおよびｆｂに対し、各々消費電力を測定し、周波数−消費電力のグラフを作成する。負荷値Ｔ１およびＴ２のそれぞれについて、周波数と消費電力との関係を１次式に近似する。負荷値Ｔ１の時の周波数−消費電力の関係を直線Ｔ１、負荷Ｔ２の時の周波数−消費電力の関係を直線Ｔ２とする。
【００５６】
設定すべきシステム消費電力の目標値をＰとすると、直線Ｔ１で消費電力Ｐに対応する周波数をｆ１、直線Ｔ２で消費電力Ｐに対応する周波数をｆ２とする。そこから、図１０（Ｂ）で示すように周波数−負荷のグラフを作成する。（負荷Ｔ１，周波数ｆ１）の点Ｐ１と、（負荷Ｔ２，周波数ｆ２）の点Ｐ２を結んだ直線Ｔｐが、システム消費電力の目標値Ｐに対する負荷と動作周波数の関係となる。ノートＰＣ１０がＯＳによる制御下で動作しているときは、前述のようにＣＰＵ２１に現在掛かっている負荷値をリアルタイムに把握することが可能である。ＣＰＵ２１に現在掛かっている負荷値をＴｘとすると、図１０（Ｂ）の直線Ｔｐから、負荷値Ｔｘに対応する動作周波数ｆｘにパフォーマンス・ステップを設定できる。これにより、ＣＰＵ２１に掛かっている負荷値から当該ＣＰＵのパフォーマンス・ステップをリアルタイムで制御し、消費電力の測定値が目標値を超えていかないようにリアルタイムでパフォーマンス・ステップを制御することが可能である。なお、ここでもシステム消費電力を測定する条件の数、および特性を近似する式の次数などを上げることにより、近似の精度を上げ、より高精度なパフォーマンス・ステップの制御を可能とすることができる。
【００５７】
以上で述べたように、本発明は消費電力を所定の値以下に制御しつつ、ＣＰＵのパフォーマンスの低下を抑制する効果が優れている。特に、ノートＰＣがバッテリー駆動であるときのシステム消費電力に対する要求条件が厳しい場合に、本発明のＣＰＵのパフォーマンスの低下を抑制する効果がより有用であるので、同じＣＰＵであってもより安価で放電電力の小さいバッテリー・パックを採用することができ、ノートＰＣのコストダウンに貢献することができる。もちろん、バッテリーなどのような電源に係る要因だけでなく、たとえばＣＰＵの発熱などの要因で消費電力を制限する必要が生じた場合にも、本発明の制御方法が適用できることは言うまでもない。
【００５８】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
【産業上の利用可能性】
【００５９】
プロセッサを内蔵した電子機器、特にバッテリーによって動作するものに対して利用可能である。
【図面の簡単な説明】
【００６０】
【図１】ノートＰＣの外形図である。
【図２】ノートＰＣの概略ブロック図である。
【図３】ＣＰＵのパフォーマンス・ステップの制御を実現するデバイスの構成について示すブロック図である。
【図４】ＢＩＯＳ−ＲＯＭおよびＣＭＯＳ−ＲＡＭが記憶する各種ソフトウェアの構成を示す図である。
【図５】本実施の形態にかかるシステム電力情報を測定する処理のフローチャートである。
【図６】ＣＰＵの負荷値が最高値である場合のパフォーマンス・ステップと消費電力との関係を示すグラフである。
【図７】ＣＰＵの負荷値が最高値より低い場合のパフォーマンス・ステップと消費電力との関係を示すグラフである。
【図８】パフォーマンス・ステップと消費電力との関係を示すグラフで、特定の消費電力に対する動作周波数の導出について示す図である。
【図９】システム電力情報を測定する処理が既に行われたノートＰＣを起動したときにＢＩＯＳで実行される処理のフローチャートである。
【図１０】システム消費電力の目標値が特定の値である場合の、ＣＰＵに対する負荷値とパフォーマンス・ステップとの関係の導出について述べたグラフである。
【図１１】ノートＰＣの消費電力の構成について示す図である。
【図１２】ＣＰＵに対して最大の負荷値がかけられている状態の、ＣＰＵの各々のパフォーマンス・ステップに対するノートＰＣのシステム消費電力のグラフの一例である。
【符号の説明】
【００６１】
１０  ノートＰＣ
１３  筐体
２１  ＣＰＵ
５１  エンベデッド・コントローラ
５３  ＢＩＯＳフラッシュＲＯＭ
５５  ＣＭＯＳ−ＲＡＭ
６１  電源装置
１０９  レギュレータ
１１１，１１３  センス抵抗
１５１  システムＢＩＯＳ
１５５  ＰＯＳＴ
１５７  テスト用負荷（９０％）
１５９  テスト用負荷（７０％）
１６１  テスト用負荷（５０％）
１６７  消費電力管理情報
【図１】
0004410215.tif 000005
【図２】
0004410215.tif 000006
【図３】
0004410215.tif 000007
【図４】
0004410215.tif 000008
【図５】
0004410215.tif 000009
【図６】
0004410215.tif 000010
【図７】
0004410215.tif 000011
【図８】
0004410215.tif 000012
【図９】
0004410215.tif 000013
【図１０】
0004410215.tif 000014
【図１１】
0004410215.tif 000015
【図１２】
0004410215.tif 000016