(57)【要約】デマンドベースのシステムにおいて、プロセッサを別のパフォーマンス・レベルに自動的に移行するための方法。本発明は、システムの応答性を維持しながらプロセッサ周波数を自動調整することを提供する。本発明のパフォーマンス・レベル・ポリシー・アルゴリズムは、より高いパフォーマンス・レベルへの移行が最高のシステム・パフォーマンスに匹敵するほど十分迅速にプロセッサ利用率の向上を検出する。このパフォ―マンス・レベルは、最高のシステム・パフォーマンスに匹敵する。本発明の一実施形態のパフォーマンス・レベル・ポリシー・アルゴリズムは、要求の迅速な逆転によって不要な移行を早めないように、より低いパフォーマンス・レベルへのプロセッサの移行を遅らせる。
2004533674.tif 000002
【特許請求の範囲】
【請求項１】
複数のパフォーマンス・レベルを有するプロセッサを有するコンピュータ・システムのプロセッサ利用率を監視することと、
プロセッサ利用率が指定された時間にわたってスイッチアップ・レベルを上回ったままであると判断された場合、プロセッサをより高いパフォーマンス・レベルに自動的に移行することと
を備える方法。
【請求項２】
パフォーマンス・レベルの数が２つである請求項１に記載の方法。
【請求項３】
スイッチアップ・レベルが現在のプロセッサ・パフォーマンス・レベルの約９５％である請求項１に記載の方法。
【請求項４】
プロセッサ利用率が指定された時間にわたってスイッチダウン・レベルを下回ったままであると判断された場合、プロセッサを次に低いパフォーマンス・レベルがある場合はそれに自動的に移行することと
をさらに備える請求項１に記載の方法。
【請求項５】
スイッチダウン・レベルが次に低いプロセッサ・パフォーマンス・レベルの約９５％である請求項４に記載の方法。
【請求項６】
プロセッサと、
プロセッサ利用率が第１の期間にわたって第１のしきい値を超えていることを示す第１の信号を受信し、その結果第１の信号に応答してプロセッサがより高いパフォーマンス・レベルに移行する第１の入力ノードと、
プロセッサ利用率が第２の期間にわたって第２のしきい値を下回っていることを示す第２の信号を受信し、その結果第２の信号に応答してプロセッサがより低いパフォーマンス・レベルに移行する第２の入力ノードと
を備える装置。
【請求項７】
第１のしきい値が現在のプロセッサ・パフォーマンス・レベルの約９５％である請求項６に記載の装置。
【請求項８】
第１の期間が第２の期間と等しい請求項６に記載の装置。
【請求項９】
処理システムによって実行されると、
複数のパフォーマンス・レベルを有するプロセッサを有するコンピュータ・システムのプロセッサ利用率を定期的に監視することと、
プロセッサ利用率が指定された時間にわたってスイッチアップ・レベルを上回ったままであると判断された場合、プロセッサをより高いパフォーマンス・レベルに自動的に移行することと
を備える方法を前記処理システムに実行させる実行可能命令を提供する機械可読媒体。
【請求項１０】
パフォーマンス・レベルの数が２つである請求項９に記載の機械可読媒体。
【請求項１１】
スイッチアップ・レベルが現在のプロセッサ・パフォーマンス・レベルの約９５％である請求項９に機械可読媒体。
【請求項１２】
プロセッサ利用率が指定された期間にわたってスイッチダウン・レベルを下回ったままであると判断された場合、プロセッサを次に低いパフォーマンス・レベルがある場合はそれに自動的に移行すること
をさらに備える請求項９に記載の機械可読媒体。
【請求項１３】
プロセッサをより高いパフォーマンス・レベルに移行するためにプロセッサ利用率がスイッチアップ・レベルを上回ったままに留まっている指定された期間が、プロセッサを次に低いパフォーマンス・レベルに移行するためにプロセッサ利用率がスイッチダウン・レベルを下回ったまま留まっている指定された期間と異なる請求項１２に記載の機械可読媒体。
【請求項１４】
スイッチダウン・レベルが次に低いプロセッサ・パフォーマンス・レベルの約９５％である請求項１２に記載の機械可読媒体。
【請求項１５】
プロセッサをより高いパフォーマンス・レベルに移行させるためにプロセッサ利用率がスイッチアップ・レベルを上回ったまま留まっている指定された期間が、プロセッサ利用率監視期間より長い請求項１２に記載の機械可読媒体。
【請求項１６】
プロセッサを次に低いパフォーマンス・レベルに移行させるためにプロセッサ利用率がスイッチダウン・レベルを下回ったまま留まっている指定された期間が、プロセッサ利用率監視期間に等しい請求項１５に記載の機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、コンピュータ・プロセッサの電力管理に関し、より詳細には、パフォーマンス・レベルが最適な移行点を決定するための改良された方法に関する。
【背景技術】
【０００２】
モバイルＰＣの製造業者は、消費電力を低減し、あるいは少なくとも維持しながらシステム・パフォーマンスを向上させようと競っている。モバイルＰＣのパフォーマンスは劇的に向上した。しかし、大きいバッテリを備えることは望ましくなく、またバッテリ効率がプロセッサ・パフォーマンスに見合っていないため、ピークのパフォーマンスで動作するシステムのバッテリの寿命が大幅に短くなっていた。製造業者は、バッテリの寿命を引き延ばすために、電力とパフォーマンスを制御する機能を導入した。例えば、映画を観ているユーザは、映画を観終えるのに十分なほどバッテリ寿命を引き延ばすために、質の低下という犠牲を払って消費電力を低減することを望むかもしれない。また、電力とパフォーマンスの制御は熱の制御にも使用される。例えばプロセッサがオーバーヒートしている場合、ユーザは、パフォーマンスを低下させて消費電力を低減させ、したがって熱を低下させることができる。典型的な電力管理システム（ＰＭＳ）では、ユーザはオペレーティング・システム（ＯＳ）の電力管理部分に一連の入力を与える。あるいはＰＭＳはＯＳに組み込まれた一部であってもよい。ユーザは、バッテリの寿命またはシステム・パフォーマンスに対する選好を入力することができる。ユーザは、ＤＣオペレーションではエネルギーの節約を、ＡＣオペレーションではシステム・パフォーマンスの最適化を指示するであろう。
【０００３】
歴史的には、消費電力の低減はシステム・パフォーマンスの低下と直接関係していた。例えば、５００メガヘルツで走り、１０ワットを使用しているシステムは、２５０メガヘルツに減速させ、５ワットを消費するようにする。システムが一定の作業負荷に対して稼動するとき、この直接的な関係を示すＰＭＳは、バッテリ寿命の延長の点ではあまり利益をもたらさない。つまり、半分の速度で２倍長く稼動するシステムでは、消費エネルギーの量が同じである。システムはより低温で稼動するが、それ以上の作業は達成されない。
【０００４】
最近のシステムでは、ＣＭＯＳ回路で消費電力を決定する方程式を利用することによってこの問題に対処している。この方程式とはＰ＝ｋＶ2Ｆである。式中、Ｐは消費された電力、ｋはある定数、Ｖは加えられた電圧、Ｆは動作周波数である。この方程式を適用すると、電圧のわずかな低下で消費電力を大幅に低減できることがわかる。したがってある時間に亘って電力を加わえる電圧変動方式を使用することによって、より少ないエネルギーで、したがってバッテリ寿命が延長されて一定の作業負荷を達成させることができる。一般のＰＭＳは、ＡＣ使用の場合には高電圧／高周波数モードを、ＤＣ使用の場合には低電圧／低周波数モードを提供する。こうしたモードは、ＡＣアダプタが接続されているかどうかを検出し、それに応じてモードを切り替えるソフトウェア・プログラムによって実現される。またユーザは、必要に応じて、システムへ入力して、低パフォーマンス・モードに切り替えないことを選択することもできる。ＰＭＳソフトウェアは、ＯＳ内に組み込むこともでき、アプリケーションやドライバに電源が変わったことを知らせ、次いでドライバが、モードを切り替えるファームウェアと通信する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
こうしたＰＭＳは、バッテリの寿命を延長させるが、パフォーマンスの低下の問題には対応していない。バッテリで稼働中、システムはより低い周波数で稼動し、ユーザが得るシステム・パフォーマンスの利益は十分ではない。ユーザがシステムを高パフォーマンス・モードにすると、バッテリの寿命が短くなる。
【課題を解決するための手段】
【０００６】
本発明の一実施態様は、デマンドベースのシステムにおけるプロセッサ・パフォーマンス・レベルの移行のための方法を提供する。パフォーマンス・レベルとは、指定された動作周波数およびその関連する電圧である。自動的な移行では、使用する移行のオーバーヘッドが少なくてすみ、それによってバッテリの寿命が延長される。本発明の一実施態様は、システムの応答性を保ちながらプロセッサ周波数を自動調整することを提供する。本発明の一実施態様では、プロセッサを複数のパフォーマンス・レベルに移行させることができる。
【発明を実施するための最良の形態】
【０００７】
図１は、本発明を実施するコンピュータ・システム１００の例を示す図である。以下に記載するプロセッサ利用率のサンプリング、プロセッサ利用率の変化の検出、およびプロセッサの異なるパフォーマンス・レベルへの移行は、コンピューティング・システム１００内で実施し、使用することができる。コンピューティング・システム１００は、汎用コンピュータ、携帯用コンピュータ、あるいは他の同様のデバイスでよい。コンピューティング・システム１００の構成要素は例であり、１つまたは複数の構成要素を省略したり追加してもよい。
【０００８】
図１を参照すると、コンピューティング・システム１００は、バス１０１を介してディスプレイ回路１０５、メイン・メモリ１０４、静的メモリ１０６、および大容量記憶デバイス１０７に結合されている中央処理演算装置１０２を含む。また、コンピューティング・システム１００は、バス１０１を介してディスプレイ１２１、キーパッド入力１２２、カーソル制御１２３、ハード・コピー・デバイス１２４、および入／出力（Ｉ／Ｏ）デバイス１２５に結合されている。コンピューティング・システム１００は、以下で説明するように、周波数および電圧調整回路を含む。
【０００９】
バス１０１は、情報および信号を伝えるための標準のシステム・バスである。プロセッサ１０２は、コンピューティング・システム１００用の処理装置である。プロセッサ１０２を使用して、コンピューティング・システム１００のための情報を処理する。プロセッサ１０２は、制御装置１３１、演算論理装置（ＡＬＵ）１３２、および複数のレジスタ１３３を含み、これらを使用して情報を処理する。
【００１０】
メイン・メモリ１０４は、プロセッサ１０２によって使用される情報または命令（プログラム・コード）を格納するランダム・アクセス・メモリ（ＲＡＭ）、または他の何らかの動的記憶デバイスなどである。また、メイン・メモリ１０４は、プロセッサ１０２による命令の実行中に一時的数値変数または他の中間情報を格納する。静的メモリ１０６は、これもまたプロセッサ１０２によって使用することができる情報または命令を格納する読取専用メモリ（ＲＯＭ）および／または他の静的記憶デバイスなどでよい。大容量記憶デバイス１０７は、コンピューティング・システム１００のための情報または命令を格納するハード・ディスク・ドライブ、フロッピー（登録商標）・ディスク・ドライブ、または光ディスク・ドライブなどでよい。
【００１１】
ディスプレイ１２１は、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）などでよい。ディスプレイ・デバイス１２１は、情報またはグラフィックをユーザに表示する。コンピューティング・システム１００は、ディスプレイ回路１０５を介してディスプレイ１２１とインターフェースをとることができる。キーパッド入力１２２は、情報やコマンドの選択をコンピューティング・システム１００に伝える英数字入力デバイスである。カーソル制御１２３は、ディスプレイ１２１上の対象物の移動を制御するマウス、トラックボール、カーソル方向キーなどである。ハード・コピー・デバイス１２４は、情報を用紙、フィルム、または他の同様の媒体に印刷するレーザ・プリンタなどである。いくつかの入／出力デバイス１２５をコンピューティング・システム１００に結合することができる。
【００１２】
本発明の一実施形態では、プロセッサ１０２は、動作電圧や動作周波数をユーザに制御させるための電力管理ソフトウェア１３４を含んでいる。電力管理ソフトウェア１３４はＩ／Ｏコントローラ１５０とともに特定の状態が発生した後に電圧と周波数のスケーリングをしやすくしている。Ｉ／Ｏコントローラ１５０は、クロック生成回路１３５内のレジスタ１３６をプログラムする。プログラムされた情報は、クロック信号の動作周波数がどのように変更されるかを知らせる。クロック生成回路１３５は、レジスタ１３６を監視し、それに応じてクロック信号の周波数を修正する。動作周波数が低下したと判断した後、Ｉ／Ｏコントローラ１５０は、図には示していない電源回路に対する電圧修正制御信号を生成する。次いで電源回路は、それに応じて電圧を低下させる。
【００１３】
本明細書に記載しているプロセッサ・パフォーマンス・レベル移行ポリシー・アルゴリズムは、コンピューティング・システム１００内に含まれるハードウェアおよび／またはソフトウェアによって実現することができる。例えばプロセッサ１０２は、例えばメイン・メモリ１０４など、機械可読媒体に格納されているコードまたは命令を実行して、複数のパフォーマンス・レベルをサポートしているプロセッサのプロセッサ・パフォーマンス・レベルをいつ移行するかを決定することができる。
【００１４】
機械可読媒体は、コンピュータなどの機械で読み取り可能な形で情報を提供する（すなわち格納する、かつ／または送信する）機構を含む。例えば、機械可読媒体には、読取専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュ・メモリ・デバイスなどがある。コードまたは命令は、搬送波信号、赤外線信号、デジタル信号、および他の同様の信号によって表すことができる。
【００１５】
ＰＭＳは、ソフトウェアへの入力をいくつか有している。ソフトウェアは、こうした入力を使用して、プロセッサのパフォーマンス・レベルを決定することができる。一般に入力には、ＡＣでは高パフォーマンス・レベル、およびＤＣでは低パフォーマンス・レベルとなる「電源」、プロセッサが過熱した場合にプロセッサをより低い（つまりより冷たい）パフォーマンス・レベルに移行する最も重要な環境上の問題である「熱」、およびユーザがそれによってエネルギーの節約とパフォーマンスの向上のうちから選択することができる「ユーザの選好」がある。デマンドベースのＰＭＳは、ユーザがより高いレベルのパフォーマンスを必要としている場合に、より高いパフォーマンス・レベルへの移行を可能にするために「プロセッサ利用率」の入力を含んでいる。本発明の実施形態では、ファースト・アップ／スロー・ダウン（ｆａｓｔ  ｕｐ／ｓｌｏｗ  ｄｏｗｎ：ＦＵＳＤ）移行ポリシーを使用して、プロセッサ（すなわちプロセッサ利用率）に対するユーザの要求を監視する。本発明の代替実施形態では、スロー・アップ／ファースト・ダウン（ｓｌｏｗ  ｕｐ／ｆａｓｔ  ｄｏｗｎ：ＳＵＦＤ）移行ポリシーを使用することができる。監視は、プロセッサのタイム・スタンプ・カウンタ（ＴＳＣ）および高解像度タイマを定期的に読み取ることによって、または既存のネイティブＯＳ機構を使用することによって行うことができる。ＴＳＣは、プロセッサがスリープ状態ではないときにプロセッサのアクティビティに関する情報を提供する。プロセッサのアクティビティおよび周波数の計算によって、所与の期間にわたる利用率が提供される。図２に、いくつかの一般的な作業負荷に関するプロセッサ利用率のグラフの例を示している。図２ａは、例えばレンダリングなどのプロセッサ利用率のグラフを示している。図に示すように、プロセッサ利用率は、急速に１００％付近に上昇し、処理が完了するまで高レベルのままである。図２ｂは、デジタル・ビデオ・ディスク（ＤＶＤ）のプロセッサのグラフを示している。プロセッサ利用率は、長時間にわたって高レベルに上昇して、時折かなり低レベルに低下する。図２ｃは、アイドル状態のシステムのプロセッサのグラフを示している。図に示すように、プロセッサ利用率は、定期的なＯＳハウスキーピングによるスパイクを除いて低レベルである。本発明の実施形態は、高プロセッサ利用率レベルを迅速に検出し、システムを高周波数パフォーマンス・レベルに自動的に切り替える。プロセッサ利用率が低下すると、システムは、自動的に低パフォーマンス・レベルに切り替えられる。パフォーマンス・レベル間で迅速に移行する能力は、図２ａおよび２ｃに示すようなプロセッサ利用率のグラフを有する作業負荷にとっては重要ではない。しかし、図２ｂに示すような作業負荷の場合、迅速にプロセッサ利用率の変化を検出し、最適なパフォーマンス・レベルに移行することによって、エネルギー効率をかなり向上させることができる。
【００１６】
本発明によれば、プロセッサ利用率は、Ｔ秒ごとに測定される。プロセッサ利用率監視期間Ｔは、プロセッサ利用率の向上が迅速に検出されるように十分小さくすべきであり、これによってシステムの応答性が維持される。しかし、プロセッサ・リソースに過度に負担をかけるほどＴを小さくすべきではない。所与のしきい値を上回るプロセッサ利用率が検出された場合、システムはより高いパフォーマンス・レベルに自動的に切り替えられる。所与のしきい値を下回るプロセッサ利用率が検出されると、システムはより低いパフォーマンス・レベルに自動的に切り替えられる。高パフォーマンス・レベルと低パフォーマンス・レベルの間で頻繁に切替が行われることでプロセッサに負担がかかるため、プロセッサ利用率の急速な逆転で切替が頻繁に行われないように、ＦＵＳＤ移行ポリシーによって、高パフォーマンス・レベルからより低いパフォーマンス・レベルへの切替の頻度を少なくすることができる。例えば図２ｂに示すように、プロセッサ利用率は、時刻Ｔ1で例えば９５％のスイッチアップしきい値（ｓｗｉｔｃｈ−ｕｐ  ｔｈｒｅｓｈｏｌｄ）に達する。システムは、より高いパフォーマンス・レベルに自動的に移行する。パフォーマンス利用率は、時刻Ｔ2でスイッチダウンしきい値（ｓｗｉｔｃｈ−ｄｏｗｎ  ｔｈｒｅｓｈｏｌｄ）、例えば７５％未満に低下するが、システムは、より低いパフォーマンス・レベルには移行しない。代わりに、時刻Ｔ3でプロセッサ利用率が監視されるまで現在のパフォーマンス・レベルが維持される。時刻Ｔ3でプロセッサ利用率が再度スイッチアップしきい値を上回るので高パフォーマンス・レベルが維持される。時刻Ｔ4〜Ｔ6で、プロセッサ利用率レベルが３Ｔ秒の間スイッチダウンしきい値未満のままであり、システムはより低いパフォーマンス・レベルに移行する。プロセッサ利用率が再度スイッチアップしきい値を上回るまで（すなわち時刻Ｔ9まで）、システムはこのより低いパフォーマンス・レベルのままである。
【００１７】
図３は、本発明の一実施形態によるプロセスのフロー図である。図３に示すプロセス３００は、オペレーション３０５で開始し、プロセッサ利用率が現在のパフォーマンス・レベルについて（すなわち現在の周波数で）計算される。この計算は、Ｔ秒ごとに終える。上述したように、Ｔは、プロセッサ利用率の向上を迅速に検出できるように十分小さく、しかしプロセッサ・リソースに過度に負担をかけるほど小さくないように選択する。経験上、一実施形態では、Ｔを１５０ミリ秒（ｍｓ）の値とすることで、一般的なプロセッサ利用率のグラフを示す一般的なシステムには十分であることがわかっている。オペレーション３１０で、システムは、プロセッサ利用率が指定されたスイッチアップしきい値を上回っているかどうかを判断する。本発明の一実施形態では、スイッチアップしきい値は、現在のパフォーマンス・レベルの９５％と指定されている。プロセッサ利用率が指定されたスイッチアップしきい値を上回っている場合、システムは、オペレーション３１５で、プロセッサ利用率がスイッチアップ期間より長くこのしきい値を上回っているかどうかを判断する。スイッチアップ期間は１つまたは複数のプロセッサ利用率監視期間Ｔに等しくてもよい。一実施形態では、プロセッサ監視期間は１５０ミリ秒で、スイッチアップ期間は３００ミリ秒である。
【００１８】
プロセッサ利用率がスイッチアップしきい値を上回っている期間がスイッチアップ期間より短い場合、システムは、オペレーション３２５で、次のプロセッサ利用率監視期間Ｔが満了するまで待ち、オペレーション３０５に戻る。プロセッサ利用率がスイッチアップ期間より長くスイッチアップしきい値を上回っている場合、システムは、オペレーション３２０で、次に高いパフォーマンス・レベルに自動的に移行し、次いでオペレーション３２５に進み上記と同様に進行する。
【００１９】
再度オペレーション３１０を参照する。プロセッサ利用率がスイッチアップしきい値を上回っていないと判断した場合、システムは、オペレーション３３０で、プロセッサ利用率が指定されたスイッチダウンしきい値を下回っているかどうかを判断する。本発明の一実施形態では、スイッチダウンしきい値は、次に低いパフォーマンス・レベルの９５％と指定されている。プロセッサ利用率が指定されたスイッチダウンしきい値を下回っている場合、システムは、オペレーション３３５で、プロセッサ利用率がスイッチダウン期間より長くスイッチダウンしきい値を下回っているかどうかを判断する。スイッチダウン期間は、スイッチアップ期間とは異なっていてもよい。一実施形態では、スイッチアップ期間は３００ミリ秒に等しく、スイッチダウン期間は１０００ミリ秒に等しい。プロセッサ利用率がスイッチダウンしきい値を下回っている期間がスイッチダウン期間より短い場合、システムは、オペレーション３２５で、次のプロセッサ利用率監視期間Ｔが満了するまで待ち、オペレーション３０５に戻る。プロセッサ利用率がスイッチダウン期間より長くスイッチダウンしきい値を下回っている場合、システムは、オペレーション３４０で、次に低いパフォーマンス・レベルに自動的に移行し、次いでオペレーション３２５に進み上記と同様に進行する。
【００２０】
再度オペレーション３３０を参照する。プロセッサ利用率がスイッチダウンしきい値を下回っていないと判断した場合、システムは、オペレーション３２５で、次のプロセッサ利用率監視期間Ｔが満了するまで待ち、オペレーション３０５に戻る。
【００２１】
上記の明細書で、本発明の特定の実施形態の例に関連して本発明を説明してきた。しかし、添付の特許請求の範囲に記載した本発明のより広範な意図および範囲から逸脱することなく様々な修正や変更をそれに加えることができることは明らかである。したがって本明細書および図面は、限定的な意味ではなく、例示的な意味でみなされるものとする。
【００２２】
本発明は、例として示しており、添付の図面の図によって限定されるものではない。図中、同じ参照番号は同じ要素を示す。
【図面の簡単な説明】
【００２３】
【図１】本発明を実施するコンピュータ・システムを示す図である。
【図２】本発明を実施する電力制御回路を示すブロック図である。
【図３】一般的なプロセッサ利用率を示すグラフである。
【図１】
2004533674.tif 000003
【図２】
2004533674.tif 000004
【図３】
2004533674.tif 000005
【国際公開パンフレット】
2004533674.tif 000006
2004533674.tif 000007
2004533674.tif 000008
2004533674.tif 000009
2004533674.tif 000010
2004533674.tif 000011
2004533674.tif 000012
2004533674.tif 000013
2004533674.tif 000014
2004533674.tif 000015
2004533674.tif 000016
2004533674.tif 000017
2004533674.tif 000018
2004533674.tif 000019
2004533674.tif 000020
2004533674.tif 000021
2004533674.tif 000022
【国際公開パンフレット（コレクトバージョン）】
2004533674.tif 000023
2004533674.tif 000024
【国際調査報告】
2004533674.tif 000025
2004533674.tif 000026