JP2004164642A - データ処理システムにおけるピーク・レベル選択 - Google Patents

データ処理システムにおけるピーク・レベル選択 Download PDF

Info

Publication number
JP2004164642A
JP2004164642A JP2003380064A JP2003380064A JP2004164642A JP 2004164642 A JP2004164642 A JP 2004164642A JP 2003380064 A JP2003380064 A JP 2003380064A JP 2003380064 A JP2003380064 A JP 2003380064A JP 2004164642 A JP2004164642 A JP 2004164642A
Authority
JP
Japan
Prior art keywords
execution request
execution
calculation algorithm
request calculation
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003380064A
Other languages
English (en)
Inventor
Krisztian Flautner
フロートナー クリスチャン
Trevor Nigel Mudge
ナイジェル マッジ トレヴァー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
University of Michigan
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
University of Michigan
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB0226395A external-priority patent/GB0226395D0/en
Priority claimed from GB0228547A external-priority patent/GB0228547D0/en
Priority claimed from GB0305436A external-priority patent/GB2395309A/en
Application filed by ARM Ltd, Advanced Risc Machines Ltd, University of Michigan filed Critical ARM Ltd
Publication of JP2004164642A publication Critical patent/JP2004164642A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】複数の異なる実行レベルで動作可能なデータ処理装置において優先位置による階層構造を介して実行レベルを選択する方法、装置及びこれらを制御するコンピュータ・プログラムを提供する。
【解決手段】階層構造に配列された複数の実行要求計算アルゴリズムにより複数の実行要求を計算し、これらの異なる実行要求を組み合わせてグローバル実行要求を形成し、次いでグローバル実行要求に従ってピーク・レベルを選択することにより、実行レベル選択を実行する。実行要求計算アルゴリズムを階層構造に配置し、階層構造において最低優先位置から最高の優先位置へ進むシーケンスにおいて、これらの実行要求を評価する。
【選択図】図5

Description

