JPWO2011074059A1 - 演算処理装置、情報処理装置及びその制御方法 - Google Patents
演算処理装置、情報処理装置及びその制御方法 Download PDFInfo
- Publication number
- JPWO2011074059A1 JPWO2011074059A1 JP2011545869A JP2011545869A JPWO2011074059A1 JP WO2011074059 A1 JPWO2011074059 A1 JP WO2011074059A1 JP 2011545869 A JP2011545869 A JP 2011545869A JP 2011545869 A JP2011545869 A JP 2011545869A JP WO2011074059 A1 JPWO2011074059 A1 JP WO2011074059A1
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- value
- current consumption
- current
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
Abstract
命令解読部によって解読された命令を演算部に発行するとともに、第1の所定期間に発行した命令によって演算部が消費した消費電流値と、第2の所定期間に発行可能な命令によって演算部が消費する電流の消費電流予定値とを算出し、消費電流値に対する消費電流予定値の変化量が所定の制限値を超える場合、第2の所定期間において一部の命令の発行を抑止する。
Description
本発明は、演算処理装置、情報処理装置及びその制御方法に関する。
プロセッサの技術として、以下の方法が知られている。すなわち、命令ごとに定義された電流消費量に相関のある値を用いて各クロックサイクルでの消費電流を予測し、その変化率が所定の値以上であれば変化量が小さくなるように命令を入れ替え、もしくはダミー命令に置き換える方法である。
"The SPARC Architecture Manual",version 9,SPARC International,Inc.,Santa Clara, California、SAV09R1459912
簡易な構成により確実に消費電流の変化を抑制し得る演算処理装置を提供することが目的である。
命令解読部によって解読された命令を演算部に発行するとともに、第1の所定期間に発行した命令によって演算部が消費した消費電流値と、第2の所定期間に発行可能な命令によって演算部が消費する電流の消費電流予定値とを算出し、消費電流値に対する消費電流予定値の変化量が所定の制限値を超える場合、第2の所定期間において一部の命令の発行を抑止する。
上記構成により、簡易な構成により確実に演算処理装置における消費電流の変化を抑制し得る構成を提供することが可能である。
以下に実施例について説明する。
実施例では、演算処理装置としての、半導体集積回路であるプロセッサにおいて、命令発行数、発行頻度を制御することにより電源ノイズの抑制を図る。尚、演算処理装置の具体例として、CPU(Central Processing Unit)、GPU(Graphical Processing Unit)、DSP(Digital Signal Processor)等が挙げられる。
プロセッサの低消費電力化技術は、情報通信機器の低消費電力化のために重要な技術である。プロセッサの低消費電力化においては、処理の実行に必要なレジスタにのみクロックを供給するクロックゲーティングや、処理の実行に必要なRAM(Random Access Memory)のみイネーブルにするなど、回路の動作率を抑える手法が有効である。しかしながらこれらの手法では、処理を実行している時と実行していない時との間の消費電流の差による電源ノイズの発生を防止するため、電流時間変化率であるdI/dtを抑制することが望まれる。
LSI(Large Scale Integrated circuit)内部の電源ノイズの低減のための手法として、LSI内部に容量成分を有するキャパシタセル又はデカップリング容量セルなどを搭載し、あるいはパッケージやシステムボード上にもデカップリングキャパシタを搭載する方法がある。しかしながらデカップリング容量セルを用いるとチップ面積の増加やリーク電流の増加などを引き起こすことが考えられる。
また電源ノイズを低減するための回路制御方法として、回路の動作開始時にクロック周波数を低く抑えることで電流時間変化率dI/dtを低く抑えるという手法がある。さらには、ソフトウェアのコンパイル段階で命令の消費電流を予測して、ソフトウェアで命令の発行を調整する手法がある。
しかしながら上記回路の動作開始時にクロック周波数を低く抑えて電流時間変化率dI/dtを低く抑える方法では、サイクルベースで電流変化量をモニタするのではなく、所定の期間をかけて段階的にクロック周波数を変化させながらクロック信号を供給する。このためクロック周波数に対する大きなマージンを入れないと大きな電流変化による電源ノイズに対応できない場合が考えられる。また小さいノイズに対し過剰にクロック周波数を遅らせる事態も想定される。すなわちこの方法ではノイズに応じてクロック周波数を調整するものではないため、制御精度が低いと考えられる。
また上記ソフトウェアのコンパイル段階で命令の消費電流を予測して、命令の順序を変える等、ソフトウェアで命令の発行を調整する方法では、ソフトウェアでスケジューリングするためオブジェクトコードが大きくなると考えられる。またサイクルベースで命令の依存性を全て把握できるコンパイラが必要になることから実現が困難と考えられる。またパイプライン・インターロックなどの場合においてソフトウェアでは対応できない場合が想定される。ここでパイプライン・インターロック(pipeline interlock)とは,ハザード(hazard)を検出して回避する機構である。データ依存に係わるハザード(data dependent hazard)は、複数の命令が入り乱れて処理されるために,演算結果の書き込みや読み出しが機械語のプログラマが意図した順序とは前後してしまい,期待と異なった結果になってしまう状況をいう。ハザードを検出してパイプラインを停止することをパイプライン・インターロックという。パイプライン・インターロックでは命令の実行が停止されるため消費電流が減少することになり、このような消費電流の減少を緩和するために、"ダミー命令のみを実行するダミー回路"を使用する。ここで「ダミー命令」とは後続の実行命令に影響を与えない命令であり、「ダミー回路」は「ダミー命令」を実行して電流を消費し、消費電流の減少を緩和する回路である。特に大規模なシステムではパイプライン・インターロックによる消費電流の減少に対応するミー回路の規模が大きくなり、チップ面積の増加、消費電力等の増加等が考えられる。
次に以下に説明する実施例との比較のため、演算処理装置の参考例について説明する。図1は演算処理装置の参考例としてのプロセッサの内部構成を示すブロック図である。図1のプロセッサは例えばSPARC(Scalable Processor ARChitecture)プロセッサであり、命令キャッシュ(命令保持部)11,デコーダ(命令解読部)12,命令発行制御部13および演算機構14を有する。演算機構14は演算ユニット(演算部)14A,14B,14C,14Dを含む。
命令キャッシュ11はプログラムを保存するキャッシュメモリである。デコーダ12はプログラムに含まれる命令をデコード(解読)する。命令発行制御部13は命令を演算ユニット14A,14B,14C,14Dに対し発行する。演算ユニット(ALU,Arithmetic and Logic Unit)14A,14B,14C,14Dは、発行された命令を実行する。また複数の演算ユニット14A,14B,14C,14Dが夫々演算機能を分担する。例えば演算ユニット14Aは固定小数点の加減算、演算ユニット14Bは固定小数点の積算、演算ユニット14Cは浮動小数点の加減算、演算ユニット14Dは浮動小数点の積算を夫々実行するものとすることができる。なおこの例に限られることはなく、例えば複数の演算ユニットのうちの2以上の演算ユニットは同一の演算機能を実行するものとしてもよい。以下に当該プロセッサにおける動作のうち、特にプログラムの命令の発行に係る動作について説明する。
デコーダ12は命令キャッシュ11から命令をフェッチ(取得)してデコードし、命令発行制御部13に渡す。命令発行制御部13は、デコーダから渡された命令の演算ユニット14A〜14Dへの発行を行う。より具体的には、命令発行制御部13はデコーダ12から渡された命令を内部レジスタ(図示を省略)に保持し、発行可能な命令を保持している内部レジスタ内のエントリを識別する。命令発行制御部13は識別したエントリに保持された命令から発行する命令を選択する。実際に発行する命令の選択は、エントリに保持された命令を実行可能な演算ユニット毎に行う。その際、同一の演算ユニットが実行可能な命令間には優先順位をつけ、当該優先順位の順番で、発行する命令を選択する。命令発行制御部13は選択した命令を、対応する演算ユニットに対して発行し、当該命令の発行後は対応するレジスタのエントリを解放する。
上記参考例のプロセッサでは、命令発行制御部13が命令を発行する際に、演算ユニット14A,14B,14C,14Dが命令を実行する際の消費電流の変化を特に考慮しないため、電源ノイズが発生する可能性がある。
実施例は電源ノイズの発生を防止する構成を有する。実施例によるプロセッサによれば、過去何サイクルかの間に発行された命令によって消費された電流の見積り値を記憶する。ここで上記見積り値はプロセッサ全体が消費する電流の見積り値である。そして記憶した電流値に対する、現サイクルで発行可能な命令から概算される消費電流値の増加量を計算する。そして計算された増加量がプロセッサの許容電流変化量(制限値と称する)を超えるかどうかを判定し、制限値を超える場合には、制限値を超えないように命令の発行を制限する。この制限値は、ノイズ解析シミュレーションの結果から、あるいは測定値から調べて得ることができる。
あるいは実施例によるプロセッサでは、過去何サイクルかの間に発行された命令によって消費された電流の見積り値を記憶し、当該電流値に対する、現サイクルで発行可能な命令から概算される消費電流値の減少量を計算する。計算された減少量がプロセッサの制限値を超えるかどうかを判定し、超える場合に制限値を超えないようにダミー命令を発行する。
ダミー命令として、例えば、SPARCのアーキテクチャの場合、Global register zero(g0)を利用し、g0を演算結果の格納レジスタであるデスティネーションとする命令等、プログラムの実行に影響が及ばない既存命令を適用することができる。あるいは、既存の回路を動かすだけでプロセッサの状態を変更しないような新規のダミー命令を定義して適用してもよい。ダミー命令は、制限値を越えない限り、できるだけ消費電流を大きく変化させる命令であることが望ましい。ここでGlobal register zero(g0)とは、読み出すと常に"0"が得られ、書き込んでも値が変わらないグローバルレジスタをいう。
あるいは実施例による命令発行装置では、過去何サイクルかの間に発行された命令もしくはそれらの命令によって消費される電流の見積り値を記憶する。そして当該電流値に対する、現サイクルで発行可能な命令から概算される電流値の増加量を計算する。計算された増加量がプロセッサの制限値を超えるかどうかを判定し、超える場合に制限値を超えないように命令の発行を制限する。
あるいは実施例による命令発行装置では、過去何サイクルかの間に発行された命令もしくはそれらの命令によって消費される電流の見積り値を記憶する。そして当該電流値に対する、現サイクルで発行可能な命令から概算される電流値の減少量を計算する。計算された減少量がプロセッサの制限値を超えるかどうかを判定し、超える場合に制限値を超えないように、後続の実行命令に影響を与えないダミー命令を発行する。
又、実施例では、P(t)>P(t−1,t−N)の場合には、P(t)≦P(t−1,t−N)+ΔP1の条件が満たされるよう、現サイクルでの命令の発行を制限する。ここで変数tは現サイクル、P(t−1,t−N)は過去Nサイクルの命令から見積もられる平均消費電流、ΔP1はプロセッサで許容される制限値、P(t)は現サイクルで発行可能な命令から見積もられる消費電流値を、夫々示す。
又、実施例では、P(t)<P(t−1,t−N)の場合にはP(t)≧P(t−1,t−N)−ΔP2の条件が満たされるよう、現サイクルにおいて、後続の実行命令に影響を与えないダミー命令を発行する。ここで上記同様、変数tは現サイクル、P(t−1,t−N)は過去Nサイクルの命令から見積もられる平均消費電流、ΔP2はプロセッサで許容される制限値、P(t)は現サイクルで発行可能な命令から見積もられる消費電流値を、夫々示す。
図2は実施例による演算処理装置としてのプロセッサの内部構成を説明するためのブロック図である。図2のプロセッサは例えばSPARCプロセッサであり、命令キャッシュ11,デコーダ12,命令発行制御部13Xおよび演算機構14を有する。演算機構14は演算ユニット14A,14B,14C,14Dを含む。
命令キャッシュ11はプログラムを保存するキャッシュメモリである。デコーダ12はプログラムに含まれる命令をデコードする。命令発行制御部13Xは命令を演算ユニット14A,14B,14C,14Dに対し発行する。演算ユニット(ALU,Arithmetic and Logic Unit)14A,14B,14C,14Dは発行された命令を実行する。尚上記の如く、演算ユニット14A,14B,14C,14Dは夫々が演算機能を分担する。
実施例によれば、プロセッサにおける命令発行機構(すなわちプロセッサにおける命令発行制御部13X)が、従来の命令発行制御部の機能を有する命令発行制御機能部13Rに加え、電流変化計算部13Cおよび命令発行調整部13Aを有する。電流変化計算部13Cは発行される命令の種類・発行数に基づいて電流変化を計算し、計算された電流変化が予め設定した閾値を超えるときに命令発行を制限する指示を出力する。命令発行調整部13Aは当該指示を受け、発行する命令を制限する。その結果、電流時間変化率dI/dtによる電源ノイズを低減することができる。
以下に図2のプロセッサにおける動作のうち、特に命令の発行に係る動作について説明する。デコーダ12は命令キャッシュ11から命令をフェッチし、デコードして命令発行制御部13Xに渡す。命令発行制御部13Xでは、デコードした結果から、命令発行制御機能部13Rが発行可能な命令を選択し、選択された命令に対し、電流変化計算部13Cが、以下のような消費電流変化に基づく発行制御を行う。
命令発行制御部13Xの電流変化計算部13Cは、発行可能な命令を保持している内部レジスタのエントリを識別する。そして識別されたエントリに保持された、発行可能な命令の種類、数量などに基づき、演算ユニット14A,14B,14C,14Dが発行可能な命令を実行する際の消費電流値を計算する。電流変化計算部13Cは更に、命令数・種類から過去数サイクル分の平均消費電流を計算する。当該過去の平均消費電流に対する、発行可能な命令を実行する際の消費電流値の変化量(単に変化量とも言う)が特定の閾値(すなわち制限値ΔI)を超えない範囲内で所定の期間内に発行可能な最大命令数を決め、命令発行調整部13Aに渡す。上記所定の期間は、本実施例の場合、1サイクルである。当該所定の期間は1サイクルに限られず、例えば数サイクルとすることもできる。尚、実施例のようにスーパースカラ方式のプロセッサの場合、同時発行可能な命令数の上限がハードウェアとして定められており、同時発行可能な命令数は当該上限以下であることが前提である。実施例のプロセッサにおいては、演算ユニット14A,14B,14C,14Dの個数が4であるため、同時に発行可能な命令数の上限は4である。
命令発行調整部13Aは所定の期間内で発行可能な最大命令数を受け、演算ユニット14A,14B,14C,14Dのうちの、発行する個々の命令に対応する夫々の演算ユニットに基づき、実際に発行する命令を選択する。また同時に発行することができる命令が複数ある場合、複数の命令の間に優先順位をつけ、優先順位に従って、1サイクル当たりに発行する命令数が発行可能な最大命令数に収まるよう、命令を選択する。尚、優先順位の決め方としては、例えば現在発行可能な命令のうちプログラム中の実行順序が先のもの(分岐命令を挟まなければ主記憶装置にプログラムが格納された場合に、アドレスの小さいもの)から順に、すなわちプログラムにおける命令の出現順に基づいて発行するようにすることができる。あるいは1サイクル当たりに発行する命令数をそのまま維持し、複数サイクルのうちの1サイクルでしか命令を発行しないようにして命令発行の頻度を制限することで発行する命令数を制限するようにしてもよい。そして命令発行制御部13Xは、このようにして必要に応じて命令の発行数が制限された態様で、演算ユニット14A,14B,14C,14Dのうちの、対応する演算ユニットに対し命令を発行する。その後命令発行制御部13Xは、発行した命令のエントリを解放する。このようにして制限値を超えない範囲でなるべく多くの命令を発行するようにする。
すなわち電流変化計算部13Cはデコーダ12と演算ユニット14A,14B,14C,14Dとの間に設けられ、図3に示される如く、計算部13CC,命令モニタ13M、および電流テーブル13Tを有する。命令モニタ13Mは現時点までの所定数のサイクルに発行された命令の種類や発行数をモニタする。電流テーブル13Tは、命令の種類ごとに、対応する電流予測値を保存する(後述する図6参照)。尚、電流テーブル13Tは上記の如く命令の種類に応じて電流予測値を保持してもよいし、あるいは命令の種類によらず、1命令当たりの電流値を保持するようにしてもよい。保存する命令の種類、電流予測値は、当該プロセッサが搭載されたLSIの動作時に調整可能なように、プログラムから可変な構成としてもよい。また上記命令の種類に応じた電流予測値は、例えばLSIの設計時に電力シミュレーションを行って予め求めることができる。または、実際に製造されたチップにおけるプロセッサ全体の消費電力を測定することで各命令の消費電力を求めて設定することもできる。
電流変化計算部13Cの計算部13CCは、命令モニタ13Mが保存している所定数のサイクル分の命令履歴と、現在発行可能な命令とを用い、電流テーブル13Tを参考し、消費電流の変化量を予測する。消費電流が増加し、消費電流の変化量としての電流の増加量が制限値を超える場合、命令発行調整部13Aは、増加量が制限値以下に収まるように、発行可能な最大命令数を求め、発行可能な最大命令数と電流計算結果とを出力する。すなわちこの場合、現在発行する命令の発行を制限することにより演算ユニット14A,14B,14C,14Dにおける消費電流を減らし、制限値以内に納める。他方電流が減少し、消費電流の変化量としての電流の減少量が制限値を超える場合、命令発行調整部13Aは、減少量が制限値以下に収まるように、必要なダミー命令の発行数を求め、必要なダミー命令の発行数と電流計算結果とを出力する。すなわちこの場合、プログラムに元から存在する命令に加えて、ダミー命令の発行により演算ユニット14A,14B,14C,14Dにおける消費電流を増加させ、制限値以内に納める。
命令発行調整部13Aは、電流変化計算部13Cから出力される発行可能な最大命令数あるいは必要なダミー命令の発行数に従い、所定の期間内に命令発行制御部13Xから発行する命令を制限し、あるいは必要な発行数だけダミー命令を発行する。
実施例によれば、プロセッサの命令発行制御部13Xに、電流変化計算部13C、命令発行調整部13Aを設けることにより、実際に実行される命令に応じた、より精度の高い電流変化制御が可能になる。
以下、消費電流変化の計算手法の例について説明する。消費電流変化の計算手法としてモニタ手法1およびモニタ手法2があり、モニタ手法1およびモニタ手法2のうちのいずれを使用しても良い。
まず図4とともにモニタ手法1について説明する。モニタ手法1では、直前のX個のサイクルの命令数あるいは命令発行頻度に基づき、現在のサイクルにおける命令発行数あるいは命令発行頻度を制御する。以下に具体例を説明する。
許容する最大電流変化値(すなわち制限値)ΔIは予め電流変化計算部13Cに設定しておく。電流変化計算部13Cの計算部13CCが命令モニタ13Mおよび電流テーブル13Tを参照し、直前のX個のサイクルに発行した命令の電流予測値の平均を計算する(計算結果をAとする)。更に現在発行可能な命令の電流予測値も計算する(計算結果をBとする)。次に電流値の差分B−Aを計算し、もしB−A>ΔIであれば,電流変化計算部13Cから、命令発行調整部13Aに対し、次に発行可能な最大命令数を渡す。他方B−A<−ΔIであれば、電流変化計算部13Cから、命令発行調整部13Aに対し、必要なダミー命令の発行数を指示する。消費電流変化の計算は1サイクル毎に行うようにしてもよいし、あるいは一定サイクル期間毎に行っても良い。ここで一定サイクル期間毎に行う方法とは、毎サイクルに消費電流変化の計算を行わず、所定数のサイクル毎に電流変化の計算を行う方法である。
次に図5とともにモニタ手法2について説明する。モニタ手法2では、現在のサイクルを含めた、現在と直前のX個のサイクルの命令数あるいは命令発行頻度と、更に前のX個のサイクルの命令数あるいは命令発行頻度とに基づき、現在のサイクルにおける命令発行数あるいは命令発行頻度を制御する。以下に具体例を説明する。
モニタ手法2においても、許容する最大電流変化値(すなわち制限値)ΔIを予め電流変化計算部13Cに設定しておく。電流変化計算部13Cの計算部13CCが、命令モニタ13Mおよび電流テーブル13Tを参照し、現在のサイクルを含めた、現在と直前のX個のサイクルに発行した命令の電流予測値の平均(又は和)(Aとする)と、更に前のX個のサイクルに発行した命令の電流予測値の平均(又は和)(Bとする)とを夫々計算し、相互に比較する。もしB−A>ΔIであれば,電流変化計算部13Cから、命令発行調整部13Aに対し、現在発行可能な最大命令数を渡す。もしB−A<−ΔIであれば、電流変化計算部13Cから、命令発行調整部13Aに対し、必要なダミー命令の発行数を指示する。上記Xの値は、対処すべき電源ノイズの周波数帯域に応じて設定する。尚、高周波帯域のノイズはチップに実装されるデカップリング容量セル等により除去するものとし、よって上記対処すべき電源ノイズの周波数帯域は中低周波数の帯域である。一般に周波数の高いノイズは周期が短く、周波数の低いノイズは周期が長い。このため、上記Xの値を対処すべき電源ノイズの周波数帯域に応じて適宜調整することにより、当該電源ノイズをモニタすることができる。尚、この場合も消費電流変化の計算は1サイクル毎に行うようにしてもよいし、一定サイクル期間毎に行う方法としてもよい。ここで一定サイクル期間毎に行う方法とは、毎サイクルに消費電流変化の計算を行わず、所定数のサイクル毎に消費電流変化の計算を行う方法である。
次に、図6、図7とともに、上記モニタ手法1を適用した場合の具体的な動作例を用いて、上述の実施例のプロセッサにおける、消費電流増加時の動作説明を行う。
図6は上記電流テーブル13Tの一例を示す。当該例の場合電流テーブル13Tには、各命令の種類Inst1、Inst2,...,Inst8が格納されている。更に電流テーブル13Tには、当該種類の命令の各々を上記4個の演算ユニット14A〜14Dのうちの対応する演算ユニットが実行した場合の消費電流値として、300,200,...,250[μA]が夫々格納されている。
また電流変化計算部13Cにおいて、電流変化制限値(単に制限値とも言う)としてΔP1=500[μA]が設定されているものとする。また上記の如く、当該プロセッサにおいて同時に発行可能な命令数は最大4(#1,#2,#3,#4)である。
図7は、S1,S2,S3の各時点における、過去の5サイクル(「5」〜「1」)で発行した命令と、現在のサイクル(「0」)において発行可能な命令を示す。例えば図7、上段の時点S1では、過去5サイクルで発行された命令は無く、現在発行可能な命令はInst1,Inst2,Inst3,Inst4であることが示されている。
また、図7中、同時に発行可能な命令#1,#2,#3,#4の各々を実行しない場合の1命令当たりの消費電流値を夫々20[μA]とする。
また、モニタ期間をN=4[サイクル]と設定する。図7の時点S1の場合、過去4サイクル(「4」〜「1」)では、同時に発行可能な命令#1,#2,#3,#4のいずれも実行されていない。このため、その間の演算ユニット14A,14B,14C,14Dの消費電流(単に消費電流とも言う)は、20×4×4=320[μA]であり、過去4サイクルにおける1サイクル当たりの平均消費電流P(t−1,t−4)は320/4=80[μA]と得られる。他方現在発行可能な命令Inst1,Inst2,Inst3,Inst4の消費電流値P(t)は300+200+250+150=900[μA]と得られる。その結果、変化量はP(t)−P(t−1,t−4)=820[μA] となり、制限値ΔP1=500[μA]より、320[μA]大きい。したがって当該4サイクルのモニタ期間の次のサイクルにおける命令発行数を制限する。その結果命令発行調整部13Aでは制限された命令を発行する。図7の例では、アドレス順に、命令Inst1,Inst2命令が選択される(発行可能な最大命令数=2)。これは、更に命令Inst3を選択した場合、合計3個の命令Inst1,Inst2,Inst3を発行した場合の変化量は、300+200+250+20−80=690[μA]となり、制限値500[μA]を超えるからである。この場合結果的に現在発行可能な4個の命令Inst1,Inst2,Inst3,Inst4のうち、アドレス順が早い2個の命令Inst1,Inst2を発行し、残りの2個の命令Inst3,Inst4の発行を、次サイクル以降に遅らせる(図7の中段の時点S2)。
次に図7の中段の時点S2の場合、現在発行可能な命令は4命令Inst5,Inst6,Inst3,Inst4である。このうち2命令Inst3,Inst4は上記の如く前のサイクルで発行が遅らされたものであり、他の2命令Inst5,Inst6は新たに命令発行制御部13Xに与えられた命令である。この場合、過去4サイクルのモニタ期間における平均電流値P(t+1−1,t+1−4)は(20×4×3+20×2+300+200)/4=195[μA]と得られる。他方、発行可能な上記4命令Inst5,Inst6,Inst3,Inst4の消費電流値P(t+1)は250+200+250+150=850[μA]と得られる。その結果変化量はP(t+1)−P(t+1−1,t+1−4)=655[μA] となり、制限値ΔP1=500[μA])より155[μA]大きい。したがって 当該4サイクルのモニタ期間の次のサイクルにおける命令発行数を制限する。命令発行調整部13Aは発行数が制限された命令を発行する。図7の例では、アドレス順で3命令Inst3,Inst4,Inst5が選択される(発行可能な最大命令数=3)。結果として当該3命令Inst3,Inst4,Inst5が発行され、残りの1命令Inst6が次サイクル以降に遅らされる(図7の下段の時点S3)。
尚、制限値を超えた分の電流の大きさに基づいて、発行可能な最大命令数が異なるような構成とすることも可能である。また発行する命令の選択に関しては上記の如く、命令のアドレス順に選択するものとする。このようにして制限値を越えない範囲で可能な限り多くの命令を同時発行するように調整する。また前のサイクル以前で遅らせた命令を優先的に発行するようにしてもよい。
次に、図6、図8とともに、上記モニタ手法1を適用した場合の具体的な動作例を用いて、上述の実施例のプロセッサにおける、消費電流減少時の動作説明を行う。
電流変化計算部13Cにおいて、制限値を上記ΔP1同様、ΔP2=500[μA]と設定し、同時に発行可能な命令数も上記同様最大4とする。また上記同様、同時に発行可能な命令#1,#2,#3,#4の各々が実行されない場合の消費電流を、命令1個当たり20[μA]とする。又、上記同様モニタ期間N=4[サイクル]と設定する。
図8の最上段の時点S11において、過去4サイクル(「4」〜「1」)のモニタ期間に発行された命令が命令モニタ13Mによりモニタされる。図6の電流テーブル13Tの例を参照すると、過去4サイクルの平均電流値P(t−1,t−4)が925[μA]と得られる。他方現在(サイクル「0」)発行可能な命令が特にないため、電流値P(t)は80[μA]と得られる。その結果変化量はP(t−1,t−4)−P(t)=845[μA] と得られ、制限値ΔP2=500[μA]より、345[μA]大きい。したがって電流変化計算部13Cは必要なダミー命令の発行数を決定し、命令発行調整部13Aにわたす。図6の電流テーブル13Tによれば、ダミー命令(dummy)1個当りの消費電流値=200[μA]である。したがって変化量を345[μA]以下に納めるためには、200<345+20[μA]、200×2=400>345+20×2[μA]であるので、ダミー命令が2個必要となる。したがって同時に発行可能な命令のうちの命令#1、#2としてダミー命令を夫々2個(dummy,dummy)発行するよう、必要なダミー命令の発行数=2として、命令発行調整部13Aに指示する。命令発行調整部13Aは指示に従って同時に発行可能な命令のうちの#1、#2としてダミー命令を夫々2個(dummy,dummy)発行する(図8の中断の時点S12)。
更に図8の中断の時点S12では、次のサイクル(「0」)にも発行可能な命令がない。したがって、過去4サイクルの平均電流値P(t+1−1,t+1−4)は797.5[μA]、現在発行可能な命令の電流値P(t+1)は80[μA]と得られる。その間の変化量はP(t+1−1,t+1−4)−P(t+1)=717.5[μA] と得られ、制限値ΔP2=500[μA]より217.5[μA]大きい。変化量を217.5[μA]以下に納めるためには、200<217.5+20[μA]、200×2=400>217.5+20×2[μA]であるので、ダミー命令が2個必要となる。したがって同時に発行可能な命令のうちの#3、#4としてダミー命令を2個(dummy,dummy)発行するよう、必要なダミー命令の発行数=2として、命令発行調整部13Aに指示する。命令発行調整部13Aは指示に従って同時に発行可能な命令のうちの#3、#4としてダミー命令を夫々2個(dummy,dummy)発行する(図8の下段、時点S13)。
次に図9乃至図14とともに、上述の実施例によるプロセッサにおける、消費電流変化に基づいた命令発行制御の動作を説明するためのフローチャートについて説明する。
図9は、デコーダ12から命令発行制御部13Xに渡される命令Inst(1)、Inst(2),...,Inst(M)の夫々の消費電流値Iと、プログラム中のアドレス(i)との関係を示す。消費電流値Iは、図6に示す如くの、電流テーブル13Tによって得るものとする。
図10Aは、モニタ手法1で消費電流が増加する際の動作フローチャート(その1)である。図10A中、ステップS21で、命令キャッシュ11からフェッチされた命令が、デコーダ12でデコードされる。ステップS21R,S22で、命令発行制御部13Xの命令発行制御機能部13Rは、デコードされた命令から、同時発行可能なM個の命令Inst(1)、Inst(2),...,Inst(M)を選択する。以後命令発行制御部13Xは、ステップS23,S24,S26、S27のループ動作を行う。当該ループ動作では、iが初期値Mから順に1ずつ減少し、i=1となる迄の間、ステップS26の判断結果がYESとなると当該ループ動作が終了する。
ステップS24では、電流変化計算部13Cの計算部13CCにより、上記M個の命令のうち1番目からi番目までの命令Inst(1)、Inst(2),...,Inst(i)につき、消費電流の合計P(t)が算出される。ステップS25では、電流変化計算部13Cの計算部13CCにより、過去のNサイクル分の消費電流の平均値P(t−1,t−N)が算出される。そしてステップS26では、上記i番目の命令までの消費電流の合計P(t)と、過去Nサイクルの平均電流値P(t−1,t−N)に上記制限値ΔP1を加えた値とが比較される。
その結果、i番目の命令までの消費電流の合計P(t)が、過去Nサイクルの平均電流値P(t−1,t−N)に上記制限値ΔP1を加えた値以下となる(YES)まで,上記ループ動作が続行される。ここでiの初期値はMであり、最初、上記i番目の命令までの消費電流の合計P(t)はM個の命令分の消費電流である。この時点で当該P(t)が過去Nサイクルの平均電流値P(t−1,t−N)に上記制限値ΔP1を加えた値以下(YES)であれば、ループ動作を終了し(ステップS27)、電流変化計算部13Cは発行可能な最大命令数=Mを命令発行調整部13Aに通知する。命令発行調整部13Aは上記の如く優先順位に従って、演算ユニット14A,14B,14C,14Dのうちの対応するものに対し、命令を発行する。ここで優先順位には上記の如く、同時に発行することができる命令が複数ある場合の複数の命令の間の優先順位が含まれる。
他方上記最初の時点で上記P(t)が過去Nサイクルの平均電流値P(t−1,t−N)に上記制限値ΔP1を加えた値を超える(NO)場合、ループ動作が続行される。そして上記の如く、P(t)が過去Nサイクルの平均電流値P(t−1,t−N)に上記制限値ΔP1を加えた値以下となった場合(YES)、ループ動作が終了される。その結果、現在発行可能なM個の命令のうちアドレスが大きい方から順に一命令ずつ順次減らされて行き、算出されたP(t)が過去Nサイクルの平均電流値P(t−1,t−N)に上記制限値ΔP1を加えた値以下となるまで減らされる。したがって発行可能なM個の命令のうちのアドレスが小さい方から順に選んで行き、P(t)が過去の平均電流値P(t−1,t−N)に制限値ΔP1を加えた値を超える直前までの(1乃至i番目の)命令が、最終的に選択される。そして当該最終的に選択された命令の情報が、命令発行調整部13Aに渡される。命令発行調整部13Aは当該最終的に選択された1乃至i番目の命令を、現サイクルにおいて演算ユニット14A,14B,14C,14Dに発行する(ステップS28)。なおステップS24のIxは、現サイクルにおける各命令当りの消費電流値を表す(図9参照)。
尚、図10Aの場合ループ動作を行っているが、同様の結果を得る目的で例えば図11の回路を用いることができる。図11の回路は、加算器A1,A2,A3と、比較器C1,C2,C3,C4とを有する。制限値ΔP1が比較器C1、C2,C3,C4の各々が有する一方の入力に入力される。また図11の例の場合、M個の発行可能な命令として、説明の便宜上、4個の命令(addr1の命令、addr2の命令、addr3の命令、addr4の命令)を想定しているが、発行可能な命令数が5個以上となっても同様の回路構成で対応可能である。尚、上記addr1の命令、addr2の命令、addr3の命令、addr4の命令は、例えば、夫々、算術演算としての加算(ADD)命令、減算(SUB)命令、論理演算としてのAND命令、OR命令等とすることができる。
加算器A1はaddr1の命令およびaddr2の命令の計2命令のついての消費電流の合計を求める。加算器A2は加算器A1の出力とaddr3の命令についての消費電流との合計、すなわち、addr1,addr2、addr3の計3命令のついての消費電流の合計を求める。同様に加算器A3は、加算器A2の出力とaddr4の命令についての消費電流の合計、すなわち、addr1,addr2、addr3,addr4の計4命令のついての消費電流の合計を求める。そして比較器C1、C2,C3,C4は夫々、addr1の命令についての消費電流、加算器A1の出力、加算器A2の出力、加算器A3の出力の夫々と、ΔP1とを比較する。すなわち比較器C1はaddr1の命令に係る消費電流P(t)とΔP1とを比較し、比較器C2はaddr1,addr2の夫々の命令に係る合計の消費電流P(t)とΔP1とを比較する。同様に比較器C3はaddr1,addr2,addr3の夫々の命令に係る合計の消費電流P(t)とΔP1とを比較する。そして比較器C4はaddr1,addr2,addr3,addr4の夫々の命令に係る合計の消費電流P(t)とΔP1とを比較する。
各比較器C1〜C4は、P(t)がΔP以上の場合に1を出力し、P(t)がΔP未満の場合に0を出力する。そして図11の回路は、比較器C1〜C4の出力として、アドレスの選択信号AD[1:4]を生成する。例えばAD[1:4]=0000時にaddr1〜4の4命令を発行、AD[1:4]=0001時にaddr1〜3の3命令を発行するように設定できる。同様にAD[1:4]=0011時にaddr1〜2の2命令を発行、AD[1:4]=0111時にaddr1の1命令を発行するように設定できる。
図10Bは、モニタ手法1で消費電流が増加する際の動作フローチャート(その2)である。図10Bの動作フローチャート(その2)は、上述した図10Aの動作フローチャート(その1)とは異なる方法の例を示す。図10Bの動作フローチャート(その2)中、ステップS21乃至S27は、図10Aの動作フローチャート(その1)中、ステップS21乃至S27と同様であり、重複する説明を省略する。図10Bの動作フローチャート(その2)の場合、ステップS27Aでダミー命令を追加することができる。上記の如く、ステップS27では、P(t)が過去Nサイクルの平均電流値P(t−1,t−N)に上記制限値ΔP1を加えた値以下(YES)であれば、ループ動作を終了する。ここで、例えば上記制限値ΔP1の値が小さい場合等には、当該ループ動作の終了時、上記P(t)が上記過去Nサイクルの平均電流値P(t−1,t−N)よりも小さい場合、すなわち消費電流が減少する場合も想定される。そのような場合に、上記P(t)と、P(t−1,t−N)との間の差(消費電流の減少量)に応じた消費電流のダミー命令を追加して消費電流の減少を緩和することができる。この目的のためのダミー命令として、図6とともに上記した消費電流値=200[μA]のダミー命令に加え、例えば消費電流値=100[μA]のダミー命令等を別途設けることにより、消費電流が異なる複数のダミー命令を用意しておくことができる。そして上記P(t)と、P(t−1,t−N)との間の差(消費電流の減少量)に応じ、これら消費電流が異なる複数のダミー命令から、適宜最適な消費電流のダミー命令を選択して追加することができる。その場合、上記ステップS23,S24,S26、S27のループ動作で最終的に選択された1乃至i番目の命令に上記ステップS27Aでダミー命令が追加される。そしてこのようにして得られた、発行すべき命令を示す情報が、命令発行調整部13Aに渡される。命令発行調整部13Aは当該渡された情報が示す命令を、現サイクルにおいて演算ユニット14A,14B,14C,14Dに発行する(ステップS28A)。
図12は、モニタ手法1で消費電流が減少する際の動作フローチャートである。図12中、ステップS41にて、命令キャッシュ11からフェッチされた命令が、デコーダ12でデコードされる。ステップS41R,S42にて、デコードされた命令は命令発行制御部13Xの命令発行制御機能部13Rに渡され、同時発行可能なM個の命令Inst(1)、Inst(2),...,Inst(M)が選択される。以後命令発行制御部13Xは、ステップS43,S45,S46のループ動作を行う。当該ループ動作では、ステップS46で、発行するダミー命令(dummy)の個数を順次1ずつ増加して行き、ステップS45の判断結果がYESとなると当該ループ動作が終了する。
ステップS43では、電流変化計算部13Cの計算部13CCにより、上記M個の命令Inst(1)、Inst(2),...,Inst(M)とステップS46で加えられたダミー命令とにつき、消費電流の合計P(t)が算出される。ステップS44では、電流変化計算部13Cの計算部13CCにより、過去のNサイクル分の消費電流の平均値P(t−1,t−N)が算出される。そしてステップS45では、発行可能な命令およびダミー命令についての消費電流の合計P(t)と、過去Nサイクルの平均電流値P(t−1,t−N)から上記制限値ΔP2を差し引いたと値が比較される。その結果、発行可能な命令およびダミー命令についての消費電流の合計P(t)が、過去Nサイクルの平均電流値P(t−1,t−N)から上記制限値ΔP2を差し引いた値以上となる(YES)まで,ループ動作が続行される。その結果、必要に応じてダミー命令を加えた結果の消費電流値P(t)が、過去Nサイクルの平均電流値P(t−1,t−N)から上記制限値ΔP2を差し引いた値以上となるようなダミー命令の発行数(すなわち「必要なダミー命令の発行数」)が決定される。このようにして得られた必要なダミー命令の発行数が、命令発行調整部13Aに渡される。命令発行調整部13Aは発行可能な命令に上記必要な発行数のダミー命令を加え合わせた命令を、現サイクルにおいて演算ユニット14A,14B,14C,14Dに発行する(ステップS47)。
図13Aは、モニタ手法2で消費電流が増加する際の動作フローチャート(その1)である。図13A中、ステップS61にて、命令キャッシュ11からフェッチされた命令が、デコーダ12でデコードされる。ステップS61R,S62にて、デコードされた命令は命令発行制御部13Xの命令発行制御機能部13Rに渡され、同時発行可能なM個の命令Inst(1)、Inst(2),...,Inst(M)が選択される。以後命令発行制御部13Xは、ステップS63,S64,S66、S67のループ動作を行う。当該ループ動作では、iが初期値Mから順に1ずつ減少し、i=1となる迄の間、ステップS66の判断結果がYESとなると当該ループ動作が終了する。
ステップS64では、電流変化計算部13Cの計算部13CCにより、上記M個の命令のうち1番目からi番目までの命令Inst(1)、Inst(2),...,Inst(i)についての消費電流の合計P(t)が求められる。そして当該現サイクルの消費電流P(t)を加えた、現在と過去のNサイクル分の消費電流の平均値P(t,t−N+1)が算出される。ステップS65では、電流変化計算部13Cの計算部13CCにより、更に過去のNサイクル分の消費電流の平均値P(t−N,t−2N+1)が算出される。そしてステップS66では、上記現サイクルを加えた現在と過去のNサイクル分の消費電流の平均値P(t、t−N+1)と、更に過去Nサイクルの平均電流値P(t−N,t−2N+1)に上記制限値ΔP1を加えた値とが比較される。その結果、現在と過去のNサイクル分の消費電流の平均値P(t、t−N+1)が、更に過去Nサイクルの平均電流値P(t−N,t−2N+1)に上記制限値ΔP1を加えた値以下となる(YES)までループ動作が続行される。上記同様、iの初期値はMであり、最初、上記i番目の命令までの消費電流の合計P(t)はM個の命令分の消費電流である。この時点で現在と過去のNサイクル分の平均電流値P(t、t−N+1)が、更に過去Nサイクルの平均電流値P(t−N,t−2N+1)に上記制限値ΔP1を加えた値以下(YES)であればループ動作が終了され(ステップS67)、電流変化計算部13Cは、「発行可能な最大命令数=M」を命令発行調整部13Aに通知する。命令発行調整部13Aは上記の如く優先順位に従って、演算ユニット14A,14B,14C,14Dのうちの対応するものに対し、命令を発行する。
他方上記最初の時点で現在と過去のNサイクル分の平均電流値P(t、t−N+1)が、更に過去Nサイクルの平均電流値P(t−N,t−2N+1)に上記制限値ΔP1を加えた値を超える(NO)場合、ループ動作が続行される。そして上記の如く、現在と過去のNサイクル分の平均電流値P(t、t−N+1)が、更に過去Nサイクルの平均電流値P(t−N,t−2N+1)に上記制限値ΔP1を加えた値P(t)以下となった時点(YES)でループ動作が終了される。その結果、現在発行可能なM個の命令のうちアドレスが大きい方から順に一命令ずつ順次減らされて行き、算出された現在と過去のNサイクル分の平均電流値P(t、t−N+1)が更に過去Nサイクルの平均電流値P(t−N,t−2N+1)に上記制限値ΔP1を加えた値以下となるまで減らされる。したがって発行可能なM個の命令のうちのアドレスが小さい方から順に選んで行き、現在と過去の平均電流値P(t、t−N+1)が更に過去の平均電流値P(t−N,t−2N+1)に制限値ΔP1を加えた値を超える直前までの(1乃至i番目の)命令が、最終的に選択される。そして当該最終的に選択された命令の情報が、命令発行調整部13Aに渡される。命令発行調整部13Aは当該最終的に選択された1乃至i番目の命令を、現サイクルにおいて演算ユニット14A,14B,14C,14Dに発行する(ステップS68)。
図13Bは、モニタ手法2で消費電流が増加する際の動作フローチャート(その2)である。 図13Bの動作フローチャート(その2)は、上述した図13Aの動作フローチャート(その1)とは異なる方法の例を示す。図13Bの動作フローチャート(その2)中、ステップS61乃至S67は、図13Aの動作フローチャート(その1)中、ステップS61乃至S67と同様であり、重複する説明を省略する。図13Bの動作フローチャート(その2)の場合、ステップS67Aでダミー命令を追加することができる。上記の如く、ステップS67では、現在と過去のNサイクル分の平均電流値P(t、t−N+1)が、更に過去Nサイクルの平均電流値P(t−N,t−2N+1)に上記制限値ΔP1を加えた値以下であればループ動作が終了される。ここで、例えば上記制限値ΔP1の値が小さい場合等には、当該ループ動作の終了時、上記更に過去Nサイクルの平均電流値P(t−N,t−2N+1)より、上記現在と過去のNサイクル分の平均電流値P(t、t−N+1)の方が小さい(すなわち消費電量が減少する)場合も想定され得る。このような場合に、必要に応じ、上記P(t−N,t−2N+1)と、上記P(t、t−N+1)との間の差(消費電流の減少量)に応じた消費電流のダミー命令を追加することができる。この目的のためのダミー命令として、図6とともに上記した消費電流値=200[μA]のダミー命令に加え、例えば消費電流値=100[μA]のダミー命令等を別途設けることにより、消費電流の異なる複数のダミー命令を用意しておくことができる。そして上記P(t−N,t−2N+1)と、上記P(t、t−N+1)との間の差(消費電流の減少量)に応じ、これら消費電流が異なるダミー命令から適宜最適な消費電流のダミー命令を選択して追加することができる。この場合、上記ステップS63,S64,S66、S67のループ動作で最終的に選択された1乃至i番目の命令に上記ステップS67Aでダミー命令が追加される。そしてこのようにして得られた、発行すべき命令を示す情報が、命令発行調整部13Aに渡される。命令発行調整部13Aは当該渡された情報が示す命令を、現サイクルにおいて演算ユニット14A,14B,14C,14Dに発行する(ステップS68A)。
図14は、モニタ手法2で消費電流が減少する際のフローチャートである。図14中、ステップS81にて、命令キャッシュ11からフェッチされた命令が、デコーダ12でデコードされる。ステップS81R,S82にて、デコードされた命令が命令発行制御部13Xの命令発行制御機能部13Rに渡され、同時発行可能なM個の命令Inst(1)、Inst(2),...,Inst(M)が選択される。以後命令発行制御部13Xは、ステップS83,S85,S86のループ動作を行う。当該ループ動作では、ステップS86で、発行するダミー命令の個数を1ずつ順次増加して行き、ステップS85の判断結果がYESとなると当該ループ動作が終了する。
ステップS83では、電流変化計算部13Cの計算部13CCにより、上記M個の命令Inst(1)、Inst(2),...,Inst(M)とステップS46で加えられたダミー命令とにつき、消費電流の合計P(t)が算出される。更に、当該現サイクルの消費電流を加えた、現在と過去のNサイクル分の消費電流と平均値P(t、t−N+1)が算出される。ステップS84では、電流変化計算部13Cの計算部13CCにより、更に過去のNサイクル分の消費電流の平均値P(t−N,t−2N+1)が算出される。そしてステップS85では、現サイクルの消費電流を加えた現在と過去のNサイクル分の平均電流値P(t、t−N+1)と、更に過去Nサイクルの平均電流値P(t−N,t−2N+1)から上記制限値ΔP2を差し引いた値とが比較される。その結果、現サイクルの消費電流を加えた現在と過去のNサイクル分の平均電流値P(t、t−N+1)と、更に過去Nサイクルの平均電流値P(t−N,t−2N+1)から上記制限値ΔP2を差し引いた値以上となる(YES)までループ動作が続行される。その結果、必要な個数のダミー命令を加えた結果の、現サイクルの消費電流を加えた現在と過去のNサイクル分の平均電流値P(t、t−N+1)が、更に過去Nサイクルの平均電流値P(t−N,t−2N+1)から上記制限値ΔP2を差し引いた値以上となるようにダミー命令が順次1ずつ加えられる(ステップS86)。このようにして得られた、必要なダミー命令の発行数が、命令発行調整部13Aに渡される。命令発行調整部13Aは発行可能な命令に上記必要な発行数のダミー命令を加え合わせた命令を、現サイクルにおいて演算ユニット14A,14B,14C,14Dに発行する(ステップS87)。
図15は、上記実施例のプロセッサを適用可能なサーバ等の情報処理装置のハードウェア構成例を説明するためのブロック図である。当該情報処理装置は、演算処理装置であるプロセッサ110と、記憶装置であるメモリ120と、プロセッサ110とメモリ120とを接続するバス130とを含む。メモリ120は、プロセッサ110が実行する命令が書き込まれたプログラム、上記命令の実行対象であるデータ、上記命令の実行結果であるデータ等を格納する。プロセッサ110として、図2に記載された構成のものを適用することができる。その場合、図2に示されるプロセッサの命令キャッシュ11が、メモリ120に格納されたプログラムを取得して保持し、デコーダ12が当該プログラムの命令をフェッチ(取得)してデコード(解読)し、命令発行制御部13Xがデコードされた命令を演算機構14の演算ユニット14A、14B,14C、14Dに発行する。演算ユニット14A,14B,14C,14Dは、当該発行された命令を実行する。命令発行制御部13Xは、図2乃至14とともに上述した実施例のプロセッサにおける命令発行制御部13Xと同様の構成を有する。
命令を保持する命令保持部と、前記命令保持部から取得した命令を解読する命令解読部と、発行された命令を実行する演算部と、前記命令解読部によって解読された命令を前記演算部に発行するとともに、第1の所定期間に発行した命令によって前記演算部が消費した消費電流値と、第2の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出し、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第2の所定期間において一部の命令の発行を抑止する命令発行制御部と、を有し、前記命令発行制御部は、前記発行を抑止した命令の代わりに、前記演算部に対して消費電流が異なる複数のダミー命令を発行し、前記消費電流値は、前記第1の所定期間における前記演算部の消費電流の平均値であり、前記消費電流予測値は、前記第2の所定期間における前記演算部の消費電流の平均値である。
Claims (12)
- 命令を保持する命令保持部と、
前記命令保持部から取得した命令を解読する命令解読部と、
発行された命令を実行する演算部と、
前記命令解読部によって解読された命令を前記演算部に発行するとともに、第1の所定期間に発行した命令によって前記演算部が消費した消費電流値と、前記解読された命令のうち第2の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出し、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第2の所定期間において前記解読された命令のうち一部の命令の発行を抑止する命令発行制御部と、
を有することを特徴とする演算処理装置。 - 前記演算処理装置において、
前記命令発行制御部は、
前記命令発行部は、前記発行を抑止した命令の代わりに、前記演算部に対してダミー命令を発行することを特徴とする請求項1記載の演算処理装置。 - 前記演算処理装置において、
前記消費電流値は、前記第1の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、前記第2の所定期間における前記演算部の消費電流の平均値であることを特徴とする請求項1又は2記載の演算処理装置。 - 前記演算処理装置において、
前記消費電流値は、前記第1の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、現サイクルにおける前記演算部の消費電流の予定値であることを特徴とする請求項1又は2に記載の演算処理装置。 - 命令を格納する記憶装置と、前記記憶装置に接続された演算処理装置とを有する情報処理装置において、
前記演算処理装置は、
前記記憶装置から取得した命令を保持する命令保持部と、
前記命令保持部から取得した命令を解読する命令解読部と、
発行された命令を実行する演算部と、
前記命令解読部によって解読された命令を前記演算部に発行するとともに、第1の所定期間に発行した命令によって前記演算部が消費した消費電流値と、前記解読された命令のうち第2の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出し、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第2の所定期間において前記解読された命令のうち一部の命令の発行を抑止する命令発行制御部と、
を有することを特徴とする情報処理装置。 - 前記情報処理装置において、
前記命令発行制御部は、
前記命令発行部は、前記発行を抑止した命令の代わりに、前記演算部に対してダミー命令を発行することを特徴とする請求項5記載の情報処理装置。 - 前記情報処理装置において、
前記消費電流値は、前記第1の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、前記第2の所定期間における前記演算部の消費電流の平均値であることを特徴とする請求項5又は6記載の情報処理装置。 - 前記情報処理装置において、
前記消費電流値は、前記第1の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、現サイクルにおける前記演算部の消費電流の予定値であることを特徴とする請求項5又は6に記載の情報処理装置。 - 命令を保持する命令保持部を有する演算処理装置の制御方法において、
前記演算処理装置が有する命令解読部が、前記命令保持部から取得した命令を解読するステップと、
前記演算処理装置が有する演算部が、発行された命令を実行するステップと、
前記演算処理装置が有する命令発行制御部が、第1の所定期間に発行した命令によって前記演算部が消費した消費電流値と、前記解読された命令のうち第2の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出するステップと、
前記演算処理装置が有する命令発行制御部が、前記命令解読部によって解読された命令を前記演算部に発行するとともに、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第2の所定期間において前記解読された命令のうち一部の命令の発行を抑止するステップと、
を有することを特徴とする演算処理装置の制御方法。 - 前記演算処理装置の制御方法において、
前記命令発行制御部は、
前記命令発行部は、前記発行を抑止した命令の代わりに、前記演算部に対してダミー命令を発行することを特徴とする請求項9記載の演算処理装置の制御方法。 - 前記演算処理装置の制御方法において、
前記消費電流値は、前記第1の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、前記第2の所定期間における前記演算部の消費電流の平均値であることを特徴とする請求項9又は10記載の演算処理装置の制御方法。 - 前記演算処理装置の制御方法において、
前記消費電流値は、前記第1の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、現サイクルにおける前記演算部の消費電流の予定値であることを特徴とする請求項9又は10に記載の演算処理装置の制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/070854 WO2011074059A1 (ja) | 2009-12-14 | 2009-12-14 | 演算処理装置、情報処理装置及びその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2011074059A1 true JPWO2011074059A1 (ja) | 2013-04-25 |
JP5283762B2 JP5283762B2 (ja) | 2013-09-04 |
Family
ID=44166861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011545869A Expired - Fee Related JP5283762B2 (ja) | 2009-12-14 | 2009-12-14 | 演算処理装置、情報処理装置及びその制御方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20120254595A1 (ja) |
EP (1) | EP2515200A1 (ja) |
JP (1) | JP5283762B2 (ja) |
CN (1) | CN102652297A (ja) |
WO (1) | WO2011074059A1 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8555095B2 (en) | 2010-07-26 | 2013-10-08 | Apple Inc. | Methods and systems for dynamically controlling operations in a non-volatile memory to limit power consumption |
JP5776768B2 (ja) * | 2011-05-06 | 2015-09-09 | 富士通株式会社 | 半導体集積回路およびその制御方法 |
JP5806529B2 (ja) * | 2011-07-06 | 2015-11-10 | ルネサスエレクトロニクス株式会社 | 半導体装置、それを用いた無線通信端末、及びクロック周波数制御方法 |
JP5946251B2 (ja) | 2011-07-06 | 2016-07-06 | ルネサスエレクトロニクス株式会社 | 半導体装置およびシステム |
US9009451B2 (en) * | 2011-10-31 | 2015-04-14 | Apple Inc. | Instruction type issue throttling upon reaching threshold by adjusting counter increment amount for issued cycle and decrement amount for not issued cycle |
US9430242B2 (en) * | 2012-04-02 | 2016-08-30 | Nvidia Corporation | Throttling instruction issue rate based on updated moving average to avoid surges in DI/DT |
JP2014048972A (ja) * | 2012-08-31 | 2014-03-17 | Fujitsu Ltd | 処理装置、情報処理装置、及び消費電力管理方法 |
US9411395B2 (en) | 2013-04-18 | 2016-08-09 | Intel Corporation | Method and apparatus to control current transients in a processor |
JP6036540B2 (ja) * | 2013-05-17 | 2016-11-30 | 富士通株式会社 | 半導体装置および半導体装置の制御方法 |
US20150033045A1 (en) * | 2013-07-23 | 2015-01-29 | Apple Inc. | Power Supply Droop Reduction Using Feed Forward Current Control |
US10241798B2 (en) * | 2013-09-20 | 2019-03-26 | Nvidia Corporation | Technique for reducing voltage droop by throttling instruction issue rate |
US10114435B2 (en) * | 2013-12-23 | 2018-10-30 | Intel Corporation | Method and apparatus to control current transients in a processor |
US10160342B2 (en) * | 2016-03-29 | 2018-12-25 | GM Global Technology Operations LLC | Dynamic adjustment of battery current limits based on usage |
US10345883B2 (en) * | 2016-05-31 | 2019-07-09 | Taiwan Semiconductor Manufacturing Co., Ltd. | Power estimation |
US10175748B2 (en) * | 2017-01-05 | 2019-01-08 | Nuvoton Technology Corporation | System, method and computer program product for improved regulation of an electrical device's consumption of power from an external power supply |
US10649518B2 (en) * | 2017-01-26 | 2020-05-12 | Ati Technologies Ulc | Adaptive power control loop |
US10719320B2 (en) * | 2017-07-31 | 2020-07-21 | Intel Corporation | Power noise injection to control rate of change of current |
US11073884B2 (en) * | 2017-11-15 | 2021-07-27 | International Business Machines Corporation | On-chip supply noise voltage reduction or mitigation using local detection loops |
JP7200507B2 (ja) | 2018-06-06 | 2023-01-10 | 富士通株式会社 | 半導体装置及び演算器の制御方法 |
CN111309134B (zh) * | 2020-03-23 | 2020-12-22 | 上海燧原智能科技有限公司 | 一种负载电流调整方法、装置、电子设备及存储介质 |
US20230205538A1 (en) * | 2021-12-23 | 2023-06-29 | Intel Corporation | Adaptive dynamic dispatch of micro-operations |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2504224B2 (ja) * | 1989-10-12 | 1996-06-05 | 三菱電機株式会社 | デ―タ処理装置 |
JPH10207859A (ja) | 1989-12-15 | 1998-08-07 | Hitachi Ltd | 消費電力制御方法,半導体集積回路装置およびマイクロプロセッサ |
US6564328B1 (en) * | 1999-12-23 | 2003-05-13 | Intel Corporation | Microprocessor with digital power throttle |
US6636976B1 (en) * | 2000-06-30 | 2003-10-21 | Intel Corporation | Mechanism to control di/dt for a microprocessor |
JP2004013820A (ja) | 2002-06-11 | 2004-01-15 | Matsushita Electric Ind Co Ltd | クロック制御回路 |
JP2004287919A (ja) * | 2003-03-24 | 2004-10-14 | Mitsubishi Electric Corp | 演算装置及び制御装置及び演算処理装置及び演算方法及び演算プログラム |
JP2004334641A (ja) * | 2003-05-09 | 2004-11-25 | Fujitsu Ltd | 情報処理装置および記録媒体、並びにプロセッサ |
JP4185104B2 (ja) * | 2006-02-28 | 2008-11-26 | 株式会社東芝 | 情報機器及びその動作制御方法 |
US7992017B2 (en) * | 2007-09-11 | 2011-08-02 | Intel Corporation | Methods and apparatuses for reducing step loads of processors |
US20090182986A1 (en) * | 2008-01-16 | 2009-07-16 | Stephen Joseph Schwinn | Processing Unit Incorporating Issue Rate-Based Predictive Thermal Management |
US7937563B2 (en) * | 2008-05-27 | 2011-05-03 | Advanced Micro Devices, Inc. | Voltage droop mitigation through instruction issue throttling |
-
2009
- 2009-12-14 CN CN2009801628922A patent/CN102652297A/zh active Pending
- 2009-12-14 EP EP09852255A patent/EP2515200A1/en not_active Withdrawn
- 2009-12-14 WO PCT/JP2009/070854 patent/WO2011074059A1/ja active Application Filing
- 2009-12-14 JP JP2011545869A patent/JP5283762B2/ja not_active Expired - Fee Related
-
2012
- 2012-06-12 US US13/494,604 patent/US20120254595A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20120254595A1 (en) | 2012-10-04 |
WO2011074059A1 (ja) | 2011-06-23 |
CN102652297A (zh) | 2012-08-29 |
EP2515200A1 (en) | 2012-10-24 |
JP5283762B2 (ja) | 2013-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5283762B2 (ja) | 演算処理装置、情報処理装置及びその制御方法 | |
JP4567972B2 (ja) | 処理集積回路の電力消費量を削減するための方法および装置 | |
JP5411587B2 (ja) | マルチスレッド実行装置、マルチスレッド実行方法 | |
US7627742B2 (en) | Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system | |
US8006070B2 (en) | Method and apparatus for inhibiting fetch throttling when a processor encounters a low confidence branch instruction in an information handling system | |
EP2073097B1 (en) | Transitioning a processor package to a low power state | |
KR101100470B1 (ko) | 멀티쓰레드 프로세서에서의 자동 저전력 모드 호출을 위한장치 및 방법 | |
JP5782565B2 (ja) | プロセッサのターボモード動作での電力効率を向上させる方法 | |
KR101410634B1 (ko) | 프로세서 대기 상태를 인에이블하기 위한 명령 | |
JP5073903B2 (ja) | ディジタル・パワー・スロットルを備えたマイクロプロセッサ | |
JP6058541B2 (ja) | コア単位電圧及び周波数制御の提供 | |
Seth et al. | Fast: Frequency-aware static timing analysis | |
US8181047B2 (en) | Apparatus and method for controlling power management by comparing tick idle time data to power management state resume time data | |
US7992017B2 (en) | Methods and apparatuses for reducing step loads of processors | |
TWI489266B (zh) | 指定應用程式執行緒的效能狀態之指令 | |
TW200305074A (en) | Multiple mode power throttle mechanism | |
WO2013137859A1 (en) | Providing energy efficient turbo operation of a processor | |
JP2013536532A (ja) | 処理ノードの動的パフォーマンス制御 | |
JP2000047872A (ja) | 低消費電力動作機能を備えたマイクロプロセッサ | |
KR20160065145A (ko) | 데이터 처리장치 및 추론 벡터 연산의 수행 제어방법 | |
Mochocki et al. | Practical on-line dvs scheduling for fixed-priority real-time systems | |
US20180284875A1 (en) | Power consumption reduction device, power consumption reduction method, and power consumption reduction program | |
JP7357790B2 (ja) | 情報処理システム及び情報処理システムの制御方法 | |
Islam et al. | Learning based power management for periodic real-time tasks | |
JP2006126947A (ja) | 情報処理装置、情報処理方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130514 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130528 |
|
LAPS | Cancellation because of no payment of annual fees |