(57)【要約】  一実施形態では、プロセッサは、動作を実行する複数の処理要素と、前記複数の処理要素に結合され、前記複数の処理要素の電力消費を制御する電力管理エージェント（ＰＭＡ）と、前記ＰＭＡに結合されるスロットル回路と、を含む。前記スロットル回路は、前記ＰＭＡから通信された変換情報に少なくとも部分的に基づき、前記複数の処理要素のスロットル電力レベルを決定する。他の実施形態が記載され請求される。
2021520537.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサであって、
動作を実行する複数の処理要素と、
前記複数の処理要素に結合され、前記複数の処理要素の電力消費を制御する電力管理エージェント（ＰＭＡ）と、
前記ＰＭＡに結合されるスロットル回路であって、前記スロットル回路は、それぞれが前記複数の処理要素のうちの１つに関連付けられる複数のスロットルエージェントを含み、前記ＰＭＡは前記スロットル回路に変換情報を通信し、前記複数のスロットルエージェントの各々は、前記変換情報に少なくとも部分的に基づき、前記複数の処理要素のうちの関連付けられた１つのスロットル電力レベルを決定する、スロットル回路と、
を含むプロセッサ。
【請求項２】
前記変換情報は、比情報を含み、前記ＰＭＡは、使用モニタから受信したヒント情報に少なくとも部分的に基づき、前記変換情報を決定し、前記ヒント情報は、前記複数の処理要素の相対優先度を示す、請求項１に記載のプロセッサ。
【請求項３】
前記変換情報は、ポインタ情報を含み、前記複数のスロットルエージェントのうちの第１スロットルエージェントは、前記ポインタ情報の第１ポインタにより、ルックアップテーブルにアクセスして、第１処理要素の第１スロットル電力レベルを決定する、請求項１に記載のプロセッサ。
【請求項４】
前記第１スロットルエージェントは、前記第１スロットル電力レベルに基づき、前記第１処理要素の第１動作点を決定し、動作点更新を前記第１処理要素へ送信して、前記第１処理要素に前記第１動作点で動作させる、請求項３に記載のプロセッサ。
【請求項５】
前記第１動作点は、最小動作点より大きい、請求項４に記載のプロセッサ。
【請求項６】
前記電力目標エージェントは、バッテリの充電能力の変化に少なくとも部分的に基づき、前記プロセッサのパッケージスロットル電力レベルを設定する、請求項１に記載のプロセッサ。
【請求項７】
プラットフォームモニタは、プラットフォームイベントに応答して、前記スロットル回路にスロットル信号を通信し、前記プラットフォームイベントは、プラットフォームのバッテリ動作への切り替えを含み、前記電力目標エージェントは、前記パッケージスロットル電力レベルを前記スロットル回路へ更に通信する、請求項６に記載のプロセッサ。
【請求項８】
前記パッケージスロットル電力レベルは、前記プロセッサの熱設計電力より小さく、前記スロットル回路は、前記複数の処理要素のうちの少なくとも幾つかに、最小動作点より大きい動作点で動作させる、請求項６に記載のプロセッサ。
【請求項９】
方法であって、
複数の処理回路を含むシステムオンチップ（ＳｏＣ）の電力制御部で、プラットフォームイベントに応答して、ヒント情報に少なくとも部分的に基づき、前記ＳｏＣのスロットル電力閾値の変換情報を決定するステップと、
前記複数のスロットルエージェントに、前記変換情報に少なくとも部分的に基づき、前記複数の処理回路のうちの少なくとも１つの動作点を、最小動作点より大きいスロットルレベルに更新させるために、前記ＳｏＣの複数のスロットルエージェントへ前記変換情報を送信するステップであって、前記複数のスロットルエージェントの各々は、前記複数の処理回路のうちの少なくとも１つに関連付けられる、ステップと、
を含む方法。
【請求項１０】
使用モニタから前記ヒント情報を受信するステップであって、前記ヒント情報は、前記複数の処理回路に関する優先度情報を含む、ステップ、を更に含む請求項９に記載の方法。
【請求項１１】
前記複数のスロットル回路で、変換情報を受信するステップと、
前記複数のスロットルエージェントのうちの第１スロットルエージェントにより、前記複数の処理回路のうちの第１処理回路に、前記変換情報のうちの第１変換要素に基づき、第１動作点で動作させるステップと、
前記複数のスロットルエージェントのうちの第２スロットルエージェントにより、前記複数の処理回路のうちの第２処理回路に、前記変換情報のうちの第２変換要素に基づき、第２動作点で動作させるステップであって、前記第２動作点は前記第１動作点より大きく、前記第２処理回路は前記ヒント情報に従い前記第１処理回路より高い優先度を有する、ステップと、
を更に含む請求項９に記載の方法。
【請求項１２】
前記変換情報を決定するステップは、前記ヒント情報に少なくとも部分的に基づき、それぞれが前記複数の処理回路のうちの１つに関連付けられる複数の係数を生成するステップを含む、請求項９に記載の方法。
【請求項１３】
前記複数のスロットルエージェントのうちの第１スロットルエージェントで、前記複数の係数のうちの第１係数及び前記ＳｏＣのスロットル電力限界に基づき、前記複数の処理回路のうちの第１処理回路の第１スロットル電力レベルを計算するステップと、
前記第１処理回路に、前記第１スロットル電力レベルに基づき、第１動作点で動作させるステップであって、前記第１動作点は前記最小動作点より大きい、ステップと、
を更に含む請求項１２に記載の方法。
【請求項１４】
前記第１処理回路に、中間動作点で動作させるステップであって、前記中間動作点は、前記第１処理回路が動作していた前の動作点より低く、前記第１動作点より高い、ステップと、
前記第１処理回路に、前記第１処理回路のハードウェア限界に達した後に、前記第１動作点で動作させる、ステップと、
を更に含む請求項１３に記載の方法。
【請求項１５】
前記変換情報を決定するステップは、前記ヒント情報に少なくとも部分的に基づき、それぞれが前記複数の処理回路のうちの１つに関連付けられる複数のポインタを生成するステップを含む、請求項９に記載の方法。
【請求項１６】
前記複数のスロットルエージェントのうちの第１スロットルエージェントにより、前記複数のポインタのうちの第１ポインタを用いて、テーブルにアクセスして、前記複数の処理回路のうちの第１処理回路の第１スロットル電力レベルを取得するステップと、
前記第１処理回路に、前記第１スロットル電力レベルに基づき、第１動作点で動作させるステップであって、前記第１動作点は前記最小動作点より大きい、ステップと、
を更に含む請求項１５に記載の方法。
【請求項１７】
装置に請求項９乃至１６のいずれか一項に記載の方法を実施させるコンピュータプログラム。
【請求項１８】
請求項１７に記載のコンピュータプログラムを記憶した機械可読記憶媒体。
【請求項１９】
システムであって、
前記システムに電力を供給する第１電源と、
前記システムに電力を供給する第２電源であって、前記第２電源はバッテリを含む、第２電源と、
前記第２電源を充電する充電回路と、
プロセッサに結合される電力管理集積回路であって、前記電力管理集積回路は、前記第１電源から前記第２電源への電力切り替えに応答して、スロットル信号を前記プロセッサへ送信し、前記第２電源及び前記充電回路のうちの少なくとも１つは、前記プロセッサに前記バッテリの充電能力を通信する、電力管理集積回路と、
を含み、前記プロセッサは、
第１命令を実行する少なくとも１つのコアと、
第２命令を実行する少なくとも１つのグラフィックプロセッサと、
前記少なくとも１つのコア及び前記少なくとも１つのグラフィックプロセッサに結合され、前記プロセッサの電力量に従い、前記少なくとも１つのコア及び前記少なくとも１つのグラフィックプロセッサの電力消費を制御する電力制御部であって、電力目標エージェントは、前記充電能力に少なくとも部分的に基づき、前記プロセッサのスロットル電力量を先取り的に決定し、前記電力制御部は、前記少なくとも１つのコア及び前記少なくとも１つのグラフィックプロセッサの優先度に基づき、変換情報を先取り的に決定する、電力制御部と、
前記電力制御部に結合されるスロットル回路であって、前記スロットル回路は、前記変換情報及び前記スロットル電力量に少なくとも部分的に基づき、前記少なくとも１つのコアの第１スロットル電力量及び前記少なくとも１つのグラフィックプロセッサの第２スロットル電力量を先取り的に決定し、前記スロットル信号に応答して、前記少なくとも１つのコアに前記第１スロットル電力量に基づき第１動作点で動作させ、前記少なくとも１つのグラフィックプロセッサに、前記第２スロットル電力量に基づき第２動作点で動作させる、スロットル回路と、
を含む、システム。
【請求項２０】
前記変換情報は、比情報を含み、前記電力制御部は、使用モニタから受信したヒント情報に少なくとも部分的に基づき、前記変換情報を決定し、前記ヒント情報は、前記少なくとも１つのコア及び前記少なくとも１つのグラフィックプロセッサの相対優先度を示す、請求項１９に記載のシステム。
【請求項２１】
前記変換情報は、ポインタ情報を含み、前記スロットル回路は、前記ポインタ情報のうちの第１ポインタによりルックアップテーブルにアクセスして、前記少なくとも１つのコアの前記第１スロットル電力量を決定し、前記ポインタ情報のうちの第２ポインタにより前記ルックアップテーブルにアクセスして、前記少なくとも１つのグラフィックプロセッサの前記第２スロットル電力量を決定する、請求項１９に記載のシステム。
【請求項２２】
前記電力制御部は、前記少なくとも１つのコアに、中間動作点で動作させ、前記中間動作点は、前記少なくとも１つのコアが動作していた前の動作点より低く、前記第１動作点より高く、前記第１動作点は、最小動作点より大きく、
前記少なくとも１つのコアに、前記少なくとも１つのコアのハードウェア限界に達した後に、前記第１動作点で動作させる、
請求項１９に記載のシステム。
【請求項２３】
プロセッサであって、
動作を実行する複数の処理手段と、
前記複数の処理手段に結合され、前記複数の処理手段の電力消費を制御する電力管理エージェント（ＰＭＡ）と、
前記ＰＭＡに結合されるスロットル手段であって、前記スロットル手段は、それぞれが前記複数の処理手段のうちの１つに関連付けられる複数のスロットルエージェントを含み、前記ＰＭＡは前記スロットル手段に変換情報を通信し、前記複数のスロットルエージェントの各々は、前記変換情報に少なくとも部分的に基づき、前記複数の処理手段のうちの関連付けられた１つのスロットル電力レベルを決定する、スロットル手段と、
を含むプロセッサ。
【請求項２４】
前記変換情報は、比情報を含み、前記ＰＭＡは、使用モニタから受信したヒント情報に少なくとも部分的に基づき、前記変換情報を決定し、前記ヒント情報は、前記複数の処理手段の相対優先度を示す、請求項２３に記載のプロセッサ。
【請求項２５】
前記変換情報は、ポインタ情報を含み、前記複数のスロットルエージェントのうちの第１スロットルエージェントは、前記ポインタ情報の第１ポインタにより、ルックアップテーブルにアクセスして、第１処理手段の第１スロットル電力レベルを決定する、請求項２２に記載のプロセッサ。
【請求項２６】
前記第１スロットルエージェントは、前記第１スロットル電力レベルに基づき、前記第１処理手段の第１動作点を決定し、動作点更新を前記第１処理手段へ送信して、前記第１処理手段に前記第１動作点で動作させる、請求項２５に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、システムの電力管理に関し、特にマルチコアプロセッサの電力管理に関する。
【背景技術】
【０００２】
半導体プロセス及びロジック設計における進歩は、集積回路素子に存在し得るロジックの量の増大を可能にした。結果として、コンピュータシステム構成は、システム内の単一又は複数の集積回路から、個々の集積回路上の複数のハードウェアスレッド、複数のコア、複数の素子、及び／又は完全なシステムへと進化した。さらに、集積回路の密度が増大するにつれ、コンピューティングシステム（内蔵システムからサーバまで）の電力要件も次第に増大した。さらに、ソフトウェア非能率、そのハードウェア要件も、コンピューティング素子エネルギ消費を増大させた。実際に、幾つかの研究は、米国のような国では、コンピューティング装置が全体の電気供給のかなりの割合を消費すると示した。結果として、集積回路に関連するエネルギ効率及び管理に対する不可欠な必要性がある。これらの必要性は、サーバ、デスクトップコンピュータ、ノートブック、Ｕｌｔｒａｂｏｏｋ（商標）、タブレット、携帯電話機、プロセッサ、埋め込み型システム、等が更に広まるにつれ（標準的なコンピュータ、自動車、及びテレビへの包含から、バイオ技術まで）、増大するだろう。
【図面の簡単な説明】
【０００３】
【図１】本発明の一実施形態によるシステムの一部のブロック図である。
【０００４】
【図２】本発明の一実施形態によるプロセッサのブロック図である。
【０００５】
【図３】本発明の別の実施形態によるマルチドメインプロセッサのブロック図である。
【０００６】
【図４】複数のコアを含むプロセッサの一実施形態である。
【０００７】
【図５】本発明の一実施形態によるプロセッサコアのマイクロアーキテクチャのブロック図である。
【０００８】
【図６】別の実施形態によるプロセッサコアのマイクロアーキテクチャのブロック図である。
【０００９】
【図７】更に別の実施形態によるプロセッサコアのマイクロアーキテクチャのブロック図である。
【００１０】
【図８】また更に別の実施形態によるプロセッサコアのマイクロアーキテクチャのブロック図である。
【００１１】
【図９】本発明の別の実施形態によるプロセッサのブロック図である。
【００１２】
【図１０】本発明の一実施形態による代表的なＳｏＣのブロック図である。
【００１３】
【図１１】本発明の一実施形態による別の例示的なＳｏＣのブロック図である。
【００１４】
【図１２】本発明の一実施形態による例示的なシステムのブロック図である。
【００１５】
【図１３】実施形態が実施され得る別の例示的なシステムのブロック図である。
【００１６】
【図１４】代表的なコンピュータシステムのブロック図である。
【００１７】
【図１５】本発明の一実施形態によるシステムのブロック図である。
【００１８】
【図１６】一実施形態によるシステムのブロック図である。
【００１９】
【図１７】本発明の一実施形態による方法のフロー図である。
【００２０】
【図１８】本発明の別の実施形態による方法のフロー図である。
【００２１】
【図１９】本発明の別の実施形態による方法のフロー図である。
【００２２】
【図２０】本発明の別の実施形態による方法のフロー図である。
【発明を実施するための形態】
【００２３】
種々の実施形態では、マルチコアプロセッサ又は他のシステムオンチップ（ＳｏＣ）のようなプロセッサは、プラットフォームイベントに応答して、プロセッサの１つ以上の処理要素のスロットル（throttling）を最適な方法で実行するよう構成されてよい。つまり、プロセッサ内の全部の動作を直ちに最小動作点までスロットル（落とす）のではなく、プロセッサ性能は、プラットフォームイベントの観点で電気的障害から保護する保護メカニズムを犠牲にすることなく、スロットル条件において最適化されてよい。より詳細には、ここで説明されるように、第１エージェント、つまりプラットフォーム目標エージェントは、プロセッサ全体の最適スロットル電力目標を先取り的に（proactively）決定してよい。一方、ここでは電力管理エージェントと呼ばれる別のエージェントは、ユーザ活動、優先度情報、等に少なくとも部分的に基づき、各処理要素の最適スロットル目標を先取り的に決定してよい。次に、また、ここではスロットルエージェントと呼ばれる追加エージェントは、これらの最適化された処理要素のスロットル目標、及び全体の最適スロットル電力目標に少なくとも部分的に基づき、処理要素の動作点を動的に制御してよい。このような動的に制御される動作点は最適化されてよい。その結果、プロセッサは、直ちに最小動作点にまで縮退する必要がない。
【００２４】
ここに記載される実施形態によると、プロセッサのために適切なスロットル動作が維持されてよく、同時に、性能機能を維持できる。つまり、ここに記載のように最適化されるスロットルレベルは、標準的な付加が依然として適切な性能レベルで動作し得るレベルに設定されてよい。しかしながら、ウイルス負荷レベルのような最悪の条件では、完全なスロットルメカニズムは、全ての処理要素に最小動作点で動作させるよう実装されてよいことが理解される。
【００２５】
実施形態では、このような最適化されたスロットル動作は、入力電力能力に基づき生じてよい。つまり、バッテリ電源のような所与の電源が十分に充電されているとき、バッテリ電源は、最小動作点より大きなスロットルレベルで動作するための十分な電力を供給できるので、スロットル動作は、最小動作点に制限される必要がない。
【００２６】
反対に、従来のプラットフォームは、プラットフォームイベントに応答して、標準的には、強制的にプロセッサに最低動作点（例えば、最低周波数及び／又は電圧モード）で動作させる。これは、性能に望ましくない影響を及ぼし得る。代わりに、実施形態では、入力電力能力（例えば、充電容量）の先験的な知識に少なくとも部分的に基づき、プラットフォームイベントに応答するプロセッサスロットルは、最低動作点より高いレベルにあってよく、それにより不要な性能上の不利益を回避する。
【００２７】
プラットフォームが、起こり得る機能障害があることを検出すると、プラットフォームは、該機能障害を回避するために、プロセッサ電力を素早くスロットルする高速信号を生成する。この状況では、実施形態によるプロセッサは、スロットルされると、（機能障害を回避するための）保護メカニズムを犠牲にすることなく、性能を最適化するよう構成されてよい。この目的のために、プロセッサメカニズムは、プロセッサの最適スロットル電力目標を先取り的に設定し、ユーザ活動に少なくとも部分的に基づき各処理要素の最適動作点を先取り的に設定するよう提供される。これらの先取り的設定が生成された後に、スロットル信号が受信されると（つまり、起こり得る機能障害の検出に応答して）、処理要素は、それぞれの処理要素のスロットル電力目標より高くない点で動作するよう低遅延で制御されてよい。
【００２８】
以下の実施形態は、コンピューティングプラットフォーム又はプロセッサのような特定の集積回路を参照して説明されるが、他の実施形態が他の種類の集積回路及び論理素子に適用可能である。ここに記載の実施形態と同様の技術及び教示は、良好なエネルギ効率及びエネルギ保存から利益を得る他の種類の回路又は半導体素子に適用されてよい。例えば、開示の実施形態は、任意の特定の種類のコンピュータシステムに限定されない。つまり、開示の実施形態は、サーバコンピュータ（例えば、タワー、ラック、ブレード、マイクロサーバ、等）、通信システム、記憶システム、任意の構成のデスクトップコンピュータ、ラップトップ、ノートブック、及びタブレットコンピュータ（２：１タブレット、ファブレット（phablet）、等を含む）に及ぶ多くの異なるシステム種類で使用でき、ハンドヘルド装置、システムオンチップ（ＳｏＣ）、内蔵アプリケーションのような他の装置内で使用されてよい。ハンドヘルド装置の幾つかの例は、スマートフォンのようなセルラフォン、インターネットプロトコル装置、デジタルカメラ、ＰＤＡ（personal  digital  assistant）、及びハンドヘルドＰＣを含む。内蔵アプリケーションは、標準的に、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークコンピュータ（ＮｅｔＰＣ）、セットトップボックス、ネットワークハブ、広域ネットワーク（ＷＡＮ）スイッチ、ウェアラブル装置、又は、以下に教示する機能及び動作を実行できる任意の他のシステムを含んでよい。さらに、実施形態は、移動電話機、スマートフォン、及びファブレットのような標準的な音声機能を有するモバイル端末、及び／又は、多くのウェアラブル、タブレット、ノートブック、デスクトップ、マイクロサーバ、サーバ等のような標準的な無線音声機能通信能力を有しない非モバイル端末に実装されてよい。さらに、ここに記載の機器、方法、及びシステムは物理的コンピューティング装置に限定されず、ソフトウェア最適化にも関連してよい。
【００２９】
図１を参照すると、本発明の一実施形態によるシステムの一部のブロック図が示される。図１に示すように、システム１００は、図示のようにマルチコアプロセッサであるプロセッサ１１０を含む種々のコンポーネントを含んでよい。プロセッサ１１０は、外部電圧レギュレータ１６０を介して電源１５０に結合されてよい。外部電圧レギュレータ１６０は、第１電圧変換を実行して、１次調整電圧をプロセッサ１１０に供給してよい。
【００３０】
図示のように、プロセッサ１１０は、複数のコア１２０ａ〜１２０ｎを含む単一ダイプロセッサであってよい。さらに、各コアは、集積電圧レギュレータ（integrated  voltage  regulator(IVR)）１２５ａ〜１２５ｎに関連付けられてよい。ＩＶＲは、１次調整電圧を受信し、ＩＶＲに関連付けられたプロセッサの１つ以上のエージェントに提供されるべき動作電圧を生成する。従って、ＩＶＲ実装は、電圧、したがって個々のコアの電力及び性能の微細制御を可能にするために提供されてよい。従って、各コアは、独立した電圧及び周波数で動作でき、大きな柔軟性を可能にし、電力消費と性能とのバランスをとるための広範な機会を与える。幾つかの実施形態では、複数のＩＶＲの使用は、コンポーネントを別個の電力プレーンにグループ化することを可能にする。その結果、電力はＩＶＲにより調整され、グループ内のコンポーネントにのみ供給される。電力管理の間、１つのＩＶＲの所与の電力プレーンは、プロセッサが特定の低電力状態に置かれると、電力を低下又はオフにされてよい。一方、別のＩＶＲの別の電力プレーンはアクティブなままであり、又は完全に電力を供給される。
【００３１】
更に図１を参照すると、入力／出力インタフェース１３２、別のインタフェース１３４、及び集積メモリ制御部１３６を含む追加コンポーネントが、プロセッサ内に存在してよい。図示のように、これらのコンポーネントの各々は、別の集積電圧レギュレータ１２５ｘにより電力を供給されてよい。一実施形態では、インタフェース１３２は、Intel（登録商標）  Quick  Path  Interconnect(QPI)相互接続の動作を可能にし得る。ＱＰＩ相互接続は、物理層、リンク層、及びプロトコル層を含む複数の層を含むキャッシュコヒーレントプロトコルにおけるポイントツーポイント（ＰｔＰ）リンクを提供する。また、インタフェース１３４は、ＰＣＩｅ（商標）（Peripheral  Component  Interconnect  Express）プロトコルを介して通信してよい。
【００３２】
プロセッサ１１０に関して電力管理動作を実行するハードウェア、ソフトウェア、及び／又はファームウェアを含み得る電力制御ユニット（power  control  unit(PCU)）１３８も図示される。図示のように、ＰＣＵ１３８は、デジタルインタフェースを介して外部電圧レギュレータ１６０に制御情報を提供して、電圧レギュレータに適切な調整電圧を生成させる。ＰＣＵ１３８は、また、別のデジタルインタフェースを介してＩＶＲ１２５に制御情報を提供して、生成された動作電圧を制御する（又は、対応するＩＶＲに、低電力モードでディスエーブルさせる）。種々の実施形態では、ＰＣＵ１３８は、ハードウェアに基づく電力管理を実行するために、種々の電力管理論理ユニットを含んでよい。このような電力管理は、（例えば、種々のプロセッサハードウェアにより）完全に制御された（及び負荷及び／又は電力、熱、又は他のプロセッサ制約によりトリガされてよい）プロセッサであってよい。及び／又は、電力管理は、外部ソース（例えば、プラットフォーム又は管理電力管理ソース又はシステムソフトウェア）に応答して実行されてよい。
【００３３】
ここで実施形態では、ＰＣＵ１３８は、複数の異なる動作点のうちの１つで動作するよう、プロセッサ１１０内のドメインを制御するよう構成されてよい。より詳細には、ＰＣＵ１３８は、異なるドメインの動作点を決定してよい。さらに、例えばＰＣＵ１３８の外部にある高速メカニズムは、プラットフォームイベントに応答してスロットル動作を実行することに関連してよい。従って、図１に更に示すように、スロットル回路１３９（幾つかの場合には、分散型ハードウェア回路であってよい）は、さらに、ＩＶＲ１２５（及び／又はコア１２０自体）と通信してよい。このように、スロットル回路１３９は、更に後述するように、ＰＣＵ１３８から受信した変換情報に少なくとも部分的に基づき、プロセッサスロットル電力レベルを、個々のドメイン（例えば、コア１２０等）の対応するスロットルレベルに変換する。
【００３４】
説明の簡易さのために図示しないが、アンコアロジックのような追加コンポーネント、及び内部メモリ、例えば１つ以上のレベルのキャッシュメモリ階層構造、等のような他のコンポーネントが、プロセッサ１１０内に存在してよいことが理解される。さらに、図１の実装は集積電圧レギュレータと共に示されるが、実施形態はそれに限定されない。
【００３５】
ここに記載のプロセッサは、オペレーティングシステム（ＯＳ）に基づく電力管理（OS−based  power  management(OSPM)）メカニズムと独立であり相補的であってよい電力管理技術を利用してよい。ある例示的なＯＳＰＭ技術によると、プロセッサは、種々の性能状態又はレベル、所謂Ｐ状態、つまりＰ０〜ＰＮで動作できる。通常、Ｐ１性能状態は、ＯＳにより要求され得る最も高い保証された性能状態に対応してよい。このＰ１状態に加えて、ＯＳは、高い性能状態、つまりＰ０状態を更に要求できる。このＰ０状態は、従って、電力及び／又は熱量が利用可能なとき、プロセッサハードウェアは、プロセッサ又はその少なくとも部分を、保証された周波数より高い周波数で動作するよう構成できる。多くの実装では、プロセッサは、ヒューズとして又は製造中にプロセッサに書き込まれるとき、Ｐ１保証最大周波数より上の、特定のプロセッサの最大ピーク周波数を超える、複数の所謂ビン周波数を含むことができる。さらに、１つのＯＳＰＭメカニズムによると、プロセッサは、種々の電力状態又はレベルで動作できる。電力状態に関して、ＯＳＰＭメカニズムは、一般にＣ状態、Ｃ０、Ｃ１、〜Ｃｎ状態と呼ばれる異なる電力消費状態を指定してよい。コアは、アクティブなときＣ０状態で実行し、コアは、アイドルのとき、非ゼロＣ状態（例えば、Ｃ１〜Ｃ６状態）とも呼ばれるコア低電力状態に置かれてよく、各Ｃ状態は低電力消費レベルである（従って、Ｃ６はＣ１より深い低電力状態である、等）。
【００３６】
多くの異なる種類の電力管理技術が、個々に又は異なる実施形態では結合されて使用されてよいことが理解される。代表的な例として、電力制御部は、特定の形式の動的電圧周波数スケーリング（dynamic  voltage  frequency  scaling(DVFS)）により電力管理されるようプロセッサを制御してよい。ＤＶＦＳでは、１つ以上のコア又は他のプロセッサロジックの動作電圧及び／又は動作周波数は、特定の状況において電力消費を低減するよう動的に制御されてよい。一例では、ＤＶＦＳは、Ｓａｎｔａ  Ｃｌａｒａ、  ＣＡにあるＩｎｔｅｌ社から入手可能なEnhanced  Intel  SpeedStep（商標）技術を用いて実行されて、最低電力消費レベルで最適性能を提供してよい。別の例では、ＤＶＦＳは、Intel  TurboBoost（商標）技術を用いて実行されて、１つ以上のコア又は他の計算エンジンに、条件（例えば、負荷及び可用性）に基づき、保証された動作周波数より高い周波数で動作させてよい。
【００３７】
特定の例で使用され得る別の電力管理技術は、異なる計算エンジンの間の負荷の動的スワッピングである。例えば、プロセッサは、異なる電力消費レベルで動作する非対称コア又は他の処理エンジンを含んでよい。従って、電力の制約された状況では、より低い電力のコア又は他の計算エンジンで実行するよう、１つ以上の負荷が動的に切り替え可能である。別の例示的な電力管理技術は、ハードウェアデューティサイクル（hardware  duty  cycling(HDC)）である。ＨＤＣは、コア及び／又は他の計算エンジンを、デューティサイクルに従い周期的にイネーブル及びディスエーブルにし、その結果、１つ以上のコアは、デューティサイクルの非アクティブ期間の間に非アクティブになり、デューティサイクルのアクティブ期間の間にアクティブになってよい。
【００３８】
実施形態は、サーバプロセッサ、デスクトッププロセッサ、モバイルプロセッサ、等を含む種々の市場のプロセッサに実装できる。図２を参照すると、本発明の一実施形態によるプロセッサのブロック図が示される。図２に示すように、プロセッサ２００は、複数のコア２１０ａ〜２１０ｎを含むマルチコアプロセッサであってよい。一実施形態では、各々のこのようなコアは、独立した電力ドメインのものであってよく、負荷に基づきアクティブ状態及び／又は最大性能状態に出入りするよう構成され得る。
【００３９】
種々のコアは、相互接続２１５を介して、システムエージェント、又は種々のコンポーネントを含むアンコア２２０に結合されてよい。図示のように、アンコア２２０は、最終レベルキャッシュであってよい共有キャッシュ２３０を含んでよい。さらに、アンコアは、システムメモリ（図２に示さない）と例えばメモリバスを介して通信するために、集積メモリ制御部２４０を含んでよい。アンコア２２０は、種々のインタフェース２５０、性能監視ユニット（performance  monitoring  unit(PMU)）２６０、及びここに記載の電力管理技術を実行するロジックを含み得る電力制御ユニット２５５、も含む。さらに、電力制御ユニット２５５は、スロットル制御回路２５６を含んでよい。スロットル制御回路２５６は、ヒント情報に少なくとも部分的に基づきスロットル回路２５８により使用される変換情報を動的に決定して、該回路に個々のコア２１０（及び場合によってはプロセッサ２００の他のコンポーネント）のスロットル電力レベルを動的に決定させ、プラットフォームイベントに応答して低遅延動作点変更を可能にしてよい。
【００４０】
さらに、インタフェース２５０ａ〜２５０ｎにより、周辺装置、大容量記憶、等のような種々のオフチップコンポーネントとの接続が行われ得る。図２の実施形態にはこの特定の実装により示されるが、本発明の範囲はこれに関して限定されない。
【００４１】
図３を参照すると、本発明の別の実施形態によるマルチドメインプロセッサのブロック図が示される。図３の実施形態に示すように、プロセッサ３００は複数のドメインを含む。具体的に、コアドメイン３１０は複数のコア３１００〜３１０ｎを含むことができ、グラフィックドメイン３２０は１つ以上のグラフィックエンジンを含むことができ、システムエージェントドメイン３５０が更に存在してよい。幾つかの実施形態では、システムエージェントドメイン３５０は、コアドメインとは独立した周波数で実行してよく、電力制御イベントを処理するために常に電源オンのままであってよい。その結果、ドメイン３１０及び３２０は、動的に高電力状態及び低電力状態に入り、及び出るよう、制御できる。ドメイン３１０及び３２０の各々は、異なる電圧及び／又は電力で動作してよい。留意すべきことに、３個のドメインのみが示されるが、本発明の範囲はこれに関して限定されず、他の実施形態では追加ドメインが存在し得ることが理解される。例えば、それぞれが少なくとも１つのコアを含む複数のコアドメインが存在してよい。
【００４２】
通常、各コア３１０は、種々の実行ユニットに加えて低レベルキャッシュ及び追加処理要素を更に含んでよい。また、種々のコアは、互いに、及び最終レベルキャッシュ（last  level  cache(LLC)）の複数のユニット３４００〜３４０nで形成される共有キャッシュメモリに結合されてよい。種々の実施形態では、ＬＬＣ３４０は、コア及びグラフィックエンジン、並びに種々のメディア処理回路の間で共有されてよい。図示のように、リング相互接続３３０は、従って、コアを一緒に結合し、コア、グラフィックドメイン３２０、及びシステムエージェント回路３５０の間の相互接続を提供する。一実施形態では、相互接続３３０は、コアドメインの部分であり得る。しかしながら、他の実施形態では、リング相互接続はそれ自体のドメインであり得る。
【００４３】
更に図示されるように、システムエージェントドメイン３５０は、関連するディスプレイの制御及びインタフェースを提供し得るディスプレイ制御部３５２を含んでよい。更に図示されるように、システムエージェントドメイン３５０は、スロットル制御回路３５６を含み得る電力制御ユニット３５５を含んでよい。スロットル制御回路３５６は、コア３１０、グラフィックエンジン３２０、等で実行されている負荷に関するヒント情報に少なくとも部分的に基づき、変換情報を決定する。また、ここに記載されるように、ＰＣＵ３５５は、このような情報をスロットル回路３５８に提供して、スロットル回路３５８が、対応するコア／グラフィックエンジンのスロットル動作点を決定できるようにし、そのような更新された動作点への低遅延遷移を可能にする。
【００４４】
図３に更に図示されるように、プロセッサ３００は、ＤＲＡＭ（dynamic  random  access  memory）のようなシステムメモリへのインタフェースを提供できる統合メモリ制御部（integrated  memory  controller(IMC)）３７０を更に含むことができる。複数のインタフェース３８００〜３８０nは、プロセッサと他の回路との間の相互接続を可能にするために存在してよい。例えば、一実施形態では、少なくとも１つのＤＭＩ（direct  media  interface）インタフェースが、１つ以上のＰＣＩｅ（商標）インタフェースと共に提供されてよい。また更に、追加プロセッサ又は他の回路のような他のエージェント間の通信を提供するために、１つ以上のＱＰＩインタフェースも提供されてよい。図３の実施形態には上位レベルで示されるが、本発明の範囲はこれに関して限定されないことが理解される。
【００４５】
図４は、複数のコアを含むプロセッサの一実施形態を示す。プロセッサ４００は、マイクロプロセッサ、埋め込み型プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システムオンチップ（ＳｏＣ）、又はコードを実行する他の装置のような、任意のプロセッサ又は処理装置を含む。プロセッサ４００は、一実施形態では、非対称コア又は対称コア（図示の実施形態）を含んでよい少なくとも２個のコア、つまりコア４０１及び４０２を含む。しかしながら、プロセッサ４００は、対称又は非対称であってよい任意の数の処理要素を含んでよい。
【００４６】
一実施形態では、処理要素は、ソフトウェアスレッドをサポートするハードウェア又はロジックを表す。ハードウェア処理要素の例は、スレッドユニット、スレッドスロット、スレッド、処理ユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、及び／又は実行状態又はアーキテクチャ状態のようなプロセッサの状態を保持可能な任意の他の要素を含む。言い換えると、処理要素は、一実施形態では、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、又は他のコードのようなコードと独立に関連付けることの可能な任意のハードウェアを表す。物理プロセッサは、標準的に、コア又はハードウェアスレッドのような任意の数の他の処理要素を含む場合のある集積回路を表す。
【００４７】
コアは、時に、独立したアーキテクチャ状態を維持することの可能な、集積回路上に配置されるロジックを表す。ここで、各々の独立して維持されるアーキテクチャ状態は、少なくとも幾つかの専用実行リソースに関連付けられる。コアとは対照的に、ハードウェアスレッドは、標準的に、独立したアーキテクチャ状態を維持することの可能な、集積回路上に配置される任意のロジックを表す。ここで、独立して維持されるアーキテクチャ状態は、リソースを実行するためのアクセスを共有する。図示のように、特定のリソースが共有され、他のものがアーキテクチャ状態に専用であるとき、ハードウェアスレッド及びコアの表示の間の線は重なり合う。更に、コア及びハードウェアスレッドは、オペレーティングシステムにより、個別論理プロセッサと見なされる。ここで、オペレーティングシステムは、各論理プロセッサ上の動作を個別にスケジューリングできる。
【００４８】
図４に示すような物理プロセッサ４００は、２個のコア、つまりコア４０１及び４０２を含む。ここで、コア４０１及び４０２は、対称コア、つまり同じ構成、機能ユニット、及び／又はロジックを備えるコアであると考えられる。別の実施形態では、コア４０１はアウトオブオーダ（out−of−order）プロセッサコアを含み、コア４０２はインオーダ（in−order）プロセッサコアを含む。しかしながら、コア４０１及び４０２は、ネイティブコア、ソフトウェア管理コア、ＩＳＡ（native  instruction  set  architecture）を実行するために適応されたコア、変換されたＩＳＡを実行するよう適応されたコア、共通設計（co−designed）コア、又は他の知られているコア、のような任意の種類のコアから個別に選択されてよい。更なる議論のために、コア４０１の中に示される機能ユニットは、以下に更に詳述され、コア４０２の中のユニットは同様に動作する。
【００４９】
図示のように、コア４０１は、ハードウェアスレッドスロット４０１ａ及び４０１ｂとも呼ばれてよい２個のハードウェアスレッド４０１ａ及び４０１ｂを含む。従って、オペレーティングシステムのようなソフトウェアエンティティは、一実施形態では、プロセッサ４００を４個の個別プロセッサ、つまり４個の論理プロセッサ又は４個のソフトウェアスレッドを同時に実行可能な処理要素として見る。上述のように、第１スレッドはアーキテクチャ状態レジスタ４０１ａに可憐付けられ、第２スレッドはアーキテクチャ状態レジスタ４０１ｂに関連付けられ、第３スレッドはアーキテクチャ状態レジスタ４０２ａに関連付けられ、第４スレッドはアーキテクチャ状態レジスタ４０２ｂに関連付けられる。ここで、アーキテクチャ状態レジスタ（４０１ａ、４０１ｂ、４０２ａ、４０２ｂ）の各々は、上述のように、処理要素、スレッドスロット、又はスレッドユニットと呼ばれてよい。図示のように、アーキテクチャ状態レジスタ４０１ａは、アーキテクチャ状態レジスタ４０１ｂ内に複製される。従って、個々のアーキテクチャ状態／コンテキストが、論理プロセッサ４０１ａ及び論理プロセッサ４０１ｂについて格納可能である。コア４０１内で、アロケータ及びリネーマブロック４３０内の命令ポインタ及び残りのロジックのような他のより小さなリソースも、スレッド４０１ａ及び４０１ｂのために複製されてよい。リローダ／退避ユニット４３５内のリローダバッファ、ＩＬＴＢ４２０、ロード／ストアバッファ、及びキューのような幾つかのリソースは、パーティショニングを通じて共有されてよい。汎用内部レジスタ、ページ−テーブルベースレジスタ、低レベルデータキャッシュ、及びデータＴＬＢ４１５、実行ユニット４４０、及びアウトオブオーダユニット４３５の部分のような他のリソースは、完全に共有される可能性がある。
【００５０】
プロセッサ４００は、時に、完全に共有される、パーティショニングを通じて共有される、又は処理要素により／それに専用であってよい他のリソースを含む。図４に、プロセッサの説明のための論理ユニット／リソースを備える純粋に例示的なプロセッサの一実施形態が示される。プロセッサは、これらの機能ユニットのうちの任意のものを含み又は省略してよく、また、図示されない他の任意の知られている機能ユニット、ロジック、又はファームウェアを含んでよい。図示のように、コア４０１は、簡略化された代表的なアウトオブオーダ（out−of−order(OOO)）プロセッサコアを含む。しかし、異なる実施形態では、インオーダプロセッサが利用されてよい。ＯＯＯコアは、実行され／取り入れられるべきブランチを予測するブランチ目標バッファ４２０、及び命令のためのアドレス変換エントリを格納する命令−変換バッファ（instruction−translation  buffer(I−TLB)）４２０を含む。
【００５１】
コア４０１は、フェッチユニット４２０に結合されフェッチした要素を復号する復号モジュール４２５を更に含む。フェッチロジックは、一実施形態では、スレッドスロット４０１ａ、４０１ｂにそれぞれ関連する個々のシーケンスを含む。通常、コア４０１は、プロセッサ４００上で実行可能な命令を定める／指定する第１ＩＳＡに関連付けられる。時には、第１ＩＳＡの部分である機械コード命令は、実行されるべき命令又は動作を参照し／指定する、命令の一部を含む（オペコードと呼ばれる）。復号ロジック４２５は、これらの命令をそれらのオペコードから認識し第１ＩＳＡにより定められたように処理するためにパイプライン内に復号した命令を渡す回路を含む。例えば、デコーダ４２５は、一実施形態では、トランザクション命令のような、特定命令を認識するよう設計された又は適応されたロジックを含む。デコーダ４２５による認識の結果、アーキテクチャ又はコア４０１は、特定の所定の動作を行い、適切な命令に関連付けられたタスクを実行する。ここの記載のタスク、ブロック、動作、及び方法のうちの任意のものは、単一又は複数の命令に応答して実行されてよく、その幾つかは新しい又は古い命令であってよいことに留意することが重要である。
【００５２】
一例では、アロケータ及びリネーマブロック４３０は、命令処理結果を格納するレジスタファイルのようなリソースを予約するアロケータを含む。しかしながら、スレッド４０１ａ及び４０１ｂは、アウトオブオーダ実行が可能な可能性がある。ここで、アロケータ及びリネーマブロック４３０も、命令結果を追跡するためにリオーダバッファのような他のリソースを予約する。ユニット４３０は、プロセッサ４００の内部にある他のレジスタに、プログラム／命令参照レジスタをリネームするために、レジスタリネーマも含んでよい。リローダ／退避ユニット４３５は、アウトオブオーダ実行及び後にアウトオブオーダで実行される命令のインオーダ退避をサポートするために、上述のリオーダバッファ、ロードバッファ、ストアバッファのようなコンポーネントを含む。
【００５３】
スケジューラ及び実行ユニットブロック４４０は、一実施形態では、実行ユニット上で命令／動作をスケジューリングするスケジューラユニットを含む。例えば、浮動小数点命令は、利用可能な浮動小数点実行ユニットを有する実行ユニットの一部にスケジューリングされる。情報命令処理結果を格納するために、実行ユニットに関連付けられるレジスタファイルも含まれる。例示的な実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、ストア実行ユニット、及び他の知られている実行ユニットを含む。
【００５４】
より低いレベルのデータキャッシュ及びデータ変換バッファ（解釈）４５０は、実行ユニット４４０に結合される。データキャッシュは、メモリ内にコヒーレントに状態を保持する場合のある、データオペランドのような要素上で最近使用された／演算されたものを格納する。Ｄ−ＴＬＢは、最近の仮想／線形からの物理アドレスへの変換を格納する。特定の例として、プロセッサは、物理メモリを複数の仮想ページに分解するためにページテーブル構造を含んでよい。
【００５５】
ここで、コア４０１及び４０２は、最近フェッチした要素をキャッシュするための、より上位レベルの、又は更なるアウト（further−out）キャッシュ４１０へのアクセスを共有する。留意すべきことに、より上位の、又は更なるアウトは、実行ユニットから更に増大する、又は離れていくキャッシュレベルを表す。一実施形態では、より上位レベルのキャッシュ４１０は、第２又は第３レベルデータキャッシュのような最終レベルデータキャッシュ、つまりプロセッサ４００においてメモリ階層構造の中の最後のキャッシュ、である。しかしながら、より上位レベルのキャッシュ４１０は、命令キャッシュに関連付けられる、又はそれを含み得るので、限定されない。トレースキャッシュ、つまり命令型キャッシュは、代わりに、最近復号したトレースを格納するために、デコーダ４２５の後に結合されてよい。
【００５６】
図示の構成では、プロセッサ４００は、バスインタフェースモジュール４０５、及び本発明の実施形態に従い電力管理を実行してよい電力制御部４６０も含む。本シナリオでは、バスインタフェース４０５は、システムメモリ及び他のコンポーネントのような、プロセッサ４００の外部にある装置と通信する。
【００５７】
メモリ制御部４７０は、１つ以上のメモリのような他の装置とインタフェースしてよい。一例では、バスインタフェース４０５は、メモリとのインタフェースのためのメモリ制御部、及びグラフィックプロセッサとのインタフェースのためのグラフィック制御部を備えるリング相互接続を含む。ＳｏＣ環境では、ネットワークインタフェース、コプロセッサ、メモリ、グラフィックプロセッサ、及び任意の他の知られているコンピュータ装置／インタフェースのような更に多くの装置が、単一のダイ又は集積回路上に統合されて、高機能及び低電力消費の因子の小さな形状因子を提供してよい。
【００５８】
図５を参照すると、本発明の一実施形態によるプロセッサコアのマイクロアーキテクチャのブロック図が示される。図５に示すように、プロセッサコア５００は、複数段のパイプラインのアウトオブオーダプロセッサであってよい。コア５００は、集積電圧レギュレータ又は外部電圧レギュレータから受信されてよい、受信した動作電圧に基づき種々の電圧で動作してよい。
【００５９】
図５に示すように、コア５００は、プロセッサパイプラインの中で後に使用するために、実行されるべき命令をフェッチし準備するために使用され得るフロントエンドユニット５１０を含む。例えば、フロントエンドユニット５１０は、フェッチユニット５０１、命令キャッシュ５０３、及び命令でコーダ５０５を含んでよい。幾つかの実装では、フロントエンドユニット５１０は、マイクロコードストレージ及びマイクロ動作ストレージと一緒に、トレースキャッシュを更に含んでよい。フェッチユニット５０１は、マクロ命令を、例えばメモリ又は命令キャッシュ５０３からフェッチし、それらを命令デコーダ５０５に供給して、それらをプロセッサによる実行のためにプリミティブ、つまりマイクロ動作へと復号してよい。
【００６０】
フロントエンドユニット５１０と実行ユニット５２０との間には、マイクロ命令を受信しそれらを実行のために準備するために使用されてよいＯＯＯ（out−of−order）エンジン５１５が結合される。より具体的には、ＯＯＯエンジン５１５は、マイクロ命令フローを並べ替えて、実行のために必要な種々のリソースを割り当てるための、並びにレジスタファイル５３０及び拡張レジスタファイル５３５のような種々のレジスタファイル内の記憶位置に残りの論理レジスタを提供するための、種々のバッファを含んでよい。レジスタファイル５３０は、整数及び浮動小数点演算のための別個のレジスタファイルを含んでよい。構成、制御、及び追加動作を目的として、ＭＳＲ（machine  specific  register）セット５３８も存在し、コア５００内の（及びコア外部の）種々のロジックにアクセス可能であってよい。
【００６１】
例えば、専用ハードウェアの中でも特に、種々の整数、浮動小数点、及びＳＩＭＤ（single  instruction  multiple  data）論理ユニットを含む種々のリソースは、実行ユニット５２０内に存在してよい。例えば、このような実行ユニットは、他のこのような実行ユニットの中で、１つ以上の算術論理ユニット（arithmetic  logic  unit(ALU)）５２２及び１つ以上のベクトル実行ユニット５２４を含んでよい。
【００６２】
実行ユニットからの結果は、退避ロジック、つまりリオーダバッファ（reorder  buffer(ROB)）５４０に提供されてよい。より詳細には、ＲＯＢ５４０は、実行される命令に関連付けられた情報を受信する種々のアレイ及びロジックを含んでよい。この情報は、次に、命令が有効に退避可能か否か、及びプロセッサのアーキテクチャ状態に結果データをコミットできるか否か、又は命令の適正な退避を妨げる１つ以上の例外が生じたか否かを決定するために、ＲＯＢ５４０により検査される。もちろん、ＲＯＢ５４０は、退避に関連する他の動作を扱ってよい。
【００６３】
図５に示すように、ＲＯＢ５４０は、キャッシュ５５０に結合される。キャッシュ５５０は、一実施形態では、低レベルキャッシュ（例えば、Ｌ１キャッシュ）であってよい。しかしながら、本発明の範囲はこれに関して限定されない。また、実行ユニット５２０は、キャッシュ５５０に直接結合できる。キャッシュ５５０から、データ通信は、より上位のキャッシュ、システムメモリ、等と生じてよい。コア５００の性能及びエネルギ効率能力は、負荷及び／又はプロセッサ制約に基づき変化してよい。このように、電力制御部（図５に図示しない）は、ここに記載されるように決定されたサーマル設定点に少なくとも部分的に基づき、プロセッサ５００の全体又は一部の適切な構成を動的に決定してよい。図５の実施形態には上位レベルにより示されるが、本発明の範囲はこれに関して限定されないことが理解される。例えば、図５の実装はＩｎｔｅｌ（登録商標）ｘ８６命令セットアーキテクチャ（ＩＳＡ）のようなアウトオブオーダマシンに関連するが、本発明の範囲はこれに関して限定されない。つまり、他の実施形態は、インオーダプロセッサ、ＡＲＭに基づくプロセッサのようなＲＩＳＣ（reduced  instruction  set  computing）プロセッサ、又はエミュレーションエンジン及び関連論理回路を介して異なるＩＳＡの命令及び動作をエミュレートできる別の種類のＩＳＡのプロセッサに実装されてよい。
【００６４】
図６を参照すると、別実施形態によるプロセッサコアのマイクロアーキテクチャのブロック図が示される。図６の実施形態では、コア６００は、電力消費を低減するよう設計された比較的限られたパイプライン深さを有するＩｎｔｅｌ（登録商標）Ａｔｏｍ（商標）に基づくプロセッサのような、異なるマイクロアーキテクチャの低電力コアであってよい。図示のように、コア６００は、命令デコーダ６１５に命令を提供するために結合される命令キャッシュ６１０を含む。ブランチ予測器６０５は、命令キャッシュ６１０に結合されてよい。留意すべきことに、命令キャッシュ６１０は、Ｌ２キャッシュ（図６には説明を容易にするために図示されない）のような別のレベルのキャッシュメモリに更に結合されてよい。また、命令デコーダ６１５は、復号した命令を、記憶及び所与の実行パイプラインへの配信のために発行キュー６２０に提供する。マイクロコードＲＯＭ６１８は、命令デコーダ６１５に結合される。
【００６５】
浮動小数点パイプライン６３０は、１２８、２５６、又は５１２ビットのような所与のビットの複数のアーキテクチャレジスタを含み得る浮動小数点レジスタファイル６３２を含む。パイプライン６３０は、パイプラインの１つ以上の実行ユニット上で実行するために命令をスケジューリングする浮動小数点スケジューラ６３４を含む。図示の実施形態では、このような実行ユニットは、ＡＬＵ６３５、シャッフルユニット６３６、及び浮動小数点加算器６３８を含む、また、これらの実行ユニットで生成された結果は、バッファ及び／又はレジスタファイル６３２のレジスタに戻されてよい。勿論、これらの幾つかの例示的な実行ユニットにより示されるが、別の実施形態では追加又は異なる浮動小数点実行ユニットが存在してよいことが理解される。
【００６６】
整数パイプライン６４０も提供されてよい。図示の実施形態では、パイプライン６４０は、１２８又は２５６ビットのような所与のビットの複数のアーキテクチャレジスタを含み得る整数レジスタファイル６４２を含む。パイプライン６４０は、パイプラインの１つ以上の実行ユニット上で実行するために命令をスケジューリングする整数スケジューラ６４４を含む。図示の実施形態では、このような実行ユニットは、ＡＬＵ６４５、シフタユニット６４６、及びジャンプ実行ユニット６４８を含む。また、これらの実行ユニットで生成された結果は、バッファ及び／又はレジスタファイル６４２のレジスタに戻されてよい。勿論、これらの幾つかの例示的な実行ユニットにより示されるが、別の実施形態では追加又は異なる整数実行ユニットが存在してよいことが理解される。
【００６７】
メモリ実行スケジューラ６５０は、ＴＬＢ６５４に結合されるアドレス生成ユニット６５２において実行のためにメモリ動作をスケジューリングしてよい。理解されるように、これらの構造は、Ｌ０及び／又はＬ１データキャッシュであってよいデータキャッシュ６６０に結合されてよい。データキャッシュ６６０は、また、Ｌ２キャッシュメモリを含む、キャッシュメモリ階層構造の追加レベルに結合する。
【００６８】
アウトオブオーダ実行のサポートを提供するために、退避のためにアウトオブオーダで実行された命令をインオーダに並べ替えるよう構成されるリオーダバッファ６８０に加えて、アロケータ／リネーマ６７０が提供されてよい。コア６００の性能及びエネルギ効率能力は、負荷及び／又はプロセッサ制約に基づき変化してよいことに留意する。このように、電力制御部（図６に図示しない）は、ここに記載されるように決定されたサーマル設定点に少なくとも部分的に基づき、プロセッサ５００の全体又は一部の適切な構成を動的に決定してよい。図６の説明では、この特定のパイプラインアーキテクチャにより示されたが、多くの変形及び代替が可能であることが理解される。
【００６９】
図５及び６のマイクロアーキテクチャによるような非対称コアを有するプロセッサでは、負荷は、電力管理の理由からコアの間で動的にスワップされてよく、これらのコアは、異なるパイプライン設計及び深さを有するが、同じ又は関連するＩＳＡであってよいことに留意する。このような動的コアスワップは、ユーザアプリケーション（及び場合によってはカーネルも）に対して透過的方法で実行されてよい。
【００７０】
図７を参照すると、更に別の実施形態によるプロセッサコアのマイクロアーキテクチャのブロック図が示される。図７に示すように、コア７００は、非常に低電力消費レベルで実行する複数段のインオーダパイプラインを含んでよい。１つのこのような例として、プロセッサ７００は、ＡＲＭ  Ｈｏｌｄｉｎｇｓ  ＬＴＤ．，  Ｓｕｎｎｙｖａｌｅ、ＣＡから入手可能なＡＲＭ  ＣｏｒｔｅｘＡ５３設計に従うマイクロアーキテクチャを有してよい。一実装では、３２ビット及び６４ビットコードの両方を実行するよう構成される８段パイプラインが、提供されてよい。コア７００は、命令をフェッチし、それらを復号ユニット７１５に提供するよう構成されるフェッチユニット７１０を含む。復号ユニット７１５は、命令、例えばＡＲＭｖ８  ＩＳＡのような所与のＩＳＡのマクロ命令を復号してよい。キュー７３０は、復号された命令を格納するために、復号ユニット７１５に結合してよいことに更に留意する。復号された命令は、発行ロジック７２５に提供され、発行ロジック７２５では、復号された命令は複数の実行ユニットのうちの所与の１つに発行されてよい。
【００７１】
図７を更に参照すると、発行ロジック７２５は、複数の実行ユニットのうちの１つに命名を発行してよい。図示の実施形態では、これらの実行ユニットは、整数ユニット７３５、乗算ユニット７４０、浮動小数点／ベクトルユニット７５０、デュアル発行ユニット７６０、及びロード／ストアユニット７７０を含む。これらの異なる実行ユニットの結果は、書き戻しユニット７８０に提供されてよい。説明を簡単にするために単一の書き戻しユニットが示されるが、幾つかの実装では、別個の書き戻しユニットが実行ユニットの各々に関連付けられてよいことが理解される。更に、図７に示されるユニット及びロジックの各々は上位レベルで示されるが、特定の実装はより多くの又は異なる構造を含んでよい。図７のようなパイプラインを有する１つ以上のコアを用いて設計されたプロセッサは、モバイル装置からサーバシステムまで、多くの異なるエンド製品に実装されてよい。
【００７２】
図８を参照すると、更に別の実施形態によるプロセッサコアのマイクロアーキテクチャのブロック図が示される。図８に示されるように、コア８００は、（図７のコア７００より高い電力消費レベルで生じ得る）非常に高い性能レベルで実行する複数段の複数命令のアウトオブオーダ（multi−stage  multi−issue  out−of−order）パイプラインを含んでよい。１つのこのような例として、プロセッサ８００は、ＡＭＲ  ＣｏｒｔｅｘＡ５７設計に従うマイクロアーキテクチャを有してよい。一実装では、３２ビット及び６４ビットコードの両方を実行するよう構成される１５（又はそれより多くの）段パイプラインが、提供されてよい。さらに、パイプラインは、３（又はそれより多くの）幅の、及び３（又はそれより多くの）命令動作を提供してよい。コア８００は、命令をフェッチしそれらをデコーダ／リネーマ／ディスパッチャ８１５に提供するよう構成されるフェッチユニット８１０を含む。デコーダ／リネーマ／ディスパッチャ８１５は、命令、例えばＡＲＭｖ８命令セットアーキテクチャのマクロ命令を復号し、命令内のレジスタ参照をリネームし、及び命令を（最終的に）選択された実行ユニットにディスパッチしてよい。復号された命令は、キュー８２５に格納されてよい。留意すべきことに、説明を容易にするために、図８には単一のキュー構造が示されるが、別個のキューが複数の異なる種類の実行ユニットの各々に提供されてよいことが理解される。
【００７３】
図８には、発行ロジック８３０も示される。発行ロジック８３０から、キュー８２５に格納された復号された命令が、選択された実行ユニットへと発行されてよい。発行ロジック８３０は、特定の実施形態では、発行ロジック８３０の結合する複数の異なる種類の実行ユニットの各々について、別個の発行ロジックにより実装されてもよい。
【００７４】
復号された命令は、複数の実行ユニットのうちの所与の１つへと発行されてよい。図示の実施形態では、これらの実行ユニットは、１つ以上の整数ユニット８３５、乗算ユニット８４０、浮動小数点／ベクトルユニット８５０、ブランチユニット８６０、及びロード／ストアユニット８７０を含む。一実施形態では、浮動小数点／ベクトルユニット８５０は、１２８又は２５６ビットのＳＩＭＤ又はベクトルデータを処理するよう構成されてよい。また更に、浮動小数点／ベクトル実行ユニット８５０は、ＩＥＥＥ−７５４倍精度浮動小数点動作を実行してよい。これらの異なる実行ユニットの結果は、書き戻しユニット８８０に提供されてよい。留意すべきことに、幾つかの実装では、別個の書き戻しユニットは実行ユニットの各々に関連付けられよい。更に、図８に示されるユニット及びロジックの各々は上位レベルで示されるが、特定の実装はより多くの又は異なる構造を含んでよい。
【００７５】
図７及び８のマイクロアーキテクチャによるような非対称コアを有するプロセッサでは、負荷は、電力管理の理由から動的にスワップされてよく、これらのコアは、異なるパイプライン設計及び深さを有するが、同じ又は関連するＩＳＡであってよいことに留意する。このような動的コアスワップは、ユーザアプリケーション（及び場合によってはカーネルも）に対して透過的方法で実行されてよい。
【００７６】
図５〜８のうちの任意の１つ以上におけるようなパイプラインを有する１つ以上のコアを用いて設計されたプロセッサは、モバイル装置からサーバシステムまで、多くの異なるエンド製品に実装されてよい。図９を参照すると、本発明の別の実施形態によるプロセッサのブロック図が示される。図９の実施形態では、プロセッサ９００は、複数のドメインを含むＳｏＣであってよい。ドメインの各々は、独立した電圧及び動作周波数で動作するよう制御されてよい。特定の説明のための例として、プロセッサ９００は、ｉ３、ｉ５、ｉ７、又はIntel  Corporationから入手可能な別のこのようなプロセッサのようなＩｎｔｅｌ（登録商標）Architecture  Core（商標）に基づくプロセッサであってよい。しかしながら、Sunnyvale,  CAのAdvanced  Micro  Devices,  Inc.(AMD)から入手可能な他の低電力プロセッサ、ARM  Holdings,  Ltd.又はそれらのライセンシーによるＡＲＭに基づく設計、又はSunnyvale,  CAのMIPS  Technologies,  Inc.ｋ又はそれらのライセンシー又は採用者からのＭＩＰＳに基づく設計が、他の実施形態では、Apple  A７プロセッサ、Qualcomm  Snapdragonプロセッサ、又はTexas  Instruments  OMAPプロセッサのように、代わりに存在してよい。このようなＳｏＣは、スマートフォン、タブレットコンピュータ、ファブレットコンピュータ、Ｕｌｔｒａｂｏｏｋ（商標）コンピュータ、又は他のポータブルコンピューティング装置、又は車載コンピューティングシステムのような低電力システムで使用されてよい。
【００７７】
図９の上位レベル図では、プロセッサ９００は、複数のコアユニット９１００〜９１０ｎを含む。各コアユニットは、１つ以上のプロセッサコア、１つ以上のキャッシュメモリ、及び他の回路を含んでよい。各コアユニット９１０は、１つ以上の命令セット（例えば、ｘ８６命令セット（より新しいバージョンにより追加された幾つかの拡張を有する））、ＭＩＰＳ命令セット、ＡＲＭ命令セット（ＮＥＯＮのような任意の追加拡張を有する）、又は他の命令セット、又はそれらの組み合わせをサポートしてよい。コアユニットのうちの幾つかは異種リソース（例えば、異なる設計）であってよい。さらに、各々のこのようなコアは、一実施形態では、共有レベル（Ｌ２）キャッシュメモリであってよいキャッシュメモリ（図示しない）に結合されてよい。不揮発性記憶９３０は、種々のプログラム及び他のデータを格納するために使用されてよい。例えば、この記憶は、マイクロコードの少なくとも部分、ＢＩＯＳのようなブート情報、他のシステムソフトウェア、及び他の情報を格納するために使用されてよい。実施形態では、不揮発性記憶９３０は、ファームウェアによる使用のために優先順位付けされてよい、ここに記載のような複数の構成を格納してよい。
【００７８】
各コアユニット９１０は、プロセッサの追加回路への相互接続を可能にするバスインタフェースユニットのようなインタフェースも含んでよい。一実施形態では、各コアユニット９１０は、１次キャッシュとして動作し得るコヒーレントファブリックをコヒーレントなダイ上の相互接続に結合する。ダイ上の相互接続は、また、メモリ制御部９３５に結合する。また、メモリ制御部９３５は、（図９には説明を容易にするために図示されない）ＤＲＡＭのようなメモリとの通信を制御する。
【００７９】
コアユニットに加えて、追加処理エンジンがプロセッサ内に存在する。これは、グラフィック処理を実行し及び場合によってはグラフィックプロセッサ上の汎用動作（所謂、ＧＰＧＰＵ動作）を実行する少なくとも１つのグラフィック処理ユニット（ＧＰＵ）９２０を含む。さらに、少なくとも１つの画像信号プロセッサ９２５が存在してよい。信号プロセッサ９２５は、ＳｏＣの内部又はオフチップにある１つ以上のキャプチャ装置から受信した入力画像データを処理するよう構成されてよい。
【００８０】
他のアクセラレータも存在してよい。図９の説明では、ビデオコーダ９５０は、ビデオ情報の符号化及び復号を含む符号化動作を実行して、例えば高解像度ビデオコンテンツのためにハードウェア加速サポートを提供してよい。ディスプレイ制御部９５５は、さらに、システムの内部及び外部ディスプレイのサポートを提供することを含むディスプレイ動作を加速するために提供されてよい。さらに、セキュリティプロセッサ９４５は、セキュアブート動作、種々の暗号化動作、等のようなセキュリティ動作を実行するために存在してよい。
【００８１】
ユニットの各々は、電力マネジャ９４０を介して制御される、それ自体の電力消費を有してよい。電力マネジャ９４０は、サーマル点（thermal  point）選択に基づく適切な構成の動的決定を含む、ここに記載される種々の電力管理技術を実行する制御ロジックを含んでよい。
【００８２】
幾つかの実施形態では、ＳｏＣ９００は、種々の周辺装置が結合されてよいコヒーレントファブリックに結合される非コヒーレントファブリックを更に含んでよい。１つ以上のインタフェース９６０ａ〜９６０ｄは、１つ以上のオフチップ装置と通信可能である。このような通信は、他の種類の通信プロトコルの中でも特に得、ＰＣＩｅ（登録商標）、ＧＰＩＯ、ＵＳＢ、Ｉ２Ｃ、ＵＡＲＴ、ＭＩＰＩ、ＳＤＩＯ、ＤＤＲ、ＳＰＩ、ＨＤＭＩ（登録商標）のような種々の通信プロトコルを介してよい。図９の実施形態には上位レベルで示されるが、本発明の範囲はこれに関して限定されないことが理解される。
【００８３】
図１０を参照すると、代表的ＳｏＣのブロック図が示される。図示の実施形態では、ＳｏＣ１０００は、スマートフォン又はタブレットコンピュータのような他の低電力装置、又は他のポータブルコンピューティング装置又は社債コンピューティング装置に組み込むために最適化された低電力動作のために構成されたマルチコアＳｏＣであってよい。一例として、ＳｏＣ１０００は、高電力及び／又は低電力コアの組み合わせのような非対称又は異なる種類のコア、例えばアウトオブオーダコア及びインオーダコア、を用いて実装されてよい。異なる実施形態では、これらのコアは、Intel（登録商標）Architecture（商標）コア設計又はARMアーキテクチャ設計に基づいてよい。更に他の実施形態では、intel及びARMコアの混合は、所与のＳｏＣとして実装されてよい。
【００８４】
図１０に示すように、ＳｏＣ１０００は、複数の第１コア１０１２０〜１０１２３を有する第１コアドメイン１０１０を含む。一例では、これらのコアは、ここに記載されるように、インオーダコアのような低電力コアであってよい。一実施形態では、これらの第１コアは、ＡＲＭ  Ｃｏｒｔｅｘ  Ａ５３コアとして実装されてよい。また、これらのコアは、コアドメイン１０１０のキャッシュメモリ１０１５ｎに結合する。さらに、ＳｏＣ１０００は、第２コアドメイン１０２０を含む。図１０の説明では、第２コアドメイン１０２０は複数の第２コア１０２２０〜１０２２３を有する。一例では、これらのコアは、第１コア１０１２より高い電力消費コアであってよい。一実施形態では、第２コアは、ＡＲＭ  Ｃｏｒｔｅｘ  Ａ５７コアとして実装されてよいアウトオブオーダコアであってよい。また、これらのコアは、コアドメイン１０２０のキャッシュメモリ１０１５に結合する。留意すべきことに、図１０に示した例は各ドメインに４個のコアを含むが、他の例では、より多くの又は少数のコアが所与のドメインに存在してよいことが理解される。
【００８５】
図１０を更に参照すると、例えばコアドメイン１０１０及び１０２０の１つ以上のコアにより提供されるグラフィック負荷を独立に実行するよう構成される１つ以上のグラフィック処理ユニット（ＧＰＵ）を含んでよいグラフィックドメイン１０３０も提供される。一例として、ＧＰＵドメイン１０３０は、グラフィック及びディスプレイレンダリング動作を提供することに加えて、種々のスクリーンサイズのためのディスプレイサポートを提供するために使用されてよい。
【００８６】
図示のように、種々のドメインは、一実施形態では、統合メモリ制御部１０５０に結合するキャッシュコヒーレント相互接続ファブリックであってよいコヒーレント相互接続１０４０に結合する。コヒーレント相互接続１０４０は、幾つかの例では、Ｌ３キャッシュのような共有キャッシュメモリを含んでよい。一実施形態では、メモリ制御部１０５０は、ＤＲＡＭ（説明を容易にするために図１０に図示されない）の複数のチャネルのような、オフチップメモリとの通信の複数のチャネルを提供する直接メモリ制御部であってよい。
【００８７】
異なる例では、コアドメインの数は変化してよい。例えば、モバイルコンピューティング装置に組み込むのに適する低電力ＳｏＣでは、図１０に示すように限られた数のコアドメインが存在してよい。また更に、このような低電力ＳｏＣでは、より高い電力コアを含むコアドメイン１０２０は、より少数のこのようなコアを有してよい。例えば、一実装では、２個のコア１０２２が、低減された電力消費レベルでの動作を可能にするために提供されてよい。さらに、異なるコアドメインは、異なるドメイン間の負荷の動的スワップを可能にするために、割り込み制御部にも結合されてよい。
【００８８】
更に他の実施形態では、より多数のコアドメイン、及び追加の任意的ＩＰロジックが、存在してよく、ここで、ＳｏＣは、デスクトップ、サーバ、高性能コンピューティングシステム、基地局、等のような他のコンピューティング装置に組み込むために、より高い性能（及び電力）レベルへとスケーリングできる。１つのこのような例として、それぞれ所与の数のアウトオブオーダコアを有する４個のコアドメインが提供されてよい。また更に、（一例としてＧＰＧＰＵの形式を取る）任意的ＧＰＵサポートに加えて、特定の機能（例えば、ウェブサービング、ネットワーク処理、スイッチング、等）の最適なハードウェアサポートを提供するために、１つ以上のアクセラレータも提供されてよい。さらに、入力／出力インタフェースは、このようなアクセラレータをオフチップコンポーネントに結合するために存在してよい。
【００８９】
図１１を参照すると、別の例示的なＳｏＣのブロック図が示される。図１１の実施形態では、ＳｏＣ１１００は、マルチメディアアプリケーション、通信、及び他の機能のために、高性能を可能にするための種々の回路を含んでよい。従って、ＳｏＣ１１００は、スマートフォン、タブレットコンピュータ、スマートＴＶ、車載コンピューティングシステム等のような広範な種類のポータブル及び他の装置への組み込みに適する。図示の例では、ＳｏＣ１１００は、中央処理ユニット（ＣＰＵ）ドメイン１１００を含む。一実施形態では、複数の個々のプロセッサコアは、ＣＰＵドメイン１１１０内に存在してよい。一例として、ＣＰＵドメイン１１１０は、４個のマルチスレッドコアを有するクワッドコアプロセッサであってよい。このようなプロセッサは、同種又は異種プロセッサ、例えば低電力及び高電力プロセッサコアの混合であってよい。
【００９０】
また、ＧＰＵドメイン１１２０は、グラフィックを処理し及びＡＰＩを計算するために、１つ以上のＧＰＵ内で高度グラフィック処理を実行するために提供される。ＤＳＰ１１３０は、マルチメディア命令の実行中に生じ得る高度な計算に加えて、音楽再生、オーディオ／ビデオ等のような低電力マルチメディアアプリケーションを処理する１つ以上の低電力ＤＳＰを提供してよい。また、通信ユニット１１４０は、セルラ通信（３Ｇ／４Ｇ  ＬＴＥを含む）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＩＥＥＥ８０２．１１等のような無線ローカルエリアプロトコル種々の無線プロトコルを介して接続を提供する種々のコンポーネントを含んでよい。
【００９１】
また更に、マルチメディアプロセッサ１１５０は、ユーザジェスチャの処理を含む、高解像度ビデオ及びオーディオコンテンツのキャプチャ及び再生を実行するために使用されてよい。センサユニット１１６０は、複数のセンサ及び／又は所与のプラットフォーム内に存在する種々のオフチップセンサとインタフェースするセンサ制御部を含んでよい。画像信号プロセッサ１１７０は、静止及びビデオカメラを含むプラットフォームの１つ以上のカメラからのキャプチャされたコンテンツに関して画像処理を実行するために、１つ以上の別個のＩＳＰと共に提供されてよい。
【００９２】
ディスプレイプロセッサ１１８０は、このようなディスプレイ上での再生のためにコンテンツを無線通信する能力を含む、所与のピクセル密度の高解像度ディスプレイへの接続のサポートを提供してよい。また更に、位置ユニット１１９０は、ＧＰＳ受信機を用いて取得される高度に正確な位置決め情報をアプリケーションに提供するために、複数のＧＰＳ衛星をサポートするＧＰＳ受信機を含んでよい。図１１の例では、この特定のコンポーネントセットにより示されたが、多くの変形及び代替が可能であることが理解される。
【００９３】
図１２は、実施形態が使用可能な例示的なシステムのブロック図を示す。図示のように、システム１２００は、スマートフォン又は他の無線通信機であってよい。ベースバンドプロセッサ１２０５は、システムから送信されるべき、又はシステムにより受信された通信信号に関する種々の信号処理を実行するよう構成される。また、ベースバンドプロセッサ１２０５は、多くの良く知られたソーシャルメディア及びマルチメディアアプリのようなユーザアプリケーションに加えて、ＯＳ及び他のシステムソフトウェアを実行するために、システムのメインＣＰＵであってよいアプリケーションプロセッサ１２１０に結合される。アプリケーションプロセッサ１２１０は、ここに記載されるような電力制御部及びスロットル回路を含んでよく、装置のための種々の他のコンピューティング動作を実行するよう更に構成されてよい。
【００９４】
また、アプリケーションプロセッサ１２１０は、ユーザインタフェース／ディスプレイ１２２０、例えばタッチスクリーンディスプレイに結合できる。更に、アプリケーションプロセッサ１２１０は、不揮発性メモリ、つまりフラッシュメモリ１２３０を含むメモリシステム、及びシステムメモリ、つまりＤＲＡＭ（dynamic  random  access  memory）１２３５に結合してよい。更に図示のように、アプリケーションプロセッサ１２１０は、ビデオ及び／又は静止画を記録できる１つ以上の画像キャプチャ装置のようなキャプチャ装置１２４０に結合する。
【００９５】
続けて図１２を参照すると、加入者識別モジュールを含むＵＩＣＣ（universal  integrated  circuit  card）１２４０及び場合によってはセキュアストレージ及び暗号プロセッサもアプリケーションプロセッサ１２１０に結合される。システム１２００は、アプリケーションプロセッサ１２１０に結合してよいセキュリティプロセッサ１２５０を更に含んでよい。複数のセンサ１２２５は、加速度計及び他の環境情報のような種々の検知情報の入力を可能にするアプリケーションプロセッサ１２１０に結合してよい。オーディオ出力装置１２９５は、例えば音声通信、オーディオデータの再生又はストリーミング、等の形式で、音声を出力するインタフェースを提供してよい。
【００９６】
更に図示のように、ＮＦＣ（near  field  communication）アンテナ１２６５を介してＮＦＣ近距離で通信するＮＦＣ非接触型インタフェース１２６０が提供される。図１２には別個のアンテナが示されるが、幾つかの実装では、種々の無線機能を可能にするために、１つのアンテナ又は異なるアンテナセットが提供されてよいことが理解される。
【００９７】
電力管理集積回路（power  management  integrated  circuit  (PMIC)）１２１５は、プラットフォームレベル電力管理を実行するために、アプリケーションプロセッサ１２１０に結合する。この目的のために、ＰＭＩＣ１２１５は、必要に応じて特定の低電力状態に入るために、アプリケーションプロセッサ１２１０に電力管理要求を発行してよい。更に、プラットフォーム制約に基づき、ＰＭＩＣ１２１５は、システム１２００の他のコンポーネントの電力レベルも制御してよい。また更に、ここで説明されるように、ＰＭＩＣ１２１５は、所与のプラットフォームイベントに応答して、スロットル信号をアプリケーションプロセッサ１２１０へ送信してよい。
【００９８】
通信を送信させ、及び受信させるために、種々の回路が、ベースバンドプロセッサ１２０５とアンテナ１２９０との間に結合されてよい。具体的に、無線周波数（radio  frequency(RF)）トランシーバ１２７０及び無線ローカルエリアネットワーク（wireless  local  area  network(WLAN)）トランシーバ１２７５が存在してよい。通常、ＲＦトランシーバ１２７０は、ＣＤＭＡ（code  division  multiple  access）、ＧＳＭ（global  system  for  mobile  communication）、ＬＴＥ（long  term  evolution）又は他のプロトコルに従うような、３Ｇ又は４Ｇ無線通信プロトコルのような所与の無線通信プロトコルに従い無線データ及び呼を受信及び送信するために使用されてよい。更に、ＧＰＳセンサ１２８０が存在してよい。無線信号、例えばＡＭ／ＦＭ及び他の信号の受信又は送信のような他の無線通信も提供されてよい。更に、ＷＬＡＮトランシーバ１２７５を介して、ローカル無線通信も実現可能である。
【００９９】
図１３は、実施形態が使用可能な別の例示的なシステムのブロック図を示す。図１３の図では、システム１３００は、タブレットコンピュータ、２：１タブレット、ファブレット、又は他のコンバーチブル又は独立型タブレットシステムのようなモバイル低電力システムであってよい。図示のように、ＳｏＣ１３１０が存在し、装置のアプリケーションプロセッサとして動作するよう構成されてよく、ここに記載するような電力制御部及びスロットル回路を含んでよい。
【０１００】
種々の装置がＳｏＣ１３１０に結合してよい。示される図では、メモリサブシステムは、ＳｏＣ１３１０に結合されるフラッシュメモリ１３４０及びＤＲＡＭ１３４５を含む。更に、タッチパネル１３２０は、ＳｏＣ１３１０に結合されて、タッチパネル１３２０のディスプレイ上の仮想キーボードの提供を含む、ディスプレイ能力及び接触によるユーザインプットを提供する。有線ネットワーク接続を提供するために、ＳｏＣ１３１０は、Ｅｔｈｅｒｎｅｔインタフェース１３３０に結合する。周辺ハブ１３２５は、ＳｏＣ１３１０に結合されて、種々のポート又は他のコネクタのうちの任意のものによりシステム１３００に結合されてよい種々の周辺装置とのインタフェースを可能にする。
【０１０１】
ＳｏＣ１３１０内の内部電力制御回路及び機能に加えて、ＰＭＩＣ１３８０がＳｏＣ１３１０に結合されて、プラットフォームに基づく電力管理を、例えばシステムがバッテリ１３９０又はＡＣアダプタ１３９５を介してＡＣ電源により電力供給されるかに基づき、提供する。この電源に基づく電力管理に加えて、ＰＭＩＣ１３８０は、環境及び使用条件に基づきプラットフォーム電力管理活動を更に実行してよい。また更に、ＰＭＩＣ１３８０は、制御及び状態情報をＳｏＣ１３１０へ通信して、ＳｏＣ１３１０内の種々の電力管理動作を生じてよい。また更に、ここで説明されるように、ＰＭＩＣ１３８０は、所与のプラットフォームイベントに応答して、スロットル信号をＳｏＣ１３１０へ送信してよい。
【０１０２】
続けて図１３を参照すると、無線能力を提供するために、ＷＬＡＮユニット１３５０がＳｏＣ１３１０に結合され、またアンテナ１３５５に結合される。種々の実装では、ＷＬＡＮユニット１３５０は、１つ以上の無線プロトコルに従い通信を提供してよい。
【０１０３】
更に図示のように、複数のセンサ１３６０がＳｏＣ１３１０に結合してよい。これらのセンサは、種々の加速度計、環境及びユーザジェスチャセンサを含む他のセンサを含んでよい。最後に、オーディオコーデック１３６５は、オーディオ出力装置１３７０へのインタフェースを提供するためにＳｏＣ１３１０に結合される。勿論、図１３の例では、この特定の実装により示されたが、多くの変形及び代替が可能であることが理解される。
【０１０４】
図１４を参照すると、ノートブック、Ｕｌｔｒａｂｏｏｋ（登録商標）、又は他の小型形状システムのような代表的コンピュータシステムのブロック図が示される。プロセッサ１４１０は、一実施形態では、マイクロプロセッサ、マルチコアプロセッサ、マルチスレッドプロセッサ、超低電圧プロセッサ、埋め込み型プロセッサ、又は他の知られている処理要素を含む。図示の実装では、プロセッサ１４１０は、メイン処理ユニット、及びシステム１４００の種々のコンポーネントのうちの多数と通信するための中央ハブとして動作する。一例として、プロセッサ１４００は、ＳｏＣとして実装され、ここに記載するような電力制御部及びスロットル回路を含んでよい。
【０１０５】
プロセッサ１４１０は、一実施形態では、システムメモリ１４１５と通信する。説明のための例として、システムメモリ１４１５は、所与の量のシステムメモリを提供するために、複数のメモリ装置又はモジュールにより実装される。
【０１０６】
データ、アプリケーション、１つ以上のオペレーティングシステム、等のような情報の永久記憶のために、大容量記憶１４２０もプロセッサ１４１０に結合されてよい。種々の実施形態では、システム応答性を向上し、並びに薄型及び軽量型システム設計を可能にするために、この大容量記憶は、ＳＳＤにより実装されてよい。或いは、大容量記憶は、ＳＳＤキャッシュとして動作する少ない容量のＳＳＤ記憶と共に、主にＨＤＤ（hard  disk  drive）を用いて実装されてよく、電力低下イベントの間のコンテキスト状態及び他のこのような情報の不揮発性記憶を可能にする。その結果、システム活動の再開において高速な起動が生じ得る。また、図１４に示すように、フラッシュ装置１４２２は、プロセッサ１４１０に、例えばＳＰＩ（serial  peripheral  interface）を介して結合されてよい。このフラッシュ装置は、ＢＩＯＳ（basic  input/output  software）及びシステムの他のファームウェアを含むシステムソフトウェアの不揮発性記憶を提供してよい。
【０１０７】
種々の入力／出力（Ｉ／Ｏ）装置がシステム１４００内に存在してよい。具体的に、図１４の実施形態には、タッチスクリーン１４２５を更に提供する高解像度ＬＣＤ又はＬＥＤパネルであってよいディスプレイ１４２４が示される。一実施形態では、ディスプレイ１４２４は、プロセッサ１４１０に、高性能グラフィック相互接続として実装され得るディスプレイ相互接続を介して結合されてよい。タッチスクリーン１４２５は、プロセッサ１４１０に、一実施形態ではＩ２Ｃ相互接続であってよい別の相互接続を介して結合されてよい。更に図１４に示されるように、タッチスクリーン１４２５に加えて、接触（タッチ）によるユーザ入力は、タッチパッド１４３０を介しても生じ得る。タッチパッド１４３０は、筐体内に構成されてよく、タッチスクリーン１４２５と同じＩ２Ｃ相互接続に結合されてよい。
【０１０８】
知覚コンピューティング及び他の目的で、種々のセンサがシステム内に存在してよく、異なる方法でプロセッサ１４１０に結合されてよい。特定の内部及び環境センサは、プロセッサ１４１０に、センサハブ１４４０を通じて、例えばＩ２Ｃ相互接続を介して結合してよい。図１４に示す実施形態では、これあのセンサは、加速度計１４４１、環境光センサ（ambient  light  sensor(ALS)）１４４２、コンパス１４４３、及びジャイロスコープ１４４４を含んでよい。他の環境センサは、幾つかの実施形態ではプロセッサ１４１０にシステム管理バス（system  management  bus(SMBus)）を介して結合される１つ以上の熱センサ１４４６を含んでよい。
【０１０９】
また、図１４で、種々の周辺装置は、プロセッサ１４１０に、少数ピン（low  pin  count(LPC)）相互接続を介して結合してよい。図示の実施形態では、種々のコンポーネントは、埋め込み型制御部１４３５を通じて結合できる。このようなコンポーネントは、キーボード１４３６（例えば、ＰＳ２インタフェースを介して結合される）、ファン１４３７、及び熱センサ１４３９を含み得る。幾つかの実施形態では、タッチパッド１４３０は、ＰＳ２インタフェースを介してＥＣ１４３５にも結合してよい。更に、信頼できるプラットフォームモジュール（trusted  platform  module(TPM)）１４３８のようなセキュリティプロセッサも、プロセッサ１４１０に、このＬＰＣ相互接続を介して結合してよい。
【０１１０】
システム１４００は、無線を含む種々の方法で外部装置と通信できる。図１４に示す実施形態では、種々の無線モジュールが存在し、その各々が、特定の無線通信プロトコルのために構成される無線に対応し得る。近距離のような短距離の無線通信のための１つの方法は、ＮＦＣユニット１４４５を介してよい。ＮＦＣユニット１４４５は、一実施形態では、プロセッサ１４１０とＳＭＢｕｓを介して通信してよい。このＮＦＣユニット１４４５を介して、互いに近い近傍にある装置が通信できることに留意する。
【０１１１】
図１４で更に分かるように、追加無線ユニットは、ＷＬＡＮユニット１４５０及びＢｌｕｅｔｏｏｔｈユニット１４５２を含む他の短距離無線エンジンを含み得る。ＷＬＡＮユニット１４５０を用いて、Ｗｉ−Ｆｉ（登録商標）通信が実現でき、一方で、Ｂｌｕｅｔｏｏｔｈユニット１４５２を介して、短距離Ｂｌｕｅｔｏｏｔｈ（登録商標）通信が生じ得る。これらのユニットは、プロセッサ１４１０と所与のリンクを介して通信してよい。
【０１１２】
更に、例えばセルラ又は他の無線広域プロトコルに従う無線広域通信は、ＷＷＡＮユニット１４５６を介して生じ得る。ＷＷＡＮユニット１４５６は、また、ＳＩＭ（subscriber  identity  module）１４５７に結合してよい。更に、位置情報の受信及び使用を可能にするために、ＧＰＳモジュール１４５５も存在してよい。留意すべきことに、図１４に示す実施形態では、ＷＷＡＮユニット１４５６及びカメラモジュール１４５４のような統合キャプチャ装置は、所与のリンクを介して通信してよい。
【０１１３】
統合カメラモジュール１４５４は、リッド（lid）内に組み込むことができる。オーディオ入力及び出力を提供するために、オーディオプロセッサは、デジタル信号プロセッサ（DSP）１４６０により実装できる。DSP１４６０は、プロセッサ１４１０に、高解像度オーディオ（high  definition  audio(HDA)）リンクを介して結合してよい。同様に、DSP１４６０は、筐体内に実装されてよい出力スピーカ１４６３に結合してよい統合コーダ／デコーダ（CODEC）及び増幅器１４６２と通信してよい。同様に、増幅器及びＣＯＤＥＣ１４６２は、マイクロフォン１４６５からオーディオ入力を受信するために結合できる。マイクロフォン１４６５は、一実施形態では、（デジタルマイクロフォンアレイのような）デュアルアレイマイクロフォンにより実装でき、高品質オーディオ入力を提供して、システム内の種々の動作の音声起動制御を可能にする。また、オーディオ出力は、増幅器／ＣＯＤＥＣ１４６２からヘッドフォンジャック１４６４に提供できることに留意する。図１４の実施形態はこれらの特定のコンポーネントと共に示されるが、本発明の範囲はこれに関して限定されないことが理解される。
【０１１４】
実施形態は、多くの異なるシステムタイプに実装されてよい。図１５を参照すると、本発明の一実施形態によるシステムのブロック図が示される。図１５に示すように、マルチプロセッサシステム１５００は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続１５５０を介して結合される第１プロセッサ１５７０及び第２プロセッサ１５８０を含む。図１５に示すように、プロセッサ１５７０及び１５８０の各々は、第１プロセッサコア及び第２プロセッサコア（つまり、プロセッサコア１５７４ａ及び１５７４ｂ、並びにプロセッサコア１５８４ａ及び１５８４ｂ）を含むマルチメディアプロセッサであってよいが、場合によっては、より多くのコアがプロセッサ内に存在してよい。プロセッサの各々は、ＰＣＵ１５７５、１５８５、又は他の電力管理ロジック、及びスロットル回路１５７７、１５８７を含み得る。
【０１１５】
更に図１５を参照すると、第１プロセッサ１５７０は、メモリ制御ハブ（memory  controller  hub(MCH)）１５７２、及びポイントツーポイント（Ｐ−Ｐ）インタフェース１５７６及び１５７８を更に含む。同様に、第２プロセッサ１５８０は、ＭＣＨ１５８２及びＰ−Ｐインタフェース１５８６及び１５８８を含む。図１５に示されるように、ＭＣＨ１５７２及び１５８２は、プロセッサをそれぞれのメモリ、つまりメモリ１５３２及びメモリ１５３４に結合する。これらのメモリは、それぞれのプロセッサにローカルに取り付けられたシステムメモリ（例えば、ＤＲＡＭ）の部分であってよい。第１プロセッサ１５７０及び第２プロセッサ１５８０は、それぞれＰ−Ｐインタフェース１５６２及び１５６４を介してチップセット１５９０に結合されてよい。図１５に示すように、チップセット１５９０は、Ｐ−Ｐインタフェース１５９４及び１５９８を含む。
【０１１６】
更に、チップセット１５９０は、Ｐ−Ｐ相互接続１５３９によりチップセット１５９０を高性能グラフィックエンジン１５３８に結合するインタフェース１５９２を含む。また、チップセット１５９０は、インタフェース１５９６を介して第１バス１５１６に結合されてよい。図１５に示すように、種々の入力／出力（Ｉ／Ｏ）装置１５１４は、第１バス１５１６を第２バス１５２０に結合するバスブリッジ１５１８と一緒に、第１バス１５１６に結合されてよい。種々の装置は、一実施形態では、例えば、キーボード／マウス１５２２、通信装置１５２６、及びコード１５３０を含み得るディスクドライブ又は他の大容量記憶装置のようなデータ記憶ユニット１５２８を含む、第２バス１５２０に結合されてよい。更に、オーディオＩ／Ｏ１５２４は、第２バス１５２０に結合されてよい。実施形態は、スマートセルラ電話機、タブレットコンピュータ、ネットブック、Ｕｌｔｒａｂｏｏｋ（登録商標）、等のようなモバイル装置を含む他の種類のシステムに組み込むことができる。
【０１１７】
図１６を参照すると、一実施形態によるシステムのブロック図が示される。より具体的には、図１６には、携帯電話機、タブレットコンピュータ、ラップトップコンピュータ等のような小型ポータブル装置から、デスクトップシステム、サーバコンピュータ等のようなより大きなシステムにまで及ぶ任意の種類のコンピューティングシステムであってよいシステム１６００の一部が示される。ここで標準的な環境の実施形態では、コンピューティングシステムは、少なくとも時にはバッテリに基づく電源により電力を供給されてよい。その結果、プラットフォーム電気障害が起こり得る。本発明の範囲はこれに関して限定されないが、このような電気障害は、電圧レギュレータの低電圧ロックアウトレベルを下回るバッテリ電圧低下が含まれることがある。別の例は、バッテリ短絡回路保護障害であってよい。プラットフォームイベントは、ＡＣ電源で生じ得る。例えば、ＡＣアダプタは、過電流及び短絡回路保護メカニズムも有する。１つには、ＡＣアダプタは、特定の閾値に達すると出力電流を制限し、電圧を低下させる。電圧が特定の閾値を下回ると、ＡＣアダプタはオフになる。復旧するために、ＡＣアダプタは、標準的には、壁からプラグを外される。更に、プログラマブル電源は、標準的には、負荷が閾電流より多くを引き出すと、電源に電流を制限するよう要求し、電圧が閾電圧を下回るとオフになる。このような電気障害を防ぐために、電力管理集積回路（power  management  integrated  circuit(PMIC)）のようなプラットフォームエージェントは、通知を発行してよい。プラットフォームイベントのこの通知は、電気障害のような起こり得る不利なプラットフォームイベントの検出に応答して、プラットフォームイベント信号のトリガとして効力があってよい。ここに記載するように、このプラットフォームイベント信号は、プロセッサ内のスロットルを生じるために使用されてよい。
【０１１８】
具体的には、図１６に示すように、システム１６００は、マルチコアプロセッサ又は他のＳｏＣであってよいプロセッサ１６１０を含む。ここで実施形態では、プロセッサ１６１０は、プロセッサパッケージとして実装されてよく、１つ以上の半導体ダイを含んでよい。図示のように、プロセッサ１６１０は、複数の処理要素１６２０１〜１６２０ｎを含む。幾つかの例では、処理要素１６２０は、同種の処理コアのような同種処理要素であってよい。しかしながら、多くの実施形態では、コア、グラフィックプロセッサ、制御部、専用機能ユニット、等を含む異種処理要素１６２０が存在してよい。幾つかの例では、処理要素１６２０の集合は、共通の又は独立した性能状態で動作し得る、所謂、ドメインにグループ化されてよい。
【０１１９】
更に図１６に示すように、プロセッサ１６１０は、スロットル回路１６３０も含む。図示の実施形態では、スロットル回路１６３０は、複数の個別スロットルエージェント１６３０１〜１６３０ｎを含んでよい。図示のように、スロットル回路１６３０は、対応する処理要素１６２０に関連付けられた各スロットルエージェント１６３０を有する分散型ハードウェア回路であってよい。しかしながら、本発明の範囲はこれに関して限定されず、他の実施形態では、１：１以外の対応が可能であることが理解される。実施形態では、スロットル回路１６３０及びその構成要素であるスロットルエージェント１６３０１〜１６３０ｎは、ハードウェア回路として実装されてよい。さらに、図１６に示す実装では、各スロットル回路１６３０は、対応する処理要素１６２０に関連付けられるが、それとは別個で有り、幾つかの例では、所与のスロットルエージェントは、対応する処理要素１６２０の中に含まれてよい。
【０１２０】
続けて図１６を参照すると、電力目標エージェント（power  target  agent(PTA)）１６４０、電力管理エージェント（power  management  agent(PMA)）１６５０、及び使用モニタ１６６０が更に示される。プロセッサ１６１０に関して外部コンポーネントとして示されるが、幾つかの実施形態では、ＰＴＡ１６４０、ＰＭＡ１６５０、及び使用モニタ１６６０は、プロセッサ１６１０の１つ以上の処理エンジン１６２０上で実行するファームウェア及び／又はソフトウェアで少なくとも部分的に実装されてよい。例えば、ＰＴＡ１６４０は、オペレーティングシステム又は他のシステムスケジューラの中に実装されてよい。従って、ＰＴＡ１６４０は、電源能力（例えば、充電能力）の状態に関する情報を受信する。また、ＰＭＡ１６５０は、幾つかの実施形態では、ファームウェア又は電力管理マイクロコードであってよく、処理要素１６２０のうちの１つ以上で実行してよい。一例として、専用コア又はマイクロコントローラはプロセッサ１６１０の電力消費を管理するために、ＰＭＡ１６５０を実行するために使用される。そして、使用モニタ１６６０も、オペレーティングシステム又は他のシステムスケジューラの中に実装されてよく、ユーザ動作をモニタし、ＰＭＡ１６５０にヒント情報を提供する。使用モニタ１６６０は、電力（バッテリ実行時）及び性能のプロセッサ利用率を最適化してよい。留意すべきことに、一実施形態では、使用モニタ１６６０は、電力目標エージェント１６４０に、纏められて（bundled）よいが、これらの２つのエージェントは異なる機能を実行する。
【０１２１】
更に図１６に示すように、システム１６００は、プラットフォームモニタ１６７０を更に含む。プラットフォームモニタ１６７０は、プラットフォームイベントをモニタし、スロットルをトリガすべきプラットフォームイベントの検出に応答して、スロットル信号をアサートするよう構成されてよい。一例として、プラットフォームモニタ１６７０は、臨界電圧レールを閾値と比較するハードウェア回路を含んでよい。このようなレール電圧が閾値を下回ると、プラットフォームモニタ１６７０は、スロットル信号を出力するよう構成されてよい。勿論、異なる実装が可能であるが、一実施形態では、プラットフォームモニタ１６７０は、電力管理集積回路（power  management  integrated  circuit(PMIC)）、充電制御部、又は他のプラットフォームハードウェアコンポーネントとして実装されてよい。
【０１２２】
通常動作中、ＰＴＡ１６４０は、入力電力能力情報を受信し、それに少なくとも部分的に基づき、プラットフォームイベントチュにプロセッサ１６１０に許可される最大電力消費レベルであるパッケージスロットル電力閾値又は目標を決定してよい。留意すべきことに、このパッケージスロットル電力目標は、プロセッサの所与の電力目標又は電力量より少なくてよい。幾つかの例では、プロセッサは、複数の電力レベルにより構成されてよい。このような電力レベルは、１つ以上の低い、長期間の電力量又は限度を含んでよい（平均して、プロセッサはこれを超えない）。プロセッサは、より高い、長期間の電力量を超えてよい瞬間電力量により更に構成されてよい。幾つかの実施形態では、各構成された電力量は、関連するスロットル電力目標も有してよいことが理解される。
【０１２３】
入力電力能力情報、又はプラットフォーム装置上の高負荷の別の通知のような他のプラットフォーム情報から、ＰＴＡ１６４０は、システム１６００のバッテリ電源の利用可能充電量に少なくとも部分的に基づき、パッケージスロットル電力閾値を決定してよい。別の通知の一例として、モデムが遠方の基地局へ送信するために高電力スパイクで動作すべきとき、モデムは、プロセッサを瞬間的にスロットルして信号をアサートしてよい。留意すべきことに、実施形態では、電力目標エージェント１６４０が更新イベントの入力電力状態をモニタし、その間、プラットフォームは、ＡＣ電源により電力供給されている。また更に、モニタした電力状態に少なくとも部分的に基づき、ＰＴＡ１６４０は、パッケージスロットル電力目標を先取り的に（proactively）設定してよい。ＰＴＡ１６４０は、パッケージスロットル電力目標を、スロットル回路１６３０のスロットルエージェントへ送信してよい。
【０１２４】
また、電力管理エージェント１６５０は、使用モニタ１６６０により提供されるヒント情報に少なくとも部分的に基づき、変換情報を生成して、スロットルエージェントがパッケージスロットル電力閾値を処理要素スロットル電力閾値又は目標に変換できるようにしてよい。一例として、ヒント情報は、異なる種類の処理要素１６２０で実行されている負荷に関する優先度ヒントに対応してよい。一実施形態では、ヒント情報は、電力管理エージェント１６５０がプロセッサ１６１０に適するパラメータを選択するための数値である。このようなヒント情報は、抽象概念であってよい。その結果、ＯＳ又は使用モニタ１６６０は、特定のプロセッサ（その役割は電力管理エージェント１６５０により行われる）に結びつけられない。一実施形態では、使用モニタ１６６０は、ユーザ動作をモニタし、ヒント情報を分子（numerator）として提供するよう構成されてよい。例えば、２つの異なる種類のユーザ活動、つまりファイルコピーとゲーム活動を想定する。この構成では、ユーザモニタ１６６０は、ファイルコピー活動の第１ヒント値（Ｈｉｎｔ−１）及びゲーム活動の第２ヒント値（Ｈｉｎｔ−２）を有するヒント情報を出力してよい。このヒント情報に少なくとも部分的に基づき、ＰＭＡ１６５０は、変換情報を、例えば制御信号の形式で、対応するスロットル回路１６３０に提供してよい。電力管理エージェント１６５０は、この特定のヒント情報に応答して、「Ｈｉｎｔ−１」が受信された場合には、スロットルエージェント１６３０１の変換比を１０％に設定し、スロットルエージェント１６３０２の変換比を９０％に設定し、「Ｈｉｎｔ−２」が受信された場合には、スロットルエージェント１６３０１の変換比を５０％に設定し、スロットルエージェント１６３０２の変換比を５９０％に設定してよい。また、各スロットルエージェント１６３０は、この変換情報及びパッケージスロットル電力閾値を用いて、１つ以上の関連する処理要素１６２０の適切なスロットル動作点を決定する。
【０１２５】
留意すべきことに、パッケージスロットル電力目標及び個別処理要素スロットル電力目標を設定する上述の動作は、通常動作の間に、例えば所与の時間期間又は実行ループに従い、先取り的に生じてよい。次に、動作中、プロセッサスロットルをとりがすべき所与のプラットフォームイベントが検出されると、個々の処理要素１６２０をスロットルするための高速で低遅延の、ハードウェアに基づく動作が生じる。つまり、プラットフォームモニタ１６７０は、ＡＣ電源からバッテリ電源への動作電力の切り替えのような、プラットフォーム内の変化を識別すると、プラットフォームイベントが生じたことを示すために、スロットル信号をスロットル回路１６３０へ送信する。そして、このスロットル信号に応答して、個々のスロットルエージェント１６３０は、直ちに対応する処理要素１６６２０に、対応するスロットル動作点より上で動作しないようにさせ、低遅延スロットルを可能にする。図１６の実施形態では、上位レベルで示されたが、多くの変形及び代替が可能であることが理解される。
【０１２６】
図１７を参照すると、本発明の一実施形態による方法のフロー図が示される。より具体的には、方法１７００は、ユーザモニタによりユーザ活動をモニタするとともに、一実施形態による電力管理エージェントによりプラットフォーム電力消費を制御する方法である。従って、方法１７００は、ハードウェア回路、ソフトウェア、ファームウェア及び／又はそれらの組み合わせにより実行されてよい。特定の実施形態では、電力目標エージェント及び使用モニタは、少なくとも部分的にソフトウェアとして実装されてよく、ある特定の実施形態では、エージェントは、オペレーティングシステム又は他の管理ソフトウェア内に含まれてよい。
【０１２７】
図示のように、方法１７００は、入力電源能力変化の通知を受信することにより開始する（ブロック１７１０）。入力電源能力変化は、バッテリ能力又はＡＣ電源状態であり得る。バッテリ能力は、バッテリの充電状態、温度、又は経年劣化の影響により変化してよい。ＡＣ電源は、プラグインされたポートの数に依存して提供電力（advertised  power）の変化するＵＳＢ電力供給ハブであってよい。このような入力電力能力変化の指示は、ＰＭＩＣ、バッテリ残量ゲージ、ＵＳＢ電力供給制御部、バッテリ充電回路、電圧レギュレータ、等のｙほうな１つ以上のプラットフォームエンティティから、プラットフォーム目標エージェントに提供されるルーチン通知であってよい。例えば、バッテリ能力（例えば、充電割合）の周期的通知が提供されてよい。或いは、他の例では、電力目標エージェントは、この情報をルーチン的にポーリングしてよい。
【０１２８】
任意のイベントにおいて、制御はブロック１７１０からブロック１７２０へ渡り、ブロック１７２０で、パッケージスロットル電力目標が、この能力変化に少なくとも部分的に基づき設定されてよい。より具体的には、ここに記載されるように、バッテリの充電能力に少なくとも部分的に基づくピーク電力閾値が設定され得る。１つの代表的な例としてえ、プラットフォームがバッテリにより電力を供給されるとき、電力目標エージェントは、パッケージスロットル電力目標を、バッテリが８０％充電を有するとき５０ワット（Ｗ）のレベルに、バッテリが２０％充電を有するとき３０Ｗに、設定してよい。留意すべきことに、プラットフォームはＡＣ電源により供給されている間、電力目標エージェントは、パッケージスロットル電力目標を、バッテリが８０％充電を有するとき５０Ｗに設定し又はプログラミングし、バッテリが２０％充電を有するとき３０Ｗにプログラミングするよう構成されてよい（上述の代表例による）。ブロック１７３０で、このパッケージスロットル電力目標は、構成記憶に格納されてよい。例えば、この情報は、プロセッサの構成レジスタのスロットル電力閾値フィールドに格納されてよい。更に、電力管理エージェントは、このパッケージスロットル電力目標をスロットルエージェントへ送信してよい。
【０１２９】
電力目標エージェント（又はオペレーティングシステムの別の部分又は他のシステムソフトウェア）は、スケジューリング活動も実行してよい。従って、図１７に更に示されるように、ブロック１７４０で、電力目標エージェントは、処理要素に負荷をスケジューリングしてよい。例えば、計算集約型の負荷はコア処理要素にスケジューリングされてよく、グラフィック集約型の負荷はグラフィック処理要素にスケジューリングされてよく、ネットワーク負荷はインタフェース制御部にスケジューリングされてよい、等である。ブロック１７５０で、使用モニタは、ヒント情報を電力管理エージェントに提供してよい。より具体的には、このヒント情報は、異なる種類の処理要素にスケジューリングされている負荷に関する優先度情報に関連してよい。例えば、計算集約型の負荷に対して、コア処理要素は、より高い優先度を有してよく、従って、このヒント情報は同様に示してよい。また、グラフィック集約型の負荷に対して、グラフィック処理要素は、より高い優先度を有してよく、従って、この例では、これらの処理要素の対応するより高い優先度のヒント情報が提供されてよい。本発明の範囲はこれに関して限定されず、一実施形態では、このヒント情報は変換比、等の形式であってよい。図１７の実施形態では、上位レベルで示されたが、多くの変形及び代替が可能であることが理解される。
【０１３０】
図１８を参照すると、本発明の別の実施形態による方法のフロー図が示される。より具体的には、図１８に示すように、方法１８００は、ここに記載されるような電力管理エージェントにより、プロセッサ内の電力消費を制御する方法である。従って、方法１８００は、ハードウェア回路、ソフトウェア、ファームウェア及び／又はそれらの組み合わせにより実行されてよい。特定の実施形態では、電力管理エージェントは、少なくとも部分的にハードウェア回路及びファームウェアにより実装されてよく、１つの特定の実施形態では、電力管理エージェントは、電力管理コードを実行する専用コア又はマイクロコントローラのような専用処理要素であってよい。
【０１３１】
図示のように、方法１８００は、電力量及び負荷に少なくとも部分的に基づき、各処理要素の動作点を決定するステップにより開始する（ブロック１８１０）。例えば、プロセッサが、プロセッサの動作し得る（及びプロセッサの構成記憶に格納されてよい）ＴＤＰレベル又は他の長期間電力レベルのような所与の電力量により構成されると仮定する。また、電力管理エージェントは、異なる処理要素上で実行されるべき負荷に関する情報を有してよい。従って、一実施形態では、電力管理エージェントは、電力及び性能の所望の組み合わせを供給するための、ホストソフトウェアからの要求に少なくとも部分的に基づき、各処理要素の動作点を決定するよう構成されてよい。従って、電力管理エージェントは、処理要素の各々へのこの合計電力量の割り当て又は予算計上を実行してよい。例えば、全ての処理要素が等しい負荷を実行するとき、処理要素の各々に対して共通動作点が決定されてよい。代わりに、より標準的なシナリオでは、幾つかの処理要素は、他の処理要素よりも、高い負荷を有してよく、及び／又は高い電力を消費してよい。従って、非対称動作点（例えば、他の可能性のあるパラメータの中でも特に、動作電圧及び動作周波数でそれぞれ構成される）が、各処理要素について決定されてよい。その後、ブロック１８２０で、これらの動作点は、個々の処理要素へ送信されてよい。この動作点情報に応答して、処理要素は、このような動作点で動作させられる。ブロック１８１０及び１８２０のこれらの動作は、プラットフォームの通常動作中に繰り返し行われてよいことが理解される。
【０１３２】
また、図１８を参照すると、菱形１８３０で、ヒント情報が（例えば、使用モニタから）受信されたか否かが決定される。このようなヒント情報が受信されていないと決定された場合、制御は次に菱形１８４０へ渡り、更新期間が終了したか否かを決定する。この更新期間は、電力管理エージェントが電力量及び現在負荷を分析して、動作点を更新すべきか否かを決定し得る期間である。この更新期間が終了すると、制御は上述のブロック１８１０に戻る。
【０１３３】
また、図１８を参照すると、代わりに、更新されたヒント情報が受信されたと決定された場合、制御はブロック１８５０へ渡る。ブロック１８５０で、変換が決定されてよい。より具体的には、この変換は、パッケージスロットル電力目標を取り入れ、それを異なる処理要素の間で適切に割り当てる何らかの形式の動作である。実施形態では、電力管理エージェントは、この変換を、使用モニタから受信したヒント情報に少なくとも部分的に基づき実行してよい。このように、利用可能な電力量を異なる処理要素に、そられらの優先度、臨界、ユーザ有益性、等に基づき、より公平に割り当てることが生じ得る。
【０１３４】
一実施形態では、パッケージから要素へのスロットル電力の変換は、倍率を用いてよい。１つのこのような例では、プロセッサは、２つの処理要素（コア及びグラフィックプロセッサ）を含むと仮定し、また、パッケージスロットル電力閾値が５０Ｗであると仮定する。更に、例示的目的で、負荷がコア集約型であるとき（例えば、ホストソフトウェアがファイルをコピーする）、電力管理エージェントは、コアに対して９０％及びグラフィックプロセッサに対して１０％の比を設定するために、変換情報を生成する。この比又は倍率の構成によると、処理要素の結果として生じる電力量は、コアについて４５Ｗ及びグラフィックプロセッサについて５Ｗのレベルに対応する。代わりに、負荷（例えば、ホストソフトウェアが画像をレンダリングする）が、電力管理エージェントがコアに対して２０％及びグラフィックプロセッサに対して８０％の比を設定するものであると仮定する。この比又は倍率の構成によると、処理要素の結果として生じる電力量は、コアについて１０Ｗ及びグラフィックプロセッサについて４０Ｗのレベルに対応する。
【０１３５】
留意すべきことに、各スロットルエージェントによｒ動的に計算される予算計上を定めるために電力管理エージェントが変換情報を提供できるようにするために、実施形態は異なる技術を使用してよい。従って、この変換を実行する異なる方法が可能であるが、幾つかの例では、割り当ては、処理要素の各々に関連付けられた比情報に従い生じてよい。或いは、電力管理エージェントにより実行された変換動作に基づき、ポインタ情報が提供されてよい。また、ポインタ情報は、動作点情報を含むテーブルへのアクセスを可能にするために使用される。一例では、変換情報が比情報を含み、各処理要素に対する比の値（例えば、計数）の設定は、使用モニタから受信したヒント情報に少なくとも部分的に基づいてよい。最後に、図１８を更に参照すると、制御は、ブロック１８６０に渡り、変換情報がスロットルエージェントへ送信されてよい。図１８の実施形態では、上位レベルで示されたが、多くの変形及び代替が可能である。
【０１３６】
図１９を参照すると、本発明の更に別の実施形態による方法のフロー図が示される。より具体的には、方法１９００は、一実施形態に従い、スロットルエージェントを用いて処理要素電力スロットル限界を設定する方法である。従って、方法１９００は、ハードウェア回路、ソフトウェア、ファームウェア及び／又はそれらの組み合わせにより実行されてよい。特定の実施形態では、方法１９００を実行するために１つ以上のハードウェア回路が提供されてよい（例えば、それぞれが少なくとも１つの処理要素に関連付けられる複数の個別ハードウェア回路を有する分散型スロットル回路）。留意すべきことに、方法１９００は、個々のプラットフォーム要素スロットル電力目標を設定するために使用され、この目標設定が非決定的方法で実行され得るとき、このような動作は実際のスロットル動作の低遅延起動に影響を与えないので、所謂スローループに従い実行されてよい。
【０１３７】
図１９に示すように、方法１９００は、電力目標エージェントからパッケージスロットル電力目標を、電力目標エージェントから変換情報を受信することにより開始する（ブロック１９１０）。図１９には単一の動作が示されるが、これらの２つの異なる値は、非同期的に（２つの異なるエンティティから）、所与の時間期間に従い、受信されてよいことが理解される。任意のイベントにおいて、制御はブロック１９２０へ渡り、処理要素スロットル電力目標が、これら２つの値に少なくとも部分的に基づき決定されてよい。一例では、スロットルエージェントは、処理要素スロットル電力目標（Ｐｅｌｅｍｅｎｔ＿ｔｈｒｏｔｔｌｅ）を、（電力目標エージェントにより設定されたような）パッケージスロットル電力目標（Ｐｐａｃｋａｇｅ＿ｔｈｒｏｔｔｌｅ）及び（電力目標エージェントにより与えられるような）計数（ｃｐｏｗｅｒ＿ｍａｎａｇｅｍｅｎｔ）の関数として、例えば次式に従い計算する：Ｐｅｌｅｍｅｎｔ＿ｔｈｒｏｔｔｌｅ＝ｆ（Ｐｐａｃｋａｇｅ＿ｔｈｒｏｔｔｌｅ，ｃｐｏｗｅｒ＿ｍａｎａｇｅｍｅｎｔ）。幾つかの実施形態では、スロットルエージェントがパッケージから要素へスロットル電力閾値を変換するための特定のタイミング要件は存在しなくてよい。これは、電力目標エージェントが、特定のプラットフォームイベント（例えば、バッテリ状態の変化）にのみ応答して、スロットル電力を設定し得るからである。これは、標準的に、数秒程度の遅延を有する。更に、電力管理エージェントは、ホストソフトウェア活動種類に合わせて最適化してよいことに留意する。これは、標準的に、ハード的タイミング要件を有しない。
【０１３８】
別の実施形態では、スロットルエージェントは、（プラットフォームファームウェア、例えばＢＩＯＳ（basic  input/output  system）により提供されてよい）ルックアップテーブルを維持するよう構成されてよい。本実施形態では、電力管理エージェントは、パッケージスロットル電力閾値の所与のセットについて、ルックアップテーブルへのポインタを提供する。
【０１３９】
更に図１９を参照すると、制御は次にブロック１９３０に渡り、処理要素のスロットル動作点が、この処理要素のスロットル電力目標に基づき決定されてよい。一例として、スロットルエージェントは、対応する動作点（例えば、電圧／周波数ペア）を識別するために、この処理要素のスロットル電力目標に基づき、ローカルルックアップテーブルにアクセスしてよい。次に、ブロック１９４０で、スロットル動作点は、所与の記憶位置に、例えばスロットルエージェントの内部に格納されてよい。一例として、スロットルエージェントは、決定したスロットル動作点を格納するために構成記憶を含んでよい。決定したスロットル動作点は、後述するように、スロットル指示が受信されるとスロットル活動を制御するために、読み出され使用されてよい。
【０１４０】
留意すべきことに、ここで実施形態によると、異なる処理要素の結果として生じる動作点は、所与の負荷について、処理要素の優先度に少なくとも部分的に基づき、非対称レベルであってよい。また更に、少なくとも１つの処理要素（及び場合によっては複数の処理要素）が、最小動作点より高いスロットル動作点で動作させられてよいことが理解される。つまり、バッテリ能力（例えば、充電レベル）に基づき、スロットル動作点は、標準的なスロットル動作点（つまり、プロセッサの構成記憶に格納されてよい最低動作点）より高くてよい。一例として、この最低動作点は、プロセッサの動作し得る最低周波数及び電圧である、低周波数モードに対応してよい。図１９の実施形態では、上位レベルで示されたが、多くの変形及び代替が可能であることが理解される。
【０１４１】
実施形態では、スロットルエージェントは、計算した処理要素スロットル電力目標を用いて、１つ以上の関連する処理要素を所与の動作点で動作させてよい。コア又はグラフィックプロセッサでは、動作点は、動作電圧／周波数ペアに変換されてよい。入力／出力（ＩＯ）ポートのような他の処理要素については、動作点は、ダイナミックリンク幅、帯域幅ｍ、等のような他の動作パラメータに変換されてよい。留意すべきことに、スロットルエージェントは、プラットフォーム電気障害を直ちに回避するために、スロットルを実行するよう構成されてよい。幾つかの例では、処理要素は、（例えば、ハードウェア制限により）示されたスロットル動作点に直ちに変換しない場合、最適なスロットル状態にロックする前に、先ず、安全な状態（例えば、現在の動作点より低いがスロットル動作点より高い中間動作点）に遷移してよい。
【０１４２】
図２０を参照すると、本発明の更に別の実施形態による方法のフロー図が示される。より具体的には、図２０の方法２０００は、一実施形態に従い、スロットルエージェントを用いて処理要素電力をスロットル（スロットリング、throttling）する方法である。従って、方法２０００は、ハードウェア回路、ソフトウェア、ファームウェア及び／又はそれらの組み合わせにより実行されてよい。ここで実施形態によると、方法２０００は、所与のハードウェア回路、つまり所与のスロットルエージェントにより実行されてよい。ハードウェア回路（及び場合によっては、１つ以上の処理要素に関連付けられた専用ハードウェア回路）を使用することにより、スロットル動作は非常に低遅延で生じ得る。従って、方法２０００は、低遅延スロットルを生じさせるために、高速ループに従い実行されてよい。例えば、一実施形態では、スロットルエージェントは、プラットフォームイベントの指示からサブマイクロ秒の遅延ウインドウの範囲内でスロットルを生じさせるよう構成されてよい。留意すべきことに、実施形態における分散型ハードウェア回路の使用により、適切なスロットル点を決定し及び処理要素を制御するＯＳ又は他のシステムソフトウェア（及び／又は電力管理エージェントのような電力制御回路／ファームウェア）のオーバヘッドが、回避できる。
【０１４３】
図２０に示すように、方法２０００は、スロットル動作点を読み出すことにより開始する（ブロック２０１０）。上述のように、このスロットル動作点は、スロットルエージェントの構成記憶に格納されてよい。次に、菱形２０２０で、例えばプラットフォームモニタからスロットル信号が受信されたか否かが決定される。ここで説明されるように、このスロットル信号は、従って、プロセッサがパッケージスロットル電力閾値より高くない電力レベルで動作するよう今まさに制御される、スロットルエージェントへの指示である。従って、（例えば）ＡＣ電源が除去されると、プラットフォームイベントの指示が生じる（例えばスロットル信号）。この指示に応答して、プロセッサは、全体の電力消費を予めプログラミングされた電力目標にまでスロットルするよう構成されてよい（例えば、電力目標エージェントにより設定されるように、８０％充電で５０Ｗ、２０％で３０Ｗ）。
【０１４４】
スロットル信号が受信されたと決定された場合、制御はブロック２０３０に渡り、処理要素は、スロットル動作点で動作させられる。例えば、処理要素が内部クロック生成部及び関連する電圧レギュレータを含む例では、スロットルエージェントは、動作点コマンドを送信して、１つ以上の周波数及び動作電圧を、処理要素内部で更新させる。他の例では、スロットルエージェントは、関連するクロック生成部、電圧レギュレータ、リンク状態機械、等のような他の制御コンポーネントと通信して、適切な動作パラメータを制御してよい。その結果、処理要素は、処理要素スロットル電力閾値より高くない電力レベルで動作する。図２０の実施形態では、上位レベルで示されたが、多くの変形及び代替が可能であることが理解される。
【０１４５】
以下の例は、更なる実施形態に関連する。
【０１４６】
一例では、プロセッサは、動作を実行する複数の処理要素と、前記複数の処理要素に結合され、前記複数の処理要素の電力消費を制御するＰＭＡと、前記ＰＭＡに結合されるスロットル回路と、を含む。前記スロットル回路は、それぞれが前記複数の処理要素のうちの１つに関連付けられる複数のスロットルエージェントを含んでよく、前記ＰＭＡは前記スロットル回路に変換情報を通信し、前記複数のスロットルエージェントの各々は、前記変換情報に少なくとも部分的に基づき、前記複数の処理要素のうちの関連付けられた１つのスロットル電力レベルを決定する。
【０１４７】
一例では、前記変換情報は、比情報を含み、前記ＰＭＡは、使用モニタから受信したヒント情報に少なくとも部分的に基づき、前記変換情報を決定し、前記ヒント情報は、前記複数の処理要素の相対優先度を示す。
【０１４８】
一例では、前記変換情報は、ポインタ情報を含み、前記複数のスロットルエージェントのうちの第１スロットルエージェントは、前記ポインタ情報の第１ポインタにより、ルックアップテーブルにアクセスして、第１処理要素の第１スロットル電力レベルを決定する。
【０１４９】
一例では、前記第１スロットルエージェントは、前記第１スロットル電力レベルに基づき、前記第１処理要素の第１動作点を決定し、動作点更新を前記第１処理要素へ送信して、前記第１処理要素に前記第１動作点で動作させる。
【０１５０】
一例では、前記第１動作点は、最小動作点より大きい。
【０１５１】
一例では、前記電力目標エージェントは、バッテリの充電能力の変化に少なくとも部分的に基づき、前記プロセッサのパッケージスロットル電力レベルを設定する。
【０１５２】
一例では、プラットフォームモニタは、プラットフォームイベントに応答して、前記スロットル回路にスロットル信号を通信し、前記プラットフォームイベントは、前記プラットフォームのバッテリ動作への切り替えを含み、前記電力目標エージェントは、前記パッケージスロットル電力レベルを前記スロットル回路へ更に通信する。
【０１５３】
一例では、前記パッケージスロットル電力レベルは、前記プロセッサの熱設計電力より小さく、前記スロットル回路は、前記複数の処理要素のうちの少なくとも幾つかに、最小動作点より大きい動作点で動作させる。
【０１５４】
別の例では、方法は、
複数の処理回路を含むシステムオンチップ（ＳｏＣ）の電力制御部で、プラットフォームイベントに応答して、ヒント情報に少なくとも部分的に基づき、前記ＳｏＣのスロットル電力閾値の変換情報を決定するステップと、
前記複数のスロットルエージェントに、前記変換情報に少なくとも部分的に基づき、前記複数の処理回路のうちの少なくとも１つの動作点を、最小動作点より大きいスロットルレベルに更新させるために、前記ＳｏＣの複数のスロットルエージェントへ前記変換情報を送信するステップであって、前記複数のスロットルエージェントの各々は、前記複数の処理回路のうちの少なくとも１つに関連付けられる、ステップと、を含む。
【０１５５】
一例では、前記方法は、使用モニタから前記ヒント情報を受信するステップであって、前記ヒント情報は、前記複数の処理回路に関する優先度情報を含む、ステップ、を更に含む。
【０１５６】
一例では、前記方法は、
前記複数のスロットル回路で、変換情報を受信するステップと、
前記複数のスロットルエージェントのうちの第１スロットルエージェントにより、前記複数の処理回路のうちの第１処理回路に、前記変換情報のうちの第１変換要素に基づき、第１動作点で動作させるステップと、
前記複数のスロットルエージェントのうちの第２スロットルエージェントにより、前記複数の処理回路のうちの第２処理回路に、前記変換情報のうちの第２変換要素に基づき、第２動作点で動作させるステップであって、前記第２動作点は前記第１動作点より大きく、前記第２処理回路は前記ヒント情報に従い前記第１処理回路より高い優先度を有する、ステップと、を更に含む。
【０１５７】
一例では、前記変換情報を決定するステップは、前記ヒント情報に少なくとも部分的に基づき、それぞれが前記複数の処理回路のうちの１つに関連付けられる複数の係数を生成するステップを含む。
【０１５８】
一例では、前記方法は、
前記複数のスロットルエージェントのうちの第１スロットルエージェントで、前記複数の係数のうちの第１係数及び前記ＳｏＣのスロットル電力限界に基づき、前記複数の処理回路のうちの第１処理回路の第１スロットル電力レベルを計算するステップと、
前記第１処理回路に、前記第１スロットル電力レベルに基づき、第１動作点で動作させるステップであって、前記第１動作点は前記最小動作点より大きい、ステップと、を更に含む。
【０１５９】
一例では、前記方法は、
前記第１処理回路に、中間動作点で動作させるステップであって、前記中間動作点は、前記第１処理回路が動作していた前の動作点より低く、前記第１動作点より高い、ステップと、
前記第１処理回路に、前記第１処理回路のハードウェア限界に達した後に、前記第１動作点で動作させる、ステップと、を更に含む。
【０１６０】
一例では、前記変換情報を決定するステップは、前記ヒント情報に少なくとも部分的に基づき、それぞれが前記複数の処理回路のうちの１つに関連付けられる複数のポインタを生成するステップを含む。
【０１６１】
一例では、前記方法は、
前記複数のスロットルエージェントのうちの第１スロットルエージェントにより、前記複数のポインタのうちの第１ポインタを用いて、テーブルにアクセスして、前記複数の処理回路のうちの第１処理回路の第１スロットル電力レベルを取得するステップと、
前記第１処理回路に、前記第１スロットル電力レベルに基づき、第１動作点で動作させるステップであって、前記第１動作点は前記最小動作点より大きい、ステップと、を更に含む。
【０１６２】
別の例では、命令を含むコンピュータ可読媒体は、上述の例のいずれかの方法を実行するためのものである。
【０１６３】
別の例では、データを含むコンピュータ可読媒体は、上述の例のいずれかの方法を実行するよう少なくとも１つの集積回路を製造するために、少なくとも１つの機械により使用されるためのものである。
【０１６４】
別の例では、機器は、上述の例のいずれかの方法を実行する手段を含む。
【０１６５】
更に別の例では、システムは、
前記システムに電力を供給する第１電源と、
前記システムに電力を供給する第２電源であって、前記第２電源はバッテリを含む、第２電源と、
前記第２電源を充電する充電回路と、
プロセッサに結合される電力管理集積回路であって、前記電力管理集積回路は、前記第１電源から前記第２電源への電力の切り替えに応答して、前記プロセッサにスロットル信号を送信し、前記第２電源及び前記充電回路のうちの少なくとも１つは、前記バッテリの充電能力を前記プロセッサに通信する、電力管理集積回路と、
前記プロセッサと、を含む。
【０１６６】
一例では、前記プロセッサは、
第１命令を実行する少なくとも１つのコアと、
第２命令を実行する少なくとも１つのグラフィックプロセッサと、
前記少なくとも１つのコア及び前記少なくとも１つのグラフィックプロセッサに結合される電力制御部であって、前記プロセッサの電力量に従い、前記少なくとも１つのコア及び前記少なくとも１つのグラフィックプロセッサの電力消費を制御する、電力制御部と、
を含んでよく、電力目標エージェントは、前記充電能力に少なくとも部分的に基づき、前記プロセッサのスロットル電力量を先取り的に決定する。また、前記電力制御部は、前記少なくとも１つのコア及び前記少なくとも１つのグラフィックプロセッサの優先度に基づき、変換情報を先取り的に決定する。前記プロセッサは、前記電力制御部に結合されるスロットル回路であって、前記スロットル回路は、前記少なくとも１つのコアの第１スロットル電力量及び前記少なくとも１つのグラフィックプロセッサの第２スロットル電力量を、前記変換情報及び前記スロットル電力量に少なくとも部分的に基づき先取り的に決定し、前記スロットル信号に応答して、前記少なくとも１つのコアを前記第１スロットル電力量に基づき第１動作点で動作させ、前記少なくとも１つのグラフィックプロセッサを前記第２スロットル電力量に基づき第２動作点で動作させる、スロットル回路を更に含んでよい。
【０１６７】
一例では、前記変換情報は、比情報を含み、前記電力制御部は、使用モニタから受信したヒント情報に少なくとも部分的に基づき、前記変換情報を決定し、前記ヒント情報は、前記少なくとも１つのコア及び前記少なくとも１つのグラフィックプロセッサの相対優先度を示す。
【０１６８】
一例では、前記変換情報は、ポインタ情報を含み、前記スロットル回路は、前記ポインタ情報のうちの第１ポインタによりルックアップテーブルにアクセスして、前記少なくとも１つのコアの前記第１スロットル電力量を決定し、前記ポインタ情報のうちの第２ポインタにより前記ルックアップテーブルにアクセスして、前記少なくとも１つのグラフィックプロセッサの前記第２スロットル電力量を決定する。
【０１６９】
一例では、前記電力制御部は、前記少なくとも１つのコアに、中間動作点で動作させ、前記中間動作点は、前記少なくとも１つのコアが動作していた前の動作点より低く、前記第１動作点より高く、前記第１動作点は、最小動作点より大きく、
前記少なくとも１つのコアに、前記少なくとも１つのコアのハードウェア限界に達した後に、前記第１動作点で動作させる。
【０１７０】
上述の例の種々の組み合わせが可能であることが理解される。
【０１７１】
留意すべきことに、用語「回路（circuit、circuitry）」は、ここでは同義的に使用される。ここで使用されるように、これらの用語及び用語「ロジック」は、単独又は任意の組み合わせで、アナログ回路、デジタル回路、ハード結線回路、プログラマブル回路、プロセッサ回路、マイクロコントローラ回路、ハードウェア論理回路、状態機械回路、及び／又は任意の他の種類の物理的ハードウェアコンポーネントを参照するために使用される。実施形態は、多くの異なる種類のシステムで使用されてよい。例えば、一実施形態では、通信装置は、ここに記載した種々の方法及び技術を実行するよう構成できる。勿論、本発明の範囲は、通信装置に限定されず、むしろ、他の実施形態は、命令を処理する他の種類の機器、又はコンピューティング装置で実行されることに応答して装置にここに記載した方法及び技術のうちの１つ以上を実行させる命令を含む１つ以上の機械可読媒体、を対象とし得る。
【０１７２】
実施形態は、コードで実装されてよく、命令を実行するようシステムをプログラムするために使用できる命令を格納した非一時的記憶媒体に格納されてよい。実施形態は、データ内に実装されてよく、少なくとも１つの機械により使用された場合に該少なくとも１つの機械に１つ以上の動作を実行するための少なくとも１つの回路を製造させる非一時的記憶媒体に格納されてよい。また更なる実施形態は、ＳｏＣ又は他のプロセッサ内に製造されると、該ＳｏＣ又は他のプロセッサに１つ以上の動作を実行するよう構成する情報を含むコンピュータ可読記憶媒体に実装されてよい。前記記憶媒体は、限定ではなく、フロッピーディスク、光ディスク、個体ドライブ（ＳＳＤ）、コンパクトディクス読み出し専用メモリ（ＣＤ−ＲＯＭ）、コンパクトディスクリライタブル（ＣＤ−ＲＷ）、及び磁気光ディスクを含む任意の種類のディスク、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、静的ＲＡＭ（ＳＲＡＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、フラッシュメモリ、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）のような半導体素子、磁気もしくは光カード、又は電子命令を格納するのに適する任意の他の種類の媒体を含んでよい。
【０１７３】
本発明は限られた数の実施形態に関して記載されたが、当業者は、それらから多数の変更及び変形を理解する。添付の特許請求の範囲は、本発明の精神及び範囲に含まれる全てのこのような変更及び変形をカバーすることを意図する。
【図１】
2021520537.tif 000003
【図２】
2021520537.tif 000004
【図３】
2021520537.tif 000005
【図４】
2021520537.tif 000006
【図５】
2021520537.tif 000007
【図６】
2021520537.tif 000008
【図７】
2021520537.tif 000009
【図８】
2021520537.tif 000010
【図９】
2021520537.tif 000011
【図１０】
2021520537.tif 000012
【図１１】
2021520537.tif 000013
【図１２】
2021520537.tif 000014
【図１３】
2021520537.tif 000015
【図１４】
2021520537.tif 000016
【図１５】
2021520537.tif 000017
【図１６】
2021520537.tif 000018
【図１７】
2021520537.tif 000019
【図１８】
2021520537.tif 000020
【図１９】
2021520537.tif 000021
【図２０】
2021520537.tif 000022
【国際調査報告】
2021520537.tif 000023
2021520537.tif 000024