図面 (/)

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

出願人 カビウム・エルエルシー
発明者 カールソン・ディビッド・エイケスラー・リチャード・イー
出願日 2014年9月22日 (6年11ヶ月経過) 出願番号 2014-192982
公開日 2015年4月23日 (6年4ヶ月経過) 公開番号 2015-079496
状態 特許登録済
技術分野 電源
主要キーワード 累積差 電力消費値 測定温度値 累積差分 累積電力 シリアル構成 累積合計 固定時間間隔
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2015年4月23日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (7)

課題

チップ上のマルチコアシステムに関する全域チップ電力を管理する方法および装置を提供する。

解決手段

マルチコアプロセッサチップにおける電力を制御する方法および対応する装置は、マルチコアプロセッサチップ内部のコントローラにおいて、マルチコアプロセッサチップ内部の複数のコアプロセッサの1つ以上の電力推定値蓄積することを含む。全域電力閾値は、累積電力推定値に基づいて決定され、累積電力推定値は、蓄積された1つ以上の電力推定値の少なくとも一部に基づいて決定される。コントローラにより、各コアプロセッサにおける電力消費が、決定された全域電力閾値に基づいて制御される。コントローラは、コアプロセッサにおける電力消費を直接制御してもよく、または、コアプロセッサにそれを行うよう命令してもよい。

概要

背景

コンピュータプロセッサ電力消費は通常、プロセッサまたは相当するチップ過熱を防ぐように制御されている。言い換えれば、プロセッサ内部の電力消費を制御することによって、対応する温度も抑えられる。

概要

チップ上のマルチコアシステムに関する全域チップ電力を管理する方法および装置を提供する。マルチコアプロセッサチップにおける電力を制御する方法および対応する装置は、マルチコアプロセッサチップ内部のコントローラにおいて、マルチコアプロセッサチップ内部の複数のコアプロセッサの1つ以上の電力推定値蓄積することを含む。全域電力閾値は、累積電力推定値に基づいて決定され、累積電力推定値は、蓄積された1つ以上の電力推定値の少なくとも一部に基づいて決定される。コントローラにより、各コアプロセッサにおける電力消費が、決定された全域電力閾値に基づいて制御される。コントローラは、コアプロセッサにおける電力消費を直接制御してもよく、または、コアプロセッサにそれを行うよう命令してもよい。

目的

コアプロセッサにおいて局部電力消費を低減させる別の方法は、命令の発行を停止することである

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項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に記載のマルチコアプロセッサチップ。

背景技術

0001

コンピュータプロセッサ電力消費は通常、プロセッサまたは相当するチップ過熱を防ぐように制御されている。言い換えれば、プロセッサ内部の電力消費を制御することによって、対応する温度も抑えられる。

発明が解決しようとする課題

0002

マルチコアプロセッサ装置における電力管理は通常、各コアプロセッサにおいて局所的に実行される。性能を向上させ、効率を高めるために、かかる装置に関する全域チップ電力を管理する能力に対するニーズが存在する。

課題を解決するための手段

0003

少なくとも1つの例示的実施形態によれば、マルチコアプロセッサチップにおける電力消費を制御する全域電力管理手法は、マルチコアプロセッサチップ内部のコントローラにおいて、マルチコアプロセッサチップ内部の複数のコアプロセッサの1つ以上の電力推定値蓄積することを含む。全域電力閾値は、累積電力推定値に基づいて決定され、累積電力推定値は、少なくとも一部において、蓄積された1つ以上の電力推定値に基づいて決定される。コントローラにより、複数のコアプロセッサのそれぞれにおける電力消費が、決定された全域電力閾値(全体電力閾値)に基づいて制御される。

0004

