(57)【要約】【課題】面積の増加なく、プログラム時の閾値制御を高精度に行う。【解決手段】ビット線ＢＬｅｋ，ＢＬｏｋには、プログラム／リード時に使用するデータ回路ＲＥＧＲが接続される。データ回路ＲＥＧＲは、データ記憶部ＤＳ１，ＤＳ２，ＤＳ３を有する。データ記憶部ＤＳ１は、ビット線ＢＬｅｋ，ＢＬｏｋに接続される。データ記憶部ＤＳ１とデータ記憶部ＤＳ３との間には、データ転送回路Ｑｎ１０が接続される。データ記憶部ＤＳ２とデータ記憶部ＤＳ３との間には、データ転送回路Ｑｎ９が接続される。データ記憶部ＤＳ２は、自らが記憶するデータに基づいて、データ記憶部ＤＳ１のデータを強制的に変更する機能を有する。【選択図】　　図１０
2004118940.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルと、
前記メモリセルの一端に接続されるビット線と、
前記ビット線に接続され、前記メモリセルに関するプログラムデータ又はリードデータを一時的に記憶するデータ回路とを具備し、
前記データ回路は、第１、第２及び第３データ記憶部と、前記第１及び第３データ記憶部の間に接続される第１データ転送回路と、前記第２及び第３データ記憶部の間に接続される第２データ転送回路とを有し、
前記第１データ記憶部は、前記ビット線に接続され、前記第２データ記憶部は、自らが記憶するデータに基づいて、前記第１データ記憶部のデータを強制的に変更する機能を有することを特徴とする不揮発性半導体メモリ。
【請求項２】
前記第１及び第２データ記憶部は、キャパシタにより構成されることを特徴とする請求項１記載の不揮発性半導体メモリ。
【請求項３】
前記第１データ記憶部は、ＭＯＳキャパシタにより構成されることを特徴とする請求項１記載の不揮発性半導体メモリ。
【請求項４】
前記第２データ記憶部は、ゲートが前記第２データ転送回路に接続されるＭＯＳトランジスタにより構成され、前記ＭＯＳトランジスタのドレインと前記第１データ記憶部との間には、第３データ転送回路が接続されることを特徴とする請求項１記載の不揮発性半導体メモリ。
【請求項５】
前記第３データ記憶部は、ラッチ回路により構成されることを特徴とする請求項１記載の不揮発性半導体メモリ。
【請求項６】
前記ラッチ回路は、ＣＭＯＳフリップフロップ回路により構成されることを特徴とする請求項５記載の不揮発性半導体メモリ。
【請求項７】
前記データ回路は、カラム選択スイッチを経由してデータ線に接続される第４データ記憶部と、前記第１及び第４データ記憶部の間に接続される第４データ転送回路とをさらに有することを特徴とする請求項４記載の不揮発性半導体メモリ。
【請求項８】
前記第４データ記憶部は、ラッチ回路により構成されることを特徴とする請求項７記載の不揮発性半導体メモリ。
【請求項９】
前記ラッチ回路は、ＣＭＯＳフリップフロップ回路により構成されることを特徴とする請求項８記載の不揮発性半導体メモリ。
【請求項１０】
前記データ回路は、前記ビット線と前記第１データ記憶部との間に接続されるクランプ回路と、前記第１データ記憶部に接続されるプリチャージ回路とをさらに有することを特徴とする請求項１記載の不揮発性半導体メモリ。
【請求項１１】
前記第３データ記憶部に記憶されたデータに基づいて、前記メモリセルに対するプログラムの完了の有無を判断する検知回路をさらに具備することを特徴とする請求項１記載の不揮発性半導体メモリ。
【請求項１２】
前記第１及び第２データ転送回路は、ＭＯＳトランジスタにより構成されることを特徴とする請求項１記載の不揮発性半導体メモリ。
【請求項１３】
前記第３及び第４データ転送回路は、ＭＯＳトランジスタにより構成されることを特徴とする請求項７記載の不揮発性半導体メモリ。
【請求項１４】
前記メモリセルは、２ビット以上のデータを記憶することを特徴とする請求項１記載の不揮発性半導体メモリ。
【請求項１５】
前記メモリセルは、フローティングゲート電極とコントロールゲート電極とを有する不揮発性メモリセルであることを特徴とする請求項１記載の不揮発性半導体メモリ。
【請求項１６】
前記データ回路内における前記リードデータの移動を制御する制御回路をさらに具備することを特徴とする請求項７記載の不揮発性半導体メモリ。
【請求項１７】
前記メモリセルが４つの状態を持つ場合に、前記制御回路は、第１リード電位で前記メモリセルから読み出した第１リードデータを前記第３データ記憶部に記憶させる手段と、前記第１リードデータを前記３データ記憶部から前記第２データ記憶部に転送させる手段と、第２リード電位で前記メモリセルから読み出した第２リードデータを前記第１データ記憶部に記憶させる手段と、前記第２データ記憶部に記憶された前記第１リードデータに基づいて、前記第１データ記憶部に記憶された前記第２リードデータの値を強制的に変更させる手段と、前記第２リードデータを前記１データ記憶部から前記第４データ記憶部に転送させる手段とを具備することを特徴とする請求項１６記載の不揮発性半導体メモリ。
【請求項１８】
前記データ回路内における前記プログラムデータの移動を制御する制御回路をさらに具備することを特徴とする請求項７記載の不揮発性半導体メモリ。
【請求項１９】
前記制御回路は、前記プログラムデータを前記第４データ記憶部に記憶させる手段と、前記プログラムデータを前記第４データ記憶部から前記第３データ記憶部に転送させる手段と、前記プログラムデータを前記第３データ記憶部から前記第２データ記憶部に転送させる手段とを具備することを特徴とする請求項１８記載の不揮発性半導体メモリ。
【請求項２０】
前記メモリセルが２ビットデータを記憶する機能を有し、かつ、そのうちの１ビットデータが既に前記メモリセルに記憶されている場合に、前記制御回路は、前記プログラムデータを前記第４データ記憶部から前記第３データ記憶部に転送させた後に、前記第４データ記憶部の状態をリセットする手段と、前記メモリセルに記憶された前記１ビットデータを前記第４データ記憶部に読み出す手段とを具備することを特徴とする請求項１９記載の不揮発性半導体メモリ。
【請求項２１】
前記制御回路は、ライト動作時に、前記第３データ記憶部に記憶された前記プログラムデータの値に基づいて、前記メモリセルの閾値電圧を変動させるか否かを決定する手段を具備することを特徴とする請求項１９記載の不揮発性半導体メモリ。
【請求項２２】
前記第３データ記憶部に記憶された前記プログラムデータの値は、ベリファイリードにより前記メモリセルから読み出されたデータにより変更されることを特徴とする請求項２１記載の不揮発性半導体メモリ。
【請求項２３】
前記第２データ記憶部に記憶された前記プログラムデータの値は、常に、変化しないことを特徴とする請求項２２記載の不揮発性半導体メモリ。
【請求項２４】
前記制御回路は、前記メモリセルに対するプログラムが完了した後、前記第３データ記憶部の状態をリセットする手段と、前記第２データ記憶部に記憶された前記プログラムデータを前記第３データ記憶部に転送する手段とを具備することを特徴とする請求項２３記載の不揮発性半導体メモリ。
【請求項２５】
前記第２及び第３データ記憶部に前記プログラムデータが記憶され、ライト動作時に、前記第３データ記憶部に記憶された前記プログラムデータの値に基づいて、前記メモリセルの閾値電圧を変動させるか否かを決定する場合に、前記制御回路は、ベリファイリードにより前記リードデータを前記第１データ記憶部に記憶させる手段と、前記第２データ記憶部に記憶された前記プログラムデータの値に応じて、前記第１データ記憶部に記憶された前記リードデータの値を強制的に変更させる手段と、前記第１データ記憶部に記憶された前記リードデータを、前記プログラムデータとして前記第３データ記憶部に記憶させる手段とを具備することを特徴とする請求項１記載の不揮発性半導体メモリ。
【請求項２６】
前記制御回路は、ベリファイリードにより前記リードデータを前記第１データ記憶部に記憶させる手段と、前記第４データ記憶部に記憶された前記１ビットデータの値に応じて、前記第１データ記憶部に記憶された前記リードデータの値を強制的に変更させる手段と、前記第１データ記憶部に記憶された前記リードデータを、前記プログラムデータとして前記第３データ記憶部に記憶させる手段とを具備することを特徴とする請求項２０記載の不揮発性半導体メモリ。
【請求項２７】
電気的に書換可能な不揮発性半導体メモリセルと、
前記メモリセルに繋がるビット線と、
前記メモリセルのデータを読み出すための読み出し回路とを備え、
さらに、前記読み出し回路は、ビット線と繋がる第１のデータ記憶部と、前記第１のデータ記憶部のデータを自身が記憶しているデータに従って書換える機能を有する第２のデータ記憶部と、前記第１のデータ記憶部のデータを読み出す機能を有する第３のデータ記憶部と、前記第３のデータ記憶部のデータを前記第２のデータ記憶部に転送するデータ転送回路とを備え、
前記メモリセルのデータを前記ビット線を介して前記第１のデータ記憶部に読み出し、前記第２のデータ記憶部のデータに従って前記第１のデータ記憶部の読み出しデータを書換え、その後、前記第３のデータ記憶部のデータを前記第２のデータ記憶部に転送し、さらに、その後、前記第３のデータ記憶部で前記第１のデータ記憶部のデータを読み出す読み出し制御回路をさらに備える
ことを特徴とする不揮発性半導体メモリ。
【請求項２８】
前記第１及び第２のデータ記憶部は、キャパシタに電荷を蓄えることでデータを記憶することを特徴とする請求項２７記載の不揮発性半導体メモリ。
【請求項２９】
前記データ転送回路は、第１のＭＯＳトランジスタで構成され、前記前記第２のデータ記憶回路は、第２のＭＯＳトランジスタで構成され、前記第２のＭＯＳトランジスタのソースは、第３のＭＯＳトランジスタを介して前記第１のデータ記憶回路のキャパシタの第１の電極に繋がり、前記第２のＭＯＳトランジスタのゲートは、前記第１のＭＯＳトランジスタのソースに繋がることを特徴とする請求項２８記載の不揮発性半導体メモリ。
【請求項３０】
前記第３のデータ記憶回路は、２つのＣＭＯＳフリップフロップで構成され、前記第１のＭＯＳトランジスタのドレインに接続され、また、第４のＭＯＳトランジスタを介して前記第１のデータ記憶回路のキャパシタの第１の電極に繋がることを特徴とする請求項２９記載の不揮発性半導体メモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、不揮発性半導体メモリに関し、特に、多値ＮＡＮＤセル型フラッシュメモリ（Ｍｕｌｔｉ−ｌｅｖｅｌ　ＮＡＮＤ　ｃｅｌｌ　ｔｙｐｅ　ｆｌａｓｈ　ｍｅｍｏｒｙ）、例えば、４値ＮＡＮＤセル型フラッシュメモリに使用される。
【０００２】
【従来の技術】
フラッシュメモリは、フローティングゲート電極及びコントロールゲート電極を有するメモリセルから構成され、データプログラム／イレーズは、フローティングゲート電極内の電荷量の調節により実現される。この電荷量は、メモリセルの閾値電圧を決定し、例えば、メモリセルが負の閾値電圧を有している場合を“１”状態、メモリセルが正の閾値電圧を有している場合を“０”状態とする。
【０００３】
近年、１ビット当りの価格（ビット単価）を下げること、又は、１メモリチップが持つ記憶容量を増やすことを目的として、１メモリセルが複数ビットデータを記憶する多値フラッシュメモリの研究、開発が進められている。
【０００４】
ここで、１メモリセルがｎ（ｎは、２以上の自然数）ビットデータ、即ち、２ｎ値を記憶する場合、そのメモリセルは、２ｎ通りの状態（２ｎの閾値帯）を持つことになる。例えば、１メモリセルが２ビットデータを記憶する場合、そのメモリセルは、４つのの閾値帯を有する。
【０００５】
この閾値帯の数は、１メモリセルに記憶するビット数の増加に比例して増加する一方、フラッシュメモリの内部電源電圧は、低下する傾向にある。つまり、１メモリセルに記憶するビット数が増加するにつれて、閾値帯の数が増え、１つの閾値帯の幅は、狭くなる。従って、多値フラッシュメモリにおいては、メモリセルの閾値電圧の制御を精度よく行い、信頼性を向上させることが重要となる。
【０００６】
メモリセルの閾値電圧を高い精度で制御するための技術としては、例えば、ライト（書き込み）回数に応じて、ライト電圧を一定の割合でステップアップさせる方法（ステップアップ法）が知られている（例えば、非特許文献１参照）。
【０００７】
この方法について簡単に説明すると、ライト電圧のステップアップは、連続する複数のライトパルスの大きさを変えることにより実現される。例えば、これらライトパルスの大きさは、０．２Ｖ／１０μｓｅｃの割合で、次第に大きくする。ライトパルスをライト動作の対象となる複数のメモリセルに印加するごとに、これらメモリセルの閾値電圧を確認（ベリファイ）し、例えば、これら全てのメモリセルの閾値電圧が所定のベリファイレベルに達したら、ライトパルスの印加を終了する。
【０００８】
【非特許文献１】
Ｆａｓｔ　ａｎｄ　Ａｃｃｕｒａｔｅ　Ｐｒｏｇｒａｍｍｉｎｇ　Ｍｅｔｈｏｄ　ｆｏｒ　Ｍｕｌｔｉ−ｌｅｖｅｌ　ＮＡＮＤ　ＥＥＰＲＯＭｓ，　ｐｐ．１２９−１３０，　Ｄｉｇｅｓｔ　ｏｆ　１９９５　Ｓｙｍｐｏｓｉｕｍ　ｏｎ　ＶＬＳＩ　Ｔｅｃｈｎｏｌｏｇｙ
【０００９】
【発明が解決しようとする課題】
多値フラッシュメモリにおいても、１メモリチップが持つ記憶容量を増やすことを目的として、メモリセルの微細化が進行している。この微細化に伴い、メモリセル同士の間隔が狭まり、様々な問題を引き起こしている。
【００１０】
特に、メモリセルのフローティングゲート電極同士の間隔が狭まると、互いに隣接する複数のフローティングゲート電極の間の静電容量が増加する。その結果、選択された１メモリセルに所定のデータを書き込むと、その１メモリセルに隣接する非選択のメモリセルのフローティングゲート電極の電位が変化する。これは、非選択のメモリセルの閾値電圧が、ライト動作とは別に、変動することを意味し、多値フラッシュメモリの信頼性を低下させる。
【００１１】
このような問題に対応できる技術としては、１メモリセルに対して、２回のライトルーチンによりライト動作を実行する方法（２度書き法）が知られている。各ルーチンでは、それぞれ、例えば、上述のステップアップ法が適用される。これにより、フローティングゲート電極間の静電容量の増加に起因するメモリセルの閾値電圧の変動に影響を受けない高精度の閾値制御を実現できる。
【００１２】
しかし、いわゆる２度書き法を採用する場合、１回目のライトルーチンの開始から２回目のライトルーチンの終了まで、ライトデータをどこかに保持しておかなければならない。なぜなら、ライトデータの値に応じて、フローティングゲート電極に電荷を注入するか否かが決定されるからである。
【００１３】
従って、多値フラッシュメモリでは、ライトデータを記憶しておくための記憶回路の分だけ、チップサイズが増大し、また、これが製造コストの増大を招く原因ともなる。
【００１４】
本発明の目的は、メモリセルに記憶するデータを多値化しても、チップ面積が極端に増加することがなく、また、メモリセルの閾値電圧を高精度に制御できる２度書き法を適用できる多値フラッシュメモリのデータ回路（ライト／リード時に多値データを一時的に記憶しておく記憶回路）を提供することにある。
【００１５】
【課題を解決するための手段】
本発明の不揮発性半導体メモリは、メモリセルと、前記メモリセルの一端に接続されるビット線と、前記ビット線に接続され、前記メモリセルに関するプログラムデータ又はリードデータを一時的に記憶するデータ回路とを備え、前記データ回路は、第１、第２及び第３データ記憶部と、前記第１及び第３データ記憶部の間に接続される第１データ転送回路と、前記第２及び第３データ記憶部の間に接続される第２データ転送回路とを有し、前記第１データ記憶部は、前記ビット線に接続され、前記第２データ記憶部は、自らが記憶するデータに基づいて、前記第１データ記憶部のデータを強制的に変更する機能を有する。
【００１６】
前記第１及び第２データ記憶部は、キャパシタにより構成される。前記第１データ記憶部は、ＭＯＳキャパシタにより構成される。前記第２データ記憶部は、ゲートが前記第２データ転送回路に接続されるＭＯＳトランジスタにより構成され、前記ＭＯＳトランジスタのドレインと前記第１データ記憶部との間には、第３データ転送回路が接続される。
【００１７】
前記第３データ記憶部は、ラッチ回路により構成される。前記ラッチ回路は、ＣＭＯＳフリップフロップ回路により構成される。
【００１８】
前記データ回路は、カラム選択スイッチを経由してデータ線に接続される第４データ記憶部と、前記第１及び第４データ記憶部の間に接続される第４データ転送回路とをさらに有する。
【００１９】
前記第４データ記憶部は、ラッチ回路により構成される。前記ラッチ回路は、ＣＭＯＳフリップフロップ回路により構成される。
【００２０】
前記データ回路は、前記ビット線と前記第１データ記憶部との間に接続されるクランプ回路と、前記第１データ記憶部に接続されるプリチャージ回路とをさらに有する。
【００２１】
本発明の不揮発性半導体メモリは、前記第３データ記憶部に記憶されたデータに基づいて、前記メモリセルに対するプログラムの完了の有無を判断する検知回路をさらに備える。
【００２２】
前記第１及び第２データ転送回路は、ＭＯＳトランジスタにより構成される。前記第３及び第４データ転送回路は、ＭＯＳトランジスタにより構成される。前記メモリセルは、２ビット以上のデータを記憶する。前記メモリセルは、フローティングゲート電極とコントロールゲート電極とを有する不揮発性メモリセルである。
【００２３】
本発明の不揮発性半導体メモリは、前記データ回路内における前記リードデータの移動を制御する制御回路をさらに備える。
【００２４】
前記メモリセルが４つの状態を持つ場合に、前記制御回路は、第１リード電位で前記メモリセルから読み出した第１リードデータを前記第３データ記憶部に記憶させる手段と、前記第１リードデータを前記３データ記憶部から前記第２データ記憶部に転送させる手段と、第２リード電位で前記メモリセルから読み出した第２リードデータを前記第１データ記憶部に記憶させる手段と、前記第２データ記憶部に記憶された前記第１リードデータに基づいて、前記第１データ記憶部に記憶された前記第２リードデータの値を強制的に変更させる手段と、前記第２リードデータを前記１データ記憶部から前記第４データ記憶部に転送させる手段とを備える。
【００２５】
本発明の不揮発性半導体メモリは、前記データ回路内における前記プログラムデータの移動を制御する制御回路をさらに備える。
【００２６】
前記制御回路は、前記プログラムデータを前記第４データ記憶部に記憶させる手段と、前記プログラムデータを前記第４データ記憶部から前記第３データ記憶部に転送させる手段と、前記プログラムデータを前記第３データ記憶部から前記第２データ記憶部に転送させる手段とを備える。
【００２７】
前記メモリセルが２ビットデータを記憶する機能を有し、かつ、そのうちの１ビットデータが既に前記メモリセルに記憶されている場合に、前記制御回路は、前記プログラムデータを前記第４データ記憶部から前記第３データ記憶部に転送させた後に、前記第４データ記憶部の状態をリセットする手段と、前記メモリセルに記憶された前記１ビットデータを前記第４データ記憶部に読み出す手段とを備える。
【００２８】
前記制御回路は、ライト動作時に、前記第３データ記憶部に記憶された前記プログラムデータの値に基づいて、前記メモリセルの閾値電圧を変動させるか否かを決定する手段を備える。
【００２９】
前記第３データ記憶部に記憶された前記プログラムデータの値は、ベリファイリードにより前記メモリセルから読み出されたデータにより変更される。前記第２データ記憶部に記憶された前記プログラムデータの値は、常に、変化しない。
【００３０】
前記制御回路は、前記メモリセルに対するプログラムが完了した後、前記第３データ記憶部の状態をリセットする手段と、前記第２データ記憶部に記憶された前記プログラムデータを前記第３データ記憶部に転送する手段とを備える。
【００３１】
前記第２及び第３データ記憶部に前記プログラムデータが記憶され、ライト動作時に、前記第３データ記憶部に記憶された前記プログラムデータの値に基づいて、前記メモリセルの閾値電圧を変動させるか否かを決定する場合に、前記制御回路は、ベリファイリードにより前記リードデータを前記第１データ記憶部に記憶させる手段と、前記第２データ記憶部に記憶された前記プログラムデータの値に応じて、前記第１データ記憶部に記憶された前記リードデータの値を強制的に変更させる手段と、前記第１データ記憶部に記憶された前記リードデータを、前記プログラムデータとして前記第３データ記憶部に記憶させる手段とを備える。
【００３２】
前記制御回路は、ベリファイリードにより前記リードデータを前記第１データ記憶部に記憶させる手段と、前記第４データ記憶部に記憶された前記１ビットデータの値に応じて、前記第１データ記憶部に記憶された前記リードデータの値を強制的に変更させる手段と、前記第１データ記憶部に記憶された前記リードデータを、前記プログラムデータとして前記第３データ記憶部に記憶させる手段とを備える。
【００３３】
本発明の不揮発性半導体メモリは、電気的に書換可能な不揮発性半導体メモリセルと、前記メモリセルに繋がるビット線と、前記メモリセルのデータを読み出すための読み出し回路とを備える。さらに、前記読み出し回路は、ビット線と繋がる第１のデータ記憶部と、前記第１のデータ記憶部のデータを自身が記憶しているデータに従って書換える機能を有する第２のデータ記憶部と、前記第１のデータ記憶部のデータを読み出す機能を有する第３のデータ記憶部と、前記第３のデータ記憶部のデータを前記第２のデータ記憶部に転送するデータ転送回路とを備える。
【００３４】
さらに、本発明の不揮発性半導体メモリは、前記メモリセルのデータを前記ビット線を介して前記第１のデータ記憶部に読み出し、前記第２のデータ記憶部のデータに従って前記第１のデータ記憶部の読み出しデータを書換え、その後、前記第３のデータ記憶部のデータを前記第２のデータ記憶部に転送し、さらに、その後、前記第３のデータ記憶部で前記第１のデータ記憶部のデータを読み出す読み出し制御回路を備える。
【００３５】
前記第１及び第２のデータ記憶部は、キャパシタに電荷を蓄えることでデータを記憶する。
【００３６】
前記データ転送回路は、第１のＭＯＳトランジスタで構成され、前記前記第２のデータ記憶回路は、第２のＭＯＳトランジスタで構成され、前記第２のＭＯＳトランジスタのソースは、第３のＭＯＳトランジスタを介して前記第１のデータ記憶回路のキャパシタの第１の電極に繋がり、前記第２のＭＯＳトランジスタのゲートは、前記第１のＭＯＳトランジスタのソースに繋がる。
【００３７】
前記第３のデータ記憶回路は、２つのＣＭＯＳフリップフロップで構成され、前記第１のＭＯＳトランジスタのドレインに接続され、また、第４のＭＯＳトランジスタを介して前記第１のデータ記憶回路のキャパシタの第１の電極に繋がる。
【００３８】
【発明の実施の形態】
以下、図面を参照しながら、本発明の不揮発性半導体メモリについて詳細に説明する。
【００３９】
１．　前提
まず、以下の説明を分かり易くするため、前提条件について次のように規定する。但し、この前提条件は、説明を分かり易くするために設定するものであり、本発明は、この前提条件以外の条件の場合にも成り立つものである。
【００４０】
本発明は、１メモリセルに、ｎ（ｎは、２以上の自然数）ビットデータ、即ち、２ｎ値が記憶される多値フラッシュメモリを対象とするが、以下の実施の形態では、その代表例として、４値ＮＡＮＤセル型フラッシュメモリについて説明する。
【００４１】
メモリセルには、４種類のデータ“００”，“０１”，“１０”，“１１”が記憶されるものとする。メモリセルの閾値電圧が最も低い状態、例えば、閾値電圧が負で、第１閾値帯に属する状態を、データ“１１”が記憶された状態とし、メモリセルの閾値電圧が２番目に低い状態、例えば、閾値電圧が正で、第２閾値帯に属する状態を、データ“１０”が記憶された状態とし、メモリセルの閾値電圧が３番目に低い状態、例えば、閾値電圧が正で、第３閾値帯に属する状態を、データ“００”が記憶された状態とし、メモリセルの閾値電圧が最も高い状態、例えば、閾値電圧が正で、第４閾値帯に属する状態を、データ“０１”が記憶された状態とする。
【００４２】
また、メモリセルには、４種類のデータ、即ち、４値データが記憶されることにしたため、例えば、データプログラム／リード時には、論理下位ページデータに対するプログラム／リード動作と、論理上位ページデータに対するプログラム／リード動作とが必要になる。ここで、データ“＊＊”のうち、右側の＊を、論理下位ページデータとし、左側の＊を、論理上位ページデータとする。
【００４３】
また、メモリセルに関しては、データ“１１”が記憶されている状態を、イレーズ状態とし、データ“１０”，“００”，“０１”が記憶されている状態を、ライト状態とする。
【００４４】
２．　概要
（１）　　全体構成例
図１は、本発明の一例に関わる４値ＮＡＮＤセル型フラッシュメモリの主要部を示している。
【００４５】
１は、メモリセルアレイである。メモリセルアレイ１は、例えば、直列接続された複数のメモリセルとその両端に１つずつ接続された２つのセレクトトランジスタとから構成されるＮＡＮＤセルユニットを有する。メモリセルアレイ１の回路例及び構造例については、後述する。
【００４６】
データ回路２は、複数の記憶回路を含んでいる。データ回路２の回路例については、後述する。ここでは、データ回路２の機能について簡単に述べる。
【００４７】
データ回路２は、ライト時に、２ビット（４値）のライトデータを、リード時に、２ビット（４値）のリードデータを、それぞれ、一時的に記憶する。このため、ライト／リード動作の対象となる選択されたメモリセルに接続される１本のビット線に対して、最低、２個の記憶回路が設けられる。２個の記憶回路のうちの一つは、論理下位ページデータを記憶し、他の一つは、論理上位ページデータを記憶する。
【００４８】
ワード線制御回路３は、ロウアドレスデコーダ及びワード線ドライバを含んでいる。ワード線制御回路３は、動作モード（ライト、イレーズ、リードなど）とロウアドレス信号が指定するアドレスとに基づいて、メモリセルアレイ１内の複数のワード線の電位を制御する。ワード線制御回路３の回路例については、後述する。
【００４９】
カラムデコーダ４は、カラムアドレス信号に基づいて、メモリセルアレイ１のカラムを選択する。
【００５０】
プログラム時、ライトデータは、データ入出力バッファ７及びＩ／Ｏセンスアンプ６を経由して、選択されたカラムに属するデータ回路２内の記憶回路内に入力される。また、リード時、リードデータは、選択されたカラムに属するデータ回路２内の記憶回路内に一時的に記憶され、この後、Ｉ／Ｏセンスアンプ６及びデータ入出力バッファ７を経由して、メモリチップ１１の外部へ出力される。
【００５１】
ロウアドレス信号は、アドレスバッファ５を経由してワード線制御回路３に入力される。カラムアドレス信号は、アドレスバッファ５を経由して、カラムデコーダ４に入力される。
【００５２】
ウェル／ソース線電位制御回路８は、動作モード（ライト、イレーズ、リードなど）に基づいて、メモリセルアレイ１を構成する複数のブロックに対応する複数のウェル領域（例えば、ｎウェルとｐウェルからなるダブルウェル領域）の電位、並びに、ソース線の電位を、それぞれ制御する。
【００５３】
電位発生回路（昇圧回路）９Ａは、例えば、ライト時に、ライト電位（例えば、約２０Ｖ）Ｖｐｐや、転送電位（例えば、約１０Ｖ）Ｖｐａｓｓなどを発生する。これらの電位Ｖｐｐ，Ｖｐａｓｓは、切替回路９Ｂにより、例えば、メモリセルアレイ１を構成する複数のブロックのうち、選択されたブロック内の複数本のワード線に振り分けられる。
【００５４】
また、電位発生回路９Ａは、例えば、イレーズ時に、イレーズ電位（例えば、約２０Ｖ）ＶｐｐＥを発生し、この電位ＶｐｐＥを、メモリセルアレイ１を構成する複数のブロックのうち、１つ又は２つ以上の選択されたブロックに対応する１つ又は２つ以上のウェル領域（ｎウェルとｐウェルの双方）に与える。
【００５５】
一括検知回路　（ｂａｔｃｈ　ｄｅｔｅｃｔｉｏｎ　ｃｉｒｃｕｉｔ）　１０は、プログラム時に、メモリセルに正確に所定のデータが書き込まれたか否かを検証し、イレーズ時に、メモリセルのデータがきちんと消去されたか否かを検証する。
【００５６】
コマンドインターフェイス回路１２は、メモリチップ１１とは別のチップ（例えば、ホストマイコン）により生成される制御信号に基づいて、データ入出力バッファ７に入力されるデータがホストマイコンから提供されたコマンドデータであるか否かを判断する。データ入出力バッファ７に入力されるデータがコマンドデータである場合、コマンドインターフェイス回路１２は、コマンドデータをステートマシーン（制御回路）１３に転送する。
【００５７】
ステートマシーン１３は、コマンドデータに基づいて、フラッシュメモリの動作モード（ライト、イレーズ、リードなど）を決定し、かつ、その動作モードに応じて、フラッシュメモリの全体の動作、具体的には、データ回路２、ワード線制御回路３、カラムデコーダ４、アドレスバッファ５、Ｉ／Ｏセンスアンプ６、データ入出力バッファ７、ウェル／ソース線電位制御回路８、電位生成回路９Ａ、切替回路９Ｂ及び一括検知回路１０の動作を制御する。
【００５８】
（２）　　メモリセルアレイの構成例
図２は、メモリセルアレイの構成例を示している。図３は、図２に示される複数のブロックのうちの１つＢＬＯＣＫｉの回路例である。
メモリセルアレイ１は、複数（本例では、１０２４個）のブロックＢＬＯＣＫ０〜ＢＬＯＣＫ１０２３から構成される。複数のブロックＢＬＯＣＫ０〜ＢＬＯＣＫ１０２３は、Ｙ方向に並んで配置される。ブロックとは、イレーズの最小単位、即ち、一度に消去できる最小のメモリセル数を意味する。
【００５９】
１つのブロックＢＬＯＣＫｉは、Ｘ方向に並んだ複数（本例では、８５１２個）のＮＡＮＤセルユニットＵから構成される。１つのＮＡＮＤセルユニットＵは、直列接続される４つのメモリセルＭ１，Ｍ２，Ｍ３，Ｍ４からなるＮＡＮＤ列と、ＮＡＮＤ列の一端に接続されるセレクトゲートトランジスタＳ１と、ＮＡＮＤ列の他端に接続されるセレクトゲートトランジスタＳ２とから構成される。
【００６０】
本例では、ＮＡＮＤ列は、４つのメモリセルＭ１，Ｍ２，Ｍ３，Ｍ４から構成されるが、１つ又は２つ以上のメモリセルから構成されていればよく、特に、４つに限定されるものではない。
【００６１】
セレクトゲートトランジスタＳ１は、ビット線ＢＬｅｋ又はビット線ＢＬｏｋに接続され（ｋ＝０，１，・・・４２５５）、セレクトゲートトランジスタＳ２は、ソース線Ｃ−ｓｏｕｒｃｅに接続される。
【００６２】
ワード線（コントロールゲート線）ＷＬ０−ｉ，ＷＬ１−ｉ，ＷＬ２−ｉ，ＷＬ３−ｉは、Ｘ方向に延び、Ｘ方向の複数のメモリセルに共通に接続される。セレクトゲート線ＳＧＤ−ｉは、Ｘ方向に延び、Ｘ方向の複数のセレクトゲートトランジスタＳ１に共通に接続される。セレクトゲート線ＳＧＳ−ｉも、Ｘ方向に延び、Ｘ方向の複数のセレクトゲートトランジスタＳ２に共通に接続される。
【００６３】
本例では、ライト／リード動作時において、ブロックＢＬＯＣＫｉの一端側から数えて偶数番目　（ｅｖｅｎ）　に位置する複数のビット線ＢＬｅ０，ＢＬｅ１，・・・ＢＬｅ４２５５と、その一端側から数えて奇数番目　（ｏｄｄ）　に位置する複数のビット線ＢＬｏ０，ＢＬｏ１，・・・ＢＬｏ４２５５とは、互いに独立に駆動される。但し、ビット線は、０から数えるものとする。
【００６４】
つまり、１本のワード線、例えば、ワード線ＷＬ３−ｉに接続される８５１２個のメモリセルのうち、偶数番目に位置する複数のビット線ＢＬｅ０，ＢＬｅ１，・・・ＢＬｅ４２５５に接続される４２５６個のメモリセル（△で示す）に対して、同時に、ライト／リード動作が実行される。また、ワード線ＷＬ３−ｉに接続される８５１２個のメモリセルのうち、奇数番目に位置する複数のビット線ＢＬｏ０，ＢＬｏ１，・・・ＢＬｏ４２５５に接続される４２５６個のメモリセル（○で示す）に対して、同時に、ライト／リード動作が実行される。
【００６５】
１メモリセルが１ビットデータを記憶する場合、１本のワード線、例えば、ワード線ＷＬ３−ｉと偶数番目の複数のビット線ＢＬｅ０，ＢＬｅ１，・・・ＢＬｅ４２５５との交点に位置する４２５６個のメモリセル（△で示す）は、ページと呼ばれる単位を構成する。同様に、ワード線ＷＬ３−ｉと奇数番目の複数のビット線ＢＬｏ０，ＢＬｏ１，・・・ＢＬｏ４２５５との交点に位置する４２５６個のメモリセル（○で示す）も、ページと呼ばれる単位を構成する。
【００６６】
また、本例のように、１メモリセルが２ビットデータを記憶する場合、４２５６個のメモリセル（△で示す）は、２ページ分のデータを記憶し、４２５６個のメモリセル（○で示す）も、２ページ分のデータを記憶する。
【００６７】
（３）　　デバイス構造例
▲１▼　ウェル構造例
図４は、ＮＡＮＤセル型フラッシュメモリのウェル構造の例を示している。
【００６８】
ｐ型シリコン基板（ｐ−ｓｕｂ）１１−１内には、ｎ型ウェル領域（Ｃｅｌｌｎ−ｗｅｌｌ）１１−２及びｐ型ウェル領域（Ｃｅｌｌ　ｐ−ｗｅｌｌ）１１−３から構成されるいわゆるダブルウェル領域、ｎ型ウェル領域（ｎ−ｗｅｌｌ）１１−４、並びに、ｐ型ウェル領域（ｐ−ｗｅｌｌ）１１−５が形成される。
【００６９】
ダブルウェル領域は、メモリセルアレイ部に形成され、ｎ型ウェル領域１１−４及びｐ型ウェル領域１１−５は、周辺回路部に形成される。
【００７０】
メモリセルは、ｎチャネルＭＯＳトランジスタから構成され、ｐ型ウェル領域１１−３内に配置される。ｎ型ウェル領域１１−２及びｐ型ウェル領域１１−３は、同電位に設定される。
【００７１】
電源電圧よりも高い電圧が印加される高電圧ｎチャネルＭＯＳトランジスタは、Ｐ型シリコン基板（ｐ−ｓｕｂ）１１−１内に形成される。電源電圧が印加される低電圧ｐチャネルＭＯＳトランジスタは、ｎ型ウェル領域（ｎ−ｗｅｌｌ）１１−４内に形成され、電源電圧が印加される低電圧ｎチャネルＭＯＳトランジスタは、ｐ型ウェル領域（ｐ−ｗｅｌｌ）１１−５内に形成される。
【００７２】
▲２▼　セルアレイ構造例
図５は、ＮＡＮＤセル型フラッシュメモリのメモリセルアレイ部のＹ方向の断面構造の例を示している。
【００７３】
ｐ型シリコン基板１１−１内には、ｎ型ウェル領域１１−２及びｐ型ウェル領域１１−３から構成されるダブルウェル領域が形成される。
【００７４】
直列接続された４つのメモリセルＭ１，Ｍ２，Ｍ３，Ｍ４は、ｐ型ウェル領域１１−３内に配置される。４つのメモリセルＭ１，Ｍ２，Ｍ３，Ｍ４は、それぞれ、ＮチャネルＭＯＳトランジスタから構成され、かつ、フローティングゲート電極ＦＧとコントロールゲート電極ＷＬ０−ｉ，ＷＬ１−ｉ，ＷＬ２−ｉ，ＷＬ３−ｉからなるスタックゲート構造を有する。
【００７５】
直列接続されたメモリセルＭ１，Ｍ２，Ｍ３，Ｍ４からなるＮＡＮＤ列の一端には、セレクトゲートトランジスタＳ１が接続され、その他端には、セレクトゲートトランジスタＳ２が接続される。セレクトゲートトランジスタＳ１，Ｓ２は、ＮチャネルＭＯＳトランジスタから構成され、メモリセルＭ１，Ｍ２，Ｍ３，Ｍ４に近似する構造、即ち、二重構造のセレクトゲート線ＳＧＳ−ｉ，ＳＧＤ−ｉを有する。
【００７６】
ＮＡＮＤセルユニットの一端、即ち、セレクトゲートトランジスタＳ１の拡散層（ドレイン拡散層）１４は、コンタクトプラグＣＢ１を経由して、第１メタル配線層Ｍ０に接続される。また、第１メタル配線層Ｍ０は、ビアプラグＶ１を経由して、ビット線ＢＬとしての第２メタル配線層Ｍ１に接続される。ビット線ＢＬは、データ回路に接続される。
【００７７】
ＮＡＮＤセルユニットの他端、即ち、セレクトゲートトランジスタＳ２の拡散層（ソース拡散層）１５は、コンタクトプラグＣＢ２を経由して、ソース線Ｃ−ｓｏｕｒｃｅとしての第１メタル配線層Ｍ０に接続される。ソース線Ｃ−ｓｏｕｒｃｅは、ソース電位制御回路に接続される。
【００７８】
ｎ型ウェル領域（Ｃｅｌｌ　ｎ−ｗｅｌｌ）１１−２は、ｎ型拡散層１６を経由して、Ｃ−ｐ−ｗｅｌｌ電位設定線１８に接続され、ｐ型ウェル領域（Ｃｅｌｌ　ｐ−ｗｅｌｌ）１１−３は、ｐ型拡散層１７を経由して、Ｃ−ｐ−ｗｅｌｌ電位設定線１８に接続される。つまり、ｎ型ウェル領域１１−２とｐ型ウェル領域１１−３は、同電位に設定される。Ｃ−ｐ−ｗｅｌｌ電位設定線１８は、ウェル電位制御回路に接続される。
【００７９】
なお、フローティングゲート電極ＦＧ、コントロールゲート電極ＷＬ０−ｉ，ＷＬ１−ｉ，ＷＬ２−ｉ，ＷＬ３−ｉ及びセレクトゲート線ＳＧＳ−ｉ，ＳＧＤ−ｉは、例えば、不純物を含む導電性ポリシリコンから構成される。また、第１及び第２メタル配線層Ｍ０，Ｍ１は、例えば、アルミニウム、銅、これらの合金などから構成される。
【００８０】
図６は、メモリセルのＸ方向の断面構造の例を示し、図７は、セレクトゲートトランジスタのＸ方向の断面構造の例を示している。
【００８１】
Ｘ方向の複数のメモリセル（ＦＧ＋ＷＬ）は、ＳＴＩ　（Ｓｈａｌｌｏｗ　Ｔｒｅｎｃｈ　Ｉｓｏｌａｔｉｏｎ）　構造の素子分離層１９によって、互いに電気的に分離されている。Ｐ型ウェル領域１１−３上には、非常に薄いトンネル酸化膜２０を経由して、フローティングゲート電極ＦＧが配置される。フローティングゲート電極ＦＧ上には、ＯＮＯ　（ｏｘｉｄｅ／ｎｉｔｒｉｄｅ／ｏｘｉｄｅ）　膜２１を経由して、コントロールゲート電極ＷＬが配置される。
【００８２】
セレクトゲート線ＳＧＳ／ＳＧＤは、二重構造になっている。下側のセレクトゲート線ＳＧＳ／ＳＧＤと上側のセレクトゲート線ＳＧＳ／ＳＧＤとは、メモリセルアレイの端部において互いに電気的に接続されると共に、メモリセルアレイ内においても、一定間隔、例えば、５１２本のビット線ごとに、互いに電気的に接続される。
【００８３】
（４）　　一括検知回路の構成例
図８は、一括検知回路の構成例を示している。
【００８４】
一括検知回路１０は、ベリファイリードの後、選択された全てのメモリセルに対して、きちんとライト又はイレーズが行われたか否かを調べる機能を有する（Ｐｒｏｇｒａｍ　／　Ｅｒａｓｅ　ｃｏｍｐｌｅｔｉｏｎ　ｄｅｔｅｃｔｉｏｎ　）。
【００８５】
本例では、メモリセルアレイの構成例でも説明したように、ライト／リード動作時に、偶数番目の複数のビット線と奇数番目の複数のビット線とが互いに独立に駆動されることを前提とする。このため、偶数番目の１本のビット線と奇数番目の１本のビット線とからなる合計２本のビット線に対して、１個のサブデータ回路が設けられる。
【００８６】
具体的には、８５１２本のビット線ＢＬｅｋ，ＢＬｏｋ（ｋ＝０，１，・・・４２２５）が存在するため、データ回路２は、４２５６個のサブデータ回路から構成される。なお、データ回路２内の各サブデータ回路の構成例については、後述する。
【００８７】
本例では、４２５６個のサブデータ回路のうち、８個のサブデータ回路ＲＥＧＲ１−０，ＲＥＧＲ１−１，ＲＥＧＲ１−２，ＲＥＧＲ１−３，ＲＥＧＲ２−０，ＲＥＧＲ２−１，ＲＥＧＲ２−２，ＲＥＧＲ２−３のみを示している。
【００８８】
サブデータ回路ＲＥＧＲ１−ｙは、２本のビット線ＢＬｅｊ＋ｙ，ＢＬｏｊ＋ｙに接続されると共に、Ｉ／Ｏ線対ＩＯｊ＋ｙ，ｎＩＯｊ＋ｙに接続される。また、サブデータ回路ＲＥＧＲ２−ｙは、２本のビット線ＢＬｅｊ＋ｙ＋４，ＢＬｏｊ＋ｙ＋４に接続されると共に、Ｉ／Ｏ線対ＩＯｊ＋ｙ＋４，ｎＩＯｊ＋ｙ＋４に接続される。但し、ｙ＝０，１，２、３である。
【００８９】
第１乃至第４サブデータ回路ＲＥＧＲ１−０，ＲＥＧＲ１−１，ＲＥＧＲ１−２，ＲＥＧＲ１−３の出力ノードＲＣＤ１は、共通接続され、その接続ノードＲＣＤ１は、ＰチャネルＭＯＳトランジスタＴＰ２のゲートに接続される。同様に、第５乃至第８サブデータ回路ＲＥＧＲ２−０，ＲＥＧＲ２−１，ＲＥＧＲ２−２，ＲＥＧＲ２−３の出力ノードＲＣＤ２も、共通接続され、その接続ノードＲＣＤ２は、ＰチャネルＭＯＳトランジスタＴＰ３のゲートに接続される。
【００９０】
ＰチャネルＭＯＳトランジスタＴＰ１３，ＴＰ１４は、　Ｐｒｏｇｒａｍ　／　Ｅｒａｓｅ　ｃｏｍｐｌｅｔｉｏｎ　ｄｅｔｅｃｔｉｏｎ　時に、制御信号ＣＯＭＨｎに基づいて、ノードＲＣＤ１，ＲＣＤ２をプリチャージする機能を有する。即ち、制御信号ＣＯＭＨｎを“Ｌ”にして、ノードＲＣＤ１，ＲＣＤ２を電源電位Ｖｄｄに設定した後、制御信号ＣＯＭＨｎを“Ｌ”にして、ノードＲＣＤ１，ＲＣＤ２をフローティング状態にする。この時、ＰチャネルＭＯＳトランジスタＴＰ２，ＴＰ３は、オフ状態となる。
【００９１】
ＮチャネルＭＯＳトランジスタＴＮ１５は、　Ｐｒｏｇｒａｍ　／　Ｅｒａｓｅ　ｃｏｍｐｌｅｔｉｏｎ　ｄｅｔｅｃｔｉｏｎ　時に、ノードＮＣＯＭを、接地電位Ｖｓｓに設定した後、フローティング状態にする機能を有する。ＭＯＳトランジスタＴＮ１５は、制御信号ＮＣＯＭＬにより制御される。
【００９２】
Ｐｒｏｇｒａｍ　／　Ｅｒａｓｅ　ｃｏｍｐｌｅｔｉｏｎ　ｄｅｔｅｃｔｉｏｎ　時、ライト／イレーズが十分に行われていないメモリセルに対応するサブデータ回路は、共通ノードＲＣＤ１又は共通ノードＲＣＤ２の電位レベルを“Ｈ”から“Ｌ”に低下させる。
【００９３】
従って、ライト／イレーズが十分に行われていないメモリセルが少なくとも１つ存在する場合には、ＰチャネルＭＯＳトランジスタＴＰ２又はＰチャネルＭＯＳトランジスタＴＰ３がオン状態となり、ノードＮＣＯＭが“Ｌ”から“Ｈ”になり、ＦＬＡＧが“Ｌ”になる。
【００９４】
一方、全てのメモリセルに対して、ライト／イレーズが十分に行われている場合には、全てのサブデータ回路は、共通ノードＲＣＤ１，ＲＣＤ２の電位レベルを“Ｈ”に維持する。従って、ノードＮＣＯＭは、“Ｌ”のままであり、ＦＬＡＧは、“Ｈ”となる。
【００９５】
このように、ＦＬＡＧの電位レベルを検出することにより、選択された全てのメモリセルに対して、きちんとライト／イレーズが行われたか否かを調べることができる。
【００９６】
本例では、８個のサブデータ回路を１つにまとめ、これら８個のサブデータ回路ごとに、Ｐｒｏｇｒａｍ　／　Ｅｒａｓｅ　ｃｏｍｐｌｅｔｉｏｎ　ｄｅｔｅｃｔｉｏｎ　、即ち、ＦＲＡＧの電圧レベルの検出を行っている。
【００９７】
このように、８個のサブデータ回路を一まとめにしたのは、これら８個のサブデータ回路に対応する８カラム単位で、リダンダンシイ回路によるメモリセルの置き換えを行っているためである。つまり、ヒューズ素子（破線で囲んだ部分）を切断すると、これら８個のサブデータ回路に接続されるメモリセルは、常に非選択状態になり、これに代わって、リダンダンシイ領域の予備のメモリセルが選択される。
【００９８】
従って、リダンダンシイ回路によるメモリセルの置き換えをｎ（ｎは、自然数）個のサブデータ回路に対応するｎカラム単位で行う場合には、ｎ個のサブデータ回路を一まとめにする。
【００９９】
なお、ＦＲＡＧは、全てのカラムに対応する共通ノードとなっている。例えば、データ回路２が４２５６個のサブデータ回路から構成される場合、８個のサブデータ回路をリダンダンシイ置き換えの１単位とすると、チップ内には、図８に示す回路が、５３２個存在することになる。そして、これら５３２個の回路は、共通ノードＦＲＡＧに接続される。
【０１００】
（５）　　データ回路の構成例
図９は、データ回路内のサブデータ回路の構成例を示している。
本例では、データ回路は、複数個（例えば、４２５６個）のサブデータ回路から構成され、各サブデータ回路は、図９のような構成を有している。
【０１０１】
サブデータ回路ＲＥＧＲは、４個のデータ記憶部ＤＳ１，ＤＳ２，ＤＳ３，ＤＳ４を有している。これらデータ記憶部ＤＳ１，ＤＳ２，ＤＳ３，ＤＳ４を使用して、選択された１メモリセルに対して、２ビットデータのリード動作及びプログラム動作を実行する。プログラム動作には、ライト動作やベリファイ動作などが含まれる。
【０１０２】
また、サブデータ回路は、偶数番目の１本のビット線と奇数番目の１本のビット線とからなる合計２本のビット線に対して１個設けられる。偶数番目のビット線ＢＬｅｋは、ＮチャネルＭＯＳトランジスタＱｎ１を経由して、サブデータ回路ＲＥＧＲに接続され、奇数番目のビット線ＢＬｏｋは、ＮチャネルＭＯＳトランジスタＱｎ２を経由して、サブデータ回路ＲＥＧＲに接続される。
【０１０３】
制御信号ＢＬＳｅが“Ｈ”、制御信号ＢＬＳｏが“Ｌ”のとき、ＮチャネルＭＯＳトランジスタＱｎ１がオン状態となるため、偶数番目のビット線ＢＬｅｋは、サブデータ回路ＲＥＧＲに電気的に接続される。また、制御信号ＢＬＳｅが“Ｌ”、制御信号ＢＬＳｏが“Ｈ”のとき、ＮチャネルＭＯＳトランジスタＱｎ２がオン状態となるため、奇数番目のビット線ＢＬｏｋは、サブデータ回路ＲＥＧＲに電気的に接続される。
【０１０４】
なお、制御信号ＢＬＳｅは、偶数番目のビット線ＢＬｅｋに接続されるＭＯＳトランジスタＱｎ１のゲートに共通に入力され、制御信号ＢＬＳｏは、奇数番目のビット線ＢＬｏｋに接続されるＭＯＳトランジスタＱｎ２のゲートに共通に入力される。
【０１０５】
図１０は、図９のサブデータ回路の回路例を示している。
【０１０６】
本例では、図９に対応させて、１カラム分（２本のビット線ＢＬｅｋ，ＢＬｏｋに対応）のサブデータ回路を示す。
【０１０７】
サブデータ回路ＲＥＧＲは、４つのデータ記憶部ＤＳ１，ＤＳ２，ＤＳ３，ＤＳ４を有している。
【０１０８】
データ記憶部ＤＳ１は、ディプレッションタイプＮチャネルＭＯＳキャパシタＣ１から構成される。データ記憶部ＤＳ２は、ＮチャネルＭＯＳトランジスタＱｎ８から構成される。データ記憶部ＤＳ３は、クロック同期式インバータＣＩ１，ＣＩ２を有するＣＭＯＳフリップフロップ回路から構成され、データ記憶部ＤＳ４は、クロック同期式インバータＣＩ３，ＣＩ４を有するＣＭＯＳフリップフロップ回路から構成される。
【０１０９】
ＭＯＳキャパシタＣ１の一端は、ＮチャネルＭＯＳトランジスタＱｎ５，Ｑｎ１，Ｑｎ２を経由して、ビット線ＢＬｅｋ，ＢＬｏｋに接続され、その他端は、接地点Ｖｓｓに接続される。ＭＯＳトランジスタＱｎ５は、ビット線Ｑｎ１，Ｑｎ２側のノードＮ１とＭＯＳキャパシタＣ１側のノードＮ２との電気的接続／切断を行うクランプトランジスタである。
【０１１０】
制御信号ＢＬＣＬＡＭＰが“Ｈ”のとき、ＭＯＳトランジスタＱｎ５は、オン状態となり、例えば、偶数番目のビット線ＢＬｅｋがＭＯＳキャパシタＣ１の一端に電気的に接続される。この時、制御信号ＢＬＳｅは、“Ｈ”、制御信号ＢＬＳｏは、“Ｌ”に設定されている。また、この時、制御信号ＢＩＡＳｅは、“Ｌ”、制御信号ＢＩＡＳｏは、“Ｈ”に設定され、バイアス電位（例えば、接地電位）ＢＬＣＲＬが、奇数番目のビット線ＢＬｏｋに供給される。
【０１１１】
また、奇数番目のビット線ＢＬｏｋがＭＯＳキャパシタＣ１の一端に電気的に接続される場合、制御信号ＢＬＳｅは、“Ｌ”、制御信号ＢＬＳｏは、“Ｈ”に設定される。また、この時、制御信号ＢＩＡＳｅは、“Ｈ”、制御信号ＢＩＡＳｏは、“Ｌ”に設定され、バイアス電位（例えば、接地電位）ＢＬＣＲＬが、偶数番目のビット線ＢＬｅｋに供給される。
【０１１２】
制御信号ＢＬＣＬＡＭＰが“Ｌ”のときは、ＭＯＳトランジスタＱｎ５は、オフ状態となるため、ビット線Ｑｎ１，Ｑｎ２側のノードＮ１とＭＯＳキャパシタＣ１側のノードＮ２とは、電気的に切断される。
【０１１３】
ＮチャネルＭＯＳトランジスタＱｎ６は、ＭＯＳキャパシタＣ１の一端に接続される。ＭＯＳトランジスタＱｎ６は、ＭＯＳキャパシタＣ１の一端を、プリチャージ電位ＶＰＲＥに充電するための素子である。制御信号ＢＬＰＲＥが“Ｈ”のとき、ＭＯＳキャパシタＣ１の一端は、プリチャージ電位ＶＰＲＥに充電される。
【０１１４】
ＮチャネルＭＯＳトランジスタＱｎ８は、ＮチャネルＭＯＳトランジスタＱｎ７を経由して、ＭＯＳキャパシタＣ１の一端に接続される。制御信号ＲＥＧが“Ｈ”、即ち、ＭＯＳトランジスタＱｎ７がオン状態のとき、ＭＯＳトランジスタＱｎ８は、データ記憶部ＤＳ２に記憶されたデータの値に基づいて、ＭＯＳキャパシタＣ１の一端の電位を、強制的に、ＶＲＥＧにする。
【０１１５】
例えば、データ記憶部ＤＳ２に記憶されたデータが“１”、即ち、ＭＯＳトランジスタのゲートのレベルが“Ｈ”のときは、制御信号ＲＥＧが“Ｈ”になると、ＭＯＳキャパシタＣ１の一端が強制的にＶＲＥＧに設定される。また、データ記憶部ＤＳ２に記憶されたデータが“０”、即ち、ＭＯＳトランジスタのゲートのレベルが“Ｌ”のときは、ＭＯＳキャパシタＣ１の一端の電位は、ＶＲＥＧに影響されることはない。
【０１１６】
データ記憶部ＤＳ３，ＤＳ４は、上述のように、共に、ＣＭＯＳフリップフロップ回路から構成される。
【０１１７】
ＮチャネルＭＯＳトランジスタＱｎ１１は、データ記憶部ＤＳ３内のＣＭＯＳフリップフロップ回路の２つの入力端子、即ち、クロック同期式インバータＣＩ１，ＣＩ２の入力端子の電位をイコライズするための素子である。また、ＮチャネルＭＯＳトランジスタＱｎ１３は、データ記憶部ＤＳ４内のＣＭＯＳフリップフロップ回路の２つの入力端子、即ち、クロック同期式インバータＣＩ３，ＣＩ４の入力端子の電位をイコライズするための素子である。
【０１１８】
ＭＯＳトランジスタＱｎ１１は、制御信号ＥＱ１により制御され、ＭＯＳトランジスタＱｎ１３は、制御信号ＥＱ２により制御される。
【０１１９】
クロック同期式インバータＣＩ１は、クロック信号ＳＥＮ１，ＳＥＮ１ｎに同期して動作し、クロック同期式インバータＣＩ２は、クロック信号ＬＡＴ１，ＬＡＴ１ｎに同期して動作し、クロック同期式インバータＣＩ３は、クロック信号ＬＡＴ２，ＬＡＴ２ｎに同期して動作し、クロック同期式インバータＣＩ４は、クロック信号ＳＥＮ２，ＳＥＮ２ｎに同期して動作する。
【０１２０】
なお、信号“＊＊＊ｎ”は、信号“＊＊＊”のレベルを反転した反転信号を意味している。また、クロック同期式インバータＣＩ１，ＣＩ２，ＣＩ３，ＣＩ４の構成例としては、例えば、図１１に示すようになる。
【０１２１】
図１１のクロック同期式インバータは、クロック信号ＣＬＫが“Ｈ”、クロック信号ＣＬＫｎが“Ｌ”のとき、ＣＭＯＳインバータとして動作する。クロック信号ＣＬＫが“Ｌ”、クロック信号ＣＬＫｎが“Ｈ”のときには、入力信号ＩＮと出力信号ＯＵＴとは、無関係になる。
【０１２２】
データ記憶部ＤＳ１とデータ記憶部ＤＳ３との間、即ち、ＣＭＯＳキャパシタＣ１の一端（ノードＮ２）とクロック同期式インバータＣＩ１の入力端子（ノードＮ３）との間には、スイッチ素子としてのＮチャネルＭＯＳトランジスタＱｎ１０が接続される。ＭＯＳトランジスタＱｎ１０は、制御信号ＢＬＣ１により制御され、データ記憶部ＤＳ１とデータ記憶部ＤＳ３との間におけるデータの転送を実行するために使用される。
【０１２３】
データ記憶部ＤＳ２とデータ記憶部ＤＳ３との間、即ち、ＮチャネルＭＯＳトランジスタＱｎ８のゲートとクロック同期式インバータＣＩ１の入力端子との間には、スイッチ素子としてのＮチャネルＭＯＳトランジスタＱｎ９が接続される。ＭＯＳトランジスタＱｎ９は、制御信号ＤＴＧにより制御され、データ記憶部ＤＳ３に記憶されたデータを、データ記憶部ＤＳ２に転送するために使用される。
【０１２４】
データ記憶部ＤＳ１とデータ記憶部ＤＳ４との間、即ち、ＣＭＯＳキャパシタＣ１の一端（ノードＮ２）とクロック同期式インバータＣＩ４の入力端子（ノードＮ４）との間には、スイッチ素子としてのＮチャネルＭＯＳトランジスタＱｎ１２が接続される。ＭＯＳトランジスタＱｎ１２は、制御信号ＢＬＣ２により制御され、データ記憶部ＤＳ１とデータ記憶部ＤＳ４との間におけるデータの転送を実行するために使用される。
【０１２５】
ＮチャネルＭＯＳトランジスタＱｎ１４は、データ記憶部ＤＳ４のデータをリセットするための素子である。例えば、ライト動作時、ＭＯＳトランジスタＱｎ１４は、ライトデータがデータ記憶部ＤＳ４に入力する前に、データ記憶部ＤＳ４の状態を“１”−データ保持の状態、即ち、ノードＮ４を“Ｈ”の状態に設定する。
【０１２６】
具体的には、制御信号ＰＲＳＴが“Ｈ”になると、クロック同期式インバータＣＩ４の出力端子は、“Ｌ”になり、ノードＮ４は、“Ｈ”になる。
【０１２７】
データ記憶部ＤＳ４は、カラム選択スイッチとしてのＮチャネルＭＯＳトランジスタＱｎ１５，Ｑｎ１６を経由して、Ｉ／Ｏ線（データ線）ＩＯ，ｎＩＯに接続される。
【０１２８】
カラムアドレス信号により選択されたカラムでは、カラム選択信号ＣＳＬｋ（Ｋ＝０、１，・・・４２５５）が“Ｈ”になるため、その選択されたカラム内のデータ記憶部ＤＳ４とＩ／Ｏ線ＩＯ，ｎＩＯとが電気的に接続される。
【０１２９】
ＮチャネルＭＯＳトランジスタＱｎ１７は、データ記憶部ＤＳ３に記憶されたデータに基づいて、共通ノードＰＣＤのレベルを決定するための素子である。
【０１３０】
例えば、“０”−プログラミング時、“０”−データは、データ記憶部ＤＳ３に記憶される。つまり、ノードＮ４が“Ｌ”、ノードＮ５が“Ｈ”の状態であるため、ＮチャネルＭＯＳトランジスタＱｎ１７は、オン状態となり、共通ノードＰＣＤのレベルを“Ｌ”にする。ベリファイリード時、メモリセルにきちんと“０”−データがライトされていれば、リードデータは、“１”になるため、データ記憶部ＤＳ４に、“１”−データが記憶される。つまり、ノードＮ４が“Ｈ”、ノードＮ５が“Ｌ”の状態に変化するため、ＮチャネルＭＯＳトランジスタＱｎ１７は、オフ状態となり、共通ノードＰＣＤのレベルを“Ｈ”にする。
【０１３１】
なお、詳しい動作については、後述する。
【０１３２】
上述の説明においては、データに関しては、“０”と“１”が存在し、ノードのレベルに関しては、“Ｌ”と“Ｈ”が存在するが、両者の関係は、“０”が“Ｌ”に相当し、“１”が“Ｈ”に相当する。
【０１３３】
また、本例では、１カラム内に２本のビット線ＢＬｅｋ，ＢＬｏｋが配置され、この２本のビット線ＢＬｅｋ，ＢＬｏｋに１個のサブデータ回路が接続される。このように、１個のサブデータ回路に２本のビット線ＢＬｅｋ，ＢＬｏｋを接続する理由は、▲１▼　読み出し時において、互いに隣接するビット線間に容量結合によるノイズが生じることを防止する（シールドビット線読み出し手法の採用）、▲２▼　データ回路の数を減らし、チップ面積の縮小を図る、などの目的を達成することにある。
【０１３４】
（６）　　ワード線制御回路の構成例
図１２は、ワード線制御回路の構成例を示している。
【０１３５】
メモリセルアレイ１は、Ｙ方向に配置された複数個のメモリセルブロックから構成される。各々のメモリセルブロックは、Ｘ方向に配置された複数のＮＡＮＤセルユニットを有する。メモリセルアレイ及びＮＡＮＤセルユニットの回路例については、図３に示す通りである。
【０１３６】
但し、本例では、１ブロック内のワード線ＷＬ１，…ＷＬ１６の数は、１６本を前提としており、上述の例（図３）とは異なっている。しかし、この点は、特に、重要な点ではないので、そのまま説明する。
【０１３７】
本例では、１個のメモリセルブロックに対応して、１個のロウアドレスデコーダと１個のワード線ドライバが設けられる。
【０１３８】
例えば、第１のメモリセルブロック内のワード線ＷＬ１，…ＷＬ１６及びセレクトゲート線ＳＧ１，ＳＧ２は、第１のワード線ドライバＲＭＡＩＮ１に接続され、第１のワード線ドライバＲＭＡＩＮ１は、第１のメモリセルブロックの選択／非選択を決める第１のロウアドレスデコーダＲＡＤＤ１の出力信号（デコード結果）を受ける。
【０１３９】
このように、第ｉ（ｉ＝１，２，…）のメモリセルブロック内のワード線ＷＬ１，…ＷＬ１６及びセレクトゲート線ＳＧ１，ＳＧ２は、第ｉのワード線ドライバＲＭＡＩＮｉに接続され、第ｉのワード線ドライバＲＭＡＩＮｉは、第ｉのメモリセルブロックの選択／非選択を決める第ｉのロウアドレスデコーダＲＡＤＤｉの出力信号（デコード結果）を受ける。
【０１４０】
ここで、本例では、ワード線ドライバを、メモリセルアレイ１の両側（Ｘ方向の２つの端部）に配置している。
【０１４１】
具体的には、奇数番目のメモリセルアレイブロックに対応するワード線ドライバＲＭＡＩＮ１，ＲＭＡＩＮ３，…は、メモリセルアレイ１のＸ方向の２つの端部のうちの一方（左側）に配置され、偶数番目のメモリセルアレイブロックに対応するワード線ドライバＲＭＡＩＮ２，ＲＭＡＩＮ４，…は、メモリセルアレイ１のＸ方向の２つの端部のうちの他方（右側）に配置される。
【０１４２】
このように、ワード線ドライバＲＭＡＩＮｉを、メモリセルアレイ１の両端に配置することにより、ワード線ドライバＲＭＡＩＮｉの設計を容易にする（又はレイアウトの自由度を大きくする）ことができる。つまり、本例の場合、１個のワード線ドライバは、Ｙ方向に関して、メモリセルブロック２個分のレイアウトスペースを確保できる。
【０１４３】
また、１つのメモリセルブロック内のワード線ＷＬ１，…ＷＬ１６及びセレクトゲート線ＳＧ１，ＳＧ２は、このメモリセルブロックに対応するワード線ドライバにより、常に、メモリセルアレイ１の一方側（又は他方側）から駆動されるため、選択されたブロック内の所定の１個のＮＡＮＤセルユニット内のメモリセル及びセレクトトランジスタに関して、駆動信号が供給されるのタイミングのずれは生じない。
【０１４４】
一方、ロウアドレスデコーダＲＡＤＤｉ（ｉ＝１，２，…）は、メモリセルアレイ１のＸ方向の２つの端部のうちの一方（片側）のみに配置される。この場合、ロウアドレス信号をロウアドレスデコーダＲＡＤＤｉに供給するための信号線（アドレスバス）をメモリセルアレイ１の片側のみに配置すればよいため、アドレスバスの面積を減らすことができ、結果として、チップ面積の縮小に貢献できる。
【０１４５】
つまり、仮に、ワード線ドライバＲＭＡＩＮｉと同様に、ロウアドレスデコーダＲＡＤＤｉを、メモリセルアレイ１のＸ方向の２つの端部のそれぞれに配置すると、アドレスバスについても、メモリセルアレイ１のＸ方向の２つの端部のそれぞれに配置しなければならず、チップ面積の縮小に関しては、不利となる。
【０１４６】
ロウアドレスデコーダＲＡＤＤｉを、メモリセルアレイ１のＸ方向の２つの端部のうちの一方（片側）のみに配置した結果、本例では、信号線２２がメモリセルアレイ１上に配置される。信号線２２は、偶数番目のメモリセルアレイブロックに対応するロウアドレスデコーダＲＡＤＤ２，ＲＡＤＤ４，…の出力信号（デコード結果）ＲＤＥＣＡＤＳを、ワード線ドライバＲＭＡＩＮ２，ＲＭＡＩＮ４，…に供給するために使用される。
【０１４７】
この信号線２２には、通常動作時において、信号ＲＤＥＣＡＤＳが伝わる。従って、通常動作時、この信号線２２の電位がメモリセルの動作に悪影響を与えないようにする必要がある。なお、信号線２２の電位がメモリセルの動作に悪影響を与えないようなロウアドレスデコーダＲＡＤＤｉ及びワード線ドライバＲＭＡＩＮｉについては、後述する。
【０１４８】
電位発生回路９Ａは、昇圧回路（チャージポンプ回路）を有し、例えば、ライト動作時に使用するライト電位Ｖｐｐや転送電位Ｖｐａｓｓを生成する。電位発生回路９Ａは、切替回路９Ｂに接続される。切替回路９Ｂは、ライト電位Ｖｐｐ、転送電位Ｖｐａｓｓ、チップ内電源電位Ｖｄｄ、接地電位Ｖｓｓなどの電位を、ワード線ＷＬ１，…ＷＬ１６に対応する信号線ＣＧ１，…ＣＧ１６に振り分ける機能を有する。
【０１４９】
信号線ＣＧ１，…ＣＧ１６は、ワード線ドライバＲＭＡＩＮｉに接続される。即ち、信号線ＣＧ１，…ＣＧ１６は、ワード線ドライバＲＭＡＩＮｉ内の電位転送用トランジスタＨＮｔ１，ＨＮｔ２，…ＨＮｔ１６（後述する）を経由して、ワード線ＷＬ１，…ＷＬ１６に接続される。
【０１５０】
（７）　　ロウアドレスデコーダ及びワード線ドライバの回路例
図１３は、奇数番目のメモリセルブロックに対応して設けられるロウアドレスデコーダの主要部を示している。
【０１５１】
このロウアドレスデコーダＲＡＤＤ１は、正確には、ブロックデコーダとして機能する。即ち、例えば、第１のメモリセルブロックが選択されるとき、ロウアドレス信号ＡＲＯＷｉ，…ＡＲＯＷｊの全てが“Ｈ”となり、出力信号ＲＤＥＣＡＤが“Ｈ”となる。
【０１５２】
図１４は、奇数番目のメモリセルブロックに対応して設けられるワード線ドライバの主要部を示している。
【０１５３】
ワード線ドライバＲＭＡＩＮ１の主な構成要素は、高電圧スイッチング回路２６と転送用ＭＯＳトランジスタＨＮ５，ＨＮ６，ＨＮｔ１，…ＨＮｔ１６である。
【０１５４】
高電圧スイッチング回路２６は、ＭＯＳキャパシタＤＨＮ４及びＭＯＳトランジスタＩＨＮ１からなる第１の昇圧ユニットと、ＭＯＳキャパシタＤＨＮ５及びＭＯＳトランジスタＩＨＮ２からなる第２の昇圧ユニットを備える。
【０１５５】
ＭＯＳトランジスタＨＮ３のゲートは、ＭＯＳトランジスタＩＨＮ１，ＩＨＮ２の接続ノードＢに接続される。この場合、ＭＯＳトランジスタＨＮ３のゲートとソースの電位レベルが逆相を維持しつつ、クロック信号Ｏｗｃに同期して、次第に各ノードＡ，Ｂ，ＴｒａｎｓｆｅｒＧ１の電位が上昇するため、昇圧効率が向上する。
【０１５６】
高電圧スイッチング回路２６は、ロウアドレスデコーダＲＡＤＤ１の出力信号ＲＤＥＣＡＤが“Ｈ”のとき、動作状態となる。即ち、出力信号ＲＤＥＣＡＤが“Ｈ”のとき、ＮＡＮＤ回路ＮＡＮＤ１の出力信号は、クロック信号Ｏｗｃと逆相のクロック信号となる。ＮＡＮＤ回路ＮＡＮＤ１の出力信号は、ＭＯＳキャパシタＤＨＮ４，ＤＨＮ５の一端に印加される。
【０１５７】
その結果、転送用ＭＯＳトランジスタＨＮ５，ＨＮ６，ＨＮｔ１，…ＨＮｔ１６のゲートに昇圧電位が印加され、転送用ＭＯＳトランジスタＨＮ５，ＨＮ６，ＨＮｔ１，…ＨＮｔ１６は、オン状態となる。
【０１５８】
ロウアドレスデコーダＲＡＤＤ１の出力信号ＲＤＥＣＡＤが“Ｈ”のとき、ＭＯＳトランジスタＨＮ７，ＨＮ８は、オフ状態となる。この時、信号線ＳＧＤ，ＳＧＳは、例えば、チップ内電源電位Ｖｄｄとなり、このＶｄｄは、転送用ＭＯＳトランジスタＨＮ５，ＨＮ６を経由して、セレクトゲート線ＳＧ１，ＳＧ２に供給される。
【０１５９】
また、信号線ＣＧ１，ＣＧ２，…ＣＧ１６は、切替回路９Ｂ（図１参照）により、それぞれ動作モードに応じて所定の電位に設定される。そして、信号線ＣＧ１，ＣＧ２，…ＣＧ１６の電位は、転送用ＭＯＳトランジスタＨＮｔ１，…ＨＮｔ１６を経由して、ワード線ＷＬ１，ＷＬ２，…ＷＬ１６に供給される。
【０１６０】
図１５は、偶数番目のメモリセルブロックに対応して設けられるロウアドレスデコーダの主要部を示している。
【０１６１】
ロウアドレスデコーダＲＡＤＤ２は、図１３のロウアドレスデコーダＲＡＤＤ１と同じ回路を含んでいる。即ち、破線Ｘ１で囲んだ部分の回路は、図１３のロウアドレスデコーダＲＡＤＤ１と同じである。なお、図１５において、図１３と同じ部分には、同じ符号が付してある。
【０１６２】
このロウアドレスデコーダＲＡＤＤ２は、インバータＩ４、クロックドインバータＣＩＮＶ３，ＣＩＮＶ４及びデプレッション型高電圧ＮチャネルＭＯＳトランジスタＤＨＮ６，ＤＨＮ７を有している。
【０１６３】
クロックドインバータＣＩＮＶ４は、イレーズ時に、選択されたメモリセルブロックに対応するロウアドレスデコーダの出力信号ＲＤＥＣＡＤＳ（図１２の信号線２２の電位）を接地電位Ｖｓｓにし、非選択のメモリセルブロックに対応するロウアドレスデコーダの出力信号ＲＤＥＣＡＤＳをチップ内電源電位Ｖｄｄにする機能を有する。
【０１６４】
ＭＯＳトランジスタＤＨＮ６は、後述する図１６のトランジスタＤＨＮ９と共に、信号線２２（図１２参照）をフローティング状態にする機能を有する。
【０１６５】
イレーズ時、選択されたメモリセルブロックでは、信号ＲＤＥＣＡＤＳ１は、“Ｈ（Ｖｄｄ）”となり、非選択のメモリセルブロックでは、信号ＲＤＥＣＡＤＳ１は、“Ｌ（Ｖｓｓ）”となる。
【０１６６】
仮に、この信号ＲＤＥＣＡＤＳ１を、メモリセルアレイ上の信号線２２（図１２参照）に与えると、非選択のメモリセルブロックでは、メモリセルアレイ上の信号線２２（図１２参照）が“Ｌ（Ｖｓｓ）”となる。
【０１６７】
この場合、セルウェルとワード線の容量カップリングにより、セルウェルにイレーズ電位Ｖｅｒａを与えたときに、非選択のメモリセルブロック内のワード線の電位を上昇させようとすると、接地電位Ｖｓｓである信号線２２（図１２）の影響により、ワード線の電位が十分に上昇しなくなる。
【０１６８】
本例では、クロックドインバータＣＩＮＶ４を設けているため、イレーズ時、選択されたメモリセルブロックでは、出力信号ＲＤＥＣＡＤＳは、“Ｌ（Ｖｓｓ）”となり、非選択のメモリセルブロックでは、信号ＲＤＥＣＡＤＳは、“Ｈ（Ｖｄｄ）”となる。
【０１６９】
即ち、非選択のメモリセルブロックでは、メモリセルアレイ上の信号線２２（図１２参照）は、“Ｈ（Ｖｄｄ）”となり、かつ、ＭＯＳトランジスタＤＨＮ６とＭＯＳトランジスタＤＨＮ９（図１６）のカットオフによりフローティング状態となる。
【０１７０】
従って、セルウェルとワード線の容量カップリングにより、非選択のメモリセルブロック内のワード線の電位を上昇させる場合、チップ内電源電位Ｖｄｄである信号線２２（図１２）の影響は少なくなり、ワード線の電位が十分に上昇する。
【０１７１】
図１６は、偶数番目のメモリセルブロックに対応して設けられるワード線ドライバの主要部を示している。
【０１７２】
ワード線ドライバＲＭＡＩＮ２の主な構成要素のうち、高電圧スイッチ回路２６と転送用ＭＯＳトランジスタＨＮ５，ＨＮ６，ＨＮｔ１，…ＨＮｔ１６に関しては、図１４に示すワード線ドライバＲＭＡＩＮ１と同じである。即ち、破線Ｘ２で囲んだ部分の回路は、図１４のロウアドレスデコーダＲＡＤＤ１とほぼ同じである。なお、図１６において、図１４と同じ部分には、同じ符号が付してある。
【０１７３】
ワード線ドライバＲＭＡＩＮ２は、クロックドインバータＣＩＮＶ５，ＣＩＮＶ６，ＣＩＮＶ７、デプレッション型高電圧ＮチャネルＭＯＳトランジスタＤＨＮ８，ＤＨＮ９及びエンハンスメント型ＰチャネルＭＯＳトランジスタＴＰ６，ＴＰ７を有している。
【０１７４】
クロックドインバータＣＩＮＶ７は、イレーズ時に、選択されたメモリセルブロックに対応するロウアドレスデコーダの出力信号ＲＤＥＣＡＤＳ（図１２の信号線２２の電位）を接地電位Ｖｓｓからチップ内電源電位Ｖｄｄに戻し、非選択のメモリセルブロックに対応するロウアドレスデコーダの出力信号ＲＤＥＣＡＤＳをチップ内電源電位Ｖｄｄから接地電位Ｖｓｓに戻した後に、破線Ｘ２内の回路に、信号ＲＤＥＣＡＤＳ２として与える機能を有する。
【０１７５】
ＭＯＳトランジスタＤＨＮ９は、図１５のトランジスタＤＨＮ６と共に、信号線２２（図１２参照）をフローティング状態にする機能を有する。
【０１７６】
このように、図１５のロウアドレスデコーダＲＡＤＤ２内のインバータＩ４、クロックドインバータＣＩＮＶ３，ＣＩＮＶ４及びデプレッション型高電圧ＮチャネルＭＯＳトランジスタＤＨＮ６，ＤＨＮ７と、図１６のワード線ドライバＲＭＡＩＮ２内のクロックドインバータＣＩＮＶ５，ＣＩＮＶ６，ＣＩＮＶ７、デプレッション型高電圧ＮチャネルＭＯＳトランジスタＤＨＮ８，ＤＨＮ９及びエンハンスメント型ＰチャネルＭＯＳトランジスタＴＰ６，ＴＰ７は、同一の目的を達成するために、ペアで使用される。
【０１７７】
なお、図１３乃至図１６では、これらの回路に電源電位としてＶｄｄ（外部電源電位Ｖｃｃよりも低いチップ内電源電位）を供給したが、これに代えて、例えば、外部電源電位Ｖｃｃを供給してもよい。
【０１７８】
（８）　　信号線２２の電位レベルに関して
次に、各動作モードにおいて、信号線２２（図１２参照）の電位レベルがどのようになるかについて説明する。なお、ここでは、信号線２２の電位レベルについてのみ説明する。
【０１７９】
本例では、信号線２２（図１２）は、偶数番目のメモリセルブロックに対応するロウアドレスデコーダ（図１５）とワード線ドライバ（図１６）を接続する。従って、図１５及び図１６を参照しつつ、信号線２２（図１２）を伝わるワード線ドライバ選択信号ＲＤＥＣＡＤＳの電位レベルについて説明する。
【０１８０】
ロウアドレスデコーダＲＡＤＤ２の出力信号ＲＤＥＣＡＤＳの電位レベルは、動作モードによって異なる。
【０１８１】
イレーズ動作以外の動作（ライト、リード、ベリファイリード）では、ＲＯＷＥＲＡＳＥ１Ｂ、ＲＯＷＰＲＯＧ１、ＲＯＷＥＲＡＳＥ２Ｂ、ＲＯＷＥＲＡＳＥ３ｎ，ＲＯＷＧＡＴＥを、それぞれ電源電位Ｖｄｄ（外部電源電位Ｖｃｃよりも低いチップ内電源電位。但し、外部電源電位Ｖｃｃでもよい。）に設定し、ＲＯＷＥＲＡＳＥ１、ＲＯＷＰＲＯＧ１Ｂ、ＲＯＷＥＲＡＳＥ２を、それぞれ接地電位Ｖｓｓに設定する。
【０１８２】
この時、クロックドインバータＣＩＮＶ３，ＣＩＮＶ５，ＣＩＮＶ６が動作状態になり、クロックドインバータＣＩＮＶ４，ＣＩＮＶ７が非動作状態になる。また、ＭＯＳトランジスタＴＰ６は、オフ状態になる。
【０１８３】
選択されたメモリセルブロックでは、破線Ｘ１で囲んだ部分の出力信号ＲＤＥＣＡＤＳ１は、“Ｈ”、即ち、チップ内電源電位Ｖｄｄになり、ロウアドレスデコーダＲＡＤＤ２の出力信号ＲＤＥＣＡＤＳも、“Ｈ”、即ち、チップ内電源電位Ｖｄｄになる。
【０１８４】
一方、非選択のメモリセルブロックでは、破線Ｘ１で囲んだ部分の出力信号ＲＤＥＣＡＤＳ１は、“Ｌ”、即ち、接地電位Ｖｓｓになり、ロウアドレスデコーダＲＡＤＤ２の出力信号ＲＤＥＣＡＤＳも、“Ｌ”、即ち、接地電位Ｖｓｓになる。
【０１８５】
従って、イレーズ動作以外の動作では、非選択のメモリセルブロック内のメモリセルアレイ上に配置される信号線２２（図１２参照）は、接地電位Ｖｓｓ、非選択のメモリセルブロック内のセレクトゲート線ＳＧ１，ＳＧ２も、接地電位Ｖｓｓとなり、これらの信号線２２，ＳＧ１，ＳＧ２は、ビット線とワード線の間のシールド線として機能する。結果として、ビット線を伝わるデータに生じるカップリングノイズを低減できる。
【０１８６】
イレーズ動作では、ＲＯＷＥＲＡＳＥ１Ｂ、ＲＯＷＰＲＯＧ１、ＲＯＷＥＲＡＳＥ２Ｂ、ＲＯＷＥＲＡＳＥ３ｎ，ＲＯＷＧＡＴＥを、それぞれ接地電位Ｖｓｓに設定し、ＲＯＷＥＲＡＳＥ１、ＲＯＷＰＲＯＧ１Ｂ、ＲＯＷＥＲＡＳＥ２を、それぞれチップ内電源電位Ｖｄｄ（電源電位Ｖｃｃでもよい。）に設定する。
【０１８７】
この時、クロックドインバータＣＩＮＶ４，ＣＩＮＶ７が動作状態になり、クロックドインバータＣＩＮＶ３，ＣＩＮＶ５，ＣＩＮＶ６が非動作状態になる。また、ＭＯＳトランジスタＴＰ６は、オン状態になる。
【０１８８】
選択されたメモリセルブロックでは、破線Ｘ１で囲んだ部分の出力信号ＲＤＥＣＡＤＳ１は、“Ｈ”、即ち、チップ内電源電位Ｖｄｄになり、ロウアドレスデコーダＲＡＤＤ２の出力信号ＲＤＥＣＡＤＳは、“Ｌ”、即ち、接地電位Ｖｓｓになる。
【０１８９】
一方、非選択のメモリセルブロックでは、破線Ｘ１で囲んだ部分の出力信号ＲＤＥＣＡＤＳ１は、“Ｌ”、即ち、接地電位Ｖｓｓになり、ロウアドレスデコーダＲＡＤＤ２の出力信号ＲＤＥＣＡＤＳは、“Ｈ”、即ち、チップ内電源電位Ｖｄｄになる。
【０１９０】
また、ＲＯＷＧＡＴＥが接地電位Ｖｓｓであるため、非選択のメモリセルブロック内の信号線２２（図１２参照）は、その電位（ＲＤＥＣＡＤＳの電位）が１〜１．５Ｖ程度になると、ＭＯＳトランジスタＤＨＮ６，ＤＨＮ９がカットオフすることにより、フローティング状態になる。
【０１９１】
このように、イレーズ動作では、非選択のメモリセルブロック内のメモリセルアレイ上に配置される信号線２２（図１２参照）は、１〜１．５Ｖで、かつ、フローティング状態となる。つまり、セルウェルにイレーズ電位Ｖｅｒａを与えたときに、信号線２２（図１２）の電位も、ワード線と同様に、容量カップリングにより上昇するため、信号線２２（図１２）がワード線の電位の上昇を抑えることがない。
【０１９２】
従って、セルウェルにイレーズ電位Ｖｅｒａを与えたときに、セルウェルとワード線の間の容量カップリングにより、非選択のメモリセルブロック内のワード線の電位が上昇し易くなるという効果を得ることができる。
【０１９３】
また、これに伴い、非選択のメモリセルブロック内のメモリセルのトンネル酸化膜に大きな電界がかかることがないため、非選択のメモリセルブロックにおける誤消去を防止できる。
【０１９４】
ところで、図１５の破線Ｘ内のヒューズ素子（図１３のヒューズ素子も同じ）は、そのヒューズ素子（ロウアドレスデコーダ）に対応するメモリセルブロックをユーザ用の通常のメモリ領域とする場合には、切断されない。
【０１９５】
しかし、そのヒューズ素子（ロウアドレスデコーダ）に対応するメモリセルブロックを、例えば、デバイス・コードを記憶するＲＯＭ・ＢＬＯＣＫ領域とする場合には、そのヒューズ素子を切断し、ユーザが、ＲＯＭ・ＢＬＯＣＫ領域に対して、自由に、ライト／イレーズを行えないようにしている。
【０１９６】
このＲＯＭ・ＢＬＯＣＫ領域は、以下の意義がある。
近年、ＮＡＮＤ型フラッシュメモリは、様々な電子機器のメモリに使用されている。しかし、電話通信により音楽情報を記憶するためのメモリなど、ＮＡＮＤ型フラッシュメモリは、著作権に関わるデータのメモリとして使用される場合がある。
【０１９７】
そこで、ＮＡＮＤ型フラッシュメモリには、不正コピーを防止するために、チップの番号、即ち、デバイス・コードが記憶される。
【０１９８】
このデバイス・コードは、個々のＮＡＮＤ型フラッシュメモリに固有のものであるが、仮に、ユーザがこのデバイス・コードを自由に書き換えられるようでは、デバイス・コードの本来の目的を達成することができない。
【０１９９】
このため、デバイス・コードは、製品の出荷前に、ＮＡＮＤ型フラッシュメモリのＲＯＭ・ＢＬＯＣＫ領域に書き込まれ、ＲＯＭ・ＢＬＯＣＫ領域に対しては、ユーザがライト／イレーズを行えないようにしている。つまり、ＲＯＭ・ＢＬＯＣＫ領域となるメモリセルブロックでは、ヒューズ素子が切断される。
【０２００】
これにより、例えば、情報提供側のＮＡＮＤ型フラッシュメモリから情報受け取り側のＮＡＮＤ型フラッシュメモリに音楽情報をコピーしようとする場合、情報提供側のＮＡＮＤ型フラッシュメモリからデバイス・コードを読み出し、これが、情報受け取り側のＮＡＮＤ型フラッシュメモリのデバイス・コードと異なる場合には、コピーができないようにしている。
【０２０１】
ヒューズ素子は、ＲＯＭ・ＢＬＯＣＫ領域となるメモリセルブロックにデバイス・コードをプログラムした直後に切断する。
【０２０２】
仮に、ヒューズ素子を切断しない状態で、出荷前試験を行うと、この試験で、デバイス・コードが消去されてしまうためである。
【０２０３】
即ち、出荷前試験では、試験時間の短縮のために、全ブロックを同時に選択して、ライト／イレーズを行う。つまり、全てのロウアドレス信号ＡＲＯＷｉ，…ＡＲＯＷｊが“Ｈ”になるため、ヒューズ素子が切断されていないと、ＣＭＤ　ＲＯＭＢＡが“Ｌ”であっても、ＲＤＥＣＡＤＳ１が“Ｈ”（図１３では、ＲＤＥＣＡＤが“Ｈ”）となり、ＲＯＭ・ＢＬＯＣＫ領域となるメモリセルブロックが選択されてしまう。
【０２０４】
一方、出荷前試験において、全てのロウアドレス信号ＡＲＯＷｉ，…ＡＲＯＷｊが“Ｈ”になっても、ヒューズ素子が切断されていれば、ＣＭＤ　ＲＯＭＢＡが“Ｌ”であるため、ＲＤＥＣＡＤＳ１が“Ｌ”（図１３では、ＲＤＥＣＡＤが“Ｌ”）となり、ＲＯＭ・ＢＬＯＣＫ領域となるメモリセルブロックは、選択されない。
【０２０５】
ヒューズ素子を切断しても、ＲＯＭ・ＢＬＯＣＫ領域に記憶されたデバイス・コードを読み出す必要がある。
【０２０６】
ＲＯＭ・ＢＬＯＣＫ領域に対するデータ読み出しは、ＣＭＤ　ＲＯＭＢＡを“Ｈ”にすることにより達成できる。つまり、ＣＭＤ　ＲＯＭＢＡが“Ｈ”、ＲＯＭ・ＢＬＯＣＫ領域内のＡＲＯＷｉ，…ＡＲＯＷｊが“Ｈ”になると、ＲＯＭ・ＢＬＯＣＫ領域となるメモリセルブロックが選択される。
【０２０７】
また、ヒューズ素子を切断した後においても、特殊なコマンドを入力することで、ＣＭＤ　ＲＯＭＢＡ及びＲＯＭ・ＢＬＯＣＫ領域内のＡＲＯＷｉ，…ＡＲＯＷｊを“Ｈ”にすることにより、ＲＯＭ・ＢＬＯＣＫ領域内のデータを書き換えることも可能である。この場合には、ＣＭＤ　ＲＯＭＢＡを“Ｈ”にするコマンドは、一般のユーザには非公開にし、不正に、ＲＯＭ・ＢＬＯＣＫ領域内のデータが書き換えられないようにする。
【０２０８】
なお、本例では、ＲＯＭ・ＢＬＯＣＫ領域のヒューズを切断する場合を説明したが、図１３のヒューズや図１５の破線Ｘ内のヒューズは、メモリセルブロックが不良ブロックである場合にも、切断される。この場合、この不良ブロックは、リダンダンシイ回路により、予備のブロックに置き換えられる。
【０２０９】
３．　基本動作の説明
以下では、リード、プログラムなどの各動作モードにおける本発明の４値ＮＡＮＤセル型フラッシュメモリ（図１）の主要部、特に、データ回路（図１０）の動作について詳細に説明する。
【０２１０】
動作の説明を行う前に、まず、メモリセルの閾値電圧とプログラミング／リード方法の一例について簡単に説明する。
【０２１１】
（１）　　メモリセルの閾値電圧とプログラミング／リード方法
図１７は、４値ＮＡＮＤセル型フラッシュメモリのメモリセルの閾値電圧（Ｖｔｈ）の分布を示している。
【０２１２】
１つのメモリセルには、２ビットデータ（４値データ）が記憶される。本例では、上述したように、２ビットデータを、“１１”、“１０”、“００”、“０１”とする。２ビットデータのうちの１ビットは、論理下位ページデータ（□で示す）として、また、他の１ビットは、論理上位ページデータ（○で示す）として、同一のメモリセルに記憶される。
【０２１３】
２ビットデータ（“１１”、“１０”、“００”、“０１”）とメモリセルの閾値電圧との関係は、図１７に示す関係になる。
【０２１４】
“１１”は、イレーズ状態である。イレーズ状態では、論理下位ページデータの値及び論理上位ページデータの値が、共に、“１”となっている。イレーズ状態のメモリセルは、負の閾値電圧Ｖｔｈを有する。
【０２１５】
“１０”、“００”、“０１”は、ライト状態である。ライト状態のメモリセルは、正の閾値電圧Ｖｔｈを有する。また、ライト状態のうち、“１０”状態は、最も低い閾値電圧を有し、“０１”状態は、最も高い閾値電圧を有し、“００”状態は、“１０”状態と“０１”状態の間の閾値電圧を有する。
【０２１６】
２ビットデータは、上述のように、論理下位ページデータと論理上位ページデータとからなり、２回の書き込み動作により、メモリセルに書き込まれる。
【０２１７】
まず、論理下位ページデータのプログラミングが行われる。
当初、全てのメモリセルは、イレーズ状態、即ち、“１１”状態にあるものとする。この後、図１８に示すように、論理下位ページデータのプログラミングを行うと、メモリセルの閾値電圧Ｖｔｈの分布は、ライトデータ（論理下位ページデータ）の値（“１”，“０”）に応じて、２つに分けられる。
【０２１８】
即ち、論理下位ページデータが“１”の場合には、ビット線を“Ｈ”にすることで（ワード線はライト電位）、メモリセルのトンネル酸化膜に高電界がかからないようにし、メモリセルの閾値電圧Ｖｔｈの上昇を防止する。その結果、メモリセルは、イレーズ状態（“１１”状態）を維持する（論理下位ページデータ“１”のプログラミング）。
【０２１９】
一方、論理下位ページデータが“０”の場合には、ビット線を“Ｌ”にすることで（ワード線はライト電位）、メモリセルのトンネル酸化膜に高電界を印加し、フローティングゲート電極に電子を注入して、メモリセルの閾値電圧Ｖｔｈを所定量だけ上昇させる。その結果、メモリセルは、ライト状態（“１０”状態）に変化する（論理下位ページデータ“０”のプログラミング）。
【０２２０】
この後、論理上位ページデータのプログラミングが行われる。
論理上位ページデータのプログラミングは、チップの外部から入力されるライトデータ（即ち、論理上位ページデータ）と、既に、メモリセルにプログラミングされている論理下位ページデータとに基づいて行われる。
【０２２１】
なお、論理下位ページデータについては、論理上位ページデータのプログラミング前に、メモリセルからデータ回路に読み出し、かつ、保持しておく（　Ｉｎｔｅｒｎａｌ　ｄａｔａ　ｌｏａｄ　）。
【０２２２】
図１９に示すように、論理上位ページデータが“１”の場合には、ビット線を“Ｈ”にすることで（ワード線はライト電位）、メモリセルのトンネル酸化膜に高電界がかからないようにし、メモリセルの閾値電圧Ｖｔｈの上昇を防止する。その結果、論理下位ページデータが“１”である“１１”状態（イレーズ状態）のメモリセルは、“１１”状態をそのまま維持する（論理上位ページデータ“１”のプログラミング）。また、論理下位ページデータが“０”である“１０”状態のメモリセルは、“１０”状態をそのまま維持する（論理上位ページデータ“１”のプログラミング）。
【０２２３】
一方、図１９に示すように、論理上位ページデータが“０”の場合には、ビット線を“Ｌ”にすることで、メモリセルのトンネル酸化膜に高電界を印加し、フローティングゲート電極に電子を注入して、メモリセルの閾値電圧Ｖｔｈを所定量だけ上昇させる。その結果、論理下位ページデータが“１”である“１１”状態（イレーズ状態）のメモリセルは、“０１”状態に変化する（論理上位ページデータ“０”のプログラミング）。また、論理下位ページデータが“０”である“１０”状態のメモリセルは、“００”状態に変化する（論理上位ページデータ“０”のプログラミング）。
【０２２４】
つまり、本例では、論理下位ページデータが“１”、論理上位ページデータが“１”のとき、データ“１１”がメモリセルに書き込まれ、論理下位ページデータが“０”、論理上位ページデータが“１”のとき、データ“１０”がメモリセルに書き込まれる。また、論理下位ページデータが“１”、論理上位ページデータが“０”のとき、データ“０１”がメモリセルに書き込まれ、論理下位ページデータが“０”、論理上位ページデータが“０”のとき、データ“００”がメモリセルに書き込まれる。
【０２２５】
このように、２回のプログラミング動作により、メモリセルの閾値電圧Ｖｔｈの分布は、４つ（“１１”，“１０”，“００”，“０１”）に分けられる。
【０２２６】
本例では、論理上位ページデータが“０”のとき、“１１”状態のメモリセルは、“０１”状態に変化し、“１０”状態のメモリセルは、“００”状態に変化する（図１９参照）。
【０２２７】
ここで、図１９から明らかなように、“１１”状態を“０１”状態に変える場合の閾値電圧の変動量は、“１０”状態を“００”状態に変える場合の閾値電圧の変動量よりも大きい。つまり、“００”−プログラミングを行うメモリセル及び“０１”−プログラミングを行うメモリセルに対して、ライトパルスは、同一条件で与えられるため、“００”−プログラミングは、“０１”−プログラミングよりも早く終了する。
【０２２８】
この場合、“００”−プログラミング終了後の“００”−ベリファイリードを省略し、この後、“０１”−ベリファイリードのみを行うようにして、プログラム時間の短縮を図ることもできる。
【０２２９】
なお、図１７において、Ｖｃｇｖ１０は、“１０”−ベリファイリードに用いるリード電位であり、例えば、０．４Ｖとなる。Ｖｃｇｖ００は、“００”−ベリファイリードに用いるリード電位（例えば、１．４Ｖ）であり、Ｖｃｇｖ０１は、“０１”−ベリファイリードに用いるリード電位（例えば、２．４Ｖ）である。Ｖｒｅａｄは、非選択のワード線に与える転送電位である。
【０２３０】
メモリセルの閾値電圧がＶｃｇｒ１０未満であれば、メモリセルのデータは、“１１”であり、メモリセルの閾値電圧が、Ｖｃｇｒ１０を超え、Ｖｃｇｒ００を下回る場合には、メモリセルのデータは、“１０”であり、メモリセルの閾値電圧が、Ｖｃｇｒ００を超え、Ｖｃｇｒ０１を下回る場合には、メモリセルのデータは、“００”であり、メモリセルの閾値電圧がＶｃｇｒ０１を超える場合には、メモリセルのデータは、“０１”となる。
【０２３１】
論理下位ページデータの通常の読み出しは、２回のリード動作（“ＲＥＡＤ０１”，“ＲＥＡＤ１０”）により実現できる。ＲＥＡＤ０１は、リード電位として、Ｖｃｇｒ０１（例えば、２Ｖ）を用いたリード動作のことであり、ＲＥＡＤ１０は、リード電位として、Ｖｃｇｒ１０（例えば、０Ｖ）を用いたリード動作のことである。また、論理上位ページデータの読み出しは、１回の読み出し動作（ＲＥＡＤ“００”）により実現できる。ＲＥＡＤ００は、リード電位として、Ｖｃｇｒ００（例えば、１Ｖ）を用いたリード動作のことである。
【０２３２】
このように、本例では、合計３回のリード動作により、２ビットデータを読み出すことができ、リード時間の短縮又はリード動作の高速化を達成できる。
【０２３３】
（２）　　リード動作
まず、リード動作について説明する。
【０２３４】
▲１▼　アルゴリズム
図２０は、リード動作のアルゴリズムを示している。
【０２３５】
まず、コマンドインターフェイス回路が、ホストマイコンから提供されるリードコマンドを確認すると、これを受けて、リードコマンドが、ステートマシン（制御回路）内に設定される（ステップＳ１）。
【０２３６】
また、アドレス信号が、ホストマイコンからメモリチップ内に供給されると、これを受けて、リードページを選択するためのアドレスが、ステートマシン内に設定される（ステップＳ２）。
【０２３７】
ステートマシン内に、リードコマンド及びアドレス信号が設定されると、ステートマシンによる制御の下で、ステップＳ３からステップＳ６までの動作が、自動的に実行される。
【０２３８】
論理下位ページデータのリードを行う場合には、上述のように、２回のリード動作（“ＲＥＡＤ０１”，“ＲＥＡＤ１０”）が実行される（ステップＳ３〜Ｓ５）。後に詳しく説明するが、ＲＥＡＤ０１（Ｖｃｇｒ０１＝２Ｖ）により読み出されたリードデータは、データ記憶部ＤＳ１を経由して、データ記憶部ＤＳ３に記憶される。ＲＥＡＤ１０（Ｖｃｇｒ１０＝０Ｖ）では、リードデータ及びデータ記憶部ＤＳ３のデータに依存するデータが、データ記憶部ＤＳ１からデータ記憶部ＤＳ４に転送される。
【０２３９】
論理上位ページデータのリードを行う場合には、１回の読み出し動作（ＲＥＡＤ“００”）が実行される（ステップＳ３，Ｓ６）。後に詳しく説明するが、ＲＥＡＤ００（Ｖｃｇｒ００＝１Ｖ）により読み出されたリードデータは、データ記憶部ＤＳ１を経由して、データ記憶部ＤＳ４に転送される。
【０２４０】
データ記憶部４に記憶されたリードデータは、Ｉ／Ｏ線ＩＯ，ｎＩＯ、センスアンプ、及び、データ入出力バッファを経由して、メモリチップの外部へ出力される。
【０２４１】
▲２▼　動作波形による動作説明
以下、図２１の動作タイミング図を用いて、具体的な動作説明を行う。
【０２４２】
リード動作は、論理下位ページデータのリード動作と論理上位ページデータのリード動作とからなる。
【０２４３】
なお、図２１の動作タイミング図において、特に示されていない限り、“Ｌ”レベルは、Ｖｓｓ（例えば、０Ｖ）、“Ｈ”レベルは、Ｖｄｄ（例えば、３Ｖ）である。また、この動作タイミング図では、１つのブロックＢＬＯＣＫｉが選択され、そのブロックＢＬＯＣＫｉ内のワード線ＷＬ２−ｉと奇数番目のビット線ＢＬｅｋが選択されるものとする（図３参照）。
【０２４４】
［１］　　論理下位ページデータのリード動作
論理下位ページデータのリード動作は、２回のリード動作、即ち、“ＲＥＡＤ０１”と“ＲＥＡＤ１０”とからなる。まず、“ＲＥＡＤ０１”が行われ、引き続き、“ＲＥＡＤ１０”が行われる。
【０２４５】
“ＲＥＡＤ０１”及び“ＲＥＡＤ１０”は、それぞれ、これら２つのリード動作に共通のデータリードに関する部分（　ＲＣＬＫ　１−Ｅ，　ＳＣＬＫ　１−Ｅ，　ＲＲＣＶ　１−Ｅ　）と、各リード動作で固有のデータトランスファに関する部分（　ＥＸＣＬＫ　ルーティン）とから構成される。
【０２４６】
［１］−１　　“ＲＥＡＤ０１”
“ＲＥＡＤ０１”動作は、リード電位（選択されたワード線ＷＬ２−ｉの電位）をＶｃｇｒ０１（例えば、２Ｖ）に設定し、メモリセルのデータが“０１”であるか、又は、それ以外のデータ“１１”，“１０”，“００”であるかを認識する動作である。
【０２４７】
［１］−１−１　　データリード
まず、ビット線側のセレクトゲート線ＳＧＤ及び非選択のワード線ＷＬ０−ｉ，ＷＬ１−ｉ，ＷＬ３−ｉに、それぞれ、転送電位Ｖｒｅａｄ（例えば、４．５Ｖ）が与えられ、選択されたワード線ＷＬ２−ｉに、リード電位Ｖｃｇｒ０１が与えられる（　ＲＣＬＫ　１−２　）。
【０２４８】
制御信号ＢＬＰＲＥが“Ｈ”となり、ＮチャネルＭＯＳトランジスタＱｎ６（図１０）がオン状態となる。また、制御信号ＢＬＣＬＡＭＰが、Ｖｃｌａｍｐ（例えば、２Ｖ）となり、制御信号ＢＬＳｅが、Ｖｓｇｈｈ（例えば、４．５Ｖ）となることで、奇数番目のビット線ＢＬｅｋが、所定電位（例えば、１Ｖ程度）にプリチャージされる。一方、制御信号ＢＩＡＳｏが、Ｖｓｇｈｈ（例えば、４．５Ｖ）となるため、偶数番目のビット線ＢＬｏｋは、Ｖｓｓ（例えば、０Ｖ）に固定され、シールドビット線として機能するようになる（　ＲＣＬＫ　２−４　）。
【０２４９】
この後、制御信号ＢＬＣＬＡＭＰが、Ｖｓｓ（例えば、０Ｖ）、制御信号ＢＬＰＲＥが“Ｌ”となり、奇数番目のビット線ＢＬｅｋは、フローティング状態となる（　ＲＣＬＫ　５−７　）。
ソース線側のセレクトゲート線ＳＧＳの電位が、転送電位Ｖｒｅａｄに設定されると、選択されたメモリセルの状態、即ち、そのメモリセルに記憶されたデータの値に応じて、ビット線ＢＬｅｋの電位に影響が表れる。
【０２５０】
即ち、選択されたメモリセルのデータが、“１１”、“１０”、“００”の場合には、リード電位Ｖｃｇｒ０１により、この選択されたメモリセルは、オン状態になる。このため、ビット線ＢＬｅｋの電荷が放電され、ビット線ＢＬｅｋの電位は、０．８Ｖ以下に低下する（選択ブロック内の非選択のメモリセルは、Ｖｒｅａｄにより、オン状態である。）。
【０２５１】
一方、選択されたメモリセルのデータが、“０１”の場合には、リード電位Ｖｃｇｒ０１によっては、この選択されたメモリセルは、オン状態にならない。このため、ビット線ＢＬｅｋの電荷が放電されることはなく、ビット線ＢＬｅｋは、プリチャージ電位（約１Ｖ）を維持する（　ＲＣＬＫ　６−Ｅ　）。
【０２５２】
制御信号ＢＬＰＲＥが、４．５Ｖ程度になり、制御信号ＶＰＲＥが、Ｖｄｄ（例えば、３Ｖ）になることによって、データ記憶部ＤＳ１のキャパシタＣ１の一端、即ち、ノードＮ２は、Ｖｄｄに充電される。この後、制御信号ＢＬＣＬＡＭＰが、Ｖｓｅｎｓｅ（例えば、１．８Ｖ）になると、データ記憶部ＤＳ１のキャパシタＣ１の一端の電位は、以下のように変化する。
【０２５３】
即ち、ビット線ＢＬｅｋの電位がプリチャージ電位（約１Ｖ）のままである場合（メモリセルのデータが“０１”の場合）には、ＮチャネルＭＯＳトランジスタ（クランプトランジスタ）Ｑｎ５（図１０）は、オフ状態であり、データ記憶部ＤＳ１のキャパシタＣ１の一端の電位は、Ｖｄｄ（“Ｈ”）に維持される。
【０２５４】
一方、ビット線ＢＬｅｋの電位が０．８Ｖ以下である場合（メモリセルのデータが“１１”、“１０”、“００”の場合）には、ＮチャネルＭＯＳトランジスタ（クランプトランジスタ）Ｑｎ５（図１０）は、オン状態であり、データ記憶部ＤＳ１のキャパシタＣ１の一端の電荷は、ビット線ＢＬｅｋに放電され、その電位は、Ｖｄｄよりも低い値（“Ｌ”）に低下する（　ＳＣＬＫ　４−５　）。
【０２５５】
その結果、データ記憶部ＤＳ１（キャパシタＣ１の一端）には、リード電位Ｖｃｇｒ０１によるリードデータが記憶される。即ち、メモリセルのデータが“１１”、“１０”、“００”の場合には、“Ｌ”、つまり、“０”−データが記憶され、メモリセルのデータが“０１”の場合には、“Ｈ”、つまり、“１”−データが記憶される。
【０２５６】
［１］−１−２　　データトランスファ
“ＲＥＡＤ０１”動作では、メモリセルのデータをデータ記憶部ＤＳ１に読み出した後、このデータ記憶部ＤＳ１に記憶されたリードデータを、データ記憶部ＤＳ３に転送するデータトランスファが実行される。この動作は、図２２に示すＥＸＣＬＫルーティンに従う。
【０２５７】
まず、制御信号ＳＥＮ１，ＬＡＴ１が、共に、“Ｌ”となり（　ＥＸＣＬＫ　６　）、かつ、制御信号ＥＱ１が“Ｈ”になることで（　ＥＸＣＬＫ　７−８　）、データ記憶部ＤＳ３を構成するフリップフロップ回路（図１０）の状態がリセットされる。
【０２５８】
この後、制御信号ＢＬＣ１が、４．５Ｖとなり（　ＥＸＣＬＫ　９　）、ＮチャネルＭＯＳトランジスタＱｎ１０がオン状態となる。その結果、データ記憶部ＤＳ１とデータ記憶部ＤＳ３は、互いに電気的に接続される（図１０）。
【０２５９】
制御信号ＳＥＮ１が“Ｈ”になると（　ＥＸＣＬＫ　１０　）、データ記憶部ＤＳ１（キャパシタＣ１の一端）に記憶されたリードデータは、ＭＯＳトランジスタＱｎ１０を経由して、データ記憶部ＤＳ３を構成するクロック同期式インバータＣＩ１によりセンスされる。また、制御信号ＬＡＴ１が“Ｈ”になると（　ＥＸＣＬＫ　１１　）、このリードデータは、データ記憶部ＤＳ３に記憶される（図１０）。
【０２６０】
なお、“ＲＥＡＤ０１”動作は、選択されたワード線ＷＬ２−ｉに接続される４２５６個のメモリセルに対して同時に行われる。
【０２６１】
［１］−２　　“ＲＥＡＤ１０”
“ＲＥＡＤ１０”動作は、リード電位（選択されたワード線ＷＬ２−ｉの電位）をＶｃｇｒ１０（例えば、０Ｖ）に設定し、メモリセルのデータが“１１”であるか、又は、それ以外のデータ“１０”，“００”，“０１”であるかを認識する動作である。
【０２６２】
［１］−２−１　　データリード
まず、ビット線側のセレクトゲート線ＳＧＤ及び非選択のワード線ＷＬ０−ｉ，ＷＬ１−ｉ，ＷＬ３−ｉに、それぞれ、転送電位Ｖｒｅａｄ（例えば、４．５Ｖ）が与えられ、選択されたワード線ＷＬ２−ｉに、リード電位Ｖｃｇｒ１０が与えられる（　ＲＣＬＫ　１−２　）。
【０２６３】
制御信号ＢＬＰＲＥが“Ｈ”となり、ＮチャネルＭＯＳトランジスタＱｎ６（図１０）がオン状態となる。また、制御信号ＢＬＣＬＡＭＰが、Ｖｃｌａｍｐ（例えば、２Ｖ）となり、制御信号ＢＬＳｅが、Ｖｓｇｈｈ（例えば、４．５Ｖ）となることで、奇数番目のビット線ＢＬｅｋが、所定電位（例えば、１Ｖ程度）にプリチャージされる。一方、制御信号ＢＩＡＳｏが、Ｖｓｇｈｈ（例えば、４．５Ｖ）となるため、偶数番目のビット線ＢＬｏｋは、Ｖｓｓ（例えば、０Ｖ）に固定され、シールドビット線として機能するようになる（　ＲＣＬＫ　２−４　）。
【０２６４】
この後、制御信号ＢＬＣＬＡＭＰが、Ｖｓｓ（例えば、０Ｖ）、制御信号ＢＬＰＲＥが“Ｌ”となり、奇数番目のビット線ＢＬｅｋは、フローティング状態となる（　ＲＣＬＫ　５−７　）。
ソース線側のセレクトゲート線ＳＧＳの電位が、転送電位Ｖｒｅａｄに設定されると、選択されたメモリセルの状態、即ち、そのメモリセルに記憶されたデータの値に応じて、ビット線ＢＬｅｋの電位に影響が表れる。
【０２６５】
即ち、選択されたメモリセルのデータが、“１１”の場合には、リード電位Ｖｃｇｒ１０により、この選択されたメモリセルは、オン状態になる。このため、ビット線ＢＬｅｋの電荷が放電され、ビット線ＢＬｅｋの電位は、０．８Ｖ以下に低下する（選択ブロック内の非選択のメモリセルは、Ｖｒｅａｄにより、オン状態である。）。
【０２６６】
一方、選択されたメモリセルのデータが、“１０”、“００”、“０１”の場合には、リード電位Ｖｃｇｒ１０によっては、この選択されたメモリセルは、オン状態にならない。このため、ビット線ＢＬｅｋの電荷が放電されることはなく、ビット線ＢＬｅｋは、プリチャージ電位（約１Ｖ）を維持する（　ＲＣＬＫ　６−Ｅ　）。
【０２６７】
制御信号ＢＬＰＲＥが、４．５Ｖ程度になり、制御信号ＶＰＲＥが、Ｖｄｄ（例えば、３Ｖ）になることによって、データ記憶部ＤＳ１のキャパシタＣ１の一端、即ち、ノードＮ２は、Ｖｄｄに充電される。この後、制御信号ＢＬＣＬＡＭＰが、Ｖｓｅｎｓｅ（例えば、１．８Ｖ）になると、データ記憶部ＤＳ１のキャパシタＣ１の一端の電位は、以下のように変化する。
【０２６８】
即ち、ビット線ＢＬｅｋの電位がプリチャージ電位（約１Ｖ）のままである場合（メモリセルのデータが“１０”、“００”、“０１”の場合）には、ＮチャネルＭＯＳトランジスタ（クランプトランジスタ）Ｑｎ５（図１０）は、オフ状態であり、データ記憶部ＤＳ１のキャパシタＣ１の一端の電位は、Ｖｄｄ（“Ｈ”）に維持される。
【０２６９】
一方、ビット線ＢＬｅｋの電位が０．８Ｖ以下である場合（メモリセルのデータが“１１”の場合）には、ＮチャネルＭＯＳトランジスタ（クランプトランジスタ）Ｑｎ５（図１０）は、オン状態であり、データ記憶部ＤＳ１のキャパシタＣ１の一端の電荷は、ビット線ＢＬｅｋに放電され、その電位は、Ｖｄｄよりも低い値（“Ｌ”）に低下する（　ＳＣＬＫ　４−５　）。
【０２７０】
その結果、データ記憶部ＤＳ１（キャパシタＣ１の一端）には、リード電位Ｖｃｇｒ１０によるリードデータが記憶される。即ち、メモリセルのデータが“１１”の場合には、“Ｌ”、つまり、“０”−データが記憶され、メモリセルのデータが“１０”、“００”、“０１”の場合には、“Ｈ”、つまり、“１”−データが記憶される。
【０２７１】
［１］−２−２　　データトランスファ
“ＲＥＡＤ１０”動作では、メモリセルのデータをデータ記憶部ＤＳ１に読み出した後、データ記憶部ＤＳ１のデータを、データ記憶部ＤＳ３のデータ、即ち、“ＲＥＡＤ０１”によりメモリセルから読み出されたリードデータの値に基づいて、維持、又は、強制的に変更する動作、及び、その後、データ記憶部ＤＳ１に記憶されたリードデータを、データ記憶部ＤＳ４に転送するデータトランスファが実行される。この動作は、図２３に示すＥＸＣＬＫルーティンに従う。
【０２７２】
まず、制御信号ＤＴＧが、４．５Ｖになり、ＮチャネルＭＯＳトランジスタＱｎ９（図１０）がオン状態となる。その結果、データ記憶部ＤＳ２とデータ記憶部ＤＳ３が互いに電気的に接続され、データ記憶部ＤＳ３のデータは、データ記憶部ＤＳ２、即ち、ＮチャネルＭＯＳトランジスタＱｎ８のゲートに転送される（　ＥＸＣＬＫ　２−４　）。
【０２７３】
この後、制御信号ＲＥＧが“Ｈ”になると、データ記憶部ＤＳ１に記憶されたリードデータ、即ち、“ＲＥＡＤ１０”によりメモリセルから読み出されたリードデータは、データ記憶部ＤＳ３に記憶されたデータの値に応じて、維持、又は、強制的に変更される（　ＥＸＣＬＫ　３−４　）。
【０２７４】
例えば、データ記憶部ＤＳ３に記憶されているデータが“０”の場合には、ＮチャネルＭＯＳトランジスタＱｎ８のゲートの電位レベルは、“Ｌ”となるため、このＮチャネルＭＯＳトランジスタＱｎ８は、オフ状態となる（図１０）。従って、データ記憶部ＤＳ１は、“ＲＥＡＤ１０”によりメモリセルから読み出されたリードデータの値をそのまま維持する。
【０２７５】
また、データ記憶部ＤＳ３に記憶されているデータが“１”の場合には、ＮチャネルＭＯＳトランジスタＱｎ８のゲートの電位レベルは、“Ｈ”となるため、このＮチャネルＭＯＳトランジスタＱｎ８は、オン状態となる（図１０）。従って、データ記憶部ＤＳ１のデータは、“ＲＥＡＤ１０”によりメモリセルから読み出されたリードデータの値にかかわらず、強制的に、“０”に設定される。
【０２７６】
この後、制御信号ＳＥＮ２，ＬＡＴ２が、共に、“Ｌ”となり（　ＥＸＣＬＫ　６　）、かつ、制御信号ＥＱ２が“Ｈ”になることで（　ＥＸＣＬＫ　７−８　）、データ記憶部ＤＳ４を構成するフリップフロップ回路（図１０）の状態がリセットされる。
【０２７７】
この後、制御信号ＢＬＣ２が、４．５Ｖとなり（　ＥＸＣＬＫ　９　）、ＮチャネルＭＯＳトランジスタＱｎ１２がオン状態となる。その結果、データ記憶部ＤＳ１とデータ記憶部ＤＳ４は、互いに電気的に接続される（図１０）。
【０２７８】
制御信号ＳＥＮ２が“Ｈ”になると（　ＥＸＣＬＫ　１０　）、データ記憶部ＤＳ１（キャパシタＣ１の一端）に記憶されたリードデータは、ＭＯＳトランジスタＱｎ１２を経由して、データ記憶部ＤＳ４を構成するクロック同期式インバータＣＩ４によりセンスされる。また、制御信号ＬＡＴ２が“Ｈ”になると（　ＥＸＣＬＫ　１１　）、このリードデータは、データ記憶部ＤＳ４に記憶される（図１０）。
【０２７９】
なお、“ＲＥＡＤ１０”動作は、選択されたワード線ＷＬ２−ｉに接続される４２５６個のメモリセルに対して同時に行われる。
【０２８０】
［１］−３　　まとめ
図２５は、論理下位ページデータのリード動作におけるリードデータの流れを簡単に示したものである。
【０２８１】
“ＲＥＡＤ０１”では、リード電位としてＶｃｇｒ０１（例えば、２Ｖ）を用いてリード動作を実行し、そのときのリードデータをデータ記憶部ＤＳ１に記憶する。即ち、選択されたメモリセルのデータが“１１”、“１０”、“００”の場合には、キャパシタＣ１の一端（ノードＮ２）の電位は、“Ｌ”となり、選択されたメモリセルのデータが“０１”の場合には、キャパシタＣ１の一端（ノードＮ２）の電位は、“Ｈ”となる（▲１▼）。
【０２８２】
この後、データ記憶部ＤＳ１のデータは、データ記憶部ＤＳ３に転送され、かつ、記憶される（▲１▼）。
【０２８３】
“ＲＥＡＤ０１”が終了した時点では、データ記憶部ＤＳ３のデータが“Ｈ”のときは、メモリセルのデータは、“０１”、即ち、論理下位ページデータは、“１”であることが判明するが、データ記憶部ＤＳ３のデータが“Ｌ”のときは、メモリセルのデータは、“１１”、“１０”、“００”のうちのいずれか１つであり、論理下位ページデータの値を、特定することはできない。
【０２８４】
そこで、“ＲＥＡＤ０１”に引き続き、“ＲＥＡＤ１０”が行われる。
【０２８５】
“ＲＥＡＤ１０”では、リード電位としてＶｃｇｒ１０（例えば、０Ｖ）を用いてリード動作を実行し、そのときのリードデータをデータ記憶部ＤＳ１に記憶する。即ち、選択されたメモリセルのデータが“１１”の場合には、キャパシタＣ１の一端（ノードＮ２）の電位は、“Ｌ”となり、選択されたメモリセルのデータが“１０”、“００”、“０１”の場合には、キャパシタＣ１の一端（ノードＮ２）の電位は、“Ｈ”となる。
【０２８６】
但し、データ記憶部ＤＳ３のデータが“Ｈ”のとき、即ち、メモリセルのデータが“０１”のときに関しては、ＮチャネルＭＯＳトランジスタＱｎ８をオン状態にして、キャパシタＣ１の一端（ノードＮ２）の電位を、強制的に、“Ｌ”に変更する（▲２▼）。
【０２８７】
その結果、選択されたメモリセルのデータが“１１”、“０１”のときには、データ記憶部ＤＳ１のデータは、“Ｌ”となるため、選択されたメモリセルの論理下位ページデータとして、“１”が確認される。また、選択されたメモリセルのデータが“１０”、“００”のときには、データ記憶部ＤＳ１のデータは、“Ｈ”となるため、選択されたメモリセルの論理下位ページデータとして、“０”が確認される（▲２▼）。
【０２８８】
なお、この時点では、“Ｌ”＝“０”及び“Ｈ”＝“１”の関係が逆転している。即ち、“Ｌ”＝“１”及び“Ｈ”＝“０”の関係となっている。
【０２８９】
この後、データ記憶部ＤＳ１のデータは、データ記憶部ＤＳ４に転送され、かつ、記憶される。データ記憶部ＤＳ４のデータは、カラムセレクト信号ＣＳＬｋ（図１０）が“Ｈ”になることで、Ｉ／Ｏ線（ＩＯ，ｎＩＯ）に出力され、かつ、データ入出力バッファを経由して、メモリチップの外部に出力される。
【０２９０】
［２］　　論理上位ページデータのリード動作
論理上位ページデータのリード動作は、１回のリード動作、即ち、“ＲＥＡＤ００”からなる。“ＲＥＡＤ００”は、データリードに関する部分（　ＲＣＬＫ　１−Ｅ，ＳＣＬＫ　１−Ｅ，　ＲＲＣＶ　１−Ｅ　）と、データトランスファに関する部分（　ＥＸＣＬＫ　ルーティン）とから構成される。
【０２９１】
［２］−１　　“ＲＥＡＤ００”
“ＲＥＡＤ００”動作は、リード電位（選択されたワード線ＷＬ２−ｉの電位）をＶｃｇｒ００（例えば、１Ｖ）に設定し、メモリセルのデータが、“１１”、“１０”（論理上位ページデータが“１”）であるか、又は、“００”，“０１”（論理上位ページデータが“０”）であるかを認識する動作である。
【０２９２】
［２］−１−１　　データリード
まず、ビット線側のセレクトゲート線ＳＧＤ及び非選択のワード線ＷＬ０−ｉ，ＷＬ１−ｉ，ＷＬ３−ｉに、それぞれ、転送電位Ｖｒｅａｄ（例えば、４．５Ｖ）が与えられ、選択されたワード線ＷＬ２−ｉに、リード電位Ｖｃｇｒ００が与えられる（　ＲＣＬＫ　１−２　）。
【０２９３】
制御信号ＢＬＰＲＥが“Ｈ”となり、ＮチャネルＭＯＳトランジスタＱｎ６（図１０）がオン状態となる。また、制御信号ＢＬＣＬＡＭＰが、Ｖｃｌａｍｐ（例えば、２Ｖ）となり、制御信号ＢＬＳｅが、Ｖｓｇｈｈ（例えば、４．５Ｖ）となることで、奇数番目のビット線ＢＬｅｋが、所定電位（例えば、１Ｖ程度）にプリチャージされる。一方、制御信号ＢＩＡＳｏが、Ｖｓｇｈｈ（例えば、４．５Ｖ）となるため、偶数番目のビット線ＢＬｏｋは、Ｖｓｓ（例えば、０Ｖ）に固定され、シールドビット線として機能するようになる（　ＲＣＬＫ　２−４　）。
【０２９４】
この後、制御信号ＢＬＣＬＡＭＰが、Ｖｓｓ（例えば、０Ｖ）、制御信号ＢＬＰＲＥが“Ｌ”となり、奇数番目のビット線ＢＬｅｋは、フローティング状態となる（　ＲＣＬＫ　５−７　）。
ソース線側のセレクトゲート線ＳＧＳの電位が、転送電位Ｖｒｅａｄに設定されると、選択されたメモリセルの状態、即ち、そのメモリセルに記憶されたデータの値に応じて、ビット線ＢＬｅｋの電位に影響が表れる。
【０２９５】
即ち、選択されたメモリセルのデータが、“１１”、“１０”の場合には、リード電位Ｖｃｇｒ００により、この選択されたメモリセルは、オン状態になる。このため、ビット線ＢＬｅｋの電荷が放電され、ビット線ＢＬｅｋの電位は、０．８Ｖ以下に低下する（選択ブロック内の非選択のメモリセルは、Ｖｒｅａｄにより、オン状態である。）。
【０２９６】
一方、選択されたメモリセルのデータが、“００”、“０１”の場合には、リード電位Ｖｃｇｒ００によっては、この選択されたメモリセルは、オン状態にならない。このため、ビット線ＢＬｅｋの電荷が放電されることはなく、ビット線ＢＬｅｋは、プリチャージ電位（約１Ｖ）を維持する（　ＲＣＬＫ　６−Ｅ　）。
【０２９７】
制御信号ＢＬＰＲＥが、４．５Ｖ程度になり、制御信号ＶＰＲＥが、Ｖｄｄ（例えば、３Ｖ）になることによって、データ記憶部ＤＳ１のキャパシタＣ１の一端、即ち、ノードＮ２は、Ｖｄｄに充電される。この後、制御信号ＢＬＣＬＡＭＰが、Ｖｓｅｎｓｅ（例えば、１．８Ｖ）になると、データ記憶部ＤＳ１のキャパシタＣ１の一端の電位は、以下のように変化する。
【０２９８】
即ち、ビット線ＢＬｅｋの電位がプリチャージ電位（約１Ｖ）のままである場合（メモリセルのデータが“００”、“０１”の場合）には、ＮチャネルＭＯＳトランジスタ（クランプトランジスタ）Ｑｎ５（図１０）は、オフ状態であり、データ記憶部ＤＳ１のキャパシタＣ１の一端の電位は、Ｖｄｄ（“Ｈ”）に維持される。
【０２９９】
一方、ビット線ＢＬｅｋの電位が０．８Ｖ以下である場合（メモリセルのデータが“１１”、“１０”の場合）には、ＮチャネルＭＯＳトランジスタ（クランプトランジスタ）Ｑｎ５（図１０）は、オン状態であり、データ記憶部ＤＳ１のキャパシタＣ１の一端の電荷は、ビット線ＢＬｅｋに放電され、その電位は、Ｖｄｄよりも低い値（“Ｌ”）に低下する（　ＳＣＬＫ　４−５　）。
【０３００】
その結果、データ記憶部ＤＳ１（キャパシタＣ１の一端）には、リード電位Ｖｃｇｒ００によるリードデータが記憶される。即ち、メモリセルのデータが“１１”、“１０”の場合には、“Ｌ”、つまり、“１”−データが記憶され、メモリセルのデータが“００”、“０１”の場合には、“Ｈ”、つまり、“０”−データが記憶される。
【０３０１】
なお、この時点では、“Ｌ”＝“０”及び“Ｈ”＝“１”の関係が逆転している。即ち、“Ｌ”＝“１”及び“Ｈ”＝“０”の関係となっている。
【０３０２】
［２］−１−２　　データトランスファ
“ＲＥＡＤ００”動作では、メモリセルのデータをデータ記憶部ＤＳ１に読み出した後、このデータ記憶部ＤＳ１に記憶されたリードデータを、データ記憶部ＤＳ４に転送するデータトランスファが実行される。この動作は、図２４に示すＥＸＣＬＫルーティンに従う。
【０３０３】
まず、制御信号ＳＥＮ２，ＬＡＴ２が、共に、“Ｌ”となり（　ＥＸＣＬＫ　６　）、かつ、制御信号ＥＱ２が“Ｈ”になることで（　ＥＸＣＬＫ　７−８　）、データ記憶部ＤＳ４を構成するフリップフロップ回路（図１０）の状態がリセットされる。
【０３０４】
この後、制御信号ＢＬＣ２が、４．５Ｖとなり（　ＥＸＣＬＫ　９　）、ＮチャネルＭＯＳトランジスタＱｎ１２がオン状態となる。その結果、データ記憶部ＤＳ１とデータ記憶部ＤＳ４は、互いに電気的に接続される（図１０）。
【０３０５】
制御信号ＳＥＮ２が“Ｈ”になると（　ＥＸＣＬＫ　１０　）、データ記憶部ＤＳ１（キャパシタＣ１の一端）に記憶されたリードデータは、ＭＯＳトランジスタＱｎ１２を経由して、データ記憶部ＤＳ４を構成するクロック同期式インバータＣＩ４によりセンスされる。また、制御信号ＬＡＴ２が“Ｈ”になると（　ＥＸＣＬＫ　１１　）、このリードデータは、データ記憶部ＤＳ４に記憶される（図１０）。
【０３０６】
なお、“ＲＥＡＤ００”動作は、選択されたワード線ＷＬ２−ｉに接続される４２５６個のメモリセルに対して同時に行われる。
【０３０７】
［２］−３　　まとめ
図２６は、論理上位ページデータのリード動作におけるリードデータの流れを簡単に示したものである。
【０３０８】
“ＲＥＡＤ００”では、リード電位としてＶｃｇｒ００（例えば、１Ｖ）を用いてリード動作を実行し、そのときのリードデータをデータ記憶部ＤＳ１に記憶する。即ち、選択されたメモリセルのデータが“１１”、“１０”（論理上位ページデータが“１”）の場合には、キャパシタＣ１の一端（ノードＮ２）の電位は、“Ｌ”となり、選択されたメモリセルのデータが“００”、“０１”（論理上位ページデータが“０”）の場合には、キャパシタＣ１の一端（ノードＮ２）の電位は、“Ｈ”となる。
【０３０９】
なお、この時点では、“Ｌ”＝“０”及び“Ｈ”＝“１”の関係が逆転している。即ち、“Ｌ”＝“１”及び“Ｈ”＝“０”の関係となっている。
【０３１０】
この後、制御信号ＢＬＣ２が４．５Ｖになることにより、データ記憶部ＤＳ１のデータは、データ記憶部ＤＳ４に転送され、かつ、記憶される。データ記憶部ＤＳ４のデータは、カラムセレクト信号ＣＳＬｋ（図１０）が“Ｈ”になることで、Ｉ／Ｏ線（ＩＯ，ｎＩＯ）に出力され、かつ、データ入出力バッファを経由して、メモリチップの外部に出力される。
【０３１１】
（３）　　プログラム動作
次に、プログラム動作について説明する。
【０３１２】
▲１▼　アルゴリズム
［１］　　プログラム動作１
図２７乃至図２９は、プログラム動作のアルゴリズムの一例を示している。
この例は、　Ｐａｓｓ　Ｗｒｉｔｅ　と呼ばれる書き込み原理を採用したときのアルゴリズムとなっている。　Ｐａｓｓ　Ｗｒｉｔｅ　とは、プログラムベリファイをパスしたメモリセルに対して、再び、プログラム動作を実行し、その閾値電圧を高精度に制御する、即ち、閾値分布の幅を狭くする手法（２度書き）であり、１度目のプログラムと２度目のプログラムとからなる。
【０３１３】
なお、１度目のプログラムは、　１ｓｔ　Ｐａｓｓ　と呼ばれ、２度目のプログラムは、２ｎｄ　Ｐａｓｓ　と呼ばれる。
【０３１４】
まず、コマンドインターフェイス回路が、ホストマイコンから提供されるデータ入力コマンドを受け取り、これを受けて、データ入力コマンドが、ステートマシン（制御回路）内に設定される（ステップＳ１）。
【０３１５】
また、アドレス信号が、ホストマイコンからメモリチップ内に供給されると、これを受けて、プログラムの対象となるページを選択するためのアドレスが、ステートマシン内に設定される（ステップＳ２）。
【０３１６】
そして、１ページ分のプログラムデータが、データ入出力バッファを経由して、メモリチップ内に入力されると、これら１ページ分のプログラムデータは、データ記憶部ＤＳ４に記憶される（ステップＳ３）。なお、データ記憶部ＤＳ４は、１ページに対応する数だけ存在する。
【０３１７】
この後、コマンドインターフェイス回路が、ホストマイコンから提供されるライトコマンドを確認すると、これを受けて、ライトコマンドが、ステートマシン内に設定される（ステップＳ４）。その結果、ステートマシンによる制御の下で、図２８のステップＳ５から図２９のステップＳ２８までの動作が、自動的に実行される。
【０３１８】
［１］−１　　１ｓｔ　Ｐａｓｓ
まず、図２８に示される１度目のプログラム　（１ｓｔ　Ｐａｓｓ）　が実行される。
データ記憶部ＤＳ４に記憶されているプログラムデータは、データ記憶部ＤＳ２，ＤＳ３にそれぞれコピーされる（ステップＳ５）。
【０３１９】
この後、もし、プログラムの対象となるページが論理上位ページであるならば、ライト動作に先立って、　Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ　が実行される（ステップＳ６）。Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ　とは、プログラムの対象となる論理上位ページを有する選択されたメモリセルの論理下位ページに記憶されたデータを読み出す動作のことである。
【０３２０】
Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ　が必要である理由は、選択されたメモリセルの論理上位ページに書き込むデータが同じであっても、その選択されたメモリセルの論理下位ページに記憶されたデータの値によって、ライト動作で目標とする閾値電圧が異なってくるためである（図１９参照）。
【０３２１】
Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ　によって読み出された論理下位ページデータは、データ記憶部ＤＳ１を経由して、データ記憶部ＤＳ４に記憶される。
【０３２２】
ここで、注意する点は、論理下位ページデータが“１”の場合には、ＩｎｔｅｒｎａｌＤａｔａ　Ｌｏａｄ　によるリードデータは、“０”（＝“Ｌ”）であり、“０”−データがデータ記憶部ＤＳ４（ノードＮ４）に記憶されること、また、論理下位ページデータが“０”の場合には、Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ　によるリードデータは、“１”（＝“Ｈ”）であり、“１”−データがデータ記憶部ＤＳ４（ノードＮ４）に記憶されることである。
【０３２３】
但し、この現象については、動作的に全く問題なく、かえって、後述する　２ｎｄＰａｓｓ　における　“Ｖｅｒｉｆｙ００　（２ｎｄＰａｓｓ）”を実行するのに好都合となっている。
【０３２４】
この後、論理下位ページに対するプログラムならば、ライト電圧Ｖｐｇｍを１２Ｖに設定し、論理上位ページに対するプログラムならば、ライト電圧Ｖｐｇｍを１３Ｖに設定する。また、ステートマシーン内のプログラムカウンタの値ＰＣを０に設定する（ステップＳ７）。なお、プログラムカウンタの値ＰＣは、ライト動作の回数を表している。
【０３２５】
次に、ライト動作を実行する（ステップＳ８）。
データ記憶部ＤＳ３に記憶されたプログラムデータが“０”の場合には、例えば、基板とフローティングゲート電極との間に高電圧を与え、フローティングゲート電極に電子を注入し、メモリセルの閾値電圧を上げる　（“０”−ｐｒｏｇｒａｍｍｉｎｇ）。データ記憶部ＤＳ３に記憶されたプログラムデータが“１”の場合には、例えば、基板とフローティングゲート電極との間に高電圧が与えられないようにし、フローティングゲート電極に対する電子の注入を防止し、メモリセルの閾値電圧を変化させない　（“１”−ｐｒｏｇｒａｍｍｉｎｇ）。
【０３２６】
このライト動作を行った後に、プログラムカウンタの値ＰＣに“１”を加える（ステップＳ８）。
【０３２７】
この後、データ記憶部ＤＳ３に記憶されたデータに基づいて、プログラムベリファイが　Ｐａｓｓ　の状態（プログラムが完了している状態）になっているか、又は、ＮＧの状態（プログラムが完了していない状態）になっているかを判定する（ステップＳ９）。
【０３２８】
ここで、最初のライト動作の直後においては、“Ｖｅｒｉｆｙ００　（１ｓｔＰａｓｓ）”及び“Ｖｅｒｉｆｙ１０　（１ｓｔＰａｓｓ）”は、一度も行われていないため、データ記憶部ＤＳ３は、プログラムデータそのものを記憶している。
【０３２９】
全てのカラム内のデータ記憶部ＤＳ３（例えば、４２５６個）が“１”−データを記憶している場合、即ち、論理下位ページ又は論理上位ページに対するプログラムデータが全て“１”の場合には、全てのカラムにおいて、図１０のＮチャネルＭＯＳトランジスタＱｎ１７は、オフ状態であり、例えば、図８のＦＬＡＧは、“Ｈ”を維持する。
【０３３０】
従って、プログラムベリファイが　Ｐａｓｓ　の状態（プログラムが完了している状態）になっていると判断され、　２ｎｄ　Ｐａｓｓ　へ移行する（ステップＳ１５）。
【０３３１】
これに対して、少なくとも１つのカラム内のデータ記憶部ＤＳ３が“０”−データを記憶している場合、即ち、論理下位ページ又は論理上位ページに対するプログラムデータの少なくとも１つが“０”の場合には、“０”−データを記憶するデータ記憶部ＤＳ３に接続されるＮチャネルＭＯＳトランジスタＱｎ１７（図１０）は、オン状態であり、例えば、図８のＦＬＡＧは、“Ｌ”になる。
【０３３２】
従って、プログラムベリファイが　ＮＧ　の状態（プログラムが完了していない状態）になっていると判断され、“Ｖｅｒｉｆｙ００　（１ｓｔＰａｓｓ）”又は“Ｖｅｒｉｆｙ１０　（１ｓｔＰａｓｓ）”へ移行する。
【０３３３】
論理下位ページに対するプログラムであれば、“Ｖｅｒｉｆｙ１０　（１ｓｔＰａｓｓ）”が実行される（ステップＳ１２）。
【０３３４】
“Ｖｅｒｉｆｙ１０　（１ｓｔＰａｓｓ）”とは、プログラムの対象となる選択されたメモリセルに対して、リード電位Ｖｃｇｖ１０（図１７参照）を用いてリード動作を実行し、このリード動作により得られるリードデータとデータ記憶部ＤＳ２のデータ（プログラムデータ）とに基づいて、データ記憶部ＤＳ３に新たに記憶するデータの値を決定する動作のことである。
【０３３５】
論理下位ページに対するプログラムの場合、当初は、プログラムの対象となる選択された全てのメモリセルは、“１１”状態になっている。このため、　“１”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセル（“１”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関しては、閾値電圧の変動はないため、“Ｖｅｒｉｆｙ１０　（１ｓｔＰａｓｓ）”により読み出されるリードデータは、常に、“０”である。
【０３３６】
従って、データ記憶部ＤＳ１には、“０”が記憶される。しかし、後述するように、データ記憶部ＤＳ２に“１”が記憶されている場合には、データ記憶部ＤＳ１のデータは、リードデータにかかわらず、強制的に、“１”に変更させられる。つまり、この“１”−データが、データ記憶部ＤＳ１から、再び、データ記憶部ＤＳ３に記憶される。
【０３３７】
一方、“０”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセル（“０”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関しては、ライト動作（ステップＳ８）により十分に閾値電圧が上昇（プログラムが完了）している場合には、“Ｖｅｒｉｆｙ１０　（１ｓｔＰａｓｓ）”により読み出されるリードデータは、“１”となる。
【０３３８】
従って、データ記憶部ＤＳ１には、“１”が記憶される。この“１”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”から“１”に変わる。
【０３３９】
また、“０”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセル（“０”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関し、ライト動作（ステップＳ８）により十分に閾値電圧が上昇していない（プログラムが完了していない）場合には、“Ｖｅｒｉｆｙ１０　（１ｓｔＰａｓｓ）”により読み出されるリードデータは、“０”となる。
【０３４０】
従って、データ記憶部ＤＳ１には、“０”が記憶される。この“０”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”を維持する。
【０３４１】
論理上位ページに対するプログラムであれば、“Ｖｅｒｉｆｙ００　（１ｓｔＰａｓｓ）”が実行される（ステップＳ１１）。
【０３４２】
“Ｖｅｒｉｆｙ００　（１ｓｔＰａｓｓ）”とは、プログラムの対象となる選択されたメモリセルに対して、リード電位Ｖｃｇｖ００（図１７参照）を用いてリード動作を実行し、このリード動作により得られるリードデータとデータ記憶部ＤＳ２のデータ（プログラムデータ）とに基づいて、データ記憶部ＤＳ３に新たに記憶するデータの値を決定する動作のことである。
【０３４３】
論理上位ページに対するプログラムの場合、当初は、プログラムの対象となる選択されたメモリセルは、“１１”状態又は“１０”状態になっている。このため、　“１”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセル（“１”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関しては、閾値電圧の変動はないため、“Ｖｅｒｉｆｙ００　（１ｓｔＰａｓｓ）”により読み出されるリードデータは、常に、“０”である。
【０３４４】
従って、データ記憶部ＤＳ１には、“０”が記憶される。しかし、後述するように、データ記憶部ＤＳ２に“１”が記憶されている場合には、データ記憶部ＤＳ１のデータは、リードデータにかかわらず、強制的に、“１”に変更させられる。つまり、この“１”−データが、データ記憶部ＤＳ１から、再び、データ記憶部ＤＳ３に記憶される。
【０３４５】
一方、“０”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセル（“０”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関しては、ライト動作（ステップＳ８）により十分に閾値電圧が上昇（プログラムが完了）している場合には、“Ｖｅｒｉｆｙ００　（１ｓｔＰａｓｓ）”により読み出されるリードデータは、“１”となる。
【０３４６】
従って、データ記憶部ＤＳ１には、“１”が記憶される。この“１”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”から“１”に変わる。
【０３４７】
なお、この段階では、“０”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセルは、全て、“００”状態となるが、Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ　（ステップＳ６）により読み出された論理下位ページデータ（データ記憶部ＤＳ４に記憶されている）に基づいて、　２ｎｄ　Ｐａｓｓ　で、“Ｖｅｒｉｆｙ００　（２ｎｄＰａｓｓ）”を行う（“００”状態と“０１”状態とに分ける）ため、論理下位ページデータを壊すことなく、論理上位ページデータをプログラムすることができる。
【０３４８】
また、“０”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセル（“０”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関し、ライト動作（ステップＳ８）により十分に閾値電圧が上昇していない（プログラムが完了していない）場合には、“Ｖｅｒｉｆｙ００　（１ｓｔＰａｓｓ）”により読み出されるリードデータは、“０”となる。
【０３４９】
従って、データ記憶部ＤＳ１には、“０”が記憶される。この“０”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”を維持する。
【０３５０】
この後、もし、プログラムカウンタの値ＰＣが、予め設定された最大ライト回数　ＰＣ　ｍａｘ　１ｓｔ　に達したならば、ステートマシーン内のステータスレジスタに、　Ｆａｉｌ　（プログラム不良）を設定し、プログラム動作を終了する（ステップＳ１３，Ｓ１６）。
【０３５１】
また、もし、プログラムカウンタの値ＰＣが、予め設定された最大ライト回数ＰＣ　ｍａｘ　１ｓｔ　よりも小さいならば、ライト電圧Ｖｐｇｍを、例えば、０．２Ｖ程度上昇（ステップアップ）させた後、再度、ライト動作を実行する（ステップＳ１３，Ｓ１４，Ｓ８）。
【０３５２】
この後、プログラムベリファイが行われるが（ステップＳ９）、上述したように、“１”−ｐｒｏｇｒａｍｍｉｎｇ　の場合には、データ記憶部ＤＳ３のデータは、常に、“１”となっている。また、“０”−ｐｒｏｇｒａｍｍｉｎｇ　の場合には、“０”−ｐｒｏｇｒａｍｍｉｎｇ　が完了している場合には、データ記憶部ＤＳ３のデータは、“０”から“１”に変更され、“０”−ｐｒｏｇｒａｍｍｉｎｇ　が完了していない場合のみに、データ記憶部ＤＳ３のデータは、“０”を維持する。
【０３５３】
従って、プログラムの対象となる選択された全てのメモリセルに対して、プログラミング（“１”−ｐｒｏｇｒａｍｍｉｎｇ　又は　“０”−ｐｒｏｇｒａｍｍｉｎｇ　）が完了している場合には、全てのデータ記憶部ＤＳ３が“１”−データを記憶していることになる。つまり、全てのカラムにおいて、図１０のＮチャネルＭＯＳトランジスタＱｎ１７は、オフ状態であり、図８のＦＬＡＧが“Ｈ”（プログラムベリファイが　Ｐａｓｓ　の状態）となって、　２ｎｄ　Ｐａｓｓ　へ移行する（ステップＳ１５）。
【０３５４】
また、プログラムの対象となる選択されたメモリセルの少なくとも１つに対して、プログラミング（“０”−ｐｒｏｇｒａｍｍｉｎｇ　）が完了していない場合には、少なくとも１つのデータ記憶部ＤＳ３が“０”−データを記憶していることになる。つまり、少なくとも１つのカラムにおいて、図１０のＮチャネルＭＯＳトランジスタＱｎ１７は、オン状態となり、図８のＦＬＡＧが“Ｌ”（プログラムベリファイが　ＮＧ　の状態）となって、再び、ベリファイリードとライト動作が繰り返される（ステップＳ１０〜Ｓ１４，Ｓ１６、Ｓ８）。
【０３５５】
このように、データ記憶部ＤＳ３に記憶されたデータに基づいて、プログラムが完了したか否かを判断できる。
【０３５６】
［１］−２　　２ｎｄ　Ｐａｓｓ
１度目のプログラム　（１ｓｔ　Ｐａｓｓ）　のステップＳ９において、プログラムベリファイが　Ｐａｓｓ　の場合には、引き続き、２度目のプログラム　（２ｎｄ　Ｐａｓｓ）　が実行される。
２ｎｄ　Ｐａｓｓ　では、まず、データ記憶部ＤＳ２に記憶されているプログラムデータを、データ記憶部ＤＳ３にコピーバックする（ステップＳ１７）。
【０３５７】
このコピーバックは、以下の意義を有する。
当初、プログラムデータは、データ記憶部ＤＳ２，ＤＳ３に記憶される（ステップＳ５）。しかし、１ｓｔ　Ｐａｓｓ　では、上述したように、データ記憶部ＤＳ３のデータは、“Ｖｅｒｉｆｙ１０　（１ｓｔＰａｓｓ）”又は“Ｖｅｒｉｆｙ００（１ｓｔＰａｓｓ）”の結果によって変わる。最終的、即ち、１ｓｔ　Ｐａｓｓ　のステップＳ９において、プログラムベリファイが　Ｐａｓｓ　の場合には、全てのデータ記憶部ＤＳ３の値は、“１”となっている。
【０３５８】
そこで、２ｎｄ　Ｐａｓｓ　では、データ記憶部ＤＳ３に再びプログラムデータを記憶させるため、データ記憶部ＤＳ２からデータ記憶部ＤＳ３にプログラムデータを転送する。これが、ステップＳ１７のコピーバックの意義である。
【０３５９】
この後、論理下位ページに対するプログラムならば、ライト電圧Ｖｐｇｍを１２Ｖに再設定し、論理上位ページに対するプログラムならば、ライト電圧Ｖｐｇｍを１３Ｖに再設定する。また、ステートマシーン内のプログラムカウンタの値ＰＣを０に再設定する（ステップＳ７）。
【０３６０】
次に、“Ｖｅｒｉｆｙ１０　（２ｎｄＰａｓｓ）”又は“Ｖｅｒｉｆｙ０１”が実行される。
【０３６１】
論理下位ページに対するプログラムであれば、“Ｖｅｒｉｆｙ１０　（２ｎｄＰａｓｓ）”が実行される（ステップＳ１９〜ＳＴ２０）。
【０３６２】
“Ｖｅｒｉｆｙ１０　（２ｎｄＰａｓｓ）”とは、プログラムの対象となる選択されたメモリセルに対して、リード電位Ｖｃｇｖ１０（図１７参照）を用いてリード動作を実行し、このリード動作により得られるリードデータとデータ記憶部ＤＳ２のデータ（プログラムデータ）とに基づいて、データ記憶部ＤＳ３に新たに記憶するデータの値を決定する動作のことである。
【０３６３】
２ｎｄ　Ｐａｓｓ　では、“１”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセル（“１”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関しては、“１１”状態を維持しているため、“Ｖｅｒｉｆｙ１０　（２ｎｄＰａｓｓ）”により読み出されるリードデータも、常に、“０”である。
【０３６４】
従って、データ記憶部ＤＳ１には、“０”が記憶される。また、データ記憶部ＤＳ２に“１”が記憶されているため、データ記憶部ＤＳ１のデータは、リードデータにかかわらず、強制的に、“１”に変更させられる。このため、“１”−データが、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。
【０３６５】
一方、“０”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセル（“０”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関しては、１ｓｔ　Ｐａｓｓ　により、ほぼ“１０”状態になっているものと考えられる。
【０３６６】
十分に閾値電圧が上昇（プログラムが完了）しているメモリセルについては、“Ｖｅｒｉｆｙ１０　（２ｎｄＰａｓｓ）”により読み出されるリードデータは、“１”となる。
【０３６７】
従って、データ記憶部ＤＳ１には、“１”が記憶される。この“１”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”から“１”に変わる。
【０３６８】
十分に閾値電圧が上昇していない（プログラムが完了していない）メモリセルについては、“Ｖｅｒｉｆｙ１０　（１ｓｔＰａｓｓ）”により読み出されるリードデータは、“０”となる。
【０３６９】
従って、データ記憶部ＤＳ１には、“０”が記憶される。この“０”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”を維持する。
【０３７０】
論理上位ページに対するプログラムであれば、“Ｖｅｒｉｆｙ０１”及び“Ｖｅｒｉｆｙ００　（２ｎｄＰａｓｓ）”が連続して実行される（ステップＳ２１〜Ｓ２２）。
【０３７１】
“Ｖｅｒｉｆｙ０１”とは、プログラムの対象となる選択されたメモリセルに対して、リード電位Ｖｃｇｖ０１（図１７参照）を用いてリード動作を実行し、このリード動作により得られるリードデータとデータ記憶部ＤＳ２のデータ（プログラムデータ）とに基づいて、データ記憶部ＤＳ３に新たに記憶するデータの値を決定する動作のことである。
【０３７２】
“Ｖｅｒｉｆｙ００　（２ｎｄＰａｓｓ）”とは、プログラムの対象となる選択されたメモリセルに対して、リード電位Ｖｃｇｖ００（図１７参照）を用いてリード動作を実行し、このリード動作により得られるリードデータとデータ記憶部ＤＳ２のデータ（プログラムデータ）とデータ記憶部ＤＳ４のデータ（論理下位ページデータ）とに基づいて、データ記憶部ＤＳ３に新たに記憶するデータの値を決定する動作のことである。
【０３７３】
２ｎｄ　Ｐａｓｓ　では、“１”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセル（“１”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関しては、“１１”状態又は“１０”状態を維持しているため、“Ｖｅｒｉｆｙ０１”により読み出されるリードデータも、常に、“０”である。
【０３７４】
従って、データ記憶部ＤＳ１には、“０”が記憶される。また、データ記憶部ＤＳ２に“１”が記憶されているため、データ記憶部ＤＳ１のデータは、リードデータにかかわらず、強制的に、“１”に変更させられる。このため、“１”−データが、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。
【０３７５】
また、“Ｖｅｒｉｆｙ００　（２ｎｄＰａｓｓ）”により読み出されるリードデータも、常に、“０”である。
【０３７６】
従って、データ記憶部ＤＳ１には、“０”が記憶される。しかし、データ記憶部ＤＳ２に“１”が記憶されているため、データ記憶部ＤＳ１のデータは、リードデータ及びデータ記憶部ＤＳ４の論理下位ページデータにかかわらず、強制的に、“１”に変更させられる。このため、“１”−データが、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。
【０３７７】
一方、“０”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセル（“０”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関しては、１ｓｔ　Ｐａｓｓ　により、“００”状態になっているものと考えられる。
【０３７８】
従って、最初のうちは、“Ｖｅｒｉｆｙ０１”により読み出されるリードデータは、“０”となる。このため、データ記憶部ＤＳ１には、“０”が記憶される。この“０”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”を維持する。
【０３７９】
この後、“Ｖｅｒｉｆｙ０１”に引き続き、“Ｖｅｒｉｆｙ００　（２ｎｄＰａｓｓ）”が実行される。
【０３８０】
十分に閾値電圧が上昇（　“００”−ｐｒｏｇｒａｍｍｉｎｇが完了）しているメモリセルについては、“Ｖｅｒｉｆｙ００　（２ｎｄＰａｓｓ）”により読み出されるリードデータは、“１”となる。
【０３８１】
従って、データ記憶部ＤＳ１には、“１”が記憶される。
【０３８２】
しかし、ここで、データ記憶部ＤＳ１のデータは、データ記憶部ＤＳ４に記憶された論理下位ページデータに影響を受ける。
即ち、論理下位ページデータが“１”の場合には、データ記憶部ＤＳ４（ノードＮ４）は、“０”（＝“Ｌ”）を記憶している。従って、データ記憶部ＤＳ１のデータは、強制的に、“０”に変更される。これは、論理下位ページデータが“１”のときに、論理上位ページデータとして“０”をプログラムするときは、メモリセルを“０１”状態（図１９参照）にすることを意味する。
【０３８３】
この“０”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”のままである。
【０３８４】
論理下位ページデータが“０”の場合には、データ記憶部ＤＳ４（ノードＮ４）は、“１”（＝“Ｈ”）を記憶している。従って、データ記憶部ＤＳ１のデータは、“１”のままである。
【０３８５】
この“１”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”から“１”に変わる。
【０３８６】
ところで、上述のように、論理上位ページデータとして、“０”をプログラミングするときは、論理下位ページデータが“０”のときは、メモリセルは、“００”状態にし、論理下位ページデータが“１”のときは、メモリセルは、“０１”状態にしなければならない。
【０３８７】
また、　１ｓｔ　Ｐａｓｓ　が終了した時点では、論理上位ページデータとして、“０”をプログラミングするメモリセルは、論理下位ページデータの値にかかわらず、“００”状態になっている。
【０３８８】
本例のシーケンスでは、“Ｖｅｒｉｆｙ０１”の直後に“Ｖｅｒｉｆｙ００　（２ｎｄＰａｓｓ）”を連続して行っているため、論理下位ページデータが“１”のメモリセルのみの閾値電圧を、ライト動作及び“Ｖｅｒｉｆｙ０１”により上昇させ、“０１”状態にすることができる。言い換えると、論理下位ページデータが“０”のメモリセルについては、“Ｖｅｒｉｆｙ００　（２ｎｄＰａｓｓ）”により、ライト動作（フローティングゲート電極に対する電子の注入）を、“００”状態になった時点で止めることができる。
【０３８９】
この後、もし、プログラムカウンタの値ＰＣが、予め設定された最大ライト回数　ＰＣ　ｍａｘ　２ｎｄ　に達したならば、ステートマシーン内のステータスレジスタに、　Ｆａｉｌ　（プログラム不良）を設定し、プログラム動作を終了する（ステップＳ２３，Ｓ２８）。
【０３９０】
また、もし、プログラムカウンタの値ＰＣが、予め設定された最大ライト回数ＰＣ　ｍａｘ　２ｎｄ　よりも小さいならば、ライト電圧Ｖｐｇｍを、例えば、０．２Ｖ程度上昇（ステップアップ）させた後、ライト動作を実行する（ステップＳ２３，Ｓ２４，Ｓ２５）。
【０３９１】
データ記憶部ＤＳ３に記憶されたプログラムデータが“０”の場合には、例えば、基板とフローティングゲート電極との間に高電圧を与え、フローティングゲート電極に電子を注入し、メモリセルの閾値電圧を上げる　（“０”−ｐｒｏｇｒａｍｍｉｎｇ）。データ記憶部ＤＳ３に記憶されたプログラムデータが“１”の場合には、例えば、基板とフローティングゲート電極との間に高電圧が与えられないようにし、フローティングゲート電極に対する電子の注入を防止し、メモリセルの閾値電圧を変化させない　（“１”−ｐｒｏｇｒａｍｍｉｎｇ）。
【０３９２】
このライト動作を行った後に、プログラムカウンタの値ＰＣに“１”を加える（ステップＳ２５）。
【０３９３】
この後、データ記憶部ＤＳ３に記憶されたデータに基づいて、プログラムベリファイを実行し、プログラムベリファイが　Ｐａｓｓ　（プログラムが完了している状態）であるか、又は、ＮＧ（プログラムが完了していない状態）であるかを判定する（ステップＳ２６）。
【０３９４】
論理上位ページに対するプログラムデータが“１”（　“１”−ｐｒｏｇｒａｍｍｉｎｇ　）の場合には、データ記憶部ＤＳ３のデータは、常に、“１”となっている。
【０３９５】
また、論理上位ページに対するプログラムデータが“０”で、論理下位ページデータが“０”の場合（　“００”−ｐｒｏｇｒａｍｍｉｎｇ　）の場合には、“００”−ｐｒｏｇｒａｍｍｉｎｇ　が完了している場合には、データ記憶部ＤＳ３のデータは、“Ｖｅｒｉｆｙ００　（２ｎｄＰａｓｓ）”により、“０”から“１”に変更される。
【０３９６】
また、論理上位ページに対するプログラムデータが“０”で、論理下位ページデータが“１”の場合（　“０１”−ｐｒｏｇｒａｍｍｉｎｇ　）の場合には、“０１”−ｐｒｏｇｒａｍｍｉｎｇ　が完了している場合には、データ記憶部ＤＳ３のデータは、“Ｖｅｒｉｆｙ０１”により、“０”から“１”に変更される。
【０３９７】
従って、プログラムの対象となる選択された全てのメモリセルに対して、プログラミング（“００”−ｐｒｏｇｒａｍｍｉｎｇ　又は　“０１”−ｐｒｏｇｒａｍｍｉｎｇ　）が完了している場合には、全てのデータ記憶部ＤＳ３が“１”−データを記憶していることになる。つまり、全てのカラムにおいて、図１０のＮチャネルＭＯＳトランジスタＱｎ１７は、オフ状態であり、図８のＦＬＡＧが“Ｈ”（プログラムベリファイがＰａｓｓ　の状態）となる。そして、ステートマシーン内のステータスレジスタに、Ｐａｓｓ　（プログラム完了）を設定し、プログラム動作を終了する（ステップＳ２６，Ｓ２７）。
【０３９８】
また、プログラムの対象となる選択されたメモリセルの少なくとも１つに対して、プログラミング（“０１”−ｐｒｏｇｒａｍｍｉｎｇ　）が完了していない場合には、少なくとも１つのデータ記憶部ＤＳ３が“０”−データを記憶していることになる。つまり、少なくとも１つのカラムにおいて、図１０のＮチャネルＭＯＳトランジスタＱｎ１７は、オン状態となり、図８のＦＬＡＧが“Ｌ”（プログラムベリファイが　ＮＧ　の状態）となって、再び、ベリファイリードとライト動作が繰り返される（ステップＳ１９〜Ｓ２５，Ｓ２８）。
【０３９９】
このように、データ記憶部ＤＳ３に記憶されたデータに基づいて、プログラムが完了したか否かを判断できる。
【０４００】
［２］　　プログラム動作２
図３０は、プログラム動作のアルゴリズムの他の例を示している。
この例は、　Ｑｕｉｃｋ　Ｐａｓｓ　Ｗｒｉｔｅ　（ＱＰＷ）　と呼ばれる書き込み原理を採用したときのアルゴリズムとなっている。　Ｑｕｉｃｋ　Ｐａｓｓ　Ｗｒｉｔｅ　とは、Ｐａｓｓ　Ｗｒｉｔｅ（２度書き）の改良例であり、　Ｐａｓｓ　Ｗｒｉｔｅ　における　１ｓｔ　Ｐａｓｓ　と　２ｎｄ　Ｐａｓｓ　を並列処理して、書き込み時間の短縮を図った点に特徴を有する。
【０４０１】
まず、コマンドインターフェイス回路が、ホストマイコンから提供されるデータ入力コマンドを受け取り、これを受けて、データ入力コマンドが、ステートマシン（制御回路）内に設定される（ステップＳ１）。
【０４０２】
また、アドレス信号が、ホストマイコンからメモリチップ内に供給されると、これを受けて、プログラムの対象となるページを選択するためのアドレスが、ステートマシン内に設定される（ステップＳ２）。
【０４０３】
そして、１ページ分のプログラムデータが、データ入出力バッファを経由して、メモリチップ内に入力されると、これら１ページ分のプログラムデータは、データ記憶部ＤＳ４に記憶される（ステップＳ３）。
【０４０４】
この後、コマンドインターフェイス回路が、ホストマイコンから提供されるライトコマンドを確認すると、これを受けて、ライトコマンドが、ステートマシン内に設定される（ステップＳ４）。その結果、ステートマシンによる制御の下、ステップＳ５からステップＳ１７までの動作が、自動的に実行される。
【０４０５】
まず、データ記憶部ＤＳ４に記憶されているプログラムデータは、データ記憶部ＤＳ２，ＤＳ３にそれぞれコピーされる（ステップＳ５）。
【０４０６】
この後、もし、プログラムの対象となるページが論理上位ページであるならば、ライト動作に先立って、　Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ　が実行される（ステップＳ６）。Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ　によって読み出された論理下位ページデータは、データ記憶部ＤＳ１を経由して、データ記憶部ＤＳ４に記憶される。
【０４０７】
論理下位ページデータが“１”の場合には、Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ　によるリードデータは、“０”（＝“Ｌ”）となり、“０”−データがデータ記憶部ＤＳ４（ノードＮ４）に記憶される。論理下位ページデータが“０”の場合には、Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ　によるリードデータは、“１”（＝“Ｈ”）となり、“１”−データがデータ記憶部ＤＳ４（ノードＮ４）に記憶される。
【０４０８】
この後、論理下位ページに対するプログラムならば、ライト電圧Ｖｐｇｍを１２Ｖに設定し、論理上位ページに対するプログラムならば、ライト電圧Ｖｐｇｍを１３Ｖに設定する。また、ステートマシーン内のプログラムカウンタの値ＰＣを０に設定する（ステップＳ７）。なお、プログラムカウンタの値ＰＣは、ライト動作の回数を表している。
【０４０９】
次に、ライト動作を実行する（ステップＳ８）。
データ記憶部ＤＳ３に記憶されたプログラムデータが“０”の場合には、例えば、基板とフローティングゲート電極との間に高電圧を与え、フローティングゲート電極に電子を注入し、メモリセルの閾値電圧を上げる　（“０”−ｐｒｏｇｒａｍｍｉｎｇ）。データ記憶部ＤＳ３に記憶されたプログラムデータが“１”の場合には、例えば、基板とフローティングゲート電極との間に高電圧が与えられないようにし、フローティングゲート電極に対する電子の注入を防止し、メモリセルの閾値電圧を変化させない　（“１”−ｐｒｏｇｒａｍｍｉｎｇ）。
【０４１０】
このライト動作を行った後に、プログラムカウンタの値ＰＣに“１”を加える（ステップＳ８）。
【０４１１】
この後、データ記憶部ＤＳ３に記憶されたデータに基づいて、プログラムベリファイが　Ｐａｓｓ　の状態（プログラムが完了している状態）になっているか、又は、ＮＧの状態（プログラムが完了していない状態）になっているかを判定する（ステップＳ９）。
【０４１２】
最初のライト動作の直後においては、“Ｖｅｒｉｆｙ０１”、“Ｖｅｒｉｆｙ００”及び“Ｖｅｒｉｆｙ１０”は、一度も行われていないため、データ記憶部ＤＳ３は、プログラムデータそのものを記憶している。
【０４１３】
全てのカラム内のデータ記憶部ＤＳ３（例えば、４２５６個）が“１”−データを記憶している場合、即ち、論理下位ページ又は論理上位ページに対するプログラムデータが全て“１”の場合には、全てのカラムにおいて、図１０のＮチャネルＭＯＳトランジスタＱｎ１７は、オフ状態であり、例えば、図８のＦＬＡＧは、“Ｈ”を維持する。
【０４１４】
従って、プログラムベリファイが　Ｐａｓｓ　の状態（プログラムが完了している状態）になっていると判断され、その結果、ステータスレジスタに　Ｐａｓｓ　が設定され、プログラム動作が終了する（ステップＳ１６）。
【０４１５】
これに対して、少なくとも１つのカラム内のデータ記憶部ＤＳ３が“０”−データを記憶している場合、即ち、論理下位ページ又は論理上位ページに対するプログラムデータの少なくとも１つが“０”の場合には、“０”−データを記憶するデータ記憶部ＤＳ３に接続されるＮチャネルＭＯＳトランジスタＱｎ１７（図１０）は、オン状態であり、例えば、図８のＦＬＡＧは、“Ｌ”になる。
【０４１６】
従って、プログラムベリファイが　ＮＧ　の状態（プログラムが完了していない状態）になっていると判断され、その結果、“Ｖｅｒｉｆｙ１０”又は“Ｖｅｒｉｆｙ０１”へ移行する。
【０４１７】
論理下位ページに対するプログラムであれば、“Ｖｅｒｉｆｙ１０”が実行される（ステップＳ１１）。
【０４１８】
“Ｖｅｒｉｆｙ１０”とは、プログラムの対象となる選択されたメモリセルに対して、リード電位Ｖｃｇｖ１０（図１７参照）を用いてリード動作を実行し、このリード動作により得られるリードデータとデータ記憶部ＤＳ２のデータ（プログラムデータ）とに基づいて、データ記憶部ＤＳ３に新たに記憶するデータの値を決定する動作のことである。
【０４１９】
論理下位ページに対するプログラムの場合、当初は、プログラムの対象となる選択された全てのメモリセルは、“１１”状態になっている。このため、　“１”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセル（“１”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関しては、閾値電圧の変動はないため、“Ｖｅｒｉｆｙ１０”により読み出されるリードデータは、常に、“０”である。
【０４２０】
従って、データ記憶部ＤＳ１には、“０”が記憶される。しかし、データ記憶部ＤＳ２に“１”が記憶されている場合には、データ記憶部ＤＳ１のデータは、リードデータにかかわらず、強制的に、“１”に変更させられる。つまり、この“１”−データが、データ記憶部ＤＳ１から、再び、データ記憶部ＤＳ３に記憶される。
【０４２１】
一方、“０”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセル（“０”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関しては、ライト動作（ステップＳ８）により十分に閾値電圧が上昇（プログラムが完了）している場合には、“Ｖｅｒｉｆｙ１０”により読み出されるリードデータは、“１”となる。
【０４２２】
従って、データ記憶部ＤＳ１には、“１”が記憶される。この“１”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”から“１”に変わる。
【０４２３】
また、“０”−ｐｒｏｇｒａｍｍｉｎｇ　の対象となるメモリセル（“０”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関し、ライト動作（ステップＳ８）により十分に閾値電圧が上昇していない（プログラムが完了していない）場合には、“Ｖｅｒｉｆｙ１０”により読み出されるリードデータは、“０”となる。
【０４２４】
従って、データ記憶部ＤＳ１には、“０”が記憶される。この“０”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”を維持する。
【０４２５】
論理上位ページに対するプログラムであれば、“Ｖｅｒｉｆｙ０１”及び“Ｖｅｒｉｆｙ００”が連続して実行される（ステップＳ１２，Ｓ１３）。
【０４２６】
“Ｖｅｒｉｆｙ０１”とは、プログラムの対象となる選択されたメモリセルに対して、リード電位Ｖｃｇｖ０１（図１７参照）を用いてリード動作を実行し、このリード動作により得られるリードデータとデータ記憶部ＤＳ２のデータ（プログラムデータ）とに基づいて、データ記憶部ＤＳ３に新たに記憶するデータの値を決定する動作のことである。
【０４２７】
“Ｖｅｒｉｆｙ００”とは、プログラムの対象となる選択されたメモリセルに対して、リード電位Ｖｃｇｖ００（図１７参照）を用いてリード動作を実行し、このリード動作により得られるリードデータとデータ記憶部ＤＳ２のデータ（プログラムデータ）とデータ記憶部ＤＳ４のデータ（論理下位ページデータ）とに基づいて、データ記憶部ＤＳ３に新たに記憶するデータの値を決定する動作のことである。
【０４２８】
論理上位ページデータ“１”のプログラミング（“１”−ｐｒｏｇｒａｍｍｉｎｇ）の対象となるメモリセル（“１”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関しては、“１１”状態又は“１０”状態を維持するため、“Ｖｅｒｉｆｙ０１”により読み出されるリードデータも、常に、“０”である。
【０４２９】
従って、データ記憶部ＤＳ１には、“０”が記憶される。また、データ記憶部ＤＳ２に“１”が記憶されているため、データ記憶部ＤＳ１のデータは、リードデータにかかわらず、強制的に、“１”に変更させられる。このため、“１”−データが、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。
【０４３０】
また、“Ｖｅｒｉｆｙ００”により読み出されるリードデータも、常に、“０”である。
【０４３１】
従って、データ記憶部ＤＳ１には、“０”が記憶される。しかし、データ記憶部ＤＳ２に“１”が記憶されているため、データ記憶部ＤＳ１のデータは、リードデータ及びデータ記憶部ＤＳ４の論理下位ページデータにかかわらず、強制的に、“１”に変更させられる。このため、“１”−データが、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。
【０４３２】
一方、論理上位ページデータ“０”のプログラミング（“０”−ｐｒｏｇｒａｍｍｉｎｇ）の対象となるメモリセル（“０”−データを記憶するデータ記憶部ＤＳ３に対応するメモリセル）に関しては、“１１”状態又は“１０”状態から、“００”状態になった後、さらに、“０１”状態に向かって変化する。
【０４３３】
従って、最初のうちは、“Ｖｅｒｉｆｙ０１”により読み出されるリードデータは、“０”となる。このため、データ記憶部ＤＳ１には、“０”が記憶される。この“０”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”を維持する。
【０４３４】
この後、“Ｖｅｒｉｆｙ０１”に引き続き、“Ｖｅｒｉｆｙ００”が実行される。
【０４３５】
十分に閾値電圧が上昇（　“００”−ｐｒｏｇｒａｍｍｉｎｇが完了）しているメモリセルについては、“Ｖｅｒｉｆｙ００”により読み出されるリードデータは、“１”となる。
【０４３６】
従って、データ記憶部ＤＳ１には、“１”が記憶される。
【０４３７】
しかし、ここで、データ記憶部ＤＳ１のデータは、データ記憶部ＤＳ４に記憶された論理下位ページデータに影響を受ける。
即ち、論理下位ページデータが“１”の場合には、データ記憶部ＤＳ４（ノードＮ４）は、“０”（＝“Ｌ”）を記憶している。従って、データ記憶部ＤＳ１のデータは、強制的に、“０”に変更される。これは、論理下位ページデータが“１”のときに、論理上位ページデータとして“０”をプログラムするときは、メモリセルの閾値電圧を“０１”状態（図１９参照）まで上昇させることを意味する。
【０４３８】
この“０”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”のままである。
【０４３９】
論理下位ページデータが“０”の場合には、データ記憶部ＤＳ４（ノードＮ４）は、“１”（＝“Ｈ”）を記憶している。従って、データ記憶部ＤＳ１のデータは、“１”のままである。これは、論理下位ページデータが“０”のときに、論理上位ページデータとして“０”をプログラムするときは、メモリセルの閾値電圧を“００”状態（図１９参照）で止めることを意味する。
【０４４０】
この“１”−データは、データ記憶部ＤＳ１からデータ記憶部ＤＳ３に転送される。つまり、データ記憶部ＤＳ３のデータは、“０”から“１”に変わる。
【０４４１】
この後、もし、プログラムカウンタの値ＰＣが、予め設定された最大ライト回数　ＰＣ　ｍａｘ　に達したならば、ステートマシーン内のステータスレジスタに、　Ｆａｉｌ　（プログラム不良）を設定し、プログラム動作を終了する（ステップＳ１４，Ｓ１７）。
【０４４２】
また、もし、プログラムカウンタの値ＰＣが、予め設定された最大ライト回数ＰＣ　ｍａｘ　よりも小さいならば、ライト電圧Ｖｐｇｍを、例えば、０．２Ｖ程度上昇（ステップアップ）させた後、ライト動作を実行する（ステップＳ１４，Ｓ１５，Ｓ８）。
【０４４３】
この後、データ記憶部ＤＳ３に記憶されたデータに基づいて、プログラムベリファイを実行し、プログラムベリファイが　Ｐａｓｓ　（プログラムが完了している状態）であるか、又は、ＮＧ（プログラムが完了していない状態）であるかを判定する（ステップＳ９）。
【０４４４】
論理上位ページに対するプログラムデータが“１”（　“１”−ｐｒｏｇｒａｍｍｉｎｇ　）の場合には、データ記憶部ＤＳ３のデータは、常に、“１”となっている。
【０４４５】
また、論理上位ページに対するプログラムデータが“０”で、論理下位ページデータが“０”の場合（　“００”−ｐｒｏｇｒａｍｍｉｎｇ　）の場合には、“００”−ｐｒｏｇｒａｍｍｉｎｇ　が完了している場合には、データ記憶部ＤＳ３のデータは、“Ｖｅｒｉｆｙ００”により、“０”から“１”に変更される。
【０４４６】
また、論理上位ページに対するプログラムデータが“０”で、論理下位ページデータが“１”の場合（　“０１”−ｐｒｏｇｒａｍｍｉｎｇ　）の場合には、“０１”−ｐｒｏｇｒａｍｍｉｎｇ　が完了している場合には、データ記憶部ＤＳ３のデータは、“Ｖｅｒｉｆｙ０１”により、“０”から“１”に変更される。
【０４４７】
従って、プログラムの対象となる選択された全てのメモリセルに対して、プログラミング（“００”−ｐｒｏｇｒａｍｍｉｎｇ　又は　“０１”−ｐｒｏｇｒａｍｍｉｎｇ　）が完了している場合には、全てのデータ記憶部ＤＳ３が“１”−データを記憶していることになる。つまり、全てのカラムにおいて、図１０のＮチャネルＭＯＳトランジスタＱｎ１７は、オフ状態であり、図８のＦＬＡＧが“Ｈ”（プログラムベリファイがＰａｓｓ　の状態）となる。そして、ステートマシーン内のステータスレジスタに、Ｐａｓｓ　（プログラム完了）を設定し、プログラム動作を終了する（ステップＳ１６）。
【０４４８】
また、プログラムの対象となる選択されたメモリセルの少なくとも１つに対して、プログラミング（“００”−ｐｒｏｇｒａｍｍｉｎｇ，“０１”−ｐｒｏｇｒａｍｍｉｎｇ　）が完了していない場合には、少なくとも１つのデータ記憶部ＤＳ３が“０”−データを記憶していることになる。つまり、少なくとも１つのカラムにおいて、図１０のＮチャネルＭＯＳトランジスタＱｎ１７は、オン状態となり、図８のＦＬＡＧが“Ｌ”（プログラムベリファイが　ＮＧ　の状態）となって、再び、ベリファイリードとライト動作が繰り返される（ステップＳ８〜Ｓ１７）。
【０４４９】
このように、データ記憶部ＤＳ３に記憶されたデータに基づいて、プログラムが完了したか否かを判断できる。
【０４５０】
▲２▼　動作波形による動作説明
以下、動作タイミング図を用いて、具体的な動作説明を行う。
【０４５１】
プログラム動作　（Ｐａｓｓ　Ｗｒｉｔｅ）　の主要部は、データ記憶部ＤＳ４からデータ記憶部ＤＳ２，ＤＳ３へのプログラムデータのコピー動作、Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ　動作、データ記憶部ＤＳ２からデータ記憶部ＤＳ３へのプログラムデータのコピー動作、ライト動作　（Ｗｒｉｔｅ）、及び、ベリファイ動作　（Ｖｅｒｉｆｙ　１０／００／０１）　からなる。
【０４５２】
また、プログラム動作　（Ｑｕｉｃｋ　Ｐａｓｓ　Ｗｒｉｔｅ）　の主要部は、データ記憶部ＤＳ４からデータ記憶部ＤＳ２，ＤＳ３へのプログラムデータのコピー動作、ＩｎｔｅｒｎａｌＤａｔａ　Ｌｏａｄ　動作、ライト動作　（Ｗｒｉｔｅ）、及び、ベリファイ動作　（Ｖｅｒｉｆｙ　１０／００／０１）　からなる。
【０４５３】
そこで、これらの動作について説明する。
【０４５４】
なお、以下に説明する動作タイミング図において、特に示されていない限り、“Ｌ”レベルは、Ｖｓｓ（例えば、０Ｖ）、“Ｈ”レベルは、Ｖｄｄ（例えば、３Ｖ）である。また、この動作タイミング図では、１つのブロックＢＬＯＣＫｉが選択され、そのブロックＢＬＯＣＫｉ内のワード線ＷＬ２−ｉと奇数番目のビット線ＢＬｅｋが選択されるものとする（図３参照）。
【０４５５】
［１］　　ＤＳ４からＤＳ２，ＤＳ３へのコピー動作
図３１は、データ記憶部ＤＳ４からデータ記憶部ＤＳ２，ＤＳ３へのプログラムデータのコピー動作の動作波形図を示している。図３２は、データ記憶部ＤＳ４からデータ記憶部ＤＳ２，ＤＳ３へのプログラムデータのコピー動作におけるデータの流れを示している。
【０４５６】
このコピー動作は、図２８及び図３０のステップＳ５に相当する。
【０４５７】
まず、タイミング　ＣＰＣＬＫ１　において、制御信号ＶＰＲＥが“Ｈ”になり、タイミング　ＣＰＣＬＫ２　において、制御信号ＢＬＰＲＥが４．５Ｖになる。その結果、ＮチャネルＭＯＳトランジスタＱｎ６（図１０）がオン状態となり、データ記憶部ＤＳ１（ノードＮ２）は、“Ｈ”レベル（Ｖｄｄ）に充電される。
【０４５８】
この後、タイミング　ＣＰＣＬＫ６　において、制御信号ＢＬＣ２が“Ｈ”になると、ＮチャネルＭＯＳトランジスタＱｎ１２は、オン状態となり、データ記憶部ＤＳ１とデータ記憶部ＤＳ４が電気的に接続される。
【０４５９】
そして、もし、データ記憶部ＤＳ４（ノードＮ４）が、プログラムデータとして“１”（＝“Ｈ”）を記憶していれば、データ記憶部ＤＳ１、即ち、キャパシタＣ１の一端（ノードＮ２）は、“Ｈ”レベル（Ｖｄｄ）を維持する。また、もし、データ記憶部ＤＳ４（ノードＮ４）が、プログラムデータとして“０”（＝“Ｌ”）を記憶していれば、データ記憶部ＤＳ１、即ち、キャパシタＣ１の一端（ノードＮ２）の電荷は、放電され、データ記憶部ＤＳ１のデータは、“Ｈ”から“Ｌ”に変化する。
【０４６０】
一方、タイミング　ＣＰＣＬＫ８　において、制御信号ＳＥＮ１，ＬＡＴ１が“Ｌ”となり、また、タイミング　ＣＰＣＬＫ９　において、制御信号ＥＱ１が“Ｈ”となることにより、データ記憶部ＤＳ３の状態は、リセットされる。
【０４６１】
タイミング　ＣＰＣＬＫ１１　において、制御信号ＢＬＣ１が“Ｈ”になると、ＮチャネルＭＯＳトランジスタＱｎ１０がオン状態となり、データ記憶部ＤＳ１とデータ記憶部ＤＳ３とが電気的に接続される。また、タイミング　ＣＰＣＬＫ１２　において、制御信号ＳＥＮ１が“Ｈ”になると、データ記憶部ＤＳ１、即ち、キャパシタＣ１の一端（ノードＮ２）のデータは、クロック同期式インバータＣＩ１によりセンスされる。
【０４６２】
この後、タイミング　ＣＰＣＬＫ１３　において、制御信号ＬＡＴ１が“Ｈ”になると、データ記憶部ＤＳ１のデータは、データ記憶部ＤＳ３に記憶される。最後に、タイミング　ＣＰＣＬＫ１４　において、制御信号ＤＴＧが４．５Ｖになると、ＮチャネルＭＯＳトランジスタＱｎ９がオン状態となり、データ記憶部ＤＳ３のデータは、データ記憶部ＤＳ２に転送される。また、タイミング　ＣＰＣＬＫ１５　において、制御信号ＤＴＧが“Ｌ”になると、データ記憶部ＤＳ３のデータは、データ記憶部ＤＳ２に記憶される。
【０４６３】
例えば、データ記憶部ＤＳ１，ＤＳ４のデータが“１”（ノードＮ２，Ｎ４が“Ｈ”）ならば、データ記憶部ＤＳ２，ＤＳ３のデータも、“１”（ノードＮ３，Ｎ６が“Ｈ”）になる。また、データ記憶部ＤＳ１，ＤＳ４のデータが“０”（ノードＮ２，Ｎ４が“Ｌ”）ならば、データ記憶部ＤＳ２，ＤＳ３のデータも、“０”（ノードＮ３，Ｎ６が“Ｌ”）になる。
【０４６４】
なお、ＤＳ４からＤＳ２，ＤＳ３へのコピー動作は、全てのカラム（例えば、４２５６個）のデータ回路において同時に行われる。
【０４６５】
［２］　　Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ動作
図３３及び図３４は、Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ動作の動作波形図を示している。図３５は、Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ動作におけるデータの流れを示している。
【０４６６】
Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ動作は、図２８及び図３０のステップＳ６に相当する。
【０４６７】
Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ動作とは、論理下位ページデータのプログラムを行った後、論理上位ページデータのプログラムを行う場合に、論理上位ページデータのプログラムで目標とする閾値電圧を決定するために、予め、論理下位ページデータを読み出しておく動作のことである。
【０４６８】
具体的には、リード電位（選択されたワード線ＷＬ２−ｉの電位）をＶｃｇｒ１０（例えば、０Ｖ）に設定し、メモリセルのデータが、“１１”（論理下位ページデータが“１”）であるか、又は、“１０”（論理下位ページデータが“０”）であるかを認識する。
【０４６９】
Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ動作は、データリードに関する部分（　ＲＣＬＫ　１−Ｅ，　ＳＣＬＫ　１−Ｅ，　ＲＲＣＶ　１−Ｅ　）と、データトランスファに関する部分（　ＥＸＣＬＫ　ルーティン）とから構成される。
【０４７０】
［２］−１　　データリード
まず、ビット線側のセレクトゲート線ＳＧＤ及び非選択のワード線ＷＬ０−ｉ，ＷＬ１−ｉ，ＷＬ３−ｉに、それぞれ、転送電位Ｖｒｅａｄ（例えば、４．５Ｖ）が与えられ、選択されたワード線ＷＬ２−ｉに、リード電位Ｖｃｇｒ１０（例えば、０Ｖ）が与えられる（　ＲＣＬＫ　１−２　）。
【０４７１】
制御信号ＢＬＰＲＥが“Ｈ”となり、ＮチャネルＭＯＳトランジスタＱｎ６（図１０）がオン状態となる。また、制御信号ＢＬＣＬＡＭＰが、Ｖｃｌａｍｐ（例えば、２Ｖ）となり、制御信号ＢＬＳｅが、Ｖｓｇｈｈ（例えば、４．５Ｖ）となることで、奇数番目のビット線ＢＬｅｋが、所定電位（例えば、１Ｖ程度）にプリチャージされる。一方、制御信号ＢＩＡＳｏが、Ｖｓｇｈｈ（例えば、４．５Ｖ）となるため、偶数番目のビット線ＢＬｏｋは、Ｖｓｓ（例えば、０Ｖ）に固定され、シールドビット線として機能するようになる（　ＲＣＬＫ　２−４　）。
【０４７２】
この後、制御信号ＢＬＣＬＡＭＰが、Ｖｓｓ（例えば、０Ｖ）、制御信号ＢＬＰＲＥが“Ｌ”となり、奇数番目のビット線ＢＬｅｋは、フローティング状態となる（　ＲＣＬＫ　５−７　）。
ソース線側のセレクトゲート線ＳＧＳの電位が、転送電位Ｖｒｅａｄに設定されると、選択されたメモリセルの状態、即ち、そのメモリセルに記憶されたデータの値に応じて、ビット線ＢＬｅｋの電位に影響が表れる。
【０４７３】
即ち、選択されたメモリセルのデータが、“１１”の場合には、リード電位Ｖｃｇｒ１０により、この選択されたメモリセルは、オン状態になる。このため、ビット線ＢＬｅｋの電荷が放電され、ビット線ＢＬｅｋの電位は、０．８Ｖ以下に低下する（選択ブロック内の非選択のメモリセルは、Ｖｒｅａｄにより、オン状態である。）。
【０４７４】
一方、選択されたメモリセルのデータが、“１０”の場合には、リード電位Ｖｃｇｒ１０によっては、この選択されたメモリセルは、オン状態にならない。このため、ビット線ＢＬｅｋの電荷が放電されることはなく、ビット線ＢＬｅｋは、プリチャージ電位（約１Ｖ）を維持する（　ＲＣＬＫ　６−Ｅ　）。
【０４７５】
制御信号ＢＬＰＲＥが、４．５Ｖ程度になり、制御信号ＶＰＲＥが、Ｖｄｄ（例えば、３Ｖ）になることによって、データ記憶部ＤＳ１のキャパシタＣ１の一端、即ち、ノードＮ２は、Ｖｄｄに充電される。この後、制御信号ＢＬＣＬＡＭＰが、Ｖｓｅｎｓｅ（例えば、１．８Ｖ）になると、データ記憶部ＤＳ１のキャパシタＣ１の一端の電位は、以下のように変化する。
【０４７６】
即ち、ビット線ＢＬｅｋの電位がプリチャージ電位（約１Ｖ）のままである場合（メモリセルのデータが“１０”の場合）には、ＮチャネルＭＯＳトランジスタ（クランプトランジスタ）Ｑｎ５（図１０）は、オフ状態であり、データ記憶部ＤＳ１のキャパシタＣ１の一端の電位は、Ｖｄｄ（“Ｈ”）に維持される。
【０４７７】
一方、ビット線ＢＬｅｋの電位が０．８Ｖ以下である場合（メモリセルのデータが“１１”の場合）には、ＮチャネルＭＯＳトランジスタ（クランプトランジスタ）Ｑｎ５（図１０）は、オン状態であり、データ記憶部ＤＳ１のキャパシタＣ１の一端の電荷は、ビット線ＢＬｅｋに放電され、その電位は、Ｖｄｄよりも低い値（“Ｌ”）に低下する（　ＳＣＬＫ　４−５　）。
【０４７８】
その結果、データ記憶部ＤＳ１（キャパシタＣ１の一端）には、リード電位Ｖｃｇｒ１０によるリードデータが記憶される。即ち、メモリセルのデータが“１１”の場合には、“Ｌ”、つまり、“１”−データが記憶され、メモリセルのデータが“１０”の場合には、“Ｈ”、つまり、“０”−データが記憶される。
【０４７９】
なお、Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ動作では、“Ｌ”＝“０”及び“Ｈ”＝“１”の関係が逆転している。即ち、“Ｌ”＝“１”及び“Ｈ”＝“０”の関係となっている。
【０４８０】
［２］−２　　データトランスファ
Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ動作では、メモリセルのデータをデータ記憶部ＤＳ１に読み出した後、このデータ記憶部ＤＳ１に記憶されたリードデータを、データ記憶部ＤＳ４に転送するデータトランスファが実行される。この動作は、図３４に示すＥＸＣＬＫルーティンに従う。
【０４８１】
まず、制御信号ＳＥＮ２，ＬＡＴ２が、共に、“Ｌ”となり（　ＥＸＣＬＫ　６　）、かつ、制御信号ＥＱ２が“Ｈ”になることで（　ＥＸＣＬＫ　７−８　）、データ記憶部ＤＳ４を構成するフリップフロップ回路（図１０）の状態がリセットされる。
【０４８２】
この後、制御信号ＢＬＣ２が、４．５Ｖとなり（　ＥＸＣＬＫ　９　）、ＮチャネルＭＯＳトランジスタＱｎ１２がオン状態となる。その結果、データ記憶部ＤＳ１とデータ記憶部ＤＳ４は、互いに電気的に接続される。
【０４８３】
制御信号ＳＥＮ２が“Ｈ”になると（　ＥＸＣＬＫ　１０　）、データ記憶部ＤＳ１（キャパシタＣ１の一端）に記憶されたリードデータは、ＭＯＳトランジスタＱｎ１２を経由して、データ記憶部ＤＳ４を構成するクロック同期式インバータＣＩ４によりセンスされる。また、制御信号ＬＡＴ２が“Ｈ”になると（　ＥＸＣＬＫ　１１　）、このリードデータは、データ記憶部ＤＳ４に記憶される。
【０４８４】
なお、Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ動作は、全てのカラム（例えば、４２５６個）のデータ回路において同時に行われる。
【０４８５】
［３］　　ＤＳ２からＤＳ３へのコピー（コピーバック）動作
図３６は、データ記憶部ＤＳ２からデータ記憶部ＤＳ３へのプログラムデータのコピー動作の動作波形図を示している。図３７は、データ記憶部ＤＳ２からデータ記憶部ＤＳ３へのプログラムデータのコピー動作におけるデータの流れを示している。
【０４８６】
このコピー動作は、図２９のステップＳ１７に相当する。
【０４８７】
まず、タイミング　ＣＰＣＬＫ３　において、制御信号ＢＬＰＲＥが“Ｈ”になると、ＮチャネルＭＯＳトランジスタＱｎ６（図１０）がオン状態となる。この時、制御信号ＶＰＲＥは、Ｖｓｓ（０Ｖ）のままであるため、データ記憶部ＤＳ１（ノードＮ２）は、“Ｌ”レベル（Ｖｓｓ）に充電される。
【０４８８】
この後、タイミング　ＣＰＣＬＫ５　において、制御信号ＶＲＥＧが“Ｈ”となる。また、制御信号ＲＥＧが４．５Ｖになると、ＮチャネルＭＯＳトランジスタＱｎ７は、オン状態となり、データ記憶部ＤＳ１とデータ記憶部ＤＳ２が電気的に接続される。
【０４８９】
そして、もし、データ記憶部ＤＳ２（ノードＮ６）が、プログラムデータとして“１”（＝“Ｈ”）を記憶していれば、ＮチャネルＭＯＳトランジスタＱｎ８のゲート電位は、ブートストラップ現象によって、Ｖｄｄ程度から５Ｖ程度にまで上昇する。その結果、ＶＲＥＧ（＝Ｖｄｄ）は、ＮチャネルＭＯＳトランジスタＱｎ７，Ｑｎ８を経由して、データ記憶部ＤＳ１に転送される。つまり、データ記憶部ＤＳ１、即ち、キャパシタＣ１の一端（ノードＮ２）のレベルは、“Ｌ”から“Ｈ”に変化する。
【０４９０】
また、もし、データ記憶部ＤＳ２（ノードＮ６）が、プログラムデータとして“０”（＝“Ｌ”）を記憶していれば、ＮチャネルＭＯＳトランジスタＱｎ８のゲート電位は、Ｖｓｓ（＝０Ｖ）となっている。その結果、ＶＲＥＧ（＝Ｖｄｄ）は、データ記憶部ＤＳ１に転送されることがなく、データ記憶部ＤＳ１、即ち、キャパシタＣ１の一端（ノードＮ２）は、“Ｌ”レベルを維持する。
【０４９１】
タイミング　ＣＰＣＬＫ８　において、制御信号ＳＥＮ１，ＬＡＴ１が“Ｌ”となり、また、タイミング　ＣＰＣＬＫ９　において、制御信号ＥＱ１が“Ｈ”となることにより、データ記憶部ＤＳ３の状態は、リセットされる。
【０４９２】
タイミング　ＣＰＣＬＫ１１　において、制御信号ＢＬＣ１が“Ｈ”になると、ＮチャネルＭＯＳトランジスタＱｎ１０がオン状態となり、データ記憶部ＤＳ１とデータ記憶部ＤＳ３とが電気的に接続される。また、タイミング　ＣＰＣＬＫ１２　において、制御信号ＳＥＮ１が“Ｈ”になると、データ記憶部ＤＳ１、即ち、キャパシタＣ１の一端（ノードＮ２）のデータは、クロック同期式インバータＣＩ１によりセンスされる。
【０４９３】
この後、タイミング　ＣＰＣＬＫ１３　において、制御信号ＬＡＴ１が“Ｈ”になると、データ記憶部ＤＳ１のデータは、データ記憶部ＤＳ３に記憶される。
【０４９４】
以上の動作により、データ記憶部ＤＳ２からデータ記憶部ＤＳ３へのプログラムデータのコピー動作、いわゆるコピーバックが終了する。
【０４９５】
なお、ＤＳ２からＤＳ３へのコピー動作は、全てのカラム（例えば、４２５６個）のデータ回路において同時に行われる。
【０４９６】
［４］　　ライト動作　（Ｗｒｉｔｅ）
図３８は、ライト動作の動作波形図を示している。図３９は、ライト動作におけるデータの流れを示している。
【０４９７】
なお、図示されていない限り、“Ｌ”レベルは、０Ｖ、“Ｈ”レベルは、Ｖｄｄ（例えば、３Ｖ）である。また、選択されたブロック内において、選択されたワード線は、ＷＬ２であり、選択されたビット線は、ＢＬｅである。
【０４９８】
ライト動作は、図２８及び図３０のステップＳ８、並びに、図２９のステップＳ２５に相当する。
【０４９９】
まず、タイミング　ＰＣＬＫ１　において、制御信号ＢＬＣＬＡＭＰ，ＢＬＣ１が４．５Ｖになる。また、タイミング　ＰＣＬＫ３　において、ＢＬＳｅが４．５Ｖになると、ビット線ＢＬｅｋとデータ記憶部ＤＳ３とが電気的に接続される。
【０５００】
データ記憶部ＤＳ３（ノードＮ３）のデータが“１”の場合、ビット線ＢＬｅｋは、Ｖｄｄに充電される。また、データ記憶部ＤＳ３（ノードＮ３）のデータが“０”の場合、ビット線ＢＬｅｋは、Ｖｓｓ（０Ｖ）に充電される。
【０５０１】
また、タイミング　ＰＣＬＫ３　において、制御信号ＢＬＣＲＬが“Ｈ”になり、制御信号ＢＩＡＳｏが４．５Ｖになる。その結果、ビット線ＢＬｅｏは、Ｖｄｄに充電される。
【０５０２】
この後、タイミング　ＰＣＬＫ６　において、非選択のワード線ＷＬ０−ｉ，ＷＬ１−ｉ，ＷＬ３−ｉに１０Ｖが与えられ、タイミング　ＰＣＬＫ７　において、選択されたワード線ＷＬ２−ｉにＶｐｇｍ（最初は、１２Ｖ又は１３Ｖ。ライト回数に応じて、０．２Ｖずつ上昇する。）が与えられる。その結果、メモリセルに対するプログラミングが実行される。
【０５０３】
例えば、データ記憶部ＤＳ３に記憶されているデータが“１”の場合、ビット線ＢＬｅｋは、Ｖｄｄであり、ワード線（コントロールゲート電極）ＷＬ２−ｉとメモリセルのチャネルとの間の電位差は、メモリセルのフローティングゲート電極に電子を注入するのに十分な値とはならない。
【０５０４】
これに対し、データ記憶部ＤＳ３に記憶されているデータが“０”の場合、ビット線ＢＬｅｋは、０Ｖであり、ワード線（コントロールゲート電極）ＷＬ２−ｉとメモリセルのチャネルとの間の電位差は、メモリセルのフローティングゲート電極に電子を注入するのに十分な値となる。
【０５０５】
従って、データ記憶部ＤＳ３に記憶されているデータが“１”の場合には、メモリセルの閾値電圧は、上昇することなく、データ記憶部ＤＳ３に記憶されているデータが“０”の場合には、メモリセルの閾値電圧は、上昇する。
【０５０６】
ＱＰＷ　（Ｑｕｉｃｋ　Ｐａｓｓ　Ｗｒｉｔｅ）　時には、タイミング　ＰＣＬＫ４　において、制御信号ＶＲＥＧがＶｄｄとなり、タイミング　ＰＣＬＫ５　において、制御信号ＢＬＣ１が“Ｌ”になり、タイミング　ＰＣＬＫ６　において、制御信号ＲＥＧが２．０Ｖに設定される。
【０５０７】
従って、もし、データ記憶部ＤＳ２のデータ（プログラムデータ）が“１”の場合には、ＮチャネルＭＯＳトランジスタＱｎ８のゲートは、ブートストラップ現象によって、Ｖｄｄ程度から５Ｖ程度にまで上昇する。このため、ＶＲＥＧ（＝Ｖｄｄ）は、制御信号ＲＥＧ（＝２．０Ｖ）に制限されつつ、ビット線ＢＬｅｋに転送される。
【０５０８】
その結果、ビット線ＢＬｅｋの電位は、データ記憶部ＤＳ３に記憶されているデータにかかわらず、例えば、１Ｖ程度になる。
【０５０９】
もし、データ記憶部ＤＳ２のデータ（プログラムデータ）が“０”の場合には、ＮチャネルＭＯＳトランジスタＱｎ８のゲートは、０Ｖであるため、ビット線ＢＬｅｋの電位は、Ｖｄｄ（データ記憶部ＤＳ３のデータが“１”）又は０Ｖ（データ記憶部ＤＳ３のデータが“０”）を維持する。
【０５１０】
なお、ライト動作は、選択されたワード線ＷＬ２−ｉに接続される４２５６個のメモリセルに対して同時に行われる。
【０５１１】
［５］　　ベリファイ動作　（Ｖｅｒｉｆｙ　１０／００／０１）
図４０及び図４１は、ベリファイ動作におけるベリファイリードの動作波形図を示している。図４２乃至図４５は、ベリファイリードにおけるデータの流れを示している。
【０５１２】
なお、図示されていない限り、“Ｌ”レベルは、０Ｖ、“Ｈ”レベルは、Ｖｄｄ（例えば、３Ｖ）である。また、選択されたブロック内において、選択されたワード線は、ＷＬ２であり、選択されたビット線は、ＢＬｅである。
【０５１３】
ベリファイ動作は、ベリファイリードと　Ｃｏｍｐｌｅｔｉｏｎ　Ｄｅｔｅｃｔｉｏｎ　とからなる。Ｃｏｍｐｌｅｔｉｏｎ　Ｄｅｔｅｃｔｉｏｎ　とは、ベリファイリードにより読み出されたデータに基づいて、選択された全てのメモリセルに対してデータプログラムが完了したか否かを検出する動作のことである。ここでは、主として、ベリファイリードについて説明する。
【０５１４】
ベリファイリードは、図２８のステップＳ１１，Ｓ１２、図２９のステップＳ２０，Ｓ２１，Ｓ２２、並びに、図３０のステップＳ１１，Ｓ１２，Ｓ１３に相当する。
ベリファイリードは、ライト動作後に行われ、メモリセルの閾値電圧が所定のレベルに達したか否かを判断する　（Ｃｏｍｐｌｅｔｉｏｎ　Ｄｅｔｅｃｔｉｏｎ）　ためのデータを、メモリセルから読み出す動作のことである。
【０５１５】
本例では、Ｐａｓｓ　Ｗｒｉｔｅ　（２度書き）を採用する場合のベリファイリードについて説明する。上述したように、１度目のプログラムは、　１ｓｔ　Ｐａｓｓ　と呼ばれ、２度目のプログラムは、　２ｎｄ　Ｐａｓｓ　と呼ばれる。１ｓｔ　Ｐａｓｓ　と　２ｎｄ　Ｐａｓｓ　を並列処理するプログラム方法は、ＱＰＷ　（Ｑｕｉｃｋ　Ｐａｓｓ　Ｗｒｉｔｅ）　と呼ばれる。ＱＰＷ時には、例えば、ステートマシン（制御回路）内のＱＰＷレジスタが“１”となり、通常のＰａｓｓ　Ｗｒｉｔｅ　の場合には、ステートマシン内のＱＰＷレジスタが“０”となる。
【０５１６】
まず、タイミング　ＲＣＬＫ　１−２　において、ビット線側のセレクトゲート線ＳＧＤ及び非選択のワード線ＷＬ０−ｉ，ＷＬ１−ｉ，ＷＬ３−ｉに、それぞれ、転送電位Ｖｒｅａｄ（例えば、４．５Ｖ）が与えられ、選択されたワード線ＷＬ２−ｉに、ベリファイリード電位Ｖｃｇｖｘｘが与えられる。
【０５１７】
ベリファイリード電位Ｖｃｇｖｘｘは、ベリファイリードの種類に応じて、例えば、以下のように変わる。
［Ｐａｓｓ　Ｗｒｉｔｅ　時］
ＶＥＲＩＦＹ１０　１ｓｔＰａｓｓ　→　Ｖｃｇｖｘｘ　＝　０．２５Ｖ　、ＶＥＲＩＦＹ１０　２ｎｄＰａｓｓ　→　Ｖｃｇｖｘｘ　＝　０．４０Ｖ　、ＶＥＲＩＦＹ００　１ｓｔＰａｓｓ　→　Ｖｃｇｖｘｘ　＝　１．２５Ｖ　、ＶＥＲＩＦＹ００　２ｎｄＰａｓｓ　→　Ｖｃｇｖｘｘ　＝　１．４０Ｖ　、ＶＥＲＩＦＹ０１　→　Ｖｃｇｖｘｘ　＝　２．４０Ｖ
［ＱＰＷ　時］
ＶＥＲＩＦＹ１０　→　Ｖｃｇｖｘｘ　＝　０．２５Ｖ　、ＶＥＲＩＦＹ００　→　Ｖｃｇｖｘｘ　＝　１．２５Ｖ　、ＶＥＲＩＦＹ０１　→　Ｖｃｇｖｘｘ　＝　２．２５Ｖ
タイミング　ＲＣＬＫ　２−４　において、制御信号ＢＬＰＲＥが“Ｈ”となり、ＮチャネルＭＯＳトランジスタＱｎ６（図１０）がオン状態となる。また、制御信号ＢＬＣＬＡＭＰが、Ｖｃｌａｍｐ（例えば、２Ｖ）となり、制御信号ＢＬＳｅが、Ｖｓｇｈｈ（例えば、４．５Ｖ）となることで、奇数番目のビット線ＢＬｅｋは、ＶＰＲＥ（＝Ｖｄｄ）に電気的に接続される。
【０５１８】
その結果、ビット線ＢＬｅｋは、ＮチャネルＭＯＳトランジスタＱｎ５の閾値電圧で制限される所定の電位、例えば、１Ｖ程度にプリチャージされる。また、制御信号ＢＩＡＳｏが、Ｖｓｇｈｈ（例えば、４．５Ｖ）となるため、偶数番目のビット線ＢＬｏｋは、Ｖｓｓ（例えば、０Ｖ）に固定され、シールドビット線として機能するようになる。
【０５１９】
原則として、ビット線ＢＬｅｋに対するプリチャージ源は、上述のように、ＶＰＲＥである。しかし、Ｐａｓｓ　Ｗｒｉｔｅ　動作における　２ｎｄ　Ｐａｓｓ　時の“Ｖｅｒｉｆｙ００　（２ｎｄＰａｓｓ）”と、ＱＰＷ動作における“Ｖｅｒｉｆｙ００”とに関しては、ビット線に対するプリチャージ源は、データ記憶部ＤＳ４となる。
【０５２０】
従って、“Ｖｅｒｉｆｙ００　（２ｎｄＰａｓｓ）”及び“Ｖｅｒｉｆｙ００”においては、タイミング　ＲＣＬＫ２　で、制御信号ＢＬＣ２が“Ｈ”となる一方、制御信号ＢＬＰＲＥは、タイミング　ＲＣＬＫ２−６　で、“Ｌ”のままとなる。
【０５２１】
その結果、ビット線ＢＬｅｋは、データ記憶部ＤＳ４に電気的に接続される。そして、データ記憶部ＤＳ４（ノードＮ３）のデータが“１”の場合には、ビット線ＢＬｅｋは、ＮチャネルＭＯＳトランジスタＱｎ５の閾値電圧で制限される所定の電位、例えば、１Ｖ程度にプリチャージされる。また、データ記憶部ＤＳ４（ノードＮ３）のデータが“０”の場合には、ビット線ＢＬｅｋは、０Ｖにプリチャージされる。
【０５２２】
この後、タイミング　ＲＣＬＫ　５−７　において、制御信号ＢＬＣＬＡＭＰが、Ｖｓｓ（例えば、０Ｖ）、制御信号ＢＬＰＲＥが“Ｌ”となり、ビット線ＢＬｅｋは、フローティング状態となる。
ソース線側のセレクトゲート線ＳＧＳの電位が、転送電位Ｖｒｅａｄに設定されると、選択されたメモリセルの状態、即ち、そのメモリセルの現在の閾値電圧に応じて、ビット線ＢＬｅｋの電位に影響が表れる。
【０５２３】
即ち、選択されたメモリセルの閾値電圧が、選択されたワード線ＷＬ２−ｉの電位（ベリファイリード電位）Ｖｃｇｖｘｘよりも低い場合には、このベリファイリード電位Ｖｃｇｖｘｘにより、選択されたメモリセルは、オン状態になる。このため、ビット線ＢＬｅｋの電荷が放電され、ビット線ＢＬｅｋの電位は、０．８Ｖ以下に低下する（選択ブロック内の非選択のメモリセルは、Ｖｒｅａｄにより、オン状態である。）。
【０５２４】
一方、選択されたメモリセルの閾値電圧が、ベリファイリード電位Ｖｃｇｖｘｘよりも高い場合には、このベリファイリード電位Ｖｃｇｖｘｘにより、選択されたメモリセルは、オン状態になることがない。このため、このため、ビット線ＢＬｅｋの電荷が放電されることはなく、ビット線ＢＬｅｋは、プリチャージ電位（約１Ｖ）を維持する。
【０５２５】
なお、“Ｖｅｒｉｆｙ００　（２ｎｄＰａｓｓ）”及び“Ｖｅｒｉｆｙ００”においては、ビット線ＢＬｅｋは、０Ｖにプリチャージされているため、選択されたメモリセルの状態によらず、ビット線ＢＬｅｋは、常に、０Ｖである。
【０５２６】
タイミング　ＲＣＬＫ　８−Ｅ　において、制御信号ＢＬＰＲＥが“Ｈ”になると、データ記憶部ＤＳ１のキャパシタＣ１の一端、即ち、ノードＮ２は、ＶＰＲＥ（＝０Ｖ）に充電される。また、ＱＰＷ動作でなければ（ＱＰＷレジスタの値＝“０”）、この後、図４１に示すＥＸＣＬＫルーティンが実行される　（ＳＣＬＫ１−２）。
【０５２７】
まず、タイミング　ＥＸＣＬＫ　２　において、制御信号ＶＲＥＧが“Ｈ”になる。また、制御信号ＲＥＧが４．５Ｖになると、ＮチャネルＭＯＳトランジスタＱｎ７がオン状態になるため、データ記憶部ＤＳ１のキャパシタＣ１の一端（ノードＮ２）の電位は、データ記憶部ＤＳ２に記憶されたデータに影響を受ける。
【０５２８】
例えば、データ記憶部ＤＳ２に記憶されたデータ（プログラムデータ）が“１”である場合には、ＮチャネルＭＯＳトランジスタＱｎ８のゲート電位は、ブートストラップ現象によって、Ｖｄｄ程度から５Ｖ程度にまで上昇し、ＶＲＥＧ（＝Ｖｄｄ）が、データ記憶部ＤＳ１のキャパシタＣ１の一端（ノードＮ２）に転送される。
【０５２９】
また、データ記憶部ＤＳ２に記憶されたデータ（プログラムデータ）が“０”である場合には、ＮチャネルＭＯＳトランジスタＱｎ８のゲート電位は、０Ｖであるため、ＶＲＥＧ（＝Ｖｄｄ）が、データ記憶部ＤＳ１のキャパシタＣ１の一端（ノードＮ２）に転送されることはない。つまり、データ記憶部ＤＳ１のキャパシタＣ１の一端の電位は、変化しない。
【０５３０】
また、タイミング　ＥＸＣＬＫ　４−５　において、制御信号ＤＴＧが４．５Ｖになると、データ記憶部ＤＳ３のデータが、データ記憶部ＤＳ２に転送される。
【０５３１】
この後、制御信号ＳＥＮ１，ＬＡＴ１が、共に、“Ｌ”となり（　ＥＸＣＬＫ　６　）、かつ、制御信号ＥＱ１が“Ｈ”になることで（　ＥＸＣＬＫ　７−８　）、データ記憶部ＤＳ３を構成するフリップフロップ回路（図１０）の状態がリセットされる。
【０５３２】
この後、制御信号ＢＬＣ１が、４．５Ｖとなり（　ＥＸＣＬＫ　９　）、ＮチャネルＭＯＳトランジスタＱｎ１０がオン状態となる。その結果、データ記憶部ＤＳ１とデータ記憶部ＤＳ３は、互いに電気的に接続される。
【０５３３】
制御信号ＳＥＮ１が“Ｈ”になると（　ＥＸＣＬＫ　１０　）、データ記憶部ＤＳ１（キャパシタＣ１の一端）に記憶されたデータは、ＭＯＳトランジスタＱｎ１０を経由して、データ記憶部ＤＳ３を構成するクロック同期式インバータＣＩ１によりセンスされる。また、制御信号ＬＡＴ１が“Ｈ”になると（　ＥＸＣＬＫ　１１　）、このデータは、データ記憶部ＤＳ３に記憶される。
【０５３４】
タイミング　ＳＣＬＫ２　において、制御信号ＢＬＰＲＥが、４．５Ｖ程度になり、制御信号ＶＰＲＥが、Ｖｄｄ（例えば、３Ｖ）になることによって、データ記憶部ＤＳ１のキャパシタＣ１の一端、即ち、ノードＮ２は、Ｖｄｄに充電される。この後、制御信号ＢＬＣＬＡＭＰが、Ｖｓｅｎｓｅ（例えば、１．８Ｖ）になると、データ記憶部ＤＳ１のキャパシタＣ１の一端の電位は、以下のように変化する。
【０５３５】
即ち、ビット線ＢＬｅｋの電位がプリチャージ電位（約１Ｖ）のままである場合（メモリセルの閾値電圧がＶｃｇｖｘｘよりも高い場合）には、ＮチャネルＭＯＳトランジスタ（クランプトランジスタ）Ｑｎ５（図１０）は、オフ状態であり、データ記憶部ＤＳ１のキャパシタＣ１の一端の電位は、Ｖｄｄ（“Ｈ”）に維持される。
【０５３６】
一方、ビット線ＢＬｅｋの電位が０．８Ｖ以下である場合（メモリセルの閾値電圧がＶｃｇｖｘｘよりも低い場合）には、ＮチャネルＭＯＳトランジスタ（クランプトランジスタ）Ｑｎ５（図１０）は、オン状態であり、データ記憶部ＤＳ１のキャパシタＣ１の一端の電荷は、ビット線ＢＬｅｋに放電され、その電位は、Ｖｄｄよりも低い値（“Ｌ”）に低下する（　ＳＣＬＫ　４−５　）。
【０５３７】
その結果、データ記憶部ＤＳ１（キャパシタＣ１の一端）には、ベリファイリード電位Ｖｃｇｖｘｘによるリードデータが記憶される。即ち、メモリセルの閾値電圧がＶｃｇｖｘｘよりも低い場合には、“Ｌ”、つまり、“０”−データが、データ記憶部ＤＳ１に記憶され、メモリセルの閾値電圧がＶｃｇｖｘｘよりも高い場合には、“Ｈ”、つまり、“１”−データが、データ記憶部ＤＳ１に記憶される。
【０５３８】
この後、図４１に示すＥＸＣＬＫルーティンが実行される　（ＳＣＬＫ５−Ｅ）。図４１のＥＸＣＬＫルーティンについては、既に、説明したので、ここでは、その説明については、省略する。
【０５３９】
タイミング　ＱＰＷＣＬＫ　１−Ｅ　における動作については、もし、ＱＰＷ動作でなければ（ＱＰＷレジスタの値＝“０”）、省略される。
【０５４０】
ＱＰＷ動作（ＱＰＷレジスタの値＝“１”）であれば、ステートマシンによって、ＱＰＷＣＬＫルーティンが実行される　（ＱＰＷＣＬＫ１−Ｅ）。
【０５４１】
ＱＰＷ時には、タイミング　ＳＣＬＫ　６　において、選択されたワード線ＷＬ２−ｉの電位（ベリファイリード電位）Ｖｃｇｖｘｘが、０．１５Ｖ程度上昇させられる。即ち、Ｖｃｇｖｘｘは、４．５Ｖ＋０．１５Ｖとなる。
【０５４２】
タイミング　ＱＰＷＣＬＫ２　において、制御信号ＢＬＰＲＥが、４．５Ｖ程度になり、制御信号ＶＰＲＥが、Ｖｄｄ（例えば、３Ｖ）になることによって、データ記憶部ＤＳ１のキャパシタＣ１の一端、即ち、ノードＮ２は、Ｖｄｄに充電される。この後、タイミング　ＱＰＷＣＬＫ４　において、制御信号ＢＬＣＬＡＭＰが、Ｖｓｅｎｓｅ（例えば、１．８Ｖ）になると、データ記憶部ＤＳ１のキャパシタＣ１の一端の電位は、以下のように変化する。
【０５４３】
即ち、ビット線ＢＬｅｋの電位がプリチャージ電位（約１Ｖ）のままである場合（メモリセルの閾値電圧がＶｃｇｖｘｘよりも高い場合）には、ＮチャネルＭＯＳトランジスタ（クランプトランジスタ）Ｑｎ５（図１０）は、オフ状態であり、データ記憶部ＤＳ１のキャパシタＣ１の一端の電位は、Ｖｄｄ（“Ｈ”）に維持される。
【０５４４】
一方、ビット線ＢＬｅｋの電位が０．８Ｖ以下である場合（メモリセルの閾値電圧がＶｃｇｖｘｘよりも低い場合）には、ＮチャネルＭＯＳトランジスタ（クランプトランジスタ）Ｑｎ５（図１０）は、オン状態であり、データ記憶部ＤＳ１のキャパシタＣ１の一端の電荷は、ビット線ＢＬｅｋに放電され、その電位は、Ｖｄｄよりも低い値（“Ｌ”）に低下する（　ＱＰＷＣＬＫ　４−５　）。
【０５４５】
その結果、データ記憶部ＤＳ１（キャパシタＣ１の一端）には、ベリファイリード電位Ｖｃｇｖｘｘによるリードデータが記憶される。即ち、メモリセルの閾値電圧がＶｃｇｖｘｘよりも低い場合には、“Ｌ”、つまり、“０”−データが、データ記憶部ＤＳ１に記憶され、メモリセルの閾値電圧がＶｃｇｖｘｘよりも高い場合には、“Ｈ”、つまり、“１”−データが、データ記憶部ＤＳ１に記憶される。
【０５４６】
この後、図４１に示すＥＸＣＬＫルーティンが実行される　（ＱＰＷＣＬＫ５−Ｅ）。図４１のＥＸＣＬＫルーティンについては、既に、説明したので、ここでは、その説明については、省略する。
【０５４７】
なお、ベリファイ動作は、選択されたワード線ＷＬ２−ｉに接続される４２５６個のメモリセルに対して同時に行われる。
【０５４８】
４．　その他
本実施の形態では、多値ＮＡＮＤセル型フラッシュメモリを例として説明したが、本発明は、当然に、他のタイプの多値メモリに適用が可能である。例えば、メモリセルアレイとしては、ＮＯＲ型、ＡＮＤ型（Ａ．Ｎｏｚｏｅ　：　ＩＳＳＣＣ，　Ｄｉｇｅｓｔ　ｏｆ　Ｔｅｃｈｎｉｃｈａｌ　Ｐａｐｅｒｓ，１９９５）、ＤＩＮＯＲ型（Ｓ．Ｋｏｂａｙａｓｈｉ　：　ＩＳＳＣＣ，　Ｄｉｇｅｓｔ　ｏｆ　Ｔｅｃｈｎｉｃｈａｌ　Ｐａｐｅｒｓ，１９９５）、Ｖｉｒｔｕａｌ　Ｇｒｏｕｎｄ　Ａｒｒａｙ型（Ｌｅｅ，　ｅｔ　ａｌ．　：　Ｓｙｍｐｏｓｉｕｍ　ｏｎ　ＶＬＳＩ　Ｃｉｒｃｕｉｔｓ，　Ｄｉｇｅｓｔ　ｏｆ　Ｔｅｃｈｎｉｃｈａｌ　Ｐａｐｅｒｓ，１９９４）、３−ｔｒ　ＮＡＮＤ型、４−ｔｒ　ＮＡＮＤ型などであってもよい。
【０５４９】
また、本発明は、フラッシュメモリ（Ｆｌａｓｈ　ｍｅｍｏｒｙ）に限られず、例えば、マスクＲＯＭ、ＥＰＲＯＭなどの不揮発性半導体メモリにも適用できる。
【０５５０】
【発明の効果】
以上、説明したように、本発明によれば、メモリセルに記憶するデータを多値化しても、チップ面積が極端に増加することがなく、また、メモリセルの閾値電圧を高精度に制御できる２度書き法を適用できる多値フラッシュメモリのデータ回路を提供できる。
【図面の簡単な説明】
【図１】本発明の実施の形態に関わる不揮発性半導体メモリを示すブロック図。
【図２】本発明に関わる半導体メモリのメモリセルアレイの構成例を示す図。
【図３】本発明に関わる半導体メモリのメモリセルアレイの構成例を示す図。
【図４】本発明に関わる半導体メモリのデバイス構造の例を示す断面図。
【図５】本発明に関わる半導体メモリのデバイス構造の例を示す断面図。
【図６】本発明に関わる半導体メモリのデバイス構造の例を示す断面図。
【図７】本発明に関わる半導体メモリのデバイス構造の例を示す断面図。
【図８】本発明に関わる半導体メモリの一括検知回路の例を示す回路図。
【図９】本発明に関わる半導体メモリのデータ回路の構成例を示す図。
【図１０】本発明に関わる半導体メモリのデータ回路の例を示す回路図。
【図１１】クロック同期式インバータの構成例を示す図。
【図１２】本発明に関わる半導体メモリのワード線制御回路の構成例を示す図。
【図１３】図１２のＲＡＤＤ１の回路例を示す図。
【図１４】図１２のＲＭＡＩＮ１の回路例を示す図。
【図１５】図１２のＲＡＤＤ２の回路例を示す図。
【図１６】図１２のＲＭＡＩＮ２の回路例を示す図。
【図１７】メモリセルのデータと閾値電圧分布との関係を示す図。
【図１８】論理下位ページデータのプログラム時の閾値電圧の変化の様子を示す図。
【図１９】論理上位ページデータのプログラム時の閾値電圧の変化の様子を示す図。
【図２０】リード動作のアルゴリズムを示す図。
【図２１】リード動作の動作波形を示す図。
【図２２】図２１の動作中の　ＥＸＣＬＫ　ルーティンの動作波形を示す図。
【図２３】図２１の動作中の　ＥＸＣＬＫ　ルーティンの動作波形を示す図。
【図２４】図２１の動作中の　ＥＸＣＬＫ　ルーティンの動作波形を示す図。
【図２５】論理下位ページデータの読み出し時のデータの流れを示す図。
【図２６】論理上位ページデータの読み出し時のデータの流れを示す図。
【図２７】Ｐａｓｓ　Ｗｒｉｔｅ　によるプログラム動作のアルゴリズムを示す図。
【図２８】Ｐａｓｓ　Ｗｒｉｔｅ　によるプログラム動作のアルゴリズムを示す図。
【図２９】Ｐａｓｓ　Ｗｒｉｔｅ　によるプログラム動作のアルゴリズムを示す図。
【図３０】ＱＰＷによるプログラム動作のアルゴリズムを示す図。
【図３１】プログラム動作の一ステップにおける動作波形を示す図。
【図３２】図３１におけるステップ時のデータの流れを示す図。
【図３３】Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ　動作の動作波形を示す図。
【図３４】図３３の動作中の　ＥＸＣＬＫ　ルーティンの動作波形を示す図。
【図３５】Ｉｎｔｅｒｎａｌ　Ｄａｔａ　Ｌｏａｄ　動作時のデータの流れを示す図。
【図３６】プログラム動作の一ステップにおける動作波形を示す図。
【図３７】図３６におけるステップ時のデータの流れを示す図。
【図３８】ライト動作の動作波形を示す図。
【図３９】ライト動作時のデータの流れを示す図。
【図４０】ベリファイリード動作の動作波形を示す図。
【図４１】図４０の動作中の　ＥＸＣＬＫ　ルーティンの動作波形を示す図。
【図４２】ベリファイリード動作時のデータの流れを示す図。
【図４３】ベリファイリード動作時のデータの流れを示す図。
【図４４】ベリファイリード動作時のデータの流れを示す図。
【図４５】ベリファイリード動作時のデータの流れを示す図。
【符号の説明】
１　　　　　　　　　　：メモリセルアレイ、
２　　　　　　　　　　：データ回路、
３　　　　　　　　　　：ワード線制御回路、
４　　　　　　　　　　：カラムデコーダ、
５　　　　　　　　　　：アドレスバッファ、
６　　　　　　　　　　：Ｉ／Ｏセンスアンプ、
７　　　　　　　　　　：データ入出力バッファ、
８　　　　　　　　　　：ウェル／ソース線電位制御回路、
９Ａ　　　　　　　　　：電位生成回路、
９Ｂ　　　　　　　　　：切替回路、
１０　　　　　　　　　　：一括検知回路、
１１　　　　　　　　　　：メモリチップ、
１１−１　　　　　　　　：ｐ型シリコン基板、
１１−２，１１−４　　　：ｎ型ウェル領域、
１１−３，１１−５　　　：ｐ型ウェル領域、
１２　　　　　　　　　　：コマンドインターフェイス回路、
１３　　　　　　　　　　：ステートマシーン、
１４　　　　　　　　　　：ドレイン拡散層、
１５　　　　　　　　　　：ソース拡散層、
１６　　　　　　　　　　：ｎ型拡散層、
１７　　　　　　　　　　：ｐ型拡散層、
１８　　　　　　　　　　：電位設定線、
１９　　　　　　　　　　：素子分離層、
２０，２１　　　　　　　：絶縁層、
ＤＳ１，ＤＳ２，ＤＳ３，ＤＳ４　：データ記憶部、
Ｑｎ１，・・・Ｑｎ１９　：ｎチャネルＭＯＳトランジスタ、
Ｑｐ１，Ｑｐ２　　　　　：ｐチャネルＭＯＳトランジスタ、
Ｍ１，Ｍ２，Ｍ３，Ｍ４　：メモリセル、
Ｓ１，Ｓ２　　　　　　　：セレクトゲートトランジスタ、
Ｕ　　　　　　　　　　　：ＮＡＮＤセルユニット。
【図１】
2004118940.tif 000003
【図２】
2004118940.tif 000004
【図３】
2004118940.tif 000005
【図４】
2004118940.tif 000006
【図５】
2004118940.tif 000007
【図６】
2004118940.tif 000008
【図７】
2004118940.tif 000009
【図８】
2004118940.tif 000010
【図９】
2004118940.tif 000011
【図１０】
2004118940.tif 000012
【図１１】
2004118940.tif 000013
【図１２】
2004118940.tif 000014
【図１３】
2004118940.tif 000015
【図１４】
2004118940.tif 000016
【図１５】
2004118940.tif 000017
【図１６】
2004118940.tif 000018
【図１７】
2004118940.tif 000019
【図１８】
2004118940.tif 000020
【図１９】
2004118940.tif 000021
【図２０】
2004118940.tif 000022
【図２１】
2004118940.tif 000023
【図２２】
2004118940.tif 000024
【図２３】
2004118940.tif 000025
【図２４】
2004118940.tif 000026
【図２５】
2004118940.tif 000027
【図２６】
2004118940.tif 000028
【図２７】
2004118940.tif 000029
【図２８】
2004118940.tif 000030
【図２９】
2004118940.tif 000031
【図３０】
2004118940.tif 000032
【図３１】
2004118940.tif 000033
【図３２】
2004118940.tif 000034
【図３３】
2004118940.tif 000035
【図３４】
2004118940.tif 000036
【図３５】
2004118940.tif 000037
【図３６】
2004118940.tif 000038
【図３７】
2004118940.tif 000039
【図３８】
2004118940.tif 000040
【図３９】
2004118940.tif 000041
【図４０】
2004118940.tif 000042
【図４１】
2004118940.tif 000043
【図４２】
2004118940.tif 000044
【図４３】
2004118940.tif 000045
【図４４】
2004118940.tif 000046
【図４５】
2004118940.tif 000047