JP2004164643A - データ処理システムにおける実行レベル設定 - Google Patents

データ処理システムにおける実行レベル設定 Download PDF

Info

Publication number
JP2004164643A
JP2004164643A JP2003380081A JP2003380081A JP2004164643A JP 2004164643 A JP2004164643 A JP 2004164643A JP 2003380081 A JP2003380081 A JP 2003380081A JP 2003380081 A JP2003380081 A JP 2003380081A JP 2004164643 A JP2004164643 A JP 2004164643A
Authority
JP
Japan
Prior art keywords
task
execution
given processing
work
value
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
JP2003380081A
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 GB0228546A external-priority patent/GB0228546D0/en
Priority claimed from GB0305442A external-priority patent/GB2402504A/en
Application filed by ARM Ltd, Advanced Risc Machines Ltd, University of Michigan filed Critical ARM Ltd
Publication of JP2004164643A publication Critical patent/JP2004164643A/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
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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

【課題】複数の処理タスクを実行する際に、プロセッサの利用履歴からプロセッサの目標プロセッサ実行レベルを計算する方法、コンピュータ・プログラム・プロダクト及び装置を提供する。
【解決手段】所定のタスク時間間隔内で与えられた処理タスクを実行する際にプロセッサ利用を表示するタスク・ワーク値を計算し、タスク・ワーク値に従って異なる目標プロセッサ実行レベルを計算する。所定のタスク時間間隔は、複数の処理タスクのそれぞれについて独立して設定され、与えられた処理タスクの第1のスケジュールの開始から処理タスクの次のスケジュールの開始までの期間である。
【選択図】図1

Description

