(57)【要約】      （修正有）【課題】ベリファイ時間の増大を抑えることが可能である半導体記憶装置を提供する。【解決手段】メモリセルＭＣは、ｎ値（ｎは１以上の自然数）の閾値電圧により複数のデータを記憶する。第１の検出回路は、メモリセルが所要の閾値電圧に達したかどうかをベリファイするベリファイ動作において、メモリセルの一端を一定の電位にプリチャージし、メモリセルのゲートに一定の電圧を供給し、メモリセルの一端の電圧を第１の検知レベルに基づき検出する。第２の検出回路は、第１の検出回路による検出から所定時間経過後、メモリセルの一端の電圧を第２の検知レベルに基づき検出する。【選択図】図１
2006172523.tif 000002
【特許請求の範囲】
【請求項１】
ｎ値（ｎは１以上の自然数）の閾値電圧によりデータを記憶するメモリセルと、
前記メモリセルが所要の閾値電圧に達したかどうかをベリファイするベリファイ動作において、前記メモリセルの一端を一定の電位にプリチャージし、前記メモリセルのゲートに一定の電圧を供給し、前記メモリセルの一端の電圧を第１の検知レベルに基づき検出する第１の検出回路と、
前記第１の検出回路による検出後、前記メモリセルの一端の電圧を第２の検知レベルに基づき検出する第２の検出回路と
を具備することを特徴とする半導体記憶装置。
【請求項２】
ｎ値（ｎは１以上の自然数）の閾値電圧によりデータを記憶するメモリセルと、
前記メモリセルの一端に接続され、外部より入力される第１論理レベル又は第２論理レベルのデータを記憶する第１のデータ記憶回路と、
前記第１論理レベル又は第２論理レベルを記憶する第２のデータ記憶回路と、
前記第１のデータ記憶回路が第１論理レベルである場合で、前記第２のデータ記憶回路が第１論理レベルの場合、前記メモリセルの閾値電圧を上げる第１動作を行い、前記第２のデータ記憶回路が第２論理レベルの場合、前記第１動作より閾値電圧の変動が少ないが、前記メモリセルの閾値電圧を上げる第２動作を行い、前記第１のデータ記憶回路が第２論理レベルである場合、前記メモリセルの閾値電圧は変化させず保持し、前記メモリセルが所要の閾値電圧に達したかどうかをベリファイするベリファイ動作において、前記メモリセルの一端をプリチャージすると共に前記メモリセルのゲートに第１の電圧を加え、第１ステップにて、前記メモリセルの一端の電圧が第１の検知レベル以上の場合、前記第２のデータ記憶回路の論理レベルを第２論理レベルに変更し、所定時間経過後、第２ステップにて、前記メモリセルの一端の電圧が第２の検知レベル以上の場合、前記第１のデータ記憶回路の論理レベルを第２論理レベルに変更し、前記第１動作を行なう制御回路と
を具備することを特徴とする半導体記憶装置。
【請求項３】
第１の検知レベルは第２の検知レベルより高いことを特徴とする請求項１又は２記載の半導体記憶装置。
【請求項４】
読み出し動作時に、前記メモリセルが閾値電圧レベルに達したかどうかのベリファイ動作と同様に、前記メモリセルの一端をプリチャージすると共に前記メモリセルのゲートに第２の電圧を加え、第１ステップ及び第２ステップを行うことを特徴とする請求項２記載の半導体記憶装置。
【請求項５】
前記メモリセルのゲートに供給する第１の電圧は、読み出し時にメモリセルのゲートに供給する第２の電圧より高いことを特徴とする請求項２記載の半導体記憶装置。
【請求項６】
前記第１の検知レベルはセル毎に異なる値を有することを特徴とする請求項２記載の半導体記憶装置。
【請求項７】
前記第１ステップはセル毎に異なるタイミングで行うことを特徴とする請求項２記載の半導体記憶装置。
【請求項８】
前記制御回路は、書き込み回数を計数するカウンタを有し、前記カウンタにより計数された書き込み回数の平均値が規定値以上である場合、前記第１の検知レベルを変更することを特徴とする請求項２記載の半導体記憶装置。
【請求項９】
前記制御回路は、書き込み回数を計数する第１のカウンタを有し、前記第１のカウンタにより計数された書き込み回数の平均値が規定値以上である場合、前記第１ステップのタイミングを変更することを特徴とする請求項２記載の半導体記憶装置。
【請求項１０】
前記第１ステップ時に、前記メモリセルの他端に第３電圧を供給し、前記第２ステップ時に、前記メモリセルの他端に第４電圧を供給することを特徴とする請求項２記載の半導体記憶装置。
【請求項１１】
前記第１ステップ時に、前記メモリセルのウェルに前記第３電圧を供給することを特徴とする請求項１０記載の半導体記憶装置。
【請求項１２】
前記第３電圧は、前記第４電圧より高いことを特徴とする請求項１１記載の半導体記憶装置。
【請求項１３】
前記メモリセルが閾値電圧に達したかどうかをベリファイするベリファイ動作において、前記第１のデータ記憶回路の論理レベルが第１論理レベルの場合、前記メモリセルの一端をプリチャージし、第２論理レベルの場合、プリチャージ動作を行わないことを特徴とする請求項２の半導体記憶装置。
【請求項１４】
前記制御回路は、前記メモリセルの消去回数を計数する第２のカウンタを有し、前記第２のカウンタの計数値は、前記メモリセルに記憶され、前記メモリセルに記憶された消去回数が規定値以上である場合、前記第１の検知レベルを変更することを特徴とする請求項２記載の半導体記憶装置。
【請求項１５】
前記制御回路は、前記メモリセルの消去回数を計数する第２のカウンタを有し、前記第２のカウンタの計数値は、前記メモリセルに記憶され、前記メモリセルに記憶された消去回数が規定値以上である場合、前記第１ステップのタイミングを変更することを特徴とする請求項２記載の半導体記憶装置。
【請求項１６】
ｎ値（ｎは１以上の自然数）の閾値電圧により複数のデータを記憶するメモリと、
前記メモリセルの一端に接続され、外部より入力される第１論理レベル又は第２論理レベルを記憶する第１のデータ記憶回路と、
前記第１のデータ記憶回路が第１論理レベルである場合、前記メモリセルの閾値電圧を上げる第１動作を行い、前記第１のデータ記憶回路が第２論理レベルである場合、前記メモリセルの閾値電圧を変化させずに保持し、前記メモリセルが閾値電圧に達したかのベリファイ動作において、前記第１のデータ記憶回路の論理レベルが第１論理レベルの場合、前記メモリセルの一端をプリチャージし、第２論理レベルの場合、プリチャージ動作は行なわず、前記メモリセルのゲートに第１の電圧を加え、前記メモリセルの一端の電圧が第１の検知レベル以上の場合、前記第１のデータ記憶回路の論理レベルを第２論理レベルに変更し、前記第１動作を行なわない制御回路と
を具備することを特徴とする半導体記憶装置。
【請求項１７】
異なる閾値電圧によりデータを記憶するメモリセルの書き込み、前記メモリセルが所定の第１閾値電圧に達したかどうかのベリファイ動作において、所定の第１閾値に達している場合、次回の書き込み動作で、閾値電圧は変化させず、
所定の第１閾値より低い、第ｉ閾値（ｉは３以上の自然数）（第１閾値＞第２閾値＞第３閾値…＞第ｉ閾値）に達している場合、次回の書き込み動作では、第ｉ（ｉは３以上の自然数）書き込み動作を行い、前記第ｉ書き込み動作での閾値変動は、第２＜第３＜第４＜…＜第ｋの順で小さくなるように制御し、前記所定の第１閾値に達するまで、書き込み動作とベリファイ動作を繰り返すことを特徴とする半導体記憶装置。
【請求項１８】
前記第ｉ書き込みにおいて、ビット線に第ｉ電位（第２電位＞第３電位＞…＞第ｉ電位）を供給して書き込みを行なうことを特徴とする請求項１７記載の半導体記憶装置。
【請求項１９】
前記所定の第１閾値を複数設定することにより、複数のデータを記憶することを特徴とする請求項１６記載の半導体記憶装置。
【請求項２０】
ワード線及びビット線に接続され、ｎ値（ｎは３以上の自然数）を記憶する複数のメモリセルがマトリックス上に配置されて構成されたメモリセルアレイと、
入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路を具備し、
前記制御回路は、
書き込み動作により、ｋ値（ｋ＜＝ｎ）の閾値電圧に書き込み、
前記ビット線をプリチャージした後、前記ワード線の電位をｍ回変化させて、前記メモリセルが本来のｍ値（ｍ＜＝ｋ）の閾値に達したかどうかのベリファイを行い、
ｊ値（ｊ＜＝ｎ）のデータの読み出し時に、前記ビットをプリチャージした後、前記ワード線に供給する電圧の変化を、前記ベリファイ動作と等しくｍ回変化させて読み出し動作を行なうことを特徴とする半導体記憶装置。
【請求項２１】
ワード線、ビット線に接続され、ｎ値（ｎは３以上の自然数）を記憶する複数のメモリセルがマトリックス上に配置されて構成されたメモリセルアレイと、
入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路を具備し、
前記制御回路は、
書き込み動作により、ｋ値（ｋ＜＝ｎ）の閾値電圧に書き込み、前記ビット線をプリチャージした後、前記ワード線の電位をｍ回変化させて、前記メモリセルが本来のｍ値（ｍ＜＝ｋ）の閾値より低い閾値に達したかどうかのベリファイを行い、
前記ビット線を再度プリチャージした後、前記ワード線の電位をｍ回変化させて、前記メモリセルが本来のｍ値（ｍ＜＝ｋ）の閾値に達したかどうかのベリファイを行い、次回の書き込み動作では、前記本来の閾値より低い閾値に達した場合、書き込み速度を遅くらせ、前記本来のｍ値の閾値に達した場合、書き込み動作を行なわないことを特徴とする半導体記憶装置。
【請求項２２】
ｊ値（ｊ＜＝ｎ）のデータの読み出し時に、前記ビットをプリチャージした後、前記ワード線に供給する電圧を、前記ベリファイ動作と等しくｍ回変化させて読み出し動作を行なうことを特徴とする請求項２１記載の半導体記憶装置。
【請求項２３】
ｎ値（ｎは２以上の自然数）のデータを記憶し、マトリックス上に配置された少なくとも１つの第１のメモリセルと、前記第１のメモリセルと同時に選択される少なくとも１つの第２のメモリセルとを有するメモリセルアレイを有し、
前記第２のメモリセルの論理レベルが第１の論理レベルの場合、第１のメモリセルのデータを出力し、前記第２のメモリセルの論理レベルが第２の論理レベルの場合、第１のメモリセルの出力データを一定値として出力することを特徴とする半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば１つのメモリセルに２値以上のデータを記憶することが可能な半導体記憶装置に関する。
【背景技術】
【０００２】
ＥＥＰＲＯＭを用いたＮＡＮＤ型フラッシュメモリであって、１つのメモリセルに多値データを記憶可能な不揮発性半導体記憶装置が提案されている（例えば、特許文献１参照）。
【０００３】
ＮＡＮＤ型フラッシュメモリは、ロウ（行）方向に配置された複数のメモリセルの全て、又は半数のメモリセルが、それぞれビット線を介して対応するラッチ回路に接続されている。各ラッチ回路はデータの書き込み、及び読み出し時にデータを保持する。ロウ方向に配置された全てのセル、又は半数のセルは、一括してデータの書き込み、又は読み出しが行なわれる（例えば、特許文献２参照）。
【０００４】
メモリセルに対するデータの書き込み時間の増大を抑えつつ、書き込み後の閾値電圧分布幅を狭める方法としてQuick Pass Write（ＱＰＷ）方式が考案されている。ＱＰＷ方式は、先ずビット線を充電すると共に、ワード線の電位を本来のベリファイレベルより低いレベルに設定する。この後、選択ゲートをハイレベル（Ｈレベル）とし、プリチャージしたビット線を放電させる。ここで、非書き込みセル、及び書き込み途中のセルで書き込み閾値電圧まで遠いセルは、電流を流すためビット線電位はローレベル（Ｌレベル）になる。しかし、書き込み途中のセルで書き込み閾値電圧に近づいたセルや、書き込みが完了したセルの場合、ビット線はＨレベルのままになる。ここで、ビット線の電位を検出する（第１回目のベリファイ）。
【０００５】
次に、ワード線の電位を本来のワード線レベルに設定する。すると、書き込み途中のセルもビット線はＬレベルとなる。したがって、書き込み完了セルの場合のみビットの電位がＨレベルとなる。ここで、ビット線の電位を検出する（第２回目のベリファイ）。
【０００６】
第２回目のベリファイの結果、Ｈレベルとなるのは、書き込みが完了したセルである。この書き込みが完了したセルは、次回のプログラムループにおいて、非書き込みセルとしてビット線を例えば電源電圧Ｖｄｄとし、書き込みを行わない。第２回目のベリファイの結果、Ｌレベルとなるのは書き込み不充分のセルである。この書き込み不充分のセルは、次回のプログラムループにおいて、書き込み動作を行う。しかし、第１回目のベリファイの結果、Ｈレベルとなったセルは閾値電圧（本体のベリファイレベル）に近いセルであるため、ビット線を中間電位（例えば０．７５Ｖ）として書き込み速度を抑えて書き込みを行う。一方、前記第１回目のベリファイの結果、Ｌレベルとなった場合、ビット線を例えば接地電圧Ｖｓｓとして書き込みを行う。
【０００７】
このようにして、全ての書き込みセルが第２回目のベリファイをパスするまでプログラムとベリファイを繰り返し行う。このため、本来のベリファイ電位に近いセルの書き込み速度が遅くなり、閾値電圧分布を狭めることが可能である。しかし、ワード線の電位を本来のベリファイレベルより低いレベルで第１回目のベリファイ動作をした後、ワード線の電位を本来の書き込みベリファイレベルとして第２回目のベリファイ動作させる必要がある。ワード線の容量は大きいため、ワード線の電位を上昇させるために時間がかかり、ベリファイ時間が増大するという問題があった。
【特許文献１】特開２０００−１９５２８０号公報
【特許文献２】特開２００３−１９６９８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、ベリファイ時間の増大を抑えることが可能な半導体記憶装置を提供しようとするものである。
【課題を解決するための手段】
【０００９】
本発明の半導体記憶装置の第１の態様は、ｎ値（ｎは１以上の自然数）の閾値電圧によりデータを記憶するメモリセルと、前記メモリセルが所要の閾値電圧に達したかどうかをベリファイするベリファイ動作において、前記メモリセルの一端を一定の電位にプリチャージし、前記メモリセルのゲートに一定の電圧を供給し、前記メモリセルの一端の電圧を第１の検知レベルに基づき検出する第１の検出回路と、前記第１の検出回路による検出から所定時間経過後、前記メモリセルの一端の電圧を第２の検知レベルに基づき検出する第２の検出回路とを具備している。
【００１０】
本発明の半導体記憶装置の第２の態様は、ｎ値（ｎは１以上の自然数）の閾値電圧によりデータを記憶するメモリセルと、前記メモリセルの一端に接続され、外部より入力される第１論理レベル又は第２論理レベルのデータを記憶する第１のデータ記憶回路と、前記第１論理レベル又は第２論理レベルを記憶する第２のデータ記憶回路と、前記第１のデータ記憶回路が第１論理レベルである場合で、前記第２のデータ記憶回路が第１論理レベルの場合、前記メモリセルの閾値電圧を上げる第１動作を行い、前記第２のデータ記憶回路が第２論理レベルの場合、前記第１動作より閾値電圧の変動が少ないが、前記メモリセルの閾値電圧を上げる第２動作を行い、前記第１のデータ記憶回路が第２論理レベルである場合、前記メモリセルの閾値電圧は変化させず保持し、前記メモリセルが所要の閾値電圧に達したかどうかをベリファイするベリファイ動作において、前記メモリセルの一端をプリチャージすると共に前記メモリセルのゲートに第１の電圧を加え、第１ステップにて、前記メモリセルの一端の電圧が第１の検知レベル以上の場合、前記第２のデータ記憶回路の論理レベルを第２論理レベルに変更し、所定時間経過後、第２ステップにて、前記メモリセルの一端の電圧が第２の検知レベル以上の場合、前記第１のデータ記憶回路の論理レベルを第２論理レベルに変更し、前記第１動作を行なう制御回路とを具備している。
【００１１】
本発明の半導体記憶装置の第３の態様は、異なる閾値電圧によりデータを記憶するメモリセルの書き込み、前記メモリセルが所定の第１閾値電圧に達したかどうかのベリファイ動作において、所定の第１閾値に達している場合、次回の書き込み動作で、閾値電圧は変化させず、所定の第１閾値より低い、第ｉ閾値（ｉは３以上の自然数）（第１閾値＞第２閾値＞第３閾値…＞第ｉ閾値）に達している場合、次回の書き込み動作では、第ｉ（ｉは３以上の自然数）書き込み動作を行い、前記第ｉ書き込み動作での閾値変動は、第２＜第３＜第４＜…＜第ｋの順で小さくなるように制御し、前記所定の第１閾値に達するまで、書き込み動作とベリファイ動作を繰り返すことを特徴とする。
【００１２】
本発明の半導体記憶装置の第４の態様は、ワード線及びビット線に接続され、ｎ値（ｎは３以上の自然数）を記憶する複数のメモリセルがマトリックス上に配置されて構成されたメモリセルアレイと、入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路を具備し、前記制御回路は、書き込み動作により、ｋ値（ｋ＜＝ｎ）の閾値電圧に書き込み、前記ビット線をプリチャージした後、前記ワード線の電位をｍ回変化させて、前記メモリセルが本来のｍ値（ｍ＜＝ｋ）の閾値に達したかどうかのベリファイを行い、ｊ値（ｊ＜＝ｎ）のデータの読み出し時に、前記ビットをプリチャージした後、前記ワード線に供給する電圧の変化を、前記ベリファイ動作と等しくｍ回変化させて読み出し動作を行なうことを特徴とする。
【００１３】
本発明の半導体記憶装置の第５の態様は、ワード線及びビット線に接続され、ｎ値（ｎは３以上の自然数）を記憶する複数のメモリセルがマトリックス上に配置されて構成されたメモリセルアレイと、入力データに応じて前記ワード線及びビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路を具備し、前記制御回路は、書き込み動作により、前記メモリセルをｋ値（ｋ＜＝ｎ）の閾値電圧に書き込み、前記ビット線をプリチャージした後、前記ワード線の電位をｍ回変化させて、前記メモリセルが本来のｍ値（ｍ＜＝ｋ）の閾値により低いｍ’の閾値に達したかのベリファイを行い、再度前記ビット線をプリチャージした後、前記ワード線の電位をｍ回変化させて、前記メモリセルが本来のｍ値（ｍ＜＝ｋ）の閾値に達したかどうかのベリファイを行い、次回の書き込み動作では、前記ｍ’の閾値に達した場合、書き込み速度を遅くし、前記ｍの閾値に達した場合、書き込み動作は行なわないことを特徴とする。
【００１４】
本発明の半導体記憶装置の第６の態様は、ｎ値（ｎは２以上の自然数）のデータを記憶し、マトリックス上に配置された少なくとも１つの第１のメモリセルと、前記第１のメモリセルと同時に選択される少なくとも１つの第２のメモリセルとを有するメモリセルアレイを有し、前記第２のメモリセルの論理レベルが第１の論理レベルの場合、第１のメモリセルのデータを出力し、前記第２のメモリセルの論理レベルが第２の論理レベルの場合、第１のメモリセルの出力データを一定値として出力することを特徴とする。
【００１５】
本発明の半導体記憶装置の第７の態様は、ｎ値（ｎは１以上の自然数）の閾値電圧により複数のデータを記憶するメモリと、前記メモリセルの一端に接続され、外部より入力される第１論理レベル又は第２論理レベルを記憶する第１のデータ記憶回路と、前記第１のデータ記憶回路が第１論理レベルである場合、前記メモリセルの閾値電圧を上げる第１動作を行い、前記第１のデータ記憶回路が第２論理レベルである場合、前記メモリセルの閾値電圧を変化させずに保持し、前記メモリセルが閾値電圧に達したかのベリファイ動作において、前記第１のデータ記憶回路の論理レベルが第１論理レベルの場合、前記メモリセルの一端をプリチャージし、第２論理レベルの場合、プリチャージ動作は行なわず、前記メモリセルのゲートに第１の電圧を加え、前記メモリセルの一端の電圧が第１の検知レベル以上の場合、前記第１のデータ記憶回路の論理レベルを第２論理レベルに変更し、前記第１動作を行なわない制御回路とを具備している。
【発明の効果】
【００１６】
本発明によれば、ベリファイ時間の増大を抑えることが可能な半導体記憶装置を提供できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１８】
（第１の実施形態）
まず、第１の実施形態の原理について説明する。
【００１９】
図１（ａ）は第１の実施形態でのワード線及びビット線の電位を示し、図２は各セルのＶｇ−Ｉｄ（ゲート電圧−ドレイン電流）特性を示している。図１（ａ）に示すように、第１の実施形態では、ワード線の電位を本来の書き込みベリファイレベル（ＡＶ）に設定し、ビット線の放電速度の違いを検出することにより第１回目のベリファイを行う。この後、ワード線の電位を変えずに、本来のベリファイ動作である第２回目のベリファイ動作を行う。これに対して、図１（ｂ）は、ワード線の電位を変えるプログラムベリファイ動作を示している。
【００２０】
図１（ａ）に示すように、先ず、ビット線を充電すると共に、ワード線ＷＬの電位を本来のベリファイレベル（ＡＶ）に設定した後、選択ゲートをＨレベルとし、プリチャージしたビット線ＢＬを放電させる。非書き込み（図１（ａ）に(1)で示す）、及び書き込み途中のセルで、書き込み閾値電圧から遠いセル（図１（ａ）に(2)で示す）は、電流を流すためビット線電位はＬレベルになる。しかし、書き込み途中のセルで書き込み閾値電圧に近づいたセル（図１（ａ）に(3)で示す）や、書き込み完了セル（図１（ａ）に(4)で示す）の場合、ビット線はＨレベルのままになる。ここで、ビット線の電位を検出する（第１回目のベリファイＶＦ１）。このビット線の電位の検出は、例えば本来のビット線電位の検出より高いレベルＳＬＨを用いる。
【００２１】
次に、ビット線の放電を続けると、書き込み途中のセル（図１（ａ）に(3)で示す）もビット線がＬレベルとなる。したがって、書き込み完了セル（図１（ａ）に(4)で示す）のみビット線の電位がＨレベルとなる。ここで、ビット線の電位を検出する（第２回目のベリファイＶＦ２）。この検出レベルは、例えば本来の検出レベルＳＬである。
【００２２】
以下、ＱＰＷ方式と同様に第２回目のベリファイの結果、Ｈレベルとなるのは、書き込みが完了したセルである。このため、次回のプログラムループでは、非書き込みセルとしてビット線に例えば電源電圧Ｖｄｄを供給して書き込みを行わない。第２回目のベリファイ結果で書き込み不充分のセルは、次回のプログラムループにおいて書き込みを行う。しかし、第１回目のベリファイの結果、Ｈレベルとなったセルの場合、ビット線に中間電位（例えば０．７５Ｖ）を供給し、書き込み速度を抑えて書き込みを行う。また、第１回目のベリファイの結果、Ｌレベルとなったセルの場合、ビット線に例えば接地電位Ｖｓｓを供給して書き込みを行う。
【００２３】
このようにして、全ての書き込みセルが第２回目のベリファイをパスするまでプログラムとベリファイを繰り返し行う。このため、本来のベリファイ電位に近いセルの書き込み速度が遅くなり、閾値電圧分布を狭めることが可能である。
【００２４】
第１の実施形態では、プログラムベリファイ時にワード線の電位を切り替える必要がないため、書き込み時間を高速化することができる。
【００２５】
また、図１（ｃ）はリード動作時のワード線ＷＬ、ビット線ＢＬ、選択ゲートＳＧの波形を示している。図１（ｃ）から明らかなように、ワード線の電位を除き、本来のベリファイリード動作とリード動作が全く同じ動作になる。すなわち、ビット線の放電時間がプログラムベリファイ動作とリード動作とで等しくなるため、閾値電圧のずれを低減できる。このため、メモリセルに書き込まれたデータを確実に読み出すことが可能である。したがって、プログラムベリファイ動作とリード動作とのマージンを低減することが可能である。
【００２６】
図３（ａ）は、第１の実施形態におけるプログラムステップ回数と閾値電圧の変化を示し、図３（ｂ）は、ＱＰＷ方式におけるプログラムステップ回数と閾値電圧の変化を示している。図３（ｂ）に示す例の場合、閾値電圧が本来のベリファイレベル（ＡＶ）より低いベリファイレベル（ＡＶＬ）を超えると、次回からの書き込みにおいて、ビット線に中間電位（例えば０．７５Ｖ）を供給して書き込み速度を遅くしている。
【００２７】
一方、図３（ａ）に示す第１の実施形態において、閾値電圧が本来のベリファイレベル（ＡＶ）より低い場合、ワード線のレベルを変化させることなく、セル電流の放電速度でメモリセルの閾値電圧を検知している。このため、バックパターン（ＮＡＮＤセル内の他のセルが書き込まれたことによる特性の変化）などにより、Ｓ−ファクタ（ワード線の電位に対するセル電流）が変動する。したがって、検知レベルにばらつきが生じ、書き込み速度が遅くなる場合がある。
【００２８】
この場合、図３（ｃ）に示すように、次回の書き込みからビット線に供給する中間電位を通常の場合より低い中間電圧（例えば０．４Ｖ）として、書き込み速度を少し速くすると良い。
【００２９】
次に、第１の実施形態について具体的に説明する。
【００３０】
図４は、第１の実施形態に係る半導体記憶装置、具体的には例えば２値データを記憶するＮＡＮＤフラッシュメモリの構成を示している。
【００３１】
メモリセルアレイ１は複数のビット線と複数のワード線と共通ソース線を含み、例えばＥＥＰＲＯＭセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ１には、ビット線を制御するためのビット制御回路２とワード線制御回路６が接続されている。
【００３２】
ビット線制御回路２は、後述するように複数のデータ記憶回路及びフラグ用データ記憶回路を含んでいる。このビット線制御回路２は、ビット線を介してメモリセルアレイ１中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ１中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ１中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路２には、カラムデコーダ３、データ入出力バッファ４が接続されている。ビット線制御回路２内のデータ記憶回路はカラムデコーダ３によって選択される。データ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ４を介してデータ入出力端子５から外部へ出力される。
【００３３】
また、外部からデータ入出力端子５に入力された書き込みデータは、データ入出力バッファ４を介して、カラムデコーダ３によって選択されたデータ記憶回路に入力される。
【００３４】
ワード線制御回路６は、メモリセルアレイ１に接続されている。このワード線制御回路６は、メモリセルアレイ１中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
【００３５】
メモリセルアレイ１、ビット線制御回路２、カラムデコーダ３、データ入出力バッファ４、及びワード線制御回路６は、制御信号及び制御電圧発生回路７に接続され、この制御信号及び制御電圧発生回路７によって制御される。制御信号及び制御電圧発生回路７は、制御信号入力端子８に接続され、外部から制御信号入力端子８を介して入力される制御信号によって制御される。
【００３６】
前記ビット線制御回路２、カラムデコーダ３、ワード線制御回路６、制御信号及び制御電圧発生回路７は書き込み回路、及び読み出し回路を構成している。
【００３７】
図５は、図４に示すメモリセルアレイ１及びビット線制御回路２の構成を示している。メモリセルアレイ１には複数のＮＡＮＤセルが配置されている。１つのＮＡＮＤセルは、直列接続された例えば１６個のＥＥＰＲＯＭからなるメモリセルＭＣと、選択ゲートＳ１、Ｓ２とにより構成されている。選択ゲートＳ２はビット線ＢＬ０に接続され、選択ゲートＳ１はソース線ＳＲＣに接続されている。各ロウに配置されたメモリセルＭＣの制御ゲートはワード線ＷＬ０〜ＷＬ１３、ＷＬ１４、ＷＬ１５に共通接続されている。また、選択ゲートＳ２はセレクト線ＳＧＤに共通接続され、選択ゲートＳ１はセレクト線ＳＧＳに共通接続されている。
【００３８】
ビット線制御回路２は複数のデータ記憶回路１０を有している。各データ記憶回路１０には、一対のビット線（ＢＬ０、ＢＬ１）、（ＢＬ２、ＢＬ３）…（ＢＬｉ、ＢＬｉ＋１）、（ＢＬ８０４４、ＢＬ８０４５）が接続されている。
【００３９】
メモリセルアレイ１は、破線で示すように、複数のブロックを含んでいる。各ブロックは、複数のＮＡＮＤセルにより構成され、例えばこのブロック単位でデータが消去される。また、消去動作は、データ記憶回路１０に接続されている２本のビット線について同時に行なわれる。
【００４０】
また、ビット線の１つおきに配置され、１つのワード線に接続された複数のメモリセル（破線で囲まれた範囲のメモリセル）は、１セクタを構成する。このセクタ毎にデータが書き込まれ、読み出される。
【００４１】
リード動作、プログラムベリファイ動作及びプログラム動作時において、データ記憶回路１０に接続されている２本のビット線（ＢＬｉ、ＢＬｉ＋１）のうち外部より供給されるアドレス信号（ＹＡ１、ＹＡ２…ＹＡｉ…ＹＡ４０２３）に応じて１本のビット線が選択される。さらに、外部アドレスに応じて、１本のワード線が選択される。
【００４２】
図６、図７は、メモリセル及び選択トランジスタの断面図を示している。
【００４３】
図６（ａ）（ｂ）はメモリセル及び選択トランジスタの断面図を示している。図６（ａ）はメモリセルを示している。基板４１にはメモリセルのソース、ドレインとしてのｎ型拡散層４２が形成されている。基板４１の上にはゲート絶縁膜４３を介して浮遊ゲート（ＦＧ）４４が形成され、この浮遊ゲート４４の上には絶縁膜４５を介して制御ゲート（ＣＧ）４６が形成されている。図６（ｂ）は選択ゲートを示している。基板４１にはソース、ドレインとしてのｎ型拡散層４７が形成されている。基板４１の上にはゲート絶縁膜４８を介して制御ゲート４９が形成されている。
【００４４】
図７は、メモリセルアレイの１つのＮＡＮＤセルの断面を示している。この例において、１つのＮＡＮＤセルは、図６（ａ）に示す構成のメモリセルＭＣが１６個直列接続されて構成されている。ＮＡＮＤセルのソース側、ドレイン側には、図６（ｂ）に示す構成の選択ゲートＳ１及び選択ゲートＳ２が設けられている。
【００４５】
図８は、図５に示すデータ記憶回路１０の一例を示す回路図である。
【００４６】
このデータ記憶回路１０は、プライマリデータキャッシュ（ＰＤＣ）、ダイナミックデータキャッシュ（ＤＤＣ）、テンポラリデータキャッシュ（ＴＤＣ）を有している。ＰＤＣ、ＤＤＣは、書き込み時に入力データを保持し、読み出し時に読み出しデータを保持し、ベリファイ時に一時的にデータを保持し、多値データを記憶する際に内部データの操作に使用される。ＴＤＣは、データの読み出し時にビット線のデータを増幅し、一時的に保持するとともに、多値データを記憶する際に内部データの操作に使用される。
【００４７】
入出力データ線ＩＯはカラム選択トランジスタ６１ｅを介してＰＤＣのノードＮ１ｂに接続され、入出力データ線ＩＯｎはカラム選択トランジスタ６１ｆを介してＰＤＣのノードＮ１ａに接続されている。これらトランジスタ６１ｅ、６１ｆのゲートにはカラム選択信号ＣＳＬｉが供給されている。トランジスタ６１ｄはノードＮ１ａと接地間に接続されている。このトランジスタ６１ｄのゲートには信号ＰＲＳＴが供給されている。
【００４８】
ＰＤＣは、クロックドインバータ回路６１ｉ、６１ｊ及びトランジスタ６１ｋにより構成されている。トランジスタ６１ｋは、クロックドインバータ回路６１ｉの入力端とクロックドインバータ回路６１ｊの入力端の相互間に接続されている。このトランジスタ６１ｋのゲートには信号ＥＱ１が供給されている。ＰＤＣのノードＮ１ｂはトランジスタ６１ｌのゲートに接続されている。このトランジスタ６１ｌの電流通路の一端はトランジスタ６１ｍを介して接地されている。このトランジスタ６１ｍのゲートには信号ＣＨＫ１が供給されている。また、トランジスタ６１ｌの電流通路の他端には、信号ＣＯＭｉが供給されている。この信号ＣＯＭｉは全データ記憶回路１０に共通の信号であり、全データ記憶回路１０のベリファイが完了したかどうかを示す信号である。すなわち、後述するように、ベリファイが完了すると、ＰＤＣのノードＮ１ｂがローレベルとなる。この状態において、信号ＣＨＫ１をハイレベルとすると、ベリファイが完了している場合、信号ＣＯＭｉがハイレベルとなる。
【００４９】
さらに、ノードＮ１ａは、トランジスタ６１ｈを介してノードＮ３に接続されている。このトランジスタ６１ｈのゲートには信号ＢＬＣ１が供給されている。ノードＮ３と接地間には前記ＴＤＣが接続されている。ＴＤＣは、例えばＭＯＳキャパシタ６１ｐにより構成されている。また、接続ノードＮ３には、トランジスタ６１ｑを介してＤＤＣが接続されている。トランジスタ６１ｑのゲートには、信号ＲＥＧが供給されている。
【００５０】
ＤＤＣは、トランジスタ６１ｒ、６１ｓにより構成されている。トランジスタ６１ｒの電流通路の一端には信号ＶＲＥＧが供給され、他端は前記トランジスタ６１ｑの電流通路に接続されている。このトランジスタ６１ｒのゲートはトランジスタ６１ｓを介して前記ＰＤＣのノードＮ１ａに接続されている。このトランジスタ６１ｓのゲートには信号ＤＴＧが供給されている。
【００５１】
さらに、前記接続ノードＮ３にはトランジスタ６１ｔ、６１ｕの電流通路の一端が接続されている。トランジスタ６１ｕの電流通路の他端には信号ＶＰＲＥが供給され、ゲートにはＢＬＰＲＥが供給されている。前記トランジスタ６１ｔのゲートには信号ＢＬＣＬＡＭＰが供給されている。このトランジスタ６１ｔの電流通路の他端はトランジスタ６１ｖを介してビット線ＢＬｏの一端に接続され、トランジスタ６１ｗを介してビット線ＢＬｅの一端に接続されている。ビット線ＢＬｏの他端はトランジスタ６１ｘの電流通路の一端に接続されている。このトランジスタ６１ｘのゲートには信号ＢｌＡＳｏが供給されている。ビット線ＢＬｅの他端はトランジスタ６１ｙの電流通路の一端に接続されている。このトランジスタ６１ｙのゲートには信号ＢｌＡＳｅが供給されている。これらトランジスタ６１ｘ、６１ｙの電流通路の他端には、信号ＢＬＣＲＬが供給されている。トランジスタ６１ｘ、６１ｙは、信号ＢｌＡＳｏ、ＢｌＡＳｅに応じてトランジスタ６１ｖ、６１ｗと相補的にオンとされ、非選択のビット線に信号ＢＬＣＲＬの電位を供給する。
【００５２】
上記各信号及び電圧は、図４に示す制御信号及び制御電圧発生回路７により生成され、この制御信号及び制御電圧発生回路７の制御に基づき、以下の動作が制御される。
【００５３】
本メモリは、例えば２値メモリであり、１セルに例えば１ビットのデータを記憶することができる。
【００５４】
図９は、メモリセルのデータとメモリセルの閾値電圧の関係を示している。消去動作を行なうとメモリセルの閾値電圧は負となり、書き込み及び読み出されるデータは“１”となる。この状態より書き込み動作により閾値電圧を上げることにより、書き込み及び読み出されるデータが“０”となる。
【００５５】
（プログラム及びプログラムベリファイ）
図１０は、第１ページのプログラム動作を示している。図１０及び図８を参照してプログラム動作について説明する。
【００５６】
（データロード）（Ｓ１１）
プログラム動作は、先ずアドレスを指定し、図５に示す１つのセクタが選択される。次に、書き込むべきデータが外部より入力され、全てのデータ記憶回路１０内のＰＤＣに記憶される。外部よりデータ“１”（書き込みを行なわない）が供給された場合、ＰＤＣのノードＮ１ａはＨレベルになり、データ“０”（書き込みを行なう）が供給された場合、ＰＤＣのノードＮ１ａはＬレベルとなる。以後、ＰＤＣのデータはノードＮ１ａの電位、ＤＤＣのデータはノードＮ２の電位とする。
【００５７】
（データキャッシュの設定）（Ｓ１２）
書き込みコマンドが供給されると信号ＤＴＧが一瞬Ｈレベルとなり、ＰＤＣのデータがＤＤＣにコピーされる。
【００５８】
（プログラム）（Ｓ１３）
次に、信号ＢＬＣの電位をＶｄｄ＋Ｖｔｈ（Ｖｔｈ：ＮチャネルＭＯＳトランジスタの閾値電圧）とすると、ＰＤＣにデータ“１”（書き込みを行なわない）が記憶されている時、ビット線が電源電圧Ｖｄｄとなり、データ“０”（書き込みを行なう）が記憶されている時、ビット線が接地電位Ｖｓｓとなる。また、選択されたワード線に接続され、非選択ページ、すなわち、ビット線が非選択であるセルは、書き込みが行なわれてはならない。このため、これらのセルに接続されているビット線も電圧Ｖｄｄとされる。ここで、選択されているブロックのセレクト線ＳＧ１をＶｄｄとし、選択ワード線にＶｐｇｍ（例えば２０Ｖ）、非選択ワード線にＶｐａｓｓ（例えば１０Ｖ）を供給すると、ビット線がＶｓｓとなっている場合、セルのチャネルがＶｓｓ、ワード線がＶｐｇｍなるため、書き込みが行なわれる。一方、ビット線がＶｄｄになっている場合、セルのチャネルがＶｓｓでなくＶｐｇｍを上げることになり、カップリングでＶｐｇｍ／２程度となる。このため、プログラムが行われない。
【００５９】
ここで、信号ＢＬＣをＬレベル、信号ＲＥＧを中間電位（例えば０．７５＋Ｖｔｈ）とすると、ＰＤＣがＬレベルで、ＤＤＣがＨレベルの場合のみ、ビット線が中間電位となり、通常の書き込みより書き込み速度が遅くなり書き込みが少し行われる。一方、ＰＤＣがＬレベルで、ＤＤＣがＬレベルの場合、ビット線はＶｓｓのままである。このため、通常に書き込みが行われる。また、ＰＤＣがＨレベルの場合、書き込みは行われない。一回目のプログラム時（ベリファイ動作を行う前）、ＰＤＣ＝ＤＤＣとなっている。このため、ビット線が中間電位になることはない。図９に示すように、データ“０”を書き込む場合、メモリセルのデータを例えば“１”にする。また、データ“１”を書き込む場合、メモリセルのデータは“０”のままである。
【００６０】
（プログラムベリファイ）（Ｓ１４）
プログラムベリファイは、図５に示すように、選択されているブロックの選択ワード線にリード時の電位ＡＲ（例えば０Ｖ又は０．２Ｖ）より高いベリファイ電位ＡＶ（例えば０．８Ｖ）を供給し、非選択ワード線及びセレクト線ＳＧ１にＶｒｅａｄを供給する。これと同時に、信号ＶＰＲＥ＝Ｖｄｄ、信号ＢＬＰＲＥ＝Ｖｄｄ、信号ＢＬＣＬＡＭＰ＝Ｖｐｒｅ＋Ｖｔｈ（例えば０．７Ｖ＋Ｖｔｈ）としてビット線をプリチャージする。
【００６１】
次に、セルのソース側のセレクト線ＳＧＳをＨレベルとする。図１（ａ）、図２に示すように、非書き込みセル(1)、及び書き込み途中のセルで書き込み閾値電圧から遠いセル(2)は、電流を流すためビット線の電位はＬレベルとなる。しかし、書き込み途中のセルで、閾値電圧に近づいたセル(3)のセル電流は少ないため、ビット線の電位は、少ししか下がらない。また、書き込みが完了したセル(4)の場合、ビット線はＨレベルのままとなる。
【００６２】
ここで、データ記憶回路１０の信号ＶＰＲＥ＝Ｖｄｄ、信号ＢＬＰＲＥ＝Ｖｄｄ＋Ｖｔｈとして、ＴＤＣをＶｄｄにプリチャージする。この後、信号ＢＬＣＬＡＭＰ＝Ｖｓｅｎ０＋Ｖｔｈ（例えば０．６５Ｖ＋Ｖｔｈ）とすると、ビット線の電位が０．６５Ｖより高い場合、ＴＤＣ＝Ｈレベル、０．６５Ｖより低い場合、ＴＤＣ＝Ｌとなる。つまり、ＴＤＣは(1)と(2)の場合Ｌレベルとなり、(3)と(4)の場合Ｈレベルとなる（第１回目のベリファイＶＦ１）。
【００６３】
このビット線の検出電位Ｖｓｅｎ０は、本来のビット線の検出電位Ｖｓｅｎ（例えば０．４５Ｖ）より高いレベルで判断してもよいし、同じで電位でも可能である。
【００６４】
ここで、信号ＶＰＲＥ＝Ｖｄｄ、信号ＲＥＧ＝Ｖｄｄとすると、ＤＤＣ＝Ｈレベルの場合、つまり、書き込み非選択、若しくは第１回目のプログラムベリファイでＨレベルとなった場合、ＴＤＣは強制的にＨレベルとなる。この後、信号ＤＴＧ＝Ｖｄｄ＋ＶｔｈとしてＰＤＣのデータをＤＤＣにコピーする。この後、信号ＢＬＣ＝Ｖｄｄ＋ＶｔｈとしてＴＤＣの電位をＰＤＣに取り込む。ＰＤＣ＝Ｈレベルとなるのは、書き込み非選択セル、又は(3)、(4)のセルである。一方、ＰＤＣ＝Ｌレベルとなるのは、(1)、(2)のセルである。
【００６５】
さらに、ビット線の放電を続けると、書き込み途中のセル(3)のビット線も放電されてＬレベルとなる。したがって、書き込みが完了したセルのみ、ビット線の電位がＨレベルとなる。
【００６６】
ここで、データ記憶回路の信号ＶＰＲＥ＝Ｖｄｄ、信号ＢＬＰＲＥ＝Ｖｄｄ＋Ｖｔｈとして、ＴＤＣをＶｄｄにプリチャージした後、信号ＢＬＣＬＡＭＰをＶｓｅｎ＋ｖｔｈ（例えば０．４５Ｖ＋Ｖｔｈ）とする。すると、ビット線の電位が０．４５Ｖより高い場合、ＴＤＣがＨレベル、０．４５Ｖより低い場合、ＴＤＣ＝Ｌレベルとなる。つまり、ＴＤＣは、(1)と(2)と(3)の場合Ｌレベルとなり、(4)の場合Ｈレベルとなる（第２回目のベリファイＶＦ２）。
【００６７】
ここで、信号ＶＰＲＥ＝Ｖｄｄ、信号ＲＥＧ＝Ｖｄｄとすると、ＤＤＣ＝Ｈレベルの場合、つまり、書き込み非選択もしくは、第２回目のプログラムベリファイでＨレベルとなった（プログラム完了した）場合、ＴＤＣは強制的にＨレベルとなる。この後、信号ＤＴＧ＝Ｖｄｄ＋ＶｔｈとしてＰＤＣのデータをＤＤＣにコピーした後、信号ＢＬＣ＝Ｖｄｄ＋ＶｔｈとしてＴＤＣの電位をＰＤＣに取り込む。ＰＤＣ＝Ｈレベルとなるのは、書き込み非選択のセル、又は書き込みが完了したセルである。一方、ＰＤＣ＝Ｌレベルとなるのは、書き込みが不完全のセルである。
【００６８】
図１１（ａ）（ｂ）（ｃ）は、データキャッシュに記憶されているデータと書き込みセルの関係を示している。
【００６９】
この後、全データ記憶回路のＰＤＣのデータがＨレベルとなるまでプログラム及びベリファイが繰り返される。プログラム中にＤＤＣがＨレベルの場合、ビット線には中間電位を供給し、書き込み速度を遅くすることにより、セルの閾値電圧分布幅を抑える。
【００７０】
（リード）
リード動作は、図５に示す選択されているブロックの選択ワード線にリード時の電位ＡＲ（例えば０Ｖ又は０．２Ｖ）を供給し、非選択ワード線及びセレクト線ＳＧＤにＶｒｅａｄを供給する。これと同時に、図８に示すデータ記憶回路の信号ＶＰＲＥ＝Ｖｄｄ、信号ＢＬＰＲＥ＝Ｖｄｄ、信号ＢＬＣＬＡＭＰ＝Ｖｐｒｅ＋Ｖｔｈ（例えば０．７Ｖ＋Ｖｔｈ）としてビット線をプリチャージする。
【００７１】
次に、セルのソース側のセレクト線ＳＧＳをＨレベルとする。
【００７２】
図１（ｃ）は、リード動作時のワード線ＷＬ及びビット線ＢＬの電位を示している。リード動作は、プログラムベリファイ動作で行った第２回目のベリファイのみ行うことも可能である。しかし、プログラムベリファイと全く同じ動作とするほうが、プログラムベリファイ動作とリード動作とのマージンを減らすことが可能である。このため、プログラムベリファイ時と同じように、データ記憶回路の信号ＶＰＲＥ＝Ｖｄｄ、信号ＢＬＰＲＥ＝Ｖｄｄ＋Ｖｔｈとして、ＴＤＣをＶｄｄにプリチャージする。この後、信号ＢＬＣＬＡＭＰ＝Ｖｐｒｅ＋ｖｔｈ（例えば０．７Ｖ＋Ｖｔｈ）とした後、ビット線の放電を続ける。この後、再び、データ記憶回路の信号ＶＰＲＥ＝Ｖｄｄ、信号ＢＬＰＲＥ＝Ｖｄｄ＋Ｖｔｈとして、ＴＤＣをＶｄｄにプリチャージした後、信号ＢＬＣＬＡＭＰ＝Ｖｓｅｎ＋ｖｔｈ（例えば０．４５Ｖ＋Ｖｔｈ）とする。ビット線の電位が０．４５Ｖより高い場合、ＴＤＣ＝Ｈレベル、０．４５Ｖより低い場合、ＴＤＣ＝Ｌレベルとなる。この後、信号ＢＬＣ＝Ｖｄｄ＋Ｖｔｈとして、ＴＤＣの電位をＰＤＣに取り込む。図９に示すように、書き込み及び読み出されるセルのデータが“１”の場合、ＰＤＣ＝Ｌレベル、データが“１”の場合、ＰＤＣ＝Ｈレベルとなる。しかし、外部にはこれらのデータが反転して出力される。
【００７３】
（イレーズ）
イレーズ動作は、図５に示す１ブロック単位で一括して消去される。消去が行われると、図９に示すように、書き込み及び読み出されるセルのデータは“１”となる。
【００７４】
（第１の実施形態の変形例）
（第１回目ベリファイの検出電位（Ｖｓｅｎ０）、若しくは検出タイミングの変更）
プログラムとイレーズを繰り返すとセルに流れる電流が減少し、図１２に(2)で示すように、Ｖｇ−Ｉｄ特性の傾きが小さくなる。このため、書き込み途中のセルで、閾値電圧まで遠いセル(2)でも、第１回目のベリファイでＰＤＣがＨレベルとなる場合が多くなってくる。ＰＤＣがＨレベルとなると、次回のプログラム時に中間電位が供給されるため書き込みスピードが遅くなる。したがって、本来の閾値電圧になかなか達成しないため、本来の閾値電圧に達成するまでのプログラムベリファイのループ回数が多くなってしまうという問題が生じる。
【００７５】
そこで、例えば図４に示す制御信号及び制御電圧発生回路７内にカウンタを設け、このカウンタにより、数ページ、若しくは数ブロックの書き込み毎のループ回数を計数し、この計数されたループ回数が設定値より多い場合、Ｖｓｅｎ０のレベルを上げる、又は第１回目のベリファイを少し遅らせることにより、ＰＤＣがＨレベルとなり難くするように調整する。
【００７６】
図１３は、プログラムベリファイ動作を示している。図１３において、図１０と同意値部分には同一符号を付している。図１３に示すように、データをロードし、ＰＤＣのデータをＤＤＣにコピーした後、プログラムループカウンタＰＬＣにより数ページ、又は数ブロックの書き込み毎のループ回数ＰＬＣ１、ＰＬＣ２…ＰＬＣｎを計数する（Ｓ２１、Ｓ２２）。ここで、ＰＣＬ１は１つ前のプログラムでのループ回数、ＰＣＬ２は２つ前のプログラムでのループ回数、ＰＣＬｎはｎ回前のプログラムでのループ回数である。次に、これらループ回数の平均値ＡＰＣ（ＰＬＣ１＋ＰＬＣ２＋…＋ＰＬＣｎ／ｎ）を求める（Ｓ２３）。すなわち、カウンタの計数値をプログラム回数で割ることにより、ループ回数の平均値ＡＰＣを求めることができる。この平均値ＡＰＣの値が、規定値以上である場合、ベリファイ時のＶｓｅｎ０のレベルを上げるか、又は第１回目のベリファイのタイミングを遅くする（Ｓ２４、Ｓ２５）。ベリファイのタイミングを遅くらせるためには、例えばデータ記憶回路１０の信号ＶＰＲＥ及びＢＬＰＲＥの発生タイミングを遅らせばよい。このような構成とすることにより、プログラムベリファイの回数を削減することが可能である。
【００７７】
プログラムベリファイの回数を削減する他の方法として、例えば図４に示す制御信号及び制御電圧発生回路７内にブロック毎にイレーズ回数を計数するカウンタを設け、図５に示すメモリセルアレイ内に、ブロック毎にイレーズ回数を記憶する例えば複数のセルを設けておき、このセルに記憶されたイレーズ回数が規定値より多い場合、上記と同様な手段によりＰＤＣがＨレベルとなり難くするように調整することも可能である。
【００７８】
図１４は消去時の動作を示している。データを消去する際、先ず、イレーズ回数を記憶するセルからイレーズ回数ＥＬＣを読み出し、図示せぬレジスタに格納する（Ｓ３１，Ｓ３２）。次いで、選択されたブロックを消去し、消去が十分かどうかベリファイする（Ｓ３３，Ｓ３４）。消去が完了されるまで上記動作が繰り返される（Ｓ３５，Ｓ３３，Ｓ３４）。消去が完了した場合、レジスタに格納されたイレーズ回数ＥＬＣがカウントアップされる（Ｓ３６）。次いで、カウントアップされたイレーズ回数ＥＬＣがセルに書き込まれる。この書き込み動作は、上記プログラム動作と同様である。すなわち、プログラムループ回数を計数するカウンタＰＬＣがリセットされ、イレーズ回数ＥＬＣが所定のセルにプログラムされる（Ｓ３７，Ｓ３８）。この後、全てのＰＤＣが“１”となるまで、プログラム及びベリファイが繰り返される（Ｓ３９，Ｓ４０，Ｓ４１，Ｓ３８）。このようにして、メモリセルがイレーズされる毎にイレーズ回数ＥＬＣが計数され、メモリセルに記憶される。
【００７９】
図１５は、プログラム時の動作を示している。図１５において、図１０と異なるのは、プログラムの前に、先ずメモリセルに記憶されたイレーズ回数ＥＬＣが読み出される（Ｓ５１）。このイレーズ回数ＥＬＣが規定値より大きい場合、検出電位Ｖｓｅｎ０を上げるか、ベリファイのタイミングが遅らされる（Ｓ５２，Ｓ５３）。
【００８０】
上記構成とすることにより、プログラムとイレーズを繰り返すことによるセルの劣化に対応して、プログラム時間を短縮することができる。
【００８１】
尚、イレーズ回数は、ブロック単位に記憶したが、これに限定されるものではなく、例えばページ単位に消去可能な場合は、ページ単位にイレーズ回数を計数して記憶させることも可能である。
【００８２】
また、検出電位Ｖｓｅｎ０の変更、若しくは第２回目のベリファイタイミングの変更は、プログラムとイレーズを繰り返すことによるセルの劣化とは無関係に、例えばワード線毎、又はブロック毎に設定値を変更することも可能である。
【００８３】
（第２の実施形態）
第１の実施形態において、プログラムベリファイ動作では、非書き込みセルのビット線にもプリチャージを行い放電させていた。しかし、図４に示すように非書き込みセルが多い場合、ソース線（ＳＲＣ）に流れる電流が大きい。このため、ソース線がフローティング状態となり、ソース線の電位が上昇してしまう。したがって、本来ベリファイすべき書き込みセルの電流がなかなか流れないことがある。そこで、第２の実施形態は、本来ベリファイすべき書き込みセルのビット線のみプリチャージする。
【００８４】
（プログラム）
プログラム動作は、第１の実施形態と同様である。第１の実施形態と異なるのは、ワード線の電位のリカバリー中に、ＰＤＣのデータを反転させることである。
【００８５】
図１６は、データキャッシュに記憶されているデータと書き込みセルの関係を示している。すなわち、プログラムリカバリ後、及びＰＤＣのデータを反転した後の状態を示している。
【００８６】
（ＰＤＣデータの反転）
ＰＤＣのデータを反転させるには、次のような操作を行なう。信号ＶＰＲＥ＝Ｖｓｓ、信号ＢＬＰＲＥ＝ＶｄｄとしてＴＤＣ＝Ｖｓｓとした後、信号ＶＲＥＧ＝Ｖｄｄ、信号ＲＥＧ＝Ｖｄｄ＋Ｖｔｈとする。すると、ＤＤＣ＝Ｈレベルの場合、ＴＤＣ＝Ｈレベルとなる。しかし、ＤＤＣ＝Ｌレベルの場合、ＴＤＣ＝Ｌレベルのままとなる。次に、信号ＤＴＧ＝Ｖｄｄ＋ＶｔｈとしてＰＤＣのデータをＤＤＣにコピーする。この後、信号ＢＬＣ＝Ｖｄｄ＋ＶｔｈとしてＴＤＣのデータをＰＤＣにコピーする。ＰＤＣのデータはＤＤＣに、ＤＤＣのデータはＰＤＣに移る。
【００８７】
次に、信号ＶＰＲＥ＝Ｖｄｄ、信号ＢＬＰＲＥ＝Ｖｄｄ＋ＶｔｈとしてＴＤＣ＝Ｖｄｄとした後、信号ＶＰＲＥ＝Ｖｓｓ、信号ＲＥＧ＝Ｖｄｄとする。すると、ＤＤＣ＝Ｈレベルの場合、ＴＤＣ＝Ｌレベルとなる。しかし、ＤＤＣ＝Ｌレベルの場合、ＴＤＣ＝Ｈレベルのままとなる。
【００８８】
次に、信号ＤＴＧ＝Ｖｄｄ＋ＶｔｈとしてＰＤＣのデータをＤＤＣにコピーする。この後、信号ＢＬＣ＝Ｖｄｄ＋ＶｔｈとしてＴＤＣのデータをＰＤＣにコピーする。ＰＤＣのデータはＤＤＣに移り、ＤＤＣのデータは反転してＰＤＣに移る。
【００８９】
（プログラムベリファイ）
プログラムベリファイは第１の実施形態とほぼ同様である。しかし、信号ＢＬＣ＝Ｖｓｇ＋ＶｔｈとしてＰＤＣ＝Ｈレベル、つまり、書き込みセルのビット線のみプリチャージする。また、ビット線の放電中、第１回目のベリファイの前又は後で、第２回目のベリファイの前に、プログラムリカバリ中に行ったように、データキャッシのデータを反転させて元に戻す。第１回目のベリファイ前にデータキャッシのデータを反転させ元に戻すには、プログラムリカバリ中で行った、ＰＤＣのデータと同様の動作をして反転させればよい。しかし、第１回目のベリファイ後にデータキャッシのデータを反転させ元に戻すには、ＤＤＣのデータを反転させる。その他の動作は、第１の実施形態の動作と同様とする。
【００９０】
第２の実施形態によれば、ベリファイすべき書き込みセルのビット線のみプリチャージしている。このため、ソース線ＳＲＣに流れる電流を低減してソース船ＳＲＣがフローティング状態となることを防止できる。したがって、ベリファイすべきセルに電流を流すことができるため、閾値電圧の分布を狭めることが可能である。
【００９１】
（第３の実施形態）
図１７は、第３の実施形態の動作を示している。第１、第２の実施形態において、ベリファイ時のビット線放電中において、ソース線をＶｓｓとしていた。しかし、図１７に示すように、ソース線ＳＲＣの電位をプログラム開始から第１回目のベリファイまでの間、Ｖｘｘ（例えば０．２Ｖ）にする。すると、見かけ上セルに供給されている電位は、ベリファイ電位ＡＶ−Ｖｘｘとなり、図１（ｂ）に示すように、本来のベリファイ電位ＡＶより低い電位ＡＶＬと同じ電位を供給したこととなる。このようにして、第１回目のベリファイ動作を行った後、ソース線ＳＲＣの電位を接地電位として第２回目のベリファイ動作を行う。
【００９２】
第３の実施形態によれば、ソース線の容量がワード線の容量より軽いため、高速にベリファイ動作を行うことが可能である。
【００９３】
尚、第３の実施形態において、ソース線のみ電位をＶｘｘ（例えば０．２Ｖ）とすると、セルはバックバイアス効果により閾値電圧が若干上がってしまう場合がある。この場合、メモリセルが形成されている図示せぬウェルの電位もＶｘｘ（例えば０．２Ｖ）にすることにより、セルの閾値電圧の上昇を抑制できる。
【００９４】
（第４の実施形態）
第１乃至第３の実施形態は、メモリセルに２値データを記憶する場合について説明したで説明したが、１セルに複数ビットを記憶する多値メモリにも応用することが可能である。
【００９５】
図１８は、例えば３値の場合に適用されるデータ記憶回路１０の一例を示している。図１８に示すデータ記憶回路１０は、図８に示すデータ記憶回路１０と異なり、ＳＤＣ（Secondly Data Cache）、信号ＣＯＭｉを転送するトランスファゲートとしてのトランジスタ６１ｎ、６１ｏ、及びトランジスタ６１ｇをさらに有している。
【００９６】
また、図５に示すメモリセルアレイ１の各ロウには、図示せぬフラグセルが設けられ、これらフラグセルに接続されたビット線は、フラグセル用のデータ記憶回路に接続される。各フラグセルには、第２ページのデータが書き込まれた場合、第２ページのデータが書き込まれたことを示すデータが記憶される。
【００９７】
図１９は、３値のデータをプログラムするためのシーケンスを示し、図２０は、プログラム動作に伴うメモリセルの閾値電圧の変化を示している。
【００９８】
図２０に示すように、３値のデータを書き込む場合、セルの閾値電圧を、消去状態から“Ａ”又は“Ｂ”のレベル移す。このため、図１９に示すように、第４の実施形態の場合、ベリファイレベル“Ａ”でのベリファイ（Ｓ１４）と、ベリファイレベル“Ｂ”でのベリファイ（Ｓ６１）が行なわれる。ベリファイレベル“Ｂ”でのベリファイは、第１乃至第３の実施形態と同様である。しかし、“Ａ”のレベルに書き込んでいるセルのベリファイを“Ｂ”のレベルに書き込んでいるセルと同様に行なうと、“Ｂ”のレベルに書き込んでいて未だ“Ｂ”のレベルに達しないセルもベリファイをパスしてしまう。したがって、書き込みシーケンス中、“Ｂ”のレベルへ書き込む場合、図１８に示すデータ記憶回路１０におけるＳＤＣのノードＮ２ｂをＨレベルとし、“Ａ”のレベルに書き込む場合、ノードＮ２ｂをＬレベルとする。ベリファイレベル“Ａ”でのベリファイ時、ビット線の電位をＴＤＣに取り込んだとき、ＴＤＣがＨレベルとなるのは“Ａ”のレベルより閾値電圧が高い場合である。このため、信号ＢＬＣ２を例えばＶｔｈ＋０．１Ｖとして、ＴＤＣを強制的にＬレベルとすることにより、“Ｂ”のレベルに書き込んでいる場合、ＴＤＣをＬレベルとしてベリファイをパスしないようにする。
【００９９】
第４の実施形態によれば、多値データを記憶する場合においても、ベリファイ動作を高速化することが可能である。
【０１００】
（第５の実施形態）
上記各実施形態は、図２１に示すように、プログラムベリファイのリード動作において、低めのベリファイレベルａ＊を超えるか、又はセルに流れる電流Ｉｃｅｌｌが少ない場合、次回の書き込みにおいて、ビット線に中間電位（例えば１Ｖ）を供給し、書き込み速度を遅くしている。
【０１０１】
これに対して、第５の実施形態は、図２２に示すように、プログラムベリファイのリード動作において、低めのベリファイレベルａ＊＊を超えるか、又はセルに流れる電流Ｉｃｅｌｌが少ない場合、次回の書き込みにおいて、ビット線に中間電位（例えば１．２Ｖ）を供給して少し書き込み速度を遅くする。また、ａ＊を超えるか、又はセル電流Ｉｃｅｌｌが上記より更に少ない場合、次回の書き込みでは、ビット線に中間電位（例えば０．４Ｖ）を供給し、上記より更に少し書き込み速度を遅くして書き込みを繰り返し行うことにより、閾値電圧分布を狭めている。
【０１０２】
図２３は、第５の実施形態に適用されるデータ記憶回路１０の一例を示している。ベリファイレベルでａ＊＊を超える、ａ＊を超える及び書き込みか非書き込み状態は、ＤＤＣ、ＤＤＣ２、ＰＤＣにそれぞれ記憶される。
【０１０３】
第５の実施形態では、ａ＊＊、ａ＊の２つレベルを設けたが、更に、複数のレベルを設けることも可能である。
【０１０４】
第５の実施形態によれば、ベリファイ時にビット線に供給する中間電位を増加することにより、書き込み速度を適正化することができ、セルに書き込む閾値電圧の分布を狭めることが可能である。また、複数の中間電位を用いて書き込み速度を遅くしているが、一度の書き込み時間は大きく増加しない。このため、プログラムベリファイの高速化を妨げることはない。
【０１０５】
（第６の実施形態）
図１（ｂ）では、ベリファイ時にワード線ＷＬの電位を本来のベリファイ電位ＡＶより低い電位ＡＶＬに設定し、この後、本来のベリファイ電位ＡＶとしていた。しかし、ベリファイ電位をこのように設定した場合、図２４に示すように、Ｌｏｇ（Ｉ）−Ｖ特性がセル電流の劣化等により、特性Ｃ１に比べて傾斜が小さい特性Ｃ２のようになった場合、ベリファイ電位ＡＶＬでも電流を流してしまう。このため、セルの閾値電圧が書き込みターゲットの閾値電圧（ＡＶ）より高めになってしまう場合がある。
【０１０６】
第１乃至第５の実施形態は、ベリファイ時にワード線の電位を変化させないことにより、ベリファイ時のワード線の電位とリード時のワード線の電位をほぼ等しくすることのより、読み出し時のマージンを削減していた。すなわち、リード時のワード線の電位にベリファイ時のワード線の電位を揃えていた。
【０１０７】
これに対して、第６の実施形態は、図２５に示すように、リード動作時も、図１（ｂ）に示すベリファイ動作と同様に、ワード線の電位を変化させる。例えばワード線ＷＬの電位を先ず実際のリードレベルより低いレベル（ＡＲＬ）に設定し、電流を放電させる。この後、ワード線ＷＬの電位を実際のリードレベル（ＡＲ）にする。このような動作により、リード動作とベリファイ動作を同じ条件とすることができるため、データリード時のマージンを必要以上に広げる必要がなく、確実にメモリセルに記憶されたデータを読み出すことが可能である。
【０１０８】
（第７の実施形態）
図２６は、４値により１つのメモリセルに２ビットを記憶する場合の書き込み順序を示しており、図２７、２８は、ベリファイレベルを変化させる場合における４値の書き込み動作を示すフローチャートを示している。図２７は、第１ページのプログラム動作の一例を示し、図２８は、第２ページのプログラム動作の一例を示している。
【０１０９】
図２６（ａ）に示すように、消去動作を行なうとメモリセルのデータは“０”となり、第１ページの書き込みによりメモリセルのデータは、外部からのデータが非書き込み“１”の場合、“０”のままとなり、外部からのデータが書き込み“０”の場合、“１”となる。
【０１１０】
また、図２６（ｃ）に示すように、第２ページの書き込みにおいて、メモリセルのデータが“０”であり、外部からのデータが非書き込み“１”の場合、メモリセルのデータは“０”のままとなり、外部からのデータが書き込み“０”の場合、メモリセルのデータは”２”となり、メモリセルのデータが“１”であり、外部からのデータが非書き込み“１”の場合、メモリセルのデータは“４”となり、外部からのデータが書き込み“０”の場合、メモリセルのデータは“３”となる。
【０１１１】
第１ページの書き込みは、閾値分布幅が大きくても構わない。このため、図２４に示すように、Ｌｏｇ（Ｉ）−Ｖ特性がセル電流の劣化等により、特性Ｃ１に比べて傾斜が小さい特性Ｃ２のようになった場合、セルの閾値電圧が書き込みターゲットの閾値電圧より高めになってしまう場合があるが問題はない。しかし、第２ページの書き込みは、閾値電圧の分布幅を狭くしなくてはならない。この時、図２４に示すように、Ｌｏｇ（Ｉ）−Ｖ特性がセル電流の劣化等により、特性Ｃ１に比べて傾斜が小さい特性Ｃ２のようになった場合、ベリファイ電位ＡＶＬでもセルは電流を流してしまう。このため、セルの閾値電圧が書き込みターゲットの閾値電圧（ＡＶ）より高めになってしまう場合が起こると、閾値電圧の分布幅が広っがてしまう。この原因は、例えばベリファイ電位ＡＶＬとＡＶの差が狭いためである。
【０１１２】
図２８に示す第２ページのプログラム動作において、ベリファイ（ＡＶＬ／ＡＶ）（Ｓ７０）を図１（ｂ）に示すように、ビット線のプリチャージと同時に、ワード線の電位を本来のベリファイレベルであるＡＶより低いＡＶＬとして第１回目のベリファイを行い。この後、ワード線の電位を本来のベリファイレベルであるＡＶとして第２回目のベリファイ動作を行なっていた。ベリファイ（ＢＶＬ／ＢＶ）（Ｓ７１）もベリファイ（ＡＶＬ／ＡＶ）と同様に、本来のベリファイレベルであるＢＶより低いＢＶＬと本来のベリファイレベルＢＶによりベリファイ動作を行なっていた。
【０１１３】
これに対して、第７の実施形態は、図２９に示す第２ページのプログラムにおいて、ベリファイ（ＡＶＬ／ＢＶＬ）（Ｓ８０）で、本来のベリファイレベルＡＶ／ＢＶより低いベリファイレベル（ＡＶＬ／ＢＶＬ）でのベリファイのみを行なう。
【０１１４】
先ず、ビット線をプリチャージすると同時に、ワード線の電位をＡＶＬにして第１回目のＡレベルのベリファイ動作を行なう。この後、ワード線の電位をＡＶＬからＢＶＬに変化させ、第２回目のＢレベルのベリファイ動作を行う。
【０１１５】
次に、ベリファイ（ＡＶ／ＢＶ）（Ｓ８１）において、本来のベリファイレベル（ＡＶ／ＢＶ）でベリファイ動作を行なう。すなわち、ビット線をプリチャージすると同時に、ワード線の電位をＡＶとして第１回目のＡレベルのベリファイ動作を行なう。この後、ワード線の電位をＡＶからＢＶに変化させ、第２回目のＢレベルのベリファイ動作を行なう。ベリファイレベルＡＶＬとＢＶＬ、及びＡＶとＢＶの電位差は大きいため、図２４に示すような問題は起こらず、閾値分布を狭め且つ高速に書き込むことが可能である。
【０１１６】
図３０、３１は、ベリファイレベルを変化させる場合のリード動作のフローチャートを示している。図３０は、第１ページのリード動作を示し、図３１は、第２ページのリード動作を示している。
【０１１７】
図３０に示す第１ページのリードは、リードレベルＢＲでデータをリードする（Ｓ９１）。このリード結果をＰＤＣからＳＤＣへ転送する（Ｓ９２）。この後、第２ページが書き込みを行なったかどうかを区別をするためのフラグセル（第２ページの書き込みの時に書き込まれる）のデータが判別される（Ｓ９３）。フラグセルにデータが書き込まれてい場合、このデータが出力される（Ｓ９４）。また、フラグセルに書き込まれていない場合（第２ページは書き込まれていない場合）、リードレベルＡＲにより再度データをリードし、外部にデータを出力する（Ｓ９５，Ｓ９６，Ｓ９４）。
【０１１８】
これに対して、第７の実施形態に係る第１ページのリード動作は、図３２に示すように、リードレベルＡＲとＢＲのリード動作をベリファイ動作と同様に行なう。すなわち、ビット線を一回プリチャージした後、ワード線の電位をＡＲとしてデータ読み出し、この後、ワード線の電位をＢＲに変化させ再度、データを読み出している（Ｓ１１１）。これにより、ベリファイ時とリード時の動作を同じ条件とすることができる。このため、データリード時のマージンを必要以上に広げる必要がなく、確実にメモリセルに記憶されたデータを読み出すことが可能である。この時、リードレベルＡＲでのリード結果はＤＤＣに保持し、ＢＲでのリード結果はＰＤＣに保持する。
【０１１９】
この後、ＰＤＣからＳＤＣへデータを転送する（Ｓ１１２）。次いで、第２ページの書き込みを行なったかどうか区別をするためのフラグセルが判別される（Ｓ１１３）。この結果、フラグセルが書き込まれていた場合、このデータを出力する（Ｓ１１４）。また、フラグセルに書き込まれていない場合（第２ページが書き込まれていない場合）、ＤＤＣに保持されているリードレベルＡＲでのリード結果をＳＤＣへ転送し（Ｓ１１５）、外部にデータを出力する（Ｓ１１４）。
【０１２０】
第７の実施形態によれば、第１ページのリードにおいて、第２ページの書き込みが行われていない場合、２回のリードシーケンスが必要であったのが１回で済むため、読み出し読み出し速度を高速化することが可能である。
【０１２１】
尚、第２ページのリードシーケンスは、第１ページのリード動作において、一回のプリチャージ後、ワード線の電位を変化させる場合と、変化させない場合も同様である。  すなわち、図３１に示すように、ビット線をプリチャージした後、ワード線の電位をＣＲとしてメモリセルからデータが読み出される（Ｓ１０１）。この後、ビット線をプリチャージした後、ワード線の電位をＡＲとしてメモリセルからデータが読み出される（Ｓ１０２）。次いで、ＰＤＣのデータがＳＤＣに転送される（Ｓ１０３）。この後、フラグセルのデータが判別される（Ｓ１０４）。この結果、第２ページが書き込まれていない場合、データが“１”に固定されて出力される（Ｓ１０５）。また、第２ページが書き込まれている場合、ＳＤＣのデータが出力される（Ｓ１０６）。
【０１２２】
（第８の実施形態）
図３３、図３４は、第７の実施形態を変形した第８の実施形態を示している。図３３において、図３２と同一部分には同一符号を付し、図３４において、図３１と同一部分には同一符号を付している。
【０１２３】
第８の実施形態は、メモリセルアレイ内にさらに別のフラグセルを設け、このフラグセルに記憶されたデータにより、ページに不良が発生しているかどうかを認識可能としている。すなわち、図５に示すメモリセルアレイ１の各ロウに図示せぬフラグセルを設け、このフラグセルの接続されたビット線にフラグセル用のデータ記憶回路を接続する。この構成において、ページに不良が発生した場合、この不良ページに対応するフラグセルにデータを書き込む。第１ページの書き込み時に不良が発生した場合、フラグセルに第１ページに対応して不良ページを示すデータ例えば“０”を書き込む。また、第２ページの書き込み時に不良が発生した場合、フラグセルに第２ページに対応して不良ページを示すデータ例えば“０”を書き込む。
【０１２４】
図３３に示す第１ページのリード時に、フラグセルの第１ページに不良ページを示すデータ“０”が書き込まれているかどうかが判別される（Ｓ１２１）。この結果、不良ページを示すデータが書き込まれていない場合、前述したようにデータが出力される。また、不良ページを示すデータが書き込まれている場合、第１ページの全出力データを“０”に固定する（Ｓ１２２）。これにより、第１ページが不良ページであることを認識することができる。
【０１２５】
図３４に示す第２ページのリード時も、フラグセルの第２ページに不良ページを示すデータ“０”が書き込まれているかどうかが判別される（Ｓ１３１）。この結果、不良ページを示すデータが書き込まれていない場合、前述したようにデータが出力される。また、不良ページを示すデータが書き込まれている場合、第２ページの全出力データを“０”に固定する（Ｓ１３２）。これにより、第２ページが不良ページであることを認識することができる。
【０１２６】
尚、不良ページであることを判別するフラグは、第１ページ用、第２ページ用と独立としたが、第１ページと第２ページは同じセルであるため、例えば第１ページが不良の場合、第２ページも不良である場合がある。従って、不良ページであることの判別フラグを１つとし、このフラグが書き込まれている場合、第１ページ及び第２ページともに、出力データを固定することも可能である。
【０１２７】
また、第５、第６、第７の実施形態では、図１（ｂ）に示すように、ビット線を１度プリチャージした後、ワード線を立ち上げ、この後、選択ゲートをオンさせて、第１回目のビット線電位の読み出しを行い。続いて、ワード線の電位を変化させ、第２回目のビット線電位の読み出しを行なっていた。
【０１２８】
しかし、図３５に示すように、ビット線ＢＬを１度プリチャージした後、ワード線ＷＬを電位ＡＶＬに立ち上げ、この後、選択ゲートＳＧをオンさせ、第１回目のビット線電位の読み出しを行い。次いで、選択ゲートＳＧをオフさせ、ワード線の電位をＡＶに変化させた後、選択ゲートＳＧを再度オンさせ、第２回目のビット線電位の読み出を行なうことも可能である。このようにした場合、容量及び抵抗が大きいワード線において、ワード線の立ち上がり速度が、ワード線の根元と先で異なることによるビット線の放電速度の違いを防止することが可能である。
【０１２９】
尚、本発明は、上記各実施形態に限定されるものではなく、発明の要旨を変えない範囲において、種々変形実施可能なことは勿論である。
【図面の簡単な説明】
【０１３０】
【図１】図１（ａ）は第１の実施形態に係るワード線及びビット線の電位を示す図であり、図１（ｂ）は、ワード線の電位を変えるプログラムベリファイ動作を示す図であり、図１（ｃ）は、リード動作時のワード線ＷＬ及びビット線ＢＬの電位を示している。
【図２】図１（ａ）に対応し、セルのＶｇ−Ｉｄ（ゲート電圧−ドレイン電流）特性を示す図。
【図３】図３（ａ）は、第１の実施形態におけるプログラムステップ回数と閾値電圧の変化を示す図であり、図３（ｂ）は、ＱＰＷ方式におけるプログラムステップ回数と閾値電圧の変化を示す図であり、図３（ｃ）は、図３（ａ）の変形例を示す図である。
【図４】第１の実施形態に係る半導体記憶装置を示す構成図。
【図５】図４に示すメモリセルアレイ１及びビット線制御回路２の構成を示す回路図。
【図６】図６（ａ）（ｂ）はメモリセル及び選択トランジスタの断面図。
【図７】メモリセルアレイの１つのＮＡＮＤセルを示す断面図。
【図８】図５に示すデータ記憶回路の一例を示す回路図。
【図９】第１の実施形態に係るメモリセルのデータとメモリセルの閾値電圧の関係を示す図。
【図１０】第１ページのプログラム動作を示すフローチャート。
【図１１】データキャッシュに記憶されているデータと書き込みセルの関係を示す図。
【図１２】第１の実施形態の変形例を示すものであり、Ｖｇ−Ｉｄ特性の一例を示す図。
【図１３】第１の実施形態の変形例の動作を示すフローチャート。
【図１４】第１の実施形態の変形例を示すものであり、消去時の動作を示すフローチャート。
【図１５】第１の実施形態の変形例を示すものであり、プログラム時の動作を示すフローチャート。
【図１６】図１５に示すプログラム時におけるデータキャッシュの内容を示す図。
【図１７】第３の実施形態の動作を示す図。
【図１８】第４の実施形態に適用されるデータ記憶装置の一例を示す回路図。
【図１９】第４の実施形態の動作を示すフローチャート。
【図２０】第４の実施形態の動作を示す図。
【図２１】プログラムベリファイのリード動作の一例を示す図。
【図２２】第５の実施形態に係るプログラムベリファイのリード動作の例を示す図。
【図２３】第５の実施形態に適用されるデータ記憶回路の一例を示す回路図。
【図２４】Ｌｏｇ（Ｉ）−Ｖ特性を示す図。
【図２５】第６の実施形態に係るリード時のワード線の電位変化をベリファイ時のワード線の電位変化に合わせた例を示す図。
【図２６】図２６（ａ）（ｂ）（ｃ）は、第７の実施形態に係る４値のデータを記憶される場合の動作を示す図。
【図２７】第１ページのプログラム動作の一例を示すフローチャート。
【図２８】第２ページのプログラム動作の一例を示すフローチャート。
【図２９】第７の実施形態に係る第２ページのプログラム動作を示すフローチャート。
【図３０】ベリファイレベル変化させる場合における第１ページのリード動作を示すフローチャート。
【図３１】ベリファイレベル変化させる場合と、変化させない場合における第２ページのリード動作を示すフローチャート。
【図３２】第７の実施形態に係る第１ページのリード動作を示すフローチャート。
【図３３】第８の実施形態に係る第１ページのリード動作を示すフローチャート。
【図３４】第８の実施形態に係る第２ページのリード動作を示すフローチャート。
【図３５】第５、第６、第７の実施形態の変形例を示すものであり、ワード線及びビット線の電位を示す図。
【符号の説明】
【０１３１】
１…メモリセルアレイ、２…ビット線制御回路、６…ワード線制御回路、７…制御信号及び制御電圧発生回路、１０…データ記憶回路、ＭＣ…メモリセル、ＰＤＣ…プライマリデータキャッシュ、ＳＤＣ…セコンダリデータキャッシュ、ＴＤＣ…テンポラリデータキャッシュ、ＤＤＣ…ダイナミックデータキャッシュ。
【図１】
2006172523.tif 000003
【図２】
2006172523.tif 000004
【図３】
2006172523.tif 000005
【図４】
2006172523.tif 000006
【図５】
2006172523.tif 000007
【図６】
2006172523.tif 000008
【図７】
2006172523.tif 000009
【図８】
2006172523.tif 000010
【図９】
2006172523.tif 000011
【図１０】
2006172523.tif 000012
【図１１】
2006172523.tif 000013
【図１２】
2006172523.tif 000014
【図１３】
2006172523.tif 000015
【図１４】
2006172523.tif 000016
【図１５】
2006172523.tif 000017
【図１６】
2006172523.tif 000018
【図１７】
2006172523.tif 000019
【図１８】
2006172523.tif 000020
【図１９】
2006172523.tif 000021
【図２０】
2006172523.tif 000022
【図２１】
2006172523.tif 000023
【図２２】
2006172523.tif 000024
【図２３】
2006172523.tif 000025
【図２４】
2006172523.tif 000026
【図２５】
2006172523.tif 000027
【図２６】
2006172523.tif 000028
【図２７】
2006172523.tif 000029
【図２８】
2006172523.tif 000030
【図２９】
2006172523.tif 000031
【図３０】
2006172523.tif 000032
【図３１】
2006172523.tif 000033
【図３２】
2006172523.tif 000034
【図３３】
2006172523.tif 000035
【図３４】
2006172523.tif 000036
【図３５】
2006172523.tif 000037