JP7214746B2 - 電力制御アービトレーション - Google Patents

電力制御アービトレーション Download PDF

Info

Publication number
JP7214746B2
JP7214746B2 JP2020551527A JP2020551527A JP7214746B2 JP 7214746 B2 JP7214746 B2 JP 7214746B2 JP 2020551527 A JP2020551527 A JP 2020551527A JP 2020551527 A JP2020551527 A JP 2020551527A JP 7214746 B2 JP7214746 B2 JP 7214746B2
Authority
JP
Japan
Prior art keywords
local
power control
processing
processing unit
global
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020551527A
Other languages
English (en)
Other versions
JP2021531526A (ja
Inventor
ロテム,エフレイム
ワイスマン,エリーザ
デヘマー,エリック
ジェンドラー,アレクサンダー
シュルマン,ナダヴ
シストラ,クリシュナカント
ローゼンツワイク,ニア
ヴァルマ,アンクシュ
サピロ,アリエル
アルバハリ,アリー
メラメド,イドー
ミスガヴ,ニア
ガーグ,ヴィヴェク
アンゲル,ニムロード
プランダレ,アドウェイト
コレム,エルカナ
Original Assignee
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2021531526A publication Critical patent/JP2021531526A/ja
Application granted granted Critical
Publication of JP7214746B2 publication Critical patent/JP7214746B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/263Arrangements for using multiple switchable power supplies, e.g. battery and AC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

ここに記載される実施形態は、概して、プロセッシングプラットフォームのプロセッシングエンティティの電力制御の分野に関する。
プロセッサは、処理しているアプリケーション(ワークロード)の要求に応じて動的に変化する電力要求を持つ。例えば、実行周波数f、及び対応するプロセッサコア電圧Vを選択することによって、プロセッサの幾つかの異なる性能状態が実現され得る。プロセッサ電力消費Pは、P=f×V×C+リークとして近似されることができ、ここで、Cはキャパシタンスである。リークは、トランジスタに電圧を印加することの結果として浪費される電力に対応して略一定である。従って、プロセッサ周波数及び電圧は、処理しているワークロードが高くていっそう速く動作するときに上昇されることができ、これは増大された電力消費をもたらすが、その一方で、プロセッサ周波数及び電圧は、プロセッサが低いワークロードを持つとき又は電力消費を減少させるためにアイドル状態にあるときに低下されることができる。
現行のプロセッシングプラットフォームでは、電圧及び周波数のうち少なくとも一方を動的にスケーリングすることによって、能動的な電力マネジメントを行うことができ、これは、動的電圧周波数スケーリング(Dynamic Voltage and Frequency Scaling;DVFS)として知られる技術である。DVFSは、プロセッサがより高い(又はより低い)性能状態を要求するときに実行されことができ、プロセッサ利用率における変化に基づき得る。より高い性能状態(より高い周波数状態)は、例えば処理中の熱違反又はピーク電流違反の検出などの、より高い周波数の選択を抑える何らかの他の制約又は制限がない限り、DVFSコントローラによって叶えられることが多い。より高い周波数で動作することは、例えばメモリ依存ストールなどの処理状態がスループットを制限してしまうことがあるので、より良好な処理スループットを保証しないことがある。DVFSアルゴリズムによるプロセッサ使用における変化のモニタリングは、例えばミリ秒の時間スケールといった、一定のインターバルで実行され得る。個々のプロセッサコアが、これらの時間スケールで電力管理を実行し得るとともに、例えばシステム・オン・チップ(SoC)上で提供されるものなどの、同じプロセッシングプラットフォーム上の他のプロセッシングユニットが、グローバル電力管理アルゴリズムに周波数要求を送信し得る。同一のプロセッシングプラットフォーム上で2つ以上のプロセッシングエンティティが提供される場合、DVFSアルゴリズムは、異なるプロセッシングエンティティからの性能レベル要求に順番にサービス提供して適切な動作周波数を割り当て得る。
ここに記載される実施形態は、同様の要素を似通った参照符号が指す添付の図面の図に、限定ではなく例として示される。
プラットフォームレベル電力制御ユニットと、性能レベルを調停する複数のSOCレベル電力制御アービタとを有するプロセッシングプラットフォームを概略的に示している。 プロセッシングエンティティのグローバル及びローカル双方の性能制御を有するプロセッシングプラットフォームを概略的に示している。 イベント周波数の様々な帯域幅と、それらの帯域幅に関する対応する性能制御マネジメントエンティティとを概略的に示している。 図1又は図2に示したものよりも詳細に、ローカル電力制御アービタ430のコンポーネント及び機能を概略的に示している。 ローカル電力制御アービタハードウェア及びソフトウェアを使用してプロセッサコア又は他のプロセッシングエンティティにどのように性能レベル設定が適用されるのかを概略的に示している; グローバル電力制御ユニットとローカル電力制御アービタとの間で異なるワークポイントリミット及びアルゴリズムがどのように細分化されるのかを概略的に示している。 ローカル・ツー・グローバル(L2G)メールボックスのレジスタレイアウトを概略的に示している。 グローバル・ツー・ローカル(GツーL)メールボックスのグローバル電力制御ユニットにおけるレジスタレイアウトを概略的に示している。 グローバル電力制御ユニット及びローカル電力制御アービタを使用して性能レベルワークポイントがどのように協働設定されるのかを概略的に示すフローチャートである。 ローカル電力制御アービタの機能を記述するハイレベルフローを概略的に示すフローチャートである。
本開示の例示的な実施形態は、以下に限られないが、プロセッシングユニットにおけるピーク電力決定のための方法、システム及び装置、並びに機械読み取り可能命令を含む。
図1は、プラットフォームレベル電力制御ユニット110と、図1の例においてグローバル電力制御を実装するものであるSOC120の1つ以上の個々のプロセッシングエンティティについて例えば動作周波数などの性能レベルを調停する複数のSOCレベル電力制御アービタ125b、127b、129bと、を有するプロセッシングプラットフォーム100を概略的に示している。プロセッシングプラットフォーム100は、電源セレクタ102、充電器104、バッテリ106、燃料計108、プラットフォームレベル電力制御回路110、及び1つ以上のシステム電力センサ112を有している。システムバス114が、プラットフォームレベル電力制御ユニット110と、SOC120と、プラットフォームレベル電力制御ユニット110が利用可能な電源からの電力を制御するSOC120以外の一組のシステムコンポーネントを表すプラットフォーム残部(Rest-of-Platform;ROP)130と、の間の通信経路を提供する。
この例におけるROP130は、メモリ132、ディスプレイ134、モデム136、及びカメラ138を有している。SOC120は、プラットフォームワイドの電力制御ユニット122と、1つ以上のSOCベースセンサ123と、SOCバス124と、プロセッシングコア125a及び対応するコア電力アービタ125bと、画像処理ユニット(Image Processing Unit;IPU)127a及び対応するIPU電力アービタ127bと、グラフィックス処理ユニット(Graphics Processing Unit;GPU)129a及び対応するGPU電力アービタ129bとを有している。プラットフォームワイドの電力制御ユニット110は、グローバル電力制御ユニットの例であり、コア電力アービタ125b、IPU電力アービタ127b、及びGPU電力アービタ129bの各々は、本技術に従ったローカル電力制御アービタの例である。グローバル電力制御ユニット及び(1つ以上の)ローカル電力制御アービタによって実装される協調的な性能レベル制御は、プラットフォームワイドの電力制御ユニット110からの周波数割り当てのみに頼ることによって可能であるものよりも短い時間スケールで、見られている処理状態に応答するようにプロセッシングユニット125a、127a、129aが性能レベルを変化させるための、より多くの自律性を可能にする。
本技術によれば、プラットフォームワイドの電力制御ユニット110から単に動作周波数を受信して実装するのではなく、各プロセッシングユニット125a、127a、129aが、例えば周波数上限、電圧上限、電力リミットなどの性能レベルリミットを受信する。コア電力アービタ125b、IPU電力アービタ127b、及びGPU電力アービタ129bは、異なるプロセッシングエンティティでは異なり得るものであるこれらの性能レベルリミットを制約として使用し得るとともに、さらに、ローカル電力アービトレーションなしで可能であるものよりも短い時間スケールで、動作周波数及び電圧の変更を実装し得る。例えば、コア電力アービタ125bは、例えば所与の時間ウィンドウにおいてコア125aによって単一スレッド処理が実行されているのか、それともマルチスレッド処理が実行されているのかなどの、コア125a内でローカルにアクセス可能な情報を用いて、又は、ワークロード依存であり、従って、プロセッサ負荷とともに変化するコア125aの動的キャパシタンスCdynを測定することによって、処理性能又は電力消費を最適化又は少なくとも改善するアルゴリズムをコア125a上に実装し得る。例えば、コア125aによって引き出される電力がSOCセンサのうちの1つによって測定されると、式P=C×V×fからCdynを求め得る。
IPU127aは、エレクトロニクス装置に一体化されたカメラからのカメラ画像を処理する撮像サブシステムとし得る。IPU127aは、センサと、カメラ制御チップセットと、画像信号プロセッサとを有し得る。IPU127aは、画像キャプチャ、ビデオキャプチャ、顔検出、及び画像処理機能をサポートし得る。
GPU129aは、コンピュータグラフィックス及び画像の処理を加速するように、フレームバッファ及びメモリ操作を使用してデータのブロックを処理する特殊化された高度に並列のプロセッシングユニットである。GPU129aは、各々が少なくとも1つの浮動小数点ユニット(floating point unit;FPU)を有する複数の実行ユニット(execution unit;EU)を有し得る。
電源セレクタ102は、プロセッシングプラットフォーム100に電力を供給するために幹線AC電源96からの電力に交流(AC)-直流(DC)変換を実行するACアダプタ96を選択し得る。しかしながら、幹線電力が利用できないとき、電源セレクタ102は、SOC120及びROP130に電力を供給するためにプロセッシングプラットフォーム100のバッテリ106を選択し得る。バッテリ106が完全に充電されていない場合、ACアダプタが電源セレクタ102によって制御されて、バッテリ106の充電レベルを増加させるために電力を供給するとともに、SOC120及びROP130に電力を供給する。
燃料計108は、例えば、クーロンゲージ又はセンス抵抗を用いて、充電サイクル中にバッテリに供給される又は放電サイクル中にバッテリから受け取られる電荷の総量をモニタすることによって、少なくともバッテリ電力及びバッテリ電流を決定するために使用され得る。燃料計108は、例えばクーロン又はアンペア時などの次元単位で、バッテリ充電レベル及び全バッテリ容量のうちの少なくとも一方を指し示すインジケーションを提供し得る。全バッテリ容量は、何度もの充放電サイクルの影響により、バッテリ寿命の間に値が低下し得る。燃料計は、従って、所与の時点におけるバッテリ106のピーク電力容量のインジケーションを提供することができ、これは、所定の時点におけるバッテリの較正及びバッテリ充電レベルに依存し得る。
プラットフォームワイドの電力制御ユニット110は、上記1つ以上のシステムセンサ112に結合されて、上記1つ以上のセンサ112の状態を指し示す情報を受信し得る。センサ112は、例えばバッテリ106若しくは電源セレクタ102に近接して、又は、例えばバス114若しくはプロセッシングプラットフォーム100に付随する他のコンポーネントなどの相互接続に近接してなど、システムのコンポーネントに近接して設けられ得る。SOCセンサ123は、コア125a、IPU127a、GPU129a及びバス124のうちの1つ以上に近接して設けられ得る。センサ112、123は、例えば、バッテリ充電レベル、バッテリ電流値、アダプタ電流値、温度、動作電圧、動作電流、動作電力、コア間通信活動、動作周波数、又はプロセッシングプラットフォーム100の電力マネジメント若しくは熱マネジメントに関連する他のパラメータといったものの測定値を提供し得る。
図1のSOC120は、プラットフォームレベル電力制御ユニット110からシステム電力信号PSYS111を、システムバス114を介して受信し得るとともに、システム電力がピーク電力閾値条件を含む1つ以上の閾値条件を満たすときにPSYS信号111を使用し得る。閾値条件は、プロセッシングプラットフォーム100の平均電力リミット又は瞬時電力リミットに関係し得る。閾値条件は、それより低いとシステム故障が発生しやすいVSYSの最小電圧値、又はそれより高いとシステム故障が発生しやすいPSYSの最大値(又は対応する最大の電流ISYS又は電圧VSYS)に関係してもよい。SOCに関する閾値電圧VTH及び最大許容システム電力PMAX_SYS及び最大許容システム電流IMAX若しくは電圧VMAXは、例えば、プラットフォームレベル電力制御ユニット110からの情報に基づいて、SOC内のソフトウェアによって設定され得る。他の例において、SOC120に関するこれらの電力制限パラメータは、プロセッシングプラットフォーム上の組込コントローラ(図示せず)によって設定されてもよい。また、本技術によれば、グローバル電力制御ユニット110は、コア125a、IPU127a、及びGPU129aのうちの1つ以上に、上限周波数若しくは上限電圧若しくは上限電力の割当て、又は2つ以上の上限値の組み合わせを割り当て得る。
上側閾値が破られることによるシステム障害を防止するためのスロットリング信号のアサーションのトリガーは、値VTH、IMAX、及びPSYS_MAXのうちの1つ以上に依存し得る。スロットリング信号は、SoCの電力低減機能を起動して、スロットリング信号がアサートされることの予測可能な時間ウィンドウΔt内でプロセッサ周波数を低下させ得る。一部の例における電力低減機能は、閾値が超えられることに応答して受身的に、又は閾値が超えられることを防止するために先制的に、のいずれかでグローバル電力管理回路110によって実装される。一部の電力閾値は平均電力インジケータに関係し、他の電力閾値は、プロセッシング活動における“スパイク”に関連する瞬時電力特性に関連し得る。本技術によれば、例えば特定の電力閾値などの電力低減機能のうちのサブセットが、ローカル電力制御アービタ125b、127b、129bによってローカルに実装され得るとともに、プロセッシング活動におけるスパイクが、ローカル電力制御アービトレーションハードウェア及びソフトウェアを設けることにより、より高い分解能で(より短い時間スケールで)解消され得る。
システムセンサ112及びSOCセンサ123のうちの少なくとも1つからのフィードバックに基づいて、例えば、処理ユニットの熱的限界に応じて、更なる電力制御信号がシステムバス114を介して送られ得る。例えば、SOCセンサ123は、プロセッシングユニット125a、127a、129aからの温度及び電力消費の測定値を、バス114を介して、プラットフォームワイドの電力制御回路110へフィードバックし得る。
プラットフォームワイドの電力制御ユニット110は、SOC120及びROP130を含め、全体としてのプラットフォームに適用可能な閾値を扱い得る。例えば、プラットフォームワイドの電力制御ユニット110は、ROP130及びSOC120によって引き出される総電力が、選択された電源から現在利用可能な最大システム電力PSYSを超えないことを保証し得る。利用可能な最大電力は、例えば、バッテリ106の充電レベルが枯渇するにつれて変化し得る。プラットフォームワイドの電力制御ユニット110は、電源セレクタからの入力電圧103と、燃料計108からの信号109を介したバッテリ充電レベルのインジケーションと、節電モード若しくは性能増強モードが現在選択されているかを指し示すEPP(Energy Performance Preference)として表されるユーザ嗜好のインジケーションと、例えばプロセッシングプラットフォーム100を幹線AC電源98に接続するドッキングステーションからのプロセッシングプラットフォーム100のアンドッキング及びドッキングなどのシステムイベントのインジケーションと、を受け取り得る。EPPは、オペレーティングシステムによって提供されてもよいし、ユーザプログラム可能な値であってもよい。プラットフォームワイドの電力制御ユニット110は、各プロセッシングエンティティについて1つ以上の性能リミットを決定し得る。性能リミットは、例えば、周波数リミット、電圧リミット、電流リミット、又は電力リミットとし得る。これら(1つ以上の)性能リミットは、所与のプロセッシングエンティティについての上限及び下限のうちの少なくとも一方を含み得る。
一部の実施形態において、プロセッシングプラットフォーム100は、SOC120のみを有して、ROP130コンポーネントを有しないことがある。プラットフォームワイドの電力制御ユニット110は、プラットフォームコンポーネントによって引き出される電力がPSYSを超えないように該電力を制御するとともに、例えばコア125aなどのプロセッシングユニットに関連する電力消散及びジャンクション温度の動作状態リミットとの適合性を維持するように、プロセッシングプラットフォーム100の適切な熱マネジメントを確保し得る。コア125aを熱的なリミット及び他の設計リミット内で動作させることで、コア125a及びプラットフォーム100の他のコンポーネントへの不用意なダメージを防止することができる。プラットフォームワイドの電力制御ユニット110及びローカル電力制御アービタ125b、127b、129bのうちの少なくとも1つが、例えば無制限に持続可能であり得るプラットフォーム100の平均電力に関する閾値を提供する第1の電力リミットPL1などの、1つ以上の電力リミットを実装し得る。PL1の値は、プロセッシングプラットフォームの熱設計リミットに設定され又はその近くに設定され得る。
プロセッシングエンティティの性能をモニタするために、複数の異なる性能パラメータが使用されてもよい。例えば、プロセッシングユニットの“利用率”は、トータルの利用可能な処理サイクルのうち、プロセッサ(複数の物理コアを有し得る)が、スリープ状態、節電モード、又はオフ状態ではなく、アクティブ状態であるときの割合を指し得る。利用率は“ロード”と呼ばれるときがあるが、この“ロード”は、ワークロード(実行すべき命令を有する処理タスク)とは異なる。ワークロードは、所与のプロセッサによる実行を受けて、プロセッサの対応する利用率、及び対応するスケーラビリティ(以下にて定義する)をもたらし得る。所与のワークロードの利用率及びスケーラビリティの瞬時測定値は、実行時間中に変化し得る。スリープ状態では、処理を中断することによって電力消費が低減されるが、“目覚め”が電力オフ状態からよりも速くなるように幾らかの電力が保持される。
プロセッサは、アクティブモードにおいてさえ複数の異なる電力状態を提供し得るが、アクティブ状態とは、プロセッサ状態が完全にオンであり且つシステムクロックがオンであることを指す。アクティブ状態は、コードが実行されているときの物理コアの通常状態である。マルチスレッド処理の場合には、プロセッサコア内のいずれかのスレッドがアクティブであれば、コアの状態はアクティブであると決定され得る。“スリープ”状態では、プロセッサ状態は完全にはオンでないが、システムクロックはオンである。プロセッサ性能レベルは、オペレーティングシステムを介して、又は専用若しくは特殊目的のハードウェアを介して、又はハードウェアとソフトウェアとの組み合わせを用いて制御され得る。プラットフォームワイドの電力制御ユニット110は、処理ワークロード要求(例えば、実行されているプログラムアプリケーションのタイプ)、処理ハードウェアの熱リミット、最大電力、電圧、周波数及び電流レベル、並びにオペレーティングシステムによって要求される性能のアクティビティウィンドウ、のうちの1つ以上を考慮に入れ得る。
プロセッシングユニットの“スケーラビリティ”とは、プロセッシングユニットの所与の処理ワークロードの実行時間が動作周波数とともにどのように変化し得るのかを指し得る。例えば、多数のストールを生じさせるワークロードは、少ししかストールを生じさせないワークロードよりもスケーラブルでないとし得る。ストールは、例えば、メモリから返されるデータへの依存性のために発生し得る。従って、利用率は、プロセッサがアクティブであるときの尺度を提供し得るのに対し、スケーラビリティは、プロセッサがアクティブであるときに行われるのに有用な(ストールのない)作業の尺度を提供し得る。理解されることには、スケーラビリティが低いときに処理周波数を高めることは、スケーラビリティが高いときよりもワークロードスループットの増加率が小さい可能性が高い。これは、例えばメモリ依存ストールなどのストールは、ストール時間がプロセッシングユニット実行クロック速度の明確な関数ではないので、プロセッシングユニットの周波数を高めてもて改善されないからである。
既知のシステムにおいて、プロセッシングユニットの性能レベル(例えば、動作周波数)の選択は、プラットフォームワイドの電力制御ユニット110又は何らかの他のグローバル電力制御ユニットによって、システム電力閾値に基づいて行われており、また、新たな性能レベルを選択するときにプロセッシングユニット125a、127a、129aに対して新たな周波数を分配するために、プロセッシングエンティティの利用率及びスケーラビリティを考慮に入れることがあった。
対照的に、本技術によれば、個々のプロセッシングユニット125a、127a、129aが、ローカルにモニタする処理状態に基づいて、動作周波数を選択する際にある程度の自律性を持つことが可能にされ得る。この例におけるプラットフォームワイドの電力制御ユニットは、動作周波数又は電圧を直接設定するのではなく、プロセッシングユニット動作周波数又は動作電圧に上限を設定する。そして、実際の動作周波数又は電圧は、プロセッシングユニットにおいて、それぞれのローカル電力制御アービタ125b、127b、129bにより、ローカルな処理状態をモニタし、グローバルに設定されたリミットを超えることなく複数の性能レベルのうちの1つを選択することによって、ローカルに自律的に設定され得る。グローバル周波数リミットが第1の時間スケールで更新され得るのに対し、ローカル動作周波数の更新は、第1の時間スケールよりも短い第2の時間スケールで実行されて、よりきめ細かい制御を与え得る。
一部のプロセッシングユニットは、ユニットの性能レベルに影響を及ぼす2つ以上の関連付けられた動作周波数を持ち得る。例えば、IPU127aは、別々に制御され得るものである入力サブシステム周波数とプロセッシングサブシステム周波数とを持ち得る。単一コア125の代わりに、SOCは、複数の物理コアを持つマルチコアプロセッサを有し得る。
マルチコアプロセッサでは、例えば、それらのアクティブコアの全ての間で要求される最も高い周波数性能状態を、割り当てる周波数として選択することによって、全てのアクティブプロセッサコアが同じ周波数及び電圧を共有し得る。コア125aは、関連付けられた周波数及び電圧パラメータを持つ複数の性能動作点を有し得る。動作点は、EPPパラメータの値に応じて電力効率又は性能を優先するように選択され得る。周波数選択は、1つ以上のCPUレジスタに書き込むことによってソフトウェア制御され得る。そして、コア125aの場合、選択された周波数に応じて動作電圧が選択され得る。性能状態間の低い遷移レイテンシにより、グローバル電力制御ユニット110は、各プロセッシングユニット125a、127a、129aに対して、毎秒複数の性能レベル遷移(例えば、図3に示すように、10ミリ秒と100μsとの間の更新頻度)を実現することができ得る。
GPU129は、性能、電力及び熱的制約を維持管理するために性能状態間で動的に調節を行うドライバを有し得る。GPU129aの電圧は、それをスリープ状態に置くために下方に調節され得る。節電を行うために、GPU129a上の負荷を低減させ、より低い速度で動作されることを可能にするよう、フレームレートが制限されてもよい。従って、GPU129は、利用可能なシステム電力PSYSに応じて周波数又は電圧又は電流リミット内で動作するように、GPU電力制御アービタ129bと協働するプラットフォームワイドの電力制御ユニット122によって制御され得る。
一部の既知のシステムでは、コア125aへの動作周波数の割り当てが、例えばおよそ毎ミリ秒といった一定のインターバルでプロセッサコアの利用率及びスケーラビリティをモニタし、測定された量に平均化を適用するように構成されたDVFSアルゴリズムに従って制御されることがあった。例えばIPU127a及びGPU129aなどの他のDVFS対応プラットフォームコンポーネントが、それらの周波数要求をプラットフォームワイドの電力制御ユニット122のグローバル電力管理アルゴリズムに送信することがあった。同様に、マルチコアプロセッサの場合に、複数のコアの各々が、例えば、スループットを高めるため又は電力を節約するために、プラットフォームワイドの電力制御ユニット122にそれぞれの周波数要求を送信することがあった。それら複数によって要求された周波数の中で最も高い要求周波数が選択されることがあり、それにより、少なくとも、より低い動作周波数を要求したコアにとって、性能利得を伴わない電力消費を生じさせることがあった。
CPU以外のプロセッシングユニット127a、129aは、それぞれのプロセッシングユニットについての電力を意識した管理を実行しない傾向があるが、周波数要求を行われることがあった。既知のシステムでは、性能に基づく調整の電力影響を十分に検討することなく、最良の性能を取り出すことに強い焦点が当てられてきた。コア125aの動作周波数は、利用率及びスケーラビリティにおいて観測された変化に基づいて選択されることがあった。性能状態は、システム電力PSYSに対するコア125a電力の比を使用して、しかしまた、コア125a以外の全てのプラットフォームコンポーネントからの電力を静的なSOC電力と見なして、性能状態が決定されることがあった。利用率閾値が超えられることに応じて、“ターボ周波数”として知られる高周波性能レベル又はブースト性能レベルが割り当てられることがあった。システムは、電力消費量を望ましいレベルまで低減させるようにプロセッシングユニットの動作周波数を低下させることによって電力消費を受身的に抑制するために、例えば、熱的な警告がトリガーされること又はピーク電流違反に対応した、望ましいものよりも高い電力消費に受身的に反応することがあった。
そのような既知のシステムにおいて、コア125aの電力管理アルゴリズムが、例えばIPU127a及びGPU129aなどの他のプロセッシングユニットに周波数を付与する中央集権的なアービタ及びコントローラであることがあった。対照的に、本技術によれば、各DVFS対応プロセッシングユニット125a、127a、129aが、それぞれのユニットの自律的ではあるが上限制約された周波数割り当てを可能にする電力制御を実行するためのユニット固有のアルゴリズムを有し得る。例えばグローバル電力コントローラ及びローカル電力制御アービタ125b、127b、129bのうちの1つ以上などの、2つ以上の電力コントローラ間で一部の性能レベル選択能力を分散させることは、様々なプラットフォームアーキテクチャにとって、既知の中央(グローバル)電力管理アプローチよりもスケーラブルである。実施形態例の自律的ローカル性能レベル選択は、電力効率と性能増強とを区別する性能レベルの嗜好が、単にコア125に対してではなく、各プロセッシングユニット125a、127a、129aに対して入力されることを可能にする。さらに、各プロセッシングユニット用の電力制御アービタ125b、127b、129bに熱リミット、並びに上限電流、上限周波数、上限電圧、及び電力消費リミットを与えることができ、また、これらのリミットを第1の時間スケールで更新することができる。そして、プロセッシング性能パラメータに対するこれらの上限は、それらが更新されるまで、対応するローカルプロセッシングユニットにおける周波数選択制約としてローカルに実装され得るが、ローカルプロセッシングユニット125a、127a、129aは、処理状態に対する細かい変化を考慮に入れるように、第1の時間スケールよりも短い第2の時間スケールで実際の動作周波数及び電圧を選択する自律性を有する。ローカル電力制御アービタ125b、127b、129bによるこの半自律的周波数選択の使用は、性能及び電力消費のうち少なくとも一方を微調整するために使用されることができる。示されていることには、例えばプロセッサコアなどのプロセッシングユニットの動作周波数を設定することにおける、グローバル電力制御ユニットとローカル電力制御ユニットとの間での協調というこの新たなアプローチは、以下を行うことができる:
・ クライアントとサーバの実施形態において、一部の例でおよそ10%だけ性能を向上させることができる;
・ より高い周波数に達することを可能にする、最大動作電流ICCmax違反のきめ細かいクリッピングにより、既知のシステムに対して性能を高めることができる;
・ いっそうきめ細かい位相のマネジメントにより、完全一体型電圧レギュレータ(Fully Integrated Voltage Regulator;FIVR)効率を向上させることができ、これは、少なくとも2-6%のコア電力低減を提供し得るとともに、電力制限されるシナリオにおいて対応する性能利得を与え得る;
・ 個々のプロセッシングユニットにおいて、より高速なインテリジェント周波数スイッチを可能にし、例えば、入り混じった命令幅を持つワークロードについて少なくとも約10%の性能改善を提供する。
図2は、プロセッシングエンティティのローカル電力マネジメント及びグローバル電力マネジメントの双方を含んだ階層的電力マネジメントを有するプロセッシングプラットフォーム200を概略的に示しており、グローバル電力コントローラ及びローカル電力アービタを図1の実施形態よりも詳細に示している。プロセッシングプラットフォーム200は、全てがシステムバス211に接続された第1のプロセッサ210a、第2のプロセッサ210b、第3のプロセッサ210c、及び第4のプロセッサ210dを含む複数のプロセッサを有している。バス211にはメモリ212も接続されている。図2には単一の電源202及び電圧レギュレータ204が示されているが、追加の電源及び電圧レギュレータが設けられてもよい。電圧レギュレータ204は、単一の電力プレーンを介して又は複数の電力プレーンを介して、プロセッシングコア又はプロセッサに接続され得る。
グローバル電力制御ユニット220は、図2の実施形態において第1のプロセッサ210a内に設けられることができ、これは、プロセッサ固有ではなくプラットフォームワイドであるグローバル電力制御ユニット110を示す図1の構成とは異なる。実施形態は、グローバル電力制御ユニットについて図1の構成又は図2の構成のいずれかに限定されるものではなく、グローバル電力制御ユニットは、代わりに、電圧レギュレータ、電源、その他のプロセッシングプラットフォームエンティティに結合されたり組み込まれたりしてもよい。グローバル電力コントローラを用いて性能レベルリミットを設定し、1つ以上のグローバルリミットの制約内で、よりローカルレベルで、より短い時間スケールでの性能レベル選択を実行できることは、より効果的で効率的な、動的な電圧及び周波数スケーリングを提供する。グローバル電力制御ユニット220は、グローバルコントローラハードウェア222と、不揮発性メモリ内のファームウェアとして提供され得る機械読み取り可能命令を有するグローバルコントローラコード224とを有する。
第1のプロセッサ210aは更に、ローカルアービタハードウェア232a及び対応する第1のローカルアービタコード232bを有する第1のローカル電力アービタ230aを含んでいる。第1のローカルアービタコード232bは、ファームウェアとして提供され得る機械読み取り可能なプログラム命令を有する。第1のローカルアービタ232aは、第1のプロセッサコア242aの動作周波数を設定するように構成される。第1のプロセッサ210aの第2のローカル電力アービタ230bが、第2のローカルアービタハードウェア232b及び第2のローカルアービタコード234bを有し、第2のコア252及びGPU254を有する2つの別個のプロセッシングユニットの動作周波数を設定するように構成される。第2のローカルアービタ230bについて、グローバル電力制御ユニット220は、第2のコア252及びGPU254の双方に対して集合的に周波数リミットを設定し、また、第2のローカルアービタ230bは、グローバルに設定されたリミット以下であるが、自律性を持って、第2のコア252及びGPU254の双方に共通の実際の動作周波数を設定する。第2のローカルアービタ230bは代わりに、第2のコア252及びGPU254の各々に対して異なる周波数を設定してもよい。第1のプロセッサ210a内のバス215が、グローバル電力制御ユニット220と、第1のローカル電力アービタ230a及び第2のローカル電力アービタ230bの各々とを接続する。
グローバル電力制御ユニット220によって第1のローカル電力アービタ230a及び第2のローカル電力アービタ230bに供されるローカル性能リミットは、周期的又は間欠的に更新され得るが、ローカル電力制御アービタ230a、230bのいずれによって実行されるローカルプロセッシングユニットの性能レベルマネジメントよりも粗い時間スケールでの更新である。
図6によって更に詳細に示されるように、グローバル電力制御ユニット220によってモニタされるリミットとは異なるリミットがローカル電力制御アービタ230a、230bによってモニタされ得るが、ローカル電力制御アービタ230a、230b上ではスケーラビリティアルゴリズムが、グローバル電力制御ユニット220上で実行されるスケーラビリティアルゴリズムよりも短い時間スケールで解決するように実行され得る。異なる実装は、ローカル及びグローバルに、異なる時間パーティションを使用し得る。ローカル電力制御アービタが、単一のコアに、又は複数のコアのうち総数よりも小さいサブセットに、サービス提供する実施形態において、例えば複数のコアを参照するリミットなどの、一部のリミットは、グローバル電力制御ユニット220によって実装されるままとし得る。ローカル電力制御アービタ230a、230bは、100%利用率で動作しているときに所与の回路セットによって引き出されることが許される最大電流であるICCmax制限を実装し得る。複数の異なる処理パラメータをモニタし、複数の異なるリミットを実装する責任の委譲が、グローバル電力制御ユニット220とローカル電力制御アービタ230a、230bとの間で必要に応じて構成され、異なる責任の割り当てによって性能又は電力効率が改善されることができる場合に、その構成が実装されるようにし得る。
ローカルアービタハードウェア232a、234bは、対応するローカル処理ユニットに適切な性能レベルを適用し、処理状態が変化するときにローカル性能レベルを更新するとともに、より低いレートでグローバル電力制御ユニット220と通信する。第2のアービタハードウェア232bは、GPU254から、その性能レベルに対する調節の要求を受信し得る。そして、第2のローカルアービタコード234bが、GPU要求の受信に確認応答するために確認応答信号を第2のアービタハードウェア232bに送信し、次いで、3つのプラットフォームプロセッシングエンティティ242a、252、254の全てに対して性能レベルリミットを設定する観点から、変更要求への適切なグローバル応答を決定するために、GPU要求をグローバル電力コントローラ220に中継し得る。そして、グローバル電力コントローラ220が、適切な性能リミットに関する応答を第2のローカルアービタコード234bに送り返し得るとともに、それが、次いで、第2のローカルアービタハードウェア323bによってリミットとして実装され得る。しかし、性能レベルリミットのこの更新は、ローカルに実装される動作周波数及び電圧への更新ほど規則的には行われない。ローカル電力制御アービタ230bは、GPU254からの要求に応答して、例えばGPU254に固有のローカルにデータ投入された周波数及び電圧のテーブルのエントリなどの、複数の所定の性能レベルから選択することができ、また、第2のローカルアービタハードウェア232bは、グローバル電力コントローラ220のみを用いて可能であるよりも迅速にGPU要求に応答する能力を持つ。何故なら、例えば第1のコア242aなどの他のプラットフォームコンポーネントからグローバルコントローラへのアクセスに対する競合が存在し得るためである。これは、プロセッシングエンティティが仲介物なしで直接的にグローバル電力制御ユニット220と通信することによって可能であるよりも短い時間スケールで、ローカル処理特性に対する変化への適応性を提供する。この実施形態によれば、ローカル電力コントローラ230bは、GPU254の性能レベル変更要求を、ローカル電力アービタ230bを介してグローバル電力コントローラ220に中継する。この要求は、先ず、第2のローカル電力アービタハードウェア232bによってGPU254から受信され、そして、ローカル電力制御アービタ230b内で第2のローカルアービタコード234bに転送されてから、グローバル電力コントローラ220に通信され得る。
複数のプロセッシングエンティティのうちの異なるものからの個々の性能変更要求に順にサービス提供する例えば220などのグローバル電力制御ユニットのみを有する既知のシステムとは対照的に、本技術によれば、複数のローカル電力制御アービタ230a、230bが、それぞれのローカルプロセッシングユニット242a、242b(各々が1つ以上のプロセッシングエンティティを有する)に設けられ、ローカルプロセッシングユニットの各々が、対応するプロセッシングエンティティ242a、252、254のためにグローバル電力制御ユニット220と通信し得る。図4に更に詳細に示すように、第1のローカルアービタコード234aとグローバルコントローラコード224との間、及び同様に第2のローカルアービタコード234bとグローバルコントローラコード224との間で、コマンドが送られることを可能にするメールボックスが設けられ得る。第1のローカルアービタコード234a及び第2のローカルアービタコード234bに関して、グローバルコントローラコード224への競争ベースのアクセスが行われ得る。しかしながら、第1のコア242aから第1のローカル電力アービタ230aへの、並びに第2のコア252及びGPU254から第2のローカルアービタコードへの、性能変更要求は、競合が減少する又はないために、より迅速にサービス提供され得る。従って、ローカル電力制御アービタ230a、230bを設けることは、さもなければ例えばグローバル電力制御ユニット220からの処理性能の増加などの計算リソースを要求するときに2つ以上のローカルプロセッシングユニット242a、242bによる競合の結果として生じ得る通信ボトルネックを改善する。
図3は、イベント周波数の様々な帯域幅と、それらの帯域幅に関する対応する性能制御マネジメントエンティティとを概略的に示している。図3の左側の、軸の最も低い周波数端から始めて、第1の帯域幅310は、オペレーティングシステムによって管理され得る0から100Hz(10ms以上の分解能)まで延在し、オペレーティングシステムは、例えば、ワークロード要求に応じて個々のプロセッサコアを1つ以上のスリープ状態とアクティブ状態との間で遷移させることによって、この帯域幅で電力を制御し得る。第2の帯域幅320は、100Hzから10kHz(10msから100μsの分解能)に対応し、この帯域幅での周波数遷移は、既知のタイプのもののようなプラットフォームワイド(グローバル)の電力制御ユニットのプログラムコードによって管理され得る。グローバル電力制御ユニットソフトウェアは、図3では“pコード”と表記されるが、この説明では代わりに、グローバルコードの略称として“Gコード”と表記されることもある。第3の帯域幅330は、10kHzから100kHz(100μsから10μsの分解能)の周波数レンジに対応し、これは、ローカル電力マネジメントファームウェア、又は等価的に“aコード”又は本技術に従ったローカル電力制御アービタハードウェア上で走る(ローカルコードの略称としての“Lコード”と表記されるプログラムコードによって管理され得る。第4の帯域幅340は、100kHzから1MHz(10μsから1μsの分解能)の周波数レンジに対応し、この第4の帯域幅は、本技術に従ったローカル電力アービタハードウェアによって管理され得る。第5の帯域幅350は、1MHzから1GHz(1μsから1ns)の周波数レンジに対応し、コアファームウェア又は等価的に“uコード”によって管理され得る。第6の帯域幅360は、1GHz以上(1ns以下)の周波数レンジ範囲に対応し、コアハードウェアによって管理され得る。
実施形態例は、10kHzから1MHz(100μsから1μs)にわたる第3及び第4の帯域幅330、340を組み合わせた周波数レンジが、このレベルの粒度での電力マネジメント制御の効果的な手段を持っていなかったという既知の技術の不足に対処する。従って、グローバル電力制御ユニットに加えて1つ以上のローカル電力アービタを設けることは、イベント切換え周波数における隙間を埋めて、10kHzから1MHzの周波数レンジ内のイベントを考慮に入れる性能レベル選択を可能にし、それ故に、電力マネジメントの全体的な効率及び有効性を向上させる。
図4は、プロセッシングユニット410と、グローバル電力コントローラ420とのインタフェース452を有するローカル電力制御アービタ430とを概略的に示している。図4は、図1又は図2に示したものよりも詳細に、ローカル電力制御アービタ430のコンポーネント及び機能を示している。ローカル電力制御アービタ430は、マイクロコントローラ432と、命令ランダムアクセスメモリ(I-RAM)434と、データランダムアクセスメモリ(D-RAM)436と、ワークポイントレジスタのセット454とを有している。ローカル電力制御アービタに対応するLコード(図示せず)が、集積マイクロコントローラ432上で実行され、インタフェース452を介してグローバル電力コントローラ420から受信されるローカル性能リミットに応じて、ワークポイントアービタ456及び状態マシン458を介して、プロセッシングユニット上のワークポイント設定の制御を実行する。ワークポイントとは、例えば、あるプロセッシングエンティティについての周波数及び電圧設定とし得る。
ローカル電力制御アービタ430とグローバル電力コントローラ420との間での情報の通信を可能にするために、ローカル・ツー・グローバル(L2G)メールボックス424が、グローバル電力コントローラ420の一部として設けられるとともに、グローバル・ツー・ローカル(G2L)メールボックス464が、ローカル電力制御アービタ430の一部として設けられる。L2Gメールボックス424は、図7Aに更に詳細に示されており、これは、一度に1つのコア(又は他のプロセッシングユニット)のみにサービス提供するものであるL2Gメールボックス424の制御を所与のローカル電力制御アービタが得ていることを条件として、LコードがGコードにコマンドを送信することを可能にする。G2Lメールボックス464は、Gコードが一度に所与のコアのLコードにコマンドを送信することを可能にするものであり、図7Bに更に詳細に示される。グローバル電力コントローラ420はまた、ローカル電力制御アービタ430に情報をブロードキャストするためのテレメトリレジスタのセット422のセットを有する。
制御情報411及びステータス情報413及び他のデータが、図示のように、プロセッシングユニット410とローカル電力制御アービタ430との間で通信され得る。
ワークポイントアービタ456は、グローバル電力コントローラ420によって現在設定されているローカル性能リミット460を受け取るとともに、例えば、ワークロード、スケーラビリティ値、現在実行中のスレッドの数、動的キャパシタンス推定値、引き出されている電力、引き出されている電流、電圧測定値、及び温度のうちの1つ以上など、に関するプロセッシングユニットステータス情報462を受信する。一部の実施形態において、ローカル性能リミットは上限周波数であるが、これに限定されず、ローカル性能リミット460は、例えば、最大電圧、最小電圧、最小周波数、若しくは電力リミット、又は複数の異なるリミットの組み合わせであってもよい。マイクロコントローラ432は、I-RAMからのLコード命令を実行して、例えば、ワークロードの細かい粒度でのスケーラビリティ、又はプロセッサコア上で現在実行中のスレッドの数を決定し得る。マイクロコントローラ432は、そのワークロード分析の結果をワークポイントレジスタ454に出力し、それにより、動作周波数及び対応する電圧設定の所定のセットが、ローカル性能リミット460に応じてワークポイントアービタによって選択可能であるようにする。従って、ローカル電力制御アービタ430は、状態マシン458を用いて、且つマイクロコントローラ432n上でワークポイントレジスタ454を実行するLコードによるローカルアルゴリズム解析に基づく動作パラメータの選択に応じて、各状態が異なる動作周波数及び動作電圧を持つ複数の異なる状態間でプロセッシングユニット410を遷移させ得る。動作点選択を行うために、周波数及び電圧のルックアップテーブルがLコードによって使用され得る。ワークポイントアービタ456は、グローバル電力コントローラ420によって設定されたローカル性能リミット460と矛盾する動作周波数の選択を防止する。マイクロコントローラ432は、一部の実施形態において、プロセッシングユニット410に対する1つ以上の電力リミットへの準拠に関連するスロットリングインターバルを調節及び/又は制御し得る。
マイクロコントローラ432上で実行されるLコードは、プロセッシングコア、マルチコアプロセッサ、GPU又はIPUとし得るものである特定のプロセッシングユニット410に対して、それぞれの予測によるユニット固有の電力プロファイルを使用し得る。Lコードは、ユニット固有のスケーラビリティ値及びユニット固有の利用率値を受信又は決定し得る。電力プロファイルは、周波数、利用率、及び電力消費の間の関係を提供し得る。
見られている処理状態に基づいてプロセッシングユニット410に関するこれらの値を決定するために、1つ以上のハードウェアカウンタ(図示せず)が使用されてもよい。例えば、第1のカウンタが、プロセッシングユニット410の少なくとも1つのプロセッシングコアがアクティブであるときにのみ固定レートでカウントするための基準クロックを提供することができ;第2のカウンタが、プロセッシングユニットがアクティブ状態にあるときに実際のクロックレートでカウントすることができ、なお、クロックレートは、性能レベルのシフトに起因して時間と共に変化し得るものであり、第3のカウンタが、プロセッシングユニットはアクティブであるが、例えばプロセッサコアがメモリのクロックに基づいてゲーティングされているなど、何らかの依存関係のためにプロセッシングユニットがストールするときにはカウントを抑制することができる場合に、実際のクロックレートをカウントすることができる。
プロセッシングユニット410は、利用率、周波数、及び電力の間の“先験的”関係を有し得る。プロセッシングユニット410の電力プロファイルが、プレシリコンモデルに基づいて、又はポストシリコン測定データに基づいて、又は合成ワークロードに基づいて取得され得る。プレシリコンモデルとは、製造前の又はプロセッサ設計シミュレーションに基づくモデルとし得る。所与のプロセッシングユニットの電力プロファイルは、幾つもある異なる方法のうちの任意の1つで生成され得るが、一部の実施形態において、予測される電力プロファイルを用いて、以下のプロセッシングユニット統治式を生成してもよい:
1)周波数と利用率の関数としての電力、
2)利用率と電力の関数としての周波数、及び
3)電力と周波数の関数としての利用率。

