(57)【特許請求の範囲】
【請求項１】
少なくとも通常動作モードと、クロック供給が停止されるスタンバイモードとからなる複数のモードを有するＣＰＵ（Central Processing Unit）と、
前記ＣＰＵへ供給するクロックを生成するクロック生成回路と、
複数の周辺回路からの割り込み要求に応じて、当該割り込み要求における割り込み要因を含む制御信号を出力する割り込み制御回路と、
前記ＣＰＵからの指示又は前記割り込み制御回路からの制御信号に応じて前記ＣＰＵが遷移すべきモードを決定し、決定したモードに応じて前記クロック生成回路を制御し、かつ、前記ＣＰＵへの前記制御信号の出力を制御する制御回路と
を備え、
前記スタンバイモードは、前記クロック生成回路によるクロックの生成を停止させるＳＴＯＰモードと、前記クロック生成回路によりクロックが生成され、前記ＣＰＵ以外の前記複数の周辺回路に当該クロックを供給するＨＡＬＴモードとを有し、
前記制御回路は、前記ＣＰＵからの指示に応じて前記ＨＡＬＴモードへ遷移した後に前記割り込み制御回路から前記制御信号を受け付けた場合、前記決定の結果、前記割り込み要求が前記ＣＰＵを前記ＨＡＬＴモードから前記ＳＴＯＰモードへ遷移させる要求であると判定した場合は、前記クロック生成回路を制御するとともに前記制御信号を前記ＣＰＵへ出力しないことを特徴とするマイクロコンピュータ。
【請求項２】
前記制御回路は、前記ＣＰＵの現在のモードと、前記割り込み要因と、前記ＣＰＵが遷移すべきモードとを対応付けた対応情報を更に保持していることを特徴する、請求項１に記載のマイクロコンピュータ。
【請求項３】
前記制御回路は、前記割り込み要因が、定期的に発生する割り込み要求である場合における前記ＣＰＵが遷移すべきモードと、前記割り込み要因が、突発的に発生する割り込み要求である場合における前記ＣＰＵが遷移すべきモードとを、互いに異なるものに決定することを特徴とする請求項１又は２に記載のマイクロコンピュータ。
【請求項４】
前記制御回路は、前記決定の結果、前記割り込み要求が前記ＣＰＵを前記ＨＡＬＴモードから前記ＳＴＯＰモードへ遷移させる要求であると判定した場合、前記ＣＰＵへのクロックの供給を停止し続けることを特徴とする請求項１乃至３の何れか１つに記載のマイクロコンピュータ。
【請求項５】
前記制御回路は、前記制御信号を受信した場合に前記ＣＰＵの現在のモードを判定し、かつ、前記割り込み要因に応じた前記ＣＰＵが遷移すべきモードを決定し、判定した前記ＣＰＵの現在のモードと決定した前記ＣＰＵが遷移すべきモードとが異なる場合のみ、決定した前記ＣＰＵが遷移すべきモードに基づき前記クロック生成回路を制御することを特徴とする請求項１乃至４の何れか１つに記載のマイクロコンピュータ。
【請求項６】
前記クロック生成回路は、互いに周波数の異なる第１のクロックと第２のクロックとを生成し、
前記ＨＡＬＴモードは、前記クロック生成回路により前記第１のクロック及び前記第２のクロックがともに生成されるが前記ＣＰＵにはいずれのクロックも供給されない第１のＨＡＬＴモードと、前記クロック生成回路による前記第１のクロックの生成が停止され、前記クロック生成回路により前記第２のクロックが生成されるが前記ＣＰＵには当該第２のクロックが供給されない第２のＨＡＬＴモードとを有し、
前記制御回路は、前記ＣＰＵからの指示で前記第１のＨＡＬＴモード又は第２のＨＡＬＴモードになった後に前記割り込み制御回路から前記制御信号を受け付けた場合、前記決定の結果、前記割り込み要求が前記ＣＰＵを前記ＳＴＯＰモードへ遷移させる要求であると判定した場合は、前記クロック生成回路による前記第１のクロック及び前記第２のクロックの生成を停止させるとともに前記制御信号を前記ＣＰＵへ出力しないことを特徴とする請求項１乃至５の何れか１つに記載のマイクロコンピュータ。
【請求項７】
少なくとも通常動作モードと、クロック供給が停止されるスタンバイモードとからなる複数のモードを有するＣＰＵ（Central Processing Unit）と、前記ＣＰＵへ供給するクロックを生成するクロック生成回路と、複数の周辺回路からの割り込み要求に応じて当該割り込み要求における割り込み要因を含む制御信号を出力する割り込み制御回路と、前記ＣＰＵからの指示又は前記割り込み制御回路からの制御信号に応じて前記ＣＰＵが遷移すべきモードを決定し、決定したモードに応じて前記クロック生成回路を制御し、かつ、前記ＣＰＵへの前記制御信号の出力を制御する制御回路と、を備えるマイクロコンピュータの制御方法であって、
前記スタンバイモードは、前記クロック生成回路によるクロックの生成を停止させるＳＴＯＰモードと、前記クロック生成回路によりクロックが生成され、前記ＣＰＵ以外の前記複数の周辺回路に当該クロックを供給するＨＡＬＴモードとを有し、
前記ＣＰＵにより前記ＨＡＬＴモードに遷移させ、当該ＨＡＬＴモードに遷移後、
前記制御回路において、
前記割り込み制御回路からの前記制御信号に応じて前記ＣＰＵが遷移すべきモードを決定し、
前記決定の結果、前記割り込み要求が前記ＣＰＵを前記ＨＡＬＴモードから前記ＳＴＯＰモードへ遷移させる要求であると判定した場合は、前記クロック生成回路を制御するとともに前記制御信号を前記ＣＰＵへ出力しない
ことを特徴とするマイクロコンピュータの制御方法。
【請求項８】
前記制御回路は、前記ＣＰＵの現在のモードと、前記割り込み要因と、前記ＣＰＵが遷移すべきモードとを対応付けた対応情報を更に保持していることを特徴とする請求項７に記載のマイクロコンピュータの制御方法。
【請求項９】
前記制御回路において、前記割り込み要因が、定期的に発生する割り込み要求である場合における前記ＣＰＵが遷移すべきモードと、前記割り込み要因が、突発的に発生する割り込み要求である場合における前記ＣＰＵが遷移すべきモードとを、互いに異なるものに決定することを特徴とする請求項７又は８に記載のマイクロコンピュータの制御方法。
【請求項１０】
前記制御回路において、前記決定の結果、前記割り込み要求が前記ＣＰＵを前記ＨＡＬＴモードから前記ＳＴＯＰモードへ遷移させる要求であると判定した場合、前記ＣＰＵへのクロックの供給を停止し続けることを特徴とする請求項７乃至９の何れか１つに記載のマイクロコンピュータの制御方法。
【請求項１１】
前記制御回路において、
前記制御信号を受信した場合に前記ＣＰＵの現在のモードを判定し、かつ、前記割り込み要因に応じた前記ＣＰＵが遷移すべきモードを決定し、
判定した前記ＣＰＵの現在のモードと決定した前記ＣＰＵが遷移すべきモードとが異なる場合のみ、決定した前記ＣＰＵが遷移すべきモードに基づき前記クロック生成回路を制御することを特徴とする請求項７乃至１０の何れか１つに記載のマイクロコンピュータの制御方法。
【請求項１２】
前記クロック生成回路は、互いに周波数の異なる第１のクロックと第２のクロックとを生成し、
前記ＨＡＬＴモードは、前記クロック生成回路により前記第１のクロック及び前記第２のクロックがともに生成されるが前記ＣＰＵにはいずれのクロックも供給されない第１のＨＡＬＴモードと、前記クロック生成回路による前記第１のクロックの生成が停止され、前記クロック生成回路により前記第２のクロックが生成されるが前記ＣＰＵには当該第２のクロックが供給されない第２のＨＡＬＴモードとを有し、
前記ＣＰＵにより前記第１のＨＡＬＴモード又は前記第２のＨＡＬＴモードに遷移させ、当該第１のＨＡＬＴモード又は前記第２のＨＡＬＴモードに遷移後、
前記制御回路において、
前記割り込み制御回路からの前記制御信号に応じて前記ＣＰＵが遷移すべきモードを決定し、
前記決定の結果、前記割り込み要求が前記ＣＰＵを前記ＳＴＯＰモードへ遷移させる要求であると判定した場合は、前記クロック生成回路による前記第１のクロック及び前記第２のクロックの生成を停止させるとともに前記制御信号を前記ＣＰＵへ出力しないことを特徴とする請求項７乃至１１の何れか１つに記載のマイクロコンピュータの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ及びマイクロコンピュータの制御方法に関し、特に、動作モードの遷移を行うマイクロコンピュータ及びマイクロコンピュータの制御方法に関する。
【背景技術】
【０００２】
マイクロコンピュータは、一般的に、複数の動作モードを有している。動作モードとしては、例えば、通常の処理を実行するためのＲＵＮモードや、ＲＵＮモードに比べて消費電流がより低いスタンバイモード等がある。ＲＵＮモードには、ＣＰＵ（Central Processing Unit）に対する複数の異なる動作クロックに応じた動作モードがある。例えば、高速なクロックによりマイクロコンピュータに最大性能を発揮させるＭＡＩＮＲＵＮモードや、低速なクロックによりマイクロコンピュータに最低限の処理を実行させるＳＵＢＲＵＮモード等がある。また、スタンバイモードには、例えば、クロックの発生自体を停止して消費電流を最小限に抑えるＳＴＯＰモードや、ＣＰＵへのクロック供給を停止することで消費電流を抑え、ＲＵＮモードへの高速な復帰を可能とするＨＡＬＴモード等がある。
【０００３】
例えば、マイクロコンピュータに対して所定時間、動作要求がない場合には、当該マイクロコンピュータは、ＣＰＵの命令によりＲＵＮモードからＨＡＬＴモードへ遷移する。また、通常の処理を実行可能に復帰する場合には、当該マイクロコンピュータは、割り込み等によりＣＰＵへ電流を供給することにより、ＨＡＬＴモードからＲＵＮモードへ遷移する。すなわち、マクロコンピュータは、スタンバイモードから復帰する。
【０００４】
特許文献１には、クロックソースの異なる複数のＲＵＮモードの間で動作モードを遷移させるマイクロコンピュータに関する技術が開示されている。特許文献１にかかるマイクロコンピュータは、内部又は外部割り込みが発生した場合に割り込み要因に応じて複数のクロックソースの中から特定のクロックソースに切り換えてＣＰＵへ供給する選択切換手段を有する。また、特定のクロックソースに切り換える際、つまり、動作モードを遷移させる場合に、直前の動作モードを退避しておき、割り込み処理からの復帰時に、当該退避した動作モードへ遷移させる。
【０００５】
ここで、特許文献１にかかるマイクロコンピュータの動作例を挙げる。まず、第１のＲＵＮモードから割り込みにより第２のＲＵＮモードへ遷移した場合、第１のＲＵＮモードのクロックソースを退避する。そして、ＣＰＵは、第２のＲＵＮモードにおけるクロックソースにより割り込みルーチンを実行する。ＣＰＵは、当該割り込みルーチンの最後に復帰命令を実行することにより、退避した第１のＲＵＮモードのクロックソースへ戻す。これにより、第１のＲＵＮモードでの実行を可能とするものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１−２６０５１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
マイクロコンピュータの分野においては、元々、汎用的なコンピュータに比べて、消費電流を抑える必要性が高い。そして、近年では、さらなる消費電流の抑制が要求されるようになった。そのため、上述したようなスタンバイモードへ遷移させることによる消費電流の抑制に留まらず、動作モードを遷移する処理自体における消費電流の抑制の必要性が高まっている。
【０００８】
しかしながら、上述した動作モードを遷移させる処理には、ＣＰＵの動作が必要である。つまり、メモリアクセスやＳＦＲ書き込みの命令実行により所望の動作モードに遷移する必要がある。そのため、動作モードの遷移に伴う消費電流の抑制が困難となる問題がある。
【０００９】
図１２は、上述した課題の発生を説明するタイミングチャートである。図１２では、スタンバイモードから他のスタンバイモードへの遷移を行う例として、ＨＡＬＴモードからＳＴＯＰモードへ遷移させる場合を示す。具体的には、ＳＵＢＲＵＮモードからＳＵＢＨＡＬＴモード、そして、ＳＴＯＰモードへ遷移させる場合を示す。まず、ＳＵＢＲＵＮモードにおいて、ＣＰＵからのＨＡＬＴ命令により、ＳＵＢＨＡＬＴモードへ遷移する。そして、割り込み等によりＳＵＢＨＡＬＴモードから一旦、ＭＡＩＮＲＵＮモードへ復帰する。その後、ＭＡＩＮＲＵＮモードにおいてＣＰＵからのＳＴＯＰ命令によりＳＴＯＰモードへ遷移する。このとき、本来、消費電流を抑制するためにスタンバイモードから他のスタンバイモードへの遷移を行うにも関わらず、却って、動作モードの遷移のためにＣＰＵの消費電流が必要となってしまう。
【００１０】
また、特許文献１では、ＣＰＵへのクロックを供給しないスタンバイモードからの復帰については、対象としていない。仮に、特許文献１にかかるマイクロコンピュータにおいて、ＲＵＮモードからスタンバイモードへ遷移し、割り込み信号によりスタンバイモードから復帰する場合、直前のＲＵＮモードへ遷移する必要がある。つまり、スタンバイモードからの復帰時の動作モードは、一律に直前のＲＵＮモードとなる。
【課題を解決するための手段】
【００１１】
本発明の第１の態様にかかるマイクロコンピュータは、少なくとも通常動作モードと、クロック供給が停止されるスタンバイモードとからなる複数のモードを有するＣＰＵ（Central Processing Unit）と、前記ＣＰＵへ供給するクロックを生成するクロック生成回路と、前記ＣＰＵのモードを監視し、当該ＣＰＵのモードと、前記ＣＰＵへの割り込み要求の種類に応じて前記ＣＰＵが遷移すべきモードを決定し、決定したモードに応じて前記クロック生成回路を制御する制御回路とを備える。
【００１２】
本発明の第２の態様にかかるマイクロコンピュータの制御方法は、少なくとも通常動作モードと、クロック供給が停止されるスタンバイモードとからなる複数のモードを有するＣＰＵ（Central Processing Unit）と、前記ＣＰＵへ供給するクロックを生成するクロック生成回路と、制御回路と、を備えるマイクロコンピュータの制御方法であって、前記制御回路において、前記ＣＰＵのモードを監視し、当該ＣＰＵのモードと、前記ＣＰＵへの割り込み要求の種類に応じて前記ＣＰＵが遷移すべきモードを決定し、決定したモードに応じて前記クロック生成回路を制御する。
【００１３】
上述した本発明の第１及び第２の態様では、例えば、ＣＰＵのモードがスタンバイモードである場合に、ＣＰＵへの割り込み要求の種類に応じて、都度、スタンバイモードから遷移すべきモードを決定するため、適切な動作モードへ遷移することが可能となる。また、ＣＰＵのモードが通常モードである場合も同様である。
【発明の効果】
【００１４】
本発明により、ＣＰＵのモードの遷移に伴う消費電流を抑えるマイクロコンピュータ及びマイクロコンピュータの制御方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態１にかかるマイクロコンピュータの構成を示すブロック図である。
【図２】本発明の実施の形態１にかかるクロック制御回路の処理の流れを示すフローチャートである。
【図３】本発明の実施の形態２にかかるマイクロコンピュータの構成を示すブロック図である。
【図４】本発明の実施の形態２にかかる割り込み制御回路２４の構成の一例を示すブロック図である。
【図５】本発明の実施の形態２にかかる割り込み要因と動作モードの対応の例である。
【図６】本発明の実施の形態２にかかる動作モードごとのクロック制御回路の制御内容の組み合わせの例である。
【図７】本発明の実施の形態２にかかるクロック制御回路の処理の流れを示すフローチャートである。
【図８】本発明の実施の形態２にかかる動作モード遷移の例を示すタイミングチャートである。
【図９】関連技術における動作モード遷移の組み合わせを示す図である。
【図１０】本発明の実施の形態２にかかる動作モード遷移の組み合わせを示す図である。
【図１１】本発明の実施の形態３にかかるクロック制御回路の処理の流れを示すフローチャートである。
【図１２】課題の発生を説明するためのタイミングチャートである。
【発明を実施するための形態】
【００１６】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１７】
＜発明の実施の形態１＞
図１は、本発明の実施の形態１にかかるマイクロコンピュータ１００の構成を示すブロック図である。マイクロコンピュータ１００は、複数の動作モードを切り替えて動作可能である。動作モードとしては、例えば、通常の処理を実行するための通常動作モードであるＲＵＮモード、ＲＵＮモードに比べて消費電流がより低いスタンバイモードがあるものとする。また、スタンバイモードには、例えば、クロックの発生自体を停止して消費電流を最小限に抑えるＳＴＯＰモードや、ＣＰＵ（Central Processing Unit）へのクロック供給を停止することで消費電流を抑え、ＲＵＮモードへの高速な復帰を可能とするＨＡＬＴモードがあるものとする。すなわち、スタンバイモードにより、少なくともクロック供給が停止される。尚、マイクロコンピュータ１００は、上述した動作モード以外の動作モードを有していても構わない。
【００１８】
マイクロコンピュータ１００は、ＣＰＵ１１と、クロック制御回路１２と、クロック発振回路１３とを備える。ＣＰＵ１１は、マイクロコンピュータ１００の他の装置（不図示）の制御やデータの計算及び加工等を行なう制御装置である。また、ＣＰＵ１１は、少なくともＲＵＮモードと、スタンバイモードとを有する。ＣＰＵ１１は、マイクロコンピュータ１００の消費電流を低減するためのスタンバイ要求１６１をクロック制御回路１２に対して送信する。スタンバイ要求１６１は、スタンバイモードへの遷移を要求するものである。具体的には、スタンバイ要求１６１は、ＨＡＬＴモード又はＳＴＯＰモードへの遷移を要求するものである。また、ＣＰＵ１１は、クロック制御回路１２から供給されるクロック信号１６４に応じて動作するものである。尚、本発明の実施の形態１にかかるＣＰＵ１１のその他の機能は、公知なものを用いることが可能であるため、詳細な説明を省略する。
【００１９】
クロック発振回路１３は、クロックパルスを発生させる電気回路である。つまり、クロック発振回路１３は、ＣＰＵ１１へ供給するクロックを生成するクロック生成回路である。クロック発振回路１３は、クロック制御回路１２からのクロック発振制御信号１６２に応じて動作を行う。例えば、クロック発振回路１３は、クロック発振制御信号１６２が動作開始の指示を示す場合に、クロックパルスの発生を開始する。また、クロック発振回路１３は、クロック発振制御信号１６２が動作停止の指示を示す場合に、クロックパルスの発生を停止する。そして、クロック発振回路１３は、発生させたクロックパルスをクロック信号１６３としてクロック制御回路１２へ出力する。尚、本発明の実施の形態１にかかるクロック発振回路１３のその他の機能は、公知なものを用いることが可能であるため、詳細な説明を省略する。
【００２０】
クロック制御回路１２は、ＲＵＮモードにおいて、クロック発振回路１３から入力されるクロック信号１６３をクロック信号１６４としてＣＰＵ１１へ供給する。そして、クロック制御回路１２は、ＣＰＵ１１からスタンバイ要求１６１を受け付けた場合に少なくともＣＰＵ１１へのクロックの供給を停止して、マイクロコンピュータ１００をスタンバイモードへ遷移させる。例えば、スタンバイ要求１６１がＨＡＬＴモードへの遷移を要求するものである場合、クロック制御回路１２は、ＣＰＵ１１へのクロック信号１６４の出力を停止する。これにより、ＣＰＵ１１は、動作を停止し、電流を消費しない。また、スタンバイ要求１６１がＳＴＯＰモードへの遷移を要求するものである場合、クロック制御回路１２は、ＣＰＵ１１へのクロック信号１６４の出力を停止すると共に、動作停止の指示を示すクロック発振制御信号１６２をクロック発振回路１３に対して出力する。これにより、クロック発振回路１３がクロックパルスを発生させる処理自体を行わないために、ＣＰＵ１１等の消費電流を抑えることができる。
【００２１】
また、クロック制御回路１２は、ＣＰＵ１１のモードを監視し、割り込み要求１６５が発生した場合にＣＰＵ１１のモードと割り込み要求の種類である割り込み要因とに応じた動作モードを決定する。例えば、まず、マイクロコンピュータ１００の内部又は外部の装置（不図示）において割り込み要求１６５が発生した場合、クロック制御回路１２は、割り込み要求１６５に含まれる割り込み要因を抽出し、抽出した割り込み要因に応じて動作モードを決定する。例えば、割り込み要因毎に異なる動作モードを予め設定しておくとよい。
【００２２】
そして、クロック制御回路１２は、決定した動作モードに基づきＣＰＵ１１へのクロックの供給及びクロック発振回路１３の動作を制御する。例えば、決定した動作モードがＲＵＮモードである場合、クロック制御回路１２は、クロック発振回路１３から入力されるクロック信号１６３をクロック信号１６４としてＣＰＵ１１へ供給する。また、決定した動作モードがＨＡＬＴモードである場合、クロック制御回路１２は、ＣＰＵ１１へのクロック信号１６４の出力を停止する。決定した動作モードがＳＴＯＰモードである場合、クロック制御回路１２は、ＣＰＵ１１へのクロック信号１６４の出力を停止すると共に、動作停止の指示を示すクロック発振制御信号１６２をクロック発振回路１３に対して出力する。つまり、クロック制御回路１２は、ＣＰＵ１１のモードを監視し、ＣＰＵ１１のモードと、ＣＰＵ１１への割り込み要求１６５の種類に応じてＣＰＵ１１が遷移すべきモードを決定し、決定したモードに応じてクロック発振回路１３を制御する制御回路ということができる。
【００２３】
図２は、本発明の実施の形態１にかかるクロック制御回路１２の処理の流れを示すフローチャートである。前提として、マイクロコンピュータ１００は、ＲＵＮモードで動作しているものとする。つまり、クロック発振回路１３は、クロックパルスを発生させており、ＣＰＵ１１は、クロック信号１６４により動作しているものとする。
【００２４】
まず、クロック制御回路１２は、ＣＰＵ１１からスタンバイ要求１６１を受信する（Ｓ１１）。例えば、クロック制御回路１２は、スタンバイ要求１６１としてＨＡＬＴモードへの遷移の要求を受信する。次に、クロック制御回路１２は、ＣＰＵ１１へのクロックの供給を停止する（Ｓ１２）。すなわち、上述したように、クロック制御回路１２は、ＣＰＵ１１へのクロック信号１６４の出力を停止する。尚、この時点で、クロック発振回路１３は動作しているが、ＣＰＵ１１へのクロックが供給されていないため、ＣＰＵ１１において電流が消費されない。これにより、マイクロコンピュータ１００は、スタンバイモードの一つであるＨＡＬＴモードへ遷移したこととなる。
【００２５】
その後、クロック制御回路１２は、割り込み要求１６５を受信する（Ｓ１３）。例えば、マイクロコンピュータ１００の内部のタイマ（不図示）等から割り込み要求が発生したものとする。続いて、クロック制御回路１２は、割り込み要因に応じた動作モードを決定する（Ｓ１４）。例えば、クロック制御回路１２は、割り込み要因がタイマ割り込みである場合に、ＳＴＯＰモードへ遷移すると設定されていた場合、ＳＴＯＰモードを動作モードとして決定する。そして、クロック制御回路１２は、動作モードに基づきＣＰＵ等を制御する（Ｓ１５）。ここでは、決定された動作モードがＳＴＯＰモードであるため、クロック制御回路１２は、動作停止の指示を示すクロック発振制御信号１６２をクロック発振回路１３に対して出力する。これにより、クロック発振回路１３の動作が停止するため、マイクロコンピュータ１００の内部の他の装置における消費電流を抑えることができる。
【００２６】
つまり、クロック制御回路１２は、スタンバイ要求１６１を受け付けた場合に遷移したスタンバイモードであるＨＡＬＴモードとは異なるスタンバイモードであるＳＴＯＰモードを動作モードとして決定することができる。これにより、ＲＵＮモードを介さず、スタンバイモードから直接他のスタンバイモードへ遷移できるため、消費電流を最小限に抑えることができる。
【００２７】
このように、本発明の実施の形態１により、ＣＰＵのモードの遷移に伴う消費電流を抑えることができる。特に、スタンバイモードからの復帰時にＣＰＵ１１を介さず、所定の動作モードへ直接遷移させることができる。そのため、スタンバイモードからの動作モードの遷移に伴う消費電流を抑えることができる。また、スタンバイモードからの復帰時において、動作モードを遷移させるために一旦ＲＵＮモードへ遷移させる必要がないため、スタンバイモードからの動作モードの遷移の時間を短縮することができる。
【００２８】
＜発明の実施の形態２＞
図３は、本発明の実施の形態２にかかるマイクロコンピュータ２００の構成を示すブロック図である。マイクロコンピュータ２００は、ＣＰＵ２１と、スタンバイコントローラ２２と、メインオシレータ２３ａとサブオシレータ２３ｂと、割り込み制御回路２４と、周辺マクロ２５とを備える。また、マイクロコンピュータ２００は、複数の動作モードを切り替えて動作可能である。動作モードとしては、例えば、ＭＡＩＮＲＵＮモード、ＳＵＢＲＵＮモード、ＭＡＩＮＨＡＬＴモード、ＳＵＢＨＡＬＴモード及びＳＴＯＰモードがあるものとする。
【００２９】
ここで、ＭＡＩＮＲＵＮモードは、高速なクロック数を用いてＣＰＵ２１を動作させることにより、マイクロコンピュータ２００の最大性能を発揮させる動作モードである。ＳＵＢＲＵＮモードは、ＭＡＩＮＲＵＮモードに比べて低速なクロック数を用いてＣＰＵ２１を動作させることにより、マイクロコンピュータ２００の最低限の処理を実行させる動作モードである。ＭＡＩＮＨＡＬＴモードは、ＣＰＵ２１へのクロックの供給を停止するが、クロック発振回路であるメインオシレータ２３ａ及びサブオシレータ２３ｂの動作を継続させる動作モードである。これにより、ＭＡＩＮＲＵＮモードへ高速に復帰させるものである。ＳＵＢＨＡＬＴモードは、ＭＡＩＮＨＡＬＴモードと同様に、ＣＰＵ２１へのクロックの供給を停止すると共に、メインオシレータ２３ａの動作を停止する一方、サブオシレータ２３ｂの動作を継続させる動作モードである。ＳＴＯＰモードは、ＣＰＵ２１へのクロックの供給を停止すると共に、メインオシレータ２３ａ及びサブオシレータ２３ｂの動作を停止する動作モードである。尚、マイクロコンピュータ２００は、上述した動作モード以外の動作モードを有していても構わない。
【００３０】
ＣＰＵ２１は、外部からスタンバイ命令２６０を受信し、スタンバイ命令２６０の内容に応じてＨＡＬＴステータス信号２６１ａ又はＳＴＯＰステータス信号２６１ｂのいずれかをスタンバイコントローラ２２へ送信する。ここで、スタンバイ命令２６０は、ＨＡＬＴモードへの遷移を要求するＨＡＬＴ命令又はＳＴＯＰモードへの遷移を要求するＳＴＯＰ命令のいずれかであるものとする。具体的には、受信したスタンバイ命令２６０がＨＡＬＴ命令である場合、ＣＰＵ２１は、ＨＡＬＴステータス信号２６１ａをスタンバイコントローラ２２へ送信する。また、受信したスタンバイ命令２６０がＳＴＯＰ命令である場合、ＣＰＵ２１は、ＳＴＯＰステータス信号２６１ｂをスタンバイコントローラ２２へ送信する。
【００３１】
また、ＣＰＵ２１は、スタンバイコントローラ２２から供給されるクロック信号２６４に応じて動作するものである。さらに、ＣＰＵ２１は、割り込み制御回路２４からスタンバイリリース信号２６７を受信することができる。スタンバイリリース信号２６７を受信した場合、ＣＰＵ２１は、クロック信号２６４が供給されているときには、所定の割り込み処理を行うことができる。尚、本発明の実施の形態２にかかるＣＰＵ２１のその他の機能は、公知なものを用いることが可能であるため、詳細な説明を省略する。
【００３２】
メインオシレータ２３ａは、高速なクロックパルスを発生させる電気回路、つまり、クロック発振回路である。メインオシレータ２３ａは、スタンバイコントローラ２２からのクロック発振制御信号２６２ａに応じて動作を行う。例えば、メインオシレータ２３ａは、クロック発振制御信号２６２ａが動作開始の指示である場合に、高速なクロックパルスの発生を開始する。また、メインオシレータ２３ａは、クロック発振制御信号２６２ａが動作停止の指示である場合に、クロックパルスの発生を停止する。そして、メインオシレータ２３ａは、発生させたクロックパルスをクロック信号２６３ａとしてスタンバイコントローラ２２へ出力する。
【００３３】
サブオシレータ２３ｂは、メインオシレータ２３ａに比べて低速なクロックパルスを発生させる電気回路、つまり、クロック発振回路である。サブオシレータ２３ｂは、スタンバイコントローラ２２からのクロック発振制御信号２６２ｂに応じて動作を行う。例えば、サブオシレータ２３ｂは、クロック発振制御信号２６２ｂが動作開始の指示である場合に、低速なクロックパルスの発生を開始する。また、サブオシレータ２３ｂは、クロック発振制御信号２６２ｂが動作停止の指示である場合に、クロックパルスの発生を停止する。そして、サブオシレータ２３ｂは、発生させたクロックパルスをクロック信号２６３ｂとしてスタンバイコントローラ２２へ出力する。
【００３４】
尚、本発明の実施の形態２にかかるメインオシレータ２３ａ及びサブオシレータ２３ｂのその他の機能は、公知なものを用いることが可能であるため、詳細な説明を省略する。
【００３５】
周辺マクロ２５は、マイクロコンピュータ２００におけるＣＰＵ２１以外の消費電流を必要とする装置である。周辺マクロ２５は、例えば、タイマ、ＲＡＭ（Random Access Memory）、フラッシュメモリ等である。周辺マクロ２５は、スタンバイコントローラ２２から供給されるクロック信号２６５に応じて動作するものである。また、周辺マクロ２５は、スタンバイコントローラ２２から電流を消費するモードである電流消費モードを高くするか低くするか等の指示を受け付け、当該指示に応じて、電流の消費度合を変更するものである。また、周辺マクロ２５は、タイマ等により割り込み要求２６６を発行し、割り込み制御回路２４へ送信する。例えば、周辺マクロ２５は、マイクロコンピュータ２００がＨＡＬＴモードである場合に、割り込み要求２６６を発行する。また、周辺マクロ２５は、マイクロコンピュータ２００の動作モードに関わらず、外部からの要求に基づき、割り込み要求２６６を発行することができる。尚、本発明の実施の形態２にかかる周辺マクロ２５のその他の機能は、公知なものを用いることが可能であるため、詳細な説明を省略する。
【００３６】
割り込み制御回路２４は、周辺マクロ２５から入力される割り込み要求２６６に所定の処理を加えて、スタンバイリリース信号２６７としてＣＰＵ２１及びスタンバイコントローラ２２へ出力する。ここで、スタンバイリリース信号２６７は、スタンバイモードから復帰する旨を指示する信号である。但し、本発明の実施の形態２にかかるスタンバイリリース信号２６７は、割り込み要求２６６における割り込み要因を含む信号である。そのため、スタンバイモードから他の動作モードへ遷移させる指示を含むといえる。尚、本発明の実施の形態２にかかる割り込み制御回路２４は、マイクロコンピュータ２００がスタンバイモードでない場合であっても、スタンバイリリース信号２６７をＣＰＵ２１及びスタンバイコントローラ２２へ出力してもよい。
【００３７】
図４は、本発明の実施の形態２にかかる割り込み制御回路２４の構成の一例を示すブロック図である。割り込み制御回路２４は、内部バス２４０と、割り込み要求フラグレジスタ（ＩＦ）２４１と、割り込みマスクフラグレジスタ（ＭＫ）２４２と、論理積回路２４３と、割り込み許可フラグレジスタ（ＩＥ）２４４と、優先順位指定フラグレジスタ（ＰＲ）２４５と、インサービスプライオリティフラグレジスタ（ＩＳＰ）２４６と、プライオリティコントロール回路２４７と、ベクタテーブルアドレス発生回路２４８とを備える。
【００３８】
内部バス２４０は、ＩＦ２４１、ＭＫ２４２、ＩＥ２４４、ＰＲ２４５、ＩＳＰ２４６及びベクタテーブルアドレス発生回路２４８と接続するデータバスである。ＩＦ２４１は、周辺マクロ２５から入力される割り込み要求２６６を格納するレジスタである。ＭＫ２４２は、ＩＦ２４１に格納された値をマスクするための値を格納するレジスタである。論理積回路２４３は、ＩＦ２４１に格納された値とＭＫ２４２に格納された値の反転結果との論理積を行い、スタンバイリリース信号２６７として出力する。つまり、スタンバイリリース信号２６７は、割り込み要求２６６から所定の加工を行った信号である。そのため、スタンバイリリース信号２６７には、割り込み要求２６６における割り込み要因を含むものである。併せて、論理積回路２４３は、スタンバイリリース信号２６７をプライオリティコントロール回路２４７へ出力する。
【００３９】
ＩＥ２４４は、他の割り込み要求を禁止するか否かを示す値を格納するレジスタである。ＰＲ２４５は、優先順位を指定するためのフラグを格納するレジスタである。ＩＳＰ２４６は、インサービスの優先順位を指定するためのフラグを格納するレジスタである。プライオリティコントロール回路２４７は論理積回路２４３から入力されるスタンバイリリース信号２６７について、ＩＥ２４４、ＰＲ２４５及びＩＳＰ２４６を用いて処理を行い、処理結果をベクタテーブルアドレス発生回路２４８へ出力する。
【００４０】
ベクタテーブルアドレス発生回路２４８は、割り込み要因と、割り込み要因に基づく処理のアドレスとを対応付けたベクタテーブルであるメモリ領域を備える回路である。ベクタテーブルアドレス発生回路２４８は、プライオリティコントロール回路２４７から入力される処理結果、すなわち、割り込み要因に基づき、アドレスを選択し、内部バス２４０へ出力する。
【００４１】
尚、本発明の実施の形態２にかかる割り込み制御回路２４の構成は、図４に示すものに限定されない。また、割り込み制御回路２４のその他の機能は、公知なものを用いることが可能であるため、詳細な説明を省略する。
【００４２】
図３に戻り、スタンバイコントローラ２２は、上述した本発明の実施の形態１にかかるクロック制御回路１２の具体的な構成例である。スタンバイコントローラ２２は、ＣＰＵ２１からのＨＡＬＴステータス信号２６１ａ又はＳＴＯＰステータス信号２６１ｂに応じて、ＣＰＵ２１、メインオシレータ２３ａ、サブオシレータ２３ｂ及び周辺マクロ２５を制御し、マイクロコンピュータ２００をスタンバイモードへ遷移させる制御回路である。また、スタンバイコントローラ２２は、スタンバイモードにおいて、割り込み制御回路２４から入力されるスタンバイリリース信号２６７に応じて動作モードを決定し、決定した動作モードに基づきＣＰＵ２１、メインオシレータ２３ａ、サブオシレータ２３ｂ及び周辺マクロ２５を制御する。これにより、任意の動作モードへ遷移させることができる。
【００４３】
スタンバイコントローラ２２は、クロック制御回路２２１と、動作モード設定レジスタ２２２とを備える。クロック制御回路２２１は、ＭＡＩＮＲＵＮモードにおいて、メインオシレータ２３ａから入力されるクロック信号２６３ａをクロック信号２６４としてＣＰＵ２１へ供給する。また、クロック制御回路２２１は、ＳＵＢＲＵＮモードにおいて、サブオシレータ２３ｂから入力されるクロック信号２６３ｂをクロック信号２６４としてＣＰＵ２１へ供給する。尚、いずれの場合においても、クロック制御回路２２１は、サブオシレータ２３ｂから入力されるクロック信号２６３ｂをクロック信号２６５として周辺マクロ２５へ供給する。
【００４４】
そして、クロック制御回路２２１は、ＣＰＵ２１からＨＡＬＴステータス信号２６１ａを受け付けた場合に、ＣＰＵ２１へのクロックの供給を停止して、マイクロコンピュータ２００をスタンバイモードへ遷移させる。このとき、ＭＡＩＮＲＵＮモードであれば、ＭＡＩＮＨＡＬＴモードへ遷移させ、ＳＵＢＲＵＮモードであれば、ＳＵＢＨＡＬＴモードへ遷移させる。また、クロック制御回路２２１は、ＣＰＵ２１からＳＴＯＰステータス信号２６１ｂを受け付けた場合に、ＣＰＵ２１及び周辺マクロ２５へのクロックの供給を停止すると共に、動作停止の指示を示すクロック発振制御信号２６２ａ及びクロック発振制御信号２６２ｂをメインオシレータ２３ａ及びサブオシレータ２３ｂに対して出力する。尚、いずれの場合においても、クロック制御回路２２１は、電流消費モードを低くする指示を周辺マクロ２５に対して出力する。
【００４５】
ここで、動作モード設定レジスタ２２２は、割り込み要因と動作モードとを関連付けて予め記憶する記憶領域である。すなわち、スタンバイコントローラ２２は、ＣＰＵ２１のモードと、割り込み要求の種類と、ＣＰＵ２１が遷移すべきモードとを対応付けた対応情報を保持している。図５は、本発明の実施の形態２にかかる割り込み要因と動作モードの対応の例である。図５では、割り込み要因の例として、ＩＮＴ０、ＩＮＴ１、・・・、及びＩＮＴ６を挙げている。そして、例えば、ＩＮＴ０に関連付けられた動作モードは、ＭＡＩＮＲＵＮモードであり、ＩＮＴ１に関連付けられた動作モードは、ＭＡＩＮＨＡＬＴモード等となっていることを示す。これにより、任意のモードへの遷移を定義可能となり、運用変更に柔軟に対応できる。例えば、ＳＵＢＨＡＬＴモードである場合に、割り込み要因が時計割り込みである場合、ＳＵＢＲＵＮモードを関連付けて設定し、割り込み要因がＬＩＮＵＡＲＴ受信による割り込みの場合、ＭＡＩＮＲＵＮモードを関連付けて設定することが可能である。または、割り込み要因が時計やＷＤＴ（WatchDog Timer）による定期的な割り込みである場合と、電圧低下による割り込みの場合とで異なる動作モードへ遷移させることができる。すなわち、スタンバイコントローラ２２は、割り込み要求の種類が、定期的に発生するか又は突発的に発生するかによって、ＣＰＵ２１が遷移すべき異なるモードを保持している。
【００４６】
そして、図３に戻り、クロック制御回路２２１は、割り込み制御回路２４から入力されるスタンバイリリース信号２６７における割り込み要因に関連付けられた動作モードを、動作モード設定レジスタ２２２から選択する。すなわち、クロック制御回路２２１は、スタンバイリリース信号２６７を受け付けた場合に、動作モード設定レジスタ２２２を参照し、スタンバイリリース信号２６７に含まれる割り込み要因に応じた動作モードを決定する。そして、クロック制御回路２２１は、決定した動作モードに基づきＣＰＵ２１及び周辺マクロ２５へのクロックの供給、メインオシレータ２３ａ及びサブオシレータ２３ｂの動作、並びに、周辺マクロ２５の電流消費モードを制御する。
【００４７】
図６は、本発明の実施の形態２にかかる動作モードごとのクロック制御回路の制御内容の組み合わせの例である。まず、決定した動作モードがＭＡＩＮＲＵＮモードの場合におけるクロック制御回路２２１の制御について説明する。このとき、クロック制御回路２２１は、メインオシレータ２３ａによるクロック発振を許可する。つまり、クロック制御回路２２１は、動作開始の指示であるクロック発振制御信号２６２ａをメインオシレータ２３ａに対して出力する。また、このとき、クロック制御回路２２１は、サブオシレータ２３ｂによるクロック発振を許可する。つまり、クロック制御回路２２１は、動作開始の指示であるクロック発振制御信号２６２ｂをサブオシレータ２３ｂに対して出力する。また、このとき、クロック制御回路２２１は、ＣＰＵ２１へ高速なクロックを供給する。つまり、クロック制御回路２２１は、メインオシレータ２３ａから入力されるクロック信号２６３ａをクロック信号２６４としてＣＰＵ２１へ出力する。また、このとき、クロック制御回路２２１は、周辺マクロ２５及び内蔵レギュレータ（不図示）の電流消費モードを高く設定する。つまり、クロック制御回路２２１は、電流消費モードを高くする指示を周辺マクロ２５及び内蔵レギュレータに対して送信する。
【００４８】
次に、決定した動作モードがＭＡＩＮＨＡＬＴモードの場合におけるクロック制御回路２２１の制御について説明する。このとき、クロック制御回路２２１は、メインオシレータ２３ａ及びサブオシレータ２３ｂによるクロック発振を維持する。尚、メインオシレータ２３ａ及びサブオシレータ２３ｂのいずれか又は両方が動作していない場合、クロック制御回路２２１は、動作していない回路に対してクロック発振を許可する処理を行う。また、このとき、クロック制御回路２２１は、ＣＰＵ２１へのクロックの供給を停止する。つまり、クロック制御回路２２１は、クロック信号２６４としてＣＰＵ２１への出力を行わない。また、このとき、クロック制御回路２２１は、周辺マクロ２５及び内蔵レギュレータの電流消費モードを低く設定する。つまり、クロック制御回路２２１は、電流消費モードを低くする指示を周辺マクロ２５及び内蔵レギュレータに対して送信する。
【００４９】
また、決定した動作モードがＳＵＢＲＵＮモードの場合におけるクロック制御回路２２１の制御について説明する。このとき、クロック制御回路２２１は、メインオシレータ２３ａによるクロック発振を停止する。つまり、クロック制御回路２２１は、動作停止の指示であるクロック発振制御信号２６２ａをメインオシレータ２３ａに対して出力する。但し、クロック制御回路２２１は、サブオシレータ２３ｂによるクロック発振を維持する。尚、サブオシレータ２３ｂが動作していない場合、クロック制御回路２２１は、サブオシレータ２３ｂに対してクロック発振を許可する処理を行う。また、このとき、クロック制御回路２２１は、ＣＰＵ２１へ低速なクロックを供給する。つまり、クロック制御回路２２１は、サブオシレータ２３ｂから入力されるクロック信号２６３ｂをクロック信号２６４としてＣＰＵ２１へ出力する。
【００５０】
続いて、決定した動作モードがＳＵＢＨＡＬＴモードの場合におけるクロック制御回路２２１の制御について説明する。このとき、クロック制御回路２２１は、上述したＳＵＢＲＵＮモードと同様に、メインオシレータ２３ａ及びサブオシレータ２３ｂのクロック発振を制御する。
【００５１】
さらに、決定した動作モードがＳＴＯＰモードの場合におけるクロック制御回路２２１の制御について説明する。このとき、クロック制御回路２２１は、メインオシレータ２３ａ及びサブオシレータ２３ｂによるクロック発振を停止する。つまり、クロック制御回路２２１は、動作停止の指示であるクロック発振制御信号２６２ａ及び２６２ｂをメインオシレータ２３ａ及びサブオシレータ２３ｂに対して出力する。但し、メインオシレータ２３ａ及びサブオシレータ２３ｂが動作していない場合、クロック制御回路２２１は、特に、停止する処理を行わなくても良い。
【００５２】
尚、決定した動作モードがＳＵＢＲＵＮモード、ＳＵＢＨＡＬＴモード又はＳＴＯＰモードである場合、ＭＡＩＮＨＡＬＴモードの場合と同様に、クロック制御回路２２１は、周辺マクロ２５及び内蔵レギュレータの電流消費モードを低く設定する。また、決定した動作モードがＳＵＢＨＡＬＴモード又はＳＴＯＰモードである場合、ＭＡＩＮＨＡＬＴモードの場合と同様に、クロック制御回路２２１は、ＣＰＵ２１へのクロックの供給を停止する。
【００５３】
本発明の実施の形態２にかかるスタンバイコントローラ２２は、特に、決定した動作モードがスタンバイモードである場合、ＣＰＵ２１へのクロックの供給を停止し続けるといえる。これにより、スタンバイモードからからスタンバイモードへの遷移において、消費電流を抑えることができる。
【００５４】
さらに、本発明の実施の形態２にかかるスタンバイコントローラ２２は、決定した動作モードがＳＴＯＰモードである場合に、メインオシレータ２３ａ及びサブオシレータ２３ｂの動作を停止させるものである。これにより、スタンバイモードである場合に、ＲＵＮモードを経由せず、直接、クロック発振回路の動作を停止することができる。そのため、冗長な動作モードの遷移を行う必要がなくなり、消費電流を抑えることができる。
【００５５】
図７は、本発明の実施の形態２にかかるクロック制御回路２２１の処理の流れを示すフローチャートである。まず、前提として、動作モード設定レジスタ２２２に予め、図５に示すような割り込み要因と動作モードとが関連付けられた情報が格納済みであるものとする。また、ここでは、ＭＡＩＮＲＵＮモードであるものとする。
【００５６】
まず、クロック制御回路２２１は、スタンバイリリース信号２６７を受信する（Ｓ２１）。すなわち、周辺マクロ２５から割り込み要求２６６が出力され、割り込み制御回路２４において、割り込み要求２６６について所定の加工がなされ、スタンバイリリース信号２６７が出力される。
【００５７】
次に、クロック制御回路２２１は、スタンバイリリース信号２６７に基づき、モード設定レジスタ２２２から動作モードを選択する（Ｓ２２）。すなわち、クロック制御回路２２１は、スタンバイリリース信号２６７から割り込み要因を抽出する。そして、クロック制御回路２２１は、モード設定レジスタ２２２を参照し、抽出した割り込み要因に関連付けられた動作モードを示す情報を選択する。
【００５８】
その後、クロック制御回路２２１は、選択した動作モードに基づき、メインオシレータ２３ａ及びサブオシレータ２３ｂの動作、ＣＰＵ２１へのクロックの供給並びに周辺マクロ２５等の電流消費モードを制御する（Ｓ２３）。具体的には、クロック制御回路２２１は、選択した動作モードを判別し、判別した動作モードに応じて、図６に示した各種制御を行う。
【００５９】
図８は、本発明の実施の形態２にかかる動作モード遷移の例を示すタイミングチャートである。図８では、図１２と同様に、ＳＵＢＲＵＮモードからＳＵＢＨＡＬＴモード、そして、ＳＴＯＰモードへ遷移させる場合を示す。まず、ＳＵＢＲＵＮモードにおいて、スタンバイコントローラ２２は、ＣＰＵ２１からのＨＡＬＴステータス信号２６１ａにより、ＳＵＢＨＡＬＴモードへ遷移する。そして、周辺マクロ２５からＩＮＴ６を割り込み要因とする割り込み要求２６６が発生し、割り込み制御回路２４によりＩＮＴ６の情報を含むスタンバイリリース信号２６７が出力される。このとき、クロック制御回路２２１は、スタンバイリリース信号２６７を受信し、スタンバイリリース信号２６７からＩＮＴ６の情報を抽出し、動作モード設定レジスタ２２２からＩＮＴ６に関連付けられたＳＴＯＰモードを示す情報を選択する。その後、クロック制御回路２２１は、図６に示した制御を行い、ＳＴＯＰモードへ遷移する。図１２と比較してわかるように、図８では、ＭＡＩＮＲＵＮモードへ遷移することがなくなり、不要な消費電流を削減することができる。また、ＭＡＩＮＲＵＮモードへ遷移し、さらに、ＳＴＯＰモードへ遷移する処理時間が削減される。
【００６０】
尚、図４では、マイクロコンピュータ２００の動作モードに関わらず、マスクされていない割り込み要求は、割り込み禁止状態であっても、スタンバイリリース信号として使用可能である。そのため、マイクロコンピュータ２００は、スタンバイモードでなくとも、スタンバイリリース信号２６７を受信した場合に、動作モード設定レジスタ２２２により動作モードを決定してもよい。これにより、任意の動作モードに遷移させることができ、運用変更に柔軟に対応できる。
【００６１】
これを踏まえ、図９及び図１０を用いて、本発明の実施の形態２の効果を説明する。図９は、関連技術における動作モード遷移の組み合わせを示す図である。図９では、図１２に示したような関連技術において、任意の動作モード間の遷移を行うためには、ＭＡＩＮＨＡＬＴモード、ＳＵＢＲＵＮモード、ＳＵＢＨＡＬＴモード又はＳＴＯＰモードから、一旦、ＭＡＩＮＲＵＮモードへ復帰しなければならないことを示す。そして、ＭＡＩＮＲＵＮモードへ復帰した後、ＭＡＩＮＨＡＬＴモード、ＳＵＢＲＵＮモード又はＳＴＯＰモードへ遷移する必要がある。また、任意の動作モードからＳＵＢＨＡＬＴモードへ遷移するには、ＳＵＢＲＵＮモードからさらに遷移する必要がある。
【００６２】
一方、図１０は、本発明の実施の形態２にかかる動作モード遷移の組み合わせを示す図である。図１０では、本発明の実施の形態２にかかるマイクロコンピュータ２００において、割り込み要因に応じて所望の動作モードを予め動作モード設定レジスタ２２２に設定しておくことにより、任意の動作モード間の遷移を行うことが可能であることを示す。すなわち、ＭＡＩＮＲＵＮモード、ＭＡＩＮＨＡＬＴモード、ＳＵＢＲＵＮモード、ＳＵＢＨＡＬＴモード又はＳＴＯＰモードのいずれからも、ＭＡＩＮＲＵＮモード、ＭＡＩＮＨＡＬＴモード、ＳＵＢＲＵＮモード、ＳＵＢＨＡＬＴモード又はＳＴＯＰモードへ遷移することができる。例えば、上述した図９では、ＭＡＩＮＲＵＮモードからへＳＵＢＨＡＬＴモードへは、直接、遷移することができなかったが、図１０では、直接、遷移することができる。
【００６３】
このように、本発明の実施の形態２では、ユーザが予め動作モード設定レジスタ２２２に割り込み要因毎に、スタンバイモードからの復帰時の処理時間が最少となるような動作モードに設定しておくことで、不要な動作モードの遷移を省くことができ、よりきめ細やかな電圧管理を実現することができる。
【００６４】
尚、図３において、スタンバイリリース信号２６７は、割り込み制御回路２４からＣＰＵ２１へ直接出力されず、スタンバイコントローラ２２を介してＣＰＵ２１へ出力される構成でもよい。その場合、クロック制御回路２２１は、ＣＰＵ２１のモードがスタンバイモードである場合に、ＣＰＵ２１をスタンバイモードに遷移させる割り込み要求を受信した場合は、メインオシレータ２３ａ及びサブオシレータ２３ｂを制御するとともに、ＣＰＵ２１への割り込み要求をＣＰＵ２１へ出力しないものとする。
【００６５】
これにより、ＣＰＵ２１のモードが通常モードである場合は、ＣＰＵ２１に所定の割り込み処理をさせるために、クロック制御回路２２１は、ＣＰＵ２１に割り込み要求を出力し、ＣＰＵ２１の現在のモードがスタンバイモードである場合に、スタンバイモードに遷移させる割込み要求を受信した場合には、クロック制御回路２２１は、ＣＰＵ２１を起動することなく自身がメインオシレータ２３ａ及びサブオシレータ２３ｂを制御するので、ＣＰＵ２１に割り込み要求を出力する必要がなく、本発明の課題であるＣＰＵの消費電流を低減することが可能となる。
【００６６】
＜発明の実施の形態３＞
上述した発明の実施の形態２では、スタンバイリリース信号２６７に応じて常に動作モード遷移を行っていた。本発明の実施の形態３では、遷移前と遷移後の動作モードが異なる場合のみ、動作モードの遷移を行うようにし、遷移前と遷移後の動作モードが同じ場合には、動作モードの遷移を行わないことで、スタンバイコントローラ２２における動作を抑制し、さらなる消費電流を抑えるものである。尚、本発明の実施の形態３にかかるマイクロコンピュータの構成は、図３に示した発明の実施の形態２と同等であるため、図示及び説明を省略する。但し、図３のクロック制御回路２２１に以下に示す改良を加えたものである。
【００６７】
本発明の実施の形態３にかかるクロック制御回路２２１は、割り込み要求が発生した場合に現在の動作モードを判定し、かつ、割り込み要因に応じた動作モードを決定し、判定した現在の動作モードと決定した動作モードとが異なる場合のみ、決定した動作モードに基づきＣＰＵ２１へのクロックの供給及びメインオシレータ２３ａ及びサブオシレータ２３ｂの動作を制御する。言い換えると、クロック制御回路２２１は、割り込み要求を受信した場合にＣＰＵ２１のモードを判定し、かつ、割り込み要求の種類に応じたＣＰＵ２１が遷移すべきモードを決定し、判定したＣＰＵ２１のモードと決定したＣＰＵ２１が遷移すべきモードとが異なる場合のみ、決定したＣＰＵ２１が遷移すべきモードに基づきメインオシレータ２３ａ及びサブオシレータ２３ｂを制御する。これにより、割り込み要求があったとしてもモード遷移が不要な場合には、制御を変更しないことで、消費電流を抑えることができる。
【００６８】
図１１は、本発明の実施の形態３にかかるクロック制御回路２２１の処理の流れを示すフローチャートである。ここでは、図７と同様の前提とする。まず、クロック制御回路２２１は、図７のステップＳ２１と同様に、スタンバイリリース信号２６７を受信する（Ｓ３１）。次に、クロック制御回路２２１は、図７のステップＳ２２と同様に、スタンバイリリース信号２６７に基づき、モード設定レジスタ２２２から動作モードを選択する（Ｓ３２）。
【００６９】
ここで、クロック制御回路２２１は、現在の動作モードを確認する（Ｓ３３）。例えば、クロック制御回路２２１は、クロック信号２６４、クロック信号２６３ａ及び２６３ｂの入出力状態により、現在の動作モードを判定してもよい。
【００７０】
続いて、クロック制御回路２２１は、選択した動作モードと現在の動作モードとが異なるか否かを判定する（Ｓ３４）。選択した動作モードと現在の動作モードとが同じと判定した場合、クロック制御回路２２１は、処理を終了する。すなわち、このとき、クロック制御回路２２１は、動作モードの遷移を行わない。例えば、現在の動作モードがＭＡＩＮＨＡＬＴモードである場合に、割り込み要因が図５に示すＩＮＴ１であるときは、ＭＡＩＮＨＡＬＴモードが決定されるため、動作モードの遷移が行われない。よって、クロック制御回路２２１の冗長な処理を抑えることができ、消費電流を抑えることができる。
【００７１】
ステップＳ３４において、選択した動作モードと現在の動作モードとが異なると判定した場合、クロック制御回路２２１は、選択した動作モードと現在の動作モードとに基づき、メインオシレータ２３ａ及びサブオシレータ２３ｂの動作、ＣＰＵ２１へのクロックの供給並びに周辺マクロ２５等の電流消費モードを制御する（Ｓ３５）。具体的には、クロック制御回路２２１は、すでに制御済みの処理について実行しない。図６の例において、現在の動作モードがＭＡＩＮＨＡＬＴモードであり、選択した動作モードがＳＴＯＰモードである場合で説明する。クロック制御回路２２１は、ＭＡＩＮＨＡＬＴモードへ遷移した時点で、ＣＰＵ２１へのクロックの供給を停止済みである。そのため、ＭＡＩＮＨＡＬＴモードにおいて、ＳＴＯＰモードへ遷移する場合、クロック制御回路２２１は、再度、ＣＰＵ２１へのクロックの供給の停止を行わない。同様に、周辺マクロ２５及び内蔵レギュレータの電流消費モードが低く設定済みであるため、クロック制御回路２２１は、再度、周辺マクロ２５及び内蔵レギュレータの電流消費モードの設定変更を行わない。これにより、クロック制御回路２２１の冗長な処理を抑えることができ、消費電流を抑えることができる。
【００７２】
＜その他の発明の実施の形態＞
本発明の実施の形態２のスタンバイコントローラ２２は、割り込み要求が発生した場合に現在の動作モードを判定し、現在の動作モードがスタンバイモードであると判定した場合に、動作モードを決定するようにしてもよい。言い換えると、スタンバイコントローラ２２は、ＣＰＵ２１のモードがスタンバイモードである場合に、割り込み要求を受信した場合は、ＣＰＵ２１が遷移すべきモードを決定するようにしてもよい。これにより、スタンバイモードである場合にのみ、割り込み要因に基づく動作モードの遷移を行わせ、スタンバイモード以外の場合は、通常通りの動作モードの遷移を実行させることができる。つまり、関連技術にかかるマイクロコンピュータを改良するコストを抑えることができる。
【００７３】
この場合、例えば、図７のステップＳ２１とＳ２２の間に、クロック制御回路２２１がマイクロコンピュータ２００における現在の動作モードを判定する処理を追加するとよい。例えば、クロック制御回路２２１は、クロック信号２６４、クロック信号２６３ａ及び２６３ｂの入出力状態により、現在の動作モードを判定してもよい。
【００７４】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【符号の説明】
【００７５】
１００  マイクロコンピュータ
１１  ＣＰＵ
１２  クロック制御回路
１３  クロック発振回路
１６１  スタンバイ要求
１６２  クロック発振制御信号
１６３  クロック信号
１６４  クロック信号
１６５  割り込み要求
２００  マイクロコンピュータ
２１  ＣＰＵ
２２  スタンバイコントローラ
２２１  クロック制御回路
２２２  動作モード設定レジスタ
２３ａ  メインオシレータ
２３ｂ  サブオシレータ
２４  割り込み制御回路
２４０  内部バス
２４１  ＩＦ
２４２  ＭＫ
２４３  論理積回路
２４４  ＩＥ
２４５  ＰＲ
２４６  ＩＳＰ
２４７  プライオリティコントロール回路
２４８  ベクタテーブルアドレス発生回路
２５  周辺マクロ
２６０  スタンバイ命令
２６１ａ  ＨＡＬＴステータス信号
２６１ｂ  ＳＴＯＰステータス信号
２６２ａ  クロック発振制御信号
２６２ｂ  クロック発振制御信号
２６３ａ  クロック信号
２６３ｂ  クロック信号
２６４  クロック信号
２６５  クロック信号
２６６  割り込み要求
２６７  スタンバイリリース信号
【図１】
0005486368.tif 000002
【図２】
0005486368.tif 000003
【図３】
0005486368.tif 000004
【図４】
0005486368.tif 000005
【図５】
0005486368.tif 000006
【図６】
0005486368.tif 000007
【図７】
0005486368.tif 000008
【図８】
0005486368.tif 000009
【図９】
0005486368.tif 000010
【図１０】
0005486368.tif 000011
【図１１】
0005486368.tif 000012
【図１２】
0005486368.tif 000013