(57)【要約】【課題】      ＣＰＵのクロック周波数を変更しても内部のリソースを元の速度で動作させることができるマイクロコントローラを提供する。【解決手段】  クロック（CLK）に同期して動作するマイクロコントローラであって、クロックに同期して動作する演算ユニット（CPU）と、演算ユニットとバス（２）を介して接続され、少なくともバスインターフェース（１４）とクロックに同期して動作する内部回路（１６）とを有する内部リソース（１２）と、クロックのｎサイクルのうちｍサイクル（但しｍ＝＜ｎ）において許可状態になる動作許可信号（ENCNT）を生成し、内部リソースの内部回路に動作許可信号を供給するシステムリソースプリスケーラ（４０）とを有する。そして、内部回路は、動作許可信号が許可状態の時にクロックに同期して動作する。この構成にすることで、内部リソースの構成を変更せずに、システムリソースプリスケーラが生成する動作許可信号のタイミングを制御するだけで、内部リソースの内部回路の動作を制御することができる。【選択図】    図３
2005115723.tif 000002
【特許請求の範囲】
【請求項１】
クロックに同期して動作するマイクロコントローラにおいて、
前記クロックに同期して動作する演算ユニットと、
前記演算ユニットとバスを介して接続され、少なくともバスインターフェースと、前記クロックに同期して動作する内部回路とを有する内部リソースと、
前記クロックから、当該クロックのｎサイクルのうちｍサイクル（但しｍ＝＜ｎ）において許可状態になる動作許可信号を生成し、前記内部リソースの内部回路に当該動作許可信号を供給するシステムリソースプリスケーラとを有し、
前記内部回路は、前記動作許可信号が許可状態の時に前記クロックに同期して動作することを特徴とするマイクロコントローラ。
【請求項２】
請求項１において、
前記内部リソースの前記バスインターフェースは、前記クロックに同期して動作することを特徴とするマイクロコントローラ。
【請求項３】
請求項１において、
前記システムリソースプリスケーラは、前記ｍ、ｎを格納するレジスタを有し、当該レジスタは変更設定可能であることを特徴とするマイクロコントローラ。
【請求項４】
請求項５において、
前記システムリソースプリスケーラは、更に、前記動作許可信号を常時許可状態にする第１の動作状態と、前記ｎサイクルのうちｍサイクルにおいて許可状態にする第２の動作状態とを設定可能な動作制御レジスタを有することを特徴とするマイクロコントローラ。
【請求項５】
請求項１において、
前記システムリソースプリスケーラは、当該ｍサイクルを前記ｎサイクル中に分散して割り当てることを特徴とするマイクロコントローラ。
【請求項６】
請求項１において、
前記システムリソースプリスケーラは、前段プリスケーラと、当該前段プリスケーラが生成する前段動作許可信号を供給されて後段動作許可信号を生成する後段プリスケーラとを有し、前記後段動作許可信号が前記内部リソースの内部回路に供給されることを特徴とするマイクロコントローラ。
【請求項７】
請求項６において、
前記前段及び後段プリスケーラは、前記ｍ、ｎを格納するレジスタを有し、当該レジスタは変更設定可能であることを特徴とするマイクロコントローラ。
【請求項８】
請求項７において、
前記後段プリスケーラは、更に、前記後段動作許可信号を常時許可状態にする第１の動作状態と、前記ｎサイクルのうちｍサイクルにおいて許可状態にする第２の動作状態と、前記前段動作許可信号の状態にかかわらず後段動作許可信号を生成する第３の状態とを設定可能な動作制御レジスタを有することを特徴とするマイクロコントローラ。
【請求項９】
クロックに同期して動作するマイクロコントローラにおいて、
前記クロックに同期して動作する演算ユニットと、
前記演算ユニットとバスを介して接続され、少なくとも前記クロックに同期して動作するバスインターフェースと、前記クロックに同期して動作する内部回路とを有する内部リソースと、
前記クロックから、当該クロックより低速の周波数を有する動作許可信号を生成し、前記内部リソースの内部回路に当該動作許可信号を供給するシステムリソースプリスケーラとを有し、
前記内部回路は、前記動作許可信号が許可状態の時に前記クロックに同期して動作することを特徴とするマイクロコントローラ。
【請求項１０】
請求項１１において、
前記動作許可信号は、前記クロックの１サイクル単位で動作許可状態に制御されることを特徴とするマイクロコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算ユニットと所定の機能をもつ内部リソースとを有するマイクロコントローラに関し、特に、演算ユニットに供給されるクロック周波数が高くなってもリソースの動作への影響を抑えることができるマイクロコントローラに関する。
【背景技術】
【０００２】
マイクロコントローラは、演算ユニット（または単にＣＰＵ）と種々の機能を実現するリソースとを有し、外部から供給されるクロックに同期して内部動作を実行する。種々の機能を実現するリソースには、例えば、外部との通信を行う通信マクロや、演算されたタイミングまたは指定されたタイミングでパルスまたはクロックを発生するパルス発生回路などが含まれる。ＣＰＵが内蔵メモリ内の所定のプログラムを実行して、これらリソースに制御データを与えたりすることでリソースを制御し、リソースはその制御データ等に基づいてそれぞれの動作を実行して、通信制御を行ったりパルスを発生したりする。
【０００３】
図１は、従来の一般的なマイクロコントローラの構成図である。マイクロコントローラ１は、演算ユニットであるＣＰＵと、プログラム格納領域や一時記録領域を有するメモリ１０と、パルス発生回路であるタイマー１２や通信マクロ１８などの内部リソースとを有し、それらは内部バス２を介して接続される。タイマー１２は、例えば内部バス２とのバスインターフェース１４とパルス発生のためのカウンタ１６とを少なくとも有し、ＣＰＵから制御データなどを供給され、カウンタ１６によりカウントされた所定のタイミングでパルスＳ１６を内部または外部に出力する。通信マクロ１８は、例えば内部バス２に対するバスインターフェース２０と、通信制御クロックＳ２２を生成するカウンタ２２とを少なくとも有し、外部とのデータの入出力通信を制御する。
【０００４】
マイクロコントローラ１には、外部からクロックCLKが供給され、ＣＰＵとバスインターフェース１４、２０は同じクロックCLKに同期して動作し、更に、各リソースのカウンタ１６，２２もこのクロックCLKに同期してカウント動作を行う。また、バス制御のためにはバスのイニシエータとターゲットとは同じクロックで動作する必要があり、バスインターフェース１４，２０もクロックに同期して動作する。
【０００５】
このようなマイクロコントローラは、例えば後述する特許文献１に記載されている。なお、この特許文献１には、クロックの周波数を電池電源電圧値に応じて変更可能にするレートマルチ・プリスケーラを設けて、電池電源電圧が低下した時に同時に内部クロックを低速化し、内部動作も低速化して電池電源の消耗を少なくすることが開示されている。
【０００６】
上記の通り、図１のようにマイクロコントローラは、外部供給のクロックCLKに同期してＣＰＵや内部リソースが動作を行う。その場合に、ＣＰＵの処理能力を高めるために、供給クロックCLKの周波数を高くすることが要請される。単純に供給クロックCLKの周波数をＮ倍にするとＣＰＵの処理能力もＮ倍にすることができる。しかしながら、内部リソース１２，１８のカウンタ１６，２２も同じ供給クロックCLKに同期して動作しているので、供給クロックCLKの周波数を高くすると、内部リソース１２、１８の制御タイミングも早くなり、各内部リソースの被制御装置を適切に制御することができなくなる。これを回避するためには、カウンタ１６，２２にロードする値を変更したりカウンタの構成ビット数を増やしたりする必要があるが、供給クロックCLKがより高速になると、その都度内部リソースのカウンタの構成を変更する必要がある。内部リソースの構成を変更することは、マイクロコントローラの設計変更を意味し、コストアップになる。
【０００７】
図２は、従来の別のマイクロコントローラの構成図である。このマイクロコントローラ１は、クロックCLKを分周する分周器３０を設けて低速の第２のクロックCLK2を生成し、その低速のクロックCLK2を内部リソース１２，１８に供給する。このような構成にすることで、クロックCLKを高速化してＣＰＵの処理能力を高めても、内部リソース１２，１８は、高速化されていない元の速度のクロックCLK2に同期して動作することができ、適切なタイミングでの制御機能を維持することができる。
【０００８】
クロックCLKを分周して内部の制御クロックに利用することは、例えば、以下の特許文献２に開示されている。この特許文献２には、ＣＰＵが生成する制御クロックの速度を検出し、その速度に応じた分周比で分周したクロックをリソースである割込制御回路に供給することが開示されている。このような構成にすることで、クロックが高速化されてＣＰＵの動作が高速化されても、割込制御の速度を一定に維持することができる。
【特許文献１】特開２００２−２０２８２９号公報（２００２年７月１９日発行）
【特許文献２】特開平８−２４９０８２号公報（１９９６年９月２７日発行）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
図２のような構成にすると、ＣＰＵに接続されるＣＰＵバス２とリソース１２，１８に接続される第２バス４とを分離する必要があり、それに伴って、高速のＣＰＵバス２と低速の第２バス４との間に、バスの動作周波数の違いを吸収するバスブリッジ３２を設ける必要がある。このようなバスブリッジを追加することは、マイクロコントローラのコストアップを招く。また、分周器３０は、通常、２の累乗倍の周期のクロックCLK2を生成する。このように内部クロックCLK2がクロックCLKの整数倍の周期を有する場合は、両クロックのエッジのタイミングが一致することがあるので、バスブリッジでのタイミング整合の回路は比較的簡単である。しかし、２の累乗倍以外や整数倍以外の周期が求められる場合は、図２の分周器では構成が複雑になり、更に、整数倍以外の周期にする場合は、バスブリッジの構成が複雑になる。
【００１０】
そこで、本発明の目的は、ＣＰＵのクロック周波数を変更しても内部のリソースを元の速度で動作させることができるマイクロコントローラを提供することにある。
【００１１】
更に、本発明の別の目的は、ＣＰＵと内部リソースとを同じ周波数で動作するバスに接続し、一方でリソースが見かけ上異なる周波数で動作するマイクロコントローラを提供することにある。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために、本発明の側面は、クロックに同期して動作するマイクロコントローラにおいて、
前記クロックに同期して動作する演算ユニットと、
前記演算ユニットとバスを介して接続され、少なくともバスインターフェースと、前記クロックに同期して動作する内部回路とを有する内部リソースと、
前記クロックから、当該クロックのｎサイクルのうちｍサイクル（但しｍ＝＜ｎ）において許可状態になる動作許可信号を生成し、前記内部リソースの内部回路に当該動作許可信号を供給するシステムリソースプリスケーラとを有し、
前記内部回路は、前記動作許可信号が許可状態の時に前記クロックに同期して動作することを特徴とする。
【００１３】
上記の側面において好ましい実施例では、システムリソースプリスケーラは、前記ｍ、ｎを格納するレジスタを有し、当該レジスタは変更設定可能である。
【００１４】
また、前記システムリソースプリスケーラは、更に、前記動作許可信号を常時許可状態にする第１の動作状態と、前記ｎサイクルのうちｍサイクルにおいて許可状態にする第２の動作状態とを設定可能な動作制御レジスタを有する。
【００１５】
更に、前記システムリソースプリスケーラは、当該ｍサイクルを前記ｎサイクル中に分散して割り当てる。
【発明の効果】
【００１６】
上記の解決手段によれば、内部リソースはクロックに同期して動作するように構成され、但し、クロックが高速化された時には、プリスケーラから動作許可信号によりその動作速度が制御され、元のクロック速度に対応した動作速度を維持することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面にしたがって説明するが、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載されたものとその均等物に及ぶものである。
【００１８】
図３は、本実施の形態におけるマイクロコントローラの構成図である。このマイクロコントローラ１は、従来例と同様に、演算ユニットであるＣＰＵと、メモリ１０と、内部リソース１２，１８とが内部バス２を介して接続されている。内部リソースは、例えば通信マクロ１８とパルス発生回路（タイマー）１２とである。マイクロコントローラ１には外部からクロックＣＬＫが供給され、このクロックＣＬＫは、ＣＰＵに供給されてＣＰＵの動作速度及び処理能力を制御する。また、クロックＣＬＫは、リソースであるパルス発生回路（タイマー）１２と通信マクロ１８にも供給され、それらのバスインターフェース１４，２０はクロックＣＬＫに同期してＣＰＵやメモリ１０とのバス管理を行い、カウンタ１６，２２はクロックＣＬＫに同期して所定のカウント動作を行う。
【００１９】
したがって、外部から供給されるクロックＣＬＫの周波数が高速化されると、それに伴ってＣＰＵの処理速度も高く変更されるが、共通の内部バスに接続されるリソース１２，１８は、クロックＣＬＫに同期したバス制御によりＣＰＵやメモリとデータの送受信を行うことができる。一方、リソース１２，１８内の内部回路であるカウンタ１６，２２は、クロックＣＬＫに同期して動作する。そのため、クロックＣＬＫの周波数が変更されるとそのカウンタ動作速度も変更される。そこで、本実施の形態ではそれを回避するために、システムリソースプリスケーラ４０を設け、システムリソースプリスケーラ４０がカウンタ１６，２２に動作許可信号ENCNTを供給し、カウンタ１６，２２の動作期間を制御する。カウンタは、動作許可信号が許可状態の期間のみクロックＣＬＫに同期してカウント動作を行う。この動作期間の制御により、たとえクロックＣＬＫの周波数が高速化されても、リソース内のカウンタ１６，２２の動作速度は高速化されていないクロックに対する動作と同じ状態に維持される。システムリソースプリスケーラ４０は、内部バス２を介してＣＰＵに接続され、後述するとおり、内蔵するレジスタに動作許可信号を生成するタイミング情報が設定可能に構成されている。このレジスタに設定されたタイミング情報に基づいて、システムリソースプリスケーラ４０はクロックＣＬＫに同期して動作許可信号ENCNTを生成する。
【００２０】
図４は、システムリソースプリスケーラの動作タイミングチャート図である。システムリソースプリスケーラ４０は、クロックＣＬＫの８（ｎ）サイクル（０〜７）の期間中、ｍサイクルにおいて動作許可状態になる動作許可信号ENCNTを生成する。動作許可状態のｍサイクルは、ｎサイクル中にできるだけ分散して間欠的に割り当てられる。このように分散させることで、カウンタの動作速度を可能な限り一定に近づけることができる。すなわち、システムリソースプリスケーラ４０は、クロックＣＬＫよりも低速の動作許可信号を生成して、内部リソースの内部回路の動作を遅くするように制御する。
【００２１】
図４において、（１）に示すようにｎ＝８，ｍ＝１と設定されると、動作許可信号ENCNTは、クロックＣＬＫのカウント値が０のサイクルのみ許可状態のＨレベルになる。したがって、カウンタ１６，２２は、クロックＣＬＫの１／８の速度でカウント動作を行うことになる。
【００２２】
図４（２）の場合は、ｎ＝８，ｍ＝７と設定され、動作許可信号ENCNTは、クロックＣＬＫのカウント値が０〜６の７サイクルにおいて許可状態のＨレベルになり、カウント値が７のサイクルにおいて不許可状態のＬレベルになる。したがって、カウンタは、クロックの７／８の速度でカウント動作を行う。図４（３）の場合は、ｎ＝８、ｍ＝３に設定され、動作許可信号ENCNTはクロックカウント値が０，２，５のサイクルにおいて許可状態のＨレベルになり、したがって、カウンタはクロックの３／８の速度でカウント動作を行う。つまり、動作許可信号は、クロックの８サイクル中において３サイクルにおいて動作許可状態になり、その動作許可状態は、分散してできるだけ均等なタイミングになるように配分されている。これにより、カウンタ動作の速度が可能な限り一定になるよう制御される。図４（４）の場合は動作許可信号ENCNTが常時Ｈレベルになるように設定され、したがって、カウンタはクロックＣＬＫに同期して同じ速度でカウント動作を行う。
【００２３】
このように、本実施の形態のマイクロコントローラは、クロックＣＬＫの周波数に応じて、プリスケーラ４０内のレジスタに動作許可信号の動作状態が設定され、その設定情報に応じて生成された動作許可信号ENCNTが内部リソースの内部回路であるカウンタに供給される。カウンタは、動作許可信号が動作許可状態のサイクルにおいてのみ、クロックＣＬＫに同期してカウント動作を行う。したがって、カウンタの構成はあくまでもクロックＣＬＫに同期してカウント動作を行うように設計され、動作許可信号が許可状態の時のみカウント動作を有効にされて、カウンタの動作速度はシステムリソースプリスケーラによりクロックＣＬＫとは独立して可変制御される。
【００２４】
図５は、リソース内部のカウンタの構成図と動作タイミングチャート図である。このカウンタ１６，２２は、４ビットカウンタであり、４つのフリップフロップ４２と、インクリメント回路４４とからなる。４つのフリップフロップ４２は、データ入力端子Ｄとデータ出力端子Ｑとを有し、クロックＣＬＫの立ち上がりエッジに同期してデータ入力Ｄをラッチし、リセット信号ＲＳＴの立ち上がりエッジに応答してラッチ状態をクリアする。また、フリップフロップ４２には、イネーブル端子ＥＮが設けられ、動作許可信号ENCNTが動作許可状態（Ｈレベル）の時のみクロックに同期したラッチ動作を行う。インクリメント回路４４は、供給される４ビットのデータを＋１して出力する。この出力はフィードバックされて、４つのフリップフロップ４２に入力される。したがって、動作許可信号ENCNTが動作許可状態の間、クロックＣＬＫに同期してフリップフロップ４２がインクリメントされたデータをラッチする。このカウント値Coutは例えばパルス出力部４６に供給され、パルス出力部４６はカウント値Coutが所定の値の時にパルスまたはクロックＳ１６，Ｓ２２を出力する。
【００２５】
図５（Ｂ）には、２つの状態でのカウンタ出力が示されている。状態（１）では、プリスケーラにｎ＝８、ｍ＝３が設定され、動作許可信号ENCNTはクロックＣＬＫのカウント値が０，２，５のサイクルでＨレベルになる。この動作許可状態の時に、カウンタ内のフリップフロップ４２は、クロックＣＬＫに同期して入力データをラッチする。このラッチにより、インクリメント回路４４がカウント値を＋１する。したがって、カウンタ出力Coutは、クロックＣＬＫの８サイクルで３回しかカウントアップされず、カウンタは、見かけ上クロックＣＬＫの３／８の周期でカウント動作する。状態（２）の場合は、動作許可信号ENCNTが常時動作許可状態に設定されている。そのため、カウンタはクロックＣＬＫに同期してカウントアップ動作を行う。よって、カウンタ出力Coutは、クロックＣＬＫの８サイクルで８回カウントアップされている。
【００２６】
図６は、本実施の形態におけるシステムリソースプリスケーラの構成図である。システムリソースプリスケーラ４０はカウンタ５０を有し、このカウンタ５０は、リロード式のダウンカウンタであり、分母設定レジスタ６０に設定されるｎ値をリロード値としてロードし、そのリロード値をクロックＣＬＫに同期してダウンカウントする。そのために、カウンタ５０は、例えば４個のフリップフロップ５２と、デクリメント回路５４と、フリップフロップの出力Ｑが０の時にマルチプレクサ５８を分母設定レジスタ６０側に切り換えるマルチプレクサ制御回路５６とを有する。したがって、カウント値が０になった時に、フリップフロップ５２に分母設定レジスタ６０のｎ値がロードされ、その後クロックＣＬＫに同期してダウンカウントされ、カウント値が０になるたびに再度ｎ値がリロードされる。したがって、カウンタ５０は、分母設定レジスタのｎ値のサイクルをカウントする。
【００２７】
そして、条件判定回路６６は、分母設定レジスタ６０のｎ値と分子設定レジスタ６２に設定されるｍ値とに基づいて、カウント値が所定の値の時に１サイクルだけＨレベルを出力する。ＡＮＤゲート６８は、前段から供給される前段動作許可信号ENCNTIがＨレベルの時に、条件判定部６６の出力を通過させ、フリップフロップ７０のデータ端子Ｄに供給し、一方、前段動作許可信号ENCNTIがＬレベルの間はデータ端子ＤはＬレベルに維持される。したがって、フリップフロップ７０は、クロックＣＬＫに同期してデータ入力Ｄをラッチし、ＮＯＲゲート７２を介して動作許可信号ENCNTを出力する。図６のシステムプリスケーラにおいて、単独のプリスケーラとして動作させる場合や初段のプリスケーラとして動作させる場合には、前段動作許可信号ENCNT1は常時Ｈレベルに固定される。
【００２８】
図７は、プリスケーラのレジスタと条件判定部の判定テーブルを示す図である。図７（Ａ）に示される分母設定レジスタ６０と分子設定レジスタ６２とは、８ビットのレジスタで構成され、ビット０〜３に分母（Denominator)が、ビット４〜７に分子（Nominator)がそれぞれ設定される。実際には、分母ｎに対して（ｎ−１）が、分子ｍに対して（ｍ−１）がそれぞれレジスタに格納される。また、制御レジスタ６４には、０ビットのRunビットに制御値が設定され、Runビットが０の時にプリスケーラの動作は停止され分子・分母設定レジスタへの書き換えが可能になる。また、Runビットが１の時にプリスケーラの動作が活性化され、分子・分母設定レジスタへの書き換えは禁止される。
【００２９】
図６に戻り、ＮＯＲゲート７２は、動作制御レジスタ６４のRunビットが１の時は、フリップフロップ７０の出力Ｑを通過させて動作制御信号ENCNTとして出力し、Runビットが０の時は、強制的に動作制御信号ENCNTをＨレベルにする。つまり、動作制御レジスタ６４に動作停止を示す０が設定されると、出力される動作制御信号ENCNTは常にＨレベルになり、内部リソースのカウンタはクロックＣＬＫに同期して常時動作する。また、動作制御レジスタ６４に動作状態の１が設定されると、条件判定部６６により出力されるパルスが動作制御信号ENCNTとして出力される。
【００３０】
カウンタ５０の動作を制御するために、イネーブル制御部７４が設けられ、動作制御レジスタ６４のRunビットが０の動作停止状態の時は、フリップフロップ５２のイネーブル端子ＥＮがＬレベルになりカウンタ５０の動作は停止する。一方、動作制御レジスタ６４のRunビットが１の動作状態の時は、前段からの動作制御信号ENCNTIがＨレベルの時のみ、フリップフロップ５２のイネーブル端子ＥＮがＨレベルになり、カウンタ５０はカウント動作を行う。つまり、前段からの動作制御信号ENCNTIに応じて、カウンタ動作が制御される。
【００３１】
図７（Ｂ）は、条件判定回路の判定テーブルであり、横方向が分母ｎ−１のレジスタ値、縦方向が分子ｍ−１のレジスタ値に対応し、それぞれのセル内に、動作許可信号をＨレベルにするカウンタ値が格納されている。例えば、ｎ＝８、ｍ＝３の場合は、７列目２行目のセル内にあるカウンタ値０，２，５の時に、動作許可信号がＨレベルになるように、条件判定部６６がパルスを出力する。このように、判定テーブルを利用することにより、動作許可状態の分散状態を最適に設定することができる。また、この判定テーブルの例では、分母ｎが１に設定された場合は、動作許可信号として常時動作許可状態のＨレベルが出力される。
【００３２】
図８は、本実施の形態のマイクロコントローラとの変形例を示す図である。この例では、システムリソースプリスケーラ４０Ａ、４０Ｂが２段構成になっており、前段のプリスケーラ４０Ａが内蔵レジスタに設定されたｎ、ｍ値に応じて動作許可信号ENCNT1を生成し、後段のプリスケーラ４０Ｂに動作許可信号として供給される。そして、後段のプリスケーラ４０Ｂは、前段の動作許可信号ENCNT1が許可状態の時のみ動作し、内蔵レジスタに設定されたｎ、ｍ値に応じて動作許可信号ENCNT2を生成し、リソースのカウンタ１６に供給する。プリスケーラを複数段構成にすることで、リソースの内部回路であるカウンタ１６の動作速度をより高精度に制御することができる。
【００３３】
図９は、２段構成のプリスケーラの動作タイミングチャート図である。この例では、初段のプリスケーラにｎ＝８、ｍ＝３が設定され、後段のプリスケーラにｎ＝２、ｍ＝１が設定されている。したがって、初段の動作許可信号ENCNT1は８サイクル中３サイクルにおいてＨレベルになる。この動作許可信号ENCNT1に応じて動作する後段のプリスケーラによる動作許可信号ENCNT2は、１６サイクル中３サイクルにおいてＨレベルになる。つまり、後段の動作許可信号ENCNT2により制御されるカウンタ１６は、クロックＣＬＫの３／１６の速度に制御されることになる。このように、多数段のプリスケーラにすることで、より高精度の速度制御が可能になる。更に、多段のプリスケーラにすることで、リソース毎に異なる速度に制御することが容易になる。
【００３４】
図１０は、２段構成のプリスケーラ群の構成例を示す図である。この例では、制御される４つのリソースＲＳ１〜ＲＳ４に異なる動作許可信号ENCNT2-1〜ENCNT2-4が供給される。そのために、初段のプリスケーラＡがその内蔵レジスタに設定されたｎ，ｍ値に応じて動作許可信号ENCNT1を生成し、後段の４つのプリスケーラＢがそれぞれの内蔵レジスタに別々に設定されたｎ、ｍ値に応じて動作許可信号ENCNT2-1〜ENCNT2-4を生成する。初段のプリスケーラＡの入力動作許可信号ENCNTIは、Ｈレベルに固定され、常に動作状態に制御される。
【００３５】
このような構成にした場合、後段のプリスケーラＢ−１〜Ｂ−４の動作制御レジスタには、動作状態と、動作停止状態と、前段からの動作許可信号を使用しない状態の３つの状態を設定可能にすることが望ましい。例えば、プリスケーラＢ−１，Ｂ−２は、前段の動作許可信号ENCNT1がＨレベルの時のみ動作するように設定され、その結果、それらのプリスケーラＢ−１，Ｂ−２は、初段のプリスケーラＡの動作速度制御の影響を受ける。つまり、図９に示したような動作になる。一方、プリスケーラＢ−３は、前段の動作許可信号を使用しない状態に設定され、その結果、このプリスケーラＢ−３は、内蔵レジスタの設定値ｎ、ｍにのみ依存したタイミングで動作許可信号ENCNT2-3を生成する。更に、プリスケーラＢ−４は、動作停止状態に設定され、その結果、リソースＲＳ４への動作許可信号ENCNT2-4は常時動作許可状態になり、リソースＲＳ４のみがクロックＣＬＫに同期した最高速度での動作になる。
【００３６】
図１０のように、プリスケーラを多段構成にし、且つ、後段のプリスケーラの動作制御レジスタを、動作状態と、動作停止状態と、前段からの動作許可信号を使用しない状態の３つの状態に変更設定可能にすることで、複数のリソースに対して、種々の動作速度の制御を可能にすることができる。つまり、マイクロコントローラのプリスケーラのハードウエア構成は固定的であっても、各プリスケーラの内蔵動作制御レジスタへの設定を変えることで、制御対象のリソースの動作速度を柔軟に変更することができる。
【００３７】
上記の実施の形態では、内部リソースの内部回路としてカウンタを例にして説明したが、内部回路はそれ以外にも、例えば分周器やそれ以外の回路も含まれる。また、内部リソースの他例としては、表示パネルを制御する制御クロック発生回路なども考えられる。
【００３８】
以上の実施の形態をまとめると、以下の付記の通りである。
【００３９】
（付記１）クロックに同期して動作するマイクロコントローラにおいて、
前記クロックに同期して動作する演算ユニットと、
前記演算ユニットとバスを介して接続され、少なくともバスインターフェースと、前記クロックに同期して動作する内部回路とを有する内部リソースと、
前記クロックから、当該クロックのｎサイクルのうちｍサイクル（但しｍ＝＜ｎ）において許可状態になる動作許可信号を生成し、前記内部リソースの内部回路に当該動作許可信号を供給するシステムリソースプリスケーラとを有し、
前記内部回路は、前記動作許可信号が許可状態の時に前記クロックに同期して動作することを特徴とするマイクロコントローラ。
【００４０】
（付記２）付記１において、
前記内部リソースの前記バスインターフェースは、前記クロックに同期して動作することを特徴とするマイクロコントローラ。
【００４１】
（付記３）付記１において、
前記内部リソースは、外部との通信を制御する通信マクロを含み、当該通信マクロの内部回路は、通信制御クロックを生成するカウンタを有することを特徴とするマイクロコントローラ。
【００４２】
（付記４）付記１において、
前記内部リソースは、制御パルスを生成するパルス発生マクロを含み、当該パルス発生マクロの内部回路は、前記制御パルスの発生タイミングを制御するカウンタを有することを特徴とするマイクロコントローラ。
【００４３】
（付記５）付記１において、
前記システムリソースプリスケーラは、前記ｍ、ｎを格納するレジスタを有し、当該レジスタは変更設定可能であることを特徴とするマイクロコントローラ。
【００４４】
（付記６）付記５において、
前記システムリソースプリスケーラは、更に、前記動作許可信号を常時許可状態にする第１の動作状態と、前記ｎサイクルのうちｍサイクルにおいて許可状態にする第２の動作状態とを設定可能な動作制御レジスタを有することを特徴とするマイクロコントローラ。
【００４５】
（付記７）付記１において、
前記システムリソースプリスケーラは、当該ｍサイクルを前記ｎサイクル中に分散して割り当てることを特徴とするマイクロコントローラ。
【００４６】
（付記８）付記１において、
前記システムリソースプリスケーラは、前段プリスケーラと、当該前段プリスケーラが生成する前段動作許可信号を供給されて後段動作許可信号を生成する後段プリスケーラとを有し、前記後段動作許可信号が前記内部リソースの内部回路に供給されることを特徴とするマイクロコントローラ。
【００４７】
（付記９）付記８において、
前記前段及び後段プリスケーラは、前記ｍ、ｎを格納するレジスタを有し、当該レジスタは変更設定可能であることを特徴とするマイクロコントローラ。
【００４８】
（付記１０）付記９において、
前記後段プリスケーラは、更に、前記後段動作許可信号を常時許可状態にする第１の動作状態と、前記ｎサイクルのうちｍサイクルにおいて許可状態にする第２の動作状態と、前記前段動作許可信号の状態にかかわらず後段動作許可信号を生成する第３の状態とを設定可能な動作制御レジスタを有することを特徴とするマイクロコントローラ。
【００４９】
（付記１１）クロックに同期して動作するマイクロコントローラにおいて、
前記クロックに同期して動作する演算ユニットと、
前記演算ユニットとバスを介して接続され、少なくとも前記クロックに同期して動作するバスインターフェースと、前記クロックに同期して動作する内部回路とを有する内部リソースと、
前記クロックから、当該クロックより低速の周波数を有する動作許可信号を生成し、前記内部リソースの内部回路に当該動作許可信号を供給するシステムリソースプリスケーラとを有し、
前記内部回路は、前記動作許可信号が許可状態の時に前記クロックに同期して動作することを特徴とするマイクロコントローラ。
【００５０】
（付記１２）付記１１において、
前記動作許可信号は、前記クロックの１サイクル単位で動作許可状態に制御されることを特徴とするマイクロコントローラ。
【００５１】
（付記１３）付記１２において、
前記動作許可信号は、前記クロックのｎサイクル中にｍサイクルにおいて動作許可状態になり、当該ｎ値とｍ値とが変更設定可能であることを特徴とするマイクロコントローラ。
【図面の簡単な説明】
【００５２】
【図１】従来の一般的なマイクロコントローラの構成図である。
【図２】従来の別のマイクロコントローラの構成図である。
【図３】本実施の形態におけるマイクロコントローラの構成図である。
【図４】システムリソースプリスケーラの動作タイミングチャート図である。
【図５】リソース内部のカウンタの構成図と動作タイミングチャート図である。
【図６】本実施の形態におけるシステムリソースプリスケーラの構成図である。
【図７】プリスケーラのレジスタと条件判定部の判定テーブルを示す図である。
【図８】本実施の形態のマイクロコントローラとの変形例を示す図である。
【図９】２段構成のプリスケーラの動作タイミングチャート図である。
【図１０】２段構成のプリスケーラ群の構成例を示す図である。
【符号の説明】
【００５３】
１：マイクロコントローラ、２：内部バス、１２，１８：内部リソース
１４，２０：バスインターフェース、１６，２２：カウンタ（内部回路）
ENCNT：動作許可信号、ＣＬＫ：クロック
【図１】
2005115723.tif 000003
【図２】
2005115723.tif 000004
【図３】
2005115723.tif 000005
【図４】
2005115723.tif 000006
【図５】
2005115723.tif 000007
【図６】
2005115723.tif 000008
【図７】
2005115723.tif 000009
【図８】
2005115723.tif 000010
【図９】
2005115723.tif 000011
【図１０】
2005115723.tif 000012