1つ以上の電力推定値を蓄積することにおいて、コントローラは、複数のコアプロセッサによる合計電力消費を表す累積電力推定値を示す信号値を受信してもよい。複数のコアプロセッサは、シリアル構成を形成するように互いに連結されてもよく、ここで、各コアプロセッサにおいて、局部電力消費推定値が、累積電力推定値を表す値に加算され、次のコアプロセッサに転送される。最後のコアプロセッサにおいて、累積電力推定値の最終的な値は、コントローラに転送される。代替として、複数のコアプロセッサは、2つ以上のシリアル構成を形成するように連結されてもよく、この場合、コントローラは、2つ以上の電力推定値を受信する。更に別の例において、各コアプロセッサは、その局部電力消費推定値を直接コントローラに送信してもよい。

0005

コントローラは、読取コマンドをコントローラから複数のコアプロセッサのうちの少なくとも1つのコアプロセッサへ送信するように構成されてもよい。読取コマンドは、読取操作の指示とペイロード値とを含んでいてもよい。読取コマンドを受信するコアプロセッサは、局部電力推定値をペイロード値に加算し、読取コマンドを更新されたペイロード値と共に、次のコアプロセッサまたはコントローラに転送する。ペイロード値は、1つ以上のコアプロセッサの電力推定値の累積合計を表している。

0006

全域電力閾値を決定することにおいて、コントローラは、決定された累積電力推定値と対応する経時平均とが、両方とも所望の目標電力よりも小さいことを判断すると、全域電力閾値を表すパラメータ値を増分し、決定された累積電力推定値が所望の目標電力よりも大きいことを判断すると、全域電力閾値を表すパラメータ値を減分するように構成されている。所望の目標電力は、マルチコアプロセッサチップのユーザまたはメーカによって設定される定数であってもよい。代替として、所望の目標電力は、少なくとも部分的に、マルチコアプロセッサチップの測定温度値に基づいて、動的に設定されてもよい。

0007

また、マルチコアプロセッサチップは1つ以上のコプロセッサブロックを含んでいてもよい。1つ以上のコプロセッサブロックの電力消費を説明するために、コントローラは、1つ以上のコプロセッサブロックのクロック活動(クロック動作(clock activity))の1つ以上の表現(表示(representation))を蓄積し、少なくとも部分的に、蓄積された1つ以上の表現に基づいて、1つ以上のコプロセッサブロックの1つ以上の電力推定値を決定するように構成され、マルチコアプロセッサチップに対する累積電力推定値を決定することは更に、1つ以上のコプロセッサブロックの1つ以上の電力推定値に基づいている。1つ以上のコプロセッサブロックの1つ以上の電力推定値を決定することにおいて、コントローラは、例えば、クロック活動の各表現の電力消費を決定するようルックアップテーブルを採用してもよい。1つ以上のコプロセッサブロックのクロック活動の1つ以上の表現は、各コプロセッサブロックにおいて、同じコプロセッサブロックのクロック活動のサイクルカウントし、カウントされたクロック活動のサイクルの所定数を、コプロセッサブロックのクロック活動の表現内部で単一のシンボルマッピングすることによって、コプロセッサブロックのクロック活動の表現を生成することによって形成されてもよい。コプロセッサブロックのクロック活動の表現は次いで、コントローラによって受信される。

0008

各コアプロセッサにおける電力消費を制御することにおいて、コントローラは、マスタークロック周波数を調整し、従って、複数のコアプロセッサのクロックの周波数に影響を及ぼすことによって、コアプロセッサにおける電力消費を制御してもよい。代替として、コントローラは、すべてのコアプロセッサに、それらの局部電力消費を制御するよう指示する命令を送信する。かかるコマンドは、全域電力閾値の指示を含んでいてもよい。全域電力閾値を受信すると、各コアプロセッサは、全域電力閾値を局部電力閾値と比較して、コアプロセッサによって使用される電力限界を決定する。

0009

前記は、同様の参照記号が異なる図を通して同じ部分を言及している添付図面に示すように、本発明の実施例の以下のより詳細な説明から明らかとなるであろう。図面は、本発明の実施形態を示すことに関して、必ずしも縮尺、強調するものではなく、むしろ配置されたものである。