一部の実施形態において、個々のプロセッシングユニット410の電力消費は、ローカル電力制御アービタ430が動作周波数を割り当てる前に特に考慮されないが、代わりに、例えばグローバル電力コントローラによって設定される最大周波数などの制約を満たす支配的なワークロードのための適切な周波数を選択するために、例えば、もっと高い又は低いスループットが必要とされるなどの、単純な決定が使用されてもよい。従って、電力プロファイルの代わりに、あるいは加えて、周波数-電圧カーブが使用されてもよい。
現在の動作状態を選択する際に、状態マシン458は、(i)システムレベル入力、(ii)プロセッシングユニット410に固有の利用率入力、及び(iii)プロセッシングユニット410に固有のスケーラビリティ入力を考慮に入れ得る。システムレベル入力は、グローバル電力コントローラ420によって提供される、電力リミット(平均又は閾値)、上限周波数、下限周波数、最大動作電流、熱リミット、及びエネルギ性能嗜好情報を有し得る。
図5は、ローカル電力制御アービタハードウェア及びソフトウェアを使用してプロセッサコア(又は他のプロセッシングエンティティ)にどのように性能レベル設定を適用されるのかを概略的に示している。この構成は、ワークポイントレジスタ520のセットとしてのローカル電力制御ファームウェア510と、ローカル電力制御アービタハードウェア530と、完全一体型電圧レギュレータ(FIVR)542と、位相ロックループ回路544と、プロセッサコア550とを有している。ローカル電力制御ファームウェア510は、グローバル電力制御ユニット(図示せず)によって制御される、より粗い粒度(より長い時間スケール、及びより低いイベント分解能)の性能レベル選択と協働して、細かい粒度の性能レベル選択を実行するための“Lコード”を格納する。
ローカル電力制御ファームウェア510は、ワークポイントレジスタのセット520に書き込まれる値に影響を与えることができる多数の入力を受信する。特に、この実施形態において、入力は、オペレーティングシステム又はグローバル電力制御ユニットのいずれかから受信される、グローバル電力制御ユニット制約に対応する信号513、コアイベントに対応する信号515、他のイベントに対応する信号517、及びテレメトリに対応する信号519である。ローカル電力制御ファームウェア510は、ローカルに決定される見られている処理状態に従って、適切な周波数及び電圧の値をワークポイントレジスタに書き込むように構成される。ワークポイントは、周波数、電圧、及びリセットタイプを含むことができ、また、メールボックス構造を有する。ローカル電力制御ファームウェア510によってワークポイントレジスタ520に書き込まれた値が、ローカル電力制御ハードウェア530によって読み込まれ、それが、例えば動作周波数及び対応する動作電圧などの選択された性能レベルの値を、第1の制御信号541を完全一体型電圧レギュレータ542に送ることによって実装し、次いで、完全一体型電圧レギュレータ542が、適切な動作電圧を供給する信号543をプロセッシングコア550へと送る。一部の実施形態において、例えばプロセッシングユニット410の利用率のレベルなどの処理状態は、プロセッシングユニット410に適し且つローカル電力制御アービタ430にアクセス可能な所定の周波数及び電圧ペアリングの組から選択するために使用される。同様に、第2の制御信号545が、ローカル電力制御ハードウェア532から位相ロックループ回路544に与えられ、それが、位相ロックループ回路544から出力されてプロセッシングコア550に入力される信号547を介して、プロセッサコア550の動作周波数を設定する。
従って、実施形態によれば、グローバル電力制御ユニットからの例えば上限周波数などの制限に基づき、また、グローバルファクタ、システム状態、及び関連するプロセッシングプラットフォームの他の処理イベントも考慮に入れて、適切なワークポイントが選択されることが分かる。選択されるワークポイントは、グローバル電力制御に頼って動作周波数及び電圧を直接的に設定する既知のシステムにおいてよりも細かい粒度のイベント追跡に基づいて、現在の処理状態に従って適切に選択され得る。この特別に選択されたワークポイントがハードウェアレジスタ520に書き込まれて、電力制御アービタハードウェアが、処理状態に対するローカルに検出された変化に基づいて、適切なワークポイントをプロセッサコア550に適用することを可能にする。
この例におけるローカルファームウェア510でのLコードの提供は、10kHzと100kHzとの間の周波数レンジ内のイベントが効率的に追跡されることを可能にし、一方、ローカル電力アービタハードウェア530の提供は、100kHzから1MHzまでのレンジ内の周波数が追跡されることを可能にする。これに代わる実施形態は、異なる周波数レンジ内のイベントを追跡してもよい。図3(上述)に示したように、これらの周波数は、コアプログラムコード(“uコード”)及びプロセッサコア550のハードウェアそれ自体によって追跡されるイベントの時間分解能よりは低い周波数レンジにあるものの、既知のグローバル電力制御ユニットを用いて追跡が可能であるものより高い周波数である。
本技術のローカル電力制御アービタ構成を用いて可能な、より細かい粒度のイベント分解能を使用することによって得ることが可能な性能改善は、以下を含む:
・ コア550がアイドル状態にあるが、それでもなお、高い電圧及び周波数で動作するように設定されているときをローカルに検出して、短いアイドル期間と一致するように周波数低減を実装することを可能にできること;
・ 例えばコア550などのプロセッシングユニットが複数のスレッドを走らせることから単一のスレッド空間を走らせることに移行(これは、10-15%だけ低い動的キャパシタンスをもたらし得る)したときを、より細かい時間スケールで検出できること;
・ 既知のシステムでは、グローバル電力制御ユニットに適用可能な時間スケールとして数百マイクロ秒での電圧補償に固定していたところで、動的キャパシタンスにおける変化に対してもっと迅速に適応して、動作周波数及び電圧を低減させて電力を節減できること;
・ グローバル電力制御アービタのみでは、コアが周波数において不必要に制限されることをもたらし得る比較的長い時間にわたって最悪の場合が当てはまると仮定してしまい得るのに対し、ICCmaxの値に基づいてプロセッサコア550の動作を制限できること;
・ 例えばメモリ停止や、スピンループや、同様のものが存在する状況など、処理スループットがより高い周波数設定からの恩恵を受けていない状況を検出できることであり、このために、ローカル電力制御アービタによって維持管理されるカウンタが使用され得る。
図6は、グローバル電力制御ユニット610とローカル電力制御アービタ650との間で異なるワークポイントリミット及びアルゴリズムがどのように細分化され得るのかを概略的に示している。図6に示すように、この実施形態におけるグローバル電力制御ユニットは、3つの異なる電力リミット“PL1”、“PL2”及び“PL3”と、アクティブコア(従って、グローバル制御が保持される)の数に応じて異なるマルチコアターボパラメータと、100μsを超えるが約10ms未満のイベント分解能に関係する粗粒度スケーラビリティアルゴリズムと、例えば所与の動作周波数での書き込みワークロードにおける読み出しレイテンシなどの応答性メトリックをモニタする応答性アルゴリズムと、例えばCPUがCPUマルチプライヤを使用することなくそれ自身のステッピング速度を選択することを可能にするアルゴリズムなどの、ハードウェア制御性能状態(hardware controlled performance state;HWP)アルゴリズムと、を有する一組のGコードリミット612を制御する。
第1の電力リミット“PL1”は、プロセッサユニット(例えば、マルチコアプロセッサ又はプロセッサコア又はGPU)によって超えられるべきではないが、プロセッシングユニットが無制限に電力を維持し得る平均電力閾値に対応することができ、第2の電力リミット“PL2”は、第1の継続時間(例えば、100秒)に至るまでプロセッシングユニットによって維持され得るが、それより上で1つ以上の電力制限アルゴリズムがプロセッシングユニットの過渡電力を制限しようと試みる電力レベルに対応した、PL1よりも高い電力リミットとすることができ、第3の電力リミット“PL3”は、PL2よりも高いとし得るとともに、PL3よりも上の過渡電力のデューティサイクルを制限するように処理周波数を受身的に制限するプロセッシングユニットの電力低減応答を生じさせ得る。
グローバル電力制御ユニット610が、3つの電力リミットPL1、PL2及びPL3を制御するのに対し、ローカル電力制御アービタは、プロセッシングユニットによって超えられないようにされ得る第4の電力リミット“PL4”に関する責任を委譲されることができ、この第4の電力リミットを超えるスパイクを防止するように電力制限アルゴリズムが処理周波数を先制的に制限し得るようにされる。過渡電力は、プロセッシングユニットがPL1とPL2との間の電力レベルで電力を維持し得る時間(例えば、約100s)と比較して相対的に短い所定の時間(例えば、10msなど)に至るまで、PL2より高く且つPL4までの電力をピークとすることが許され得る。
一組のLコードリミット652は、例えば、おおよそ10kHz(100μs)と1MHz(1μs)との間のレンジ内のイベント周波数を分解することができるものといった、細かい粒度のスケーラビリティアルゴリズムを有し、さらに、(グローバル制御の下でのマルチコアターボパラメータとは対照的に)コア固有のターボ比リミットを有する。
Gコードリミット612は、ローカルアービタを有する各コア(又は他のプロセッシングユニット)についてのコア性能リミット理由の記録を含み得るとともに、グローバル性能リミット理由の記録も維持管理し得る。例えば、1つのコアに対する電力割り当てのうちの少なくとも一部が別のコアに割り当て直されることを可能にするために、1つのコアが、別のコアについての性能リミット理由を要求してもよい。各ローカル電力制御アービタが、それが所有するローカル自律性能アルゴリズムのためのビットを有する制御レジスタを維持管理し得るとともに、周波数リミット又は他の性能リミットを指し示すレジスタが、2つの現在ビット、及び、ターボ比リミット及びICCmaxの各々に対して1つずつの2つのログビットを維持管理し得る。
図6に示すように、周波数上限値“F上限”が、Gコードリミット612のうちの少なくともサブセットに基づいて計算され、そして、グローバル電力制御ユニット610から出力されて、ローカル電力制御アービタ652に入力として与えられ得る。そして、ローカル電力制御アービタ650が、細かい粒度のスケーラビリティアルゴリズムを実行し、コア固有のターボ比リミットを実装して、F上限値を超えない動作周波数要求値を決定し得る。そして、ローカルに要求された動作周波数が、第4の電力リミット及び最大許容電流ICCMAXに対して評価され、次いで、ブロック654でチェックにかけられた信号657に応答して、コア内のハードウェアによって選択されて実装され得る。周波数要求を満足するためのヒント値を提供するために、PL4及びICCMAXローカルアービタチェックからのフィードバック信号655がグローバル電力制御ユニットに返される。
図7Aは、ローカル・ツー・グローバル(L2G)メールボックスのグローバル電力制御ユニットにおけるレジスタレイアウトを概略的に示している。L2Gメールボックスは、この実施形態例において、1つの62ビットレジスタと2つの32ビットレジスタとを含む合計3つのレジスタを有している。第1の62ビットレジスタはIO_L2G_MAILBOX_IFと名付けられ、これは8ビットのコマンドフィールド、14ビットのペイロードフィールド、8ビットのWINNING_CORE_IDフィールド、1ビットのCORE_BUSYフィールド、1ビットのRUN_BUSYフィールド、及びレジスタビット[32:61]を占有する32ビットのデータフィールドを有している。第2のレジスタは、IO_L2G_mailbox_data_lowと名付けられた32ビットレジスタであり、第3のレジスタは、IO_L2G_mailbox_data_highと名付けられた連れの32ビットレジスタである。メールボックスインタフェースレジスタIO_L2G_MAILBOX_IFが、IO_L2G_mailbox_data_low及びIO_L2G_mailbox_data_highとともに、ローカル電力制御アービタからグローバル電力制御ユニットへのインタフェースを提供する。
このL2Gメールボックス424(図4参照)は、LコードがGコードにコマンドを送ることを可能にする。Gコードは、コマンド結果をデータレジスタに書き込み、制御レジスタとしてこれらにアクセスする。RUN_BUSYビットはGコードによってリセットされ、Lコードによってセットされる。L2G_mailbox_IFレジスタは、RUN_BUSYビットがセットされている場合には、Gコードによってのみ書き込み可能であるが、RUN_BUSYビットがクリアされている場合にはハードウェアによってのみ書き込み可能である。L2G_mailbox_data_low及びL2G_mailbox_data_highレジスタにデータが書き込まれる。CORE_BUSYフィールド及びWINNING_CORE_IDフィールドは、例えば複数のプロセッシングコアなどの複数のプロセッシングエンティティのうちどれが現在L2Gメールボックスを制御しているかを指し示すために使用され得る。“WINNING_CORE”で表される現在制御しているコア以外のコアによって試みられる書き込み操作は、メールボックスインタフェースによって無視される。従って、L2Gメールボックスは、所与の時点に単一のコアのみにサービス提供する。従って、所与のLコードは、WINNING_CORE_ID==my core IDとなるまで、再試行を続けるべきである。
図7Bは、グローバル電力制御ユニットからローカル電力制御アービタへのメールボックス、すなわち、G2Lメールボックス464(図4参照)を概略的に示している。G2Lメールボックスは、32ビットのG2L_MAILBOX_INTERFACEレジスタと、32ビットのG2L_mailbox_data_lowレジスタと、32ビットのG2L_mailbox_data_highレジスタを有している。この例におけるG2L_MAILBOX_INTERFACEレジスタは、8ビットのコマンドフィールド、14ビットのペイロードフィールド、9ビットの予備(RSVD)フィールド、及び1ビットのRUN_BUSYフィールドを有している。G2Lメールボックス464のこれら3つの32ビットレジスタは、Gコードが所与のコアのLコードにコマンドを送ることを可能にする。RUN_BUSYビットはコードによってセットされ、Lコードによってクリアされる。このレジスタは、RUN_BUSYビットがセットされている場合には、Lコードによってのみ書き込み可能であるが、RUN_BUSYビットがクリアされている場合にはハードウェアによってのみ書き込み可能である。
図8は、本技術に従って、グローバル電力制御ユニット及びローカル電力制御アービタを使用して性能レベルワークポイントがどのように協働設定されるのかを概略的に示すフローチャートである。ブロック810にて、ローカル電力制御アービタが、グローバル電力制御ユニットから、例えば上限ワークポイント(例えば、周波数上限)などの電力リミットを受信する。ブロック820にて、ローカル電力制御アービタは、上限ワークポイントによって制約されるローカルプロセッシングエンティティの性能レベルの細かい粒度の制御を実行するために、プロセッシングコア(又は他のローカルプロセッシングエンティティ)の現在の状態を決定する。ブロック830にて、関連する時間スケールで状態の変化が存在しないと判定された場合、プロセスフローはブロック820に戻される。
代わりに、動作周波数の増加又は減少の理由となる状態の変化が実際に存在すると判定された場合、プロセスはブロック840に進み、そこで、Lコードが、現時に適した新たなワークポイントを選択するために、ワークポイントレジスタのセット内で周波数及び電圧のルックアップを行う。この時、動作周波数及び電圧を選択する際に、例えば命令ワークロードは重いのか、それとも軽いのか、及び/又は、ローカルコア上で現在実行されているのは単一のスレッドなのか、それとも複数のスレッドなのかなど、異なるファクタが考慮に入れられ得る。ブロック840でワークポイント変更が選択されて実装されると、ブロック850にて、ワークポイントにおける変更がグローバル電力制御ユニットに通信され、これが、グローバル電力制御ユニットによる周波数上限変更の要求へのフィードバックとなり得る。こうして、ブロック850の後、プロセスはブロック810に戻る。
図9は、ローカル電力制御アービタ及びグローバル電力コントローラの機能を記述するハイレベルフローを概略的に示すフローチャートである。ブロック910にて、未補正エラーリセット信号のアサート停止に対応してローカルハードウェアが準備できているか否かを判定するチェックが行われる。次いで、ブロック920にて、システムがリセットされたか否かが判定される。ブロック920でシステムが実際にリセットされたと判定された場合、プロセスはブロック930に進み、そこで、オペレーティングシステム基本入力出力システム(BIOS)から特定のデータをフェッチすることによってリブートが実行される。特に、設定がグローバル電力制御ユニットファームウェアからフェッチされ、プロセッシングプラットフォームのコアごとに電圧-周波数カーブが構築されるとともに、コアごとに動的キャパシタンステーブルが構築される。次に、ブロック930で設定データ及びテーブルがデータ投入されると、プロセスは、以下を有する“低速ループ”(周期タスク)ブロック940に進み、すなわち、完全一体型電圧レギュレータ電力設定を決定し、(Gコードにより)上限ワークポイント計算を実行し、電力電圧プロファイルをチェックし、細かい粒度でのスケーラビリティをチェックし、且つローカル電力制御アービタからグローバル電力制御ファームウェアへテレメトリを送信する、ことを有するブロック940に進む。
ブロック920で、システムがリセットされたと判定されることに代えて、システムリセットがまだされていないと判定された場合、プロセスはブロック920からブロック950に進む。ブロック950にて、現在データが旧い温度で計算されたことを指し示すフラグがセットされ、これが、ブロック930の設定フェッチング、動的キャパシタンス構築、及び電圧-周波数カーブ構築をバイパスしてブロック940の低速ループ周期タスクに直接移ることを可能にする高速パス計算に使用される。温度の関連性は、トランジスタスピードが温度とともに変化し得るために、所与の周波数に適した電圧が温度とともに変化するというものである。
この例でのLコードは、周期タスクブロック940から割り込み不可能な高速パス処理ブロック960へと導かれる割り込みトリガー信号941によって示されるように、割り込み駆動される。高速パス処理ブロック960は、クリティカルワークポイントを計算し、該ワークポイントをハードウェアに対して発し、且つ他の全てのワークポイントを計算することを伴う。クリティカルワークポイントは、例えば命令セットアーキテクチャ命令又は何らかの他の特別な命令などの上でコアが実行される条件に関係し得る。イネーブル割り込み信号961が、高速パス処理ブロック960と低速処理ブロック940との間で提供され、低速処理ブロック940へと導かれる。イネーブル割り込み信号は、Lコードに、中断させ、クリティカルタスクに切り替えさせる。割り込みトリガー941は、低速ループ940から高速パスブロック960に送られる。実行されるべきクリティカルワークが存在しない場合、Lコードは一部の保守タスクを実行することを許されるが、割り込みトリガー941が、よりクリティカルなタスクへと焦点を変える。
一部の実施形態例では、ローカルに実行される自律的なワークポイント選択を非アクティブにして、グローバル電力制御ユニットが周波数及び電圧におけるワークポイント変更を制御及びトリガーするスキームに戻すことを可能にし得る。この非アクティブ化は、例えばSOCなどの特定の集積回路がローカル性能レベル制御の1つ以上の機能を選択的にアクティブ化又は非アクティブ化することを可能にし得る。しかしながら、自律ワークポイント選択機能が有効にされるとき、Gコードは、実際のワークポイントを決定する責任を委譲されたLコードと同じインタフェース上で、周波数天井及び電圧天井を伴うワークポイント変更を発し得る。周波数天井は、ある周波数上限を有し得る。これは、マルチコアターボ、熱スロットリング、エネルギーリミット制御、スケーラビリティ及び応答性アルゴリズムを含み得る。電圧天井は、或る電圧上限を有することができ、これは、最大電圧ヒューズ及び動的電圧マネジメントからの制約を含み得る。電圧天井及び周波数天井は、許容可能なワークポイントとして設定され得る。本技術に従った細かい粒度のワークポイント決定は、例えば、機能内のビット又はコンフィグレーションビットを使用してイネーブル又はディセーブルされ得る。例えばLコードに欠陥があると判定される場合など、ワークポイントの自律的ローカル制御を非アクティブにして、プロセッシングユニットワークポイントのグローバル設定をアクティブにし直すことが有用であることがあり、その場合、都合よく非アクティブ化されることができる。
この明細書において、“A又はBのうちの少なくとも1つ”という言い回し及び“A及びBのうちの少なくとも1つ”という言い回しは、あらゆる全ての並べ替えにおいてまとめられた又は別々にされた、列挙された複数のアイテムA、Bなどのうちの任意の1つ以上を意味すると解釈されるべきである。
機能ユニットが回路として記述される場合、回路は、指定された処理機能を実行するためのプログラムコードによって構成された汎用プロセッサ回路であってもよい。回路はまた、プロセッシングハードウェアへの変更によって構成されてもよい。指定された機能を実行するための回路の構成は、完全にハードウェアにあってもよいし、完全にソフトウェアにあってもよいし、あるいは、ハードウェア変更及びソフトウェア実行の組み合わせを用いてもよい。プログラム命令を用いて、処理機能を実行するように汎用又は専用のプロセッサ回路の論理ゲートを構成してもよい。
回路は、例えば、プロセッサ、マイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗、キャパシタ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット、及びこれらに類するものを有するハードウェア回路として実装されてもよい。
プロセッサは、汎用プロセッサ、コンピュータネットワーク上で通信されるデータを処理するネットワークプロセッサ、又は、縮小命令セットコンピュータRISC若しくは複数命令セットコンピュータCISCを含む他のタイプのプロセッサを有し得る。プロセッサは、シングルコア設計又はマルチコア設計を有し得る。マルチコアプロセッサは、同一の集積回路ダイ上に複数の異なるプロセッサコアタイプを集積してもよい。
機械読み取り可能プログラム命令が、例えば伝送媒体などの一時的な媒体上で、あるいは、例えば記憶媒体などの非一時的な媒体上に提供され得る。このような機械読み取り可能命令(コンピュータプログラムコード)は、高水準手続き型プログラミング言語又はオブジェクト指向プログラミング言語で実装され得る。しかし、望ましい場合、(1つ以上の)プログラムはアセンブリ言語又は機械語で実装されてもよい。いずれにしても、言語は、コンパイル又は解釈された言語であってよく、ハードウェア実装と組み合わされてもよい。
本発明の実施形態は、全てのタイプの半導体集積回路(“IC”)チップとの使用に適用可能である。それらのICチップの例は、以下に限られないが、プロセッサ、コントローラ、チップセットコンポーネント、プログラマブルロジックアレイ(PLA)、メモリチップ、ネットワークチップ、及びこれらに類するものを含む。一部の実施形態において、ここに記載されたコンポーネントのうち1つ以上は、システム・オン・チップ(SOC)デバイスとして具体化され得る。SOCは、例えば、1つ以上の中央演算処理ユニット(CPU)コア、1つ以上のグラフィックス処理ユニット(GPU)コア、入力/出力インタフェース、及びメモリコントローラを含み得る。一部の実施形態において、SOC及びそのコンポーネントは、例えば単一の半導体デバイスへとパッケージされた、1つ以上の集積回路ダイ上に設けられ得る。

