(57)【要約】  制御回路（１０５）は、第１の消去コマンドを受けたときに、第１記憶素子（１０２）の閾値電圧と第２記憶素子（１０３）の閾値電圧とをともに増加させる第１プレライト処理の実行を制御し、その後、第１記憶素子（１０２）の閾値電圧と第２記憶素子（１０３）の閾値電圧が所定の消去ベリファイレベルより小さくなるまで、第１記憶素子（１０２）の閾値電圧と第２記憶素子（１０３）の閾値電圧をともに減少させる消去処理の実行を制御する。制御回路（１０５）は、第２の消去コマンドを受けたときに、第１記憶素子（１０２）と第２記憶素子（１０３）のうちの一方の閾値電圧を増加させる第２プレライト処理の実行を制御し、その後、消去処理の実行を制御する。
2015151197.tif 000002
【特許請求の範囲】
【請求項１】
閾値電圧の相違によって２値データを保持し、それぞれが電気的に書換え可能な第１記憶素子と第２記憶素子とからなるツインセルを複数個含むメモリアレイと、
前記ツインセルに保持されるツインセルデータの消去を制御する制御回路と、を含み、
前記制御回路は、第１の消去コマンドを受けたときに、前記第１記憶素子の閾値電圧と前記第２記憶素子の閾値電圧とをともに増加させる第１プレライト処理の実行を制御し、その後、前記第１記憶素子の閾値電圧と前記第２記憶素子の閾値電圧が所定の消去ベリファイレベルより小さくなるまで、前記第１記憶素子の閾値電圧と前記第２記憶素子の閾値電圧をともに減少させる消去処理の実行を制御し、
第２の消去コマンドを受けたときに、前記第１記憶素子と前記第２記憶素子のうちの一方の閾値電圧を増加させる第２プレライト処理の実行を制御し、その後、前記消去処理の実行を制御する、半導体装置。
【請求項２】
前記制御回路は、プログラムコマンドを受けたときに、前記第１記憶素子と前記第２記憶素子の一方の閾値電圧を第１の書込みベリファイ電圧を超えるまで増加させ、
前記制御回路は、前記第２の消去コマンドを受けたときに、前記第１記憶素子と前記第２記憶素子のうちの一方の閾値電圧を第２の書込みベリファイ電圧を超えるまで増加させる、ただし、前記第２の書込みベリファイ電圧は、前記第１の書込みベリファイ電圧よりも大きい、請求項１記載の半導体装置。
【請求項３】
前記制御回路は、前記第２の消去コマンドを受けたときに、前記メモリアレイ内の所定のツインセルからツインセルデータを読み出し、前記ツインセルデータが前記第１記憶素子の閾値電圧が前記第２記憶素子の閾値電圧よりも大きいことを示すときには、前記メモリアレイ内の前記所定のツインセル、およびその他のツインセルの前記第２記憶素子の閾値電圧を増加させ、前記ツインセルデータが前記第２記憶素子の閾値電圧が前記第１記憶素子の閾値電圧よりも大きいことを示すときには、前記メモリアレイ内の前記所定のツインセル、およびその他のツインセルの前記第１記憶素子の閾値電圧を増加させる、請求項１記載の半導体装置。
【請求項４】
前記制御回路は、前記第２の消去コマンドを受けたときに、前記メモリアレイ内の消去対象ブロックの先頭領域のツインセルからツインセルデータを読み出して、前記ツインセルデータが前記第１記憶素子の閾値電圧が前記第２記憶素子の閾値電圧よりも大きいことを示すときには、前記メモリアレイ内の前記先頭領域から中間領域の直前の領域までのツインセルの前記第２記憶素子の閾値電圧を増加させ、前記ツインセルデータが前記第２記憶素子の閾値電圧が前記第１記憶素子の閾値電圧よりも大きいことを示すときには、前記メモリアレイ内の前記先頭領域から中間領域の直前の領域までのツインセルの前記第１記憶素子の閾値電圧を増加させる、
前記制御回路は、前記メモリアレイ内の消去対象ブロックの中間領域のツインセルからツインセルデータを読み出して、前記ツインセルデータが前記第１記憶素子の閾値電圧が前記第２記憶素子の閾値電圧よりも大きいことを示すときには、前記メモリアレイ内の前記中間領域から最終領域までのツインセルの前記第２記憶素子の閾値電圧を増加させ、前記ツインセルデータが前記第２記憶素子の閾値電圧が前記第１記憶素子の閾値電圧よりも大きいことを示すときには、前記メモリアレイ内の前記中間領域から最終領域の直前までのツインセルの前記第１記憶素子の閾値電圧を増加させる、請求項３記載の半導体装置。
【請求項５】
前記制御回路は、前記第１の消去コマンドを受けた後、さらに復元コマンドを受けたときに、前記ツインセルからツインセルデータを読み出して、前記ツインセルデータが前記第１記憶素子の閾値電圧が前記第２記憶素子の閾値電圧よりも大きいことを示すときには、前記ツインセルの前記第１記憶素子の閾値電圧を増加させ、前記ツインセルデータが前記第２記憶素子の閾値電圧が前記第１記憶素子の閾値電圧よりも大きいことを示すときには、前記ツインセルの前記第２記憶素子の閾値電圧を増加させる、請求項１記載の半導体装置。
【請求項６】
閾値電圧の相違によって２値データを保持し、それぞれが電気的に書換え可能な第１記憶素子と第２記憶素子とからなるツインセルを複数個含むメモリアレイのデータを消去するためのプレライトプログラムであって、コンピュータに、
前記メモリアレイ内の所定のツインセルからツインセルデータを読み出すことを指示するリード命令を出力するステップと、
前記所定のツインセルから読み出されたツインセルデータを受けて、前記ツインセルデータを反転したデータを前記所定のツインセルまたはその他のツインセルに書き込むことを指示するプログラム命令を出力するステップとを実行させる、プレライトプログラム。
【請求項７】
閾値電圧の相違によって２値データを保持し、それぞれが電気的に書換え可能な第１記憶素子と第２記憶素子とからなるツインセルを複数個含むメモリアレイのデータを復元する復元プログラムであって、コンピュータに、
前記メモリアレイ内のツインセルからツインセルデータを読み出すことを指示するリード命令を出力するステップと、
前記ツインセルから読み出されたツインセルデータを受けて、前記ツインセルデータと同一のデータを前記ツインセルに書き込むことを指示するプログラム命令を出力するステップと実行させる、復元プログラム。
【請求項８】
閾値電圧の相違によって２値データを保持し、それぞれが電気的に書換え可能な第１記憶素子と第２記憶素子とからなるツインセルを複数個含むメモリアレイと、
データの書込み状態にある前記複数個のツインセルを、消去コマンドに基づいて消去状態にする消去処理を制御する制御回路と、を含み、
前記制御回路は、前記複数個のツインセルの少なくとも一部において、データの書込み状態にある前記第１記憶素子と第２記憶素子のしきい値の大小関係を逆転させる消去状態に１個または２個以上のメモリセルを置くように前記消去処理を実施する、半導体装置。
【請求項９】
制御回路は、前記消去処理として、前記第１記憶素子と前記第２記憶素子のうちの一方の閾値電圧は維持しつつ他方の閾値電圧を増加させるプレライト処理の実行を制御し、その後、前記第１記憶素子の閾値電圧と前記第２記憶素子の閾値電圧が所定の消去ベリファイレベルより小さくなるまで、前記第１記憶素子の閾値電圧と前記第２記憶素子の閾値電圧をともに減少させる消去処理を実施する、請求項８記載の半導体装置。
【請求項１０】
閾値電圧の相違によって２値データを保持し、それぞれが電気的に書換え可能な第１記憶素子と第２記憶素子とからなるツインセルを複数個含むメモリアレイと、
データの書込み状態にある前記複数個のツインセルを、第１の消去コマンドに基づいて第１の消去状態にし、第２の消去コマンドに基づいて第２の消去状態とする消去処理を制御する制御回路と、を含み、
前記複数個のツインセルをデータの書込み状態から前記第２の消去状態にしたときの前記第１記憶素子と第２記憶素子のしきい値の大小関係の反転したツインセルの数が、前記複数個のツインセルをデータの書込み状態から前記第１の消去状態にしたときの場合に比べて多くなるようにした、半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、プレライトプログラム、および復元プログラムに関し、たとえば相補的なデータを保持する２つの不揮発性メモリセルを含む半導体装置、相補的なデータの消去のためのプレライトプログラム、および相補的なデータの復元プログラムに関する。
【背景技術】
【０００２】
従来から、相補的なデータを保持する２つの不揮発性メモリセルを含む半導体装置が知られている。【０００３】
たとえば、特開２００８−１１７５１０号公報（特許文献１）に記載の半導体装置は、フラッシュ消去型負閾値電圧の相違によって２値データを保持し且つ保持する２値データの相違によってリテンション特性が相違される夫々電気的に書換え可能な第１記憶素子(ＭＣ１)と第２記憶素子(ＭＣ２)とを１ビットのツインセルとして複数個備えたメモリアレイ(１９)と、読み出し選択されたツインセルの第１記憶素子と第２記憶素子から出力される相補データを差動増幅してツインセルの記憶情報を判定する読み出し回路(ＳＡ)を供える。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１１７５１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、特開２００８−１１７５１０号公報（特許文献１）に記載のツインセルにおいて、ツインセルデータの消去によって、２つのセルの閾値電圧がともに小さい状態にされる。この際に、ツインセルデータ消去前の書込み状態における２つのセルの閾値電圧の差が、ツインセルデータの消去後も残る場合がある。【０００６】
ユーザは、単に新たにデータを書き込むために（領域を空けるため）ツインセルデータの消去を希望する場合と、機密保持のためツインセルデータの消去を希望する場合とがある。前者の場合には、２つのセルの閾値電圧の差がツインセルデータ消去後に残っても問題とならない。しかしながら、後者の場合には、２つのセルの閾値電圧の差がツインセルデータ消去後に残ると、ツインセルデータ消去前の書込状態が読み出されてしまい、機密保持の点で好ましくないという問題がある。【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかであろう。
【課題を解決するための手段】
【０００８】
本発明の一実施形態によれば、制御回路は、第１の消去コマンドを受けたときに、第１記憶素子の閾値電圧と第２記憶素子の閾値電圧とをともに増加させる第１プレライト処理の実行を制御し、その後、第１記憶素子の閾値電圧と第２記憶素子の閾値電圧が所定の消去ベリファイレベルより小さくなるまで、第１記憶素子の閾値電圧と第２記憶素子の閾値電圧をともに減少させる消去処理の実行を制御する。制御回路は、第２の消去コマンドを受けたときに、第１記憶素子と第２記憶素子のうちの一方の閾値電圧を増加させる第２プレライト処理の実行を制御し、その後、消去処理の実行を制御する。
【発明の効果】
【０００９】
本発明の一実施形態によれば、ユーザが単に新たにデータを書き込むために（領域を空けるため）ツインセルデータの消去を要求する場合と、ユーザが機密保持のためツインセルデータの消去を要求する場合の両方の要求に応じることができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態の半導体装置の構成を表わす図である。
【図２】第１の実施形態の半導体装置の動作手順を表わすフローチャートである。
【図３】第２の実施形態のマイクロコンピュータの構成を表わす図である。
【図４】フラッシュメモリモジュールの構成を表わす図である。
【図５】（ａ）は、スプリットゲート型フラッシュメモリ素子に与えるバイアス電圧の例を表わす図である。（ｂ）は、ホットキャリア書込み方式を用いるスタックド・ゲート型フラッシュメモリ素子に与えるバイアス電圧の例を表わす図である。（ｃ）は、はＦＮトンネル書込み方式を用いるスタックド・ゲート型フラッシュメモリ素子に与えるバイアス電圧の例を表わす図である。
【図６】（ａ）は、ツインセルデータが“０”を記憶する状態を表わす図である。（ｂ）は、ツインセルデータが“１”を記憶する状態を表わす図である。（ｃ）は、ツインセルデータのイニシャライズ状態を表わす図である。
【図７】ポジティブ書込みデータラッチ回路の構成を表わす図である。
【図８】ネガティブ書込みデータラッチ回路の構成を表わす図である。
【図９】第２の実施形態のツインセルデータのプログラムの手順を表わすフローチャートである。
【図１０】（ａ）は、プログラムデータが「１」の場合の書込み時の閾値電圧の変化を表わす図である。（ｂ）は、プログラムデータが「０」の場合の書込み時の閾値電圧の変化を表わす図である。
【図１１】第２の実施形態のツインセルデータのブロックイレーズ１の手順を表わすフローチャートである。
【図１２】（ａ）は、データ“１”記憶状態からブロックイレーズ１を実行した時の閾値電圧の変化を表わす図である。（ｂ）は、データ“０”記憶状態からブロックイレーズ１を実行した時の閾値電圧の変化を表わす図である。
【図１３】第２の実施形態のツインセルデータのブロックイレーズ２の手順を表わすフローチャートである。
【図１４】第２プレライト処理の手順を表わすフローチャートである。
【図１５】（ａ）および（ｂ）は、先頭領域および中間領域において、第２プレライトを実行し、その後消去処理を実行した場合の閾値電圧Ｖｔｈの変化を表わす図である。
【図１６】（ａ）〜（ｄ）は、先頭領域および中間領域以外の領域において、第２プレライトを実行し、その後消去処理を実行した場合の閾値電圧Ｖｔｈの変化を表わす図である。
【図１７】第２の実施形態のツインセルデータの復元の手順を表わすフローチャートである。
【図１８】プレライトプログラムの処理手順を表わす図である。
【図１９】復元プログラムの処理手順を表わす図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面を用いて説明する。
［第１の実施形態］
図１は、第１の実施形態の半導体装置の構成を表わす図である。
【００１２】
この半導体装置１００は、メモリアレイ１０１と、制御回路１０５とを備える。
メモリアレイ１０１は、複数個のツインセル１０４を含む。ツインセル１０４は、閾値電圧Ｖｔｈの相違によって２値データ（ツインセルデータ）を保持し、それぞれが電気的に書換え可能な第１記憶素子１０２と第２記憶素子１０３とからなる。
【００１３】
制御回路１０５は、ツインセルデータの消去を制御する。
制御回路１０５は、外部から送られる第１の消去コマンドを受けたときに、第１記憶素子１０２の閾値電圧Ｖｔｈと第２記憶素子１０３の閾値電圧Ｖｔｈとをともに増加させる第１プレライト処理の実行を制御する。その後、制御回路１０５は、第１記憶素子１０２の閾値電圧Ｖｔｈと第２記憶素子１０３の閾値電圧Ｖｔｈが所定の消去ベリファイレベルより小さくなるまで、第１記憶素子１０２の閾値電圧Ｖｔｈと第２記憶素子１０３の閾値電圧Ｖｔｈをともに減少させる消去処理の実行を制御する。
【００１４】
制御回路１０５は、外部から送られる第２の消去コマンドを受けたときに、第１記憶素子１０２と第２記憶素子１０３のうちの一方の閾値電圧Ｖｔｈを増加させる第２プレライト処理の実行を制御する。その後、制御回路１０５は、第１記憶素子１０２の閾値電圧Ｖｔｈと第２記憶素子１０３の閾値電圧Ｖｔｈが所定の消去ベリファイレベルより小さくなるまで、第１記憶素子１０２の閾値電圧Ｖｔｈと第２記憶素子１０３の閾値電圧Ｖｔｈをともに減少させる消去処理の実行を制御する。
【００１５】
図２は、第１の実施形態の半導体装置の動作手順を表わすフローチャートである。
ステップＳ９０１において、制御回路１０５に外部から第１の消去コマンドが入力されたときには、処理がステップＳ９０２に進む。
【００１６】
ステップＳ９０４において、制御回路１０５に外部から第２の消去コマンドが入力されたときには、処理がステップＳ９０５に進む。
【００１７】
ステップＳ９０２において、制御回路１０５は、第１プレライト処理の実行を制御する。ステップＳ９０５において、制御回路１０５は、第２プレライト処理の実行を制御する。
【００１８】
ステップＳ９０２およびステップＳ９０５の実行後、ステップＳ９０３において、制御回路１０５は、消去処理の実行を制御する。
【００１９】
以上のように、本実施の形態によれば、第１の消去コマンドによって、ユーザが単に新たにデータを書き込むためにツインセルデータの消去を行なうことができ、第２の消去コマンドによって、ユーザが機密を保持したツインセルデータの消去を行なうことができる。
【００２０】
［第２の実施形態］
図３は、第２の実施形態のマイクロコンピュータ１（半導体装置）の構成を表わす図である。
【００２１】
図３に示されるマイクロコンピュータ（ＭＣＵ）１は、たとえば相補型ＭＯＳ集積回路製造技術などによって、単結晶シリコンのような１個の半導体チップに形成される。
【００２２】
マイクロコンピュータ１は、特に制限されないが、高速バスＨＢＵＳと周辺バスＰＢＵＳを有する。高速バスＨＢＵＳと周辺バスＰＢＵＳは、特に制限されないが、それぞれデータバス、アドレスバスおよびコントロールバスを有する。２個のバスを設けることによって、共通バスに全ての回路を共通接続する場合に比べてバスの負荷を軽くし、高速アクセス動作を保証することができる。
【００２３】
高速バスＨＢＵＳには、命令制御部と実行部を備えて命令を実行する中央処理装置（ＣＰＵ）２、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）３、高速バスＨＢＵＳと周辺バスＰＢＵＳとのバスインタフェース制御若しくはバスブリッジ制御を行うバスインタフェース回路（ＢＩＦ）４が接続される。
【００２４】
高速バスＨＢＵＳには、さらに、中央処理装置２のワーク領域などに利用されるランダムアクセスメモリ（ＲＡＭ）５、およびデータやプログラムを格納する不揮発性メモリモジュールとしてのフラッシュメモリモジュール（ＦＭＤＬ）６が接続される。
【００２５】
周辺バスＰＢＵＳには、フラッシュメモリモジュール（ＦＭＤＬ）６に対するコマンドアクセス制御を行うフラッシュシーケンサ（ＦＳＱＣ）７、外部入出力ポート（ＰＲＴ）８，９、タイマ（ＴＭＲ）１０、およびマイクロコンピュータ１を制御するための内部のクロックＣＬＫを生成するクロックパルスジェネレータ（ＣＰＧ）１１が接続される。
【００２６】
さらに、マイクロコンピュータ１は、ＸＴＡＬ／ＥＸＴＡＬに発振子が接続され、または外部クロックが供給されるクロック端子、スタンバイ状態を指示する外部ハードウェアスタンバイ端子ＳＴＢ、リセットを指示する外部リセット端子ＲＥＳ、外部電源端子Ｖｃｃ、外部接地端子Ｖｓｓを備える。
【００２７】
ここでは、ロジック回路としてのフラッシュシーケンサ７と、アレイ構成のフラッシュメモリモジュール６は、別ＣＡＤツールを用いて設計されているため、便宜上別々の回路ブロックとして図示されているが、双方併せて一つのフラッシュメモリを構成する。フラッシュメモリモジュール６は、読み出し専用の高速アクセスポート（ＨＡＣＳＰ）を介して高速バスＨＢＵＳに接続される。ＣＰＵ２またはＤＭＡＣ３は、高速バスＨＢＵＳから高速アクセスポートを介してフラッシュメモリモジュール６をリードアクセスすることができる。ＣＰＵ２またはＤＭＡＣ３は、フラッシュメモリモジュール６に対して書込みおよび初期化のアクセスを行うときは、バスインタフェース４を介して周辺バスＰＢＵＳ経由でフラッシュシーケンサ７にコマンドを発行する。これによってフラッシュシーケンサ７が周辺バスＰＢＵＳから低速アクセスポート（ＬＡＣＳＰ）を通じてフラッシュメモリモジュール６の初期化や書込み動作の制御を行なう。
【００２８】
（フラッシュメモリモジュール）
図４は、フラッシュメモリモジュール６の構成を表わす図である。
【００２９】
フラッシュメモリモジュール６は、１ビットの情報の記憶を２個の不揮発性メモリセルを用いて行う。すなわち、メモリアレイＭＡＲＹは、夫々書換え可能な２個の不揮発性メモリセルＭＣＰ，ＭＣＮを１ビットのツインセルＴＣとして複数個備える。図４には、代表的に１対だけ図示されている。本明細書では、メモリセルＭＣＰをポジティブセル、メモリセルＭＣＮをネガティブセルと呼ぶ。メモリアレイＭＡＲＹは、４個のメモリマットＭＡＴ０〜ＭＡＴ３に分割される。ここでは、１個のメモリマットＭＡＴのサイズは８Ｋバイトとする。
【００３０】
不揮発性メモリセルＭＣＰ，ＭＣＮは、たとえば、図５（ａ）に例示されるスプリットゲート型フラッシュメモリ素子である。このメモリ素子は、ソース・ドレイン領域の間のチャネル形成領域の上にゲート絶縁膜を介して配置されたコントロールゲートＣＧとメモリゲートＭＧを有する。メモリゲートＭＧとゲート絶縁膜の間にはシリコンナイトライドなどの電荷トラップ領域（SiN）が配置される。選択ゲート側のソースまたはドレイン領域は、ビット線ＢＬ（ＳＢＬＰまたはＳＢＬＮ）に接続され、メモリゲート側のソースまたはドレイン領域はソース線ＳＬに接続される。
【００３１】
メモリセルの閾値電圧Ｖｔｈを下げるにはＢＬ＝１．５Ｖ、ＣＧ＝０Ｖ、ＭＧ＝−１０Ｖ、ＳＬ＝６、ＷＥＬＬ＝０Ｖとし、ウェル領域（ＷＥＬＬ）とメモリゲートＭＧ間の高電界によって電荷トラップ領域（SiN）からウェル領域（ＷＥＬＬ）に電子が引き抜かれる。この処理単位はメモリゲートＭＧを共有する複数メモリセルとされる。
【００３２】
メモリセルの閾値電圧Ｖｔｈを上げるにはＢＬ＝０Ｖ、ＣＧ＝０．９Ｖ、ＭＧ＝１０Ｖ、ＳＬ＝６、ＷＥＬＬ＝０Ｖとし、ソース線ＳＬからビット線に書込み電流を流し、それによってコントロールゲートＣＧとメモリゲートＭＧの境界部分で発生するホットエレクトロンが電荷トラップ領域（SiN）に注入される。電子の注入はビット線電流を流すか否かによって決まるからこの処理はビット単位で制御される。
【００３３】
読み出しはＢＬ＝１．５Ｖ、ＣＧ＝１．５Ｖ，ＭＧ＝０Ｖ、ＳＬ＝０Ｖ、ＷＥＬＬ＝０Ｖで行われる。メモリセルの閾値電圧Ｖｔｈが低ければメモリセルはオン状態にされ、閾値電圧Ｖｔｈが高ければオフ状態にされる。
【００３４】
メモリ素子はスプリットゲート型フラッシュメモリ素子に限定されず、図５（ｂ），図５（ｃ）に例示されるスタックド・ゲート型フラッシュメモリ素子であってよい。このメモリ素子はソース・ドレイン領域の間のチャネル形成領域の上にゲート絶縁膜を介してフローツイングゲートＦＧとコントロールゲートＷＬがスタックされて構成される。図５（ｂ）は、ホットキャリア書込み方式によって閾値電圧Ｖｔｈを上げ、ウェル領域ＷＥＬＬへの電子の放出によって閾値電圧Ｖｔｈを下げる。図５（ｃ）はＦＮトンネル書込み方式によって閾値電圧Ｖｔｈを上げ、ビット線ＢＬへの電子の放出によって閾値電圧Ｖｔｈを下げる。
【００３５】
上述のメモリゲートＭＧ、コントロールゲートＣＧ、ソース線ＳＬ、ＷＥＬＬ、ビット線ＢＬへ与える電圧は、フラッシュシーケンサ７の制御によって、電源回路ＶＰＧで生成されて供給される。
【００３６】
以下の説明では、メモリ素子がスプリットゲート型フラッシュメモリ素子であるとして説明する。
【００３７】
不揮発性メモリセルＭＣＰ，ＭＣＮから成る１つのツインセルＴＣによる情報記憶は不揮発性メモリセルＭＣＰ，ＭＣＮに相補データを格納することによって行う。
【００３８】
すなわち、メモリセルＭＣＰ，ＭＣＮのそれぞれは、セルデータ“１”（低閾値電圧状態；閾値電圧が消去ベリファイレベルよりも小さい状態）またはセルデータ“０”（高閾値電圧状態；閾値電圧が消去ベリファイレベル以上の状態）を保持することができる。
【００３９】
図６（ａ）に示すように、ツインセルデータ“０”は、ポジティブセルＭＣＰがセルデータ“０”、ネガティブセルＭＣＮがセルデータ“１”を保持する状態である。図６（ｂ）に示すように、ツインセルデータ“１”はポジティブセルＭＣＰがセルデータ“１”、ネガティブセルＭＣＮがセルデータ“０”を保持する状態である。図６（ｃ）に示すように、ツインセルのポジティブセルＭＣＰおよびネガティブセルＭＣＮが共にセルデータ“１”を保持する状態はイニシャライズ状態である。イニシャライズ状態は、ブランク消去状態ともいう。
【００４０】
ツインセルデータ“０”状態とツインセルデータ“１”の状態との間を直接遷移することはできず、ブランク消去状態を中間状態として経なければならない。
【００４１】
ツインセルデータ“０”の状態およびツインセルデータ“１”の状態からイニシャライズ状態にすることをツインセルデータの消去という。消去動作では、消去対象ブロックが一括消去されるためポジティブセルＭＣＰとネガティブセルＭＣＮの両方ともセルデータ“１”を保持する状態となる。また、イニシャライズ状態からツインセルデータ“１”保持状態またはツインセルデータ“０”保持状態にすることをツインセルデータの通常の書込みという。
【００４２】
図４に代表的に示されたツインセルのメモリセルＭＣＰ，ＭＣＮにおいて、メモリゲートＭＧは、共通のメモリゲート選択線ＭＧＬに接続され、コントロールゲートＣＧは、共通のワード線ＷＬに接続される。メモリセルＭＣＰ，ＭＣＮのソースは、共通のソース線ＳＬに接続される。実際には多数のツインセルがマトリクス配置され、行方向の配列単位で対応するメモリゲート選択線ＭＧＬおよびワード線ＷＬに接続される。
【００４３】
メモリセルＭＣＰ，ＭＣＮのドレイン端子は、列単位で副ビット線ＳＢＬＰ，ＳＢＬＮに接続され、副ビット線セレクタＳＥＬＰ，ＳＥＬＮを介して主ビット線ＭＢＬＰ，ＭＢＬＮに接続する。それぞれの主ビット線ＭＢＬＰ，ＭＢＬＮには、複数の副ビット線ＳＢＬＰ，ＳＢＬＮが副ビット線セレクタＳＥＬＰ，ＳＥＬＮによって階層化されて接続されている。
【００４４】
ワード線ＷＬは、第１行デコーダＲＤＥＣ１によって選択される。メモリゲート選択線ＭＧＬおよび副ビット線セレクタＳＥＬＰ，ＳＥＬＮは、第２行デコーダＲＤＥＣ２によって選択される。第１行デコーダ２４および第２行デコーダ２５による選択動作は、読み出しアクセスではＨＡＣＳＰに供給されるアドレス情報などに従い、データの書込み動作および初期化動作ではＬＡＣＳＰに供給されるアドレス情報などに従う。
【００４５】
電源回路ＶＰＧは、読み出し、書込み、初期化に必要な各種動作電圧を生成する。タイミングジェネレータＴＭＧは、ＣＰＵ２等からＨＡＣＳＰに供給されるアクセスストローブ信号、ＦＳＱＣ７からＬＡＣＳＰに供給されるアクセスコマンド等に従って、内部動作タイミングを規定する内部制御信号を生成する。
【００４６】
副ビット線セレクタＳＥＬＰ，ＳＥＬＮは、ＳＧ信号によってＯＮ／ＯＦＦされ、読み出し／書込み／消去時に有効となる。主ビット線ＭＢＬＰ，ＭＢＬＮは、Ｙセレクト部１２２に含まれるＹセレクタＹＳＥＬＰ，ＹＳＥＬＮを介して、読み出しセンスアンプ回路１２１に含まれる読み出しセンスアンプＳＡに接続されている。
【００４７】
ＹセレクタＹＳＥＬＰ，ＹＳＥＬＮは、読み出し／書込み時にアドレスによってデコードされた結果に従って、接続する主ビット線ＭＢＬＰ，ＭＢＬＮを選択する。読み出しセンスアンプＳＡは、選択された主ビット線ＭＢＬＰ，ＭＢＬＮに繋がるポジティブセルＭＣＰとネガティブセルＭＣＮの閾値電圧Ｖｔｈの差から、ツインセルデータを読み出す。
【００４８】
図４の例では、３２個のセンスアンプＳＡが配置され、メモリデータが８ビットデータに１アドレスが割り付けられるとする。したがって、１回のアクセスによって４アドレスのデータが並列に読み出せる構成となっている。
【００４９】
読み出しセンスアンプＳＡで読み出されたメモリデータは、出力バッファＯＢＵＦによって、データバスＤ（３１：０）に出力される。データバスＤ（３１：０）に出力されたデータは、入出力回路ＩＯＢＵＦに出力される。出力バッファＯＢＵＦは、各読み出しセンスアンプＳＡからの出力を受けるバッファＢ０〜Ｂ３１を備える。
【００５０】
入出力回路ＩＯＢＵＦは、読み出しセンスアンプＳＡで読み出したデータを外部に出力したり、書込み時にフラッシュメモリモジュール６の外部から入力される書込みデータを処理する。
【００５１】
列デコーダＣＤＥＣは、書込み時には、Ｃ２信号によって書換え列セレクタＭＣ２ＧＰ，ＭＣ２ＧＮをオンにし、入出力回路ＩＯＢＵＦは、信号線Ｄ０Ｐ，Ｄ０Ｎを介してポジティブ書込みデータラッチ回路ＷＤＬＰとネガティブ書込みデータラッチ回路ＷＤＬＮにデータをセットする。列デコーダＣＤＥＣの選択動作は、ＬＡＣＳＰに供給されるアドレス情報などに従う。
【００５２】
ツインセルＴＣに対して“０”データを書き込もうとする場合、ポジティブ書込みデータラッチ回路ＷＤＬＰに“０”データをセットし、ネガティブ書込みデータラッチ回路ＷＤＬＮに“１”データをセットする。“０”データをセットされたポジティブ書込みデータラッチ回路ＷＤＬＰに繋がるポジティブセルＭＣＰに電流が流れてポジティブセルＭＣＰの閾値電圧Ｖｔｈが上昇する。一方、“１”をセットされたネガティブ書込みデータラッチ回路ＷＤＬＮに繋がるメモリセルＭＣＮには電流が流れないのでネガティブセルＭＣＮの閾値電圧Ｖｔｈが上昇しない。
【００５３】
ツインセルＴＣに対して“１”データを書き込もうとする場合、書込みラッチ部１２３に含まれるポジティブ書込みデータラッチ回路ＷＤＬＰに“１”データをセットし、書込みラッチ部１２３に含まれるネガティブ書込みデータラッチ回路ＷＤＬＮに“０”データをセットする。“０”データをセットされたネガティブ書込みデータラッチ回路ＷＤＬＮに繋がるネガティブセルＭＣＮに電流が流れてネガティブセルＭＣＮの閾値電圧Ｖｔｈが上昇する。一方、“１”をセットされたポジティブ書込みデータラッチ回路ＷＤＬＰに繋がるメモリセルＭＣＰには電流が流れないのでポジティブセルＭＣＰの閾値電圧Ｖｔｈが上昇しない。
【００５４】
ツインセルデータを消去する場合、８Ｋバイトのメモリマット単位で実施され、メモリマットのツインセルＴＣに対して消去電圧が印加させる。制御回路１２０がＳＧ、ＭＧ、ＳＬ、ＷＥＬＬに対して消去電圧が印加されるように制御する。
【００５５】
主ビット線ＭＢＬＰ、ＭＢＬＮはそれぞれ、Ｃ１信号によって制御されるベリファイセレクタＭＣ１ＧＰ，ＭＣ１ＧＮを介してベリファイ部１２４のベリファイ回路ＶＥＲＣに接続される。
【００５６】
ベリファイ回路ＶＥＲＣは、メモリの消去または書込みを実施した場合、メモリセルの閾値電圧Ｖｔｈが規定の値を超えたか否かを判定する。ベリファイ結果は制御回路１２０に出力され、反復するパルス印加が必要か否かが制御回路１２０で判定される。書込み実施時のベリファイ時には、メモリセルの閾値電圧が規定の値を超えたか否かを判定するため、第１の書込みベリファイ電圧ＷＶＥＲ１と第２の書込みベリファイ電圧ＷＶＥＲ２のどちらかを設定する事が可能である。第１の書込みベリファイ電圧ＷＶＥＲ１と第２の書込みベリファイ電圧ＷＶＥＲ２の間には、ＷＶＥＲ１＜ＷＶＥＲ２の関係がある。
【００５７】
ベリファイ回路ＶＥＲＣは、ポジティブベリファイセンスアンプＶＳＰと、ネガティブベリファイセンスアンプＶＳＮとを備える。
【００５８】
ポジティブベリファイセンスアンプＶＳＰは、主ビット線ＭＢＬＰの電圧と、参照電圧の大きさを比較する。参照電圧として、通常の書込み時には、第１の書込みベリファイ電圧ＷＶＥＲ１が供給され、ブロックイレーズ２における第２プレライト処理時には、第２の書込みベリファイ電圧ＷＶＥＲ２が供給され、消去時には、消去ベリファイ電圧ＥＶＥＲが供給される。
【００５９】
ネガティブベリファイセンスアンプＶＳＮは、主ビット線ＭＢＬＮの電圧と、参照電圧とを比較する。参照電圧として、通常の書込み時には、第１の書込みベリファイ電圧ＷＶＥＲ１が供給され、ブロックイレーズ２における第２プレライト処理時には、第２の書込みベリファイ電圧ＷＶＥＲ２が供給され、消去時には、消去ベリファイ電圧ＥＶＥＲが供給される。
【００６０】
（書込みラッチ回路）
図７は、ポジティブ書込みデータラッチ回路ＷＤＬＰの構成を表わす図である。
【００６１】
ポジティブ書込みデータラッチ回路ＷＤＬＰは、データ保持部９１と、設定部９２とを含む。
【００６２】
データ保持部９１は、交互接続されるインバータＩＶ１とインバータＩＶ２とを含む。
インバータＩＶ１の入力およびインバータＩＶ２の出力が、入出力回路ＩＯＢＵＦと接続する信号線Ｄ０Ｐに接続される。インバータＩＶ１の出力およびインバータＩＶ２の入力がノードＮＤ１に接続される。
【００６３】
設定部９２は、電源電圧ＶＤＤと接地電圧Ｖｓｓの間に設けられたＰチャネルＭＯＳトランジスタＰ１，Ｐ２と、ＮチャネルＭＯＳトランジスタＮ１，Ｎ２，Ｎ３とを含む。
【００６４】
ＰチャネルＭＯＳトランジスタＰ１のゲートは、プログラムパルス有効信号の反転信号／ｅｎａｂｌｅを受ける。ＰチャネルＭＯＳトランジスタＰ２のゲートおよびＮチャネルＭＯＳトランジスタＮ１のゲートは、ノードＮＤ１に接続される。ＮチャネルＭＯＳトランジスタＮ２のゲートは、プログラムパルス有効信号ｅｎａｂｌｅを受ける。ＮチャネルＭＯＳトランジスタＮ３のゲートは、パルスＰＬＳを受ける。
【００６５】
入出力回路ＩＯＢＵＦから信号線Ｄ０Ｐを通じて送られるデータが“１”のときは、ノードＮＤ１のデータ、すなわち書込みラッチデータが“Ｌ”レベルとなり、主ビット線ＭＢＬＰの電圧がＶＤＤとなる。
【００６６】
入出力回路ＩＯＢＵＦから信号線Ｄ０Ｐを通じて送られるデータが“０”のときは、ノードＮＤ１のデータ、すなわち書込みラッチデータが“Ｈ”レベルとなり、書込みパルスＷＰＬＳが活性化された期間、主ビット線ＭＢＬＰが接地電圧Ｖｓｓと接続し、主ビット線ＭＢＬＰに書込み電流が流れる。
【００６７】
図８は、ネガティブ書込みデータラッチ回路ＷＤＬＮの構成を表わす図である。
ネガティブ書込みデータラッチ回路ＷＤＬＮは、データ保持部９３と、設定部９４とを含む。
【００６８】
データ保持部９３は、交互接続されるインバータＩＶ３とインバータＩＶ４とを含む。
インバータＩＶ３の入力およびインバータＩＶ４の出力が、入出力回路ＩＯＢＵＦと接続する信号線Ｄ０Ｎに接続される。インバータＩＶ３の出力およびインバータＩＶ４の入力がノードＮＤ２に接続される。
【００６９】
設定部９４は、電源電圧ＶＤＤと接地電圧Ｖｓｓの間に設けられたＰチャネルＭＯＳトランジスタＰ３，Ｐ４と、ＮチャネルＭＯＳトランジスタＮ４，Ｎ５，Ｎ６とを含む。
【００７０】
ＰチャネルＭＯＳトランジスタＰ３のゲートは、プログラムパルス有効信号の反転信号／ｅｎａｂｌｅを受ける。ＰチャネルＭＯＳトランジスタＰ４のゲートおよびＮチャネルＭＯＳトランジスタＮ４のゲートは、ノードＮＤ２に接続される。ＮチャネルＭＯＳトランジスタＮ５のゲートは、プログラムパルス有効信号ｅｎａｂｌｅを受ける。ＮチャネルＭＯＳトランジスタＮ６のゲートは、パルスＰＬＳを受ける。
【００７１】
入出力回路ＩＯＢＵＦから信号線Ｄ０Ｎを通じて送られるデータが“１”のときは、ノードＮＤ２のデータ、すなわち書込みラッチデータが“Ｌ”レベルとなり、主ビット線ＭＢＬＮの電圧がＶＤＤとなる。
【００７２】
入出力回路ＩＯＢＵＦから信号線Ｄ０Ｎを通じて送られるデータが“０”のときは、ノードＮＤ２のデータ、すなわち書込みラッチデータが“Ｈ”レベルとなり、書込みパルスＷＰＬＳが活性化された期間、主ビット線ＭＢＬＮが接地電圧Ｖｓｓと接続し、主ビット線ＭＢＬＮに書込み電流が流れる。
【００７３】
（ツインセルデータのプログラム（通常の書込み））
図９は、第２の実施形態のツインセルデータのプログラム（通常の書込みともいう）の手順を表わすフローチャートである。図１０（ａ）は、プログラムデータが「１」の場合の書込み時の閾値電圧Ｖｔｈの変化を表わす図である。図１０（ｂ）は、プログラムデータが「０」の場合の書込み時の閾値電圧Ｖｔｈの変化を表わす図である。
【００７４】
ステップＳ１０１において、ＣＰＵ２からのプログラムコマンド、プログラムアドレス、プログラムデータがフラッシュメモリモジュール６に入力される。入力されたプログラムアドレスに従って、第１行デコーダＲＤＥＣ１、第２行デコーダＲＤＥＣ２、および列デコーダＣＤＥＣによって、ツインセルＴＣが選択される。列デコーダＣＤＥＣは、Ｃ２信号によって書換え列セレクタＭＣ２ＧＰ，ＭＣ２ＧＮをオンにし、入出力回路ＩＯＢＵＦは、信号線Ｄ０Ｐ，Ｄ０Ｎを介して、入力されたプログラムデータに従って、ポジティブ書込みデータラッチ回路ＷＤＬＰとネガティブ書込みデータラッチ回路ＷＤＬＮにデータをセットする。
【００７５】
ステップＳ１０２において、制御回路１２０は、書込みを開始する。
ステップＳ１０３において、制御回路１２０は、ＭＧ、ＣＧ、ＳＬを図５（ａ）に示す書込みバイアス電圧（Ｖｔｈを増加させる電圧）に設定し、選択されたツインセルＴＣの一方のメモリセルに書込みバイアス電圧を印加させることによって、ツインセルＴＣの一方のメモリセルの閾値電圧Ｖｔｈを増加させる。
【００７６】
ステップＳ１０５において、書込みベリファイが実施される。つまり、プログラムデータが「０」の場合には、ポジティブベリファイセンスアンプＶＳＰによって、ポジティブセルＭＣＰの閾値電圧Ｖｔｈが、図１０（ａ）および図１０（ｂ）に示される第１の書込みベリファイ電圧ＷＶＥＲ１を超えているか否かが判定される。つまり、プログラムデータが「１」の場合には、ネガティブベリファイセンスアンプＶＳＮによって、ネガティブセルＭＣＮの閾値電圧Ｖｔｈが、図１０（ａ）および図１０（ｂ）に示される第１の書込みベリファイ電圧ＷＶＥＲ１を超えているか否かが判定される。
【００７７】
ステップＳ１０５において、閾値電圧Ｖｔｈが第１の書込みベリファイ電圧ＷＶＥＲ１以下の場合には、処理がステップＳ１０７に進み、閾値電圧Ｖｔｈ第１の書込みベリファイ電圧ＷＶＥＲ１を超えている場合には、処理が正常終了する（ステップＳ１０６）。
【００７８】
ステップＳ１０７において、制御回路１２０は、書込み回数ＷＣを１つインリメントする。
【００７９】
ステップＳ１０８において、書込み回数ＷＣが閾値ＴＨ以下の場合には、処理がステップＳ１０３に戻り、書込み回数ＷＣが閾値ＴＨを超えた場合には、エラー終了する（ステップＳ１０９）。
【００８０】
（ツインセルデータのブロックイレーズ１）
図１１は、第２の実施形態のツインセルデータのブロックイレーズ１（第１の消去モードによるイレーズ）の手順を表わすフローチャートである。図１２（ａ）は、データ“１”記憶状態からブロックイレーズ１を実行した時の閾値電圧Ｖｔｈの変化を表わす図である。図１２（ｂ）は、データ“０”記憶状態からブロックイレーズ１を実行した時の閾値電圧Ｖｔｈの変化を表わす図である。
【００８１】
ステップＳ２０１において、ＣＰＵ２からのブロックイレーズ１コマンド、消去対象ブロックの指定がフラッシュメモリモジュール６に入力される。消去対象ブロックとして、メモリマットＭＡＴ０〜ＭＡＴ３のいずれかのマットが指定される。
【００８２】
ステップＳ２０２〜Ｓ２０６において、一旦、ポジティブセルＭＣＰとネガティブセルＭＣＮの両方のセルデータを“０”にする第１プレライト処理が行なわれる。第１プレライト処理では、ポジティブセルＭＣＰとネガティブセルＭＣＮの両方に対して、印加する書込みバイアス電圧を通常の書込み時の書込みバイアス電圧（図５（ａ）に示すＶｔｈを増加させる電圧）よりも小さくすることによって、通常の書込によるストレスよりも小さなストレスを与える。第１プレライト処理では、閾値電圧が小さい方のメモリセルの閾値電圧の増加量が、通常の書込み時の閾値電圧Ｖｔｈの増加量よりも小さい。第１プレライトを実施する目的は、ポジティブセルＭＣＰとネガティブセルＭＣＮの間の消去ストレスのばらつきを小さくし、リテンション特性悪化を抑制するためである。つまり、閾値電圧Ｖｔｈの低い状態であるメモリセルを消去すると、閾値電圧Ｖｔｈがさらに低くなり、閾値電圧Ｖｔｈの低い状態であるメモリセルに強いストレスがかかり、信頼性が低下するためである。ただし、第１プレライト処理では、通常の書込み時のように、メモリセルの閾値電圧Ｖｔｈが第１の書込みベリファイ電圧ＷＶＥＲ１よりも高い状態になるまで書込みが実施されるわけではなく、閾値電圧Ｖｔｈをある程度高い状態とするだけである。したがって、通常の書込み時のような、書込みデータの読み出しベリファイは行われない。その理由は、ブロックイレーズ１に要する時間を短縮するためである。
【００８３】
ステップＳ２０２において、制御回路１２０は、アドレスＡＤＲの初期値を消去対象ブロックの先頭アドレスに設定する。アドレスＡＤＲは３２ビットのデータをアクセスするため３２ビット境界を指定するアドレスの形式である。つまり、アドレスＡＤＲは８ビット毎に割り付けたアドレスの下位２ビットを削除し、下位３ビット目を最下位ビットとしたものである。このアドレスＡＤＲに従って、第１行デコーダＲＤＥＣ１、第２行デコーダＲＤＥＣ２、および列デコーダＣＤＥＣによって、先頭アドレスで指定される３２個のツインセルＴＣが選択される。また、入出力回路ＩＯＢＵＦは、書込みデータをオール“０”に設定する。すなわち、列デコーダＣＤＥＣは、Ｃ２信号によって書換え列セレクタＭＣ２ＧＰ，ＭＣ２ＧＮをオンにし、入出力回路ＩＯＢＵＦは、信号線Ｄ０Ｐ，Ｄ０Ｎを介して、消去対象ブロックのツインセルＴＣと接続されるすべてのポジティブ書込みデータラッチ回路ＷＤＬＰおよびネガティブ書込みデータラッチ回路ＷＤＬＮに「０」をセットする。
【００８４】
ステップＳ２０３において、制御回路１２０は、書込みを開始する。
ステップＳ２０４において、制御回路１２０は、ＭＧ、ＣＧ、ＳＬを通じて、選択されたツインセルＴＣに、通常の書込み時よりも小さな書込みバイアス電圧を印加させることによって、ツインセルＴＣの両方のメモリセルＭＣＰ，ＭＣＮの閾値電圧Ｖｔｈを増加させる。
【００８５】
ステップＳ２０５において、制御回路１２０は、アドレスＡＤＲを１つインクリメントする。
【００８６】
ステップＳ２０６において、アドレスＡＤＲが（最大アドレス＋１）の場合には、第１プレライトが終了し、処理がステップＳ２０７に進む。アドレスＡＤＲが（最大アドレス＋１）でない場合には、処理がステップＳ２０３に戻る。最大アドレスは消去対象ブロックの最後の３２ビットの領域を示すアドレスに相当する。
【００８７】
ステップＳ２０７〜Ｓ２１３において、消去処理が行なわれる。
ステップＳ２０７において、制御回路１２０は、アドレスＡＤＲの初期値を消去対象ブロックの先頭アドレスに設定する。アドレスＡＤＲに従って、第１行デコーダＲＤＥＣ１、第２行デコーダＲＤＥＣ２、および列デコーダＣＤＥＣによって、ツインセルＴＣが選択される。
【００８８】
ステップＳ２０８において、制御回路１２０は、消去を開始する。
ステップＳ２０９において、制御回路１２０は、ＭＧ、ＣＧ、ＳＬを図５（ａ）に示す消去バイアス電圧（Ｖｔｈを減少させる電圧）に設定し、選択された３２個のツインセルＴＣに消去バイアス電圧を印加させることによって、ツインセルの両方のメモリセルＭＣＰ，ＭＣＮの閾値電圧Ｖｔｈを減少させる。
【００８９】
ステップＳ２１０において、消去ベリファイが実施される。すなわち、ポジティブベリファイセンスアンプＶＳＰによって、ポジティブセルＭＣＰの閾値電圧Ｖｔｈが、図１２（ａ）および図１２（ｂ）に示される消去ベリファイ電圧ＥＶＥＲ未満になっているか否かが判定される。また、ネガティブベリファイセンスアンプＶＳＮによって、ネガティブセルＭＣＮの閾値電圧Ｖｔｈが、図１２（ａ）および図１２（ｂ）に示される消去ベリファイ電圧ＥＶＥＲ未満になっているか否かが判定される。
【００９０】
ステップＳ２１１において、両方のセルＭＣＰ，ＭＣＮのうちの少なくとも一方の閾値電圧Ｖｔｈが消去ベリファイ電圧ＥＶＥＲ以上の場合には、処理がステップＳ２０９に戻り、両方のセルＭＣＰ，ＭＣＮの閾値電圧Ｖｔｈが消去ベリファイ電圧ＥＶＥＲよりも低い場合には、処理がステップＳ２１２に進む。
【００９１】
ステップＳ２１２において、制御回路１２０は、アドレスＡＤＲを１つインクリメントする。
【００９２】
ステップＳ２１３において、アドレスＡＤＲが（最大アドレス＋１）の場合には、消去が終了し、処理が終了する。アドレスＡＤＲが（最大アドレス＋１）でない場合には、処理がステップＳ２１０に戻る。
【００９３】
以上のように、図１２（ａ）、（ｂ）に示されるように、ブロックイレーズ１では、終了後のポジティブセルＭＣＰ、ネガティブセルＭＣＮの閾値電圧Ｖｔｈの大小関係は、ブロックイレーズ実施前の閾値電圧Ｖｔｈの大小関係を維持している。この関係が維持された状態で読み出しを実施すると、ポジティブセルＭＣＰとネガティブセルＭＣＮの閾値電圧Ｖｔｈに差があるために、ブロックイレーズ１の実施前のツインセルデータが読み出されてしまう。しかし、ブロックイレーズ１の目的が、次の書込みの為のメモリ領域確保のために実施するのであれば、特に問題は無く、実行時間が後述のブロックイレーズ２コマンドよりも短いという利点もある。
【００９４】
（ツインセルデータのブロックイレーズ２）
図１３は、第２の実施形態のツインセルデータのブロックイレーズ２（第２の消去モードによるイレーズ）の手順を表わすフローチャートである。図１４は、第２プレライト処理の手順を表わすフローチャートである。
【００９５】
図１３を参照して、ステップＳ３０１において、ＣＰＵ２からのブロックイレーズ２コマンド、消去対象ブロックの指定がフラッシュメモリモジュール６に入力される。消去対象ブロックとして、メモリマットＭＡＴ０〜ＭＡＴ３のいずれかのマットが指定される。
【００９６】
ステップＳ３０２において、図１４に示す第２プレライト処理が行なわれる。
次に、ステップＳ２０７〜Ｓ２１３において、ブロックイレーズ１と同様の消去処理が行なわれる。
【００９７】
図１４を参照して、ステップＳ４０１において、制御回路１２０は、消去対象ブロックの先頭アドレスをアドレスＡＤＲに設定する。アドレスＡＤＲに従って、第１行デコーダＲＤＥＣ１、第２行デコーダＲＤＥＣ２、および列デコーダＣＤＥＣによって、先頭アドレスと、後続の３アドレスの計４アドレスで指定される３２個のツインセルＴＣが選択される（本実施の形態では、１アドレスに８ビットのデータが割り付けている）。制御回路１２０は、ＭＧ、ＣＧ、ＳＬを図５（ａ）に示す読み出し電圧に設定し、読み出しセンスアンプＳＡ、出力バッファ、データバスＤ（３１：０）を通じて、読み出された３２ビットのツインセルデータが制御回路１２０に送られる。
【００９８】
ステップＳ４０２において、列デコーダＣＤＥＣは、Ｃ２信号によって書換え列セレクタＭＣ２ＧＰ，ＭＣ２ＧＮをオンにし、入出力回路ＩＯＢＵＦは、信号線Ｄ０Ｐ，Ｄ０Ｎを介して、消去対象ブロックの先頭領域（先頭アドレスと、連続する３アドレスの計４アドレスにより特定される３２ビットの領域）から読み出されたツインセルデータの反転データの書込みデータを設定する。すなわち、読み出されたツインセルデータが“１”の場合、ポジティブセルＭＣＰの閾値電圧Ｖｔｈが低く、ネガティブセルＭＣＮの閾値電圧Ｖｔｈが高い。第２プレライト処理では、閾値電圧Ｖｔｈが低い方のポジティブセルＭＣＰの閾値電圧Ｖｔｈのみを増加させる。また、読み出されたツインセルデータが“０”の場合、ネガティブセルＭＣＮの閾値電圧Ｖｔｈが低く、ポジティブセルＭＣＰの閾値電圧Ｖｔｈが高い。第２プレライト処理では、閾値電圧Ｖｔｈが低い方のネガティブセルＭＣＮの閾値電圧Ｖｔｈのみを増加させる。
【００９９】
たとえば、消去対象ブロックの先頭領域の読み出された３２ビットのツインセルデータが32h’FFFFFFFFの場合、読み出されたツインセルデータに対応する書込みデータは32h’00000000となる。また、消去対象ブロックの先頭領域の読み出された３２ビットのツインセルデータが32h’CCCCCCCCの場合、読み出されたツインセルデータに対応する書込みデータは32h’33333333となる。
【０１００】
ステップＳ４０３において、制御回路１２０は、第１書込みを開始する。
ステップＳ４０４において、制御回路１２０は、ＭＧ、ＣＧ、ＳＬを図５（ａ）に示す書込みバイアス電圧（Ｖｔｈを増加させる電圧）に設定し、選択された３２個のツインセルＴＣの一方のメモリセルに書込みバイアス電圧を印加させることによって、３２個のツインセルＴＣの一方のメモリセルの閾値電圧Ｖｔｈを増加させる。他方のメモリセルに対しては書き込みバイアス電圧は印加されず、よってその閾値電圧Ｖｔｈは維持される。
【０１０１】
消去対象ブロックの先頭領域（先頭アドレスにより指定される３２ビットの領域）には、その消去対象ブロックの先頭領域から読み出されたツインセルデータの反転データが書き込まれる。一方、消去対象ブロックの先頭領域以外にも、消去対象ブロックの先頭領域から読み出されたツインセルデータの反転データが書き込まれる。
【０１０２】
ステップＳ４０５において、書込みベリファイが実施される。つまり、書込みデータが「０」の場合には、ポジティブベリファイセンスアンプＶＳＰによって、ポジティブセルＭＣＰの閾値電圧Ｖｔｈが、第２の書込みベリファイ電圧ＷＶＥＲ２を超えているか否かが判定される。書込みデータが「１」の場合には、ネガティブベリファイセンスアンプＶＳＮによって、ネガティブセルＭＣＮの閾値電圧Ｖｔｈが、第２の書込みベリファイ電圧ＷＶＥＲ２を超えているか否かが判定される。
【０１０３】
ステップＳ４０６において、３２個のツインセルＴＣの少なくとも１つについて、閾値電圧Ｖｔｈを増加させる方のメモリセルの閾値電圧Ｖｔｈが第２の書込みベリファイ電圧ＷＶＥＲ２以下の場合には、処理がステップＳ４０４に戻る。３２個のツインセルＴＣのすべてについて、閾値電圧Ｖｔｈを増加させる方のメモリセルの閾値電圧Ｖｔｈが第２の書込みベリファイ電圧ＷＶＥＲ２を超えている場合には、処理がステップＳ４０７に進む。
【０１０４】
ステップＳ４０７において、制御回路１２０は、アドレスＡＤＲを１つインクリメントする。
【０１０５】
ステップＳ４０８において、アドレスＡＤＲが中間アドレスの場合には、処理がステップＳ４０７に進む。アドレスＡＤＲが中間アドレスでない場合には、処理がステップＳ４０３に戻る。中間アドレスは後述の中間領域の先頭の３２ビットの領域を指定するアドレスである。よって消去対象ブロックの先頭アドレスから中間アドレスの一つ前のアドレスまでの３２ビット毎の各領域が、先頭領域から読み出したデータの反転データに基づきプレライトされる。
【０１０６】
ステップＳ４０９において、制御回路１２０は、消去対象ブロックの中間アドレスをアドレスＡＤＲに設定する。アドレスＡＤＲに従って、第１行デコーダＲＤＥＣ１、第２行デコーダＲＤＥＣ２、および列デコーダＣＤＥＣによって、中間アドレスにより指定される３２個のツインセルＴＣが選択される。制御回路１２０は、ＭＧ、ＣＧ、ＳＬを図５（ａ）に示す読み出し電圧に設定し、読み出しセンスアンプＳＡ、出力バッファ、データバスＤ（３１：０）を通じて、読み出された３２ビットのツインセルデータが制御回路１２０に送られる。
【０１０７】
ステップＳ４１０において、列デコーダＣＤＥＣは、Ｃ２信号によって書換え列セレクタＭＣ２ＧＰ，ＭＣ２ＧＮをオンにし、入出力回路ＩＯＢＵＦは、信号線Ｄ０Ｐ，Ｄ０Ｎを介して、消去対象ブロックの中間領域（中間アドレスにより指定される３２ビットの領域）から読み出されたツインセルデータの反転データの書込みデータを設定する。
【０１０８】
ステップＳ４１１において、制御回路１２０は、第２書込みを開始する。
ステップＳ４１２において、制御回路１２０は、ＭＧ、ＣＧ、ＳＬを図５（ａ）に示す書込みバイアス電圧（Ｖｔｈを増加させる電圧）に設定し、選択された３２個のツインセルＴＣの一方のメモリセルに書込みバイアス電圧を印加させることによって、３２個のツインセルＴＣの一方のメモリセルの閾値電圧Ｖｔｈを増加させる。他方のメモリセルに対しては書き込みバイアス電圧は印加されず、よってその閾値電圧Ｖｔｈは維持される。
【０１０９】
消去対象ブロックの中間領域には、消去対象ブロックの中間領域から読み出されたツインセルデータの反転データが書き込まれる。一方、消去対象ブロックの中間領域以外にも、消去対象ブロックの中間領域から読み出されたツインセルデータの反転データが書き込まれる。
【０１１０】
ステップＳ４１３において、書込みベリファイが実施される。つまり、書込みデータが「０」の場合には、ポジティブベリファイセンスアンプＶＳＰによって、ポジティブセルＭＣＰの閾値電圧Ｖｔｈが、第２の書込みベリファイ電圧ＷＶＥＲ２を超えているか否かが判定される。書込みデータが「１」の場合には、ネガティブベリファイセンスアンプＶＳＮによって、ネガティブセルＭＣＮの閾値電圧Ｖｔｈが、第２の書込みベリファイ電圧ＷＶＥＲ２を超えているか否かが判定される。
【０１１１】
ステップＳ４１４において、３２個のツインセルＴＣの少なくとも１つについて、閾値電圧Ｖｔｈを増加させる方のメモリセルの閾値電圧Ｖｔｈが第２の書込みベリファイ電圧ＷＶＥＲ２以下の場合には、処理がステップＳ４１１に戻る。３２個のツインセルＴＣのすべてについて、閾値電圧Ｖｔｈを増加させる方のメモリセルの閾値電圧Ｖｔｈが第２の書込みベリファイ電圧ＷＶＥＲ２を超えている場合には、処理がステップＳ４１５に進む。
【０１１２】
ステップＳ４１５において、制御回路１２０は、アドレスＡＤＲを１つインクリメントする。
【０１１３】
ステップＳ４１６において、アドレスＡＤＲが（最終アドレス＋１）の場合には、処理が終了する。アドレスＡＤＲが（最終アドレス＋１）でない場合には、処理がステップＳ４１１に戻る。つまり、消去対象ブロックの中間領域から最終アドレスで指定される３２ビットの領域までの３２ビット毎の各領域が、その中間領域から読み出したデータの反転データに基づきプレライトされる。
【０１１４】
図１５（ａ）は、先頭領域および中間領域において、データ“１”記憶状態から、第２プレライト処理で“０”を書込み、その後消去処理を実行した場合の閾値電圧Ｖｔｈの変化を表わす図である。図１５（ｂ）は、先頭領域および中間領域において、データ“０”記憶状態から、第２プレライト処理で“１”を書込み、その後消去処理を実行した場合の閾値電圧Ｖｔｈの変化を表わす図である。
【０１１５】
図１６（ａ）は、先頭領域および中間領域以外の領域において、データ“１”記憶状態から、第２プレライト処理で“０”を書込み、その後消去処理を実行した場合の閾値電圧Ｖｔｈの変化を表わす図である。図１６（ｂ）は、先頭領域および中間領域以外の領域において、データ“１”記憶状態から、第２プレライト処理で“１”を書込み、その後消去処理を実行した場合の閾値電圧Ｖｔｈの変化を表わす図である。図１６（ｃ）は、先頭領域および中間領域以外の領域において、データ“０”記憶状態から、第２プレライト処理で“１”を書込み、その後消去処理を実行した場合の閾値電圧Ｖｔｈの変化を表わす図である。図１６（ｄ）は、先頭領域および中間領域以外の領域において、データ“０”記憶状態から、第２プレライト処理で“０”を書込み、その後消去処理を実行した場合の閾値電圧Ｖｔｈの変化を表わす図である。
【０１１６】
図１５および図１６に示されるように、ブロックイレーズ２では、終了後のポジティブセルＭＣＰ、ネガティブセルＭＣＮの閾値電圧Ｖｔｈの大小関係は、ブロックイレーズ実施前の閾値電圧Ｖｔｈの大小関係を維持しない。数ビット、または数アドレス単位で維持している箇所が有っても、メモリマット全体での書込みデータの連続性が喪失している。ブロックイレーズ２は、前述したブロックイレーズ１に比較するとデータの読み出しに時間を要するため、実行時間は長くなるが、機密性の高いデータを保護することができるという利点がある。
【０１１７】
（ツインセルデータの復元）
ブロックイレーズ１コマンドによって、不本意にツインセルデータが消去された場合、消去されたツインセルデータを復元するために、マイクロコンピュータ１に復元コマンドが実装される。
【０１１８】
図１７は、第２の実施形態のツインセルデータの復元の手順を表わすフローチャートである。
【０１１９】
ステップＳ５０１において、ＣＰＵ２からの復元コマンド、復元対象ブロックの指定がフラッシュメモリモジュール６に入力される。復元対象ブロックとして、メモリマットＭＡＴ０〜ＭＡＴ３のいずれかのマットが指定される。
【０１２０】
ステップＳ５０２において、制御回路１２０は、復元対象ブロックの先頭アドレスをアドレスＡＤＲに設定する。
【０１２１】
ステップＳ５０３において、アドレスＡＤＲに従って、第１行デコーダＲＤＥＣ１、第２行デコーダＲＤＥＣ２、および列デコーダＣＤＥＣによって、アドレスＡＤＲと、アドレスＡＤＲの後続の３アドレスの計４アドレスで指定される３２個のツインセルＴＣが選択される。制御回路１２０は、ＭＧ、ＣＧ、ＳＬを図５（ａ）に示す読み出し電圧に設定し、読み出しセンスアンプＳＡ、出力バッファ、データバスＤ（３１：０）を通じて、読み出された３２ビットのツインセルデータが制御回路１２０に送られる。ブランク消去状態であっても、ポジティブセルＭＣＰの閾値電圧ＶｔｈよりもネガティブセルＭＣＮの閾値電圧Ｖｔｈが高ければ、読み出されたツインセルデータが”１”と判定され、ネガティブセルＭＣＮの閾値電圧ＶｔｈよりもポジティブセルＭＣＰの閾値電圧Ｖｔｈが高ければ、読み出されたツインセルデータが”０”と判定される。
【０１２２】
ステップＳ５０４において、列デコーダＣＤＥＣは、Ｃ２信号によって書換え列セレクタＭＣ２ＧＰ，ＭＣ２ＧＮをオンにし、入出力回路ＩＯＢＵＦは、信号線Ｄ０Ｐ，Ｄ０Ｎを介して、読み出されたツインセルデータと同一の書込みデータをポジティブ書込みデータラッチ回路ＷＤＬＰおよびネガティブ書込みデータラッチ回路ＷＤＬＮに設定する。すなわち、入出力回路ＩＯＢＵＦは、読み出されたツインセルデータが“１”の場合、ポジティブセルＭＣＰの閾値電圧Ｖｔｈが低く、ネガティブセルＭＣＮの閾値電圧Ｖｔｈが高いので、書込みデータを“１”に設定して、ネガティブセルＭＣＮの閾値電圧Ｖｔｈのみを増加させる。また、入出力回路ＩＯＢＵＦは、読み出されたツインセルデータが“０”の場合、ネガティブセルＭＣＮの閾値電圧Ｖｔｈが低く、ポジティブセルＭＣＰの閾値電圧Ｖｔｈが高いので、書込みデータを“０”に設定して、ポジティブセルＭＣＰの閾値電圧Ｖｔｈのみを増加させる。
【０１２３】
ステップＳ５０５において、制御回路１２０は、書込みを開始する。
ステップＳ５０６において、制御回路１２０は、選択されたＭＢＬ、ＳＢＬ、ＳＧ、ＭＧ、ＳＬ、ＷＥＬＬを通じて、ツインセルＴＣに書込みバイアス電圧を印加させることによって、ツインセルＴＣの一方のメモリセルの閾値電圧Ｖｔｈを増加させる。
【０１２４】
ステップＳ５０７において、書込みベリファイが実施される。つまり、書込みデータが「０」の場合には、ポジティブベリファイセンスアンプＶＳＰによって、ポジティブセルＭＣＰの閾値電圧Ｖｔｈが、第１の書込みベリファイ電圧ＷＶＥＲ１を超えているか否かが判定される。書込みデータが「１」の場合には、ネガティブベリファイセンスアンプＶＳＮによって、ネガティブセルＭＣＮの閾値電圧Ｖｔｈが、第１の書込みベリファイ電圧ＷＶＥＲ１を超えているか否かが判定される。
【０１２５】
ステップＳ５０８において、３２個のツインセルＴＣの少なくとも１つについて、閾値電圧Ｖｔｈを増加させる方のメモリセルの閾値電圧Ｖｔｈが第１の書込みベリファイ電圧ＷＶＥＲ１以下の場合には、処理がステップＳ５０６に戻る。３２個のツインセルＴＣのすべてについて、閾値電圧Ｖｔｈを増加させる方のメモリセルの閾値電圧Ｖｔｈが第１の書込みベリファイ電圧ＷＶＥＲ１を超えている場合には、処理がステップＳ５０９に進む。
【０１２６】
ステップＳ５０９において、制御回路１２０は、アドレスＡＤＲを１つインクリメントする。ステップＳ５１０において、アドレスＡＤＲが（最終アドレス＋１）の場合には、処理が終了する。アドレスＡＤＲが（最終アドレス＋１）でない場合には、処理がステップＳ５０３に戻る。
【０１２７】
このように制御回路１２０は、第２の消去コマンドに基づいて消去対象の複数個のツインメモリセルの少なくとも一部において、プレライト前のデータの書込み状態のポジティブセルとネガティブセルの対のそれぞれ閾値の大小関係を逆転させた消去状態に１個または２個以上のメモリセルを置くように前記消去処理を実施する。より具体的にはプレライトにより同時に書き込みバイアス電圧が印加される複数のツインメモリセルの少なくともいずれか一個において、ポジティブセルとネガティブセルの対のそれぞれ閾値の大小関係を逆転させた消去状態が実現される。
【０１２８】
他方、第１の消去コマンドに基づいて消去対象の複数個のツインメモリセルを消去する消去処理では基本的には、プレライト前の書込み状態にあるポジティブセルとネガティブセルの対の閾値の大小関係が変更されない。よって消去処理により閾値の大小関係が逆転するセル対の数は第１の消去コマンドよりも第２の消去コマンドの消去処理の方が多くなる。第１の消去コマンドに比べ第２の消去コマンドに従い消去処理の実施される複数個のツインセルのデータ値は、データの読出しを試みた場合、消去前のデータ値と異なるビット数が多くなる。第２の消去コマンドによる消去は第１の消去コメントにより消去よりもデータの再現性が低く、消去前のデータの機密性が保たれる。
【０１２９】
以上のように、本実施の形態によれば、第１の実施形態と同様に、第１の消去コマンドによって、ユーザが単に新たにデータを書き込むためにツインセルデータの消去を行なうことができ、第２の消去コマンドによって、ユーザが機密を保持したツインセルデータの消去を行なうことができる。
【０１３０】
また、復元コマンドを使うことによって、第１の消去コマンドの実行後のブランク消去状態から元のデータを復元することができる。
【０１３１】
［第３の実施形態］
第１および第２の実施形態で説明したブロックイレーズ２における第２プレライト処理および復元の処理は、フラッシュメモリモジュール６内の制御回路１２０によって制御された。それゆえ、フラッシュメモリモジュール６内の制御回路１２０に、ブロックイレーズ２における第２プレライト処理および復元処理の機能を実装する必要がある。本実施の形態では、ＣＰＵ２がブロックイレーズ２におけるプレライトプログラムおよび復元プログラムを実行することによって、フラッシュメモリモジュール６内の制御回路１２０に第２プレライト処理および復元の機能が実装されていない場合でも、第２プレライトおよび復元が実行できるようにする。
【０１３２】
図１８は、プレライトプログラムの処理手順を表わす図である。
Ｓｔｅｐ０で処理が開始される。
【０１３３】
Ｓｔｅｐ１において、ＣＰＵ２は、ポジティブベリファイセンスアンプＶＳＰおよびネガティブベリファイセンスアンプＶＳＮに参照電圧として第２の書込みベリファイ電圧ＷＶＥＲ２を供給することを指示する値を制御回路１２０内のレジスタ１３１に設定する。なお、レジスタ１３１のデフォルト値は、ポジティブベリファイセンスアンプＶＳＰおよびネガティブベリファイセンスアンプＶＳＮに参照電圧として第１の書込みベリファイ電圧ＷＶＥＲ１を供給することを指示する値である。
【０１３４】
Ｓｔｅｐ２において、ＣＰＵ２は、アドレスＡＤＲを消去対象ブロックの先頭アドレスに設定する。
【０１３５】
Ｓｔｅｐ３において、ＣＰＵ２は、リードコマンドＲｅａｄと、アドレスＡＤＲからなるリード命令を出力する。制御回路１２０は、このコマンドを受けると、アドレスＡＤＲと、アドレスＡＤＲの後続の３アドレスの計４アドレスで指定される３２個のツインセルＴＣのツインセルデータを読み出して、ＣＰＵ２へ出力する。制御回路１２０から出力されたツインセルデータが、３２ビットのＤＡＴＡとなる。
【０１３６】
Ｓｔｅｐ４において、ＣＰＵ２は、プログラムコマンドＷｒｉｔｅと、アドレスＡＤＲと、データ／ＤＡＴＡとからなるプログラム命令を出力する。制御回路１２０は、このコマンドを受けると、アドレスＡＤＲと、アドレスＡＤＲの後続の３アドレスの計４アドレスで指定される３２個のツインセルＴＣに３２ビットのデータ／ＤＡＴＡを書き込む。／ＤＡＴＡは、Ｓｔｅｐ３で読み出されたＤＡＴＡの各ビットを反転させたものである。ここで、ベリファイセンスアンプＶＳＰ，ＶＳＮには、レジスタ１３１の設定によって、第２の書込みベリファイ電圧ＷＶＥＲ２が供給されているので、各ツインセルＴＣのポジティブセルＭＣＰとネガティブセルＭＣＮの一方の閾値電圧Ｖｔｈが第２の書込みベリファイ電圧ＷＶＥＲ２を超えるまで、書込み処理が続行される。
【０１３７】
Ｓｔｅｐ５において、ＣＰＵ２は、アドレスＡＤＲを１つインクリメントする。
Ｓｔｅｐ６において、ＣＰＵ２は、アドレスＡＤＲが消去対象ブロックの（中間アドレス＋４）の場合には、処理をＳｔｅｐ７に進ませる。ＣＰＵ２は、アドレスＡＤＲが消去対象ブロックの中間アドレスでない場合には、処理をＳｔｅｐ４に戻す。
【０１３８】
Ｓｔｅｐ７において、ＣＰＵ２は、リードコマンドＲｅａｄと、アドレスＡＤＲからなるリード命令を出力する。制御回路１２０は、このコマンドを受けると、アドレスＡＤＲと、アドレスＡＤＲの後続の３アドレスの計４アドレスで指定される３２個のツインセルＴＣのツインセルデータを読み出して、ＣＰＵ２へ出力する。制御回路１２０から出力されたツインセルデータが、３２ビットのＤＡＴＡとなる。
【０１３９】
Ｓｔｅｐ８において、ＣＰＵ２は、プログラムコマンドＷｒｉｔｅと、アドレスＡＤＲと、データ／ＤＡＴＡとからなるプログラム命令を出力する。制御回路１２０は、このコマンドを受けると、アドレスＡＤＲと、アドレスＡＤＲの後続の３アドレスの計４アドレスで指定される３２個のツインセルＴＣに３２ビットのデータ／ＤＡＴＡを書き込む。／ＤＡＴＡは、Ｓｔｅｐ７で読み出されたＤＡＴＡの各ビットを反転させたものである。
【０１４０】
Ｓｔｅｐ９において、ＣＰＵ２は、アドレスＡＤＲを１つインクリメントする。
Ｓｔｅｐ１０において、ＣＰＵ２は、アドレスＡＤＲが消去対象ブロックの（最終アドレス＋４）の場合には、処理を終了する。ＣＰＵ２は、アドレスＡＤＲが消去対象ブロックの（最終アドレス＋１）でない場合には、処理をＳｔｅｐ８に戻す。
【０１４１】
図１９は、復元プログラムの処理手順を表わす図である。
Ｓｔｅｐ０で処理が開始される。
【０１４２】
Ｓｔｅｐ１において、ＣＰＵ２は、アドレスＡＤＲを復元対象ブロックの先頭アドレスに設定する。
【０１４３】
Ｓｔｅｐ２において、ＣＰＵ２は、リードコマンドＲｅａｄと、アドレスＡＤＲとからなるリード命令を出力する。制御回路１２０は、このコマンドを受けると、アドレスＡＤＲと、アドレスＡＤＲの後続の３アドレスの計４アドレスで指定される３２個のツインセルＴＣのツインセルデータを読み出して、ＣＰＵ２へ出力する。制御回路１２０から出力されたツインセルデータが、３２ビットのＤＡＴＡとなる。
【０１４４】
Ｓｔｅｐ３において、ＣＰＵ２は、プログラムコマンドＷｒｉｔｅと、アドレスＡＤＲと、データＤＡＴＡとからなるプログラム命令を出力する。制御回路１２０は、このコマンドを受けると、アドレスＡＤＲと、アドレスＡＤＲの後続の３アドレスの計４アドレスで指定される３２個のツインセルＴＣに３２ビットのＤＡＴＡを書き込む。ＤＡＴＡは、Ｓｔｅｐ２で読みされたＤＡＴＡと同一である。ここで、ベリファイセンスアンプＶＳＰ，ＶＳＮには、第１の書込みベリファイ電圧ＷＶＥＲ１が供給されているので、各ツインセルＴＣのポジティブセルＭＣＰとネガティブセルＭＣＮの一方の閾値電圧Ｖｔｈが第１の書込みベリファイ電圧ＷＶＥＲ１を超えるまで、書込み処理が続行される。
【０１４５】
Ｓｔｅｐ４において、ＣＰＵ２は、アドレスＡＤＲを１つインクリメントする。
Ｓｔｅｐ５において、ＣＰＵ２は、アドレスＡＤＲが消去対象ブロックの（最終アドレス＋４）の場合には、処理を終了する。ＣＰＵ２は、アドレスＡＤＲが消去対象ブロックの（最終アドレス＋１）でない場合には、処理をＳｔｅｐ２に戻す。
【０１４６】
ブロックイレーズ２プログラムおよび復元プログラムは、図４に示すフラッシュメモリモジュール６のメモリマットＭＡＴ０〜ＭＡＴ３内のいずれかに記憶されており、ブロックイレーズ２および復元処理の前に、図３のＲＡＭ５に転送され、ＣＰＵ２によって読み出されて実行される。あるいは、ブロックイレーズ２プログラムおよび復元プログラムは、マイクロコンピュータ１の外部のデバイス（たとえばライター）によって、マイクロコンピュータ１の内部の入出力ポートを介してＲＡＭ５に書き込まれることとしてもよい。
【０１４７】
以上のように、本実施の形態によれば、フラッシュメモリモジュール６内の制御回路１２０に、第２プレライト処理および復元の機能を実装されていなくても、ＣＰＵ２がプレライトプログラムおよび復元プログラムを実行することによって、第２の実施形態と同様のブロックイレーズ２および復元を実現できる。
【０１４８】
本発明は、上記実施形態に限定されるものではなく、たとえば以下のような変形例も含まれる。
【０１４９】
（１）ブロックイレーズ２の書込みデータ
本発明の実施の形態では、ブロックイレーズ２において、消去対象ブロックの前半分の領域に消去対象ブロックの先頭領域から読み出したデータを反転したデータを書込み、消去対象ブロックの後半分の領域に消去対象ブロックの中間領域から読み出したデータを反転したデータを書き込んだが、これに限定するものではない。
【０１５０】
消去対象ブロックをＮ分割実施し、分割された各領域の先頭領域から読み出したデータを反転したデータを、各領域の全体に書き込むこととしてもよい。あるいは、消去対象ブロックの全領域に消去対象ブロックの先頭領域から読み出したデータを反転したデータを書き込むこととしてもよい。あるいは、消去対象ブロックの各領域からデータを読み出して、読み出したデータを反転したデータを各領域に書き込むこととしてもよい。消去対象ブロックからデータを読み出さずに、ランダムデータを消去対象ブロックに書き込むこととしてもよい。
【０１５１】
（２）第２プレライト処理の書込みベリファイ電圧
本発明の実施形態では、第２プレライト処理では、閾値電圧Ｖｔｈを増加させる側のメモリセルの閾値電圧Ｖｔｈが第２の書込みベリファイ電圧ＷＶＥＲ２を超えるか否かが判定されることとしたが、これに限定されるものではなく、閾値電圧Ｖｔｈを増加させる側のメモリセルの閾値電圧Ｖｔｈが第１の書込みベリファイ電圧ＷＶＥＲ１を超えるか否かが判定されることとしてもよい。この場合に、ブロックイレーズ２終了後のポジティブセルＭＣＰ、ネガティブセルＭＣＮの閾値電圧Ｖｔｈの大小関係は、ブロックイレーズ２実施前の閾値電圧Ｖｔｈの大小関係を維持する確率は、第２の書込みベリファイ電圧ＷＶＥＲ２を用いる場合よりも高くなるが、ブロックイレーズ２実施前の閾値電圧Ｖｔｈの大小関係を完全に維持することはない。したがって、少しでもブロックイレーズ２実施前の閾値電圧Ｖｔｈの大小関係が維持されていなければよいような場合には、第２プレライト処理において、閾値電圧Ｖｔｈを増加させる側のメモリセルの閾値電圧Ｖｔｈが第１の書込みベリファイ電圧ＷＶＥＲ１を超えるか否かが判定されることとしてもよい。
【０１５２】
（３）ブロックイレーズ２のみの実装
上述した実施形態において、機密保持データのみを扱うフラッシュメモリモジュールであれば、ブロックイレーズ１（又はそのプレライトプログラム）及び復元処理（又はその復元プログラム）はフラッシュメモリモジュールにおいて必ずしも実装されなくてもよい。
【０１５３】
（４）ブロックイレーズ１及び復元処理のみの実装
他方、機密保持データの消去を不要とするユーザに対しては、ブロックイレーズ２（又はそのプレライトプログラム）はフラッシュメモリモジュールに実装されなくてもよい。
【０１５４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１５５】
１  マイクロコンピュータ（ＭＣＵ）、２  中央処理装置（ＣＰＵ）、３  ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）、４  バスインタフェース回路（ＢＩＦ）、５  ランダムアクセスメモリ（ＲＡＭ）、６  フラッシュメモリモジュール（ＦＭＤＬ）、７  フラッシュシーケンサ（ＦＳＱＣ）、８，９  外部入出力ポート（ＰＲＴ）、１０  タイマ（ＴＭＲ）、１１  クロックパルスジェネレータ（ＣＰＧ）、９１，９３  データ保持部、９２，９４  設定部、ＲＤＥＣ１  第１行デコーダ、ＲＤＥＣ２  第２行デコーダ、ＩＯＢＵＦ  入出力回路、ＣＤＥＣ  列デコーダ、ＶＰＧ  電源回路、ＴＭＧ  タイミングジェネレータ、１００  半導体装置、１０１，ＭＡＲＹ  メモリアレイ、１０２  第１記憶素子、１０３  第２記憶素子、１０４  ツインセル、１０５，１２０  制御回路、１２１  読み出しセンスアンプ回路、１２２  Ｙセレクト部、１２３  書込みラッチ部、１２４  ベリファイ部、１３１  レジスタ、Ｐ１〜Ｐ６，  ＰチャネルＭＯＳトランジスタ、Ｎ１〜Ｎ６  ＮチャネルＭＯＳトランジスタ、ＩＶ１〜ＩＶ４  インバータ、ＨＡＣＳＰ  高速アクセスポート、ＬＡＣＳＰ  低速アクセスポート、ＨＢＵＳ  高速バス、ＰＢＵＳ  周辺バス、ＭＡＴ０〜ＭＡＴ３  メモリマット、ＳＡ  読み出しセンスアンプ、ＶＳＰ  ポジティブベリファイセンスアンプ、ＶＰＮ  ネガティブベリファイセンスアンプ、ＶＥＲＣ  ベリファイ回路、ＷＤＬＰ  ポジティブ書込みデータラッチ回路、ＷＤＬＮ  ネガティブ書込みデータラッチ回路、ＭＣ１ＧＰ，ＭＣ１ＧＮ  ベリファイセレクタ、ＭＣ２ＧＰ，ＭＣ２ＧＮ  書換え列セレクタ、ＳＥＬＰ，ＳＥＬＮ  副ビット線セレクタ、ＹＳＥＬＰ，ＹＳＥＬＮ  Ｙセレクタ、Ｂ０〜Ｂ３１  バッファ、ＴＣ  ツインセル、ＭＣＰ，ＭＣＮ  不揮発性メモリセル、ＭＢＬＰ，ＭＢＬＮ  主ビット線、ＷＬ  ワード線、ＳＢＬＰ，ＳＢＬＮ  副ビット線、ＭＧＬ  メモリゲート選択線。
【図１】
2015151197.tif 000003
【図２】
2015151197.tif 000004
【図３】
2015151197.tif 000005
【図４】
2015151197.tif 000006
【図５】
2015151197.tif 000007
【図６】
2015151197.tif 000008
【図７】
2015151197.tif 000009
【図８】
2015151197.tif 000010
【図９】
2015151197.tif 000011
【図１０】
2015151197.tif 000012
【図１１】
2015151197.tif 000013
【図１２】
2015151197.tif 000014
【図１３】
2015151197.tif 000015
【図１４】
2015151197.tif 000016
【図１５】
2015151197.tif 000017
【図１６】
2015151197.tif 000018
【図１７】
2015151197.tif 000019
【図１８】
2015151197.tif 000020
【図１９】
2015151197.tif 000021
【国際調査報告】
2015151197.tif 000022
2015151197.tif 000023