JP2013536532A - 処理ノードの動的パフォーマンス制御 - Google Patents

処理ノードの動的パフォーマンス制御 Download PDF

Info

Publication number
JP2013536532A
JP2013536532A JP2013526155A JP2013526155A JP2013536532A JP 2013536532 A JP2013536532 A JP 2013536532A JP 2013526155 A JP2013526155 A JP 2013526155A JP 2013526155 A JP2013526155 A JP 2013526155A JP 2013536532 A JP2013536532 A JP 2013536532A
Authority
JP
Japan
Prior art keywords
operating
processing node
operating point
activity
threshold
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.)
Granted
Application number
JP2013526155A
Other languages
English (en)
Other versions
JP5688462B2 (ja
JP2013536532A5 (ja
Inventor
ブラノーバー アレキサンダー
スタインマン モーリス
エル. ビルヒャー ウィリアム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2013536532A publication Critical patent/JP2013536532A/ja
Publication of JP2013536532A5 publication Critical patent/JP2013536532A5/ja
Application granted granted Critical
Publication of JP5688462B2 publication Critical patent/JP5688462B2/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
    • 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
    • G06F1/3215Monitoring of peripheral devices
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

処理ノードのパフォーマンス制御のための装置および方法を開示する。一実施形態において、システムは、処理ノードと、電力管理ユニットとを含み、電力管理ユニットは、複数の時間間隔の各々に対して、処理ノードの活動レベルを監視し、所与の間隔内の活動レベルが高活動閾値を超える場合、1つの連続する時間間隔の間、高動作点で処理ノードを動作させ、活動レベルが低活動閾値未満である場合、少なくとも1つの連続する時間間隔の間、低動作点で処理ノードを動作させる、または活動レベルが高活動閾値未満であり、かつ低活動閾値を超える場合、オペレーティングシステムソフトウェアが複数の動作点のうちの1つ以上の既定の中間動作点のうちの1つで処理ノードを動作させることを可能にするように構成されている。
【選択図】図8

Description

本発明は、プロセッサに関し、より具体的には、プロセッサ内でパフォーマンスおよび電力消費のバランスをとることに関する。
コンピュータまたは他のプロセッサベースのシステムの設計中、多数の設計因子が考慮されなければならない。設計の成功には、電力消費、パフォーマンス、熱出力等の間でいくつかのトレードオフが必要になるかもしれない。例えば、高パフォーマンスを重視するコンピュータシステムの設計では、より大きい電力消費および熱出力を許可するかもしれない。これとは逆に、時には電池によって駆動される携帯用コンピュータシステムの設計では、何らかのパフォーマンスを犠牲にして、電力消費を抑制することを重視するかもしれない。
いくつかのコンピュータシステムにおいて、動作点(例えば、クロック周波数および動作電圧)は作業負荷に応じて調整されてもよい。このようなシステムにおいて、計算主体の作業負荷(すなわち、プロセッサ集中型の作業負荷)は、処理ノードをより高い動作点で動作させるかもしれないのに対し、メモリ主体の作業負荷(すなわち、多数のメモリアクセスを含む、多大なレイテンシが関与するかもしれない作業負荷)は、処理ノードをより低い動作点で動作させるかもしれない。例えば、いくつかのコンピュータシステムでは、動作時間の総量(すなわち、アイドル状態およびアクティブ状態)に対するアクティブ状態の時間量の比率は、所与の間隔に対して、オペレーティングシステムソフトウェアによって計算されるかもしれない。比率がある閾値を超える場合、処理ノードは、より高い動作点で動作されてもよい。そうではない場合、動作は、より低い動作点で発生してもよい。計算を実施するための典型的な間隔は、30〜100ミリ秒の範囲であってもよく、いくつかの高度なシステムは、毎10ミリ秒の頻度で計算を実施する。
処理ノードの動的パフォーマンス制御のための装置および方法を開示する。一実施形態において、システムは、処理ノードと、電力管理ユニットとを含む。電力管理ユニットは、複数の第1の時間間隔の各々に対して、処理ノードの活動レベルを監視するように構成されてもよい。電力管理ユニットは、所与の第1の時間間隔内の活動レベルが高活動閾値を超える場合、少なくとも1つの連続する第1の時間間隔の間、複数の動作点のうちの既定の高動作点で処理ノードを動作させ、所与の第1の時間間隔内の活動レベルが低活動閾値未満である場合、少なくとも1つの連続する第1の時間間隔に対して、複数の動作点のうちの既定の低動作点で処理ノードを動作させるように、さらに構成されてもよい。電力管理ユニットはまた、少なくとも1つの連続する第1の時間間隔に対する活動レベルが、所与の第1の時間間隔内で、高活動閾値未満かつ低活動閾値を超える場合、オペレーティングシステムソフトウェアが、複数の動作点のうちの1つ以上の既定の中間動作点のうちの1つで処理ノードを動作させることが可能であるように構成されてもよい。
一実施形態において、方法は、複数の第1の時間間隔の各々に対して、処理ノードの活動レベルを判定することを含む。方法は、活動レベルが高活動閾値を超える場合、電力管理ユニットが、少なくとも1つの連続する第1の時間間隔中、複数の動作点のうちの既定の高動作点で処理ノードを動作させることと、活動レベルが低活動閾値未満である場合、電力管理ユニットが、少なくとも1つの連続する第1の時間間隔中、複数の動作点のうちの既定の低動作点で処理ノードを動作させることとをさらに含んでもよい。方法はまた、活動レベルが高活動閾値未満かつ低活動閾値を超える場合に、オペレーティングシステムソフトウェアが、複数の動作点のうちの1つ以上の中間動作点のうちの1つで処理ノードを動作させることも含んでもよい。
本発明の他の態様は、以下の詳細説明を一読し、添付の図面を参照すると明らかになるであろう。
本発明は、様々な修正および代替形態を容易に生じることができるが、その具体的な実施形態が、一例として図面に示され、本明細書において詳細に記載される。しかしながら、図面およびその説明は、本発明を開示される特定の形態に限定することは意図されず、むしろ、本発明は、添付の「特許請求の範囲」によって定義される本発明の主旨および範囲内である、すべての修正、均等物、および変形を網羅することを理解されたい。
集積回路(IC)システムオンチップ(SOC)の一実施形態のブロック図である。 処理ノードの一実施形態のブロック図である。 電力管理ユニットの一実施形態の動作を例示する図である。 電力管理ユニットの一実施形態のブロック図である。 活動モニタの一実施形態を例示するブロック図である。 CIPS(Committed Instructions Per Second:1秒あたりに実行される命令数)の一実施形態を例示するブロック図である。 IPC(Instructions−per−cycle:1サイクルあたりの命令数)ユニットの一実施形態のブロック図である。 電力管理ユニットを動作するための方法の一実施形態の流れ図である。 いくつかの時間間隔にわたって方法の一実施形態の動作を例示する図である。 電力管理ユニットを含む回路の実施形態を記述するデータ構造を含むコンピュータ可読媒体の一実施形態のブロック図である。
本開示は、プロセッサベースのシステムの1ワットあたりのパフォーマンスを改善するための方法および装置に関する。より具体的には、本明細書に開示される方法および装置は、アプリケーション活動(例えば、処理作業負荷)に基づいて、1つ以上の処理ノード(例えば、シングルコアまたはマルチコアのマイクロプロセッサのプロセッサコア、個別のスタンドアロンマイクロプロセッサ等)の動作点を調整するように利用されてもよい。多様な実施形態において、処理ノードの動作点として、そこに提供されるクロック信号の周波数が挙げられてもよい。動作点として更に、処理ノードに提供される動作電圧(例えば、電源電圧)が挙げられてもよい。したがって、最高動作点は、処理ノードに対して利用可能な最高のクロック周波数を有する動作点として定義されてもよく、また、処理ノードに対して利用可能な最高の動作電圧を有する動作点として定義されてもよい。逆に、最低動作点は、処理ノードに対して利用可能な最低動作(例えば、ゼロ以外の)クロック周波数を有する動作点として定義されてもよく、利用可能な最低のゼロ以外の動作電圧を有する動作点としてさらに定義されてもよい。中間動作点は、クロック周波数および動作電圧のうちの少なくとも1つが、そうでなければ、最高動作点および最低動作点を定義するために使用されてもよい値の間のそれぞれの値に設定される、動作点として定義されてもよい。
1つ以上の処理ノードの各々の動作点は、1つ以上の処理ノードのうちの1つの上で稼動している電力管理ユニットまたはオペレーティングシステム(OS)のいずれかによって設定されてもよい。各処理ノードに対して、電力管理ユニットは、いくつかの第1の時間間隔にわたってその活動レベルを監視してもよく、監視された活動レベルを高活動閾値および低活動閾値と比較してもよい。電力管理ユニットは、活動レベルが高活動閾値を超える場合、複数の動作点のうちのより高い動作点(例えば、最高)で処理ノードを動作させてもよい。電力管理ユニットは、活動レベルが低活動閾値未満である場合、複数の動作点のうちのより低い動作点で処理ノードを動作させてもよい。活動レベルが低閾値を超え、かつ高閾値未満である場合、電力管理ユニットは、オペレーティングシステムソフトウェアが、処理ノードに対して、1つ以上の中間動作点のうちの1つを選択することを可能にしてもよい。オペレーティングシステムソフトウェアは、第2の時間間隔の1期間にわたって活動レベルを監視してもよく、その継続時間は、第1の時間間隔の各々を超える。一実施形態において、第1の時間間隔の各々の継続時間は、100マイクロ秒以下であり、一方、第2の時間間隔の各々の継続時間は、30ミリ秒以上である。したがって、電力管理ユニットは、オペレーティングシステムソフトウェアよりも速く動作点に対する変更を有効にしてもよく、それによって、電力消費のより綿密な制御、したがってプロセッサのワットあたりのパフォーマンスのより精密な制御を可能にする。電力管理ユニットは、監視される活動レベルが高活動閾値以上、または低活動閾値以下である場合、任意の時点で、オペレーティングシステムによって行われた動作点の選択をオーバーライドしてもよい。
本明細書に記載される電力管理ユニットは、プロセッサ内部にハードウェアとして実装されてもよく、このような実施形態は、検出された動作レベルに基づいて動作点を選択および設定する際に、OSソフトウェアとは独立して動作してもよい。いくつかの実施形態において、電力管理ユニットの機能は、ファームウェアとして、またはOSとは独立して動作する他のソフトウェアとして実装されてもよい。特定の実装には関係なく、電力管理ユニットは、OS単体によって制御される実施形態に伴って起こり得るオーバーヘッド(例えば、中断等)なしに、本明細書に記載される機能を実施してもよい。電力管理ユニットの多様な実施形態で活動が監視される時間間隔は、OSが動作点を設定するために使用される活動監視を実施する場合がある時間間隔より相当(例えば、1つ以上の桁)小さくてもよい。
一実施形態において、処理ノードの動作点は、その中のアプリケーション活動が計算主体、メモリ主体、またはこれらの2つの点の間であるかに依存して調整されてもよい。計算主体の作業負荷は、メインメモリへの頻度の低い(存在する場合)アクセスを伴う、計算集中型である処理作業負荷として定義されてもよい。可能な限り最短の時間量で計算主体の作業負荷を完了するには、処理ノードが最高の利用可能なクロック周波数で作業負荷動作を実行する一方、1サイクルあたりに実行される命令の数を最大にすることが要求されてもよい。したがって、本明細書に記載される方法および装置は、計算主体の作業負荷が実行中であるときを判定し、さらにそれに応答する高パフォーマンス状態に動作点を増加する(クロック周波数および/または動作電圧を増加する)ことが可能であってもよい。一実施形態において、方法および装置は、計算主体の作業負荷を検出することに応答して、その特定のノードで利用可能な最高のパフォーマンス状態に対応する動作点で処理ノードを動作させてもよい。
処理作業負荷がメモリ主体である場合、処理ノードは、メインメモリの頻繁なアクセスを実施してもよい。メインメモリのアクセスに関連するレイテンシは、プロセッサのサイクル時間より何桁も大きい可能性があるため、メモリ主体の作業負荷は、実行されている処理ノードの動作周波数(すなわち、クロック周波数)に対する制約がはるかに低くてもよい。より具体的には、メモリアクセスは、プロセッサを失速させてもよく、その後のこれらの失速の継続時間は、メモリアクセスレイテンシの関数である。メモリアクセスに関連するレイテンシは、典型的にはコアクロック周波数よりはるかに低い、メモリバスクロック周波数の関数である。このために、メモリ主体の作業負荷の処理において、コアクロック周波数の増加は、典型的には、対応するパフォーマンスの増加とはならない。その上、メモリ主体の作業負荷を処理するときにコアクロック周波数を削減しても、メモリアクセスレイテンシは通常、これらの作業負荷が実行される場合がある速度を判定する上で限定的因子であるため、典型的には、相応するパフォーマンスの損失とはならない。したがって、本明細書に記載される方法および装置は、メモリ主体の作業負荷が実行中であるときを判定し、さらにそれに応答して低パフォーマンス状態へ動作点を減少させる(例えば、クロック周波数および/または動作電圧を減少させる)ことが可能であってもよい。メモリ主体の作業負荷を実行するときに動作点を低パフォーマンス状態に減少することで、パフォーマンスに悪影響を与えることなく、電力を節約し得る。一実施形態において、方法および装置は、メモリ主体の作業負荷を検出することに応答して、最低の非アイドルパフォーマンス状態に対応する動作点で処理ノードを動作させてもよい。最低の非アイドル動作点は、本明細書において、処理ノードが電力およびゼロ以外の周波数でクロック信号を受信している動作点として定義されてもよい。
所与の処理ノードに対して計算主体およびメモリ主体の作業負荷を検出することは、そのノードの活動レベルを高閾値および低閾値と比較することが関与してもよい。活動レベルが高閾値を超える場合、処理ノードは、高パフォーマンス状態に対応する動作点で動作されてもよい。活動レベルが低閾値未満である場合、処理ノードは、低パフォーマンス状態に対応する動作点で動作されてもよい。活動レベルが高閾値未満であるが、低閾値を超える場合、処理ノードは、1つ以上の中間動作点のうちの1つで動作されてもよい。一実施形態において、中間動作点は、ソフトウェアによって(例えば、オペレーティングシステムソフトウェアによって)選択されてもよい。
各処理ノードに対する活動レベルの検出および比較は、いくつかの連続する第1の時間間隔の各々に対して、電力管理ユニットによって実施されてもよい。上述のように、間隔の継続時間は、マイクロ秒の単位であってもよい。一実施形態において、間隔の最大継続時間は、100マイクロ秒であってもよく、10マイクロ秒までの短い間隔が検討される。第1の間隔の継続期間が10マイクロ秒未満である実施形態もまた検討される。したがって、本明細書に開示される方法および装置は、オペレーティングシステムソフトウェアによって提供されるものと比較して、綿密な動作点の制御を可能にしてもよく、動作点の監視、比較、および設定の時間間隔は、30〜100ミリ秒の範囲とすることができる。加えて、活動レベルおよび動作点の判定は、オペレーティングシステムソフトウェアによって要求される場合がある中断または他のオーバーヘッドを要求することなく実施されてもよい。このように、消費電力1ワットあたりのパフォーマンスが最適化されてもよい。
(電力管理ユニットを備えるプロセッサ)
図1は、メモリに連結された集積回路(IC)の一実施形態のブロック図である。IC2およびメモリ6、さらにディスプレイ3およびディスプレイメモリ300は、この例において、コンピュータシステム10の少なくとも一部を形成する。示される実施形態において、IC2は、いくつかの処理ノード11を有するプロセッサである。処理ノード11は、この特定の例ではプロセッサコアであり、このため、コア#1、コア#2等とも指定される。本明細書に記載される方法論は、個別の専用のICダイ上に複数のプロセッサ(シングルコアまたはマルチコアプロセッサの場合がある)を実装するマルチプロセッサコンピュータシステムのような他の配置に適用されてもよい。その上、単一の処理ノード11だけを有する実施形態も可能であり、検討される。
各処理ノード11は、示される実施形態においてノースブリッジ(north bridge)12に連結される。ノースブリッジ12は、メモリおよび多様な周辺機器へのインターフェースを含む、処理ノード11の各々のための多種多様なインターフェース機能を提供してもよい。加えて、ノースブリッジ12は、以下に詳細を記載するように、それぞれの活動レベルまたは作業負荷に基づいて、処理ノード11の各々の電力消費を管理するように構成されている電力管理ユニット20を含む。その上、マルチコア(またはマルチプロセッサ)実施形態では、電力管理ユニット20は、相互に独立して個別の処理ノード11の動作点を設定してもよい。このように、第1の処理ノード11は第1の動作点で動作してもよい一方、第2の処理ノード11は、第1とは異なる第2の動作点で動作してもよい。
多様な実施形態において、処理ノード11の数は、わずか1であってもよく、またはICダイ上に実装可能である限り多くてもよい。マルチコア実施形態において、処理ノード11は相互に同一であってもよく(すなわち、ホモジニアスマルチコア)、または1つ以上の処理ノード11は相互に異なってもよい(すなわち、ヘテロジニアスマルチコア)。処理ノード11は各々、1つ以上の実行ユニット、キャッシュメモリ、スケジューラ、分岐予測回路等を含んでもよい(例示的な処理ノードは図2を参照して以下に記載する)。その上、処理ノード11の各々は、コンピュータシステム10のメインメモリとして機能してもよいし、メモリ6へのアクセスリクエストをアサート(assert)するように構成されてもよい。このようなリクエストは、読み出しリクエストおよび/または書き込みリクエストを含んでもよく、ノースブリッジ12によって、それぞれの処理ノード11から最初に受信されてもよい。メモリ6へのアクセスリクエストは、示される実施形態では、メモリコントローラ18を通して送られてもよい。
I/Oインターフェース13は、示される実施形態ではノースブリッジ12にも連結される。I/Oインターフェース13は、コンピュータシステム10のサウスブリッジデバイスとして機能してもよい。いくつかの異種の周辺バスがI/Oインターフェース13に連結されてもよい。この特定の例では、バスの種類として、周辺構成要素相互接続(PCI)バス、PCI拡張(PCI−X)、PCID(PCIエクスプレス)バス、ギガビットイーサネット(登録商標)(GBE)バス、およびユニバーサルシリアスバス(USB)が挙げられる。しかしながら、これらのバスの種類は例であり、多数の他のバスの種類もまたI/Oインターフェース13に連結されてもよい。周辺機器は、周辺バスのいくつかまたは全てに連結されてもよい。そのような周辺機器として、(これらに限定されないが)キーボード、マウス、プリンタ、スキャナ、ジョイスティックまたは他の種類のゲームコントローラ、媒体記録装置、外付け記憶装置、ネットワークインターフェースカード等が挙げられる。対応する周辺バスを介してI/Oインターフェース13に連結されるかもしれないがある周辺機器の少なくともいくつかは、ダイレクトメモリアクセス(DMA)を使用してメモリアクセスリクエストをアサートしてもよい。これらのリクエスト(読み出しおよび書き込みリクエストを含んでもよい)は、I/Oインターフェース13を介してノースブリッジ12に伝達されてもよく、メモリコントローラ18に送られてもよい。
示される実施形態において、IC2は、コンピュータシステム10のディスプレイ3に連結されるディスプレイ/ビデオエンジン14を含む。ディスプレイ3は、フラットパネルLCD(液晶ディスプレイ)、プラズマディスプレイ、CRT(ブラウン管)、または任意の他の好適なディスプレイの種類であってもよい。ディスプレイ/ビデオエンジン14は、多様なビデオ処理機能を実施し、処理された情報をビジュアル情報として出力するためにディスプレイ3に提供してもよい。3D処理、ビデオゲームの処理、およびより複雑な種類のグラフィックス処理等のいくつかのビデオ処理機能は、グラフィックスエンジン15によって実施されてもよく、処理された情報は、ノースブリッジ12を介して、ディスプレイ/ビデオエンジン14へリレーされる。
この特定の例では、コンピュータシステム10は、ビデオメモリおよびRAMは相互に独立している非統合メモリアーキテクチャ(NUMA)実装を実装する。示される実施形態において、コンピュータシステム10は、ディスプレイ/ビデオエンジン14に連結されるディスプレイメモリ300を含む。このように、メモリ6からビデオデータを受信する代わりに、ビデオデータは、ディスプレイメモリ300から、ディスプレイ/ビデオエンジン14によってアクセスされてもよい。これによって、周辺バスのうちの1つを介して、I/Oインターフェース13に連結されるコア11および任意の周辺機器の各々に対して、より大きいメモリアクセスの帯域幅が可能になってもよい。
示される実施形態において、IC2は、システムクロック信号を受信するように連結された位相同期ループ(PLL)4を含む。PLL4は、処理ノード11の各々に対応するクロック信号を分散してもよい。この実施形態では、処理ノード11の各々によって受信されたクロック信号は相互に独立している。その上、この実施形態のPLL4は、処理ノード11のそれぞれに相互に独立して提供されたクロック信号の各々の周波数を個別に制御し、変更するように構成されている。以下に詳細を記載するように、処理ノード11の任意の所与の1つによって受信されたクロック信号の周波数は、その上に課されるパフォーマンス要求に応じて、増加または減少されてもよい。クロック信号がPLL4から出力されてもよい多様な周波数は、処理ノード11の各々に対して異なる動作点に対応してもよい。したがって、処理ノード11の特定の1つに対する動作点の変更は、そのそれぞれに受信されるクロック信号の周波数を変更することによって、有効にされてもよい。
1つ以上の処理ノード11のそれぞれの動作点を変更することが、1つ以上のそれぞれのクロック周波数を変更することを含む場合、電力管理ユニット20は、PLL4に提供されるデジタル信号SetF[M:0]の状態を変更してもよい。これらの信号の変更に応じて、PLL4は、影響する処理ノードのクロック周波数を変更してもよい。
示される実施形態において、IC2は、電圧調整器5も含む。他の実施形態において、電圧調整器5は、IC2とは別に実装されてもよい。電圧調整器5は、処理ノード11の各々に供給電圧を提供してもよい。いくつかの実施形態において、電圧調整器5は、(例えば、より優れたパフォーマンスのために増加、より大きい電力節約のために減少された)特定の動作点にしたがって変動する供給電圧を提供してもよい。いくつかの実施形態において、処理ノード11の各々は、電圧プレーンを共有してもよい。このため、このような実施形態の各処理ノード11は、処理ノード11の他のノードと同じ電圧で動作する。別の実施形態において、電圧プレーン(plane)は共有されず、このため、各処理ノード11によって受容される供給電圧は、処理ノード11の他のノードによって受容されるそれぞれの供給電圧とは独立して設定、調整されてもよい。このため、供給電圧の調整を含む動作点の調整は、電圧プレーンを共有しない実施形態の他のノードとは独立して、各処理ノード11に選択的に応用されてもよい。動作点を変更することは、1つ以上の処理ノード11の動作電圧を変更することを含む場合、電圧管理ユニット20は、電圧調整器5に提供されるデジタル信号SetV[M:0]の状態を変更してもよい。信号SetV[M:0]の変更に応じて、電圧調整器5は、処理ノード11の影響を受けるノードに提供される供給電圧を調整してもよい。
動作点は、それぞれの動作レベル(例えば、処理作業負荷)に応じて、相互に独立して、処理ノード11の各々に対して設定されてもよい。示される実施形態において、電力管理ユニット20は、処理ノード11の各々の活動レベルを示す情報を受信してもよい。各処理ノードに示される活動レベルは、閾値に比較されてもよく、対応する処理ノードの動作点は、比較の結果に基づいて、これに応じて調整されてもよい。閾値は、高活動閾値と、低活動閾値とを含んでもよい。所与の処理ノード11の活動レベルが高活動閾値を超える場合、その動作点は、既定の高動作点(例えば、最高のクロック周波数および動作電圧)に調整されてもよい。所与の処理ノード11の活動レベルが低活動閾値未満である場合、動作点は、既定の低い非アイドル動作点(例えば、最低のゼロ以外のクロック周波数および電圧)に調整されてもよい。
比較演算が、所与の処理ノード11の活動が高活動閾値未満であるが、低活動閾値を超えることを示す場合、電力管理ユニット20は、オペレーティングシステムソフトウェア(または他のソフトウェア)が、1つ以上の中間動作点のうちの1つで特定の処理ノード11に動作させることを可能にしてもよい。いくつかの実施形態において、単一の中間動作点が実装されてもよい。他の実施形態において、複数の中間動作点が利用されてもよい。
処理ノード11の各々の活動レベルを上記の閾値と比較することは、いくつかの連続する時間間隔にわたって実施されてもよい。所与の時間間隔の間の1つの比較が、処理ノード11の動作点を調整する必要を示す場合、動作点は、次に続く時間間隔に対して調整されてもよい。比較演算は、各間隔に対して1回実施されてもよく、比較結果に基づいて行われる任意の調整が、次に続く間隔に適用されてもよい。変更が全く必要ないことを比較結果が示す場合、処理ノード11は、比較結果が異なる動作点に対応する活動レベルを示すまで、1つ以上の連続する時間間隔に対して、その現在の動作点で継続してもよい。
一実施形態において、オペレーティングシステム(OS)ソフトウェア等、集積回路2上で稼動しているソフトウェアは、活動レベルが高閾値未満かつ低閾値を超える場合、処理ノード11の各々のための動作点を選択してもよい。しかしながら、比較演算は、各時間間隔に対して、電力管理ユニットによって実施されるように継続してもよい。比較演算が、活動レベルが高閾値を超える、または低閾値未満であることを検出した場合、影響が及ぶ処理ノード11の動作点はこれに応じて変更されてもよく、それ以外の場合には中間動作点を選択するために使用されるOSまたは他の機構によって指定される場合がある動作点をオーバーライドする。OSは、電力管理ユニット20によって使用される時間間隔の継続時間を超える継続時間を各々有する、別の組の時間間隔にわたって、活動を監視してもよい。OSが活動レベルを監視する時間間隔の継続時間は、電力管理ユニット20の継続時間より少なくとも1桁大きくてもよい。例えば、一実施形態において、電力管理ユニット20は、100ミリ秒以内の時間間隔にわたって活動レベルを監視(したがって、動作点の変更を有効に)してもよい。対照的に、この実施形態のオペレーティングシステムソフトウェアは、30ミリ秒未満の時間間隔にわたって活動レベルを監視(したがって、動作点の変更を有効に)してもよい。
上述のように、処理ノード11の動作点は、少なくともクロック周波数によって定義されてもよく、また、動作電圧によって定義されてもよい。一般的に、「より高い」動作点への推移は、影響を受ける処理ノード11のクロック周波数を増加することによって定義されてもよい。より高い動作点への推移は、その動作(例えば、供給)電圧を増加することも含んでもよい。同様に、「より低い」動作点への推移は、影響を受ける処理ノード11のクロック周波数を減少することによって定義されてもよい。影響を受ける処理ノード11に提供される動作/供給電圧の減少もまた、より低い動作点への推移の定義に含まれてもよい。
一実施形態において、動作点は、アドバンスコンフィギュレーションおよびパワーインターフェース(ACPI)仕様のパフォーマンス状態(以下、「P状態」)に対応してもよい。以下の表1は、ACPI基準を使用して実装される一実施形態のP状態を列挙する。
Figure 2013536532
表1に列挙されたP状態は、ACPIに準拠するプロセッサが、C0として知られる非アイドル状態で動作中に適用されてもよい。上記の表1に対応する実施形態では、P状態のP0は、最高動作点であり、2GHzのクロック周波数および1.1ボルトの動作電圧を有する。一実施形態の電力管理ユニット20は、対応する活動レベルが高活動閾値を超えることに応答して、P状態P0で処理ノード11に動作させてもよい。P状態P0の動作は、計算主体である作業負荷を処理するために利用されてもよい。計算主体の作業負荷は、時間的制約がある計算集中型であってもよく、(存在する場合)いくつかのメモリアクセスを必要とする。より低い電力消費でP状態相応により短時間で戻ることを可能にしながら、最高のパフォーマンスを維持するためにできるだけ最短時間で作業負荷を実行することが所望される場合がある。したがって、高活動レベルを有する計算主体の作業負荷は、P状態P0で実行されてもよく、より高速の完了を可能にしてもよい。
P状態P4は、この特定の実施形態では最低の非アイドル動作点であり、800MHzのクロック周波数および0.8Vの動作電圧を有する。電力管理ユニット20は、対応する活動レベルが低活動閾値未満であることに応答して、P状態P4で処理ノード11に動作させてもよい。P状態P4は、メモリ主体の作業負荷ならびに時間的制約(または周波数制約)のない他のタスクで使用されてもよい。メモリ主体の作業負荷は、システムメモリへの頻繁なアクセスを含む作業負荷である。メモリアクセスには、(メモリにアクセスしない命令の実行時間に比較して)大きいレイテンシが関与し、メモリ主体の作業負荷のクロック周波数を削減することは、最低のパフォーマンス影響を有する場合があり、この場合電力の節約は、システムの1ワットあたりのパフォーマンスメトリクスを向上させてもよい。
検出された活動レベルが、低活動閾値を超え、かつ高活動閾値未満である場合、対応する処理ノード11の動作は、特定の実施形態に依存して、OS、他のソフトウェア、ファームウェア、および/または他のハードウェアの管轄下で、P状態P1、P2、P3のうちの任意の1つに設定されてもよい。
表1に列挙されたP状態は、例示的な1組の動作点であることに注意されたい。異なるクロック周波数および動作電圧を有する動作点を使用する実施形態が可能であり、検討される。その上、上述のように、いくつかの実施形態は、処理ノード11の共有電圧プレーンを利用してもよく、このため、これらのそれぞれの動作点は、クロック周波数に基づいて定義されてもよい。いくつかの実施形態では、処理ノードの各々の動作電圧は、固定されたままであってもよく、一方、他の実施形態では、動作電圧は、全ての処理ノード11に対して同時に調整されてもよい。
上記の多様なユニットが個別のIC上に実装される実施形態が可能であり、検討されることに注意されたい。例えば、コア11が第1のIC上に実装され、ノースブリッジ12およびメモリコントローラ18が別のIC上にあり、一方、残りの機能ユニットはまた別のIC上にある、一実施形態が検討される。一般的に、上記の機能ユニットは、好みに応じて多数または少数の異なるIC上、ならびに単一のIC上に実装されてもよい。
また、上記の表1にP状態として列挙された動作点は、ACPI以外の実施形態で利用されてもよいことにも注意されたい。
(処理ノード)
図2は、処理ノード11の一実施形態のブロック図である。処理ノード11は、システムメモリ200に記憶される場合がある命令を実行するように構成されている。これらの命令の多くは、これもシステムメモリ200上に記憶されるデータ上で作動する。システムメモリ200は、コンピュータシステム全体に物理的に分散されてもよく、および/または1つ以上のプロセッサ100によってアクセスされてもよい。
例示される実施形態において、処理ノード11は、レベル1(L1)命令キャッシュ106と、L1データキャッシュ128とを含んでもよい。処理ノード11は、命令キャッシュ106に連結されるプリフェッチユニット108を含んでもよい。ディスパッチユニット104は、命令キャッシュ106から命令を受信し、スケジューラ118に演算をディスパッチするように構成されてもよい。スケジューラ118のうちの1つ以上は、ディスパッチユニット104からディスパッチされた演算を受信し、1つ以上の実行ユニット124へ演算を発行するように連結されてもよい。実行ユニット124は、1つ以上の整数ユニットと、1つ以上の浮動小数点ユニットと、1つ以上のロード/記憶ユニットとを含んでもよい。実行ユニット124によって生成される結果は、1つ以上の結果バス130(ここでは明確化のために単一の結果バスが示されるが、複数の結果バスが可能であり、検討される)に出力されてもよい。これらの結果は、その次に発行される命令のオペランド値として使用されても、および/またはレジスタファイル116に記憶されてもよい。リタイアキュー102は、スケジューラ118およびディスパッチユニット104に連結されてもよい。リタイアキュー102は、各発行された演算がいつリタイアされてもよいかを判定するように構成されている。
一実施形態において、処理ノード11は、x86アーキテクチャ(インテルアーキテクチャ32またはIA32とも呼ばれる)と互換性があるように設計されてもよい。別の実施形態において、処理ノード11は、64ビットアーキテクチャと互換性があってもよい。他のアーキテクチャと互換性のある処理ノード11の実施形態も検討される。
処理ノード11の各々は、多数の他の構成要素も含むことに注意されたい。例えば、処理ノードは、命令スレッドを実行する際に、分岐を予測するように構成されている分岐予測ユニット(図示せず)を含んでもよい。
命令キャッシュ106は、ディスパッチユニット104によってフェッチするための命令を記憶してもよい。命令コードは、プリフェッチユニット108を介して、システムメモリ200からコードを予めフェッチすることによって、記憶するために命令キャッシュ106に提供されてもよい。命令キャッシュ106は、多様な構成(例えば、セットアソシアティブ、フルアソシアティブ、またはダイレクトマップ方式)で実装されてもよい。
処理ノード11はまた、レベル2(L2)キャッシュ140も含んでもよい。命令キャッシュ106は、命令を記憶するために使用されてもよく、データキャッシュ128は、データ(例えば、オペランド)を記憶するために使用されてもよいが、L2キャッシュ140は、命令およびデータを記憶するように統合されて使用されてもよい。ここには明示的に示されないが、いくつかの実施形態は、レベル3(L3)キャッシュも含んでもよい。一般的に、キャッシュレベルの数は、実施形態により異なってもよい。
プリフェッチユニット108は、命令キャッシュ106内に記憶するために、システムメモリ200から命令コードを予めフェッチしてもよい。プリフェッチユニット108は、多様な特定のコードプリフェッチ技法およびアルゴリズムを採用してもよい。
ディスパッチユニット104は、実行ユニット124によって実行可能な演算ならびにオペランドのアドレス情報、即時データおよび/または置換データを出力してもよい。いくつかの実施形態では、ディスパッチユニット104は、所定の命令を実行ユニット124内で実行可能な演算にデコードするためのデコード回路(図示せず)を含んでもよい。簡単な命令は、単一の演算に対応してもよい。いくつかの実施形態において、より複雑な命令は、複数の演算に対応してもよい。レジスタの更新が関与する演算のデコード時に、レジスタファイル116内のレジスタの場所は、投機的レジスタ状態を記憶するために、保存されてもよい(代替の実施形態では、リオーダバッファが、各レジスタに対して1つ以上の投機的レジスタ状態を記憶するために使用されてもよく、レジスタファイル116は各レジスタに対して登録されたレジスタ状態を記憶してもよい)。レジスタマップ134は、レジスタの名前変更を促進するために、ソースおよびデスティネーションオペランドの論理レジスタ名を物理的レジスタ番号に変換してもよい。レジスタマップ134は、レジスタファイル116内のどのレジスタが現在割り当てられているか、および割り当てられていないかを追跡してもよい。
図2の処理ノード11は、アウトオブオーダ(out of order)実行をサポートしてもよい。リタイアキュー(retire queue)102は、レジスタの読み出しおよび書き込み演算に対する本来のプログラムシーケンスの追跡を維持し、投機的命令実行および分岐予測ミスの復元を可能にし、正確な例外を促進してもよい。いくつかの実施形態では、リタイアキュー102はまた、投機的レジスタ状態のデータ値ストレージを提供することによって、レジスタの名前変更をサポートしてもよい(例えば、リオーダバッファに類似)。他の実施形態では、リタイアキュー102は、リオーダバッファに類似して機能してもよいが、データ値ストレージは一切提供しなくてもよい。演算がリタイアすると、リタイアキュー102は、投機的レジスタ状態を記憶することがもはや必要ではない、レジスタファイル116内のレジスタの割り当てを解消し、レジスタマップ134に対して、どのレジスタが現在解放されているかを示す信号を提供してもよい。それらの状態を生成した演算が検証されるまで、レジスタファイル116内(または、代替の実施形態ではリオーダバッファ内)に投機的レジスタ状態を維持することによって、投機的に実行された演算の結果ならびに誤って予測されたパスは、分岐予測が正しくない場合、レジスタファイル116内で無効化されてもよい。
一実施形態において、レジスタファイル116の所与のレジスタは、実行された命令のデータ結果を記憶するように構成されてもよく、また、実行された命令によって更新されてもよい1つ以上のフラグビットを記憶してもよい。フラグビットは、次の命令を実行する上で重要な場合がある多様な種類の情報を伝達してもよい(例えば、加算または乗算演算の結果、キャリーまたはオーバーフロー状況が存在することを示す)。設計上、フラグを記憶するフラグレジスタが定義されてもよい。このため、所与のレジスタへの書き込みは、論理レジスタおよびフラグレジスタの両方を更新してもよい。全ての命令が1つ以上のフラグを更新しなくてもよいことに注意されたい。
レジスタマップ134は、演算のためのデスティネーションオペランドとして指定された特定の論理レジスタ(例えば、アーキテクチャ上のレジスタまたはマイクロアーキテクチャ上で指定されたレジスタ)に物理的レジスタを割り当ててもよい。ディスパッチユニット104は、レジスタファイル116が、所与の演算の中のソースオペランドとして指定された論理レジスタに割り当てられた、以前に割り当てられた物理的レジスタを有すると判定してもよい。レジスタマップ134は、その論理レジスタに最近割り当てられた物理的レジスタのためのタグを提供してもよい。このタグは、レジスタファイル116のオペランドのデータ値にアクセスするため、または結果バス130上の結果転送を介してデータ値を受信するために使用されてもよい。オペランドがメモリ場所に対応する場合、オペランド値は、ロード/ストアユニット(図示せず)を通して、(結果転送および/またはレジスタファイル116内に記憶するために)結果バス上に提供されてもよい。オペランドデータ値は、演算がスケジューラ118のうちの1つによって発行されると、実行ユニット124に提供されてもよい。代替の実施形態では、オペランド値は、(演算が発行されると対応する実行ユニット124に提供される代わりに)演算がディスパッチされると、対応するスケジューラ118に提供されてもよいことに注意されたい。
本明細書に使用される場合、スケジューラは、演算が実行の準備が整い、整った演算を1つ以上の実行ユニットに発行するときを検出するデバイスである。例えば、予約局は、スケジューラの1種の場合がある。1実行ユニットにつき独立した予約局が提供されてもよく、演算が発行される中央の予約局が提供されてもよい。他の実施形態において、リタイアするまで演算を保存する中央のスケジューラが使用されてもよい。各スケジューラ118は、実行ユニット124への発行を待機しているいくつかの保留演算に対して、演算情報(例えば、演算ならびにオペランド値、オペランドタグ、および/または即時データ)を保留することが可能であってもよい。いくつかの実施形態では、各スケジューラ118は、オペランド値にストレージを提供しなくてもよい。その代わり、各スケジューラは、実行ユニット124によって(レジスタファイル116または結果バス130から)読み出されるオペランド値がいつ利用可能になるかを判定するために、発行された演算およびレジスタファイル116内の利用可能な結果を監視してもよい。
本明細書には明示的に示されないが、図1の多様なユニットの処理ノード11(明示的に示されていないユニットも含む)と、電力管理ユニット20との間に、いくつかの異なる通信経路が提供されてもよい。より具体的には、処理ノード11は、電力管理ユニット20に対して活動レベルを示す情報を提供するために、このような通信経路を利用してもよい。例えば、リタイアキュー102は、命令のリタイアに関する情報を電力管理ユニット20に提供してもよい。別の例では、実行ユニット124は、実行された命令に関する情報を提供してもよく、ディスパッチユニット104は、ディスパッチされた命令に関する情報を提供してもよく、スケジューラ118は、スケジュールされた命令に関する情報を提供してもよく、多様なキャッシュのうちの任意の1つ(または全て)は、キャッシュヒットまたはミスに関する情報を提供してもよい。存在し得るユニットであって本明細書に明示的に示されないユニットのうち、分岐予測ユニットは、一例として、分岐予測ミスに関する情報を提供してもよい。ここに記載されない他のユニットもまた、他の種類の情報を電力管理ユニット20に提供してもよい。多様なユニットの処理ノード11から受信された情報は、その活動レベルを判定するために使用されてもよい。活動レベルを判定する多様な方法が適用されてもよく、ある種類の情報には、他の種類より大きい重みを付けてもよい。加えて、いくつかの種類の情報は、ある時間にまとめて無視されてもよい。提供された情報から判定された活動レベルは、次に、処理ノード11の動作点を選択するために使用されてもよい。
(概念観点)
図3は、アプリケーションの活動に関して、電力管理ユニットの一実施形態の動作を例示するブロック図である。示される例では、グラフは、「アイドル」と低閾値の間の領域、低閾値と高閾値との間の領域、および高閾値より上の領域、の3つの領域に分割される。
第1の領域の活動レベル(すなわち、低閾値未満)は、処理作業負荷がメモリ主体である、またはそうでなければ、(対応する処理ノード11のクロック周波数に関して)低い周波数制約があることを示す。このような活動レベルが検出される処理ノード11は、処理ノード全体の性能に非常に少ない(存在する場合)マイナスの影響を与える、できる限り最低の非アイドル動作点に入れられてもよい。最低の非アイドル動作点は、最低のクロック周波数を有する動作点として定義されてもよい。できる限り最低の動作点はまた、できる限り最低の動作電圧を有する動作点によって定義されてもよい。上記の表1の例を使用すると、処理ノード11の活動レベルが、所与の時間間隔の間、この領域にあると判定されると、少なくとも次の時間間隔は、P状態P4に入れられてもよい。
第3の領域の活動レベル(すなわち、高閾値より上)は、処理作業負荷が計算主体である、またはそうでなければ、(クロック周波数に関して)高い周波数制約があることを示す。この活動レベルが1時間間隔の間、所与の処理ノード11で検出されると、少なくとも次の時間間隔はそのノードに対して、最高の動作点が選択されてもよい。上記の表1の例を使用すると、高活動レベルを検出すると、電力管理ユニット20が、対応する処理ノードをP0状態に入れることになってもよい。これによって、タスクをより高速で完了する間、作業負荷が最高のパフォーマンスで実行することを可能にしてもよい。
所与の時間間隔に対して検出された活動レベルが第2の領域(低閾値を超えるが、高閾値未満)で検出されると、対応する処理ノードは、オペレーティングシステム(OS)、他のソフトウェア、ファームウェア、または他のハードウェアによって要求される動作点に入れられてもよい。表1のP状態、P1、P2、およびP3は、第2の領域で利用されてもよい中間動作点の例である。
OSまたは他のソフトウェアが第2の領域内の動作点を選択する実施形態において、処理ノードは、いくつかの時間間隔に対して、その特定の点で動作し続けてもよく、検出されたアプリケーションの活動レベルは、第2の領域(すなわち、低閾値を超え、かつ高閾値未満)相応にとどまると想定する。ある中間動作点から別の動作点への変更は、最高および最低の動作点での動作を判定するために使用されるよりもはるかに長い時間間隔にしたがって発生してもよい。アプリケーションの活動レベルを低閾値および高閾値と比較することは、毎10〜100マイクロ秒の単位の間隔で発生し続けてもよいが、どの中間動作点が最適であるかを判定するために使用される比較は、毎30〜100ミリ秒の単位の間隔で発生してもよい。このように、電力管理ユニット20は、アプリケーションの活動レベルを高閾値および低閾値と比較することを続けてもよく、対応する活動レベルが検出される任意のタイミングで、影響される処理ノード11を最高動作点または最低動作点に推移させることによって、中間動作点の選択をオーバーライドしてもよい。
図3に示される高閾値および低閾値に加えて、ヒステリシス閾値レベルもまた、処理ノードの動作点を変更すべきかどうかを判定する際に検討されてもよい。高ヒステリシス閾値はまた、最高動作点へ推移または最高動作点から推移すべきかどうかを判定する際に検討されてもよく、一方、低ヒステリシス閾値は、最低動作点へ推移または最低動作点から推移すべきかどうかを判定する際に検討されてもよい。これらのヒステリシス閾値を利用することで、異常に起因して非最適動作点へ推移することを防止してもよい。例えば、計算主体の作業負荷がP状態P0で実行している状況を検討する。この状況での分岐予測ミスは、パイプライン失速を発生させる場合があり、これによって、活動レベル全体に一時的減少を生じる。高ヒステリシス閾値レベルは、このような状況で考慮に入れられてもよく、これによって、対応する処理ノード11がP状態P0で引き続き動作することを可能にする。
上記の動作は、消費される電力の1ワットあたりのそのパフォーマンスを向上することによって、プロセッサの効率を強化してもよい。最低の周波数制約および/またはメモリ主体のアプリケーションのためにクロック周波数および動作電圧をそれらの可能な限りの最低動作値へ削減することによって、これらのアプリケーションが依然として、そうでなければ不要である電力を無駄にすることなく、適時に実行することを可能にしてもよい。最高の周波数制約および/または計算主体のアプリケーションのためにクロック周波数および動作電圧をそれらの可能な限りの最高動作値に増加することによって、これらのアプリケーションが、所望のパフォーマンスレベルでより高速に実行することを可能にし、このため、完了時に、より低い電力消費の動作点により迅速に戻ることを可能にしてもよい。
(電力管理ユニットおよびその構成要素)
図4は、電力管理ユニットの一実施形態を例示するブロック図である。示される実施形態において、電力管理ユニット20は、以下に詳細を記載する、活動モニタ202、1秒あたりに実行される命令数(CIPS)ユニット204、1サイクルあたりの命令数(IPC)ユニット206を使用して、1つ以上の処理ノードの各々の活動レベルを監視するように構成されている。これらの多様なユニットは、判定ユニット208に情報を提供してもよい。この情報は、処理ノード11の各々の動作点を設定するために、判定ユニット208によって使用されてもよい。判定ユニット208は、処理ノード11の各々のための動作点を判定するために、これらのユニットのうちの選択された1つから、または各々から提供される情報を検討してもよい。判定ユニット208はまた、処理ノード11の各々の現在の動作点を示す情報を受信するように連結される。
所与の処理ノード11の動作点への変更は、そこに提供されるクロック信号の周波数を変更することによって実施されてもよく、また、それぞれの供給電圧を変更することを含んでもよい。判定ユニット208による処理ノード11の各々に対するクロック周波数の調整は、信号SetF[N:0]の状態への変更を通して有効になってもよい。処理ノード11の各々に対する動作電圧の調整は、信号SetV[N:0]の状態への変更を通して有効になってもよい。
図4に示される電力管理ユニット20の実施形態は例示であり、他の実施形態が可能で、検討されることに注意されたい。活動モニタ202、CIPSユニット204、またはIPCユニット206のうちの1つだけを含む実施形態もまた可能で考慮され、そのような実施形態は、判定ユニット208を使用することなく実装されてもよい。例えば、処理ノード11の活動レベルがCIPSユニット204に提供される情報に基づいて判定される実施形態が検討される。このような実施形態では、CIPSユニット204は、そうでなければ、判定ユニット208によって提供される機能のうちの少なくともいくつかを組み入れてもよい。
一般的に、電力管理ユニット20は、任意の構成で実装されてもよく、1つ以上の処理ノードの活動レベル/処理作業負荷が監視されてもよく、これに応じて動作点の変更を有効にしてもよい。より具体的には、電力管理ユニット20は、1つ以上の処理ノードの各々の活動レベルが、複数の時間間隔の各々に対して、高活動閾値および低活動閾値と比較され、次に続く時間間隔のそれぞれの動作点が比較の結果にしたがって選択されてもよい、任意の構成に実装されてもよい。より具体的には、電力管理ユニット20は、次に続く時間間隔内の演算が、監視される活動レベルが高活動閾値を越える場合には最高の動作点(例えば、上記表1のP状態P0)に、活動レベルが低活動閾値未満の場合には最低の動作点(例えば、上記の表1のP状態P4)に、または活動レベルが高閾値未満かつ低閾値未満を超える場合には1つ以上の中間動作点のうちの1つ(例えば、P状態P1、P2、またはP3)に設定される、任意の構成に実装されてもよい。
ここで図5を参照すると、活動モニタの一実施形態を例示するブロック図が示される。示される実施形態において、活動モニタ202は、平均活動カルキュレータ(AAC)250、閾値コンパレータ252、および間隔タイマ254を含む。示される実施形態の活動モニタ202は、1つ以上の処理ノード11の活動の移動平均を計算、追跡し、平均活動レベルを高活動閾値および低活動閾値と比較するように構成されている。比較の結果は、処理ノードのための適当な動作点を判定するために使用されてもよい。示される実施形態において、比較は各間隔で1回実行され、間隔タイマ254によって計測される。
AAC250は、1つ以上のメトリクスに基づいて、そこに連結される各処理ノード11の活動レベルを判定してもよい。この特定の実施形態において、AAC250は、パイプライン失速、命令実行、キャッシュヒットおよびミス、分岐予測ミス、および発行された命令に関する情報を受信するように連結される。本明細書に明示的に記載された以外の、または本明細書で検討されたメトリクスに追加して、メトリクスを利用する実施形態も可能で、検討される。また、これらのメトリクスのうちのいくつかは、いくつかの実施形態では、他よりも大きい重みが与えられる場合があることにも注意されたい。
AAC250によって計算、追跡される平均活動レベルは、これらのメトリックスのうちの任意の1つ、これらのメトリックスの2つ以上の集積、またはこれらのメトリックスの全ての組み合わせに基づいて判定されてもよい。例えば、AAC250は、キャッシュミスおよびパイプライン失速の両方に基づいて、プロセッサの作業負荷がメモリ主体であることを判定してもよく、これらの両方は、多数のメモリアクセスを必要とするアプリケーションで頻繁に発生してもよい。別の例では、キャッシュアクセスが少ない(キャッシュヒットおよびミスの合計によって示される)多数の命令実行は、計算主体の作業負荷を示す場合がある。
現在の時間間隔の間に受信される情報ならびに履歴情報の両方に基づいて、AAC250は、活動が報告された各処理ノード11に対して平均活動を判定してもよい。示される実施形態において、平均は、信号Tをアサートしている間隔タイマ254に応答して判定されてもよい。示される実施形態の間隔タイマ254は、間隔クロック信号を受信するように連結され、このクロック信号が受信された所定の数のサイクル後に、信号Tをアサートしてもよい。
各処理ノード11の計算された活動平均は、AAC250から閾値コンパレータ252へ提供されてもよい。閾値コンパレータ252は、信号Tをアサートしている間隔タイマ254に応答して、受信された活動レベルの比較を実施してもよく、これらは、その比較入力上で受信されてもよい。遅延時間は、AAC250が、結果を判定、提供することを可能にするように許可されてもよく、閾値コンパレータ252は、遅延時間が経過した後に比較を実施する。閾値コンパレータ252は、各処理ノードの計算された活動平均を上記の低活動閾値および高活動閾値と比較してもよい。これらの比較結果は、次いで、閾値コンパレータ252から判定ユニット208へ提供されてもよく、これは、次いで、上述のように電力管理ユニット20の動作にしたがって、これらの処理ノード11の動作点への調整を生じさせてもよい。活動モニタ202のこれらの動作は、間隔タイマ254によって時間が決定される各時間間隔のために反復されてもよい。
図6は、CIPSユニット204の一実施形態を例示するブロック図である。示される実施形態において、CIPSユニット204は、ローパスフィルタ266、CIPSカウンタ260、閾値コンパレータ262、および間隔タイマ264を含む。示される実施形態では、CIPSユニット204は、処理ノード11の各々のリタイアキュー(例えば、図2のリタイアキュー102)から、リタイアされた命令に関する情報を受信するように連結される。CIPSユニット204は、既定の間隔内にリタイアした命令の数を判定してもよく、CIPS値を推定するためにこの値を使用してもよい。CIPS値はこのため、命令が実行され、実際にリタイアされる速度を示してもよい(例えば、分岐予測ミスに起因して、投機的に実行され、リタイアされないいくつかの命令、とは対照的に)。
リタイアの指示は、処理ノード11から受信されてもよく、ローパスフィルタ266に初期に提供されてもよい。ローパスフィルタ266は、1つ以上のカウンタとして実装されてもよく、各カウンタは、処理ノード11のうちの1つに対応する。この実施形態では、ローパスフィルタ266のカウンタは、Mの上限を有してもよく、このため、間隔TにわたってM個未満のリタイアがCIPSユニット204によって追跡される。これによって、短い突然の活動のバーストが、高活動として誤って解釈され、報告している処理ノード11の最高動作点へのそうでなければ所望されない推移を発生させることを防止してもよい。
ローパスフィルタ266は、間隔タイマ264に連結されるリセット入力を含む。間隔が完了すると、間隔タイマ264は、T信号をアサートしてもよい。リセット入力上でT信号を受信することに応答して、ローパスフィルタ266の各カウンタがゼロにリセットされてもよい。
示される実施形態のCIPSカウンタ260もまた、いくつかのカウンタを含み、1つは各処理ノード11に対応する。ローパスフィルタのカウンタが増加するたび、CIPSカウンタ260の対応するカウンタもまた、増加させてもよい。CIPSカウンタ260のカウンタを増加させることは重み付けされてもよい。したがって、ローパスフィルタ266のカウンタの増加とCIPSカウンタ260の増加の間には1対1の対応が必ず存在するわけではない。
CIPSカウンタ260のカウンタはまた、間隔タイマ264によるT信号のアサーション(DecAllに提供される)に応答して、条件付きで減少されてもよい。一実施形態において、CIPSカウンタ260の所与のカウンタは、対応する処理ノード11の命令リタイア数は、現在の動作点の予測数以下または等しい、(T信号のアサーションに応答して)任意の間隔の終了時に減少されてもよい。そうでなければ、対応する処理11の命令リタイア数が、その所与の間隔の間に予測されるリタイア数を超える場合、カウンタは、T信号のアサーションに応答して減少しなくてもよい。
減少もまた重み付けられてもよい。増加および減少の重み付けは、パフォーマンスがバイアスまたは電力がバイアスされるように、本明細書に記載の電力管理機能のバイアスを可能にしてもよい。電力管理機能がバイアスされたパフォーマンスである場合、重み付けは、増加を重視して行われてもよく、それによって、命令リタイアに応答してCIPSカウンタ260内のより高いカウントを生じる。重視が電力消費の削減(すなわち、電力バイアス)にある場合、重み付けは、減少を重視して行われてもよく、それによって、命令リタイアに応答してCIPSカウンタ260内のより低いカウントを生じる。この重み付けは、ユーザによるプログラミング、ファームウェア、プログラミングフューズ等を通して等、多様な機構によって構成可能であってもよい。
CIPSカウンタ260によって生成されるカウンタ値は、閾値コンパレータ262に提供されてもよい。示される実施形態において、閾値コンパレータ262は、図5に示されるその対応部分と類似の様式で機能してもよい。各カウンタ値は、高活動閾値および低活動閾値と比較されてもよく、動作点は、高活動閾値または低活動閾値が、前の時間間隔に対して越えている、これらの処理ノードに対して調整されてもよい。比較は、比較入力上で受信されてもよい、間隔タイマ264によるT信号のアサーションに応答して、各間隔で1回実施されてもよい。比較結果は、判定ユニット208に提供されてもよく、これにしたがって処理ノード11の動作点を調整してもよい。
図7は、IPCユニット206の一実施形態のブロック図である。示される実施形態において、IPCユニットは、いくつかの処理ノード11の各々から実行された命令の指示を受信するように連結されてもよい、命令カウンタを含む。これは、処理ノード11がスーパースカラー処理ノードである実施形態において、2つ以上の実行ユニットから実行された命令の指示を受信することを含んでもよい。命令カウンタ270は、処理ノード11の各々に対して実行された命令のカウントを追跡してもよい。各処理ノードのために追跡されたカウントは、カウント値として、図5および6を参照して上述した対応部分に類似した様式で、高活動閾値および低活動閾値との比較を実施してもよい、閾値コンパレータ272に提供されてもよい。比較結果は、任意の動作点の変更が対応する処理ノード11に行われるかを判定するために、カウント値を使用してもよい、判定ユニット208に提供されてもよい。カウントすること、および比較することは、間隔タイマ274によって制御される間隔毎を基本に実施されてもよい。命令カウンタ270のカウンタは、間隔タイマ274のT信号のアサーションによって示されるように、各間隔が完了するつど、リセットされてもよい。
前述のように、活動モニタ202、CIPSユニット204、およびIPCユニット206によって提供される比較結果は各々、判定ユニット208に提供されてもよい。提供された比較結果に基づいて、判定ユニット208は、それぞれのクロック周波数、それぞれの動作電圧、または両方に変更を生じさせることによって、処理ノード11のうちの1つ以上の動作点に変更を生じさせてもよい。いくつかの実施形態では、判定ユニット208は、比較結果に重み付けを提供して、いくつかに他よりも多い重み付けを与えてもよい。例えば、判定ユニット208は、IPCユニット206から受信されるものに対して、活動モニタ202およびCIPSユニット204から受信される比較結果に追加の重み付けを提供してもよい。
別の実施形態では、判定ユニット208は、異なる比較結果が受信された場合、投票スキームに基づいて、動作点を変更するかどうかを判定してもよい。例えば、活動モニタ202およびCIPSユニット204の両方の活動レベルが高活動閾値を超えていることを示すが、IPCユニット206が同じことを示さない場合、判定ユニット208は、対応する処理ノードの動作点をP状態P0に変更してもよい。別の実施形態では、判定ユニット208は、処理ノードの動作点を変更するかどうかを判定する際、ユニットの1つだけを検討する(例えば、CIPSユニット204からの情報だけを検討する)ように構成可能であってもよい。
一般的に、判定ユニット208は、任意の好適な手法において、各処理ノード11の適当な動作点を判定するように構成されてもよい。その上、ユニットのうちの1つだけ(例えば、活動モニタ202)を含む電力管理ユニット20の実施形態も可能で、検討され、そのような実施形態では、SetFおよびSetV信号の状態を設定することに同様な機能がその中に組み入れられてもよい。
(動的パフォーマンス制御のための方法)
図8および9は、上記の電力管理ユニット20の多様な実施形態が動作されてもよい方法を例示する。方法の実施形態は、本明細書では単一の処理ノードを参照して記載される。しかしながら、上記に準じて、電力管理ユニット20は、いくつかの異なる処理ノードと同時に本明細書に記載の方法の多様な実施形態を実施してもよいことに注意されたい。
図8は、電力管理ユニットを動作するための方法の一実施形態の流れ図である。示される実施形態において、方法700は、処理ノード内のアプリケーション活動を追跡することから開始する(ブロック705)。活動レベルは、低閾値および高閾値と比較されてもよい。活動レベルが高閾値を超える(ブロック710、はい)が、処理ノードが高動作点で既に動作している(例えば、最高のP状態、P0、ブロック715、はい)場合、変更は行われず、アプリケーション活動の追跡が継続する(ブロック705)。
活動レベルが高閾値を超え(ブロック710、はい)、動作点が高動作点未満である(ブロック715、はい)場合、その処理ノードの動作点は、少なくとも次の時間間隔に対しては、高動作への推移であってもよい(ブロック720)。新しい動作点に推移した後、活動は再び追跡される(ブロック725)。処理ノードの動作は、活動レベルが高閾値を超えたままである(ブロック730、いいえ)場合、高動作点で継続してもよい。間隔の活動レベルが高閾値未満(ブロック730、はい)であるが、低閾値を超えたままで(ブロック735、いいえ)、現在の動作点が本来の動作点と同じではない(ブロック770、いいえ)場合、処理ノードは、OSまたはソフトウェアによって必要とされる中間動作点に推移する(ブロック775)。
ブロック710で、活動レベルが高閾値未満(ブロック710、いいえ)であり、低閾値を超える(ブロック740、いいえ)場合、方法は、ブロック705のアプリケーション活動の追跡に戻る。ブロック740の活動レベルが低閾値未満(ブロック740、はい)で、動作点が低動作点にある(ブロック745、いいえ)場合、方法は再び、ブロック705のアプリケーション活動の追跡に戻る。しかしながら、ブロック740の活動レベルが低閾値未満(ブロック740、はい)で、動作点が低動作点を超える(ブロック745、はい)場合、処理ノードは、低動作点に推移する(ブロック750)。低動作点に推移した後、アプリケーション活動が追跡され(ブロック755)、活動レベルが低閾値未満のままである(ブロック760、いいえ)場合、方法はブロック755に戻り、処理ノードはそのままで、動作点は変更されないままである。しかしながら、活動レベルが低閾値を超える(ブロック760、はい)が、高閾値を超えない(ブロック765、いいえ)場合、ブロック770は、「いいえ」になり、処理ノードは、オペレーティングシステムまたは他のソフトウェアによって必要とされる中間動作点に推移する。
ブロック735で、活動レベルが低閾値未満である(ブロック735、はい)場合、方法は、ブロック745へ推移してもよい。処理ノードが低動作点以外の動作点で動作している(ブロック745、はい)場合、少なくとも次の時間間隔に対しては、低動作点へ推移してもよい(ブロック750)。この推移に続いて、方法は、ブロック755から以降、上記のシーケンスに従ってもよい。そうでなく、処理ノードが低動作点で既に動作している(ブロック745、いいえ)場合、方法はブロック705に戻ってもよい。
ブロック765で、活動レベルが高閾値を超える(ブロック765、はい)場合、方法は、ブロック715へ推移してもよい。処理ノードが高動作点以外の動作点で動作している(ブロック715、はい)場合、少なくとも次の時間間隔に対しては、高動作点へ推移してもよい(ブロック720)。この推移に続いて、方法は、ブロック725から、上記のシーケンスに従ってもよい。そうでなく、処理ノードが高動作点で既に動作している(ブロック715、いいえ)場合、方法はブロック705に戻ってもよい。
図9は、いくつかの時間間隔にわたって、方法の一実施形態の動作を例示する図である。例示を容易にするために、方法は、単一の中間動作点のみを参照して説明される。しかしながら、上記(例えば、表1を参照)に準じて、いくつかの中間動作点が実装されてもよい、実施形態が可能で、検討されることが理解される。さらに、上記のように、図9の例は、単一の処理ノードを参照して行われるが、上記の方法論は、同じ電気系統内のいくつかの固有の処理ノードと同時に実施することができることが理解される。
示される例のT0のすぐ前の時点で、処理ノードの活動レベルは低閾値未満である。したがって、例の最初の完全な時間間隔、T0からT1までに対しては、処理ノードの動作点は、低動作点に設定される。最初の間隔の間、活動レベルは増加し、低閾値より上の点にとどまる。このため、次の間隔、T1からT2までに対しては、処理ノードの動作点は、中間動作点に設定される。
T1からT2までの間隔の間、処理ノードの活動レベルは、高閾値を超える点まで増加する。このため、T2からT3の間隔に対しては、処理ノードは高動作点で作動する。活動レベルはこの間隔全体で高閾値を超えたままで、このため、処理ノードは、T3からT4までの間隔に対して、高動作点での動作にとどまる。
T3とT4との間の間隔において、活動レベルは、再び高閾値を超える点まで上昇する前に、間隔の一部に対して、高閾値未満に低下する。分岐予測ミス、キャッシュミス、中断、または他の理由でパイプラインをフラッシュまたは失速させる場合がある他のイベント等の多様なイベントは、必ずしも処理作業負荷自体の低下を示すことなく、処理全体の低下を一時的に示す場合がある。したがって、本明細書に記載の方法を実施するように構成されている電力管理ユニットは、このような状況を考慮するように構成されてもよい。例えば、前の間隔の終了時点の実際の活動レベルに基づいて、次の間隔の動作点を設定する代わりに、電力管理ユニットは、即時の間隔および1つ以上の前の間隔にわたる平均活動レベルをその代わりに判定してもよい(例えば、図5を参照した上記の実施形態等)。したがって、プロセッサ処理能力に一時的な低下を生じる場合があるが、それ以外は一切の削減された作業負荷を示さないイベントは、動作点がその現在のレベル、またはこの特定のインスタンスの高い点にとどまるように、効果的にフィルタされてもよい。同様に、現在および1つ以上の前の間隔にわたる平均活動レベルを使用することは、そうでなければ低い(例えば、メモリ主体の)作業負荷の活動の突然のバーストを選択的にフィルタしてもよい。このような技法を使用することによって、本明細書に記載される電力管理ユニットが、異常イベントが動作点に影響することを防止する一方、プロセッサの作業負荷に対して動作点をより効果的に一致させることを可能にしてもよい。
T4で開始する間隔に対して、活動レベルは何度か低下し、再上昇し、動作点はそれに従う。前述のように、間隔は継続時間が短くてもよい。一実施形態において、間隔は、10マイクロ秒から100マイクロ秒までの範囲であってもよいが、他の継続時間の間隔(10マイクロ秒より短い継続時間の間隔を含む)が可能で、検討される。短い間隔を利用することによって、処理ノードの動作点が、その対応する活動レベルを密接に反映することを可能にしてもよい。これによって、処理ノードが、計算主題の作業負荷が完了した後相当時間にわたって最高動作点で、または作業負荷要求の増加に続いて相当時間にわたって最低動作点で、維持されることを防止してもよい。
図9は、第2の継続時間の複数の間隔のうちの1つ、T0−OSからT1−OSも例示する。ここに示される第1の間隔T0−T10の数から第2の間隔の数は、例であって、第1の間隔と第2の間隔の比率は異なってもよい。ここに例示される第2の間隔のうちの例示的間隔は、オペレーティングシステムソフトウェアが処理ノードの活動レベルを監視してもよい、間隔であってもよい。これらの間隔は、第1の間隔よりも継続時間が相当に長くてもよく、いくつかの場合、1つ以上の桁数だけ長い。オペレーティングシステムは、これらの第2の間隔にわたって活動レベルを監視してもよく、これにしたがって動作点を調整してもよい。しかしながら、本明細書に記載される電力管理ユニットの多様な実施形態は、活動レベルが高活動閾値以上、または低活動閾値以下の場合に、各処理ノードの動作点の制御を保持してもよい。これらの2つの閾値の間になる活動レベルでは、電力管理ユニットは、オペレーティングシステムが、プロセッサの各処理ノード(またはプロセッサコア)の動作点を設定することを可能にしてもよい。しかしながら、電力管理ユニットは、第1の間隔の間、高活動閾値以上または低活動閾値以下である活動レベルが検出される場合、第2の間隔のうちの1つの間隔の間の任意の時点で、オペレーティングシステムによって行われる動作点の選択をオーバーライドしてもよい。
(コンピュータアクセス可能記憶媒体)
次に図10を参照すると、システム10のデータベース405表現を含むコンピュータアクセス可能記憶媒体400のブロック図が示される。一般的に、コンピュータアクセス可能記憶媒体400として、使用中にコンピュータに命令および/またはデータを提供するように、コンピュータによってアクセス可能な任意の非一時的記憶媒体が挙げられてもよい。例えば、コンピュータアクセス可能記憶媒体400には、磁気または光学媒体、例えば、ディスク(固定された、もしくは取り外し可能な)、テープ、CD−ROM、またはDVD−ROM、CD−R、CD−RW、DVD−R、DVD−RW、あるいはブルーレイ等の記憶媒体が挙げられる。記憶媒体には、RAM(例えば、シンクロナスダイナミックRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3等)SDRAM、低パワーDDR(LPDDR2等)SDRAM、Rambus DRAM(RDRAM)、スタティックRAM(SRAM)等)、ROM、フラッシュメモリ、ユニバーサルシリアルバス(USB)インターフェース等の周辺インターフェースを介してアクセス可能である不揮発性メモリ(例えば、フラッシュメモリ)等の揮発性または不揮発性メモリ媒体がさらに挙げられる。記憶媒体には、微小電気機械システム(MEMS)、ならびにネットワークおよび/または無線リンク等の通信媒体を介してアクセス可能な記憶媒体が挙げられる。
概して、コンピュータアクセス可能記憶媒体400上に含まれるシステム10のデータベース405は、システム10を備えるハードウェアを組み立てるように、プログラムによって読み出され、直接または間接的に使用され得る、データベースまたは他のデータ構造であってもよい。例えば、データベース405は、VerilogもしくはVHDL等の高級設計言語(HDL)でのハードウェア機能性の動作レベル記述またはレジスタ転送レベル(RTL)記述であってもよい。記述は、ゲートのリストを含むネットリストを生成するために、記述を合成し得る合成ツールによって、合成ライブラリから読み出されてもよい。ネットリストは、また、システム10を備えるハードウェアの機能性も表す、ゲートのセットを含む。次いで、ネットリストは、マスクに適用される幾何学的形状を記述するデータセットを生成するように、定置され、経路指定されてもよい。次いで、マスクはシステム10に対応する半導体回路(単数または複数)を生産するために、様々な半導体加工ステップで使用されてもよい。代替として、コンピュータアクセス可能記憶媒体400上のデータベースは405、所望により、ネットリスト(合成ライブラリを伴う、または伴わない)またはデータセットであってもよい。
コンピュータアクセス可能記憶媒体400は、システム10の表現を含むが、他の実施形態は、IC2、任意の組のエージェント(例えば、処理ノード11、I/Oインターフェース13、電力管理ユニット20等)、またはエージェントの一部(例えば、活動モニタ202、CIPSユニット204等)を含めて、所望に応じて、システム10の任意の部分の表現を含んでもよい。
本発明は、特定の実施形態を参照して記載されてきたが、実施形態は、例示であり、本発明の範囲は、それに限定されないことが理解される。記載される実施形態に対する任意の変形、修正、追加、および改善が可能である。これらの変形、修正、追加、および改善は、以下の「特許請求の範囲」内に詳述されるように、本発明の範囲内であり得る。

Claims (30)

  1. 処理ノードと、
    複数の第1の時間間隔の各々に対して、前記処理ノードの活動レベルを監視するように構成された電力管理ユニットとを備え、
    前記電力管理ユニットは、
    所与の第1の時間間隔内の前記活動レベルが高活動閾値を超える場合、少なくとも1つの連続する第1の時間間隔の間、複数の動作点のうちの所定の高動作点で前記処理ノードを動作させ、
    前記所与の第1の時間間隔内の前記活動レベルが低活動閾値未満である場合、前記少なくとも1つの連続する第1の時間間隔に対して、前記複数の動作点のうちの所定の低動作点で前記処理ノードを動作させ、
    前記活動レベルが前記低活動閾値と前記高活動閾値との間にある場合、オペレーティングシステムソフトウェアが、前記少なくとも1つの連続する第1の時間間隔に対して、前記複数の動作点のうちの1つ以上の所定の中間動作点のうちの1つで前記処理ノードを動作させることを可能にするように、さらに構成されている、
    システム。
  2. 前記第1の時間間隔の各々の第1の継続時間は、前記処理ノードの前記活動レベルを監視するように前記オペレーティングシステムソフトウェアによって使用される複数の第2の時間間隔であって、前記監視された活動レベルが前記高活動閾値未満であり、かつ前記低活動閾値を超える場合に、前記処理ノードの前記動作点を変更するように前記オペレーティングシステムソフトウェアによってさらに使用される複数の第2の時間間隔の各々の第2の継続時間未満である、請求項1に記載のシステム。
  3. 前記複数の第1の間隔の各々は、100マイクロ秒以下の継続時間を有し、前記複数の第2の時間間隔の各々は、30ミリ秒以上の継続時間を有する、請求項2に記載のシステム。
  4. 前記所定の高動作点は、前記複数の動作点のうちの最高の動作点であり、前記所定の低動作点は、前記複数の動作点のうちの最低の非アイドル動作点であり、前記1つ以上の中間動作点は、前記所定の高動作点よりも低く、かつ前記所定の低動作点よりも高い、請求項1に記載のシステム。
  5. 前記電力管理ユニットは、2つ以上の処理ノードの各々に対して、前記それぞれの活動レベルを前記高活動閾値および前記低活動閾値と比較するようにさらに構成され、前記2つ以上の処理ノードは各々、相互に独立してそれぞれの動作点で動作するように構成されている、請求項1に記載のシステム。
  6. 前記電力管理ユニットは、前記少なくとも1つの処理ノードの前記動作点を変更する際に、クロック信号のクロック周波数を変更するように構成されている、請求項1に記載のシステム。
  7. 最高動作点で動作するときの前記クロック周波数は、前記複数の動作点のうちの他の動作点のうちのいずれかで動作するときのクロック周波数を超え、最低の非アイドル動作点で動作するときの前記クロック周波数は、前記複数の動作点のうちの他の動作点のうちのいずれか1つで動作するときのクロック周波数未満であり、前記最低の非アイドル動作点での前記クロック周波数はゼロを超える、請求項5に記載のシステム。
  8. 前記複数の動作点の各々は動作電圧をさらに含み、
    前記電力管理ユニットは、前記処理ノードの前記動作点を変更するときに、前記処理ノードに提供される前記動作電圧を変更するように構成されている、請求項5に記載のシステム。
  9. 前記電力管理ユニットは、
    前記複数の第1の時間間隔のうちの所与の間隔内に受信されるリタイアされた命令の各指示に応答して、カウンタを増加させ、
    前記複数の第1の時間間隔のうちの前記所与の間隔に対する命令リタイア数が、予測された命令リタイア数以下であると判定することに応答して、カウンタを減少させ、
    前記複数の第1の時間間隔のうちの前記所与の間隔の終了時に前記カウンタによって提供されるカウンタ値を、前記高活動閾値および低活動閾値と比較するように構成されている、請求項1に記載のシステム。
  10. 前記電力管理ユニットは、前記カウンタを増加させる時に第1の重み係数を適用し、前記カウンタを減少させる時に第2の重み係数を適用するようにさらに構成されている、請求項8に記載のシステム。
  11. 前記電力管理ユニットは、前記命令リタイア数が、前記所与の第1の時間間隔内の既定値を超える場合、前記所与の第1の時間間隔内に前記カウンタをさらに増加させることを防止するように構成されているローパスフィルタを含む、請求項8に記載のシステム。
  12. 前記電力管理ユニットは、
    所与の第1の時間間隔にわたる前記少なくとも1つの処理ノードの活動の移動平均を判定し、
    前記活動の移動平均を前記高活動閾値および前記低活動閾値と比較するように構成されている、請求項1に記載のシステム。
  13. 前記管理ユニットは、
    実行された命令、
    リタイアされた命令、
    発行された命令、
    パイプライン失速、
    メモリアクセスリクエスト、
    キャッシュの失敗、
    分岐の予測ミス、のうちの1つ以上の監視に基づいて、前記活動の移動平均を判定するように構成されている、請求項11に記載のシステム。
  14. 前記電力管理ユニットは、前記少なくとも1つの処理ノードによって実行される1サイクルあたりの命令数を判定するように構成され、前記1サイクルあたりの命令数を前記高活動閾値および前記低活動閾値と比較するようにさらに構成されている、請求項1に記載のシステム。
  15. 前記高活動閾値は、第1の閾値および第1のヒステリシス値に基づくものであり、前記低活動閾値は、第2の閾値および第2のヒステリシス値に基づくものである、請求項1に記載のシステム。
  16. 複数の第1の時間間隔の各々に対して、処理ノードの活動レベルを判定することと、
    前記活動レベルが高活動閾値を超える場合、電力管理ユニットが、少なくとも1つの連続する第1の時間間隔に複数の動作点のうちの所定の高動作点で前記処理ノードを動作させることと、
    前記活動レベルが低活動閾値未満である場合、前記電力管理ユニットが、前記少なくとも1つの連続する第1の時間間隔に前記複数の動作点のうちの所定の低動作点で前記処理ノードを動作させることと、
    前記活動レベルが前記低活動閾値と前記高活動閾値との間である場合、オペレーティングシステムソフトウェアが、前記複数の動作点のうちの1つ以上の中間動作点のうちの1つで前記処理ノードを動作させることと、を含む、
    方法。
  17. 前記オペレーティングシステムソフトウェアが、複数の第2の時間間隔にわたって前記活動レベルを監視することをさらに含み、前記第1の時間間隔の各々の第1の継続時間は、前記第2の時間間隔の各々の第2の継続時間未満である、請求項16に記載の方法。
  18. 前記所定の高動作点は、前記複数の動作点のうちの最高の動作点であり、前記所定の低動作点は、前記複数の動作点のうちの最低の非アイドル動作点であり、前記1つ以上の中間動作点の各々は、前記所定の高動作点より低く、かつ前記所定の低動作点より高い、請求項16に記載の方法。
  19. 前記複数の第1の時間間隔の各々に対して、2つ以上の処理ノードのそれぞれの活動レベルを高活動閾値および低活動閾値と比較することと、
    それぞれの活動レベルの前記比較に基づいて、前記2つ以上の処理ノードのうちの第1のノードの動作点を設定することと、
    それぞれの活動レベルの前記比較に基づいて、前記2つ以上の処理ノードのうちの第2のノードの動作点を設定することと、をさらに含み、
    前記2つ以上の処理ノードのうちの前記第2のノードの前記動作点は、前記2つ以上の処理ノードのうちの前記第1のノードの前記動作点を設定することとは独立して設定される、請求項16に記載の方法。
  20. 前記処理ノードの前記動作点を変更することは、前記処理ノードに提供されるクロック信号の周波数を変更することを含む、請求項16に記載の方法。
  21. 前記処理ノードの前記動作点を変更することは、前記処理ノードに提供される動作電圧を変更することを含む、請求項20に記載の方法。
  22. 所与の第1の時間間隔内に受信されるリタイアされた命令の各指示に応答してカウンタを増加させることと、
    前記所与の第1の時間間隔内に発生する命令リタイア数が、予測される命令リタイア数以下であると判定することに応答して、カウンタを減少させることと、
    前記所与の第1の時間間隔の終了時に前記カウンタによって提供されるカウンタ値を前記高活動閾値および低活動閾値と比較することと、をさらに含む、請求項16に記載の方法。
  23. 少なくとも1つの第1の時間間隔にわたる前記少なくとも1つの処理ノードの活動の移動平均を判定することと、
    前記活動の移動平均を前記高活動閾値および前記低活動閾値と比較することと、をさらに含む、請求項16に記載の方法。
  24. 実行された命令、
    リタイアされた命令、
    発行された命令、
    パイプライン失速、
    メモリアクセスリクエスト、
    キャッシュの失敗、
    分岐の予測ミス、のうちの1つ以上に基づいて、前記移動平均を判定することをさらに含む、請求項23に記載の方法。
  25. 前記少なくとも1つの処理ノードによって実行された1サイクルあたりの命令数を判定することと、前記1サイクルあたりの命令数を前記高活動閾値および前記低活動閾値と比較することとをさらに含む、請求項16に記載の方法。
  26. コンピュータシステム上で実行可能なプログラムによって動作されるデータ構造を記憶するコンピュータ可読媒体であって、前記プログラムは、前記データ構造によって記述される回路を含む集積回路を加工するプロセスの一部を実施するように、前記データ構造上で作動し、前記データ構造内に記述される前記回路は電力管理ユニットを含み、
    前記電力管理ユニットは、
    複数の第1の時間間隔の各々に対して、処理ノードの活動レベルを監視するように構成され、
    所与の第1の時間間隔内の前記活動レベルが高活動閾値を超える場合、少なくとも1つの連続する第1の時間間隔の間、複数の動作点のうちの所定の高動作点で前記処理ノードを動作させ、
    前記所与の第1の時間間隔内の前記活動レベルが低活動閾値未満である場合、前記少なくとも1つの連続する第1の時間間隔に対して、前記複数の動作点のうちの所定の低動作点で前記処理ノードを動作させ、
    前記活動レベルが前記低活動閾値と前記高活動閾値との間にある場合、オペレーティングシステムソフトウェアが、前記少なくとも1つの連続する第1の時間間隔に対して、前記複数の動作点のうちの1つ以上の所定の中間動作点のうちの1つで前記処理ノードを動作させることを可能にするように、さらに構成されている、
    コンピュータ可読媒体。
  27. 前記第1の時間間隔の各々の第1の継続時間は、前記処理ノードの前記活動レベルを監視するようにオペレーティングシステムソフトウェアによって使用される複数の第2の時間間隔であって、前記監視された活動レベルが前記高活動閾値未満であり、かつ前記低活動閾値を超える場合、前記処理ノードの前記動作点を変更するように前記オペレーティングシステムソフトウェアによってさらに使用される複数の第2の時間間隔の各々の第2の継続時間未満であり、
    電力管理ユニットは、
    実行された命令、
    リタイアされた命令、
    発行された命令、
    パイプライン失速、
    メモリアクセスリクエスト、
    キャッシュの失敗、
    分岐の予測ミス、のうちの1つ以上に基づいて、前記活動レベルを判定するように構成されている、請求項26に記載のコンピュータ可読媒体。
  28. 前記データ構造内に記述される前記電力管理ユニットは、
    前記少なくとも1つの処理ノードによって受信されるクロック信号の周波数と、前記少なくとも1つの処理ノードに提供される動作電圧と、のうちの1つ以上に対する変更を生じさせることによって、前記処理ノードの前記動作点の変更を生じさせるように構成されている、請求項26に記載のコンピュータ可読媒体。
  29. 前記データ構造は、
    HDL(高レベル設計言語)データ、
    RTL(レジスタトランスファレベル)データ、
    グラフィックデータシステム(GDS)IIデータ、のデータタイプのうちの1つ以上を含む、請求項25に記載のコンピュータ可読媒体。
  30. 処理ノードと、
    電力管理ユニットとを備え、
    前記電力管理ユニットは、複数の第1の時間間隔の各々に対して、
    活動レベルが所与の第1の時間間隔に高活動閾値を超える場合、少なくとも1つの連続する第1の時間間隔の間、複数の動作点のうちのより高い動作点で前記処理ノードを動作させ、
    前記活動レベルが前記所与の第1の時間間隔に低活動閾値未満である場合、前記少なくとも1つの連続する第1の時間間隔の間、前記複数の動作点のうちのより低い動作点で前記少なくとも1つの処理ノードを動作させるように構成されており、
    前記第1の時間間隔の各々の第1の継続時間は、前記処理ノードの前記活動レベルを監視するためにオペレーティングシステムソフトウェアによって使用される複数の第2の時間間隔であって、前記監視された活動レベルに基づいて前記処理ノードの前記動作点を変更するために前記オペレーティングシステムソフトウェアによってさらに使用される複数の第2の時間間隔の各々の第2の継続時間未満である、
    システム。
JP2013526155A 2010-08-26 2011-08-25 処理ノードの動的パフォーマンス制御 Active JP5688462B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/868,996 2010-08-26
US12/868,996 US8484498B2 (en) 2010-08-26 2010-08-26 Method and apparatus for demand-based control of processing node performance
PCT/US2011/049171 WO2012027584A1 (en) 2010-08-26 2011-08-25 Dynamic performance control of processing nodes

Publications (3)

Publication Number Publication Date
JP2013536532A true JP2013536532A (ja) 2013-09-19
JP2013536532A5 JP2013536532A5 (ja) 2014-10-09
JP5688462B2 JP5688462B2 (ja) 2015-03-25

Family

ID=44583471

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013526155A Active JP5688462B2 (ja) 2010-08-26 2011-08-25 処理ノードの動的パフォーマンス制御

Country Status (6)

Country Link
US (2) US8484498B2 (ja)
EP (1) EP2609481B1 (ja)
JP (1) JP5688462B2 (ja)
KR (1) KR101518440B1 (ja)
CN (1) CN103119536B (ja)
WO (1) WO2012027584A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018503184A (ja) * 2014-12-23 2018-02-01 インテル コーポレイション 動的時間的電力ステアリングのためのシステム及び方法

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9411390B2 (en) 2008-02-11 2016-08-09 Nvidia Corporation Integrated circuit device having power domains and partitions based on use case power optimization
US8484498B2 (en) * 2010-08-26 2013-07-09 Advanced Micro Devices Method and apparatus for demand-based control of processing node performance
US8572421B2 (en) * 2011-04-05 2013-10-29 Apple Inc. Adjusting device performance based on processing profiles
US8799698B2 (en) * 2011-05-31 2014-08-05 Ericsson Modems Sa Control of digital voltage and frequency scaling operating points
TW201314433A (zh) * 2011-09-28 2013-04-01 Inventec Corp 伺服器系統及其電源管理方法
US9196013B2 (en) * 2011-10-31 2015-11-24 Apple Inc. GPU workload prediction and management
US8856566B1 (en) 2011-12-15 2014-10-07 Apple Inc. Power management scheme that accumulates additional off time for device when no work is available and permits additional power consumption by device when awakened
US9773344B2 (en) * 2012-01-11 2017-09-26 Nvidia Corporation Graphics processor clock scaling based on idle time
US8954764B2 (en) * 2012-03-05 2015-02-10 Csr Technology Inc. Method and apparatus for dynamic power management
US9390461B1 (en) 2012-05-08 2016-07-12 Apple Inc. Graphics hardware mode controls
TWI597599B (zh) * 2012-06-05 2017-09-01 威盛電子股份有限公司 圖形處理單元與其管理方法
US9250665B2 (en) 2012-06-07 2016-02-02 Apple Inc. GPU with dynamic performance adjustment
US9471395B2 (en) 2012-08-23 2016-10-18 Nvidia Corporation Processor cluster migration techniques
US8947137B2 (en) 2012-09-05 2015-02-03 Nvidia Corporation Core voltage reset systems and methods with wide noise margin
US20140157026A1 (en) * 2012-12-05 2014-06-05 Advanced Micro Devices, Inc. Methods and apparatus for dynamically adjusting a power level of an electronic device
DE102012222428A1 (de) * 2012-12-06 2014-06-12 Robert Bosch Gmbh Systemtaktanpassung
US9939883B2 (en) 2012-12-27 2018-04-10 Nvidia Corporation Supply-voltage control for device power management
US9811874B2 (en) 2012-12-31 2017-11-07 Nvidia Corporation Frame times by dynamically adjusting frame buffer resolution
US9766678B2 (en) 2013-02-04 2017-09-19 Intel Corporation Multiple voltage identification (VID) power architecture, a digital synthesizable low dropout regulator, and apparatus for improving reliability of power gates
US9304573B2 (en) * 2013-06-21 2016-04-05 Apple Inc. Dynamic voltage and frequency management based on active processors
US9195291B2 (en) 2013-06-21 2015-11-24 Apple Inc. Digital power estimator to control processor power consumption
US9602083B2 (en) 2013-07-03 2017-03-21 Nvidia Corporation Clock generation circuit that tracks critical path across process, voltage and temperature variation
US9766649B2 (en) 2013-07-22 2017-09-19 Nvidia Corporation Closed loop dynamic voltage and frequency scaling
US9594560B2 (en) * 2013-09-27 2017-03-14 Intel Corporation Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain
US10466763B2 (en) 2013-12-02 2019-11-05 Nvidia Corporation Dynamic voltage-frequency scaling to limit power transients
DE102013225882A1 (de) * 2013-12-13 2015-06-18 Robert Bosch Gmbh Master-Slave-Kommunikationssystem mit Standbybetrieb
US9696999B2 (en) 2013-12-17 2017-07-04 Intel Corporation Local closed loop efficiency control using IP metrics
US20150212569A1 (en) * 2014-01-30 2015-07-30 Nvidia Corporation User space based performance state switching of a processor of a data processing device
JP6221792B2 (ja) * 2014-02-05 2017-11-01 富士通株式会社 情報処理装置、情報処理システム、および情報処理システムの制御方法
US9606605B2 (en) 2014-03-07 2017-03-28 Apple Inc. Dynamic voltage margin recovery
US9477289B2 (en) 2014-03-25 2016-10-25 Advanced Micro Devices, Inc. Dynamic power allocation based on PHY power estimation
US9829957B2 (en) * 2014-03-26 2017-11-28 Intel Corporation Performance scalability prediction
US10409350B2 (en) 2014-04-04 2019-09-10 Empire Technology Development Llc Instruction optimization using voltage-based functional performance variation
US9501299B2 (en) * 2014-06-16 2016-11-22 Intel Corporation Minimizing performance loss on workloads that exhibit frequent core wake-up activity
US20160116954A1 (en) * 2014-10-28 2016-04-28 Linkedln Corporation Dynamic adjustment of cpu operating frequency
US9696787B2 (en) * 2014-12-10 2017-07-04 Qualcomm Innovation Center, Inc. Dynamic control of processors to reduce thermal and power costs
US11399344B2 (en) * 2015-01-26 2022-07-26 Apple Inc. System and method for SoC idle power state control based on I/O operation characterization
US10739835B2 (en) * 2015-07-23 2020-08-11 Hewlett-Packard Development Company, L.P. Power management for electronic devices
US20170045925A1 (en) * 2015-07-24 2017-02-16 Power It Perfect, Inc. Systems and methods of controlling a power supply signal delivered to an electronic device
US10423209B2 (en) 2017-02-13 2019-09-24 Apple Inc. Systems and methods for coherent power management
CN107622232B (zh) * 2017-09-08 2020-01-14 Oppo广东移动通信有限公司 解锁控制方法及相关产品
US11054887B2 (en) * 2017-12-28 2021-07-06 Advanced Micro Devices, Inc. System-wide low power management
CN109086130B (zh) * 2018-06-06 2022-06-10 北京嘉楠捷思信息技术有限公司 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质
US11106261B2 (en) 2018-11-02 2021-08-31 Nvidia Corporation Optimal operating point estimator for hardware operating under a shared power/thermal constraint
US11157329B2 (en) * 2019-07-26 2021-10-26 Intel Corporation Technology for managing per-core performance states
US10948957B1 (en) 2019-09-26 2021-03-16 Apple Inc. Adaptive on-chip digital power estimator
US11513842B2 (en) * 2019-10-03 2022-11-29 International Business Machines Corporation Performance biased resource scheduling based on runtime performance
KR20220079196A (ko) * 2020-12-04 2022-06-13 삼성전자주식회사 Dvfs 동작을 수행하는 집적 회로 및 이의 동작 방법
US11960338B2 (en) * 2021-02-23 2024-04-16 Microsoft Technology Licensing, Llc Activity smoothener circuit controlling rates of change of localized processing activity in an integrated circuit (IC), and related methods
US20230214000A1 (en) * 2022-01-06 2023-07-06 Nvidia Corporation Techniques for controlling computing performance for power-constrained multi-processor computing systems

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0969017A (ja) * 1995-02-15 1997-03-11 Internatl Business Mach Corp <Ibm> コンピュータ・システムの電力管理方法及び装置
JP2002366252A (ja) * 2001-06-11 2002-12-20 Kenwood Corp 動作周波数制御システム、携帯情報処理端末、動作周波数制御方法及びプログラム
JP2008511912A (ja) * 2004-09-03 2008-04-17 インテル コーポレイション マルチコアプロセッサにおけるアイドル状態移行の調整
US20090150695A1 (en) * 2007-12-10 2009-06-11 Justin Song Predicting future power level states for processor cores
JP2010081752A (ja) * 2008-09-26 2010-04-08 Fujitsu Ltd 電源制御システム、および電源制御方法
JP2011515776A (ja) * 2008-03-28 2011-05-19 マイクロソフト コーポレーション 電力認識スレッドスケジューリングおよびプロセッサーの動的使用

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596709B2 (en) * 2000-12-30 2009-09-29 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US7254721B1 (en) 2001-05-01 2007-08-07 Advanced Micro Devices, Inc. System and method for controlling an intergrated circuit to enter a predetermined performance state by skipping all intermediate states based on the determined utilization of the intergrated circuit
US7111179B1 (en) 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US20050050310A1 (en) * 2003-07-15 2005-03-03 Bailey Daniel W. Method, system, and apparatus for improving multi-core processor performance
US7979699B2 (en) 2004-05-19 2011-07-12 Intel Corporation Processing capacity on demand
KR101108397B1 (ko) * 2005-06-10 2012-01-30 엘지전자 주식회사 멀티-코어 프로세서의 전원 제어 장치 및 방법
US7516342B2 (en) 2005-12-30 2009-04-07 Intel Corporation Method, apparatus and system to dynamically choose an optimum power state
US7861068B2 (en) 2006-03-07 2010-12-28 Intel Corporation Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling
JP4887251B2 (ja) 2007-09-13 2012-02-29 浜松ホトニクス株式会社 分光モジュール
US7966506B2 (en) 2007-12-12 2011-06-21 Intel Corporation Saving power in a computer system
US8001394B2 (en) * 2008-01-31 2011-08-16 International Business Machines Corporation Method and system of multi-core microprocessor power management and control via per-chiplet, programmable power modes
US20090235108A1 (en) 2008-03-11 2009-09-17 Gold Spencer M Automatic processor overclocking
US20090271646A1 (en) * 2008-04-24 2009-10-29 Vanish Talwar Power Management Using Clustering In A Multicore System
US20100153763A1 (en) * 2008-12-11 2010-06-17 Kapil Sood Method and apparatus to modulate multi-core usage for energy efficient platform operations
US8458498B2 (en) * 2008-12-23 2013-06-04 Intel Corporation Method and apparatus of power management of processor
US8347119B2 (en) * 2009-06-26 2013-01-01 Intel Corporation System and method for processor utilization adjustment to improve deep C-state use
GB2473195B (en) * 2009-09-02 2012-01-11 1E Ltd Controlling the power state of a computer
US8484498B2 (en) * 2010-08-26 2013-07-09 Advanced Micro Devices Method and apparatus for demand-based control of processing node performance
US8495395B2 (en) * 2010-09-14 2013-07-23 Advanced Micro Devices Mechanism for controlling power consumption in a processing node

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0969017A (ja) * 1995-02-15 1997-03-11 Internatl Business Mach Corp <Ibm> コンピュータ・システムの電力管理方法及び装置
JP2002366252A (ja) * 2001-06-11 2002-12-20 Kenwood Corp 動作周波数制御システム、携帯情報処理端末、動作周波数制御方法及びプログラム
JP2008511912A (ja) * 2004-09-03 2008-04-17 インテル コーポレイション マルチコアプロセッサにおけるアイドル状態移行の調整
US20090150695A1 (en) * 2007-12-10 2009-06-11 Justin Song Predicting future power level states for processor cores
JP2011515776A (ja) * 2008-03-28 2011-05-19 マイクロソフト コーポレーション 電力認識スレッドスケジューリングおよびプロセッサーの動的使用
JP2010081752A (ja) * 2008-09-26 2010-04-08 Fujitsu Ltd 電源制御システム、および電源制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018503184A (ja) * 2014-12-23 2018-02-01 インテル コーポレイション 動的時間的電力ステアリングのためのシステム及び方法

Also Published As

Publication number Publication date
US20130283078A1 (en) 2013-10-24
JP5688462B2 (ja) 2015-03-25
CN103119536A (zh) 2013-05-22
CN103119536B (zh) 2017-02-15
US20120054519A1 (en) 2012-03-01
KR20130137613A (ko) 2013-12-17
EP2609481A1 (en) 2013-07-03
US8959372B2 (en) 2015-02-17
EP2609481B1 (en) 2018-09-19
US8484498B2 (en) 2013-07-09
KR101518440B1 (ko) 2015-05-11
WO2012027584A1 (en) 2012-03-01

Similar Documents

Publication Publication Date Title
JP5688462B2 (ja) 処理ノードの動的パフォーマンス制御
JP5735638B2 (ja) キャッシュ制御のための方法および装置
US10551896B2 (en) Method and apparatus for dynamic clock and voltage scaling in a computer processor based on program phase
US20120297232A1 (en) Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value
US8190863B2 (en) Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction
US8438416B2 (en) Function based dynamic power control
JP5460565B2 (ja) 非効率なコアホッピングを回避し、ハードウェア(補助)による低電力状態選択を提供するメカニズム
US8954977B2 (en) Software-based thread remapping for power savings
US20130151869A1 (en) Method for soc performance and power optimization
TW201337771A (zh) 用於包括執行緒合併之能源效率及能源節約的方法、裝置及系統
US20130262780A1 (en) Apparatus and Method for Fast Cache Shutdown
US9753531B2 (en) Method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state
US20140281612A1 (en) Measurement of performance scalability in a microprocessor

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130430

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140825

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140825

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20140825

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141219

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: 20150120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150126

R150 Certificate of patent or registration of utility model

Ref document number: 5688462

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250