本発明は、データ処理システムに関する。特に、本発明は、プロセッサを異なる複数のプロセッサ実行レベルに設定可能にするデータ処理システムにおける実行レベル設定に関する。
プロセッサ設計の重要な目的は、改良された性能を提供することであり、かつ電力消費を減少させることである。最近のいくつかのプロセッサは、その時点でプログラム・アプリケーション(複数)の必要条件に従って、異なる多数のプロセッサ実行レベルのうちの1レベルにプロセッサを設定する能力を提供している。このようなプロセッサは、プロセッサのクロック周波数及び対応する動作電圧を低下させることにより、エネルギ消費において二次式的な減少を潜在的に発生し得るという利点がある。しかしながら、プロセッサ性能の低下は、ユーザに認知される性能に影響がないか又は殆どないときにのみ受け入れられる。従って、プロセッサ実行レベルにおける低下は、ソフトウェアがその実行デッドラインを下回る結果になってはならないことが重要である。そのデッド・ライン以前に与えられた処理タスクを完了し、次いでアイドリングということは、もっとゆっくりタスクをランさせることよりエネルギ効率が悪く、従って、そのデッド・ラインをもっと正確に合わせることを保証することである。
既知の実行レベル設定技術は、いわゆる間隔ベース・アルゴリズムを含み、その主要な考えは、ワイザー他による「CPUエネルギを低下させるためのスケジュール(Scheduling for Reduced CPU Energy)」、1994年11月、オペレーティング・システム設計及び実施の第1シンポジウム報告(Proceeding of First Symposium of Operating systems Design and Implementation)に説明されている。このような既知の間隔ベース・アルゴリズムは、プロセッサ利用歴を監視して、固定した短い(10〜50ミリ秒)時間ウィンドウ内でアイドル時間対ビジー時間の比を計算することにより、適当な実行レベルの標識を導き出す。典型的には、最近の時間間隔内でグローバル・プロセッサ利用を計算し、これがあるしきい値より高いのであれば、プロセッサ実行レベルを高くし、一方、時間間隔が殆どアイドル時間になっているのであれば、実行レベルを低下させている。このような既知の技術は、規則的なワーク・ロードに対しては合理的にうまく働くが、不規則な(即ち、周期的でない)ワーク・ロードに対して及びインタラクティブ・アプリケーションに対しては、うまく行っていない。他の既知技術は、将来利用に対するガイドとしてプロセッサのグローバル利用の重み付け平均を使用する。しかしながら、これは、プロセッサ利用を大幅に改善し、かつアイドル時間を減少させることになるクロック速度を得るものではないことが示された。(グルンワルト(Grunwald)他による「ダイナミック・クロック計画のための方策(Policies for Dynamic Clock Schedulingを参照)、2000年10月、オペレーティング・システム設計及び実施の第4シンポジウム報告(Proceeding of the Fourth Symposium of Operating systems Design and Implementationを参照)に示された。
従って、例えば、不規則なワーク・ロード及びインタラクティブ・ワーク・ロードを含め、種々の範囲のワーク・ロードのために適当なプロセッサ実行レベルを正確に予測可能な実行レベル設定技術に対する必要性が存在する。
本発明は、複数の処理タスクを実行する際にプロセッサの利用履歴から目標プロセッサ実行レベルを計算する方法において、この方法は、
対応するタスク時間間隔内で与えられた処理タスクを実行する際にプロセッサ利用を表示するタスク・ワーク値を計算すること、
タスク・ワーク値に従って異なる目標プロセッサ実行レベルを計算することと、
を備えている。
本発明は、全てのタスクが不明瞭とされる恐れがあり、実行レベルを割り付けるときに競合が観察されるタスク・レベルで、個々の処理タスク(即ち、複数グループの処理タスク)は、しばしば識別可能な利用期間を有していることを認識することである。タスク・レベルにあるプロセッサ利用に注目すると、処理タスクの送出及びこれらに関連して必要とする実行レベルは、実行設定ポリシによって、更によく適合させることが可能とされる。本発明は、グローバル・ワーク・ロードにより指定される任意量によって、プロセッサ実行レベルを間接的に上下に設定するよりも、各処理タスクについて直接的な実行レベルを予測可能にする。
前回の単一時間ウィンドウに対するタスク・ワーク値は、その処理タスクに対する適当な将来実行レベルを予測するために使用可能とされる。しかしながら、好ましい実施例は、将来の実行レベルを予測するために、同一処理タスクの前回の複数実行に対応するタスク・ワーク値を組み合わせる。これは、特定のタスクに関して統計的により正確な実行レベル予測を提供する効果がある。
タスク時間間隔は、各処理タスクの各実行に対して固定値が設定されてもよいことを理解すべきである。しかしながら、実行予測システムは、各処理タスクに対してタスク時間間隔を独立して設定することにより、異なるワーク・ロード形式に対してより適応可能にされる。特に、インタラクティブ処理タスクに対しては、短い期間が適当と云えるのに対し、非インタラクティブ・タスクに対しては、比較的に長い期間がより適していると思われる。適当でない短い時間間隔を選択したときは、複数の実行レベル間で発振を発生させる恐れがある。各処理タスクに対して、タスク時間間隔を独立して設定可能にすると、安定な実行予測を確定する可能性を高くする。更に、与えられたタスクの各実行に対して独立して期間を設定すると、実行予測は、実行時点でワーク・ロードの部分を形成している他のタスクを考慮して、適応可能とされる。これらの共存する他のタスクは、タスク優先使用により与えられたタスク用の総実行時間に影響を与える恐れがある。
このタスク時間間隔は、その範囲内のどこかに与えられた処理タスクの実行を含む限り、柔軟性をもって定義されてもよい。しかしながら、好ましい実施例は、タスク時間間隔について、与えられた処理タスクの最初のスケジュールが開始し、かつ与えられた処理タスクの次の実行前に終了するときは、開始するように定義している。これは、実施するのが簡単であるという利点があり、かつタスク時間間隔が与えられた処理タスクの実行周波数と相関される。これは、この技術を周期的でない処理タスクに対して、より適当かつ適応可能な技術にする。
与えられた処理タスクの前回の複数実行に対するタスク・ワーク値は、異なる多数の方法により組み合わせられて、そのタスクに対する将来実行レベルを予測してもよく、例えば、タスク・ワーク値の平均又は重み付け平均が計算されてもよいことを理解すべきである。これは、最近計算されたタスク・ワーク値が平均に大きな影響を与えるのを可能にするので、タスク・ワークを組み合わせて指数関数的に減衰するワーク・ダン値を計算するために特に好都合である。
複数グループの関連タスクについて実行デッド・ラインを計算できるけれども、これは、プロセッサの実行を更に精密に同調可能にするので、タスク・ベースによる実行デッド・ラインを計算するのに好都合である。タスク・ワーク値及びタスク時間間隔内で検出されたアイドル時間は、タスク実行デッド・ラインを計算するために都合良く使用される。実行デッド・ラインは、タスク時間間隔中に優先する実行レベルを考慮して正規化可能とされるので、これは、タスクの前回実行を完了するために掛かったリアル・タイムを使用するよりも正確な予測が得られる。
タスク・ワーク値についての指数関数的な平均および与えられた処理タスク用の実行デッド・ラインのトラッキングを個別的に保持すると、タスク・ワーク値を測定した間隔長により、実行レベル予測を重み付けすることができるという利点がある。これは、最も長い時間間隔に関連したタスク・ワーク値が予測を支配するのを防止し、従って広範に変化するウィンドウ・サイズを補償する。
タスク・ワーク値は、対応するタスク時間ウィンドウ内に与えられた処理タスクの実行において、プロセッサ利用のみを含み得ることを理解すべきである。しかしながら、好ましい実施例は、与えられた処理タスクが他の異なる処理タスクによって優先使用されるときを検出し、かつワーク・ダン値に優先使用タスク(複数)のためのプロセッサの利用が含まれている。与えられたタスクの連続的な実行において、他の同一タスク(複数)が与えられたタスクに優先する可能性が高いことが期待される。タスク実行デッド・ライン及び実行レベル予測は、3優先使用タスクを考慮すべきであるということになる。
タスク時間ウィンドウは、与えられたタスクの実行時間及び実行周波数に従ってサイズの変更が許容されるが、上側しきい値は、タスク時間ウィンドウに対してセットされることが好ましい。これは、長いランの処理を防止することにより、適切でない実行レベルで実行し続ける優先使用をしないようにする利点がある。実行レベルの再計算は、タスク時間ウィンドウが上側しきい値に到達したときに開始される。
好ましい実施例において、実行レベルの設定方法は、オペレーティング・システムのカーネル内のソフトウェアに実施される。これは、ソフトウェアがより豊富な一組のラン・タイム情報に基づいて決定をすることができ、これが続いて精度の増加をもたらす。
更に他の特徴から見て、本発明は、複数の処理タスクを実行する際にプロセッサの利用履歴から目標プロセッサ実行レベルを計算する方法を提供するものであって、この方法は、
所定のタスク時間間隔内で与えられた処理タスクを実行する際にプロセッサ利用を表示するタスク・ワーク値を計算するステップと、
タスク・ワーク値に従って目標プロセッサ実行レベルを計算するステップと、
を備えている。
更に他の特徴から見て、本発明は、コンピュータを制御して複数の処理タスクを実行する際にプロセッサの利用履歴から、プロセッサの目標プロセッサ実行レベルを計算するコンピュータ・プログラムを搭載したコンピュータ・プログラム・プロダクトを提供するものであって、コンピュータ・プログラムは、
所定のタスク時間間隔内で与えられた処理タスクを実行する際にプロセッサ利用を表示するタスク・ワーク値を計算するように動作可能なタスク・ワーク値計算コードと、
タスク・ワーク値に従って目標プロセッサ実行レベルを計算するように動作可能な目標プロセッサ計算コードと、
を備えている。
以上、本発明の他の目的、特徴及び効果は、添付図面に関連して読む以下の実施例の詳細な説明から明らかとなる。
図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)技術により実施されたプロセッサのために、与えられたワーク・ロードに使用されたエネルギは、電圧の二乗に比例する。ポリシ・コディネータは、互いに異なるラン・タイム状況に適している多数の実行設定アルゴリズムを管理する。与えられた条件に対して最適の実行設定アルゴリズムは、ラン・タイムで選択される。実行設定制御モジュール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 2004164643
インタラクティブ・イメージ・ディスプレイ・エピソードに対して、しきい値を50msに設定してもよい。知覚しきい値の正しい値は、ユーザ及び達成したタスクの形式に従属するが、50msの固定値は階層構造のインタラクティブ・アルゴリズムに適していることが解った。下記の等式は、知覚しきい値より短いエピソードの実行要求を計算するために使用される。
ただし、全速の等価ワーク(Workfse)は、インタラクティブ・エピソードの開始から測定される。
中間階層構造レベルのアプリケーション特定実行インジケータ220は、実行レベル設定機能に注目したアプリケーション・プログラムのカテゴリにより出力される情報を収集により得られる。これらのプログラム・アプリケーションは、これら特定的な実行要求についてインテリジェント・エネルギ管理マネジャ120に特定の情報を(システム・コールを介して)提供するようにしていた。オペレーティング・システム及びアプリケーション・プログラムは、プリエンプトに関して、この通信を容易にするために新しいAPI要素を設けられてもよい。
知覚に基づく実行インジケータ230は、最近の利用歴に基づいてプロセッサの将来利用を予測する知覚に基づくアルゴリズムを実施することにより得られる。このアルゴリズムは、個別的な各タスクについて利用予測を導き出して、タスク・ベースによりタスク上で利用歴を計算する期間長(利用歴ウィンドウ)を調整する。最上レイヤのインタラクティブ・アプリケーション・アルゴリズムは、インタラクティブ・タスクを考慮するのに対し、知覚に基づくアルゴリズムは、プロセッサにより実行されるべきタスクの全てのカテゴリを考慮する。インタラクティブ・アプリケーション・アルゴリズムは、高品質のインタラクティブ実行を保証することを目的とする実行レベル・インジケータを計算し、また、これが階層構造の最上レベルに位置するので、知覚に基づくアルゴリズムは、控え目な短い利用歴ウィンドウに制約されるべきでない。このような最低階層構造レベルにおいて長い利用歴ウィンドウを使用する可能性は、適当ならば更に積極的な省電力戦略を選択できるので、効率改善のために許容される。利用歴ウィンドウが短過ぎるときは、これは、2実行レベル予測を固定値間で急速に振動させる原因ともなる。通常、(階層構造的なアルゴリズム・セットよりも)単一の統合アルゴリズムを使用して全てのラン・タイム環境用の実行レベルを設定する短い利用歴ウィンドウを設定することが必要である例えば、統合アルゴリズムのような完結的なプロセッサ集中インタラクティブ・イベントに対処できるようにするためには、利用歴ウィンドウを短く保持する必要がある。
3レイヤ・スタックの各実行設定アルゴリズムは、与えられた期間内に処理ワーク・ダンの測定値を使用する。この実施例において、使用されるワーク・ダン測定値は、その期間に実行された(プロセッサの)全速等価ワーク(Workfse)である。この全速等価ワーク予測は、下記式により計算される。

