説明

電源マネージャ及び電源管理方法

電子デバイスへの供給電力量を管理する電源マネージャ(106)及び電源管理方法を提供する。また更に、電子デバイスへの供給電力量が管理されるようにしたシステムを提供する。電源マネージャ(106)は監視期間中にハードウェアモニタ(104)を監視するために作動するように構成されている。前記ハードウェアモニタ(104)は電子デバイス(102)に接続されている。前記電子デバイス(102)はその動作中にワークロードを有するデバイスである。前記ハードウェアモニタ(104)は、前記電子デバイス(102)のワークロード指標値を生成するように構成されている。更に、前記電源マネージャは、監視結果に従って前記電子デバイス(102)への供給電力量を制御するように構成されている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は電源マネージャに関する。
【0002】
本発明は更に、電子デバイスを備えた電子システムに関する。
【0003】
本発明は更に、電子デバイスへの供給電力量を管理する電源管理方法に関する。
【0004】
本発明は更に、コンピュータプログラム製品に関する。
【背景技術】
【0005】
最近の電子デバイスにおいては電源管理の重要性が益々高まってきている。例えば、バッテリ駆動式の電子デバイスにも、ビデオクリップ再生機能などの演算処理負荷の大きな機能が装備されるようになった。このような演算処理負荷の大きな機能は、より多くの電力量を必要とする。一方、それと同時に、スタンバイ時間及び動作時間をより長くすることが望まれている。更には、環境上の理由からも、電力を無用に消費しないことは重要である。
【0006】
集積回路(IC)などの電子デバイスが消費するエネルギ量即ち電力消費量を抑制するために、動的電源管理(Dynamic Power Management:DPM)と呼ばれる技法が用いられている。電子デバイスがアプリケーションを実行しているときには、その実行に必要とされるその電子デバイスのパフォーマンスレベルが時々刻々と変化するが、DPMは、電子デバイスへの供給電力量を動的にスケーリング(増減)することにより、その電子デバイスへの供給電力量を、その電子デバイスのパフォーマンスレベルに丁度見合うだけの電力供給量にする技法である。
【0007】
電子デバイスがアプリケーションを実行しているときには、その電子デバイスのワークロードがダイナミックに変化している。そのため、電子デバイスへの供給電力量をスケーリングする場合には、将来時点において必要とされる電力量、即ち将来必要電力量を予測しなければならない。電子デバイスの将来必要電力量の予測精度が高いほど、節約できる電力量も大きくなる。
【0008】
オペレーティングシステム(OS)上でアプリケーションを実行しているコンピュータへの供給電力量を制御する方法の1つに、過去時点においてある特定のタスクを実行するためにプロセッサが費やしたクロックサイクルの個数に基づいて、その供給電力量の制御を行うという方法がある。ある特定のタスクを実行するために費やされるクロックサイクルの個数は、OSによって測定される。この方法に付随する問題は、ある特定のタスクを実行するために費やされるクロックサイクルの個数を測定する測定動作をトリガする(開始させる)事象が、OS関連事象に限られてしまうことであり、例えば、タスクの切替えが行われるという事象や、OSのタイマーティックが開始するという事象などによって、その測定動作がトリガされるようにしている。また、ある特定のタスクのために費やされるクロックサイクルの個数を測定する測定動作は、その実行頻度を増大させることができず、これは、OSがソフトウェアで実行されていることによるものである。そして、その測定動作の実行頻度を増大させることができないことから、OSによって生成されるデータは、高い分解能を有するものとはなり得ない。また、OSばかりでなく、一般的にソフトウェアプログラムによって生成されるデータはその粒状度が粗く、そのようなデータに基づいて、より微細な粒状度を有するタイムスケール上の電力消費量のパターンを把握することは不可能である。
【発明の概要】
【発明が解決しようとする課題】
【0009】
従って、供給電力量を制御するために実行するワークロード監視動作における監視結果の精度がよくないことが、従来より問題となっていた。
【0010】
本発明の目的は、電子デバイスへの供給電力量の制御動作を改善することにある。
【課題を解決するための手段】
【0011】
上記目的は、本発明に係る電源マネージャにより達成される。本発明に係る電源マネージャは監視期間中にハードウェアモニタを監視する監視動作を実行するように構成されている。前記ハードウェアモニタは電子デバイスに接続されている。前記電子デバイスはその動作中にワークロードを有するデバイスである。前記ハードウェアモニタは、前記電子デバイスのワークロード指標値を生成するように構成されている。前記電源マネージャは、前記監視動作の監視結果に従って前記電子デバイスへの供給電力量を制御するように構成されている。
【0012】
電子デバイスの動作中に、その電子デバイスのワークロードは、大きくなるときもあれば、小さくなるときもある。電子デバイスの将来時点でのワークロード、即ち将来ワークロードを、より高い精度で予測することができれば、それによって電子デバイスの電源管理を改善することができる。即ち、電子デバイスのワークロードが小さくなるときには、その電子デバイスへの供給電力量を低下させるようにすることができる。
【0013】
電子デバイスの将来ワークロードを予測するには、その予測の基礎となるデータとして、高精度のデータを取得する必要がある。高精度のデータを取得するには、ハードウェアモニタを用いるとよい。ワークロードを高精度で表したデータに基づいて供給電力量の制御を行うことにより、その制御動作をより優れたものとすることができる。その結果として、電子デバイスへの供給電力量を低減することができ、即ち省電力が可能となる。電子デバイスがバッテリ駆動式のものである場合には、バッテリが長持ちするようになる。
【0014】
そのワークロードを監視することのできる電子デバイスの具体例としては、例えば、集積回路(IC)などがあり、また、ステッパモータなどのメカトロニクスデバイスなどもそのワークロードを監視することのできる電子デバイスである。この種の電子デバイスの具体例としては更に、演算処理デバイスや、データ処理デバイスなどがあり、特にデータ処理デバイスの一例としては、例えば、携帯電話端末に装備されているビデオ処理ユニットなどが挙げられる。
【0015】
また特に、コンピュータプログラム即ちソフトウェアを実行するように構成された中央処理装置(CPU)などが、ここでいう電子デバイスに該当する。また、CPUが音楽アプリケーションやビデオアプリケーションなどのアプリケーションを実行しているときには、そのCPUのワークロードが、あるときは大きくなり、あるときは小さくなる。
【0016】
ワークロードとは、所定長さの期間中に電子デバイスが実行する仕事量を直接的に言い表したものである。例えば、ワークロードを表す値、即ちワークロード指標値としては、所定長さの期間中のクロックサイクルの総個数に対する、当該期間中に実際に仕事が行われたクロックサイクルの個数の比の値をもって、ワークロード指標値とすることもある。また、電子デバイスの消費電力量の値をもってワークロード指標値とすることもある。
【0017】
電子デバイスは動作中に電力を必要とする。電子デバイスが必要とする電力量は、その電子デバイスが実行しようとする動作に応じて決まる。電子デバイスが通常の動作を実行しているときに、その電子デバイスへの供給電力量を変化させると、それによって、その電子デバイスの動作速度だけが変化する。電子デバイスへの供給電力量を変化させることによって、その電子デバイスが実行する動作それ自体に影響を及ぼすことはない。
【0018】
先に言及したハードウェアモニタは、細粒な分解能で電子デバイスのワークロード指標値を生成するように構成されている。例えば、クロック駆動式の電子デバイスでは、分解能は、そのクロックサイクルの発生間隔に等しいものである。
【0019】
電子デバイスがCPUである場合には、ハードウェアモニタは、例えば、そのCPUがノーオペレーション命令(NOP命令)を実行中であるか否か、即ち、そのCPUがスリープモード若しくはアイドルモードにあるか否かを表す値を生成する。様々なCPUのうちには、その出力バッファをブロッキングすることによってアイドルモードに入るものがある。そのようなCPUでは、ハードウェアモニタによって、その出力バッファのブロッキング状態を監視するようにすればよい。
【0020】
ハードウェアモニタの典型的な一例は、いわゆるハードウェア事象カウンタであり、これは、ハードウェアパフォーマンスカウンタと呼ばれることもあり、また、パフォーマンス監視装置(Performance Monitoring Unit:PMU)と呼ばれることもある。
【0021】
ハードウェア事象カウンタは殆どのプロセッサに組込まれており、ハードウェア事象カウンタは周知の機構である。最近の殆どのプロセッサには、そのプロセッサの特定のサブユニットとアプリケーションとの間のインターアクションに関するパフォーマンス事象を監視するためのハードウェア事象カウンタが装備されている。そのような事象カウンタに関しては、例えば、Intel Corporation. Intel Architecture Software Developer's Manual. Volume 3: System Programming Guide, 2004; SGI. Topics In Irix Programming, Chapter 4; A. Singhal and A. J. Goldberg. Architectural Support for Performance Tuning; A Case Study on the SPARC center 2000. ACM SGARCH Computer Architecture News, Proc. of the 21st Annual International Symposium on Computer Architecture (ISCA 94), 22(2), April 1994; L. Smolders, PowerPC Hardware Performance Monitoring. Technical report, AIX Performance, IMB Server Group, November 2001; L. Smolders. System and Kernel Thread Performance Monitor API Reference Guide. IBM, RS/6000 Division, 2001 などの諸文献を参照されたい。
【0022】
電力量の制御は、状態マシンをしかるべき状態へ遷移させることによって行うことができる。より具体的には、例えば、電力量の制御は、アイドル状態にある電子デバイスをオフ状態に遷移させることによって行うことができる。
【0023】
電力量の制御は電源線の経路変更によって行うこともできる。更に、電力量の制御は、例えば電源制御機構などの他のユニットに命令を発して、電源線から電子デバイスへ供給される電力量を増減させることによっても行うことができる。
【0024】
本発明の特に実用的な1つの実施の形態によれば、前記電源マネージャは、電子デバイスに接続されたクロック線上のクロック周波数を制御することにより前記供給電力量を制御するように構成されている。
【0025】
本発明の特に実用的な1つの実施の形態によれば、前記電源マネージャは、電子デバイスへの供給電圧を制御することにより前記供給電力量を制御するように構成されている。
【0026】
本発明は、ワークロードが実質的に周期性を有するものである場合に特に有益なものである。
【0027】
ワークロードが周期性を有する場合には、容易に将来ワークロードを予測することができる。なぜならば、ワークロードが周期性を有する場合には、過去ワークロードが、そのまま将来ワークロードを表しているからである。アプリケーションが周期性を有していることが検出できたならば、若しくは、アプリケーションの現在の実行状況が周期性を有していることが検出できたならば、それは将来ワークロードの予測精度を改善できることを意味している。
【0028】
OSを利用してワークロードナンバーを取得する方式には、例えばパーセンテージなどの値によって単にCPUのワークロードナンバーを与えるに過ぎないということが問題となっている。そのため、OSを利用して取得したワークロードナンバーに基づいて電源管理を実行する電源マネージャは、ワークロード指標値が大きな値を持つ期間の開始時刻を判定することができず、また、周期性をもって反復して変化するワークロードの周波数や周期の長さを判定することができない。更に、OSを利用して取得したワークロードナンバーに基づいた方式では、ワークロード周期の正確な長さも、正確な位相も検出することができない。
【0029】
前記電源マネージャは、周期性を有するワークロードのワークロード周波数を検出するためには、例えばある1つのワークロード周期からその次のワークロード周期までの経過時間を検出するように構成されたものとしてもよく、また、周期性を有するワークロードのワークロード位相を検出するためには、例えばその周期性を有するワークロードのワークロード負荷の発生開始時刻を検出するように構成されたものとしてもよい。
【0030】
本発明の好適な1つの実施の形態によれば、前記電源マネージャは、監視しているワークロード指標値における立上りエッジを検出するように構成されており、検出された立上りエッジに従って前記供給電力量の制御が行われるように構成されている。
【0031】
電子デバイスのワークロード指標値における急上昇部分である立上りエッジを検出することによって、ワークロード指標値が大きな値を持つ期間の開始時刻を検出することができる。尚、エッジを検出する際には、高精度のデータに基づいてそのエッジ検出を行う必要がある。
【0032】
ワークロード指標値における急上昇部分の検出基準としては、例えば、ハードウェアモニタが次々と生成するワークロード指標値が、所定時間内に所定の大きさの上昇率で上昇したとき、或いは、ハードウェアモニタが次々と生成するワークロード指標値が、所定時間内に所定の大きさの上昇量で上昇したとき、或いは、ハードウェアモニタが次々と生成するワークロード指標値が所定値以上である割合が、所定時間内に所定割合を超えたときなどに、そのことをもってワークロード指標値における急上昇部分が検出されたものとすることができる。
【0033】
ワークロード指標値における急上昇部分の検出基準としては更に、例えば、最初にハードウェアモニタ測定値の移動平均値を算出し、次いでその移動平均値が急上昇したときに、そのことをもってワークロード指標値における急上昇部分が検出されたものとしてもよい。この判定基準は、ハードウェアモニタが生成するワークロード指標値がバイナリ値である場合に特に有用である。
【0034】
本発明の実用的な1つの実施の形態によれば、前記電源マネージャは、監視しているワークロード指標値における立下りエッジを検出するように構成されており、検出された立下りエッジに従って前記供給電力量の制御が行われるように構成されている。
【0035】
電子デバイスのワークロード指標値の急低下である立下りエッジの発生が報知されることで、ワークロード指標値が大きな値を持つ期間の終了時刻を検出することが可能となっている。尚、エッジの検出に関しては、高精度のデータに基づいて行うようにしなければならない。
【0036】
本発明の実用的な1つの実施の形態によれば、前記電源マネージャは、監視しているワークロード指標値において前記立上りエッジの後に発生する後続立上りエッジを検出するように構成されており、また、前記電源マネージャは、前記立上りエッジと前記後続立上りエッジとの間の時間差に従って将来エッジの発生時刻を予測するように構成されており、予測された将来エッジの発生時刻に従って前記供給電力量の制御が行われるように構成されている。
【0037】
少なくとも2つの立上りエッジが検出されたならば、外挿法を用いるなどの方法によって、将来エッジの発生時刻を予測することができる。例えば、将来エッジの発生時刻は、前記後続立上りエッジの発生時刻に、前記後続立上りエッジと前記立上りエッジとの間の発生時刻の時間差を加えた時刻になるものと予測することができる。
【0038】
このようにして予測された将来エッジの発生時刻に従って前記供給電力量の制御を行うには、例えば、供給電力量のレベルを、過去において発生したエッジの発生直後の期間に必要とされたレベルに設定するようにしてもよい。
【0039】
本発明の実用的な1つの実施の形態によれば、前記電源マネージャは、監視しているワークロード指標値において前記立下りエッジの後に発生する後続立下りエッジを更に検出するように構成されており、また、前記電源マネージャは、前記立下りエッジと前記後続立下りエッジとの間の時間差に従って将来エッジの発生時刻を予測するように構成されており、予測された将来エッジの発生時刻に従って前記供給電力量の制御が行われるように構成されている。
【0040】
少なくとも2つの立下りエッジが検出されたならば、外挿法を用いるなどの方法によって、将来エッジの発生時刻を予測することができる。例えば、将来エッジの発生時刻は、前記後続立下りエッジの発生時刻に、前記後続立下りエッジと前記立下りエッジとの間の発生時刻の時間差を加えた時刻になるものと予測することができる。
【0041】
このようにして予測された将来エッジの発生時刻に従って前記供給電力量の制御を行うには、例えば、供給電力量のレベルを、過去において発生した立下りエッジの発生直後の期間に必要とされたレベルに低下させるようにしてもよい。
【0042】
本発明の好適な1つの実施の形態によれば、前記電源マネージャは、予測された将来エッジの発生時刻の近傍に次回の監視期間が位置するように次回の監視期間の実行時刻を選定するように構成されており、また、前記電源マネージャは、選定した次回の監視期間に前記ハードウェアモニタを監視するように構成されている。
【0043】
前記電源マネージャは、将来立下りエッジまたは将来立上りエッジの予測ができるようになったならば、それ以後は連続的な監視を止めることもできる。予測した将来エッジが次回の監視期間の中で発生するように次回の監視期間を選定することから、電源マネージャはその予測が正しかったか否かを検証することができる。次回の監視期間の中で発生する将来エッジは、最新に発生したエッジの次に発生すると予測した将来エッジである必要はなく、数個の将来エッジをやり過ごして、更にその次に発生すると予測した将来エッジが次回の監視期間の中で発生するように、次回の監視期間を設定してもよい。ただし、連続的に監視するようにしておけば、エッジの発生時刻がドリフトする場合にそのドリフトに対する補正を行えるという利点が得られる。
【0044】
本発明の実用的な1つの実施の形態によれば、前記電源マネージャは、前記ハードウェアモニタが生成するワークロード指標値の連続記録である監視トレースを生成するように構成されており、また、前記電源マネージャは、前記監視トレースに基づいてワークロード周波数と基準時刻に対するワークロード位相とを判定するように構成されており、また、前記電源マネージャは、前記ワークロード周波数と前記ワークロード位相とに基づいて将来ワークロードを予測するように構成されており、予測された将来ワークロードに従って前記供給電力量の制御が行われるように構成されている。
【0045】
ここで監視トレースとは、ハードウェアモニタが生成する指標値をある期間に亘って連続記録した履歴的記録である。
【0046】
前記電源マネージャが監視トレースを生成する方法としては、例えば、前記ハードウェアモニタが次々と生成するワークロード指標値を一時的に格納して行くという方法などが用いられる。監視トレースの解析を行うことによって、ワークロード指標値の周期パターンを抽出することができ、この周期パターンの抽出は、例えばエッジを検出することによって行われる。ワークロード指標値の周期パターンは周波数を有しており、これがワークロード周波数である。また、ワークロード指標値が大きな値を持つ期間の開始時刻の、基準時刻に対する相対時刻を判定することができ、これが基準時刻に対するワークロード位相である。ワークロード指標値が大きな値を持つ期間の開始時刻が判定され、且つ、当該期間がどれ程の頻度で反復するかが判定されたならば、それによって将来ワークロードの予測が可能になる。
【0047】
本発明の実用的な1つの実施の形態によれば、前記ハードウェアモニタは前記電源マネージャに一体に組込まれている。
【0048】
本発明に係る電子システムは、本発明に係る電源マネージャと、その動作中にワークロードを有する電子デバイスと、前記電子デバイスに接続されており前記電子デバイスのワークロード指標値を生成するように構成されているハードウェアモニタとを備えている。
【0049】
本発明の電子システムの好適な1つの実施の形態によれば、前記電子システムのワークロードが実質的に周期性を有するように構成されている。
【0050】
本発明に係る電子システムはモバイル型電子データ処理デバイスに組込まれたものとすることができる。
【0051】
モバイル型電子データ処理デバイスに関しては、その必要電力量が利用上の制約となっているという問題があった。それゆえ、モバイル型電子データ処理デバイスの消費電力量を低減することは非常に有用である。モバイル型電子データ処理デバイスの消費電力量を低減することによって、例えば、モバイル型電子データ処理デバイスをスタンバイ状態に維持し得る時間及び/または再生時間を長くすることができる。
【0052】
モバイル型電子データ処理デバイスの具体例としては、携帯電話端末、パーソナルデジタルアシスタント(PDA)、mp3プレーヤ、携帯型ビデオ再生装置、パーソナルナビゲーション装置、等々がある。
【0053】
電子デバイスへの供給電力量を管理する電源管理方法は、以下のステップ:監視期間中にハードウェアモニタを監視するステップと、監視結果に従って前記電子デバイスへの供給電力量を制御するステップとを含んでいる。
【0054】
電子デバイスへの供給電力量を管理する前記電源管理方法の好適な1つの実施の形態によれば、監視結果が監視トレースの形で格納されるようにしている。また、前記方法は更に、前記監視トレースの中の少なくとも2つのエッジを検出するステップと、前記監視トレースに基づいてワークロード周波数と基準時刻に対するワークロード位相とを判定するステップと、前記ワークロード周波数と前記ワークロード位相とに基づいて将来ワークロードを予測するステップとを含んでいる。そして、前記予測ステップの予測結果に従って前記供給電力量の制御が行われる。
【0055】
電子デバイスへの供給電力量を管理する前記電源管理方法の好適な1つの実施の形態は、将来エッジの発生時刻を予測するステップと、予測された将来エッジの発生時刻の近傍に次回の監視期間が位置するように次回の監視期間の実行時刻を選定するステップと、選定した次回の監視期間に前記ハードウェアモニタを監視するステップとを更に含んでいる。
【0056】
コンピュータプログラム製品は、本発明に係る前記方法を実行するためのコンピュータコードから成るものである。
【0057】
尚、オペレーティングシステム(OS)のスケジューラに適合するハードウェア事象カウンタの利用方法を開示している非特許文献として、Christos D. Antonopoulos and Dimitrios S. Nikolopoulos共著、"Using Hardware Event Counters for Continuous, Online System Optimization; Lessons and Challenges" がある。
【0058】
また、オペレーティングモードとストップモードとを有するデータ処理素子を備えたデータ処理装置を開示した特許文献として、米国特許第4823292号公報(発明の名称:Data processing apparatus with energy saving clocking device(省電力用クロック装置を備えたデータ処理装置)、同米国特許公報の開示内容はこの言及をもって本願開示に組込まれたものとする)がある。そこに開示されているデータ処理素子は、オペレーティングモードとストップモードとの間でモード切替を行うことによって、消費電力量を低減可能にしたものである。ただし、この米国特許第4823292号のデータ処理装置にはハードウェアモニタは用いられていない。
【先行技術文献】
【特許文献】
【0059】
【特許文献1】米国特許第4823292号公報
【非特許文献】
【0060】
【非特許文献1】Christos D. Antonopoulos and Dimitrios S. Nikolopoulos共著、"Using Hardware Event Counters for Continuous, Online System Optimization; Lessons and Challenges"
【0061】
以下に添付図面を参照しつつ、具体的な実施の形態に即して、本発明について更に詳細に説明して行く。添付図面については下記の通りである。
【図面の簡単な説明】
【0062】
【図1】本発明に係る電子システムの1つの実施の形態を示したブロック図である。
【図2】周期性を有するアプリケーションを実行したときのワークロードトレースを示すグラフである。
【図3】ワークロード位相を正確に判定することの重要性を説明するためのグラフである。
【図4】電源マネージャの1つの実施の形態を示したブロック図である。
【図5】本発明に係る電子システムの更に別の実施の形態を示したブロック図である。
【図6】本発明に係る方法を示したフローチャートである。
【0063】
尚、以上の図面において、互いに同一または対応する構成要素には、同一の参照符号を付してある。
【発明を実施するための形態】
【0064】
本発明は様々な形態で実施し得るものであるが、ここでは幾つかの具体的な実施の形態を図面に示して詳細に説明することにする。ただし、本開示は本発明の原理を具体的に提示するためのものであり、本発明は図面に示されここで詳述される具体的な実施の形態のみに限定されない。
【0065】
図1に示したのは本発明に係る電子システム100の1つの実施の形態のブロック図である。
【0066】
電子システム100は、電子デバイス102と、ハードウェアモニタ104と、電源マネージャ106とを備えている。尚、この実施の形態では、ハードウェアモニタ104が電子デバイス102に組込まれているが、このことは必須の要件ではない。
【0067】
ハードウェアモニタ104は、電子デバイス102のワークロード指標値を生成するように構成されている。電源マネージャ106は、ハードウェアモニタ104が生成するワークロード指標値を、このハードウェアモニタ104との接続を介して読取ることができるように構成されている。更に、電源マネージャ106は、電子デバイス102への供給電力量を制御するように構成されている。
【0068】
その動作について説明すると、動作中は、ハードウェアモニタ104が、電子デバイス102のワークロード指標値を次々と生成している。このハードウェアモニタ104は、例えば、電子デバイス102の現在状態がアクティブ状態とアイドル状態とのいずれの状態であるかを表示する1ビットのレジスタとしてもよい。電源マネージャ106は、ハードウェアモニタ104の内容を読取ると共に、その読取った内容に基づいて電子デバイス102の将来ワークロードを予測する動作を実行している。また、電源マネージャ106は、その予測した将来ワークロードに基づいて電子デバイス102が必要とすることになる電力量を判定する動作を実行している。電源マネージャ106は、例えば、その予測した将来ワークロードをプロセッサが時間内に完了するために必要とされるクロック周波数を算出し、そして、プロセッサへの供給電圧を、そのクロック周波数を維持するのに十分なだけの電圧に制御するように動作するものとしてもよい。
【0069】
電子デバイス102はワークロードを有するデバイスであり、そのワークロードは周期性を有している。ハードウェアモニタ104は、電子デバイス102に接続されており、この電子デバイス102のワークロード指標値を次々と生成している。電源マネージャ106は、ハードウェアモニタ104を監視する監視動作を実行している。また、電源マネージャ106は、将来ワークロードを予測するワークロード予測動作を実行しており、その予測結果に基づいて電子デバイス102への供給電力量の調節が行われている。
【0070】
電源マネージャ106は、エッジを検出することによって、ワークロード周期の予測を行っている。電源マネージャ106は、みずからの動作を、エッジの検出によって予測したワークロード周期に同期させるようにしている。電源マネージャ106は、立上りエッジの立上り開始時刻と、立上りエッジの発生頻度とを判定している。尚、ワークロード周期の長さの算出も併せて実行するようにすることが好ましい。
【0071】
電源マネージャ106は、監視動作については、連続的にハードウェアモニタ104を監視する必要はない。電源マネージャ106は、将来立上りエッジの発生時刻を予測したならば、その予測した将来立上りエッジの発生時刻の近傍期間においてのみ監視動作を実行するようにしてもよく、それによって、将来立上りエッジの発生時刻の予測が正しかったか否かの検証を行うこともでき、また必要とあらば、較正即ち再調節も行うことができる。再調節が必要となるのは、例えばドリフトが発生している場合などである。
【0072】
電源マネージャ106は、専用のハードウェアで構成することも可能であり、その場合には例えば、供給電力量の制御やハードウェアモニタの監視を実行するように設計した電子回路などで構成するのもよい。或いは、電源マネージャ106は、汎用のハードウェアを専用のソフトウェアで制御するように構成したものとすることも可能であり、また、専用のハードウェアと汎用のハードウェアとを組合せて構成したものとすることも可能である。
【0073】
典型的には、例えば、電源マネージャ106が、中間装置である電源管理装置200(図1では不図示とした)を介して、供給電力量の制御を行うような構成とするのもよく、その場合には例えば、電源マネージャ106がその電源管理装置200へ、クロック周波数及び/または供給電圧に関する情報を送出するようにすればよい。
【0074】
ハードウェアモニタ104は、各クロックサイクルごとにワークロード指標値を生成するのではなく、ある短い期間ごとに、その期間内のワークロードをまとめて表した値を1つずつ生成するようにしてもよく、その場合に生成する値は、例えば、その期間内のワークロードの平均値や合計値などとすることができる。例えば、短い期間内においてCPUの作動サイクルの個数をもって、ハードウェアモニタ104が生成するワークロード指標値とすればよい。尚、ここでいう短い期間とは、ハードウェアモニタ104が生成するその期間内のワークロードをまとめて表した値が、ワークロードの周期性を認識させるだけの十分な分解能を有する値となり得る程度に短い期間のことをいう。
【0075】
図2に示したのは、周期性を有するアプリケーションのワークロードトレースを表すグラフである。このグラフに具体例として示したワークロードトレースは、周期性を有するアプリケーションとして、ビデオのデコードを行うアプリケーションを、組み込み型CPUである「ARM(登録商標)9」CPUで実行したときのものである。
【0076】
周期性を有するアプリケーションを実行するプロセッサのワークロード、例えば、単位時間あたりのCPUの作動サイクルの個数が変化するような様々なワークロードを予測するためには、現在ワークロード周期におけるワークロードを正しく測定できることが必要とされる。
【0077】
このように変化するワークロードを、例えばワークロード周期を1つのタイムフレームとして、正確にそのタイムフレームで区切って測定しようとするとき、オペレーティングシステムなどのソフトウェアによる測定では、十分な時間分解能をもって測定することは不可能である。これに対して、ハードウェア事象レジスタやトレースレジスタなどのハードウェアを利用して、CPUの占有状態を測定するようにすれば、非常に微細な粒状度の測定結果が得られ、それによって同期の精度も向上する。そこで、本発明においては、アプリケーションを実行する際のワークロードを、独立した観察手段によって測定するようにしている。理想的には、測定期間の長さとワークロード周期の長さとを等しくし、且つ、測定期間の開始時刻とワークロード周期の開始時刻とを同期させるようにするのがよい。
【0078】
CPUバウンドではない(即ち、CPUのワークロードを常時100%近くの値にしてしまうことのない)アプリケーションを実行するときには、そのアプリケーションから要求される演算処理を時間内に完了するのに必要なだけのクロック周波数及び電圧でCPUを動作させるようにすることによって、消費電力量を低減することができる。尚、CPUのワークロードは、例えば、そのCPUが命令を実行するためにビジー状態にある時間の割合を算出することによって、或いは、所定期間内のクロックサイクルの総数に対する演算処理に使用されたクロックサイクルの個数の比を算出することによって求められる。
【0079】
CPUへの供給電力量の制御は、例えばクロック周波数の制御により、及び/または、電圧の制御により行うことができる。その具体例を挙げるならば、例えば、その供給電力量の制御を、ソフトウェア及び/またはハードウェアから制御することができる動的電圧/周波数スケーリングドライバ(Dynamic Voltage and Frequency Scaling Driver:DVFSドライバ)を用いて行うようにするのもよい。
【0080】
周期性を有するアプリケーション(例えば、ビデオ再生用アプリケーションなど)を実行するときには、CPUの現在ワークロードを観察し、将来ワークロードを予測することによって、そのCPUへの供給電力量の制御を行うことができる。
【0081】
「Linux(登録商標)」などのオペレーティングシステム(OS)では、そのOSによってCPUのワークロードの測定が実行されている。「Linux(登録商標)」の場合には、そのワークロードの測定が、タイマーティック割込みによって行われている。より詳しくは、各タイマーティックごとに、CPUに割込みがかけられ、そのタイマーティックの間隔は、典型的な事例では、1ミリ秒、4ミリ秒、または10ミリ秒である。また、その割込みがかけられたときの状態が、ユーザ(User)、システム(System)、ナイス(Nice)、及びアイドル(Idle)の4つのコードに分類される。「ユーザ」に分類されるのは、アプリケーションを実行していた場合である。「システム」に分類されるのは、システムコールを実行していた場合である。「ナイス」に分類されるのは、バッチジョブを実行していた場合である。そして、「アイドル」に分類されるのは、CPUが有意の命令を実行していなかった場合であり、例えば、CPUが動作を停止していた場合などである。そして、各タイマーティックごとに、それらのコードに対応した分類カウンタのカウント値に1単位の値が加算される。所定個数のタイマーティックから成る所定長さの期間内のワークロードの測定値を求めるには、「ユーザ」、「ナイス」、及び「システム」の3通りの状態にあったタイマーティックの夫々の個数の合計数を、当該期間内のタイマーティックの合計数で除す演算を行えばよく、それによって、当該期間内のCPUのワークロードの測定値が得られる。タイマーティック周波数は、典型的には100Hz〜1000Hzの範囲内にある。このタイマーティック周波数はCPUの動作周波数と比べれば格段に低く、そのためワークロードの測定に関しては、測定値の時間間隔を短くすることと、測定値の精度を向上させることとが相反する要件となる。例えば、測定期間の長さをタイマーティック10個分とした場合には、このタイマーティック10個分の時間間隔で、測定精度が10%のワークロードの測定値が得られるが、その測定精度を1%にしたければ、測定期間の長さをタイマーティック100個分ほどの長さにしなければならない。その場合に、測定期間の長さは、100ミリ秒、250ミリ秒、または1000ミリ秒となるが、これらの長さは、例えばビデオ再生におけるフレームレートと比べてはるかに長い。従って、オペレーティングシステムによる測定によって得られるワークロードの測定値は、電力供給量の制御を微細な粒状度をもって行うという目的には不十分である。
【0082】
最近の殆どのマイクロプロセッサには、そのプロセッサの特定のサブユニットとアプリケーションとの間のインターアクションに関するパフォーマンス事象を監視することのできる特別のオンチップハードウェアが装備されてり、その代表例がハードウェア事象カウンタである。パフォーマンス事象の監視結果がレジスタに書込まれることによって、そのCPUのコア部分を構成している様々な構成要素のパフォーマンスの解析を行えるようになっている。
【0083】
この種のハードウェア事象カウンタを利用することによって、プロセッサのワークロードをハードウェアで測定することができる。またそれによって、ソフトウェアで測定する場合と比べて精度が向上し、及び/または、サンプリング分解能が向上する。この種の事象カウンタは、OSのタイマーティックのドメインで動作するのではなく、CPUのクロック周波数のドメインで動作しており、従ってナノ秒のオーダーで動作している。ワークロード周波数はCPUのクロック周波数より必ず低いため、ハードウェアモニタのサンプリング周波数はワークロード周期を検出するのに十分な高い周波数に維持されることになる。レジスタは、完全に自立的に動作するようにプログラムすることができ、またそうすることが好ましい。なぜならば、そうすることによって、プロセッサのワークロード測定のタイミングの精度を高めることができ、また、CPUのパフォーマンスに対して悪影響を及ぼすことも殆どなくなるからである。
【0084】
例えば「Intel Pentium(登録商標)4」プロセッサは44個のトレースレジスタ(事象レジスタ)を備えており、それらレジスタのうちの18個を、パフォーマンスに関するリアルタイムのデータを測定してその測定結果を示すためのレジスタとして使用することができる。このようなレジスタを用いて監視することができるものには、例えば、キャッシュのヒット率、ブランチ予測ロジックの効率、それに、プロセッサが非アイドル状態にある時間などがある。プロセッサが非アイドル状態にある時間は、プロセッサのワークロードの直接的な均等物であり、この時間は、オペレーティングシステムが測定するよりも、レジスタで測定する方が、はるかに高い時間分解能をもって測定することができる。OSの時間分解能がミリ秒のオーダーであるのに対して、ハードウェア事象カウンタの時間分解能はナノ秒のオーダーである。CPUは、追跡(監視)しているデータの値をメインメモリへ自律的に出力することができるとともに、例えばカウンタのオーバーフローなどの所定事象が発生したときに割込みを自律的に発生させることもできる。
【0085】
図3に示したのは、正確なワークロード位相を把握することの重要性を説明するためのグラフである。
【0086】
CPUの将来ワークロードを正確に予測するためには、CPUの現在ワークロードが分かっていなければならない。CPUの現在ワークロードを正確に判定するためには、アプリケーションの2つの特性を把握する必要がある。それらのうちの第1の特性は、ワークロードの周期的変化の反復頻度に関する特性であり、即ち、ワークロード周波数である。ただし、このワークロード周波数の代わりに、ワークロードの周期的変化の反復頻度を表すその他の適当な値を利用することもでき、例えば、ワークロード周期の長さを利用することも可能である。例えば、ビデオ再生アプリケーションを実行する際のワークロード周波数は、そのビデオのフレームレートに応じた周波数になる。また、第2の特性は、CPUのワークロードのワークロード位相に関するものであり、即ち、あるアプリケーションを実行するときに反復して出現する、ワークロード指標値が大きな値を持つ期間の開始時刻である。例えば、ビデオ再生アプリケーションを実行する場合であれば、CPUのワークロード位相は、典型的な事例としては、ビデオフレームの処理の開始時刻に対応した時刻になる。
【0087】
以上の2つの特性は、CPUの現在ワークロードを観察することによって把握することができる。そして、そのためには、CPUの現在ワークロードを測定することが必要である。
【0088】
図3のグラフは、周期性を有するアプリケーションを実行する際のワークロードを詳細に示したグラフである。供給電力の制御を行うために、独立した電源マネージャ106などを用いて、アプリケーションを実行するときの将来ワークロードを予測しようとする場合に問題となるのは、当該アプリケーションを実行するときのワークロードの、そのワークロード周波数(これは当該アプリケーションの周期性の周波数に等しい)と、ワークロード位相(即ちワークロード周期の開始時刻)とが、アプリケーションを実行するまで分からないことである。
【0089】
ワークロード周波数が分かっただけではワークロードの正確な測定はできず、ワークロードを正確に測定するためにはワークロード位相を検出することが重要である。図3に示したグラフは、測定期間とワークロード周期とを同期させることの重要性を説明するためのグラフである。
【0090】
先ず、ワークロード周期の正確な1周期の中でワークロードの測定が行われる場合について説明する。その場合には、ワークロード測定期間が、図中の「A」から「B」までとなり、即ち、第5番目から第30番目までの25個のクロックサイクルに亘って継続する期間となる。このワークロード測定期間中に、ワークロード指標値として測定される(カウントされる)クロックサイクルの個数は10個であり、このワークロード指標値をパーセンテージで表すならば、10/25*100%=40%となる。
【0091】
次に、ワークロード測定期間とワークロード周期とが正しく同期していない場合について説明する。例えば、ワークロード測定期間が、図中の「C」から「D]まで、即ち、第13番目から第38番目までとすると、そのワークロード測定期間は上と同じく25個のクロックサイクルに亘って継続する期間となる。ところがこの場合には、ワークロード指標値はクロックサイクルの個数にして8個となり、これをパーセンテージで表すならば、8/25*100%=32%となる。これは不正確なワークロード指標値であり、正確なワークロード指標値から大きく外れている。
【0092】
正しく同期していない測定期間に測定して得られたこのワークロード指標値に基づいてCPUへの供給電力量の制御を行ったならば、CPUへの供給電力量が過少となってしまう。またその結果として、システム100が機能不全を起こすおそれもある。
【0093】
ワークロード予測機構204は、ワークロード指標値の急上昇を十分に高速で検出できるように構成されており、それによって、みずからが実行する将来ワークロードの予測動作を、アプリケーションを実行したときに実際に発生するワークロードのワークロード周期に同期させることができるように構成されている。
【0094】
図4に示したのは、電源マネージャ106の1つの実施形態のブロック図である。
【0095】
電源マネージャ106は、ワークロード周波数及びワークロード位相を検出するワークロード検出機構202と、ワークロード予測機構204を備えている。ワークロード検出機構202は、ハードウェアモニタ104を監視するためにハードウェアモニタ104に接続されている。ワークロード指標値を表す信号が、ワークロード転送手段210を介して、ハードウェアモニタ104からワークロード検出機構202へ転送されるようにしてある。ワークロード検出機構202は、ワークロードの、ワークロード周波数とワークロード位相とを判定するように構成されている。また、ワークロード検出機構202は、将来ワークロードの予測を適切に行うことができない状況にあると判断した場合には、電源マネージャ106が実行している供給電力量の制御動作を不能化するように構成されている。
【0096】
更に、ハードウェアモニタ104によって得られるワークロード指標値は、ワークロード予測機構204からも、ワークロード転送手段210を介して利用できるようにしてある。
【0097】
ワークロード検出機構202は、ワークロード周波数転送手段を介してワークロード予測機構204に接続されている。また、ワークロード検出機構202は、ワークロード位相転送手段208を介してワークロード予測機構204に接続されている。ワークロード予測機構204は、ワークロード周波数とワークロード位相とに基づいて、電子デバイス102の将来ワークロードを予測する予測動作を実行するように構成されている。
【0098】
ワークロード予測機構204は更に、みずからの予測結果に基づいて、電子デバイス102が必要とする電力量を判定するように構成されている。ワークロード予測機構204は、クロック周波数及び供給電圧レベルを決定し、決定したそれらの値を電源管理装置(Power Management Unit:PMU)200へ送出するようにしてある。PMU200は、ワークロード予測機構204から送られてくるそれらの値を示す情報に従って電子デバイス102への供給電力量を制御するように構成されている。
【0099】
電源管理装置(PMU)200は、例えば低損失レギュレータ(LDOレギュレータ)や、DC/DCインダクタンス電圧レギュレータ、ないしはその他の適宜の電圧レギュレータによって供給電圧を設定するように構成されている。また、このPMU200には更に、例えばPLLや、DDSなどの分周回路、ないしはその他の適宜のクロック発生手段によってクロックを生成するように構成したクロック生成装置(Clock Generation Unit:CGU)を組込んでおくのもよい。
【0100】
ワークロード予測機構204を、ワークロードを発生させるアプリケーションから独立した機構とするためには、そしてそれによって、ワークロード測定期間の長さをワークロード周期の長さに等しくし、且つ、ワークロード測定期間とワークロード周期との位相を揃えるためには、ワークロード周波数及びワークロード位相の検出動作を、予測動作と予測動作との間に差し挟むようにすることが有効である。
【0101】
ワークロード周波数及びワークロード位相を検出するには、ハードウェアモニタ104から提供されるワークロード指標値のエッジを検出するようにすればよい。そして、そのエッジの検出を可能にするためには、ハードウェアモニタ104を含めたワークロードの監視のための諸機構が生成し或いは取扱う値が、微細な粒状度を持ち得るようにする必要があり、即ち、高いサンプリング周波数でサンプリングされた値とする必要がある。そのような微細な粒状度は、例えば、ワークロードを高い分解能で測定することのできるハードウェアパフォーマンスカウンタなどを用いることによって得られる。
【0102】
値が微細な粒状度を持つようにすることは、ワークロード周期を高精度で判定するためにも、ワークロード周波数を算出するためにも、また、ワークロード位相を検出するためにも重要である。また、ワークロード位相は、ワークロード測定期間とワークロード周期とを同期させるために重要である。
【0103】
ワークロードがハードウェアモニタ104によりサンプリングされるサンプリング周波数は、ワークロード周期の周波数より高くなくてはならず、それよりはるかに高い周波数とすることが好ましい。特に、ワークロードのサンプリング周波数は、測定して得られたワークロード指標値における立上りエッジを検出することができるように、十分に高い周波数にしておくべきである。
【0104】
ワークロード周期、ワークロード周波数、及びワークロード位相を判定するためのエッジ検出は、様々な適宜のエッジ検出機構を用いて行うことができる。
【0105】
また、ワークロード測定期間とワークロード周期とは、同期機構を用いて同期させることが好ましい。
【0106】
電源マネージャ106は、ソフトウェアで構成することができ、即ち1つのアプリケーションとすることができる。また、電源マネージャ106を構成するそのアプリケーションは、電子デバイス102上で実行されているその他のアプリケーションと同時並行的に実行させるようにすることもでき、その他のアプリケーションからは独立させて実行させるようにすることもできる。
【0107】
図5に示したのは、本発明に係る電子システム100の更に別の実施の形態のブロック図である。
【0108】
電子システム100は電子デバイス102を備えている。電子デバイス102はハードウェアモニタ104を含んでいる。電子デバイス102はアプリケーション格納用メモリ512に接続されている。電子デバイス102はアプリケーション格納用メモリ512に格納されているアプリケーション即ちソフトウェアを実行できるように構成されている。電子システム100は電源マネージャ106を備えている。電源マネージャ106は、その全体のうちの一部が電源管理ロジック502で構成されており、また別の一部がトレース生成機構500で構成されている。
【0109】
電源管理ロジック502は、ワークロード周波数及びワークロード位相を検出する検出機構202と、ワークロード予測機構204と、電源制御機構508とを備えている。
【0110】
トレース生成機構500はハードウェアモニタ104に接続されている。トレース生成機構500は、ハードウェアモニタ104から次々と送られてくる値をトレースの形にして検出機構202へ転送するように構成されている。トレースとは、例えば、複数の値を1つのアレイの形にまとめたものである。トレース生成機構500は、例えば、先入れ先出し(FIFO)バッファや、円環バッファなどの、適宜のバッファで構成することができる。そのバッファの内容に、検出機構202及び/またはワークロード予測機構204が読出せるようにしておけば、それによって、検出機構202及び/またはワークロード予測機構204へのトレースの転送が可能となる。
【0111】
ワークロード検出機構202は、トレースの中の検出されたエッジに基づいてワークロード周波数及びワークロード位相を判定している。判定されたワークロード周波数及びワークロード位相は、ワークロード予測機構204へ送られている。ワークロード予測機構204は、電子デバイス102の将来ワークロードを予測している。予測された将来ワークロードの値は、電源制御機構508へ送られている。電源制御機構508は、クロック周波数及び供給電圧レベルを決定することより、次回のワークロード周期に電子デバイス102へ供給する必要のある電力量を判定している。それらクロック周波数及び供給電圧レベルの値は、動的電圧/周波数スケーリングドライバ(Dynamic Voltage and Frequency Scaling Driver:DVFSドライバ)510へ送られている。ドライバ510は電源管理装置(PMU)200のクロック周波数及び供給電圧の設定を行っている。PMU200は電子デバイス102へ供給するクロックの周波数と電子デバイス102へ供給する電圧とが設定可能に構成されている。
【0112】
ドライバ510はこの実施の形態において任意の構成要素である。例えば、電源制御機構508が直接、電源管理装置(PMU)200のクロック周波数及び供給電圧の設定を行うようにしてもよい。
【0113】
この実施の形態は、その少なくとも一部を、ソフトウェアから成る電源管理ロジックで構成するのに特に適したものである。より詳しくは、電源管理ロジック502及びその構成要素はソフトウェアで構成するとよい。また、そのソフトウェアはCPUに実行させるとよい。そして、電子デバイス102それ自体がCPUであるならば、その電子デバイス102に、その他の様々なタスクと共に電源管理ロジックのソフトウェアも併せて実行させるようにしてもよい。或いはまた、電源管理ロジックのソフトウェアは、電子デバイス102とは別のCPUに実行させるようにしてもよい。電源管理ロジックのソフトウェアを格納するメモリは、アプリケーション格納用メモリ512としてもよく、それとは別のメモリとしてもよい。
【0114】
別の構成例として、電源管理ロジック502をハードウェアで構成するようにしてもよく、その場合には例えば、CMOS回路などのICで構成してもよく、また、その他の適宜の電子回路で構成してもよい。
【0115】
電子システム100の1つの具体例を挙げるならば、例えば、CPUとして「Pentium(登録商標)4」プロセッサを使用しており、そのCPUに、OSとして「Linux(登録商標)」を走らせているマシンなどが挙げられる。このようなマシンにおいて、トレース生成機構500は、そのCPU(電子デバイス102)の事象レジスタ及び/またはトレースレジスタ104の内容を読出してトレースを生成するものとすればよい。ワークロード周波数及びワークロード位相を検出する検出機構202は、図3に示したエッジA及びBのようなワークロード指標値における立上りエッジを検出するものとすればよい。また、トレースレジスタは、そのCPUの占有状態を測定するように設定しておくことが好ましく、そのためには、例えば、そのトレースレジスタが定常的に「グローバル・パワー・イベント(gloval_power_events)」を監視させるようにすればよい。また、その監視を行わせるためには、パフォーマンス監視ツールである「perfmon2」などを使用するとよく、これは「Linux(登録商標)」に対応したハードウェアベースのパフォーマンス監視インターフェースである。
【0116】
電源マネージャ106は、動作を開始したならば先ず、検出されたワークロード指標値のエッジにみずからの動作を同期させるように構成されている。検出されたワークロード指標値のエッジに電源マネージャ106の動作が同期すると、電源マネージャ106は、ある1回の監視動作を完了したならば、そこから1回または複数回のワークロード周期をやり過ごした後に、次回の監視動作を実行するようにすることも可能となる。
【0117】
ワークロードの測定によって次々と生成されるワークロード指標値は、エッジの検出を行っている検出機構202へ送られる。ハードウェアモニタ202と検出機構202とが共にハードウェアで構成されている場合には、例えば、その検出機構202が、立上がりエッジを検出したときにCPUに割込みをかけるように構成しておくのもよい。それによって、ワークロード予測機構204がワークロード周期の開始時刻を高精度で判定できるようになる。またその場合に、そのワークロード予測機構204は、ソフトウェアで実行されるものとしてもよい。このCPUへの割込みを利用して、最初のワークロード測定によって判定したワークロード位相に、ワークロード測定期間を同期させることができる。ただし、ワークロード測定期間を同期させる方法としては、これ以外に、ワークロード周期の長さに基づいて同期させる方法もある。また、立上りエッジを検出したときにCPUに割込みをかける動作を適宜の間隔で反復して実行するようにすれば、それによって、ワークロード測定期間とワークロード周期との間にドリフトが発生するのを防止することができる。他方、毎回のワークロード周期においてワークロード位相に対する同期を取るようにしてもよく、この方法は、ワークロード周期に大きなジッタが存在する場合に特に有用である。
【0118】
本発明を適用するのに適した電子システム100は、マイクロプロセッサを備え、そのマイクロプロセッサが、周期性を有するアプリケーションを、ないしは、少なくとも予測が可能なアプリケーションを、少なくとも時おり実行するような任意の電子システムである。
【0119】
図6に本発明に係る方法のフローチャートを示した。この方法は以下のステップを含むものである。
【0120】
最初のステップ1002では、監視期間中にハードウェアモニタ104が監視動作を実行し、その監視動作の監視結果を監視トレースの形で格納する。次のステップ1004では、監視トレースの中の少なくとも2つのエッジを検出する。次のステップ1006では、監視トレースに基づいてワークロード周波数と基準時刻に対するワークロード位相とを判定する。次のステップ1008では、ワークロード周波数とワークロード位相とに基づいて将来ワークロードを予測する。次のステップ1010では、その予測結果に従って電子デバイス102への供給電力量の制御が行われる。
【0121】
本発明は、ここにその幾つかの実施の形態に即して説明したことから明らかなように、フローチャートを参照して以上に概要を述べた一連のプログラム命令を実行するようにプログラミングしたプロセッサを用いて構成することができ、それら一連のプログラム命令は、任意の種類の適宜の電子格納媒体に格納し得るものである。ただし、当業者には容易に理解されるように、以上に説明したプロセスは、様々な別形態で実施することも可能であり、多種多様な適宜のプログラミング言語で実施することができ、それらも本発明から逸脱するものではない。例えば、以上に説明した様々な動作のうちにはそれらの実行順序を変更可能なものもあり、それら動作に更に別の動作を付加することも可能であり、それら動作のうちのあるものを省略することも可能であり、そのような変更を加えたものも本発明から逸脱するものではない。また、エラートラップを行うようにしてもよく、エンハンスメントないし変更を行うようにしてもよく、そのようにしたものも本発明から逸脱するものではない。そのような変更形態は、以上に説明した実施の形態の均等形態であると考えられる。
【0122】
本発明は特定用途向けハードウェア及び/または専用プロセッサを用いて構成することもできる。また一方で、汎用のコンピュータ、マイクロプロセッサで構成したコンピュータ、デジタル信号処理装置、マイクロコントローラ、専用プロセッサ、カスタム回路、ASICS、及び/または、専用ハードワイヤドロジックを用いて、本発明の別形態である均等形態を構成することも可能である。
【0123】
当業者には理解されるように、上で説明した実施の形態を構成するために用いられているプログラムステップ及びそれに付随するデータは、ディスク格納装置に格納できるばかりでなく、その他の様々な格納装置ないし格納媒体に格納し得るものであり、それらの具体例を挙げるならば、例えば、リードオンリーメモリ(ROM)デバイス、ランダムアクセスメモリ(RAM)デバイス、光格納媒体、磁気格納媒体、光磁気格納媒体、フラッシュメモリ、及び/または、その他の均等形態と見なされる格納技術を用いることができ、それらを用いたものも本発明から逸脱するものではない。そのような別形態の格納デバイスは、均等形態のデバイスであると考えられる。
【0124】
以上に本発明をその具体的な実施の形態に即して説明したが、当業者であれば、以上の説明を参照することによって、数多くの別形態、改変形態、順序置換形態、及び変形形態にも想到することは明らかである。従って、本発明はそのような別形態、改変形態、変形形態、等々をすべて包含するものであり、それら形態は特許請求の範囲に該当するものである。
【符号の説明】
【0125】
100 電子システム
102 電子デバイス
104 ハードウェアモニタ
106 電源マネージャ
200 電源管理装置(PMU)
202 ワークロード周波数及びワークロード位相を検出するワークロード検出機構
204 ワークロード予測機構
206 ワークロード周波数転送手段
208 ワークロード位相転送手段
210 ワークロード転送手段
500 トレース生成機構
502 電源管理ロジック
508 電源制御機構
510 動的に電圧及び周波数のスケーリングを行うドライバ(DVFSドライバ)
512 アプリケーション格納用メモリ
1002 監視期間中にハードウェアモニタ104を監視し、監視トレースに格納するステップ
1004 監視トレースの中の少なくとも2つのエッジを検出するステップ
1006 監視トレースに基づいてワークロード周波数と基準時刻に対するワークロード位相とを判定するステップ
1008 ワークロード周波数とワークロード位相とに基づいて将来ワークロードを予測するステップ
1010 予測結果に従って電子デバイスへの供給電力量を制御するステップ

