(57)【要約】【課題】第２ページの書き込みが異常中断した場合においても第１ページのデータを読み出すことを可能とする【解決手段】メモリセルアレイ１は、ワード線、及びビット線に接続され、ｎ値（ｎは３以上の自然数）を記憶する複数のメモリセルがマトリックス状に配置され、各メモリセルは第１の書き込み動作、第２の書き込み動作により前記ｎ値にデータを記憶する。読み出し部６は、ワード線の電位を設定してメモリセルアレイ１内のメモリセルからデータを読み出す。制御部７は、読み出し部６により読み出された第２の書き込み動作により書き込まれたデータに訂正不能なエラーが含まれる場合、第１の書き込み動作により書き込まれたデータを読み出す時、読み出し部６に供給するワード線の電位を変化させる。【選択図】図３
2007048410.tif 000002
【特許請求の範囲】
【請求項１】
ワード線、及びビット線に接続され、ｎ値（ｎは３以上の自然数）を記憶する複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、
ｋ値（ｋ＜ｎ）が記憶されている前記メモリセルにｎ値のデータを書き込む書き込み部と、
前記ワード線の電位を設定して前記メモリセルアレイ内の前記メモリセルからデータを読み出す読み出し部と、
前記読み出し部により読み出されたデータに訂正不能なエラーが含まれる場合、前記ｋ値のデータを読み出す時、前記読み出し部に供給する前記ワード線の電位を変化させる制御部と
を具備することを特徴とする半導体記憶装置。
【請求項２】
ｎ値（ｎは３以上の自然数）を記憶するメモリセルと、
第１の書き込み動作により、前記メモリセルの閾値電圧を第１の閾値電圧から第１の閾値電圧又は第２の閾値電圧（第１の閾値電圧＜第２の閾値電圧）とし、
第２の書き込み動作により、前記メモリセルの閾値電圧が前記第２の閾値電圧である場合、第３の閾値電圧（第２の閾値電圧≦第３の閾値電圧）とし、
第３の書き込み動作により、前記メモリセルの閾値電圧が前記第１の閾値電圧である場合、第１の閾値電圧又は第４の閾値電圧（第１の閾値電圧＜第４の閾値電圧）に制御する制御部と
を具備することを特徴とする半導体記憶装置。
【請求項３】
ｎ値（ｎは３以上の自然数）を記憶するメモリセルと、フラグ用メモリセルを有するメモリセルアレイと、
第１の書き込み動作により、前記メモリセルの閾値電圧を第１の閾値電圧から第１の閾値電圧又は第２の閾値電圧（第１の閾値電圧＜第２の閾値電圧）とし、
第２の書き込み動作により、前記メモリセルの閾値電圧が前記第２の閾値電圧である場合、第３の閾値電圧（第２の閾値電圧≦第３の閾値電圧）とし、前記メモリセルと同時に選択される前記フラグ用メモリセルの閾値電圧を前記第１の閾値電圧から、第３の閾値電圧以上とし、
第３の書き込み動作により、前記メモリセルの閾値電圧が前記第１の閾値電圧である場合、前記第１の閾値電圧又は第４の閾値電圧（第１の閾値電圧＜第４の閾値電圧）に制御する制御部と
を具備することを特徴とする半導体記憶装置。
【請求項４】
前記制御部は、第１の読み出し動作時に、前記メモリセルの閾値電圧が、前記第３の閾値電圧以上か以下かの読み出し動作を行ない、前記第１の読み出し動作により読み出されたデータが訂正不能なエラーを含む場合、前記第２の閾値電圧以上か以下かの読み出し動作を行なうことを特徴とする請求項２又は３に記載の半導体記憶装置。
【請求項５】
ｎ値（ｎは３以上の自然数）を記憶するメモリセルと、フラグ用メモリセルを有するメモリセルアレイと、
第１の書き込み動作により、前記メモリセルの閾値電圧を第１の閾値電圧から第１の閾値電圧又は第２の閾値電圧（第１の閾値電圧＜第２の閾値電圧）とし、
第２の書き込み動作により、前記メモリセルの閾値電圧が前記第２の閾値電圧である場合、第３の閾値電圧（第２の閾値電圧≦第３の閾値電圧）とし、
第３の書き込み動作により、前記メモリセルの閾値電圧が前記第１の閾値電圧である場合、前記第１の閾値電圧又は第４の閾値電圧（第１の閾値電圧＜第４の閾値電圧）前記メモリセルとし、前記メモリセルと同時に選択される前記フラグ用メモリセルの閾値電圧を前記第１の閾値電圧から第４の閾値電圧以上に制御する制御部と
を具備することを特徴とする半導体記憶装置。
【請求項６】
前記制御部は、第１の読み出し動作時に、前記メモリセルの閾値電圧が、前記第４の閾値電圧以上か以下かの読み出し動作を行ない、前記第１の読み出し動作により読み出されたデータが訂正不能なエラーを含む場合、前記第３の閾値電圧以上か以下かの読み出し動作を行なうことを特徴とする請求項５記載の半導体記憶装置。
【請求項７】
ｎ値（ｎは３以上の自然数）を記憶するメモリセルと、フラグ用メモリセルを有するメモリセルアレイと、
第１の書き込み動作により、前記メモリセルの閾値電圧を第１の閾値電圧から第１の閾値電圧又は第２の閾値電圧（第１の閾値電圧＜第２の閾値電圧）とし、
第２の書き込み動作により、前記メモリセルの閾値電圧が前記第２の閾値電圧である場合、第３の閾値電圧（第２の閾値電圧≦第３の閾値電圧）とし、
第３の書き込み動作により、前記メモリセルと同時に選択される前記フラグ用メモリセルの閾値電圧を前記第１の閾値電圧から、第３の閾値電圧又は第４の閾値電圧（第１の閾値電圧＜第４の閾値電圧）以上とし、
第４の書き込み動作により、前記メモリセルの閾値電圧が前記第１の閾値電圧である場合、前記第１の閾値電圧又は第４の閾値電圧に制御する制御部と
を具備することを特徴とする半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＥＥＰＲＯＭを用いたＮＡＮＤ型フラッシュメモリに係り、特に、１つのメモリセルに多値データを記憶することが可能な半導体記憶装置に関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリは、カラム方向に配置された複数のメモリセルが直列接続されてＮＡＮＤセルを構成し、各ＮＡＮＤセルは選択ゲートを介して対応するビット線に接続される。各ビット線は、書き込みデータ、及び読み出しデータをラッチするラッチ回路に接続されている。このＮＡＮＤ型フラッシュメモリに多値データを記憶可能な不揮発性半導体記憶装置が提案されている（例えば特許文献１参照）。
【０００３】
近時、素子の微細化が進み、セルとセルの距離が短くなっている。このため、隣接するセル間の浮遊ゲート容量の影響が大きくなっている。具体的には、先に書いたセルの閾値電圧が、このセルと隣接し、後に書かれるセルの閾値電圧によって変動するという問題が生じている。特に、１つのセルに２ビット以上の複数のデータを記憶する多値メモリは、複数の閾値電圧により複数のデータを記憶するため、１つのデータに対応する閾値電圧の分布を非常に狭く制御する必要がある。したがって、前述した隣接セルの閾値電圧の影響が顕著となっている。
【０００４】
この問題を解決するため、１ビット（第１ページ）のデータが記憶されているメモリセルおいて、次のデータを記憶する前に、隣接メモリセルに１ビット（第１ページ）のデータを、本来の閾値電圧より低い閾値電圧（Ｖ−レベル）まで書き込み、この隣接メモリセルの書き込み後、第２ページの書き込みにおいて、本来の閾値電圧（ワード線電位“ｂ”（Ｖ＜＝Ｂ））まで上げる書き込みを行なう。しかし、第２ページの書き込み前後で、第１ページのデータが本来の閾値電圧か、それより低い閾値電圧か分からなくなってしまう。このため、これを区別するために、ページ毎にフラグ用メモリセル（以下、フラグセルと称す）を用意し、このフラグセルのデータに応じて読み出し動作をする書き込み方式が提案されている（例えば特許文献２参照）。
【０００５】
この書き込み方式により第２ページのデータを書き込んだ場合、第１ページのデータが“１”で第２ページのデータが“０”の場合、メモリセルのデータを“０”から“１”とするため、閾値電圧が例えばレベルＡまで上昇される。また、第１ページのデータが“０”場合、その閾値電圧は、レベルＡを含む電圧とされている。このため、これらの閾値電圧分布が交わっている。したがって、この第２ページ書き込み中、例えば電源の異常遮断などにより書き込みが中断されると、先に書き込んだ第１ページのデータも破壊されてしまうという問題がある。
【特許文献１】特開２０００−１９５２８０号公報
【特許文献２】特開２００４−１９２７８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、第２ページの書き込みが異常中断した場合においても第１ページのデータの破壊を防止することが可能な半導体記憶装置を提供しようとするものである。
【課題を解決するための手段】
【０００７】
本発明の半導体記憶装置の第１の態様は、ワード線、及びビット線に接続され、ｎ値（ｎは３以上の自然数）を記憶する複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、ｋ値（ｋ＜ｎ）が記憶されている前記メモリセルにｎ値のデータを書き込む書き込み部と、前記ワード線の電位を設定して前記メモリセルアレイ内の前記メモリセルからデータを読み出す読み出し部と、前記読み出し部により読み出されたデータに訂正不能なエラーが含まれる場合、前記ｋ値のデータを読み出す時、前記読み出し部に供給する前記ワード線の電位を変化させる制御部とを具備している。
【０００８】
本発明の半導体記憶装置の第２の態様は、ｎ値（ｎは３以上の自然数）を記憶するメモリセルと、第１の書き込み動作により、前記メモリセルの閾値電圧を第１の閾値電圧から第１の閾値電圧又は第２の閾値電圧（第１の閾値電圧＜第２の閾値電圧）とし、第２の書き込み動作により、前記メモリセルの閾値電圧が前記第２の閾値電圧である場合、第３の閾値電圧（第２の閾値電圧≦第３の閾値電圧）とし、第３の書き込み動作により、前記メモリセルの閾値電圧が前記第１の閾値電圧である場合、第１の閾値電圧又は第４の閾値電圧（第１の閾値電圧＜第４の閾値電圧）に制御する制御部とを具備としている。
【０００９】
本発明の半導体記憶装置の第３の態様は、ｎ値（ｎは３以上の自然数）を記憶するメモリセルと、フラグ用メモリセルを有するメモリセルアレイと、第１の書き込み動作により、前記メモリセルの閾値電圧を第１の閾値電圧から第１の閾値電圧又は第２の閾値電圧（第１の閾値電圧＜第２の閾値電圧）とし、第２の書き込み動作により、前記メモリセルの閾値電圧が前記第２の閾値電圧である場合、第３の閾値電圧（第２の閾値電圧≦第３の閾値電圧）とし、前記メモリセルと同時に選択される前記フラグ用メモリセルの閾値電圧を前記第１の閾値電圧から、第３の閾値電圧以上とし、第３の書き込み動作により、前記メモリセルの閾値電圧が前記第１の閾値電圧である場合、前記第１の閾値電圧又は第４の閾値電圧（第１の閾値電圧＜第４の閾値電圧）に制御する制御部とを具備している。
【００１０】
本発明の半導体記憶装置の第４の態様は、ｎ値（ｎは３以上の自然数）を記憶するメモリセルと、フラグ用メモリセルを有するメモリセルアレイと、第１の書き込み動作により、前記メモリセルの閾値電圧を第１の閾値電圧から第１の閾値電圧又は第２の閾値電圧（第１の閾値電圧＜第２の閾値電圧）とし、第２の書き込み動作により、前記メモリセルの閾値電圧が前記第２の閾値電圧である場合、第３の閾値電圧（第２の閾値電圧≦第３の閾値電圧）とし、第３の書き込み動作により、前記メモリセルの閾値電圧が前記第１の閾値電圧である場合、前記第１の閾値電圧又は第４の閾値電圧（第１の閾値電圧＜第４の閾値電圧）前記メモリセルとし、前記メモリセルと同時に選択される前記フラグ用メモリセルの閾値電圧を前記第１の閾値電圧から第４の閾値電圧以上に制御する制御部とを具備している。
【００１１】
本発明の半導体記憶装置の第５の態様は、ｎ値（ｎは３以上の自然数）を記憶するメモリセルと、フラグ用メモリセルを有するメモリセルアレイと、第１の書き込み動作により、前記メモリセルの閾値電圧を第１の閾値電圧から第１の閾値電圧又は第２の閾値電圧（第１の閾値電圧＜第２の閾値電圧）とし、第２の書き込み動作により、前記メモリセルの閾値電圧が前記第２の閾値電圧である場合、第３の閾値電圧（第２の閾値電圧≦第３の閾値電圧）とし、第３の書き込み動作により、前記メモリセルと同時に選択される前記フラグ用メモリセルの閾値電圧を前記第１の閾値電圧から、第３の閾値電圧又は第４の閾値電圧（第１の閾値電圧＜第４の閾値電圧）以上とし、第４の書き込み動作により、前記メモリセルの閾値電圧が前記第１の閾値電圧である場合、前記第１の閾値電圧又は第４の閾値電圧に制御する制御部とを具備している。
【発明の効果】
【００１２】
本発明によれば、第２ページの書き込みが異常中断した場合においても第１ページのデータの破壊を防止することが可能な半導体記憶装置を提供できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１４】
（第１の実施形態）
図３は、３値以上のデータを記憶する半導体記憶装置の概略構成を示すものであり、例えば４値（２ビット）を記憶するＮＡＮＤ型フラッシュメモリの構成を示している。
【００１５】
メモリセルアレイ１は複数のビット線と複数のワード線と共通ソース線を含み、例えばＥＥＰＲＯＭセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ１には、ビット線を制御するためのビット制御回路２とワード線制御回路６が接続されている。
【００１６】
ビット線制御回路２は、後述するように複数のデータ記憶回路及びフラグ用データ記憶回路を含んでいる。このビット線制御回路２は、ビット線を介してメモリセルアレイ１中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ１中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ１中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路２には、カラムデコーダ３、データ入出力バッファ４が接続されている。ビット線制御回路２内のデータ記憶回路はカラムデコーダ３によって選択される。データ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ４を介してデータ入出力端子５から外部へ出力される。
【００１７】
また、外部からデータ入出力端子５に入力された書き込みデータは、データ入出力バッファ４を介して、カラムデコーダ３によって選択されたデータ記憶回路に入力される。
【００１８】
ワード線制御回路６は、メモリセルアレイ１に接続されている。このワード線制御回路６は、メモリセルアレイ１中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
【００１９】
メモリセルアレイ１、ビット線制御回路２、カラムデコーダ３、データ入出力バッファ４、及びワード線制御回路６は、制御信号及び制御電圧発生回路７に接続され、この制御信号及び制御電圧発生回路７によって制御される。制御信号及び制御電圧発生回路７は、制御信号入力端子８に接続され、外部から制御信号入力端子８を介して入力される制御信号によって制御される。
【００２０】
前記ビット線制御回路２、カラムデコーダ３、ワード線制御回路６、制御信号及び制御電圧発生回路７は書き込み回路、及び読み出し回路を構成している。
【００２１】
さらに、前記メモリセルアレイ１は、ＥＣＣ（エラー訂正符号）を記憶するＥＣＣ領域１−１を有している。
【００２２】
また、ＮＡＮＤ型フラッシュメモリの前記データ入出力端子５、制御信号入力端子８は、ＮＡＮＤ型フラッシュメモリチップの外部に設けられたコントローラ９に接続されている。このコントローラ９は、ＮＡＮＤ型フラッシュメモリと例えば図示せぬホスト機器等との間でデータやコマンドの授受を行なう。
【００２３】
また、前記制御信号及び制御電圧発生回路７は、フューズ回路７−１を有している。このフューズ回路７−１は、例えば不揮発性メモリ又はレーザフューズ、若しくはラッチ回路により構成され、後述するように、前記書き込み回路、読み出し回路の動作を制御するためのデータを記憶する。尚、ラッチ回路の場合、電源立ち上げ時、メモリセルアレイの特定のブロックに記憶されたデータがラッチ回路に記憶される。
【００２４】
図４は、図３に示すメモリセルアレイ１及びビット線制御回路２の構成を示している。メモリセルアレイ１には複数のＮＡＮＤセルが配置されている。１つのＮＡＮＤセルは、直列接続された例えば３２個のＥＥＰＲＯＭからなるメモリセルＭＣと、選択ゲートＳ１、Ｓ２とにより構成されている。第１の選択ゲートＳ１はビット線ＢＬ０に接続され、第２の選択ゲートＳ２はソース線ＳＲＣに接続されている。各ロウに配置されたメモリセルの制御ゲートはワード線ＷＬ０、ＷＬ１、ＷＬ２〜ＷＬ３１に共通接続されている。また、第１の選択ゲートＳ１はセレクト線ＳＧＤ共通接続され、第２の選択ゲートＳ２はセレクト線ＳＧＳに共通接続されている。
【００２５】
また、ビット線の１つ置きに配置され、１つのワード線に接続された複数のメモリセル（破線で囲まれた範囲のメモリセル）は、１セクタを構成する。このセクタ毎にデータが書き込まれ、読み出される。１セクタには例えば２ページ分のデータが記憶される。また、各ワード線には、フラグを記憶するための第１、第２フラグセルＦＣ１、ＦＣ２が接続されている。すなわち、この実施形態の場合、１セクタは２つの第１、第２フラグセルＦＣ１、ＦＣ２を含んでいる。
【００２６】
ビット線制御回路２は、複数のデータ記憶回路１０及びフラグ用データ記憶回路１０ａ、１０ｂを有している。各データ記憶回路１０及びフラグ用データ記憶回路１０ａ、１０ｂは、一対のビット線（ＢＬ０、ＢＬ１）、（ＢＬ２、ＢＬ３）…（ＢＬｉ、ＢＬｉ＋１）、（ＢＬｍ、ＢＬｍ＋１、ＢＬｎ、ＢＬｎ＋１）に接続されている。
【００２７】
メモリセルアレイ１は、破線で示すように、複数のブロックを含んでいる。各ブロックは、複数のＮＡＮＤセルにより構成され、このブロック単位でデータが消去される。また、消去動作は、データ記憶回路１０、フラグ用データ記憶回路１０ａ、１０ｂに接続されている２本のビット線について同時に行なわれる。
【００２８】
リード動作、プログラムベリファイ動作及びプログラム動作時において、データ記憶回路１０に接続されている２本のビット線（ＢＬｉ、ＢＬｉ＋１）のうち外部より指定されたアドレス信号に応じて１本のビット線が選択される。さらに、外部アドレスに応じて、１本のワード線が選択され、１セクタ（２ページ分）が選択される。この２ページの切り替えはアドレスによって行われる。
【００２９】
尚、第１、第２フラグセルＦＣ１、ＦＣ２は、１セクタにそれぞれ１つと限定されるものではなく、破線で示すように、１セクタに複数のフラグセルを接続してもよい。この場合、後述するように、複数のフラグセルに記憶されたデータの多数決により、フラグセルに記憶されたデータを決定すればよい。
【００３０】
また、図４は、ＥＣＣ用データを記憶するセル、及びこれらセルに接続されるデータ記憶回路は省略している。
【００３１】
図５（ａ）（ｂ）はメモリセル及び選択トランジスタの断面図を示している。図５（ａ）はメモリセルを示している。基板４１にはメモリセルのソース、ドレインとしてのｎ型拡散層４２が形成されている。基板４１の上にはゲート絶縁膜４３を介して浮遊ゲート（ＦＧ）４４が形成され、この浮遊ゲート４４の上には絶縁膜４５を介して制御ゲート（ＣＧ）４６が形成されている。図５（ｂ）は選択ゲートを示している。基板４１にはソース、ドレインとしてのｎ型拡散層４７が形成されている。基板４１の上にはゲート絶縁膜４８を介して制御ゲート４９が形成されている。
【００３２】
図６は、メモリセルアレイの１つのＮＡＮＤセルの断面を示している。この例において、１つのＮＡＮＤセルは、図５（ａ）に示す構成の３２個のメモリセルＭＣが直列接続されて構成されている。ＮＡＮＤセルのドレイン側、ソース側には、図５（ｂ）に示す構成の第１の選択ゲートＳ１及び第２の選択ゲートＳ２が設けられている。
【００３３】
図７は、図４に示すデータ記憶回路１０の一例を示す回路図である。フラグ用データ記憶回路１０ａ，１０ｂもデータ記憶回路１０と同様の構成とされている。
【００３４】
このデータ記憶回路１０は、プライマリデータキャッシュ（ＰＤＣ）、セコンダリデータキャッシュ（ＳＤＣ）、ダイナミックデータキャッシュ（ＤＤＣ）、ダイナミックデータキャッシュＱ（ＤＤＣＱ）、テンポラリデータキャッシュ（ＴＤＣ）を有している。ＳＤＣ、ＰＤＣ、ＤＤＣは、書き込み時に入力データを保持し、読み出し時に読み出しデータを保持し、ベリファイ時に一時的にデータを保持し、多値データを記憶する際に内部データの操作に使用される。ＴＤＣは、データの読み出し時にビット線のデータを増幅し、一時的に保持するとともに、多値データを記憶する際に内部データの操作に使用される。ＤＤＣＱは、後述するデータの書き込み時において、特定のベリファイレベルより若干低いベリファイレベルに達したかどうかを示すデータを記憶する。
【００３５】
ＳＤＣは、ラッチ回路を構成するクロックドインバータ回路６１ａ、６１ｂ、及びトランジスタ６１ｃ、６１ｄにより構成されている。トランジスタ６１ｃはクロックドインバータ回路６１ａの入力端と、クロックドインバータ回路６１ｂの入力端の間に接続されている。このトランジスタ６１ｃのゲートには信号ＥＱ２が供給されている。トランジスタ６１ｄはクロックドインバータ回路６１ｂの入力端と接地間に接続されている。このトランジスタ６１ｄのゲートには信号ＰＲＳが供給されている。ＳＤＣのノードＮ２ａは、カラム選択トランジスタ６１ｅを介して入出力データ線ＩＯに接続され、ノードＮ２ｂは、カラム選択トランジスタ６１ｆを介して入出力データ線ＩＯｎに接続される。これらトランジスタ６１ｅ、６１ｆのゲートにはカラム選択信号ＣＳＬｉが供給されている。ＳＤＣのノードＮ２ａは、トランジスタ６１ｇ、６１ｈを介してＰＤＣのノードＮ１ａに接続されている。トランジスタ６１ｇのゲートには信号ＢＬＣ２が供給され、トランジスタ６１ｈのゲートには信号ＢＬＣ１が供給されている。
【００３６】
ＰＤＣは、クロックドインバータ回路６１ｉ、６１ｊ及びトランジスタ６１ｋにより構成されている。トランジスタ６１ｋは、クロックドインバータ回路６１ｉの入力端とクロックドインバータ回路６１ｊの入力端の相互間に接続されている。このトランジスタ６１ｋのゲートには信号ＥＱ１が供給されている。ＰＤＣのノードＮ１ｂはトランジスタ６１ｌのゲートに接続されている。このトランジスタ６１ｌの電流通路の一端はトランジスタ６１ｍを介して接地されている。このトランジスタ６１ｍのゲートには信号ＣＨＫ１が供給されている。また、トランジスタ６１ｌの電流通路の他端はトランスファーゲートを構成するトランジスタ６１ｎ、６１ｏの電流通路の一端に接続されている。このトランジスタ６１ｎのゲートには信号ＣＨＫ２ｎが供給されている。また、トランジスタ６１ｏのゲートは前記トランジスタ６１ｇと６１ｈの接続ノードに接続されている。トランジスタ６１ｎ、６１ｏの電流通路の他端には、信号ＣＯＭｉが供給されている。この信号ＣＯＭｉは全データ記憶回路１０に共通の信号であり、全データ記憶回路１０のベリファイが完了したかどうかを示す信号である。すなわち、後述するように、ベリファイが完了すると、ＰＤＣのノードＮ１ｂがローレベルとなる。この状態において、信号ＣＨＫ１、ＣＨＫ２ｎをハイレベルとすると、ベリファイが完了している場合、信号ＣＯＭｉがハイレベルとなる。
【００３７】
さらに、前記ＴＤＣは、例えばＭＯＳキャパシタ６１ｐにより構成されている。このキャパシタ６１ｐは、前記トランジスタ６１ｇ、６１ｈの接続ノードＮ３と接地間に接続されている。また、接続ノードＮ３には、トランジスタ６１ｑを介してＤＤＣが接続されている。トランジスタ６１ｑのゲートには、信号ＲＥＧが供給されている。
【００３８】
ＤＤＣは、トランジスタ６１ｒ、６１ｓにより構成されている。トランジスタ６１ｒの電流通路の一端には信号ＶＲＥＧが供給され、他端は前記トランジスタ６１ｑの電流通路に接続されている。このトランジスタ６１ｒのゲートはトランジスタ６１ｓを介して前記ＰＤＣのノードＮ１ａに接続されている。このトランジスタ６１ｓのゲートには信号ＤＴＧが供給されている。
【００３９】
ＤＤＣＱは、トランジスタ６１Ｑｒ、６１Ｑｓにより構成されている。トランジスタ６１Ｑｒの電流通路の一端には信号ＶＲＥＧが供給され、他端は前記トランジスタ６１Ｑｑを介して接続ノードＮ３に接続されている。トランジスタ６１Ｑｑのゲートには、信号ＲＥＧＱが供給されている。トランジスタ６１Ｑｒのゲートはトランジスタ６１Ｑｓを介して前記ＰＤＣのノードＮ１ａに接続されている。このトランジスタ６１Ｑｓのゲートには信号ＤＴＧＱが供給されている。
【００４０】
さらに、前記接続ノードＮ３にはトランジスタ６１ｔ、６１ｕの電流通路の一端が接続されている。トランジスタ６１ｕの電流通路の他端には信号ＶＰＲＥが供給され、ゲートにはＢＬＰＲＥが供給されている。前記トランジスタ６１ｔのゲートには信号ＢＬＣＬＡＭＰが供給されている。このトランジスタ６１ｔの電流通路の他端はトランジスタ６１ｖを介してビット線ＢＬｏの一端に接続され、トランジスタ６１ｗを介してビット線ＢＬｅの一端に接続されている。ビット線ＢＬｏの他端はトランジスタ６１ｘの電流通路の一端に接続されている。このトランジスタ６１ｘのゲートには信号ＢＩＡＳｏが供給されている。ビット線ＢＬｅの他端はトランジスタ６１ｙの電流通路の一端に接続されている。このトランジスタ６１ｙのゲートには信号ＢＩＡＳｅが供給されている。これらトランジスタ６１ｘ、６１ｙの電流通路の他端には、信号ＢＬＣＲＬが供給されている。トランジスタ６１ｘ、６１ｙは、信号ＢＩＡＳｏ、ＢＩＡＳｅに応じてトランジスタ６１ｖ、６１ｗと相補的にオンとされ、非選択のビット線に信号ＢＬＣＲＬの電位を供給する。
【００４１】
上記各信号及び電圧は、図３に示す制御信号及び制御電圧発生回路７により生成され、この制御信号及び制御電圧発生回路７の制御に基づき、以下の動作が制御される。
【００４２】
本メモリは、多値メモリであり、１セルに２ビットのデータを記憶することができる。この２ビットの切り替えはアドレス（第１ページ、第２ページ）によって行なわれる。
【００４３】
（動作説明）
上記構成において、動作について説明する。
【００４４】
図１は、メモリセルのデータとメモリセルの閾値電圧の関係を示している。消去動作を行なうとメモリセルのデータは“０”となる。図１（ａ）に示すように、第１ページの書き込みを行なうと、メモリセルのデータはデータ“０”とデータ“２”になる。データ“２”の閾値電圧の分布は、本来のデータ“２”の閾値電圧の分布より若干低く設定されている。
【００４５】
この後、図１（ｂ）に示すように、第２ページの書き込み前に隣接セルにデータが書き込まれる。すると、このセルに書き込まれたデータにより、データ“２”の閾値電圧の分布が大きくなる。この後、第２ページのデータが書き込まれると、メモリセルのデータは、図１（ｅ）に示すように、本来の閾値電圧を有するデータ“０”〜“３”となる。本実施例では、メモリセルのデータは閾値電圧の低いほうから高い方へと、定義されている。
【００４６】
図１に示す本実施形態の動作と、図２に示す従来の書き込み動作の相違は、次の通りである。
【００４７】
本実施形態の場合、隣接セルの書き込み後、第２ページの書き込みが２段階とされている。図１（ｃ）に示すように、第１ステップで閾値電圧を“ｂ”レベル以上に書き込めばよいため、第１ページのデータ“２”を本来の閾値電圧“ｂ”に書き込む。又は、第１ページのデータ“２”を“ｂ”及び“ｃ”の閾値電圧に書き込む。これとともに、図１（ｄ）に示すように、第２フラグセルＦＣ２に同様にデータ“２”を書き込む。この第２フラグセルＦＣ２のデータにより、第２ページのデータが書き込まれたことを判断することができる。この後、第２ページ第２ステップの書き込みにおいて、第１ページのデータが“１”で、第２ページのデータが“０”の場合、データ“１”に書き込まれる。また、第１ページのデータが“０”で、第２ページのデータが“１”の場合、データ“３”に書き込まれる。このようにして、図１（ｅ）に示す閾値分布を設定することができる。
【００４８】
仮に、第２ページの書き込み途中において電源が切られた場合においても、第１ページのデータは、図１（ｂ）（ｃ）に示すように、他のデータの閾値電圧と重なることがない。このため、第１ページのデータは、第２ページの書き込みに失敗しても破壊されることがない。したがって、読み出し時に、ワード線の電位を図１（ｅ）に示す電位“ａ”又は“ｂ”に設定すれば、第１ページのデータを読み出すことができる。
【００４９】
これに対して、図２に示す従来の場合、図２（ｂ）に示す隣接セルの書き込み後、図２（ｃ）に示すように、“ａ”レベルと“ｂ”レベルに同時に書き込みを行ない、図２（ｄ）に示す閾値電圧を設定している。図２（ｃ）に示すように、第２ページ書き込み途中の時点において、データ“２”は、本来の閾値電圧に達していず、また、データ“１”を書き込む場合、データ“１”の閾値電圧分布とデータ“２”の閾値電圧分布とが重なる可能性がある。この状態において、電源が切られた場合、第１ページのデータが破壊されてしまう。このため、第１ページのデータを読み出すことが困難となる。
【００５０】
図８は、ＮＡＮＤセルに対する書き込み順序を示している。ブロック内において、ソース線に近いメモリセルからページごとに書き込み動作が行なわれる。図８は、説明の便宜上、ワード線を４本としている。
【００５１】
第１番目の書き込みは、メモリセル１の第１ページに１ビットのデータが書きこまれる。  
第２番目の書き込みは、メモリセル１とワード方向に隣接したメモリセル２の第１ページに１ビットのデータが書きこまれる。  
第３番目の書き込みは、メモリセル１とビット方向に隣接したメモリセル３の第１ページに１ビットのデータが書きこまれる。  
第４番目の書き込みは、メモリセル１と対角に隣接したメモリセル４の第１ページに１ビットのデータが書きこまれる。  
第５番目の書き込みは、メモリセル１の第２ページに１ビットのデータが書きこまれる。  
第６番目の書き込みは、メモリセル１とワード方向に隣接したメモリセル２の第２ページに１ビットのデータが書きこまれる。  
第７番目の書き込みは、メモリセル３とビット方向に隣接したメモリセル５の第１ページに１ビットのデータが書きこまれる。  
第８番目の書き込みは、メモリセル３と対角に隣接したメモリセル６の第１ページに１ビットのデータが書きこまれる。  
第９番目の書き込みは、メモリセル３の第２ページに１ビットのデータが書きこまれる。  
第１０番目の書き込みは、メモリセル３とワード方向に隣接したメモリセル４の第２ページに１ビットのデータが書きこまれる。  
第１１番目の書き込みは、メモリセル５とビット方向に隣接したメモリセル７の第１ページに１ビットのデータが書きこまれる。  
第１２番目の書き込みは、メモリセル５と対角に隣接したメモリセル８の第１ページに１ビットのデータが書きこまれる。  
第１３番目の書き込みは、メモリセル５の第２ページに１ビットのデータが書きこまれる。  
第１４番目の書き込みは、メモリセル５とワード方向に隣接したメモリセル６の第２ページに１ビットのデータが書きこまれる。  
第１５番目の書き込みは、メモリセル７の第２ページに１ビットのデータが書きこまれる。  
第１６番目の書き込みは、メモリセル７とワード方向に隣接したメモリセル８の第２ページに１ビットのデータが書きこまれる。
【００５２】
以下に、具体的な書き込み動作について説明する。
【００５３】
（プログラム及びプログラムベリファイ）
（第１ページプログラム）
図９は、第１ページのプログラムの一例を示すフローチャートである。プログラム動作は、先ずアドレスを指定し、図４に示す２ページ（１セクタ）が選択される。本メモリは、この２ページのうち、第１ページ、第２ページの順でしか、プログラム動作できない。したがって、先ず、アドレスにより第１ページを選択する。
【００５４】
このアドレス入力中に図７に示すトランジスタ６１ｄをオンさせることにより、全てのＳＤＣのノードＮ２ａを接地電位Ｖｓｓとする。（Ｓ１１）
次に、書き込みデータを外部より入力し全てのデータ記憶回路１０内のＳＤＣに記憶する（Ｓ１２）。このとき、データを書き込む場合、外部よりデータ“０”が入力されるが、ＳＤＣのノードＮ２ａは、電源電圧Ｖｄｄになる。また、書き込み非選択の場合、外部よりデータ“１”が入力されるが、ＳＤＣのＮ２ａのノードは、接地電位Ｖｓｓになる。この後、書き込みコマンドが入力されると、全てのデータ記憶回路１０内のＳＤＣのデータがＰＤＣに転送される（Ｓ１３）。すなわち、信号ＢＬＣ１，ＢＬＣ２が所定の電圧、例えばＶｄｄ＋Ｖｔｈ（Ｖｄｄ：電源電圧（例えば３Ｖ又は１．８Ｖ、しかし、この電圧に限定されるものではない）、Ｖｔｈ：ＮチャネルＭＯＳトランジスタの閾値電圧）とされ、トランジスタ６１ｈ、６１ｇがオンとされる。すると、ノードＮ２ａのデータがトランジスタ６１ｇ、６１ｈを介してＰＤＣに転送される。このため、外部よりデータ“１”（書き込みを行なわない）が入力された場合、ＰＤＣのノードＮ１ａは、ローレベルとなり、データ“０”（書き込みを行なう）が入力された場合、ＰＤＣのノードＮ１ａは、ハイレベルとなる。以後、ＰＤＣのデータはノードＮ１ａの電位、ＳＤＣのデータはノードＮ２ａの電位とする。
【００５５】
（データ反転動作）（Ｓ１４）
この後、信号ＶＰＲＥをＶｄｄ、信号ＢＬＰＲＥをＶｄｄ＋Ｖｔｈとし、一旦、接続ノードＮ３をＶｄｄにプリチャージした後、信号ＤＴＧをＶｄｄ＋ＶｔｈとしてＰＤＣのデータをＤＤＣに転送する。次に、信号ＲＥＧをＶｄｄ、信号ＶＲＥＧをＶｓｓとする。ＤＤＣのデータがハイレベルの場合、接続ノードＮ３はローレベル、ＤＤＣのデータがローレベルの場合、接続ノードＮ３はハイレベルのままとなる。この後、一旦、信号ＳＥＮ１ｎ、ＬＡＴ１ｎをオフとし、信号ＥＱ１をＶｄｄとしてノードＮ１ａとＮ１ｂを同電位に設定する。この後、信号ＢＬＣ１をＶｄｄ＋Ｖｔｈとし、ＴＤＣのデータ（接続ノードＮ３の電位）をＰＤＣに移す。この結果、元々ＰＤＣにデータ“１”がラッチされていた場合データ“０”になり、データ“０”がラッチされていた場合、データ“１”になる。
【００５６】
書き込みコマンドが入力されると、制御信号及び制御電圧発生回路７より選択ワード線にプログラム電圧Ｖｐｇｍ（例えば２０Ｖ）、非選択ワード線にＶｐａｓｓ（例えば１０Ｖ）が供給される。しかし、これらの電圧は直ぐには立ち上がらないため、この待ち時間の間に、上記データ反転動作を行う。このため、書き込みスピードが遅くなることはない。
【００５７】
このように、入力データを反転するのは、メモリセル内に書かれている１ページのデータをページバッファに読み出し、外部に出力せずに他の１ページに書き込む、所謂ページコピーを行う場合、先ず、読み出しを行うが、書き込みを行ったデータ（データ“０”）は、ＳＤＣが“１”となり、書き込みを行わなかったデータ（データ“１”）は、ＳＤＣが“０”となる。このＳＤＣのデータは、前述した反転データとして入力したデータ、すなわち、書き込みを行う場合、ＳＤＣ＝“１”、書き込みを行わない場合、ＳＤＣ＝“０”と一致する。このように、ＳＤＣにおいて、次に書くデータを一致させておくと、読み出したデータの一部のみデータを外部より入力し書き換えることが容易にできる。したがって、ページコピーをしない場合でも常に、外部より入力されたデータをページバッファ内で反転する。
【００５８】
上記データ反転動作の後、ＰＤＣのデータをＤＤＣにもコピーしておく。  
ところで、第１ページのプログラムにおいて、フラグセルにはデータが書き込まれない。このため、フラグ用データ記憶回路１０ａ内のＰＤＣはデータ“１”となる。
【００５９】
（プログラム動作）（Ｓ１５）
図７示す信号ＢＬＣ１、ＢＬＣＬＡＭＰ、ＢＬＳｏ又はＢＬＳｅの電位をＶｄｄ＋Ｖｔｈとする。すると、トランジスタ６１ｈ、６１ｔ、６１ｖ又は６１ｗがオンとなり、ＰＤＣに保持されたデータがビット線に供給される。ＰＤＣにデータ“１”（書き込みを行なわない）が記憶されている時、ビット線がＶｄｄ（電源電圧）になり、データ“０”（書き込みを行なう）時、ビット線がＶｓｓ（接地電位）になる。また、選択されたワード線に接続され、非選択ページの（ビット線が非選択である）セルは書き込みが行なわれてはならない。このため、これらのセルに接続されているビット線にもデータ“１”と同じようにＶｄｄを供給する。ここで、選択されているブロックのセレクト線ＳＧＤにＶｄｄ、選択ワード線に電位Ｖｐｇｍ（２０Ｖ）、非選択ワード線に電位Ｖｐａｓｓ（１０Ｖ）を印加する。すると、ビット線がＶｓｓになっている場合、セルのチャネルがＶｓｓ、ワード線がＶｐｇｍとなるので書き込みが行なわれる。一方、ビット線がＶｄｄになっている場合、セルのチャネルがＶｓｓではなく、カップリングによりチャネルがブートされる。このため、ゲートとチャネル間の電位差がＶｐｇｍ／２程度と小さくなり、書き込みが行われない。
【００６０】
多値メモリは、閾値電圧の分布を狭めるため、本来のベリファイレベル“ｖ’”と、これより低いベリファイレベル“ｖ＊’”が設定されている。ベリファイレベル“ｖ＊’”を超え、ベリファイレベル“ｖ’”以下のセルは、ビット線に中間電位（ＶｄｄとＶｓｓの中間の例えば１Ｖ）が供給され、書き込みスピードを遅くする方法が用いられる。この時点において、信号ＶＲＥＧをＶｄｄ、信号ＲＥＧを中間電位＋Ｖｔｈ（例えば１Ｖ＋Ｖｔｈ）にすると、ビット線がＶｓｓの場合で、ＤＤＣがハイレベルの場合、ビット線が中間電位になり、ＤＤＣがローレベルの場合、ビット線はＶｓｓのままとなり、ビット線がＶｄｄの場合、Ｖｄｄのままになる。
【００６１】
書き込みデータが“０”の時、図１（ａ）に示すように、メモリセルのデータを“２”にする。書き込みデータが“１”の時、メモリセルのデータは“０”のままである。
【００６２】
（第１ページベリファイ）（Ｓ１６）
第１ページ書き込みは、図１（ａ）に示すように、ベリファイレベル“ｖ’”まで書き込みを行う。したがって、ベリファイ動作の第１ステップでは、図１（ａ）に示すように、本来のベリファイ時のワード線の電位“ｖ’”より低い電位“ｖ＊’”を用いてベリファイし、この後、第２ステップにおいて、ワード線の電位を“ｖ’”とする。以後“＊”は本来の値より低い電位を表す。
【００６３】
先ず、選択されているブロック内の非選択ワード線及びセレクト線ＳＧＤに読み出し時の電位Ｖｒｅａｄを与え、図７に示すデータ記憶回路１０の信号ＢＬＰＲＥに、例えばＶｄｄ＋Ｖｔｈ、信号ＢＬＣＬＡＭＰに所定の電圧、例えば１Ｖ＋Ｖｔｈを供給し、信号ＶＰＲＥをＶｄｄとし、ビット線を１Ｖにプリチャージする。
【００６４】
次に、セルのソース側のセレクト線ＳＧＳをハイレベルにする。閾値電圧が電位“ｖ＊’”より高いセルはオフする。このため、ビット線はハイレベルのままである。また、閾値電圧が電位“ｖ＊’”より低いセルはオンする。このため、ビット線はＶｓｓとなる。
【００６５】
次に、信号ＢＬＰＲＥに所定の電圧、例えばＶｄｄ＋Ｖｔｈを供給し、信号ＶＰＲＥをＶｄｄとすることにより、ＴＤＣの接続ノードＮ３をＶｄｄにプリチャージする。この後、信号ＢＬＣＬＡＭＰを所定の電圧、例えば０．９Ｖ＋Ｖｔｈとしてトランジスタ６１ｔをオンさせる。ＴＤＣのノードＮ３は、ビット線がローレベルの場合、ローレベルとなり、ビット線がハイレベルの場合、ハイレベルとなる。
【００６６】
ここで、書き込みを行なう場合、図７のＤＤＣにローレベルが記憶され、書き込みを行なわない場合、ＤＤＣにハイレベルが記憶されている。このため、信号ＶＲＥＧをＶｄｄとし、信号ＲＥＧをハイレベルにすると、書き込みを行なわない場合のみＴＤＣのノードＮ３が強制的にハイレベルとなる。この動作の後、ＰＤＣのデータをＤＤＣに移し、ＴＤＣの電位をＰＤＣに転送する。ＰＤＣにハイレベル信号がラッチされる場合は、セルに書き込みを行なわない場合と、セルにデータ“２”を書き込んでおり、セルの閾値電圧がベリファイ電位“ｖ＊’”に達した場合だけである。また、ＰＤＣにローレベル信号がラッチされる場合は、セルの閾値電圧が“ｖ＊’”に達しない場合である。
【００６７】
次に、ワード線の電圧を“ｖ＊’”から“ｖ’”に上げると、閾値電圧が“ｖ’”より低いセルはオンし、ビット線はＶｓｓとなる。
【００６８】
次に、信号ＢＬＰＲＥに所定の電圧、例えばＶｄｄ＋Ｖｔｈを供給し、信号ＶＰＲＥをＶｄｄとすることにより、ＴＤＣの接続ノードＮ３をＶｄｄにプリチャージする。この後、信号ＢＬＣＬＡＭＰを所定の電圧、例えば０．９Ｖ＋Ｖｔｈとしてトランジスタ６１ｔをオンさせる。ＴＤＣのノードＮ３は、ビット線がローレベルの場合、ローレベルとなり、ビット線がハイレベルの場合、ハイレベルとなる。
【００６９】
ここで、書き込みを行なう場合、図７のＤＤＣにローレベルが記憶され、書き込みを行なわない場合、ＤＤＣにハイレベルが記憶されている。このため、信号ＶＲＥＧをＶｄｄとし、信号ＲＥＧをハイレベルにすると、書き込みを行なわない場合のみＴＤＣのノードＮ３が強制的にハイレベルとなる。この動作の後、ＰＤＣのデータをＤＤＣに移し、ＴＤＣの電位をＰＤＣに転送する。ＰＤＣにハイレベル信号がラッチされる場合は、セルに書き込みを行なわない場合と、セルにデータ“２”を書き込んでおり、セルの閾値電圧がベリファイ電位“ｖ’”に達した場合だけである。また、ＰＤＣにローレベル信号がラッチされる場合は、セルの閾値電圧が“ｖ’”に達しない場合である。
【００７０】
この結果、ＤＤＣがハイレベルとなるのは、セルの閾値電圧が“ｖ＊’”を超えている場合と、書き込み非選択の場合であり、ＤＤＣがローレベルとなるのは、書き込みを行っている場合で、セルの閾値電圧が“ｖ＊’”以下の場合である。ＰＤＣがハイレベルとなるのは、セルの閾値電圧が“ｖ’”を超えている場合と、書き込み非選択の場合であり、ＰＤＣがローレベルとなるのは、書き込みを行っている場合で、セルの閾値電圧が“ｖ’”以下の場合である。
【００７１】
ＰＤＣがローレベルの場合、再び書き込み動作を行ない全てのデータ記憶回路１０のデータがハイレベルになるまで、このプログラム動作とベリファイ動作を繰り返す（Ｓ１８−Ｓ１５）が、ＰＤＣがローレベルでＤＤＣがハイレベルのセル、すなわち閾値電圧が“ｖ＊’”以上“ｖ’”以下の場合の書き込みは、ビット線に中間電位を入れて書き込みスピードを抑える。
【００７２】
上記プログラム動作は、ステップＳ１４においてクリアされたプログラム回数カウンタＰＣの値が、最大プログラム回数より少ない範囲において実行される。
【００７３】
（隣接セルプログラム）
図８に示すように、メモリセル１の第１ページに１ビットのデータの書き込んだ後、メモリセル１とワード方向に隣接したメモリセル２の第１ページの書き込み、メモリセル１とビット方向に隣接したメモリセル３の第１ページの書き込み、メモリセル１と対角に隣接したメモリセル４の第１ページの書き込みが順次行なわれる。これらの書き込み動作が行なわれると、書き込みデータによっては、浮遊ゲート間容量によって、メモリセル１の閾値電圧が上昇する。このため、メモリセル１のデータ“０”とデータ“２”の閾値電圧分布は、図１（ｂ）に示すように、電位が高いほうに広がる。
【００７４】
この後、図８に示す第５番目の書き込みにおいて、メモリセル１の第２ページに１ビットのデータが書き込まれる。
【００７５】
（第２ページプログラム）
図１（ｃ）（ｄ）は、第２ページプログラムの書き込み順序を示している。図２に示す従来の場合、第２ページの書き込みは、閾値電圧レベル“ａ’”“ｂ’”“ｃ’”へ同時に書き込んでいる。しかし、本実施形態は、第２ページプログラムの第１ステップにおいて、第１ページで閾値電圧レベル“ｖ’”まで書き込まれたセルを閾値電圧レベル“ｂ’”へ書き込む。この後、第２ステップにおいて、第２ページの入力データにより、閾値電圧レベル“ａ’”“ｃ’”へ同時に書き込み動作を行なう。又は、第２ページプログラムの第１ステップにおいて、第１ページで閾値電圧レベル“ｖ’”まで書き込まれたセルを閾値電圧レベル“ｂ’”と“ｃ’”へ書き込む。この後、第２ステップにおいて、閾値レベル“ａ’”へ書き込み動作を行なう。
【００７６】
図１０は、第２ページプログラムの一例を示すフローチャートである。第２ページプログラムも、先ずアドレスに応じて、図４に示す２ページが選択される。これと同時にページバッファがリセットされる。（Ｓ２１）
次に、書き込みデータを外部より入力し全てのデータ記憶回路内のＳＤＣに記憶する（Ｓ２２）。外部よりデータ“１”（書き込みを行なわない）が入力されると、データ記憶回路１０のＳＤＣのノードＮ２ａは、ローレベルになり、外部よりデータ“０”（書き込みを行なう）が入力されるとハイレベルとなる。
【００７７】
（内部データリード）（Ｓ２３）
先ず、セルへデータを書き込む前に、メモリセルの第１ページのデータが“０”であるか、“２”であるかを判断する必要がある。このため、メモリセルのデータを読み出す内部リード動作を行なう。内部データリードは、リード動作と全く同じである。通常メモリセルのデータが“０”であるか“２”であるかの判断において、選択ワード線には、リード時の電位“ｂ”を与える。しかし、第１ページのプログラム動作において、データ“２”は、通常より低い“ｖ’”までしか書き込んでいない。このため、メモリセルの閾値電圧は電位“ｂ”より低い場合もある。したがって、内部データリードでは、ワード線に“ａ”の電位を供給して読み出し動作をする。
【００７８】
図１１（ａ）は、内部データリード後のデータキャッシュのデータを示している。すなわち、第１ページの書き込みにおいて、データが書き込まれなかった場合、ＰＤＣのデータはローレベル（“０”）、書き込まれた場合、ハイレベル（“１”）となる。
【００７９】
（データキャッシュの設定  １回目）（Ｓ２４）
この後、データキャッシュを操作することにより、各データキャッシュに記憶されるデータは図１１（ｂ）に示すようになる。すなわち、図７に示すＳＤＣ，ＤＤＣ，ＤＤＣＱ，ＰＤＣのデータを転送、又はコピーすることにより、各データキャッシュのデータを図１１（ｂ）に示すように設定する。データキャッシュの操作は、本実施形態の本質ではないため、説明を省略する。
【００８０】
このデータキャッシュの設定１の途中、又は、内部リードの途中において、フラグセルのデータもロードされる。さらに、プログラム回数カウンタＰＣがクリアされる。
【００８１】
第１フラグセルＦＣ１は、メモリセルのデータ“１”となり、第２フラグセルＦＣ２は、メモリセルのデータ“２”と書き込まれる。このため、各メモリセル及びフラグセルに接続されるデータキャッシュも、書き込み後のメモリセルのデータに対応するようにセットされる。
【００８２】
第２ページ書き込み第１ステップは、第１ページの書き込みでベリファイレベル“ｖ’”に書き込まれたセルを“ｂ”レベル以上に書き込み、第２ページの書き込みデータに基づく“ａ”レベルへの書き込みは行なわない。このようにすることで、第１ページの書き込みデータと、第２ページの書き込みデータの閾値電圧分布が交わらないように制御する。
【００８３】
（第１ステップ）（Ｓ２５）
次いで、メモリセルにデータが書き込まれる。先ず、信号ＢＬＣ１をＶｓｇ（Ｖｄｄ＋Ｖｔｈ、例えば２．５Ｖ＋Ｖｔｈ）とすると、ＰＤＣがデータ“０”の場合、ビット線がＶｓｓとなり、データ“１”の場合、ビット線はＶｄｄになる。次に、信号ＢＬＣ１をＶｓｓとした後、信号ＶＲＥＧをＶｄｄ、信号ＲＥＧを中間電位＋Ｖｔｈ（１Ｖ＋Ｖｔｈ）とすると、ビット線がＶｓｓであった場合、中間電位（１Ｖ）となる。
【００８４】
ここで、選択ワード線をＶｐｇｍ、非選択ワード線をＶｐａｓｓとすると、ビット線がＶｄｄの場合、書き込みが行なわれない。また、ビット線がＶｓｓの場合、書き込みが起こり、ビット線が中間電位（１Ｖ）の場合、少しだけ書き込まれる。
【００８５】
（第１ステップベリファイベリファイ）
この後、ベリファイ動作を行なうが、この時“ａ”レベルのベリファイ（Ｓ２６，Ｓ２７）は、スキップする。したがって、ここでは先ずワード線の電位を“ｂ＊’”に設定して書き込みベリファイが行なわれる（Ｓ２８、Ｓ２９）。このベリファイ手順は第１ページと同様である。全てのＰＤＣがハイレベルとなるまで、プログラムとベリファイを繰り返す（Ｓ２５、Ｓ２８、Ｓ２９、Ｓ３２、Ｓ３３）。書き込みが終了すると各データキャッシュのデータは、図１２（ａ）に示すようになる。また、書き込みが終了すると、制御がステップＳ３２からＳ３４に移行される。ステップＳ３４において、２回目のプログラムがあると判別された場合、制御がステップＳ２４に移行される。
【００８６】
（データキャッシュの設定  ２回目）
この後、データキャッシュを操作することにより、各データキャッシュに記憶されるデータを、図１２（ｂ）に示すように設定する。
【００８７】
第１フラグセルＦＣ１は、メモリセルのデータ“１”に書き込み、第２フラグセルＦＣ２は、メモリセルのデータ“２”に書き込む。このため、第１、第２フラグセルＦＣ２に接続されるデータキャッシュも、図１２（ｂ）に示すように、書き込み後のメモリセルのデータに対応してセットされる。しかし、メモリセル及び第２フラグセルＦＣ２のデータ“２”への書き込みは終了しているため、ＰＤＣ＝１となる。
【００８８】
（第２ステップ）（Ｓ２５）  
次いで、メモリセルにデータが書き込まれる。先ず、信号ＢＬＣ１をＶｓｇとすると、ＰＤＣがデータ“０”の場合、ビット線がＶｓｓとなり、データ“１”の場合、ビット線はＶｄｄになる。次に、信号ＢＬＣ１をＶｓｓとした後、信号ＶＲＥＧをＶｄｄ、信号ＲＥＧを中間電位＋Ｖｔｈ（１Ｖ＋Ｖｔｈ）とする。すると、ビット線がＶｓｓであった場合、中間電位（１Ｖ）となる。
【００８９】
ここで、選択ワード線をＶｐｇｍ、非選択ワード線をＶｐａｓｓとすると、ビット線がＶｄｄの場合、書き込みが行なわれない。また、ビット線がＶｓｓの場合、書き込みが起こり、ビット線が中間電位（１Ｖ）の場合、少しだけ書き込まれる。
【００９０】
図１３（ａ）は、第２ページ書き込み第２ステップ後のデータキャッシュのデータを示している。
【００９１】
（第２ステップベリファイレベル“ａ”でのベリファイ）（Ｓ２６，Ｓ２７）
上記プログラム後、ワード線にベリファイ電圧“ａ＊’”、“ａ’”を順次設定して書き込みベリファイが行なわれる。ベリファイ手順は第１ページと同様であるが、データ“２”，“３”を書き込んでいるセルもこのベリファイをパスしてしまう。したがって、信号ＶＰＲＥをハイレベル、信号ＶＲＥＧをハイレベルとして、ＴＤＣをＶｄｄに充電する替わりに、ＳＤＣをハイレベルとして、データ“１”に書き込んでいるメモリセルのみＴＤＣをＶｄｄに充電する。この操作により、メモリセルのデータ“２”，“３”への書き込みセルは、このベリファイでパスしなくなる。
【００９２】
（第２ステップベリファイレベル“ｂ”でのベリファイ）（Ｓ２８、Ｓ２９）
この後、ワード線にベリファイ電圧“ｂ＊’”、“ｂ’”を順次設定して書き込みベリファイが行なわれる。ベリファイ手順は第１ページと同様であるが、データ“３”へ書き込んでいるメモリセルもこのベリファイでパスしてしまう。したがって、信号ＶＰＲＥをハイレベル、信号ＶＲＥＧをハイレベルとして、ＴＤＣをＶｄｄに充電する替わりに、信号ＲＥＧをハイレベルとし、データ“２”に書き込んでいるメモリセルのみ、ＴＤＣをＶｄｄに充電する。この操作により、データ“３”へ書き込んでいるメモリセルは、このベリファイでパスしなくなる。この第２ステップベリファイレベル“ｂ”でのベリファイは、第１ステップでデータ“２”への書き込みが行なわれているため、データ“２”への書き込みデータが存在しないため行なわれない。
【００９３】
（第２ステップベリファイレベル“ｃ”でのベリファイ）（Ｓ３０，Ｓ３１）
この後、ワード線にベリファイ電圧“ｃ＊’”、“ｃ’”が順次設定され、書き込みベリファイが行なわれる。ベリファイ手順は第１ページと同様である。
【００９４】
このようにして、全てのＰＤＣのデータが“１”になるまで、プログラムとベリファイ動作が繰り返される。上記ベリファイの途中において、データ“１”への書きこみは、早く終了する。このため、データ“１”へ書き込むセルが無くなるとプログラムベリファイ（ａ＊’，ａ’）のベリファイは行なわない。また、データ“２”へ書き込むセルが無くなるとプログラムベリファイ（ｂ＊’，ｂ’）のベリファイは行なわない。
【００９５】
図１４は、ベリファイ動作におけるワード線ＷＬ、ビット線ＢＬ、選択ゲート線ＳＧＤの動作の一例を示している。ビット線ＢＬを充電し、ワード線ＷＬの電位を“ａ＊’”とする。この後、選択ゲート線ＳＧＤをハイレベルとして選択ゲートＳ１がオンとされ、ビット線ＢＬが放電される。これによりワード線ＷＬの電位“ａ＊’”でのベリファイが行なわれる。次に、ワード線ＷＬの電位を“ａ’”としてビット線ＢＬが放電され、ワード線ＷＬの電位“ａ’”によりベリファイが行なわれる。
【００９６】
（第１ページリード）
図１５は、第１ページリードのフローチャートを示している。先ず、アドレスを指定し、図４に示す２ページを選択する。図１（ｂ）（ｃ）に示すように、第２ページの書き込みの前後において、閾値電圧の分布が変わっている。したがって、先ず、ワード線の電位を“ｂ”として読み出し動作を行ない第２フラグセルＦＣ２のデータが“０”か“１”であるかを判別する（Ｓ４１，Ｓ４２）。この判別において、第２フラグセルＦＣ２が複数セルある場合は、これらの多数決により、“０”か“１”を判断する。
【００９７】
第２フラグセルＦＣ２から読み出されたデータが“０”（メモリセルのデータが“２”）である場合、第２ページの書き込みが行われている。このため、セルの閾値電圧分布は、図１（ｃ）となっている。このようなセルのデータを判断するには、ワード線の電位を“ｂ”としてリード動作をすればよい。しかし、ワード線電位“ｂ”で読み出し動作をした結果は、既にデータ記憶回路１０に読み出されている。このため、データ記憶回路１０に記憶されているデータを外部に出力すれば良い（Ｓ４３）。
【００９８】
一方、第２フラグセルＦＣ２から読み出されたデータが“１”（メモリセルのデータが“０”）である場合、第２ページの書き込みが行われていない。このため、セルの閾値電圧分布は、図１（ａ）又は（ｂ）に示すようになっている。これらのメモリのデータを判断するには、ワード線の電位を“ａ”としてリード動作が行なわれる（Ｓ４４）。このようにしてデータ記憶回路１０にデータが読み出される。この後、データ記憶回路１０に読み出されたデータが外部に出力される（Ｓ４３）。
【００９９】
（第２ページリード）
図１６は、第２ページリードのフローチャートを示している。第２ページリードでは、先ず、アドレスを指定し、図４に示す２ページを選択する。図１（ｂ）（ｃ）に示すように、第２ページの書き込み前後で、閾値電圧分布が変わっている。しかし、第２ページの書き込み後は、図１（ｅ）に示すような閾値電圧分布になっている。このため、ワード線の電位を“ｃ”、“ａ”と２回替えて読み出し動作をしなくてはならない。
【０１００】
先ず、ワード線電位を“ｃ”として読み出しが行われる（Ｓ５１）。この後、ワード線電位を“ａ”として読み出し動作が行なわれる（Ｓ５２）。セルの閾値電圧がワード線電位“ａ”より低いか、ワード線電位“ｃ”より高い場合、データを“１”とし、セルの閾値電圧がワード線電位“ａ”より高くワード線電位“ｃ”より低い場合、データを“０”とする。第２ページ書き込み前において、第２ページのデータは“１”が出力されるべきである。しかし、図１（ａ）に示す閾値電圧分布になっている。このため、第２ページの書き込み後と同じ読み出し動作をすると出力データが“０”となることもある。したがって、第１フラグセルＦＣ１のデータが“０”か“１”であるかを判別する（Ｓ５３）。この結果、第１フラグセルＦＣ１のデータが“１”で、第２ページの書き込みが行なわれていない場合、出力データを“１”に固定する（Ｓ５４）。また、フラグセルのデータが“０”の場合、読み出したデータを出力する（Ｓ５５）。
【０１０１】
図１５、図１６に示すシーケンスによりメモリセルからデータを読み出すが、前述したように、第２ページの書込み途中において、電源が切られ、第２ページのデータが正常に書き込まれていない場合、メモリセルより読み出した第１ページのデータのデータが正しく無い場合がある。そこで、この第１ページのデータを読み出す場合の動作について説明する。
【０１０２】
（読み出し手順）
図１７は、ユーザ側の読み出し手順を示すフローチャートである。例えば図示せぬユーザ側のコントローラから、図３に示すコントローラ９を介してＮＡＮＤ型フラッシュメモリにリードコマンドを入力する（Ｓ６１）。これにより、アドレスに応じたメモリセルのデータが読み出されＳＤＣに転送される（Ｓ６２）。次に、ＮＡＮＤ型フラッシュメモリから、コントローラ９に読み出されたデータが順次に転送される。コントローラ９は、ＥＣＣを復号するための計算を行う（Ｓ６３）。コントローラ９は、全データが転送された後、データにエラーが無いか、或いはＥＣＣで訂正できるかを判断する（Ｓ６４）。エラーが無いか、ＥＣＣで訂正できる場合、読み出されたデータは正常である。ＥＣＣで訂正できない場合、書き込み中に異常終了した可能性がある。従来、書き込み異常は次の３通りに分類される。
【０１０３】
（１）第１ページ書き込み中にエラーが発生し、第１ページのデータを読み出すことができない。  
（２）第２ページ書き込み中にエラーが発生し、第１ページのデータを読み出すことができない。  
（３）第２ページ書き込み中にエラーが発生し、第２ページのデータを読み出すことができない。  
【０１０４】
（１）と（３）は、書き込み中のセルがエラーとなっているため、当然読み出すことができない。第１の実施形態は、（２）の場合を救済している。すなわち、第１ページのデータの破壊を防止して、第１ページのデータを読み出し可能としている。
【０１０５】
第１の実施形態において、各書き込み段階における結果を分類すると次のようになる。
【０１０６】
（１）第１ページ書き込み（フラグセル：消去状態のまま）  
・本体セル（第１、第２フラグセル及びＥＣＣ用セル以外のセル）書き込みＮＧの場合
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＮＧ  
特別コマンドでワード線電位“ａ”による第１ページ読み出しＮＧ  
・本体セル書き込みＯＫの場合  
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＯＫ  
特別コマンドでワード線電位“ａ”による第１ページ読み出しＯＫ  
（２）隣接セル書き込み  
（３）第２ページ書き込みの第１ステップ（第２フラグセルＦＣ２→電位“ｂ”）  
・第２フラグセルＦＣ２書き込みＮＧで、本体セル書き込みＮＧの場合  
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＯＫ  
特別コマンドでワード線電位“ａ”による第１ページ読み出しＯＫ  
・第２フラグセルＦＣ２書き込みＯＫで、本体セル書き込みＮＧの場合  
通常読み出し（ワード線電位“ｂ”）による第１ページ読み出しＮＧ  
特別コマンドでワード線電位“ａ”による第１ページ読み出しＯＫ  
・第２フラグセルＦＣ２書き込みＮＧで、本体セル書き込みＯＫの場合  
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＯＫ  
特別コマンドでワード線電位“ａ”による第１ページ読み出しＯＫ  
・第２フラグセルＦＣ２書き込みＯＫで、本体セル書き込みＯＫの場合  
通常読み出し（ワード線電位“ｂ”）による第１ページ読み出しＯＫ  
特別コマンドでワード線電位“ａ”による第１ページ読み出しＯＫ  
（４）第２ページ書き込み第２ステップ（第２フラグセルＦＣ２、電位“ｂ”のまま）  
通常読み出し（ワード線電位“ｂ”）による第１ページ読み出しＯＫ  
特別コマンドでワード線電位“ａ”リードによる第１ページ読み出しＮＧ
【０１０７】
上記関係において、第２ページプログラムの第１ステップ中に中断された場合で、第２フラグセルＦＣ２が書き込みＯＫで本体セルが書き込みＮＧの場合、ワード線電位“ｂ”で読み出し動作を行なってしまう。このため、本体セルの閾値電圧が電位“ｂ”に到達していないため読み出し結果がＮＧとなる。
【０１０８】
したがって、この場合、図１７にステップＳ６５に示すように、フラグセルのデータによらず、外部から特別なリードコマンド（ｘｘｈ＋リードコマンド）が供給される。この特別なリードコマンドに応じて、ワード線電位“ａ”でリード動作が行なわれる（Ｓ６６）。メモリセルからＳＤＣに読み出されたデータは、コントローラ９に順次に転送される。コントローラ９は、ＥＣＣを復号するための計算を行う（Ｓ６７）。
【０１０９】
コントローラ９へ全データが転送された後、エラーが無いか、ＥＣＣで訂正できるかが判別される（Ｓ６８）。この結果、エラーが無いか、ＥＣＣで訂正できる場合、読み出されたデータが出力される（Ｓ６９）。また、ＥＣＣで訂正できない場合、上記（１）又は（３）によるエラー、或いは放置などによるセルの劣化と考えられデータを読み出すことができない（Ｓ７０）。
【０１１０】
（イレーズ）
消去動作は、先ず、アドレスを指定し、図４の破線で示すブロックを選択する。消去動作を行なうと、メモリセルのデータは“０”となり、第１ページ、第２ページの何れでリードを行なってもデータ“１”が出力される。
【０１１１】
上記第１の実施形態によれば、第２ページの書き込みにおいて、第１ページの書き込み後、隣接セルの書き込みが行なわれ、閾値電圧の分布が広がったデータ“２”を本来の閾値電圧に設定し、この後、その他のデータを書き込んでいる。このため、第２ページの書き込みにおいてエラーが発生した場合においても、第１ページの書き込みにおいて書き込まれたデータ“０”、“２”の破壊を防止できる。したがって、第１ページのデータを読み出すことが可能である。
【０１１２】
尚、上記第２ページの書き込みを第１ステップ、第２ステップの２段階とした場合、書き込み速度が低下する。このため、第１ページの破壊を許容して高速で書き込みたいユーザの場合、第１ステップのメモリセルデータ“２”への書き込み及びベリファイ“ｂ”は行なわず、第２ステップで書き込みを行うようにしてもよい。このようなユーザの場合、例えば別の書き込みコマンドを設定したり、制御信号及び制御電圧発生回路７に設けられたフューズ回路７−１に、このユーザ用データを設定したりして切り替えることができる。
【０１１３】
図１３（ｂ）は、第２ページ第１ステップの書き込みを省略する場合におけるデータキャッシュのデータを示している。
【０１１４】
また、第１の実施形態に係る書き込み、及び読み出しを採用する条件を、例えば次のように設定することができる。  
・第１ページ書き込み後、電源が遮断され、その後、電源が再投入され、第２ページの書き込みが行なわれる場合。  
・第１ページ、第２ページを連続して書き込む場合と、非連続で書き込む場合をコマンドにより切り替える場合。  
・第１ページのデータの破壊防止を望むユーザの場合。この場合、予め、フューズ回路７−１により第１の実施形態の書き込み、及び読み出しを方法を設定しておけば、新たなコマンドの入力は不要である。
【０１１５】
（第２の実施形態）
上記第１の実施形態は、第２ページの書き込みにおいて、第１フラグセルＦＣ１をメモリセルのデータ“０”から“１”へ書き込み、第２フラグセルＦＣ２をメモリセルのデータ“０”から“２”へ書き込んだ。しかし、図１（ｃ）に示す第２フラグセルＦＣ２の閾値電圧分布が、閾値電圧“ｃ”より低い場合は、第１フラグセルＦＣ１を省略することも可能である。
【０１１６】
図１８は、第２の実施形態における第２ページの読み出しシーケンスを示しており、第１の実施形態と同一部分には同一符号を付している。第２の実施形態の場合、出力データを判別する際、第１フラグセルＦＣ１に代えて、第２フラグセルＦＣ２のデータが用いられている（Ｓ７１）。
【０１１７】
第２の実施形態によっても、第１の実施形態と同様の効果を得ることができる。しかも、第２の実施形態の場合、第１フラグセルＦＣ１を省略可能であるため、構成を簡単化することが可能である。
【０１１８】
（第３の実施形態）
上記第１の実施形態は、第２ページの書き込みにおいて、第１フラグセルＦＣ１をメモリセルのデータ“０”から“１”へ書き込み、第２フラグセルＦＣ２をメモリセルのデータ“０”から“２”へ書き込んだ。しかし、メモリセルは、データ“０”から“１”への書き込みと、データ“２”から“３”の書き込みしかない。このため、第２フラグセルＦＣ２の書き込みが高速化の妨げとなる場合がある。そこで、第２フラグセルＦＣ２を使用せず、第１フラグセルＦＣ１のみ使用する。
【０１１９】
この場合、第２ページプログラムは、第１フラグセルのみ書き込む。第２ページの読み出しシーケンスは、図１０に示す通りである。
【０１２０】
図１９は、第３の実施形態における第１ページの読み出しシーケンスを示すフローチャートであり、図１５と同一部分には同一符号を付している。第１ページの読み出しにおいて、先ず、リードレベル“ａ”で読み出す（Ｓ４１）。第１フラグセルＦＣ１の判定の結果（Ｓ４２）、第１フラグセルＦＣ１が書き込まれている場合、第２ページの書き込みが行われている。このため、リードレベル“ｂ”で再度読み出す（Ｓ８１）。また、第１フラグセルＦＣ１が書き込まれていない場合、第２ページの書き込みは行なわれていない。このため、リードレベル“ａ”で読み出した結果を出力する（Ｓ４３）。
【０１２１】
（読み出し手順）
ユーザの読み出し手順は、図１７に示す通りである。しかし、第１ページの読み出しと、第１フラグセルＦＣ１と本体セルの関係は次のようになる。
【０１２２】
（１）第１ページ（フラグセルは消去状態のまま）
・本体セル書き込みＮＧの場合
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＮＧ  
特別コマンドでワード線電位“ｂ”リードによる第１ページ読み出しＮＧ  
・本体セル書き込みＯＫの場合  
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＯＫ  
特別コマンドでワード線電位“ｂ”による第１ページ読み出しＮＧ  
（２）隣接セル書き込み  
（３）第２ページ書き込みの第１ステップ（第１フラグセルＦＣ１は消去状態のまま）  
・本体セル書き込みＮＧの場合  
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＯＫ  
・本体セル書き込みＯＫの場合  
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＯＫ  
（４）第２ページ書き込みの第２ステップ（第１フラグセルＦＣ１を電位“ａ”へ書き込む）  
・第１フラグセルＦＣ１書き込みＮＧの場合  
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＮＧ  
特別コマンドでワード線電位“ｂ”による第１ページ読み出しＯＫ  
・第１フラグセルＦＣ１書き込みＯＫの場合  
通常読み出し（ワード線電位“ｂ”）による第１ページ読み出しＯＫ  
特別コマンドでワード線電位“ｂ”による第１ページ読み出しＯＫ
【０１２３】
上記第２ページ書き込み第２ステップにおいて、第１フラグセルＦＣ１が書き込みＮＧの場合、ワード線電位“ａ”で読み出し動作を行なってしまう。第１ページのデータは第１ステップで、電位“ｂ”以上に書き込まれている。しかし、第２ステップにおいて、第２ページの書き込みデータは、電位“ａ”以上になっている可能性がある。このため、ワード線電位“ａ”で読み出すとＮＧとなる。
【０１２４】
そこで、この場合、図１７のステップＳ６５に示すように、外部より特別なコマンドをＮＡＮＤ型フラッシュメモリに供給し、フラグセルによらず、ワード線電位“ｂ”でリード動作を行なう。
【０１２５】
上記第３の実施形態によれば、第２フラグセルＦＣ２を使用せず、第１フラグセルＦＣ１のみによりデータを書き込んでいる。このため、第２ページの書き込み動作を高速化可能である。しかも、第２ページの書き込み時にエラーが発生した場合においても第１ページのデータを読み出すことができる。したがって、半導体記憶装置の信頼性を向上できる。
【０１２６】
（第４の実施形態）
上記第１、２、３の実施形態は、図１０に示すように、第２ページの書き込みを第１ステップ、第２ステップの順で行なった。しかし、図１（ｂ）の隣接セルの書き込みが終了すると、第２ページのデータが確定する前に、“ｂ’”のレベルまで書き込みをすることは可能である。
【０１２７】
したがって、最後の隣接セルの書き込みに続いて、連続してデータ“２”を本来の閾値電圧“ｂ’”まで書き込むことができる。或いは、最後の隣接セルの書き込みに続いて、新規な別のコマンドを外部より供給し、このコマンドに応じてデータ“２”を本来の閾値電圧“ｂ’”まで書き込むことも可能である。
【０１２８】
第４の実施形態によれば、第２ページのデータが確定する以前に、データ“２”を本来の閾値電圧“ｂ’”まで書き込むことができるため、全体的な書き込み動作を高速化することができる。第１、第２、第３の実施形態において、第１ページの書き込み速度は、第２ページの書き込み速度より大幅に速くアンバランスであった。しかし、第４の実施形態の場合、第２ページの書き込み速度を高速化することができ、第１ページと第２ページの書き込み速度をほぼ同等とすることが可能である。
【０１２９】
（第５の実施形態）
上記第１乃至４の実施形態において、第２ページの書き込みは、第１ステップで第１ページのデータを電位“ｂ’”以上に書き込んだ後、第２ページの書き込みデータに基づいて、消去セルから電位“ａ’”への書き込みを行っている。この動作により、第１ページのデータと第２ページのデータの閾値電圧分布が重ならないように制御している。しかし、フラグセルは、本体セルの書き込みと同じ第１ステップ又は第２ステップにおいて書き込んでいる。このため、リードシーケンス時に、ＥＣＣで救済できない場合、特別なリードコマンドにより読み出しを行なっていた。
【０１３０】
しかし、例えば第２ページ書き込みの第１ステップにおいて、第１ページのデータを電位“ｂ’”まで書き込んだ後、第２ステップにおいて、フラグセルを書き込む。この後、第３ステップで、第２ページの書き込みデータに基づいて、消去セルから電位“ａ’”へ書き込む。このような動作とした場合、第１ページのデータと第２ページのデータの閾値電圧分布の重なりを防止できる。しかも、フラグセルのデータに従って読み出し動作をすることにより、ＥＣＣを使用することなく、第１ページのデータを読み出すことができる。
【０１３１】
例えば第３の実施形態のように、第１フラグセルＦＣ１のみを使用した場合において、第２ページの書き込み中に電源遮断などで、書き込みが中断した場合、第１ページの読み出しと、第１フラグセルＦＣ１と本体セルの関係は次のようになる。
【０１３２】
（１）第１ページ（第１フラグセルＦＣ１は消去状態のまま）  
・本体セル書き込みＮＧの場合  
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＮＧ  
・本体セル書き込みＯＫの場合  
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＯＫ  
（２）隣接セル書き込み  
（３）第２ページ書き込みの第１ステップ（第１フラグセルＦＣ１は消去状態のまま、本体セルを電位“ｂ’”に書き込み）  
・本体セル書き込みＮＧの場合  
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＯＫ  
・本体セル書き込みＯＫの場合  
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＯＫ  
（４）第２ページ書き込みの第２ステップ（第１フラグセルＦＣ１を電位“ａ”又は消去状態の閾値電圧より高い閾値電圧へ書き込む）  
・第１フラグセルＦＣ１書き込みＮＧの場合  
通常読み出し（ワード線電位“ａ”）による第１ページ読み出しＯＫ  
・第１フラグセルＦＣ１書き込みＯＫの場合  
通常読み出し（ワード線電位“ｂ”）による第１ページ読み出しＯＫ  
（５）第２ページ書き込みの第３ステップ（本体セルを電位“ａ’”へ書き込む）  
・本体セル書き込みＮＧの場合  
通常読み出し（ワード線電位“ｂ”）による第１ページ読み出しＯＫ  
・本体セル書き込みＯＫの場合  
通常読み出し（ワード線電位“ｂ”）による第１ページ読み出しＯＫ
【０１３３】
上記のように、第５の実施形態によれば、第２ページ書き込み第２ステップにおいて第１フラグセルＦＣ１を電位“ａ”に書き込んでいる。この第１フラグセルＦＣ１への書き込みが失敗又は成功のいずれにおいても、ワード線電位を“ａ”又は“ｂ”とすることにより、第１ページのデータを読み出すことができる。このため、ＥＣＣを使用することなく、第１ページのデータは読み出すことが可能である。したがって、ＥＣＣの複合に要する計算時間を待つことなくデータを読み出すことができるため、高速な読出しが可能である。
【０１３４】
尚、本発明は、上記各実施形態に限定されるものではなく、発明の要旨を変えない範囲において、種々変形実施可能なことは勿論である。
【図面の簡単な説明】
【０１３５】
【図１】図１（ａ）乃至（ｅ）は、本発明のメモリセルのデータとメモリセルの閾値電圧の関係を示す図。
【図２】図２（ａ）乃至（ｄ）は、従来のメモリセルのデータとメモリセルの閾値電圧の関係を示す図。
【図３】本発明が適用される半導体記憶装置の概略構成を示す図。
【図４】図３に示すメモリセルアレイ及びビット線制御回路の構成を示す回路図。
【図５】図５（ａ）（ｂ）はメモリセル及び選択トランジスタを示す断面図。
【図６】メモリセルアレイの１つのＮＡＮＤセルを示す断面図。
【図７】図４に示すデータ記憶回路の一例を示す回路図。
【図８】ＮＡＮＤセルに対する書き込み順序を示す図。
【図９】第１ページのプログラムの一例を示すフローチャート。
【図１０】第２ページプログラムの一例を示すフローチャート。
【図１１】図１１（ａ）は、内部データリード後のデータキャッシュのデータを示す図、図１１（ｂ）は、１回目のデータキャッシュ設定後のデータキャッシュのデータを示す図。
【図１２】図１２（ａ）は、第２ページ第１ステップ書込み後のデータキャッシュのデータを示す図、図１２（ｂ）は、２回目のデータキャッシュ設定後のデータキャッシュのデータを示す図。
【図１３】図１３（ａ）は、第２ページ第２ステップ書込み後のデータキャッシュのデータを示す図、図１３（ｂ）は、第２ページ第１ステップの書き込みを省略する場合におけるデータキャッシュのデータを示す図。
【図１４】ベリファイ動作におけるワード線、ビット線、選択ゲート線の動作の一例を示す波形図。
【図１５】第１ページリードを示すフローチャート。
【図１６】第２ページリードを示すフローチャート。
【図１７】ユーザ側の読み出し手順を示すフローチャート。
【図１８】第２の実施形態における第２ページの読み出しシーケンスを示すフローチャート。
【図１９】第３の実施形態における第１ページの読み出しシーケンスを示すフローチャート。
【符号の説明】
【０１３６】
１…メモリセルアレイ、１−１…ＥＣＣ領域、２…ビット線制御回路、３…カラムデコーダ、４…データ入出力バッファ、６…ワード線制御回路、７…制御信号及び制御電圧発生回路、７−１…フューズ回路、９…コントローラ。
【図１】
2007048410.tif 000003
【図２】
2007048410.tif 000004
【図３】
2007048410.tif 000005
【図４】
2007048410.tif 000006
【図５】
2007048410.tif 000007
【図６】
2007048410.tif 000008
【図７】
2007048410.tif 000009
【図８】
2007048410.tif 000010
【図９】
2007048410.tif 000011
【図１０】
2007048410.tif 000012
【図１１】
2007048410.tif 000013
【図１２】
2007048410.tif 000014
【図１３】
2007048410.tif 000015
【図１４】
2007048410.tif 000016
【図１５】
2007048410.tif 000017
【図１６】
2007048410.tif 000018
【図１７】
2007048410.tif 000019
【図１８】
2007048410.tif 000020
【図１９】
2007048410.tif 000021