(57)【要約】【課題】  コンピュータ・プロセッサ・システムのための消費電力管理方法およびシステムを提供する。  【解決手段】  本発明の方法は、電力使用量を測定するステップと、最終命令に対する命令の実行を監視するステップと、最終命令に対する最終命令アドレスを決定するステップと、最終命令に対する測定された電力使用量を決定するステップと、最終命令アドレスをその測定された電力使用量と関連して消費電力履歴テーブル（ＰＨＴ）にストアするステップとを含む。ＰＨＴにストアされた情報はコンピュータ・プロセッサ・システムによって使用される電力を管理するために使用することが可能である。【選択図】  図１
2008102927.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・プロセッサ・システムのための消費電力管理方法であって、
電力使用量を測定するステップと、
最終命令に対する命令の実行を監視するステップと、
前記最終命令に対する最終命令アドレスを決定するステップと、
前記最終命令に対する測定された電力使用量を決定するステップと、
前記最終命令アドレスを前記測定された電力使用量と関連して消費電力履歴テーブル（ＰＨＴ）にストアするステップと
を含む方法。
【請求項２】
前記電力使用量を測定するステップは、
各実行ユニットに対するオン・タイムを決定するステップと、
すべての実行ユニットに対するオン・タイムを合算するステップと
を含む、請求項１に記載の方法。
【請求項３】
前記電力使用量を測定するステップは、
各実行ユニットに対するオン・タイムを決定するステップと、
各実行ユニットの断片的エリアによってウェート付けされたすべての実行ユニットに対するオン・タイムを合算するステップと
を含む、請求項１に記載の方法。
【請求項４】
前記消費電力履歴テーブルにストアされた前記測定された電力使用量を所定期間後にリセットするステップを更に含む、請求項１に記載の方法。
【請求項５】
ディスパッチ命令に対する命令のディスパッチを監視するステップと、
前記ディスパッチ命令に対するディスパッチ命令アドレスを決定するステップと、
前記ディスパッチ命令アドレスに対する測定された電力使用量を前記消費電力履歴テーブル（ＰＨＴ）から決定するステップと、
前記ディスパッチ命令アドレスに対する測定された電力使用量が電力使用量限界よりも大きい又はそれに等しいかどうかを決定するステップと、
前記ディスパッチ命令アドレスに対する測定された電力使用量が電力使用量限界を超えるとき、省電力処理を実行するステップと
を含む、請求項１に記載の方法。
【請求項６】
前記省電力処理は、実行のための命令を遅い速度で送ることおよび実行のための命令間に「中断」を送ることを含むグループから選択される、請求項５に記載の方法。
【請求項７】
コンピュータ・プロセッサ・システムのための消費電力管理に関するコンピュータ使用可能媒体におけるコンピュータ・プログラムであって、
電力使用量を測定するためのコンピュータ・プログラム・コードと、
最終命令に対する命令の実行を監視するためのコンピュータ・プログラム・コードと、
前記最終命令に対する最終命令アドレスを決定するためのコンピュータ・プログラム・コードと、
前記最終命令に対する測定された電力使用量を決定するためのコンピュータ・プログラム・コードと、
前記最終命令アドレスを前記測定された電力使用量と関連して消費電力履歴テーブル（ＰＨＴ）にストアするためのコンピュータ・プログラム・コードと
を含む、コンピュータ・プログラム。
【請求項８】
前記電力使用量を測定するためのコンピュータ・プログラム・コードは、
各クロック・ゲート付き領域に対するオン・タイムを決定するためのコンピュータ・プログラム・コードと、
すべての前記クロック・ゲート付き領域に対するオン・タイムを合算するためのコンピュータ・プログラム・コードと
を含む、請求項７に記載のコンピュータ・プログラム。
【請求項９】
前記電力使用量を測定するためのコンピュータ・プログラム・コードは、
各クロック・ゲート付き領域に対するオン・タイムを決定するためのコンピュータ・プログラム・コードと、
各クロック・ゲート付き領域の断片的エリアによってウェート付けされたすべてのクロック・ゲート付き領域に対するオン・タイムを合算するためのコンピュータ・プログラム・コードと
を含む、請求項７に記載のコンピュータ・プログラム。
【請求項１０】
前記消費電力履歴テーブルにストアされた前記測定された電力使用量を所定期間後にリセットするためのコンピュータ・プログラム・コードを更に含む、請求項７に記載のコンピュータ・プログラム。
【請求項１１】
ディスパッチ命令に対する命令のディスパッチを監視するためのコンピュータ・プログラム・コードと、
前記ディスパッチ命令に対するディスパッチ命令アドレスを決定するためのコンピュータ・プログラム・コードと、
前記ディスパッチ命令アドレスに対する測定された電力使用量を前記消費電力履歴テーブル（ＰＨＴ）から決定するためのコンピュータ・プログラム・コードと、
前記ディスパッチ命令アドレスに対する測定された電力使用量が電力使用量限界よりも大きい又はそれに等しいかどうかを決定するためのコンピュータ・プログラム・コードと、
前記ディスパッチ命令アドレスに対する測定された電力使用量が電力使用量限界を超えるとき、省電力処理を実行するためのコンピュータ・プログラム・コードと
を含む、請求項７に記載のコンピュータ・プログラム。
【請求項１２】
前記省電力処理は、実行のための命令を遅い速度で送ることおよび実行のための命令間に「中断」を送ることを含むグループから選択される、請求項１１に記載のコンピュータ・プログラム。
【請求項１３】
消費電力管理を行うコンピュータ・プロセッサ・システムであって、
消費電力履歴テーブル（ＰＨＴ）を有する命令フェッチ制御ユニットと、
命令ディスパッチ制御ユニットと、
消費電力制御ユニットを有する命令実行ユニットと、
プログラム状態及びデータ・ユニットと、
を含み、
前記命令ディスパッチ制御ユニットは実行のための命令を前記命令フェッチ制御ユニットから前記命令実行ユニットにディスパッチし、前記消費電力制御ユニットは測定された電力使用量に関して前記命令の実行を監視し、前記プログラム状態及びデータ・ユニットは最終命令アドレスに関して前記命令の実行を監視し、前記測定された電力使用量が前記最終命令アドレスと関連して前記消費電力履歴テーブル（ＰＨＴ）にストアされる、コンピュータ・プロセッサ・システム。
【請求項１４】
前記命令フェッチ制御ユニットは、ブランチ履歴テーブル（ＢＨＴ）を有し、前記最終命令アドレスに関連して前記ブランチ履歴テーブル（ＢＨＴ）にストアされたブランチ履歴に関して前記命令の実行を監視する、請求項１３に記載のコンピュータ・プロセッサ・システム。
【請求項１５】
前記消費電力履歴テーブル（ＰＨＴ）および前記ブランチ履歴テーブル（ＢＨＴ）は単一のテーブルである、請求項１４に記載のコンピュータ・プロセッサ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・プロセッサ・システムに関し、特に、コンピュータ・プロセッサ・システムのための消費電力管理に関するものである。
【背景技術】
【０００２】
コンピュータ・プロセッサ・システムは高速化され続けており、コンポーネントの密度は増加し続けている。これは、コンピュータ・プロセッサ・システムのための消費電力管理ではピーク電力使用量及び平均電力使用量の両方において問題を生じる。高いピーク電力使用量は大型の電源装置を必要とし、デジタル回路においてノイズを増大させることがある。例えば、同時コンポーネント切換えは、パワー／グラウンド・バウンス（power/ground bounce）の原因となり得る高いピーク電力使用量を生じさせることがある。リード線やコンポーネントにおける固有インダクタンス及びキャシタンスによるパワー／グラウンド・バウンスは、その結果として、それぞれ、パワー・バスまたはグラウンド・バス上にノイズを生じる。高い平均電力使用量は費用がかかり、動作上の信頼性を減じ得る熱を発生する。
【０００３】
消費電力管理に対する現在の解決方法は、コンピュータ・プロセッサ・システムの性能にかなり有害な影響を与える。１つの解決方法は、コンピュータ・プロセッサ・システムを低速で稼動することであるが、それはコンピューティング時間を増大させる。もう１つの解決方法は、推測的なオペレーションの実行を少なくすること、即ち、それらオペレーションの結果を必要とすることが知らされる前に行われるオペレーションの数を減少させることである。もう１つの解決方法は、いくつかのオペレーションを並列的に（同時に）遂行することである。別の解決方法は、トランジスタを低速にし且つ雑音余裕を減らすトランジスタの小型化を行うこと、およびトランジスタの速度を下げる酸化物層の厚さを増大させることを含む。消費電力管理に対する現在の解決方法は、コンピュータ・プロセッサ・システムのオペレーションをかなり損なっている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、上記の欠点を克服し得るコンピュータ・プロセッサ・システムのための消費電力管理システム及び方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のコンピュータ・プロセッサ・システムのための消費電力管理システム及び方法は、命令の関連アドレスに対する測定された電力使用量をストアする消費電力履歴テーブル（ＰＨＴ）を提供する。測定された電力使用量は、コンピュータ・プロセッサ・システムのオペレーション中に決定される。コンピュータ・プロセッサ・システムは、関連のアドレスを有する命令が実行されるとき、前に測定された電力使用量に基づいて電力使用を管理することができる。これは、パフォーマンス全体に対する負のインパクトを最小にしながら、大きい電力を必要とする命令にあわせてコンピュータ・プロセッサ・システムを調節することを可能にする。
【０００６】
本発明の１つの側面は、コンピュータ・プロセッサ・システムのための消費電力管理方法を提供する。その方法は、電力使用量を測定するステップ、最終命令（finishing instruction）に対する命令の実行を監視するステップと、最終命令に対する最終命令アドレスを決定するステップと、最終命令に対する測定された電力消費量を決定するステップと、最終命令アドレスをその測定された電力消費量に関連して消費電力履歴テーブル（ＰＨＴ）にストアするステップとを含む。
【０００７】
本発明のもう１つの側面は、コンピュータ・プロセッサ・システムのための消費電力管理に関するコンピュータ使用可能な媒体においてコンピュータ・プログラムを提供する。そのコンピュータ・プログラムは、電力使用量を測定するためのコンピュータ・プログラム・コードと、最終命令に対する命令の実行を監視するためのコンピュータ・プログラム・コードと、最終命令のための最終命令アドレスを決定するためのコンピュータ・プログラム・コードと、最終命令に対する測定された電力消費量を決定するためのコンピュータ・プログラム・コードと、最終命令アドレスをその測定された電力消費量に関連して消費電力履歴テーブル（ＰＨＴ）にストアするコンピュータ・プログラム・コードとを含む。
【０００８】
本発明のもう１つの側面は、プロセッサと、そのプロセッサに接続され、コンピュータ・プロセッサ・システムのための消費電力管理を提供するためのオペレーションを遂行するためデータ処理装置により実行可能な命令をストアするためのメモリとを含む情報処理システムを提供する。そのオペレーションは、電力使用量を測定するステップと、最終命令に対する命令の実行を監視するステップと、最終命令に対する最終命令アドレスを決定するステップと、最終命令に対する測定された電力消費量を決定するステップと、最終命令アドレスをその測定された電力消費量に関連して消費電力履歴テーブル（ＰＨＴ）にストアするステップとを含む。
【０００９】
本発明のもう１つの側面は、消費電力管理機構と共に命令フェッチ制御ユニットを含むコンピュータ・プロセッサ・システムを提供する。命令フェッチ制御ユニットは、消費電力履歴テーブル（ＰＨＴ）、命令ディスパッチ制御ユニット、消費電力制御ユニットを含む命令実行ユニット、並びに、プログラム状態及びデータ・ユニットを有する。命令ディスパッチ制御ユニットは、実行のための命令を命令フェッチ制御ユニットから命令実行ユニットにディスパッチし、消費電力制御ユニットは、測定された電力使用量に関して命令の実行を監視し、プログラム状態及びデータ・ユニットは、最終命令アドレスに関して命令の実行を監視する。測定された電力使用量は最終命令アドレスと関連して消費電力履歴テーブル（ＰＨＴ）にストアされる。
【００１０】
本発明の上記のおよび他の特徴及び利点は、添付図面に関連して読取られる好適な実施例に関する下記の詳細な説明から更に明らかになるであろう。詳細な説明および図面は、「特許請求の範囲」によって定義された発明の範囲および均等物を限定するのではなく、単に発明を明瞭にするものに過ぎない。
【発明を実施するための最良の形態】
【００１１】
図１は、本発明を使用するためのコンピュータ・プロセッサ・システムのブロック図である。コンピュータ・プロセッサ・システム１００は、命令メモリ・ユニット１１０、命令フェッチ制御ユニット１２０、命令ディスパッチ制御ユニット１３０、命令実行ユニット１４０、データ交換バス１５０、プログラム状態及びデータ・ユニット１６０、データ・メモリ・ユニット１７０、及び入出力装置１８０を含む。命令フェッチ制御ユニット１２０における消費電力履歴テーブル（ＰＨＴ）１２４は、コンピュータ・プロセッサ・システム１００が特定の命令に対する電力使用量に適応するよう、命令に対する測定された電力使用量の履歴をアドレス単位でストアする。
【００１２】
命令フェッチ制御ユニット１２０は、命令メモリ・ユニット１１０にストアされた命令をフェッチし、その命令を命令ディスパッチ制御ユニット１３０に供給する。命令ディスパッチ制御ユニット１３０は命令フェッチ制御ユニット１２０の指示の下に命令の流れを制御する。命令実行ユニット１４０は命令を実行し、データを操作する。命令実行ユニット１４０は電力使用量も測定し、その情報をＰＨＴ１２４に供給する。プログラム状態及びデータ・ユニット１６０は命令の実行を追跡し、その情報をＰＨＴ１２４に供給する。
【００１３】
命令フェッチ制御ユニット１２０は、命令メモリ・ユニット１１０にストアされた命令をフェッチし、その命令を命令ディスパッチ制御ユニット１３０に供給する。１つの実施例では、命令は一時に１つフェッチされる。別の実施例では、命令は、５個の命令より成る例示的グループのような１つのグループとしてフェッチされる。命令フェッチ制御ユニット１２０は、ブランチ履歴テーブル（ＢＨＴ）１２２、消費電力履歴テーブル（ＰＨＴ）１２４、および命令キャッシュ１２６を含む。ＢＨＴ１２２及びＰＨＴ１２４は、それぞれ、最終命令アドレスによる命令に対するブランチ履歴及び消費電力履歴をストアする。命令キャッシュ１２６は、命令メモリ・ユニット１１０から呼び出された単一の命令または複数の命令のグループを、それらが命令ディスパッチ制御ユニット１３０の指示の下に命令メモリ・ユニット１１０から転送されてしまうまで保持する。１つの実施例では、ＢＨＴ１２２及びＰＨＴ１２４は別々のテーブルである。別の実施例では、ＢＨＴ１２２及びＰＨＴ１２４は単一のテーブルとして結合される。一般に、ＢＨＴ１２２及びＰＨＴ１２４は同じ数のアドレスを有する。ＢＨＴ１２２及びＰＨＴ１２４において使用されるアドレスの数は特定のアプリケーションに依存するということは当業者には明らかであり、１つの例示的範囲は６４から２００までのアドレスである。それらのアドレスは、ＢＨＴ１２２及び／又はＰＨＴ１２４におけるスペースを節約するために部分的アドレス又は短縮（truncated）アドレスとしてストアすることも可能である。ブランチ及び消費電力の履歴は、命令が完了した後、プログラム状態及びデータ・ユニット１６０における完了テーブル１６３に保持されるので、そのブランチ及び消費電力の履歴を、それぞれ、ＢＨＴ１２２及び／又はＰＨＴ１２４に送ることも可能である。
【００１４】
ＢＨＴ１２２は、最終命令アドレスによる命令に対してインデックスされるブランチ履歴値のテーブルである。ブランチ履歴値は、コンピュータ・プロセッサ・システム１００のオペレーション中に、プログラム状態及びデータ・ユニット１６０が特定のアドレスにおける命令によって行われたブランチまたはその命令によって行われなかったブランチを記憶のためにＢＨＴ１２２に供給することによって決定され得る。例えば、アドレス番号１０を有する命令がブランチＢを１回追従し、ブランチＡを４回追従する。追従されたブランチは、アドレス番号１０を有する命令が実行される度に、プログラム状態及びデータ・ユニット１６０によってＢＨＴ１２２に供給される。その履歴に基づいて、アドレス番号１０を有する命令は８０％の回数だけブランチＡを追従し、２０％の回数だけブランチＢを追従する。ブランチＡを追従する可能性を「高」としてＢＨＴ１２２にストアし、ブランチＢを追従する可能性を「低」としてＢＨＴ１２２にストアすることも可能である。アドレス番号１０を有する命令が将来の実行のために呼び出されるとき、命令フェッチ制御ユニット１２０は追従される可能性の高いブランチに関してＢＨＴ１２２を照会し、その可能性の高いブランチに沿って推測的な実行を開始することが可能である。この実施例の場合、ブランチＡがブランチＢよりも可能性の高いブランチであるので、推測的な実行はブランチＡに沿って開始し得る。従って、処理時間を節約するために、実際の実行に先行して推測的な実行を進めることができる。可能性が高いブランチがその追従されたブランチでないとき、推測的な実行の結果は破棄され得る。
【００１５】
ＰＨＴ１２４は、最終命令アドレスにより命令に対して指標付けされる測定された電力使用量の値のテーブルである。測定された電力使用量の値が、プログラム状態及びデータ・ユニット１６０が特定のアドレスにおける命令を提供することによって、および命令実行ユニット１４０における消費電力制御ユニット１４２がその測定された電力使用量を提供することによって、コンピュータ・プロセッサ・システム１００のオペレーション中に決定され、ＰＨＴ１２４にストアされ得る。例えば、アドレス番号１０を伴う命令は終了しつつあり、消費電力制御ユニット１４２はその終了しつつあることを検出して、アドレス番号１０をＰＨＴ１２４に供給する。消費電力制御ユニット１４２は、アドレス番号１０を有する命令が実行されつつある間、「高」、「中間」、「低」等のような測定された電力使用量をＰＨＴ１２４に供給する。その電力使用量は、アドレス番号１０に関連してＰＨＴ１２４にストアされ得る。アドレス番号１０を有する命令が将来の実行のために呼び出されるとき、命令フェッチ制御ユニット１２０は測定された電力使用量に関してＰＨＴ１２４を照会し、命令をディスパッチする方法を命令ディスパッチ制御ユニット１３０に指示するというようにコンピュータ・プロセッサ・システム１００に関する電力使用量を適切に管理することが可能である。
【００１６】
ＰＨＴ１２４のアドレス部分は命令に対するアドレスをストアし、電力使用量部分は特定のアドレスに対する測定された電力使用量をストアする。１つの実施例では、電力使用量部分は単一ビット幅であり、測定された電力使用量は「高」または「低」としてストアされる。もう１つの実施例では、電力使用量部分は２ビット幅であり、測定された電力使用量は「高」、「中間」、「低」、または「未知」としてストアされ得る。別の実施例では、電力使用量部分は２ビットよりも大きい幅であってもよく、測定された電力使用量の細かい増分がストアされてもよい。１つの実施例では、ＰＨＴ１２４およびＢＨＴ１２２は単一のテーブルにおいて結合され、従って、両方に対して単一の列にアドレスがストアされる必要があるだけである。ＰＨＴ１２４を特定のアプリケーションに対して所望のサイズにすることが可能であるということは当業者には明らかであろう。
【００１７】
命令キャッシュ１２６は、命令メモリ・ユニット１１０から命令フェッチ制御ユニット１２０において受取られ、命令ディスパッチ制御ユニット１３０に供給される命令または命令のグループを保持する。命令ディスパッチ制御ユニット１３０は、実行及び／又は消費電力管理のための流れを制御し得る命令フェッチ制御ユニット１２０の指示の下に命令キャッシュ１２６からの命令または命令のグループのながれを制御することができる。
【００１８】
命令実行ユニット１４０は、消費電力制御ユニット１４２及び実行ユニット（ＥＵ）１４４を含む。命令実行ユニット１４０は、命令ディスパッチ制御ユニット１３０から命令を受取り、データ交換バス１５０からデータを受取り、ＥＵ１４４において命令を実行し、データ交換バス１５０にデータを戻す。現在の命令実行のためにはＥＵ１４４が必要とされないとき、電力使用量を減らすために、消費電力制御ユニット１４２の指示の下に１つ又は複数のＥＵをシャットダウンすることも可能である。消費電力制御ユニット１４２は電力使用量を測定し、測定された電力使用量をＰＨＴ１２４に供給する。
【００１９】
データ交換バス１５０は、命令実行ユニット１４０、プログラム状態及びデータ・ユニット１６０、データ・メモリ・ユニット１７０、及び入出力装置１８０の間でデータを搬送する。データ・メモリ・ユニット１７０はデータをストアし、入出力装置１８０はコンピュータ・プロセッサ・システム１００に対するデータ及び命令の入力及び出力を可能にする。プログラム状態及びデータ・ユニット１６０はデータ・キャッシュ１６２を含み、データ・キャッシュ１６２は命令実行ユニット１４０とデータ・メモリ・ユニット１７０との間でデータを一時的にキャッシュする。プログラム状態及びデータ・ユニット１６０は最終命令を追跡し、最終命令アドレスをＰＨＴ１２４に供給する。プログラム状態及びデータ・ユニット１６０は、完了テーブル１６３を使用して実行中の命令及びブランチ履歴を追跡し、それらをＢＨＴ１２２に供給する。
【００２０】
図示のコンピュータ・プロセッサ・システム１００は単なる一例であり、他の構成が可能であることは当業者には明らかであろう。例えば、プログラム状態及びデータ・ユニット１６０はコンピュータ・プロセッサ・システム１００における他の場所に設けられてもよく、データ交換バス１５０への接続に限定されない。
【００２１】
図２は、本発明に従って遂行される消費電力管理方法に関する消費電力履歴テーブル管理のフローチャートである。消費電力履歴テーブル管理方法２００は、コンピュータ・プロセッサ・システムに関する消費電力を管理するために使用し得る測定された電力使用量の値を消費電力履歴テーブル（ＰＨＴ）に設定する。
【００２２】
方法２００はＰＨＴを初期化することによって開始する（ステップ２０３）。コンピュータ・プロセッサ・システムにおける電力使用量が測定される（ステップ２０４）。命令の実行が最終命令に関して監視され（ステップ２０６）、命令が最終のものであるかどうかが決定される（ステップ２０８）。命令が最終のものでない場合、方法２００は命令実行の監視を継続する（ステップ２０６）。命令が最終のものである場合、最終命令に対するアドレスが決定され（ステップ２１０）、最終命令に対する測定された電力使用量が決定される（ステップ２１２）。最終命令のアドレス及び測定された電力使用量が相互に関連してＰＨＴにストアされる（ステップ２１４）。実行される次の命令に対する電力使用量の追跡を可能にするために、電力使用量がリセットされる（ステップ２１６）。１つの実施例では、方法２００はＰＨＴを初期化することによって継続することが可能である（ステップ２０３）。もう１つの実施例では、方法２００は電力使用量を測定することによって継続することが可能である（ステップ２０４）。
【００２３】
方法２００は、図２に示されるように、任意選択的なリセット・ルーチンを含むこともできる。任意選択的なリセット・ルーチンは、種々のアドレスを長期間にわたって種々に使用する種々のコンピュータ・アプリケーションから成る。例えば、スプレッドシートのような１つのアプリケーションは、特定のアドレスに対しては少ない電力を使用し得るし、その後実行される別のプログラムは大きい電力を使用し得る。所定数のオペレーションまたは所定量の時間の後にＰＨＴをリセットすることは、ＰＨＴが種々のアプリケーションによる種々の電力使用量を保持することを可能にする。
【００２４】
任意選択的なリセット・ルーチンは、アプリケーション・リセット・カウンタが、所定の期間を定義するアプリケーション・リセット限界よりも大きい又はそれに等しいかどうかを決定する（ステップ２１８）。アプリケーション・リセット・カウンタがアプリケーション・リセット限界よりも大きくなく又はそれに等しくないとき、アプリケーション・リセット・カウンタはインクリメントされ（ステップ２２０）、方法２００は電力使用量の測定を継続する（ステップ２０４）。アプリケーション・リセット・カウンタがアプリケーション・リセット限界よりも大きい又はそれに等しいとき、ＰＨＴはリセットされ（ステップ２２２）、アプリケーション・リセット・カウンタはリセットされる（ステップ２２４）。１つの実施例では、方法２００は、ＰＨＴを初期化することによって継続することができる（ステップ２０３）。別の実施例では、方法２００は、電力使用量を測定することによって継続することができる（ステップ２０４）。アプリケーション・リセット限界に対する値を特定のアプリケーションに対する要望どおりに選択することも可能であることは当業者には明らかであろう。１つの例では、アプリケーション・リセット限界は１００万である。
【００２５】
ＰＨＴは、そのＰＨＴにおける測定された電力使用量に関する値を所定の電力使用量の値にセットするように初期化される（ステップ２０３）。一般に、測定された電力使用量の値は低い値又は未知の値に初期化される。１つの実施例では、ＰＨＴの電力使用量部分が単一ビット幅であり、測定された電力使用量が「高」又は「低」としてストアされるとき、所定の電力使用量の値は「低」である。別の実施例では、ＰＨＴの電力使用量部分が２ビット幅であり、測定された電力使用量が「高」、「中間」、「低」、又は「未知」としてストアされるとき、所定の電力使用量の値は「未知」である。関連の命令の実行中に測定された電力使用量によって高い値が保証される場合、測定された電力使用量をその高い値まで増加させることも可能である。
【００２６】
コンピュータ・プロセッサ・システムにおける電力使用量を測定する場合（ステップ２０４）、その特定のコンピュータ・プロセッサ・システムの設計にとって最善の結果を与えるように測定方法を選択することも可能である。１つの実施例では、特定の命令の実行を必要としない実行ユニット（ＥＵ）は、その特定の命令が実行されている間、シャットダウンされる。一例として、各ＥＵは集積回路のクロック・ゲート付き領域であると考えることもできる。電力使用量を測定するために、クロックが各ＥＵと関連付けられ、そして各実行ユニットに対するオン・タイム（on-time）を追跡するために関連のＥＵがオンにされるとき、各クロックは稼動し得る。命令が終了するとき、測定された電力使用量を決定するためにすべてのクロックに対するオン・タイムを合算することが可能である。ＥＵの関連エリアを占めることによって、より正確な電力使用量測定が得られる。命令が終了するとき、測定された電力使用量を決定するために各ＥＵの断片的エリアごとにウェート付けることによって、全クロックに対するオン・タイムを合算することが可能である。例えば、全ＥＵの合計エリアの半分であるＥＵは全ＥＵの合計エリアの四分の一であるＥＵの２倍も重くウェート付けされるであろう。断片的エリア別のウェート付けは電力使用量がＥＵのエリアに比例することを可能にする。単一のＥＵが幾つもの又は多数のクロック・ゲート付き領域に分裂し得ること、及びこれらのクロック・ゲート付き領域の各々が電力使用量測定に反映されることは当業者には明らかであろう。別の実施例では、コンピュータ・プロセッサ・システムにおける電力使用量の測定（ステップ２０４）は電力使用量の表示としてパワー・レール（powerrail）の温度を測定することを含む。
【００２７】
最終命令のアドレスおよび測定された電力使用量はＰＨＴにストアされる（ステップ２１４）。即ち、最終命令のアドレスは測定された電力使用量に関連してストアされる。そのアドレスは、ＰＨＴにおけるスペースを節約するために部分的アドレスまたは短縮アドレスとしてストアされてもよい。１つの実施例では、１つの命令に対して決定された最新の電力使用量がＰＨＴにストアされ、従ってそのストアされた値はいつも最新の値である。別の実施例では、１つの命令に対して決定された最高の測定された電力使用量がＰＨＴにストアされ、従ってそのストアされた値は最大の測定された値である。新たに決定された測定された電力使用量は現在ストアされている測定された電力使用量と比較され、新たに決定された測定された電力使用量が現在ストアされている測定された電力使用量よりも大きいときだけ、新たに決定された測定された電力使用量がＰＨＴにストアされる。例えば、現在ストアされている測定された電力使用量が「低」である場合、新たに決定された測定された電力使用量が「中間」または「高」であるときにだけその新たに決定された測定された電力使用量がストアされる。更に別の実施例では、新たに決定された測定された電力使用量が現在ストアされている測定された電力使用量を超える度にＰＨＴにストアされていた測定された電力使用量がインクリメントされ、従って、ＰＨＴにストアされていた測定された電力使用量は徐々に増加する。例えば、現在ストアされている測定された電力使用量が「低」である場合、新たに決定された測定された電力使用量が「中間」または「高」であるときにその測定された電力使用量が「中間」としてＰＨＴにストアされる。測定された電力使用量のＰＨＴへのストアは特定のアプリケーションにとって望ましいように選択され得るということは当業者には明らかであろう。
【００２８】
図３は、本発明に従って遂行される消費電力履歴テーブルを使用する消費電力管理の方法のフローチャートである。消費電力履歴テーブル管理の使用方法３００は、コンピュータ・プロセッサ・システムのための電力を管理するためにアドレス単位で消費電力履歴テーブル（ＰＨＴ）にストアされた測定された電力使用量を使用する。
【００２９】
方法３００は、ディスパッチされた命令に対する命令のディスパッチを監視することによって開始する（ステップ３０４）。命令がディスパッチされようとしているかどうかが決定される（ステップ３０６）。ディスパッチされる命令がないとき、方法３００は、命令ディスパッチを監視することによって継続する（ステップ３０４）。ディスパッチされる命令があるとき、そのディスパッチ命令に対するディスパッチ命令アドレスが得られる（ステップ３０８）。ディスパッチ命令に対して得られたディスパッチ命令アドレスに関する測定された電力使用量がＰＨＴからルックアップされる（ステップ３１０）。ディスパッチ命令アドレスに関する測定された電力使用量が電力使用量限界よりも大きい又はそれに等しいかどうかが決定される（ステップ３１２）。測定された電力使用量が電力使用量限界よりも大きくなく又はそれに等しくないとき、命令の正規のディスパッチが実行され（ステップ３１６）、方法３００は命令ディスパッチの監視を継続することができる。測定された電力使用量が電力使用量限界よりも大きい又はそれに等しいとき、命令の省電力ディスパッチが省電力処理として実行され（ステップ３１４）、方法３００は終了する（ステップ３１８）。方法３００は、命令ディスパッチの監視を継続することもできる（ステップ３０４）。
【００３０】
測定された電力使用量が電力使用量限界よりも大きい又はそれに等しいかどうかを決定するときに使用される電力使用量限界は所定の限界又は個々に選択された限界であってもよい。所定の限界は固定されている。例えば、電力使用量限界が「中間」という所定の限界である場合、命令の省電力ディスパッチの実行は、測定された電力使用量が「中間」又は「高」であるときに行われる（ステップ３１４）。個々に選択された限界は、ユーザによって入力されるか又はプログラム制御の下で調節されてもよい。１つの例では、ユーザは、電力使用量限界が「中間」ではなく「低」にセットされるとき、コンピュータ・プロセッサ・システムは更に多くの電力を節約し、実行時間要件に適合するということを知り得るので、ユーザは電力使用量限界を「低」にセットする。もう１つの例では、コンピュータ・プロセッサ・システムは、電力使用量限界が「低」にセットされる場合には実行時間が遅すぎるということを検知し得るし、プログラム制御の下に電力使用量限界を「中間」にセットし得る。
【００３１】
測定された電力使用量が電力使用量限界よりも大きい又はそれに等しいとき、命令の省電力ディスパッチが省電力処理として実行される（ステップ３１４）。省電力処理の例は、実行のための命令を遅い速度で送ること及び実行のための命令相互間に「中断（break）」を送ることを含む。命令の実行速度は、命令が命令実行ユニットにディスパッチされる方法を調節することによって電力使用量を減少させるように減少し得る。１つの実施例では、命令または命令のグループのディスパッチ速度は、命令実行ユニットにおける実行速度を減少させるように減少し得る。命令のグループに対して、そのグループ全体を１回ディスパッチするのではなく、一時に１つの命令がディスパッチされ得る。別の実施例では、命令実行ユニットにおける実行速度を減少させるために、命令間に「中断」を挿入することも可能である。消費電力管理の必要性から見て所望の実行速度を提供するように、「中断」の数及び／又は期間が選択され得る。アドレスに関する命令が高い測定された電力使用量を有するとき、より多くの中断が行われ得る。
【００３２】
消費電力管理のための命令の省電力ディスパッチは、ＰＨＴにストアされるとき、測定された電力使用量を表すように調整され得る。例えば、測定された電力使用量の中間値を有するアドレスよりも、高い値の測定された電力使用量を有するアドレスに対して大きい省電力を具現化し得る。高い値のアドレスに対して遅いディスパッチ速度を使用することが可能である。調整の制御の細かさ、測定された電力使用量データ・ストレージの細かさに適合し得る。即ち、１６個の可能な測定された電力使用量の増分を提供する４ビットの測定された電力使用量データ・ストレージは、４個の可能な測定された電力使用量の増分を提供する２ビットの測定された電力使用量データ・ストレージよりも細かな制御を省電力に施すことが可能である。
【００３３】
特定のコンピュータ・プロセッサ・システムの操作目標および特性に基づいて、電力使用量限界および消費電力管理のための命令を選択し得るということは当業者には明らかであろう。操作目標がピーク電力を減少させることであるとき、或る電力使用量限界が最適となり得る。操作目標が平均電力を減少させることであるとき、異なる電力使用量限界が最適となり得る。例えば、高い電力使用量限界は、多くの場合、ピーク電力の制御に適するし、低い電力使用量限界は平均電力の制御に適する。
【００３４】
図４は、本発明に従って遂行される消費電力管理の方法のための情報処理システムのブロック図である。情報処理システム４０１は、本明細書に開示されたオペレーションを遂行することができるコンピュータ・システムの単純化された例である。情報処理システム４０１は、ホスト・バス４０５に接続されたプロセッサ４００を含む。ホスト・バス４０５にはレベル２（Ｌ２）キャッシュ・メモリ４１０も接続される。ホスト・ＰＣＩ間ブリッジ４１５がメイン・メモリ４２０に接続される。ブリッジ４１５は、キャッシュ・メモリ及びメイン・メモリ制御機能を含み、ＰＣＩバス４２５、プロセッサ４００、Ｌ２キャッシュ４１０、メイン・メモリ４２０、及びホスト・バス４０５の間の転送を処理するためのバス制御を提供する。ＰＣＩバス４２５は、例えば、ＬＡＮカード４３０及び／又はビデオ・カード４３２を含む種々の装置に対するインターフェースを提供する。ビデオ・カード４３２は、液晶ディスプレイ（ＬＣＤ）、陰極線管（ＣＲＴ）ディスプレイ、投影ディスプレイ等のようなディスプレイ装置４５０に動作可能に接続される。ビデオ・カード４３２は、特定のアプリケーションにとっては望ましいＡＧＰまたはＰＣＩエクスプレス・バスのような他のタイプのバスに取り付けられてもよい。
【００３５】
ＰＣＩ・ＩＳＡ間ブリッジ４３５は、ＰＣＩバス４２５及びＩＳＡバス４４０と、ユニバーサル・シリアル・バス（ＵＳＢ）機能４４５と、ＩＤＥ装置機能４５０、消費電力管理機能４５５との間の転送を処理するためのバス制御を提供し、リアル・タイム・クロック（ＲＴＣ）、ＤＭＡ制御、割込みサポート、及びシステム管理バス・サポートのような図示されてない他の機能的素子を含み得る。周辺装置および入出力（Ｉ／Ｏ）装置は、ＩＳＡバス４４０に接続された種々のインターフェース（例えば、パラレル・インターフェース４６２、シリアル・インターフェース４６４、赤外線（ＩＲ）インターフェース４６６、キーボード・インターフェース４６８、マウス・インターフェース４７０、固定ディスク（ＨＤＤ）４７２）に接続され得る。それとは別に、多くのＩ／Ｏ装置を収容するためにスーパＩ／Ｏコントローラ（図示されてない）をＩＳＡバス４４０に接続することも可能である。消費電力管理の方法が使用されるコンピュータ・プロセッサ・システムのための電力使用量を測定するために、及び／又は命令ディスパッチを調節するために、特定のＩ／Ｏ装置を使用することが可能であるということも当業者には明らかであろう。
【００３６】
ＢＩＯＳ４８０がＩＳＡバス４４０に接続され、それは、種々の低レベルのシステム機能及びシステム・ブート機能のための必要なプロセッサ実行可能コードを組み込む。ＢＩＯＳ４８０は、磁気記憶媒体、光学的記憶媒体、フラッシュ・メモリ、ランダム・アクセス・メモリ、リード・オンリ・メモリ、及び命令を符号化する信号（例えば、ネットワークからの信号）を搬送する通信媒体、を含む任意のコンピュータ可読媒体にストアされてもよい。ネットワークを介してファイルをコピーすべく、情報処理システムを他のコンピュータ・システムに接続するために、ＬＡＮカード４３０がＰＣＩバス４２５及びＰＣＩ・ＩＳＡ間ブリッジ４３５に接続される。同様に、電話回線接続を使用してインターネットに接続すべく、コンピュータ・システム４０１をＩＳＰに接続するために、モデム４７５がシリアル・ポート４６４およびＰＣＩ・ＩＳＡ間ブリッジ４３５に接続される。
【００３７】
図４に示されたコンピュータ・システムは本明細書に開示された発明を実施することができるが、このコンピュータ・システムはコンピュータ・システムの単なる一例である。多くの他のコンピュータ・システムが本明細書に開示された発明を遂行することができるということも当業者には明らかであろう。
【００３８】
本発明の好適な実施態様の１つは、アプリケーション、即ち、例えばコンピュータのランダム・アクセス・メモリに常駐し得るコード・モジュールにおける一連の命令（プログラム・コード）である。その一連の命令は、コンピュータによって要求されるまで、他のコンピュータ・メモリ、例えば、ハードディスク・ドライブに、または光ディスク（ＣＤ−ＲＯＭにおける究極的な使用のため）またはフロッピ・ディスクのような取外し可能記憶装置にストアされるか、またはインターネット又は他のコンピュータ・ネットワークを介してダウンロードされ得る。従って、本発明は、コンピュータ可読媒体上に記憶され、データを表示するオペレーションを遂行するためにデジタル処理装置によって実行され得るコンピュータ・プログラムとして具現化することも可能である。更に、開示された種々の方法は、選択的に作動されるか又はソフトウェアによって再構成される汎用コンピュータにおいて都合よく具現化されるが、そのような方法は、必要な方法ステップを遂行するように構成されたハードウェア、ファームウェア、またはもっと特殊化された装置において実行されてもよい。
【００３９】
本明細書において開示された発明の実施例は現時点では望ましいものと思われるが、本発明の真意および範囲を逸脱することなく、種々の変更および修正を施すことも可能である。発明の範囲は、「特許請求の範囲」において表わされ、均等物の意味および範囲内にあるすべての変更がそこに包含されることになる。
【図面の簡単な説明】
【００４０】
【図１】本発明と共に使用するためのコンピュータ・プロセッサ・システムのブロック図である。
【図２】本発明に従って遂行される消費電力管理方法のための消費電力履歴テーブル管理のフローチャートである。
【図３】本発明に従って遂行される消費電力履歴テーブルを使用する消費電力管理方法のフローチャートである。
【図４】本発明に従って遂行される消費電力管理方法のための情報処理システムのブロック図である。
【図１】
2008102927.tif 000003
【図２】
2008102927.tif 000004
【図３】
2008102927.tif 000005
【図４】
2008102927.tif 000006