JP2003296123A - 電力制御情報を付与する命令変換装置及び命令変換方法、命令変換を実現するプログラム及び回路、変換された命令を実行するマイクロプロセッサ - Google Patents
電力制御情報を付与する命令変換装置及び命令変換方法、命令変換を実現するプログラム及び回路、変換された命令を実行するマイクロプロセッサInfo
- Publication number
- JP2003296123A JP2003296123A JP2003017374A JP2003017374A JP2003296123A JP 2003296123 A JP2003296123 A JP 2003296123A JP 2003017374 A JP2003017374 A JP 2003017374A JP 2003017374 A JP2003017374 A JP 2003017374A JP 2003296123 A JP2003296123 A JP 2003296123A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- power control
- operation resource
- program
- microprocessor
- 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.)
- Pending
Links
Landscapes
- Microcomputers (AREA)
- Devices For Executing Special Programs (AREA)
- Power Sources (AREA)
- Executing Machine-Instructions (AREA)
Abstract
の規模を増大することなく、またユーザーの開発負担を
伴わず、ソフトウェアの汎用性を確保しながら、きめ細
かな電力制御を行うことを課題とする。 【解決手段】 命令の種類毎に、マイクロプロセッサ動
作時に各動作資源が動作するか否かに関する情報を予め
テーブルに保持する。このテーブルを参照し、マイクロ
プロセッサのプログラム実行時に所定命令区間動作しな
い動作資源を検出し、電力制御指示データを出力する。
この電力制御指示データを参照し、命令プログラムを記
述してから実行オブジェクトがデコードするまでの間
に、命令プログラムあるいは実行オブジェクトに電力制
御に関する情報を直接付与する。
Description
ブジェクトを命令記憶装置(命令メモリ・命令キャッシ
ュ等)から取得し、これをデコーダで解読し、その内容
により動作資源(演算装置や入力装置や出力装置や記憶
装置や制御装置)を制御し順序処理を進めるマイクロプ
ロセッサ(マイクロコンピュータやマイクロコントロー
ラやディジタル・シグナル・プロセッサを含む)におい
て、実行すべき実行オブジェクトに電力制御情報を付与
する命令変換装置及び命令変換方法、命令変換を実現す
るプログラム及び回路、さらには変換された命令を実行
するマイクロプロセッサに関するものである。
消費電力を目的に電力の制御を行う方法は二つあった。
一つはハードウェア駆動による電力制御方法であり、一
つはソフトウェア駆動による電力制御方法である。
制御方法を説明する。通常、マイクロプロセッサの動作
では、プログラム進行に応じて、命令デコーダが命令記
憶装置から命令コードを取得し、その命令コードをデコ
ードすることにより、各命令に応じた演算等の動作制御
を行う。ハードウェア駆動により消費電力を制御する場
合、電力制御に関する指示を抽出するための命令デコー
ダをマイクロプロセッサに組み込むことにより、電力制
御を行う。
ロプロセッサの電力制御を行う回路方式の例である。命
令デコーダ1401は、レジスタ間の加算命令の命令コ
ードを命令記憶装置1402から取得すると、該当命令
コード実行中はデータメモリや周辺インターフェース等
を使用しないと判断する。命令デコーダ1401はレジ
スタ間の加算命令を取得する毎に、データメモリや周辺
インターフェース等を停止するように、各回路に指示を
出す。これにより、レジスタ間の加算命令に対しては電
力制御を行うことができる。他に減算命令や読み出し命
令など、複数の命令コードの種類に応じて電力制御に関
する指示をデコード可能なようにデコーダを構成する。
これによって、さまざまな命令コードをデコードする毎
に電力制御の指示を行い、消費電力の削減を行う。
制御方法を説明する。ソフトウェア駆動ではプラグラム
を記述するユーザーが、マイクロプロセッサが命令プロ
グラムを実行している際に停止可能な動作資源を判断し
て、プログラム中に電力制御に関する命令を直接記述す
る。
ロプロセッサの電力制御を行うプログラムの例を表わし
たものである。本例では区間1501においてデータメ
モリを使用していない。ユーザーは1502の個所にデ
ータメモリを停止させる命令を挿入し、データメモリが
再び使用される直前である1503にデータメモリの停
止を解除する命令を挿入する。前記2つの命令により、
区間1501においてデータメモリを停止させることが
可能である。本例ではデータメモリの例を示したが、デ
ータレジスタ、データバス、周辺インターフェース、さ
らにはAND等の回路素子レベルに及ぶ、マイクロプロ
セッサのあらゆる回路が制御可能である。ソフトウェア
駆動において電力制御を行う場合であっても、命令デコ
ーダでデコードされた電力制御に関する指示を電力制御
レジスタに書き込むことにより、マイクロプロセッサ内
の電力制御を行う。
力制御情報を書き換え可能に記憶する電力制御レジスタ
を備えたパワーテーブルを設け、複数の動作条件を電力
制御レジスタに記憶させ、プロセッサの現在の動作が複
数の動作条件のいずれを満たすかを判定し、判定の結果
に応じて電力制御を行うものがある(例えば特許文献1
参照)。
2図、第5図)
る電力制御方法では、各命令コードに応じた電力制御情
報をデコード可能なようにデコーダを構成する必要があ
るため、きめ細かな電力制御を行おうとするとハードウ
ェア規模が大きくなる。また、デコード可能な命令の種
類が多いと、デコード動作による消費電力が増加する。
そのため、かえってプロセッサとしての消費電力も増加
してしまう恐れがある。さらに、電力制御情報は、命令
コード単位でしか抽出できないため、後続の命令に対す
る先行した電力制御は行えない。
は、ユーザーがプログラム記述時に電力制御の開始や終
了個所を判断し、直接プログラムに電力制御用命令の記
述を行うため、ユーザーの開発負担が大きい。また、指
定個所が増加する場合、きめ細かな制御指示を記述する
のは困難である。また、電力制御の対象がメモリ構成や
周辺インターフェースポート数等、マイクロプロセッサ
の構成により異なる場合がある。この場合、それぞれの
機種に固有のプログラムが必要となるため、ソフトウェ
アの共用・流用が困難である。さらに、多重ループや高
頻度に実行される個所に電力制御に関する命令を多数記
述した場合は、プログラムの実行速度が低下する。
ウェアの規模を増大することもなく、またユーザーの開
発負担を伴わず、ソフトウェアの汎用性を確保しなが
ら、きめ細かな電力制御を行うことである。
るいはアセンブル時に静的にプログラムを解析し、この
解析結果に基づいて電力制御に関する指示をプログラム
に付与する命令変換装置によって達成される。
り、各動作資源が動作するか否かに関する情報を予め命
令別動作資源テーブルに記録しておき、マイクロプロセ
ッサ動作時に所定長の命令区間動作しない動作資源を検
出することにより、上記のような命令変換装置が容易に
実現される。
法としては、電力制御に関する命令を挿入する、あるい
は電力制御に関する指示を含まない命令を電力制御に関
する指示を含む命令に置換するといった方法が挙げられ
る。
う方法では命令を多数挿入することによりサイクル数が
増えて処理速度が低下することがあり得る。また命令の
挿入によりコードサイズが増大する。しかし、これらの
課題は上記命令変換装置において、コンパイルあるいは
アセンブル時に予めオプションによってユーザーが電力
制御のレベルを決定することができる構成にすることに
より解決される。すなわち、挿入される電力制御のため
の命令の数を複数段階で調整することにより、コードサ
イズと電力制御との調整を行うことができる。
デコードする前にこれを解析し、電力制御に関する指示
を付与することにより、ハードウェアの増大を一定以下
に抑えて低消費電力を達成し得る命令変換回路を提供す
ることである。
実行オブジェクトを構成する命令コードの種類により、
各動作資源が動作するか否かに関する情報を予め記録し
た命令別動作資源メモリと、前記命令別動作資源メモリ
の情報に基づき、マイクロプロセッサ動作時に所定命令
区間動作しない動作資源を検出する電力制御情報解析回
路と、前記命令毎動作資源解析回路の検出結果を基に、
実行オブジェクトに、電力制御に関する指示を付与する
電力制御指示付与回路とを備える命令変換回路によって
達成し得る。
換装置によって生成された電力最適化済実行オブジェク
トを実行するプロセッサにおいて、割り込み・分岐・例
外などの異常処理が発生した場合においても、誤動作を
生じることなく命令実行可能なプロセッサを提供するこ
とにある。
少なくとも1つを検出したときは、電力制御レジスタの
状態を全ての動作資源が動作する初期状態へとリセット
する状態リセット回路をプロセッサに設けることによっ
て達成される。
ロセッサを動作させるための命令列を、その記述言語に
よらず「命令プログラム」という。また命令プログラム
を機械語に翻訳することにより生成されるマイクロプロ
セッサが実行するデコード前の機械語命令列を「実行オ
ブジェクト」という。なお、「実行オブジェクト」も
「命令プログラム」の一種であり、命令プログラムから
実行オブジェクトを生成する際にできるあらゆる中間プ
ログラムも命令プログラムに含まれるものとする。
いて、図面を用いて詳細に説明する。
における第1実施形態における命令変換装置を示したも
のである。図中の101はマイクロプロセッサで実行さ
れる命令プログラムである。ここで101の命令プログ
ラムはニーモニックで記述された命令列あるいはC言語
やFORTRAN等の高級プログラム言語で記述された
命令列のいずれの表現形式でも構わないが、本実施形態
においてはニーモニックで記述された命令列を例にとっ
て説明を行う。
毎に、マイクロプロセッサ内のいずれの動作資源が動作
するかの情報を予め記録しておく。
ログラム101を入力とし、命令プログラム101を構
成する命令毎に、命令別動作資源テーブル103を参照
して、いずれの動作資源が動作するかの情報を抽出し、
命令毎動作資源使用データ104を出力する。
作資源使用データ104を入力内容とし、時系列的な解
析を行い、いずれの個所にて動作資源の停止あるいは動
作開始等の電力制御命令を挿入すると電力消費量を低減
できるかを判断し、電力制御指示データ106を出力す
る。
指示データ106を基に、命令プログラム101に動作
資源の停止、あるいは動作開始等の命令の挿入を行い、
電力最適化済命令プログラム108を生成する。
された電力最適化済命令プログラム108の内容は、命
令翻訳手段109への入力とし、命令翻訳手段109は
マイクロプロセッサが実行すべき機械語命令列である電
力最適化済実行オブジェクト110を生成出力する。
図2を用いて、命令別動作資源テーブル103について
説明する。本実施形態では、命令別動作資源テーブル1
03は命令モードを示すフィールド201とマイクロプ
ロセッサ内の動作資源を表わすフィールド202の2つ
のフィールドを持つ二次元テーブルである。テーブル中
の値は各命令モードの実行において各動作資源が動作す
るか否かを示している。テーブル中“1”は動作資源が
動作すること、“0”は動作資源が動作しないことを示
している。例えば、レジスタ間の加算命令である「AD
D Rx、Ry、Rz」の場合、マイクロプロセッサ動
作時には「演算器A動作」、「データレジスタR0−R
15」、「データレジスタR16−R31」のみが動作
するのでテーブル中の対応する個所には“1”が記述さ
れており、その他の動作資源は動作しないのでテーブル
中の対応する個所には“0”が記述されている。同様
に、メモリの読み出し命令である「LD Ra、MEM
y」では、テーブル中で“1”が記述されている「メモ
リRead動作」及び「ブロックA動作」のみが動作す
ることになる。ここで絶対値としての“0”、“1”は
重要でなく、動作情報をテーブルとして保有することが
主目的である。
3を用いて、命令プログラムが301の場合を例にとっ
て、命令毎動作資源解析手段102の動作説明を行う。
図3は本実施形態における命令毎動作資源使用データ1
04を示している。命令毎動作解析手段102は命令プ
ログラム301を入力として受け取ると、命令毎に命令
別動作資源テーブル103の命令モードフィールド20
1とパターン一致検索を行い、該当命令がどの命令モー
ドに対応しているかを判断して、302のような形で出
力する。302において、命令毎に“1”となっている
動作資源が、マイクロプロセッサ動作時に動作すること
を示している。命令毎動作資源解析手段102は、命令
プログラムを構成する各命令について上記解析を行い、
命令毎動作資源使用データ104を生成する。
を用いて、電力制御情報検出手段105の動作説明を行
う。電力制御情報検出手段105は、命令毎動作資源解
析手段102が出力する命令毎動作資源使用データ10
4について、命令方向(時系列方向)に、動作資源が動
作するか否かについて解析を行う。解析方法の一例とし
て、連続する“0”を検出する方法を説明する。本実施
の形態の命令毎動作資源使用データ104において、情
報“0”はマイクロプロセッサがその命令実行において
動作資源の動作を行わないことを示す。電力制御情報検
出手段105は、命令毎動作資源使用データ104につ
いて、ある一定命令区間、例えば3命令区間以上連続す
る“0”を検出することにより、所定命令区間動作しな
い動作資源を検出できる。
て、3命令区間以上動作しない動作資源を検出する場合
について説明する。「メモリRead動作」に対応する
401に示したデータ列によると、SUB命令からST
R命令まで4命令の間、「メモリRead動作」を必要
としていない。従って電力制御情報検出手段105はこ
れを検出する。検出された動作資源と停止可能区間に関
する情報は電力制御指示データ106として電力制御指
示付与手段107へと出力される。
じ命令プログラムを例にとって、電力制御指示付与手段
107について説明を加える。図5は電力制御命令の挿
入例である。図5に示すように、電力制御指示付与手段
107は、電力制御情報検出手段105が出力する電力
制御指示データ106に基づき、SUB命令の直前に
「メモリRead動作」に関する回路停止を要求する命
令コードを、STR命令の直後に回路動作開始の命令を
挿入している、これにより、この区間において命令毎の
デコードを必要とせずに、「メモリRead動作」に関
する機能停止を行うことができ、「メモリRead動
作」に必要とされた消費電力を削減することができる。
命令までの3命令間は「メモリWrite動作」も必要
としていない。従って本実施の形態では、この情報を検
出することで、動作資源個別の電力制御のみを行う場合
よりも、さらに上流側で電力制御を行うことが出来る。
すなわち、命令プログラムに「メモリRead動作」や
「メモリWrite動作」に関する制御指示を付与する
のみならず、メモリやメモリ制御回路自体を完全に停止
させる制御指示を付与することもできる。
ラムとして実現され、アセンブラプログラムとしてマイ
クロプロセッサのユーザーに提供される。ユーザーは命
令プログラム101をコンパイルあるいはアセンブルす
れば、電力最適化済実行オブジェクト110までを作成
するようにできる。これにより、ユーザーは何も意識す
る必要なく、ただ命令プログラムを記述し、アセンブル
するだけでマイクロプロセッサの消費電力は従来のもの
より低減される。
法)上記の命令変換装置によって作成された電力最適化
済実行オブジェクト110を実行することにより従来と
比べて電力消費量は低減される。図6は本実施形態にお
けるマイクロプロセッサの構成を示した図である。
る命令変換装置で作成された電力最適化済実行オブジェ
クト110が記憶されている。プログラムカウンタ60
1はマイクロプロセッサにおいて次に実行される命令の
アドレスを指定する。命令デコーダ603は、プログラ
ムカウンタ601で指定されたアドレスの命令コードを
命令記憶装置602から取得し、デコードする。命令デ
コーダ603でデコードされた電力制御に関する指示
は、電力制御レジスタ604に書き込まれ(608)、
この電力制御レジスタ604の状態により電力制御実行
装置605がマイクロプロセッサ内の電力制御(クロッ
ク停止、クロック周波数変更、電源遮断、電圧変更、信
号変化抑制等)を行う。例えばデータメモリを停止する
指示を命令デコーダ603がデコードしたならば、デー
タメモリを停止する指示を電力制御レジスタ604に書
き込む。するとマイクロプロセッサは、命令実行前に電
力制御レジスタ604の状態を参照し、データメモリを
停止することができる。停止後に再びメモリを使用する
ならば、電力制御レジスタ604に再度、停止解除の指
示を書き込む。するとマイクロプロセッサは命令実行前
に電力制御レジスタ604の状態を参照し、メモリ機能
の停止を解除する。
110を命令デコーダ603に送り、電力制御に関する
指示を取り出して、電力制御レジスタ604に書き込む
ことにより、ハードウェアの規模を増大させることな
く、きめ細かな電力制御が行え、マイクロプロセッサの
消費電力を低減させることができる。
与えられた場合には、電力最適化済実行オブジェクト1
10を実行することにより、マイクロプロセッサが誤動
作を引き起こすおそれがある。以下にその詳細について
説明する。
実行シーケンスが確定しているので、電力最適化済実行
オブジェクト110をデコードすることにより、電力制
御レジスタ604に正確に電力制御に関する指示を書き
込むことができる。しかし、割り込み・分岐・例外のよ
うな特殊な命令が発生した場合には、プログラムの命令
実行シーケンスが通常と異なり、プログラムが記述され
た順番に実行されるわけではない。すなわち、プログラ
ムの記述された順番に従うなら次はADD命令が投入さ
れるような場合であっても、割り込みによってSTR命
令が投入されるようなことがあり得る。この場合、電力
最適化済実行オブジェクト110をデコードすることに
より、電力制御レジスタ604がメモリ停止状態に設定
されていても、割り込み・分岐・例外によりメモリを使
用する命令が投入される可能性がある。そうすると、メ
モリは動作することができずにマイクロプロセッサは正
常動作を行わないおそれがある。
イクロプロセッサにおいては状態リセット回路606を
設けている。これによって、特殊な命令が与えられた場
合でも、誤動作を引き起こすことなく、きめ細かな電力
制御を行うことが出来る。
・例外の要因信号607を検出すると、電力制御レジス
タ604の状態を、全ての動作資源が動作する状態(以
降、既定値という)に設定する。要因信号607として
は、演算結果の例外処理信号(例えば、演算結果のオー
バーフロー時に発生する例外要求信号)、プロセッサ自
身の割り込み要求信号(例えば、DMA転送割り込みや
タイマー割り込み等、内容に応じて要求する信号)、外
部からの入力信号(例えば、外部端子の変化を要求信号
とする)等が挙げられる。電力制御レジスタ604が既
定値に設定されることにより、マイクロプロセッサは全
ての動作資源を動作させることができ、マイクロプロセ
ッサは割り込み・分岐・例外があった場合にも誤動作を
起こさない。
したが、本発明はこの実施形態に限られないことはもち
ろんである。
ザーの記述言語がC言語やFORTLANのような高級
プログラム言語である場合にはコンパイラとしてユーザ
ーに提供される。高級プログラム言語を用いることによ
りユーザーはより簡単にプログラムを記述することがで
きる。
は、アセンブラやコンパイラとは別の電力制御プログラ
ムとして提供し、ユーザーがこの電力制御プログラムを
実行することにより、まず電力最適化済命令プログラム
108を作成し、その後アセンブルすることにより電力
最適化済実行オブジェクト110を作成するようにする
ことも可能である。この場合、ユーザーが記述した命令
プログラム101と、電力最適化済命令プログラム10
8との比較を行うことにより、どの個所に電力制御命令
が付与されているかをユーザーは容易に確認することが
できる。
形態に限られるものではなく、命令プログラムを静的に
解析することにより電力制御可能な命令区間を検出でき
るものであれば何でも良い。例えば、電力制御情報検出
手段105で検出される電力制御を必要とする命令区間
は3区間に限られるものではなく、1区間以上の長さ
で、マイクロプロセッサで動作する各アプリケーション
プログラムやシステムに最適な電力制御のレベルによっ
て任意に設定することができる。
に命令挿入を行うものには限られず、電力制御指示デー
タ106に基づいて電力制御情報を付与するものであれ
ば何でも構わない。例えば電力制御指示付与手段107
は図7のような形態でも良い。すなわち、図5では、電
力制御指示付与手段107において新たな命令を挿入す
る実施形態を示したが、予め電力制御情報を含んだ命令
をプロセッサの命令仕様において定義しておけば、図7
に示すように、既存の一命令を電力制御情報を含んだ別
種の命令に置換することができる。この場合、マイクロ
プロセッサが動作する際に、命令追加挿入による新たな
動作サイクルの増加は発生しないため、速度低下を招か
ずに電力制御を実現できる。
義されているならば置換を行い、定義されていない命令
に対しては挿入を行うようにしても良い。
ッサが正常動作を行うようにするものであれば何でも構
わない。例えば、第1実施形態では割り込み・分岐・例
外を検出しているが、これは割り込み・例外のみを検出
するものでも良い。この場合であっても、分岐命令直後
は電力制御レジスタをリセットする命令を挿入するよう
に、命令変換装置を設定しておけばマイクロプロセッサ
は正常動作を行うことができる。
コーダのデコード結果609から、割り込み・分岐・例
外を検出するものであっても良い。
コーダのデコード結果609と、要因信号607を併用
して、割り込み・分岐・例外を検出しても良い。両方を
併用することにより、どちらか一方のみを用いるよりも
確実に割り込み・分岐・例外の検出を行うことができ
る。
路606はプログラムカウンタの状態変化から割り込み
・分岐・例外の検出を行うものであっても良い。
形態について、図面を参照しながら説明する。
示した図である。図9において図1と共通の構成要素に
は同一の符号を付している。電力制御のための命令を挿
入することにより、マイクロプロセッサに最終的に実装
される機械語プログラムのコードサイズは増大する。ま
た、命令の実行サイクルも増加しプロセッサの処理速度
の妨げとなる。ユーザーによっては低消費電力よりもコ
ードサイズや処理速度を優先したい場合もありうる。そ
こで第2実施形態においては、ユーザーがアセンブルあ
るいはコンパイルを行うときに、オプションによって電
力制御のレベルを選択できるような構成としている。ユ
ーザーはアセンブルあるいはコンパイルを行うときにオ
プション“−P1”又は“−P2”をつけてアセンブル
あるいはコンパイルを行う。ユーザーが入力したオプシ
ョンはオプションレジスタ902に格納される。電力制
御レベル判定手段901はオプションレジスタ902の
値を参照し、参照結果を電力制御情報検出手段105へ
と出力する。電力制御情報検出手段105はオプション
が“−P1”のときは3区間以上動作を行わない動作資
源を検出し、オプションが“−P2”のときは5区間以
上動作を行わない動作資源を検出して電力制御指示デー
タ106を作成する。
源使用データ104を例にとって説明すると、オプショ
ンが“−P1”のときは“メモリRead動作”は3区
間以上動作しない(SUB命令からSTR命令までの
間)動作資源として検出されるが、オプションが“−P
2”のときは、“メモリRead動作”は検出されな
い。
ーザーが任意に選択できる構成にすることにより、挿入
される電力制御のための命令の数を調整できるので、ユ
ーザーはコードサイズや実行サイクルを考慮に入れなが
ら最適な電力制御のレベルを設定することができる。
うにオプションによって電力制御レベルを判定する構成
に限られるものではなく、ユーザーの判断で電力制御レ
ベルが複数段階の中から設定できるものであれば何でも
構わない。また、第2実施形態において電力制御情報検
出手段105は停止可能と判断する命令区間の長さを変
えることにより電力制御レベルを調整しているが、電力
制御レベルを調整する手法はこれに限られるものではな
い。例えば、オプションが“−P1”のときは全ての動
作資源に対して検出を行い、オプションが“−P2”の
ときはメモリとデータレジスタのみについて検出を行う
ようにしても良い。すなわち、電力制御情報検出手段1
05は電力制御レベルに応じて、電力制御の対象とする
動作資源を変化させるものであっても良い。
挿入と置換を併用可能な場合には、オプションが“−P
1”のときは挿入も置換も行い、オプションが“−P
2”のときは置換のみを行うようにしても良い。置換に
よってはコードサイズ、実行サイクルの増大は生じない
のでオプション“−P2”を用いることによって、デメ
リットを伴わない最小限の電力制御のみが行われる。
形態について、図面を参照しながら説明する。
令変換装置を示したものである。図10において、図1
と共通の構成要素には図1と同一の符号を付している。
第1実施形態ではユーザーが記述した命令プログラム
に、電力制御に関する命令を挿入あるいは置換すること
により電力最適化済命令プログラム108を作成してい
たが、本実施の形態においてはユーザーが記述した命令
プログラム101は、まず命令翻訳手段109におい
て、マイクロプロセッサが実行する機械語命令列である
実行オブジェクト1001に翻訳される。その後、実行
オブジェクト1001を入力として、電力最適化済実行
オブジェクト110が生成される。
指示付与手段(図10の107)では機械語で記述され
た命令列の一部分に電力制御に関するビットを挿入する
ことにより、電力制御に関する指示を命令コードに付加
することができる。この場合においてユーザーはそのま
まで電力制御指示がどの個所に付与されたかを知るのは
困難であるが、電力最適化済実行オブジェクト110を
デアセンブルすることにより電力制御指示がどの個所に
付与されたかを知ることができる。
段107は上記のビット挿入を行うものには限られず、
電力制御指示データ106に基づいて、電力制御情報を
付与できるものであれば何でも構わない。例えば、機械
語命令自体を挿入するものであっても良い。
実施形態と同様にコンピュータプログラムにより実現す
ることができる。アセンブラ・コンパイラとしてマイク
ロプロセッサのユーザーに提供しても良いし、単独の電
力制御プログラムとしても良い。
ル判定手段を備え、電力制御レベルをユーザーが任意に
選択できるようにしても良い。
オブジェクトをそのまま変換するものであるから、ユー
ザーのプログラムの記述言語には依存せず、より汎用性
の高い、電力最適化を行うコンパイラ・アセンブラとし
てユーザーに提供できる。
セッサの構成は第1実施形態と同様に状態リセット回路
606を備えた構成を用いることが出来るのはいうまで
もない。
形態について、図面を参照しながら説明する。
令変換回路の構成図である。ここで命令コード供給装置
1200は、従来の方法で生成された電力最適化されて
いない実行オブジェクトをマイクロプロセッサの命令記
憶装置1205に送る装置である。命令記憶装置120
5はフラッシュ等のように書き換え可能なものでも、書
き換え不可能なROMでもかまわない。ここで従来の方
法であれば、実行オブジェクトは、直接命令記憶装置1
205に送られていたが、本実施の形態においては、本
発明の命令変換回路1207を通り、電力最適化済実行
オブジェクトに書き換えられた後、命令記憶装置120
5に送られる。命令変換回路1207は命令別動作資源
メモリ1201、命令毎動作資源解析回路1202、電
力制御情報検出回路1203及び電力制御指示付与回路
1204から構成されている。命令別動作資源メモリ1
201は第1実施形態における命令別動作資源テーブル
103を記憶したメモリである。命令毎動作資源解析回
路1202とは第1実施形態における命令毎動作資源解
析手段102に対応するもので、命令別動作資源メモリ
1201に記憶されている命令別動作資源テーブルを参
照して、命令コード毎に動作資源の動作・停止を判断
し、命令毎動作資源使用データを出力する。電力制御情
報検出回路1203は第1実施形態の電力制御情報検出
手段105に対応するもので、命令毎動作資源解析回路
1202が出力する命令毎動作資源使用データに基づい
て、所定命令区間の間停止している動作資源を抽出し、
電力制御指示データを出力する。電力制御指示付与回路
1204は第1実施形態の電力制御指示付与手段107
に対応するもので、電力制御情報検出回路1203から
出力される電力制御指示データに基づいて、命令コード
供給装置1200から命令記憶装置1205に供給され
る実行オブジェクトに電力制御に関する指示を付与し、
電力最適化済実行オブジェクトを生成する。命令記憶装
置1205には電力最適化済実行オブジェクトが保存さ
れる。この電力最適化済実行オブジェクトを実行するこ
とにより、マイクロプロセッサは消費電力を低減するこ
とができる。
によっても実現できる。
形態について、図面を参照しながら説明する。
令変換回路の構成図である。図13において、図12と
共通の構成要素には図12と同一の符号を付している。
第4実施形態では命令コード供給装置1200から命令
記憶装置1205に実行オブジェクトが保存される際に
電力制御指示の付与を行っていたが、本実施形態では命
令記憶装置1205に保存された実行オブジェクトは、
本発明の命令変換回路1207に直接送られ、電力制御
に関する指示を付与されたうえで、再び命令記憶装置1
205に保存される。第3実施形態と異なり、命令記憶
装置1205にすでに保存されている実行オブジェクト
に対しても電力制御に関する指示を付与することができ
る。また、本実施形態において命令記憶装置1205は
書き換え可能なものでなければならない。
においても、状態リセット回路を設けることにより、特
殊な命令シーケンスが発生してもマイクロプロセッサが
正常動作を行うようにすることができる。
ケーションプログラムの開発と、電力制御を独立に行う
ことができ、ユーザーのソフトウェア開発の負担は低減
される。また、ハードウェアの増大を招くことなく、き
め細かな電力制御をソフトウェアの汎用性を確保したま
ま容易に実現することができる。
示す図
の形態を示す図
施の形態を示す図
形態を示す図
示す図
ッサの構成を示す図
含む一の命令に置換する例を示す図
ッサの別の形態を示す図
示す図
を示す図
の電力制御情報の付与を示す図
を示す図
を示す図
法を示す図
法を示す図
Claims (25)
- 【請求項1】 複数の命令から構成される命令プログラ
ムを所定のマイクロプロセッサの実行に適したように最
適化する命令変換装置であって、 前記マイクロプロセッサ動作時に所定の長さの命令区間
動作しない動作資源を検出する電力制御情報解析手段
と、 前記電力制御情報解析手段の検出結果に基づいて、前記
命令プログラムに、電力制御に関する指示を付与する電
力制御指示付与手段とを備えることを特徴とする命令変
換装置。 - 【請求項2】 請求項1記載の命令変換装置であって、 前記命令プログラムを構成する命令の種類により、各動
作資源が動作するか否かに関する情報が格納されている
命令別動作資源テーブル格納手段とをさらに備え、 前記電力制御情報解析手段は、前記命令別動作資源テー
ブル格納手段に格納された情報に基づいて、前記マイク
ロプロセッサ動作時に所定の長さの命令区間動作しない
動作資源を検出することを特徴とする命令変換装置。 - 【請求項3】 請求項2記載の命令変換装置であって、 前記電力制御指示付与手段は、前記命令プログラムに、
動作資源の停止あるいは動作開始の命令を挿入すること
により、電力制御に関する情報を付与することを特徴と
する命令変換装置。 - 【請求項4】 請求項2記載の命令変換装置であって、 前記電力制御指示付与手段は、前記命令プログラムにお
いて、動作資源が停止可能な命令区間の直前に動作資源
の停止の命令を挿入し、動作資源が停止可能な命令区間
の最後に動作資源の動作開始の命令を挿入することによ
り、電力制御に関する指示を付与することを特徴とする
命令変換装置。 - 【請求項5】 請求項2記載の命令変換装置であって、 前記電力制御指示付与手段は、前記命令プログラム中の
一の命令を、動作資源の停止あるいは動作開始の指示を
含む一の命令に置換することにより、電力制御に関する
指示を付与することを特徴とする命令変換装置。 - 【請求項6】 請求項2記載の命令変換装置であって、 前記電力制御指示付与手段は、前記命令プログラムにお
いて、動作資源が停止可能な命令区間の直前の命令を動
作資源の停止の指示を含む命令に置換し、動作資源が停
止可能な命令区間の最後の命令を動作資源の動作開始の
指示を含む命令に置換することにより、電力制御に関す
る指示を付与することを特徴とする命令変換装置。 - 【請求項7】 請求項1記載の命令変換装置であって、 予め設定された電力制御のレベルを判定し、前記電力制
御情報解析手段へと判定結果を出力する電力制御レベル
判定手段とをさらに備え、 前記電力制御情報解析手段は、前記電力制御レベル判定
手段の判定結果を加味して、電力制御可能な命令区間を
検出することを特徴とする命令変換装置。 - 【請求項8】 請求項7記載の命令変換装置であって、 前記電力制御のレベルは、前記所定の長さに対応してお
り、 前記電力制御情報解析手段は、前記電力制御レベル判定
手段の判定結果に応じて、前記所定の長さを切り換える
ことを特徴とする命令変換装置。 - 【請求項9】 請求項7記載の命令変換装置であって、 前記電力制御のレベルは、電力制御の対象となる動作資
源の種類に対応しており、 前記電力制御情報解析手段は、前記電力制御レベル判定
手段の判定結果に応じて、検出の対象となる前記動作資
源の種類を切り換えることを特徴とする命令変換装置。 - 【請求項10】 請求項1記載の命令変換装置であっ
て、 予め設定された電力制御のレベルを判定し、前記電力制
御情報解析手段へと判定結果を出力する電力制御レベル
判定手段とをさらに備え、 前記電力制御情報解析手段は、前記電力制御レベル判定
手段の判定結果に応じて、前記所定の長さを切り換える
ことを特徴とする命令変換装置。 - 【請求項11】 請求項1記載の命令変換装置で変換さ
れた命令プログラムを実行することを特徴とするマイク
ロプロセッサ。 - 【請求項12】 複数の命令から構成される命令プログ
ラムを所定のマイクロプロセッサの実行に適したように
最適化する命令変換方法であって、 前記マイクロプロセッサ動作時に所定の長さの命令区間
動作しない動作資源を検出する電力制御情報解析ステッ
プと、 前記電力制御情報解析ステップにおける検出結果に基づ
いて、前記命令プログラムに、電力制御に関する指示を
付与する電力制御指示付与ステップとを備えることを特
徴とする命令変換方法。 - 【請求項13】 複数の命令から構成される命令プログ
ラムを所定のマイクロプロセッサの実行に適したように
最適化する命令変換方法であって、 予め設定された電力制御のレベルを判定する電力制御レ
ベル判定ステップと、 前記電力制御レベル判定ステップにおける判定結果を加
味して、前記マイクロプロセッサ動作時に所定の長さの
命令区間動作しない動作資源を検出する電力制御情報解
析ステップと、 前記電力制御情報解析ステップにおける検出結果に基づ
いて、前記命令プログラムに、電力制御に関する指示を
付与する電力制御指示付与ステップとを備えることを特
徴とする命令変換方法。 - 【請求項14】 請求項13記載の命令変換方法であっ
て、 前記電力制御のレベルは、前記所定の長さに対応してお
り、 前記電力制御情報解析ステップでは、前記電力制御レベ
ル判定ステップにおける判定結果に応じて、前記所定の
長さを切り換えることを特徴とする命令変換方法。 - 【請求項15】 請求項13記載の命令変換方法であっ
て、 前記電力制御のレベルは、電力制御の対象となる動作資
源の種類に対応しており、 前記電力制御情報解析ステップでは、前記電力制御レベ
ル判定ステップにおける判定結果に応じて、検出の対象
となる前記動作資源の種類を切り換えることを特徴とす
る命令変換方法。 - 【請求項16】 複数の命令から構成される命令プログ
ラムを所定のマイクロプロセッサの実行に適したように
最適化する命令変換方法であって、 前記命令プログラムを構成する命令の種類により、各動
作資源が動作するか否かに関する情報を予め命令別動作
資源テーブルに記録することを特徴とする命令変換方
法。 - 【請求項17】 請求項16記載の命令変換方法であっ
て、 前記命令別動作資源テーブルを参照し、マイクロプロセ
ッサ動作時に所定命令区間動作しない動作資源を検出す
るステップと、 前記検出結果に基づいて、前記命令プログラムに、電力
制御に関する指示を付与するステップとを備えることを
特徴とする命令変換方法。 - 【請求項18】 請求項17記載の命令変換方法であっ
て、 前記命令プログラムに、動作資源の停止あるいは動作開
始の命令を挿入することにより、電力制御に関する指示
を付与することを特徴とする命令変換方法。 - 【請求項19】 請求項17記載の命令変換方法であっ
て、 前記命令プログラムにおいて、動作資源が停止可能な命
令区間の直前に動作資源の停止の命令を挿入し、動作資
源が停止可能な命令区間の最後に動作資源の動作開始の
命令を挿入することにより、電力制御に関する指示を付
与することを特徴とする命令変換方法。 - 【請求項20】 請求項17記載の命令変換方法であっ
て、 前記命令プログラム中の一の命令を、動作資源の停止あ
るいは動作開始の指示を含む一の命令に置換することに
より、電力制御に関する指示を付与することを特徴とす
る命令変換方法。 - 【請求項21】 請求項17記載の命令変換方法であっ
て、 前記命令プログラムにおいて、動作資源が停止可能な命
令区間の直前の命令を動作資源の停止の指示を含む命令
に置換し、動作資源が停止可能な命令区間の最後の命令
を動作資源の動作開始の指示を含む命令に置換すること
により、電力制御に関する指示を付与することを特徴と
する命令変換方法。 - 【請求項22】 マイクロプロセッサが実行する実行オ
ブジェクトを構成する命令コードの種類により、各動作
資源が動作するか否かに関する情報を予め記録した命令
別動作資源メモリと、 前記命令別動作資源メモリの情報に基づき、マイクロプ
ロセッサ動作時に所定命令区間動作しない動作資源を検
出する電力制御情報解析回路と、 前記命令毎動作資源解析回路の検出結果を基に、実行オ
ブジェクトに、電力制御に関する指示を付与する電力制
御指示付与回路とを備える命令変換回路。 - 【請求項23】 請求項22記載の命令変換回路を備え
ることを特徴とするマイクロプロセッサ。 - 【請求項24】 請求項11記載のマイクロプロセッサ
であって、 前記変換された命令プログラムをデコードする命令デコ
ーダと、 前記命令デコーダのデコード結果に基づいて、電力制御
に関する情報が書き込まれる電力制御レジスタと、 割り込み・分岐・例外の少なくとも1つを検出し、検出
されたときに、前記電力制御レジスタの状態を、全ての
動作資源が動作する状態に設定する状態リセット回路と
を備えることを特徴とするマイクロプロセッサ。 - 【請求項25】 コンピュータを、 マイクロプロセッサが実行する命令プログラムを構成す
る命令の種類により、各動作資源が動作するか否かに関
する情報を予め記録した命令別動作資源テーブルを参照
し、マイクロプロセッサ動作時に所定命令区間動作しな
い動作資源を検出する電力制御情報解析手段、 前記命令毎動作資源解析手段の検出結果を基に、命令プ
ログラムに、電力制御に関する指示を付与する電力制御
指示付与手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003017374A JP2003296123A (ja) | 2002-01-30 | 2003-01-27 | 電力制御情報を付与する命令変換装置及び命令変換方法、命令変換を実現するプログラム及び回路、変換された命令を実行するマイクロプロセッサ |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002-21479 | 2002-01-30 | ||
JP2002021479 | 2002-01-30 | ||
JP2003017374A JP2003296123A (ja) | 2002-01-30 | 2003-01-27 | 電力制御情報を付与する命令変換装置及び命令変換方法、命令変換を実現するプログラム及び回路、変換された命令を実行するマイクロプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003296123A true JP2003296123A (ja) | 2003-10-17 |
Family
ID=29404764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003017374A Pending JP2003296123A (ja) | 2002-01-30 | 2003-01-27 | 電力制御情報を付与する命令変換装置及び命令変換方法、命令変換を実現するプログラム及び回路、変換された命令を実行するマイクロプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003296123A (ja) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006521618A (ja) * | 2003-03-27 | 2006-09-21 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 分岐によるアクティビティモニタ |
JP2008519330A (ja) * | 2004-11-05 | 2008-06-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 高性能マイクロプロセッサのための温度オペコードを伴う命令セット、マイクロプロセッサ、およびそのための方法 |
JP2009505279A (ja) * | 2005-08-19 | 2009-02-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 最大パワーを制御するためのマイクロプロセッサ・リソースの相互排除アクティブ化のためのシステム及び方法 |
JP2010231306A (ja) * | 2009-03-26 | 2010-10-14 | Nec Corp | コンピュータシステム、ハードウェアリソース制御方法及びそのプログラム |
JP2011134288A (ja) * | 2009-01-19 | 2011-07-07 | Fujitsu Ltd | コード生成装置及びコード生成方法 |
JP2011164758A (ja) * | 2010-02-05 | 2011-08-25 | Fujitsu Ltd | Vliw型プロセッサ用コンパイラ、vliw型プロセッサ用プログラム開発システムおよび方法 |
JP2013541101A (ja) * | 2010-10-15 | 2013-11-07 | モサイド・テクノロジーズ・インコーポレーテッド | マルチレベル処理のための方法、システム、および装置 |
KR20140010671A (ko) * | 2012-07-16 | 2014-01-27 | 삼성전자주식회사 | 데이터를 기반으로 전력을 관리하는 장치 및 방법 |
JP2014059761A (ja) * | 2012-09-18 | 2014-04-03 | Fujitsu Ltd | 半導体集積回路及びコンパイラ |
JP2014225263A (ja) * | 2013-05-14 | 2014-12-04 | 三星電子株式会社Samsung Electronics Co.,Ltd. | プロセッシング装置及びプロセッシング方法 |
US10042645B2 (en) | 2015-05-12 | 2018-08-07 | Fujitsu Limited | Method and apparatus for compiling a program for execution by a plurality of processing units |
-
2003
- 2003-01-27 JP JP2003017374A patent/JP2003296123A/ja active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006521618A (ja) * | 2003-03-27 | 2006-09-21 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 分岐によるアクティビティモニタ |
JP2008519330A (ja) * | 2004-11-05 | 2008-06-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 高性能マイクロプロセッサのための温度オペコードを伴う命令セット、マイクロプロセッサ、およびそのための方法 |
JP4811879B2 (ja) * | 2005-08-19 | 2011-11-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 最大パワーを制御するためのマイクロプロセッサ・リソースの相互排除アクティブ化のためのシステム及び方法 |
JP2009505279A (ja) * | 2005-08-19 | 2009-02-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 最大パワーを制御するためのマイクロプロセッサ・リソースの相互排除アクティブ化のためのシステム及び方法 |
JP2011134288A (ja) * | 2009-01-19 | 2011-07-07 | Fujitsu Ltd | コード生成装置及びコード生成方法 |
JP2010231306A (ja) * | 2009-03-26 | 2010-10-14 | Nec Corp | コンピュータシステム、ハードウェアリソース制御方法及びそのプログラム |
JP2011164758A (ja) * | 2010-02-05 | 2011-08-25 | Fujitsu Ltd | Vliw型プロセッサ用コンパイラ、vliw型プロセッサ用プログラム開発システムおよび方法 |
JP2013541101A (ja) * | 2010-10-15 | 2013-11-07 | モサイド・テクノロジーズ・インコーポレーテッド | マルチレベル処理のための方法、システム、および装置 |
KR20140010671A (ko) * | 2012-07-16 | 2014-01-27 | 삼성전자주식회사 | 데이터를 기반으로 전력을 관리하는 장치 및 방법 |
KR101959252B1 (ko) * | 2012-07-16 | 2019-07-04 | 삼성전자주식회사 | 데이터를 기반으로 전력을 관리하는 장치 및 방법 |
JP2014059761A (ja) * | 2012-09-18 | 2014-04-03 | Fujitsu Ltd | 半導体集積回路及びコンパイラ |
US9348588B2 (en) | 2012-09-18 | 2016-05-24 | Fujitsu Limited | Semiconductor integrated circuit and compiler |
JP2014225263A (ja) * | 2013-05-14 | 2014-12-04 | 三星電子株式会社Samsung Electronics Co.,Ltd. | プロセッシング装置及びプロセッシング方法 |
US9870042B2 (en) | 2013-05-14 | 2018-01-16 | Samsung Electronics Co., Ltd. | Apparatus and method managing power based on data |
US10042645B2 (en) | 2015-05-12 | 2018-08-07 | Fujitsu Limited | Method and apparatus for compiling a program for execution by a plurality of processing units |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7577826B2 (en) | Stall prediction thread management | |
US11216258B2 (en) | Direct function call substitution using preprocessor | |
US8522220B2 (en) | Post-pass binary adaptation for software-based speculative precomputation | |
JP4911022B2 (ja) | カウンタ制御回路、動的再構成回路およびループ処理制御方法 | |
US20070208959A1 (en) | Instruction conversion apparatus and instruction conversion method providing power control information, program and circuit for implementing the instruction conversion, and microprocessor for executing the converted instruction | |
JPH0922318A (ja) | プロセッサ及びその制御方法 | |
JP2010500679A (ja) | プロセッサ内のマルチスレッド間通信 | |
JP2008269569A (ja) | コード変換装置 | |
JP2003296123A (ja) | 電力制御情報を付与する命令変換装置及び命令変換方法、命令変換を実現するプログラム及び回路、変換された命令を実行するマイクロプロセッサ | |
JP2006313422A (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
JP4412905B2 (ja) | 低電力動作制御装置、およびプログラム最適化装置 | |
JP2004318502A (ja) | 電力制御機能を備えたマイクロプロセッサ及び命令変換装置 | |
US8612958B2 (en) | Program converting apparatus and program conversion method | |
US9201657B2 (en) | Lower power assembler | |
JP5068529B2 (ja) | 時間−静止型プロセッサにおけるゼロ−オーバヘッドのブランチング及びルーピング | |
JP2005149297A (ja) | プロセッサおよびそのアセンブラ | |
JP2002041283A (ja) | サブパイプライン変換構造、及びバイナリの互換性を持たせる方法 | |
JP4006887B2 (ja) | コンパイラ、プロセッサおよび記録媒体 | |
JP2007114934A (ja) | コンパイラシステム | |
JP2001236227A (ja) | プロセッサ、コンパイラ、コイパイル方法及び記録媒体 | |
JPH04275603A (ja) | プログラマブル・コントローラ | |
JP5283739B2 (ja) | プロセッサ内のマルチスレッド間通信 | |
JP2011008617A (ja) | マルチスレッド実行装置、オブジェクトプログラムの生成方法、プログラム | |
JP2005516301A (ja) | 命令実行方法 | |
JP2000207209A (ja) | 演算装置、情報処理装置および情報処理方法、並びに提供媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060125 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090217 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090616 |