以下の例は、更なる実施形態に関する。
例1は、複数のプロセッシングエンティティを有するプロセッシングプラットフォームのグローバル電力制御ユニットとインタフェースをとるローカル電力制御アービタであり、当該ローカル電力制御アービタは、前記プロセッシングプラットフォームのローカルプロセッシングユニットを制御するものであり、当該ローカル電力制御アービタは、
グローバル電力制御評価に応じて前記ローカルプロセッシングユニットに割り当てられたローカル性能リミットを、前記グローバル電力制御ユニットから受信するインタフェースと、
プロセッシング回路であり、
前記グローバル電力制御ユニットによって前記ローカル性能リミットが前記ローカルプロセッシングユニットに適用される期間よりも短い時間スケールで前記ローカルプロセッシングユニットにおいて見られる1つ以上の処理状態に対する変化を決定し、且つ
前記ローカル性能リミットと、存在する場合の、前記ローカルプロセッシングユニット上で見られる処理状態について決定された変化と、の双方に応じて、前記ローカルプロセッシングユニットの性能レベルを選択する、
プロセッシング回路と、
を有する。
例2
前記ローカル性能リミットは、周波数上限、電圧上限、電力上限、及び電流上限のうちの少なくとも1つを有する、例1に記載のローカル電力制御アービタ。
例3
前記グローバル電力制御ユニットによって前記ローカル性能リミットが前記ローカルプロセッシングユニットに適用される前記期間は、100マイクロ秒よりも長く、前記処理状態に対する変化が決定される時間スケールは、10マイクロ秒と100マイクロ秒との間の範囲内である、例1又は2に記載のローカル電力制御アービタ。
例4
前記処理状態において決定される変化は、前記プロセッシングユニット上で実行されているスレッドの数における変化、処理しているワークロードにおける変化、及び前記プロセッシングユニットの利用率における変化、のうちの少なくとも1つを有する、例1乃至3のいずれか一に記載のローカル電力制御アービタ。
例5
前記ローカルプロセッシングユニットから、前記ローカルプロセッシングユニットの性能レベルの変更要求を受信し、該性能レベルの変更要求を、その後の、前記ローカル性能リミットを更新するためのグローバル電力評価のために、前記グローバル電力制御ユニットに中継する、ように構成されている例1乃至4のいずれか一に記載のローカル電力制御アービタ。
例6
当該ローカル電力制御アービタは、前記ローカルプロセッシングユニットの少なくとも1つのプロセッシングエンティティについての閾値電力、前記ローカルプロセッシングユニットの少なくとも1つのプロセッシングエンティティについての閾値電流、前記ローカルプロセッシングユニットの少なくとも1つのプロセッシングエンティティについての1つ以上のターボ比リミット、及び前記ローカルプロセッシングユニットの少なくとも1つのプロセッシングエンティティ上で実行されている処理中のワークロードのスケーラビリティ、のうちの少なくとも1つを管理する、例1乃至5のいずれか一に記載のローカル電力制御アービタ。
例7
前記グローバル電力制御ユニットによって決定された前記ローカル性能リミットと、前記ローカルプロセッシングユニットによって要求されたローカル電力制約と、の間で調停を行うワークポイントアービタ、を有する例1乃至6のいずれか一に記載のローカル電力制御アービタ。
例8
前記ワークポイントアービタは、前記ローカル性能リミットの制約の範囲内で、前記ローカルプロセッシングユニットの1つ以上のプロセッシングエンティティについて、複数の異なるローカル性能レベルの間で選択する、例7に記載のローカル電力制御アービタ。
例9
前記ローカル性能レベルは、レジスタのセットに格納された所定の値に基づいて選択される、例8に記載のローカル電力制御アービタ。
例10
マイクロプロセッサと、不揮発性メモリと、入力/出力インタフェースとを有する例1乃至9のいずれか一に記載のローカル電力制御アービタ。
例11
前記ローカルプロセッシングユニットは、プロセッサコア、グラフィックス処理ユニット、及び画像処理ユニットのうちの1つを有する、例1乃至10のいずれか一に記載のローカル電力制御アービタ。
例12
前記グローバル電力制御ユニットから当該ローカル電力制御アービタにコマンドを送信するための1つ以上のハードウェアレジスタを有するグローバル・ツー・ローカルメールボックス、を有する例1乃至11のいずれか一に記載のローカル電力制御アービタ。
例13
前記グローバル・ツー・ローカルメールボックスは、前記グローバル電力制御ユニットからコマンドを受信すべき複数のプロセッシングユニットのうちの1つの選択を可能にするレジスタフィールドを有する、例12に記載のローカル電力制御アービタ。
例14
当該ローカル電力制御アービタが前記グローバル電力制御ユニットにコマンドを送信することを可能にする1つ以上のハードウェアレジスタを有するローカル・ツー・グローバルメールボックス、を有する例1乃至13のいずれか一に記載のローカル電力制御アービタ。
例15
前記ローカル・ツー・グローバルメールボックスは、存在する場合に前記ローカル・ツー・グローバルメールボックスを現在制御しているのが前記プロセッシングプラットフォームの前記複数のプロセッシングエンティティのうちのいずれの1つであるかを特定するレジスタフィールドを有する、例14に記載のローカル電力制御アービタ。
例16
前記ローカル・ツー・グローバルメールボックスは、前記現在制御しているプロセッシングエンティティ以外のプロセッシングエンティティからの前記ローカル・ツー・グローバルメールボックスへの書き込みの試みを無効にするレジスタフィールドを有する、例15に記載のローカル電力制御アービタ。
例17
リセット動作中に前記プロセッシングプラットフォームのオペレーティングシステムの基本入力出力システムBIOSから設定データをロードするように構成される、例16に記載のローカル電力制御アービタ。
例18は、プロセッシングプラットフォームであって、当該プロセッシングプラットフォームは、
複数のプロセッシングエンティティと、
前記複数のプロセッシングエンティティの性能レベルを制御するグローバル電力制御ユニットと、
少なくとも1つの、例1乃至17のいずれか一に記載のローカル電力制御アービタと、
を有し、
前記複数のプロセッシングエンティティのうちの少なくとも1つのサブセットが、それぞれのローカル電力制御アービタによって制御される。
例19
当該プロセッシングプラットフォームのそれぞれの複数のプロセッシングユニットを制御する複数のローカル電力制御アービタを有し、各プロセッシングユニットが、少なくとも1つのプロセッサコアを有する、例18に記載のプロセッシングプラットフォーム。
例20は、例18又は19に記載のプロセッシングプラットフォームを有する集積回路である。
例21
一時的又は非一時的な機械読み取り可能媒体上で提供される機械読み取り可能命令であって、機械読み取り可能命令は、ローカル電力制御アービタの1つ以上のプロセッサによる実行を受けて、
プロセッシングプラットフォームのグローバル電力制御ユニットから、グローバル電力制御評価に応じて前記プロセッシングプラットフォームのローカルプロセッシングユニットに割り当てられたローカル性能リミットを受信し、
前記グローバル電力制御ユニットによって前記ローカル性能リミットが前記ローカルプロセッシングユニットに適用される期間よりも短い時間スケールで前記ローカルプロセッシングユニットにおいて見られる1つ以上の処理状態に対する変化を決定し、且つ
前記ローカル性能リミットと、存在する場合の、前記ローカルプロセッシングユニット上で見られる処理状態について決定された変化と、の双方に応じて、前記ローカルプロセッシングユニットの性能レベルを選択する、
機械読み取り可能命令。
例22
前記ローカル性能リミットは、前記プロセッシングユニットについての周波数上限を有し、該周波数上限は、前記プロセッシングユニットの1つ以上のプロセッサコアに適用される、例21に記載の機械読み取り可能命令。
例23
グローバル電力制御ユニットを有するプロセッシングプラットフォームのローカルプロセッシングユニットの性能レベルを制御する方法であって、
前記グローバル電力制御ユニットから、グローバル電力制御評価に応じて前記プロセッシングプラットフォームの前記ローカルプロセッシングユニットに割り当てられたローカル性能リミットを受信し、
前記グローバル電力制御ユニットによって前記ローカル性能リミットが前記ローカルプロセッシングユニットに適用される期間よりも短い時間スケールで前記ローカルプロセッシングユニットにおいて見られる1つ以上の処理状態に対する変化を決定し、且つ
前記ローカル性能リミットと、存在する場合の、前記ローカルプロセッシングユニット上で見られる処理状態について決定された変化と、の双方に応じて、前記ローカルプロセッシングユニットの性能レベルを選択する、
ことを有する方法。
例24
前記ローカルプロセッシングユニットから、前記プロセッシングユニットの性能レベルに対する変更の要求を受信し、前記ローカル性能リミットを更新するために前記要求を前記グローバル電力制御ユニットに中継する、ことを有する例23に記載の方法。