図面の簡単な説明

0010

少なくとも1つの例示的実施形態によるマルチコアプロセッサチップを示すブロック図である。
少なくとも1つの例示的実施形態によるマルチコアプロセッサチップにおける電力を制御する方法を示すフローチャートである。
複数のコアプロセッサからの電力推定値を蓄積するシリアル構成例を示すブロック図である。
複数のコアプロセッサからの電力推定値を蓄積するシリアル構成例を示すブロック図である。
複数のコプロセッサブロックからの蓄積電力推定用の構成を示すブロック図である。
少なくとも1つの実施例によるコプロセッサブロッククロックのクロック信号および対応する修正クロック信号の例を示している。

実施例

0011

本発明の実施例の説明は、以下の通りである。

0012

マルチコアプロセッサチップ用の典型的な電力管理技法は、通常、対応するコアプロセッサに対して局所的であり、マルチコアプロセッサチップに対して全域で実行されない。各コアプロセッサにおいて局所的に電力管理を適用する場合、マルチコアプロセッサチップに対する電力消費量は、各コアプロセッサに対する電力量を算出するようコアプロセッサの対応数で除算される。次いで、各コアプロセッサは、各コアプロセッサに対する算出された電力量に基づき、他のコアプロセッサとは独立してその電力を管理する。このため、所定のコアプロセッサの動的電力は、制限されるかもしれない。また、各コアプロセッサにおいて局所的に電力管理を適用することにより、性能劣化を招くおそれがある。例えば、第1のコアプロセッサが、それに利用可能な電力量の僅かな部分だけ使用している場合、第2のコアプロセッサは、各コアプロセッサに対して算出された電力量により許可されているよりも多くの電力を必要とするかもしれない。このように、電力管理を局所的に実行する場合、いくつかのタスクは、実行されるまで長い時間がかかるかもしれず、その結果、マルチコアプロセッサチップにおいてより多くの電力を消費するおそれがある。以下において、チップレベルにおける全域の電力管理を適用する実施形態を説明する。

0013

図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号明細書に記載されている実施形態に従って実行されてもよい。

0014

マルチコアプロセッサチップ100は更に、1つ以上のコプロセッサブロック、例えば、130−1〜130−Mを含んでいてもよい。少なくとも1つの実施例によれば、コプロセッサブロック、例えば、130−1〜130−Mは、入出力(I/O)インターフェース操作および/または他の操作を実行して、複数のコアプロセッサ、例えば、120−1〜120−Nの機能を補うよう構成されている。中央コントローラ110は、マルチコアプロセッサチップ100の全域電力推定値を決定する場合、コプロセッサブロック、例えば、130−1〜130−Mによって消費される電力を考慮するように構成されている。

0015

図2は、少なくとも1つの実施例によるマルチコアプロセッサチップ100における電力を制御する方法を示すフローチャートである。ブロック210において、複数のコアプロセッサ、例えば、120−1〜120−Nの1つ以上の電力推定値が、中央コントローラ110によって蓄積される。中央コントローラ110は更に、ブロック220において、マルチコアプロセッサチップ100がるコプロセッサブロックを含む場合に、1つ以上のコプロセッサブロック、例えば、130−1〜130−Mの電力推定値を蓄積する。

0016

ブロック230において、中央コントローラ110は、蓄積した電力推定値を使用して、固定時間間隔にわたってマルチコアプロセッサチップ100によって消費される累積電力の推定値を決定する。例えば、中央コントローラ110は、複数のコアプロセッサ、例えば、120−1〜120−Nの蓄積電力推定値、および、該当する場合は、1つ以上のコプロセッサブロック、例えば、130−1〜130−Mの蓄積電力推定値を合計してもよい。中央コントローラは、代替として、または追加して、累積電力推定値を決定することに他の演算処理を実行してもよい。ブロック230におけるプロセスは任意選択であってもよい。例えば、中央コントローラは、複数のコアプロセッサ、例えば、120−1〜120−Nによって消費される累積電力を示す単一の電力推定値を蓄積してもよい。かかる場合において、蓄積された単一の電力推定値は、累積電力推定値として使用されてもよい。

