JP6169547B2 - チップ上のマルチコアシステムの全域チップ電力を管理する方法およびその装置 - Google Patents

チップ上のマルチコアシステムの全域チップ電力を管理する方法およびその装置 Download PDF

Info

Publication number
JP6169547B2
JP6169547B2 JP2014192982A JP2014192982A JP6169547B2 JP 6169547 B2 JP6169547 B2 JP 6169547B2 JP 2014192982 A JP2014192982 A JP 2014192982A JP 2014192982 A JP2014192982 A JP 2014192982A JP 6169547 B2 JP6169547 B2 JP 6169547B2
Authority
JP
Japan
Prior art keywords
core processor
power
core
controller
coprocessor
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
JP2014192982A
Other languages
English (en)
Other versions
JP2015079496A (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.)
Cavium LLC
Original Assignee
Cavium Networks LLC
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 Cavium Networks LLC filed Critical Cavium Networks LLC
Publication of JP2015079496A publication Critical patent/JP2015079496A/ja
Application granted granted Critical
Publication of JP6169547B2 publication Critical patent/JP6169547B2/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
    • 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/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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/3243Power saving in microcontroller unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B17/00Monitoring; Testing
    • H04B17/20Monitoring; Testing of receivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/0014Carrier regulation
    • H04L2027/0016Stabilisation of local oscillators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/0014Carrier regulation
    • H04L2027/0044Control loops for carrier regulation
    • H04L2027/0063Elements of loops
    • H04L2027/0067Phase error detectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/0014Carrier regulation
    • H04L2027/0044Control loops for carrier regulation
    • H04L2027/0071Control of loops
    • H04L2027/0075Error weighting
    • 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)
  • Microcomputers (AREA)

Description

