(57)【要約】【課題】マイクロプロセッサの動作資源に対して個別に電力制御を指定する電力制御命令が自動挿入された命令プログラムを実行するマイクロプロセッサにおいて、電力制御命令の自動挿入による不具合の発生を防止し、また不具合の発生時に命令プログラムの記述に起因する不具合とコンパイラが自動挿入した命令に起因する不具合とを切り分ける。【解決手段】電力制御命令が指定する電力制御を行うべき動作資源の情報を格納する電力制御レジスタ７０２と、電力制御レジスタ７０２に格納された情報に基づき動作資源のそれぞれに対して電力制御を行わせる電力制御信号を出力する電力制御回路７０３と、電力制御を行うか否かが予め設定される電力制御許可レジスタ７０４と、電力制御許可レジスタ７０４の設定により前記電力制御信号をそれぞれゲートするゲート回路７０５とをマイクロプロセッサに備える。【選択図】  図７
2004318502.tif 000002
【特許請求の範囲】
【請求項１】
電力制御機能を備えたマイクロプロセッサであって、
電力制御を行うか否かが予め設定される電力制御許可設定手段と、
前記マイクロプロセッサの動作資源に対して個別に電力制御を指定する電力制御命令の実行時に、前記電力制御許可設定手段の設定に従って最終的に電力制御信号の出力を制御する電力制御出力制御手段と、
を備えるマイクロプロセッサ。
【請求項２】
請求項１記載のマイクロプロセッサであって、
前記電力制御命令が指定する電力制御を行うべき動作資源の情報を格納する電力制御レジスタと、
前記電力制御レジスタに格納された情報に基づき前記動作資源のそれぞれに対して電力制御を行わせる電力制御信号を出力する電力制御回路と、
前記電力制御許可手段の設定に従って前記電力制御信号をそれぞれゲートするゲート回路と、
を備えるマイクロプロセッサ。
【請求項３】
電力制御機能を備えたマイクロプロセッサであって、
命令プログラムそれぞれに付与されるプログラムＩＤ毎に予め設定された電力制御を行うか否かの情報を保持し、かつ実行中の命令プログラムのプログラムＩＤが電力制御を行うように設定されたプログラムＩＤであるか否かを判定するプロセッサ状態判定手段と、
前記マイクロプロセッサの動作資源に対して個別に電力制御を指定する電力制御命令の実行時に、実行中の命令プログラムについての前記プロセッサ状態判定手段の判定結果に従って最終的に電力制御信号の出力を制御する電力制御信号出力制御手段と、
を備えるマイクロプロセッサ。
【請求項４】
請求項３記載のマイクロプロセッサであって、
前記電力制御命令が指定する電力制御を行うべき動作資源の情報を格納する電力制御レジスタと、
前記電力制御レジスタに格納された情報に基づき前記動作資源のそれぞれに対して電力制御を行わせる電力制御信号を出力する電力制御回路と、
前記プロセッサ状態判定手段の判定結果に従って前記電力制御信号をそれぞれゲートするゲート回路と、
を備えるマイクロプロセッサ。
【請求項５】
命令プログラムを所定のマイクロプロセッサの実行に適したように最適化する命令変換装置であって、
命令プログラム中に記述された指示文を参照して電力制御管理情報を抽出する電力制御管理手段と、
前記電力制御管理情報に基づき前記マイクロプロセッサの動作時に所定の長さの命令区間動作しない動作資源を検出する電力制御情報解析手段と、
前記電力制御情報解析手段の検出結果に基づき前記命令プログラムに電力制御に関する指示を付与する電力制御指示付与手段と、
を備える命令変換装置。
【請求項６】
請求項５記載の命令変換装置であって、
前記電力制御管理情報は前記所定の長さを指定する情報を含み、前記電力制御情報解析手段は前記電力制御管理情報に基づき前記所定の長さを切り換える命令変換装置。
【請求項７】
請求項５または６記載の命令変換装置であって、
命令毎にマイクロプロセッサの各動作資源が動作するか否かを示す情報を格納する命令別動作資源テーブル格納手段を備え、
前記電力制御情報解析手段は、前記命令別動作資源テーブル格納手段に格納された情報に基づいて、前記マイクロプロセッサの動作時に所定の長さの命令区間動作しない動作資源を検出する命令変換装置。
【請求項８】
命令プログラムを所定のマイクロプロセッサの実行に適したように最適化する命令変換装置であって、
前記マイクロプロセッサの動作時に所定の長さの命令区間動作しない動作資源を検出する電力制御情報解析手段と、
前記電力制御情報解析手段の検出結果に基づき前記命令プログラムに電力制御に関する指示を付与する電力制御指示付与手段とを備え、
前記電力制御情報解析手段は、動作資源の停止が可能な命令区間が長くなるように命令プログラムを組み替える命令組み替え手段を備える命令変換装置。
【請求項９】
請求項８記載の命令変換装置であって、
前記命令組み替え手段は、命令プログラム中の命令依存関係を維持しつつ命令を並べ替える命令並べ替え手段である命令変換装置。
【請求項１０】
請求項８記載の命令変換装置であって、
前記命令組み替え手段は、命令プログラム中の一の命令を前記一の命令と同一の処理結果を有する代替可能命令と差し替える命令差し替え手段である命令変換装置。
【請求項１１】
命令プログラムを所定のマイクロプロセッサの実行に適したように最適化する命令変換方法であって、
命令プログラム中に記述された指示文を参照して電力制御管理情報を抽出する電力制御管理ステップと、
前記電力制御管理情報に基づき前記マイクロプロセッサの動作時に所定の長さの命令区間動作しない動作資源を検出する電力制御情報解析ステップと、
前記電力制御情報解析ステップでの検出結果に基づき前記命令プログラムに電力制御に関する指示を付与する電力制御指示付与ステップと、
を備える命令変換方法。
【請求項１２】
請求項１１記載の命令変換方法であって、
前記電力制御管理情報は前記所定の長さを指定する情報を含み、前記電力制御情報解析ステップは、前記電力制御管理情報に基づき前記所定の長さを切り換える命令変換方法。
【請求項１３】
請求項１１または１２記載の命令変換方法であって、
前記電力制御情報解析ステップは、命令毎にマイクロプロセッサの各動作資源が動作するか否かを示す情報を格納する命令別動作資源テーブルを参照して、前記マイクロプロセッサの動作時に所定の長さの命令区間動作しない動作資源を検出する命令変換方法。
【請求項１４】
命令プログラムを所定のマイクロプロセッサの実行に適したように最適化する命令変換方法であって、
前記マイクロプロセッサの動作時に所定の長さの命令区間動作しない動作資源を検出する電力制御情報解析ステップと、
前記電力制御情報解析ステップでの検出結果に基づき前記命令プログラムに電力制御に関する指示を付与する電力制御指示付与ステップとを備え、
前記電力制御情報解析ステップは、動作資源の停止が可能な命令区間が長くなるように命令プログラムを組み替える命令組み替えステップを含む命令変換方法。
【請求項１５】
請求項１４記載の命令変換方法であって、
前記命令組み替えステップは、命令プログラム中の命令依存関係を維持しつつ命令を並べ替える命令変換方法。
【請求項１６】
請求項１４記載の命令変換方法であって、
前記命令組み替えステップは、命令プログラム中の一の命令を前記一の命令と同一の処理結果を有する代替可能命令と差し替える命令変換方法。
【請求項１７】
請求項５から１０のいずれか一項記載の命令変換装置で変換された命令プログラムを実行して内蔵する動作資源に対して個別に電力制御を行うマイクロプロセッサ。
【請求項１８】
請求項１１から１６のいずれか一項記載の命令変換方法で変換された命令プログラムを実行して内蔵する動作資源に対して個別に電力制御を行うマイクロプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電力制御機能を備えたマイクロプロセッサ及び命令プログラムを所定のマイクロプロセッサの実行に適したように最適化する命令変換装置に関する。
【０００２】
【従来の技術】
従来、マイクロプロセッサの消費電力を低減するために、ソフトウェア開発者が命令プログラムに電力制御命令を直接書き込むことが行われている。図２１はソフトウェア駆動によりマイクロプロセッサの電力制御を行う命令プログラム例を示す図である。本例では区間２１０１においてデータメモリを使用していない。そこでソフトウェア開発者は２１０２の箇所にデータメモリを停止させる命令を挿入し、データメモリが再び使用される直前の２１０３の箇所にデータメモリの停止を解除する命令を挿入する。
【０００３】
マイクロプロセッサは命令実行時に、デコーダで上記電力制御命令をデコードし、電力制御情報を抽出する。抽出された電力制御情報は電力制御レジスタに書き込まれ、電力制御回路がこの電力制御レジスタの状態に応じた電力制御を行う。このようにして、プログラムに挿入された上記２つの命令により、区間２１０１においてデータメモリを停止させることが可能である。
【０００４】
本例ではデータメモリの例を示したが、マイクロプロセッサにおいて命令により電力制御可能な対象であれば、データレジスタ、データバス、演算器、周辺インターフェース、さらには一般の論理回路素子に及ぶマイクロプロセッサのあらゆる動作資源が制御可能である。
【０００５】
しかしながら、上記の方法ではソフトウェア開発者が命令プログラム記述時に電力制御の開始や終了個所を判断し、直接命令プログラムに電力制御用命令の記述を行うため、ソフトウェア開発者の開発負担が大きい。また、指定個所が増加すると細かな制御指示を記述するのは困難である。さらに、電力制御の対象がメモリ構成や周辺インターフェースポート数等、マイクロプロセッサのシステム構成により異なる場合は、それぞれの機種に固有のプログラムが必要となるため、ソフトウェアの共用や流用が困難である。
【０００６】
上記問題点を解決するために、命令プログラムを構成する命令の種類により各動作資源が動作するか否かに関する情報を予めテーブルに記録しておき、上記テーブルを用いて命令プログラムを解析し、解析結果に基づいて電力制御命令を挿入するコンパイラ等の命令変換装置が、特願２００３−１７３７４号明細書において提案されている。
【０００７】
【発明が解決しようとする課題】
近年、ソフトウェア規模の増大とともにソフトウェアに不具合（バグ）が残り易くなり、ソフトウェアの安全性を保証することが困難になってきている。一方で、製品として出荷された後に不具合が発覚すると、製品の回収やソフトウェアの無償書き換えへと発展し、その被害は計り知れない。
【０００８】
前記特願２００３−１７３７４号明細書に記載の技術は、コンパイラ等の命令変換装置で電力制御命令を自動挿入するものであるため、自動挿入による不具合が生ずる可能性も存在する。また、製品デバッグ時に不具合を発見したとしても、その不具合がソフトウェア開発者が記述した命令プログラムに起因するものか、あるいはコンパイラ等の命令変換装置が自動挿入した命令に起因するものかを判別することが困難である。
【０００９】
しかしながら、例えばモバイル機器の機能の増大とともに低消費電力化への要求がさらに高まるなど、近年はあらゆる機器において低消費電力化への要求があり、ソフトウェア開発者が命令プログラムに手作業で電力制御命令を記述する方法では対応できなくなっている。そのため電力制御命令を自動挿入するコンパイラのような方法が必須となるが、電力制御命令の自動挿入により不具合が発生する可能性が大きな問題となる。
【００１０】
また、電力制御に関するハードウェアは、他のハードウェアを停止させるものであるため、ハードウェアに関して初期不具合が発生する可能性が高い。このため、電力制御に関してはソフトウェア不具合とハードウェア不具合を判別することも重要になる。しかしながら、従来のソフトウェア開発者が命令プログラムに電力制御命令を直接書き込む方法では、プログラマが電力制御命令を含めてソフトウェアを作りこむので、これを判別することが難しい。このことはコンパイラによる電力制御命令の自動挿入による方法を用いても変わりはない。
【００１１】
本発明は係る事情に鑑みてなされたものであり、命令プログラムを解析し電力制御命令を自動挿入するコンパイラ等による命令変換方法において、電力制御命令の自動挿入による不具合の発生を防止しソフトウェアの安全性を高めること、及び不具合の発生時にソフトウェア開発者が記述した命令プログラムに起因する不具合とコンパイラが自動挿入した命令に起因する不具合とを切り分けること、及び電力制御に関するハードウェアの不具合とソフトウェアによる不具合とを切り分けることを可能にする電力制御機能を備えたマイクロプロセッサ及び命令変換装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記課題を解決するために、本発明の請求項１記載のマイクロプロセッサは、電力制御機能を備えたマイクロプロセッサであって、電力制御を行うか否かが予め設定される電力制御許可設定手段と、前記マイクロプロセッサの動作資源に対して個別に電力制御を指定する電力制御命令の実行時に、前記電力制御許可設定手段の設定に従って最終的に電力制御信号の出力を制御する電力制御出力制御手段とを備える。
【００１３】
請求項２記載のマイクロプロセッサは、請求項１記載のマイクロプロセッサであって、前記電力制御命令が指定する電力制御を行うべき動作資源の情報を格納する電力制御レジスタと、前記電力制御レジスタに格納された情報に基づき前記動作資源のそれぞれに対して電力制御を行わせる電力制御信号を出力する電力制御回路と、前記電力制御許可手段の設定に従って前記電力制御信号をそれぞれゲートするゲート回路とを備える。
【００１４】
請求項１または２記載のマイクロプロセッサによれば、電力制御許可手段により電力制御を行うか否かを決定することができるため、低消費電力よりもソフトウェアの安全性を優先したいときは電力制御を非許可として安全性を確保することができる。また、命令プログラムのデバッグ時には電力制御の許可／非許可を切り換えることにより、ソフトウェア開発者が記述した命令コードに起因した不具合と、命令変換によって挿入された電力制御命令に起因した不具合とを切り分けることが可能となる。
【００１５】
請求項３記載のマイクロプロセッサは、電力制御機能を備えたマイクロプロセッサであって、命令プログラムそれぞれに付与されるプログラムＩＤ毎に予め設定された電力制御を行うか否かの情報を保持し、かつ実行中の命令プログラムのプログラムＩＤが電力制御を行うように設定されたプログラムＩＤであるか否かを判定するプロセッサ状態判定手段と、前記マイクロプロセッサの動作資源に対して個別に電力制御を指定する電力制御命令の実行時に、実行中の命令プログラムについての前記プロセッサ状態判定手段の判定結果に従って最終的に電力制御信号の出力を制御する電力制御信号出力制御手段とを備える。
【００１６】
請求項４記載のマイクロプロセッサは、請求項３記載のマイクロプロセッサであって、前記電力制御命令が指定する電力制御を行うべき動作資源の情報を格納する電力制御レジスタと、前記電力制御レジスタに格納された情報に基づき前記動作資源のそれぞれに対して電力制御を行わせる電力制御信号を出力する電力制御回路と、前記プロセッサ状態判定手段の判定結果に従って前記電力制御信号をそれぞれゲートするゲート回路とを備える。
【００１７】
請求項３または４記載のマイクロプロセッサによれば、実行中の命令プログラムが電力制御を行うように設定されているか否かに従って実際に電力制御を行うか否かを決定することができるため、例えば、信頼できるソフトウェア開発者が開発した命令プログラムでは電力制御を許可し、信頼できないソフトウェア開発者が開発した命令プログラムでは電力制御を非許可にすることができるので、命令プログラムの安全性を高めることができる。
【００１８】
請求項５記載の命令変換装置は、命令プログラムを所定のマイクロプロセッサの実行に適したように最適化する命令変換装置であって、命令プログラム中に記述された指示文を参照して電力制御管理情報を抽出する電力制御管理手段と、前記電力制御管理情報に基づき前記マイクロプロセッサの動作時に所定の長さの命令区間動作しない動作資源を検出する電力制御情報解析手段と、前記電力制御情報解析手段の検出結果に基づき前記命令プログラムに電力制御に関する指示を付与する電力制御指示付与手段とを備える。
【００１９】
請求項６記載の命令変換装置は、請求項５記載の命令変換装置であって、前記電力制御管理情報は前記所定の長さを指定する情報を含み、前記電力制御情報解析手段は前記電力制御管理情報に基づき前記所定の長さを切り換えるものである。
【００２０】
請求項７記載の命令変換装置は、請求項５または６記載の命令変換装置であって、命令毎にマイクロプロセッサの各動作資源が動作するか否かを示す情報を格納する命令別動作資源テーブル格納手段を備え、前記電力制御情報解析手段は、前記命令別動作資源テーブル格納手段に格納された情報に基づいて、前記マイクロプロセッサの動作時に所定の長さの命令区間動作しない動作資源を検出するものである。
【００２１】
請求項５から７記載の命令変換装置によれば、ソフトウェア開発者は命令プログラム作成時に指示文を用いて電力制御を行う区間及び電力制御のレベルを指定することにより、電力制御を必要とする区間のみ任意のレベルの電力制御を行うことができるので、コードサイズの増大や動作速度の低下といった問題を最低限に抑え、きめ細やかな電力制御を行うことができる。また、電力制御命令の挿入や置換により安全性に問題が生じやすい個所は電力制御を行わないようにすることができるため、プログラムの安全性を高めることができる。
【００２２】
請求項８記載の命令変換装置は、命令プログラムを所定のマイクロプロセッサの実行に適したように最適化する命令変換装置であって、前記マイクロプロセッサの動作時に所定の長さの命令区間動作しない動作資源を検出する電力制御情報解析手段と、前記電力制御情報解析手段の検出結果に基づき前記命令プログラムに電力制御に関する指示を付与する電力制御指示付与手段とを備え、前記電力制御情報解析手段は、動作資源の停止が可能な命令区間が長くなるように命令プログラムを組み替える命令組み替え手段を備える。
【００２３】
請求項８記載の命令変換装置によれば、動作資源の停止が可能な命令区間が長くなるように命令プログラムを自動的に組み替えることができるため、電力制御情報解析手段が検出する動作資源が動作しない命令区間が長くなり、命令プログラム実行時の消費電力を低減することができる。
【００２４】
請求項９記載の命令変換装置は、請求項８記載の命令変換装置であって、前記命令組み替え手段は、命令プログラム中の命令依存関係を維持しつつ命令を並べ替える命令並べ替え手段である。
【００２５】
請求項９記載の命令変換装置によれば、命令プログラム中の命令の依存関係を維持したまま、動作資源の停止が可能な命令区間が長くなるように命令を並べ替えることができるため、電力制御情報解析手段が検出する動作資源が動作しない命令区間が長くなり、消費電力を効果的に低減することができる。
【００２６】
請求項１０記載の命令変換装置は、請求項８記載の命令変換装置であって、前記命令組み替え手段は、命令プログラム中の一の命令を前記一の命令と同一の処理結果を有する代替可能命令と差し替える命令差し替え手段である。
【００２７】
請求項１０記載の命令変換装置によれば、動作資源の停止が可能な命令区間が長くなるように命令プログラム中の命令を差し替え可能な命令へと差し替えることができるため、電力制御情報解析手段が検出する動作資源が動作しない命令区間が長くなり、消費電力を効果的に低減することができる。
【００２８】
請求項１１記載の命令変換方法は、命令プログラムを所定のマイクロプロセッサの実行に適したように最適化する命令変換方法であって、命令プログラム中に記述された指示文を参照して電力制御管理情報を抽出する電力制御管理ステップと、前記電力制御管理情報に基づき前記マイクロプロセッサの動作時に所定の長さの命令区間動作しない動作資源を検出する電力制御情報解析ステップと、前記電力制御情報解析ステップでの検出結果に基づき前記命令プログラムに電力制御に関する指示を付与する電力制御指示付与ステップとを備える。
【００２９】
請求項１２記載の命令変換方法は、請求項１１記載の命令変換方法であって、前記電力制御管理情報は前記所定の長さを指定する情報を含み、前記電力制御情報解析ステップは、前記電力制御管理情報に基づき前記所定の長さを切り換えるものである。
【００３０】
請求項１３記載の命令変換方法は、請求項１１または１２記載の命令変換方法であって、前記電力制御情報解析ステップは、命令毎にマイクロプロセッサの各動作資源が動作するか否かを示す情報を格納する命令別動作資源テーブルを参照して、前記マイクロプロセッサの動作時に所定の長さの命令区間動作しない動作資源を検出する。
【００３１】
請求項１１から１３に記載の命令変換方法によれば、ソフトウェア開発者は命令プログラム作成時に指示文を用いて電力制御を行う区間及び電力制御のレベルを指定することにより、電力制御を必要とする区間のみ任意のレベルの電力制御を行うことができるので、コードサイズの増大や動作速度の低下といった問題を最低限に抑え、きめ細やかな電力制御を行うことができる。また、電力制御命令の挿入や置換により安全性に問題が生じやすい個所は電力制御を行わないようにできるため、プログラムの安全性を高めることができる。
【００３２】
請求項１４記載の命令変換方法は、命令プログラムを所定のマイクロプロセッサの実行に適したように最適化する命令変換方法であって、前記マイクロプロセッサの動作時に所定の長さの命令区間動作しない動作資源を検出する電力制御情報解析ステップと、前記電力制御情報解析ステップでの検出結果に基づき前記命令プログラムに電力制御に関する指示を付与する電力制御指示付与ステップとを備え、前記電力制御情報解析ステップは、動作資源の停止が可能な命令区間が長くなるように命令プログラムを組み替える命令組み替えステップを含む。
【００３３】
請求項１４記載の命令変換方法によれば、動作資源の停止が可能な命令区間が長くなるように命令プログラムを自動的に組み替えることができるため、電力制御情報解析ステップで検出する動作資源が動作しない命令区間が長くなり、命令プログラム実行時の消費電力を低減することができる。
【００３４】
請求項１５記載の命令変換方法は、請求項１４記載の命令変換方法であって、前記命令組み替えステップは、命令プログラム中の命令依存関係を維持しつつ命令を並べ替えるものである。
【００３５】
請求項１５記載の命令変換方法によれば、命令プログラム中の命令の依存関係を維持したまま、動作資源の停止が可能な命令区間が長くなるように命令を並べ替えることができるため、電力制御情報解析ステップで検出される動作資源が動作しない命令区間が長くなり、消費電力を効果的に低減することができる。
【００３６】
請求項１６記載の命令変換方法は、請求項１４記載の命令変換方法であって、前記命令組み替えステップは、命令プログラム中の一の命令を前記一の命令と同一の処理結果を有する代替可能命令と差し替えるものである。
【００３７】
請求項１６記載の命令変換方法によれば、動作資源の停止が可能な命令区間が長くなるように命令プログラム中の命令を差し替え可能な命令へと差し替えることができるため、電力制御情報解析ステップで検出される動作資源が動作しない命令区間が長くなり、消費電力を効果的に低減することができる。
【００３８】
請求項１７記載のマイクロプロセッサは、請求項５から１０のいずれか一項記載の命令変換装置で変換された命令プログラムを実行して内蔵する動作資源に対して個別に電力制御を行うものである。
【００３９】
請求項１８記載のマイクロプロセッサは、請求項１１から１６のいずれか一項記載の命令変換方法で変換された命令プログラムを実行して内蔵する動作資源に対して個別に電力制御を行うものである。
【００４０】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。
（第１の実施形態）
図１は、本発明の第１の実施形態の電力制御機能を備えたマイクロプロセッサに係り、ユーザが記述した命令プログラムを実行オブジェクト形式の命令プログラムに変換するコンパイラ等の命令変換装置の構成と処理過程を示す図である。後述する命令翻訳手段を省略すれば、命令変換装置は実行オブジェクト形式の命令プログラムを変換するものであっても構わない。
【００４１】
図１において、１０１はマイクロプロセッサで実行される命令プログラムである。命令プログラム１０１は、ニーモニックで記述されたアセンブラプログラムの命令列あるいはＣ言語やＦＯＲＴＲＡＮ等のプログラム言語で記述された命令列のいずれの表現形式でも構わないが、以下の説明においては主にニーモニックで記述されたアセンブラプログラム例を用いて説明する。
【００４２】
命令変換装置の電力制御情報解析手段は、命令毎動作資源解析手段１０２、命令別動作資源テーブル１０３、電力制御情報検出手段１０５からなる。命令別動作資源テーブル１０３には、命令毎にマイクロプロセッサ内のいずれの動作資源が動作するかの情報を予め記録しておく。
【００４３】
命令毎動作資源解析手段１０２は、命令プログラム１０１を構成する命令毎に命令別動作資源テーブル１０３を参照し、いずれの動作資源が動作するかの情報を抽出し、命令毎動作資源使用データ１０４を出力する。電力制御情報検出手段１０５は、命令毎動作資源使用データ１０４の時系列的な解析を行い、いずれの個所にて動作資源の停止あるいは動作開始等の電力制御命令を挿入すると電力消費量を低減できるかを判断し、電力制御指示データ１０６を出力する。
【００４４】
電力制御指示付与手段１０７は、電力制御指示データ１０６を基に、命令プログラム１０１に動作資源の停止あるいは動作開始等の命令の挿入を行い、電力最適化済命令プログラム１０８を生成する。命令翻訳手段１０９は電力最適化済命令プログラム１０８のプログラム言語を機械語へと翻訳し、マイクロプロセッサが実行すべき機械語命令コード列である電力最適化済実行オブジェクト１１０を生成出力する。命令プログラム１０１がすでに実行オブジェクト形式の場合は、命令翻訳手段１０９は省略され得る。
【００４５】
図２は命令別動作資源テーブル１０３の構成例を示す図である。命令別動作資源テーブル１０３は、命令モードを示すフィールド２０１とマイクロプロセッサ内の動作資源を表すフィールド２０２の２つのフィールドを持つ二次元テーブルである。テーブル中の値は各命令モードの実行において各動作資源が動作するか否かを示している。命令別動作資源テーブルは必ずしも図２の形に限定されない。命令モードと動作資源の他にもパラメータが必要となった場合には三次元テーブルとなることもあり得る。
【００４６】
本例では、テーブル中の”１”は動作資源が動作すること、”０”は動作資源が動作しないことを示している。例えば、レジスタ間の加算命令である「ＡＤＤ  Ｒｘ、Ｒｙ、Ｒｚ」の場合、マイクロプロセッサ動作時には「演算器Ａ動作」、「データレジスタＲ０−Ｒ１５」、「データレジスタＲ１６−Ｒ３１」のみが動作するので、テーブル中の対応する個所には”１”が記述されており、その他の動作資源は動作しないので、テーブル中の対応する個所には”０”が記述されている。同様に、メモリの読み出し命令である「ＬＤ  Ｒａ、ＭＥＭｙ」では、テーブル中で”１”が記述されている「メモリＲｅａｄ動作」及び「ブロックＡ動作」のみが動作することになる。ここで、”０”と”１”の値は重要でなく、動作資源の動作と非動作を識別することが目的である。
【００４７】
次に図３を用いて、命令プログラムが３０１の場合を例にとって、命令毎動作資源解析手段１０２の動作を説明する。命令毎動作解析手段１０２は命令プログラム３０１を入力として受け取ると、命令毎に命令別動作資源テーブル１０３の命令モードフィールドとの一致検索を行い、それぞれの命令に対応するマイクロプロセッサ内の動作資源を３０２のように出力する。３０２において、命令毎に”１”となっている動作資源が命令実行時に動作することを示している。命令毎動作資源解析手段１０２は、命令プログラムを構成する各命令について上記解析を行い、命令毎動作資源使用データ１０４を生成する。
【００４８】
続いて図４を用いて、電力制御情報検出手段１０５の動作を説明する。電力制御情報検出手段１０５は、命令毎動作資源解析手段１０２が出力する命令毎動作資源使用データ１０４について、命令方向（時系列方向）に動作資源が動作するか否かについて解析を行う。解析方法の一例として、連続する”０”を検出する方法を説明する。図４に示す命令毎動作資源使用データにおいて、情報”０”はマイクロプロセッサがその命令実行において動作資源の動作を行わないことを示す。電力制御情報検出手段１０５は、命令毎動作資源使用データ１０４について、ある一定命令区間、例えば３命令区間以上連続する”０”を検出することにより、所定命令区間動作しない動作資源を検出できる。
【００４９】
図４において「メモリＲｅａｄ動作」の解析を例にとり、３命令区間以上動作しない動作資源を検出する場合について説明する。「メモリＲｅａｄ動作」に対応する４０１に示したデータ列によると、ＳＵＢ命令からＳＴＲ命令まで４命令の間は「メモリＲｅａｄ動作」を必要としていない。したがって電力制御情報検出手段１０５はこれを検出する。
【００５０】
図４と同じ命令プログラムを例にとって、さらに電力制御指示付与手段１０７について説明を加える。図５は電力制御命令の挿入例である。図５に示すように、電力制御指示付与手段１０７は、電力制御情報検出手段１０５の出力する電力制御指示データ１０６に基づき、ＳＵＢ命令の直前に「メモリＲｅａｄ動作」に関する回路停止を要求する命令コードを、ＳＴＲ命令の直後に回路動作開始の命令を挿入している、これにより、この区間において命令毎のデコードを必要とせずに「メモリＲｅａｄ動作」に関する回路停止を行うことができ、「メモリＲｅａｄ動作」に必要とされた消費電力を削減することができる。
【００５１】
本例では３命令区間以上の動作資源の停止可能区間を検出しているが、電力制御情報検出手段１０５で検出される動作停止を行うことができる命令区間は、マイクロプロセッサで動作する各アプリケーションプログラムやシステムにより最適な電力制御のレベルを、１区間以上の長さで任意に設定することができる。
【００５２】
また、プログラムのコンパイル時にオプションを用いてユーザが電力制御のレベルを指定する構成としても良い。例えば、オプション１を指定してコンパイルを行うと３区間以上動作しない動作資源に対して動作停止を行い、オプション２を指定してコンパイルを行うと５区間以上動作しない動作資源に対して動作停止を行うようにしても良い。電力制御命令を挿入しすぎると、命令増加によるプログラムのコードサイズの増大や動作速度の低下を招くことがある。このようにオプションを指定することにより、ソフトウェア開発者がプログラムのコードサイズと動作速度とを考慮しながら電力制御を行うことができる。なお、電力制御のレベルの指定対象としては区間の長さに限られるものではなく、様々に考えられる。例えば、電力制御の対象とする動作資源や、電力制御の方法（クロック周波数の低下、停止、電源供給のカット等）が考えられる。
【００５３】
なお、図４の例ではＳＵＢ命令からＭＵＬ命令までの３命令間は「メモリＷｒｉｔｅ動作」も必要としていない。したがって本例では、この情報を検出することで、動作資源個別の電力制御のみを行う場合よりさらに上流側で電力制御を行うことができる。すなわち、命令プログラムに「メモリＲｅａｄ動作」や「メモリＷｒｉｔｅ動作」に関する制御指示を付与するのみならず、メモリやメモリ制御回路自体を完全に停止させる制御指示を付与することもできる。
【００５４】
また、動作資源の動作停止または開始と加算やビットシフト等の通常演算との両方を行う命令を１命令として命令仕様において定義している場合には、電力制御命令の挿入ではなく、命令の置換によって電力制御に関する情報を命令プログラムに付与するようにしても良い。
【００５５】
以上説明した命令変換装置はコンピュータプログラムにより実現することができる。このプログラムはアセンブラに組み込むことにより、ソフトウェア開発者が命令プログラム１０１をアセンブルすれば電力最適化済実行オブジェクト１１０までを作成するようにできる。これにより、ソフトウェア開発者は何も意識する必要がなく、ただ命令プログラムを記述しアセンブルするだけで、マイクロプロセッサの消費電力は従来のものより低減される。もちろん、命令変換装置をアセンブラに組み込まず、独立した電力制御用命令変換プログラムとすることもできる。
【００５６】
また、ソフトウェア開発者の記述言語がＣ言語やＦＯＲＴＬＡＮのようなプログラム言語である場合にはコンパイラに組み込むことも可能である。プログラム言語を用いることによりソフトウェア開発者はより簡単にプログラムを記述することができる。
【００５７】
上記説明では、ソフトウェア開発者が記述した命令プログラムを解析し、電力最適化した後にプログラム言語で記述された命令プログラムから機械語で記述された命令プログラム（実行オブジェクト形式）への翻訳を行っているが、命令プログラムを実行オブジェクトに翻訳した後に、実行オブジェクトを解析して電力最適化済実行オブジェクトを作成しても何ら問題はない。さらに、このような命令変換装置を回路で実現し、マイクロプロセッサに組み込むこともできる。
【００５８】
命令変換装置により命令変換され作成された電力最適化済実行オブジェクト１１０をマイクロプロセッサは実行する。マイクロプロセッサは命令実行時に、命令デコーダにおいて電力最適化済実行オブジェクトに挿入された電力制御命令をデコードすることにより電力制御情報を抽出する。抽出された電力制御情報は電力制御レジスタに書き込まれ、電力制御回路がこの電力制御レジスタの状態に応じた電力制御を行う。
【００５９】
図６は電力制御レジスタの構成例を示す図である。図６において、それぞれの電力制御対象は命令別動作資源テーブルの動作資源を表わすフィールドに対応し、例えば”メモリＲｅａｄ動作”、”メモリＷｒｉｔｅ動作”、”演算器Ａ動作”、”演算器Ｂ動作”等に対応している。電力制御レジスタでビットが”１”となっている電力制御対象の動作資源が回路停止の対象となる。図６においては、電力制御対象２はビット”１”であるので回路停止の対象となるが、電力制御対象１、３、４は回路停止の対象とはならない。
【００６０】
図７は本発明の第１の実施形態に係るマイクロプロセッサにおける電力制御機能の構成を示すブロック図である。図７において、命令デコーダ７０１は命令をデコードし各動作資源へ指示を与える。また、命令デコーダ７０１は電力制御命令をデコードしたときには電力制御情報を抽出する。電力制御レジスタ７０２は命令デコーダ７０１が抽出した電力制御情報を保持するレジスタであり、電力制御回路７０３は電力制御レジスタに書き込まれた電力制御情報に基づいて電力制御を行う回路である。
【００６１】
さらに、電力制御許可レジスタ７０４はマイクロプロセッサが電力制御を行うかどうかを決定するレジスタであり、電力制御許可レジスタ７０４からの出力信号は電力制御回路が出力する電力制御信号とともにゲート回路群７０５への入力となる。ゲート回路群７０５の出力は各電力制御対象へと供給される。
【００６２】
さらに具体的な動作を説明する。電力制御回路７０３は電力制御レジスタ７０２の値を参照し、回路停止の対象となる電力制御対象へと供給される電力制御信号を”Ｈ”にする。電力制御許可レジスタ７０４は電力制御が許可されているときは”Ｈ”を、電力制御が非許可のときは”Ｌ”を出力する。したがって電力制御が許可されているときは電力制御回路７０３から出力される電力制御信号がそのまま電力制御対象へと出力されるが、電力制御が非許可のときはゲート回路で抑止され、電力制御対象へは”Ｌ”しか供給されない。各電力制御対象は供給される電力制御信号が”Ｈ”のときに回路を停止する。
【００６３】
電力制御許可レジスタ７０４を設けることにより、低消費電力よりも動作の安全性を優先したいときは、電力制御を非許可として安全性を確保することができる。また、命令プログラムのデバッグ時には電力制御の許可／非許可を切り換えることにより、ソフトウェア開発者が記述した命令コードに起因したソフトウェア的な不具合と、命令変換によって挿入された電力制御命令に起因した不具合とを切り分けることが可能となる。ここで命令変換によって挿入された電力制御命令に起因した不具合とは、電力制御に関するハードウェアに起因する不具合と挿入された電力制御命令に起因するソフトウェア的な不具合とを含む。
【００６４】
さらに電力制御許可レジスタ７０４を設けることにより電力制御に関するハードウェアの不具合も切り分けることができる。具体的に説明すると、まずソフトウェア開発者がソフトウェアを開発して電力制御を非許可で実行する。このとき生じる不具合を▲１▼とする。この場合であってもソフトウェア開発者は最低限の電力制御命令を記述しているものとする。次に開発したソフトウェアを、電力制御を許可して実行する。このとき生じる不具合を▲２▼とする。すると、▲１▼と▲２▼の不具合の差分は電力制御に関するハードウェアに起因する不具合と言うことになる。さらに開発したソフトウェアを、電力制御命令を自動挿入する命令変換装置を用いて命令変換し電力制御を許可して実行する。このとき生じる不具合を▲３▼とする。すると、▲２▼と▲３▼の不具合の差分は命令変換によって挿入された電力制御命令によるソフトウェア的な不具合ということになる。このように命令変換、電力制御の許可／非許可を切替えながらデバッグを行うことにより種々の不具合を切り分けることができる
【００６５】
（第２の実施形態）
図８は本発明の第２の実施形態に係るマイクロプロセッサにおける電力制御機能の構成を示すブロック図である。図８において、図７と同一の構成要素については同一の符号を付して説明を省略する。図８に示す電力制御機能においては、図７の電力制御許可レジスタ７０４に代えて、プロセッサ状態判定回路８０１を備えている。
【００６６】
一般にマイクロプロセッサが実行する命令プログラムには部分毎にプログラムＩＤが付与されている。マイクロプロセッサは上記プログラムＩＤによって権限が設定される。本実施形態においては、プロセッサ状態判定回路８０１がプログラムＩＤを判断することにより、電力制御を行うか否かを決定する。電力制御を行うと判断したときにはゲート回路群７０５への出力信号を”Ｈ”にし、電力制御を行わないと判断したときにはゲート回路群７０５への出力を”Ｌ”にする。したがって、電力制御を行わないと判断したときはゲート回路は”Ｌ”しか出力しないため電力制御は行われない。
【００６７】
図９はプロセッサ状態判定回路８０１が保持するＩＤ−電力制御テーブルの一例であり、プログラムＩＤと電力制御を許可するか否かの対応を示している。プロセッサ状態判定回路８０１はプログラムＩＤが入力されると、ＩＤ―電力制御テーブルのプログラムＩＤを一致検索することにより電力制御を行うかどうかを決定する。図９の例によると、プログラムＩＤがＩＤ１、ＩＤ２、ＩＤ４であるときはゲート回路群７０５への出力信号を”Ｈ”とし、電力制御回路が出力する電力制御信号をそのまま電力制御対象へと出力するが、プログラムＩＤがＩＤ３であるときはゲート回路群７０５への出力信号を”Ｌ”とするので電力制御回路７０３が出力する電力制御信号は抑止され、電力制御は行われない。
【００６８】
上記のようにプログラムＩＤにより電力制御を行うか否かを決定することで、例えば、信頼できるソフトウェア開発者が開発した命令プログラムでは電力制御を許可し、信頼できないソフトウェア開発者が開発した命令プログラムでは電力制御を非許可にすることができ、命令プログラムの実行における安全性を高めることができる。
【００６９】
なお、プログラムＩＤはプログラム中の部分毎（例えばタスク毎）に設定される場合や、プログラム全体について設定される場合がありえるが、いずれの方法であれ、権限を設定できる方法であれば本発明に含まれるものである。
【００７０】
（第３の実施形態）
本実施形態では、ソフトウェア開発者は命令プログラム作成時に指示文を用いて電力制御を行う区間及び電力制御のレベルを指定する。命令変換装置は上記指示文を参照し、電力制御情報検出手段を制御する。すなわち、指示文により電力制御を行うように指定された区間については、指定されたレベルに応じて電力制御可能な動作資源を検出し、指定されていない区間については電力制御可能な動作資源を検出しない。
【００７１】
図１０はソフトウェア開発者が記述する命令プログラムの一例を示す図である。本実施形態においては指示文の一例としてコメント分を用いた例で説明を行う。ソフトウェア開発者は電力制御情報を行う区間の最初にコメント文”＃ｐｒａｇｍａ  ＰＯＷＥＲ＿ＣＯＮＴ＿ＯＮ＿Ｌｅｖｅｌ１”を挿入して電力制御の開始を指示し、電力制御情報を行う区間の最後に”＃ｐｒａｇｍａ  ＰＯＷＥＲ＿ＣＯＮＴ＿ＯＦＦ”を挿入して電力制御終了を指示している。上記２つのコメント文に挟まれた区間はＬｅｖｅｌ１で電力制御が行われる。
【００７２】
図１１は本実施形態における電力制御のレベルと実際に行われる電力制御との対応の一例を示す図である。この例では、Ｌｅｖｅｌ０ではコードサイズの増大などの問題が生じない置換可能な命令が定義されている動作資源のみを検出し、Ｌｅｖｅｌ１、２、３ではそれぞれ１０、５、３区間以上動作しない動作資源を検出する。
【００７３】
図１２は、本発明の第３の実施形態の電力制御機能を備えた命令変換装置の構成と処理過程を示す図である。ここで、図１と同一の構成要素については同一符号を付し説明を省略する。図１２においては、図１に示した命令変換装置の構成に加えて、電力制御情報管理手段１２０１を備えている。
【００７４】
電力制御情報管理手段１２０１は命令プログラムから”＃”から始まるコメント文を抽出する。抽出したコメント文が電力制御をＯＮとするものであるときは、指定されたレベルで電力制御可能な動作資源を検出するように電力制御情報検出手段１０５に指示をする。抽出したコメント文が電力制御をＯＦＦするものであるときには電力制御情報検出手段１０５の機能を停止する。
【００７５】
本実施形態においては、電力制御を必要とする区間のみで任意のレベルの電力制御を行うことができるので、コードサイズの増大、動作速度の低下といった問題を最低限に抑え、きめ細やかな電力制御を行うことができる。
【００７６】
さらに本実施形態においては、電力制御命令の挿入や置換を行うことにより安全性に問題が生じやすい個所は電力制御を行わないようにできるので、さらに命令プログラムの安全性を高めることができる。例えば、条件分岐が多用された個所などは電力制御命令の挿入や置換によりバグが生じやすい。このような個所は電力制御を行わないように制御することができる。
【００７７】
なお、電力制御のレベルの指定対象は本実施形態に限られるものではなく、例えばＬｅｖｅｌ０ではメモリに関する電力制御のみを行い、Ｌｖｅｌ１ではメモリと算術演算に関する演算器のみの制御を行い、Ｌｅｖｅｌ２で全ての動作資源について電力制御を行うといった動作資源を指定する方法や、Ｌｅｖｅｌに応じて電力制御の方法（クロック周波数の低下、停止、電源供給のカット等）を変化させる方法など様々な方法が考えられる。
【００７８】
（第４の実施形態）
図１３は、本発明の第４の実施形態の電力制御機能を備えた命令変換装置の構成と処理過程を示す図である。ここで、図１と同一の構成要素については同一符号を付し説明を省略する。図１３においては、図１に示した命令変換装置の構成に加えて、命令並べ替え手段１３０１及びその出力である命令毎動作資源使用データ１３０２を備えている。
【００７９】
マイクロプロセッサが有する動作資源には消費電力を考慮して予め優先度が設けられている。命令並べ替え手段１３０１においては、命令毎動作資源使用データ１０４を入力し、命令プログラムにおける命令間の依存関係を解析して並び替えが可能な命令を抽出する。そして、より長い区間で優先度の高い動作資源が停止できるように抽出された命令の順序を並び替え、その結果が命令毎動作資源使用データ１３０２として電力制御情報検出手段１０５へと出力される。
【００８０】
図１４は命令並べ替え前の命令プログラムの一例とその命令毎動作資源使用データ１０４を示している。本実施形態の説明においてはメモリ動作が最も優先度が高いものとする。図１４の命令プログラムでは、”ＬＤ  Ｒ１，Ｍｅｍ（Ａ１）”と”ＬＤ  Ｒ１，Ｍｅｍ（Ａ１）”においてメモリＲｅａｄ動作を行うため、メモリＷｒｉｔｅ動作は７命令区間停止可能であるものの、メモリ動作としては最大で２命令区間しか停止させることができない。そこで本実施の形態においては、命令並べ替え手段１３０１において命令の依存関係の解析を行い、命令を並べ替えることによって停止可能な命令区間を長くし、より消費電力を低減させる。
【００８１】
図１５は図１４の命令プログラムにおける命令の依存関係を説明する図である。例えば、命令１５０２において用いられるレジスタＲ０の値は命令１５０１によって決定される。このため、命令１５０１と命令１５０２の順序を入れ替えると処理結果が違うものとなり、入れ替えることはできない。また、命令１５０３で用いられるレジスタＲ５の値は命令１５０２によって決定される。このため、命令１５０２と命令１５０３の順序も入れ替えることはできない。上記のような関係を依存関係といい、図中では矢印で結ばれる円と矩形の順序を入れ替えることができない。しかし、それ以外の命令は順序を入れ替えても正しく計算される。
【００８２】
図１６は命令並べ替え手段の構成をさらに詳しく示した図である。入力される命令毎動作資源使用データ１０４は、依存関係解析部１６０１によって上記のように命令間の依存関係が解析された後、依存関係に関する情報を付与され、依存関係解析データ１６０２として組み合わせ試行部１６０３へと出力される。組み合わせ試行部１６０３は依存関係を維持しながら命令プログラムの並べ替えを組み合わせ試行し、優先度の高い動作資源の停止可能区間が最も長くなるように命令の並べ替えを行う。
【００８３】
図１７は命令並べ替え後の命令プログラムとその命令毎動作資源使用データ１３０２を示している。本実施例では依存関係を崩さないようにして２つのＬＤ命令を実行の順序が早くなるように並べ替えている。これによりメモリＲｅａｄ動作もメモリＷｒｉｔｅ動作と同じように５命令区間停止可能となるので、メモリ全体としての動作を５命令区間停止させることができる。
【００８４】
このように命令並べ替え手段１３０１を設けることにより、優先度の高い、すなわち消費電力の大きな動作資源が停止する命令区間を長くするように命令の並べ替えを行うことができるので、さらなる低消費電力を実現することができる。
【００８５】
なお、命令並べ替え手段１３０１の実施形態は上記の記載例に限られるものではなく、命令並べ替えによりさらなる低消費電力を実現するものであれば良い。例えば、動作資源毎に優先度を設け、優先度の高い動作資源をより長い命令区間停止させる方法は簡単であるが、命令プログラムによっては命令並べ替えにより消費電力が低くなるとは限らない。そこで、動作資源が停止する命令区間の総和が長くなるように命令を並べ替える方法、あるいは動作資源ごとに想定される消費電力を予め定義しておき、マイクロプロセッサが実動作したときに消費電力がどれくらいになるかを監視しながら命令並べ替えを行う方法等、様々な他の実施形態が考えられる。
【００８６】
本実施形態は、第３の実施形態と組み合わせることにより、命令プログラムの所定の個所のみで命令並べ替えを行うことも可能である。これによって命令並べ替えが有効な個所のみで命令並べ替えを行うと良い。特にループ部分のように高い頻度で実行される個所で命令並べ替えは有効である。
【００８７】
（第５の実施形態）
図１８は、本発明の第５の実施形態の電力制御機能を備えた命令変換装置の構成と処理過程を示す図である。ここで、図１と同一の構成要素については同一符号を付し説明を省略する。図１８においては、図１に示した命令変換装置の構成に加えて、差し替え可能な命令の一覧を記憶した差し替え可能命令一覧テーブル１８０２と、命令差し替え手段１８０１及びその出力である命令毎動作資源使用データ１８０３を備えている。
【００８８】
ここで差し替え可能な命令とは、命令を差し替えても同一の処理結果が得られるような命令のことをいう。マイクロプロセッサが有する動作資源には消費電力を考慮して予め優先度が設けられている。命令差し替え手段１８０１は差し替え可能命令一覧テーブル１８０２を参照し、命令の差し替えの結果で優先度の高い動作資源の停止可能な命令区間が長くなるようであれば実際に命令の差し替えを行う。
【００８９】
図１９は命令差し替え前の命令プログラムの一例とその命令毎動作資源使用データ１０４を示している。ここで、ＭＵＬ  Ｒ３，Ｒ０，０ｘ０００２とはレジスタＲ０の値に２を乗算し、レジスタＲ３に格納する命令である。したがって、レジスタＲ０に格納された値を１ビット上位にシフトする命令（ＳＦＴ  Ｒ３，Ｒ０，０ｘ０００１）と得られる処理結果は変わらないが、使う演算器が乗算器であるか，シフタであるかの点で異なっている。ＭＵＬ  Ｒ３，Ｒ０，０ｘ０００４とＳＦＴ  Ｒ３，Ｒ０，０ｘ０００２も同様の関係である。なお、乗算器はシフタよりも優先度の高いものとする。ここで図１９の命令プログラムではシフタは３命令区間停止させることが可能であるものの、乗算器は２命令区間しか停止させることができない。そこで本実施の形態においては命令差し替え手段１８０１において上記２つのＭＵＬ命令をＳＦＴ命令へと差し替える。
【００９０】
図２０は命令差し替え後の命令プログラムと命令毎動作資源使用データ１８０３である。ＭＵＬ命令をＳＦＴ命令へと差し替えることにより，乗算器は６命令区間停止可能となっている。これによりマイクロプロセッサの消費電力はさらに低減される。
【００９１】
なお、命令差し替え手段１８０１の実施形態は上記の記載例に限られるものではなく、命令差し替えによりさらなる低消費電力を実現するものであれば良い。例えば、動作資源毎に優先度を設け、優先度の高い動作資源をより長い命令区間停止させる方法は簡単であるが、命令プログラムによっては命令差し替えにより消費電力が低くなるとは限らない。そこで、動作資源が停止する命令区間の総和が長くなるように命令を差し替える方法、あるいは動作資源ごとに想定される消費電力を予め定義しておき、マイクロプロセッサが実動作したときに消費電力がどれくらいになるかを監視しながら命令差し替えを行う方法等、様々な他の実施形態が考えられる。
【００９２】
本実施形態は、第３の実施形態と組み合わせることにより、命令プログラムの所定の個所のみで命令並べ替えを行うことも可能である。これによって命令並べ替えが有効な個所のみで命令並べ替えを行うと良い。特にループ部分のように高い頻度で実行される個所で命令並べ替えは有効である。
【００９３】
また、本発明において動作資源を停止させる方法は、クロック供給の停止、クロック周波数の低下、供給電圧の制御、動作資源を構成するトランジスタの閾値電圧の制御など様々に考えられるが、動作資源を低消費電力状態にするものであれば特に方法は問わない。
【００９４】
【発明の効果】
以上説明したように、本発明によれば、電力制御許可手段の設定、あるいは実行中の命令プログラムのプログラムＩＤにより電力制御を行うか否かを決定することができるため、命令変換装置によって電力制御命令を自動付与された命令プログラムを実行する場合でもソフトウェアの安全性を高めることができる。また、ソフトウェアの不具合をソフトウェア開発者が記述した命令プログラム自体に起因する不具合と、コンパイラで自動挿入された命令に起因する不具合とに切り分けることが可能となる。
【００９５】
また本発明によれば、命令プログラム中の指示文を用いて電力制御を行う区間及び電力制御のレベルを自由に設定できるので、コードサイズの増大や動作速度の低下といった問題を最低限に抑え、きめ細やかな電力制御を行うことができる。また、電力制御命令の挿入や置換により安全性に問題が生じやすい個所は電力制御を行わないようにすることができるため、プログラムの安全性を高めることができる。
【００９６】
また本発明によれば、命令の並べ替えや差し替えにより動作資源が停止可能な命令区間が長くなるように命令プログラムを自動的に組み替えることができるため、電力制御情報解析において検出する動作資源が動作しない命令区間が長くなり、消費電力を効果的に低減することができる。
【図面の簡単な説明】
【図１】命令変換装置の基本構成と処理過程を示す図。
【図２】命令別動作資源テーブルの構成例を示す図。
【図３】命令毎動作資源解析手段による命令毎動作資源使用データの出力例を示す図。
【図４】電力制御情報検出手段による電力制御指示データの出力例を説明する図。
【図５】電力制御指示付与手段による電力制御命令の挿入例を示す図。
【図６】電力制御レジスタの構成例を示す図。
【図７】本発明の第１の実施形態に係るマイクロプロセッサの構成を示すブロック図。
【図８】本発明の第２の実施形態に係るマイクロプロセッサの構成を示すブロック図。
【図９】本発明の第２の実施形態に係るＩＤ−電力制御テーブルの一例を示す図。
【図１０】コメント文を用いて電力制御区間を指定した命令プログラムの一例を示す図。
【図１１】電力制御のレベルとその電力制御内容の対応例を示す図。
【図１２】本発明の第３の実施形態の命令変換装置の構成と処理過程を示す図。
【図１３】本発明の第４の実施形態の命令変換装置の構成と処理過程を示す図。
【図１４】命令並べ替え前の命令プログラム例と命令毎動作資源使用データを示す図。
【図１５】命令の依存関係を説明する図。
【図１６】命令並べ替え手段の構成を示す図。
【図１７】命令並べ替え後の命令プログラムと命令毎動作資源使用データを示す図。
【図１８】本発明の第５の実施形態の命令変換装置の構成と処理過程を示す図。
【図１９】命令差し替え前の命令プログラム例と命令毎動作資源使用データを示す図。
【図２０】命令差し替え後の命令プログラムと命令毎動作資源使用データを示す図。
【図２１】従来のマイクロプロセッサの電力制御を行う命令プログラム例を示す図。
【符号の簡単な説明】
１０１  命令プログラム
１０２  命令毎動作資源解析手段
１０３  命令別動作資源テーブル
１０４  命令毎動作資源使用データ
１０５  電力制御情報検出手段
１０６  電力制御指示データ
１０７  電力制御指示付与手段
１０８  電力最適化済命令プログラム
１０９  命令翻訳手段
１１０  電力最適化済実行オブジェクト
２０１  命令モードフィールド
２０２  動作資源フィールド
３０１  命令プログラム例
３０２  命令毎動作資源使用データの出力例
４０１  電力制御指示データの出力例
７０１  命令デコーダ
７０２  電力制御レジスタ
７０３  電力制御回路
７０４  電力制御許可レジスタ
７０５  ゲート回路群
８０１  プロセッサ状態判定回路
１２０１  電力制御管理手段
１３０１  命令並べ替え手段
１３０２  命令並べ替え後の命令毎動作資源使用データ
１５０１〜１５０３  命令プログラム中の命令
１６０１  依存関係解析部
１６０２  依存関係解析データ
１６０３  組み合わせ試行部
１８０１  命令差し替え手段
１８０２  差し替え可能命令一覧テーブル
１８０３  命令差し替え後の命令毎動作資源使用データ
２１０１  電力制御を行う区間
２１０２  データメモリを停止させる命令
２１０３  データメモリの停止を解除する命令
【図１】
2004318502.tif 000003
【図２】
2004318502.tif 000004
【図３】
2004318502.tif 000005
【図４】
2004318502.tif 000006
【図５】
2004318502.tif 000007
【図６】
2004318502.tif 000008
【図７】
2004318502.tif 000009
【図８】
2004318502.tif 000010
【図９】
2004318502.tif 000011
【図１０】
2004318502.tif 000012
【図１１】
2004318502.tif 000013
【図１２】
2004318502.tif 000014
【図１３】
2004318502.tif 000015
【図１４】
2004318502.tif 000016
【図１５】
2004318502.tif 000017
【図１６】
2004318502.tif 000018
【図１７】
2004318502.tif 000019
【図１８】
2004318502.tif 000020
【図１９】
2004318502.tif 000021
【図２０】
2004318502.tif 000022
【図２１】
2004318502.tif 000023