(57)【特許請求の範囲】
【請求項１】
電子デバイス（１０２）への供給電力量を制御するように構成されている電源マネージャ（１０６）であって、
前記電子デバイス（１０２）は、前記電源マネージャ（１０６）に接続されており、かつその動作中にワークロードを有するデバイスであり、前記電子デバイス（１０２）は、更にハードウェアモニタ（１０４）に接続されており、前記ハードウェアモニタ（１０４）は前記電子デバイス（１０２）のワークロードを監視し、かつ該監視している前記電子デバイス（１０２）のワークロードの指標値を示す信号を生成し、前記電源マネージャ（１０６）は、
ワークロード周波数及びワークロード位相を検出するワークロード検出機構（２０２）であって、前記監視されているワークロード指標値を受信し、前記監視されているワークロード指標値を示す信号におけるエッジを検出することによって該ワークロードのワークロード周波数及びワークロード位相を検出し、かつ前記検出されたエッジに基づいて、検出されたワークロード周波数を示す信号及び検出されたワークロード位相を示す信号を生成するように構成されている、前記ワークロード検出機構（２０２）と、
前記ワークロード検出機構（２０２）に接続されているワークロード予測機構（２０４）であって、前記検出されたワークロード周波数を示す信号及び検出されたワークロード位相を示す信号を前記ワークロード検出機構（２０２）から受信し、該受信した、前記検出されたワークロード周波数を示す信号及び前記検出されたワークロード位相を示す信号に基づいて前記電子デバイス（１０２）の将来ワークロードを予測し（ここで、該予測される将来ワークロードは、前記ワークロード周波数及びワークロード位相が検出された時点の次の周期に前記電子デバイス（１０２）へ供給されるべき電力量を表す。）、かつ前記電子デバイス（１０２）の予測される将来ワークロードに基づいて前記電子デバイス（１０２）への供給電力量を制御するように構成されている、前記ワークロード予測機構（２０４）と、
を含み、
前記検出されるエッジが、前記監視されているワークロード指標値を示す信号の第１の立上りエッジを含み、
前記検出されるエッジが、前記監視されているワークロード指標値を示す信号の第２の立上りエッジを含み、前記監視されているワークロード指標値を示す信号の第１の立上りエッジと第２の立上りエッジとの間の時間差が、前記検出されたワークロード周波数を示す信号又は前記検出されたワークロード位相を示す信号の将来エッジを予測するための基礎を提供し、かつ前記電源マネージャ（１０６）が、更に前記監視されているワークロード指標値を示す信号の予測される将来エッジに基づいて前記電子デバイス（１０２）への供給電力量を制御するように構成されており、
前記電源マネージャ（１０６）が、前記監視されているワークロード指標値を示す信号の予測される将来エッジの発生時刻の近傍に次回の監視期間が位置するように次回の監視期間の実行時刻を選定し、かつ前記次回の監視期間に前記ハードウェアモニタ（１０４）を監視するように構成されている、前記電源マネージャ（１０６）。
【請求項２】
電子デバイス（１０２）への供給電力量を制御するように構成されている電源マネージャ（１０６）であって、
前記電子デバイス（１０２）は、前記電源マネージャ（１０６）に接続されており、かつその動作中にワークロードを有するデバイスであり、前記電子デバイス（１０２）は、更にハードウェアモニタ（１０４）に接続されており、前記ハードウェアモニタ（１０４）は前記電子デバイス（１０２）のワークロードを監視し、かつ該監視している前記電子デバイス（１０２）のワークロードの指標値を示す信号を生成し、前記電源マネージャ（１０６）は、
ワークロード周波数及びワークロード位相を検出するワークロード検出機構（２０２）であって、前記監視されているワークロード指標値を受信し、前記監視されているワークロード指標値を示す信号におけるエッジを検出することによって該ワークロードのワークロード周波数及びワークロード位相を検出し、かつ前記検出されたエッジに基づいて、検出されたワークロード周波数を示す信号及び検出されたワークロード位相を示す信号を生成するように構成されている、前記ワークロード検出機構（２０２）と、
前記ワークロード検出機構（２０２）に接続されているワークロード予測機構（２０４）であって、前記検出されたワークロード周波数を示す信号及び検出されたワークロード位相を示す信号を前記ワークロード検出機構（２０２）から受信し、該受信した、前記検出されたワークロード周波数を示す信号及び前記検出されたワークロード位相を示す信号に基づいて前記電子デバイス（１０２）の将来ワークロードを予測し（ここで、該予測される将来ワークロードは、前記ワークロード周波数及びワークロード位相が検出された時点の次の周期に前記電子デバイス（１０２）へ供給されるべき電力量を表す。）、かつ前記電子デバイス（１０２）の予測される将来ワークロードに基づいて前記電子デバイス（１０２）への供給電力量を制御するように構成されている、前記ワークロード予測機構（２０４）と、
を含み、
前記検出されるエッジが、前記監視されているワークロード指標値を示す信号の第１の立下りエッジを含み、
前記検出されるエッジが、前記監視されているワークロード指標値を示す信号の第２の立下りエッジを含み、前記監視されているワークロード指標値を示す信号の第１の立下りエッジと第２の立下りエッジとの間の時間差が、前記検出されたワークロード周波数を示す信号又は前記検出されたワークロード位相を示す信号の将来エッジを予測するための基礎を提供し、かつ前記電源マネージャ（１０６）が、更に前記監視されているワークロード指標値を示す信号の予測される将来エッジに基づいて前記電子デバイス（１０２）への供給電力量を制御するように構成されており、
前記電源マネージャ（１０６）が、前記監視されているワークロード指標値を示す信号の予測される将来エッジの発生時刻の近傍に次回の監視期間が位置するように次回の監視期間の実行時刻を選定し、かつ前記次回の監視期間に前記ハードウェアモニタ（１０４）を監視するように構成されている、前記電源マネージャ（１０６）。
【請求項３】
前記電源マネージャ（１０６）が、前記ハードウェアモニタ（１０４）の追跡のために監視トレースを生成し、かつ前記監視トレースの前記ワークロード周波数と基準時刻に対する前記ワークロード位相とを判定するように構成されている、請求項１又は２記載の電源マネージャ（１０６）。
【請求項４】
前記ハードウェアモニタ（１０４）が前記電源マネージャ（１０６）に一体に組込まれている、請求項１又は２記載の電源マネージャ（１０６）。
【請求項５】
電子デバイス（１０２）と、
前記電子デバイス（１０２）に接続されているハードウェアモニタ（１０４）であって、前記電子デバイス（１０２）のワークロードを監視し、かつ該監視している前記電子デバイス（１０２）のワークロードの指標値を示す信号を生成するように構成されている、前記ハードウェアモニタ（１０４）と、
前記監視されているワークロード指標値を示す信号を受信するように接続されている電源マネージャ（１０６）であって、前記監視されているワークロード指標値を示す信号におけるエッジを検出することによってワークロード周波数及びワークロード位相を検出し、かつ前記検出されたワークロード周波数を示す信号及び前記検出されたワークロード位相を示す信号に基づいて前記電子デバイス（１０２）の将来ワークロードを予測する（ここで、該予測される将来ワークロードは、前記ワークロード周波数及びワークロード位相が検出された時点の次の周期に前記電子デバイス（１０２）へ供給されるべき電力量を表す。）ように構成されている、前記電源マネージャ（１０６）と、
を含み、
前記検出されるエッジが、前記監視されているワークロード指標値を示す信号の第１の立上りエッジを含み、
前記検出されるエッジが、前記監視されているワークロード指標値を示す信号の第２の立上りエッジを含み、前記監視されているワークロード指標値を示す信号の第１の立上りエッジと第２の立上りエッジとの間の時間差が、前記検出されたワークロード周波数を示す信号又は前記検出されたワークロード位相を示す信号の将来エッジを予測するための基礎を提供し、かつ前記電源マネージャ（１０６）が、更に前記監視されているワークロード指標値を示す信号の予測される将来エッジに基づいて前記電子デバイス（１０２）への供給電力量を制御するように構成されており、
前記電源マネージャ（１０６）が、前記監視されているワークロード指標値を示す信号の予測される将来エッジの発生時刻の近傍に次回の監視期間が位置するように次回の監視期間の実行時刻を選定し、かつ前記次回の監視期間に前記ハードウェアモニタ（１０４）を監視するように構成されている、電子システム（１００）。
【請求項６】
電子デバイス（１０２）と、
前記電子デバイス（１０２）に接続されているハードウェアモニタ（１０４）であって、前記電子デバイス（１０２）のワークロードを監視し、かつ該監視している前記電子デバイス（１０２）のワークロードの指標値を示す信号を生成するように構成されている、前記ハードウェアモニタ（１０４）と、
前記監視されているワークロード指標値を示す信号を受信するように接続されている電源マネージャ（１０６）であって、前記監視されているワークロード指標値を示す信号におけるエッジを検出することによってワークロード周波数及びワークロード位相を検出し、かつ前記検出されたワークロード周波数を示す信号及び前記検出されたワークロード位相を示す信号に基づいて前記電子デバイス（１０２）の将来ワークロードを予測する（ここで、該予測される将来ワークロードは、前記ワークロード周波数及びワークロード位相が検出された時点の次の周期に前記電子デバイス（１０２）へ供給されるべき電力量を表す。）ように構成されている、前記電源マネージャ（１０６）と、
を含み、
前記検出されるエッジが、前記監視されているワークロード指標値を示す信号の第１の立下りエッジを含み、
前記検出されるエッジが、前記監視されているワークロード指標値を示す信号の第２の立下りエッジを含み、前記監視されているワークロード指標値を示す信号の第１の立下りエッジと第２の立下りエッジとの間の時間差が、前記検出されたワークロード周波数を示す信号又は前記検出されたワークロード位相を示す信号の将来エッジを予測するための基礎を提供し、かつ前記電源マネージャ（１０６）が、更に前記監視されているワークロード指標値を示す信号の予測される将来エッジに基づいて前記電子デバイス（１０２）への供給電力量を制御するように構成されており、
前記電源マネージャ（１０６）が、前記監視されているワークロード指標値を示す信号の予測される将来エッジの発生時刻の近傍に次回の監視期間が位置するように次回の監視期間の実行時刻を選定し、かつ前記次回の監視期間に前記ハードウェアモニタ（１０４）を監視するように構成されている、電子システム（１００）。
【請求項７】
前記ワークロードが実質的に周期性を有する、請求項５又は６記載の電子システム（１００）。
【請求項８】
電子デバイス（１０２）への供給電力量を管理する電源管理方法であって、
監視期間中にハードウェアモニタ（１０４）を監視するステップと、
前記監視の結果を監視トレースの形で格納するステップと、
前記監視トレースの中の少なくとも２つのエッジを検出するステップと、
ワークロード周波数と基準時刻に対するワークロード位相とを判定するステップ（ここで、前記基準時刻は、前記監視トレースの中の少なくとも２つのエッジのうちの一方の発生時刻に相当する、ワークロード周期の開始時刻を表す。）と、
前記ワークロード周波数及びワークロード位相に基づいて、前記基準時刻の後の次回の周期の将来ワークロードを予測するステップと、
前記監視トレースの将来エッジの発生時刻を予測するステップと、
予測された将来エッジの発生時刻の近傍に次回の監視期間が位置するように次回の監視期間の実行時刻を選定するステップと、
前記次回の監視期間に前記ハードウェアモニタ（１０４）を監視するステップと、
を含む、前記電源管理方法。
【請求項９】
監視期間中にハードウェアモニタ（１０４）を監視するステップと、
前記監視の結果を監視トレースの形で格納するステップと、
前記監視トレースの中の少なくとも２つのエッジを検出するステップと、
ワークロード周波数と基準時刻に対するワークロード位相とを判定するステップ（ここで、前記基準時刻は、前記監視トレースの中の少なくとも２つのエッジのうちの一方の発生時刻に相当する、ワークロード周期の開始時刻を表す。）と、
前記ワークロード周波数及びワークロード位相に基づいて、前記基準時刻の後の次回の周期の将来ワークロードを予測するステップと、
前記監視トレースの将来エッジの発生時刻を予測するステップと、
予測された将来エッジの発生時刻の近傍に次回の監視期間が位置するように次回の監視期間の実行時刻を選定するステップと、
前記次回の監視期間に前記ハードウェアモニタ（１０４）を監視するステップと、
を含む方法の前記ステップをコンピュータに実行させるためのコンピュータコードから成るコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電源マネージャに関する。
【０００２】
本発明は更に、電子デバイスを備えた電子システムに関する。
【０００３】
本発明は更に、電子デバイスへの供給電力量を管理する電源管理方法に関する。
【０００４】
本発明は更に、コンピュータプログラム製品に関する。
【背景技術】
【０００５】
最近の電子デバイスにおいては電源管理の重要性が益々高まってきている。例えば、バッテリ駆動式の電子デバイスにも、ビデオクリップ再生機能などの演算処理負荷の大きな機能が装備されるようになった。このような演算処理負荷の大きな機能は、より多くの電力量を必要とする。一方、それと同時に、スタンバイ時間及び動作時間をより長くすることが望まれている。更には、環境上の理由からも、電力を無用に消費しないことは重要である。
【０００６】
集積回路（ＩＣ）などの電子デバイスが消費するエネルギ量即ち電力消費量を抑制するために、動的電源管理（Dynamic Power Management：ＤＰＭ）と呼ばれる技法が用いられている。電子デバイスがアプリケーションを実行しているときには、その実行に必要とされるその電子デバイスのパフォーマンスレベルが時々刻々と変化するが、ＤＰＭは、電子デバイスへの供給電力量を動的にスケーリング（増減）することにより、その電子デバイスへの供給電力量を、その電子デバイスのパフォーマンスレベルに丁度見合うだけの電力供給量にする技法である。
【０００７】
電子デバイスがアプリケーションを実行しているときには、その電子デバイスのワークロードがダイナミックに変化している。そのため、電子デバイスへの供給電力量をスケーリングする場合には、将来時点において必要とされる電力量、即ち将来必要電力量を予測しなければならない。電子デバイスの将来必要電力量の予測精度が高いほど、節約できる電力量も大きくなる。
【０００８】
オペレーティングシステム（ＯＳ）上でアプリケーションを実行しているコンピュータへの供給電力量を制御する方法の１つに、過去時点においてある特定のタスクを実行するためにプロセッサが費やしたクロックサイクルの個数に基づいて、その供給電力量の制御を行うという方法がある。ある特定のタスクを実行するために費やされるクロックサイクルの個数は、ＯＳによって測定される。この方法に付随する問題は、ある特定のタスクを実行するために費やされるクロックサイクルの個数を測定する測定動作をトリガする（開始させる）事象が、ＯＳ関連事象に限られてしまうことであり、例えば、タスクの切替えが行われるという事象や、ＯＳのタイマーティックが開始するという事象などによって、その測定動作がトリガされるようにしている。また、ある特定のタスクのために費やされるクロックサイクルの個数を測定する測定動作は、その実行頻度を増大させることができず、これは、ＯＳがソフトウェアで実行されていることによるものである。そして、その測定動作の実行頻度を増大させることができないことから、ＯＳによって生成されるデータは、高い分解能を有するものとはなり得ない。また、ＯＳばかりでなく、一般的にソフトウェアプログラムによって生成されるデータはその粒状度が粗く、そのようなデータに基づいて、より微細な粒状度を有するタイムスケール上の電力消費量のパターンを把握することは不可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従って、供給電力量を制御するために実行するワークロード監視動作における監視結果の精度がよくないことが、従来より問題となっていた。
【００１０】
本発明の目的は、電子デバイスへの供給電力量の制御動作を改善することにある。
【課題を解決するための手段】
【００１１】
上記目的は、本発明に係る電源マネージャにより達成される。本発明に係る電源マネージャは監視期間中にハードウェアモニタを監視する監視動作を実行するように構成されている。前記ハードウェアモニタは電子デバイスに接続されている。前記電子デバイスはその動作中にワークロードを有するデバイスである。前記ハードウェアモニタは、前記電子デバイスのワークロード指標値を生成するように構成されている。前記電源マネージャは、前記監視動作の監視結果に従って前記電子デバイスへの供給電力量を制御するように構成されている。
【００１２】
電子デバイスの動作中に、その電子デバイスのワークロードは、大きくなるときもあれば、小さくなるときもある。電子デバイスの将来時点でのワークロード、即ち将来ワークロードを、より高い精度で予測することができれば、それによって電子デバイスの電源管理を改善することができる。即ち、電子デバイスのワークロードが小さくなるときには、その電子デバイスへの供給電力量を低下させるようにすることができる。
【００１３】
電子デバイスの将来ワークロードを予測するには、その予測の基礎となるデータとして、高精度のデータを取得する必要がある。高精度のデータを取得するには、ハードウェアモニタを用いるとよい。ワークロードを高精度で表したデータに基づいて供給電力量の制御を行うことにより、その制御動作をより優れたものとすることができる。その結果として、電子デバイスへの供給電力量を低減することができ、即ち省電力が可能となる。電子デバイスがバッテリ駆動式のものである場合には、バッテリが長持ちするようになる。
【００１４】
そのワークロードを監視することのできる電子デバイスの具体例としては、例えば、集積回路（ＩＣ）などがあり、また、ステッパモータなどのメカトロニクスデバイスなどもそのワークロードを監視することのできる電子デバイスである。この種の電子デバイスの具体例としては更に、演算処理デバイスや、データ処理デバイスなどがあり、特にデータ処理デバイスの一例としては、例えば、携帯電話端末に装備されているビデオ処理ユニットなどが挙げられる。
【００１５】
また特に、コンピュータプログラム即ちソフトウェアを実行するように構成された中央処理装置（ＣＰＵ）などが、ここでいう電子デバイスに該当する。また、ＣＰＵが音楽アプリケーションやビデオアプリケーションなどのアプリケーションを実行しているときには、そのＣＰＵのワークロードが、あるときは大きくなり、あるときは小さくなる。
【００１６】
ワークロードとは、所定長さの期間中に電子デバイスが実行する仕事量を直接的に言い表したものである。例えば、ワークロードを表す値、即ちワークロード指標値としては、所定長さの期間中のクロックサイクルの総個数に対する、当該期間中に実際に仕事が行われたクロックサイクルの個数の比の値をもって、ワークロード指標値とすることもある。また、電子デバイスの消費電力量の値をもってワークロード指標値とすることもある。
【００１７】
電子デバイスは動作中に電力を必要とする。電子デバイスが必要とする電力量は、その電子デバイスが実行しようとする動作に応じて決まる。電子デバイスが通常の動作を実行しているときに、その電子デバイスへの供給電力量を変化させると、それによって、その電子デバイスの動作速度だけが変化する。電子デバイスへの供給電力量を変化させることによって、その電子デバイスが実行する動作それ自体に影響を及ぼすことはない。
【００１８】
先に言及したハードウェアモニタは、細粒な分解能で電子デバイスのワークロード指標値を生成するように構成されている。例えば、クロック駆動式の電子デバイスでは、分解能は、そのクロックサイクルの発生間隔に等しいものである。
【００１９】
電子デバイスがＣＰＵである場合には、ハードウェアモニタは、例えば、そのＣＰＵがノーオペレーション命令（ＮＯＰ命令）を実行中であるか否か、即ち、そのＣＰＵがスリープモード若しくはアイドルモードにあるか否かを表す値を生成する。様々なＣＰＵのうちには、その出力バッファをブロッキングすることによってアイドルモードに入るものがある。そのようなＣＰＵでは、ハードウェアモニタによって、その出力バッファのブロッキング状態を監視するようにすればよい。
【００２０】
ハードウェアモニタの典型的な一例は、いわゆるハードウェア事象カウンタであり、これは、ハードウェアパフォーマンスカウンタと呼ばれることもあり、また、パフォーマンス監視装置（Performance Monitoring Unit：ＰＭＵ）と呼ばれることもある。
【００２１】
ハードウェア事象カウンタは殆どのプロセッサに組込まれており、ハードウェア事象カウンタは周知の機構である。最近の殆どのプロセッサには、そのプロセッサの特定のサブユニットとアプリケーションとの間のインターアクションに関するパフォーマンス事象を監視するためのハードウェア事象カウンタが装備されている。そのような事象カウンタに関しては、例えば、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 などの諸文献を参照されたい。
【００２２】
電力量の制御は、状態マシンをしかるべき状態へ遷移させることによって行うことができる。より具体的には、例えば、電力量の制御は、アイドル状態にある電子デバイスをオフ状態に遷移させることによって行うことができる。
【００２３】
電力量の制御は電源線の経路変更によって行うこともできる。更に、電力量の制御は、例えば電源制御機構などの他のユニットに命令を発して、電源線から電子デバイスへ供給される電力量を増減させることによっても行うことができる。
【００２４】
本発明の特に実用的な１つの実施の形態によれば、前記電源マネージャは、電子デバイスに接続されたクロック線上のクロック周波数を制御することにより前記供給電力量を制御するように構成されている。
【００２５】
本発明の特に実用的な１つの実施の形態によれば、前記電源マネージャは、電子デバイスへの供給電圧を制御することにより前記供給電力量を制御するように構成されている。
【００２６】
本発明は、ワークロードが実質的に周期性を有するものである場合に特に有益なものである。
【００２７】
ワークロードが周期性を有する場合には、容易に将来ワークロードを予測することができる。なぜならば、ワークロードが周期性を有する場合には、過去ワークロードが、そのまま将来ワークロードを表しているからである。アプリケーションが周期性を有していることが検出できたならば、若しくは、アプリケーションの現在の実行状況が周期性を有していることが検出できたならば、それは将来ワークロードの予測精度を改善できることを意味している。
【００２８】
ＯＳを利用してワークロードナンバーを取得する方式には、例えばパーセンテージなどの値によって単にＣＰＵのワークロードナンバーを与えるに過ぎないということが問題となっている。そのため、ＯＳを利用して取得したワークロードナンバーに基づいて電源管理を実行する電源マネージャは、ワークロード指標値が大きな値を持つ期間の開始時刻を判定することができず、また、周期性をもって反復して変化するワークロードの周波数や周期の長さを判定することができない。更に、ＯＳを利用して取得したワークロードナンバーに基づいた方式では、ワークロード周期の正確な長さも、正確な位相も検出することができない。
【００２９】
前記電源マネージャは、周期性を有するワークロードのワークロード周波数を検出するためには、例えばある１つのワークロード周期からその次のワークロード周期までの経過時間を検出するように構成されたものとしてもよく、また、周期性を有するワークロードのワークロード位相を検出するためには、例えばその周期性を有するワークロードのワークロード負荷の発生開始時刻を検出するように構成されたものとしてもよい。
【００３０】
本発明の好適な１つの実施の形態によれば、前記電源マネージャは、監視しているワークロード指標値における立上りエッジを検出するように構成されており、検出された立上りエッジに従って前記供給電力量の制御が行われるように構成されている。
【００３１】
電子デバイスのワークロード指標値における急上昇部分である立上りエッジを検出することによって、ワークロード指標値が大きな値を持つ期間の開始時刻を検出することができる。尚、エッジを検出する際には、高精度のデータに基づいてそのエッジ検出を行う必要がある。
【００３２】
ワークロード指標値における急上昇部分の検出基準としては、例えば、ハードウェアモニタが次々と生成するワークロード指標値が、所定時間内に所定の大きさの上昇率で上昇したとき、或いは、ハードウェアモニタが次々と生成するワークロード指標値が、所定時間内に所定の大きさの上昇量で上昇したとき、或いは、ハードウェアモニタが次々と生成するワークロード指標値が所定値以上である割合が、所定時間内に所定割合を超えたときなどに、そのことをもってワークロード指標値における急上昇部分が検出されたものとすることができる。
【００３３】
ワークロード指標値における急上昇部分の検出基準としては更に、例えば、最初にハードウェアモニタ測定値の移動平均値を算出し、次いでその移動平均値が急上昇したときに、そのことをもってワークロード指標値における急上昇部分が検出されたものとしてもよい。この判定基準は、ハードウェアモニタが生成するワークロード指標値がバイナリ値である場合に特に有用である。
【００３４】
本発明の実用的な１つの実施の形態によれば、前記電源マネージャは、監視しているワークロード指標値における立下りエッジを検出するように構成されており、検出された立下りエッジに従って前記供給電力量の制御が行われるように構成されている。
【００３５】
電子デバイスのワークロード指標値の急低下である立下りエッジの発生が報知されることで、ワークロード指標値が大きな値を持つ期間の終了時刻を検出することが可能となっている。尚、エッジの検出に関しては、高精度のデータに基づいて行うようにしなければならない。
【００３６】
本発明の実用的な１つの実施の形態によれば、前記電源マネージャは、監視しているワークロード指標値において前記立上りエッジの後に発生する後続立上りエッジを検出するように構成されており、また、前記電源マネージャは、前記立上りエッジと前記後続立上りエッジとの間の時間差に従って将来エッジの発生時刻を予測するように構成されており、予測された将来エッジの発生時刻に従って前記供給電力量の制御が行われるように構成されている。
【００３７】
少なくとも２つの立上りエッジが検出されたならば、外挿法を用いるなどの方法によって、将来エッジの発生時刻を予測することができる。例えば、将来エッジの発生時刻は、前記後続立上りエッジの発生時刻に、前記後続立上りエッジと前記立上りエッジとの間の発生時刻の時間差を加えた時刻になるものと予測することができる。
【００３８】
このようにして予測された将来エッジの発生時刻に従って前記供給電力量の制御を行うには、例えば、供給電力量のレベルを、過去において発生したエッジの発生直後の期間に必要とされたレベルに設定するようにしてもよい。
【００３９】
本発明の実用的な１つの実施の形態によれば、前記電源マネージャは、監視しているワークロード指標値において前記立下りエッジの後に発生する後続立下りエッジを更に検出するように構成されており、また、前記電源マネージャは、前記立下りエッジと前記後続立下りエッジとの間の時間差に従って将来エッジの発生時刻を予測するように構成されており、予測された将来エッジの発生時刻に従って前記供給電力量の制御が行われるように構成されている。
【００４０】
少なくとも２つの立下りエッジが検出されたならば、外挿法を用いるなどの方法によって、将来エッジの発生時刻を予測することができる。例えば、将来エッジの発生時刻は、前記後続立下りエッジの発生時刻に、前記後続立下りエッジと前記立下りエッジとの間の発生時刻の時間差を加えた時刻になるものと予測することができる。
【００４１】
このようにして予測された将来エッジの発生時刻に従って前記供給電力量の制御を行うには、例えば、供給電力量のレベルを、過去において発生した立下りエッジの発生直後の期間に必要とされたレベルに低下させるようにしてもよい。
【００４２】
本発明の好適な１つの実施の形態によれば、前記電源マネージャは、予測された将来エッジの発生時刻の近傍に次回の監視期間が位置するように次回の監視期間の実行時刻を選定するように構成されており、また、前記電源マネージャは、選定した次回の監視期間に前記ハードウェアモニタを監視するように構成されている。
【００４３】
前記電源マネージャは、将来立下りエッジまたは将来立上りエッジの予測ができるようになったならば、それ以後は連続的な監視を止めることもできる。予測した将来エッジが次回の監視期間の中で発生するように次回の監視期間を選定することから、電源マネージャはその予測が正しかったか否かを検証することができる。次回の監視期間の中で発生する将来エッジは、最新に発生したエッジの次に発生すると予測した将来エッジである必要はなく、数個の将来エッジをやり過ごして、更にその次に発生すると予測した将来エッジが次回の監視期間の中で発生するように、次回の監視期間を設定してもよい。ただし、連続的に監視するようにしておけば、エッジの発生時刻がドリフトする場合にそのドリフトに対する補正を行えるという利点が得られる。
【００４４】
本発明の実用的な１つの実施の形態によれば、前記電源マネージャは、前記ハードウェアモニタが生成するワークロード指標値の連続記録である監視トレースを生成するように構成されており、また、前記電源マネージャは、前記監視トレースに基づいてワークロード周波数と基準時刻に対するワークロード位相とを判定するように構成されており、また、前記電源マネージャは、前記ワークロード周波数と前記ワークロード位相とに基づいて将来ワークロードを予測するように構成されており、予測された将来ワークロードに従って前記供給電力量の制御が行われるように構成されている。
【００４５】
ここで監視トレースとは、ハードウェアモニタが生成する指標値をある期間に亘って連続記録した履歴的記録である。
【００４６】
前記電源マネージャが監視トレースを生成する方法としては、例えば、前記ハードウェアモニタが次々と生成するワークロード指標値を一時的に格納して行くという方法などが用いられる。監視トレースの解析を行うことによって、ワークロード指標値の周期パターンを抽出することができ、この周期パターンの抽出は、例えばエッジを検出することによって行われる。ワークロード指標値の周期パターンは周波数を有しており、これがワークロード周波数である。また、ワークロード指標値が大きな値を持つ期間の開始時刻の、基準時刻に対する相対時刻を判定することができ、これが基準時刻に対するワークロード位相である。ワークロード指標値が大きな値を持つ期間の開始時刻が判定され、且つ、当該期間がどれ程の頻度で反復するかが判定されたならば、それによって将来ワークロードの予測が可能になる。
【００４７】
本発明の実用的な１つの実施の形態によれば、前記ハードウェアモニタは前記電源マネージャに一体に組込まれている。
【００４８】
本発明に係る電子システムは、本発明に係る電源マネージャと、その動作中にワークロードを有する電子デバイスと、前記電子デバイスに接続されており前記電子デバイスのワークロード指標値を生成するように構成されているハードウェアモニタとを備えている。
【００４９】
本発明の電子システムの好適な１つの実施の形態によれば、前記電子システムのワークロードが実質的に周期性を有するように構成されている。
【００５０】
本発明に係る電子システムはモバイル型電子データ処理デバイスに組込まれたものとすることができる。
【００５１】
モバイル型電子データ処理デバイスに関しては、その必要電力量が利用上の制約となっているという問題があった。それゆえ、モバイル型電子データ処理デバイスの消費電力量を低減することは非常に有用である。モバイル型電子データ処理デバイスの消費電力量を低減することによって、例えば、モバイル型電子データ処理デバイスをスタンバイ状態に維持し得る時間及び／または再生時間を長くすることができる。
【００５２】
モバイル型電子データ処理デバイスの具体例としては、携帯電話端末、パーソナルデジタルアシスタント（ＰＤＡ）、ｍｐ３プレーヤ、携帯型ビデオ再生装置、パーソナルナビゲーション装置、等々がある。
【００５３】
電子デバイスへの供給電力量を管理する電源管理方法は、以下のステップ：監視期間中にハードウェアモニタを監視するステップと、監視結果に従って前記電子デバイスへの供給電力量を制御するステップとを含んでいる。
【００５４】
電子デバイスへの供給電力量を管理する前記電源管理方法の好適な１つの実施の形態によれば、監視結果が監視トレースの形で格納されるようにしている。また、前記方法は更に、前記監視トレースの中の少なくとも２つのエッジを検出するステップと、前記監視トレースに基づいてワークロード周波数と基準時刻に対するワークロード位相とを判定するステップと、前記ワークロード周波数と前記ワークロード位相とに基づいて将来ワークロードを予測するステップとを含んでいる。そして、前記予測ステップの予測結果に従って前記供給電力量の制御が行われる。
【００５５】
電子デバイスへの供給電力量を管理する前記電源管理方法の好適な１つの実施の形態は、将来エッジの発生時刻を予測するステップと、予測された将来エッジの発生時刻の近傍に次回の監視期間が位置するように次回の監視期間の実行時刻を選定するステップと、選定した次回の監視期間に前記ハードウェアモニタを監視するステップとを更に含んでいる。
【００５６】
コンピュータプログラム製品は、本発明に係る前記方法を実行するためのコンピュータコードから成るものである。
【００５７】
尚、オペレーティングシステム（ＯＳ）のスケジューラに適合するハードウェア事象カウンタの利用方法を開示している非特許文献として、Christos D. Antonopoulos and Dimitrios S. Nikolopoulos共著、"Using Hardware Event Counters for Continuous, Online System Optimization; Lessons and Challenges" がある。
【００５８】
また、オペレーティングモードとストップモードとを有するデータ処理素子を備えたデータ処理装置を開示した特許文献として、米国特許第４８２３２９２号公報（発明の名称：Data processing apparatus with energy saving clocking device（省電力用クロック装置を備えたデータ処理装置）、同米国特許公報の開示内容はこの言及をもって本願開示に組込まれたものとする）がある。そこに開示されているデータ処理素子は、オペレーティングモードとストップモードとの間でモード切替を行うことによって、消費電力量を低減可能にしたものである。ただし、この米国特許第４８２３２９２号のデータ処理装置にはハードウェアモニタは用いられていない。
【先行技術文献】
【特許文献】
【００５９】
【特許文献１】米国特許第４８２３２９２号公報
【非特許文献】
【００６０】
【非特許文献１】Christos D. Antonopoulos and Dimitrios S. Nikolopoulos共著、"Using Hardware Event Counters for Continuous, Online System Optimization; Lessons and Challenges"
【００６１】
以下に添付図面を参照しつつ、具体的な実施の形態に即して、本発明について更に詳細に説明して行く。添付図面については下記の通りである。
【図面の簡単な説明】
【００６２】
【図１】本発明に係る電子システムの１つの実施の形態を示したブロック図である。
【図２】周期性を有するアプリケーションを実行したときのワークロードトレースを示すグラフである。
【図３】ワークロード位相を正確に判定することの重要性を説明するためのグラフである。
【図４】電源マネージャの１つの実施の形態を示したブロック図である。
【図５】本発明に係る電子システムの更に別の実施の形態を示したブロック図である。
【図６】本発明に係る方法を示したフローチャートである。
【００６３】
尚、以上の図面において、互いに同一または対応する構成要素には、同一の参照符号を付してある。
【発明を実施するための形態】
【００６４】
本発明は様々な形態で実施し得るものであるが、ここでは幾つかの具体的な実施の形態を図面に示して詳細に説明することにする。ただし、本開示は本発明の原理を具体的に提示するためのものであり、本発明は図面に示されここで詳述される具体的な実施の形態のみに限定されない。
【００６５】
図１に示したのは本発明に係る電子システム１００の１つの実施の形態のブロック図である。
【００６６】
電子システム１００は、電子デバイス１０２と、ハードウェアモニタ１０４と、電源マネージャ１０６とを備えている。尚、この実施の形態では、ハードウェアモニタ１０４が電子デバイス１０２に組込まれているが、このことは必須の要件ではない。
【００６７】
ハードウェアモニタ１０４は、電子デバイス１０２のワークロード指標値を生成するように構成されている。電源マネージャ１０６は、ハードウェアモニタ１０４が生成するワークロード指標値を、このハードウェアモニタ１０４との接続を介して読取ることができるように構成されている。更に、電源マネージャ１０６は、電子デバイス１０２への供給電力量を制御するように構成されている。
【００６８】
その動作について説明すると、動作中は、ハードウェアモニタ１０４が、電子デバイス１０２のワークロード指標値を次々と生成している。このハードウェアモニタ１０４は、例えば、電子デバイス１０２の現在状態がアクティブ状態とアイドル状態とのいずれの状態であるかを表示する１ビットのレジスタとしてもよい。電源マネージャ１０６は、ハードウェアモニタ１０４の内容を読取ると共に、その読取った内容に基づいて電子デバイス１０２の将来ワークロードを予測する動作を実行している。また、電源マネージャ１０６は、その予測した将来ワークロードに基づいて電子デバイス１０２が必要とすることになる電力量を判定する動作を実行している。電源マネージャ１０６は、例えば、その予測した将来ワークロードをプロセッサが時間内に完了するために必要とされるクロック周波数を算出し、そして、プロセッサへの供給電圧を、そのクロック周波数を維持するのに十分なだけの電圧に制御するように動作するものとしてもよい。
【００６９】
電子デバイス１０２はワークロードを有するデバイスであり、そのワークロードは周期性を有している。ハードウェアモニタ１０４は、電子デバイス１０２に接続されており、この電子デバイス１０２のワークロード指標値を次々と生成している。電源マネージャ１０６は、ハードウェアモニタ１０４を監視する監視動作を実行している。また、電源マネージャ１０６は、将来ワークロードを予測するワークロード予測動作を実行しており、その予測結果に基づいて電子デバイス１０２への供給電力量の調節が行われている。
【００７０】
電源マネージャ１０６は、エッジを検出することによって、ワークロード周期の予測を行っている。電源マネージャ１０６は、みずからの動作を、エッジの検出によって予測したワークロード周期に同期させるようにしている。電源マネージャ１０６は、立上りエッジの立上り開始時刻と、立上りエッジの発生頻度とを判定している。尚、ワークロード周期の長さの算出も併せて実行するようにすることが好ましい。
【００７１】
電源マネージャ１０６は、監視動作については、連続的にハードウェアモニタ１０４を監視する必要はない。電源マネージャ１０６は、将来立上りエッジの発生時刻を予測したならば、その予測した将来立上りエッジの発生時刻の近傍期間においてのみ監視動作を実行するようにしてもよく、それによって、将来立上りエッジの発生時刻の予測が正しかったか否かの検証を行うこともでき、また必要とあらば、較正即ち再調節も行うことができる。再調節が必要となるのは、例えばドリフトが発生している場合などである。
【００７２】
電源マネージャ１０６は、専用のハードウェアで構成することも可能であり、その場合には例えば、供給電力量の制御やハードウェアモニタの監視を実行するように設計した電子回路などで構成するのもよい。或いは、電源マネージャ１０６は、汎用のハードウェアを専用のソフトウェアで制御するように構成したものとすることも可能であり、また、専用のハードウェアと汎用のハードウェアとを組合せて構成したものとすることも可能である。
【００７３】
典型的には、例えば、電源マネージャ１０６が、中間装置である電源管理装置２００（図１では不図示とした）を介して、供給電力量の制御を行うような構成とするのもよく、その場合には例えば、電源マネージャ１０６がその電源管理装置２００へ、クロック周波数及び／または供給電圧に関する情報を送出するようにすればよい。
【００７４】
ハードウェアモニタ１０４は、各クロックサイクルごとにワークロード指標値を生成するのではなく、ある短い期間ごとに、その期間内のワークロードをまとめて表した値を１つずつ生成するようにしてもよく、その場合に生成する値は、例えば、その期間内のワークロードの平均値や合計値などとすることができる。例えば、短い期間内においてＣＰＵの作動サイクルの個数をもって、ハードウェアモニタ１０４が生成するワークロード指標値とすればよい。尚、ここでいう短い期間とは、ハードウェアモニタ１０４が生成するその期間内のワークロードをまとめて表した値が、ワークロードの周期性を認識させるだけの十分な分解能を有する値となり得る程度に短い期間のことをいう。
【００７５】
図２に示したのは、周期性を有するアプリケーションのワークロードトレースを表すグラフである。このグラフに具体例として示したワークロードトレースは、周期性を有するアプリケーションとして、ビデオのデコードを行うアプリケーションを、組み込み型ＣＰＵである「ＡＲＭ（登録商標）９」ＣＰＵで実行したときのものである。
【００７６】
周期性を有するアプリケーションを実行するプロセッサのワークロード、例えば、単位時間あたりのＣＰＵの作動サイクルの個数が変化するような様々なワークロードを予測するためには、現在ワークロード周期におけるワークロードを正しく測定できることが必要とされる。
【００７７】
このように変化するワークロードを、例えばワークロード周期を１つのタイムフレームとして、正確にそのタイムフレームで区切って測定しようとするとき、オペレーティングシステムなどのソフトウェアによる測定では、十分な時間分解能をもって測定することは不可能である。これに対して、ハードウェア事象レジスタやトレースレジスタなどのハードウェアを利用して、ＣＰＵの占有状態を測定するようにすれば、非常に微細な粒状度の測定結果が得られ、それによって同期の精度も向上する。そこで、本発明においては、アプリケーションを実行する際のワークロードを、独立した観察手段によって測定するようにしている。理想的には、測定期間の長さとワークロード周期の長さとを等しくし、且つ、測定期間の開始時刻とワークロード周期の開始時刻とを同期させるようにするのがよい。
【００７８】
ＣＰＵバウンドではない（即ち、ＣＰＵのワークロードを常時１００％近くの値にしてしまうことのない）アプリケーションを実行するときには、そのアプリケーションから要求される演算処理を時間内に完了するのに必要なだけのクロック周波数及び電圧でＣＰＵを動作させるようにすることによって、消費電力量を低減することができる。尚、ＣＰＵのワークロードは、例えば、そのＣＰＵが命令を実行するためにビジー状態にある時間の割合を算出することによって、或いは、所定期間内のクロックサイクルの総数に対する演算処理に使用されたクロックサイクルの個数の比を算出することによって求められる。
【００７９】
ＣＰＵへの供給電力量の制御は、例えばクロック周波数の制御により、及び／または、電圧の制御により行うことができる。その具体例を挙げるならば、例えば、その供給電力量の制御を、ソフトウェア及び／またはハードウェアから制御することができる動的電圧／周波数スケーリングドライバ（Dynamic Voltage and Frequency Scaling Driver：ＤＶＦＳドライバ）を用いて行うようにするのもよい。
【００８０】
周期性を有するアプリケーション（例えば、ビデオ再生用アプリケーションなど）を実行するときには、ＣＰＵの現在ワークロードを観察し、将来ワークロードを予測することによって、そのＣＰＵへの供給電力量の制御を行うことができる。
【００８１】
「Ｌｉｎｕｘ（登録商標）」などのオペレーティングシステム（ＯＳ）では、そのＯＳによってＣＰＵのワークロードの測定が実行されている。「Ｌｉｎｕｘ（登録商標）」の場合には、そのワークロードの測定が、タイマーティック割込みによって行われている。より詳しくは、各タイマーティックごとに、ＣＰＵに割込みがかけられ、そのタイマーティックの間隔は、典型的な事例では、１ミリ秒、４ミリ秒、または１０ミリ秒である。また、その割込みがかけられたときの状態が、ユーザ（User）、システム（System）、ナイス（Nice）、及びアイドル（Idle）の４つのコードに分類される。「ユーザ」に分類されるのは、アプリケーションを実行していた場合である。「システム」に分類されるのは、システムコールを実行していた場合である。「ナイス」に分類されるのは、バッチジョブを実行していた場合である。そして、「アイドル」に分類されるのは、ＣＰＵが有意の命令を実行していなかった場合であり、例えば、ＣＰＵが動作を停止していた場合などである。そして、各タイマーティックごとに、それらのコードに対応した分類カウンタのカウント値に１単位の値が加算される。所定個数のタイマーティックから成る所定長さの期間内のワークロードの測定値を求めるには、「ユーザ」、「ナイス」、及び「システム」の３通りの状態にあったタイマーティックの夫々の個数の合計数を、当該期間内のタイマーティックの合計数で除す演算を行えばよく、それによって、当該期間内のＣＰＵのワークロードの測定値が得られる。タイマーティック周波数は、典型的には１００Ｈｚ〜１０００Ｈｚの範囲内にある。このタイマーティック周波数はＣＰＵの動作周波数と比べれば格段に低く、そのためワークロードの測定に関しては、測定値の時間間隔を短くすることと、測定値の精度を向上させることとが相反する要件となる。例えば、測定期間の長さをタイマーティック１０個分とした場合には、このタイマーティック１０個分の時間間隔で、測定精度が１０％のワークロードの測定値が得られるが、その測定精度を１％にしたければ、測定期間の長さをタイマーティック１００個分ほどの長さにしなければならない。その場合に、測定期間の長さは、１００ミリ秒、２５０ミリ秒、または１０００ミリ秒となるが、これらの長さは、例えばビデオ再生におけるフレームレートと比べてはるかに長い。従って、オペレーティングシステムによる測定によって得られるワークロードの測定値は、電力供給量の制御を微細な粒状度をもって行うという目的には不十分である。
【００８２】
最近の殆どのマイクロプロセッサには、そのプロセッサの特定のサブユニットとアプリケーションとの間のインターアクションに関するパフォーマンス事象を監視することのできる特別のオンチップハードウェアが装備されてり、その代表例がハードウェア事象カウンタである。パフォーマンス事象の監視結果がレジスタに書込まれることによって、そのＣＰＵのコア部分を構成している様々な構成要素のパフォーマンスの解析を行えるようになっている。
【００８３】
この種のハードウェア事象カウンタを利用することによって、プロセッサのワークロードをハードウェアで測定することができる。またそれによって、ソフトウェアで測定する場合と比べて精度が向上し、及び／または、サンプリング分解能が向上する。この種の事象カウンタは、ＯＳのタイマーティックのドメインで動作するのではなく、ＣＰＵのクロック周波数のドメインで動作しており、従ってナノ秒のオーダーで動作している。ワークロード周波数はＣＰＵのクロック周波数より必ず低いため、ハードウェアモニタのサンプリング周波数はワークロード周期を検出するのに十分な高い周波数に維持されることになる。レジスタは、完全に自立的に動作するようにプログラムすることができ、またそうすることが好ましい。なぜならば、そうすることによって、プロセッサのワークロード測定のタイミングの精度を高めることができ、また、ＣＰＵのパフォーマンスに対して悪影響を及ぼすことも殆どなくなるからである。
【００８４】
例えば「Ｉｎｔｅｌ  Ｐｅｎｔｉｕｍ（登録商標）４」プロセッサは４４個のトレースレジスタ（事象レジスタ）を備えており、それらレジスタのうちの１８個を、パフォーマンスに関するリアルタイムのデータを測定してその測定結果を示すためのレジスタとして使用することができる。このようなレジスタを用いて監視することができるものには、例えば、キャッシュのヒット率、ブランチ予測ロジックの効率、それに、プロセッサが非アイドル状態にある時間などがある。プロセッサが非アイドル状態にある時間は、プロセッサのワークロードの直接的な均等物であり、この時間は、オペレーティングシステムが測定するよりも、レジスタで測定する方が、はるかに高い時間分解能をもって測定することができる。ＯＳの時間分解能がミリ秒のオーダーであるのに対して、ハードウェア事象カウンタの時間分解能はナノ秒のオーダーである。ＣＰＵは、追跡（監視）しているデータの値をメインメモリへ自律的に出力することができるとともに、例えばカウンタのオーバーフローなどの所定事象が発生したときに割込みを自律的に発生させることもできる。
【００８５】
図３に示したのは、正確なワークロード位相を把握することの重要性を説明するためのグラフである。
【００８６】
ＣＰＵの将来ワークロードを正確に予測するためには、ＣＰＵの現在ワークロードが分かっていなければならない。ＣＰＵの現在ワークロードを正確に判定するためには、アプリケーションの２つの特性を把握する必要がある。それらのうちの第１の特性は、ワークロードの周期的変化の反復頻度に関する特性であり、即ち、ワークロード周波数である。ただし、このワークロード周波数の代わりに、ワークロードの周期的変化の反復頻度を表すその他の適当な値を利用することもでき、例えば、ワークロード周期の長さを利用することも可能である。例えば、ビデオ再生アプリケーションを実行する際のワークロード周波数は、そのビデオのフレームレートに応じた周波数になる。また、第２の特性は、ＣＰＵのワークロードのワークロード位相に関するものであり、即ち、あるアプリケーションを実行するときに反復して出現する、ワークロード指標値が大きな値を持つ期間の開始時刻である。例えば、ビデオ再生アプリケーションを実行する場合であれば、ＣＰＵのワークロード位相は、典型的な事例としては、ビデオフレームの処理の開始時刻に対応した時刻になる。
【００８７】
以上の２つの特性は、ＣＰＵの現在ワークロードを観察することによって把握することができる。そして、そのためには、ＣＰＵの現在ワークロードを測定することが必要である。
【００８８】
図３のグラフは、周期性を有するアプリケーションを実行する際のワークロードを詳細に示したグラフである。供給電力の制御を行うために、独立した電源マネージャ１０６などを用いて、アプリケーションを実行するときの将来ワークロードを予測しようとする場合に問題となるのは、当該アプリケーションを実行するときのワークロードの、そのワークロード周波数（これは当該アプリケーションの周期性の周波数に等しい）と、ワークロード位相（即ちワークロード周期の開始時刻）とが、アプリケーションを実行するまで分からないことである。
【００８９】
ワークロード周波数が分かっただけではワークロードの正確な測定はできず、ワークロードを正確に測定するためにはワークロード位相を検出することが重要である。図３に示したグラフは、測定期間とワークロード周期とを同期させることの重要性を説明するためのグラフである。
【００９０】
先ず、ワークロード周期の正確な１周期の中でワークロードの測定が行われる場合について説明する。その場合には、ワークロード測定期間が、図中の「Ａ」から「Ｂ」までとなり、即ち、第５番目から第３０番目までの２５個のクロックサイクルに亘って継続する期間となる。このワークロード測定期間中に、ワークロード指標値として測定される（カウントされる）クロックサイクルの個数は１０個であり、このワークロード指標値をパーセンテージで表すならば、１０／２５＊１００％＝４０％となる。
【００９１】
次に、ワークロード測定期間とワークロード周期とが正しく同期していない場合について説明する。例えば、ワークロード測定期間が、図中の「Ｃ」から「Ｄ］まで、即ち、第１３番目から第３８番目までとすると、そのワークロード測定期間は上と同じく２５個のクロックサイクルに亘って継続する期間となる。ところがこの場合には、ワークロード指標値はクロックサイクルの個数にして８個となり、これをパーセンテージで表すならば、８／２５＊１００％＝３２％となる。これは不正確なワークロード指標値であり、正確なワークロード指標値から大きく外れている。
【００９２】
正しく同期していない測定期間に測定して得られたこのワークロード指標値に基づいてＣＰＵへの供給電力量の制御を行ったならば、ＣＰＵへの供給電力量が過少となってしまう。またその結果として、システム１００が機能不全を起こすおそれもある。
【００９３】
ワークロード予測機構２０４は、ワークロード指標値の急上昇を十分に高速で検出できるように構成されており、それによって、みずからが実行する将来ワークロードの予測動作を、アプリケーションを実行したときに実際に発生するワークロードのワークロード周期に同期させることができるように構成されている。
【００９４】
図４に示したのは、電源マネージャ１０６の１つの実施形態のブロック図である。
【００９５】
電源マネージャ１０６は、ワークロード周波数及びワークロード位相を検出するワークロード検出機構２０２と、ワークロード予測機構２０４を備えている。ワークロード検出機構２０２は、ハードウェアモニタ１０４を監視するためにハードウェアモニタ１０４に接続されている。ワークロード指標値を表す信号が、ワークロード転送手段２１０を介して、ハードウェアモニタ１０４からワークロード検出機構２０２へ転送されるようにしてある。ワークロード検出機構２０２は、ワークロードの、ワークロード周波数とワークロード位相とを判定するように構成されている。また、ワークロード検出機構２０２は、将来ワークロードの予測を適切に行うことができない状況にあると判断した場合には、電源マネージャ１０６が実行している供給電力量の制御動作を不能化するように構成されている。
【００９６】
更に、ハードウェアモニタ１０４によって得られるワークロード指標値は、ワークロード予測機構２０４からも、ワークロード転送手段２１０を介して利用できるようにしてある。
【００９７】
ワークロード検出機構２０２は、ワークロード周波数転送手段を介してワークロード予測機構２０４に接続されている。また、ワークロード検出機構２０２は、ワークロード位相転送手段２０８を介してワークロード予測機構２０４に接続されている。ワークロード予測機構２０４は、ワークロード周波数とワークロード位相とに基づいて、電子デバイス１０２の将来ワークロードを予測する予測動作を実行するように構成されている。
【００９８】
ワークロード予測機構２０４は更に、みずからの予測結果に基づいて、電子デバイス１０２が必要とする電力量を判定するように構成されている。ワークロード予測機構２０４は、クロック周波数及び供給電圧レベルを決定し、決定したそれらの値を電源管理装置（Power Management Unit：ＰＭＵ）２００へ送出するようにしてある。ＰＭＵ２００は、ワークロード予測機構２０４から送られてくるそれらの値を示す情報に従って電子デバイス１０２への供給電力量を制御するように構成されている。
【００９９】
電源管理装置（ＰＭＵ）２００は、例えば低損失レギュレータ（ＬＤＯレギュレータ）や、ＤＣ／ＤＣインダクタンス電圧レギュレータ、ないしはその他の適宜の電圧レギュレータによって供給電圧を設定するように構成されている。また、このＰＭＵ２００には更に、例えばＰＬＬや、ＤＤＳなどの分周回路、ないしはその他の適宜のクロック発生手段によってクロックを生成するように構成したクロック生成装置（Clock Generation Unit：ＣＧＵ）を組込んでおくのもよい。
【０１００】
ワークロード予測機構２０４を、ワークロードを発生させるアプリケーションから独立した機構とするためには、そしてそれによって、ワークロード測定期間の長さをワークロード周期の長さに等しくし、且つ、ワークロード測定期間とワークロード周期との位相を揃えるためには、ワークロード周波数及びワークロード位相の検出動作を、予測動作と予測動作との間に差し挟むようにすることが有効である。
【０１０１】
ワークロード周波数及びワークロード位相を検出するには、ハードウェアモニタ１０４から提供されるワークロード指標値のエッジを検出するようにすればよい。そして、そのエッジの検出を可能にするためには、ハードウェアモニタ１０４を含めたワークロードの監視のための諸機構が生成し或いは取扱う値が、微細な粒状度を持ち得るようにする必要があり、即ち、高いサンプリング周波数でサンプリングされた値とする必要がある。そのような微細な粒状度は、例えば、ワークロードを高い分解能で測定することのできるハードウェアパフォーマンスカウンタなどを用いることによって得られる。
【０１０２】
値が微細な粒状度を持つようにすることは、ワークロード周期を高精度で判定するためにも、ワークロード周波数を算出するためにも、また、ワークロード位相を検出するためにも重要である。また、ワークロード位相は、ワークロード測定期間とワークロード周期とを同期させるために重要である。
【０１０３】
ワークロードがハードウェアモニタ１０４によりサンプリングされるサンプリング周波数は、ワークロード周期の周波数より高くなくてはならず、それよりはるかに高い周波数とすることが好ましい。特に、ワークロードのサンプリング周波数は、測定して得られたワークロード指標値における立上りエッジを検出することができるように、十分に高い周波数にしておくべきである。
【０１０４】
ワークロード周期、ワークロード周波数、及びワークロード位相を判定するためのエッジ検出は、様々な適宜のエッジ検出機構を用いて行うことができる。
【０１０５】
また、ワークロード測定期間とワークロード周期とは、同期機構を用いて同期させることが好ましい。
【０１０６】
電源マネージャ１０６は、ソフトウェアで構成することができ、即ち１つのアプリケーションとすることができる。また、電源マネージャ１０６を構成するそのアプリケーションは、電子デバイス１０２上で実行されているその他のアプリケーションと同時並行的に実行させるようにすることもでき、その他のアプリケーションからは独立させて実行させるようにすることもできる。
【０１０７】
図５に示したのは、本発明に係る電子システム１００の更に別の実施の形態のブロック図である。
【０１０８】
電子システム１００は電子デバイス１０２を備えている。電子デバイス１０２はハードウェアモニタ１０４を含んでいる。電子デバイス１０２はアプリケーション格納用メモリ５１２に接続されている。電子デバイス１０２はアプリケーション格納用メモリ５１２に格納されているアプリケーション即ちソフトウェアを実行できるように構成されている。電子システム１００は電源マネージャ１０６を備えている。電源マネージャ１０６は、その全体のうちの一部が電源管理ロジック５０２で構成されており、また別の一部がトレース生成機構５００で構成されている。
【０１０９】
電源管理ロジック５０２は、ワークロード周波数及びワークロード位相を検出する検出機構２０２と、ワークロード予測機構２０４と、電源制御機構５０８とを備えている。
【０１１０】
トレース生成機構５００はハードウェアモニタ１０４に接続されている。トレース生成機構５００は、ハードウェアモニタ１０４から次々と送られてくる値をトレースの形にして検出機構２０２へ転送するように構成されている。トレースとは、例えば、複数の値を１つのアレイの形にまとめたものである。トレース生成機構５００は、例えば、先入れ先出し（ＦＩＦＯ）バッファや、円環バッファなどの、適宜のバッファで構成することができる。そのバッファの内容に、検出機構２０２及び／またはワークロード予測機構２０４が読出せるようにしておけば、それによって、検出機構２０２及び／またはワークロード予測機構２０４へのトレースの転送が可能となる。
【０１１１】
ワークロード検出機構２０２は、トレースの中の検出されたエッジに基づいてワークロード周波数及びワークロード位相を判定している。判定されたワークロード周波数及びワークロード位相は、ワークロード予測機構２０４へ送られている。ワークロード予測機構２０４は、電子デバイス１０２の将来ワークロードを予測している。予測された将来ワークロードの値は、電源制御機構５０８へ送られている。電源制御機構５０８は、クロック周波数及び供給電圧レベルを決定することより、次回のワークロード周期に電子デバイス１０２へ供給する必要のある電力量を判定している。それらクロック周波数及び供給電圧レベルの値は、動的電圧／周波数スケーリングドライバ（Dynamic Voltage and Frequency Scaling Driver：ＤＶＦＳドライバ）５１０へ送られている。ドライバ５１０は電源管理装置（ＰＭＵ）２００のクロック周波数及び供給電圧の設定を行っている。ＰＭＵ２００は電子デバイス１０２へ供給するクロックの周波数と電子デバイス１０２へ供給する電圧とが設定可能に構成されている。
【０１１２】
ドライバ５１０はこの実施の形態において任意の構成要素である。例えば、電源制御機構５０８が直接、電源管理装置（ＰＭＵ）２００のクロック周波数及び供給電圧の設定を行うようにしてもよい。
【０１１３】
この実施の形態は、その少なくとも一部を、ソフトウェアから成る電源管理ロジックで構成するのに特に適したものである。より詳しくは、電源管理ロジック５０２及びその構成要素はソフトウェアで構成するとよい。また、そのソフトウェアはＣＰＵに実行させるとよい。そして、電子デバイス１０２それ自体がＣＰＵであるならば、その電子デバイス１０２に、その他の様々なタスクと共に電源管理ロジックのソフトウェアも併せて実行させるようにしてもよい。或いはまた、電源管理ロジックのソフトウェアは、電子デバイス１０２とは別のＣＰＵに実行させるようにしてもよい。電源管理ロジックのソフトウェアを格納するメモリは、アプリケーション格納用メモリ５１２としてもよく、それとは別のメモリとしてもよい。
【０１１４】
別の構成例として、電源管理ロジック５０２をハードウェアで構成するようにしてもよく、その場合には例えば、ＣＭＯＳ回路などのＩＣで構成してもよく、また、その他の適宜の電子回路で構成してもよい。
【０１１５】
電子システム１００の１つの具体例を挙げるならば、例えば、ＣＰＵとして「Ｐｅｎｔｉｕｍ（登録商標）４」プロセッサを使用しており、そのＣＰＵに、ＯＳとして「Ｌｉｎｕｘ（登録商標）」を走らせているマシンなどが挙げられる。このようなマシンにおいて、トレース生成機構５００は、そのＣＰＵ（電子デバイス１０２）の事象レジスタ及び／またはトレースレジスタ１０４の内容を読出してトレースを生成するものとすればよい。ワークロード周波数及びワークロード位相を検出する検出機構２０２は、図３に示したエッジＡ及びＢのようなワークロード指標値における立上りエッジを検出するものとすればよい。また、トレースレジスタは、そのＣＰＵの占有状態を測定するように設定しておくことが好ましく、そのためには、例えば、そのトレースレジスタが定常的に「グローバル・パワー・イベント（gloval_power_events）」を監視させるようにすればよい。また、その監視を行わせるためには、パフォーマンス監視ツールである「perfmon2」などを使用するとよく、これは「Ｌｉｎｕｘ（登録商標）」に対応したハードウェアベースのパフォーマンス監視インターフェースである。
【０１１６】
電源マネージャ１０６は、動作を開始したならば先ず、検出されたワークロード指標値のエッジにみずからの動作を同期させるように構成されている。検出されたワークロード指標値のエッジに電源マネージャ１０６の動作が同期すると、電源マネージャ１０６は、ある１回の監視動作を完了したならば、そこから１回または複数回のワークロード周期をやり過ごした後に、次回の監視動作を実行するようにすることも可能となる。
【０１１７】
ワークロードの測定によって次々と生成されるワークロード指標値は、エッジの検出を行っている検出機構２０２へ送られる。ハードウェアモニタ２０２と検出機構２０２とが共にハードウェアで構成されている場合には、例えば、その検出機構２０２が、立上がりエッジを検出したときにＣＰＵに割込みをかけるように構成しておくのもよい。それによって、ワークロード予測機構２０４がワークロード周期の開始時刻を高精度で判定できるようになる。またその場合に、そのワークロード予測機構２０４は、ソフトウェアで実行されるものとしてもよい。このＣＰＵへの割込みを利用して、最初のワークロード測定によって判定したワークロード位相に、ワークロード測定期間を同期させることができる。ただし、ワークロード測定期間を同期させる方法としては、これ以外に、ワークロード周期の長さに基づいて同期させる方法もある。また、立上りエッジを検出したときにＣＰＵに割込みをかける動作を適宜の間隔で反復して実行するようにすれば、それによって、ワークロード測定期間とワークロード周期との間にドリフトが発生するのを防止することができる。他方、毎回のワークロード周期においてワークロード位相に対する同期を取るようにしてもよく、この方法は、ワークロード周期に大きなジッタが存在する場合に特に有用である。
【０１１８】
本発明を適用するのに適した電子システム１００は、マイクロプロセッサを備え、そのマイクロプロセッサが、周期性を有するアプリケーションを、ないしは、少なくとも予測が可能なアプリケーションを、少なくとも時おり実行するような任意の電子システムである。
【０１１９】
図６に本発明に係る方法のフローチャートを示した。この方法は以下のステップを含むものである。
【０１２０】
最初のステップ１００２では、監視期間中にハードウェアモニタ１０４が監視動作を実行し、その監視動作の監視結果を監視トレースの形で格納する。次のステップ１００４では、監視トレースの中の少なくとも２つのエッジを検出する。次のステップ１００６では、監視トレースに基づいてワークロード周波数と基準時刻に対するワークロード位相とを判定する。次のステップ１００８では、ワークロード周波数とワークロード位相とに基づいて将来ワークロードを予測する。次のステップ１０１０では、その予測結果に従って電子デバイス１０２への供給電力量の制御が行われる。
【０１２１】
本発明は、ここにその幾つかの実施の形態に即して説明したことから明らかなように、フローチャートを参照して以上に概要を述べた一連のプログラム命令を実行するようにプログラミングしたプロセッサを用いて構成することができ、それら一連のプログラム命令は、任意の種類の適宜の電子格納媒体に格納し得るものである。ただし、当業者には容易に理解されるように、以上に説明したプロセスは、様々な別形態で実施することも可能であり、多種多様な適宜のプログラミング言語で実施することができ、それらも本発明から逸脱するものではない。例えば、以上に説明した様々な動作のうちにはそれらの実行順序を変更可能なものもあり、それら動作に更に別の動作を付加することも可能であり、それら動作のうちのあるものを省略することも可能であり、そのような変更を加えたものも本発明から逸脱するものではない。また、エラートラップを行うようにしてもよく、エンハンスメントないし変更を行うようにしてもよく、そのようにしたものも本発明から逸脱するものではない。そのような変更形態は、以上に説明した実施の形態の均等形態であると考えられる。
【０１２２】
本発明は特定用途向けハードウェア及び／または専用プロセッサを用いて構成することもできる。また一方で、汎用のコンピュータ、マイクロプロセッサで構成したコンピュータ、デジタル信号処理装置、マイクロコントローラ、専用プロセッサ、カスタム回路、ＡＳＩＣＳ、及び／または、専用ハードワイヤドロジックを用いて、本発明の別形態である均等形態を構成することも可能である。
【０１２３】
当業者には理解されるように、上で説明した実施の形態を構成するために用いられているプログラムステップ及びそれに付随するデータは、ディスク格納装置に格納できるばかりでなく、その他の様々な格納装置ないし格納媒体に格納し得るものであり、それらの具体例を挙げるならば、例えば、リードオンリーメモリ（ＲＯＭ）デバイス、ランダムアクセスメモリ（ＲＡＭ）デバイス、光格納媒体、磁気格納媒体、光磁気格納媒体、フラッシュメモリ、及び／または、その他の均等形態と見なされる格納技術を用いることができ、それらを用いたものも本発明から逸脱するものではない。そのような別形態の格納デバイスは、均等形態のデバイスであると考えられる。
【０１２４】
以上に本発明をその具体的な実施の形態に即して説明したが、当業者であれば、以上の説明を参照することによって、数多くの別形態、改変形態、順序置換形態、及び変形形態にも想到することは明らかである。従って、本発明はそのような別形態、改変形態、変形形態、等々をすべて包含するものであり、それら形態は特許請求の範囲に該当するものである。
【符号の説明】
【０１２５】
１００    電子システム
１０２    電子デバイス
１０４    ハードウェアモニタ
１０６    電源マネージャ
２００    電源管理装置（ＰＭＵ）
２０２    ワークロード周波数及びワークロード位相を検出するワークロード検出機構
２０４    ワークロード予測機構
２０６    ワークロード周波数転送手段
２０８    ワークロード位相転送手段
２１０    ワークロード転送手段
５００    トレース生成機構
５０２    電源管理ロジック
５０８    電源制御機構
５１０    動的に電圧及び周波数のスケーリングを行うドライバ（ＤＶＦＳドライバ）
５１２    アプリケーション格納用メモリ
１００２  監視期間中にハードウェアモニタ１０４を監視し、監視トレースに格納するステップ
１００４  監視トレースの中の少なくとも２つのエッジを検出するステップ
１００６  監視トレースに基づいてワークロード周波数と基準時刻に対するワークロード位相とを判定するステップ
１００８  ワークロード周波数とワークロード位相とに基づいて将来ワークロードを予測するステップ
１０１０  予測結果に従って電子デバイスへの供給電力量を制御するステップ
【図１】
0005547718.tif 000002
【図２】
0005547718.tif 000003
【図３】
0005547718.tif 000004
【図４】
0005547718.tif 000005
【図５】
0005547718.tif 000006
【図６】
0005547718.tif 000007