コンピュータプロセッサの電力消費は通常、プロセッサまたは相当するチップの過熱を防ぐように制御されている。言い換えれば、プロセッサ内部の電力消費を制御することによって、対応する温度も抑えられる。
マルチコアプロセッサ装置における電力管理は通常、各コアプロセッサにおいて局所的に実行される。性能を向上させ、効率を高めるために、かかる装置に関する全域チップ電力を管理する能力に対するニーズが存在する。
少なくとも1つの例示的実施形態によれば、マルチコアプロセッサチップにおける電力消費を制御する全域電力管理手法は、マルチコアプロセッサチップ内部のコントローラにおいて、マルチコアプロセッサチップ内部の複数のコアプロセッサの1つ以上の電力推定値を蓄積することを含む。全域電力閾値は、累積電力推定値に基づいて決定され、累積電力推定値は、少なくとも一部において、蓄積された1つ以上の電力推定値に基づいて決定される。コントローラにより、複数のコアプロセッサのそれぞれにおける電力消費が、決定された全域電力閾値(全体電力閾値)に基づいて制御される。
1つ以上の電力推定値を蓄積することにおいて、コントローラは、複数のコアプロセッサによる合計電力消費を表す累積電力推定値を示す信号値を受信してもよい。複数のコアプロセッサは、シリアル構成を形成するように互いに連結されてもよく、ここで、各コアプロセッサにおいて、局部電力消費推定値が、累積電力推定値を表す値に加算され、次のコアプロセッサに転送される。最後のコアプロセッサにおいて、累積電力推定値の最終的な値は、コントローラに転送される。代替として、複数のコアプロセッサは、2つ以上のシリアル構成を形成するように連結されてもよく、この場合、コントローラは、2つ以上の電力推定値を受信する。更に別の例において、各コアプロセッサは、その局部電力消費推定値を直接コントローラに送信してもよい。
コントローラは、読取コマンドをコントローラから複数のコアプロセッサのうちの少なくとも1つのコアプロセッサへ送信するように構成されてもよい。読取コマンドは、読取操作の指示とペイロード値とを含んでいてもよい。読取コマンドを受信するコアプロセッサは、局部電力推定値をペイロード値に加算し、読取コマンドを更新されたペイロード値と共に、次のコアプロセッサまたはコントローラに転送する。ペイロード値は、1つ以上のコアプロセッサの電力推定値の累積合計を表している。
全域電力閾値を決定することにおいて、コントローラは、決定された累積電力推定値と対応する経時平均とが、両方とも所望の目標電力よりも小さいことを判断すると、全域電力閾値を表すパラメータ値を増分し、決定された累積電力推定値が所望の目標電力よりも大きいことを判断すると、全域電力閾値を表すパラメータ値を減分するように構成されている。所望の目標電力は、マルチコアプロセッサチップのユーザまたはメーカによって設定される定数であってもよい。代替として、所望の目標電力は、少なくとも部分的に、マルチコアプロセッサチップの測定温度値に基づいて、動的に設定されてもよい。
また、マルチコアプロセッサチップは1つ以上のコプロセッサブロックを含んでいてもよい。1つ以上のコプロセッサブロックの電力消費を説明するために、コントローラは、1つ以上のコプロセッサブロックのクロック活動(クロック動作(clock activity))の1つ以上の表現(表示(representation))を蓄積し、少なくとも部分的に、蓄積された1つ以上の表現に基づいて、1つ以上のコプロセッサブロックの1つ以上の電力推定値を決定するように構成され、マルチコアプロセッサチップに対する累積電力推定値を決定することは更に、1つ以上のコプロセッサブロックの1つ以上の電力推定値に基づいている。1つ以上のコプロセッサブロックの1つ以上の電力推定値を決定することにおいて、コントローラは、例えば、クロック活動の各表現の電力消費を決定するようルックアップテーブルを採用してもよい。1つ以上のコプロセッサブロックのクロック活動の1つ以上の表現は、各コプロセッサブロックにおいて、同じコプロセッサブロックのクロック活動のサイクルをカウントし、カウントされたクロック活動のサイクルの所定数を、コプロセッサブロックのクロック活動の表現内部で単一のシンボルにマッピングすることによって、コプロセッサブロックのクロック活動の表現を生成することによって形成されてもよい。コプロセッサブロックのクロック活動の表現は次いで、コントローラによって受信される。
各コアプロセッサにおける電力消費を制御することにおいて、コントローラは、マスタークロック周波数を調整し、従って、複数のコアプロセッサのクロックの周波数に影響を及ぼすことによって、コアプロセッサにおける電力消費を制御してもよい。代替として、コントローラは、すべてのコアプロセッサに、それらの局部電力消費を制御するよう指示する命令を送信する。かかるコマンドは、全域電力閾値の指示を含んでいてもよい。全域電力閾値を受信すると、各コアプロセッサは、全域電力閾値を局部電力閾値と比較して、コアプロセッサによって使用される電力限界を決定する。
前記は、同様の参照記号が異なる図を通して同じ部分を言及している添付図面に示すように、本発明の実施例の以下のより詳細な説明から明らかとなるであろう。図面は、本発明の実施形態を示すことに関して、必ずしも縮尺、強調するものではなく、むしろ配置されたものである。
少なくとも1つの例示的実施形態によるマルチコアプロセッサチップを示すブロック図である。 少なくとも1つの例示的実施形態によるマルチコアプロセッサチップにおける電力を制御する方法を示すフローチャートである。 複数のコアプロセッサからの電力推定値を蓄積するシリアル構成例を示すブロック図である。 複数のコアプロセッサからの電力推定値を蓄積するシリアル構成例を示すブロック図である。 複数のコプロセッサブロックからの蓄積電力推定用の構成を示すブロック図である。 少なくとも1つの実施例によるコプロセッサブロッククロックのクロック信号および対応する修正クロック信号の例を示している。
本発明の実施例の説明は、以下の通りである。
マルチコアプロセッサチップ用の典型的な電力管理技法は、通常、対応するコアプロセッサに対して局所的であり、マルチコアプロセッサチップに対して全域で実行されない。各コアプロセッサにおいて局所的に電力管理を適用する場合、マルチコアプロセッサチップに対する電力消費量は、各コアプロセッサに対する電力量を算出するようコアプロセッサの対応数で除算される。次いで、各コアプロセッサは、各コアプロセッサに対する算出された電力量に基づき、他のコアプロセッサとは独立してその電力を管理する。このため、所定のコアプロセッサの動的電力は、制限されるかもしれない。また、各コアプロセッサにおいて局所的に電力管理を適用することにより、性能劣化を招くおそれがある。例えば、第1のコアプロセッサが、それに利用可能な電力量の僅かな部分だけ使用している場合、第2のコアプロセッサは、各コアプロセッサに対して算出された電力量により許可されているよりも多くの電力を必要とするかもしれない。このように、電力管理を局所的に実行する場合、いくつかのタスクは、実行されるまで長い時間がかかるかもしれず、その結果、マルチコアプロセッサチップにおいてより多くの電力を消費するおそれがある。以下において、チップレベルにおける全域の電力管理を適用する実施形態を説明する。
図1は、少なくとも1つの例示的実施形態によるマルチコアプロセッサチップ100を示すブロック図である。マルチコアプロセッサチップ100は、複数のコアプロセッサ、例えば、120−1〜120−N、および中央コントローラ110を含む。中央コントローラ110は、マルチコアプロセッサチップ100の全域電力を管理するように構成されている。中央コントローラは、複数のコアプロセッサ120−1〜120−Nに連結され、所定の時間間隔で、マルチコアプロセッサチップ100による全域電力消費の推定値を決定するように構成されている。少なくとも1つの態様によれば、全域電力推定値は、固定時間間隔で定期的に決定される。全域電力推定値を決定することにおいて、中央コントローラ110は、複数のコアプロセッサ、例えば、120−1〜120−Nの1つ以上の電力推定値を記録するように構成されている。複数のコアプロセッサ、例えば、120−1〜120−Nのそれぞれにおいて、局部電力推定は、そのすべてを本明細書中に組み込まれた米国特許第8,356,194号明細書に記載されている実施形態に従って実行されてもよい。
マルチコアプロセッサチップ100は更に、1つ以上のコプロセッサブロック、例えば、130−1〜130−Mを含んでいてもよい。少なくとも1つの実施例によれば、コプロセッサブロック、例えば、130−1〜130−Mは、入出力(I/O)インターフェース操作および/または他の操作を実行して、複数のコアプロセッサ、例えば、120−1〜120−Nの機能を補うよう構成されている。中央コントローラ110は、マルチコアプロセッサチップ100の全域電力推定値を決定する場合、コプロセッサブロック、例えば、130−1〜130−Mによって消費される電力を考慮するように構成されている。
図2は、少なくとも1つの実施例によるマルチコアプロセッサチップ100における電力を制御する方法を示すフローチャートである。ブロック210において、複数のコアプロセッサ、例えば、120−1〜120−Nの1つ以上の電力推定値が、中央コントローラ110によって蓄積される。中央コントローラ110は更に、ブロック220において、マルチコアプロセッサチップ100がるコプロセッサブロックを含む場合に、1つ以上のコプロセッサブロック、例えば、130−1〜130−Mの電力推定値を蓄積する。
ブロック230において、中央コントローラ110は、蓄積した電力推定値を使用して、固定時間間隔にわたってマルチコアプロセッサチップ100によって消費される累積電力の推定値を決定する。例えば、中央コントローラ110は、複数のコアプロセッサ、例えば、120−1〜120−Nの蓄積電力推定値、および、該当する場合は、1つ以上のコプロセッサブロック、例えば、130−1〜130−Mの蓄積電力推定値を合計してもよい。中央コントローラは、代替として、または追加して、累積電力推定値を決定することに他の演算処理を実行してもよい。ブロック230におけるプロセスは任意選択であってもよい。例えば、中央コントローラは、複数のコアプロセッサ、例えば、120−1〜120−Nによって消費される累積電力を示す単一の電力推定値を蓄積してもよい。かかる場合において、蓄積された単一の電力推定値は、累積電力推定値として使用されてもよい。
ブロック240において、全域電力閾値が、中央コントローラ110によって決定される。全域電力閾値は、累積電力推定値に基づいて決定される。累積電力推定値の他に、目標電力値が更に、全域電力閾値を決定することに使用されてもよい。全域電力閾値は、固定時間間隔にわたっていずれのコアプロセッサも超過しない全域電力消費限界を表している。目標電力値は、固定時間間隔にわたるマルチコアプロセッサチップ100に対する目標電力消費レベルを示す。
少なくとも1つの態様によれば、中央コントローラ110は、累積差分パラメータと全域消費閾値パラメータとを維持している。累積差分パラメータ、例えば、Cum_Diffは、決定した累積電力推定値(例えば、Cum_Power_Estimate)と、目標電力(例えば、Target_Power)との間の差の合計または平均を表している。例えば、各時間間隔において、累積差分パラメータは、以下のように更新される。
Cum_Diff=Cum_Diff+(Cum_Power_Estimate−Target_power)。
Cum_Diffパラメータは、複数のコアプロセッサ、例えば、120−1〜120−Nを所定の時間間隔の間、ビジー状態に維持される程の作業負荷があれば、ゼロ付近になると予想される。その期間、作業負荷が小さければ、Cum_Diffパラメータは、パラメータが飽和する負の最小値に到達するまで、マイナスとなる。負の最小値、すなわち飽和値は、例えば、マルチコアプロセッサチップ100が数ミリ秒間アイドル状態であることを示す熱定数に基づいて定義されてもよい。言い換えれば、飽和値により、マルチコアプロセッサチップ100が、その短時間の関連する履歴を記憶することが可能となる。代替として、累積電力差は、加重和として定義されてもよい。
全域消費閾値パラメータ、例えば、Global_limは、各時間間隔において、以下のように更新されてもよい。
(Cum_Power_Estimate<Target_Power)、かつ(Cum_Diff<0)の場合、
Global_lim=Global_lim+1である。
(Cum_Power_Estimate>Target_Power)の場合、
Global_lim=Global_lim−1である。
すなわち、全域電力閾値は、累積電力推定値が目標電力未満かつ累積差がゼロ未満である場合に限り、増分される。また、全域電力閾値は、累積電力推定値が目標電力を超える場合に限り、減分される。
例示の態様によれば、目標電力値は、マルチコアプロセッサチップ100のメーカによって定数として設定されてもよい。代替として、目標電力値は、マルチコアプロセッサチップ100のソフトウェアによって設定可能であってもよい。更に別の態様によれば、目標電力は、例えば、温度センサによって提供される情報に基づいて動的であってもよい。例えば、目標電力は、マルチコアプロセッサチップ100の記録された温度に基づいて変化してもよい。
一旦、全域消費閾値、例えば、Global_limが特定の時間間隔に対して決定されると、中央コントローラ110は、少なくとも1つのコアプロセッサにその電力消費を低減または増加させるよう構成される。一例示的実施形態によれば、中央コントローラ110は、すべてのコアプロセッサ、例えば、120−1〜120−Nに、それらが対応する電力消費を制御するよう指示するコマンドを送信してもよい。例えば、中央コントローラ110は、決定された全域消費閾値、例えば、Global_limをすべてのコアプロセッサ、例えば、120−1〜120−Nに送信してもよい。各コアプロセッサは、局部電力限界値、例えば、Power_limを維持する。代替として、中央コントローラ110は、先行する全域消費閾値に適用されるべき増分または減分を表す値を送信してもよい。各コアプロセッサにおいて、全域消費閾値および局部電力限界の最小値は、少なくとも次の時間間隔における電力消費に対する上限として使用される。代わりに、中央コントローラ110は、複数のコアプロセッサ、例えば、120−1〜120−Nにおける電力消費を、直接、低減または増加してもよい。例えば、中央コントローラはマスタークロックの周波数を調整して、これにより、複数のコアプロセッサ、例えば、120−1〜120−Nのクロック周波数を調整してもよい。
少なくとも1つの例示的実施形態によれば、マルチコアプロセッサチップ100に対して決定された累積電力推定値が目標電力を超えない場合、中央コントローラ110は、コアプロセッサ、例えば、120−1〜120−Nに、それらが自身を抑える必要が無いこと、すなわち、それらの対応する周波数を低減する必要が無いことを示す信号を送信する。しかし、マルチコアプロセッサチップ100に対して決定された累積電力推定値が目標電力を超え、かつ累積差がゼロである場合、中央コントローラ110は、コアプロセッサ、例えば、120−1〜120−Nにそれら自身を抑えるよう指示する信号を送信する。コアプロセッサ、例えば、120−1〜120−Nにそれら自身を抑えるよう指示するか否かに関わらず、送信される信号は、制御操作の指示および全域消費閾値を担持するペイロードを含んでいてもよい。従って、全域消費閾値を局部電力限界と比較することによって、各コアプロセッサは、スロットリングを実行するか否かを決定する。言い換えれば、送信される信号は、読取コマンドを表す信号と類似であってもよい。ただし、操作指示が読取操作の代わりに制御操作を示し、ペイロードが電力推定値の代わりに全域消費閾値を表す点が異なる。例えば、読取コマンドは0で示されてもよく、操作コマンドは1で示されてもよい。
別の例示的実施形態によれば、2つのワイヤによって、中央コントローラ110をコアプロセッサ、例えば、120−1〜120−Nに連結してもよい。1つのワイヤは、「throttle_this_interval」ワイヤと称されてもよい。このワイヤは、すべてのコアプロセッサ、例えば、120−1〜120−Nにブロードキャストされる。「throttle_this_interval」ワイヤは、コアプロセッサ、例えば、120−1〜120−Nに対して次々にブロードキャストされてもよい。第2のワイヤは、「sum(合計)」ワイヤと称されてもよい。「sum」ワイヤは、各コアプロセッサまたは複数のコアプロセッサのサブセット(複数のコアプロセッサの一部)に次々に送られ、各コアプロセッサ通って横断した後、中央コントローラ110に戻る。アイドルフェーズ後、「sum」ワイヤの第1のアサート(表明)は、累積電力推定値が、ワイヤ上の次のビット数内で、最初にLSB、最後に最上位ビット(MSB)に続くことを示す。コアプロセッサは、「sum」ワイヤがオンであることを検知すると、その局部電力推定値を次のビット数において累積電力推定値に追加することを認識する。中央コントローラは、「sum」ワイヤを受信し、適用する場合は「throttle_this_interval」ワイヤを適切に設定する。
少なくとも1つの例示的実施形態によれば、コアプロセッサにそれらの対応する電力消費を制御するように指示することが、固定時間間隔の他の半分以内で生じている間、電力推定値の蓄積は、固定時間間隔の半分以内で実行される。例えば、固定時間間隔が、256のクロックサイクルと等しい場合、中央コントローラ110によって電力推定値を蓄積することは、128クロックサイクル内で実行され、コアプロセッサ、例えば、120−1〜120−Nにそれらの対応する電力消費を制御するように指示することは、その後の128クロックサイクルを必要とする。中央コントローラ110による全域消費閾値の決定は、電力推定値を蓄積することの一部、または、コアプロセッサ、例えば、120−1〜120−Nにそれらの対応する電力消費を制御するように指示することの一部として考えられてもよい。
複数のコアプロセッサ、例えば、120−1〜120−Nのそれぞれにおいて、信号またはコマンドが、局部電力消費を低減させる命令と共に受信されると、適切な動作が、コアプロセッサによって行われる。電力消費を低減させる1つの方法は、局部クロック周波数を低減することである。かかる取り組みは、各コアプロセッサがそれ自身の位相同期ループ(PLL)を有している場合に適用されてもよい。コアプロセッサにおいて局部電力消費を低減させる別の方法は、命令の発行を停止することである。例えば、コアプロセッサは、電力消費が、局部電力限界または中央コントローラ110から受信する全域消費閾値を超えるまで、固定時間間隔内で命令の処理を続け、次いで、固定時間間隔の終了まで命令の発行を停止してもよい。
図3Aおよび3Bは、複数のコアプロセッサ、例えば、120−1〜120−Nからの電力推定値を蓄積するシリアル構成例を示すブロック図である。図3Aは単一のシリアル構成を示し、この構成に従って、中央コントローラがコアプロセッサのうちの1つ、例えば、120−1に読取コマンドを送信する。例示の態様によれば、読取コマンドは、読取操作の指示と中央コントローラ110に返信される電力推定値を表すペイロードとを含む。第1のコアプロセッサ、例えば、120−1は、中央コントローラ110から読取コマンドを受信し、その推定された電力消費値を読取コマンドのペイロードに組み込む。ペイロード初期値がゼロの場合は、推定電力消費値は、加法演算により組み込まれてもよい。読取コマンドは次いで、次のコアプロセッサ、例えば、120−2に転送される。
コアプロセッサ120−2は、その推定電力消費値をペイロード値に加算し、読取コマンドを次のコアプロセッサ、例えば、120−3に転送するように構成されている。局所的に推定される電力消費値のペイロード値への加算は、各コアプロセッサ120−2〜120−Nにおいて繰り返される。最後のコアプロセッサ、例えば、120−Nにおいて、最終加算結果が、中央コントローラ110に転送される。中央コントローラに転送される値は、すべてのコアプロセッサ、例えば、120−1〜120−Nに対する累積電力推定値として使用されてもよく、または、追加の演算処理が適用されてもよい。コアプロセッサにおいて実行される加法演算は、結果として、中央コントローラ110への最終結果の到達の時間遅延を生じる。
一例示的実施形態によれば、かかる時間遅延は、加算の適用およびビット単位の転送により低減されてもよい。言い換えれば、最下位ビット(LSB)から開始して、一旦、加算が実行されると、加算結果ビットが転送されている間、キャリーオーバー値が保存される。次いで、キャリーオーバー値と、局所的に推定された電力消費値およびペイロード値の次のLSBとが加算される。新規のキャリーオーバー値は保存され、加算結果ビットは、次のコアプロセッサに転送される。次のコアプロセッサにおいて、同様の操作が行われる。すなわち、ペイロードのビットが受信され次第、対応する加算が実行され、加算結果ビットが、別のコアプロセッサに転送される。このため、時間遅延は、著しく低減される。
図3Bにおいて、コアプロセッサは、4つのシリアル構成、例えば、120−1〜120−k、120−(k+1)〜120−k、120−(k+1)〜120−k、および、120−(k+1)〜120−Nに編成される。ビット単位の加算および転送は、各シリアル構成内部で適用されてもよい。中央コントローラ110は、4つの電力推定値を、例えば、コアプロセッサ120−k、120−k、120−k、および120−Nから受信する。4つの電力推定値のそれぞれは、該当するシリアル構成のための累積電力推定値を表している。累積電力推定値を演算するために、中央コントローラ110は、例えば、受信した4つの電力推定値を合計する。中央コントローラ110は、すべてのコアプロセッサ、例えば、120−1〜120−Nに対する累積電力推定値を決定することに他の演算処理を実行してもよい。
図4は、複数のコプロセッサブロック、例えば、130−1〜130−Mからの蓄積電力推定用の構成を示すブロック図である。各コプロセッサブロック内部において、電力の大半、例えば、約90%は、対応するクロックによって消費される。コプロセッサブロック、例えば、130−1、130−2、・・・、または130−Mは、1つ以上のクロックを有するかもしれない。一例示的実施形態によれば、中央コントローラ110は、対応する各クロックのための電力消費推定を可能にする、コプロセッサブロック、例えば、130−1〜130−Mからの情報を受信する。例えば、中央コントローラ110は、コプロセッサブロックの各クロックの修正クロック信号を受信する。コプロセッサブロック、例えば、130−1〜130−Mのクロックの推定電力消費値は、複数のコアプロセッサ、例えば、120−1〜120−Nから蓄積される電力推定値と合計されて、マルチコアプロセッサチップ100全体の全域累積電力消費推定値を生成する。
図5は、少なくとも1つの例示的実施形態によるコプロセッサブロッククロックのクロック信号510および対応する修正クロック信号520の例を示している。修正クロック信号520は、中央コントローラ110において、コプロセッサブロック、例えば、130−1、130−2、・・・、または130−Mから受信される。クロック信号510は通常、中央コントローラ110よりも高い周波数を有している。このため、クロック信号510が中央コントローラ110に送信される場合、中央コントローラは、対応する電力を推定するために、クロック信号510を適切にサンプリングしないかもしれない。クロック信号510は、コプロセッサブロック、例えば、130−1〜130−Mの異なるクロック信号510を非同期にするアイドル状態511の時間を含んでいてもよい。
一例示的実施形態によれば、修正クロック信号520は、クロック信号510におけるクロックサイクル数を修正クロック信号520内の単一サイクルに減少することによって生成される。例えば、クロック信号510内の32クロックサイクルは、修正クロック信号520内の単一サイクルに相当する。このように、中央コントローラ110は、修正クロック信号520を適切にサンプリングすることができる。
各コプロセッサブロック、例えば、130−1、130−2、・・・、または130−Mは、同じコプロセッサブロック内のクロックのクロック活動のサイクルのカウントを提供するように構成されている。クロックサイクルのカウントに基づいて、クロック活動の表現、例えば、修正クロック信号520は、カウントされたクロック活動のサイクルの既定数、例えば、32を、クロック活動の生成された表現内部で単一のシンボルにマッピングすることによって生成される。生成した表現は次いで、中央コントローラ110によって受信される。中央コントローラ110は、例えば、生成された各クロック活動の表現の電力消費を決定するようルックアップテーブルを採用してもよい。マルチコアプロセッサチップ100全体に対する累積電力消費推定値の決定において、中央コントローラ110は、複数のコアプロセッサ、例えば、120−1〜120−Nの蓄積電力消費推定値、ならびに、コプロセッサブロック、例えば、130−1〜130−Mに該当する電力推定値を合計してもよい。
本発明を、その実施形態に関して特に示し、説明してきたが、形態および詳細における種々の変更を、添付の特許請求の範囲によって包含される本発明の適用範囲から逸脱することなく行ってもよいことは、当該技術に精通する者によって理解されよう。
なお、本発明は、実施の態様として以下の内容を含む。
〔態様1〕
マルチコアプロセッサチップにおいて電力消費を制御する方法であって、
前記マルチコアプロセッサチップ内部のコントローラにおいて、前記マルチコアプロセッサチップ内部の複数のコアプロセッサの1つ以上の電力推定値を蓄積することと、
蓄積された前記1つ以上の電力推定値の少なくとも一部に基づいて決定される累積電力推定値に基づいて全域電力閾値を決定することと、
各コアプロセッサにおける電力消費を、決定された前記全域電力閾値に基づいて制御することと、
を含む方法。
〔態様2〕
複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することが、前記マルチコアプロセッサチップ内部の前記複数のコアプロセッサの1つ以上のサブセットの電力推定値の1つ以上の累積合計を受信することを含む、態様1に記載の方法。
〔態様3〕
複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することが、前記マルチコアプロセッサチップ内部の前記複数のコアプロセッサに対応する複数の電力推定値を受信することを含む、態様1に記載の方法。
〔態様4〕
複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することが、読取コマンドを前記コントローラから前記複数のコアプロセッサのうちの少なくとも1つのコアプロセッサへ送信することを含む、態様1に記載の方法。
〔態様5〕
読取コマンドを受信するコアプロセッサが、電力推定値の累積合計を表すパラメータ値を更新し、前記読取コマンドを前記更新された累積合計と共に、別の1つのコアプロセッサまたは前記コントローラに転送する、態様4に記載の方法。
〔態様6〕
前記全域電力閾値を決定することは、
決定された前記累積電力推定値と対応する経時平均とが、両方とも所望の目標電力よりも小さいことを判断すると、前記全域電力閾値を表すパラメータ値を増分することと、
決定された前記累積電力推定値が前記所望の目標電力よりも大きいことを判断すると、前記全域電力閾値を表すパラメータ値を減分することとを含む、
態様1に記載の方法。
〔態様7〕
前記所望の目標電力は、前記マルチコアプロセッサチップのユーザまたはメーカによって設定される定数である、態様6に記載の方法。
〔態様8〕
前記所望の目標電力は、前記マルチコアプロセッサチップの測定温度値の少なくとも一部に基づいて、動的に設定される、態様6に記載の方法。
〔態様9〕
前記マルチコアプロセッサチップ内部の1つ以上のコプロセッサブロックのクロック活動の1つ以上の表現を蓄積することと、
蓄積された前記1つ以上の表現の少なくとも一部に基づいて、前記1つ以上のコプロセッサブロックの1つ以上の電力推定値を決定することとを更に含み、
前記マルチコアプロセッサチップに対する前記累積電力推定値を決定することは更に、前記1つ以上のコプロセッサブロックの前記1つ以上の電力推定値に基づく、
態様1に記載の方法。
〔態様10〕
前記1つ以上のコプロセッサブロックの前記1つ以上の電力推定値を決定することは更に、ルックアップテーブルに基づく、態様9に記載の方法。
〔態様11〕
前記1つ以上のコプロセッサブロックの前記クロック活動の前記1つ以上の表現を蓄積することは、
各コプロセッサブロックにおいて、同じコプロセッサブロックのクロック活動のサイクルをカウントすることと、
カウントされたクロック活動のサイクルの所定数を前記コプロセッサブロックの前記クロック活動の前記表現内部で単一のシンボルにマッピングすることによって、前記コプロセッサブロックの前記クロック活動の表現を生成することと、
前記コントローラによって、前記コプロセッサブロックの前記クロック活動の前記表現を受信することとを含む、
態様9に記載の方法。
〔態様12〕
各コアプロセッサにおける電力消費を制御することは、各コアプロセッサに、前記全域電力閾値に基づいて前記コアプロセッサの電力消費を制御するように指示することを含む、態様1に記載の方法。
〔態様13〕
各コアプロセッサに電力消費を制御するように指示することは、決定される前記全域電力閾値の指示を各コアプロセッサに送信することを含む、態様12に記載の方法。
〔態様14〕
各コアプロセッサによって、前記全域電力閾値を局部電力限界と比較することを更に含む、態様13に記載の方法。
〔態様15〕
各コアプロセッサにおける電力消費を制御することは、マスタークロック周波数を調整することを含む、態様1に記載の方法。
〔態様16〕
マルチコアプロセッサチップであって、
複数のコアプロセッサと、
前記複数のコアプロセッサのうちの少なくとも1つに連結されるコントローラとを備え、前記コントローラは、
前記マルチコアプロセッサチップ内部の前記複数のコアプロセッサの1つ以上の電力推定値を蓄積し、
蓄積された前記1つ以上の電力推定値の少なくとも一部に基づいて決定される累積電力推定値に基づいて全域電力閾値を決定し、
各コアプロセッサにおける電力消費を、決定された前記全域電力閾値に基づいて制御するように構成される、
マルチコアプロセッサチップ。
〔態様17〕
前記複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することにおいて、前記コントローラは、前記複数のコアプロセッサの1つ以上のサブセットの電力推定値の1つ以上の累積合計を受信するように構成される、態様16に記載のマルチコアプロセッサチップ。
〔態様18〕
複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することにおいて、前記コントローラは、前記複数のコアプロセッサに対応する複数の電力推定値を受信するように構成される、態様16に記載のマルチコアプロセッサチップ。
〔態様19〕
複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することにおいて、前記コントローラは、読取コマンドを前記コントローラから前記複数のコアプロセッサのうちの少なくとも1つのコアプロセッサへ送信するように構成される、態様16に記載のマルチコアプロセッサチップ。
〔態様20〕
前記複数のコアプロセッサからの前記少なくとも1つのコアプロセッサは、
読取コマンドを受信し、
電力推定値の累積合計を表すパラメータ値を更新し、
前記読取コマンドを前記更新された累積合計と共に、別の1つのコアプロセッサまたは前記コントローラに転送するように構成される、
態様19に記載のマルチコアプロセッサチップ。
〔態様21〕
前記全域電力閾値を決定することにおいて、前記コントローラは、
決定された前記累積電力推定値と対応する経時平均とが、両方とも所望の目標電力よりも小さいことを判断すると、前記全域電力閾値を表すパラメータ値を増分し、
決定された前記累積電力推定値が前記所望の目標電力よりも大きいことを判断すると、前記全域電力閾値を表すパラメータ値を減分するように構成される、
態様16に記載のマルチコアプロセッサチップ。
〔態様22〕
前記所望の目標電力は、前記マルチコアプロセッサチップのユーザまたはメーカによって設定される定数である、態様21に記載のマルチコアプロセッサチップ。
〔態様23〕
前記所望の目標電力は、前記マルチコアプロセッサチップの測定温度値の少なくとも一部に基づいて、動的に設定される、態様21に記載のマルチコアプロセッサチップ。
〔態様24〕
前記マルチコアプロセッサチップは更に1つ以上のコプロセッサブロックを含み、前記コントローラは更に、
前記1つ以上のコプロセッサブロックのクロック活動の1つ以上の表現を蓄積し、
蓄積された前記1つ以上の表現の少なくとも一部に基づいて、前記1つ以上のコプロセッサブロックの1つ以上の電力推定値を決定するように構成され、
前記マルチコアプロセッサチップに対する前記累積電力推定値を決定することは更に、前記1つ以上のコプロセッサブロックの前記1つ以上の電力推定値に基づく、
態様16に記載のマルチコアプロセッサチップ。
〔態様25〕
前記1つ以上のコプロセッサブロックの前記1つ以上の電力推定値を決定することにおいて、前記コントローラは更に、ルックアップテーブルを照合して各コプロセッサブロックの前記電力推定値を決定するように構成される、態様24に記載のマルチコアプロセッサチップ。
〔態様26〕
前記1つ以上のコプロセッサブロックの前記クロック活動の1つ以上の表現を蓄積することにおいて、各コプロセッサブロックは、
各コプロセッサブロックにおいて、同じコプロセッサブロックのクロック活動のサイクルをカウントし、
カウントされたクロック活動のサイクルの所定数を前記コプロセッサブロックの前記クロック活動の前記表現内部で単一のシンボルにマッピングすることによって、前記コプロセッサブロックの前記クロック活動の表現を生成し、
前記コプロセッサブロックの前記クロック活動の前記表現を前記コントローラに送信するように構成される、
態様24に記載のマルチコアプロセッサチップ。
〔態様27〕
各コアプロセッサにおける電力消費を制御することにおいて、前記コントローラは更に、各コアプロセッサに、前記全域電力閾値に基づいて前記コアプロセッサの電力消費を制御するよう指示するように構成される、態様16に記載のマルチコアプロセッサチップ。
〔態様28〕
各コアプロセッサに電力消費を制御するよう指示することにおいて、前記コントローラは更に、決定される前記全域電力閾値の指示を各コアプロセッサに送信するように構成される、態様27に記載のマルチコアプロセッサチップ。
〔態様29〕
各コアプロセッサは、前記全域電力閾値を局部電力限界と比較するように構成される、態様28に記載のマルチコアプロセッサチップ。
〔態様30〕
各コアプロセッサにおける電力消費を制御することにおいて、前記コントローラは、マスタークロック周波数を調整するように構成される、態様16に記載のマルチコアプロセッサチップ。
100 マルチコアプロセッサチップ
110 中央コントローラ
120 コアプロセッサ
130 コプロセッサブロック
510 クロック信号
511 アイドル状態
520 修正クロック信号