Figure 2004164643
ただし、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 2004164643

ただし、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 2004164643
他の実施例の更に複雑なアルゴリズムは、ワーク・ダンがプロセッサ速度に直接比例するという仮定をするよりも、(メモリ・アクセスのような重要なイベントのトラッキングを保持するカウンタを介して)命令プロファイル並びにワーク・ロードの期待及び実施の減少率を監視することを含むより正確なワーク・ダン予測技術を使用する。更に、他の実施例は、メモリ・システム実行は、ワーク・ダン予測を改善するためにキャッシュ・ヒット率及び実行インジケータを使用する。更に、他の実施例は、バックグラウンドのオペレーティング・システム・タスクを実行する際に使用される処理時間の百分率に対する(有用なワーク・ダンに等価な)プログラミング・アプリケーションを実行する際に使用される処理時間の百分率を監視するためにソフトウェアを使用する。
ハードウェア制御モジュール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)電力マネジャである。このトランスメータ・クルーゾ・プロセッサは、プロセッサ・ファームウェアに組み込まれたトランスメータ・クルーゾ・プロセッサを有する。ロング・ランは、電力管理を効果的にするためにオペレーティング・システムを変更する必要性をなくす他の既知の電力管理を有する。ロング・ランは、クロック速度選択を誘導するためにプロセッサの履歴利用を使用する。これは、利用が高度であれば、プロセッサを速くし、また利用が低度であれば、実行を低下させる。通常の多くのプロセッサと異なり、プロセッサは、ダイナミック二進変換及び最適化を実行する隠れたソフトウェア・レイヤを既に有するので、電力管理ポリシをクルーゾ・プロセッサ上で比較的に容易に実行することができる。このシミュレーションは、どのようにすれば、ソフトウェア階層構造において、このような低レベルで実施されるロング・ランのようなポリシを実行できるかの方法を確立することを意図していた。この技術は、同一プロセッサ上でロングランと共にランさせた。
このシミュレーションは、100Mhz実行レベル・ステップにより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 2004164643
ロング・ランにより発生した実行変化の監視は、同様にタイマ開始ルーチンに対して達成された。本技術によるインテリジェント・エネルギ管理マネジャ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 2004164643
次に、この技術のアルゴリズムがその後パニックしきい値に到達するまで、その予測速度でランし続けるものと仮定して、このアルゴリズムは、どの程度インタラクティブ・エピソードの長さを延長する必要があるのかについて計算した。従って、統計は、調整される。この技術を使用した結果は、プロセッサの活性な制御のもとに、この技術によるアルゴリズムによってランしている同様のワーク・ロード(やや異なるインタラクティブ・ロードだが、同一のベンチ・マーク)上で我々が観察したものに近いことが判った。しかしながら、この技術によるアルゴリズムが実際に制御していたときは、実行設定決定数が減少し、かつ、実行レベルがより正確になった。
図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 (39)

  1. 複数の処理タスクを実行する際にプロセッサの利用履歴から、前記プロセッサの目標プロセッサ実行レベルを計算する方法において、
    所定のタスク時間間隔内で与えられた処理タスクを実行する際にプロセッサ利用を表示するタスク・ワーク値を計算するステップと、
    前記タスク・ワーク値に従って異なる前記目標プロセッサ実行レベルを計算するステップと、
    を含む前記方法。
  2. 前記与えられた処理タスクのそれぞれ複数の前回実行に対応して複数のタスク・ワーク値を計算すること及び前記複数のタスク・ワーク値を組み合わせて前記与えられた処理タスクの将来実行のために前記目標プロセッサ実行レベルを計算することを含む請求項1記載の方法。
  3. 前記所定のタスク時間間隔は、前記複数の処理タスクのそれぞれについて独立して設定される請求項2記載の方法。
  4. 前記所定のタスク時間間隔は、前記与えられた処理タスクの各実行について独立して設定される請求項3記載の方法。
  5. 前記所定のタスク時間間隔は、前記与えられた処理タスクの第1のスケジュールの開始から前記処理タスクの次のスケジュールの開始までの期間であり、前記所定のタスク時間間隔は、前記第1のスケジュールに関連している請求項4記載の方法。
  6. 前記与えられた処理タスクの前回実行に対応する前記複数のタスク・ワーク値は、前記与えられた処理タスクのために指数関数的に減衰する平均ワーク・ダン値を計算するように組み合わされる請求項2記載の方法。
  7. 前記所定のタスク時間間隔内でアイドル時間長値を検出すること及び前記タスク・ワーク値と前記アイドル時間長に従って前記与えられた処理タスクについてのタスク実行デッド・ラインを計算することを含む請求項1記載の方法。
  8. 前記タスク実行デッド・ラインは、前記与えられた処理タスクの複数の前回の実行のそれぞれについて計算され、かつ、複数のタスク実行デッド・ラインは、組み合わされて指数関数的に減衰する平均タスク実行デッド・ライン値を計算する請求項7記載の方法。
  9. 前記与えられた処理タスクに対する前記目標プロセッサ実行レベルは、前記指数関数的に減衰する平均ワーク・ダン値及び前記与えられた処理タスクに対応する指数関数的に減衰する平均タスク実行デッド・ライン値に従って計算される請求項7記載の方法。
  10. 前記与えられた処理タスクの処理中に少なくとも1回の中断された実行期間を検出するステップであって、前記少なくとも1回の中断された実行期間は、前記第1のタスクの完了前に処理を前記与えられた処理タスクから、更に異なる処理タスクへ切り換えられる期間を表すステップと、
    前記少なくとも1回の中断された実行期間中にプロセッサ利用を含むように前記与えられた処理タスクのための前記タスク・ワーク値を計算するステップと、
    を含む請求項1記載の方法。
  11. 前記与えられた処理タスクが前記上側しきい値より大又は等しい期間に前記中断された実行期間を検出することなく、前記与えられた処理タスクが実行し続けたとき、前記タスクに対する前記目標プロセッサ実行レベルを自動的に再計算するように、前記所定のタスク時間間隔に対する前記上側しきい値を設定することを含む請求項10記載の方法。
  12. 各タスクについてフラグ値を記憶すると共に、前記フラグ値は、対応するタスクが実行し始めて実行を未だ完了していないときを示す請求項1記載の方法。
  13. 前記与えられた処理タスクのそれぞれの前回の実行についての各タスク・ワーク値は、前記タスク・ワーク値を組み合わせて前記タスクの前記将来実行に対する前記目標プロセッサ実行レベルを計算するときに、対応する所定のタスク時間間隔により正規化される請求項2記載の方法。
  14. コンピュータを制御して複数の処理タスクを実行する際にプロセッサの利用履歴から、前記プロセッサの目標プロセッサ実行レベルを計算するコンピュータ・プログラムを搭載したコンピュータ・プログラム・プロダクトにおいて、
    所定のタスク時間間隔内で与えられた処理タスクを実行する際にプロセッサ利用を表示するタスク・ワーク値を計算するように動作可能なタスク・ワーク値計算コードと、
    前記タスク・ワーク値に従って異なる前記目標プロセッサ実行レベルを計算するように動作可能な目標プロセッサ計算コードと、
    を含む前記コンピュータ・プログラム。
  15. 前記タスク・ワーク計算コードは、前記与えられた処理タスクのそれぞれ複数の前回の実行に対応して複数のタスク・ワーク値を計算し、かつ、前記複数のタスク・ワーク値を組み合わせて前記与えられた処理タスクの将来実行のために前記目標プロセッサ実行レベルを計算することを含む請求項14記載のコンピュータ・プログラム・プロダクト。
  16. 前記所定のタスク時間間隔は、前記複数の処理タスクのそれぞれについて独立して設定される請求項15記載のコンピュータ・プログラム・プロダクト。
  17. 前記所定のタスク時間間隔は、前記与えられた処理タスクの各実行について独立して設定される請求項16記載のコンピュータ・プログラム・プロダクト。
  18. 前記所定のタスク時間間隔は、前記与えられた処理タスクの第1のスケジュールの開始から前記処理タスクの次のスケジュールの開始までの期間であり、前記所定のタスク時間間隔は、前記第1のスケジュールに関連している請求項17記載のコンピュータ・プログラム・プロダクト。
  19. 前記与えられた処理タスクの前回の実行に対応する前記複数のタスク・ワーク値は、前記与えられた処理タスクのために指数関数的に減衰する平均ワーク・ダン値を計算するように組み合わされる請求項15記載のコンピュータ・プログラム・プロダクト。
  20. 前記所定のタスク時間間隔内でアイドル時間長値を検出すること及び前記タスク・ワーク値と前記アイドル時間長に従って前記与えられた処理タスクについてのタスク実行デッドラインを計算することに動作可能な検出コードを含む請求項14記載のコンピュータ・プログラム・プロダクト。
  21. 前記タスク実行デッド・ラインは、前記与えられた処理タスクの複数の前回の実行のそれぞれについて計算され、複数のタスク実行デッド・ラインは、組み合わされて指数関数的に減衰する平均タスク実行デッド・ライン値を計算する請求項20記載のコンピュータ・プログラム・プロダクト。
  22. 前記与えられた処理タスクに対する前記目標プロセッサ実行レベルは、前記指数関数的に減衰する平均ワーク・ダン値及び前記与えられた処理タスクに対応する指数関数的に減衰する平均タスク実行デッド・ライン値に従って計算される請求項20記載のコンピュータ・プログラム・プロダクト。
  23. 前記与えられた処理タスクの処理中に少なくとも1回の中断された実行期間を検出するように動作可能な実行中断期間検出コードであって、前記少なくとも1回の中断された実行期間は、前記第1のタスクの完了前に処理を前記与えられた処理タスクから更に異なる処理タスクへ切り換えられる期間を表す前記実行中断期間検出コードを更に含み、
    前記タスク・ワーク値計算コードは、前記少なくとも1回の中断された実行期間中にプロセッサ利用を含むように、前記与えられた処理タスクについて前記タスク・ワーク値を計算するように動作可能である請求項14記載のコンピュータ・プログラム・プロダクト。
  24. 前記与えられた処理タスクが前記上側しきい値より大又は等しい期間に前記中断された実行期間を検出することなく実行し続けたとき、前記タスクに対する前記目標プロセッサ実行レベルを自動的に減少させるように、前記所定のタスク時間間隔に対する上側しきい値を設定する請求項23記載のコンピュータ・プログラム・プロダクト。
  25. 各タスクについてフラグ値を記憶すると共に、前記フラグ値は、対応するタスクが実行し始めて実行を未だ完了していないかを示す請求項14記載のコンピュータ・プログラム・プロダクト。
  26. 前記与えられた処理タスクのそれぞれの前回の実行についての各タスク・ワーク値は、前記タスク・ワーク値を組み合わせて前記タスクの前記将来実行に対する前記目標プロセッサ実行レベルを計算するとき、対応する所定のタスク時間間隔により正規化される請求項15記載のコンピュータ・プログラム・プロダクト。
  27. 複数の処理タスクを実行する際にプロセッサの利用履歴からプロセッサの目標プロセッサ実行レベルを計算する装置において、
    所定のタスク時間間隔内で与えられた処理タスクを実行する際にプロセッサ利用を表示するタスク・ワーク値を計算するように動作可能なタスク・ワーク値計算ロジックと、
    前記タスク・ワーク値に従って異なる前記目標プロセッサ実行レベルを計算するように動作可能な目標プロセッサ計算ロジックと、
    を含む前記装置。
  28. 前記タスク・ワーク計算ロジックは、前記与えられた処理タスクのそれぞれ複数の前回の実行に対応して複数のタスク・ワーク値を計算し、前記複数のタスク・ワーク値を組み合わせて前記与えられた処理タスクの将来の実行のために前記目標プロセッサ実行レベルを計算する請求項27記載の装置。
  29. 前記所定の時間間隔は、前記複数の処理タスクのそれぞれについて独立して設定される請求項28記載の装置。
  30. 前記所定のタスク時間間隔は、前記与えられた処理タスクの各実行について独立して設定される請求項29記載の装置。
  31. 前記所定のタスク時間間隔は、前記与えられた処理タスクの第1のスケジュールの開始から前記処理タスクの次のスケジュールの開始までの期間であり、前記所定のタスク時間間隔は、前記第1のスケジュールに関連している請求項30記載の装置。
  32. 前記与えられた処理タスクの前回の実行に対応する前記複数のタスク・ワーク値は、前記与えられた処理タスクのために指数関数的に減衰する平均ワーク・ダン値を計算するように組み合わされる請求項28記載の装置。
  33. 前記所定のタスク時間間隔内でアイドル時間長値を検出すること及び前記タスク・ワーク値と前記アイドル時間長に従って前記与えられた処理タスクについてのタスク実行デッド・ラインを計算することを含む請求項28記載の装置。
  34. 前記タスク実行デッド・ラインは、前記与えられた処理タスクの複数の前回の実行のそれぞれについて計算され、複数のタスク実行デッド・ラインは、組み合わされて指数関数的に減衰する平均タスク実行デッド・ライン値を計算する請求項33記載の装置。
  35. 前記与えられた処理タスクに対する前記目標プロセッサ実行レベルは、前記指数関数的に減衰する平均ワーク・ダン値及び前記与えられた処理タスクに対応する指数関数的に減衰する平均タスク実行デッド・ライン値に従って計算される請求項33記載の装置。
  36. 前記与えられた処理タスクの処理中に少なくとも1回の中断された実行期間を検出するように動作可能な実行中断期間検出ロジックであって、前記少なくとも1回の中断された実行期間は、前記第1のタスクの完了前に処理を前記与えられた処理タスクから、更に異なる処理タスクに切り換えられる期間を表す実行中断期間検出ロジックを更に含み、
    前記少なくとも1回の中断された実行期間中にプロセッサ利用を含むように前記与えられた処理タスクのための前記タスク・ワーク値を計算する動作が可能である請求項28記載の装置。
  37. 前記与えられた処理タスクが前記上側しきい値より大又は等しい期間に前記中断された実行期間を検出することなく実行し続けたとき、前記タスクに対する前記目標プロセッサ実行レベルを自動的に再計算するように、前記所定のタスク時間間隔に対する前記上側しきい値を設定する請求項36記載の装置。
  38. 各タスクについてフラグ値を記憶すると共に、前記フラグ値は、対応するタスクが実行し始めて実行を未だ完了していないかを示す請求項28記載の装置。
  39. 前記与えられた処理タスクのそれぞれの前回の実行についての各タスク・ワーク値は、前記タスク・ワーク値を組み合わせて前記タスクの前記将来の実行に対する前記目標プロセッサ実行レベルを計算するとき、対応する所定のタスク時間間隔により正規化される請求項28記載の装置。