0017

ブロック240において、全域電力閾値が、中央コントローラ110によって決定される。全域電力閾値は、累積電力推定値に基づいて決定される。累積電力推定値の他に、目標電力値が更に、全域電力閾値を決定することに使用されてもよい。全域電力閾値は、固定時間間隔にわたっていずれのコアプロセッサも超過しない全域電力消費限界を表している。目標電力値は、固定時間間隔にわたるマルチコアプロセッサチップ100に対する目標電力消費レベルを示す。

0018

少なくとも1つの態様によれば、中央コントローラ110は、累積差分パラメータと全域消費閾値パラメータとを維持している。累積差分パラメータ、例えば、Cum_Diffは、決定した累積電力推定値(例えば、Cum_Power_Estimate)と、目標電力(例えば、Target_Power)との間の差の合計または平均を表している。例えば、各時間間隔において、累積差分パラメータは、以下のように更新される。
Cum_Diff=Cum_Diff+(Cum_Power_Estimate−Target_power)。

0019

Cum_Diffパラメータは、複数のコアプロセッサ、例えば、120−1〜120−Nを所定の時間間隔の間、ビジー状態に維持される程の作業負荷があれば、ゼロ付近になると予想される。その期間、作業負荷が小さければ、Cum_Diffパラメータは、パラメータが飽和する負の最小値に到達するまで、マイナスとなる。負の最小値、すなわち飽和値は、例えば、マルチコアプロセッサチップ100が数ミリ秒アイドル状態であることを示す熱定数に基づいて定義されてもよい。言い換えれば、飽和値により、マルチコアプロセッサチップ100が、その短時間の関連する履歴を記憶することが可能となる。代替として、累積電力差は、加重和として定義されてもよい。

0020

全域消費閾値パラメータ、例えば、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である。
すなわち、全域電力閾値は、累積電力推定値が目標電力未満かつ累積差がゼロ未満である場合に限り、増分される。また、全域電力閾値は、累積電力推定値が目標電力を超える場合に限り、減分される。

0021

例示の態様によれば、目標電力値は、マルチコアプロセッサチップ100のメーカによって定数として設定されてもよい。代替として、目標電力値は、マルチコアプロセッサチップ100のソフトウェアによって設定可能であってもよい。更に別の態様によれば、目標電力は、例えば、温度センサによって提供される情報に基づいて動的であってもよい。例えば、目標電力は、マルチコアプロセッサチップ100の記録された温度に基づいて変化してもよい。

0022

一旦、全域消費閾値、例えば、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のクロック周波数を調整してもよい。

0023

少なくとも1つの例示的実施形態によれば、マルチコアプロセッサチップ100に対して決定された累積電力推定値が目標電力を超えない場合、中央コントローラ110は、コアプロセッサ、例えば、120−1〜120−Nに、それらが自身を抑える必要が無いこと、すなわち、それらの対応する周波数を低減する必要が無いことを示す信号を送信する。しかし、マルチコアプロセッサチップ100に対して決定された累積電力推定値が目標電力を超え、かつ累積差がゼロである場合、中央コントローラ110は、コアプロセッサ、例えば、120−1〜120−Nにそれら自身を抑えるよう指示する信号を送信する。コアプロセッサ、例えば、120−1〜120−Nにそれら自身を抑えるよう指示するか否かに関わらず、送信される信号は、制御操作の指示および全域消費閾値を担持するペイロードを含んでいてもよい。従って、全域消費閾値を局部電力限界と比較することによって、各コアプロセッサは、スロットリングを実行するか否かを決定する。言い換えれば、送信される信号は、読取コマンドを表す信号と類似であってもよい。ただし、操作指示が読取操作の代わりに制御操作を示し、ペイロードが電力推定値の代わりに全域消費閾値を表す点が異なる。例えば、読取コマンドは0で示されてもよく、操作コマンドは1で示されてもよい。