Claims (34)

  1. マルチコアプロセッサチップにおいて電力消費を制御する方法であって、
    前記マルチコアプロセッサチップ内部のコントローラにおいて、前記マルチコアプロセッサチップ内部の複数のコアプロセッサの1つ以上の電力推定値を蓄積することであって、読取コマンドを前記コントローラから前記複数のコアプロセッサのうちの少なくとも1つのコアプロセッサへ送信することを含む、複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することと、
    蓄積された前記1つ以上の電力推定値の少なくとも一部に基づいて決定される累積電力推定値に基づいて全域電力閾値を決定することと、
    各コアプロセッサにおける電力消費を、決定された前記全域電力閾値に基づいて制御することと、
    を含み、
    前記読取コマンドを受信するコアプロセッサが、電力推定値の累積合計を表すパラメータ値を更新することによって、更新された累積合計を生成し、前記読取コマンドを前記更新された累積合計と共に、別の1つのコアプロセッサまたは前記コントローラに転送する、方法。
  2. マルチコアプロセッサチップにおいて電力消費を制御する方法であって、
    前記マルチコアプロセッサチップ内部のコントローラにおいて、前記マルチコアプロセッサチップ内部の複数のコアプロセッサの1つ以上の電力推定値を蓄積することと、
    蓄積された前記1つ以上の電力推定値の少なくとも一部に基づいて決定される累積電力推定値に基づいて全域電力閾値を決定することと、
    各コアプロセッサにおける電力消費を、決定された前記全域電力閾値に基づいて制御することと、
    前記マルチコアプロセッサチップ内部の1つ以上のコプロセッサブロックのクロック活動の1つ以上の表現を蓄積することと、
    蓄積された前記1つ以上の表現の少なくとも一部に基づいて、前記1つ以上のコプロセッサブロックの1つ以上の電力推定値を決定することとを含み、
    前記マルチコアプロセッサチップに対する前記累積電力推定値を決定することは更に、前記1つ以上のコプロセッサブロックの前記1つ以上の電力推定値に基づき、
    前記1つ以上のコプロセッサブロックの前記クロック活動の前記1つ以上の表現を蓄積することは、
    各コプロセッサブロックにおいて、同じコプロセッサブロックのクロック活動のサイクルをカウントすることと、
    カウントされたクロック活動のサイクルの所定数を前記コプロセッサブロックの前記クロック活動の前記表現内部で単一のシンボルにマッピングすることによって、前記コプロセッサブロックの前記クロック活動の表現を生成することと、
    前記コントローラによって、前記コプロセッサブロックの前記クロック活動の前記表現を受信することとを含む、方法。
  3. マルチコアプロセッサチップにおいて電力消費を制御する方法であって、
    前記マルチコアプロセッサチップ内部のコントローラにおいて、前記マルチコアプロセッサチップ内部の複数のコアプロセッサの1つ以上の電力推定値を蓄積することと、
    蓄積された前記1つ以上の電力推定値の少なくとも一部に基づいて決定される累積電力推定値に基づいて全域電力閾値を決定することと、
    各コアプロセッサにおける電力消費を、決定された前記全域電力閾値に基づいて制御することであって、コアプロセッサに、前記全域電力閾値に基づいて前記コアプロセッサの電力消費を制御するように指示することを含み、各コアプロセッサに電力消費を制御するように指示することは、決定される前記全域電力閾値の指示を各コアプロセッサに送信することを含む、各コアプロセッサにおける電力消費を制御することと、
    を含み、
    各コアプロセッサによって、前記全域電力閾値を局部電力限界と比較することを更に含む方法。
  4. 複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することが、前記マルチコアプロセッサチップ内部の前記複数のコアプロセッサの1つ以上のサブセットの電力推定値の1つ以上の累積合計を受信することを含む、請求項1から3のいずれか一項に記載の方法。
  5. 複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することが、前記マルチコアプロセッサチップ内部の前記複数のコアプロセッサに対応する複数の電力推定値を受信することを含む、請求項1から3のいずれか一項に記載の方法。
  6. 複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することが、読取コマンドを前記コントローラから前記複数のコアプロセッサのうちの少なくとも1つのコアプロセッサへ送信することを含む、請求項2または3に記載の方法。
  7. 前記読取コマンドを受信するコアプロセッサが、電力推定値の累積合計を表すパラメータ値を更新することによって、更新された累積合計を生成し、前記読取コマンドを前記更新された累積合計と共に、別の1つのコアプロセッサまたは前記コントローラに転送する、請求項に記載の方法。
  8. 前記全域電力閾値を決定することは、
    決定された前記累積電力推定値と対応する経時平均とが、両方とも所望の目標電力よりも小さいことを判断すると、前記全域電力閾値を表すパラメータ値を増分することと、
    決定された前記累積電力推定値が前記所望の目標電力よりも大きいことを判断すると、前記全域電力閾値を表すパラメータ値を減分することとを含む、
    請求項1から3のいずれか一項に記載の方法。
  9. 前記所望の目標電力は、前記マルチコアプロセッサチップのユーザまたはメーカによって設定される定数である、請求項に記載の方法。
  10. 前記所望の目標電力は、前記マルチコアプロセッサチップの測定温度値の少なくとも一部に基づいて、動的に設定される、請求項に記載の方法。
  11. 前記マルチコアプロセッサチップ内部の1つ以上のコプロセッサブロックのクロック活動の1つ以上の表現を蓄積することと、
    蓄積された前記1つ以上の表現の少なくとも一部に基づいて、前記1つ以上のコプロセッサブロックの1つ以上の電力推定値を決定することとを更に含み、
    前記マルチコアプロセッサチップに対する前記累積電力推定値を決定することは更に、前記1つ以上のコプロセッサブロックの前記1つ以上の電力推定値に基づく、
    請求項1または3に記載の方法。
  12. 前記1つ以上のコプロセッサブロックの前記1つ以上の電力推定値を決定することは更に、ルックアップテーブルに基づく、請求項2または11に記載の方法。
  13. 前記1つ以上のコプロセッサブロックの前記クロック活動の前記1つ以上の表現を蓄積することは、
    各コプロセッサブロックにおいて、同じコプロセッサブロックのクロック活動のサイクルをカウントすることと、
    カウントされたクロック活動のサイクルの所定数を前記コプロセッサブロックの前記クロック活動の前記表現内部で単一のシンボルにマッピングすることによって、前記コプロセッサブロックの前記クロック活動の表現を生成することと、
    前記コントローラによって、前記コプロセッサブロックの前記クロック活動の前記表現を受信することとを含む、
    請求項11に記載の方法。
  14. 各コアプロセッサにおける電力消費を制御することは、各コアプロセッサに、前記全域電力閾値に基づいて前記コアプロセッサの電力消費を制御するように指示することを含む、請求項1または2に記載の方法。
  15. 各コアプロセッサに電力消費を制御するように指示することは、決定される前記全域電力閾値の指示を各コアプロセッサに送信することを含む、請求項14に記載の方法。
  16. 各コアプロセッサによって、前記全域電力閾値を局部電力限界と比較することを更に含む、請求項15に記載の方法。
  17. 各コアプロセッサにおける電力消費を制御することは、マスタークロック周波数を調整することを含む、請求項1から3のいずれか一項に記載の方法。
  18. マルチコアプロセッサチップであって、
    複数のコアプロセッサと、
    前記複数のコアプロセッサのうちの少なくとも1つに連結されるコントローラとを備え、前記コントローラは、
    前記マルチコアプロセッサチップ内部の前記複数のコアプロセッサの1つ以上の電力推定値を蓄積し、
    蓄積された前記1つ以上の電力推定値の少なくとも一部に基づいて決定される累積電力推定値に基づいて全域電力閾値を決定し、
    各コアプロセッサにおける電力消費を、決定された前記全域電力閾値に基づいて制御するように構成され
    複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することにおいて、前記コントローラは、読取コマンドを前記コントローラから前記複数のコアプロセッサのうちの少なくとも1つのコアプロセッサへ送信するように構成され、
    前記複数のコアプロセッサからの前記少なくとも1つのコアプロセッサは、
    前記読取コマンドを受信し、
    電力推定値の累積合計を表すパラメータ値を更新することによって、更新された累積合計を生成し、
    前記読取コマンドを前記更新された累積合計と共に、別の1つのコアプロセッサまたは前記コントローラに転送するように構成される、
    マルチコアプロセッサチップ。
  19. マルチコアプロセッサチップであって、
    複数のコアプロセッサと、
    前記複数のコアプロセッサのうちの少なくとも1つに連結されるコントローラとを備え、前記コントローラは、
    前記マルチコアプロセッサチップ内部の前記複数のコアプロセッサの1つ以上の電力推定値を蓄積し、
    蓄積された前記1つ以上の電力推定値の少なくとも一部に基づいて決定される累積電力推定値に基づいて全域電力閾値を決定し、
    各コアプロセッサにおける電力消費を、決定された前記全域電力閾値に基づいて制御するように構成され、
    前記マルチコアプロセッサチップは更に1つ以上のコプロセッサブロックを含み、前記コントローラは更に、
    前記1つ以上のコプロセッサブロックのクロック活動の1つ以上の表現を蓄積し、
    蓄積された前記1つ以上の表現の少なくとも一部に基づいて、前記1つ以上のコプロセッサブロックの1つ以上の電力推定値を決定するように構成され、
    前記マルチコアプロセッサチップに対する前記累積電力推定値を決定することは更に、前記1つ以上のコプロセッサブロックの前記1つ以上の電力推定値に基づき、
    前記1つ以上のコプロセッサブロックの前記クロック活動の1つ以上の表現を蓄積することにおいて、各コプロセッサブロックは、
    各コプロセッサブロックにおいて、同じコプロセッサブロックのクロック活動のサイクルをカウントし、
    カウントされたクロック活動のサイクルの所定数を前記コプロセッサブロックの前記クロック活動の前記表現内部で単一のシンボルにマッピングすることによって、前記コプロセッサブロックの前記クロック活動の表現を生成し、
    前記コプロセッサブロックの前記クロック活動の前記表現を前記コントローラに送信するように構成される
    マルチコアプロセッサチップ。
  20. マルチコアプロセッサチップであって、
    複数のコアプロセッサと、
    前記複数のコアプロセッサのうちの少なくとも1つに連結されるコントローラとを備え、前記コントローラは、
    前記マルチコアプロセッサチップ内部の前記複数のコアプロセッサの1つ以上の電力推定値を蓄積し、
    蓄積された前記1つ以上の電力推定値の少なくとも一部に基づいて決定される累積電力推定値に基づいて全域電力閾値を決定し、
    各コアプロセッサにおける電力消費を、決定された前記全域電力閾値に基づいて制御するように構成され、
    各コアプロセッサにおける電力消費を制御することにおいて、前記コントローラは更に、各コアプロセッサに、前記全域電力閾値に基づいて前記コアプロセッサの電力消費を制御するよう指示するように構成され、
    各コアプロセッサに電力消費を制御するよう指示することにおいて、前記コントローラは更に、決定される前記全域電力閾値の指示を各コアプロセッサに送信するように構成され、
    各コアプロセッサは、前記全域電力閾値を局部電力限界と比較するように構成される、
    マルチコアプロセッサチップ。
  21. 前記複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することにおいて、前記コントローラは、前記複数のコアプロセッサの1つ以上のサブセットの電力推定値の1つ以上の累積合計を受信するように構成される、請求項18から20のいずれか一項に記載のマルチコアプロセッサチップ。
  22. 複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することにおいて、前記コントローラは、前記複数のコアプロセッサに対応する複数の電力推定値を受信するように構成される、請求項18から20のいずれか一項に記載のマルチコアプロセッサチップ。
  23. 複数のコアプロセッサの前記1つ以上の電力推定値を蓄積することにおいて、前記コントローラは、読取コマンドを前記コントローラから前記複数のコアプロセッサのうちの少なくとも1つのコアプロセッサへ送信するように構成される、請求項19または20に記載のマルチコアプロセッサチップ。
  24. 前記複数のコアプロセッサからの前記少なくとも1つのコアプロセッサは、
    前記読取コマンドを受信し、
    電力推定値の累積合計を表すパラメータ値を更新することによって、更新された累積合計を生成し、
    前記読取コマンドを前記更新された累積合計と共に、別の1つのコアプロセッサまたは前記コントローラに転送するように構成される、
    請求項23に記載のマルチコアプロセッサチップ。
  25. 前記全域電力閾値を決定することにおいて、前記コントローラは、
    決定された前記累積電力推定値と対応する経時平均とが、両方とも所望の目標電力よりも小さいことを判断すると、前記全域電力閾値を表すパラメータ値を増分し、
    決定された前記累積電力推定値が前記所望の目標電力よりも大きいことを判断すると、前記全域電力閾値を表すパラメータ値を減分するように構成される、
    請求項18から20のいずれか一項に記載のマルチコアプロセッサチップ。
  26. 前記所望の目標電力は、前記マルチコアプロセッサチップのユーザまたはメーカによって設定される定数である、請求項25に記載のマルチコアプロセッサチップ。
  27. 前記所望の目標電力は、前記マルチコアプロセッサチップの測定温度値の少なくとも一部に基づいて、動的に設定される、請求項25に記載のマルチコアプロセッサチップ。
  28. 前記マルチコアプロセッサチップは更に1つ以上のコプロセッサブロックを含み、前記コントローラは更に、
    前記1つ以上のコプロセッサブロックのクロック活動の1つ以上の表現を蓄積し、
    蓄積された前記1つ以上の表現の少なくとも一部に基づいて、前記1つ以上のコプロセッサブロックの1つ以上の電力推定値を決定するように構成され、
    前記マルチコアプロセッサチップに対する前記累積電力推定値を決定することは更に、前記1つ以上のコプロセッサブロックの前記1つ以上の電力推定値に基づく、
    請求項18または20に記載のマルチコアプロセッサチップ。
  29. 前記1つ以上のコプロセッサブロックの前記1つ以上の電力推定値を決定することにおいて、前記コントローラは更に、ルックアップテーブルを照合して各コプロセッサブロックの前記電力推定値を決定するように構成される、請求項19または28に記載のマルチコアプロセッサチップ。
  30. 前記1つ以上のコプロセッサブロックの前記クロック活動の1つ以上の表現を蓄積することにおいて、各コプロセッサブロックは、
    各コプロセッサブロックにおいて、同じコプロセッサブロックのクロック活動のサイクルをカウントし、
    カウントされたクロック活動のサイクルの所定数を前記コプロセッサブロックの前記クロック活動の前記表現内部で単一のシンボルにマッピングすることによって、前記コプロセッサブロックの前記クロック活動の表現を生成し、
    前記コプロセッサブロックの前記クロック活動の前記表現を前記コントローラに送信するように構成される、
    請求項28に記載のマルチコアプロセッサチップ。
  31. 各コアプロセッサにおける電力消費を制御することにおいて、前記コントローラは更に、各コアプロセッサに、前記全域電力閾値に基づいて前記コアプロセッサの電力消費を制御するよう指示するように構成される、請求項18または19に記載のマルチコアプロセッサチップ。
  32. 各コアプロセッサに電力消費を制御するよう指示することにおいて、前記コントローラは更に、決定される前記全域電力閾値の指示を各コアプロセッサに送信するように構成される、請求項31に記載のマルチコアプロセッサチップ。
  33. 各コアプロセッサは、前記全域電力閾値を局部電力限界と比較するように構成される、請求項32に記載のマルチコアプロセッサチップ。
  34. 各コアプロセッサにおける電力消費を制御することにおいて、前記コントローラは、マスタークロック周波数を調整するように構成される、請求項18から20のいずれか一項に記載のマルチコアプロセッサチップ。