【特許請求の範囲】
【請求項1】
監視期間中にハードウェアモニタ(104)を監視するために作動する電源マネージャ(106)において、
前記ハードウェアモニタ(104)は電子デバイス(102)に接続されており、
前記電子デバイス(102)はその動作中にワークロードを有するデバイスであり、
前記ハードウェアモニタ(104)は、前記電子デバイス(102)のワークロード指標値を生成するように構成されており、
前記電源マネージャ(106)は、監視結果に従って前記電子デバイス(102)への供給電力量を制御するように構成されている、
ことを特徴とする電源マネージャ(106)。
【請求項2】
前記電源マネージャ(106)は、監視しているワークロード指標値における立上りエッジを検出するように構成されており、
検出された前記立上りエッジに従って前記供給電力量の制御が行われるように構成されている、
ことを特徴とする請求項1記載の電源マネージャ(106)。
【請求項3】
前記電源マネージャ(106)は、監視しているワークロード指標値における立下りエッジを検出するように構成されており、
検出された前記立下りエッジに従って前記供給電力量の制御が行われるように構成されている、
ことを特徴とする請求項1又は2記載の電源マネージャ(106)。
【請求項4】
前記電源マネージャ(106)は、監視しているワークロード指標値において前記立上りエッジの後に発生する後続立上りエッジを更に検出するように構成されており、
前記電源マネージャ(106)は、前記立上りエッジの発生時刻と前記後続立上りエッジの発生時刻との間の時間差に従って将来エッジの発生時刻を予測するように構成されており、
予測された将来エッジの発生時刻に従って前記供給電力量の制御が行われるように構成されている、
ことを特徴とする請求項2記載の電源マネージャ(106)。
【請求項5】
前記電源マネージャ(106)は、監視しているワークロード指標値において前記立下りエッジの後に発生する後続立下りエッジを更に検出するように構成されており、
前記電源マネージャ(106)は、前記立下りエッジの発生時刻と前記後続立下りエッジの発生時刻との間の時間差に従って将来エッジの発生時刻を予測するように構成されており、
予測された将来エッジの発生時刻に従って前記供給電力量の制御が行われるように構成されている、
ことを特徴とする請求項3記載の電源マネージャ(106)。
【請求項6】
前記電源マネージャ(106)は、予測された将来エッジの発生時刻の近傍に次回の監視期間が位置するように次回の監視期間の実行時刻を選定するように構成されており、
前記電源マネージャ(106)は、選定した次回の監視期間に前記ハードウェアモニタ(104)を監視するように構成されている、
ことを特徴とする請求項4又は5記載の電源マネージャ(106)。
【請求項7】
前記電源マネージャ(106)は、前記ハードウェアモニタ(104)の追跡のために監視トレースを生成するように構成されており、
前記電源マネージャ(106)は、前記監視トレースに基づいてワークロード周波数と基準時刻に対するワークロード位相とを判定するように構成されており、
前記電源マネージャ(106)は、前記ワークロード周波数と前記ワークロード位相とに基づいて将来ワークロードを予測するように構成されており、
予測された将来ワークロードに従って前記供給電力量の制御が行われるように構成されている、
ことを特徴とする請求項1記載の電源マネージャ(106)。
【請求項8】
前記ハードウェアモニタ(104)は前記電源マネージャ(106)に一体に組込まれていることを特徴とする請求項1乃至7の何れか1項記載の電源マネージャ(106)。
【請求項9】
請求項1乃至8の何れか1項記載の電源マネージャ(106)を備えた電子システム(100)において、更に、
その動作中にワークロードを有する電子デバイス(102)と、
前記電子デバイス(102)に接続されており前記電子デバイス(102)のワークロード指標値を生成するように構成されているハードウェアモニタ(104)と、
を備えたことを特徴とする電子システム(100)。
【請求項10】
前記ワークロードが実質的に周期性を有するように構成されていることを特徴とする請求項9記載の電子システム(100)。
【請求項11】
モバイル型電子データ処理デバイスに組込まれていることを特徴とする請求項8ないし10の何れか1項記載の電子システム(100)。
【請求項12】
電子デバイスへの供給電力量を管理する電源管理方法において、
監視期間中にハードウェアモニタ(104)を監視するステップと、
監視結果に従って前記電子デバイスへの供給電力量を制御するステップとを含んでいる、
ことを特徴とする方法。
【請求項13】
監視結果が監視トレースの形で格納されるようにしており、
前記方法は更に、
前記監視トレースの中の少なくとも2つのエッジを検出するステップと、
前記監視トレースに基づいてワークロード周波数と基準時刻に対するワークロード位相とを判定するステップと、
前記ワークロード周波数と前記ワークロード位相とに基づいて将来ワークロードを予測するステップとを含んでおり、前記予測ステップの予測結果に従って前記供給電力量の制御が行われるようにしている、
ことを特徴とする請求項12記載の方法。
【請求項14】
将来エッジの発生時刻を予測するステップと、
予測された将来エッジの発生時刻の近傍に次回の監視期間が位置するように次回の監視期間の実行時刻を選定するステップと、
選定した次回の監視期間に前記ハードウェアモニタ(104)を監視するステップと、
を更に含んでいることを特徴とする請求項12又は13記載の方法。
【請求項15】
請求項12乃至14の何れか1項記載の方法の前記ステップを実行するためのコンピュータコードから成るコンピュータプログラム製品。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2011−521350(P2011−521350A)
【公表日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願番号】特願2011−509072(P2011−509072)
【出願日】平成21年5月12日(2009.5.12)
【国際出願番号】PCT/IB2009/051957
【国際公開番号】WO2009/138953
【国際公開日】平成21年11月19日(2009.11.19)
【出願人】(510301367)
【Fターム(参考)】