(57)【要約】【課題】閾値電圧分布間のマージンが狭い場合においても確実に記憶データを読み出すことが可能な半導体記憶装置を提供する。【解決手段】制御部は、電圧発生回路により発生された第１レベルＣＲでの読み出し動作と（Ｓ３１）、第２レベルＣＲ−ｘでの読み出し動作により（Ｓ３２）、ワード線の１つに接続された複数のメモリセルからデータを読み出し、これらデータから第１レベルと第２レベルとの間に含まれるメモリセルの数を求め（Ｓ３３）、この数が規定値以下である場合、前記第１レベルでの読み出し動作の結果を読み出しデータとする（Ｓ３５）。【選択図】      図１
2008034065.tif 000002
【特許請求の範囲】
【請求項１】
複数のワード線、及び複数のビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、
前記ワード線、及びビット線の電位を発生する電圧発生回路と、
前記ビット線に接続され、前記メモリセルの書き込みデータ、又は前記メモリセルから読み出されたデータを記憶するデータ記憶回路と、
前記電圧発生回路により発生された第１レベルでの読み出し動作と、第２レベルでの読み出し動作により、前記ワード線の１つに接続された複数のメモリセルからデータを読み出し、これらデータから第１レベルと第２レベルとの間に含まれるメモリセルの数を求め、この数が規定値以下である場合、前記第１レベルでの読み出し動作の結果を読み出しデータとする制御部と
を具備することを特徴とする半導体記憶装置。
【請求項２】
前記第１レベルと第２レベルとの間に含まれるメモリセルの数が、前記規定値を超える場合、読み出しレベルを変更して再度読み出し動作を行うことを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
前記第２レベルは前記第１レベルより低いレベルであることを特徴とする請求項１記載の半導体記憶装置。
【請求項４】
前記制御部は、前記第１レベルと前記第２レベルとの間に含まれるメモリセルの数が規定数以上の場合、前記第１、第２レベルをそれぞれ下げて再度読み出し動作を行うことを特徴とする請求項１記載の半導体記憶装置。
【請求項５】
前記制御部は、前記第１レベルと前記第２レベルとの間に含まれるメモリセルの数が規定数以上の場合、前記第２レベルより低いレベルである第３レベルで読み出し、第２レベルと第３レベルとの間に含まれるメモリセルの数を求め、前記第２レベルと第３レベルとの間に含まれるメモリセルの数が規定数以下の場合、前記第２レベルでの読み出し動作の結果を読み出しデータとすることを特徴とする請求項３記載の半導体記憶装置。
【請求項６】
前記制御部は、前記第１レベルより高いレベルである第４レベルで読み出し動作を行い、前記第１レベルと第４レベルとの間に含まれるメモリセルの数を求め、前記第１レベルと第２レベルとの間に含まれるメモリセルの数が規定数以上の場合で、前記第１レベルと前記第２レベルとの間のセルの数が、前記第１レベルと前記第４レベルとの間のセルの数より小さい場合、前記読み出しレベルを下げて再度読み出し動作を行うことを特徴とする請求項３記載の半導体記憶装置。
【請求項７】
前記制御部は、前記第１レベルより高いレベルである第４レベルで読み出し動作を行い、前記第１レベルと第４レベルとの間に含まれるメモリセルの数を求め、前記第１レベルと第２レベルとの間に含まれるメモリセルの数が規定数以上の場合で、前記第１レベルと前記第２レベルとの間のセルの数が、前記第１レベルと前記第４レベルとの間のセルの数より大きい場合、前記読み出しレベルを上げて再度読み出し動作を行うことを特徴とする請求項３記載の半導体記憶装置。
【請求項８】
複数のワード線、及び複数ビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、
前記ワード線、及びビット線の電位を発生する電圧発生回路と、
前記ビット線に接続され、前記メモリセルの書き込みデータ、又は前記メモリセルから読み出されたデータを記憶するデータ記憶回路と、
前記電圧発生回路により発生された第１レベルでの読み出し動作と、第２レベルでの読み出し動作と、前記第１レベルより高いレベルである第３レベルでの読み出し動作により、前記第１レベルと第２レベルとの間に含まれるメモリセルの数と、前記第１レベルと第３レベルの間に含まれるメモリセルの数を求め、（前記第１レベルと第２レベルとの間に含まれるメモリセルの数）／（前記第１レベルと第３レベルとの間に含まれるメモリセルの数）が規定数以下の場合、前記第１レベルでの読み出し動作の結果を読み出しデータとする制御部と
を具備することを特徴とする半導体記憶装置。
【請求項９】
（前記第１レベルと第２レベルとの間に含まれるメモリセルの数）／（前記第１レベルと第３レベルとの間に含まれるメモリセルの数）が前記規定数を超える場合、前記読み出しレベルを変更して再度読み出し動作を行うことを特徴とする請求項８記載の半導体記憶装置。
【請求項１０】
前記第２レベルは前記第１レベルより低いレベルであることを特徴とする請求項８記載の半導体記憶装置。
【請求項１１】
前記制御部は、（前記第１レベルと第２レベルとの間に含まれるメモリセルの数）／（前記第１レベルと第３レベルとの間に含まれるメモリセルの数）が規定数以上の場合、前記第１、第２レベルを下げて再度読み出し動作を行うことを特徴とする請求項８記載の半導体記憶装置。
【請求項１２】
前記制御部は、（前記第１レベルと第２レベルとの間に含まれるメモリセルの数）／（前記第１レベルと第３レベルとの間に含まれるメモリセルの数）が規数以上の場合、前記第２レベルより低いレベルである第４レベルで読み出し、前記第２レベルと第４レベルとの間に含まれるメモリセルの数を求め、前記第２レベルと第４レベルとの間に含まれるメモリセルの数が規定数以下の場合、前記第２レベルでの読み出し動作の結果を読み出しデータとすることを特徴とする請求項１０記載の半導体記憶装置。
【請求項１３】
前記制御部は、前記第１レベルより高いレベルである第５レベルで読み出し動作を行い、前記第１レベルと第５レベルとの間に含まれるメモリセルの数を求め、（前記第１レベルと第２レベルとの間に含まれるメモリセルの数）／（前記第１レベルと第３レベルとの間に含まれるメモリセルの数）が規定数以上の場合で、前記第１レベルと前記第２レベルとの間のセルの数が、前記第１レベルと前記第５レベルとの間のセルの数より小さい場合、前記読み出しレベルを下げて再度読み出し動作を行うことを特徴とする請求項１０記載の半導体記憶装置。
【請求項１４】
前記制御部は、前記第１レベルより高いレベルである第５レベルで読み出し動作を行い、前記第１レベルと第５レベルとの間に含まれるメモリセルの数を求め、（前記第１レベルと第２レベルとの間に含まれるメモリセルの数）／（前記第１レベルと第３レベルとの間に含まれるメモリセルの数）が規定数以上の場合で、前記第１レベルと前記第２レベルとの間のセルの数が、前記第１レベルと前記第５レベルとの間のセルの数より大きい場合、前記読み出しレベルを上げて再度読み出し動作を行うことを特徴とする請求項１０記載の半導体記憶装置。
【請求項１５】
複数のワード線、及び複数ビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、
前記ワード線、及びビット線の電位を発生する電圧発生回路と、
前記ビット線に接続され、前記メモリセルの書き込みデータ、又は前記メモリセルから読み出されたデータを記憶するデータ記憶回路と、
前記電圧発生回路及びデータ記憶回路を制御する制御部とを具備し、
前記制御部は、消去動作により、前記メモリセルの閾値電圧を第１レベルとし、書き込み及びベリファイ動作を繰り返すことにより、外部より入力される書き込みデータに応じて、前記メモリセルの閾値電圧を第１レベル、第２レベル、…第ｎレベル（ｎ＝２ｋ）に設定して、ｋビットのデータを記憶させ、第ｈレベル（ｈ≦ｎ）への書き込みセルのうち、第（ｈ−１）レベルを超えているセルに対して、第（ｈ−１）レベルを超えてから、ｊ回（ｊは自然数）の書き込み動作を計数し、ｊ回目以降の書き込み動作において、書き込み速度を遅くすることを特徴とする半導体記憶装置。
【請求項１６】
複数のワード線、及び複数ビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、
前記ワード線、及びビット線の電位を発生する電圧発生回路と、
前記ビット線に接続され、前記メモリセルの書き込みデータ、又は前記メモリセルから読み出されたデータを記憶するデータ記憶回路と、
前記電圧発生回路及びデータ記憶回路を制御する制御部とを具備し、
前記制御部は、消去動作により、前記メモリセルの閾値電圧を第１レベルとし、書き込み及びベリファイ動作を繰り返すことにより、外部より入力される書き込みデータに応じて、前記メモリセルの閾値電圧を第１レベル、第２レベル、…第ｎレベル（ｎ＝２ｋ）に設定して、ｋビットのデータを記憶させ、第ｈレベル（ｈ≦ｎ）への書き込みセルのうち、第（ｈ−２）レベルを超えてから、第（ｈ−１）レベルを超えるときまでの書き込み回数ｉ（ｉは自然数）を計数し、前記第ｈレベルへの書き込みにおいて、第（ｈ−１）レベルを超えているセルに対して、ｊ（ｊ＝ｉ＋α）（αは“０”を含む自然数）回目以降の書き込み動作において、書き込み速度を遅くすることを特徴とする半導体記憶装置。
【請求項１７】
データサーバとの間でデータの送受信を行なう通信手段と、
マルチメディアデータを再生する再生手段と、
前記マルチメディアデータを記憶する記憶手段と、
前記通信手段、再生手段、記憶手段を制御する制御部とを有し、
前記制御部は、
前記通信手段を介して前記データサーバにマルチメディアデータの購入要求を送信し、前記データサーバから供給される購入権利データを受け、前記記憶手段に記憶させ、
前記マルチメディアデータの再生時、前記記憶手段に記憶された前記購入権利データに対応するマルチメディアデータを前記データサーバよりダウンロードし、このダウンロードしたマルチメディアデータを前記再生手段により再生するとともに、前記記憶手段に記憶させる
ことを特徴とする記録再生システム。
【請求項１８】
複数のワード線、及び複数ビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、
前記ワード線、及びビット線の電位を発生する電圧発生回路と、
前記ビット線に接続され、前記メモリセルの書き込みデータ、又は前記メモリセルから読み出されたデータを記憶するデータ記憶回路と、
前記電圧発生回路及びデータ記憶回路を制御する制御部とを具備し、
前記制御部は、消去動作により、前記メモリセルの閾値電圧を第１レベルとし、書き込み動作により、書き込み及びベリファイ動作を繰り返し、外部より入力される書き込みデータに応じて、前記メモリセルの閾値電圧を第１レベル、第２レベル、…第ｎレベル（ｎ＝２ｋ）に設定して、前記メモリセルにｋビットのデータを記憶させ、前記書き込み動作において、第１レベル、第２レベル、…第ｎレベル（ｎ＝２ｋ）のｎ個のレベルについてのベリファイ動作を行い、第１コマンド入力後の前記書き込み動作において、前記ｎ個のレベルの内、ｈ（ｈ＜ｎ）個のレベルについてのベリファイ動作のみを行うことを特徴とする半導体記憶装置。
【請求項１９】
前記制御部は、前記第１コマンド入力後の前記書き込み動作において、第１レベル又は第ｎレベルのベリファイ動作のみを行うことを特徴とする請求項１８記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば１つのメモリセルに２値以上のデータを記憶することが可能な不揮発性の半導体記憶装置に関する。
【背景技術】
【０００２】
例えばＮＡＮＤ型フラッシュメモリは、ロウ方向に配置された複数のメモリセルがそれぞれビット線を介して対応するラッチ回路に接続されている。各ラッチ回路はデータの書き込み、及び読み出し時にデータを保持する。ロウ方向に配置された全てのセル又は半数のセル（例えば２〜４ｋＢのセル）は、一括してデータの書き込み、又は読み出しが行なわれる。消去動作、メモリセルの閾値電圧を負電圧に設定し、書き込み動作により、メモリセル内に電子を注入することにより閾値電圧を正電圧に設定する（例えば特許文献１参照）。
【０００３】
しかし、ＮＡＮＤ型フラッシュメモリは、複数のメモリセルが直列接続されているため、読み出し動作時に、非選択セルをオン状態とする必要がある。したがって、読み出し動作時に、閾値電圧より高い電圧（Ｖｒｅａｄ）がゲート電極に印加される。このため、書き込み動作での閾値電圧は、Ｖｒｅａｄを超えてはならない。書き込みシーケンスでは、メモリセル毎にプログラム、プログラムベリファイリードを繰り返し行ない、メモリセルの閾値電圧がＶｒｅａｄを超えないように制御する必要がある。このため、書き込み速度が低下する問題がある。
【０００４】
また、大容量データを記憶するため、１セルに２ビット以上記憶する多値メモリが開発されている。例えば１セルに２ビットを記憶するためには、４つの閾値電圧分布を設定する必要がある。このため、１セルに１ビットを記憶するメモリに比べて、１つ当たりの閾値電圧分布を狭く設定しなくてはならないため、書き込みスピードがさらに遅くなるという問題もある。
【０００５】
一方、読み出し電圧Ｖｒｅａｄのレベルを上げると、読み出し時に高いＶｒｅａｄがセルに加わるため、誤書き込みが発生するという問題がある。また、複数の閾値電圧のうち、高いレベルに書き込もうとすると、高い書き込み電圧が必要である。ＮＡＮＤ型フラッシュメモリは、ロウ方向に並んだ全てのセル又は半数のセルを一括して書き込むため、データによっては、非書き込み状態のセルにも高い電圧がゲート電極に加わり、誤書き込みが発生するという問題がある。
【０００６】
これらの問題より、限られた閾値電圧の範囲、例えば−２Ｖ〜５Ｖの間に、４値の場合は４つの閾値電圧分布を、８値の場合は８つの閾値電圧分布を、１６値の場合は１６個の閾値電圧分布を設定しなければならない。近時、ＥＣＣ（エラー訂正符号）によるエラー訂正能力の向上により、従来に比べて閾値電圧分布幅、及びデータ保持マージンを少なく設定できるようになっている。
【０００７】
しかし、プログラムベリファイ時とリード時で、温度等の条件が異なる。また、ダイソートテスト時に電圧発生回路の抵抗をトリミングすることにより設定される書き込み電圧、ベリファイ電圧、及び読み出し電圧は、ターゲット電圧に対してずれてしまうことがある。このため、閾値電圧分布間に、例えば８０ｍＶ程度のマージンを設定する必要がある。したがって、ＥＣＣの訂正能力を上げ、それぞれの閾値電圧分布幅を見かけ上狭くしても、設定マージンは大きいままであった。
【０００８】
このように、複数の閾値電圧を設定する多値メモリにおいて、各閾値電圧間のマージンは、狭く設定できる方がよいが、ベリファイ時とリード時において、温度等の条件が異なること、読み出し電圧、書き込み電圧、ベリファイ電圧のずれがあることにより、ある程度のマージンを設定する必要がある。
【特許文献１】特開２００４−１９２７８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、閾値電圧分布間のマージンが狭い場合においても確実に記憶データを読み出すことが可能な半導体記憶装置を提供しようとするものである。
【課題を解決するための手段】
【００１０】
本発明の半導体記憶装置の第１の態様は、複数のワード線、及び複数のビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、前記ワード線、及びビット線の電位を発生する電圧発生回路と、前記ビット線に接続され、前記メモリセルの書き込みデータ、又は前記メモリセルから読み出されたデータを記憶するデータ記憶回路と、前記電圧発生回路により発生された第１レベルでの読み出し動作と、第２レベルでの読み出し動作により、前記ワード線の１つに接続された複数のメモリセルからデータを読み出し、これらデータから第１レベルと第２レベルとの間に含まれるメモリセルの数を求め、この数が規定値以下である場合、前記第１レベルでの読み出し動作の結果を読み出しデータとする制御部とを具備することを特徴とする。
【００１１】
本発明の半導体記憶装置の第２の態様は、複数のワード線、及び複数ビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、前記ワード線、及びビット線の電位を発生する電圧発生回路と、前記ビット線に接続され、前記メモリセルの書き込みデータ、又は前記メモリセルから読み出されたデータを記憶するデータ記憶回路と、前記電圧発生回路により発生された第１レベルでの読み出し動作と、第２レベルでの読み出し動作と、前記第１レベルより高いレベルである第３レベルでの読み出し動作により、前記第１レベルと第２レベルとの間に含まれるメモリセルの数と、前記第１レベルと第３レベルの間に含まれるメモリセルの数を求め、（前記第１レベルと第２レベルとの間に含まれるメモリセルの数）／（前記第１レベルと第３レベルとの間に含まれるメモリセルの数）が規定数以下の場合、前記第１レベルでの読み出し動作の結果を読み出しデータとする制御部とを具備することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、閾値電圧分布間のマージンが狭い場合においても確実に記憶データを読み出すことが可能な半導体記憶装置を提供できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１４】
図２は、本発明の各実施形態に適用される半導体記憶装置、例えば４値（２ビット）を記憶するＮＡＮＤ型フラッシュメモリの構成を示している。
【００１５】
メモリセルアレイ１は、複数のビット線と複数のワード線と共通ソース線を含み、例えばＥＥＰＲＯＭセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ１には、ビット線を制御するためのビット制御回路２とワード線制御回路６が接続されている。
【００１６】
ビット線制御回路２は、ビット線を介してメモリセルアレイ１中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ１中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ１中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路２には、カラムデコーダ３、データ入出力バッファ４が接続されている。ビット線制御回路２内のデータ記憶回路はカラムデコーダ３によって選択される。データ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ４を介してデータ入出力端子５から外部へ出力される。データ入出力端子５は、例えばメモリチップ外部のホスト１１に接続される。このホスト１１は例えばマイクロコンピュータにより構成され、前記データ入出力端子５から出力されたデータを受ける。さらに、ホスト１１は、ＮＡＮＤ型フラッシュメモリの動作を制御する各種コマンドＣＭＤ、アドレスＡＤＤ、及びデータＤＴを出力する。ホスト１１からデータ入出力端子５に入力された書き込みデータは、データ入出力バッファ４を介して、カラムデコーダ３によって選択されたデータ記憶回路に供給され、コマンド及びアドレスは制御信号及び制御電圧発生回路７に供給される。
【００１７】
ワード線制御回路６は、メモリセルアレイ１に接続されている。このワード線制御回路６は、メモリセルアレイ１中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
【００１８】
メモリセルアレイ１、ビット線制御回路２、カラムデコーダ３、データ入出力バッファ４、及びワード線制御回路６は、制御信号及び制御電圧発生回路７に接続され、この制御信号及び制御電圧発生回路７によって制御される。制御信号及び制御電圧発生回路７は、制御信号入力端子８に接続され、ホスト１１から制御信号入力端子８を介して入力される制御信号ＡＬＥ（アドレス・ラッチ・イネーブル）、ＣＬＥ（コマンド・ラッチ・イネーブル）、ＷＥ（ライト・イネーブル）、ＲＥ（リード・イネーブル）によって制御される。
【００１９】
前記ビット線制御回路２、カラムデコーダ３、ワード線制御回路６、制御信号及び制御電圧発生回路７は書き込み回路、及び読み出し回路を構成している。
【００２０】
図３は、図２に示すメモリセルアレイ１及びビット線制御回路２の構成を示している。メモリセルアレイ１には複数のＮＡＮＤセルが配置されている。１つのＮＡＮＤセルは、直列接続された例えば３２個のＥＥＰＲＯＭからなるメモリセルＭＣと、選択ゲートＳ１、Ｓ２とにより構成されている。選択ゲートＳ２はビット線ＢＬ０ｅに接続され、選択ゲートＳ１はソース線ＳＲＣに接続されている。各ロウに配置されたメモリセルＭＣの制御ゲートはワード線ＷＬ０〜ＷＬ２９、ＷＬ３０、ＷＬ３１に共通接続されている。また、選択ゲートＳ２はセレクト線ＳＧＤに共通接続され、選択ゲートＳ１はセレクト線ＳＧＳに共通接続されている。
【００２１】
ビット線制御回路２は複数のデータ記憶回路１０を有している。各データ記憶回路１０には、一対のビット線（ＢＬ０ｅ、ＢＬ０ｏ）、（ＢＬ１ｅ、ＢＬ１ｏ）…（ＢＬｉｅ、ＢＬｉｏ）、（ＢＬ８ｋｅ、ＢＬ８ｋｏ）が接続されている。
【００２２】
メモリセルアレイ１は、破線で示すように、複数のブロックを含んでいる。各ブロックは、複数のＮＡＮＤセルにより構成され、例えばこのブロック単位でデータが消去される。また、消去動作は、データ記憶回路１０に接続されている２本のビット線について同時に行なわれる。
【００２３】
また、ビット線の１つおきに配置され、１つのワード線に接続された複数のメモリセル（破線で囲まれた範囲のメモリセル）は、１セクタを構成する。このセクタ毎にデータが書き込まれ、読み出される。
【００２４】
リード動作、プログラムベリファイ動作及びプログラム動作時において、データ記憶回路１０に接続されている２本のビット線（ＢＬｉｅ、ＢＬｉｏ）のうち外部より供給されるアドレス信号（ＹＡ０、ＹＡ１…ＹＡｉ…ＹＡ８ｋ）に応じて１本のビット線が選択される。さらに、外部アドレスに応じて、１本のワード線が選択される。
【００２５】
さらに、外部アドレスにより、１本のワード線が選択され、図３の点線で示す、２ページが選択される。この２ページの切り替えはアドレスによって行われる。１セルに２ビットを記憶する場合は、２ページであるが、１セルに３ビット記憶する場合は３ページ、１セルに４ビット記憶する場合は４ページ選択される。イレーズ動作は、図３の点線で示しているブロック単位で行う。
【００２６】
図４は、ロウ方向に並んだ全てのセルを一括して書き込む場合の構成を示している。この例の場合、各ビット線ＢＬ０，ＢＬ１…ＢＬ８ｋ−１，ＢＬ８ｋは、それぞれデータ記憶回路１０に接続され、各データ記憶回路１０には、アドレス信号ＹＡ０、ＹＡ１…ＹＡ８ｋ−１、ＹＡ８ｋがそれぞれ供給されている。
【００２７】
図５（ａ）はメモリセル、図５（ｂ）は選択ゲートの断面図を示している。図５（ａ）において、基板５１（後述するＰ型ウェル領域５５）にはメモリセルのソース、ドレインとしてのｎ型拡散層４２が形成されている。Ｐ型ウェル領域５５の上にはゲート絶縁膜４３を介して浮遊ゲート（ＦＧ）４４が形成され、この浮遊ゲート４４の上には絶縁膜４５を介して制御ゲート（ＣＧ）４６が形成されている。図５（ｂ）において、Ｐ型ウェル領域５５にはソース、ドレインとしてのｎ型拡散層４７が形成されている。Ｐ型ウェル領域５５の上にはゲート絶縁膜４８を介して制御ゲート４９が形成されている。
【００２８】
図６は、第１の実施形態に対応する半導体記憶装置の断面図を示している。例えばＰ型半導体基板５１内には、Ｎ型ウェル領域５２、５３、５４、Ｐ型ウェル領域５６が形成されている。Ｎ型ウェル領域５２内にはＰ型ウェル領域５５が形成され、このＰ型ウェル領域５５内にメモリセルアレイ１を構成する低電圧ＮチャネルトランジスタＬＶＮＴｒが形成されている。さらに、前記Ｎ型ウェル領域５３、Ｐ型ウェル領域５６内に、データ記憶回路１０を構成する低電圧ＰチャネルトランジスタＬＶＰＴｒ、低電圧ＮチャネルトランジスタＬＶＮＴｒが形成されている。前記基板５１内には、ビット線とデータ記憶回路１０を接続する高電圧ＮチャネルトランジスタＨＶＮＴｒが形成されている。また、前記Ｎ型ウェル領域５４内には例えばワード線駆動回路等を構成する高電圧ＰチャネルトランジスタＨＶＰＴｒが形成されている。図６に示すように、高電圧トランジスタＨＶＮＴｒ、ＨＶＰＴｒは、低電圧トランジスタＬＶＮＴｒ、ＬＶＰＴｒに比べて例えば厚いゲート絶縁膜を有している。
【００２９】
図７は、メモリセルの消去、プログラム、リード時において、図６に示す各部に供給される電圧の例を示している。
【００３０】
図８は、図３に示すデータ記憶回路１０の一例を示す回路図である。
【００３１】
このデータ記憶回路１０は、プライマリデータキャッシュ（ＰＤＣ）、セコンダリデータキャッシュ（ＳＤＣ）、ダイナミックデータキャッシュ（ＤＤＣ）、ダイナミックデータキャッシュＱ（ＤＤＣＱ）、テンポラリデータキャッシュ（ＴＤＣ）を有している。ＳＤＣ、ＰＤＣ、ＤＤＣは、書き込み時に入力データを保持し、読み出し時に読み出しデータを保持し、ベリファイ時に一時的にデータを保持し、多値データを記憶する際に内部データの操作に使用される。ＴＤＣは、データの読み出し時にビット線のデータを増幅し、一時的に保持するとともに、多値データを記憶する際に内部データの操作に使用される。ＤＤＣＱは、後述するデータの書き込み時において、特定のベリファイレベルより若干低いベリファイレベルに達したかどうかを示すデータを記憶する。
【００３２】
ＳＤＣは、ラッチ回路を構成するクロックドインバータ回路６１ａ、６１ｂ、及びトランジスタ６１ｃ、６１ｄにより構成されている。トランジスタ６１ｃはクロックドインバータ回路６１ａの入力端と、クロックドインバータ回路６１ｂの入力端の間に接続されている。このトランジスタ６１ｃのゲートには信号ＥＱ２が供給されている。トランジスタ６１ｄはクロックドインバータ回路６１ｂの出力端と接地間に接続されている。このトランジスタ６１ｄのゲートには信号ＰＲＳＴが供給されている。ＳＤＣのノードＮ２ａは、カラム選択トランジスタ６１ｅを介して入出力データ線ＩＯに接続され、ノードＮ２ｂは、カラム選択トランジスタ６１ｆを介して入出力データ線ＩＯｎに接続される。これらトランジスタ６１ｅ、６１ｆのゲートにはカラム選択信号ＣＳＬｉが供給されている。ＳＤＣのノードＮ２ａは、トランジスタ６１ｇ、６１ｈを介してＰＤＣのノードＮ１ａに接続されている。トランジスタ６１ｇのゲートには信号ＢＬＣ２が供給され、トランジスタ６１ｈのゲートには信号ＢＬＣ１が供給されている。
【００３３】
ＰＤＣは、クロックドインバータ回路６１ｉ、６１ｊ及びトランジスタ６１ｋにより構成されている。トランジスタ６１ｋは、クロックドインバータ回路６１ｉの入力端とクロックドインバータ回路６１ｊの入力端の相互間に接続されている。このトランジスタ６１ｋのゲートには信号ＥＱ１が供給されている。ＰＤＣのノードＮ１ｂはトランジスタ６１ｌのゲートに接続されている。このトランジスタ６１ｌの電流通路の一端はトランジスタ６１ｍを介して接地されている。このトランジスタ６１ｍのゲートには信号ＣＨＫ１が供給されている。また、トランジスタ６１ｌの電流通路の他端はトランスファーゲートを構成するトランジスタ６１ｎ、６１ｏの電流通路の一端に接続されている。このトランジスタ６１ｎのゲートには信号ＣＨＫ２ｎが供給されている。また、トランジスタ６１ｏのゲートは前記クロックドインバータ回路６１ａの出力端に接続されている。トランジスタ６１ｎ、６１ｏの電流通路の他端には、配線ＣＯＭｉが接続されている。この配線ＣＯＭｉは全データ記憶回路１０に共通の配線であり、全データ記憶回路１０のベリファイが完了した場合、配線ＣＯＭｉの電位はハイレベルとなる。すなわち、後述するように、ベリファイが完了すると、ＰＤＣのノードＮ１ｂがローレベルとなる。この状態において、信号ＣＨＫ１、ＣＨＫ２ｎをハイレベルとすると、ベリファイが完了している場合、配線ＣＯＭｉの電位はハイレベルとなる。
【００３４】
さらに、前記ＴＤＣは、例えばＭＯＳキャパシタ６１ｐにより構成されている。このキャパシタ６１ｐは、前記トランジスタ６１ｇ、６１ｈの接続ノードＮ３と接地間に接続されている。また、接続ノードＮ３には、トランジスタ６１ｑを介してＤＤＣが接続されている。トランジスタ６１ｑのゲートには、信号ＲＥＧが供給されている。さらに、ノードＮ３のキャパシタＣ１の一端が接続され、このキャパシタＣ２の他端に信号ＢＯＯＳＴが供給されている。
【００３５】
ＤＤＣは、トランジスタ６１ｒ、６１ｓにより構成されている。トランジスタ６１ｒの電流通路の一端には信号ＶＰＲＥが供給され、他端は前記トランジスタ６１ｑの電流通路に接続されている。このトランジスタ６１ｒのゲートはトランジスタ６１ｓを介して前記ＰＤＣのノードＮ１ａに接続されている。このトランジスタ６１ｓのゲートには信号ＤＴＧが供給されている。
【００３６】
ＤＤＣＱは、トランジスタ６１Ｑｒ、６１Ｑｓにより構成されている。トランジスタ６１Ｑｒの電流通路の一端には信号ＶＰＲＥが供給され、他端は前記トランジスタ６１Ｑｑを介して接続ノードＮ３に接続されている。トランジスタ６１Ｑｑのゲートには、信号ＲＥＧＱが供給されている。トランジスタ６１Ｑｒのゲートはトランジスタ６１Ｑｓを介して前記ＰＤＣのノードＮ１ａに接続されている。このトランジスタ６１Ｑｓのゲートには信号ＤＴＧＱが供給されている。
【００３７】
さらに、前記接続ノードＮ３にはトランジスタ６１ｔ、６１ｕの電流通路の一端が接続されている。トランジスタ６１ｕの電流通路の他端には信号ＶＰＲＥが供給され、ゲートにはＢＬＰＲＥが供給されている。前記トランジスタ６１ｔのゲートには信号ＢＬＣＬＡＭＰが供給されている。このトランジスタ６１ｔの電流通路の他端はトランジスタ６１ｖを介してビット線ＢＬｏの一端に接続され、トランジスタ６１ｗを介してビット線ＢＬｅの一端に接続されている。ビット線ＢＬｏの他端はトランジスタ６１ｘの電流通路の一端に接続されている。このトランジスタ６１ｘのゲートには信号ＢＩＡＳｏが供給されている。ビット線ＢＬｅの他端はトランジスタ６１ｙの電流通路の一端に接続されている。このトランジスタ６１ｙのゲートには信号ＢＩＡＳｅが供給されている。これらトランジスタ６１ｘ、６１ｙの電流通路の他端には、信号ＢＬＣＲＬが供給されている。トランジスタ６１ｘ、６１ｙは、信号ＢＩＡＳｏ、ＢＩＡＳｅに応じてトランジスタ６１ｖ、６１ｗと相補的にオンとされ、非選択のビット線に信号ＢＬＣＲＬの電位を供給する。
【００３８】
上記各信号及び電圧は、図３に示す制御信号及び制御電圧発生回路７により生成され、この制御信号及び制御電圧発生回路７の制御に基づき、以下の動作が制御される。
【００３９】
また、図４に示すデータ記憶回路１０は、図８に示す構成と同様であり、ビット線との接続のみが相違している。すなわち、図８に示すように、トランジスタ６１ｔの他端部には、例えばトランジスタ６１ｖのみが接続され、このトランジスタ６１ｖを介してビット線ＢＬｅ又はＢＬｏが接続される。
【００４０】
本メモリは、多値メモリであり、１セルに２ビットのデータを記憶することができる。２ビットの切り替えはアドレス（第１ページ、第２ページ）によって行なう。１セルに２ビットを記憶する場合、２ページであるが、１セルに３ビットを記憶する場合、アドレス（第１ページ、第２ページ、第３ページ）によって切り換える。さらに、１セルに４ビットを記憶する場合は、アドレス（第１ページ、第２ページ、第３ページ、第４ページ）によって切り換える。
【００４１】
図９（ａ）（ｂ）（ｃ）は、メモリセルに２ビットのデータを記憶する場合におけるデータと閾値電圧との関係を示している。消去動作を行なうと、図９（ｃ）に示すように、メモリセルのデータは“０”となる。消去後、閾値分布の広がりを狭めるため、例えばベリファイレベル“ｚ”を用いて書き込みが行なわれる。このデータ“０”は、例えば負の閾値電圧分布に設定されている。
【００４２】
図９（ａ）に示すように、第１ページの書き込みにおいて、書き込みデータが“１”の場合、メモリセルのデータは“０”のままであり、書き込みデータが“０”の場合、メモリセルのデータは“１”となる。
【００４３】
図９（ｂ）に示すように、第２ページの書き込み後、メモリセルのデータは書き込みデータに応じて“０”、“２”、“３”、“４”のいずれかとなる。すなわち、第１ページ書き込み後のメモリセルのデータが“０”であり、第２ページの書き込みデータが“１”の場合、メモリセルのデータは“０”のままであり、書き込みデータが“０”の場合、メモリセルのデータは“２”となる。また、第１ページ書き込み後のメモリセルのデータが“１”であり、書き込みデータが“０”である場合、メモリセルのデータは“３”となり、書き込みデータが“１”である場合、メモリセルのデータは“４”となる。本実施形態において、メモリセルのデータは閾値電圧の低いほうから高い方へと定義されている。また、データ“１”、“２”、“３”、“４”は例えば正電圧の閾値電圧である。
【００４４】
図１０は、２つのＮＡＮＤユニットの書き込み順序を示している。ブロック内において、ソース線に近いメモリセルからページ毎に書き込まれる。例えば先ず、メモリセル１，２に第１ページのデータが書き込まれ、次にメモリセル３，４に第１ページのデータが書き込まれる。次いで、メモリセル１，２に第２ページのデータが書き込まれ、メモリセル５，６に第１ページのデータが書き込まれる。以下、図１０に示すように順次書き込まれる。
【００４５】
（読み出し動作）
図９（ｂ）に示すように、第２ページ書き込み後、メモリセルのデータは、“０”、“２”、“３”、“４”の閾値電圧分布のいずれかに設定されている。このため、第２ページの読み出しは、これらの間の読み出しレベル“ＢＲ”“ＣＲ”“ＤＲ”を設定して実行する。
【００４６】
読み出し動作について具体的に説明する。
【００４７】
先ず、制御信号及び制御電圧発生回路７より、電圧Ｖｆｉｘ（例えば１．６Ｖ）を発生し、選択されたセルのウェル、ソース線、非選択ビット線、非選択ブロックの選択ゲートに印加する。尚、負電圧側にデータ“０”の閾値電圧分布を設定せず、正電圧側にデータ“０”の閾値電圧を設定する場合、Ｖｆｉｘは０Ｖとする。
【００４８】
選択ワード線にリードの時の電位Ｖｆｉｘ＋ＡＲ又はＢＲ、ＣＲ、ＤＲを印加する。例えばＡＲ＝−０．５Ｖとすると、Ｖｆｉｘ＋ＡＲは１．１Ｖである。これと同時に、選択ブロックの非選択ワード線にＶｒｅａｄ＋Ｖｆｉｘ、選択ブロックの選択ゲートＳＧＤにＶｓｇ（Ｖｄｄ＋Ｖｔｈ）＋Ｖｆｉｘ（Ｖｔｈ：ｎチャネルＭＯＳトランジスタの閾値電圧）、ＳＧＳにＶｆｉｘを印加する。ソース線（ＳＲＣ）及びセルのウェルにもＶｆｉｘを印加する。
【００４９】
次に、図８に示すデータ記憶回路１０の信号ＶＰＲＥをＶｄｄ（例えば２．５Ｖ）、信号ＢＬＰＲＥをＶｓｇ（Ｖｄｄ＋Ｖｔｈ）、信号ＢＬＣＬＡＭＰを例えば（０．６Ｖ＋Ｖｔｈ）＋Ｖｆｉｘに設定して、一旦印加する。この後、ビット線を例えば０．６Ｖ＋Ｖｆｉｘ＝２．２Ｖにプリチャージする。次に、セルのソース側のセレクト線ＳＧＳをＶｓｇ（Ｖｄｄ＋Ｖｔｈ）＋Ｖｆｉｘにする。ウェル及びソースがＶｆｉｘとなっているため、セルの閾値電圧がＡＲ又はＢＲ，ＣＲ、ＤＲ（例えばＡＲ＝−０．５Ｖ）より高い時、セルはオフする。このため、ビット線はハイレベル（例えば２．２Ｖ）のままである。また、セルの閾値電圧がＡＲ又はＢＲ，ＣＲ、ＤＲより低い場合、セルはオンする。このため、ビット線は放電され、ソースと同電位つまりＶｆｉｘ（例えば１．６Ｖ）となる。
【００５０】
この後、図８に示すデータ記憶回路１０の信号ＢＬＰＲＥを一旦Ｖｓｇ（Ｖｄｄ＋Ｖｔｈ）に設定し、ＴＤＣのノードをＶｄｄにプリチャージした後、信号ＢＯＯＳＴをローレベルからハイレベルとし、ＴＤＣ＝αＶｄｄ（例えばα＝１．７、αＶｄｄ＝４．２５Ｖ）に設定する。ここで、信号ＢＬＣＬＡＭＰに例えば（０．４５Ｖ＋Ｖｔｈ）＋Ｖｆｉｘの電圧を印加する。ＴＤＣのノードはビット線が０．４５Ｖ＋Ｖｆｉｘより低い場合、ローレベル（Ｖｆｉｘ（例えば１．６Ｖ））となり、ビット線が０．４５Ｖより高い場合、ハイレベル（αＶｄｄ（例えば４．２５Ｖ））のままとなる。信号ＢＬＣＬＡＭＰ＝Ｖｔｒ（例えば０．１Ｖ＋Ｖｔｈ）とした後、信号ＢＯＯＳＴをハイレベルからローレベルにする。ここで、ＴＤＣはローレベルの場合、Ｖｆｉｘ（例えば１．６Ｖ）から下がるが、信号ＢＬＣＬＡＭＰ＝Ｖｔｒ（例えば０．１Ｖ＋Ｖｔｈ）としているため、０．１Ｖよりは下がらない。ＴＤＣはハイレベルの場合、αＶｄｄ（例えば４．２５Ｖ）からＶｄｄとなる。ここで、信号ＢＬＣ１＝Ｖｓｇ（Ｖｄｄ＋Ｖｔｈ）として、ＴＤＣの電位をＰＤＣに読み込む。セルの閾値電圧が、ＡＲ又はＢＲ，ＣＲ、ＤＲのレベルより低い場合、ＰＤＣはローレベル、高い場合、ＰＤＣはハイレベルとなり、読み出しが行なわれる。
【００５１】
（プログラム）
図１１は、第１ページのプログラム動作、図１２は、第２ページのプログラム動作のフローチャートを示している。
【００５２】
プログラム動作は、先ず、アドレスを指定し、図３、図４示す２ページを選択する。本メモリは、２ページのうち、第１ページ、第２ページの順でしか、プログラムすることができない。したがって、初めにアドレスで第１ページを選択する。
【００５３】
図１１に示す第１ページのプログラム動作において、ホスト１１から書き込みデータが入力されると、これらデータは全てのデータ記憶回路１０内のＳＤＣ（図８に示す）に記憶される（Ｓ１１）。ホスト１１から書き込みコマンドが入力されると、全てのデータ記憶回路１０内のＳＤＣのデータがＰＤＣに転送される（Ｓ１２）。ホスト１１からデータ“１”（書き込みを行なわない）が入力された場合、データ記憶回路１０において、ＰＤＣのノードＮ１ａはハイレベルとなり、データ“０”（書き込みを行なう）が入力された場合、ローレベルとなる。以後、ＰＤＣのデータはノードＮ１ａの電位、ＳＤＣのデータはノードＮ２ａの電位とする。
【００５４】
（プログラム動作）（Ｓ１３）
図８中の信号ＢＬＣ１をＶｄｄ＋Ｖｔｈに設定すると、ＰＤＣにデータ“１”（書き込みを行なわない）が記憶されている時、ビット線がＶｄｄとなり、データ“０”（書き込みを行なう）が記憶されている時、ビット線がＶｓｓとなる。また、図３に示す構成の場合、選択されたワード線に接続され、非選択ページの（ビット線が非選択である）セルは書き込まれてはならない。このため、これらのセルに接続されているビット線もデータ“１”が入力されているセルと同じようにＶｄｄとする。
【００５５】
ここで、選択されているブロックのセレクト線ＳＧ１をＶｄｄ、選択ワード線にＶｐｇｍ（２０Ｖ）、非選択ワード線にＶｐａｓｓ（１０Ｖ）を印加すると、ビット線がＶｓｓになっている場合、セルのチャネルがＶｓｓ、ワード線がＶｐｇｍとなるので書き込みが行なわれる。一方、ビット線がＶｄｄになっている場合、セルのチャネルがＶｓｓでなく、カップリングによりＶｐｇｍ／２程度となるためプログラムが行われない。
【００５６】
第１ページの書き込みにより、メモリセルのデータはデータ“０”とデータ“１”になる。
【００５７】
（プログラムベリファイリード）（Ｓ１４）
プログラム動作において、メモリセルは、閾値電圧の低いレベルより書き込まれる。このため、第１ページではＡＶレベルでプログラムベリファイを行なう。プログラムベリファイ動作は、上記リード動作とほぼ同様である。
【００５８】
先ず、選択されているセルのウェル、ソース線、非選択ビット線、非選択ブロックの選択ゲートに制御信号及び制御電圧発生回路７より、電圧Ｖｆｉｘ（例えば１．６Ｖ）を発生し印加する。この状態において、選択ワード線にリードの時の電位Ｖｆｉｘ＋ＡＲより少し高い電位Ｖｆｉｘ＋ＡＶ（例えばＡＲ＝−０．４ＶとするとＶｆｉｘ＋ＡＶは１．２Ｖ）を印加する。選択ワード線にベリファイリードの時の電位Ｖｆｉｘ＋ＡＶ、例えば１．２Ｖを印加することにより、見かけ上、セルのゲートに負電位が印加されるようにできる。これと同時に、選択ブロックの非選択ワード線にＶｒｅａｄ＋Ｖｆｉｘ、選択ブロックの選択ゲートＳＧＤにＶｓｇ（Ｖｄｄ＋Ｖｔｈ）＋Ｖｆｉｘ、ＳＧＳにＶｆｉｘを印加する。ソース線ＳＲＣには、Ｖｆｉｘを印加し、セルのウェルにもＶｆｉｘを印加する。
【００５９】
次に、図８に示すデータ記憶回路１０の信号ＶＰＲＥをＶｄｄ（例えば２．５Ｖ）に設定し、信号ＢＬＰＲＥをＶｓｇ（Ｖｄｄ＋Ｖｔｈ）、信号ＢＬＣＬＡＭＰを例えば（０．６Ｖ＋Ｖｔｈ）＋Ｖｆｉｘに一旦設定し、ビット線を例えば０．６Ｖ＋Ｖｆｉｘ＝２．２Ｖにプリチャージする。
【００６０】
次に、セルのソース側のセレクト線ＳＧＳをＶｓｇ（Ｖｄｄ＋Ｖｔｈ）＋Ｖｆｉｘに設定する。ウェル及びソースがＶｆｉｘとなっているため、閾値電圧がＡＶ（例えばＡＶ＝−０．４Ｖ）より高いセルはオフする。このため、ビット線はハイレベル（例えば２．２Ｖ）のままである。また、閾値電圧がＡＶより低いセルはオンする。このため、ビット線は放電され、ソースと同電位、つまりＶｆｉｘ（例えば１．６Ｖ）となる。このビット線の放電時間中に、一旦信号ＤＴＧ＝Ｖｓｇ（Ｖｄｄ＋Ｖｔｈ）として、ＰＤＣをＤＤＣにコピーする。
【００６１】
次いで、データ記憶回路１０の信号ＢＬＰＲＥを一旦Ｖｓｇ（Ｖｄｄ＋Ｖｔｈ）として、ＴＤＣのノードをＶｄｄにプリチャージする。この後、信号ＢＯＯＳＴをローレベルからハイレベルとし、ＴＤＣ＝αＶｄｄ（例えばα＝１．７、αＶｄｄ＝４．２５Ｖ）に設定する。ここで、信号ＢＬＣＬＡＭＰの電位を例えば（０．４５Ｖ＋Ｖｔｈ）＋Ｖｆｉｘに設定する。ＴＤＣのノードはビット線が０．４５Ｖ＋Ｖｆｉｘより低い場合ローレベル（Ｖｆｉｘ（例えば１．６Ｖ））となり、ビット線が０．４５Ｖより高い場合ハイレベルのまま（αＶｄｄ（例えば４．２５Ｖ））となる。信号ＢＬＣＬＡＭＰ＝Ｖｔｒ（例えば０．１Ｖ＋Ｖｔｈ）とした後、信号ＢＯＯＳＴをハイレベルからローレベルに設定する。ここで、信号ＢＯＯＳＴがローレベルの場合、ＴＤＣはＶｆｉｘ（例えば１．６Ｖ）から下がる。しかし、信号ＢＬＣＬＡＭＰ＝Ｖｔｒ（例えば０．１Ｖ＋Ｖｔｈ）に設定しているため、ＴＤＣは０．１Ｖよりは下がらない。また、信号ＢＯＯＳＴがハイレベルの場合、ＴＤＣのノードは、（αＶｄｄ（例えば４．２５Ｖ））からＶｄｄとなる。ここで、信号ＢＬＣ１＝Ｖｓｇ（Ｖｄｄ＋Ｖｔｈ）として、ＴＤＣの電位をＰＤＣに読み込む。
【００６２】
次に、信号ＶＰＲＥ＝Ｖｄｄ、信号ＲＥＧ＝Ｖｓｇ（Ｖｄｄ＋Ｖｔｈ）として、ＤＤＣがハイレベル（非書き込み）の場合、ＴＤＣを強制的にハイレベルとする。しかし、ＤＤＣがローレベル（非書き込み）の場合、ＴＤＣの値は変わらない。ここで、信号ＢＬＣ１＝Ｖｓｇ（Ｖｄｄ＋Ｖｔｈ）として、ＴＤＣの電位をＰＤＣに読み込む。したがって、元々ＰＤＣ＝ローレベル（書き込み）の場合で、セルの閾値電圧が、レベルＡＶより低いと、ＰＤＣは再びローレベル（書き込み）となり、高い場合、ＰＤＣはハイレベルとなり、次回のプログラムループより非書き込みとなる。
【００６３】
また、元々ＰＤＣ＝ハイレベル（非書き込み）の場合、ＰＤＣ＝ハイレベルとなり、次回のプログラムループも非書き込みとなる。この動作を全データ記憶回路１０のＰＤＣがハイレベルとなるまで繰り返す（Ｓ１５−Ｓ１３）。
【００６４】
（第２ページプログラム）
（第２ページ書き込み動作）
図１２に示す第２ページの書き込み動作において、先ず、書き込みデータを外部より入力し、全てのデータ記憶回路１０内のＳＤＣに記憶する（Ｓ２１）。この後、第１ページの書き込みにおいて、書き込まれたデータを確認するため、読み出しレベルＡＲ（例えば負電圧）をワード線に設定して、メモリセルのデータが読み出される（Ｓ２２）。この読み出し動作は、前述した通りである。セルの閾値電圧が、ワード線の電位ＡＲより低い場合、ＰＤＣはローレベル、高い場合、ＰＤＣはハイレベルとなる。
【００６５】
この後、データキャッシュが設定される（Ｓ２３）。すなわち、第２ページの書き込みは、図９（ｂ）に示すように行なわれる。
【００６６】
第１ページの書き込みにおいて、データ“１”の場合で、第２ページの書き込みにおいて、データ“１”の場合、第２ページ書き込みが行なわれない。
【００６７】
第１ページの書き込みにおいて、データ“１”の場合で、第２ページの書き込みにおいて、データ“０”の場合、第２ページ書き込みにより、メモリセルのデータが“２”に設定される。
【００６８】
第１ページの書き込みにおいて、データ“０”の場合で、第２ページの書き込みにおいて、データ“０”の場合、第２ページ書き込みにより、メモリセルのデータが“３”に設定される。
【００６９】
第１ページの書き込みにおいて、データ“０”の場合で、第２ページの書き込みにおいて、データ“１”の場合、第２ページ書き込みにより、セルのデータが“４”に設定される。
【００７０】
この動作を行なうため、データキャッシュが設定される。
【００７１】
すなわち、メモリセルのデータを“０”にする場合（第１ページにおいてデータ“１”、第２ページはデータ“１”）、ＰＤＣはハイレベル、ＤＤＣはローレベル、ＳＤＣはハイレベルに設定される。
【００７２】
メモリセルのデータを“２”にする場合（第１ページにおいてデータ“１”、第２ページはデータ“０”）、ＰＤＣはローレベル、ＤＤＣはハイレベル、ＳＤＣはハイレベルに設定される。
【００７３】
メモリセルのデータを“３”にする場合（第１ページにおいてデータ“０”、第２ページはデータ“０”）、ＰＤＣはローレベル、ＤＤＣはハイレベル、ＳＤＣはローレベルに設定される。
【００７４】
メモリセルのデータを“４”にする場合（第１ページではデータ“０”、第２ページはデータ“１”）、ＰＤＣはローレベル、ＤＤＣはローレベル、ＳＤＣはローレベルに設定される。
【００７５】
ＰＤＣ，ＤＤＣ，ＳＤＣの各データは、信号ＢＬＣ１，ＢＬＣ２，ＤＴＧ，ＲＥＧ、ＶＰＲＥを所定の順序で供給し、ＰＤＣ，ＤＤＣ，ＳＤＣ，ＴＤＣのデータを転送することにより設定される。尚、具体的な動作については省略する。
【００７６】
（プログラム動作）（Ｓ２４）
プログラム動作は、第１ページのプログラム動作と全く同じである。ＰＤＣにデータ“１”が記憶されている場合、書き込みが行なわれず、データ“０”が記憶されている場合、書き込みが行なわれる。
【００７７】
（ベリファイ動作）（Ｓ２５，Ｓ２６，Ｓ２７）
プログラムベリファイリードは、リード動作と同じである。しかし、ベリファイレベルＢＶ、ＣＶ、ＤＶは、リードレベルにマージンが付加され、リードレベルより若干高いレベルに設定されている。このベリファイレベルＢＶ、ＣＶ、ＤＶを用いてベリファイリードを行う。
【００７８】
ベリファイ動作は、例えばベリファイレベルＢＶ、ＣＶ、ＤＶの順に実行される。
【００７９】
すなわち、先ず、ワード線にベリファイレベルＢＶが設定され、メモリセルの閾値電圧がベリファイレベルＢＶに達しているかどうか検証される（Ｓ２５）。この結果、メモリセルの閾値電圧がベリファイレベルに達している場合、ＰＤＣがハイレベルとなり、書き込みが行なわれなくなる。一方、ベリファイリードレベルに達していない場合、ＰＤＣがローレベルとなり、次回のプログラムで書き込みが行なわれる。
【００８０】
この後、ワード線にベリファイレベルＣＶが設定され、メモリセルの閾値電圧がベリファイレベルＣＶに達しているかどうか検証される（Ｓ２６）。この結果、メモリセルの閾値電圧がベリファイレベルに達している場合、ＰＤＣがハイレベルとなり、書き込みが行なわれなくなる。一方、ベリファイリードレベルに達していない場合、ＰＤＣがローレベルとなり、次回のプログラムで書き込みが行なわれる。
【００８１】
次いで、ワード線にベリファイレベルＤＶが設定され、メモリセルの閾値電圧がベリファイレベルＤＶに達しているかどうか検証される（Ｓ２７）。この結果、メモリセルの閾値電圧がベリファイレベルに達している場合、ＰＤＣがハイレベルとなり、書き込みが行なわれなくなる。一方、ベリファイリードレベルに達していない場合、ＰＤＣがローレベルとなり、次回のプログラムで書き込みが行なわれる。
【００８２】
第２ページの書き込み時、レベルＢＶのプログラムベリファイにおいて、上記動作を行なうと、レベルＣＶ及びＤＶに書き込むセルが、レベルＢＶのプログラムベリファイで、非書き込みとなってしまう。このため、例えば、レベルＣＶ及びＤＶの書き込みの場合、図８に示すノードＮ２ａをローレベルとし、レベルＢＶの書き込みの場合、ノードＮ２ａをハイレベルとする。この状態において、信号ＲＥＧ＝Ｖｓｇとし、非書き込みの場合、ＴＤＣを強制的にハイレベルとする動作の前に、信号ＢＬＣ２＝Ｖｔｒ（０．１Ｖ＋Ｖｔｈ）として、レベルＣＶ及びＤＶの書き込みの場合は、ＴＤＣを強制的にローレベルとしておく。これにより、レベルＢＶでのプログラムベリファイにおいて書き込み完了ならないようにする。
【００８３】
また、第２ページの書き込みにおいて、レベルＣＶのプログラムベリファイでは、上記の動作を行なうと、レベルＤＶへの書き込みセルが、レベルＣＶのプログラムベリファイにおいて、非書き込みとなってしまう。このため、例えば、レベルＣＶの書き込みの場合、図８に示すノードＮ１ａをローレベル、これ以外の場合、ノードＮ１ａをローレベルとする。この状態において、信号ＲＥＧ＝Ｖｓｇとする。さらに、非書き込みの場合、ＴＤＣを強制的にハイレベルとする動作の前に、信号ＢＬＣ１＝Ｖｔｒ（０．１Ｖ＋Ｖｔｈ）とする。レベルＤＶの書き込みの場合、ＴＤＣを強制的にハイレベルにしておき、レベルＤＶにおいてプログラムベリファイで書き込み完了とならないようにする。ＰＤＣがローレベルの場合、再び書き込み動作を行ない、全てのデータ記憶回路１０のＰＤＣがハイレベルになるまでこのプログラム動作とベリファイ動作を繰り返す（Ｓ２８−Ｓ２４）。
【００８４】
（消去動作）
イレーズ動作は、前述したように、図３、図４に破線で示すブロック単位で行う。消去後、セルの閾値電圧は、図９（ｃ）に示すように、メモリセルのデータ“０”となる。消去後、セルの閾値電圧分布は広がっている。このため、ＥＡＳＢ（Erased Area Self Boost）書き込み方法の場合、消去後、セルの閾値電圧を浅くする。先ず、このＥＡＳＢ書き込み方法について説明する。この書き込み方法は、必ずソース側から書き込む。
【００８５】
図１３は、ＥＡＳＢ書き込み方法を示す図である。図１３に示すように、先ず、ビット線に書き込みの場合Ｖｓｓ、非書き込みの場合Ｖｄｄにする。次に、例えばワード線ＷＬ７のセルを書き込む場合、ワード線ＷＬ０〜４をＶｐａｓｓ、ワード線ＷＬ５をＶｓｓ、ワード線ＷＬ６をＶｄｄ、ワード線ＷＬ７をＶｐｇｍ、ワード線ＷＬ８〜３１をＶｐａｓｓに設定する。このとき、書き込みの場合、ワード線ＷＬ７のゲートがＶｐｇｍ、チャネルがＶｓｓであるため書き込まれる。非書き込みの場合、チャネルは、例えばＶｐａｓｓ／２となるが、書き込まれたセルの数が多いと、チャネルはブースとされにくくなる。ところが、ＥＡＳＢ書き込み方法は、必ずソース側から書き込まれる。したがって、ワード線ＷＬ５をＶｓｓとしてブースとすると、ワード線ＷＬ８〜３１のセルは消去されているため、チャネルはブーストされ書き込まれなくなる。このように、既に書き込まれたセルにブースとした電荷が移動しないようにしなくてはならず、ワード線ＷＬ５に接続されるセルが消去状態の場合で、閾値電圧が深いとオフしなくなってしまう。したがって、消去セルを浅くする必要がある。
【００８６】
したがって、消去動作後、ブロック内の全ワード線を選択して、プログラム及びプログラムベリファイリードを行ない、図９（ｃ）に示すように、レベル“ｚ”まで書き込み動作を行なう。この時のプログラム及びプログラムベリファイリード動作は、全ワード線を選択状態とし、ベリファイ時の選択ワード線の電位をｚ＋Ｖｆｉｘ（例えば０Ｖ）とし、他の電位は、通常のプログラム及びプログラムベリファイリードと全く同様に設定して行なう。  
（第１の実施形態）
図１、図１４（ａ）（ｂ）は、第１の実施形態に係り、例えば第２ページ書き込み後の第１ページの読み出しシーケンスを示している。第２ページ書き込み後の第１ページの読み出しは、読み出しレベルとして、図９（ｂ）に示すように、選択ワード線に電位ＣＲを供給する。図１、図１４（ａ）（ｂ）を参照して第１ページの読み出し動作について説明する。
【００８７】
第１の実施形態は、図１４（ａ）に示すように、読み出しレベル（ＣＲ）が読み出し対象の閾値電圧分布内に位置する場合を示している。この場合、先ず、図１４（ａ）に示すように、読み出しレベル（ＣＲ）を設定し、この読み出しレベル（ＣＲ）により１ページのメモリセル（２〜４ｋＢ）からデータが読み出される（Ｓ３１）。この後、読み出しレベル（ＣＲ）から一定レベル（ｘ）を引いた読み出しレベル（ＣＲ−ｘ）で、１ページのデータが読み出される（Ｓ３２）。例えばホスト１１は、（ＣＲ）及び（ＣＲ−ｘ）の両レベル間に存在するセルの数を計数する（Ｓ３３）。例えば前記データ記憶回路１０は、（ＣＲ）及び（ＣＲ−ｘ）の両レベルで読み出されたデータの排他的論理和（ＸＯＲ）をとり、ホスト１１に供給する。ホスト１１は、供給されたデータのうち、データ“１”の数を計数することにより、両レベル間に存在するセルの数を求める。次いで、ホスト１１により計数値が規定値以下かどうかを判別する（Ｓ３４）。この結果、セルの数が規定数以内である場合、レベル（ＣＲ）で読み出したデータを読み出し結果とする（Ｓ３５）。
【００８８】
一方、計数値が規定値以上である場合、読み出しレベルを下げて、再度読み出し動作を行う（Ｓ３６、Ｓ３１、Ｓ３２）。例えば、読み出しレベルＣＲをｘ下げた場合、図１４（ｂ）に示すように、読み出しレベル（ＣＲ−ｘ）と（ＣＲ−２ｘ）の間に存在するセルの数を数えることになり、この値が規定値以下かどうかを判別する（Ｓ３３，Ｓ３４）。この結果、セルの数が規定数以内である場合、このレベルで読み出したデータを読み出し結果とする（Ｓ３５）。
【００８９】
このとき、読み出しレベルの下げる値を、先の読み出しで使用した（ｘ）と同じ値とすると、ステップＳ３１における読み出しレベルＣＲは、ステップＳ３２において読み出しレベル（ＣＲ−ｘ）で読み出したデータであり、既に読み出されている。このため、読み出しレベル（ＣＲ−ｘ）により読み出す必要がない。したがって、ステップＳ３１を省略し、読み出し回数を削減することが可能である。
【００９０】
図１５は、上記読み出し動作におけるデータ記憶回路１０の具体的な動作を示すスローチャートである。図１５において、図１と同一部分には同一符号を付している。
【００９１】
先ず、選択ワード線に読み出しレベル（ＣＲ）を印加し、メモリセルのデータを読み出す。この読み出されたデータはＰＤＣにラッチされ、その後、ＤＤＣ０にコピーされる（Ｓ３１）。この後、ＰＤＣのデータがＳＤＣにコピーされる。次いで、選択ワード線に読み出しレベル（ＣＲ−ｘ）を印加し、メモリセルのデータを読み出す。この読み出されたデータはＰＤＣにラッチされ、その後、ＤＤＣ１にコピーされる（Ｓ３２）。
【００９２】
次に、ＤＤＣ０のデータとＤＤＣ１のデータの排他的論理和（ＸＯＲ）をとる（Ｓ３３−１）。すなわち、信号ＶＰＲＥをＶｓｓ，信号ＢＬＰＲＥをＶｄｄとしてＴＤＣをＶｓｓとする。この後、信号ＶＰＲＥをＶｄｄ，信号ＲＥＧ０をハイレベルとしてＤＤＣ０のデータをＴＤＣにコピーする。次ぎに、信号ＶＰＲＥをＶｓｓ、信号ＲＥＧ１をハイレベルとしてＤＤＣ１のデータが“１”の場合、ＴＤＣを強制的にＶｓｓとする。この後、ＴＤＣのデータをＰＤＣに転送する。この結果、ＤＤＣ０、ＤＤＣ１、ＰＤＣのデータは次のようになる。
【００９３】
ＤＤＣ０：１  １  ０  ０
ＤＤＣ１：１  ０  １  ０
ＰＤＣ  ：０  １  ０  ０
次に、信号ＶＰＲＥをＶｓｓ、信号ＢＬＰＲＥをＶｄｄとしてＴＤＣをＶｓｓとする。この後、信号ＶＰＲＥをＶｄｄ、信号ＲＥＧ１をハイレベルとしてＤＤＣ１のデータをＴＤＣにコピーする。さらに、信号ＶＰＲＥをＶｓｓ、信号ＲＥＧ０をハイレベルとし、ＤＤＣ１のデータが“１”の場合、ＴＤＣを強制的にＶｓｓとする。この結果、ＤＤＣ０、ＤＤＣ１、ＰＤＣ、ＴＤＣのデータは次のようになる。
【００９４】
ＤＤＣ０：１  １  ０  ０
ＤＤＣ１：１  ０  １  ０
ＰＤＣ  ：０  １  ０  ０
ＴＤＣ  ：０  ０  １  ０
次いで、信号ＤＴＧ０を一旦ハイレベルとし、ＰＤＣのデータをＤＤＣ０に転送した後、信号ＶＰＲＥをＶｄｄ、信号ＲＥＧ０をハイレベルとし、ＤＤＣ０が“１”の場合、ＴＤＣを強制的にＶｄｄとする。この後、ＴＤＣのデータをＰＤＣに転送する。この結果、次のように、ＰＤＣに、ＤＤＣ０とＤＤＣ１のデータがＸＯＲされたデータがラッチされる。
【００９５】
ＤＤＣ０：０  １  ０  ０
ＤＤＣ１：１  ０  １  ０
ＰＤＣ  ：０  １  １  ０
この後、ホスト１１において、ＸＯＲの結果より、データ“１”の数を計数する（Ｓ３３−２）。すなわち、信号ＤＴＧ０をハイレベルとしてＰＤＣのデータをＤＤＣ０にコピーし、ＳＤＣのデータをＰＤＣにコピーし、ＤＤＣ０のデータをＳＤＣにコピーする。このＳＤＣのデータをホスト１１に出力する。ホスト１１は、各データ記憶回路から供給されるデータ“１”の数を計数する。
【００９６】
次いで、ホストにおいて、計数値が規定値以下かどうかを判別する（Ｓ３４）。この結果、規定値以下である場合、読み出しレベル（ＣＲ）で読んだデータがＰＤＣにラッチされているため、ＰＤＣのデータをＳＤＣにコピーし、ＳＤＣからホスト１１に出力する（Ｓ３５）。
【００９７】
また、ステップＳ３４において、計数値が規定値以上である場合、読み出しレベルを下げて（Ｓ３６）、再度読み出し動作が行なわれる。ここで、前に読み出しレベル（ＣＲ−ｘ）で読んだデータを用いる場合、読み出しレベル（ＣＲ−ｘ）で読んだデータがＤＤＣ１にあるため、ＤＤＣ１のデータをＰＤＣにコピーし、（ＣＲ−ｘ）で読んだデータを（ＣＲ）で読んだデータとする。この場合、図１５に破線で示すように、ステップＳ３１を省略することができる。
【００９８】
上記第１の実施形態によれば、読み出しレベル（ＣＲ），（ＣＲ−ｘ）と変えてデータを読み出し、両読み出しレベル間に存在するセルの数を計数し、この計数値が規定値以下である場合、読み出しレベル（ＣＲ）で読み出したデータを正規の読み出しデータとして出力している。このため、隣接する閾値電圧分布間のマージンが、例えば経時変化により狭まった場合においても各閾値分布のデータを正確に読み出すことが可能である。
【００９９】
尚、上記第１の実施形態において、読み出しレベル（ＣＲ）から一定レベル（ｘ）を引いた読み出しレベル（ＣＲ−ｘ）で読み出した。しかし、これに限定されるものではなく、例えば読み出しレベル（ＣＲ）に（ｘ）を加えた読み出しレベル（ＣＲ＋ｘ）で読み出し、読み出しレベル（ＣＲ）と（ＣＲ＋ｘ）間に存在するセルの数を計数し、この計数値と基準値とを比較することも可能である。
【０１００】
また、上記第１の実施形態において、セル数の計数、及び計数値と基準値の比較はホスト１１において行なったが、これに限定されるものではなく、例えば制御信号及び制御電圧発生回路７により行なうことも可能である。
【０１０１】
（第２の実施形態）
図１６（ａ）（ｂ）、図１７は、第２の実施形態に係わり、メモリセルの第１ページの読み出しシーケンスを示している。尚、図１７において、図１と同一部分には同一符号を付している。
【０１０２】
図１６（ａ）に示すように、読み出しレベル（ＣＲ）が読み出し対象の閾値電圧分布より低い閾値電圧分布に位置している場合、この読み出しレベル（ＣＲ）からさらに一定レベル（ｘ）だけ下げると、規定数が増加してしまう。このため、第２の実施形態では、このような場合、読み出しレベルを上昇して再読出しを行なう。
【０１０３】
すなわち、図１６（ｂ）、図１７に示すように、先ず、第１の実施形態と同様にして、読み出しレベル（ＣＲ）及び（ＣＲ−ｘ）により、１ページのメモリセル（２〜４ｋＢ）からデータを読み出す（Ｓ３１、Ｓ３２）。この読み出しレベル（ＣＲ）と（ＣＲ−ｘ）間に存在するセルの数を計数する（Ｓ３３）。この計数値が規定値以下であるかどうかが判別される（Ｓ３４）。この結果、規定値以下である場合、読み出しレベル（ＣＲ）で読み出したデータが正規のデータとして出力される。
【０１０４】
一方、判別結果が規定値以上である場合、読み出しレベル（ＣＲ）に一定レベル（ｙ）を加えた読み出しレベル（ＣＲ＋ｙ）で読み出し動作が行なわれ（Ｓ４１）、既に読み出されている読み出しレベル（ＣＲ）と、読み出しレベル（ＣＲ＋ｙ）との間に存在するメモリセルの数が計数される（Ｓ４２）。この後、（（ＣＲ−ｘ）以上、（ＣＲ）以下のセルの数）＜（（ＣＲ）以上、（ＣＲ＋ｙ）以下のセルの数）か、どうかが判別される（Ｓ４３）。この結果、この条件を満たす場合、読み出しレベルを下げて（Ｓ４５）、再度読み出し動作が行なわれる（Ｓ３１）。
【０１０５】
このとき、一定レベル（ｘ）と（ｙ）が同一の電位差を有するレベルであると仮定した場合、先に読み出しレベル（ＣＲ−ｘ）で読んだデータを（ＣＲ）で読んだデータとすることにより、図１７に破線で示すように、読み出しレベル（ＣＲ）での読み出し動作（ステップＳ３１）を省略できる。また、先に読み出しレベル（ＣＲ）で読んだデータを（ＣＲ＋ｙ）で読んだデータとすることにより、破線で示すように、読み出しレベル（ＣＲ＋ｙ）による読み出し動作（ステップＳ４１）を省略できる。
【０１０６】
また、ステップＳ４３において、条件を満足しない場合、すなわち、（ＣＲ−ｘ以上、ＣＲ以下のセルの数）＞（ＣＲ以上、ＣＲ＋ｙ以下のセルの数）の場合、読み出しレベルを例えば一定レベル（ｙ）だけ上げて再度読み出し動作を行う（Ｓ４４〜Ｓ３１）。
【０１０７】
このとき、先に読み出しレベル（ＣＲ＋ｙ）で読んだデータを（ＣＲ）で読んだデータとすることにより、読み出しレベル（ＣＲ）での読み出し動作（ステップＳ３１）を省略することが可能であり、先に読み出しレベル（ＣＲ）で読んだデータを（ＣＲ−ｘ）で読んだデータとすることにより、読み出しレベル（ＣＲ−ｘ）による読み出し動作（ステップＳ３２）を省略することができる。したがって、この場合、図１７に破線で示すように、ステップＳ４４からＳ３３に制御が移行される。さらに、この場合、ステップＳ４４において、読み出しレベル（ＣＲ）に（＋ｙ）されているため、破線で示すように、ステップＳ４１も省略できる。
【０１０８】
上記動作を繰り返し、ステップＳ３４の条件を満足した場合、正規のデータが読み出される。
【０１０９】
また、上記動作を繰り返し行った場合、収束しないことがある。この場合、繰り返し回数に最大値を設定し、繰り返し回数が最大値に達した場合、終了とする。
【０１１０】
あるいは、上記動作を繰り返す毎に、一定レベル（ｘ）及び（ｙ）の値を小さくすることも可能である。
【０１１１】
第２の実施形態によれば、読み出しレベルを上げ下げすることにより、隣接する閾値電圧分布の間の最適値に設定することができる。このため、隣接する閾値電圧分布の間のマージンが少ない場合においても、確実にデータを読み出すことが可能である。
【０１１２】
（第３の実施形態）
図１８（ａ）（ｂ）（ｃ）、図１９は、第３の実施形態に係る第１ページの読み出しシーケンスを示している。第３の実施形態は、第１の実施形態の変形例である。
【０１１３】
ＮＡＮＤ型フラッシュメモリは、２〜４ｋＢのセルを同時に書き込むが、それぞれのレベルに書き込まれているデータは、同じ割合ではない。例えば１セルに４ビットのデータを１６レベルにより記憶する場合で、書き込み単位が４ｋＢ＝３２ｋビットである場合において、各レベル（閾値電圧分布）に均等にデータが存在する場合、３２ｋビット／１６＝２ｋビットとなる。しかし、書き込みデータによっては、１０ビット以下或いは０ビットの場合もある。
【０１１４】
この場合、図１８（ａ）に示すように、第１の実施形態を用いて読み出しレベル（ＣＲ）及び（ＣＲ−ｘ）で読み出し、これら読み出しレベルの間に存在するセルの数を計数した場合、計数値は規定値以下となる。このため、繰り返し読み出しは行なわれない。
【０１１５】
第３の実施形態は、より正確に判断するため、図１８（ｂ）（ｃ）に示すように、読み出しレベル（ＣＲ）と（ＣＲ−ｘ）、さらに読み出しレベル（ＣＲ）に一定レベル（ｚ）を加えた（ＣＲ＋ｚ）によりセルからデータを読み出し、これら読み出しレベル（ＣＲ−ｘ）と（ＣＲ＋ｚ）の間に存在するセル数の比と規定値とを比較する。一定レベル（ｚ）は、例えば（ｘ）、（ｙ）より大きく、読み出しレベル（ＣＲ）と（ＣＲ＋ｚ）間に存在するセルの数が、閾値電圧分布内に存在するセルの大半が含まれるように設定する。
【０１１６】
図１９に示すシーケンスにおいて、第１の実施形態と同一部分には同一符号を付している。ステップＳ３１、Ｓ３２により、読み出しレベル（ＣＲ）と（ＣＲ−ｘ）によりセルからデータを読み出た後、読み出しレベル（ＣＲ）に一定値（ｚ）＞（ｘ）を加えた読み出しレベル（ＣＲ＋ｚ）によりセルからデータを読み出す（Ｓ３２−１）。この後、例えばホスト１１において、読み出しレベル（ＣＲ）と（ＣＲ−ｘ）間に存在するセルの数を計数するとともに、読み出しレベル（ＣＲ）と（ＣＲ＋ｚ）間に存在するセルの数を計数する（Ｓ３３−３）。次いで、（ＣＲ−ｘ以上、ＣＲ以下のセルの数）／（ＣＲ以上、ＣＲ＋ｚ以下のセルの数）が規定値以下かどうか判別される（Ｓ３４−１）。この結果、規定値以下である場合、読み出しレベル（ＣＲ）で読み出されたデータが正規のデータとして出力される。一方、判別の結果、規定値以上である場合、読み出しレベル（ＣＲ）を一定値（ｘ）だけ下げて上記読み出し動作が繰り返される（Ｓ３６）。
【０１１７】
上記第３の実施形態によれば、読み出しレベル（ＣＲ）と（ＣＲ−ｘ）間に存在するセルの数を計数するとともに、読み出しレベル（ＣＲ）と（ＣＲ＋ｚ）間に存在するセルの数を計数し、（ＣＲ−ｘ以上、ＣＲ以下のセルの数）／（ＣＲ以上、ＣＲ＋ｚ以下のセルの数）が規定値以下かどうか判別することにより、読み出しレベルを定めている。このため、セルの各レベル（閾値電圧分布）に均等にデータが存在しない場合においても、正確にメモリセルのデータを読み出すことができる。
【０１１８】
（第４の実施形態）
図２０は、第４の実施形態に係る第１ページの読み出しシーケンスを示している。第４の実施形態は、上記第２、第３の実施形態の変形例であり、図１７、図１９と同一部分には同一符号を付している。
【０１１９】
図２０に示すように、第４の実施形態は、第３の実施形態と同様にして、読み出しレベル（ＣＲ）と（ＣＲ−ｘ）間に存在するセルの数を計数するとともに、読み出しレベル（ＣＲ）と（ＣＲ＋ｚ）間に存在するセルの数を計数し、（ＣＲ−ｘ以上、ＣＲ以下のセルの数）／（ＣＲ以上、ＣＲ＋ｚ以下のセルの数）が規定値以下かどうか判別する（ステップＳ３１〜Ｓ３４−１）。
【０１２０】
この結果、規定値以下ではない場合、第２の実施形態と同様にして、読み出しレベル（ＣＲ＋ｙ）でデータを読み出し、（ＣＲ−ｘ以上、ＣＲ以下のセル）＜（ＣＲ以上、ＣＲ＋ｙ以下のセル）の条件を満足するかどうか判別する（ステップＳ４２，Ｓ４３）。この判別の結果、条件を満足する場合、読み出しレベルを下げて読み出す（ステップＳ３１又はＳ３２へ移行）。また、判別の結果条件を満足しない場合、読み出しレベルを上げて読み出す（ステップＳ４４を経てＳ３１又はＳ３２−１へ移行）。
【０１２１】
第４の実施形態によれば、読み出しレベルが隣接する両閾値電圧分布のうち、低い側にある場合で、さらに、閾値電圧分布の割合が異なる場合においても、メモリセルのデータを確実に読み出すことができる。
【０１２２】
尚、第１乃至第４の実施形態において、計数値や、計数値の比と規定値とを比較した後、読み出しレベルを、判断時に使用した（ｘ）又は（ｙ）と同じレベルだけ変更して再度読み出しを実行していた。しかし、これに限定されるものではない。
【０１２３】
図２１は、第１乃至第４の実施形態の変形例を示すものであり、第４の実施形態を例として示している。この変形例の場合、図２１のステップＳ４４−１、Ｓ４４−２に示すように、読み出しレベルＣＲを設定して再読出しされる。すなわち、ステップＳ４４−１において、読み出しレベルＣＲはＣＲ＋αに設定され、ステップＳ４４−２において、読み出しレベルＣＲは、ＣＲ−αに設定される。このαの値は、例えばｘ以下の値であり、再読み出し毎に小さく設定される。
【０１２４】
このように、読み出しレベルＣＲに加算又は減算する値、即ちαの値を徐々に小さくして再読み出し動作を繰り返すことにより、最適な読み出しレベルを設定することが可能である。しかし、この例の場合も、繰り返し再読み出しを行なった際、収束しない場合がある。このような場合は、繰り返し回数に最大値を設定し、再読み出し回数が最大値に達した場合、終了するようにすればよい。
【０１２５】
また、第２乃至第４の実施形態においても、上記第１の実施形態と同様に、セル数の計数、及び計数値と基準値の比較はホスト１１に限定されるものではなく、例えば制御信号及び制御電圧発生回路７により行なうことも可能である。
【０１２６】
（第５の実施形態）
図２２は、第１の実施形態の第１の変形例を示しており、図１５と同一部分には同一符号を付している。
【０１２７】
上記第１の実施形態は、読み出しレベル（ＣＲ）で読み出したデータと、読み出しレベル（ＣＲ−ｘ）で読み出したデータとのＸＯＲをＳＤＣからホスト１１に出力し、データ“１”の数を計数した。しかし、１ビット〜数ビットずつ出力し、計数するため、時間が掛かるという問題がある。図８に示すデータ記憶回路１０のＰＤＣがデータ“０”をラッチしている場合、ノードＮ１ｂがハイレベルとなっているため、信号ＣＨＫ２ｎ、及び信号ＣＨＫ１をハイレベルとすると、配線ＣＯＭｉの電位が下がる。配線ＣＯＭｉは、全てのデータ記憶回路１０に接続されている。このため、ノードＮ１ｂがハイレベルとなっているデータ記憶回路１０の数に応じて電流が流れる。したがって、配線ＣＯＭｉに接続されている電流をモニタすることにより、読み出しレベル（ＣＲ）での読み出し結果と、読み出しレベル（ＣＲ−ｘ）での読み出し結果とをＸＯＲしたことにより得られるデータ“１”の数を検出することができる。
【０１２８】
すなわち、図２２に示すように、ステップＳ３３−１において、ＸＯＲの結果をＰＤＣに転送した後、ＰＤＣのデータを反転する（Ｓ３３−３）。この後、配線ＣＯＭｉの電流をモニタする（Ｓ３３−４）。この結果、配線ＣＯＭｉの電流値が規定値以下である場合、読み出しレベル（ＣＲ）で読んだデータがＳＤＣにラッチされているため、ＳＤＣのデータを出力する（Ｓ３５−１）。一方、配線ＣＯＭｉの電流が規定値以下ではない場合、読み出しレベルＣＲを（ｘ）だけ下げ（Ｓ３６）、再度読み出し動作が実行される。
【０１２９】
上記構成によっても第１の実施形態と同様の効果を得ることができる。しかも、ホスト１１は、配線ＣＯＭｉの電流値を規定値と比較するだけで、データ記憶回路１０から供給されるＸＯＲされたデータ“１”の数を計数する必要がないため、判定動作を高速化することが可能である。
【０１３０】
上記説明は、第１の実施形態を変形して示したが、第２乃至第４の実施形態についても同様に変形することが可能である。
【０１３１】
（第６の実施形態）
図２３は、第２ページの読み出しシーケンスを示している。第２ページの読み出しは、図９（ｂ）に示すように、読み出しレベルとして選択ワード線に電位（ＢＲ）又は（ＤＲ）が供給される。これら読み出しレベル（ＢＲ）（ＤＲ）での読み出し時に、第１ページの読み出し動作において検出された読み出しレベルＣＲの補正値に応じて読み出しレベル（ＢＲ）（ＤＲ）が補正される。
【０１３２】
すなわち、第２ページのデータ“２”“３”“４”は、同時に書き込まれている。このため、これらデータの閾値電圧分布の間隔はほぼ等しい。したがって、第１ページの読み出しにおいて、検出された読み出しレベル（ＣＲ）の補正値を、読み出しレベル（ＢＲ）（ＤＲ）に付加することにより、読み出しレベル（ＢＲ）（ＤＲ）を最適に設定することができる。
【０１３３】
補正値は、次のように設定される。例えば第１ページの読み出しにおいて、読み出しレベルＣＲにより読み出されたデータが出力されている場合、補正値は“０”であり、読み出しレベルＣＲ−ｘにより読み出されたデータが出力されている場合、補正値は“−ｘ”となる。
【０１３４】
図２３に示す第２ページの読み出しにおいて、先ず、読み出しレベル（ＤＲ）＋補正値により、選択されたワード線に接続されている複数のメモリセルからデータが読み出され、これらデータは、対応するデータ記憶回路のＰＤＣとＤＤＣ０にラッチされる（Ｓ５１）。この後、読み出しレベル（ＢＲ）＋補正値により、選択されたワード線に接続されている複数のメモリセルからデータが読み出され、これらデータは、対応するデータ記憶回路のＰＤＣとＤＤＣ０にラッチされる（Ｓ５２）。次いで、ＰＤＣのデータがＳＤＣにコピーされ、外部に出力される（Ｓ５３）。
【０１３５】
第６の実施形態によれば、第１ページの読み出し動作で求めた補正値を、第２ページの読み出し動作で使用する読み出しレベル（ＢＲ）（ＤＲ）に付加している。このため、第２ページのデータを最適な読み出しレベルで読み出すことができる。しかも、第１ページの読み出し動作のように、最適な読み出しレベルを検出する必要がない。したがって、第２ページの読み出し動作の遅延を防止できている。
【０１３６】
無論、第２ページの読み出しシーケンスも第１ページの読み出しシーケンスと同様に、読み出しレベル（ＢＲ）（ＤＲ）のそれぞれにおいて、補正値を求めて最適な読み出しレベルを検出し、この検出した読み出しレベルによりデータを読み出すことも可能である。
【０１３７】
また、同一ブロックは同時に書き込みが行われるように制御すると、補正値は近い値となる場合がある。このような場合、ワード線ＷＬ０の読み出しで求めた補正値を同一ブロック内の他のワード線ＷＬ１〜ＷＬ３１の読み出しで使用することも可能である。このようにすることで、読み出し速度が低下することを防止できる。
【０１３８】
（第７の実施形態）
上記第１乃至第６の実施形態は、読み出し動作について説明した。これに対して、第７の実施形態は、プログラム動作の改良について説明する。
【０１３９】
書き込み時間の増大を抑えつつ、書き込み後の閾値電圧分布幅を狭める方法としてＱＰＷ（Quick Pass Write）方式が考案されている。ＱＰＷ方式は、本来のベリファイレベルより低いレベルを超えたセルに対して、次回以降の書き込み時、ビット線に中間電位を与え、書き込みの強さを弱めることで、閾値電圧の変動を少なくし、閾値電圧分布を狭めることができる。
【０１４０】
図２４、図２５は、一般的は、ＱＰＷ方式を概略的に示している。このＱＰＷ方式において、上述したプログラム動作と同様に、データを各データ記憶回路１０にロードした後、プログラム動作が行なわれる（Ｓ５１、Ｓ５２）。各レベルのベリファイは、ワード線電位を本来のベリファイレベルより低いレベル（ＡＶＬ，ＢＶＬ，ＣＶＬ）に設定して第１回目のベリファイ動作を行う（Ｓ５３，Ｓ５４，Ｓ５５）。このベリファイの結果、レベル（ＡＶＬ，ＢＶＬ，ＣＶＬ）に達していない場合、プログラム電圧Ｖｐｇｍが一定電圧増加され、再度プログラム及びベリファイが行われる（Ｓ５６，Ｓ５７，Ｓ５２）。
【０１４１】
一方、メモリセルの閾値電圧が本来のベリファイレベルより低いレベル（ＡＶＬ，ＢＶＬ，ＣＶＬ）に達している場合、次回の書き込みでは、ビット線に中間電位を供給するなどして、セルのチャネルと制御ゲートとの電位差を小さくして書き込みを弱め、セルの閾値電圧の変化を少なくし、本来のベリファイレベル（ＡＶ，ＢＶ，ＣＶ）に達するまで、書き込みとベリファイ動作を繰り返す。
【０１４２】
このように、一般にＱＰＷ方式は、本来の書き込みベリファイレベルより低いレベルを用いたベリファイと、本来の書き込みベリファイレベルを用いたベリファイとからなる２回のベリファイを必要とするため、ベリファイ時間が２倍又は２倍近く増大する問題がある。
【０１４３】
図２５は、上記ＱＰＷ方式により、レベル“Ｃ”を書き込む場合における、セルに印加されるプログラムパルス電圧と、このプログラムパルス電圧を印加した後における閾値電圧の変化を示している。図２５から明らかなように、セルの閾値電圧が低めのベリファイレベルＣＶＬを超えた後、プログラムパルス電圧の増分を低減し、書き込みを弱めている。このため、セルの閾値電圧の変化が少なくなっていることが分かる。
【０１４４】
図２６は、第７の実施形態のプログラムシーケンスを示し、図２７は、レベル“Ｃ”に書き込んでいるセルの各プログラムパルス印加後の閾値電圧の変化を示している。図２６において、図２４と同一部分には同一符号を付し、異なる部分についてのみ説明する。第７の実施形態は、ベリファイレベル（ＡＶ，ＢＶ，ＣＶ）を用いて、３つの閾値電圧を同時に書き込む。
【０１４５】
図２６に示すように、第７の実施形態において、各レベルのベリファイは、本来のベリファイレベル（ＡＶ，ＢＶ，ＣＶ）を用いたベリファイ（Ｓ５８，Ｓ５９，Ｓ６０）のみが実行される。このベリファイにおいて、書き込み対象の閾値電圧に対応したベリファイレベルより１つ下のベリファイレベル（ＢＶ）を越えてから、プログラム電圧Ｖｐｇｍをステップアップしながら書き込みを行い、この書き込みが例えば３回目を越えた場合、次のプログラム以降において、ビット線に中間電位を供給するなどして書き込みを弱める（Ｓ７１）。この状態において、レベルＣＶによりベリファイする（Ｓ５９）。この結果、セルの閾値電圧がレベルＣＶに達しない場合、ＰＤＣはローレベルである（Ｓ５６）。このため、プログラム電圧をステップアップし（Ｓ５７）、再度、弱い書き込みを行なう（７１）。この動作を全てのＰＤＣがハイレベルとなるまで繰り返す。
【０１４６】
尚、この動作において、レベルＣＶをベリファイしているとき、２つ下のベリファイレベル（ＡＶ）への書込みが終了している場合、このベリファイ動作は、スキップできる。また、一番下のベリファイレベル（ＡＶ）のベリファイの場合、これより下にレベルが無い。このため、図２６のステップＳ５８において、例えばレベルＡＶによるベリファイは、図２４に示すように、低めのベリファイレベルでのベリファイ（ＡＶＬ）と、本来のベリファイレベルでのベリファイ（ＡＶ）との２回行ってもよい。
【０１４７】
図２７に示すように、第７の実施形態において、レベル“Ｃ”に書き込んでいるセルは、レベル“Ｂ”のベリファイレベルＢＶ（レベル“Ｃ”より１つ下のベリファイレベル）を超えた後、ｎ回目、例えば３回目の書き込み以降（図示書き込み回数９回目以降）、ビット線に中間電位を印加するなどして、書き込みを弱めている。したがって、閾値電圧の変化を少なくなる。
【０１４８】
第７の実施形態によれば、書き込み対象のベリファイレベルより１レベル下のベリファイレベルを超えた後、ｎ回目の書き込み以降、書き込みを弱めている。このため、一般的なＱＰＷのように、各ベリファイにおいて、本来のベリファイレベルと、それより低いベリファイレベルを用いた２回のベリファイを行う場合に比べて、ベリファイ時間を短縮することができる。この効果は、２ビット４値以上のデータを記憶する場合、一層顕著となる。
【０１４９】
尚、第７の実施形態において、ｎ＝３回目の書き込み以降としたが、これに限定されるものではなく、ｎの値は、評価により最適な回数に決めればよい。
【０１５０】
（第８実施形態）
図２８は、第８の実施形態に係るプログラムシーケンスを示し、図２９は、レベル“Ｃ”に書き込んでいるセルの各プログラムパルス印加後の閾値電圧の変化を示している。第８の実施形態は、第７の実施形態を変形したものであり、図２８において、図２６と同一部分には同一符号を付している。
【０１５１】
第７の実施形態は、書き込み対象のベリファイレベルより１レベル下のベリファイレベルを超えた後、ｎ回目の書き込み以降、書き込みを弱めた。これに対して、第８の実施形態は、図２８、ステップ８１に示すように、書き込み対象のベリファイレベルより２つ下のベリファイレベルを超えてから、書き込み対象のベリファイレベルより１つ下のベリファイレベルに達するまでの書き込み回数ｋ回（ここでは３回）を計数し、１つ下のベリファイレベルを超えてからｈ回目（ｈ＝ｋ±α、α：補正値）の書き込みより、ビット線に中間電位を印加するなどして、書き込みを弱め、閾値電圧の変動を少なくしている。回数“ｈ”は、例えばα＝０とするとｈも３回
すなわち、図２９に示すように、レベル“Ｃ”に書き込む場合、ベリファイレベルＡＶを超えてから、ベリファイレベルＢＶに達するまでの書き込み回数を計数する。この計数は、書き込んでいるセルそれぞれについて集計を行う場合、それぞれのビット線に接続されているデータ記憶回路内に数をカウントする回路を設け、この回路により行う。また、同時に書き込んでいるセルの平均値を求める場合は、例えば制御信号及び制御電圧発生回路７にカウンタを設け、このカウンタにより例えばプログラム電圧Ｖｐｇｍのステップアップ回数を計数すればよい。このカウンタの計数値が“ｋ”＝３である場合において、“α”を例えば“０”とした場合、ベリファイレベルＢＶから、“ｈ”＝３回目の書き込みより、ビット線に中間電位を供給するなどして書き込みを弱める。
【０１５２】
回数“ｈ”は、計数値“ｋ”に補正値“α”を加えた値とした。しかし、通常、メモリセルに記憶される各閾値電圧間のマージンは、高いレベルほど、データリテンションを向上させるためマージンを多く必要とする。すなわち、（ＢＶ−ＡＶ）≦（ＣＶ−ＢＶ）となっている。このため、回数“ｈ”は、計数値“ｋ”は、ほぼ同じ値でよい。
【０１５３】
上記第８の実施形態によっても、第７の実施形態と同様の効果を得ることができる。しかも、第８の実施形態によれば、書き込みの速いセルや遅いセルがある場合においても、各閾値分布を正確に書き込むことができる。
【０１５４】
（第９の実施形態）
図３０（ａ）は、１セルに１ビットを記憶する２値での閾値電圧分布、図３０（ｂ）は、１セルに４ビットを記憶する１６値での閾値電圧分布を示している。１６値は、１セルに４ビットを記憶できるメリットがある。しかし、各閾値電圧分布を狭く書き込まなくてはならない。このため、僅かずつ書き込みとベリファイ動作を繰り返す必要があり、書き込み速度が非常に遅くなる。また、図３０（ａ）（ｂ）において、実線で示す閾値電圧分布は、書き込み直後の状態を示し、破線で示す閾値電圧分布は、長期間放置した場合における状態示している。このように、長時間放置された場合、閾値電圧分布が広がるため、データリテンションマージン（閾値電圧分布間のマージン）が少ない。
【０１５５】
図３１は、ＮＡＮＤ型フラッシュメモリの書き込み／消去回数と、必要なデータリテンションマージンの関係を示している。図３１から明らかなように、ＮＡＮＤ型フラッシュメモリは、書き込み／消去の増加に伴い必要なデータリテンションマージンが増大する。したがって、２値は書き込み／消去回数を１００，０００回、１６値は書き込み／消去回数を１，０００回に抑えると、必要なデータリテンションマージンが少なくて済むため、書き込み／消去回数を抑える仕様とされている。
【０１５６】
図３２は、第９の実施形態に係るＮＡＮＤ型フラッシュメモリを概略的に示している。このＮＡＮＤ型フラッシュメモリのメモリセルアレイ１（図２のメモリセルアレイ１に対応する）は、消去単位である複数のブロックＢＬＫ０〜ＢＬＫ４０９５を含んでいる。第９の実施形態は、これらブロックのうち、破線で囲まれた第１の領域９１に含まれるブロックを、２値データを記憶用として使用し、破線で囲まれた第２の領域９２に含まれるブロックを、１６値データを記憶用として使用する。例えばデータを高速に書き込む必要がある場合、又は書き込み／消去を多く繰り返すデータは、第１の領域９１に含まれる２値データ用のブロックに書き込む。また、例えば高速書き込みが要求されず、書き込み／消去回数が少ないデータは第２の領域９２に書き込むように制御する。この書き込み領域の選択制御は、例えばホスト１１により行なわれる。すなわち、ホスト１１は、例えばデータの書き換え毎に更新されるシステム情報のように、頻繁に書き換えられるデータを第１の領域９１内に書き込み、その他のデータを第２の領域９２に書き込む。
【０１５７】
第９の実施形態によれば、メモリセルアレイ１を第１の領域９１、第２の領域９２に分け、第１の領域９１に含まれる複数のブロックを２値データ記憶用のブロックとして使用し、第２の領域９２に含まれる複数のブロックを１６値データ記憶用のブロックとして使用している。このため、データリテンションマージンの劣化、及び書き込み速度の低下を防止することが可能である。
【０１５８】
図３３は、図３０（ｂ）に示す１セルに１６値を記憶する場合における書き込みシーケンスを示している。この場合、１回の書き込み後、１６回のベリファイ動作を行う（Ｓ８１）。この書き込み、及びベリファイ動作は、同時に書き込んでいるセルが全てベリファイをパスするまで繰り返される。書き込むべきレベルに書き込むセルが無い場合、このベリファイをスキップすることが可能である。
【０１５９】
一方、ダイソートテストは、一番低い閾値電圧と、一番高い閾値電圧のデータだけを評価することで足りる場合がある。図３４は、ダイソートテスト時における書き込み動作を示している。この場合、先ず、外部よりテストコマンドを入力する（Ｓ９１）。このテストコマンドに応じて、例えば、レベル“０”、レベル“１”、レベル“Ｆ”のみ、又はレベル“１”、レベル“Ｆ”のみ、ベリファイが実行される（Ｓ９２）。このようにすることにより、テスト時間を短縮することが可能である。
【０１６０】
尚、テスト時は、レベル“０”、レベル“１”、レベル“Ｆ”のみ、又はレベル“１”、レベル“Ｆ”のみ、ベリファイを行うことを示したが、テストコマンド入力により、複数レベルのベリファイの内、任意の特定のレベルのみ又は、任意の特定の数レベルのみ行うようにすることも可能である。
【０１６１】
（第１０の実施形態）
図３５は、ＮＡＮＤ型フラッシュメモリを音楽データや画像データなどマルチメディアデータの記憶再生機に用いた場合を示している。この記憶再生機１００は、例えばパーソナルコンピュータや携帯電話機であり、インターネット接続手段や無線などの通信手段１０１、ＮＡＮＤ型フラッシュメモリ１０２、再生回路１０３、及び制御部１０４を有している。近時、このような記憶再生機１００を用いて、データサーバ１１０から音楽データ、又は画像データを購入することが可能とされている。すなわち、ユーザは音楽データ、又は画像データを購入する場合、記憶再生機１００のインターネットや無線などの通信手段を介してデータサーバ１１０にアクセスし、音楽データや画像データの購入要求をする。この要求に応じて、データサーバ１１０に蓄えられているデータが、インターネットなどの通信手段を介して記憶再生機１００にダウンロードされる。記憶再生機１００にダウンロードされたデータは、ＮＡＮＤ型フラッシュメモリ１０２に記憶される。
【０１６２】
ところで、音楽データ、又は画像データは非常にデータ量が大きい場合がある。このため、ＮＡＮＤ型フラッシュメモリ１０２への書き込みに時間がかかることがある。しかも、ＮＡＮＤ型フラッシュメモリ１０２が、例えば１セルに１６値データを記憶する場合、書き込み速度が遅いため、大量のデータを書き込むためにさらに長時間を要するという問題を有している。
【０１６３】
図３６、図３７は、第１０の実施形態に係わり、音楽データや画像データを再生しながらダウンロードする方法を示している。
【０１６４】
記録再生機１００を用いて、ＮＡＮＤ型フラッシュメモリ１０２に記憶されている音楽データ又は画像データを再生する場合、記録再生機１００の制御部１０４は、ＮＡＮＤ型フラッシュメモリ１０２に再生すべき音楽データ又は画像データがあるかどうかを検索する（Ｓ１００）。データがある場合は、そのデータが再生回路１０３により再生される（Ｓ１０１）。
【０１６５】
一方、ＮＡＮＤ型フラッシュメモリ１０２に再生すべき音楽データ又は画像データが無い場合、制御部１０４は、ＮＡＮＤ型フラッシュメモリ１０２に購入権利データがあるかどうかを検索する（Ｓ１０２）。この結果、購入権利データが無い場合、ユーザにデータの購入を希望するかどうかの入力を促し（Ｓ１０３）、購入を希望する場合、インターネット、無線などの通信手段１０１を介してデータサーバ１１０にアクセスし、購入を希望する音楽データ、又は画像データの購入要求を送信する（Ｓ１０４）。データサーバ１１０により購入要求が認められた場合、制御部１０４は、データサーバ１１０より購入権利データをダウンロードし（Ｓ１０５）、このダウンロードした購入権利データをＮＡＮＤ型フラッシュメモリ１０２に記憶する（Ｓ１０６）。すなわち、このとき、データ量の多い音楽データや画像データはダウンロードせず、少量データからなる購入権利データのみをダウンロードする。このため、購入権利データのダウンロード、及びＮＡＮＤ型フラッシュメモリ１０２への記憶に要する時間を短縮できる。
【０１６６】
この後、ユーザが音楽データ又は画像データを再生する時、前記ステップＳ１００を経由してステップＳ１０２において購入権利データがあるかどうかが判別される。この場合、ＮＡＮＤ型フラッシュメモリ１０２に購入権利データが記憶されているため、制御部１０４は、通信手段１０１を介して、データサーバ１１０にアクセスし、購入権利データに対応する音楽データ、又は画像データをダウンロードする（Ｓ１０７）。このダウンロードしたデータをＮＡＮＤ型フラッシュメモリ１０２に記憶するとともに、再生する（Ｓ１０８）。データの再生時間は、データをＮＡＮＤ型フラッシュメモリ１０２に書き込む速度に比べて格段に長いため、ダウンロードしたデータを再生しながら、ＮＡＮＤ型フラッシュメモリ１０２に書き込んでいてもデータの再生に問題はない。
【０１６７】
尚、ダウンロードされたデータは、例えば図示せぬバッファ回路に記憶され、このバッファ回路に記憶されたデータが再生されるとともに、ＮＡＮＤ型フラッシュメモリ１０２に書き込まれる。
【０１６８】
また、破線で示すように、ステップＳ１０６の後、即、ステップ１０７，１０８を実行することも可能である。
【０１６９】
上記第１０の実施形態によれば、音楽データ、又は画像データを購入する際、先ず、データ量の少ない購入権利データのみをダウンロードし、音楽データ、又は画像データを再生する際、購入権利データに対応する音楽データ、又は画像データを再生しながら、ＮＡＮＤ型フラッシュメモリ１０２に書き込んでいる。このため、データ量の多い音楽データや画像データを、書き込みに要する時間を意識することなくダウンロードすることができる。
【０１７０】
上記第９、第１０の実施形態において、データの読み出しは、上記第１乃至第６の実施形態を利用でき、データの書き込みは、上記第７、第８の実施形態を適用することも可能である。
【０１７１】
尚、上記各実施形態において、メモリセルに書き込むデータは２ビット、４ビットに限定されるものではなく、３ビット或いは、５ビット以上のｎビットとすることも可能である。
【０１７２】
その他、本発明の要旨を変更しない範囲において、種々変形実施可能なことは勿論である。
【図面の簡単な説明】
【０１７３】
【図１】第１の実施形態に係る読み出し動作を示すフローチャート。
【図２】各実施形態に適用される半導体記憶装置を示す構成図。
【図３】図２に示すメモリセルアレイ及びビット線制御回路の一例を示す回路図。
【図４】図２に示すメモリセルアレイ及びビット線制御回路の他の例を示す回路図。
【図５】図５（ａ）はメモリセルを示す断面図、図５（ｂ）は選択ゲートを示す断面図。
【図６】第１の実施形態に対応する半導体記憶装置を示す断面図。
【図７】図６に示す各部に供給される電圧の例を示す図。
【図８】図３、図４に示すデータ記憶回路の一例を示す回路図。
【図９】図９（ａ）（ｂ）（ｃ）は、メモリセルに２ビットのデータを記憶する場合におけるデータと閾値電圧との関係を示す図。
【図１０】２つのＮＡＮＤユニットの書き込み順序を示す図。
【図１１】第１ページのプログラム動作を示すフローチャート。
【図１２】第２ページのプログラム動作を示すフローチャート。
【図１３】ＥＡＳＢ書き込み方法を示す図。
【図１４】図１４（ａ）（ｂ）は、第１の実施形態に係り、メモリセルの第１ページの読み出しシーケンスを示す図。
【図１５】第１の実施形態に係る読み出し動作におけるデータ記憶回路の具体的な動作を示すフローチャート。
【図１６】図１６（ａ）（ｂ）は、第２の実施形態に係わり、メモリセルの第１ページの読み出しシーケンスを示す図。
【図１７】第２の実施形態に係わり、メモリセルの第１ページの読み出しシーケンスを示すフローチャート。
【図１８】図１８（ａ）（ｂ）（ｃ）は、第３の実施形態に係る第１ページの読み出しシーケンスを示す図。
【図１９】第３の実施形態に係わり、メモリセルの第１ページの読み出しシーケンスを示すフローチャート。
【図２０】第４の実施形態に係わり、メモリセルの第１ページの読み出しシーケンスを示すフローチャート。
【図２１】第１乃第４の実施形態の変形例を示すものであり、メモリセルの第１ページの読み出しシーケンスを示すフローチャート。
【図２２】第１の実施形態の第１の変形例を示すものであり、メモリセルの第１ページの読み出しシーケンスを示すフローチャート。
【図２３】第２ページの読み出しシーケンスを示すフローチャート。
【図２４】一般的は、ＱＰＷ（Quick Pass Write）方式を概略的に示すフローチャート。
【図２５】ＱＰＷ方式により、書き込む場合におけるセルに印加されるプログラムパルス電圧と、閾値電圧の変化を示す図。
【図２６】第７の実施形態に係り、プログラムシーケンスを示すフローチャート。
【図２７】第７の実施形態に係り、書き込む場合におけるセルに印加されるプログラムパルス電圧と、閾値電圧の変化を示す図。
【図２８】第８の実施形態に係り、プログラムシーケンスを示すフローチャート。
【図２９】第８の実施形態に係り、書き込む場合におけるセルに印加されるプログラムパルス電圧と、閾値電圧の変化を示す図。
【図３０】図３０（ａ）は、１セルに１ビットを記憶する２値での閾値電圧分布を示し、図３０（ｂ）は、１セルに４ビットを記憶する１６値での閾値電圧分布を示す図。
【図３１】ＮＡＮＤ型フラッシュメモリの書き込み／消去回数と、データリテンションマージンの関係を示す図。
【図３２】第９の実施形態に係るＮＡＮＤ型フラッシュメモリを概略的に示す図。
【図３３】図３０（ｂ）に示す１セルに１６値を記憶する場合の書き込みシーケンスを示すフローチャート。
【図３４】ダイソートテスト時における書き込みシーケンスを示すフローチャート。
【図３５】ＮＡＮＤ型フラッシュメモリを音楽データや画像データなどの記憶再生機に用いた場合を示す構成図。
【図３６】第１０の実施形態に係り、ＮＡＮＤ型フラッシュメモリを音楽データや画像データなどの記憶再生機に用いた場合を示す構成図。
【図３７】図３６に示す記憶再生機の動作を示すフローチャート。
【符号の説明】
【０１７４】
１…メモリセルアレイ、７…制御信号及び制御電圧発生回路、１０…データ記憶回路、１１…ホスト、９１，９２…第１、第２の領域、１００…記憶再生機、１０１…通信手段、１０２…ＮＡＮＤ型フラッシュメモリ、１０３…再生回路、１０４…制御部。
【図１】
2008034065.tif 000003
【図２】
2008034065.tif 000004
【図３】
2008034065.tif 000005
【図４】
2008034065.tif 000006
【図５】
2008034065.tif 000007
【図６】
2008034065.tif 000008
【図７】
2008034065.tif 000009
【図８】
2008034065.tif 000010
【図９】
2008034065.tif 000011
【図１０】
2008034065.tif 000012
【図１１】
2008034065.tif 000013
【図１２】
2008034065.tif 000014
【図１３】
2008034065.tif 000015
【図１４】
2008034065.tif 000016
【図１５】
2008034065.tif 000017
【図１６】
2008034065.tif 000018
【図１７】
2008034065.tif 000019
【図１８】
2008034065.tif 000020
【図１９】
2008034065.tif 000021
【図２０】
2008034065.tif 000022
【図２１】
2008034065.tif 000023
【図２２】
2008034065.tif 000024
【図２３】
2008034065.tif 000025
【図２４】
2008034065.tif 000026
【図２５】
2008034065.tif 000027
【図２６】
2008034065.tif 000028
【図２７】
2008034065.tif 000029
【図２８】
2008034065.tif 000030
【図２９】
2008034065.tif 000031
【図３０】
2008034065.tif 000032
【図３１】
2008034065.tif 000033
【図３２】
2008034065.tif 000034
【図３３】
2008034065.tif 000035
【図３４】
2008034065.tif 000036
【図３５】
2008034065.tif 000037
【図３６】
2008034065.tif 000038
【図３７】
2008034065.tif 000039