本発明は、データ処理システムに関する。特に、本発明は、複数の異なる実行レベルで動作可能なデータ処理システムにより使用されるべき実行レベルの選択に関する。
複数の異なる実行レベルで動作可能なデータ処理システムが提供されていることは、知られている。最大処理実行を必要としないときは、通常、比較的に低い実行及び低い電力消費実行レベルが使用され、一方、処理集中動作を実行しているときは、より多くの電力を消費する代償として高い実行レベルを選択することになる。
異なる実行レベルにおいて動作可能な形式の処理システムの一例として、インテル(株)により製造され、スピード・ステップ(SpeedStep)(R)技術に関連したプロセッサは、1以上の低電力低速モードと共に、高電力高速モードで動作する。これらの実行レベル間でのスイッチングは、通常、システムは、主電源に接続されているのか又はバッテリ電源に接続されているのかのような検知された外部パラメータに従って実行される。
データ処理システム上に配置されたダイナミック判定処理要求に基づいて更にダイナミックな実行レベル管理が得られることも知られている。このようなアプローチの一例は、プロセッサに適用されたトランスメータ(Transmeta)(R)により適用したプロセッサ・クロック速度のロング・ラン(LongRun)(R)ソフトウェア制御である。このようなソフトウェアは、プロセッサのクロック周波数、従ってプロセッサ上に配置された処理要求が軽いときは、消費される電力を減少させようとし、また処理要求が大きいときには、高い実行を得るためにクロック周波数を高めるようにする。
このアプローチによる問題は、節電技術がシステムの有用性の妨げとならないことを保証するために、ソフトウェアは、所望の実行レベルに関連して安全の前提を設定し、かつ真に必要とする高い平均実行レベルでシステムをランさせがちなことにある。これは、電力を無駄にするものである。加えて、使用するアルゴリズムは、いくつかの形式の処理活動に適当となる傾向があり、それ以外ではなく、これが更に実行レベル制御を不正確にする。
本発明は、第1の特徴から見て、複数の異なる実行レベルで動作可能なデータ処理装置により使用される実行レベルを選択する方法を提供するものであって、この方法は、
複数の実行要求計算アルゴリズムのうちから、それぞれ1つを使用する複数の実行要求を計算するステップと、
複数の実行要求を組み合わせてグローバル実行要求を形成するステップと、
グローバル実行要求に従って複数の異なる実行レベルの中からデータ処理装置により使用されるべき実行レベルを選択するステップと、
を備えている。
本発明は、複数の実行要求計算アルゴリズムにより複数の実行要求を計算し、次いで、これら個別的な実行要求を組み合わせてグローバル実行要求を形成し、これを選択される実行レベルを制御するために使用することにより、改良された実行レベル制御を達成できることを確認している。このようにして、それぞれ異なる環境に適し、かつ、それぞれ単一アルゴリズムを使用しただけのときよりも、実行される軽く控え目の仮定を必要とする異なる実行要求計算アルゴリズムを使用することができる。複数の実行要求を組み合わせてグローバル実行要求を形成することにより、真に必要とする実行レベルにより正確に一致する改良実行レベル選択を与えるように異なる実行要求間の調整を許容する。
実行要求計算アルゴリズムは、好ましくは、相互に独立しており、かつデータ処理装置の検出された動作特性上で、これらの計算に基づいている。
更に、本発明の好ましい実施例は、計算するステップ及び組み合わされるステップが選択するステップから時間的に独立し、かつ異なる複数の実行要求計算アルゴリズムが互いに時間的に独立することも可能にする。これは、異なる実行要求計算アルゴリズムがこれらの計算に基づくことができ、それでも実行レベル変化を可能にする周波数及びタイミングを制約することはない。
本発明による好ましい実施例において、実行要求計算アルゴリズムは、階層構造により配列されると共に、これらの元の実行要求計算アルゴリズムの階層構造内の位置に従って、それぞれの実行要求を組み合わせる。
階層構造は、完全に順序付けられても、又は部分的に順序付けられてもよいことを理解すべきである。部分的な順序付けの場合は、同一の階層構造レベルからの複数の実行要求を組み合わせるために、オペレータを設けてもよい(例えば、最大値セレクタ)。階層構造モデル内では、実行計算アルゴリズムを起源とし、階層構造モデル内において階層構造内で他の要求より優位位置を有する実行要求が他の要求に優先して選択される。
複数の実行要求が、どのようにして実行要求を他の実行要求と組み合わせるかを指定する実行要求により発生したコマンドを伴うことにより、複数の実行要求を組み合わせる方法により、柔軟性の改善を達成することができる。従って、実行要求計算アルゴリズムは、どのようにして実行要求を他の実行要求と組み合わせるかを指定することにより発生する際に要求された実行における信頼の問題を表現するように考慮されてもよい。
好ましい例として、これらのコマンドは、階層構造において低い優位位置からどのような実行要求にも優先すること、低い優位位置にある実行計算アルゴリズムからの下位実行レベル実行要求へ優先して選択されること又は無視されることを指定することができる。
複数の実行要求の組合せは、最低の優位位置からの実行要求から開始して、最高の優位位置を有する実行要求計算アルゴリズムからの実行要求まで作動して組み合わされる。
計算するステップ、組合せするステップ及び選択するステップは、オペレーティング・システム・カーネル、データ処理装置のファームウェア又はデータ処理装置内のハードウェアのようにシステム異なる部分で実行されてもよい。計算するステップ、組合せするステップ及び選択するステップのうちの異なるものが、前述のように同一又は異なる位置に実行されてもよい。
実行要求計算アルゴリズムは、リアル・タイム・オペレーティング・システム・カーネルからのデッド・ライン情報、オペレーティング・システム・カーネルからの全般的な情報、又は、例えば、適当なアプリケーション・プログラム・インターフェースを介して実行レベル管理システムに対するそれ自身の実行レベル要求を提供可能なアプリケーション・プログラムからの情報のように、種々の異なるパラメータに対して応答するものでもよい。
他の観点から見て、本発明は、複数の異なる実行レベルで動作可能なデータ処理装置により使用される実行レベルを選択する装置を提供するものであり、本装置は、
複数の実行要求計算アルゴリズムのうちから、それぞれを使用して複数の実行要求を計算するように動作可能な計算ロジックと、
複数の実行要求を組み合わせてグローバル実行要求を形成するように動作可能な組合せロジックと、
グローバル実行要求に従って複数の異なる実行レベルのうちからデータ処理装置により使用されるべき実行レベルを選択するように動作可能な選択ロジックと、
を含む。
更なる観点から、本発明は、コンピュータを制御してコンピュータにより使用されるべき実行レベルを選択するコンピュータ・プログラムを搭載したコンピュータ・プログラム・プロダクトを提供するものであり、コンピュータ・プログラムは、
複数の実行要求計算アルゴリズムのうちから、それぞれ1つを使用して複数の実行要求を計算するように動作可能な計算コードと、
複数の実行要求を組み合わせてグローバル実行要求を形成するように動作可能な組合せコードと、
グローバル実行要求に従って複数の異なる実行レベルのうちからデータ処理装置により使用されるべき実行レベルを選択するように動作可能な選択コードと
を備える。
以上、本発明の他の目的、特徴及び効果は、添付図面に関連して読む以下の実施例の詳細な説明から明らかとなる。
図1は、どのようにしてデータ処理システムにおいて本技術による電力管理システムを実施できるのかを概要的に示す。データ処理システムは、システム・コール・モジュール112、スケジューラ114及び通常電力マネジャ116を含む標準的なカーネル機能モジュールを有するカーネル100を備えている。インテリジェント・エネルギ管理システム120は、カーネル内に実施され、ポリシ122、実行設定制御モジュール124及びイベント・トレース・モジュール126を備えている。ユーザ処理層130は、システム・コール・モジュール132、タスク管理モジュール134及びアプリケーション特定データ136を備えている。ユーザ処理層130は、アプリケーション・モニタリング・モジュール140を介してカーネル100に情報を供給する。
カーネル100は、オペレーティング・システムの他の部分に基本的なサービスを提供するコアである。カーネルは、シェルと対照されてもよく、ユーザ・コマンドと対話するオペレーティング・システムの最外部分である。カーネルのコードは、そのホスト・システム上でメモリのような物理リソースに対して完全なアクセス特権により実行される。カーネルのサービスは、システムの他の部分により又はシステム・コールとして一組のプログラム・インターフェースを通るアプリケーション・プログラムにより要求される。ユーザ処理層及びカーネルの両者は、システム・コール・モジュール112、132を有する。スケジューラ114は、どのプログラムがカーネルの処理時間を共有し、かつ、どのような順序かを判断する。カーネル内のスーパ・バイザ(図示なし)は、各処理に対して計画時間にプロセッサの使用を与える。通常電力マネジャ116は、節電スリープ・モードとプロセッサ利用のレベルに従った標準覚醒モードとの間でプロセッサを切り換えることにより電源電圧を管理する。
インテリジェント・エネルギ管理マネジャ120は、プロセッサ実行目標を計算し、かつ設定する役割を担う。インテリジェント・エネルギ管理マネジャ120は、節電のためにスリープ・モードのみに依存するよりも、アプリケーション・ソフトウェアが処理(例えば、タスク)のデッド・ラインを見逃すことなく、中央処理装置(CPU)の動作電圧及びプロセッサのクロック周波数を下げるのを可能にする。CPUが全能力でランしているときは、多くの処理タスクをそれらのデッド・ラインより前に完了して、プロセッサは、次のスケジュール・タスクを開始するまでアイドルとなる。データを生成するタスクに対するタスク・デッド・ラインの例は、生成したデータが他のタスクにより必要とされた時点である。インタラクティブ・トークに対するデッド・ラインは、ユーザの認識しきい値となる(50〜100ms)。フル実行で行き、次いでアイドリングを実行すると、エネルギ効率は、デッド・ラインがより正確に適応するようにもっとゆっくりとタスクを完了するときより悪くなる。プロセッサの周波数が低くなると、エネルギ節約を達成するために電圧をスケール・ダウンすることができる。コンプリメンタリ金属酸化半導体(CMOS)技術により実施されたプロセッサのために、与えられたワーク・ロードに使用されたエネルギは、電圧の2乗に比例する。ポリシ・コディネータは、互いに異なるラン・タイム状況に適している多数の実行設定アルゴリズムを管理する。与えられた条件に対して最適の実行設定アルゴリズムは、ラン・タイムで選択される。実行設定制御モジュール124は、各実行設定アルゴリズムの結果を受け取って、これらの結果を優先順位化により目標プロセッサ実行を反復的に計算する。イベント・トレース・モジュール126は、カーネル110及びユーザ処理層130の両者におけるシステム・イベントを監視し、かつ実行設定制御モジュール124及びポリシ・コディネータ122に集められた情報を供給する。
ユーザ処理層において、処理作業は、システム・コール・モジュール132と、タスク切り換え、タスク生成及びタスク終了イベントを含む処理タスク・イベント管理モジュール134を介して、かつアプリケーション特定データを介して監視される。インテリジェント・エネルギ管理マネジャ120は、標準カーネル機能モジュールにフックされ、かつプロセッサの速度及び電圧レベルを制御するために使用される一組のカーネル・モジュール及びパッチとして実施される。インテリジェント・エネルギ管理マネジャ120を実施する方法は、カーネル100内の他のモジュールから相対的に自律させる。これは、実行制御機構の指示ホスト・オペレーティング・システムに対する指示を軽減させる効果がある。更に、カーネルを実施すると、ユーザ・アプリケーション・プログラムを変更する必要がないことも意味する。従って、インテリジェント・エネルギ管理マネジャ120は、システム・コール・モジュール112、モジューラ124及びカーネルの通常電力マネジャ116と共存するが、これらのサブシステム内に一定のフックが必要と思われる。インテリジェント・エネルギ管理マネジャ120は、実行中のタスク間の通信パタータニングを調べることにより、OSカーネルからタスク・デッド・ライン及びタスク分類情報(例えば、タスクは、インタラクティブ・アプリケーションに関連しているか否か)を導き出すために使用される。更に、どのシステム・コールが各タスクによりアクセスされるのか、また、どのようにしてデータがカーネル内の通信構造間を流れるのかを監視するために使用される。
図2は、本発明による実行設定アルゴリズムの3階層構造層を概要的に示す。与えられたプロセッサ上で、周波数・電圧設定オプションは、連続よりも通常、断続的であることに注意すべきである。従って、目標プロセッサ実行レベルは、固定した一組の所定値から選択される必要がある。従って、目標プロセッサ実行を計算する既知の技術は、単一の実行設定アルゴリズムの使用を必要とするのに対して、本発明の技術は、それぞれが異なるラン・タイム状況に対して適した異なる特徴を有する多数のアルゴリズムを利用する。ラン・タイムで与えられた処理状況に対して最も適用可能なアルゴリズムが選択される。ポリシ・コディネータ・モジュール122は、これらの実行設定アルゴリズムを協調させて、標準カーネル110におけるフックに接続することにより、多数の実行設定アルゴリズムに対して共有した機能を提供する。多数の実行設定アルゴリズムの結果は、相関され、かつ解析されて目標プロセッサ実行レベルに対するグローバル予測を判断する。種々のアルゴリズムは、決定階層構造(即ち、アルゴリズム・スタック)に編成され、この決定階層構造では、階層構造の上位(高い優先度)レベルでアルゴリズムにより出力された実行レベル・インジケータが階層構造の下位(低い優先度)レベルでアルゴリズムにより出力された実行レベル・インジケータに優先した権限を有する。図2の実施例は、3階層構造レベルを有する。階層構造の最高レベルには、インタラクティブ・アプリケーション実行インジケータ210が存在し、中間レベルには、アプリケーション特定実行インジケータ220が存在し、また階層構造の最低レベルには、タスク・ベースのプロセッサ利用実行インジケータ230が存在する。
インタラクティブ・アプリケーション実行インジケータ210の計算は、フロートナ(Flautner)ほか、2001年6月、モバイル・コンピューティング及びネットワーキングに関する国際会議、「ダイナミック電圧スケール設定」(“Automatic Performance-setting for Dynamic Voltage Scaling”,Proceeding of the International Conference on Mobile Computing and Networking, July 2001)において説明されたものに基づくアルゴリズムによって実行される。インタラクティブ・アプリケーション実行レベルは、ユーザ経験を直接影響する実行期間を見出すことにより、かつ、これらのエピソードが不都合な遅延なしに完了することを保証することにより、良好なインタラクティブ実行の保証を提供するためにシークをする。アルゴリズムは、自動的にインタラクティブ・エピソードように比較的に簡単な技術を使用する。この技術は、GUIコントローラであるXサーバからの通信を監視し、かつ結果としてトリガされたタスクの実行をトラッキングすることに依存している。
インタラクティブ・エピソードの開始(多数のタスクを通常、備えている)は、ユーザにより開始され、かつGUIイベント、例えば、マウスのボタン又はキーボード上のキーを押すことにより示される。このイベントの結果として、GUIコントローラ(この場合はXサーバ)は、イベントを取り扱う役割を担うタスクにメッセージを送出する。適応システム・コール(種々のバージョンの読み出し、書き込み及び選択)を監視することにより、インテリジェント・エネルギ管理マネジャ120は、インタラクティブ・エピソードの開始を自動的に検出することができる。エピソードが開始すると、GUIコントローラ及びメッセージの受信者であるタスクの両者は、インタラクティブ・エピソードにあるとしてマークされる。インタラクティブ・エピソード・タスクがマークなしのタスクと通信すると、まだマークされていないタスクもマークされる。この処理中に、インテリジェント・エネルギ・マネジャ120は、いくつマークされたタスクをプリエンプトしたかのトラッキングを保持する。プリエンプトされたタスク数がゼロになり、全てのタスクが完了までランしたことを表したときは、ティブト・エピソードの終端に達している。
図3は、インタラクティブ・エピソード中のプロセッサ実行レベルを設定する戦略を示す。インタラクティブ・エピソードの期間は、(約10-4から約1秒までの)数オーダの大きさにより変動することが知られている。しかしながら、遷移開始遅れ、即ち「5ミリ秒のスキップしきい値」が最短インタラクティブ・エピソードをろ波するためにセットされ、これによって要求実行レベル遷移数を減少させる。サブミリ秒のインタラクティブ・エピソードは、通常、キー圧力のエコー又はスクリーンを横切るマウスを移動させること及び小さな長方形を再描画することの結果である。スキップしきい値は、最悪の場合、逆効果となることなく、短いエピソードに実行インジケータをろ波可能にさせるので、5ミリ秒にセットされる。
インタラクティブ・エピソード期間長がスキップしきい値を超えるときは、関連の実行レベル値が総合インタラクティブ実行レベル予測に含まれる。次のインタラクティブ・エピソード用の実行係数は、経過した全インタラクティブ・エピソードに対する計算実行係数の重み付け指数関数的な減衰平均により与えられる。この技術によれば、インタラクティブ・アプリケーション実行設定アルゴリズムは、システムにおいてインタラクティブ・エピソードに必要な実行レベルに対して単一グローバル予測を使用することに注意すべきである。[これは、以上で述べた刊行物に説明された技術と異なり、これによると、タスクがエピソードを開始するに従って、タスク当たりの実行レベル予測を使用していた。]
ユーザの経験による誤実行レベル予測の最悪ケースの影響を抑制するために、インタラクティブ・エピソードがいわゆる「パニックしきい値」に達する前に、終結しないときは、トップの階層構造レイヤが最大実行レベルとなるように指定される。これは、トップ・レベル予測であるので、システムにより強化される。反則しているインタラクティブ・エピソードの終りにおいて、インタラクティブ・アルゴリズムは、エピソードに対して何が正しい実行設定であるべきかを計算して、将来の予測に反映させるように、この値を指数関数的に減衰する平均値に組み込む。付加的な最適化は、実際においてインタラクティブ・エピソード中に実際にパニックしきい値に到着したときは、正しい実行レベルをより高い重み付け(k=3の代わりにK=1を使用する)により指数関数的減衰平均に組み込むように、移動平均を再スケーリングする。実行予測は、スキップしきい値より長い全てのエピソードについて計算される。
インタラクティブ・エピソードの「デッド・ライン」は、認識された各インタラクティブ・エピソード用の実行レベル・インジケータを得るために使用される。デッド・ラインは、タスクが実行に逆効果とならないように完了しなければならない最終時間である。インタラクティブ・エピソードに対する実行レベル・インジケータは、特定のインタラクティブ・イベントに関連するヒューマン・パーセプションしきい値に従って計算される。例えば、毎秒20〜30フレームの速度は、ユーザが一連のイメージを連続するストリームとして知覚するのに十分な早さなので、知覚は、
Figure 2004164642
インタラクティブ・イメージ・ディスプレイ・エピソードに対して、しきい値を50msに設定してもよい。知覚しきい値の正しい値は、ユーザ及び達成したタスクの形式に従属するが、50msの固定値は階層構造のインタラクティブ・アルゴリズムに適していることが解った。下記の等式は、知覚しきい値より短いエピソードの実行要求を計算するために使用される。
ただし、全速の等価ワーク(Workfse)は、インタラクティブ・エピソードの開始から測定される。
中間階層構造レベルのアプリケーション特定実行インジケータ220は、実行レベル設定機能に注目したアプリケーション・プログラムのカテゴリにより出力される情報を収集により得られる。これらのプログラム・アプリケーションは、これら特定的な実行要求についてインテリジェント・エネルギ管理マネジャ120に特定の情報を(システム・コールを介して)提供するようにしていた。オペレーティング・システム及びアプリケーション・プログラムは、プリエンプトに関して、この通信を容易にするために新しいAPI要素を設けられてもよい。
知覚に基づく実行インジケータ230は、最近の利用歴に基づいてプロセッサの将来利用を予測する知覚に基づくアルゴリズムを実施することにより得られる。このアルゴリズムは、個別的な各タスクについて利用予測を導き出して、タスク・ベースによりタスク上で利用歴を計算する期間長(利用歴ウィンドウ)を調整する。最上レイヤのインタラクティブ・アプリケーション・アルゴリズムは、インタラクティブ・タスクを考慮するのに対し、知覚に基づくアルゴリズムは、プロセッサにより実行されるべきタスクの全てのカテゴリを考慮する。インタラクティブ・アプリケーション・アルゴリズムは、高品質のインタラクティブ実行を保証することを目的とする実行レベル・インジケータを計算し、また、これが階層構造の最上レベルに位置するので、知覚に基づくアルゴリズムは、控え目な短い利用歴ウィンドウに制約されるべきでない。このような最低階層構造レベルにおいて長い利用歴ウィンドウを使用する可能性は、適当ならば更に積極的な省電力戦略を選択できるので、効率改善のために許容される。利用歴ウィンドウが短過ぎるときは、これは、2実行レベル予測を固定値間で急速に振動させる原因ともなる。通常、(階層構造的なアルゴリズム・セットよりも)単一の統合アルゴリズムを使用して全てのラン・タイム環境用の実行レベルを設定する短い利用歴ウィンドウを設定することが必要である。例えば、統合アルゴリズムのような完結的なプロセッサ集中インタラクティブ・イベントに対処できるようにするためには、利用歴ウィンドウを短く保持する必要がある。
3レイヤ・スタックの各実行設定アルゴリズムは、与えられた期間内に処理ワーク・ダンの測定値を使用する。この実施例において、使用されるワーク・ダン測定値は、その期間に実行された(プロセッサの)全速等価ワーク(Workfse)である。この全速等価ワーク予測は、下記式により計算される。
Figure 2004164642
ただし、iは、与えられた期間中に実施された異なるnプロセッサ実行レベルのうちの1つであり、tiは、実行レベルiにおいて費やした秒による非アイドル時間であり、かつpiは、ピーク(全速)プロセッサ実行レベルの分数として表されたプロセッサ実行レベルiである。この等式は、タイム・スタンプ・カウンタ(ワーク・カウンタ)がリアル・タイムに測定するシステム上で有効である。ワーク・ダンは、カウント速度が現在のプロセッサ周波数により変動するサイクル・カウンタを使用した他の実施例において異なる計算となる。更に、上式は、ワーク・ロードのラン・タイムがプロセッサ周波数に逆比例するものと暗黙的な仮定をする。この仮定は、ワーク・ダンの合理的な予測を提供する。しかしながら、実行スケーリング中に主としてプロセッサ速度対バス速度比の非線形性のために、この仮定は、常に正確ではない。他の実施例では、ワーク・ダンの計算を精密同調させて、このような要素を考慮に入れることができる。
図4は、プロセッサ上のワーク・ロードの実行及びタスクA用の利用歴ウィンドウの計算を概要的に示す。図4の水平軸は、時間を表す。タスクAは、まず時間Sにおいて実行をスタートさせて、多数のタスク当たりのデータ構造を初期化する。これらのデータ構造のうちの4つが存在し、下記情報の4片に対応する。(i)ワーク・カウンタの現在状態、(ii)現在(リアル)タイム、(iii)アイドル・タイム・カウンタの現在状態、及び(iV)ラン・ビットを論理レベル‘1’にセットして、タスクがランし始めたことを示す。ワーク・カウンタ、リアル・タイム・カウンタ及びアイドル・タイム・カウンタは、タスクAに関連したプロセッサ利用を計算し、続いてタスクAの実行要求を計算するために使用される。時間PEにおいて、タスクAは、まだ完了までランしていないが、他のタスク、タスクBにより優先使用される。優先使用は、スケジューラ114が現在ランしているタスクよりも高い優先度を有することを判断したときに発生する。タスクAを優先使用しているときは、ラン・ビットを‘1’の論理レベルに保持してタスクは、完了するまで未だワークがあることを表示する。時間REにおいて、再度スケジュールを設定したことにより、タスクAを再度実行し、ランして完了する時間TCまで実行し続けて、そこで処理時間を自ら停止する。完了時に、タスクAは、プロセッサに他のタスクを与えるシステム・コールを開始することができる。時間TCでタスクAを完了すると、ラン・ビットを論理レベル‘0’にリセットする。
時間TC後に、アイドル期間が存在し、更なるタスクCの実行及び次のアイドル期間が続く。時間RSで、タスクAは、第2の時間についての実行を開始する。時間RSで、タスクAに関連したラン・ビットの‘0’状態は、タスクAの実行要求の計算を可能にする情報が存在することを示しており、従ってプロセッサ目標実行レベルをタスクAの切迫した再実行用にセットすることができる。与えられたタスク用の利用歴ウィンドウは、与えられたタスクの第1の実行の開始から与えられたタスクの次の実行の開始までの期間であると定義され、関連のウィンドウ内で与えられたタスクの少なくとも1優先使用イベント(この場合に時点REでタスクBにより、タスクAは優先使用される)を含む必要がある。従って、この場合に、タスクA用の利用歴ウィンドウは、時間Sから時間RSまでの期間であると定義される。タスクAに対する目標実行レベルは、下記のように計算される。
Figure 2004164642