Claims (22)

  1. 複数のプロセッシングエンティティを有するプロセッシングプラットフォームのグローバル電力制御ユニットとインタフェースをとるローカル電力制御アービタであって、当該ローカル電力制御アービタは、前記プロセッシングプラットフォームのローカルプロセッシングユニットを制御するものであり、当該ローカル電力制御アービタは、
    グローバル電力制御評価に応じて前記ローカルプロセッシングユニットに割り当てられたローカル性能リミットを、前記グローバル電力制御ユニットから受信するインタフェースと、
    当該ローカル電力制御アービタが前記グローバル電力制御ユニットにコマンドを送信することを可能にする1つ以上のハードウェアレジスタを有するローカル・ツー・グローバルメールボックスと、
    プロセッシング回路であり、
    前記グローバル電力制御ユニットによって前記ローカル性能リミットが前記ローカルプロセッシングユニットに適用される期間よりも短い時間スケールで前記ローカルプロセッシングユニットにおいて見られる1つ以上の処理状態に対する変化を決定し、且つ
    前記ローカル性能リミットと、存在する場合の、前記ローカルプロセッシングユニット上で見られる処理状態について決定された変化と、の双方に応じて、前記ローカルプロセッシングユニットの性能レベルを選択する、
    プロセッシング回路と、
    を有する、ローカル電力制御アービタ。
  2. 前記ローカル性能リミットは、周波数上限、電圧上限、電力上限、及び電流上限のうちの少なくとも1つを有する、請求項1に記載のローカル電力制御アービタ。
  3. 前記グローバル電力制御ユニットによって前記ローカル性能リミットが前記ローカルプロセッシングユニットに適用される前記期間は、100マイクロ秒よりも長く、前記処理状態に対する変化が決定される時間スケールは、10マイクロ秒と100マイクロ秒との間の範囲内である、請求項1に記載のローカル電力制御アービタ。
  4. 前記処理状態において決定される変化は、前記ローカルプロセッシングユニット上で実行されているスレッドの数における変化、処理しているワークロードにおける変化、及び前記ローカルプロセッシングユニットの利用率における変化、のうちの少なくとも1つを有する、請求項1に記載のローカル電力制御アービタ。
  5. 前記ローカルプロセッシングユニットから、前記ローカルプロセッシングユニットの性能レベルの変更要求を受信し、該性能レベルの変更要求を、その後の、前記ローカル性能リミットを更新するためのグローバル電力評価のために、前記グローバル電力制御ユニットに中継する、ように構成されている請求項1に記載のローカル電力制御アービタ。
  6. 当該ローカル電力制御アービタは、前記ローカルプロセッシングユニットの少なくとも1つのプロセッシングエンティティについての閾値電力、前記ローカルプロセッシングユニットの少なくとも1つのプロセッシングエンティティについての閾値電流、前記ローカルプロセッシングユニットの少なくとも1つのプロセッシングエンティティについての1つ以上のターボ比リミット、及び前記ローカルプロセッシングユニットの少なくとも1つのプロセッシングエンティティ上で実行されている処理中のワークロードのスケーラビリティ、のうちの少なくとも1つを管理する、請求項1に記載のローカル電力制御アービタ。
  7. 前記グローバル電力制御ユニットによって決定された前記ローカル性能リミットと、前記ローカルプロセッシングユニットによって要求されたローカル電力制約と、の間で調停を行うワークポイントアービタ、を有する請求項1に記載のローカル電力制御アービタ。
  8. 前記ワークポイントアービタは、前記ローカル性能リミットの制約の範囲内で、前記ローカルプロセッシングユニットの1つ以上のプロセッシングエンティティについて、複数の異なるローカル性能レベルの間で選択する、請求項7に記載のローカル電力制御アービタ。
  9. 前記ローカル性能レベルは、レジスタのセットに格納された所定の値に基づいて選択される、請求項8に記載のローカル電力制御アービタ。
  10. マイクロプロセッサと、不揮発性メモリと、入力/出力インタフェースとを有する請求項1に記載のローカル電力制御アービタ。
  11. 前記ローカルプロセッシングユニットは、プロセッサコア、グラフィックス処理ユニット、及び画像処理ユニットのうちの1つを有する、請求項1に記載のローカル電力制御アービタ。
  12. 前記グローバル電力制御ユニットから当該ローカル電力制御アービタにコマンドを送信するための1つ以上のハードウェアレジスタを有するグローバル・ツー・ローカルメールボックス、を有する請求項1に記載のローカル電力制御アービタ。
  13. 前記グローバル・ツー・ローカルメールボックスは、前記グローバル電力制御ユニットからコマンドを受信すべき複数のローカルプロセッシングユニットのうちの1つの選択を可能にするレジスタフィールドを有する、請求項12に記載のローカル電力制御アービタ。
  14. 前記ローカル・ツー・グローバルメールボックスは、存在する場合に前記ローカル・ツー・グローバルメールボックスを現在制御しているのが前記プロセッシングプラットフォームの前記複数のプロセッシングエンティティのうちのいずれの1つであるかを特定するレジスタフィールドを有する、請求項に記載のローカル電力制御アービタ。
  15. 前記ローカル・ツー・グローバルメールボックスは、前記現在制御しているプロセッシングエンティティ以外のプロセッシングエンティティからの前記ローカル・ツー・グローバルメールボックスへの書き込みの試みを無効にするレジスタフィールドを有する、請求項14に記載のローカル電力制御アービタ。
  16. リセット動作中に前記プロセッシングプラットフォームのオペレーティングシステムの基本入力出力システムBIOSから設定データをロードするように構成される、請求項15に記載のローカル電力制御アービタ。
  17. 複数のプロセッシングエンティティと、
    前記複数のプロセッシングエンティティの性能レベルを制御するグローバル電力制御ユニットと、
    少なくとも1つの、請求項1乃至16のいずれか一項に記載のローカル電力制御アービタと、
    を有し、
    前記複数のプロセッシングエンティティのうちの少なくとも1つのサブセットが、それぞれのローカル電力制御アービタによって制御される、
    プロセッシングプラットフォーム。
  18. 当該プロセッシングプラットフォームのそれぞれの複数のローカルプロセッシングユニットを制御する複数のローカル電力制御アービタを有し、各ローカルプロセッシングユニットが、少なくとも1つのプロセッサコアを有する、請求項17に記載のプロセッシングプラットフォーム。
  19. 請求項17又は18に記載のプロセッシングプラットフォームを有する集積回路。
  20. 一時的又は非一時的な機械読み取り可能媒体上で提供される機械読み取り可能命令であって、機械読み取り可能命令は、ローカル電力制御アービタの1つ以上のプロセッサによる実行を受けて、
    プロセッシングプラットフォームのグローバル電力制御ユニットから、グローバル電力制御評価に応じて前記プロセッシングプラットフォームのローカルプロセッシングユニットに割り当てられたローカル性能リミットを受信し、
    前記グローバル電力制御ユニットによって前記ローカル性能リミットが前記ローカルプロセッシングユニットに適用される期間よりも短い時間スケールで前記ローカルプロセッシングユニットにおいて見られる1つ以上の処理状態に対する変化を決定し、且つ
    前記ローカル性能リミットと、存在する場合の、前記ローカルプロセッシングユニット上で見られる処理状態について決定された変化と、の双方に応じて、前記ローカルプロセッシングユニットの性能レベルを選択
    前記ローカルプロセッシングユニットから、前記ローカルプロセッシングユニットの性能レベルに対する変更の要求を受信し、前記ローカル性能リミットを更新するために前記要求を前記グローバル電力制御ユニットに中継する、
    機械読み取り可能命令。
  21. 前記ローカル性能リミットは、前記ローカルプロセッシングユニットについての周波数上限を有し、該周波数上限は、前記ローカルプロセッシングユニットの1つ以上のプロセッサコアに適用される、請求項20に記載の機械読み取り可能命令。
  22. グローバル電力制御ユニットを有するプロセッシングプラットフォームのローカルプロセッシングユニットの性能レベルを制御する方法であって、
    前記グローバル電力制御ユニットから、グローバル電力制御評価に応じて前記プロセッシングプラットフォームの前記ローカルプロセッシングユニットに割り当てられたローカル性能リミットを受信し、
    前記グローバル電力制御ユニットによって前記ローカル性能リミットが前記ローカルプロセッシングユニットに適用される期間よりも短い時間スケールで前記ローカルプロセッシングユニットにおいて見られる1つ以上の処理状態に対する変化を決定し、
    前記ローカル性能リミットと、存在する場合の、前記ローカルプロセッシングユニット上で見られる処理状態について決定された変化と、の双方に応じて、前記ローカルプロセッシングユニットの性能レベルを選択
    前記ローカルプロセッシングユニットから、前記ローカルプロセッシングユニットの性能レベルに対する変更の要求を受信し、前記ローカル性能リミットを更新するために前記要求を前記グローバル電力制御ユニットに中継する、
    ことを有する方法。
