(57)【特許請求の範囲】
【請求項１】
中央処理装置と、２層ゲート構造型メモリセルが格子配列されてなるメモリアレイを有する不揮発性メモリとを同一半導体基板上に有するマイクロコンピュータであって、
上記不揮発性メモリは、上記中央処理装置が実行する所定のデータの書き込み動作において、
上記中央処理装置によって示される上記メモリアレイの指定アドレスに書き込むべきライトデータの反転信号を第１データとして形成し、上記指定アドレスから読み出されたリードデータと上記第１データとを論理積処理して第２データを生成し、上記第２データの反転信号を第３データとして形成して上記メモリアレイの上記指定アドレスに対応したビット線に設けられたラッチ回路に記憶させる第１動作を上記メモリアレイの書き込み単位に対応した複数の指定アドレスについて複数回行う第２動作と、
上記メモリアレイにおいて、上記ラッチ回路に記憶された上記第３データを上記メモリアレイのメモリセルに一斉に書き込む第３動作と、
上記第１ないし第３動作が上記各指定アドレスに対応した上記書き込み単位に対応した第２データが同じビット状態に一致するまで繰り返し行われることを特徴とするマイクロコンピュータ。
【請求項２】
請求項１において、
上記不揮発性メモリは、データの消去に先立ち、消去対象となるすべてのメモリセルの保持情報を書き込み状態に揃えるべくプレライトするものであって、
上記不揮発性メモリの上記第１ないし第３動作からなる書き込み動作に関する一連の処理は、上記ライトデータの全ビットをメモリセルの上記消去状態を書き込み状態にすべきデータとして、上記プレライト時においても行われるものであることを特徴とするマイクロコンピュータ。
【請求項３】
請求項１又は請求項２において、
上記第１動作又は第２動作の後にメモリアレイの指定アドレスに書き込むべきライトデータと、上記メモリアレイの指定アドレスから読み出されたリードデータを反転して形成された第４データとの論理積処理した全ビットが一致したときに上記第３動作に移行し、１ビットでも不一致のものが存在することを持ってエラー判定する第４動作を更に行うことを特徴とするマイクロコンピュータ。
【請求項４】
請求項３において、
上記中央処理装置が実行する所定のデータの書き込み動作は、上記不揮発性メモリ上に格納された上記第１動作ないし第４動作を含む書込制御プログラムに従ってソフトウェア的に行われるものであることを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は不揮発性メモリ及びシステムに関し、例えば、プレライト機能を持つフラッシュメモリ及びこれを含むシングルチップマイクロコンピュータならびにその信頼性の向上に利用して特に有効な技術に関する。
【０００２】
【従来の技術】
フローティング（浮遊）ゲート及びコントロール（制御）ゲートを有し、保持データの論理値に応じてそのしきい値電圧が選択的に高く又は低くされるいわゆる２層ゲート構造型メモリセルがある。また、このような２層ゲート構造型メモリセルが格子配置されてなるメモリアレイをその基本構成要素とするフラッシュメモリがあり、このようなフラッシュメモリや中央処理ユニットを同一半導体基板面上に搭載するシングルチップマイクロコンピュータがある。
【０００３】
一方、フラッシュメモリにおけるデータの消去動作は、例えば所定のブロックを単位として行われるが、フラッシュメモリの消去特性を高める一つの手段として、消去動作に先立ち、消去対象となるすべてのメモリセルを書き込み状態に揃える、いわゆるプレライトを行うことが一般的となりつつある。
【０００４】
【発明が解決しようとする課題】
本願発明者等は、この発明に先立ってフラッシュメモリを搭載するシングルチップマイクロコンピュータを開発し、その過程で次のような問題点に気付いた。すなわち、このマイクロコンピュータでは、例えば３２ビットを単位として中央処理ユニットによるデータ処理が行われ、例えば１２８バイトのいわゆるセクタを単位としてフラッシュメモリに対するデータの書き込みが行われる。
【０００５】
上記マイクロコンピュータにおいて、フラッシュメモリに対するライト（書き込み）データの生成及びベリファイつまり書き込み確認処理は、マイクロコンピュータの中央処理ユニットによってソフトウェア的に行われ、その処理過程は、図１４に例示されるように、まずステップＳ６１１によりライトデータＷＤを生成した後、ステップＳ６１２によりライトデータＷＤをビット反転した反転ライトデータＷＤＩが生成される。ライトデータＷＤでは、書き込み対象となるビットがいわゆる論理“０”とされ、反転ライトデータでは、逆に書き込み対象となるビットがいわゆる論理“１”となる。また、フラッシュメモリでは、メモリアレイを構成する２層ゲート構造型メモリセルのうち、消去状態にあるメモリセルが、例えばそのしきい値電圧が比較的高くされて論理“１”のデータを保持するものとされ、書き込み状態にあるメモリセルは、そのしきい値電圧が比較的低くされて論理“０”のデータを保持するものとされる。
【０００６】
マイクロコンピュータでは、次のステップＳ６１３により、フラッシュメモリの書き込み対象となるアドレスからその保持データＲＤが読み出された後、ステップＳ６１４により、上記反転ライトデータＷＤＩとリードデータＲＤとの論理積データＷＤＡが算出される。また、ステップＳ６１５により、論理積データＷＤＡをビット反転して上記指定アドレスに再書き込みするためのリライトデータＷＤＲが生成され、ステップＳ６１６により、このリライトデータＷＤＲがメモリアレイのフラッシュメモリの指定アドレスに書き込まれる。
【０００７】
一連の書き込み動作が終了すると、ステップＳ６１７により、指定アドレスからその保持データＲＤが再び読み出され、ステップＳ６１８により、反転ライトデータＷＤＩとリードデータＲＤとの論理積データＷＤＡが算出された後、ステップＳ６１９により、論理積データＷＤＡが全ビット“０”であるかどうかの判定が行われる。そして、全ビット“０”となっていた場合は、書き込み動作が完了したものとされ、いずれかのビットが“１”である場合には、ステップＳ６１３に戻り、一連の書き込み動作が繰り返される。これにより、ビット単位の書き込み制御が行われ、消去状態にあるメモリセルに対してのみ書き込みが繰り返されるものとなる。この結果、書き込み状態となったメモリセルに対し無意味な書き込みが繰り返され、そのしきい値電圧が必要以上に低くなるのを防止して、フラッシュメモリの書き込み・消去特性を高めることができる。
【０００８】
ところが、上記フラッシュメモリでは、ステップＳ６１３〜Ｓ６１６による例えば１２８バイト分の書き込み動作が繰り返された後、ステップＳ６１７〜Ｓ６１９の判定動作が繰り返され、比較的長い時間をおいてステップＳ６１３及び６１７による２回の指定アドレスの読み出し動作が行われる。このため、これらの読み出し動作で得られるリードデータＲＤの論理値に差異が生じた場合、不本意な書き込み動作が行われ、書き込み所要時間が長くなるとともに、特に指定メモリセルが、その読み出し結果が論理“１”又は“０”にふらつくいわゆる揺らぎ領域にあって、例えばステップＳ６１３による読み出し結果が論理“０”となりステップＳ６１７による読み出し結果が論理“１”となるケースでは、無限ループ状態となり、書き込み処理が永久に終結せず、これによってフラッシュメモリひいてはこれを含むマイクロコンピュータの信頼性が低下する。
【０００９】
これに対処するため、本願発明者等は、図１５に例示されるように、上記ステップＳ６１３〜Ｓ６１６の書き込み処理に代えて、ステップＳ７１３により、与えられたライトデータＷＤを、指定アドレスの読み出し結果に関係なく固定的に書き込む方法を考えた。しかし、この方法をとることで、指定アドレスの読み出し動作は１回となり上記問題は解消されるが、例えば書き込み単位となる３２ビットのメモリセルに消去状態にあるものと書き込み状態にあるものとが混在する場合、すでに書き込み状態にあるメモリセルに対して無意味な書き込みが繰り返されるため、これらのメモリセルに対する書き込みストレスが増大する。また、特にプレライト方式をとるフラッシュメモリでは、消去処理によってそのしきい値電圧が必要以上に低くなるものが出てきて、消去対象となるメモリセルのしきい値電圧が不揃いとなり、フラッシュメモリの消去特性まで低下する。
【００１０】
この発明の目的は、プレライト方式をとるフラッシュメモリ等に効果的なデータの書き込み方法を提供することにある。この発明の他の目的は、シングルチップマイクロコンピュータ等に搭載されるフラッシュメモリ等の書き込み・消去特性を改善し、その信頼性を高めることにある。
【００１１】
この発明の前記ならびにその他の目的と新規な特徴は、この明細書の記述及び添付図面から明らかになるであろう。
【００１２】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、次の通りである。すなわち、シングルチップマイクロコンピュータ等に搭載されるフラッシュメモリ等の不揮発性メモリにおいて、指定アドレスから読み出されるリードデータと、指定アドレスに書き込むべきライトデータのビット反転データとの論理積データをもとに、指定アドレスに対する書き込み動作の終了を判定するとともに、同一の論理積データをもとに、書き込みが終了していない指定アドレスに再書き込みするべきリライトデータを生成する。
【００１３】
あるいは、指定アドレスに書き込むべきライトデータ、又は書き込みが終了していない指定アドレスに対するリライトデータをビット反転してなる書き込み履歴データと、指定アドレスから読み出されるリードデータとの論理積データをもとに、上記指定アドレスに対する書き込み動作の終了を判定するとともに、同一の論理積データをもとに、上記リライトデータを生成する。
【００１４】
上記フラッシュメモリ等の書き込み動作に関する一連の処理を、データの消去に先立ち、消去対象となるすべてのメモリセルの保持情報を書き込み状態に揃えるためのプレライト機能を有するフラッシュメモリ等に適用する。
【００１５】
上記フラッシュメモリ等において、指定アドレスに書き込むべきライトデータと、指定アドレスから読み出されるリードデータのビット反転データとの論理積データをもとに、指定アドレスのすでに書き込み済のビットに対する不条理書き込み、又はデプリートエラーを識別判定する。
【００１６】
上記フラッシュメモリ等の書き込み動作に関する一連の処理を、マイクロコンピュータ等に搭載された中央処理ユニットによりソフトウェア的に実現する。
【００１７】
上記フラッシュメモリ等の書き込み動作に関する一連の処理を、フラッシュメモリ等の関連回路によりハードウェア的に実現する。
【００１８】
上記した手段によれば、１回の読み出し動作により得られたリードデータをもとに、書き込み動作の終了を判定し、かつリライトデータを生成することができるため、特にメモリセルのしきい値電圧が揺らぎ領域にある場合の無限ループを抑制して、フラッシュメモリ等の書き込み所要時間の不本意な増大を抑制し、フラッシュメモリ等の書き込み特性を改善することができる。
【００１９】
また、書き込み履歴データとリードデータとの論理積データをもとに、書き込み動作の終了を判定し、かつリライトデータを生成することで、一度書き込み状態となったメモリセルが消去状態となった場合でもこのようなメモリセルに対する再書き込みを防止することができるため、特にメモリセルのしきい値電圧が揺らぎ領域にある場合の無限ループをさらに確実に解消して、フラッシュメモリ等の書き込み所要時間の不本意な増大を確実に防止し、フラッシュメモリ等の書き込み特性をさらに改善することができる。
【００２０】
書き込み動作に関する一連の処理をプレライト機能を有するフラッシュメモリ等に適用することで、消去対象となるメモリセルのプレライト後のしきい値電圧のバラツキを抑え、フラッシュメモリ等の消去特性を高めることができる。
【００２１】
ライトデータとリードデータのビット反転データとの論理積データをもとに不条理書き込みを判定することで、すでに書き込み状態にあるメモリセルに対する書き込みデータの不条理性を識別できるとともに、書き込み対象となったメモリセルと同一ビット線に結合されたメモリセルのデプリートエラーを識別し、フラッシュメモリ等の保持データの信頼性を高めることができる。
【００２２】
上記フラッシュメモリ等の書き込み動作に関する一連の処理を、中央処理ユニットによりソフトウェア的に実現することで、フラッシュメモリ等の書き換えが行われる間は通常処理に使用されることのない中央処理ユニットを活用して、フラッシュメモリのハードウェア量を削減し、マイクロコンピュータ等のチップサイズを縮小して、そのコスト低減を図ることができる。
【００２３】
上記フラッシュメモリ等の書き込み動作に関する一連の処理を、フラッシュメモリ等の関連回路によりハードウェア的に実現することで、比較的少量のハードウェア追加で、かつ比較的高速に、しかも中央処理ユニットが他の処理を行っている間に、フラッシュメモリ等の部分的な書き換えを行うことができる。
【００２４】
以上により、フラッシュメモリ等ならびにこれを含むシングルチップマイクロコンピュータ等の信頼性を高め、その高速化，低コスト化ならびに処理の効率化を図ることができる。
【００２５】
【発明の実施の形態】
図１には、この発明が適用されたシングルチップマイクロコンピュータ（システム）の一実施例のブロック図が示されている。同図をもとに、まずこの実施例のシングルチップマイクロコンピュータ（以下、単にマイクロコンピュータと略称する）の構成及び動作の概要ならびにその特徴について説明する。なお、図１の各ブロックを構成する回路素子は、特に制限されないが、公知のＭＯＳＦＥＴ（金属酸化物半導体型電界効果トランジスタ。この明細書では、ＭＯＳＦＥＴをして絶縁ゲート型電界効果トランジスタの総称とする）集積回路の製造技術により、単結晶シリコンのような１個の半導体基板面上に形成される。
【００２６】
図１において、この実施例のマイクロコンピュータは、いわゆるストアドプログラム方式の中央処理ユニットＣＰＵと、クロック発生回路ＣＰＧとを備える。このうち、中央処理ユニットＣＰＵには、内部バスＩＢＵＳを介してフラッシュメモリＦＲＯＭ（不揮発性メモリ），スタティック型ＲＡＭ（ＳＲＡＭ），ダイレクトメモリアクセスコントローラＤＭＡＣならびにバスコントローラＢＵＳＣが結合され、クロック発生回路ＣＰＧには、外部端子ＸＴＡＬ及びＥＸＴＡＬを介して所定の固有震動数を有する水晶発振子ＸＴＡＬが結合される。マイクロコンピュータには、さらに外部の電源装置から外部端子ＶＣＣ及びＶＳＳを介して主たる動作電源となる電源電圧ＶＣＣ及び接地電位ＶＳＳがそれぞれ供給され、中央処理ユニットＣＰＵには、外部端子ＳＴＢＹＢ及びＲＥＳＢを介してスタンバイ信号ＳＴＢＹＢ（ここで、それが有効とされるとき選択的にロウレベルとされるいわゆる反転信号等については、その名称の末尾にＢを付して表す。以下同様）及びリセット信号ＲＥＳＢがそれぞれ供給される。なお、主たる動作電源となる電源電圧ＶＣＣは、例えば＋５Ｖ（ボルト）とされる。
【００２７】
マイクロコンピュータの中央処理ユニットＣＰＵは、フラッシュメモリＦＲＯＭに格納された制御プログラムに従ってステップ動作し、各種演算処理を行うとともに、マイクロコンピュータの各部を制御・統轄する。また、この実施例において、中央処理ユニットＣＰＵは、フラッシュメモリＦＲＯＭの書き換えに関する一連の処理を行うが、このことについては後で詳細に説明する。
【００２８】
クロック発生回路ＣＰＧは、外部の水晶発振子ＸＴＡＬとともに、その固有振動数に見合った所定の周波数・位相を有するクロック信号を形成し、マイクロコンピュータの各部に供給する。また、フラッシュメモリＦＲＯＭは、コントロールゲート及びフローティングゲートを有する２層ゲート構造型メモリセルが格子配置されてなるメモリアレイをその基本構成要素とし、中央処理ユニットＣＰＵのステップ動作に必要な制御プログラムや固定データ等を格納する。言うまでもなく、フラッシュメモリＦＲＯＭの保持データは書き換え可能とされるため、同一のマイクロコンピュータをもって種々の機能を有するシステムを実現することができるとともに、そのデバッグ等のための開発期間を短縮することができる。なお、フラッシュメモリＦＲＯＭの具体的構成，動作，その書き込み及び消去処理手順ならびに特徴等については、後で詳細に説明する。
【００２９】
スタティック型ＲＡＭ（ＳＲＡＭ）は、比較的高速なアクセスを可能とし、中央処理ユニットＣＰＵの演算結果や制御データ等を一時的に格納する。また、ダイレクトメモリアクセスコントローラＤＭＡＣは、中央処理ユニットＣＰＵの介在を必要とすることなく、例えばスタティック型ＲＡＭ（ＳＲＡＭ）と外部装置との間のデータ転送をサポートする。さらに、バスコントローラＢＵＳＣは、内部バスＩＢＵＳに対するバスアクセスを管理し、内部バスＩＢＵＳと周辺バスＰＢＵＳつまりこれに結合されるデバイスとの間の接続処理を行う。
【００３０】
マイクロコンピュータの周辺バスＰＢＵＳには、さらにシリアルコミュニケーションインタフェースＳＣＩ，タイマー回路ＴＩＭ，デジタル・アナログ変換回路Ｄ／Ａ，アナログ・デジタル変換回路Ａ／Ｄならびに１１個の入出力ポートＩＯＰＡ〜ＩＯＰＫが結合される。このうち、シリアルコミュニケーションインタフェースＳＣＩは、対応する入出力ポートＩＯＰＡ〜ＩＯＰＫのうち所定のポートに結合された外部のシリアル入出力装置との間で、所定のアルゴリズムに沿ったシリアルデータ転送をサポートし、タイマー回路ＴＩＭは、クロック発生回路ＣＰＧから供給されるクロック信号に従って時間管理を行う。
【００３１】
一方、デジタル・アナログ変換回路Ｄ／Ａは、中央処理ユニットＣＰＵ等により生成されたデジタルデータを、所定のアナログ信号に変換して外部の入出力装置に伝達する。また、アナログ・デジタル変換回路Ａ／Ｄは、例えば外部の各種センサ等から入力されるアナログ入力信号を、所定ビットのディジタル信号に変換して、中央処理ユニットＣＰＵ等に伝達する。さらに、入出力ポートＩＯＰＩＯＰＡ〜ＩＯＰＫは、マイクロコンピュータの各部と外部に設けられた各種装置との信号授受を行うインタフェース回路として機能する。
【００３２】
前述のように、フラッシュメモリＦＲＯＭは、制御プログラムや固定データ等の格納に供され、その書き換えは、主に中央処理ユニットＣＰＵによりソフトウェア的に行われる。この実施例では、特にフラッシュメモリＦＲＯＭの消去動作に先立って、消去対象となるすべてのメモリセルを書き込み状態に揃えるプレライトが行われるとともに、その書き込み時には、指定アドレスから読み出されたリードデータとライトデータのビット反転データとの論理積データをもとに、書き込み動作の終了判定が行われるとともに、同一の論理積データをもとに、書き込み未終了の指定アドレスに対するリライトデータが生成され、あるいは、ライトデータ又はリライトデータをビット反転してなる書き込み履歴データとリードデータとの論理積データをもとに、書き込み動作の終了判定行われるとともに、同一の論理積データをもとに、リライトデータの生成が行われる。
【００３３】
これにより、フラッシュメモリＦＲＯＭひいてはこれを含むマイクロコンピュータの信頼性が高められ、その高速化，低コスト化ならびに処理の効率化が図られる。これらのことについては、後で詳細に説明する。
【００３４】
図２には、図１のマイクロコンピュータに含まれるフラッシュメモリＦＲＯＭの一実施例のブロック図が示されている。また、図３には、図２のフラッシュメモリＦＲＯＭに含まれるメモリアレイＭＡＲＹ及び周辺部の一実施例の部分的な回路図が示されている。これらの図をもとに、この実施例のマイクロコンピュータに含まれるフラッシュメモリＦＲＯＭの具体的構成及び動作ならびにその特徴等について説明する。なお、図３には、書き込み回路ＷＣ，センスアンプＳＡならびにカラムラッチＣＬの代表的な部分が例示されるが、各部を構成する回路素子は、例示されるものがすべてではない。以下の回路図において、そのチャネル（バックゲート）部に矢印が付されるＭＯＳＦＥＴはＰチャンネル型であって、矢印の付されないＮチャンネルＭＯＳＦＥＴと区別して示される。
【００３５】
図２において、この実施例のフラッシュメモリＦＲＯＭは、レイアウト所要面積の大半を占めて配置されるメモリアレイＭＡＲＹをその基本構成要素とする。また、フラッシュメモリＦＲＯＭは、内部バスＩＢＵＳのコントロールバスＣＢＵＳに結合されるコントロールバッファＣＢを備え、さらにコントロールバッファＣＢの出力信号を受けるメモリコントローラＭＣと、電源電圧ＶＣＣ及び接地電位ＶＳＳを受ける内部電圧発生回路ＶＧとを備える。
【００３６】
このうち、コントロールバッファＣＢ及びメモリコントローラＭＣは、内部バスＩＢＵＳのコントロールバスＣＢＵＳを介して供給される各種起動制御信号をもとに、図示されない各種内部制御信号を選択的に形成し、フラッシュメモリＦＲＯＭの各部に供給する。また、内部電圧発生回路ＶＧは、マイクロコンピュータの図示されない制御回路から供給される電圧制御信号ＶＣＳに従って選択的に動作状態とされる複数の電圧発生回路を含み、フラッシュメモリＦＲＯＭの書き込み，消去ならびに読み出し動作に必要な各種の内部電圧を生成する。
【００３７】
一方、メモリアレイＭＡＲＹは、特に制限されないが、いわゆるノア（ＮＯＲ）型アレイとされ、図３に示されるように、図の水平方向に平行して配置されるｍ＋１本つまり実質１，０２４本のワード線Ｗ０〜Ｗｍと、垂直方向に平行して配置されるｎ＋１本つまり実質１，０２４本のビット線Ｂ０〜Ｂｎとを含む。これらのワード線及びビット線の交点には、フローティングゲート及びコントロールゲートを有する１，０２４×１，０２４個つまり１，０４８，５７６個の２層ゲート構造型メモリセルＭＣが格子配列される。これにより、フラッシュメモリＦＲＯＭは、いわゆる１メガビットの記憶容量を有するものとなる。
【００３８】
メモリアレイＭＡＲＹの同一行に配置されたｎ＋１個のメモリセルＭＣのコントロールゲートは、対応するワード線Ｗ０〜Ｗｍにそれぞれ共通結合され、そのソースは、隣接行に配置されたｎ＋１個のメモリセルＭＣのソースとともに、対応するソース線Ｓ０〜Ｓｐにそれぞれ共通結合される。また、メモリアレイＭＡＲＹの同一列に配置されたｍ＋１個のメモリセルＭＣのドレインは、対応するビット線Ｂ０〜Ｂｎにそれぞれ共通結合される。なお、ソース線Ｓ０〜Ｓｐの本数ｐ＋１が、ワード線Ｗ０〜Ｗｍの本数ｍ＋１に対して、
ｐ＋１＝（ｍ＋１）／２
なる関係にあることは言うまでもない。
【００３９】
この実施例において、メモリアレイＭＡＲＹを構成する２層ゲート構造型メモリセルＭＣのそれぞれは、特に制限されないが、それが消去状態にあるとき、いわゆる論理“１”のデータを保持するものとされ、それが書き込み状態にあるときには、いわゆる論理“０”のデータを保持するものとされる。また、メモリセルＭＣの消去動作は、そのコントロールゲートつまり対応するワード線Ｗ０〜Ｗｍに例えば＋９Ｖのような正電位を印加し、そのソースつまり対応するソース線Ｓ０〜Ｓｐに例えば−９Ｖのような負電位を印加して、そのソース側からフローティングゲートに電子を注入することにより行われ、メモリセルＭＣの書き込み動作は、そのドレインつまり対応するビット線Ｂ０〜Ｂｎに例えば＋６Ｖのような正電位を印加し、そのコントロールゲートつまり対応するワード線Ｗ０〜Ｗｍに例えば−９Ｖのような負電位を印加して、そのフローティングゲートに蓄積された電子をドレイン側に引き抜くことにより行われる。
【００４０】
これにより、メモリセルＭＣのしきい値電圧は、それが消去状態にあるとき、例えば＋２．５Ｖを超える比較的高い値とされ、それが書き込み状態にあるときには、＋２．５Ｖより低い比較的低い値とされる。したがって、保持データの読み出し動作時には、対応するワード線Ｗ０〜Ｗｍが例えば択一的に＋２．５Ｖのような選択レベルとされることで、消去状態にあるメモリセルＭＣはオフ状態となって比較的小さな読み出し電流を流し、書き込み状態にあるメモリセルＭＣはオン状態となって比較的大きな読み出し電流を流すものとなる。
【００４１】
メモリアレイＭＡＲＹを構成するワード線Ｗ０〜Ｗｍは、図２に示されるように、その左方においてＸアドレスデコーダＸＤに結合され、ソース線Ｓ０〜Ｓｐは、その右方においてソース電圧制御回路ＳＣに結合される。ＸアドレスデコーダＸＤには、特に制限されないが、アドレスバッファＡＢから１０ビットの内部Ｘアドレス信号Ｘ０〜Ｘ９が供給され、内部電圧発生回路ＶＧからワード線Ｗ０〜Ｗｍの選択又は非選択レベルとして必要な各種の内部電圧が供給される。内部Ｘアドレス信号Ｘ０〜Ｘ９は、ソース電圧制御回路ＳＣにも供給され、このソース電圧制御回路ＳＣには、さらに内部電圧発生回路ＶＧからソース線Ｓ０〜Ｓｐの選択又は非選択レベルとして必要な各種の内部電圧が供給される。
【００４２】
ＸアドレスデコーダＸＤは、フラッシュメモリＦＲＯＭが選択状態とされるとき、アドレスバッファＡＢから供給される内部Ｘアドレス信号Ｘ０〜Ｘ９をデコードして、メモリアレイＭＡＲＹのワード線Ｗ０〜Ｗｍの対応するビットを選択的に所定の選択又は非選択レベルとする。また、ソース電圧制御回路ＳＣは、フラッシュメモリＦＲＯＭが選択状態とされるとき、同じく内部Ｘアドレス信号Ｘ０〜Ｘ９をデコードして、メモリアレイＭＡＲＹのソース線Ｓ０〜Ｓｐの対応するビットを選択的に所定の選択又は非選択レベルとする。
【００４３】
特に制限されないが、フラッシュメモリＦＲＯＭが書き込みモードとされるとき、ワード線Ｗ０〜Ｗｍの選択レベルは、前述のように、例えば−９Ｖとされ、その非選択レベルは例えば電源電圧ＶＣＣつまり例えば＋５Ｖとされる。また、フラッシュメモリＦＲＯＭが消去モードとされるとき、ワード線Ｗ０〜Ｗｍの選択レベルは、前述のように、例えば＋９Ｖとされ、その非選択レベルは例えば接地電位ＶＳＳとされる。さらに、フラッシュメモリＦＲＯＭが読み出しモードとされるとき、ワード線Ｗ０〜Ｗｍの選択レベルは、前述のように、例えば＋２．５Ｖとされ、その非選択レベルは接地電位ＶＳＳとされる。
【００４４】
なお、フラッシュメモリＦＲＯＭの書き込みモードには、書き込み状態を確認するための読み出し動作つまりベリファイ動作が含まれるが、このベリファイ動作時におけるワード線Ｗ０〜Ｗｍの選択レベルは、通常の読み出し動作時の選択レベルつまり＋２．５Ｖよりやや高い例えば＋４Ｖとされる。
【００４５】
一方、フラッシュメモリＦＲＯＭが書き込みモードとされるとき、選択状態にあるソース線Ｓ０〜Ｓｐは、いわゆる開放状態とされ、その非選択レベルは接地電位ＶＳＳとされる。また、フラッシュメモリＦＲＯＭが消去モードとされるとき、ソース線Ｓ０〜Ｓｐの選択レベルは例えば−９Ｖとされ、その非選択レベルは接地電位ＶＳＳとされる。フラッシュメモリＦＲＯＭが読み出しモードとされるとき、ソース線Ｓ０〜Ｓｐはすべて接地電位ＶＳＳとされる。
【００４６】
次に、メモリアレイＭＡＲＹを構成するビット線Ｂ０〜Ｂｎは、その下方において書き込み回路ＷＣ及びセンスアンプＳＡの対応する単位回路に結合される。書き込み回路ＷＣ及びセンスアンプＳＡの各単位回路は、その他方においてカラムラッチＣＬの対応する単位回路に結合され、このカラムラッチＣＬの各単位回路は、その他方においてＹゲート回路ＹＧを介して３２個ずつ選択的にデータ入出力回路ＩＯの対応する単位回路に接続される。データ入出力回路ＩＯの各単位回路は、その他方においてデータバッファＤＢの対応する単位回路に結合され、このデータバッファＤＢは、その他方において内部バスＩＢＵＳのデータバスＤＢＵＳの対応するビットにそれぞれ結合される。
【００４７】
Ｙゲート回路ＹＧには、ＹアドレスデコーダＹＤからｑ＋１ビットつまり実質１２８ビットのビット線選択信号ＹＳ０〜ＹＳｑが供給され、ＹアドレスデコーダＹＤには、アドレスバッファＡＢから７ビットの内部Ｙアドレス信号Ｙ０〜Ｙ６が供給される。アドレスバッファＡＢには、内部バスＩＢＵＳのアドレスバスＡＢＵＳを介して１７ビットのアドレス信号Ａ０〜Ａ１６が供給される。
【００４８】
アドレスバッファＡＢは、内部バスＩＢＵＳのアドレスバスＡＢＵＳを介して供給されるアドレス信号Ａ０〜Ａ１６を取り込み、保持する。そして、そのうちの１０ビットを、内部Ｘアドレス信号Ｘ０〜Ｘ９としてＸアドレスデコーダＸＤ及びソース電圧制御回路ＳＣに供給し、残りの７ビットを、内部Ｙアドレス信号Ｙ０〜Ｙ６としてＹアドレスデコーダＹＤに供給する。
【００４９】
ＹアドレスデコーダＹＤは、アドレスバッファＡＢから供給される内部Ｙアドレス信号Ｙ０〜Ｙ６をデコードして、Ｙゲート回路ＹＧに対するビット線選択信号ＹＳ０〜ＹＳｑの対応するビットを択一的に所定の選択レベルとする。
【００５０】
Ｙゲート回路ＹＧは、カラムラッチＣＬの各単位回路に対応して設けられるｎ＋１個つまり１，０２４個のスイッチＭＯＳＦＥＴを含む。これらのスイッチＭＯＳＦＥＴは、ＹアドレスデコーダＹＤから供給されるビット線選択信号ＹＳ０〜ＹＳｑの対応するビットが択一的にハイレベルとされることで３２個ずつ選択的にオン状態となり、カラムラッチＣＬの各単位回路の一方の入出力ノードとデータ入出力回路ＩＯの対応する単位回路との間を接続状態とする。
【００５１】
一方、データバッファＤＢ及びデータ入出力回路ＩＯは、フラッシュメモリＦＲＯＭが書き込みモードで選択状態とされるとき、内部バスＩＢＵＳのデータバスＤＢＵＳを介して供給される３２ビットの書き込みデータを順次取り込み、Ｙゲート回路ＹＧを介してカラムラッチＣＬの指定された３２個の単位回路に伝達する。カラムラッチＣＬの各単位回路に取り込まれた書き込みデータは、１２８バイトつまり１，０２４ビット蓄積された時点で、書き込み回路ＷＣを介してメモリアレイＭＡＲＹの選択ワード線に結合される１，０２４個のメモリセルＭＣに一斉に書き込まれる。フラッシュメモリＦＲＯＭが読み出しモードとされるとき、データバスＤＢＵＳ及びデータ入出力回路ＩＯは、メモリアレイＭＡＲＹの選択されたメモリセルＭＣから出力され、カラムラッチＣＬの各単位回路に保持される読み出しデータを３２ビットずつ選択的に取り出し、内部バスＩＢＵＳのデータバスＤＢＵＳを介してアクセス装置に出力する。
【００５２】
このように、本実施例のフラッシュメモリＦＲＯＭに対するデータの入出力動作は、３２ビットつまり４バイトを単位として行われるが、メモリアレイＭＡＲＹに対する実質的な書き込み及び読み出し動作は、１２８バイトつまり１，０２４ビットのセクタを単位として行われる。このため、メモリアレイＭＡＲＹのワード線Ｗ０〜Ｗｍは、１０ビットの内部Ｘアドレス信号Ｘ０〜Ｘ９に従って択一的に指定され、そのビット線Ｂ０〜Ｂｎは、７ビットの内部Ｙアドレス信号Ｙ０〜Ｙ６に従って３２ビットずつ選択的に指定されるものとなる。
【００５３】
ここで、カラムラッチＣＬは、メモリアレイＭＡＲＹのビット線Ｂ０〜Ｂｎに対応して設けられるｎ＋１個つまり実質１，０２４個の単位回路を備え、これらの単位回路のそれぞれは、特に制限されないが、図３に例示されるように、一対のインバータＶ１及びＶ２が交差結合されてなるラッチ回路Ｌ１と、Ｎチャンネル型の２個のスイッチＭＯＳＦＥＴＮ１及びＮ２とを含む。このうち、カラムラッチＣＬの各単位回路のラッチ回路Ｌ１の下方の入出力ノードは、スイッチＭＯＳＦＥＴＮ１を介して対応するデータ入出力線Ｄ０〜Ｄｎつまりデータ入出力回路ＩＯに結合される。また、その上方の入出力ノードは、後述する書き込み回路ＷＣの対応するインバータＶ３の入力端子に結合されるとともに、スイッチＭＯＳＦＥＴＮ２を介してセンスアンプＳＡの対応する単位センスアンプＵＡの反転出力ノードに結合される。スイッチＭＯＳＦＥＴＮ１のゲートには、メモリコントローラＭＣからラッチ制御信号ＬＣ１が共通に供給され、スイッチＭＯＳＦＥＴＮ２のゲートには、ラッチ制御信号ＬＣ２が共通に供給される。
【００５４】
なお、ラッチ制御信号ＬＣ１は、通常接地電位ＶＳＳのようなロウレベルとされ、フラッシュメモリＦＲＯＭが書き込みモードで選択状態とされるとき、所定のタイミングで選択的に電源電圧ＶＣＣのようなハイレベルとされる。また、ラッチ制御信号ＬＣ２は、通常接地電位ＶＳＳのようなロウレベルとされ、フラッシュメモリＦＲＯＭが読み出しモードで選択状態とされるとき、所定のタイミングで選択的に電源電圧ＶＣＣのようなハイレベルとされる。
【００５５】
前述のように、フラッシュメモリＦＲＯＭが書き込みモードで選択状態とされるとき、カラムラッチＣＬには、アクセス装置から内部バスＩＢＵＳのデータバスＤＢＵＳ，データバッファＤＢ，データ入出力回路ＩＯ，Ｙゲート回路ＹＧならびにデータ入出力線Ｄ０〜Ｄｎを介して書き込みデータが３２ビット単位で供給される。これらの書き込みデータは、ラッチ制御信号ＬＣ１のハイレベルを受けてオン状態となるスイッチＭＯＳＦＥＴＮ２を介して、カラムラッチＣＬの対応する３２個のラッチ回路Ｌ１に順次取り込まれ、保持される。そして、１２８バイト分の書き込みデータの取り込みが終了した時点で、書き込み回路ＷＣを介してメモリアレイＭＡＲＹに伝達され、選択ワード線に結合されたｎ＋１個つまり実質１，０２４個のメモリセルＭＣに一斉に書き込まれる。
【００５６】
一方、フラッシュメモリＦＲＯＭが読み出しモードで選択状態とされるとき、カラムラッチＣＬには、後述するセンスアンプＳＡの１，０２４個の単位回路から、単位センスアンプＵＡの反転出力信号つまり反転読み出しデータが供給される。これらの反転読み出しデータは、ラッチ制御信号ＬＣ２のハイレベルを受けてオン状態となるスイッチＭＯＳＦＥＴＮ２を介して、カラムラッチＣＬの各単位回路のラッチ回路Ｌ１に一斉に取り込まれ、保持される。そして、対応するラッチ回路Ｌ１のインバータＶ２によりそれぞれ反転されて非反転読み出しデータとなり、データ入出力線Ｄ０〜ＤｎからＹゲート回路ＹＧ，データ入出力回路ＩＯ，データバッファＤＢならびに内部バスＩＢＵＳのデータバスＤＢＵＳを介して、３２ビット単位でアクセス装置に出力される。
【００５７】
次に、書き込み回路ＷＣは、メモリアレイＭＡＲＹのビット線Ｂ０〜Ｂｎに対応して設けられるｎ＋１個つまり１，０２４個の単位回路を備え、これらの単位回路のそれぞれは、特に制限されないが、図３に示されるように、２個のＰチャンネルＭＯＳＦＥＴＰ１及びＰ２と、＋６Ｖのような比較的高電位の内部電圧ＶＰＰを動作電源とするインバータＶ３とを含む。書き込み回路ＷＣの各単位回路を構成するＭＯＳＦＥＴＰ１のソースは、内部電圧供給点ＶＰＰに結合され、そのドレインは、ＭＯＳＦＥＴＰ２を介してメモリアレイＭＡＲＹの対応するビット線Ｂ０〜Ｂｎに結合される。また、ＭＯＳＦＥＴＰ１のゲートは、対応するインバータＶ３の出力端子に結合され、インバータＶ３の入力端子は、カラムラッチＣＬの対応するラッチ回路Ｌ１を構成するインバータＶ１の出力端子に結合される。書き込み回路ＷＣの各単位回路のＭＯＳＦＥＴＰ２のゲートには、メモリコントローラＭＣから書き込み制御信号ＷＰが共通に供給される。
【００５８】
なお、書き込み制御信号ＷＰは、通常内部電圧ＶＰＰのようなハイレベルとされ、フラッシュメモリＦＲＯＭが書き込みモードで選択状態とされるとき、所定のタイミングで選択的に接地電位ＶＳＳのようなロウレベルとされる。
【００５９】
これにより、書き込み回路ＷＣの各単位回路を構成するＭＯＳＦＥＴＰ２は、フラッシュメモリＦＲＯＭが書き込みモードで選択状態とされるとき、書き込み制御信号ＷＰのロウレベルを受けて選択的にかつ一斉にオン状態となる。このとき、各単位回路のＭＯＳＦＥＴＰ１は、対応するインバータＶ３の出力信号が接地電位ＶＳＳのようなロウレベルとされることを条件に、言い換えるならば、カラムラッチＣＬの対応するラッチ回路Ｌ１により保持される書き込みデータが論理“０”とされそのインバータＶ１の出力信号がハイレベルとされることで選択的にオン状態となり、メモリアレイＭＡＲＹの対応するビット線Ｂ０〜Ｂｎを内部電圧ＶＰＰつまり＋６Ｖのようなハイレベルの選択レベルとする。
【００６０】
言うまでもなく、カラムラッチＣＬの対応するラッチ回路Ｌ１により保持される書き込みデータが論理“１”とされ、対応するインバータＶ１の出力信号がロウレベルとされるとき、インバータＶ３の出力信号は内部電圧ＶＰＰのようなハイレベルとなる。このため、書き込み回路ＷＣの各単位回路のＭＯＳＦＥＴＰ１はオフ状態となり、メモリアレイＭＡＲＹの対応するビット線Ｂ０〜Ｂｎは図示されない経路を介して接地電位ＶＳＳのような非選択レベルとされる。
【００６１】
フラッシュメモリＦＲＯＭが書き込みモードで選択状態とされるとき、メモリアレイＭＡＲＹのワード線Ｗ０〜Ｗｍは、前述のように、択一的に−９Ｖのような選択レベルとされ、ソース線Ｓ０〜Ｓｐは開放状態とされる。このとき、メモリアレイＭＡＲＹの選択ワード線に結合されたｎ＋１個のメモリセルＭＣでは、対応するビット線Ｂ０〜Ｂｎが＋６Ｖのような選択レベルとされることを条件に選択的に書き込みが行われ、フローティングゲートに蓄積された電子が選択的にドレイン側に引き抜かれて、そのしきい値電圧が低くされる。
【００６２】
次に、センスアンプＳＡは、メモリアレイＭＡＲＹのビット線Ｂ０〜Ｂｎに対応して設けられるｎ＋１個つまり実質１，０２４個の単位回路を備え、これらの単位回路のそれぞれは、特に制限されないが、図３に示されるように、１個の単位センスアンプＵＡと、Ｐチャンネル型のスイッチＭＯＳＦＥＴＰ３とを含む。各単位回路を構成する単位センスアンプＵＡの入力ノードは、スイッチＭＯＳＦＥＴＰ３を介してメモリアレイＭＡＲＹの対応するビット線Ｂ０〜Ｂｎに結合され、その反転出力ノードは、カラムラッチＣＬのＮチャンネルＭＯＳＦＥＴＮ２を介して対応するラッチ回路Ｌ１の上方の入出力ノードに結合される。センスアンプＳＡの各単位回路を構成するＭＯＳＦＥＴＰ３のゲートには、メモリコントローラＭＣから読み出し制御信号ＲＣが共通に供給される。
【００６３】
なお、読み出し制御信号ＲＣは、通常電源電圧ＶＣＣのようなハイレベルとされ、フラッシュメモリＦＲＯＭが読み出しモードで選択状態とされるとき、所定のタイミングで選択的に接地電位ＶＳＳのようなロウレベルとされる。
【００６４】
フラッシュメモリＦＲＯＭが読み出しモードで選択状態とされるとき、メモリアレイＭＡＲＹのワード線Ｗ０〜Ｗｍは、前述のように、択一的に＋２．５Ｖのような選択レベルとされ、ソース線Ｓ０〜Ｓｐはすべて接地電位ＶＳＳのようなロウレベルとされる。また、メモリアレイＭＡＲＹのビット線Ｂ０〜Ｂｎは、読み出し動作の当初において、センスアンプＳＡの図示されないプリチャージ回路により一斉に電源電圧ＶＣＣのようなハイレベルにプリチャージされる。これらのビット線Ｂ０〜Ｂｎのプリチャージレベルは、選択ワード線との対応する交点に配置されたメモリセルＭＣが書き込み状態にあり、そのしきい値電圧が比較的低くされることを条件に選択的に引き抜かれ、低下する。
【００６５】
ビット線Ｂ０〜Ｂｎの選択的なレベル低下は、センスアンプＳＡの対応する単位回路の単位センスアンプＵＡによりセンス・増幅され、これを受けて単位センスアンプＵＡの反転出力ノードにおける反転読み出しデータが選択的にハイレベルとされる。これらの反転読み出しデータは、ラッチ制御信号ＬＣ２のハイレベルを受けてカラムラッチＣＬの対応するラッチ回路Ｌ１に取り込まれ、反転されて非反転読み出しデータとなり、３２ビットずつ選択的に出力される。
【００６６】
ところで、メモリアレイＭＡＲＹを構成する２層ゲート構造型メモリセルＭＣは、その書き込み・消去特性に比較的大きなバラツキを呈するため、上記のような１２８バイト単位の書き込み及びブロック単位の消去動作は、書き込み又は消去動作後におけるメモリセルＭＣの保持データの変化を確認しながら、すなわち論理“１”の消去状態にあったメモリセルＭＣが論理“０”の書き込み状態に変わり、あるいは論理“０”の書き込み状態にあったメモリセルＭＣが論理“１”の消去状態に変わったかどうかを確認しながら繰り返される。また、この実施例のフラッシュメモリＦＲＯＭでは、消去動作に先立って、消去対象となるすべてのメモリセルＭＣを書き込み状態に揃えるプレライト方式がとられる。この実施例において、フラッシュメモリＦＲＯＭの書き込み・消去動作に必要な制御は、前記のように、主に中央処理ユニットＣＰＵによりソフトウェア的に行われ、いくつかの特徴を持つが、このことについては以下に詳細に説明する。
【００６７】
図４には、図１のマイクロコンピュータのフラッシュメモリ書き込み時の第１の実施例の基本フロー図が示され、図５には、図４のフラッシュメモリ書き込み時の動作を説明するための一実施例の動作概念図が示されている。また、図６には、図４のフラッシュメモリ書き込み時における不条理書き込み判定処理の一実施例の基本フロー図が示され、図７には、図６の不条理書き込み判定処理時の動作を説明するための一実施例の動作概念図が示されている。さらに、図８には、図４の基本フローをとるマイクロコンピュータの中央処理ユニットの一実施例の処理フロー図が示されている。これらの図をもとに、この実施例のマイクロコンピュータのフラッシュメモリ書き込み時の具体的な動作及びその特徴について説明する。なお、この実施例のマイクロコンピュータでは、前述のように、３２ビットつまり４バイト単位のデータ処理が行われるが、以下の動作概念図では、そのうちの８ビットつまり１バイト分のみが例示される。
【００６８】
図４において、この実施例のフラッシュメモリＦＲＯＭにおける書き込み動作は、ステップＳ１１１によるライトデータＷＤの生成処理から始まる。前述のように、フラッシュメモリＦＲＯＭのメモリアレイＭＡＲＹを構成する２層ゲート構造型メモリセルＭＣは、それが消去状態にあるとき、図５の最上段に示されるように、すべて論理“１”のデータを保持するものとされる。また、フラッシュメモリＦＲＯＭにおける実質的な書き込み動作は、前述のように、実質１，０２４ビットつまり１２８バイト単位で行われるが、ライトデータＷＤは３２ビット単位で生成され、このうちの書き込み対象となるビットには、図５の第２段目に例示されるように、論理“０”のデータが選択的に割り当てられる。言うまでもなく、指定アドレスの書き込み対象とならないビット、つまり消去状態のままにしておきたいビットには、論理“１”のデータが割り当てられ、ライトデータＷＤには、論理“１”及び“０”のデータが混在する場合が多い。
【００６９】
ステップＳ１１１により生成されたライトデータＷＤは、ステップＳ１１２により、各ビットごとに論理反転され、ビット反転データつまり反転ライトデータＷＤＩが生成される。この反転ライトデータＷＤＩでは、図５の第３段目に例示されるように、指定アドレスの書き込み対象となるビットが論理“１”とされ、書き込み対象とならないビットが論理“０”とされる。
【００７０】
ライトデータＷＤ及び反転ライトデータＷＤＩの生成が終了すると、まずステップＳ１１３により、指定アドレスの保持データＲＤが読み出された後、ステップＳ１１４により、不条理書き込みの判定処理が行われる。前記したように、指定アドレスから読み出されるリードデータＲＤの各ビットは、対応するメモリセルＭＣが未だ消去状態にあるとき論理“１”とされ、すでに書き込み状態にあるときには論理“０”とされる。したがって、消去後最初の読み出しにより得られるリードデータＲＤは、図５の第４段目に例示されるように、その全ビットが論理“１”とされる。なお、ステップＳ１１４による不条理書き込み判定処理の必要性及びその効果等については、後で詳細に説明する。
【００７１】
ステップＳ１１４の不条理判定処理により異常が検出されず、判定結果がｙｅｓとなると、ステップＳ１１５により、反転ライトデータＷＤＩとリードデータＲＤのビットごとの論理積がとられ、論理積データＷＤＡが生成される。言うまでもなく、論理積データＷＤＡの各ビットは、反転ライトデータＷＤＩ及びリードデータＲＤの対応するビットがともに論理“１”であることを条件に選択的に論理“１”とされ、その他の条件では論理“０”とされる。したがって、消去後最初のリードデータＲＤと反転ライトデータＷＤＩとをもとに生成される論理積データＷＤＡは、図５の第５段目に例示されるように、その各ビットが反転ライトデータＷＤＩの対応するビットと同一の論理値を持つものとなる。
【００７２】
ステップＳ１１５により生成された論理積データＷＤＡは、ステップＳ１１６によりその全ビットが論理“０”となったかどうか、つまり書き込み動作が終了してその書き込み対象となるビットがすべて論理“０”に変わったかどうかの判定を受ける。この結果、論理積データＷＤＡの全ビットが論理“０”に変化した場合、指定アドレスに対する書き込み動作は終了したものとして他の処理に移行し、まだいずれかのビットが論理“１”のままである場合には、ステップＳ１１７により、論理積データＷＤＡをビット反転して、指定アドレスに再書き込みすべきリライトデータＷＤＲが生成される。このリライトデータＷＤＲは、ステップＳ１１８により指定アドレスに書き込まれ、その後はステップＳ１１３に戻って処理ループが形成される。なお、消去後最初のリードデータＲＤ及び論理積データＷＤＡをもとに生成されるリライトデータＷＤＲは、図５の第６段目に例示されるように、ライトデータＷＤそのものとなる。
【００７３】
ステップＳ１１８による書き込み動作を終えたメモリアレイＭＡＲＹの指定アドレスでは、図５の第７段目に例示されるように、その第１〜第２ビットならびに第４〜第８ビットの論理値が、リライトデータＷＤＲの対応するビットに応じた論理値に変化されるものの、その第３ビットは、対応するメモリセルＭＣのしきい値電圧が充分に低くならず、論理“１”つまり消去状態のままにある。したがって、ループ２回目のステップＳ１１３による読み出し動作では、図５の第８段目に例示されるように、リードデータＲＤの第３ビットも論理“１”となり、ステップＳ１１５により得られる新しい論理積データＷＤＡは、図５の第９段目に例示されるように、その第３ビットのみが論理“１”となる。
【００７４】
これにより、ループ２回目のステップＳ１１７により生成されるリライトデータＷＤＲは、図５の第１０段目に例示されるように、その第３ビットのみが論理“０”となり、その他のビットは論理“１”となる。また、このリライトデータＷＤＲは、ステップＳ１１８により再度指定アドレスに書き込まれ、その結果として指定アドレスの第３ビットは、図５の第１１段目に例示されるように、論理“０”に変化し、全ビットがライトデータＷＤと一致した状態となる。
【００７５】
指定アドレスの保持データは、ループ３回目のステップＳ１１３によりリードデータＲＤとして読み出された後、ステップＳ１１５により反転ライトデータＷＤＩとの論理積がとられて論理積データＷＤＡとなる。以上の説明から明らかなように、ループ３回目のステップＳ１１５により生成される論理積データＷＤＡは、図５の第１３段目に例示されるように、その全ビットが論理“０”となるため、ステップＳ１１６の条件が成立し、書き込み終了となる。
【００７６】
以上のように、この実施例のマイクロコンピュータでは、ステップＳ１１３によりフラッシュメモリＦＲＯＭの指定アドレスから読み出されたリードデータＲＤが、ステップＳ１１５による反転ライトデータＷＤＩとの論理積データＷＤＡの生成に供され、この論理積データＷＤＡが、ステップＳ１１６による書き込み動作の終了判定に供されるとともに、ステップＳ１１７によるリライトデータＷＤＲの生成にも供される。つまり、この実施例では、ステップＳ１１３による１回の読み出し動作により得られたリードデータＲＤならびにその反転ライトデータＷＤＩとの論理積データＷＤＡをもとに、書き込み動作の終了を判定し、リライトデータを生成することができる訳であって、特にメモリセルのしきい値電圧が揺らぎ領域にあり、読み出し動作のたびにその論理値が変化するビットが存在する場合でも、これにともなう再書き込みの発生を抑制し、これが繰り返されることによる無限ループの発生を抑制することができる。
【００７７】
この結果、フラッシュメモリＦＲＯＭの書き込み所要時間が不本意に増大するのを防止できるとともに、その書き込み特性を改善することができ、フラッシュメモリＦＲＯＭひいてはこれを搭載するマイクロコンピュータの信頼性を高め、その高速化及び処理の効率化を図ることができるものである。
【００７８】
ところで、図４のステップＳ１１４として行われる不条理書き込みの判定処理では、特に制限されないが、図６の点線枠内に示されるように、まずステップＳ１４１により、リードデータＲＤをビット反転してそのビット反転データつまり反転リードデータＲＤＩが生成された後、ステップＳ１４２により、ライトデータＷＤと反転リードデータＲＤＩとの論理積がとられて論理積データＲＤＡが生成される。論理積データＲＤＡは、ステップＳ１４３により、全ビットが論理“０”であるかどうか判定され、全ビットが論理“０”である場合、異常がないものと判定されてステップＳ１１５以後の処理に移行する。しかし、ステップＳ１４３で論理積データＲＤＡのいずれかのビットが論理“１”である場合には、異常発生とみなされて書き込み動作を中断し、エラー処理に移行する。
【００７９】
すなわち、ステップＳ１４２の処理結果として得られる論理積データＲＤＡの各ビットは、指定アドレスの対応するビットがすでに書き込み状態にありリードデータＲＤの対応するビットが論理“０”であるにもかかわらず、ライトデータＷＤの対応するビットが消去状態に対応する論理“１”である場合、つまり不条理書き込みが指定された場合に選択的に論理“１”となる。また、不条理書き込みの指定はなかったが、図７に示されるように、例えばループ３回目のステップＳ１１３で、指定アドレスの第２ビットの読み出し結果が同一列に配置された、つまり同一ビット線に結合されたデプリートエラー状態にある他のビットの影響を受けて論理“０”に変化した場合にも選択的に論理“１”となる。
【００８０】
以上のことから、この実施例のマイクロコンピュータ及びフラッシュメモリＦＲＯＭでは、指定アドレスの書き込みに先立って、ライトデータＷＤの不条理性を識別し、書き込み動作を中断して、保持データの正常性を確保することができるとともに、指定アドレスに対する書き込み動作が開始された後も、指定メモリセルと同一の列に配置された他のメモリセルのデプリートエラーを検出することができ、これによってフラッシュメモリＦＲＯＭひいてはこれを搭載するマイクロコンピュータの信頼性をさらに高めることができるものである。
【００８１】
なお、この実施例のマイクロコンピュータでは、前述のように、実際には１２８バイトのセクタを単位としてフラッシュメモリＦＲＯＭの書き込み動作が実行されるとともに、指定セクタの書き込み動作に関する上記一連の処理は、主に中央処理ユニットＣＰＵによりソフトウェア的に行われる。このため、中央処理ユニットＣＰＵでは、図８に例示される手順に従って具体的な処理が進められ、図４の基本フローに沿った書き込み動作が行われる。
【００８２】
すなわち、中央処理ユニットＣＰＵは、まずステップＳ２１１により、指定アドレスつまり指定セクタに書き込むべき１２８バイト単位のセクタライトデータＷＤＳを編集し、次のステップＳ２１２により、このセクタライトデータＷＤＳをビット反転して反転セクタライトデータＷＤＩＳを生成する。また、ステップＳ２１３により、指定セクタの保持データＲＤＳをセクタ単位で読み出した後、ステップＳ２１４により、セクタリードデータＲＤＳ及びセクタライトデータＷＤＳをもとに不条理書き込みの判定を行う。なお、ステップＳ２１１〜Ｓ２１４によるセクタライトデータＷＤＳ及び反転セクタライトデータＷＤＩＳの生成，セクタリードデータＲＤＳの読み出しならびに不条理書き込み判定処理は、実際には、中央処理ユニットＣＰＵの演算処理単位である３２ビットつまり４バイトを単位として３２回ずつ繰り返されるが、簡略化して示した。
【００８３】
ステップＳ２１４の不条理書き込み判定処理を正常に終了した中央処理ユニットＣＰＵは、次にステップＳ２１５により、反転セクタライトデータＷＤＩＳの４Ｂつまり４バイト分をレジスタＲＥＧ１に入力した後、ステップＳ２１６により、セクタリードデータＲＤＳの対応する４バイト分をレジスタＲＥＧ２に入力する。また、ステップＳ２１７により、レジスタＲＥＧ１及びＲＥＧ２の内容、つまり反転セクタライトデータＷＤＩＳ及びセクタリードデータＲＤＳの対応する４バイトの論理積をとり、その処理結果つまり論理積データをレジスタＲＥＧ３に入力した後、ステップＳ２１８により、レジスタＲＥＧ３の内容つまり論理積データが全ビット論理“０”であるかどうかの判定を行う。
【００８４】
この結果、レジスタＲＥＧ３の内容つまり論理積データのいずれかのビットが論理“１”である場合、中央処理ユニットＣＰＵは、ステップＳ２２２により、レジスタＲＥＧ３の内容つまり論理積データをビット反転してセクタリライトデータＷＤＲＳを４バイト分生成した後、ステップＳ２２３により、１セクタ分つまり１２８バイト分の処理が終了したかの判定を行う。そして、まだ１セクタ分に関する処理が終了していない場合、中央処理ユニットＣＰＵは、ステップＳ２１４に戻って次の４バイト分に関する処理を繰り返し、１セクタ分に関する処理が終了した場合には、ステップＳ２２４により、該セクタに関する書き込み回数が所定値をオーバーしていないか確認した後、ステップＳ２２５により、編集された１セクタ分のリライトデータＷＤＲＳをフラッシュメモリＦＲＯＭの指定セクタに書き込む。なお、ステップＳ２２４において、書き込み回数が所定値をオーバーした場合、中央処理ユニットＣＰＵは所定のエラー処理を行う。
【００８５】
一方、ステップＳ２１８で、レジスタＲＥＧ３の内容つまり論理積データが全ビット論理“０”となった場合、中央処理ユニットＣＰＵは、ステップＳ２１９により、レジスタＲＥＧ４の対応するビットに論理“０”を書き込んだ後、ステップＳ２２０により、１セクタ分つまり１２８バイト分の処理が終了したかの判定を行う。そして、まだ１セクタ分に関する処理が終了していない場合、ステップＳ２１４に戻って次の４バイト分に関する処理を繰り返し、１セクタ分に関する処理が終了した場合は、ステップＳ２２１により、レジスタＲＥＧ４の全ビットが論理“０”となったかどうか判定する。
【００８６】
なお、レジスタＲＥＧ４は、その３２ビットのそれぞれがセクタライトデータＷＤＳ及びセクタリードデータＲＤＳの各４バイトに対応し、中央処理ユニットＣＰＵは、１セクタ分に関する書き込み動作が開始された時点で、予めレジスタＲＥＧ４の全ビットに論理“１”を書き込む。また、レジスタＲＥＧ４の各ビットは、上記のように、レジスタＲＥＧ３の内容、つまり反転セクタライトデータＷＤＩＳ及びセクタリードデータＲＤＳの対応する４バイトの論理積データの全ビットが論理“０”、すなわちセクタライトデータＷＤＳの対応する４バイトに関する書き込み動作の終了が確認された時点で、それぞれ論理“０”に書き換えられる。このため、ステップＳ２２１において、レジスタＲＥＧ４の全ビットが論理“０”となったことは、１２８バイトのセクタライトデータＷＤＳに関するすべての書き込みが終了したことを示すものとなる。
【００８７】
したがって、ステップＳ２２１において、レジスタＲＥＧ４のいずれかのビットが論理“１”であることを判定した中央処理ユニットＣＰＵは、ステップＳ２２４に移行してセクタリライトデータＷＤＲＳの書き込みを行うが、レジスタＲＥＧ４の全ビットが論理“０”となったことを判定した場合、指定セクタへのセクタライトデータＷＤＳの書き込みに関する処理を終結する。
【００８８】
このように、本実施例のマイクロコンピュータでは、フラッシュメモリＦＲＯＭの書き込み動作に関する一連の処理が、主に中央処理ユニットＣＰＵによりソフトウェア的に行われ、一見すると中央処理ユニットＣＰＵに対する処理負担の増大が気になってくる。しかし、フラッシュメモリＦＲＯＭは、前述のように、中央処理ユニットＣＰＵの動作制御に関わるプログラムを格納するためのものであり、フラッシュメモリＦＲＯＭの書き換えが行われるということは、中央処理ユニットＣＰＵひいてはこれを含むシステム本来の通常処理が実行不能又は不要な状態にあることを示すものとなる。したがって、中央処理ユニットＣＰＵは、フラッシュメモリＦＲＯＭの書き換えに関する制御プログラムが例えばスタティック型ＲＡＭ等に残されていることを条件に、フラッシュメモリＦＲＯＭの書き換え動作に関する一連の処理に関与することができる。
【００８９】
フラッシュメモリＦＲＯＭの書き込み動作に関する一連の処理が、主に中央処理ユニットＣＰＵによりソフトウェア的に行われることで、フラッシュメモリＦＲＯＭの書き込み動作に関するハードウェアを削減し、そのレイアウト所要面積ひいてはマイクロコンピュータのチップサイズを縮小して、マイクロコンピュータの低コスト化を図ることができる。また、特にマイクロコンピュータの開発期間等において、フラッシュメモリＦＲＯＭの書き換えによりその書き込み手順を任意に修正・変更することができ、これによってフラッシュメモリＦＲＯＭひいてはマイクロコンピュータの開発期間を短縮することが可能となる。
【００９０】
図９には、図１のマイクロコンピュータのフラッシュメモリ書き込み時の第２の実施例の基本フロー図が示されている。また、図１０には、図９のフラッシュメモリ書き込み時の動作を説明するための一実施例の動作概念図が示され、図１１には、図９の基本フローをとる中央処理ユニットの一実施例の処理フロー図が示されている。なお、この実施例は、前記図４〜図８の実施例を基本的に踏襲するものであるため、これと異なる部分についてのみ説明を追加する。
【００９１】
図９において、ステップＳ３１１によって生成されたライトデータＷＤは、ステップＳ３１２により、ビット反転されて反転ライトデータＷＤＩとなり、この反転ライトデータＷＤＩは、さらにステップＳ３１３により、そのままの論理値で書き込み履歴データＷＤＨとなる。言うまでもなく、ステップＳ３１３によって生成される当初の書き込み履歴データＷＤＨは、図１０の第３段目に例示されるように、反転ライトデータＷＤＩそのものとなる。
【００９２】
次に、ステップＳ３１４により、フラッシュメモリＦＲＯＭの指定アドレスから読み出されたリードデータＲＤは、ステップＳ３１５による不条理書き込みの判定を受けた後、ステップＳ３１６により、書き込み履歴データＷＤＨとの論理積をとられて、論理積データＷＤＡとなる。この論理積データＷＤＡは、さらにステップＳ３１７により、新しい書き込み履歴データＷＤＨとなるが、上記のように、当初の書き込み履歴データＷＤＨは反転ライトデータＷＤＩそのものであり、ループ１回目の論理積データＷＤＡは、図１０の第５段目に例示されるように、反転ライトデータＷＤＩそのものとなるため、ステップＳ３１７により生成される新しい書き込み履歴データＷＤＨの各ビットも、図１０の第６段目に例示されるように、それまでの論理値をそのまま保持したものとなる。
【００９３】
ステップＳ３１６により生成された論理積データＷＤＡは、ステップＳ３１８により、その全ビットが論理“０”となったかどうか、つまり書き込み動作が終了してその書き込み対象となるビットがすべて論理“０”に変わったかどうかの判定を受ける。この結果、論理積データＷＤＡの全ビットが論理“０”に変化した場合、指定アドレスに対する書き込み動作が終了したものとして他の処理に移行する。しかし、まだいずれかのビットが論理“１”のままである場合は、ステップＳ３１９により、論理積データＷＤＡをビット反転してリライトデータＷＤＲが生成された後、ステップＳ３２０により、指定アドレスに対するリライトデータＷＤＲの書き込みが行われ、ステップＳ３１４に処理が戻される。
【００９４】
ステップＳ３２０による書き込み動作を終えたメモリアレイＭＡＲＹの指定アドレスでは、図１０の第８段目に例示されるように、その第３ビットだけが、書き込み未終了となって論理“１”つまり消去状態のままにあり、ループ２回目のステップＳ３１４による読み出し動作では、図１０の第９段目に例示されるように、リードデータＲＤの第３ビットが論理“１”となる。このため、ステップＳ３１６により得られる新しい論理積データＷＤＡは、図１０の第１０段目に例示されるように、その第３ビットのみが論理“１”となり、ステップＳ３１７により得られる新しい書き込み履歴データＷＤＨも、図１０の第１１段目に例示されるように、やはりその第３ビットのみが論理“１”となる。
【００９５】
これにより、ループ２回目のステップＳ３１９により生成されるリライトデータＷＤＲは、図１０の第１２段目に例示されるように、その第３ビットのみが論理“０”となり、その他のビットは論理“１”となる。このリライトデータＷＤＲは、ステップＳ３２０により再度指定アドレスに書き込まれ、その結果として指定アドレスの第３ビットは、図１０の第１３段目に例示されるように、論理“０”に変化し、全ビットがライトデータＷＤと一致した状態となる。
【００９６】
ところで、メモリアレイＭＡＲＹを構成する２層ゲート構造型メモリセルＭＣのしきい値電圧が揺らぎ領域にある場合、リードデータＲＤの対応するビットが読み出し動作のたびに論理“０”から“１”あるいは論理“１”から“０”へと変化するケースが生じる。このことは、ステップＳ３１８の判定処理に異常をきたし、不本意な書き込み時間の増大や無限ループ発生の原因となる。
【００９７】
この実施例の場合、例えば、リードデータＲＤの第４ビットに対応するメモリセルＭＣが揺らぎ領域にあり、図１０の第１４段目に例示されるように、一旦論理“０”となったリードデータＲＤの第４ビットが、ループ３回目のステップＳ３１４で論理“１”に変化し、消去状態に化けている。
【００９８】
ところが、前記図４の実施例では、論理積データＷＤＡの生成がリードデータＲＤと反転ライトデータＷＤＩとをもとに生成されていたが、この実施例では、上記のように、リードデータＲＤと書き込み履歴データＷＤＨとをもとに生成されるため、ループ３回目のステップＳ３１６では、論理積データＷＤＡの第４ビットが論理“０”のままとなり、書き込み終了となる。
【００９９】
つまり、この実施例の場合、書き込み履歴データＷＤＨが、当初は反転ライトデータＷＤＩそのものとして生成されるが、ループ２回目以後は、ステップＳ３１６による論理積処理の結果をもとに書き換えられ、一旦書き込み状態となったメモリセルＭＣに対応するビットは論理“０”に変化する。言い換えると、書き込み履歴データＷＤＨの各ビットは、対応するメモリセルＭＣが書き込みの対象ビットであることを示すとともに、対応するメモリセルＭＣが一旦論理“０”に書き換えられたことの履歴を示すものであって、この書き込み履歴データＷＤＨとリードデータＲＤとをもとにリライトデータＷＤＲが生成される限り、一旦書き換えられたメモリセルＭＣに対する再書き込みは生じない。
【０１００】
この結果、書き込み状態のメモリセルＭＣに対して再書き込みが繰り返される過書き込みにより、メモリセルのしきい値電圧が低くなり過ぎてデプリート障害となり、あるいはメモリセルＭＣのしきい値電圧のバラツキが大きくなるのを確実に防止することができ、これによってフラッシュメモリＦＲＯＭひいてはマイクロコンピュータの信頼性を高めることができるものである。
【０１０１】
なお、この実施例のマイクロコンピュータでは、前記図４の実施例と同様に、実際には１２８バイトのセクタを単位としてフラッシュメモリＦＲＯＭの書き込み動作が実行され、指定セクタの書き込み動作に関する上記一連の処理は、主に中央処理ユニットＣＰＵによりソフトウェア的に行われる。このため、中央処理ユニットＣＰＵでは、図１１に示される手順に従って具体的な処理が進められ、図９の基本フローに沿った書き込み動作が行われる。
【０１０２】
すなわち、中央処理ユニットＣＰＵは、まずステップＳ４１１により、指定セクタに書き込むべき１２８バイト単位のセクタライトデータＷＤＳを編集し、次のステップＳ４１２及び４１３により、このセクタライトデータＷＤＳをビット反転して反転セクタライトデータＷＤＩＳ及び書き込み履歴データＷＤＨＳを生成する。また、ステップＳ４１４により、指定セクタの保持データＲＤＳをセクタ単位で読み出した後、ステップＳ４１５により、セクタリードデータＲＤＳ及びセクタライトデータＷＤＳをもとに不条理書き込みの判定を行う。
【０１０３】
ステップＳ４１５の不条理書き込み判定処理を正常に終了した中央処理ユニットＣＰＵは、次のステップＳ４１６により、書き込み履歴データＷＤＨＳの４バイト分をレジスタＲＥＧ１に入力し、ステップＳ４１７により、セクタリードデータＲＤＳの対応する４バイト分をレジスタＲＥＧ２に入力する。また、ステップＳ４１８により、レジスタＲＥＧ１及びＲＥＧ２の内容、つまり書き込み履歴データＷＤＨＳ及びセクタリードデータＲＤＳの対応する４バイトの論理積をとり、その処理結果つまり論理積データをレジスタＲＥＧ３に入力するとともに、ステップＳ４１９により、新しい書き込み履歴データＷＤＨＳとする。さらに、ステップＳ４２０により、レジスタＲＥＧ３が全ビット論理“０”となったかどうかの判定を行い、その結果に応じて、選択的にステップＳ４２４〜Ｓ４２７のリライトデータＷＤＲＳの生成処理及び書き込み処理を実行する。そして、ステップＳ４２３により、レジスタＲＥＧ４の全ビットの論理“０”を判定して、セクタライトデータＷＤＳに関する書き込み動作を終結する。
【０１０４】
このように、フラッシュメモリＦＲＯＭの書き込み動作に関する一連の処理を主に中央処理ユニットＣＰＵによりソフトウェア的に行うことで、フラッシュメモリＦＲＯＭの書き込み動作に関するハードウェアを削減し、マイクロコンピュータの低コスト化を図ることができるとともに、フラッシュメモリＦＲＯＭひいてはマイクロコンピュータの開発期間を短縮できるものとなる。
【０１０５】
図１２には、図１のマイクロコンピュータのフラッシュメモリ消去時の一実施例の基本フロー図が示されている。同図をもとに、この実施例のマイクロコンピュータのフラッシュメモリ消去動作の概要とその特徴について説明する。なお、この実施例は、前記図１ないし図８あるいは図９ないし図１１の実施例を基本的に踏襲するものであって、以下に説明する各処理ステップは、特に制限されないが、中央処理ユニットＣＰＵによりソフトウェア的に行われる。また、フラッシュメモリＦＲＯＭの消去動作は、所定数のセクタからなるブロックを指定として選択的に行われ、あるいは全アドレスを対象に一括して行われる。
【０１０６】
図１２において、この実施例のマイクロコンピュータにおけるフラッシュメモリＦＲＯＭの消去動作は、ステップＳ５１１のライトデータＷＤの生成で開始される。このステップＳ５１１では、消去対象となるアドレスのすべてのメモリセルＭＣに対して論理“０”を書き込むべくライトデータＷＤが生成される。ステップＳ５１１により生成されたライトデータＷＤは、ステップＳ５１２により、フラッシュメモリＦＲＯＭの指定アドレスにセクタ単位でプレライトされ、ステップＳ５１３により消去対象となる全セクタへのプレライトが終了したかどうかの判定が行われる。この結果、全セクタへのプレライトの終了が確認されると、ステップＳ５１４及びＳ５１５により、例えばブロックを単位とする消去動作が繰り返され、全ブロックの消去が確認されると消去処理が終了する。
【０１０７】
この実施例において、ステップＳ５１２及びＳ５１３によるプレライトは、前記図４又は図９の基本フローに従って行われる。したがって、フラッシュメモリＦＲＯＭのメモリアレイＭＡＲＹを構成する２層ゲート構造型メモリセルＭＣに対する書き込み動作は、各メモリセルＭＣが一回でも書き込み状態となった時点で停止され、プレライト後のメモリセルＭＣの書き込み状態は、ほぼ平均した状態に揃えられる。このため、ステップＳ５１４及びＳ５１５による消去動作が、比較的多数のメモリセルＭＣからなるブロックを単位として行われるにもかかわらず、これらのメモリセルＭＣを平均した消去状態とすることができる。この結果、特定のメモリセルＭＣがいわゆる過消去状態となるのを防止して、メモリセルＭＣの劣化を防止することができ、これによってフラッシュメモリＦＲＯＭひいてはマイクロコンピュータの信頼性を高めることができる。
【０１０８】
図１３には、この発明が適用されたマイクロコンピュータのフラッシュメモリに含まれるメモリアレイＭＡＲＹ及び周辺部の他の一実施例の部分的な回路図が示されている。なお、この実施例は、前記図９の基本フローを、主にフラッシュメモリの関連回路によりハードウェア的に実現し、その分、マイクロコンピュータの中央処理ユニットの負担を軽減しようとするものであって、図１３の回路素子のうち前記図３と同一の符号が付されるものは、概ねそのままそれぞれ対応する。また、この実施例では、図９のステップＳ３１５の不条理書き込み判定処理に対応するハードウェアを含まないが、必要に応じてこれを含むことは可能である。以下、図３と異なる部分について説明を追加する。
【０１０９】
図１３において、カラムラッチＣＬは、特に制限されないが、メモリアレイＭＡＲＹのビット線Ｂ０〜Ｂｎに対応して設けられるｎ＋１個つまり実質１，０２４個の単位回路を備え、これらの単位回路のそれぞれは、インバータＶ１及びＶ２が交差結合されてなるラッチ回路Ｌ１と、インバータＶ４及びＶ５が交差結合されてなるもう一つのラッチ回路Ｌ２と、これらのラッチ回路Ｌ１及びＬ２の出力信号を受ける２入力のアンド（ＡＮＤ）ゲートＧ１とを含む。また、カラムラッチＣＬは、すべて単位回路に共通に設けられる実質１，０２４入力のアンドゲートＧ２を含み、このアンドゲートＧ２の各入力端子には、各単位回路のラッチ回路Ｌ１の下方の入出力ノードがそれぞれ結合される。言うまでもなく、アンドゲートＧ２は１個の論理ゲートからなるものではなく、多数の論理ゲートが組み合わされることで実質１，０２４入力のアンドゲートＧ２となる。
【０１１０】
カラムラッチＣＬの各単位回路のラッチ回路Ｌ１の下方の入出力ノードは、スイッチＭＯＳＦＥＴＮ１を介して対応するデータ入出力線Ｄ０〜Ｄｎつまりデータ入出力回路ＩＯに結合されるとともに、上記アンドゲートＧ２の対応する入力端子にそれぞれ結合される。また、その上方の入出力ノードは、アンドゲートＧ１の右側の入力端子に結合されるとともに、書き込み回路ＷＣの対応する単位回路のインバータＶ３の入力端子に結合され、さらにＮチャンネル型のスイッチＭＯＳＦＥＴＮ４を介して対応するアンドゲートＧ１の出力端子にそれぞれ結合される。スイッチＭＯＳＦＥＴＮ１のゲートには、図示されないメモリコントローラＭＣからラッチ制御信号ＬＣ１が共通に供給され、スイッチＭＯＳＦＥＴＮ４のゲートには、ラッチ制御信号ＬＣ４が共通に供給される。
【０１１１】
なお、ラッチ制御信号ＬＣ１は、通常接地電位ＶＳＳのようなロウレベルとされ、フラッシュメモリが書き込みモードで選択状態とされるとき、データ入出力回路ＩＯからＹゲート回路ＹＧを介してライトデータが入力される所定のタイミングで、選択的に電源電圧ＶＣＣのようなハイレベルとされる。また、ラッチ制御信号ＬＣ４は、やはり通常ロウレベルとされ、フラッシュメモリが書き込みモードで選択状態とされるとき、アンドゲートＧ１によってリードデータと反転書き込みデータ又は書き込み履歴データとの論理積データが生成される所定のタイミング、言い換えるならば図９の基本フローのステップＳ３１６終了時に対応するタイミングで選択的にハイレベルとされる。
【０１１２】
一方、カラムラッチＣＬの各単位回路のラッチ回路Ｌ２の下方の入出力ノードは、Ｎチャンネル型のスイッチＭＯＳＦＥＴＮ３を介して対応するデータ入出力線Ｄ０〜Ｄｎつまりデータ入出力回路ＩＯに結合されるとともに、上記アンドゲートＧ１の左側の入力端子に結合され、その上方の入出力ノードは、スイッチＭＯＳＦＥＴＮ２を介してセンスアンプＳＡの対応する単位センスアンプＵＡの反転出力ノードに結合される。スイッチＭＯＳＦＥＴＮ２のゲートには、メモリコントローラＭＣからラッチ制御信号ＬＣ２が共通に供給され、スイッチＭＯＳＦＥＴＮ３のゲートには、ラッチ制御信号ＬＣ３が共通に供給される。
【０１１３】
なお、ラッチ制御信号ＬＣ２は、通常接地電位ＶＳＳのようなロウレベルとされ、フラッシュメモリが読み出しモードで選択状態とされるとき、対応する単位センスアンプＵＡの出力レベルが確定される所定のタイミングで、選択的に電源電圧ＶＣＣのようなハイレベルとされる。また、ラッチ制御信号ＬＣ３は、やはり通常ロウレベルとされ、フラッシュメモリが読み出しモードで選択状態とされるとき、指定アドレスのリードデータをデータ入出力回路ＩＯに伝達すべき所定のタイミングで選択的にハイレベルとされる。
【０１１４】
以下、図９の基本フローの各処理ステップに対応付けて、この実施例のフラッシュメモリの書き込み動作を具体的に説明する。
【０１１５】
まず、図９のステップＳ３１１により生成されるライトデータＷＤは、データ入出力回路ＩＯからＹゲート回路ＹＧならびにデータ入出力線Ｄ０〜Ｄｎの対応する３２ビットを介して３２ビット単位でカラムラッチＣＬに供給される。これらのライトデータＷＤは、ラッチ制御信号ＬＣ１のハイレベルを受けてオン状態となるスイッチＭＯＳＦＥＴＮ１を介して、カラムラッチＣＬの対応する単位回路のラッチ回路Ｌ１に順次取り込まれ、保持される。
【０１１６】
言うまでもなく、データ入出力線Ｄ０〜ＤｎつまりカラムラッチＣＬの各単位回路のラッチ回路Ｌ１の下方の入出力ノードにおけるライトデータＷＤの各ビットは、書き込み対象となるメモリセルＭＣに対応するビットが論理“０”つまり接地電位ＶＳＳのようなロウレベルとされ、それ以外のビットはすべて論理“１”つまり電源電圧ＶＣＣのようなハイレベルとされる。また、ラッチ回路Ｌ１に保持されるライトデータＷＤの各ビットは、インバータＶ１の出力端子においてそれぞれビット反転され、図９のステップＳ３１２後の反転ライトデータＷＤＩとなり、ステップＳ３１３後の書き込み履歴データＷＤＨともなる。
【０１１７】
次に、図９のステップＳ３１４によりメモリアレイＭＡＲＹの指定アドレスから１，０２４ビットつまり１２８バイト単位で読み出され、センスアンプＳＡの対応する単位センスアンプＵＡの反転出力ノードに論理反転されて確立されるリードデータＲＤは、ラッチ制御信号ＬＣ２のハイレベルを受けてオン状態となるカラムラッチＣＬのスイッチＭＯＳＦＥＴＮ２を介して、対応するラッチ回路Ｌ２に一斉に取り込まれ、そのインバータＶ５の出力端子において非反転のリードデータＲＤとなる。これらのリードデータＲＤは、対応するアンドゲートＧ１により、ラッチ回路Ｌ１に保持されている書き込み履歴データＷＤＨの対応するビットとそれぞれ論理積がとられ、図９のステップＳ３１６後の論理積データＷＤＡとなる。そして、ラッチ制御信号ＬＣ４のハイレベルを受けてオン状態となるスイッチＭＯＳＦＥＴＮ４を介して、対応するラッチ回路Ｌ１に取り込まれ、ステップＳ３１７後の新しい書き込み履歴データＷＤＨとなる。
【０１１８】
ラッチ回路Ｌ１に取り込まれた書き込み履歴データＷＤＨつまり論理積データＷＤＡは、各ラッチ回路Ｌ１の下方の入出力ノードで反転されてアンドゲートＧ２の対応する入力端子にそれぞれ供給され、論理積がとられる。このアンドゲートＧ２は、図９のステップＳ３１８の判定処理に対応するするものであって、その出力信号ＷＤＡ０は、ラッチ回路Ｌ１に保持される論理積データＷＤＡのすべてのビットが論理“０”とされるとき選択的にハイレベルとされる。アンドゲートＧ２の出力信号ＷＤＡ０は、フラッシュメモリのメモリコントローラＭＣに供給され、そのハイレベルを受けて書き込み終了が判定される。
【０１１９】
一方、ラッチ回路Ｌ１に取り込まれた書き込み履歴データＷＤＨつまり論理積データＷＤＡは、各ラッチ回路Ｌ１の下方の入出力ノードにおいてリライトデータＷＤＲとなる。そして、このリライトデータＷＤＲの対応するビットが論理“０”とされることを条件に、つまりは論理積データＷＤＡの対応するビットが論理“１”すなわちハイレベルであることを条件に、書き込み回路ＷＣの対応する単位回路のＭＯＳＦＥＴＰ１が選択的にオン状態となり、メモリアレイＭＡＲＹの対応するメモリセルＭＣに対する書き込みが選択的に行われる。
【０１２０】
このように、本実施例のマイクロコンピュータでは、フラッシュメモリの書き込み動作に関する一連の処理が、主にフラッシュメモリの関連回路つまりカラムラッチＣＬ，書き込み回路ＷＣならびにセンスアンプＳＡによりハードウェア的に行われ、中央処理ユニットは、ライトデータＷＤの生成や３２ビット単位のデータ転送以外にほとんど関与しない。このため、例えばフラッシュメモリの書き込みが中央処理ユニットの通常処理の合間をみて、しかも部分的に行われるような場合、比較的少量のハードウェア追加で、かつ比較的高速に、フラッシュメモリ等の部分的な書き換えを行うことができるものとなる。
【０１２１】
以上の実施例から得られる作用効果は、下記の通りである。すなわち、
（１）シングルチップマイクロコンピュータ等に搭載されるフラッシュメモリ等の不揮発性メモリにおいて、指定アドレスから読み出されるリードデータと、そこに書き込むべきライトデータのビット反転データとの論理積データをもとに、指定アドレスに対する書き込み動作の終了を判定するとともに、同一の論理積データをもとに、書き込みが終了していない指定アドレスに対して再書き込みすべきリライトデータを生成することで、１回の読み出し動作により得られるリードデータをもとに、書き込み動作の終了を判定し、かつリライトデータを生成できるため、特にメモリセルのしきい値電圧が揺らぎ領域にある場合の無限ループを抑制し、フラッシュメモリ等の書き込み所要時間の不本意な増大を抑制できるとともに、その書き込み特性を改善できるという効果が得られる。
【０１２２】
（２）シングルチップマイクロコンピュータ等に搭載されるフラッシュメモリ等の不揮発性メモリにおいて、指定アドレスに書き込むべきライトデータ、又は書き込みが終了していない指定アドレスに対するリライトデータをビット反転してなる書き込み履歴データと、指定アドレスから読み出されるリードデータとの論理積データをもとに、指定アドレスに対する書き込み動作の終了を判定するとともに、同一の論理積データをもとに、リライトデータを生成することで、一度書き込み状態となったメモリセルが消去状態となった場合でもこのようなメモリセルに対する再書き込みを防止することができるため、特にメモリセルのしきい値電圧が揺らぎ領域にある場合の無限ループをさらに確実に解消して、フラッシュメモリ等の書き込み所要時間の不本意な増大を確実に防止できるとともに、その書き込み特性を改善することができるという効果が得られる。
【０１２３】
（３）上記（１）項又は（２）項において、フラッシュメモリ等の書き込み動作に関する一連の処理を、プレライト機能を有するフラッシュメモリ等に適用することで、消去対象となるメモリセルのプレライト後のしきい値電圧のバラツキを小さくし、その消去特性を高めることができるという効果が得られる。
【０１２４】
（４）上記（１）項〜（３）項において、指定アドレスに書き込むべきライトデータと、指定アドレスから読み出されるリードデータのビット反転データとの論理積データをもとに、不条理書き込み判定処理を行うことで、指定アドレスのすでに書き込み済のビットに対する不条理書き込みを防止することができるとともに、デプリートエラーを識別することができ、これによってフラッシュメモリ等の保持データの信頼性を高めることができるという効果が得られる。
【０１２５】
（５）上記（１）項〜（４）項において、フラッシュメモリ等の書き込み動作に関する一連の処理を、マイクロコンピュータ等に搭載された中央処理ユニットによりソフトウェア的に実現することで、フラッシュメモリ等の書き込みが行われる間は通常処理に使用されることのない中央処理ユニットを活用して、フラッシュメモリのハードウェア量を削減し、マイクロコンピュータ等のチップサイズを縮小して、そのコスト低減を図ることができるという効果が得られる。
【０１２６】
（６）上記（１）項〜（４）項において、フラッシュメモリ等の書き込み動作に関する一連の処理を、フラッシュメモリ等の関連回路によりハードウェア的に実現することで、比較的少量のハードウェア追加で、かつ比較的高速に、しかも中央処理ユニットが他の処理を行っている間に、フラッシュメモリ等の部分的な書き換えを行うことができるという効果が得られる。
【０１２７】
（７）上記（１）項〜（６）項により、フラッシュメモリ等ならびにこれを含むシングルチップマイクロコンピュータ等の信頼性を高め、その高速化，低コスト化ならびに処理の効率化を図ることができるという効果が得られる。
【０１２８】
以上、本発明者によってなされた発明を実施例に基づき具体的に説明したが、この発明は、上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。例えば、図１において、シングルチップマイクロコンピュータは、必ずしも図示されるすべての機能ブロックを備える必要はないし、他の各種機能ブロックを含むこともできる。シングルチップマイクロコンピュータのブロック構成及びバス構成等は、この実施例による制約を受けることなく種々の実施形態をとりうる。
【０１２９】
図２において、フラッシュメモリＦＲＯＭは、例えば×８ビット又は×１６ビット等、任意のビット構成を採ることができるし、メモリアレイＭＡＲＹは、その直接周辺回路を含めて複数のメモリマットに分割することができる。フラッシュメモリＦＲＯＭの記憶容量は、任意に設定できるし、そのブロック構成についても同様である。図３及び図１３において、メモリアレイＭＡＲＹは、任意数の冗長素子を含むことができるし、そのワード線及びビット線の絶対数も任意に設定できる。書き込み回路ＷＣ，センスアンプＳＡならびにカラムラッチＣＬの具体的な回路構成，電源電圧の極性及び絶対値，ＭＯＳＦＥＴの導電型ならびに各制御信号の有効レベル等は、種々の実施形態をとりうる。
【０１３０】
図４，図６，図８，図９，図１１ならびに図１２において、フラッシュメモリＦＲＯＭの書き込み・消去時の具体的な処理フローは、例えばその順序を入れ換え、又は論理値を入れ換える等、種々の形態が考えられよう。
【０１３１】
以上の説明では、主として本発明者によってなされた発明をその背景となった利用分野であるフラッシュメモリならびにこれを搭載するシングルチップマイクロコンピュータに適用した場合について説明したが、それに限定されるものではなく、例えば、フラッシュメモリと中央処理ユニットがそれぞれ別個の半導体基板面上に形成されるものや、フラッシュメモリとして単体で形成されるもの、あるいは同様な書き込み・消去機能を持つ各種のメモリ集積回路装置、さらにはこれを搭載する各種デジタルシステムにも適用できる。この発明は、少なくとも２層ゲート構造型メモリセルが格子配列されてなるメモリアレイを備える不揮発性メモリならびにこれを含むシステムに広く適用できる。
【０１３２】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。すなわち、シングルチップマイクロコンピュータ等に搭載されるフラッシュメモリ等の不揮発性メモリにおいて、指定アドレスから読み出されるリードデータと、そこに書き込むべきライトデータのビット反転データとの論理積データをもとに、指定アドレスに対する書き込み動作の終了を判定するとともに、同一の論理積データをもとに、書き込みが終了していない指定アドレスに対して再書き込みすべきリライトデータを生成することで、１回の読み出し動作により得られるリードデータをもとに、書き込み動作の終了を判定し、かつリライトデータを生成することができるため、特にメモリセルのしきい値電圧が揺らぎ領域にある場合の無限ループを抑制し、フラッシュメモリ等の書き込み所要時間の不本意な増大を抑制することができるとともに、フラッシュメモリ等の書き込み特性を改善することができる。
【０１３３】
シングルチップマイクロコンピュータ等に搭載されるフラッシュメモリ等の不揮発性メモリにおいて、指定アドレスに書き込むべきライトデータ、又は書き込みが終了していない指定アドレスに対するリライトデータをビット反転してなる書き込み履歴データと、指定アドレスから読み出されるリードデータとの論理積データをもとに、書き込み動作の終了を判定するとともに、同一の論理積データをもとに、リライトデータを生成することで、一旦書き込み状態となったメモリセルが再度消去状態となった場合でも、このようなメモリセルに対する再書き込みを防止することができるため、特にメモリセルのしきい値電圧が揺らぎ領域にある場合の無限ループをさらに確実に解消して、フラッシュメモリ等の書き込み所要時間の不本意な増大を確実に防止することができるとともに、フラッシュメモリ等の書き込み特性を改善することができる。
【０１３４】
上記フラッシュメモリ等の書き込み動作に関する一連の処理を、プレライト機能を有するフラッシュメモリ等ならびにこれを含むマイクロコンピュータ等に適用することで、消去対象となるメモリセルのプレライト後のしきい値電圧のバラツキを抑制し、その消去特性を高めることができる。
【０１３５】
上記フラッシュメモリ等において、指定アドレスに書き込むべきライトデータと、指定アドレスから読み出されるリードデータのビット反転データとの論理積データをもとに、不条理書き込み判定処理を行うことで、指定アドレスのすでに書き込み済のビットに対する不条理書き込みを防止することができるとともに、デプリートエラーを識別することができ、これによってフラッシュメモリ等の保持データの信頼性を高めることができる。
【０１３６】
上記フラッシュメモリ等の書き込み動作に関する一連の処理を、マイクロコンピュータ等に搭載された中央処理ユニットによりソフトウェア的に実現することで、フラッシュメモリ等の書き込みが行われる間は通常処理に使用されることのない中央処理ユニットをフラッシュメモリ等の書き換えに活用して、フラッシュメモリ等のハードウェア量を削減し、マイクロコンピュータ等のチップサイズを縮小して、そのコスト低減を図ることができる。
【０１３７】
上記フラッシュメモリ等の書き込み動作に関する一連の処理を、フラッシュメモリ等の関連回路によりハードウェア的に実現することで、比較的少量のハードウェア追加で、かつ比較的高速に、しかも中央処理ユニットが他の処理を行っている間に、フラッシュメモリ等の部分的な書き換えを行うことができる。
【０１３８】
以上により、フラッシュメモリ等ならびにこれを含むシングルチップマイクロコンピュータ等の信頼性を高め、その高速化，低コスト化ならびに処理の効率化を図ることができる。
【図面の簡単な説明】
【図１】この発明が適用されたマイクロコンピュータの一実施例を示すブロック図である。
【図２】図１のマイクロコンピュータに含まれるフラッシュメモリの一実施例を示すブロック図である。
【図３】図２のフラッシュメモリＦＲＯＭに含まれるメモリアレイ及び周辺部の一実施例を示す部分的な回路図である。
【図４】図１のマイクロコンピュータのフラッシュメモリ書き込み時の第１の実施例を示す基本フロー図である。
【図５】図４のフラッシュメモリ書き込み時の動作を説明するための一実施例を示す動作概念図である。
【図６】図４のフラッシュメモリ書き込み時における不条理書き込み判定処理の一実施例を示す基本フロー図である。
【図７】図６の不条理書き込み判定処理時の動作を説明するための一実施例を示す動作概念図である。
【図８】図４の基本フローをとるマイクロコンピュータの中央処理ユニットの一実施例を示す処理フロー図である。
【図９】図１のマイクロコンピュータのフラッシュメモリ書き込み時の第２の実施例を示す基本フロー図である。
【図１０】図９のフラッシュメモリ書き込み動作を説明するための一実施例を示す動作概念図である。
【図１１】図９の基本フローをとるマイクロコンピュータの中央処理ユニットの一実施例を示す処理フロー図である。
【図１２】図１のマイクロコンピュータのフラッシュメモリ消去時の一実施例を示す基本フロー図である。
【図１３】この発明が適用されたマイクロコンピュータのフラッシュメモリに含まれるメモリアレイ及び周辺部の他の一実施例を示す部分的な回路図である。
【図１４】この発明に先立って本願発明者等が開発したマイクロコンピュータのフラッシュメモリ書き込み時の一例を示す基本フロー図である。
【図１５】この発明に先立って本願発明者等が開発したマイクロコンピュータのフラッシ
ュメモリ書き込み時の他の一例を示す基本フロー図である。
【符号の説明】
ＣＰＵ……中央処理ユニット、ＣＰＧ……クロック発生回路、ＩＢＵＳ……内部バス、ＰＢＵＳ……周辺バス、ＦＲＯＭ……フラッシュメモリ、ＳＲＡＭ……スタティック型ＲＡＭ（ランダムアクセスメモリ）、ＤＭＡＣ……ダイレクトメモリアクセスコントローラ、ＢＵＳＣ……バスコントローラ、ＳＣＩ……シリアルコミュニケーションインタフェース、ＴＩＭ……タイマー回路、Ｄ／Ａ……デジタル・アナログ変換回路、Ａ／Ｄ……アナログ・デジタル変換回路、ＩＯＰＡ〜ＩＯＰＫ……入出力ポート、ＸＴＡＬ……水晶発振子。
ＭＡＲＹ……メモリアレイ、ＸＤ……Ｘアドレスデコーダ、ＳＣ……ソース電圧制御回路、ＷＣ……書き込み回路、ＳＡ……センスアンプ、ＣＬ……カラムラッチ、ＹＧ……Ｙゲート回路、ＹＤ……Ｙアドレスデコーダ、ＣＢ……コントロールバッファ、ＭＣ……メモリコントローラ、ＡＢ……アドレスバッファ、ＤＢ……データバッファ、ＩＯ……データ入出力回路、ＶＧ……内部電圧発生回路、ＶＣＳ……電圧制御信号、ＶＣＣ……電源電圧、ＶＳＳ……接地電位。
Ｗ０〜Ｗｍ……ワード線、Ｂ０〜Ｂｎ……ビット線、ＭＣ……２層ゲート構造型メモリセル、Ｓ０〜Ｓｐ……ソース線、ＶＰＰ……内部電圧、ＵＡ……単位センスアンプ、Ｄ０〜Ｄｎ……データ入出力線、ＷＰ……書き込み制御信号、ＲＣ……読み出し制御信号、ＬＣ１〜ＬＣ４……ラッチ制御信号。
Ｓ１１１〜Ｓ１１８，Ｓ１４１〜Ｓ１４３，Ｓ２１１〜Ｓ２２５，Ｓ３１１〜Ｓ３２０，Ｓ４１１〜Ｓ４２７，Ｓ５１１〜Ｓ５１５，Ｓ６１１〜Ｓ６１９，Ｓ７１１〜Ｓ７１６……処理ステップ。
ＷＤ……ライトデータ、ＷＤＩ……反転ライトデータ、ＷＤＲ……リライト（再書き込み）データ、ＷＤＨ，ＷＤＳＨ……書き込み履歴データ、ＲＤ……リードデータ、ＲＤＩ……反転リードデータ、ＷＤＡ，ＲＤＡ……論理積データ、ＷＤＳ……セクタライトデータ、ＷＤＩＳ……反転セクタライトデータ、ＷＤＲＳ……セクタリライトデータ、ＲＤＳ……セクタリードデータ、ＲＥＧ１〜ＲＥＧ４……レジスタ。
Ｌ１〜Ｌ２……ラッチ回路。
Ｐ１〜Ｐ３……ＰチャンネルＭＯＳＦＥＴ、Ｎ１〜Ｎ４……ＮチャンネルＭＯＳＦＥＴ、Ｖ１〜Ｖ５……インバータ、Ｇ１〜Ｇ２……アンドゲート。
【図１】
0003838401.tif 000002
【図２】
0003838401.tif 000003
【図３】
0003838401.tif 000004
【図４】
0003838401.tif 000005
【図５】
0003838401.tif 000006
【図６】
0003838401.tif 000007
【図７】
0003838401.tif 000008
【図８】
0003838401.tif 000009
【図９】
0003838401.tif 000010
【図１０】
0003838401.tif 000011
【図１１】
0003838401.tif 000012
【図１２】
0003838401.tif 000013
【図１３】
0003838401.tif 000014
【図１４】
0003838401.tif 000015
【図１５】
0003838401.tif 000016