(57)【特許請求の範囲】
【請求項１】
中央処理装置と電気的に書換え可能なフラッシュメモリとが一つの半導体基板上に形成され、外部装置から入力されるコマンドに従って動作する第１動作モードを有するマイクロコンピュータにおいて、
外部端子と、前記中央処理装置、前記フラッシュメモリ及び前記外部端子に接続されるバスと、前記外部装置から入力されるコマンドが書き込まれるコマンドラッチ手段と、前記コマンドラッチ手段にラッチされたコマンドを解析するコマンド解析手段と、解析された内容に応じて前記フラッシュメモリの書換えのための手順制御を行う制御手段と、前記コマンドラッチ手段にコマンドが書き込まれたことを示すフラグ手段と、を具備し、
前記第１動作モードにおいて、前記外部装置から前記フラッシュメモリに記憶される情報を読み出すための読出しコマンドが前記マイクロコンピュータに入力された場合に、前記中央処理装置を前記バスから切り離し、前記外部装置から入力されるコマンドが前記フラッシュメモリに情報を書き込むことを示すものである場合に、前記フラグ手段にコマンドが書き込まれたことを示す情報を書き込み、前記外部装置から入力されたコマンドが前記読出しコマンドの場合には、前記フラグ手段にコマンドが書き込まれたことを示す情報を書き込まないことを特徴とするマイクロコンピュータ。
【請求項２】
請求項１において、
前記コマンド解析手段及び制御手段は、前記中央処理装置であることを特徴とするマイクロコンピュータ。
【請求項３】
請求項２において、
前記外部装置から入力されたコマンドを解読するコマンドデコーダを有し、前記コマンドデコーダは前記コマンドの解読結果に従って、前記バスの切り離し、前記フラグ手段にコマンドが書き込まれたことを示す情報の書き込みを行うことを特徴とするマイクロコンピュータ。
【請求項４】
請求項３において、
前記中央処理装置は前記フラグ手段にコマンドが書き込まれたことを示す情報の書き込みに応答して前記コマンドラッチ手段にラッチされたコマンドを読み込むことを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、電気的に書換え可能な不揮発性のフラッシュメモリを内蔵したデータ処理装置、さらには当該内蔵フラッシュメモリを単体フラッシュメモリと同様にＰＲＯＭライタのような外部装置で書換え可能にする技術に係り、例えばマイクロコンピュータに適用して有効な技術に関するものである。
【０００２】
【従来の技術】
特開平１−１６１４６９号には、プログラム可能な不揮発性メモリとしてＥＰＲＯＭ（イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ）またはＥＥＰＲＯＭ（エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ）を単一の半導体チップに搭載したマイクロコンピュータについて記載されている。そのようなマイクロコンピュータにオン・チップ化された不揮発性メモリにはプログラムやデータが保持される。ＥＰＲＯＭは紫外線により記憶情報を消去するものであるから、それを実装システムから取り外さなければ書換えを行うことができない。ＥＥＰＲＯＭは電気的に消去・書込みを行うことができるので、システムに実装された状態でその記憶情報を書換えることができるが、それを構成するメモリセルは、ＭＮＯＳ（メタル・ナイトライド・オキサイド・セミコンダクタ）のような記憶素子のほかに選択トランジスタを必要とするため、ＥＰＲＯＭのメモリセルに比べて例えば２．５倍から５倍程度の大きさになり、相対的に大きなチップ占有面積を必要とする。
【０００３】
特開平２−２８９９９７号には一括消去型ＥＥＰＲＯＭについて記載されている。この一括消去型ＥＥＰＲＯＭは本明細書におけるフラッシュメモリと同意義に把握することができる。フラッシュメモリは、電気的な消去・書込みによって情報を書換え可能であって、ＥＰＲＯＭと同様にそのメモリセルを１個のトランジスタで構成することができ、メモリセルの全てを一括して、またはメモリセルのブロックを一括して電気的に消去する機能を持つ。したがって、フラッシュメモリは、システムに実装された状態（オンボード）でそれの記憶情報を書換えることができると共に、その一括消去機能により書換え時間の短縮を図ることができ、さらに、チップ占有面積の低減にも寄与する。
【０００４】
【発明が解決しようとする課題】
本発明者はフラッシュメモリを搭載したマイクロコンピュータについて検討した。フラッシュメモリを内蔵したマイクロコンピュータは、オンボード書き換えが可能であるが、ユーザの使い方を考えた場合には初期の書き込みはオンボードではなく基板実装前にＰＲＯＭライタのような書込み装置を利用して書き込んだ方が効率のよい場合がある。そこで、斯るフラッシュメモリ内蔵マイクロコンピュータにおいても、ソケットアダプタを介してＰＲＯＭライタのようなＥＰＲＯＭやＥＥＰＲＯＭの書込みなどに汎用的に利用される書込み装置に結合し、この書込み装置で書込み可能な機能をサポートすることの必要性を見出した。このとき、フラッシュメモリの書込み並びに消去は、ＥＰＲＯＭやＥＥＰＲＯＭに比べて複雑な制御が要求される。特に消去の場合フラッシュメモリ特有の問題である過消去（消去を行い過ぎるとメモリセルトランジスタのしきい値電圧が小さく成り過ぎ、さらには負になって、正常な読み出しができなくなる現象）を避けるため、消去前に書込みレベルを均一化するためのプレライトを行ったり、ベリファイを行いながら少しずつ消去を行うといった消去手法が必要になる。このような処理のための制御手順を汎用的なＰＲＯＭライター側に委ねようとすると無理があり、また、フラッシュメモリ内蔵マイクロコンピュータ専用のＰＲＯＭライタのような書込み装置で対処することも現実的ではない。
【０００５】
本発明の目的は、回路基板実装前にＰＲＯＭライタのような外部装置を利用して情報書込みを行うときの使い勝手の良好なフラッシュメモリ内蔵型のデータ処理装置を提供することにある。本発明の別の目的は、汎用的に利用されるＰＲＯＭライタのような外部装置を利用して内蔵フラッシュメモリを書換え可能にするデータ処理装置を提供することにある。さらにこのとき、外部装置による情報書込みのために新たに内蔵すべき回路規模の増大を極力抑えたデータ処理装置を提供することにある。
【０００６】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【０００７】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００８】
すなわち、中央処理装置と、電気的に書換え可能な不揮発性のフラッシュメモリとを、１個の半導体基板に含み、外部装置の指示に従って内蔵フラッシュメモリを書換え可能にする動作モードを備え、その動作モードが設定された状態において外部から書込み可能にされるコマンドラッチ手段と、これにラッチされたコマンドを解析するコマンド解析手段と、解析された内容に応じてフラッシュメモリの書換えのための手順制御を行う制御手段とを、備えてデータ処理装置を構成する。
【０００９】
外部装置によるフラッシュメモリの書換え中において内蔵中央処理装置は、それとは別の処理を行わなければならない必然性はなく、実質的に休眠状態であっても差し支えない。このとき、前記コマンド解析手段や制御手段での処理を、内蔵中央処理装置に実行させることによって、コマンド解析手段や制御手段のような書換えのための専用回路を削減する。
【００１０】
汎用的に利用されるＥＰＲＯＭライタのような外部装置は、少なくとも、不揮発性記憶素子に対する書換え用高電圧を印加し、書換えのためのアドレスやデータを書込み信号などに従ってフラッシュメモリを含む対象半導体装置（ＬＳＩ）に供給するようになっている。このような外部装置は、コマンド、データ、及びアドレスを、データ処理装置に内蔵された中央処理装置とは非同期で供給してくる。そこで、前記コマンドラッチ手段にコマンドが書き込まれたことを示すフラグ手段と、このフラグ手段が前記コマンドラッチ状態を示すときに、前記コマンドラッチ手段に代えて外部から書込み可能にされるデータラッチ手段と、外部からアドレス情報が書込み可能にされるアドレスラッチ手段とを更に備え、外部装置から相互に別サイクルで書き込まれるコマンドとデータ情報とのラッチ手段上での衝突を防止すると共に、前記中央処理装置は、前記フラグ手段のコマンドラッチ状態に基づいてコマンドラッチ手段のコマンドをリードするものである。
【００１１】
前記フラグ手段に対する制御も中央処理装置に委ねるならば、中央処理装置はバスサイクルを起動して常にコマンドラッチ手段の内容をモニタしなければならず、動作上無駄を生ずる。そこで、前記コマンドラッチ手段のラッチ内容をデコードし、前記所定のコマンドをデコードすることによって前記フラグ手段をコマンドラッチ状態にセットするコマンドデコーダを備える。
【００１２】
ラッチした全てのコマンドを中央処理装置が解析していたのではそのコマンドで指示される動作がタイミング上間に合わないものがある。例えば、フラッシュメモリからデータを読出すようなリードコマンドである。これに対処するため、コマンドラッチ手段、データラッチ手段、及びアドレスラッチ手段がフラッシュメモリと中央処理装置に接続される状態と、前記コマンドラッチ手段、データラッチ手段、及びアドレスラッチ手段がフラッシュメモリに接続され中央処理装置には非接続とされる状態とを、選択可能なゲート手段を内部バスに設け、そのゲート手段を、前記所定のコマンド以外のコマンドをデコードすることによって前記コマンドデコーダで生成される信号によって制御するようにする。斯るゲート手段が開いた状態において、フラッシュメモリはデータ処理装置の外部から直接リードアクセス可能にされる。前記リードコマンドが所定のコマンド以外のコマンドとされる。
【００１３】
前記中央処理装置が実行すべきフラッシュメモリ書換えのための手順制御用プログラムは、フラッシュメモリに予め格納しておき、外部装置による書換え動作モードの設定に呼応してそのプログラムをＲＡＭに転送し、そのＲＡＭに転送された前記プログラムを中央処理装置に実行させることができる。
【００１４】
用途に応じてフラッシュメモリに格納すべき情報量がその情報の種類例えばプログラム、データテーブル、制御データなどに応じて相違されることを考慮した場合、システム（回路基板）への実装後、内蔵フラッシュメモリの保持情報の部分的若しくは一部の書換えに伴って、メモリブロックを一括消去した後の書込み動作の無駄をなくして、書換え効率を向上させるには、前記フラッシュメモリにおける一括消去可能な単位として、相互に記憶容量の相違される複数個のメモリブロックを割当てるとよい。
【００１５】
【作用】
上記した手段によれば、外部装置から非同期で与えられるコマンドに応じた書換えシーケンスを内蔵回路で実現することは、外部装置にとってデータ情報とアドレス情報を与える前に、データ情報を与えるのと同様にしてコマンドをデータ処理装置に与えればよく、汎用的に利用されるＰＲＯＭライタのような外部装置にソケットアダプタを介して結合することによって、データ処理装置の内蔵フラッシュメモリに対する情報書込みを可能にする。
【００１６】
コマンドによって指示される書換えのためのシーケンスを内蔵中央処理装置が制御することは、その制御のための専用回路を不要若しくは削減し、データ処理装置のチップ面積低減を実現する。更に、書換えのための制御シーケンスは、中央処理装置が実行すべきソフトウェアで変更可能であり、このことは、フラッシュメモリを構成する記憶素子の特性に合わせて書き込み時間などの条件設定を可能にする。
【００１７】
【実施例】
本発明の実施例を以下の項目にしたがって説明する。
〔１〕フラッシュメモリの原理
〔２〕記憶容量を相違させた複数メモリブロック化
〔３〕ＰＲＯＭライタによるコマンド方式の情報書込み原理
〔４〕マイクロコンピュータ
〔５〕内蔵フラッシュメモリ
〔６〕コマンド方式対応ハードウェア
〔７〕ＰＲＯＭライタによる情報書込みなどのコマンド仕様
〔８〕オンボードでの情報書込み
〔９〕コマンド方式による情報書込み動作（コマンド対応）
〔１０〕コマンド方式による情報書込み時のＰＲＯＭライタの動作
〔１１〕コマンド方式による情報書き込み時のＣＰＵの動作
〔１２〕ＰＲＯＭライタによる書込み仕様の単体フラッシュメモリＬＳＩとの互換性
【００１８】
〔１〕フラッシュメモリの原理
【００１９】
図３１にはフラッシュメモリの原理が示される。同図（Ａ）に例示的に示されたメモリセルは、２層ゲート構造の絶縁ゲート型電界効果トランジスタにより構成されている。同図において、１はＰ型シリコン基板、２は上記シリコン基板１に形成されたＰ型半導体領域、３，４はＮ型半導体領域である。５はトンネル絶縁膜としての薄い酸化膜６（例えば厚さ１０ｎｍ）を介して上記Ｐ型シリコン基板１上に形成されたフローティングゲート、７は酸化膜８を介して上記フローティングゲート５上に形成されたコントロールゲートである。ソースは４によって構成され、ドレインは３，２によって構成される。このメモリセルに記憶される情報は、実質的にしきい値電圧の変化としてトランジスタに保持される。以下、特に述べないかぎり、メモリセルにおいて、情報を記憶するトランジスタ（以下メモリセルトランジスタとも記す）がＮチャンネル型の場合について述べる。
【００２０】
メモリセルへの情報の書込み動作は、例えばコントロールゲート７及びドレインに高圧を印加して、アバランシェ注入によりドレイン側からフローティングゲート５に電子を注入することで実現される。この書込み動作により記憶トランジスタは、図３１の（Ｂ）に示されるように、そのコントロールゲート７からみたしきい値電圧が、書込み動作を行わなかった消去状態の記憶トランジスタに比べて高くなる。
【００２１】
一方消去動作は、例えばソースに高圧を印加して、トンネル現象によりフローティングゲート５からソース側に電子を引き抜くことによって実現される。図３１の（Ｂ）に示されるように、消去動作により記憶トランジスタはそのコントロールゲート７からみたしきい値電圧が低くされる。図３１の（Ｂ）では、書込み並びに消去状態の何れにおいてもメモリセルトランジスタのしきい値は正の電圧レベルにされる。すなわちワード線からコントロールゲート７に与えられるワード線選択レベルに対して、書込み状態のしきい値電圧は高くされ、消去状態のしきい値電圧は低くされる。双方のしきい値電圧とワード線選択レベルとがそのような関係を持つことによって、選択トランジスタを採用することなく１個のトランジスタでメモリセルを構成することができる。記憶情報を電気的に消去する場合においては、フローティングゲート５に蓄積された電子をソース電極に引く抜くことにより、記憶情報の消去が行われるため、比較的長い時間、消去動作を続けると、書込み動作の際にフローティングゲート５に注入した電子の量よりも多くの電子が引く抜かれることになる。そのため、電気的消去を比較的長い時間続けるような過消去を行うと、メモリセルトランジスタのしきい値電圧は例えば負のレベルになって、ワード線の非選択レベルにおいても選択されるような不都合を生ずる。尚、書込みも消去と同様にトンネル電流を利用して行うこともできる。
【００２２】
読み出し動作においては、上記メモリセルに対して弱い書込み、すなわち、フローティングゲート５に対して不所望なキャリアの注入が行われないように、ドレイン及びコントロールゲート７に印加される電圧が比較的低い値に制限される。例えば、１Ｖ程度の低電圧がドレインに印加されるとともに、コントロールゲート７に５Ｖ程度の低電圧が印加される。これらの印加電圧によってメモリセルトランジスタを流れるチャンネル電流の大小を検出することにより、メモリセルに記憶されている情報の論理値“０”、“１”を判定することができる。
【００２３】
図３２は前記メモリセルトランジスタを用いたメモリセルアレイの構成原理を示す。同図には代表的に４個のメモリセルトランジスタＱ１乃至Ｑ４が示される。Ｘ，Ｙ方向にマトリクス配置されたメモリセルにおいて、同じ行に配置されたメモリセルトランジスタＱ１，Ｑ２（Ｑ３，Ｑ４）のコントロールゲート（メモリセルの選択ゲート）は、それぞれ対応するワード線ＷＬ１（ＷＬ２）に接続され、同じ列に配置された記憶トランジスタＱ１，Ｑ３（Ｑ２，Ｑ４）のドレイン領域（メモリセルの入出力ノード）は、それぞれ対応するデータ線ＤＬ１（ＤＬ２）に接続されている。上記記憶トランジスタＱ１，Ｑ３（Ｑ２，Ｑ４）のソース領域は、ソース線ＳＬ１（ＳＬ２）に結合される。
【００２４】
図３３にはメモリセルに対する消去動作並びに書込み動作のための電圧条件の一例が示される。同図においてメモリ素子はメモリセルトランジスタを意味し、ゲートはメモリセルトランジスタの選択ゲートとしてのコントロールゲートを意味する。同図において負電圧方式の消去はコントロールゲートに例えば−１０Ｖのような負電圧を印加することによって消去に必要な高電界を形成する。同図に例示される電圧条件から明らかなように、正電圧方式の消去にあっては少なくともソースが共通接続されたメモリセルに対して一括消去を行うことができる。したがって図３２の構成において、ソース線ＳＬ１，ＳＬ２が接続されていれば、４個のメモリセルＱ１乃至Ｑ４は一括消去可能にされる。この場合、同一ソース線につながるメモリセルトランジスタの数を変えることによりメモリブロックのサイズを任意に設定することができる。ソース線分割方式には図３２に代表的に示されるようなデータ線を単位とする場合（共通ソース線をデータ線方向に延在させる）の他にワード線を単位とする場合（共通ソース線をワード線方向に延在させる）がある。一方、負電圧方式の消去にあっては、コントロールゲートが共通接続されたメモリセルに対して一括消去を行うことができる。
【００２５】
〔２〕記憶容量を相違させた複数メモリブロック化
【００２６】
図３４には一括消去可能なメモリブロックの記憶容量を相違させたフラッシュメモリの一例回路ブロック図が示される。
【００２７】
同図に示されるフラッシュメモリＦＭＲＹ１は、８ビットのデータ入出力端子Ｄ０〜Ｄ７を有し、各データ入出力端子毎にメモリアレイＡＲＹ０〜ＡＲＹ７を備える。メモリアレイＡＲＹ０〜ＡＲＹ７は、特に制限されないが、相対的に記憶容量の大きなメモリブロックＬＭＢと相対的に記憶容量の小さなメモリブロックＳＭＢとに２分割されている。図には代表的にメモリアレイＡＲＹ０の詳細が示されているが、その他のメモリアレイＡＲＹ１〜ＡＲＹ７も同様に構成されている。
【００２８】
夫々のメモリアレイＡＲＹ０〜ＡＲＹ７には前記図３１で説明した２層ゲート構造の絶縁ゲート型電界効果トランジスタによって構成されたメモリセルＭＣがマトリクス配置されている。同図においてＷＬ０〜ＷＬｎは全てのメモリアレイＡＲＹ０〜ＡＲＹ７に共通のワード線である。同一行に配置されたメモリセルのコントロールゲートは、それぞれ対応するワード線に接続される。夫々のメモリアレイＡＲＹ０〜ＡＲＹ７において、同一列に配置されたメモリセルＭＣのドレイン領域は、それぞれ対応するデータ線ＤＬ０〜ＤＬ７に接続されている。メモリブロックＳＭＢを構成するメモリセルＭＣのソース領域はソース線ＳＬ１に共通接続され、メモリブロックＬＭＢを構成するメモリセルＭＣのソース領域はソース線ＳＬ２に共通接続されている。
【００２９】
前記ソース線ＳＬ１，ＳＬ２には電圧出力回路ＶＯＵＴ１，ＶＯＵＴ２から消去に利用される高電圧Ｖｐｐが供給される。電圧出力回路ＶＯＵＴ１，ＶＯＵＴ２の出力動作は、消去ブロック指定レジスタのビットＢ１，Ｂ２の値によって選択される。例えば消去ブロック指定レジスタのビットＢ１に”１”が設定されることによって各メモリアレイＡＲＹ０〜ＡＲＹ７の小メモリブロックＳＭＢだけが一括消去可能にされる。消去ブロック指定レジスタのビットＢ２に”１”が設定された場合は、各メモリアレイＡＲＹ０〜ＡＲＹ７の大メモリブロックＬＭＢだけが一括消去可能にされる。双方のビットＢ１，Ｂ２に”１”が設定されたときはフラッシュメモリ全体が一括消去可能にされる。
【００３０】
前記ワード線ＷＬ０〜ＷＬｎの選択は、ＸアドレスバッファＸＡＢＵＦＦ及びＸアドレスラッチＸＡＬＡＴを介して取り込まれるＸアドレス信号ＡＸをＸアドレスデコーダＸＡＤＥＣが解読することによって行われる。ワードドライバＷＤＲＶはＸアドレスデコーダＸＡＤＥＣから出力される選択信号に基づいてワード線を駆動する。データ読出し動作においてワードドライバＷＤＲＶは、電圧選択回路ＶＳＥＬから供給される５Ｖのような電圧Ｖｃｃと０Ｖのような接地電位とを電源として動作され、選択されるべきワード線を電圧Ｖｃｃによって選択レベルに駆動し、非選択とされるべきワード線を接地電位のような非選択レベルに維持させる。データの書き込み動作においてワードドライバＷＤＲＶは、電圧選択回路ＶＳＥＬから供給される１２Ｖのような電圧Ｖｐｐと０Ｖのような接地電位とを電源として動作され、選択されるべきワード線を１２Ｖのような書き込み用高電圧レベルに駆動する。データの消去動作においてワードドライバＷＤＲＶの出力は０Ｖのような低い電圧レベルにされる。
【００３１】
夫々のメモリアレイＡＲＹ０〜ＡＲＹ７において前記データ線ＤＬ０〜ＤＬ７はＹ選択スイッチＹＳ０〜ＹＳ７を介して共通データ線ＣＤに共通接続される。Ｙ選択スイッチＹＳ０〜ＹＳ７のスイッチ制御は、ＹアドレスバッファＹＡＢＵＦＦ及びＹアドレスラッチＹＡＬＡＴを介して取り込まれるＹアドレス信号ＡＹをＹアドレスデコーダＹＡＤＥＣが解読することによって行われる。ＹアドレスデコーダＹＡＤＥＣの出力選択信号は全てのメモリアレイＡＲＹ０〜ＡＲＹ７に共通に供給される。したがって、ＹアドレスデコーダＹＡＤＥＣの出力選択信号のうちの何れか一つが選択レベルにされることにより、各メモリアレイＡＲＹ０〜ＡＲＹ７において共通データ線ＣＤには１本のデータ線が接続される。
【００３２】
メモリセルＭＣから共通データ線ＣＤに読出されたデータは選択スイッチＲＳを介してセンスアンプＳＡに与えられ、ここで増幅されて、データ出力ラッチＤＯＬを介してデータ出力バッファＤＯＢから外部に出力される。前記選択スイッチＲＳは読出し動作に同期して選択レベルにされる。外部から供給される書き込みデータはデータ入力バッファＤＩＢを介してデータ入力ラッチＤＩＬに保持される。データ入力ラッチＤＩＬに保持されたデータが”０”のとき、書き込み回路ＷＲは選択スイッチＷＳを介して共通データ線ＣＤに書き込み用の高電圧を供給する。この書き込み用高電圧はＹアドレス信号ＡＹによって選択されたデータ線を通して、Ｘアドレス信号ＡＸでコントロールゲートに高電圧が印加されるメモリセルのドレインに供給され、これによって当該メモリセルが書き込みされる。前記選択スイッチＷＳは書き込み動作に同期して選択レベルにされる。書き込み消去の各種タイミングや電圧の選択制御は書き込み消去制御回路ＷＥＣＯＮＴが生成する。
【００３３】
用途に応じてフラッシュメモリＦＭＲＹ１に格納すべき情報量がその情報の種類例えばプログラム、データテーブル、制御データなどに応じて相違されることを考慮した場合、フラッシュメモリにおける一括消去可能な単位として、相互に記憶容量の相違される複数個のメモリブロックＳＭＢ，ＬＭＢを構成しておくことにより、マイクロコンピュータを回路基板へ実装後、当該マイクロコンピュータ内蔵フラッシュメモリの保持情報の部分的若しくは一部の書換えに伴って、メモリブロックを一括消去した後の書込み動作の無駄をなくして、書換え効率を向上させることができる。
【００３４】
〔３〕ＰＲＯＭライタによるコマンド方式の情報書込み原理
【００３５】
図１には前記のようなフラッシュメモリＦＭＲＹ２を内蔵した第１の実施例に係るマイクロコンピュータＭＣＵ１においてその内蔵フラッシュメモリをＰＲＯＭライタで書換え処理するときの機能ブロック図が示される。
【００３６】
同図には内部バスＢＵＳを共有する回路モジュールとして、中央処理装置（以下単にＣＰＵとも記す）１０、フラッシュメモリＦＭＲＹ２、及び制御回路２０が代表的に示される。このマイクロコンピュータＭＣＵ１はＰＲＯＭライタ３０による書込みモードを有する。例えば、図示しないソケットアダプタを介してマイクロコンピュータＭＣＵ１をＰＲＯＭライタ３０の所定の端子に結合すると、マイクロコンピュータＭＣＵ１の図示しないモード端子が強制的に所定レベルにされて、マイクロコンピュータＭＣＵ１の動作モードがＰＲＯＭライタ３０による書込みモードに設定される。斯る動作モードにおいて、ＣＰＵ１０は図示しないバススイッチを介して内部バスＢＵＳから切り離される。制御回路２０は前記ＰＲＯＭライタ３０による書込み動作モードが設定された状態においてＰＲＯＭライタ３０から書込み可能にされるコマンドラッチ手段２１と、これにラッチされたコマンドを解析するコマンド解析手段２２と、解析された内容に応じてフラッシュメモリの書換えのための手順制御を行うシーケンス制御手段２３とを備える。ＰＲＯＭライタ３０は、イレーズ（消去）、イレーズベリファイ、プログラム（書込み）、プログラムベリファイなど所定のコマンドを供給し、これに引き続いて必要なデータ情報やアドレス情報を供給する。ＰＲＯＭライタ３０から供給されたコマンドは制御回路２０で解釈され、それに従ってシーケンス制御手段２３が、必要なデータ情報やアドレス情報などを利用して書込みを行うための制御信号をフラッシュメモリＦＭＲＹ２に与える。
【００３７】
ＰＲＯＭライタ３０から与えられるコマンドに応じた書換えシーケンスを内蔵制御回路２０で実現することは、ＰＲＯＭライタ３０にとってデータ情報とアドレス情報を与える前に、データ情報を与えるのと同様にしてマイクロコンピュータＭＣＵ１にコマンドを与えればよく、汎用的に利用されるＰＲＯＭライタ３０にソケットアダプタを介してマイクロコンピュータＭＣＵ１を結合することにより、当該マイクロコンピュータ内蔵のフラッシュメモリＦＭＲＹ２に対する情報書込みを行うことができる。この構成において、ＰＲＯＭライタ３０による書込みモードが設定されたマイクロコンピュータＭＣＵ１は、ＰＲＯＭライタ３０にとって単体のフラッシュメモリチップと同一視される。
【００３８】
図２には前記フラッシュメモリＦＭＲＹ２を内蔵した第２の実施例に係るマイクロコンピュータＭＣＵ２においてその内蔵フラッシュメモリＭＲＹ２をＰＲＯＭライタ３０で書換え処理するときの機能ブロック図が示される。
【００３９】
同図に示されるマイクロコンピュータＭＣＵ２は、前記制御回路２０によるコマンド解析やシーケンス制御を、内蔵ＣＰＵ１０に実行させることによって、コマンド解析手段２２やシーケンス制御手段２３のような書換えのための専用回路を削減したものである。前記図１において、ＰＲＯＭライタ３０による書込み動作モード時にＣＰＵ１０が内部バスＢＵＳから切り離されていることからも明らかなように、ＰＲＯＭライタ３０によるフラッシュメモリＦＭＲＹ２の書換え中に内蔵ＣＰＵ１０は、それとは別の処理を行わなければならない必然性はなく、実質的に休眠状態であっても差し支えない。図２ではそのような内蔵ＣＰＵ１０を有効利用するものである。
【００４０】
同図には内部バスＢＵＳを共有する回路モジュールとして、ＣＰＵ１０、フラッシュメモリＦＭＲＹ２、及びコマンドラッチ手段２１が代表的に示される。このマイクロコンピュータＭＣＵ２はＰＲＯＭライタ３０による書込みモードを有する。例えば、図示しないソケットアダプタを介してマイクロコンピュータＭＣＵ２をＰＲＯＭライタ３０の所定の端子に結合すると、マイクロコンピュータＭＣＵ２の図示しないモード端子が強制的に所定レベルにされて、ＰＲＯＭライタ３０による書込みモードが設定される。斯る動作モードにおいてＰＲＯＭライタ３０は、特に制限されないが、ＣＰＵ１０による内部バスアクセスに競合しないように、内部バスに直接データ情報やアドレス情報を供給しないようにされている。データ情報やアドレス情報は、コマンドラッチ手段２１と同様の図示しないデータラッチ、アドレスラッチに書き込まれる。ＣＰＵ１０は、前記ＰＲＯＭライタ３０による書込み動作モードが設定された状態においてＰＲＯＭライタ３０から書込まれたコマンドを解析するコマンド解析手段２２と、解析された内容に応じてフラッシュメモリＦＭＲＹ２の書換えのための手順制御を行うシーケンス制御手段２３との機能を、そのための動作プログラムと共に実現する。ＰＲＯＭライタ３０は、イレーズ（消去）、イレーズベリファイ、プログラム（書込み）、プログラムベリファイなど所定のコマンドを供給し、これに引き続いて必要なデータ情報やアドレス情報を供給する。ＰＲＯＭライタ３０から供給されたコマンドはＣＰＵ１０で解釈され、それに従ってＣＰＵ１０が、必要なデータ情報やアドレス情報などを利用して書込みを行うための制御信号をフラッシュメモリＦＭＲＹ２に与える。
【００４１】
図３にはＰＲＯＭライタ３０によるコマンド書込みタイミングの一例が示される。同図においてコマンド書込みと記載されたサイクルがＰＲＯＭライタ３０によるマイクロコンピュータＭＣＵ２への書込みサイクルであり、最初にコマンドラッチ手段２１にコマンドを書込み、次いで図示しないデータラッチ及びアドレスラッチに必要に応じてデータ情報及びアドレス情報を書込む。同図において、書込みサイクルと記載されたサイクルは、ＰＲＯＭライタ３０によって書込まれた内容にしたがってＣＰＵ制御で行われるフラッシュメモリの情報書込みサイクルである。
【００４２】
図４にはＣＰＵ制御によるフラッシュメモリの情報書込みサイクルの一例タイミングが示される。この書込みサイクルは、ＣＰＵ１０によるコマンド解析のサイクル、コマンド解析結果に従って実際にフラッシュメモリに対して行われる書込みサイクル、及び後処理のサイクルとされる。
【００４３】
本実施例のマイクロコンピュータＭＣＵ２も上記実施例同様に汎用的に利用されるＰＲＯＭライタ３０をソケットアダプタを介して結合することにより、マイクロコンピュータ内蔵フラッシュメモリＦＭＲＹ２に対する情報書込みを行うことができる。更に、コマンドによって指示される書換えのためのシーケンスをＣＰＵ１０が制御するから、その制御のための専用回路を不要若しくは削減し、マイクロコンピュータＭＣＵ２のチップ面積低減を実現する。更に、書換えのための制御シーケンスは、ＣＰＵ１０が実行すべきソフトウェアで変更可能であるから、フラッシュメモリＦＭＲＹ２を構成するメモリセルトランジスタの特性に合わせて書き込み時間などの条件設定を行うことができる。第１の実施例と第２の実施例との効果の相違は図５にまとめて示されている。
【００４４】
〔４〕マイクロコンピュータ
【００４５】
図６には図２のマイクロコンピュータに対応される更に詳細なマイクロコンピュータＭＣＵ３の実施例ブロック図が示される。
【００４６】
同図に示されるマイクロコンピュータＭＣＵ３は、ＣＰＵ１０、フラッシュメモリＦＭＲＹ２、シリアル・コミュニケーション・インタフェースＳＣＩ、制御回路ＣＯＮＴ、及びランダム・アクセス・メモリＲＡＭ、１６ビット・インテグレーテッド・タイマ・パルスユニットＩＰＵ、ウォッチドッグタイマＷＤＴＭＲ、ポートＰＯＲＴ１乃至ＰＯＲＴ１２、クロック発振器ＣＰＧ、割り込みコントローラＩＲＣＯＮＴ、アナログ・ディジタル変換器ＡＤＣ、及びウェートステートコントローラＷＳＣＯＮＴを備え、それらの回路モジュールは、特に制限されないが、公知の半導体集積回路製造技術によって、シリコンのような１個の半導体基板に形成されている。
【００４７】
前記ＣＰＵ１０、フラッシュメモリＦＭＲＹ２、ランダム・アクセス・メモリＲＡＭ、及び１６ビット・インテグレーテッド・タイマ・パルスユニットＩＰＵは、アドレスバスＡＢＵＳ、下位データバスＬＤＢＵＳ（例えば８ビット）、及び上位データバスＨＤＢＵＳ（例えば８ビット）に接続される。シリアル・コミュニケーション・インタフェースＳＣＩ、ウォッチドッグタイマＷＤＴＭＲ、割り込みコントローラＩＲＣＯＮＴ、アナログ・ディジタル変換器ＡＤＣ、ウェートステートコントローラＷＳＣＯＮＴ、及びポートＰＯＲＴ１乃至ＰＯＲＴ１２は、アドレスバスＡＢＵＳ、及び上位データバスＨＤＢＵＳに接続される。
【００４８】
図６において、ＶｐｐはフラッシュメモリＦＭＲＹ２の書換え用高電圧である。ＥＸＴＡＬ及びＸＴＡＬはマイクロコンピュータＭＣＵ３のチップに外付けされる図示しない振動子から前記クロック発振器ＣＰＧに与えられる信号である。φはクロック発振器ＣＰＧから外部に出力される同期クロック信号である。ＲＥＳ＊（記号＊はこれが付された信号がローイネーブル信号であることを意味する）はリセット信号、ＳＴＢＹ＊はスタンバイ信号であり、ＣＰＵ１０並びにその他の回路ブロックに供給される。ＮＭＩはノン・マスカブル・インタラプト信号であり、マスク不可能な割り込みを前記割り込みコントローラＩＲＣＯＮＴに与える。図示しないその他の割り込み信号はポートＰＯＲＴ８，ＰＯＲＴ９を介して割り込みコントローラＩＲＣＯＮＴに与えられる。ＡＳ＊は外部に出力されるアドレス信号の有効性を示すアドレスストローブ信号、ＲＤ＊はリードサイクルであることを外部に通知するリード信号、ＨＷＲ＊は上位８ビットのライトサイクルであることを外部に通知するアッパーバイト・ライト信号、ＬＷＲ＊は下位８ビットのライトサイクルであることを外部に通知するロアーバイト・ライト信号であり、それらはマイクロコンピュータＭＣＵ３の外部に対するアクセス制御信号とされる。
【００４９】
ＭＤ０乃至ＭＤ２はマイクロコンピュータＭＣＵ３の動作モードを設定するために制御回路ＣＯＮＴに供給されるモード信号である。これによって設定される動作モードは、特に制限されないが、マクシマムモードやミニマムモードというようなＣＰＵが管理可能なアドレス空間に関する動作モード、ＰＲＯＭライタ３０による内蔵フラッシュメモリＦＭＲＹ２への情報書込みを可能にする動作モード（以下単にＰＲＯＭライタ書込みモードとも記す）などとされる。斯るＰＲＯＭライタ書込みモードに対して、前記マクシマムモードやミニマムモードは、ＣＰＵ１０がマイクロコンピュータＭＣＵ３のオンボード状態で内蔵フラッシュメモリＦＭＲＹ２を書換え可能にする動作モードとして把握することができる。
【００５０】
コマンド方式を以ってＰＲＯＭライタ３０でフラッシュメモリＦＭＲＹ２に情報書込みを行う動作モード以外において、マイクロコンピュータＭＣＵ３が外部をアクセスするためのデータＢＤ０乃至ＢＤ１５の入出力には、特に制限されないが、前記ポートＰＯＲＴ１，ＰＯＲＴ２が割当てられる。このときのアドレス信号ＢＡ０乃至ＢＡ１９の出力には、特に制限されないが、前記ポートＰＯＲＴ３乃至ＰＯＲＴ５が割当てられる。
【００５１】
一方、マイクロコンピュータＭＣＵに前記ＰＲＯＭライタ書換えモードが設定されたとき、そのフラッシュメモリＦＭＲＹ２を書換え制御するＰＲＯＭライタ３０との接続には、特に制限されないが、前記ポートＰＯＲＴ２乃至ＰＯＲＴ５及びＰＯＲＴ８が割当てられる。すなわち、コマンド書込み、そして書込み並びにベリファイのためのデータＥＤ０乃至ＥＤ７の入出力には前記ポートＰＯＲＴ２が割当てられ、アドレス信号ＥＡ０ないしＥＡ１６の入力並びにアクセス制御信号ＣＥ＊（チップイネーブル信号），ＯＥ＊（アウトプットイネーブル信号），ＷＥ＊（ライトイネーブル信号）の入力には前記ポートＰＯＲＴ３乃至ＰＯＲＴ５及びＰＯＲＴ８が割当てられる。前記チップイネーブル信号ＣＥ＊はＰＲＯＭライタ３０からのチップ選択信号であり、アウトプットイネーブル信号ＯＥ＊はマイクロコンピュータＭＣＵ３に対する出力動作の指示信号であり、ライトイネーブル信号ＷＥ＊はマイクロコンピュータＭＣＵ３に対する書込み動作の指示信号である。尚、アドレス信号ＥＡ０ないしＥＡ１６のうちの１ビットＥＡ９の入力には前記信号ＮＭＩの入力端子が割当てられる。この様にして割当てられたポートの外部端子、並びに高電圧Ｖｐｐの印加端子などのその他必要な外部端子は、ピン配置変換用のソケットとしての図示しないソケットアダプタを介してＰＲＯＭライタ３０に接続される。上記ＰＲＯＭライタ書換えモードにおいてＰＲＯＭライタ３０との接続に割当てられるマイクロコンピュータＭＣＵ３の外部端子群は、その他の動作モードでは他の機能が割当てられることになる。
【００５２】
図７には図６のマイクロコンピュータＭＣＵ３を、例えば、樹脂によって封止することによって得られた４辺部に外部端子を有するパッケージの上面を示す。図７に示された信号は図６と共通である。信号名の示されていない外部端子（ピン）は、ウェート信号の入力ピン、バスリクエスト信号の入力ピン、バスアクノレッジ信号の出力ピン、シリアル・コミュニケーション・インタフェースＳＣＩなどの周辺回路と外部との信号入出力ピンなどに利用される。
【００５３】
〔５〕内蔵フラッシュメモリ
【００５４】
図８には図６のマイクロコンピュータＭＣＵ３に内蔵されるフラッシュメモリＦＭＲＹ２の全体的なブロック図が示される。同図においてＡＲＹは前記図３１で説明した２層ゲート構造の絶縁ゲート型電界効果トランジスタによって構成されたメモリセルをマトリクス配置したメモリアレイである。このメモリアレイＡＲＹは図３４で説明した構成と同様に、メモリセルのコントロールゲートはそれぞれ対応するワード線に接続され、メモリセルのドレイン領域はそれぞれ対応するデータ線に接続され、メモリセルのソース領域はメモリブロック毎に共通のソース線に接続されているが、メモリブロックの分割態様は図３４とは相違される。例えば、図９に示されるように、相対的にそれぞれの記憶容量が大きな７個の大メモリブロック（大ブロック）ＬＭＢ０乃至ＬＭＢ６と、相対的にそれぞれの記憶容量が小さな８個の小メモリブロック（小ブロック）ＳＭＢ０乃至ＳＭＢ７とに分割されている。大メモリブロックはプログラム格納領域又は大容量データ格納領域などに利用される。小メモリブロックは小容量データ格納領域などに利用される。
【００５５】
図８において、ＡＩＬはアドレス信号ＰＡＢ０乃至ＰＡＢ１５のラッチ回路である。アドレス信号ＰＡＢ０乃至ＰＡＢ１５は、ＣＰＵ１０の出力アドレス信号に対応されると共に、前記ＰＲＯＭライタ書換えモードではＰＲＯＭライタ３０の出力アドレス信号ＥＡ０乃至ＥＡ１５に対応される。ＸＡＤＥＣはアドレスラッチＡＩＬを介して取り込まれるＸアドレス信号を解読するＸアドレスデコーダである。尚、ＸアドレスデコーダＸＡＤＥＣから出力される選択信号に基づいてワード線を駆動するワードドライバについては図示を省略してある。データ読出し動作においてワードドライバは５Ｖのような電圧でワード線を駆動し、データの書き込み動作では１２Ｖのような高電圧でワード線を駆動する。データの消去動作においてワードドライバの全ての出力は０Ｖのような低い電圧レベルにされる。ＹＡＤＥＣはアドレスラッチＡＩＬを介して取り込まれるＹアドレス信号を解読するＹアドレスデコーダである。ＹＳＥＬはＹアドレスデコーダＹＡＤＥＣの出力選択信号に従ってデータ線を選択するＹセレクタである。ＳＡはデータ読出し動作においてＹセレクタＹＳＥＬで選択されたデータ線からの読出し信号を増幅するセンスアンプである。ＤＯＬはセンスアンプＳＡの出力を保持するデータ出力ラッチである。ＤＯＢはデータ出力ラッチＤＯＬが保持するデータを外部に出力するためのデータ出力バッファである。図においてＰＤＢ０乃至ＰＤＢ７は下位８ビット（１バイト）データであり、ＰＤＢ８乃至ＰＤＢ１５は上位８ビット（１バイト）データである。この例に従えば出力データは最大２バイトとされる。ＤＩＢは外部から供給される書き込みデータを取り込むためのデータ入力バッファである。データ入力バッファＤＩＢから取り込まれたデータはデータ入力ラッチＤＩＬに保持される。データ入力ラッチＤＩＬに保持されたデータが”０”のとき、書き込み回路ＷＲはＹセレクタＹＳＥＬで選択されたデータ線に書き込み用高電圧を供給する。この書き込み用高電圧はＸアドレス信号に従ってコントロールゲートに高電圧が印加されるメモリセルのドレインに供給され、これによって当該メモリセルが書き込みされる。ＥＣは指定されたメモリブロックのソース線に消去用高電圧を供給してメモリブロックの一括消去を行うための消去回路である。消去回路ＥＣに対する消去ブロックの指定は、消去ブロック指定レジスタＭＢＲＥＧが行う。このレジスタＭＢＲＥＧに対するデータの書込みはＣＰＵ１０が行う。
【００５６】
ＦＣＯＮＴは、フラッシュメモリＦＭＲＹ２におけるデータ読出し動作のタイミング制御、及び書き込み消去のための各種タイミングや電圧の選択制御などを行う制御回路である。この制御回路ＦＣＯＮＴは、コントロールレジスタＣＲＥＧの内容を参照して処理を行う。
【００５７】
図１０には前記コントロールレジスタＣＲＥＧと消去ブロック指定レジスタＭＢＲＥＧの一例が示される。この消去ブロック指定レジスタＭＢＲＥＧは２本のレジスタＭＢＲＥＧ１およびＭＢＲＥＧ２によって構成され、夫々のレジスタＣＲＥＧ，ＭＢＲＥＧ１，ＭＢＲＥＧ２は８ビットのレジスタとされる。コントロールレジスタＣＲＥＧにおいて、Ｖｐｐは書換え用高電圧印加に応じて”１”にされる高電圧印加フラグである。Ｅビットは消去動作を指示するビットとされ、ＥＶビットは消去におけるベリファイ動作の指示ビットとされる。Ｐビットは書込み動作（プログラム動作）の指示ビットとされ、ＰＶビットは書込みにおけるベリファイ動作の指示ビットとされる。消去ブロック指定レジスタＭＢＲＥＧ１およびＭＢＲＥＧ２は、それぞれ７分割された大ブロックと８分割された小ブロックに含まれる何れのメモリブロックを消去するかを指定するレジスタであり、その第０ビットから第７ビットは各メモリブロックの指定用ビットとされ、例えばビット”１”は対応メモリブロックの選択を意味し、ビット”０”は対応メモリブロックの非選択を意味する。例えば、消去ブロック指定レジスタＭＢＲＥＧ２の第７ビットが”１”のときは、小メモリブロックＳＭＢ７の消去が指定される。
【００５８】
上記レジスタＣＲＥＧ，ＭＢＲＥＧ１，ＭＢＲＥＧ２はＣＰＵ１０によってリード・ライト可能にされている。制御回路ＦＣＯＮＴは、そのレジスタＣＲＥＧ，ＭＢＲＥＧ１，ＭＢＲＥＧ２の設定内容を参照し、それにしたがって消去・書込みなどを行う。ＣＰＵ１０は、そのレジスタＣＲＥＧ，ＭＢＲＥＧ１，ＭＢＲＥＧ２の内容を書換えることによって、消去・書込み動作などを制御することができる。例えば、前記ＰＲＯＭライタ書換えモードが設定されているとき、ＣＰＵ１０は、ＰＲＯＭライタ３０によってコマンドラッチに書込まれたコマンドの内容に従って、当該レジスタＣＲＥＧ，ＭＢＲＥＧ１，ＭＢＲＥＧ２を設定することになる。
【００５９】
図８において、制御回路ＦＣＯＮＴには、制御信号としてＦＬＭ，ＭＳ−ＦＬＮ，ＭＳ−ＭＩＳＮ，Ｍ２ＲＤＮ，Ｍ２ＷＲＮ，ＭＲＤＮ，ＭＷＲＮ，ＩＯＷＯＲＤＮ，ＲＳＴ，ＶＰＰＨ，Ａ９Ｈ，ＳＥＣＳＮ，ＳＥＣＮ，ＤＳＣＮ，及びＸＭＯＮが供給される。
【００６０】
制御信号ＦＬＭは、フラッシュメモリＦＭＲＹ２の動作モードを指定する信号であり、マイクロコンピュータＭＣＵ３がＰＲＯＭライタ３０に結合されて書換え可能にされるときには論理値”１”にされ、それいがいのときには論理値”０”にされる。この信号ＦＬＭは、例えば前記モード信号ＭＤ０乃至ＭＤ２に基づいて形成される。制御信号ＭＳ−ＦＬＮは、フラッシュメモリＦＭＲＹ２の選択信号である。制御信号ＭＳ−ＭＩＳＮはレジスタＣＲＥＧ，ＭＢＲＥＧ１，ＭＢＲＥＧ２の選択信号である。レジスタＣＲＥＧ，ＭＢＲＥＧ１，ＭＢＲＥＧ２の何れを選択するかはＣＰＵ１０が出力するアドレス信号の下位２ビットで決定される。Ｍ２ＲＤＮはメモリリードストローブ信号、Ｍ２ＷＲＮはメモリライトストローブ信号、ＭＲＤＮはコントロールレジスタＣＲＥＧのリード信号、ＭＷＲＮはコントロールレジスタＣＲＥＧのライト信号である。メモリライトストローブ信号Ｍ２ＷＲＮは、メモリセルに書込むべきデータをデータ入力ラッチＤＩＬに書込むためのストローブ信号とみなされる。メモリセルへの実際の書込みは前記コントロールレジスタＣＲＥＧのＰビットをセットすることによって開始される。制御信号ＩＯＷＯＲＤＮはフラッシュメモリＦＭＲＹ２に対する８ビットリードアクセスと１６ビットリードアクセスとの切換え信号とされる。制御信号ＲＳＴはフラッシュメモリＦＭＲＹ２のリセット信号である。この信号ＲＳＴによってフラッシュメモリＦＭＲＹ２がリセットされることにより、或は前記コントロールレジスタＣＲＥＧのＶｐｐフラグが”０”にされることにより、当該レジスタＣＲＥＧにおけるＥＶ，ＰＶ，Ｅ，Ｐの各モード設定ビットがクリアされる。ＶＰＰＨはＶｐｐ＝１２Ｖの検出信号である。尚、その他の信号Ａ９Ｈ、ＳＥＣＮ、ＤＳＣＮ、ＸＭＯＮの各信号は、セキュリティービットのイネーブル信号やテストイネーブル信号であり、本発明とは直接関係無いのでその詳細な説明は省略する。
【００６１】
〔６〕コマンド方式対応ハードウェア
【００６２】
図１１には図６のマイクロコンピュータにおいてコマンド方式によるＰＲＯＭライタ書換えモードに対応するためのハードウェアの詳細な一例が示されている。
【００６３】
ＰＲＯＭライタ３０から供給されるコマンド及びアドレスはＣＰＵ１０とは非同期に入力されてくるので、コマンドを受けるためのコマンドラッチＣＬ、アドレスを受けるためのアドレスラッチＡＬが設けられている。ＰＲＯＭライタ３０と接続されるポートＰＯＲＴは図示しないソケットアダプタを介して一義的に決定される。ポートＰＯＲＴがレジスタを持っている場合には、そのレジスタを前記アドレスラッチＡＬやコマンドラッチＣＬとすることができ、新たにそれらを設けなくてもよい。さらにコマンドラッチＣＬにコマンドが書込まれたことをＣＰＵ１０が認識できるようにコマンドラッチＣＬの所定ビットにはコマンドフラグＣＦが割り当てられる。コマンドフラグＣＦが立った場合にＣＰＵ１０はコマンドラッチＣＬにコマンドが入力されたことを知り、コマンドを読みに行くという動作を行う。ＰＲＯＭライタ３０からの書込みは、先ず最初にコマンドの書込みとされ、次いで必要に応じてＰＲＯＭライタ３０からアドレス、データが書き込まれる。このとき、コマンド入力からデータ入力までの時間が最小で２０ｎｓと少ない為、ＣＰＵ１０がコマンドを読みに行くより早くデータがコマンドラッチＣＬに入力されてしまうことが考えられる。そこで、コマンドとデータの衝突を避けるため、コマンドラッチＣＬ以外にもう一つデータを受けるためのデータラッチＤＬを設ける。更に、データラッチＤＬにデータが入力されたことを示すデータフラグＤＦをコマンドラッチの所定ビットに割り当てる。ＣＰＵ１０は初めにＣＦ＝１（既にコマンドが入力されている）もしくはＤＦ＝１（コマンドが入力され、さらにデータも入力されている）の場合、コマンドを読みに行き、コマンド認識後ＤＦ＝１の場合にデータを読みに行くという動作を行う。
【００６４】
ここでコマンドラッチＣＬとデータラッチＤＬの二つのラッチがデータ入出力用のポートＰＯＲＴを共有しているため、ＰＲＯＭライタ３０から入力されるコマンドとデータを識別することが必要になる。そこでＰＲＯＭライタ３０からの入力データはＣＦ＝０かつＤＦ＝０のときはコマンドラッチＣＬにラッチされ、ＣＦ＝１かつＤＦ＝０のときデータラッチＤＬにラッチされるようになっている。すなわち、図１１に概念的に示されているように、ＰＲＯＭライタ３０からの書込み信号ＷＥ、コマンドフラグＣＦ、データフラグＤＦの夫々の論理値に応じた信号を受けてラッチ制御信号を生成するアンドゲートＡＮＤが設けられている。更に、図１２にも示されるように、コマンドラッチＣＬにラッチされたコマンドの種類をコマンドデコーダＤＥＣでデコードして、それが所定のコマンドであるときにコマンドフラグＣＦをセットし、また、データラッチＤＬにデータがラッチされたときにデータフラグＤＦをセットし且つコマンドフラグＣＦをクリアする論理が採用されている。これによって上記コマンドラッチＣＬとデータラッチＤＬの使い分けが実現される。本実施例に従えば、前記コマンドラッチＣＬは８ビットのレジスタとされ、下位側２ビットがデータフラグＤＦ，コマンドフラグＣＦとされ、上位側４ビットがコマンド保持用ビットとされる。尚、図１１において、ＡＩＢはアドレス入力バッファ、ＭＰＸはアドレスマルチププレクサである。
【００６５】
前述したようにコマンドラッチＣＬにラッチされたコマンドをコマンドデコーダＤＥＣでデコードしてコマンドフラグＣＦのセットを行うようにした。仮にこの処理をＣＰＵ１０に委ねるならば、ＣＰＵ１０はバスサイクルを起動して常にコマンドラッチＣＬの内容をモニタしなければならず、動作上無駄を生ずることになるからである。また、コマンドデコーダＤＥＣで制御されるコマンドフラグＣＦのセット状態に応じてコマンドラッチＣＬのコマンドを全てＣＰＵ１０が解析していたのではそのコマンドで指示される動作がタイミング上間に合わないものがある。例えば、フラッシュメモリＦＭＲＹ２からデータを読出すようなリード系コマンドである。これに対処するため、図１１及び図１２に示されるように、コマンドラッチＣＬ、データラッチＤＬ、及びアドレスラッチＡＬがフラッシュメモリＦＭＲＹ２とＣＰＵ１０に接続される状態と、前記コマンドラッチＣＬ、データラッチＤＬ、及びアドレスラッチＡＬがフラッシュメモリＦＭＲＹ２に接続されＣＰＵ１０には非接続とされる状態とを選択可能なバススイッチＢＳＷを、内部バスＡＢＵＳ，ＤＢＵＳに設け、そのバススイッチＢＳＷを、コマンドデコーダＤＥＣによるリード系コマンドのデコード結果から得られる信号によって制御するようにする。斯るバススイッチＢＳＷが開いた状態において、フラッシュメモリＦＭＲＹ２はマイクロコンピュータＭＣＵ３の外部から、換言すればＰＲＯＭライタ３０から、直接リードアクセス可能にされる。
【００６６】
〔７〕ＰＲＯＭライタによる情報書込みなどのコマンド仕様
【００６７】
図１３にはＰＲＯＭライタ３０から供給可能なコマンドの仕様例が示される。同図に示されるコマンドは、特に制限されないが、８種類とされ、各コマンドに対応してＰＲＯＭライタ３０が起動すべきサイクルの内容が図示されている。コマンドのコードは、同図に示される第１サイクルのデータに対応される。このコードは１６進数で示され、該コードの最後に付されているＨは１６進数であることを意味している。リードコマンド（Ｒｅａｄ）はフラッシュメモリＦＭＲＹ２からデータ読み出しのためのコマンドである。当該コマンドの第２サイクルにおけるＲＡはリードアドレスを意味する。リードＩＤコマンド（Ｒｅａｄ  ＩＤ）は製品識別コードアドレス（ＩＡ）から製品識別コード（ＩＤ）を読出すためのコマンドである。消去コマンド（Ｅｒａｓｅ）はフラッシュメモリのデータを消去するコマンドである。消去に際しては、過消去（消去を行い過ぎるとメモリのＶｔｈが負になり、正常な読み出しができなくなる現象）を避けるため、消去前に書込みレベルを均一化するためのプレライトを実施したり、ベリファイを行いながら少しずつ消去を行うという消去手順が採用されている。消去ベリファイコマンド（Ｅ  Ｖｅｒｉｆｙ）は消去状態を確認するためのコマンドである。ＥＡは消去ベリファイのためのメモリアドレスである。ＥＶＤは消去ベリファイ出力データである。自動消去モード（Ａ  Ｅｒａｓｅ）は自動的に消去並びに消去ベリファイを行うためのコマンドであり、自動消去開始後、ステータスポーリングにより自動消去動作終了の確認が可能にされる。ステータスポーリングフラグＳＰＦは図１１におけるデータラッチＤＬの上位側ビットに割当てられている。書込みコマンド（Ｐｒｏｇｒａｍ）は書込みを指示するためのコマンドであり、ＰＡは書込みアドレス、ＰＤは書込みデータである。プログラムベリファイコマンド（Ｐ  Ｖｅｒｉｆｙ）は直前に書込んだデータが正しく書込まれているかを確認するためのコマンドであり、ＰＶＤはプログラムベリファイ出力データである。リセットコマンド（Ｒｅｓｅｔ）はコマンドを間違えた場合にそのコマンドをリセットするためのコマンドである。
【００６８】
上記コマンド仕様は、特に制限されないが、平成３年９月に発行の「日立ＩＣメモリデータブック１」の第８６８頁から第８８１頁に記載のＨＮ２８Ｆ１０１シリーズのフラッシュメモリ単体ＬＳＩ（１Ｍビットフラッシュメモリ）のコマンド仕様と互換性を有している。
【００６９】
〔８〕オンボードでの情報書込み動作
【００７０】
オンボード状態での情報書込みなどの指示とその手順は全てＣＰＵ１０とその動作プログラムによって制御され、コントロールレジスタＣＲＥＧの各ビットをソフトウェアによりセット／クリアすることにより情報書込みなどの処理を制御する。このときの書き換え用プログラムが例えばフラッシュメモリＦＭＲＹ２上に置かれているときは、情報書込み動作時或はシステムリセット時に予め当該書換え用プログラムはＲＡＭへ転送され、ＲＡＭ上の該プログラムをＣＰＵ１０が実行して情報書換えなどを行う。このときの書換え処理手順の一例を以下この項目で説明していく。
【００７１】
フラッシュメモリに対する情報の書込みは、基本的に消去状態のメモリセルに対して行われる。マイクロコンピュータがシステムに実装された状態でフラッシュメモリの書換えを行うとき、ＣＰＵ１０が実行すべき書換え制御プログラムは、消去用プログラムと、書込み用プログラムを含み、その情報書込みの指示に従って、最初に消去の処理ルーチンを実行し、ひき続いて自動的に書込みの処理ルーチンを実行するように書換え制御プログラムを構成することができる。或は消去と書込みを分けて別々に動作を指示するようにしてもよい。
【００７２】
図１４及び図１５には書込み制御手順の詳細な一例が示される。同図に示される手順の制御主体はＣＰＵ１０である。
【００７３】
バイト単位でのデータ書込みの最初のステップでは、ＣＰＵ１０はその内蔵カウンタｎに１をセットする（ステップＳ１）。次に、ＣＰＵ１０は、フラッシュメモリＦＭＲＹ２に書込むべきデータを図１１のデータ入力ラッチＤＩＬにセットするとともに、書込みアドレスをアドレスラッチＡＩＬにセットする（ステップＳ２）。そしてＣＰＵ１０は、コントロールレジスタＣＲＥＧに対するライトサイクルを発行して、プログラムビットＰをセットする（ステップ３）。これにより制御回路ＦＣＯＮＴは、前記ステップＳ２でセットされたデータ及びアドレスに基づいて、そのアドレスで指定されるメモリセルのコントロールゲートとドレインとに高圧を印加して書込みを行う。このフラッシュメモリ側での書込み処理時間としてＣＰＵ１０は（ｘ）μｓｅｃ待ち（ステップＳ４）、次いでプログラムビットＰをクリアする（ステップＳ５）。ここで（ｘ）μｓｅｃの時間はメモリセルの特性に合わせて決定され、例えば、１０μｓｅｃのような時間とされる。
【００７４】
その後、ＣＰＵ１０は書込み状態を確認するために、コントロールレジスタＣＲＥＧに対するライトサイクルを発行して、プログラムベリファイビットＰＶをセットする（ステップ６）。これにより制御回路ＦＣＯＮＴは、前記ステップＳ２でセットされたアドレスを利用して、そのアドレスで選択されるべきワード線にベリファイ用電圧を印加して、前記書込みを行ったメモリセルのデータを読出す。読出しのために（ｙ）μｓｅｃ待つ（ステップＳ７）。ここで前記ベリファイ用電圧は、充分な書込みレベルを保証するため、例えば５Ｖのような電源電圧Ｖｃｃよりもレベルの高い７Ｖのような電圧レベルとされる。（ｙ）ｓｅｃはそのようなベリファイ用電源の立上がり特性によって決まり、例えば２μｓｅｃ以下とされる。ＣＰＵ１０はそれによって読出されたデータと書込みに利用したデータとの一致を確かめる（ステップＳ８）。ＣＰＵ１０は、ベリファイによって一致を確認すると、プログラムベリファイビットＰＶをクリアし（ステップＳ９）、これにより当該１バイトデータの書込みが完了される。
【００７５】
一方、ＣＰＵ１０は、ステップＳ８のベリファイによって不一致を確認すると、ステップＳ１０でプログラムベリファイビットＰＶをクリアした後、前記カウンタｎの値が、書込みリトライ上限回数Ｎに到達しているかの判定を行う（ステップＳ１１）。この結果、書込みリトライ上限回数Ｎに到達している場合には書込み不良として処理が終了される。書込みリトライ上限回数Ｎに到達していない場合には、ＣＰＵ１０は、カウンタｎの値を１だけインクリメントして（ステップＳ１２）、前記ステップＳ３から処理を繰返していく。
【００７６】
図１６及び図１７には消去制御手順の詳細な一例が示される。同図に示される手順の制御主体はＣＰＵ１０である。
【００７７】
ＣＰＵ１０は、消去を行うに当たりその内蔵カウンタｎに１をセットする（ステップＳ２１）。次にＣＰＵ１０は、消去対象領域のメモリセルに対してプレライトを行う（ステップＳ２２）。すなわち、消去対象アドレスのメモリセルに対してデータ”０”を書込む。このプレライトの制御手順は前記図１４及び図１５で説明した書込み制御手順を流用することができる。このプレライトの処理は、消去前のフローティングゲート内の電荷量を全ビット均一にして、消去状態を均一化するために行われる。
【００７８】
次に、ＣＰＵ１０は、消去ブロック指定レジスタＭＢＲＥＧに対するライトサイクルを発行して、一括消去対象メモリブロックを指定する（ステップＳ２３）。すなわち、消去ブロック指定レジスタＭＢＲＥＧ１およびＭＢＲＥＧ２に消去対象メモリブロック番号を指定する。消去対象メモリブロックを指定した後、ＣＰＵ１０は、コントロールレジスタＣＲＥＧに対するライトサイクルを発行して、イレーズビットＥをセットする（ステップ２４）。これにより制御回路ＦＣＯＮＴは、前記ステップＳ２３で指定されたメモリブロックのソース線に高電圧を印加させて、当該メモリブロックを一括消去する。このフラッシュメモリ側での一括消去の処理時間としてＣＰＵ１０は例えば（ｘ）ｍｓｅｃ待つ（ステップＳ２５）。ここで（ｘ）ｍｓｅｃはメモリセルトランジスタの特性に合わせて決定され、例えば１０ｍｓｅｃとされる。この（ｘ）ｍｓｅｃという時間は、１回で消去動作を完結することができる時間に比べて短い時間とされている。そして、次いでイレーズビットＥをクリアする（ステップＳ２６）。
【００７９】
その後、ＣＰＵ１０は消去状態を確認するために、先ず一括消去対象メモリブロックの先頭アドレスをベリファイすべきアドレスとして内部にセットし（ステップＳ２７）、次いで、ベリファイアドレスにダミーライトを行う（ステップＳ２８）。すなわち、ベリファイすべきアドレスに対してメモリライトサイクルを発行する。これにより、ベリファイすべきメモリアドレスがアドレスラッチＡＩＬに保持される。その後ＣＰＵ１０は、コントロールレジスタＣＲＥＧに対するライトサイクルを発行して、イレーズベリファイビットＥＶをセットする（ステップ２９）。これにより制御回路ＦＣＯＮＴは、前記ステップＳ２８でセットされたアドレスを利用して、そのアドレスで選択されるべきワード線に消去ベリファイ用電圧を印加して、前記消去されたメモリセルのデータを読出す。読出すために（ｙ）μｓｅｃ待つ（ステップＳ３０）。ここで前記消去ベリファイ用電圧は、充分な消去レベルを保証するため、例えば５Ｖのような電源電圧Ｖｃｃよりもレベルの低い３．５Ｖのような電圧レベルとされる。前記（ｙ）μｓｅｃはそのようなベリファイ用電源の立上がり特性によって決まり、例えば２μｓｅｃ以下の時間とされる。ＣＰＵ１０はそれによって読出されたデータが消去完結状態のデータに一致するかをベリファイする（ステップＳ３１）。ＣＰＵ１０は、ベリファイによって一致を確認すると、イレーズベリファイビットＥＶをクリアし（ステップＳ３２）、次いで今回のベリファイアドレスが消去したメモリブロックの最終アドレスか否かを判定し（ステップＳ３３）、最終アドレスであれば一連の消去動作を終了する。最終アドレスに至っていないと判定されたときは、ベリファイアドレスを１だけインクリメントして（ステップＳ３４）、再びステップＳ２８からの処理を繰返していく。
【００８０】
一方、ＣＰＵ１０は、ステップＳ３１のベリファイによって不一致を確認すると、ステップＳ３５でイレーズベリファイビットＥＶをクリアした後、前記カウンタｎの値が、漸次消去上限回数Ｎに到達しているかの判定を行う（ステップＳ３６）。この結果、漸次消去上限回数Ｎに到達している場合には消去不良として処理が終了される。漸次消去上限回数Ｎに到達していない場合には、ＣＰＵ１０は、カウンタｎの値を１だけインクリメントして（ステップＳ３７）、前記ステップＳ２４から処理を繰返していく。実際には、消去し過ぎによってメモリセルのしきい値電圧が負の値になってしまうような過消去を防止するために、１回毎にベリファイを行いながら１０ｍｓｅｃというような短時間づつ徐々に消去がくり返し行われていく。
【００８１】
〔９〕コマンド方式による情報書込み動作（コマンド対応）
【００８２】
モード信号ＭＤ０〜ＭＤ２を介してマイクロコンピュータＭＣＵ３にＰＲＯＭライタによる情報書込みモードが設定されると、フラッシュメモリＦＭＲＹ２はＰＲＯＭライタ３０によってコマンド方式と呼ばれる方式で情報に書込みなどが行われる。ここで、コマンド方式とは、フラッシュメモリに対する情報書込みなどの指示が、ＰＲＯＭライタ３０のような外部装置からコマンドによって与えられることをいう。コマンドに従った処理はＣＰＵ１０が制御する。そのための制御プログラムは、フラッシュメモリＦＭＲＹ２が有し、ＰＲＯＭライタ３０による情報書込みモードの設定に呼応してそのプログラムがＲＡＭに転送され、ＲＡＭに転送された制御プログラムをＣＰＵ１０が実行する。この動作プログラムは、前記オンボード状態で内蔵フラッシュメモリの情報書込みを制御するためのプログラムと部分的に共通化しても、また全く別であってもよい。コマンド仕様は図１３に従って前述した通りであり、以下コマンド毎にその動作を説明する。
【００８３】
（１）書込みコマンド
ＰＲＯＭライタ３０はＣＰＵ１０とは非同期で、図１３のコマンド仕様に従って、コマンド、データ、及びアドレスを書込む。ＣＰＵ１０は初めにコマンドフラグＣＦ＝１（既にコマンドが入力されている）もしくはデータフラグＤＦ＝１（コマンドが入力され、さらにデータも入力されている）の場合にコマンドを読みに行き、コマンド認識後データフラグＤＦ＝１の場合にデータやアドレスを読みに行くという動作を行う。ＰＲＯＭライタ３０から供給されるコマンドは、コマンドフラグＣＦ＝０かつデータフラグＤＦ＝０に従ってコマンドラッチＣＬにラッチされる。メモリセルに書込まれるべきデータは、コマンドフラグＣＦ＝１かつデータフラグＤＦ＝０に従ってデータラッチＤＬにラッチされる。ＣＰＵ１０は、読み込んだコマンドが「書込みコマンド」であると認識すると、その動作プログラムに従ってアドレスラッチＡＬ、データラッチＤＬからアドレス、データを読んで、フラッシュメモリＦＭＲＹ２内部のアドレス入力ラッチＡＩＬ、データ入力ラッチＤＩＬにアドレス、データを転送する。そしてＣＰＵ１０は、コントロールレジスタＣＲＥＧの書込みビット（Ｐビット）をセットすることで実際にフラッシュメモリＦＭＲＹ２のメモリセルに書込みを行う。メモリセルに対する実際の書込み処理手順は、図１４で説明した内容と実質的に同じである。書込みが行われた後ＰビットをクリアしＣＦ、ＤＦを０にもどす。書込み動作時のフラグＣＦ，ＤＦの状態とＣＰＵ１０の動作をまとめたものは図１８に示される。
【００８４】
（２）書込みベリファイコマンド
書込みにはその動作の終了に伴って書き込みベリファイモードが必ず実行される。書込みベリファイは直前に書き込んだデータが書き込まれているかを確認する動作である。本コマンドの場合もコマンドの解析までの動作は前記書込みコマンドと同様に行われる。ＣＰＵ１０はコマンドが書込みベリファイコマンドである事を認識すると、以下の手順で制御を行う。まずコントロールレジスタＣＲＥＧのＰＶビット（プログラムベリファイビット）を”１”にセットする。この時フラッシュメモリＦＭＲＹ２内のアドレスラッチＡＩＬには直前の書込みを行ったときのアドレスがラッチされているのでこのアドレスで選択されるワード線にベリファイ用の電圧（たとえば７ｖ）が印加される。次にＣＰＵ１０はフラッシュメモリＦＭＲＹ２のリードを行う。この場合もアドレスとしてはラッチされているアドレスが用いられるので、結局先に書込みを行ったメモリセルに対してゲート電圧としてベリファイ用の電圧を印加した状態でリードが行われることになる。ＣＰＵ１０はこのリードしたデータをポートＰＯＲＴのデータラッチＤＬに書き込み、ＰＶビットをクリアすることによって動作を終了する。ＰＲＯＭライタ３０はデータラッチＤＬの値をリードすることによってベリファイを行う。書込みベリファイ時のフラグの状態とＣＰＵ１０の動作については図１９にまとめて示されている。
【００８５】
（３）消去コマンド
本実施例のマイクロコンピュータＭＣＵ３に従えば、内蔵フラッシュメモリＦＭＲＹ２の消去は前記フラッシュメモリ単体ＬＳＩとしての１Ｍフラッシュメモリ（ＨＮ２８Ｆ１０１）とコンパチブルにするため、ブロック消去はサポートせずマット一括消去のみとされる。図１３のコマンド仕様から明らかなように、消去コマンドが２回書き込まれると消去が始まる。消去の場合もコマンド解析までの動作は書込みの場合と同じである。消去は消去ブロック指定レジスタＭＢＲＥＧを全ビット選択状態にセットした後、コントロールレジスタＣＲＥＧのＥビット（イレースビット）を”１”にセットすることによりスタートする。Ｅビットをセットすることによりメモリマットのソース線に高電圧が印加され消去が行われる。一定時間Ｅビットを”１”にした後クリアして消去を終了する。メモリセルに対する消去の制御手順は、図２Ａで説明した制御内容と実質的に同じである。
【００８６】
（４）消去ベリファイコマンド
消去後実行されるベリファイは書込みベリファイと類似した動作となる。
コマンド解析後、ＣＰＵ１０はポートのアドレスラッチＡＬからベリファイを行うアドレスを読み込み、フラッシュメモリＦＭＲＹ２にライトする。次にＣＰＵ１０がコントロールレジスタＣＲＥＧのＥＶビットをセットすることにより、先にラッチされたアドレスで選択されたワード線にベリファイ用の電圧（例えば３．５ｖ）が印加される。この状態でＣＰＵ１０はフラッシュメモリＦＭＲＹ２をリードし、リードしたデータをポートのデータラッチＤＬにライトする。その後ＥＶビットをクリアし、動作を終了する。
【００８７】
（５）自動消去コマンド
自動消去コマンド認識後、図１６及び図１７に示した消去フローをＣＰＵ１０自体が全て行うものである。自動消去ではフラッシュメモリＦＭＲＹ２は消去開始と同時にステータスポーリング信号を出力、消去終了で信号を反転させる仕様となっている。ステータスポーリングの出力はＩ／Ｏ７なのでデータラッチＤＬの第７ビットをステータスポーリング信号を格納するビットとする。ＣＰＵ１０は消去開始と同時にデータラッチＤＬの第７ビットをクリアし、消去終了でセットする。
【００８８】
（６）読み出しコマンド
読み出しのコマンド（リード系コマンド）が発行されるとフラッシュメモリＦＭＲＹ２はＰＲＯＭライタ３０から自由にリードできる状態にされる必要がある。前述した方式ではＣＰＵ１０でコマンドの解析を行うため、コマンドが入力されてからリード可能な状態になるまでの時間が長くなり前記１Ｍフラッシュメモリの仕様に合わせることができない。そこで読み出しモードの際は前記バススイッチＢＳＷでＣＰＵ１０を切り離し、外部から内蔵フラッシュメモリＦＭＲＹ２を直接アクセスできるようにされる。ＣＰＵ１０はバス権開放を要求するＢＲＥＱ（バスリクエスト）信号を外部から入力できるようになっているが、ＣＰＵ１０がバスを開放するまで時間がかかるため、バススイッチＢＳＷで物理的にバスを切り離すようになっている。ＣＰＵ１０を介すると全てにおいて時間がかかるため、読み出し系コマンドであることがデコーダＤＥＣで認識されると、即座にバスを切り離す。この際ＣＰＵ１０へはコマンドが入力されたことを認識させないようにする為、読み出し系コマンドの場合はコマンドフラグＣＦ＝０のままとし、その他のコマンドの場合のみコマンドフラグＣＦ＝０からコマンドフラグＣＦ＝１へフラグが変化される。
【００８９】
（７）リセットコマンド
コマンドのセットアップを間違えた場合の為にリセットコマンドが用意されている。図１３のコマンド仕様からも明らかなように、このリセットコマンドを２回書き込むことでリセットが完了する仕様となっている。本実施例のマイクロコンピュータＭＣＵ３では、１回目に何等かのコマンドが入力された後またコマンドを入力するとそのコマンドはデータラッチＤＬに入力さてしまう為、最初に書込まれたリセットコマンドはデータＦＦＨと認識されてしまう可能性がある。しかしフラッシュメモリは浮遊ゲートから電子が引き抜かれた消去状態を”１”とみなす為、書込みコマンドが先に入力されていたとしてもＦＦＨは何も書き込まないことと等しいことになり全く問題ない。そして、２回目に書込まれたリセットコマンドがコマンドデコーダＤＥＣでデコードされると、そのまま読み出しモードと同様読み出し状態にされて動作を終了する。斯るリセット時のフラグの状態とＣＰＵ１０の動作については図２０と図２１にまとめて示されている。
【００９０】
〔１０〕コマンド方式による情報書込み時のＰＲＯＭライタ３０の動作
【００９１】
図２２及び図２３には情報書込みに際してのＰＲＯＭライタ３０の動作フローチャートが示される。先ず端子Ｖｐｐに１２Ｖのような書込みに必要な高電圧を出力し（ステップＳ４０）、内蔵アドレスカウンタを０に初期化する（ステップＳ４１）と共に、カウンタｎを０に設定する（ステップＳ４２）。次いでカウンタｎを１インクリメントし（ステップＳ４３）、その後にプログラムコマンドの書込みサイクルを起動して書込みコマンド（４０Ｈ）をコマンドラッチに書込む（ステップＳ４４）。その次に、書込みデータ（ＰＤ）及び書込みアドレス（ＰＡ）をデータラッチＤＬ及びアドレスラッチＡＬに書込む（ステップＳ４５）。その後例えば２５μｓｅｃ待つ（ステップＳ４６）。この間にマイクロコンピュータのＣＰＵ１０はコマンドを解釈してフラッシュメモリＦＭＲＹ２にデータを書込む。そして今度は、書込みベリファイコマンドの書込みサイクルを起動し（ステップＳ４７）、例えば６μｓｅｃ待つ（ステップＳ４８）。この間にマイクロコンピュータＭＣＵ３のＣＰＵ１０はそのコマンドを解釈して書込みアドレスのデータをデータラッチＤＬに読出す。ＰＲＯＭライタ３０はその読出しデータを取り込んで、正常に書込みできたかを判定する（ステップＳ４９）。正常と判定したときは、最終書込みアドレスかの判定を行い（ステップＳ５０）、最後でなければ書込みアドレスをインクリメントし（ステップＳ５１）、その後ステップＳ４２に戻り、最終アドレスまで書込みを行った後は端子Ｖｐｐに５Ｖのような電圧Ｖｃｃを印可して（ステップＳ５２）、書込みを終了する。ステップＳ４９において書込み異常が判定されたときは、カウンタｎの値が最大限２０に到達するまで再度ステップＳ４３に戻って書込みをくり返し、２０回繰り返しても依然書込み異常が解消されない場合にはそのアドレスが不良ビットであることを以って処理を終了する。
【００９２】
図２４及び図２５には消去に際してのＰＲＯＭライタ３０の動作フローチャートが示される。先ずフラッシュメモリの消去対象全ビットに論理値０のデータを書込む。書込みの処理は図２２及び図２３に従う。次に消去領域の先頭アドレスをアドレスカウンタにセットし（ステップＳ６１）、カウンタｎを０に設定する（ステップＳ６２）。次いでカウンタｎを１インクリメントし（ステップＳ６３）、その後に、消去コマンドの書込みサイクルを起動して消去コマンド（２０Ｈ）をコマンドラッチに書込む（ステップＳ６４）。その後例えば１０ｍｓｅｃ待つ（ステップＳ６５）。この間にマイクロコンピュータＭＣＵ３のＣＰＵ１０はコマンドを解釈してフラッシュメモリＦＭＲＹ２の消去を行う。そして今度は、消去ベリファイコマンドの書込みサイクルを起動し（ステップＳ６６）、例えば６μｓｅｃ待つ（ステップＳ６７）。この間にマイクロコンピュータＭＣＵ３のＣＰＵ１０はそのコマンドを解釈して消去ベリファイアドレス（ＥＡ）のデータを読出してデータラッチＤＬに転送する。ＰＲＯＭライタ３０はその読出しデータを取り込んで、正常に消去できたかを判定する（ステップＳ６８）。正常と判定したときは、最終消去アドレスかの判定を行い（ステップＳ６９）、最後でなければ消去ベリファイアドレスをインクリメントし（ステップＳ７０）し、その後でステップＳ６６に戻り、最終アドレスまで消去ベリファイを行って処理を終了する。ステップＳ６８において消去異常が判定されたときは、カウンタｎの値が最大限３０００に到達するまで再度ステップＳ６３に戻って消去を繰返し、３０００回繰り返しても依然消去異常が解消されない場合にはそのアドレスが不良ビットであることを以って処理を終了する。
【００９３】
〔１１〕コマンド方式による情報書き込み時のＣＰＵの動作
【００９４】
図２６にはＣＰＵ１０による前記各種コマンドに対する処理のメインフローチャートが示される。ＣＰＵ１０は前記コマンドフラグＣＦ及びデータフラグＤＦをサンプリングしており、それのセット状態を検出すると、コマンドラッチＣＬの上位４ビットを読み込んでコマンドを解析する。それがＡ０Ｈであるときは消去ベリファイ（Ｅｒａｓｅ  Ｖｅｒｉｆｙ）、Ｃ０Ｈであるときは書込みベリファイ（Ｐｒｏｇｒａｍ  Ｖｅｒｉｆｙ）、４０Ｈのときは書込み（Ｐｒｏｇｒａｍ）、２０Ｈのときは消去（Ｅｒａｓｅ）、３０Ｈのときは自動消去書（Ａｕｔｏ  Ｅｒａｓｅ）、の各処理に処理ルーチンを分岐する。尚、図１３で説明したその他のコマンドについては説明を省略する。
【００９５】
消去（Ｅｒａｓｅ）の処理ルーチンでは、図２７に示されるようにフラッシュメモリの消去に必要なシーケンスを制御した後、コマンドフラグＣＦをクリアして処理を終了する。図２７に示される消去ベリファイ（Ｅｒａｓｅ  Ｖｅｒｉｆｙ）の処理ルーチンでは、アドレスラッチＡＬから消去ベリファイアドレスを取込んでコントロールレジスタＣＲＥＧに消去ベリファイモードを設定して、そのアドレスのデータをリードしてデータラッチＤＬに転送する。自動消去（Ａｕｔｏ  Ｅｒａｓｅ）の処理ルーチンでは、図２８に示されるように、内蔵フラッシュメモリＦＭＲＹ２の全アドレスに対するプレライト実施の制御を行った後、消去の制御を行い、次いで消去ベリファイを実行させる。消去及び消去ベリファイの制御は全アドレスの消去完了まで行われ、また、消去状態の判定で消去異常が度重なって消去時間の上限を越えた場合には不良ビットの存在を以って処理が終了される。書込み（Ｐｒｏｇｒａｍ）の処理ルーチンでは、図２９に示されるように、データフラグＤＦのセット状態を判定すると、アドレスラッチＡＬから書込みアドレスを取り込み、且つ、データラッチＤＬから書込みデータを取り込んで、フラッシュメモリＦＭＲＹ２に書込みを行い、その後データフラグＤＦをクリアして処理を終了する。書込みベリファイ（Ｐｒｏｇｒａｍ  Ｖｅｒｉｆｙ）の処理ルーチンでは、図２９に示されるように、コントロールレジスタＣＲＥＧに書込みベリファイモードを設定し、直前の書込みアドレスからデータを読出し、これをデータラッチＤＬに転送し、更にコマンドフラグＣＦをクリアして処理を終了する。
【００９６】
〔１２〕ＰＲＯＭライタにとっての単体フラッシュメモリＬＳＩとの互換性
【００９７】
ＰＲＯＭライタ３０を利用してコマンド方式で内蔵フラッシュメモリＦＭＲＹ２に情報書込みを行うときの仕様と、前記単体フラッシュメモリＬＳＩ（ＨＮ２８Ｆ１０１）をＰＲＯＭライタ３０をつかって情報書込みするときの仕様との、コンパチビリティーについて本発明者は確認した。これによれば、ＰＲＯＭライタ３０による情報書込みを前記１Ｍフラッシュメモリ単体ＬＳＩ（ＨＮ２８Ｆ１０１３）と同じ仕様にするには、各種タイミングをその１Ｍフラッシュメモリと合わせることが必要である。そこで実際に制御プログラムを作成し、タイミングを合わせることができるか検討した。この検討結果は図３０に示される。この結果から例えば動作周波数１６ＭＨｚ時においてはコンパチブルであることを確認できた。
【００９８】
上記実施例によれば以下の作用効果がある。
【００９９】
（１）ＰＲＯＭライタ３０から非同期で与えられるコマンドに応じた書換えシーケンスをマイクロコンピュータの内蔵回路で実現するから、ＰＲＯＭライタ３０にとってデータ情報とアドレス情報を与える前に、データ情報を与えるのと同様にしてコマンドをコマンドラッチに書込めばよく、汎用的に利用されるＰＲＯＭライタ３０にソケットアダプタを介して結合することによって、マイクロコンピュータ内蔵のフラッシュメモリに対する情報書込みを行うことができる。
【０１００】
（２）コマンドによって指示される書換えのためのシーケンスを内蔵ＣＰＵ１０に制御させることにより、その制御のための専用回路を不要若しくは削減でき、マイクロコンピュータのチップ面積低減を実現する。更に、書換えのための制御シーケンスは、ＣＰＵ１０が実行すべきソフトウェアで変更可能であるから、フラッシュメモリを構成する記憶素子の特性に合わせて書き込み時間などの条件設定を簡単に行うことができる。
【０１０１】
（３）汎用的に利用されるＰＲＯＭライタ３０は、少なくとも、不揮発性記憶素子に対する書換え用高電圧を印加し、書換えのためのアドレスやデータを書込み信号などに従ってフラッシュメモリを含む対象半導体装置（ＬＳＩ）に供給するようになっている。このようなＰＲＯＭライタ３０は、コマンド、データ、及びアドレスを、マイクロコンピュータ内蔵ＣＰＵ１０とは非同期で供給してくる。このとき、前記コマンドラッチＣＬにコマンドが書き込まれたことを示すコマンドフラグＣＦと、このコマンドフラッグＣＦがコマンドラッチ状態を示すときに、前記コマンドラッチＣＬに代えて外部から書込み可能にされるデータラッチＤＬとを備えることにより、ＰＲＯＭライタ３０から相互に別サイクルで書き込まれるコマンドとデータ情報とのラッチ手段上での衝突を防止することができる。
【０１０２】
（４）ＣＰＵ１０は、コマンドフラグＣＦのコマンドラッチ状態に基づいてコマンドラッチＣＬのコマンドをリードするが、このとき、コマンドラッチＣＬのラッチ内容をデコードしてコマンドフラグＣＦをコマンドラッチ状態にセットするコマンドデコーダＤＥＣを設けることにより、コマンドフラグに対するセット処理の迅速化を図ることができる。仮に、コマンドフラグに対する制御もＣＰＵ１１に委ねるならば、ＣＰＵ１１はバスサイクルを起動して常にコマンドラッチＣＬの内容をモニタしなければならず、動作上無駄を生じ、フラグ処理も遅くなってしまう。
【０１０３】
（５）コマンドデコーダＤＥＣによるリード系コマンドのデコード結果に従ってＣＰＵ１１をフラッシュメモリから切り離すバススイッチＢＳＷを設けることにより、コマンドラッチにラッチした全てのコマンドをＣＰＵ１０が解析していたのではそのコマンドで指示される動作のタイミングが間に合わないリード系コマンドに対して容易に対処できる。このことは、マイクロコンピュータ内蔵フラッシュメモリに対して、ＰＲＯＭライタ３０にとっての単体フラッシュメモリＬＳＩに対する書込み処理との互換性を実現可能にする。
【０１０４】
（６）前記ＣＰＵ１０が実行すべきフラッシュメモリ書換えのための手順制御用プログラムを、フラッシュメモリに格納しておき、ＰＲＯＭライタ３０による書換え動作モードの設定に呼応してそのプログラムをＲＡＭに転送し、そのＲＡＭに転送された前記プログラムをＣＰＵ１０に実行させるようにすることにより、書換え用プログラムの修正が簡単に行える。
【０１０５】
（７）用途に応じてフラッシュメモリに格納すべき情報量がその情報の種類例えばプログラム、データテーブル、制御データなどに応じて相違されることを考慮した場合、前記フラッシュメモリにおける一括消去可能な単位として、相互に記憶容量の相違される複数個のメモリブロックを設けておくことにより、システム実装後内蔵フラッシュメモリの保持情報の部分的若しくは一部の書換えに伴って、メモリブロックを一括消去した後の書込み動作の無駄をなくして、書換え効率を向上させることができる。
【０１０６】
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１０７】
例えば、マイクロコンピュータに内蔵される周辺回路は上記実施例に限定されず適宜変更することができる。フラッシュメモリのメモリセルトランジスタは上記実施例のスタックドゲート構造のＭＯＳトランジスタに限定されず、書込み動作にもトンネル現象を用いたＦＬＯＴＯＸ型のメモリセルトランジスタを用いることも可能である。また、一括消去の単位はソース線を共通にするメモリブロックのほか、消去においてワード線を共通化できるメモリブロックとすることもできるが、その何れを選択するかは、消去電圧の極性をどうするか、或は、一括消去単位の記憶容量を極力小さくしようとする場合に単一のワード線に接続するメモリセルの数と単一のデータ線に接続されるメモリセルの数との何れの方が少ないかなどの事情を考慮して決定することができる。メモリブロックのサイズについては上記実施例のようなサイズ固定に限定されない。例えば、コントロールレジスタの設定又はモード信号の指示にしたがってそのサイズを可変にすることができる。例えば、ワード線を最小単位として一括消去電圧を印加する場合には、ワード線を消去電圧で駆動するドライバの動作をそのコントロールレジスタの設定又はモード信号の指示にしたがって選択させればよい。更にメモリブロックの分割態様としては、全体を複数個の大ブロックに分割し、更にその各大ブロックの中を複数個の小ブロックに分けて、大ブロック単位又は小ブロック単位で一括消去できるようにすることも可能である。また、ＣＰＵの制御に基づいてフラッシュメモリを書換える方式においては、書換え条件などをセルフチューニングするソフトウェアを採用することも可能である。また、フラッシュメモリのメモリセルトランジスタにおいて、そのソース及びドレインは、印加される電圧によって定まる相対的なものとして把握されるものもある。
【０１０８】
本発明は、少なくとも単一の半導体チップ上に中央処理装置と電気的に書換え可能な不揮発性のフラッシュメモリとを備えた条件のデータ処理装置に広く適用することができる。
【０１０９】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【０１１０】
外部装置から非同期で与えられるコマンドに応じた書換えシーケンスを内蔵回路で実現することにより、外部装置にとってデータ情報とアドレス情報を与える前に、データ情報を与えるのと同様にしてコマンドをデータ処理装置に与えればよく、汎用的に利用されるＰＲＯＭライタのような外部装置にソケットアダプタを介して結合することによって、データ処理装置内蔵のフラッシュメモリに対する情報書込みを容易に行うことができるという効果がある。
【０１１１】
コマンドによって指示される書換えのためのシーケンスを内蔵中央処理装置が制御することにより、その制御のための専用回路を不要若しくは削減し、データ処理装置のチップ面積低減を実現する。更に、書換えのための制御シーケンスを中央処理装置が実行するソフトウェアで変更可能であり、これにより、フラッシュメモリを構成する記憶素子の特性に合わせて書き込み時間などの条件設定を容易に行えるという効果がある。
【０１１２】
コマンドラッチ手段にコマンドが書き込まれたことを示すフラグ手段と、このフラグ手段が前記コマンドラッチ状態を示すときに、前記コマンドラッチ手段に代えて外部から書込み可能にされるデータラッチ手段とを備えることにより、ＰＲＯＭライタのような外部装置から相互に別サイクルで書き込まれるコマンドとデータ情報とのラッチ手段上での衝突を防止することができる。
【０１１３】
前記コマンドラッチ手段のラッチ内容をデコードし、前記所定のコマンドをデコードすることによって前記フラグ手段をコマンドラッチ状態にセットするコマンドデコーダを採用することにより、フラグ手段に対する処理の迅速化を図ることができる。
【０１１４】
コマンドデコーダによるリード系コマンドのデコード結果に従って中央処理装置をフラッシュメモリから切り離すゲート手段を設けることにより、コマンドラッチ手段にラッチした全てのコマンドを中央処理装置が解析していたのではそのコマンドで指示される動作のタイミングが間に合わないようなリード系コマンドに対して容易に対処できる。このことは、データ処理装置内蔵フラッシュメモリに対して、ＰＲＯＭライタのような外部装置にとっての単体フラッシュメモリＬＳＩに対する書込み処理との互換性を実現可能にする。
【０１１５】
用途に応じてフラッシュメモリに格納すべき情報量がその情報の種類例えばプログラム、データテーブル、制御データなどに応じて相違されることを考慮した場合、前記フラッシュメモリにおける一括消去可能な単位として、相互に記憶容量の相違される複数個のメモリブロックを設けることにより、システム実装後内蔵フラッシュメモリの保持情報の部分的若しくは一部の書換えに伴って、メモリブロックを一括消去した後の書込み動作の無駄をなくして、書換え効率を向上させることができる。
【図面の簡単な説明】
【図１】フラッシュメモリを内蔵した第１の実施例に係るマイクロコンピュータにおいてその内蔵フラッシュメモリをＰＲＯＭライタで書換え処理するときの機能ブロック図である。
【図２】フラッシュメモリを内蔵した第２の実施例に係るマイクロコンピュータにおいてその内蔵フラッシュメモリをＰＲＯＭライタで書換え処理するときの機能ブロック図である。
【図３】ＰＲＯＭライタによるコマンド書込みの一例タイミングチャートである。
【図４】ＣＰＵ制御によるフラッシュメモリの情報書込みサイクルの一例タイミングチャートである。
【図５】図１の第１の実施例と図２の第２の実施例との効果の相違を示す説明図である。
【図６】図２のマイクロコンピュータに対応される更に詳細なマイクロコンピュータの実施例ブロック図である。
【図７】図６のマイクロコンピュータをパッケージん具下状態で示す平面図である。
【図８】図６のマイクロコンピュータに内蔵されるフラッシュメモリの全体的なブロック図である。
【図９】メモリブロックの分割態様の一例を示す説明図である。
【図１０】コントロールレジスタと消去ブロック指定レジスタの一例説明図である。
【図１１】図６のマイクロコンピュータにおいてコマンド方式によるＰＲＯＭライタ書換えモードに対応するためのハードウェアの詳細を示すブロック図である。
【図１２】コマンドフラグ及びデータフラグ並びにバススイッチの制御形式を示す説明図である。
【図１３】ＰＲＯＭライタから供給可能なコマンドの一例仕様説明図である。
【図１４】オンボード状態での書込み制御手順の前半を示す詳細な一例フローチャートである。
【図１５】オンボード状態での書込み制御手順の後半を示す詳細な一例フローチャートである。
【図１６】オンボード状態での消去制御手順の前半を示す詳細な一例フローチャートである。
【図１７】オンボード状態での消去制御手順の後半を示す詳細な一例フローチャートである。
【図１８】ＰＲＯＭライタによる書込み動作時のフラグＣＦ，ＤＦの状態とＣＰＵの動作をまとめた説明図である。
【図１９】ＰＲＯＭライタによる書込みベリファイ時のフラグの状態とＣＰＵの動作についてまとめた説明図である。
【図２０】ＰＲＯＭライタによるリセット時のフラグの状態とＣＰＵの動作についてまとめた第１の説明図である。
【図２１】ＰＲＯＭライタによるリセット時のフラグの状態とＣＰＵの動作についてまとめた第２の説明図である。
【図２２】コマンド方式による情報書込みに際してのＰＲＯＭライタの動作の前半を示す一例フローチャートである。
【図２３】コマンド方式による情報書込みに際してのＰＲＯＭライタの動作の後半を示す一例フローチャートである。
【図２４】コマンド方式による消去に際してのＰＲＯＭライタの動作の前半を示す一例フローチャートが示される。
【図２５】コマンド方式による消去に際してのＰＲＯＭライタの動作の後半を示す一例フローチャートが示される。
【図２６】ＰＲＯＭライタから与えられるコマンドに対するＣＰＵの処理のメインフローチャートである。
【図２７】図２６に示される消去（Ｅｒａｓｅ）の処理ルーチンと消去ベリファイ（Ｅｒａｓｅ  Ｖｅｒｉｆｙ）の処理ルーチンを示すフローチャートである。
【図２８】図２６に示される自動消去書（Ａｕｔｏ  Ｅｒａｓｅ）の処理ルーチンを示すフローチャートである。
【図２９】図２６に示される書込み（Ｐｒｏｇｒａｍ）の処理ルーチンと書込みベリファイ（Ｐｒｏｇｒａｍ  Ｖｅｒｉｆｙ）の処理ルーチンを示すフローチャートである。
【図３０】ＰＲＯＭライタによる書込み仕様の検討結果を示す説明図である。
【図３１】フラッシュメモリの原理説明図である。
【図３２】フラッシュメモリのメモリセルアレイにたいする構成原理説明図である。
【図３３】フラッシュメモリに対する消去動作並びに書込み動作のための電圧条件の一例説明図である。
【図３４】一括消去可能なメモリブロックの記憶容量を相違させたフラッシュメモリの一例回路ブロック図である。
【符号の説明】
ＭＣＵ１  マイクロコンピュータ
ＭＣＵ２  マイクロコンピュータ
ＭＣＵ３  マイクロコンピュータ
１０  ＣＰＵ
ＦＭＲＹ２  フラッシュメモリ
２１  コマンドラッチ手段
２２  コマンド解析手段
２３  シーケンス制御手段
３０  ＰＲＯＭライタ
ＣＲＥＧ  コントロールレジスタ
ＭＢＲＥＧ  消去ブロック指定レジスタ
ＳＭＢ０〜ＳＭＢ７  小メモリブロック
ＬＭＢ０〜ＬＭＢ６  大メモリブロック
ＣＬ  コマンドレジスタ
ＣＦ  コマンドフラグ
ＤＦ  データフラグ
ＤＬ  データレジスタ
ＡＬ  アドレスレジスタ
ＤＥＣ  コマンドデコーダ
ＢＳＷ  バススイッチ
Ｑ１〜Ｑ４  メモリセルトランジスタ
ＳＬ１，ＳＬ２  ソース線
ＤＬ１，ＤＬ２  データ線
ＷＬ１，ＷＬ２  ワード線
【図１】
0003810745.tif 000002
【図２】
0003810745.tif 000003
【図３】
0003810745.tif 000004
【図４】
0003810745.tif 000005
【図５】
0003810745.tif 000006
【図６】
0003810745.tif 000007
【図７】
0003810745.tif 000008
【図８】
0003810745.tif 000009
【図９】
0003810745.tif 000010
【図１０】
0003810745.tif 000011
【図１１】
0003810745.tif 000012
【図１２】
0003810745.tif 000013
【図１３】
0003810745.tif 000014
【図１４】
0003810745.tif 000015
【図１５】
0003810745.tif 000016
【図１６】
0003810745.tif 000017
【図１７】
0003810745.tif 000018
【図１８】
0003810745.tif 000019
【図１９】
0003810745.tif 000020
【図２０】
0003810745.tif 000021
【図２１】
0003810745.tif 000022
【図２２】
0003810745.tif 000023
【図２３】
0003810745.tif 000024
【図２４】
0003810745.tif 000025
【図２５】
0003810745.tif 000026
【図２６】
0003810745.tif 000027
【図２７】
0003810745.tif 000028
【図２８】
0003810745.tif 000029
【図２９】
0003810745.tif 000030
【図３０】
0003810745.tif 000031
【図３１】
0003810745.tif 000032
【図３２】
0003810745.tif 000033
【図３３】
0003810745.tif 000034
【図３４】
0003810745.tif 000035