(57)【要約】  一実施例では、本発明は、複数のコアと、前記複数のコアの第１コアに対する電圧／周波数の提供を、前記複数のコアの少なくとも第２コアに対する電圧／周波数の提供とは独立に制御する制御ロジックとを含むプロセッサを有する。いくつかの実施例では、電圧は、プロセッサの１以上の内部電圧レギュレータから提供される。他の実施例が開示及び請求される。
2013539121.tif 000002
【特許請求の範囲】
【請求項１】
複数のコアと、前記複数のコアの第１コアに対する電圧／周波数の提供を、前記複数のコアの少なくとも第２コアに対する電圧／周波数の提供とは独立に制御する制御ロジックとを含むプロセッサを有する装置。
【請求項２】
各電圧レギュレータが前記複数のコアの１つに関連付けされる複数の電圧レギュレータをさらに有する、請求項１記載の装置。
【請求項３】
前記制御ロジックは、対応する電圧レギュレータが前記対応するコアに独立した電圧を提供することを可能にするため、前記複数の電圧レギュレータのそれぞれに制御信号を提供する、請求項２記載の装置。
【請求項４】
前記第１コアは第１プロセッサのものであり、前記第２コアは第２プロセッサのものであり、
前記第１プロセッサと前記第２プロセッサとのそれぞれはさらに、少なくとも１つの統合電圧レギュレータを有し、
前記第１プロセッサと前記第２プロセッサとの少なくとも１つの統合電圧レギュレータは、共通に制御される、請求項３記載の装置。
【請求項５】
前記プロセッサは、前記複数の電圧レギュレータをさらに有する単一の半導体ダイ上に形成されるマルチコアプロセッサを有する、請求項３記載の装置。
【請求項６】
前記複数の電圧レギュレータに第１調整電圧を提供するため、前記マルチコアプロセッサに接続される第１電圧レギュレータをさらに有し、
前記複数の電圧レギュレータはそれぞれ、前記複数のコアの少なくとも１つに独立した電圧を提供する、請求項５記載の装置。
【請求項７】
前記制御ロジックは、前記プロセッサのアンコア部分の電力制御ユニットを有する、請求項１記載の装置。
【請求項８】
前記電力制御ユニットは、オペレーティングシステム（ＯＳ）からパフォーマンス状態変更要求を受信し、提供される電圧／周波数を更新するため、前記複数のコアの少なくとも１つを選択する、請求項７記載の装置。
【請求項９】
前記電力制御ユニットは、前記複数のコアの処理をモニタし、更新された電圧／周波数の提供のため前記複数のコアの少なくとも１つを動的に選択するアクティビティモニタを有する、請求項７記載の装置。
【請求項１０】
プロセッサの電力制御ユニットにおいてパフォーマンス状態変更要求を受信するステップと、
前記プロセッサの少なくとも１つのコアを、前記プロセッサの少なくとも１つの他のコアから独立に提供される電圧／周波数を調整するため選択するステップと、
前記コアが調整された電圧により動作することを可能にするため、前記選択されたコアに関する統合電圧レギュレータに前記調整電圧のための制御信号を送信するステップと、
を有する方法。
【請求項１１】
前記プロセッサの熱設計電力（ＴＤＰ）規格に少なくとも部分的に基づき、前記少なくとも１つのコアの調整電圧を計算するステップをさらに有する、請求項１０記載の方法。
【請求項１２】
日和見的でなく決定的に提供される前記電圧／周波数を調整する少なくとも１つのコアを選択するステップをさらに有する、請求項１１記載の方法。
【請求項１３】
前記プロセッサの熱設計電力（ＴＤＰ）バジェットが維持されるように、複数の第１コアを、複数の第２コアから独立して増加した電圧／周波数により実行するため調整するステップをさらに有する、請求項１０記載の方法。
【請求項１４】
オペレーティングシステム（ＯＳ）又はシステムソフトウェアから前記パフォーマンス状態変更要求を受信するステップをさらに有し、
前記ＯＳは、前記プロセッサの独立した電圧制御能力を意識しない、請求項１０記載の方法。
【請求項１５】
前記プロセッサの第１コアセットについて独立した電圧／周波数を動的に制御し、固定的な電圧／周波数を受信するため第２コアセットを制御するステップをさらに有し、
前記第１コアセットは、第１オペレーティングシステムに関連し、前記第２コアセットは、第２オペレーティングシステムに関連する、請求項１０記載の方法。
【請求項１６】
複数のコアと、各電圧レギュレータが前記複数のコアの少なくとも１つに電圧を独立に提供する複数の電圧レギュレータと、電力制御ユニットとを有し、単一の半導体ダイに形成されるプロセッサと、
前記プロセッサに接続されるＤＲＡＭと、
を有するシステムであって、
前記電力制御ユニットは、前記プロセッサのワークロード及び熱設計電力（ＴＤＰ）に少なくとも部分的に基づき、前記複数のコアの少なくとも一部に独立した電圧を提供するよう前記複数の電圧レギュレータを制御するシステム。
【請求項１７】
前記電力制御ユニットは、前記複数のコアの動作をモニタし、更新された電圧／周波数の提供のため前記複数のコアの少なくとも１つを動的に選択するアクティビティモニタを有する、請求項１６記載のシステム。
【請求項１８】
前記電力制御ユニットは、前記プロセッサのアンコアロジックに提供される電圧／周波数を動的に調整させ、
前記アンコアロジックは、前記電力制御ユニットを有し、
前記アンコアロジックが動作する電圧及び周波数は、オペレーティングシステム（ＯＳ）にビジブルでない、請求項１６記載のシステム。
【請求項１９】
前記電力制御ユニットは、前記複数のコアの動作をモニタし、更新された電圧／周波数の提供のため前記複数のコアの少なくとも１つを動的に選択するアクティビティモニタを有し、
少なくとも１つの他のコアには、固定的な電圧／周波数が提供される、請求項１６記載のシステム。
【請求項２０】
前記電力制御ユニットは、前記少なくとも１つのコアを含む前記プロセッサの領域の温度に少なくとも部分的に基づき、増加した電圧／周波数が提供される前記少なくとも１つのコアを選択する、請求項１９記載のシステム。
【請求項２１】
前記電力制御ユニットは、前記アクティビティモニタからの情報に基づき、以降の期間において前記少なくとも１つのコアの利用を予測する、請求項１９記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
電力及び熱管理問題は、コンピュータベースシステムのすべてのセグメントにおける関心事である。サーバドメインでは、電気コストが低電力システムのニーズを促進し、モバイルシステムでは、バッテリ寿命及び熱制限がこれらの問題を関連するものにしている。最小限の電力消費において最大パフォーマンスのためにシステムを最適化することは、通常はオペレーティングシステム（ＯＳ）やシステムソフトウェアを用いてハードウェア要素を制御することにより行われる。大部分の現在のＯＳは、これらのエリアにおいてシステムを最適化するため、２００６年１０月１０日に公開されたＲｅｖ．３．０ｂなどのｔｈｅ  Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ（ＡＣＰＩ）規格を利用する。ＡＣＰＩの実現は、プロセッサコアが一般に、いわゆるＣ１〜Ｃｎ状態と呼ばれる異なる電力セービング状態（低電力又はアイドル状態とも呼ばれる）にあることを可能にする。同様のパッケージＣ状態がパッケージレベル電力セービングに存在するが、ＯＳ−ｖｉｓｉｂｌｅではない。
【０００２】
コアがアクティブであるとき、それはいわゆるＣ０状態で動作し、コアがアイドルであるとき、それは、いわゆる、コア非ゼロＣ状態であるコア低電力状態に置かれる。コアＣ１状態は、最小限の電力セービングを有するが、ほぼ即座に出入り可能な低電力状態を表し、拡張されたディープ低電力状態（Ｃ３など）は、静的な電力消費が無視できるが、当該状態の出入りし、アクティビティに応答する（すなわち、Ｃ０に戻る）時間はより長い電力状態を表す。
【０００３】
電力セービング状態に加えて、パフォーマンス状態又は、すなわち、Ｐ状態がまたＡＣＰＩにおいて提供されている。これらのパフォーマンス状態は、コアがアクティブ状態（Ｃ０）にいる間、パフォーマンス電力レベルの制御を可能にする。一般に、複数のＰ状態、すなわち、Ｐ０〜ＰＮが利用可能であってもよい。一般に、ＡＣＰＩのＰ状態制御アルゴリズムは、パフォーマンスに影響を与えることなく電力消費を最適化することである。Ｐ０に対応する状態は、当該コアについて最大電圧及び周波数の組み合わせによりコアを動作させ、Ｐ１〜ＰＮなどの各Ｐ状態は、異なる電圧及び／又は周波数の組み合わせによりコアを動作させる。このようにして、パフォーマンス及び電力消費のバランスが、プロセッサの利用に基づきプロセッサがアクティブである間に実行可能である。異なるＰ状態がアクティブモード中に利用可能である間、マルチコアプロセッサの異なる電圧及び周波数で動作する異なるコアについて独立したＰ状態は可能でなく、このため、せいぜいすべてのアクティブなコアが異なる周波数で動作可能であるが、それらはすべて同一の電圧を共有しなければならないため、所望のパフォーマンスレベルを実現しながら、最適な電力セービングを達成することはできない。
【図面の簡単な説明】
【０００４】
【図１】図１は、本発明の一実施例によるシステムのブロック図である。
【図２】図２は、本発明の一実施例による方法のフロー図である。
【図３】図３は、本発明の他の実施例による方法のフロー図である。
【図４】図４は、本発明の一実施例によるプロセッサのブロック図である。
【図５】図５は、本発明の一実施例によるプロセッサコアのブロック図である。
【図６】図６は、本発明の一実施例によるシステムのブロック図である。
【発明を実施するための形態】
【０００５】
各種実施例において、マルチコアアーキテクチャを有するプロセッサは、ＡＣＰＩ規格などによる電力パフォーマンス（Ｐ）状態のコア単位の制御を提供する。このようにして、より良好な電力消費及びパフォーマンスに対する制御が実現可能である。例えば、マルチコアプロセッサでは、少数のコアのみが熱制約環境においてより高いコア周波数により動作することが可能とされ、電力消費及び温度を低減しながら、所望のワークロードの実行を可能にする。
【０００６】
従って、各種実施例では、プロセッサ内の複数のコアの各コアは、異なる電圧及び／又は周波数により動作するよう制御される。このようにして、非対称なワークロードが、決定的なパフォーマンスを提供するため複数のコア上で実行される。本発明の範囲はこれに限定されるものでないが、いくつかの実施例では、独立した電圧／周波数制御が、プロセッサ内の各コアが自らの電圧レギュレータを有するフル統合電圧レギュレータ（ＥＩＶＲ）を用いて実現されてもよい。すなわち、複数のコアを有する単一の半導体ダイはさらに、それぞれが所与のコアに関連付けされた複数の独立した電圧レギュレータを有してもよい。さらに、１以上の付加的な電圧レギュレータが、アンコアロジック又は非コアロジック（ｕｎｃｏｒｅ  ｌｏｇｉｃ）、メモリコントローラロジック、電力制御ユニットなどのプロセッサ内の他のコンポーネントにより利用するため提供されてもよい。もちろん、いくつかの実施例では、単一の電圧レギュレータが、プロセッサの１以上のコア及び／又は他のコンポーネントに関連付けされてもよい。一実施例では、専用の電圧レギュレータが、プロセッサのアンコア回路のために提供されてもよく、これは、アンコアが異なる電圧及び周波数により動作することを可能にする。計算中心のワークロードについて、アンコアは低電圧及び周波数により動作可能であり、ソケットレベルでより高いコア周波数に対する電力セービングを適用することになる。メモリ及びＩＯ集中ワークロードについて、アンコアはより高い電圧及び周波数で動作可能である一方、コアはより低い電圧／周波数により動作可能であり、アンコアにおけるより高い電力を補償する。
【０００７】
いくつかの実施例では、ＡＣＰＩテーブルは、コア単位Ｐ状態制御を可能にするためこれら個々の統合された電圧レギュレータに関する情報を含むよう拡張されてもよい。例えば、４ビットフィールドがＰ状態情報をわたし、それを各レギュレータの電圧ロジックを制御するのに利用されてもよい。従って、本発明の実施例を利用して、各コアは、非対称なワークロードのために異なる周波数及び／又は電圧により動作するよう制御されてもよい。一例として、複数のコアの１つ又はいくつかが、より高い周波数及び／又は電圧により動作するよう制御可能である一方、残りのコアが、所与の熱設計電力（ＴＤＰ）エンベロープ内に留まるようにより低い電圧／周波数の組み合わせにより動作するよう制御される。このようにして、決定的で最適なパフォーマンス能力選択が、所与のワークロードについて実現可能である。
【０００８】
例えば、第１の方法によりデータを処理するため、より高いパフォーマンスレベルを求めるコアは、より高い電圧／周波数により動作可能であり（このようなコアは、データ複製サービス、データ解析、パリティ計算などのデータ処理利用などのタスクを実行するものであってもよい）、管理タスクなどを実行するコアは、ＴＤＰ制約完了のため最適な合成を提供するより低い電圧／周波数により動作可能である。熱又はＴＤＰバジェットが与えられると、（いわゆる、ターボモードにより）可能であるときはより高い周波数によりすべてのコアを日和見的（ｏｐｐｏｒｔｕｎｉｓｔｉｃａｌｌｙ）に動作させるのでなく、実施例は、個別コアベースにより決定的な動作を提供する。
【０００９】
図１を参照して、本発明の実施例によるシステムの一部のブロック図が示される。図１に示されるように、システム１００は、図示されるように、マルチコアプロセッサであるプロセッサ１１０を含む各種コンポーネントを有してもよい。プロセッサ１１０は、メイン調整電圧をプロセッサ１１０に提供するため第１電圧変換を実行可能な外部の電圧レギュレータ１６０を介し電源１５０に接続される。
【００１０】
図示されるように、プロセッサ１１０は、複数のコア１２０ａ〜１２０ｎを含む単一のダイプロセッサであってもよい。さらに、各コアは、個々の電圧レギュレータ１２５ａ〜１２５ｎに関連付けされてもよい。従って、フル統合電圧レギュレータ（ＦＩＶＲ）の実現形態が、各コアの電圧、電力及びパフォーマンスの詳細な制御を可能にするため提供されてもよい。
【００１１】
図１をさらに参照して、入出力インタフェース１３２、他のインタフェース１３４及び統合メモリコントローラ１３６を含む追加的なコンポーネントが、プロセッサ内に存在してもよい。図示されるように、これらのコンポーネントのそれぞれは、他の統合電圧レギュレータ１２５ｘにより電力供給されてもよい。一実施例では、インタフェース１３２は、物理レイヤ、リンクレイヤ及びプロトコルレイヤを含む複数のレイヤを含むキャッシュコヒーラントプロトコルにおいてポイント・ツー・ポイント（ＰｔＰ）リンクを提供するインテル（登録商標）のＱｕｉｃｋ  Ｐａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＱＰＩ）プロトコルに従うものであってもよい。さらに、インタフェース１３４は、ＰＣＩ  ＥｘｐｒｅｓｓＴＭ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｂａｓｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｖｅｒｓｉｏｎ  ２．０（２００７年１月１７日に公開）などのＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（ＰＣＩｅＴＭ）規格に従うものであってもよい。説明の簡単化のため図示されないが、アンコアロジック、電力制御ユニット、キャッシュメモリ階層の１以上のレベルなどの内部メモリなどの他のコンポーネント追加的なコンポーネントが、プロセッサ１１０内にあってもよい。さらに、統合電圧レギュレータを備えた図１の実現形態が示されるが、実施例はこれに限定されるものでない。
【００１２】
図２を参照して、本発明の一実施例による方法のフロー図が示される。方法２００は、一実施例では、プロセッサの統合電力制御ユニット（ＰＣＵ）などのコントローラにより実行されてもよい。しかしながら、本発明の範囲はこれに限定されず、方法２００は、管理エンジンなどのシステム内の他のコントローラにより実行されてもよいことが理解されたい。
【００１３】
図２を参照して、方法２００は、ＰＣＵにおいてパフォーマンス状態変更要求を受信することによって開始される（ブロック２１０）。例えば、多数の実現形態において、当該要求はＯＡ又はシステムソフトウェアから受信されてもよい。例えば、当該要求は、１以上のコアに対するＰ状態を変更するための要求に対応する。すなわち、このような実現形態では、ＯＳは、本発明の実施例による提供されるコア単位Ｐ状態制御を認識している。他の実施例では、ＯＳ又はシステムソフトウェアが当該機能を認識していないときでさえ、パフォーマンス状態変更要求が、ここに開示されるように受信及び処理される。
【００１４】
ダイヤモンド２２０において、パフォーマンスの増加が要求されているか判断される。すなわち、当該要求は、より高いパフォーマンスレベルの特定であってもよい（例えば、Ｐ１状態からＰ０状態に入るための要求など、現在のＰ状態より低いものに対応するなど）。また、当該判断は現在状態からＰ状態を変更することが可能であることを確認するものであってもよいことに留意されたい。パフォーマンスの増加が要求されている場合、制御はブロック２３０に移行する。ブロック２３０において、少なくとも他のコアから独立して電圧を増加するための１以上のコアの選択に関する判断が行われる。この判断の具体例として、ＰＣＵは、ダイ全体の電流、電力、温度及びマイクロアーキテクチャアクティビティ（ロード／ストアバッファ、スレッドスケジューラなど）などの各種ファクタに依存するＴＤＰマージンに基づき、電圧及び関連する周波数を増加するよう決定してもよい。例えば、マルチコアプロセッサの一部がより冷たくなるよう（及びより低い電圧／周波数により動作するよう）決定された場合、当該部分内のコアが、増加した電圧及び周波数のために選択されてもよい。
【００１５】
増加した電圧のため選択された１以上のコアが決定されると、制御はブロック２４０に移行し、選択されたコアについて新たな電圧及び周波数が計算される。このような計算は、プロセッサのためのＴＤＰ規格、Ｉｃｃヘッドルームなどに少なくとも部分的に基づくものであってもよい。
【００１６】
さらに図２を参照して、制御は次にブロック２５０に移行し、新たな電圧のための制御信号が１以上のコアに関連する電圧レギュレータに送信される。例えば、当該制御信号は、電圧レギュレータに異なる電圧レベルへの変更を開始させるためのデジタル制御信号又はアナログ制御信号であってもよい。従って、コアに関連するＦＩＶＲは、更新された電圧をコアに出力するため調整されてもよい。従って、制御はブロック２６０に移行し、当該コアは選択された電圧により動作する。多数の実施例では、電圧レギュレータはプロセッサ内に統合されてもよいため、当該調整は、オフチップレギュレータと比較して低減された遅延により行われるようにしてもよい。
【００１７】
他方、ダイヤモンド２２０において、パフォーマンスの低下が要求されたと判断された場合、制御はブロック２７０に移行する。ブロック２７０において、少なくとも他のコアから独立して、電圧を低下させるための１以上のコアの選択が判断される（ブロック２７０）。このような決定は、上述されたようなファクタに基づくものであってもよく、異なるＰ状態への移動が許容されるという判断を含むものであってもよい。
【００１８】
電圧低下のため選択された１以上のコアが決定されると、制御はブロック２７５に移行し、選択されたコアについて新たな電圧及び周波数が計算される。制御は次にブロック２８０に移行し、新たな電圧のための制御信号が、コアに関連するＦＩＶＲに低下した電圧をコアに出力させるため、コアに関連する電圧レギュレータに送信される。従って、制御はブロック２９０に移行し、コアが選択された電圧で動作する。図２の実施例における当該特定の実現形態より示されたが、本発明の範囲はこれに限定されるものでないことが理解されたい。例えば、上記説明は、ＰＣＵとコアとがマルチコアプロセッサなどの同一の半導体ダイの一部であることを仮定している。他の実施例では、コアは、独立したダイ上にあって、同一のマルチチップパッケージを有してもよい。さらなる実施例では、コアは、別々のパッケージにあるが、連動する電圧レギュレータなどを用いて電圧／周波数が共通に制御されてもよい。
【００１９】
１つの他の実施例は、プロセッサが統合されたレギュレータを有しない実現形態である。このようなプロセッサでは、実施例は依然としてコア単位Ｐ状態制御を提供するよう収容可能である。このため、ブロック２５０又は２８０において、異なる電圧のための制御信号が、例えば、コアに直接提供可能であり、コアは受信した電圧に基づき電圧調整を提供することができる。さらなる実施例では、ブロック２５０及び２８０において、電圧変更のための制御信号が外部の電圧レギュレータにオフチップに提供可能である。この制御信号は、各ピンが外部の電圧レギュレータに複数の電圧の１つを提供させるため異なる電圧レベルと関連付けされる１以上のピンにより送信されてもよい。具体的には、このような実現形態では、外部の電圧レギュレータは、プロセッサに接続可能であり、さらに電力制御ユニットにより決定されるように対応するコアに選択された電圧が提供されるのを可能にするため、電圧制御ユニットから制御信号をさらに受信可能なプロセッサの電圧送信ロジックに接続可能な複数の電圧信号を出力するようにしてもよい。
【００２０】
さらなる他の実施例では、例えば、いくつかのコアが１つのＯＳに専用とされ、異なる個数のコアが異なるＯＳに専用とされるマルチＯＳシステムでは、１つのＯＳドメインの各コアは固定的な（おそらく異なる）Ｖ／Ｆに静的に設定可能であり、他のＯＳドメインのコアは実行中に動的にＶ／Ｆを変更可能である。例えば、１つのＯＳドメインは、システムの管理処理などの決定的な処理に専用とされ、固定的なＶ／Ｆ制御に利用可能である。他方、各種ユーザレベルアプリケーションが実行されるＯＳドメインは、非決定的なワークロードを有し、本発明の実施例により動的な独立したＶ／Ｆ制御に利用されてもよい。
【００２１】
いくつかの実施例では、コアＶ／Ｆの動的制御のため、ＰＣＵは、ＯＳから独立してマイクロアーキテクチャアクティビティをモニタし、１以上のコアのＶ／Ｆが要求されるロード要求に依存して電力を増減するため動的に変更可能であるか判断することができる。
【００２２】
図３を参照して、本発明の一実施例による方法のフロー図が示される。図３に示されるように、方法３００は、プロセッサの電力制御ユニットにより実行されてもよい。方法３００は、ＯＳが本発明の実施例により提供されるコア単位Ｐ状態機能を意識しない場合、適切なものであってもよい。さらなる実施例では、方法３００は、コアＰ状態の動的制御を改善するため、ＯＳがＰ状態機能を意識する状況において上述された方法２００に関連して実行されてもよい。
【００２３】
図３に示されるように、方法３００は、１以上のコアのマイクロアーキテクチャアクティビティをモニタすることによって開始される（ブロック３１０）。本発明の範囲はこれに限定されるものでないが、このようなアクティビティは、タイムウィンドウにおいて実行される命令数、タイムウィンドウ毎のリタイアメントなどを決定することを含むものであってもよい。
【００２４】
マイクロアーキテクチャアクティビティから取得された情報に応答して、電力制御ユニットにより解析が実行される。より詳細には、ブロック３２０において、電力制御ユニットは、プロセッサのロード要求と共にアクティビティを解析する。例えば、ロード要求は、コアにスケジューリングされるスレッドの個数と当該スレッドがスケジューリングされたプロセスのタイプとに関する情報に基づくものであってもよい。
【００２５】
その後、制御はダイヤモンド３３０に移行し、電力制御ユニットは、１以上のコアの電圧／周波数の少なくとも１つの動的な調整が適切であるか判断してもよい。例えば、アクティビティ及びロード要求が、電力とパフォーマンスとの間の適切なトレードオフが行われていることを示す場合、電力制御ユニットは、何れかの電圧／周波数の組み合わせを動的に調整しないことを選択してもよい。このため、方法３００は終了する。
【００２６】
他方、所与のコアについて少なくとも１つの電圧／周波数ペアを調整することが決定される場合、制御はブロック３４０に移行する。そこでは、新たな電圧及び周波数ペアが選択されたコアについて選択されてもよい。
【００２７】
図３をさらに参照して、制御は次にブロック３５０に移行し、新たな電圧のための制御信号が、新たな電圧により更新のため、１以上のコアに関連する電圧レギュレータに送信可能である。このように、コアに関連するＦＩＶＲは、更新された電圧をコアに出力するため調整されてもよい。従って、制御はブロック３６０に移行し、コアは選択された電圧により動作する。図３の実施例では当該特定の実現形態により示されたが、本発明の範囲はこれに限定されるものでないことが理解されたい。
【００２８】
例えば、他の実施例では、１以上のコアのＶ／Ｆが動的に変更可能であるだけでなく、アンコアの周波数及び電圧もまた要求されるコアのＶ／Ｆ要求をサポートするよう変更可能である。アンコア周波数は、ＯＳにビジブル（ｖｉｓｉｂｌｅ）でないが、ダイ全体の電力セービングに寄与しうる。アンコア電力セービングは、コアパフォーマンスを増大させるコア電力に適用可能である。同様に、コアの電力セービングは、より高いアンコア周波数を要求するワークロードを収容するため、増加したアンコアの電圧／周波数に適用可能である。いくつかの実現形態では、この動的なアンコアの変更は、図３の方法３００を用いて実行可能である。
【００２９】
図４を参照して、本発明の実施例によるプロセッサのブロック図が示される。図４に示されるように、プロセッサ４００は、複数のコア４１０ａ〜４１０ｂを含むマルチコアプロセッサであってもよい。一実施例では、このような各コアは、上述されるように、選択された電圧及び／又は周波数により動作するよう独立に制御されてもよい。このため、各コアは、対応する電圧レギュレータ４１２ａ〜４１２ｎに関連付けされてもよい。各種コアは、各種コンポーネントを含むアンコア４２０にインターコネクト４１５を介し接続されてもよい。図示されるように、アンコア４２０は、ラストレベルキャッシュであってもよい共有キャッシュ４３０を有してもよい。さらに、アンコアは、統合メモリコントローラ４４０、各種インタフェース４５０及び電力制御ユニット４５５を有してもよい。
【００３０】
各種実施例では、電力制御ユニット４５５は、ＯＳ電力管理コードにより通信してもよい。例えば、ＯＳから受信した要求とコアにより処理されるワークロードに関する情報とに基づき、電力制御ユニット４５５は、図２に関して上述されたものなど、各コアを実行するための電圧及び周波数の適切な組み合わせを決定してもよい。例えば、電力制御ユニット４５５は、各コアが実行中の電圧及び周波数を各エントリが関連付けるエントリを有するテーブルを含むものであってもよい。さらに、ユニット４５５は、ＴＤＰ又は他の熱バジェットに関する情報を有するストレージを有してもよい。これらすべての情報に基づき、電力制御ユニット４５５は、ＴＤＰバジェット内に留まりながら、さらに日和見的なターボモード処理を必要とすることなく、決定的な処理を可能にし、非対称なワークロードをコアに提供するため、１以上のコアに対する周波数及び／又は電圧を動的にかつ独立に制御可能である。従って、このような計算に応答して、電力制御ユニット４５５は、電圧レギュレータに対応するコアに提供される電圧を制御させるための複数の制御信号を生成する。
【００３１】
さらに、電力制御ユニット４５５は、図３に関して上述されるように、電圧／周波数の変更が１以上のコアについて適切であるか独立に判断してもよい。いくつかの実現形態では、電力制御ユニット４５５により実行される解析は、電力制御ユニットの一部であってもよいアクティビティモニタロジックにより決定される予測情報に少なくとも部分的に基づくものであってよい。このロジックは、動作中のコアに関連する情報を格納するためのバッファを有してもよい。アクティビティモニタは、現在のアクティビティレベルに関して各種コアからの入力データを受信する。アクティビティモニタのバッファは、各種方法により構成されてもよい。一実施例では、バッファは、各コアについて各電力状態変更イベントに関するタイムスタンプの表示を格納するよう構成されてもよい。アクティビティモニタは、コアが所与のアクティビティ状態に入出力するイベントを傍受及びタイムスタンプする。このモニタされたデータは、ストレージのインターバル中、各コアが所与の状態にどの程度の期間いたかを示すため、アクティビティ状態と共にタイムスタンプデータを含むものであってもよく、当該情報を利用してコアを動作させる独立した周波数及び／又は電圧の選択において利用可能な次のインターバルについて予測されたコア状態を決定する電力制御ユニットの予測手段などに提供されてもよい。
【００３２】
図４をさらに参照して、プロセッサ４００は、メモリバスなどを介しシステムメモリ４６０と通信する。さらに、インタフェース４５０によって、周辺装置、マスストレージなどの各種オフチップコンポーネントとの接続が可能である。図４の実施例では当該特定の実現形態により示されたが、本発明の範囲はこれに限定されるものでない。
【００３３】
図５を参照して、本発明の一実施例によるプロセッサコアのブロック図が示される。図５に示されるように、プロセッサコア５００は、マルチステージパイプラインアウトオブオーダプロセッサであってもよい。図５に示されるように、コア５００は、統合電圧レギュレータ５０９の結果として各種電圧及び周波数により動作してもよい。各種実施例では、このレギュレータは、外部の電圧レギュレータなどから入力電圧信号を受信し、コア５００に接続されるアンコアロジックなどから１以上の制御信号をさらに受信してもよい。
【００３４】
図５に示されるように、コア５００は、フェッチ命令が実行され、プロセッサにおける以降の利用のためにそれらを準備するのに利用されるフロントエンドユニット５１０を有する。例えば、フロントエンドユニット５１０は、フェッチユニット５０１、命令キャッシュ５０３及び命令デコーダ５０５を有する。いくつかの実現形態では、フロントエンドユニット５１０はさらに、マイクロコードストレージと共にマイクロ処理ストレージと一緒にトレースキャッシュを含む。フェッチユニット５０１は、メモリ又は命令キャッシュ５０３などからマイクロ命令をフェッチし、それらをプリミティブ、すなわち、プロセッサによる実行用のマイクロ処理に復号化するため、命令デコーダ５０５にそれらを提供する。
【００３５】
マイクロ命令を受信し、それらを実行用に準備するのに利用されるアウトオブオーダ（ＯＯＯ）エンジン５１５が、フロントエンドユニット５１０と実行ユニット５２０との間に接続される。より詳細には、ＯＯＯエンジン５１５は、マイクロ命令フローをリオーダリングし、実行に必要な各種リソースを割当て、さらにレジスタファイル５３０及び拡張レジスタファイル５３５などの各種レジスタファイル内のストレージ位置に論理レジスタをリネーミングするための各種バッファを含むものであってもよい。レジスタファイル５３０は、整数及び浮動小数点演算のための別々のレジスタファイルを有してもよい。拡張レジスタファイル５３５は、レジスタ毎に２５６又は５１２ビットなどのベクトルサイズのユニットのためのストレージを提供してもよい。
【００３６】
他の特殊なハードウェアのうち、例えば、各種の整数、浮動小数点及びＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）ロジックユニットなどを含む各種リソースが、実行ユニット５２０にあってもよい。例えば、このような実行ユニットは、他のこのような実行ユニットのうち１以上のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ）５２２を含む。
【００３７】
実行ユニットからの結果は、リタイアメントロジック、すなわち、リオーダバッファ（ＲＯＢ）５４０に提供されてもよい。より詳細には、ＲＯＢ５４０は、実行される命令に関連する情報を受信するための各種アレイ及びロジックを含むものであってもよい。当該情報は、その後、ＲＯＢ５４０により調べられ、命令が有効にリタイア可能であるか、及びプロセッサのアーキテクチャ状態にコミットされる結果データを決定するか、又は命令の適切なリタイアメントを防ぐ１以上の例外処理が実行されたか判断する。もちろん、ＲＯＢ５４０は、リタイアメントに関連する他の処理を処理してもよい。
【００３８】
図５に示されるように、ＲＯＢ５４０は、本発明はこれに限定されるものでないが、一実施例では、低レベルキャッシュ（Ｌ１キャッシュなど）であってもよいキャッシュ５５０に接続される。また、実行ユニット５２０は、キャッシュ５２０に直接接続可能である。キャッシュ５５０から、よりハイレベルなキャッシュ、システムメモリなどとのデータ通信が実行されてもよい。図５の実施例において当該ハイレベルなものにより示されたが、本発明の範囲はこれに限定されるものでないことが理解されたい。例えば、図５の実現形態は、いわゆる、ｘ８６命令セットアーキテクチャ（ＩＳＡ）のアウトオブオーダマシーンに関するものであるが、本発明の範囲はこれに限定されるものでない。すなわち、他の実施例は、インオーダプロセッサ、ＡＲＭベースプロセッサなどのＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｉｎｇ）プロセッサ、又はエミュレーションエンジン及び関連する論理回路を介し異なるＩＳＡの命令及び処理をエミュレート可能な他のタイプのＩＳＡのプロセッサにより実現されてもよい。
【００３９】
各実施例は、多数の異なるシステムタイプにより実現されてもよい。図６を参照して、本発明の実施例によるシステムのブロック図が示される。図６に示されるように、マルチプロセッサシステム６００は、ポイント・ツー・ポイントインターコネクトシステムであり、ポイント・ツー・ポイントインターコネクト６５０を介し接続される第１プロセッサ６７０及び第２プロセッサ６８０を有する。図６に示されるように、プロセッサ６７０，６８０のそれぞれは、可能性としてはより多くのコアがプロセッサ内にあってもよいが、第１及び第２プロセッサコア（すなわち、プロセッサコア６７４ａ，６７４ｂ及びプロセッサコア６８４ａ，６８４ｂ）を含むマルチコアプロセッサであってもよい。各コアは、（図６の実施例では簡単化のため図示せず）プロセッサ内にある複数の独立した電圧レギュレータを用いて、独立した電圧／周波数により動作してもよい。
【００４０】
さらに図６を参照して、第１プロセッサ６７０はさらに、メモリコントローラハブ（ＭＣＨ）６７２とポイント・ツー・ポイント（Ｐ−Ｐ）インタフェース６７６，６７８とを有する。同様に、第２プロセッサ６８０は、ＭＣＨ６８２とＰ−Ｐインタフェース６８６，６８８とを有する。図６に示されるように、ＭＣＨ６７２，６８２は、各プロセッサにローカルに付属されたシステムメモリ（ＤＲＡＭなど）の一部であってもよい各メモリ、すなわち、メモリ６３２，６３４とプロセッサとを接続する。第１プロセッサ６７０と第２プロセッサ６８０とはそれぞれ、Ｐ−Ｐインターコネクト６５２，６５４を介しチップセット６９０に接続されてもよい。図６に示されるように、チップセット６９０は、Ｐ−Ｐインタフェース６９４，６９８を有する。
【００４１】
さらに、チップセット６９０は、Ｐ−Ｐインターコネクト６３９によりチップセット６９０とハイパフォーマンスグラフィックスエンジン６３８とを接続するためのインタフェース６９２を有する。さらに、チップセット６９０は、ストレージ６１９とインタフェースをとるためのストレージコントローラであってもよいインタフェース６９５を有してもよい。さらに、チップセット６９０は、インタフェース６９６を介し第１バス６１６に接続されてもよい。図６に示されるように、各種入出力（Ｉ／Ｏ）装置６１４は、第１バス６１６と第２バス６２０とを接続するバスブリッジ６１８と共に、第１バス６１６に接続される。一実施例では、キーボード／マウス６２２、通信装置６２６、コード６３０を有するディスクドライブ又は他のマスストレージ装置などのデータストレージユニット６２８などを含む各種装置が、第２バス６２０に接続されてもよい。さらに、音声Ｉ／Ｏ６２４が第２バス６２０に接続されてもよい。各実施例は、スマートフォン、タブレットコンピュータ、ネットブックなどのモバイル装置を含む他のタイプのシステムに搭載されてもよい。
【００４２】
各実施例は、コードにより実現され、命令を実行するようシステムをプログラムするのに利用可能な命令を格納した記憶媒体に格納されてもよい。記憶媒体は、以下に限定することなく、フロッピー（登録商標）ディスク、光ディスク、ソリッドステートドライブ（ＳＳＤ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＷ（ＣＤ−Ｒｅｗｒｉｔａｂｌｅ）、光磁気ディスクを含むディスク、ＲＯＭ、ＤＲＡＭ、ＳＲＡＭ、ＥＰＲＯＭ、フラッシュメモリ、ＥＥＰＲＯＭなどのＲＡＭなどの半導体装置、磁気若しくは光カード又は電子命令を格納するのに適した他の何れかのタイプの媒体などの何れかのタイプの非一時的な記憶媒体を含むものであってもよい。
【００４３】
本発明が限定数の実施例により説明されたが、当業者は、多数の改良及び変形を理解するであろう。添付した請求項はこのようなすべての改良及び変形を本発明の真の趣旨及び範囲内に属するものとしてカバーすることが意図される。
【図１】
2013539121.tif 000003
【図２】
2013539121.tif 000004
【図３】
2013539121.tif 000005
【図４】
2013539121.tif 000006
【図５】
2013539121.tif 000007
【図６】
2013539121.tif 000008
【国際調査報告】
2013539121.tif 000009
2013539121.tif 000010