(57)【要約】【課題】プロセッサの性能を管理するためのデータ処理装置および方法を提供する。【解決手段】本方法は必要なプロセッサ性能レベルの指示を受け取るステップと、変調期間を決定するステップと、必要なプロセッサ性能レベルに応じて複数の所定の性能レベルを選択するステップとを含む。各選択された所定のプロセッサ性能レベルについて、所定のプロセッサ性能レベルでプロセッサが動作すべき変調期間の比率を決定するために決定操作が実行され、変調期間中に決定操作により決定された比率に示されるように、選択された所定のプロセッサ性能レベル間でプロセッサを切り替えるために変調操作が実行される。変調期間中に、必要なプロセッサ性能レベルに合致する平均性能レベルが達成可能であり、プロセッサが単に必要なプロセッサ性能レベルより上の所定のレベルで動作した場合に発生する不要なエネルギー消費が回避される。【選択図】図２
2008165798.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサが動作可能な複数の所定のプロセッサ性能レベルが提供されるデータ処理装置内のプロセッサの性能を管理する方法であって、
必要なプロセッサ性能レベルの指示を受け取るステップと、
変調期間を決定するステップと、
前記必要なプロセッサ性能レベルに応じて、複数の前記所定のプロセッサ性能レベルを選択するステップと、
選択されたそれぞれの所定のプロセッサ性能レベルについて、前記所定のプロセッサ性能レベルでプロセッサが動作すべき前記変調期間の比率を決定するための決定操作を実行するステップと、
前記変調期間中に、前記決定操作によって決定された前記比率によって示されるように、前記選択された所定のプロセッサ性能レベル間でプロセッサを切り替えるための変調操作を実行するステップと、
を含む方法。
【請求項２】
前記選択するステップが、前記必要なプロセッサ性能レベルよりも高い第１の所定のプロセッサ性能レベルと、前記必要なプロセッサ性能レベルよりも低い第２の所定のプロセッサ性能レベルとを選択するステップを含む、請求項１に記載の方法。
【請求項３】
前記決定操作が、前記プロセッサが前記第１または第２の所定のプロセッサ性能レベルのうちの一方で動作する前記変調期間の第１の部分を決定し、前記変調期間の残り部分では、前記プロセッサは、前記第１または第２の所定のプロセッサ性能レベルのうちの前記他方で動作する、請求項２に記載の方法。
【請求項４】
前記変調期間中、前記プロセッサは、前記変調期間の前記第１の部分中に前記第１の所定のプロセッサ性能レベルで動作し、前記変調期間の前記残りの部分中に前記第２の所定のプロセッサ性能レベルで動作する、請求項３に記載の方法。
【請求項５】
前記データ処理装置が複数のタスクを実行し、前記変調期間を決定する前記ステップが、
前記タスクのそれぞれについて、前記データ処理装置によって前記タスクが完了されていなければならない時間間隔に対応してタスクのデッドラインを決定するステップと、
前記決定されたタスクのデッドラインのうちの最も短いものを前記変調期間として選択するステップと、
を含む、請求項１に記載の方法。
【請求項６】
前記タスクのデッドラインが対話型タスクに関連付けられ、
（ｉ）タスク期間、および
（ｉｉ）ユーザに関する受け入れ可能な応答時間を指定する値、
のうちで最も小さいものに対応する、請求項５に記載の方法。
【請求項７】
前記データ処理装置が複数のタスクを実行し、前記変調期間を決定する前記ステップが、
前記タスクのそれぞれについて、
（ｉ）前記タスクが前記データ処理装置によって完了されるべきである時間間隔に対応するタスクのデッドラインを決定するステップと、
（ｉｉ）前記タスクのデッドラインを想定する前記タスクに関する最低のプロセッサ性能レベルを受け取るステップと、
（ｉｉｉ）前記最低のプロセッサ性能レベルが、前記選択された所定のプロセッサ性能レベルのうちの最低レベルよりも高い場合、前記タスクに関するタスク変調期間を決定するステップと、
前記決定されたタスク変調期間のうちの最も短い期間を前記変調期間として選択するステップと、
を含む、請求項１に記載の方法。
【請求項８】
前記ステップ（ｉｉｉ）で、前記タスク変調期間が以下の式によって決定され、
ＴＭＯＤ（ｎ）＝［ＰＨＩＧＨ−ＰＭＩＮ（Ｔｎ）］／［ＰＨＩＧＨ−ＰＣＰＵ］＊Ｔｎ
上式で、
ＴＭＯＤ（ｎ）は、前記タスク変調期間であり、
ＰＨＩＧＨは、前記必要なプロセッサ性能レベルよりも高い、選択された第１の所定のプロセッサ性能レベルであり、
ＰＭＩＮ（Ｔｎ）は、前記タスクに関する前記最低プロセッサ性能レベルであり、
ＰＣＰＵは、前記必要なプロセッサ性能レベルであり、
Ｔｎは、前記タスクのデッドラインである、
請求項７に記載の方法。
【請求項９】
必要なプロセッサ性能レベルの前記指示が、前記プロセッサによって実行される性能設定ルーチンから受け取られる、請求項１に記載の方法。
【請求項１０】
前記性能設定ルーチンがサービス品質ポリシーを適用する、請求項９に記載の方法。
【請求項１１】
各所定のプロセッサ性能レベルが、前記所定のプロセッサ性能レベルが前記プロセッサに対して選択された場合に前記プロセッサが動作する関連付けられた動作周波数を有する、請求項１に記載の方法。
【請求項１２】
各所定のプロセッサ性能レベルが、前記所定のプロセッサ性能レベルが前記プロセッサに対して選択された場合に前記プロセッサに供給される関連付けられた供給電圧をさらに有する、請求項１１に記載の方法。
【請求項１３】
データ処理装置上で実行された場合にプロセッサの性能管理方法を実行するコンピュータ読み取り可能媒体上のコンピュータ・プログラムを備えるコンピュータ・プログラム製品であって、前記プロセッサが動作可能な複数の所定のプロセッサ性能レベルが提供され、前記コンピュータ・プログラムが、
必要なプロセッサ性能レベルの指示を受け取るステップと、
変調期間を決定するステップと、
前記必要なプロセッサ性能レベルに応じて、複数の前記所定のプロセッサ性能レベルを選択するステップと、
選択されたそれぞれの所定のプロセッサ性能レベルについて、前記所定のプロセッサ性能レベルでプロセッサが動作すべき前記変調期間の比率を決定するための決定操作を実行するステップと、
前記変調期間中に、前記決定操作によって決定された前記比率によって示されるように、前記選択された所定のプロセッサ性能レベル間でプロセッサを切り替えるための変調操作を実行するステップと、
を含む、コンピュータ・プログラム製品。
【請求項１４】
プロセッサ手段と、
複数の所定のプロセッサ性能レベルのうちの選択された１つで前記プロセッサを動作させるための制御手段と、
必要なプロセッサ性能レベルを決定するための手段と、
変調期間を決定するための手段と、
前記必要なプロセッサ性能レベルに応じて、複数の前記所定のプロセッサ性能レベルを選択するための手段と、
選択されたそれぞれの所定のプロセッサ性能レベルについて、前記所定のプロセッサ性能レベルで前記プロセッサが動作すべき前記変調期間の比率を決定するための決定操作を実行するための手段と、
を備えるデータ処理装置であって、
前記制御手段が、前記変調期間中に、前記決定操作によって決定された前記比率によって示されるように、前記選択された所定のプロセッサ性能レベル間で前記プロセッサ手段を切り替えるための変調操作を実行する、
データ処理装置。
【請求項１５】
プロセッサと、
複数の所定のプロセッサ性能レベルのうちの選択された１つで前記プロセッサを動作させるための制御回路と、
を備えるデータ処理装置であって、
前記プロセッサが、必要なプロセッサ性能レベル、変調期間の指示を生成するための操作を実行するように、および、前記必要なプロセッサ性能レベルに応じて、複数の前記所定のプロセッサ性能レベルを選択するように、配置構成され、前記プロセッサが、選択されたそれぞれの所定のプロセッサ性能レベルについて、前記所定のプロセッサ性能レベルで前記プロセッサが動作すべき前記変調期間の比率を決定するための決定操作を実行するようにさらに配置構成され、
制御回路が、前記変調期間中に、前記決定操作によって決定された前記比率によって示されるように、前記選択された所定のプロセッサ性能レベル間で前記プロセッサを切り替えるための変調操作を実行するための変調回路を含む、
データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサの性能を管理するためのデータ処理装置および方法に関する。
【背景技術】
【０００２】
複数の異なる性能レベルで動作することが可能なデータ処理装置を提供することが知られている。データ処理装置は、通常、実行時に異なるプロセッサ性能レベル間での切り替えを行うことができる。負荷の軽い作業を実行している場合は、エネルギー（電力消費）を節約するために、より低い性能レベルが選択されるが、処理の集中する作業負荷の場合は、より高い性能レベルが選択される。通常、相補型金属酸化膜半導体（ＣＭＯＳ）技術で実施されるプロセッサでは、性能レベルが低いほど、周波数および動作電圧設定値が低いことを意味する。
【０００３】
こうした既知のシステムは、多くの場合、動的周波数スケーリング（ＤＦＳ）または動的電圧および周波数スケーリング（ＤＶＦＳ）システムと呼ばれ、上記システムは、通常、プロセッサが動作可能な複数の所定のプロセッサ性能レベルを提供する。
【０００４】
これら所定のプロセッサ性能レベルのうちのいずれでプロセッサを実行すべきであるかを決定できるようにするためには、第一に、現在データ処理装置が取り組んでいる様々なタスクを考慮して、プロセッサに必要な性能レベルを決定しようとすることが必要である。したがって、様々な実行時状況に応じて変化する特徴に従って、必要な性能レベルを計算するためにアルゴリズムを適用する性能レベル設定ポリシーが展開されてきた。したがって、現在の実行時状況に関する情報、例えば、タスク・スケジューリング・アルゴリズムに従って計算されたプロセッサ利用値が、性能レベル設定ポリシーに入力され、次にこれが、必要な性能レベルを計算するためのアルゴリズムを採用する。
【０００５】
上記性能レベル設定ポリシーによって性能を正確に予測できない限り、予測ミスの結果として、タスクのデッドラインに合致しない状況が発生する可能性がある。これは、データ処理システムの処理性能にとって、それ故、ユーザが経験するサービスの品質にとって有害な影響をもたらす。したがって、いくつかの異なる性能レベル設定ポリシーが開発されてきており、性能レベル設定ポリシーによって生成される様々な性能レベル予測を考慮し、実行時の所与の処理状況について適切な必要性能レベルを選択するポリシー・スタックによって調整される複数の性能レベル設定ポリシーが多くの場合使用される。米国特許出願第１０／６８７，９７２号は、ポリシー・スタックの細部、および使用可能な性能要求計算アルゴリズムの階層を提供するものであり、この特許出願の内容は参照により本明細書に組み込むものとする。さらに、参照により本明細書に組み込むものとする米国特許出願第１１／４３１，９２８号は、処理タスクに関するサービス品質の値に依存する少なくとも１つの性能限界を動的に計算する特定の性能レベル設定ポリシーについて記述している。
【０００６】
通常、前述の技法を使用して必要な性能レベルが計算された場合、その必要な性能レベルが様々な所定のプロセッサ性能レベルの範囲内にあれば、既知のシステムは、通常は、次に高い所定のプロセッサ性能レベルを選択し、プロセッサをその所定の性能レベルで動作させる。したがって、プロセッサが必要以上に高い性能レベルで実行されるため、無駄なエネルギーの浪費につながる。このエネルギーの損失を軽減しようとする方法の１つが、システム内により多くの所定のプロセッサ性能レベルを提供することであるが、これにより、それぞれの所定の性能レベルに関連付けられた様々な電圧および周波数を生成する可能性のある電圧ドライバおよび周波数発振回路を提供する際に、関連するハードウェア・コストが生じることになる。
【０００７】
ＧＢ−Ａ−２，３９７，１４３は、処理回路がクロック供給される処理モードと処理回路がクロック供給されない保持モードとの切り替えにより、動的周波数スケーリングなしで、ある範囲の性能レベルをサポートすることが可能なシステムについて記載している。データ処理システム動作の目標レートを示す目標レート信号に従って、２つのモード間での切り替えを変調することで、可変性能を達成することができる。保持モードは、クロックが停止しているのでどのような処理も実行しない。このような手法では、放熱を削減することによるわずかなエネルギー漏れの節約以外に、直接的にはエネルギーを節約しない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
プロセッサが動作可能な複数の所定のプロセッサ性能レベルが提供されるシステム内で、プロセッサの性能を管理する場合に、エネルギー損失を削減するための改良された技法を提供することが望ましい。
【課題を解決するための手段】
【０００９】
第１の態様によれば、本発明は、プロセッサが動作可能な複数の所定のプロセッサ性能レベルが提供されるデータ処理装置内のプロセッサの性能を管理する方法を提供し、この方法は、必要なプロセッサ性能レベルの指示を受け取るステップと、変調期間を決定するステップと、必要なプロセッサ性能レベルに応じて、複数の上記所定のプロセッサ性能レベルを選択するステップと、選択されたそれぞれの所定のプロセッサ性能レベルについて、その所定のプロセッサ性能レベルでプロセッサが動作すべき上記変調期間の比率を決定するための決定操作を実行するステップと、変調期間中に、決定操作によって決定された比率によって示されるように、上記選択された所定のプロセッサ性能レベル間でプロセッサを切り替えるための変調操作を実行するステップとを含む。
【００１０】
本発明によれば、複数の所定のプロセッサ性能レベルが選択され、次に、それらの選択された所定のプロセッサ性能レベル間で変調期間を分割するための決定操作が実行され、その結果としてプロセッサは、各変調期間中に、それらの選択された所定のプロセッサ性能レベル間で、決定操作の結果によって示されたように切り替えられる。したがって、上記技法により、必要なプロセッサ性能レベルに応じた平均レベルの性能を達成することを目標に、選択された所定のプロセッサ性能レベル間で、制御発振が実行される。プロセッサが処理モード中にのみ動作し、保持モード中はオフになる、ＧＢ−Ａ−２，３９７，１４３に記載された技法とは対照的に、プロセッサは変調期間全体にわたって動作を継続するため、変調期間全体を通じて有用な作業を行う。さらに、前述のように、ＧＢ−Ａ−２，３９７，１４３の技法は動的周波数スケーリングをサポートしないため、プロセッサが動作可能な複数の所定のプロセッサ性能レベルを提供しない。
【００１１】
所定の操作によって計算される比率は、絶対的には、例えば、決定操作を実行する前に変調期間が使用可能である必要がある場合、特定の時間量（例えば、多くのミリ秒）を指定することで表すことができる。しかし、別の方法として、この比率は変調期間の割合として表すことも可能であり、この場合、決定操作は、変調期間の決定と並行して、またはこの決定前に実行可能である。
【００１２】
決定操作の実行に先立って、複数の所定のプロセッサ性能レベルを選択することが可能ないくつかの方法があるが、一実施形態では、選択するステップは、上記必要なプロセッサ性能レベルよりも高い第１の所定のプロセッサ性能レベルと、上記必要なプロセッサ性能レベルよりも低い第２の所定のプロセッサ性能レベルとを選択するステップを含む。本発明の変調技法の目的は、単に必要なプロセッサ性能レベルより上の所定のプロセッサ性能レベルが選択された場合よりも、必要なプロセッサ性能レベルに近い、変調期間にわたる平均性能レベルを取得することによってエネルギーを節約することである。しかし、変調それ自体は必要な切り替えによってある程度のエネルギーを消費するが、１つは必要なプロセッサ性能レベルより上であり、１つは必要なプロセッサ性能レベルよりも下である２つの所定のプロセッサ性能レベルのみの間で変調することにより、変調操作によって消費されるエネルギーが削減される。特定の一実施形態では、第１および第２の所定のプロセッサ性能レベルは、必要なプロセッサ性能レベルのいずれかの側のプロセッサ性能レベルである。したがって、例えば、システムが、１が最高の性能レベルである１から４までのレベルがラベル表示された４つの所定のプロセッサ性能レベルを有し、必要なプロセッサ性能レベルが所定のプロセッサ性能レベル２よりも低く、所定のプロセッサ性能レベル３よりも高い場合、レベル２および３が選択され、これら２つのレベル間での切り替えに変調操作が使用される。
【００１３】
一実施形態では、決定操作が、プロセッサが上記第１または第２の所定のプロセッサ性能レベルのうちの一方で動作する変調期間の第１の部分を決定し、変調期間の残り部分では、プロセッサは、上記第１または第２の所定のプロセッサ性能レベルのうちの上記他方で動作する。したがって、変調期間中には切り替えが１回のみ発生し、それによって切り替えの実行によって消費されるエネルギーを最小限にする。
【００１４】
変調期間の第１の部分で、２つの選択された所定のプロセッサ性能レベルのうちのいずれが使用されるかは設計の選択の問題である。しかし、一実施形態では、変調期間中、プロセッサは、変調期間の第１の部分中に上記第１の所定のプロセッサ性能レベルで動作し、変調期間の残りの部分中に第２の所定のプロセッサ性能レベルで動作する。したがって上記実施形態では、２つの選択された所定のプロセッサ性能レベルのうちの高い方が、変調期間の第１の部分で使用される。上記手法により、変調期間の初期の部分では、変調期間の後期の部分で提供されるよりも高い性能が提供されるため、性能管理プロセスにとっては、必要なプロセッサ性能レベルにおける変化、特にプロセッサ性能レベルの増加を必要とする変化に応答する方が容易である。必要なプロセッサ性能レベルにおける変化への応答には様々な方法がある。一手法によれば、現在の変調期間を中止して新しい変調期間を開始することができる。この手法への追加オプションとして、前の変調期間における余分な性能を補償するために、（この期間が完了しなかったため、完了していた場合よりも平均性能が高くなったであろうということから）補償操作を実行することができる。代替手法として、性能管理プロセスは、完了するために現在の変調期間を待機した後、新しく受け取った必要なプロセッサ性能レベルを考慮して、再度繰り返される。この後者の手法の方が実施は簡単であり、ほとんどの状況で、システムの要件に合致する結果が生じることになる。
【００１５】
変調期間は、様々な形で決定することができる。前述のように、変調操作の結果として実行される切り替えは、それ自体がある程度のエネルギーを消費することになるため、変調期間が長くなるほど切り替えの頻度は少なくなり、変調プロセスによって消費されるエネルギーも少なくなる。しかし、変調操作の結果として、プロセッサは、必要なプロセッサ性能レベルよりも低い所定の性能レベルで変調期間の一部に対して駆動され、プロセッサがその低い所定の性能レベルに長時間留まりすぎた場合、タスクはデッドライン要件を満たさなくなる可能性がある。上記デッドライン要件は、絶対条件、すなわちタスクＡは常に時間期間Ｘ内に完了しなければならないという条件で表されるか、またはサービス品質の形、例えば、タスクＡは時間期間Ｚ内に時間にして９０％を完了しなければならないという形で表される場合がある。したがって、変調期間をどの程度の長さにできるかに関しては、上限がある。実行される変調は、システム内でアクティブなタスクの任意の組み合わせに対して、デッドライン要件を満たすことができるように確保することが重要である。
【００１６】
一実施形態によれば、変調期間を決定するステップは、上記タスクのそれぞれについて、上記データ処理装置によって上記タスクが完了されていなければならない時間間隔に対応してタスクのデッドラインを決定するステップと、決定されたタスクのデッドラインのうちの最も短いものを上記変調期間として選択するステップとを含む。この変調期間決定技法は、いずれの組み合わせのアクティブ・タスクもそれらのデッドライン要件を満たすことになる安全な変調期間が選択されることを確保する。
【００１７】
所与の処理タスクがそのタスクのデッドラインを満たさない場合、所与の処理タスクによって生成され、関係する処理タスクへの入力として供給されるデータの供給における遅延などのサービス品質に対する影響となる可能性があるため、タスクのデッドラインはサービス品質を量的に評価する便利な方法を提供する。
【００１８】
この種の一実施形態では、タスクのデッドラインは、対話型タスクに関連付けられ、（ｉ）タスク期間、および（ｉｉ）ユーザに関する受け入れ可能な応答時間を指定する値のうちで最も小さいものに対応する。これにより、ユーザとの対話に対するデータ処理システムの応答時間が、認識されるサービス品質に影響を与える応用例について、便利なサービス品質基準が提供される。
【００１９】
変調期間を決定するための前述の技法は、結果として、任意の組み合わせのアクティブ・タスクについて常にデッドライン要件を満たすことが可能な変調期間を生じさせるが、上記手法によって決定される変調期間は、実際には、実際に可能な期間よりも短いが、依然としてデッドライン要件を満たすことが可能であるため、実際に必要な回数よりも頻繁な性能レベルの切り替えによる不必要なエネルギー消費につながる可能性がある。代替実施形態によれば、変調期間を決定するステップは、上記タスクのそれぞれについて、（ｉ）上記タスクが上記データ処理装置によって完了されるべきである時間間隔に対応するタスクのデッドラインを決定するステップと、（ｉｉ）上記タスクのデッドラインを想定する上記タスクに関する最低のプロセッサ性能レベルを受け取るステップと、（ｉｉｉ）上記最低のプロセッサ性能レベルが、上記選択された所定のプロセッサ性能レベルのうちの最低レベルよりも高い場合、上記タスクに関するタスク変調期間を決定し、上記決定されたタスク変調期間のうちの最も短い期間を上記変調期間として選択するステップとを含む。本明細書で使用される場合、「タスク変調期間」という用語は、タスクの変調期間を意味する。
【００２０】
この技法によれば、決定された変調期間は、決定されたタスクのデッドラインのうちの最も短い期限よりも長いかまたはこれに等しくなるため、システム内の任意の組み合わせのアクティブ・タスクに関するデッドライン要件の合致に対して、いかなる悪影響も与えることなく、決定されたタスクのデッドラインのうちの最も短い期限よりも長いかまたはこれに等しい（アクティブ・タスクが１つだけの特殊な場合に等しくなる）、変調期間が可能となる。したがって、サービス品質要件に基づくシステムについて考えると、上記手法により、いかなる時点でもサービス品質要件に影響を与えることなく、より長い変調期間を決定することができる。
【００２１】
一実施形態では、上記ステップ（ｉｉｉ）では、タスク変調期間は以下の式によって決定され、
ＴＭＯＤ（ｎ）＝［ＰＨＩＧＨ−ＰＭＩＮ（Ｔｎ）］／［ＰＨＩＧＨ−ＰＣＰＵ］＊Ｔｎ
上式で、
ＴＭＯＤ（ｎ）は、タスク変調期間であり、
ＰＨＩＧＨは、上記必要なプロセッサ性能レベルよりも高い、選択された第１の所定のプロセッサ性能レベルであり、
ＰＭＩＮ（Ｔｎ）は、タスクに関する最低プロセッサ性能レベルであり、
ＰＣＰＵは、必要なプロセッサ性能レベルであり、
Ｔｎは、タスクのデッドラインである。
【００２２】
前述の変調期間決定技法が必要とする最低のプロセッサ性能レベルは、様々な方法で取得することができる。例えば、プロセッサによる実行のためのタスクをスケジューリングするためにある種のタスク・スケジューラが使用される場合、既知のアルゴリズムを使用して、最低のプロセッサ性能レベルを検出することができる。こうした決定を容易に実行できる上記スケジューラの例が、レート・モノトニック（Ｒａｔｅ  Ｍｏｎｏｔｏｎｉｃ）スケジューラまたはアーリエスト・デッドライン・ファースト（Ｅａｒｌｉｅｓｔ  Ｄｅａｄｌｉｎｅ  Ｆｉｒｓｔ）スケジューラである。加えて、前述の米国特許出願第１１／４３１，９２８号に記載された技法は、任意の汎用スケジューラを使用して最低のプロセッサ性能レベルを計算することができる。
【００２３】
必要なプロセッサ性能レベルの指示は、様々なソースから取得することができる。しかし、一実施形態では、必要なプロセッサ性能レベルの指示は、プロセッサによって実行される性能設定ルーチンから受け取られる。必要な性能レベルを決定するための多くの知られたルーチンが存在し、前述の米国特許出願第１１／４３１，９２８号には、サービス品質の考察に基づく上記性能設定ルーチンの１つが記載されている。したがって、一実施形態では、性能設定ルーチンは必要なプロセッサ性能レベルを決定するためにサービス品質ポリシーを適用することができる。
【００２４】
プロセッサ性能レベルは様々な方法で指定することができる。しかし、一実施形態では、各所定のプロセッサ性能レベルは、その所定のプロセッサ性能レベルがプロセッサに対して選択された場合にプロセッサが動作する関連付けられた動作周波数を有する。加えて、一実施形態では、さらに各所定のプロセッサ性能レベルは、その所定のプロセッサ性能レベルがプロセッサに対して選択された場合にプロセッサに供給される関連付けられた供給電圧も有する。したがって、上記実施形態では、周波数および電圧スケーリングの両方を使用して、様々な所定のプロセッサ性能レベルが提供される。
【００２５】
第２の態様によれば、本発明は、データ処理装置上で実行された場合にプロセッサの性能管理方法を実行するコンピュータ読み取り可能媒体上のコンピュータ・プログラムを備えるコンピュータ・プログラム製品を提供し、プロセッサが動作可能な複数の所定のプロセッサ性能レベルが提供され、コンピュータ・プログラムは、必要なプロセッサ性能レベルの指示を受け取るステップと、変調期間を決定するステップと、必要なプロセッサ性能レベルに応じて、複数の上記所定のプロセッサ性能レベルを選択するステップと、選択されたそれぞれの所定のプロセッサ性能レベルについて、その所定のプロセッサ性能レベルでプロセッサが動作すべき上記変調期間の比率を決定するための決定操作を実行するステップと、変調期間中に、決定操作によって決定された比率によって示されるように、上記選択された所定のプロセッサ性能レベル間でプロセッサを切り替えるための変調操作を実行するステップとを実行する。
【００２６】
第３の態様によれば、本発明は、プロセッサ手段と、複数の所定のプロセッサ性能レベルのうちの選択された１つでプロセッサを動作させるための制御手段と、必要なプロセッサ性能レベルを決定するための手段と、変調期間を決定するための手段と、必要なプロセッサ性能レベルに応じて、複数の上記所定のプロセッサ性能レベルを選択するための手段と、選択されたそれぞれの所定のプロセッサ性能レベルについて、その所定のプロセッサ性能レベルでプロセッサが動作すべき上記変調期間の比率を決定するための決定操作を実行するための手段とを備えるデータ処理装置であって、制御手段が、変調期間中に、決定操作によって決定された比率によって示されるように、上記選択された所定のプロセッサ性能レベル間でプロセッサ手段を切り替えるための変調操作を実行するデータ処理装置を提供する。
【００２７】
一実施形態では、変調操作は、プロセッサ上で実行するソフトウェアによって実行することができる。しかし、代替実施形態では、変調操作はハードウェアによって実行することができる。
【００２８】
第４の態様によれば、本発明は、プロセッサと、複数の所定のプロセッサ性能レベルのうちの選択された１つでプロセッサを動作させるための制御回路とを備えるデータ処理装置を提供し、プロセッサは、必要なプロセッサ性能レベル、変調期間の指示を生成するための操作を実行するように、および、必要なプロセッサ性能レベルに応じて、複数の上記所定のプロセッサ性能レベルを選択するように、配置構成され、プロセッサは、選択されたそれぞれの所定のプロセッサ性能レベルについて、その所定のプロセッサ性能レベルでプロセッサが動作すべき上記変調期間の比率を決定するための決定操作を実行するようにさらに配置構成され、制御回路は、変調期間中に、決定操作によって決定された比率によって示されるように、上記選択された所定のプロセッサ性能レベル間でプロセッサを切り替えるための変調操作を実行するための変調回路を含む。本発明のこの態様によれば、変調操作を実行するためのハードウェア変調回路が提供される。
【００２９】
次に、本発明について、添付の図面に示された実施形態を参照しながら、単に例示のために説明する。
【実施例】
【００３０】
図１は、本発明の実施形態の性能管理技法が採用可能なデータ処理装置の例を示すブロック図である。図１に示されるように、レベル１データ・キャッシュ２４に結合されたプロセッサ・コア２２を有するプロセッサ２０が提供され、データ・キャッシュ２４は、データ処理操作を実行する場合にプロセッサ・コア２２がアクセスするためのデータ値を格納するために使用される。プロセッサ２０はバス相互接続５０に接続され、これを介して他のデバイス３０およびメモリ・システム４０に結合することができる。プロセッサ２０とメモリ・システム４０との間の、バス５０のプロセッサ側またはバス５０のメモリ・システム側のいずれかに、１つまたは複数の他のレベルのキャッシュ（図示せず）を提供することができる。他のデバイス３０は様々な形を取ることが可能であり、例えば、バス相互接続５０上でのトランザクションを開始する他のマスタ・デバイス、および／または、バス相互接続５０上でマスタ・デバイスによって発行されるトランザクションを処理するために使用される１つまたは複数のスレーブ・デバイスとすることができる。プロセッサ２０は、マスタ・デバイスの一例であり、他のデバイス３０のうちの１つまたは複数は、プロセッサ２０と同様に構築された他のプロセッサとすることができることを理解されよう。
【００３１】
電圧および周波数供給回路１０は、選択されたプロセッサ性能レベルに従ってプロセッサ２０に供給される電圧および周波数を制御するために提供される。より詳細には、プロセッサは、いくつかの異なる所定のプロセッサ性能レベルのうちのいずれかで動作可能であり、各所定のプロセッサ性能レベルは関連付けられた供給電圧および動作周波数を有し、電圧および周波数供給回路１０は、現在選択されている所定のプロセッサ性能レベルによって決定付けられる必要な供給電圧および動作周波数を、プロセッサ２０に提供することができる。性能レベルは、ランタイム時に変動可能であり、通常は、適切なプロセッサ性能レベルを定期的に評価するため、および、異なる所定のプロセッサ性能レベルに対して任意の必要な変更を示すための信号を電圧および周波数供給回路１０に出力するために、いくつかのルーチンがプロセッサ・コア２２上で実行される。
【００３２】
プロセッサ・コア２２は、データ処理装置内の他の構成要素、すなわちプロセッサ２０以外の構成要素に対して、適切な電圧および周波数供給レベルを決定するためのルーチンも実行することが可能であり、電圧および周波数供給回路１０は、それらの他の構成要素に供給される電圧および周波数を適宜変更するように配置構成することができる。しかし、本発明の実施形態の考察では、本明細書に記載された性能管理技法は、プロセッサ・コア２２上で実行される性能設定ルーチンによって決定される必要なプロセッサ性能レベルに応じて、プロセッサ２０の性能レベルを制御することを目的とする。
【００３３】
図２は、プロセッサを複数の異なる性能レベルで動作させることが可能なデータ処理システムの構成要素をより詳細に示す概略図であり、システムは、データ処理システムによって使用されることになる性能レベルの選択を実行するように動作可能なインテリジェント・エネルギー管理サブシステムを備える。図２のシステムが図１の装置内で実施される実施例では、一実施形態では、周波数および電圧スケーリング・ハードウェア１６０以外の図２のすべての構成要素が、図１のプロセッサ・コア２２上で実行するソフトウェア・ルーチンによって実施され、一実施形態では、周波数および電圧スケーリング・ハードウェア１６０が、図１の電圧および周波数供給回路１０内に提供される。
【００３４】
データ処理システムは、関連付けられたタスク・イベント１３２を有するユーザ処理層１３０を含むオペレーティング・システム１１０を備える。オペレーティング・システム１１０は、また、スケジューラ１２２およびスーパバイザ１２４を有するオペレーティング・システム・カーネル１２０も備える。データ処理システムは、ＩＥＭカーネル１５２、性能設定モジュール１７０、およびパルス幅変調（ＰＷＭ）モジュール１８０を備えるインテリジェント・エネルギー管理（ＩＥＭ）サブシステム１５０を備える。データ処理装置の一部として、周波数および電圧スケーリング・ハードウェア１６０も提供される。
【００３５】
オペレーティング・システム・カーネル１２０は、オペレーティング・システム１１０の他の部分に基本サービスを提供するコアである。カーネルは、ユーザ・コマンドと対話するオペレーティング・システムの最も外側の部分であるシェル（図示せず）と対比される。カーネルのコードは、そのホスト・システム上のメモリなどの物理リソースに関する完全なアクセス権によって実行される。オペレーティング・システム・カーネル１２０のサービスは、システム・コアとして知られるプログラム・インターフェースのセットを通じて、システムの他の部分またはアプリケーション・プログラムによって要求される。スケジューラ１２２は、どのプログラムがカーネルの処理時間を共有するか、およびその順序を決定する。カーネル１２０内のスーパバイザ１２４は、スケジュールされた時間にプロセスごとにプロセッサへのアクセスを提供する。
【００３６】
ユーザ・プロセス層１３０は、データ処理システムによって実行される処理作業を、システム呼び出しイベントと、タスク切り替え、タスク作成、およびタスク終了のイベントを含む処理タスク・イベントとを介して、ならびに特定用途向けデータを介して、監視する。タスク・イベント１３２は、ユーザ・プロセス層１３０の一部として実行される処理タスクを表す。
【００３７】
インテリジェント・エネルギー管理サブシステム１５０は、変調期間を決定するため、および、必要なプロセッサ性能レベルを達成することを求めるためにその変調期間中に２つの所定のプロセッサ性能レベル間での切り替えを制御するための計算を実行するために、必要なプロセッサ性能レベルを計算する責務を負う。性能設定モジュール１７０は、それぞれが異なるアルゴリズムを使用して、異なるランタイム状況に応じた異なる特徴に従い、目標とする性能レベルを計算する複数の性能レベル設定ポリシーを有するポリシー・スタックを備えることができる。ポリシー・スタックは、性能設定ポリシーを調整し、実行時に所与の処理状況に対して適切な性能レベルを選択するために、異なる性能レベル予測を考慮する。実際には、目標とするプロセッサ性能レベルに関する包括的な推定値を決定するために、異なる性能設定ポリシー・モジュールの結果が照合および分析される。
【００３８】
上記ポリシー・スタックについては、その内容が参照により本明細書に組み込むものとする同時係属出願の米国特許出願第１１／４３１，９２８号に、より詳細に記載されており、その実施形態の記述は、本明細書の実施形態記述の最後に付録１として含まれている。これに記載された技法によれば、第１の性能設定ポリシーは、処理タスクのサービス品質値に依存して最高プロセッサ周波数および最低プロセッサ周波数のうちの少なくとも１つを計算するように動作可能である。ＩＥＭサブシステム１５０は、これらの性能限界（すなわち、最大および最低周波数）のうちの少なくとも１つに依存して、プロセッサの性能範囲を動的に変動させるように動作可能である。複数の性能設定ポリシーが提供される実施形態では、様々なポリシーが決定階層（またはアルゴリズム・スタック）に編成され、ここでは、階層の上位（より主要な）レベルでアルゴリズムによって出力される性能レベル・インジケータが、階層の下位（より主要でない）レベルによって出力される性能レベル・インジケータに優先するための権利を有する。様々な性能設定ポリシーの例は、（ｉ）ユーザ体験に直接影響を与える実行のエピソードを見つけるためのアクティビティを監視し、これらのエピソードが過度の遅延なしに完了することを確保する対話型性能レベル予測アルゴリズムと、（ｉｉ）特定の性能要件に関する情報を（システム呼び出しを介して）ＩＥＭサブシステム１５０に提出するように適合されたアプリケーション・プログラムによって出力される性能情報を照合する特定用途向け性能アルゴリズムと、（ｉｉｉ）最近の使用履歴に基づいてプロセッサの今後の使用を推定する見込みベースのアルゴリズムとを含む。
【００３９】
ポリシー・スタックおよび性能要求計算アルゴリズムの階層についての詳細は、参照により本明細書に組み込むものとする、米国特許出願第１０／６８７，９７２号に記載されている。米国特許出願第１１／４３１，９２８号に記載された技法によれば、処理タスクに関するサービス品質値に依存して少なくとも１つの性能限界（最低または最高周波数）を動的に計算する第１の性能レベル設定ポリシーは、ポリシー・スタック階層の最高レベルにある。したがってこのポリシーは、第１の性能設定ポリシーによって計算された受け入れ可能最低周波数より低いかまたは受け入れ可能最高周波数より高い値に、実際の性能レベルを設定するために、ポリシー・スタックの他のアルゴリズムからの任意の要求に優先する現在設定されている性能限界（最高および／または最低周波数の範囲）の範囲内にあるように、現在選択されたプロセッサ性能レベルを制約する。ポリシー・スタックの性能設定ポリシーは、ソフトウェア、ハードウェア、または（例えば、ファームウェア内の）それらの組み合わせで実施することができる。
【００４０】
オペレーティング・システム１１０は、タスク切り替えおよび所与の時点でのシステム内のアクティブ・タスクの数などのオペレーティング・システム・イベントに関する情報をＩＥＭカーネル１５２に供給する。次に、ＩＥＭカーネル１５２は、タスク情報およびオペレーティング・システム・パラメータを性能設定モジュール１７０に供給する。性能設定モジュール１７０は、それぞれの性能設定ポリシーのアルゴリズムに従って、適切なプロセッサ性能レベルを計算するために、ＩＥＭカーネルから受け取った情報を使用する。それぞれの性能設定ポリシーは、計算された必要な性能レベルをＩＥＭカーネル１５２に供給し、ＩＥＭカーネルは、包括的な必要なプロセッサ性能レベルの適切な選択を管理する。
【００４１】
包括的な必要なプロセッサ性能レベルが決定されると、そのレベルがＩＥＭカーネル１５２からＰＷＭモジュール１８０に転送される。以下でより詳細に論じるように、ＰＷＭモジュールは、必要なプロセッサ性能レベルに基づいて、必要なプロセッサ性能レベルより上の所定のプロセッサ性能レベルと、必要なプロセッサ性能レベルより下の所定のプロセッサ性能レベルとを選択するように、配置構成される。ＰＷＭモジュール１８０は、それ自体が使用可能な所定のプロセッサ性能レベルに関する情報を保持することが可能であるか、代替方法として、周波数および電圧スケーリング・ハードウェア１６０からこの情報を取得することができる。
【００４２】
ＰＷＭモジュール１８０は、変調期間を決定した後、２つの選択された所定のプロセッサ性能レベルのそれぞれについて、プロセッサがその所定のプロセッサ性能レベルで動作するべきである変調期間の比率を決定するようにも配置構成される。次に、ＰＷＭモジュール１８０は、選択された所定のプロセッサ性能レベルの間でプロセッサを切り替えるために変調操作を実行し、適切な駆動信号を周波数および電圧スケーリング・ハードウェア１６０に送信するか、または別の方法として、ＰＷＭモジュール１８０によって周波数および電圧スケーリング・ハードウェア１６０に出力された、タイミング情報および選択された所定のプロセッサ性能レベルの指示に基づき、周波数および電圧スケーリング・ハードウェア１６０内のハードウェア回路によって、実際の変調を実行するかの、いずれかが可能である。２つの選択された所定のプロセッサ性能レベル間で上記変調を実行することによって、ＩＥＭカーネル１５２によって示される必要なプロセッサ性能レベルに対応する平均レベルの性能を達成する目的で、それらの所定のプロセッサ性能レベル間で制御発振を実行することができる。
【００４３】
本発明の実施形態によれば、周波数および電圧の両方が、選択されたプロセッサ性能レベルに依存してスケーリングされる。プロセッサ周波数が減少する場合、エネルギー節約を達成するために電圧をスケールダウンすることができる。相補型金属酸化膜半導体（ＣＭＯＳ）技術で実施されるプロセッサの場合、所与の作業負荷に使用されるエネルギーは、電圧の２乗に比例する。
【００４４】
図３は、時間に対するプロセッサ性能を示すグラフである。決定された変調期間Ｔについて、必要なプロセッサ性能レベル（ＰＣＰＵ）より上の性能レベル（ＰＨＩＧＨ）と、必要なプロセッサ性能レベルより下の性能レベル（ＰＬＯＷ）との間で、性能レベルが変調される。より詳細には、ＰＷＭモジュール１８０は、性能レベルＰＨＩＧＨおよびＰＬＯＷを選択すると、図３ではｔＨＩＧＨとして表される性能レベルＰＨＩＧＨに留まるべき変調期間Ｔの比率と、図３ではｔＬＯＷとして表される低い方の性能レベルＰＬＯＷに留まるべき変調期間の比率とを決定する。パラメータｔＨＩＧＨおよびｔＬＯＷは、絶対期間で、すなわちある時間量として、計算することが可能であり、この場合、それらのパラメータの決定を実行する前に変調期間Ｔを知る必要があることを理解されよう。しかし、別の方法として、パラメータｔＨＩＧＨおよびｔＬＯＷを割合条件で計算することも可能であり、したがって、変調期間Ｔが決定されるのと並行して、またはこの決定の前に、決定を実施することができる。パラメータｔＨＩＧＨおよびｔＬＯＷのうちの１つのみをアクティブに決定すればよく、他方は変調期間Ｔから推論可能であることも理解されよう。
【００４５】
したがって、図３に示されるように、パラメータｔＨＩＧＨおよびｔＬＯＷが決定されると、性能レベルを変調することが可能であるため、期間ｔＨＩＧＨの場合、性能レベルは図３に示されるレベル２００であり、その後、これはポイント２１０で低い性能レベル２２０に遷移し、次に、変調期間Ｔの残りの期間維持される。
【００４６】
図４は、パラメータｔＨＩＧＨを決定するために、図２のＰＷＭモジュール１８０によって実行されるステップを示すフローチャートである。この例では、ｔＨＩＧＨは絶対期間で計算され、したがってステップ３００では、プロセスは必要なＣＰＵ性能レベルのみでなく、変調期間も受け取ることが想定される。その後、ステップ３０５で、最も近い使用可能な所定の性能レベルＰＨＩＧＨおよびＰＬＯＷが決定される。
【００４７】
その後、ステップ３１０で、必要なＣＰＵ性能レベルＰＣＰＵが、高い方の選択されたプロセッサ性能レベルＰＨＩＧＨの所定の割合よりも高いか否かが決定される。高い場合、プロセスはステップ３１５に分岐し、ここでパラメータｔＨＩＧＨが変調期間Ｔに等しく設定される。ステップ３１０で使用される割合は、通常、高い割合であり、その結果、ステップ３１０で、必要なプロセッサ性能レベルが上位の所定の性能レベルＰＨＩＧＨに近いと思われるか否かが判別される。上位の性能レベルＰＨＩＧＨに近い場合、どのような場合も変調技法を実行することによってエネルギーが消費されることになり、こうした状況では、いかなる潜在的な特典も打ち消してしまうことになるため、変調技法を実行することによってエネルギー消費の改善を追及する価値がないものとみなされる。その代わりに、単にｔＨＩＧＨを変調期間Ｔに等しく設定することで、変調期間全体にわたって性能レベルがＰＨＩＧＨに設定されることになり、切り替えは不要である。
【００４８】
ステップ３１０で、必要なプロセッサ性能レベルが上位の性能レベルＰＨＩＧＨに近くないものと判別されると想定すると、プロセスはステップ３２０へと進み、必要なプロセッサ性能レベルが下位の所定の性能レベルＰＬＯＷに等しいか否かが判別される。等しい場合、ステップ３３０で、ｔＨＩＧＨがゼロに等しく設定され、それによって、期間ｔＬＯＷが変調期間Ｔに等しく設定され、すなわち、性能レベルＰＬＯＷが変調期間全体にわたって使用されるため、いかなる切り替えの必要もなくなる。
【００４９】
しかし、ステップ３２０で、必要なプロセッサ性能レベルがＰＬＯＷに等しくないものと判別されると想定すると、プロセスはステップ３２５に進み、以下の式に従ってパラメータｔＨＩＧＨが算出される。
ｔＨＩＧＨ＝（ＰＣＰＵ−ＰＬＯＷ）／（ＰＨＩＧＨ−ＰＬＯＷ）＊Ｔ
【００５０】
その後、ステップ３３５で、プロセスは変調期間Ｔ、算出されたパラメータｔＨＩＧＨ、および上位の所定の性能レベルＰＨＩＧＨの指示を出力する。加えて、いくつかの実施形態では、プロセスはこの時点で、下位の所定の性能レベルＰＬＯＷの指示も出力することができる。より詳細には、変調が実際にソフトウェア内で実行される一実施形態では、ＰＨＩＧＨおよびＰＬＯＷの両方を出力することが適切であるとみなされる。しかし、ハードウェアによって変調が実行される実施形態では、２つの所定の性能レベルのうちの１つを出力するだけでよく、他方はハードウェアによって推論される。
【００５１】
図４ではパラメータｔＨＩＧＨが算出されたが、代替実施形態ではパラメータｔＬＯＷを算出できることも理解されよう。上記実施形態では、ステップ３１５で、ｔＬＯＷがゼロに等しく設定され、ステップ３３０で、ｔＬＯＷがＴに等しく設定されることになる。同様に、ステップ３２５の数式が以下の数式に置き換えられることになる。
ｔＬＯＷ＝（ＰＨＩＧＨ−ＰＣＰＵ）／（ＰＨＩＧＨ−ＰＬＯＷ）＊Ｔ
【００５２】
図５は、変調を直接実行するため、ならびに、使用されるべき所定の性能レベルを任意の特定の時点で識別する制御信号を、周波数および電圧スケーリング・ハードウェア１６０に対して発行するために、ＰＷＭモジュール１８０によって実行可能なプロセスを示す。ステップ４００では、パラメータｔＳＴＡＲＴが、データ処理システム内の現在の時刻スタンプ値に等しく設定される。その後、ステップ４０５で、パラメータＴ、ｔＨＩＧＨ、ＰＨＩＧＨ、およびＰＬＯＷが、それらの値を保持しているいくつかの内部ストレージから読み取られるが、これらのパラメータは、図４を参照しながら前述した計算プロセスのステップ３３５で生成されている。
【００５３】
その後、ステップ４１０で、現在時刻と時刻ｔＳＴＡＲＴとの差がパラメータｔＨＩＧＨよりも小さいか否かが判別される。小さい場合、プロセスはステップ４１５に進み、ここで性能レベルＰがＰＨＩＧＨに等しく設定され、性能レベルＰの指示が周波数および電圧スケーリング・ハードウェア１６０に出力される。同様に、ステップ４１０で、現在時刻と時刻ｔＳＴＡＲＴとの差がｔＨＩＧＨよりも大きいかまたは等しいと判別された場合、プロセスはステップ４２０へと進み、ここで性能レベルＰはＰＬＯＷに等しく設定され、再度、性能レベルＰの指示が周波数および電圧スケーリング・ハードウェア１６０に出力される。ステップ４１５または４２０に続いて、プロセスはステップ４２５へと進み、ここで、現在時刻と時刻ｔＳＴＡＲＴとの差が変調期間Ｔよりも大きいかまたは等しいか否かが判別される。大きいかまたは等しい場合、プロセスはステップ４００に戻り、パラメータｔＳＴＡＲＴがリセットされ、そうでない場合、プロセスはステップ４０５に戻る。図５で実行されるプロセスの結果として、変調期間Ｔの間、平均性能レベルＰＡＶＧが達成され、その平均性能レベルは以下の式によって得られることを理解されよう。
ＰＡＶＧ＝（ＰＨＩＧＨ＊ｔＨＩＧＨ＋ＰＬＯＷ＊ｔＬＯＷ）／Ｔ
【００５４】
さらに、図４を参照しながら前述したようにパラメータｔＨＩＧＨおよびパラメータｔＬＯＷが算出されると、平均性能レベルＰＡＶＧは必要なプロセッサ性能レベルＰＣＰＵと同一である。
【００５５】
本発明の実施形態に従って変調期間を決定することができるいくつかの方法がある。変調期間が増加すると、電力レベル間の切り替え頻度は少なくなるため、変調プロセスによって消費されるエネルギーが少なくなる。しかし、変調期間が長くなるほど、プロセッサが低い所定の性能レベルＰＬＯＷで動作される時間期間も長くなり、プロセッサがレベルＰＬＯＷに長く留まりすぎた場合、ＰＬＯＷが必要なプロセッサ性能レベルよりも低くなるため、タスクがそのデッドライン要件を満たさなくなる可能性がある。
【００５６】
一実施形態によれば、ＰＷＭモジュール１８０は、現在アクティブな各タスクについてタスク・デッドラインを決定すること、および、その後、決定された最も短いタスク・デッドラインを変調期間として選択することによって、変調期間を決定するように配置構成される。任意の特定のタスクに関するタスク・デッドラインは、データ処理装置によってタスクが完了されているはずの時間間隔に対応する。図６は、特定のアクティブ・タスクｎのスケジューリングを示し、ブロック４５０は、タスクがスケジューリングされた時間を示す。タスクはスケジューリングされるごとに、実行すべきある程度の処理量を有することになり、タスクがスケジューリングされる間にその処理量を実行しなければならない。タスク期間Ｔｎは、スケジューラ１２２によってタスクｎがスケジューリングされる定期的な間隔として定義することができる。スケジューリングされるタスクの期間４５０がタスク期間を超えることはできず、実際には通常、タスク４５０がその処理量を完了した後、タスク期間の終わりにタスクが再度スケジューリングされる前に、タスク・アイドル期間が存在することになる。あるタスクの場合、そのタスクについて受け入れ可能な応答時間を指定するタイムアウト時間も設定されることになる。これは特に、タイムアウト期間がユーザにとって受け入れ可能な応答時間を指定できる対話型タスクに当てはまる。こうした場合では、タスク・デッドラインは、タスク期間またはタイムアウト期間のいずれか短い方となる。
【００５７】
スケジューリングされた各タスクのタスク・デッドラインを評価すること、およびその後、それらのタスク・デッドラインのうちの最も短いものを変調期間として選択することによって、結果として、任意の組み合わせのアクティブ・タスクがそれらのデッドライン要件を満たすことが確実な変調期間が決定されることになる。しかし、上記技法は好適な変調期間が選択されることを確保するが、その変調期間は、デッドライン要件を依然として満たすことが可能である一方で、事実上、選択することができる最高値を表さない場合があり、したがってこうした状況では、実際に必要とされる以上に頻繁な性能レベル間での切り替えにより、不必要なエネルギーが消費されることになる。図７は、本発明の一実施形態に従い、変調期間を決定するためにＰＷＭモジュール１８０によって実行可能な代替技法を示す。図７に示されるように、ｎＭＡＸの現在アクティブなタスクが存在するものと想定し、ステップ５００でパラメータｎは１に等しく設定され、ステップ５０５で最大変調期間ＴＭＡＸが設定される。この値は、通常、この技法が実施されている特定のシステムを考慮して決定される。例えば、ＴＭＡＸは、プロセッサに関する加熱および放熱（冷却）グラフに基づいて選択することができる。ＴＭＡＸの値は、ｔＨＩＧＨおよびｔＬＯＷ期間中に、大規模なプロセッサ温度の変動がないように選択されるべきである。実際には、ＴＭＡＸの安全値は、単にプロセッサの動作挙動についての全般的理解に基づいて選択することができる。
【００５８】
その後、ステップ５１０で、現在のタスク番号ｎがｎＭＡＸよりも大きいか否かが判別される。第１の反復では明らかにそのような場合とはならず、プロセスはステップ５２０に進み、ここで現在のタスクについてタスク期間Ｔｎが取得される。ＰＷＭモジュール１８０は、この情報をＩＥＭカーネル１５２から取得することが可能であり、ＩＥＭカーネル１５２、または性能設定モジュール１７０内の性能レベル設定ポリシーのうちの１つのいずれかが、ＯＳカーネル１２０から受け取ったスケジューリング・イベントに基づいてタスク期間を決定する。その後、ＰＷＭモジュール１８０は、現在のタスクＰＭＩＮ（Ｔｎ）に関する最低性能レベルを取得する。この最低プロセッサ性能レベルは、様々な方法で取得することができる。例えば、スケジューラ１２２がレート・モノトニック・スケジューラである場合、ＰＭＩＮ値は以下の式によって得られ、
ＰＭＩＮ（Ｔｎ）＝ｓｕｍ（Ｐｉ）／Ｕ（ｎ）  （Ｔｉ≦Ｔｎのあらゆるタスクｉについて）および、
Ｕ（ｎ）＝ｎ＊（２１／ｎ−１）
上式で、Ｐｉはタスクｉに対応するプロセッサ作業負荷であり、Ｕ（ｎ）はＣＰＵ使用率であってタスク・スケジューリング・アルゴリズムに従って計算される。
【００５９】
他の例として、スケジューラ１２２がアーリエスト・デッドライン・ファースト・スケジューラである場合、最低性能レベルは、以下の式によって算出可能であり、
ＰＭＩＮ（Ｔｎ）＝ｓｕｍ（Ｐｉ）  （Ｔｉ≦Ｔｎのあらゆるタスクｉについて）
上式で、Ｐｉはタスクｉに対応するプロセッサ作業負荷である。
【００６０】
他の例として、スケジューラ１２２として汎用スケジューラが使用されるものと想定すると、前述の米国特許出願第１１／４３１，９２８号に記載の第１の性能レベル設定ポリシー（処理タスクに関するサービス品質の値に基づいて、性能レベルを動的に計算する）は、ステップ５２５で必要な最低性能レベルＰＭＩＮ（Ｔｎ）を直接生成することができる。この出願ではｆｍｉｎｉ値の計算について記載されており、ＰＭＩＮ値を以下のように算出することが可能であり、
ＰＭＩＮ＝ｆｍｉｎｉ／ｆＭＡＸ
上式で、ｆＭＡＸはプロセッサが受け入れ可能な最大周波数である。
【００６１】
ステップ５２５で取得される最低性能レベルは、すべての他のアクティブ・タスクとの併用で実行する現在のタスクｎを代表するものであり、その値は、前述のＯＳスケジューリング・アルゴリズムおよびタスクに課せられた制約（例えば、デッドライン、サービス品質）に応じて変化することになる。
【００６２】
ステップ５２５に続いて、プロセスはステップ５３０へと進み、最低性能レベルが下位の所定の性能レベルＰＬＯＷよりも低いかまたはこれに等しいか否かが判別される。低いかまたはこれに等しい場合、たとえそのタスクが全体として、プロセッサが下位の性能レベルＰＬＯＷで動作している期間中に実行される場合であっても、タスクの最低性能レベルが満たされることになるため、それ以上のアクションは不要であり、したがってプロセスは単にステップ５５０へと進み、ここでｎの値が増分された後、プロセスはステップ５１０に戻る。
【００６３】
しかし、最低性能レベルがＰＬＯＷよりも低くないかまたはこれに等しくない場合、プロセスはステップ５３５に進み、現在のタスクについて変調期間ＴＭＯＤ（ｎ）が算出される。
【００６４】
システム内の間隔ｔに関する最低平均性能は、
ｔ≦ｔＬＯＷの場合、
ＰＭＩＮ（ｔ）＝ＰＬＯＷ
ｔ＞ｔＬＯＷの場合、
ＰＭＩＮ（ｔ）＝［ＰＨＩＧＨ＊（ｔ−ｔＬＯＷ）＋ＰＬＯＷ＊ｔＬＯＷ］／ｔ
であり、すなわち、
ＰＭＩＮ（ｔ）＝ＰＨＩＧＨ＊（１−ｔＬＯＷ／ｔ）＋ＰＬＯＷ＊（ｔＬＯＷ／ｔ）
である。
【００６５】
所与の間隔ｔについてＰＭＩＮ（ｔ）が与えられた場合、対応する最大ｔＬＯＷは、
ｔＬＯＷ＝［ＰＨＩＧＨ−ＰＭＩＮ（ｔ）］／（ＰＨＩＧＨ−ＰＬＯＷ）＊ｔ
上式および充填因子パラメータから、変調期間は以下のようになる。
Ｔ＝［ＰＨＩＧＨ−ＰＭＩＮ（ｔ）］／（ＰＨＩＧＨ−ＰＣＰＵ）＊ｔ
【００６６】
任意の組み合わせのタスクが満たすべきサービス品質要件について、ｔ間隔は、システム内の任意のタスクの最短タスク期間よりも短い必要はない。ＰＬＯＷ≦ＰＭＩＮ（ｔ）≦ＰＣＰＵであるため、上記の条件からＴ≧ｔであり、変調期間は、システム内の任意のタスクの最短タスク期間よりも長いかまたは等しい。
【００６７】
したがって、上記の数式から、以下の式に従って現在のタスクに関する変調期間ＴＭＯＤ（ｎ）が算出できることが明らかであり、
ＴＭＯＤ（ｎ）＝［ＰＨＩＧＨ−ＰＭＩＮ（Ｔｎ）］／［ＰＨＩＧＨ−ＰＣＰＵ］＊Ｔｎ
上式で、
ＴＭＯＤ（ｎ）は、タスク変調期間であり、
ＰＨＩＧＨは、上記必要なプロセッサ性能レベルより上の選択された第１の所定のプロセッサ性能レベルであり、
ＰＭＩＮ（Ｔｎ）は、タスクに関する最低プロセッサ性能レベルであり、
ＰＣＰＵは、必要なプロセッサ性能レベルであり、
Ｔｎは、タスク・デッドラインである。
【００６８】
ステップ５４０で、ステップ５３５で算出された変調期間ＴＭＯＤ（ｎ）がＴＭＡＸの現在の値よりも短いか否かが判別され、短い場合、ステップ５４５で、ＴＭＡＸの値がＴＭＯＤ（ｎ）値に等しくなるように更新される。その後、プロセスはステップ５５０に進み、ｎが増分された後、ステップ５１０に戻るが、変調期間が現在のＴＭＡＸ値よりも短くないと判別された場合は、ステップ５４０から直接ステップ５５０に進む。
【００６９】
図７に示されたプロセスは、ステップ５１０でｎがｎＭＡＸよりも大きいと判別されるまで続行され、この時点ですべてのタスクが評価され、プロセスはステップ５１５へと分岐して、ＴＭＡＸの現在値が変調期間Ｔとして出力される。
【００７０】
前述の技法によれば、決定された変調期間は、決定された最短のタスク・デッドラインより長いかまたは少なくとも等しいため、システム内のいかなる組み合わせのアクティブ・タスクに対しても、デッドライン要件への合致にいかなる悪影響も与えることなく、決定された最短のタスク・デッドラインよりも長いかまたは等しい変調期間が可能となる。したがって、上記手法を使用して変調期間を算出することで、それ以外の方法で単に決定された最短のタスク・デッドラインが変調期間として選択されるケースよりも、長い変調期間の値を決定できるようにすることにより、変調を実行する際のエネルギー消費を削減することができる。
【００７１】
前述の図５は、２つの選択された性能レベルＰＨＩＧＨからＰＬＯＷの間で必要な変調を実行するための技法について説明した。図５のプロセスはＰＷＭモジュール１８０内のソフトウェアによって使用可能であるが、代替実施形態では、周波数および電圧スケーリング・ハードウェア１６０内のハードウェア回路によって実行可能である。図８は、周波数および電圧スケーリング・ハードウェア１６０のこうしたハードウェアの一実施形態を示す図であり、そのハードウェアには、ＰＷＭモジュール１８０によって算出されるパラメータＰＨＩＧＨ、Ｔ、およびｔＨＩＧＨが提供される。ハードウェア１６０は、ＰＨＩＧＨ値を受け取り、それに基づいて回線のうちの１つをＰＷＭ回路６１０につなぐことが可能なデマルチプレクサ６００を含む。図８に示された例では、４つの所定の性能レベルＰ３、Ｐ２、Ｐ１、およびＰ０が存在し、Ｐ３は最高性能レベルであり、Ｐ０は最低性能レベルである。ＰＷＭ回路６１０は時間パラメータＴおよびｔＨＩＧＨを受け取り、それに基づいて、電圧および周波数選択回路６２０への適切な駆動信号を生成する。より詳細には、ＰＷＭ回路６１０は、変調期間Ｔの第１の部分に関して、性能レベルＰＨＩＧＨに対応する電圧および周波数選択回路６２０への制御回線を駆動させ、受け取ったＰＨＩＧＨから推論可能な残りの変調期間に関して、性能レベルＰＬＯＷに対応する選択回路６２０への制御回線を駆動させる。ＰＷＭ回路６１０に関する詳細は、図９に示される。
【００７２】
図９は、ＰＷＭ回路６１０の一実施形態を示す図である。デマルチプレクサ６００は、デマルチプレクサによって受け取られるＰＨＩＧＨ信号の値に大きく依存して、入力回線６９０、６９２、６９３、６９４のうちの１つをアサートする。２つのカウンタ６５０、６５５、ラッチ６６０、およびインバータ６６２の形の制御論理が、パス６６５を解して制御信号を生成する。より詳細には、カウンタ６５０はレジスタから変調期間Ｔの値を受け取り、カウンタ６５５はレジスタからパラメータｔＨＩＧＨの値を受け取る。どちらのカウンタ（カウンタを増分または減分することが可能である）も、変調期間の始めにカウントを開始し、それらの入力値に対応するカウント値に達した場合、論理１の値を出力する。したがってカウンタ６５５は、パラメータｔＨＩＧＨによって表される期間をカウントすると、ラッチ６６０のセット入力に論理１の値を出力する。同様に、カウンタ６５０は、変調期間Ｔをカウントすると、ラッチ６６０のリセット入力に論理１の値を出力する。さらに、その時点でカウンタ６５０によって出力された論理１の値は、カウンタ６５０およびカウンタ６５５の両方をリセットするために使用される。ラッチ６６０は、初期に、そのＱ出力から論理ゼロ・レベルを出力し、この出力が、パス６６５を介して論理１の値を駆動するために、インバータ６６２によって逆転される。カウンタ６５５から論理１の値が受け取られた場合、Ｑ出力は、インバータ６６２によって逆転される論理１の値に変更され、パス６６５上に論理ゼロ値を生成する。その後、変調期間の終わりにカウンタ６５０によって論理１の値が出力されると、これがＱ出力を論理ゼロ値にリセットする。
【００７３】
したがって、時間ｔＨＩＧＨに対応する変調期間の第１の部分中に、パス６６５を介して論理１の値が現れ、変調期間の残りの部分については、パス６６５を介して論理ゼロの値が現れることがわかるであろう。パス６６５上に現れる信号は、ＡＮＤゲート６７０への入力の１つとして駆動され、マルチプレクサ６７５、６８０、６８５に対する制御信号としても使用される。したがって、４つの入力回線６９０、６９２、６９３、６９４のうちのどの１つがデマルチプレクサ６００によって高に駆動されるかに関係なく、変調期間の第１の部分、すなわちｔＨＩＧＨ部分で、対応する出力７００、７０２、７０３、７０４が高に駆動されることになる。次に、変調期間の残りの部分で、直下の性能レベルに対応する出力パスが、適切な論理ゲート６７０、６７５、６８０、６８５によって選択されることになる。一例として、制御回線６９０を介してＰ３レベルが高にアサートされた場合、変調期間の第１の部分では、ＡＮＤゲート６７０への両方の入力が論理１レベルとなり、これによって論理１レベルがパス７００を介して出力されることになる。カウンタ６５５がｔＨＩＧＨに関連付けられたカウント値に達すると、論理ゼロ値をパス６６５を介して出力させることになり、これによってＡＮＤゲート６７０はオフとなり、マルチプレクサ６７５が、パス６９０を介して受け取った入力を、パス７０２を介して出力することになる。したがって、変調期間の残りの部分では、性能レベルＰ２に関連付けられた制御回線７０２がアサートされることになる。
【００７４】
したがって、図８および図９に示された実施形態は、図２の周波数および電圧スケーリング・ハードウェア内にハードウェア変調回路の一実施例を提供することがわかるであろう。
【００７５】
前述の本発明の実施形態から、上記実施形態が、装置の電圧および周波数供給回路によってサポートされるシステム以外の中間性能レベルをシミュレートすることによって、複数の所定のプロセッサ性能レベルをサポートするシステム内で達成可能なエネルギー節約を改善することがわかるであろう。より詳細には、変調は、必要なプロセッサ性能レベルに対応する平均プロセッサ性能を達成するために、２つのプロセッサ性能レベル間で実行される。本発明の実施形態に従った技法を採用することによって、サービス品質に影響を与えることなく、ＣＰＵ性能レベルの数が限られたシステム内で、改善されたエネルギーの節約を達成することができる。さらに、上記技法を使用することにより、エネルギー節約とサービス品質との間でバランスを達成するために、性能設定ポリシーを調整することがさらに容易になる。本発明の実施形態によれば、パルス幅変調パラメータは、サービス品質に影響を与えないことを確保する一方で、システムが最適な数の性能レベル切り替えを実行するように決定される。
【００７６】
以下の付録１は、同時係属出願の米国特許出願第１１／４３１，９２８号の実施形態の説明であり、汎用スケジューラを使用する場合に最低プロセッサ性能レベルを算出できるようにする技法について説明する。
【００７７】
付録１
図１０は、複数の異なる性能レベルで動作可能であり、データ処理システムによって使用される性能レベルの選択を実行するように動作可能なインテリジェント・エネルギー管理サブシステムを備えるデータ処理システムを示す概略図である。データ処理システムは、タスク・イベント・モジュール１１３２を有するユーザ・プロセス層１１３０を備えるオペレーティング・システム１１１０を備える。オペレーティング・システム１１１０は、スケジューラ１１２２およびスーパバイザ１１２４を有するオペレーティング・システム・カーネル１１２０も備える。データ処理システムは、ＩＥＭカーネル１１５２と、第１の性能設定ポリシー・モジュール１１５６および第２の性能設定ポリシー・モジュール１１５８を有するポリシー・スタックとを備えるインテリジェント・エネルギー管理（ＩＥＭ）サブシステム１１５０を備える。データ処理装置の一部として、周波数および電圧スケーリング・ハードウェア１１６０も提供される。
【００７８】
オペレーティング・システム・カーネル１１２０は、オペレーティング・システム１１１０の他の部分に基本サービスを提供するコアである。カーネルは、ユーザ・コマンドと対話するオペレーティング・システムの最も外側の部分であるシェル（図示せず）と対比される。カーネルのコードは、そのホスト・システム上のメモリなどの物理リソースに関する完全なアクセス権によって実行される。オペレーティング・システム・カーネル１１２０のサービスは、システム・コアとして知られるプログラム・インターフェースのセットを通じて、システムの他の部分またはアプリケーション・プログラムによって要求される。スケジューラ１１２２は、どのプログラムがカーネルの処理時間を共有するか、およびその順序を決定する。カーネル１１２０内のスーパバイザ１１２４は、スケジュールされた時間にプロセスごとにプロセッサへのアクセスを提供する。
【００７９】
ユーザ・プロセス層１１３０は、データ処理システムによって実行される処理作業を、システム呼び出しイベントと、タスク切り替え、タスク作成、およびタスク終了のイベントを含む処理タスク・イベントとを介して、ならびに特定用途向けデータを介して、監視する。タスク・イベント１１３２は、ユーザ・プロセス層１１３０の一部として実行される処理タスクを表す。
【００８０】
インテリジェント・エネルギー管理サブシステム１１５０は、プロセッサ性能レベルを計算および設定する責務を負う。ポリシー・スタック１１５４は、複数の性能レベル設定ポリシー１１５６、１１５８を備え、そのそれぞれが異なるアルゴリズムを使用し、異なる特徴に従い、異なる実行時状況に従って、目標となる性能レベルを計算する。ポリシー・スタック１１５４は、性能設定ポリシー１１５６、１１５８を調整し、実行時の所与の処理状況について適切な性能レベルを選択するために、異なる性能レベル予測を考慮する。実際には、目標とするプロセッサ性能レベルに関する包括的な推定値を決定するために、２つの異なる性能設定ポリシー・モジュール１１５６、１１５８の結果が照合および分析される。この特定の実施形態では、第１の性能設定ポリシー・モジュール１１５６は、処理タスクのサービス品質値に依存して最高プロセッサ周波数および最低プロセッサ周波数のうちの少なくとも１つを計算するように動作可能である。ＩＥＭサブシステム１１５０は、これらの性能限界（すなわち、最大および最低周波数）のうちの少なくとも１つに依存して、プロセッサの性能範囲を動的に変動させるように動作可能である。図１０の実施形態では、ポリシー・スタック１１５４が２つの性能設定ポリシー１１５６、１１５８を有するが、代替実施形態では、ポリシー・スタック１１５４内に追加の性能設定ポリシーが含まれる。複数の性能設定ポリシーが提供される上記実施形態では、様々なポリシーが決定階層（またはアルゴリズム・スタック）に編成され、ここでは、階層の上位（より主要な）レベルでアルゴリズムによって出力される性能レベル・インジケータが、階層の下位（より主要でない）レベルによって出力される性能レベル・インジケータに優先するための権利を有する。様々な性能設定ポリシーの例は、（ｉ）ユーザ体験に直接影響を与える実行のエピソードを見つけるためのアクティビティを監視し、これらのエピソードが過度の遅延なしに完了することを確保する対話型性能レベル予測アルゴリズムと、（ｉｉ）特定の性能要件に関する情報を（システム呼び出しを介して）ＩＥＭサブシステム１１５０に提出するように適合された、アプリケーション・プログラムによって出力される性能情報を照合する特定用途向け性能アルゴリズムと、（ｉｉｉ）最近の使用履歴に基づいてプロセッサの今後の使用を推定する見込みベースのアルゴリズムとを含む。ポリシー・スタックおよび性能要求計算アルゴリズムの階層についての詳細は、参照により本明細書に組み込むものとする、米国特許出願第１０／６８７，９７２号に記載されている。処理タスクに関するサービス品質値に依存して少なくとも１つの性能限界（最低または最高周波数）を動的に計算する第１の性能レベル設定ポリシー１１５６は、ポリシー・スタック１１５４階層の最高レベルにある。したがってこのポリシーは、第１の性能設定ポリシー１１５６によって計算された、受け入れ可能最低周波数より低いかまたは受け入れ可能最高周波数より高い値に、実際の性能レベルを設定するために、ポリシー・スタック１１５４の他のアルゴリズムからの任意の要求に優先する現在設定された性能限界（最高および／または最低周波数の範囲）の範囲内にあるように、現在選択されたプロセッサ性能レベルを制約する。ポリシー・スタック１１５４の性能設定ポリシーは、ソフトウェア、ハードウェア、または（例えば、ファームウェア内の）それらの組み合わせで実施することができる。
【００８１】
オペレーティング・システム１１１０は、タスク切り替えおよび所与の時点でのシステム内のアクティブ・タスクの数などのオペレーティング・システム・イベントに関する情報を、ＩＥＭカーネル１１５２に供給する。次にＩＥＭカーネル１１５２は、タスク情報およびオペレーティング・システム・パラメータを、それぞれの性能設定ポリシー・モジュール１１５６、１１５８に供給する。性能設定ポリシー・モジュール１１５６、１１５８は、それぞれのアルゴリズムに従って、適切なプロセッサ性能レベルを計算するために、ＩＥＭカーネルから受け取った情報を使用する。それぞれの性能設定ポリシー・モジュール１１５６、１１５８は、計算された目標とする性能レベルをＩＥＭカーネルに供給し、ＩＥＭカーネルは、包括的な目標とするプロセッサ性能レベルの適切な選択を管理する。プロセッサの性能レベルは、複数の異なる可能な性能レベルから選択される。しかし、本技法によれば、ＩＥＭカーネルによって選択できる可能な性能レベルの範囲は、異なる処理タスクについて必要なサービス品質に関するランタイム情報に依存して、動的に変動する。周波数および電圧スケーリング・ハードウェア１１６０は、現在設定された動作周波数および電圧に関してＩＥＭカーネルに情報を供給し、ＩＥＭカーネルは、現在の処理要件に依存して、必要な目標周波数に関する情報を周波数および電圧スケーリング・ハードウェアに供給する。プロセッサ周波数が減少する場合、エネルギー節約を達成するために電圧をスケールダウンすることができる。相補型金属酸化膜半導体（ＣＭＯＳ）技術で実施されるプロセッサの場合、所与の作業負荷に使用されるエネルギーは、電圧の２乗に比例する。
【００８２】
図１１は、図１０のデータ処理システム内での２つの異なる処理タスクの実行を示す概略図である。図１１における各タスクについての横軸は時間を表す。図１１に示されるように、各タスクは、待機期間１２２０によって分離された、複数の離散スケジューリング期間１２１０として実行される。待機期間中、他の現在実行中の処理タスクは、データ処理システムによってスケジューリングされる。データ処理システム内で現在実行中のタスクが２つのみであるこのケースでは、タスク１のスケジューリング期間１２１０がタスク２の待機期間１２２２と一致し、逆に、タスク２のスケジューリング期間１２１２がタスク１の待機期間１２２０と一致することがわかる。
【００８３】
図１１では、いくつかのタスク特有のパラメータが示される。より詳細には、時間枠１２３０は、このケースでは個々のスケジューリング期間の典型的な持続時間に対応する平均タスク切り替え間隔τに対応する。所与のスケジューリング「エピソード」が複数のスケジューリング期間を含むことに留意されたい。例えば、プログラム・サブルーチンの場合、サブルーチンの各実行はスケジューリング・エピソードに対応し、各スケジューリング・エピソードについて実行する必要のある処理は、いくつかの離散スケジューリング期間中に実行されることになる。所与のタスクのスケジューリング期間は、プロセッサによるタスク切り替えによって中断される。時間間隔１２３２は、タスク２のタスク完了時間に対応し、（所与のスケジューリング・エピソードについて）処理タスク２の最初のスケジューリング・エピソードの開始から、タスクが完了する処理タスク２の最後のスケジューリング期間の終わりまでの時間を表す。タスク期間またはデッドラインは、時間間隔１２３４に対応する。図１１から、タスク完了時間間隔１２３２の終わりと、タスク２のデッドライン（すなわち、時間枠１２３４の終わり）との間には、「スラック時間」があることがわかる。スラック時間は、所与のタスクが実際に完了した時点から、完了した可能性はあるが依然としてタスク・デッドラインを満たす最新時間までの間の時間に対応する。システム内のサービス品質を保持しながらエネルギーを節約するためには、このスラック時間の削減に努めるのみでよく、時間およびデッドラインのいかなる他の削減も不要となる。
【００８４】
プロセッサがフル機能で実行中の場合、多くの処理タスクはそのデッドライン以前に完了することになり、この場合、プロセッサは次のスケジュール済みタスクが開始されるまでアイドル状態となる可能性がある。タスクの実行完了から次のスケジューリング済みイベントの始まりまでの間のアイドル時間が長いほど、プロセッサは、性能目標を満たすために必要以上に高い周波数で実行することになるため、より非効率的なシステムに相当する。データを生成するタスクに関するタスク・デッドラインの例は、他のタスクが使用するために生成されたデータが必要な時点である。対話型タスクに関するデッドラインは、ユーザの知覚しきい値（例えば、５０〜１００ミリ秒）となる。対話型タスクに関する便利なサービス品質測定には、より短いタスク期間のタスク・デッドライン、およびユーザにとって受け入れ可能な応答時間を指定する値を定義することが含まれる。したがって、知覚されるサービス品質に関して応答時間が重要なこれら処理タスクの場合、タスク・デッドラインをタスク期間よりも短い値に適切に設定することができる。
【００８５】
フル性能の後でアイドリングすることは、デッドラインをより正確に満たすようにタスクをゆっくり完了させることよりもエネルギー効率が悪い。しかし、ＣＰＵ周波数をある値よりも下げることは、処理アプリケーションに関する「サービス品質」の低下につながる可能性がある。特定の処理タスクに関するサービス品質測定の可能な方法の１つは、いくつかの実行エピソード中に満たされたタスク・デッドラインの割合を監視することである。期間の短い定期的なアプリケーションまたはタスクの場合、通常、タスク・デッドラインは次の実行エピソードの開始である。定期的なアプリケーションまたは期間の長い定期的なアプリケーションの場合、タスク・デッドラインは、アプリケーションが対話型である（短いデッドライン）か、バッチ処理を実行する（長い時間がかかる可能性がある）かに依存する。
【００８６】
図１１のケースでは、推定タスク期間（すなわち、タスク・デッドラインより長いかまたは等しい）は、時間間隔１２３６に対応する。デバイスのアイドル時間は、完了時間の終わり１２３２から推定期間Ｔの終わり１２３６までの間の時間に対応する。したがって、スラック時間はアイドル時間に含められ、デッドラインが推定期間に等しい場合、すなわち１２３４および１２３６が同じ場合、アイドル時間およびスラック時間は等しい。時点１２４４は、その時までにタスクが所定量の処理を完了しているはずであるタスク・デッドラインに対応する。しかし、図１０の第１の性能設定ポリシー・モジュール１１５６は、タスク・デッドラインの上限１２４４に関する許容ウィンドウを定義することによって、所与のタスク・デッドラインを満たす場合の許容量を見込むことが可能であり、上記ウィンドウは、図１１でΔｔによって示される。これにより、特に、データ処理システムが、連続する範囲からの選択を可能にするよりも、複数の離散プロセッサ性能レベル間での選択を可能にする場合、現在のプロセッサ性能レベルの設定がより柔軟になる。
【００８７】
図１２は、ＭＨｚ単位（ｘ軸）のプロセッサ周波数に対してタスク・デッドライン（ｙ軸）を満たす確率を示すグラフである。この例では、データ処理システム上で実行中のアクティブ・タスクの合計数は２（図１１の場合と同様）であり、タスク切り替え間隔は１ミリ秒（ｍｓ）である。この例での最大プロセッサ周波数は２００ＭＨｚである。確率曲線が適用されるタスクは、０．１秒（１００ｍｓ）のタスク期間またはデッドラインと、１秒当たり５００回のタスク切り替えレートを有する。この特定の例では、約７５ＭＨｚ未満のプロセッサ周波数に関してタスク・デッドラインを満たす確率はほぼゼロであり、デッドラインを満たす確率は、８５ＭＨｚから１１０ＭＨｚの周波数範囲で、ほぼ線形に増加することがわかる。１６０ＭＨｚおよびそれ以上の周波数では、確率が１に近づくため、タスクはそのタスク・デッドラインを満たすことがほぼ保証される。
【００８８】
図１０のＩＥＭサブシステム１１５０の第１の性能設定ポリシー１１５６が、図１２の確率曲線に対応するタスクについて、タスク・デッドラインを満たす受け入れ可能な確率が確率０．８に対応することを指定するケースを考えてみる。確率曲線（図１２）から、このデッドラインを満たす確率を達成するために適切な最低プロセッサ周波数ｆｍｉｎｉは、１１４ＭＨｚであることがわかる。したがって、ＣＰＵ周波数に関するタスク特有の下限ｆｍｉｎｉは１１４ＭＨｚである。しかし、ＣＰＵ周波数の包括的下限は、同時にスケジューリングされたタスクそれぞれについて実行される同様の決定に依存することになる。
【００８９】
図１２の確率曲線に関連付けられたタスクの場合、プロセッサ周波数を１４０ＭＨｚ未満に低下させることは、対応するサービス品質の低下につながることがわかる。一般に、タスク・デッドラインを満たす確率は、プロセッサ周波数が低下するにつれて徐々に減少する。所与のタスクがそのデッドラインに達する確率は、明らかにプロセッサ周波数の関数である。しかしこの確率は、システム内で実行中のタスクの数、スケジューリングの細かさ、タスク優先度、などの他のシステム・パラメータの関数でもある。本技術によれば、ＩＥＭカーネル１１５２が現在の周波数および電圧を選択することができる周波数範囲は動的に変動し、図１２に示されるような確率関数に依存して制約される。しかし、個々のタスクに関するデッドラインを満たす確率だけではなく、複数のタスクに関するデッドラインを満たす確率を考慮に入れることができることが了解されよう。
【００９０】
図１０のタスク・スケジューラ１１２２によってスケジューリングされたタスク・スケジューリング・イベントは、通常、時間におけるポアソン分布を有する。この事実は、以下の項目の関数として、タスク・デッドラインに達するかまたは達しない確率を決定するために使用される。
・プロセッサ周波数
・タスクの（確率的に決定された）完了するために必要なサイクル数
・タスクのデッドライン
・タスクの優先度
・スケジューラの細かさまたはタスク切り替え間隔
・システム内のタスク数
【００９１】
図１２にプロットされた確率関数などの確率関数を記述する数式は、タスク・デッドラインを満足するかしないかの所与の確率について、適切なプロセッサ周波数を算出するために使用することができる逆確率を導出するために使用される。次に、この特定の実施形態において、所望の周波数限界が算出される方法、および図１２の確率関数が導出される方法について、詳細に考察する。
【００９２】
所与の処理タスクがタスク・デッドラインを満足する（または満足しない）確率は、オペレーティング・システム・パラメータおよびタスク特有のパラメータに依存して、第１の性能設定ポリシー・モジュールによって算出される。
【００９３】
データ処理システムによる実行用にスケジューリングされたタスクｉの場合、個々の処理タスクｉに関してタスク・デッドラインを満足することのできる最低の受け入れ可能なプロセッサ周波数（ｆｍｉｎｉ）を算出するために、以下のタスク特有のパラメータが関係する。
・Ｃｉ：デッドラインの前に、タスクの代わりに実行する必要のある処理サイクル数
・Ｔｉ：タスク・デッドライン（通常、期間が長くない場合、期間に等しい）
・αｉ：スケジューラ優先度パラメータ
・Ｐｈｉ：タスクがデッドラインを満足する確率
システム（包括的）パラメータは、以下のとおりである。
・ｆＣＰＵ：ＣＰＵ周波数
・ｎ：所与の時点でのシステム内のアクティブなタスク数
【００９４】
ｔ秒間隔にｎ個のアクティブなタスクが存在し、タスク切り替えがτ秒ごとに発生する（τは、μｓまたはｍｓ程度）と想定すると、特定のタスクが（Ｎｔ）にスケジュールされる期間数は、以下の確率関数を伴うポワソン分布に従い、
【数１】
2008165798.tif 000003
上式で、λは時間単位での特定タスクに関するタスク切り替えのレートまたは予測数であり、
【数２】
2008165798.tif 000004
および
【数３】
2008165798.tif 000005
であって、ρは、ＯＳスケジューラによって特定タスクに割り振られるＣＰＵ占有率である。優先度の等しいタスクの場合、αｉ＝１∀ｉ＝１．．．ｎおよびρ＝１／ｎであることに留意されたい。αはタスク優先度パラメータである。これは、各タスクに関連付けられるオペレーティング・システム（またはスケジューラ）特有のパラメータである。計算は単純ではないが、ρは統計的に決定することができる。
【００９５】
ＭおよびＮが、λＭおよびλＮレートの２つの独立したポワソン分布ランダム変数である場合、結果として生じるＭ＋Ｎ変数も同様に、λＭ＋λＮのポワソン分布である。このポワソン変数のプロパティは、システム内のタスクの数が期間Ｔにおいて一定でない場合に、結果として生じる変数が
2008165798.tif 000006
レートのポワソン分布であるというケースを簡略化する。
【００９６】
ポワソン分布は、正規分布（λｔが大きくなるほど近似が良好となる）によって近似することが可能であり、
【数４】
2008165798.tif 000007
上式で、μ＝λｔ、σ２＝λｔ、であり、Ｆｎ（ｘ）は累積正規分布関数である。
【数５】
2008165798.tif 000008
【００９７】
λｔの値が小さい場合、近似は０．５の連続補正係数を使用することで改善可能である。
【００９８】
ランダム正規変数Ｘは、以下の累積分布関数を有する標準正規変数Ｚ＝（Ｘ−μ）／σと等価であり、
【数６】
2008165798.tif 000009
上式で、ｅｒｆ（ｘ）は、ｅｒｆ（０）＝０、ｅｒｆ（−∞）＝−１、ｅｒｆ（∞）＝１の制限を備える誤差関数（単調増加）である。
【数７】
2008165798.tif 000010
誤差関数およびその逆数は、様々な数表で事前に計算されているのを見つけるか、またはＭａｔｌａｂＲＴＭ、ＭａｔｈｅｍａｔｉｃａＲＴＭ、またはＯｃｔａｖｅＲＴＭなどの数学ソフトウェア・パッケージを使用して決定することができる。
【００９９】
近似された累積ポワソン分布関数は、
【数８】
2008165798.tif 000011
となり、上式で、λは所与の時間におけるタスクｉに関するタスク切り替えの予測数であり、Ｎｔはスケジューリング・イベントを表す乱数であり、ｋは所与のイベントの発生回数であり、Ｐ（Ｎｔ≦ｋ）はＮｔが所与のｋより小さいかまたは等しい確率であり、これはデッドラインを満足しない確率、すなわち、タスクがスケジューリングされた回数がそのジョブ、Ｃサイクルを完了するために必要な数「ｋ」より少ない確率であり、ｔは秒単位の時間である。
【０１００】
タスクｉがデッドラインを満足しない確率はＰｍであり、これは、デッドラインを満足する確率、Ｐｈ＝１−Ｐｍに従う。
【０１０１】
Ｃが時間枠Ｔ内の特定のタスクに代わって実行されるべきサイクル数である場合、デッドラインを満足しないことがないようにタスクｉがスケジューリングされる必要のある回数（ｋ）は、
【数９】
2008165798.tif 000012
となり、上式でτは秒単位のタスク切り替え期間であり、ｆＣＰＵは現在のプロセッサ周波数である。
【０１０２】
デッドラインに達しない確率は、以下のようになる。
【数１０】
2008165798.tif 000013
【０１０３】
個々のタスクｉに関して、タスクｉに関するプロセッサ（ＣＰＵ）作業負荷Ｗは、以下のように与えられる。
【数１１】
2008165798.tif 000014
【０１０４】
λ＝ρ／τ（この式で、λは所与の時間において予測されるタスク切り替え数であり、ρはＯＳスケジューラ１１２２によってタスクｉに割り振られるＣＰＵ占有率であり、τは秒単位のタスク切り替え期間である）であるため、個々のタスクに関してタスク・デッドラインに達しない確率Ｐｍは、以下のように与えられる。
【数１２】
2008165798.tif 000015
【０１０５】
前述のＰｍに関する数式から、同じ優先度および同じ期間を有するタスクの場合、関連付けられた個々のＣＰＵ作業負荷が高いタスクほど、タスク・デッドラインに達しない尤度が高くなることがわかる。さらに、同じＣＰＵ作業負荷を有するタスクについて考えると、期間（Ｔ）の長いタスクほど、タスク・デッドラインを満足しない確率が高くなる。
【０１０６】
デッドラインを満足する確率（Ｐｈ＝１−Ｐｍ）が確定されるため、前述の数式によってｋの一次方程式が導かれ、
【数１３】
2008165798.tif 000016
上式で、タスク・デッドラインを満足しない確率に関する逆確率関数ｚｍは、以下のように与えられる。
【０１０７】
【数１４】
2008165798.tif 000017
前述の数式から、デッドラインを満足しない所与の確率に関するＣＰＵ周波数は、以下のように与えられ、
【数１５】
2008165798.tif 000018
上式で、Ｃは時間枠Ｔ内の特定のタスクのために実行されるべきサイクル数であり、ｋは、タスクｉがデッドラインを満足しないことがないようにスケジューリングされる必要のある回数であり、Ｔはタスク・デッドラインに対応する時間枠（通常はタスク期間に等しい）であり、ρは、ＯＳスケジューラ１１２２によってタスクｉに割り振られるＣＰＵ占有率であり、τは、秒単位のタスク切り替え期間であり、ｚｍは、タスク・デッドラインに達しない尤度に関する逆確率関数である。
【０１０８】
図１０の第１の性能設定ポリシー・モジュール１１５６によって実施されるアルゴリズムによれば、システム内のあらゆるタスクに、デッドラインを満足しない最高受け入れ可能確率（デッドラインを満足する最低受け入れ可能確率）が割り当てられる。各タスクに割り当てられる実際の所定の受け入れ可能確率は、ユーザによって指定可能であり、処理タスクのタイプに依存し、例えば、ユーザ対話に関する処理タスクは、ユーザが受け入れ可能な応答時間を確保するために、デッドラインを満足する高い最低受け入れ可能確率を有することになるが、タイム・クリティカルでない処理タスクには、より低い最低受け入れ可能確率が割り当てられることになる。例えば、マシン上で実行するビデオ再生アプリケーションは、良好なリアルタイム応答を必要とするが、電子メール・アプリケーションはこれを必要としない。
【０１０９】
話を簡単にするために、この確率は、ある範囲内のある所定の離散値のみを採用することができる。これらの所定の値に基づいて、逆確率関数ｚｍ（前述の式１５参照）が算出され、図１０のデータ処理システムによってメモリ内に（例えば、テーブルとして）格納される。
【０１１０】
図１０の第１の性能設定ポリシー・モジュール１１５６は、個々の処理タスクｉに関して、プロセッサ作業負荷Ｗ（前述の式１２参照）および期間Ｔを算出および追跡するように動作可能である。ＷおよびＴのこれらの値ならびにシステム・パラメータ（例えば、ｎおよびｆＣＰＵ）に基づき、モジュールは、ｎ個のスケジューリング済みタスクそれぞれについて、デッドラインを満足しない確率Ｐｍが、それぞれのタスクに関連付けられた所定の受け入れ可能Ｐｍよりも小さいように、最低ＣＰＵ周波数ｆｍｉｎｉを算出する。したがって、システムＣＰＵ周波数ｆＣＰＵｍｉｎの下限は、ｎ個の個々のタスク特有の最低ＣＰＵ周波数ｆｍｉｎｉの最高値に対応する。
【０１１１】
定数τ（ＯＳスケジューラによってタスクｉに割り振られるＣＰＵ占有率）およびρ（秒単位のタスク切り替え期間）は、ＩＥＭサブシステムによってランタイム時に統計的に決定される。
【０１１２】
図１３は、図１０の第１の性能設定ポリシー１１５６が、ＩＥＭカーネル１１５２が複数の可能な性能レベルを選択することが可能な性能範囲を動的に変動させるために、動的周波数スケーリングを実行する方法を概略的に示すフローチャートである。フローチャートによって示されるプロセス全体が、複数の同時にスケジューリングされた処理タスクそれぞれについて、タスク・デッドラインを満たす確率が受け入れ可能領域内に存在できるようにする最低受け入れ可能プロセッサ周波数ｆＣＰＵｍｉｎの算出に向けられている。最低受け入れ可能周波数ｆＣＰＵｍｉｎは、個々のタスクそれぞれに適切であるように算出された、最高周波数を表す。値ｆＣＰＵｍｉｎは、現在のプロセッサ性能レベルを設定するために、ＩＥＭカーネル１１５２によって周波数および電圧スケーリング・モジュール１１６０に出力可能な目標周波数の下限を表す。値ｆＣＰＵｍｉｎは動的に算出され、図１０のＯＳカーネル１１２０がスケジューリング操作を実行するごとに再計算される。
【０１１３】
代替実施形態では、下限の代わりに、または下限に加えて、上限ｆＣＰＵｍａｘが算出されることに留意されたい。上限ｆＣＰＵｍａｘは、タスク特有の最高周波数ｆｍａｘｉに基づいて算出され、これは、そのタスクに関連付けられたタスク・デッドラインを満たす必要な確率に関する指定された上限に基づくものである。包括的に決まる値ｆＣＰＵｍａｘは、最も小さいタスク特有の最高周波数ｆｍａｘｉを表し、何らかのタスクについてデッドラインに達しない確率を増加させないように、ｆＣＰＵｍｉｎよりも大きいものとする。良好な電圧設定システムの目標は、相対的に安定した予測セットに到達すること、および振動を避けることである。最高周波数の上限を導入することの利点は、これが、システムが相対的に安定した予測セットに到達するのを助ける（振動を避けるか、または少なくとも減少させる）ことである。振動はエネルギーを無駄にするため、できる限り早期に正しい安定予測に達することが望ましい。
【０１１４】
図１３のフローチャートを参照すると、プロセスはステージ１４１０から開始され、ステージ１４２０へ直接進み、オペレーティング・システム１１１０によってＩＥＭカーネル１１５２に供給された情報に基づき、第１の性能設定ポリシー・モジュール１１５６によって、様々なオペレーティング・システム・パラメータが推定される。オペレーティング・システム・パラメータは、現在データ処理システムによってスケジューリングされているタスクの合計数と、現在のプロセッサ周波数ｆＣＰＵとを含む。次に、ステージ１４３０で、タスクのループ指数ｉが初期設定され、包括的最低プロセッサ周波数ｆＣＰＵｍｉｎがゼロに等しく設定される。
【０１１５】
ステージ１４４０で、タスクのループ指数ｉが増分され、次にステージ１４５０で、ｉが、システム内で現在実行中のタスクの合計数よりも小さいかまたはこれに等しいか否かが判別される。ｉがシステム内のタスク数を超える場合、プロセスはステージ１４６０に進み、次のタスク・スケジューリング・イベントまで、ｆＣＰＵｍｉｎはその現在値（ｆｍｉｎｉのすべてのｉの最大値に対応する）に確定され、プロセスはステージ１４７０で終了する。次に、ポリシー・スタック１１５４は、ＩＥＭカーネルに対して、ｆＣＰＵｍｉｎより大きいかまたは等しい目標プロセッサ性能レベルｆＣＰＵｔａｒｇｅｔを指定するために、第１の性能設定ポリシーによって制約されることになる。
【０１１６】
しかし、ステージ１４５０で、ｉが、システム内で現在実行中のタスクの合計数よりも小さいと判別された場合、プロセスはステージ１４８０に進み、様々なタスク特有のパラメータが推定される。より詳細には、以下のタスク特有のパラメータが推定される。
（ｉ）  ρｉ：オペレーティング・システム・スケジューラによってタスクｉに割り振られるＣＰＵ占有率（この値は、他の現在スケジューリングされているタスクに対するタスクｉの優先度に依存する）
（ｉｉ）  τ：タスク切り替え期間
（ｉｉｉ）  Ｃ：タスクｉに代わってそのデッドラインまでに実行されるべきサイクル数
（ｉｖ）  Ｔ：タスクｉに関連付けられたタスク期間またはデッドライン
（ｖ）  ｚｍ：タスクｉについてタスク・デッドラインを満たす確率に関連付けられた逆確率関数。これはステップ１４９０（図１３参照）で、またはその後で決定され（テーブル内で検索され）、所与のタスクについてのＰｍ値に対応する。
【０１１７】
タスク特有のパラメータが推定されると、プロセスはステージ１４９０に進み、所与のタスクｉに関してデッドラインを満たすために必要な（すなわち受け入れ可能な）確率が、データベースから読み取られる。必要確率は、関連するタスクのタイプに従って変動することになり、例えば、対話型アプリケーションは、非対話型アプリケーションとは異なる必要確率を有することになる。一部のタスクの場合、タイム・クリティカルな処理操作などのタスク・デッドラインを満たす必要確率は、最高確率１にかなり近いのに対して、他のタスクの場合、タスク・デッドラインを満足しないことの重要性はそれほど重大でないため、より低い必要確率でも受け入れ可能である。
【０１１８】
ステージ１４９０で必要確率が確定された後、プロセスはステージ１４９２へと進み、対応する必要確率に基づいて、タスクｉに関する最低プロセッサ周波数（ｆｍｉｎｉ）が算出される。次に、プロセスはステージ１４９４に進み、ステージ１４９２で算出されたタスク特有の最低プロセッサ周波数が、現在の包括最低プロセッサ周波数ｆＣＰＵｍｉｎよりも小さいかまたは等しいか否かが判別される。
【０１１９】
タスク特有の最低プロセッサ周波数ｆｍｉｎｉがｆＣＰＵｍｉｎよりも大きい場合、プロセスはステージ１４９６に進み、ｆＣＰＵｍｉｎはｆｍｉｎｉにリセットされる。次に、プロセスはステージ１４４０に戻り、ｉが増分され、次の処理タスクについてｆｍｉｎｉが算出される。
【０１２０】
他方で、ステージ１４９４で、ｆｍｉｎｉが現在設定されている包括最低周波数ｆＣＰＵｍｉｎよりも小さいかまたは等しいと判別された場合、プロセスはステージ１４４０に戻り、ｉの値が増分され、次の処理タスクについて計算が実行される。ステージ１４９６の後、プロセスは、現在のタスクを増分するためにステージ１４４０に戻る。
【０１２１】
上記例示的実施形態では、データ処理システムのサービス品質の測定基準として、処理タスクがそのタスク・デッドラインを満たすことになる確率を使用しているが、代替実施形態では、異なるサービス品質の測定基準を使用する。例えば、代替実施形態では、エピソード長さの分布を確定するために各処理タスクに関する各実行エピソードについて、長さ、タスク・デッドライン、および速度を追跡することによって、サービス品質を評価することができる。速度の場合、エピソードのオンタイム実行のために訂正されている「必要速度」を意味する。エピソードが実行された後、最初の段階での正しい速度を振り返って算定することが可能であり、その後、これを使用して、有用なエネルギー量を節約すると思われる最低エピソード長さおよび速度が決定される。このようにして導出された性能限界よりも性能レベル予測が高い場合、この予測に従ってプロセッサ速度が設定される。他方で、予測が性能限界よりも低い場合、誤予測の可能性を減少させるために、より高い最低速度（性能範囲限界）が設定される。
【０１２２】
図１３のフローチャートを参照しながら説明した特定の実施形態では、確率の大きさは、システム・パラメータとタスク特有のパラメータの特定のセットに依存して算出される。しかし、様々な実施形態では、確率の大きさを導出するために様々な代替のパラメータ・セットが使用されることを理解されよう。データ処理装置のオペレーティング・システムの状態を反映するパラメータは、確率の大きさを導出するために特に有用である。上記パラメータの例は、何ページ分のスワッピングが進行中であるか、タスク間でどれだけの通信が実行中であるか、どれほどの頻度でシステム呼び出しが起動されているか、ＯＳカーネルによって消費される平均時間、外部割込み周波数、メモリ・アクセスをブロックする可能性のあるＤＭＡアクティビティ、コールド／ホット・キャッシュ、およびＴＬＢなどの多くの異なる事項を含む。
【０１２３】
本明細書では特定の実施形態について説明してきたが、本発明はこれに限定されないこと、ならびに、これに対する多くの修正および追加が本発明の範囲内で実行可能であることは明らかであろう。例えば、本発明の範囲を逸脱することなしに、添付の独立請求項の特徴の様々な組み合わせが実行可能である。
【図面の簡単な説明】
【０１２４】
【図１】本発明の実施形態の性能管理技法が採用可能なデータ処理装置の例を示す概略図である。
【図２】図１のプロセッサの性能管理を実行するために本発明の一実施形態で使用されるデータ処理装置の要素を示す概略図である。
【図３】本発明の一実施形態に従い、変調期間中に２つの所定のプロセッサ性能レベル間で実行される変調を示す概略図である。
【図４】本発明の一実施形態に従い、図３の時間期間ｔＨＩＧＨを決定するために本発明の一実施形態で実行されるステップを示すフローチャートである。
【図５】図３に示された２つの所定のプロセッサ性能レベル間での変調のために本発明の一実施形態で実行されるステップを示すフローチャートである。
【図６】タスクのスケジューリングと、スケジューリングされたそのタスクに関するタスク期間の決定とを示す概略図である。
【図７】本発明の一実施形態に従い、変調期間を決定するために実行されるステップを示すフローチャートである。
【図８】本発明の一実施形態に従い、図１の電圧および周波数供給回路内に提供される要素を示すブロック図である。
【図９】本発明の一実施形態に従い、図８のパルス幅変調（ＰＷＭ）回路内に提供されるより詳細な構成要素を示す図である。
【図１０】性能レベルが選択される性能範囲を動的に変動させることが可能なデータ処理システムを示す概略図である。
【図１１】図１０のデータ処理システム内での２つの異なる処理タスクの実行を示す概略図である。
【図１２】ＭＨｚ単位のプロセッサ周波数に対してタスク・デッドラインを満たす確率を示すグラフである。
【図１３】図１０の第１の性能設定ポリシー１１５６が、性能範囲を動的に変動させるために動的周波数スケーリングを実行する方法を概略的に示すフローチャートである。
【符号の説明】
【０１２５】
１０  電圧および周波数供給回路
２０  プロセッサ
２２  プロセッサ・コア
２４  レベル１データ・キャッシュ
３０  他のデバイス
５０  バス相互接続
１１０  オペレーティング・システム
１２０  オペレーティング・システム・カーネル
１２２  スケジューラ
１２４  スーパバイザ
１３０  ユーザ・プロセス層
１３２  タスク・イベント
１５０  インテリジェント・エネルギー管理（ＩＥＭ）サブシステム
１５２  ＩＥＭカーネル
１６０  周波数および電圧スケーリング・ハードウェア
１７０  性能設定モジュール
１８０  パルス幅変調（ＰＷＭ）モジュール
【図１】
2008165798.tif 000019
【図２】
2008165798.tif 000020
【図３】
2008165798.tif 000021
【図４】
2008165798.tif 000022
【図５】
2008165798.tif 000023
【図６】
2008165798.tif 000024
【図７】
2008165798.tif 000025
【図８】
2008165798.tif 000026
【図９】
2008165798.tif 000027
【図１０】
2008165798.tif 000028
【図１１】
2008165798.tif 000029
【図１２】
2008165798.tif 000030
【図１３】
2008165798.tif 000031