ただし、kは、重み付け係数であり、idleは、図4における時間Sから時間RSまでの期間内の秒によるアイドル時間であり、またタスクAに対するデッド・ラインは(Workfse)+Idle)であると定義される。この特定例において、図4におけるタスクBのように優先使用タスクの実行検出は、各タスクの非優先使用スケジュール前のランであるタスク処理は、しばしばタスクAの実行と高度に相関される。時点TCとRSとの間のアイドル時間は、低下した実行レベルでプロセッサをランさせることにより、費やされ得るスラックである。しかしながら、タスクCは、適用可能なスラックを減少させるので、実行レベル計算における因数にされる。
WorkEststNew及びDeadlineNewに関する上式は、それぞれ指数関数的減衰平均を表す。このような指数関数的減衰平均は、最近予測であれば最近でない予測より影響力を有するようになる。重み付け係数kは、指数関数的減衰平均に関連したパラメータである。k=3の値は、効果的に作用することが判り、またこの小さな値は、各予測が良好な予測であることを表している。ワーク予測器及びデッド・ライン予測器のトラッキングを個別的に保持することにより、実行予測は、利用歴ウィンドウの長さに従って重み付けされる。これは、大きなウィンドウ・サイズに関連した実行が実行予測より優位とならないことを保証する。このアルゴリズムに対する実行レベル・インジケータPerfperspectives-basedは、2つの指数関数的減衰平均の比により与えられる。即ち、Perfperspectives-based=WorkEstNew/DeadlineNewこの技術の戦略によれば、与えられたタスクに対するワーク予測WorkEstは、50ミリ秒と150ミリ秒との間のワーク・ロード従属時間間隔上で再計算される。しかしながら、各実行タスクが適当なそれぞれのタスクに基づくWorkEst値に依存するようにタスク毎にWorkEstを計算するので、WorkEstは、実際には5〜10ミリ秒毎に更新される(タスク・スイッチング・イベントに反映させる)。このアルゴリズムは、既知のインターバル・ベース・アルゴリズムとは異なり、各タスクについて個別的に利用予測を導き出し、更にタスク毎を基本として利用歴ウィンドウのサイズを調整している。既知の統合実行設定アルゴリズムは、指数関数的減衰平均を使用するが、これらは、タスク・ベースの利用歴ウィンドウについてのタスク・ベース平均よりも固定利用歴ウィンドウ(10〜50ミリ秒)に対する全実行タスクについてのグローバル平均を計算する。
この技術の見込みベースのアルゴリズムによれば、新しい非インタラクティブCPU拘束タスクが長大な期間について優先使用されることなく、プロセッサを使用することにより発生する状況を避ける必要がある。これは、タスクが少なくとも1回優先使用されると利用歴ウィンドウを単に定義できるだけなので、タスクに対して実行レベルを採用する際にかなりの遅れを導入する恐れがある。好ましくない実行適応遅れを避けるために、上側しきい値は、ワーク予測を計算する非優先使用の長さについて設定される。特に、タスクが100ミリ秒間、優先使用されさることなく継続したときは、そのワーク予測をデフォールトにより再計算する。100ミリ秒の値は、個別的なインタラクティブ・アプリケーション実行インジケータを発生する、より厳格なアプリケーション歴ウィンドウが支配的な階層レイヤ210を介してインタラクティブ・アプリケーションに対して保証されることを考慮に入れることにより選択された。更に、100ミリ秒ウィンドウしきい値により多分に影響されるユーザ・アプリケーションのクラスのみが、例えば、数秒、更に数分間は多分ランする編集のような計算集中バッチ・ジョブであることも考慮された。このような場合に、ラン・タイムの付加的な100ミリ秒(0.1)秒)は、残念ながらかなりの実行方法となる。
図5は、図2の3層の階層構造実行ポリシ・スタックの実施を概要的に示す。この実施は、実行インジケータ・ポリシ・スタック510及びポリシ・イベント・ハンドラ530を備え、それぞれ目標実行計算器540へ情報を出力している。目標実行計算器540は、4つの実行設定アルゴリズム、即ち、最高レベルのインタラクティブ・アルゴリズム、中間レベルのアプリケーション・ベース・アルゴリズム及び2つの下位レベル・アルゴリズムによる結果を収集するために使用される。4つのアルゴリズムは、並行してランすることが可能である。目標実行計算器540は、ポリシ・スタック510により発生した多重実行インジケータ(この場合は4)から単一のグローバル目標実行レベル導き出す。ポリシ・スタック510は、ポリシ・イベント・ハンドラ530及び目標実行計算器540と共に、ユーザによる要望に従ってスタックの各レベルのポリシ・アルゴリズムを置き換え、又は相互に入れ換えられるように、多重実行設定ポリシ用の柔軟性のある骨組みを提供する。従って、実行ポリシ・スタックは、ユーザ・カスタム化実行設定ポリシを組み込むことができるプラットフォームを提供する。
多重実行設定アルゴリズムのそれぞれは、異なる特定のカテゴリのラン・タイム・イベントに対処するために特殊化される。しかしながら、図5の実施例において異なる4つのアルゴリズムが存在するので、全て出力される異なった実行インジケータ、ソフトウェアは、4つの実行インジケータのうちのいずれがグローバル目標値を設定する際に優先権を取るべきかについて決定する必要がある。更に、各実行設定アルゴリズムが独立してランし、かつ異なる時間に出力を発生することができるとすると、グローバル目標実行レベルを有効に計算することができる時間について決定をする必要がある。更に、多重実行設定アルゴリズムが同一の処理イベント上で全てこれらの決定に基づき、それ以外は、スプリアス目標更新が発生し得る場合に、実行インジケータを如何に組み合わせるかについても考慮する必要がある。
これらの問題に対処するために、ポリシ・スタック510のアルゴリズムは、示されているように、3レベルの階層構造に編成され、上位レベルにおけるポリシは、下位の(低い優先)レベルから導き出される実行レベル要求に優先するように権利を与える。従って、レベル2のアルゴリズムは、レベル1のアルゴリズムに優先することができ、続いて、これがレベル0の2つのアルゴリズムに優先することができる。各階層構造レベルは、それ自体、交替する多重実行設定アルゴリズムを備えていることに注意すべきである。異なる実行設定アルゴリズムは、この階層構造において、これらの位置に気付いていず、システムにおけるどのようなイベントについても、これらの実行決定に基づくことができる。与えられたアルゴリズムが実行レベルを要求するときは、その所望実行レベルと共にコマンドをポリシ・スタック510に送出する。ポリシ・スタックの各アルゴリズムのために、コマンド512、516、520、524及び実行レベル・インジケータ514、518、522、526を含むデータ構造を記憶する。レベル1のアルゴリズムに適用するコマンドIGNORE(無視)520は、グローバル実行目標の計算において関連する実行レベル・インジケータを無視すべきことを目標実行計算器440に対して表示する。両者のレベル0に対して指定されたコマンド・セット512、516は、目標実行計算器540に階層構造において下位から来る実行レベル要求を考慮することなく、対応する実行レベルを設定させる。しかしながら、SETコマンドは、より高い階層構造レベルからの実行レベル要求を優先させることはできない。この実施例において、一方のレベル0アルゴリズムは、実行をピーク・レベルの55%に設定され、他方のレベル0アルゴリズムは、ピーク・レベルの25%に設定されることを要求していた。目標実行計算器は、オペレータを使用して、これら等しい2つの優先度要求を組み合わせ、この場合、レベル0実行インジケータとして55%値を優先的に選択する。レベル2では、コマンド‘SET IF GREATER THAN’(より大のときはセット)は、80%の実行インジケータと共に指定された。‘SET IF GREATER THAN’コマンドは、目標実行計算器540が下位の階層構造レベルからの実行インジケータのいずれよりも大きい限り、これがグローバル目標実行レベルを80%に設定せよということである。この場合に、lv0実行インジケータは、55%であり、レベル1実行インジケータは、無視され、従って、グローバル目標をピーク実行の80%にセットする必要がある。
各アルゴリズムに対する最近に計算された実行レベル・インジケータは、ポリシ・スタック510によりメモリに記憶されるので、目標実行計算器540は、それぞれ、かつ、あらゆる実行設定アルゴリズムを呼び出すことを必要とせずに、任意の時間で新しいグローバル目標値を計算することができる。新しい実行レベル要求がスタック上のアルゴリズムのうちの1つにより計算されると、目標実行計算器は、ボタン・レベルから更新グローバル目標実行レベルを計算するまで、コマンド実行データ構造の内容を評価する。従って、レベル0でグローバル予測は、55%にセットされ、レベル1で、これは55%にとどまり、レベル2でグローバル予測は、80%に変る。各実行設定アルゴリズムは、任意の時間に(システムにおける処理イベントにより)トリガされて新しいピーク・レベルを計算してもよいが、全ての実行設定アルゴリズムが応答しようとする一組の共通イベントが存在する。これらのイベントは、ポリシ・イベント・ハンドラ530により監視されてフラグ付けされ、ポリシ・イベント・ハンドラ530は、目標実行計算器540にポリシ・イベント情報を供給する。これらのイベントの特殊区分は、リセット・イベント532、タスク切り換えイベント534及び実行変更イベント536を含む。実行変更イベント536は、通常、ポリシ・スタック510上の実行要求を変更させることはないが、各実行設定アルゴリズムをプロセッサの現在ピーク・レベルに変更することを通知する。これらのイベントの特殊区分532、534、536のために、これらのアルゴリズムのうちの1つが更新した実行レベル・インジケータを発行する度に、グローバル目標レベルを計算することはしない。むしろ、全ての挿入した実行設定アルゴリズムの全てのイベントを呼び出した後に、各イベント通告に対して1回のみ計算を実行するように目標実行レベル計算を協調させる。
複数のデバイス・ドライバ又は複数のデバイスは、個々のデバイスがポリシ・スタック510及び/又はポリシ・スタックの個別的な実行設定アルゴリズムに、動作状態における顕著な変化について通知するのを可能にするアプリケーション・プログラム・インターフェースをそのものに備えてもよい。これは、実行設定アルゴリズムが目標実行レベルの再計算をトリガするのを可能にする。例えば、通知は、プロセッサ集中CPU拘束タスクが起動するときに、デバイスによりポリシ・スタック510に送出可能とされる。このような通知は、任意選択的なものであるが、しかし、受信の際に、これに応答する必要はない。
図6は、本発明によるワーキング・トラッキング・カウンタ600を概要的に示す。ワーキング・トラッキング・カウンタ600は、ソフトウェア制御モジュール620及びハードウェア制御モジュール630を有する増分値レジスタ610と、ワーク・カウント値及び時間カウント値レジスタを備えたアキュムレータ・モジュール640と、リアル・タイム・クロック650及び制御レジスタ660とを備えている。この実施例のワーク・トラッキング・カウンタは、このカウンタの増分値を増加させる時間又はその近傍でプロセッサにより実行されている実際のワークに比例していることにおいて、既知のタイム・スタンプ・カウンタ及びCPUサイクル・カウンタと異なる。増分値レジスタ610は、各カウンタ・サイクルにおいてプロセッサにより実行したワークを予測するワーク・ダン計算器を備えている。ワーク・ダンは、ソフトウェア制御モジュール620を介して及び/又はハードウェア制御モジュール630を介して得られる。ソフトウェア制御モジュール620は、増分値を現在プロセッサ速度と簡単なワーク・ダン計算を実施する。プロセッサがピーク実行の70%でランしているときは、増分値は、0.7となり、これに対して、プロセッサがピーク実行の40%で動作しているとき、増分値は、0.4となる。プロセッサが1カウント・サイクル中にアイドルであることをソフトウェア制御モジュール620が検出すると、増分値は、ゼロにセットされる。ワーク・トラッキング・カウンタの他の実施例では、より複雑なソフトウェア・アルゴリズムを使用して精度を高めたワーク・ダン予測を計算する。
表1は、2つの異なるプロセッサ速度間(この場合に高い速度から低い速度)でのピーク・レベル遷移を考慮すると、CPU拘束ループ・ピーク・レベル遷移期待ラン・タイムと実際のラン・タイムとの間のパーセントによる矛盾を与える測定データをリストに表示する。その結果は、独立した3つのプロセッサ実行レベル、(表の左端の欄において指定されるように)300、400、500Mhzにおけるポスト遷移ランに基づいている。表1の最上列は、左端欄における対応するプロセッサ速度に遷移した初期ピーク・レベルをリストに表示する。CPU拘束ループ上で、予測測定値と実際測定値との間の差は、雑音から識別可能であり、これに対し、MPEGワーク・ロード用では、実行周波数において100Mhz当たり約6%〜7%の誤差を代償にしている。これらのワーク・ロード上の最大誤差は、20%以下(19.4%)であると見られ、これは、システムにとって固定可能な数ピーク・レベルのみで許容されると考えられる。しかしながら、システムにおいて選択可能な最小から最大プロセッサ実行レベルの利用可能な範囲は、増加し、また各ピーク・レベルのステップ範囲は、低下するので、プロセッサ速度よりも更に正確なワーク予測器が要求される。
Figure 2004164642
他の実施例の更に複雑なアルゴリズムは、ワーク・ダンがプロセッサ速度に直接比例するという仮定をするよりも、(メモリ・アクセスのような重要なイベントのトラッキングを保持するカウンタを介して)命令プロファイル並びにワークロードの期待及び実施の減少率を監視することを含むより正確なワーク・ダン予測技術を使用する。更に、他の実施例は、メモリ・システム実行は、ワーク・ダン予測を改善するためにキャッシュ・ヒット率及び実行インジケータを使用する。更に、他の実施例は、バックグラウンドのオペレーティング・システム・タスクを実行する際に使用される処理時間の百分率に対する(有用なワーク・ダンに等価な)プログラミング・アプリケーションを実行する際に使用される処理時間の百分率を監視するためにソフトウェアを使用する。
ハードウェア制御モジュール630は、処理が固定した2つのピーク・レベル間で切り換える処理をしているときの遷移期間中であっても、ワーク・ダンを予測可能である。各プロセッサ実行遷移のために、プロセッサが何も命令を発行しない約20ミリ秒の休止が存在可能である。この休止は、フェーズ・ロック・ループを新しい目標プロセッサ周波数に再同期させるために必要とする時間のためにある。更に、プロセッサ周波数を変更可能となる前に、電圧は、新しい目標周波数に適した値に設定される必要がある。従って、プロセッサが旧目標周波数でランしていると仮定されてもよいが、しかし(電圧が新目標レベルに設定されたので)、エネルギが新目標周波数で消費されているものと仮定される間に、1ミリ秒までの遷移時間が存在する。この周波数は、ピーク・レベルの変化に影響するために中間周波数ステップを介して、いくつかのステップにより上昇されてもよい。プロセッサの周波数がダイナミックに変化しているこの遷移期間において、ハードウェア制御モジュール630は、ソフトウェアが認識していないダイナミックな変化を考慮して、増分値レジスタを更新するように動作可能である。この実施例は、ワーク・ダンを再計算するためにソフトウェア制御モジュール620、ハードウェア制御モジュール630の両者を使用しているけれども、他の実施例は、ワーク・ダンを予測するために、これら2つのモジュールのうちの1つのみを使用するだけでよい。
アキュムレータ・モジュール(複数)640は、周期的に増分値レジスタ610から増分値を周期的に読み出し、かつ、この増分値をワーク・カウント値レジスタに積算された総和に加算する。ワーク・カウント値レジスタは、クロック・チック毎にワーク・カウンタ値を増加させる。クロック・チックは、リアル・タイム・クロック650から導き出される時間信号である。所定の時間間隔によるワーク・ダンを測定するために、アキュムレータ・モジュール(複数)640に記憶されたワーク・カウント値を2回、即ち、所定の時間間隔の先頭で1回、及び終端で1回読み出す。これら2値間の差は、所定の時間間隔によるワーク・ダンの指示をする。
更にリアル・タイム・クロック650は、レジスタ644に記憶された時間カウント値を増加させる速度を制御する。時間カウント値レジスタは、ワーク・カウント値と同一のタイム・ベース上のタイム・ベースで動作するが、しかしワーク・ダンよりも経過した時間を測定するために使用される。タイム・カウンタ及びワーク・ダン・カウンタの両者を有することにより、実行設定アルゴリズムを容易にする。タイム・ベース・レジスタ646は、多重プラットフォームの両立性及び秒への変換用に設けられている。時間は、正確かつ一貫性を可能とするように、2つのカウンタ642、644のタイム・ベース(周波数)を指定するために使用され、即ち、時間カウント値レジスタに記憶された積算値が経過した時間表示をミリ秒により提供する。制御レジスタ・モジュール660は、2つの制御レジスタ、即ち、各カウンタに対して1レジスタを備えている。カウンタは、適当な制御レジスタを介してエネーブル、ディセーブル又はリセットされる。
図7は、ワーク・ロード特性に従って多数の異なる固定実行レベルを提供可能な装置を概要的に示す。デバイスは、CPU710,リアル・タイム・クロック720、電源制御モジュール730及び図6のワーク・トラッキング・カウンタの増分値レジスタ610を備えている。電源制御モジュール730は、CPUが現在、複数の固定実行レベルのうちのいずれでランするように設定されているのかを判断して、リアル・タイム・クロック720に対して適当なクロック周波数を選択する。電源制御モジュール730は、増分値レジスタ610に対する現在のプロセッサ周波数上の情報を入力する。従って、増分値は、プロセッサ周波数に比例しており、これがまたプロセッサによる有用なワーク・ダンの予測を提供する。
ポリシ・スタック510の多くの実行設定アルゴリズムは、与えられた時間間隔(ウィンドウ)によるプロセッサの利用歴を使用してプロセッサの適当な将来目標速度を予測する。実行設定ポリシの主な目的は、プロセッサ周波数及び電圧レベルを適当な実行レベル適当な目標実行レベルに低下させることにより、実行の開始からタスク・デッド・ラインまでの期間にプロセッサのビジー時間を最大化することである。
目標実行レベルを現実的に予測可能にするために、インテリジェント・エネルギ管理マネジャ120は、与えられた時間間隔中にプロセッサにより実行される実際ワークをトラッキングするための概要を提供する。このワーク・ダン概要は、プラットフォーム間で変化し得る特定ハードウェア・カウンタ実施に関係なく、実行変化及びアイドル時間の考慮を可能にする。本発明によれば、時間間隔によるワーク測定値予測を得るために、各実行設定アルゴリズムは「ワーク構造」をデータ構造に割り付ける。各アルゴリズムは、時間間隔の先頭で「ワーク開始機能」及び与えられた時間間隔の終端で「ワーク停止機能」を呼び出すように設定される。ワーク・ダン測定中は、ワーク構造の内容がアイドル時間の比率及びプロセッサのそれぞれの実行レベルにより重み付けされた利用プロセッサ時間の比率を指定するように自動的に更新される。次いで、ワーク構造に記憶された情報を使用して全速等価値(Workfse)を計算し、続いて、これを目標実行レベル予測用に使用する。インテリジェント・エネルギ管理マネジャ120におけるソフトウェアに実施されているワーク・ダン概要機能は、実行レベル予測アルゴリズム開発者に、インテリジェント・エネルギ管理マネジャ120に対する好都合なインターフェースを提供する。更に、ワーク・ダン概要は、この技術の実行設定システムの一部を異なるハードウェア・アーキテクチャに簡単化する。
他のハードウェア・プラットフォーム間で重要な1つの差は、時間をプラットフォーム上で測定する方法である。特に、いくつかのアーキテクチャがタイム・スタンプ・カウンタを介してサイクル・カウントの低オーバ・ヘッド方法を提供するが、これに対し、他のアーキテクチャは、ユーザに外部的にプログラム可能なタイマ割り込みを提供するだけである。しかしながら、これらのタイム・スタンプ・カウンタは、設けられていても、同じことを測定する必要はない。例えば、第1種のハードウェアのプラットフォームは、現在のインテル[RTM]ペンティアム及びARZ[RTM]プロセッサの両者を含む。これらのプロセッサにおいて、タイム・スタンプ・カウンタは、カウント速度がプロセッサの速度に従って変化するようにCPUサイクルをカウントし、また、このカウンタは、プロセッサがスリープ・モードに入ったときに、カウントを停止する。クルーゾ(Crusoe)[RTM]プロセッサを含む第2種のハードウェアのプラットフォームは、プロセッサのピーク速度でサイクルを常時カウントし、かつ、プロセッサがスリープ・モードにあるときであっても、ピーク速度でカウントを継続して増加させるタイム・スタンプ・カウンタを実施している。ワーク・ダンの概要は、これら2種の両方について他種のハードウェア・プラットフォーム上でこの目標実行設定技術の実施を容易にする。
この実施例において計算したようにワーク予測Workfseは、ピーク実行の半分でランしている与えられたワーク・ロードは、完全プロセッサ速度であっても完了までランする長さの2倍を取る必要性はないということを考慮していない。このカウンタ直観結果に対する1つの理由は、プロセッサ・コアがスロー・ダウンされても、メモリ・システムは、そうならないことである。その結果、コア対メモリ実行比は、メモリに好ましい改善である。
既知の技術に対して、この実行設定技術を評価するためにシミュレーションを実行した。特に、既知の技術は、トランスメータ・クルーゾ・プロセッサ(Transmeta Crusoe processor)(R)に組み込まれた「ロング・ラン(LongRun)」(R)電力マネジャである。このトランスメータ・クルーゾ・プロセッサは、プロセッサ・ファームウェアに組み込まれたトランスメータ・クルーゾ・プロセッサを有する。ロングランは、電力管理を効果的にするためにオペレーティング・システムを変更する必要性をなくす他の既知の電力管理を有する。ロングランは、クロック速度選択を誘導するためにプロセッサの履歴利用を使用する。これは、利用が高度であれば、プロセッサを速くし、また利用が低度であれば、実行を低下させる。通常の多くのプロセッサと異なり、プロセッサは、ダイナミック二進変換及び最適化を実行する隠れたソフトウェア・レイヤを既に有するので、電力管理ポリシをクルーゾ・プロセッサ上で比較的に容易に実行することができる。このシミュレーションは、どのようにすれば、ソフトウェア階層構造において、このような低レベルで実施されるロング・ランのようなポリシを実行できるかの方法を確立することを意図していた。この技術は、同一プロセッサ上でロングランと共にランさせた。
このシミュレーションは、100 Mhz実行レベル・ステップにより300MHzから600MHzの領域にある多数の固定実行レベルでランするトランスメータ・クルーゾ5600プロセッサ(R)を使用した、ソニー・バイオ(Sony Vaio)[TRM] PCG−CIVN(R)ノートブック・コンピュータ上で実行される。このシミュレーションは、リナックス2.4.4-ac18カーネルの変更版をマンドレーク(Mandrake)7.2オペレーティング・システム(R)を使用した。比較評価において使用されるワーク・ロードは、以下の通りである。プレイエムペグ(Plaympeg)SDL MPEG(R)プレイヤ・ライブラリ、PDLファイルをレンダリングするアクロバット・リーダ(Acrobat Reader)(R)、テキスト編集用のエマックス(Emacs)(R)、新しい読出し用のネットスケープ・メール及びニューズ4.7(Netscape Mail and News 4.7)(R)、ウェブ・ブラウジング用のコンカラ1.9.8(Konqueror 1.9.8)、及び3Dゲームとしてのエックス・ウェルトリス1.0.0(Xwelltris 1.0.0)(R)。インタラクティブ・シェル・コマンドに使用されたベンチマークは、約30分のスパン中にユーザ実行の種々のシェル・オペレーションについての記録であった。クルーゾ・プロセッサのダイナミック変換エンジンを起因とする可能変動を避けるために、大抵のベンチマークは、少なくとも2回ランさせてダイナミック変換キャッシュをウォーム・アップさせ、最後のランを除く全てのランのシミュレーション・データであった。
この技術による実行設定アルゴリズムは、タイマを取り扱う際に、そのホスト・プラットフォームの妨げとならないように設計された。シミュレーションのために、この技術は、リナックス組込み分解能10msのタイマが動作する方法を変更することなく、分解能ミリ秒以下のタイマを備えた。これは、スケジューラ及びシステム・コールのように、カーネルのしばしば実行される部分に(タイマ・イベントをチェックする)タイマ・ディスパッチ・ルーチンを相乗りさせることにより達成された。
この技術による実行設定アルゴリズムは、インタラクティブ・エピソードを見付けるために、あるシステム・コールに割り込み可能にさせる、カーネルに対する複数のフックを備えてように設計され、かつ、これがあらゆるタスク・スイッチ上で起動されるので、タイマ・ディスパッチを管理するために、これらのフックに少数の命令を直接的に付加することであった。各フックは、タイム・スタンプ・カウンタの読出し、次のタイマ・イベントのタイム・スタンプに対する比較及び成功によりタイマ・ディスパッチ・ルーチンへの分岐を実施することにより増加された。実際に、この戦略は、ミリ秒以下の精度を有するタイマをもたらすことが判った。
下記の表2は、シミュレーションに関するタイム統計の詳細である。最悪の場合のタイマ分解能は、スケジューラの10ミリ秒(表2と矛盾しているように見える)時間量により制限された。しかしながら、本技術による実行設定アルゴリズムは、測定の際に挿入され、通常、タイマ・トリガに接近して発生するので、達成された分解能は、適切であると考えられた。これは、タイマの割り込みがランしているオペレーティング・システム及びプログラム・アプリケーションのスリープ特性を変化させないことを意味するので、プロセッサがスリープ・モードにあったときに、システムのソフト・タイマは、ティック動作を停止する利点があることが証明された。使用されるタイマは、高い解像度だが、低いオーバ・ヘッドを有する。
これらタイマの効果的な特徴は、活性モード及び受動モードの両方を有する装置の開発を容易にした。活性モードでは、この技術による実行設定アルゴリズムが制御をしていた。受動モードでは、この技術のインテリジェント・エネルギ・マネジャが実行及び実行変化の観察者として機能しているけれども、組込みロングラン電力マネジャが実行の管理をしていた。
Figure 2004164642
ロングランにより発生した実行変化の監視は、同様にタイマ開始ルーチンに対して達成された。本技術によるインテリジェント・エネルギ管理マネジャ120は、マシン特定レジスタを通してプロセッサの実行レベルを周期的に読み出し、かつ、その結果を前の値と比較する。2つの値が相違するときは、その変化がバッファにログされた。この技術によるインテリジェント・エネルギ・マネジャは、カーネル・バッファに重要なイベントのログを保持するトレーシング機構を備えている。このログは、異なるポリシからの実行レベル要求、タスク・プリエンプション、タスクID(認識子)及びプロセッサの実行レベルを含む。シミュレーションの実行において、同一実行ラン中に、この技術によりロングランと実行設定アルゴリズムとを比較することが可能であった。即ち、この技術のインテリジェント・エネルギ管理マネジャ120が制御をしていたとすれば、同一ワークロード上で行うことになっていた決定を出力するように動作可能であったと同時に、ロングランが実行設定を制御していた。このシミュレーション戦略は、既知のロングラン技術とこの技術との間でインタラクティブ・ベンチマークの反復不能なラン間の差を客観的にアクセスするために使用された。
測定及び設定技術を使用するオーバ・ヘッドするために、この技術による実行設定アルゴリズムは、ラン・タイムで実行設定アルゴリズム・コードに費やされる時間のトラッキングを保持している複数のマーカにより実行された。本発明のラン・タイム・オーバ・ヘッドは、ペンティアムII(R)上でトランスメータ・クルーゾ(R)プロセッサ上で約0.1%〜0.5%であることが判ったが、オーバ・ヘッドは、1%と4%との間であった。‘VMWare’(R)及び‘ユーザ・モード・リナックス(UML)のような仮想マシンにおける更なる測定は、この技術による実行設定アルゴリズムのオーバ・ヘッドが従来のプロセッサ・アーキテクチャよりも仮想マシンにおいてかなり高くなり得ることが確認される。しかしながら、このオーバ・ヘッドは、アルゴリズムの最適化によって効果的に減少されてもよい。
MPEG(Motion Picture Expert Group)の映像再生は、テストした全実行設定アルゴリズムに対して困難な挑戦を提起した。実行設定アルゴリズムは、典型的には、システム上の周期的な負荷を課するが、実行要求は、MPEGフレーム形式に従って変化する。従って、実行設定アルゴリズムは、将来の実行要求を予測するために過去の(大きく変更可能な)MPEGフレーム復号イベントに対応する比較的に長い時間ウインドウを使用するときは、(低反復の)より計算集中フレームに対する実行デッドラインを見逃す恐れがある。他方、アルゴリズムが短い間隔のみで見るならば、単一の実行値に収束しないが、しかし、最大設定間で急速に発振する。実行レベルにおける各変化は、遷移遅延を発生させるので、異なる実行レベル間での急速に発振は好ましくない。ロング・ランに対するシミュレーション結果は、MPEGベンチマークに対するこの発振の振る舞いを確認する。
この技術は、最悪の場合の応答性に連携するように階層構造の最高レベルでインタラクティブ実行設定アルゴリズムにより、MPEGワーク・ロードのために、この発振の問題に対処する。従って、階層構造の最低レベルにおいて、より一般的な間隔に基づく予想アルゴリズムは、より長い観点の実行レベル要求を取ることができる。
図8は、種々のMPEGを再生する「プレーエムペグ(plaympeg)」(R)ビデオ・プレーヤ(http://www.lokigames.com/development/smpeg.php3)に対するシミュレーション測定結果を詳細に示す表である。ビデオ・プレーヤの間隔変数のうちのいくつかは、実行中にプロセッサ実行レベルをダイナミックに変更する結果として、どのようにプレーヤが影響されるかについての情報を供給するために提示された。これらの図は、表のMPEGデコード欄に示されている。特に、「アヘッド(Ahead)」変数は、各フレームの復号が発生するデッド・ラインにどのくらい近いかを測定する。このデッド・ラインに対する近さは、各ビデオの再生中に累積秒として表される。プロセッサの最低実行レベルは、どのくらいアヘッド値を減少できるかの下位限界を課すけれども、最大電力効率のために、アヘッド変数値は、可能な限りゼロに近い必要がある。表の右端欄における「正確なオン・タイム・フィールド」は、これらのデッド・ラインに正確に適合する総フレーム数を指定する。正確にオン・タイムとなるフレームが多ければ、それだけ実行設定アルゴリズムが理論上の最適値に近くなる。図8の表の実行統計欄内のデータは、インテリジェント・エネルギ管理マネジャ120監視サブ・システムにより収集される。ロング・ランについての情報を収集するために、インテリジェント・エネルギ管理マネジャ120を受動モードにより使用してプロセッサ実行レベルを制御することなく、実行変化のトレースを集める。アイドル・フィールドは、カーネルのアイドル・ループ内で費やされる(多分、家事雑用又は糸紡ぎそのもの行う)時間量を指定し、一方、スリープ・フィールドは、プロセッサが実際に低電力スリープ・モードで費やす時間比を指定する。これらの実行測定のそれぞれについて、この技術がロング・ランよりかなりうまく実行することが図8の表から判る。
図9は、各ワーク・ロードのラン中に収集されたプロセッサ実行レベル統計をリストにより示す表である。各実行レベルにおいて時間比は、ワーク・ロードのラン中にアイドルでない総時間比として計算される。表の「平均実行」レベル欄は、各ワーク・ロードの実行中に平均実行レベル(ピーク実行の百分率として)を指定する。全ての場合において、各ワーク・ロードに対する平均実行レベルは、この技術を使用することによりロング・ランより低くなるので、最後の欄は、ロング・ランに関連して達成された平均実行減少を指定する。ロング・ラン・ワーク・ロード及びこの技術のワーク・ロードの両方に対する再生品質は、同一、即ち同一フレーム速度及びドロップなしフレームであった。
その結果は、この技術が必要な実行レベルを既知のロング・ラン技術より正確に予測可能となることを示している。正確さの増加は、ベンチ・マークの実行中にプロセッサの平均実行レベルの11%〜35%の減少に帰結する。ワーク・ロードのラン間のワーク量は、同一のままであるので、この技術のインテリジェント・エネルギ管理者がエネーブルされているときに、アイドル時間及びスリープ時間を減少したことを意味する下位平均実行レベルを期待することができる。この例外は、シミュレーション結果により確認された。同様に、これらのデッド・ラインと正確に一致するフレーム数は、この技術のインテリジェント・エネルギ・マネジャをエネーブルしたときに、増加し、かつ、デコードがそのデッド・ラインの前であるときは、時間の累積量が減少する。
更に、中間実行レベル(図9の表の各列において太字により強調されている)は、顕著な減少を示している。一方、殆どのベンチ・マークにおいて、この技術による実行設定アルゴリズムは、実行時間の最大部分に対するピーク以下の単一実行レベル上に落ち着くのに対し(>88%)、ロング・ランは、通常、全速度をランするようにプロセッサを設定する。この一般的な規則に対する例外は、「ケーブルのダンス(Danse De Cable)」ワーク・ロードであり、この技術による実行設定アルゴリズムは、2つの最低実行レベルに落ち着き、これらの2レベル間で発振する。この発振行動に対する理由付けは、クルーゾ・プロセッサにおける特殊実行レベルのためである。この技術による実行設定アルゴリズムは、300MHzよりやや高いだけの実行レベルを選択するように選択されたので、300MHz値以上及び以下で変動する行レベル予測として、目標実行レベルは、最も近い2つの実行レベルに等化された。既知のロング・ラン技術とこの技術との間の実行において最も顕著な差は、ロング・ランが顕著なプロセッサ活動量を検出したときに、急速に実行レベルを増大させるオーバ・コーションとなるように見えることである。
全てのワーク・ロードに亘って、ロング・ランによる平均プロセッサ実行レベルは、80%以下に決して低下することはなく、一方、この技術により設定された実行レベルは、「赤の悪夢」ベンチ・マークに対して52%程度まで低下する。この技術によるアルゴリズムは、ロング・ランより攻撃的であるが、しかし、サーバの品質が妥協的であると見えるときは、速やかに応答する。ロング・ランは、インタラクティブ実行についての情報を有していないので、より短い時間上で保守的に行動するように強いられ、シミュレーション結果は、これが非能率に至ることを示す。
図10は、「伝説(図10A)及び「ケーブルのダンス」(図10B)」と題する異なる2つの異なるMPEG映画の再生に関する結果の2グラフを示す。各グラフは、ロング・ラン及びこの技術の両方に対する4プロセッサ実行レベル(300、400、500、600MHz)のそれぞれにおいて費やされた時間比を示す。各ランの再生品質は、同一であったが、この技術によるアルゴリズムを使用することは、ロング・ラン技術が実行レベルを指定したときに行ったものより、プロセッサが下のピーク実行でかなり長く費やすことを意味することがこれらのグラフから判る。図10Aに描いた「伝説」映画の再生に関する結果は、この技術によるアルゴリズムが500MHzの実行レベルで確定することを示す。図10Bに示す「ケーブルのダンス」映画に関する結果は、この技術によるアルゴリズムを使用して、プロセッサが2実行レベル、即ち、300MHzと400MHzとの間で切り換えられることを明らかにしている。これに対し、これらの映画の両方の場合に、ロング・ラン実行設定アルゴリズムは、実行時間の支配的な部分に対して600MHzのピーク・プロセッサ速度を選択する。
図11は、2つの異なる実行設定ポリシの特性への品質評価を提供する。ロング・ランは、速い連続で上下する実行レベルの切り換えを保持しており、一方、この技術により制御されたときに、システムのプロセッサ実行レベルは、目標実行レベルに近い。図11Aの2つの表(最上列)は、エネーブルされたロング・ランによりベンチ・マーク・ラン中のプロセッサの実行レベルを示す。図11B及び11C(中段及び下段の列)は、エネーブルされたこの技術によるアルゴリズムによることを除き、同一ベンチ・マークついての実行レベル結果を示す。図11Bは、実行中の実際の実行レベルを示し、一方、図11Cは、この技術による実行設定アルゴリズムが任意の実行レベル(同一の最大実行を与える)でランできることをプロセッサに要求することになる実行レベルを反映している。いくつかの場合に、この技術によるアルゴリズムにより計算された所望の実行レベルは、実際には、プロセッサ上の最小達成可能実行レベルであることに注意すべきである。
ここで、インタラクティブ・ワークロード上で2技術の比較についてのシミュレーション結果を考える。インタラクティブ・ベンチ・マーク・ランを作成する際の困難のために、反復可能なインタラクティブ・ワーク・ロードは、評価するのにマルチメディアよりかなり困難である。この問題を回避するために、経験的測定を簡単なシミュレーション技術と組み合わせた。特に、本来のロング・ラン及びこの技術によるインテリジェント・エネルギ管理マネジャ120の制御により、インタラクティブ・ベンチ・マークをランさせたので、プロセッサの実行レベルを実際に変更させることなく、実行したであろう実行設定判断を単に記録したが、しかしプロセッサの実行レベルを実際に変化させるものではない。
図12は、インタラクティブ・ワーク・ロードを評価するシミュレーション・ラン中に収集された実行データを示す。図12Aは、ロング・ラン技術用に時間(秒による)対百分率実行レベルの図表を示し、この場合に、プロットした結果は、測定中にプロセッサの実際の実行レベルに対応している。図12Bは、量子化した実行レベルのプロットであり、一方、図12Cは、プロセッサの制御にあったならば、この技術の実行設定アルゴリズムが設定することになる時間の関数として、原始実行レベルのプロットである。この技術によるアルゴリズムが実際に制御されているときは、その実行設定判断は、ロング・ランにより行ったものと異なるラン・タイム効果を有することに注意すべきである。このために、図12B及び12Cの図表上の時間軸は、近似とみなすべきである。
統計における時間スキュー問題を回避するために、ロング・ランの代わりに、この技術によるシミュレーションの受動実行レベル・トレースは、この技術の使用に起因すると思われる実行時間増大の影響を査定するために後処理された。実行レベル・トレース全体で見るよりも、インタラクティブ・エピソードのみに注目した。この技術のインタラクティブ実行設定アルゴリズムは、ユーザに直接影響する実行の期間長を見出す機能を含む。この技術は、どのアルゴリズムが制御にあるのかに関係のない有効な読み出しが得られ、従って我々の測定に集中するために使用された。インタラクティブ・エピソードに関する実行範囲を切り離したならば、ロング・ラン及びこの技術の両方について、エピソード中に行った全速度等価ワークを計算した。測定中に、ロング・ランは、CPU制御の速度にあり、最近の技術が制御にあれば行うことになるランより速くランするので、この技術に対応する結果のエピソード期間長は、長くする必要がある。第1に、この技術のために残りのワークを下記式により計算する。
Figure 2004164642
次に、この技術のアルゴリズムがその後パニックしきい値に到達するまで、その予測速度でランし続けるものと仮定して、このアルゴリズムは、どの程度インタラクティブ・エピソードの長さを延長する必要があるのかについて計算した。従って、統計は、調整される。この技術を使用した結果は、プロセッサの活性な制御のもとに、この技術によるアルゴリズムによってランしている同様のワーク・ロード(やや異なるインタラクティブ・ロードだが、同一のベンチ・マーク)上で我々が観察したものに近いことが判った。しかしながら、この技術によるアルゴリズムが実際に制御していたときは、実行設定決定数が減少し、かつ、実行レベルがより正確になった。
図13は、前述の時間スキュー補正技術を使用して収集された統計を示す。図表における6図表のそれぞれは、2スタック列を有する。各図表の左側の列は、ロング・ランに関連し、一方、右側の列は、この技術に関連する。各列は、コンピュータによりサポートされた4実行レベルのそれぞれにおいて、インタラクティブ・エピソードに費やす時間比を表すようにスタックされる。これらの実行レベル(ボトム・アップによる)は、100MHz増分で300MHzから600MHzまでである。この技術によるアルゴリズムは、高いレベルからのものであっても、低い実行レベルでロング・ランより多くの時間を費やすことが明らかである。イーマック(Emac)(R)のようないくつかのベンチ・マーク上では、マシンは、その最低可能実行レベルに留まると同時に、高速にする必要性など殆どなく、インタラクティブ・デッドラインは、適合する。スペクトルの他端には、2モードの挙動を示し、即ち、プロセッサがそのピーク・レベルか又はその最小でランするアクロバット・リーダ・ベンチ・マークがある。このベンチ・マーク上であっても。インタラクティブ・エピソードの多くは、プロセッサの最小実行レベルで時間内に完了することができる。しかしながら、複数のページをレンダリングすることになったときに、ピーク実行レベルは、ユーザ知覚しきい値内でそのデッド・ラインを完了するのに十分でない。従って、十分に長いインタラクティブ・エピソードに遭遇すると、この技術によるアルゴリズムは、プロセッサ実行レベルをそのピークに切り換える。これに対して、この技術によるアルゴリズムは、コンカラ(Konqueror)のラン中に、プロセッサの全部で4利用可能実行レベルの利点を取ることができる。これは、プロセッサをその時間の殆どをピーク・レベルで費やすようにさせるロング・ラン戦略と比較される。
総合的に、図8〜13を参照して以上で詳細に説明したシミュレーション結果は、ソフトウェア階層構造において異なるレベルで実施された2実行設定ポリシが種々のマルチメディア及びインタラクティブ・ワーク・ロード上の振る舞いを示した。プロセッサのファームウェアに実施されているトランスメータ・ロング・ラン電力マネジャ(Transmeta LongRun power manager)は、オペレーティング・システムのカーネルに実施されているこの技術によるアルゴリズムより控え目な選択をさせることが判った。一組のマルチメディア・ベンチマーク上で、11%〜35%平均ピーク・レベル減少は、既知のロング・ラン技術を使用して達成されたもの以上に、この技術によるアルゴリズムにより達成された。
この技術による実行設定アルゴリズムは、ソフトウェア・スタックにおいてロング・ランより高く実施されているので、より豊富な一組のラン・タイム情報に基づいて決定することができ、これが続いて変換の精度を高める。
ロング・ランのファームウェア・アプローチは、カーネルに実施されたアルゴリズムより精度が劣ることが示されたが、これはその有用性を損なうものではない。ロング・ランは、オペレーティング・システムの懐疑論者であるというきびしい利点を有している。低レベルの実施と高レベルの実施との間のギャップは、ロング・ランのようなベース・ライン実行設定アルゴリズムを提供し、かつ、プロセッサ実行設定の決定を(任意選択的に)改善するためにオペレーティング・システムに対するインターフェースをさらけ出すことにより、解消され得ることが認識される。この技術による実行設定アルゴリズム階層構造は、このような設計をサポートする機構を提供する。スタック上で最低の実行設定ポリシは、プロセッサのファームウェアにおいて実際に実施可能とされる。
ここでは、添付図面を参照して本発明の実施例を詳細に説明したが、本発明は厳密にこれらの実施例に限定されるものではなく、かつ別記する請求項ごとにより定義されているように、本発明の範囲及び精神から逸脱することなく、当該技術分野に習熟する者によって種々の変化及び変更を実施ことができることを理解すべきである。
どのようにしてデータ処理システムにおいて本技術による電力管理システムを実施できるのかを概要的に示す。 本発明による実行設定アルゴリズムの3階層構造層を概要的に示す。 インタラクティブ・エピソード中にプロセッサ実行レベルを設定する戦略を示す。 プロセッサ上のワーク・ロードの実行及びタスクA用の利用歴ウインドウの計算を概要的に示す。 図2の3層の階層構造実行ポリシ・スタックの実施を概要的に示す。 本技術によるワーキング・トラッキング・カウンタ600を概要的に示す。 ワーク・ロード特性に従って多数の異なる固定実行レベルを提供可能な装置を概要的に示す。 種々のMPEGビデオを再生する「プレイエムペグ(plaympeg)」ビデオ・プレーヤに関するシミュレーション測定結果の詳細を示すテーブルである。 各ワーク・ロードのランにおける実行レベル統計をリストにより示すテーブルである。 Aは、「伝説(Legendary)(図10A)と題する異なるMPEG映画の再生に関する結果のグラフを示す。Bは、「ケーブルのダンス(Dance de Cable)」(図10B)」と題する異なるMPEG映画の再生に関する結果のグラフを示す。 2つの実行設定ポリシの特性を概要的に示す。 インタラクティブ・ワーク・ロード上でテストした異なる実行設定アルゴリズムに関するシミュレータ結果を概要的に示す。 時間スキュー補正技術を使用して集めた統計を概要的に示す。
符号の説明
100 カーネル
110 標準カーネル
112 システム・コール・モジュール
114 スケジューラ
116 通常電力マネジャ
120 インテリジェント・エネルギ管理マネジャ
122 ポリシ・コディネータ
124 実行設定制御モジュール
126 イベント・トレース・モジュール
130 ユーザ処理層
136 アプリケーション特定データ
140 アプリケーション・モニタリング・モジュール

Claims (60)

  1. 複数の異なる実行レベルで動作可能なデータ処理装置により使用される実行レベルを選択する方法において、
    複数の実行要求計算アルゴリズムのうちからそれぞれ1つを使用して複数の実行要求を計算するステップと、
    前記複数の実行要求を組み合わせてグローバル実行要求を形成するステップと、
    前記グローバル実行要求に従って前記複数の異なる実行レベルの中から前記データ処理装置により使用されるべき前記実行レベルを選択するステップと、
    を含む前記方法。
  2. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、前記複数の実行要求計算アルゴリズムの他方から独立して実行要求を計算する請求項1記載の方法。
  3. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、検出された前記データ処理装置の動作特性に基づいて実行要求を計算する請求項1記載の方法。
  4. 前記選択するステップは、前記計算するステップ及び組み合わせるステップから時間的に独立している請求項1記載の方法。
  5. 前記複数の実行要求計算アルゴリズムは、互いに時間的に独立している請求項1記載の方法。
  6. 前記複数の実行要求計算アルゴリズムは、実行要求計算アルゴリズムの階層構造に関連され、実行要求計算アルゴリズムからの実行要求は、実行要求計算アルゴリズムの階層構造内で前記実行要求計算アルゴリズムの位置から独立した他の実行要求と組み合わされる請求項1記載の方法。
  7. 前記実行要求計算アルゴリズムの階層構造は、完全に順序付けられている請求6記載の方法。
  8. 前記実行要求計算アルゴリズムの階層構造は、部分的に順序付けられ、かつ階層構造共通レベル上で複数の実行要求計算アルゴリズムからの複数の要求を組み合わせるオペレータを設ける請求項6記載の方法。
  9. 前記オペレータは、最大値セレクタである請求項8記載の方法。
  10. 前記第1の実行要求計算アルゴリズムが前記実行要求計算アルゴリズムの階層構造内に前記第2の優先順位実行要求計算アルゴリズムより優位位置を有するとき、第1の優先順位実行要求計算アルゴリズムからの第1の優先順位実行要求は、第2の優先順位実行要求計算アルゴリズムからの第2の優先順位実行要求より優先する請求項6記載の方法。
  11. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、どのようにして実行要求を他の実行要求と組み合わせるべきかを指定する実行要求を随伴するコマンドを発生する請求項1記載の方法。
  12. 前記コマンドは、前記実行要求計算アルゴリズムの階層構造において低い優位位置を有する実行計算アルゴリズムからの実行要求より、前記実行要求を優先させることを指定する請求項6記載の方法。
  13. 前記コマンドは、前記実行要求計算アルゴリズムの階層構造において、低い優位位置にある実行計算アルゴリズムからの下位実行レベルの実行要求に優先して、前記実行要求を選択すべきことを指定する請求項6記載の方法。
  14. 前記コマンドは、他のどのような実行要求であっても前記実行要求を無視すべきことを指定する請求項11記載の方法。
  15. 前記複数の実行要求は、前記実行要求計算アルゴリズムの階層構造内で最低の優位位置を有する実行要求計算アルゴリズムの実行要求から開始し、前記実行要求計算アルゴリズムの階層構造内の最高の優位位置を有する実行要求計算アルゴリズムからの実行要求まで作動して組み合わされる請求項6記載の方法。
  16. 前記計算ステップ、組合わせステップおよび選択ステップのうちの少なくともいくつかのステップは、
    オペレーティング・システム・カーネル、
    前記データ処理装置のファームウェア、
    前記データ処理装置のハードウェア、
    のうちの1以上により実行される請求項1記載の方法。
  17. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、リアル・タイム・オペレーティング・システム・カーネルからのデッド・ライン情報に対して応答する請求項1記載の方法。
  18. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、オペレーティング・システム・カーネルからの情報に対して応答する請求項1記載の方法。
  19. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、アプリケーション・プログラム、装置またはデバイス・ドライバからの情報に応答する請求項1記載の方法。
  20. 前記情報は、動作条件における変化を表し、かつ前記少なくとも1つの実行要求計算アルゴリズムは、前記情報に応答して前記複数の実行要求のうちの1つを再計算するように動作可能とする請求項19記載の方法。
  21. 複数の異なる実行レベルで動作可能なデータ処理装置により使用されるべき実行レベルを選択する装置において、
    複数の実行要求計算アルゴリズムのうちから、それぞれ1つを使用して複数の実行要求を計算するように動作可能な計算ロジックと、
    前記複数の実行要求を組み合わせてグローバル実行要求を形成するように動作可能な組合わせロジックと、
    前記グローバル実行要求に従って前記複数の異なる実行レベルの中から前記データ処理装置により使用されるべき前記実行レベルを選択するように動作可能な選択ロジックと、
    を含む前記装置。
  22. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、前記複数の実行要求計算アルゴリズムのうちの他方から独立して実行要求を計算する請求項21記載の装置。
  23. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、前記データ処理装置について検出された動作特性に基づいて実行要求を計算する請求項21記載の装置。
  24. 前記選択するステップは、前記計算するステップおよび前記組合わせるステップから時間的に独立している請求項21記載の方法。
  25. 前記複数の実行要求計算アルゴリズムは、互いに時間的に独立している請求項21記載の装置。
  26. 前記複数の実行要求計算アルゴリズムは、実行要求計算アルゴリズムの階層構造に関連され、実行要求計算アルゴリズムからの実行要求は、実行要求計算アルゴリズムの階層構造内で前記実行要求計算アルゴリズムの位置から独立した他の実行要求と組み合わされる請求項21記載の装置。
  27. 前記実行要求計算アルゴリズムの階層構造は、完全に順序付けられている請求26記載の装置。
  28. 前記実行要求計算アルゴリズムの階層構造は、部分的に順序付けられ、かつ階層構造共通レベル上で複数の実行要求計算アルゴリズムからの複数の要求を組み合わせるオペレータを設けている請求項26記載の装置。
  29. 前記オペレータは、最大値セレクタである請求項28記載の装置。
  30. 前記第1の実行要求計算アルゴリズムが前記実行要求計算アルゴリズムの階層構造内に前記第2の優先順位実行要求計算アルゴリズムより優位位置を有するとき、第1の優先順位実行要求計算アルゴリズムからの第1の優先順位実行要求は、第2の優先順位実行要求計算アルゴリズムからの第2の優先順位実行要求より優先する請求項26記載の装置。
  31. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、どのようにして実行要求を他の実行要求と組み合わせるべきかを指定する実行要求を伴うコマンドを発生する請求項21記載の装置。
  32. 前記コマンドは、前記実行要求計算アルゴリズムの階層構造において低い優位位置を有する実行計算アルゴリズムからの実行要求より、前記実行要求を優先させることを指定する請求項26記載の装置。
  33. 前記コマンドは、前記実行要求計算アルゴリズムの階層構造において低い優位位置にある実行計算アルゴリズムからの下位実行レベル実行要求に優先して、前記実行要求を選択すべきことを指定する請求項26記載の装置。
  34. 前記コマンドは、他のどのような実行要求であっても前記実行要求を無視すべきことを指定する請求項31記載の装置。
  35. 前記複数の実行要求は、前記実行要求計算アルゴリズムの階層構造内の最低の優位位置を有する実行要求計算アルゴリズムからの実行要求から開始し、前記実行要求計算アルゴリズムの階層構造内の最高の優位位置を有する実行要求計算アルゴリズムからの実行要求まで作動して組み合わされる請求項26記載の装置。
  36. 前記計算ステップ、組合わせステップおよび選択ステップのうちの少なくともいくつかのステップは、
    オペレーティング・システム・カーネル、
    前記データ処理装置のファームウェア、
    前記データ処理装置のハードウェア、
    のうちの1以上により実行される請求項21記載の装置。
  37. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、リアル・タイム・オペレーティング・システム・カーネルからのデッド・ライン情報に対して応答する請求項21記載の装置。
  38. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、オペレーティング・システム・カーネルからの情報に対して応答する請求項21記載の装置。
  39. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、アプリケーション・プログラム、装置又はデバイス・ドライバからの情報に応答する請求項21記載の装置。
  40. 前記情報は、動作条件における変化を表し、かつ、前記少なくとも1つの実行要求計算アルゴリズムは、前記情報に応答して前記複数の実行要求のうちの1つを再計算するように動作可能とする請求項39記載の装置。
  41. コンピュータを制御して前記コンピュータにより使用される実行レベルを選択するコンピュータ・プログラムを搭載したコンピュータ・プログラム・プロダクトにおいて、
    複数の実行要求計算アルゴリズムのうちから、それぞれ1つを使用して複数の実行要求を計算するように動作可能な計算コード、
    前記複数の実行要求を組み合わせてグローバル実行要求を形成するように動作可能な組合わせコード、及び
    前記グローバル実行要求に従って前記複数の異なる実行レベルのうちから前記データ処理装置により使用されるべき前記実行レベルを選択するように動作可能な選択コード、
    を含む前記コンピュータ・プログラム。
  42. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、前記複数の実行要求計算アルゴリズムの他方から独立して実行要求を計算する請求項41記載のコンピュータ・プログラム・プロダクト。
  43. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、検出された前記コンピュータの動作特性に基づく実行要求を計算する請求項41記載のコンピュータ・プログラム・プロダクト。
  44. 前記選択するステップは、前記計算するステップ及び組み合わされるステップから時間的に独立している請求項41記載のコンピュータ・プログラム・プロダクト。
  45. 前記複数の実行要求計算アルゴリズムは、互いに時間的に独立している請求項41記載のコンピュータ・プログラム・プロダクト。
  46. 前記複数の実行要求計算アルゴリズムは、実行要求計算アルゴリズムの階層構造に関連され、実行要求計算アルゴリズムからの実行要求は、実行要求計算アルゴリズムの階層構造内で前記実行要求計算アルゴリズムの位置から独立した他の実行要求と組み合わされる請求項41記載のコンピュータ・プログラム・プロダクト。
  47. 前記実行要求計算アルゴリズムの階層構造は、完全に順序付けられている請求項46記載のコンピュータ・プログラム・プロダクト。
  48. 前記実行要求計算アルゴリズムの階層構造は、部分的に順序付けられ、かつ、階層構造共通レベル上で複数の実行要求計算アルゴリズムからの複数の要求を組み合わせるオペレータを設けている請求項46記載のコンピュータ・プログラム・プロダクト。
  49. 前記オペレータは、最大値セレクタである請求項48記載のコンピュータ・プログラム・プロダクト。
  50. 前記第1の実行要求計算アルゴリズムが前記実行要求計算アルゴリズムの階層構造内に前記第2の優先順位実行要求計算アルゴリズムより優位位置を有するとき、第1の優先順位実行要求計算アルゴリズムからの第1の優先順位実行要求は、第2の優先順位実行要求計算アルゴリズムからの第2の優先順位実行要求より優先する請求項46記載のコンピュータ・プログラム・プロダクト。
  51. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、どのようにして実行要求を他の実行要求と組み合わせるかを指定する実行要求を随伴するコマンドを発生する請求項41記載のコンピュータ・プログラム・プロダクト。
  52. 前記コマンドは、前記実行要求が前記実行要求計算アルゴリズムの階層構造において低い優位位置を有する実行計算アルゴリズムからの実行要求より優先することを指定する請求項46記載のコンピュータ・プログラム・プロダクト。
  53. 前記コマンドは、前記実行要求が前記実行要求計算アルゴリズムの階層構造において低い優位位置にある実行計算アルゴリズムからの下位実行レベル実行要求に優先して選択されるべきことを指定する請求項46記載のコンピュータ・プログラム・プロダクト。
  54. 前記コマンドは、前記実行要求が他のどのような実行要求であっても無視されることを指定する請求項51記載のコンピュータ・プログラム・プロダクト。
  55. 前記複数の実行要求は、前記実行要求計算アルゴリズムの階層構造内で最低の優位位置を有する実行要求計算アルゴリズムからの実行要求から開始し、前記実行要求計算アルゴリズムの階層構造内の最高の優位位置を有する実行要求計算アルゴリズムからの実行要求まで作動して組み合わされる請求項46記載のコンピュータ・プログラム・プロダクト。
  56. 前記計算ステップ、組合わせステップ及び選択ステップのうちの少なくともいくつかは、
    オペレーティング・システム・カーネル、
    前記データ処理装置のファームウェア、
    前記データ処理装置のハードウェア、
    のうちの1以上により実行される請求項46記載のコンピュータ・プログラム・プロダクト。
  57. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、リアル・タイム・オペレーティング・システム・カーネルからのデッド・ライン情報に対して応答する請求項41記載のコンピュータ・プログラム・プロダクト。
  58. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、オペレーティング・システム・カーネルからの情報に対して応答する請求項41記載のコンピュータ・プログラム・プロダクト。
  59. 前記複数の実行要求計算アルゴリズムのうちの少なくとも1つは、アプリケーション・プログラム、装置又はデバイス・ドライバからの情報に応答する請求項41記載のコンピュータ・プログラム・プロダクト。
  60. 前記情報は、動作条件における変化を表し、かつ、前記少なくとも1つの実行要求計算アルゴリズムは、前記情報の受信に応答して前記複数の実行要求のうちの1つを再計算するように動作可能である請求項59記載のコンピュータ・プログラム・プロダクト。
JP2003380064A 2002-11-12 2003-11-10 データ処理システムにおけるピーク・レベル選択 Pending JP2004164642A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0226395A GB0226395D0 (en) 2002-11-12 2002-11-12 Automatic performance setting
GB0228547A GB0228547D0 (en) 2002-12-06 2002-12-06 Performance level selection in a data processing system
GB0305436A GB2395309A (en) 2002-11-12 2003-03-10 Performance level selection in a data processing system

Publications (1)

Publication Number Publication Date
JP2004164642A true JP2004164642A (ja) 2004-06-10

Family

ID=32718558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003380064A Pending JP2004164642A (ja) 2002-11-12 2003-11-10 データ処理システムにおけるピーク・レベル選択

Country Status (2)

Country Link
US (2) US7131015B2 (ja)
JP (1) JP2004164642A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013542491A (ja) * 2010-09-16 2013-11-21 クアルコム,インコーポレイテッド 性能スケーリングアルゴリズムのセットを公開して管理するためのモバイルデバイスおよび方法
JP2013546101A (ja) * 2010-12-16 2013-12-26 マイクロソフト コーポレーション 物理的環境のカーネル認識

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7131015B2 (en) * 2002-11-12 2006-10-31 Arm Limited Performance level selection in a data processing system using a plurality of performance request calculating algorithms
US7466996B2 (en) * 2003-12-22 2008-12-16 International Business Machines Corporation Global management of local link power consumption
US7739532B2 (en) * 2004-06-07 2010-06-15 Intel Corporation Method, apparatus and system for enhanced CPU frequency governers
US8261122B1 (en) * 2004-06-30 2012-09-04 Symantec Operating Corporation Estimation of recovery time, validation of recoverability, and decision support using recovery metrics, targets, and objectives
US7761874B2 (en) * 2004-08-13 2010-07-20 Intel Corporation Managing processing system power and performance based on utilization trends
US20160170456A9 (en) * 2004-09-30 2016-06-16 Intel Corporation Power management integrated circuit
US7543161B2 (en) * 2004-09-30 2009-06-02 International Business Machines Corporation Method and apparatus for tracking variable speed microprocessor performance caused by power management in a logically partitioned data processing system
US7711713B2 (en) * 2004-10-21 2010-05-04 International Business Machines Corporation System for deterministic database recovery time
US7600135B2 (en) * 2005-04-14 2009-10-06 Mips Technologies, Inc. Apparatus and method for software specified power management performance using low power virtual threads
US7627770B2 (en) * 2005-04-14 2009-12-01 Mips Technologies, Inc. Apparatus and method for automatic low power mode invocation in a multi-threaded processor
US7434072B2 (en) * 2005-04-25 2008-10-07 Arm Limited Integrated circuit power management control
US7386739B2 (en) * 2005-05-03 2008-06-10 International Business Machines Corporation Scheduling processor voltages and frequencies based on performance prediction and power constraints
US7392159B2 (en) * 2005-06-20 2008-06-24 International Business Machines Corporation Method and apparatus of capacity learning for computer systems and applications
US7401243B2 (en) * 2005-06-21 2008-07-15 Dell Products L.P. Demand-based dynamic clock control for transaction processors
US7937706B2 (en) * 2005-08-22 2011-05-03 Runtime Design Automation, Inc. Method and system for performing fair-share preemption
US7606906B2 (en) * 2005-10-28 2009-10-20 International Business Machines Corporation Bundling and sending work units to a server based on a weighted cost
US20070266385A1 (en) * 2006-05-11 2007-11-15 Arm Limited Performance level setting in a data processing system
US7756911B2 (en) * 2006-06-09 2010-07-13 International Business Machines Corporation Method and system for executing a task and medium storing a program therefor
GB2445167A (en) * 2006-12-29 2008-07-02 Advanced Risc Mach Ltd Managing performance of a processor
US8869152B1 (en) * 2007-01-11 2014-10-21 Marvell International Ltd. Methods and procedures to dynamically adjust processor frequency
JP4598022B2 (ja) * 2007-05-31 2010-12-15 株式会社東芝 情報処理装置
US20080319910A1 (en) * 2007-06-21 2008-12-25 Microsoft Corporation Metered Pay-As-You-Go Computing Experience
US7917789B2 (en) * 2007-09-28 2011-03-29 Intel Corporation System and method for selecting optimal processor performance levels by using processor hardware feedback mechanisms
TWI349228B (en) * 2007-10-17 2011-09-21 Ind Tech Res Inst Speed-level calculator and calculating method for dynamic voltage scaling
FR2930355B1 (fr) * 2008-04-18 2013-01-18 Commissariat Energie Atomique Procede de gestion de la consommation d'energie pour les systemes multiprocesseurs.
US8161493B2 (en) * 2008-07-15 2012-04-17 International Business Machines Corporation Weighted-region cycle accounting for multi-threaded processor cores
US20100058086A1 (en) * 2008-08-28 2010-03-04 Industry Academic Cooperation Foundation, Hallym University Energy-efficient multi-core processor
US8918657B2 (en) 2008-09-08 2014-12-23 Virginia Tech Intellectual Properties Systems, devices, and/or methods for managing energy usage
TWI397808B (zh) * 2009-07-16 2013-06-01 Via Tech Inc 多處理器系統及其動態省電方法
US8671413B2 (en) * 2010-01-11 2014-03-11 Qualcomm Incorporated System and method of dynamic clock and voltage scaling for workload based power management of a wireless mobile device
US8881117B2 (en) * 2010-03-12 2014-11-04 XMOS Ltd. Structural analyser
US7917954B1 (en) * 2010-09-28 2011-03-29 Kaspersky Lab Zao Systems and methods for policy-based program configuration
US20130103212A1 (en) * 2010-06-30 2013-04-25 Nokia Corporation Method and apparatus for providing context-based power consumption control
US8320898B2 (en) 2010-09-16 2012-11-27 Qualcomm Incorporated Systems and methods for optimizing the configuration of a set of performance scaling algorithms
US8478567B2 (en) 2010-09-28 2013-07-02 Qualcomm Incorporated Systems and methods for measuring the effectiveness of a workload predictor on a mobile device
CN103946765B (zh) * 2011-11-22 2017-11-17 英特尔公司 协同处理器以及系统性能和功率管理
US9026817B2 (en) * 2012-06-29 2015-05-05 Intel Corporation Joint optimization of processor frequencies and system sleep states
US9632566B2 (en) * 2012-09-27 2017-04-25 Apple Inc. Dynamically controlling power based on work-loop performance
US9110735B2 (en) * 2012-12-27 2015-08-18 Intel Corporation Managing performance policies based on workload scalability
US9348359B2 (en) * 2013-01-31 2016-05-24 Red Hat, Inc. Updating a desired tick rate for a kernel
US20150186157A1 (en) * 2013-12-28 2015-07-02 Guy M. Therien Techniques for workload scalability-based processor performance state control
US20150309552A1 (en) * 2014-04-25 2015-10-29 Qualcomm Innovation Center, Inc. Enhancement in linux ondemand governor for periodic loads

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218704A (en) * 1989-10-30 1993-06-08 Texas Instruments Real-time power conservation for portable computers
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US5734585A (en) * 1994-11-07 1998-03-31 Norand Corporation Method and apparatus for sequencing power delivery in mixed supply computer systems
US6272642B2 (en) * 1998-12-03 2001-08-07 Intel Corporation Managing a system's performance state
US6823516B1 (en) * 1999-08-10 2004-11-23 Intel Corporation System and method for dynamically adjusting to CPU performance changes
KR100613201B1 (ko) * 2000-08-28 2006-08-18 마이크로코넥트 엘엘씨 씨피유 사용량 측정 방법
US6829713B2 (en) * 2000-12-30 2004-12-07 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US6895520B1 (en) * 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
US6845456B1 (en) * 2001-05-01 2005-01-18 Advanced Micro Devices, Inc. CPU utilization measurement techniques for use in power management
FR2830824A1 (fr) * 2001-10-17 2003-04-18 Michelin Soc Tech Actions sur la trajectoire d'un vehicule a partir de la mesure des efforts transversaux, en tenant compte de son inertie
US7131015B2 (en) * 2002-11-12 2006-10-31 Arm Limited Performance level selection in a data processing system using a plurality of performance request calculating algorithms

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013542491A (ja) * 2010-09-16 2013-11-21 クアルコム,インコーポレイテッド 性能スケーリングアルゴリズムのセットを公開して管理するためのモバイルデバイスおよび方法
JP2013546101A (ja) * 2010-12-16 2013-12-26 マイクロソフト コーポレーション 物理的環境のカーネル認識
US10346276B2 (en) 2010-12-16 2019-07-09 Microsoft Technology Licensing, Llc Kernel awareness of physical environment

Also Published As

Publication number Publication date
US7512820B2 (en) 2009-03-31
US20070011476A1 (en) 2007-01-11
US7131015B2 (en) 2006-10-31
US20040139302A1 (en) 2004-07-15

Similar Documents

Publication Publication Date Title
JP2004164642A (ja) データ処理システムにおけるピーク・レベル選択
JP2004164643A (ja) データ処理システムにおける実行レベル設定
US7321942B2 (en) Performance counter for adding variable work increment value that is dependent upon clock frequency
US20080162965A1 (en) Managing performance of a processor in a data processing image
JP5312478B2 (ja) データ・プロセッサのパフォーマンス予測
US8856791B2 (en) Method and system for operating in hard real time
KR100864964B1 (ko) 연산처리시스템 및 연산처리 제어방법, 업무관리시스템 및업무관리방법과 기억매체
CN101379453B (zh) 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置
JP4123640B2 (ja) 情報処理システム及びその制御方法、タスク割当て制御方法及び制御装置、並びにプログラム提供媒体
US8136113B2 (en) Method and apparatus for adjusting sleep time of fixed high-priority threads
JP2005346301A (ja) タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム
JP2011022627A (ja) 計算機システム、仮想計算機モニタ及び仮想計算機モニタのスケジューリング方法
JPWO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
JP2005285093A (ja) プロセッサ電力制御装置及びプロセッサ電力制御方法
US20070266385A1 (en) Performance level setting in a data processing system
Sahin et al. MAESTRO: Autonomous QoS management for mobile applications under thermal constraints
US9632566B2 (en) Dynamically controlling power based on work-loop performance
GB2402504A (en) Processor performance calculation
GB2395309A (en) Performance level selection in a data processing system
CN110647401B (zh) 调频方法、调频装置、存储介质与电子设备
KR100838438B1 (ko) 태스크 관리방법, 태스크 관리장치, 반도체 집적회로, 전자장치, 태스크 관리 시스템, 및 프로그램을 격납한 기록매체
GB2395310A (en) Data processing system performance counter
Kim et al. Power-Aware Resource Management Techniques for Low-Power Embedded Systems.
US20170269667A1 (en) Electronic device and energy saving method
Ellis Dynamic Voltage Scheduling (DVS)