(57)【要約】データ依存アプリケーション実行用のダイナミックアダプティブ電力管理付きマルチプロセッサシステムオンチップ１０２は、タスクのランタイムパフォーマンス要求を収集するために戦略的に配置されたパフォーマンスカウンタを具える。パワーマネージャ１３０が、監視している種々のシステムリソースに、ＤＶＳ１３２，ＤＦＳ１３４，タイムアウト１３６及び他の制御を与える。タスクがランタイム中に実行するとき、タスクとスケジュールされたリソースとの間の適合品質が解析される。このとき、より正確な電力制御及びスケジュールが使用可能にされ、パフォーマンス要求テーブルに格納される。それゆえ、この電力管理はアダプティブでダイナミックである。スタティック解析フェーズ中に、それらのパフォーマンス要求を予め特徴化できるアプリケーション及びタスクをプロファイルし、ランタイム中の補正のための初期出発点としてプリロードする。
2009521056.tif 000002
【特許請求の範囲】
【請求項１】
マルチプロセッサシステムのダイナミックアダプティブ電力管理方法であって、
アプリケーションプログラム内のタスクを、それらのパフォーマンス要求及び電力管理制御付きマルチプロセッサシステムで使用可能なリソース電力レベル、更に種々のコアの種々の動作電圧及び種々のコアの現在のラン電圧レベルに従って、一覧表にするリソース要求テーブルを生成するステップと、
スタティックフェーズ中に、リソース要求を前記テーブルにアップロードするステップと、
ダイナミックフェーズ中に、複数の戦略的に配置されたパフォーマンスカウンタから情報を収集するステップと、
ダイナミックパフォーマンス要求を抽出するステップと、
前記テーブル内の対応するエントリを更新するステップと、
それぞれのタスクに対してスケジュールされたシステムリソースに対応する電力レベルを設定すべく前記テーブルを調べ、パワーマネージャを使用するステップと、
を具えることを特徴とする電力管理方法。
【請求項２】
前記テーブルを調べパワーマネージャを使用するステップは、所要の電力レベルで動作する前記コアの一つを選択する又は前記システムリソースの一つに別々に独立に供給されるＤＶＳ，ＤＦＳ及びタイムアウトの少なくとも一つを用いることを特徴とする請求項１記載の方法。
【請求項３】
前記複数の戦略的に配置されたパフォーマンスカウンタから情報を収集するステップは、前記パフォーマンスカウンタが各プロセッサコア、各ペリフェラルコア及び内部システムバスとそれぞれ関連して、それぞれのパフォーマンスデータを出力することを特徴とする請求項１記載の方法。
【請求項４】
前記リソース要求を前記テーブルにアップロードするステップは、前記パフォーマンスカウンタが割り込みを発生し、既知のアプリケーション及びユースに対してプリロードされ、リソース要求を予備推定するために各々のスラック時間を計算することを特徴とする請求項１記載の方法。
【請求項５】
データ依存アプリケーション実行用のダイナミックアダプティブ電力管理付きマルチプロセッサシステムオンチップ（ＳｏＣ）であって、
システムオンチップに実装されたマルチプロセッサシステムの各プロセッサ、各周辺機器及び相互接続用内部システムバスにそれぞれ配置されたパフォーマンスカウンタと、
アプリケーション内のタスクによりスケジュールされたリソースに所要のパフォーマンスレベルをマッピングするリソース要求テーブルと、
適切な電力管理設定のために前記リソース要求テーブルをランタイム中に調べ、ＤＶＳ、ＤＦＳ及びタイムアウトのうちの少なくとも一つを前記パフォーマンスカウンタの各々と関連するそれぞれのシステムリソースに対して制御するパワーマネージャと、
前記リソース要求テーブルを既知のアプリケーション及びユースのリストに対するパフォーマンス要求でプレロードするスタティックプロセスと、
前記リソース要求テーブル内のエントリをランタイム中に前記複数のパフォーマンスカウンタから収集されたデータから抽出されたパフォーマンス要求で更新するダイナミックプロセスとを具え、
前記パワーマネージャが、電力をシステムレベルで最適化するのに必要な制御及びランタイム前に予測できないアプリケーションの変化する状態にダイナミックに適応する制御を行うことを特徴とするマルチプロセッサシステムオンチップ。
【請求項６】
ランタイム中に前記パフォーマンスカウンタからパフォーマンスデータを収集し、そのデータをパフォーマンス予測モデルに与えるランタイムプロファイラを更に具えることを特徴とする請求項５記載のマルチプロセッサシステムオンチップ。
【請求項７】
パフォーマンス予測モデルが前記ランタイムプロファイラからのデータを用いて前記タスクのパフォーマンス要求を予測することを特徴とする請求項６記載のマルチプロセッサシステムオンチップ。
【請求項８】
パワーマネージャがＤＶＳ，ＤＦＳ及びタイムアウトの少なくとも一つを用いて個々のシステムリソースを制御することを特徴とする請求項５記載のマルチプロセッサシステムオンチップ。
【請求項９】
パフォーマンスカウンタを用い、適切な電力要求を一覧表にする、アプリケーションタスクのダイナミックパフォーマンスを予測する予測モデルと、このような一覧表にされた情報をランタイムで行われるオンライン電力管理のためにダイナミックに使用して、異なる入力データ及び新しいアプリケーションに適合するとともに各タスクのパフォーマンス要求を満足する電力管理を行うパワーマネージャとの組み合わせ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単一もしくは複数のプロセッサを含むシステムオンチップ（ＳＯＣ）実装装置のダイナミックアダプティブパワーマネジメントに関し、特に高度にデータ依存であるマルチメディアアプリケーションのニーズの正確な判断に役立つランタイムカウンタを用いて電力消費をシステムレベルで最適化する技術に関する。
【背景技術】
【０００２】
多くの最新のデバイスは熱及び電池電力に厳しい制約があるため、電力節約技術が必要とされている。プロセッサクロック周波数及びその動作電圧はその電力消費及び発熱量の大部分を決定する。電池駆動モバイル／携帯デバイスに使用されるマイクロプロセッサは特に電力消費に敏感であり、それでもなお必要なパフォーマンスが得られる最低の供給電圧を使用する試みがなされている。
【０００３】
ポータブルプラットフォーム上のますます複雑になるマルチメディアアプリケーションはますます大きな計算能力及び動作電圧を必要とする。電力要求を最小にするために現在使われている特別のハードウェア回路はまだ要求を満たすには十分でない。他方、種々のＳｏＣコンポーネントの最適電力レベルは、アプリケーション、ＳｏＣ又はスケジューリング及びマッピングアルゴリズムを単に検査しても予測できない。従って、ソフトウェアアプリケーションの要求及びシステムハードウェアアーキテクチャをリアルタイムにダイナミックに追跡する積極的な電力管理方法が必要とされている。
【０００４】
特にマルチメディアアプリケーションにおいてパフォーマンス推定を正確に行うことが難しいことは、マルチメディアアプリケーションはデータ依存であることにある。新しいアプリケーションは、プレインストールされプレキャラクタライズされたプログラムと同様に有効に電力管理される必要がある。いくつかのデバイスは、絶えず新しいアプリケーションを導入するダウンロード機能を有している。統計的に決定される電力管理の一般化は新しいアプリケーションに適用できない。これは、新しいアプリケーションは挙動が異なり、多数の異なるマッピング及びスケジューリングの影響をすべて効率よく結びつけることはできないためである。そして、任意のアプリケーションにおいて、マッピング及び／又はスケジューリングはダイナミックとし得る。
【０００５】
従来のステートベースのアプリケーション挙動予測ストラテジはあまり正確ではない。マルチメディアアプリケーションのパフォーマンス挙動はデータ依存である。電力レベルの決定のためにアプリケーションノブを用いるパスベースストラテジはアプリケーションのデータ依存挙動に追従できない。これらのストラテジも電力最適化に対して完全なシステムビューをもたらさない。必要とされるのは、アプリケーションパフォーマンス要求のランタイム抽出である。これはハードウェアパフォーマンスカウンタを用いて達成できる。これらはアプリケーションの正確なパフォーマンスを測定しアプリケーションの実電力要求を測定するのに役立つ。
【０００６】
従来のパフォーマンス監視は、実行プログラムがその実行時に駆動できるハードウェアカウンタ又はレジスタを用いる。累積カウントはプログラムのアクティビティを示し、単位時間当たりのカウントの増大はプログラムがその実行中にハードウェア／リソースを利用することを示す。プロセッサの実行レートが変化できる場合には、プロセッサが早く動作しすぎで、電力を浪費する場合、又は、プロセッサが遅く動作しすぎで、オーバランである場合を知ることが重要である。
【０００７】
ハードウェアパフォーマンスカウンタは、プロセッサ、メモリ及びネットワーク等のシステムの物理的なコンポーネントの利用を監視できる。アプリケーションプログラムと一緒に使用される場合、パフォーマンスカウンタはこのアプリケーションに関するパフォーマンス関連データを収集できる。公表されたカウンタ情報を取得し、これを許容パフォーマンス基準と比較することができる。ハードウェアパフォーマンスカウンタは多くの最新のプロセッサ及びコアの組み込み部分として与えられている。
【０００８】
すべての動作電圧に対して、スタティックＣＭＯＳベースのプロセッサは対応する最大動作周波数を有する。周波数を低下させると、電力消費が比例して減少する。しかし、電圧を低下させると、ΔＰ＝ΔＥ２／Ｚであるため、電力消費は二乗関数で減少する。周波数と動作電圧の両方を低下させると、消費電力は三乗関数で減少する。
【０００９】
ダイナミック周波数スケーリング（ＤＦＳ）及びダイナミック電圧スケーリング（ＤＶＳ）は、プログラマブルクロック発生器及びプログラマブル可変電圧ＤＣ／ＤＣコンバータで実現できる従来技術である。
【００１０】
多くの従来の市販プロセッサ、例えばトランスメタ・クルーソー(登録商標)、インテルXScale(登録商標)及びフィリップス・トライメディアTM3260(登録商標)プロセッサは電力を節約するためにＤＶＳを使用している。フィリップス NEXPERIA PNX1500(登録商標)は、周波数及びコア電圧を変更する機能を付与することによってデバイスを節電可能にするＶ２Ｆダイナミック電力管理を使用している。PNX1500が外部プログラマブルコア電圧レギュレータで構成されている場合には、そのソフトウェアプログラマブルクロックによりＣＰＵを低い速度でランさせことができ、低いサイクル消費タスク中の電力消費を下げることができる。例えば、ＭＰ３オーディオストリームのデコーディングは３０ＭＨｚ以下のＣＰＵサイクルを必要とする。低いサイクル要求をサービスしている間はクロック速度及び外部電圧を調整することによって電力を節約することができる。
【００１１】
デバイス内のＤＦＳ及びＤＶＳをダイナミックに利用するインテリジェンス及びシステムレベル電力管理技術の開発が要求されている。ＡＲＭインテリジェントエネルギーマネジメント（ＩＥＭ）は同じ目的であるが、プロセッサコアにのみ限定される。このアイディアは、Flautner他の米国特許出願公開第２００５／００９７２２８号明細書（公開日：２００５年５月５日）に記載されている。しかし、このアプローチは、スタティック解析フェーズがないために良好な出発点を持たない。多くのマルチメディアアプリケーションは不安点な初期フェーズを有し、この理由のために、ＩＭＥアプローチは適応化に長い時間を要する。
【００１２】
監視パフォーマンスデータが電力管理のためにダイナミック電圧及び周波数スケーリング制御に使用されている。Murthi Nanjaは米国特許出願公開第２００５／０１３２２３８号明細書（公開日：２００５年６月１６日）に「Performance monitoring based dynamic voltage and frequency scaling」を開示している。従来のオペレーティングシステムに使用されているダイナミック技術は、未来の作業負荷(仕事量)を予測するためにインターバルベースのスケジューラを使用するのが代表的である。このような方法は３０−１００ミリ秒の均等インターバルを用いて前インターバルのプロセッサ使用を検査する。次に、収集されたデータを用いて次のインターバルのための電圧レベルを設定する。インターバルベースのスケジューリングアルゴリズムは実現が簡単且つ容易であるが、未来は過去の繰り返しであると仮定するものである。従って、このアルゴリズムは、データ依存イベントの場合のようにアプリケーションの作業負荷が変化するとき、未来の作業負荷を正確に予測することはできない。インターバルベーススケジューラは未来の作業負荷に無関係の予測を行う。未来の作業負荷を正確に予測する利用率を得ることができるメカニズムはない。従って、インターバルベーススケジューラは、プロセッサの電圧及び周波数をランタイムに実行アプリケーションの実際の利用パターンに基づいてスケーリングすることはできない。
【発明の開示】
【００１３】
従って、電力管理に求められるソリューションはダイナミックであること、アダプティブであること及び正確であることである。ＳｏＣ上のマルチメディアアプリケーションのダイナミックパフォーマンス要求に基づいて最適電力要求を決定するためにダイナミックでアダプティブなアプローチが必要とされ、ダイナミックに予測されたパフォーマンス要求を用いるアダプティブパワーマネージャを集積する必要がある。
【００１４】
代表的な実施形態では、データ依存アプリケーションの実行のためにダイナミックアダプティブ電力管理を具えるマルチプロセッサシステムオンチップは、タスクの実際のランタイムパフォーマンスを収集するために戦略的に配置されたパフォーマンスカウンタを具える。パワーマネージャは監視中の種々のシステムリソースに対してＤＶＳ、ＤＦＳ、タイムアウト及び他の制御の一つを使用する。タスクがランタイム中実行すると、スケジュールされたタスクとリソースとの整合品質が解析される。このとき、もっと正確なパフォーマンス要求及び対応する電力レベル、よって制御及びスケジュール情報が得られ、パフォーマンス要求テーブルに格納される。従って、電力管理がアダプティブでダイナミックになる。スタティック解析フェーズ中に、それらのパフォーマンス要求に関して予め特徴化することができるアプリケーション及びタスクをプロファイリングし、ランタイム中の補正のための初期出発点として予めロードする。
【００１５】
本発明の利点は、データ依存アプリケーションを実行する実際上如何なるＳｏＣプラットフォームについてもシステムレベルのパフォーマンス要求を収集できるとともに電力レベルをシステムレベルで最適に管理することができる十分に一般的な方法が提供される点にある。
【００１６】
本発明の上記の要旨は、本発明の開示の各実施例又はすべての特徴を代表することを意図していない。他の特徴及び実施例が図に示され、以下に詳細に説明される。
【００１７】
本発明は、添付図面と関連する本発明の種々の実施例の下記の詳細な説明を参酌すれば完全に理解される。
【００１８】
本発明は種々の変更例や代替例に適応できるが、その詳細は一例が図面に示され、詳細に説明されている。しかし、本発明は開示された特定の実施例に限定されるものではない。逆に、本発明は添付の特許請求の範囲で特定される本発明の範囲に入るすべての変更事項、等価事項及び代替事項をカバーするものである。
【発明を実施するための最良の形態】
【００１９】
図１は本発明のアダプティブダイナミック電力管理システムの実施例を示し、システム全体が１００で示されている。システム１００は、第１プロセッサコア（ＣＰＵ１）１０４、第２プロセッサコア（ＣＰＵ２）１０６、周辺機器コア１０８、内部システムバス１１０及びメモリ１１２で実現されたマルチプロセッサシステムを具えるシステムオンチップ（ＳｏＣ）を具える。システムレベルにおけるＳｏＣ１０２のランタイムパフォーマンスは、戦略的に配置されたパフォーマンスカウンタ１１４，１１６，１１８及び１２０から統計データを収集することにより評価される。これらのパフォーマンスカウンタは、プレロードされた数がゼロまでデクリメントされた後に割り込みを発生するように実現できる。各デクリメントは実行中のタスクにより制御され、タスクが割り込み発生のためにどのくらい速くカウントをデクリメントするかがランタイム中の実ハードウェアパフォーマンスの尺度になる。
【００２０】
パフォーマンスカウンタを実現する詳細はいくつかの刊行物に見ることができるので、その構成の詳細をここに含める必要はないであろう。Gilberto Contreras他は、２００５年８月８−１０日にカリフォルニア州サンディエゴで開かれたＯＳＬＰＥＤ‘０５において頒布された論文集に「Power prediction for Intel Xscale Processors Using performance monitoring Unit Events」を記載している。パフォーマンスカウンタ及びそれらを含む市販の種々のプロセッサの使用については、Flautner他の米国特許出願公開第２００５／００９９７２２８号明細書（公開日:２００５年５月５日）、Murthi Nanjaの米国特許出願公開第２００５／０１３２２３８号明細書（公開日:２００５年６月１６）、Morrie Altmejd他の米国特許第６，８９５，５２０号明細書（発行日:２００５年５月１７日）、David Albonesiの米国特許第６，２０５，５３７号明細書（発行日:２００１年３月２０日）に記載されている。これらの資料は参考のためにここに含まれているとする。本発明の実施例のユニークな特徴は、マルチプロセッサシステム内に戦略的に配置されたいくつかのパフォーマンスカウンタを、電力をシステムレベルでアダプティブにダイナミックに管理するために、ランタイム中使用することにある。ここに引用した刊行物にはここに開示するユニークな組み合わせに使用される構成要素が記載されているにすぎない。
【００２１】
図１につき再び説明すると、オペレーティングシステム（ＯＳ）１２２は、メモリ１１２から各自固有のパフォーマンス要求を有する一連のタスクを具えるアプリケーションソフトウェアを実行しホストすることができる。これらの要求はストリーミングマルチメディアアプリケーションにおいて見られるように高度にデータ依存性である。
【００２２】
いくつかのアプリケーション及びそれらのタスクは予めプロファイルされ、それらのパフォーマンス要求に関するアプリオリデータ１２４をリソースマッピングテーブル１２６へ通信することができる。ここで、個々のタスクパフォーマンス要求が、これらの要求にどの電力レベル及びどのプロセッサコア１０４及び１０６が適合するかに従って一覧表に集計される。このようなスケジュール１２８は電力制御ＤＶＳ１３２、ＤＦＳ１３４、タイムアウト１３６等のランタイムダイナミック適応化のためにパワーマネージャ１３０へリアルタイムに転送される。これらの電力制御は、ＣＰＵ１（１０４）、ＣＰＵ２（１０６）、周辺機器コア１０８及びバス１０８を、総合すると全システムレベルの電力効率が最大になるように個々に独立に制御できる。このような電力制御は必ずしもマルチプロセッサシステムのすべての電力制御可能セクションに対して最も有効であるわけではないが、全ＳｏＣ１０２には最も有効である。
【００２３】
アプリケーション及びそのタスクのランタイム実行中に、パフォーマンスカウンタ１１４，１１６，１１８及び１２０は種々のタスクの実行統計量に関する情報をランタイムプロファイラ１４０に供給する。パフォーマンス予測モデル１４４は、リソースマッピングテーブル１２６に必要とされるパフォーマンスレベルを更新するために、実行フェーズを識別し、スラック時間測定値１４２を計算する。このプロセスは新しいパフォーマンス要求１４６のリストを生成する。これらの要求はテーブルに投入され、使用可能な電圧−周波数レベルと適合される。
【００２４】
図１につき説明したことは、好ましくはＳｏＣ１０２内にすべて配置されている。図１には内臓された部分のいくつかが、それらを明示するために分解して示されている。
【００２５】
図２は、パフォーマンスカウンタを用いてマルチプロセッサシステムのシステムオンチップ実装におけるアダプティブダイナミック電力管理を提供する本発明の電力管理方法の実施例を示す。この方法は全体が２００で示されている。方法２００はソフトウェアアプリケーション２０２で動作し、このソフトウェアアプリケーションは変化するパフォーマンス要求を有するタスクを具えるストリーミングマルチメディアアプリケーションとすることができる。ソフトウェアアプリケーション２０２の性質は、それらのタスクを前もって知り前もって特徴化することができないので、それらの正確なパフォーマンス要求は、それらがスケジュールされ、指定されたプロセッサコアで実際に実行されるときにのみ明らかにできるだけであることにある。時々パフォーマンス要求は処理されるデータに大きく依存するので、予測は困難である。
【００２６】
アプリケーション及び／又はユースケースが予めわかっている場合には、タスク２０４のリストがいくつかのプログラムカウンタ（ＰＣ）のためのプリロードと一緒にプロセッサ２０６に送られる。これはスタティック解析フェーズを開始する。プロセッサ２０８は各タスクのスラック時間を計算する。このスラック時間は、そのジョブを維持したまま電力を節約するためにＤＶＳ，ＤＦＳでどのぐらいプロセッサコアをスローダウンできるかを示す。プロセス２１０は、アプリケーション／タスク要求を使用可能なプロセッサコアに選択可能な最適電力レベルでマッピングする。初期テーブル値２１２はリソース要求テーブル２１４にプリロードされ、このテーブルは各コアがランできる種々の電圧レベル及び種々のコアの現在のラン電圧レベルも有する。
【００２７】
このようなリソース要求テーブル２１４は、アプリケーションリスト内のタスクの要求をマルチプロセッサシステムのプロセッサコアにより達成できる最適電力レベルにマッピングする。スタティック解析フェーズはテーブル２１４を初期設定する。スケジューラは、特定のタスクをどのプロセッサコアに送るかを正確に決定する。リソース要求テーブル２１４はランタイム中にもっと正確なタスクパフォーマンス要求でダイナミックに更新される。タスクのリスト２１６がスケジューラ２１８に、ソフトウェアアプリケーション２０２がそれらをプロセッサコアリソースのいずれかで実行することを要求する順序で送られる。このようなスケジューラ２１８は、リソース要求テーブル２１４を調べてどの電力レベルが当該タスクに適切であるか見つけ出す。スケジューラは、あるプロセッサコアが適切な電力レベルですでに動作しているようにスケジュールすること、或いは、プロセス２２０を呼び出して電圧／周波数レベルを変化させるためにアダプティブパワーマネージャ制御をスケジュールされたプロセッサコアにダイナミックに発行するようにスケジュールすることができる。次のタスク２２２がロードされ、プロセス２２４がスケジュールされたタスクを選択されたプロセッサコアで実行する。
【００２８】
実行中、プロセス２２８がＳｏＣ内のいくつかの点に戦略的に配置されたパフォーマンスカウンタから統計量を収集する。これらのパフォーマンスカウンタはカウントダウン値がプレロードされ、ゼロカウントで割り込みを発生する。このイベントはシステム時間と比較され、タスクの継続中のパフォーマンスを計測し、スケジューラ２１８が正確な電力管理割当てを行ったか評価する。プロセス２３０はランタイム中に実際に発生するダイナミックパフォーマンスを抽出し、更新データ２３２をテーブル２１４にロードする。プロセス２１８及び２２０はパワーマネージャ制御を必要に応じ今回又はタスクを実行する次回に補正することができる。
【００２９】
パフォーマンスカウンタはシステム又はアプリケーションのあるパフォーマンス特徴に関する単一のメトリックを提供する。例えば、プロセス内のアクティビスレッドの数又は命令実行中にプロセスのスレッドにより使用される経過時間の割合、又はタスクのコンテキストスイッチの数、又はタスク活性化の数などである。パフォーマンスカウンタはパフォーマンスカウンタカテゴリに編成しグループ化できる。例えば、プロセッサカテゴリは、プロセッサ時間、アイドル時間、割り込み時間等のようなプロセッサの動作に関連するすべてのカウンタを含む。ウィンドウズ(登録商標)ＯＳは、プログラムで読み出せる又はパフォーマンスモニタを用いて表示できる多くの所定のパフォーマンスカウンタを提供している。これらのカウンタはオペレーティングシステムリソースの使用量を監視するのに使用されている。従来の実施は、一般にシステムの一部分、例えばプロセッサに設けられるのみである。本発明によるシステムレベルの電力管理はアプリケーションのパフォーマンス要求に基づいてシステムレベルの総合電力消費を最適化するものである。
【００３０】
本発明ではパフォーマンス解析とダイナミック電力管理が効率的な電力管理スキームを得るために組み合わされている。パフォーマンスカウンタは作業負荷依存アプリケーションを処理し、ＳｏＣ上の新しいアプリケーションランへの適応化に役立つ。最適電力ポリシーモデルの初期トレーニング後に、電力測定値がシステム全体について収集され、情報が電力ポリシーモデルに帰還される。このようなハードウェアパフォーマンスカウンタの使用は、ＡＲＭ  ＩＭＥで代表されるＯＳ収集実行履歴に比較して一層正確な予測をもたらす。本発明の方法は任意のプラットフォームに対してシステムレベルパフォーマンス要求を収集するのに十分に一般的である。
【００３１】
ストリーミングアプリケーションを特徴化する実験によって、マルチプロセッサプラットフォーム上のマルチメディアアプリケーションの実行フェーズを識別すること及びダイナミックスケジューリングを使用できることが確かめられた。実行時間に対するパフォーマンスの数、活性化時間及びコンテキストスイッチの数が、システム上でのアプリケーションの実行中の初期フェーズ、安定フェーズ及び最終フェーズ中に収集される。３つのフェーズが特徴化されたら、システムレベルの電力消費を最小にするために電力管理技術が効率的に使用される。
【００３２】
本発明の電力最適化方法は、スタティック解析部分とダイナミック解析部分を両方を含む。電力最適化のためのダイナミック電圧スケーリングはスラック時間、即ちタスクの現実行時間と対応するタスクデッドラインとの差の知識を必要とする。タスクデッドラインはスタティック解析中に決定される。現実行時間は正確に予測できない。そのため、本発明では、現実行時間は、ハードウェアパフォーマンスカウンタからデータを収集するダイナミック予測モデルに基づくものとする。この予測モデルによりアプリケーションの実際のタスク実行フェーズを決定する。
【００３３】
スタティック解析は高レベル解析モデルを、リアルタイム要件に関するパラメータ、例えばタスクデッドラインとともに使用する。ランタイム前に解析できるシステムの挙動及びパフォーマンスパラメータが設計時間で行われる。
【００３４】
ランタイム中に、実行サイクル、コンテキストスイッチ変化、活性化時間がいくつかのパフォーマンスカウンタでモニタされる。実行サイクルカウントはアプリケーションの実行要求の尺度である。活性化時間及びコンテキストスイッチデータのパフォーマンスカウントがこれらのアクティビティと関連するオーバヘッドを定量化する。タスクが短時間に多すぎるコンテキストスイッチを発生する場合には、スイッチ自体がプロセッサを少量の時間アイドルにするため、電圧スケーリングを使用する試みは有利でない。電源電圧の変化は通常その後の安定のために１００−２００ミリ秒を必要とする。
【００３５】
予測モデル１４４はパフォーマンスカウンタを用いてアプリケーションタスクのダイナミックパフォーマンスを推定し、適切な電力要求をそれらに割り当てる。パワーマネージャ１３０はこの情報をランタイム電力管理のためにダイナミックに使用する。この電力管理は、パフォーマンス要求を満たしながら、異なる入力データ及び新しいアプリケーションに自由に適合する。
【００３６】
スタティック解析は、既知のアプリケーション及びユースケースに対してパフォーマンスカウンタを収集する。スラック時間、即ちアプリケーションのパフォーマンス要求とプロセッサ上でのアプリケーションの実際の計算時間との差を見つけ出すためにそれらの数のオフライン解析が使用される。リソース要求及び電圧レベルマッピングテーブルが、アプリケーション要求を最適電力レベルにマッピングする。パワーマネージャが、このテーブルを用いて、最適なシステムレベル電力消費のために、アプリケーションの種々のフェーズにおいて、ＤＶＳ、ＤＦＳ、タイムアウト等の適切な電力ポリシーをダイナミックに適用する。スタティック解析は電力管理の出発点であり、既知のデータセットのためにベンチマークアプリケーションをプロファイルする。
【００３７】
新しいユースケース及び全部の新しいアプリケーションも、ダイナミック解析をＳｏＣ１０２に組み込むことによって管理することができる。ダイナミック解析フェーズ中に、アプリケーションの実行フェーズ又はパフォーマンス要求から抽出されたダイナミック挙動が統計的パフォーマンス予測モデルを用いて収集される。ダイナミック予測は、ハードウェアパフォーマンスカウンタからの数を収集し解析を行うためにランタイムプロファイリング機能を必要とする。予測モデルの出力はランタイム時の要求対最適電力をマッピングするテーブルの更新に使用される。パワーマネージャはこのテーブルを用いて電力管理ポリシーを効率的にオンザフライで利用する。
【００３８】
電力管理はシステムの種々の点に集積できる。これはハードウェアレベルで、ファームウェアレベルで、ユーザレベルで、又はアプリケーションレベルで組み込むことができる。ハードウェアレベルの電力管理はアプリケーションのダイナミック挙動要求を監視又は使用することはできない。システムのグローバル状態はハードウェアレベルでは未知である。ユーザはコンポーネント特性を知らないので、正確な電力管理に必要とされる頻繁な決定を行うことはできない。電力管理のためのアプリケーションレベル制御の使用はアプリケーションのダイナミック挙動を知らずに行わなければならない。このような制御はコンパイル時間又は設計時間で挿入する必要がある。ランタイムにおいて、アプリケーション制御には遅すぎるとき、アプリケーションの挙動はデータ依存である。同一のプラットフォーム上でランする複数のアプリケーションに対して、各アプリケーション内の各自の電力制御はシステムレベルで最適化できない。各構成要素のアプリケーションの制御フローのみが電力を最適化できるだけである。
【００３９】
電力管理における重要な好機は、アプリケーション固有のパフォーマンス要求にある。従って、アプリケーション挙動の取得とパフォーマンスの予測が必要とされる。本発明は、システムレベル電力を最適化するためにパフォーマンス要求を収集しアプリケーションのパフォーマンスを予測する問題に取り組んでいる。システムのダイナミックアダプティブ電力管理はＯＳを活用してハードウェア及びアプリケーションの双方を考察する。
【００４０】
本発明はいくつかの特定の実施例について説明したが、本発明の精神及び添付の特許請求の範囲の記載により特定される本発明の範囲から逸脱することなく、多くの変更を加えることができることは当業者が認識するところである。
【図面の簡単な説明】
【００４１】
【図１】マルチプロセッサシステムのシステムオンチップ実装に分布されたパフォーマンスカウンタを用いる、本発明のアダプティブダイナミック電力管理システムの実施例の機能ブロック図である。
【図２】パフォーマンスカウンタを用いてマルチプロセッサシステムのシステムオンチップ実装のアダプティブダイナミック電力管理を行う本発明の方法の実施例のフローチャート図である。
【図１】
2009521056.tif 000003
【図２】
2009521056.tif 000004
【国際調査報告】
2009521056.tif 000005
2009521056.tif 000006
2009521056.tif 000007