(57)【要約】【課題】  性能を劣化させずに省電力化する。【解決手段】  プロセッサシステムは、周期的にメイン処理を実施し、かつ、周期内に発生する割り込み処理に対して、予め算出された復帰制約時間内に処理を開始するプロセッサ部と、周期毎に割り込み処理の発生履歴を保持する履歴記憶部と、プロセッサ部の動作モードを選択するモード制御部と有している。例えば、プロセッサ部は、通常モードと、省電力化のための複数の省電力モードとを有している。そして、例えば、モード制御部は、メイン処理および割り込み処理のいずれも実施されない期間では、発生履歴に基づいて検出される未実施の割り込み処理の復帰制約時間と、各省電力モードから通常モードに復帰するまでの復帰時間と、周期の残り時間とに基づいて、プロセッサ部の動作モードを、通常モードおよび複数の省電力モードから選択する。【選択図】    図１
2010113641.tif 000002
【特許請求の範囲】
【請求項１】
周期的にメイン処理を実施し、かつ、前記周期内に発生する割り込み処理に対して、予め算出された復帰制約時間内に処理を開始するプロセッサ部を備えたプロセッサシステムの動作方法であって、
前記プロセッサ部の動作モードは、通常モードと、省電力化のための複数の省電力モードとを含み、
前記周期毎に、前記割り込み処理の発生履歴を、前記プロセッサシステムの履歴記憶部に保持し、
少なくとも前記メイン処理が実施される期間では、前記プロセッサ部の動作モードとして前記通常モードを選択し、
前記メイン処理および前記割り込み処理のいずれも実施されない期間では、前記発生履歴に基づいて検出される未実施の前記割り込み処理の前記復帰制約時間と、前記各省電力モードから前記通常モードに復帰するまでの復帰時間と、前記周期の残り時間とに基づいて、前記プロセッサ部の動作モードを、前記通常モードおよび前記複数の省電力モードから選択することを特徴とするプロセッサシステムの動作方法。
【請求項２】
請求項１記載のプロセッサシステムの動作方法において、
未実施の前記割り込み処理の前記復帰制約時間と前記周期の残り時間との組み合わせに応じた前記プロセッサ部の動作モードを示す情報を有する複数のモード選択テーブルを保持し、
前記複数のモード選択テーブルから使用する前記モード選択テーブルを選択し、
選択した前記モード選択テーブルと、前記割り込み処理の発生履歴とに基づいて、前記プロセッサ部の動作モードを、前記通常モードおよび前記複数の省電力モードから選択することを特徴とするプロセッサシステムの動作方法。
【請求項３】
請求項１記載のプロセッサシステムの動作方法において、
前記周期を単位とした間隔で、前記割り込み処理の発生間隔を示す情報を保持し、
前記発生間隔を示す情報に基づいて、前記周期毎に、前記割り込み処理の発生履歴を更新することを特徴とするプロセッサシステムの動作方法。
【請求項４】
周期的にメイン処理を実施するプロセッサシステムにおいて、
通常モードと、省電力化のための複数の省電力モードとを有し、前記メイン処理を実施し、かつ、前記周期内に発生する割り込み処理に対して、予め算出された復帰制約時間内に処理を開始するプロセッサ部と、
前記周期毎に、前記割り込み処理の発生履歴を保持する履歴記憶部と、
少なくとも前記メイン処理が実施される期間では、前記プロセッサ部の動作モードとして前記通常モードを選択し、前記メイン処理および前記割り込み処理のいずれも実施されない期間では、前記発生履歴に基づいて検出される未実施の前記割り込み処理の前記復帰制約時間と、前記各省電力モードから前記通常モードに復帰するまでの復帰時間と、前記周期の残り時間とに基づいて、前記プロセッサ部の動作モードを、前記通常モードおよび前記複数の省電力モードから選択するモード制御部とを備えていることを特徴とするプロセッサシステム。
【請求項５】
請求項４記載のプロセッサシステムにおいて、
未実施の前記割り込み処理の前記復帰制約時間と前記周期の残り時間との組み合わせに応じた前記プロセッサ部の動作モードを示す情報を有する複数のモード選択テーブルを備え、
前記モード制御部は、参照する前記モード選択テーブルを前記複数のモード選択テーブルから選択し、選択した前記モード選択テーブルと、前記履歴記憶部に保持された情報とに基づいて、前記プロセッサ部の動作モードを、前記通常モードおよび前記複数の省電力モードから選択することを特徴とするプロセッサシステム。
【請求項６】
請求項４記載のプロセッサシステムにおいて、
前記履歴記憶部は、前記周期を単位とした間隔で、前記割り込み処理の発生間隔を示す情報を保持していることを特徴とするプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサシステムの動作方法およびプロセッサシステムに関する。
【背景技術】
【０００２】
一般に、プロセッサシステムでは、消費電力を低減するために、動作周波数を制御する方式がとられている（例えば、特許文献１、特許文献２参照）。例えば、携帯端末にも用いられるプロセッサシステムは、通信性能を満足させるため、通信負荷の最も高い状態に対応できるプロセッサを有している。したがって、通話のみが実施される状態、あるいは待ち受け状態では、プロセッサは、過剰な性能を有している。なお、通話状態（パケット通信も含む）中では、プロセッサは、周期的に動作し、周期内でいつ発生するか分からない割り込み処理に対応する必要がある。
【０００３】
このため、この種のプロセッサシステムでは、省電力化のための制御は、待ち受け状態中と通話状態中とで異なる方式がとられている。例えば、待ち受け状態中は、電源や電圧を制御して消費電力を低減する。一般的に、電源や電圧を制御して消費電力を低減する方式は、動作周波数を制御する方式に比べて、省電力化の効果が高いが、通常の動作に復帰するまでの時間（復帰時間）が大きい。一方、通話状態中は、電源等を制御する方式に比べて復帰時間が小さい動作周波数を制御する方式により、消費電力を低減する。
【特許文献１】特開平８−２１１９６０号公報
【特許文献２】特許第４０３０４０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
通話状態中は、動作周波数を制御することにより消費電力を低減しているため、負荷の変化が大きい場合でも、省電力化の効果は低い。なお、通話状態中の省電力化のための制御を、電源等を制御する方式にした場合、復帰時間が大きいため、プロセッサは、周期内でいつ発生するか分からない割り込み処理に対応できないおそれがある。この場合、プロセッサシステムの性能が劣化する。
【０００５】
本発明の目的は、性能を劣化させずに省電力化することである。
【課題を解決するための手段】
【０００６】
プロセッサシステムは、周期的にメイン処理を実施し、かつ、周期内に発生する割り込み処理に対して、予め算出された復帰制約時間内に処理を開始するプロセッサ部と、周期毎に割り込み処理の発生履歴を保持する履歴記憶部と、プロセッサ部の動作モードを選択するモード制御部と有している。例えば、プロセッサ部は、通常モードと、省電力化のための複数の省電力モードとを有している。そして、例えば、モード制御部は、少なくともメイン処理が実施される期間では、プロセッサ部の動作モードとして通常モードを選択する。また、モード制御部は、メイン処理および割り込み処理のいずれも実施されない期間では、発生履歴に基づいて検出される未実施の割り込み処理の復帰制約時間と、各省電力モードから通常モードに復帰するまでの復帰時間と、周期の残り時間とに基づいて、プロセッサ部の動作モードを、通常モードおよび複数の省電力モードから選択する。
【発明の効果】
【０００７】
性能を劣化させずに省電力化できる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施形態を図面を用いて説明する。
【０００９】
図１は、本発明の一実施形態を示している。プロセッサシステム１０は、全体制御用のＣＰＵ（Central Processing Unit）２０、信号処理用のＤＳＰ（Digital Signal Processor）３０、モード制御部４０、メモリ５０、割り込み状態レジスタ６０、監視部７０、補助ハードウェア８０、電力制御部９０および周期カウンタ１００を有している。例えば、プロセッサシステム１０は、携帯端末に用いられる。
【００１０】
ＣＰＵ２０、ＤＳＰ３０、メモリ５０、割り込み状態レジスタ６０、監視部７０および周期カウンタ１００は、ＣＰＵバス２２に接続されている。メモリ５０には、モード選択テーブル５２が保持されている。モード選択テーブル５２は、ＤＳＰ３０の動作モードを設定する際に、モード制御部４０により参照されるテーブルである。なお、モード選択テーブル５２の詳細は、後述する図６で説明する。また、メモリ５０に保持されたモード選択テーブル５２は、ＣＰＵバス２２経由で設定変更可能である。
【００１１】
ＣＰＵ２０は、例えば、ＣＰＵバス２２に接続されたメインメモリ（図示せず）に保持されているプログラムに基づいて、プロセッサシステム１０の全体の動作を制御する。また、この実施形態では、ＣＰＵ１０は、割り込み信号ＩＮＴの１つである割り込み信号ＩＮＴ１をＤＳＰ３０および監視部７０に出力する。
【００１２】
ＤＳＰ３０は、ＣＰＵ２０および補助ハードウェア８０からの割り込み信号ＩＮＴ（ＩＮＴ１−４）を受け付け、割り込み処理を実施する。以下、割り込み信号および割り込み信号に対応する割り込み処理は、同じ符号で示す。例えば、割り込み処理ＩＮＴ１は、割り込み信号ＩＮＴ１を受けたＤＳＰ３０により実施される割り込み処理を示す。また、ＤＳＰ３０は、後述する図２に示すように、周期的にメイン処理ＭＡＩＮを実施する。すなわち、ＤＳＰ３０は周期的に動作する。なお、例えば、ＤＳＰ３０は、省電力化を実現するために、複数の動作モードを有している。
【００１３】
モード制御部４０は、ＤＳＰ３０の状態（動作モード）を制御するステートマシンである。なお、モード制御部４０の動作の詳細は、後述する図９で説明する。例えば、モード制御部４０は、モード選択テーブル５２および割り込み状態レジスタ６０を参照し、周期の残り時間を示す時刻情報ＴＭに基づいて、ＤＳＰ３０の動作モードを示すモード信号ＭＩＮＦを生成する。ここで、割り込み状態レジスタ６０は、周期毎に割り込み処理ＩＮＴの発生履歴を保持する書き換え可能なレジスタである。本明細においては履歴記憶部とも呼ぶ。例えば、割り込み状態レジスタ６０は、割り込み処理ＩＮＴの終了を示す終了情報を割り込み処理ＩＮＴ１−４毎に保持し、周期の開始を示す周期開始信号ＳＴによりリセットされる。なお、割り込み状態レジスタ６０に保持された終了情報は、割り込み処理の終了を示す終了信号ＥＳＩＧ（ＥＳＩＧ１−４）により、割り込み処理ＩＮＴ１−４毎に更新される。
【００１４】
監視部７０は、割り込み処理ＩＮＴの発生および終了を割り込み処理ＩＮＴ１−４毎に監視する。なお、監視部７０の詳細は、後述する図８で説明する。例えば、監視部７０は、ＤＳＰ３０のプログラムカウンタの値（以下、プログラムカウンタ値とも称する）ＰＣおよび割り込み信号ＩＮＴ１−４を受け、割り込み処理ＩＮＴの発生を示す発生信号ＳＳＩＧ（ＳＳＩＧ１−４）および終了信号ＥＳＩＧを生成する。そして、例えば、監視部７０は、発生信号ＳＳＩＧをモード制御部４０に出力し、終了信号ＥＳＩＧをモード制御部４０および割り込み状態レジスタ６０に出力する。また、監視部７０は、起動直後に、周期開始信号ＳＴによりリセットされる。
【００１５】
補助ハードウェア８０は、例えば、アクセラレータであり、ＤＳＰ３０の性能を補助するためのハードウェアである。また、この実施形態では、補助ハードウェア８０は、割り込み信号ＩＮＴ２−４をＤＳＰ３０および監視部７０に出力する。電力制御部９０は、モード信号ＭＩＮＦに基づいて、ＤＳＰ３０の電源のオン／オフの制御、ＤＳＰ３０の電源電圧の制御およびＤＳＰ３０の動作周波数の制御等を実施する。周期カウンタ１００は、ＣＰＵバス２２経由で周期（例えば、後述する図２に示す周期Ｔ）の大きさ（時間）が設定され、周期開始信号ＳＴを、モード制御部４０、割り込み状態レジスタ６０および監視部７０に出力し、周期の残り時間を示す時刻情報ＴＭをモード制御部４０に出力する。
【００１６】
図２は、図１に示したＤＳＰ３０の動作の一例を示している。図中の網掛けは、割り込み処理ＩＮＴを示している。なお、各周期Ｔ内に発生する割り込み処理ＩＮＴの種類は、予め設定されている。図の例では、最初の周期Ｔ（図２の（ａ））および２番目の周期Ｔ（図２の（ｂ））の両方で、割り込み処理ＩＮＴ１−４が発生するように予め設定されている。また、各周期Ｔ内に発生する割り込み処理ＩＮＴ１−４は、周期Ｔ内でいつ発生するか分からない。例えば、最初の周期Ｔ（図２の（ａ））では、割り込み処理ＩＮＴは、メイン処理ＭＡＩＮが終了した後に、割り込み処理ＩＮＴ１、ＩＮＴ４、ＩＮＴ２、ＩＮＴ３の順に発生している。そして、２番目の周期Ｔ（図２の（ｂ））では、メイン処理ＭＡＩＮが実施されている最中に、割り込み処理ＩＮＴ１が発生し、割り込み処理ＩＮＴ１が終了し、メイン処理ＭＡＩＮの続きが実施されている最中に、割り込み処理ＩＮＴ２が発生し、メイン処理ＭＡＩＮが終了した後に、割り込み処理ＩＮＴ３、ＩＮＴ４が発生している。
【００１７】
すなわち、ＤＳＰ３０は、各周期Ｔの開始時にメイン処理ＭＡＩＮを実施し、周期Ｔ毎に不規則なタイミングで発生する割り込み処理ＩＮＴ１−４を、割り込み信号ＩＮＴ１−４をトリガにして実施する。なお、この実施形態では、メイン処理ＭＡＩＮおよび割り込み処理ＩＮＴ１−４が実施されるときのＤＳＰ３０の動作モードは、通常モードである。また、ＤＳＰ３０は、通常モードの他に、省電力化のための複数の省電力モードを有している。すなわち、ＤＳＰ３０の動作モードは、通常モードおよび複数の省電力モードから選択される。
【００１８】
図３は、割り込み処理ＩＮＴの概要を示している。図３の（ａ）の網掛けは、割り込み処理ＩＮＴに対する応答時間ＲＥＴを示している。例えば、応答時間ＲＥＴは、割り込み処理ＩＮＴに対して応答するために、ＤＳＰ３０が演算を開始してから終了するまでの期間であり、割り込み処理ＩＮＴのアルゴリズムから算出される。例えば、割り込み処理ＩＮＴのアルゴリズムが実装されたシステムの割り込み処理ＩＮＴの発生から応答までの時間を評価ツール等で測定し、最悪条件での測定値（時間）を応答時間ＲＥＴとして用いる。
【００１９】
また、割り込み処理ＩＮＴは、割り込み処理ＩＮＴが発生してから制約時間ＬＴ内に応答ＲＥＳを終了しなければならない。例えば、ＤＳＰ３０は、時刻ｔ０に割り込み処理ＩＮＴが発生した場合、時刻ｔ０から制約時間ＬＴ経過した時刻ｔ２までに、応答する必要がある。例えば、制約時間ＬＴは、ＤＳＰ３０が用いられているシステム全体のアルゴリズムから算出され、システムが運用される前に予め決められている。なお、復帰制約時間ＲＬＴは、制約時間ＬＴから応答時間ＲＥＴを引いた値（時間）である。
【００２０】
図３の（ａ）の例では、割り込み処理ＩＮＴは、時刻ｔ０に発生し、割り込み処理ＩＮＴ（割り込み信号ＩＮＴ）に対する応答ＲＥＳは、制約時間ＬＴ内の時刻ｔ１に終了する。ここで、時刻ｔ３の割り込み処理ＩＮＴの終了ＥＮＤは、例えば、応答ＲＥＳに対する返答をＤＳＰ３０が受けた場合、その返答に対する処理の終了を示している。したがって、応答ＲＥＳに対する返答がない割り込み処理ＩＮＴでは、割り込み処理ＩＮＴに対する応答ＲＥＳが終了した時刻ｔ１が、割り込み処理ＩＮＴの終了ＥＮＤの時刻である。
【００２１】
上述したように、ＤＳＰ３０は、割り込み信号ＩＮＴを受けてから制約時間ＬＴ内に応答すればよい。すなわち、制約時間ＬＴは、割り込み信号ＩＮＴを受けてから応答するまでに費やすことのできる時間である。したがって、ＤＳＰ３０は、割り込み信号ＩＮＴを受けてから復帰制約時間ＲＬＴ内に、割り込み処理ＩＮＴに対する応答ＲＥＳのための演算を開始することにより、制約時間ＬＴ内に応答できる。すなわち、復帰制約時間ＲＬＴは、割り込み処理ＩＮＴが発生してから、ＤＳＰ３０が割り込み処理ＩＮＴを開始するまでの待機時間の上限である。
【００２２】
図３の（ｂ）に示すように、割り込み処理ＩＮＴ１の復帰制約時間ＲＬＴ１は、割り込み処理ＩＮＴ１の制約時間ＬＴ１から応答時間ＲＥＴ１を引いた値である。また、割り込み処理ＩＮＴ２の復帰制約時間ＲＬＴ２は、割り込み処理ＩＮＴ２の制約時間ＬＴ２から応答時間ＲＥＴ２を引いた値であり、割り込み処理ＩＮＴ３の復帰制約時間ＲＬＴ３は、割り込み処理ＩＮＴ３の制約時間ＬＴ３から応答時間ＲＥＴ３を引いた値である。同様に、割り込み処理ＩＮＴ４の復帰制約時間ＲＬＴ４は、割り込み処理ＩＮＴ４の制約時間ＬＴ４から応答時間ＲＥＴ４を引いた値である。なお、この実施形態では、復帰制約時間ＲＬＴ２は復帰制約時間ＲＬＴ１より大きく、復帰制約時間ＲＬＴ３は復帰制約時間ＲＬＴ２より大きく、復帰制約時間ＲＬＴ４は復帰制約時間ＲＬＴ３より大きい。
【００２３】
図４は、省電力モードと復帰時間ＲＴとの関係の一例を示している。省電力モードＭＤ１−３は、ＤＳＰ３０の消費電力を通常モードに比べて小さくするモードである。なお、復帰時間ＲＴ（ＲＴ１０、ＲＴ２０、ＲＴ３０）は、各省電力モードＭＤ１−３から通常モードに復帰するまでに費やされる時間である。例えば、復帰時間ＲＴは、省電力化のための制御方法、製造プロセスおよびレイアウト等が決まった時点で算出される。
【００２４】
例えば、省電力モードＭＤ１では、ＤＳＰ３０の動作周波数は、通常モードに比べて低く設定される。あるいは、省電力モードＭＤ１では、ＤＳＰ３０で使用するクロックは、停止状態に設定される。また、例えば、省電力モードＭＤ２では、ＤＳＰ３０の電源電圧は通常モードに比べて低く設定され、省電力モードＭＤ３では、ＤＳＰ３０の電源はオフされる。以下、省電力モードＭＤ１、ＭＤ２、ＭＤ３を、それぞれ周波数制御モードＭＤ１、電圧制御モードＭＤ２、電源制御モードＭＤ３とも称する。
【００２５】
この実施形態では、例えば、省電力モードＭＤ１から通常モードに復帰するまでにかかる復帰時間ＲＴ１０は、割り込み処理ＩＮＴ１の復帰制約時間ＲＬＴ１より大きく、割り込み処理ＩＮＴ２の復帰制約時間ＲＬＴ２以下である。また、例えば、省電力モードＭＤ２から通常モードに復帰するまでにかかる復帰時間ＲＴ２０は、割り込み処理ＩＮＴ２の復帰制約時間ＲＬＴ２より大きく、割り込み処理ＩＮＴ３の復帰制約時間ＲＬＴ３以下である。例えば、省電力モードＭＤ３から通常モードに復帰するまでにかかる復帰時間ＲＴ３０は、割り込み処理ＩＮＴ３の復帰制約時間ＲＬＴ３より大きく、割り込み処理ＩＮＴ４の復帰制約時間ＲＬＴ４以下である。したがって、この実施形態では、復帰制約時間ＲＬＴと復帰時間ＲＴとの関係に基づいて、割り込み処理ＩＮＴが実施される前のＤＳＰ３０の動作モードを適切に選択することにより、割り込み処理ＩＮＴに対して、制約時間ＬＴ内に応答できる。
【００２６】
図５は、割り込み処理ＩＮＴと省電力モードの復帰時間ＲＴとの関係の一例を示している。図中の網掛けは、割り込み処理ＩＮＴ２に対する応答時間ＲＥＴ２を示している。なお、図５の（ａ）は、割り込み信号ＩＮＴ２を受ける前のＤＳＰ３０の動作モードが周波数制御モードＭＤ１の場合を示し、図５の（ｂ）は、割り込み信号ＩＮＴ２を受ける前のＤＳＰ３０の動作モードが電圧制御モードＭＤ２の場合を示している。また、図中の符号ＭＤ０は、通常モードＭＤ０を示している。
【００２７】
図５の（ａ）に示すように、ＤＳＰ３０は、時刻ｔ０の割り込み信号ＩＮＴ２をトリガにして、周波数制御モードＭＤ１から通常モードＭＤ０に遷移する。通常モードＭＤ０に復帰するまでに復帰時間ＲＴ１０かかるため、ＤＳＰ３０は、時刻ｔ０から復帰時間ＲＴ１０後の時刻ｔ１０に、割り込み処理ＩＮＴ２に対する応答ＲＥＳのための演算を開始する。上述した図４で説明したように、復帰時間ＲＴ１０が割り込み処理ＩＮＴ２の復帰制約時間ＲＬＴ２以下のため、ＤＳＰ３０は、制約時間ＬＴ２内の時刻ｔ２０に、割り込み処理ＩＮＴ２に対する応答ＲＥＳを実行できる。
【００２８】
これに対し、図５の（ｂ）の例では、ＤＳＰ３０は、時刻ｔ０の割り込み信号ＩＮＴ２をトリガにして、電圧制御モードＭＤ２から通常モードＭＤ０に遷移する。通常モードＭＤ０に復帰するまでに復帰時間ＲＴ２０かかるため、ＤＳＰ３０は、時刻ｔ０から復帰時間ＲＴ２０後の時刻ｔ１２に、割り込み処理ＩＮＴ２に対する応答ＲＥＳのための演算を開始する。上述した図４で説明したように、復帰時間ＲＴ２０が割り込み処理ＩＮＴ２の復帰制約時間ＲＬＴ２より大きいため、ＤＳＰ３０は、制約時間ＬＴ２を過ぎた時刻ｔ２２に、割り込み処理ＩＮＴ２に対する応答ＲＥＳを実行する。すなわち、割り込み信号ＩＮＴ２を受ける前のＤＳＰ３０の動作モードが電圧制御モードＭＤ２の場合、ＤＳＰ３０は、割り込み処理ＩＮＴ２に対する応答ＲＥＳを制約時間ＬＴ２内に実施できない。なお、この実施形態では、例えば、後述する図６に示すモード選択テーブル５２を用いることにより、割り込み処理ＩＮＴが実施される前のＤＳＰ３０の動作モードを、制約時間ＬＴを満足する適切な動作モードに設定する。
【００２９】
図６は、図１に示したモード選択テーブル５２の一例を示している。モード選択テーブル５２では、割り込み処理ＩＮＴの状態は、復帰制約時間ＲＬＴと復帰時間ＲＴとの関係に基づいて分類されている。例えば、“ＩＮＴ１未”の列は、割り込み処理ＩＮＴ１が実施されていない状態に対応し、“ＩＮＴ２未”の列は、割り込み処理ＩＮＴ１が実施され、かつ、割り込み処理ＩＮＴ２が実施されていない状態に対応する。また、“ＩＮＴ３未”の列は、割り込み処理ＩＮＴ１、ＩＮＴ２が実施され、かつ、割り込み処理ＩＮＴ３が実施されていない状態に対応し、“ＩＮＴ４未”の列は、割り込み処理ＩＮＴ１−３が実施され、かつ、割り込み処理ＩＮＴ４が実施されていない状態に対応する。なお、“全て済み”の列は、割り込み処理ＩＮＴ１−４の全てが実施された状態に対応する。ここで、図の例では、“全て済み”の列と、“ＩＮＴ４未”の列とが互いに同じため、“ＩＮＴ４未”の列を、上述した“ＩＮＴ４未”の状態および“全て済み”の状態の両方に対応させてもよい。すなわち、“全て済み”の列を省いてもよい。
【００３０】
また、上述した図２で説明したように、各周期Ｔの開始時にメイン処理ＭＡＩＮが実施されるため、ＤＳＰ３０の動作モードは、周期Ｔの開始時までに、通常モードＭＤ０に復帰している必要がある。このため、モード選択テーブル５２では、周期Ｔの残り時間ＥＴ（次の周期Ｔが開始されるまでの時間）は、復帰時間ＲＴに基づいて分類されている。例えば、残り時間ＥＴが復帰時間ＲＴ３０より大きい場合、ＤＳＰ３０の動作モードは、通常モードＭＤ０および省電力モードＭＤ１−３の中から、未実施の割り込み処理ＩＮＴに基づいて選択される。また、例えば、残り時間ＥＴが復帰時間ＲＴ３０以下で、かつ、復帰時間ＲＴ２０より大きい場合、ＤＳＰ３０の動作モードは、次の周期Ｔの開始時までに通常モードＭＤ０に復帰している必要があるため、通常モードＭＤ０および省電力モードＭＤ１−２の中から選択される。
【００３１】
同様に、例えば、残り時間ＥＴが復帰時間ＲＴ２０以下で、かつ、復帰時間ＲＴ１０より大きい場合、ＤＳＰ３０の動作モードは、通常モードＭＤ０および省電力モードＭＤ１の中から選択される。なお、例えば、残り時間ＥＴが復帰時間ＲＴ１０以下の場合、ＤＳＰ３０は、割り込み処理ＩＮＴの状態に拘わらず、通常モードＭＤ０に設定される。すなわち、この実施形態では、モード選択テーブル５２を用いることにより、割り込み処理ＩＮＴが実施される前のＤＳＰ３０の動作モードを、割り込み処理ＩＮＴの状態および残り時間ＥＴに基づいて、適切な動作モードに設定できる。ここで、適切な動作モードとは、制約時間ＬＴを満足し、かつ、次の周期Ｔの開始時までに通常モードＭＤ０に復帰可能な動作モードである。
【００３２】
図７は、図１に示した割り込み状態レジスタ６０の一例を示している。割り込み状態レジスタ６０は、上述した図１で説明したように、周期Ｔ毎に割り込み処理ＩＮＴ１−４の発生履歴を保持する書き換え可能なレジスタである。例えば、割り込み状態レジスタ６０の状態ＣＯＮの“終了”は、割り込み処理ＩＮＴが終了したことを示し、“未”は、割り込み処理ＩＮＴが未実施であることを示している。なお、割り込み状態レジスタ６０の状態ＣＯＮは、周期Ｔの最初に、全て“未”に設定される。図の例では、割り込み処理ＩＮＴ１、ＩＮＴ３は、終了し、割り込み処理ＩＮＴ２、ＩＮＴ４は、未実施である。すなわち、図の割り込み状態レジスタ６０の情報は、周期Ｔの残り時間ＥＴ内のどこかで割り込み処理ＩＮＴ２、ＩＮＴ４が発生することを示している。なお、図の割り込み状態レジスタ６０が示す割り込み処理ＩＮＴの状態は、上述した図６に示したモード選択テーブル５２の“ＩＮＴ２未”の状態（割り込み処理ＩＮＴ１が実施され、かつ、割り込み処理ＩＮＴ２が実施されていない状態）に対応する。
【００３３】
図８は、図１に示した監視部７０の概要を示している。なお、図８は、割り込み処理ＩＮＴ１−４の１つに対応する信号生成部ＧＥＮを示し、残りの３つ割り込み処理ＩＮＴにそれぞれ対応する信号生成部ＧＥＮの記載を省略している。
【００３４】
図８の（ａ）に示すように、例えば、監視部７０の信号生成部ＧＥＮは、割り込み検出部ＤＥＣ、プログラムカウンタ格納レジスタＰＣＲＥＧおよび比較部ＣＭＰを有している。割り込み検出部ＤＥＣは、割り込み信号ＩＮＴを受け、割り込み処理ＩＮＴの発生を検出し、発生信号ＳＳＩＧを生成する。プログラムカウンタ格納レジスタＰＣＲＥＧは、割り込み信号ＩＮＴおよびプログラムカウンタ値ＰＣを受け、割り込み処理ＩＮＴの発生時のプログラムカウンタ値ＰＣ（復帰ポイント）を保持する。比較部ＣＭＰは、プログラムカウンタ値ＰＣと、プログラムカウンタ格納レジスタＰＣＲＥＧに保持されている値とを比較し、終了信号ＥＳＩＧを生成する。
【００３５】
ここで、例えば、割り込み処理ＩＮＴが終了した場合、プログラムは、割り込み処理ＩＮＴが発生したときのプログラムカウンタが示す値（復帰ポイント）から再開される。したがって、比較部ＣＭＰが受けるプログラムカウンタ値ＰＣとプログラムカウンタ格納レジスタＰＣＲＥＧに保持されている値（復帰ポイント）とを比較することにより、割り込み処理ＩＮＴの終了は、検出される。
【００３６】
例えば、図８の（ｂ）に示すように、割り込み信号ＩＮＴをトリガにして、発生信号ＳＳＩＧが出力され、復帰ポイントＶ１（割り込み処理ＩＮＴの発生時のプログラムカウンタ値ＰＣ）がプログラムカウンタ格納レジスタＰＣＲＥＧに保持される。そして、比較部ＣＭＰが順次受けるプログラムカウンタ値ＰＣがプログラムカウンタ格納レジスタＰＣＲＥＧに保持されている復帰ポイントＶ１に一致したときに、終了信号ＥＳＩＧが出力される。
【００３７】
なお、監視部７０は、各割り込み処理ＩＮＴ１−４に対応する信号生成部ＧＥＮの他に、メイン処理ＭＡＩＮの終了を検出するための信号生成部ＧＥＮを有している。例えば、メイン処理ＭＡＩＮの終了は、メイン処理ＭＡＩＮの終了を示すプログラムカウンタ値をプログラムカウンタ格納レジスタＰＣＲＥＧに予め保持させることにより、割り込み処理ＩＮＴの終了の検出と同様に、検出される。この場合、メイン処理ＭＡＩＮの終了を検出するための比較判定は、上述した図１に示した周期カウンタからの周期開始信号ＳＴをトリガにして開始される。例えば、メイン処理ＭＡＩＮの終了を示す信号は、監視部７０からモード制御部４０に転送される。図１では、メイン処理ＭＡＩＮの終了を示す信号の記載を省略している。なお、メイン処理ＭＡＩＮの終了は、ＤＳＰ３０からモード制御部４０に直接通知されてもよい。
【００３８】
図９は、ＤＳＰ３０の動作モードの制御方法の一例を示している。なお、図９は、モード制御部４０のステートの遷移を示している。先ず、周期Ｔの開始時にメイン処理ＭＡＩＮが実施されるため、周期Ｔの開始時のモード制御部４０の状態は、通常モードＭＤ０に対応するステートＳＴ０（開始ステート）である。そして、メイン処理ＭＡＩＮが終了したときに、モード制御部４０の状態は、ステートＳＴ０から判定ステートＳＴＪに遷移する。なお、メイン処理ＭＡＩＮ中に割り込み処理ＩＮＴが発生した場合、ＤＳＰ３０の動作モードは、省電力モードＭＤ１−３に移行することなく通常モードＭＤ０に維持される。この場合、仕掛かり中の処理（メイン処理ＭＡＩＮおよびメイン処理ＭＡＩＮ中に発生した割り込み処理ＩＮＴ）が終了したときに、モード制御部４０の状態は、ステートＳＴ０から判定ステートＳＴＪに遷移する。
【００３９】
判定ステートＳＴＪでは、モード制御部４０は、上述した図６に示したモード選択テーブル５２を参照し、残り時間ＥＴおよび未実施の割り込み処理ＩＮＴに対応する動作モードを選択する。ＤＳＰ３０の動作モードが通常モードＭＤ０に設定された場合、モード制御部４０の状態は、判定ステートＳＴＪからステートＳＴ０に遷移する。ＤＳＰ３０の動作モードが周波数制御モードＭＤ１に設定された場合、モード制御部４０の状態は、判定ステートＳＴＪから周波数制御モードＭＤ１に対応するステートＳＴ１に遷移する。ＤＳＰ３０の動作モードが電圧制御モードＭＤ２に設定された場合、モード制御部４０の状態は、判定ステートＳＴＪから電圧制御モードＭＤ２に対応するステートＳＴ２に遷移する。ＤＳＰ３０の動作モードが電源制御モードＭＤ３に設定された場合、モード制御部４０の状態は、判定ステートＳＴＪから電源制御モードＭＤ３に対応するステートＳＴ３に遷移する。
【００４０】
ステートＳＴ１−３では、モード制御部４０は、割り込み処理ＩＮＴの発生および残り時間ＥＴを監視し、割り込み処理ＩＮＴが発生したとき、および残り時間ＥＴが復帰時間ＲＴ以下になるときに、ＤＳＰ３０の動作モードを通常モードＭＤ０に設定する。すなわち、割り込み処理ＩＮＴが発生したとき、および残り時間ＥＴが復帰時間ＲＴ以下になるときに、モード制御部４０の状態は、各ステートＳＴ１−３からステートＳＴ０に遷移する。このように、ステートＳＴ１−３（省電力モードＭＤ１−３）では、図６に示したモード選択テーブル５２を参照することなく、割り込み処理ＩＮＴの発生および復帰時間ＲＴ以下になる残り時間ＥＴの検出をトリガにして、モード制御部４０の状態が、各ステートＳＴ１−３からステートＳＴ０に遷移する。
【００４１】
割り込み処理ＩＮＴの発生により、モード制御部４０の状態がステートＳＴ０に遷移した場合、モード制御部４０は、割り込み処理ＩＮＴが終了したときに、ＤＳＰ３０の動作モードを通常モードＭＤ０に設定する。すなわち、割り込み処理ＩＮＴが終了したときに、モード制御部４０の状態は、ステートＳＴ０から判定ステートＳＴＪに遷移する。なお、モード制御部４０は、割り込み処理ＩＮＴが終了したときに、上述した図１で説明したように、割り込み状態レジスタ６０を更新する。このように、モード制御部４０は、割り込み処理ＩＮＴの状態および残り時間ＥＴに応じて、上述の動作を繰り返す。
【００４２】
図１０は、図９に示した判定ステートＳＴＪの動作の一例を示している。なお、図１０に示した処理は、モード制御部４０により実施される。
【００４３】
先ず、処理２００では、モード制御部４０は、割り込み状態レジスタ６０を参照し、判定ステートＳＴＪに推移した時点で、未実施の割り込み処理ＩＮＴが存在するか否かを判定する。未実施の割り込み処理ＩＮＴが存在する場合（処理２００のＹｅｓ）、モード制御部４０の動作は、処理２１０に移り、未実施の割り込み処理ＩＮＴが存在しない場合（処理２００のＮｏ）、モード制御部４０の動作は、処理２２０に移る。
【００４４】
処理２１０では、モード制御部４０は、未実施の割り込み処理ＩＮＴのうち、復帰制約時間ＲＬＴが最小の割り込み処理ＩＮＴを検出する。例えば、処理２００で参照された割り込み状態レジスタ６０の状態ＣＯＮが上述した図７に示した割り込み状態レジスタ６０の内容の場合、モード制御部４０は、復帰制約時間ＲＬＴが最小の割り込み処理ＩＮＴとして、割り込み処理ＩＮＴ２を検出する。処理２２０では、モード制御部４０は、周期カウンタ１００から受けた時刻情報ＴＭに基づいて、周期Ｔの残り時間ＥＴを検出する。
【００４５】
処理２３０では、モード制御部４０は、上述した図６に示したモード選択テーブル５２を参照し、割り込み処理ＩＮＴの状態および残り時間ＥＴに対応する動作モードを選択する。例えば、処理２１０で割り込み処理ＩＮＴ２が検出され、処理２２０で検出された残り時間ＥＴが復帰時間ＲＴ３０より大きい場合、モード選択テーブル５２の“ＩＮＴ２未”の列から、“ＥＴ＞ＲＴ３０”の行の周波数制御モードＭＤ１が選択される。あるいは、例えば、処理２１０で割り込み処理ＩＮＴ２が検出され、処理２２０で検出された残り時間ＥＴが復帰時間ＲＴ１０以下の場合、モード選択テーブル５２の“ＩＮＴ２未”の列から、“ＲＴ１０≧ＥＴ＞０”の行の通常モードＭＤ０が選択される。
【００４６】
そして、処理２４０では、モード制御部４０は、ＤＳＰ３０の動作モードを、処理２３０で選択した動作モードに設定する。例えば、モード制御部４０は、処理２３０で選択した動作モードを示すモード信号ＭＩＮＦを、電力制御部９０に出力する。
【００４７】
図１１は、ＤＳＰ３０の動作モードの遷移の一例を示している。図中の網掛けは、メイン処理ＭＡＩＮおよび割り込み処理ＩＮＴのいずれかがＤＳＰ３０により実施されている期間を示している。
【００４８】
周期Ｔの開始時にメイン処理ＭＡＩＮが実施されるため、周期Ｔの開始時のＤＳＰ３０の動作モードは、通常モードＭＤ０である（図１１の（ａ））。なお、図の最初の周期Ｔでは、ＤＳＰ３０がメイン処理ＭＡＩＮを実施している最中に、割り込み処理ＩＮＴ４、ＩＮＴ１、ＩＮＴ３が間隔を置いて発生している（図１１の（ｂ）、（ｃ）、（ｄ））。このため、ＤＳＰ３０は、メイン処理ＭＡＩＮが終了するまで通常モードＭＤ０で動作する（図１１の（ｅ））。
【００４９】
メイン処理ＭＡＩＮが終了したとき、ＤＳＰ３０の動作モードは、通常モードＭＤ０から周波数制御モードＭＤ１に遷移する（図１１の（ｆ））。例えば、上述した図９で説明したように、メイン処理ＭＡＩＮが終了したとき、モード制御部４０の状態は、ステートＳＴ０から判定ステートＳＴＪに遷移する。この時点では、割り込み状態レジスタ６０は、割り込み処理ＩＮＴ１、ＩＮＴ３、ＩＮＴ４が終了したことを示している。また、周期Ｔの残り時間ＥＴは、復帰時間ＲＴ３０より大きい。このため、モード制御部４０は、モード選択テーブル５２の“ＩＮＴ２未”の列から、“ＥＴ＞ＲＴ３０”の行の周波数制御モードＭＤ１を選択し、ＤＳＰ３０の動作モードを周波数制御モードＭＤ１に設定する。
【００５０】
周波数制御モードＭＤ１（モード制御部４０のステートＳＴ１）では、モード制御部４０は、割り込み処理ＩＮＴの発生および残り時間ＥＴを監視する。そして、割り込み処理ＩＮＴ２が発生したときに、ＤＳＰ３０の動作モードは、周波数制御モードＭＤ１から通常モードＭＤ０に遷移する（図１１の（ｇ））。
【００５１】
割り込み処理ＩＮＴ２が終了したとき、ＤＳＰ３０の動作モードは、通常モードＭＤ０から電源制御モードＭＤ３に遷移する（図１１の（ｈ））。例えば、割り込み処理ＩＮＴ２が終了したときに、割り込み状態レジスタ６０が更新され、モード制御部４０の状態は、ステートＳＴ０から判定ステートＳＴＪに遷移する。この時点では、割り込み状態レジスタ６０は、割り込み処理ＩＮＴ１−４の全てが終了したことを示している。また、周期Ｔの残り時間ＥＴは、復帰時間ＲＴ３０より大きい。このため、モード制御部４０は、モード選択テーブル５２の“全て済み”の列から、“ＥＴ＞ＲＴ３０”の行の電源制御モードＭＤ３を選択し、ＤＳＰ３０の動作モードを電源制御モードＭＤ３に設定する。
【００５２】
電源制御モードＭＤ３（モード制御部４０のステートＳＴ３）では、モード制御部４０は、割り込み処理ＩＮＴの発生および残り時間ＥＴを監視する。そして、残り時間ＥＴが復帰時間ＲＴ３０以下になったときに、ＤＳＰ３０の動作モードは、電源制御モードＭＤ３から通常モードＭＤ０に遷移する（図１１の（ｉ））。これにより、次の周期Ｔの開始時に、ＤＳＰ３０は、通常モードＭＤ０で動作できる（図１１の（ｊ））。なお、図の２番目の周期Ｔの開始時に、割り込み状態レジスタ６０は、クリアされる（状態ＣＯＮが全て“未”に設定される）。
【００５３】
２番目の周期Ｔでは、ＤＳＰ３０がメイン処理ＭＡＩＮを実施している最中に、割り込み処理ＩＮＴは、発生していない。このため、メイン処理ＭＡＩＮが終了し、モード制御部４０の状態がステートＳＴ０から判定ステートＳＴＪに遷移した時点では、割り込み状態レジスタ６０は、割り込み処理ＩＮＴ１−４が未実施であることを示している。また、メイン処理ＭＡＩＮが終了した時点では、未実施の割り込み処理ＩＮＴ１−４のうち、復帰制約時間ＲＬＴが最小の割り込み処理ＩＮＴは、割り込み処理ＩＮＴ１であり、残り時間ＥＴは、復帰時間ＲＴ３０より大きい。したがって、モード制御部４０は、モード選択テーブル５２の“ＩＮＴ１未”の列から、“ＥＴ＞ＲＴ３０”の行の通常モードＭＤ０を選択する。このため、ＤＳＰ３０の動作モードは、メイン処理ＭＡＩＮの終了後も、通常モードＭＤ０に維持される（図１１の（ｋ））。
【００５４】
メイン処理ＭＡＩＮの終了後に発生した割り込み処理ＩＮＴ１が終了したとき、ＤＳＰ３０の動作モードは、通常モードＭＤ０から周波数制御モードＭＤ１に遷移する（図１１の（ｌ））。例えば、割り込み処理ＩＮＴ１が終了した時点では、未実施の割り込み処理ＩＮＴ２−４のうち、復帰制約時間ＲＬＴが最小の割り込み処理ＩＮＴは、割り込み処理ＩＮＴ２であり、残り時間ＥＴは、復帰時間ＲＴ３０より大きい。このため、モード制御部４０は、モード選択テーブル５２の“ＩＮＴ２未”の列から、“ＥＴ＞ＲＴ３０”の行の周波数制御モードＭＤ１を選択し、ＤＳＰ３０の動作モードを周波数制御モードＭＤ１に設定する。
【００５５】
割り込み処理ＩＮＴ２の発生により、ＤＳＰ３０の動作モードは、周波数制御モードＭＤ１から通常モードＭＤ０に遷移する（図１１の（ｍ））。割り込み処理ＩＮＴ２が実施されている最中に、割り込み処理ＩＮＴ３が発生しているため、ＤＳＰ３０は、割り込み処理ＩＮＴ２、ＩＮＴ３が終了するまで通常モードＭＤ０で動作する（図１１の（ｎ））。割り込み処理ＩＮＴ３が終了したとき、ＤＳＰ３０の動作モードは、割り込み処理ＩＮＴ４が未実施で、かつ、残り時間ＥＴが復帰時間ＲＴ３０より大きい条件に対応する電源制御モードＭＤ３に、通常モードＭＤ０から遷移する（図１１の（ｏ））。そして、割り込み処理ＩＮＴ４の発生により、ＤＳＰ３０の動作モードは、電源制御モードＭＤ３から通常モードＭＤ０に遷移する（図１１の（ｐ））。
【００５６】
割り込み処理ＩＮＴ４が終了したとき、ＤＳＰ３０の動作モードは、通常モードＭＤ０から電圧制御モードＭＤ２に遷移する（図１１の（ｑ））。例えば、割り込み処理ＩＮＴ４が終了したときに、割り込み状態レジスタ６０が更新され、モード制御部４０の状態は、ステートＳＴ０から判定ステートＳＴＪに遷移する。この時点では、割り込み状態レジスタ６０は、割り込み処理ＩＮＴ１−４の全てが終了したことを示している。また、周期Ｔの残り時間ＥＴは、復帰時間ＲＴ３０より小さく、復帰時間ＲＴ２０より大きい。このため、モード制御部４０は、モード選択テーブル５２の“全て済み”の列から、“ＲＴ３０≧ＥＴ＞ＲＴ２０”の行の電圧制御モードＭＤ２を選択し、ＤＳＰ３０の動作モードを電圧制御モードＭＤ２に設定する。
【００５７】
残り時間ＥＴが復帰時間ＲＴ２０以下になったときに、ＤＳＰ３０の動作モードは、電圧制御モードＭＤ２から通常モードＭＤ０に遷移する（図１１の（ｒ））。これにより、次の周期Ｔの開始時に、ＤＳＰ３０は、通常モードＭＤ０で動作できる（図１１の（ｓ））。
【００５８】
このように、この実施形態では、未実施の割り込み処理ＩＮＴの復帰制約時間ＲＬＴおよび残り時間ＥＴが大きい場合、ＤＳＰ３０の動作モードを、通常モードＭＤ０より消費電力の小さい省電力モードＭＤ１−３に設定することができる。特に、この実施形態では、割り込み処理ＩＮＴの状態および残り時間ＥＴに応じて、ＤＳＰ３０の動作モードを、周波数制御モードＭＤ１より省電力効果の高い（消費電力の小さい）電圧制御モードＭＤ２や電源制御モードＭＤ３に設定することができる。これにより、消費電力を効率よく小さくできる。なお、周波数制御モードＭＤ１より復帰時間ＲＴの大きい電圧制御モードＭＤ２や電源制御モードＭＤ３に設定された場合でも、上述したように、ＤＳＰ３０は、割り込み処理ＩＮＴの制約時間ＬＴを満足でき、かつ、次の周期Ｔの開始時までに通常モードＭＤ０に復帰できる。すなわち、この実施形態では、ＤＳＰ３０が用いられているシステム全体の性能を劣化させることなく、省電力化できる。
【００５９】
以上、この実施形態では、モード制御部４０は、メイン処理ＭＡＩＮおよび割り込み処理ＩＮＴのいずれも実施されない期間では、未実施の割り込み処理ＩＮＴの制約時間ＬＴ（より詳細には、制約時間ＬＴに基づいて算出される復帰制約時間ＲＬＴ）と、復帰時間ＲＴと、周期Ｔの残り時間ＥＴとに基づいて、ＤＳＰ３０の動作モードを設定する。この結果、この実施形態では、プロセッサシステム１０の性能を劣化させずに省電力化できる。
【００６０】
図１２は、別の実施形態におけるＤＳＰ３０の動作モードの遷移の一例を示している。この実施形態では、周期Ｔの終了間際における動作モードの制御方法が、上述した図１１と相違している。すなわち、この実施形態では、モード制御部４０の動作およびモード選択テーブル５２が、上述した図１−図１１に示した実施形態と相違している。その他の動作および構成は、図１−図１１と同じである。図１−図１１で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【００６１】
図中の過渡時間ＴＲＴ１は、電圧制御モードＭＤ２から周波数制御モードＭＤ１に遷移するまでの時間を示し、過渡時間ＴＲＴ２は、電源制御モードＭＤ３から電圧制御モードＭＤ２に遷移するまでの時間を示している。例えば、過渡時間ＴＲＴは、省電力化のための制御方法、製造プロセスおよびレイアウト等が決まった時点で算出される。
【００６２】
また、図中の時間ＲＴ１２は、周期Ｔの終了間際に、ＤＳＰ３０の動作モードを周波数制御モードＭＤ１から通常モードＭＤ０に遷移させる際のトリガとなる残り時間を示している。時間ＲＴ２２は、周期Ｔの終了間際に、ＤＳＰ３０の動作モードを電圧制御モードＭＤ２から周波数制御モードＭＤ１に遷移させる際のトリガとなる残り時間を示している。時間ＲＴ３２は、周期Ｔの終了間際に、ＤＳＰ３０の動作モードを電源制御モードＭＤ３から電圧制御モードＭＤ２に遷移させる際のトリガとなる残り時間を示している。以下、時間ＲＴ１２、ＲＴ２２、ＲＴ３２を、それぞれ第２復帰時間ＲＴ１２、ＲＴ２２、ＲＴ３２とも称する。
【００６３】
図中の期間ＫＴ１は、例えば、第２復帰時間ＲＴ１２と復帰時間ＲＴ１０との差分であり、周波数制御モードＭＤ１から通常モードＭＤ０に遷移したときに、周期Ｔが終了するまでの時間（次の周期Ｔが開始するまでの時間）を示している。また、例えば、期間ＫＴ２は、電圧制御モードＭＤ２から周波数制御モードＭＤ１に遷移したときに、周波数制御モードＭＤ１に維持される最大時間を示し、期間ＫＴ３は、電源制御モードＭＤ３から電圧制御モードＭＤ２に遷移したときに、電圧制御モードＭＤ２に維持される最大時間を示している。
【００６４】
図の最初の周期Ｔでは、割り込み処理ＩＮＴ２の終了により、ＤＳＰ３０の動作モードが通常モードＭＤ０から電源制御モードＭＤ３に遷移するまで（図１２の（ｈ））、プロセッサシステム１０の動作は、上述した図１１に示した最初の周期Ｔと同じである。
【００６５】
電源制御モードＭＤ３（モード制御部４０のステートＳＴ３）では、モード制御部４０は、割り込み処理ＩＮＴの発生および残り時間ＥＴを監視する。そして、残り時間ＥＴが第２復帰時間ＲＴ３２以下になったときに、ＤＳＰ３０の動作モードは、電源制御モードＭＤ３から１つ上の電圧制御モードＭＤ２に遷移する（図１２の（ｉ１））。その後、残り時間ＥＴが第２復帰時間ＲＴ２２以下になったときに、ＤＳＰ３０の動作モードは、電圧制御モードＭＤ２から１つ上の周波数制御モードＭＤ１に遷移する（図１２の（ｉ２））。そして、残り時間ＥＴが第２復帰時間ＲＴ１２以下になったときに、ＤＳＰ３０の動作モードは、周波数制御モードＭＤ１から１つ上の通常モードＭＤ０に遷移する（図１２の（ｉ３））。このように、この実施形態では、周期Ｔの終了間際にＤＳＰ３０の動作モードが省電力モードＭＤ１−３から通常モードＭＤ０に戻る場合、ＤＳＰ３０の動作モードは、１つ上の動作モードを経由して段階的に推移する。
【００６６】
図の２番目の周期Ｔでは、割り込み処理ＩＮＴ３の終了により、ＤＳＰ３０の動作モードが通常モードＭＤ０から電源制御モードＭＤ３に遷移するまで（図１２の（ｏ））、プロセッサシステム１０の動作は、上述した図１１に示した最初の周期Ｔと同じである。
【００６７】
電源制御モードＭＤ３（モード制御部４０のステートＳＴ３）では、モード制御部４０は、割り込み処理ＩＮＴの発生および残り時間ＥＴを監視する。そして、残り時間ＥＴが第２復帰時間ＲＴ３２以下になったときに、ＤＳＰ３０の動作モードは、電源制御モードＭＤ３から１つ上の電圧制御モードＭＤ２に遷移する（図１２の（ｐ１））。そして、残り時間ＥＴが第２復帰時間ＲＴ２２以下になる前に発生した割り込み処理ＩＮＴ４により、ＤＳＰ３０の動作モードは、電源制御モードＭＤ３から通常モードＭＤ０に遷移する（図１２の（ｐ２））。このように、周期Ｔの終了間際にＤＳＰ３０の動作モードを段階的に推移させているため、周期Ｔの終了間際に割り込み処理ＩＮＴが発生したときに、ＤＳＰ３０は、短い復帰時間（図の例では、復帰時間ＲＴ３０より小さい復帰時間ＲＴ２０）で通常モードＭＤ０の動作を開始できる。
【００６８】
割り込み処理ＩＮＴ４が終了したとき、ＤＳＰ３０の動作モードは、通常モードＭＤ０から周波数制御モードＭＤ１に遷移する（図１２の（ｑ１））。例えば、割り込み処理ＩＮＴ４が終了したときに、割り込み状態レジスタ６０が更新され、モード制御部４０の状態は、ステートＳＴ０から判定ステートＳＴＪに遷移する。この時点では、割り込み状態レジスタ６０は、割り込み処理ＩＮＴ１−４の全てが終了したことを示している。また、周期Ｔの残り時間ＥＴは、第２復帰時間ＲＴ２２より小さく、第２復帰時間ＲＴ１２より大きい。このため、モード制御部４０は、後述する図１３に示すモード選択テーブル５３の“全て済み”の列から、“ＲＴ２２≧ＥＴ＞ＲＴ１２”の行の周波数制御モードＭＤ１を選択し、ＤＳＰ３０の動作モードを周波数制御モードＭＤ１に設定する。
【００６９】
そして、残り時間ＥＴが復帰時間ＲＴ１２以下になったときに、ＤＳＰ３０の動作モードは、周波数制御モードＭＤ１から通常モードＭＤ０に遷移する（図１２の（ｒ１））。これにより、各周期Ｔの開始時に、ＤＳＰ３０は、通常モードＭＤ０で動作できる（図１１の（ａ）、（ｊ）、（ｓ））。なお、各周期Ｔの開始時に、割り込み状態レジスタ６０は、クリアされる（状態ＣＯＮが全て“未”に設定される）。
【００７０】
図１３は、図１２に示した動作を実現するためのモード選択テーブル５３の一例を示している。モード選択テーブル５３は、ＤＳＰ３０の動作モードを分類するための残り時間ＥＴの範囲が、上述した図６に示したモード選択テーブル５２と相違している。その他の構成は、図６に示したモード選択テーブル５２と同じである。例えば、モード選択テーブル５３では、周期Ｔの残り時間ＥＴ（次の周期Ｔが開始されるまでの時間）は、第２復帰時間ＲＴ１２、ＲＴ２２、ＲＴ３２に基づいて分類されている。
【００７１】
例えば、残り時間ＥＴが第２復帰時間ＲＴ３２より大きい場合、ＤＳＰ３０の動作モードは、通常モードＭＤ０および省電力モードＭＤ１−３の中から選択される。また、例えば、残り時間ＥＴが第２復帰時間ＲＴ３２以下で、かつ、第２復帰時間ＲＴ２２より大きい場合、ＤＳＰ３０の動作モードは、通常モードＭＤ０および省電力モードＭＤ１−２の中から選択される。同様に、例えば、残り時間ＥＴが第２復帰時間ＲＴ２２以下で、かつ、第２復帰時間ＲＴ１２より大きい場合、ＤＳＰ３０の動作モードは、通常モードＭＤ０および省電力モードＭＤ１の中から選択される。なお、例えば、残り時間ＥＴが第２復帰時間ＲＴ１２以下の場合、ＤＳＰ３０は、割り込み処理ＩＮＴの状態に拘わらず、通常モードＭＤ０に設定される。
【００７２】
図１４は、図１２に示した動作を実現するためのＤＳＰ３０の動作モードの制御方法の一例を示している。なお、図１４は、モード制御部４０のステートの遷移を示している。図１４の動作は、ステートＳＴ１−３の動作が上述した図９と相違している。その他の動作は、上述した図９と同じである。
【００７３】
ステートＳＴ１−３では、モード制御部４０は、割り込み処理ＩＮＴの発生および残り時間ＥＴを監視する。そして、モード制御部４０は、割り込み処理ＩＮＴが発生したとき、ＤＳＰ３０の動作モードを通常モードＭＤ０に設定し、残り時間ＥＴが第２復帰時間ＲＴ（ＲＴ１２、ＲＴ２２、ＲＴ３２）以下になるときに、ＤＳＰ３０の動作モードを１つ上の動作モードに設定する。このように、例えば、省電力モードＭＤ１−３では、図１３に示したモード選択テーブル５３が参照されることなく、第２復帰時間ＲＴ以下になる残り時間ＥＴの検出をトリガにして、ＤＳＰ３０の動作モードは、１つ上の動作モードに遷移する。
【００７４】
図１５は、図１４に示したステートＳＴ１−３の動作の一例を示している。なお、図１５に示した処理は、モード制御部４０により実施される。
【００７５】
先ず、処理３００では、モード制御部４０は、割り込み処理ＩＮＴが発生したか否かを判定する。割り込み処理ＩＮＴが発生した場合（処理３００のＹｅｓ）、モード制御部４０の動作は、処理３２０に移り、モード制御部４０は、ＤＳＰ３０の動作モードを通常モードＭＤ０に設定する。また、割り込み処理ＩＮＴが発生していない場合（処理３００のＮｏ）、モード制御部４０の動作は、処理３１０に移る。
【００７６】
処理３１０では、モード制御部４０は、周期Ｔ内の残り時間ＥＴが第２復帰時間ＲＴ（ＲＴ１２、ＲＴ２２、ＲＴ３２）以下か否かを判定する。残り時間ＥＴが第２復帰時間ＲＴ以下の場合（処理３１０のＹｅｓ）、モード制御部４０の動作は、処理３３０に移り、モード制御部４０は、ＤＳＰ３０の動作モードを１つ上の動作モードに設定する。また、残り時間ＥＴが第２復帰時間ＲＴより大きい場合（処理３１０のＮｏ）、モード制御部４０の動作は、処理３００に移る。このように、処理３００、３１０により、割り込み処理ＩＮＴの発生および残り時間ＥＴが監視される。
【００７７】
以上、この実施形態においても、上述した図１−図１１で説明した実施形態と同様の効果を得ることができる。
【００７８】
図１６は、別の実施形態における割り込み状態レジスタ６２の一例を示している。この実施形態のプロセッサシステム１０では、上述した図１に示した割り込み状態レジスタ６０の代わりに割り込み状態レジスタ６２が設けられている。また、割り込み状態レジスタ６２の更新動作が上述した図１−図１１に示した実施形態と相違している。その他の動作および構成は、図１−図１１と同じである。図１−図１１で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。図中の“終了”および“未”の意味は、上述した図７と同じである。
【００７９】
割り込み状態レジスタ６２は、周期Ｔ毎に割り込み処理ＩＮＴ１−４の発生履歴を保持する書き換え可能なレジスタである。割り込み状態レジスタ６２の設定周期ＰＥには、割り込み処理ＩＮＴ１−４毎に、発生周期が予め設定される。例えば、設定周期ＰＥに“０”が設定されている割り込み処理ＩＮＴ１、ＩＮＴ４は、各周期Ｔで発生する。また、例えば、設定周期ＰＥに“１”が設定されている割り込み処理ＩＮＴ２は、２周期Ｔに１回の割合で発生する。また、例えば、設定周期ＰＥに“２”が設定されている割り込み処理ＩＮＴ３は、３周期Ｔに１回の割合で発生する。
【００８０】
すなわち、割り込み状態レジスタ６２の設定周期ＰＥに設定されている値（以下、単に、設定周期ＰＥとも称する）は、割り込み処理ＩＮＴが発生する周期Ｔ間の周期Ｔの数を示している。周期カウンタ値ＴＣＶは、割り込み処理ＩＮＴが発生した後の周期Ｔの回数を示し、周期Ｔの開始毎に設定周期ＰＥまでカウントアップされる。なお、前回の周期カウンタ値ＴＣＶが設定周期ＰＥまでカウントアップされている場合、周期カウンタ値ＴＣＶは“０”に戻される。すなわち、正常に動作している場合、周期カウンタ値ＴＣＶは、割り込み処理ＩＮＴが発生する予定の周期Ｔの開始時に、“０”に設定される。
【００８１】
図１７は、図１６に示した割り込み状態レジスタ６２の周期カウンタ値ＴＣＶの更新動作の一例を示している。例えば、周期カウンタ値ＴＣＶの更新動作は、各周期Ｔの開始時に実施される。処理４００では、前回の周期カウンタ値ＴＣＶ（前の周期Ｔに設定された周期カウンタ値ＴＣＶ）が設定周期ＰＥより小さく、かつ、割り込み処理ＩＮＴが終了しているか否かを判定する。前回の周期カウンタ値ＴＣＶが設定周期ＰＥより小さく、かつ、割り込み処理ＩＮＴが終了している場合（処理４００のＹｅｓ）、処理４１０において、周期カウンタ値ＴＣＶはカウントアップしされ、状態ＣＯＮは“終了”に設定される。一方、前回の周期カウンタ値ＴＣＶが設定周期ＰＥと等しい場合、あるいは、割り込み処理ＩＮＴが終了していない場合（処理４００のＮｏ）、処理４２０において、周期カウンタ値ＴＣＶは“０”に設定され、状態ＣＯＮは“未”に設定される。
【００８２】
図１８は、図１６に示した割り込み状態レジスタ６２の更新動作の一例を示している。なお、図１８は、割り込み状態レジスタ６２の周期カウンタ値ＴＣＶおよび状態ＣＯＮのうち、割り込み処理ＩＮＴ１−３に対応する周期カウンタ値ＴＣＶ１−３および状態ＣＯＮ１−３の更新動作を示している。また、図１８では、上述した図１６に示した設定周期ＰＥが“０”に設定されている割り込み処理ＩＮＴ４に対応する周期カウンタ値ＴＣＶおよび状態ＣＯＮの更新動作の記載を省略している。例えば、割り込み処理ＩＮＴ４に対応する周期カウンタ値ＴＣＶおよび状態ＣＯＮの更新動作は、設定周期ＰＥが“０”に設定されている割り込み処理ＩＮＴ１に対応する周期カウンタ値ＴＣＶ１および状態ＣＯＮ１の更新動作と同じである。
【００８３】
上述した図１６で説明したように、周期カウンタ値ＴＣＶは、割り込み処理ＩＮＴが発生する予定の周期Ｔの開始時に、“０”に設定される。このため、例えば、割り込み状態レジスタ６２は、起動直後に、上述した図１に示した周期開始信号ＳＴにより、図の周期Ｔ０の開始時の状態にリセットされる。例えば、割り込み処理ＩＮＴ１に対応する周期カウンタ値ＴＣＶ１および状態ＣＯＮ１は、起動直後のリセットにより、“０”および“未”にそれぞれ設定される。
【００８４】
また、例えば、割り込み処理ＩＮＴ２に対応する周期カウンタ値ＴＣＶ２および状態ＣＯＮ２は、起動直後のリセットにより、“１”および“終了”にそれぞれ設定される。同様に、例えば、割り込み処理ＩＮＴ３に対応する周期カウンタ値ＴＣＶ３および状態ＣＯＮ３は、起動直後のリセットにより、“１”および“終了”にそれぞれ設定される。なお、例えば、周期Ｔ１で割り込み処理ＩＮＴ３が最初に発生する場合、起動直後のリセットにより、周期カウンタ値ＴＣＶ３および状態ＣＯＮ３は、“２”および“終了”にそれぞれ設定される。周期Ｔ１以降は、上述した図１７に示した動作により、周期カウンタ値ＴＣＶが更新される。また、割り込み状態レジスタ６２の状態ＣＯＮは、割り込み処理ＩＮＴの終了により、“終了”に更新される。
【００８５】
例えば、図１６に示した設定周期ＰＥに“０”が設定されている割り込み処理ＩＮＴ１では、前の周期Ｔに設定された周期カウンタ値ＴＣＶ１が設定周期ＰＥより小さくなることがないため（図１７に示した処理４００のＮｏ）、周期カウンタ値ＴＣＶ１は、常に“０”に設定される。また、例えば、割り込み処理ＩＮＴ１が正常に発生しなかった周期Ｔ３では、状態ＣＯＮ１は、“終了”に設定されることなく、“未”に維持される。そして、周期Ｔ４の開始時に、図１７に示した処理４２０により、周期カウンタ値ＴＣＶ１および状態ＣＯＮ１は、“０”および“未”にそれぞれ設定される。これにより、周期Ｔ４以降では、ＤＳＰ３０は、割り込み処理ＩＮＴ１の処理を正常に実施できる。
【００８６】
例えば、設定周期ＰＥに“１”が設定されている割り込み処理ＩＮＴ２では、周期Ｔ１の開始時に、周期Ｔ０の周期カウンタ値ＴＣＶ２および状態ＣＯＮ２が“１”および“終了”にそれぞれ設定されているため（図１７に示した処理４００のＮｏ）、周期カウンタ値ＴＣＶ２および状態ＣＯＮ２は、“０”および“未”にそれぞれ設定される。そして、周期Ｔ２の開始時に、周期Ｔ１の周期カウンタ値ＴＣＶ２および状態ＣＯＮ２が“０”および“終了”にそれぞれ設定されているため（図１７に示した処理４００のＹｅｓ）、周期カウンタ値ＴＣＶ２は、“１”にカウントアップされ、状態ＣＯＮ２は、“終了”に維持される。
【００８７】
なお、例えば、割り込み処理ＩＮＴ２が正常に発生しなかった周期Ｔ５では、状態ＣＯＮ２は、“未”に維持される。そして、周期Ｔ６の開始時に、図１７に示した処理４２０により、周期カウンタ値ＴＣＶ２および状態ＣＯＮ２は、“０”および“未”にそれぞれ設定される。周期Ｔ６で割り込み処理ＩＮＴ２が発生したため、周期Ｔ７の開始時に、図１７に示した処理４１０により、周期カウンタ値ＴＣＶ２は、“１”にカウントアップされ、状態ＣＯＮ２は、“終了”に維持される。そして、周期Ｔ８の開始時に、図１７に示した処理４２０により、周期カウンタ値ＴＣＶ２および状態ＣＯＮ２は、“０”および“未”にそれぞれ設定される。このように、周期Ｔ６以降では、割り込み処理ＩＮＴ２は、２周期Ｔに１回の割合で発生する正常な状態に戻る。これにより、周期Ｔ６以降では、周期カウンタ値ＴＣＶ２は、割り込み処理ＩＮＴ２が発生する予定の周期Ｔの開始時に、“０”に設定される。
【００８８】
例えば、設定周期ＰＥに“２”が設定されている割り込み処理ＩＮＴ３では、周期Ｔ１の開始時に、周期Ｔ０の周期カウンタ値ＴＣＶ３および状態ＣＯＮ３が“１”および“終了”にそれぞれ設定されているため（図１７に示した処理４００のＹｅｓ）、周期カウンタ値ＴＣＶ３は、“２”にカウントアップされ、状態ＣＯＮ３は、“終了”に維持される。そして、周期Ｔ２の開始時に、周期Ｔ１の周期カウンタ値ＴＣＶ３および状態ＣＯＮ３が“２”および“終了”にそれぞれ設定されているため（図１７に示した処理４００のＮｏ）、周期カウンタ値ＴＣＶ３および状態ＣＯＮ３は、“０”および“未”にそれぞれ設定される。そして、周期Ｔ３の開始時に、周期Ｔ２の周期カウンタ値ＴＣＶ３および状態ＣＯＮ３が“０”および“終了”にそれぞれ設定されているため（図１７に示した処理４００のＹｅｓ）、周期カウンタ値ＴＣＶ３は、“１”にカウントアップされ、状態ＣＯＮ３は、“終了”に維持される。
【００８９】
なお、例えば、周期Ｔ６では、予定外の割り込み処理ＩＮＴ３が発生している。周期Ｔ６では、割り込み処理ＩＮＴ３が発生する前に、状態ＣＯＮ３が“終了”に設定されているため、割り込み処理ＩＮＴ３の発生に拘わらず、状態ＣＯＮ３は、“終了”に維持される。そして、周期Ｔ７の開始時に、周期Ｔ６の周期カウンタ値ＴＣＶ３および状態ＣＯＮ３が“１”および“終了”にそれぞれ設定されているため（図１７に示した処理４００のＹｅｓ）、周期カウンタ値ＴＣＶ３は、“２”にカウントアップされ、状態ＣＯＮ３は、“終了”に維持される。
【００９０】
そして、周期Ｔ８の開始時に、図１７に示した処理４２０により、周期カウンタ値ＴＣＶ３および状態ＣＯＮ３は、“０”および“未”にそれぞれ設定される。なお、周期Ｔ８では、周期カウンタ値ＴＣＶ３が“０”に設定されるが、周期Ｔ６で割り込み処理ＩＮＴ３が発生したため、割り込み処理ＩＮＴ３は発生しない。そして、周期Ｔ９の開始時に、図１７に示した処理４２０により、周期カウンタ値ＴＣＶ３および状態ＣＯＮ３は、“０”および“未”にそれぞれ設定される。周期Ｔ９で割り込み処理ＩＮＴ３が発生したため、周期Ｔ１０の開始時に、図１７に示した処理４１０により、周期カウンタ値ＴＣＶ３は、“１”にカウントアップされ、状態ＣＯＮ３は、“終了”に維持される。そして、周期Ｔ１１の開始時に、図１７に示した処理４１０により、周期カウンタ値ＴＣＶ３は、“２”にカウントアップされ、状態ＣＯＮ３は、“終了”に維持される。
【００９１】
周期Ｔ１２の開始時に、図１７に示した処理４２０により、周期カウンタ値ＴＣＶ３および状態ＣＯＮ３は、“０”および“未”にそれぞれ設定される。このように、周期Ｔ９以降では、割り込み処理ＩＮＴ３は、３周期Ｔに１回の割合で発生する正常な状態に戻る。これにより、周期Ｔ９以降では、周期カウンタ値ＴＣＶ３は、割り込み処理ＩＮＴ３が発生する予定の周期Ｔの開始時に、“０”に設定される。
【００９２】
上述したように、割り込み処理ＩＮＴが正常に発生しなかった場合や予定外の割り込み処理が発生した場合でも、数周期Ｔ後には、割り込み状態レジスタ６２は、周期カウンタ値ＴＣＶが“０”に設定された周期Ｔに割り込み処理ＩＮＴが発生することを示す状態に復帰できる。これにより、例えば、この実施形態では、プロセッサシステム１０がデッドロックすることを防止できる。なお、周期Ｔ０で割り込み処理ＩＮＴが発生するかどうかに拘わらず、起動直後のリセットで、周期カウンタ値ＴＣＶおよび状態ＣＯＮは、“０”および“未”にそれぞれ設定されてもよい。この場合、周期カウンタ値ＴＣＶおよび状態ＣＯＮは、割り込み処理ＩＮＴが最初に発生するまで、“０”および“未”にそれぞれ維持される。以上、この実施形態においても、上述した図１−図１１で説明した実施形態と同様の効果を得ることができる。
【００９３】
なお、上述した実施形態では、プロセッサシステム１０が携帯端末に用いられる場合の例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、プロセッサシステム１０は、周期的に動作し、かつ、外部からの信号（割り込み処理ＩＮＴに対応）により起動停止等を制御されるデバイスを有する装置に用いられてもよい。この場合、例えば、プロセッサシステム１０は、上述した図１に示したＤＳＰ３０の代わりに、上述の外部からの信号により起動停止等を制御されるデバイスを有する。この場合にも、上述した実施形態と同様の効果を得ることができる。
【００９４】
上述した実施形態では、割り込み処理ＩＮＴの数が４つの場合の例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、割り込み処理ＩＮＴの数は、１つ以上であればよく、３つ以下でもよいし、５つ以上でもよい。この場合にも、上述した実施形態と同様の効果を得ることができる。
【００９５】
上述した実施形態では、省電力モードの数が３つの場合の例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、省電力モードの数は、１つ以上であればよく、２つ以下でもよいし、４つ以上でもよい。また、例えば、省電力化の方式は、上述した省電力モードＭＤ１−３の方式に限定されるものではない。例えば、ＤＳＰ３０は、動作周波数の制御と電源電圧の制御の両方を実施する省電力モードを有してもよい。この場合にも、上述した実施形態と同様の効果を得ることができる。
【００９６】
上述した実施形態では、割り込み処理ＩＮＴが周期Ｔ内で終了する例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、周期Ｔの終了間際（残り時間ＥＴが少ないとき）に発生した割り込み処理ＩＮＴは、割り込み処理ＩＮＴが発生した周期Ｔの次の周期Ｔに終了してもよい。なお、この場合、例えば、上述した図７に示した割り込み状態レジスタ６０は、メイン処理ＭＡＩＮの開始時に、クリアされる（状態ＣＯＮが全て“未”に設定される）。また、この場合でも、ＤＳＰ３０は、割り込み処理ＩＮＴが発生した周期Ｔ内に、割り込み処理ＩＮＴに対する応答ＲＥＳのための演算を開始できる。このため、ＤＳＰ３０が用いられているシステム全体の性能が劣化することを防止できる。この場合にも、上述した実施形態と同様の効果を得ることができる。
【００９７】
上述した実施形態では、モード制御部４０が、図１０に示した処理２１０で、復帰制約時間ＲＬＴが最小の未実施の割り込み処理ＩＮＴを検出する例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、モード制御部４０は、割り込み処理ＩＮＴ１−４の状態を検出し、割り込み処理ＩＮＴ１−４の状態に対応して分類されたモード選択テーブル（後述する図１９に示すモード選択テーブル５４）を用いることにより、上述した図１０に示した処理２１０を省いてもよい。この場合にも、上述した実施形態と同様の効果を得ることができる。
【００９８】
上述した実施形態では、１つのモード選択テーブル５２が用いられる例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、プロセッサシステム１０が複数の動作モードを有する場合、プロセッサシステム１０の複数の動作モードにそれぞれ対応する複数のモード選択テーブル５２を有してもよい。この場合、例えば、モード制御部４０は、プロセッサシステム１０の動作モードに応じて、参照するモード選択テーブルを複数のモード選択テーブルから選択する。この場合にも、上述した実施形態と同様の効果を得ることができる。
【００９９】
図１９は、プロセッサシステム１０が２つのモード選択テーブルを有する場合のモード選択テーブル５４、５５の一例を示している。なお、図１９の“Ｘ”は、割り込み処理ＩＮＴが終了および未実施のどちらでもよいことを示している。例えば、モード選択テーブル５４は、各省電力モードＭＤ１−３から通常モードＭＤ０に復帰するまでの復帰時間ＲＴと割り込み処理ＩＮＴの復帰制約時間ＲＬＴとの関係が上述した実施形態と同じ場合（ＲＴ１＜ＲＴ１０≦ＲＬＴ２＜ＲＴ２０≦ＲＬＴ３＜ＲＴ３０≦ＲＬＴ４）に対応する。
【０１００】
モード選択テーブル５４は、割り込み処理ＩＮＴの状態を示す情報および分類される状態の数が、上述した図６に示したモード選択テーブル５２と相違している。その他の構成は、図６に示したモード選択テーブル５２と同じである。例えば、モード選択テーブル５４の“未、Ｘ、Ｘ、Ｘ”、“終了、未、Ｘ、Ｘ”および“終了、終了、未、Ｘ”の列は、図６に示したモード選択テーブル５２の“ＩＮＴ１未”、“ＩＮＴ２未”および“ＩＮＴ３未”の列にそれぞれ対応している。また、モード選択テーブル５４の“終了、終了、終了、Ｘ”の列は、図６に示したモード選択テーブル５２の“ＩＮＴ４未”および“全て済み”の両方の列に対応している。
【０１０１】
また、例えば、モード選択テーブル５５は、割り込み処理ＩＮＴ２の復帰制約時間ＲＬＴと割り込み処理ＩＮＴ３の復帰制約時間ＲＬＴとが上述した実施形態と逆の場合（ＲＴ１＜ＲＴ１０≦ＲＬＴ３＜ＲＴ２０≦ＲＬＴ２＜ＲＴ３０≦ＲＬＴ４）に対応する。なお、モード選択テーブル５５の網掛けは、モード選択テーブル５４と相違する部分を示している。すなわち、モード選択テーブル５５は、図の網掛け部分（割り込み処理ＩＮＴ２、ＩＮＴ３の状態の組み合わせ（その組み合わせに対応する動作モードも含む））を除いて、モード選択テーブル５４と同じである。
【０１０２】
例えば、周期Ｔの残り時間ＥＴが復帰時間ＲＴ２０より大きいときに、割り込み処理ＩＮＴ１、ＩＮＴ２が終了し、割り込み処理ＩＮＴ３が未実施の場合、参照されるモード選択テーブル５４、５５に応じて、選択される動作モードが異なる。あるいは、周期Ｔの残り時間ＥＴが復帰時間ＲＴ２０より大きいときに、割り込み処理ＩＮＴ１、ＩＮＴ３が終了し、割り込み処理ＩＮＴ２が未実施の場合、参照されるモード選択テーブル５４、５５に応じて、選択される動作モードが異なる。
【０１０３】
例えば、割り込み処理ＩＮＴ１、ＩＮＴ２が終了し、割り込み処理ＩＮＴ３が未実施で、かつ、残り時間ＥＴが復帰時間ＲＴ３０より大きい場合、モード選択テーブル５４を参照したモード制御部４０は、ＤＳＰ３０の動作モードとして、省電力モードＭＤ２を選択する。これに対し、モード選択テーブル５５が参照された場合、モード制御部４０は、ＤＳＰ３０の動作モードとして、省電力モードＭＤ１を選択する。このように、プロセッサシステム１０の動作モードに応じて、参照されるモード選択テーブル５４、５５を切りかえることにより、モード制御部４０は、ＤＳＰ３０の動作モードを、通常モードＭＤ０および省電力モードＭＤ１−３から簡易に選択できる。
【０１０４】
なお、モード制御部４０は、モード選択テーブル５４、５５を参照する場合、未実施の割り込み処理ＩＮＴのうち、復帰制約時間ＲＬＴが最小の割り込み処理ＩＮＴを検出することなく、ＤＳＰ３０の動作モードを選択できる。すなわち、モード選択テーブル５４、５５が参照される場合、モード制御部４０は、割り込み処理ＩＮＴ１−４の状態を検出することにより、上述した図１０に示した処理２１０を省くことができる。また、プロセッサシステム１０は、上述した図６に示したモード選択テーブル５２と同じ構成の複数のモード選択テーブルを有してもよい。この場合、モード制御部４０は、図１０に示した処理２１０において、プロセッサシステム１０の動作モードに対応する復帰制約時間ＲＬＴを用いて、復帰制約時間ＲＬＴが最小の未実施の割り込み処理ＩＮＴを検出する。この場合にも、上述した実施形態と同様の効果を得ることができる。
【０１０５】
また、例えば、モード選択テーブル５５に対応するプロセッサシステム１０の動作モードで、割り込み処理ＩＮＴ１が使用されない場合、モード選択テーブル５５の“ＩＮＴ１”が“未”に対応する列および“ＩＮＴ１”の行が削除されたモード選択テーブルが用いられる。この場合、例えば、割り込み状態レジスタ６０の割り込み処理ＩＮＴ１に対応する状態ＣＯＮは、クリアされることなく、常に、“終了”に設定される。なお、モード選択テーブルを参照する際に、割り込み処理ＩＮＴ１の状態の内容が反映されない場合、割り込み処理ＩＮＴ１に対応する状態ＣＯＮは、“未”に設定されてもよい。
【０１０６】
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【図面の簡単な説明】
【０１０７】
【図１】一実施形態におけるプロセッサシステムの概要を示す図である。
【図２】ＤＳＰの動作の一例を示す図である。
【図３】割り込み処理の概要を示す図である。
【図４】省電力モードと復帰時間との関係の一例を示す図である。
【図５】割り込み処理と復帰時間との関係の一例を示す図である。
【図６】図１に示したモード選択テーブルの一例を示す図である。
【図７】図１に示した割り込み状態レジスタの一例を示す図である。
【図８】図１に示した割り込み監視部の概要を示す図である。
【図９】ＤＳＰの動作モードの制御方法の一例を示す図である。
【図１０】図９に示した判定ステートの動作の一例を示す図である。
【図１１】ＤＳＰの動作モードの推移の一例を示す図である。
【図１２】別の実施形態におけるＤＳＰの動作モードの推移の一例を示す図である。
【図１３】図１２に示した動作を実現するためのモード選択テーブルの一例を示す図である。
【図１４】図１２に示した動作を実現するためのＤＳＰの動作モードの制御方法の一例を示す図である。
【図１５】図１４に示したステートのうちの省電力モードに対応するステートの動作の一例を示す図である。
【図１６】別の実施形態における割り込み状態レジスタの一例を示す図である。
【図１７】図１６に示した割り込み状態レジスタのカウンタ値の更新動作の一例を示す図である。
【図１８】図１６に示した割り込み状態レジスタの更新動作の一例を示す図である。
【図１９】モード選択テーブルの変形例を示す図である。
【符号の説明】
【０１０８】
１０‥プロセッサシステム；２０‥ＣＰＵ；３０‥ＤＳＰ；４０‥モード制御部；５０‥メモリ；５２‥モード選択テーブル；６０‥割り込み状態レジスタ；７０‥監視部；８０‥補助ハードウェア；９０‥電力制御部
【図１】
2010113641.tif 000003
【図２】
2010113641.tif 000004
【図３】
2010113641.tif 000005
【図４】
2010113641.tif 000006
【図５】
2010113641.tif 000007
【図６】
2010113641.tif 000008
【図７】
2010113641.tif 000009
【図８】
2010113641.tif 000010
【図９】
2010113641.tif 000011
【図１０】
2010113641.tif 000012
【図１１】
2010113641.tif 000013
【図１２】
2010113641.tif 000014
【図１３】
2010113641.tif 000015
【図１４】
2010113641.tif 000016
【図１５】
2010113641.tif 000017
【図１６】
2010113641.tif 000018
【図１７】
2010113641.tif 000019
【図１８】
2010113641.tif 000020
【図１９】
2010113641.tif 000021