(57)【要約】【課題】プロセッサに実行させるオブジェクトコードを生成するコンパイル処理を行う情報処理装置において、プロセッサで消費される電流の変化率を小さくすることにより、電源電圧降下を抑止し、回路の誤動作を防止する。【解決手段】コンパイル処理を行って生成したオブジェクトコードをプロセッサに与える情報処理装置が、ソースコードから求めた初期オブジェクトコードにおいて同時実行する命令数の変化率を求める命令トレース処理を行うトレース手段と、トレース手段により求められた変化率が所定の値以上であるとき、該変化率を小さくするように初期オブジェクトコードの各命令の入れ替え、又は初期オブジェクトコードにダミー命令の追加を行うことにより、最適オブジェクトコードを生成する手段とを備える。【選択図】  図１
2004334641.tif 000002
【特許請求の範囲】
【請求項１】
コンパイル処理を行って生成したオブジェクトコードをプロセッサに与える情報処理装置であって、
ソースコードから求めた初期オブジェクトコードにおいて同時実行する命令数の変化率を求める命令トレース処理を行うトレース手段と、
前記トレース手段により求められた変化率が所定の値以上であるとき、該変化率を小さくするように前記初期オブジェクトコードの各命令の入れ替えを行うことにより、最適オブジェクトコードを生成する命令入れ替え手段と
を備えることを特徴とする情報処理装置。
【請求項２】
コンパイル処理を行って生成したオブジェクトコードをプロセッサに与える情報処理装置であって、
ソースコードから求めた初期オブジェクトコードにおいて同時実行する命令数の変化率を求める命令トレース処理を行うトレース手段と、
前記トレース手段により求められた変化率が所定の値以上であるとき、該変化率を小さくするように前記初期オブジェクトコードにダミー命令の追加を行うことにより、最適オブジェクトコードを生成する命令追加手段と
を備えることを特徴とする情報処理装置。
【請求項３】
前記トレース手段は、前記命令トレース処理の代りに、各実行命令毎にプロセッサで消費する電流値に相関のある等価電流消費値を入力して、前記初期オブジェクトコードにおいて同時実行する各命令の等価電流消費値の総和の変化率を求める電流消費量トレース処理を行うことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
コンパイル処理により求められた初期オブジェクトコードから最適オブジェクトコードを生成するために情報処理装置を、
前記初期オブジェクトコードにおいて同時実行する命令数の変化率を求める命令トレース処理を行うトレース手段、
前記トレース手段により求められる変化率が所定の値以上であるとき、該変化率を小さくするように前記初期オブジェクトコードの各命令の入れ替え、又は前記初期オブジェクトコードにダミー命令の追加を行うことにより、最適オブジェクトコードを生成する手段
として機能させるためのプログラムを記録した記録媒体。
【請求項５】
情報処理装置のコンパイル処理により生成されるオブジェクトコードにしたがって各種の演算を行うプロセッサであって、
オブジェクトコードをデコードする命令デコーダ部と、
前記命令デコーダ部によるデコード結果に基づいて各種の演算を行う複数の演算回路と、
前記命令デコーダ部によるデコード結果に基づいてダミー命令のみを実行するダミー回路と
を備えることを特徴とするプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および記録媒体、並びにプロセッサに関し、特に、プロセッサに与えるオブジェクトコードを生成するコンパイル処理を行う情報処理装置、情報処理装置にコンパイル処理を実行させるプログラムを記録した記録媒体、および情報処理装置のコンパイル処理により生成されるオブジェクトコードにしたがって演算を行うプロセッサに関するものである。
【０００２】
【従来の技術】
半導体集積回路の電源は、電源ユニットから、基板や半導体パッケージの電源線を通って供給される。しかし、基板や半導体パッケージの電源線の伝播特性には、インダクタンス成分があるため、半導体集積回路で急激に電流消費が変化すると、電源電圧が降下して回路の動作速度が遅くなり、回路の誤動作を引き起こす恐れがある。
【０００３】
そこで、特開昭６３−５５５１号公報には、半導体集積回路において、容量素子（キャパシタ）を追加して接続することで、電源電圧降下を抑止することが提案されている。
【０００４】
図１２の（ａ）は、この特開昭６３−５５５１号公報に示された、半導体集積回路（ＬＳＩ）の内部回路に容量素子Ｃ１を追加して接続した構成を示す。ここで、インダクタンスＬ１、Ｌ２は、ＬＳＩの基板や半導体パッケージの電源線に含まれるインダクタンスを表す。Ｎ１、Ｎ２はＬＳＩ内部回路の電源線を示す。
【０００５】
また、特開２０００−２０７２０９号公報には、複数の演算器（ＡＬＵ）を有するプロセッサに、複数の命令を同時実行させるオブジェクトコードを生成するコンパイル処理を行う情報処理装置が示されている。
【０００６】
図１３は、特開２０００−２０７２０９号公報に示された、従来の情報処理装置が行うコンパイル処理を説明するための図である。
【０００７】
図１３の情報処理装置１０では、ソースコード２に対し通常のコンパイル処理およびスケジューリングを行う手順１１が実行される。このコンパイル結果に基づいて、パワーセーブを優先するスケジューリングを行うか否かが判定される。
【０００８】
パワーセーブを優先するスケジューリングを行う場合に、上記コンパイル結果において、演算を行わないことを指示するノンオペレーションコマンド（ＮＯＰ）が連続するようにコマンドの入れ替えを行う手順１２が実行される。
【０００９】
手順１２が終了すると、連続するＮＯＰ中の先頭のＮＯＰをＳＵＳＰＥＮＤコマンド（動作を一時停止することを指示するコマンド）に、最後のＮＯＰをＲＥＳＵＭＥコマンド（動作を再開することを指示するコマンド）に変換する手順１３が実行される。この手順１３が終了すると、情報処理装置１０は、その時点のオブジェクトコード３を出力する。
【００１０】
図１３の情報処理装置１０が行うコンパイル処理では、演算器に実行させるプログラム（オブジェクトコード）において、非実行コマンド（ＮＯＰ）の連続する部分の先頭および最後を、パワーセーブコマンド（ＳＵＳＰＥＮＤ、ＲＥＳＵＭＥ）に変換している。このコマンド変換は、急激な電流変化を抑える効果をもっている。
【００１１】
【特許文献１】
特開昭６３−５５５１号公報
【００１２】
【特許文献２】
特開２０００−２０７２０９号公報
【００１３】
【発明が解決しようとする課題】
しかしながら、特開昭６３−５５５１号公報技術を適用した場合でも、半導体集積回路（ＬＳＩ）で急激に電流が変化する場合には、誤動作する恐れがある。
【００１４】
たとえば、図１２（ａ）の半導体集積回路（ＬＳＩ）の場合に、電源電圧Ｖ＝１．２Ｖ、インダクタンスＬ１＝Ｌ２＝０．１ｎＨ、キャパシタ容量Ｃ１＝１０ｎＦと仮定する。図１２（ｂ）は、ＬＳＩ内部回路を流れる電流Ｉ１に急激な変化が生じた場合を示し、図１２（ｃ）はシミュレーションによって求めた電源線Ｎ１側の電圧変化を示す。
【００１５】
図１２（ｂ）、（ｃ）に示したように、電源電圧１．２Ｖに対し、０．２５Ｖ以上の電圧降下がシミュレーションによって確認されている。この電圧降下により、回路遅延は２５％程度遅くなると予測され、誤動作の原因となる。
【００１６】
一方、図１３の従来例においても、パワーセーブコマンドの発行による消費する電流は、通常コマンドで消費する電流より十分に小さい。動作を再開するコマンド（ＲＥＳＵＭＥ）では、クロックのみが動作するので、例えば演算器のデータ演算に必要な消費電流は発生しない。複雑なプロセッサではデータ演算が複雑であるため、ＲＥＳＵＭＥ実行時の消費電力は通常動作の１／４程度と見積もられる。
【００１７】
例えば、図１３の従来例において、４つの命令を同時実行可能なＶＬＩＷ（ｖｅｒｙ＿ｌｏｎｇ＿ｉｎｓｔｒｕｃｔｉｏｎ＿ｗｏｒｄ）型プロセッサを、図１２の従来例と同様の回路定数で実現した場合を考える。
【００１８】
図１４は、図１３の情報処理装置１０の動作を説明するための図である。図１４（ａ）は情報処理装置１０によるコンパイル結果の一例を示し、図１４（ｂ）はそのコンパイル結果を実行した場合のＶＬＩＷ型プロセッサに生じる電流変化を示し、図１４（ｃ）はシミュレーションによって求めたＶＬＩＷ型プロセッサの電源線Ｎ１側の電圧変化を示す。
【００１９】
図１４に示したように、４つの命令全てがＮＯＰである状態から、ＲＥＳＵＭＥコマンド発行後、４命令同時に通常命令に遷移することをシミュレーションすると、電源電圧１．２Ｖに対し、約０．２０Ｖの電圧降下が発生する。これにより、回路速度が２０％程度遅くなることになり、回路誤動作の恐れがある。
【００２０】
本発明は、上記の点に鑑みてなされたものであり、プロセッサに実行させるオブジェクトコードを生成するコンパイル処理を行う情報処理装置において、プロセッサで消費される電流の変化率を小さくすることにより、電源電圧降下を抑止し、回路の誤動作を防止することを目的とする。
【００２１】
【課題を解決するための手段】
上記課題を解決するため、本発明の情報処理装置は、コンパイル処理を行って生成したオブジェクトコードをプロセッサに与える情報処理装置であって、ソースコードから求めた初期オブジェクトコードにおいて同時実行する命令数の変化率を求める命令トレース処理を行うトレース手段と、前記トレース手段により求められた変化率が所定の値以上であるとき、該変化率を小さくするように前記初期オブジェクトコードの各命令の入れ替えを行うことにより、最適オブジェクトコードを生成する命令入れ替え手段とを備えることを特徴とする。
【００２２】
上記課題を解決するため、本発明の情報処理装置は、コンパイル処理を行って生成したオブジェクトコードをプロセッサに与える情報処理装置であって、ソースコードから求めた初期オブジェクトコードにおいて同時実行する命令数の変化率を求める命令トレース処理を行うトレース手段と、前記トレース手段により求められた変化率が所定の値以上であるとき、該変化率を小さくするように前記初期オブジェクトコードにダミー命令の追加を行うことにより、最適オブジェクトコードを生成する命令追加手段とを備えることを特徴とする。
【００２３】
また、上記課題を解決するため、本発明の記録媒体は、コンパイル処理により求められた初期オブジェクトコードから最適オブジェクトコードを生成するために情報処理装置を、前記初期オブジェクトコードにおいて同時実行する命令数の変化率を求める命令トレース処理を行うトレース手段、前記トレース手段により求められる変化率が所定の値以上であるとき、該変化率を小さくするように前記初期オブジェクトコードの各命令の入れ替え、又は前記初期オブジェクトコードにダミー命令の追加を行うことにより、最適オブジェクトコードを生成する手段
として機能させるためのプログラムを記録したことを特徴とする。
【００２４】
さらに、上記課題を解決するため、本発明のプロセッサは、情報処理装置のコンパイル処理により生成されるオブジェクトコードにしたがって各種の演算を行うプロセッサであって、オブジェクトコードをデコードする命令デコーダ部と、前記命令デコーダ部によるデコード結果に基づいて各種の演算を行う複数の演算回路と、前記命令デコーダ部によるデコード結果に基づいてダミー命令のみを実行するダミー回路とを備えることを特徴とする。
【００２５】
本発明の情報処理装置によれば、プロセッサに実行させるプログラムのソースコードを変換してオブジェクトコードを生成するコンパイル処理を行う際に、プロセッサで消費される電流の変化率を小さくすることができる。したがって、プロセッサにおける電源電圧降下を抑止し、電源ノイズを抑えることができる。また、プロセッサの誤動作を防止することができ、プロセッサの処理速度を高速化できる。
【００２６】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【００２７】
図１は、本発明の情報処理装置が行うコンパイル処理を説明するための図である。
【００２８】
図１の情報処理装置２０では、手順２１において、ソースコード２に対し従来のコンパイル処理を行い、プロセッサが理解できるオブジェクトコードに変換する。さらに、処理の高速化あるいは電力を削減するために、手順２１において、命令の順番を入れ替える処理（スケジューリング）を行う。この手順２１により生成されるコードを初期オブジェクトコード４と呼ぶ。
【００２９】
次に、情報処理装置２０は手順２３で、この初期オブジェクトコード４において同時実行する命令数の変化率を求める命令トレース処理を行う。
【００３０】
手順２３の命令トレース処理が終了すると、情報処理装置２０は手順２４において、命令トレース処理で求められた同時実行命令数の変化率が所定の許容値以下であるか否かを判定する。
【００３１】
この手順２４の判定結果がＹＥＳである場合、情報処理装置２０は、その時点のオブジェクトコードを最適オブジェクトコード３として出力する。
【００３２】
手順２４の判定結果がＮＯである場合、情報処理装置２０は手順２２において、初期オブジェクトコード４の命令入れ替え、または初期オブジェクトコード４にダミー命令の追加を行う。
【００３３】
本発明の情報処理装置では、プロセッサに実行させるオブジェクトコードの生成時に、同時実行命令数の変化率を求める命令トレース処理を行う。その変化率が所定の許容値以上であれば、変化率が小さくなるように、命令の入れ替え、もしくは、本来の演算には必要でないダミー命令に置き換える。
【００３４】
あるいは、同時実行命令数をトレースする代わりに、命令ごとに定義された電流消費量に相関のある値を用いて、各クロックサイクルで消費する電流を予測して、その変化率が所定の値以上であれば、変化率が小さくなるように、命令の入れ替え、もしくは、本来の演算には必要でないダミー命令に置き換える。
【００３５】
図１の情報処理装置によれば、プロセッサで消費される電流の変化率を小さくすることができ、電源電圧降下が抑えられ、誤動作を阻止することができる。
【００３６】
図２は、本発明の第１実施例の情報処理装置を適用してＶＬＩＷ型プロセッサを動作させるシステムの構成を示す。
【００３７】
図２のコンパイル処理用情報処理装置２０は、ソースコード２に対しコンパイル処理を行って最適オブジェクトコード３を出力する。ＶＬＩＷ型プロセッサ３０は、命令キャッシュ部３１と、命令フェッチ部３２と、命令デコーダ部３３と、データキャッシュ３４と、レジスタファイル３５と、４個の演算器３６（＃１〜＃４）とを含む。
【００３８】
図２のシステムでは、情報処理装置２０と、メインメモリ４０と、プロセッサ３０とがバス３８によって互いに接続されている。
【００３９】
この実施例の情報処理装置２０は、まず、プロセッサ３０をどのように動作させるかを記述したソースコードを入力する。情報処理装置２０は、図１に示した処理を行って生成した最適オブジェクトコード３を出力する。このオブジェクトコード３は、メインメモリ４０に蓄積される。
【００４０】
プロセッサ３０が実行するタイミングにあわせて、メインメモリ４０のオブジェクトコードはプロセッサ３０内部の命令キャッシュ３１へ転送され、さらに、命令フェッチ部３２を通って、命令デコーダ部３３に転送される。
【００４１】
命令デコーダ部３３のデコード結果に基づいて、メインメモリ４０とデータキャッシュ３４間のデータ転送処理、データキャッシュ３４とレジスタファイル３５間のデータ転送処理、もしくは、レジスタファイル３５の値を演算してれレジスタファイル３５に書き込む等の処理を行う。
【００４２】
図３は、この実施例の情報処理装置の動作を説明するため図である。  図３（ａ）は手順２３で行われる命令トレース処理の結果を示し、図３（ｂ）は手順２２で行われる命令入れ替え処理の結果を示す。
【００４３】
例えば、図３（ａ）に示したように、初期オブジェクトコードが、４命令とも非実行命令（ＮＯＰ）が連続した後、同時に有効命令（ＩＮＳＴ＊＊）が実行させる順番になったと仮定する。
【００４４】
この初期オブジェクトコードに対して、同時命令数トレースを行う。例えば、１個の有効命令に対して１が割当てられる関数を用意する。この関数の出力値を同時実行有効命令数と呼ぶ。
【００４５】
図３（ａ）の例では、ＣＹＣＬＥ０からＣＹＣＬＥ４では、全てＮＯＰであるので同時実行有効命令数は０であり、ＣＹＣＬＥ５からＣＹＣＬＥ６では、４つの命令が全て有効命令であるので同時実行有効命令数は４である。
【００４６】
このトレース結果から、ＣＹＣＬＥ４からＣＹＣＬＥ５にかけての変化率は、４と計算される。ここで、プロセッサの消費電力と電源のインダクタンス、容量値、回路のノイズ耐性から計算される同時実行有効命令数の変化率の許容最大値が１であると仮定する。
【００４７】
この場合、ＣＹＣＬＥ４からＣＹＣＬＥ５にかけての変化率４は、許容最大値１を超えていることになる。したがって、図１の手順２４の判定結果はＮＯとなり、命令入れ替え処理を行う手順２２が実行される。
【００４８】
この命令入れ替え処理では、初期オブジェクトコードにおいて変化率が許容最大値以下になるように有効命令の順番を替える。例えば、図３（ｂ）に示したように、＃１〜＃３の命令を、１ＣＹＣＬＥずつ先行して実行する順番にする。このコードで同時実行有効命令数の変化率を計算すると、最大でも１であるため、許容最大値以下になることがわかる。したがって、この実施例の情報処理装置２０は、図３（ｂ）のコードを、最適オブジェクトコード３として出力する。
【００４９】
図４は、本発明の第１実施例の情報処理装置の動作を説明するための図である。
【００５０】
図４（ａ）は情報処理装置２０により生成される最適オブジェクトコード（コンパイル結果）の一例を示し、図４（ｂ）はそのコンパイル結果を実行した場合のＶＬＩＷ型プロセッサ３０に生じる電流変化を示し、図４（ｃ）はシミュレーションによって求めたＶＬＩＷ型プロセッサ３０の電圧変化を示す。
【００５１】
図４（ａ）の最適オブジェクトコードをＶＬＩＷ型プロセッサ３０で実行すると、図４（ｂ）で示したように消費する電流量は、ＣＹＣＬＥ２から徐々に増加してＣＹＣＬＥ５で最大値に達する。このときの電流変化量は、図１４の従来例の場合より小さく、これによる電圧降下は０．１Ｖ以下に抑えられる（図４（ｃ））。この電圧降下による回路速度の劣化は１０％以下であり、回路誤動作を抑止できる。
【００５２】
次に、図５は本発明の第２実施例の情報処理装置の動作を説明するための図である。図５（ａ）は手順２３で行われる命令トレース処理の結果を示し、図５（ｂ）は手順２２で行われる処理の結果を示す。
【００５３】
図５の実施例は、図３の実施例で行われる有効命令の入れ替え処理の代わりに、本来の演算には不要であるダミー命令（ＤＵＭＭＹ）をＮＯＰの場所に追加するダミー命令追加処理を行うことを特徴とする。
【００５４】
ダミー命令では、プロセッサでの電流消費を有効命令と同じ程度にしておく。例えば、次のＣＹＣＬＥで必ず書き換わるレジスタに、データを書き込む命令をダミー命令とする。このダミー命令に対しては、同時実行有効命令数の算出時に、有効命令と同じように１が割当てられる。
【００５５】
図５（ｂ）に示したように、ダミー命令を追加することにより、同時実行有効命令数の変化率は、最大許容値以下に抑えることができる。これにより、図４で示した電流消費や電圧降下と同じ効果を得ることができる。この実施例では、有効命令の順番を入れ替える必要がないので、同じレジスタを使用する有効命令の前後関係等を注意する必要がなく、容易に効果を得ることができる。
【００５６】
図６は、本発明の第３実施例の情報処理装置を示す。図７は、図６の情報処理装置の動作を説明するための図である。
【００５７】
図１の情報処理装置２０が同時実行命令数の変化率を求める命令トレース処理を行うのに対し、本実施例の情報処理装置２０Ａは、図６に示したように、各命令のプロセッサにおける電流消費量に依存した数値（等価電流消費値）を使用する電流消費量トレース処理を行うことを特徴とする。
【００５８】
図６の情報処理装置２０Ａでは、ソースコード２に対し通常のコンパイル処理およびスケジューリングを行う手順２１により、初期オブジェクトコード４が生成される。この初期オブジェクトコード４において同時実行する各命令の等価電流消費値の総和の変化率を求める合計等価電流消費量トレース処理を行う手順２３Ａが実行される。
【００５９】
この電流消費量トレース処理が終了すると、合計等価電流消費量の変化率が許容最大値以下であるか否かを判定する手順２４Ａが実行される。
【００６０】
この手順２４Ａの判定結果がＹＥＳである場合、情報処理装置２０Ａは、その時点のオブジェクトコードを最適オブジェクトコード３として出力する。
【００６１】
手順２４Ａの判定結果がＮＯである場合、情報処理装置２０Ａは、初期オブジェクトコード４の命令入れ替え、または初期オブジェクトコード４にダミー命令の追加を行う手順２２を実行する。
【００６２】
図６の情報処理装置２０Ａでは、例えば、各命令を次の３種類に分類する。（ａ）メインメモリ４０とデータキャッシュ３４間のデータ転送処理（ＩＮＳＴＡ＊＊）、（ｂ）データキャッシュ３４とレジスタファイル３５間のデータ転送処理（ＩＮＳＴＢ＊＊）、（ｃ）レジスタファイル３５の値を演算してレジスタファイル３５に書き込む処理（ＩＮＳＴＣ＊＊）。ここで、「＊＊」は各演算器３６の番号（＃１〜＃４）に対応する。
【００６３】
図６の実施例では、それぞれの命令を実行する時にプロセッサ３０で消費する電流に相関する等価電流消費値を、各命令に割当てる。例えば、ＩＮＳＴＡ＊＊には０．５、ＩＮＳＴＢ＊＊には１．０、ＩＮＳＴＣ＊＊には１．５をそれぞれ割当てる。各ＣＹＣＬＥで同時実行する命令の等価電流消費値を合算した総和を合計等価電流消費量と呼ぶ。
【００６４】
図７（ａ）に示した初期オブジェクトコードにおいて合計等価電流消費量を求め、ＣＹＣＬＥ間での合計等価電流消費量の変化率を求めると、最大値は４となる。
【００６５】
ここで、プロセッサ３０の消費電力と電源のインダクタンス、容量値、回路のノイズ耐性から計算される合計等価電流消費量の変化率の許容最大値が１であるとする。
【００６６】
図７（ａ）の初期オブジェクトコードでは、ＣＹＣＬＥ４からＣＹＣＬＥ５への変化率４が、許容最大値１を超えていることになる。
【００６７】
この場合、図６の情報処理装置２０Ａでは、初期オブジェクトコードに対し命令入れ替え又はダミー命令追加の手順２２が実行される。この実施例の手順２２では、変化率が許容最大値以下になるように有効命令の順番を入れ替える。
【００６８】
その結果、図７（ｂ）に示した最適オブジェクトコードでは、＃１〜＃３の各命令を、１ＣＹＣＬＥずつ先行して実行する順番にしている。この最適オブジェクトコードで合計等価電流消費量の変化率を計算すると、最大でも１になるため、許容最大値以下になることがわかる。
【００６９】
この実施例の情報処理装置３０は、図７（ｂ）の最適オブジェクトコードを、プロセッサ３０のメインメモリ４０へ出力する。この最適オブジェクトコードをＶＬＩＷ型プロセッサ３０で実行すると、図４の実施例で示したような効果を示し、回路誤動作を抑止できる。
【００７０】
図８は、本発明の第４実施例の情報処理装置の動作を説明するための図である。
【００７１】
図８の実施例では、図７の実施例における有効命令の入れ替え処理を行う代わりに、本来の演算には不要であるダミー命令（ＤＵＭＭＹ）をＮＯＰの場所に追加する。ダミー命令では、プロセッサでの電流消費を有効命令と同じ程度にしておく。例えば、次のＣＹＣＬＥで必ず書き換わるレジスタに、データを書き込む命令をダミー命令とする。
【００７２】
このダミー命令は、合計等価電流消費量の変化率を算出するときには、ダミー命令を実行する場合に消費する電流に相関する値を割当てる。図８の例では、各有効命令の等価電流消費量の値としては、図７の実施例と同様に、ＩＮＳＴＡ＊＊には０．５、ＩＮＳＴＢ＊＊には１．０、ＩＮＳＴＣ＊＊には１．５をそれぞれ割当てる。
【００７３】
図８の実施例では、等価電流消費量として１．０を割当てたダミー命令を追加することにより、合計等価電流消費量の変化率は、最大許容値以下に抑えることができる。これにより、図４の実施例で示した電流消費や電圧降下と同じ効果を得ることができる。
【００７４】
図８の実施例では、有効命令の順番を入れ替える必要がないので、同じレジスタを使用する有効命令の前後関係等を注意する必要がなく、容易に効果を得ることができる。
【００７５】
また、図８の実施例においては、同時実行有効命令数ではなく、合計等価電流消費量で評価されるので、命令数が常に１であるプロセッサ（ＶＬＩＷ型でないプロセッサ）にも適用することができる。
【００７６】
図９は、本発明の第５実施例の情報処理装置と４命令同時発行可能なプロセッサを示す。図１０は、図９のプロセッサ内に設けられる電力消費ダミー回路の一例を示す。
【００７７】
図９の実施例のプロセッサ３０は、は、上述の第２実施例又は第４実施例の情報処理装置が生成する最適オブジェクトコードで使用するダミー命令の実行を実現する回路を、本来必要な回路とは別にプロセッサ３０内部に設けて構成していることを特徴としている。
【００７８】
図９に示したように、プロセッサ３０は、命令デコーダ部３３によるデコード結果に基づいてダミー命令のみを実行する電力消費ダミー回路３７を備えている。電力消費ダミー回路３７は、例えば、図１０に示したように、ＡＮＤ回路７１と、複数のインバータ回路７２を接続した回路である。
【００７９】
上述の第２実施例又は第４実施例の最適オブジェクトコードでは、本来必要な回路を使用して、消費電流が有効命令と同程度であり、かつ、ダミー命令が追加されない場合と同じ処理をするような命令を見つけ出す必要がある。
【００８０】
しかし、この実施例のプロセッサ３０によれば、あらかじめプロセッサ３０にダミー命令のみを実行するダミー回路３７を備えているめ、他の命令に依存することなく、ダミー命令を追加することができ、コンパイラ処理を高速化できる。
【００８１】
次に、図１１は、本発明の一実施例の情報処理装置を適用したマルチプロセッサの一例を示す。
【００８２】
上記の各実施例では、ＶＬＩＷ型プロセッサを例としてあげて説明しているが、図１１のように複数のプロセッサが１チップに搭載されたマルチプロセッサチップにも同様に適用することができる。
【００８３】
図１１のマルチプロセッサチップ１００には、内部メインプロセッサ３０−１、内部サブプロセッサ３０−２等が搭載されている。各プロセッサ３０−１、３０−２等はＶＬＩＷ型プロセッサである。この場合、本実施例の情報処理装置が生成する最適オブジェクトコードに含まれる、ＶＬＩＷ型の各命令（＃１〜＃４）は、各プロセッサに与える命令に読み替えられる。
【００８４】
（付記１）  コンパイル処理を行って生成したオブジェクトコードをプロセッサに与える情報処理装置であって、ソースコードから求めた初期オブジェクトコードにおいて同時実行する命令数の変化率を求める命令トレース処理を行うトレース手段と、前記トレース手段により求められる変化率が所定の値以上であるとき、該変化率を小さくするように前記初期オブジェクトコードの各命令の入れ替えを行うことにより、最適オブジェクトコードを生成する命令入れ替え手段とを備えることを特徴とする情報処理装置。
【００８５】
（付記２）  コンパイル処理を行って生成したオブジェクトコードをプロセッサに与える情報処理装置であって、ソースコードから求めた初期オブジェクトコードにおいて同時実行する命令数の変化率を求める命令トレース処理を行うトレース手段と、前記トレース手段により求められる変化率が所定の値以上であるとき、該変化率を小さくするように前記初期オブジェクトコードにダミー命令の追加を行うことにより、最適オブジェクトコードを生成する命令追加手段とを備えることを特徴とする情報処理装置。
【００８６】
（付記３）  前記トレース手段は、前記命令トレース処理の代りに、各実行命令毎にプロセッサで消費する電流値に相関のある等価電流消費値を入力して、前記初期オブジェクトコードにおいて同時実行する各命令の等価電流消費値の総和の変化率を求める電流消費量トレース処理を行うことを特徴とする付記１又は２記載の情報処理装置。
【００８７】
（付記４）  コンパイル処理により求められた初期オブジェクトコードから最適オブジェクトコードを生成するために情報処理装置を、前記初期オブジェクトコードにおいて同時実行する命令数の変化率を求める命令トレース処理を行うトレース手段、前記トレース手段により求められる変化率が所定の値以上であるとき、該変化率を小さくするように前記初期オブジェクトコードの各命令の入れ替え、又は前記初期オブジェクトコードにダミー命令の追加を行うことにより、最適オブジェクトコードを生成する手段として機能させるためのプログラムを記録した記録媒体。
【００８８】
（付記５）  情報処理装置のコンパイル処理により生成されるオブジェクトコードにしたがって各種の演算を行うプロセッサであって、オブジェクトコードをデコードする命令デコーダ部と、前記命令デコーダ部によるデコード結果に基づいて各種の演算を行う複数の演算回路と、前記命令デコーダ部によるデコード結果に基づいてダミー命令のみを実行するダミー回路とを備えることを特徴とするプロセッサ。
【００８９】
（付記６）  コンパイル処理を行って生成したオブジェクトコードをプロセッサに与える情報処理方法であって、ソースコードから求めた初期オブジェクトコードにおいて同時実行する命令数の変化率を求める命令トレース処理を行うトレース手順と、前記トレース手順により求められる変化率が所定の値以上であるとき、該変化率を小さくするように前記初期オブジェクトコードの各命令の入れ替え、又は前記初期オブジェクトコードにダミー命令の追加を行うことにより、最適オブジェクトコードを生成する手順とを有することを特徴とする情報処理方法。
【００９０】
（付記７）  前記トレース手順は、前記命令トレース処理の代りに、各実行命令毎にプロセッサで消費する電流値に相関のある等価電流消費値を入力して、前記初期オブジェクトコードにおいて同時実行する各命令の等価電流消費値の総和の変化率を求める電流消費量トレース処理を行うことを特徴とする付記６記載の情報処理方法。
【００９１】
（付記８）  コンパイル処理により求められた初期オブジェクトコードから最適オブジェクトコードを生成するために情報処理装置を、前記初期オブジェクトコードにおいて同時実行する命令数の変化率を求める命令トレース処理を行うトレース手段、前記トレース手段により求められる変化率が所定の値以上であるとき、該変化率を小さくするように前記初期オブジェクトコードの各命令の入れ替え、又は前記初期オブジェクトコードにダミー命令の追加を行うことにより、最適オブジェクトコードを生成する手段として機能させるためのプログラム。
【００９２】
（付記９）  前記トレース手段は、前記命令トレース処理の代りに、各実行命令毎にプロセッサで消費する電流値に相関のある等価電流消費値を入力して、前記初期オブジェクトコードにおいて同時実行する各命令の等価電流消費値の総和の変化率を求める電流消費量トレース処理を行うことを特徴とする付記４記載の記録媒体。
【００９３】
（付記１０）  前記トレース手段は、前記命令トレース処理の代りに、各実行命令毎にプロセッサで消費する電流値に相関のある等価電流消費値を入力して、前記初期オブジェクトコードにおいて同時実行する各命令の等価電流消費値の総和の変化率を求める電流消費量トレース処理を行うことを特徴とする付記８記載のプログラム。
【００９４】
【発明の効果】
以上説明したように、本発明の情報処理装置によれば、プロセッサに実行させるプログラムのソースコードを変換してオブジェクトコードを生成するコンパイル処理を行う際に、プロセッサで消費される電流の変化率を小さくすることができる。したがって、プロセッサにおける電源電圧降下を抑止し、電源ノイズを抑えることができる。また、プロセッサの誤動作を防止することができ、プロセッサの処理速度を高速化できる。
【００９５】
【図面の簡単な説明】
【図１】本発明の情報処理装置が行うコンパイル処理を説明するための図である。
【図２】本発明の第１実施例の情報処理装置と４命令同時発行可能なプロセッサを示すブロック図である。
【図３】本発明の第１実施例の情報処理装置の動作を説明するため図である。
【図４】本発明の第１実施例の情報処理装置の動作を説明するための図である。
【図５】本発明の第２実施例の情報処理装置の動作を説明するための図である。
【図６】本発明の第３実施例の情報処理装置を示すブロック図である。
【図７】本発明の第３実施例の情報処理装置の動作を説明するための図である。
【図８】本発明の第４実施例の情報処理装置の動作を説明するための図である。
【図９】本発明の第５実施例の情報処理装置と４命令同時発行可能なプロセッサを示すブロック図である。
【図１０】図９のプロセッサ内に設ける電力消費ダミー回路の一例を示すブロック図である。
【図１１】本発明の一実施例の情報処理装置を適用したマルチプロセッサの一例を示すブロック図である。
【図１２】電流が急激に変化する場合の、従来の半導体集積回路の電源電圧降下を説明するための図である。
【図１３】従来の情報処理装置が行うコンパイル処理を説明するための図である。
【図１４】図１３の情報処理装置の動作を説明するための図である。
【符号の説明】
２  ソースコード
３  最適オブジェクトコード
４  初期オブジェクトコード
２０  情報処理装置
３０  プロセッサ
３１  命令キャッシュ部
３２  命令フェッチ部
３３  命令デコーダ部
３４  データキャッシュ部
３５  レジスタファイル
３６  演算器
３７  電力消費ダミー回路
３８  バス
４０  メインメモリ
３０−１  内部メインプロセッサ
３０−２  内部サブプロセッサ
１００  マルチプロセッサ
【図１】
2004334641.tif 000003
【図２】
2004334641.tif 000004
【図３】
2004334641.tif 000005
【図４】
2004334641.tif 000006
【図５】
2004334641.tif 000007
【図６】
2004334641.tif 000008
【図７】
2004334641.tif 000009
【図８】
2004334641.tif 000010
【図９】
2004334641.tif 000011
【図１０】
2004334641.tif 000012
【図１１】
2004334641.tif 000013
【図１２】
2004334641.tif 000014
【図１３】
2004334641.tif 000015
【図１４】
2004334641.tif 000016