(57)【要約】【課題】外部電源の電圧に応じて、より適切な動作モードや動作周波数を自動的に設定することが可能な半導体装置を提供する。【解決手段】ある実施の形態に従う半導体装置は、プロセッサと、プロセッサによるアクセスが可能な不揮発性メモリと、少なくともプロセッサおよび不揮発性メモリを駆動するための外部電源の電圧を検出する電圧検出部とを含む。プロセッサは、命令群を実行することで、電圧検出部によって検出された電圧に応じて、プロセッサおよび不揮発性メモリの少なくとも一方についての動作モードおよび／または動作周波数を設定する。【選択図】図１
2013101457.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサによるアクセスが可能な不揮発性メモリと、
少なくとも前記プロセッサおよび前記不揮発性メモリを駆動するための外部電源の電圧を検出する電圧検出部とを備え、
前記プロセッサは、命令群を実行することで、前記電圧検出部によって検出された電圧に応じて、前記プロセッサおよび前記不揮発性メモリの少なくとも一方についての動作モードおよび／または動作周波数を設定する、半導体装置。
【請求項２】
前記プロセッサは、電源投入後の起動時に、前記プロセッサおよび前記不揮発性メモリの少なくとも一方についての動作モードおよび／または動作周波数を設定する、請求項１に記載の半導体装置。
【請求項３】
前記プロセッサは、前記不揮発性メモリへのアクセスが要求されたことに応答して、前記プロセッサおよび前記不揮発性メモリの少なくとも一方についての動作モードおよび／または動作周波数を設定する、請求項１または２に記載の半導体装置。
【請求項４】
前記電圧検出部は、
前記外部電源を所定比率で分圧した電圧と予め定められた基準電圧と比較する比較回路と、
前記基準電圧の大きさを複数種類に切り替える基準電圧発生回路と、
前記比較回路における比較結果と前記基準電圧発生回路から出力される前記基準電圧とに基づいて、前記外部電源の電圧を判定する判定回路とを含む、請求項１〜３のいずれか１項に記載の半導体装置。
【請求項５】
前記電圧検出部は、
前記外部電源を分圧して複数段階の分圧電圧を出力する分圧回路と、
前記分圧回路により出力される分圧電圧を予め定められた基準電圧と比較する比較回路と、
前記分圧回路から出力される分圧電圧と前記比較回路における比較結果とに基づいて、前記外部電源の電圧を判定する判定回路とを含む、請求項１〜３のいずれか１項に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサおよび不揮発性メモリを含む半導体装置に関する。
【背景技術】
【０００２】
従来から、同一基板上にプロセッサおよび不揮発性メモリが実装されたマイクロコンピュータがさまざまな用途で用いられている。このようなマイクロコンピュータに供給される外部電源の種類は、実装先の装置構成や用途などに応じて制約されることがある。
【０００３】
特開平０７−０２９３８６号公報（特許文献１）に開示されるマイクロコンピュータに含まれるフラッシュメモリは、書込または消去動作時に使用される通常動作電圧よりもレベルの高い電圧を発生する高電圧発生回路を有する電源回路と、通常動作電圧を外部から供給する第１の電源端子と、書込または消去動作時に使用される通常動作電圧よりも高いレベルの電圧を外部から供給するための第２の電源端子とを有している。そして、第２の電源端子に供給された高レベルの電圧または高電圧発生回路で発生された高電圧のいずれかが選択されて、不揮発性記憶素子に供給される。このような昇圧電圧と外部高電圧とを切り換えてデータの消去、書込を行わせることで、携帯用装置において異なる電圧の電池を内蔵する必要がないという効果を奏する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０７−０２９３８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように、上述のようなマイクロコンピュータは、さまざまな用途に用いられることが想定されており、外部電源に対する汎用性を高めたいというニーズがある。すなわち、マイクロコンピュータに提供される外部電源の種類（電圧）は、実装先の装置構成や用途などによって制限されるので、より外部電源についての制約を受けないように、動作可能な電圧範囲を拡大するための取組みが進められている。
【０００６】
一方、プロセッサや不揮発性メモリの有する性能を最大限利用するためには、外部電源の電圧に応じて、より好適な動作モードや動作周波数を自動的に設定することが好ましい。しかしながら、このような機能を有する構成は存在しなかった。
【０００７】
本発明は、かかる課題を解決するためになされたものであり、その目的は、外部電源の電圧に応じて、より適切な動作モードや動作周波数を自動的に設定することが可能な半導体装置を提供することである。
【課題を解決するための手段】
【０００８】
ある実施の形態に従う半導体装置は、プロセッサと、プロセッサによるアクセスが可能な不揮発性メモリと、少なくともプロセッサおよび不揮発性メモリを駆動するための外部電源の電圧を検出する電圧検出部とを含む。プロセッサは、命令群を実行することで、電圧検出部によって検出された電圧に応じて、プロセッサおよび不揮発性メモリの少なくとも一方についての動作モードおよび／または動作周波数を設定する。
【発明の効果】
【０００９】
ある実施の形態によれば、外部電源の電圧に応じて、より適切な動作モードや動作周波数を自動的に設定することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に従うマイクロコンピュータの構成を示す模式図である。
【図２】本発明の実施の形態に従うマイクロコンピュータに含まれる電圧検出部の構成を示す模式図である。
【図３】本発明の実施の形態に従うマイクロコンピュータにおけるクロック信号を発生する回路構成の一例を示す図である。
【図４】本発明の実施の形態に従うマイクロコンピュータにおける設定処理およびフラッシュメモリへのアクセスの手順を示すフローチャートである。
【図５】図４に示す外部電源の電圧検出処理における処理手順を示すフローチャートである。
【図６】図４に示す外部電源の電圧検出処理における処理手順を示すフローチャートである。
【図７】本発明の実施の形態に従うマイクロコンピュータにおける設定処理およびフラッシュメモリへのアクセスの手順の変形例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１２】
＜Ａ．概要＞
マイクロコンピュータに内蔵されているブートローダ（命令群）は、マイクロコンピュータ内のフラッシュメモリを書き換える（アクセスする）場合に、当該マイクロコンピュータに供給されている外部電源の電圧に応じて、ＣＰＵおよびフラッシュメモリの動作モードや動作周波数を適性化することが好ましい。さらに、フラッシュメモリにおけるデータの書き換えに要する時間を短縮化するためにも、動作周波数や動作モードをより好適に設定する必要がある。
【００１３】
このような設定を行う場合には、マイクロコンピュータに供給されている外部電源の電圧を知る必要がある。
【００１４】
従来の方法としては、ユーザが、パーソナルコンピュータ上で実行されるフラッシュメモリ書き換え用フロントエンドソフトウェアを用いて、ターゲット電圧を入力し、その情報をマイクロコンピュータへ送信することで、ＣＰＵおよびフラッシュメモリの動作モードや動作周波数を設定していた。
【００１５】
しかしながら、このような方法では、ユーザが、パーソナルコンピュータ上で実行されるフラッシュメモリ書き換え用フロントエンドソフトウェアにて誤った電圧情報（ターゲット電圧）を入力しても、マイクロコンピュータ側ではその誤りを検出することができないので、マイクロコンピュータの予め規定された動作範囲外でフラッシュメモリの書き換えを行ってしまう可能性がある。
【００１６】
また、電圧情報（ターゲット電圧）がマイクロコンピュータへ予め通知されないシステムでは、動作を保障するため、ＣＰＵやフラッシュメモリの動作周波数をより低く設定して動作させることが一般的であり、その結果、フラッシュメモリの書き換え時間が長くなるという課題があった。
【００１７】
そこで、本実施の形態においては、マイクロコンピュータに供給される外部電源の電圧を検出して、当該検出された電圧に応じたより好適なＣＰＵおよびフラッシュメモリの動作モードや動作周波数を設定する。
【００１８】
具体的には、本実施の形態に従うマイクロコンピュータは、プロセッサであるＣＰＵ（Central Processing Unit）が処理すべき情報（データ）を電気的な消去・書込によって書き換え可能な不揮発性メモリ（フラッシュメモリ）を有する。マイクロコンピュータは、マイクロコンピュータに供給される外部電源の電圧を検出する電圧検出部と、フラッシュメモリの書き換えを行うソフトウエア（ブートローダ）で構成される。
【００１９】
一例として、電圧検出部は、ＶＣＣ端子（電源端子）に印加されている外部電源を異なる分圧比で分圧した複数種類の電圧を生成し、レジスタを用いて検出したい電圧レベルを選択することにより、選択された電圧レベルがセレクタから出力される。この出力された電圧と基準電圧とを比較器により比較し、その比較結果がレジスタに格納される。この比較結果により、マイクロコンピュータに供給される外部電源の電圧を判断でき、ブートローダによって外部電源の電圧に応じてより好適なＣＰＵおよびフラッシュメモリの動作モードや動作周波数の設定が可能となる。
【００２０】
＜Ｂ．全体構成＞
図１は、本発明の実施の形態に従うマイクロコンピュータ１の構成を示す模式図である。図１を参照して、マイクロコンピュータ１は、ＣＰＵ１０２と、ブートＲＯＭ（Read Only Memory）１０４と、フラッシュメモリ１０６と、クロック発生回路１０８と、電圧検出部１１０とを含む。これらの各部は、内部バス１００を介して互いデータ通信可能に接続されている。
【００２１】
ＣＰＵ１０２は、プロセッサの典型例であり、予め指定された順序で命令を順次実行することで、マイクロコンピュータ１に含まれる各部を制御する。
【００２２】
ブートＲＯＭ１０４は、マイクロコンピュータ１の起動時における各種処理を実行するための命令群を格納する記憶部である。すなわち、ブートＲＯＭ１０４は、ブートローダとして機能する。具体的には、マイクロコンピュータ１の起動時において、ＣＰＵ１０２は、ブートＲＯＭ１０４に格納されている命令群を所定順序でロードして実行することで、後述するような、電圧検出部１１０によって検出された電圧に応じて、ＣＰＵ１０２およびフラッシュメモリ１０６の動作モードおよび／または動作周波数を動作環境に応じた値に設定する。ブートＲＯＭ１０４に格納される命令群は、このような動作モードおよび／または動作周波数を設定するためのプログラムに加えて、各種の初期化処理を実行するためのプログラムを含みうる。
【００２３】
フラッシュメモリ１０６は、プロセッサであるＣＰＵ１０２によるアクセスが可能な不揮発性メモリの典型例であり、ＣＰＵ１０２によって書き込まれたデータを不揮発的に格納する。フラッシュメモリ１０６は、メモリセルに対する電圧の印加によって、データの記憶（プログラム）および消去（イレース）を行う。本実施の形態において、フラッシュメモリ１０６としては、任意の構造（ＮＡＮＤ型やＮＯＲ型）および任意のセル方式（ＳＬＣ（Single Level Cell）やＭＬＣ（Multi Level Cell））のものを採用することができる。さらに、フラッシュメモリに限られず、ＭＲＡＭ（Magnetic Random Access Memory）やＦｅＲＡＭ（Ferroelectric Random Access Memory）などの不揮発性メモリを採用してもよい。
【００２４】
クロック発生回路１０８は、ＣＰＵ１０２およびフラッシュメモリ１０６、ならびに、内部バス１００などのデータ伝送および処理タイミングなどを決定するクロック信号を発生する。後述するように、クロック発生回路１０８は、駆動されるデバイスの別に複数の動作周波数を有するクロック信号を発生するとともに、ＣＰＵ１０２によって設定された動作周波数のクロック信号を各コンポーネントへ提供する。
【００２５】
電圧検出部１１０は、マイクロコンピュータ１に供給される外部電源の電圧を検出する。外部電源は、少なくともＣＰＵ１０２およびフラッシュメモリ１０６を駆動する。電圧検出部１１０は、外部電源を供給するための端子であるＶＣＣ端子（電源端子）と電気的に接続される。より具体的には、電圧検出部１１０は、比較用処理回路１２０と、比較切換用レジスタ１２２と、比較器１２４と、比較結果格納レジスタ１２６とを含む。
【００２６】
比較用処理回路１２０は、ＶＣＣ端子を介して入力される外部電源の電圧を比較するために前処理する回路である。比較器１２４は、外部電源に依存する電圧と基準電圧とを比較する。比較切換用レジスタ１２２は、外部電源の電圧レベルを判定するために、比較器１２４に入力される電圧信号を切り換える。比較結果格納レジスタ１２６は、比較器１２４により判断される大小関係と、比較切換用レジスタ１２２における切換指令との関係に基づいて、外部電源の電圧（電圧レベル）を判定する。
【００２７】
マイクロコンピュータ１は、フラッシュメモリ１０６の内容を書き換えるにあたって、マイクロコンピュータ１に供給されている外部電源の電圧を電圧検出部１１０により検出し、当該外部電源の電圧に応じて、ＣＰＵ１０２およびフラッシュメモリ１０６についてのより好適な動作モードおよび／または動作周波数を設定する。そして、マイクロコンピュータ１は、より好適な動作モードおよび／または動作周波数を設定した上で、フラッシュメモリ１０６を書き換える。このような動作モードおよび／または動作周波数の設定処理は、ＣＰＵ１０２が、ブートＲＯＭ１０４に格納されているブートローダ（命令群）に従って実行する。
【００２８】
＜Ｃ．電圧検出部＞
次に、図２を参照して、図１に示す電圧検出部１１０の具体的な構成の一例を示す。図２は、本発明の実施の形態に従うマイクロコンピュータ１に含まれる電圧検出部１１０の構成を示す模式図である。図２（Ａ）には、基準電圧を順次切り換えることで外部電源の電圧を検出する構成例である電圧検出部１１０Ａを示し、図２（Ｂ）には、外部電源の分圧比を順次切り換えることで外部電源の電圧を検出する構成例である構成例である電圧検出部１１０Ｂを示す。
【００２９】
（ｃ１：基準電圧を切り換える構成）
図２（Ａ）に示す電圧検出部１１０Ａにおいて、比較用処理回路１２０Ａは、ＶＣＣ端子とグランドＧＮＤとの間に直列に接続された分圧抵抗１２０１および１２０２と、内部基準電圧源（図示しない）から内部基準電圧を印加されるレベル選択回路１２０４とを含む。また、電圧検出部１１０Ａは、比較切換用レジスタ１２２として、レベル選択用レジスタ１２２１を含む。
【００３０】
分圧抵抗１２０１と分圧抵抗１２０２との接続点にあるノード１２０３と比較器１２４の＋端子が電気的に接続される。すなわち、外部電源の電圧が分圧抵抗１２０１と分圧抵抗１２０２との比で分圧された検出電圧Ｖｄｅｔが比較器１２４へ入力される。レベル選択回路１２０４は、レベル選択用レジスタ１２２１に設定される値（レジスタ値）に従って、入力される内部基準電圧を所定比率で分圧して基準電圧Ｖｒｅｆを出力する。すなわち、基準電圧Ｖｒｅｆが比較器１２４の−端子へ入力され、比較器１２４において、検出電圧Ｖｄｅｔと基準電圧Ｖｒｅｆとの大小関係が判定される。レベル選択用レジスタ１２２１に設定される値は、外部電源の電圧検出処理において、ＣＰＵ１０２が順次切り換える。すなわち、レベル選択用レジスタ１２２１に設定される値を順次切り換えることで、比較器１２４へ入力される基準電圧Ｖｒｅｆを変化させていき、比較器１２４における大小関係が反転する基準電圧Ｖｒｅｆに基づいて、外部電源の電圧（電圧レベル）を判定する。なお、比較器１２４における比較結果は、比較結果格納レジスタ１２６（図１）へ格納される。
【００３１】
このように、図２（Ａ）に示す電圧検出部１１０Ａは、ＶＣＣ端子（電源端子）に印加されている電圧を所定比率で分圧して得られた検出電圧Ｖｄｅｔを生成するとともに、内部基準電圧から検出したい電圧レベルをレベル選択用レジスタ１２２１で選択して基準電圧Ｖｒｅｆを生成する。そして、検出電圧Ｖｄｅｔと基準電圧Ｖｒｅｆとを比較器１２４により比較し、比較結果を比較結果格納レジスタ１２６（図１）に格納する。
【００３２】
すなわち、電圧検出部１１０Ａは、外部電源を所定比率で分圧した電圧と予め定められた基準電圧と比較する比較回路である比較器１２４と、基準電圧の大きさを複数種類に切り換える基準電圧発生回路であるレベル選択回路１２０４およびレベル選択用レジスタ１２２１と、比較器１２４における比較結果とレベル選択回路１２０４から出力される基準電圧とに基づいて、外部電源の電圧を判定する判定回路とを含む。
【００３３】
（ｃ２：外部電源の分圧比を切り換える構成）
図２（Ｂ）に示す電圧検出部１１０Ｂにおいて、比較用処理回路１２０は、ＶＣＣ端子とグランドＧＮＤとの間に直列に接続された分圧抵抗１２０５，１２０６，１２０７，１２０８と、分圧レベル選択回路１２０９とを含む。また、電圧検出部１１０Ｂは、比較切換用レジスタ１２２として、レベル選択用レジスタ１２２２を含む。
【００３４】
分圧抵抗１２０５と分圧抵抗１２０６との接続点にあるノードＮ１と、分圧抵抗１２０６と分圧抵抗１２０７との接続点にあるノードＮ２と、分圧抵抗１２０７と分圧抵抗１２０８との接続点にあるノードＮ３とのそれぞれが、分圧レベル選択回路１２０９と電気的に接続される。分圧レベル選択回路１２０９は、レベル選択用レジスタ１２２２に設定される値（レジスタ値）に従って、ノードＮ１，Ｎ２，Ｎ３のそれぞれからの電圧のうち指定された電圧を比較器１２４の＋端子へ出力する。また、内部基準電圧である基準電圧Ｖｒｅｆが比較器１２４の−端子へ入力され、比較器１２４において、検出電圧Ｖｄｅｔと基準電圧Ｖｒｅｆとの大小関係が判定される。レベル選択用レジスタ１２２２に設定される値は、外部電源の電圧検出処理において、ＣＰＵ１０２が順次切り換える。すなわち、レベル選択用レジスタ１２２２に設定される値を順次切り換えることで、比較器１２４へ入力される検出電圧Ｖｄｅｔを変化させていき、比較器１２４における大小関係が反転する検出電圧Ｖｄｅｔに基づいて、外部電源の電圧（電圧レベル）を判定する。なお、比較器１２４における比較結果は、比較結果格納レジスタ１２６（図１）へ格納される。
【００３５】
このように、図２（Ｂ）に示す電圧検出部１１０Ｂは、ＶＣＣ端子（電源端子）に印加されている電圧を異なる比率で分圧して得られた複数の検出電圧のうち、検出したい電圧レベルをレベル選択用レジスタ１２２２で選択して検出電圧Ｖｄｅｔを生成する。そして、検出電圧Ｖｄｅｔと基準電圧Ｖｒｅｆとを比較器１２４により比較し、比較結果を比較結果格納レジスタ１２６（図１）に格納する。
【００３６】
すなわち、電圧検出部１１０Ｂは、外部電源を分圧して複数段階の分圧電圧（検出電圧Ｖｄｅｔ）を出力する分圧回路である分圧レベル選択回路１２０９と、分圧レベル選択回路１２０９により出力される検出電圧Ｖｄｅｔを予め定められた基準電圧と比較する比較回路である比較器１２４と、分圧レベル選択回路１２０９から出力される検出電圧Ｖｄｅｔと比較器１２４における比較結果とに基づいて、外部電源の電圧を判定する判定回路とを含む。
【００３７】
＜Ｄ．動作モード／動作周波数の設定＞
マイクロコンピュータ１の内部では、供給される外部電源を用いて、各種の内部クロック信号や内部電圧を生成する。そのため、外部電源の電圧は、マイクロコンピュータ１の性能を左右する。例えば、ＣＰＵ１０２などを駆動するためのクロック信号の上限周波数は、外部電源の電圧に応じて制約される。また、フラッシュメモリ１０６においては、書込（プログラム）動作は、フローティングゲートへの電荷注入により行われ、消去（イレース）動作は、チャネルへの電圧印加によりフローティングゲートからの電荷引抜きにより行われる。そのため、これらの印加電圧を生成するための外部電源の電圧は重要である。
【００３８】
そのため、マイクロコンピュータ１は、外部電源の電圧に応じて、ＣＰＵ１０２およびフラッシュメモリ１０６についての動作モードおよび／または動作周波数を設定する。具体的には、以下の表に示すように、複数の動作モードの別に動作電圧範囲を予め規定しておき、検出される外部電源の電圧に応じて、適切な動作モードを設定する。
【００３９】
【表１】
2013101457.tif 000003
【００４０】
上記の表において定義される設定では、主として、外部電源の電圧が２．７Ｖおよび１．６２Ｖにおいて、動作モードが切り換えられることになる。例えば、外部電源の電圧が３．０Ｖであれば、動作モード１〜３のいずれについても設定可能であるが、より高速な処理を行うという観点からは、動作モード１が選択される。これに対して、外部電源の電圧が２．５Ｖであれば、動作モード２および３のみが設定可能となる（但し、動作モード２においてはフラッシュメモリ１０６に対する読出（リード）動作のみが可能である）。このとき、フラッシュメモリ１０６に対する書込動作が要求されるのであれば、動作モード３が選択される。
【００４１】
各種クロック信号の動作周波数は、それぞれの動作モードに応じて固定値としてもよいが、外部電源の電圧に応じてさらに変更してもよい。すなわち、前者の場合には、外部電源の電圧に応じて、ＣＰＵ１０２およびフラッシュメモリ１０６についての動作モードのみが設定される。一方、後者の場合には、外部電源の電圧に応じて、ＣＰＵ１０２およびフラッシュメモリ１０６についての動作モードおよび動作周波数が設定されることになる。
【００４２】
一例として、動作モードの別に、各種クロック信号の動作周波数を以下のように設定することができる。
【００４３】
【表２】
2013101457.tif 000004
【００４４】
このように、動作モードを設定した上で、さらに、マイクロコンピュータ１の各コンポーネントが使用するクロック信号をより詳細に設定することで、外部電源の電圧に応じて、マイクロコンピュータ１の性能を最大限発揮させることができる。
【００４５】
なお、上述のような動作モードを区分することなく、外部電源の電圧に応じて、ＣＰＵ１０２およびフラッシュメモリ１０６についての動作周波数のみを設定するようにしてもよい。
【００４６】
図３は、本発明の実施の形態に従うマイクロコンピュータ１におけるクロック信号を発生する回路構成の一例を示す図である。図３を参照して、マイクロコンピュータ１においては、主として、ＦｌａｓｈＩＦクロック（ＦＣＬＫ）、システムクロック（ＩＣＬＫ）、周辺モジュールクロック（ＰＣＬＫＢ，ＰＣＬＫＤ）、および、外部バスクロック（ＢＣＬＫ）が用いられる。これらのクロック信号は、上述のクロック信号の設定例に対応している。
【００４７】
ＦｌａｓｈＩＦクロック（ＦＣＬＫ）は、フラッシュメモリ１０６に対するアクセス（読出動作、書込動作、消去動作）に用いられるクロック信号である。システムクロック（ＩＣＬＫ）は、内部バス１００のデータ伝送やＣＰＵ１０２の駆動に用いられるクロック信号である。周辺モジュールクロック（ＰＣＬＫＢ，ＰＣＬＫＤ）は、マイクロコンピュータ１の入出力などの周辺モジュール（タイマーユニット、Ａ／Ｄ変換ユニット、Ｄ／Ａ変換ユニットなど）の駆動に用いられるクロック信号である。外部バスクロック（ＢＣＬＫ）は、マイクロコンピュータ１と外部装置との間でデータを遣り取りするために用いられるクロック信号である。
【００４８】
図３を参照して、マイクロコンピュータ１のクロック信号を発生するための構成として、メインクロック発振器１０８１と、サブクロック発振器１０８２と、高速クロック発振器１０８３と、低速クロック信号発振器１０８４と、セレクタ１３０，１４０，１４４，１４８，１５２と、レジスタ１３２，１４２，１４６，１５０，１５４と、分周器１３４とを含む。
【００４９】
メインクロック発振器１０８１、サブクロック発振器１０８２、高速クロック発振器１０８３、および、低速クロック信号発振器１０８４は、それぞれ所定の動作周波数のクロック信号を発生する。セレクタ１３０は、それぞれの発振器からのクロック信号のうち一つを選択し、分周器１３４へ出力する。セレクタ１３０は、レジスタ１３２に設定される値（ＣＫＳＥＬ）に従って、クロック信号を選択する。基本的には、レジスタ１３２には、選択される動作モードに応じた値が設定される。すなわち、設定される動作モードに応じて、分周器１３４に入力されるクロック信号の動作周波数が切り換えられる。
【００５０】
分周器１３４は、入力されるクロック信号をそれぞれ異なる分周比で分周した複数のクロック信号を生成する。それぞれのクロック信号は、並列に配置されたバスによって、セレクタ１４０，１４４，１４８，１５２へそれぞれ与えられる。
【００５１】
セレクタ１４０は、レジスタ１４２に設定される値（ＦＣＫ）に従って選択したクロック信号を、ＦｌａｓｈＩＦクロック（ＦＣＬＫ）として出力する。
【００５２】
セレクタ１４４は、レジスタ１４６に設定される値（ＩＣＫ）に従って選択したクロック信号を、システムクロック（ＩＣＬＫ）として出力する。
【００５３】
セレクタ１４８は、レジスタ１５０に設定される値（ＰＣＫＢ，ＰＣＫＤ）に従ってそれぞれ選択したクロック信号（２種類）を、周辺モジュールクロック（ＰＣＬＫＢ，ＰＣＬＫＤ）として出力する。
【００５４】
セレクタ１５２は、レジスタ１５０に設定される値（ＢＣＫ）に従って選択したクロック信号を、外部バスクロック（ＢＣＬＫ）として出力する。
【００５５】
上述したように、典型的には、ＣＰＵ１０２は、選択した動作モードに応じた値をレジスタ１３２に設定するとともに、選択した動作周波数に応じたそれぞれの値をレジスタ１４２，１４６，１５０，１５４に設定する。
【００５６】
＜Ｅ．処理手順＞
次に、本実施の形態に従うマイクロコンピュータ１において実行される処理手順について説明する。基本的には、上述のＣＰＵ１０２およびフラッシュメモリ１０６の動作モードおよび／または動作周波数を動作環境に応じた値に設定する処理は、マイクロコンピュータ１の出荷時またはファームウェアのアップデート時に実行される。すなわち、ＣＰＵ１０２は、電源投入後の起動時に、ＣＰＵ１０２およびフラッシュメモリ１０６の動作モードおよび／または動作周波数を設定する。
【００５７】
（ｅ１：設定処理）
図４は、本発明の実施の形態に従うマイクロコンピュータ１における設定処理およびフラッシュメモリへのアクセスの手順を示すフローチャートである。図５および図６は、図４に示す外部電源の電圧検出処理における処理手順を示すフローチャートである。
【００５８】
図４を参照して、マイクロコンピュータ１の電源が投入されると、ＣＰＵ１０２は、ブートＲＯＭ１０４に格納されているブートローダを実行する（ステップＳ２）。続いて、ＣＰＵ１０２は、ＣＰＵ１０２およびフラッシュメモリ１０６の動作モードおよび動作周波数の設定の実行が要求されているか否かを判断する（ステップＳ４）。マイクロコンピュータ１に最初に電源が投入される場合や、ファームウェアをアップデートした場合などに、設定処理の実行が要求されることになる。
【００５９】
動作モードおよび動作周波数の設定の実行が要求されていない場合（ステップＳ４においてＮＯの場合）には、ステップＳ６〜Ｓ１０の処理はスキップされ、処理はステップＳ２０へ進む。
【００６０】
動作モードおよび動作周波数の設定の実行が要求されている場合（ステップＳ４においてＹＥＳの場合）には、ＣＰＵ１０２は、外部電源の電圧検出処理を実行する（ステップＳ６）。この外部電源の電圧検出処理の詳細については、図５および図６を参照して後述する。
【００６１】
続いて、ＣＰＵ１０２は、外部電源の電圧検出処理によって検出される外部電源の電圧に基づいて、ＣＰＵ１０２のより好適な動作モードおよび／またはより好適な動作周波数を設定する（ステップＳ８）。また、ＣＰＵ１０２は、外部電源の電圧検出処理によって検出される外部電源の電圧に基づいて、フラッシュメモリ１０６のより好適な動作モードおよび／またはより好適な動作周波数を設定する（ステップＳ１０）。なお、ステップＳ８およびＳ１０の処理は、並列的に行ってもよい。
【００６２】
以上の処理により、ＣＰＵ１０２およびフラッシュメモリ１０６の動作モードおよび動作周波数の設定は完了する。その後、ＣＰＵ１０２は、フラッシュメモリ１０６へのアクセス要求が発生したか否かを判断する（ステップＳ２０）。フラッシュメモリ１０６へのアクセス要求が発生していない場合（ステップＳ２０においてＮＯの場合）には、ステップＳ２０以下の処理が繰返される。
【００６３】
フラッシュメモリ１０６へのアクセス要求が発生した場合（ステップＳ２０においてＹＥＳの場合）には、ＣＰＵ１０２は、フラッシュメモリ１０６へのアクセスの種類を判断する（ステップＳ２２）。そして、ＣＰＵ１０２は、ステップＳ２２において判断した種類に応じて、消去（イレース）処理、読出（ロード）処理、書込（プログラム）処理、ブランクチェック処理のいずれかを実行する（ステップＳ２４）。そして、ステップＳ２０以下の処理が繰返される。
【００６４】
（ｅ２：外部電源の電圧検出処理その１）
外部電源の電圧検出処理の一例として、図２（Ａ）に示す電圧検出部１１０Ａにより外部電源の電圧を検出する処理について説明する。
【００６５】
図５を参照して、ＣＰＵ１０２は、基準電圧Ｖｒｅｆを最高レベルに設定する（ステップＳ１００）。具体的には、ＣＰＵ１０２は、レベル選択用レジスタ１２２１（図２（Ａ））に基準電圧Ｖｒｅｆを最高レベルに設定するための値を設定する。
【００６６】
続いて、ＣＰＵ１０２は、電圧検出部１１０Ａを活性化し（ステップＳ１０２）、電圧検出部１１０Ａにおける比較結果（図２（Ａ）の電圧検出信号）を読出す（ステップＳ１０４）。そして、ＣＰＵ１０２は、検出電圧Ｖｄｅｔが現在の基準電圧Ｖｒｅｆ以上であるか否かを判断する（ステップＳ１０６）。
【００６７】
検出電圧Ｖｄｅｔが現在の基準電圧Ｖｒｅｆ以上である場合（ステップＳ１０６においてＹＥＳの場合）には、ＣＰＵ１０２は、外部電源の電圧レベルを最高レベル以上であると判定する（ステップＳ１０８）。そして、処理は終了する。
【００６８】
検出電圧Ｖｄｅｔが現在の基準電圧Ｖｒｅｆ未満である場合（ステップＳ１０６においてＮＯの場合）には、ＣＰＵ１０２は、基準電圧Ｖｒｅｆを現在のレベルから１段階だけ低いレベルに設定し（ステップＳ１１０）、電圧検出部１１０Ａにおける比較結果を読出す（ステップＳ１１２）。そして、ＣＰＵ１０２は、検出電圧Ｖｄｅｔが現在の基準電圧Ｖｒｅｆ以上であるか否かを判断する（ステップＳ１１８）。
【００６９】
検出電圧Ｖｄｅｔが現在の基準電圧Ｖｒｅｆ以上である場合（ステップＳ１１８においてＹＥＳの場合）には、ＣＰＵ１０２は、外部電源の電圧レベルを現在の基準電圧Ｖｒｅｆのレベル以上であり、かつ、現在の基準電圧Ｖｒｅｆのレベルより１段階だけ高いレベル未満であると判定する（ステップＳ１２０）。そして、処理は終了する。
【００７０】
検出電圧Ｖｄｅｔが現在の基準電圧Ｖｒｅｆ未満である場合（ステップＳ１１８においてＮＯの場合）には、ＣＰＵ１０２は、現在の基準電圧Ｖｒｅｆが最低レベルであるか否かを判断する（ステップＳ１２２）。
【００７１】
現在の基準電圧Ｖｒｅｆが最低レベルである場合（ステップＳ１２２においてＹＥＳの場合）には、ＣＰＵ１０２は、外部電源の電圧レベルを最低レベル未満であると判定する（ステップＳ１２４）。そして、処理は終了する。
【００７２】
現在の基準電圧Ｖｒｅｆが最低レベルではない場合（ステップＳ１２２においてＮＯの場合）には、ステップＳ１１０以下の処理が実行される。
【００７３】
（ｅ３：外部電源の電圧検出処理その２）
外部電源の電圧検出処理の別の例として、図２（Ｂ）に示す電圧検出部１１０Ｂにより外部電源の電圧を検出する処理について説明する。
【００７４】
図６を参照して、ＣＰＵ１０２は、最低レベルの検出電圧Ｖｄｅｔを選択する（ステップＳ２００）。具体的には、ＣＰＵ１０２は、レベル選択用レジスタ１２２２（図２（Ｂ））に最低レベルの検出電圧Ｖｄｅｔを選択するための値を設定する。すなわち、ＣＰＵ１０２は、分圧比が最も低くなるように、分圧レベル選択回路１２０９を駆動する。
【００７５】
続いて、ＣＰＵ１０２は、電圧検出部１１０Ｂを活性化し（ステップＳ２０２）、電圧検出部１１０Ｂにおける比較結果（図２（Ｂ）の電圧検出信号）を読出す（ステップＳ２０４）。そして、ＣＰＵ１０２は、現在の検出電圧Ｖｄｅｔが基準電圧Ｖｒｅｆ以上であるか否かを判断する（ステップＳ２０６）。
【００７６】
現在の検出電圧Ｖｄｅｔが基準電圧Ｖｒｅｆ以上である場合（ステップＳ２０６においてＹＥＳの場合）には、ＣＰＵ１０２は、外部電源の電圧レベルを最高レベル以上であると判定する（ステップＳ２０８）。そして、処理は終了する。
【００７７】
現在の検出電圧Ｖｄｅｔが基準電圧Ｖｒｅｆ未満である場合（ステップＳ２０６においてＮＯの場合）には、ＣＰＵ１０２は、現在のレベルから１段階だけ高い検出電圧Ｖｄｅｔを選択し（ステップＳ２１０）、電圧検出部１１０Ｂにおける比較結果を読出す（ステップＳ２１２）。そして、ＣＰＵ１０２は、現在の検出電圧Ｖｄｅｔが基準電圧Ｖｒｅｆ以上であるか否かを判断する（ステップＳ２１８）。
【００７８】
現在の検出電圧Ｖｄｅｔが基準電圧Ｖｒｅｆ以上である場合（ステップＳ２１８においてＹＥＳの場合）には、ＣＰＵ１０２は、外部電源の電圧レベルを、現在の分圧比に対応するレベル以上であり、かつ、現在の分圧比に対応するレベルより１段階だけ高いレベル未満であると判定する（ステップＳ２２０）。そして、処理は終了する。
【００７９】
現在の検出電圧Ｖｄｅｔが基準電圧Ｖｒｅｆ未満である場合（ステップＳ２１８においてＮＯの場合）には、ＣＰＵ１０２は、現在の検出電圧Ｖｄｅｔが最高レベルであるか否かを判断する（ステップＳ２２２）。
【００８０】
現在の検出電圧Ｖｄｅｔが最高レベルである場合（ステップＳ２２２においてＹＥＳの場合）には、ＣＰＵ１０２は、外部電源の電圧レベルを最低レベル未満であると判定する（ステップＳ２２４）。そして、処理は終了する。
【００８１】
現在の検出電圧Ｖｄｅｔが最高レベルではない場合（ステップＳ２２２においてＮＯの場合）には、ステップＳ２１０以下の処理が実行される。
【００８２】
（ｅ４：変形例）
上述した出荷時／アップデート時に代えて、または、それに加えて、フラッシュメモリ１０６に対してアクセスする際に、ＣＰＵ１０２およびフラッシュメモリ１０６の動作モードおよび／または動作周波数を動作環境に応じた値に設定する処理を行ってもよい。すなわち、ＣＰＵ１０２は、フラッシュメモリ１０６へのアクセスが要求されたことに応答して、ＣＰＵ１０２およびフラッシュメモリ１０６の動作モードおよび／または動作周波数を設定する。
【００８３】
図７は、本発明の実施の形態に従うマイクロコンピュータ１における設定処理およびフラッシュメモリへのアクセスの手順の変形例を示すフローチャートである。
【００８４】
図７を参照して、マイクロコンピュータ１の電源が投入されると、ＣＰＵ１０２は、ブートＲＯＭ１０４に格納されているブートローダを実行する（ステップＳ５２）。
【００８５】
続いて、ＣＰＵ１０２は、フラッシュメモリ１０６へのアクセス要求が発生したか否かを判断する（ステップＳ５４）。フラッシュメモリ１０６へのアクセス要求が発生していない場合（ステップＳ５４においてＮＯの場合）には、ステップＳ５４以下の処理が繰返される。
【００８６】
フラッシュメモリ１０６へのアクセス要求が発生した場合（ステップＳ５４においてＹＥＳの場合）には、ＣＰＵ１０２は、ＣＰＵ１０２およびフラッシュメモリ１０６の動作モードおよび動作周波数を設定する。すなわち、まず、ＣＰＵ１０２は、外部電源の電圧検出処理を実行する（ステップＳ５６）。続いて、ＣＰＵ１０２は、外部電源の電圧検出処理によって検出される外部電源の電圧に基づいて、ＣＰＵ１０２のより好適な動作モードおよび／またはより好適な動作周波数を設定する（ステップＳ５８）。また、ＣＰＵ１０２は、外部電源の電圧検出処理によって検出される外部電源の電圧に基づいて、フラッシュメモリ１０６のより好適な動作モードおよび／またはより好適な動作周波数を設定する（ステップＳ６０）。なお、ステップＳ５８およびＳ６０の処理は、並列的に行ってもよい。
【００８７】
その後、ＣＰＵ１０２は、フラッシュメモリ１０６へのアクセスの種類を判断する（ステップＳ６２）。そして、ＣＰＵ１０２は、ステップＳ５２において判断した種類に応じて、消去（イレース）処理、読出（ロード）処理、書込（プログラム）処理、ブランクチェック処理のいずれかを実行する（ステップＳ６４）。そして、ステップＳ５４以下の処理が繰返される。
【００８８】
＜Ｆ．まとめ＞
本実施の形態によれば、フラッシュメモリの書き換えなどが必要な場合に、マイクロコンピュータに供給されている外部電源の電圧を検出することにより、好適な動作モードや動作周波数が自動的に設定される。そのため、従来のように、ユーザが誤って電圧情報（ターゲット電圧）を入力しまうことで、マイクロコンピュータが誤動作することを防止できる。これにより、外部電源の電圧に応じて、マイクロコンピュータの動作により好適なＣＰＵおよびフラッシュメモリの動作モードや動作周波数の設定が可能となり、フラッシュメモリの書き換え時間の短縮を実現できる。
【００８９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００９０】
１  マイクロコンピュータ、１００  内部バス、１０２  ＣＰＵ、１０４  ＲＯＭ、１０６  フラッシュメモリ、１０８  クロック発生回路、１１０，１１０Ａ，１１０Ｂ  電圧検出部、１２０，１２０Ａ，１２０Ｂ  比較用処理回路、１２２  比較切換用レジスタ、１２４  比較器、１２６  比較結果格納レジスタ、１３０，１４０，１４４，１４８，１５２  セレクタ、１３２，１４２，１４６，１５０，１５４  レジスタ、１３４  分周器、１０８１  メインクロック発振器、１０８２  サブクロック発振器、１０８３  高速クロック発振器、１０８４  低速クロック信号発振器、１２０１，１２０２，１２０５，１２０６，１２０７，１２０８  分圧抵抗、１２０３，Ｎ１，Ｎ２，Ｎ３  ノード、１２０４  レベル選択回路、１２０９  分圧レベル選択回路、１２２１，１２２２  レベル選択用レジスタ、ＧＮＤ  グランド。
【図１】
2013101457.tif 000005
【図２】
2013101457.tif 000006
【図３】
2013101457.tif 000007
【図４】
2013101457.tif 000008
【図５】
2013101457.tif 000009
【図６】
2013101457.tif 000010
【図７】
2013101457.tif 000011