0024

別の例示的実施形態によれば、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」ワイヤを適切に設定する。

0025

少なくとも1つの例示的実施形態によれば、コアプロセッサにそれらの対応する電力消費を制御するように指示することが、固定時間間隔の他の半分以内で生じている間、電力推定値の蓄積は、固定時間間隔の半分以内で実行される。例えば、固定時間間隔が、256のクロックサイクルと等しい場合、中央コントローラ110によって電力推定値を蓄積することは、128クロックサイクル内で実行され、コアプロセッサ、例えば、120−1〜120−Nにそれらの対応する電力消費を制御するように指示することは、その後の128クロックサイクルを必要とする。中央コントローラ110による全域消費閾値の決定は、電力推定値を蓄積することの一部、または、コアプロセッサ、例えば、120−1〜120−Nにそれらの対応する電力消費を制御するように指示することの一部として考えられてもよい。

0026

複数のコアプロセッサ、例えば、120−1〜120−Nのそれぞれにおいて、信号またはコマンドが、局部電力消費を低減させる命令と共に受信されると、適切な動作が、コアプロセッサによって行われる。電力消費を低減させる1つの方法は、局部クロック周波数を低減することである。かかる取り組みは、各コアプロセッサがそれ自身の位相同期ループPLL)を有している場合に適用されてもよい。コアプロセッサにおいて局部電力消費を低減させる別の方法は、命令の発行を停止することである。例えば、コアプロセッサは、電力消費が、局部電力限界または中央コントローラ110から受信する全域消費閾値を超えるまで、固定時間間隔内で命令の処理を続け、次いで、固定時間間隔の終了まで命令の発行を停止してもよい。

0027

図3Aおよび3Bは、複数のコアプロセッサ、例えば、120−1〜120−Nからの電力推定値を蓄積するシリアル構成例を示すブロック図である。図3Aは単一のシリアル構成を示し、この構成に従って、中央コントローラがコアプロセッサのうちの1つ、例えば、120−1に読取コマンドを送信する。例示の態様によれば、読取コマンドは、読取操作の指示と中央コントローラ110に返信される電力推定値を表すペイロードとを含む。第1のコアプロセッサ、例えば、120−1は、中央コントローラ110から読取コマンドを受信し、その推定された電力消費値を読取コマンドのペイロードに組み込む。ペイロード初期値がゼロの場合は、推定電力消費値は、加法演算により組み込まれてもよい。読取コマンドは次いで、次のコアプロセッサ、例えば、120−2に転送される。

0028

コアプロセッサ120−2は、その推定電力消費値をペイロード値に加算し、読取コマンドを次のコアプロセッサ、例えば、120−3に転送するように構成されている。局所的に推定される電力消費値のペイロード値への加算は、各コアプロセッサ120−2〜120−Nにおいて繰り返される。最後のコアプロセッサ、例えば、120−Nにおいて、最終加算結果が、中央コントローラ110に転送される。中央コントローラに転送される値は、すべてのコアプロセッサ、例えば、120−1〜120−Nに対する累積電力推定値として使用されてもよく、または、追加の演算処理が適用されてもよい。コアプロセッサにおいて実行される加法演算は、結果として、中央コントローラ110への最終結果の到達の時間遅延を生じる。

0029

