(57)【要約】【課題】実装ボートにシリアルインターフェースを作成しなくても、ユーザ専用通信プロトコルで、オンボード書込みでき、暴走しても、ユーザ専用通信プロトコルコードが破壊されないマイクロコンピュータを提供する。【解決手段】ＣＰＵ（２）と、不揮発性メモリ（１３）と、ＲＡＭ（３）とを設ける。前記不揮発性メモリは、前記ＣＰＵにより処理される通信制御プログラムを保有する第１領域（Ｔｍａｔ）と、前記ＣＰＵによる通信制御プログラムの処理により外部とのインタフェースが確立されて消去及び書き込み可能にされる第２領域（Ｕｍａｔ）と、前記ＣＰＵによる通信制御プログラムの処理により外部とのインタフェースが確立されて消去及び書き込み可能にされ、且つＣＰＵによる第２領域のプログラムの処理により消去及び書き込み可能にされる第３領域（Ｍｍａｔ）とを含む。前記第２領域と第３領域とはレジスタによって排他的に選択可能とする。【選択図】図１
2008186476.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、消去及び書き込み可能な不揮発性メモリと、前記ＣＰＵのアドレス空間に配置されるＲＡＭとを有するマイクロコンピュータであって、
前記不揮発性メモリは、外部とのインタフェースを確立するためにＣＰＵにより処理される通信制御プログラムを保有する第１領域と、
前記ＣＰＵによる通信制御プログラムの処理により外部とのインタフェースが確立されて消去及び書き込み可能にされる第２領域と、
前記ＣＰＵによる通信制御プログラムの処理により外部とのインタフェースが確立されて消去及び書き込み可能にされ、且つＣＰＵによる第２領域のプログラムの処理により消去及び書き込み可能にされる第３領域と、を有し、
前記不揮発性メモリの第２領域と第３領域とはレジスタによって排他的に選択可能な構成となることを特徴とするマイクロコンピュータ。
【請求項２】
第１インタフェースを有する実装基板に実装されるべきマイクロコンピュータであって、
中央処理装置と、
前記第１インタフェースと異なる第２インタフェースを用いた通信プロトコルを確立するための第１通信処理プログラムが格納される第１記憶領域と、前記第１インタフェースを用いた通信プロトコルを確立するための第２通信処理プログラムが格納される第２記憶領域と、所定の第１動作モードで前記中央処理装置によって実行される制御プログラムが格納される第３記憶領域とを有する不揮発性メモリと、
前記第２記憶領域と第３記憶領域とを排他的に選択するためのレジスタと、を有することを特徴とするマイクロコンピュータ。
【請求項３】
前記第１記憶領域は、さらに、書き込み制御プログラムが格納され、
前記第２記憶領域に格納される前記第２通信処理プログラムは、前記書き込み制御プログラム及び前記第１通信処理プログラムを前記中央処理装置によって実行させる第１書き込みモードによって、前記第２記憶領域に書き込まれることを特徴とする請求項２記載のマイクロコンピュータ。
【請求項４】
前記第３記憶領域に格納される前記制御プログラムは、前記第１書き込みモード、又は、前記第１記憶領域に格納された書き込み制御プログラム及び前記第２通信処理プログラムを前記中央処理装置によって実行させる第２書き込みモードの何れかによって、前記第３記憶領域に書き込まれることを特徴とする請求項３記載のマイクロコンピュータ。
【請求項５】
前記第１インタフェースは、ＡＴＡＰＩインタフェース、ＳＣＳＩインタフェース、または、ＨＣＡＮインタフェースであることを特徴とする請求項２記載のマイクロコンピュータ。
【請求項６】
前記第２インタフェースは、調歩同期を利用したシリアルインタフェースであることを特徴とする請求項２記載のマイクロコンピュータ。
【請求項７】
前記不揮発性メモリは、フローティングゲートを有する不揮発性メモリセルを複数有することを特徴とする請求項２記載のマイクロコンピュータ。
【請求項８】
前記不揮発性メモリは、フラッシュメモリであることを特徴とする請求項７記載のマイクロコンピュータ。
【請求項９】
前記第１記憶領域は、さらに、消去制御プログラムが格納され、
前記第２記憶領域に格納される前記第２通信処理プログラムは、前記消去制御プログラム及び前記第１通信処理プログラムを前記中央処理装置によって実行させる第１消去モードによって、前記第２記憶領域から消去可能にされることを特徴とする請求項２記載のマイクロコンピュータ。
【請求項１０】
前記第３記憶領域に格納される前記制御プログラムは、前記第１消去モード、又は、前記第１記憶領域に格納された消去制御プログラム及び前記第２通信処理プログラムを前記中央処理装置によって実行させる第２消去モードの何れかによって、前記第３記憶領域から消去可能であることを特徴とする請求項９記載のマイクロコンピュータ。
【請求項１１】
前記第１記憶領域は、さらに、書き込み制御プログラムが格納され、
前記第２記憶領域に格納される前記第２通信処理プログラムは、前記書き込み制御プログラム及び前記第１通信処理プログラムを前記中央処理装置によって実行させる第１書き込みモードによって、前記第２記憶領域に書き込まれることを特徴とする請求項１０記載のマイクロコンピュータ。
【請求項１２】
前記第３記憶領域に格納される前記制御プログラムは、前記第１書き込みモード、又は、前記第１記憶領域に格納された書き込み制御プログラム及び前記第２通信処理プログラムを前記中央処理装置によって実行させる第２書き込みモードの何れかによって、前記第３記憶領域に書き込まれることを特徴とする請求項１１記載のマイクロコンピュータ。
【請求項１３】
中央処理装置と、
第１インタフェースを用いた通信プロトコルを確立するための第１通信処理プログラムと書き込み制御プログラムが格納される第１記憶領域と、前記第１インタフェースと異なる前記第２インタフェースを用いた通信プロトコルを確立するための第２通信処理プログラムが格納される第２記憶領域と、所定の第１動作モードで前記中央処理装置によって実行される制御プログラムが格納される第３記憶領域とを有する不揮発性メモリと、を有し、
前記第２記憶領域と第３記憶領域とは、排他的に選択可能とされることを特徴とするマイクロコンピュータ。
【請求項１４】
前記第２記憶領域に格納される前記第２通信処理プログラムは、前記書き込み制御プログラム及び前記第１通信処理プログラムを前記中央処理装置によって実行させる第１書き込みモードによって、前記第２記憶領域に書き込まれることを特徴とする請求項１３記載のマイクロコンピュータ。
【請求項１５】
前記第３記憶領域に格納される前記制御プログラムは、前記第１書き込みモード、又は、前記第１記憶領域に格納された書き込み制御プログラム及び前記第２通信処理プログラムを前記中央処理装置によって実行させる第２書き込みモードの何れかによって、前記第３記憶領域に書き込まれることを特徴とする請求項１４記載のマイクロコンピュータ。
【請求項１６】
前記第１記憶領域は、さらに、消去制御プログラムが格納され、
前記第２記憶領域に格納される前記第２通信処理プログラムは、前記消去制御プログラム及び前記第１通信処理プログラムを前記中央処理装置によって実行させる第１消去モードによって、前記第２記憶領域から消去にされることを特徴とする請求項１３記載のマイクロコンピュータ。
【請求項１７】
前記第３記憶領域に格納される前記制御プログラムは、前記第１消去モード、又は、前記第１記憶領域に格納された消去制御プログラム及び前記第２通信処理プログラムを前記中央処理装置によって実行させる第２消去モードの何れかによって、前記第３記憶領域から消去されることを特徴とする請求項１６記載のマイクロコンピュータ。
【請求項１８】
前記第１インタフェースは、ＡＴＡＰＩインタフェース、ＳＣＳＩインタフェース、ＨＣＡＮインタフェースから選択された少なくとも１つのインタフェースであることを特徴とする請求項１３記載のマイクロコンピュータ。
【請求項１９】
前記第２インタフェースは、調歩同期を利用したシリアルインタフェースであることを特徴とする請求項１３記載のマイクロコンピュータ。
【請求項２０】
前記不揮発性メモリは、フローティングゲートを有する不揮発性メモリセルを複数有することを特徴とする請求項１３記載のマイクロコンピュータ。
【請求項２１】
前記不揮発性メモリは、フラッシュメモリであることを特徴とする請求項２０記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的に消去及び書き込み可能な不揮発性メモリとＣＰＵ（中央処理装置）を有するマイクロコンピュータ、特に前記不揮発性メモリに対する消去及び書き込み動作の許可と禁止に関し、例えばフラッシュメモリを有するワンチップのマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
フラッシュメモリなどの電気的に消去及び書き込み可能な不揮発性メモリはメモリセルにプログラムされる閾値電圧の相違に応じて情報を記憶する。フラッシュメモリにおいてその閾値電圧の相違は、フローティングゲートが保有する電子又は正孔の量の相違によって実現される。例えば熱平衡状態の閾値電圧に対して相対的に高い閾値電圧状態を書き込み状態、相対的に低い閾値電圧状態を消去状態と称する（逆の定義も可能である）。このとき、特に制限されないが、メモリセルを消去状態にする消去及びメモリセルを書き込み状態にする書き込みの各動作では、高電圧パルスの印加と、それによる閾値電圧状態のベリファイとを繰返し行う。マイクロコンピュータのオンチップフラッシュッメモリに消去及び書込みを可能にする動作モードとして、ライタモード及びブートモードを有するものが有る。ライタモードとは、例えば、マイクロコンピュータを見掛け上、フラッシュメモリチップと等価とし、ＥＰＲＯＭライタのような書込み装置に接続して、消去及び書込みを可能にする動作モードである。ブートモードは、例えば、マイクロコンピュータがシステムに実装された状態で調歩同期若しくは非同期のシリアルインタフェース（ＵＡＲＴ）を介して実装システムとの通信を確立させて消去及び書込みを可能にする動作モードである。システム実装前にオンチップフラッシュメモリにプログラムやデータを初期的に書き込む場合にはライタモードを利用できる。一方、システム実装後に、プログラムのバージョンアップやデータのチューニングのためにオンチップフラッシュッメモリの記憶情報を書き換える場合にはブートモードを利用できる。
【０００３】
従来、ブートモードにはベーシックなインタフェース方式としてシリアルインタフェースを利用するようになっているから、ブートモードを用いてオンボード書換えを行う場合、マイクロコンピュータの実装システムボードには調歩同期のようなシリアルインタフェース回路を搭載することが行われていた。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、調歩同期のようなシリアルインタフェース回路を本来必要としないシステムもある。例えば、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）、ＣＤ−ＲＷ（Compact Disk- rewritable）、ＤＶＤ−ＲＯＭ（Digital Video Disk-Read Only Memory）、ＤＶＤ−ＲＡＭ（Digital Video Disk-Random Access Memory）などのディスクドライブシステムではＡＴＡＰＩ（AT Attachment Packet Interface）やＳＣＳＩ（Small Computer System Interface）などのインタフェースが必然的に存在する。エンジンやトランスミッションなどの自動車関係の制御システムではＨＣＡＮと称されるようなエリアネットワークインタフェースが存在する。このように各ユーザのシステムボードにＡＴＡＰＩ，ＳＣＳＩ又はＨＣＡＮなどのインタフェースが存在しても、ブートモードでオンボード書換えを行うためだけに調歩同期のようなシリアルインターフェースをさらに存在させる必要があるとすれば、これはユーザのシステムボードにとってオーバーヘッドの問題を生ずることになる。
【０００５】
これを回避するには、自由に利用することが許容されたフラッシュメモリ上の記憶領域（即ちユーザメモリ領域）でプログラムを実行可能なユーザプログラムモードでオンボード書き込みを実施可能にすればよい。即ち、予め、例えばライターモードでユーザメモリ領域にＡＴＡＰＩ等のユーザシステムボード専用の通信プロトコル処理プログラムを書き込む。これを実施した後に、マイクロコンピュータをユーザのシステムボートに実装し、そのユーザ専用の通信プロトコル処理プログラムをＣＰＵで実行すれば、ユーザのシステムボード上にシリアルインターフェースを持たなくても、ユーザメモリ領域に対するプログラムバージョンアップやチューニングデータ書換えなどを実施することができる。
【０００６】
しかしながら、ユーザの制御プログラムやチューニングデータなどが書き込まれるユーザ領域に専用通信プロトコル処理プログラムも一緒に書き込む場合には、ユーザが制御プログラムを作成する時に、その専用通信プロトコルのプログラムが誤って消去され難いようにする制御を実現しなければならず、ユーザがプログラムを作成するのに大きな負担になることが懸念される。また、システムボード上に実装した後にユーザプログラムモードでＣＰＵが暴走したとき、ユーザプログラムモードで実行可能にされる前記通信プロトコルの処理プログラムが誤って消えてしまえば、消去及び書込みのためにユーザシステムボードとは２度とインタフェースを確立することができない。実装基板からマイクロコンピュータチップを取り外して、ライタモードを用いない限り、再書き込みを実施する事ができなくなる問題が本発明者によって明らかにされた。尚、本明細書においてユーザとはマイクロコンピュータ等の半導体デバイスの利用者を広義に意味する。したがって、半導体デバイスの製造メーカが其の半導体デバイスを何らかの意味で使用すれば、其の限りにおいて当該製造メーカはユーザでもある。
【０００７】
本発明の目的は、消去されるとシステム上致命的な打撃を受けることになる実装ボードとの間の通信プロトコルのようなプログラム情報が不揮発性メモリから消失し難い構成のマイクロコンピュータを提供することにある。
【０００８】
本発明の別の目的は、マイクロコンピュータの実装基板がサポートする個別的な通信プロトコルに対してもインタフェースの確立を保証することができるマイクロコンピュータを提供することにある。
【０００９】
ＣＰＵの暴走によってもオンチップ不揮発性メモリの記憶情報消失を極力抑制することが可能なマイクロコンピュータを提供することにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
〔１〕本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１２】
すなわち、マイクロコンピュータのオンチップ不揮発性メモリには、ユーザ（マイクロコンピュータの使用者）の制御プログラム等を書きこむ第３領域（ユーザマット）以外に、第２領域（ユーザブートマット）を用意する。このユーザブートマットは、例えばユーザ専用の通信プロトコルを書きこむ記憶領域（マット）として使用し、そのマットからプログラムを実行するユーザブートモードも専用モードとして用意する。このユーザブートモードでは、ユーザブートマットは消去及び書き込み不可能にされる。
【００１３】
上記による作用効果は以下の通りである。（１）ユーザ専用の通信プロトコルを格納可能なユーザブートマットを用意したので、マイクロコンピュータが備える任意のインタフェースを流用することができる。（２）不揮発性メモリの消去及び書き込みにユーザ任意のインターフェースを採用する事が可能となったことにより、ユーザ実装ボードに必ずシリアルインターフェースを用意しなくてもよくなる。（３）ユーザブートマットとユーザマットを分けた事により、ユーザマットに専用通信プロトコル処理プログラムを書かなくても、消去及び書き込み用にユーザ任意の書きこみインターフェースが実現できるから、ユーザマットに格納して使用する制御プログラムの作成が容易になる。要するに、ユーザプログラムモードで使用する通信制御プログラムの消去防止などについて特別な考慮を払わなくてもよい。（４）ユーザブートマットから立ち上がるユーザブートモードでは、ハードウェア的にユーザブートマットを消去及び書きこみ不可にするので、暴走等でユーザブートマットの記憶情報が破壊される事はなく、デバック時にＣＰＵが暴走しても、外部インターフェースを制御するプログラムの破壊には至らないので、実装したマイクロコンピュータチップを取り外さなくても、オンボードでユーザマットの書換えを自由に行うことができる。
【００１４】
〔２〕本発明の更に詳しい第１の態様に係るマイクロコンピュータは、ＣＰＵと、電気的に消去及び書き込み可能な第１領域（ブートマット）、第２領域（ユーザブートマット）及び第３領域（ユーザマット）を有する不揮発性メモリと、動作モードの指示手段とを含む。動作モードの指示手段は、前記ＣＰＵに第１領域のプログラムを処理させると共に前記第１領域を消去及び書き込み不可能にする第１モード（ブートモード）、前記ＣＰＵに第２領域のプログラムを処理させると共に第１領域及び第２領域を消去及び書き込み不可能にする第２モード（ユーザブートモード）、及び前記ＣＰＵに第３領域のプログラムを処理させると共に第１領域及び第２領域を消去及び書き込み不可能にする第３モード（ユーザモード）、を指示し、例えばモード信号の入力回路等で実現される。
【００１５】
この態様のマイクロマイクロコンピュータは、第２領域及び第３領域に具体的なプログラムが記憶されていない状態、要するに、ユーザが第２及び第３領域に所望のプログラムを格納する処理に至る前の状態も意味している。マイクロコンピュータがシステムボードに実装されるときは、前記第２領域にシステムボードに固有のインタフェースを確立する通信プロトコル処理プログラムなどを格納し、第３領域にシステムボードを制御するユーザプログラムやチューニングデータなどを格納して、ユーザシステムの制御に利用される。オンボード書込みを行う場合には、ユーザブートモードのような第２モードを指定し、前記ＣＰＵに第２領域の通信プロトコル処理プログラム等を処理させ、システムボードに固有のインタフェースを確立させ、第３領域のユーザプログラムをバージョンアップし、或はチューニングデータの書換えを行うことができる。したがって、上記（１）〜（４）の作用効果を得ることができる。
【００１６】
〔３〕本発明の更に詳しい第２の態様に係るマイクロコンピュータは、ＣＰＵと、電気的に消去及び書き込み可能な第１領域（ブートマット）、第２領域（ユーザブートマット）及び第３領域（ユーザマット）を有する不揮発性メモリと、第１モード、第２モード又は第３モードを選択的に指定する指示手段と、を含む。前記ＣＰＵは、第１モードの指定により第１領域のプログラムを処理し、第２モードの指定により第２領域のプログラムを処理し、第３モードの指定により第３領域のプログラムを処理する。前記不揮発性メモリは、第１モードの指定により前記第２領域及び第３領域が消去及び書き込み可能にされ且つ第１領域が消去及び書き込み不可能にされ、第２モードの指定により第３領域が消去及び書き込み可能にされ且つ第１領域及び第２領域が消去及び書き込み不可能にされ、第３モードに指定により第３領域が消去及び書き込み可能にされ且つ第１領域及び第２領域が消去及び書き込み不可能にされる。この態様のマイクロコンピュータにおいても上記（１）〜（４）の作用効果を得ることができる。
【００１７】
前記第１領域にはマイクロコンピュータの外部とインタフェースを確立するための第１の通信制御プログラムを保有させてよい。前記第１領域は第１乃至第３の何れの動作モードにおいても消去及び書き込み不可能にされるから、マイクロコンピュータの製造過程などでＥＰＲＯＭライタなどの書き込み装置を用いて初期的に書込みされる。第１の通信制御プログラムはベーシックな調歩同期によるシリアルインタフェースプログラムであってよい。
【００１８】
前記第２領域にはマイクロコンピュータの外部とインタフェースを確立するための第２の通信制御プログラムを保有させてよい。前記第２領域は第１モードで消去及び書込み可能であるから、第２の通信制御プログラムはユーザ専用の通信プロトコル、即ちシステムボードに固有のインタフェース仕様（例えばＡＴＡＰＩ）を満足する通信制御プログラムであってよい。
【００１９】
前記第１領域は第１乃至第３の何れの動作モードにおいても消去及び書き込み不可能にされるから、第１領域に前記不揮発性メモリのための消去及び書き込み制御プログラムを保有させれば、それが不所望に消失する虞を未然に防止できる。
【００２０】
同様に、前記第１の領域には、前記消去及び書き込み制御プログラムの転送制御プログラムを保有させてよい。
【００２１】
前記ＣＰＵによる転送制御プログラムの処理により前記消去及び書き込み制御プログラムが転送されるＲＡＭをマイクロコンピュータに内蔵してよい。ＣＰＵは内蔵ＲＡＭ上で前記消去及び書き込み制御プログラムを実行可能になる。
【００２２】
ＣＰＵの暴走などによる不揮発性メモリの不所望な書換え防止の観点より、前記不揮発性メモリは、前記指示手段によるモード指定とは別に、外部端子から与えられる書き込み動作の指示を、消去及び書き込み動作を可能にするための必要条件に加えるとよい。
【００２３】
〔４〕前記第２態様に係るマイクロコンピュータにおけるＣＰＵのリセットベクタアドレス（リセット解除後に参照されるベクタアドレス）に着目すると、前記第１領域、第２領域及び第３領域の夫々における先頭アドレスをＣＰＵのアドレス空間上同一アドレスとし、前記ＣＰＵが用いる先頭アドレスを第２領域とするか第３領域とするかを排他的に指定する第１レジスタ手段（ＦＭＡＴＳ）をＣＰＵのアドレス空間に配置する構成を採用することができる。
【００２４】
この構成において第１モードの指定により第１領域のプログラムが実行されたとき、第１領域のプログラム自体が第１領域に対する消去及び書込みを行う処理ルーチンを含んでいなければ、第１領域に対する消去及び書込みは行われない。第１領域に格納すべきプログラムの開発及びそのプログラムの書込みをマイクロコンピュータの製造メーカで行うことを想定すれば、第１領域に対する消去及び書込みを不可能にすることは万全である。第１モードの指定により第１領域のプログラムを実行した後、第１レジスタ手段の設定に従って第２領域又は第３領域のプログラムを実行可能な状態に遷移することができる。この後、第２領域又は第３領域に格納したプログラムだけで第１領域のプログラムを実行可能な状態に戻ることは基本的に不可能であり、仮に戻ることを許容するハードウェアを持っていても第１領域の消去及び書き込みはやはり不可能である。
【００２５】
前記ＣＰＵのアドレス空間にＲＡＭを配置すると、ＣＰＵはＲＡＭ上にプログラムを転送して実行することが可能になる。
【００２６】
ＣＰＵがＲＡＭ上でプログラムを処理していることを条件に、前記第１レジスタ手段の設定変更を許可すれば、第１乃至第３領域の何れかの領域でプログラムをフェッチしている状態から別の領域でのプログラム実行の遷移を円滑化することができる。ＣＰＵがＲＡＭ上でプログラムを処理していることをバス制御手段（ＢＳＣ）が検出することを条件に、前記第１レジスタ手段の設定変更の許可するようにしてよい。
【００２７】
消去及び書き込み制御プログラムをＲＡＭへストアさせる動作に許可を与える情報がセットされる第２レジスタ手段（ＦＫＥＹ）を設け、前記不揮発性メモリは、この第２レジスタ手段の許可情報がリセットされることを、消去及び書き込み動作を可能にするための必要条件にするとよい。これによれば、消去及び書き込み制御プログラムをＲＡＭへ転送する必要のいないとき仮にＣＰＵが暴走しても、第２レジスタ手段のリセット状態により消去及び書き込み制御プログラムが誤ってＲＡＭに転送され、それが不所望に実行される確率を低減できる。また、消去及び書き込み制御プログラムをＲＡＭへ転送しているとき仮にＣＰＵが暴走しても、第２レジスタ手段のセット状態は消去及び書き込み動作の抑止条件になっているから、このとき消去及び書き込みプログラムが誤って実行開始される確率を低減できる。
【００２８】
〔５〕前記第２態様に係るマイクロコンピュータにおける消去及び書き込み制御プログラムに着目する。前記ＣＰＵのアドレス空間にＲＡＭを配置し、前記第１領域に消去及び書き込み制御プログラムを格納しておき、前記ＣＰＵは第１モードに応答して前記消去及び書き込み制御プログラムを前記ＲＡＭに転送制御し、転送先のＲＡＭから消去及び書き込み制御プログラムをフェッチして実行するとよい。マイクロコンピュータのユーザは消去及び書き込み制御プログラムを開発する必要はない。ＲＡＭ上で消去及び書き込み制御プログラムを実行すれば、第１モードにおいて第２領域及び第３領域に対する消去及び書込みを円滑化できる。
【００２９】
第１領域の消去及び書き込み制御プログラムを第２モードでも利用可能にするには、例えば、前記第２モードにおいてＣＰＵは、第３レジスタ手段（ＳＣＯ）の第１設定値に応答して、前記第１領域のプログラムを処理する状態に遷移し、前記消去及び書き込み制御プログラムをＲＡＭに転送制御して、第２領域のプログラムを処理する状態に復帰させるようにすればよい。
【００３０】
第１領域の消去及び書き込み制御プログラムを第３モードでも利用可能にするには、例えば、前記第３モードにおいてＣＰＵは、第３レジスタ手段（ＳＣＯ）の第１設定値に応答して、前記第１領域のプログラムを処理する状態に遷移し、前記消去及び書き込み制御プログラムをＲＡＭに転送制御して、第３領域のプログラムを処理する状態に復帰させるようにすればよい。
【００３１】
消去及び書き込み制御プログラムをＲＡＭへストアさせる動作に許可を与える情報として第２設定値がセットされる第２レジスタ手段（ＦＫＥＹ）を設け、前記不揮発性メモリは、この第２レジスタ手段の許可情報が第３設定値にリセットされることを、消去及び書き込み動作を可能にするための必要条件とし、前記第２のレジスタ手段に第２設定値がセットされる状態を第３レジスタ手段に第１設定値をセット可能にするための必要条件としてよい。要するに、ユーザが消去及び書き込みを実施したくない所で、プログラムが暴走し、消去及び書き込み制御プログラムが転送されると、ユーザプログラムを破壊する可能性が高くなる。これを回避するために、ユーザは、第３レジスタ手段に第１設定値をセットする前に、第２レジスタ手段に第２設定値をストアする。この第２設定値をストアしてない時は、第３レジスタ手段を第１設定値にセットすることはできない。第２レジスタ手段に第２設定値がストアされている時は、第３レジスタ手段を第１設定値にセットすることが可能となり、これによってプログラムの転送が可能となる。
【００３２】
消去及び書き込み制御プログラムが転送された後にプログラムが暴走した場合の事を考え、第２レジスタを使用する。基本的には、その他の条件により、ＣＰＵが暴走しても、消去及び書き込みが実施されないようになっているが、さらに信頼性を上げる為に、ユーザは、消去及び書き込みを実施する前に、第２レジスタ手段に第３設定値をセットする。この第３設定値をストアしてない時は、他の消去及び書き込み条件が誤ってイネーブルになっていたとしても、消去及び書込み動作は不可能なままにされる。
【００３３】
〔６〕不揮発性メモリの内、ユーザに開放される記憶領域に着目する。マイクロコンピュータは、ＣＰＵと、電気的に消去及び書き込み可能な不揮発性メモリとを含み、不揮発性メモリは第１メモリマット（ユーザブートマット）と第２メモリマット（ユーザマット）を備え、第１メモリマットと第２メモリマットは、レジスタで排他的に選択可能になっており、第１メモリマットが選択された場合は第１メモリマットに対する消去及び書き込み動作が抑止され、第２メモリマットが選択された場合はＲＡＭ上でのプログラム実行状態に遷移することを解除条件として消去及び書き込み動作が抑止される、ものである。これにより、プログラムを現に実行しているメモリマットが消去及び書込みされることによる不都合な状態の発生を未然に防止することができる。
【００３４】
〔７〕不揮発性メモリの記憶領域全体に着目する。マイクロコンピュータは、ＣＰＵと、電気的に消去及び書き込み可能な不揮発性メモリとを有し、前記不揮発性メモリは、外部とのインタフェースを確立するためにＣＰＵにより処理される通信制御プログラム（シリアル通信ＰＧＭ）を保有する第１領域（ブートマット）と、前記ＣＰＵによる通信制御プログラムの処理により外部とのインタフェースが確立されて消去及び書き込み可能にされる第２領域（ユーザブートマット）と、前記ＣＰＵによる通信制御プログラムの処理により外部とのインタフェースが確立されて消去及び書き込み可能にされ、且つＣＰＵによる第２領域のプログラムの処理により消去及び書き込み可能にされる第３領域（ユーザマット）と、を有する。
【００３５】
〔８〕更に別の観点によるマイクロコンピュータは、第１インタフェース（ＡＴＡＰＩ，ＳＣＳＩ，ＨＣＡＮ）を有する実装基板に実装されるべきマイクロコンピュータであって、中央処理装置と、前記第１インタフェースと異なる第２インタフェース（ＳＣＩ）を用いた通信プロトコル（ＵＡＲＴ）を確立するための第１通信処理プログラムが格納される第１記憶領域（ブートマット）と、前記第１インタフェースを用いた通信プロトコルを確立するための第２通信処理プログラムが格納される第２記憶領域（ユーザブートマット）と、所定の第１動作モードで前記中央処理装置によって実行される制御プログラムが格納される第３記憶領域（ユーザマット）とを有する不揮発性メモリとを有する。
【００３６】
前記第１記憶領域は、さらに、書き込み制御プログラムが格納され、このとき、前記第２記憶領域に格納される前記第２通信処理プログラムは、前記書き込み制御プログラム及び前記第１通信処理プログラムを前記中央処理装置によって実行させる第１書き込みモードによって、前記第２記憶領域に書き込まれる。
【００３７】
また、前記第３記憶領域に格納される前記制御プログラムは、前記第１書き込みモード、又は、前記第１記憶領域に格納された書き込み制御プログラム及び前記第２通信処理プログラムを前記中央処理装置によって実行させる第２書き込みモードの何れかによって、前記第３記憶領域に書き込まれる。
【００３８】
前記第１記憶領域は、さらに、消去制御プログラムが格納され、このとき、前記第２記憶領域に格納される前記第２通信処理プログラムは、前記消去制御プログラム及び前記第１通信処理プログラムを前記中央処理装置によって実行させる第１消去モードによって、前記第２記憶領域から消去可能にされる。
【００３９】
前記第３記憶領域に格納される前記制御プログラムは、前記第１消去モード、又は、前記第１記憶領域に格納された消去制御プログラム及び前記第２通信処理プログラムを前記中央処理装置によって実行させる第２消去モードの何れかによって、前記第３記憶領域から消去可能である。
【００４０】
更に上記とは異なる観点によるマイクロコンピュータは、中央処理装置と、第１インタフェース（ＳＣＳＩ）を用いた通信プロトコル（ＵＡＲＴ）を確立するための第１通信処理プログラムと書き込み制御プログラムが格納される第１記憶領域と、前記第１インタフェースと異なる前記第２インタフェース（ＡＴＡＰＩ，ＳＣＳＩ，ＨＣＡＮ）を用いた通信プロトコルを確立するための第２通信処理プログラムが格納される第２記憶領域と、所定の第１動作モードで前記中央処理装置によって実行される制御プログラムが格納される第３記憶領域とを有する不揮発性メモリと、を有する。
【発明の効果】
【００４１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００４２】
すなわち、ユーザの実装ボートに必ずシリアルインターフェースを作成しなくても、ユーザ専用の通信プロトコルで、オンボード書きこみが実施でき、暴走しても、ユーザ専用通信プロトコルコードを破壊する事はない。
【００４３】
ユーザマットには、ユーザの制御プログラムを作成すれば良く、プログラムの作成が容易となる。要するに、ユーザブートマットとユーザマットを分けた事により、ユーザマットに専用通信プロトコルを書かなくても、消去及び書き込み用にユーザ任意の書きこみインターフェースが実現できるから、ユーザマットに格納して使用する制御プログラムの作成が容易になる。したがって、ユーザプログラムモードで使用する通信制御プログラムの消去防止などについて特別な考慮を払わなくてもよい。
【００４４】
ユーザブートマットから立ち上がるユーザブートモードでは、ハードウェア的にユーザブートマットを消去及び書きこみ不可にするので、暴走等でユーザブートマットの記憶情報が破壊される事はなく、デバック時にＣＰＵが暴走しても、外部インターフェースを制御するプログラムの破壊には至らないので、実装したマイクロコンピュータチップを取り外さなくても、オンボードでユーザマットの書換えを自由に行うことができる。
【発明を実施するための最良の形態】
【００４５】
《マイクロコンピュータ》
図１には本発明の一例に係るデータ処理装置としてのマイクロコンピュータが示される。同図に示されるマイクロコンピュータ１は、特に制限されないが、単結晶シリコンのような１個の半導体基板（半導体チップ）にＣＭＯＳ集積回路製造技術により形成される。
【００４６】
マイクロコンピュータ１は、演算制御装置としての中央処理装置（ＣＰＵ）２、不揮発性メモリとしてのＲＡＭ３、バスステートコントローラ（ＢＳＣ）４、フラッシュメモリ１３、及びその他の内蔵回路を総称するその他モジュール７を有する。前記フラッシュメモリ１３は電気的に書き換え可能な不揮発性メモリの一例であり、フラッシュメモリモジュール５とフラッシュコントロールモジュール６によって構成される。前記その他モジュール７としてマスクＲＯＭ８、割り込みコントローラ（ＩＮＴＣ）９、タイマ（ＴＭＲ）１０、入出力ポート（Ｉ／Ｏ）１１、シリアルインタフェースコントローラ（ＳＣＩ）１２、その他インタフェースコントローラ１６、ＤＭＡＣ（Direct Memory Access Controller）１７及びシステムコントローラ１５等を有する。それら回路モジュールはバスＩＡＢ，ＩＤＢ，ＰＡＢ，ＰＤＢ，ＣＯＮＴを介してインタフェースされる。
【００４７】
前記バスＩＡＢ，ＩＤＢは情報伝送速度の比較的速い内部アドレスバス、内部データバスである。前記バスＰＡＢ，ＰＤＢは情報伝送速度が比較的遅い周辺アドレスバス、周辺データバスである。バスＣＯＮＴは、バスコマンド、バスアクセス制御信号、及びタイミング制御信号等を伝達する制御信号線を総称する。内部バスＩＤＢ，ＩＡＢと周辺バスＰＤＢ，ＰＡＢとの動作速度の相違若しくはアクセス対象に固有のアクセス形態の相違に対して前記ＢＳＣ４がアクセス動作タイミング等を最適制御すると共に、前記ＢＳＣ４はアクセスアドレスに応じたチップ選択若しくはモジュール選択制御等も行なう。
【００４８】
前記システムコントローラ１５には外部から複数ビットのモード信号１４及びリセット信号ＲＥＳなどが入力される。マイクロコンピュータ１のパワーオンリセット或はハードウェアリセットによりリセット信号ＲＥＳがローレベルにされると、そのローレベル期間においてマイクロコンピュータ１の内部でリセット動作が行われる。リセット信号ＲＥＳによるリセットの解除後、複数ビットのモード信号１４の状態に応じて、マイクロコンピュータ１の動作モードが決定される。ＣＰＵ２は、その動作モードに応じたプログラム領域のリセットベクタをリードし、そのアドレスの命令をフェッチし、フェッチした命令を解読して、命令実行を開始する。
【００４９】
ＲＡＭ３はＣＰＵ２のワーク領域若しくはデータ又はプログラムの一時記憶領域としても利用される。前記マスクＲＯＭ８はデータテーブルなどの記憶領域とされる。フラッシュメモリモジュール５はＣＰＵ２のプログラムやデータの記憶領域とされる。
【００５０】
割り込みコントローラ１０はマイクロコンピュータ１の外部から与えられる割込要求又はマイクロコンピュータ１内部の状態に応じて内蔵回路モジュールから発生される割込要求が入力され、割り込み優先レベル及び割り込みマスク等に従って、競合する割込み要求の調停と割込み優先レベルによる割込みマスク処理を行う。割り込みコントローラ１０は割込み要求の調停と割込みマスク処理との結果に従って、ＣＰＵ２に割込み信号ＩＲＱを与えるとと共に、受付ら得た割込み要求の割り込み要因に応ずる割り込みベクタアドレスをＣＰＵ２に与える。ＣＰＵ２は割り込みベクタアドレスによって指示されるプログラムに処理を分岐する。割込みコントローラ９はＣＰＵ２から割込みマスクデータ（ＩＭＳＫ）が与えられ、この割込みマスクデータ（ＩＭＳＫ）で示される割込み優先レベルよりも低い割込み要求の受付をマスクする。
【００５１】
Ｉ／Ｏ１１は外部アドレスバス及び外部データバスへの接続、ＳＣＩ１２の外部インタフェース、ＴＭＲ１０の外部イベント信号入力、そのインタフェースコントローラ１６の外部インタフェース等に用いられる。インタフェースコントローラ１６は例えば、ＡＴＡＰＩ又はＳＣＳＩなどのインタフェースに適用可能である。
【００５２】
図２には前記ＣＰＵ２の具体例が示される。ＣＰＵ２は、特に制限されないが、シフタＳＦＴ及び算術論理演算器ＡＬＵ等の演算器と、３２ビットの汎用レジスタＲ０〜Ｒ３１、プログラムカウンタＰＣ、ステータスレジスタＳＲ及びテンポラリレジスタＴＲ等のレジスタ群、そしてリードデータバッファＲＤＢ、ライトデータバッファＷＤＢ及びアドレスバッファＡＢなどのバッファ回路を実行部に有し、それらは第１乃至第３内部バスＩＢ１〜ＩＢ３のうちの所定の内部バスに接続される。ＣＰＵ２は命令制御部として、命令レジスタＩＲ、命令デコーダＩＤＥＣ、命令シーケンスロジックＩＮＴＬを有する。
【００５３】
前記リードデータバッファＲＤＢは例えば３２ビットのデータバスＩＤＢから入力したデータを内部バスＩＢ２に供給する。ステータスレジスタＳＲは割込みマスクデータＩＭＳＫのフィールドを有する。割込みマスクデータＩＭＳＫは割込みコントローラ９に与えられる。割込みコントローラ９は割込みマスクデータＩＭＳＫで示される割込み優先レベルよりも低い割込み要求をマスクする。
【００５４】
前記プログラムカウンタＰＣは次に実行すべき命令アドレスを保有し、その命令アドレスがアドレスバッファＡＢから内部アドレスバスＩＡＢに出力されると、ＲＡＭ３等の対応アドレスからリードされた命令が内部データバスＩＤＢを介して命令レジスタＩＲにフェッチされる。命令デコーダＩＤＥＣは命令レジスタＩＲの命令を解読して、ＣＰＵ２内部の制御信号を生成して、前記実行部による演算処理を制御する。命令シーケンスロジックＩＮＴＬは割込み信号ＩＲＱ等に応答して命令実行順序を変更する制御を行なう。
【００５５】
図１においてフラッシュメモリモジュール５は、メモリセルアレイ２０、Ｘデコーダ・ドライバ（ＸＤＥ・ＤＶ）２１、センスアンプアレイ（ＳＡＡ）２２、Ｙスイッチアレイ（ＹＳＷ）２３、Ｙデコーダ（ＹＤＥ）２４、入出力回路（ＩＦＢ）２５、電源回路（ＶＧＮ）２６、及びタイミングジェネレータ（ＴＧＮ）２７を有する。メモリセルアレイ２０はマトリクス配置されたフラッシュッメモリセル（図示せず）を有する。フラッシュメモリセルは、特に制限されないが、半導体基板若しくはウェル領域にソース、ドレインを有し、チャネルの上方に夫々絶縁膜を介してフローティングゲート及びコントロールゲートが形成されたスタック構造を有し、ソースをソース線に、ドレインをビット線に、コントロールゲートをワード線に接続して構成される。
【００５６】
フラッシュメモリセルは閾値電圧がプログラム可能にされ、プログラムされた閾値電圧に応じて情報を保持する。例えば、１個のフラッシュメモリセルが１ビットの情報を保持する場合に、相対的に高い閾値電圧状態を書き込み状態、相対的に低い閾値電圧状態を消去状態と称する。書き込み状態を得る為の書き込み動作は、特に制限されないが、コントロールゲートに１０Ｖ、ドレインに例えば５Ｖ、ソースおよび基板に例えば０Ｖを印加して、ドレイン・ソース間に電流を流し、これによってホットエレクトロン注入が起こり、フローティングゲートに電子が蓄積され、メモリセルの閾値電圧が高くなる。前記消去状態を得る為の消去動作は、特に制限されないが、コントロールゲートに１０Ｖ、ソース及び基板に例えば−１０Ｖを印加し、さらにドレインを例えば開放（フローティング）にして、フローティングゲートに蓄積された電子を基板に放出させ、これによってメモリセルの閾値電圧が低くなる。
【００５７】
前記入出力回路２５はバスＩＡＢ，ＩＤＢ，ＰＡＢ，ＰＤＢ，ＣＯＮＴとの間でアドレス、制御信号及びコマンドを入力すると共にデータの入出力を行なう。入出力回路２５に入力されたアドレス信号はＸＤＥＣ・ＤＶ２１及びＹＤＥ２４に入力されて夫々デコードされる。ＸＤＥＣ・ＤＶ２１はそのデコード結果に従ってワード線を選択する。ＹＤＥ２４はそのデコード結果に従ってＹＳＷ２３を介してビット線を選択する。ワード線選択及びビット線選択によってフラッシュメモリセルが選択される。読み出し動作では、前記選択されたフラッシュメモリセルの読み出しデータは、ＳＡＡ２２にて検出され、入出力回路２５を経てバスＰＤＢまたはＩＤＢに出力される。書き込み動作では、バスＰＤＢ又はＩＤＢから入出力回路２５に与えられる書き込みデータが入出力回路２５内の書き込みラッチ回路にラッチされ、ワード線選択されたメモリセルに対し、ラッチデータに従って書き込み・書き込み阻止が制御される。書き込み処理の前には予めブロック単位でフラッシュメモリセルに対する消去が行なわれる。
【００５８】
前記電源回路２６はクランプ回路やチャージポンプ回路などを有し、フラッシュメモリの書き込み・消去・読み出しなどの動作で使用する様々な電圧を供給する。前記タイミングジェネレータ２７は、制御バスＣＯＮＴを介して供給されるストローブ信号及びデータバスＰＤＢ，ＩＤＢを介して入力されるコマンドに基づいてフラッシュメモリの外部とのインタフェース制御を行なう。
【００５９】
図１において前記フラッシュコントロールモジュール６は、フラッシュメモリモジュール５に対する消去及び書込みやそのためのプログラム転送関係の各種制御レジスタ３０と制御論理回路２９とを有する。図１には制御レジスタとしてＦＣＣＳ，ＦＫＥＹ，ＦＭＡＴＳ，ライタモード関係レジスタ，書き込み消去関係レジスタが代表的に示されている。フラッシュメモリモジュール５に対する消去及び書込み動作の制御にはＲＡＭ３の記憶領域やＣＰＵ２の汎用レジスタも利用する。
【００６０】
《フラッシュメモリのメモリマット》
図３にはフラッシュメモリのメモリマットが例示される。フラッシュメモリモジュール５のメモリセルアレイ２０は、電気的に消去及び書き込み可能なブートマット（第１領域）Ｔｍａｔ、ユーザブートマット（第２領域）Ｕｍａｔ、ユーザマット（第３領域）Ｍｍａｔ、及びリペア及びトリミングマットＲｍａｔを有する。前記ブートマットＴｍａｔ、ユーザブートマットＵｍａｔ、及びユーザマットＭｍａｔは夫々ＣＰＵ２のアドレス空間における先頭アドレスである０番地（Ｈ’０００００００）をスタートアドレスとしてメモリ空間が割り当てられる。要するに、前記ブートマットＴｍａｔ、ユーザブートマットＵｍａｔ、及びユーザマットＭｍａｔはアドレス空間がオーバラップされ、前記アドレスデコーダＹＤＥＣ及びＸＤＥＣ・ＤＶはどのマットを利用するかの指示に応答してアドレスデコード論理が選択されることになる。どのマットを利用するかはモード信号１４で指示されるマイクロコンピュータの動作モードなどによって決まる。リペア及びトリミングマットＲｍａｔはメモリセルアレイにおける欠陥救済アドレスや回路の特性に応じた合わせ込みのためのトリミング回路の設定データが格納される。
【００６１】
《動作モード》
フラッシュメモリは、プロセス世代が進むにつれて、書き込み関係、消去関係のプログラムが複雑化しつつある。このような事情の下で、消去及び書き込み制御プログラムをユーザが作成しなければならないとすると、ユーザの負担が大きくなる。マイクロコンピュータ１においては、ユーザに消去及び書き込みプログラムを作成する負担を減らし、簡単な手続きで消去及び書き込みをどのモードでも実施できるように考慮されている。特に、フラッシュメモリ１３を消去及び書き込みするための高電圧パルス印加時間などのパラメータをチューニングしたり処理フローを変更したりするときに、ハードウェアに依存せずソフトウェアを使用して実施でき、ユーザに負担をかけず、簡単な手続きで消去及び書き込みを実施できる動作モードを用意している。その内容を簡単に説明すると、ブートマットＴｍａｔが保有している消去及び書き込み制御プログラムをどの動作モードでも参照できるようにし、しかも、ブートマットＴｍａｔのプログラムには、セキュリティに関する部分の記述もあるので、不都合のない範囲でユーザがそのプログラムを使用できるようにしてある。
【００６２】
マクロコンピュータ１の動作モードを詳述する。フラッシュメモリ１３に対する消去及び書き込みに着目すると、マイクロコンピュータ１は、ライタモード、ブートモード（第１モード）、ユーザブートモード（第２モード）、及びユーザモード（第３モード）を有する。特に制限されないが、前記モード信号１４は２ビットであり、システムコントローラ１５は、其の論理値の組み合わせを解読して、指示された動作モードが、前記ライタモード、ブートモード、ユーザブートモード、又はユーザモードの何れであるかを判定する。
【００６３】
前記ライタモードはＥＰＲＯＭライタのような書き込み装置を用いてフラッシュメモリ１３の消去及び書き込みを実施可能にする動作モードである。ライタモードが指定されると、リセット処理後、ＣＰＵ２はブートマットＴｍａｔの先頭番地からベクタフェッチを行ってプログラムの実行を開始する（ブートマットから起動）。そして、ライターモードに必要な処理として、コマンド判定プログラムや消去及び書き込み関係のプログラムを全てＲＡＭ３に転送する。その後に、ＣＰＵ２は、ＲＡＭ３に転送されたプログラムの実行に移行し、フラッシュメモリ１３はＥＰＲＯＭライタによって消去及び書き込み可能にされる。このライタモードは、オフボード（マイクロコンピュータがシステムボードに実装されていない状態）で前記ユーザマットＭｍａｔ及びユーザブートマットＵｍａｔに任意のユーザ制御プログラム等を格納するのに適している。
【００６４】
前記ブートモードは、マットＴｍａｔ，Ｕｍａｔ、Ｍｍａｔの全てを消去し、ＳＣＩ１２を使用して書き込みを実施可能にする動作モードである。このブートモードは前記ＣＰＵ２にブートマットＴｍａｔのプログラムを処理させると共に当該ブートマットＴｍａｔを消去及び書き込み不可能にする。具体的には、ブートモードが指定されると、リセット処理後、ＣＰＵ２はブートマットＴｍａｔの先頭番地からベクタフェッチを行ってプログラムの実行を開始する。そして、ブートモードに必要な処理として、ブートマットＴｍａｔ内の消去及び書き込み関係のプログラム及びコマンド判定プログラムをＲＡＭ３に転送する。転送終了とその他の処理終了後に、ＣＰＵ２はＲＡＭ３上のプログラム実行に移る。ＲＡＭ３上のプログラム実行でマットＵｍａｔ、Ｍｍａｔの全てを消去した後に、コマンド判定プログラムを起動し、ＳＣＩ１２を利用して書き込みが実施可能になる。このブートモードは、シリアル通信インタフェースを備えたオンボードで、前記ユーザマットＭｍａｔ及びユーザブートマットＵｍａｔに任意のユーザ制御プログラム等を格納するのに適している。
【００６５】
前記ユーザブートモードは、前記ＣＰＵ２にユーザブートマットＵｍａｔのプログラムを処理させてユーザ任意のインタフェースを使用した消去及び書き込みを実施可能とし、ブートマットＴｍａｔ及びユーザブートマットＵｍａｔに対しては消去及び書き込みを不可能にする動作モードである。具体的には、ユーザブートモードは、ブートマットＴｍａｔから起動し、ＣＰＵ２がブートマットＴｍａｔ内のプログラムを実行すると共にＲＡＭ３へユーザブートマット切換えプログラムの転送を行う。その後に、ＣＰＵ２はＲＡＭ３上のプログラム実行に移る。ＣＰＵ２によるＲＡＭ３上のプログラム実行で、ＣＰＵ２のアドレス空間で見えるフラッシュメモリ１３上のマットをデフォルトのユーザマットＭｍａｔからユーザブートマットＵｍａｔへ切換え、ユーザブートマットＵｍａｔのベクタアドレスを読み出した後にその領域へジャンプする。セキュリティが掛かっている場合は、ユーザマットＭｍａｔの消去を実施した後にジャンプを実施する。書き込みを実施する時は、後述するＳＣＯモードを使用して必要な消去及び書き込みプログラムをブートマットＴｍａｔからＲＡＭ３にダウンロードした後、その消去及び書き込み制御プログラムを利用して、ユーザマットＭｍａｔに対する書き込みを行う。要するに、ユーザブートマットＵｍａｔにユーザ専用のインターフェースプログラムを用意して、ユーザの実装ボートに合った書き込みデータ転送が実現可能となる。このユーザブートモードは、ユーザのシステムボードが備えているオンボードインタフェースを使用して、ユーザの制御プログラムなどをユーザマットＭｍａｔに書き込むのに適している。この動作においてユーザブートマットＵｍａｔの消去は阻止される。したがって、ユーザのシステムボードがシリアルインタフェースを備えず、オンボードでブートモードを利用できなくても、これに代えて、ユーザのシステムボードが備えているオンボードインタフェースを介する書き込みをを保証することができる。
【００６６】
前記ユーザモードはユーザマットＭｍａｔが保有するプログラムを利用して消去及び書き込みを実施可能にする動作モードであり、ブートマットＴｍａｔ及びユーザブートマットＵｍａｔの消去及び書き込みについては不可能にする。詳しくは、ＣＰＵ２をユーザマットＭｍａｔから起動し、ユーザマットＭｍａｔ上のプログラムが実行される。特に、ユーザが必要な時に、後述するＳＣＯビットをイネーブルにするとブートマットＴｍａｔとユーザマットＭｍａｔが自動的に切り替わり、ブートマットＴｍａｔのある番地からプログラムがスタートし、ブートマットＴｍａｔ上の消去及び書き込み制御プログラムがＲＡＭ３に転送され、プログラムの転送が終了したらユーザマットＭｍａｔとブートマットＴｍａｔが自動的に切り替えられて、ユーザの処理へ復帰し、ユーザのプログラムで前記消去及び書き込み制御プログラムが利用されて、ユーザマットＭｍａｔに対する消去及び書き込みが可能にされる。要するに、ユーザプログラムモードでは、後述するＳＣＯモードを使用してブートマットＴｍａｔ上の消去及び書き込み制御プログラムをＲＡＭ３上に転送しそのプログラムを利用可能にしている。このユーザモードは、オンボードでユーザ制御プログラム実行中にユーザマットＭｍａｔ上のパラメータなどを書き換えるのに適している。
【００６７】
図４の（Ａ），（Ｂ）には各マットの各動作モードによるアクセス態様が示される。同図に示されるアクセス態様は上記動作モードで説明したアクセス態様を整理したものである。同図からも明らかなように、リペア及びトリミングマットＲｍａｔとブートマットＴｍａｔは何れの動作モードにおいても消去及び書き込み不可能にされ、ユーザブートマットＵｍａｔはユーザ制御プログラムが実行可能にされるユーザブートモード及びユーザモード（ユーザプログラムモード）において消去及び書き込み不可能にされる。このユーザブートモードは、ユーザのシステムボードが備えているオンボードインタフェースを使用して、ユーザの制御プログラムなどをユーザマットＭｍａｔに書き込むのに適している。この動作においてユーザブートマットＵｍａｔの消去は阻止される。したがって、ユーザのシステムボードがシリアルインタフェースを備えず、オンボードでブートモードを利用できなくても、これに代えて、ユーザのシステムボードが備えているオンボードインタフェースを介する書き込みを保証することができる。尚、図４においてアクセスとはリードアクセスを意味し、記号△はブートマットに格納されたプログラムにしたがってリードアクセス可能であることを意味し、ユーザ制御プログラムにしたがって任意にリードアクセスできることは意味しない。
【００６８】
図５にはＣＰＵが実行するプログラムの所在と実行による作用を模式的に示す。図５ではＣＰＵ２の図示は省略してあり、ＣＮ１はブートマットＴｍａｔからＲＡＭ３に転送された消去及び書き込み制御プログラム等をＣＰＵ２が解読した結果の制御信号群を仮想的に示す。ＣＮ２はブートマットＴｍａｔからＲＡＭ３に転送されたシリアルインタフェース制御プログラムをＣＰＵ２が解読した結果の制御信号群を仮想的に示す。ＣＮ３はユーザブートマットＵｍａｔのユーザインタフェース制御プログラムをＣＰＵ２が解読した結果の制御信号群を仮想的に示す。ＣＮ４はユーザマットＭｍａｔのユーザインタフェース制御プログラムをＣＰＵ２が解読した結果の制御信号群を仮想的に示す。制御信号ＣＮ３，ＣＮ４はユーザブートマットＵｍａｔ、ユーザマットＭｍａｔから直接フェッチしたプログラムの解読結果であるように図示されているが、一旦ＲＡＭ３に転送され、ＲＡＭ３からフェッチしたプログラムの解読結果であってよい。Ｓｉｇ１〜Ｓｉｇ４はシステムコントローラ１５によるリセット解除後のモード信号１４の解読結果を意味し、Ｓｉｇ１はブートモード、Ｓｉｇ２はユーザブートモード、Ｓｉｇ３はユーザモード、Ｓｉｇ４はライトモードを意味する。それら信号Ｓｉｇ１〜Ｓｉｇ４は実際にはＣＰＵ２にも供給されるがここではその状態の図示を省略してある。
【００６９】
モード信号１４にてブートモードが指示されると、信号Ｓｉｇ１に応答してフラッシュコントロールモジュール６によりブートマットＴｍａｔの消去及び書き込み制御プログラム及びシリアル通信制御プログラム等がＲＡＭ３に転送される（径路Ｐ１）。ＣＰＵ２びよる其のシリアル通信制御プログラムの解読結果（ＣＮ２）にしたがってホスト装置ＨＳＴ１にオンボードのシリアルインタフェースから書き込みデータがＲＡＭ３に取り込まれ（径路Ｐ２）、ＣＰＵ２による消去及び書き込み制御プログラムの解読結果（ＣＮ１）にしたがってフラッシュメモリ１３が消去され、ＲＡＭ３上の書込みデータを用いてユーザブートマットＵｍａｔ及びユーザマットＭｍａｔに対してユーザ制御プログラムの書込みが行われる（経路Ｐ３，Ｐ４）。
【００７０】
モード信号１４にてユーザブートモードが指示されると、信号Ｓｉｇ２に応答してフラッシュコントロールモジュール６によりブートマットＴｍａｔからマット切換え制御プログラム等がＲＡＭ３に転送され（径路Ｐ１）、ユーザブートマットＵｍａｔに切換えられ、ユーザブートマットＵｍａｔの先頭ベクタをフェッチして実行する。書き込みを実施する時は、消去及び書き込みプログラムをブートマットＴｍａｔからＲＡＭ３にダウンロードする。ユーザブートマットＵｍａｔが保有するユーザインタフェース制御プログラムの解読結果（ＣＮ３）にしたがってホスト装置ＨＳＴ２にオンボードのユーザインタフェースから書き込みデータがＲＡＭ３に取り込まれ（径路Ｐ５）、ＣＰＵ２による消去及び書き込み制御プログラムの解読結果（ＣＮ１）にしたがってフラッシュメモリ１３が消去され、ＲＡＭ３上の書込みデータを用いてユーザマットＭｍａｔに対してユーザ制御プログラムやユーザデータの書込みが行われる（経路Ｐ３，Ｐ４）。ユーザインタフェースは例えばその他にインタフェースコントローラ１６により実現されるＡＴＡＰＩ用インタフェースなどとされる。尚、ユーザブートマットＵｍａｔに格納されるユーザインタフェース制御プログラムはブートマットＴｍａｔに格納されたものと類似若しくは別のシリアルインタフェース制御プログラムであってもよい。
【００７１】
モード信号１４にてユーザモードが指示されると、信号Ｓｉｇ３によりそれがフラッシュコントロールモジュール６に伝達され、書き込みを実施する時は、消去及び書き込みプログラムをブートマットＴｍａｔからＲＡＭ３にダウンロードする。ユーザマットＭｍａｔが保有するユーザインタフェース制御プログラムの解読結果（ＣＮ４）にしたがってホスト装置ＨＳＴ２にオンボードのユーザインタフェースから書き込みデータがＲＡＭ３に取り込まれ（径路Ｐ５）、ＣＰＵ２による消去及び書き込み制御プログラムの解読結果（ＣＮ１）にしたがってフラッシュメモリ１３が消去され、ＲＡＭ３上の書込みデータを用いてユーザマットＭｍａｔに対してユーザ制御プログラムやユーザデータの書込みが行われる（経路Ｐ３，Ｐ４）。尚、ユーザマットＭｍａｔに格納されるユーザインタフェース制御プログラムはブートマットＴｍａｔに格納されたものと類似若しくは別のシリアルインタフェース制御プログラムであってもよい。
【００７２】
特に図示はしないが、マイクロコンピュータ１の比較例として、ユーザブートマットＵｍａｔ及びユーザブートモードを備えていないマイクロコンピュータを想定する。この場合、ユーザブートマットＵｍａｔに格納したユーザインタフェースプログラムをユーザマットＭｍａｔに格納しておけば、前記マイクロコンピュータ１と同じように、ホスト装置ＨＳＴ２のオンボードのユーザインタフェースを介してプログラムやデータをユーザマットＭｍａｔに書込み又は書換えを行なうことができる。但し、マクロコンピュータ１もそうであるが、ユーザマットＭｍａｔに対しては自由な書換えが許容される関係上、ユーザマットＭｍａｔに格納されたユーザインタフェースプログラムは消去される虞がある。消去されたとき、ホスト装置ＨＳＴ２がブートモードで利用可能なシリアルインタフェースをオンボードで備えていなければ、その比較例に係るマイクロコンピュータは最早ホスト装置ＨＳＴ２とはオンボードで情報を入出力できなくなる。
【００７３】
上記動作モードを有するマイクロコンピュータ１によれば、以下の作用効果を得ることができる。（１）ユーザ専用の通信プロトコルを格納可能なユーザブートマットＵｍａｔを用意したので、マイクロコンピュータ１が備える任意のインタフェースをフラッシュメモリ１３の消去及び書込みに流用することができる。（２）フラッシュメモリ１３の消去及び書き込みにユーザ任意のインターフェースを採用する事が可能となったことにより、ホスト装置ＨＳＴ２に必ずシリアルインターフェースを用意しなくてもよい。（３）ユーザブートマットＵｍａｔとユーザマットＭｍａｔを分けた事により、ユーザマットＭｍａｔに専用通信プロトコルを書かなくても、消去及び書き込み用にユーザ任意の書きこみインターフェースが実現できるから、ユーザマットＭｍａｔに格納して使用する制御プログラムの作成が容易になる。要するに、ユーザプログラムモードで使用する通信制御プログラムの消去防止などについて特別な考慮を払わなくてもよい。（４）ユーザブートマットＵｍａｔから立ち上がるユーザブートモードでは、ハードウェア的にユーザブートマットＵｍａｔを消去及び書込み不可にするので、暴走等でユーザブートマットＵｍａｔの記憶情報が破壊される事はなく、デバック時にＣＰＵ２が暴走しても、外部インターフェースを制御するプログラムの破壊には至らないので、実装したマイクロコンピュータチップを取り外さなくても、オンボードでユーザマットＭｍａｔの書換えを自由に行うことができる。
【００７４】
《消去及び書き込みのプロテクト》
図６にはフラッシュメモリ１３の消去及び書き込みに対するプロテクトのための論理構成が例示される。同図の論理は正論理とされ、その構成はフラッシュコントロールモジュール６によって実現される。
【００７５】
フラッシュメモリに対する消去及び書き込み動作は、書込み消去関係レジスタ群３０Ａの初期値に対して、処理に必要な制御データを設定することによって可能にされる。書込み消去関係レジスタ群３０Ａに対する制御データの設定は制御ビットＳＷＥが論理値“１”で可能になる。要するに、制御ビットＳＷＥが論理値“１”にされない限り、フラッシュメモリ１３の消去及び書込みは不可能にされる。
【００７６】
制御ビットＳＷＥを論理値“１”にする第１の条件は外部端子ＰｆｗｅによりレジスタＦＣＣＳのイネーブルビットＦＷＥを論理値“１”にセットすることである。
【００７７】
第２の条件は、ナンドゲート４０の出力を論理値“１”とする動作モードの選択状態とフラッシュメモリのマット選択状態を得ることである。即ち、動作モードがテストモード（ＴＥＳＴＴＭ＝１）、ライタモード（ＷＲＴＭ＝１）、又はブートモード（ＢＯＯＴ＝１）であること。或は、ユーザモード又はユーザブートモードにおいてユーザブートマットＵｍａｔが選択されていないこと（ＵＭＡＴＳＥＬ＝０）である。尚、テストモードとはマイクロコンピュータの製造メーカがデバイステストに用いる動作モードであり、全ての動作が可能にされるが、ユーザには非公開な動作モード、即ち、ユーザによる設定が不可能な考慮が払われている。
【００７８】
前記信号ＵＭＡＴＳＥＬはレジスタＦＭＡＴＳ及び当該レジスタＦＭＡＴＳの設定値に対するＡＡ判定回路４１の判定結果とされる。レジスタＦＭＡＴＳは、ユーザマットＭｍａｔとユーザブートマットＵｍａｔを切換えるときに使用する。このレジスタＦＭＡＴＳを使用することによって、ＣＰＵ２のオペレーションをユーザマットＭｍａｔからユーザブートマットＵｍａｔへ遷移する事が可能になる。ただし、マットの切換えには制限事項がある。即ち、レジスタＦＭＡＴＳのユーザブートマット選択ビットをセットできる条件は、ＣＰＵ２のオペレーションがＲＡＭ３のプログラムを実行していることである。この条件は、ＣＰＵ２による命令フェッチのアドレスエリアがＲＡＭ３のアドレスエリアであることをＢＳＣ４が検出して判定する。レジスタＦＭＡＴＳの初期値はＨ’ＡＡ以外であり、ユーザマット選択状態を示す。Ｈ’ＡＡによってユーザブートマット選択状態を示す。図７にはＣＰＵ２のオペレーション（ＯＰ）がユーザマットＭｍａｔとユーザブートマットＵｍａｔとの間で切換えられるときの状態遷移が示される。
【００７９】
この第２の条件により、ユーザブートマットＵｍａｔのアクセスは、どのモードでも可能であるが、書き込み／消去は、ライターモードとブートモード（及びテストモード）のみ可能になる。
【００８０】
第３の条件はレジスタＦＫＥＹが消去及び書き込み許容値に設定されていることである。前記レジスタＦＫＥＹは、電圧降下やノイズ等が原因で、プログラムが暴走し、それによるプログラムの破壊を防ぐために設けられている。消去及び書込み制御プログラム（書き込み／消去プログラム）が転送された後にプログラムが暴走した場合を考慮してレジスタＦＫＥＹを使用する。基本的には、端子Ｐｆｗｅと制御ビットＳＷＥにより、ＣＰＵ２が暴走しても、書き込み／消去が実施されないようになっているが、さらに信頼性を上げる為にユーザは、書き込み／消去を実施する前に、レジスタＦＫＥＹに“５Ａ”の値をセットする。この“５Ａ”をストアしてない時は、ＦＷＥがイネーブル（“１”）になっていたとしても、制御ビットＳＷＥをセットする事ができないようになる。レジスタＦＫＥＹに“５Ａ”がストアされている状態は、Ａ５，５Ａ判定回路４２で検出され、信号ｆｗｅｍｋｐ＝１にされ、これによって、ＳＷＥが論理値“１”にセット可能にされる。
【００８１】
前記レジスタＦＫＥＹは上述の書き込み／消去プログラム関係として機能される他に、プログラム転送関係として機能される。即ち、フラッシュッメモリの消去及び書き込み制御プログラムをブートマットＴｍａｔに格納し、ブートモードの他に、ユーザブートモード及びユーザモードで利用可能にする関係上、ブートマットＴｍａｔの当該消去及び書き込み制御プログラムをＲＡＭ３に転送させるため、レジスタＦＣＣＳに制御ビットＳＣＯを設け、制御ビットＳＣＯをイネーブルすると、自動的にユーザマットＭｍａｔとブートマットＴｍａｔが切り替えれ、ブートマットＴｍａｔから消去及び書込み制御プログラムがＲＡＭ３に転送され、処理終了後にリターン命令が実行されてユーザの処理へ復帰するようになっている。このとき、ユーザが書き込み／消去を実施したくない所で、プログラムが暴走し、書き込み／消去プログラムが転送されると、ユーザプログラムを破壊する可能性が高くなる。これを回避するために、レジスタＦＫＥＹを使用する。ユーザは、制御ビットＳＣＯをセットする前に、このレジスタＦＫＥＹに“Ａ５”をストアする。この“Ａ５”をストアしてない時は、制御ビットＳＣＯをセットする事はできない。また、ＣＰＵ２がＲＡＭ３上のプログラムをオペレーションしていることも条件にされる。“Ａ５”がストアされ、ＲＡＭ３上でＣＰＵ２のオペレーションが行われている時は、ＳＣＯビットがセット可能となり、消去及び書き込み制御プログラムをブートマットＴｍａｔからＲＡＭ３へ転送することが許容される。
【００８２】
上述のように、フラッシュメモリ１３に対する消去及び書込みに関しては、レジスタＦＫＥＹでプログラムの転送と消去書き込みを排他制御しているので、プログラムが転送されない状態で暴走した場合は、書き込み／消去が実行され難い。
【００８３】
《プログラムモード判定処理》
ここで、前記各動作モードにおける処理の詳細を説明する。図８にはプログラムモード判定処理のフローチャート１３が例示される。ＳＣＯモードとはユーザモードにおいてフラッシュメモリを消去及び書込みするときの動作モードを意味する。ブートモード、ライタモード、ユーザブートモード、ユーザモードは夫々対応するモード端子をセットしてリセット解除すればよい。ＳＣＯモードは、ユーザモード中において制御ビットＳＣＯに論理値“１”をセットして設定される。設定された動作モードに応じてモード判定レジスタにモード情報がセットされる。
【００８４】
動作モードが設定されると、ＣＰＵ２はブートマット内のプログラムを実行する（ブートマット内ＯＰ）。ブートモード、ライタモード、ユーザブートモードはブートマット内の先頭アドレスからベクタをフェッチしてプログラム実行を開始する（Ｓ１）が、ＳＣＯモードの場合にはブートマット内の先頭以外の所定番地、例えば優先度の最も高い例外処理であるユーザブレーク番地から処理を開始する。
【００８５】
処理開始すると、モード判定用レジスタをリードし（Ｓ２）、その内容を判定し、消去及び書込み制御プログラムの転送など、必要な前処理を行なって（Ｓ２〜Ｓ５）、対応する処理に進む（Ｓ６〜Ｓ９）。尚、フローチャートの各処理欄に示される“ｕｓｅｒ”はその処理がユーザにより定義されたプログラムに基づいて行われる処理であることを意味し、処理欄に示される“ｂｏｏｔ”はその処理がブートマットＴｍａｔのプログラムに基づいて行われる処理であることを意味する。
【００８６】
《ライタモード処理》
図９にはライタモード処理のフローチャートが例示される。ライタモードが設定されたときは、図８に示されるようにライタモード制御プログラムがＲＡＭ３に転送されている。先ず、ライタモードにおいて消去及び書込みに利用されるコマンド・データレジスタ（ＣＤＬ）、フラグレジスタ（ＦＬＧ）がクリアされ、コマンドフラグ（ＣＤＦ）に“１”がセットされ（Ｓ１１）、電源が落ちまで、フラグレジスタ（ＦＬＧ）及びコマンドフラグ（ＣＤＦ）の状態を参照しながら、ＥＰＲＯＭライタからコマンド・データレジスタ（ＣＤＬ）にセットされるコマンド及び書込みデータにしたがって、ユーザマットＭｍａｔ及びユーザブートマットＵｍａｔに対する消去（Ｓ１４，Ｓ１５）及び書込み（Ｓ１２，Ｓ１３）が行われる。ライトモード処理はＲＡＭ３内オペレーションとされる。
【００８７】
《ブートモード処理》
図１０にはブートモード処理のフローチャートが例示される。先ず、オンボードのシリアルインタフェースとＳＣＩ１２との送受信を確立し（Ｓ２０）、マイクロコンピュータ１の発振周波数等の必要なパラメータをダウンロードして設定する（Ｓ２１）。次いで、ホスト装置からのコマンドを判定し、マイクロコンピュータの製品名や消去ブロック数などのステータスをホスト装置に返し（Ｓ２２）、コマンド判定プログラムと消去プログラムをＲＡＭ３に転送して（ＳＣＯモードを利用することも可能）、ＲＡＭ３上でのオペレーションに遷移する（Ｓ２３）。そして、ユーザマットＭｍａｔ及びユーザブートマットＵｍａｔを全面消去した（Ｓ２４）後、コマンドに応答しながら、ユーザマット書込み処理（Ｓ２５）、ユーザブートマット書込み処理（Ｓ２６）、書込みベリファイ処理（Ｓ２７，Ｓ２８）等を行なう。
【００８８】
《ユーザブートモード処理》
図１１にはユーザブートモード処理のフローチャートが例示される。ユーザブートモードでは、特に制限されないが、ブートマットＴｍａｔの先頭ベクタからオペレーションを開始し、ユーザブートマットＵｍａｔへの切換えプログラムをブートマットＴｍａｔからＲＡＭ３に転送し（Ｓ３０）、ＲＡＭ３上でのオペレーションに遷移し（Ｓ３１）、レジスタＦＭＡＴＳにＨ’ＡＡをセットして、レジスタＦＭＡＴＳによるユーザマット指示状態（初期値）をユーザブートマットに切換える（Ｓ３２）。ここで、ユーザブートマットＵｍａｔのエリア設定に誤りが有るかを判定し（Ｓ３３，Ｓ３４）誤りが無ければユーザブートマットＵｍａｔの先頭ベクタアドレスをリードし（Ｓ３５）、リードしたベクタアドレスにサブルーチンジャンプする（Ｓ３６）。ＣＰＵ２はユーザブートマットＵｍａｔ上のプログラムを実行し、先ず、ユーザ定義の通信を確立し、書込みに必要なユーザプログラムをＲＡＭ３に転送する（Ｓ３７）。ＣＰＵ２はＲＡＭ３上のプログラム実行に遷移し（Ｓ３８）、再度レジスタＦＭＡＴＳの操作を行なって、処理対象マットをユーザブートマットＵｍａｔからユーザマットＭｍａｔに切換える（Ｓ３９）。そして、ＲＡＭ３上のユーザプログラムを実行して制御ビットＳＣＯを“１”にセットし（Ｓ４０）、ＳＣＯモード処理に遷移して、ブートマットＴｍａｔ内の消去及び書き込み制御プログラムをＲＡＭ３に転送させ（Ｓ４１）、転送された消去及び書き込み制御プログラムを用いた書込み／消去の処理が行なわれる（Ｓ４２）。
【００８９】
《ユーザモード処理》
図１２にはユーザモード処理のフローチャートが例示される。ユーザモードが指定されると、ユーザマットＭｍａｔの先頭からベクタフェッチが行なわれて（Ｓ５０）、ユーザの制御プログラムが実行される（Ｓ５１）。ユーザプログラムの実行中にユーザマットＭｍａｔへの書込みが必要になると、ＲＡＭ３上でオペレーションを行なってＳＣＯビットを“１”にセットし（Ｓ５２）、ＳＣＯモード処理に遷移して、ブートマット内の消去及び書き込み制御プログラムをＲＡＭ３に転送させ（Ｓ５３）、転送された消去及び書き込み制御プログラムを用いた書込み／消去の処理が行なわれる（Ｓ５４）。
【００９０】
《書き込み／消去処理》
図１３には前記ステップＳ４２，Ｓ５４の書き込み／消去処理のフローチャートが例示される。ステップＳ６０〜Ｓ６３までが書き込み／消去の初期化処理である。ここでは、消去及び書き込み制御プログラムはマイクロコンピュータ１の製造メーカにより予めブートマットＴｍａｔに保持されている。要する、そのプログラムはユーザ固有の条件について規定しない。例えば消去電圧パルスや書き込み電圧パルスの印加時間はフラッシュッメモリセルの特性に応じて決まるが、そのパルス印加時間はマイクロコンピュータ１の動作クロック信号で制御する必要があり、其のために必要な動作周波数のデータが制御レジスタＦＰＥＦＥＱに設定される（Ｓ６０）。制御レジスタＦＰＥＦＥＱは、特に制限されないが、ＣＰＵ２の汎用レジスタＲ４が割当てられる。
【００９１】
消去電圧パルスや書き込み電圧パルス及びベリファイ動作のサイクル中にユーザの処理が完全に断たれる不都合を解消するためのユーザブランチ処理（詳細は後述）のための分岐先処理のアドレスをレジスタＦＵＢＲＡに設定する（Ｓ６１）。
【００９２】
この後、初期化プログラム領域にサブルーチンジャンプし（Ｓ６２）、初期化プログラムを実行し（Ｓ６４）、上記周波数やユーザブランチアドレスといった初期設定の内容にしたがって、消去及び書き込みのためのパラメータが消去及び書込み制御プログラム上に自動的に設定される。
【００９３】
次に、消去及び書き込みのハードプロテクトを解除するために、端子Ｐｆｗｅを介して制御ビットＦＷＥを論理値“１”にセットしてハードプロテクトを解除し、ユーザプログラムの実行に遷移する（Ｓ６４）。このオペレーション状態で、書込みデータを用意し（Ｓ６５）、ユーザが実施したい書き込み／消去を実行する（Ｓ６６）。ステップＳ６５，Ｓ６６の処理はユーザが目的とする処理が終了されるまで繰返される。
【００９４】
《ユーザブランチ》
図１３の書き込み消去処理を更に詳述しながらユーザブランチ処理について説明する。
【００９５】
図１４は図１３の書き込み処理に着目した概略フローチャートである。書き込み処理は、ブートマットＴｍａｔからソースコード（消去及び書き込み制御プログラム等）をＲＡＭ３に転送する処理（Ｔ１）、書き込み初期化の実行（Ｔ２）、及び書き込み実行（Ｔ３）に大別される。
【００９６】
転送処理（Ｔ１）は、転送を実施したいプログラムを選択し、レジスタＦＫＥＹをセットし制御ビットＳＣＯをイネーブルにする。これを実施する事によって、ブートマットから自動的に転送プログラムがスタートする。プログラムは、ＲＡＭ３のスタートアドレスから必要な領域だけプログラムが転送される。この時に初期化プログラムも転送される。
【００９７】
初期化の実行（Ｔ２）では、初期化プログラムが実行され、転送されたプログラムに対し、動作周波数に依存するウェイトタイムループ回数の設定やユーザブランチアドレスが設定される。
【００９８】
書き込み実行（Ｔ３）では、書き込みを実施する前に、どの様な方式でも良いが、書き込みデータをＲＡＭ３上に転送する。このときには、ある決まった順序でデータを並べる必要がある。転送領域は、ユーザが任意に設定する事が可能で、必要な手続きを実施し、転送を実施した後、プログラムのある決まった番地にサブルーチンジャンプを実施する。このサブルーチンジャンプを実施する事で書き込みが実行される。
【００９９】
図１５にはＲＡＭ３への転送処理（Ｔ１）の詳細が例示される。先ずレジスタＦＫＥＹを“Ａ５”に設定し（Ｔ１０）、転送したいソースコードを選択する（Ｔ１１）。ソースコードの選択は、書き込み消去関係レジスタ３０Ａに対して行われる。選択可能なソースコードは、特に制限されないが、書き込み及び書き込みベリファイプログラム、消去及び消去ベリファイプログラム等である。そして制御ビットＳＣＯが“１”にセットされて、選択されたソースコードがＲＡＭ３の所定エリアに転送される（Ｔ１２）。制御ビットＳＣＯのイネーブルを実施する時は、ＣＰＵ２はフラッシュッメモリ１３の外でオペレーションを実施している必要がある。これは、オペレーション可能なマットがユーザマットＭｍａｔからブートマットＴｍａｔに変化してしまうためにプログラムが暴走するからである。制御ビットＳＣＯのイネーブルを実施したら、自動的にブートマットＴｍａｔからプログラムがスタートする。このブートプログラムは、汎用レジスタの値をソフトウェア処理でスタックに退避する。ユーザの処理に戻るときは、リターン命令でユーザの処理に復帰する。この復帰を実施する前にブートマットＴｍａｔ内の転送プログラムは、退避を実施した汎用レジスタの値を復帰する。最後に転送が正常に終了したかの判別が行われる（Ｔ１３）。
【０１００】
図１６には書き込み初期化処理（Ｔ２）の詳細が例示される。先ずレジスタＦＰＥＦＥＱ（Ｒ４）にマイクロコンピュータ１の動作周波数がセットされ（Ｔ２０）、レジスタＦＵＢＲＡにユーザブランチアドレスがセットされる。レジスタＦＵＢＲＡにはＣＰＵ２の汎用レジスタＲ５が割当てられる。其の後、書き込み初期化プログラムが実行される（Ｔ２２）。例えば、書き込み関係の初期化プログラムは、設定されたチップ動作周波数の値を参照し、ウェイトタイムループ回数を決定する。決定したウェイトタイム時間をＲＡＭ３上に転送された書き込み制御プログラムに埋め込む処理を行なう。また、書き込み初期化プログラムは、レジスタＦＵＢＲＡ（Ｒ５）の値を参照して、ユーザブランチを実施するか、実施した場合に何処のアドレスにジャンプするかの書き込みプログラム変更を実施する。要するに、ユーザブランチを実施するサブルーチンジャンプ命令に、レジスタＦＵＢＲＡ（Ｒ５）の値が、分岐先アドレスとして埋め込まれる。最後に、初期化処理が正常に終了したことを判別して（Ｔ２３）、処理を終了する。
【０１０１】
ここで、前記レジスタＦＵＢＲＡは書き込み／消去途中でのユーザブランチアドレスを指定するレジスタであり、このエリアは汎用レジスタＲ５に存在する。ユーザブランチを実施したくない時は、このレジスタにＨ’００００００００をセットする。ユーザブランチにより誤動作を生じないようにするために、フラッシュメモリエリアで書き込み／消去途中のエリアに関してはユーザブランチを禁止し、内蔵ＲＡＭの内、書き込み／消去プログラムが転送された領域へのユーザブランチを禁止し、プログラムデータの書き換えを禁止し、ユーザブランチを実施した先で、ＳＣＯモードの実行や書き込み／消去ルーチン、書き込み／消去初期化ルーチンをコールすることを禁止することが望ましい。
【０１０２】
図１８には図１６の書き込み初期化時における内蔵ＲＡＭ３、書き込みプログラム、初期化処理、レジスタＲ４，Ｒ５との間のデータ接続関係が示される。同図により、初期化プログラムは、レジスタＲ４，Ｒ５を参照し、参照結果を書き込みプログラムのユーザブランチ処理に反映し、ウェイト関係パラメータに反映することが明瞭である。
【０１０３】
図１７には書き込み実行（Ｔ３）の詳細が例示される。先ず、マスク不可能な割込み（ＮＭＩ）を受け付けたときの分岐先をＲＡＭ３アドレスエリアに変更する（Ｔ３０）。例えばベクタベースレジスタをＲＡＭ３のアドレスエリアに設定変更すればよい。これは、書き込み途上のフラッシュメモリエリアを避けることが誤動作防止の点より望ましいからである。そのようなＮＭＩはユーザ定義のエラー処理ルーチンをコールするために利用すればよい。そして、ＮＭＩよりも割込み優先レベルの低い割込みをマスクする（Ｔ３１）。例えばステータスレジスタＳＲに割込みマスクデータＩＭＳＫのＮＭＩの次に低い割込み優先レベルを設定すればよい。これは、書き込み／消去中は、状態によってフラッシュメモリに高電圧が掛かっている。この状態でＩＲＱ等の割り込みが入ったとしても、フラッシュメモリのベクターを読める事は保証できない。よって、書き込み／消去中は、ＮＭＩ以外の割り込みは禁止にする。
【０１０４】
そして、書き込みアドレスの設定エリアを汎用レジスタＲ５にセットする（Ｔ３２）。すなわち、内蔵ＲＡＭ３に書かれている書き込みアドレスエリアの先頭アドレスを汎用レジスタＲ５にセットする。そして、書き込みデータアドレスの設定エリアを汎用レジスタＲ４にセットする（Ｔ３３）。即ち、内蔵ＲＡＭ３に書かれている書き込みデータアドレスエリアの先頭アドレスを汎用レジスタＲ４にセットする。其の後、レジスタＦＫＥＹに書き込み／消去コード“５Ａ”をセットし（Ｔ３４）、書き込みプログラムにジャンプして実行する（Ｔ３５）。最後に書き込みが正常に終了したかを判別する（Ｔ３６）。
【０１０５】
図１９には書き込み時におけるＲＡＭ３、汎用レジスタＲ４，Ｒ５、書き込みプログラムとの間のデータ接続関係が例示される。ここではデュアルバンク書込みを想定しているから、書込みアドレスエリアの先頭アドレスと書込みデータアドレスエリアの先頭アドレスとを夫々のバンク毎に参照できなければならないため、ＲＡＭエリアＦＭＰＤＲ０，ＦＭＰＤＲ１をレジスタＲ４で、ＲＡＭエリアＦＭＰＡＲ０，ＦＭＰＡＲ１をレジスタＲ５で参照可能にしている。
【０１０６】
図２０には図１７のステップＴ３５に対応する書込みプログラムの処理フローが例示される。この処理フローは、書込みデータラッチ（Ｔ４０）、書込みパルスの印加（Ｔ４１）、書込みベリファイ（Ｔ４２）の処理サイクル中に、ユーザブランチアドレスにサブルーチンジャンプするかを判定するステップ（Ｔ４３）を有し、初期化処理による設定値にしたがって、サブルーチンジャンプの指示がされている場合（ユーザブランチアドレスがＨ’００００００００以外のとき）には、ユーザブランチアドレスに分岐して、サブルーチンを実行する（Ｔ４４）。実行後に再び書き込み動作ルーチンに戻ってくる。書込みベリファイで所定の閾値状態を得られないときは、パルス印加回数Ｎをインクリメントして再度同じループを繰返し（Ｔ４５）、くり返し回数が最大回数（ＷＭＡＸ）に達する前に書込み正常状態を得られれば其の時点で図１７のフローに戻り（Ｔ４６）、最大回数に達しても正常終了できないときは書込みエラー処理を行なって（Ｔ４７）、図１７のフローに戻る。
【０１０７】
このように、書込みパルス印可と書込みベリファイのサイクル中に、ユーザブランチアドレスで示されたサブルーチン処理に分岐可能であれば、書き込み中であっても、ユーザの制御プログラムに、ある一定間隔で制御を戻すことができる。しかも、ソフトウェアで実施しているので、ユーザの制御に戻ってくる間隔をソフトウェアで変更することも可能である。書き込み中でも、ユーザ制御プログラムに一定間隔で戻ってくることにより、このマクロコンピュータ１を使用したシステムを長い時間停止させなくても、消去及び書き込みが実施可能になる。したがって、一定期間毎に内外の事象を確認する必要のあるシステム、或は学習機能付きのシステム等に対して、ユーザのプログラム実行中に消去及び書込みを実行していくことが可能である。
【０１０８】
図２１は図１３の消去処理に着目した概略フローチャートである。消去処理は、ブートマットからソースコード（消去及び書き込み制御プログラム等）をＲＡＭ３に転送する処理（Ｔ５）、消去初期化の実行（Ｔ６）、及び消去実行（Ｔ７）に大別される。
【０１０９】
転送処理（Ｔ５）は前記転送処理（Ｔ１）と同じである。初期化の実行（Ｔ６）では、転送されたプログラムに関して、動作周波数に依存するウェイトタイムループ回数の設定やユーザブランチの設定の為に、初期化プログラムを実行する。
【０１１０】
消去実行（Ｔ７）では、ＲＡＭ３に転送された消去プログラムのある決まった番地にジャンプサブルーチンを実施する事で消去を実行する。
【０１１１】
図２２には消去初期化処理（Ｔ６）の詳細が例示される。先ずレジスタＦＰＥＦＥＱ（Ｒ４）にマイクロコンピュータ１の動作周波数がセットされ（Ｔ６０）、レジスタＦＵＢＲＡにユーザブランチアドレスがセットされる（Ｔ６１）。レジスタＦＵＢＲＡにはＣＰＵ２の汎用レジスタＲ５が割当てられる。其の後、消去初期化プログラムが実行される（Ｔ６２）。転送された時の消去プログラムは、ウェイトループ回数が初期設定状態になっている。この事から、この初期化プログラムを使用して、消去プログラムのウェイトループ回数を全て変更する。この計算を実施する為に、ユーザはレジスタＦＰＥＦＥＱ（Ｒ４）をセットする。レジスタＦＵＢＲＡ（Ｒ５）の設定では、消去プログラムのユーザブランチ設定を実施することになる。消去初期化プログラムは、レジスタＦＵＢＲＡの設定値を参照して、ユーザブランチを実施するか、実施した場合に何処のアドレスにジャンプするかについて、消去プログラム変更を実施する。この変更を実施する為に、ユーザはレジスタＦＵＢＲＡに値をセットする。最後に、初期化処理が正常終了したことを判別して（Ｔ６３）、処理を終了する。
【０１１２】
ここで、前記レジスタＦＵＢＲＡの意義は書込みの場合と同じであり、ユーザブランチを実施したくない時は、このレジスタにＨ’００００００００をセットする。
【０１１３】
図２４には図２２の消去初期化時における内蔵ＲＡＭ３、消去プログラム、初期化処理、レジスタＲ４，Ｒ５との間のデータ接続関係が示される。同図により、初期化プログラムは、レジスタＲ４，Ｒ５を参照し、参照結果を書き込みプログラムのユーザブランチ処理に反映し、ウェイト関係パラメータに反映することが明らかである。
【０１１４】
図２３には消去実行（Ｔ７）の詳細が例示される。先ず、マスク不可能な割込み（ＮＭＩ）を受け付けたときの分岐先をＲＡＭ３アドレスエリアに変更する（Ｔ７０）。例えばベクタベースレジスタをＲＡＭ３のアドレスエリアに設定変更すればよい。これは、消去途上のフラッシュメモリエリアを避けることが誤動作防止の点より望ましいからである。そのようなＮＭＩはユーザ定義のエラー処理ルーチンをコールするために利用すればよい。そして、ＮＭＩよりも割込み優先レベルの低い割込みをマスクする（Ｔ７１）。例えばステータスレジスタＳＲに割込みマスクデータＩＭＳＫのＮＭＩの次に低い割込み優先レベルを設定すればよい。これは、消去中は、状態によってフラッシュメモリに高電圧が掛かっている。この状態でＩＲＱ等の割り込みが入ったとしても、フラッシュメモリのベクターを読める事は保証できない。よって、消去中は、ＮＭＩ以外の割り込みは禁止にする。
【０１１５】
そして、消去ブロック番号を汎用レジスタＲ４にセットする（Ｔ７２）。其の後、レジスタＦＫＥＹに書き込み／消去コード“５Ａ”をセットし（Ｔ７３）、消去プログラムにジャンプして実行する（Ｔ７４）。最後に消去正常終了を判別する（Ｔ７５）。
【０１１６】
図２５には消去時におけるＲＡＭ３、汎用レジスタＲ４，Ｒ５、消去プログラムとの間のデータ接続関係が例示される。この接続関係は、ユーザが消去プログラムを作成しないので消去マット選択のインターフェース方法として、消去ブロック選択の受け渡しを、レジスタＦＥＢＳ（Ｒ４）を介して消去ブロック番号を受け渡す事で実施する。
【０１１７】
図２６には図２３のステップＴ７４に対応する消去プログラムの処理フローが例示される。この処理フローは、消去データラッチ（Ｔ８０）、消去パルスの印加（Ｔ８１）、消去ベリファイ（Ｔ８２）の処理サイクル中に、ユーザブランチアドレスにサブルーチンジャンプするかを判定するステップ（Ｔ８３）を有し、初期化処理による設定値にしたがって、サブルーチンジャンプの指示がされている場合（ユーザブランチアドレスがＨ’００００００００以外のとき）には、ユーザブランチアドレスに分岐して、サブルーチンを実行する（Ｔ８４）。実行後に再び消去動作ルーチンに戻ってくる。消去ベリファイで所定の閾値状態を得られないときは、パルス印加回数Ｎをインクリメントして再度同じループを繰返し（Ｔ８５）、くり返し回数が最大回数（ＥＭＡＸ）に達する前に消去正常状態を得られれば其の時点で図２３のフローに戻り（Ｔ８６）、最大回数に達しても正常終了できないときは消去エラー処理を行なって（Ｔ８７）、図２３のフローに戻る。
【０１１８】
このように、消去パルス印可と消去ベリファイのサイクル中に、ユーザブランチアドレスで示されたサブルーチン処理に分岐可能であれば、消去中であっても、ユーザの制御プログラムに、ある一定間隔で制御を戻すことができる。消去中でも、ユーザ制御プログラムに一定間隔で戻ってくることにより、このマクロコンピュータ１を使用したシステムを長い時間停止させなくても、消去が実施可能になる。したがって、一定期間毎に内外の事象を確認する必要のあるシステム、或は学習機能付きのシステム等に対して、ユーザのプログラム実行中に消去及び書込みを実行していくことが可能である。
【０１１９】
《ユーザブランチ先でのプログラムの暴走》
書き込み／消去プログラムが転送された状態で、しかも端子Ｐｆｗｅがイネーブル状態（“１”）の場合は、フラッシュメモリ１３が保有する記憶情報を如何なる場合にも正常に保持することを完全に保証する事は、困難である。図２７にはユーザブランチ先でＣＰＵ２が暴走してフラッシュッメモリ１３の記憶情報が破壊される事態を抑止可能にする書込み／消去処理の手法が例示される。即ち、書き込み／消去フロー中で各処理終了毎に実施する前記ステップＴ４４，Ｔ８４のユーザブランチ処理では、書込み消去の動作電源を初期化してリード動作の動作電源に遷移させ（Ｔ９０）、その後、レジスタＦＫＥＹの値を、書込み／消去可能値“５Ａ”以外の任意に値に変更する（Ｔ９１）。例えば７Ｘ（Ｘ＝０〜Ｆ）とする。これを実施することにより、制御ビットＳＷＥのセットが不可になるので、ユーザブランチ先でＣＰＵが暴走しても、簡単には書き込み／消去ができなくなる。
【０１２０】
ステップＴ９１の処理において、レジスタＦＫＥＹに設定するコードを、処理に対して意味のあるコード、例えば、消去／書込みの進捗状況を示すコードにすれば、暴走などにより、書込み／消去未完の状態で書込み／消去の処理ルーチンからリターンしてきたような場合、或はレジスタＦＫＥＹの値が期待値以外の値に変化している場合、レジスタＦＫＥＹの値を参照することにより、異常を検出することができる。図２７の例では、パルス印可とベリファイの間では“７１”、ベリファイと書込みデータ再演算の間は“７２”、再演算と書込みパルス印可前のダミーライトの間は“７３”とし、ユーザブランチ処理から抜けるとき、レジスタＦＫＥＹの値が“７Ｘ（Ｘ＝１〜Ｆ）”であるかを判定し（Ｔ９２）、それ以外であれば何らかの異常が有ったと見なし、書込み／消去に対してフェイル処理を行なう（Ｔ９３）。ＦＫＥＹが“７Ｘ”であれば、正常に処理終了と見なし、ＦＫＥＹを“５Ａ”に戻す（Ｔ９３）。
【０１２１】
尚、進捗情況を保持するレジスタはＦＫＥＹでなくてもよいが、ユーザブランチの場合に“５Ａ”以外の値に書き換えることが得策であるという事情を考慮すれば、レジスタＦＫＥＹを利用することが、ハードウェアリソースと処理負担の両面において経済的である。
【０１２２】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１２３】
例えば、消去及び書込み可能な不揮発性メモリは２値のフラッシュメモリに限定されない。多値フラッシュメモリ、例えば、１個のフラッシュッメモリセルに２ビット以上の記憶情報を保持させることが可能な多値フラッシュメモリであってもよい。すなわち、１個のフラッシュメモリセルは、情報記憶に際して複数ビットの書き込みデータで指定される４種類以上の閾値電圧の中の一つの閾値電圧に設定され、情報読み出しに際して閾値電圧の状態を対応する複数ビットの記憶情報として出力する、１個のフラッシュメモリセルの記憶情報を複数ビット化したメモリである。ここでは、一つのフラッシュメモリセルに２ビットの情報を書き込むことができ、かつその情報を読み出すことができるフラッシュメモリを一例とする。このようなフラッシュメモリが実現しようとする多値情報記憶技術において、一つのメモリセルの情報記憶状態は、例えば消去状態（“１１”）、第１の書き込み状態（“１０”）、第２の書き込み状態（“００”）、第３の書き込み状態（“０１”）の中から選ばれた一つの状態とされる。全部で４通りの情報記憶状態は、２ビットのデータによって決定される状態とされる。即ち、２ビットのデータを一つのメモリセルで記憶する。
【０１２４】
また、フラッシュメモリセルはフローティングゲートとコントロールゲートの縦積み構造に限定されず、ＭＯＳトランジスタのゲート電極をフローティングゲート電極とし当該ゲート電極を延在させて形成したＭＯＳゲート容量を介してチャネル領域をコントロールゲートに用いるようなデバイス構造などを採用してもよい。また、不揮発性記憶素子はフラッシュメモリに限定されず、ＭＮＯＳ（メタル・ナイトライド・オキサイド・セミコンダクタ）トランジスタを記憶素子とするＥＥＰＲＯＭ（エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ）のような不揮発性メモリ、或いは強誘電体メモリ等であってもよい。
【０１２５】
また、マイクロコンピュータがオンチップで備える回路モジュールは上記の例に限定されず、適宜変更可能である。
【０１２６】
消去及び書込み制御プログラムをブートマットに初期的に保持させる構成に限定されない。システムボードからダウンロードする構成を採用してもよい。また、各種レジスタ手段はフラッシュメモリ内蔵の周辺レジスタであっても、ＣＰＵ内蔵の汎用レジスタであっても、或は、ＳＲＡＭなどのメモリで構成されるメモリマップドＩ／Ｏレジスタであってもよい。
【０１２７】
前記ユーザブランチは、レジスタＦＵＢＲＡ（Ｒ５）の設定値に基づいて、ジャンプサブルーチン命令のジャンプ先コードを予め書き換える初期化処理を行なってから、其のプログラムを実行するものとして説明した。これに代えて、ジャンプサブルーチン命令でそのレジスタＦＵＢＲＡ（Ｒ５）を直接参照して分岐するようにしてもよい。この場合には、その消去及び書込み制御プログラムのコンパイラが一つの関数内で引数として利用する事ができる汎用レジスタの数の制限の範囲内で汎用レジスタＲ５を参照できなければならない。
【図面の簡単な説明】
【０１２８】
【図１】本発明の一例に係るマイクロコンピュータのブロック図である。
【図２】ＣＰＵ２の具体例を示すブロック図である。
【図３】フラッシュメモリのメモリマットを例示する説明図である。
【図４】フラッシュメモリのメモリマット毎の各動作モードによるアクセス態様を例示する説明図である。
【図５】ＣＰＵが実行するプログラムの所在と実行による作用を模式的に示す説明図である。
【図６】フラッシュメモリの消去及び書き込みプロテクトのための論理構成を例示する論理回路図である。
【図７】ＣＰＵのオペレーションがユーザマットとユーザブートマットとの間で切換えられるときの状態遷移図である。
【図８】プログラムモード判定処理のフローチャートである。
【図９】ライタモード処理のフローチャートである。
【図１０】ブートモード処理のフローチャートである。
【図１１】ユーザブートモード処理のフローチャートである。
【図１２】ユーザモード処理のフローチャートである。
【図１３】図１１のステップＳ４２及び図１２のステップＳ５４の書き込み／消去処理のフローチャートである。
【図１４】図１３の書き込み処理に着目した概略フローチャートである。
【図１５】ＲＡＭへの転送処理（Ｔ１）の詳細を例示するフローチャートである。
【図１６】書き込み初期化処理（Ｔ２）の詳細を例示するフローチャートである。
【図１７】書き込み実行（Ｔ３）の詳細を例示するフローチャートである。
【図１８】図１６の書き込み初期化時における内蔵ＲＡＭ、書き込みプログラム、初期化処理、レジスタ（Ｒ４，Ｒ５）との間のデータ接続関係を例示する説明図である。
【図１９】書き込み時におけるＲＡＭ、汎用レジスタ（Ｒ４，Ｒ５）、書き込みプログラムとの間のデータ接続関係を例示する説明図である。
【図２０】図１７のステップＴ３５に対応する書込みプログラムの処理フローである。
【図２１】図１３の消去処理に着目した概略フローチャートである。
【図２２】消去初期化処理（Ｔ６）の詳細を例示するフローチャートである。
【図２３】消去実行（Ｔ７）の詳細を例示するフローチャートである。
【図２４】図２２の消去初期化時における内蔵ＲＡＭ、消去プログラム、初期化処理、レジスタ（Ｒ４，Ｒ５）との間のデータ接続関係を例示する説明図である。
【図２５】消去時におけるＲＡＭ、汎用レジスタ（Ｒ４，Ｒ５）、消去プログラムとの間のデータ接続関係を例示する説明図である。
【図２６】図２３のステップＴ７４に対応する消去プログラムの処理フローである。
【図２７】ユーザブランチ先でＣＰＵが暴走してフラッシュッメモリの記憶情報が破壊される事態を抑止可能にするユーザブランチ処理のフローチャートである。
【符号の説明】
【０１２９】
１  マイクロコンピュータ
２  ＣＰＵ
３  ＲＡＭ
４  バスステートコントローラ
５  フラッシュッメモリモジュール
６  フラッシュコントロールロジック
９  割込みコントローラ
ＲＥＳ  リセット信号
１３  フラッシュッメモリ
１４  モード信号
１５  システムコントローラ
２０  メモリセルアレイ
ＦＭＡＴＳ  制御レジスタ
ＦＫＥＹ  制御レジスタ
ＦＣＣＳ  制御レジスタ
ＳＣＯ  制御ビット
Ｒｍａｔ  リペア及びトリミングマット
Ｔｍａｔ  ブートマット
Ｕｍａｔ  ユーザブートマット
Ｍｍａｔ  ユーザマット
Ｐｆｗｅ  外部端子
【図１】
2008186476.tif 000003
【図２】
2008186476.tif 000004
【図３】
2008186476.tif 000005
【図４】
2008186476.tif 000006
【図５】
2008186476.tif 000007
【図６】
2008186476.tif 000008
【図７】
2008186476.tif 000009
【図８】
2008186476.tif 000010
【図９】
2008186476.tif 000011
【図１０】
2008186476.tif 000012
【図１１】
2008186476.tif 000013
【図１２】
2008186476.tif 000014
【図１３】
2008186476.tif 000015
【図１４】
2008186476.tif 000016
【図１５】
2008186476.tif 000017
【図１６】
2008186476.tif 000018
【図１７】
2008186476.tif 000019
【図１８】
2008186476.tif 000020
【図１９】
2008186476.tif 000021
【図２０】
2008186476.tif 000022
【図２１】
2008186476.tif 000023
【図２２】
2008186476.tif 000024
【図２３】
2008186476.tif 000025
【図２４】
2008186476.tif 000026
【図２５】
2008186476.tif 000027
【図２６】
2008186476.tif 000028
【図２７】
2008186476.tif 000029