(57)【特許請求の範囲】
【請求項１】
プロセッサの内部で消費される電力を制御するための電力制御装置であって、
各々が電力制御情報を記憶する複数の電力制御レジスタを備えたパワーテーブルと、
プロセッサの所定の内部状況を示す動作条件とインデックス番号とが一対となった情報を複数記憶するための第１のテーブルを有し、プロセッサの内部状況が供給される条件判定器と、
前記プロセッサの消費電力を制御するためのコントローラとを備え、
前記条件判定器は、前記第１のテーブルを参照することにより、前記プロセッサの内部状況に応じたインデックス番号を出力し、
前記パワーテーブルは前記インデックス番号に応じた電力制御レジスタを選択し、
前記コントローラは前記選択された電力制御レジスタに格納された電力制御情報に従って、前記プロセッサの消費電力を制御することを特徴とする電力制御装置。
【請求項２】
プロセッサの内部で消費される電力を制御するための電力制御方法であって、
前記プロセッサは、各々が電力制御情報を記憶する複数の電力制御レジスタを備えたパワーテーブルを有しており、
プロセッサの所定の内部状況を示す動作条件とインデックス番号とが一対となった情報を複数記憶する第１のテーブルを参照することにより、前記プロセッサの内部状況に応じたインデックス番号を出力するステップと、
出力された前記インデックス番号に応じた電力制御レジスタを、前記パワーテーブルから選択するステップと、
選択された前記電力制御レジスタに記憶された電力制御情報に従って、前記プロセッサの消費電力を制御するステップとを備えることを特徴とする電力制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサの内部で消費される電力を制御するための電力制御装置及び電力制御方法に関するものである。
【背景技術】
【０００２】
コンピュータ、マイクロプロセッサ、マイクロコントローラ、ディジタル信号処理プロセッサ（ＤＳＰ）等が知られている。ここでは、これらストアード・プログラム方式の装置を総称して「プロセッサ」という。
【０００３】
従来のプロセッサの中には、電力制御装置を備えたものがある。例えば、あるプロセッサの電力制御装置は、スタンバイモードにおいて当該プロセッサの内部クロックの周波数を特定の周波数まで下げることで、消費電力を削減する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来のプロセッサの電力制御装置では、低減されたクロック周波数を当該プロセッサのユーザが決めることはできなかった。また、特別な命令を当該プロセッサが実行することでスタンバイモードへ入るようにしていたので、プログラムが大きくなる問題もあった。
【０００５】
本発明の目的は、プロセッサの低消費電力動作をユーザがきめ細かく定義できるようにすることにある。
【０００６】
本発明の他の目的は、イベントドリブン方式の電力制御装置を提供し、以てプログラミングの負担を軽減することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明は、プロセッサの内部で消費される電力を制御するための電力制御装置において、各々が電力制御情報を記憶する複数の電力制御レジスタを備えたパワーテーブルと、プロセッサの所定の内部状況を示す動作条件とインデックス番号とが一対となった情報を複数記憶するための第１のテーブルを有しプロセッサの内部状況が供給される条件判定器と、前記プロセッサの消費電力を制御するためのコントローラとを備えた構成を採用し、前記条件判定器は前記第１のテーブルを参照することにより前記プロセッサの内部状況に応じたインデックス番号を出力し、前記パワーテーブルは前記インデックス番号に応じた電力制御レジスタを選択し、前記コントローラは前記選択された電力制御レジスタに格納された電力制御情報に従って前記プロセッサの消費電力を制御することとしたものである。
【０００８】
また、本発明は、プロセッサの内部で消費される電力を制御するための電力制御方法において、前記プロセッサは各々が電力制御情報を記憶する複数の電力制御レジスタを備えたパワーテーブルを有しており、プロセッサの所定の内部状況を示す動作条件とインデックス番号とが一対となった情報を複数記憶する第１のテーブルを参照することにより前記プロセッサの内部状況に応じたインデックス番号を出力するステップと、出力された前記インデックス番号に応じた電力制御レジスタを前記パワーテーブルから選択するステップと、選択された前記電力制御レジスタに記憶された電力制御情報に従って前記プロセッサの消費電力を制御するステップとを備えることとしたものである。
【０００９】
本発明に係る電力制御装置及び電力制御方法によれば、プログラムの実行前又は実行中に電力制御情報と動作条件とをユーザが書き換えることで、当該プロセッサの低消費電力動作をユーザがきめ細かく定義できる。この書き換えは、プロセッサの製造時に行うことも可能である。
【００１０】
また、本発明に係る電力制御装置及び電力制御方法によれば、プロセッサの現況を条件判定器で自動判定するようにしたので、当該プロセッサのプログラムカウンタが示すアドレス、当該プロセッサに生じたイベントの種別、当該プロセッサの時刻信号が示す時刻等を条件判定器の入力とすることで、イベントドリブン方式の電力制御装置を実現することができる。
【発明の効果】
【００１１】
以上説明してきたとおり、本発明によれば、パワーテーブル中の電力制御情報とプロセッサの種々の動作条件とを書き換え可能としたので、当該プロセッサの低消費電力動作をユーザがきめ細かく定義できる。また、条件判定器を備えたことにより、プログラミングの負担を軽減できるイベントドリブン方式の電力制御装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態に係るマイクロプロセッサの電力制御装置のブロック図である。
【図２】図１中のパワーテーブルの詳細構成例を示すブロック図である。
【図３】図１中の電圧コントローラの詳細構成例を示すブロック図である。
【図４】図１中のクロックコントローラの詳細構成例を示すブロック図である。
【図５】図１の電力制御装置の動作例を示す概念図である。
【図６】図１中の条件判定器の変形例を示すブロック図である。
【図７】図１中の条件判定器の他の変形例を示すブロック図である。
【図８】本発明の第２の実施形態に係る電力制御装置を備えたマイクロプロセッサのブロック図である。
【図９】図８中の条件判定器の詳細構成例を示すブロック図である。
【図１０】図８の電力制御装置の動作例を示す概念図である。
【図１１】本発明の第３の実施形態に係る電力制御装置を備えたマイクロプロセッサのブロック図である。
【図１２】図１１中の条件判定器の詳細構成例を示すブロック図である。
【図１３】図１１の電力制御装置の動作例を示す概念図である。
【図１４】図１１中の条件判定器の変形例を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、マイクロプロセッサへの本発明の適用例について、図面を参照しながら具体的に説明する。
【００１４】
《第１の実施形態》
図１は、本発明の第１の実施形態に係るマイクロプロセッサの電力制御装置を示している。当該マイクロプロセッサ１０は、プログラムカウンタ１１と、複数の回路ブロック１５とに加えて、パワーテーブル２０と、条件判定器３０と、電圧・クロックコントローラ４０とで構成された電力制御装置を備えている。
【００１５】
パワーテーブル２０は、各々電力制御情報を書き換え可能に記憶するための複数の電力制御レジスタ２１を備えている。電力制御情報の各々は、複数の回路ブロック１５のうち電力制御の対象とすべき１以上の回路ブロックを指定するためのブロック情報と、制御対象ブロックの電圧に関する情報（電圧情報）と、制御対象ブロックへ供給すべきクロックに関する情報（クロック情報）とを含んでいる。また、複数の電力制御レジスタ２１のうちのいずれか１つが、条件判定器３０から供給されるインデックス信号により選択されるようになっている。
【００１６】
電圧・クロックコントローラ４０は、インデックス信号により選択された電力制御レジスタ２１中の電力制御情報に従って制御対象回路ブロックの消費電力を制御するためのコントローラであって、ブロック情報と電圧情報とを受け取る電圧コントローラ４１と、ブロック情報とクロック情報とを受け取るクロックコントローラ４５とで構成されている。
【００１７】
条件判定器３０は、アドレステーブル３１と、比較器３２と、ラッチ３３とを備えている。アドレステーブル３１は、各々比較アドレスと、当該比較アドレスに対応付けられたインデックス番号とを書き換え可能に記憶するための複数のレジスタを備えている。比較器３２は、プログラムカウンタ１１が示すアドレスがアドレステーブル３１の中の複数の比較アドレスのいずれに一致したかを判定する。ラッチ３３は、一致判定された比較アドレスに対応付けられたインデックス番号を保持し、このインデックス番号を表す信号をパワーテーブル２０へ前記インデックス信号として供給する。
【００１８】
図２は、図１中のパワーテーブル２０の詳細構成例を示している。各電力制御レジスタ２１は、対象ブロック指定フィールドと、第１及び第２の電圧指定フィールドと、第１及び第２のクロック指定フィールドとを持つ。対象ブロック指定フィールドは、複数の回路ブロック１５のそれぞれに対応した複数のビットを持ち、例えばビット値“１”が対応回路ブロックを電力制御の対象とすべき旨を表す。この対象ブロック指定フィールドの情報は、ブロック情報（ＩＮＦＯ＿ＢＬＫ）として電圧コントローラ４１及びクロックコントローラ４５へ供給される。第１の電圧指定フィールドは、制御対象回路ブロックへ供給すべき電源電圧Ｖｃｃの大きさを表す第１の電圧情報（ＩＮＦＯ＿Ｖｃｃ）を記憶するためのフィールドである。第２の電圧指定フィールドは、制御対象回路ブロックを構成するトランジスタの閾値電圧Ｖｔを制御するための第２の電圧情報（ＩＮＦＯ＿Ｖｔ）を記憶するためのフィールドである。第１のクロック指定フィールドは、制御対象回路ブロックへ供給すべきクロックの周波数を表す第１のクロック情報（ＩＮＦＯ＿ＦＲＥＱ）を記憶するためのフィールドである。第２のクロック指定フィールドは、制御対象回路ブロックへのクロック供給を停止するか否かを表す第２のクロック情報（ＩＮＦＯ＿ＴＥＲＭ）を記憶するためのフィールドである。電圧情報は電圧コントローラ４１へ、クロック情報はクロックコントローラ４５へそれぞれ供給される。
【００１９】
図３は、図１中の電圧コントローラ４１の詳細構成例を示している。図３の電圧コントローラ４１は、ＤＣ−ＤＣコンバータ４２と、ゼロ判定器４３と、各ブロック用の論路回路４４とで構成されている。ＤＣ−ＤＣコンバータ４２は、基本電圧を第１の電圧情報（ＩＮＦＯ＿Ｖｃｃ）で指定された大きさの電圧に変換し、この変換により得た電圧を電源電圧Ｖｃｃとして出力する。ゼロ判定器４３は、第１の電圧情報（ＩＮＦＯ＿Ｖｃｃ）がゼロを指定しているか否かを調べる。論理回路４４は２個のＡＮＤゲートで構成されており、ブロック情報（ＩＮＦＯ＿ＢＬＫ）とゼロ判定器４３の出力とに基づく電源遮断信号と、ブロック情報（ＩＮＦＯ＿ＢＬＫ）と第２の電圧情報（ＩＮＦＯ＿Ｖｔ）とに基づくＶｔ選択信号とを出力する。電源遮断信号は、制御対象回路ブロックにおける電源電圧Ｖｃｃ供給スイッチの制御に用いられる。Ｖｔ選択信号は、制御対象回路ブロックを構成するトランジスタの閾値電圧Ｖｔを制御するように、例えばＭＯＳトランジスタのバックゲート電圧の選択制御に用いられる。各回路ブロックの消費電力は電源電圧Ｖｃｃの２乗に比例する。したがって、電源電圧Ｖｃｃの低減は、各回路ブロックの消費電力削減に極めて大きく寄与する。また、トランジスタ閾値電圧Ｖｔの制御は、当該トランジスタの高速動作モードと、漏れ電流が削減された非動作モードとを実現し得る。
【００２０】
図４は、図１中のクロックコントローラ４５の詳細構成例を示している。図４のクロックコントローラ４５は、ＰＬＬ４６と、分周器４７と、各ブロック用の論理回路４８とで構成されている。ＰＬＬ４６は、ある周波数を持つ通常動作のための内部クロックを基本クロックから生成する。分周器４７は、第１のクロック情報（ＩＮＦＯ＿ＦＲＥＱ）で指定されたクロック周波数に見合った分周比で、内部クロックを分周する。論理回路４８は１個のマルチプレクサと１個のＡＮＤゲートとで構成されており、ＰＬＬ４６から供給された内部クロックと分周器４７から供給された分周クロックとのいずれかをブロック情報（ＩＮＦＯ＿ＢＬＫ）に基づいて選択し、かつ当該選択したクロックの供給・停止を第２のクロック情報（ＩＮＦＯ＿ＴＥＲＭ）に応じて制御する。各回路ブロックの消費電力はクロック周波数に比例する。したがって、クロック周波数の低減は、高速動作が必要でない回路ブロックの消費電力削減に大きく寄与する。
【００２１】
図５は、図１の電力制御装置の動作例を概念的に示している。図５において、パワーテーブル２０は、各々インデックス番号０、１、２、３で識別される４個の電力制御レジスタを備えている。アドレステーブル３１は、比較アドレス１０００とインデックス番号３との組と、比較アドレス１４００とインデックス番号２との組と、比較アドレス４Ｂ００とインデックス番号０との組と、比較アドレス７０１０とインデックス番号３との組と、比較アドレスＣ６ＦＦとインデックス番号１との組と、比較アドレスＤ２００とインデックス番号２との組と、比較アドレスＤ７７０とインデックス番号１との組とを記憶しているものとする。
【００２２】
図５によれば、マイクロプロセッサ１０のプログラムフローに応じて、次のような電力制御が実現する。まず、アドレス００００からプログラムの実行が開始する。その後、アドレス１０００の命令実行時に、プログラムカウンタ１１が示すアドレスと、アドレステーブル３１の中の１番目の比較アドレスとが一致する。これにより、番号３を表すインデックス信号がパワーテーブル２０へ供給される。これを受けて、パワーテーブル２０はインデックス番号３で指定された電力制御情報を電圧・クロックコントローラ４０へ供給し、電圧・クロックコントローラ４０は当該電力制御情報に応じた電圧制御とクロック制御とを実行する。続いて、プログラムの実行がアドレス１４００に到達すると、プログラムカウンタ１１が示すアドレスと、アドレステーブル３１の中の２番目の比較アドレスとが一致し、番号２を表すインデックス信号がパワーテーブル２０へ供給される。これを受けて、パワーテーブル２０はインデックス番号２で指定された電力制御情報を電圧・クロックコントローラ４０へ供給し、電圧・クロックコントローラ４０は当該電力制御情報に応じた電圧制御とクロック制御とを実行する。更に、アドレスＣ６ＦＦへ分岐すべくサブルーチンコール命令が実行されると、プログラムカウンタ１１が示すアドレスと、アドレステーブル３１の中の５番目の比較アドレスとが一致し、番号１を表すインデックス信号がパワーテーブル２０へ供給される。これを受けて、パワーテーブル２０はインデックス番号１で指定された電力制御情報を電圧・クロックコントローラ４０へ供給し、電圧・クロックコントローラ４０は当該電力制御情報に応じた電圧制御とクロック制御とを実行する。
【００２３】
以上のとおり、図１の電力制御装置によれば、パワーテーブル２０とアドレステーブル３１とをユーザが適宜書き換えることで、当該マイクロプロセッサ１０の低消費電力動作をユーザがきめ細かく定義できる。例えば、サブルーチン単位での電力制御や、１命令単位での頻繁な電力制御も可能である。また、特定アドレス区間の命令実行時の電力制御や、多重ループ内の一部命令のみの実行時の電力制御も可能である。しかも、これら電力制御のための特別な命令の実行は不要であるので、電力制御によりアプリケーションプログラム本体の処理効率が低下することはなく、命令メモリ容量の増加を招くこともない。更に、図１の電力制御装置によれば、アプリケーションプログラムの開発と電力制御設計とを独立に行い得る。したがって、プログラム開発の効率向上、保守性向上を図ることができる。また、既存のアプリケーションプログラムを修正することなく、詳細な電力制御を実現することができる。
【００２４】
図６は、図１中の条件判定器３０の変形例を示している。図６によれば、プログラムカウンタ１１の更新のために、インクリメンタ１２と、セレクタ１３とが配置されている。インクリメンタ１２は、プログラムカウンタ１１の出力アドレス信号を受けて、アドレスをインクリメントする。セレクタ１３は、通常はインクリメンタ１２の出力アドレスをプログラムカウンタ１１へ供給するが、ロード信号が与えられた場合には分岐アドレスをプログラムカウンタ１１へ供給するように構成されている。図６の条件判定器３０は、アドレステーブル３１と、比較器３２と、ラッチ３３とに加えて、ロード信号を受けてイネーブル信号を生成するためのアドレス不連続検出器３４を備えている。比較器３２は、このイネーブル信号により、プログラムカウンタ１１が示すアドレスの不連続変化が検出された場合にのみアドレス一致判定を実行するように制御される。その結果、条件判定器３０の内部における消費電力が、図１の場合に比べて削減される。
【００２５】
図７は、図１中の条件判定器３０の他の変形例を示している。図７の条件判定器３０は、例えばサブルーチン単位での電力制御に適したものであって、各々比較開始アドレスと、当該比較開始アドレスに対応付けられた比較終了アドレスと、当該比較開始アドレス及び比較終了アドレスに対応付けられたインデックス番号とを書き換え可能に記憶するための複数のレジスタを持つアドレステーブル３１を備え、プログラムカウンタ１１が示すアドレスが複数の比較開始アドレスと複数の比較終了アドレスとで定義される複数のアドレス範囲のいずれに属するかを判定し、この範囲判定された比較開始アドレス及び比較終了アドレスに対応付けられたインデックス番号を表す信号をパワーテーブル２０へインデックス信号として供給するようになっている。そのために、図７の条件判定器３０は、アドレステーブル３１に加えて、第１の比較器３２ａと、第２の比較器３２ｂと、ＡＮＤゲート３５と、ラッチ３３とを備えている。なお、図１中の比較器３２における一致判定をアドレス上位ビットに限定すれば、図７の場合より大まかな範囲判定を実現できる。
【００２６】
《第２の実施形態》
図８は、本発明の第２の実施形態に係る電力制御装置を備えたマイクロプロセッサを示している。図８のマイクロプロセッサ１１０は、外部ブロック１５０からのバースト的な大量データの受信を、当該外部ブロック１５０から与えられる送信開始／完了フラグに基づく割り込み処理として実行する機能を有するものであって、送信開始／完了フラグ等に応じた割り込み種別（イベント種別）を表すイベント信号を発生するためのイベント信号発生器１１１と、データ受信のための受信処理ブロック１１５と、受信データを格納するためのメモリブロック１１６と、その他の機能ブロック１１７とを備えている。更に、図８のマイクロプロセッサ１１０は、図１中のパワーテーブル２０と同様のパワーテーブル１２０と、イベント信号に応答して当該パワーテーブル１２０へインデックス信号を供給するための条件判定器１３０と、図１中の電圧・クロックコントローラ４０と同様の電圧・クロックコントローラ１４０とを備えており、これらが各回路ブロック１１５，１１６，１１７の消費電力を制御するための電力制御装置を構成している。
【００２７】
図９は、図８中の条件判定器１３０の詳細構成例を示している。図９の条件判定器１３０は、イベントテーブル１３１と、比較器１３２と、ラッチ１３３とを備えている。イベントテーブル１３１は、各々比較イベント種別と、当該比較イベント種別に対応付けられたインデックス番号とを書き換え可能に記憶するための複数のレジスタを備えている。比較器１３２は、イベント信号発生器１１１が発生したイベント信号により表されたイベントの種別がイベントテーブル１３１の中の複数の比較イベント種別のいずれに一致したかを判定する。ラッチ１３３は、一致判定された比較イベント種別に対応付けられたインデックス番号を保持し、このインデックス番号を表す信号をパワーテーブル１２０へ前記インデックス信号として供給する。
【００２８】
図１０は、図８の電力制御装置の動作例を概念的に示している。図１０において、パワーテーブル１２０は、各々インデックス番号０、１、２、３で識別される４個の電力制御レジスタを備えている。イベントテーブル１３１は、比較イベント種別１とインデックス番号３との組と、比較イベント種別２とインデックス番号２との組と、比較イベント種別３とインデックス番号０との組と、比較イベント種別４とインデックス番号３との組と、比較イベント種別５とインデックス番号１との組と、比較イベント種別６とインデックス番号２との組と、比較イベント種別７とインデックス番号１との組とを記憶している。外部ブロック１５０は、マイクロプロセッサ１１０へのデータ送信を開始する際に送信開始／完了フラグをアクティブにし、送信完了時に当該フラグをネガティブにする。これを受けて、イベント信号発生器１１１は、送信開始／完了フラグがアクティブになった時点でイベント種別４を表す信号を、当該フラグがネガティブになった時点でイベント種別５を表す信号をそれぞれ発生するものとする。
【００２９】
図１０によれば、マイクロプロセッサ１１０に生じたイベントの種別に応じて、次のような電力制御が実現する。まず、外部ブロック１５０からマイクロプロセッサ１１０へのデータ送信の開始時に送信開始／完了フラグがアクティブになると、イベント信号発生器１１１がイベント種別４を表す信号を発生するので、発生した当該イベント種別と、イベントテーブル１３１の中の４番目の比較イベント種別とが一致する。これにより、番号３を表すインデックス信号がパワーテーブル１２０へ供給される。これを受けて、パワーテーブル１２０はインデックス番号３で指定された電力制御情報を電圧・クロックコントローラ１４０へ供給し、電圧・クロックコントローラ１４０は当該電力制御情報に応じた電圧制御とクロック制御とを実行する。ここで、例えば受信処理ブロック１１５へ供給する電源電圧Ｖｃｃを高くし、かつ当該ブロック１１５へ供給するクロックの周波数を高くすることができる。続いて、外部ブロック１５０からマイクロプロセッサ１１０へのデータ送信の完了時に送信開始／完了フラグがネガティブになると、イベント信号発生器１１１がイベント種別５を表す信号を発生するので、発生した当該イベント種別と、イベントテーブル１３１の中の５番目の比較イベント種別とが一致する。これにより、番号１を表すインデックス信号がパワーテーブル１２０へ供給される。これを受けて、パワーテーブル１２０はインデックス番号１で指定された電力制御情報を電圧・クロックコントローラ１４０へ供給し、電圧・クロックコントローラ１４０は当該電力制御情報に応じた電圧制御とクロック制御とを実行する。ここで、例えば受信処理ブロック１１５への電源電圧を遮断し、かつ当該ブロック１１５へのクロックの供給を停止することができる。これにより、受信処理ブロック１１５を必要な期間だけ高速動作させることができる。
【００３０】
以上のとおり、図８の電力制御装置によれば、パワーテーブル１２０とイベントテーブル１３１とをユーザが適宜書き換えることで、アプリケーションプログラムと非同期に発生するイベント応じた当該マイクロプロセッサ１１０の低消費電力動作をユーザがきめ細かく定義できる。しかも、これら電力制御のための特別な命令の実行は不要であるので、電力制御によりアプリケーションプログラム本体の処理効率が低下することはなく、命令メモリ容量の増加を招くこともない。更に、図８の電力制御装置によれば、アプリケーションプログラムの開発と電力制御設計とを独立に行い得る。したがって、プログラム開発の効率向上、保守性向上を図ることができる。また、既存のアプリケーションプログラムを修正することなく、詳細な電力制御を実現することができる。
【００３１】
《第３の実施形態》
図１１は、本発明の第３の実施形態に係る電力制御装置を備えたマイクロプロセッサを示している。図１１のマイクロプロセッサ２１０は、外部ブロック２５０との間のデータ送受信を定められた時間帯に実行する機能を有するものであって、時刻を表す時刻信号を発生するためのタイマ２１１と、データ受信のための受信ブロック２１５と、データ送信のための送信ブロック２１６と、その他の機能ブロック２１７とを備えている。更に、図１１のマイクロプロセッサ２１０は、図１中のパワーテーブル２０と同様のパワーテーブル２２０と、時刻信号に応答して当該パワーテーブル２２０へインデックス信号を供給するための条件判定器２３０と、図１中の電圧・クロックコントローラ４０と同様の電圧・クロックコントローラ２４０とを備えており、これらが各回路ブロック２１５，２１６，２１７の消費電力を制御するための電力制御装置を構成している。
【００３２】
図１２は、図１１中の条件判定器２３０の詳細構成例を示している。図１２の条件判定器２３０は、タイムテーブル２３１と、比較器２３２と、ラッチ２３３とを備えている。タイムテーブル２３１は、各々比較時刻と、当該比較時刻に対応付けられたインデックス番号とを書き換え可能に記憶するための複数のレジスタを備えている。比較器２３２は、タイマ２１１が発生した時刻信号により表された時刻がイベントテーブル２３１の中の複数の比較時刻のいずれに一致したかを判定する。ラッチ２３３は、一致判定された比較時刻に対応付けられたインデックス番号を保持し、このインデックス番号を表す信号をパワーテーブル２２０へ前記インデックス信号として供給する。
【００３３】
図１３は、図１１の電力制御装置の動作例を概念的に示している。図１３において、パワーテーブル２２０は、各々インデックス番号０、１、２、３で識別される４個の電力制御レジスタを備えている。タイムテーブル２３１は、比較時刻とインデックス番号との多数の組を記憶している。図１３中のＴ０００、Ｔ０２０、Ｔ０４０、Ｔ０５０、Ｔ１００、Ｔ１２０、Ｔ１４０、Ｔ１５０は各々時刻を表している。ここでは、当該マイクロプロセッサ２１０がＴ０４０からＴ０５０までの時間範囲では送信動作を、Ｔ１００からＴ１２０までの時間範囲では受信動作をそれぞれ実行するものとする。
【００３４】
図１３によれば、時間の流れに応じて、次のような電力制御が実現する。まず、タイマ２１１の時刻信号により表された時刻がＴ０２０になると、この時刻と、タイムテーブル２３１の中の比較時刻Ｔ０２０とが一致する。これにより、番号３を表すインデックス信号がパワーテーブル２２０へ供給される。これを受けて、パワーテーブル２２０はインデックス番号３で指定された電力制御情報を電圧・クロックコントローラ２４０へ供給し、電圧・クロックコントローラ２４０は当該電力制御情報に応じた電圧制御とクロック制御とを実行する。ここで、例えば受信ブロック２１５及び送信ブロック２１６への電源電圧及びクロックの供給を停止し、かつマイクロプロセッサ２１０の全体の動作周波数を低くすることで、プロセッサ全体として消費電力を削減できる。続いて、タイマ２１１の時刻信号により表された時刻がＴ０４０になると、この時刻と、タイムテーブル２３１の中の比較時刻Ｔ０４０とが一致する。これにより、番号１を表すインデックス信号がパワーテーブル２２０へ供給される。これを受けて、パワーテーブル２２０はインデックス番号３で指定された電力制御情報を電圧・クロックコントローラ２４０へ供給し、電圧・クロックコントローラ２４０は当該電力制御情報に応じた電圧制御とクロック制御とを実行する。ここで、例えば受信ブロック２１５への電源電圧及びクロックの供給を停止したまま、送信ブロック２１６への電源電圧及びクロックの供給を開始し、かつマイクロプロセッサ２１０の全体の動作周波数を中程度にまで上げることができる。続いて、タイマ２１１の時刻信号により表された時刻がＴ０５０になると、この時刻と、タイムテーブル２３１の中の比較時刻Ｔ０５０とが一致する。これにより、番号３を表すインデックス信号がパワーテーブル２２０へ再び供給されることとなり、Ｔ０２０からＴ０４０までの時間範囲と同じ状態に戻る。続いて、タイマ２１１の時刻信号により表された時刻がＴ１００になると、この時刻と、タイムテーブル２３１の中の比較時刻Ｔ１００とが一致する。これにより、番号２を表すインデックス信号がパワーテーブル２２０へ供給される。これを受けて、パワーテーブル２２０はインデックス番号２で指定された電力制御情報を電圧・クロックコントローラ２４０へ供給し、電圧・クロックコントローラ２４０は当該電力制御情報に応じた電圧制御とクロック制御とを実行する。ここで、例えば送信ブロック２１６への電源電圧及びクロックの供給を停止したまま、受信ブロック２１５への電源電圧及びクロックの供給を開始し、かつマイクロプロセッサ２１０の全体の動作周波数を最大限に上げることができる。
【００３５】
以上のとおり、図１１の電力制御装置によれば、パワーテーブル２２０とタイムテーブル２３１とをユーザが適宜書き換えることで、時間の流れに沿った当該マイクロプロセッサ２１０の低消費電力動作をユーザがきめ細かく定義できる。しかも、これら電力制御のための特別な命令の実行は不要であるので、電力制御によりアプリケーションプログラム本体の処理効率が低下することはなく、命令メモリ容量の増加を招くこともない。更に、図１１の電力制御装置によれば、アプリケーションプログラムの開発と電力制御設計とを独立に行い得る。したがって、プログラム開発の効率向上、保守性向上を図ることができる。また、既存のアプリケーションプログラムを修正することなく、詳細な電力制御を実現することができる。なお、タイマ２１１を周期的にリセットするように構成すれば、タイムテーブル２３１のレジスタ数を削減できる。
【００３６】
図１４は、図１１中の条件判定器２３０の変形例を示している。図１４の条件判定器２３０は、各々比較開始時刻と、当該比較開始時刻に対応付けられた比較終了時刻と、当該比較開始時刻及び比較終了時刻に対応付けられたインデックス番号とを書き換え可能に記憶するための複数のレジスタを持つタイムテーブル２３１を備え、タイマ２１１の時刻信号が示す時刻が複数の比較開始時刻と複数の比較終了時刻とで定義される複数の時間範囲のいずれに属するかを判定し、この範囲判定された比較開始時刻及び比較終了時刻に対応付けられたインデックス番号を表す信号をパワーテーブル２２０へインデックス信号として供給するようになっている。そのために、図１４の条件判定器２３０は、タイムテーブル２３１に加えて、第１の比較器２３２ａと、第２の比較器２３２ｂと、ＡＮＤゲート２３５と、ラッチ２３３とを備えている。なお、図１２中の比較器２３２における一致判定を時刻信号の上位ビットに限定すれば、図１４の場合より大まかな範囲判定を実現できる。
【００３７】
なお、上記各実施形態において種々の変更が可能である。例えば図１の構成において、用途に応じてパワーテーブル２０とアドレステーブル３１とを一体化した１つの装置として実装してもよい。図２中の電力制御レジスタ２１は５フィールドからなるが、必ずしもこれに限る必要はない。例えば、用途によっては各電力制御レジスタ２１に電源電圧Ｖｃｃのフィールドのみを実装した構成も可能である。
【００３８】
上記各テーブルは、フリップフロップやラッチ構成に限らず、ＲＡＭやＥＥＰＲＯＭ構成、ＦＰＧＡ等のプログラマブルロジック構成等が可能である。各テーブルを命令実行により書き換えできるようにしてもよい。複数のパワーテーブルを備えた構成も可能である。
【００３９】
上記各パワーテーブルへ供給すべきインデックス信号を命令実行により更新できるようにしてもよい。例えば、サブルーチンコール命令等の分岐命令のオペランド部でパワーテーブルのインデックス番号を指定する。
【００４０】
条件判定器の入力として、命令コードや、当該マイクロプロセッサが扱うデータを採用してもよい。特定メモリ空間（例えばフラッシュメモリの空間）にデータが読み書きされることを条件判定器で検出して電源電圧制御を行うことも可能である。
【００４１】
上記各実施形態の組み合わせによる電力制御も可能である。例えば、アドレス比較により特定のサブルーチン処理時の電源電圧を低くし、かつ外部イベントの発生時にクロック周波数を上げることも可能である。
【符号の説明】
【００４２】
１０  マイクロプロセッサ
１１  プログラムカウンタ
２０  パワーテーブル
２１  電力制御レジスタ
３０  条件判定器
３１  アドレステーブル
３２，３２ａ，３２ｂ  比較器
４０  電圧・クロックコントローラ
１１０  マイクロプロセッサ
１１１  イベント信号発生器
１２０  パワーテーブル
１３０  条件判定器
１３１  イベントテーブル
１３２  比較器
１４０  電圧・クロックコントローラ
２１０  マイクロプロセッサ
２１１  タイマ
２２０  パワーテーブル
２３０  条件判定器
２３１  タイムテーブル
２３２，２３２ａ，２３２ｂ  比較器
２４０  電圧・クロックコントローラ
【図１】
0004480787.tif 000002
【図２】
0004480787.tif 000003
【図３】
0004480787.tif 000004
【図４】
0004480787.tif 000005
【図５】
0004480787.tif 000006
【図６】
0004480787.tif 000007
【図７】
0004480787.tif 000008
【図８】
0004480787.tif 000009
【図９】
0004480787.tif 000010
【図１０】
0004480787.tif 000011
【図１１】
0004480787.tif 000012
【図１２】
0004480787.tif 000013
【図１３】
0004480787.tif 000014
【図１４】
0004480787.tif 000015