JP2003380081A 2002-11-12 2003-11-10 データ処理システムにおける実行レベル設定 Pending JP2004164643A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0226395A GB0226395D0 (en) 2002-11-12 2002-11-12 Automatic performance setting
GB0228546A GB0228546D0 (en) 2002-12-06 2002-12-06 Performance level setting of a data processing system
GB0305442A GB2402504A (en) 2002-11-12 2003-03-10 Processor performance calculation

Publications (1)

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

Family

ID=32314753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003380081A Pending JP2004164643A (ja) 2002-11-12 2003-11-10 データ処理システムにおける実行レベル設定

Country Status (4)

Country Link
US (1) US7194385B2 (ja)
JP (1) JP2004164643A (ja)
AU (1) AU2003286235A1 (ja)
WO (1) WO2004044720A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013542491A (ja) * 2010-09-16 2013-11-21 クアルコム,インコーポレイテッド 性能スケーリングアルゴリズムのセットを公開して管理するためのモバイルデバイスおよび方法
JP2013545158A (ja) * 2010-09-16 2013-12-19 クアルコム,インコーポレイテッド 性能スケーリングアルゴリズムのセットの構成を最適化するためのシステムおよび方法
JP2014521169A (ja) * 2011-07-14 2014-08-25 クアルコム,インコーポレイテッド ポータブルコンピューティングデバイスにおける熱エネルギー生成を低減するための方法およびシステム
JP2015064657A (ja) * 2013-09-24 2015-04-09 株式会社東芝 スケジューリング装置、システム、装置、方法およびプログラム
JP2016505913A (ja) * 2012-11-05 2016-02-25 クアルコム,インコーポレイテッド 保証された過渡期限とともに中央処理装置の電力を制御するためのシステムおよび方法

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004334537A (ja) * 2003-05-07 2004-11-25 Sony Corp プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム
GB2410344B (en) * 2004-01-26 2006-03-15 Toshiba Res Europ Ltd Dynamic voltage controller
US7761874B2 (en) * 2004-08-13 2010-07-20 Intel Corporation Managing processing system power and performance based on utilization trends
US20060048160A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Method, apparatus, and computer program product for providing a self-tunable parameter used for dynamically yielding an idle processor
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
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
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
US8495613B2 (en) * 2005-12-22 2013-07-23 Microsoft Corporation Program execution service windows
WO2007090431A1 (en) * 2006-02-09 2007-08-16 Freescale Semiconductor, Inc. Electronic apparatus and method of conserving energy
US20070266385A1 (en) * 2006-05-11 2007-11-15 Arm Limited Performance level setting in a data processing system
US7659897B1 (en) * 2006-06-30 2010-02-09 Nvidia Corporation System, method, and computer program product for video benchmarking
US8645907B2 (en) * 2006-09-12 2014-02-04 Sandeep Jain Capturing effort level by task upon check-in to source control management system
US20080319910A1 (en) * 2007-06-21 2008-12-25 Microsoft Corporation Metered Pay-As-You-Go Computing Experience
US8146065B2 (en) * 2007-08-13 2012-03-27 International Business Machines Corporation Running time of short running applications by effectively interleaving compilation with computation in a just-in-time environment
JP2009069921A (ja) * 2007-09-11 2009-04-02 Hitachi Ltd マルチプロセッサシステム
WO2009047664A1 (en) * 2007-10-09 2009-04-16 St Wireless Sa Non-recursive adaptive filter for predicting the mean processing performance of a complex system´s processing core
US8320741B1 (en) * 2007-12-17 2012-11-27 Nvidia Corporation Media capture system, method, and computer program product for assessing processing capabilities
WO2009083753A1 (en) * 2007-12-28 2009-07-09 Freescale Semiconductor, Inc. Data processor performance prediction
US20090182534A1 (en) * 2008-01-11 2009-07-16 Microsoft Corporation Accurate measurement and monitoring of computer systems
US9207738B2 (en) 2008-02-25 2015-12-08 St-Ericsson Sa Data processing device with adjustable performance level and method of operating such device
US9009498B1 (en) 2008-08-14 2015-04-14 Hewlett-Packard Development Company, L.P. Estimating power consumption for a target host
WO2010028028A1 (en) 2008-09-08 2010-03-11 Virginia Tech Intellectual Properties Systems, devices, and methods for managing energy usage
US20100138176A1 (en) * 2008-12-02 2010-06-03 Broadcom Corporation System for accurate battery run time estimation utilizing voltage capture and coulomb counting
US8578382B2 (en) * 2009-05-19 2013-11-05 Qualcomm Incorporated Associating data for events occurring in software threads with synchronized clock cycle counters
KR101620103B1 (ko) * 2009-10-21 2016-05-13 삼성전자주식회사 멀티 코어 시스템에서 중앙 처리 장치의 전력 제어 장치 및 방법
US8776066B2 (en) * 2009-11-30 2014-07-08 International Business Machines Corporation Managing task execution on accelerators
US8423799B2 (en) * 2009-11-30 2013-04-16 International Business Machines Corporation Managing accelerators of a computing environment
JP5463885B2 (ja) * 2009-12-07 2014-04-09 富士通株式会社 バッチジョブ処理時間推定プログラム、方法及び装置
US8479026B2 (en) * 2009-12-09 2013-07-02 Texas Instruments Incorporated Processor power management
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9128705B2 (en) 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US8775830B2 (en) 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US8909962B2 (en) 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9563250B2 (en) 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US8689037B2 (en) 2009-12-16 2014-04-01 Qualcomm Incorporated System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
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
US7917954B1 (en) * 2010-09-28 2011-03-29 Kaspersky Lab Zao Systems and methods for policy-based program configuration
WO2012159123A2 (en) 2011-05-19 2012-11-22 Alec Rivers Automatically guided tools
US20130081001A1 (en) * 2011-09-23 2013-03-28 Microsoft Corporation Immediate delay tracker tool
US8966300B2 (en) 2011-10-04 2015-02-24 Ericsson Modems Sa DFVS-enabled multiprocessor
US8650423B2 (en) * 2011-10-12 2014-02-11 Qualcomm Incorporated Dynamic voltage and clock scaling control based on running average, variant and trend
WO2013080419A1 (ja) * 2011-12-02 2013-06-06 日本電気株式会社 トラフィック管理装置、システム、方法およびプログラムを格納した非一時的なコンピュータ可読媒体
EP2852868B1 (en) 2012-04-26 2021-12-01 Shaper Tools, Inc. Systems and methods for performing a task on a material, or locating the position of a device relative to the surface of the material
US20140082383A1 (en) * 2012-09-20 2014-03-20 Apple Inc. Predicting user intent and future interaction from application activities
US20140082384A1 (en) * 2012-09-20 2014-03-20 Apple Inc. Inferring user intent from battery usage level and charging trends
US9424091B2 (en) * 2013-05-01 2016-08-23 Silicon Graphics International Corp. Deploying software in a multi-instance node
US9329663B2 (en) 2013-09-09 2016-05-03 Apple Inc. Processor power and performance manager
JP6179321B2 (ja) 2013-09-27 2017-08-16 富士通株式会社 ストレージ管理装置、制御方法及び制御プログラム
US9436265B2 (en) * 2013-10-24 2016-09-06 Fujitsu Limited Information processing apparatus and load control method
JP6273966B2 (ja) * 2014-03-27 2018-02-07 富士通株式会社 ストレージ管理装置、性能調整方法及び性能調整プログラム
US10019756B2 (en) * 2014-03-31 2018-07-10 Mastercard International Incorporated Systems and methods for throttling transaction processing based on constrained sub-systems
US20160077571A1 (en) * 2014-09-12 2016-03-17 Microsoft Corporation Heuristic Processor Power Management in Operating Systems
US9830242B2 (en) * 2015-01-14 2017-11-28 Mediatek Inc. Loading calculation method and loading calculation system for processor in electronic device
US10228866B2 (en) * 2015-01-19 2019-03-12 Western Digital Technologies, Inc. Performance tuning for storage devices
US9367355B1 (en) * 2015-01-28 2016-06-14 Yahoo!, Inc. Resource utilization by one or more tasks
CN105988872B (zh) * 2015-02-03 2020-02-18 阿里巴巴集团控股有限公司 一种cpu资源分配的方法、装置及电子设备
CN107530878B (zh) 2015-05-13 2021-01-08 整形工具股份有限公司 用于被引导工具的系统、方法和设备
JP7306986B2 (ja) 2016-08-19 2023-07-11 シェイパー ツールズ,インク. 工具製作及び設計データを共有するためのシステム、方法、装置
US10747565B2 (en) * 2017-04-18 2020-08-18 Amazon Technologies, Inc. Virtualization of control and status signals
CN109739332B (zh) * 2019-01-25 2022-05-03 华侨大学 一种多任务通用能耗优化方法
US11714564B2 (en) * 2020-01-06 2023-08-01 Arm Limited Systems and methods of power management

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734585A (en) 1994-11-07 1998-03-31 Norand Corporation Method and apparatus for sequencing power delivery in mixed supply computer systems
EP1182556B1 (en) 2000-08-21 2009-08-19 Texas Instruments France Task based adaptive profiling and debugging
US7448025B2 (en) 2000-12-29 2008-11-04 Intel Corporation Qualification of event detection by thread ID and thread privilege level

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013542491A (ja) * 2010-09-16 2013-11-21 クアルコム,インコーポレイテッド 性能スケーリングアルゴリズムのセットを公開して管理するためのモバイルデバイスおよび方法
JP2013545158A (ja) * 2010-09-16 2013-12-19 クアルコム,インコーポレイテッド 性能スケーリングアルゴリズムのセットの構成を最適化するためのシステムおよび方法
JP2014521169A (ja) * 2011-07-14 2014-08-25 クアルコム,インコーポレイテッド ポータブルコンピューティングデバイスにおける熱エネルギー生成を低減するための方法およびシステム
US9383804B2 (en) 2011-07-14 2016-07-05 Qualcomm Incorporated Method and system for reducing thermal load by forced power collapse
JP2016505913A (ja) * 2012-11-05 2016-02-25 クアルコム,インコーポレイテッド 保証された過渡期限とともに中央処理装置の電力を制御するためのシステムおよび方法
JP2015064657A (ja) * 2013-09-24 2015-04-09 株式会社東芝 スケジューリング装置、システム、装置、方法およびプログラム