JP2020551527A 2018-05-01 2018-05-01 電力制御アービトレーション Active JP7214746B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2018/030517 WO2019212541A1 (en) 2018-05-01 2018-05-01 Power control arbitration

Publications (2)

Publication Number Publication Date
JP2021531526A JP2021531526A (ja) 2021-11-18
JP7214746B2 true JP7214746B2 (ja) 2023-01-30

Family

ID=68387017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020551527A Active JP7214746B2 (ja) 2018-05-01 2018-05-01 電力制御アービトレーション

Country Status (5)

Country Link
US (1) US11543878B2 (ja)
JP (1) JP7214746B2 (ja)
CN (1) CN111971641A (ja)
DE (1) DE112018007545T5 (ja)
WO (1) WO2019212541A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112912820A (zh) * 2018-10-26 2021-06-04 华为技术有限公司 Cpu调节器的能效调整
US11100698B2 (en) * 2019-06-28 2021-08-24 Ati Technologies Ulc Real-time GPU rendering with performance guaranteed power management
US11320476B2 (en) * 2019-07-15 2022-05-03 The Boeing Company Eddy current system for use with electrically-insulative structures and methods for inductively heating or inductively inspecting
US11435806B2 (en) * 2019-12-16 2022-09-06 Advanced Micro Devices, Inc. Automatic voltage reconfiguration
US11334133B2 (en) * 2020-04-24 2022-05-17 Dell Products L.P. Power management of voltage regulators in an information handling system
US11275663B2 (en) * 2020-06-08 2022-03-15 Intel Corporation Fast dynamic capacitance, frequency, and/or voltage throttling apparatus and method
US11334103B2 (en) * 2020-08-18 2022-05-17 Google Llc Programmable system TDP with ASIC power capping
US11822414B2 (en) 2021-02-08 2023-11-21 Microsoft Technology Licensing, Llc Processor-based system employing configurable local frequency throttling management to manage power demand and consumption, and related methods
US11327552B1 (en) * 2021-02-17 2022-05-10 Microsoft Licensing Technology, LLC Processor-based system employing local dynamic power management based on controlling performance and operating power consumption, and related methods
WO2023287576A1 (en) * 2021-07-13 2023-01-19 SiFive, Inc. Selectable and hierarchical power management
CN113505095B (zh) * 2021-07-30 2023-03-21 上海壁仞智能科技有限公司 多核异相处理的系统级芯片和集成电路
US20230176645A1 (en) * 2021-12-06 2023-06-08 Mediatek Inc. Maximum current suppression for power management in a multi-core system
US20240094796A1 (en) * 2022-06-10 2024-03-21 Nvidia Corporation Techniques to modify processor performance

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070198863A1 (en) 2006-02-17 2007-08-23 Pradip Bose Method and system for controlling power in a chip through a power-performance monitor and control unit
US20120166854A1 (en) 2011-11-30 2012-06-28 Efraim Rotem Controlling Current Transients In A Processor
JP2014157601A (ja) 2013-02-15 2014-08-28 Intel Corp プロセッサの最大動作電圧を動的に制御する方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7017060B2 (en) 2001-03-19 2006-03-21 Intel Corporation Power management system that changes processor level if processor utilization crosses threshold over a period that is different for switching up or down
US7426648B2 (en) 2004-09-30 2008-09-16 Intel Corporation Global and pseudo power state management for multiple processing elements
US8601288B2 (en) * 2010-08-31 2013-12-03 Sonics, Inc. Intelligent power controller
US9152210B2 (en) * 2013-02-15 2015-10-06 Apple Inc. Method and apparatus for determining tunable parameters to use in power and performance management
US9832028B2 (en) * 2014-09-25 2017-11-28 Texas Instruments Incorporated Automatic power budget management for power-over-Ethernet apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070198863A1 (en) 2006-02-17 2007-08-23 Pradip Bose Method and system for controlling power in a chip through a power-performance monitor and control unit
US20120166854A1 (en) 2011-11-30 2012-06-28 Efraim Rotem Controlling Current Transients In A Processor
JP2014157601A (ja) 2013-02-15 2014-08-28 Intel Corp プロセッサの最大動作電圧を動的に制御する方法

