(57)【要約】【課題】回路規模の増加やデコード時間の増加をすることなく、命令デコードのパイプラインステージ、および時間的に先行しているパイプラインステージに対しても、マイクロプロセッサの低電力動作を実現することを目的とする。【解決手段】命令を実行するプログラム毎の命令コードがプレディケート３０１を指定するフラグ含む第１の命令セットと制御指定情報３０２を含む１または２以上の第２の命令セットを備え、命令実行制御機能に応じて各制御回路の低電力動作を命令単位で行うことにより、回路規模の増加やデコード時間の増加をすることなく、命令デコードのパイプラインステージ、および時間的に先行しているパイプラインステージに対する制御を行い、マイクロプロセッサの低電力動作を実現することができる。【選択図】    図４
2004234038.tif 000002
【特許請求の範囲】
【請求項１】
条件フラグによる命令条件実行機能を備えるマイクロプロセッサに搭載されてマイクロプロセッサの低電力動作を制御する低電力動作制御装置であって、
マイクロプロセッサに入力される命令コードの特定ビットフィールドに命令実行制御機能のためのフラグを選択する命令実行制御機能情報を含む第１の命令セットと、前記特定ビットフィールドに低電力制御のための制御指定情報を含む１または２以上の第２の命令セットを備え、
通常動作時に第１の命令セットを実行し、低電力動作時に第２の命令セットを実行するように命令セットを切り替える動作モード切り替え回路と、
第１の命令セットモード時に前記命令実行制御機能情報に応じたフラグを読み込んで命令実行制御機能動作を識別するプレディケート判定回路と、
第２の命令セットモード時に前記制御指定情報を読み込んで低電力動作を行う制御回路の制御指定情報を抽出する制御指定情報抽出回路と、
前記制御指定情報を用い各制御回路の低電力動作を実施する制御動作実行手段と
を有し、あらかじめ命令を実行するプログラム単位に命令実行制御機能情報と制御指定情報を備え、制御指定情報に応じて各制御回路の低電力動作を命令単位で行うことにより、前記マイクロプロセッサの低電力動作を命令単位で制御することを特徴とする低電力動作制御装置。
【請求項２】
条件フラグによる命令条件実行機能を備えるマイクロプロセッサに搭載されてマイクロプロセッサの低電力動作を制御する低電力動作制御装置であって、
マイクロプロセッサに入力される命令コードの特定ビットフィールドに命令実行制御機能のためのフラグを選択する命令実行制御機能情報を含む第１の命令セットと、前記特定ビットフィールドに低電力制御のための制御指定情報を含む１または２以上の第２の命令セットを備え、
通常動作時に第１の命令セットを実行し、低電力動作時に第２の命令セットを実行するように命令セットを切り替える動作モード切り替え回路と、
第１の命令セットモード時に前記命令実行制御機能情報に応じたフラグを読み込んで命令実行制御機能動作を識別するプレディケート判定回路と、
第２の命令セットモード時に前記制御指定情報を読み込んで前記制御指定情報に応じてイベントを発生するイベント発生手段と、
前記イベントを受けて前記イベントに応じた各制御回路の低電力動作を実施する制御動作実行手段とを有し、あらかじめ命令を実行するプログラム単位に命令実行制御機能情報と制御指定情報を備え、制御指定情報に応じて各制御回路の低電力動作を命令単位で行うことにより、前記マイクロプロセッサの低電力動作を命令単位で制御することを特徴とする低電力動作制御装置。
【請求項３】
前記制御回路がプログラムの特定箇所における動作停止箇所を判定する動作停止判定手段であり、
前記制御動作実行手段が動作停止判定手段の判定結果からマイクロプロセッサの任意の箇所を動作停止制御する動作停止制御手段であり、
マイクロプロセッサの任意の箇所を動作停止制御にすることによりマイクロプロセッサの低電力動作を命令単位で制御することを特徴とする請求項１または請求項２記載の低電力動作制御装置。
【請求項４】
前記制御回路がプログラムの特定箇所における電源電圧の制御実施を判定する電源電圧判定手段であり、
前記制御動作実行手段が電源電圧判定手段の判定結果からマイクロプロセッサの電源電圧制御を行う電源電圧制御手段であり、
マイクロプロセッサの電源電圧制御を行うことによりマイクロプロセッサの低電力動作を命令単位で制御することを特徴とする請求項１または請求項２記載の低電力動作制御装置。
【請求項５】
前記制御回路がプログラムの特定箇所における基板電圧の制御実施を判定する基板電圧判定手段であり、
前記制御動作実行手段が基板電圧判定手段の判定結果からマイクロプロセッサの基板電圧を制御する基板電圧制御手段であり、
マイクロプロセッサの基板電圧を制御することによりマイクロプロセッサの低電力動作を命令単位で制御することを特徴とする請求項１または請求項２記載の低電力動作制御装置。
【請求項６】
前記制御回路がプログラムの特定箇所におけるクロック周波数制御を判定するクロック周波数判定手段であり、
前記制御動作実行手段がクロック周波数判定手段の判定結果からクロック周波数制御を実施するクロック周波数制御手段であり、
マイクロプロセッサのクロック周波数を制御することによりマイクロプロセッサの低電力動作を命令単位で制御することを特徴とする請求項１または請求項２記載の低電力動作制御装置。
【請求項７】
前記イベント発生手段を備えるマイクロプロセッサとは異なるマイクロプロセッサである１または２以上の対象マイクロプロセッサあるいはデータ処理手段に、前記制御動作実行手段として前記対象マイクロプロセッサあるいはデータ処理手段の低電力動作を制御する動作制御手段を備え、前記イベント発生手段を備えるマイクロプロセッサにより、前記対象マイクロプロセッサあるいはデータ処理手段の低電力制御動作を制御することを特徴とする請求項２記載の低電力動作制御装置。
【請求項８】
前記イベント発生手段を備えるマイクロプロセッサとは異なるマイクロプロセッサである１または２以上の対象マイクロプロセッサあるいはデータ処理手段に、前記制御動作実行手段として前記対象マイクロプロセッサあるいはデータ処理手段の電源供給を制御することにより低電力制御動作を制御する電源供給制御手段を備え、前記イベント発生手段を備えるマイクロプロセッサにより、前記対象マイクロプロセッサあるいはデータ処理手段の低電力制御動作を制御することを特徴とする請求項２記載の低電力動作制御装置。
【請求項９】
前記命令コードを生成するマイクロプロセッサプログラム最適化装置であって、
マイクロプロセッサの消費電力情報により前記動作停止制御または前記電源電圧制御または前記基板電圧制御または前記クロック周波数制御における消費電力を算出する消費電力算出手段と、
前記消費電力を用いて各命令の動作制御回路候補における消費電力を算出する動作制御候補算出手段と、
前記消費電力が最も小さくなるように各命令の動作制御回路を選択する切り替え判定手段を備え、前記第１の命令セットと前記第２の命令セットを切り替える命令セット切り替え命令を挿入し、前記第２の命令セットの前記制御指定情報を決定すること
により、低電力動作制御動作を行うプログラムの構成を最適化することを特徴とする請求項３または請求項４または請求項５または請求項６または請求項７または請求項８記載の低電力動作制御装置用のプログラム最適化装置。
【請求項１０】
条件フラグによる命令条件実行機能を備えるマイクロプロセッサに搭載されてマイクロプロセッサの低電力動作を制御する低電力動作制御装置であって、
マイクロプロセッサに入力される命令コードの特定ビットフィールドに命令実行制御機能のためのフラグを選択する命令実行制御機能情報を含む第１の命令セットと、前記特定ビットフィールドに低電力制御のための制御指定情報を含む１または２以上の第２の命令セットを備え、
通常動作時に第１の命令セットを実行し、低電力動作時に第２の命令セットを実行するように命令セットを切り替える動作モード切り替え回路と、
第１の命令セットモード時に前記命令実行制御機能情報に応じたフラグを読み込んで命令実行制御機能動作を識別するプレディケート判定回路と、
第２の命令セットモード時に前記制御指定情報を読み込んで低電力動作を行う制御回路の制御指定情報を抽出する制御指定情報抽出回路と、
前記制御指定情報を用いプログラムの特定箇所の処理量を測定するプログラム処理測定手段と、
前記処理量からプログラム毎の最適な消費電力を判定する処理量判定手段と、
前記最適な消費電力になるようにプログラム実行時の周波数や電源電圧を制御する周波数／電源制御手段と、
を有し、各命令に対応するプログラムにおける処理量を測定することにより、マイクロプロセッサの低電力動作を命令単位で制御することを特徴とする低電力動作制御装置。
【請求項１１】
条件フラグによる命令条件実行機能を備えるマイクロプロセッサに搭載されてマイクロプロセッサの低電力動作を制御する低電力動作制御装置であって、
マイクロプロセッサに入力される命令コードの特定ビットフィールドに命令実行制御機能のためのフラグを選択する命令実行制御機能情報を含む第１の命令セットと、前記特定ビットフィールドに低電力制御のための制御指定情報を含む１または２以上の第２の命令セットを備え、
通常動作時に第１の命令セットを実行し、低電力動作時に第２の命令セットを実行するように命令セットを切り替える動作モード切り替え回路と、
第１の命令セットモード時に前記命令実行制御機能情報に応じたフラグを読み込んで命令実行制御機能動作を識別するプレディケート判定回路と、
第２の命令セットモード時に前記制御指定情報を読み込んで低電力動作を行う制御回路の制御指定情報を抽出する制御指定情報抽出回路と、
前記制御指定情報を用いプログラムの特定箇所の処理量を測定するプログラム処理測定手段と、
前記処理量をマイクロプロセッサのプログラム中の変数の形で参照する処理量参照手段と、
を有し、プログラム動作における命令単位毎に得られるプログラム処理量をプログラム実行中に参照することを特徴とする低電力動作制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フラグによる命令実行制御機能（以下プレディケート機能と称す）を備えるマイクロプロセッサに対する低電力動作制御装置、およびプログラム最適化装置に関するものである。
【０００２】
【従来の技術】
マイクロプロセッサにおける低電力動作化を実現する方式の一つに命令判別方式がある（例えば、特許文献１参照）。
【０００３】
図１（ａ）は従来の命令判別による低電力動作制御装置の構成図であり、図１（ｂ）は従来の命令判別による低電力動作制御装置の動作フローである。
図１において、入力された命令をデコーダ（１０１）でデコードし、デコード結果より低電力制御回路（１０２）によって低電力制御内容を判定し、判定結果によって特定ブロックのクロック停止などの制御信号（１０３）により制御を実施する。
【０００４】
また、別の低電力動作を実現する方式の一つに、低電力命令セット判別方式がある（例えば、特許文献２参照）。
図２（ａ）は従来のマイクロプロセッサで用いられる命令セットの構成図，図２（ｂ）は従来の命令セット判別による低電力動作制御装置の構成図であり、図３は従来の命令セット判別による低電力動作制御装置の動作フローである。
【０００５】
図２，図３において、通常命令セットと切り替え可能な低電力命令セットにおいて、命令数を限定して命令コードフォーマットの空きを作り、その命令コードの空きに低電力制御内容を定義する形式とし、通常命令セットと低電力命令セットそれぞれの命令デコーダ（２０１）を備え、低電力命令セット使用時には低電力制御回路（２０２）にて低電力制御内容を判定し、判定結果によって特定ブロックのクロック停止などの制御信号（２０３）により制御を実施する。
【０００６】
【特許文献１】
特許番号  第２７７８５８３号  公報（第１−３頁、第１図）
【０００７】
【特許文献２】
特開２００１−１８４２０８号  公報（第２頁、第２図）
【０００８】
【発明が解決しようとする課題】
しかしながら上記方法のうち、図１（ｂ）に示すように命令判別方式では、命令をデコードして制御実施する原理上、命令デコードのパイプラインステージ、および時間的に先行しているパイプラインステージに対する制御を実施する事が困難、あるいは不可能である。
【０００９】
また、低電力命令セット判別方式では、低電力制御を実施するための情報を命令デコード以外から取得し、命令デコードのパイプラインステージ、および時間的に先行しているパイプラインステージに対する制御を実現する事ができるが、複数の命令デコーダ、および、使用する命令セットに応じた命令デコード結果の選択回路を備える必要があるため、回路規模増大による信号伝達経路（２０４）の増加により、消費電力の増加、デコード時間の増加が問題となる。
【００１０】
本発明は上記問題点を鑑みて、回路規模の増加やデコード時間の増加をすることなく、命令デコードのパイプラインステージ、および時間的に先行しているパイプラインステージに対する制御を行い、マイクロプロセッサの低電力動作を実現することを目的とする。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１記載の低電圧動作制御装置は、条件フラグによる命令条件実行機能を備えるマイクロプロセッサに搭載されてマイクロプロセッサの低電力動作を制御する低電力動作制御装置であって、マイクロプロセッサに入力される命令コードの特定ビットフィールドに命令実行制御機能のためのフラグを選択する命令実行制御機能情報を含む第１の命令セットと前記特定ビットフィールドに低電力制御のための制御指定情報を含む１または２以上の第２の命令セットを備え、通常動作時に第１の命令セットを実行し、低電力動作時に第２の命令セットを実行するように命令セットを切り替える動作モード切り替え回路と、第１の命令セットモード時に前記命令実行制御機能情報に応じたフラグを読み込んで命令実行制御機能動作を識別するプレディケート判定回路と、第２の命令セットモード時に前記制御指定情報を読み込んで低電力動作を行う制御回路の制御指定情報を抽出する制御指定情報抽出回路と、前記制御指定情報に応じた各制御回路の低電力動作を実施する制御動作実行手段とを有し、あらかじめ命令を実行するプログラム単位に命令実行制御機能情報と制御指定情報を備え、制御指定情報に応じて各制御回路の低電力動作を命令単位で行うことにより、前記マイクロプロセッサの低電力動作を命令単位で制御することを特徴とする。
【００１２】
請求項２記載の低電力動作制御装置は、条件フラグによる命令条件実行機能を備えるマイクロプロセッサに搭載されてマイクロプロセッサの低電力動作を制御する低電力動作制御装置であって、マイクロプロセッサに入力される命令コードの特定ビットフィールドに命令実行制御機能のためのフラグを選択する命令実行制御機能情報を含む第１の命令セットと前記特定ビットフィールドに低電力制御のための制御指定情報を含む１または２以上の第２の命令セットを備え、通常動作時に第１の命令セットを実行し、低電力動作時に第２の命令セットを実行するように命令セットを切り替える動作モード切り替え回路と、第１の命令セットモード時に前記命令実行制御機能情報に応じたフラグを読み込んで命令実行制御機能動作を識別するプレディケート判定回路と、第２の命令セットモード時に前記制御指定情報を読み込んで前記制御指定情報に応じてイベントを発生するイベント発生手段と、前記イベントを受けて前記イベントに応じた各制御回路の低電力動作を実施する制御動作実行手段とを有し、あらかじめ命令を実行するプログラム単位に命令実行制御機能情報と制御指定情報を備え、制御指定情報に応じて各制御回路の低電力動作を命令単位で行うことにより、前記マイクロプロセッサの低電力動作を命令単位で制御することを特徴とする。
【００１３】
請求項３記載の低電力動作制御装置は、請求項１または請求項２記載の低電力動作制御装置において、前記制御回路がプログラムの特定箇所における動作停止箇所を判定する動作停止判定手段であり、前記制御動作実行手段が動作停止判定手段の判定結果からマイクロプロセッサの任意の箇所を動作停止制御する動作停止制御手段であり、マイクロプロセッサの任意の箇所を動作停止制御にすることによりマイクロプロセッサの低電力動作を命令単位で制御することを特徴とする。
【００１４】
請求項４記載の低電力動作制御装置は、請求項１または請求項２記載の低電力動作制御装置において、前記制御回路がプログラムの特定箇所における電源電圧の制御実施を判定する電源電圧判定手段であり、前記制御動作実行手段が電源電圧判定手段の判定結果からマイクロプロセッサの電源電圧制御を行う電源電圧制御手段であり、マイクロプロセッサの電源電圧制御を行うことによりマイクロプロセッサの低電力動作を命令単位で制御することを特徴とする。
【００１５】
請求項５記載の低電力動作制御装置は、請求項１または請求項２記載の低電力動作制御装置において、前記制御回路がプログラムの特定箇所における基板電圧の制御実施を判定する基板電圧判定手段であり、前記制御動作実行手段が基板電圧判定手段の判定結果からマイクロプロセッサの基板電圧を制御する基板電圧制御手段であり、マイクロプロセッサの基板電圧を制御することによりマイクロプロセッサの低電力動作を命令単位で制御することを特徴とする。
【００１６】
請求項６記載の低電力動作制御装置は、請求項１または請求項２記載の低電力動作制御装置において、前記制御回路がプログラムの特定箇所におけるクロック周波数制御を判定するクロック周波数判定手段であり、前記制御動作実行手段がクロック周波数判定手段の判定結果からクロック周波数制御を実施するクロック周波数制御手段であり、マイクロプロセッサのクロック周波数を制御することによりマイクロプロセッサの低電力動作を命令単位で制御することを特徴とする。
【００１７】
請求項７記載の低電力動作制御装置は、請求項２記載の低電力動作制御装置において、前記イベント発生手段を備えるマイクロプロセッサとは異なるマイクロプロセッサである１または２以上の対象マイクロプロセッサあるいはデータ処理手段に、前記制御動作実行手段として前記対象マイクロプロセッサあるいはデータ処理手段の低電力動作を制御する動作制御手段を備え、前記イベント発生手段を備えるマイクロプロセッサにより、前記対象マイクロプロセッサあるいはデータ処理手段の低電力制御動作を制御することを特徴とする。
【００１８】
請求項８記載の低電力動作制御装置は、請求項２記載の低電力動作制御装置において、前記イベント発生手段を備えるマイクロプロセッサとは異なるマイクロプロセッサである１または２以上の対象マイクロプロセッサあるいはデータ処理手段に、前記制御動作実行手段として前記対象マイクロプロセッサあるいはデータ処理手段の電源供給を制御することにより低電力制御動作を制御する電源供給制御手段を備え、前記イベント発生手段を備えるマイクロプロセッサにより、前記対象マイクロプロセッサあるいはデータ処理手段の低電力制御動作を制御することを特徴とする。
【００１９】
請求項９記載の低電力動作制御装置用のプログラム最適化装置は、請求項３または請求項４または請求項５または請求項６または請求項７または請求項８記載の低電力動作制御装置に用いられ、前記命令コードを生成するマイクロプロセッサプログラム最適化装置であって、マイクロプロセッサの消費電力情報により前記動作停止制御または前記電源電圧制御または前記基板電圧制御または前記クロック周波数制御における消費電力を算出する消費電力算出手段と、前記消費電力を用いて各命令の動作制御回路候補における消費電力を算出する動作制御候補算出手段と、前記消費電力が最も小さくなるように各命令の動作制御回路を選択する切り替え判定手段を備え、前記第１の命令セットと前記第２の命令セットを切り替える命令セット切り替え命令を挿入し、前記第２の命令セットの前記制御指定情報を決定することにより、低電力動作制御動作を行うプログラムの構成を最適化することを特徴とする。
【００２０】
請求項１０記載の低電力動作制御装置は、条件フラグによる命令条件実行機能を備えるマイクロプロセッサに搭載されてマイクロプロセッサの低電力動作を制御する低電力動作制御装置であって、マイクロプロセッサに入力される命令コードの特定ビットフィールドに命令実行制御機能のためのフラグを選択する命令実行制御機能情報を含む第１の命令セットと前記特定ビットフィールドに低電力制御のための制御指定情報を含む１または２以上の第２の命令セットを備え、通常動作時に第１の命令セットを実行し、低電力動作時に第２の命令セットを実行するように命令セットを切り替える動作モード切り替え回路と、第１の命令セットモード時に前記命令実行制御機能情報に応じたフラグを読み込んで命令実行制御機能動作を識別するプレディケート判定回路と、第２の命令セットモード時に前記制御指定情報を読み込んで低電力動作を行う制御回路の制御指定情報を抽出する制御指定情報抽出回路と、前記制御指定情報を用いプログラムの特定箇所の処理量を測定するプログラム処理測定手段と、前記処理量からプログラム毎の最適な消費電力を判定する処理量判定手段と、前記最適な消費電力になるようにプログラム実行時の周波数や電源電圧を制御する周波数／電源制御手段と、前記制御指定情報を用い前記命令実行制御機能に応じた各制御回路の周波数／電源制御手段に応じた制御を実施する制御動作実行手段とを有し、各命令に対応するプログラムにおける処理量を測定することにより、マイクロプロセッサの低電力動作を命令単位で制御することを特徴とする。
【００２１】
請求項１１記載の低電力動作制御装置は、条件フラグによる命令条件実行機能を備えるマイクロプロセッサに搭載されてマイクロプロセッサの動作を制御する動作制御装置であって、マイクロプロセッサに入力される命令コードの特定ビットフィールドに命令実行制御機能のためのフラグを選択する命令実行制御機能情報を含む第１の命令セットと前記特定ビットフィールドに低電力制御のための制御指定情報を含む１または２以上の第２の命令セットを備え、通常動作時に第１の命令セットを実行し、低電力動作時に第２の命令セットを実行するように命令セットを切り替える動作モード切り替え回路と、第１の命令セットモード時に前記命令実行制御機能情報に応じたフラグを読み込んで命令実行制御機能動作を識別するプレディケート判定回路と、第２の命令セットモード時に前記制御指定情報を読み込んで低電力動作行う制御回路の制御指定情報を抽出する制御指定情報抽出回路と、前記制御指定情報を用いプログラムの特定箇所の処理量を測定するプログラム処理測定手段と、前記処理量をマイクロプロセッサのプログラム中の変数の形で参照する処理量参照手段と、を有し、プログラム動作における命令単位毎に得られるプログラム処理量をプログラム実行中に参照することを特徴とする。
【００２２】
以上により、回路規模の増加やデコード時間の増加をすることなく、命令デコードのパイプラインステージ、および時間的に先行しているパイプラインステージに対する制御を行い、マイクロプロセッサの低電力動作を実現することができる。
【００２３】
【発明の実施の形態】
本発明の概念を図４（ａ），図４（ｂ），図５を用いて説明する。
図４（ａ）は本発明の低電力動作制御装置におけるマイクロプロセッサで用いられる命令セットの構成図，図４（ｂ）は本発明の命令セット判別による低電力動作制御装置の構成図であり、図５は本発明の命令セット判別による低電力動作制御装置の動作フローである。
【００２４】
マイクロプロセッサの命令実行形式としてプレディケート動作と呼ばれるものがある。これは、過去に決定しているフラグ情報に依存して命令の実行／不実行を決定するというものである。一般にプレディケート動作を実装する場合は命令コードの構成中に、実行／不実行を依存させるフラグを設定するための識別情報（プレディケートビット）を格納するビットフィールドであるプレディケートフィールド（３０１）が存在する。本発明は図４に示すように、命令モードとして当該ビットフィールドにプレディケート指定情報を定義する命令セット１と、当該ビットフィールドにプレディケート以外の制御指定情報（３０２）を定義する２種類以上の命令セット２とを備え、マイクロプロセッサ動作中に前記命令セット１と命令セット２を切り替え命令によって切り替え、低電力制御回路（３０３）より出力する制御信号（３０４）を用いて、プログラム動作における命令単位毎に低電力制御を実施することを実現する。
【００２５】
図５では、制御信号（３０４）が［ｎ＋２］の時点の命令パイプラインにおける命令フェッチ、命令デコードステージのパイプラインレジスタ、論理回路の制御として使用されている概念を表している。制御信号（３０４）は命令デコーダではなく、低電力制御回路（３０３）で生成され、かつ、［ｎ＋２］の時点の命令パイプラインの命令デコードステージ、および時間的に先行しているパイプラインステージ（命令フェッチステージ）に対して余裕を持って制御が実現できることがわかる。
【００２６】
また、命令セット１と命令セット２との関係において、命令デコーダが参照するオペコード、オペランドは同一のため、命令デコーダを複数備える必要がない。
【００２７】
これにより、回路規模の増加、デコード時間の増加をすることなく、低電力制御を実施するための情報を命令デコード以外から取得し、命令デコードのパイプラインステージ、および時間的に先行しているパイプラインステージに対する制御を実現する事ができる。
【００２８】
以下、本発明の実施の形態について、図面を参照しながら説明する。
（実施の形態１）
まず、本発明の実施の形態１における低電力動作制御装置について、図６，図７，図８，図９，図１０，図１１を用いて説明する。
【００２９】
図６は本発明の低電力動作制御装置を搭載するマイクロプロセッサの構成図である。
図６において、本発明のマイクロプロセッサは、命令メモリ（４０１）、命令メモリ（４０１）から取得した命令コードを格納する命令レジスタ（４２０）、命令コードデコーダ（４０２）、演算器（４０３）、プレディケート動作に使用するフラグ生成用演算器（４０４）、フラグ生成用演算器（４０４）の演算結果を格納するフラグレジスタ（４０５）、演算結果を格納するレジスタファイル（４０６）、命令コード中のプレディケートフィールド内容とフラグ生成用演算器（４０４）の出力からプレディケート動作を判定するプレディケート判定回路（４０７）、命令コード中のプレディケートフィールド内容から制御指定情報を取り出す制御指定情報抽出回路（４０８）、プレディケートフィールド内容のうちプレディケート動作に割り当てる情報と制御指定情報に割り当てる情報の区分や動作モードからプレディケート判定回路（４０７）や制御指定情報抽出回路（４０８）の動作を指示するプレディケート制御回路（４０９）、制御指定情報によってクロックや論理マスクなどの動作停止制御を実施する動作停止制御回路（４１０）、クロック制御回路（４１１）、論理回路の入力を０または１に固定する論理マスク回路（４１２）、制御指定情報によって電源電圧制御を実施する電源電圧制御回路（４１３）、電源（４１４）、制御指定情報によって基板電圧制御を実施する基板電圧制御回路（４１５）、基板電圧（４１６）、制御指定情報によってクロック周波数制御を実施するクロック周波数制御回路（４１７）、クロック発生回路（４１８）、動作モードを定義する動作モード設定レジスタ（４１９）で構成されている。
【００３０】
フラグ生成用演算器（４０４）の結果を格納するフラグレジスタ（４０５）には、図７のフラグレジスタの構造図に示すように、８個のフラグ（Ｃ０〜Ｃ７）が定義されており、演算結果によって各フラグがセット、またはクリアされる。ただし、Ｃ７は常に１となるフラグとして定義されている。
【００３１】
ここで、フラグ生成用演算器（４０４）に入力される２つのデータをそれぞれＡ，Ｂとして、演算に対応するフラグの設定例を以下に示す。
Ｃｍｐ．ＥＱ  Ｃ０，Ａ，Ｂ
：  レジスタＡとレジスタＢの内容を比較し、一致していれば１、不一致であれば０がＣ０に格納される。
【００３２】
Ｃｍｐ．ＧＴ  Ｃ０，Ａ，Ｂ
：  レジスタＡとレジスタＢの内容を比較し、Ａ＞Ｂであれば１、Ａ≦Ｂであれば０がＣ０に格納される。
【００３３】
命令コードの構成は、図８の本発明の低電力動作制御装置の命令選択フロー説明図に示すように、プレディケートフィールドが３ビット存在して、Ｃ０〜Ｃ７の８通りのフラグの設定が可能となっている。命令毎にプレディケート番号を指定することでフラグを選択し、選択したフラグの内容が０であるか１であるかによって対応する命令を実行するか否かを設定する。Ｃ７は前述したように常に１となるフラグとして定義されているため、プレディケート番号としてＣ７を指定すると、「常に実行する」という意味になる。
【００３４】
動作モード設定レジスタ（４１９）には、通常動作、および、２つ以上の低電力モードのいずれかを指定するためのビットが設けられている。プレディケートフィールド３ビット分の組合せと動作モード設定レジスタの内容組合せを合わせることによって、低電力モードで制御できる種類を多様化できる。低電力モードの例としては以下のものがある。
【００３５】
低電力モード１
：プレディケートフィールドの制御情報を用いて、命令種別毎に関連する機能ブロックのクロック、電源供給を停止、論理マスクを実施する。
【００３６】
低電力モード２
：プレディケートフィールドの制御情報を用いて、クロック周波数、電源電圧を制御する。
【００３７】
また、動作モード設定レジスタ（４１９）の情報はプレディケート制御回路（４０９）に供給され、プレディケート判定、および、制御指定情報の制御に使用される。
【００３８】
図９の本発明の低電力モード説明図に示すように、低電力モードでは、８種類のプレディケート番号の使用が制限され、ここでは、Ｃ０、Ｃ４、Ｃ６、Ｃ７のみが使用できるように構成されている。代わりに、電力制御情報として、Ｐ１、Ｐ２、Ｐ３、Ｐ５が指定できる。プレディケートフィールドに格納される情報としては見かけ上変わらないが、低電力モード中は、プレディケート判定回路（４０７）に入力されるプレディケート番号がＣ１、Ｃ２、Ｃ３、Ｃ５の時に、強制的にＣ７の値に変更される。プレディケートフィールドは制御指定情報抽出回路（４０８）にも参照されており、Ｃ１、Ｃ２、Ｃ３、Ｃ５の時に、制御情報として使用される。これらの一連の動作によって、プレディケートフィールドにプレディケート番号、電力制御情報を混在して指定することができる。なお、プレディケートフィールドの指定方法としては前述以外の組み合わせも存在する。
【００３９】
低電力モード１の例として、動作停止制御回路（４１０）、クロック制御回路（４１１）、論理マスク回路（４１２）、基板電圧制御回路（４１５）、基板電源（４１６）による制御動作は図１０の本発明の実施の形態１における制御動作を説明する図に示すように実現する。動作モードとしてＰ１、Ｐ２、Ｐ３、Ｐ５を用いた制御動作を実施する低電力モードが設定されているとする。本動作モードでの電力制御情報（Ｐ１、Ｐ２、Ｐ３、Ｐ５）の意味を以下のように定義する。
【００４０】
Ｐ１：  ３命令後にロード・ストア命令が存在。
Ｐ２：  ３命令後に転送命令が存在。
Ｐ３：  ３命令後に演算命令が存在。
【００４１】
Ｐ５：  ３命令後に分岐命令が存在。
これらの電力制御情報に基づき、機能ブロックのクロック固定や論理マスクを実施し、機能ブロックの動作を停止させる。また機能ブロックの動作を停止させている間、トランジスタのリーク電流を低減するために基板電圧を制御し、閾値電圧（Ｖｔ）を上昇させる。
【００４２】
このマイクロプロセッサのパイプライン構成は、命令フェッチ（ＩＦ）、デコード（ＤＣ）、演算（ＥＭ）、ライトバック（ＷＢ）となっており、各命令の実行パイプラインステージが以下のようになっているとする。
ロード・ストア命令（８０４）：  ＥＭ、ＷＢの２ステージ
転送命令（８０３）：  ＥＭステージ
演算命令（８０２）：  ＥＭステージ
分岐命令（８０５）：  ＩＦステージ
それぞれのステージにおける制御は図５と同様の概念で実施する。
【００４３】
図１０の構成においてクロック制御、論理マスク、基板電圧制御を実施する場合、遅延時間を考慮して、数サイクル前に制御信号が確定している必要がある。本実施の形態では１サイクル前に制御信号が確定している必要があるとする。そのためには、パイプラインステージを考慮すると３命令前より制御信号の状態を指定する必要があるが、前述の通り、電力制御情報が３命令後の制御内容を指示しているため、制御信号が確定し、クロック制御、論理マスク、および基板電圧制御の実施動作（８０６）が実施できる。
【００４４】
低電力モード２の例として、電源電圧制御回路（４１３）、電源（４１４）、クロック周波数制御回路（４１７）、クロック発生回路（４１８）による電源電圧／クロック周波数制御は図１１の本発明の実施の形態１における電源電圧／クロック周波数制御動作を説明する図に示すように実現する。動作モードとしてＰ１、Ｐ２、Ｐ３、Ｐ５を用いた電源電圧／クロック周波数制御を実施する低電力モードが設定されているとする。本動作モードでの電力制御情報（Ｐ１、Ｐ２、Ｐ３、Ｐ５）の意味を以下のように定義する。
【００４５】
Ｐ１：  ５命令後に電源電圧、クロック周波数を基本電圧の１００％にする。
Ｐ２：  ５命令後に電源電圧、クロック周波数を基本電圧の５０％にする。
【００４６】
Ｐ３：  ５命令後に電源電圧、クロック周波数を５％下げる。
Ｐ４：  ５命令後に電源電圧、クロック周波数を５％上げる。
これらの電力制御情報に基づき、電源電圧、クロック周波数を制御する。
このマイクロプロセッサのパイプライン構成は、図８と同一とする。
それぞれのステージにおける制御は図５と同様の概念で実施する。
【００４７】
図１１の構成においてクロック周波数を制御する場合、一般に周波数安定化のための時間を確保する必要がある。
周波数切り替え時に安定化時間を確保する手段として、クロック発生回路（４１８）を２つ備え、周波数安定化後にクロック発生回路を切り替える場合、数サイクル前に制御信号が確定している必要がある。本実施の形態では４サイクル前に制御信号が確定している必要があるとする。そのためにはパイプラインステージを考慮すると５命令前より制御信号の状態を指定する必要があるが、前述の通り、電力制御情報（９０２）が５命令後の制御内容を指示しているため、制御信号が確定し、電源電圧制御、クロック周波数制御が実施できる。
【００４８】
以上により、回路規模の増加やデコード時間の増加をすることなく、命令デコードのパイプラインステージ、および時間的に先行しているパイプラインステージに対する制御を行い、マイクロプロセッサの低電力動作を実現することができる。
（実施の形態２）
次に、本発明の実施の形態２における低電力動作制御装置によるプレディケート情報を有する最適化後プログラムの生成方法について、図１２，図１３，図１４，図１５，図１６を用いて説明する。
【００４９】
図１２は本発明の実施の形態２におけるプログラム最適化装置を説明する図である。
図１２において、マイクロプロセッサのプログラム最適化装置は、停止対象候補算出手段（１００１）、切り替え判定手段（１００２）、命令セット切り替え命令挿入手段（１００３）、制御指定情報付加手段（１００４）で構成されている。停止対象候補算出手段（１００１）には最適化対象のプログラム（１００５）と、マイクロプロセッサあるいはマルチプロセッサシステム構成回路の消費電力一覧（１００６）と、マイクロプロセッサあるいはマルチプロセッサシステム構成回路の命令別動作一覧（１０１１）が入力され、停止対象候補一覧（１００７）が出力される。切り替え判定手段（１００２）には停止対象候補一覧（１００７）が入力され、切り替え判定結果（１００８）が出力される。命令セット切り替え命令挿入手段（１００３）には切り替え判定結果（１００８）と、動作モード一覧（１０１２）が入力され、命令セット切り替え命令挿入結果（１００９）が出力される。制御指定情報付加手段（１００４）には、命令セット切り替え命令挿入結果（１００９）と、制御指定情報一覧（１０１３）が入力され、最適化後プログラム（１０１０）が出力される。
【００５０】
図１３は停止対象候補算出手段の動作フローチャートであり、３つのステップで構成される。
図１３において、最適化対象のプログラム（１００５）は、マイクロプロセッサの命令列（１１０１）で構成されている。マイクロプロセッサあるいはマルチプロセッサシステム構成回路の消費電力一覧（１００６）は、マイクロプロセッサの命令毎にマイクロプロセッサあるいはマルチプロセッサシステム構成回路別の消費電力が網羅され、例えば、図１３に示される構成回路別の消費電力の一例（１１０２）に示されるように構成されている。
【００５１】
まず、動作第１ステップ（１１０３）は、消費電力一覧（１００６）を用いて最適化対象のプログラム（１００５）の命令毎におけるマイクロプロセッサあるいはマルチプロセッサシステム構成回路別の消費電力を検索し、プログラム消費電力情報（１１０４）を算出する。
【００５２】
このプログラム消費電力情報（１１０４）は、プログラムの各行についてマイクロプロセッサあるいはマルチプロセッサシステム構成回路の各々が動作した場合の消費電力を表すことになる。例として図１３のプログラム消費電力情報１１０４における  Ｌｉｎｅ  ０１０１  では、
回路Ａ：  ０．００５ｍＷ
回路Ｂ：  ０．００３ｍＷ
回路Ｃ：  ０．００１ｍＷ
・・・
となる。
【００５３】
マイクロプロセッサあるいはマルチプロセッサ構成回路の命令別動作一覧（１０１１）はマイクロプロセッサの命令毎におけるマイクロプロセッサあるいはマルチプロセッサシステム構成回路別の動作必要箇所（１１０５）が網羅されている。ここで動作必要箇所（１１０５）とは命令機能を実現するために最低限動作が必要な回路部分を意味する。
【００５４】
次に、動作第２ステップ（１１０６）は、命令別動作一覧（１０１１）を用いて最適化対象のプログラム（１００５）の命令毎にマイクロプロセッサあるいはマルチプロセッサシステム構成回路別の動作要否を検索し、停止対象候補回路情報（１１０７）を算出する。
【００５５】
この停止対象候補回路情報（１１０７）は、プログラムの各行についてマイクロプロセッサあるいはマルチプロセッサシステム構成回路の各々が停止可能かどうかを表すことになる。例として図１３の停止対象候補回路情報１１０７における  Ｌｉｎｅ  ０１０１  では、
回路Ａ：  動作が必要（停止不可能）
回路Ｂ：  停止可能
回路Ｃ：  停止可能
・・・
を意味する。
【００５６】
ここで停止対象候補回路情報（１１０７）における停止可能な構成回路について、消費電力情報（１１０４）から得られる消費電力と組み合わせることで、「停止可能な構成回路が停止したと仮定した場合」のプログラムの各行についての消費電力が見積もれることがわかる。
【００５７】
つまり、図１３の１１０４、１１０７における  Ｌｉｎｅ  ０１０１  では、回路Ｂ、回路Ｃが停止可能
回路Ｂの消費電力は０．００３ｍＷであるが、「回路Ｂが停止したと仮定した場合」の  Ｌｉｎｅ  ０１０１  の消費電力は、回路Ｂの消費電力を０ｍＷと仮定して、回路Ａ，回路Ｃ，．．．の各回路の消費電力の総和と見積もることができる。
回路Ｃの消費電力は０．００１ｍＷであるが、「回路Ｃが停止したと仮定した場合」の  Ｌｉｎｅ  ０１０１  の消費電力は、回路Ｃの消費電力を０ｍＷと仮定して、回路Ａ，回路Ｃ，．．．の各回路の消費電力の総和と見積もることができる。
ということが判断できる。
【００５８】
このことを利用して、動作第３ステップ（１１０８）は、停止対象候補回路情報（１１０７）とプログラム消費電力情報（１１０４）を用いて停止対象候補回路の消費電力がそれぞれ０になったと仮定した場合の最適化対象のプログラム（１００５）の命令毎におけるマイクロプロセッサあるいはマルチプロセッサシステム構成回路別の消費電力を検索し、停止対象候補一覧（１００７）を算出する。
【００５９】
この停止対象候補一覧（１００７）は、プログラムの各行についてマイクロプロセッサあるいはマルチプロセッサシステム構成回路のうち停止可能な回路をそれぞれ停止したと仮定した場合の消費電力の総和を表すことになる。例として図１３の１００７における  Ｌｉｎｅ  ０１０１  では、
回路Ｂは停止可能な候補１：
回路Ｂが停止した場合は  Ｌｉｎｅ  ０１０１  の消費電力の総和は０．４０ｍＷ
回路Ｃは停止可能な候補２：
回路Ｃが停止した場合は  Ｌｉｎｅ  ０１０１  の消費電力の総和は０．７７ｍＷ
を意味する。
【００６０】
図１４は切り替え判定手段の動作フローチャートであり、１つのステップで構成される。
動作ステップ（１２０１）は、停止対象候補一覧（１００７）を用いて、消費電力が最も少ない停止対象候補回路（１２０２、１２０３、１２０４）を検索し、最適化対象のプログラム（１００５）の命令毎に停止対象となる回路とその消費電力（１２０５）を選択し、切り替え判定結果（１００８）を算出する。
【００６１】
図１５は命令セット切り替え命令挿入手段の動作フローチャートであり、２つのステップで構成される。
動作第１ステップ（１３０１）は、切り替え判定結果（１００８）と、動作モード一覧（１０１２）を用いて、最適化対象のプログラム（１００５）の動作モードに対応する対象回路の関係（１３０４）と命令と対象回路の関係（１３０５）より、命令毎の停止対象を指定することができる動作モード、および同一動作モードを適用できる命令列範囲を算出し、動作モード判定結果（１３０２）を出力する。
【００６２】
動作第２ステップ（１３０３）は、動作モード判定結果（１３０２）における動作モードが切り替わる動作モード変化点（１３０６）を検索し、最適化対象のプログラム（１００５）の命令列毎に動作モードを指定する命令セット切り替え命令（１３０７）を挿入し、命令セット切り替え命令挿入結果（１００９）を算出する。
【００６３】
図１６は制御指定情報付加手段の動作フローチャートであり、３つのステップで構成される。
動作第１ステップ（１４０１）は、命令セット切り替え命令挿入結果（１００９）と、制御指定情報一覧（１０１３）を用いて、命令セット切り替え命令挿入結果（１００９）の命令毎に停止対象回路と動作モードに対応する制御指定情報（１４０６）を検索し、制御指定情報判定結果（１４０２）を出力する。
【００６４】
動作第２ステップ（１４０３）は、制御指定情報判定結果（１４０２）を用いて、一定サイクル前に制御情報が確定できる命令列（１４０７）を検索し、制御指定情報位置（１４０４）を算出する。なお、このステップの検索ルールは図１０、図１１で説明した制御情報のサイクル関係に従う。
【００６５】
動作第３ステップ（１４０５）は、制御指定情報判定結果（１４０２）、および制御指定情報位置（１４０４）を用いて、命令セット切り替え命令挿入結果の命令毎に制御指定情報を挿入し、最適化後プログラム（１０１０）を算出する。
【００６６】
以上により、プレディケート情報を有する最適化後プログラムを生成することにより命令単位毎に低電力制御を行い、回路規模の増加やデコード時間の増加をすることなく、命令デコードのパイプラインステージ、および時間的に先行しているパイプラインステージに対する制御を行うことができ、マイクロプロセッサの低電力動作を実現することができる。
（実施の形態３）
次に、本発明の実施の形態３における低電力動作制御装置について、図１７，図１８を用いて説明する。
【００６７】
図１７は本発明の実施の形態３における低電力動作制御装置を有するマイクロプロセッサおよびデータ処理手段の構成図であり、ここでは、データ処理手段もマイクロプロセッサにより構成される例を示している。
【００６８】
図１７において、本発明のマルチプロセッサシステムは、命令メモリ（１５０１）、命令メモリから取得した命令コードを格納する命令レジスタ（１５１６）、命令コードデコーダ（１５０２）、演算器（１５０３）、プレディケート動作に使用するフラグ生成用演算器（１５０４）、フラグ生成用演算器の結果を格納するレジスタ（１５０５）、演算結果を格納するレジスタファイル（１５０６）、命令コード中のプレディケートフィールド内容とフラグ生成用演算器（１５０４）の出力からプレディケート動作を判定するプレディケート判定回路（１５０７）、命令コード中のプレディケートフィールド内容から制御指定情報を取り出す制御指定情報抽出回路（１５０８）、プレディケートフィールド内容のうちプレディケート動作に割り当てる情報と制御指定情報に割り当てる情報の区分や動作モードからプレディケート判定回路（１５０７）、制御指定情報抽出回路（１５０８）の動作を指示するプレディケート制御回路（１５０９）、制御指定情報によってイベント発生要否を判定して、イベントを発生するイベント発生回路（１５１０）、動作モードを定義する動作モード設定レジスタ（１５１１）で構成されるマイクロプロセッサＡ（１５１２）と、イベント発生回路（１５１０）のイベントによって制御される動作制御回路（１５１３）、電源供給制御回路（１５１４）、および動作制御回路（１５１３）、電源供給制御回路（１５１４）で制御されるマイクロプロセッサＢ（１５１５）で構成されている。
【００６９】
マイクロプロセッサＡ（１５１２）におけるレジスタ、プレディケート動作、動作モード、およびパイプライン構成は図６、図７、図８、図９、図１０と同様であるが、低電力モード中に制御指定情報に基づいてイベント回路からイベントを発生し、マイクロプロセッサＢ（１５１５）の制御を実施する点が異なる。つまり、マイクロプロセッサＢの低電力動作制御をマイクロプロセッサＡによっておこなう。ここでは、マイクロプロセッサＢの低電力動作制御をマイクロプロセッサＡによって行う場合について説明するが、マイクロプロセッサ以外のデータ処理手段にて行う事も可能である。
【００７０】
また、ここでは、異なるマイクロプロセッサの低電力動作を制御する場合について説明しているが、イベントを発生するマイクロプロセッサ自身の制御を行う事も可能である。
【００７１】
イベント発生回路によるマイクロプロセッサＢ（１５１５）の制御は図１８の本発明の実施の形態３におけるイベント発生回路による低電圧動作制御を説明する図に示すように実現する。マイクロプロセッサＡの動作モードとしてＰ１、Ｐ２、Ｐ３、Ｐ５を用いた制御を実施する低電力モードが設定されているとする。本動作モードでの電力制御情報（Ｐ１、Ｐ２、Ｐ３、Ｐ５）の意味を以下のように定義する。
【００７２】
Ｐ１：  ５命令後にマイクロプロセッサＢを起動。
Ｐ２：  ５命令後にマイクロプロセッサＢを停止。
Ｐ３：  ５命令後にマイクロプロセッサＢの電源を供給。
【００７３】
Ｐ５：  ５命令後にマイクロプロセッサＢの電源を停止。
これらの電力制御情報に基づき、マイクロプロセッサＢの動作や電源の供給を制御する。マイクロプロセッサＢの動作や電源の供給を制御する場合、一般に起動動作や電源の供給安定化のための時間が必要であり、数サイクル前にイベントを発生している必要がある。本実施の形態では、制御信号タイミング（１６０１）に示すようにイベントを発生してマイクロプロセッサＢ（１５１５）が起動開始してから起動完了するまでに４サイクル必要であるとする。そのためにはパイプラインステージを考慮すると５命令前よりイベントの状態を指定する必要があるが、前述の通り、電力制御情報が５命令後のイベント内容を指示しているため、イベントが発生し、マイクロプロセッサＢの動作および電源の供給制御動作（１６０２）が実施できる。
【００７４】
以上により、回路規模の増加やデコード時間の増加をすることなく、命令デコードのパイプラインステージ、および時間的に先行しているパイプラインステージに対する制御を行うことができ、マイクロプロセッサの低電力動作を実現することができる。
（実施の形態４）
次に、本発明の実施の形態４における低電力動作制御装置について、図１９，図２０，図２１，図２２を用いて説明する。
【００７５】
図１９は本発明の実施の形態４における低電力動作制御装置を有するマイクロプロセッサの構成図である。
本発明におけるマイクロプロセッサは、命令メモリ（１７０１）、命令メモリ（１７０１）から取得した命令コードを格納する命令レジスタ（１７１７）、命令コードデコーダ（１７０２）、演算器（１７０３）、プレディケート動作に使用するフラグ生成用演算器（１７０４）、フラグ生成用演算器（１７０４）の結果を格納するレジスタ（１７０５）、演算結果を格納するレジスタファイル（１７０６）、命令コード中のプレディケートフィールド内容とフラグ生成用演算器（１７０４）の出力からプレディケート動作を判定するプレディケート判定回路（１７０７）、命令コード中のプレディケートフィールド内容から制御指定情報を取り出す制御指定情報抽出回路（１７０８）、プレディケートフィールド内容のうちプレディケート動作に割り当てる情報と制御指定情報に割り当てる情報の区分や動作モードからプレディケート判定回路（１７０７）、制御指定情報抽出回路（１７０８）の動作を指示するプレディケート制御回路（１７０９）、制御指定情報によってプログラム処理量を測定するプログラム処理測定回路（１７１０）、測定結果を参照できるプログラム処理測定結果参照レジスタ（１７１１）、測定結果を用いてプログラム必要処理量を判定して結果を出力するプログラム処理判定回路（１７１２）、動作モードを定義する動作モード設定レジスタ（１７１３）、プログラム必要処理量判定結果によって制御されるクロック周波数／電源電圧制御回路（１７１４）、クロック発生回路（１７１５）、および電源（１７１６）で構成されている。
【００７６】
本マイクロプロセッサにおけるレジスタ、プレディケート動作、動作モード、およびパイプライン構成は図６、図７、図８、図９、図１０と同様であるが、低電力モード中に制御指定情報に基づいてプログラム処理量判定回路から必要プログラム処理量を算出し、クロック周波数／電源電圧制御を実施する点が異なる。
【００７７】
プログラム必要処理量判定回路（１７１２）によるクロック周波数／電源電圧制御は図２０の本発明の実施の形態４におけるプログラム処理量を測定することによる低電圧動作制御を説明する図，図２１（ａ）の本発明の実施の形態４におけるプログラム処理量測定結果を示す図，図２１（ｂ）の本発明の実施の形態４における処理量制御を示す図に示すように実現する。ここでは、動作モードとしてＰ１、Ｐ２、Ｐ３、Ｐ５を用いた処理量測定を実施する低電力モードが設定されているとする。本動作モードでの電力制御情報（Ｐ１、Ｐ２、Ｐ３、Ｐ５）の意味を以下のように定義する。
【００７８】
Ｐ１：  処理量カウンタをリセット。
Ｐ２：  処理量カウンタのインクリメント開始。
Ｐ３：  処理量カウンタのインクリメント停止。
【００７９】
Ｐ５：  ５命令後に処理量カウンタの値によるクロック周波数／電源電圧制御更新。
まず、プログラム処理量測定回路（１７１０）には処理量カウンタ（１８０１）を設けており、電力制御情報によって処理量カウンタを制御し、プログラム処理量をプログラム処理量測定結果（１８０２）のように測定する。
【００８０】
次に、プログラム処理量判定回路（１７１２）にはプログラムがいつの時点までに実行を終了している必要があるかの情報、すなわち完了期限情報（１８０３）を設定しておく。この完了期限情報（１８０３）と処理量測定結果を用いてプログラム動作の必要最低限処理量（１８０４）を算出することで、クロック周波数／電源電圧制御回路（１７１４）から出力する制御信号タイミング（１８０５）による延長処理（１８０７）等の制御が実施できる。また、クロック周波数／電源電圧制御には一般に起動や電源安定化のための時間が必要であり、数サイクル前にイベントを発生している必要がある。本実施の形態では、クロック周波数／電源電圧制御タイミング（１８０６）のように４サイクル前よりイベントを発生している必要があるとする。そのためにはパイプラインステージを考慮すると５命令前よりクロック周波数／電源電圧の制御更新を指定する必要があるが、前述の通り、電力制御情報（Ｐ５）が５命令後の制御更新を指示しているため制御が可能となる。
【００８１】
またプログラム処理量測定結果はプログラム処理量測定結果参照レジスタ（１７１１）によってプログラム動作中に参照することができ、図２２（ａ）の本発明の実施の形態４におけるプログラム処理量測定結果により動作を制御することを説明する図，図２２（ｂ）の本発明の実施の形態４におけるプレディケート動作の実行有無も考慮した処理量判定を示す図に示すように、処理量によってプログラム動作を決定することも実現できる。図２２（ａ）では、モジュールＡ、Ｂ、Ｃで構成されるプログラムにおいて、モジュールＡの処理量に基づいてモジュールＢ、Ｃのどちらを起動するかの判定に参照レジスタのオペランドＲＥＦ（１９０１）を使用している例を表している。
【００８２】
なお、図２２（ｂ）では動作モードとして、Ｐ０、Ｐ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、Ｐ６、Ｐ７を用いて以下のように定義することでプレディケート動作の実行有無も考慮した処理量判定も実現できる例を表している。
【００８３】
Ｐ０：  Ｃ０プレディケート動作、および実行時に処理量カウンタをインクリメント。
Ｐ１：  Ｃ１プレディケート動作、および実行時に処理量カウンタをインクリメント。
【００８４】
Ｐ２：  Ｃ２プレディケート動作、および実行時に処理量カウンタをインクリメント。
Ｐ３：  Ｃ３プレディケート動作、および実行時に処理量カウンタをインクリメント。
【００８５】
Ｐ４：  Ｃ４プレディケート動作、および実行時に処理量カウンタをインクリメント。
Ｐ５：  Ｃ５プレディケート動作、および実行時に処理量カウンタをインクリメント。
【００８６】
Ｐ６：  Ｃ６プレディケート動作、および実行時に処理量カウンタをインクリメント。
Ｐ７：  Ｃ７プレディケート動作、および実行時に処理量カウンタをインクリメント。
【００８７】
【発明の効果】
本発明によれば、命令を実行するプログラム毎の命令コードが命令実行制御機能を指定するフラグ含む第１の命令セットと制御指定情報を含む１または２以上の第２の命令セットを備え、命令実行制御機能に応じて各制御回路の低電力動作を命令単位で行うことにより、回路規模の増加やデコード時間の増加をすることなく、命令デコードのパイプラインステージ、および時間的に先行しているパイプラインステージに対する制御を行い、マイクロプロセッサの低電力動作を実現することができる。
【図面の簡単な説明】
【図１】（ａ）従来の命令判別による低電力動作制御装置の構成図
（ｂ）従来の命令判別による低電力動作制御装置の動作フロー
【図２】（ａ）従来の命令セットの構成図
（ｂ）従来の命令セット判別による低電力動作制御装置の構成図
【図３】従来の命令セット判別による低電力動作制御装置の動作フロー
【図４】（ａ）本発明の低電力動作制御装置におけるマイクロプロセッサで用いられる命令セットの構成図
（ｂ）本発明の命令セット判別による低電力動作制御装置の構成図
【図５】本発明の命令セット判別による低電力動作制御装置の動作フロー
【図６】本発明の低電力動作制御装置を搭載するマイクロプロセッサの構成図
【図７】フラグレジスタの構造図
【図８】本発明の低電力動作制御装置の命令選択フロー説明図
【図９】本発明の低電力モード説明図
【図１０】本発明の実施の形態１における制御動作を説明する図
【図１１】本発明の実施の形態１における電源電圧／クロック周波数制御動作を説明する図
【図１２】本発明の実施の形態２における低電力動作制御装置が備えるプログラム最適化装置を説明する図
【図１３】停止対象候補算出手段の動作フローチャート
【図１４】切り替え判定手段の動作フローチャート
【図１５】命令セット切り替え命令挿入手段の動作フローチャート
【図１６】制御指定情報付加手段の動作フローチャート
【図１７】本発明の実施の形態３における低電力動作制御装置を有するマイクロプロセッサおよび周辺回路の構成図
【図１８】本発明の実施の形態３におけるイベント発生回路による低電圧動作制御を説明する図
【図１９】本発明の実施の形態４における低電力動作制御装置を有するマイクロプロセッサの構成図
【図２０】本発明の実施の形態４におけるプログラム処理量を測定することによる低電圧動作制御を説明する図
【図２１】（ａ）本発明の実施の形態４におけるプログラム処理量測定結果を示す図
（ｂ）本発明の実施の形態４における処理量制御を示す図
【図２２】（ａ）本発明の実施の形態４におけるプログラム処理量測定結果により動作を制御することを説明する図
（ｂ）本発明の実施の形態４におけるプレディケート動作の実行有無も考慮した処理量判定を示す図
【符号の説明】
１０１    デコーダ
１０２    低電力制御回路
１０３    制御信号
２０１    命令デコーダ
２０２    低電力制御回路
２０３    制御信号
２０４  信号伝達経路
３０１    プレディケートフィールド
３０２    制御指定情報
３０３    低電力制御判定
３０４    制御信号
４０１    命令メモリ
４０２    命令コードデコーダ
４０３    演算器
４０４    フラグ生成用演算器
４０５    フラグレジスタ
４０６    レジスタファイル
４０７    プレディケート判定回路
４０８    制御指定情報抽出回路
４０９    プレディケート制御回路
４１０    動作停止制御回路
４１１    クロック制御回路
４１２    論理マスク回路
４１３    電源電圧制御回路
４１４    電源
４１５    基板電圧制御回路
４１６    基板電圧
４１７    クロック周波数制御回路
４１８    クロック発生回路
４１９    動作モード設定レジスタ
４２０    命令レジスタ
８０２    演算命令
８０３    転送命令
８０４    ロード・ストア命令
８０５    分岐命令
８０６    クロック制御、論理マスク、および基板電圧制御の実施動作
９０２    電力制御情報
１００１    停止対象候補算出手段
１００２    切り替え判定手段
１００３    命令セット切り替え命令挿入手段
１００４    制御指定情報付加手段
１００５    最適化対象のプログラム
１００６    消費電力一覧
１００７    停止対象候補一覧
１００８    切り替え判定結果
１００９    命令セット切り替え命令挿入結果
１０１０    最適化後プログラム
１０１１    命令別動作一覧
１０１２    動作モード一覧
１０１３    制御指定情報一覧
１１０１    マイクロプロセッサ命令列
１１０２    構成回路別の消費電力の一例
１１０３    動作第１ステップ
１１０４    プログラム消費電力情報
１１０５    動作必要箇所
１１０６    動作第２ステップ
１１０７    停止対象候補回路情報
１１０８    動作第３ステップ
１２０１    動作ステップ
１２０２    停止対象候補回路
１２０３    停止対象候補回路
１２０４    停止対象候補回路
１２０５    停止対象となる回路とその消費電力
１３０１    動作第１ステップ
１３０２    動作モード判定結果
１３０３    動作第２ステップ
１３０４    動作モードに対応する対象回路の関係
１３０５    命令と対象回路の関係
１３０６    動作モード変化点
１３０７    命令列毎に動作モードを指定する命令セット切り替え命令
１４０１    動作第１ステップ
１４０２    制御指定情報判定結果
１４０３    動作第２ステップ
１４０４    制御指定情報位置
１４０５    動作第３ステップ
１４０６    制御指定情報
１４０７    命令列
１５０１    命令メモリ
１５０２    命令コードデコーダ
１５０３    演算器
１５０４    フラグ生成用演算器
１５０５    フラグレジスタ
１５０６    レジスタファイル
１５０７    プレディケート判定回路
１５０８    制御指定情報抽出回路
１５０９    プレディケート制御回路
１５１０    イベント発生回路
１５１１    動作モード設定レジスタ
１５１２    マイクロプロセッサＡ
１５１３    動作制御回路
１５１４    電源供給制御回路
１５１５    マイクロプロセッサＢ
１５１６    命令レジスタ
１６０１    制御信号タイミング
１６０２    動作および電源供給制御動作
１７０１    命令メモリ
１７０２    命令コードデコーダ
１７０３    演算器
１７０４    フラグ生成用演算器
１７０５    フラグレジスタ
１７０６    レジスタファイル
１７０７    プレディケート判定回路
１７０８    制御指定情報抽出回路
１７０９    プレディケート制御回路
１７１０    プログラム処理量測定回路
１７１１    プログラム処理量測定結果参照レジスタ
１７１２    プログラム処理量判定回路
１７１３    動作モード設定レジスタ
１７１４    クロック周波数／電源電圧制御回路
１７１５    クロック発生回路
１７１６    電源
１７１７    命令レジスタ
１８０１    処理量カウンタ
１８０２    プログラム処理測定結果
１８０３    完了期限情報
１８０４    必要最低限処理量
１８０５    制御信号タイミング
１８０６    クロック周波数／電源電圧制御タイミング
１８０７    延長処理
１９０１    オペランドＲＥＦ
【図１】
2004234038.tif 000003
【図２】
2004234038.tif 000004
【図３】
2004234038.tif 000005
【図４】
2004234038.tif 000006
【図５】
2004234038.tif 000007
【図６】
2004234038.tif 000008
【図７】
2004234038.tif 000009
【図８】
2004234038.tif 000010
【図９】
2004234038.tif 000011
【図１０】
2004234038.tif 000012
【図１１】
2004234038.tif 000013
【図１２】
2004234038.tif 000014
【図１３】
2004234038.tif 000015
【図１４】
2004234038.tif 000016
【図１５】
2004234038.tif 000017
【図１６】
2004234038.tif 000018
【図１７】
2004234038.tif 000019
【図１８】
2004234038.tif 000020
【図１９】
2004234038.tif 000021
【図２０】
2004234038.tif 000022
【図２１】
2004234038.tif 000023
【図２２】
2004234038.tif 000024