JP2014192982A 2013-09-26 2014-09-22 チップ上のマルチコアシステムの全域チップ電力を管理する方法およびその装置 Active JP6169547B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/038,549 US9671844B2 (en) 2013-09-26 2013-09-26 Method and apparatus for managing global chip power on a multicore system on chip
US14/038,549 2013-09-26

Publications (2)

Publication Number Publication Date
JP2015079496A JP2015079496A (ja) 2015-04-23
JP6169547B2 true JP6169547B2 (ja) 2017-07-26

Family

ID=52623702

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014192982A Active JP6169547B2 (ja) 2013-09-26 2014-09-22 チップ上のマルチコアシステムの全域チップ電力を管理する方法およびその装置

Country Status (6)

Country Link
US (5) US9671844B2 (ja)
JP (1) JP6169547B2 (ja)
KR (1) KR101701004B1 (ja)
CN (2) CN104516475B (ja)
DE (1) DE102014014301B4 (ja)
HK (1) HK1209210A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356194B2 (en) 2010-01-28 2013-01-15 Cavium, Inc. Method and apparatus for estimating overshoot power after estimating power of executing events
US9671844B2 (en) 2013-09-26 2017-06-06 Cavium, Inc. Method and apparatus for managing global chip power on a multicore system on chip
US20150220128A1 (en) * 2014-02-04 2015-08-06 Infineon Technologies Ag Method and Apparatus for Use in a Data Processing System
US9477243B2 (en) * 2014-12-22 2016-10-25 Intel Corporation System maximum current protection
US9760159B2 (en) 2015-04-08 2017-09-12 Microsoft Technology Licensing, Llc Dynamic power routing to hardware accelerators
US9798376B2 (en) * 2015-08-03 2017-10-24 Qualcomm Incorporated Power distribution network (PDN) droop/overshoot mitigation
KR102599653B1 (ko) * 2015-11-20 2023-11-08 삼성전자주식회사 냉각 알고리즘을 수행하는 집적 회로와 이를 포함하는 모바일 장치
KR102578648B1 (ko) 2016-03-14 2023-09-13 삼성전자주식회사 모뎀 데이터에 따라 코어 스위칭이 수행되는 애플리케이션 프로세서 및 이를 포함하는 시스템 온 칩
CN106598203B (zh) * 2016-12-21 2019-04-23 上海海事大学 一种数据密集环境下的单芯片多处理器***的电源管理方法
US20200142461A1 (en) * 2018-10-31 2020-05-07 Bitmain Inc. Integrated circuit with chip-level serial power domains, and circuit board having the same
CN109831144A (zh) * 2019-03-01 2019-05-31 深圳市道通智能航空技术有限公司 温度保护方法、装置和无人飞行器
CN110413414A (zh) 2019-07-29 2019-11-05 北京百度网讯科技有限公司 用于平衡负载的方法、装置、设备和计算机可读存储介质
US11287872B2 (en) * 2020-02-04 2022-03-29 Qualcomm Incorporated Multi-thread power limiting via shared limit
EP4143732A1 (en) 2020-05-01 2023-03-08 Monday.com Ltd. Digital processing systems and methods for enhanced collaborative workflow and networking systems, methods, and devices
CN113065229A (zh) * 2021-03-10 2021-07-02 电子科技大学 一种众核暗硅芯片的实时功率预算技术
US11592889B2 (en) * 2021-05-12 2023-02-28 Apple Inc. Die-to-die dynamic clock and power gating
US11698671B2 (en) * 2021-09-22 2023-07-11 Apple Inc. Peak power management for processing units
US11709529B2 (en) * 2021-10-12 2023-07-25 Hewlett Packard Enterprise Development Lp Variable enhanced processor performance
WO2023101663A1 (en) * 2021-12-01 2023-06-08 Picoai Limeted Method and apparatus of power control based on block activities

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5887611A (ja) 1981-11-20 1983-05-25 Fujitsu Ltd 可変クロツク発振器
JPH0744408A (ja) 1993-07-27 1995-02-14 Pfu Ltd 内部に温度検出機能を備えたマイクロプロセッサ
JPH1091268A (ja) 1996-09-11 1998-04-10 Sony Corp 半導体回路のクロック周波数制御方法およびデータ処理装置
JPH11232147A (ja) 1998-02-16 1999-08-27 Toshiba Corp パワーエスティメーション装置、パワーエスティメーション方法、及びパワーエスティメーションプログラムを記録した機械読み取り可能な記録媒体
US6367023B2 (en) 1998-12-23 2002-04-02 Intel Corporation Method and apparatus of measuring current, voltage, or duty cycle of a power supply to manage power consumption in a computer system
US6363490B1 (en) 1999-03-30 2002-03-26 Intel Corporation Method and apparatus for monitoring the temperature of a processor
US6564328B1 (en) 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US7516334B2 (en) 2001-03-22 2009-04-07 Sony Computer Entertainment Inc. Power management for processing modules
US6834353B2 (en) 2001-10-22 2004-12-21 International Business Machines Corporation Method and apparatus for reducing power consumption of a processing integrated circuit
US6957352B2 (en) 2002-03-15 2005-10-18 Intel Corporation Processor temperature control interface
US7086058B2 (en) 2002-06-06 2006-08-01 International Business Machines Corporation Method and apparatus to eliminate processor core hot spots
US7051306B2 (en) * 2003-05-07 2006-05-23 Mosaid Technologies Corporation Managing power on integrated circuits using power islands
US8037445B2 (en) 2003-08-20 2011-10-11 Hewlett-Packard Development Company, L.P. System for and method of controlling a VLSI environment
JP2005295768A (ja) 2004-04-05 2005-10-20 Yazaki Corp 電源分配システム
US7231474B1 (en) 2004-06-01 2007-06-12 Advanced Micro Devices, Inc. Serial interface having a read temperature command
JP3805344B2 (ja) 2004-06-22 2006-08-02 株式会社ソニー・コンピュータエンタテインメント プロセッサ、情報処理装置およびプロセッサの制御方法
WO2006024325A1 (en) * 2004-08-31 2006-03-09 Freescale Semiconductor, Inc. Method for estimating power consumption
US7437581B2 (en) 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US7878016B2 (en) 2004-12-30 2011-02-01 Intel Corporation Device and method for on-die temperature measurement
US7444526B2 (en) 2005-06-16 2008-10-28 International Business Machines Corporation Performance conserving method for reducing power consumption in a server system
JP2007122657A (ja) 2005-10-31 2007-05-17 Toshiba Corp 消費電流制御システム
US7721128B2 (en) 2005-11-29 2010-05-18 International Business Machines Corporation Implementation of thermal throttling logic
US7421601B2 (en) 2006-02-17 2008-09-02 International Business Machines Corporation Method and system for controlling power in a chip through a power-performance monitor and control unit
JP2007233782A (ja) 2006-03-02 2007-09-13 Lenovo Singapore Pte Ltd 発熱量の制御方法およびコンピュータ
US20070260894A1 (en) 2006-05-03 2007-11-08 Aguilar Maximino Jr Optimizing thermal performance using feed-back directed optimization
US8037893B2 (en) 2006-05-03 2011-10-18 International Business Machines Corporation Optimizing thermal performance using thermal flow analysis
CN100517176C (zh) 2006-06-21 2009-07-22 国际商业机器公司 实现热调节逻辑的数据处理***和方法
US7584369B2 (en) 2006-07-26 2009-09-01 International Business Machines Corporation Method and apparatus for monitoring and controlling heat generation in a multi-core processor
US8122265B2 (en) 2006-12-29 2012-02-21 Intel Corporation Power management using adaptive thermal throttling
US8117478B2 (en) 2006-12-29 2012-02-14 Intel Corporation Optimizing power usage by processor cores based on architectural events
JP2009031689A (ja) 2007-07-30 2009-02-12 Ricoh Co Ltd 温度監視装置及び温度監視方法
JP4395800B2 (ja) 2007-09-18 2010-01-13 日本電気株式会社 電力管理システムおよび電力管理方法
JP2009129137A (ja) 2007-11-22 2009-06-11 Hitachi High-Technologies Corp マイクロプロセッサの温度監視制御装置、およびマイクロプロセッサの温度監視制御方法
US7949889B2 (en) 2008-01-07 2011-05-24 Apple Inc. Forced idle of a data processing 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
JP5056573B2 (ja) * 2008-05-09 2012-10-24 富士通株式会社 設計支援プログラム、設計支援装置、および設計支援方法
US8402290B2 (en) 2008-10-31 2013-03-19 Intel Corporation Power management for multiple processor cores
US8880922B2 (en) 2009-03-05 2014-11-04 Hitachi, Ltd. Computer and power management system for computer
US8775830B2 (en) * 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
KR101155202B1 (ko) * 2009-12-24 2012-06-13 포항공과대학교 산학협력단 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템
US8356194B2 (en) 2010-01-28 2013-01-15 Cavium, Inc. Method and apparatus for estimating overshoot power after estimating power of executing events
US20120144215A1 (en) * 2010-12-03 2012-06-07 Advanced Micro Devices, Inc. Maximum current limiting method and apparatus
US9250682B2 (en) * 2012-12-31 2016-02-02 Intel Corporation Distributed power management for multi-core processors
US9671844B2 (en) 2013-09-26 2017-06-06 Cavium, Inc. Method and apparatus for managing global chip power on a multicore system on chip