Also Published As

Publication number Publication date
DE112018007545T5 (de) 2021-01-21
CN111971641A (zh) 2020-11-20
WO2019212541A1 (en) 2019-11-07
US20210018971A1 (en) 2021-01-21
JP2021531526A (ja) 2021-11-18
US11543878B2 (en) 2023-01-03

Similar Documents

Publication Publication Date Title
JP7214746B2 (ja) 電力制御アービトレーション
US8443209B2 (en) Throttling computational units according to performance sensitivity
US11604504B2 (en) Power governance of processing unit
US8447994B2 (en) Altering performance of computational units heterogeneously according to performance sensitivity
US8140868B2 (en) Performance conserving power consumption reduction in a server system
JP5189921B2 (ja) コンピュータの放熱システム
US8291244B2 (en) Power management in a data processing device having masters and slaves
US9261949B2 (en) Method for adaptive performance optimization of the soc
JP5688462B2 (ja) 処理ノードの動的パフォーマンス制御
US9442739B2 (en) Collaborative processor and system performance and power management
JP5564564B2 (ja) 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置
US10048741B1 (en) Bandwidth-aware multi-frequency performance estimation mechanism
US20160378168A1 (en) Dynamic power management optimization
US20150089261A1 (en) Information processing device and semiconductor device
US20080028246A1 (en) Self-monitoring and self-adjusting power consumption computer control system
US20110022356A1 (en) Determining performance sensitivities of computational units
US9075609B2 (en) Power controller, processor and method of power management
US20140115365A1 (en) Electronic device and power management method
KR101863578B1 (ko) 컴퓨팅 시스템의 적응적인 캐시 메모리 접근 장치 및 그 방법
WO2024006019A1 (en) Platform efficiency tracker
TW200416557A (en) Data processing performance control

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220826

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230118

R150 Certificate of patent or registration of utility model

Ref document number: 7214746

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150