処理ノードと、複数の第1の時間間隔の各々に対して、前記処理ノードの活動レベルを監視するように構成された電力管理ユニットとを備え、前記電力管理ユニットは、所与の第1の時間間隔内の前記活動レベルが高活動閾値を超える場合、少なくとも1つの連続する第1の時間間隔の間、複数の動作点のうちの所定の高動作点で前記処理ノードを動作させ、前記所与の第1の時間間隔内の前記活動レベルが低活動閾値未満である場合、前記少なくとも1つの連続する第1の時間間隔に対して、前記複数の動作点のうちの所定の低動作点で前記処理ノードを動作させ、前記活動レベルが前記低活動閾値と前記高活動閾値との間にある場合、オペレーティングシステムソフトウェアが、前記少なくとも1つの連続する第1の時間間隔に対して、前記複数の動作点のうちの1つ以上の所定の中間動作点のうちの1つで前記処理ノードを動作させることを可能にするように、さらに構成されている、システム。前記第1の時間間隔の各々の第1の継続時間は、前記処理ノードの前記活動レベルを監視するように前記オペレーティングシステムソフトウェアによって使用される複数の第2の時間間隔であって、前記監視された活動レベルが前記高活動閾値未満であり、かつ前記低活動閾値を超える場合に、前記処理ノードの前記動作点を変更するように前記オペレーティングシステムソフトウェアによってさらに使用される複数の第2の時間間隔の各々の第2の継続時間未満である、請求項1に記載のシステム。前記複数の第1の間隔の各々は、100マイクロ秒以下の継続時間を有し、前記複数の第2の時間間隔の各々は、30ミリ秒以上の継続時間を有する、請求項2に記載のシステム。前記所定の高動作点は、前記複数の動作点のうちの最高の動作点であり、前記所定の低動作点は、前記複数の動作点のうちの最低の非アイドル動作点であり、前記1つ以上の中間動作点は、前記所定の高動作点よりも低く、かつ前記所定の低動作点よりも高い、請求項1に記載のシステム。前記電力管理ユニットは、2つ以上の処理ノードの各々に対して、前記それぞれの活動レベルを前記高活動閾値および前記低活動閾値と比較するようにさらに構成され、前記2つ以上の処理ノードは各々、相互に独立してそれぞれの動作点で動作するように構成されている、請求項1に記載のシステム。前記電力管理ユニットは、前記少なくとも1つの処理ノードの前記動作点を変更する際に、クロック信号のクロック周波数を変更するように構成されている、請求項1に記載のシステム。最高動作点で動作するときの前記クロック周波数は、前記複数の動作点のうちの他の動作点のうちのいずれかで動作するときのクロック周波数を超え、最低の非アイドル動作点で動作するときの前記クロック周波数は、前記複数の動作点のうちの他の動作点のうちのいずれか1つで動作するときのクロック周波数未満であり、前記最低の非アイドル動作点での前記クロック周波数はゼロを超える、請求項5に記載のシステム。前記複数の動作点の各々は動作電圧をさらに含み、前記電力管理ユニットは、前記処理ノードの前記動作点を変更するときに、前記処理ノードに提供される前記動作電圧を変更するように構成されている、請求項5に記載のシステム。前記電力管理ユニットは、前記複数の第1の時間間隔のうちの所与の間隔内に受信されるリタイアされた命令の各指示に応答して、カウンタを増加させ、前記複数の第1の時間間隔のうちの前記所与の間隔に対する命令リタイア数が、予測された命令リタイア数以下であると判定することに応答して、カウンタを減少させ、前記複数の第1の時間間隔のうちの前記所与の間隔の終了時に前記カウンタによって提供されるカウンタ値を、前記高活動閾値および低活動閾値と比較するように構成されている、請求項1に記載のシステム。前記電力管理ユニットは、前記カウンタを増加させる時に第1の重み係数を適用し、前記カウンタを減少させる時に第2の重み係数を適用するようにさらに構成されている、請求項8に記載のシステム。前記電力管理ユニットは、前記命令リタイア数が、前記所与の第1の時間間隔内の既定値を超える場合、前記所与の第1の時間間隔内に前記カウンタをさらに増加させることを防止するように構成されているローパスフィルタを含む、請求項8に記載のシステム。前記電力管理ユニットは、所与の第1の時間間隔にわたる前記少なくとも1つの処理ノードの活動の移動平均を判定し、前記活動の移動平均を前記高活動閾値および前記低活動閾値と比較するように構成されている、請求項1に記載のシステム。前記管理ユニットは、実行された命令、リタイアされた命令、発行された命令、パイプライン失速、メモリアクセスリクエスト、キャッシュの失敗、分岐の予測ミス、のうちの1つ以上の監視に基づいて、前記活動の移動平均を判定するように構成されている、請求項11に記載のシステム。前記電力管理ユニットは、前記少なくとも1つの処理ノードによって実行される1サイクルあたりの命令数を判定するように構成され、前記1サイクルあたりの命令数を前記高活動閾値および前記低活動閾値と比較するようにさらに構成されている、請求項1に記載のシステム。前記高活動閾値は、第1の閾値および第1のヒステリシス値に基づくものであり、前記低活動閾値は、第2の閾値および第2のヒステリシス値に基づくものである、請求項1に記載のシステム。複数の第1の時間間隔の各々に対して、処理ノードの活動レベルを判定することと、前記活動レベルが高活動閾値を超える場合、電力管理ユニットが、少なくとも1つの連続する第1の時間間隔に複数の動作点のうちの所定の高動作点で前記処理ノードを動作させることと、前記活動レベルが低活動閾値未満である場合、前記電力管理ユニットが、前記少なくとも1つの連続する第1の時間間隔に前記複数の動作点のうちの所定の低動作点で前記処理ノードを動作させることと、前記活動レベルが前記低活動閾値と前記高活動閾値との間である場合、オペレーティングシステムソフトウェアが、前記複数の動作点のうちの1つ以上の中間動作点のうちの1つで前記処理ノードを動作させることと、を含む、方法。前記オペレーティングシステムソフトウェアが、複数の第2の時間間隔にわたって前記活動レベルを監視することをさらに含み、前記第1の時間間隔の各々の第1の継続時間は、前記第2の時間間隔の各々の第2の継続時間未満である、請求項16に記載の方法。前記所定の高動作点は、前記複数の動作点のうちの最高の動作点であり、前記所定の低動作点は、前記複数の動作点のうちの最低の非アイドル動作点であり、前記1つ以上の中間動作点の各々は、前記所定の高動作点より低く、かつ前記所定の低動作点より高い、請求項16に記載の方法。前記複数の第1の時間間隔の各々に対して、2つ以上の処理ノードのそれぞれの活動レベルを高活動閾値および低活動閾値と比較することと、それぞれの活動レベルの前記比較に基づいて、前記2つ以上の処理ノードのうちの第1のノードの動作点を設定することと、それぞれの活動レベルの前記比較に基づいて、前記2つ以上の処理ノードのうちの第2のノードの動作点を設定することと、をさらに含み、前記2つ以上の処理ノードのうちの前記第2のノードの前記動作点は、前記2つ以上の処理ノードのうちの前記第1のノードの前記動作点を設定することとは独立して設定される、請求項16に記載の方法。前記処理ノードの前記動作点を変更することは、前記処理ノードに提供されるクロック信号の周波数を変更することを含む、請求項16に記載の方法。前記処理ノードの前記動作点を変更することは、前記処理ノードに提供される動作電圧を変更することを含む、請求項20に記載の方法。所与の第1の時間間隔内に受信されるリタイアされた命令の各指示に応答してカウンタを増加させることと、前記所与の第1の時間間隔内に発生する命令リタイア数が、予測される命令リタイア数以下であると判定することに応答して、カウンタを減少させることと、前記所与の第1の時間間隔の終了時に前記カウンタによって提供されるカウンタ値を前記高活動閾値および低活動閾値と比較することと、をさらに含む、請求項16に記載の方法。少なくとも1つの第1の時間間隔にわたる前記少なくとも1つの処理ノードの活動の移動平均を判定することと、前記活動の移動平均を前記高活動閾値および前記低活動閾値と比較することと、をさらに含む、請求項16に記載の方法。実行された命令、リタイアされた命令、発行された命令、パイプライン失速、メモリアクセスリクエスト、キャッシュの失敗、分岐の予測ミス、のうちの1つ以上に基づいて、前記移動平均を判定することをさらに含む、請求項23に記載の方法。前記少なくとも1つの処理ノードによって実行された1サイクルあたりの命令数を判定することと、前記1サイクルあたりの命令数を前記高活動閾値および前記低活動閾値と比較することとをさらに含む、請求項16に記載の方法。コンピュータシステム上で実行可能なプログラムによって動作されるデータ構造を記憶するコンピュータ可読媒体であって、前記プログラムは、前記データ構造によって記述される回路を含む集積回路を加工するプロセスの一部を実施するように、前記データ構造上で作動し、前記データ構造内に記述される前記回路は電力管理ユニットを含み、前記電力管理ユニットは、複数の第1の時間間隔の各々に対して、処理ノードの活動レベルを監視するように構成され、所与の第1の時間間隔内の前記活動レベルが高活動閾値を超える場合、少なくとも1つの連続する第1の時間間隔の間、複数の動作点のうちの所定の高動作点で前記処理ノードを動作させ、前記所与の第1の時間間隔内の前記活動レベルが低活動閾値未満である場合、前記少なくとも1つの連続する第1の時間間隔に対して、前記複数の動作点のうちの所定の低動作点で前記処理ノードを動作させ、前記活動レベルが前記低活動閾値と前記高活動閾値との間にある場合、オペレーティングシステムソフトウェアが、前記少なくとも1つの連続する第1の時間間隔に対して、前記複数の動作点のうちの1つ以上の所定の中間動作点のうちの1つで前記処理ノードを動作させることを可能にするように、さらに構成されている、コンピュータ可読媒体。前記第1の時間間隔の各々の第1の継続時間は、前記処理ノードの前記活動レベルを監視するようにオペレーティングシステムソフトウェアによって使用される複数の第2の時間間隔であって、前記監視された活動レベルが前記高活動閾値未満であり、かつ前記低活動閾値を超える場合、前記処理ノードの前記動作点を変更するように前記オペレーティングシステムソフトウェアによってさらに使用される複数の第2の時間間隔の各々の第2の継続時間未満であり、電力管理ユニットは、実行された命令、リタイアされた命令、発行された命令、パイプライン失速、メモリアクセスリクエスト、キャッシュの失敗、分岐の予測ミス、のうちの1つ以上に基づいて、前記活動レベルを判定するように構成されている、請求項26に記載のコンピュータ可読媒体。前記データ構造内に記述される前記電力管理ユニットは、前記少なくとも1つの処理ノードによって受信されるクロック信号の周波数と、前記少なくとも1つの処理ノードに提供される動作電圧と、のうちの1つ以上に対する変更を生じさせることによって、前記処理ノードの前記動作点の変更を生じさせるように構成されている、請求項26に記載のコンピュータ可読媒体。前記データ構造は、HDL高レベル設計言語データ、RTLレジスタトランスファレベルデータ、グラフィックデータシステムGDSIIデータ、のデータタイプのうちの1つ以上を含む、請求項25に記載のコンピュータ可読媒体。処理ノードと、電力管理ユニットとを備え、前記電力管理ユニットは、複数の第1の時間間隔の各々に対して、活動レベルが所与の第1の時間間隔に高活動閾値を超える場合、少なくとも1つの連続する第1の時間間隔の間、複数の動作点のうちのより高い動作点で前記処理ノードを動作させ、前記活動レベルが前記所与の第1の時間間隔に低活動閾値未満である場合、前記少なくとも1つの連続する第1の時間間隔の間、前記複数の動作点のうちのより低い動作点で前記少なくとも1つの処理ノードを動作させるように構成されており、前記第1の時間間隔の各々の第1の継続時間は、前記処理ノードの前記活動レベルを監視するためにオペレーティングシステムソフトウェアによって使用される複数の第2の時間間隔であって、前記監視された活動レベルに基づいて前記処理ノードの前記動作点を変更するために前記オペレーティングシステムソフトウェアによってさらに使用される複数の第2の時間間隔の各々の第2の継続時間未満である、システム。本開示は、プロセッサベースのシステムの1ワットあたりのパフォーマンスを改善するための方法および装置に関する。より具体的には、本明細書に開示される方法および装置は、アプリケーション活動例えば、処理作業負荷に基づいて、1つ以上の処理ノード例えば、シングルコアまたはマルチコアのマイクロプロセッサのプロセッサコア、個別のスタンドアロンマイクロプロセッサ等の動作点を調整するように利用されてもよい。多様な実施形態において、処理ノードの動作点として、そこに提供されるクロック信号の周波数が挙げられてもよい。動作点として更に、処理ノードに提供される動作電圧例えば、電源電圧が挙げられてもよい。したがって、最高動作点は、処理ノードに対して利用可能な最高のクロック周波数を有する動作点として定義されてもよく、また、処理ノードに対して利用可能な最高の動作電圧を有する動作点として定義されてもよい。逆に、最低動作点は、処理ノードに対して利用可能な最低動作例えば、ゼロ以外のクロック周波数を有する動作点として定義されてもよく、利用可能な最低のゼロ以外の動作電圧を有する動作点としてさらに定義されてもよい。中間動作点は、クロック周波数および動作電圧のうちの少なくとも1つが、そうでなければ、最高動作点および最低動作点を定義するために使用されてもよい値の間のそれぞれの値に設定される、動作点として定義されてもよい。1つ以上の処理ノードの各々の動作点は、1つ以上の処理ノードのうちの1つの上で稼動している電力管理ユニットまたはオペレーティングシステムOSのいずれかによって設定されてもよい。各処理ノードに対して、電力管理ユニットは、いくつかの第1の時間間隔にわたってその活動レベルを監視してもよく、監視された活動レベルを高活動閾値および低活動閾値と比較してもよい。電力管理ユニットは、活動レベルが高活動閾値を超える場合、複数の動作点のうちのより高い動作点例えば、最高で処理ノードを動作させてもよい。電力管理ユニットは、活動レベルが低活動閾値未満である場合、複数の動作点のうちのより低い動作点で処理ノードを動作させてもよい。活動レベルが低閾値を超え、かつ高閾値未満である場合、電力管理ユニットは、オペレーティングシステムソフトウェアが、処理ノードに対して、1つ以上の中間動作点のうちの1つを選択することを可能にしてもよい。オペレーティングシステムソフトウェアは、第2の時間間隔の1期間にわたって活動レベルを監視してもよく、その継続時間は、第1の時間間隔の各々を超える。一実施形態において、第1の時間間隔の各々の継続時間は、100マイクロ秒以下であり、一方、第2の時間間隔の各々の継続時間は、30ミリ秒以上である。したがって、電力管理ユニットは、オペレーティングシステムソフトウェアよりも速く動作点に対する変更を有効にしてもよく、それによって、電力消費のより綿密な制御、したがってプロセッサのワットあたりのパフォーマンスのより精密な制御を可能にする。電力管理ユニットは、監視される活動レベルが高活動閾値以上、または低活動閾値以下である場合、任意の時点で、オペレーティングシステムによって行われた動作点の選択をオーバーライドしてもよい。本明細書に記載される電力管理ユニットは、プロセッサ内部にハードウェアとして実装されてもよく、このような実施形態は、検出された動作レベルに基づいて動作点を選択および設定する際に、OSソフトウェアとは独立して動作してもよい。いくつかの実施形態において、電力管理ユニットの機能は、ファームウェアとして、またはOSとは独立して動作する他のソフトウェアとして実装されてもよい。特定の実装には関係なく、電力管理ユニットは、OS単体によって制御される実施形態に伴って起こり得るオーバーヘッド例えば、中断等なしに、本明細書に記載される機能を実施してもよい。電力管理ユニットの多様な実施形態で活動が監視される時間間隔は、OSが動作点を設定するために使用される活動監視を実施する場合がある時間間隔より相当例えば、1つ以上の桁小さくてもよい。一実施形態において、処理ノードの動作点は、その中のアプリケーション活動が計算主体、メモリ主体、またはこれらの2つの点の間であるかに依存して調整されてもよい。計算主体の作業負荷は、メインメモリへの頻度の低い存在する場合アクセスを伴う、計算集中型である処理作業負荷として定義されてもよい。可能な限り最短の時間量で計算主体の作業負荷を完了するには、処理ノードが最高の利用可能なクロック周波数で作業負荷動作を実行する一方、1サイクルあたりに実行される命令の数を最大にすることが要求されてもよい。したがって、本明細書に記載される方法および装置は、計算主体の作業負荷が実行中であるときを判定し、さらにそれに応答する高パフォーマンス状態に動作点を増加するクロック周波数および/または動作電圧を増加することが可能であってもよい。一実施形態において、方法および装置は、計算主体の作業負荷を検出することに応答して、その特定のノードで利用可能な最高のパフォーマンス状態に対応する動作点で処理ノードを動作させてもよい。処理作業負荷がメモリ主体である場合、処理ノードは、メインメモリの頻繁なアクセスを実施してもよい。メインメモリのアクセスに関連するレイテンシは、プロセッサのサイクル時間より何桁も大きい可能性があるため、メモリ主体の作業負荷は、実行されている処理ノードの動作周波数すなわち、クロック周波数に対する制約がはるかに低くてもよい。より具体的には、メモリアクセスは、プロセッサを失速させてもよく、その後のこれらの失速の継続時間は、メモリアクセスレイテンシの関数である。メモリアクセスに関連するレイテンシは、典型的にはコアクロック周波数よりはるかに低い、メモリバスクロック周波数の関数である。このために、メモリ主体の作業負荷の処理において、コアクロック周波数の増加は、典型的には、対応するパフォーマンスの増加とはならない。その上、メモリ主体の作業負荷を処理するときにコアクロック周波数を削減しても、メモリアクセスレイテンシは通常、これらの作業負荷が実行される場合がある速度を判定する上で限定的因子であるため、典型的には、相応するパフォーマンスの損失とはならない。したがって、本明細書に記載される方法および装置は、メモリ主体の作業負荷が実行中であるときを判定し、さらにそれに応答して低パフォーマンス状態へ動作点を減少させる例えば、クロック周波数および/または動作電圧を減少させることが可能であってもよい。メモリ主体の作業負荷を実行するときに動作点を低パフォーマンス状態に減少することで、パフォーマンスに悪影響を与えることなく、電力を節約し得る。一実施形態において、方法および装置は、メモリ主体の作業負荷を検出することに応答して、最低の非アイドルパフォーマンス状態に対応する動作点で処理ノードを動作させてもよい。最低の非アイドル動作点は、本明細書において、処理ノードが電力およびゼロ以外の周波数でクロック信号を受信している動作点として定義されてもよい。所与の処理ノードに対して計算主体およびメモリ主体の作業負荷を検出することは、そのノードの活動レベルを高閾値および低閾値と比較することが関与してもよい。活動レベルが高閾値を超える場合、処理ノードは、高パフォーマンス状態に対応する動作点で動作されてもよい。活動レベルが低閾値未満である場合、処理ノードは、低パフォーマンス状態に対応する動作点で動作されてもよい。活動レベルが高閾値未満であるが、低閾値を超える場合、処理ノードは、1つ以上の中間動作点のうちの1つで動作されてもよい。一実施形態において、中間動作点は、ソフトウェアによって例えば、オペレーティングシステムソフトウェアによって選択されてもよい。各処理ノードに対する活動レベルの検出および比較は、いくつかの連続する第1の時間間隔の各々に対して、電力管理ユニットによって実施されてもよい。上述のように、間隔の継続時間は、マイクロ秒の単位であってもよい。一実施形態において、間隔の最大継続時間は、100マイクロ秒であってもよく、10マイクロ秒までの短い間隔が検討される。第1の間隔の継続期間が10マイクロ秒未満である実施形態もまた検討される。したがって、本明細書に開示される方法および装置は、オペレーティングシステムソフトウェアによって提供されるものと比較して、綿密な動作点の制御を可能にしてもよく、動作点の監視、比較、および設定の時間間隔は、30~100ミリ秒の範囲とすることができる。加えて、活動レベルおよび動作点の判定は、オペレーティングシステムソフトウェアによって要求される場合がある中断または他のオーバーヘッドを要求することなく実施されてもよい。このように、消費電力1ワットあたりのパフォーマンスが最適化されてもよい。電力管理ユニットを備えるプロセッサ図1は、メモリに連結された集積回路ICの一実施形態のブロック図である。IC2およびメモリ6、さらにディスプレイ3およびディスプレイメモリ300は、この例において、コンピュータシステム10の少なくとも一部を形成する。示される実施形態において、IC2は、いくつかの処理ノード11を有するプロセッサである。処理ノード11は、この特定の例ではプロセッサコアであり、このため、コア1、コア2等とも指定される。本明細書に記載される方法論は、個別の専用のICダイ上に複数のプロセッサシングルコアまたはマルチコアプロセッサの場合があるを実装するマルチプロセッサコンピュータシステムのような他の配置に適用されてもよい。その上、単一の処理ノード11だけを有する実施形態も可能であり、検討される。各処理ノード11は、示される実施形態においてノースブリッジnorthbridge12に連結される。ノースブリッジ12は、メモリおよび多様な周辺機器へのインターフェースを含む、処理ノード11の各々のための多種多様なインターフェース機能を提供してもよい。加えて、ノースブリッジ12は、以下に詳細を記載するように、それぞれの活動レベルまたは作業負荷に基づいて、処理ノード11の各々の電力消費を管理するように構成されている電力管理ユニット20を含む。その上、マルチコアまたはマルチプロセッサ実施形態では、電力管理ユニット20は、相互に独立して個別の処理ノード11の動作点を設定してもよい。このように、第1の処理ノード11は第1の動作点で動作してもよい一方、第2の処理ノード11は、第1とは異なる第2の動作点で動作してもよい。多様な実施形態において、処理ノード11の数は、わずか1であってもよく、またはICダイ上に実装可能である限り多くてもよい。マルチコア実施形態において、処理ノード11は相互に同一であってもよくすなわち、ホモジニアスマルチコア、または1つ以上の処理ノード11は相互に異なってもよいすなわち、ヘテロジニアスマルチコア。処理ノード11は各々、1つ以上の実行ユニット、キャッシュメモリ、スケジューラ、分岐予測回路等を含んでもよい例示的な処理ノードは図2を参照して以下に記載する。その上、処理ノード11の各々は、コンピュータシステム10のメインメモリとして機能してもよいし、メモリ6へのアクセスリクエストをアサートassertするように構成されてもよい。このようなリクエストは、読み出しリクエストおよび/または書き込みリクエストを含んでもよく、ノースブリッジ12によって、それぞれの処理ノード11から最初に受信されてもよい。メモリ6へのアクセスリクエストは、示される実施形態では、メモリコントローラ18を通して送られてもよい。I/Oインターフェース13は、示される実施形態ではノースブリッジ12にも連結される。I/Oインターフェース13は、コンピュータシステム10のサウスブリッジデバイスとして機能してもよい。いくつかの異種の周辺バスがI/Oインターフェース13に連結されてもよい。この特定の例では、バスの種類として、周辺構成要素相互接続PCIバス、PCI拡張PCI-X、PCIDPCIエクスプレスバス、ギガビットイーサネット登録商標GBEバス、およびユニバーサルシリアスバスUSBが挙げられる。しかしながら、これらのバスの種類は例であり、多数の他のバスの種類もまたI/Oインターフェース13に連結されてもよい。周辺機器は、周辺バスのいくつかまたは全てに連結されてもよい。そのような周辺機器として、これらに限定されないがキーボード、マウス、プリンタ、スキャナ、ジョイスティックまたは他の種類のゲームコントローラ、媒体記録装置、外付け記憶装置、ネットワークインターフェースカード等が挙げられる。対応する周辺バスを介してI/Oインターフェース13に連結されるかもしれないがある周辺機器の少なくともいくつかは、ダイレクトメモリアクセスDMAを使用してメモリアクセスリクエストをアサートしてもよい。これらのリクエスト読み出しおよび書き込みリクエストを含んでもよいは、I/Oインターフェース13を介してノースブリッジ12に伝達されてもよく、メモリコントローラ18に送られてもよい。示される実施形態において、IC2は、コンピュータシステム10のディスプレイ3に連結されるディスプレイ/ビデオエンジン14を含む。ディスプレイ3は、フラットパネルLCD液晶ディスプレイ、プラズマディスプレイ、CRTブラウン管、または任意の他の好適なディスプレイの種類であってもよい。ディスプレイ/ビデオエンジン14は、多様なビデオ処理機能を実施し、処理された情報をビジュアル情報として出力するためにディスプレイ3に提供してもよい。3D処理、ビデオゲームの処理、およびより複雑な種類のグラフィックス処理等のいくつかのビデオ処理機能は、グラフィックスエンジン15によって実施されてもよく、処理された情報は、ノースブリッジ12を介して、ディスプレイ/ビデオエンジン14へリレーされる。この特定の例では、コンピュータシステム10は、ビデオメモリおよびRAMは相互に独立している非統合メモリアーキテクチャNUMA実装を実装する。示される実施形態において、コンピュータシステム10は、ディスプレイ/ビデオエンジン14に連結されるディスプレイメモリ300を含む。このように、メモリ6からビデオデータを受信する代わりに、ビデオデータは、ディスプレイメモリ300から、ディスプレイ/ビデオエンジン14によってアクセスされてもよい。これによって、周辺バスのうちの1つを介して、I/Oインターフェース13に連結されるコア11および任意の周辺機器の各々に対して、より大きいメモリアクセスの帯域幅が可能になってもよい。示される実施形態において、IC2は、システムクロック信号を受信するように連結された位相同期ループPLL4を含む。PLL4は、処理ノード11の各々に対応するクロック信号を分散してもよい。この実施形態では、処理ノード11の各々によって受信されたクロック信号は相互に独立している。その上、この実施形態のPLL4は、処理ノード11のそれぞれに相互に独立して提供されたクロック信号の各々の周波数を個別に制御し、変更するように構成されている。以下に詳細を記載するように、処理ノード11の任意の所与の1つによって受信されたクロック信号の周波数は、その上に課されるパフォーマンス要求に応じて、増加または減少されてもよい。クロック信号がPLL4から出力されてもよい多様な周波数は、処理ノード11の各々に対して異なる動作点に対応してもよい。したがって、処理ノード11の特定の1つに対する動作点の変更は、そのそれぞれに受信されるクロック信号の周波数を変更することによって、有効にされてもよい。1つ以上の処理ノード11のそれぞれの動作点を変更することが、1つ以上のそれぞれのクロック周波数を変更することを含む場合、電力管理ユニット20は、PLL4に提供されるデジタル信号SetF[M:0]の状態を変更してもよい。これらの信号の変更に応じて、PLL4は、影響する処理ノードのクロック周波数を変更してもよい。示される実施形態において、IC2は、電圧調整器5も含む。他の実施形態において、電圧調整器5は、IC2とは別に実装されてもよい。電圧調整器5は、処理ノード11の各々に供給電圧を提供してもよい。いくつかの実施形態において、電圧調整器5は、例えば、より優れたパフォーマンスのために増加、より大きい電力節約のために減少された特定の動作点にしたがって変動する供給電圧を提供してもよい。いくつかの実施形態において、処理ノード11の各々は、電圧プレーンを共有してもよい。このため、このような実施形態の各処理ノード11は、処理ノード11の他のノードと同じ電圧で動作する。別の実施形態において、電圧プレーンplaneは共有されず、このため、各処理ノード11によって受容される供給電圧は、処理ノード11の他のノードによって受容されるそれぞれの供給電圧とは独立して設定、調整されてもよい。このため、供給電圧の調整を含む動作点の調整は、電圧プレーンを共有しない実施形態の他のノードとは独立して、各処理ノード11に選択的に応用されてもよい。動作点を変更することは、1つ以上の処理ノード11の動作電圧を変更することを含む場合、電圧管理ユニット20は、電圧調整器5に提供されるデジタル信号SetV[M:0]の状態を変更してもよい。信号SetV[M:0]の変更に応じて、電圧調整器5は、処理ノード11の影響を受けるノードに提供される供給電圧を調整してもよい。動作点は、それぞれの動作レベル例えば、処理作業負荷に応じて、相互に独立して、処理ノード11の各々に対して設定されてもよい。示される実施形態において、電力管理ユニット20は、処理ノード11の各々の活動レベルを示す情報を受信してもよい。各処理ノードに示される活動レベルは、閾値に比較されてもよく、対応する処理ノードの動作点は、比較の結果に基づいて、これに応じて調整されてもよい。閾値は、高活動閾値と、低活動閾値とを含んでもよい。所与の処理ノード11の活動レベルが高活動閾値を超える場合、その動作点は、既定の高動作点例えば、最高のクロック周波数および動作電圧に調整されてもよい。所与の処理ノード11の活動レベルが低活動閾値未満である場合、動作点は、既定の低い非アイドル動作点例えば、最低のゼロ以外のクロック周波数および電圧に調整されてもよい。比較演算が、所与の処理ノード11の活動が高活動閾値未満であるが、低活動閾値を超えることを示す場合、電力管理ユニット20は、オペレーティングシステムソフトウェアまたは他のソフトウェアが、1つ以上の中間動作点のうちの1つで特定の処理ノード11に動作させることを可能にしてもよい。いくつかの実施形態において、単一の中間動作点が実装されてもよい。他の実施形態において、複数の中間動作点が利用されてもよい。処理ノード11の各々の活動レベルを上記の閾値と比較することは、いくつかの連続する時間間隔にわたって実施されてもよい。所与の時間間隔の間の1つの比較が、処理ノード11の動作点を調整する必要を示す場合、動作点は、次に続く時間間隔に対して調整されてもよい。比較演算は、各間隔に対して1回実施されてもよく、比較結果に基づいて行われる任意の調整が、次に続く間隔に適用されてもよい。変更が全く必要ないことを比較結果が示す場合、処理ノード11は、比較結果が異なる動作点に対応する活動レベルを示すまで、1つ以上の連続する時間間隔に対して、その現在の動作点で継続してもよい。一実施形態において、オペレーティングシステムOSソフトウェア等、集積回路2上で稼動しているソフトウェアは、活動レベルが高閾値未満かつ低閾値を超える場合、処理ノード11の各々のための動作点を選択してもよい。しかしながら、比較演算は、各時間間隔に対して、電力管理ユニットによって実施されるように継続してもよい。比較演算が、活動レベルが高閾値を超える、または低閾値未満であることを検出した場合、影響が及ぶ処理ノード11の動作点はこれに応じて変更されてもよく、それ以外の場合には中間動作点を選択するために使用されるOSまたは他の機構によって指定される場合がある動作点をオーバーライドする。OSは、電力管理ユニット20によって使用される時間間隔の継続時間を超える継続時間を各々有する、別の組の時間間隔にわたって、活動を監視してもよい。OSが活動レベルを監視する時間間隔の継続時間は、電力管理ユニット20の継続時間より少なくとも1桁大きくてもよい。例えば、一実施形態において、電力管理ユニット20は、100ミリ秒以内の時間間隔にわたって活動レベルを監視したがって、動作点の変更を有効にしてもよい。対照的に、この実施形態のオペレーティングシステムソフトウェアは、30ミリ秒未満の時間間隔にわたって活動レベルを監視したがって、動作点の変更を有効にしてもよい。上述のように、処理ノード11の動作点は、少なくともクロック周波数によって定義されてもよく、また、動作電圧によって定義されてもよい。一般的に、より高い動作点への推移は、影響を受ける処理ノード11のクロック周波数を増加することによって定義されてもよい。より高い動作点への推移は、その動作例えば、供給電圧を増加することも含んでもよい。同様に、より低い動作点への推移は、影響を受ける処理ノード11のクロック周波数を減少することによって定義されてもよい。影響を受ける処理ノード11に提供される動作/供給電圧の減少もまた、より低い動作点への推移の定義に含まれてもよい。一実施形態において、動作点は、アドバンスコンフィギュレーションおよびパワーインターフェースACPI仕様のパフォーマンス状態以下、P状態に対応してもよい。以下の表1は、ACPI基準を使用して実装される一実施形態のP状態を列挙する。表1に列挙されたP状態は、ACPIに準拠するプロセッサが、C0として知られる非アイドル状態で動作中に適用されてもよい。上記の表1に対応する実施形態では、P状態のP0は、最高動作点であり、2GHzのクロック周波数および1.1ボルトの動作電圧を有する。一実施形態の電力管理ユニット20は、対応する活動レベルが高活動閾値を超えることに応答して、P状態P0で処理ノード11に動作させてもよい。P状態P0の動作は、計算主体である作業負荷を処理するために利用されてもよい。計算主体の作業負荷は、時間的制約がある計算集中型であってもよく、存在する場合いくつかのメモリアクセスを必要とする。より低い電力消費でP状態相応により短時間で戻ることを可能にしながら、最高のパフォーマンスを維持するためにできるだけ最短時間で作業負荷を実行することが所望される場合がある。したがって、高活動レベルを有する計算主体の作業負荷は、P状態P0で実行されてもよく、より高速の完了を可能にしてもよい。P状態P4は、この特定の実施形態では最低の非アイドル動作点であり、800MHzのクロック周波数および0.8Vの動作電圧を有する。電力管理ユニット20は、対応する活動レベルが低活動閾値未満であることに応答して、P状態P4で処理ノード11に動作させてもよい。P状態P4は、メモリ主体の作業負荷ならびに時間的制約または周波数制約のない他のタスクで使用されてもよい。メモリ主体の作業負荷は、システムメモリへの頻繁なアクセスを含む作業負荷である。メモリアクセスには、メモリにアクセスしない命令の実行時間に比較して大きいレイテンシが関与し、メモリ主体の作業負荷のクロック周波数を削減することは、最低のパフォーマンス影響を有する場合があり、この場合電力の節約は、システムの1ワットあたりのパフォーマンスメトリクスを向上させてもよい。検出された活動レベルが、低活動閾値を超え、かつ高活動閾値未満である場合、対応する処理ノード11の動作は、特定の実施形態に依存して、OS、他のソフトウェア、ファームウェア、および/または他のハードウェアの管轄下で、P状態P1、P2、P3のうちの任意の1つに設定されてもよい。表1に列挙されたP状態は、例示的な1組の動作点であることに注意されたい。異なるクロック周波数および動作電圧を有する動作点を使用する実施形態が可能であり、検討される。その上、上述のように、いくつかの実施形態は、処理ノード11の共有電圧プレーンを利用してもよく、このため、これらのそれぞれの動作点は、クロック周波数に基づいて定義されてもよい。いくつかの実施形態では、処理ノードの各々の動作電圧は、固定されたままであってもよく、一方、他の実施形態では、動作電圧は、全ての処理ノード11に対して同時に調整されてもよい。上記の多様なユニットが個別のIC上に実装される実施形態が可能であり、検討されることに注意されたい。例えば、コア11が第1のIC上に実装され、ノースブリッジ12およびメモリコントローラ18が別のIC上にあり、一方、残りの機能ユニットはまた別のIC上にある、一実施形態が検討される。一般的に、上記の機能ユニットは、好みに応じて多数または少数の異なるIC上、ならびに単一のIC上に実装されてもよい。また、上記の表1にP状態として列挙された動作点は、ACPI以外の実施形態で利用されてもよいことにも注意されたい。処理ノード図2は、処理ノード11の一実施形態のブロック図である。処理ノード11は、システムメモリ200に記憶される場合がある命令を実行するように構成されている。これらの命令の多くは、これもシステムメモリ200上に記憶されるデータ上で作動する。システムメモリ200は、コンピュータシステム全体に物理的に分散されてもよく、および/または1つ以上のプロセッサ100によってアクセスされてもよい。例示される実施形態において、処理ノード11は、レベル1L1命令キャッシュ106と、L1データキャッシュ128とを含んでもよい。処理ノード11は、命令キャッシュ106に連結されるプリフェッチユニット108を含んでもよい。ディスパッチユニット104は、命令キャッシュ106から命令を受信し、スケジューラ118に演算をディスパッチするように構成されてもよい。スケジューラ118のうちの1つ以上は、ディスパッチユニット104からディスパッチされた演算を受信し、1つ以上の実行ユニット124へ演算を発行するように連結されてもよい。実行ユニット124は、1つ以上の整数ユニットと、1つ以上の浮動小数点ユニットと、1つ以上のロード/記憶ユニットとを含んでもよい。実行ユニット124によって生成される結果は、1つ以上の結果バス130ここでは明確化のために単一の結果バスが示されるが、複数の結果バスが可能であり、検討されるに出力されてもよい。これらの結果は、その次に発行される命令のオペランド値として使用されても、および/またはレジスタファイル116に記憶されてもよい。リタイアキュー102は、スケジューラ118およびディスパッチユニット104に連結されてもよい。リタイアキュー102は、各発行された演算がいつリタイアされてもよいかを判定するように構成されている。一実施形態において、処理ノード11は、x86アーキテクチャインテルアーキテクチャ32またはIA32とも呼ばれると互換性があるように設計されてもよい。別の実施形態において、処理ノード11は、64ビットアーキテクチャと互換性があってもよい。他のアーキテクチャと互換性のある処理ノード11の実施形態も検討される。処理ノード11の各々は、多数の他の構成要素も含むことに注意されたい。例えば、処理ノードは、命令スレッドを実行する際に、分岐を予測するように構成されている分岐予測ユニット図示せずを含んでもよい。命令キャッシュ106は、ディスパッチユニット104によってフェッチするための命令を記憶してもよい。命令コードは、プリフェッチユニット108を介して、システムメモリ200からコードを予めフェッチすることによって、記憶するために命令キャッシュ106に提供されてもよい。命令キャッシュ106は、多様な構成例えば、セットアソシアティブ、フルアソシアティブ、またはダイレクトマップ方式で実装されてもよい。処理ノード11はまた、レベル2L2キャッシュ140も含んでもよい。命令キャッシュ106は、命令を記憶するために使用されてもよく、データキャッシュ128は、データ例えば、オペランドを記憶するために使用されてもよいが、L2キャッシュ140は、命令およびデータを記憶するように統合されて使用されてもよい。ここには明示的に示されないが、いくつかの実施形態は、レベル3L3キャッシュも含んでもよい。一般的に、キャッシュレベルの数は、実施形態により異なってもよい。プリフェッチユニット108は、命令キャッシュ106内に記憶するために、システムメモリ200から命令コードを予めフェッチしてもよい。プリフェッチユニット108は、多様な特定のコードプリフェッチ技法およびアルゴリズムを採用してもよい。ディスパッチユニット104は、実行ユニット124によって実行可能な演算ならびにオペランドのアドレス情報、即時データおよび/または置換データを出力してもよい。いくつかの実施形態では、ディスパッチユニット104は、所定の命令を実行ユニット124内で実行可能な演算にデコードするためのデコード回路図示せずを含んでもよい。簡単な命令は、単一の演算に対応してもよい。いくつかの実施形態において、より複雑な命令は、複数の演算に対応してもよい。レジスタの更新が関与する演算のデコード時に、レジスタファイル116内のレジスタの場所は、投機的レジスタ状態を記憶するために、保存されてもよい代替の実施形態では、リオーダバッファが、各レジスタに対して1つ以上の投機的レジスタ状態を記憶するために使用されてもよく、レジスタファイル116は各レジスタに対して登録されたレジスタ状態を記憶してもよい。レジスタマップ134は、レジスタの名前変更を促進するために、ソースおよびデスティネーションオペランドの論理レジスタ名を物理的レジスタ番号に変換してもよい。レジスタマップ134は、レジスタファイル116内のどのレジスタが現在割り当てられているか、および割り当てられていないかを追跡してもよい。図2の処理ノード11は、アウトオブオーダoutoforder実行をサポートしてもよい。リタイアキューretirequeue102は、レジスタの読み出しおよび書き込み演算に対する本来のプログラムシーケンスの追跡を維持し、投機的命令実行および分岐予測ミスの復元を可能にし、正確な例外を促進してもよい。いくつかの実施形態では、リタイアキュー102はまた、投機的レジスタ状態のデータ値ストレージを提供することによって、レジスタの名前変更をサポートしてもよい例えば、リオーダバッファに類似。他の実施形態では、リタイアキュー102は、リオーダバッファに類似して機能してもよいが、データ値ストレージは一切提供しなくてもよい。演算がリタイアすると、リタイアキュー102は、投機的レジスタ状態を記憶することがもはや必要ではない、レジスタファイル116内のレジスタの割り当てを解消し、レジスタマップ134に対して、どのレジスタが現在解放されているかを示す信号を提供してもよい。それらの状態を生成した演算が検証されるまで、レジスタファイル116内または、代替の実施形態ではリオーダバッファ内に投機的レジスタ状態を維持することによって、投機的に実行された演算の結果ならびに誤って予測されたパスは、分岐予測が正しくない場合、レジスタファイル116内で無効化されてもよい。一実施形態において、レジスタファイル116の所与のレジスタは、実行された命令のデータ結果を記憶するように構成されてもよく、また、実行された命令によって更新されてもよい1つ以上のフラグビットを記憶してもよい。フラグビットは、次の命令を実行する上で重要な場合がある多様な種類の情報を伝達してもよい例えば、加算または乗算演算の結果、キャリーまたはオーバーフロー状況が存在することを示す。設計上、フラグを記憶するフラグレジスタが定義されてもよい。このため、所与のレジスタへの書き込みは、論理レジスタおよびフラグレジスタの両方を更新してもよい。全ての命令が1つ以上のフラグを更新しなくてもよいことに注意されたい。レジスタマップ134は、演算のためのデスティネーションオペランドとして指定された特定の論理レジスタ例えば、アーキテクチャ上のレジスタまたはマイクロアーキテクチャ上で指定されたレジスタに物理的レジスタを割り当ててもよい。ディスパッチユニット104は、レジスタファイル116が、所与の演算の中のソースオペランドとして指定された論理レジスタに割り当てられた、以前に割り当てられた物理的レジスタを有すると判定してもよい。レジスタマップ134は、その論理レジスタに最近割り当てられた物理的レジスタのためのタグを提供してもよい。このタグは、レジスタファイル116のオペランドのデータ値にアクセスするため、または結果バス130上の結果転送を介してデータ値を受信するために使用されてもよい。オペランドがメモリ場所に対応する場合、オペランド値は、ロード/ストアユニット図示せずを通して、結果転送および/またはレジスタファイル116内に記憶するために結果バス上に提供されてもよい。オペランドデータ値は、演算がスケジューラ118のうちの1つによって発行されると、実行ユニット124に提供されてもよい。代替の実施形態では、オペランド値は、演算が発行されると対応する実行ユニット124に提供される代わりに演算がディスパッチされると、対応するスケジューラ118に提供されてもよいことに注意されたい。本明細書に使用される場合、スケジューラは、演算が実行の準備が整い、整った演算を1つ以上の実行ユニットに発行するときを検出するデバイスである。例えば、予約局は、スケジューラの1種の場合がある。1実行ユニットにつき独立した予約局が提供されてもよく、演算が発行される中央の予約局が提供されてもよい。他の実施形態において、リタイアするまで演算を保存する中央のスケジューラが使用されてもよい。各スケジューラ118は、実行ユニット124への発行を待機しているいくつかの保留演算に対して、演算情報例えば、演算ならびにオペランド値、オペランドタグ、および/または即時データを保留することが可能であってもよい。いくつかの実施形態では、各スケジューラ118は、オペランド値にストレージを提供しなくてもよい。その代わり、各スケジューラは、実行ユニット124によってレジスタファイル116または結果バス130から読み出されるオペランド値がいつ利用可能になるかを判定するために、発行された演算およびレジスタファイル116内の利用可能な結果を監視してもよい。本明細書には明示的に示されないが、図1の多様なユニットの処理ノード11明示的に示されていないユニットも含むと、電力管理ユニット20との間に、いくつかの異なる通信経路が提供されてもよい。より具体的には、処理ノード11は、電力管理ユニット20に対して活動レベルを示す情報を提供するために、このような通信経路を利用してもよい。例えば、リタイアキュー102は、命令のリタイアに関する情報を電力管理ユニット20に提供してもよい。別の例では、実行ユニット124は、実行された命令に関する情報を提供してもよく、ディスパッチユニット104は、ディスパッチされた命令に関する情報を提供してもよく、スケジューラ118は、スケジュールされた命令に関する情報を提供してもよく、多様なキャッシュのうちの任意の1つまたは全ては、キャッシュヒットまたはミスに関する情報を提供してもよい。存在し得るユニットであって本明細書に明示的に示されないユニットのうち、分岐予測ユニットは、一例として、分岐予測ミスに関する情報を提供してもよい。ここに記載されない他のユニットもまた、他の種類の情報を電力管理ユニット20に提供してもよい。多様なユニットの処理ノード11から受信された情報は、その活動レベルを判定するために使用されてもよい。活動レベルを判定する多様な方法が適用されてもよく、ある種類の情報には、他の種類より大きい重みを付けてもよい。加えて、いくつかの種類の情報は、ある時間にまとめて無視されてもよい。提供された情報から判定された活動レベルは、次に、処理ノード11の動作点を選択するために使用されてもよい。概念観点図3は、アプリケーションの活動に関して、電力管理ユニットの一実施形態の動作を例示するブロック図である。示される例では、グラフは、アイドルと低閾値の間の領域、低閾値と高閾値との間の領域、および高閾値より上の領域、の3つの領域に分割される。第1の領域の活動レベルすなわち、低閾値未満は、処理作業負荷がメモリ主体である、またはそうでなければ、対応する処理ノード11のクロック周波数に関して低い周波数制約があることを示す。このような活動レベルが検出される処理ノード11は、処理ノード全体の性能に非常に少ない存在する場合マイナスの影響を与える、できる限り最低の非アイドル動作点に入れられてもよい。最低の非アイドル動作点は、最低のクロック周波数を有する動作点として定義されてもよい。できる限り最低の動作点はまた、できる限り最低の動作電圧を有する動作点によって定義されてもよい。上記の表1の例を使用すると、処理ノード11の活動レベルが、所与の時間間隔の間、この領域にあると判定されると、少なくとも次の時間間隔は、P状態P4に入れられてもよい。第3の領域の活動レベルすなわち、高閾値より上は、処理作業負荷が計算主体である、またはそうでなければ、クロック周波数に関して高い周波数制約があることを示す。この活動レベルが1時間間隔の間、所与の処理ノード11で検出されると、少なくとも次の時間間隔はそのノードに対して、最高の動作点が選択されてもよい。上記の表1の例を使用すると、高活動レベルを検出すると、電力管理ユニット20が、対応する処理ノードをP0状態に入れることになってもよい。これによって、タスクをより高速で完了する間、作業負荷が最高のパフォーマンスで実行することを可能にしてもよい。所与の時間間隔に対して検出された活動レベルが第2の領域低閾値を超えるが、高閾値未満で検出されると、対応する処理ノードは、オペレーティングシステムOS、他のソフトウェア、ファームウェア、または他のハードウェアによって要求される動作点に入れられてもよい。表1のP状態、P1、P2、およびP3は、第2の領域で利用されてもよい中間動作点の例である。OSまたは他のソフトウェアが第2の領域内の動作点を選択する実施形態において、処理ノードは、いくつかの時間間隔に対して、その特定の点で動作し続けてもよく、検出されたアプリケーションの活動レベルは、第2の領域すなわち、低閾値を超え、かつ高閾値未満相応にとどまると想定する。ある中間動作点から別の動作点への変更は、最高および最低の動作点での動作を判定するために使用されるよりもはるかに長い時間間隔にしたがって発生してもよい。アプリケーションの活動レベルを低閾値および高閾値と比較することは、毎10~100マイクロ秒の単位の間隔で発生し続けてもよいが、どの中間動作点が最適であるかを判定するために使用される比較は、毎30~100ミリ秒の単位の間隔で発生してもよい。このように、電力管理ユニット20は、アプリケーションの活動レベルを高閾値および低閾値と比較することを続けてもよく、対応する活動レベルが検出される任意のタイミングで、影響される処理ノード11を最高動作点または最低動作点に推移させることによって、中間動作点の選択をオーバーライドしてもよい。図3に示される高閾値および低閾値に加えて、ヒステリシス閾値レベルもまた、処理ノードの動作点を変更すべきかどうかを判定する際に検討されてもよい。高ヒステリシス閾値はまた、最高動作点へ推移または最高動作点から推移すべきかどうかを判定する際に検討されてもよく、一方、低ヒステリシス閾値は、最低動作点へ推移または最低動作点から推移すべきかどうかを判定する際に検討されてもよい。これらのヒステリシス閾値を利用することで、異常に起因して非最適動作点へ推移することを防止してもよい。例えば、計算主体の作業負荷がP状態P0で実行している状況を検討する。この状況での分岐予測ミスは、パイプライン失速を発生させる場合があり、これによって、活動レベル全体に一時的減少を生じる。高ヒステリシス閾値レベルは、このような状況で考慮に入れられてもよく、これによって、対応する処理ノード11がP状態P0で引き続き動作することを可能にする。上記の動作は、消費される電力の1ワットあたりのそのパフォーマンスを向上することによって、プロセッサの効率を強化してもよい。最低の周波数制約および/またはメモリ主体のアプリケーションのためにクロック周波数および動作電圧をそれらの可能な限りの最低動作値へ削減することによって、これらのアプリケーションが依然として、そうでなければ不要である電力を無駄にすることなく、適時に実行することを可能にしてもよい。最高の周波数制約および/または計算主体のアプリケーションのためにクロック周波数および動作電圧をそれらの可能な限りの最高動作値に増加することによって、これらのアプリケーションが、所望のパフォーマンスレベルでより高速に実行することを可能にし、このため、完了時に、より低い電力消費の動作点により迅速に戻ることを可能にしてもよい。電力管理ユニットおよびその構成要素図4は、電力管理ユニットの一実施形態を例示するブロック図である。示される実施形態において、電力管理ユニット20は、以下に詳細を記載する、活動モニタ202、1秒あたりに実行される命令数CIPSユニット204、1サイクルあたりの命令数IPCユニット206を使用して、1つ以上の処理ノードの各々の活動レベルを監視するように構成されている。これらの多様なユニットは、判定ユニット208に情報を提供してもよい。この情報は、処理ノード11の各々の動作点を設定するために、判定ユニット208によって使用されてもよい。判定ユニット208は、処理ノード11の各々のための動作点を判定するために、これらのユニットのうちの選択された1つから、または各々から提供される情報を検討してもよい。判定ユニット208はまた、処理ノード11の各々の現在の動作点を示す情報を受信するように連結される。所与の処理ノード11の動作点への変更は、そこに提供されるクロック信号の周波数を変更することによって実施されてもよく、また、それぞれの供給電圧を変更することを含んでもよい。判定ユニット208による処理ノード11の各々に対するクロック周波数の調整は、信号SetF[N:0]の状態への変更を通して有効になってもよい。処理ノード11の各々に対する動作電圧の調整は、信号SetV[N:0]の状態への変更を通して有効になってもよい。図4に示される電力管理ユニット20の実施形態は例示であり、他の実施形態が可能で、検討されることに注意されたい。活動モニタ202、CIPSユニット204、またはIPCユニット206のうちの1つだけを含む実施形態もまた可能で考慮され、そのような実施形態は、判定ユニット208を使用することなく実装されてもよい。例えば、処理ノード11の活動レベルがCIPSユニット204に提供される情報に基づいて判定される実施形態が検討される。このような実施形態では、CIPSユニット204は、そうでなければ、判定ユニット208によって提供される機能のうちの少なくともいくつかを組み入れてもよい。一般的に、電力管理ユニット20は、任意の構成で実装されてもよく、1つ以上の処理ノードの活動レベル/処理作業負荷が監視されてもよく、これに応じて動作点の変更を有効にしてもよい。より具体的には、電力管理ユニット20は、1つ以上の処理ノードの各々の活動レベルが、複数の時間間隔の各々に対して、高活動閾値および低活動閾値と比較され、次に続く時間間隔のそれぞれの動作点が比較の結果にしたがって選択されてもよい、任意の構成に実装されてもよい。より具体的には、電力管理ユニット20は、次に続く時間間隔内の演算が、監視される活動レベルが高活動閾値を越える場合には最高の動作点例えば、上記表1のP状態P0に、活動レベルが低活動閾値未満の場合には最低の動作点例えば、上記の表1のP状態P4に、または活動レベルが高閾値未満かつ低閾値未満を超える場合には1つ以上の中間動作点のうちの1つ例えば、P状態P1、P2、またはP3に設定される、任意の構成に実装されてもよい。ここで図5を参照すると、活動モニタの一実施形態を例示するブロック図が示される。示される実施形態において、活動モニタ202は、平均活動カルキュレータAAC250、閾値コンパレータ252、および間隔タイマ254を含む。示される実施形態の活動モニタ202は、1つ以上の処理ノード11の活動の移動平均を計算、追跡し、平均活動レベルを高活動閾値および低活動閾値と比較するように構成されている。比較の結果は、処理ノードのための適当な動作点を判定するために使用されてもよい。示される実施形態において、比較は各間隔で1回実行され、間隔タイマ254によって計測される。AAC250は、1つ以上のメトリクスに基づいて、そこに連結される各処理ノード11の活動レベルを判定してもよい。この特定の実施形態において、AAC250は、パイプライン失速、命令実行、キャッシュヒットおよびミス、分岐予測ミス、および発行された命令に関する情報を受信するように連結される。本明細書に明示的に記載された以外の、または本明細書で検討されたメトリクスに追加して、メトリクスを利用する実施形態も可能で、検討される。また、これらのメトリクスのうちのいくつかは、いくつかの実施形態では、他よりも大きい重みが与えられる場合があることにも注意されたい。AAC250によって計算、追跡される平均活動レベルは、これらのメトリックスのうちの任意の1つ、これらのメトリックスの2つ以上の集積、またはこれらのメトリックスの全ての組み合わせに基づいて判定されてもよい。例えば、AAC250は、キャッシュミスおよびパイプライン失速の両方に基づいて、プロセッサの作業負荷がメモリ主体であることを判定してもよく、これらの両方は、多数のメモリアクセスを必要とするアプリケーションで頻繁に発生してもよい。別の例では、キャッシュアクセスが少ないキャッシュヒットおよびミスの合計によって示される多数の命令実行は、計算主体の作業負荷を示す場合がある。現在の時間間隔の間に受信される情報ならびに履歴情報の両方に基づいて、AAC250は、活動が報告された各処理ノード11に対して平均活動を判定してもよい。示される実施形態において、平均は、信号Tをアサートしている間隔タイマ254に応答して判定されてもよい。示される実施形態の間隔タイマ254は、間隔クロック信号を受信するように連結され、このクロック信号が受信された所定の数のサイクル後に、信号Tをアサートしてもよい。各処理ノード11の計算された活動平均は、AAC250から閾値コンパレータ252へ提供されてもよい。閾値コンパレータ252は、信号Tをアサートしている間隔タイマ254に応答して、受信された活動レベルの比較を実施してもよく、これらは、その比較入力上で受信されてもよい。遅延時間は、AAC250が、結果を判定、提供することを可能にするように許可されてもよく、閾値コンパレータ252は、遅延時間が経過した後に比較を実施する。閾値コンパレータ252は、各処理ノードの計算された活動平均を上記の低活動閾値および高活動閾値と比較してもよい。これらの比較結果は、次いで、閾値コンパレータ252から判定ユニット208へ提供されてもよく、これは、次いで、上述のように電力管理ユニット20の動作にしたがって、これらの処理ノード11の動作点への調整を生じさせてもよい。活動モニタ202のこれらの動作は、間隔タイマ254によって時間が決定される各時間間隔のために反復されてもよい。図6は、CIPSユニット204の一実施形態を例示するブロック図である。示される実施形態において、CIPSユニット204は、ローパスフィルタ266、CIPSカウンタ260、閾値コンパレータ262、および間隔タイマ264を含む。示される実施形態では、CIPSユニット204は、処理ノード11の各々のリタイアキュー例えば、図2のリタイアキュー102から、リタイアされた命令に関する情報を受信するように連結される。CIPSユニット204は、既定の間隔内にリタイアした命令の数を判定してもよく、CIPS値を推定するためにこの値を使用してもよい。CIPS値はこのため、命令が実行され、実際にリタイアされる速度を示してもよい例えば、分岐予測ミスに起因して、投機的に実行され、リタイアされないいくつかの命令、とは対照的に。リタイアの指示は、処理ノード11から受信されてもよく、ローパスフィルタ266に初期に提供されてもよい。ローパスフィルタ266は、1つ以上のカウンタとして実装されてもよく、各カウンタは、処理ノード11のうちの1つに対応する。この実施形態では、ローパスフィルタ266のカウンタは、Mの上限を有してもよく、このため、間隔TにわたってM個未満のリタイアがCIPSユニット204によって追跡される。これによって、短い突然の活動のバーストが、高活動として誤って解釈され、報告している処理ノード11の最高動作点へのそうでなければ所望されない推移を発生させることを防止してもよい。ローパスフィルタ266は、間隔タイマ264に連結されるリセット入力を含む。間隔が完了すると、間隔タイマ264は、T信号をアサートしてもよい。リセット入力上でT信号を受信することに応答して、ローパスフィルタ266の各カウンタがゼロにリセットされてもよい。示される実施形態のCIPSカウンタ260もまた、いくつかのカウンタを含み、1つは各処理ノード11に対応する。ローパスフィルタのカウンタが増加するたび、CIPSカウンタ260の対応するカウンタもまた、増加させてもよい。CIPSカウンタ260のカウンタを増加させることは重み付けされてもよい。したがって、ローパスフィルタ266のカウンタの増加とCIPSカウンタ260の増加の間には1対1の対応が必ず存在するわけではない。CIPSカウンタ260のカウンタはまた、間隔タイマ264によるT信号のアサーションDecAllに提供されるに応答して、条件付きで減少されてもよい。一実施形態において、CIPSカウンタ260の所与のカウンタは、対応する処理ノード11の命令リタイア数は、現在の動作点の予測数以下または等しい、T信号のアサーションに応答して任意の間隔の終了時に減少されてもよい。そうでなければ、対応する処理11の命令リタイア数が、その所与の間隔の間に予測されるリタイア数を超える場合、カウンタは、T信号のアサーションに応答して減少しなくてもよい。減少もまた重み付けられてもよい。増加および減少の重み付けは、パフォーマンスがバイアスまたは電力がバイアスされるように、本明細書に記載の電力管理機能のバイアスを可能にしてもよい。電力管理機能がバイアスされたパフォーマンスである場合、重み付けは、増加を重視して行われてもよく、それによって、命令リタイアに応答してCIPSカウンタ260内のより高いカウントを生じる。重視が電力消費の削減すなわち、電力バイアスにある場合、重み付けは、減少を重視して行われてもよく、それによって、命令リタイアに応答してCIPSカウンタ260内のより低いカウントを生じる。この重み付けは、ユーザによるプログラミング、ファームウェア、プログラミングフューズ等を通して等、多様な機構によって構成可能であってもよい。CIPSカウンタ260によって生成されるカウンタ値は、閾値コンパレータ262に提供されてもよい。示される実施形態において、閾値コンパレータ262は、図5に示されるその対応部分と類似の様式で機能してもよい。各カウンタ値は、高活動閾値および低活動閾値と比較されてもよく、動作点は、高活動閾値または低活動閾値が、前の時間間隔に対して越えている、これらの処理ノードに対して調整されてもよい。比較は、比較入力上で受信されてもよい、間隔タイマ264によるT信号のアサーションに応答して、各間隔で1回実施されてもよい。比較結果は、判定ユニット208に提供されてもよく、これにしたがって処理ノード11の動作点を調整してもよい。図7は、IPCユニット206の一実施形態のブロック図である。示される実施形態において、IPCユニットは、いくつかの処理ノード11の各々から実行された命令の指示を受信するように連結されてもよい、命令カウンタを含む。これは、処理ノード11がスーパースカラー処理ノードである実施形態において、2つ以上の実行ユニットから実行された命令の指示を受信することを含んでもよい。命令カウンタ270は、処理ノード11の各々に対して実行された命令のカウントを追跡してもよい。各処理ノードのために追跡されたカウントは、カウント値として、図5および6を参照して上述した対応部分に類似した様式で、高活動閾値および低活動閾値との比較を実施してもよい、閾値コンパレータ272に提供されてもよい。比較結果は、任意の動作点の変更が対応する処理ノード11に行われるかを判定するために、カウント値を使用してもよい、判定ユニット208に提供されてもよい。カウントすること、および比較することは、間隔タイマ274によって制御される間隔毎を基本に実施されてもよい。命令カウンタ270のカウンタは、間隔タイマ274のT信号のアサーションによって示されるように、各間隔が完了するつど、リセットされてもよい。前述のように、活動モニタ202、CIPSユニット204、およびIPCユニット206によって提供される比較結果は各々、判定ユニット208に提供されてもよい。提供された比較結果に基づいて、判定ユニット208は、それぞれのクロック周波数、それぞれの動作電圧、または両方に変更を生じさせることによって、処理ノード11のうちの1つ以上の動作点に変更を生じさせてもよい。いくつかの実施形態では、判定ユニット208は、比較結果に重み付けを提供して、いくつかに他よりも多い重み付けを与えてもよい。例えば、判定ユニット208は、IPCユニット206から受信されるものに対して、活動モニタ202およびCIPSユニット204から受信される比較結果に追加の重み付けを提供してもよい。別の実施形態では、判定ユニット208は、異なる比較結果が受信された場合、投票スキームに基づいて、動作点を変更するかどうかを判定してもよい。例えば、活動モニタ202およびCIPSユニット204の両方の活動レベルが高活動閾値を超えていることを示すが、IPCユニット206が同じことを示さない場合、判定ユニット208は、対応する処理ノードの動作点をP状態P0に変更してもよい。別の実施形態では、判定ユニット208は、処理ノードの動作点を変更するかどうかを判定する際、ユニットの1つだけを検討する例えば、CIPSユニット204からの情報だけを検討するように構成可能であってもよい。一般的に、判定ユニット208は、任意の好適な手法において、各処理ノード11の適当な動作点を判定するように構成されてもよい。その上、ユニットのうちの1つだけ例えば、活動モニタ202を含む電力管理ユニット20の実施形態も可能で、検討され、そのような実施形態では、SetFおよびSetV信号の状態を設定することに同様な機能がその中に組み入れられてもよい。動的パフォーマンス制御のための方法図8および9は、上記の電力管理ユニット20の多様な実施形態が動作されてもよい方法を例示する。方法の実施形態は、本明細書では単一の処理ノードを参照して記載される。しかしながら、上記に準じて、電力管理ユニット20は、いくつかの異なる処理ノードと同時に本明細書に記載の方法の多様な実施形態を実施してもよいことに注意されたい。図8は、電力管理ユニットを動作するための方法の一実施形態の流れ図である。示される実施形態において、方法700は、処理ノード内のアプリケーション活動を追跡することから開始するブロック705。活動レベルは、低閾値および高閾値と比較されてもよい。活動レベルが高閾値を超えるブロック710、はいが、処理ノードが高動作点で既に動作している例えば、最高のP状態、P0、ブロック715、はい場合、変更は行われず、アプリケーション活動の追跡が継続するブロック705。活動レベルが高閾値を超えブロック710、はい、動作点が高動作点未満であるブロック715、はい場合、その処理ノードの動作点は、少なくとも次の時間間隔に対しては、高動作への推移であってもよいブロック720。新しい動作点に推移した後、活動は再び追跡されるブロック725。処理ノードの動作は、活動レベルが高閾値を超えたままであるブロック730、いいえ場合、高動作点で継続してもよい。間隔の活動レベルが高閾値未満ブロック730、はいであるが、低閾値を超えたままでブロック735、いいえ、現在の動作点が本来の動作点と同じではないブロック770、いいえ場合、処理ノードは、OSまたはソフトウェアによって必要とされる中間動作点に推移するブロック775。ブロック710で、活動レベルが高閾値未満ブロック710、いいえであり、低閾値を超えるブロック740、いいえ場合、方法は、ブロック705のアプリケーション活動の追跡に戻る。ブロック740の活動レベルが低閾値未満ブロック740、はいで、動作点が低動作点にあるブロック745、いいえ場合、方法は再び、ブロック705のアプリケーション活動の追跡に戻る。しかしながら、ブロック740の活動レベルが低閾値未満ブロック740、はいで、動作点が低動作点を超えるブロック745、はい場合、処理ノードは、低動作点に推移するブロック750。低動作点に推移した後、アプリケーション活動が追跡されブロック755、活動レベルが低閾値未満のままであるブロック760、いいえ場合、方法はブロック755に戻り、処理ノードはそのままで、動作点は変更されないままである。しかしながら、活動レベルが低閾値を超えるブロック760、はいが、高閾値を超えないブロック765、いいえ場合、ブロック770は、いいえになり、処理ノードは、オペレーティングシステムまたは他のソフトウェアによって必要とされる中間動作点に推移する。ブロック735で、活動レベルが低閾値未満であるブロック735、はい場合、方法は、ブロック745へ推移してもよい。処理ノードが低動作点以外の動作点で動作しているブロック745、はい場合、少なくとも次の時間間隔に対しては、低動作点へ推移してもよいブロック750。この推移に続いて、方法は、ブロック755から以降、上記のシーケンスに従ってもよい。そうでなく、処理ノードが低動作点で既に動作しているブロック745、いいえ場合、方法はブロック705に戻ってもよい。ブロック765で、活動レベルが高閾値を超えるブロック765、はい場合、方法は、ブロック715へ推移してもよい。処理ノードが高動作点以外の動作点で動作しているブロック715、はい場合、少なくとも次の時間間隔に対しては、高動作点へ推移してもよいブロック720。この推移に続いて、方法は、ブロック725から、上記のシーケンスに従ってもよい。そうでなく、処理ノードが高動作点で既に動作しているブロック715、いいえ場合、方法はブロック705に戻ってもよい。図9は、いくつかの時間間隔にわたって、方法の一実施形態の動作を例示する図である。例示を容易にするために、方法は、単一の中間動作点のみを参照して説明される。しかしながら、上記例えば、表1を参照に準じて、いくつかの中間動作点が実装されてもよい、実施形態が可能で、検討されることが理解される。さらに、上記のように、図9の例は、単一の処理ノードを参照して行われるが、上記の方法論は、同じ電気系統内のいくつかの固有の処理ノードと同時に実施することができることが理解される。示される例のT0のすぐ前の時点で、処理ノードの活動レベルは低閾値未満である。したがって、例の最初の完全な時間間隔、T0からT1までに対しては、処理ノードの動作点は、低動作点に設定される。最初の間隔の間、活動レベルは増加し、低閾値より上の点にとどまる。このため、次の間隔、T1からT2までに対しては、処理ノードの動作点は、中間動作点に設定される。T1からT2までの間隔の間、処理ノードの活動レベルは、高閾値を超える点まで増加する。このため、T2からT3の間隔に対しては、処理ノードは高動作点で作動する。活動レベルはこの間隔全体で高閾値を超えたままで、このため、処理ノードは、T3からT4までの間隔に対して、高動作点での動作にとどまる。T3とT4との間の間隔において、活動レベルは、再び高閾値を超える点まで上昇する前に、間隔の一部に対して、高閾値未満に低下する。分岐予測ミス、キャッシュミス、中断、または他の理由でパイプラインをフラッシュまたは失速させる場合がある他のイベント等の多様なイベントは、必ずしも処理作業負荷自体の低下を示すことなく、処理全体の低下を一時的に示す場合がある。したがって、本明細書に記載の方法を実施するように構成されている電力管理ユニットは、このような状況を考慮するように構成されてもよい。例えば、前の間隔の終了時点の実際の活動レベルに基づいて、次の間隔の動作点を設定する代わりに、電力管理ユニットは、即時の間隔および1つ以上の前の間隔にわたる平均活動レベルをその代わりに判定してもよい例えば、図5を参照した上記の実施形態等。したがって、プロセッサ処理能力に一時的な低下を生じる場合があるが、それ以外は一切の削減された作業負荷を示さないイベントは、動作点がその現在のレベル、またはこの特定のインスタンスの高い点にとどまるように、効果的にフィルタされてもよい。同様に、現在および1つ以上の前の間隔にわたる平均活動レベルを使用することは、そうでなければ低い例えば、メモリ主体の作業負荷の活動の突然のバーストを選択的にフィルタしてもよい。このような技法を使用することによって、本明細書に記載される電力管理ユニットが、異常イベントが動作点に影響することを防止する一方、プロセッサの作業負荷に対して動作点をより効果的に一致させることを可能にしてもよい。T4で開始する間隔に対して、活動レベルは何度か低下し、再上昇し、動作点はそれに従う。前述のように、間隔は継続時間が短くてもよい。一実施形態において、間隔は、10マイクロ秒から100マイクロ秒までの範囲であってもよいが、他の継続時間の間隔10マイクロ秒より短い継続時間の間隔を含むが可能で、検討される。短い間隔を利用することによって、処理ノードの動作点が、その対応する活動レベルを密接に反映することを可能にしてもよい。これによって、処理ノードが、計算主題の作業負荷が完了した後相当時間にわたって最高動作点で、または作業負荷要求の増加に続いて相当時間にわたって最低動作点で、維持されることを防止してもよい。図9は、第2の継続時間の複数の間隔のうちの1つ、T0-OSからT1-OSも例示する。ここに示される第1の間隔T0-T10の数から第2の間隔の数は、例であって、第1の間隔と第2の間隔の比率は異なってもよい。ここに例示される第2の間隔のうちの例示的間隔は、オペレーティングシステムソフトウェアが処理ノードの活動レベルを監視してもよい、間隔であってもよい。これらの間隔は、第1の間隔よりも継続時間が相当に長くてもよく、いくつかの場合、1つ以上の桁数だけ長い。オペレーティングシステムは、これらの第2の間隔にわたって活動レベルを監視してもよく、これにしたがって動作点を調整してもよい。しかしながら、本明細書に記載される電力管理ユニットの多様な実施形態は、活動レベルが高活動閾値以上、または低活動閾値以下の場合に、各処理ノードの動作点の制御を保持してもよい。これらの2つの閾値の間になる活動レベルでは、電力管理ユニットは、オペレーティングシステムが、プロセッサの各処理ノードまたはプロセッサコアの動作点を設定することを可能にしてもよい。しかしながら、電力管理ユニットは、第1の間隔の間、高活動閾値以上または低活動閾値以下である活動レベルが検出される場合、第2の間隔のうちの1つの間隔の間の任意の時点で、オペレーティングシステムによって行われる動作点の選択をオーバーライドしてもよい。コンピュータアクセス可能記憶媒体次に図10を参照すると、システム10のデータベース405表現を含むコンピュータアクセス可能記憶媒体400のブロック図が示される。一般的に、コンピュータアクセス可能記憶媒体400として、使用中にコンピュータに命令および/またはデータを提供するように、コンピュータによってアクセス可能な任意の非一時的記憶媒体が挙げられてもよい。例えば、コンピュータアクセス可能記憶媒体400には、磁気または光学媒体、例えば、ディスク固定された、もしくは取り外し可能な、テープ、CD-ROM、またはDVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW、あるいはブルーレイ等の記憶媒体が挙げられる。記憶媒体には、RAM例えば、シンクロナスダイナミックRAMSDRAM、ダブルデータレートDDR、DDR2、DDR3等SDRAM、低パワーDDRLPDDR2等SDRAM、RambusDRAMRDRAM、スタティックRAMSRAM等、ROM、フラッシュメモリ、ユニバーサルシリアルバスUSBインターフェース等の周辺インターフェースを介してアクセス可能である不揮発性メモリ例えば、フラッシュメモリ等の揮発性または不揮発性メモリ媒体がさらに挙げられる。記憶媒体には、微小電気機械システムMEMS、ならびにネットワークおよび/または無線リンク等の通信媒体を介してアクセス可能な記憶媒体が挙げられる。概して、コンピュータアクセス可能記憶媒体400上に含まれるシステム10のデータベース405は、システム10を備えるハードウェアを組み立てるように、プログラムによって読み出され、直接または間接的に使用され得る、データベースまたは他のデータ構造であってもよい。例えば、データベース405は、VerilogもしくはVHDL等の高級設計言語HDLでのハードウェア機能性の動作レベル記述またはレジスタ転送レベルRTL記述であってもよい。記述は、ゲートのリストを含むネットリストを生成するために、記述を合成し得る合成ツールによって、合成ライブラリから読み出されてもよい。ネットリストは、また、システム10を備えるハードウェアの機能性も表す、ゲートのセットを含む。次いで、ネットリストは、マスクに適用される幾何学的形状を記述するデータセットを生成するように、定置され、経路指定されてもよい。次いで、マスクはシステム10に対応する半導体回路単数または複数を生産するために、様々な半導体加工ステップで使用されてもよい。代替として、コンピュータアクセス可能記憶媒体400上のデータベースは405、所望により、ネットリスト合成ライブラリを伴う、または伴わないまたはデータセットであってもよい。コンピュータアクセス可能記憶媒体400は、システム10の表現を含むが、他の実施形態は、IC2、任意の組のエージェント例えば、処理ノード11、I/Oインターフェース13、電力管理ユニット20等、またはエージェントの一部例えば、活動モニタ202、CIPSユニット204等を含めて、所望に応じて、システム10の任意の部分の表現を含んでもよい。本発明は、特定の実施形態を参照して記載されてきたが、実施形態は、例示であり、本発明の範囲は、それに限定されないことが理解される。記載される実施形態に対する任意の変形、修正、追加、および改善が可能である。これらの変形、修正、追加、および改善は、以下の特許請求の範囲内に詳述されるように、本発明の範囲内であり得る。