(57)【要約】  命令解読部によって解読された命令を演算部に発行するとともに、第１の所定期間に発行した命令によって演算部が消費した消費電流値と、第２の所定期間に発行可能な命令によって演算部が消費する電流の消費電流予定値とを算出し、消費電流値に対する消費電流予定値の変化量が所定の制限値を超える場合、第２の所定期間において一部の命令の発行を抑止する。
2011074059.tif 000002
【特許請求の範囲】
【請求項１】
命令を保持する命令保持部と、
前記命令保持部から取得した命令を解読する命令解読部と、
発行された命令を実行する演算部と、
前記命令解読部によって解読された命令を前記演算部に発行するとともに、第１の所定期間に発行した命令によって前記演算部が消費した消費電流値と、前記解読された命令のうち第２の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出し、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第２の所定期間において前記解読された命令のうち一部の命令の発行を抑止する命令発行制御部と、
を有することを特徴とする演算処理装置。
【請求項２】
前記演算処理装置において、
前記命令発行制御部は、
前記命令発行部は、前記発行を抑止した命令の代わりに、前記演算部に対してダミー命令を発行することを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記演算処理装置において、
前記消費電流値は、前記第１の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、前記第２の所定期間における前記演算部の消費電流の平均値であることを特徴とする請求項１又は２記載の演算処理装置。
【請求項４】
前記演算処理装置において、
前記消費電流値は、前記第１の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、現サイクルにおける前記演算部の消費電流の予定値であることを特徴とする請求項１又は２に記載の演算処理装置。
【請求項５】
命令を格納する記憶装置と、前記記憶装置に接続された演算処理装置とを有する情報処理装置において、
前記演算処理装置は、
前記記憶装置から取得した命令を保持する命令保持部と、
前記命令保持部から取得した命令を解読する命令解読部と、
発行された命令を実行する演算部と、
前記命令解読部によって解読された命令を前記演算部に発行するとともに、第１の所定期間に発行した命令によって前記演算部が消費した消費電流値と、前記解読された命令のうち第２の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出し、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第２の所定期間において前記解読された命令のうち一部の命令の発行を抑止する命令発行制御部と、
を有することを特徴とする情報処理装置。
【請求項６】
前記情報処理装置において、
前記命令発行制御部は、
前記命令発行部は、前記発行を抑止した命令の代わりに、前記演算部に対してダミー命令を発行することを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記情報処理装置において、
前記消費電流値は、前記第１の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、前記第２の所定期間における前記演算部の消費電流の平均値であることを特徴とする請求項５又は６記載の情報処理装置。
【請求項８】
前記情報処理装置において、
前記消費電流値は、前記第１の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、現サイクルにおける前記演算部の消費電流の予定値であることを特徴とする請求項５又は６に記載の情報処理装置。
【請求項９】
命令を保持する命令保持部を有する演算処理装置の制御方法において、
前記演算処理装置が有する命令解読部が、前記命令保持部から取得した命令を解読するステップと、
前記演算処理装置が有する演算部が、発行された命令を実行するステップと、
前記演算処理装置が有する命令発行制御部が、第１の所定期間に発行した命令によって前記演算部が消費した消費電流値と、前記解読された命令のうち第２の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出するステップと、
前記演算処理装置が有する命令発行制御部が、前記命令解読部によって解読された命令を前記演算部に発行するとともに、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第２の所定期間において前記解読された命令のうち一部の命令の発行を抑止するステップと、
を有することを特徴とする演算処理装置の制御方法。
【請求項１０】
前記演算処理装置の制御方法において、
前記命令発行制御部は、
前記命令発行部は、前記発行を抑止した命令の代わりに、前記演算部に対してダミー命令を発行することを特徴とする請求項９記載の演算処理装置の制御方法。
【請求項１１】
前記演算処理装置の制御方法において、
前記消費電流値は、前記第１の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、前記第２の所定期間における前記演算部の消費電流の平均値であることを特徴とする請求項９又は１０記載の演算処理装置の制御方法。
【請求項１２】
前記演算処理装置の制御方法において、
前記消費電流値は、前記第１の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、現サイクルにおける前記演算部の消費電流の予定値であることを特徴とする請求項９又は１０に記載の演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置、情報処理装置及びその制御方法に関する。
【背景技術】
【０００２】
プロセッサの技術として、以下の方法が知られている。すなわち、命令ごとに定義された電流消費量に相関のある値を用いて各クロックサイクルでの消費電流を予測し、その変化率が所定の値以上であれば変化量が小さくなるように命令を入れ替え、もしくはダミー命令に置き換える方法である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３３４６４１号公報
【特許文献２】特開平１０−２０７８５９号公報
【特許文献３】特開２００４−１３８２０号公報
【非特許文献】
【０００４】
【非特許文献１】"Ｔｈｅ  ＳＰＡＲＣ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｍａｎｕａｌ"，ｖｅｒｓｉｏｎ  ９，ＳＰＡＲＣ  Ｉｎｔｅｒｎａｔｉｏｎａｌ，Ｉｎｃ．，Ｓａｎｔａ  Ｃｌａｒａ，  Ｃａｌｉｆｏｒｎｉａ、ＳＡＶ０９Ｒ１４５９９１２
【発明の概要】
【発明が解決しようとする課題】
【０００５】
簡易な構成により確実に消費電流の変化を抑制し得る演算処理装置を提供することが目的である。
【課題を解決するための手段】
【０００６】
命令解読部によって解読された命令を演算部に発行するとともに、第１の所定期間に発行した命令によって演算部が消費した消費電流値と、第２の所定期間に発行可能な命令によって演算部が消費する電流の消費電流予定値とを算出し、消費電流値に対する消費電流予定値の変化量が所定の制限値を超える場合、第２の所定期間において一部の命令の発行を抑止する。
【発明の効果】
【０００７】
上記構成により、簡易な構成により確実に演算処理装置における消費電流の変化を抑制し得る構成を提供することが可能である。
【図面の簡単な説明】
【０００８】
【図１】参考例のプロセッサにおける命令発行制御について説明するための、プロセッサの内部ブロック図である。
【図２】実施例のプロセッサにおける命令発行制御について説明するための、プロセッサの内部ブロック図である。
【図３】図２に示されるプロセッサの構成のうち、特に命令発行制御部および演算ユニットを抽出して示すブロック図である。
【図４】実施例のプロセッサにおける命令発行制御の方法について説明するための図（その１）である。
【図５】実施例のプロセッサにおける命令発行制御の方法について説明するための図（その２）である。
【図６】実施例のプロセッサにおける命令発行制御の方法について説明するための、電流値テーブルの構成例を示す図である。
【図７】実施例のプロセッサにおいて、命令の発行を制限する場合の例について説明するための図である。
【図８】実施例のプロセッサにおいて、ダミー命令を発行する場合の例について説明するための図である。
【図９】実施例のプロセッサにおける命令発行制御の方法について説明するための、プログラムにおける命令とアドレスとの関係の例を示す図である。
【図１０Ａ】実施例のプロセッサにおける命令発行制御の方法について説明するための動作フローチャート（モニタ手法１における消費電流増加時、その１）である。
【図１０Ｂ】実施例のプロセッサにおける命令発行制御の方法について説明するための動作フローチャート（モニタ手法１における消費電流増加時、その２）である。
【図１１】図１０Ａ、図１０Ｂに記載されたフローチャートにおける動作の一部を実行する回路の構成例を示す図である。
【図１２】実施例のプロセッサにおける命令発行制御の方法について説明するための動作フローチャート（モニタ手法１における消費電流減少時）である。
【図１３Ａ】実施例のプロセッサにおける命令発行制御の方法について説明するための動作フローチャート（モニタ手法２における消費電流増加時、その１）である。
【図１３Ｂ】実施例のプロセッサにおける命令発行制御の方法について説明するための動作フローチャート（モニタ手法２における消費電流増加時、その２）である。
【図１４】実施例のプロセッサにおける命令発行制御の方法について説明するための動作フローチャート（モニタ手法２における消費電流減少時）である。
【図１５】実施例のプロセッサを適用可能な情報処理装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【０００９】
以下に実施例について説明する。
【００１０】
実施例では、演算処理装置としての、半導体集積回路であるプロセッサにおいて、命令発行数、発行頻度を制御することにより電源ノイズの抑制を図る。尚、演算処理装置の具体例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＧＰＵ(Ｇｒａｐｈｉｃａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ(Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等が挙げられる。
【００１１】
プロセッサの低消費電力化技術は、情報通信機器の低消費電力化のために重要な技術である。プロセッサの低消費電力化においては、処理の実行に必要なレジスタにのみクロックを供給するクロックゲーティングや、処理の実行に必要なＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のみイネーブルにするなど、回路の動作率を抑える手法が有効である。しかしながらこれらの手法では、処理を実行している時と実行していない時との間の消費電流の差による電源ノイズの発生を防止するため、電流時間変化率であるｄＩ／ｄｔを抑制することが望まれる。
【００１２】
ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）内部の電源ノイズの低減のための手法として、ＬＳＩ内部に容量成分を有するキャパシタセル又はデカップリング容量セルなどを搭載し、あるいはパッケージやシステムボード上にもデカップリングキャパシタを搭載する方法がある。しかしながらデカップリング容量セルを用いるとチップ面積の増加やリーク電流の増加などを引き起こすことが考えられる。
【００１３】
また電源ノイズを低減するための回路制御方法として、回路の動作開始時にクロック周波数を低く抑えることで電流時間変化率ｄＩ／ｄｔを低く抑えるという手法がある。さらには、ソフトウェアのコンパイル段階で命令の消費電流を予測して、ソフトウェアで命令の発行を調整する手法がある。
【００１４】
しかしながら上記回路の動作開始時にクロック周波数を低く抑えて電流時間変化率ｄＩ／ｄｔを低く抑える方法では、サイクルベースで電流変化量をモニタするのではなく、所定の期間をかけて段階的にクロック周波数を変化させながらクロック信号を供給する。このためクロック周波数に対する大きなマージンを入れないと大きな電流変化による電源ノイズに対応できない場合が考えられる。また小さいノイズに対し過剰にクロック周波数を遅らせる事態も想定される。すなわちこの方法ではノイズに応じてクロック周波数を調整するものではないため、制御精度が低いと考えられる。
【００１５】
また上記ソフトウェアのコンパイル段階で命令の消費電流を予測して、命令の順序を変える等、ソフトウェアで命令の発行を調整する方法では、ソフトウェアでスケジューリングするためオブジェクトコードが大きくなると考えられる。またサイクルベースで命令の依存性を全て把握できるコンパイラが必要になることから実現が困難と考えられる。またパイプライン・インターロックなどの場合においてソフトウェアでは対応できない場合が想定される。ここでパイプライン・インターロック(pipeline interlock)とは，ハザード(hazard)を検出して回避する機構である。データ依存に係わるハザード(data dependent hazard)は、複数の命令が入り乱れて処理されるために，演算結果の書き込みや読み出しが機械語のプログラマが意図した順序とは前後してしまい，期待と異なった結果になってしまう状況をいう。ハザードを検出してパイプラインを停止することをパイプライン・インターロックという。パイプライン・インターロックでは命令の実行が停止されるため消費電流が減少することになり、このような消費電流の減少を緩和するために、"ダミー命令のみを実行するダミー回路"を使用する。ここで「ダミー命令」とは後続の実行命令に影響を与えない命令であり、「ダミー回路」は「ダミー命令」を実行して電流を消費し、消費電流の減少を緩和する回路である。特に大規模なシステムではパイプライン・インターロックによる消費電流の減少に対応するミー回路の規模が大きくなり、チップ面積の増加、消費電力等の増加等が考えられる。
【００１６】
次に以下に説明する実施例との比較のため、演算処理装置の参考例について説明する。図１は演算処理装置の参考例としてのプロセッサの内部構成を示すブロック図である。図１のプロセッサは例えばＳＰＡＲＣ（Ｓｃａｌａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ  ＡＲＣｈｉｔｅｃｔｕｒｅ）プロセッサであり、命令キャッシュ（命令保持部）１１，デコーダ（命令解読部）１２，命令発行制御部１３および演算機構１４を有する。演算機構１４は演算ユニット（演算部）１４Ａ，１４Ｂ，１４Ｃ，１４Ｄを含む。
【００１７】
命令キャッシュ１１はプログラムを保存するキャッシュメモリである。デコーダ１２はプログラムに含まれる命令をデコード（解読）する。命令発行制御部１３は命令を演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄに対し発行する。演算ユニット（ＡＬＵ，Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）１４Ａ，１４Ｂ，１４Ｃ，１４Ｄは、発行された命令を実行する。また複数の演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄが夫々演算機能を分担する。例えば演算ユニット１４Ａは固定小数点の加減算、演算ユニット１４Ｂは固定小数点の積算、演算ユニット１４Ｃは浮動小数点の加減算、演算ユニット１４Ｄは浮動小数点の積算を夫々実行するものとすることができる。なおこの例に限られることはなく、例えば複数の演算ユニットのうちの２以上の演算ユニットは同一の演算機能を実行するものとしてもよい。以下に当該プロセッサにおける動作のうち、特にプログラムの命令の発行に係る動作について説明する。
【００１８】
デコーダ１２は命令キャッシュ１１から命令をフェッチ（取得）してデコードし、命令発行制御部１３に渡す。命令発行制御部１３は、デコーダから渡された命令の演算ユニット１４Ａ〜１４Ｄへの発行を行う。より具体的には、命令発行制御部１３はデコーダ１２から渡された命令を内部レジスタ（図示を省略）に保持し、発行可能な命令を保持している内部レジスタ内のエントリを識別する。命令発行制御部１３は識別したエントリに保持された命令から発行する命令を選択する。実際に発行する命令の選択は、エントリに保持された命令を実行可能な演算ユニット毎に行う。その際、同一の演算ユニットが実行可能な命令間には優先順位をつけ、当該優先順位の順番で、発行する命令を選択する。命令発行制御部１３は選択した命令を、対応する演算ユニットに対して発行し、当該命令の発行後は対応するレジスタのエントリを解放する。
【００１９】
上記参考例のプロセッサでは、命令発行制御部１３が命令を発行する際に、演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄが命令を実行する際の消費電流の変化を特に考慮しないため、電源ノイズが発生する可能性がある。
【００２０】
実施例は電源ノイズの発生を防止する構成を有する。実施例によるプロセッサによれば、過去何サイクルかの間に発行された命令によって消費された電流の見積り値を記憶する。ここで上記見積り値はプロセッサ全体が消費する電流の見積り値である。そして記憶した電流値に対する、現サイクルで発行可能な命令から概算される消費電流値の増加量を計算する。そして計算された増加量がプロセッサの許容電流変化量（制限値と称する）を超えるかどうかを判定し、制限値を超える場合には、制限値を超えないように命令の発行を制限する。この制限値は、ノイズ解析シミュレーションの結果から、あるいは測定値から調べて得ることができる。
【００２１】
あるいは実施例によるプロセッサでは、過去何サイクルかの間に発行された命令によって消費された電流の見積り値を記憶し、当該電流値に対する、現サイクルで発行可能な命令から概算される消費電流値の減少量を計算する。計算された減少量がプロセッサの制限値を超えるかどうかを判定し、超える場合に制限値を超えないようにダミー命令を発行する。
【００２２】
ダミー命令として、例えば、ＳＰＡＲＣのアーキテクチャの場合、Ｇｌｏｂａｌ  ｒｅｇｉｓｔｅｒ  ｚｅｒｏ（ｇ０）を利用し、ｇ０を演算結果の格納レジスタであるデスティネーションとする命令等、プログラムの実行に影響が及ばない既存命令を適用することができる。あるいは、既存の回路を動かすだけでプロセッサの状態を変更しないような新規のダミー命令を定義して適用してもよい。ダミー命令は、制限値を越えない限り、できるだけ消費電流を大きく変化させる命令であることが望ましい。ここでＧｌｏｂａｌ  ｒｅｇｉｓｔｅｒ  ｚｅｒｏ（ｇ０）とは、読み出すと常に"０"が得られ、書き込んでも値が変わらないグローバルレジスタをいう。
【００２３】
あるいは実施例による命令発行装置では、過去何サイクルかの間に発行された命令もしくはそれらの命令によって消費される電流の見積り値を記憶する。そして当該電流値に対する、現サイクルで発行可能な命令から概算される電流値の増加量を計算する。計算された増加量がプロセッサの制限値を超えるかどうかを判定し、超える場合に制限値を超えないように命令の発行を制限する。
【００２４】
あるいは実施例による命令発行装置では、過去何サイクルかの間に発行された命令もしくはそれらの命令によって消費される電流の見積り値を記憶する。そして当該電流値に対する、現サイクルで発行可能な命令から概算される電流値の減少量を計算する。計算された減少量がプロセッサの制限値を超えるかどうかを判定し、超える場合に制限値を超えないように、後続の実行命令に影響を与えないダミー命令を発行する。
【００２５】
又、実施例では、Ｐ（ｔ）＞Ｐ（ｔ−１，ｔ−Ｎ）の場合には、Ｐ（ｔ）≦Ｐ（ｔ−１，ｔ−Ｎ）+ΔＰ１の条件が満たされるよう、現サイクルでの命令の発行を制限する。ここで変数ｔは現サイクル、Ｐ（ｔ−１，ｔ−Ｎ）は過去Nサイクルの命令から見積もられる平均消費電流、ΔＰ１はプロセッサで許容される制限値、Ｐ（ｔ）は現サイクルで発行可能な命令から見積もられる消費電流値を、夫々示す。
【００２６】
又、実施例では、Ｐ（ｔ）＜Ｐ（ｔ−１，ｔ−Ｎ）の場合にはＰ（ｔ）≧Ｐ（ｔ−１，ｔ−Ｎ）−ΔＰ２の条件が満たされるよう、現サイクルにおいて、後続の実行命令に影響を与えないダミー命令を発行する。ここで上記同様、変数ｔは現サイクル、Ｐ（ｔ−１，ｔ−Ｎ）は過去Nサイクルの命令から見積もられる平均消費電流、ΔＰ２はプロセッサで許容される制限値、Ｐ（ｔ）は現サイクルで発行可能な命令から見積もられる消費電流値を、夫々示す。
【００２７】
図２は実施例による演算処理装置としてのプロセッサの内部構成を説明するためのブロック図である。図２のプロセッサは例えばＳＰＡＲＣプロセッサであり、命令キャッシュ１１，デコーダ１２，命令発行制御部１３Ｘおよび演算機構１４を有する。演算機構１４は演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄを含む。
【００２８】
命令キャッシュ１１はプログラムを保存するキャッシュメモリである。デコーダ１２はプログラムに含まれる命令をデコードする。命令発行制御部１３Ｘは命令を演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄに対し発行する。演算ユニット（ＡＬＵ，Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）１４Ａ，１４Ｂ，１４Ｃ，１４Ｄは発行された命令を実行する。尚上記の如く、演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄは夫々が演算機能を分担する。
【００２９】
実施例によれば、プロセッサにおける命令発行機構（すなわちプロセッサにおける命令発行制御部１３Ｘ）が、従来の命令発行制御部の機能を有する命令発行制御機能部１３Ｒに加え、電流変化計算部１３Cおよび命令発行調整部１３Aを有する。電流変化計算部１３Ｃは発行される命令の種類・発行数に基づいて電流変化を計算し、計算された電流変化が予め設定した閾値を超えるときに命令発行を制限する指示を出力する。命令発行調整部１３Ａは当該指示を受け、発行する命令を制限する。その結果、電流時間変化率ｄＩ／ｄｔによる電源ノイズを低減することができる。
【００３０】
以下に図２のプロセッサにおける動作のうち、特に命令の発行に係る動作について説明する。デコーダ１２は命令キャッシュ１１から命令をフェッチし、デコードして命令発行制御部１３Ｘに渡す。命令発行制御部１３Ｘでは、デコードした結果から、命令発行制御機能部１３Ｒが発行可能な命令を選択し、選択された命令に対し、電流変化計算部１３Ｃが、以下のような消費電流変化に基づく発行制御を行う。
【００３１】
命令発行制御部１３Ｘの電流変化計算部１３Ｃは、発行可能な命令を保持している内部レジスタのエントリを識別する。そして識別されたエントリに保持された、発行可能な命令の種類、数量などに基づき、演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄが発行可能な命令を実行する際の消費電流値を計算する。電流変化計算部１３Ｃは更に、命令数・種類から過去数サイクル分の平均消費電流を計算する。当該過去の平均消費電流に対する、発行可能な命令を実行する際の消費電流値の変化量（単に変化量とも言う）が特定の閾値(すなわち制限値ΔＩ）を超えない範囲内で所定の期間内に発行可能な最大命令数を決め、命令発行調整部１３Ａに渡す。上記所定の期間は、本実施例の場合、１サイクルである。当該所定の期間は１サイクルに限られず、例えば数サイクルとすることもできる。尚、実施例のようにスーパースカラ方式のプロセッサの場合、同時発行可能な命令数の上限がハードウェアとして定められており、同時発行可能な命令数は当該上限以下であることが前提である。実施例のプロセッサにおいては、演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄの個数が４であるため、同時に発行可能な命令数の上限は４である。
【００３２】
命令発行調整部１３Ａは所定の期間内で発行可能な最大命令数を受け、演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄのうちの、発行する個々の命令に対応する夫々の演算ユニットに基づき、実際に発行する命令を選択する。また同時に発行することができる命令が複数ある場合、複数の命令の間に優先順位をつけ、優先順位に従って、１サイクル当たりに発行する命令数が発行可能な最大命令数に収まるよう、命令を選択する。尚、優先順位の決め方としては、例えば現在発行可能な命令のうちプログラム中の実行順序が先のもの(分岐命令を挟まなければ主記憶装置にプログラムが格納された場合に、アドレスの小さいもの)から順に、すなわちプログラムにおける命令の出現順に基づいて発行するようにすることができる。あるいは１サイクル当たりに発行する命令数をそのまま維持し、複数サイクルのうちの１サイクルでしか命令を発行しないようにして命令発行の頻度を制限することで発行する命令数を制限するようにしてもよい。そして命令発行制御部１３Ｘは、このようにして必要に応じて命令の発行数が制限された態様で、演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄのうちの、対応する演算ユニットに対し命令を発行する。その後命令発行制御部１３Ｘは、発行した命令のエントリを解放する。このようにして制限値を超えない範囲でなるべく多くの命令を発行するようにする。
【００３３】
すなわち電流変化計算部１３Ｃはデコーダ１２と演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄとの間に設けられ、図３に示される如く、計算部１３ＣＣ，命令モニタ１３Ｍ、および電流テーブル１３Ｔを有する。命令モニタ１３Ｍは現時点までの所定数のサイクルに発行された命令の種類や発行数をモニタする。電流テーブル１３Ｔは、命令の種類ごとに、対応する電流予測値を保存する（後述する図６参照）。尚、電流テーブル１３Ｔは上記の如く命令の種類に応じて電流予測値を保持してもよいし、あるいは命令の種類によらず、１命令当たりの電流値を保持するようにしてもよい。保存する命令の種類、電流予測値は、当該プロセッサが搭載されたＬＳＩの動作時に調整可能なように、プログラムから可変な構成としてもよい。また上記命令の種類に応じた電流予測値は、例えばＬＳＩの設計時に電力シミュレーションを行って予め求めることができる。または、実際に製造されたチップにおけるプロセッサ全体の消費電力を測定することで各命令の消費電力を求めて設定することもできる。
【００３４】
電流変化計算部１３Ｃの計算部１３ＣＣは、命令モニタ１３Ｍが保存している所定数のサイクル分の命令履歴と、現在発行可能な命令とを用い、電流テーブル１３Ｔを参考し、消費電流の変化量を予測する。消費電流が増加し、消費電流の変化量としての電流の増加量が制限値を超える場合、命令発行調整部１３Ａは、増加量が制限値以下に収まるように、発行可能な最大命令数を求め、発行可能な最大命令数と電流計算結果とを出力する。すなわちこの場合、現在発行する命令の発行を制限することにより演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄにおける消費電流を減らし、制限値以内に納める。他方電流が減少し、消費電流の変化量としての電流の減少量が制限値を超える場合、命令発行調整部１３Ａは、減少量が制限値以下に収まるように、必要なダミー命令の発行数を求め、必要なダミー命令の発行数と電流計算結果とを出力する。すなわちこの場合、プログラムに元から存在する命令に加えて、ダミー命令の発行により演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄにおける消費電流を増加させ、制限値以内に納める。
【００３５】
命令発行調整部１３Ａは、電流変化計算部１３Ｃから出力される発行可能な最大命令数あるいは必要なダミー命令の発行数に従い、所定の期間内に命令発行制御部１３Ｘから発行する命令を制限し、あるいは必要な発行数だけダミー命令を発行する。
【００３６】
実施例によれば、プロセッサの命令発行制御部１３Ｘに、電流変化計算部１３Ｃ、命令発行調整部１３Ａを設けることにより、実際に実行される命令に応じた、より精度の高い電流変化制御が可能になる。
【００３７】
以下、消費電流変化の計算手法の例について説明する。消費電流変化の計算手法としてモニタ手法１およびモニタ手法２があり、モニタ手法１およびモニタ手法２のうちのいずれを使用しても良い。
【００３８】
まず図４とともにモニタ手法１について説明する。モニタ手法１では、直前のＸ個のサイクルの命令数あるいは命令発行頻度に基づき、現在のサイクルにおける命令発行数あるいは命令発行頻度を制御する。以下に具体例を説明する。
【００３９】
許容する最大電流変化値（すなわち制限値）ΔＩは予め電流変化計算部１３Ｃに設定しておく。電流変化計算部１３Ｃの計算部１３ＣＣが命令モニタ１３Ｍおよび電流テーブル１３Ｔを参照し、直前のX個のサイクルに発行した命令の電流予測値の平均を計算する（計算結果をＡとする）。更に現在発行可能な命令の電流予測値も計算する（計算結果をBとする）。次に電流値の差分Ｂ−Ａを計算し、もしＢ−Ａ＞ΔＩであれば，電流変化計算部１３Ｃから、命令発行調整部１３Ａに対し、次に発行可能な最大命令数を渡す。他方Ｂ−Ａ＜−ΔＩであれば、電流変化計算部１３Ｃから、命令発行調整部１３Ａに対し、必要なダミー命令の発行数を指示する。消費電流変化の計算は１サイクル毎に行うようにしてもよいし、あるいは一定サイクル期間毎に行っても良い。ここで一定サイクル期間毎に行う方法とは、毎サイクルに消費電流変化の計算を行わず、所定数のサイクル毎に電流変化の計算を行う方法である。
【００４０】
次に図５とともにモニタ手法２について説明する。モニタ手法２では、現在のサイクルを含めた、現在と直前のＸ個のサイクルの命令数あるいは命令発行頻度と、更に前のＸ個のサイクルの命令数あるいは命令発行頻度とに基づき、現在のサイクルにおける命令発行数あるいは命令発行頻度を制御する。以下に具体例を説明する。
【００４１】
モニタ手法２においても、許容する最大電流変化値（すなわち制限値）ΔＩを予め電流変化計算部１３Ｃに設定しておく。電流変化計算部１３Ｃの計算部１３ＣＣが、命令モニタ１３Ｍおよび電流テーブル１３Ｔを参照し、現在のサイクルを含めた、現在と直前のX個のサイクルに発行した命令の電流予測値の平均（又は和）（Ａとする）と、更に前のX個のサイクルに発行した命令の電流予測値の平均（又は和）（Ｂとする）とを夫々計算し、相互に比較する。もしＢ−Ａ＞ΔＩであれば，電流変化計算部１３Ｃから、命令発行調整部１３Ａに対し、現在発行可能な最大命令数を渡す。もしＢ−Ａ＜−ΔＩであれば、電流変化計算部１３Ｃから、命令発行調整部１３Ａに対し、必要なダミー命令の発行数を指示する。上記Xの値は、対処すべき電源ノイズの周波数帯域に応じて設定する。尚、高周波帯域のノイズはチップに実装されるデカップリング容量セル等により除去するものとし、よって上記対処すべき電源ノイズの周波数帯域は中低周波数の帯域である。一般に周波数の高いノイズは周期が短く、周波数の低いノイズは周期が長い。このため、上記Ｘの値を対処すべき電源ノイズの周波数帯域に応じて適宜調整することにより、当該電源ノイズをモニタすることができる。尚、この場合も消費電流変化の計算は１サイクル毎に行うようにしてもよいし、一定サイクル期間毎に行う方法としてもよい。ここで一定サイクル期間毎に行う方法とは、毎サイクルに消費電流変化の計算を行わず、所定数のサイクル毎に消費電流変化の計算を行う方法である。
【００４２】
次に、図６、図７とともに、上記モニタ手法１を適用した場合の具体的な動作例を用いて、上述の実施例のプロセッサにおける、消費電流増加時の動作説明を行う。
【００４３】
図６は上記電流テーブル１３Ｔの一例を示す。当該例の場合電流テーブル１３Ｔには、各命令の種類Ｉｎｓｔ１、Ｉｎｓｔ２，...，Ｉｎｓｔ８が格納されている。更に電流テーブル１３Ｔには、当該種類の命令の各々を上記４個の演算ユニット１４Ａ〜１４Ｄのうちの対応する演算ユニットが実行した場合の消費電流値として、３００，２００，...，２５０［μＡ］が夫々格納されている。
【００４４】
また電流変化計算部１３Ｃにおいて、電流変化制限値（単に制限値とも言う）としてΔＰ１＝５００［μＡ］が設定されているものとする。また上記の如く、当該プロセッサにおいて同時に発行可能な命令数は最大４（＃１，＃２，＃３，＃４）である。
【００４５】
図７は、Ｓ１，Ｓ２，Ｓ３の各時点における、過去の５サイクル（「５」〜「１」）で発行した命令と、現在のサイクル（「０」）において発行可能な命令を示す。例えば図７、上段の時点Ｓ１では、過去５サイクルで発行された命令は無く、現在発行可能な命令はＩｎｓｔ１，Ｉｎｓｔ２，Ｉｎｓｔ３，Ｉｎｓｔ４であることが示されている。
【００４６】
また、図７中、同時に発行可能な命令＃１，＃２，＃３，＃４の各々を実行しない場合の１命令当たりの消費電流値を夫々２０［μＡ］とする。
【００４７】
また、モニタ期間をＮ＝４［サイクル］と設定する。図７の時点Ｓ１の場合、過去４サイクル（「４」〜「１」）では、同時に発行可能な命令＃１，＃２，＃３，＃４のいずれも実行されていない。このため、その間の演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄの消費電流（単に消費電流とも言う）は、２０×４×４＝３２０［μＡ］であり、過去４サイクルにおける1サイクル当たりの平均消費電流Ｐ（ｔ−１，ｔ−４）は３２０／４＝８０［μＡ］と得られる。他方現在発行可能な命令Ｉｎｓｔ１，Ｉｎｓｔ２，Ｉｎｓｔ３，Ｉｎｓｔ４の消費電流値Ｐ（ｔ）は３００＋２００＋２５０＋１５０＝９００［μＡ］と得られる。その結果、変化量はＰ（ｔ）−Ｐ（ｔ−１，ｔ−４）＝８２０［μＡ］ となり、制限値ΔＰ１＝５００［μＡ］より、３２０［μＡ］大きい。したがって当該４サイクルのモニタ期間の次のサイクルにおける命令発行数を制限する。その結果命令発行調整部１３Ａでは制限された命令を発行する。図７の例では、アドレス順に、命令Ｉｎｓｔ１，Ｉｎｓｔ２命令が選択される（発行可能な最大命令数＝２）。これは、更に命令Ｉｎｓｔ３を選択した場合、合計３個の命令Ｉｎｓｔ１，Ｉｎｓｔ２，Ｉｎｓｔ３を発行した場合の変化量は、３００＋２００＋２５０＋２０−８０＝６９０［μＡ］となり、制限値５００［μＡ］を超えるからである。この場合結果的に現在発行可能な４個の命令Ｉｎｓｔ１，Ｉｎｓｔ２，Ｉｎｓｔ３，Ｉｎｓｔ４のうち、アドレス順が早い２個の命令Ｉｎｓｔ１，Ｉｎｓｔ２を発行し、残りの２個の命令Ｉｎｓｔ３，Ｉｎｓｔ４の発行を、次サイクル以降に遅らせる（図７の中段の時点Ｓ２）。
【００４８】
次に図７の中段の時点Ｓ２の場合、現在発行可能な命令は４命令Ｉｎｓｔ５，Ｉｎｓｔ６，Ｉｎｓｔ３，Ｉｎｓｔ４である。このうち２命令Ｉｎｓｔ３，Ｉｎｓｔ４は上記の如く前のサイクルで発行が遅らされたものであり、他の２命令Ｉｎｓｔ５，Ｉｎｓｔ６は新たに命令発行制御部１３Ｘに与えられた命令である。この場合、過去４サイクルのモニタ期間における平均電流値Ｐ（ｔ＋１−１，ｔ＋１−４)は（２０×４×３＋２０×２＋３００＋２００）／４＝１９５［μＡ］と得られる。他方、発行可能な上記４命令Ｉｎｓｔ５，Ｉｎｓｔ６，Ｉｎｓｔ３，Ｉｎｓｔ４の消費電流値Ｐ（ｔ＋１）は２５０＋２００＋２５０＋１５０＝８５０［μＡ］と得られる。その結果変化量はＰ（ｔ＋１）−Ｐ（ｔ＋１−１，ｔ＋１−４）＝６５５［μＡ］ となり、制限値ΔＰ１＝５００［μＡ］)より１５５［μＡ］大きい。したがって 当該４サイクルのモニタ期間の次のサイクルにおける命令発行数を制限する。命令発行調整部１３Ａは発行数が制限された命令を発行する。図７の例では、アドレス順で３命令Ｉｎｓｔ３，Ｉｎｓｔ４，Ｉｎｓｔ５が選択される（発行可能な最大命令数＝３）。結果として当該３命令Ｉｎｓｔ３，Ｉｎｓｔ４，Ｉｎｓｔ５が発行され、残りの１命令Ｉｎｓｔ６が次サイクル以降に遅らされる（図７の下段の時点Ｓ３）。
【００４９】
尚、制限値を超えた分の電流の大きさに基づいて、発行可能な最大命令数が異なるような構成とすることも可能である。また発行する命令の選択に関しては上記の如く、命令のアドレス順に選択するものとする。このようにして制限値を越えない範囲で可能な限り多くの命令を同時発行するように調整する。また前のサイクル以前で遅らせた命令を優先的に発行するようにしてもよい。
【００５０】
次に、図６、図８とともに、上記モニタ手法１を適用した場合の具体的な動作例を用いて、上述の実施例のプロセッサにおける、消費電流減少時の動作説明を行う。
【００５１】
電流変化計算部１３Ｃにおいて、制限値を上記ΔＰ１同様、ΔＰ２＝５００［μＡ］と設定し、同時に発行可能な命令数も上記同様最大４とする。また上記同様、同時に発行可能な命令＃１，＃２，＃３，＃４の各々が実行されない場合の消費電流を、命令１個当たり２０［μＡ］とする。又、上記同様モニタ期間Ｎ＝４［サイクル］と設定する。
【００５２】
図８の最上段の時点Ｓ１１において、過去４サイクル（「４」〜「１」）のモニタ期間に発行された命令が命令モニタ１３Ｍによりモニタされる。図６の電流テーブル１３Ｔの例を参照すると、過去４サイクルの平均電流値Ｐ(ｔ−１，ｔ−４）が９２５［μＡ］と得られる。他方現在（サイクル「０」）発行可能な命令が特にないため、電流値Ｐ（ｔ）は８０［μＡ］と得られる。その結果変化量はＰ（ｔ−１，ｔ−４）−Ｐ（ｔ）＝８４５［μＡ］ と得られ、制限値ΔＰ２=５００［μＡ］より、３４５［μＡ］大きい。したがって電流変化計算部１３Ｃは必要なダミー命令の発行数を決定し、命令発行調整部１３Ａにわたす。図６の電流テーブル１３Ｔによれば、ダミー命令（ｄｕｍｍｙ）１個当りの消費電流値＝２００［μＡ］である。したがって変化量を３４５［μＡ］以下に納めるためには、２００＜３４５＋２０［μＡ］、２００×２＝４００＞３４５＋２０×２［μＡ］であるので、ダミー命令が２個必要となる。したがって同時に発行可能な命令のうちの命令＃１、＃２としてダミー命令を夫々２個（ｄｕｍｍｙ,ｄｕｍｍｙ）発行するよう、必要なダミー命令の発行数＝２として、命令発行調整部１３Ａに指示する。命令発行調整部１３Ａは指示に従って同時に発行可能な命令のうちの＃１、＃２としてダミー命令を夫々２個（ｄｕｍｍｙ,ｄｕｍｍｙ）発行する（図８の中断の時点Ｓ１２）。
【００５３】
更に図８の中断の時点Ｓ１２では、次のサイクル（「０」）にも発行可能な命令がない。したがって、過去４サイクルの平均電流値Ｐ（ｔ＋１−１，ｔ＋１−４）は７９７．５［μＡ］、現在発行可能な命令の電流値Ｐ（ｔ＋１)は８０［μＡ］と得られる。その間の変化量はＰ（ｔ＋１−１，ｔ＋１−４）−Ｐ（ｔ＋１）=７１７．５［μＡ］ と得られ、制限値ΔＰ２＝５００［μＡ］より２１７．５［μＡ］大きい。変化量を２１７．５［μＡ］以下に納めるためには、２００＜２１７．５＋２０［μＡ］、２００×２＝４００＞２１７．５＋２０×２［μＡ］であるので、ダミー命令が２個必要となる。したがって同時に発行可能な命令のうちの#３、#４としてダミー命令を２個（ｄｕｍｍｙ,ｄｕｍｍｙ）発行するよう、必要なダミー命令の発行数＝２として、命令発行調整部１３Ａに指示する。命令発行調整部１３Ａは指示に従って同時に発行可能な命令のうちの#３、#４としてダミー命令を夫々２個（ｄｕｍｍｙ,ｄｕｍｍｙ）発行する（図８の下段、時点Ｓ１３）。
【００５４】
次に図９乃至図１４とともに、上述の実施例によるプロセッサにおける、消費電流変化に基づいた命令発行制御の動作を説明するためのフローチャートについて説明する。
【００５５】
図９は、デコーダ１２から命令発行制御部１３Ｘに渡される命令Ｉｎｓｔ（１）、Ｉｎｓｔ（２），...，Ｉｎｓｔ（Ｍ）の夫々の消費電流値Ｉと、プログラム中のアドレス（ｉ）との関係を示す。消費電流値Ｉは、図６に示す如くの、電流テーブル１３Ｔによって得るものとする。
【００５６】
図１０Ａは、モニタ手法１で消費電流が増加する際の動作フローチャート（その１）である。図１０Ａ中、ステップＳ２１で、命令キャッシュ１１からフェッチされた命令が、デコーダ１２でデコードされる。ステップＳ２１Ｒ，Ｓ２２で、命令発行制御部１３Ｘの命令発行制御機能部１３Ｒは、デコードされた命令から、同時発行可能なＭ個の命令Ｉｎｓｔ（１）、Ｉｎｓｔ（２），...，Ｉｎｓｔ（Ｍ）を選択する。以後命令発行制御部１３Ｘは、ステップＳ２３，Ｓ２４，Ｓ２６、Ｓ２７のループ動作を行う。当該ループ動作では、ｉが初期値Ｍから順に１ずつ減少し、ｉ＝１となる迄の間、ステップＳ２６の判断結果がＹＥＳとなると当該ループ動作が終了する。
【００５７】
ステップＳ２４では、電流変化計算部１３Ｃの計算部１３ＣＣにより、上記Ｍ個の命令のうち１番目からｉ番目までの命令Ｉｎｓｔ（１）、Ｉｎｓｔ（２），...，Ｉｎｓｔ（ｉ）につき、消費電流の合計Ｐ（ｔ）が算出される。ステップＳ２５では、電流変化計算部１３Ｃの計算部１３ＣＣにより、過去のＮサイクル分の消費電流の平均値Ｐ（ｔ−１，ｔ−Ｎ）が算出される。そしてステップＳ２６では、上記ｉ番目の命令までの消費電流の合計Ｐ（ｔ）と、過去Ｎサイクルの平均電流値Ｐ（ｔ−１，ｔ−Ｎ）に上記制限値ΔＰ１を加えた値とが比較される。
【００５８】
その結果、ｉ番目の命令までの消費電流の合計Ｐ（ｔ）が、過去Ｎサイクルの平均電流値Ｐ（ｔ−１，ｔ−Ｎ）に上記制限値ΔＰ１を加えた値以下となる（ＹＥＳ）まで，上記ループ動作が続行される。ここでｉの初期値はＭであり、最初、上記ｉ番目の命令までの消費電流の合計Ｐ（ｔ）はＭ個の命令分の消費電流である。この時点で当該Ｐ（ｔ）が過去Ｎサイクルの平均電流値Ｐ（ｔ−１，ｔ−Ｎ）に上記制限値ΔＰ１を加えた値以下（ＹＥＳ）であれば、ループ動作を終了し（ステップＳ２７）、電流変化計算部１３Ｃは発行可能な最大命令数＝Ｍを命令発行調整部１３Ａに通知する。命令発行調整部１３Ａは上記の如く優先順位に従って、演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄのうちの対応するものに対し、命令を発行する。ここで優先順位には上記の如く、同時に発行することができる命令が複数ある場合の複数の命令の間の優先順位が含まれる。
【００５９】
他方上記最初の時点で上記Ｐ（ｔ）が過去Ｎサイクルの平均電流値Ｐ（ｔ−１，ｔ−Ｎ）に上記制限値ΔＰ１を加えた値を超える（ＮＯ）場合、ループ動作が続行される。そして上記の如く、Ｐ（ｔ）が過去Ｎサイクルの平均電流値Ｐ（ｔ−１，ｔ−Ｎ）に上記制限値ΔＰ１を加えた値以下となった場合（ＹＥＳ）、ループ動作が終了される。その結果、現在発行可能なＭ個の命令のうちアドレスが大きい方から順に一命令ずつ順次減らされて行き、算出されたＰ（ｔ）が過去Ｎサイクルの平均電流値Ｐ（ｔ−１，ｔ−Ｎ）に上記制限値ΔＰ１を加えた値以下となるまで減らされる。したがって発行可能なＭ個の命令のうちのアドレスが小さい方から順に選んで行き、Ｐ（ｔ）が過去の平均電流値Ｐ（ｔ−１，ｔ−Ｎ）に制限値ΔＰ１を加えた値を超える直前までの（１乃至ｉ番目の）命令が、最終的に選択される。そして当該最終的に選択された命令の情報が、命令発行調整部１３Ａに渡される。命令発行調整部１３Ａは当該最終的に選択された１乃至ｉ番目の命令を、現サイクルにおいて演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄに発行する（ステップＳ２８）。なおステップＳ２４のＩｘは、現サイクルにおける各命令当りの消費電流値を表す（図９参照）。
【００６０】
尚、図１０Ａの場合ループ動作を行っているが、同様の結果を得る目的で例えば図１１の回路を用いることができる。図１１の回路は、加算器Ａ１，Ａ２，Ａ３と、比較器Ｃ１，Ｃ２，Ｃ３，Ｃ４とを有する。制限値ΔＰ１が比較器Ｃ１、Ｃ２，Ｃ３，Ｃ４の各々が有する一方の入力に入力される。また図１１の例の場合、Ｍ個の発行可能な命令として、説明の便宜上、４個の命令（ａｄｄｒ１の命令、ａｄｄｒ２の命令、ａｄｄｒ３の命令、ａｄｄｒ４の命令）を想定しているが、発行可能な命令数が５個以上となっても同様の回路構成で対応可能である。尚、上記ａｄｄｒ１の命令、ａｄｄｒ２の命令、ａｄｄｒ３の命令、ａｄｄｒ４の命令は、例えば、夫々、算術演算としての加算（ＡＤＤ）命令、減算（ＳＵＢ）命令、論理演算としてのＡＮＤ命令、ＯＲ命令等とすることができる。
【００６１】
加算器Ａ１はａｄｄｒ１の命令およびａｄｄｒ２の命令の計２命令のついての消費電流の合計を求める。加算器Ａ２は加算器Ａ１の出力とａｄｄｒ３の命令についての消費電流との合計、すなわち、ａｄｄｒ１，ａｄｄｒ２、ａｄｄｒ３の計３命令のついての消費電流の合計を求める。同様に加算器Ａ３は、加算器Ａ２の出力とａｄｄｒ４の命令についての消費電流の合計、すなわち、ａｄｄｒ１，ａｄｄｒ２、ａｄｄｒ３，ａｄｄｒ４の計４命令のついての消費電流の合計を求める。そして比較器Ｃ１、Ｃ２，Ｃ３，Ｃ４は夫々、ａｄｄｒ１の命令についての消費電流、加算器Ａ１の出力、加算器Ａ２の出力、加算器Ａ３の出力の夫々と、ΔＰ１とを比較する。すなわち比較器Ｃ１はａｄｄｒ１の命令に係る消費電流Ｐ（ｔ）とΔＰ１とを比較し、比較器Ｃ２はａｄｄｒ１，ａｄｄｒ２の夫々の命令に係る合計の消費電流Ｐ（ｔ）とΔＰ１とを比較する。同様に比較器Ｃ３はａｄｄｒ１，ａｄｄｒ２，ａｄｄｒ３の夫々の命令に係る合計の消費電流Ｐ（ｔ）とΔＰ１とを比較する。そして比較器Ｃ４はａｄｄｒ１，ａｄｄｒ２，ａｄｄｒ３，ａｄｄｒ４の夫々の命令に係る合計の消費電流Ｐ（ｔ）とΔＰ１とを比較する。
【００６２】
各比較器Ｃ１〜Ｃ４は、Ｐ（ｔ）がΔＰ以上の場合に１を出力し、Ｐ（ｔ）がΔＰ未満の場合に０を出力する。そして図１１の回路は、比較器Ｃ１〜Ｃ４の出力として、アドレスの選択信号ＡＤ［１：４］を生成する。例えばＡＤ［１：４］＝００００時にａｄｄｒ１〜４の４命令を発行、ＡＤ［１：４］＝０００１時にａｄｄｒ１〜３の３命令を発行するように設定できる。同様にＡＤ［１:４］=００１１時にａｄｄｒ１〜２の２命令を発行、ＡＤ［１:４］＝０１１１時にａｄｄｒ１の１命令を発行するように設定できる。
【００６３】
図１０Ｂは、モニタ手法１で消費電流が増加する際の動作フローチャート（その２）である。図１０Ｂの動作フローチャート（その２）は、上述した図１０Ａの動作フローチャート（その１）とは異なる方法の例を示す。図１０Ｂの動作フローチャート（その２）中、ステップＳ２１乃至Ｓ２７は、図１０Ａの動作フローチャート（その１）中、ステップＳ２１乃至Ｓ２７と同様であり、重複する説明を省略する。図１０Ｂの動作フローチャート（その２）の場合、ステップＳ２７Ａでダミー命令を追加することができる。上記の如く、ステップＳ２７では、Ｐ（ｔ）が過去Ｎサイクルの平均電流値Ｐ（ｔ−１，ｔ−Ｎ）に上記制限値ΔＰ１を加えた値以下（ＹＥＳ）であれば、ループ動作を終了する。ここで、例えば上記制限値ΔP1の値が小さい場合等には、当該ループ動作の終了時、上記Ｐ（ｔ）が上記過去Ｎサイクルの平均電流値Ｐ（ｔ−１，ｔ−Ｎ）よりも小さい場合、すなわち消費電流が減少する場合も想定される。そのような場合に、上記Ｐ（ｔ）と、Ｐ（ｔ−１，ｔ−Ｎ）との間の差(消費電流の減少量)に応じた消費電流のダミー命令を追加して消費電流の減少を緩和することができる。この目的のためのダミー命令として、図６とともに上記した消費電流値＝２００［μＡ］のダミー命令に加え、例えば消費電流値＝１００［μＡ］のダミー命令等を別途設けることにより、消費電流が異なる複数のダミー命令を用意しておくことができる。そして上記Ｐ（ｔ）と、Ｐ（ｔ−１，ｔ−Ｎ）との間の差(消費電流の減少量)に応じ、これら消費電流が異なる複数のダミー命令から、適宜最適な消費電流のダミー命令を選択して追加することができる。その場合、上記ステップＳ２３，Ｓ２４，Ｓ２６、Ｓ２７のループ動作で最終的に選択された１乃至ｉ番目の命令に上記ステップＳ２７Ａでダミー命令が追加される。そしてこのようにして得られた、発行すべき命令を示す情報が、命令発行調整部１３Ａに渡される。命令発行調整部１３Ａは当該渡された情報が示す命令を、現サイクルにおいて演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄに発行する（ステップＳ２８Ａ）。
【００６４】
図１２は、モニタ手法１で消費電流が減少する際の動作フローチャートである。図１２中、ステップＳ４１にて、命令キャッシュ１１からフェッチされた命令が、デコーダ１２でデコードされる。ステップＳ４１Ｒ，Ｓ４２にて、デコードされた命令は命令発行制御部１３Ｘの命令発行制御機能部１３Ｒに渡され、同時発行可能なＭ個の命令Ｉｎｓｔ（１）、Ｉｎｓｔ（２），...，Ｉｎｓｔ（Ｍ）が選択される。以後命令発行制御部１３Ｘは、ステップＳ４３，Ｓ４５，Ｓ４６のループ動作を行う。当該ループ動作では、ステップＳ４６で、発行するダミー命令（ｄｕｍｍｙ）の個数を順次１ずつ増加して行き、ステップＳ４５の判断結果がＹＥＳとなると当該ループ動作が終了する。
【００６５】
ステップＳ４３では、電流変化計算部１３Ｃの計算部１３ＣＣにより、上記Ｍ個の命令Ｉｎｓｔ（１）、Ｉｎｓｔ（２），...，Ｉｎｓｔ（Ｍ）とステップＳ４６で加えられたダミー命令とにつき、消費電流の合計Ｐ（ｔ）が算出される。ステップＳ４４では、電流変化計算部１３Ｃの計算部１３ＣＣにより、過去のＮサイクル分の消費電流の平均値Ｐ（ｔ−１，ｔ−Ｎ）が算出される。そしてステップＳ４５では、発行可能な命令およびダミー命令についての消費電流の合計Ｐ（ｔ）と、過去Ｎサイクルの平均電流値Ｐ（ｔ−１，ｔ−Ｎ）から上記制限値ΔＰ２を差し引いたと値が比較される。その結果、発行可能な命令およびダミー命令についての消費電流の合計Ｐ（ｔ）が、過去Ｎサイクルの平均電流値Ｐ（ｔ−１，ｔ−Ｎ）から上記制限値ΔＰ２を差し引いた値以上となる（ＹＥＳ）まで，ループ動作が続行される。その結果、必要に応じてダミー命令を加えた結果の消費電流値Ｐ（ｔ）が、過去Ｎサイクルの平均電流値Ｐ（ｔ−１，ｔ−Ｎ）から上記制限値ΔＰ２を差し引いた値以上となるようなダミー命令の発行数（すなわち「必要なダミー命令の発行数」）が決定される。このようにして得られた必要なダミー命令の発行数が、命令発行調整部１３Ａに渡される。命令発行調整部１３Ａは発行可能な命令に上記必要な発行数のダミー命令を加え合わせた命令を、現サイクルにおいて演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄに発行する（ステップＳ４７）。
【００６６】
図１３Ａは、モニタ手法２で消費電流が増加する際の動作フローチャート（その１）である。図１３Ａ中、ステップＳ６１にて、命令キャッシュ１１からフェッチされた命令が、デコーダ１２でデコードされる。ステップＳ６１Ｒ，Ｓ６２にて、デコードされた命令は命令発行制御部１３Ｘの命令発行制御機能部１３Ｒに渡され、同時発行可能なＭ個の命令Ｉｎｓｔ（１）、Ｉｎｓｔ（２），...，Ｉｎｓｔ（Ｍ）が選択される。以後命令発行制御部１３Ｘは、ステップＳ６３，Ｓ６４，Ｓ６６、Ｓ６７のループ動作を行う。当該ループ動作では、ｉが初期値Ｍから順に１ずつ減少し、ｉ＝１となる迄の間、ステップＳ６６の判断結果がＹＥＳとなると当該ループ動作が終了する。
【００６７】
ステップＳ６４では、電流変化計算部１３Ｃの計算部１３ＣＣにより、上記Ｍ個の命令のうち１番目からｉ番目までの命令Ｉｎｓｔ（１）、Ｉｎｓｔ（２），...，Ｉｎｓｔ（ｉ）についての消費電流の合計Ｐ（ｔ）が求められる。そして当該現サイクルの消費電流Ｐ（ｔ）を加えた、現在と過去のＮサイクル分の消費電流の平均値Ｐ（ｔ，ｔ−Ｎ＋１）が算出される。ステップＳ６５では、電流変化計算部１３Ｃの計算部１３ＣＣにより、更に過去のＮサイクル分の消費電流の平均値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）が算出される。そしてステップＳ６６では、上記現サイクルを加えた現在と過去のＮサイクル分の消費電流の平均値Ｐ（ｔ、ｔ−Ｎ＋１）と、更に過去Ｎサイクルの平均電流値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）に上記制限値ΔＰ１を加えた値とが比較される。その結果、現在と過去のＮサイクル分の消費電流の平均値Ｐ（ｔ、ｔ−Ｎ＋１）が、更に過去Ｎサイクルの平均電流値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）に上記制限値ΔＰ１を加えた値以下となる（ＹＥＳ）までループ動作が続行される。上記同様、ｉの初期値はＭであり、最初、上記ｉ番目の命令までの消費電流の合計Ｐ（ｔ）はＭ個の命令分の消費電流である。この時点で現在と過去のＮサイクル分の平均電流値Ｐ（ｔ、ｔ−Ｎ＋１）が、更に過去Ｎサイクルの平均電流値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）に上記制限値ΔＰ１を加えた値以下（ＹＥＳ）であればループ動作が終了され（ステップＳ６７）、電流変化計算部１３Ｃは、「発行可能な最大命令数＝Ｍ」を命令発行調整部１３Ａに通知する。命令発行調整部１３Ａは上記の如く優先順位に従って、演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄのうちの対応するものに対し、命令を発行する。
【００６８】
他方上記最初の時点で現在と過去のＮサイクル分の平均電流値Ｐ（ｔ、ｔ−Ｎ＋１）が、更に過去Ｎサイクルの平均電流値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）に上記制限値ΔＰ１を加えた値を超える（ＮＯ）場合、ループ動作が続行される。そして上記の如く、現在と過去のＮサイクル分の平均電流値Ｐ（ｔ、ｔ−Ｎ＋１）が、更に過去Ｎサイクルの平均電流値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）に上記制限値ΔＰ１を加えた値Ｐ（ｔ）以下となった時点（ＹＥＳ）でループ動作が終了される。その結果、現在発行可能なＭ個の命令のうちアドレスが大きい方から順に一命令ずつ順次減らされて行き、算出された現在と過去のＮサイクル分の平均電流値Ｐ（ｔ、ｔ−Ｎ＋１）が更に過去Ｎサイクルの平均電流値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）に上記制限値ΔＰ１を加えた値以下となるまで減らされる。したがって発行可能なＭ個の命令のうちのアドレスが小さい方から順に選んで行き、現在と過去の平均電流値Ｐ（ｔ、ｔ−Ｎ＋１）が更に過去の平均電流値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）に制限値ΔＰ１を加えた値を超える直前までの（１乃至ｉ番目の）命令が、最終的に選択される。そして当該最終的に選択された命令の情報が、命令発行調整部１３Ａに渡される。命令発行調整部１３Ａは当該最終的に選択された１乃至ｉ番目の命令を、現サイクルにおいて演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄに発行する（ステップＳ６８）。
【００６９】
図１３Ｂは、モニタ手法２で消費電流が増加する際の動作フローチャート（その２）である。  図１３Ｂの動作フローチャート（その２）は、上述した図１３Ａの動作フローチャート（その１）とは異なる方法の例を示す。図１３Ｂの動作フローチャート（その２）中、ステップＳ６１乃至Ｓ６７は、図１３Ａの動作フローチャート（その１）中、ステップＳ６１乃至Ｓ６７と同様であり、重複する説明を省略する。図１３Ｂの動作フローチャート（その２）の場合、ステップＳ６７Ａでダミー命令を追加することができる。上記の如く、ステップＳ６７では、現在と過去のＮサイクル分の平均電流値Ｐ（ｔ、ｔ−Ｎ＋１）が、更に過去Ｎサイクルの平均電流値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）に上記制限値ΔＰ１を加えた値以下であればループ動作が終了される。ここで、例えば上記制限値ΔP1の値が小さい場合等には、当該ループ動作の終了時、上記更に過去Ｎサイクルの平均電流値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）より、上記現在と過去のＮサイクル分の平均電流値Ｐ（ｔ、ｔ−Ｎ＋１）の方が小さい(すなわち消費電量が減少する)場合も想定され得る。このような場合に、必要に応じ、上記Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）と、上記Ｐ（ｔ、ｔ−Ｎ＋１）との間の差（消費電流の減少量）に応じた消費電流のダミー命令を追加することができる。この目的のためのダミー命令として、図６とともに上記した消費電流値＝２００［μＡ］のダミー命令に加え、例えば消費電流値＝１００［μＡ］のダミー命令等を別途設けることにより、消費電流の異なる複数のダミー命令を用意しておくことができる。そして上記Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）と、上記Ｐ（ｔ、ｔ−Ｎ＋１）との間の差（消費電流の減少量）に応じ、これら消費電流が異なるダミー命令から適宜最適な消費電流のダミー命令を選択して追加することができる。この場合、上記ステップＳ６３，Ｓ６４，Ｓ６６、Ｓ６７のループ動作で最終的に選択された１乃至ｉ番目の命令に上記ステップＳ６７Ａでダミー命令が追加される。そしてこのようにして得られた、発行すべき命令を示す情報が、命令発行調整部１３Ａに渡される。命令発行調整部１３Ａは当該渡された情報が示す命令を、現サイクルにおいて演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄに発行する（ステップＳ６８Ａ）。
【００７０】
図１４は、モニタ手法２で消費電流が減少する際のフローチャートである。図１４中、ステップＳ８１にて、命令キャッシュ１１からフェッチされた命令が、デコーダ１２でデコードされる。ステップＳ８１Ｒ，Ｓ８２にて、デコードされた命令が命令発行制御部１３Ｘの命令発行制御機能部１３Ｒに渡され、同時発行可能なＭ個の命令Ｉｎｓｔ（１）、Ｉｎｓｔ（２），...，Ｉｎｓｔ（Ｍ）が選択される。以後命令発行制御部１３Ｘは、ステップＳ８３，Ｓ８５，Ｓ８６のループ動作を行う。当該ループ動作では、ステップＳ８６で、発行するダミー命令の個数を１ずつ順次増加して行き、ステップＳ８５の判断結果がＹＥＳとなると当該ループ動作が終了する。
【００７１】
ステップＳ８３では、電流変化計算部１３Ｃの計算部１３ＣＣにより、上記Ｍ個の命令Ｉｎｓｔ（１）、Ｉｎｓｔ（２），...，Ｉｎｓｔ（Ｍ）とステップＳ４６で加えられたダミー命令とにつき、消費電流の合計Ｐ（ｔ）が算出される。更に、当該現サイクルの消費電流を加えた、現在と過去のＮサイクル分の消費電流と平均値Ｐ（ｔ、ｔ−Ｎ＋１）が算出される。ステップＳ８４では、電流変化計算部１３Ｃの計算部１３ＣＣにより、更に過去のＮサイクル分の消費電流の平均値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）が算出される。そしてステップＳ８５では、現サイクルの消費電流を加えた現在と過去のＮサイクル分の平均電流値Ｐ（ｔ、ｔ−Ｎ＋１）と、更に過去Ｎサイクルの平均電流値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）から上記制限値ΔＰ２を差し引いた値とが比較される。その結果、現サイクルの消費電流を加えた現在と過去のＮサイクル分の平均電流値Ｐ（ｔ、ｔ−Ｎ＋１）と、更に過去Ｎサイクルの平均電流値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）から上記制限値ΔＰ２を差し引いた値以上となる（ＹＥＳ）までループ動作が続行される。その結果、必要な個数のダミー命令を加えた結果の、現サイクルの消費電流を加えた現在と過去のＮサイクル分の平均電流値Ｐ（ｔ、ｔ−Ｎ＋１）が、更に過去Ｎサイクルの平均電流値Ｐ（ｔ−Ｎ，ｔ−２Ｎ＋１）から上記制限値ΔＰ２を差し引いた値以上となるようにダミー命令が順次１ずつ加えられる（ステップＳ８６）。このようにして得られた、必要なダミー命令の発行数が、命令発行調整部１３Ａに渡される。命令発行調整部１３Ａは発行可能な命令に上記必要な発行数のダミー命令を加え合わせた命令を、現サイクルにおいて演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄに発行する（ステップＳ８７）。
【００７２】
図１５は、上記実施例のプロセッサを適用可能なサーバ等の情報処理装置のハードウェア構成例を説明するためのブロック図である。当該情報処理装置は、演算処理装置であるプロセッサ１１０と、記憶装置であるメモリ１２０と、プロセッサ１１０とメモリ１２０とを接続するバス１３０とを含む。メモリ１２０は、プロセッサ１１０が実行する命令が書き込まれたプログラム、上記命令の実行対象であるデータ、上記命令の実行結果であるデータ等を格納する。プロセッサ１１０として、図２に記載された構成のものを適用することができる。その場合、図２に示されるプロセッサの命令キャッシュ１１が、メモリ１２０に格納されたプログラムを取得して保持し、デコーダ１２が当該プログラムの命令をフェッチ（取得）してデコード（解読）し、命令発行制御部１３Ｘがデコードされた命令を演算機構１４の演算ユニット１４Ａ、１４Ｂ，１４Ｃ、１４Ｄに発行する。演算ユニット１４Ａ，１４Ｂ，１４Ｃ，１４Ｄは、当該発行された命令を実行する。命令発行制御部１３Ｘは、図２乃至１４とともに上述した実施例のプロセッサにおける命令発行制御部１３Ｘと同様の構成を有する。
【図１】
2011074059.tif 000003
【図２】
2011074059.tif 000004
【図３】
2011074059.tif 000005
【図４】
2011074059.tif 000006
【図５】
2011074059.tif 000007
【図６】
2011074059.tif 000008
【図７】
2011074059.tif 000009
【図８】
2011074059.tif 000010
【図９】
2011074059.tif 000011
【図１０Ａ】
2011074059.tif 000012
【図１０Ｂ】
2011074059.tif 000013
【図１１】
2011074059.tif 000014
【図１２】
2011074059.tif 000015
【図１３Ａ】
2011074059.tif 000016
【図１３Ｂ】
2011074059.tif 000017
【図１４】
2011074059.tif 000018
【図１５】
2011074059.tif 000019
【手続補正書】
【提出日】平成24年11月28日(2012.11.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
命令を保持する命令保持部と、
前記命令保持部から取得した命令を解読する命令解読部と、
発行された命令を実行する演算部と、
前記命令解読部によって解読された命令を前記演算部に発行するとともに、第１の所定期間に発行した命令によって前記演算部が消費した消費電流値と、前記解読された命令のうち第２の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出し、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第２の所定期間において前記解読された命令のうち一部の命令の発行を抑止する命令発行制御部と、
を有し、
前記命令発行制御部は、前記発行を抑止した命令の代わりに、前記演算部に対して消費電流が異なる複数のダミー命令を発行し、
前記消費電流値は、前記第１の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、前記第２の所定期間における前記演算部の消費電流の平均値であることを特徴とする演算処理装置。
【請求項２】
命令を保持する命令保持部と、
前記命令保持部から取得した命令を解読する命令解読部と、
発行された命令を実行する演算部と、
前記命令解読部によって解読された命令を前記演算部に発行するとともに、第１の所定期間に発行した命令によって前記演算部が消費した消費電流値と、前記解読された命令のうち第２の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出し、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第２の所定期間において前記解読された命令のうち一部の命令の発行を抑止する命令発行制御部と、
を有し、
前記命令発行制御部は、前記発行を抑止した命令の代わりに、前記演算部に対して消費電流が異なる複数のダミー命令を発行し、
前記消費電流値は、前記第１の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、現サイクルにおける前記演算部の消費電流の予定値であることを特徴とする演算処理装置。
【請求項３】
命令を格納する記憶装置と、前記記憶装置に接続された演算処理装置とを有する情報処理装置において、
前記演算処理装置は、
前記記憶装置から取得した命令を保持する命令保持部と、
前記命令保持部から取得した命令を解読する命令解読部と、
発行された命令を実行する演算部と、
前記命令解読部によって解読された命令を前記演算部に発行するとともに、第１の所定期間に発行した命令によって前記演算部が消費した消費電流値と、前記解読された命令のうち第２の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出し、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第２の所定期間において前記解読された命令のうち一部の命令の発行を抑止する命令発行制御部と、
を有し、
前記命令発行制御部は、前記発行を抑止した命令の代わりに、前記演算部に対して消費電流が異なる複数のダミー命令を発行し、
前記消費電流値は、前記第１の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、前記第２の所定期間における前記演算部の消費電流の平均値であることを特徴とする情報処理装置。
【請求項４】
命令を格納する記憶装置と、前記記憶装置に接続された演算処理装置とを有する情報処理装置において、
前記演算処理装置は、
前記記憶装置から取得した命令を保持する命令保持部と、
前記命令保持部から取得した命令を解読する命令解読部と、
発行された命令を実行する演算部と、
前記命令解読部によって解読された命令を前記演算部に発行するとともに、第１の所定期間に発行した命令によって前記演算部が消費した消費電流値と、前記解読された命令のうち第２の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出し、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第２の所定期間において前記解読された命令のうち一部の命令の発行を抑止する命令発行制御部と、
を有し、
前記命令発行制御部は、前記発行を抑止した命令の代わりに、前記演算部に対して消費電流が異なる複数のダミー命令を発行し、
前記消費電流値は、前記第１の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、現サイクルにおける前記演算部の消費電流の予定値であることを特徴とする情報処理装置。
【請求項５】
命令を保持する命令保持部を有する演算処理装置の制御方法において、
前記演算処理装置が有する命令解読部が、前記命令保持部から取得した命令を解読するステップと、
前記演算処理装置が有する演算部が、発行された命令を実行するステップと、
前記演算処理装置が有する命令発行制御部が、第１の所定期間に発行した命令によって前記演算部が消費した消費電流値と、前記解読された命令のうち第２の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出するステップと、
前記演算処理装置が有する命令発行制御部が、前記命令解読部によって解読された命令を前記演算部に発行するとともに、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第２の所定期間において前記解読された命令のうち一部の命令の発行を抑止するステップと、
を有し、
前記命令発行制御部は、前記発行を抑止した命令の代わりに、前記演算部に対して消費電流が異なる複数のダミー命令を発行し、
前記消費電流値は、前記第１の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、前記第２の所定期間における前記演算部の消費電流の平均値であることを特徴とする演算処理装置の制御方法。
【請求項６】
命令を保持する命令保持部を有する演算処理装置の制御方法において、
前記演算処理装置が有する命令解読部が、前記命令保持部から取得した命令を解読するステップと、
前記演算処理装置が有する演算部が、発行された命令を実行するステップと、
前記演算処理装置が有する命令発行制御部が、第１の所定期間に発行した命令によって前記演算部が消費した消費電流値と、前記解読された命令のうち第２の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出するステップと、
前記演算処理装置が有する命令発行制御部が、前記命令解読部によって解読された命令を前記演算部に発行するとともに、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第２の所定期間において前記解読された命令のうち一部の命令の発行を抑止するステップと、
を有し、
前記命令発行制御部は、前記発行を抑止した命令の代わりに、前記演算部に対して消費電流が異なる複数のダミー命令を発行し、
前記消費電流値は、前記第１の所定期間における前記演算部の消費電流の平均値であり、
前記消費電流予測値は、現サイクルにおける前記演算部の消費電流の予定値であることを特徴とする演算処理装置の制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
命令を保持する命令保持部と、前記命令保持部から取得した命令を解読する命令解読部と、発行された命令を実行する演算部と、前記命令解読部によって解読された命令を前記演算部に発行するとともに、第１の所定期間に発行した命令によって前記演算部が消費した消費電流値と、第２の所定期間に発行可能な命令によって前記演算部が消費する電流の消費電流予定値とを算出し、前記消費電流値に対する前記消費電流予定値の変化量が所定の制限値を超える場合、前記第２の所定期間において一部の命令の発行を抑止する命令発行制御部と、を有し、前記命令発行制御部は、前記発行を抑止した命令の代わりに、前記演算部に対して消費電流が異なる複数のダミー命令を発行し、前記消費電流値は、前記第１の所定期間における前記演算部の消費電流の平均値であり、前記消費電流予測値は、前記第２の所定期間における前記演算部の消費電流の平均値である。
【国際調査報告】
2011074059.tif 000020
2011074059.tif 000021