(57)【特許請求の範囲】
【請求項１】
演算処理部（２２）、周辺回路（２４，２５）、読み出し専用メモリ（２６）、ランダムアクセスメモリ（２７）、マイクロコントローラの外部に設けられた外部バスとの間のデータ転送の制御を行う外部バス制御部（２８）及びクロック供給回路（３１）が内部バス（３２）で接続されており、基準とする内部クロックを基にして前記クロック供給回路（３１）により生成される演算処理部用クロックと周辺回路用クロックにより動作するマイクロコントローラにおいて、
前記クロック供給回路（３１）は、
前記内部クロックを基にして周辺回路用クロックを生成する周辺回路用クロック供給部（４３）と、
前記演算処理部（２２）により通常動作モードを指定された場合には、前記演算処理部（２２）の通常動作モードを指示するモード信号を生成し、前記演算処理部（２２）により間欠動作モードを指定された場合には、前記演算処理部（２２）の間欠動作モードを指示するモード信号を生成する間欠動作モード制御部（５１）と、
前記間欠動作モードを指示するモード信号と、前記演算処理部（２２）による内部バス（３２）のアクセスを示す内部バスアクセス信号が供給されたときに、所定時間演算処理部用クロックを一時停止させることを指示する間欠動作制御信号を生成する間欠動作制御信号生成部（５２）と、
前記内部クロックを基にして前記演算処理部用クロックを生成し、前記間欠動作制御信号を供給されたときに、前記演算処理部用クロックを一時停止させる演算処理部用クロック供給部（４２）と、
前記外部バス制御部（２８）から外部バスの動作が継続中であることを示す外部バス動作実行中信号を供給されると、ウエイト制御信号を生成するウエイト制御部（４５）とを有し、
前記演算処理部用クロック供給部（４２）は、前記ウエイト制御信号を供給されると、演算処理部用クロックを一時停止させ、
前記内部バス（３２）は、バス動作の１周期が、アクセスするアドレスを前記内部バス（３２）に出力するバス動作の第１サイクルと、前記内部バス（３２）を介してデータを転送するバス動作の第２サイクルとからなるマルチプレックス方式のバスであり、
前記間欠動作制御信号は、バス動作の第１サイクルに生成され、
前記ウエイト制御信号は、バス動作の第２サイクルに生成されることを特徴とするマイクロコントローラ。
【請求項２】
前記間欠動作モード制御部（５１）は、動作モードを決定する制御レジスタを備えており、前記演算処理部（２２）により設定された前記制御レジスタの値に対応して、前記演算処理部（２２）の間欠動作又は通常動作を指示するモード信号、及び前記間欠動作時に演算処理部用クロックを一時停止させるサイクル数を示すサイクル数指定信号を生成し、
前記間欠動作制御信号生成部（５２）は、
前記間欠動作モードを指示するモード信号と、前記演算処理部（２２）による内部バスのアクセスを示す内部バスアクセス信号が供給されたときに、前記間欠動作制御信号を生成し、再開指示信号を供給されたときに、前記間欠動作制御信号の生成を停止する起動制御回路（５３）と、
前記サイクル数指定信号と前記間欠動作制御信号とを供給されて、前記間欠動作制御信号が生成されているサイクル数をカウントし、前記カウント値が指定されたサイクル数になったことを検出すると、前記演算処理部用クロックの供給再開を指示する再開指示信号を生成して前記起動制御回路（５３）に供給する間欠動作サイクルカウンタ（５４）とからなることを特徴とする請求項１記載のマイクロコントローラ。
【請求項３】
前記読み出し専用メモリ（２６）は、前記演算処理部用クロックにより動作することを特徴とする請求項１記載のマイクロコントローラ。
【請求項４】
前記ランダムアクセスメモリ（２７）は、前記演算処理部用クロックにより動作することを特徴とする請求項１記載のマイクロコントローラ。
【請求項５】
前記演算処理部（２２）は独立に前記読み出し専用メモリ（２６）、ランダムアクセスメモリ（２７）、周辺回路（２４、２５）間のデータ転送を行うデータ転送制御回路を備えており、前記データ転送制御回路は、前記演算処理部用クロックにより動作することを特徴とする請求項１記載のマイクロコントローラ。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、マイクロコントローラに係り、特に、ワンチップに中央演算装置（ＣＰＵ）、ＲＯＭ，ＲＡＭ等の記憶装置、びタイマやシリアルＩ／Ｏ等の周辺回路、及びクロック供給回路を内蔵するマイクロコントローラに関する。
【０００２】
上記マイクロコントローラは、作成するプログラムにより様々な制御を行うことができるので、様々な分野の制御用途に使用されている。
【０００３】
様々な分野の制御用途の中で、電池駆動により低消費電力が要求される制御用途が存在する。この制御用途では、電池による動作時間を長くするために、消費電力は大きいが高速に動作させるモードや、低速に動作させて消費電力が小さくなるモードなどに段階的に動作状態を変化させて、高速に処理を行いつつ、低消費電力にすることが必要とされている。
【０００４】
【従来の技術】
マイクロコントローラには、中央演算装置（ＣＰＵ）、ＲＯＭ，ＲＡＭ等の記憶装置、及びタイマやシリアルＩ／Ｏ等の周辺回路を内蔵しているものがある。
【０００５】
上記従来のマイクロコントローラでは、動作していないブロックのクロックを停止させたり、低速モード時に、ＣＰＵ及び周辺回路の動作クロックとして入力クロックを分周したクロックを供給することで低速に動作させたりして、低消費電力になるようにしていた。
【０００６】
【発明が解決しようとする課題】
前記従来のマイクロコントローラでは、低速モードに設定すると、動作クロックとして入力クロックを分周したクロックをＣＰＵ及び周辺回路に供給しているが、分周することによりクロック周波数が変化するため、周辺回路のタイマの時定数やシリアル転送の転送レートが変動してしまう。
【０００７】
このため、分周により動作クロックを切り換えるごとに、タイマの時定数やシリアル転送レートの設定値を変更する必要があり、処理が複雑になるという問題がある。
【０００８】
また、低速モードにしてＣＰＵを低速動作させる場合には、周辺回路も低速動作することとなり、消費電力の大きいＣＰＵのみを低速動作させることができないという問題がある。
【０００９】
また、クロック切り換え時には、上記の設定値を切り換えるまで、誤動作防止のために、タイマやシリアルＩ／Ｏ等の周辺回路を一時停止させる必要があり、ロスタイムが生じてしまう。
【００１０】
別の構成として、ＣＰＵへのクロックと、タイマやシリアルＩ／Ｏ等の周辺回路へのクロックを独立に生成して供給するものがある。しかし、この構成では、ＣＰＵクロックと周辺クロックの同期が必要であり、クロックのぶれを考慮しても同期が取れる回路とするために、回路規模が大きくなってしまうという問題がある。
【００１１】
本発明は、上記の点に鑑みてなされたもので、周辺回路と独立にＣＰＵの動作速度を設定でき、かつ、回路規模を抑えることができるマイクロコントローラを提供することを目的とする。
【００１２】
【課題を解決するための手段】
請求項１の発明は、演算処理部、周辺回路、読み出し専用メモリ、ランダムアクセスメモリ、マイクロコントローラの外部に設けられた外部バスとの間のデータ転送の制御を行う外部バス制御部及びクロック供給回路が内部バスで接続されており、基準とする内部クロックを基にして前記クロック供給回路により生成される演算処理部用クロックと周辺回路用クロックにより動作するマイクロコントローラにおいて、
前記クロック供給回路は、
前記内部クロックを基にして周辺回路用クロックを生成する周辺回路用クロック供給部と、
前記演算処理部により通常動作モードを指定された場合には、前記演算処理部の通常動作モードを指示するモード信号を生成し、前記演算処理部により間欠動作モードを指定された場合には、前記演算処理部の間欠動作モードを指示するモード信号を生成する間欠動作モード制御部と、
前記間欠動作モードを指示するモード信号と、前記演算処理部による内部バスのアクセスを示す内部バスアクセス信号が供給されたときに、所定時間演算処理部用クロックを一時停止させることを指示する間欠動作制御信号を生成する間欠動作制御信号生成部と、
前記内部クロックを基にして前記演算処理部用クロックを生成し、前記間欠動作制御信号を供給されたときに、前記演算処理部用クロックを一時停止させる演算処理部用クロック供給部と、
前記外部バス制御部から外部バスの動作が継続中であることを示す外部バス動作実行中信号を供給されると、ウエイト制御信号を生成するウエイト制御部とを有し、
前記演算処理部用クロック供給部は、前記ウエイト制御信号を供給されると、演算処理部用クロックを一時停止させ、
前記内部バスは、バス動作の１周期が、アクセスするアドレスを前記内部バスに出力するバス動作の第１サイクルと、前記内部バスを介してデータを転送するバス動作の第２サイクルとからなるマルチプレックス方式のバスであり、
前記間欠動作制御信号は、バス動作の第１サイクルに生成され、
前記ウエイト制御信号は、バス動作の第２サイクルに生成される構成とする。
【００１３】
請求項２の発明では、前記間欠動作モード制御部は、動作モードを決定する制御レジスタを備えており、前記演算処理部により設定された前記制御レジスタの値に対応して、前記演算処理部の間欠動作又は通常動作を指示するモード信号、及び前記間欠動作時に演算処理部用クロックを一時停止させるサイクル数を示すサイクル数指定信号を生成し、
前記間欠動作制御信号生成部は、
前記間欠動作モードを指示するモード信号と、前記演算処理部による内部バスのアクセスを示す内部バスアクセス信号が供給されたときに、前記間欠動作制御信号を生成し、再開指示信号を供給されたときに、前記間欠動作制御信号の生成を停止する起動制御回路と、
前記サイクル数指定信号と前記間欠動作制御信号とを供給されて、前記間欠動作制御信号が生成されているサイクル数をカウントし、前記カウント値が指定されたサイクル数になったことを検出すると、前記演算処理部用クロックの供給再開を指示する再開指示信号を生成して前記起動制御回路に供給する間欠動作サイクルカウンタとからなる構成とする。
【００１６】
請求項３の発明では、前記読み出し専用メモリは、前記演算処理部用クロックにより動作する構成とする。
【００１７】
請求項４の発明では、前記ランダムアクセスメモリは、前記演算処理部用クロックにより動作する構成とする。
【００１８】
請求項５の発明では、前記演算処理部とは独立に前記読み出し専用メモリ、ランダムアクセスメモリ、周辺回路間のデータ転送を行うデータ転送制御回路を備えており、前記データ転送制御回路は、前記演算処理部用クロックにより動作する構成とする。
【００１９】
【作用】
請求項１の発明では、基準となる内部クロックを変えることなく、間欠動作モード時に生成される間欠動作制御信号により、周辺回路用クロックと独立に、演算処理部用クロックの速度を変えることができる。
【００２０】
このため、周辺回路用クロックを一定速度にして、周辺回路を一定速度で動作させた状態で、演算処理部用クロックのみを低速にして、演算処理部のみを低速動作させて低消費電力化することを可能とする。
【００２１】
また、周辺回路用クロックを一定周波数としておけるため、従来のマイクロコントローラと異なり、クロック速度の切り換え時に、周辺回路のタイマの時定数やシリアル転送レートの設定値を変更する必要が無く、処理の複雑さを解消でき、また、タイマやシリアルＩ／Ｏ等の周辺回路を一時停止させる必要がない。
【００２２】
また、外部バスアクセス時のウエイト制御と同様にして、演算処理部用クロックを一時停止させて演算処理部用クロックを低速にするため、演算処理部としては、従来と同様のものをそのまま使用することができる。また、周辺回路用クロックは従来と同様であるので、周辺回路は、従来と同様のものをそのまま使用することができる。
【００２３】
また、演算処理部用クロックと周辺回路用クロックを独立に生成して両者の同期を確保する構成に比べると、大幅に小さい回路規模で実現することを可能とする。また、外部バスアクセス時のウエイト動作と、間欠動作モード時の間欠動作の両方を実行することを可能とする。また、マルチプレックス方式のバスにおいて、外部バスアクセス時のウエイト動作と、間欠動作モード時の間欠動作の両方を実行することを可能とする。
【００２４】
請求項２の発明では、制御レジスタの値を設定することで、間欠動作又は通常動作の設定、及び、間欠動作時の一時停止させるサイクル数を設定することができる。このため、演算処理部用クロックの速度を容易に適切な速度に設定することを可能とする。
【００２７】
請求項３の発明では、内蔵される読み出し専用メモリが、演算処理部用クロックにより動作するため、演算処理部用クロックを低速とすることにより、読み出し専用メモリの消費電力を低減することを可能とする。
【００２８】
請求項４の発明では、内蔵されるランダムアクセスメモリが、演算処理部用クロックにより動作するため、演算処理部用クロックを低速とすることにより、ランダムアクセスメモリの消費電力を低減することを可能とする。
【００２９】
請求項５の発明では、内蔵されるデータ転送制御回路が、演算処理部用クロックにより動作するため、演算処理部用クロックを低速とすることにより、データ転送制御回路の消費電力を低減することを可能とする。
【００３０】
【実施例】
図１は本発明の一実施例のマイクロコントローラ２１の構成図を示す。マイクロコントローラ２１の内部には、ＣＰＵコア（演算処理部）２２、ＲＯＭ２６、ＲＡＭ２７、タイマ２４，シリアルＩ／Ｏ２５等からなる周辺回路、クロック供給回路３１、及び外部バス制御部２８が、内部バス３２を介して接続されている。
【００３１】
ＣＰＵコア２２は命令を実行するブロックであり、命令デコーダ部、命令実行制御部、レジスタ、及び演算実行部から構成される。
【００３２】
タイマ２４は、制御に必要となる時間の計測を行う回路であり、シリアルＩ／Ｏ２５は、外部回路とシリアルデータで通信する回路である。
【００３３】
クロック供給回路３１は、マイクロコントローラ２１の外部から供給される外部クロックを基にして、ＣＰＵクロック（演算処理部用クロック）、周辺クロック（周辺回路用クロック）を生成する。ＣＰＵクロックは、ＣＰＵ２２、同期式のＲＯＭ２６とＲＡＭ２７に供給され、周辺クロックは、タイマ２４，シリアルＩ／Ｏ２５等の周辺回路に供給される。また、クロック供給回路３１は、リセット信号を各部に供給する。
【００３４】
外部バス制御部２８は、マイクロコントローラ２１の外部に設けられた外部バスとの間のデータ転送の制御を行う。外部バスには、外部メモリ等が接続される。
【００３５】
図２は、クロック供給回路３１の構成図を示す。なお、リセット信号に関する部分は図示しない。動作クロック生成部４１は、マイクロコントローラ２１の外部から供給される外部クロックを基にして、クロック供給回路３１の基準となる内部クロックを生成する。
【００３６】
周辺クロック供給部４３は、動作クロック生成部４１から供給される内部クロックと同期した周辺クロックを生成する。
【００３７】
ＣＰＵクロック供給部４２は、動作クロック生成部４１から供給される内部クロックと同期したＣＰＵクロックを生成する。なお、後述するクロック停止モード制御回路４７からＣＰＵクロック停止指示信号が供給されたときは、ＣＰＵクロックの生成を停止する。また、後述するように、間欠動作制御信号、又はウエイト制御信号を供給されたときには、ＣＰＵクロックの一時停止を行う。
【００３８】
クロック停止モード制御回路４７は、クロック停止モード、又はクロック停止解除モードのいずれかに決定する制御レジスタを持つ。この制御レジスタは、ＣＰＵコア２２等により内部バス３２を介して設定される。
【００３９】
ＣＰＵコア２２により、全クロック停止モードを指定する値が制御レジスタに設定されたときは、クロック停止モード制御回路４７は、クロック停止指示信号を動作クロック生成部４１に供給する。
【００４０】
動作クロック生成部４１は、クロック停止モード制御回路４７からクロック停止指示信号を供給されると、内部クロックの生成を停止する。これにより、ＣＰＵクロック供給部４２はＣＰＵクロックの生成を停止し、周辺クロック供給部４３は周辺クロックの生成を停止して、クロック供給回路３１は、全クロック停止モードに設定される。
【００４１】
この全クロック停止モードでは、ＣＰＵクロックと周辺クロックが共に停止するため、マイクロコントローラ２１は、動作を完全に停止した、待機状態となる。
【００４２】
ＣＰＵコア２２により、ＣＰＵクロック停止モードを指定する値が制御レジスタに設定されたときは、クロック停止モード制御回路４７は、ＣＰＵクロック停止指示信号をＣＰＵクロック供給部４２に供給する。
【００４３】
ＣＰＵクロック供給部４２は、クロック停止モード制御回路４７からＣＰＵクロック停止指示信号を供給されると、ＣＰＵクロックの生成を停止する。このようにして、クロック供給回路３１は、ＣＰＵクロック停止モードに設定される。ＣＰＵクロック停止モードでは、周辺クロックは停止されず、周辺回路は動作しており、ＣＰＵコア２２、ＲＯＭ２６、ＲＡＭ２７が動作を停止する。
【００４４】
クロック停止モード制御回路４７の制御レジスタに、クロック停止解除を指定する値が設定されると、クロック停止解除状態になり、クロック停止モード制御回路４７はクロック停止指示信号、又は、ＣＰＵクロック停止指示信号の生成を停止する。この場合、動作クロック生成部４１が内部クロックを生成し、周辺クロック供給部４３は周辺クロックを生成し、また、ＣＰＵクロック供給部４２は、ＣＰＵクロックを生成する。
【００４５】
図３は、クロック停止が解除され、かつ、ＣＰＵクロックの一時停止が無い、通常動作時のタイムチャートである。
【００４６】
クロック停止が解除されているので、動作クロック生成部４１は内部クロックを生成しており、周辺クロック供給部４３は、図３（Ｂ）に示す周辺クロックを生成している。
【００４７】
ウエイト制御信号、間欠動作制御信号は、Ｈレベルで有効な信号であり、図３（Ｃ）のウエイト制御信号、図３（Ｄ）の間欠動作制御信号は、共にＬレベルで無効状態である。このため、ＣＰＵクロックの一時停止が無く、ＣＰＵクロック供給部４２は、図３（Ａ）に示すように、内部クロックを基に通常のＣＰＵクロックを生成する。
【００４８】
マイクロコントローラ２１は、アドレスとデータをマルチプレックスして転送するマルチプレックス方式の内部バス３２を用いている。このため、バス動作の１周期は第１サイクルと第２サイクルからなり、バス動作の第１サイクル（例えば、図３のｔ1 〜ｔ2 、ｔ3 〜ｔ4 ）は、アクセスするアドレスを内部バス３２に出力するサイクルで、バス動作の第２サイクル（例えば、図３のｔ2 〜ｔ3 、ｔ4 〜ｔ5 ）は、内部バス３２を介してデータを転送するサイクルである。
【００４９】
メモリウエイト制御部４５は、外部バス制御部２８と接続されており、下記の外部バス動作実行中信号を供給される。ＣＰＵコア２２が外部バス制御部２８を介して外部バスをアクセスする際に、外部バスとＣＰＵコア２２間でのデータ転送が完了しないとき、外部バス制御部２８は、外部バスの動作が継続中であることを示す外部バス動作実行中信号をメモリウエイト制御部４５に供給する。
【００５０】
メモリウエイト制御部４５は、外部バス制御部２８から外部バス動作実行中信号を供給されると、ＣＰＵクロックを一時停止させるためのウエイト制御信号を生成して、ＣＰＵクロック供給部４２に供給する。ＣＰＵクロック供給部４２は、ウエイト制御信号を供給されると、ＣＰＵクロックを一時停止させる。このようにして、ＣＰＵコア２２はウエイト動作を行う。
【００５１】
図４は、ウエイト動作によるＣＰＵクロックの一時停止の例を示すタイムチャートである。なお、クロック停止モード制御回路４７には、クロック停止解除が設定されており、図４（Ｂ）に示すように、周辺クロックは、通常どおり生成されている。また、図４（Ｄ）の間欠動作制御信号は、Ｌレベルで無効状態である。
【００５２】
図４の時刻ｔ11〜ｔ13の周期では、内部バスのみにアクセスしており、時刻ｔ13〜ｔ17の周期では、外部バスにアクセスしている。第１サイクルの時刻ｔ13〜ｔ14では、ＣＰＵコア２２は、内部バス３２、外部バス制御部２８を介して、外部バスに対してアドレスを出力している。
【００５３】
第２サイクルの時刻ｔ14〜ｔ17では、ＣＰＵコア２２は、外部バスとの間でデータ転送を行おうとする。この際、外部バスに接続されているメモリ等の速度が遅いため等によりデータ転送が完了しないと、外部バス制御部２８は外部バス動作実行中信号をメモリウエイト制御部４５に供給する。
【００５４】
メモリウエイト制御部４５は、この外部バス動作実行中信号に対応して、時刻ｔ15〜ｔ16でウエイト制御信号（図４（Ｃ））を生成して、ＣＰＵクロック供給部４２に供給する。ＣＰＵクロック供給部４２は、ウエイト制御信号を供給されている間、ＣＰＵクロックを一時停止させる。図４（Ａ）では、１クロック分ＣＰＵクロックを一時停止している。このようにして、ＣＰＵコア２２は、外部バスとの間のデータ転送が完了するまで、ウエイト動作する。
【００５５】
次に、本発明の要部である間欠動作制御部５０について説明する。間欠動作制御信号を生成する間欠動作制御部５０は、間欠動作モード制御回路５１と間欠動作制御信号生成部５２から構成され、間欠動作制御信号生成部５２は、起動回路５３と間欠動作サイクルカウンタ５４から構成される。
【００５６】
間欠動作モード制御回路５１は、動作モードを決定する制御レジスタを持つ。この制御レジスタの制御ビットの値により、動作モードと間欠動作時にＣＰＵクロックを一時停止させるサイクル数が決まる。
【００５７】
ＣＰＵコア２２は、ＣＰＵクロックの一時停止を行わない通常動作モードを設定しようとする際には、内部バス３２を介して、通常動作モードを指定する値を、制御レジスタの動作モード制御ビットに設定する。
【００５８】
また、ＣＰＵコア２２は、ＣＰＵクロックの一時停止を行う間欠動作モードを設定しようとする際には、間欠動作モードを指定する値を、制御レジスタの動作モード制御ビットに設定し、かつ、間欠動作時にＣＰＵクロックを一時停止させるサイクル数を、制御レジスタのサイクル数制御ビットに設定する。
【００５９】
間欠動作モード制御回路５１は、通常動作モードを指定する値を制御レジスタの動作モード制御ビットに設定されると、通常動作モードを指示するモード信号を生成して、間欠動作制御信号生成部５２の起動制御回路５３に供給する。
【００６０】
また、間欠動作モード制御回路５１は、間欠動作モードを指定する値を制御レジスタの動作モード制御ビットに設定され、かつ、一時停止させるサイクル数を制御レジスタのサイクル数制御ビットに設定されると、間欠動作モードを指示するモード信号を生成して、間欠動作制御信号生成部５２の起動制御回路５３に供給し、ＣＰＵクロックを一時停止させるサイクル数を示すサイクル数指定信号を、間欠動作サイクルカウンタ５４に供給する。
【００６１】
間欠動作制御信号生成部５２の起動制御回路５３は、間欠動作モード制御回路５１から、通常動作モードを指示するモード信号を供給されたときは、間欠動作制御信号を生成せず、ＣＰＵクロック供給部４２に供給される間欠動作制御信号は、Ｌレベルの無効状態となる。この場合、クロック停止解除状態であれば、図３に示すように、ＣＰＵクロック供給部４２は通常のＣＰＵクロックを生成し、また、周辺クロック供給部４３は周辺クロックを生成する。これにより、ＣＰＵコア２２と周辺回路は共に通常動作を行う。
【００６２】
起動制御回路５３には、ＣＰＵコア２２から、ＣＰＵコア２２が内部バス３２をアクセスしていることを示す内部バスアクセス信号が供給される。起動制御回路５３は、間欠動作モード制御回路５１から、間欠動作モードを指示するモード信号を供給されたときは、ＣＰＵコア２２が内部バス３２をアクセスしていることを示す内部バスアクセス信号を検出した時点で、ＣＰＵクロックの一時停止を指示するＨレベルの間欠動作制御信号を生成して、ＣＰＵクロック供給部４２に供給する。
【００６３】
ＣＰＵクロック供給部４２は、起動制御回路５３から、ＣＰＵクロックの一時停止を指示するＨレベルの間欠動作制御信号を供給されている間、ＣＰＵクロックを一時停止させる。
【００６４】
間欠動作サイクルカウンタ５４は、間欠動作モード制御回路５１からサイクル数指定信号を供給され、起動制御回路５３から間欠動作制御信号を供給され、また、動作クロック生成部４１から、内部クロックを供給される。
【００６５】
間欠動作サイクルカウンタ５４は、内部クロックを用いて、Ｈレベルの間欠動作制御信号が生成されているサイクル数をカウントして、カウント値がサイクル数指定信号が指定するサイクル数に達したことを検出すると、ＣＰＵクロックの供給再開を指示する再開指示信号を生成して、起動制御回路５３に供給する。
【００６６】
起動制御回路５３は、クロック供給再開を指示する再開指示信号を間欠動作サイクルカウンタ５４から供給されると、Ｈレベルの間欠動作制御信号の生成を停止する。これにより、ＣＰＵクロック供給部４２に供給される間欠動作制御信号は、Ｌレベルの無効状態となり、ＣＰＵクロック供給部４２は、ＣＰＵクロックの生成を再開する。
【００６７】
図５は、間欠動作によるＣＰＵクロックの一時停止の例を示すタイムチャートである。ここで、クロック停止モード制御回路４７には、クロック停止解除が設定されており、図５（Ｂ）に示すように、周辺クロックは、通常どおり生成されている。また、外部バスにはアクセスしておらず、図５（Ｃ）のウエイト制御信号は、Ｌレベルの無効状態となっている。
【００６８】
図５の時刻ｔ21以前に、間欠動作モード制御回路５１は、ＣＰＵコア２２により、間欠動作モードに設定されている。また、バス動作の第１サイクル（時刻ｔ21〜ｔ24）の間、図５（Ｅ）に示すＨレベルの内部バスアクセス信号が起動制御回路５３に供給される。
【００６９】
起動制御回路５３は、第１サイクルの先頭時刻ｔ21で有効となった内部バスアクセス信号を検出して、時刻ｔ22でＨレベルの間欠動作制御信号の生成を開始する。図５は、サイクル数指定信号により、４サイクルが指定されている場合の例であり、間欠動作サイクルカウンタ５４は、時刻ｔ22から４サイクルカウントした時刻ｔ23で再開指示信号を起動制御回路５３に供給する。起動制御回路５３は、再開指示信号を供給された時刻ｔ23で間欠動作制御信号の生成を停止し、間欠動作制御信号はＬレベルの無効状態となる。
【００７０】
ＣＰＵクロック供給部４２は、上記の間欠動作制御信号を供給されて、図５（Ａ）に示すように、時刻ｔ22〜ｔ23の４サイクル分、ＣＰＵクロックを一時停止させる。
【００７１】
ＣＰＵコア２２がアクセスするアドレスは、ＣＰＵクロックが再開された時刻ｔ23〜ｔ24の間に出力されるため、不都合を生じることなく、ＣＰＵコア２２の動作速度を低速にするとこができる。
【００７２】
図６は、間欠動作及びウエイト動作によるＣＰＵクロックの一時停止の例を示すタイムチャートである。ここで、クロック停止モード制御回路４７には、クロック停止解除が設定されており、図６（Ｂ）に示すように、周辺クロックは、通常どおり生成されている。
【００７３】
バス動作の第１サイクルの時刻ｔ31〜ｔ34では、ＣＰＵコア２２は、内部バス３２と外部バス制御部２８を介して、外部バスに対してアドレスを出力している。また、第２サイクルの時刻ｔ34〜ｔ37では、ＣＰＵコア２２は、外部バスとの間でデータ転送を行う。
【００７４】
図６の時刻ｔ31以前に、間欠動作モード制御回路５１は、ＣＰＵコア２２により、間欠動作モードに設定されている。また、バス動作の第１サイクル（時刻ｔ31〜ｔ34）の間、図６（Ｅ）に示すＨレベルの内部バスアクセス信号が起動制御回路５３に供給される。
【００７５】
起動制御回路５３は、第１サイクルの先頭時刻ｔ31で有効となった内部バスアクセス信号を検出して、時刻ｔ32でＨレベルの間欠動作制御信号の生成を開始する。図６は、サイクル数指定信号により、４サイクルが指定されている場合の例であり、間欠動作サイクルカウンタ５４は、時刻ｔ32から４サイクルカウントした時刻ｔ33で再開指示信号を起動制御回路５３に供給する。起動制御回路５３は、再開指示信号を供給された時刻ｔ33で間欠動作制御信号の生成を停止し、間欠動作制御信号はＬレベルの無効状態となる。
【００７６】
ＣＰＵクロック供給部４２は、上記の間欠動作制御信号を供給されて、図６（Ａ）に示すように、時刻ｔ32〜ｔ33の４サイクル分、ＣＰＵクロックを一時停止させる。
【００７７】
第２サイクルの時刻ｔ34〜ｔ37では、ＣＰＵコア２２は、外部バスとの間でデータ転送を行おうとする。この際、外部バスに接続されているメモリ等の速度が遅いため等により、外部バス制御部２８が、外部バス動作実行中信号をメモリウエイト制御部４５に供給する。
【００７８】
メモリウエイト制御部４５は、この外部バス動作実行中信号に対応して、時刻ｔ35〜ｔ36でウエイト制御信号（図６（Ｃ））を生成して、ＣＰＵクロック供給部４２に供給する。ＣＰＵクロック供給部４２は、ウエイト制御信号を供給されている間、ＣＰＵクロックを一時停止させる。図６（Ａ）では、１クロック分ＣＰＵクロックを一時停止している。このようにして、ＣＰＵコア２２は、外部バスとの間のデータ転送が完了するまで、ウエイト動作する。
【００７９】
上記のように、外部バスにアクセスする場合でも、間欠動作モードに設定して、ＣＰＵコア２２を間欠動作させることができる。また、間欠動作によるＣＰＵクロックの一時停止が第１サイクルで行われ、外部バスアクセスによるＣＰＵクロックの一時停止が第２サイクルで行われるため、間欠動作とウエイト動作は不都合無く両立する。
【００８０】
本実施例では、内部クロックを基に周辺クロックを生成する周辺クロック供給部４３と、内部クロックを基にＣＰＵクロックを生成するＣＰＵクロック供給部４２を設け、内部クロックを変えることなく、間欠動作モードが設定された際に生成される間欠動作制御信号により、ＣＰＵクロックの速度を可変としている。このため、周辺クロックと独立に、ＣＰＵクロックの速度を変えることができる。
【００８１】
従って、本実施例では、周辺クロックを一定速度にして、周辺回路を一定速度で動作させた状態で、ＣＰＵコア２２に供給するＣＰＵクロックのみを低速にして、消費電力の大きいＣＰＵコア２２のみを低速動作させることができる。
【００８２】
また、ＣＰＵクロックの速度を変えても、周辺クロックは一定周波数としておけるため、従来のマイクロコントローラと異なり、クロック速度の切り換え時に、タイマ２４の時定数やシリアルＩ／Ｏ２５のシリアル転送レートの設定値を変更する必要が無く、処理が複雑になる問題を解消でき、また、タイマ２４やシリアルＩ／Ｏ２５等の周辺回路を一時停止させる必要がない。
【００８３】
また、間欠動作モード制御回路５１の制御レジスタの値を設定することで、間欠動作又は通常動作の設定、及び、間欠動作時の一時停止させるサイクル数を設定することができるため、ＣＰＵクロックの速度を容易に適切な速度に設定することができる。
【００８４】
本実施例では、通常動作モード、ＣＰＵクロックと周辺クロックを共に停止させる全クロック停止モード、ＣＰＵクロックのみ停止させるＣＰＵクロック停止モードに加えて、ＣＰＵクロックを一時停止させる間欠動作モードを設けており、必要に応じて、段階的に動作状態を変化させて、高速に処理を行いつつ、低消費電力化することができる。このため、特に電池駆動等で、低消費電力、かつ、高速処理が必要とされる用途に好適である。
【００８５】
また、外部バスアクセス時のウエイト制御と同様にして、ＣＰＵクロックを間引くことにより、ＣＰＵクロックを一時停止させるため、ＣＰＵコア２２としては、外部バスアクセス時のウエイト動作と同様に間欠動作する。このため、従来のＣＰＵコアをそのまま使用することができる。
【００８６】
また、周辺回路に供給される周辺クロックは、通常動作時における従来の周辺クロックと同様であるので、周辺回路は従来と同様の周辺回路をそのまま使用することができる。
【００８７】
また、ＣＰＵクロックと周辺回路クロックを独立に生成して両者の同期を確保する構成に比べると、大幅に小さい回路規模で実現することができる。
【００８８】
また、内蔵されるＲＯＭ２６、ＲＡＭ２７は、ＣＰＵクロックにより動作する同期式であるため、ＣＰＵクロックを低速とすることにより、ＲＯＭ２６とＲＡＭ２７の消費電力も低減することができ、間欠動作モード時に、マイクロコントローラ２１をより低消費電力化することができる。
【００８９】
なお、マイクロコントローラには、ＣＰＵコア以外に、内蔵のＲＯＭ，ＲＡＭと周辺回路間でのデータ転送を行うＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）を内蔵したものがある。このマイクロコントローラでは、ＤＭＡＣもＣＰＵクロックにより動作する同期式として、間欠動作モード時に、ＤＭＡＣも低消費電力動作させることができる。
【００９０】
【発明の効果】
上述の如く、請求項１の発明によれば、基準となる内部クロックを変えることなく、間欠動作制御信号により、周辺回路用クロックと独立に、演算処理部用クロックの速度を変えることができるため、周辺回路を一定速度で動作させた状態で、演算処理部用クロックのみを低速にして、演算処理部のみを低速動作させて低消費電力化することができ、また、周辺回路用クロックを一定周波数としておけるため、クロック速度の切り換え時に、周辺回路のタイマの時定数やシリアル転送レートの設定値を変更する必要が無く、処理の複雑さを解消でき、タイマやシリアルＩ／Ｏ等の周辺回路を一時停止させる必要がない。
【００９１】
また、外部バスアクセス時のウエイト制御と同様にして、演算処理部用クロックを一時停止させて演算処理部用クロックを低速にするため、演算処理部としては、従来と同様のものをそのまま使用することができ、周辺回路用クロックは従来と同様であるので、周辺回路は従来と同様のものをそのまま使用することができる。
【００９２】
また、演算処理部用クロックと周辺回路用クロックを独立に生成して両者の同期を確保する構成に比べると、大幅に小さい回路規模で実現することができる。
また、外部バスアクセス時のウエイト動作と、間欠動作モード時の間欠動作の両方を実行することができる。
また、マルチプレックス方式のバスにおいて、外部バスアクセス時のウエイト動作と、間欠動作モード時の間欠動作の両方を実行することができる。
【００９３】
請求項２の発明によれば、制御レジスタの値を設定することで、間欠動作又は通常動作の設定、及び、間欠動作時の一時停止させるサイクル数を設定することができるため、演算処理部用クロックの速度を容易に適切な速度に設定することができる。
【００９６】
請求項３の発明によれば、内蔵される読み出し専用メモリが、演算処理部用クロックにより動作するため、演算処理部用クロックを低速とすることにより、読み出し専用メモリの消費電力を低減することができる。
【００９７】
請求項４の発明によればでは、内蔵されるランダムアクセスメモリが、演算処理部用クロックにより動作するため、演算処理部用クロックを低速とすることにより、ランダムアクセスメモリの消費電力を低減することができる。
【００９８】
請求項５の発明では、内蔵されるデータ転送制御回路が、演算処理部用クロックにより動作するため、演算処理部用クロックを低速とすることにより、データ転送制御回路の消費電力を低減することができる。
【図面の簡単な説明】
【図１】本発明の一実施例のマイクロコントローラの構成図である。
【図２】クロック供給回路の構成図である。
【図３】ＣＰＵクロックの一時停止が無い、通常動作時のタイムチャートである。
【図４】ウエイト動作によるＣＰＵクロックの一時停止の例を示すタイムチャートである。
【図５】間欠動作によるＣＰＵクロックの一時停止の例を示すタイムチャートである。
【図６】間欠動作、及びウエイト動作によるＣＰＵクロックの一時停止の例を示すタイムチャートである。
【符号の説明】
２１  マイクロコントローラ
２２  ＣＰＵコア
２４  タイマ
２５  シリアルＩ／Ｏ
２６  ＲＯＭ
２７  ＲＡＭ
２８  外部バス制御部
３１  クロック供給回路
３２  内部バス
４１  動作クロック生成部
４２  ＣＰＵクロック供給部
４３  周辺クロック供給部
４５  メモリウエイト制御部
４７  クロック停止モード制御回路
５０  間欠動作制御部
５１  間欠動作モード制御回路
５２  間欠動作制御信号生成部
５３  起動制御回路
５４  間欠動作サイクルカウンタ
【図１】
0003647481.tif 000002
【図２】
0003647481.tif 000003
【図３】
0003647481.tif 000004
【図４】
0003647481.tif 000005
【図５】
0003647481.tif 000006
【図６】
0003647481.tif 000007