(57)【特許請求の範囲】
【請求項１】
所定のプログラムに従って動作するＣＰＵと、
該ＣＰＵへ動作クロックを供給すると共に、該ＣＰＵからの周波数切替指令に応じて前記動作クロックの周波数を切り替える動作クロック切替部と、
を備えたマイクロコンピュータにおいて、
前記動作クロック切替部は、前記周波数切替指令に応じて前記ＣＰＵへ出力する動作クロックの周波数の切替を完了したときに、前記ＣＰＵがその旨を認識するための報知信号を出力し、
前記ＣＰＵは、前記動作クロックを低速から高速に切り替える周波数切替指令をした後、高速で処理すべき複数のタスク処理の実行要求が発生した場合には、少なくとも前記周波数切替指令時から前記報知信号を受けるまで、前記複数のタスクのうち優先順位の低い少なくとも一つのタスク処理を行わないことを特徴とするマイクロコンピュータ。
【請求項２】
請求項１記載のマイクロコンピュータにおいて、さらに、
前記動作クロック切替部が出力した報知信号を、前記ＣＰＵに割込入力させる割込手段を備えたことを特徴とするマイクロコンピュータ。
【請求項３】
請求項１記載のマイクロコンピュータにおいて、さらに、
前記動作クロック切替部が出力した報知信号を受けて、前記動作クロックの切替完了を表す完了フラグをセットする切替状態確認レジスタを備えたことを特徴とするマイクロコンピュータ。
【請求項４】
請求項１に記載のマイクロコンピュータにおいて、さらに、
前記動作クロック切替部が出力した報知信号を、前記ＣＰＵに割込入力させる割込手段と、
前記動作クロック切替部が出力した報知信号を受けて、前記動作クロックの切替完了を表す完了フラグをセットする切替状態確認レジスタと、
前記ＣＰＵが前記割込入力を許可する旨を表す許可フラグをセットする切替割込確認レジスタと、
を備え、
前記割込手段は、前記報知信号を受けた際に、前記切替状態確認レジスタの完了フラグと、前記切替割込確認レジスタの許可フラグとが共にセットされている場合に、該報知信号を前記ＣＰＵに割込入力させることを特徴とするマイクロコンピュータ。
【請求項５】
請求項２又は請求項４に記載のマイクロコンピュータにおいて、さらに、
前記動作クロックを用いてカウントし、現在の時刻を計時する計時用カウンタを備え、
前記ＣＰＵは、前記報知信号を受けた時点において前記計時用カウンタが示す第１カウント値と前記周波数切替指令時において前記計時用カウンタが示す第２カウント値との差と、前記動作クロックの切替前後における該動作クロックの周波数比とに基づいて、前記周波数切替指令時から前記周波数の切替完了時までの前記計時用カウンタのカウント数の誤差を算出し、該ＣＰＵが実行する割込処理のタイミングを補正することを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコンピュータに関し、詳しくは処理負荷に応じて動作クロックを切り替えて動作するマイクロコンピュータに関する。
【０００２】
【従来の技術】
従来より、マイクロコンピュータ（以下単に「マイコン」という）の消費電力を低減するために、マイコンの動作クロックを、マイコンの処理負荷に応じて切り替える方法がとられている。すなわち、このようなマイコンでは、低負荷時には消費電流の小さい低速の動作クロック（以下「低速クロック」ともいう）で動作し、高負荷時には消費電流の比較的大きい高速の動作クロック（以下「高速クロック」ともいう）に切り替えて動作することにより、マイコン全体としての消費電流を抑えている。
【０００３】
具体的には、図４に示すように、このようなマイコン１０１は、所定のプログラムに従って動作するＣＰＵ１１，予め各種の数値やプログラムが書き込まれたＲＯＭ１３，及び演算過程の数値やフラグが所定の領域に書き込まれるＲＡＭ１５等の基本構成、ＣＰＵ１１へ動作クロックを供給すると共に、ＣＰＵ１１からの周波数切替指令に応じて動作クロックの周波数を切り替える動作クロック切替部２０、及びＣＰＵ１１が割込制御処理を実行する際に用いられるタイマ部３０等を備える。
【０００４】
動作クロックは、外部発振子５０を振動させて一定周波数Ｆ０の基準クロックを外部発振回路２１で生成し、この基準クロックを動作クロック切替部２０で切り替えることにより得ている。そして、この動作クロック切替部２０は、基準クロックをＮ分周する分周回路２３、この分周回路２３にて分周されたクロックの周波数（＝Ｆ０／Ｎ）をＭ倍に逓倍する逓倍回路２５、及びこの逓倍回路２５から出力された一定周波数Ｆ（＝Ｆ０×Ｍ／Ｎ）の信号を動作クロックとしてＣＰＵ１１に供給する切替制御部２７から構成される。
【０００５】
この動作クロックの周波数Ｆを決定する分周回路２３の分周値Ｎ及び逓倍回路２５の逓倍値Ｍは、ＣＰＵ１１からの指令により切り替えられ、これによって、動作クロックの周波数Ｆが、例えばＦ＝１６ＭＨｚの高速、或いはＦ＝４ＭＨｚの低速に切り替えられる。また、分周回路２３又は逓倍回路２５は、ＣＰＵ１１側からその動作を停止させることにより、動作クロックを周波数Ｆ＝０の停止状態へと切り替えることもできる。この周波数の切り替えに際しては、切替制御部２７が分周回路２３及び逓倍回路２５の動作状態を監視し、これらの状態が安定したことを確認してから動作クロックの切替処理を実行する。
【０００６】
また、動作クロック切替部２０においては、動作クロックの切り替えの際に過渡期（動作クロックが低速クロックと高速クロックとの中間となる時期）が発生しないように、分周回路２３及び逓倍回路２５がそれぞれ並列した回路構成となっており、低速クロック（本実施例では４ＭＨｚ）と高速クロック（本実施例では１６ＭＨｚ）を予め同時に生成できるように構成されている。
【０００７】
すなわち、分周回路２３には第１分周回路２３ａ及び第２分周回路２３ｂが、逓倍回路２５には第１逓倍回路２５ａ及び第２逓倍回路２５ｂがそれぞれ設けられている。そして、第１分周回路２３ａと第１逓倍回路２５ａとにより低速クロックを生成し、第２分周回路２３ｂと第２逓倍回路２５ｂとにより高速クロックを生成する。この生成された動作クロックは、切替制御部２７内の図示しないバッファ（ダブルバッファ）に供給され、その一方の動作クロックがＣＰＵ１１に供給される。そして、ＣＰＵ１１からの周波数切替指令があると、切替制御部２７は、両動作クロックの同期をとってから切替処理をし、指令にかかる他方の動作クロックを供給すると共に、それまで供給していた動作クロックの供給を停止する。この切替タイミングは切替制御部２７側で調整でき、両動作クロックの同期がとれてから瞬時にして切り替えられるため、動作クロックの切り替えに際して過渡期を発生させないようにすることができる。
【０００８】
タイマ部３０は、動作クロックに基づいて常時カウントアップされる計時用カウンタとしてのフリーランニングカウンタ（ＦＲＣ）３１、ＦＲＣ３１のカウント値と比較される時間情報としての値がＣＰＵ１１によってセットされるアウトプットコンペアレジスタ（ＯＣＲ）３３、及び、ＦＲＣ３１のカウント値とＯＣＲ３３にセットされた値とを比較し、両値が一致すると所定のタイマ割込要求を発生する比較器３５を備える。つまり、ＣＰＵ１１に供給される動作クロックは、分周回路３７を介して所定分周（通常は固定値）された後、ＦＲＣ３１にも供給される。
【０００９】
【発明が解決しようとする課題】
しかしながら、このようなマイコン１０１においては、マイコン１０１の動作クロックを低速クロック（例えば４ＭＨｚ）から高速クロック（例えば１６ＭＨｚ）に切り替える際に、上述のように切替制御部２７が切り替えの同期をとるための時間等が必要となる。このため、例えば図５（ａ）に示すように、ＣＰＵ１１による周波数切替指令が発生した時点と当該切替が完了した時点との間に時間遅延が生じる。その結果、この動作クロックを分周回路３７にて分周してＦＲＣ３１に入力されるパルスも同図（ｂ）に示されるように遅延を生じることになる。
【００１０】
すなわち、同図（ｂ）には、ＦＲＣ３１が分周回路３７から入力されたパルスの立ち下がりに同期してカウントアップする例が示されているが（同図上段及び中段）、従来構成においてはＣＰＵ１１が当該時間遅延を認識することができないため、以下の問題が生じた。
【００１１】
第１に、従来においては、このような遅延時間があるにもかかわらず、同図（ｂ）下段に示すように、切替指令時から高速クロックに切り替わったことを前提としてＯＣＲ３３の値がセットされ、ＦＲＣ３１のカウント値がこれに一致した時点で所定の割込処理が実行されていた。このため、実際には同図（ｂ）中段に示すように、時間遅延によってＦＲＣ３１によるカウント時刻は設定時刻より遅れることになる（同図（ｂ）では６カウント分の遅れがある）。その結果、ＦＲＣ３１のカウント値がＯＣＲ３３の設定時刻に一致して割込処理が実行される時点が、当初予定した時刻よりも遅れ、特に迅速な処理や精密な処理が必要な場合にはこれを実行することができないといった問題があった。
【００１２】
第２に、従来においては、このような遅延時間があるにもかかわらず、切替指令時から高速クロックに切り替わったことを前提として処理が開始されていた。
このため、高速処理が必要なときに切替前の低速クロックで処理が開始してしまう場合があった。例えば、周波数切替指令をした後、高速クロックにて処理することを前提として複数のタスク処理の実行要求が発生した場合には、低速クロックの状態でこれらのタスク処理の実行が開始されることになる。そのため、各タスクの処理速度が遅くなって所定の時間内に処理が終了しないという事態が生じたり、或いは、各タスクが所定の時間に終了しないためにＣＰＵによる処理の破綻が生じ、マイコン１０１による制御処理を安定して実行できなくなるという問題があった。
【００１３】
そして、このような問題に対処するために、静的な設計検証（ドキュメント）及び実機試験等にて上記時間遅延のばらつきを測定し、これらから得られるデータを分析することにより当該時間遅延に対処する方法もとられたが、近年のマイコンへの多機能化の要請に伴い、それにも限界が生じた。
【００１４】
本発明は、こうした問題に鑑みなされたものであり、マイコンの動作クロックの切替処理を、マイコンが実行する制御処理に影響を与えることなく実行することができるようにすることを目的とする。
【００１５】
【課題を解決するための手段】
かかる課題に鑑み、請求項１記載のマイコンにおいては、動作クロック切替部が、ＣＰＵに対して動作クロックを供給すると共に、このＣＰＵからの周波数切替指令に応じて動作クロックの周波数を切り替える。ここまでは従来と同様であるため、周波数切替指令から実際に動作クロックの切り替えが完了するまでには上述した時間遅延が発生することになるが、当該マイコンは、さらにこの遅延時間を考慮して実際の制御タイミングを設定できる構成を備える。
【００１６】
すなわち、請求項１記載のマイコンにおいては、動作クロック切替部が、この周波数切替指令に応じてＣＰＵへ出力する動作クロックの周波数の切替を完了したときに、ＣＰＵがその旨を認識するための報知信号を出力する。
【００１７】
このため、ＣＰＵはこの報知信号を受けることにより、動作クロックの周波数が指令した周波数に切り替わったことを認識でき、この報知信号を受けた時点を基準にして遅延時間を考慮した制御処理ができる。つまり後述のように、遅延時間を算出してＣＰＵの制御タイミングを補正したり、遅延時間を避けて制御処理を実行する等の処置をとることができる。
また、動作クロックを低速クロックから高速クロックに切り替える周波数切替指令をした後、高速クロックにて処理すべき複数のタスク処理の実行要求が発生した場合には、ＣＰＵは、少なくとも周波数切替指令時から報知信号を受けるまで、複数のタスクのうち優先順位の低い少なくとも一つのタスク処理を行わない。
このため、ＣＰＵは優先順位の低いタスク処理に割り当てられた処理時間を優先順位の高いタスク処理に費やすことができ、当該優先順位の高いタスク処理を遅延なく実行することができる。このため、ＣＰＵによる制御処理に破綻が生じることもない。尚、このとき処理が実行されなかった優先順位の低いタスク処理については、動作クロックが高速クロックに切り替わった後に実行することができる。
【００１８】
具体的には、請求項２に記載のように、割込手段が、動作クロック切替部が出力した報知信号をＣＰＵに割込入力させる構成としてもよい。
このように構成することにより、ＣＰＵが周波数切替指令を発生した時点から実際に周波数が切り替わった時点まで、ＣＰＵに切替前の周波数の動作クロックが入力されている事実、及び、その間切替前の動作クロックを用いて計時用カウンタ（ＦＲＣ等）がカウントしたカウント数を把握することができる。このため、後述のようにＣＰＵの制御タイミングのずれを補正することができ、マイコンによる制御を動作遅れなく、安定して実行することができる。
【００１９】
また、請求項３に記載のように切替状態確認レジスタを設置し、動作クロック切替部による報知信号の出力により当該レジスタに動作クロックの切替完了を表す完了フラグをセットする構成としてもよい。
すなわち、かかる構成によれば、ＣＰＵが必要に応じてこの切替状態確認レジスタを参照することにより、動作クロックの切替完了の有無を確認することができる。このため、例えばＣＰＵが周波数切替指令を発生したにもかかわらず、いつまで経っても当該切替状態確認レジスタがセットされない場合には、ＣＰＵは動作クロック切替部が故障したと判定することができる。このような故障診断機能を備える構成とすることにより、マイコンの迅速なメンテナンスに供することができる。
【００２０】
また、ＣＰＵが優先度の高い処理を実行している場合には、割込手段による割込処理を実行することなく当該優先度の高い処理を継続することが必要な場合がある。従って、このようなＣＰＵの事情に応じた処理が行える構成とするのが好ましい。
【００２１】
そこで、請求項４に記載のように、切替割込確認レジスタを設置し、ＣＰＵが上記割込手段による割込入力を許可する場合には、その旨を表す許可フラグをセットする構成とするのがよい。
すなわち、この場合には、切替状態確認レジスタの完了フラグと切替割込確認レジスタの許可フラグが共にセットされている場合にのみ、割込手段がＣＰＵに対して報知信号を割込入力させる。換言すれば、両フラグがセットされていない場合には、割込が許可されずＣＰＵには報知信号が入力されない。このため、ＣＰＵが当該切替割込確認レジスタをクリアの状態で保持すれば、例えばＣＰＵが優先度の高い処理を実行していた場合に報知信号が出力されても、ＣＰＵは当該処理の実行を中断することなく継続することができる。この結果、ＣＰＵの事情に応じた処理を行うことができる。
【００２２】
そして、上述のようにＣＰＵの制御タイミングのずれを補正するための具体的構成としては、現在の時刻を計時する計時用カウンタのカウント値を用いて当該補正を行う請求項５に記載の構成が考えられる。
すなわち、一般に、ソフトウェアによる制御におけるタイマ割込処理は、当該ソフトウェアが所定のレジスタに設定した時刻（ＯＣＲ等）と、計時用カウンタ（ＦＲＣ等）によりカウントされた時刻とが一致したときに実行される。従って、上記時間遅延による制御タイミングの誤差は、当該時間遅延があるにもかかわらず周波数切替指令時に動作クロックが切り替わったものとみなして上記設定時刻が設定されていることに起因する。
【００２３】
そこで、請求項５に記載のマイコンにおいては、ＣＰＵが、まず、報知信号を受けた時点において計時用カウンタが示す第１カウント値と、周波数切替指令時において計時用カウンタが示す第２カウント値との差を算出する。そして、このカウント値の差に、動作クロックの切替前後における周波数比を乗算することにより、本来得るべきカウント数（つまり、周波数切替時の時間遅延がなく周波数切替指令時に動作クロックが切り替わったと想定した場合のカウント数）を算出する。そして、この本来得るべきカウント数と、周波数切替指令時から切替完了時までの計時用カウンタの実際のカウント数との誤差を算出する。
【００２４】
このため、この誤差分を上記設定時刻から差し引いた時刻を、補正時刻として上記所定のレジスタに再度設定することにより、計時用カウンタのカウント値と上記所定のレジスタの設定時刻とが本来の制御タイミングで一致し、その結果、ＣＰＵは本来の制御タイミングで割込処理を実行することができるようになる。
【００２７】
【発明の実施の形態】
以下、本発明の実施例を図面と共に説明する。尚、本実施例において、上述した従来構成と同様の部分については同様の符号を付し、その説明を適宜省略する。
【００２８】
図１は、本発明が適用されたマイコン１の構成を表すブロック図である。
本実施例のマイコン１は、例えば自動車に搭載されて自動車各部を制御するために用いられるものであり、図１に示すように、ＣＰＵ１１，ＲＯＭ１３，ＲＡＭ１５等の基本構成、動作クロック切替部２０、タイマ部３０等に加え、さらに、ＣＰＵ１１に対し動作クロックの切替完了を報知するための割込処理を制御する動作クロック切替要因による割込制御部４０（割込手段）を備える。
【００２９】
そして、動作クロック切替部２０の切替制御部２７は、ＣＰＵ１１からの周波数切替指令に従って動作クロックを切り替え、切替後の動作クロックをＣＰＵ１１に対して供給すると共に、当該切替処理が完了した時点でその旨を表す報知信号を動作クロック切替要因による割込制御部４０に対して出力する。
【００３０】
動作クロック切替要因による割込制御部４０は、切替制御部２７から入力された上記報知信号を受けて、動作クロックの切替完了を表す完了フラグをセットする切替状態確認レジスタ４１、ＣＰＵ１１が割込入力を許可する場合にその旨を表す許可フラグをセットする切替割込確認レジスタ４３、これらの両フラグがセットされたときに上記報知信号を通過させるアンド回路４５から構成され、動作クロック切替要因による割込制御部４０を通過した報知信号は、割込発生回路４７によりＣＰＵ１１に割込入力される。
【００３１】
この切替状態確認レジスタ４１には、切替制御部２７からの報知信号の入力により完了フラグがセットされるが、アンド回路４５により割込入力が許可されＣＰＵ１１に当該報知信号が供給されると、自動的にクリアされる。
また、切替割込確認レジスタ４３には、ＣＰＵ１１が通常処理を行っている場合には、ＣＰＵ１１が許可フラグをセットする。従って、このとき切替制御部２７から動作クロックの切替完了を示す報知信号が出力されると、アンド回路４５により割込が許可され、直ちにＣＰＵ１１への割込入力が行われる。
【００３２】
一方、ＣＰＵ１１が優先度の高い重要処理を実行する際には、上記報知信号の割込による重要処理の中断を回避するため、切替割込確認レジスタ４３の許可フラグはクリアされる。このため、このとき切替制御部２７から動作クロックの切替完了を示す報知信号が出力されても、アンド回路４５により割込が拒否され、ＣＰＵ１１への割込入力は阻止される。この結果、ＣＰＵ１１は、当該重要処理の実行を中断することなく継続することができる。
【００３３】
次に、動作クロックの切替処理時におけるＣＰＵ１１の制御タイミングの補正方法について、図２に基づいて説明する。尚、ここでは、動作クロックが低速クロックから高速クロックへ切り替えられた場合の処理を例に説明する。
同図（ａ）に示すように、マイコン１の動作クロックを低速クロック（本実施例では４ＭＨｚ）から高速クロック（本実施例では１６ＭＨｚ）に切り替える際には、前述したようにＦＲＣ３１のカウント値に遅延が生じる。
【００３４】
つまり、同図（ａ）中段が、ＣＰＵ１１による周波数切替指令があった後の実際のＦＲＣ３１のカウント状態を示し、同図（ａ）下段が、切替指令時から高速クロックに切り替わったことを想定したＦＲＣ３１のカウント状態を示すのであるが、両者には切替指示時から切替完了時の間のカウント値にずれがある（同図（ａ）の例では、６カウント分のずれがある）。
【００３５】
しかし、ＣＰＵ１１は、既に後者のカウント状態を前提としてＯＣＲ３３の値（時刻）を設定しているため、この状態でタイマ割込処理が実行されると、予定した時刻よりも（６カウント分）遅れて当該割込処理が実行されることになる。
そこで、同図（ｂ）に示すように、まずＦＲＣ３１の値を参照して、ＣＰＵ１１による切替指令時から切替制御部２７による切替完了時までの当該ＦＲＣ３１のカウント数を算出する。本例の場合、２カウントが算出される。
【００３６】
続いて、このカウント数に切替前後の周波数比（本実施例では１６／４＝４）を乗算することにより、本来のカウント数（つまり、切替指令時から高速クロックに切り替わったことを想定した場合のＦＲＣ３１のカウント数）を算出する。
本例の場合、８カウント（＝２×４）ということになる。
【００３７】
続いて、この本来のカウント数から実際のカウント数を減算することにより、切替指令時から切替完了時までのカウント数の誤差（Δｔ）を算出する。本例の場合、当該誤差Δｔは６カウント（＝８−２）ということになる。
そして、ＯＣＲ３３の既設定値ｔからこの誤差分Δｔを減算した値ｔ’（＝ｔ−Δｔ）を、補正値としてＯＣＲ３３に再度設定する。すると、実際にＯＣＲ３３に設定された時刻が本来の制御タイミングに一致する。このため、ＦＲＣ３１の時刻が本来の制御タイミングでＯＣＲ３３の設定値に一致し、正規の時刻で割込要求が発生する。その結果、ＣＰＵ１１は、当初予定した制御処理を正常に実行することができる。
【００３８】
次に、動作クロックの切替処理時においてＣＰＵ１１が実行する制御タイミングの補正処理について、図３のフローチャートに基づいて説明する。
まず、ＣＰＵ１１は、切替制御部２７に対して周波数Ｆ１から周波数Ｆ２への周波数切替指令を出力すると（Ｓ１１０）、その切替指令時におけるＦＲＣ３１のカウント値ｔ１（第１カウント値）を読み込む（Ｓ１２０）。
【００３９】
そして、切替制御部２７からの報知信号の入力を待ち（Ｓ１３０）、その入力により切替処理が完了したと判断すると（Ｓ１３０：ＹＥＳ）、その切替完了時点でのＦＲＣ３１のカウント値ｔ２（第２カウント値）を読み込む（Ｓ１４０）。そして、今回の切替処理が低速クロックから高速クロックへの切替処理であるか否かを判断し（Ｓ１５０）、低速クロックから高速クロックへの切替処理であると判断すると（Ｓ１５０：ＹＥＳ）、Ｓ１６０へ進む。
【００４０】
そして、まず、切替指示時から切替完了時までの間の本来のカウント数ｔ０（つまり、周波数切替時の時間遅延がなく周波数切替指令時に動作クロックが切り替わったと想定した場合のカウント数）を算出する（Ｓ１６０）。この際の演算は、上記において説明した通りであり、切替指令時から切替完了時までのＦＲＣ３１のカウント数（ｔ２ーｔ１）に、切替前後の周波数比（Ｆ２／Ｆ１）を乗算して行われる。
【００４１】
続いて、上述した本来のカウント数と実際のカウント数との誤差（つまり補正値）Δｔを算出する（Ｓ１７０）。この際の演算は、本来のカウント数ｔ０から切替指令時から切替完了時までのＦＲＣ３１のカウント数（ｔ２ーｔ１）を減算することにより行われる。
【００４２】
そして、こうして算出された補正値ΔｔをＯＣＲ３３の既設定値から減算することにより、当該ＯＣＲ３３の値を補正する（Ｓ１８０）。
一方、Ｓ１５０において、今回の切替処理が低速クロックから高速クロックへの切替処理ではない（つまり高速クロックから低速クロックへの切替処理である）と判断された場合には（Ｓ１５０：ＮＯ）、Ｓ１９０へ進む。
【００４３】
そして、まず、切替指示時から切替完了時までの間の本来のカウント数ｔ０を上記Ｓ１６０と同様に算出する（Ｓ１９０）。
続いて、補正値Δｔを算出する（Ｓ２００）。この際の演算は、切替指令時から切替完了時までのＦＲＣ３１のカウント数（ｔ２ーｔ１）から本来のカウント数ｔ０を減算することにより行われる。
【００４４】
そして、こうして算出された補正値ΔｔをＯＣＲ３３の既設定値に加算することにより、当該ＯＣＲ３３の値を補正する（Ｓ２１０）。
以上のように、本実施例のマイコン１によれば、切替制御部２７から切替完了を示す報知信号が出力されることにより、ＣＰＵ１１は、周波数切替指令を発生した時点から実際に周波数が切り替わった時点まで切替前の周波数の動作クロックが入力されている事実と、その間切替前の動作クロックを用いてＦＲＣ３１がカウントしたカウント数を把握することができる。このため、上述したＯＣＲ３３の値を補正することができ、それにより、ＣＰＵ１１の制御タイミングのずれを補正することができる。この結果、マイコン１による制御を動作遅れなく、安定して実行することができる。
【００４５】
以上、本発明の実施例について説明したが、本発明の実施の形態は、上記実施例に何ら限定されることなく、本発明の技術的範囲に属する限り種々の形態をとり得ることはいうまでもない。
例えば、上記各実施例では述べなかったが、切替完了時にＣＰＵ１１に報知信号が入力される構成を利用して、ＣＰＵ１１が、切替完了前の処理の効率化を図ることも可能である。
【００４６】
例えば、ＣＰＵ１１が動作クロックを低速クロックから高速クロックに切り替える周波数切替指令をした後、高速クロックにて処理すべき複数のタスク処理の実行要求が発生した場合には、ＣＰＵ１１は、切替指令時から当該報知信号を受けるまで、複数のタスクのうち優先順位の低い少なくとも一つのタスク処理を行わないよう構成することができる。
【００４７】
このようにすれば、ＣＰＵ１１は優先順位の低いタスク処理に割り当てられた処理時間を優先順位の高いタスク処理に費やすことができるため、当該優先順位の高いタスク処理を遅延なく実行することができる。
【図面の簡単な説明】
【図１】  実施例のマイクロコンピュータの概略構成を表すブロック図である。
【図２】  実施例のマイクロコンピュータにおいて実行される動作クロック切替時の補正処理の説明図である。
【図３】  実施例のマイクロコンピュータにおいて、動作クロック切替時にＣＰＵが実行する補正処理を表すフローチャートである。
【図４】  従来のマイクロコンピュータの概略構成を表すブロック図である。
【図５】  従来のマイクロコンピュータにおける問題点を説明する説明図である。
【符号の説明】
１・・・マイクロコンピュータ、  １１・・・ＣＰＵ、
２０・・・動作クロック切替部、  ２３・・・分周回路、  ２５・・・逓倍回路、２７・・・切替制御部、  ３０・・・タイマ部、
３１・・・フリーランニングカウンタ、
３３・・・アウトプットコンペアレジスタ、
３５・・・比較器、  ４０・・・動作クロック切替要因による割込制御部、
４１・・・切替状態確認レジスタ、  ４３・・・切替割込確認レジスタ、
４５・・・アンド回路、  ４７・・・割込発生回路、  ５０・・・外部発振子
【図１】
0003700581.tif 000002
【図２】
0003700581.tif 000003
【図３】
0003700581.tif 000004
【図４】
0003700581.tif 000005
【図５】
0003700581.tif 000006