Also Published As

Publication number Publication date
AU2003286235A8 (en) 2004-06-03
WO2004044720A3 (en) 2004-09-23
US7194385B2 (en) 2007-03-20
AU2003286235A1 (en) 2004-06-03
US20040123297A1 (en) 2004-06-24
WO2004044720A2 (en) 2004-05-27

Similar Documents

Publication Publication Date Title
JP2004164643A (ja) データ処理システムにおける実行レベル設定
JP2004164642A (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
US8181047B2 (en) Apparatus and method for controlling power management by comparing tick idle time data to power management state resume time data
JP5312478B2 (ja) データ・プロセッサのパフォーマンス予測
US6986068B2 (en) Arithmetic processing system and arithmetic processing control method, task management system and task management method
US6289399B1 (en) Computer and parameter setting method
US8136113B2 (en) Method and apparatus for adjusting sleep time of fixed high-priority threads
US8856791B2 (en) Method and system for operating in hard real time
EP2885707B1 (en) Latency sensitive software interrupt and thread scheduling
US20110010713A1 (en) Computer system, virtual machine monitor and scheduling method for virtual machine monitor
JP2005346301A (ja) タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム
JP2005509976A (ja) 予算剰余をタスクに割り当てるための方法及びシステム
JP2011134333A (ja) 仮想cpuベースの、周波数、及び電圧制御
US20070266385A1 (en) Performance level setting in a data processing system
AU2007261607B2 (en) Resource-based scheduler
US9632566B2 (en) Dynamically controlling power based on work-loop performance
US20050132038A1 (en) Resource reservation system and resource reservation method and recording medium storing program for executing the method
GB2402504A (en) Processor performance calculation
GB2395309A (en) Performance level selection in a data processing system
CN110647401B (zh) 调频方法、调频装置、存储介质与电子设备
KR100838438B1 (ko) 태스크 관리방법, 태스크 관리장치, 반도체 집적회로, 전자장치, 태스크 관리 시스템, 및 프로그램을 격납한 기록매체
JP2001282560A (ja) 仮想計算機制御方法及びその実施装置並びにその処理プログラムを記録した記録媒体
GB2395310A (en) Data processing system performance counter