(57)【要約】【課題】低消費電力モードの設定が可能に構成される場合に、外来ノイズの影響を極力低減することができるマイクロコンピュータを提供する。【解決手段】マイコン３１のＣＰＵ３２は、スリープモードが再起動タイマ３６によって周期的に解除される毎に、入出力端子４２の信号出力レベルを再設定してからスリープモードに移行するので、ＣＰＵ３２が、たとえ、スリープモード移行中に外来ノイズの影響を受けることで入出力端子の信号出力レベルが変化したとしても、その出力レベルはスリープモードが周期的に解除される毎に再設定されるようになり、マイコン３１の信頼性が向上する。【選択図】図９
2008123538.tif 000002
【特許請求の範囲】
【請求項１】
内部状態を保持したまま動作を一時的に停止する低消費電力モードの設定が可能に構成されるＣＰＵと、
前記低消費電力モードを周期的に解除するための解除タイマとを備え、
前記ＣＰＵは、低消費電力モードが解除されると、外部信号端子のレベルを再設定し、その後、低消費電力モードに移行することを特徴とするマイクロコンピュータ。
【請求項２】
内部状態を保持したまま動作を一時的に停止する低消費電力モードの設定が可能に構成されるＣＰＵを備えると共に、
前記低消費電力モードは、解除要因が発生することによって解除されるように設定され、
前記ＣＰＵが低消費電力モードに移行する場合に、外部信号端子をハイインピーダンス状態に設定する端子制御手段を備えることを特徴とするマイクロコンピュータ。
【請求項３】
内部状態を保持したまま動作を一時的に停止する低消費電力モードの設定が可能に構成されるＣＰＵと、
前記低消費電力モードを周期的に解除するための解除タイマと、
前記低消費電力モードが設定されている期間内に、外部信号出力端子のレベルを変化させる信号レベル変化手段とを備えて構成されることを特徴とするマイクロコンピュータ。
【請求項４】
前記信号レベル変化手段は、
前記外部信号出力端子のレベルを変化させるタイミングを設定するためのレジスタと、
前記ＣＰＵが低消費電力モードに移行した時点からカウント動作を開始するレベル変化用タイマと、
前記レベル変化用タイマのカウント値と前記レジスタの値とを比較して、両者が一致するとトリガ信号を出力する比較回路とを備え、前記トリガ信号が出力されると、前記外部信号出力端子のレベルを変化させるように構成されていることを特徴とする請求項３記載のマイクロコンピュータ。
【請求項５】
前記レジスタは、前記ＣＰＵによって任意のデータ値が設定可能に構成されていることを特徴とする請求項４記載のマイクロコンピュータ。
【請求項６】
前記信号レベル変化手段によって変化された外部信号出力端子のレベルは、前記低消費電力モードが解除されると、前記ＣＰＵによってリセットすることが可能に構成されていることを特徴とする請求項４または５記載のマイクロコンピュータ。
【請求項７】
前記低消費電力モードは、前記解除タイマ以外の解除要因が発生した場合も解除されるように設定されており、
前記信号レベル変化手段が前記外部信号出力端子のレベルを変化させた後、前記解除要因の発生によって低消費電力モードが解除されると、前記解除タイマによって前記低消費電力モードが解除される予定のタイミングで、前記ＣＰＵに対して割り込み要求を発生させる割り込み発生手段を備えたことを特徴とする請求項６記載のマイクロコンピュータ。
【請求項８】
前記レベル変化用タイマは、前記解除タイマと共通で構成されていることを特徴とする請求項４乃至７の何れかに記載のマイクロコンピュータ。
【請求項９】
前記解除タイマは、前記ＣＰＵの動作を監視するためのウォッチドッグタイマ、若しくは前記ＣＰＵの動作用クロックとは独立にカウント動作するフリーランタイマと共通で構成されていることを特徴とする請求項４乃至７の何れかに記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内部状態を保持したまま動作を一時的に停止する低消費電力モードの設定が可能に構成されるＣＰＵを備えてなるマイクロコンピュータに関する。
【背景技術】
【０００２】
マイクロコンピュータにおいては、ＣＰＵが処理を行なう必要がない状態となった場合に、その内部状態を保持しつつクロック信号の発振動作を停止させることで電力消費を低減する低消費電力モードに移行することが可能に構成されているものがある（例えば、特許文献１）。
また、マイクロコンピュータは、外部信号出力端子のレベルを変化させることで、その端子に接続されている外部デバイスの制御を行う。この場合、端子の出力レベルと、その端子をアクティブにする期間とはプログラムによって設定される。
【０００３】
特にバッテリを動作用電源として構成されるマイクロコンピュータでは、ＣＰＵが処理を行なう必要がない状態となった場合に、その内部状態を保持しつつクロック信号の発振動作を停止させることで電力消費を低減する低消費電力モードに移行することが可能に構成されているものがある。その場合、マイコンの内部処理や外部デバイスの制御などについては、例えば図３７に示すように、低消費電力モードと通常モードとを交互に移行することで、定期的に実行されるようにスケジューリングすることが可能である。
或いは、マイコンの外部で発生する何らかのイベントに応じて不定期に処理を行なう必要がある場合は、そのイベントを低消費電力モードの解除要因とすることで、イベントの発生に応じて通常モードに移行させ、処理を実行させることも可能である。
【特許文献１】特開平１１−３０５８８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１のような従来のマイクロコンピュータでは、低消費電力モードに移行している期間において外来ノイズが印加されると、外部出力端子の出力レベルが変化してしまうおそれがあった。例えば、マイコンがモータを駆動する制御するように構成されていると、低消費電力モードに移行する場合はモータの回転を停止させるように外部出力端子のレベルを制御する。その状態で、外来ノイズの影響で外部出力端子の出力レベルが変化すると、モータが回転してしまうことになる。
【０００５】
また、例えば、通常モードにおいてプログラムが実行されている場合は、そのプログラムにおいて外部出力端子のレベルを設定し（例えば、Ｈ）、出力期間の間はそのレベルを保持し、出力期間が終了すると前記レベルを元に戻すように設定する（例えば、Ｌ）。そして、上記出力期間を把握するために、プログラムはＣＰＵの動作クロック（マシンクロック）などに基づいて動作するタイマを使用する。
また、プログラムは、上記出力期間中においては、他の処理も並行して実行することが可能であるが、そのように並行して実行可能な処理が常に存在するとは限らない。その場合は、結果として、単に端子の出力レベルを保持するためだけにＣＰＵが起動していることになる。そして、その期間中は動作クロックが発振し続けるため、消費電流が増大するという問題があった。
【０００６】
本発明は上記事情に鑑みてなされたものであり、その目的は、低消費電力モードの設定が可能に構成される場合に、外来ノイズの影響を極力低減することができるマイクロコンピュータ、また、低消費電力モードに移行している状態においても、外部出力端子のレベル設定を行うことが可能なマイクロコンピュータを提供することにある。
【課題を解決するための手段】
【０００７】
請求項１記載のマイクロコンピュータによれば、ＣＰＵは、低消費電力モードが解除タイマによって周期的に解除される毎に、外部信号端子のレベルを再設定して低消費電力モードに移行する。従って、ＣＰＵが、例え、低消費電力モード移行中に外来ノイズの影響を受けることで外部信号端子のレベルが変化したとしても、その出力端子のレベルは低消費電力モードが周期的に解除される毎にそのレベルが再設定されるので、信頼性を向上させることができる。
【０００８】
請求項２記載のマイクロコンピュータによれば、端子制御手段は、ＣＰＵが低消費電力モードに移行する場合、外部信号端子をハイインピーダンス状態に設定する。従って、ＣＰＵが、例え、低消費電力モードの移行中に外来ノイズの影響を受けたとしても外部信号端子はハイインピーダンス状態となっているので、その端子によって外部デバイスが駆動されることはなく、信頼性を向上させることができる。
【０００９】
請求項３記載のマイクロコンピュータによれば、信号レベル変化手段は、ＣＰＵが低消費電力モードに設定されている期間内に、外部信号出力端子のレベルを変化させる。従って、ＣＰＵは、外部信号出力端子のレベルを変化させるためだけに通常の動作モードを継続する必要がないので、消費電力を低減することができる。
【００１０】
請求項４記載のマイクロコンピュータによれば、信号レベル変化手段は、レベル変化用タイマのカウント値とレベル変化タイミングが設定されているレジスタの値とを比較回路が比較し、両者が一致することでトリガ信号が出力されると外部信号出力端子のレベルを変化させる。従って、レジスタに設定されるタイミングで、出力端子のレベルを変化させることができる。
【００１１】
請求項５記載のマイクロコンピュータによれば、レジスタは、ＣＰＵによって任意のデータ値が設定可能に構成されるので、ユーザプログラムによってレベル変化タイミングを任意に設定することができる。
【００１２】
請求項６記載のマイクロコンピュータによれば、外部信号出力端子のレベルは、低消費電力モードが解除されるとＣＰＵによってリセットすることが可能に構成されるので、ＣＰＵが必要な処理を行った時点で出力端子のレベルを直ちにリセットすることができる。
【００１３】
請求項７記載のマイクロコンピュータによれば、割り込み発生手段は、信号レベル変化手段が外部信号出力端子のレベルを変化させた後、解除要因の発生によって低消費電力モードが解除されると、解除タイマによって低消費電力モードが解除される予定のタイミングでＣＰＵに対して割り込み要求を発生させる。
【００１４】
即ち、信号レベル変化手段が変化させた外部信号出力端子のレベルについては、そのレベルを最低限維持するように要求される場合がある（例えば、その外部信号出力端子が接続されている外部デバイスに対する制御に係る要請などによる）。その場合、前記レベルの維持期間は、低消費電力モードが設定されている期間との関係に応じて定められているため、解除要因の発生によって低消費電力モードが予定よりも早く解除されると、ＣＰＵは、本来の信号レベルの維持期間が判らなくなってしまう。
そこで、割り込み発生手段が上記のタイミングでＣＰＵに対して割り込み要求を発生させれば、ＣＰＵは前記維持期間を認識できるようになり、その割り込み要求を認識した後に、必要に応じて出力端子のレベルをリセットすることができる。
【００１５】
請求項８記載のマイクロコンピュータによれば、レベル変化用タイマを解除タイマと共通にしてより簡単に構成することができる。
請求項９記載のマイクロコンピュータによれば、解除タイマを、ＣＰＵの動作を監視するためのウォッチドッグタイマ、若しくは、ＣＰＵの動作用クロックとは独立にカウント動作するフリーランタイマと共通としてより簡単に構成することができる。
【発明を実施するための最良の形態】
【００１６】
（第１実施例）
以下、本発明をマイクロコンピュータに適用した場合の第１実施例について図１乃至図４を参照して説明する。図１は、マイクロコンピュータ（マイコン）１の電気的構成を示す機能ブロック図である。マイコン１は、ＣＰＵ２を中心として構成され、そのＣＰＵ２には、メインクロック発振部（発振回路）３によって発振出力されるメインクロック信号ＭＣＬＫ（例えば、周波数４ＭＨｚ，第１クロック信号）が動作用クロック信号として供給されるようになっている。メインクロック発振部３は、具体的には図示しないが、水晶発振子を用いて構成されている。
【００１７】
また、マイコン１は、ＣＲ発振回路で構成されるサブクロック発振部（ＣＲ発振回路）４を備えている。サブクロック発振部４によって発振出力されるサブクロック信号ＳＣＬＫ（例えば、周波数２５ｋＨｚ，第２クロック信号）は、ウォッチドッグタイマ５にカウント用クロック信号として供給されるようになっている。
ウォッチドッグタイマ５は、周知のようにＣＰＵ２の暴走監視機能をなすものであり、ＣＰＵ２によって周期的なクリア動作が実行されなくなるとオーバーフローしてＣＰＵ２にリセット信号を出力する。また、本実施例におけるウォッチドッグタイマ５は、クリア動作画行なわれる時点でタイマ５のカウント値画家現地を超えていない場合にもリセット信号を出力するように構成されている。
【００１８】
サブクロック補正部（補正回路）６は、メインクロック信号ＭＣＬＫを用いてサブクロック信号ＳＣＬＫの発振周波数補正を行なうように構成されている。一方、メインクロック監視部（監視回路）７は、サブクロック信号ＳＣＬＫを用いてメインクロック信号ＭＣＬＫの監視を行なうように構成されており、メインクロック信号ＭＣＬＫの異常を検出すると、ＣＰＵ２にリセット信号を出力するようになっている。
【００１９】
図２は、サブクロック補正部６を中心とする詳細な構成を示すものである。サブクロック補正部６は、エッジ検出回路８、パルスカウンタ９、カウント数設定レジスタ１０、比較調整手段１１および抵抗調整回路１２を備えている。また、サブクロック発振部４は、抵抗調整回路６からの制御信号により抵抗値が可変な可変抵抗器としてのラダー抵抗１３、コンデンサ１４、インバータ１５およびバッファ１６で構成されている。
【００２０】
サブクロック補正部６のエッジ検出回路８は、サブクロック発振部４からの発振出力のエッジを検出して検出信号を生成する。パルスカウンタ９は、メインクロック信号ＭＣＬＫの出力パルスを計数するデジタルカウンタである。また、カウント数設定レジスタ１０は、サブクロック信号ＳＣＬＫの一周期に相当すべきＭＣＬＫパルスの適正なカウント数が格納されるレジスタである。すなわち、カウント数設定レジスタ１０に設定されるカウント数には、ＭＣＬＫパルスがそのカウント数だけ発生する時間に応じて、サブクロック信号ＳＣＬＫの発振周期が調整されるべき数値が設定される。
【００２１】
比較調整手段１１は、エッジ検出回路８からエッジ検出信号を受け取ると、パルスカウンタ９によるパルスのカウント数とレジスタ４に格納されたカウント数とを比較し、両カウント数の比較結果に基づいて、サブクロック信号ＳＣＬＫの発振周期を調整するための調整信号を出力するように構成されている。
抵抗調整回路１２は、比較調整手段１１からの調整信号に基づいて制御信号を生成し、この制御信号をもってサブクロック発振部４のラダー抵抗１３の抵抗値を調整する回路である。
【００２２】
尚、サブクロック補正部６の動作については、特開２００１−１１１３８９号公報に詳細に開示されているが、以下、その概略について述べる。サブクロック信号ＳＣＬＫの一周期が経過して、そのクロックパルスのエッジがエッジ検出回路８によって検出されると、検出信号が比較調整手段１１に出力される。すると、比較調整手段１１は、パルスカウンタ９で積算されている前回の検出信号から積算されたパルスのカウント数と、カウント数設定レジスタ１０に設定されているカウント数とを読み出して両者を比較する。
【００２３】
ここで、レジスタ１０に設定されているカウント数は、サブクロック信号ＳＣＬＫの一周期に相当すべきパルスの適正な積算値である。そこで、比較調整手段１１は、ＭＣＬＫパルスがサブクロック信号ＳＣＬＫの一周期のうちにいくつ積算されたかをもって、サブクロック信号ＳＣＬＫの一周期が適正な設定値よりもどの程度大きいかあるいは小さいかを判定することができる。比較調整手段１１は、その判定結果に基づいて、サブクロック信号ＳＣＬＫの発振周期を調整するための調整信号を生成し、抵抗調整回路１２は、この調整信号に基づいて制御信号を生成出力してラダー抵抗１３の抵抗値を調整する。尚、図３は、以上の補正処理を示すフローチャートである。
【００２４】
図４は、メインクロック監視部７の詳細な構成を示すものである。メインクロック監視部７は、Ｍカウンタ１７及びＳカウンタ１８を中心として構成されている。Ｍカウンタ１７は、１／Ｎ分周器１９を介して与えられるメインクロック信号ＭＣＬＫのパルスをカウントするカウンタであり、Ｓカウンタ１８は、１／Ｎ分周器２０を介して与えられるサブクロック信号ＳＣＬＫのパルスをカウントするカウンタである。そして、Ｓカウンタ１８は、Ｍカウンタ１７におけるカウントデータのＭＳＢが立つとリセットされると共に、リセットされずにオーバーフローするとＣＰＵ２にリセット信号を出力するように構成されている。
尚、１／Ｎ分周器１９，２０の分周値は、ＣＰＵ２のプログラムによってセット可能に構成されている。また、分周器１９，２０については、クロック信号を分周することなくそのまま出力することも可能に構成されている。
【００２５】
即ち、メインクロック監視部７においては、メインクロック信号ＭＣＬＫの周波数が適正であれば、サブクロック信号ＳＣＬＫの出力パルスをカウントするＳカウンタ１８がオーバーフローする前にＭカウンタ１７におけるカウントデータのＭＳＢが立つことで、Ｓカウンタ１８はリセットされるように設定されている。そして、メインクロック信号ＭＣＬＫの周波数が低下した場合は、Ｍカウンタ１７のＭＳＢが立つ前にＳカウンタ１８がオーバーフローするので、ＣＰＵ２はリセットされる。
【００２６】
また、メインクロック監視部７におけるＳカウンタ１８のオーバーフロー周期は、ウォッチドッグタイマ５のオーバーフロー周期よりも短くなるように構成されている。
尚、メインクロック発振部３、サブクロック発振部４、サブクロック補正部６及びメインクロック監視部７は、クロック制御回路装置２１を構成している。また、マイコン１としては、具体的には図示しないが、その他、ＲＯＭ、ＲＡＭやＩ／Ｏ，Ａ／Ｄ変換部などの周辺回路を備えている。
【００２７】
そして、クロック制御回路装置２１のサブクロック補正部６及びメインクロック監視部７、並びにウォッチドッグタイマ５の機能を組み合わせることで、総合的に以下のような監視形態がとられることになる。
（１）ＭＣＬＫ：正常，ＳＣＬＫ：周波数低下
サブクロック補正部６の範囲内で補正され、その補正範囲を超える場合は、ウォッチドッグタイマ５によりＣＰＵ２にリセットがかかる。
（２）ＭＣＬＫ：正常，ＳＣＬＫ：周波数上昇
サブクロック補正部６の範囲内で補正され、その補正範囲を超える場合は、メインクロック監視部７によりＣＰＵ２にリセットがかかる。
（３）ＭＣＬＫ：周波数低下，ＳＣＬＫ：正常
相対的にＳＣＬＫが速くなることから、メインクロック監視部７によりＣＰＵ２にリセットがかかる。
（４）ＭＣＬＫ：周波数上昇，ＳＣＬＫ：正常
相対的にＳＣＬＫが遅くなることから、ウォッチドッグタイマ５によりＣＰＵ２にリセットがかかる。
【００２８】
以上のように構成された本実施例によれば、クロック制御回路装置２１のサブクロック補正部６は、メインクロック信号ＭＣＬＫに基づいてサブクロック信号ＳＣＬＫの発振周波数を補正し、メインクロック監視部７は、サブクロック信号ＳＣＬＫに基づいてメインクロック信号ＭＣＬＫの発振状態を監視する。従って、メイン，サブの２つのクロック信号によって互いに補正，監視を行なうので、発振動作の信頼性を総合的に向上させることができる。
【００２９】
また、本実施例によれば、メインクロック監視部７によるメインクロック信号ＭＣＬＫの監視を行なう周期は、ウォッチドッグタイマ５の周期よりも短くなるように設定される。従って、メインクロック監視部７は、ウォッチドッグタイマ５の監視周期では検出することができない異常の発生を検出することが可能となる。即ち、メインクロック信号ＭＣＬＫが遅くなった場合は、ウォッチドッグタイマ５によるリセットがかかる前にメインクロック監視部７によってリセットをかけることができる。
そして、サブクロック信号ＳＣＬＫを補正することで、ＣＰＵ２は、設計通りにウォッチドッグタイマ５をリセットすることができる。
【００３０】
＜以下は参考＞
Ａ．発振子を使用して第１クロック信号を発振する発振回路と、
前記第１クロック信号よりも低い周波数の第２クロック信号を発振し、その発振周波数が調整可能に構成されるＣＲ発振回路と、
前記第１クロック信号に基づいて、前記第２クロック信号の発振周波数を補正する補正回路と、
前記第２クロック信号に基づいて、前記第１クロック信号の発振状態を監視する監視回路とを備えて構成されることを特徴とするクロック制御回路装置。
上記Ａのクロック制御回路装置によれば、補正回路は、第１クロック信号に基づいて第２クロック信号の発振周波数を補正し、監視回路は、第２クロック信号に基づいて第１クロック信号の発振状態を監視する。即ち、第１，第２の２つのクロック信号によって互いに補正，監視を行なうので、発振動作の信頼性を向上させることができる。
【００３１】
Ｂ．上記Ａ記載のクロック制御回路装置と、
前記第１クロック信号に基づいて生成される動作クロック信号が供給されるＣＰＵと、
前記第２クロック信号に基づいて前記ＣＰＵの動作を監視するウォッチドッグタイマとを備え、
前記監視回路による第１クロック信号の監視を行なう周期は、前記ウォッチドッグタイマ周期よりも短くなるように構成されていることを特徴とするマイクロコンピュータ。
上記Ｂのマイクロコンピュータによれば、監視回路による第１クロック信号の監視を行なう周期は、ウォッチドッグタイマ周期よりも短くなるように設定される。従って、監視回路は、ウォッチドッグタイマの監視周期では検出することができない異常の発生を検出することが可能となる。
【００３２】
（第２実施例）
図５乃至図８は本発明の第２実施例を示すものであり、第１実施例と同一部分には同一符号を付して説明を省略以下異なる部分についてのみ説明する。第２実施例における構成は基本的に第１実施例と同様であり、比較調整手段１１による調整動作が若干異なっている。
即ち、図５に示すフローチャートでは、ステップＳ３，Ｓ４の間に「ＣＶに最大値をセット」の処理ステップＳ１１が挿入されている。また、ステップＳ７，Ｓ８は、ステップＳ１２，Ｓ１３に置き換わっている。ここで、「ＣＶ」とは、比較調整手段１１が出力する調整信号データである。
即ち、図５に示すフローチャートの実行が開始されるのは（スタート）、ＣＰＵ２のリセットや、スリープモードなどの低消費電力モードが解除された場合の起動時である。その場合に、ステップＳ１１において補正データの初期値が最大値（ｍａｘ）にセットされることになる。
【００３３】
図６は、ステップＳ１２における処理内容を示すものである。先ず、比較調整手段１１は、高速補正を行なうか否かを判断する（ステップＡ０）。この設定はユーザによって行われるようになっており、例えばユーザプログラム中や、基板上に設けられたディップスイッチなどで設定される。高速補正を行うように設定されていない場合(「ＮＯ」)、比較調整手段１１は、調整信号データＣＶを補正データの最小単位（ＬＳＢ）に設定し（ステップＡ４）、それからステップＡ３に移行する。この場合は、補正が最小単位で行なわれるため、第１実施例と同様の低速補正となる。ステップＡ３では、調整信号データＣＶを抵抗調整回路１２に出力することで、データＣＶに応じてラダー抵抗１３の抵抗値を増加させる。
【００３４】
一方、ステップＡ０において、高速補正を行うように設定されている場合(「ＹＥＳ」)、比較調整手段１１は、調整信号データＣＶがその時点で最小単位になっているか否かを判断する（ステップＡ１）。そして、データＣＶが最小単位に等しければ(「ＹＥＳ」)ステップＡ３に移行する。
また、ステップＡ１において、データＣＶが最小単位に等しくなければ(「ＮＯ」)、比較調整手段１１は、調整信号データＣＶを１／２にしてから（ステップＡ２）ステップＡ３に移行する。尚、図７に示すステップＳ１３における処理では、ステップＡ３’の処理が、ステップＡ３の「増加」を「減少」に変更したものである。
【００３５】
ここで、図８には、高速補正動作が行なわれる状態（即ち、ステップＳ１２についてはステップＡ３を実行する場合）の概念的な説明図を示す。即ち、最初の補正は調整範囲の最大値ｍａｘによって行なわれ、例えば、サブクロック信号ＳＣＬＫの周期データがレジスタ１０の設定値よりも大きい（周波数が低い）場合は、周期が短くなる方向に最大値ｍａｘで振る。
その次の補正では、周期が短くなったため、周期が長くなる方向に最大値ｍａｘの１／２で振る。更に、その次の補正では周期が未だ短いため、更に周期が長くなる方向にｍａｘ／４で振る。すると、今度は目標値を超えたため、次の補正では周期が長くなる方向にｍａｘ／８で振るようにする。
【００３６】
以上のように、最大値ｍａｘで補正を開始して、絶対値が１／２，１／４，１／８と漸減していくように補正を行なう。即ち、データ検索方式でいえば、所謂バイナリサーチを同じ概念である。即ち、ＣＰＵ２のリセット解除時や、低消費電力モードから通常モードに移行した場合のような起動時には、サブクロック発振部４の発振状態はかなり不安定となり、その発振周波数は、設定された周波数から大きく外れた状態にあると推定される。従って、その期間における調整動作についてはバイナリサーチ方式で行うことで、サブクロック信号ＳＣＬＫの周期データがより速くレジスタ１０の設定値に等しくなるように（狙い周波数に収束するように）補正される。
そして、調整信号データＣＶを１／２にすることを繰り返すと、最終的にはデータの最小値（ＬＳＢ）に到達する（ステップＡ１，「ＹＥＳ」）。それ以降は、その最小値によって補正が継続されることになる。
【００３７】
また、ステップＡ０において、高速補正を行なうか否かを選択可能としたのは、以下の理由による。即ち、ＣＰＵ２が低消費電力モードを実行可能に構成されている場合、高速補正を行なっている途中で低消費電力モードに移行すると、サブクロック発振部４の発振周波数が設定周波数と大きく離れた状態のままで移行してしまうおそれがある。従って、低消費電力モードへの移行周期の設定に応じて調整方式を選択することで、ユーザの設計意図に応じた調整が可能となる。
【００３８】
以上のように第２実施例によれば、サブクロック補正部６の比較調整手段１１は、ＣＰＵ２が起動した直後に、サブクロック発振部４の発振周波数を調整する場合は、調整範囲の最大値より開始して、その絶対値を調整周期毎に１／２ずつ減少させるようにした。従って、サブクロック信号ＳＣＬＫの周波数を、設定周波数により速く収束させることが可能となる。
そして、比較調整手段１１は、調整信号レベルの絶対値が最小値（ＬＳＢ）に達すると以降はその最小値によって調整を継続するので、発振周波数が設定周波数の近傍に近付いた状態になれば調整を精密に行なうことが可能となる。更に、比較調整手段１１は、ＣＰＵ２が起動した直後の調整動作においては、高速補正を行なうか否かを選択可能とするので、ユーザの意図に沿うように調整を行なわせることができる。
【００３９】
＜以下は参考＞
Ｃ．発振子を使用して第１クロック信号を発振する発振回路と、
前記第１クロック信号に基づいて生成される動作クロック信号が供給されるＣＰＵと、
前記第１クロック信号よりも低い周波数の第２クロック信号を発振し、その発振周波数が調整可能に構成されるＣＲ発振回路と、
前記第１クロック信号に基づいて、前記第２クロック信号の発振周波数を補正する補正回路とを備え、
前記補正回路は、前記第２クロック信号のエッジを検出するエッジ検出回路と、前記第１クロック信号に基づいてカウント動作を行なうパルスカウンタと、前記第２クロック信号の一周期に相当すべき前記パルスカウンタのカウント数が格納されるカウント数設定レジスタと、前記エッジ検出回路からエッジ検出信号を受け取ると、前記パルスカウンタのカウント数と前記カウント数設定レジスタに格納されたカウント数とを比較し、両者の差に基づいて前記ＣＲ発振回路の発振周波数を調整するための調整信号を生成する比較調整手段と、前記調整信号に基づいて、前記ＣＲ発振回路の発振周波数を調整する調整回路とを備えて構成され、
前記比較調整手段は、前記ＣＰＵが起動した直後の調整動作においては、前記調整信号レベルの絶対値を調整周期毎に漸減させるように構成されていることを特徴とするマイクロコンピュータ。
【００４０】
上記Ｃのマイクロコンピュータによれば、比較調整手段は、ＣＰＵが起動した直後に、ＣＲ発振回路の発振周波数を調整する場合は、調整信号レベルの絶対値を調整周期毎に漸減させる。即ち、ＣＰＵのリセット解除時や、低消費電力モードから通常モードに移行した場合のような起動時には、ＣＲ発振回路の発振状態はかなり不安定となり、その発振周波数は、設定された周波数から大きく外れた状態にあると推定される。従って、その期間における調整動作については、調整信号レベルの絶対値を、調整周期毎に大きな値から小さな値に漸減させるように調整を行なえば、設定周波数により速く収束させることが可能となる。
【００４１】
Ｄ．前記比較調整手段は、前記調整動作においては、調整範囲の最大値より開始して、その絶対値を調整周期毎に１／２ずつ減少させることを特徴とする上記Ｃのマイクロコンピュータ。
上記Ｄのマイクロコンピュータによれば、比較調整手段は、調整動作においては、調整範囲の最大値より開始して、その絶対値を調整周期毎に１／２ずつ減少させる。即ち、データ検索における所謂バイナリサーチと同様の方式によることで、ＣＲ発振回路の発振周波数を設定周波数により速く収束させることが可能となる。
【００４２】
Ｅ．前記比較調整手段は、前記調整信号レベルの絶対値が最小値に達すると、以降はその最小値によって調整を継続することを特徴とする上記ＣまたはＤのマイクロコンピュータ。
上記Ｅのマイクロコンピュータによれば、比較調整手段は、調整信号レベルの絶対値が最小値に達すると以降はその最小値によって調整を継続するので、発振周波数が設定周波数の近傍に近付いた状態になれば調整を精密に行なうことが可能となる。
【００４３】
Ｆ．前記比較調整手段は、前記ＣＰＵが起動した直後の調整動作においては、前記調整信号レベルの絶対値を調整周期毎に漸減させる調整動作を行なうか否かを選択可能に構成されていることを特徴とする上記Ｃ〜Ｅの何れかのマイクロコンピュータ。
上記Ｆのマイクロコンピュータによれば、比較調整手段は、ＣＰＵが起動した直後の調整動作においては、調整信号レベルの絶対値を調整周期毎に漸減させる調整動作を行なうか否かを選択可能に構成される。即ち、ＣＰＵが低消費電力モードを実行可能に構成されている場合、調整周期毎に漸減させる調整動作を行なっている途中で低消費電力モードに移行すると、ＣＲ発振回路の発振周波数が設定周波数と大きく離れた状態のままで移行してしまうおそれがある。従って、低消費電力モードへの移行周期の設定に応じて調整方式を選択できるようにすれば、ユーザの意図に沿うように調整を行なわせることができる。
【００４４】
Ｃ’．発振子を使用して第１クロック信号を発振する発振回路と、前記第１クロック信号に基づいて生成される動作クロック信号が供給されるＣＰＵと、前記第１クロック信号よりも低い周波数の第２クロック信号を発振し、その発振周波数が調整可能に構成されるＣＲ発振回路と、前記第１クロック信号に基づいて、前記第２クロック信号の発振周波数を補正する補正回路とを備えて構成されるマイクロコンピュータについて、前記第２クロック信号の発振周波数を調整する発振周波数の調整方法であって、
前記補正回路は、前記第２クロック信号のエッジを検出し、前記第１クロック信号に基づいてカウント動作を行ない、前記第２クロック信号の一周期に相当すべきカウント数を保持し、前記エッジ検出信号を受け取ると、前記カウント動作によって示されるカウント数と前記保持されたカウント数とを比較し、両者の差に基づいて前記ＣＲ発振回路の発振周波数を調整するための調整信号を生成し、前記調整信号に基づいて、前記ＣＲ発振回路の発振周波数を調整し、
前記ＣＰＵが起動した直後の調整動作においては、前記調整信号レベルの絶対値を調整周期毎に漸減させることを特徴とするクロック信号の発振周波数調整方法。
【００４５】
Ｄ’．前記調整動作においては、調整範囲の最大値より開始して、その絶対値を調整周期毎に１／２ずつ減少させることを特徴とする上記Ｃ’のクロック信号の発振周波数調整方法。
Ｅ’．前記調整信号レベルの絶対値が最小値に達すると、以降はその最小値によって調整を継続することを特徴とする上記Ｃ’またはＤ’のクロック信号の発振周波数調整方法。
Ｆ’．前記ＣＰＵが起動した直後の調整動作においては、前記調整信号レベルの絶対値を調整周期毎に漸減させる調整動作を行なうか否かが選択可能であることを特徴とするＣ’〜Ｅ’のクロック信号の発振周波数調整方法。
【００４６】
（第３実施例）
図９乃至図１３は本発明の第３実施例を示すものである。図９は、マイクロコンピュータ（マイコン）３１の構成を示す機能ブロック図である。マイコン３１は、ＣＰＵ３２を中心として構成されている。そのＣＰＵ３２には、クロック生成回路３３より生成出力されるクロック信号が動作用クロック信号として供給されるようになっている。また、前記クロック信号は、その他周辺回路などの機能ブロック３４にも供給されている。
【００４７】
低消費電力制御部（端子制御手段）３５は、ＣＰＵ３２によって与えられる制御コマンドに応じて所謂スリープ／ストップモードなどの低消費電力モードに関する制御を行うものである。ここで、スリープモードとは、クロック生成回路３３の動作を停止させることでＣＰＵ３２に対する動作用クロック信号の供給を停止させ、ＣＰＵ３２は、内部レジスタのデータ値などを保持した状態で処理を一時的に停止するモードである。スリープモードは、設定された時間間隔で周期的に解除（ウェイクアップ）されるようになっている。
一方、ストップモードは、ＣＰＵ３２が処理を停止する点についてはストップモードと同様であるが、周期的に解除されることはなく、ＣＰＵ３２が処理すべき何らかのイベントが発生した場合にのみ解除されるモードである。
【００４８】
図１０は、低消費電力制御部３５が、スリープモードについて制御を行う機能部分の構成を示すものである。即ち、低消費電力制御部３５は、例えばＣＲ発振回路で構成される再起動タイマ３６のカウント値と、内部のＳＬＥＥＰ時間設定レジスタ３７の設定データ値とを一致比較器３８によって比較し、両者が一致するとハイレベルの一致信号をＡＮＤゲート３９の一方の入力端子に出力する。ＡＮＤゲート３９の他方の入力端子には、ＳＬＥＥＰ信号が与えられる。
従って、ハイレベルのＳＬＥＥＰ信号が与えられている期間において一致比較器３８が一致信号を出力すると、ＡＮＤゲート３９はハイレベルのＳＬＥＥＰ解除信号を出力する。この時、再起動タイマ３６はリセットされる。
【００４９】
一方、図１１は、低消費電力制御部３５が、ストップモードが設定された場合にＩ／Ｏ端子部４０の制御を行う機能部分の構成を示すものである。即ち、低消費電力制御部３５のＡＮＤゲート４１の負論理入力端子と正論理入力端子には、夫々ＳＴＯＰ信号，ポート制御信号が与えられるようになっている。そして、ＡＮＤゲート４１はＩ／Ｏ端子部４０にハイインピーダンス制御信号を出力する。
Ｉ／Ｏ端子部４０は、入出力端子（外部信号端子）４２にバッファ４３Ａ，４３Ｂが双方向接続された構成である。そして、出力バッファ４３Ａは、ＡＮＤゲート４１によって出力されるハイインピーダンス制御信号によって制御される。また、Ｉ／Ｏ端子部４０は、Ｉ／Ｏ制御部４４によって入出力切替え制御（ポート制御）と出力レベル制御が行われるようになっている。前記ポート制御信号は、Ｉ／Ｏ制御部４４によって出力される。
【００５０】
次に、第３実施例の作用について図１２及び図１３を参照して説明する。図１２は、ＣＰＵ３２が低消費電力モードに移行する場合の処理を示すフローチャートである。ＣＰＵ３２は、低消費電力モードが「スリープ」であるか否かを判断する（ステップＢ１）。そして、「スリープ」である場合は(「ＹＥＳ」)、ＳＬＥＥＰ時間設定レジスタ３７にスリープモードの移行期間データを設定する（ステップＢ２）。それから、低消費電力制御部３５に対してＳＬＥＥＰコマンドを出力すると（ステップＢ３）処理を終了する。この場合、低消費電力制御部３５の図９に示す構成部分がアクティブとなり、スリープモードの移行期間の計測が開始され、その期間が終了するとスリープモードは解除される。
【００５１】
一方、低消費電力モードが「ストップ」である場合（ステップＢ１，「ＮＯ」）、ＣＰＵ３２は、低消費電力制御部３５に対してＳＴＯＰコマンドを出力する（ステップＢ４）。そして、処理を終了する。この場合、低消費電力制御部３５の図１１に示す構成部分が作用する。即ち、ＳＴＯＰ信号がハイレベルとなり、ＡＮＤゲート４１の出力レベルはロウとなることで、出力バッファ４３Ａの出力端子はハイインピーダンス状態となる。
【００５２】
また、図１３は、低消費電力モードが解除されて、ＣＰＵ３２が起動（ウェイクアップ）する場合の処理を示すフローチャートである。ＣＰＵ３２は、解除されたのがスリープモードか否かを判断し（ステップＣ１）、スリープモードであれば(「ＹＥＳ」)、その時点における各端子の方向（入力／出力）設定値、及び出力端子の信号レベル設定を、データとして保持しているＲＯＭ（図示せず）などから読み出す（ステップＣ２）。そして、読み出した設定値やレベルの設定をＩ／Ｏ制御部４４に再設定することで、各入出力端子４２等における出力信号レベルを再設定する（ステップＣ３）。
【００５３】
それから、その時点で他に処理すべきイベントが発生しているか否かを判断し（ステップＣ４）、発生していれば(「ＹＥＳ」)そのイベントの処理を行なった後（ステップＣ６）、図１２に示した低消費電力モードへの移行処理を行なう（ステップＣ５）。一方、ステップＣ４において処理すべきイベントが発生していなければ(「ＮＯ」)、そのままステップＣ５に移行する。
【００５４】
以上のように第３実施例によれば、マイコン３１のＣＰＵ３２は、スリープモードが再起動タイマ３６によって周期的に解除される毎に、入出力端子４２の信号出力レベルを再設定してからスリープモードに移行するようにした。従って、ＣＰＵ３２が、たとえ、スリープモード移行中に外来ノイズの影響を受けることで入出力端子４２の信号出力レベルが変化したとしても、その出力レベルはスリープモードが周期的に解除される毎に再設定されるので、マイコン３１の信頼性を向上させることができる。
【００５５】
また、マイコン３１の低消費電力制御部３５は、ＣＰＵ３２が低消費電力モードに移行する場合、入出力端子４２をハイインピーダンス状態に設定するようにした。従って、ＣＰＵ３２が、例え、ストップモードの移行中に上述と同様に外来ノイズの影響を受けたとしても、入出力端子４２がハイインピーダンス状態であるから、その端子４２によってマイコン３１に接続されている外部デバイスが駆動されることはなく、信頼性を向上させることができる。
【００５６】
（第４実施例）
図１４乃至図１７は本発明の第４実施例を示すものである。図１４は、マイクロコンピュータ５１のクロック制御に関する機能部分を示すブロック図である。マイコン５１は、ＣＰＵ５２を中心として構成されている。そのＣＰＵ５２は、セレクタ５３を介して動作用クロック（マシンクロック）信号が選択的に与えられるようになっている。
セレクタ５３には、マイコン５１に外付けされる外部発振子５４による原発振信号と、ＤＰＬＬ(Digital Phase Locked Loop)回路５５によって出力される逓倍クロック信号とが与えられている。そして、セレクタ５３の切替えは、クロック制御部（切替通知制御部）５６によって行われるようになっている。
【００５７】
また、ＤＰＬＬ回路（周波数逓倍回路）５５の基準クロック信号もセレクタ５７を介して与えられるようになっており、そのセレクタ５７には、外部発振子５４による原発振信号と、ＣＲ発振回路５８によって出力されるＣＲクロック信号とが与えられている。そして、セレクタ５７の切替えもクロック制御部５６によって行われるようになっている。例えば、原発振信号は周波数４ＭＨｚ，ＣＲクロック信号は周波数２５ｋＨｚである。尚、クロック制御部５６は、ＣＲクロック信号をＤＰＬＬ回路５５のクロックソースとして選択する場合は、外部発振子５４の発振動作を停止させるように構成されている。
【００５８】
ＣＲクロック信号は、ＣＲカウンタ５９にもカウント用クロックとして与えられている。一致比較部６０には、ＣＲカウンタ５９のカウントデータと、発振安定時間設定レジスタ６１の設定データが与えられている。その設定データは、電源投入時にはハードウエアによって初期値がセットされるが、ＣＰＵ５２が実行するユーザプログラムによってもセット可能となっている。一致比較部６０は、両者のデータ値を比較して一致すると、一致信号をクロック制御部５６に出力するようになっている。
【００５９】
即ち、設定レジスタ６１に、外部発振子５４の発振安定時間に相当するデータをセットすれば、前記一致信号が出力されるタイミングによってその発振安定時間の経過が判る。また、クロック制御部５６は、ＤＰＬＬ回路５５が内蔵しており内部の発振動作シーケンスを制御するために用いられるステートカウンタ（シーケンス制御手段）６２のカウンタ値を参照することで、ＤＰＬＬ回路５５の発振安定時間の経過を知ることも可能となっている。
【００６０】
尚、ここでのステートカウンタ６２は、例えば第５実施例における制御回路２０と同様のものであり、例えば、外部発振子５４の出力クロックを基準クロック信号とする場合、その８カウントを１制御周期とするようになっている。従って、逓倍動作開始時においては、その１制御周期が経過した時点で最初の演算結果としての逓倍クロック信号が出力されることになり、その期間が発振安定期間となる。
【００６１】
そして、クロック制御部５６は、それらの検出タイミングにおいて、ＣＰＵ５２の割り込みコントローラ６３にクロック切替え完了割り込み信号を出力するようになっている。割り込みコントローラ６３は、その他の割り込み要因も含めてイネーブル制御やマスク制御などを行い、適切な割り込み信号をＣＰＵ５２に出力するようになっている。
【００６２】
次に、第４実施例の作用について図１５乃至図１７も参照して説明する。図１５は、電源投入時や、スリープ／ストップモードからＣＰＵ５２が起動したウェイクアップ時におけるクロック信号の遷移状態を示すものである。即ち、スリープ／ストップモードに遷移した場合は、ＣＲ発振回路５８を除いてクロック信号の発振動作は停止される。先ず、外部発振子５４が電源投入によって発振動作を開始する。発振開始の初期においてはその発振動作即ち発振周波数が不安定であるから、ＣＰＵ５２はＤＰＬＬ回路５５の動作を禁止している。
【００６３】
そして、ＣＲカウンタ５９のカウンタ値が発振安定時間設定レジスタ６１の設定データに一致し、一致比較部６０が一致信号をクロック制御部５６に出力すると、クロック制御部５６は、それを受けて割り込み信号を、割り込みコントローラ６３を介してＣＰＵ５２に出力する。すると、ＣＰＵ５２は、その割り込み信号によって外部発振子５４の発振動作が安定したことを認識し、ＤＰＬＬ回路５５に周波数逓倍動作を開始させる。
そして、クロック制御部５６は、今度はＤＰＬＬ回路５５のステートカウンタ６２のカウンタ値を参照し、ＤＰＬＬ回路５５の動作が安定するまで待機し、動作が安定した状態になった時点で割り込み信号を出力する。従って、ＣＰＵ５２はその割り込みによってＤＰＬＬ回路５５の動作が安定したことを認識できる。
【００６４】
また、図１６は、ＣＰＵ５２が通常の動作を行なっている状態において、ユーザプログラムによりマシンクロックの切替を行なう場合のダイヤグラムである。この場合、クロックソースとしては、外部発振子５４，ＤＰＬＬ回路５５（外部発振子５４がソース），ＤＰＬＬ回路５５（ＣＲ発振回路５８がソース）の３種類があり、これらの間でクロック信号の選択切替が行なわれる。また、ＤＰＬＬ回路５５は、ＣＰＵ５２が逓倍又は分周データを設定することでクロックソースの周波数を逓倍または分周可能であるから、ＤＰＬＬ回路５５単体においても周波数切替が行なわれる。これらのパターンを下記に示す。
Ａ：                外部発振子→ＤＰＬＬ回路（外部ソース）
Ｂ：                外部発振子→ＤＰＬＬ回路（ＣＲソース）
Ｃ：ＤＰＬＬ回路（外部ソース）→ＤＰＬＬ回路（ＣＲソース）
Ｄ：ＤＰＬＬ回路（ＣＲソース）→外部発振子
Ｅ：ＤＰＬＬ回路（ＣＲソース）→ＤＰＬＬ回路（外部ソース）
Ｘ：ＤＰＬＬ回路における周波数変更
【００６５】
図１７は、ＣＰＵ５２が、図１６に示すダイヤグラムに基づいてマシンクロック信号の切替を行なう場合の処理を示すフローチャートである。ＣＰＵ５２は、先ず、クロック信号の切替えパターンを上記Ａ〜Ｅ，Ｘの中から選択する（ステップＤ１）。そして、パターンＤ，Ｅであれば（ステップＤ２，「ＹＥＳ」）、外部発振子５４の発振安定時間データを設定レジスタ６１にセットし（ステップＤ３）、パターンに応じたクロック切替を行なう（ステップＤ４）。
クロック切替は、ＣＰＵ５２がクロック制御部５６の内部にある設定レジスタにデータを書き込むことで、セレクタ５３，５７を切替えて行なう。また、ステップＤ２において切替えパターンがＤ，Ｅ以外であれば(「ＮＯ」)、そのままステップＤ４に移行する。
【００６６】
続いて、ＣＰＵ５２は、ステップＤ２と同様に切替えパターンがＤ，Ｅか否かを判断し（ステップＤ５）、パターンＤ，Ｅであれば(「ＹＥＳ」)外部発振割り込みが発生するまで待機する（ステップＤ６）。そして、割り込みが発生すると(「ＹＥＳ」)ステップＤ７に移行する。また、ステップＤ５においてパターンＤ，Ｅ以外の場合もステップＤ７に移行する。
【００６７】
ステップＤ７において、ＣＰＵ５２は、切替えパターンＤか否かを判断し、パターンＤでなければ(「ＮＯ」)ＰＬＬ割り込みが発生するのを待って（ステップＤ８，「ＹＥＳ」）処理を終了する。また、ステップＤ７においてパターンＤであれば(「ＹＥＳ」)そのまま処理を終了する。即ち、ＣＰＵ５２は、パターンＥの場合は外部発振割り込み，ＰＬＬ割り込み双方の発生を待つことでクロック安定を認識する。パターンＤの場合は外部発振割り込みのみ、その他のパターンではＰＬＬ割り込みのみの発生を待つことでクロック安定を認識することになる。
【００６８】
以上のように第４実施例によれば、マイコン５１のクロック制御部５６は、ＤＰＬＬ回路５５の発振動作をステートカウンタ６２によって監視し、逓倍クロック信号の周波数が切替えられた場合は、その切替えに伴う発振動作が安定したタイミングでＣＰＵ５２に対して割り込み要求を発生させるようにした。
従って、ＣＰＵ５２は、冗長な待機時間を設定する必要がなくなり、処理効率を向上させることができる。そして、クロック制御部５６は、シーケンスカウンタ６２を参照することでＤＰＬＬ回路５５の発振動作が安定したことを明確に認識することができる。
【００６９】
また、ＣＰＵ５２の動作用クロック信号を、セレクタ５３，５７によって複数のクロック信号の内から選択可能としたので、より多様なクロック信号を選択することによって、制御範囲を広げることができる。
そして、クロック制御部５６は、外部発振子５４の発振動作も監視し、その動作切替えに伴う発振動作が安定したタイミングでもＣＰＵ５２に対して割り込み要求を発生させるので、ＣＰＵ５２は、その割り込み要求の発生によってＤＰＬＬ回路５５の動作を開始させるのに適切なタイミングを知ることが可能となる。
【００７０】
＜以下は参考＞
Ｇ．基準クロック信号の周波数を逓倍して出力する周波数逓倍回路と、
この周波数逓倍回路によって出力される逓倍クロック信号が動作用クロック信号として供給可能であるＣＰＵと、
前記周波数逓倍回路の発振動作を監視し、前記逓倍クロック信号の周波数が切替えられた場合は、その切替えに伴う発振動作が安定したタイミングで前記ＣＰＵに対して割り込み要求を発生させる切替通知制御部とを備えて構成されることを特徴とするマイクロコンピュータ。
上記Ｇのマイクロコンピュータによれば、切替通知制御部は、周波数逓倍回路の発振動作を監視し、逓倍クロック信号の周波数が切替えられた場合は、その切替えに伴う発振動作が安定したタイミングでＣＰＵに対して割り込み要求を発生させる。従って、ＣＰＵは、逓倍クロック信号の周波数を切替えた場合に、その発振動作が安定したことを割り込みによって知ることができるので、冗長な待機時間を設定する必要がなくなり、処理効率を向上させることができる。
【００７１】
Ｈ．前記周波数逓倍回路は、前記基準クロック信号に基づいて、発振動作シーケンスを制御するための制御信号を出力するシーケンス制御手段を備え、
前記切替通知制御部は、前記制御信号に基づいて前記周波数逓倍回路の発振動作を監視することを特徴とする上記Ｇのマイクロコンピュータ。
上記Ｈのマイクロコンピュータによれば、切替通知制御部は、周波数逓倍回路の発振動作シーケンスを制御するシーケンス制御手段によって出力される制御信号に基づいて、当該周波数逓倍回路の発振動作を監視するので、発振動作が安定したことを制御信号によって明確に認識することができる。
【００７２】
Ｉ．前記動作用クロック信号として供給可能なクロック信号が、前記逓倍クロック信号の他にも１つ以上存在し、
前記動作用クロック信号は、それら複数のクロック信号の内から選択可能に構成されていることを特徴とする上記ＧまたはＨのマイクロコンピュータ。
上記Ｉのマイクロコンピュータによれば、ＣＰＵの動作用クロック信号は、逓倍クロック信号を含む複数のクロック信号の内から選択可能に構成されるので、そのような構成においても上記Ｈと同様の作用効果を得ることができる。
【００７３】
Ｊ．前記切替通知制御部は、前記動作用クロック信号として供給可能なクロック信号を出力する外部発振子の発振動作も監視し、その動作切替えに伴う発振動作が安定したタイミングでも前記ＣＰＵに対して割り込み要求を発生させることを特徴とする上記Ｉのマイクロコンピュータ。
上記Ｊのマイクロコンピュータによれば、切替通知制御部は、外部発振子の発振動作も監視し、その動作切替えに伴う発振動作が安定したタイミングでもＣＰＵに対して割り込み要求を発生させる。従って、外部発振子によって出力されるクロック信号が周波数逓倍回路の基準クロック信号となる場合、ＣＰＵは、前記割り込み要求の発生によって周波数逓倍回路の動作を開始させるのに適切なタイミングを知ることが可能となる。
【００７４】
（第５実施例）
図１８乃至図２３は、本発明を車両用ＥＣＵ(Electronic Control Unit)に適用した場合の第５実施例を示すものである。尚、以下に述べる構成の基本的部分は特開２０００−３５７９４７号公報に開示されているので、以下では概略的に説明する。図１８は、ＥＣＵ（マイクロコンピュータ）７１の電気的構成を示す機能ブロック図である。ＥＣＵ７１は、半導体集積回路（ＩＣ）として構成されており、その内部回路として、ＣＰＵ７２，メモリ７３及びゲートアレイ７４などのクロック同期回路を有している。ＥＣＵ７１には、水晶発振子７５に外付けされており、発振回路（基準クロック発振回路）７６は、水晶発振子７５にバイアスを与えて周波数１６ＫＨｚの基準クロック信号ＰREF を出力するようになっている。
【００７５】
その基準クロック信号ＰREF は周波数逓倍回路７７に与えられており、周波数逓倍回路７７は、その基準クロック信号ＰREF を５１２逓倍した周波数８ＭＨｚ逓倍クロック信号ＰOUT を生成して、ＣＰＵ７２，メモリ７３及びゲートアレイ７４のクロック入力端子に出力するようになっている。周波数逓倍回路７７は、所謂ＤＰＬＬ(Digital Phase Locked Loop)回路として構成されるものであり、前記逓倍数は、ＣＰＵ７２より与えられる逓倍数設定データＤＶの値に応じて設定される。
また、周波数逓倍回路７７には、低消費電力制御回路（低消費電力制御手段）７８によってＥＣＵ７1の動作モードを低消費電力モードとスタンバイモードとに切換えるためのモード制御信号ＰＡ（停止制御）が出力されるようになっている。
【００７６】
キー検出スイッチ７９は、自動車のキーがキーシリンダ（何れも図示せず）に挿入されているか否かを検出するスイッチである。そして、キー検出スイッチ７９がキー検出信号を低消費電力制御回路７８に出力していなければ、低消費電力制御回路７８は、モード制御信号ＰＡをロウレベルにすることでＥＣＵ７１を低消費電力モード（スリープ／ストップ）に維持するようになっている。
また、キー検出スイッチ７９がキー検出信号を出力した場合、低消費電力制御回路７８は、モード制御信号ＰＡをハイレベルにして、ＥＣＵ７１を低消費電力モードからスタンバイモードに切換える。尚、周波数逓倍回路７７及び低消費電力制御回路７８は、クロック制御回路（発振回路装置）７１ａを構成している。
【００７７】
図１９は、周波数逓倍回路７７の概略構成を示す機能ブロック図である（尚、詳細な構成については、更に特開平８−２６５１１１号公報を参照）。制御回路（シーケンス制御手段）８０には、発振回路７６より出力される基準クロック信号ＰREF が与えられている。そして、制御回路８０は、３個のフリップフロップ（図示せず）で構成されるシーケンスカウンタを内蔵している。
そして、このシーケンスカウンタによって基準クロック信号ＰREF の入力パルス数をカウントして基準クロック信号ＰREF の８周期を１シーケンス制御周期とし、基準クロック信号ＰREF に同期して各種の制御タイミング信号をＤＣＯ（Digital Controlled Oscillator ，デジタル制御発振器）８１及びカウンタ・データラッチ回路８２に出力する。
【００７８】
ＤＣＯ８１は、内部にリングオシレータ（多相クロック信号出力手段）８３を備えている。リングオシレータ８３は、図２１に示すように、論理反転回路としてＮＡＮＤゲート８４と複数個のＩＮＶ（インバータ）ゲート８５とを備えて構成されている。これらのＩＮＶゲート８４は、各出力端子が次段の入力端子へとリング状に接続されており、ＮＡＮＤゲート８５の一方の入力端子は最終段のＩＮＶゲート（図示せず）の出力端子に接続され、他方の入力端子には外部からの停止制御信号が与えられている。そして、ＩＮＶゲート８４の各出力端子からは、夫々多相クロック信号Ｒ１〜Ｒ１６が出力される。
【００７９】
再び、図１９を参照して、カウンタ・データラッチ回路８２には、制御回路８０より出力される制御タイミング信号ＵＣＥ及びＣＬＲが与えられるようになっている。これらの制御タイミング信号ＵＣＥ及びＣＬＲは、基準クロック信号ＰREF １周期に相当するパルス幅を有しており、制御回路８０におけるシーケンス制御周期の第３及び第７周期に夫々出力される信号である。
【００８０】
また、カウンタ・データラッチ回路８２には、リングオシレータ８３より出力されるクロック信号Ｒ１３がＲＣＫとして与えられ、そのクロック信号ＲＣＫによって内部のアップカウンタ（１６ビット）によるカウント動作を行う。そして、カウンタ・データラッチ回路８２は、制御タイミング信号ＵＣＥが出力されている間、カウンタにアップカウント動作を行わせることで、基準クロック信号ＰREF １周期に相当する時間をクロック信号ＲＣＫによってカウントする。
そのカウントデータは、制御回路８０よりシーケンス制御周期の第５周期で出力される制御タイミング信号ＤＬＳがＤＣＯ８１を介して与えられるラッチ信号ＤＬＣのタイミングでラッチされ、制御タイミング信号ＣＬＲが出力されるとラッチされたデータはクリアされる。
【００８１】
カウンタ・データラッチ回路８２は、カウントした１６ビットのデータＤＴ１６〜ＤＴ１を、ＣＰＵ７２により与えられる逓倍数設定データＤＶに応じてデータビットを右シフトし、そのシフト後のデータの１２ビットをラッチする。そして、ラッチされた１２ビットのデータは、ＣＤ１２〜ＣＤ１としてＤＣＯ８１に出力される。ＤＣＯ８１が出力する逓倍クロック信号ＰOUT ′は、デューティ比を調整するための分周回路８６を介して２分周されて、逓倍クロック信号ＰOUT として出力される。
また、モード制御信号ＰＡは、制御回路８０にも与えられていると共に、例えば、基準クロック信号ＰREF １周期分程度の遅延時間を与える遅延回路８７を介して、制御回路８０に動作開始信号ＰＳＴＢとしても与えられるようになっている。
【００８２】
図２０は、ＤＣＯ８１の詳細な構成を示す機能ブロック図である。カウンタ・データラッチ回路８２より与えられるラッチデータＣＤ１２〜ＣＤ１の内、上位側の８ビットであるＣＤ１２〜ＣＤ５は、ダウンカウンタ８８のカウントデータとして所定のタイミングでロードされるようになっている。そして、ダウンカウンタ８８は、リングオシレータ８３より出力されるクロック信号Ｒ１３によってロードされたカウントデータをダウンカウントするようになっている。
【００８３】
また、ラッチデータＣＤ１２〜ＣＤ１の内、下位側の４ビットであるＣＤ４〜ＣＤ１は、加算器８９を介してレジスタ９０のデータ入力端子Ｄに与えられるようになっている。レジスタ９０は、タイミング制御部９１より出力されるタイミング信号によって加算器８９の出力データを５ビットのデータＤ５〜Ｄ１として出力するようになっており、その内の下位３ビットデータＤ４〜Ｄ１は、パルスセレクタ９２に与えられると共に、加算器８９に被加算値として入力されるようになっている。また、レジスタ９０より出力されるデータＤ５は、加算器８９における加算に応じて発生するキャリー信号に相当するものであり、タイミング制御部９１に与えられるようになっている。
【００８４】
パルスセレクタ９２には、リングオシレータ８３より出力される多相クロック信号Ｒ１６〜Ｒ１が与えられており、それらの多相クロック信号Ｒ１６〜Ｒ１の内、レジスタ９０より出力されるデータＤ４〜Ｄ１の値（１０進数値＋１）に相当する番号）に対応するものを１つ選択して、出力端子Ｐ１（Ｒ８〜Ｒ１），Ｐ２（Ｒ１６〜Ｒ９）の何れか一方からタイミング制御部９１に出力するようになっている。タイミング制御部９１には、リングオシレータ８３より出力されるクロック信号Ｒ５が与えられている。
また、ダウンカウンタ８８は、ロードされたカウントデータをダウンカウントして行き、そのカウント値が“２”になると出力信号ＣＮ２をハイレベルにし、カウント値が“１”になると出力信号ＣＮ１をハイレベルにしてタイミング制御部９１に出力するようになっている。
【００８５】
以上の動作の概略は以下のようになる。即ち、基準クロック信号ＰREF の８周期毎に、基準クロック信号ＰREF の１周期相当のカウントデータＤＴ１６〜ＤＴ１がカウントされ、その内逓倍データＤｖに応じてビット右シフトされた１２ビットデータＣＤ１２〜ＣＤ１がＤＣＯ８１に与えられる。そして、上位８ビットのＣＤ１２〜ＣＤ５がダウンカウントされると、レジスタ９０より与えられる下位データＤ４〜Ｄ１の値（＋１）に対応する多相クロック信号Ｒ１６〜Ｒ１の何れか１つが選択されて逓倍クロック信号ＰOUT ′として出力される。
【００８６】
そして、図２１に示すように、パルスセレクタ９２の内部では、各多相クロック信号Ｒ１〜Ｒ１６に対応してアナログスイッチ９３が配置されている。そして、複数のアナログスイッチ９３の内何れかを制御データＤ１〜Ｄ４に基づいてエンコーダ９９によりエンコードし択一的にオンすることで、多相クロック信号Ｒ１〜Ｒ１６の内１つをタイミング制御部９１に出力するようになっている。
【００８７】
図２２は、カウンタ・データラッチ回路８２の内部構成の一部を示すものである。即ち、制御データＣＤ１２〜ＣＤ１は（図示はＣＤ４〜ＣＤ１のみ）、周波数設定回路部９４，周波数情報保持回路部（データ保持手段）９５によるダブルラッチ構成で保持されるようになっている。これらの回路部９４，９５は、夫々フリップフロップ９６，９７で構成されており、クロック入力端子には制御クロック１，２が与えられている。
そして、周波数設定回路部９４を構成するフリップフロップ９６のリセット端子にはリセット信号が与えられている。一方、周波数情報保持回路部９５を構成するフリップフロップ９６のリセット端子には、ＯＲゲート９８を介してリセット信号と、低消費電力モード時の停止制御信号が与えられている。
【００８８】
尚、周波数情報保持回路部９５は、通常動作時においては、周波数設定回路部９４によって制御クロック１により同期化され保持された制御データ１〜４を、制御クロック２によって再同期化するために使用されているものであり、それと同様の機能を有するものは、特開２０００−３５７９４７においても存在している（但し、低消費電力モードに移行すると、そのデータはリセットされて消失するようになっていた）。
【００８９】
次に、第５実施例の作用について図２３を参照して説明する。図２３は、周波数逓倍回路７７が低消費電力モードにある状態から、起動して発振動作を行なう場合を示すタイミングチャートである。（１）の低消費電力モードにおいては、リングオシレータ８３及び発振回路７６の発振動作は停止した状態にある。そして、（２）において低消費電力モードが解除されると、それらは発振動作を開始する。
また、低消費電力モード中に、周波数設定回路部９４のデータはリセットされているが、周波数情報保持回路部９５のデータは保持されている。この保持されているデータは、（１）の低消費電力モードに移行する前に、周波数逓倍回路７７が行なっていた発振動作に使用されたデータ（発振制御条件）であり、リングオシレータ８３のクロック信号によって発振回路７６の基準クロック信号の周期を計測したデータである。
【００９０】
従って、（２）で低消費電力モードが解除されると、周波数逓倍回路７７は、基準クロック信号周期の計測を再度行なわずとも、周波数情報保持回路部９５に保持されているデータに基づいて直ちに発振動作を開始することができる。そして、（３）で制御クロック１が立ち下がると、周波数設定回路部９４は、ウェイクアップ後のＣＰＵ７２によって新たに設定された制御データ入力１〜４を出力し、周波数情報保持回路部９５は、制御クロック２の立ち上がりでその制御データ入力１〜４をラッチして、（４）の立下りで新たに設定された制御データ１〜４を出力する。また、（４）では、逓倍クロック信号出力（発振出力）のイネーブル信号であるＦ＿Ｅがアクティブとなり、クロック信号ＰOUTがＣＰＵ７２に出力される。
【００９１】
以上のように第５実施例によれば、デジタル制御方式のＤＰＬＬ回路として構成される周波数逓倍回路７７の発振動作を低消費電力モード移行することで一時的に停止させる場合に、その時点で設定されている制御データＣＤ１２〜ＣＤ１を周波数情報保持回路部９５によって保持し、その保持した制御データＣＤ１２〜ＣＤ１に基づいて発振動作を再開させるようにした。従って、従来とは異なり、発振動作を再開させる際に発振制御条件を再度設定し直す必要がないので、再開時における発振状態をより速く安定させることができる。そして、更に低消費電力化を図ることができる。
【００９２】
また、周波数逓倍回路７７を、複数個の論理反転回路がリング状に接続されてなるリングオシレータ８３を備えて構成したので、デジタル制御方式の発振動作に必要な多相クロック信号を得る構成をより少ないゲート数で実現することができる。更に、低消費電力制御回７８は、クロック同期回路の動作を停止させて低消費電力モードに移行させる場合にリングオシレータ８３の発振動作を停止させるので、一層の低消費電力化を図ることができる。そして、周波数逓倍回路７７は、発振回路７６によって出力される基準クロック信号ＰREFの周波数をｎ逓倍したｎ逓倍クロック信号を生成して出力するＤＣＯ８１を備えるので、デジタル制御方式で高精度の発振動作を行なわせることができる。
【００９３】
ここで、周波数逓倍回路７７において、制御データを設定し直すことを想定すると、それに応じて基準クロック信号ＰREFの周期を多相クロック信号の周期に基づいて計測し、その計測値に基づいて逓倍動作をやり直すことになる。それに対して、制御データを保持する構成とすれば、基準クロック信号ＰREFの周期計測をやり直す必要がなくなるため、発振動作を極めて高速に安定化させることが可能となる。
【００９４】
また、従来のアナログ方式のＰＬＬ回路２００において、同様に発振動作を一時的に停止させる場合を想定すると、位相比較器２０１が出力する電圧信号を、一旦Ａ／Ｄ変換してそのデジタルデータをラッチするなどして保持し、発振動作を再開させる場合は、保持したデジタルデータをＤ／Ａ変換して出力させる、という構成にならざるを得ない。それに対して、第５実施例のようにデジタル制御方式の周波数逓倍回路７７であれば、制御データは一貫してデジタル形式であるから、データの保持を極めて容易に行うことができるので、アナログ方式に比較しても有利である。
【００９５】
＜以下は参考＞
Ｋ．設定された発振制御条件に応じて定まる周波数で発振動作が可能であると共に、前記発振動作が一時的に停止可能に構成されるデジタル制御方式の発振回路装置において、
発振動作を一時的に停止させる際に、その時点で設定されている発振制御条件が保持可能に構成され、保持された発振制御条件に基づいて発振動作を再開させるように構成されていることを特徴とする発振回路装置。
上記Ｋの発振回路装置によれば、デジタル制御方式の発振動作を一時的に停止させる場合はその時点で設定されている発振制御条件が保持され、その保持された発振制御条件に基づいて発振動作を再開させる。従って、従来とは異なり、発振動作を再開させる際に発振制御条件を再度設定し直す必要がないので、再開時における発振状態をより速く安定させることができる。そして、更に低消費電力化を図ることができる。
【００９６】
Ｌ．複数個の論理反転回路がリング状に接続されてなるリングオシレータを備えて構成されていることを特徴とする上記Ｋの発振回路装置。
上記Ｌの発振回路装置によれば、複数個の論理反転回路がリング状に接続されてなるリングオシレータを備えて構成されるので、デジタル制御方式の発振動作に必要な多相クロック信号を得る構成をより少ないゲート数で実現することができ、一層の低消費電力化を図ることができる。
Ｍ．前記発振制御条件を、発振動作を再開させる以前に変更可能に構成されていることを特徴とする上記ＫまたはＬの発振回路装置。
上記Ｍの発振回路装置によれば、発振制御条件が、発振動作を再開させる以前に変更可能に構成されるので、発振動作を再開させる際に発振周波数を切替えることができる。
【００９７】
（第６実施例）
図２４は、本発明の第６実施例を示すものである。第６実施例では、ＣＰＵ５２が、低消費電力モードが解除されると同時に、周波数逓倍回路７７によるｎ逓倍クロック信号の周波数を変化させるように処理する例を示す。即ち、周波数情報保持回路部９５の保持データは、ＣＰＵ７２によって読出し及び書込みが可能となるように構成されている。
図２４に示すフローチャートにおいて、ＣＰＵ７２は、先ず、周波数情報保持回路部９５の保持データを読み出す（ステップＥ１）。すると、そのデータに応じて次回の起動時における逓倍率を決定し、起動時における周波数に応じたデータを周波数情報保持回路部９５に書き込む（ステップＥ２）。それから、低消費電力モードに移行する（ステップＥ３）。
【００９８】
以上のように第６実施例によれば、制御データＣＤ１２〜ＣＤ１が、現在の発振動作を停止させる以前に変更可能に構成されるので、例えば、ＣＰＵ５２が発振動作を制御すると共に発振制御条件を設定する構成の場合、ＣＰＵ５２が発振動作を停止させる前の段階で、次回に動作を再開させる場合の発振周波数を変更したい場合には、予めそれに応じた発振制御条件を設定しておくことができる。
【００９９】
＜以下は参考＞
Ｎ．前記発振制御条件を、現在の発振動作を停止させる以前に変更可能に構成されていることを特徴とする上記Ｍの発振回路装置。
上記Ｎの発振回路装置によれば、発振制御条件を、現在の発振動作を停止させる以前に変更可能に構成されるので、例えば、ＣＰＵが発振動作を制御すると共に発振制御条件を設定する構成の場合、ＣＰＵが発振動作を停止させる前の段階で、次回に動作を再開させる場合の発振周波数を変更したい場合には、予めそれに応じた発振制御条件を設定しておくことができる。
【０１００】
Ｏ．所定の位相差を有する多相クロック信号をデジタル制御による発振動作で生成して出力する多相クロック信号出力手段を備え、基準クロック発振回路によって出力される基準クロック信号の周期を前記多相クロック信号の周期に基づいて計測し、その計測値に基づき前記基準クロック信号の周波数を前記多相クロック信号の位相差を分解能としてｎ逓倍したｎ逓倍クロック信号を生成して出力する周波数逓倍回路を備えて構成されていることを特徴とする上記Ｋ〜Ｌの何れかの発振回路装置。
上記Ｏの発振回路装置によれば、多相クロック信号出力手段を備え、基準クロック発振回路によって出力される基準クロック信号の周波数をｎ逓倍したｎ逓倍クロック信号を生成して出力する周波数逓倍回路を備えて構成されるので、デジタル制御方式で高精度の発振動作を行なわせることができる。
そして、上記の周波数逓倍回路を備える構成において発振制御条件を設定し直すことを想定すると、それに応じて基準クロック信号の周期を多相クロック信号の周期に基づいて計測し、その計測値に基づいて逓倍動作をやり直すことになる。それに対して、発振制御条件を保持する構成とすれば、基準クロック信号の周期計測をやり直す必要がなくなるため、発振動作を極めて高速に安定化させることが可能となる。
【０１０１】
Ｐ．前記周波数逓倍回路によって出力されるｎ逓倍クロック信号がクロック入力端子に与えられて動作するクロック同期回路の動作を停止させて低消費電力モードに移行させる場合に、前記多相クロック信号出力手段の発振動作を停止させる低消費電力制御手段と、
前記発振制御条件として、前記基準クロック信号の周期測定データを保持するデータ保持手段とを備えたことを特徴とする上記Ｏの発振回路装置。
上記Ｐの発振回路装置によれば、低消費電力制御手段は、クロック同期回路の動作を停止させて低消費電力モードに移行させる場合に多相クロック信号出力手段の発振動作を停止させ、データ保持手段は、基準クロック信号の周期測定データを保持する。従って、低消費電力モードが解除された場合には、データ保持手段によって保持されている周期測定データに基づく発振動作を直ちに行なわせることができる。
【０１０２】
（第７実施例）
図２５乃至図２８は、本発明の第７実施例を示すものである。図２５は、例えば車両用のボディＥＣＵ(Electronic Control Unit) などに使用されるシングルチップマイクロコンピュータ（マイコン）の一構成例を示すものである。マイコン１０１は、ＣＰＵ１０２を中心として、その周辺にメイン発振回路１０３，クロック制御回路１０４，ＣＲ発振回路１０５，ポート制御回路（信号レベル変化手段）１０６などを備えている。
【０１０３】
メイン発振回路１０３は、マイコン１０１の外部に接続される水晶発振子１０７を発振させてＣＰＵ１０２に動作用のクロック信号（マシンクロック或いはシステムクロック）を供給するものである。クロック制御回路１０４は、ＣＰＵ１０２によりアドレスバス１０８及びデータバス１０９を介してスリープ／ストップモードを開始させる指令が与えられると、メイン発振回路１０３に対してクロック停止信号を出力し、メイン発振回路１０３によるクロック信号の出力を停止させ、ＣＰＵ１０２（若しくは、ＣＰＵ１０２を含むマイコン１０１全体）をスリープ／ストップモードに設定する。
【０１０４】
ここで、スリープモードとは、一旦移行するとクロック制御回路１０４に内蔵されているタイマで所定時間が経過した時点で自動的に解除されるモードを言うものとし、ストップモードとは、一旦移行すると外部においてウェイクアップ要因（後述するウェイクアップ信号など）が発生するまで解除されないモードを言うものとする。即ち、これらは、ＣＰＵ１０２の動作状態を通常時よりも低下させることで消費電力の低下を図るモードである。
【０１０５】
そして、クロック制御回路１０４は、ウェイクアップ要因の発生に応じてウェイクアップ信号ＷＫＵＰが出力されると、クロック停止信号の出力を中止してメイン発振回路１０３によるクロック信号の出力を再開させるようになっている。尚、スリープモードにあっても、ウェイクアップ信号ＷＫＵＰの出力によって当該モードは解除されるようになっている。
例えば、メイン発振回路１０３の発振周波数は４ＭＨｚ程度であり、ＣＲ発振回路１０５の発振周波数は２５ｋＨｚ程度である。また、ＣＰＵ１０２は、周波数４ＭＨｚのクロックを、内蔵するＰＬＬ発振回路（図示せず）で４逓倍して１６ＭＨｚのクロック周波数で動作するようになっている。
【０１０６】
ポート制御回路１０６は、ＣＰＵ１０２が内部のレジスタに行う設定に応じて、マイコン１０１の出力端子（外部信号出力端子）１１０のレベル制御を行う回路である。また、ポート制御回路１０６には、クロック制御回路１０４によってスリープモード中に出力されるＳＬＥＥＰ信号が与えられている。
尚、具体的には図示しないが、マイコン１０１は、その他、割込みコントローラ，ＤＭＡコントローラ，ウォッチドッグタイマ，Ａ／Ｄコンバータ，Ｄ／Ａコンバータやシリアル通信回路などの周辺回路を備えている。
【０１０７】
図２６は、ポート制御回路１０６の内部構成を示す機能ブロック図である。タイマ（レベル変化用タイマ）１１１は、ＣＲ発振回路１０５によって出力されるＣＲクロック信号に基づいてカウント動作を行なうものであり、そのカウントデータは比較器（比較回路）１１２に与えられている。尚、タイマ１１１は、ＳＬＥＥＰ信号がアクティブの場合カウント動作がイネーブルとなる。
【０１０８】
比較器１１２には、出力タイミングレジスタ１１３の設定データも与えられており、比較器１１２は、両者のデータ値が一致すると、一致信号を一致保持部１１４を介してレベル設定部１１５に出力する。出力タイミングレジスタ１１３は、ＣＰＵ１０２によるデータの書込みが可能に構成されたレジスタである。また、一致保持部１１４は、比較器１１２によって出力された一致信号のアクティブ状態を保持するフリップフロップである。
【０１０９】
レベル設定部１１５には、レベル選択部１１６において設定されたレベルの信号を、一致保持部１１４を介して与えられる一致信号をトリガとしてマイコン１０１の出力端子１１０に出力するものである。レベル選択部１１６は、出力タイミングレジスタ１１３と同様に、ＣＰＵ１０２によるデータの書込みが可能に構成されたレジスタである。また、一致保持部１１４の出力状態は、ＣＰＵ１０２が別途設けられているリセットレジスタに書込みを行なうことで、リセットする（Ｓ／Ｗリセット）ことが可能に構成されている。
【０１１０】
尚、このポート制御回路１０６の機能は、以下のように動作させることを目的としたものである。即ち、ＣＰＵ１０２がスリープモードからウェイクアップした場合に、マイコン１０１の端子に接続されている制御対象等の外部デバイスについて、何らかの処理を行なう必要があるとする。その時に、処理の前段階として、当該外部デバイスの機能をアクティブにする（例えば、動作用電源を投入する）ことが要求される場合に、ＣＰＵ１０２がウェイクアップしてから全ての手順を踏むと、その処理が完了するまでに長い時間を要する。
そこで、第７実施例では、ＣＰＵ１０２がスリープモードに移行している場合においても、その解除前の段階で出力端子１１０のレベルをハードウエア的に制御し、外部デバイスの機能を予めアクティブにすることを目的とする。
【０１１１】
次に、第７実施例の作用について図２７及び図２８を参照して説明する。図２７は、ＣＰＵ１０２によるスリープモード移行処理の内容を示すフローチャートである。先ず、ＣＰＵ１０２は、レベル選択部１１６に書込みを行なうことで、スリープモード中に変化させる出力端子１１０のレベルを設定する（例えば、Ｌ→Ｈ，ステップＦ１）。続いて、出力タイミングレジスタ１１３に書込みを行なうことで、スリープモード中のどのタイミングで出力端子１１０のレベルを変化させるかを設定する（ステップＦ２）。
【０１１２】
それから、ＣＰＵ１０２は、クロック制御回路１０４の図示しない内部レジスタに書込みを行なうことで、スリープモードの継続時間を設定すると（ステップＦ３）、クロック制御回路１０４に対してスリープコマンドを発行する（ステップＦ４）。すると、クロック制御回路１０４は、それを受けてメイン発振回路１０３に対してクロック停止信号を出力して発振動作を停止させる。並行して、クロック制御回路１０４は、ポート制御回路１０６に対してＳＬＥＥＰ信号を出力する。
【０１１３】
図２８は、スリープモード移行中のタイミングチャートである。ＳＬＥＥＰ信号がアクティブ（ハイ）になると（ｅ）、メイン発振回路１０３によって出力されるマシンクロックは停止する（ｄ）。そして、ポート制御回路１０６のタイマ１１１が、ＳＬＥＥＰ信号の立ち上がりからカウント動作を開始する（ｂ）。出力タイミングレジスタ１１３には、例えば設定データ「１０」がセットされており（ａ）、タイマ１１１のカウント値が「１０」に達すると、比較器１１２は一致信号を出力する。
【０１１４】
すると、その時点で、レベル設定部１１５は出力端子１１０の信号レベルをＬ（ロウ）からＨ（ハイ）に変化させる。ここで、出力端子１１０の信号レベルがハイに変化したことで、その出力端子１１０に接続されている外部デバイスはアクティブ状態となる。その後、設定されたスリープ継続期間が経過してＣＰＵ１０２がウェイクアップすると、ＣＰＵ１０２は、当該外部デバイスに対して直ちに必要な処理を行うことが可能となる。そして、その処理を実行した後は、一致保持部１１４をＳ／Ｗリセットすることで、出力端子１１０の信号レベルを元に戻す。
【０１１５】
以上のように第７実施例によれば、マイコン１０１のポート制御回路１０６は、ＣＰＵ１０２がスリープモードに設定されている期間内に、出力端子１１０のレベルを変化させるようにした。従って、ＣＰＵ１０２は、出力端子１１０のレベルを変化させるためだけに通常の動作モードを継続する必要がないので、消費電力を低減することができる。
そして、ポート制御回路１０６は、タイマ１１１のカウント値と出力タイミングレジスタ１１３のレジスタ値とを比較器１１２が比較し、両者が一致することでトリガ信号が出力されると出力端子１１０のレベルを変化させるので、レジスタ１１３に設定されるタイミングで、出力端子１１０のレベルを変化させることができる。また、そのレジスタ１１３は、ＣＰＵ１０２によって任意のデータ値が設定可能に構成されるので、ユーザプログラムによってレベル変化タイミングを任意に設定することができる。
【０１１６】
加えて、出力端子のレベル１１０は、スリープモードが解除されるとＣＰＵ１０２によってリセットすることが可能に構成されるので、ＣＰＵ１０２が必要な処理を行った時点で出力端子のレベルを直ちにリセットすることができる。
【０１１７】
（第８実施例）
図２９及び図３０は、本発明の第８実施例を示すものであり、第７実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。第８実施例におけるポート制御回路１１７は、第7実施例の構成に機能を追加したものである。即ち、スリープ時間設定レジスタ１１８が追加されており、そのレジスタ１１８の設定データは、比較器１１９によってタイマ１１１のカウント値と比較される。
【０１１８】
比較器１１９は、両者が一致した時点で一致信号を割り込み発生部１２０に出力する。但し、割り込み発生部１２０は、比較器１１９によって一致信号が出力される以前に外部ウェイクアップ要因が発生し、スリープモードが解除された場合に、前記一致信号を受けてＣＰＵ１０２に割り込み要求を発生させるようになっている。即ち、タイマ１１１，スリープ時間設定レジスタ１１８，比較器１１９及び割り込み発生部１２０は、割り込み発生手段１２１を構成している。
【０１１９】
次に、第８実施例の作用について図３０をも参照して説明する。先ず、割り込み発生手段１２１の機能目的について述べる。スリープモードは、スリープ時間が経過する以前であっても外部要因の発生によって解除されるが、第７実施例の機能によってポート制御回路１０６が出力端子１１０のレベルを変化させた後に、外部要因の発生によって解除が行なわれると、次のような問題が発生する。
即ち、第７実施例において述べたように、ポート制御回路１０６が出力端子１１０のレベルを変化させる目的は、スリープモードが解除されると、ＣＰＵ１０２が直ちに外部デバイスに対する処理を実行できるようにするためである。従って、出力端子１１０のレベルが変化した時点から、スリープモードがタイマによって解除されるまでの時間は、通常、外部デバイスをアクティブにするために必要最小限の時間に設定される。何故なら、この時間に冗長性を持たせると電流消費量が増加するからである。
【０１２０】
そのような事情において、スリープモードが、スリープ時間の経過前に解除されると、ＣＰＵ１０２が起動した時点では、出力端子１１０のレベルを変化させてから必要な時間が経過していないため、外部デバイスが未だインアクティブ状態となっているおそれがある。そして、ＣＰＵ１０２は、起動した時点では、本来の必要な時間が後どれ位なのかを知る手段がない。
【０１２１】
そこで、第８実施例では、ＣＰＵ１０２に対して本来必要であった時間を割り込みによって通知することを目的とする。即ち、図３０に示すように、ポート制御回路１１７は、第７実施例と同様に出力端子１１０のレベルを変化させた後、外部要因の発生によって（ｆ）スリープモードが早期解除されると（ｄ，ｅ）、割り込み発生部１２０がアクティブとなる。そして、本来のスリープ時間が経過して比較器１１９が一致信号を出力すると、その時点でＣＰＵ１０２に対して割り込みを発生させる。
従って、ＣＰＵ１０２は、その割り込み信号によって、外部デバイスがアクティブとなったことが認識可能となり、必要な処理を行なった後に、出力端子１１０のレベルをＳ／Ｗリセットする。
【０１２２】
以上のように第８実施例によれば、割り込み発生手段１２１は、ポート制御回路１１７信号が出力端子１１０のレベルを変化させた後、解除要因の発生によってスリープモードが解除されると、図示しない解除タイマによってスリープモードが解除される予定のタイミングでＣＰＵ１０２に対して割り込み要求を発生させるようにした。したがって、ＣＰＵ１０２は出力端子１１０について変化させた信号レベルの維持期間を把握できるようになり、その割り込み要求を認識した後、必要に応じて出力端子１１０のレベルをリセットすることができる。
【０１２３】
（第９実施例）
図３１乃至図３４は本発明の第９実施例を示すものである。マイクロコンピュータ１３１の構成を示す図３１において、ＣＰＵ１３２は、データバスが例えば１６ビット構成であり、ＲＯＭ１３３に記憶されているプログラムやデータを読み出して実行するようになっている。ＲＯＭ１３３は、例えばフラッシュＲＯＭで構成されており、データバス幅はＣＰＵ１３２の２倍の３２ビット構成となっている。
【０１２４】
そして、両者の間にはＲＯＭコントローラ（メモリインターフェイス回路装置）１３４が介在しており、ＣＰＵ１３２は、ＲＯＭコントローラ１３４を介してＲＯＭ１３３よりデータを読み出すようになっている。ＲＯＭコントローラ１３４は、ＣＰＵ１３２によって出力された読出しアドレスＡについて所定の操作を行なったアドレスＲＯＭ＿Ａを出力してＲＯＭ１３３よりデータＲＯＭ＿Ｄを読み出す。そのデータを適切なタイミングでＣＰＵ１３２側のデータバス上にデータＤとして出力するようになっている。
即ち、マイコン１０１においては、フラッシュＲＯＭで構成されるＲＯＭ１３３の読出し速度はＣＰＵ１３２の処理速度に比較して遅いため、ＲＯＭ１３３側のデータバス幅をＣＰＵ１３２の２倍として、両者の間の調停制御をＲＯＭコントローラ１３４が行なうように構成されている。
【０１２５】
図３２は、ＲＯＭコントローラ１３４の内部構成を示すブロック図である。ＲＯＭコントローラ１３４は、制御部（データ読出し手段，読出し制御手段）１３５、アドレスパス部１３６、データパス部(読出し制御手段)１３７によって構成されている。制御部１３５は、アドレスパス制御部１３７、データパス制御部１３８、アドレスヒット検出部１３９、ＲＯＭ制御部１４０及びＣＰＵ制御部１４１を備えている。
【０１２６】
アドレスパス制御部１３７，データパス制御部１３８は、夫々アドレスパス部１３６，データパス部１３７の制御を行う。アドレスヒット検出部１３９は、アドレスパス部１３６が保持しているアドレスと、ＣＰＵ１３２によって出力されたアドレスとの一致（ヒット）を検出するものである。ＣＰＵ制御部１４１は、ＣＰＵ１３２に対して読み出し制御信号（アクノリッジ信号ＡＣＫＮ）を出力する。尚、読み出し制御信号ＡＣＫＮは、ＣＰＵ１３２に対してＲＯＭデータ読出しをウエイトさせる場合にハイレベルとなり、ロウレベルではアクノリッジがアクティブであることを示している。そして、ＲＯＭ制御部１４０は、これらを統括的に制御するようになっている。
【０１２７】
アドレスパス部１３６は、ＲＯＭ１３３に対してマルチプレクサ（ＭＵＸ）１４２を介してアドレスを出力するようになっている。そのＭＵＸ１４２の一方の入力側には、ＣＰＵ１３２側のアドレスバスに直結されるスルーパス１４３が接続されており、他方の入力側にはカウンタ側パス１４４が接続されている。
スルーパス１４３には、バッファ（ラッチ）１４５の入力側も接続されており、バッファ（アドレス格納手段）１４５の出力側は、アドレスヒット検出部１３９に接続されている。バッファ１４５は、ＣＰＵ１３２がデータ読み出しサイクルを実行した場合に出力されたアドレスが格納される。
【０１２８】
また、ビット出力部１４６は、ＲＯＭ１３３のデータ読出し対象アドレスと、そのアドレスに応じたデータがバッファ１４５、及び後述するデータ用バッファ１５４に格納されている場合に、ＲＯＭ読出しイネーブルを示すビット（バリッドビット）がセットされるように構成されており、その出力側もアドレスヒット検出部１３９に接続されている。尚、ビット出力部１４６のリセットは、ハードウエアによって行われる。
【０１２９】
一方、カウンタ側パス１４４側には、ＭＵＸ１４７、カウンタバッファ（アドレス保持手段）１４８及びカウンタ（＋４）１４９が配置されている。ＭＵＸ１４７の一方の入力側にはスルーパス１４３が接続されており、他方の入力側には、カウンタ１４９の出力側が接続されている。そして、ＭＵＸ１４７の出力端子は、カウンタバッファ１４８を介してカウンタ１４９の入力側及びカウンタ側パス１４４に接続されている。
また、カウンタ側パス１４４には、スルーパス１４３側と同様にバッファ１５０の入力側も接続されており、バッファ１５０の出力側は、アドレスヒット検出部１３９に接続されている。また、ビット出力部１５１の出力側もアドレスヒット検出部１３９に接続されている。
【０１３０】
ビット出力部１５１は、ビット出力部１４６と同様に、ＲＯＭ１３３の命令読出し対象アドレスと、そのアドレスに応じた命令がバッファ１４８、及び後述する命令用バッファ１５３に格納されている場合に、ＲＯＭ読出しイネーブルを示すビットがセットされるように構成されている。そして、ＣＰＵ１３２による命令読出しが連続したアドレスで行われている場合には、ＲＯＭコントローラ１５３，ＲＯＭ１３３との間における１サイクル毎に、ビット出力部１５１及び１５３とＣＰＵ１３２側のアドレスＡからヒット、ミスヒットを交互に検出することになる。
【０１３１】
データパス部１３７は、ＭＵＸ１５２，命令用バッファ１５３、データ用バッファ１５４及びＭＵＸ１５５で構成されている。ＭＵＸ１５２の入力側には、３２ビットのＲＯＭ＿Ｄの内、上位１６ビット［３１：１６］，下位１６ビット［１５：０］が夫々接続されている。命令用バッファ１５３は、ＣＰＵ１３２がＲＯＭ１３３に対して命令読出し（インストラクションフェッチ）サイクルを実行した場合に、下位１６ビットデータが格納される。
【０１３２】
データ用バッファ１５４は、ＣＰＵ１３２がＲＯＭ１３３に対してデータ読出し（データロード）サイクルを実行した場合に、３２ビットデータが格納される。そして、ＭＵＸ１５５は、ＭＵＸ１５２，命令用バッファ１５３、データ用バッファ１５４の上位側，下位側の何れかを選択してＣＰＵ１３２側のデータバスに出力するようになっている。
【０１３３】
図３３は、ＣＰＵ１３２がＲＯＭ１３３に対する読み出しサイクルを実行する場合におけるＲＯＭコントローラ１３４の制御内容を示すフローチャートである。また、図３４は、ＣＰＵ１３２が命令読出しサイクルを連続的に実行した場合のタイミングチャートである。尚、ＲＯＭコントローラ１３４は純粋にハードウエアのみで構成されており、図３３のフローチャートは、そのハードウエアの動作を表したものである。
【０１３４】
図３４における動作概要を説明すると、ＣＰＵ１３２は、命令読出しを１６ビット（２バイト）単位で行う（ａ）。その場合、ＲＯＭコントローラ１３４は、自身がバッファ１４８に保持しているアドレスを、ＲＯＭ１３３のデータバス幅３２ビットに合わせて「４」ずつ増加させ、命令を３２ビット（４バイト）単位で読み出すようになっている（ｂ）。
そして、ＲＯＭコントローラ１３４は、同時に読み出した３２ビットの命令の内、上位１６ビットは読出しと同時にＣＰＵ１３２側のデータバスに出力し、下位１６ビットは一旦バッファ１５３に格納する（ｈ）。そして、ＣＰＵ１３２が次の読み出しサイクルを実行した場合に、バッファ１５３に格納した命令を前記データバスに出力する（ｉ）。
【０１３５】
また、制御部１３５は、ＣＰＵアドレスＡと、カウンタバッファ１４８が保持しているアドレスとが一致すると、その次のサイクルにおいてアドレスを「４」増加させるためのカウントアップ信号を出力する（ｃ）。同時に、カウンタバッファ１４８が保持しているアドレスをバッファ１５０に、また、ＲＯＭ１３３より読み出されたデータをバッファ１５３にロードするためのロード信号を出力する（ｅ）。
【０１３６】
図３３において、制御部１３５は、外部の図示しないデコーダによるデコード信号の出力状態によってＲＯＭ１３３に対する読み出しサイクルが発生するまで待機している（ステップＧ１）。そして、前記読み出しサイクルが発生すると(「ＹＥＳ」)、その読み出しサイクルが「命令読出し」であるか否かを判断する（ステップＧ２）。
【０１３７】
Ａ．＜命令読出し:アドレス連続＞
制御部１３５は、ＣＰＵ１３２が出力する制御信号におけるアクセスコード等を参照し、「命令読出し」であると判断すると（ステップＧ２，「ＹＥＳ」）、次に、そのアドレスが命令用バッファ１５３にヒットしているか否かを判断する（ステップＧ３）。
前記アドレスに対応する命令が命令用バッファ１５３に格納されていればヒットであるから(「ＹＥＳ」)、制御部１３５は、カウンタ１４９によって「４」が加算されたアドレスにより（ＭＵＸ１４７を介して）バッファ１４８の値を更新させる（ステップＧ４）。尚、制御部１３５は、ビット出力部１５１が「１」を出力している場合で、且つ、バッファ１５０に格納されているアドレスとＣＰＵ１３２側のアドレスＡとが一致した場合に、命令の内下位１６ビットがヒットしていると判断する。
【０１３８】
それから、ＭＵＸ１４２を介してＲＯＭ１３３側のアドレスバスに前記アドレスを出力させ、４バイト分の命令読出しを行う（ステップＧ５）。続いて、制御部１３５は、データパス部１３７の命令用バッファ１５３にヒットしている命令を、当該バッファ１５３よりＣＰＵ１３２側のデータバスに出力させる。
【０１３９】
ここで、図３４を参照する。上記のケースは、例えば、サイクル（３）に対応する。即ち、ＣＰＵ１３２がアドレス（Ａ＋２）を出力すると、そのアドレスに対応する命令Ｄ２は、ＲＯＭコントローラ１３４がその前のサイクル（１），（２）で行った読出しにおいて命令用バッファ１５３に格納されている。従って、この場合はバッファヒットとなり、命令Ｄ２はバッファ１５３より出力される。
それと同時に、バッファヒットとなった場合は、次回も命令が連続して（Ａ＋４）読み出される蓋然性が高いので、次回の命令読出しに備えてアドレス（Ａ＋４）による命令読出しを予め行なっておく。
【０１４０】
再び、図３３を参照する。ステップＧ３において、バッファヒットとならなかった場合(「ＮＯ」)、制御部１３５は、その時のアドレスが、現在読出しを行なっているアドレスに一致しているか否かを判断する（ステップＧ７）。そして、両者が一致している場合は(「ＹＥＳ」)、その時点で行われている読出しが完了するまでのセットアップ時間が経過するまで待機し（ステップＧ８，「ＹＥＳ」）、読み出されたデータの下位側１６ビットでバッファ１５３の内容を更新する（ステップＧ９）。また、読み出されたデータの上位側１６ビットは、そのままＣＰＵ１３２側のデータバスに出力する（ステップＧ１０）。
【０１４１】
上記のケースは、例えば、図３４のサイクル（４）に対応する。即ち、ＣＰＵ１３２がアドレス（Ａ＋４）を出力すると、そのアドレスに対応する命令Ｄ４はバッファ１５３に格納されておらずバッファミスとなるが、アドレス（Ａ＋４）は、サイクル（３），（４）で行なっている読出しのアドレス（先読みアドレス）と一致している。従って、制御部１３５は、サイクル（４）で読み出されたデータの上位側Ｄ４をＣＰＵ１３２側のデータバスに出力し、下位側Ｄ６はバッファ１５３に格納する。
【０１４２】
Ｂ．＜命令読出し:分岐＞
また、ステップＧ７において、その時のアドレスが先読みアドレスに一致しなかった場合は(「ＮＯ」)、プログラムにおいて分岐命令が実行された場合である。この時、制御部１３５は、先読みアドレス（カウンタバッファ１４８）を更新すると共に（ステップＧ１１）、ＭＵＸ１４２をスルーパス１４３側に切替えることでＲＯＭアドレスを更新する（ステップＧ１２）。そして、ステップＧ８〜Ｇ１０と同様の処理を行なう（ステップＧ１３〜Ｇ１５）。
【０１４３】
Ｃ．＜データ読出し＞
ステップＧ２において、制御部１３５が「ＮＯ」と判断してステップＧ１６に移行するケースは、ＣＰＵ１３２がＲＯＭ１３３に対してデータ読出しサイクルを行った場合である。ＣＰＵ１３２がデータロードを行う場合、バイトアクセス，ワード（１６ビット）アクセスの２つのケースがあるが、ＲＯＭコントローラ１３４は、何れであるかにかかわらず、読出し対象データが属する３２ビット分のデータをＲＯＭ１３３より同時に読み出すようになっている。また、その場合の読み出しアドレスは、バッファ１４５に格納される。
そして、その３２ビットデータは常にデータ用バッファ１５４に格納されると共に、ＣＰＵ１３２の読出し対象データが属する上位，下位１６ビットの何れかは、ＭＵＸ１５２，１５５を介してデータバスに出力される。
【０１４４】
即ち、制御部１３５は、ステップＧ１６において、読出しアドレスがデータ用バッファ１５４にヒットしたか否かを、バッファ１４５に格納されたアドレスとビット出力部１４６のビットに基づいて判断する。そして、ヒットした場合は(「ＹＥＳ」)データ用バッファ１５４よりヒットした側の１６ビットデータをＭＵＸ１５５により選択してＣＰＵ１３２側のデータバスに出力する（ステップＧ１７）。また、ステップＧ１６において、読出しアドレスがデータ用バッファ１５４にヒットしなかった場合は(「ＮＯ」)、データについてステップＧ１２〜Ｇ１５と同様の処理を行なう（ステップＧ１８〜Ｇ２１）。
【０１４５】
以上のように第９実施例によれば、ＲＯＭコントローラ１３４の制御部１３５は、バッファ１４８に保持されたアドレスに対して、ＣＰＵ１３２が命令読み出しサイクルで出力したアドレスが一致すると、バッファ１４８に保持されたアドレス値を増加させてその次のサイクルでＲＯＭ１３３よりデータを読み出す。そして、命令用バッファ１５３は、制御部１３５が読み出したデータをＣＰＵ１３２のバス幅を超えている分だけ格納し、制御部１３５は、ＣＰＵ１３２が次回に連続するアドレスでＲＯＭ１３３に対する命令読み出しサイクルを実行すると、命令用バッファ１５３が保持しているデータをＣＰＵ１３２のデータバスに出力するようにした。
【０１４６】
即ち、ＲＯＭ１３３の読み出し速度が遅い場合でも、ＣＰＵ１３２が連続するアドレス（ＣＰＵ１３２のデータバス幅に応じた増分のアドレス）で命令読出しを行う場合は、次回以降に読み出そうとする命令は今回の読出しで同時に読み出されて命令用バッファ１５３に格納され、次回の読出しでは命令用バッファ１５３より命令が読み出される。従って、ＣＰＵ１３２がＲＯＭ１３３からの読み出しを行うために従来必要であったウエイトサイクルを削減することができ、処理効率を向上させることができる。
【０１４７】
また、ＣＰＵ１３２がＲＯＭ１３３に対するデータ読み出しサイクルを実行した場合は、読み出されたデータをデータ用バッファ１５４に格納し、制御部１３５は、ＣＰＵ１３２が、次回にデータ読み出しサイクルを実行した場合にその読出しアドレスがデータ用バッファ１５４にヒットすれば、バッファ１５４に格納されているデータをＣＰＵ１３２のデータバスに出力する。即ち、データ用バッファ１５４は所謂データキャッシュとして作用することになるので、ＣＰＵは、データの読出し効率を向上させることが可能となる。
【０１４８】
＜以下は参考＞
Ｑ．ＣＰＵと、このＣＰＵよりも広いデータバス幅を構成する１つ以上のＲＯＭとの間に接続され、前記ＣＰＵが前記ＲＯＭよりデータを読み出そうとする場合に、その読み出しを制御するメモリインターフェイス回路装置であって、
アドレス値を保持する命令用アドレス保持手段と、
このアドレス保持手段に保持されたアドレスと、前記ＣＰＵが前記ＲＯＭに対する命令読み出しサイクルを実行するために出力したアドレスとを比較し、両者が一致した場合は、前記アドレス保持手段に保持されたアドレス値を、前記ＲＯＭのバス幅が前記ＣＰＵのバス幅を超えている分だけ増加させて、前記ＲＯＭよりデータを読み出すデータ読み出し手段と、
前記データ読み出し手段が読み出したデータを、前記ＲＯＭのバス幅が前記ＣＰＵのバス幅を超えている分だけ格納する命令用バッファと、
前記ＣＰＵが、次回に連続するアドレスで前記ＲＯＭに対する命令読み出しサイクルを実行すると、前記命令用バッファが保持しているデータを前記ＣＰＵのデータバスに出力させるように制御する読出し制御手段とを備えることを特徴とするメモリインターフェイス回路装置。
【０１４９】
上記Ｑのメモリインターフェイス回路装置によれば、データ読み出し手段は、アドレス保持手段に保持されたアドレスと、ＣＰＵが命令読み出しサイクルで出力したアドレスとが一致すると、アドレス保持手段に保持されたアドレス値を増加させてＲＯＭよりデータを読み出す。そして、命令用バッファは、データ読み出し手段が読み出したデータをＣＰＵのバス幅を超えている分だけバッファリングし、読出し制御手段は、ＣＰＵが次回に連続するアドレスでＲＯＭに対する命令読み出しサイクルを実行すると、命令用バッファが保持しているデータをＣＰＵのデータバスに出力する。
【０１５０】
即ち、ＲＯＭの読み出し速度が遅い場合でも、ＣＰＵが連続するアドレスで命令読出しを行う場合は、ＣＰＵが次回以降に読み出そうとする命令は今回の読出しで同時に読み出されて命令用バッファに保持され、次回の読出しでは命令用バッファより命令が読み出される。従って、ＣＰＵがＲＯＭからの読み出しを行うために従来必要であったウエイトサイクルを削減することができ、処理効率を向上させることができる。
【０１５１】
Ｒ．前記ＣＰＵが前記ＲＯＭに対するデータ読み出しサイクルを実行した場合に、前記データ読み出し手段が前記ＲＯＭより読み出したデータを、前記ＲＯＭのバス幅が前記ＣＰＵのバス幅を超えている分だけ格納するデータ用バッファと、
前記アドレスを格納するためのアドレス格納手段とを備え、
前記読出し制御手段は、前記アドレス格納手段に格納されているアドレスに基づいて、前記ＣＰＵが次回に前記ＲＯＭに対するデータ読み出しサイクルを実行した場合に、その読み出しアドレスに対応するデータが前記データ用バッファに格納されていると判断すると、前記データを前記ＣＰＵのデータバスに出力させるように制御することを特徴とする上記Ｑのメモリインターフェイス回路装置。
【０１５２】
上記Ｒのメモリインターフェイス回路装置によれば、ＣＰＵがデータ読み出しサイクルを実行した場合にＲＯＭより読み出されたデータを、ＲＯＭのバス幅がＣＰＵのバス幅を超えている分だけデータ用バッファに格納する。また、この時、前記読出しアドレスはアドレス格納手段に格納される。そして、読出し制御手段は、ＣＰＵが次回にデータ読み出しサイクルを実行した場合に、その読み出しアドレスに対応するデータがデータ用バッファに格納されていると判断すると、そのデータをＣＰＵのデータバスに出力させる。
即ち、データ用バッファは所謂データキャッシュとして作用するので、データの読出しアドレスがデータ用バッファにヒットした場合、ＣＰＵはそのデータを高速に読み出すことができる。従って、データの読出し効率を向上させることが可能となる。
【０１５３】
（第１０実施例）
図３５及び図３６は本発明の第１０実施例を示すものであり、第９実施例と異なる部分についてのみ説明する。図３５に示すように、第１０実施例では、ＲＯＭコントローラ１３４Ａの制御部１３５Ａは、ＣＰＵ１３２がストール状態となったことを検出する機能を有しており、その場合に、ＲＯＭ１３３の電流を遮断する制御を行うように構成されている。
【０１５４】
図３６に示すタイミングチャートにおいて、制御部１３５Ａは、ＣＰＵ１３２の動作にストールが発生したことを、例えばアドレス値（Ａ＋４）が２サイクル続けて同じ値であることによってサイクル（５）のタイミングで検出する。
その後、ＣＰＵ１３２のストール状態が例えば更に２サイクル継続すると、制御部１３５Ａは、ＲＯＭ１３３の消費電流をカットするように制御する。尚、ここで言う「ストール」とは、一般的な意味におけるＣＰＵ１３２内部の演算処理の停止に加えて、ＲＯＭ１３３に対するアクセスが行われない状態（例えば、ＲＡＭやＩ／Ｏ等の他のリソースに対してアクセスを行っている場合）も含むものとする。その場合は、外部のデコーダのデコード信号によってＲＯＭ１３３がセレクトされなくなることで判定できる。例えば、図３３のステップＧ１において、「ＮＯ」と判断している期間を計測して判定することが可能である。
【０１５５】
以上のように第１０実施例によれば、ＲＯＭコントローラ１３４Ａの制御部１３５Ａは、ＣＰＵ１３２がストール状態となったことを検出するとＲＯＭ１３３からのデータ読み出しを停止させる。そして、ＣＰＵ１３２のストール状態が所定期間継続すると、ＲＯＭ１３３における消費電流を遮断するようにした。従って、無駄な電力消費を低減することができる。
【０１５６】
＜以下は参考＞
Ｓ．前記読出し制御手段は、前記ＣＰＵの動作にストールが発生したことを検出可能に構成され、
前記データ読み出し手段は、前記ストールが発生したことが検出された場合に、前記ＲＯＭに対するデータの読み出しが実行中である場合は、その読み出し処理を継続して完了させることを特徴とする上記Ｑ，Ｒ，下記Ｕの何れかのメモリインターフェイス回路装置。
上記Ｓのメモリインターフェイス回路装置によれば、データ読み出し手段は、ＣＰＵの動作にストールが発生したことが検出された場合でも、ＲＯＭに対するデータの読み出しが実行中である場合は、その読み出し処理を継続して完了させる。即ち、ストールが発生した時点で直ちに読出しを中止することがないので、読出し効率を向上させることができる。
【０１５７】
Ｔ．前記読出し制御手段は、前記ＣＰＵの動作にストールが発生したことを検出し、そのストール状態が所定期間継続すると、前記ＲＯＭにおける消費電流を遮断するように制御することを特徴とする上記Ｑ，Ｒ，下記Ｕの何れかのメモリインターフェイス回路装置。
上記Ｔのメモリインターフェイス回路装置によれば、読出し制御手段は、ＣＰＵのストール状態が所定期間継続すると、ＲＯＭにおける消費電流を遮断するように制御するので、無駄な電力消費を低減することができる。
【０１５８】
本発明は上記し且つ図面に記載した実施例にのみ限定されるものではなく、以下のような変形または拡張が可能である。
第１実施例において１／Ｎ分周器１９，２０は必要に応じて設ければ良い。
第２実施例において、メインクロック監視部７は削除しても良い。
また、第２実施例においてステップＡ０，Ａ４は削除して実施しても良い。
また、第２実施例において、高速補正動作は、必ずしもバイナリサーチ方式で行なうものに限らず、比較的大なる調整信号データから開始して、その絶対値が次第に小さくなるようにして行えば良い。
第５実施例において、発振回路装置の発振動作を停止させる場合は、低消費電力モードの実行に伴うものに限ることはない。即ち、発振回路装置が出力するクロック信号は、ＣＰＵの動作用クロック信号として供給されるものに限らず、どのような用途であっても良い。従って、その用途に応じてクロック信号の出力を一時的に停止させた後、出力を再開させる必要があるものであれば、広く適用が可能である。
【０１５９】
第７実施例において、出力タイミングレジスタ１１３に設定されるデータは、ハードウエア的に固定されているように構成しても良い。
第８実施例において、レベル変化用タイマを解除タイマと共通にすれば、より簡単に構成することができる。
また、第８実施例において、割り込み発生用のタイマを、レベル変化用タイマと独立に備えても良い。
また、マイコン１０１に、ＣＰＵ１０２の動作を監視するためのウォッチドッグタイマ、若しくは、ＣＰＵ１０２の動作用クロックとは独立にカウント動作するフリーランタイマなどを備えている場合、レベル変化用タイマを、それら他のタイマと共通とすることで、構成をより簡単にすることができる。但し、この場合、レベル変化用タイマとして使用する場合は、そのタイマ動作の開始時点におけるウォッチドッグタイマ等のカウント値を読み出し、出力タイミングに相当するカウント値を加算したものを出力タイミングレジスタに設定する。そして、タイマを共通にすることで、ソフトウエアの作成管理が容易となり、バグが発生する可能性を低下させることができる。
【０１６０】
第９実施例において、メモリインターフェイス回路装置が内蔵するバッファのバス幅を、ＲＯＭのデータバス幅よりも広くするように構成しても良い。斯様に構成すれば、データ読み出し手段がＲＯＭに対する読出しを複数回行なって、前記バッファにデータを格納することでより多くのデータについてその先読みを行なうことができる。
第９または第１０実施例において、ＲＯＭを、１６ビットバス構成のマットを２個並べて同様に実施しても良い。また、その場合、ＲＯＭコントローラ１３４による読出し対象となっていないマットのＲＯＭについては消費電流を遮断するように構成しても良い。斯様に構成しても、ＲＯＭが複数マットで構成されている場合に、無駄な電力消費を低減することができる。
【０１６１】
更に、第１０実施例において、ＣＰＵ１３２がスリープ／ストップなどの低消費電力モードに移行した場合は、ＲＯＭの全ての消費電流を遮断するように構成しても良い。斯様に構成すれば、無駄な電力消費を低減することができる。
また、第１０実施例において、ＲＯＭコントローラ１３４Ａを、ＣＰＵ１３２のストール検出タイミングが例えばサイクル（４）でアドレス（Ａ＋２）が継続した場合に、その時点でＲＯＭ１３３に対して実行中である命令のデータＤ２，Ｄ４の読出しがその他の条件により続行可能であれば、続行して完了させるようにする。斯様に構成すれば、ＲＯＭコントローラ１３４Ａは、ストール状態を検出しても直ちにＲＯＭ１３３に対する読出しを停止することがないので、読出し効率を向上させることができる。
【０１６２】
＜以下は参考＞
Ｕ．前記バッファのバス幅は、前記ＲＯＭのデータバス幅よりも広く構成されていることを特徴とする請求項３０または３１記載のメモリインターフェイス回路装置。
上記Ｕのメモリインターフェイス回路装置によれば、バッファのバス幅を、ＲＯＭのデータバス幅よりも広くするので、データ読み出し手段が読出しを複数回行なって、前記バッファにデータを格納すれば、より多くのデータについてその先読みを行なうことができる。
【０１６３】
Ｖ．前記ＲＯＭが、複数マットで構成されている場合、
前記読出し制御手段は、前記データ読み出し手段による読出し対象となっているＲＯＭ以外の消費電流を遮断するように制御することを特徴とする請求項３４記載のメモリインターフェイス回路装置。
上記Ｖのメモリインターフェイス回路装置によれば、読出し制御手段は、データ読み出し手段による読出し対象となっているＲＯＭ以外の消費電流を遮断するので、ＲＯＭが複数マットで構成されている場合に、無駄な電力消費を低減することができる。
【０１６４】
Ｗ．前記読出し制御手段は、前記ＣＰＵが、内部状態を保持したまま動作を一時的に停止する低消費電力モードに移行した場合は、前記ＲＯＭの全ての消費電流を遮断するように制御することを特徴とする上記Ｓ又はＴのメモリインターフェイス回路装置。
上記Ｗのメモリインターフェイス回路装置によれば、読出し制御手段は、ＣＰＵが低消費電力モードに移行した場合は、ＲＯＭの全ての消費電流を遮断するので、無駄な電力消費を低減することができる。
【図面の簡単な説明】
【０１６５】
【図１】本発明をマイクロコンピュータに適用した場合の第１実施例であり、マイクロコンピュータの電気的構成を示す機能ブロック図
【図２】サブクロック補正部を中心とする詳細な構成を示す図
【図３】サブクロック補正部による補正処理を示すフローチャート
【図４】メインクロック監視部の詳細な構成を示す
【図５】本発明の第２実施例を示す図３相当図
【図６】ステップＳ１２における処理内容を示すフローチャート
【図７】ステップＳ１３における処理内容を示すフローチャート
【図８】高速補正動作が行なわれる状態の概念的な説明図
【図９】本発明の第３実施例であり、マイクロコンピュータの構成を示す機能ブロック図
【図１０】低消費電力制御部が、スリープモードについて制御を行う機能部分の構成を示す図
【図１１】低消費電力制御部が、ストップモードが設定された場合にＩ／Ｏ端子部の制御を行う機能部分の構成を示す図
【図１２】ＣＰＵが低消費電力モードに移行する場合の処理を示すフローチャート
【図１３】低消費電力モードが解除されて、ＣＰＵが起動（ウェイクアップ）する場合の処理を示すフローチャート
【図１４】本発明の第４実施例であり、マイクロコンピュータのクロック制御に関する機能部分を示すブロック図
【図１５】電源投入時や、スリープ／ストップモードからＣＰＵが起動したウェイクアップ時におけるクロック信号の遷移状態を示す図
【図１６】ＣＰＵが通常の動作を行なっている状態において、ユーザプログラムによりマシンクロックの切替えを行なう場合のダイヤグラム
【図１７】ＣＰＵが、図１６に示すダイヤグラムに基づいてマシンクロック信号の切替えを行なう場合の処理を示すフローチャート
【図１８】本発明の第５実施例であり、ＥＣＵの電気的構成を示す機能ブロック図
【図１９】周波数逓倍回路の概略構成を示す機能ブロック図
【図２０】ＤＣＯの詳細な構成を示す機能ブロック図
【図２１】リングオシレータの構成を示す図
【図２２】カウンタ・データラッチ回路の内部構成の一部を示す図
【図２３】周波数逓倍回路が低消費電力モードにある状態から、起動して発振動作を行なう場合を示すタイミングチャート
【図２４】本発明の第６実施例を示すＣＰＵのフローチャート
【図２５】本発明の第７実施例であり、シングルチップマイクロコンピュータの一構成例を示す図
【図２６】ポート制御回路の内部構成を示す機能ブロック図
【図２７】ＣＰＵによるスリープモード移行処理の内容を示すフローチャート
【図２８】スリープモード移行中のタイミングチャート
【図２９】本発明の第８実施例を示す図２６相当図
【図３０】図２８相当図
【図３１】本発明の第９実施例であり、マイクロコンピュータの構成を示す図
【図３２】ＲＯＭコントローラの内部構成を示すブロック図
【図３３】ＣＰＵがＲＯＭに対する読み出しサイクルを実行する場合におけるＲＯＭコントローラの制御内容を示すフローチャート
【図３４】ＣＰＵが命令読出しサイクルを連続的に実行した場合のタイミングチャート
【図３５】本発明の第１０実施例を示す図３１相当図
【図３６】図３３相当図
【図３７】従来技術を示す図２８相当図
【符号の説明】
【０１６６】
１はマイクロコンピュータ、２はＣＰＵ、３はメインクロック発振部（発振回路）、４はサブクロック発振部（ＣＲ発振回路）、５はウォッチドッグタイマ、６はサブクロック補正部（補正回路）、７はメインクロック監視部（監視回路）、８はエッジ検出回路８、９はパルスカウンタ、１０カウント数設定レジスタ、１１は比較調整手段、１３はラダー抵抗（可変抵抗器）、２１はクロック制御回路装置、３１はマイクロコンピュータ、３２はＣＰＵ、３５は低消費電力制御部（端子制御手段）、４２は入出力端子（外部信号端子）、５１はマイクロコンピュータ、５２はＣＰＵ、５４は外部発振子、５５はＤＰＬＬ回路（周波数逓倍回路）、５６はクロック制御部（切替通知制御部）、６２はステートカウンタ（シーケンス制御手段）、７１はＥＣＵ（マイクロコンピュータ）、７１ａはクロック制御回路（発振回路装置）、７６は発振回路、７７は周波数逓倍回路、７８は低消費電力制御回路（低消費電力制御手段）、８０は制御回路（シーケンス制御手段）、８１はＤＣＯ、８３はリングオシレータ（多相クロック信号出力手段）、９５は周波数情報保持回路部（データ保持手段）、１０１はシングルチップマイクロコンピュータ、１０２はＣＰＵ、１０６はポート制御回路（信号レベル変化手段）、１１０は出力端子（外部信号出力端子）、１１１はタイマ（レベル変化用タイマ）、１１２は比較器（比較回路）、１１３は出力タイミングレジスタ、１１７はポート制御回路、１２１は割り込み発生手段、１３１はマイクロコンピュータ、１３２はＣＰＵ、１３３はＲＯＭ、１３４，１３４ＡはＲＯＭコントローラ（メモリインターフェイス回路装置）、１３５，１３５Ａは制御部（データ読出し手段，読出し制御手段）、１３７はデータパス部(読出し制御手段)、１４５はバッファ（アドレス格納手段）、１４８はカウンタバッファ（アドレス保持手段）、１５３は命令用バッファ、１５４はデータ用バッファを示す。
【図１】
2008123538.tif 000003
【図２】
2008123538.tif 000004
【図３】
2008123538.tif 000005
【図４】
2008123538.tif 000006
【図５】
2008123538.tif 000007
【図６】
2008123538.tif 000008
【図７】
2008123538.tif 000009
【図８】
2008123538.tif 000010
【図９】
2008123538.tif 000011
【図１０】
2008123538.tif 000012
【図１１】
2008123538.tif 000013
【図１２】
2008123538.tif 000014
【図１３】
2008123538.tif 000015
【図１４】
2008123538.tif 000016
【図１５】
2008123538.tif 000017
【図１６】
2008123538.tif 000018
【図１７】
2008123538.tif 000019
【図１８】
2008123538.tif 000020
【図１９】
2008123538.tif 000021
【図２０】
2008123538.tif 000022
【図２１】
2008123538.tif 000023
【図２２】
2008123538.tif 000024
【図２３】
2008123538.tif 000025
【図２４】
2008123538.tif 000026
【図２５】
2008123538.tif 000027
【図２６】
2008123538.tif 000028
【図２７】
2008123538.tif 000029
【図２８】
2008123538.tif 000030
【図２９】
2008123538.tif 000031
【図３０】
2008123538.tif 000032
【図３１】
2008123538.tif 000033
【図３２】
2008123538.tif 000034
【図３３】
2008123538.tif 000035
【図３４】
2008123538.tif 000036
【図３５】
2008123538.tif 000037
【図３６】
2008123538.tif 000038
【図３７】
2008123538.tif 000039