(57)【特許請求の範囲】
【請求項１】
電圧レギュレータによって生成される調整された電圧を制御する電力管理ユニットを有するアンコアエリアと、
複数の機能ブロック、複数のセンサ、活動累積ロジック、スロットリングロジック、及びスロットラを有し、前記複数のセンサは、前記複数の機能ブロックから複数の活動レベルを収集し、該複数の活動レベルを前記活動累積ロジックへ供給し、前記活動累積ロジックは、累積活動値を生成し、該累積活動値をスロットリングロジックへ供給し、前記スロットリングロジックは、前記累積活動値と目標値との比較に基づき適応されるスロットリングレベルを示す信号を生成し、前記スロットラは、前記スロットリングレベルに基づき実行ユニットへ供給される命令を絞る、コアエリアと
を有し、
前記スロットリングロジックは、前記累積活動値に基づき実際の動的キャパシタンス値を決定する、プロセッサ。
【請求項２】
前記複数のセンサは、前記複数の機能ブロックのデータ活動及びアーキテクチャ活動を検知するよう前記複数の機能ブロックの１又はそれ以上のポートにおいて設けられる、
請求項１に記載のプロセッサ。
【請求項３】
前記スロットリングロジックは、前記実際の動的キャパシタンス値を電力スコア値へと較正する、
請求項１に記載のプロセッサ。
【請求項４】
前記スロットリングロジックは、前記電力スコア値を、前記電力管理ユニットによって供給される目標値と比較し、前記目標値は、許容される動的キャパシタンス値に基づき決定される、
請求項３に記載のプロセッサ。
【請求項５】
前記スロットリングロジックは、前記電力スコア値が前記目標値よりも大きい場合に前記スロットリングレベルを増大させることを示す信号を生成する、
請求項４に記載のプロセッサ。
【請求項６】
前記スロットラは、前記スロットリングレベルを増大させることを示す信号の受信に応答して命令スループットを低減させ、該命令スループットの低減は、前記実際の動的キャパシタンス値が前記許容される動的キャパシタンス値を下回ったままとする、
請求項５に記載のプロセッサ。
【請求項７】
前記スロットリングロジックは、前記電力スコア値が前記目標値よりも小さい場合に前記スロットリングレベルを低減させることを示す信号を生成する、
請求項４に記載のプロセッサ。
【請求項８】
前記スロットラは、前記スロットリングレベルを低減させることを示す信号の受信に応答して命令スループットを増大させる、
請求項７に記載のプロセッサ。
【請求項９】
プロセッサのコアエリアにおける方法であって、
複数のセンサにより複数の機能ブロックから複数の活動レベルを収集し、該複数の活動レベルを活動累積ロジックへ供給するステップと、
前記活動累積ロジックにおいて前記複数の活動レベルに基づき累積活動値を生成するステップと、
スロットリングロジックにより前記累積活動値の比較に基づき適応されるスロットリングレベルを示す信号を生成するステップと、
前記信号によって与えられる前記スロットリングレベルに基づき実行ユニットへ供給される命令を絞るステップと、
前記スロットリングロジックにおいて前記累積活動値に基づき実際の動的キャパシタンス値を決定するステップと
を有し、
前記プロセッサは、前記複数の機能ブロック、前記複数のセンサ、前記活動累積ロジック、前記スロットリングロジック、及びスロットラを有する前記コアエリアを有する、
方法。
【請求項１０】
前記複数の機能ブロックのデータ活動及びアーキテクチャ活動を検知するよう前記複数の機能ブロックの１又はそれ以上のポートにおいて前記複数のセンサを設けるステップ
を有する請求項９に記載の方法。
【請求項１１】
前記スロットリングロジックにおいて前記実際の動的キャパシタンス値を電力スコア値へと較正するステップ
を有する請求項９に記載の方法。
【請求項１２】
前記スロットリングロジックにおいて前記電力スコア値を電力管理ユニットによって供給される目標値と比較するステップ
を有し、
前記目標値は、許容される動的キャパシタンス値に基づき決定される、
請求項１１に記載の方法。
【請求項１３】
前記スロットリングロジックにおいて、前記電力スコア値が前記目標値よりも大きい場合に前記スロットリングレベルを増大させることを示す信号を生成するステップ
を有する請求項１２に記載の方法。
【請求項１４】
前記スロットリングレベルを増大させることを示す信号の受信に応答して、前記スロットラにおいて、命令スループットを低減させるステップ
を有し、
前記命令スループットの低減は、前記実際の動的キャパシタンス値が前記許容される動的キャパシタンス値を下回ったままとする、
請求項１３に記載の方法。
【請求項１５】
前記スロットリングロジックにおいて、前記電力スコア値が前記目標値よりも小さい場合に前記スロットリングレベルを低減させることを示す信号を生成するステップ
を有する請求項１２に記載の方法。
【請求項１６】
前記スロットリングレベルを低減させることを示す信号の受信に応答して、前記スロットラにおいて、命令スループットを増大させるステップ
を有する請求項１５に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピュータシステムはプロセッサを有してよい。プロセッサはコアエリア及びアンコアエリアを含んでよい。コアエリアは、１又はそれ以上のプロセッシングコア、キャッシュ（例えば、Ｌ１及びＬ２）、ラインフィルバッファを含んでよく、アンコアエリアは、最終レベルキャッシュ、メモリコントローラ、及びそのような他のブロックを有してよい。プロセッサ電力管理技術は、コアエリアによって消費される電力を低減することを目指す。１つの従来アプローチでは、コアエリアにおける活動度が測定され、その活動度に対応する電力値（実際の電力消費値）が決定される。次いで、電圧及び／又は周波数動作点は、実際の電力消費値と許容電力値との間の比較に基づき変更されてよい。電力管理技術は、実際の電力消費値が許容電力に等しいか又はそれより高いことを検出した後、電圧及び／又は周波数動作点を下げてよい。しかし、特定の量の時間が、高い活動が検出される時点と、電圧及び／又は周波数動作点が実際に下げられる時点との間で生じる。それらの２つの時点の間において、コンピュータシステムは高電力状態及び高活動状態でも動作しうる。そのような状況を回避するよう、プロセッサ（又は部分）は、より低い電圧及び周波数（Ｖ／Ｆ）点でビニングされる必要がある。
【０００２】
他の従来アプローチでは、電圧及び／又は周波数動作点は、プロセッサ電力セービング（Ｐ）状態及びブーストモードに基づき選択されてよい。これは、実際の電力消費値に基づき電圧及び／又は周波数動作点を変調してよい。上記のアプローチは、周波数を通じて電力及び性能を増大又は低減させる電圧動作範囲に依存する。プロセッサの夫々の新たな発生に伴い、電圧範囲は、ＶＣＣｍａｘがゲート酸化物信頼性のために下げられるにつれて小さくされ、一方、ＶＣＣｍｉｎはほとんど一定のままである。上記のアプローチは、事実上過電力状態に敏感である。先に論じられている電力管理技術は、プロセッサが高い温度又は電力状態に達した後にのみ反応する。結果として、実際に熱又は電力状態の変化に応答して電圧及び／又は周波数動作点を変更するのにかかる時間（すなわち、レイテンシー）は多大であり、このレイテンシーを低減する必要がある。
【０００３】
また、他方で、最新のプロセッサは多コア設計を目標とされ、それらのコアは共通のアンコアエリアへ結合される。プロセス技術における進歩に伴い、プロセッサ内のアンコアエリアはサイズがより大きくなっている。最新のプロセッサにおけるアンコアエリアは、多数の機能及び論理ブロック（例えば、メモリコントローラ、最終レベルキャッシュ、ホームエージェント、ルーティングエージェント、キャッシングエージェント、電力制御ユニット、インターフェース、及びそのような他のブロック）を含んでよく、通常は、コアエリアとは異なる電力プレーンにおいて動作してよい。望ましくは、それらのプロセッサは、例えば、消費される総エネルギを減らし及び／又はバッテリ寿命を改善するために、消費される遊休電力が低くなければならない。しかし、そのようなより大きいアンコアエリアによって消費される電力は、相当なレベルに達している（プロセッサによって消費される総電力の５０％に近い。）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
アンコアエリアにおける電力消費管理は、今までよりも重要になっている。アンコアエリアにおける電力管理は、コアエリアのように明確なスリープ状態（例えば、Ｃ０乃至Ｃ６／Ｃ７）が存在しないので、更なる課題を提示する。特に、コアエリアがＣ３のようなディープスリープ状態又は他の何らかの同様の状態（パッケージＣステートと呼ばれる。）にある場合、コアアーキテクチャ状態はアンコアエリアにおいてセーブされ、コア電圧はコアごとの電力ゲートトランジスタ（ＰＧＴ）又は埋込電力ゲート（ＥＰＧ）を用いて実質的に最小の値へ低減される。この条件下で、コアエリアによる遊休電力消費はほぼ零であり、アンコアエリアによって消費される遊休電力は多大である。また、アンコアエリアは、コアエリアと異なり、特定のレイテンシー内であらゆる外部リクエストに応えるようアクティブでなければならない。それらのプロセッサの多くは、複数のソケットへ結合された分散型メモリを備えたマルチソケット構造のために設計される。電圧及び周波数スケーリングのような電力最適化技術を用いることは、ピアソケット又はシステムエージェント応答レイテンシーへのスヌープ又はメモリアクセス応答に影響を及ぼしうる。よって、現在のプロセッサは、コアエリアがパッケージＣステートにある間にアンコアエリアにおける電力を節約するために電圧／周波数スケーリング技術を使用しない。結果として、プロセッサパッケージ遊休電力は、サーマル設計点（ＴＤＰ）電力の２０〜４０％の高さである。よって、プロセッサのコアエリア及びアンコアエリアの両方における電力管理技術の改善が必要とされる。
【図面の簡単な説明】
【０００５】
【図１】一実施形態に従ってコアエリアにおける活動に基づく電力節約技術及びアンコアエリアにおける負荷ラインＩＲ降下に基づく電力節約技術を支持するプロセッサ１００を表す。
【図２】一実施形態に従って総キャパシタンス（Ｃｔｏｔａｌ）及び動的キャパシタンス（Ｃｄｙｎ）に関してモデル化されたプロセッサのコアエリアを表す。
【図３】一実施形態に従ってアプリケーションの作業負荷における変化を参照してＣｄｙｎの変化のプロットを表す。
【図４】一実施形態に従ってコアエリアにおいて用いられる活動に基づく電力節約技術を描写するフローチャートを表す。
【図５】一実施形態に従ってコアエリアにおいて用いられる活動に基づく電力節約技術を実施するために使用されるブロック図を表す。
【図６】一実施形態に従ってコアエリアにおいて用いられる活動に基づく電力節約技術を実施するために使用される活動累積ロジックのブロック図を表す。
【図７】一実施形態に従ってコアエリアにおける瞬時活動に対する活動に基づく電力節約技術の影響を表すグラフである。
【図８】一実施形態に従ってコアエリアにおける平均活動に対する活動に基づく電力節約技術の影響を表すグラフである。
【図９】一実施形態に従ってアンコアエリアにおいて用いられる負荷ラインＩＲ降下に基づく電力節約技術を表すフローチャートである。
【図１０】（Ａ）、（Ｂ）及び（Ｃ）は、一実施形態に従って負荷ラインＩＲ降下に基づく電力節約技術を用いる間にアンコアエリアへ供給される電圧の低下を表す。
【図１１】（ａ）、（ｂ）及び（ｃ）は、一実施形態に従ってアンコアエリアにおいて負荷ラインＩＲ降下に基づく電力節約技術を用いることに応答して電流、電圧及び電力の変化を表すタイミング図である。
【図１２】一実施形態に従ってコンピュータシステムブロック図を表す。
【発明を実施するための形態】
【０００６】
ここで記載される発明は、限定としてではなく一例として、添付の図面において表されている。説明の簡単及び明りょうさのために、図において表されている要素は必ずしも実寸通りではない。例えば、幾つかの要素の寸法は、明りょうさのために他の要素に対して誇張されていることがある。更に、必要に応じて、参照符号は、対応する又は同じ要素を示すために、図間で繰り返されている。
【０００７】
以下の記載は、弱く順序づけられたトランザクション（weakly  ordered  transactions）をポストする技術の実施形態を記載する。以下の記載で、ロジック実施、リソース区分化、若しくは共有化、又は重複実施、システムコンポーネントのタイプ及び相互関係、並びにロジック区分化若しくは統合選択のような多数の具体的詳細は、本発明のより完全な理解を提供するために記載されている。しかし、当業者に明らかなように、本発明はそのような具体的詳細によらずに実施されてよい。他の例では、制御構造、ゲートレベル回路、及び完全ソフトウェア命令シーケンスは、本発明を不明りょうにしないように詳細には示されていない。当業者は、本明細書の記載により、必要以上の経験によらずに適切な機能性を実施することができるであろう。
【０００８】
“一実施形態”、“実施形態”、“実施例”との明細書中の言及は、記載されている実施形態が特定の特徴、構造、又は特性を含んでよいが、全ての実施形態が必ずしもその特定の特徴、構造、又は特性を含むわけではないことを示す。更に、そのような表現は、必ずしも同じ実施形態に言及しているわけではない。更に、特定の特徴、構造、又は特性が実施形態に関連して記載される場合に、明示的に記載されていようとなかろうと、他の実施形態に関連してそのような特徴、構造、又は特性に作用することは当該技術における通常の知識の範囲内にあると考えられる。
【０００９】
本発明の実施形態は、ハードウェア、ファームウェア、ソフトウェア、又はそれらのあらゆる組み合わせにおいて実施されてよい。本発明の実施形態はまた、機械により読取可能な媒体に記憶されている命令として実施されてもよい。そのような命令は、１又はそれ以上のプロセッサによって読み出されて実行されてよい。機械により読取可能な媒体は、機械（例えば、コンピュータ装置）によって読取可能な形において情報を記憶又は送信するためのあらゆるメカニズムを含んでよい。
【００１０】
例えば、機械により読取可能な媒体は、読出専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、電気、光、音響又は他の同様の信号を含んでよい。更に、ファームウェア、ソフトウェア、ルーチン、及び命令は、特定の動作を実行するとしてここで記載されてよい。しかし、当然に、そのような記載は単に便宜上であり、そのような動作は実際には、ファームウェア、ソフトウェア、ルーチン及び命令を実行するコンピュータ装置、プロセッサ、コントローラ、及び他の装置によりもたらされる。
【００１１】
プロセッサは、コンピュータシステムの重要な部分を形成する。今日、プロセッサは、複数のプロセッシングコア及びキャッシュを有するコアエリアと、大きなアンコアエリアとを有する。プロセッサによって消費される電力は、コンピュータシステムによって消費される電力全体に影響を有する。プロセッサによって消費される動的電力（Ｐ）は、Ｐ＝Ｃｄｙｎ×（Ｖｃｃ）２×Ｆによって与えられてよい。一実施形態において、プロセッサのコアエリアによって消費される電力は、プロセッサのＣｄｙｎを制御することによって制御されてよい。一実施形態において、Ｃｄｙｎは、Ｃｄｙｎがコアエリアによって処理されているアプリケーション（又はコード）に無関係に許容Ｃｄｙｎ値の範囲内にあるように、制御されてよい。一実施形態において、電力管理技術は、デジタル活動度（ＤＡＦ）を測定し、アーキテクチャ及びデータ活動レベルをモニタし、それらの活動レベルに基づき命令を絞ることによって電力消費を制御することを有してよい。一実施形態において、そのようなアプローチは、きめの細かい電力管理技術と、コードが処理されることに反応しうるブーストモードと比較して、コードが処理されている間にコードを制御するブーストモードを生成する能力とを提供してよい。一実施形態において、ブーストモードは、より軽い作業負荷のためにより高い性能を可能にするようより高い周波数及びより高い電圧動作点でコア又はプロセッサを動作させることを呼んでよい。
【００１２】
一実施形態において、コアエリアによって消費される電力を制御するよう、プロセッサは、複数の活動センサ、活動累積ロジック、スロットリングロジック、及びスロットラを有してよい。一実施形態において、活動センサは、ブロック（例えば、プロセッシングコア内の命令フェッチ及びデコードユニット、実行ユニット、並びにそのような他のユニット）内で起こる活動を検知し、活動レベル（アーキテクチャ及びデータ活動値）を活動累積ロジックへ供給してよい。一実施形態において、活動センサは、活動センサがアーキテクチャ及びデータ活動事象を検出することを可能にするよう、プロセッシングコア内の夫々のブロックのインターフェース（又はポート）において設けられてよい。一実施形態において、活動累積ロジックは、活動センサから活動値を収集することに応答して、累積活動値を生成してよい。一実施形態において、活動累積ロジックは、累積活動値をスロットリングロジックへ供給してよい。一実施形態において、活動累積ロジック（ＡＡＬ）は、重み付けロジック及びアグリゲータを有してよく、重み付けロジックは、活動センサによって供給される夫々の活動値へ重みを割り当ててよく、アグリゲータは、累積活動値を生成するよう活動値を累算（又は合計）してよい。
【００１３】
一実施形態において、スロットリングロジックは、累積活動値の受け取りに応答してＣｄｙｎ＿ａｃｔｕａｌを決定してよい。一実施形態において、スロットリングロジックはまた、Ｃｄｙｎ＿ａｃｔｕａｌを電力スコア値へと較正してよい。一実施形態において、スロットリングロジックは、電力スコア値を、電力制御ユニットによって与えられる目標値（許容Ｃｄｙｎ値）と比較し、電力スコア値が目標値よりも大きい場合は第１の信号を、及び電力スコア値が目標値よりも小さい場合は第２の信号を生成してよい。一実施形態において、スロットリングロジックは、第１の信号に基づき第１の命令分散速度（又は値）を、及び第２の信号に基づき第２の命令分散値を決定してよい。一実施形態において、スロットリングロジックは、第１又は第２の命令分散値のいずれかをスロットラへ供給する。
【００１４】
一実施形態において、スロットラは、スロットリングロジックから受け取った信号に基づき、命令分散の絞り（すなわち、命令が実行ユニットへ供給される速度）を変更する（増減させる）か、又は前のスロットリングレベルを維持してよい。一実施形態において、スロットラは、第１の命令分散値の受け取りに応答して命令絞りを増大させてよく（すなわち、より少ない命令が実行ユニットへ供給されてよく）、スロットラは、第２の命令分散値の受け取りに応答して命令絞りを低減してよい（すなわち、より多くの命令が実行ユニットに達することが可能にされる）。よって、コアエリアにおける（すなわち、プロセッシングコア内の）電力消費は、プロセッシングコアにおける活動レベルに基づき命令分散を絞ることによって制御されてよい。活動レベル（すなわち、Ｃｄｙｎ＿ａｃｔｕａｌ）に基づき命令を絞る結果として、スロットリングは、サードドループ（3rd  droop）（１マイクロ秒）及びサーマル設計点（ＴＤＰ）（１ミリ秒）のような異なる時間領域において実施されてよく、これは、ロングターム（すなわち、ＴＤＰ）及びショートターム（すなわち、サードドループ）動作がプロセッサのコアエリアにおける電力消費を制御することを可能にする。
【００１５】
アンコアエリアのサイズは、今日のプロセッサにおいて刻々と増大しており、従って、プロセッサのアンコアエリアによって消費される電力も増大している。特に、一実施形態において、アンコアエリアによって消費される遊休電力（すなわち、コアエリアがパッケージＣステートのようなディープパワーセービング状態にある間にアンコアエリアによって消費される電力）は、アンコアエリアへ供給される電圧（すなわち、参照電圧ＶＲ）を変化させることによって低減されてよい。一実施形態において、電圧レギュレータの出力は、負荷抵抗ＲＬを介してアンコアエリアの供給ピンへ結合されてよい。アンコアエリアの供給ピンでの電圧（ＶＰ）は、ＩＲ降下（＝ＩＣＣ×ＲＬ）に等しい量だけＶＲより小さい。すなわち、ＶＰ＝［ＶＲ−（ＩＣＣ×ＲＬ）］。
【００１６】
一実施形態において、電圧の最小値（ＶＰｍｉｎ）は、アンコアエリアが部品の製造者によって特定される周波数値で動作する必要がある場合にアンコアエリアへ供給されるべきである。一実施形態において、ＶＲ＝Ｘ及びＩＣＣ＝ＩＣＣ＿ｐｅａｋの場合に、ＶＰ＿ｐｅａｋ＝（Ｘ−ＩＣＣ＿ｐｅａｋ×ＲＬ）ボルト。一実施形態において、ＶＰ＿ｐｅａｋは、設計不具合を回避するよう少なくともＶＰｍｉｎに等しくなければならず、ＶＰ＿ｐｅａｋをＶＰｍｉｎの値を下回って下げることは不可能である。一実施形態において、コアエリアがパッケージＣステートにある場合に、ＩＣＣの値はＩＣＣ＿ｉｄｌｅに等しく、アンコアエリアの供給ピンでの電圧（ＶＰ＿ｉｄｌｅ）は（Ｘ−ＩＣＣ＿ｉｄｌｅ×ＲＬ）に等しい。ＩＣＣ＿ｉｄｌｅはＩＣＣ＿ｐｅａｋよりも小さいので、（ＩＣＣ＿ｉｄｌｅ×ＲＬ）の積は（ＩＣＣ＿ｐｅａｋ×ＲＬ）の積よりも小さい。結果として、ＶＰ＿ｉｄｌｅはＶＰ＿ｐｅａｋよりも大きい。一実施形態において、コアエリアがパッケージＣステートにある間はアンコアエリアの供給ピンで最低電圧（ＶＰｍｉｎ）を供給すれば十分である。
【００１７】
しかし、電流（ＩＣＣ＿ｉｄｌｅ）が負荷抵抗ＲＬを流れている間に参照電圧ＶＲを変更する技術がないときは、電圧ＶＰ＿ｉｄｌｅはＶＰｍｉｎ（又はＶＰ＿ｐｅａｋ）よりも大きい電圧であって、アンコアエリアへ供給される。ＩＣＣ＿ｉｄｌｅが負荷抵抗ＲＬを流れている場合でさえ、不必要に、（ＶＰ＿ｉｄｌｅ−ＶＰ＿ｐｅａｋ）に等しい余分の電圧値がアンコアエリアへ供給される。結果として、アンコアエリアが遊休状態である間さえ、（ＶＰ＿ｉｄｌｅ−ＶＰ＿ｐｅａｋ）に等しい電圧の二乗に比例する余分の電力がアンコアエリアによって消費される。一実施形態において、コアエリアがディープパッケージＣステートにある間、参照電圧（ＶＲ）は、アンコアエリアの供給ピンで供給される電圧（ＶＰ＿ｉｄｌｅ）を下げるよう変更されてよい。一実施形態において、参照電圧ＶＲは、ＶＰ＿ｉｄｌｅが、ＶＰｍｉｎ（又はＶＰ＿ｐｅａｋ）よりも僅かに高い値へ下がるように、ＶＰ＿ｒｅｄｕｃｅｄへ下げられる。一実施形態において、（ＶＰ＿ｉｄｌｅ−ＶＰ＿ｐｅａｋ）が零に傾く場合に、アンコアエリアによって消費される遊休電力は最小であってよい。一実施形態において、コアエリアがパッケージＣステートにある間、参照電圧（ＶＲ）は、アンコアエリアによって消費される遊休電力を節約又は低減するよう変更されてよい。
【００１８】
プロセッサのコア及びアンコアにおいて消費される電力を低減する電力節約技術を支持するプロセッサ１００の実施形態が、図１において表されている。一実施形態において、プロセッサ１００は、コアエリア１０５及びアンコアエリア１５０を有してよい。一実施形態において、コア１０５及びアンコア１５０は、プロセッシングコア（ｐコア）１１０どうし間及びコアエリア１０５とアンコアエリア１５０との間の通信を向上させるようポイント・ツー・ポイント双方向バスを支持してよい。一実施形態において、コアエリア１０５は電力プレーン１９５を設けられてよい。電力プレーン１９５は電圧レギュレータ１８０を有してよい。電圧レギュレータ１８０の出力は、負荷抵抗ＲＬ１０２を介して供給ピン１０４へ結合されてよい。
【００１９】
一実施形態において、コアエリア１０５は、ｐコア１１０−Ａ乃至１１０−Ｎのようなプロセッシングコアと、ｐコア１１０−Ａ乃至１１０−Ｎに夫々関連付けられるコアごとのキャッシュ１２０Ａ乃至１２０−Ｎと、ｐコア１１０−Ａ乃至１１０−Ｎに夫々関連付けられるミッドレベルキャッシュ１３０Ａ乃至１３０−Ｎとを有してよい。一実施形態において、ｐコア１１０は、命令キュー（ＩＱ）１０６と、スロットラ１０７と、活動累積ロジック（ＡＡＬ）１０８と、スロットリングロジック（ＴＬ）１０９と、命令フェッチユニット（ＩＦＵ）１１２と、デコードユニット（ＤＵ）１１３と、リザベーションステーション（ＲＳ）１１４と、実行ユニット（ＥＵ）１１５と、浮動小数点実行ユニット（ＦＰＵ）１１６と、リオーダバッファ（ＲＯＢ）１１７と、リタイアメントユニット（ＲＵ）１１８とを含んでよい。一実施形態において、夫々のプロセッサコア１１０−Ｂ乃至１１０−Ｎは、プロセッシングコア１１０−Ａにおいて表されているブロックと同じであるブロックを含んでよく、プロセッシングコア１１０−Ｂ乃至１１０−Ｎの夫々の内部詳細は、簡潔さのために示されない。一実施形態において、コアごとのキャッシュ１２０は、より速いアクセススピードを支持するメモリ技術を備えてよく、これは、例えば、命令及びデータフェッチのレイテンシーを低減することができる。
【００２０】
一実施形態において、活動センサ１７９は、ブロックＩＦＵ１１２、ＤＵ１１３、ＲＳ１１４、ＥＵ１１５、ＦＰＵ１１６、ＲＯＢ１１７及びＲＵ１１８の中で起こる活動を検知し、それらの活動レベルを活動累積ロジック（ＡＡＬ）１０８へ供給してよい。一実施形態において、活動センサ１７９は、活動センサ１７９がアーキテクチャ及びデータ活動値を検出することを可能にするよう、プロセッシングコア１１０−Ａ内の各ブロックのデータ経路において設けられてよい。一実施形態において、コアエリア１０５によって消費される電力を制御するよう、ＡＡＬ１０８は、複数の活動センサ１７９によって検知された活動レベルを収集し、累積活動値を生成してよい。一実施形態において、活動累積ロジック（ＡＡＬ）１０８は、累積活動値をスロットリングロジック（ＴＬ）１０９へ供給してよい。
【００２１】
一実施形態において、ＴＬ１０９は、累積活動値を受け取ったことに応答してＣｄｙｎ＿ａｃｔｕａｌを決定してよい。一実施形態において、ＴＬ１０９はまた、Ｃｄｙｎ＿ａｃｔｕａｌを電力スコア値へと較正してよい。一実施形態において、ＴＬ１０９は、電力スコア値を目標値（許容Ｃｄｙｎ値）と比較し、制御信号を生成してよい。制御信号は、命令の絞りレベル、すなわち命令分散速度を増大若しくは低減又は維持すべきかどうかを示してよい。一実施形態において、スロットラ１０７は、ＴＬ１０９から受け取った制御信号に基づき命令の絞り又は命令分散値を変化させるか（増減させるか）又は維持してよい。一実施形態において、スロットラ１０７は、制御信号の受信に応答して命令絞りを増大させるか（すなわち、より少ない命令が実行ユニットを供給されてよい。）又は命令絞りを低減させてよい（すなわち、より多くの数の命令が実行ユニットに到達することが可能にされる。）。
【００２２】
よって、コアエリア１０５における（すなわち、プロセッシングコア１１０内の）電力消費は、プロセッシングコア１１０における活動レベル（又はそのＣｄｙｎ＿ａｃｔｕａｌ）に基づき命令を絞ることによって、制御され得る。一実施形態において、命令の絞りは、活動レベル（又はＣｄｙｎ）に直接基づき実行されてよく、電力消費を制御する能力はより速くなる。また、Ｃｄｙｎを設定値に制限することによって、コアにおける電力の消費の制御は、余分の電力消費条件の発生に反応することよりむしろ、積極的に実行されてよい。活動レベル（又はＣｄｙｎ＿ａｃｔｕａｌ）に基づき命令を絞る結果として、絞りは、サードドループ（１マイクロ秒）及びサーマル設計点（ＴＤＰ）（１ミリ秒）のような異なる時間領域において実施されてよい。これは、ロングターム（すなわち、ＴＤＰ）又はショートターム（すなわち、サードドループ）動作がプロセッサ１００のコアエリア１０５における電力消費を制御することを可能にすることができる。一実施形態において、Ｃｄｙｎ及びそれとタイプアプリケーションとの関係が以下で図３において表されている。
【００２３】
コアエリア１０５における電力消費は上記の技術に基づき活動レベルを用いて制御又は管理されてよく、一方、アンコアエリア１５０における電力消費は、下記の電力管理技術を用いて管理されてよい。一実施形態において、アンコアエリア１５０は、メモリコントローラ１５５と、最終レベルキャッシュ（ＬＬＣ）１６０と、ホームエージェント（ＨＡ）１６１と、キャッシングエージェント（ＣＡ）１６２と、ルーティングエージェント（ＲＡ）１６３と、グローバルクロック／ＰＬＬ１６４と、インターフェース１６５と、電力管理ユニット１６８とを含んでよい。一実施形態において、参照電圧ＶＲは、特に、コアエリア１０５がディープパッケージＣステート（すなわち、Ｃ３、Ｃ６／Ｃ７のようなディープパワーセービング状態）にある間にアンコアエリア１５０によって消費される遊休電力を低減するよう変更されてよい。一実施形態において、アンコアエリア１５０は、電力プレーン１９７を設けられてよく、電力プレーン１９７は、電圧レギュレータ１９５を含んでよく、電圧レギュレータ１９５の出力は、負荷抵抗ＲＬ１９２を介してアンコアエリア１５０の供給ピン１９４へ結合されてよい。一実施形態において、コアエリア１０５がパッケージＣステートにある間、インターフェース経路１９９における活動又はトランザクションは零であってよい。
【００２４】
コアエリア１０５がアクティブである間、電流のピーク量（ＩＣＣ＿ｐｅａｋ）がＲＬ１９２を流れ、アンコアエリア１５０の供給ピン１９４での電圧（ＶＰ＿ｐｅａｋ）はＩＲ降下に等しい量（＝ＩＣＣ＿ｐｅａｋ×ＲＬ）だけ（電圧レギュレータ１９５の出力１９６での）参照電圧ＶＲよりも低い。すなわち、ＶＰ＿ｐｅａｋ＝［ＶＲ−（ＩＣＣ＿ｐｅａｋ×ＲＬ）］。例えば、ＶＲ＝１ボルト、ＲＬ１９２＝１．４ミリオーム、及びＩＣＣ１９３＝ＩＣＣ＿ｐｅａｋ＝５０アンペアの場合に、ＩＲ降下は（ＩＣＣ×ＲＬ）＝（５０アンペア×１．４ミリオーム）＝７０ミリボルト（ｍｖ）に等しい。結果として、供給ピン１９４で供給される電圧（ＶＰ＿ｐｅａｋ）は［１ボルト−７０ｍｖ］＝０．９３ボルトに等しい。一実施形態において、電圧の最小値ＶＰｍｉｎ（この例ではＶＰ＿ｐｅａｋに等しい。）は、アンコアエリア１５０が部品（すなわち、プロセッサ１００）の製造者によって特定される周波数値（又はビン周波数）で動作すべき場合にアンコアエリア１５０へ供給されてよい。一実施形態において、設計不具合を回避するよう、基準電圧ＶＲの値を指定値（上記の例では１ボルト）を下回って下げることは不可能である。
【００２５】
参照電圧ＶＲを変更する技術がないとき、且つ、コアエリア１０５がパッケージＣステートにある間、ＲＬ１９２を流れる電流（ＩＣＣ１９３）はＩＣＣ＿ｉｄｌｅに等しく、アンコアエリア１５０の供給ピン１９４での電圧（ＶＰ＿ｉｄｌｅ）は［ＶＲ−（ＩＣＣ＿ｉｄｌｅ×ＲＬ）］に等しい。ＩＣＣ＿ｉｄｌｅはＩＣＣ＿ｐｅａｋよりも小さいので、（ＩＣＣ＿ｉｄｌｅ×ＲＬ）の積は（ＩＣＣ＿ｐｅａｋ×ＲＬ）の積よりも小さい。結果として、ＶＰ＿ｉｄｌｅはＶＰ＿ｐｅａｋよりも大きくなる。例えば、ＩＣＣ＿ｉｄｌｅが２０アンペアに等しく、ＶＰ＝［１ボルト−（２０アンペア×１．４ミリオーム）］＝［１ボルト−２８ｍｖ］＝０．９７２ボルトであって、ＶＰ＿ｐｅａｋ（０．９３ボルト）よりも大きい。結果として、（ＶＰ＿ｉｄｌｅ−ＶＰ＿ｐｅａｋ）に等しい余分の電圧が不必要にアンコアエリア１５０へ供給される。結果として、遊休状態においてアンコアエリア１５０によって消費される電力（すなわち、ｐｏｗｅｒ  ｃｏｎｓｕｍｅｄ＿ｉｄｌｅ）はｎｏｒｍａｌ＿ｐｏｗｅｒ＿ｃｏｎｓｕｍｅｄ＿ｉｄｌｅであってよく、これは（動的電力＋漏れ電力）＝｛［Ｃｄｙｎ×（ＶＰ＿ｉｄｌｅ）２×ｆ］＋［（ＶＰ＿ｉｄｌｅ）４の関数］｝＝｛［５ｎＦ×（０．９７２）２×２．５３ＧＨｚ］＋［５ワット］｝＝１６．９５ワットに等しい。
【００２６】
一実施形態において、コアエリア１０５がディープパワーセービング状態又はパッケージＣステートにあるかどうかに基づき参照電圧ＶＲを日和見的に変更することによって、コアエリア１０５の遊休状態の間に電力消費を節約する機会が与えられ得る。一実施形態において、コアエリア１０５へ供給される電圧は、電力ゲートトランジスタ（ＰＧＴ）又は埋込電力ゲート（ＥＰＧ）を用いて実質的に遮断されてよい。一実施形態において、コアエリア１０５がディープパワーセービング状態において動作している間、コアエリア１０５によってアンコアエリア１５０に投入される活動は実質的に低い。一実施形態において、コアエリア１０５がパッケージＣステートにある間、アンコアエリア１５０の供給ピン１９４で最低電圧（ＶＰｍｉｎ＝０．９３ボルト）を供給すれば十分である。ＶＰ＿ｉｄｌｅを、ＶＰｍｉｎにより近い値であるＶＰ＿ｒｅｄｕｃｅｄへと下げるよう、電力管理ユニット１６８は、コアエリア１０５のパッケージＣステート条件を検出してよく、デジタルフォーマットにおいて電圧値（ＶＩＤ＿Ｒ）を生成してよい。一実施形態において、ＶＩＤ＿Ｒ値は、電圧レギュレータ１９５へ供給されてよい。一実施形態において、電圧レギュレータ１９５は、電力管理ユニット１６８からＶＩＤ＿Ｒ値を受け取ったことに応答して、ＶＲ＿ｐｅａｋ（＝１ボルト）よりも小さい参照電圧ＶＲを生成してよい。
【００２７】
一実施形態において、供給ピン１９４で供給されるＶＰ＿ｉｄｌｅ（又はＶＰ＿ｎｏｒｍａｌ）は、ＶＲ＿ｐｅａｋ値（又はＶＲ＿ｎｏｒｍａｌ）からＶＲ＿ｒｅｄｕｃｅｄ値へのＶＲの値の低減により下げられてよい。一実施形態において、参照電圧ＶＲをＶＲ＿ｎｏｒｍａｌ値からＶＲ＿ｒｅｄｕｃｅｄ値へ下げることは、ＶＰ＿ｉｄｌｅからＶＰ＿ｒｅｄｕｃｅｄへのＶＰの低下を引き起こしてよい。一実施形態において、アンコアエリア１５０によって消費される電力は、ＶＰ＿ｉｄｌｅからＶＰ＿ｒｅｄｕｃｅｄへとＶＰの値を下げることに応答して同様に低減してよい。例えば、電圧レギュレータ１９５は、ＶＩＤを受け取ったことに応答して、ＶＲをＶＲ＿ｎｏｒｍａｌ（１ボルト）からＶＲ＿ｒｅｄｕｃｅｄ（０．９６ボルト）へ下げてよく、結果として、ＶＰはＶＰ＿ｉｄｌｅからＶＰ＿ｒｅｄｕｃｅｄ［＝０．９６−（２０アンペア×１．４ミリオーム）＝（０．９６−０．０２８）＝０．９３２ボルト］へ低減してよい。一実施形態において、ｐｏｗｅｒ＿ｃｏｎｓｕｍｅｄ＿ｉｄｌｅはＲｅｄｕｃｅｄ＿ｐｏｗｅｒ＿ｃｏｎｓｕｍｅｄ＿ｉｄｌｅ（すなわち、Ｐ＿ｉｄｌｅ＿ｒｅｄｕｃｅｄ＝動的電力＋漏れ電力＝｛［Ｃｄｙｎ×（ＶＰ＿ｒｅｄｕｃｅｄ）２×ｆ］＋［（ＶＰ＿ｒｅｄｕｃｅｄ）４の関数］｝＝｛例えば、［５ｎｆ×（０．９３２）２×２．５３ＧＨｚ］＋［４ワット］｝＝１４．９９８ワット）へ低減されてよい。結果として、［（ｎｏｒｍａｌ＿ｐｏｗｅｒ＿ｃｏｎｓｕｍｅｄ＿ｉｄｌｅ）−（Ｒｅｄｕｃｅｄ＿ｐｏｗｅｒ＿ｃｏｎｓｕｍｅｄ＿ｉｄｌｅ）＝（１６．９５−１４．９９８）＝１．９６ワット］に等しい電力が節約される。従って、一実施形態において、参照電圧ＶＲを日和見的に変更することによって、アンコアエリア１５０によって消費される電力は、コアエリア１０５がパッケージＣステートに入ることに応答してｎｏｒｍａｌ＿ｐｏｗｅｒ＿ｃｏｎｓｕｍｅｄ＿ｉｄｌｅからＲｅｄｕｃｅｄ＿ｐｏｗｅｒ＿ｃｏｎｓｕｍｅｄ＿ｉｄｌｅへ低減されてよい。
【００２８】
一実施形態において、電力管理ユニット１６８は、コアエリア１０５のパッケージＣステートから通常モードへの終了事象の開始を検出してよい。終了事象の開始の検出に応答して、電力管理ユニット１６８は、通常参照電圧に対応するＶＩＤ＿Ｎ値を生成してよく、ＶＩＤ＿Ｎ値は電圧レギュレータ１９５へ供給されてよい。一実施形態において、ＶＩＤ＿Ｎ値の受け取りに応答して、電圧レギュレータ１９５は、ＶＲ値をＶＲ＿ｒｅｄｕｃｅｄからＶＲ＿ｎｏｒｍａｌ（又はＶＲ＿ｐｅａｋ）値へ増大させてよい。結果として、アンコアエリア１５０の供給ピン１９４で供給される電圧は、ＶＰｍｉｎに又はそれを僅かに上回って維持されてよい。一実施形態において、ＶＲ＿ｒｅｄｕｃｅｄからＶＲ＿ｎｏｒｍａｌへの参照電圧における変化と、ＶＰ＿ｒｅｄｕｃｅｄからＶＰ＿ｉｄｌｅ（又はＶＰ＿ｎｏｒｍａｌ）へのＶＰにおける変化とは、アンコアエリア１５０がコアエリア１０５によって引き起こされる如何なる活動も経験する前に、十分に終了レイテンシーの範囲内で起こってよい。よって、最低電圧ＶＰｍｉｎレベルは、プロセッサ１００の性能に影響を及ぼすことなく維持されてよい。
【００２９】
コアエリア１０５及び対応する動的キャパシタンスＣｄｙｎの決定の実施形態が図２において表されている。一実施形態において、一実施形態において、コア２１０は総キャパシタンスＣＴｏｔａｌ２２０によって表されてよく、動的キャパシタンスＣｄｙｎ２４０は（ＣＴｏｔａｌ２２０×活動度）に等しい。一実施形態において、Ｃｄｙｎ２４０は、処理されているアプリケーション（又はコード）に基づき変化してよい。例えば、電力ウィルス及びＨＰＣのような幾つかのアプリケーションは、メインストリームアプリケーションのようなその他のアプリケーションと比較して、より高い活動レベルを示す。よって、Ｃｄｙｎ２４０はＣＴｏｔａｌ２２０の分数であってよい。
【００３０】
様々なアプリケーションタイプの作業負荷に対するＣｄｙｎのグラフ３００が図３において表されている。グラフ３００はＹ軸３１０及びＸ軸３２０を含み、それらの軸は夫々、正規化されたＣｄｙｎと、様々なアプリケーションタイプの作業負荷に基づき適用可能なアプリケーションの適切な数とを表す。一実施形態において、グラフ３００は、メインストリームアプリケーション３４０、高性能コンピューティングＨＰＣアプリケーション３５０及び電力ウィルス（power  virus）アプリケーション３６０が後に続いて数が大きい遊休アプリケーション３３０のような様々なアプリケーションを含む。一実施形態において、プロセッサ１００は、線３４５によって示された０．５５のより低いアプリケーション比にスロットルを設定することによって、メインストリームアプリケーション３４０のために最適化されてよい。しかし、スロットルは、プロセッサ１００がＨＰＣアプリケーション３５０のために最適化されるべき場合には、線３５５によって示される０．６３３のより高いアプリケーション比に設定されてよい。一実施形態において、アプリケーション比は、電力ウィルス（ＰＶ）のような最も高い電力消費のアプリケーションによって消費される電力と比較される所与のアプリケーションのために消費される電力の比を表してよい。他の実施形態において、アプリケーション比はまた、実際のアプリケーションと電力ウィルスアプリケーションとの比を表してよい。
【００３１】
一実施形態において、電力ウィルスアプリケーション３６０が処理されるべき場合に、目標値（許容Ｃｄｙｎ）は、Ｃｄｙｎ＿ａｃｔｕａｌと目標値との比較が、ＨＰＣアプリケーション３５０又はメインストリームアプリケーション３４０を処理している間の命令の数と比べてより少ない命令が所与の時間期間において実行ユニットに到達することを可能にするよう、より締め付けられた（すなわち、より高い）絞り値を設定するように、設定されてよい。一実施形態において、上記の電力管理技術は、電力ウィルスアプリケーションがプロセッサ１００によって処理されることを可能にするが、命令の絞りは、より少ない命令が処理されることを可能にするよう、より締め付けられた（より高い）絞り値を設定してよい。そのようなアプローチは、高電力アプリケーション（例えば、電力ウィルス）が全てのアプリケーションが処理され得る周波数を制限するところの条件を回避する。更に、高電力アプリケーションを絞ることによって、高電力アプリケーションを処理している間に引き込まれる電流は低減されて、最も低い動作電圧（及び従って周波数）がスロットルレベルによって設定されることを可能にする。また、そのようなアプローチは、ユーザが、機械特有のレジスタＭＳＲ１１１を設定することによって実時間においてＨＰＣコード又はメインストリームコードのために最適化されるようプロセッサをモニタし設定することを可能にする。
【００３２】
上記の電力管理技術を実行している間のコアエリア１０５の動作を描写するフローチャートが図４において表されている。ブロック４１０で、活動センサ１７９又はデータパターンセンサ５０５は、ＩＦＵ５１０、ＩＱ５２０、及びＥＵ５５０のような１又はそれ以上の機能ユニットのポート又はデータ経路で提供されるデータのパターン及びアーキテクチャ事象に基づき活動値／レベルを生成してよい。一実施形態において、活動値は、活動累積ロジック（ＡＡＬ）５７０へ供給されてよい。
【００３３】
ブロック４２０で、活動累積ロジック（ＡＡＬ）５７０は、データパターン（又は活動）センサから活動値を受け取り、累積活動値を生成してよい。一実施形態において、ＡＡＬ５７０は、重み付けロジック６１０と、加算ユニット６３０、６４０、６５０及び６６０と、積算器６７０とを含んでよい。一実施形態において、重み付けロジック６１０は、重み付け要素６１０−Ａ乃至６１０−Ｈを含んでよく、重み付け要素６１０−Ａ乃至６１０−Ｄの夫々はＩＦＵ５１０、ＩＱ５２０及びＥＵ５５０のような機能ユニットからデータ入力６０５−Ａ乃至６０５−Ｄを受け取ってよく、そうして受け取られたデータ入力６０５−Ａ乃至６０５−Ｄは、作業が行われていることを示してよい。一実施形態において、機能ユニット５１０、５２０及び５５０から受け取られるデータ入力６０５−Ａ乃至６０５−Ｄは毎サイクル更新されてよく、そのようなデータ入力６０５−Ａ乃至６０５−Ｄの幅は１２８ビットより小さくてよい。一実施形態において、機能ユニットから受け取られるデータ入力６０５−Ａ乃至６０５−Ｄは動作電力を表してよく、例えば、浮動小数点演算ユニットデジタル活動度（ＦＰＵＤＡＦ；Floating  Point  Unit  Digital  Activity  Factor）、命令フェッチ及びリスティアデジタル活動度（ＩＦＲＤＡＦ；Instruction  Fetch  and  Resteer  Digital  Activity  Factor）、及びそのような他の同様の入力値を含んでよい。一実施形態において、データ入力６０５−Ａ乃至６０５−Ｄは、重み付け入力を加算ユニット６３０へ供給する前に、予め決定されたロジックに基づき重み値を与えられてよい。一実施形態において、重み付け要素６１０−Ｅ乃至６１０−Ｈは、データが消費されることを示すレジスタファイルからのデータ入力６０５−Ｅ乃至６０５−Ｈを受け取ってよい。一実施形態において、データ入力６０５−Ｅ乃至６０５−Ｈは、１２８サイクルごとに更新されてよく、重み付け要素６１０−Ｅ乃至６１０−Ｈは、重み付け入力を加算ユニット６４０へ供給する前に、データ入力６０５−Ｅ乃至６０５−Ｈへ重み値を与えてよい。一実施形態において、加算ユニット６５０及び６６０並びに積算器６７０はともに、適切な幅（例えば、４４ビット幅）の累積活動値を生成してよい。一実施形態において、加算ユニット６５０は、６４０からのデータ入力和を６５０からの活動入力和と足し合わせてよい。一実施形態において、積算器ラッチ６７０は、積算器加算器６６０を介して値をフィードバックしてよく、適切な幅の累積活動値を生成してよい。
【００３４】
ブロック４３０で、スロットリングロジック（ＴＬ）５６０は、ＡＡＬ５６０によって供給される累積活動値を受け取り、動的キャパシタンス（Ｃｄｙｎ）値を生成してよい。一実施形態において、スロットリングロジック（ＴＬ）５６０は、ＣＴｏｔａｌ及び累積活動値に基づきＣｄｙｎ＿ａｃｔｕａｌを決定してよい。ブロック４５０で、スロットリングロジック（ＴＬ）５６０は、電力スコア値を表すようＣｄｙｎ＿ａｃｔｕａｌを較正してよい。
【００３５】
ブロック４６０で、スロットリングロジック（ＴＬ）５６０は、Ｃｄｙｎ＿ａｃｔｕａｌ値に基づき生成された電力スコア値を、電力管理ユニット（ＰＭＵ）５８０によって供給される目標値と比較してよい。一実施形態において、ＰＭＵ５８０によって供給される目標値は、電力スコア値として較正される許容Ｃｄｙｎ値を表してよい。一実施形態において、ユーザはＨＰＣアプリケーションのためにプロセッサを最適化してよく、許容Ｃｄｙｎ値は０．６３３のアプリケーション比に等しい。この値は、電力スコア値へと較正されてよい。一実施形態において、活動レベル、累積活動値、Ｃｄｙｎ＿ａｃｔｕａｌ、及び電力スコア値は、コアエリア１０５が電力ウィルスアプリケーション３６０を処理している場合に、より高い値を表してよい。
【００３６】
ブロック４７０で、ＴＬ５６０は、許容Ｃｄｙｎに対応する電力スコア値と、Ｃｄｙｎ＿ａｃｔｕａｌに対応する電力スコア値とを比較してよく、制御は、電力スコア値が目標値より小さい場合はブロック４８０へ、及びそうでない場合はブロック４９０へ移動する。一実施形態において、ＴＬ５６０は、電力スコア値が目標値より小さい場合は第１の信号を生成してよく、電力スコア値が目標値より大きい場合は第２の信号を生成してよい。上記の例では、ＴＬ５６０は、電力ウィルス（ＰＶ）アプリケーション３６０に対応する電力スコア値（すなわち、Ｃｄｙｎ＿ａｃｔｕａｌに較正される。）を、ＨＰＣアプリケーション３５０に対応する許容Ｃｄｙｎに設定され得る目標値と比較してよい。ＴＬ５６０は、電力スコア値が目標値よりも大きい場合に第２の信号を生成してよい。
【００３７】
ブロック４８０で、スロットラ５３０は、第１の信号の受信に応答して命令の絞りを維持又は低減してよい。一実施形態において、第１の信号は、Ｃｄｙｎエンベロープ又は電力スコアエンベロープを越えることなしにより多くの命令が処理され得ることを示し、スロットラ５３０は絞りを軽減する（すなわち、命令スループットを増大させる）。他方で、命令スループットが目標値よりも小さいが目標値に非常に近いことを第１の信号が示す場合は、スロットラ５３０は、絞りレベルを変えることなしに命令スループットを維持する。
【００３８】
ブロック４９０で、スロットラ５３０は、電力消費がＴＤＰエンベロープ内にあることを確かにするよう命令の絞りを増大させてよい。一実施形態において、電力スコア値が目標値よりも大きい場合に、命令スループットは、絞りレベルを増大させて、より少ない命令が実行ユニットに到達することを可能にすることによって、低減される。上記の例では、スロットラ５３０は、命令スループットを低減するよう速やかに絞りレベルを増大させる。活動レベル（又はＣｄｙｎ＿ａｃｔｕａｌ）に基づき命令を絞る結果として、絞りは、サードドループ（１マイクロ秒）及びサーマル設計点（ＴＤＰ）（１ミリ秒）のような異なる時間領域において実施されてよく、これは、ロングターム（すなわち、ＴＤＰ）及びショートターム（すなわち、サードドループ）動作がプロセッサ１００のコア１０５における電力消費を制御することを可能にする。
【００３９】
スロットルの有無による瞬時活動のプロットを表すグラフ７００が図７において表されている。グラフ７００は、アプリケーション比を表すＹ軸７１０と、時間（単位マイクロ秒）を表すＸ軸７４０とを含む。一実施形態において、小さい存続期間Ｔ１よりも短い存続期間に起こるバースト活動（瞬時活動）が何らかの絞りを有して可能にされる場合に、絞られることなく可能にされるそのようなバースト活動７５０がグラフ７００において表されている。しかし、一実施形態において、時間存続期間Ｔ１を越えて起こる持続的活動が起こる場合に、上記の電力管理技術は命令を絞り始めてよい。グラフ７００は、絞り活動７７０によって示されるように絞られ得るような持続的活動７６０を表す。持続的活動７６０は、絞られないままである場合に、時間存続期間Ｔ２で起こり得ることが観測されるが、一実施形態において、持続的活動７６０は、上記の電力管理技術を用いて絞られてよい。絞りの結果として、命令分散又は命令スループットは変更され得、持続的活動７６０は、より長い持続期間の時間Ｔ３にわたって広げられ、そのような広げられた活動は、絞り活動７７０と呼ばれてよい。
【００４０】
時間期間にわたって要求される平均活動及び認められる平均活動のプロットを表すグラフ８００が図８において表されている。グラフ８００は、アプリケーション比を表すＹ軸８１０と、時間（単位マイクロ秒）を表すＸ軸８４０とを含む。一実施形態において、要求される平均活動はプロット８３０によって表され、認められる平均活動はプロット８２０によって表される。時間期間Ｔ５にわたって要求される平均活動は、１のピークアプリケーション比を有してよい。しかし、一実施形態において、そのピークアプリケーション比は、上記の電力管理技術によって認められない。代わりに、より低いアプリケーション比（例えば、０．８）が許容され、そのような認められる絞られた平均活動８２０が起こり得る時間期間は、Ｔ５よりも広いＴ６である。
【００４１】
コアエリア１０５がパッケージＣステートにある間にアンコアエリア１５０によって消費される遊休電力を低減するよう電力管理ユニットＰＭＵ１６８及び電圧レギュレータ１９５を含む電力管理経路の動作の実施形態は、図９において表されている。
【００４２】
ブロック９１０で、ＰＭＵ１６８は、コアエリア１０５がパッケージＣステートに入ったかどうかをチェックしてよく、制御は、コアエリア１０５がパッケージＣステートに入った場合にブロック９１５へ移動する。ＰＭＵ１６８は、コアエリア１０５がディープパワーセービング状態（又はパッケージＣステート）に入るのを待ってよい。
【００４３】
ブロック９１５で、ＰＭＵ１６８は、プロセッサ１００のアンコアエリア１５０に給電する電圧レギュレータ１９５へ供給されるべき第１の電圧値（上記のＦＶＩＤ又はＶＩＤ＿Ｒ）を生成してよい。一実施形態において、ＦＶＩＤ又はＶＩＤ＿Ｒはデジタル値（９ビット値）を表してよく、これに基づき電圧レギュレータ１９５は参照電圧ＶＲ（＝ＶＲ＿ｒｅｄｕｃｅｄ）を生成してよい。ブロック９２０で、ＰＭＵ１６８は、ＦＶＩＤを電圧レギュレータ１９５へ供給してよい。
【００４４】
ブロック９３０で、電圧レギュレータ１９５は、ＦＶＩＤ値に基づきＶＲを通常の参照電圧（ＶＲ＿ｎｏｒｍａｌ）から低減された参照電圧（ＶＲ＿ｒｅｄｕｃｅｄ）へ変化させてよい。一実施形態において、ＶＲは、１ボルトのＶＲ＿ｎｏｒｍａｌから０．９６ボルトのＶＲ＿ｒｅｄｕｃｅｄへ下げられてよい。
【００４５】
ブロック９４０で、ＶＲ＿ｎｏｒｍａｌからＶＲ＿ｒｅｄｕｃｅｄへのＶＲの変更の結果として、供給ピン１９４で供給される電圧ＶＰはＶＰ＿ｒｅｄｕｃｅｄへ変化してよい。一実施形態において、ＶＰは、１ボルトから０．９６ボルトへのＶＲの変化に応答して、上述されたように、０．９７２ボルトのＶＰ＿ｉｄｌｅから０．９３２ボルトへ下げられてよい。
【００４６】
ブロック９４５で、ＶＰ＿ｉｄｌｅからＶＰ＿ｒｅｄｕｃｅｄへ（すなわち、０．９７２ボルトから０．９３２ボルトへ）のＶＰの変化の結果として、アンコアエリア１５０の供給ピン１９４は、ＶＰ＿ｒｅｄｕｃｅｄ（＝０．９３２ボルト）のピン電圧を供給されてよい。アンコアエリア１５０へ供給される電圧値を下げる結果として、アンコアエリア１５０によって消費される遊休電力も（例えば、上述されたように、１．９６ワットの電力節約をもたらすよう１６．９５ワットから１４．９８８ワットへ）低下しうる。
【００４７】
ブロック９５０で、ＰＭＵ１６８は、コア１０５のパッケージＣステート終了事象をチェックしてよく、ＰＭＵ１６８がパッケージＣステート終了事象を検出する場合に、制御はブロック９６０へ移動する。一実施形態において、ブロック９５０においてＰＭＵ１６８によって実行される動作は、ブロック９１５乃至９４５における動作と並列且つ独立に実行されてよい。
【００４８】
ブロック９６０で、ＰＭＵ１６８は、コアエリア１０５又はコアエリア１０５内のいずれかのプロセッシングコア１１０がパッケージＣステートから脱してアクティブ状態に入る前に、ブロック９６５乃至９９０を実行してよい。ブロック９６５で、ＰＭＵ１６８は、プロセッサ１００のアンコアエリア１５０に給電する電圧レギュレータ１９５へ供給されるべき第２の電圧値（上記のＳＶＩＤ又はＶＩＤ＿Ｎ）を生成してよい。一実施形態において、ＳＶＩＤ又はＶＩＤ＿Ｎはデジタル値（９ビット値）を表してよく、これに基づき電圧レギュレータ１９５は参照電圧ＶＲ（＝ＶＲ＿ｎｏｒｍａｌ）を生成してよい。ブロック９７０で、ＰＭＵ１６８は、ＳＶＩＤ（又はＶＩＤ＿Ｎ）を電圧レギュレータ１９５へ供給してよい。
【００４９】
ブロック９７５で、電圧レギュレータ１９５は、ＳＶＩＤ値に基づきＶＲをＶＲ＿ｒｅｄｕｃｅｄから通常の参照電圧（ＶＲ＿ｎｏｒｍａｌ）へ変化させてよい。一実施形態において、ＶＲは、０．９６ボルトのＶＲ＿ｒｅｄｕｃｅｄ値から１ボルトのＶＲ＿ｎｏｒｍａｌ値へ高められる。
【００５０】
ブロック９８０で、ＶＲ＿ｒｅｄｕｃｅｄからＶＲ＿ｎｏｒｍａｌへのＶＲの変化の結果として、供給ピン１９４で供給される電圧ＶＰはＶＰ＿ｉｄｌｅへ変化してよい。一実施形態において、ＶＰは、０．９６ボルトから１ボルトへのＶＲの変化に応答して、上述されたように、ＶＲ＿ｒｅｄｕｃｅｄ（０．９３２ボルト）から０．９７２ボルトへ高められてよい。
【００５１】
ブロック９９０で、負荷抵抗ＲＬ１９２を流れる電流は、ＶＰ＿ｒｅｄｕｃｅｄからＶＰ＿ｉｄｌｅへ（０．９３２ボルトから０．９７２ボルトへ）のＶＰの変化に応答してＩＣＣ＿ｉｄｌｅ（２０アンペア）からＩＣＣ＿ｐｅａｋ（５０アンペア）へ変化してよく、ＩＣＣ＿ｐｅａｋへの電流ＩＣＣ＿ｉｄｌｅの変化に応答して、電圧ＶＰ（＝０．９３ボルト）がアンコアエリア１５０の供給ピン１９４で供給されてよい。
【００５２】
上記の電力管理技術の有無による通常条件及び遊休条件下での電圧レギュレータ１９５の動作の実施形態は、図１０（Ａ）、１０（Ｂ）及び１０（Ｃ）において表されている。図１０（Ａ）において、アンコアエリア１５０がピークで動作している間、参照電圧ＶＲはＶＲ＿ｎｏｒｍａｌに等しく、ＩＣＣ１９３はＩＣＣ＿ｐｅａｋに等しく、ピン電圧ＶＰはＶＰ＿ｉｄｌｅに等しい。一実施形態において、ＶＰ＿ｉｄｌｅは｛［ＶＲ＿ｎｏｒｍａｌ−ＩＣＣ＿ｐｅａｋ×ＲＬ１９２］｝に等しい。
【００５３】
例えば、ＶＲ＿ｎｏｒｍａｌ＝１ボルト、ＩＣＣ＿ｐｅａｋ＝５０アンペア、及びＲＬ１９２＝１．４ミリオームの場合に、ＶＰ＿ｉｄｌｅ＝１−（５０×１．５）＝０．９３ボルト。プロセッサ１００がその部品について指定される周波数Ｆ（例えば、＝２．５３ＧＨｚ）で動作すべき場合に、電圧の最小値（＝０．９３ボルト）がＶＰ＿ｉｄｌｅとして供給されるべきである。
【００５４】
しかし、コアエリア１０５がパッケージＣステートにある場合、図１０（Ｂ）に示されるように、負荷抵抗ＲＬ１９２を流れる電流ＩＣＣ１９３はＩＣＣ＿ｉｄｌｅ（例えば、＝２０アンペア）へ変化してよく、その場合にＶＰ＿ｉｄｌｅは［ＶＲ＿ｎｏｒｍａｌ−（ＩＣＣ＿ｉｄｌｅ×ＲＬ１９２）］に等しい。すなわち、ＶＰ＿ｉｄｌｅ＝１−（２０×１．４）＝０．９７２ボルト。なお、０．９３ボルトのＶＰ＿ｉｄｌｅは、部品について指定される周波数Ｆでプロセッサ１００を動作させるのに十分であり、（ＶＰ＿ｉｄｌｅ−電圧の最小値＝０．９７２−０．９３＝０．０４２ボルト）の余分の電圧がアンコアエリア１５０へ供給される。余分の電圧は、必要とされるよりも多い電圧の過剰消費をもたらしうる。結果として、電力消費Ｐ＿ｎｏｒｍａｌ＝動的電力＋漏れ電力＝Ｐ＿ｎｏｒｍａｌ＝Ｃｄｙｎ×Ｖ２×ｆ＋ｆ（Ｖ４）＝５ｎｆ×（０．９７２×０．９７２）×２．５３ＧＨｚ＋５ワット＝（１１．９５＋５）＝１６．９５ワット。
【００５５】
ＶＰを下げるよう、ＶＲは、図１０（Ｃ）に示されるように、ＶＲ＿ｎｏｒｍａｌからＶＲ＿ｒｅｄｕｃｅｄへ低減されるべきである。ＶＲ＿ｕｎｃｏｒｅを下げるよう、ＰＭＵ１６８はＦＶＩＤ（ブロック９１５で記載）を生成し、このＦＶＩＤを電圧レギュレータ１９５へ供給してよい。ＦＶＩＤを受け取ったことに応答して、電圧レギュレータ１９５は、ＶＲをＶＲ＿ｒｅｄｕｃｅｄ（例えば、＝０．９６Ｖ）へ下げてよい。ＶＲ＿ｎｏｒｍａｌからＶＲ＿ｒｅｄｕｃｅｄへのＶＲの変化の結果として、ＶＰ＿ｉｄｌｅはＶＰ＿ｒｅｄｕｃｅｄ（＝０．９６−（２０×１．４）＝０．９６−０．０２８＝０．９３２ボルト）になる。結果として、電力消費Ｐ＿ｒｅｄｕｃｅｄ＝Ｃｄｙｎ×Ｖ２×ｆ＋ｆ（Ｖ４）＝５ｎｆ×（０．９３２×０．９３２）×２．５３ＧＨｚ＋４ワット＝（１０．９８８＋４）＝１４．９８８ワット。従って、節約される電力＝Ｐ＿ｎｏｒｍａｌ−Ｐ＿ｒｅｄｕｃｅｄ＝１６．９５−１４．９８８＝１．９６ワット。
【００５６】
コアエリア１０５がディープパワーセービング状態（パッケージＣステート）に入ることに応答したアンコアエリア１５０への影響を表すグラフ１１００、１１４０及び１１６０が夫々図１１（ａ）、１１（ｂ）及び１１（ｃ）において表されている。一実施形態において、図１１（ａ）のグラフは、時間を表すＸ軸１１０１と、電流（ＩＣＣ１９３）を表すＹ軸とを含む。一実施形態において、ＩＣＣ１９３は、エントリ点１１０５の前の範囲によって示されるように、コアエリア１０５がパッケージＣステートに入る前はＩＣＣ＿ｐｅａｋ１１０６（例えば、＝５０アンペア）に等しい。エントリ点１１０５で、コアエリア１０５はパッケージＣステートに入り始め、点１１０５でのエントリ事象に応答して、電流ＩＣＣ１９３はＩＣＣ＿ｐｅａｋから点１１０８でのＩＣＣ＿ｉｄｌｅ（＝２０アンペア）へと変化し、ＩＣＣ＿ｉｄｌｅレベルはＩＣＣ＿ｉｄｌｅ１１０７によって示される。一実施形態において、終了点１１０９で、ＩＣＣ１９３はＩＣＣ＿ｉｄｌｅ１１０７からＩＣＣ＿ｐｅａｋ１１０６へ変化し、コアエリア１０５の終了事象は時点１１１０で完了してよい。一実施形態において、点１１０８と点１１０５との間の時間差はエントリレイテンシーに相当し、点１１０９と点１１１０との間の時間差は終了レイテンシーに相当する。
【００５７】
図１１（ｂ）は、ＩＣＣ＿ｐｅａｋ１１０６からＩＣＣ＿ｉｄｌｅ１１０７への及びＩＣＣ＿ｉｄｌｅ１１０７からＩＣＣ＿ｐｅａｋ１１０６へ戻る電流の変化に応答する参照電圧ＶＲ及びピン電圧ＶＰの変化を表す。一実施形態において、図１１（ｂ）のグラフは、時間を表すＸ軸１１１１と、電圧（ＶＲ及びＶＰ）を表すＹ軸１１１２とを含む。エントリ点１１０５の前に、電圧参照ＶＲ及びＶＰは夫々ＶＲ＿ｎｏｒｍａｌ１１１３及びＶＰ＿ｉｄｌｅ（すなわち、ＶＰ＿ｎｏｒｍａｌ１１１５）に等しい。終了点１１０９の後で、電圧参照ＶＲ及びＶＰは夫々ＶＲ＿ｎｏｒｍａｌ１１１３及びＶＰ＿ｉｄｌｅ１１１５に等しい。点１１０５でのエントリ事象の発生に応答して、電圧レギュレータ１９５はＦＶＩＤ（又はＶＩＤ＿Ｒ）を受け取り、参照電圧ＶＲはＶＲ＿ｎｏｒｍａｌ１１１３（例えば、＝１ボルト）からＶＲ＿ｒｅｄｕｃｅｄ１１１４（例えば、＝０．９６ボルト）へ変化する。ＶＲ＿ｎｏｒｍａｌ１１１３からＶＲ＿ｒｅｄｕｃｅｄ１１１４への参照電圧ＶＲの変化に応答して、供給ピン１９４でのピン電圧ＶＰは、ＶＰ＿ｉｄｌｅ１１１５（例えば、＝０．９７２ボルト）からＶＰ＿ｒｅｄｕｃｅｄ１１１６（例えば、＝０．９３２ボルト）へ低下する。一実施形態において、参照電圧ＶＲ及びピン電圧ＶＰは夫々、時点１１０８と１１０９との間でＶＲ＿ｒｅｄｕｃｅｄ１１１４及びＶＰ＿ｒｅｄｕｃｅｄ１１１６のままであってよい。なお、時点１１０８と１１０９との間は、コアエリア１０５がディープパワーセービング状態を保つ時間存続期間に相当する。
【００５８】
図１１（ｃ）は、ＶＰ＿ｉｄｌｅ１１１５からＶＰ＿ｒｅｄｕｃｅｄ１１１６へのピン電圧ＶＰの変化に応答して消費される電力の変化を表す。一実施形態において、図１１（ｃ）のグラフは、時間を表すＸ軸１１２１と、消費される電力を表すＹ軸１１２２とを含む。エントリ点１１０５の前に、Ｐｏｗｅｒ  Ｃｏｍｓｕｍｅｄ＿ｉｄｌｅはＮｏｒｍａｌ  Ｐｏｗｅｒ  Ｃｏｎｓｕｍｅｄ１１２３（例えば、＝１６．９５ワット）に等しい。終了点１１０９の後で、Ｐｏｗｅｒ  Ｃｏｍｓｕｍｅｄ＿ｉｄｌｅは再び前のレベルＮｏｒｍａｌ  Ｐｏｗｅｒ  Ｃｏｎｓｕｍｅｄ１１２３に達してよい。一実施形態において、コアエリア１０５がパッケージＣステートに入ることに応答して、アンコアエリア１５０によって消費される電力は、Ｒｅｄｕｃｅｄ  Ｐｏｗｅｒ  Ｃｏｎｓｕｍｅｄ１１２４（例えば、＝１４．９８８ワット）へ下がる。一実施形態において、ピン電圧ＶＰがＶＰ＿ｉｄｌｅ１１１５からＶＰ＿ｒｅｄｕｃｅｄ１１１６へ下がると、アンコアエリア１５０によって消費される電力は同様に下がり、アンコアエリア１５０によって消費される電力は、供給ピン１９４で供給されるピン電圧ＶＰの二乗に比例してよい。一実施形態において、節約される電力の量は（Ｐｏｗｅｒ  Ｃｏｍｓｕｍｅｄ＿ｉｄｌｅ−Ｒｅｄｕｃｅｄ  Ｐｏｗｅｒ  Ｃｏｎｓｕｍｅｄ）＝（１６．９５−１４．９８８）＝１．９６ワットに等しい。
【００５９】
図１２を参照して、コンピュータシステム１２００は、単一命令多重データ（ＳＩＭＤ；Signal  Instruction  Multiple  Data）プロセッサを含む汎用プロセッサ１２０２と、グラフィクスプロセッサユニット（ＧＰＵ）１２０５とを有してよい。プロセッサ１２０２は、一実施形態において、様々な他のタスクを実行することに加えてエンハンスメント動作を実行し、あるいは、エンハンスメント動作を提供する命令のシーケンスを機械読取可能な記憶媒体１２２５に記憶してよい。しかし、命令のシーケンスはまた、メモリ１１２０において又は他の何らかの適切な記憶媒体において記憶されてよい。
【００６０】
別個のグラフィクスプロセッサユニット１２０５が図１２において表されているが、幾つかの実施形態では、グラフィクスプロセッサユニット１２０５は他の例としてエンハンスメント動作を実行するために使用されてよい。コンピュータシステム１２００を動作させるプロセッサ１２０２は、ロジック１２３０へ結合される１又はそれ以上のプロセッサコアであってよい。ロジック１２３０は、コンピュータシステム１２００にインターフェースを提供する１又はそれ以上のＩ／Ｏデバイス１２６０へ結合されてよい。ロジック１２３０は、例えば、一実施形態ではチップセットロジックであってよい。ロジック１２３０はメモリ１２２０へ結合される。メモリ１２２０は、光、磁気、又は半導体記憶装置を含む如何なるタイプの記憶装置であってもよい。グラフィクスプロセッサユニット１２０５は、フレームバッファを介してディスプレイ１２４０へ結合される。
【００６１】
一実施形態において、プロセッサ１２０２は、コアエリア１２０３及びアンコアエリア１２０４を含んでよい。一実施形態において、プロセッサ１２０２のコアエリア１２０３によって消費される電力は、プロセッサ１２０２のＣｄｙｎを制御することによって制御されてよい。一実施形態において、Ｃｄｙｎは、Ｃｄｙｎがコアエリア１２０３によって処理されているアプリケーションに無関係に許容Ｃｄｙｎ値の範囲内にあるように、制御されてよい。一実施形態において、電力管理技術は、デジタル活動度（ＤＡＦ；Digital  Activity  Factor）を測定すること、アーキテクチャ及びデータ活動レベルをモニタすること、及び前記活動レベルに基づき命令を絞ることによって電力消費を制御することを含んでよい。活動レベル（すなわち、Ｃｄｙｎ＿ａｃｔｕａｌ）に基づき命令を絞る結果として、絞りは、サードドループ（１マイクロ秒）及びサーマル設計点（ＴＤＰ）（１ミリ秒）のような異なる時間領域において実施されてよい。これは、ロングターム（すなわち、ＴＤＰ）及びショートターム（すなわち、サードドループ）動作がプロセッサのコアエリアにおける電力消費を制御することを可能にする。一実施形態において、そのようなアプローチは、きめの細かい電力管理技術と、コードが処理されることに反応しうるブーストモードと比較して、コードが処理されている間にコードを制御するブーストモードを生成する能力とを提供してよい。
【００６２】
一実施形態において、アンコアエリア１２０４によって消費される遊休電力（すなわち、コアエリアがパッケージＣステートのようなディープパワーセービング状態にある間にアンコアエリアによって消費される電力）は、アンコアエリア１２０４へ供給される電圧（すなわち、参照電圧ＶＲ）を変化させることによって低減されてよい。一実施形態において、電圧レギュレータ１２０６の出力は、負荷抵抗を介してアンコアエリア１２０４の供給ピンへ結合されてよい。参照電圧及び従ってアンコアエリア１２０４の供給ピンでのピン電圧（ＶＰ）は、コアエリア１２０３がディープパッケージＣステートにある間、低減されてよい。一実施形態において、参照電圧ＶＲは、ＶＰ＿ｉｄｌｅがＶＰｍｉｎ（すなわち、ＶＰ＿ｐｅａｋ）よりも僅かに高い値へ低下するように、低減されてよい。結果として、参照電圧ＶＲは、アンコアエリア１２０４によって消費される遊休電力を節約又は低減するよう変更され得る。
【００６３】
本発明の特定の特徴が、例となる実施形態を参照して記載されてきた。しかし、記載は、限定の意味において解釈されるべきではない。例となる実施形態の様々な変形、更には、当業者に明らかである本発明の他の実施形態は、本発明の技術的範囲内にあると見なされる。
【図１】
0005985708.tif 000002
【図２】
0005985708.tif 000003
【図３】
0005985708.tif 000004
【図４】
0005985708.tif 000005
【図５】
0005985708.tif 000006
【図６】
0005985708.tif 000007
【図７】
0005985708.tif 000008
【図８】
0005985708.tif 000009
【図９】
0005985708.tif 000010
【図１０】
0005985708.tif 000011
【図１１】
0005985708.tif 000012
【図１２】
0005985708.tif 000013