特許第6227737号(P6227737)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インテル コーポレイションの特許一覧

<>
  • 特許6227737-コア単位電圧及び周波数制御の提供 図000002
  • 特許6227737-コア単位電圧及び周波数制御の提供 図000003
  • 特許6227737-コア単位電圧及び周波数制御の提供 図000004
  • 特許6227737-コア単位電圧及び周波数制御の提供 図000005
  • 特許6227737-コア単位電圧及び周波数制御の提供 図000006
  • 特許6227737-コア単位電圧及び周波数制御の提供 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6227737
(24)【登録日】2017年10月20日
(45)【発行日】2017年11月8日
(54)【発明の名称】コア単位電圧及び周波数制御の提供
(51)【国際特許分類】
   G06F 1/32 20060101AFI20171030BHJP
   G06F 15/78 20060101ALI20171030BHJP
【FI】
   G06F1/32 Z
   G06F15/78 517
   G06F15/78 515
【請求項の数】20
【外国語出願】
【全頁数】13
(21)【出願番号】特願2016-179522(P2016-179522)
(22)【出願日】2016年9月14日
(62)【分割の表示】特願2013-530201(P2013-530201)の分割
【原出願日】2011年9月21日
(65)【公開番号】特開2017-21831(P2017-21831A)
(43)【公開日】2017年1月26日
【審査請求日】2016年9月14日
(31)【優先権主張番号】12/889,121
(32)【優先日】2010年9月23日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】クマール,パンカジ
(72)【発明者】
【氏名】グエン,ハーン
(72)【発明者】
【氏名】ホートン,クリストファー エル.
(72)【発明者】
【氏名】ビアマン,デイヴィッド
【審査官】 田川 泰宏
(56)【参考文献】
【文献】 特開2008−117397(JP,A)
【文献】 特表2008−513912(JP,A)
【文献】 特表2009−522688(JP,A)
【文献】 国際公開第2009/110290(WO,A1)
【文献】 特表2009−542013(JP,A)
【文献】 特開2008−040734(JP,A)
【文献】 特表2009−510617(JP,A)
【文献】 米国特許出願公開第2005/0046400(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/32
G06F 15/78
(57)【特許請求の範囲】
【請求項1】
複数のコアであって、前記複数のコアの少なくとも1つは、命令を復号化するためのデコーダと、前記復号化された命令を実行する少なくとも1つの実行ユニットと、少なくとも1つのコアに含まれるキャッシュメモリとを有し、前記複数のコアの少なくとも1つはアウトオブオーダパイプラインを有する、複数のコアと、
共有キャッシュメモリと、
統合メモリコントローラと、
前記複数のコアの第1のコアへの電圧/周波数の提供を、前記複数のコアの少なくとも第2のコアへの電圧/周波数の提供と独立して制御する電力制御ロジックと、
を有するプロセッサであって、
前記第1のコア及び前記第2のコアは、非対称的なワークロードを実行し、
前記電力制御ロジックは、前記プロセッサのワークロード及び温度に少なくとも部分的に基づき前記第1のコアの電圧/周波数を更新するか判断し、前記判断に応答して、前記第1のコアに提供される前記電圧/周波数を更新し、
前記電力制御ロジックは、電圧レギュレータに前記更新された電圧を前記第1のコアに提供させるための制御信号を前記電圧レギュレータに送信するプロセッサ。
【請求項2】
前記電力制御ロジックは、熱バジェット内に留まりながら、前記第1のコアの電圧/周波数を制御する、請求項1記載のプロセッサ。
【請求項3】
前記温度は、前記第1のコアの温度を含む、請求項2記載のプロセッサ。
【請求項4】
前記複数のコアと前記共有キャッシュメモリとは、単一の半導体ダイ上に形成される、請求項1記載のプロセッサ。
【請求項5】
前記電圧レギュレータは、前記単一の半導体ダイ上に形成される統合電圧レギュレータを含む、請求項4記載のプロセッサ。
【請求項6】
前記単一の半導体ダイ上に形成される複数の統合電圧レギュレータを更に含む、請求項4記載のプロセッサ。
【請求項7】
前記複数の統合電圧レギュレータは、前記複数のコアの少なくとも1つに関連付けされる、請求項6記載のプロセッサ。
【請求項8】
前記複数の統合電圧レギュレータは、前記複数のコアの少なくとも1つに独立した電圧を提供する、請求項6記載のプロセッサ。
【請求項9】
前記電力制御ロジックは、オペレーティングシステム(OS)から、OS処理中における前記複数のコアの1つ以上のコアの電圧/周波数の動的な更新に対するパフォーマンス状態変更リクエストを受信する、請求項1記載のプロセッサ。
【請求項10】
前記電力制御ロジックは、前記複数のコアの少なくとも第2のコアへの電圧/周波数の提供と独立して、前記第1のコアへの電圧/周波数の提供を制御する、請求項1記載のプロセッサ。
【請求項11】
前記第1のコアは、制御情報と第1の電圧とを受信し、前記制御情報に応答して、前記第1の電圧を第2の電圧に調整する、請求項1記載のプロセッサ。
【請求項12】
前記電力制御ロジックを含むアンコア回路を更に含む、請求項1記載のプロセッサ。
【請求項13】
前記アンコア回路は、第1のワークロードについて第1の電圧及び第1の周波数で動作し、第2のワークロードについて第2の電圧及び第2の周波数で動作する、請求項12記載のプロセッサ。
【請求項14】
前記電力制御ロジックは、命令実行情報を含む、前記複数のコアのマクロアーキテクチャアクティビティをモニタするアクティビティモニタを含む、請求項1記載のプロセッサ。
【請求項15】
前記電力制御ロジックは、前記アクティビティモニタからの情報に基づき、以降の期間における前記第1のコアの使用を予測する、請求項14記載のプロセッサ。
【請求項16】
前記電圧レギュレータは、外部の電圧レギュレータを含む、請求項1記載のプロセッサ。
【請求項17】
前記プロセッサは更に、前記外部の電圧レギュレータに結合され、前記複数のコアの少なくとも1つに独立した電圧を提供する複数の統合電圧レギュレータを含む、請求項16記載のプロセッサ。
【請求項18】
前記電力制御ロジックは、前記プロセッサの熱設計電力(TDP)バジェットが維持されるように、第2のコアセットから独立して増加した電圧/周波数で実行するよう第1のコアセットを調整する、請求項1記載のプロセッサ。
【請求項19】
前記少なくとも1つの実行ユニットは、SIMD(Single Instruction Multiple Data)ロジックユニットを含む、請求項1記載のプロセッサ。
【請求項20】
前記複数のコアの少なくとも1つは、RISC(Reduced Instruction Set Computing)プロセッサを含む、請求項1記載のプロセッサ。
【発明の詳細な説明】
【背景技術】
【0001】
電力及び熱管理問題は、コンピュータベースシステムのすべてのセグメントにおける関心事である。サーバドメインでは、電気コストが低電力システムのニーズを促進し、モバイルシステムでは、バッテリ寿命及び熱制限がこれらの問題を関連するものにしている。最小限の電力消費において最大パフォーマンスのためにシステムを最適化することは、通常はオペレーティングシステム(OS)やシステムソフトウェアを用いてハードウェア要素を制御することにより行われる。大部分の現在のOSは、これらのエリアにおいてシステムを最適化するため、2006年10月10日に公開されたRev.3.0bなどのthe Advanced Configuration and Power Interface(ACPI)規格を利用する。ACPIの実現は、プロセッサコアが一般に、いわゆるC1〜Cn状態と呼ばれる異なる電力セービング状態(低電力又はアイドル状態とも呼ばれる)にあることを可能にする。同様のパッケージC状態がパッケージレベル電力セービングに存在するが、OS−visibleではない。
【0002】
コアがアクティブであるとき、それはいわゆるC0状態で動作し、コアがアイドルであるとき、それは、いわゆる、コア非ゼロC状態であるコア低電力状態に置かれる。コアC1状態は、最小限の電力セービングを有するが、ほぼ即座に出入り可能な低電力状態を表し、拡張されたディープ低電力状態(C3など)は、静的な電力消費が無視できるが、当該状態の出入りし、アクティビティに応答する(すなわち、C0に戻る)時間はより長い電力状態を表す。
【0003】
電力セービング状態に加えて、パフォーマンス状態又は、すなわち、P状態がまたACPIにおいて提供されている。これらのパフォーマンス状態は、コアがアクティブ状態(C0)にいる間、パフォーマンス電力レベルの制御を可能にする。一般に、複数のP状態、すなわち、P0〜PNが利用可能であってもよい。一般に、ACPIのP状態制御アルゴリズムは、パフォーマンスに影響を与えることなく電力消費を最適化することである。P0に対応する状態は、当該コアについて最大電圧及び周波数の組み合わせによりコアを動作させ、P1〜PNなどの各P状態は、異なる電圧及び/又は周波数の組み合わせによりコアを動作させる。このようにして、パフォーマンス及び電力消費のバランスが、プロセッサの利用に基づきプロセッサがアクティブである間に実行可能である。異なるP状態がアクティブモード中に利用可能である間、マルチコアプロセッサの異なる電圧及び周波数で動作する異なるコアについて独立したP状態は可能でなく、このため、せいぜいすべてのアクティブなコアが異なる周波数で動作可能であるが、それらはすべて同一の電圧を共有しなければならないため、所望のパフォーマンスレベルを実現しながら、最適な電力セービングを達成することはできない。
【図面の簡単な説明】
【0004】
図1図1は、本発明の一実施例によるシステムのブロック図である。
図2図2は、本発明の一実施例による方法のフロー図である。
図3図3は、本発明の他の実施例による方法のフロー図である。
図4図4は、本発明の一実施例によるプロセッサのブロック図である。
図5図5は、本発明の一実施例によるプロセッサコアのブロック図である。
図6図6は、本発明の一実施例によるシステムのブロック図である。
【発明を実施するための形態】
【0005】
各種実施例において、マルチコアアーキテクチャを有するプロセッサは、ACPI規格などによる電力パフォーマンス(P)状態のコア単位の制御を提供する。このようにして、より良好な電力消費及びパフォーマンスに対する制御が実現可能である。例えば、マルチコアプロセッサでは、少数のコアのみが熱制約環境においてより高いコア周波数により動作することが可能とされ、電力消費及び温度を低減しながら、所望のワークロードの実行を可能にする。
【0006】
従って、各種実施例では、プロセッサ内の複数のコアの各コアは、異なる電圧及び/又は周波数により動作するよう制御される。このようにして、非対称なワークロードが、決定的なパフォーマンスを提供するため複数のコア上で実行される。本発明の範囲はこれに限定されるものでないが、いくつかの実施例では、独立した電圧/周波数制御が、プロセッサ内の各コアが自らの電圧レギュレータを有するフル統合電圧レギュレータ(EIVR)を用いて実現されてもよい。すなわち、複数のコアを有する単一の半導体ダイはさらに、それぞれが所与のコアに関連付けされた複数の独立した電圧レギュレータを有してもよい。さらに、1以上の付加的な電圧レギュレータが、アンコアロジック又は非コアロジック(uncore logic)、メモリコントローラロジック、電力制御ユニットなどのプロセッサ内の他のコンポーネントにより利用するため提供されてもよい。もちろん、いくつかの実施例では、単一の電圧レギュレータが、プロセッサの1以上のコア及び/又は他のコンポーネントに関連付けされてもよい。一実施例では、専用の電圧レギュレータが、プロセッサのアンコア回路のために提供されてもよく、これは、アンコアが異なる電圧及び周波数により動作することを可能にする。計算中心のワークロードについて、アンコアは低電圧及び周波数により動作可能であり、ソケットレベルでより高いコア周波数に対する電力セービングを適用することになる。メモリ及びIO集中ワークロードについて、アンコアはより高い電圧及び周波数で動作可能である一方、コアはより低い電圧/周波数により動作可能であり、アンコアにおけるより高い電力を補償する。
【0007】
いくつかの実施例では、ACPIテーブルは、コア単位P状態制御を可能にするためこれら個々の統合された電圧レギュレータに関する情報を含むよう拡張されてもよい。例えば、4ビットフィールドがP状態情報をわたし、それを各レギュレータの電圧ロジックを制御するのに利用されてもよい。従って、本発明の実施例を利用して、各コアは、非対称なワークロードのために異なる周波数及び/又は電圧により動作するよう制御されてもよい。一例として、複数のコアの1つ又はいくつかが、より高い周波数及び/又は電圧により動作するよう制御可能である一方、残りのコアが、所与の熱設計電力(TDP)エンベロープ内に留まるようにより低い電圧/周波数の組み合わせにより動作するよう制御される。このようにして、決定的で最適なパフォーマンス能力選択が、所与のワークロードについて実現可能である。
【0008】
例えば、第1の方法によりデータを処理するため、より高いパフォーマンスレベルを求めるコアは、より高い電圧/周波数により動作可能であり(このようなコアは、データ複製サービス、データ解析、パリティ計算などのデータ処理利用などのタスクを実行するものであってもよい)、管理タスクなどを実行するコアは、TDP制約完了のため最適な合成を提供するより低い電圧/周波数により動作可能である。熱又はTDPバジェットが与えられると、(いわゆる、ターボモードにより)可能であるときはより高い周波数によりすべてのコアを日和見的(opportunistically)に動作させるのでなく、実施例は、個別コアベースにより決定的な動作を提供する。
【0009】
図1を参照して、本発明の実施例によるシステムの一部のブロック図が示される。図1に示されるように、システム100は、図示されるように、マルチコアプロセッサであるプロセッサ110を含む各種コンポーネントを有してもよい。プロセッサ110は、メイン調整電圧をプロセッサ110に提供するため第1電圧変換を実行可能な外部の電圧レギュレータ160を介し電源150に接続される。
【0010】
図示されるように、プロセッサ110は、複数のコア120a〜120nを含む単一のダイプロセッサであってもよい。さらに、各コアは、個々の電圧レギュレータ125a〜125nに関連付けされてもよい。従って、フル統合電圧レギュレータ(FIVR)の実現形態が、各コアの電圧、電力及びパフォーマンスの詳細な制御を可能にするため提供されてもよい。
【0011】
図1をさらに参照して、入出力インタフェース132、他のインタフェース134及び統合メモリコントローラ136を含む追加的なコンポーネントが、プロセッサ内に存在してもよい。図示されるように、これらのコンポーネントのそれぞれは、他の統合電圧レギュレータ125xにより電力供給されてもよい。一実施例では、インタフェース132は、物理レイヤ、リンクレイヤ及びプロトコルレイヤを含む複数のレイヤを含むキャッシュコヒーラントプロトコルにおいてポイント・ツー・ポイント(PtP)リンクを提供するインテル(登録商標)のQuick Path Interconnect(QPI)プロトコルに従うものであってもよい。さらに、インタフェース134は、PCI ExpressTM Specification Base Specification version 2.0(2007年1月17日に公開)などのPeripheral Component Interconnect Express(PCIeTM)規格に従うものであってもよい。説明の簡単化のため図示されないが、アンコアロジック、電力制御ユニット、キャッシュメモリ階層の1以上のレベルなどの内部メモリなどの他のコンポーネント追加的なコンポーネントが、プロセッサ110内にあってもよい。さらに、統合電圧レギュレータを備えた図1の実現形態が示されるが、実施例はこれに限定されるものでない。
【0012】
図2を参照して、本発明の一実施例による方法のフロー図が示される。方法200は、一実施例では、プロセッサの統合電力制御ユニット(PCU)などのコントローラにより実行されてもよい。しかしながら、本発明の範囲はこれに限定されず、方法200は、管理エンジンなどのシステム内の他のコントローラにより実行されてもよいことが理解されたい。
【0013】
図2を参照して、方法200は、PCUにおいてパフォーマンス状態変更要求を受信することによって開始される(ブロック210)。例えば、多数の実現形態において、当該要求はOA又はシステムソフトウェアから受信されてもよい。例えば、当該要求は、1以上のコアに対するP状態を変更するための要求に対応する。すなわち、このような実現形態では、OSは、本発明の実施例による提供されるコア単位P状態制御を認識している。他の実施例では、OS又はシステムソフトウェアが当該機能を認識していないときでさえ、パフォーマンス状態変更要求が、ここに開示されるように受信及び処理される。
【0014】
ダイヤモンド220において、パフォーマンスの増加が要求されているか判断される。すなわち、当該要求は、より高いパフォーマンスレベルの特定であってもよい(例えば、P1状態からP0状態に入るための要求など、現在のP状態より低いものに対応するなど)。また、当該判断は現在状態からP状態を変更することが可能であることを確認するものであってもよいことに留意されたい。パフォーマンスの増加が要求されている場合、制御はブロック230に移行する。ブロック230において、少なくとも他のコアから独立して電圧を増加するための1以上のコアの選択に関する判断が行われる。この判断の具体例として、PCUは、ダイ全体の電流、電力、温度及びマイクロアーキテクチャアクティビティ(ロード/ストアバッファ、スレッドスケジューラなど)などの各種ファクタに依存するTDPマージンに基づき、電圧及び関連する周波数を増加するよう決定してもよい。例えば、マルチコアプロセッサの一部がより冷たくなるよう(及びより低い電圧/周波数により動作するよう)決定された場合、当該部分内のコアが、増加した電圧及び周波数のために選択されてもよい。
【0015】
増加した電圧のため選択された1以上のコアが決定されると、制御はブロック240に移行し、選択されたコアについて新たな電圧及び周波数が計算される。このような計算は、プロセッサのためのTDP規格、Iccヘッドルームなどに少なくとも部分的に基づくものであってもよい。
【0016】
さらに図2を参照して、制御は次にブロック250に移行し、新たな電圧のための制御信号が1以上のコアに関連する電圧レギュレータに送信される。例えば、当該制御信号は、電圧レギュレータに異なる電圧レベルへの変更を開始させるためのデジタル制御信号又はアナログ制御信号であってもよい。従って、コアに関連するFIVRは、更新された電圧をコアに出力するため調整されてもよい。従って、制御はブロック260に移行し、当該コアは選択された電圧により動作する。多数の実施例では、電圧レギュレータはプロセッサ内に統合されてもよいため、当該調整は、オフチップレギュレータと比較して低減された遅延により行われるようにしてもよい。
【0017】
他方、ダイヤモンド220において、パフォーマンスの低下が要求されたと判断された場合、制御はブロック270に移行する。ブロック270において、少なくとも他のコアから独立して、電圧を低下させるための1以上のコアの選択が判断される(ブロック270)。このような決定は、上述されたようなファクタに基づくものであってもよく、異なるP状態への移動が許容されるという判断を含むものであってもよい。
【0018】
電圧低下のため選択された1以上のコアが決定されると、制御はブロック275に移行し、選択されたコアについて新たな電圧及び周波数が計算される。制御は次にブロック280に移行し、新たな電圧のための制御信号が、コアに関連するFIVRに低下した電圧をコアに出力させるため、コアに関連する電圧レギュレータに送信される。従って、制御はブロック290に移行し、コアが選択された電圧で動作する。図2の実施例における当該特定の実現形態より示されたが、本発明の範囲はこれに限定されるものでないことが理解されたい。例えば、上記説明は、PCUとコアとがマルチコアプロセッサなどの同一の半導体ダイの一部であることを仮定している。他の実施例では、コアは、独立したダイ上にあって、同一のマルチチップパッケージを有してもよい。さらなる実施例では、コアは、別々のパッケージにあるが、連動する電圧レギュレータなどを用いて電圧/周波数が共通に制御されてもよい。
【0019】
1つの他の実施例は、プロセッサが統合されたレギュレータを有しない実現形態である。このようなプロセッサでは、実施例は依然としてコア単位P状態制御を提供するよう収容可能である。このため、ブロック250又は280において、異なる電圧のための制御信号が、例えば、コアに直接提供可能であり、コアは受信した電圧に基づき電圧調整を提供することができる。さらなる実施例では、ブロック250及び280において、電圧変更のための制御信号が外部の電圧レギュレータにオフチップに提供可能である。この制御信号は、各ピンが外部の電圧レギュレータに複数の電圧の1つを提供させるため異なる電圧レベルと関連付けされる1以上のピンにより送信されてもよい。具体的には、このような実現形態では、外部の電圧レギュレータは、プロセッサに接続可能であり、さらに電力制御ユニットにより決定されるように対応するコアに選択された電圧が提供されるのを可能にするため、電圧制御ユニットから制御信号をさらに受信可能なプロセッサの電圧送信ロジックに接続可能な複数の電圧信号を出力するようにしてもよい。
【0020】
さらなる他の実施例では、例えば、いくつかのコアが1つのOSに専用とされ、異なる個数のコアが異なるOSに専用とされるマルチOSシステムでは、1つのOSドメインの各コアは固定的な(おそらく異なる)V/Fに静的に設定可能であり、他のOSドメインのコアは実行中に動的にV/Fを変更可能である。例えば、1つのOSドメインは、システムの管理処理などの決定的な処理に専用とされ、固定的なV/F制御に利用可能である。他方、各種ユーザレベルアプリケーションが実行されるOSドメインは、非決定的なワークロードを有し、本発明の実施例により動的な独立したV/F制御に利用されてもよい。
【0021】
いくつかの実施例では、コアV/Fの動的制御のため、PCUは、OSから独立してマイクロアーキテクチャアクティビティをモニタし、1以上のコアのV/Fが要求されるロード要求に依存して電力を増減するため動的に変更可能であるか判断することができる。
【0022】
図3を参照して、本発明の一実施例による方法のフロー図が示される。図3に示されるように、方法300は、プロセッサの電力制御ユニットにより実行されてもよい。方法300は、OSが本発明の実施例により提供されるコア単位P状態機能を意識しない場合、適切なものであってもよい。さらなる実施例では、方法300は、コアP状態の動的制御を改善するため、OSがP状態機能を意識する状況において上述された方法200に関連して実行されてもよい。
【0023】
図3に示されるように、方法300は、1以上のコアのマイクロアーキテクチャアクティビティをモニタすることによって開始される(ブロック310)。本発明の範囲はこれに限定されるものでないが、このようなアクティビティは、タイムウィンドウにおいて実行される命令数、タイムウィンドウ毎のリタイアメントなどを決定することを含むものであってもよい。
【0024】
マイクロアーキテクチャアクティビティから取得された情報に応答して、電力制御ユニットにより解析が実行される。より詳細には、ブロック320において、電力制御ユニットは、プロセッサのロード要求と共にアクティビティを解析する。例えば、ロード要求は、コアにスケジューリングされるスレッドの個数と当該スレッドがスケジューリングされたプロセスのタイプとに関する情報に基づくものであってもよい。
【0025】
その後、制御はダイヤモンド330に移行し、電力制御ユニットは、1以上のコアの電圧/周波数の少なくとも1つの動的な調整が適切であるか判断してもよい。例えば、アクティビティ及びロード要求が、電力とパフォーマンスとの間の適切なトレードオフが行われていることを示す場合、電力制御ユニットは、何れかの電圧/周波数の組み合わせを動的に調整しないことを選択してもよい。このため、方法300は終了する。
【0026】
他方、所与のコアについて少なくとも1つの電圧/周波数ペアを調整することが決定される場合、制御はブロック340に移行する。そこでは、新たな電圧及び周波数ペアが選択されたコアについて選択されてもよい。
【0027】
図3をさらに参照して、制御は次にブロック350に移行し、新たな電圧のための制御信号が、新たな電圧により更新のため、1以上のコアに関連する電圧レギュレータに送信可能である。このように、コアに関連するFIVRは、更新された電圧をコアに出力するため調整されてもよい。従って、制御はブロック360に移行し、コアは選択された電圧により動作する。図3の実施例では当該特定の実現形態により示されたが、本発明の範囲はこれに限定されるものでないことが理解されたい。
【0028】
例えば、他の実施例では、1以上のコアのV/Fが動的に変更可能であるだけでなく、アンコアの周波数及び電圧もまた要求されるコアのV/F要求をサポートするよう変更可能である。アンコア周波数は、OSにビジブル(visible)でないが、ダイ全体の電力セービングに寄与しうる。アンコア電力セービングは、コアパフォーマンスを増大させるコア電力に適用可能である。同様に、コアの電力セービングは、より高いアンコア周波数を要求するワークロードを収容するため、増加したアンコアの電圧/周波数に適用可能である。いくつかの実現形態では、この動的なアンコアの変更は、図3の方法300を用いて実行可能である。
【0029】
図4を参照して、本発明の実施例によるプロセッサのブロック図が示される。図4に示されるように、プロセッサ400は、複数のコア410a〜410bを含むマルチコアプロセッサであってもよい。一実施例では、このような各コアは、上述されるように、選択された電圧及び/又は周波数により動作するよう独立に制御されてもよい。このため、各コアは、対応する電圧レギュレータ412a〜412nに関連付けされてもよい。各種コアは、各種コンポーネントを含むアンコア420にインターコネクト415を介し接続されてもよい。図示されるように、アンコア420は、ラストレベルキャッシュであってもよい共有キャッシュ430を有してもよい。さらに、アンコアは、統合メモリコントローラ440、各種インタフェース450及び電力制御ユニット455を有してもよい。
【0030】
各種実施例では、電力制御ユニット455は、OS電力管理コードにより通信してもよい。例えば、OSから受信した要求とコアにより処理されるワークロードに関する情報とに基づき、電力制御ユニット455は、図2に関して上述されたものなど、各コアを実行するための電圧及び周波数の適切な組み合わせを決定してもよい。例えば、電力制御ユニット455は、各コアが実行中の電圧及び周波数を各エントリが関連付けるエントリを有するテーブルを含むものであってもよい。さらに、ユニット455は、TDP又は他の熱バジェットに関する情報を有するストレージを有してもよい。これらすべての情報に基づき、電力制御ユニット455は、TDPバジェット内に留まりながら、さらに日和見的なターボモード処理を必要とすることなく、決定的な処理を可能にし、非対称なワークロードをコアに提供するため、1以上のコアに対する周波数及び/又は電圧を動的にかつ独立に制御可能である。従って、このような計算に応答して、電力制御ユニット455は、電圧レギュレータに対応するコアに提供される電圧を制御させるための複数の制御信号を生成する。
【0031】
さらに、電力制御ユニット455は、図3に関して上述されるように、電圧/周波数の変更が1以上のコアについて適切であるか独立に判断してもよい。いくつかの実現形態では、電力制御ユニット455により実行される解析は、電力制御ユニットの一部であってもよいアクティビティモニタロジックにより決定される予測情報に少なくとも部分的に基づくものであってよい。このロジックは、動作中のコアに関連する情報を格納するためのバッファを有してもよい。アクティビティモニタは、現在のアクティビティレベルに関して各種コアからの入力データを受信する。アクティビティモニタのバッファは、各種方法により構成されてもよい。一実施例では、バッファは、各コアについて各電力状態変更イベントに関するタイムスタンプの表示を格納するよう構成されてもよい。アクティビティモニタは、コアが所与のアクティビティ状態に入出力するイベントを傍受及びタイムスタンプする。このモニタされたデータは、ストレージのインターバル中、各コアが所与の状態にどの程度の期間いたかを示すため、アクティビティ状態と共にタイムスタンプデータを含むものであってもよく、当該情報を利用してコアを動作させる独立した周波数及び/又は電圧の選択において利用可能な次のインターバルについて予測されたコア状態を決定する電力制御ユニットの予測手段などに提供されてもよい。
【0032】
図4をさらに参照して、プロセッサ400は、メモリバスなどを介しシステムメモリ460と通信する。さらに、インタフェース450によって、周辺装置、マスストレージなどの各種オフチップコンポーネントとの接続が可能である。図4の実施例では当該特定の実現形態により示されたが、本発明の範囲はこれに限定されるものでない。
【0033】
図5を参照して、本発明の一実施例によるプロセッサコアのブロック図が示される。図5に示されるように、プロセッサコア500は、マルチステージパイプラインアウトオブオーダプロセッサであってもよい。図5に示されるように、コア500は、統合電圧レギュレータ509の結果として各種電圧及び周波数により動作してもよい。各種実施例では、このレギュレータは、外部の電圧レギュレータなどから入力電圧信号を受信し、コア500に接続されるアンコアロジックなどから1以上の制御信号をさらに受信してもよい。
【0034】
図5に示されるように、コア500は、フェッチ命令が実行され、プロセッサにおける以降の利用のためにそれらを準備するのに利用されるフロントエンドユニット510を有する。例えば、フロントエンドユニット510は、フェッチユニット501、命令キャッシュ503及び命令デコーダ505を有する。いくつかの実現形態では、フロントエンドユニット510はさらに、マイクロコードストレージと共にマイクロ処理ストレージと一緒にトレースキャッシュを含む。フェッチユニット501は、メモリ又は命令キャッシュ503などからマイクロ命令をフェッチし、それらをプリミティブ、すなわち、プロセッサによる実行用のマイクロ処理に復号化するため、命令デコーダ505にそれらを提供する。
【0035】
マイクロ命令を受信し、それらを実行用に準備するのに利用されるアウトオブオーダ(OOO)エンジン515が、フロントエンドユニット510と実行ユニット520との間に接続される。より詳細には、OOOエンジン515は、マイクロ命令フローをリオーダリングし、実行に必要な各種リソースを割当て、さらにレジスタファイル530及び拡張レジスタファイル535などの各種レジスタファイル内のストレージ位置に論理レジスタをリネーミングするための各種バッファを含むものであってもよい。レジスタファイル530は、整数及び浮動小数点演算のための別々のレジスタファイルを有してもよい。拡張レジスタファイル535は、レジスタ毎に256又は512ビットなどのベクトルサイズのユニットのためのストレージを提供してもよい。
【0036】
他の特殊なハードウェアのうち、例えば、各種の整数、浮動小数点及びSIMD(Single Instruction Multiple Data)ロジックユニットなどを含む各種リソースが、実行ユニット520にあってもよい。例えば、このような実行ユニットは、他のこのような実行ユニットのうち1以上のALU(Arithmetic Logic Unit)522を含む。
【0037】
実行ユニットからの結果は、リタイアメントロジック、すなわち、リオーダバッファ(ROB)540に提供されてもよい。より詳細には、ROB540は、実行される命令に関連する情報を受信するための各種アレイ及びロジックを含むものであってもよい。当該情報は、その後、ROB540により調べられ、命令が有効にリタイア可能であるか、及びプロセッサのアーキテクチャ状態にコミットされる結果データを決定するか、又は命令の適切なリタイアメントを防ぐ1以上の例外処理が実行されたか判断する。もちろん、ROB540は、リタイアメントに関連する他の処理を処理してもよい。
【0038】
図5に示されるように、ROB540は、本発明はこれに限定されるものでないが、一実施例では、低レベルキャッシュ(L1キャッシュなど)であってもよいキャッシュ550に接続される。また、実行ユニット520は、キャッシュ520に直接接続可能である。キャッシュ550から、よりハイレベルなキャッシュ、システムメモリなどとのデータ通信が実行されてもよい。図5の実施例において当該ハイレベルなものにより示されたが、本発明の範囲はこれに限定されるものでないことが理解されたい。例えば、図5の実現形態は、いわゆる、x86命令セットアーキテクチャ(ISA)のアウトオブオーダマシーンに関するものであるが、本発明の範囲はこれに限定されるものでない。すなわち、他の実施例は、インオーダプロセッサ、ARMベースプロセッサなどのRISC(Reduced Instruction Set Computing)プロセッサ、又はエミュレーションエンジン及び関連する論理回路を介し異なるISAの命令及び処理をエミュレート可能な他のタイプのISAのプロセッサにより実現されてもよい。
【0039】
各実施例は、多数の異なるシステムタイプにより実現されてもよい。図6を参照して、本発明の実施例によるシステムのブロック図が示される。図6に示されるように、マルチプロセッサシステム600は、ポイント・ツー・ポイントインターコネクトシステムであり、ポイント・ツー・ポイントインターコネクト650を介し接続される第1プロセッサ670及び第2プロセッサ680を有する。図6に示されるように、プロセッサ670,680のそれぞれは、可能性としてはより多くのコアがプロセッサ内にあってもよいが、第1及び第2プロセッサコア(すなわち、プロセッサコア674a,674b及びプロセッサコア684a,684b)を含むマルチコアプロセッサであってもよい。各コアは、(図6の実施例では簡単化のため図示せず)プロセッサ内にある複数の独立した電圧レギュレータを用いて、独立した電圧/周波数により動作してもよい。
【0040】
さらに図6を参照して、第1プロセッサ670はさらに、メモリコントローラハブ(MCH)672とポイント・ツー・ポイント(P−P)インタフェース676,678とを有する。同様に、第2プロセッサ680は、MCH682とP−Pインタフェース686,688とを有する。図6に示されるように、MCH672,682は、各プロセッサにローカルに付属されたシステムメモリ(DRAMなど)の一部であってもよい各メモリ、すなわち、メモリ632,634とプロセッサとを接続する。第1プロセッサ670と第2プロセッサ680とはそれぞれ、P−Pインターコネクト652,654を介しチップセット690に接続されてもよい。図6に示されるように、チップセット690は、P−Pインタフェース694,698を有する。
【0041】
さらに、チップセット690は、P−Pインターコネクト639によりチップセット690とハイパフォーマンスグラフィックスエンジン638とを接続するためのインタフェース692を有する。さらに、チップセット690は、ストレージ619とインタフェースをとるためのストレージコントローラであってもよいインタフェース695を有してもよい。さらに、チップセット690は、インタフェース696を介し第1バス616に接続されてもよい。図6に示されるように、各種入出力(I/O)装置614は、第1バス616と第2バス620とを接続するバスブリッジ618と共に、第1バス616に接続される。一実施例では、キーボード/マウス622、通信装置626、コード630を有するディスクドライブ又は他のマスストレージ装置などのデータストレージユニット628などを含む各種装置が、第2バス620に接続されてもよい。さらに、音声I/O624が第2バス620に接続されてもよい。各実施例は、スマートフォン、タブレットコンピュータ、ネットブックなどのモバイル装置を含む他のタイプのシステムに搭載されてもよい。
【0042】
各実施例は、コードにより実現され、命令を実行するようシステムをプログラムするのに利用可能な命令を格納した記憶媒体に格納されてもよい。記憶媒体は、以下に限定することなく、フロッピー(登録商標)ディスク、光ディスク、ソリッドステートドライブ(SSD)、CD−ROM(Compact Disk Read−Only Memory)、CD−RW(CD−Rewritable)、光磁気ディスクを含むディスク、ROM、DRAM、SRAM、EPROM、フラッシュメモリ、EEPROMなどのRAMなどの半導体装置、磁気若しくは光カード又は電子命令を格納するのに適した他の何れかのタイプの媒体などの何れかのタイプの非一時的な記憶媒体を含むものであってもよい。
【0043】
本発明が限定数の実施例により説明されたが、当業者は、多数の改良及び変形を理解するであろう。添付した請求項はこのようなすべての改良及び変形を本発明の真の趣旨及び範囲内に属するものとしてカバーすることが意図される。
図1
図2
図3
図4
図5
図6