Also Published As

Publication number Publication date
US20150089251A1 (en) 2015-03-26
DE102014014301A1 (de) 2015-03-26
US9671844B2 (en) 2017-06-06
CN104516475B (zh) 2017-07-21
US20170228007A1 (en) 2017-08-10
US11709534B2 (en) 2023-07-25
US10983576B2 (en) 2021-04-20
CN107272876B (zh) 2020-09-22
KR20150034650A (ko) 2015-04-03
HK1209210A1 (en) 2016-03-24
KR101701004B1 (ko) 2017-02-13
DE102014014301B4 (de) 2018-08-16
CN104516475A (zh) 2015-04-15
JP2015079496A (ja) 2015-04-23
US20200301491A1 (en) 2020-09-24
US10152102B2 (en) 2018-12-11
US20210200287A1 (en) 2021-07-01
US10732684B2 (en) 2020-08-04
CN107272876A (zh) 2017-10-20
US20190107874A1 (en) 2019-04-11

Similar Documents

Publication Publication Date Title
JP6169547B2 (ja) チップ上のマルチコアシステムの全域チップ電力を管理する方法およびその装置
KR102210355B1 (ko) 적응적 전력 제어 루프
US8261112B2 (en) Optimizing power consumption by tracking how program runtime performance metrics respond to changes in operating frequency
JP5282349B2 (ja) マルチプロセッシングシステム
JP4490298B2 (ja) プロセッサ電力制御装置及びプロセッサ電力制御方法
US10599207B2 (en) Management of core power state transition in a microprocessor
US8776069B2 (en) Energy and performance optimizing job scheduling
TW201426279A (zh) 微處理器、操作微處理器的方法以及電腦程式產品
EP2808789A2 (en) Multi-core apparatus and job scheduling method thereof
CN110941325A (zh) 处理器的调频方法及装置、计算设备
JP2004038291A (ja) クロック周波数の制御方法および電子機器
JP2017211928A (ja) 分散処理制御システム及び分散処理制御方法
JP2003271401A (ja) 負荷監視機能を有するマイクロプロセッサ
JP2007172322A (ja) 分散処理型マルチプロセッサシステム、制御方法、マルチプロセッサ割り込み制御装置及びプログラム
CN115289638A (zh) 一种空调频率控制方法、装置、设备和存储介质
KR102613979B1 (ko) 멀티 코어 프로세서 전력 관리 장치 및 방법
JPH11110063A (ja) コンピュータシステム
WO2021056277A1 (zh) 一种执行程序的方法
CN116502571A (zh) 一种待机零功耗***的设计方法
JP2018163528A (ja) 車両制御装置
JP2011155446A (ja) データ送信実行制御装置および方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160705

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160817

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170509

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170530

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170628

R150 Certificate of patent or registration of utility model

Ref document number: 6169547

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250