(57)【要約】【課題】  隣接セルのデータにより、閾値電圧が変動していた。【解決手段】  ｉビットのデータが記憶されているメモリセル１に対して、次のデータを記憶する前に、隣接するメモリセル２にｉビット以下のデータを事前に書き込む。このｉビット以下のデータの書き込みは、本来の閾値電圧（ｉビットのデータを記憶する際の実際の閾値電圧）より低くする。隣接するメモリセル２の書き込み後、メモリセル１の閾値電圧を上げる書き込みを行なう。閾値電圧を上げる書き込み前後で、ｉビットのデータが本来の閾値電圧であるのか、それより低い閾値電圧であるのか分からなくなってしまう。これを区別するため、フラグ用のメモリセル（フラグセル）を用意し、このフラグセルのデータに応じた読み出し動作をする。【選択図】      図７
2004192789.tif 000002
【特許請求の範囲】
【請求項１】
ｎ値（ｎは２以上の自然数）を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、
前記メモリセルアレイのｊ値（ｊ＜ｎ）のデータが記憶されている第１メモリセルに、次の少なくとも１値のデータを記憶する前に、前記第１メモリセルに隣接する少なくとも１つのメモリセルにｊ値以下のデータを書き込む書き込み回路と
を具備することを特徴とする半導体記憶装置。
【請求項２】
ｎ値（ｎは２以上の自然数）のデータを記憶し、マトリックス状に配置された少なくとも１つの第１メモリセルと、前記第１メモリセルと同時に選択される少なくとも１つの第２メモリセルとを有するメモリセルアレイと、
前記メモリセルアレイのｊ値（ｊ＜ｎ）のデータが記憶されている前記第１メモリセルに、次の少なくとも１値のデータの書き込む時、前記第２メモリセルの論理レベルを第１の論理レベルから第２の論理レベルに変えるデータを書き込む書き込み回路と
を具備することを特徴とする半導体記憶装置。
【請求項３】
ｋ（ｋは２以上の自然数）ビットのデータを記憶し、マトリックス状に配置された少なくとも１つの第１メモリセルと、前記第１メモリセルと同時に選択される少なくとも１つの第２メモリセルとを有するメモリセルアレイと、
前記メモリセルアレイのｉビット（ｉ＜ｋ）のデータが記憶されている前記第１メモリセルに、次の少なくとも１ビットのデータの書き込む時、前記第２メモリセルの論理レベルを第１の論理レベルから第２の論理レベルに変えるデータを書き込む書き込み回路と
を具備することを特徴とする半導体記憶装置。
【請求項４】
ｋ（ｋは２以上の自然数）ビットを記憶するメモリセルと、
外部から入力されるデータを記憶する第１の記憶回路と、
前記メモリセルより読み出されるデータ、又は、外部から入力されるデータを記憶する第２の記憶回路と、
書き込み動作時、前記メモリセルが記憶しているデータに応じて、前記第１の記憶回路のデータを保持又は変更し、前記第２の記憶回路のデータを保持又は変更し、書き込み動作の途中で、前記第１の記憶回路に記憶されているデータが書き込み動作に不要となった場合、前記第１の記憶回路に次の書き込みデータを外部より入力させる制御回路と
を具備すること特徴とする半導体記憶装置。
【請求項５】
マトリックス状に配置されたｋビット（ｋは２以上の自然数）を記憶する少なくとも１つの第１メモリセルと、前記第１メモリセルと同時に選択される少なくとも１つの第２メモリセルとを有するメモリセルアレイと、
前記メモリセルアレイのｉビット（ｉ＜ｋ）のデータが記憶されている第１メモリセルに、次の少なくとも１ビットのデータを記憶する前に、前記第１メモリセルに隣接する少なくとも１つのメモリセルにｉビット以下のデータを書き込み、前記第１メモリセルに１ビットのデータを書き込むとき、前記第２メモリセルにデータを書き込む書き込み回路と、
前記第１メモリセルから読み出したデータを出力する時、前記第２メモリセルに記憶されたデータに応じて、出力するデータの論理レベルを制御する読み出し回路と
を具備することを特徴とする半導体記憶装置。
【請求項６】
複数の閾値電圧により複数のデータを記憶するメモリセルと、
前記ビット線に接続され、外部から供給されるデータ及び前記メモリセルから読み出されたデータに応じて、第１又は第２論理レベルのデータを記憶する第１データ記憶回路及び第２データ記憶回路を有し、
前記第１データ記憶回路のデータが第１論理レベルの場合、メモリセルの閾値電圧を変化させる第１の書き込み動作を行ない、
前記第１データ記憶回路のデータが第２論理レベルの場合で、前記第２データ記憶回路のデータが第１の論理レベルである場合、閾値電圧を変化させる第２の書き込み動作を行ない、
前記第１データ記憶回路のデータが第２論理レベルの場合で、前記第２データ記憶回路のデータが第２の論理レベルである場合、閾値電圧を変化させず、
第１のベリファイ動作において、
前記第１データ記憶回路のデータが第１論理レベルであり、前記第２データ記憶回路のデータが第１論理レベルであり、前記メモリセルの閾値電圧が第１のベリファイ電位に達している場合、前記第１データ記憶回路のデータを第２論理レベルに変化させ、前記メモリセルの閾値電圧が前記第１のベリファイ電位に達していない場合、前記第１データ記憶回路のデータを変化させず、
前記第１データ記憶回路のデータが第１論理レベルであり、前記第２データ記憶回路のデータが第２論理レベルの場合、前記第１データ記憶回路のデータを変化させず、前記第１データ記憶回路のデータが第２論理レベルである場合、前記第１データ記憶回路のデータを変化させず第２論理レベルに保持し、
第２のベリファイ動作において、
前記第２データ記憶回路のデータが第１論理レベルであり、前記メモリセルの閾値電圧が第２のベリファイ電位の閾値電圧に達している場合、前記第２データ記憶回路のデータを第２論理レベルに変化させ、前記メモリセルの閾値電圧が前記第２のベリファイ電位に達していない場合、前記第２データ記憶回路のデータは第１論理レベルのまま変化させず、
前記第１データ記憶回路のデータが第２論理レベルになり、前記第２データ記憶回路のデータが第２の論理レベルになるまで書き込み動作を行なうことを特徴とする半導体記憶装置。
【請求項７】
ｎ値（ｎは１以上の自然数）の閾値電圧により複数のデータを記憶するメモリセルと、
少なくとも前記メモリセルから読み出された第１又は第２の論理レベルのデータを記憶する第１のデータ記憶回路と、
データ線に接続され、少なくとも前記データ線から供給された第１又は第２の論理レベルのデータを記憶する第２のデータ記憶回路と、
少なくとも前記メモリセルから読み出されたデータ又は前記第１のデータ記憶回路から供給された第１又は第２の論理レベルのデータを記憶する第３のデータ記憶回路と、
前記第１、第２、第３のデータ記憶回路のデータを操作する制御回路とを具備し、
前記制御回路は、前記第１のデータ記憶回路の論理レベルが、第２の論理レベルの場合、前記メモリセルの閾値電圧を変化させず、前記第１のデータ記憶回路の論理レベルが、第１の論理レベルの場合であり、前記第３のデータ記憶回路の論理レベルが第１の論理レベルの場合、前記メモリセルの閾値電圧を上げる第１の書き込み動作を行ない、前記第３のデータ記憶回路の論理レベルが第２の論理レベルの場合、前記メモリセルの閾値電圧を上げる第２の書き込み動作を行ない、
前記制御回路は、第１のベリファイ動作時、前記第２のデータ記憶回路の論理レベルが、第１の論理レベルの場合、前記メモリセルをプリチャージせず、第２のデータ記憶回路の論理レベルが、第２の論理レベルの場合、前記メモリセルをプリチャージする、
前記制御回路は、前記メモリセルの閾値電圧が第１のベリファイ電圧を超えている場合、前記第３のデータ記憶回路の論理レベルを第２の論理レベルに設定し、前記メモリセルの閾値電圧が第１のベリファイ電圧を超えていない場合、前記第３のデータ記憶回路の論理レベルを変化させず、前記メモリセルの閾値電圧が前記第１のベリファイ電圧より高い第２のベリファイ電圧を超えている場合、前記第１のデータ記憶回路の論理レベルを第２の論理レベルに設定し、前記メモリセルの閾値電圧が第２のベリファイ電圧を超えていない場合、第１のデータ記憶回路の論理レベルを変化させず、
前記制御回路は、第２のベリファイ動作時、前記第３のデータ記憶回路の論理レベルが、前記第１の論理レベルの場合、前記メモリセルをプリチャージせず、前記第２のデータ記憶回路の論理レベルが、前記第２の論理レベルの場合、前記メモリセルをプリチャージし、
前記制御回路は、前記メモリセルの閾値電圧が前記第２のベリファイ電圧より高い第３のベリファイ電圧を超えている場合、前記第１のデータ記憶回路の論理レベルを第２の論理レベルに設定し、前記メモリセルの閾値電圧が前記第３のベリファイを超えていない場合、前記第１のデータ記憶回路の論理レベルを変化させず、
前記制御回路は、第３のベリファイ動作時、前記メモリセルの閾値電圧が前記第３のベリファイ電圧より高い第４のベリファイ電圧を超えている場合、前記第１のデータ記憶回路の論理レベルを前記第２の論理レベルに設定し、前記メモリセルが前記第４のベリファイ電圧を超えていない場合、第１のデータ記憶回路の論理レベルを変化させず、前記第１のデータ記憶回路の論理レベルが前記第２の論理レベルになるまで、前記第１、第２の書き込み動作及びベリファイ動作を繰り返す
ことを特徴とする半導体記憶装置。
【請求項８】
ｎ値（ｎは１以上の自然数）の閾値電圧により複数のデータを記憶するメモリセルと、
少なくとも前記メモリセルから読み出された第１又は第２の論理レベルのデータを記憶する第１のデータ記憶回路と、
データ線に接続され、少なくとも前記データ線から供給された第１又は第２の論理レベルのデータを記憶する第２のデータ記憶回路と、
少なくとも前記メモリセルから読み出されたデータ又は前記第１のデータ記憶回路から供給された第１又は第２の論理レベルのデータを記憶する第３のデータ記憶回路と、
前記第１、第２、第３のデータ記憶回路のデータを操作する制御回路とを具備し、
前記制御回路は、前記メモリセルに第１ページのデータを書き込んだ後、前記第２のデータ記憶回路にデータ線から第２ページのデータを記憶させ、前記メモリセルから読み出した前記第１ページのデータを前記第１のデータ記憶回路に記憶させ、第１、第２、第３のデータ記憶回路のデータを操作し、メモリセルにデータを“２”を書き込んでいる場合と、メモリセルにデータを“１”を書き込んでいて第１のベリファイ電圧を超えている場合、前記第３のデータ記憶回路に前記第２の論理レベルを設定し、これ以外の場合前記第３のデータ記憶回路に前記第１の論理レベルを設定する
ことを特徴とする半導体記憶装置。
【請求項９】
ｎ値（ｎは１以上の自然数）の閾値電圧により複数のデータを記憶するメモリセルと、
少なくとも前記メモリセルから読み出された第１又は第２の論理レベルのデータを記憶する第１のデータ記憶回路と、
データ線に接続され、少なくとも前記データ線から供給された第１又は第２の論理レベルのデータを記憶する第２のデータ記憶回路と、
少なくとも前記メモリセルから読み出されたデータ又は前記第１のデータ記憶回路から供給された第１又は第２の論理レベルのデータを記憶する第３のデータ記憶回路と、
前記第１、第２、第３のデータ記憶回路のデータを操作する制御回路とを具備し、
前記制御回路は、前記データ線から供給された第１ページのデータを前記第２のデータ記憶回路に記憶させ、前記第２のデータ記憶回路に記憶された前記第１ページのデータを前記第１のデータ記憶回路に転送し、前記データ線から供給された第２ページのデータを前記第２のデータ記憶回路に記憶させ、前記第１のデータ記憶回路に記憶された第１ページのデータと前記第２のデータ記憶回路に記憶された第２ページのデータより、書き込みデータを設定し、前記書き込みデータに基づき前記メモリセルに前記第１ページのデータと前記第２ページのデータを同時に書き込む
ことを特徴とする半導体記憶装置。
【請求項１０】
各々が少なくとも第１、第２、第３、第４の閾値電圧のうちの１つを持つことができ、２ビットのデータを記憶することが可能な複数のメモリセルと、
前記複数のメモリセルの閾値電圧を制御してデータを書き込む書き込み回路、
前記書き込み回路は、
書き込むべきデータに応じて、第１のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第３の閾値電圧に変える第１のステップと、
書き込むべきデータに応じて、第２のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第３の閾値電圧に変える第２のステップと、
前記第１のメモリセルの閾値電圧が前記第１の閾値電圧である場合、書き込むべきデータに応じて、前記第１のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第２の閾値電圧に変える、前記第１のメモリセルの閾値電圧が前記第３の閾値電圧である場合、書き込むべきデータに応じて、前記第１のメモリセルの閾値電圧を、前記第３の閾値電圧に維持する、あるいは、前記第３の閾値電圧から前記第４の閾値電圧に変える第３のステップとを含み、
前記書き込み回路は、前記第３のステップにより、前記第１のメモリセルの閾値電圧を前記第３の閾値電圧に維持する場合において、前記第１のメモリセルの閾値電圧が所定の閾値電圧に達していない場合、前記第１のメモリセルの閾値電圧を変化させる
ことを特徴とする半導体記憶装置。
【請求項１１】
前記書き込み回路は、前記第２のメモリセルの閾値電圧が前記第１の閾値電圧である場合、書き込むべきデータに応じて、前記第２のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第２の閾値電圧に変える、前記第２のメモリセルの閾値電圧が前記第３の閾値電圧である場合、書き込むべきデータに応じて、前記第２のメモリセルの閾値電圧を、前記第３の閾値電圧に維持する、あるいは、前記第３の閾値電圧から前記第４の閾値電圧に変える第４のステップをさらに具備することを特徴とする請求項１０記載の半導体記憶装置。
【請求項１２】
前記書き込み回路は、前記第４のステップにおいて前記第３の閾値電圧に維持する場合で、前記第２のメモリセルの閾値電圧が所定の閾値電圧に達していない場合、前記第２のメモリセルの閾値電圧を変化させることを特徴とする請求項１１記載の半導体記憶装置。
【請求項１３】
前記第１のメモリセルと前記第２のメモリセルは隣接して配置されていることを特徴とする請求項１０記載の半導体記憶装置。
【請求項１４】
前記第１のメモリセルと前記第２のメモリセルは共通のワード線に接続され、かつ隣接して配置されていることを特徴とする請求項１０記載の半導体記憶装置。
【請求項１５】
前記第１のメモリセルと前記第２のメモリセルは共通のビット線に接続され、かつ隣接して配置されていることを特徴とする請求項１０記載の半導体記憶装置。
【請求項１６】
前記第３の閾値電圧の値の定義は、前記第３のステップの前後で異なることを特徴とする請求項１０記載の半導体記憶装置。
【請求項１７】
前記第３の閾値電圧の値を制御するため、前記第３のステップが行われたか否かを示すデータを記憶する第３のメモリセルさらに具備することを特徴とする請求項１６記載の半導体記憶装置。
【請求項１８】
各々が少なくとも第１、第２、第３、第４の閾値電圧のうちの１つを持つことができ、２ビットのデータを記憶することが可能な複数のメモリセルと、
前記複数のメモリセルの閾値電圧を制御してデータを書き込む書き込み回路とを具備し、
前記書き込み回路は、
書き込むべきデータに応じて第１のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第３の閾値電圧に変える第１のステップと、
書き込むべきデータに応じて第２のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第３の閾値電圧に変える第２のステップと、
書き込むべきデータに応じて第３のメモリセルの閾値電圧を前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第３の閾値電圧に変える第３のステップと、
前記第１のメモリセルの閾値電圧が前記第１の閾値電圧である場合、書き込むべきデータに応じて、前記第１のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第２の閾値電圧に変える、且つ前記第１のメモリセルの閾値電圧が前記第３の閾値電圧である場合、書き込むべきデータに応じて、前記第１のメモリセルの閾値電圧を、前記第３の閾値電圧に維持する、あるいは、前記第３の閾値電圧から前記第４の閾値電圧に変える第４のステップと
を具備することを特徴とする半導体記憶装置。
【請求項１９】
前記書き込み回路は、前記第４のステップで前記第３の閾値電圧に維持する場合で、前記第１のメモリセルの閾値電圧が所定の閾値電圧に達していない場合、前記第１のメモリセルの閾値電圧を変化させることを特徴とする請求項１８記載の半導体記憶装置。
【請求項２０】
前記第２の閾値電圧は、前記第１の閾値電圧と前記第３の閾値電圧の間であることを特徴とする請求項１０又は１８に記載の半導体記憶装置。
【請求項２１】
前記第２の閾値電圧と前記第３の閾値電圧は、前記第１の閾値電圧と前記第４の閾値電圧の間であることを特徴とする請求項１０又は１８に記載の半導体記憶装置。
【請求項２２】
前記書き込み回路は第５のステップをさらに含み、前記第５のステップは、閾値電圧が前記第１の閾値電圧である場合、書き込むべきデータに応じて、前記第２のメモリセル及び前記第３のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第２の閾値電圧に変える、且つ、閾値電圧が前記第３の閾値電圧である場合、書き込むべきデータに応じて、前記第２のメモリセル及び前記第３のメモリセルの閾値電圧を、前記第３の閾値電圧に維持する、あるいは、前記第３の閾値電圧から前記第４の閾値電圧に変えることを特徴とする請求項１８記載の半導体記憶装置。
【請求項２３】
前記書き込み回路は、前記第５のステップで前記第３の閾値電圧に維持する場合で、前記第２のメモリセル及び前記第３のメモリセルの閾値電圧が所定の閾値電圧に達していない場合、前記第２のメモリセル及び前記第３のメモリセルの閾値電圧を変化させることを特徴とする請求項２２記載の半導体記憶装置。
【請求項２４】
前記第１のメモリセルと前記第２のメモリセルは隣接して配置され、前記第１のメモリセルと前記第３のメモリセルは隣接して配置されていることを特徴とする請求項１８記載の半導体記憶装置。
【請求項２５】
前記第１のメモリセルと前記第２のメモリセルは共通のワード線に接続され、且つ隣接して配置され、前記第１のメモリセルと前記第３のメモリセルは共通のビット線に接続され、且つ隣接して配置されていることを特徴とする請求項１８記載の半導体記憶装置。
【請求項２６】
前記第３の閾値電圧の値の定義は、前記第４のステップの前後で異なることを特徴とする請求項１８記載の半導体記憶装置。
【請求項２７】
前記第３の閾値電圧の値を制御するために、前記第４のステップが行われたか否かを記憶する第４のメモリセルをさらに具備することを特徴とする請求項２６記載の半導体記憶装置。
【請求項２８】
各々が少なくとも４つの閾値電圧のうちの１つを持つことができ、２ビットのデータを記憶することが可能な複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、
列方向に配置された複数の前記メモリセルに接続された複数のビット線と、
行方向に配置された複数の前記メモリセルに接続された複数のワード線と、
前記各ワード線により選択される複数の前記メモリセルと同時に選択されるフラグセルと、
前記各ビット線に接続され、データを記憶する複数のデータ記憶回路と、
前記ワード線により同時に選択される複数の第１メモリセルに第１ページのデータを書き込み、この後、前記複数の第１のメモリセルに第２ページのデータを書き込み、前記第２ページのデータを書き込むときに、前記各ワード線により同時に選択される前記フラグセルにデータを書き込み、次に、前記第１メモリセルとビット線方向に隣接した第２メモリセルに前記第１、第２ページのデータを順次書き込む書き込み回路と
を具備することを特徴とする半導体記憶装置。
【請求項２９】
各々が少なくとも４つの閾値電圧のうちの１つを持つことができ、２ビットのデータを記憶することが可能な複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、
列方向に配置された複数の前記メモリセルに接続された複数のビット線と、
行方向に配置された複数の前記メモリセルに接続された複数のワード線と、
前記各ビット線に接続され、データを記憶する複数のデータ記憶回路と、
前記ビット線方向に隣接した第１、第２メモリセルに第１ページのデータをそれぞれ書き込み、この後、前記第１メモリセルに第２ページのデータを書き込み、次に、前記第２メモリセルと前記ビット線方向に隣接した第３メモリセルに前記第１ページのデータを書き込む書き込み回路と
を具備することを特徴とする半導体記憶装置。
【請求項３０】
それぞれが２ｎ（ｎは、２以上の自然数）の閾値電圧のうちの１つを持つことができ、ｎビットのデータを記憶することが可能な複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、
列方向に配置された複数の前記メモリセルに接続された複数のビット線と、
行方向に配置された複数の前記メモリセルに接続された複数のワード線と、
前記ワード線により選択される複数の前記メモリセルと同時に選択される第１、第２のフラグセルと、
前記ワード線により選択される複数のメモリセルにそれぞれ記憶される前記ｎビットにより構成されるｎページは第１、第２の領域に分割され、第ｋページ目（２＜＝ｋ＜＝ｎ）の前記第１の領域にデータを書き込むとき、前記第１のフラグセルにもデータを書き込み、前記第ｋページ目の前記第２の領域にデータを書き込むとき、前記第２のフラグセルにもデータを書き込む書き込み回路と
を具備することを特徴とする半導体記憶装置。
【請求項３１】
それぞれが２ｎ（ｎは、２以上の自然数）の閾値電圧のうちの１つを持つことができ、ｎビットのデータを記憶することが可能な複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、
列方向に配置された複数の前記メモリセルに接続された複数のビット線と、
行方向に配置された複数の前記メモリセルに接続された複数のワード線と、
前記ワード線により選択される複数の前記メモリセルと同時に選択される（ｎ−１）×ｉ個のフラグセルと、
前記ワード線により選択される複数のメモリセルにそれぞれ記憶される前記ｎビットにより構成されるｎページはｉ個の領域（ｉは自然数）に分割され、第ｋページ目（２＜＝ｋ＜＝ｎ）の前記第１の領域にデータを書き込むとき、前記第（ｋ−２）×ｉ＋１のフラグセルにもデータを書き込み、前記第ｋページ目の前記第ｉの領域にデータを書き込むとき、前記第（ｋ−１）×ｉのフラグセルにもデータを書き込む書き込み回路と
を具備することを特徴とする半導体記憶装置。
【請求項３２】
それぞれが２ｎ（ｎは、２以上の自然数）の閾値電圧のうちの１つを持つことができ、ｎビットのデータを記憶することが可能な複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、
列方向に配置された複数の前記メモリセルに接続された複数のビット線と、
行方向に配置された複数の前記メモリセルに接続された複数のワード線と、
前記ワード線により選択される複数の前記メモリセルと同時に選択されるｉ個のフラグセルと、
前記ワード線により選択される複数のメモリセルにそれぞれ記憶される前記ｎビットにより構成されるｎページはｉ個の領域（ｉは自然数）に分割され、第ｋページ目（２＜＝ｋ＜＝ｎ）の前記第１の領域にデータを書き込むとき、第１のフラグセルにもデータを書き込み、前記第ｋページ目の前記第ｉの領域にデータを書き込むとき、前記第ｉのフラグセルにもデータを書き込む書き込み回路と
を具備することを特徴とする半導体記憶装置。
【請求項３３】
ｋ値の閾値（ｋは２以上の自然数）を有するメモリセルと、
外部から入力されるデータを記憶する第１の記憶回路と、
前記メモリセルより読み出されたデータ、又は前記外部から入力されるデータを記憶する第２の記憶回路と、
前記第１の記憶回路及び第２の記憶回路のデータに応じて、前記メモリセルにｎ値（ｎ＜＝ｋ）の閾値電圧を書き込み、前記メモリセルに少なくとも１値の閾値電圧を書き込んだ場合、前記第１の記憶回路に次のデータを外部より入力させる制御回路と
を具備することを特徴とする半導体記憶装置。
【請求項３４】
ｋ値の閾値（ｋは２以上の自然数）を有するメモリセルと、
前記メモリセルより読み出されたデータ、又は外部から入力されるデータを記憶するｉ個（ｉは２以上の自然数）の記憶回路と、
前記記憶回路のデータに応じて、前記メモリセルにｎ値（ｎ＜＝ｋ）の閾値電圧を書き込み、前記メモリセルに少なくとも１値の閾値電圧を書き込んだ場合、前記記憶回路の少なくとも１つに、次のデータを外部より入力させる制御回路と
を具備することを特徴とする半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば２ビット以上のデータを記憶することが可能な半導体記憶装置に関する。
【背景技術】
【０００２】
ＥＥＰＲＯＭを用いたＮＡＮＤ型フラッシュメモリであって、多値データを記憶可能な不揮発性半導体記憶装置が提案されている（例えば、特許文献１参照）。
【０００３】
ＮＡＮＤ型フラッシュメモリは、マトリクス状に配置された複数のセルのうち、ロウ方向に並んだ複数のセル全て、又は半数のセルが同時に選択される。この選択された複数のセルに対して一括してデータの書き込み、又は読み出しが行われる。すなわち、選択された複数のセルは、それぞれ対応するビット線に接続され、各ビット線には書き込み及び読み出し用のデータを保持するラッチ回路が接続されている。このラッチ回路を用いてデータの書き込み又は読み出しが実行される。
【特許文献１】特開２０００−１９５２８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、この種の不揮発性半導体記憶装置は著しく微細化が進んでいる。このため、ロウ方向及びカラム方向に隣接するセルの相互間隔が非常に狭まっている。隣接するセルの相互間隔が短くなるに従い、隣接するセル相互の浮遊ゲート間の容量（ＦＧ−ＦＧ間容量）が大きくなる。したがって、先に書いたセルの閾値電圧Ｖｔｈが、ＦＧ−ＦＧ間容量により、後に書いた隣接セルのデータに応じて変動してしまうという問題が生じている。特に、１つのセルに複数のデータ（ｋビット）を記憶する多値メモリは、複数の閾値電圧を有する。このため、１データ当たりの閾値電圧の分布を非常に狭く制御する必要があり、隣接セルのデータに応じて閾値電圧が変動するという問題が顕著となっている。
【０００５】
本発明は、上記課題を解決するためになされたものであり、その目的とするところは、隣接セルのデータによる閾値電圧の変動を防止可能な半導体記憶装置を提供しようとするものである。
【課題を解決するための手段】
【０００６】
本発明の半導体記憶装置の第１の態様は、ｎ値（ｎは２以上の自然数）を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、前記メモリセルアレイのｊ値（ｊ＜ｎ）のデータが記憶されている第１メモリセルに、次の少なくとも１値のデータを記憶する前に、前記第１メモリセルに隣接する少なくとも１つのメモリセルにｊ値以下のデータを書き込む書き込み回路とを具備している。
【０００７】
また、本発明の半導体記憶装置の第２の態様は、ｎ値（ｎは２以上の自然数）のデータを記憶し、マトリックス状に配置された少なくとも１つの第１メモリセルと、前記第１メモリセルと同時に選択される少なくとも１つの第２メモリセルとを有するメモリセルアレイと、前記メモリセルアレイのｊ値（ｊ＜ｎ）のデータが記憶されている前記第１メモリセルに、次の少なくとも１値のデータの書き込む時、前記第２メモリセルの論理レベルを第１の論理レベルから第２の論理レベルに変えるデータを書き込む書き込み回路とを具備している。
【０００８】
さらに、本発明の半導体記憶装置の第３の態様は、ｋ（ｋは２以上の自然数）ビットのデータを記憶し、マトリックス状に配置された少なくとも１つの第１メモリセルと、前記複数の第１メモリセルと同時に選択される少なくとも１つの第２メモリセルとを有するメモリセルアレイと、前記メモリセルアレイのｉビット（ｉ＜ｋ）のデータが記憶されている前記第１メモリセルに、次の少なくとも１ビットのデータの書き込む時、前記第２メモリセルの論理レベルを第１の論理レベルから第２の論理レベルに変えるデータを書き込む書き込み回路とを具備している。
【０００９】
また、本発明の半導体記憶装置の第４の態様は、ｋ（ｋは２以上の自然数）ビットを記憶するメモリセルと、外部から入力されるデータを記憶する第１の記憶回路と、前記メモリセルより読み出されるデータ、又は、外部から入力されるデータを記憶する第２の記憶回路と、書き込み動作時、前記メモリセルが記憶しているデータに応じて、前記第１の記憶回路のデータを保持又は変更し、前記第２の記憶回路のデータを保持又は変更し、書き込み動作の途中で、前記第１の記憶回路に記憶されているデータが書き込み動作に不要となった場合、前記第１の記憶回路に次の書き込みデータを外部より入力させる制御回路とを具備している。
【００１０】
さらに、本発明の半導体記憶装置の第５の態様は、マトリックス状に配置されたｋビット（ｋは２以上の自然数）を記憶する少なくとも１つの第１メモリセルと、前記第１メモリセルと同時に選択される少なくとも１つの第２メモリセルとを有するメモリセルアレイと、前記メモリセルアレイのｉビット（ｉ＜ｋ）のデータが記憶されている第１メモリセルに、次の少なくとも１ビットのデータを記憶する前に、前記第１メモリセルに隣接する少なくとも１つのメモリセルにｉビット以下のデータを書き込み、前記第１メモリセルに１ビットのデータを書き込むとき、前記第２メモリセルにデータを書き込む書き込み回路と、前記第１メモリセルから読み出したデータを出力する時、前記第２メモリセルに記憶されたデータに応じて、出力するデータの論理レベルを制御する読み出し回路とを具備している。
【００１１】
また、本発明の半導体記憶装置の第６の態様は、複数の閾値電圧により複数のデータを記憶するメモリセルと、前記ビット線に接続され、外部から供給されるデータ及び前記メモリセルから読み出されたデータに応じて、第１又は第２論理レベルのデータを記憶する第１データ記憶回路及び第２データ記憶回路を有し、前記第１データ記憶回路のデータが第１論理レベルの場合、メモリセルの閾値電圧を変化させる第１の書き込み動作を行ない、前記第１データ記憶回路のデータが第２論理レベルの場合で、前記第２データ記憶回路のデータが第１の論理レベルである場合、閾値電圧を変化させる第２の書き込み動作を行ない、前記第１データ記憶回路のデータが第２論理レベルの場合で、前記第２データ記憶回路のデータが第２の論理レベルである場合、閾値電圧を変化させず、第１のベリファイ動作において、前記第１データ記憶回路のデータが第１論理レベルであり、前記第２データ記憶回路のデータが第１論理レベルであり、前記メモリセルの閾値電圧が第１のベリファイ電位に達している場合、前記第１データ記憶回路のデータを第２論理レベルに変化させ、前記メモリセルの閾値電圧が前記第１のベリファイ電位に達していない場合、前記第１データ記憶回路のデータを変化させず、前記第１データ記憶回路のデータが第１論理レベルであり、前記第２データ記憶回路のデータが第２論理レベルの場合、前記第１データ記憶回路のデータを変化させず、前記第１データ記憶回路のデータが第２論理レベルである場合、前記第１データ記憶回路のデータを変化させず第２論理レベルに保持し、第２のベリファイ動作において、前記第２データ記憶回路のデータが第１論理レベルであり、前記メモリセルの閾値電圧が第２のベリファイ電位の閾値電圧に達している場合、前記第２データ記憶回路のデータを第２論理レベルに変化させ、前記メモリセルの閾値電圧が前記第２のベリファイ電位に達していない場合、前記第２データ記憶回路のデータは第１論理レベルのまま変化させず、前記第１データ記憶回路のデータが第２論理レベルになり、前記第２データ記憶回路のデータが第２の論理レベルになるまで書き込み動作を行なうことを特徴とする。
【００１２】
さらに、本発明の半導体記憶装置の第７の態様は、ｎ値（ｎは１以上の自然数）の閾値電圧により複数のデータを記憶するメモリセルと、少なくとも前記メモリセルから読み出された第１又は第２の論理レベルのデータを記憶する第１のデータ記憶回路と、データ線に接続され、少なくとも前記データ線から供給された第１又は第２の論理レベルのデータを記憶する第２のデータ記憶回路と、少なくとも前記メモリセルから読み出されたデータ又は前記第１のデータ記憶回路から供給された第１又は第２の論理レベルのデータを記憶する第３のデータ記憶回路と、前記第１、第２、第３のデータ記憶回路のデータを操作する制御回路とを具備し、前記制御回路は、前記第１のデータ記憶回路の論理レベルが、第２の論理レベルの場合、前記メモリセルの閾値電圧を変化させず、前記第１のデータ記憶回路の論理レベルが、第１の論理レベルの場合であり、前記第３のデータ記憶回路の論理レベルが第１の論理レベルの場合、前記メモリセルの閾値電圧を上げる第１の書き込み動作を行ない、前記第３のデータ記憶回路の論理レベルが第２の論理レベルの場合、前記メモリセルの閾値電圧を上げる第２の書き込み動作を行ない、前記制御回路は、第１のベリファイ動作時、前記第２のデータ記憶回路の論理レベルが、第１の論理レベルの場合、前記メモリセルをプリチャージせず、第２のデータ記憶回路の論理レベルが、第２の論理レベルの場合、前記メモリセルをプリチャージする、前記制御回路は、前記メモリセルの閾値電圧が第１のベリファイ電圧を超えている場合、前記第３のデータ記憶回路の論理レベルを第２の論理レベルに設定し、前記メモリセルの閾値電圧が第１のベリファイ電圧を超えていない場合、前記第３のデータ記憶回路の論理レベルを変化させず、前記メモリセルの閾値電圧が前記第１のベリファイ電圧より高い第２のベリファイ電圧を超えている場合、前記第１のデータ記憶回路の論理レベルを第２の論理レベルに設定し、前記メモリセルの閾値電圧が第２のベリファイ電圧を超えていない場合、第１のデータ記憶回路の論理レベルを変化させず、前記制御回路は、第２のベリファイ動作時、前記第３のデータ記憶回路の論理レベルが、前記第１の論理レベルの場合、前記メモリセルをプリチャージせず、前記第２のデータ記憶回路の論理レベルが、前記第２の論理レベルの場合、前記メモリセルをプリチャージし、前記制御回路は、前記メモリセルの閾値電圧が前記第２のベリファイ電圧より高い第３のベリファイ電圧を超えている場合、前記第１のデータ記憶回路の論理レベルを第２の論理レベルに設定し、前記メモリセルの閾値電圧が前記第３のベリファイを超えていない場合、前記第１のデータ記憶回路の論理レベルを変化させず、前記制御回路は、第３のベリファイ動作時、前記メモリセルの閾値電圧が前記第３のベリファイ電圧より高い第４のベリファイ電圧を超えている場合、前記第１のデータ記憶回路の論理レベルを前記第２の論理レベルに設定し、前記メモリセルが前記第４のベリファイ電圧を超えていない場合、第１のデータ記憶回路の論理レベルを変化させず、前記第１のデータ記憶回路の論理レベルが前記第２の論理レベルになるまで、前記第１、第２の書き込み動作及びベリファイ動作を繰り返すことを特徴とする。
【００１３】
また、本発明の半導体記憶装置の第８の態様は、ｎ値（ｎは１以上の自然数）の閾値電圧により複数のデータを記憶するメモリセルと、少なくとも前記メモリセルから読み出された第１又は第２の論理レベルのデータを記憶する第１のデータ記憶回路と、データ線に接続され、少なくとも前記データ線から供給された第１又は第２の論理レベルのデータを記憶する第２のデータ記憶回路と、少なくとも前記メモリセルから読み出されたデータ又は前記第１のデータ記憶回路から供給された第１又は第２の論理レベルのデータを記憶する第３のデータ記憶回路と、前記第１、第２、第３のデータ記憶回路のデータを操作する制御回路とを具備し、前記制御回路は、前記メモリセルに第１ページのデータを書き込んだ後、前記第２のデータ記憶回路にデータ線から第２ページのデータを記憶させ、前記メモリセルから読み出した前記第１ページのデータを前記第１のデータ記憶回路に記憶させ、第１、第２、第３のデータ記憶回路のデータを操作し、メモリセルにデータを“２”を書き込んでいる場合と、メモリセルにデータを“１”を書き込んでいて第１のベリファイ電圧を超えている場合、前記第３のデータ記憶回路に前記第２の論理レベルを設定し、これ以外の場合前記第３のデータ記憶回路に前記第１の論理レベルを設定することを特徴とする。
【００１４】
さらに、本発明の半導体記憶装置の第９の態様は、ｎ値（ｎは１以上の自然数）の閾値電圧により複数のデータを記憶するメモリセルと、少なくとも前記メモリセルから読み出された第１又は第２の論理レベルのデータを記憶する第１のデータ記憶回路と、データ線に接続され、少なくとも前記データ線から供給された第１又は第２の論理レベルのデータを記憶する第２のデータ記憶回路と、少なくとも前記メモリセルから読み出されたデータ又は前記第１のデータ記憶回路から供給された第１又は第２の論理レベルのデータを記憶する第３のデータ記憶回路と、前記第１、第２、第３のデータ記憶回路のデータを操作する制御回路とを具備し、前記制御回路は、前記データ線から供給された第１ページのデータを前記第２のデータ記憶回路に記憶させ、前記第２のデータ記憶回路に記憶された前記第１ページのデータを前記第１のデータ記憶回路に転送し、前記データ線から供給された第２ページのデータを前記第２のデータ記憶回路に記憶させ、前記第１のデータ記憶回路に記憶された第１ページのデータと前記第２のデータ記憶回路に記憶された第２ページのデータより、書き込みデータを設定し、前記書き込みデータに基づき前記メモリセルに前記第１ページのデータと前記第２ページのデータを同時に書き込むことを特徴とする。
【００１５】
さらに、本発明の半導体記憶装置の第１０の態様は、各々が少なくとも第１、第２、第３、第４の閾値電圧のうちの１つを持つことができ、２ビットのデータを記憶することが可能な複数のメモリセルと、前記複数のメモリセルの閾値電圧を制御してデータを書き込む書き込み回路、前記書き込み回路は、書き込むべきデータに応じて、第１のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第３の閾値電圧に変える第１のステップと、書き込むべきデータに応じて、第２のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第３の閾値電圧に変える第２のステップと、前記第１のメモリセルの閾値電圧が前記第１の閾値電圧である場合、書き込むべきデータに応じて、前記第１のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第２の閾値電圧に変える、前記第１のメモリセルの閾値電圧が前記第３の閾値電圧である場合、書き込むべきデータに応じて、前記第１のメモリセルの閾値電圧を、前記第３の閾値電圧に維持する、あるいは、前記第３の閾値電圧から前記第４の閾値電圧に変える第３のステップとを含み、前記書き込み回路は、前記第３のステップにより、前記第１のメモリセルの閾値電圧を前記第３の閾値電圧に維持する場合において、前記第１のメモリセルの閾値電圧が所定の閾値電圧に達していない場合、前記第１のメモリセルの閾値電圧を変化させることを特徴とする。
【００１６】
また、本発明の半導体記憶装置の第１１の態様は、各々が少なくとも第１、第２、第３、第４の閾値電圧のうちの１つを持つことができ、２ビットのデータを記憶することが可能な複数のメモリセルと、前記複数のメモリセルの閾値電圧を制御してデータを書き込む書き込み回路とを具備し、前記書き込み回路は、書き込むべきデータに応じて第１のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第３の閾値電圧に変える第１のステップと、書き込むべきデータに応じて第２のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第３の閾値電圧に変える第２のステップと、書き込むべきデータに応じて第３のメモリセルの閾値電圧を前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第３の閾値電圧に変える第３のステップと、前記第１のメモリセルの閾値電圧が前記第１の閾値電圧である場合、書き込むべきデータに応じて、前記第１のメモリセルの閾値電圧を、前記第１の閾値電圧に維持する、あるいは、前記第１の閾値電圧から前記第２の閾値電圧に変える、且つ前記第１のメモリセルの閾値電圧が前記第３の閾値電圧である場合、書き込むべきデータに応じて、前記第１のメモリセルの閾値電圧を、前記第３の閾値電圧に維持する、あるいは、前記第３の閾値電圧から前記第４の閾値電圧に変える第４のステップとを具備することを特徴とする。
【００１７】
また、本発明の半導体記憶装置の第１２の態様は、各々が少なくとも４つの閾値電圧のうちの１つを持つことができ、２ビットのデータを記憶することが可能な複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、列方向に配置された複数の前記メモリセルに接続された複数のビット線と、行方向に配置された複数の前記メモリセルに接続された複数のワード線と、前記各ワード線により選択される複数の前記メモリセルと同時に選択されるフラグセルと、前記各ビット線に接続され、データを記憶する複数のデータ記憶回路と、前記ワード線により同時に選択される複数の第１メモリセルに第１ページのデータを書き込み、この後、前記複数の第１のメモリセルに第２ページのデータを書き込み、前記第２ページのデータを書き込むときに、前記各ワード線により同時に選択される前記フラグセルにデータを書き込み、次に、前記第１メモリセルとビット線方向に隣接した第２メモリセルに前記第１、第２ページのデータを順次書き込む書き込み回路とを具備することを特徴とする。
【００１８】
また、本発明の半導体記憶装置の第１３の態様は、各々が少なくとも４つの閾値電圧のうちの１つを持つことができ、２ビットのデータを記憶することが可能な複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、列方向に配置された複数の前記メモリセルに接続された複数のビット線と、行方向に配置された複数の前記メモリセルに接続された複数のワード線と、前記各ビット線に接続され、データを記憶する複数のデータ記憶回路と、前記ビット線方向に隣接した第１、第２メモリセルに第１ページのデータをそれぞれ書き込み、この後、前記第１メモリセルに第２ページのデータを書き込み、次に、前記第２メモリセルと前記ビット線方向に隣接した第３メモリセルに前記第１ページのデータを書き込む書き込み回路とを具備することを特徴とする。
【００１９】
また、本発明の半導体記憶装置の第１４の態様は、それぞれが２ｎ（ｎは、２以上の自然数）の閾値電圧のうちの１つを持つことができ、ｎビットのデータを記憶することが可能な複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、列方向に配置された複数の前記メモリセルに接続された複数のビット線と、行方向に配置された複数の前記メモリセルに接続された複数のワード線と、前記ワード線により選択される複数の前記メモリセルと同時に選択される第１、第２のフラグセルと、前記ワード線により選択される複数のメモリセルにそれぞれ記憶される前記ｎビットにより構成されるｎページは第１、第２の領域に分割され、第ｋページ目（２＜＝ｋ＜＝ｎ）の前記第１の領域にデータを書き込むとき、前記第１のフラグセルにもデータを書き込み、前記第ｋページ目の前記第２の領域にデータを書き込むとき、前記第２のフラグセルにもデータを書き込む書き込み回路とを具備することを特徴とする。
【００２０】
また、本発明の半導体記憶装置の第１５の態様は、それぞれが２ｎ（ｎは、２以上の自然数）の閾値電圧のうちの１つを持つことができ、ｎビットのデータを記憶することが可能な複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、列方向に配置された複数の前記メモリセルに接続された複数のビット線と、行方向に配置された複数の前記メモリセルに接続された複数のワード線と、前記ワード線により選択される複数の前記メモリセルと同時に選択される（ｎ−１）×ｉ個のフラグセルと、前記ワード線により選択される複数のメモリセルにそれぞれ記憶される前記ｎビットにより構成されるｎページはｉ個の領域（ｉは自然数）に分割され、第ｋページ目（２＜＝ｋ＜＝ｎ）の前記第１の領域にデータを書き込むとき、前記第（ｋ−２）×ｉ＋１のフラグセルにもデータを書き込み、前記第ｋページ目の前記第ｉの領域にデータを書き込むとき、前記第（ｋ−１）×ｉのフラグセルにもデータを書き込む書き込み回路とを具備することを特徴とする。
【００２１】
また、本発明の半導体記憶装置の第１６の態様は、それぞれが２ｎ（ｎは、２以上の自然数）の閾値電圧のうちの１つを持つことができ、ｎビットのデータを記憶することが可能な複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、列方向に配置された複数の前記メモリセルに接続された複数のビット線と、行方向に配置された複数の前記メモリセルに接続された複数のワード線と、前記ワード線により選択される複数の前記メモリセルと同時に選択されるｉ個のフラグセルと、前記ワード線により選択される複数のメモリセルにそれぞれ記憶される前記ｎビットにより構成されるｎページはｉ個の領域（ｉは自然数）に分割され、第ｋページ目（２＜＝ｋ＜＝ｎ）の前記第１の領域にデータを書き込むとき、第１のフラグセルにもデータを書き込み、前記第ｋページ目の前記第ｉの領域にデータを書き込むとき、前記第ｉのフラグセルにもデータを書き込む書き込み回路とを具備することを特徴とする。
【００２２】
本発明の半導体記憶装置の第１７の態様は、ｋ値の閾値（ｋは２以上の自然数）を有するメモリセルと、外部から入力されるデータを記憶する第１の記憶回路と、前記メモリセルより読み出されたデータ、又は前記外部から入力されるデータを記憶する第２の記憶回路と、前記第１の記憶回路及び第２の記憶回路のデータに応じて、前記メモリセルにｎ値（ｎ＜＝ｋ）の閾値電圧を書き込み、前記メモリセルに少なくとも１値の閾値電圧を書き込んだ場合、前記第１の記憶回路に次のデータを外部より入力させる制御回路とを具備することを特徴とする。
【００２３】
本発明の半導体記憶装置の第１８の態様は、ｋ値の閾値（ｋは２以上の自然数）を有するメモリセルと、前記メモリセルより読み出されたデータ、又は外部から入力されるデータを記憶するｉ個（ｉは２以上の自然数）の記憶回路と、前記記憶回路のデータに応じて、前記メモリセルにｎ値（ｎ＜＝ｋ）の閾値電圧を書き込み、前記メモリセルに少なくとも１値の閾値電圧を書き込んだ場合、前記記憶回路の少なくとも１つに、次のデータを外部より入力させる制御回路とを具備することを特徴とする。
【発明の効果】
【００２４】
本発明によれば、隣接セルのデータによる閾値電圧の変動を防止可能な半導体記憶装置を提供できる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態について図面を参照して説明する。
【００２６】
先ず、原理について説明する。例えばｉビットのデータが記憶されているメモリセルに対して、次のデータを記憶する前に、隣接メモリセルにｉビット以下のデータを事前に書き込む。このｉビット以下のデータの書き込みは、本来の閾値電圧（ｉビットのデータを記憶する際の実際の閾値電圧）より低くする。隣接メモリセルの書き込み後、メモリセルの閾値電圧を上げる書き込みを行なう。ＦＧ−ＦＧ間容量により閾値電圧が上がったセルは、この書込みにおいて、閾値電圧はあまり変化しない。また、ＦＧ−ＦＧ間容量により閾値電圧があまり上がらなかったセルは、この書込みで、閾値電圧が上がるため、閾値電圧が本来の値となる。しかし、閾値電圧を上げる書き込み前後で、ｉビットのデータが本来の閾値電圧であるのか、それより低い閾値電圧であるのか分からなくなってしまう。これを区別するため、フラグ用のメモリセル（フラグセル）を用意し、このフラグセルのデータに応じた読み出し動作をする。
【００２７】
ＮＡＮＤ型フラッシュメモリは、ロウ方向に並んだ複数のセル全て、又は半数のセルを同時に書き込むため、書き込み単位毎にフラグセルを具備すれば良い。
【００２８】
（第１の実施形態）
図２は、不揮発性半導体記憶装置の概略構成を示すものであり、例えば４値（２ビット）を記憶するＮＡＮＤフラッシュメモリの構成を示している。
【００２９】
メモリセルアレイ１は複数のビット線と複数のワード線と共通ソース線を含み、例えばＥＥＰＲＯＭセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ１には、ビット線を制御するためのビット制御回路２とワード線制御回路６が接続されている。
【００３０】
ビット線制御回路２は、後述するように複数のデータ記憶回路及びフラグ用データ記憶回路を含んでいる。このビット線制御回路２は、ビット線を介してメモリセルアレイ１中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ１中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ１中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路２には、カラムデコーダ３、データ入出力バッファ４が接続されている。ビット線制御回路２内のデータ記憶回路はカラムデコーダ３によって選択される。データ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ４を介してデータ入出力端子５から外部へ出力される。
【００３１】
また、外部からデータ入出力端子５に入力された書き込みデータは、データ入出力バッファ４を介して、カラムデコーダ３によって選択されたデータ記憶回路に入力される。
【００３２】
ワード線制御回路６は、メモリセルアレイ１に接続されている。このワード線制御回路６は、メモリセルアレイ１中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
【００３３】
メモリセルアレイ１、ビット線制御回路２、カラムデコーダ３、データ入出力バッファ４、及びワード線制御回路６は、制御信号及び制御電圧発生回路７に接続され、この制御信号及び制御電圧発生回路７によって制御される。制御信号及び制御電圧発生回路７は、制御信号入力端子８に接続され、外部から制御信号入力端子８を介して入力される制御信号によって制御される。
【００３４】
前記ビット線制御回路２、カラムデコーダ３、ワード線制御回路６、制御信号及び制御電圧発生回路７は書き込み回路、及び読み出し回路を構成している。
【００３５】
図３は、図２に示すメモリセルアレイ１及びビット線制御回路２の構成を示している。メモリセルアレイ１には複数のＮＡＮＤセルが配置されている。１つのＮＡＮＤセルは、直列接続された例えば１６個のＥＥＰＲＯＭからなるメモリセルＭＣと、選択ゲートＳ１、Ｓ２とにより構成されている。第１の選択ゲートＳ１はビット線ＢＬ０に接続され、第２の選択ゲートＳ２はソース線ＳＲＣに接続されている。各ロウに配置されたメモリセルの制御ゲートはワード線ＷＬ１、ＷＬ２、ＷＬ３〜ＷＬ１６に共通接続されている。また、第１の選択ゲートＳ１はセレクト線ＳＧ１に共通接続され、第２の選択ゲートＳ２はセレクト線ＳＧ２に共通接続されている。
【００３６】
メモリセルアレイ１は、破線で示すように、複数のブロックを含んでいる。各ブロックは、複数のＮＡＮＤセルにより構成され、このブロック単位でデータが消去される。また、消去動作は、データ記憶回路１０、フラグ用データ記憶回路１０ａに接続されている２本のビット線について同時に行なわれる。
【００３７】
ビット線制御回路２は複数のデータ記憶回路１０及びフラグ用データ記憶回路１０ａを有している。各データ記憶回路１０及びフラグ用データ記憶回路１０ａには、一対のビット線（ＢＬ０、ＢＬ１）、（ＢＬ２、ＢＬ３）…（ＢＬｉ、ＢＬｉ＋１）、（ＢＬ、ＢＬ）が接続されている。
【００３８】
また、ビット線の１つ置きに配置され、１つのワード線に接続された複数のメモリセル（破線で囲まれた範囲のメモリセル）は、１セクタを構成する。このセクタ毎にデータが書き込まれ、読み出される。１セクタには例えば２ページ分のデータが記憶される。また、各ワード線には、フラグを記憶するためのフラグセルＦＣが接続されている。すなわち、この実施形態の場合、１セクタは１つのフラグセルＦＣを含んでいる。
【００３９】
尚、このフラグセルＦＣは、１セクタに１つと限定されるものではなく、破線で示すように、１セクタに複数のフラグセルを接続してもよい。この場合、後述するように、複数のフラグセルに記憶されたデータの多数決により、フラグセルに記憶されたデータを決定すればよい。
【００４０】
リード動作、プログラムベリファイ動作及びプログラム動作時において、データ記憶回路１０に接続されている２本のビット線（ＢＬｉ、ＢＬｉ＋１）のうち外部より指定されたアドレス信号（ＹＡ１、ＹＡ２…ＹＡｉ、ＹＡFlag）に応じて１本のビット線が選択される。さらに、外部アドレスに応じて、１本のワード線が選択され、１セクタ（２ページ分）が選択される。この２ページの切り替えはアドレスによって行われる。
【００４１】
図４（ａ）（ｂ）はメモリセル及び選択トランジスタの断面図を示している。図４（ａ）はメモリセルを示している。基板４１にはメモリセルのソース、ドレインとしてのｎ型拡散層４２が形成されている。基板４１の上にはゲート絶縁膜４３を介して浮遊ゲート（ＦＧ）４４が形成され、この浮遊ゲート４４の上には絶縁膜４５を介して制御ゲート（ＣＧ）４６が形成されている。図４（ｂ）は選択ゲートを示している。基板４１にはソース、ドレインとしてのｎ型拡散層４７が形成されている。基板４１の上にはゲート絶縁膜４８を介して制御ゲート４９が形成されている。
【００４２】
図５は、メモリセルアレイの１つのＮＡＮＤセルの断面を示している。この例において、１つのＮＡＮＤセルは、図４（ａ）に示す構成の１６個のメモリセルＭＣが直列接続されて構成されている。ＮＡＮＤセルのドレイン側、ソース側には、図４（ｂ）に示す構成の第１の選択ゲートＳ１及び第２の選択ゲートＳ２が設けられている。
【００４３】
図６は、図３に示すデータ記憶回路１０の一例を示す回路図である。フラグ用データ記憶回路１０ａもデータ記憶回路１０と同様の構成とされている。
【００４４】
このデータ記憶回路１０は、プライマリデータキャッシュ（ＰＤＣ）、セコンダリデータキャッシュ（ＳＤＣ）、ダイナミックデータキャッシュ（ＤＤＣ）、テンポラリデータキャッシュ（ＴＤＣ）を有している。ＳＤＣ、ＰＤＣ、ＤＤＣは、書き込み時に入力データを保持し、読み出し時に読み出しデータを保持し、ベリファイ時に一時的にデータを保持し、多値データを記憶する際に内部データの操作に使用される。ＴＤＣは、データの読み出し時にビット線のデータを増幅し、一時的に保持するとともに、多値データを記憶する際に内部データの操作に使用される。
【００４５】
ＳＤＣは、ラッチ回路を構成するクロックドインバータ回路６１ａ、６１ｂ、及びトランジスタ６１ｃ、６１ｄにより構成されている。トランジスタ６１ｃはクロックドインバータ回路６１ａの入力端と、クロックドインバータ回路６１ｂの入力端の間に接続されている。このトランジスタ６１ｃのゲートには信号ＥＱ２が供給されている。トランジスタ６１ｄはクロックドインバータ回路６１ｂの出力端と接地間に接続されている。このトランジスタ６１ｄのゲートには信号ＰＲＳＴが供給されている。ＳＤＣのノードＮ２ａは、カラム選択トランジスタ６１ｅを介して入出力データ線ＩＯｎに接続され、ノードＮ２ｂは、カラム選択トランジスタ６１ｆを介して入出力データ線ＩＯに接続される。これらトランジスタ６１ｅ、６１ｆのゲートにはカラム選択信号ＣＳＬｉが供給されている。ＳＤＣのノードＮ２ａは、トランジスタ６１ｇ、６１ｈを介してＰＤＣのノードＮ１ａに接続されている。トランジスタ６１ｇのゲートには信号ＢＬＣ２が供給され、トランジスタ６１ｈのゲートには信号ＢＬＣ１が供給されている。
【００４６】
ＰＤＣは、クロックドインバータ回路６１ｉ、６１ｊ及びトランジスタ６１ｋにより構成されている。トランジスタ６１ｋは、クロックドインバータ回路６１ｉの入力端とクロックドインバータ回路６１ｊの入力端の相互間に接続されている。このトランジスタのゲートには信号ＥＱ１が供給されている。ＰＤＣのノードＮ１ｂはトランジスタ６１ｌのゲートに接続されている。このトランジスタ６１ｌの電流通路の一端はトランジスタ６１ｍを介して接地されている。このトランジスタ６１ｍのゲートには信号ＣＨＫ１が供給されている。また、トランジスタ６１ｌの電流通路の他端はトランスファーゲートを構成するトランジスタ６１ｎ、６１ｏの電流通路の一端に接続されている。このトランジスタ６１ｎのゲートには信号ＣＨＫ２ｎが供給されている。また、トランジスタ６１ｏのゲートは前記トランジスタ６１ｇと６１ｈの接続ノードに接続されている。トランジスタ６１ｎ、６１ｏの電流通路の他端には、信号ＣＯＭｉが供給されている。この信号ＣＯＭｉは全データ記憶回路１０に共通の信号であり、全データ記憶回路１０のベリファイが完了したかどうかを示す信号である。すなわち、後述するように、ベリファイが完了すると、ＰＤＣのノードＮ１ｂがローレベルとなる。この状態において、信号ＣＨＫ１、ＣＨＫ２をハイレベルとすると、ベリファイが完了している場合、信号ＣＯＭｉがハイレベルとなる。
【００４７】
さらに、前記ＴＤＣは、例えばＭＯＳキャパシタ６１ｐにより構成されている。このキャパシタ６１ｐは、前記トランジスタ６１ｇ、６１ｈの接続ノードＮ３と接地間に接続されている。また、接続ノードＮ３には、トランジスタ６１ｑを介してＤＤＣが接続されている。トランジスタ６１ｑのゲートには、信号ＲＥＧが供給されている。
【００４８】
ＤＤＣは、トランジスタ６１ｒ、６１ｓにより構成されている。トランジスタ６１ｒの電流通路の一端には信号ＶＲＥＧが供給され、他端は前記トランジスタ６１ｑの電流通路に接続されている。このトランジスタ６１ｒのゲートはトランジスタ６１ｓを介して前記ＰＤＣのノードＮ１ａに接続されている。このトランジスタ６１ｓのゲートには信号ＤＴＧが供給されている。
【００４９】
さらに、前記接続ノードＮ３にはトランジスタ６１ｔ、６１ｕの電流通路の一端が接続されている。トランジスタ６１ｕの電流通路の他端には信号ＶＰＲＥが供給され、ゲートにはＢＬＰＲＥが供給されている。前記トランジスタ６１ｔのゲートには信号ＢＬＣＬＡＭＰが供給されている。このトランジスタ６１ｔの電流通路の他端はトランジスタ６１ｖを介してビット線ＢＬｏの一端に接続され、トランジスタ６１ｗを介してビット線ＢＬｅの一端に接続されている。ビット線ＢＬｏの他端はトランジスタ６１ｘの電流通路の一端に接続されている。このトランジスタ６１ｘのゲートには信号ＢｌＡＳｏが供給されている。ビット線ＢＬｅの他端はトランジスタ６１ｙの電流通路の一端に接続されている。このトランジスタ６１ｙのゲートには信号ＢｌＡＳｅが供給されている。これらトランジスタ６１ｘ、６１ｙの電流通路の他端には、信号ＢＬＣＲＬが供給されている。トランジスタ６１ｘ、６１ｙは、信号ＢｌＡＳｏ、ＢｌＡＳｅに応じてトランジスタ６１ｖ、６１ｗと相補的にオンとされ、非選択のビット線に信号ＢＬＣＲＬの電位を供給する。
【００５０】
上記各信号及び電圧は、図２に示す制御信号及び制御電圧発生回路７により生成され、この制御信号及び制御電圧発生回路７の制御に基づき、以下の動作が制御される。
【００５１】
本メモリは、多値メモリであり、１セルに２ビットのデータを記憶することができる。この２ビットの切り替えはアドレス（第１ページ、第２ページ）によって行なわれる。
【００５２】
（動作説明）
上記構成において、動作について説明する。
【００５３】
図１は、メモリセルのデータとメモリセルの閾値電圧の関係を示している。消去動作を行なうとメモリセルのデータは“０”となる。図１（ａ）に示すように、第１ページの書き込みを行なうと、メモリセルのデータはデータ“０”とデータ“２”になる。図１（ｂ）に示すように、第２ページの書き込み前に隣接セルに実際のデータの閾値電圧以下のデータが書き込まれる。すると、このセルに書き込まれたデータにより、データ“２”の閾値電圧の分布が大きくなる。この後、第２ページのデータが書き込まれると、メモリセルのデータは、図１（ｃ）に示すように、本来の閾値電圧を有するデータ“０”〜“３”となる。本実施例では、メモリセルのデータは閾値電圧の低いほうから高い方へと、定義されている。
【００５４】
図７は、ＮＡＮＤセルに対する書き込み順序を示している。ブロック内において、ソース線に近いメモリセルからページごとに書き込み動作が行なわれる。図７は、説明の便宜上、ワード線を４本としている。
【００５５】
第１番目の書き込みは、メモリセル１の第１ページに１ビットのデータが書きこまれる。
【００５６】
第２番目の書き込みは、メモリセル１とワード方向に隣接したメモリセル２の第１ページに１ビットのデータが書きこまれる。
【００５７】
第３番目の書き込みは、メモリセル１とビット方向に隣接したメモリセル３の第１ページに１ビットのデータが書きこまれる。
【００５８】
第４番目の書き込みは、メモリセル１と対角に隣接したメモリセル４の第１ページに１ビットのデータが書きこまれる。
【００５９】
第５番目の書き込みは、メモリセル１の第２ページに１ビットのデータが書きこまれる。
【００６０】
第６番目の書き込みは、メモリセル１とワード方向に隣接したメモリセル２の第２ページに１ビットのデータが書きこまれる。
【００６１】
第７番目の書き込みは、メモリセル３とビット方向に隣接したメモリセル５の第１ページに１ビットのデータが書きこまれる。
【００６２】
第８番目の書き込みは、メモリセル３と対角に隣接したメモリセル６の第１ページに１ビットのデータが書きこまれる。
【００６３】
第９番目の書き込みは、メモリセル３の第２ページに１ビットのデータが書きこまれる。
【００６４】
第１０番目の書き込みは、メモリセル３とワード方向に隣接したメモリセル４の第２ページに１ビットのデータが書きこまれる。
【００６５】
第１１番目の書き込みは、メモリセル５とビット方向に隣接したメモリセル７の第１ページに１ビットのデータが書きこまれる。
【００６６】
第１２番目の書き込みは、メモリセル５と対角に隣接したメモリセル８の第１ページに１ビットのデータが書きこまれる。
【００６７】
第１３番目の書き込みは、メモリセル５の第２ページに１ビットのデータが書きこまれる。
【００６８】
第１４番目の書き込みは、メモリセル５とワード方向に隣接したメモリセル６の第２ページに１ビットのデータが書きこまれる。
【００６９】
第１５番目の書き込みは、メモリセル７の第２ページに１ビットのデータが書きこまれる。
【００７０】
第１６番目の書き込みは、メモリセル７とワード方向に隣接したメモリセル８の第２ページに１ビットのデータが書きこまれる。
【００７１】
（プログラム及びプログラムベリファイ）
（第１ページプログラム）
図８は、第１ページのプログラムのブロックダイアグラムを示している。プログラム動作は、先ずアドレスを指定し、図３に示す２ページ（１セクタ）が選択する。本メモリは、この２ページのうち、第１ページ、第２ページの順でしか、プログラム動作できない。したがって、先ず、アドレスにより第１ページを選択する。
【００７２】
次に、書き込みデータを、外部より入力し全てのデータ記憶回路１０内のＳＤＣ（図６に示す）に記憶する（ＳＴ１）。書き込みコマンドが入力されると、全てのデータ記憶回路１０内のＳＤＣのデータがＰＤＣに転送される（ＳＴ２）。すなわち、信号ＢＬＣ１，ＢＬＣ２が所定の電圧、例えばＶｄｄ＋Ｖｔｈ（Ｖｄｄ：電源電圧（例えば３Ｖ又は１．８Ｖ、しかし、この電圧に限定されるものではない）、Ｖｔｈ：ＮチャネルＭＯＳトランジスタの閾値電圧）とされ、トランジスタ６１ｈ、６１ｇがオンとされる。すると、ノードＮ２ａのデータがトランジスタ６１ｇ、６１ｈを介してＰＤＣに転送される。このため、外部よりデータ“１”（書き込みを行なわない）が入力された場合、ＰＤＣのノードＮ１ａは、ハイレベルになり、データ“０”（書き込みを行なう）が入力された場合、ＰＤＣのノードＮ１ａは、ローレベルとなる。以後、ＰＤＣのデータはノードＮ１ａの電位、ＳＤＣのデータはノードＮ２ａの電位とする。
【００７３】
第１ページのプログラムにおいて、フラグセルにはデータが書き込まれない。このため、フラグ用データ記憶回路１０ａ内のＰＤＣはデータ“１”となる。
【００７４】
（プログラム動作）（ＳＴ１３）
図６示す信号ＢＬＣ１、ＢＬＣＬＡＭＰ、ＢＬＳｏ又はＢＬＳｅの電位をＶｄｄ＋Ｖｔｈとする。すると、トランジスタ６１ｈ、６１ｔ、６１ｖ又は６１ｗがオンとなり、ＰＤＣに保持されたデータがビット線に供給される。ＰＤＣにデータ“１”（書き込みを行なわない）が記憶されている時、ビット線がＶｄｄになり、データ“０”（書き込みを行なう）時、ビット線がＶｓｓ（接地電位）になる。また、選択されたワード線に接続され、非選択ページの（ビット線が非選択である）セルは書き込みが行なわれてはならない。このため、これらのセルに接続されているビット線にもデータ“１”と同じようにＶｄｄを供給する。ここで、選択されているブロックのセレクト線ＳＧ１にＶｄｄ、選択ワード線に電位ＶＰＧＭ（２０Ｖ）、非選択ワード線に電位ＶＰＡＳＳ（１０Ｖ）を印加する。すると、ビット線がＶｓｓになっている場合、セルのチャネルがＶｓｓ、ワード線がＶＰＧＭとなるので書き込みが行なわれる。一方、ビット線がＶｄｄになっている場合、セルのチャネルがＶｓｓではなく、ＶＰＧＭを上げることにより、カップリングでＶＰＧＭ／２となる。このため、このセルはプログラムされない。
【００７５】
データ“０”書き込み時は、図１に示すようにメモリセルのデータを“２”にする。データ“１”書き込み時の、メモリセルのデータは“０”のままである。
【００７６】
（第１ページベリファイ）（Ｓ１４）
プログラムベリファイ動作では、選択されているワード線にリードの時の電位より少し高い電位を与える。以後“’”を付して示す電位はベリファイ電位を示し、リードの電位より若干高い値とする。
【００７７】
第１ページのベリファイ動作では、図１（ａ）に示すように、本来のベリファイ時のワード線の電位“ｂ’”（図１（ｃ）に示す）より低い電位“ｂ＊’”を与えベリファイする。以後“＊”は本来の値より低い電位を表し、“＊’”は本来より低いベリファイ電位より低いベリファイ電位を表す。
【００７８】
先ず、選択されているブロック内の非選択ワード線及びセレクト線ＳＧ１に読み出し時の電位Ｖｒｅａｄを与え、図６に示すデータ記憶回路１０の信号ＢＬＰＲＥに例えばＶｄｄ＋Ｖｔｈ、ＢＬＣＬＡＭＰに所定の電圧、例えば１Ｖ＋Ｖｔｈを供給し、信号ＶＰＲＥをＶｄｄとし、ビット線を１Ｖにプリチャージする。
【００７９】
次に、セルのソース側のセレクト線ＳＧ２をハイレベルにする。閾値電圧が電位“ｂ＊’”より高いセルはオフする。このため、ビット線はハイレベルのままである。また、閾値電圧が電位“ｂ＊’”より低いセルはオンする。このため、ビット線はＶｓｓとなる。ビット線の放電中にＶＰＲＥ＝ＶＳＳ、ＢＬＰＲＥ＝ハイレベルとしてＴＤＣをＶＳＳとした後、信号ＲＥＧをＶｄｄ＋Ｖｔｈ、ＶＲＥＧをＶｄｄとして、トランジスタ６１ｑをオンとし、ＤＤＣのデータをＴＤＣに転送する。
【００８０】
次に、信号ＤＴＧをＶｄｄ＋Ｖｔｈとしてトランジスタ６１ｓを一旦オンとし、ＰＤＣのデータをＤＤＣに転送する。すなわち、転送されたデータはトランジスタ６１ｒのゲート電位として保持される。
【００８１】
この後、信号ＢＬＣ１を例えばＶｄｄ＋Ｖｔｈとしてトランジスタ６１ｈをオンとし、ＴＤＣのデータをＰＤＣに移す。
【００８２】
次に、信号ＢＬＰＲＥに所定の電圧、例えばＶｄｄ＋Ｖｔｈを供給し、ＶＰＲＥ＝Ｖｄｄとすることにより、ＴＤＣのノードＮ３をＶｄｄにプリチャージした後、信号ＢＬＣＬＡＭＰを所定の電圧、例えば０．９Ｖ＋Ｖｔｈとしてトランジスタ６１ｔをさせる。ＴＤＣのノードＮ３は、ビット線がローレベルの場合、ローレベルとなり、ビット線がハイレベルの場合、ハイレベルとなる。
【００８３】
ここで、書き込みを行なう場合、図６のＤＤＣにローレベルが記憶され、書き込みを行なわない場合、ＤＤＣにハイレベルが記憶されている。このため、信号ＶＲＥＧをＶｄｄとし、信号ＲＥＧをハイレベルにすると、書き込みを行なわない場合のみＴＤＣのノードＮ３が強制的にハイレベルとなる。この動作の後、ＰＤＣのデータをＤＤＣに移し、ＴＤＣの電位をＰＤＣに転送する。ＰＤＣにハイレベル信号がラッチされる場合は、セルに書き込みを行なわない場合と、セルにデータ“２”を書き込んでおり、セルの閾値電圧がベリファイ電位“ｂ＊”に達した場合だけである。また、ＰＤＣにローレベル信号がラッチされる場合は、セルの閾値電圧が“ｂ＊”に達しない場合である。
【００８４】
ＰＤＣがローレベルの場合、再び書き込み動作を行ない全てのデータ記憶回路１０のデータがハイレベルになるまでこのプログラム動作とベリファイ動作を繰り返す（Ｓ１５−Ｓ１３）。上記の動作は、２値の場合と全く同じ動作である。
【００８５】
（隣接セルプログラム）
図７に示すように、メモリセル１の第１ページに１ビットのデータの書き込んだ後、メモリセル１とワード方向に隣接したメモリセル２の第１ページの書き込み、メモリセル１とビット方向に隣接したメモリセル３の第１ページの書き込み、メモリセル１と対角に隣接したメモリセル４の第１ページの書き込みが順次行なわれる。これらの書き込み動作が行なわれると、書き込みデータによっては、ＦＧ−ＦＧ間容量によって、メモリセル１の閾値電圧が上がる。このため、メモリセル１のデータ“０”とデータ“２”の閾値電圧分布は図１（ｂ）のように電位が高いほうに広がる。
【００８６】
この後、第５の書き込みにおいて、メモリセル１の第２ページに１ビットのデータを書き込む。
【００８７】
（第２ページプログラム）
図９は、第２ページのプログラム（書き込み）動作のブロックダイアグラムを示している。第２ページプログラム動作も、先ずアドレスに応じて、図３示す２ページが選択される。
【００８８】
次に、書き込みデータを、外部より入力し全てのデータ記憶回路内のＳＤＣに記憶する（Ｓ２１）。外部よりデータ“１”（書き込みを行なわない）が入力されると、データ記憶回路１０のＳＤＣのノードＮ２ａは、ハイレベルになり、データ“０”（書き込みを行なう）が入力されるとローレベルとなる。
【００８９】
この後、書き込みコマンドが入力されると、第２ページのプログラムであるので、フラグセルにデータの書き込みを行なうため、フラグセル用のデータ記憶回路１０ａ内のＳＤＣにはデータ“０”が入力される（Ｓ２２）。前述したように、フラグセルは、信頼性を高めるために、複数セル用意することも可能である。この場合、第２ページでは、これら複数のフラグセルにデータ“０”が入力される。
【００９０】
第２ページのプログラムでは、図１（ｃ）に示すように、メモリセルのデータが“０”の場合で、外部から入力されるデータが“１”の場合、メモリセルのデータを“０”のままとし、外部から入力されるデータが“０”の場合、メモリセルのデータを“１”にする。
【００９１】
メモリセルのデータが“２”の場合で、外部から入力されるデータが“０”の場合、メモリセルのデータを“２”のままとする。しかし、第１ページの書き込み後、メモリセルのデータが“２”に達したかどうかのベリファイ時、ベリファイ電位を通常より低い“ｂ＊’”で行なった。このため、このメモリセルに対して、本来のベリファイ電位である“ｂ’”の電位まで書き込みを行なう。
【００９２】
また、メモリセルのデータが“２”の場合で、外部から入力されるデータが“１”の場合、メモリセルのデータを“３”にする。
【００９３】
（内部データリード）
先ず、セルへの書き込みの前に、第１ページのメモリセルのデータが“０”か“２”であるかを判断するため、内部リード動作を行なう（Ｓ２３）。内部データリードは、リード動作と全く同じである。通常メモリセルのデータが“０”か“２”かの判断時において、選択ワード線には、リード時の電位“ｂ”を与える。しかし、第１ページのプログラム動作では、ベリファイ電位を通常より低い“ｂ＊’”までしか書きこんでいないため、“ｂ”の電位より低い場合もある。したがって、内部データロードでは、ワード線に“ａ”の電位を供給して読み出し動作をする。
【００９４】
すなわち、選択されているブロック内の非選択ワード線及びセレクト線ＳＧ１に電位Ｖｒｅａｄを印加する。これとともに、データ記憶回路１０の信号ＶＰＲＥをＶｄｄとし、信号ＢＬＰＲＥ、ＢＬＣＬＡＭＰを所定の電圧、例えば１Ｖ＋Ｖｔｈとして、ビット線をＶｄｄにプリチャージした後、セルのソース側のセレクト線ＳＧ２をハイレベルとする。閾値電圧が電位“ａ”より高いセルはオフするため、ビット線はハイレベルのままである。また、閾値電圧が電位“ａ”より低いセルはオンするため、ビット線は放電され、接地電位Ｖｓｓとなる。
【００９５】
次に、データ記憶回路１０の信号ＶＰＲＥをＶｄｄ、信号ＢＬＰＲＥをＶｄｄ＋Ｖｔｈとし、ＴＤＣのノードＮ３をＶｄｄにプリチャージする。この後、信号ＢＬＣＬＡＭＰを０．９Ｖ＋Ｖｔｈとする。ＴＤＣのノードＮ３はビット線がローレベルの場合、ローレベルとなり、ビット線がハイレベルの場合、ハイレベルとなる。この後、ＴＤＣの電位をＰＤＣに転送する。この結果、メモリセルのデータが“２”である場合、ＰＤＣにハイレベル信号がラッチされ、メモリセルのデータが“０”である場合、ＰＤＣにローレベル信号がラッチされる。図１０（ａ）は、データロード、内部リード後のＳＤＣ、ＰＤＣとメモリセルのデータの関係を示している。
【００９６】
（データキャッシュの設定）（Ｓ２４）
この後、図１１、図１２に示すデータキャッシュ設定手順に従い各データキャッシュに記憶されたデータが操作される。
【００９７】
このような操作をすることにより、各データキャッシュに記憶されるデータは図１０（ｂ）に示すようになる。
【００９８】
すなわち、メモリセルのデータを“０”にする場合（第１ページではデータ“１”、第２ページはデータ“１”）、ＰＤＣはハイレベル、ＤＤＣはローレベル、ＳＤＣはハイレベルに設定される。
【００９９】
メモリセルのデータを“１”にする場合（第１ページではデータ“１”、第２ページはデータ“０”）、ＰＤＣはローレベル、ＤＤＣはハイレベル、ＳＤＣはハイレベルに設定される。
【０１００】
メモリセルのデータを２する場合（第１ページではデータ“０”、第２ページはデータ“０”）、ＰＤＣはローレベル、ＤＤＣはハイレベル、ＳＤＣはローレベルに設定される。
【０１０１】
メモリセルのデータを３する場合（第１ページではデータ“０”、第２ページはデータ“１”）、ＰＤＣはローレベル、ＤＤＣはローレベル、ＳＤＣはローレベルに設定される。
【０１０２】
（第２ページベリファイ：メモリセルデータ“２”のベリファイ）（Ｓ２５）
データ“２”を書き込むセルは、第１ページで本来のベリファイ電位“ｂ’”より低いベリファイ電位“ｂ＊’”により、書き込みが行なわれている。その後、隣接セルの書き込みにより閾値電圧が上昇している場合もあり、本来のベリファイ電位“ｂ’”に達しているセルもある。このため、先ず、データ“２”のベリファイを行なう。このプログラムベリファイ動作では、選択されているワード線にリードの時の電位“ｂ”より少し高い電位“ｂ’”を印加する。
【０１０３】
先ず、選択されているブロック内の非選択ワード線及びセレクト線ＳＧ１に電位Ｖｒｅａｄを与え、図６のデータ記憶回路１０の信号ＢＬＣＬＡＭＰを１Ｖ＋Ｖｔｈとし、ＲＥＧをＶｄｄ＋Ｖｔｈとしてビット線をプリチャージする。メモリセルにデータ“０”、“３”を書き込む場合、図１０（ｂ）に示すように、ＤＤＣがローレベルに設定されている。このため、ビット線はプリチャージされない。また、メモリセルにデータ“１”、“２”を書き込む場合、ＤＤＣがハイレベルに設定されている。このため、ビット線がプリチャージされる。
【０１０４】
次に、ＮＡＮＤセルのソース側のセレクト線ＳＧ２をハイレベルにする。セルの閾値電圧が“ｂ’”より高い時、セルはオフする。このため、ビット線はハイレベルのままである。また、セルの閾値電圧が“ｂ’”より低いセルはオンする。このため、ビット線はＶｓｓとなる。ビット線の放電中に、ＴＤＣのノードＮ３が一旦Ｖｓｓとされる。この後、信号ＲＥＧをハイレベルとしてトランジスタ６１ｑをオンさせ、ＤＤＣのデータをＴＤＣに転送する。
【０１０５】
次に、信号ＤＴＧをＶｄｄ＋Ｖｔｈとしてトランジスタ６１ｓを一旦オンさせ、ＰＤＣのデータをＤＤＣに移す。この後、ＴＤＣのデータをＰＤＣに移す。
【０１０６】
次に、信号ＶＰＲＥをＶｄｄとし、信号ＢＬＰＲＥをＶｄｄ＋Ｖｔｈとすることにより、ＴＤＣのノードＮ３をＶｄｄにプリチャージする。この後、信号ＢＬＣＬＡＭＰを０．９Ｖ＋Ｖｔｈとしてトランジスタ６１ｔをオンさせる。ＴＤＣのノードＮ３はビット線がローレベルの場合、ローレベルとなり、ビット線がハイレベルの場合、ハイレベルとなる。
【０１０７】
ここで、書き込みを行なう場合、ＤＤＣにローレベル信号が記憶され、書き込みを行なわない場合、ＤＤＣにハイレベル信号が記憶されている。このため、信号ＶＲＥＧをＶｄｄとし、信号ＲＥＧをＶｄｄ＋Ｖｔｈにすると、書き込みを行なわない場合のみＴＤＣのノードＮ３が強制的にハイレベルとなる。
【０１０８】
この後、ＰＤＣのデータをＤＤＣに移し、ＴＤＣの電位をＰＤＣに読み込む。ＰＤＣにハイレベル信号がラッチされるのは、書き込みを行なわない場合と、メモリセルにデータ“２”を書き込み、セルの閾値電圧がベリファイ電位である“ｂ’”に達した場合だけである。ＰＤＣにローレベルがラッチされる場合は、セルの閾値電圧が“ｂ’”に達しない場合と、メモリセルにデータ“１”、“３”を書き込んでいる場合である。
【０１０９】
（プログラム動作）（Ｓ２６）
プログラム動作は、第１ページのプログラム動作と全く同じである。ＰＤＣにデータ“１”が記憶されている場合、書き込みが行なわれず、データ“０”が記憶されている場合、書き込みが行なわれる。
【０１１０】
（第２ページベリファイ：メモリセルデータ“１”のベリファイ）（Ｓ２７）
このプログラムベリファイ動作では、図１（ｃ）に示すように、選択されているワード線にリードの時の電位“ａ”より少し高い電位“ａ’”を与える。
【０１１１】
先ず、選択されているブロック内の非選択ワード線及びセレクト線ＳＧ１に読み出し電位Ｖｒｅａｄを与える。データ記憶回路１０の信号ＢＬＣＬＡＭＰを１Ｖ＋Ｖｔｈ、ＢＬＣ２をＶｄｄ＋Ｖｔｈとしてビット線をプリチャージする。メモリセルのデータ“２”、“３”への書き込み時、ＳＤＣの記憶データは“０”である。このため、ビット線はプリチャージされず、メモリセルのデータ“０”、“１”への書き込み時のみ、ビット線がプリチャージされる。
【０１１２】
次に、セルのソース側のセレクト線ＳＧ２をハイレベルにする。閾値電圧が電位“ａ’”より高い時セルはオフするため、ビット線はハイレベルのままである。また、閾値電圧が電位“ａ’”より低いセルはオンするためビット線はＶｓｓとなる。このビット線放電中、ＴＤＣのノードＮ３を一旦Ｖｓｓとし、信号ＲＥＧをハイレベルとしてトランジスタ６１ｑをオンさせ、ＤＤＣのデータをＴＤＣに移す。
【０１１３】
次に、信号ＤＴＧをハイレベルとしてトランジスタ６１ｓを一旦オンとし、ＰＤＣのデータをＤＤＣに移す。この後、ＴＤＣのデータをＰＤＣに移す。次に、データ記憶回路の信号ＢＬＰＲＥに電圧Ｖｄｄ＋Ｖｔｈとして、トランジスタ６１ｕをオンとし、ＴＤＣのノードＮ３をＶｄｄにプリチャージする。この後、信号ＢＬＣＬＡＭＰを０．９Ｖ＋Ｖｔｈとし、トランジスタ６１ｔをオンさせる。すると、ＴＤＣのノードＮ３はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合ハイレベルとなる。
【０１１４】
ここで、書き込みを行なう場合、ＤＤＣにローレベルが記憶され、書き込みを行なわない場合、ＤＤＣにハイレベルが記憶されている。このため、信号ＶＲＥＧをＶｄｄとし、信号ＲＥＧをハイレベルにすると、書き込みを行なわない場合のみＴＤＣのノードＮ３が強制的にハイレベルとなる。この動作の後、ＰＤＣのデータをＤＤＣに移し、ＴＤＣの電位をＰＤＣに読み込む。ＰＤＣにハイレベルがラッチされるのは、書き込みを行なわない場合と、メモリセルにデータ“１”を書き込んでいて、セルの閾値電圧がベリファイ電位“ａ’”に達した場合だけである。ＰＤＣにローレベルがラッチされる場合は、セルの閾値電圧が電位“ａ’”に達しない場合と、メモリセルのデータ“２”、３に書き込んでいる場合である。
【０１１５】
（第２ページベリファイ：メモリセルデータ“２”のベリファイ）（Ｓ２８）
プログラム前に行なったメモリセルデータ“２”のベリファイと同様に、メモリセルデータ“２”のベリファイを行なう。
【０１１６】
（第２ページベリファイ：メモリセルデータ“３”のベリファイ）（Ｓ２９）
このプログラムベリファイ動作では、図１（ｃ）に示すように、選択されているワード線にリードの時の電位“ｃ”より少し高い電位“ｃ’”を供給する。この状態において、先ず、選択されているブロック内の非選択ワード線及びセレクト線ＳＧ１にＶｒｅａｄを供給し、信号ＢＬＣＬＡＭＰを１Ｖ＋Ｖｔｈ、ＢＬＰＲＥをＶｄｄ＋Ｖｔｈとしてトランジスタ６１ｔ、６１ｕをオンとしてビット線をプリチャージする。
【０１１７】
次に、セルのソース側のセレクト線ＳＧ２をハイレベルにする。閾値電圧が電位“ｃ’”より高いセルはオフするため、ビット線はハイレベルのままである。また、閾値電圧が電位“ｃ’”より低いセルはオンするため、ビット線はＶｓｓとなる。このビット線放電中、ＴＤＣのノードＮ３をＶｓｓとし、信号ＲＥＧハイレベルとし、トランジスタ６１ｑをオンとしてＤＤＣのデータをＴＤＣに移す。
【０１１８】
次に、信号ＤＴＧをハイレベルとし、トランジスタ６１ｓをオンさせＰＤＣのデータをＤＤＣに移す。この後、ＴＤＣのデータをＰＤＣに移す。次に、信号ＢＬＰＲＥをＶｄｄ＋Ｖｔｈとしてトランジスタ６１ｕをオンさせ、ＴＤＣのノードＮ３をＶｄｄにプリチャージする。この後、信号ＢＬＣＬＡＭＰを０．９Ｖ＋Ｖｔｈとしてトランジスタ６１ｔをオンとする。ＴＤＣのノードＮ３はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合ハイレベルとなる。
【０１１９】
ここで、書き込みを行なう場合、ＤＤＣにローレベルが記憶され、書き込みを行なわない場合、ＤＤＣにハイレベルが記憶されている。このため、信号ＶＲＥＧをＶｄｄとし、信号ＲＥＧをハイレベルとしてトランジスタ６１ｑをオンとする。すると、書き込みを行なわない場合のみＴＤＣのノードＮ３が強制的にハイレベルとなる。この動作の後、ＰＤＣのデータをＤＤＣに移し、ＴＤＣの電位をＰＤＣに読み込む。ＰＤＣにハイレベルがラッチされるのは、書き込みを行なわない場合と、メモリセルにデータ“３”を書き込んでいて、セルの閾値電圧がベリファイ電位“ｃ’”に達した場合だけである。ＰＤＣにローレベルがラッチされる場合は、セルの閾値電圧が電位“ｃ’”に達しない場合とメモリセルのデータ“１”、“２”に書き込んでいる場合である。
【０１２０】
ＰＤＣがローレベルの場合は再び書き込み動作を行ない全てのデータ記憶回路のＰＤＣのデータがハイレベルになるまでこのプログラム動作とベリファイ動作を繰り返す（Ｓ３０）。
【０１２１】
上記第１の実施形態において、１回のプログラムの後、３つのベリファイを行なっていた。しかし、初期のプログラムループでは、閾値電圧が上がらない。このため、メモリセルデータ“３”のベリファイ、若しくはメモリセルデータ“３”のベリファイ及びメモリセルデータ“２”のベリファイを省略することもできる。また、終了近くのプログラムループでは、メモリセルデータ“１”への書き込み、若しくはメモリセルデータ“２”及びメモリセルデータ“１”の書き込みは終了している。このため、これらのベリファイ動作は省略することもできる。メモリセルデータ“１”のベリファイが不用になると、ＳＤＣで記憶しているデータを保持する必要がなくなる。このため、次のデータを書き込みのためのデータを外部より読み込んでおくことも可能である。
【０１２２】
また、フラグセルには、第１ページでは、データが書き込まれず、第２ページでのみ、データが書き込まれた。このため、フラグセルのデータは“１”になっている。
【０１２３】
（第１ページリード）
図１３は、第１ページリードのダイアグラムを示している。先ず、アドレスを指定し、図３に示す２ページを選択する。図１（ｂ）（ｃ）に示すように、第２ページの書き込み前と後で、閾値電圧の分布が変わっている。したがって、先ず、ワード線の電位を“ａ”として読み出し動作を行ないフラグセルのデータが“０”か“１”であるかを判別する（Ｓ３１、Ｓ３２）。この判別において、フラグセルが複数セルある場合は、これらの多数決により、“０”か“１”を判断する。
【０１２４】
フラグセルから読み出されたデータが“１”（メモリセルのデータが“０”）の場合、第２ページの書き込みは行われていない。このため、セルの閾値電圧の分布は、図１（ａ）又は（ｂ）となっている。このようなセルのデータを判断するには、ワード線の電位を“ａ”でリード動作をすればよい。しかし、ステップＳ３１において、ワード線電位“ａ”で読み出し動作をした結果は、既にデータ記憶回路に読み出されている。このため、データ記憶回路に記憶されているデータを外部に出力すれば良い（Ｓ３３）。
【０１２５】
一方、フラグセルから読み出されたデータが“０”（メモリセルのデータが“１”）の場合、第２ページの書き込みが行われているため、セルの閾値電圧分布は、図１（ｃ）に示すようになっている。これらのメモリのデータを判断するには、ワード線の電位を“ｂ”でリード動作をしなくてはならない。したがって、ワード線の電位を“ｂ”として読み出し動作を行ない（Ｓ３４）、この後、データ記憶回路に読み出されたデータが外部に出力される（Ｓ３３）。
【０１２６】
（リード動作：第１ページリード）
上記のように、第１ページのリード動作は、選択ワード線にリード電位“ａ”又は“ｂ”を供給して読み出し動作が実行される。
【０１２７】
先ず、選択されているブロック内の非選択ワード線及びセレクト線ＳＧ１にＶｒｅａｄを供給し、図６に示すデータ記憶回路の信号ＢＬＰＲＥを１Ｖ＋Ｖｔｈ、ＢＬＣＬＡＭＰをＶｄｄ＋Ｖｔｈとして、ビット線をプリチャージする。この後、セルのソース側のセレクト線ＳＧ２をハイレベルにする。閾値電圧が電位“ａ”又は“ｂ”より高いセルはオフするため、ビット線はハイレベルのままである。また、閾値電圧が電位“ａ”又は“ｂ”より低いセルはオンするため、ビット線がＶｓｓとなる。
【０１２８】
次に、データ記憶回路の信号ＢＬＰＲＥをＶｄｄ＋Ｖｔｈとしてトランジスタ６１ｕをオンとすることにより、ＴＤＣのノードＮ３をＶｄｄにプリチャージする。この後、信号ＢＬＣＬＡＭＰを０．９Ｖ＋Ｖｔｈとしてトランジスタ６１ｔをさせる。ＴＤＣのノードＮ３はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合ハイレベルとなる。この後、ＰＤＣのデータをＳＤＣに移動させる。
【０１２９】
（第２ページリード）
図１４は、第２ページリードのダイアグラムを示している。第２ページリードでは、先ず、アドレスを指定し、図３に示す２ページを選択する。図１（ｂ）（ｃ）に示すように、第２ページの書き込み前と後で、閾値電圧の分布が変わっている。しかし、第２ページの書き込み後は、図１（ｃ）に示すような分布になっている。このため、先ず、ワード線の電位を“ｃ”として読み出しを行ない（Ｓ３５）。この後、ワード線電位を“ａ”として読み出し動作を行なう（Ｓ３６）。セルの閾値電圧がワード線電位“ａ”より低いか、ワード線電位“ｃ”より高い場合、データを“１”とし、セルの閾値電圧がワード線電位“ａ”より高くワード線電位“ｃ”より低い場合、データを“０”とする。第２ページ書込み前において、第２ページのデータは“１”が出力されるべきである。しかし、図１（ａ）に示す閾値電圧分布になっている。このため、第２ページの書き込み後と同じ読み出し動作をすると出力データが“０”となることもある。したがって、フラグセルのデータが“０”か“１”であるかを判別する（Ｓ３７）。この結果、フラグセルのデータが“１”で、第２ページの書き込みが行なわれていない場合、出力データを“１”に固定する（Ｓ３８）。出力を“１”にするには、データ記憶回路の信号ＰＲＳＴをハイレベルとし、ＳＤＣを“１”に設定する。あるいは、図２に示すデータ入出力バッファよりデータ“１”しか出力させないようにする。また、フラグセルのデータが“０”の場合、読み出したデータを出力する（Ｓ３９）。
【０１３０】
図１５は、第２ページリードの変形例を示している。この場合、先ず、ワード線の電位を“ａ”としてフラグセルのデータを読み出し、フラグセルのデータを判別する（Ｓ４０、Ｓ４１）。フラグセルのデータが“１”の場合、第２ページの書き込みが行なわれていない。このため、出力データを“１”に固定する（Ｓ４２）。また、フラグセルのデータが“０”の場合、第２ページの書き込みが行なわれている。このため、ワード線の電位を“ｃ”として読み出し動作を行ない、読み出したデータを出力する（Ｓ４３、Ｓ４４）。このような構成としても第２ページのリード動作を行なうことができる。
【０１３１】
しかし、第１の実施形態では、図１４に示すように、先ず、ワード線の電位を“ｃ”として読み出し動作を行ない。この後、ワード線の電位を“ａ”として読み出し動作を行ない、フラグセルのデータが“０”の場合、データ記憶回路に読み出されているデータを外部に出力する。また、フラグセルのデータが“１”の場合、第２ページの書き込みは行われていないため、データを外部に出力するとき、データ記憶回路のデータを出力せず、常にデータ“１”を出力するようにする。
【０１３２】
第２ページリードは、具体的には、次のような動作を実行する。
【０１３３】
（リード動作：第２ページリード第１回目）
第２ページのリード動作の１回目は、選択ワード線にリード電位“ｃ”を供給し、読み出し動作をする（Ｓ３５）。リード動作は、前述した第１ページリードと全く同じであり、読み出したセルのデータをＰＤＣに記憶させる。
【０１３４】
（リード動作：第２ページリード第２回目）
第２ページのリード動作の２回目は選択ワード線にリード電位“ａ”を供給し、読み出し動作をする（Ｓ３６）。
【０１３５】
先ず、選択されているブロック内の非選択ワード線及びセレクト線ＳＧ１にＶｒｅａｄを供給する。この状態において、データ記憶回路の信号ＢＬＰＲＥ、ＢＬＣＬＡＭＰを１Ｖ＋Ｖｔｈとし、ビット線をプリチャージする。この後、セルのソース側のセレクト線ＳＧ２をハイレベルにする。閾値電圧が電位“ａ”より高いセルはオフするためビット線はハイレベルのままである。また、閾値電圧が電圧“ａ”より低いセルはオンするためビット線がＶｓｓとなる。
【０１３６】
次に、データ記憶回路の信号ＢＬＰＲＥをＶｄｄ＋Ｖｔｈとすることにより、ＴＤＣのノードＮ３をＶｄｄにプリチャージした後、信号ＢＬＣＬＡＭＰをＶｄｄ＋Ｖｔｈとしてトランジスタ６１ｔをオンさせる。ＴＤＣのノードＮ３はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合ハイレベルとなる。この後、ＤＴＧ＝ハイレベル、ＲＥＧ＝ハイレベル、ＶＲＥＧ＝ローレベルとする。すると、ＰＤＣがハイレベルとなっている場合のみＴＤＣのノードＮ３はローレベルになる。この動作の後、ＰＤＣのデータをＳＤＣに移動させる。この結果、セルの閾値電圧が電位“ａ”より低いか又は電位“ｃ”より高い場合、出力データが“１”となり、電位“ａ”より高く電位“ｃ”より低い場合、出力データは“０”となる。
【０１３７】
（イレーズ）
消去動作は、先ず、アドレスを指定し、図３の破線で示すブロックを選択する。消去動作を行なうと、メモリセルのデータは“０”となり、第１ページ、第２ページ、第３ページの何れでリードを行なってもデータ“１”が出力される。
【０１３８】
上記第１の実施形態によれば、本来の閾値電圧より低くい電位により、第１ページのデータをメモリセルに書き込み、第２ページのデータを書き込む前に隣接するメモリセルに第１ページのデータを書き込み、隣接するメモリセルの書き込み後、第２ページのデータをメモリセルに書き込み、記憶データに対応した本来の閾値電圧に設定している。このため、隣接するメモリセルのＦＧ−ＦＧ間容量の影響を考慮して、第１ページのデータをメモリセルに書き込んでいるため、多値のデータに対応する閾値電圧を正確に設定することができる。
【０１３９】
また、第２ページのデータを書き込む際、フラグセルにデータを書き込み、各ページのデータを読み出す際、フラグセルに記憶されたデータに応じて外部に出力されるデータを制御している。したがって、各ページのデータを確実に出力することができる。
【０１４０】
（第２の実施形態）
図１６は、第１の実施形態を変形した第２の実施形態を示している。第１の実施形態において、第２ページの書き込み時、フラグセルのメモリセルデータを“０”から“１”とした。しかし、フラグセルのメモリセルデータを“０”から“２”とすることもできる。このような構成とした場合、第１ページのリード動作を図１６に示すように変形できる。
【０１４１】
すなわち、先ず、ワード線の電位を“ｂ”に設定してリード動作を行ないフラグセルのデータを判別する（Ｓ４５、Ｓ４６）。フラグセルにデータが書き込まれている場合、データ記憶回路に読み出されたデータをそのまま出力し（Ｓ４７）、フラグセルにデータが書き込まれていない場合、ワード線の電位を“ａ”に設定してリード動作する（Ｓ４８）。これにより読み出されたデータが出力される（Ｓ４７）。
【０１４２】
上記第２の実施形態によれば、第２ページの書き込みにおいて、フラグセルにメモリセルデータ“２”を書き込むことにより、メモリセルデータ“２”が書き込まれたフラグセルと同時に選択されるメモリセルの第１ページのデータを読み出す際、１サイクルでデータを読み出すことができる。したがって、リード回数を削減でき、高速な読み出しが可能となる。
【０１４３】
第２ページの書き込みにおいて、メモリセルのデータはデータ“０”からデータ“１”への変化と、データ“２”からデータ“３”への変化しかない。しかし、第２ページの書き込みにおいて、フラグセルのデータをデータ“０”からデータ“２”に変化させると、フラグセルの隣のメモリセルの閾値電圧の分布が広がってしまう。これを防止するため、例えばフラグセルとメモリセルの間にダミーのビット線及びメモリセルを配置する。
【０１４４】
図５９において、一対のダミービット線ＤＭＢＬ及びＮＡＮＤセルを構成するダミーセルＤＭＣは、フラグセルＦＣとビット線ＢＬｉ＋１及びこのビット線に接続された複数のメモリセルとの間に配置される。一対のダミービット線ＤＭＢＬはダミーデータ記憶回路１０ｂに接続される。このダミーデータ記憶回路１０ｂにはアドレス信号ＹＡＤ１が供給される。このような構成とすることにより、フラグセルの書き込の影響により、メモリセルの閾値電圧の分布が広がることを防止できる。
【０１４５】
また、図５９に示すように、一対のダミービット線ＤＭＢＬ及びダミーセルＤＭＣをフラグセルＦＣとリダンダンシセルアレイＲＤの間に配置してもよい。一対のダミービット線ＤＭＢＬはダミーデータ記憶回路１０ｃに接続される。このダミーデータ記憶回路１０ｃにはアドレス信号ＹＡＤ２が供給される。このような構成とすることにより、フラグセルの書き込みによるリダンダンシーセルの閾値電圧の分布が広がることを防止できる。
【０１４６】
（第３の実施形態）
図１７は、第３の実施形態のプログラム動作を示すダイアグラムである。
【０１４７】
上記第１、第２の実施形態において、第２ページの書き込みは、メモリセルに対してデータ“１”、“２”、“３”を同時に書き込んでいる。これに対して、第３の実施形態は、メモリセルにデータ“２”のみ先に書き込み、書き込み終了後、メモリセルにデータ“１”、“３”を同時に書き込んでいる。第３の実施形態の書き込み動作は次のように実行される。
【０１４８】
第１番目の書き込み：第１メモリセルに第１ページを書きこむ（Ｓ５１）。
【０１４９】
第２番目の書き込み：第２メモリセルに第１ページを書きこむ（Ｓ５２）。
【０１５０】
第３番目の書き込み：第３メモリセルに第１ページを書きこむ（Ｓ５３）。
【０１５１】
第４番目の書き込み：第４メモリセルの第１ページを書き込む（Ｓ５４）。この後、第５番目の書き込みのためのデータをロードする前に、第１メモリセルと第２メモリセルに本来の閾値電圧でデータ“２”を順次書き込む（Ｓ５５、Ｓ５６）。
【０１５２】
第５番目の書き込み：第１メモリセルに第２ページを書き込む（Ｓ５７）。
【０１５３】
第６番目の書き込み：第２メモリセルに第２ページを書き込む（Ｓ５８）。
【０１５４】
第７番目の書き込み：第５メモリセルに第１ページを書きこむ（Ｓ５９）。
【０１５５】
第８番目の書き込み：第６メモリセルの第１ページを書き込む（Ｓ６０）。この後、第９番目の書き込みのためのデータをロードする前に、第３メモリセルと第４メモリセルに本来の閾値電圧でデータ“２”を書き込む（Ｓ６１、Ｓ６２）。
【０１５６】
図１８は、上記第４番目の書き込み動作を具体的に示すダイアグラムであり、図１９は、上記第５番目の書き込み動作を具体的に示すダイアグラムであり、図２０は、上記第６番目の書き込み動作を具体的に示すダイアグラムである。
【０１５７】
図１８において、第４メモリセルに第１ページを書き込む動作は、図８に示す動作と同様である。この後、第１メモリセルに本来の閾値電圧によりデータ“２”が書き込まれる。すなわち、先ず、ワード線の電圧を“ａ”としてメモリセルからデータが読み出され（Ｓ５５−１）、この読み出されたデータに従って、ＴＤＣ、ＤＤＣ、ＰＤＣが設定される（Ｓ５５−２）。この後、ワード線にデータ“２”の本来の閾値電圧“ｂ’”を供給してベリファイを行なう（Ｓ５５−３）。この後、プログラム動作を行ないメモリセルの閾値電圧を変化させる（Ｓ５５−４）。次いで、閾値電圧“ｂ’”によりメモリセルの閾値電圧をベリファイし（Ｓ５５−５）、全てのＰＤＣが“１”となるまで、上記プログラム、ベリファイが繰り返される（Ｓ５５−６〜Ｓ５５−４）。
【０１５８】
この後、第１のメモリセルに対する上記書き込みと同様として、第２メモリセルに本来の閾値電圧によりデータ“２”が書き込まれる（Ｓ５６−１〜Ｓ５６−６）。
【０１５９】
図１９に示す第１メモリセルに第２ページを書き込む動作（Ｓ５７−１〜Ｓ５７−８）は、図９に示す第１の実施形態の第２ページ書き込み動作と次の点が異なっている。図９において、データキャッシュ設定後、閾値電圧“ｂ’”によりメモリセルのデータをベリファイした。これに対して、図１９に示す書き込み動作において、データ“２”は既に書き込まれているため、閾値電圧“ｂ’”によるベリファイは省略されている。したがって、データキャッシュ設定後、第１メモリセルに第２ページのプログラムが実行される（Ｓ５７−４、Ｓ５７−５）。また、プログラム後のベリファイにおいても、閾値電圧“ｂ’”によるベリファイは省略されている。したがって、閾値電圧“ａ’”“ｃ’”によるベリファイのみが行われる（Ｓ５７−６、Ｓ５７−７）。
【０１６０】
図２０に示す第２メモリセルに第２ページを書き込む動作は、図１９に示す第１メモリセルに第２ページを書き込む動作と同様であるため、説明は省略する。
【０１６１】
上記第３の実施形態によれば、第１ページの書き込み後、第２ページの書き込み以前に本来の閾値電圧でデータ“２”を書き込んでいる。このため、第１の実施形態において、第２ページのプログラム時間は、第１ページのプログラム時間よりも長いが、第３の実施形態の場合、第１ページと第２ページのプログラム時間をほぼ同じにすることができる。
【０１６２】
（第４の実施形態）
図２１、図２２は、第３の実施形態を変形した本発明の第４の実施形態を示している。第４の実施形態の書き込み動作は、図２１に示すように実行される。
【０１６３】
第１番目の書き込み：第１メモリセルに第１ページを書きこむ（Ｓ７１）。
【０１６４】
第２番目の書き込み：第２メモリセルに第１ページを書きこむ（Ｓ７２）。
【０１６５】
第３番目の書き込み：第３メモリセルに第１ページを書きこむ（Ｓ７３）。この後、第１メモリに本来の閾値電圧でデータ“２”を書き込む（Ｓ７４）。
【０１６６】
第４番目の書き込み：第４メモリセルに第１ページを書きこむ（Ｓ７５）。この後、第２メモリに本来の閾値電圧でデータ“２”を書き込む（Ｓ７６）。
【０１６７】
第５番目の書き込み：第１メモリセルに第２ページを書き込む（Ｓ７７）。
【０１６８】
第６番目の書き込み：第２メモリセルに第２ページを書き込む（Ｓ７８）。
【０１６９】
第７番目の書き込み：第５メモリセルに第１ページを書きこむ（Ｓ７９）。この後、第３メモリに本来の閾値電圧でデータ“２”を書き込む（Ｓ８０）。
【０１７０】
第８番目の書き込み：第６メモリセルに第１ページを書きこむ（Ｓ８１）。この後、第４メモリに本来の閾値電圧でデータ“２”を書き込む（Ｓ８２）。
【０１７１】
図２２は、上記第３番目の書き込み動作を具体的に示すダイアグラムである。
【０１７２】
図２２に示す第３メモリセルに第１ページを書き込む動作（Ｓ７３）、及び第１メモリセルに本来の閾値電圧でデータ“２”を書き込む動作（Ｓ７４）は、図１８に示す第４メモリセルに第１ページを書き込む動作（Ｓ５４）、及び第１メモリセルに本来の閾値電圧でデータ“２”を書き込む動作（Ｓ５５）と同様であるため、説明は省略する。
【０１７３】
また、上記第１メモリセルに第２ページを書き込む動作（Ｓ７７）は、図１９に示す書き込み動作と同様である。
【０１７４】
上記第４の実施形態によれば、第１ページの書き込み後、第２ページの書き込み以前に本来の閾値電圧でデータ“２”を書き込んでいる。このため、第３の実施形態と同様に、第１ページと第２ページのプログラム時間をほぼ同じにすることができる。
【０１７５】
（第５の実施形態）
近年、複数ビットを記憶する多値フラッシュメモリの書き込み動作において、閾値電圧の分布を狭くするため、パスライト方式（パスライト方式）が提案されている。
【０１７６】
図２３は、従来のパスライト方式の書き込みシーケンスを示している。
【０１７７】
このパスライト方式は、第１ページ書き込み（図２３（ａ））及び第２ページ書き込み（図２３（ｂ））の第１のプログラムシーケンスにおいて、メモリセルの閾値電圧を本来の閾値電圧より低いベリファイ電位“ａ＊’”，“ｂ＊’”として第１ページの書き込み及びベリファイ動作を行なう。このプログラムベリファイがパスした後、第１ページ書き込み及び第２ページ書き込みの第２ページのプログラムシーケンスにおいて、ベリファイ電位を本来の閾値電圧“ａ’”，“ｂ’”，“ｃ’”として、書き込み及びベリファイ動作を行なう。このパスライト方式は、一旦書込みが行なわれたセルの閾値電圧を若干高い閾値電圧まで再度書込みする。再書き込み時の閾値電圧の変動率は小さくなる。このため、閾値電圧分布が小さくなる。
【０１７８】
一般に、ＮＡＮＤ型フラッシュメモリの場合、同一ワード線に接続された複数のセルのうち、半分のセルを一度に書き込む。このため、書き込みベリファイのループの最初のベリファイ時は、閾値電圧の低いセルが多く、ソース線に流れ込む電流が多いためソース線が浮いた状態であり、最初に書き込みが完了するセルはこの状態で閾値電圧が決まる。この後、他のセルの書き込みが終了すると、ソース線の電位が浮いた状態から戻る。このため、最初に書き込みが完了したセルは閾値電圧が低くなったようになり、閾値電圧分布が広がる問題がある。しかし、パスライト方式の場合、閾値電圧の分布が広がることを防止できる。
【０１７９】
一般に、書き込み電圧Ｖｐｇｍはプログラムベリファイ毎にΔＶｐｇｍずつ増加させる。パスライト方式では、第１回目の書き込みの書き込み電圧ΔＶｐｇｍを、例えば０．４Ｖステップと大きくする。第１回目の書き込みシーケンスが終了した後、書き込み電圧Ｖｐｇｍを初期の電圧値に戻し、第２回目の書き込みでも書き込み電圧Ｖｐｇｍは、プログラムベリファイ毎にΔＶｐｇｍずつ増加させる。しかし、第２回目の書き込み電圧は、第１回目の書き込み電圧ΔＶｐｇｍより小さい電圧、例えば０．２Ｖステップとして、書き込み動作を行なう。このように書き込み電圧を設定することにより、高速に書き込むことができる。
【０１８０】
上記第１乃至第４の実施形態において、メモリセルにデータ“２”、“３”を書き込む場合、第１ページの書き込みでメモリセルのデータ“２”への書き込みが本来の閾値電圧“ｂ’”より低い閾値電圧“ｂ＊’”で行なわれ、この後、第２ページ目の書き込みで閾値電圧“ｂ’”、閾値電圧“ｃ’”に書き込んでいる。このため、上記パスライトも行なわれている。
【０１８１】
図２３に示す従来のパスライト方式の場合、第１ページの書き込み中に閾値電圧“ａ＊’”にする第１回目の書き込みベリファイと、閾値電圧“ａ’”にする第２回目の書き込みベリファイの２回のシーケンスがある。さらに、第２ページの書き込み中にも閾値電圧“ｂ＊”にする第１回目の書き込みベリファイと、閾値電圧“ｂ＊’”、“ｃ＊’”にする第２回目の書き込みベリファイの２回のシーケンスがある。
【０１８２】
これに対して、第１乃至第４の実施形態の場合、第１ページの書き込み中に閾値電圧“ｂ＊’”にする書き込みベリファイがあり、第２ページの書き込み中に閾値電圧“ｂ’”、“ｃ’”にする書き込みベリファイがあるのみである。したがって、メモリセルにデータ“１”を書き込む際、上記のパスライトが行なわれていない。そこで、第５の実施形態において、第２ページ次のようなアルゴリズムで書き込む。
【０１８３】
図２４は、第５の実施形態に適用されるデータ“１”の書き込みアルゴリズムを示している。
【０１８４】
先ず、図２５に示すように、データキャッシュＳＤＣ、ＤＤＣ、ＴＤＣをセットする。この状態において、本来の閾値電圧より低いベリファイ電位“ａ＊’”を設定して、ＰＤＣのデータにより書き込み動作を実行する（Ｓ９０〜Ｓ９５）。全てのＰＤＣがハイレベルになるまで、プログラムをベリファイを繰り返す（Ｓ９４〜Ｓ９６）。この後、図１０（ｂ）に示すようにデータキャッシュをセットし（Ｓ９７）、ベリファイ電位を本来の閾値電圧“ａ’”にする書き込み動作をする。この２回目の書き込み動作は、閾値電圧“ｂ’”、閾値電圧“ｃ’”への書き込みと同時に行ない。全てのＰＤＣがハイレベルになるまで、プログラムをベリファイを繰り返す（Ｓ９８〜Ｓ１０４）。
【０１８５】
上記第５の実施形態によれば、メモリセルデータ“１”の書き込みについてもパスライト方式を適用できるため、全てのデータをパスライト方式により書き込むことができる。
【０１８６】
（第６の実施形態）
図２６は、第５の実施形態を変形した本発明の第６の実施形態を示している。すなわち、第６の実施形態は、第２ページの書き込み順序を変更している。図２７（ａ）に示すように、データキャッシュをセットした後、本来の閾値電圧より低いベリファイ電位“ａ＊’”と閾値電圧“ｂ’”、閾値電圧“ｃ’”へ書込み動作を同時に行ない。全てのＰＤＣがハイレベルになるまで、プログラムをベリファイを繰り返す（Ｓ１１０〜Ｓ１１９）。この後、図２７（ｂ）に示すようにＳＤＣのデータを反転してＰＤＣに転送する（Ｓ１２０）。この後、データ“１”のセルのみベリファイ電位を本来の閾値電圧“ａ’”として書き込みし、全てのＰＤＣがハイレベルになるまで、プログラムとベリファイを繰り返す（Ｓ１２１〜Ｓ１２４）。
【０１８７】
上記第６の実施形態によっても第５の実施形態と同様の効果を得ることができる。
【０１８８】
（第７の実施形態）
図２８、図２９は、第５の実施形態を変形した第７の実施形態を示している。上記第５の実施形態において、第２ページの書き込みの時は、先ずベリファイ電位“ａ＊’”まで書き込み、この後、ベリファイ電位“ａ’”と閾値電圧“ｂ’”、及び閾値電圧“ｃ’”の書き込み動作を同時に行なっていた。
【０１８９】
これに対して、第７の実施形態において、閾値電圧がベリファイ電位“ａ＊’”を超えたセルに対しては、書き込みの時、ビット線に中間電位を供給して書き込む。このようにすることにより、書き込み時の閾値電圧の変動率を小さくすることで、閾値電圧の分布を小さくすることができる。
【０１９０】
図２８は、第７の実施形態における書き込みシーケンスを示し、図２９（ａ）乃至３３（ｂ）はデータキャッシュの動きを示している。
【０１９１】
（ａ）外部より入力されるデータはＳＤＣに記憶され、内部データリードにより読み出されがデータは、ＰＤＣに記憶される（Ｓ１３１〜Ｓ１３４、図２９（ａ））。
【０１９２】
（ｂ）図２９（ｂ）に示すようにデータキャッシュを設定する。
【０１９３】
（ｃ）ＶＲＥＧ＝Ｖｄｄ、ＲＥＧ＝Ｖｓｇとすると、ＤＤＣが“１”の場合、ビット線がＶｄｄにプリチャージされ、ＤＤＣが“０”の場合プリチャージされない（図３０（ａ））。
【０１９４】
（ｄ）ＢＬＣ１＝中間電位＋Ｖｔｈ（＝２Ｖ＋Ｖｔｈ）（Ｖclamp）とすると、ＰＤＣが“０”の場合、ビット線がＶｓｓとなる。また、ＰＤＣが“１”の場合であって、プリチャージがされていると、ビット線はＶｄｄのままとなり、プリチャージされていないと、ビット線は中間電位（２Ｖ）となる（図３０（ｂ））。
【０１９５】
ここで、選択ワード線をＶｐｇｍ、非選択ワード線をＶｐａｓｓとするとビット線がＶｄｄの場合、書き込みが行なわれず。ビット線がＶｓｓの場合、書き込みが起こり、ビット線が中間電位（２Ｖ）の場合、少しだけ書き込まれる（Ｓ１３５）。
【０１９６】
（ｅ）書き込み動作終了後、ワード線を立ち下げている間にＰＤＣのデータをＤＤＣに転送し、ＤＤＣのデータを反転してＰＤＣに転送する（図３０（ｃ））。
【０１９７】
（ｆ）図３１（ａ）に示すように、ベリファイ電位“ａ’”の動作（Ｓ１３６）は、ＢＬＣ１＝ハイレベル（例えばＶｄｄ＋Ｖｔｈ）、ＢＬＣＬＡＭＰに所定の電位、例えば１Ｖ＋Ｖｔｈを供給すると、ＰＤＣが“１”になっている場合（つまりメモリセルにデータ“１”に書き込んでいる場合）のみ、ビット線がプリチャージされ、ＰＤＣが“０”になっている場合、ビット線はプリチャージされない（Ｖｓｓのまま）となる。次に、ワード線の電位をベリファイ電位“ａ＊’”としビット線を放電する。また、ビット線の放電中にＰＤＣのデータを反転させておく。
【０１９８】
（ｇ）ＶＰＲＥ＝Ｖｄｄ、ＢＬＰＲＥ＝ＶｓｇとしてＴＤＣをＶｄｄに充電する。この後、信号ＢＬＣＬＡＭＰを０．９Ｖ＋Ｖｔｈとしてトランジスタ６１ｔをさせる。ビット線がＶｓｓの場合、ＴＤＣはＶｓｓになり、ビット線にプリチャージ電位が残っている場合、ＴＤＣはＶｄｄになる。ＴＤＣがＶｄｄになるのは、メモリセルにデータ“１”を書き込んでいて、閾値電圧がベリファイ電位“ａ＊’”に達した時である。メモリセルにデータ“１”を書き込んでいない場合、ビット線がプリチャージされていないため、ＴＤＣはＶｓｓとなる。メモリセルにデータ“１”を書き込んでいて、閾値電圧がベリファイ電位“ａ＊’”に達しない場合もＴＤＣはＶｓｓとなる。
【０１９９】
ここで、ＶＲＥＧ＝ハイレベル、ＲＥＧ＝ハイレベルとすると、ＤＤＣのデータが“１”の場合、強制的にＴＤＣがハイレベルになる。したがって、ＴＤＣがＶｄｄになるのは、メモリセルにデータ“１”を書き込んでいて、閾値電圧がベリファイ電位“ａ＊’”に達した時と、書き込み非選択の場合である。この後、ＤＴＧ＝Ｖｓｇとし、ＰＤＣのデータをＤＤＣにコピーした後、ＢＬＣ１＝ＶｓｇとしてＴＤＣの電位をＰＤＣに取りこむ（図３１（ｂ））。
【０２００】
（ｈ）次に、ワード線の電位を少し上げ、ベリファイ電位“ａ’”としてビット線を放電する（図３２（ａ））。
【０２０１】
この後、ＶＰＲＥ＝Ｖｄｄ、ＢＬＰＲＥ＝ＶｓｇとしてＴＤＣを再びＶｄｄに充電する。次いで、信号ＢＬＣＬＡＭＰを０．９Ｖ＋Ｖｔｈとしてトランジスタ６１ｔをさせる。ビット線がＶｓｓの場合、ＴＤＣはＶｓｓになり、ビット線にプリチャージ電位が残っている場合、ＴＤＣはＶｄｄになる。ＴＤＣがＶｄｄになるのは、メモリセルにデータ“１”を書き込んでいてベリファイ電位“ａ’”に達した時である。メモリセルにデータ“１”を書き込んでいない場合、ビット線がプリチャージされていない。このため、ＴＤＣはＶｓｓとなり、メモリセルにデータ“１”を書き込んでいて、閾値電圧がベリファイ電位“ａ’”に達しない場合もＴＤＣはＶｓｓとなる。
【０２０２】
ここで、ＶＲＥＧ＝ハイレベル、ＲＥＧ＝ハイレベルとすると、ＤＤＣのデータが“１”の場合（メモリセルにデータ“１”を書き込んでいない場合）、強制的にＴＤＣがハイレベルになる。したがって、ＴＤＣがＶｄｄになるのは、メモリセルにデータ“１”を書き込んでいない場合と、メモリセルにデータ“１”を書き込んでいて、閾値電圧がベリファイ電位“ａ’”に達した場合である。
【０２０３】
この後、ＤＴＧ＝Ｖｓｇとし、ＰＤＣのデータをＤＤＣにコピーした後、ＢＬＣ１＝ＶｓｇとしてＴＤＣの電位をＰＤＣに取りこむ。
【０２０４】
（ｉ）ＤＤＣのデータを、ＰＤＣへ移し、ＰＤＣのデータをＤＤＣに移す（図３２（ｂ））。
【０２０５】
（ｊ）メモリセルにデータ“１”を書き込んでいるセルであって、ベリファイ電位“ａ＊”の書き込みが全て終了すると、ＰＤＣのデータは“１”になる（図３３（ａ））。
【０２０６】
（ｋ）メモリセルにデータ“１”を書き込んでいるセルであって、ベリファイ電位“ａ’”の書き込みが全て終了すると、ＤＤＣのデータが全て“１”になる（図３３（ｂ））。
【０２０７】
（ｌ）ベリファイ電位“ｂ’”の動作（図２８、Ｓ１３７）は、第１の実施形態と同様に、ＢＬＣ２＝ハイレベル（例えばＶｄｄ＋Ｖｔｈ）、ＢＬＣＬＡＭＰに所定の電位、例えば１Ｖ＋Ｖｔｈを供給する。すると、ＳＤＣが“１”になっている場合（つまり、メモリセルにデータ“１”又は“２”を書き込んでいる場合）のみ、ビット線がプリチャージされる。ＳＤＣが“０”になっている場合、ビット線はプリチャージされない（Ｖｓｓのまま）となる。
【０２０８】
次に、ワード線にベリファイ電位“ｂ’”を供給し、ビット線を放電する。ビット線の放電中にＤＤＣのデータをＴＤＣに移す。次いで、ＰＤＣのデータをＤＤＣに移し、ＴＤＣのデータをＰＤＣに移す。この後、ＴＤＣをＶｄｄに充電した後、ＢＬＣＬＡＭＰに所定の電位、例えば０．９Ｖ＋Ｖｔｈを供給する。すると、ＴＤＣがハイレベルになるのは、メモリセルにデータ“２”を書き込んでいて、閾値電圧がベリファイ電圧“ｂ’”に達した場合のみである。ＶＲＥＧ＝ハイレベル、ＲＥＧ＝Ｖｓｇとすると、ＤＤＣのデータがハイレベルの場合、強制的にＴＤＣがハイレベルとなる。したがって、ＴＤＣがＶｄｄになるのは、メモリセルにデータ“２”を書き込んでいて、閾値電圧がベリファイ電圧“ｂ’”に達した時と、書き込み非選択の場合である。ＤＴＧ＝Ｖｓｇとし、ＰＤＣのデータをＤＤＣにコピーした後、ＢＬＣ１＝ＶｓｇとしてＴＤＣの電位をＰＤＣに取りこむ。
【０２０９】
（ｍ）ベリファイ電位“ｃ’”の動作（図２８、Ｓ１３８）も、第１の実施形態と同様に、ＢＬＰＲＥ＝ハイレベル（例えばＶｄｄ＋Ｖｔｈ）、ＢＬＣＬＡＭＰに所定の電位、例えば１Ｖ＋Ｖｔｈを供給してビット線をプリチャージする。次に、ワード線にベリファイ電位“ｃ’”を供給し、ビット線を放電する。ビット線の放電中にＤＤＣのデータをＴＤＣに移す。次いで、ＰＤＣのデータをＤＤＣに移し、ＴＤＣのデータをＰＤＣに移す。この後、ＴＤＣをＶｄｄに充電した後、ＢＬＣＬＡＭＰに所定の電位、例えば０．９Ｖ＋Ｖｔｈを与える。すると、ＴＤＣがハイレベルになるのは、メモリセルの閾値電圧がベリファイ電位“ｃ’”に達した場合のみである。ＶＲＥＧ＝ハイレベル、ＲＥＧ＝Ｖｓｇとすると、ＤＤＣのデータがハイレベルの場合強制的にＴＤＣがハイレベルとなる。したがって、ＴＤＣがＶｄｄになるのは、メモリセルにデータ“３”を書き込んでいて、閾値電圧がベリファイ電位“ｃ’”に達した時と、書き込み非選択の場合である。次いで、ＤＴＧ＝Ｖｓｇとし、ＰＤＣのデータをＤＤＣにコピーした後、ＢＬＣ１＝ＶｓｇとしてＴＤＣの電位をＰＤＣに取りこむ。
【０２１０】
このようにして、全てのＰＤＣとＤＤＣのデータが“１”になるまで、プログラムとベリファイ動作を繰り返す（Ｓ１３９）。
【０２１１】
第７の実施形態によれば、閾値電圧がベリファイ電位“ａ＊’”を超えたセルに対しては、書き込みの時、ビット線に中間電位を供給して書き込んでいる。このため、書き込み時の閾値電圧の変動率を小さくすることができ、閾値電圧の分布を小さくすることができる。したがって、高速な書き込み動作が可能となる。
【０２１２】
（第８の実施形態）
図３４は、第８の実施形態を示すものであり、８値（３ビット）のデータを記憶するＮＡＮＤフラッシュメモリのメモリセルアレイ１及びビット線制御回路２を示している。図３４に示す構成は、図３に示す４値（２ビット）の構成とほぼ同様であるため、異なる部分についてのみ説明する。
【０２１３】
図３４において、外部アドレスにより、１本のワード線が選択されると、破線で示す、１つのセクタが選択される。１セクタは３ページにより構成される。この３ページはアドレスによっての切り替えられる。すなわち、１つのメモリセルに３ビットのデータを記憶することができるため、３ビットの切り替えはアドレス（第１ページ、第２ページ、第３ページ）によって行なう。また、１セクタは２つのフラグセルＦＣ１、ＦＣ２を有している。このため、１本のワード線が選択されると、２つのフラグセルＦＣ１、ＦＣ２が同時に選択される。各フラグセルＦＣ１、ＦＣ２はビット線を介してフラグ用データ記憶回路１０ａ、１０ｂに接続されている。フラグセルＦＣ１は、第２ページの書き込みが行なわれていることを記憶し、フラグセルＦＣ２は、第３ページの書き込みが行なわれていることを記憶する。
【０２１４】
しかし、１つのメモリセルに３ビットのデータを記憶できるため、２つのフラグセルを用いず、１つのフラグセルにより、第２ページと第３ページの書き込みが行なわれていることを記憶することも可能である。
【０２１５】
また、信頼性を向上させるため、フラグセルＦＣ１及びＦＣ２を、それぞれ複数個具備し、これら複数セルに同一データを記憶し、読み出し時に、複数のフラグセルから読み出したデータを多数決により決めることもできる。
【０２１６】
第８の実施形態の動作について説明する。
【０２１７】
消去動作は、４値の場合と同じである。
【０２１８】
図３５、図３６は、メモリセルのデータとメモリセルの閾値電圧の関係を示している。図３５（ａ）に示すように、消去動作を行なうとメモリセルのデータは“０”となる。第１ページの書き込みにより、メモリセルのデータはデータ“０”とデータ“４”になる（図３５（ｂ））。第２ページの書き込み後、メモリセルのデータはデータ“０”、“２”、“４”、“６”となる（図３５（ｃ）、図３６（ａ））。第３ページの書き込み後、メモリセルのデータはデータ“０”〜“７”となる（図３６（ｂ））。本実施形態において、メモリセルのデータは閾値電圧の低いほうから高い方へと、定義されている。
【０２１９】
図３７（ａ）（ｂ）は、本実施形態における２つの書き込み順序の例を示している。ブロック内において、ソース線に近いメモリセルからページごとに書き込み動作が行なわれる。図３７（ａ）（ｂ）では、説明の便宜上、ワード線を４本としている。図３７（ａ）に示す書き込み順序は、図７に示す書き込み順序と類似している。これに対して、図３７（ｂ）に示す書き込み順序は、図３７（ａ）と若干相違している。すなわち、第１ページの書き込み後、第２ページは隣接のセルを初めに書くのではなく、同じセルに第２ページまで書込み、この後、第３ページの書き込みを行なう前に、隣接セルの第２ページまで、書き込みを行なった後、第３ページの書き込みを行なっている。このように、第３ページの隣接セルの影響を考慮した書き込みをすることも可能である。
【０２２０】
第３ページのワード線のリード電位は、本来“ａ”，“ｂ”，“ｃ”，“ｄ”，“ｅ”，“ｆ”，“ｇ”とし、ベリファイ電位を“ａ’”，“ｂ’”，“ｃ’”，“ｄ’”，“ｅ’”，“ｆ’”，“ｇ’”とする。第２ページのリード電位は、本来のリード電位より低い値“ｂ＊”（＝“ａ”），“ｄ＊”，“ｆ＊”とし、第２ページでのベリファイ電位はこれらより少し高い値、“ｂ＊’”，“ｄ＊’”，“ｆ＊’”とする。第１ページのリード電位は、本来のリード電位より低い電位“ｄ＊＊”（＝“ａ”）とし、第１ページでのベリファイ電位はこれらより少し高い電位“ｄ＊＊’”とする。
【０２２１】
（プログラム及びプログラムベリファイ）
プログラム動作は、先ず、アドレスを指定し、図３４に示す３ページが選択する。本メモリは、３ページのうち、第１ページ、第２ページ、第３ページの順でしか、プログラム動作はできない。第１ページ及び第２ページのプログラムは、４値の場合と同様である。
【０２２２】
図３５（ａ）〜（ｃ）に示す４値のメモリセルのデータとメモリセルの閾値電圧は、図１（ａ）〜（ｃ）に対応している。また、プログラム及びプログラムベリファイのブロックダイアグラムは、図８、図９と同様であるため省略する。但し、メモリセルのデータの定義及びワード線の電位は、４値の場合、“０”、“１”、“２”、“３”及び“ａ”、“ｂ”、“ｃ”であるのに対し、８値の場合、“０”、“２”、“４”、“６”及び“ｂ”、“ｄ”、“ｆ”となっている。
【０２２３】
（第１ページプログラム）
第１ページのプログラムのブロックダイアグラムは、図８と同様である。しかし、前述したように、ワード線電位の定義が変更されている。
【０２２４】
（隣接セルプログラム）
図３７（ａ）に示すように、メモリセル１の第１ページに１ビットのデータの書き込み後、メモリセル１とワード方向に隣接したメモリセル２の第１ページが書き込まれる。次いで、メモリセル１とビット方向に隣接したメモリセル３の第１ページの書き込み、メモリセル１と対角に隣接したメモリセル４の第１ページの書き込みが行なわれる。これらの書き込み動作が行なわれると、書き込みデータによっては、ＦＧ−ＦＧ間容量によって、メモリセル１の閾値電圧が上がる。このため、メモリセル１のデータ“０”とデータ“４”の閾値電圧分布は図３５（ｂ）のように閾値電圧の高いほうに広がる。
【０２２５】
この後、再びメモリセル１の第２ページに１ビットのデータが書き込まれる。
【０２２６】
（第２ページプログラム）
第２ページのプログラムのブロックダイアグラムは、パスライト方式の書き込みをした、図９と同様であるが、前述したように、ワード線電位の定義が変更されている。また、データロード、内部リード後のデータキャッシュ内のデータ及びデータキャッシュ設定後のデータキャッシュ内のデータは、図１０（ａ）（ｂ）と同様である。
【０２２７】
（隣接セルプログラム）
図３７（ａ）に示すように、メモリセル１の第１ページ及び第２ページにデータの書き込み後、メモリセル２の第２ページ、メモリセル５、６の第１ページ及びメモリセル３、４の第２ページにデータが書き込まれる。これらの書き込み動作が行なわれると、書き込みデータによっては、ＦＧ−ＦＧ間容量によって、メモリセル１の閾値電圧が上がる。このため、メモリセル１のデータ“２”、データ“４”、データ“６”の閾値電圧分布は図３６（ａ）のように広がる。
【０２２８】
この後、再びメモリセル１の第３ページに１ビットのデータが書き込まれる。
【０２２９】
（第３ページプログラム）
図３８は、第３ページのプログラムのブロックダイアグラムを示している。第３ページのプログラム動作も、先ずアドレスを指定し、図３４に示す３ページが選択される。
【０２３０】
次に、書き込みデータを外部より入力し全てのデータ記憶回路内のＳＤＣに記憶する（Ｓ１４１）。外部よりデータ“１”（書き込みを行なわない）が入力されると、図６に示すデータ記憶回路１０のＳＤＣは、ハイレベルになり、データ“０”（書き込みを行なう）が入力されるとローレベルとなる。この後、書き込みコマンドが入力されると、第３ページのプログラムであるので、フラグセルＦＣ１、ＦＣ２にデータの書き込みを行なうため、フラグセル用のデータ記憶回路１０ａ、１０ｂ内のＳＤＣにデータ“０”が入力される。
【０２３１】
第３ページのプログラムは、図３６（ｂ）に示すように、メモリセルのデータが“０”の場合で、外部から入力されるデータが“１”の場合、メモリセルのデータを“０”のままとし、外部から入力されるデータが“０”の場合、メモリセルのデータを“１”にする。
【０２３２】
メモリセルのデータが“２”の場合で、外部から入力されるデータが“０”の場合、メモリセルのデータを“２”のままである。しかし、第２ページの書き込み時において、メモリセルのデータが“２”に達したかどうかをベリファイする際、通常より低いベリファイ電位“ｂ＊’”を用いた。このため、データ“２”を記憶するメモリセルは、本来のベリファイ電位である“ｂ’”の電位まで書き込む。メモリセルのデータが“２”の場合で、外部から入力されるデータが“１”の場合、メモリセルのデータを“３”にする。
【０２３３】
メモリセルのデータが“４”の場合で、外部から入力されるデータが“１”の場合、メモリセルのデータは“４”のままである。しかし、第２ページの書き込み時において、メモリセルのデータが“４”に達したかどうかをベリファイする際、通常より低いベリファイ電位“ｄ＊’”を用いた。このため、データ“４”を記憶するメモリセルは、本来のベリファイ電位である“ｄ’”の電位まで書き込む。メモリセルのデータが“４”の場合で、外部から入力されるデータが“０”の場合、メモリセルのデータを“５”にする。
【０２３４】
メモリセルのデータが“６”の場合で、外部から入力されるデータが“０”の場合、メモリセルのデータを“６”のままである。しかし、第２ページの書き込み時において、メモリセルのデータが“６”に達したかどうかをベリファイする際、通常より低いベリファイ電位“ｆ＊’”を用いた。このため、データ“６”を記憶するメモリセルは、本来のベリファイ電位である“ｆ’”の電位まで書き込む。メモリセルのデータが“６”の場合で、外部から入力されるデータが“１”の場合、メモリセルのデータを“７”にする。
【０２３５】
（第３ページ第１回目プログラム）
第３ページのプログラムは、メモリセルにデータ“１”〜“７”を書き込む。これらのデータを同時にプログラムすることも可能であるが、本実施形態では、先ず、メモリセルにデータ“４”〜“７”の４つのデータを書き込む。パスライト方式プログラムの場合、データ“１”を書き込むメモリセルには、全く書き込みが行なわれていない。このため、この後、データ“１”を書き込むメモリセルにラフに書き込んでおく。この後、メモリセルデータ“１”〜“３”の書き込みを行なう。以下、具体的に説明する。
【０２３６】
（内部データリード１及びデータキャッシュ設定１）（Ｓ１４２〜Ｓ１４４）
先ず、セルへの書き込みの前に、第２ページのメモリセルのデータが“４”又は“６”か、“０”又は“２”であるかの判断と、メモリセルのデータが“６”か、データが“０”、“２”、“４”のいずれであるかを判断する。このため、ワード線の電位を“ｄ＊”、“ｆ＊”に順次設定し、内部リード動作を行なう（Ｓ１４２、Ｓ１４３）。
【０２３７】
図３９（ａ）は内部リード後のデータキャッシュの状態を示している。この後。データキャッシュを操作することにより、図３９（ｂ）に示すように、データキャッシュを設定する（Ｓ１４４）。
【０２３８】
図３９（ｂ）において、メモリセルのデータを“０”〜“３”にする場合、ＰＤＣはハイレベル。メモリセルのデータを“４”とする場合、ＰＤＣはローレベル、ＤＤＣはローレベル、ＳＤＣはハイレベルに設定する。メモリセルのデータを“５”とする場合、ＰＤＣはローレベル、ＤＤＣはハイレベル、ＳＤＣはハイレベルに設定する。メモリセルのデータを“６”とする場合、ＰＤＣはローレベル、ＤＤＣはハイレベル、ＳＤＣはローレベルに設定する。メモリセルのデータを“７”とする場合、ＰＤＣ、ＤＤＣ、ＳＤＣをいずれもローレベルに設定する。
【０２３９】
（第３ページベリファイ：データ“４”のベリファイ）（Ｓ１４５）
メモリセルにデータ“４”を書き込むセルは、第２ページで本来のベリファイ電位“ｄ’”より低いベリファイ電位“ｄ＊’”まで書き込まれている。その後、隣接セルの書き込みにより、データ“４”が書き込まれたセルの閾値電圧が上昇している場合もあり、本来のベリファイ電位“ｄ’”に達しているセルもある。このため、先ず、データ“４”のベリファイを行なう。
【０２４０】
メモリセルの閾値電圧がデータ“４”に達したかどうかを判別するプログラムベリファイ動作は、選択されているワード線にリードの時の電位“ｄ”より少し高い電位“ｄ’”を供給する。
【０２４１】
先ず、選択されているブロック内の非選択ワード線及びセレクト線ＳＧ１にＶｒｅａｄを供給し、図６に示すデータ記憶回路１０の信号ＢＬＣＬＡＭＰを例えば１Ｖ＋Ｖｔｈとし、ＢＬＣ２を所定の電圧、例えばＶｄｄ＋Ｖｔｈとして、ビット線をプリチャージする。すると、メモリセルにデータ“７”、“６”を書き込む時、ビット線はプリチャージされず、メモリセルにデータ“０”〜“５”を書き込む時のみビット線がプリチャージされる。
【０２４２】
次に、信号ＶＲＥＧ＝Ｖｓｓ、信号ＲＥＧ＝ハイレベルとすると、メモリセルにデータ“６”、“５”を書き込む時は、プリチャージしていた電位がＶｓｓになる。つまり、ビット線がプリチャージされるのは、メモリセルにデータ“０”、“３”、“４”が書き込まれる時のみである。次に、セルのソース側のセレクト線ＳＧ２をハイレベルにする。閾値電圧が“ｄ’”より高いセルはオフするためビット線はハイレベルのままであり、閾値電圧が“ｄ’”より低いとセルがオンするためビット線はＶｓｓとなる。ビット線が放電中、ＴＤＣのノードＮ３を一旦Ｖｓｓとし、信号ＲＥＧをハイレベルとしてトランジスタ６１Ｑをオンさせ、ＤＤＣのデータをＴＤＣに移す。次に、ＤＴＧを一旦オンさせＰＤＣのデータをＤＤＣに移す。この後、ＴＤＣのデータをＰＤＣに移す。
【０２４３】
次に、信号ＢＬＰＲＥを所定の電圧、例えばＶｄｄ＋Ｖｔｈとすることにより、ＴＤＣのノードＮ３をＶｄｄにプリチャージする。この後、信号ＢＬＣＬＡＭＰを０．９Ｖ＋Ｖｔｈとしてトランジスタ６１ｔをさせる。ＴＤＣのノードＮ３はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合ハイレベルとなる。ここで、書き込みを行なう場合、ＤＤＣにローレベルが記憶され、書き込みを行なわない場合、ＤＤＣにハイレベルが記憶されている。このため、信号ＶＲＥＧをＶｄｄとし、信号ＲＥＧをハイレベルにすると、書き込みを行なわない場合のみＴＤＣのノードが強制的にハイレベルとなる。この動作の後、ＰＤＣのデータをＤＤＣに移し、ＴＤＣの電位をＰＤＣに読み込む。ＰＤＣにハイレベルがラッチされるのは、書き込みを行なわない場合と、メモリセルにデータ“４”を書き込んでいて、セルの閾値電圧がベリファイ電位“ｄ’”に達した場合だけである。ＰＤＣにローレベルがラッチされる場合は、セルの閾値電圧が“ｄ’”に達しない場合と、メモリセルをデータ“７”、“６”、“５”に書き込んでいる場合である。
【０２４４】
（第３ページベリファイ：メモリセルデータ“６”のベリファイ）（Ｓ１４６）
データ“６”を書き込むセルは、第２ページの書き込みにおいて本来のベリファイ電位“ｆ’”より低いベリファイ電位“ｆ＊’”まで、書き込みが行なわれている。その後、隣接セルの書き込みにより閾値電圧が上昇している場合もあり、本来のベリファイ電位“ｆ’”に達しているセルもある。このため、次に、メモリセルデータ“６”のベリファイを行なう。
【０２４５】
データ“６”のベリファイ動作は、第２ページの書き込みにおけるデータ“４”（第１乃至第７の実施形態では第２ページの書き込みにおけるデータ“２”）のベリファイと全く同じである。但し、ベリファイ電位は、“ｆ’”である。
【０２４６】
（プログラム動作）（Ｓ１４７）
プログラム動作は、第１ページ、第２ページのプログラム動作と全く同じである。すなわち、ＰＤＣにデータ“１”が記憶されている場合、書き込みが行なわれず、データ“０”が記憶されている場合、書き込みが行なわれる。この後、データ“４”〜“７”がベリファイされる。データ“４”、“６”のベリファイ動作（Ｓ１４８、Ｓ１５０）は、上記Ｓ１４５、Ｓ１４６と同一であるため、省略する。
【０２４７】
（第３ページベリファイ：メモリセルデータ“５”のベリファイ）（Ｓ１４９）
データ“５”のベリファイ動作は、第２ページの書き込みにおけるデータ“２”（第１乃至第７の実施形態では第２ページの書き込みにおけるデータ“１”）のベリファイと全く同じである。但し、ベリファイ電位は、“ｅ’”である。
【０２４８】
（第３ページベリファイ：メモリセルデータ“７”のベリファイ）（Ｓ１５１）
データ“７”のベリファイ動作は、第２ページの書き込みにおけるデータ“６”（第１乃至第７の実施形態では第２ページの書き込みにおけるデータ“３”）のベリファイと全く同じである。但し、ベリファイ電位は、“ｇ’”である。
【０２４９】
ＰＤＣがローレベルの場合、再び書き込み動作を行ない全てのデータ記憶回路のＰＤＣのデータがハイレベルになるまで、このプログラム動作とベリファイ動作が繰り返される（Ｓ１５２）。
【０２５０】
上記説明では、１回のプログラム後、４つのベリファイを行なった。しかし、プログラムの初期のループでは、メモリセルの閾値電圧が上昇しない。このため、データ“７”のベリファイ、データ“７”、“６”のベリファイ、データ“７”、“６”、“５”のベリファイを省略することもできる。
【０２５１】
また、プログラムの終了近くのループでは、データ“４”のベリファイ、データ“４”、“５”のベリファイ、データ“４”、“５”、“６”のベリファイを省略することができる。
【０２５２】
（第２回目プログラム）（Ｓ１５３〜Ｓ１５８）
パスライト方式プログラムの場合、データ“１”を書き込むメモリセルには、全く書き込みが行なわれていない。このため、前述したように、このメモリセルにラフに書き込みをしておく。パスライト方式プログラムをしない場合、第２回目のプログラムは省略できる。
【０２５３】
第２回目のプログラムにおいては、フラグ用データ記憶回路１０ｂにデータ“０”が記憶される（Ｓ１５３）。
【０２５４】
（内部データリード２及びデータキャッシュ設定２）（Ｓ１５４、Ｓ１５５）
次に、メモリセルへの書き込みの前に、第２ページのメモリセルのデータが“０”か、“２”、“４”、“６”であるかを判断するため、ワード線の電位を“ａ”として内部リード動作を行なう（Ｓ１５４）。この後、データキャッシュを操作することにより、図４０（ａ）に示すように、データキャッシュを設定する（Ｓ１５５）。
【０２５５】
すなわち、メモリセルのデータを“１”にする場合、ＰＤＣはローレベルに設定する。メモリセルのデータを“１”以外にする場合、ＰＤＣはハイレベルに設定する。
【０２５６】
この状態において、プログラム動作が行なわれる（Ｓ１５６）。
【０２５７】
（第３ページベリファイ：メモリセルデータ“１”のベリファイ）（Ｓ１５７）
データ“１”のベリファイ動作は、第３ページの書き込みにおけるデータ“５”及び、第２ページの書き込みにおけるデータ“２”（第１乃至第７の実施形態では第２ページの書き込みにおけるデータ“１”）のベリファイと全く同じである。但し、ベリファイ電位は、“ａ＊’”である（Ｓ１５７）。
【０２５８】
ＰＤＣがローレベルの場合、再び書き込み動作を行ない全てのデータ記憶回路のＰＤＣのデータがハイレベルになるまでこのプログラム動作とベリファイ動作を繰り返す（Ｓ１５８）。
【０２５９】
（第３回目プログラム）
最後に、次のようにして、メモリセルにデータ“１”、“２”、“３”を書き込む。
【０２６０】
（内部データリード３及びデータキャッシュ設定３）（Ｓ１５９、Ｓ１６０）
先ず、メモリセルにデータを書き込む前に、第２ページが書き込まれたメモリセルのデータが“０”、“２”か、“４”、“６”であるかを判断するため、ワード線の電位を“ｄ＊”として内部リード動作を行なう（Ｓ１５９）。
【０２６１】
この後、データキャッシュを操作することにより、図４０（ｂ）に示すように、データキャッシュを設定する（Ｓ１６０）。すなわち、メモリセルのデータを“０”にする場合、ＰＤＣはハイレベル、ＤＤＣはローレベル、ＳＤＣはハイレベルに設定する。メモリセルのデータを“１”にする場合、ＰＤＣはローレベル、ＤＤＣはハイレベル、ＳＤＣはハイレベルに設定する。メモリセルのデータを“２”する場合、ＰＤＣはローレベル、ＤＤＣはハイレベル、ＳＤＣはローレベルに設定する。メモリセルのデータを“３”する場合、ＰＤＣはローレベル、ＤＤＣはローレベル、ＳＤＣはローレベルに設定する。メモリセルのデータを“４”〜“７”にする場合、ＰＤＣは全てハイレベルに設定する。
【０２６２】
（第３ページベリファイ：メモリセルデータ“１”のベリファイ）（Ｓ１６１）
パスライト方式プログラムの場合、第２回目のプログラムで、データ“１”を書き込むメモリセルは、本来のベリファイ電位“ａ’”より低いベリファイ電位“ａ＊’”まで書き込まれている。このため、本来のベリファイ電位“ａ’”に達しているセルもある。したがって、先ず、データ“１”をベリファイする。データ“１”のベリファイ動作は、第３ページの書き込みにおけるデータ“５”、及び第２ページの書き込みにおけるデータ“２”（第１乃至第７の実施形態では第２ページの書き込みにおけるデータ“１”）のベリファイと全く同じである。但し、ベリファイ電位は、“ａ’”である。
【０２６３】
（第３ページベリファイ：メモリセルデータ“２”のベリファイ）（Ｓ１６２）
データ“２”を書き込むメモリセルは、第２ページの書き込みにおいて本来のベリファイ電位“ｂ’”より低いベリファイ電位“ｂ＊’”まで書き込まれている。その後、隣接セルの書き込みにより閾値電圧が上昇している場合もあり、本来のベリファイ電位“ｂ’”に達しているセルもある。このため、先ず、データ“２”をベリファイする。
【０２６４】
データ“２”のベリファイ動作は、第３ページの書き込みにおけるデータ“６”のベリファイ、及び第２ページの書き込みにおけるデータ“２”（第１乃至第７の実施形態では第２ページの書き込みにおけるデータ“１”）のベリファイと全く同様である。但し、ベリファイ電位は、“ｂ’”である。
【０２６５】
（プログラム動作）（Ｓ１６３）
プログラム動作は、第１ページ、第２ページ、及び第３ページの第１回目及び第２回目のプログラム動作と全く同様である。ＰＤＣにデータ“１”が記憶されている場合、メモリセルは書き込まれず。データ“０”が記憶されている場合、メモリセルが書き込まれる。
【０２６６】
この後、ベリファイ電位“ａ’”、“ｂ’”を順次設定してデータ“１”、“２”のベリファイ（Ｓ１６４、Ｓ１６５）が行なわれるとともに、以下のデータ“３”のベリファイが行なわれる。
【０２６７】
（第３ページベリファイ：データ“３”のベリファイ）（Ｓ１６６）
データ“３”のベリファイ動作は、第３ページの書き込みにおけるデータ“７”のベリファイ、及び第２ページの書き込みにおけるデータ“６”（第１乃至第７の実施形態では第２ページの書き込みにおけるデータ“３”）のベリファイと全く同様である。但し、ベリファイ電位は、“ｃ’”である。
【０２６８】
ＰＤＣがローレベルの場合、再び書き込み動作を行ない全てのデータ記憶回路のＰＤＣのデータがハイレベルになるまでこのプログラム動作とベリファイ動作が繰り返される（Ｓ１６７）。
【０２６９】
上記説明では、１回のプログラムの後、４つのベリファイを行なっていた。しかし、プログラムの初期のループでは、閾値電圧が上がらないため、データ“３”のベリファイ、データ“３”、“２”のベリファイを省略することもできる。
【０２７０】
また、プログラムの終了近くのループでは、データ“１”への書き込み、もしくは、データ“２”及びデータ“１”の書き込みは終了している。このため、これらのベリファイ動作は省略することもできる。データ“１”のベリファイが不用になると、ＳＤＣでデータを保持する必要がなくなる。このため、次の書き込みのためのデータを外部より読み込み、ＳＤＣに記憶しておくことも可能である。このような構成とした場合、さらなる高速動作が可能である。
【０２７１】
また、フラグセルＦＣ１、ＦＣ２は、第１ページ及び第２ページでは、データが書き込まれず、第３ページでのみ、データが書き込まれる。このため、フラグセルＦＣ１、ＦＣ２のデータは“１”になっている。
【０２７２】
（第１ページリード）
図４１（ａ）は、第１ページのリード動作を示すダイアグラムである。
【０２７３】
先ず、アドレスを指定し、図３４に示す３ページを選択する。図３５（ａ）〜（ｃ）、図３６（ａ）（ｂ）に示すように、第２ページの書き込み前と後、及び第３ページの書き込み前と後で、閾値電圧の分布が変わっている。したがって、先ず、ワード線の電位を“ａ”として読み出し動作を行ないフラグセルが書き込まれているかどうかを判別する（Ｓ１７１、Ｓ１７２）。フラグセルが複数ある場合は、これらの多数決により判断する。
【０２７４】
フラグセルＦＣ１、ＦＣ２から読み出されたデータが共に“１”（フラグセルＦＣ１、ＦＣ２が共に書き込まれていない）の場合、第２ページ及び第３ページの書き込みは行われていない。このため、メモリセルの閾値電圧分布は、図３５（ａ）又は図３５（ｂ）となっている。これらメモリセルのデータを判断するには、ワード線の電位を“ａ”でリード動作をすればよく、ワード線の電位“ａ”で読み出し動作をした結果が、既にデータ記憶回路に読み出されている。このため、これらのデータを外部に出力すればよい（Ｓ１７３）。
【０２７５】
フラグセルＦＣ１のデータが“０”でフラグセルＦＣ２のデータが“１”（フラグセルＦＣ１には書き込まれ、フラグセルＦＣ２に書き込まれていない）の場合、第２ページのデータは書き込まれ、第３ページのデータは書き込まれていない。このため、セルの閾値電圧分布は、図３５（ｃ）又は図３６（ａ）となっている。これらメモリセルの第１ページのデータを判断するには、ワード線の電位を“ｄ＊”に設定してリード動作をすればよく、ワード線の電位“ｄ＊”で読み出し動作を行なった後、データを外部に出力すればよい（Ｓ１７４、Ｓ１７５、Ｓ１７３）。
【０２７６】
フラグセルＦＣ１、ＦＣ２のデータが共に“０”（フラグセルＦＣ１、ＦＣ２が共に書き込まれている）の場合、第２ページ及び第３ページのデータが書き込まれている。このため、セルの閾値電圧分布は、図３６（ｂ）となっている。これらメモリセルの第１ページのデータを判断するには、ワード線の電位を“ｄ”に設定してリード動作し、これにより読み出したデータを外部に出力すればよい（Ｓ１７２、Ｓ１７４、Ｓ１７６、Ｓ１７３）。
【０２７７】
（第２ページリード）
図４１（ｂ）は、第２ページのリード動作を示すダイアグラムである。第２ページのリード動作は、先ずアドレスを指定し、図３４に示す３ページを選択する。この後、ワード線の電位を“ａ”としてリード動作を行ない（Ｓ１８１）、フラグセルＦＣ１、ＣＦ２にデータが書き込まれているかどうかを判別する（Ｓ１８２）。フラグセルが複数ある場合は、これらの多数決により判断する。
【０２７８】
フラグセルＦＣ１、ＦＣ２から読み出されたデータが共に“１”（フラグセルＦＣ１、ＦＣ２にデータが共に書き込まれていない）の場合、第２ページ及び第３ページのデータが書き込まれていないため、出力データを“１”に固定する（Ｓ１８３）。
【０２７９】
フラグセルＦＣ１のデータが“０”でフラグセルＦＣ２のデータが“１”（フラグセルＦＣ１は書き込まれ、フラグセルＦＣ２は書き込まれていない）の場合、第２ページのデータは書き込まれ、第３ページのデータは書き込まれていない。このため、セルの閾値電圧分布は、図３５（ｃ）又は図３６（ａ）の状態となっている。これらメモリセルの第１ページのデータを判断するには、ワード線の電位を“ａ”と“ｆ＊”でリード動作をすればよい。ワード線の電位“ａ”でリードした結果はデータ記憶回路に既に取りこまれている。このため、ワード線の電位を“ｆ＊”に設定してリード動作を行ない、この読み出したデータを外部に出力する（Ｓ１８５、Ｓ１８６）。
【０２８０】
また、フラグセルＦＣ１、ＦＣ２のデータが共に“０”（フラグセルＦＣ１、ＦＣ２に共にデータが書き込まれている）の場合、第２ページ及び第３ページのデータが書き込まれている。このため、メモリセルの閾値電圧分布は、図３６（ｂ）となっている。これらメモリセルの第１ページのデータを判断するには、ワード線の電位を“ｂ”、“ｆ”に設定してリード動作をすればよい。すなわち、ワード線の電位を“ｂ”に設定して読み出し動作を行なった後、ワード線の電位を“ｆ”に設定して読み出し動作を行ない、この読み出したデータを外部に出力する（Ｓ１８７、Ｓ１８８、Ｓ１８６）。
【０２８１】
（第３ページリード）
図４２は、第３ページのリード動作を示すダイアグラムである。この場合も先ず、アドレスを指定し、図３４に示す３ページを選択する。第３ページの書き込み前と後で、閾値電圧の分布が変わっているため、先ず、ワード線の電位を“ａ”としてリード動作を行ないフラグセルＦＣ１、ＦＣ２にデータが書き込まれているかどうかを判別する（Ｓ１９１、Ｓ１９２）。
【０２８２】
フラグセルＦＣ１、ＦＣ２のデータが共に“１”（フラグセルＦＣ１、ＦＣ２に共にデータが書き込まれていない）の場合、第３ページの書き込みは行われていないため、出力データを“１”に固定する（Ｓ１９３）。
【０２８３】
フラグセルＦＣ１のデータが“０”でフラグセルＦＣ２のデータが“１”（フラグセルＦＣ１にはデータが書き込まれ、フラグセルＦＣ２にはデータが書き込まれていない）の場合も、第３ページのデータは書き込まれていない。このため、出力データを“１”に固定する（Ｓ１９４、Ｓ１９３）。
【０２８４】
また、フラグセルＦＣ１、ＦＣ２のデータが共に“０”（フラグセルＦＣ１、ＦＣ２に共にデータが書き込まれている）の場合、第２ページ及び第３ページのデータが書き込まれている。このため、メモリセルの閾値電圧分布は、図３６（ｂ）となっている。これらメモリセルの第１ページのデータを判断するには、ワード線の電位を“ａ”，“ｃ”，“ｅ”，“ｇ”でリード動作をすればよい。ワード線の電位を“ａ”に設定してリードした結果はデータ記憶回路に既に取りこまれている。このため、次に、ワード線の電位を“ｃ”，“ｅ”，“ｇ”に順次設定してリード動作を行ない、読み出したデータを外部に出力する（Ｓ１９５、Ｓ１９６、Ｓ１９７、Ｓ１９８）。
【０２８５】
（イレーズ）
消去動作は、第１乃至第７の実施形態と同様であるため、説明は省略する。
【０２８６】
上記第８の実施形態によれば、８値（３ビット）のデータを確実且つ高速に書き込み、読み出すことができる。
【０２８７】
第８の実施形態に示す、８値（３ビット）のＮＡＮＤ型フラッシュメモリは、第３ページの書き込み時、第１回目の書き込みで、データ“４”〜“７”を書き込み、第２回目の書き込みでデータ“１”をラフに書き、第３回目の書き込みで、データ“１”〜“３”を書き込んだ。しかし、これに限定されるものではなく、先ず、データ“２”、“４”、“６”を書き込み、この後、データ“１”、“３”、“５”、“７”を書き込むことも可能である。
【０２８８】
このような書き込みにおいても、第８の実施形態と同様の効果を得ることができる。
【０２８９】
（第９の実施形態）
上記第６の実施形態において、図２７（ａ）でＤＤＣがデータ“１”になっている場合、ビット線に中間電位を供給し、ＰＤＣがデータ“０”になっている場合、ビット線をＶｓｓに放電させていた。これに対して、第９の実施形態は、第２ページの書き込み時において、この動作を省略している。第９の実施形態における書きこみシーケンスは、図２８に示すフローチャートと同じである。しかし、データキャッシュの動作は図４３（ａ）乃至図４６に示すようになる。
【０２９０】
（ａ）先ず、外部より入力されたデータはＳＤＣにロードされ、内部データリードに読み出されたデータは、ＰＤＣに記憶される。図４３（ａ）は、データロード、内部リード後のＳＤＣ、ＰＤＣとメモリセルのデータの関係を示している。ＰＤＣはロアーページのデータ（第１ページ）を示し、ＳＤＣはアッパーページ（第２ページ）のデータを示している。
【０２９１】
（ｂ）この後、図１１、図１２に示すような動作を実行し、データキャッシュを設定する（図４３（ｂ））。図２７（ａ）に示すデータキャッシュの設定の場合、メモリセルにデータ“１”を書き込む場合、ＤＤＣにデータ“１”が設定されていた。これに対して、第９の実施形態において、メモリセルにデータ“１”を書き込む場合、ＤＤＣにデータ“０”が設定される。
【０２９２】
次いで、メモリセルにデータが書き込まれる。先ず、ＢＬＣ１＝Ｖｓｇとすると、ＰＤＣがデータ“０”の場合、ビット線がＶｓｓとなり、データ“１”の場合、ビット線はＶｄｄになる。次に、ＢＬＣ１＝ＶＳＳとした後、ＶＲＥＧ＝Ｖｄｄ、ＲＥＧ＝中間電位＋Ｖｔｈ（１Ｖ＋Ｖｔｈ）とする。すると、ＤＤＣがデータ“１”の場合、ビット線がＶｄｄとなり、ＤＤＣがデータ“０”の場合、ビット線はプリチャージされない。この結果、メモリセルにデータ“１”，“３”を書き込んでいるときのみビット線はＶｓｓ、メモリセルにデータ“２”を書き込んでいる場合、ビット線は中間電位（１Ｖ）、メモリセルのデータが“０”の場合（書き込みしない場合）、ビット線はＶｄｄになる。ここで、選択ワード線をＶｐｇｍ、非選択ワード線をＶｐａｓｓとすると、ビット線がＶｄｄの場合、書き込みが行なわれない。また、ビット線がＶｓｓの場合、書き込みが起こり、ビット線が中間電位（１Ｖ）の場合、少しだけ書き込まれる。したがって、メモリセルにデータ“２”を書き込んでいるセルは、あまり書き込まれないかもしれない。
【０２９３】
しかし、図４７（ａ）に示すように、第２ページの書き込み前において、メモリセルにデータ“２”を書き込むセルは、書き込み前かなり高い閾値まで書かれている。このため、書き込みが遅くてもよい。またＶｐｇｍの上昇に従い書き込まれる。
【０２９４】
（ｃ）この後、ベリファイ電圧“ａ＊’”を設定して書き込みベリファイが行なわれる。このベリファイにおいて、ＢＬＣ２＝ハイレベル、ＢＬＣＬＡＭＰに所定の電位を与えると、ＳＤＣがデータ“１”になっている場合（つまりメモリセルにデータ“１”を書き込んでいる場合）のみ、ビット線がプリチャージされ、ＳＤＣがデータ“０”になっている場合、ビット線はプリチャージされず、Ｖｓｓのままとなる。
【０２９５】
図４４（ａ）は、ベリファイ電圧“ａ＊’”によるベリファイ後のデータキャッシュを示している。
【０２９６】
次に、ワード線の電位をベリファイ電位“ａ＊’”に設定し、ビット線を放電する。ＶＰＲＥ＝Ｖｄｄ、ＢＬＰＲＥ＝ＶｓｇとしてＴＤＣをＶｄｄに充電した後に、ＢＬＣＬＡＭＰに所定の電圧を与える。ビット線がＶｓｓの場合ＴＤＣはＶｓｓになり、ビット線にプリチャージ電位が残っている場合ＴＤＣはＶｄｄになる。ＴＤＣがＶｄｄになるのは、メモリセルのデータが“１”に書き込まれていてベリファイ電位“ａ＊’”に達した時である。メモリセルにデータ“１”を書き込んでいない場合、ビット線がプリチャージされていないため、ＴＤＣはＶｓｓとなる。また、メモリセルにデータ“１”を書き込んでいてベリファイ電位“ａ＊’”に達しない場合もＴＤＣはＶｓｓとなる。
【０２９７】
ここで、ＶＲＥＧ＝ハイレベル、ＲＥＧ＝ハイレベルとすると、ＤＤＣのデータが“１”の場合、強制的にＴＤＣがハイレベルになる。したがって、ＴＤＣがＶｄｄになるのは、メモリセルにデータ“１”を書き込んでいてベリファイ電位“ａ＊’”に達した時と、ＤＤＣのデータが“１”の場合、つまりメモリセルへデータ“２”を書き込んでいた場合である。ＤＴＧ＝Ｖｓｇとし、ＰＤＣのデータをＤＤＣにコピーする。この後、ＢＬＣ１＝ＶｓｇとしてＴＤＣの電位をＰＤＣに取りこむ。
【０２９８】
図４４（ｂ）において、ＰＤＣがデータ“１”となるのは、メモリセルにデータ１を書き込んでいて、ベリファイ電位“２＊’”を超えている場合と、メモリセルにデータ２を書き込んでいる場合である。
【０２９９】
（ｄ）次に、ワード線の電位を少し上げてベリファイ電位“ａ’”とし、ビット線を放電する。ＶＰＲＥ＝Ｖｄｄ、ＢＬＰＲＥ＝ＶｓｇとしてＴＤＣを再びＶｄｄに充電した後、ＢＬＣＬＡＭＰに所定の電圧を与える。ビット線がＶｓｓの場合、ＴＤＣはＶｓｓとなり、ビット線にプリチャージ電位が残っている場合、ＴＤＣはＶｄｄになる。ＴＤＣがＶｄｄになるのは、メモリセルにデータ“１”を書き込んでいてベリファイ電位“ａ’”に達した時である。メモリセルにデータ“１”を書き込んでいない場合、ビット線がプリチャージされていないためＴＤＣはＶｓｓとなる。また、メモリセルにデータ“１”を書き込んでいてベリファイ電位“ａ’”に達しない場合もＴＤＣはＶｓｓとなる。
【０３００】
ここでＶＲＥＧ＝ハイレベル、ＲＥＧ＝ハイレベルとすると、ＤＤＣのデータが“１”の場合、すなわち、メモリセルにデータを書き込んでいない場合、ＴＤＣは強制的にハイレベルとされる。したがって、ＴＤＣがＶｄｄになるのは、書き込み非選択の場合と、メモリセルにデータ“１”を書き込んでいてベリファイ電位“ａ’”に達した場合である。
【０３０１】
次いで、ＤＴＧ＝Ｖｓｇとし、ＰＤＣのデータをＤＤＣにコピーした後に、ＢＬＣ１＝ＶｓｇとしてＴＤＣの電位をＰＤＣに取りこむ（図４５（ａ））。
【０３０２】
メモリセルにデータ“１”を書き込んでいるセルにおいて、閾値電圧がベリファイ電位“ａ＊’”より高くなると、ＤＤＣのデータが“１”となる。また、メモリセルにデータ“１”を書き込んでいるセルにおいて、ベリファイ電位“ａ’”を用いた書き込みが全て終了すると、ＰＤＣのデータは“１”になる。
【０３０３】
（ｅ）ベリファイ電位“ｂ”を用いたベリファイ（図４５（ｂ））。このベリファイは、第１の実施形態と同様に、ＲＥＧ＝ハイレベル、ＢＬＣＬＡＭＰに所定の電位を与える。すると、ＤＤＣがデータ“１”になっている場合、つまり、メモリセルにデータ“２”を書き込んでいる場合と、メモリセルにデータ“１”を書き込んでいて、閾値電圧がベリファイ電位“ａ＊’”より高い場合のみ、ビット線がプリチャージされる。また、ＤＤＣがデータ“０”になっている場合、ビット線はプリチャージされず、Ｖｓｓのままとなる。
【０３０４】
次に、ワード線にベリファイ電位“ｂ’”を供給しビット線を放電する。ビット線の放電中にＤＤＣのデータをＴＤＣに移す。この後、ＰＤＣのデータをＤＤＣに移し、ＴＤＣのデータをＰＤＣに移す。次いで、ＴＤＣをＶｄｄに充電した後、ＢＬＣＬＡＭＰに所定の電位を与える。すると、ＴＤＣがハイレベルになるのは、メモリセルにデータ“２”を書き込んでいて閾値電圧がベリファイ電位“ｂ’”に達した場合のみである。
【０３０５】
ここで、ＶＲＥＧ＝ハイレベル、ＲＥＧ＝Ｖｓｇとすると、ＤＤＣのデータがハイレベルの場合、強制的にＴＤＣがハイレベルとなる。したがって、ＴＤＣがＶｄｄになるのは、メモリセルにデータ“２”を書き込んでいてベリファイ電位“ｂ’”に達した時と、書き込み非選択の場合である。ＤＴＧ＝Ｖｓｇとし、ＰＤＣのデータをＤＤＣにコピーした後、ＢＬＣ１＝ＶｓｇとしてＴＤＣの電位をＰＤＣに取りこむ。
【０３０６】
（ｆ）ベリファイ電位“ｃ”によるベリファイ（図４６）。このベリファイも第１の実施形態と同様に、ＢＬＰＲＥ＝ハイレベル、ＢＬＣＬＡＭＰに所定の電位を供給し、ビット線をプリチャージする。
【０３０７】
次に、ワード線にベリファイ電位“ｃ’”を供給しビット線を放電する。ビット線の放電中にＤＤＣのデータをＴＤＣに移す。この後、ＰＤＣのデータをＤＤＣに移し、ＴＤＣのデータをＰＤＣに移す。
【０３０８】
この後、ＴＤＣをＶｄｄに充電した後、ＢＬＣＬＡＭＰに所定の電位を供給する。すると、ＴＤＣがハイレベルになるのは、閾値電圧がベリファイ電位“ｃ’”に達した場合のみである。ＶＲＥＧ＝ハイレベル、ＲＥＧ＝Ｖｓｇとすると、ＤＤＣのデータがハイレベルの場合、強制的にＴＤＣがハイレベルとなる。したがって、ＴＤＣがＶｄｄになるのは、メモリセルにデータ“３”を書き込んでいてベリファイ電位“ｃ’”に達した時と、書き込み非選択の場合である。
【０３０９】
次いで、ＤＴＧ＝Ｖｓｇとし、ＰＤＣのデータをＤＤＣにコピーする。この後、ＢＬＣ１＝ＶｓｇとしてＴＤＣの電位をＰＤＣに取りこむ。
【０３１０】
このようにして、全てのＰＤＣのデータが“１”になるまで、プログラムとベリファイ動作を繰り返す。しかし、書き込み動作において、ＤＤＣのデータが“１”の場合、つまり、メモリセルにデータ“２”を書き込んでいる場合と、メモリセルにデータ“１”を書き込んでいてベリファイ電位“ａ＊’”を超えている場合、ビット線を中間電位にして書き込み動作をする。また、プログラムとベリファイ動作を繰り返す毎に、Ｖｐｇｍを少しずつ上げていく。
【０３１１】
第９の実施形態によれば、第２ページの書き込み動作において、データキャッシュを設定後、ＤＤＣがデータ“１”の場合、メモリセルデータ“２”のベリファイ時にビット線をＶｄｄにプリチャージし、ＤＤＣがデータ“０”の場合、ビット線をプリチャージしない。この結果、ビット線はメモリセルにデータ“１”を書き込んでいて、ベリファイレベル“ａ＊’”を超えない場合と、“３”を書き込んでいるときのみＶｓｓ、メモリセルにデータ１を書き込んでいて、ベリファイレベル“ａ＊’”を超える場合と、メモリセルにデータ“２”を書き込んでいる場合、ビット線は中間電位（１Ｖ）、メモリセルのデータが“０”の場合、ビット線はＶｄｄになる。このため、選択ワード線をＶｐｇｍ、非選択ワード線をＶｐａｓｓとすると、ビット線がＶｄｄの場合、書き込みが行なわれない。また、ビット線がＶｓｓの場合、書き込みが行なわれる。さらに、ビット線が中間電位（１Ｖ）の場合、少しだけ書き込みが行なわれ、メモリセルの閾値電圧が僅かに上昇される。したがって、ＤＤＣがデータ“１”の場合、プログラム時にビット線が中間電位となり、書き込み速度が低下される。このため、閾値電圧の分布を正確に設定することが可能である。
【０３１２】
尚、第９の実施形態において、初めに第１ページ（ロアーページ）のデータをメモリセルに書き込み、この後、第２ページ（アッパーページ）のデータをメモリセルに書き込むとき、第１ページのデータを読み出し、３つのレベルの閾値電圧を書き込んでいた。しかし、第１ページのデータと第２ページのデータを同時にメモリセルに書き込むことも可能である。
【０３１３】
すなわち、図４８に示すように、先ず、第１ページのデータをＳＤＣにロードし（Ｓ２０１）、次いで、第１ページのデータをＳＤＣからＰＤＣに転送する（Ｓ２０２）。次に、第２ページのデータをＳＤＣにロードする（Ｓ２０３）。この後、各データキャッシュを図４３（ｂ）に示すように設定し（Ｓ１３４）、このデータキャッシュのデータに従ってプログラムを実行する（Ｓ１３５）。尚、図４８において、プログラム以降の動作は図２８と同様であるため、同一部分には同一符号を付し説明は省略する。
【０３１４】
このような方法によれば、第１ページのデータと第２ページのデータを同時にメモリセルに書き込んでいるため、第１ページのみの書き込み動作、及び内部データリードにより第１ページのデータを読み出す必要がない。したがって、高速な書き込みが可能である。
【０３１５】
（第１０の実施形態）
図４９は、図７の変形例を示すものであり、隣接する複数のメモリセルの書き込み順序を示している。
【０３１６】
第１０の実施形態において、ブロック内の複数のメモリセルは、ソース線に近いメモリセルからページごとに書き込み動作が行なわれる。図４９は、説明を簡単化するため、ワード線を４本としている。
【０３１７】
第１番目の書き込み動作は、メモリセル１の第１ページに１ビットのデータが書きこまれる。
【０３１８】
第二番目の書き込み動作は、メモリセル１とワード方向に隣接したメモリセル２の第１ページに１ビットのデータが書きこまれる。
【０３１９】
第３番目の書き込み動作は、メモリセル１の第２ページに１ビットのデータが書きこまれる。
【０３２０】
第４番目の書き込み動作は、メモリセル１とワード方向に隣接したメモリセル２の第２ページに１ビットのデータが書きこまれる。
【０３２１】
第５番目の書き込み動作は、メモリセル１とビット方向に隣接したメモリセル３の第１ページに１ビットのデータが書きこまれる。
【０３２２】
第６番目の書き込み動作は、メモリセル１と対角に隣接したメモリセル４の第１ページに１ビットのデータが書きこまれる。
【０３２３】
第７番目の書き込み動作は、メモリセル３の第２ページに１ビットのデータが書きこまれる。
【０３２４】
第８番目の書き込み動作は、メモリセル３とワード方向に隣接したメモリセル４の第２ページに１ビットのデータが書きこまれる。
【０３２５】
第９番目の書き込み動作は、メモリセル３とビット方向に隣接したメモリセル５の第１ページに１ビットのデータが書きこまれる。
【０３２６】
第１０番目の書き込み動作は、メモリセル３と対角に隣接したメモリセル６の第１ページに１ビットのデータが書きこまれる。
【０３２７】
第１１番目の書き込み動作は、メモリセル５の第２ページに１ビットのデータが書きこまれる。
【０３２８】
第１２番目の書き込み動作は、メモリセル５とワード方向に隣接したメモリセル６の第２ページに１ビットのデータが書きこまれる。
【０３２９】
第１３番目の書き込み動作は、メモリセル５とビット方向に隣接したメモリセル７の第１ページに１ビットのデータが書きこまれる。
【０３３０】
第１４番目の書き込み動作は、メモリセル５と対角に隣接したメモリセル８の第１ページに１ビットのデータが書きこまれる。
【０３３１】
第１５番目の書き込み動作は、メモリセル７の第２ページに１ビットのデータが書きこまれる。
【０３３２】
第１６番目の書き込み動作は、メモリセル７とワード方向に隣接したメモリセル８の第２ページに１ビットのデータが書きこまれる。
【０３３３】
上記書き込み順序としても、図７に示す例と同様の効果を得ることができる。
【０３３４】
（第１１実施形態）
図５０は、第１１の実施形態に適用されるメモリセルアレイ１とビット線制御回路２の関係を示している。図５１は、第１１の実施形態に適用されるデータ記憶回路１０の一例を示している。
【０３３５】
上記各実施形態は、図３、図６に示すように、一対のビット線ＢＬｅ、ＢＬｏに１つのデータ記憶回路１０が接続されていた。これに対して、第１１の実施形態は、図５０、図５１に示すように、１本のビット線毎に、１つのデータ記憶回路１０が接続される。また、複数のメモリセルと同時に例えば１のフラグセルＦＣが選択される。このフラグセルが接続されるビット線ＢＬＦｌはフラグ用データ記憶回路１０ａに接続されている。
【０３３６】
さらに、上記各実施形態は、図３に示すように、同一ワード線に接続された複数のメモリセルのうち、半数のメモリセルについて同時に書き込み、読み出しが可能であった。これに対して、第１１の実施形態は、各ビット線にデータ記憶回路１０、１０ａを接続している。このため、同一ワード線に接続された複数のメモリセル及びフラグセルの全てに対して同時に書き込み、読み出し可能である。すなわち、図３において、２ページは、ワード線により同時に選択される複数のメモリセルのうち、半数のメモリセルにより構成されていた。これに対して、第１１の実施形態において、２ページは、ワード線により同時に選択される全メモリセルにより構成される。
【０３３７】
尚、図５１において、図６に示す信号ＣＨＫ１、ＣＨＫ２が供給されるトランジスタ６１ｍ、６１ｎは省略されている。
【０３３８】
図５２は、第１１の実施形態に係る書き込み順序を示している。ブロック内において、ＮＡＮＤセルは、ソース線に近いメモリセルから順次ページ毎に書き込み動作を行なう。図５２は、説明を簡単化するため、４本のワード線のみを示している。
【０３３９】
第１番目の書き込みは、メモリセル１の第１ページに１ビットのデータが書き込まれる。
【０３４０】
第２番目の書き込みは、メモリセル１の第２ページに１ビットのデータが書き込まれる。このとき、フラグセルにもデータが書き込まれる。
【０３４１】
第３番目の書き込みは、メモリセル１とビット線方向に隣接したメモリセル２の第１ページに１ビットのデータが書き込まれる。
【０３４２】
第４番目の書き込みは、メモリセル２の第２ページに１ビットのデータが書き込まれる。このとき、フラグセルにもデータが書き込まれる。
【０３４３】
第５番目の書き込みは、メモリセル２とビット線方向に隣接したメモリセル３の第１ページに１ビットのデータが書き込まれる。
【０３４４】
第６番目の書き込みは、メモリセル３の第２ページに１ビットのデータが書き込まれる。このとき、フラグセルにもデータが書き込まれる。
【０３４５】
第７番目の書き込みは、メモリセル３とビット線方向に隣接したメモリセル４の第１ページに１ビットのデータが書き込まれる。
【０３４６】
第８番目の書き込みは、メモリセル４の第２ページに１ビットのデータが書き込まれる。このとき、フラグセルにもデータが書き込まれる。
【０３４７】
上記第１１の実施形態によれば、データ記憶回路１０を各ビット線に接続している。このため、ワード線により同時に選択される全メモリセルに対してデータの書き込み及び読み出しを行なうことができる。
【０３４８】
しかも、ワード線により同時に選択される全てのメモリセルに第１ページ、及び第２ページのデータを書き込んだ後、ソース線から離れたメモリセルに順次データを書き込んでいる。このため、上記各実施形態のように、ワード線に接続された複数のメモリセルのうち、半数のメモリセル毎にデータを書き込む場合に比べて、ワード線方向に隣接するメモリセルの閾値電圧の変化による影響を受けない利点を有している。
【０３４９】
また、図６に示すように、一対のビット線に対して１つのデータ記憶回路１０を接続する場合、非選択のビット線に所定の電位ＢＬＣＲＬを供給するトランジスタ６１ｘ、６１ｙを必要とする。さらに、各ビット線にはトランジスタ６１ｖ、６１ｗがそれぞれ接続されている。これらトランジスタ６１ｘ、６１ｙ、６１ｖ、６１ｗは、高耐圧のトランジスタであり、データ記憶回路を構成するトランジスタに比べて大きなサイズを有している。このように、図６に示す回路構成の場合、１つのビット線に対して、サイズの大きな２つのトランジスタが接続されている。これに対して、図５１に示す回路構成の場合、データ記憶回路に対して非選択のビット線が存在しない。このため、各ビット線には、１つの高耐圧トランジスタ６１ｖが接続されているだけである。したがって、回路規模を縮小することが可能である。
【０３５０】
（変形例）
図５３に示す書き込み順序は、図５２に示す書き込み順序の変形例を示すものである。図５２に示す書き込み動作は、ワード線により同時に選択される複数のメモリセルに第１、第２ページのデータを書き込んだ後、ソース線から離れたメモリセルに順次データを書き込んだ。これに対して、図５３に示す例の場合、ビット線方向に隣接する２つのメモリセルに第１ページのデータを書き込んだ後、ソース線側のメモリセルに第２ページのデータを書き込んでいる。すなわち、
第１番目の書き込みは、メモリセル１の第１ページに１ビットのデータが書き込まれる。
【０３５１】
第２番目の書き込みは、メモリセル１とビット線方向に隣接したメモリセル２の第１ページに１ビットのデータが書き込まれる。
【０３５２】
第３番目の書き込みは、メモリセル１の第２ページに１ビットのデータが書き込まれる。
【０３５３】
第４番目の書き込みは、メモリセル２とビット線方向に隣接したメモリセル３の第１ページに１ビットのデータが書き込まれる。
【０３５４】
第５番目の書き込みは、メモリセル２の第２ページに１ビットのデータが書き込まれる。
【０３５５】
第６番目の書き込みは、メモリセル３とビット線方向に隣接したメモリセル４の第１ページに１ビットのデータが書き込まれる。
【０３５６】
第７番目の書き込みは、メモリセル３の第２ページに１ビットのデータが書き込まれる。
【０３５７】
第８番目の書き込みは、メモリセル４の第２ページに１ビットのデータが書き込まれる。
【０３５８】
上記書き込み方法によれば、ビット線方向に隣接するメモリセルに第１ページのデータを書き込んだ後、ソース線側のメモリセルに第２ページのデータを書き込み、次に、ソース線と反対側に隣接するメモリセルに第１ページのデータを書き込んでいる。このため、ワード線のカップリングの影響を低減できるため、メモリセルの閾値電圧の分布を狭めることが可能である。
【０３５９】
図５４は、図５０に示す回路の変形例を示している。図５０に示す回路の場合、各ビット線の一端部にデータ記憶回路１０が配置されている。一方、図５４において、データ記憶回路１０は、隣接するビット線の一端部又は他端部に交互に配置されている。この場合の書き込み動作は、上記第１１の実施形態と同様である。このように、データ記憶回路１０を隣接するビット線の一端部又は他端部に交互に配置することにより、データ記憶回路１０のレイアウトが容易となる。
【０３６０】
図５５、図５６は、１セルに８値の閾値を設定し、３ビットを記憶する場合の書き込み順序を示している。
【０３６１】
図５５に示す書き込み順序は以下の通りである。
【０３６２】
第１番目の書き込みは、メモリセル１の第１ページに１ビットのデータが書き込まれる。
【０３６３】
第２番目の書き込みは、メモリセル１の第２ページに１ビットのデータが書き込まれる。
【０３６４】
第３番目の書き込みは、メモリセル１の第３ページに１ビットのデータが書き込まれる。
【０３６５】
第４番目の書き込みは、メモリセル１とビット線方向に隣接したメモリセル２の第１ページに１ビットのデータが書き込まれる。
【０３６６】
第５番目の書き込みは、メモリセル２の第２ページに１ビットのデータが書き込まれる。
【０３６７】
第６番目の書き込みは、メモリセル２の第３ページに１ビットのデータが書き込まれる。
【０３６８】
第７番目の書き込みは、メモリセル２とビット線方向に隣接したメモリセル３の第１ページに１ビットのデータが書き込まれる。
【０３６９】
第８番目の書き込みは、メモリセル３の第２ページに１ビットのデータが書き込まれる。
【０３７０】
第９番目の書き込みは、メモリセル３の第３ページに１ビットのデータが書き込まれる。
【０３７１】
第１０番目の書き込みは、メモリセル３とビット線方向に隣接したメモリセル４の第１ページに１ビットのデータが書き込まれる。
【０３７２】
第１１番目の書き込みは、メモリセル４の第２ページに１ビットのデータが書き込まれる。
【０３７３】
第１２番目の書き込みは、メモリセル４の第３ページに１ビットのデータが書き込まれる。
【０３７４】
図５６に示す書き込み順序は以下の通りである。
【０３７５】
第１番目の書き込みは、メモリセル１の第１ページに１ビットのデータが書き込まれる。
【０３７６】
第２番目の書き込みは、メモリセル１とビット線方向に隣接したメモリセル２の第１ページに１ビットのデータが書き込まれる。
【０３７７】
第３番目の書き込みは、メモリセル１の第２ページに１ビットのデータが書き込まれる。
【０３７８】
第４番目の書き込みは、メモリセル２とビット線方向に隣接したメモリセル３の第１ページに１ビットのデータが書き込まれる。
【０３７９】
第５番目の書き込みは、メモリセル２の第２ページに１ビットのデータが書き込まれる。
【０３８０】
第６番目の書き込みは、メモリセル１の第３ページに１ビットのデータが書き込まれる。
【０３８１】
第７番目の書き込みは、メモリセル３とビット線方向に隣接したメモリセル４の第１ページに１ビットのデータが書き込まれる。
【０３８２】
第８番目の書き込みは、メモリセル３の第２ページに１ビットのデータが書き込まれる。
【０３８３】
第９番目の書き込みは、メモリセル２の第３ページに１ビットのデータが書き込まれる。
【０３８４】
第１０番目の書き込みは、メモリセル４の第２ページに１ビットのデータが書き込まれる。
【０３８５】
第１１番目の書き込みは、メモリセル３の第３ページに１ビットのデータが書き込まれる。
【０３８６】
第１２番目の書き込みは、メモリセル４の第３ページに１ビットのデータが書き込まれる。
【０３８７】
（第１２の実施形態）
第１２の実施形態は、１ページを複数回に分けて書き込む分割書き込みにおいて、分割された領域に対応してフラグセルを配置する。
【０３８８】
上記第１乃至第１１の実施形態において、ＮＡＮＤ型フラッシュメモリは、１回の書き込み動作で、１ページ、例えば２ｋＢｙｔｅ＋６４Ｂｙｔｅ分のデータを書き込んでいる。これに対して、ＮＡＮＤ型フラッシュメモリを利用するアプリケーションによっては、１ページを複数回に分けて書き込みたいことがある。１ページの分割の仕方としては、例えば２ｋＢｙｔｅと６４Ｂｙｔｅ、１ｋＢｙｔｅ＋３２Ｂｙｔｅと１ｋＢｙｔｅ＋３２Ｂｙｔｅ、１ｋＢｙｔｅと１ｋＢｙｔｅと６４Ｂｙｔｅがある。
【０３８９】
図５７は、メモリセルアレイ１とフラグセルＦＣの関係を概略的に示している。図５７に示すように、１ページを例えば２つの領域Ａ、Ｂに分割した場合において、領域Ａに対応して第１のフラグセルＦＣ１を配置し、領域Ｂに対応して第２のフラグセルＦＣ２を配置する。
【０３９０】
上記構成において、第２ページの領域Ａにデータを書き込むとき、第１のフラグセルＦＣ１にもデータを書き込み、第２ページの領域Ｂにデータを書き込むとき、第２のフラグＦＣ２にもデータを書きこむ。
【０３９１】
また、上記構成において、分割書き込みをしない場合、すなわち、第２ページの領域Ａ及び領域Ｂに同時にデータを書き込むとき、第１、第２のフラグセルＦＣ１、ＦＣ２の両方にデータを書き込む。
【０３９２】
図５８（ａ）〜図５８（ｄ）は、領域Ａ、領域Ｂに対する具体的な書き込み順序を示している。図５８（ａ）、図５８（ｂ）に示す第１ページの書き込みは、分割書き込みをしない場合と同様であり、フラグセルＦＣ１、ＦＣ２にはデータを書き込まない。
【０３９３】
図５８（ｃ）は、第２ページ、領域Ａの書き込み動作を示している。先ず、全てのデータ記憶回路１０にデータ“１”を設定する（Ｓ３０１）。この後、領域Ａに対応するデータ記憶回路に領域Ａ用のデータが供給される（Ｓ３０２）。次いで、領域Ａに対応するフラグセルＦＣ１用のデータがデータ記憶回路に供給される（Ｓ３０３）。この後、データキャッシュを設定し（Ｓ３０４）、領域Ａ，領域Ｂにデータが書き込まれる（Ｓ３０５）。
【０３９４】
この時、領域Ｂの書き込みデータは“１”に設定されている。このため、第１ページで書き込みが行われ、メモリセルのデータが“２”となっていると、図１Ｃに示すように、領域Ｂのメモリセルのデータが“３”になってしまい、この後、領域Ｂのデータを書き込むことができなくなる。このため、メモリセルのデータが“２”（閾値電圧が“ｂ＊’”以上）となっている場合、メモリセルのデータを“２”（閾値電圧は“ｂ’”以上）となるようにする。具体的には、例えば図４３Ｂに示すように各データキャッシュにデータを設定するとき、データキャッシュを何も操作しない場合、メモリセルにデータ“３”が書き込まれてしまう。そこで、例えば図６、図５１に示すトランジスタ６１ｄのゲートに供給される信号ＰＲＳＴを領域Ａ用、領域Ｂ用に分けておく。そして、前記データキャッシュにデータを設定している時に、信号ＰＲＳＴをハイレベルとし、領域Ｂのデータをリセットする。これにより、ＤＤＣのデータを“１”とし、メモリセルにデータ“２”を書き込むようにする。したがって、領域Ｂのメモリセルのデータは“０”か“２”となる。また、フラグセルＦＣ２にはデータが書き込まれない。
【０３９５】
領域Ａの書き込みが行われた状態において、第１ページの読み出しは、図１３、図１６の読み出し動作と同様である。このとき、領域Ａ及び領域Ｂのデータは、ともに領域Ａに対応するフラグセルのデータに従って読み出される。第２ページの読み出しは、図１４、図１５の読み出し動作と同様であり、領域Ａのデータは第２ページの書き込み後に読み出される。しかし、領域Ｂのデータを読み出すとき、領域Ｂに第２ページのデータが書き込まれたことを認識するフラグセルＦＣ２にデータが書き込まれていない。このため、領域Ｂのデータは強制的に“１”として読み出される。
【０３９６】
次に、図５８（ｄ）を参照して、第２ページの領域Ｂにデータを書き込む場合の動作について説明する。先ず、全てのデータ記憶回路１０にデータ“１”を設定する（Ｓ３１１）。この後、領域Ｂに対応するデータ記憶回路に領域Ｂ用のデータが供給される（Ｓ３１２）。次いで、領域Ｂに対応するフラグセルＦＣ２用のデータがデータ記憶回路に供給される（Ｓ３１３）。この後、データキャッシュを設定し（Ｓ３１４）、領域Ｂにデータが書き込まれる（Ｓ３１５）。この時、領域Ａのメモリセルに書き込みが行われている場合、領域Ａのメモリセルにも書き込みが行われる場合がある。このため、領域Ａのメモリセルは書き込みまれないようにする。具体的には、例えば図４３Ｂに示すように、キャッシュのデータを設定すると、ＰＤＣが“０”となる場合がある。
【０３９７】
そこで、前述したように、図６、図５１に示すトランジスタ６１ｄのゲートに供給される信号ＰＲＳＴを領域Ａ用、領域Ｂ用に分けておく。そして、前記データキャッシュにデータを設定している時に、信号ＰＲＳＴをハイレベルとし、領域Ａのデータをリセットする。これにより、ＰＤＣのデータを“１”とし、メモリセルにデータが書き込みまれないようにする。したがって、領域Ａのメモリセルのデータは変化しない。
【０３９８】
第１２の実施形態の場合、第１、第２のフラグセルＦＣ１、ＦＣ２のデータに応じて領域Ａ及び領域Ｂを独立に制御できる。このため、分割書き込み中においても、例えば２ページのデータの書き込みが終了した領域に対してリード動作を行なうことが可能である。
【０３９９】
尚、図５７において、両フラグセルＦＣ１、ＦＣ２はセルアレイの右端に配置している。しかし、領域Ａの隣にフラグセルＦＣ１を配置し、領域Ｂの隣にフラグセルＦＣ２を配置することも可能である。
【０４００】
また、各ページを２個以上の領域に分割することも可能である。この場合、分割した領域に対応して、２個以上のフラグセルを配置すればよい。
【０４０１】
上記第１２の実施形態は、図５０、図５１に示す構成にも適用することが可能である。また、メモリセルに設定するページは２ページに限定されるものではなく、メモリセルに記憶されるビット数に応じて設定すればよい。すなわち、メモリセルに２ｎ個（ｎは２以上の自然数）の閾値電圧が設定される場合、ｎページとすればよい。このとき、ｋページ目（２＜＝ｋ＜＝ｎ）の書き込みとともに、フラグセルにデータを書き込めばよい。
【０４０２】
例えば、メモリセルに２３個の閾値電圧が設定される場合、３ページとすればよい。このとき、領域Ａの第２ページの書き込みとともに、第１フラグセルにデータを書き込み、領域Ｂの第２ページの書き込みとともに、第２フラグセルにデータを書き込み、領域Ａの第３ページの書き込みとともに、第３フラグセルにデータを書き込み、領域Ｂの第３ページの書き込みとともに、第４フラグセルにデータを書き込めばよい。
【０４０３】
また、フラグセルにも複数の閾値電圧を設定することが可能である。この場合、領域Ａの第２ページの書き込みとともに、第１フラグセルにデータを書き込み、領域Ｂの第２ページの書き込みとともに、第２フラグセルにデータを書き込み、領域Ａの第３ページの書き込みとともに、第１フラグセルにデータを書き込み、領域Ｂの第２ページの書き込みとともに、第２フラグセルにデータを書き込めばよい。このように、フラグセルにも複数の閾値電圧を設定することにより、ページ数が増加した場合においても、フラグセルの数の増加を抑制できる。
【０４０４】
（第１３の実施形態）
第１３の実施形態は、第２の実施形態を変形したものである。図６０（ａ）に示すように、第２の実施形態において、第２ページの書き込みの際、メモリセルのデータは“０”から“１”へ変化され、又は“２”から“３”へ変化される。これと同時に、フラグセルのデータは、図６０（ｂ）に示すように、“０”から“２”へ変化させていた。このような書き込みを行った場合、図６０（ｂ）に示すように、フラグセルの閾値電圧の分布が広がる場合がある。この閾値電圧は読み出し時のワード線電位“ｃ”より高くなっている。この状態において、図１４に示す第２ページの読み出し動作を行なうと、フラグセルから読み出されるデータが“１”となり、第２ページに書き込みを行っていないことになる。
【０４０５】
そこで、第１３の実施形態は、図３４に示すように、第１のフラグセルＦＣ１、第２のフラグセルＦＣ２を設ける。このような構成において、第２ページの書き込み時に、第１のフラグセルＦＣ１のデータを第２の実施形態と同様に“０”から“２”へ変化させ、第２のフラグセルのデータを“０”から“１”へ変化させる。
【０４０６】
図６１（ａ）は、第２ページ書き込み後における第１のフラグセルＦＣ１の閾値電圧の分布を示し、図６１（ｂ）は第２のフラグセルＦＣ２の閾値電圧の分布を示している。
【０４０７】
データの読み出し時において、第１ページのデータを読み出す際、図６２に示すように、第１のフラグセルＦＣ１のデータによって、第２ページの書き込みが行われたかどうかを判断する。すなわち、先ず読み出し時のワード線の電位を“ｂ”とし、メモリセル及び第１のフラグセルＦＣ１からデータを読み出す。第１のフラグセルＦＣ１のデータが“０”である場合、第２ページの書き込みが行なわれたことが分かる。また、第１のフラグセルＦＣ１のデータが“１”である場合、第２ページの書き込みが行なわれていない。このため、ワード線の電位を“ａ”として、メモリセルのデータが読み出される。
【０４０８】
また、第２ページのデータの読み出しは、図６３に示すように、第２のフラグセルＦＣ２のデータによって、第２ページの書き込みが行われたかどうかを判断する。すなわち、先ず、ワード線の電位を“ｃ”としてデータを読み出し、さらに、ワード線の電位を“ａ”としてデータを読み出す。第２のフラグセルＦＣ２のデータが“０”の場合、第２ページの書き込みが行なわれているため、読み出したデータを出力する。一方、第２のフラグセルＦＣ２のデータが“１”の場合、第２ページの書き込みが行なわれていないため、データ“１”を出力する。
【０４０９】
第１３の実施形態によれば、第１、第２のフラグセルＦＣ１、ＦＣ２を設け、これら第１、第２のフラグセルＦＣ１、ＦＣ２のデータに従って、第２ページの書き込みが行なわれたかどうかを判断している。このため、第２ページの書き込みにおいて、第１、第２のフラグセルＦＣ１、ＦＣ２の閾値電圧の分布が広がった場合においても、データの読み出し時に第２ページの書き込みが行なわれたかどうかを確実に判断することができる。
【０４１０】
第１３の実施形態は、第１のフラグセルＦＣ１のデータを“０”から“２”へと変化させた。しかし、データ“０”から“３”へ変化させることも可能である。また、第２のフラグセルＦＣ２をデータ“０”から“１”へと変化させた。しかし、データ“０”から“２”へと変化させることも可能である。このような構成とした場合、閾値電圧の分布と読み出し時のワード線の電位とのマージンを大きくとることが可能である。このため、データ保持などの信頼性を上げることが可能である。
【０４１１】
図６４は、第１３の実施形態の変形例を示すものである。この変形例は、さらに、信頼性を向上させるため、メモリセルアレイの一端部に複数の第１、第２のフラグセルとダミーセルを配置している。すなわち、偶数ページ（ＢＬＥ）用に３個の第１のフラグセルと、３個の第２のフラグセルを配置し、奇数ページ（ＢＬＯ）用に３個の第１のフラグセルと、３個の第２のフラグセルを配置している。このような構成において、データの読み出し時に、遇数ページの３個の第１のフラグセルの多数決と、３個の第２のフラグセルの多数決を求めることにより、遇数ページにおける第２ページの書き込みの有無を判断する。また、奇数ページ用の３個の第１のフラグセルの多数決と、３個の第２のフラグセルの多数決を求めることにより、奇数ページにおける第２ページの書き込みの有無を判断する。このような構成とすれば、隣接するセルのＦＧ−ＦＧ間容量により、後に書いた隣接セルの閾値電圧により、先に書いたセルの閾値電圧が変化した場合においても、確実に第２ページが書き込まれたかどうかを判断することができる。
【０４１２】
その他、本発明の要旨を変えない範囲において種々変形実施可能なことは勿論である。
【図面の簡単な説明】
【０４１３】
【図１】本発明の第１の実施形態に係るメモリセルのデータとメモリセルの閾値電圧の関係を示す図。
【図２】本発明の不揮発性半導体記憶装置の概略構成を示す構成図。
【図３】図２に示すメモリセルアレイ及びビット線制御回路の構成を示す回路図。
【図４】図４（ａ）（ｂ）はメモリセル及び選択トランジスタを示す断面図。
【図５】メモリセルアレイの１つのＮＡＮＤセルを示す断面図。
【図６】図３に示すデータ記憶回路の一例を示す回路図。
【図７】ＮＡＮＤセルに対する書き込み順序を示す図。
【図８】第１ページのプログラム動作を示すブロックダイアグラム。
【図９】第２ページのプログラム動作を示すブロックダイアグラム。
【図１０】各データキャッシュとメモリセルのデータの関係を示す図。
【図１１】データキャッシュの設定手順を示す図。
【図１２】データキャッシュの設定手順を示す図。
【図１３】第１ページのリード動作を示すダイアグラム。
【図１４】第２ページのリード動作を示すダイアグラム。
【図１５】第２ページのリード動作の変形例を示すダイアグラム。
【図１６】本発明の第２の実施形態に係り、第１ページのリード動作を示すダイアグラム。
【図１７】本発明の第３の実施形態に係り、プログラム動作を示すダイアグラム。
【図１８】図１７の第４番目の書き込み動作を具体的に示すダイアグラム。
【図１９】図１７の第５番目の書き込み動作を具体的に示すダイアグラム。
【図２０】図１７の第６番目の書き込み動作を具体的に示すダイアグラム。
【図２１】本発明の第４の実施形態に係り、書き込み動作を示すダイアグラム。
【図２２】図２１の一部の動作を示すダイアグラム。
【図２３】従来のパスライト方式の書き込みシーケンスを示すダイアグラム。
【図２４】本発明の第５の実施形態に適用されるデータ“１”の書き込み動作を示すアルゴリズム。
【図２５】本発明の第５の実施形態に係り、各データキャッシュとメモリセルのデータの関係を示す図。
【図２６】本発明の第６の実施形態に係り、第２ページの書き込み順序を示すダイアグラム。
【図２７】本発明の第６の実施形態に係り、各データキャッシュとメモリセルのデータの関係を示す図。
【図２８】本発明の第７の実施形態に係り、第２ページの書き込み順序を示すダイアグラム。
【図２９】本発明の第７の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。
【図３０】本発明の第７の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。
【図３１】本発明の第７の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。
【図３２】本発明の第７の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。
【図３３】本発明の第７の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。
【図３４】本発明の第８の実施形態に係るメモリセルアレイとビット線制御回路を示す回路図。
【図３５】本発明の第８の実施形態に係るメモリセルのデータとメモリセルの閾値電圧の関係を示す図。
【図３６】本発明の第８の実施形態に係るメモリセルのデータとメモリセルの閾値電圧の関係を示す図。
【図３７】本発明の第８の実施形態に係るメモリセルの書き込み順序を示す図。
【図３８】本発明の第８の実施形態に係り、第３ページのプログラム動作を示すダイアグラム。
【図３９】本発明の第８の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。
【図４０】本発明の第８の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。
【図４１】図４１（ａ）は、本発明の第８の実施形態に係り、第１ページのリード動作を示すダイアグラム、図４１（ｂ）は、第２ページの読み出し動作を示すダイアグラム。
【図４２】本発明の第８の実施形態に係り、第３ページの読み出し動作を示すダイアグラム。
【図４３】本発明の第９の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。
【図４４】本発明の第９の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。
【図４５】本発明の第９の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。
【図４６】本発明の第９の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。
【図４７】本発明の第９の実施形態に係るメモリセルのデータとメモリセル閾値電圧の関係を示す図。
【図４８】本発明の第９の実施形態の変形例を示すフローチャート。
【図４９】本発明の第１０の実施形態に係り、ＮＡＮＤセルに対する書き込み順序を示す図。
【図５０】本発明の第１１の実施形態に係るメモリセルアレイとビット線制御部の構成を示す回路構成図。
【図５１】本発明の第１１の実施形態に適用されるデータ記憶回路の回路図。
【図５２】本発明の第１１の実施形態におけＮＡＮＤセルの書き込み順序を示す図。
【図５３】図５２の変形例を示す図。
【図５４】図５０の変形例を示す図。
【図５５】ＮＡＮＤセルに３ビットのデータを書き込む順序を示す図。
【図５６】ＮＡＮＤセルに３ビットのデータを書き込む順序を示す図。
【図５７】本発明の第１２の実施形態に係るメモリセルアレイとビット線制御部の構成を示す回路構成図。
【図５８】図５８（ａ）乃至図５８（ｄ）は、第１２の実施形態の動作を示すフローチャート。
【図５９】図３に示す回路の変形例を示す回路図。
【図６０】図６０（ａ）（ｂ）は、第１３の実施形態に係り、閾値電圧の分布の一例を示す図。
【図６１】図６１（ａ）（ｂ）は、第１３の実施形態に係り、フラグセルの閾値電圧の分布の一例を示す図。
【図６２】第１３の実施形態に係り、第１ページ読み出し動作の一例を示すフローチャート。
【図６３】第１３の実施形態に係り、第２ページ読み出し動作の一例を示すフローチャート。
【図６４】第１３の実施形態の変形例を示す概略構成図。
【符号の説明】
【０４１４】
１…メモリセルアレイ、２…ビット制御回路、３…カラムデコーダ、４…データ入出力バッファ、５…データ入出力端子、６…ワード線制御回路、７…制御電圧発生回路、８…制御信号入力端子、１０…データ記憶回路、１０ａ、１０ｂ…フラグ用データ記憶回路、ＰＤＣ…プライマリデータキャッシュ、ＳＤＣ…セコンダリデータキャッシュ、ＤＤＣ…ダイナミックデータキャッシュ、ＴＤＣ…テンポラリデータキャッシュ、ＦＣ、ＦＣ１、ＦＣ２…フラグセル。
【図１】
2004192789.tif 000003
【図２】
2004192789.tif 000004
【図３】
2004192789.tif 000005
【図４】
2004192789.tif 000006
【図５】
2004192789.tif 000007
【図６】
2004192789.tif 000008
【図７】
2004192789.tif 000009
【図８】
2004192789.tif 000010
【図９】
2004192789.tif 000011
【図１０】
2004192789.tif 000012
【図１１】
2004192789.tif 000013
【図１２】
2004192789.tif 000014
【図１３】
2004192789.tif 000015
【図１４】
2004192789.tif 000016
【図１５】
2004192789.tif 000017
【図１６】
2004192789.tif 000018
【図１７】
2004192789.tif 000019
【図１８】
2004192789.tif 000020
【図１９】
2004192789.tif 000021
【図２０】
2004192789.tif 000022
【図２１】
2004192789.tif 000023
【図２２】
2004192789.tif 000024
【図２３】
2004192789.tif 000025
【図２４】
2004192789.tif 000026
【図２５】
2004192789.tif 000027
【図２６】
2004192789.tif 000028
【図２７】
2004192789.tif 000029
【図２８】
2004192789.tif 000030
【図２９】
2004192789.tif 000031
【図３０】
2004192789.tif 000032
【図３１】
2004192789.tif 000033
【図３２】
2004192789.tif 000034
【図３３】
2004192789.tif 000035
【図３４】
2004192789.tif 000036
【図３５】
2004192789.tif 000037
【図３６】
2004192789.tif 000038
【図３７】
2004192789.tif 000039
【図３８】
2004192789.tif 000040
【図３９】
2004192789.tif 000041
【図４０】
2004192789.tif 000042
【図４１】
2004192789.tif 000043
【図４２】
2004192789.tif 000044
【図４３】
2004192789.tif 000045
【図４４】
2004192789.tif 000046
【図４５】
2004192789.tif 000047
【図４６】
2004192789.tif 000048
【図４７】
2004192789.tif 000049
【図４８】
2004192789.tif 000050
【図４９】
2004192789.tif 000051
【図５０】
2004192789.tif 000052
【図５１】
2004192789.tif 000053
【図５２】
2004192789.tif 000054
【図５３】
2004192789.tif 000055
【図５４】
2004192789.tif 000056
【図５５】
2004192789.tif 000057
【図５６】
2004192789.tif 000058
【図５７】
2004192789.tif 000059
【図５８】
2004192789.tif 000060
【図５９】
2004192789.tif 000061
【図６０】
2004192789.tif 000062
【図６１】
2004192789.tif 000063
【図６２】
2004192789.tif 000064
【図６３】
2004192789.tif 000065
【図６４】
2004192789.tif 000066