"プロセッサと、前記プロセッサによるアクセスが可能な不揮発性メモリと、少なくとも前記プロセッサおよび前記不揮発性メモリを駆動するための外部電源の電圧を検出する電圧検出部とを備え、前記プロセッサは、命令群を実行することで、前記電圧検出部によって検出された電圧に応じて、前記プロセッサおよび前記不揮発性メモリの少なくとも一方についての動作モードおよび/または動作周波数を設定する、半導体装置。前記プロセッサは、電源投入後の起動時に、前記プロセッサおよび前記不揮発性メモリの少なくとも一方についての動作モードおよび/または動作周波数を設定する、請求項1に記載の半導体装置。前記プロセッサは、前記不揮発性メモリへのアクセスが要求されたことに応答して、前記プロセッサおよび前記不揮発性メモリの少なくとも一方についての動作モードおよび/または動作周波数を設定する、請求項1または2に記載の半導体装置。前記電圧検出部は、前記外部電源を所定比率で分圧した電圧と予め定められた基準電圧と比較する比較回路と、前記基準電圧の大きさを複数種類に切り替える基準電圧発生回路と、前記比較回路における比較結果と前記基準電圧発生回路から出力される前記基準電圧とに基づいて、前記外部電源の電圧を判定する判定回路とを含む、請求項1~3のいずれか1項に記載の半導体装置。前記電圧検出部は、前記外部電源を分圧して複数段階の分圧電圧を出力する分圧回路と、前記分圧回路により出力される分圧電圧を予め定められた基準電圧と比較する比較回路と、前記分圧回路から出力される分圧電圧と前記比較回路における比較結果とに基づいて、前記外部電源の電圧を判定する判定回路とを含む、請求項1~3のいずれか1項に記載の半導体装置。上述したように、上述のようなマイクロコンピュータは、さまざまな用途に用いられることが想定されており、外部電源に対する汎用性を高めたいというニーズがある。すなわち、マイクロコンピュータに提供される外部電源の種類電圧は、実装先の装置構成や用途などによって制限されるので、より外部電源についての制約を受けないように、動作可能な電圧範囲を拡大するための取組みが進められている。一方、プロセッサや不揮発性メモリの有する性能を最大限利用するためには、外部電源の電圧に応じて、より好適な動作モードや動作周波数を自動的に設定することが好ましい。しかしながら、このような機能を有する構成は存在しなかった。本発明は、かかる課題を解決するためになされたものであり、その目的は、外部電源の電圧に応じて、より適切な動作モードや動作周波数を自動的に設定することが可能な半導体装置を提供することである。ある実施の形態に従う半導体装置は、プロセッサと、プロセッサによるアクセスが可能な不揮発性メモリと、少なくともプロセッサおよび不揮発性メモリを駆動するための外部電源の電圧を検出する電圧検出部とを含む。プロセッサは、命令群を実行することで、電圧検出部によって検出された電圧に応じて、プロセッサおよび不揮発性メモリの少なくとも一方についての動作モードおよび/または動作周波数を設定する。ある実施の形態によれば、外部電源の電圧に応じて、より適切な動作モードや動作周波数を自動的に設定することができる。本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。<A.概要>マイクロコンピュータに内蔵されているブートローダ命令群は、マイクロコンピュータ内のフラッシュメモリを書き換えるアクセスする場合に、当該マイクロコンピュータに供給されている外部電源の電圧に応じて、CPUおよびフラッシュメモリの動作モードや動作周波数を適性化することが好ましい。さらに、フラッシュメモリにおけるデータの書き換えに要する時間を短縮化するためにも、動作周波数や動作モードをより好適に設定する必要がある。このような設定を行う場合には、マイクロコンピュータに供給されている外部電源の電圧を知る必要がある。従来の方法としては、ユーザが、パーソナルコンピュータ上で実行されるフラッシュメモリ書き換え用フロントエンドソフトウェアを用いて、ターゲット電圧を入力し、その情報をマイクロコンピュータへ送信することで、CPUおよびフラッシュメモリの動作モードや動作周波数を設定していた。しかしながら、このような方法では、ユーザが、パーソナルコンピュータ上で実行されるフラッシュメモリ書き換え用フロントエンドソフトウェアにて誤った電圧情報ターゲット電圧を入力しても、マイクロコンピュータ側ではその誤りを検出することができないので、マイクロコンピュータの予め規定された動作範囲外でフラッシュメモリの書き換えを行ってしまう可能性がある。また、電圧情報ターゲット電圧がマイクロコンピュータへ予め通知されないシステムでは、動作を保障するため、CPUやフラッシュメモリの動作周波数をより低く設定して動作させることが一般的であり、その結果、フラッシュメモリの書き換え時間が長くなるという課題があった。そこで、本実施の形態においては、マイクロコンピュータに供給される外部電源の電圧を検出して、当該検出された電圧に応じたより好適なCPUおよびフラッシュメモリの動作モードや動作周波数を設定する。具体的には、本実施の形態に従うマイクロコンピュータは、プロセッサであるCPUCentralProcessingUnitが処理すべき情報データを電気的な消去書込によって書き換え可能な不揮発性メモリフラッシュメモリを有する。マイクロコンピュータは、マイクロコンピュータに供給される外部電源の電圧を検出する電圧検出部と、フラッシュメモリの書き換えを行うソフトウエアブートローダで構成される。一例として、電圧検出部は、VCC端子電源端子に印加されている外部電源を異なる分圧比で分圧した複数種類の電圧を生成し、レジスタを用いて検出したい電圧レベルを選択することにより、選択された電圧レベルがセレクタから出力される。この出力された電圧と基準電圧とを比較器により比較し、その比較結果がレジスタに格納される。この比較結果により、マイクロコンピュータに供給される外部電源の電圧を判断でき、ブートローダによって外部電源の電圧に応じてより好適なCPUおよびフラッシュメモリの動作モードや動作周波数の設定が可能となる。<B.全体構成>図1は、本発明の実施の形態に従うマイクロコンピュータ1の構成を示す模式図である。図1を参照して、マイクロコンピュータ1は、CPU102と、ブートROMReadOnlyMemory104と、フラッシュメモリ106と、クロック発生回路108と、電圧検出部110とを含む。これらの各部は、内部バス100を介して互いデータ通信可能に接続されている。CPU102は、プロセッサの典型例であり、予め指定された順序で命令を順次実行することで、マイクロコンピュータ1に含まれる各部を制御する。ブートROM104は、マイクロコンピュータ1の起動時における各種処理を実行するための命令群を格納する記憶部である。すなわち、ブートROM104は、ブートローダとして機能する。具体的には、マイクロコンピュータ1の起動時において、CPU102は、ブートROM104に格納されている命令群を所定順序でロードして実行することで、後述するような、電圧検出部110によって検出された電圧に応じて、CPU102およびフラッシュメモリ106の動作モードおよび/または動作周波数を動作環境に応じた値に設定する。ブートROM104に格納される命令群は、このような動作モードおよび/または動作周波数を設定するためのプログラムに加えて、各種の初期化処理を実行するためのプログラムを含みうる。フラッシュメモリ106は、プロセッサであるCPU102によるアクセスが可能な不揮発性メモリの典型例であり、CPU102によって書き込まれたデータを不揮発的に格納する。フラッシュメモリ106は、メモリセルに対する電圧の印加によって、データの記憶プログラムおよび消去イレースを行う。本実施の形態において、フラッシュメモリ106としては、任意の構造NAND型やNOR型および任意のセル方式SLCSingleLevelCellやMLCMultiLevelCellのものを採用することができる。さらに、フラッシュメモリに限られず、MRAMMagneticRandomAccessMemoryやFeRAMFerroelectricRandomAccessMemoryなどの不揮発性メモリを採用してもよい。クロック発生回路108は、CPU102およびフラッシュメモリ106、ならびに、内部バス100などのデータ伝送および処理タイミングなどを決定するクロック信号を発生する。後述するように、クロック発生回路108は、駆動されるデバイスの別に複数の動作周波数を有するクロック信号を発生するとともに、CPU102によって設定された動作周波数のクロック信号を各コンポーネントへ提供する。電圧検出部110は、マイクロコンピュータ1に供給される外部電源の電圧を検出する。外部電源は、少なくともCPU102およびフラッシュメモリ106を駆動する。電圧検出部110は、外部電源を供給するための端子であるVCC端子電源端子と電気的に接続される。より具体的には、電圧検出部110は、比較用処理回路120と、比較切換用レジスタ122と、比較器124と、比較結果格納レジスタ126とを含む。比較用処理回路120は、VCC端子を介して入力される外部電源の電圧を比較するために前処理する回路である。比較器124は、外部電源に依存する電圧と基準電圧とを比較する。比較切換用レジスタ122は、外部電源の電圧レベルを判定するために、比較器124に入力される電圧信号を切り換える。比較結果格納レジスタ126は、比較器124により判断される大小関係と、比較切換用レジスタ122における切換指令との関係に基づいて、外部電源の電圧電圧レベルを判定する。マイクロコンピュータ1は、フラッシュメモリ106の内容を書き換えるにあたって、マイクロコンピュータ1に供給されている外部電源の電圧を電圧検出部110により検出し、当該外部電源の電圧に応じて、CPU102およびフラッシュメモリ106についてのより好適な動作モードおよび/または動作周波数を設定する。そして、マイクロコンピュータ1は、より好適な動作モードおよび/または動作周波数を設定した上で、フラッシュメモリ106を書き換える。このような動作モードおよび/または動作周波数の設定処理は、CPU102が、ブートROM104に格納されているブートローダ命令群に従って実行する。<C.電圧検出部>次に、図2を参照して、図1に示す電圧検出部110の具体的な構成の一例を示す。図2は、本発明の実施の形態に従うマイクロコンピュータ1に含まれる電圧検出部110の構成を示す模式図である。図2Aには、基準電圧を順次切り換えることで外部電源の電圧を検出する構成例である電圧検出部110Aを示し、図2Bには、外部電源の分圧比を順次切り換えることで外部電源の電圧を検出する構成例である構成例である電圧検出部110Bを示す。c1:基準電圧を切り換える構成図2Aに示す電圧検出部110Aにおいて、比較用処理回路120Aは、VCC端子とグランドGNDとの間に直列に接続された分圧抵抗1201および1202と、内部基準電圧源図示しないから内部基準電圧を印加されるレベル選択回路1204とを含む。また、電圧検出部110Aは、比較切換用レジスタ122として、レベル選択用レジスタ1221を含む。分圧抵抗1201と分圧抵抗1202との接続点にあるノード1203と比較器124の端子が電気的に接続される。すなわち、外部電源の電圧が分圧抵抗1201と分圧抵抗1202との比で分圧された検出電圧Vdetが比較器124へ入力される。レベル選択回路1204は、レベル選択用レジスタ1221に設定される値レジスタ値に従って、入力される内部基準電圧を所定比率で分圧して基準電圧Vrefを出力する。すなわち、基準電圧Vrefが比較器124の-端子へ入力され、比較器124において、検出電圧Vdetと基準電圧Vrefとの大小関係が判定される。レベル選択用レジスタ1221に設定される値は、外部電源の電圧検出処理において、CPU102が順次切り換える。すなわち、レベル選択用レジスタ1221に設定される値を順次切り換えることで、比較器124へ入力される基準電圧Vrefを変化させていき、比較器124における大小関係が反転する基準電圧Vrefに基づいて、外部電源の電圧電圧レベルを判定する。なお、比較器124における比較結果は、比較結果格納レジスタ126図1へ格納される。このように、図2Aに示す電圧検出部110Aは、VCC端子電源端子に印加されている電圧を所定比率で分圧して得られた検出電圧Vdetを生成するとともに、内部基準電圧から検出したい電圧レベルをレベル選択用レジスタ1221で選択して基準電圧Vrefを生成する。そして、検出電圧Vdetと基準電圧Vrefとを比較器124により比較し、比較結果を比較結果格納レジスタ126図1に格納する。すなわち、電圧検出部110Aは、外部電源を所定比率で分圧した電圧と予め定められた基準電圧と比較する比較回路である比較器124と、基準電圧の大きさを複数種類に切り換える基準電圧発生回路であるレベル選択回路1204およびレベル選択用レジスタ1221と、比較器124における比較結果とレベル選択回路1204から出力される基準電圧とに基づいて、外部電源の電圧を判定する判定回路とを含む。c2:外部電源の分圧比を切り換える構成図2Bに示す電圧検出部110Bにおいて、比較用処理回路120は、VCC端子とグランドGNDとの間に直列に接続された分圧抵抗1205,1206,1207,1208と、分圧レベル選択回路1209とを含む。また、電圧検出部110Bは、比較切換用レジスタ122として、レベル選択用レジスタ1222を含む。分圧抵抗1205と分圧抵抗1206との接続点にあるノードN1と、分圧抵抗1206と分圧抵抗1207との接続点にあるノードN2と、分圧抵抗1207と分圧抵抗1208との接続点にあるノードN3とのそれぞれが、分圧レベル選択回路1209と電気的に接続される。分圧レベル選択回路1209は、レベル選択用レジスタ1222に設定される値レジスタ値に従って、ノードN1,N2,N3のそれぞれからの電圧のうち指定された電圧を比較器124の端子へ出力する。また、内部基準電圧である基準電圧Vrefが比較器124の-端子へ入力され、比較器124において、検出電圧Vdetと基準電圧Vrefとの大小関係が判定される。レベル選択用レジスタ1222に設定される値は、外部電源の電圧検出処理において、CPU102が順次切り換える。すなわち、レベル選択用レジスタ1222に設定される値を順次切り換えることで、比較器124へ入力される検出電圧Vdetを変化させていき、比較器124における大小関係が反転する検出電圧Vdetに基づいて、外部電源の電圧電圧レベルを判定する。なお、比較器124における比較結果は、比較結果格納レジスタ126図1へ格納される。このように、図2Bに示す電圧検出部110Bは、VCC端子電源端子に印加されている電圧を異なる比率で分圧して得られた複数の検出電圧のうち、検出したい電圧レベルをレベル選択用レジスタ1222で選択して検出電圧Vdetを生成する。そして、検出電圧Vdetと基準電圧Vrefとを比較器124により比較し、比較結果を比較結果格納レジスタ126図1に格納する。すなわち、電圧検出部110Bは、外部電源を分圧して複数段階の分圧電圧検出電圧Vdetを出力する分圧回路である分圧レベル選択回路1209と、分圧レベル選択回路1209により出力される検出電圧Vdetを予め定められた基準電圧と比較する比較回路である比較器124と、分圧レベル選択回路1209から出力される検出電圧Vdetと比較器124における比較結果とに基づいて、外部電源の電圧を判定する判定回路とを含む。<D.動作モード/動作周波数の設定>マイクロコンピュータ1の内部では、供給される外部電源を用いて、各種の内部クロック信号や内部電圧を生成する。そのため、外部電源の電圧は、マイクロコンピュータ1の性能を左右する。例えば、CPU102などを駆動するためのクロック信号の上限周波数は、外部電源の電圧に応じて制約される。また、フラッシュメモリ106においては、書込プログラム動作は、フローティングゲートへの電荷注入により行われ、消去イレース動作は、チャネルへの電圧印加によりフローティングゲートからの電荷引抜きにより行われる。そのため、これらの印加電圧を生成するための外部電源の電圧は重要である。そのため、マイクロコンピュータ1は、外部電源の電圧に応じて、CPU102およびフラッシュメモリ106についての動作モードおよび/または動作周波数を設定する。具体的には、以下の表に示すように、複数の動作モードの別に動作電圧範囲を予め規定しておき、検出される外部電源の電圧に応じて、適切な動作モードを設定する。上記の表において定義される設定では、主として、外部電源の電圧が2.7Vおよび1.62Vにおいて、動作モードが切り換えられることになる。例えば、外部電源の電圧が3.0Vであれば、動作モード1~3のいずれについても設定可能であるが、より高速な処理を行うという観点からは、動作モード1が選択される。これに対して、外部電源の電圧が2.5Vであれば、動作モード2および3のみが設定可能となる但し、動作モード2においてはフラッシュメモリ106に対する読出リード動作のみが可能である。このとき、フラッシュメモリ106に対する書込動作が要求されるのであれば、動作モード3が選択される。各種クロック信号の動作周波数は、それぞれの動作モードに応じて固定値としてもよいが、外部電源の電圧に応じてさらに変更してもよい。すなわち、前者の場合には、外部電源の電圧に応じて、CPU102およびフラッシュメモリ106についての動作モードのみが設定される。一方、後者の場合には、外部電源の電圧に応じて、CPU102およびフラッシュメモリ106についての動作モードおよび動作周波数が設定されることになる。一例として、動作モードの別に、各種クロック信号の動作周波数を以下のように設定することができる。このように、動作モードを設定した上で、さらに、マイクロコンピュータ1の各コンポーネントが使用するクロック信号をより詳細に設定することで、外部電源の電圧に応じて、マイクロコンピュータ1の性能を最大限発揮させることができる。なお、上述のような動作モードを区分することなく、外部電源の電圧に応じて、CPU102およびフラッシュメモリ106についての動作周波数のみを設定するようにしてもよい。図3は、本発明の実施の形態に従うマイクロコンピュータ1におけるクロック信号を発生する回路構成の一例を示す図である。図3を参照して、マイクロコンピュータ1においては、主として、FlashIFクロックFCLK、システムクロックICLK、周辺モジュールクロックPCLKB,PCLKD、および、外部バスクロックBCLKが用いられる。これらのクロック信号は、上述のクロック信号の設定例に対応している。FlashIFクロックFCLKは、フラッシュメモリ106に対するアクセス読出動作、書込動作、消去動作に用いられるクロック信号である。システムクロックICLKは、内部バス100のデータ伝送やCPU102の駆動に用いられるクロック信号である。周辺モジュールクロックPCLKB,PCLKDは、マイクロコンピュータ1の入出力などの周辺モジュールタイマーユニット、A/D変換ユニット、D/A変換ユニットなどの駆動に用いられるクロック信号である。外部バスクロックBCLKは、マイクロコンピュータ1と外部装置との間でデータを遣り取りするために用いられるクロック信号である。図3を参照して、マイクロコンピュータ1のクロック信号を発生するための構成として、メインクロック発振器1081と、サブクロック発振器1082と、高速クロック発振器1083と、低速クロック信号発振器1084と、セレクタ130,140,144,148,152と、レジスタ132,142,146,150,154と、分周器134とを含む。メインクロック発振器1081、サブクロック発振器1082、高速クロック発振器1083、および、低速クロック信号発振器1084は、それぞれ所定の動作周波数のクロック信号を発生する。セレクタ130は、それぞれの発振器からのクロック信号のうち一つを選択し、分周器134へ出力する。セレクタ130は、レジスタ132に設定される値CKSELに従って、クロック信号を選択する。基本的には、レジスタ132には、選択される動作モードに応じた値が設定される。すなわち、設定される動作モードに応じて、分周器134に入力されるクロック信号の動作周波数が切り換えられる。分周器134は、入力されるクロック信号をそれぞれ異なる分周比で分周した複数のクロック信号を生成する。それぞれのクロック信号は、並列に配置されたバスによって、セレクタ140,144,148,152へそれぞれ与えられる。セレクタ140は、レジスタ142に設定される値FCKに従って選択したクロック信号を、FlashIFクロックFCLKとして出力する。セレクタ144は、レジスタ146に設定される値ICKに従って選択したクロック信号を、システムクロックICLKとして出力する。セレクタ148は、レジスタ150に設定される値PCKB,PCKDに従ってそれぞれ選択したクロック信号2種類を、周辺モジュールクロックPCLKB,PCLKDとして出力する。セレクタ152は、レジスタ150に設定される値BCKに従って選択したクロック信号を、外部バスクロックBCLKとして出力する。上述したように、典型的には、CPU102は、選択した動作モードに応じた値をレジスタ132に設定するとともに、選択した動作周波数に応じたそれぞれの値をレジスタ142,146,150,154に設定する。<E.処理手順>次に、本実施の形態に従うマイクロコンピュータ1において実行される処理手順について説明する。基本的には、上述のCPU102およびフラッシュメモリ106の動作モードおよび/または動作周波数を動作環境に応じた値に設定する処理は、マイクロコンピュータ1の出荷時またはファームウェアのアップデート時に実行される。すなわち、CPU102は、電源投入後の起動時に、CPU102およびフラッシュメモリ106の動作モードおよび/または動作周波数を設定する。e1:設定処理図4は、本発明の実施の形態に従うマイクロコンピュータ1における設定処理およびフラッシュメモリへのアクセスの手順を示すフローチャートである。図5および図6は、図4に示す外部電源の電圧検出処理における処理手順を示すフローチャートである。図4を参照して、マイクロコンピュータ1の電源が投入されると、CPU102は、ブートROM104に格納されているブートローダを実行するステップS2。続いて、CPU102は、CPU102およびフラッシュメモリ106の動作モードおよび動作周波数の設定の実行が要求されているか否かを判断するステップS4。マイクロコンピュータ1に最初に電源が投入される場合や、ファームウェアをアップデートした場合などに、設定処理の実行が要求されることになる。動作モードおよび動作周波数の設定の実行が要求されていない場合ステップS4においてNOの場合には、ステップS6~S10の処理はスキップされ、処理はステップS20へ進む。動作モードおよび動作周波数の設定の実行が要求されている場合ステップS4においてYESの場合には、CPU102は、外部電源の電圧検出処理を実行するステップS6。この外部電源の電圧検出処理の詳細については、図5および図6を参照して後述する。続いて、CPU102は、外部電源の電圧検出処理によって検出される外部電源の電圧に基づいて、CPU102のより好適な動作モードおよび/またはより好適な動作周波数を設定するステップS8。また、CPU102は、外部電源の電圧検出処理によって検出される外部電源の電圧に基づいて、フラッシュメモリ106のより好適な動作モードおよび/またはより好適な動作周波数を設定するステップS10。なお、ステップS8およびS10の処理は、並列的に行ってもよい。以上の処理により、CPU102およびフラッシュメモリ106の動作モードおよび動作周波数の設定は完了する。その後、CPU102は、フラッシュメモリ106へのアクセス要求が発生したか否かを判断するステップS20。フラッシュメモリ106へのアクセス要求が発生していない場合ステップS20においてNOの場合には、ステップS20以下の処理が繰返される。フラッシュメモリ106へのアクセス要求が発生した場合ステップS20においてYESの場合には、CPU102は、フラッシュメモリ106へのアクセスの種類を判断するステップS22。そして、CPU102は、ステップS22において判断した種類に応じて、消去イレース処理、読出ロード処理、書込プログラム処理、ブランクチェック処理のいずれかを実行するステップS24。そして、ステップS20以下の処理が繰返される。e2:外部電源の電圧検出処理その1外部電源の電圧検出処理の一例として、図2Aに示す電圧検出部110Aにより外部電源の電圧を検出する処理について説明する。図5を参照して、CPU102は、基準電圧Vrefを最高レベルに設定するステップS100。具体的には、CPU102は、レベル選択用レジスタ1221図2Aに基準電圧Vrefを最高レベルに設定するための値を設定する。続いて、CPU102は、電圧検出部110Aを活性化しステップS102、電圧検出部110Aにおける比較結果図2Aの電圧検出信号を読出すステップS104。そして、CPU102は、検出電圧Vdetが現在の基準電圧Vref以上であるか否かを判断するステップS106。検出電圧Vdetが現在の基準電圧Vref以上である場合ステップS106においてYESの場合には、CPU102は、外部電源の電圧レベルを最高レベル以上であると判定するステップS108。そして、処理は終了する。検出電圧Vdetが現在の基準電圧Vref未満である場合ステップS106においてNOの場合には、CPU102は、基準電圧Vrefを現在のレベルから1段階だけ低いレベルに設定しステップS110、電圧検出部110Aにおける比較結果を読出すステップS112。そして、CPU102は、検出電圧Vdetが現在の基準電圧Vref以上であるか否かを判断するステップS118。検出電圧Vdetが現在の基準電圧Vref以上である場合ステップS118においてYESの場合には、CPU102は、外部電源の電圧レベルを現在の基準電圧Vrefのレベル以上であり、かつ、現在の基準電圧Vrefのレベルより1段階だけ高いレベル未満であると判定するステップS120。そして、処理は終了する。検出電圧Vdetが現在の基準電圧Vref未満である場合ステップS118においてNOの場合には、CPU102は、現在の基準電圧Vrefが最低レベルであるか否かを判断するステップS122。現在の基準電圧Vrefが最低レベルである場合ステップS122においてYESの場合には、CPU102は、外部電源の電圧レベルを最低レベル未満であると判定するステップS124。そして、処理は終了する。現在の基準電圧Vrefが最低レベルではない場合ステップS122においてNOの場合には、ステップS110以下の処理が実行される。e3:外部電源の電圧検出処理その2外部電源の電圧検出処理の別の例として、図2Bに示す電圧検出部110Bにより外部電源の電圧を検出する処理について説明する。図6を参照して、CPU102は、最低レベルの検出電圧Vdetを選択するステップS200。具体的には、CPU102は、レベル選択用レジスタ1222図2Bに最低レベルの検出電圧Vdetを選択するための値を設定する。すなわち、CPU102は、分圧比が最も低くなるように、分圧レベル選択回路1209を駆動する。続いて、CPU102は、電圧検出部110Bを活性化しステップS202、電圧検出部110Bにおける比較結果図2Bの電圧検出信号を読出すステップS204。そして、CPU102は、現在の検出電圧Vdetが基準電圧Vref以上であるか否かを判断するステップS206。現在の検出電圧Vdetが基準電圧Vref以上である場合ステップS206においてYESの場合には、CPU102は、外部電源の電圧レベルを最高レベル以上であると判定するステップS208。そして、処理は終了する。現在の検出電圧Vdetが基準電圧Vref未満である場合ステップS206においてNOの場合には、CPU102は、現在のレベルから1段階だけ高い検出電圧Vdetを選択しステップS210、電圧検出部110Bにおける比較結果を読出すステップS212。そして、CPU102は、現在の検出電圧Vdetが基準電圧Vref以上であるか否かを判断するステップS218。現在の検出電圧Vdetが基準電圧Vref以上である場合ステップS218においてYESの場合には、CPU102は、外部電源の電圧レベルを、現在の分圧比に対応するレベル以上であり、かつ、現在の分圧比に対応するレベルより1段階だけ高いレベル未満であると判定するステップS220。そして、処理は終了する。現在の検出電圧Vdetが基準電圧Vref未満である場合ステップS218においてNOの場合には、CPU102は、現在の検出電圧Vdetが最高レベルであるか否かを判断するステップS222。現在の検出電圧Vdetが最高レベルである場合ステップS222においてYESの場合には、CPU102は、外部電源の電圧レベルを最低レベル未満であると判定するステップS224。そして、処理は終了する。現在の検出電圧Vdetが最高レベルではない場合ステップS222においてNOの場合には、ステップS210以下の処理が実行される。e4:変形例上述した出荷時/アップデート時に代えて、または、それに加えて、フラッシュメモリ106に対してアクセスする際に、CPU102およびフラッシュメモリ106の動作モードおよび/または動作周波数を動作環境に応じた値に設定する処理を行ってもよい。すなわち、CPU102は、フラッシュメモリ106へのアクセスが要求されたことに応答して、CPU102およびフラッシュメモリ106の動作モードおよび/または動作周波数を設定する。図7は、本発明の実施の形態に従うマイクロコンピュータ1における設定処理およびフラッシュメモリへのアクセスの手順の変形例を示すフローチャートである。図7を参照して、マイクロコンピュータ1の電源が投入されると、CPU102は、ブートROM104に格納されているブートローダを実行するステップS52。続いて、CPU102は、フラッシュメモリ106へのアクセス要求が発生したか否かを判断するステップS54。フラッシュメモリ106へのアクセス要求が発生していない場合ステップS54においてNOの場合には、ステップS54以下の処理が繰返される。フラッシュメモリ106へのアクセス要求が発生した場合ステップS54においてYESの場合には、CPU102は、CPU102およびフラッシュメモリ106の動作モードおよび動作周波数を設定する。すなわち、まず、CPU102は、外部電源の電圧検出処理を実行するステップS56。続いて、CPU102は、外部電源の電圧検出処理によって検出される外部電源の電圧に基づいて、CPU102のより好適な動作モードおよび/またはより好適な動作周波数を設定するステップS58。また、CPU102は、外部電源の電圧検出処理によって検出される外部電源の電圧に基づいて、フラッシュメモリ106のより好適な動作モードおよび/またはより好適な動作周波数を設定するステップS60。なお、ステップS58およびS60の処理は、並列的に行ってもよい。その後、CPU102は、フラッシュメモリ106へのアクセスの種類を判断するステップS62。そして、CPU102は、ステップS52において判断した種類に応じて、消去イレース処理、読出ロード処理、書込プログラム処理、ブランクチェック処理のいずれかを実行するステップS64。そして、ステップS54以下の処理が繰返される。<F.まとめ>本実施の形態によれば、フラッシュメモリの書き換えなどが必要な場合に、マイクロコンピュータに供給されている外部電源の電圧を検出することにより、好適な動作モードや動作周波数が自動的に設定される。そのため、従来のように、ユーザが誤って電圧情報ターゲット電圧を入力しまうことで、マイクロコンピュータが誤動作することを防止できる。これにより、外部電源の電圧に応じて、マイクロコンピュータの動作により好適なCPUおよびフラッシュメモリの動作モードや動作周波数の設定が可能となり、フラッシュメモリの書き換え時間の短縮を実現できる。今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。"