一例示的実施形態によれば、かかる時間遅延は、加算の適用およびビット単位の転送により低減されてもよい。言い換えれば、最下位ビット(LSB)から開始して、一旦、加算が実行されると、加算結果ビットが転送されている間、キャリーオーバー値が保存される。次いで、キャリーオーバー値と、局所的に推定された電力消費値およびペイロード値の次のLSBとが加算される。新規のキャリーオーバー値は保存され、加算結果ビットは、次のコアプロセッサに転送される。次のコアプロセッサにおいて、同様の操作が行われる。すなわち、ペイロードのビットが受信され次第、対応する加算が実行され、加算結果ビットが、別のコアプロセッサに転送される。このため、時間遅延は、著しく低減される。

0030

図3Bにおいて、コアプロセッサは、4つのシリアル構成、例えば、120−1〜120−k1、120−(k1+1)〜120−k2、120−(k2+1)〜120−k3、および、120−(k3+1)〜120−Nに編成される。ビット単位の加算および転送は、各シリアル構成内部で適用されてもよい。中央コントローラ110は、4つの電力推定値を、例えば、コアプロセッサ120−k1、120−k2、120−k3、および120−Nから受信する。4つの電力推定値のそれぞれは、該当するシリアル構成のための累積電力推定値を表している。累積電力推定値を演算するために、中央コントローラ110は、例えば、受信した4つの電力推定値を合計する。中央コントローラ110は、すべてのコアプロセッサ、例えば、120−1〜120−Nに対する累積電力推定値を決定することに他の演算処理を実行してもよい。

0031

図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全体の全域累積電力消費推定値を生成する。

0032

図5は、少なくとも1つの例示的実施形態によるコプロセッサブロッククロックのクロック信号510および対応する修正クロック信号520の例を示している。修正クロック信号520は、中央コントローラ110において、コプロセッサブロック、例えば、130−1、130−2、・・・、または130−Mから受信される。クロック信号510は通常、中央コントローラ110よりも高い周波数を有している。このため、クロック信号510が中央コントローラ110に送信される場合、中央コントローラは、対応する電力を推定するために、クロック信号510を適切にサンプリングしないかもしれない。クロック信号510は、コプロセッサブロック、例えば、130−1〜130−Mの異なるクロック信号510を非同期にするアイドル状態511の時間を含んでいてもよい。

0033

一例示的実施形態によれば、修正クロック信号520は、クロック信号510におけるクロックサイクル数を修正クロック信号520内の単一サイクルに減少することによって生成される。例えば、クロック信号510内の32クロックサイクルは、修正クロック信号520内の単一サイクルに相当する。このように、中央コントローラ110は、修正クロック信号520を適切にサンプリングすることができる。

0034

各コプロセッサブロック、例えば、130−1、130−2、・・・、または130−Mは、同じコプロセッサブロック内のクロックのクロック活動のサイクルのカウントを提供するように構成されている。クロックサイクルのカウントに基づいて、クロック活動の表現、例えば、修正クロック信号520は、カウントされたクロック活動のサイクルの既定数、例えば、32を、クロック活動の生成された表現内部で単一のシンボルにマッピングすることによって生成される。生成した表現は次いで、中央コントローラ110によって受信される。中央コントローラ110は、例えば、生成された各クロック活動の表現の電力消費を決定するようルックアップテーブルを採用してもよい。マルチコアプロセッサチップ100全体に対する累積電力消費推定値の決定において、中央コントローラ110は、複数のコアプロセッサ、例えば、120−1〜120−Nの蓄積電力消費推定値、ならびに、コプロセッサブロック、例えば、130−1〜130−Mに該当する電力推定値を合計してもよい。

0035

本発明を、その実施形態に関して特に示し、説明してきたが、形態および詳細における種々の変更を、添付の特許請求の範囲によって包含される本発明の適用範囲から逸脱することなく行ってもよいことは、当該技術に精通する者によって理解されよう。

0036

100マルチコアプロセッサチップ
110中央コントローラ
120コアプロセッサ
130コプロセッサブロック
510クロック信号
511アイドル状態
520修正クロック信号

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