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