(57)【要約】【課題】データの信頼性を向上する。【解決手段】本実施形態のメモリデバイスは、複数のメモリセルと、メモリセルに対するデータの書き込みを制御する制御回路と、を含む。データの書き込み時において、第１のプログラム電圧ＶＰＧＭが、ワード線ＷＬｋに印加され、第１のベリファイ結果を得るために、第１のベリファイ電圧Ｖｖｆｙが、ワード線ＷＬｋに印加され、第２のプログラム電圧ＶＰＧＭが、ワード線ＷＬｋに印加され、第２のベリファイ結果を得るために、第２のベリファイ電圧Ｖｖｆｙが、ワード線ＷＬｋに印加される。複数のメモリセルＭＣのうち第１のベリファイ結果がパスである第１のメモリセルは、第１のプログラム電圧の印加時にプログラム禁止状態（inhibit）に設定され、且つ第２のベリファイ結果の検知対象とされる。【選択図】図９
2018041518.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルと、
前記複数のメモリセルに接続された第１のワード線と
を具備し、
データの書き込み時において、
第１のプログラム電圧が、前記第１のワード線に印加され、
第１のベリファイ結果を得るために、第１のベリファイ電圧が、前記第１のワード線に印加され、
第２のプログラム電圧が、前記第１のワード線に印加され、
第２のベリファイ結果を得るために、第２のベリファイ電圧が、前記第１のワード線に印加され、
前記複数のメモリセルのうち前記第１のベリファイ結果がパスである第１のメモリセルは、前記第２のプログラム電圧の印加時にプログラム禁止状態に設定され、且つ前記第２のベリファイ結果の検知対象とされる
メモリデバイス。
【請求項２】
前記第１のメモリセルにおける前記第２のベリファイ結果がフェイルである場合、第３のプログラム電圧が前記第１のワード線に印加され、前記第１のメモリセルに対して、前記データがプログラムされる、
請求項１に記載のメモリデバイス。
【請求項３】
前記第１のメモリセルに接続された第１のビット線を、さらに具備し、
前記第１のプログラム電圧が印加されている時、前記第１のビット線に第１の電圧が印加され、
前記第２のプログラム電圧が印加されている時、前記第１のビット線に前記第１の電圧より高い第２の電圧が印加され、
前記第３のプログラム電圧が印加されている時、前記第１のビット線に前記第１の電圧より高く前記第２の電圧より低い第３の電圧が印加される、
請求項２に記載のメモリデバイス。
【請求項４】
前記第３のプログラム電圧が印加された後、
第３のベリファイ結果を得るために、第３のベリファイ電圧が、前記第１のワード線に印加され、
前記第２のベリファイ結果がフェイルである前記第１のメモリセルが、前記第３のベリファイ結果においてパスしているか否か検知される、
請求項３に記載のメモリデバイス。
【請求項５】
第２のワード線に接続された複数のメモリセルを、さらに具備し、
前記データの書き込み時において、
前記第１のプログラム電圧が前記第１のワード線に印加された後、且つ、前記第１のベリファイ電圧が、前記第１のワード線に印加される前において、
第４のプログラム電圧が、前記第２のワード線に印加される、
請求項１乃至４のうちいずれか１項に記載のメモリデバイス。
【請求項６】
前記第１のベリファイ結果は、前記第１のプログラム電圧を用いたプログラム動作による前記メモリセルの閾値に基づき、
前記第２のベリファイ結果は、前記第１のプログラム電圧を用いたプログラム動作及び前記第２のプログラム電圧を用いたプログラム動作による前記メモリセルの閾値に基づく、請求項１乃至５のうちいずれか１項に記載のメモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、メモリデバイスに関する。
【背景技術】
【０００２】
フラッシュメモリのようなメモリデバイスは、様々な電子機器に搭載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２６６１４３号公報
【特許文献２】特開２０１１−７０７１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
メモリデバイス内のデータの信頼性を向上する。
【課題を解決するための手段】
【０００５】
本実施形態のメモリデバイスは、複数のメモリセルと、前記複数のメモリセルに接続された第１のワード線とを含み、データの書き込み時において、第１のプログラム電圧が、前記第１のワード線に印加され、第１のベリファイ結果を得るために、第１のベリファイ電圧が、前記第１のワード線に印加され、第２のプログラム電圧が、前記第１のワード線に印加され、第２のベリファイ結果を得るために、第２のベリファイ電圧が、が、前記第１のワード線に印加され、前記複数のメモリセルのうち前記第１のベリファイ結果がパスである第１のメモリセルは、前記第２のプログラム電圧の印加時にプログラム禁止状態に設定され、且つ前記第２のベリファイ結果の検知対象とされる。
【図面の簡単な説明】
【０００６】
【図１】メモリシステムの全体構成を示すブロック図。
【図２】フラッシュメモリの内部構成の一例を示すブロック図。
【図３】メモリセルアレイの内部構成の一例を示す等価回路図。
【図４】メモリセルアレイの構造の一例を示す模式的断面図。
【図５】メモリセルアレイの構造の一例を示す模式的断面図。
【図６】メモリセルの閾値電圧とデータとの関係を説明するための図。
【図７】センスアンプ回路の構成例を示す等価回路図。
【図８】第１の実施形態のメモリデバイスの動作例を示すフローチャート。
【図９】第１の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図１０】第１の実施形態のメモリデバイスの動作例の電圧波形図。
【図１１】第１の実施形態のメモリデバイスの動作例を示すフローチャート。
【図１２】第１の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図１３】第１の実施形態のメモリデバイスの動作例を示すフローチャート。
【図１４】第１の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図１５】第１の実施形態のメモリデバイスの動作例を示すフローチャート。
【図１６】第１の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図１７】第１の実施形態のメモリデバイスの動作例を示すフローチャート。
【図１８】第１の実施形態のメモリデバイスの動作例を示すフローチャート。
【図１９】第１の実施形態のメモリデバイスの動作例の電圧波形図。
【図２０】第１の実施形態のメモリデバイスの動作例を示すフローチャート。
【図２１】第１の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図２２】第１の実施形態のメモリデバイスの動作例を示すフローチャート。
【図２３】第１の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図２４】第２の実施形態のメモリデバイスの動作例を示すフローチャート。
【図２５】第２の実施形態のメモリデバイスの動作例を示すフローチャート。
【図２６】第２の実施形態のメモリデバイスの動作例を示すフローチャート。
【図２７】第２の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図２８】第２の実施形態のメモリデバイスの動作例を示すフローチャート。
【図２９】第２の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図３０】第２の実施形態のメモリデバイスの動作例の一例を示すフローチャート。
【図３１】第２の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図３２】第２の実施形態のメモリデバイスの動作例を示すフローチャート。
【図３３】第２の実施形態のメモリデバイスの動作例を示すフローチャート。
【図３４】第３の実施形態のメモリデバイスの動作例を示すフローチャート。
【図３５】第３の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図３６】第３の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図３７】第３の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図３８】第３の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図３９】第３の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図４０】第３の実施形態のメモリデバイスの動作例を示すタイミングチャート。
【図４１】実施形態のメモリデバイスの変形例を示すフローチャート。
【図４２】実施形態のメモリデバイスの変形例を示すタイミングチャート。
【図４３】実施形態のメモリデバイスの変形例を示すフローチャート。
【図４４】実施形態のメモリデバイスの変形例を示す等価回路図。
【発明を実施するための形態】
【０００７】
以下、図面を参照しながら、本実施形態について詳細に説明する。以下の説明において、同一の機能及び構成を有する要素については、同一符号を付す。
【０００８】
［実施形態］  
（１）  第１の実施形態  
図１乃至図２３を参照して、第１の実施形態に係るメモリデバイスを説明する。
【０００９】
（１ａ）  構成  
図１乃至図７を用いて、実施形態のメモリデバイスの構成例を説明する。
【００１０】
図１は、本実施形態のメモリデバイスを含むメモリシステムを示す図である。
【００１１】
図１に示されるように、本実施形態のメモリデバイスを含むメモリシステム９は、ストレージデバイス５００、及び、ホストデバイス６００を含む。
【００１２】
ホストデバイス６００は、例えば、コネクタ、ケーブル、無線通信、又はインターネットなどによって、ストレージデバイス５００に結合される。ホストデバイス６００は、データの書き込み、データの読み出し、及びデータの消去を、ストレージデバイス５００に要求する。
【００１３】
ストレージデバイス５００は、メモリコントローラ５と、メモリデバイス（半導体メモリ）１と、を含む。
【００１４】
メモリコントローラ５は、ホストデバイス６００の要求に応じた動作を、メモリデバイス１に実行させる。  
メモリコントローラ５は、例えば、プロセッサ（ＣＰＵ）、内臓メモリ（例えば、ＤＲＡＭ）、バッファメモリ（例えば、ＳＲＡＭ）及びＥＣＣ回路などを含む。プロセッサは、メモリコントローラ５全体の動作を制御する。内蔵メモリは、プログラム（ソフトウェア／ファームウェア）及びストレージデバイス／メモリデバイスの管理情報（管理テーブル）を、一時的に保持する。バッファメモリは、メモリデバイス１とホストデバイス６００との間で送受信されるデータを一時的に保持する。ＥＣＣ回路は、メモリデバイス１から読み出されたデータ内の誤りを検出し、検出された誤りを訂正する。
【００１５】
メモリデバイス１は、データを記憶する。メモリデバイス１は、メモリコントローラ５からの命令（ホストデバイス６００の要求）に基づいて、データの書き込み、データの読み出し及びデータの消去を実行する。
【００１６】
メモリデバイス１は、例えば、ＮＡＮＤ型フラッシュメモリである。フラッシュメモリ１を含むストレージデバイス５００（又は、メモリシステム９）は、例えば、メモリカード（例えば、ＳＤＴＭカード、ｅＭＭＣＴＭ）、ＵＳＢメモリ、又は、Solid State Drive（ＳＳＤ）などである。
【００１７】
ＮＡＮＤ型フラッシュメモリ１とメモリコントローラ５との間において、各種の信号が、送受信される。例えば、フラッシュメモリ１とメモリコントローラ５との間におけるＮＡＮＤインターフェイス規格に基づいた制御信号として、チップイネーブル信号ＣＥｎ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号ＷＥｎ、リードイネーブル信号ＲＥｎ及びライトプロテクト信号ＷＰｎなどが、使用される。
【００１８】
信号ＣＥｎは、フラッシュメモリ１をイネーブルにするための信号である。信号ＣＬＥ及び信号ＡＬＥのそれぞれは、Ｉ／Ｏ線ＩＯ（ＩＯ１〜ＩＯ８）上の信号がコマンド及びアドレス信号であることをに通知する信号である。
【００１９】
信号ＷＥｎ及び信号ＲＥｎのそれぞれは、例えば、８本のＩ／Ｏ線ＩＯを介した信号の入力及び出力を、指示する信号である。信号ＷＰｎは、例えば、電源のオン及びオフ時に、フラッシュメモリ１を保護状態に設定するための信号である。
【００２０】
レディ／ビジー信号ＲＢｎは、フラッシュメモリ１の動作状態に基づいて生成され、メモリコントローラ５に送信される。信号ＲＢｎは、フラッシュメモリ１がレディ状態（メモリコントローラ５からの命令を受け付ける状態）であるか、ビジー状態（メモリコントローラ５からの命令を受け付けない状態）であるかを、メモリコントローラ５に通知する信号である。例えば、信号ＲＢｎは、フラッシュメモリ１がデータの読み出し等の動作中には “Ｌ”レベル（ビジー状態）とされ、これらの動作が完了すると“Ｈ”レベル（レディ状態）とされる。
【００２１】
図２は、本実施形態のメモリデバイス（例えば、ＮＡＮＤ型フラッシュメモリ）の内部構成を説明するためのブロック図である。
【００２２】
図２に示されるように、ＮＡＮＤ型フラッシュメモリ１は、メモリセルアレイ１１、ロウ制御回路１２、センスアンプ回路１３、データ保持回路１４、ソース線ドライバ１５、ウェルドライバ１６、入出力回路１７、電圧生成回路１８、シーケンサ１９などを含む。
【００２３】
メモリセルアレイ１１は、複数のブロックＢＫ（ＢＫ０，ＢＫ１，ＢＫ２，・・・）を含む。各ブロックＢＫは、複数のＮＡＮＤストリング（メモリセルストリング）１１１を含む。ＮＡＮＤストリング１１１は、複数のメモリセルを含む。メモリセルアレイ１１の内部構成は、後述される。
【００２４】
ロウ制御回路１２は、メモリセルアレイ１１のロウ（例えば、ワード線）を制御する。
【００２５】
センスアンプ回路１３は、データの読み出し時に、メモリセルアレイ１１内のビット線に出力された信号（データ）を、センス及び増幅する。例えば、センスアンプ回路１３は、ビット線（又はビット線に接続されたある配線）における電流の発生、又は、ビット線の電位の変動を、メモリセルＭＣからの信号として、センスする。これによって、センスアンプ回路１３は、メモリセルＭＣに保持されたデータを読み出す。また、センスアンプ回路１３は、データの書き込み時に、書き込むべきデータに応じて、ビット線の電位を制御する。
【００２６】
データ保持回路（例えば、ページバッファ回路）１４は、メモリセルアレイ１１から出力されたデータ、または、メモリセルアレイ１１に入力されるデータ（メモリコントローラ５からのデータ）を一時的に保持する。
【００２７】
ソース線ドライバ１５は、メモリセルアレイ１１内のソース線の電位を、制御する。ウェルドライバ１６は、メモリセルアレイ１１内のウェル領域の電位を制御する。
【００２８】
入出力回路１７は、メモリコントローラ５からの上述の各種の制御信号及びＩ／Ｏ線ＩＯ１〜ＩＯ８上の信号のインターフェイス回路として機能する。電圧生成回路１８は、メモリセルアレイ１１の動作に用いられる各種の電圧を生成する。
【００２９】
シーケンサ１９は、フラッシュメモリ１全体の動作を制御する。シーケンサ１９は、メモリコントローラ５とフラッシュメモリ１との間で送受信される制御信号及びコマンドに基づいて、フラッシュメモリ１内部の動作を制御する。
【００３０】
＜メモリセルアレイの構成＞  
図３乃至図５を参照して、本実施形態のフラッシュメモリにおけるメモリセルアレイの内部構成の一例について、説明する。  
図３は、メモリセルアレイ１１における１つのブロックの等価回路図である。ＮＡＮＤ型フラッシュメモリのメモリセルアレイ１１において、ブロックＢＫはデータの消去単位である。但し、メモリセルアレイ１１に対する消去動作は、ブロックより小さい単位（記憶領域）に対して、実行されてもよい。フラッシュメモリの消去動作に関して、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号、“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載された構成が、参照され、本実施形態に援用される。
【００３１】
本実施形態のフラッシュメモリ１において、例えば、メモリセルアレイ１１は、３次元構造を有している。
【００３２】
図３に示される例のように、３次元構造のメモリセルアレイ１１において、１つのブロックＢＬＫは、複数（例えば、４つ）のストリングユニットＳＵ（ＳＵ０，ＳＵ１，ＳＵ２・・・）を含む。複数のストリングユニットＳＵは、複数のＮＡＮＤストリング（メモリセルストリング）１１１を含む。
【００３３】
ＮＡＮＤストリング１１１は、複数のメモリセル（メモリ部又はメモリ素子ともよばれる）ＭＣと、複数のセレクトトランジスタＳＴ１，ＳＴ２とを含む。
【００３４】
メモリセルＭＣ（ＭＣ０，ＭＣ１，・・・，ＭＣ（ｍ−２），ＭＣ（ｍ−１））は、制御ゲートと電荷蓄積層とを含む。ＮＡＮＤストリング１１１内において、複数のメモリセルＭＣは、２つのセレクトトランジスタＳＴ１，ＳＴ２間に、直列接続される。直列接続された複数のメモリセルＭＣのうち、ドレイン側のメモリセルＭＣの一端（ソース／ドレインの一方）は、ドレイン側セレクトトランジスタＳＴ１の一端に接続されている。直列接続された複数のメモリセルＭＣのうち、ソース側のメモリセルＭＣの一端は、ソース側セレクトトランジスタＳＴ２の一端に接続されている。
【００３５】
複数のワード線ＷＬ（ＷＬ０，ＷＬ１，・・・，ＷＬ（ｍ−２），ＷＬ（ｍ−１））は、対応するメモリセルＭＣのゲートにそれぞれ接続されている。“ｍ”は、２以上の自然数である。例えば、１つのワード線ＷＬは、複数のストリングユニットＳＵ内のメモリセルＭＣに共通に接続される。
【００３６】
データの書き込み及びデータの読み出しは、いずれか１つのストリングユニットＳＵにおけるいずれか１つのワード線ＷＬに接続されたメモリセルＭＣに対して、一括して行われる。データの書き込み及びデータの読み出しの単位は、ページとよばれる。
【００３７】
複数のドレイン側セレクトゲート線ＳＧＤ（ＳＧＤ０〜ＳＧＤ３）は、対応するストリングユニットＳＵのドレイン側セレクトトランジスタＳＴ１のゲートに、それぞれ接続されている。複数のソース側セレクトゲート線ＳＧＳは、各ストリングユニットＳＵのソース側セレクトトランジスタＳＴ２のゲートに、共通に接続されている。
【００３８】
ソース線ＳＬは、ソース側セレクトトランジスタＳＴ２の他端（ソース／ドレインの他方）に接続されている。ドレイン側セレクトトランジスタＳＴ１の他端は、複数のビット線のうちいずれか１つのビット線ＢＬ（ＢＬ０，ＢＬ１，・・・，ＢＬ（ｎ−１））に接続される。尚、“ｎ”は、１以上の自然数である。
【００３９】
メモリセルアレイ１１内のブロックＢＬＫの数、１つのブロックＢＬＫ内のストリングユニットＳＵの数、ＮＡＮＤストリング１１１内のメモリセルＭＣの数は、任意である。
【００４０】
図４及び図５は、３次元構造のメモリセルアレイの断面構造の一例を示す模式的断面図である。
【００４１】
図４は、メモリセルアレイの模式的な断面構造を示している。図４において、１つのブロックが抽出され、図示されている。
【００４２】
ブロックＢＫ（メモリセルアレイ）内において、ＮＡＮＤストリング１１１は、半導体領域（例えば、Ｓｉ基板）９００内のｐ型ウェル領域２０上に、設けられている。
【００４３】
ｐ型ウェル領域２０は、ウェルコンタクト３８を介して、ウェルドライバ１６に接続される。例えば、４つのストリングユニットＳＵが、１つのｐ型ウェル領域２０上に、設けられている。例えば、ブロックＢＫ内のストリングユニットＳＵは、ウェルコンタクト３８に囲まれた領域内に、設けられている。ウェルコンタクト３８は、ｐ型ウェル領域２０内のｐ＋型拡散層３４上に設けられている。
【００４４】
ソース線コンタクト３６は、ストリングユニットＳＵ間において、ｐ型ウェル領域２０内のｎ＋型拡散層３３上に設けられている。ソース線コンタクト３６は、ソース線ＳＬに接続される。
【００４５】
ＮＡＮＤストリング１１１は、ウェル領域２０上に設けられている。ＮＡＮＤストリング１１１は、半導体ピラー３１を含む。半導体ピラー３１は、ｐ型ウェル領域２０に接続されている。半導体ピラー３１は、ｐ型ウェル領域２０（基板９００）の表面に対してほぼ垂直方向（Ｄ３方向）に延在している。半導体ピラー３１は、Ｄ１方向及びＤ２方向に沿って、ｐ型ウェル領域２０上にアレイ状に配列されている。半導体ピラー３１は、ＮＡＮＤストリング１１１の電流経路として機能する。半導体ピラー３１は、メモリセルＭＣ及びセレクトトランジスタＳＴ１，ＳＴ２の動作時に、メモリセルＭＣ及びトランジスタＳＴのチャネルが形成される領域である。
【００４６】
複数の導電層２３，２５，２７が、ｐ型ウェル領域２０上に、積層されている。複数の導電層２３，２５，２７間に、層間絶縁膜（図示せず）が、設けられている。各導電層２３，２５，２７は、メモリ膜を介して、半導体ピラー３１の側面上に設けられている。
【００４７】
図５は、メモリセルアレイ内の素子の構成を説明するための模式的な断面図である。図５において、１つのストリングユニットＳＵが抽出され、図示されている。図５において、紙面に対して垂直方向において奥行き側（又は手前側）に位置する部材は、点線で示されている。
【００４８】
セレクトトランジスタＳＴ１は、半導体ピラー３１と導電層２７とを含む領域内に配置されている。積層された複数（本例では、４つ）の導電層２７は、セレクトトランジスタＳＴ１のゲート電極となる。積層された導電層２７は、同一のドレイン側セレクトゲート線ＳＧＤに接続されている。例えば、Ｄ１方向に並ぶＮＡＮＤストリング１１１間において、導電層２７は、互いに接続されている。尚、ストリングユニットＳＵの内部構成及びＮＡＮＤストリング１１１とビット線との間の接続関係に応じて、導電層２７は、Ｄ１方向に並ぶＮＡＮＤストリング１１１間において、互いに分離されもよい。
【００４９】
セレクトトランジスタＳＴ２は、半導体ピラー３１と導電層２３とを含む領域内に配置されている。積層された複数（本例では、４つ）の導電層２３は、セレクトトランジスタＳＴ２のゲート電極となる。積層された導電層２３は、ソース側セレクトゲート線ＳＧＳに接続される。例えば、同一のストリングユニットＳＵ内の導電層２３は、互いに共通に接続されている。
【００５０】
メモリセルＭＣは、半導体ピラー３１と導電層２５とを含む領域内に配置されている。導電層２５は、メモリセルＭＣの制御ゲート電極となる。導電層２５のそれぞれは、ワード線ＷＬに接続される。
【００５１】
メモリ膜２９が、半導体ピラー３１の側面と導電層２３，３５，２７との間において、設けられている。メモリ膜２９において、ゲート絶縁膜２９１、電荷蓄積層（絶縁膜）２９２、及びブロック絶縁膜２９３が、半導体ピラー３１側から順次設けられている。メモリ膜２９は、Ｄ３方向に隣り合う複数のメモリセル間で、連続している。
【００５２】
半導体ピラー３１の上端の上方に、導電層３２が設けられている。導電層３２は、ビット線ＢＬとして機能する。ビット線ＢＬは、プラグＢＣを介して、半導体ピラー３１に電気的に接続されている。導電層３２は、Ｄ１方向に延在する。例えば、Ｄ１方向に隣り合う２つのＮＡＮＤストリング１１１は、互いに異なるビット線ＢＬに接続されている。この場合、ビット線コンタクトＢＣは、Ｄ１−Ｄ２平面内においてＤ１方向に平行な同一直線上に配列されない。Ｄ１方向に並ぶ複数のＮＡＮＤストリング１１１において、ビット線コンタクトＢＣの位置は、Ｄ２方向に交互にずれている。斜め方向に並ぶ複数のＮＡＮＤストリング（実線で示されたＮＡＮＤストリングと破線で示されたＮＡＮＤストリング）１１１は、互いに異なるビット線ＢＬに接続されている。
【００５３】
以上のように、各ＮＡＮＤストリング１１１において、セレクトトランジスタＳＴ２、複数のメモリセルＭＣ、及びセレクトトランジスタＳＴ１が、ウェル領域２０上に順次積層されている。尚、本実施形態のフラッシュメモリにおいて、メモリセルアレイの構造は、複数のメモリセルが半導体基板上に２次元（Ｄ１−Ｄ２平面）に配列された２次元構造（平面構造）でもよい。
【００５４】
メモリセルＭＣのメモリ膜２９（電荷蓄積層２９２）内に電荷が注入されることによって、メモリセルＭＣの閾値電圧が変化する。メモリセルＭＣの閾値電圧の変化を利用して、データがメモリセルに書き込まれる。例えば、メモリセルＭＣは、１ビット以上のデータを記憶可能である。
【００５５】
＜メモリセルの閾値電圧とデータとの関係＞  
図６は、メモリセルの閾値電圧と記憶可能なデータとの関係を説明するための図である。
【００５６】
図６に示されるように、メモリセルＭＣが、２ビットのデータを記憶する場合、メモリセルアレイ（ブロック，ページ）内における複数のメモリセルＭＣの閾値電圧は、２ビット（４値）のデータに対応するように、４つの閾値分布（ステート／レベル）ＴＤ−Ｅｒ，ＴＤ−Ａ，ＴＤ−Ｂ，ＴＤ−Ｃを取り得る。
【００５７】
データの記憶時において、メモリセルＭＣの閾値電圧は、Ａステート、Ｂステート及びＣステートの閾値分布ＴＤ−Ａ，ＴＤ−Ｂ，ＴＤ−Ｃのうち、いずれか１つに属する。Ｅｒステートは、消去状態に対応する。Ａステート、Ｂステート及びＣステートは、データの書き込み状態に対応する。これによって、メモリセルＭＣは、２ビットのデータを記憶する。
【００５８】
閾値分布間には、判定レベル（判定電圧）が設定されている。これによって、メモリセルＭＣからのデータの読み出し時において、メモリセルＭＣが記憶しているデータが判別される。例えばメモリセルが２ビットのデータを記憶する場合、データの読み出しのための判定レベル（以下では、読み出しレベルともよぶ）として、レベルＶＡ，ＶＢ，ＶＣが用いられる。
【００５９】
各閾値分布の下限の電圧値の近傍に、ベリファイのための判定レベル（以下では、ベリファイレベルともよぶ）が、設定されている。これによって、メモリセルＭＣに対するデータの書き込み時において、メモリセルＭＣが書き込まれるべきデータに応じた閾値分布に達したか否か判定される。ベリファイレベルとして、レベルＶＡＶ，ＶＢＶ，ＶＣＶが、閾値分布ＴＤ−Ａ，ＴＤ−Ｂ，ＴＤ−Ｃに対してそれぞれ設定されている。尚、ベリファイレベルとして、各レベルにおける読み出しレベルとベリファイレベルとの間に、レベルＶＡＬ，ＶＢＬ，ＶＣＬが設けられてもよい。以下では、説明の区別化のために、レベルＶＡＶ，ＶＢＶ，ＶＣＶは、ベリファイハイレベルとよばれ、レベルＶＡＬ，ＶＢＬ，ＶＣＬは、ベリファイローレベルとよばれる。
【００６０】
上記読み出し動作及びベリファイ動作では、メモリセルＭＣのゲート（ワード線）に判定レベルが印加され、これによりメモリセルＭＣがオンするか否か検知される。これによって、メモリセルの記憶しているデータ、或いは、データの書き込み中におけるメモリセルの閾値電圧の状態が、判別される。
【００６１】
読み出しパス電圧ＶＲＥＡＤは、複数の閾値分布のうち最も高い閾値分布の上限よりも高い電圧値を有する。読み出しパス電圧ＶＲＥＡＤが印加されたメモリセルＭＣは、記憶しているデータに関わらずオンする。
【００６２】
尚、メモリセルＭＣに書き込まれるデータは２ビットのデータに限らず、１ビットのデータが、１つのメモリセルＭＣに、書き込まれてもよい。また、１つのメモリセルＭＣに、３ビット以上のデータが書き込まれてもよい。
【００６３】
本実施形態において、３次元構造のメモリセルアレイの構造、動作及び製造方法は、例えば、“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号、“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載された構成が、参照され、援用される。
【００６４】
＜センスアンプ回路の内部構成例＞  
図７は、本実施形態のフラッシュメモリのセンスアンプ回路の内部構成の一例を示す等価回路図である。
【００６５】
上述のように、センスアンプ回路１３は、複数のセンスアンプユニット１３１を含む。  
図７に示されるように、１つのセンスアンプユニット１３１が、１つのビット線ＢＬに対応する。尚、フラッシュメモリの内部構成において、１つのセンスアンプユニット１３１が、２以上のビット線ＢＬに対応してもよい。
【００６６】
センスアンプユニット１３１は、制御部２００、処理部２０１及び複数のラッチ回路ＤＬ（ＤＬ１，ＤＬ２，ＤＬ３Ａ，ＤＬ３Ｂ）を含む。
【００６７】
制御部２００は、複数のｎ型トランジスタ（電界効果トランジスタ）Ｔｒ１，Ｔｒ２，Ｔｒ３，Ｔｒ４，Ｔｒ５，Ｔｒ６を含む。
【００６８】
トランジスタＴｒ１は、ビット線ＢＬ（ＮＡＮＤストリング１１１）の活性化を制御する。ビット線ＢＬの活性化の制御のために、制御信号ＢＬＳが、トランジスタＴｒ１のゲートに供給される。例えば、トランジスタＴｒ１は、比較的高い電圧をビット線ＢＬに転送するために、比較的高い絶縁耐性を有する。この結果として、トランジスタＴｒ１は、比較的高い閾値電圧を有する。
【００６９】
トランジスタＴｒ１の一端（ソース／ドレインの一方）は、ビット線ＢＬに接続されている。トランジスタＴｒ１の他端（ソース／ドレインの他方）は、トランジスタＴｒ２の一端に接続されている。
【００７０】
トランジスタＴｒ２は、ビット線ＢＬの電位を制御する。制御信号ＢＬＣが、トランジスタＴｒ２のゲートに供給される。トランジスタＴｒ２は、制御信号ＢＬＣに応じた電位に、ビット線ＢＬの電位をクランプする。  
トランジスタＴｒ２の他端は、ノード（配線又は端子）ＳＣＯＭに接続されている。
【００７１】
トランジスタＴｒ３，Ｔｒ４，Ｔｒ５，Ｔｒ６は、電源端子とノードＳＣＯＭとの間の電気的な接続を制御する。
【００７２】
制御信号ＢＶ１が、トランジスタＴｒ３のゲートに供給される。トランジスタＴｒ３の一端は、ノードＳＣＯＭに接続されている。トランジスタＴｒ３の他端は、電源端子に接続されている。電圧ＶＳＳが、電源端子を介して、トランジスタＴｒ３の他端に印加される。電圧ＶＳＳは、グランド電圧である。以下では、グランド電圧ＶＳＳが印加された電源端子のことを、グランド端子ＶＳＳとも表記する。
【００７３】
制御信号ＢＶ２が、トランジスタＴｒ４のゲートに供給される。トランジスタＴｒ４の一端は、ノードＳＣＯＭに接続されている。トランジスタＴｒ４の他端は、電源端子に接続されている。電圧Ｖｘが、電源端子を介して、トランジスタＴｒ４の他端に印加される。以下では、電圧Ｖｘが印加された電源端子のことを、電源端子Ｖｘとも表記する。電圧Ｖｘの電圧値は、例えば、１．８Ｖ以上、２．２Ｖ以下である。
【００７４】
制御信号ＢＶ３が、トランジスタＴｒ５のゲートに供給される。トランジスタＴｒ５の一端は、ノードＳＣＯＭに接続されている。トランジスタＴｒ５の他端は、電源端子に接続されている。電圧Ｖｚが、電源端子を介して、トランジスタＴｒ５の他端に印加される。電圧Ｖｚは、グランド電圧ＶＳＳより高く、電圧Ｖｘより低い。以下では、電圧Ｖｚが印加された電源端子のことを、電源端子Ｖｚとも表記する。電圧Ｖｚの電圧値は、例えば、０．３Ｖ以上、０．５Ｖ以下である。
【００７５】
制御信号ＢＶ４が、トランジスタＴｒ６のゲートに供給される。トランジスタＴｒ６の一端は、ノードＳＣＯＭに接続されている。トランジスタＴｒ６の他端は、電源端子に接続されている。電圧Ｖｂが、電源端子を介して、トランジスタＴｒ５の他端に印加される。電圧Ｖｂは、グランド電圧ＶＳＳより高く、電圧Ｖｘより低い。電圧Ｖｂは、電圧Ｖｚ以下である。但し、電圧Ｖｂは、電圧Ｖｚより高くともよい。以下では、電圧Ｖｘが印加された電源端子のことを、電源端子Ｖｂとも表記する。
【００７６】
メモリセルＭＣに対する動作／処理に応じて、制御信号ＢＶ１，ＢＶ２，ＢＶ３，ＢＶ４の信号に基づいて、トランジスタＴｒ３，Ｔｒ４，Ｔｒ５，Ｔｒ６のうちいずれか１つが活性化される。これによって、電圧Ｖｓｓ，Ｖｘ，Ｖｚ，Ｖｂのうちいずれか１つが、ビット線ＢＬに印加される。
【００７７】
処理部２０１は、トランジスタＴｒ１，Ｔｒ２及びノードＳＣＯＭを介して、ビット線ＢＬに接続されている。処理部２０１は、ラッチ回路ＤＬに接続されている。処理部２０１は、ビット線ＢＬにおける電流の発生又は電位の変動をセンスできる。処理部２０１は、センス結果をラッチ回路ＤＬに転送できる。処理部２０１は、ラッチ回路ＤＬ内のデータ（信号）をビット線ＢＬ（メモリセルＭＣ）に転送できる。
【００７８】
処理部２０１は、ラッチ回路ＤＬ内のデータ（信号）を用いて、論理和演算及び論理積演算などの各種の計算処理を実行できる。処理部２０１は、計算結果に基づいて、制御信号ＢＶ１，ＢＶ２，ＢＶ３，ＢＶ４の信号レベルを制御できる。この結果として、処理部２０１は、ビット線ＢＬの電位を制御できる。
【００７９】
センスアンプユニット１３１において、例えば４以上のラッチ回路ＤＬ（ＤＬ１，ＤＬ２，ＤＬ３Ａ，ＤＬ３Ｂ）が、バスＬＢＵＳを介して処理部２０１に接続されている。
【００８０】
上位データラッチ回路ＤＬ１は、例えばメモリセルＭＣが２ビットのデータを記憶可能である場合、２ビットのうち上位の１ビットを保持する。下位データラッチ回路ＤＬ２は、例えば、メモリセルＭＣが２ビットのデータを記憶可能である場合、２ビットのうち下位の１ビットを保持する。
【００８１】
複数のラッチ回路ＤＬ３Ａ，ＤＬ３Ｂは、例えば、ビット線の制御のための信号（情報）を一時的に保持する。例えば、ラッチ回路ＤＬ３Ａ，ＤＬ３Ｂは、データの書き込み時において、ベリファイ結果を保持する。ラッチ回路ＤＬ３Ａ，ＤＬ３Ｂは、読み出し動作時において、読み出しレベルにおけるメモリセルのオン／オフの判定結果、及び、処理部２０１による計算結果を保持する。
【００８２】
本実施形態のフラッシュメモリ１は、メモリセルＭＣにおける複数回のベリファイ動作の結果を互いに独立に保持することが可能なように、複数のラッチ回路ＤＬ３Ａ，ＤＬ３Ｂを含む。
【００８３】
例えば、本実施形態において、フラッシュメモリ１は、２つのラッチ回路ＤＬ３Ａ，ＤＬ３Ｂを含む。これによって、ある１つのメモリセルに関して、一方のラッチ回路ＤＬ３Ａが、ベリファイパスを示す信号の保持状態を継続した状態で、他方のラッチ回路ＤＬ３Ｂが、ベリファイパスの結果が得られた後に実行されるベリファイ動作の結果を、保持できる。尚、ベリファイ結果を保持可能なラッチ回路ＤＬ３Ａ，ＤＬ３Ｂの個数は、あるメモリセルの閾値電圧の状態に関するベリファイの回数（ベリファイパスの検知回数）に応じて、３個以上でもよい。
【００８４】
以下では、ベリファイ動作を少なくとも１回パスしたメモリセルのことを、パスセルとよぶ。ベリファイ動作をフェイルしたメモリセルのことを、フェイルセルとよぶ。
【００８５】
本実施形態において、フラッシュメモリ１は、データの書き込み時において、ベリファイにパスしたメモリセルに対して、閾値電圧のベリファイを再度実行する。
【００８６】
これによって、本実施形態のフラッシュメモリは、データの書き込み中においてベリファイパスしてからある期間の経過後におけるベリファイにパスしたメモリセルの閾値電圧の状態を検証できる。
【００８７】
この結果として、本実施形態のフラッシュメモリ１は、データの書き込み中において、ベリファイにパスしたメモリセルの閾値電圧が書き込むべきデータに応じた電圧値と異なる値に変化する不良を検知できる。例えば、本実施形態のフラッシュメモリは、一旦ベリファイパスしたメモリセルのうちで、書き込むべきデータに関して閾値電圧がベリファイレベルより小さい値に低下したメモリセルを検知する。
【００８８】
本実施形態のフラッシュメモリ１は、メモリセルの閾値電圧に起因した不良が検知された場合において、データの書き込み中に、検知された不良を含むメモリセルの閾値電圧を、書き込むべきデータに対応した値に戻す。
【００８９】
この結果として、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【００９０】
（１ｂ）  動作例  
図８乃至図２３を参照して、第１の実施形態のメモリデバイスの書き込み動作について説明する。
【００９１】
（１ｂ−１）  第１の例  
まず図８及び図９を参照して、書き込み動作の第１の例について説明する。図８は、本実施形態のフラッシュメモリの動作例を説明するためのフローチャートである。図９は、本実施形態のフラッシュメモリの動作例の書き込み動作時における各配線の電圧波形（横軸：時間、縦軸：電位）を模式的に示すタイミングチャートである。図８は、あるメモリセル及びビット線に着目したメモリセルに対する処理を示すフローチャートである。
【００９２】
図８に示すように、メモリコントローラ５は、ホストデバイスからの要求に基づいて、フラッシュメモリ１にデータの書き込みのための命令を発行する。メモリコントローラ５は、書き込みコマンド、データを書き込むべきアドレス（選択アドレス）及び書き込むべきデータを送信する。そしてフラッシュメモリ１は、メモリコントローラ５から書き込みコマンド、選択アドレス及びデータを受信する。フラッシュメモリ１は、受信した書き込みコマンドに基づいて、データの書き込みを開始する（ステップＳ０）。
【００９３】
図９に示されるように、フラッシュメモリ１におけるデータの書き込みは、１以上の書き込みループＬＰ（ＬＰ＜１＞，ＬＰ＜２＞，・・・，ＬＰ＜ｉ＞，・・・，ＬＰ＜ｉ＋３＞）を含む。“ｉ”は、１以上の自然数である。１つの書き込みループＬＰは、プログラム動作とベリファイ動作とを少なくとも含む。
【００９４】
シーケンサ１９は、１回目の書き込みループＬＰ＜１＞において、プログラム動作を実行する（ステップＳ１）。  
センスアンプ回路１３の各センスアンプユニット１３１において、ラッチ回路ＤＬは、メモリセルに書き込むべきデータを保持している。処理部２０１は、ラッチ回路ＤＬ内のデータに対して計算処理を実行する。計算結果に基づいて、ビット線ＢＬ（ＢＬｘ，ＢＬｙ，ＢＬｚ）に印加される電圧が、決定される。
【００９５】
プログラム動作時において、各センスアンプユニット１３１は、ラッチ回路ＤＬのデータの計算結果に基づいて、複数のビット線のうちデータを書き込むべきメモリセルＭＣに接続されたビット線ＢＬに、グランド電圧ＶＳＳを印加する。例えば、グランド電圧ＶＳＳは、Ｈレベルの制御信号ＢＶ１に基づいてトランジスタＴｒ３がオンされることによって、ビット線ＢＬに印加される。これによって、メモリセルＭＣは、プログラム可能状態に設定される。
【００９６】
また、センスアンプユニット１３１は、データを書き込まないメモリセル（例えば、Ｅｒステートに維持すべきメモリセル）に接続されたビット線に、電圧Ｖｘを印加する。電圧Ｖｘは、例えば、電源電圧ＶＤＤ（ＶＤＤ＞ＶＳＳ）程度の電圧値を有する。例えば、電圧Ｖｘは、Ｈレベルの制御信号ＢＶ２に基づいてトランジスタＴｒ４がオンされることによって、ビット線ＢＬに印加される。これによって、メモリセルＭＣは、プログラム禁止状態に設定される。
【００９７】
ロウ制御回路１２は、アドレスに示されたワード線（以下では、選択ワード線とよぶ）を、選択する。  
シーケンサ１９は、ロウ制御回路１２を介して、プログラム電圧ＶＰＧＭを、選択ワード線ＷＬｋに印加し、書き込みパス電圧（書き込み非選択電圧）Ｖｐａｓｓを、選択ワード線ＷＬｋ以外のワード線（以下では、非選択ワード線とよぶ）ｕｎｓｅｌＷＬに印加する。ｋは、０以上の自然数である。
【００９８】
図１０は、本実施形態のフラッシュメモリのデータの書き込み時の各動作における各配線の電位を示す波形図である。  
図１０の（ａ）は、フラッシュメモリ１のプログラム動作時に用いられる各電圧を説明するための波形図である。
【００９９】
図１０の（ａ）において、プログラム動作時のある時刻ｔ１において、ビット線に対する電圧の印加が開始され、ビット線ＢＬの電位は、電圧Ｖｘ又はグランド電圧Ｖｓｓに設定される。電圧Ｖｘがビット線ＢＬに印加される場合、メモリセルは、プログラム禁止状態に設定される。電圧ＶＳＳがビット線ＢＬに印加される場合、メモリセルは、プログラム可能状態に設定される。
【０１００】
時刻ｔ１において、ドレイン側セレクトゲート線ＳＧＤに、電圧ＶＳＧＤが印加される。図３乃至図５の構造を有するメモリセルアレイにおいて、電圧ＶＳＧＤが印加されたセレクトゲート線ＳＧＤに対応するストリングユニットＳＵが、選択状態に設定される。プログラム動作の期間中において、グランド電圧ＶＳＳが、ソース側セレクトゲート線ＳＧＳに、印加される。
【０１０１】
ある時刻ｔ２において、選択ワード線ＷＬｋに対するプログラム電圧ＶＰＧＭの印加が、開始される。非選択ワード線ｕｎｓｅｌＷＬに、書き込みパス電圧Ｖｐａｓｓが印加される。選択ワード線ＷＬｋに対するプログラム電圧ＶＰＧＭの印加時において、選択ワード線ＷＬｋの電位は、書き込みパス電圧Ｖｐａｓｓ程度に昇圧されてから、所望の電圧値Ｖａに設定される。尚、プログラム電圧ＶＰＧＭの上限値は、後述のように、書き込みループの回数及び書き込むべきレベルに応じて、変わる。
【０１０２】
ここで、電圧Ｖｘがビット線ＢＬに印加されている場合、そのビット線ＢＬに接続されたセレクトトランジスタＳＴ１は、ゲート電圧ＶＳＧＤとビット線ＢＬの電位とによってカットオフする。この結果として、電圧Ｖｘが印加されたビット線ＢＬに対応するメモリセルは、チャネルブーストされ、そのメモリセルに対する電荷の注入は、抑制される。  
一方、電圧ＶＳＳがビット線ＢＬに印加されている場合、そのビット線ＢＬに接続されたセレクトトランジスタＳＴ１は、オンする。この結果として、電圧ＶＳＳが印加されたビット線ＢＬに対応するメモリセルに対して、ビット線ＢＬの電位とプログラム電圧ＶＰＧＭとの電位差に対応した量の電荷が、注入される。  
このように、ビット線ＢＬの電位に応じて、メモリセルに対する電荷の注入（及び電荷の注入量）が、制御される。
【０１０３】
ある時刻ｔ３において、ワード線ＷＬｋ，ｕｎｓｅｌＷＬの電位の低減が開始され、ワード線ＷＬｋ，ｕｎｓｅｌＷＬの電位は、グランド電圧ＶＳＳに設定される。また、時刻ｔ３において、ビット線ＢＬの電位の低減が開始され、ビット線ＢＬの電位は、グランド電圧ＶＳＳに設定される。
【０１０４】
このように、各配線の電位が制御され、プログラム動作が実行される。
【０１０５】
プログラム動作の後、シーケンサ１９はベリファイ動作を実行する。そしてシーケンサ１９は、あるメモリセルにおけるベリファイ結果がパスであるかフェイルであるか判定する（ステップＳ２）。
【０１０６】
ベリファイ動作時において、処理部２０１がラッチ回路ＤＬのデータに対する計算処理を実行する。処理部２０１の計算結果に基づいて、各センスアンプユニット１３１は、ビット線ＢＬの電位を制御する。シーケンサ１９は、ロウ制御回路１２を介して、１以上のベリファイレベルを含むベリファイ電圧Ｖｖｆｙを選択ワード線ＷＬｋに印加し、読み出しパス電圧（読み出し非選択電圧）ＶＲＥＡＤを非選択ワード線ｕｎｓｅｌＷＬに印加する。
【０１０７】
図１０の（ｂ）は、フラッシュメモリ１のベリファイ動作時に用いられる各電圧を説明するための波形図である。
【０１０８】
図１０の（ｂ）に示されるように、ある時刻ｔ４において、ビット線ＢＬの電位の制御が開始される。  
電圧Ｖｂが、複数のビット線のうちベリファイ対象のメモリセルに接続されたビット線ＢＬに、印加される。電圧Ｖｂは、電圧ＶＳＳより大きく、電圧ＶＤＤより小さい。例えば、グランド電圧ＶＳＳが、ベリファイ非対象のメモリセルに接続されたビット線ＢＬに印加されてもよい。尚、ベリファイ非対象のメモリセルは、Ｅｒステートを維持すべきメモリセルを、少なくとも含む。以下では、ベリファイ動作中に、あるビット線ＢＬに電圧ＶＳＳを印加する処理（動作）のことを、ロックアウト処理とよぶ。
【０１０９】
時刻ｔ４において、電圧ＶＳＧ（例えば、ＶＳＧ＜ＶＳＧＤ）が、セレクトゲート線ＳＧＤ，ＳＧＳに、印加される。これによって、セレクトトランジスタＳＴ１，ＳＴ２はオンする。
【０１１０】
時刻ｔ４において、各ワード線ＷＬｋ，ｕｎｓｅｌＷＬの電位の制御が、開始される。  
非選択ワード線ｕｎｓｅｌＷＬに、読み出しパス電圧ＶＲＥＡＤが印加される。これによって、非選択ワード線ｕｎｓｅｌＷＬに接続されたメモリセルは、オンする。
【０１１１】
選択ワード線ＷＬｋに、ベリファイ電圧Ｖｖｆｙが印加される。メモリセルＭＣが２ビット（４値）のデータを記憶する場合、ベリファイ電圧Ｖｖｆｙは、Ａステートに関するベリファイレベル（電圧値）ＶＡＶ、Ｂステートに関するベリファイレベルＶＢＶ及びＣステートに関するベリファイレベルＶＣＶを含む。
【０１１２】
但し、データの書き込みの進捗（書き込みループの実行回数）に応じて、プログラムが完了したデータに対応するベリファイレベルは、ベリファイ電圧Ｖｖｆｙから省略されてもよい。例えば、Ａステートのプログラムが完了した場合、ベリファイ電圧Ｖｖｆｙは、Ｂステート及びＣステートのベリファイレベルＶＢＶ，ＶＣＶを含み、Ａステートのベリファイレベルは含まない。また、Ａステート及びＢステートのプログラムが完了した場合、ベリファイ電圧Ｖｖｆｙは、ＣステートのベリファイレベルＶＣＶのみを含む。尚、メモリの保持するデータが１ビット又は３ビット以上のデータである場合、ベリファイ電圧Ｖｖｆｙは、保持すべきデータに応じたレベル数のベリファイレベルを含む。  
図９において、図示の簡略化のため、複数のベリファイレベルを含むベリファイ電圧Ｖｖｆｙを、四角形状の電圧波形で示している。
【０１１３】
あるベリファイレベルの印加時にオン状態のメモリセルは、あるベリファイレベル以下の閾値電圧を有している。あるベリファイレベルの印加時にオフ状態のメモリセルは、あるベリファイレベルより高い閾値電圧を有している。あるベリファイレベルの印加時にオン状態のメモリセルは、そのベリファイレベルに関して、ベリファイフェイルのメモリセルである。あるベリファイレベルの印加時にオフするメモリセルは、そのベリファイレベルに関して、ベリファイパスのメモリセルである。
【０１１４】
センスアンプユニット１３１は、メモリセルＭＣのオン又はオフに起因したビット線（ノード）における電流の発生又は電位の変動を、センスする。
【０１１５】
センス結果が、ベリファイ動作の結果（ベリファイパス又はベリファイフェイル）を示す信号として、例えばラッチ回路ＤＬ３内に格納される。
【０１１６】
ベリファイパスを示す信号（以下では、パス信号とよぶ）がラッチ回路ＤＬ３内に保持された場合、そのラッチ回路ＤＬ３に対応するメモリセルは、ある時刻（ある書き込みループ）のベリファイ動作において、ベリファイパスの状態である。ベリファイフェイルを示す信号（以下では、フェイル信号とよぶ）がラッチ回路ＤＬ３内に保持された場合、そのラッチ回路ＤＬ３に対応するメモリセルは、ベリファイフェイルの状態である。
【０１１７】
処理部２０１は、書き込むべきデータと書き込むべきデータに対応したベリファイレベルにおけるベリファイ結果（ラッチ回路ＤＬ３内のデータ）とを計算処理する。処理部２０１は、計算処理の結果に基づいて、メモリセルＭＣがベリファイパスか否か判定する。
【０１１８】
このように、ベリファイ動作によって、メモリセルＭＣの閾値電圧が、書き込むべきデータに対応した値に達しているか否か検証される。
【０１１９】
ベリファイフェイルがベリファイ動作の結果に含まれている場合、シーケンサ１９は、２回目の書き込みループＬＰ＜２＞を実行する。
【０１２０】
２回目の書き込みループＬＰ＜２＞において、プログラム電圧ＶＰＧＭの電圧値が、変更される。例えば、前回の書き込みループＬＰ＜１＞におけるプログラム電圧ＶＰＧＭの電圧値Ｖａに、ある電圧値（ステップアップ電圧とよばれる）Ｖｓｔｐが、加えられる。このように、書き込みループの回数の増加に伴って、ステップアップ電圧Ｖｓｔｐが順次加算され、プログラム電圧ＶＰＧＭの電圧値が増加される。
【０１２１】
２回目の書き込みループＬＰ＜２＞において、プログラム動作の後、ベリファイ動作が実行され、ベリファイ結果が、ラッチ回路ＤＬ３内に格納される。  
このように、シーケンサ１９は、書き込みループを順次実行する。
【０１２２】
そして、ｉ回目の書き込みループＬＰ＜ｉ＞においてビット線ＢＬｙ，ＢＬｚに接続されたメモリセルがベリファイにパスしたと仮定する。
【０１２３】
その結果として、ビット線ＢＬｙ，ＢＬｚに接続されたあるノードの電位が、パス信号として、ラッチ回路ＤＬ３Ａにそれぞれ格納される。すなわち、ビット線ＢＬｙ，ＢＬｚに対応するラッチ回路ＤＬ３Ａはパス信号を保持し、ビット線ＢＬｘに対応するラッチ回路ＤＬ３Ａはフェイル信号を保持する。
【０１２４】
（ｉ＋１）回目の書き込みループＬＰ＜ｉ＋１＞では、ｉ回目の書き込みループＬＰ＜ｉ＞においてベリファイフェイルのメモリセルに対応するビット線ＢＬｘに、グランド電圧Ｖｓｓが印加される。これによって、ビット線ＢＬｘに接続されたメモリセルは、プログラム可能状態に設定される。  
またラッチ回路ＤＬ３Ａ内のデータに基づいて、ベリファイパスのメモリセルに対応するビット線ＢＬｙ，ＢＬｚに、電圧Ｖｘが印加される。これによって、ビット線ＢＬｙ，ＢＬｚに接続されたメモリセルは、プログラム禁止状態に設定される（ステップＳ３）。
【０１２５】
プログラム電圧ＶＰＧＭの印加の後、ベリファイ動作が実行される。
【０１２６】
本実施形態において、プログラム対象のメモリセルに加えて、前回の書き込みループＬＰ＜ｉ＞においてベリファイパスの結果が得られたメモリセルも、ベリファイ対象として選択される。前回の書き込みループＬＰ＜ｉ＞におけるベリファイ動作の終了から今回の書き込みループＬＰ＜ｉ＋１＞におけるベリファイ動作の開始までにおいて、期間Ｔｘが確保されている。例えば、期間Ｔｘは、前回の書き込みループＬＰ＜ｉ＞におけるベリファイ電圧Ｖｖｆｙの立ち下がりの時刻ｔ５ｘから今回の書き込みループＬＰ＜ｉ＋１＞におけるベリファイ電圧Ｖｖｆｙの立ち上りの時刻ｔ４ｘまでの期間に相当する。
【０１２７】
一度ベリファイパスしたメモリセルＭＣの閾値電圧が、書き込むべきデータ（保持すべき閾値電圧状態）に関して、ベリファイされる（ステップＳ４）。これによって、プログラム禁止状態を経たメモリセルに対するベリファイ動作の結果に基づいて、プログラム禁止状態に設定されたメモリセルが、書き込むべきデータに対応したベリファイレベルをパスした状態を維持しているか否か、判定される。
【０１２８】
例えば、ビット線ＢＬｘに接続されたメモリセルは、ベリファイにフェイルしたとする（ステップＳ２のＮｏ）。このベリファイ結果（フェイル信号）は、ビット線ＢＬｘに対応するラッチ回路ＤＬ３Ａ内に格納される。
【０１２９】
一度ベリファイパスの結果が得られたメモリセルのうち、ビット線ＢＬｙに接続されたメモリセルは、ベリファイにパスした（ステップＳ４のＹｅｓ）。従って、ラッチ回路ＤＬ３Ａにパス信号が格納されているセンスアンプユニット１３１において、２回目のベリファイパスの結果は、パス信号として、ラッチ回路ＤＬ３Ｂに格納される。
【０１３０】
この一方で、一度ベリファイパスの結果が得られたメモリセルのうち、例えば、ビット線ＢＬｚに接続されたメモリセルは、書き込むべきデータのベリファイに関して、フェイルする（ステップＳ４のＮｏ）。
【０１３１】
このように、一度ベリファイパスしたメモリセルに関して、ベリファイパスしてから期間Ｔｘの経過後におけるメモリセルの閾値電圧が、ベリファイされる。
【０１３２】
書き込み動作中において、ある書き込みループで一度ベリファイパスしたメモリセルのうち後続の書き込みループで実行されたベリファイにおいて、メモリセルがベリファイにフェイルする場合、そのメモリセルの閾値電圧は、書き込むべきデータに対応する電圧値より低くなっている。
【０１３３】
ラッチ回路ＤＬ３Ａにベリファイパスを示す信号が格納されているセンスアンプユニット１３１において、メモリセルの閾値電圧に対する再度のベリファイにおけるベリファイフェイルの結果は、ラッチ回路ＤＬ３Ｂに格納される。このセンスアンプユニット１３１におけるラッチ回路ＤＬ３Ａは、パス信号の保持状態を継続する。
【０１３４】
（ｉ＋２）回目の書き込みループＬＰ＜ｉ＋２＞では、ベリファイパスの結果が得られていないメモリセルに対して、上述のプログラム動作が実行される。
【０１３５】
従って図９の例では、ビット線ＢＬｙに接続されたメモリセルのように、２度のベリファイにパスしたメモリセルはプログラム完了と認識され、非選択状態（プログラム禁止状態）に設定される（ステップＳ５）。すなわち、センスアンプユニット１３１は、電圧Ｖｘを、ビット線ＢＬｙに、印加する。
【０１３６】
一方、一度ベリファイにパスしたメモリセルのうちベリファイパス後のプログラムベリファイがフェイルであるメモリセルは、プログラム対象として再設定される（ステップＳ６）。
【０１３７】
ベリファイパス後（プログラム禁止状態の設定後）のベリファイがフェイルであるメモリセルに対応するセンスアンプユニット１３１において、そのセンスアンプユニット１３１は、ラッチ回路ＤＬ３Ａ，ＤＬ３Ｂの計算結果に基づいて、ビット線ＢＬｚの電位を制御する。
【０１３８】
図１０の（ｃ）は、本実施形態のフラッシュメモリ１における一度ベリファイにパスしたメモリセルに対して実行されるプログラム動作に用いられる各電圧を説明するための波形図である。
【０１３９】
図１０の（ｃ）に示されるように、一度ベリファイにパスしたメモリセルが再度のベリファイにおいてベリファイフェイルの状態であった場合、プログラム動作時において、時刻ｔ６において、そのメモリセルに接続されたビット線ＢＬｚに、電圧Ｖｚが、印加される。電圧Ｖｚの電圧値は、電圧Ｖｘの電圧値より小さく、電圧ＶＳＳの電圧値より高い。グランド電圧ＶＳＳが、一度もベリファイパスしていないメモリセルに接続されたビット線（例えば、ビット線ＢＬｘ）に、印加される。そのほかの時刻ｔ７，ｔ８における電位の制御は、図１０の（ａ）図と同様である。
【０１４０】
これによって、選択ワード線ＷＬｋに印加されるプログラム電圧の電圧値が、比較的高い電圧値であっても、一度ベリファイにパスしたメモリセルの電荷蓄積層に注入される電荷量は、一度もベリファイパスしていないメモリセルの電荷蓄積層に注入される電荷量より小さくなる。
【０１４１】
本実施形態において、ビット線ＢＬの電位を、グランド電圧ＶＳＳより高く、且つ、メモリセルをプログラム禁止状態に設定するための電圧Ｖｘより低い電位に設定した状態で、メモリセルの電荷蓄積層に電荷を注入する動作を、スロープログラム（スロープログラムモード）とよぶ。尚、スロープログラムに対して、グランド電圧ＶＳＳがビット線に印加された状態で実行されるプログラム動作を、通常プログラム（通常プログラムモード）とよぶ。
【０１４２】
スロープログラムによって、２回のベリファイのうち１回目のベリファイをパスし且つ再度のベリファイ（プログラム禁止状態に設定後のベリファイ）をフェイルしたメモリセルの閾値電圧は、上昇する。  
このように、本実施形態において、ビット線ＢＬの電位がグランド電圧ＶＳＳより高く電圧Ｖｘより低く設定された状態で、閾値電圧が低下したメモリセルがプログラム対象に設定され、メモリセルの低下した閾値電圧が、プログラム動作によって書き込むべきデータに対応する値に戻される。
【０１４３】
スロープログラムを含むプログラム動作の後、ベリファイ動作が実行される。
【０１４４】
ビット線ＢＬｘに電圧Ｖｂが印加され、ビット線ＢＬｘに接続されたメモリセルＭＣの閾値電圧が、ベリファイされる。
【０１４５】
ベリファイ動作では、２回のベリファイにパスしたメモリセル（ここでは、ビット線ＢＬｙに接続されたメモリセル）だけでなく、スロープログラムされたメモリセルもベリファイの非対象とされる。例えば、スロープログラムが実行されたこと示す信号（以下では、スロープログラム完了信号とよぶ）がラッチ回路ＤＬ３Ｂ内に格納される。これによって、センスアンプユニット１３１は、スロープログラム後のベリファイ動作時において、スロープログラムされたメモリセルがベリファイ対象であるか否か、判定できる。
【０１４６】
このように、スロープログラムが実行されたメモリセルは、スロープログラム後のプログラムベリファイ無しに、プログラム完了と判定される（ステップＳ５）。この結果として、スロープログラムが実行された書き込みループＬＰ＜ｉ＋２＞以降の書き込みループＬＰ＜ｉ＋３＞において、スロープログラムが実行されたメモリセルは、プログラム禁止状態に設定される。
【０１４７】
尚、２回のベリファイにパスしたメモリセルは、以降の書き込みループにおいて、ベリファイ動作においてロックアウト状態ＬＣＫに設定されてもよい。ベリファイ動作時においてメモリセルがロックアウト状態ＬＣＫに設定される場合、ラッチ回路ＤＬ３Ａ，ＤＬ３Ｂのデータに基づいて、グランド電圧ＶＳＳが、ビット線ＢＬｙに印加される。
【０１４８】
以上のように、選択アドレスに属する全てのメモリセルがベリファイにパスするまで、複数の書き込みループが繰り返される。
【０１４９】
全てのメモリセルがベリファイパスした場合、フラッシュメモリ１におけるデータの書き込みが終了する。尚、データの書き込みの終了は、実行された書き込みループの回数が所定の回数に達するか否か、又は、ベリファイフェイルのメモリセルの個数が許容値以内であるか否かによって、判定されてもよい。
【０１５０】
フラッシュメモリ１は、データの書き込みの終了を、メモリコントローラ５に通知する。
【０１５１】
尚、本実施形態のフラッシュメモリ１におけるデータの読み出し及びデータの消去は、周知の技術によって、実行される。それゆえ、本実施形態のフラッシュメモリ１のデータの読み出し及び消去に関する説明は、省略する。
【０１５２】
図８乃至図９に示されるように、本実施形態のフラッシュメモリは、データの書き込み動作中において、書き込むべきデータに関して一度ベリファイにパスしたメモリセルの閾値電圧を、再検証する。
【０１５３】
再検証されたメモリセルがベリファイフェイルであった場合、メモリセルに対してプログラム動作が実行される。これによって、閾値電圧の再検証においてベリファイフェイルのメモリセルの閾値電圧は、書き込むべきデータに対応する閾値電圧に戻される。
【０１５４】
本実施形態において、再検証においてベリファイフェイルのメモリセルに対するプログラム動作において、ビット線の電位の制御によって、メモリセルに対する電荷の注入量が、制御される。これによって、本実施形態のフラッシュメモリは、一度ベリファイにパスしたメモリセルに対するオーバープログラムを、防止できる。
【０１５５】
また、本実施形態において、再検証においてベリファイにフェイルしたメモリセルに対するプログラム動作は、通常のプログラム動作（一度もベリファイパスしていないメモリセルに対するプログラム動作）と同時に実行される。
【０１５６】
以上のように、本実施形態のフラッシュメモリは、データの書き込み動作の期間中において、動作の長期化無しに、書き込むべきデータに対応したステートの閾値分布の幅を狭くでき、メモリセルのデータにエラーが生じるのを抑制できる。
【０１５７】
したがって、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０１５８】
（１ｂ−２）  第２の例  
図１１及び図１２を参照して、本実施形態のフラッシュメモリセルの動作例の第２の例について説明する。図１１は、本実施形態のフラッシュメモリの動作例を説明するためのフローチャートである。図１２は、本実施形態のフラッシュメモリの動作例の書き込み動作時における各配線の電圧波形（横軸：時間、縦軸：電位）を模式的に示すタイミングチャートである。図１１は、あるメモリセル及びビット線に着目したメモリセルに対する処理を示すフローチャートである。
【０１５９】
本例において、プログラムされたメモリセルとともに、スロープログラムされたメモリセルもベリファイ対象とされる。
【０１６０】
図１１及び図１２に示されるように、第１の例と同様に、（ｉ＋１）回目の書き込みループＬＰ＜ｉ＋１＞において、ベリファイパス状態のメモリセルに対して、ベリファイ動作が再度実行される。（ｉ＋２）回目の書き込みループＬＰ＜ｉ＋２＞において、スロープログラムを含むプログラム動作が実行される（ステップＳ６Ａ）。例えば、書き込みループＬＰ＜ｉ＋２＞のプログラム動作において、電圧Ｖｚがビット線ＢＬｚに印加され、ビット線ＢＬｚに接続されたメモリセルに対して、スロープログラムが実行される。
【０１６１】
スロープログラム後のベリファイ動作において、スロープログラムが実行されたメモリセルの閾値電圧が、ベリファイされる（ステップＳ４）。
【０１６２】
例えば、本例において、スロープログラム後において、ラッチ回路ＤＬ３Ｂ内のデータ保持状態が、スロープログラムの実行を示す信号によって変更されること無しに、フェイル信号を保持する状態に維持される。これによって、本実施形態のフラッシュメモリにおいて、シーケンサ１９及びセンスアンプユニット１３１は、スロープログラムされたメモリセルが、ベリファイ対象であると検知できる。
【０１６３】
センスアンプユニット１３１は、ラッチ回路ＤＬ３Ａ，ＤＬ３Ｂのデータ（ベリファイ結果）に基づいて、ビット線ＢＬｚに電圧Ｖｂを印加する。
【０１６４】
スロープログラムされたメモリセルがベリファイパスである場合（ステップＳ４のＹｅｓ）、パス信号が、ラッチ回路ＤＬ３Ｂに格納される。これによって、ベリファイパスの回数が２回であるメモリセルに対するプログラム動作及びベリファイ動作は、完了する（ステップＳ５）。この場合、図１２に示されるように、（ｉ＋３）回目の書き込みループＬＰ＜ｉ＋３＞のプログラム動作時において、電圧Ｖｘがビット線ＢＬｚに印加され、メモリセルＭＣはプログラム禁止状態に設定される。
【０１６５】
スロープログラムされたメモリセルがベリファイフェイルである場合（ステップＳ４のＮｏ）、書き込みループＬＰ＜ｉ＋３＞において、ラッチ回路ＤＬ３Ｂのデータに基づいて、プログラム動作がそのメモリセルに対して再度実行される。この場合、図１２に示されるように、（ｉ＋３）回目の書き込みループＬＰ＜ｉ＋３＞のプログラム動作時において、電圧Ｖｚが、ビット線ＢＬｚに印加され、メモリセルＭＣに対して、スロープログラムが実行される。メモリセルに対するスロープログラムの後、スロープログラムされたメモリセルに対してプログラムベリファイが、実行される。
【０１６６】
スロープログラムされたメモリセルにおけるベリファイ結果が、ベリファイパスとなるまで、ビット線ＢＬｚに接続されたメモリセルに対して、スロープログラム（ステップＳ５Ａ）とベリファイ（ステップＳ４）とが、繰り返し実行される。
【０１６７】
本例のように、スロープログラムされたメモリセルに対してベリファイ動作を実行することによって、データの書き込みの信頼性を、向上できる。
【０１６８】
（１ｂ−３）  第３の例  
図１３乃至図１４を参照して、本実施形態のフラッシュメモリの動作例の第３の例について説明する。図１３は、本実施形態のフラッシュメモリの動作例を説明するためのフローチャートである。図１４は、本実施形態のフラッシュメモリの書き込み動作時における各配線の電圧波形（横軸：時間、縦軸：電位）を模式的に示すタイミングチャートである。図１３は、あるメモリセル及びビット線に着目したメモリセルに対する処理を示すフローチャートである。
【０１６９】
本例のように、あるメモリセルに対して実行されるベリファイパス後のベリファイ動作に関して、ベリファイにパスしたメモリセルに対して２回以上のベリファイ動作が実行され、メモリセルの閾値電圧状態が再検証されてもよい。
【０１７０】
図１３及び図１４に示されるように、ビット線ＢＬｘ，ＢＬｙ，ＢＬｚに接続されたメモリセルのように、ある書き込みループＬＰ＜ｉ＞において１回目のベリファイパスが得られたメモリセルに関して、次の書き込みループＬＰ＜ｉ＋１＞のプログラム動作において、電圧Ｖｘが、ビット線ＢＬｘ，ＢＬｙ，ＢＬｚに印加される。これによって、メモリセルＭＣは、プログラム禁止状態に設定される（ステップＳ３−１）。
【０１７１】
この後、書き込みループＬＰ＜ｉ＋１＞において、一度ベリファイにパスしたメモリセル（プログラム禁止状態に設定されたメモリセル）に対して、プログラムベリファイが実行される（ステップＳ４−１）。
【０１７２】
書き込みループＬＰ＜ｉ＋１＞の後の書き込みループＬＰ＜ｉ＋２＞のプログラム動作において、前回の書き込みループＬＰ＜ｉ＋１＞のプログラムベリファイの結果がパスである場合（ステップＳ４−１のＹｅｓ）、２度ベリファイにパスしたメモリセル（例えば、ビット線ＢＬｙ，ＢＬｚに接続されたメモリセル）は、プログラム禁止状態に設定される（ステップＳ３−２）。
【０１７３】
一方、ビット線ＢＬｘのメモリセルのように、１回ベリファイにパスしたメモリセルに対する前回のプログラムベリファイの結果がフェイルである場合（ステップＳ４−１のＮｏ）、書き込みループＬＰ＜ｉ＋２＞において、そのメモリセルに対してスロープログラムが、実行される（ステップＳ６−１）。
【０１７４】
書き込みループＬＰ＜ｉ＋２＞のベリファイ動作において、前回のベリファイ結果に基づいてプログラム禁止状態に設定されたメモリセルに対して、ベリファイ動作が実行される（ステップＳ４−２）。
【０１７５】
書き込みループＬＰ＜ｉ＋２＞において、例えば、ビット線ＢＬｙに接続されたメモリセルは、ベリファイパスし、ビット線ＢＬｚに接続されたメモリセルは、ベリファイにフェイルする。ビット線ＢＬｙに接続されたメモリセルは、プログラムベリファイに関して、３回目のベリファイパスの結果（パス信号）を取得する。これによって、ビット線ＢＬｙに接続されたメモリセルに対するデータのプログラムは、完了する（ステップＳ９）。
【０１７６】
書き込みループＬＰ＜ｉ＋２＞のベリファイ動作において、スロープログラムされたメモリセルに対して、プログラムベリファイは実行されずに、次の書き込みループが実行される。
【０１７７】
書き込みループＬＰ＜ｉ＋２＞後の書き込みループＬＰ＜ｉ＋３＞において、３回ベリファイにパスしたメモリセル（ビット線ＢＬｙのメモリセル）又はスロープログラムされたメモリセル（ビット線ＢＬｘのメモリセル）は、プログラム禁止状態に設定される。
【０１７８】
前回のベリファイ動作において２回ベリファイにパスしたメモリセルに対するベリファイ結果がフェイルである場合（ステップＳ７のＮｏ）、ベリファイフェイルのメモリセル（ここでは、ビット線ＢＬｚのメモリセル）に対して、スロープログラムが実行される（ステップＳ６−２）。
【０１７９】
書き込みループＬＰ＜ｉ＋３＞のプログラム動作時において、電圧Ｖｚが、ビット線ＢＬｂに印加される。これによって、スロープログラムが、ビット線ＢＬｚに接続されたメモリセル（ベリファイパスの回数が２回であるメモリセル）に対して実行される。
【０１８０】
書き込みループＬＰ＜ｉ＋３＞において、スロープログラム後のプログラムベリファイにおいて、スロープログラムされたメモリセルは、ベリファイされること無しに、そのメモリセルに対するデータのプログラムは、完了する（ステップＳ６）。
【０１８１】
書き込みループＬＰ＜ｉ＋３＞において、前回の書き込みループＬＰ＜ｉ＋２＞でスロープログラムが実行されたメモリセル（ビット線ＢＬｘのメモリセル）に対して、ベリファイ動作が実行される。ベリファイ動作の結果に応じて、次の書き込みループＬＰ＜ｉ＋３＞において、ビット線ＢＬｘのメモリセルは、プログラム禁止状態に設定される、又は、スロープログラムが実行される。これによって、ビット線ＢＬｘのメモリセルに対するデータのプログラムは完了する。
【０１８２】
このように、あるメモリセルにおけるベリファイパスの回数及びスロープログラムの回数の合計が、３である場合に、そのメモリセルに対するデータの書き込みが完了する。
【０１８３】
尚、パス信号及びスロープログラム完了信号が、３個のラッチ回路ＤＬ３に格納されることによって、メモリセルに対するデータの書き込みが制御される。
【０１８４】
あるメモリセルのプログラム終了の判定基準が３回（又は４回以上）である場合、ベリファイパスとなるタイミングが連続してもよいし、非連続でもよい。但し、あるメモリセルに対するベリファイパスの結果が、２回以上連続して得られることが望ましい。
【０１８５】
このように、本実施形態のフラッシュメモリは、ベリファイパスとなったメモリセルに対して、複数回のプログラムベリファイを実行する。
【０１８６】
それゆえ、本実施形態のフラッシュメモリは、メモリセルの閾値電圧の低下を検知するために確保された期間が、長くなる。この結果として、本実施形態のフラッシュメモリは、閾値電圧が低下したメモリセルを検出できる機会が、増大する。これにともなって、本実施形態のフラッシュメモリは、メモリセルの閾値電圧の状態が比較的安定な状態に達してから、メモリセルの閾値電圧を再検証を実行できる。したがって、本実施形態のフラッシュメモリは、ベリファイにパスしたメモリセルの閾値電圧の再検証の精度を、向上できる。
【０１８７】
この結果として、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０１８８】
（１ｂ−４）第４の例  
図１５乃至図１８を参照して、本実施形態のフラッシュメモリの動作例の第４の例について、説明する。図１５は、本実施形態のフラッシュメモリの動作例を説明するためのフローチャートである。図１６は、本実施形態のフラッシュメモリの書き込み動作時における各配線の電圧波形（横軸：時間、縦軸：電位）を模式的に示すタイミングチャートである。図１５は、あるメモリセル及びビット線に着目したメモリセルに対する処理を示すフローチャートである。
【０１８９】
本例のフラッシュメモリのように、一度ベリファイにパスしたメモリセルに対して２回以上プログラムベリファイが実行される場合において、スロープログラムが実行されたメモリセルが、ベリファイ対象とされてもよい。
【０１９０】
図１５及び図１６に示されるように、（ｉ＋１）回目の書き込みループＬＰ＜ｉ＋１＞において、ビット線ＢＬｘ，ＢＬｙ，ＢＬｚに接続されたメモリセルのように、前回の書き込みループＬＰ＜ｉ＞においてベリファイにパスしたメモリセルがプログラム禁止状態に設定される。この後、プログラム禁止状態に設定されたメモリセルに対して、プログラムベリファイが、実行される（ステップＳ４−１）。これによって、一度ベリファイにパスしたメモリセルの閾値電圧の状態が、再度検証される。
【０１９１】
書き込みループＬＰ＜ｉ＋２＞において、ビット線ＢＬｘのメモリセルのように、メモリセルに対するプログラムベリファイの結果がフェイルである場合（ステップＳ４のＮｏ）、スロープログラムがそのメモリセルに対して実行される（ステップＳ６−１Ａ）。書き込みループＬＰ＜ｉ＋２＞において、スロープログラムされたメモリセルに対して、プログラムベリファイが再度実行される（ステップＳ４）。メモリセルが２回目のベリファイパスの結果を取得するまで、スロープログラムとプログラムベリファイとが繰り返し実行される。
【０１９２】
ビット線ＢＬｚのメモリセルは、（ｉ＋１）回目の書き込みループＬＰ＜ｉ＋１＞においてベリファイパスしている。それゆえ、書き込みループＬＰ＜ｉ＋２＞において、ビット線ＢＬｚのメモリセルは、プログラム動作においてプログラム禁止状態に設定された後（ステップＳ３−２）、３回目のベリファイパスの結果が得られるか否か判定される（ステップＳ４−２）。
【０１９３】
書き込みループＬＰ＜ｉ＋２＞の後、（ｉ＋３）回目の書き込みループＬＰ＜ｉ＋３＞が実行される。前回の書き込みループＬＰ＜ｉ＋２＞のベリファイ動作において、ビット線ＢＬｚのメモリセルのベリファイ結果がフェイルである場合（ステップＳ４−２のＮｏ）、現在の書き込みループＬＰ＜ｉ＋３＞のプログラム動作時において、電圧Ｖｚがビット線ＢＬｚに印加される。これによって、メモリセル（２回のベリファイにパスしたメモリセル）に対してスロープログラムが実行される。  
ビット線ＢＬｘのメモリセルに関して、書き込みループＬＰ＜ｉ＋２＞のベリファイ結果に応じて、そのメモリセルがプログラム禁止状態に設定される、又は、そのメモリセルに対してスロープログラムが実行される。
【０１９４】
書き込みループＬＰ＜ｉ＋３＞のベリファイ動作時において、ビット線ＢＬｚのメモリセルに対して、プログラムベリファイが実行される（ステップＳ４−２）。これによって、二度のベリファイにパスしたメモリセルに対して、プログラムベリファイが実行される。
【０１９５】
ビット線ＢＬｙのメモリセルのように、メモリセルに対するプログラムベリファイがフェイルである場合（ステップＳ４−２のＮｏ）、そのメモリセルに対して、スロープログラムが実行される（ステップＳ６−２Ａ）。ステップＳ４−２及びステップＳ６−２Ａにおいて、２回のベリファイにパスしたメモリセルが３回目のベリファイパスを得るまで、スロープログラム及びプログラムベリファイが、そのメモリセルに対して繰り返し実行される。
【０１９６】
メモリセルがベリファイにパスし（ステップＳ４−２のＹｅｓ）、メモリセルにおけるベリファイパスの回数が３回となった場合、そのメモリセルに対するデータのプログラムは、完了する（ステップＳ６）。
【０１９７】
図１７及び図１８は、図１５及び図１６に示されるフラッシュメモリの動作の変形例を示している。  
図１７に示されるように、メモリセルが２回目のベリファイパスの結果を取得するまで、スロープログラム（ステップＳ６−１Ａ）とプログラムベリファイ（ステップＳ４−１）とが繰り返し実行され、２回のベリファイにパスしたメモリセルに対するスロープログラム（ステップＳ５−２）に関してプログラムベリファイは、実行されなくともよい。
【０１９８】
また、図１８に示されるように、１回のベリファイにパスしたメモリセルに対するスロープログラム（ステップＳ６−１）に関してプログラムベリファイを実行せずに、メモリセルがベリファイに３回パスするまで、スロープログラム（ステップＳ６−２Ａ）とベリファイ（ステップＳ４−２）とが繰り返し実行されてもよい。
【０１９９】
以上のように、本例のフラッシュメモリにおいて、２以上のベリファイパスの結果に基づいてメモリセルに対するデータのプログラムの完了が判定される場合、スロープログラムされたメモリセルに対してプログラムベリファイが実行される。
【０２００】
これによって、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０２０１】
（１ｂ−５）  第５の例  
図１９乃至図２１を参照して、本実施形態のフラッシュメモリの動作例の第５の例について、説明する。
【０２０２】
フラッシュメモリのデータの書き込み方式に、Quick Pass Write（ＱＰＷ）方式が適用されてもよい。
【０２０３】
図１９は、フラッシュメモリにおけるＱＰＷ方式を説明するための図である。  
ＱＰＷ方式のフラッシュメモリにおいて、各ステートのベリファイレベルとして、２つのベリファイレベルが、設定される。
【０２０４】
例えば、図１９に示されるように、Ａステートに関して、ベリファイレベル（ここでは、ベリファイハイレベルとよぶ）ＶＡＶ、及び、ベリファイレベル（ここでは、ベリファイローレベルとよぶ）ＶＡＬが、設定されている。ベリファイレベルＶＡＬは、ベリファイレベルＶＡＶと読み出しレベルＶＡＲとの間の電圧値を有する。
【０２０５】
Ｂステートに関して、ベリファイハイレベルＶＢＶ、及び、ベリファイローレベルＶＢＬが、設定されている。ベリファイローレベルＶＢＬは、ベリファイレベルＶＢＲとベリファイハイレベルＶＢＶとの間の電圧値を有する。
【０２０６】
Ｃステートに関して、ベリファイハイレベルＶＣＶ、及び、ベリファイローレベルＶＣＬが、設定されている。ベリファイローレベルＶＣＬは、ベリファイレベルＶＣＲとベリファイハイレベルＶＣＶとの間の電圧値を有する。
【０２０７】
各ステートにおいて、ベリファイローレベルは、ベリファイハイレベルより低い。尚、Ｃステートに関するベリファイローレベルＶＣＬは設定されずに、ベリファイローレベルＶＣＬは、ベリファイ電圧Ｖｖｆｙ内に含まれなくともよい。
【０２０８】
書き込むべきデータに対応したベリファイローレベルＶＡＬ，ＶＢＬ，ＶＣＬをパスしたメモリセルに関して、プログラム動作時におけるビット線ＢＬの電位が制御され、メモリセルＭＣの書き込み速度（電荷蓄積層に対する電荷の注入量）が調整される。
【０２０９】
ベリファイローレベルに関するベリファイにパスしたメモリセルにおいて、電圧Ｖｑが、ビット線ＢＬに印加される。電圧Ｖｑの電圧値は、電圧Ｖｘの電圧値より低く、グランド電圧ＶＳＳの電圧値より高い。例えば、電圧Ｖｑの電圧値は、電圧Ｖｚの電圧値（例えば、０．３Ｖから０．５Ｖ程度）より小さい。
【０２１０】
例えば、ＱＰＷ形式のデータの書き込みのために、センスアンプユニット１３１は、ベリファイローレベルに関するベリファイ結果を保持するためのラッチ回路を、さらに含む。
【０２１１】
図２０及び図２１を参照して、本例におけるフラッシュメモリの動作例について説明する。図２０は、本実施形態のフラッシュメモリの動作例を説明するためのフローチャートである。図２１は、本実施形態のフラッシュメモリの動作例の書き込み動作時における各配線の電圧波形（横軸：時間、縦軸：電位）を模式的に示すタイミングチャートである。図２１は、あるメモリセル及びビット線に着目したメモリセルに対する処理を示すフローチャートである。
【０２１２】
図２０及び図２１に示されるように、データの書き込みが開始された後（ステップＳ０）、プログラム動作及びベリファイ動作が実行される。  
ｉ回目の書き込みループＬＰ＜ｉ＞において、プログラム電圧の印加（ステップＳ１１）の後、シーケンサ１９は、ベリファイ電圧Ｖｖｆｙを、選択ワード線ＷＬｋに印加する。図１９に示されるように、ベリファイ電圧Ｖｖｆｙは、各レベルに関して、ベリファイローレベルＶＡＬ，ＶＢＬ，ＶＣＬとベリファイハイレベルＶＡＶ，ＶＢＶ，ＶＣＶとを含む。
【０２１３】
ベリファイ動作において、メモリセルが、書き込むべきデータに対応したベリファイローレベルに関してベリファイパスしているか否か判定される（ステップＳ１２）。ベリファイローレベルにおけるベリファイ結果が、ベリファイローレベルの判定結果を保持するためのラッチ回路に、保持される。
【０２１４】
書き込みループＬＰ＜ｉ＞の後、次の書き込みループＬＰ＜ｉ＋１＞において、プログラム動作が、実行される。
【０２１５】
図２１のビット線ＢＬｘに接続されたメモリセルのように、メモリセルが、書き込むべきデータのベリファイローレベルに関して、ベリファイフェイルであると仮定する。この場合（ステップＳ１２のＮｏの場合）、ビット線ＢＬｘにグランド電圧ＶＳＳが印加され、メモリセルに対して、通常モードのプログラムが、再度実行される（ステップＳ１１）。ベリファイローレベルに関してフェイルのメモリセルは、ベリファイ結果がパスするまで、通常モードのプログラムが繰り返し実行される。
【０２１６】
図２１のビット線ＢＬｙ，ＢＬｚに接続されたメモリセルのように、メモリセルが書き込むべきデータのベリファイローレベルのベリファイに関してパスしたと仮定する。この場合（ステップＳ１２のＹｅｓの場合）、ベリファイローレベルをパスしたメモリセルに対して、ＱＰＷモード（第３のモード）のプログラムが、実行される（ステップＳ１３）。ＱＰＷモードによってプログラムされるメモリセルにおいて、そのメモリセルに接続されるビット線ＢＬｙ，ＢＬｚに、電圧Ｖｑが、印加される。電圧Ｖｑの電圧値は、グランド電圧Ｖｓｓより高く、電圧Ｖｘ（例えば、２．０Ｖ）より低い。電圧Ｖｑは、例えば、０．１５Ｖから０．２５Ｖ程度の電圧値を有する。
【０２１７】
ビット線ＢＬｙに対する電圧Ｖｑ（例えば、０．２Ｖ）の印加によって、ビット線ＢＬｙに接続されたメモリセルの閾値電圧のシフト量（電荷蓄積層に注入される電荷量）は、小さくなる。
【０２１８】
プログラム電圧ＶＰＧＭの印加の後、ベリファイ動作のために、ベリファイ電圧Ｖｖｆｙが、選択ワード線ＷＬｋに印加される。
【０２１９】
ＱＰＷモードのプログラムが実行されたメモリセル（ベリファイローレベルをパスしたメモリセル）において、そのメモリセルが、書き込むべきデータに対応するベリファイハイレベルに関して、ベリファイにパスするか否か判定される（ステップＳ１４）。ＱＰＷモードによってプログラムされたメモリセルに対するベリファイハイレベルに関するベリファイ結果は、ラッチ回路ＤＬ３Ａに格納される。
【０２２０】
書き込みループＬＰ＜ｉ＋１＞の後、書き込みループＬＰ＜Ｌ＋２＞が実行される。  
メモリセルＭＣが、ベリファイハイレベルに関するベリファイにフェイルした場合（ステップＳ１２のＮｏの場合）、書き込みループＬＰ＜ｉ＋２＞において、そのメモリセルに対して、ＱＰＷモードのプログラムが再度実行される。メモリセルが、ベリファイハイレベルに関してベリファイにパスするまで、そのメモリセルに対するＱＰＷモードのプログラム（ステップＳ１３）とベリファイハイレベルのベリファイ（ステップＳ１４）が、繰り返し実行される。
【０２２１】
メモリセルＭＣがベリファイハイレベルに関してベリファイパスした場合（ステップＳ１４のＹｅｓの場合）、書き込みループＬＰ＜ｉ＋２＞において、そのメモリセルは、プログラム禁止状態に設定される（ステップＳ１５）。
【０２２２】
本例において、書き込みループＬＰ＜ｉ＋２＞のベリファイ動作において、前回の書き込みループＬＰ＜ｉ＋１＞においてベリファイハイレベルをパスしたメモリセルに対して、プログラムベリファイが実行される。  
書き込みループＬＰ＜ｉ＋２＞のベリファイ動作において、ベリファイハイレベルに関するベリファイで一度パスしたメモリセルに対して、ベリファイハイレベルに関するベリファイが、再度実行される（ステップＳ１６）。これによって、ベリファイパスのメモリセルにおいて、ベリファイパスの判定が得られてから期間Ｔｘ後におけるメモリセルの閾値電圧の状態が、検証される。２回目のベリファイハイレベルにおけるベリファイ結果（パス信号又はフェイル信号）は、ラッチ回路ＤＬ３Ｂ内に格納される。
【０２２３】
書き込みループＬＰ＜ｉ＋２＞のベリファイ動作の後、書き込みループＬＰ＜ｉ＋３＞のプログラム動作及びベリファイ動作が実行される。
【０２２４】
２回目のベリファイハイレベルにおけるベリファイ結果がパスである場合（ステップＳ１６のＹｅｓの場合）、そのメモリセルに対するデータのプログラムは完了であると判定される（ステップＳ１７）。それゆえ、ビット線ＢＬｙに接続されたメモリセルのように、ベリファイハイレベルに関して２回のベリファイにパスしたメモリセルにおいて、電圧Ｖｘが、ビット線ＢＬｙに印加され、メモリセルＭＣは、プログラム禁止状態に設定される。ベリファイハイレベルに関して２回のベリファイにパスしたメモリセルは、ベリファイ動作時において、ベリファイされない。
【０２２５】
ベリファイハイレベルに関する２回目のベリファイの結果がフェイルである場合（ステップＳ１６のＮｏの場合）、そのメモリセルに対するスロープログラムが、実行される（ステップＳ１８）。それゆえ、ビット線ＢＬｚに接続されたメモリセルのように、ベリファイハイレベルに関する２回目のベリファイ結果がフェイルであるメモリセルにおいて、電圧Ｖｚ（例えば、０．４Ｖ）がビット線ＢＬｚに印加され、メモリセルＭＣに対してスロープログラムが実行される。
【０２２６】
スロープログラムされたメモリセルに対してベリファイ動作が実行されること無しに、スロープログラムされたメモリセルは、プログラムが完了したと判定される（ステップＳ１７）。
【０２２７】
以上のように、本実施形態のＱＰＷモードが実行されるフラッシュメモリにおいて、ベリファイハイレベルに関するベリファイにパスしたメモリセルに対して、再度ベリファイ動作を実行する。
【０２２８】
したがって、本実施形態のフラッシュメモリは、ＱＰＷモードが適用されたフラッシュメモリのデータの信頼性を向上できる。
【０２２９】
（１ｂ−６）  第６の例  
図２２及び図２３を用いて、実施形態のメモリデバイスの動作例の第６の例について、説明する。図２２は、本実施形態のフラッシュメモリの動作を説明するためのフローチャートである。図２３は、本実施形態のフラッシュメモリの動作例の書き込み動作時における各配線の電圧波形（横軸：時間、縦軸：電位）を模式的に示すタイミングチャートである。図２２は、あるメモリセル及びビット線に着目したメモリセルに対する処理を示すフローチャートである。
【０２３０】
ＱＰＷ形式におけるデータの書き込みにおいて、２回目のベリファイハイレベルのベリファイにフェイルしたメモリセルに対するスロープログラムの後に、そのメモリセルに対してプログラムベリファイが実行されてもよい。
【０２３１】
図２２及び図２３に示されるように、書き込みループＬＰ＜ｉ＋２＞において、ビット線ＢＬｙ，ＢＬｚに接続されたメモリセルのように、ベリファイハイレベルに関して１度ベリファイにパスしたメモリセルに関して、ベリファイハイレベルのベリファイが再度実行される（ステップＳ１６）。
【０２３２】
あるメモリセルに対するベリファイハイレベルに関する２回目のベリファイ結果がパスである場合、上述のように、そのメモリセルに対するデータのプログラムは、完了する（ステップＳ１７）。
【０２３３】
例えば、ビット線ＢＬｚに接続されたメモリセルのように、メモリセルに対するベリファイハイレベルに関する２回目のベリファイ結果が、フェイルである場合、次の書き込みループＬＰ＜ｉ＋３＞において、そのメモリセルに対してスロープログラムが実行される。（ステップＳ１８Ａ）。
【０２３４】
書き込みループＬＰ＜ｉ＋３＞において、スロープログラムされたメモリセルに対して、ベリファイハイレベルのベリファイが、実行される（ステップＳ１６）。
【０２３５】
スロープログラム後のベリファイ動作において、スロープログラムされたメモリセルが、ベリファイハイレベルに関してベリファイパスである場合、そのメモリセルは、プログラム禁止状態に設定され、そのメモリセルに対するプログラムは完了する（ステップＳ１７）。  
これに対して、スロープログラムされたメモリセルが、ベリファイハイレベルに関してベリファイフェイルである場合、次の書き込みループＬＰ＜ｉ＋４＞において、スロープログラムが実行され（ステップ１８Ａ）、プログラムベリファイがそのメモリセルに対して再度実行される（ステップＳ１６）。
【０２３６】
ベリファイハイレベルに関するベリファイ結果が、２回パスするまで、スロープログラム（ステップＳ１８）とベリファイハイレベルを用いたベリファイ（ステップＳ１４）とが、スロープログラムの対象のメモリセルに対して繰り返し実行される。
【０２３７】
これによって、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０２３８】
（１ｃ）  まとめ  
フラッシュメモリに用いられるメモリセルにおいて、ゲート絶縁膜のトラップ準位における電荷の捕獲及び捕獲された電荷の脱離、メモリセル間における電荷の移動、電荷蓄積層内の電荷の移動（例えば、脱離）などが、生じる可能性がある。この結果として、メモリセルの閾値電圧が、記憶すべきデータに対応する値と異なる値に変化する可能性がある。このような、意図しないメモリセルの閾値電圧の変動は、プログラム動作後及びベリファイ動作後など、比較的短い期間内において、データの書き込み中のメモリセルに発生する場合がある。
【０２３９】
本実施形態のフラッシュメモリ及びメモリシステムにおいて、データの書き込み動中において、ベリファイ結果がパスのメモリセル（書き込むべきデータに対応する閾値電圧に達したメモリセル又はベリファイ結果に基づいてプログラム禁止状態に設定されたメモリセル）に対して、メモリセルの閾値電圧に関するベリファイを再度実行する。
【０２４０】
これによって、本実施形態のフラッシュメモリは、書き込み動作中に発生する閾値電圧の低下に起因したエラー（プログラム時のエラー）を、検出する。本実施形態のフラッシュメモリは、再度のベリファイ動作によって、書き込むべきデータのベリファイレベルより低下した閾値電圧を有するメモリセルが検出された場合、そのメモリセルに対して、プログラム動作を実行する。
【０２４１】
本実施形態において、ベリファイパスの結果が得られてからある期間Ｔｘが経過してから再度ベリファイが実行される。この結果として、本実施形態のフラッシュメモリは、プログラム動作の直後にメモリセルの閾値電圧が検証される場合に比較して、電荷蓄積層内の電荷の状態が比較的安定な状態に収束した状態で、メモリセルの閾値電圧を再検証できる。
【０２４２】
そして、本実施形態のフラッシュメモリは、書き込み動作中に閾値電圧が低下したメモリセルに対して、再度プログラム動作を実行することによって、書き込むべきデータに対応するステートの閾値分布の幅が、閾値電圧の低下に起因して広がるのを抑制できる。これに伴って、本実施形態のフラッシュメモリは、データにエラーが発生するのを抑制できる。
【０２４３】
以上のように、本実施形態のフラッシュメモリ及びメモリシステムは、データの信頼性を向上できる。
【０２４４】
（２）  第２の実施形態  
図２４乃至図３３を参照して、第２の実施形態のメモリデバイス及びメモリシステムについて、説明する。
【０２４５】
（２ａ）  基本例  
図２４及び図２５を参照して、本実施形態のメモリデバイスの基本例について、説明する。図２４及び図２５は、本実施形態のメモリデバイスの基本例を説明するためのフローチャートである。
【０２４６】
図２４に示されるように、メモリコントローラ５からのコマンドに基づいて、フラッシュメモリ１は、メモリコントローラからのデータの書き込みを開始する（ステップＳ２０）。フラッシュメモリ１は、あるステート（以下では、Ｘステートと表記する）のデータをプログラムするために、メモリセルに対してプログラム動作を実行する（ステップＳ２１）。
【０２４７】
フラッシュメモリ１は、プログラム動作の後、第１のベリファイレベルＶＶ１を用いて、ベリファイ動作を実行する（ステップＳ２２）。
【０２４８】
フラッシュメモリ１は、第１のベリファイレベルＶＶ１を用いたベリファイ動作の結果に基づいて、メモリセルＭＣが、書き込むべきデータに関してプログラムが完了したか否か判定する（ステップＳ２３）。
【０２４９】
メモリセルが第１のベリファイレベルＶＶ１に関してベリファイフェイルである場合、プログラム動作（ステップＳ２１）及びベリファイ動作（ステップＳ２２）が再度実行される。  
メモリセルが第１のベリファイレベルＶＶ１に関してベリファイパスである場合、フラッシュメモリ１は、そのメモリセルをプログラム禁止状態に設定する（ステップＳ２４）。
【０２５０】
フラッシュメモリ１は、プログラム禁止状態のメモリセルに対して、第２のベリファイレベルＶＶ２を用いて、プログラム完了後のメモリセルの閾値電圧状態に関するベリファイ動作を実行する（ステップＳ２５）。例えば、第２のベリファイレベルＶＶ２は、第１のベリファイレベルＶＶ１以下の電圧値を有し、且つ、書き込むべきデータの読み出しレベルより高い電圧値を有する。
【０２５１】
第２のベリファイレベルＶＶ２を用いたベリファイ動作の結果に基づいて、メモリセルＭＣが、書き込むべきデータに関してベリファイパスであるか否か判定される（ステップＳ２６）。
【０２５２】
メモリセルＭＣが第２のベリファイレベルＶＶ２に関してベリファイパスである場合、そのメモリセルＭＣに対するデータの書き込みは、完了する。
【０２５３】
メモリセルが第２のベリファイレベルＶＶ２に関してベリファイフェイルである場合、フラッシュメモリ１は、そのメモリセルＭＣに対して、保持すべきデータのプログラム動作（以下では、再プログラム動作ともよぶ）を実行する（ステップＳ２７）。フラッシュメモリ１は、再プログラム動作の実行によって、第２のベリファイレベルＶＶ２に関してベリファイフェイルのメモリセルに対するデータの書き込みが完了したと判定する。
【０２５４】
図２５は、図２４の動作例の変形例を示している。  
図２５に示されるように、メモリセルに対する再プログラムの実行（ステップＳ２７Ｘ）の後、再プログラムが実行されたれたメモリセルに対して、第２のベリファイレベルを用いたベリファイ動作が、実行されてもよい。再プログラムされたメモリセルが第２のベリファイレベルに関してベリファイにパスするまで、再プログラムが繰り返し実行される。
【０２５５】
図２４及び図２５に示されるように、本実施形態のフラッシュメモリは、第１のベリファイレベルＶＶ１において一度ベリファイにパスしたメモリセルに対して、プログラム禁止状態を経たある期間Ｔｘ後において、第２のベリファイレベルＶＶ２（ＶＶ２≦ＶＶ１）を用いたベリファイ動作を実行する。このように、本実施形態のフラッシュメモリは、一度書き込むべきデータに対応した閾値電圧に達したメモリセルに対して、書き込むべきデータに対応した閾値分布の下限値（閾値分布の下裾）に関したベリファイ動作を、実行する。
【０２５６】
これによって、本実施形態のフラッシュメモリは、データの書き込み動作中に、メモリセルの閾値電圧が書き込むべきデータに対応する値から低下する不良を検知できる。本実施形態のフラッシュメモリは、閾値電圧が低下したメモリセルに対してプログラム動作を再度実行することによって、メモリセルが保持すべきデータにエラーが発生するのを抑制できる。
【０２５７】
したがって、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０２５８】
（２ｂ）動作例  
図２６乃至図３２を参照して、第２の実施形態のメモリデバイスの動作例について説明する。
【０２５９】
（２ｂ−１）  第１の例  
図２６及び図２７を参照して、本実施形態のメモリデバイス（例えば、ＮＡＮＤ型フラッシュメモリ）の動作例の第１の例について、説明する。図２６は、本実施形態のフラッシュメモリの動作を説明するためのフローチャートである。図２７は、本実施形態のフラッシュメモリの動作例の書き込み動作時における各配線の電圧波形（横軸：時間、縦軸：電位）を模式的に示すタイミングチャートである。図２６は、書き込むべきデータに対応したあるステートに関するデータの書き込み動作の全体的な流れを模式的に示すフローチャートである。
【０２６０】
第２の実施形態のＮＡＮＤ型フラッシュメモリ（メモリデバイス）において、複数のステートのデータのプログラムを並列に実行する。例えば、フル−シーケンス方式における２ページ分のデータの書き込み、及び、ＬＭ（lower at middle）方式における上位ページの書き込み時において、複数のステートのプログラムが同時に実行される。この場合、下位のステート（低い閾値電圧）のデータから上位のステート（高い閾値電圧）のデータに向かう順序で、データのプログラムが完了する。
【０２６１】
本実施形態において、第１のステートのプログラムが完了した後において、第１のステート（Ｘステート）より上位のステートの書き込みループのベリファイ動作時に、プログラム中の上位のステートのベリファイに加え、プログラムが完了した第１のステートのベリファイが実行される。
【０２６２】
本実施形態のフラッシュメモリは、データの書き込み動作中に、メモリセルの閾値電圧が書き込むべきデータに対応する値から低下する不良を検知できる。本実施形態のフラッシュメモリは、上位ステートのプログラム期間中に、閾値電圧が低下した第１のステートのメモリセルに対してプログラム動作を再度実行する。
【０２６３】
図２６及び図２７に示されるように、ある時刻においてシーケンサ１９は、ＭＬＣのフラッシュメモリにおける複数のステートのそれぞれに対応するデータの書き込みを開始する（ステップＳ２０Ａ）。ＭＬＣのフラッシュメモリのフルシーケンス形式における２ページのデータ又はＬＭ形式の上位ページのデータの書き込みにおいて、Ａステート、Ｂステート及びＣステートに対応するデータのプログラムが、同時に実行される。Ｅｒステートのメモリセルは、プログラム禁止状態に設定される。
【０２６４】
１回目の書き込みループＬＰ＜１＞において、シーケンサ１９は、第１の実施形態と同様に、プロラム電圧ＶＰＧＭが、選択ワード線ＷＬｋに印加する（ステップＳ２１Ａ）。これによって、プログラム対象のメモリセルにおいて、電荷が電荷蓄積層内に注入される。尚、Ａステートのプログラムが完了するまでの期間において、プログラム電圧ＶＰＧＭは、電荷蓄積層に対する電荷の注入によってメモリセルの閾値電圧がＡステートに対応する値を超えない電圧値に、設定されている。
【０２６５】
プログラム電圧ＶＰＧＭの印加の後、シーケンサ１９は、ベリファイ電圧Ｖｖｆｙを、選択ワード線ＷＬｋに印加し、メモリセルに対してベリファイ動作を実行する（ステップＳ２２Ａ）。これによって、メモリセルが、書き込むべきデータに関してベリファイパスであるか否か検知される。
【０２６６】
Ａステートのプログラムが完了するまでの期間において、ベリファイ電圧ＶｖｆｙＡは、Ａステート、Ｂステート及びＣステートのベリファイレベルＶＡＶ，ＶＢＶ，ＶＣＶを含む。
【０２６７】
シーケンサ１９は、ベリファイ動作の結果に基づいて、現在プログラム中のステートうち最下位のＸステート（ここでは、Ａステート）のプログラムが完了したか否か判定する（ステップＳ２３Ａ）。
【０２６８】
Ａステートに関してベリファイフェイルのメモリセルが検知された場合（ステップＳ２３ＡのＮｏの場合）、書き込みループＬＰ＜１＞の後の書き込みループＬＰ＜２＞において、ステップアップ電圧Ｖｓｔｐが加算されたプログラム電圧ＶＰＧＭを用いて、プログラム動作が、実行される。書き込みループＬＰ＜２＞において、ベリファイパスのメモリセルは、プログラム禁止状態に設定される。プログラム動作の後において、ベリファイ動作が実行され、Ａステートのデータの書き込みが完了したか否か判定される。
【０２６９】
例えば、（ｉ−１）回目の書き込みループＬＰ＜ｉ−１＞（時刻ｔａ）において、シーケンサ１９が、ベリファイ動作の結果（ラッチ回路のデータ）に基づいて、Ａステートのプログラムの完了を検知する。
【０２７０】
Ａステートのプログラムの完了が検知された場合（ステップＳ２３のＹｅｓの場合）、シーケンサ１９は、これから実行される書き込みループＬＰ＜ｉ＞において、プログラムが完了したＡステートのメモリセルをプログラム禁止状態に設定する（ステップＳ２４Ａ）。Ａステートよりも上位のＢ及びＣステートのプログラムが未完了であれば、書き込みループＬＰ＜ｉ−１＞以降の書き込みループにおいて、Ｂ及びＣステートのプログラムが継続される。
【０２７１】
ｉ回目の書き込みループＬＰ＜ｉ＞において、Ｂステート及びＣステートのプログラムのために、プログラム電圧ＶＰＧＭが、選択ワード線ＷＬｋに印加される。
【０２７２】
プログラム電圧ＶＰＧＭの印加の後、ベリファイ電圧ＶｖｆｙＢＸが、選択ワード線ＷＬｋに印加され、メモリセルがベリファイにパスするか否か判定される（ステップＳ２５Ａ，Ｓ２６Ａ）。
【０２７３】
本実施形態において、図２７に示される例のように、Ａステートのプログラム完了後の１回目の書き込みループＬＰ＜ｉ＞のベリファイ動作において、ベリファイ電圧ＶｖｆｙＢｘは、Ｂ及びＣステートに関するベリファイレベルＶＢＶ，ＶＣＶに加えて、Ａステートに関するベリファイレベルＶｄｒＡを含む。
【０２７４】
Ｂ及びＣステートのプログラム期間中（Ａステートのプログラム完了後の期間）におけるＡステートのベリファイレベルＶｄｒＡの値は、例えば、ＡステートのベリファイレベルＶＡＶと異なっている。ベリファイレベルＶｄｒＡは、ベリファイレベルＶＡＶより低く、読み出しレベルＶＡＲより高い。ベリファイレベルＶｄｒＡは、ＱＰＷモードにおけるＡステートのベリファイローレベルＶＡＬと実質的に同じ電圧値でもよい。尚、ベリファイレベルＶｄｒＡは、ＡステートのプログラムのためのベリファイレベルＶＡＶの値と同じでもよい。
【０２７５】
このように、本実施形態のフラッシュメモリ１において、Ａステートより上位のステートのプログラム時において、Ａステートのプログラムが完了した後に、Ａステートのデータを保持すべき全てのメモリセルに対してＡステートのベリファイが再度実行される。これによって、Ａステートのプログラムが完了してからある期間Ｔｘが経過した後に、Ａステートのデータを保持すべきメモリセルの閾値電圧が、再検証される。
【０２７６】
プログラムが完了したＡステートのメモリセルに対するプログラムベリファイ及びプログラム中のステートに対するプログラムベリファイの後、（ｉ＋１）回目の書き込みループＬＰ＜ｉ＋１＞が実行される。
【０２７７】
書き込みループＬＰ＜ｉ＋１＞において、Ｂ及びＣステートのデータを保持すべきメモリセルに対して、プログラム動作が実行される。
【０２７８】
書き込みループＬＰ＜ｉ＋１＞において、ベリファイレベルＶｄｒＡを用いたＡステートのメモリセルのベリファイ結果に基づいて、ベリファイパスのＡステートのメモリセルは、プログラム禁止状態に設定される。これによってベリファイパスのメモリセルに対するプログラムは終了する（ステップＳ２６ＡのＹｅｓ）。
【０２７９】
ベリファイレベルＶｄｒＡを用いたＡステートのメモリセルのベリファイ結果において、あるＡステートのメモリセルがベリファイフェイルであると仮定する。この場合（ステップＳ２６ＡのＮｏ）、（ｉ＋１）回目の書き込みループＬＰ＜ｉ＋１＞において、ベリファイフェイルのＡステートのメモリセルに対して、再プログラム動作が、Ｂ及びＣステートのメモリセルに対するデータのプログラムと同時に、実行される（ステップＳ２７Ａ）。
【０２８０】
Ａステートより上位のステートのプログラム期間中に、Ａステートのメモリセルに対する再プログラム動作が実行される場合、Ａステートのメモリセルのビット線ＢＬ−Ａの電位が制御されることによって、Ｂ及びＣステートに対応する電圧値に閾値電圧をシフトさせるためのプログラム電圧を用いて、ベリファイフェイルのＡステートのメモリセルに対して再プログラム動作が、実行される。
【０２８１】
例えば、図２７に示されるように、Ｂステート及びＣステートのプログラム対象のメモリセルに対応するビット線ＢＬ−Ｂに、電圧ＶＳＳが印加される。プログラム禁止状態のメモリセル及びベリファイパスのメモリセルのビット線ＢＬ−Ａ，ＢＬ−Ｂ，ＢＬ−Ｃに、電圧Ｖｘが印加される。これと同時に、ベリファイフェイルのメモリセルに対応するビット線ＢＬ−Ａに、電圧Ｖｚ１が、印加される。電圧Ｖｚ１は、電圧ＶＳＳより高く、電圧Ｖｘより低い。これによって、Ａステートよりも上位のステートのプログラム動作時において、ベリファイフェイルのＡステートのメモリセルに対して、スロープログラムが実行される。
【０２８２】
このように、Ａステートより上位のＢ及びＣステートのプログラム動作時において、ベリファイフェイルのＡステートのメモリセルにおける選択ワード線ＷＬｋと半導体領域（チャネル）との間の電位差は、Ｂ及びＣステートのプログラム可能状態のメモリセルにおける選択ワード線ＷＬｋと半導体領域との間の電位差より小さくなる。
【０２８３】
それゆえ、メモリセルの閾値電圧がＡステートを超える可能性があるプログラム電圧ＶＰＧＭが、選択ワード線ＷＬｋに印加されていたとしても、ビット線ＢＬの電位の制御によって、ベリファイフェイルのＡステートのメモリセルに注入される電荷量は、Ｂステートのプログラム対象のメモリセルに注入される電荷量より少なくなる。このように、Ｂステート及びＣステートのプログラム期間中において、ベリファイフェイルのＡステートのメモリセルに注入される電荷量が、制御される。
【０２８４】
この結果として、Ａステートのメモリセルのオーバープログラムが、防止される。尚、ベリファイフェイルのＡステートのメモリセルに、再プログラム動作が実行される場合、グランド電圧ＶＳＳが、ビット線ＢＬに印加されてもよい。
【０２８５】
以上のように、Ａステートより上位のステートのプログラム期間中にベリファイフェイルであることが検知されたＡステートのメモリセルの閾値電圧が、Ａステートに対応する値にシフトされる。
【０２８６】
書き込みループＬＰ＜ｉ＋１＞において、ベリファイ動作が実行される。ベリファイ電圧ＶｖｆｙＢが選択ワード線ＷＬｋに印加される。ベリファイ電圧ＶｖｆｙＢは、Ｂステート及びＣステートのベリファイレベルＶＢＶ，ＶＣＶを含む。Ｂステート及びＣステートのプログラム期間の２回目以降の書き込みループにおいて、ベリファイ電圧ＶｖｆｙＢは、Ａステートに関するベリファイレベルＶＡＶ，ＶｄｒＡを含まない。
【０２８７】
このように、Ｂステート（及びＣステート）のプログラム期間において、スロープログラムが実行されたＡステートのメモリセルに対して、プログラムベリファイは実行されない。
【０２８８】
この後、Ｂステート及びＣステートのデータを書き込むべきメモリセルに対して、プログラム動作及びベリファイ動作が、繰り返し実行される。
【０２８９】
例えば、（ｊ−１）回目の書き込みループＬＰ＜ｊ−１＞（時刻ｔｂ）において、ベリファイ動作の結果に基づいて、Ｂステートのプログラムが完了したと判定される。
【０２９０】
Ｂステートのメモリセルに対しても、Ａステートのメモリセルと同様に、プログラム完了後のプログラムベリファイが実行される。この場合、書き込みループＬＰ＜ｊ−１＞後の書き込みループＬＰ＜ｊ＞において、Ｂステート（及びＡステート）のメモリセルはプログラム禁止状態に設定される（ステップＳ２４Ａ）。そして、Ｃステートのメモリセルに対するデータの書き込みのために、プログラム動作が継続される。
【０２９１】
ｊ回目の書き込みループ（Ｃステートのプログラムにおける１回目の書き込みループ）ＬＰ＜ｊ＞において、Ｃステートのプログラムのためのプログラム電圧ＶＰＧＭが、選択ワード線ＷＬｋに印加される。この時、電圧Ｖｘが、Ｂステートのメモリセルのビット線ＢＬ−Ｂに印加されている。
【０２９２】
プログラム電圧ＶＰＧＭの印加の後、ベリファイ電圧ＶｖｆｙＣＸが印加される。
【０２９３】
本実施形態において、Ｂステートのプログラム完了後における１回目のベリファイ動作時、ベリファイ電圧ＶｖｆｙＣＸは、Ｃステートに関するベリファイレベルＶＣＶに加え、Ｂステートに関するベリファイレベルＶｄｒＢを含む。これによって、プログラム完了後のＢステートのデータを保持すべきメモリセルの閾値電圧が、再検証される（ステップＳ２５Ａ）。これによって、Ｂステートのメモリセルがベリファイパスか否か判定される（ステップＳ２６Ａ）。
【０２９４】
Ｃステートのプログラム期間中（Ｂステートのプログラム完了後）におけるＢステートのベリファイレベルＶｄｒＢの値は、例えば、ＢステートのベリファイレベルＶＢＶと異なっている。この場合、ベリファイレベルＶｄｒＢの電圧値は、ベリファイレベルＶＢＶより低く、読み出しレベルＶＢＲより高い。ベリファイレベルＶｄｒＢは、ＱＰＷモードにおけるＢステートのベリファイローレベルと実質的に同じ電圧値でもよい。尚、ベリファイレベルＶｄｒＢは、ベリファイレベル（ベリファイハイレベル）ＶＢＶの値と同じでもよい。
【０２９５】
このように、本実施形態のフラッシュメモリにおいて、Ｃステートのプログラム時において、Ｂステートのベリファイが実行される。これによって、Ｂステートのプログラムが完了したと判定されてからある期間Ｔｘｂが経過した後に、Ｂステートのデータを保持すべきメモリセルの閾値電圧が、検証される。
【０２９６】
書き込みループＬＰ＜ｊ＞の後の書き込みループＬＰ＜ｊ＋１＞において、プログラム動作が、実行される。  
ベリファイレベルＶｄｒＢに関してベリファイフェイルのＢステートのメモリセルが検知されない場合（ステップＳ２６ＡのＹｅｓの場合）、ベリファイパスのメモリセルに対するＢステートのプログラムは、書き込みループＬＰ＜ｊ＋１＞において、実行されない。ベリファイレベルＶｄｒＢに関してベリファイフェイルのＢステートのメモリセルが検知された場合（ステップＳ２６ＡのＮｏの場合）、書き込みループＬＰＣ＜ｊ＋１＞において、Ｃステートのプログラムと同時に、ベリファイフェイルのＢステートのメモリセルに対して、再プログラム動作が実行される（ステップＳ２７Ａ）。これによって、Ｂステートのデータを保持すべきメモリセルの閾値電圧が、Ｂステートに対応する値にシフトされる。
【０２９７】
Ｃステートのプログラム期間中に、Ｂステートのメモリセルに対する再プログラム動作（スロープログラム）が実行される場合、電圧Ｖｚ２が、そのメモリセルに接続されるビット線ＢＬ−Ｂに、印加される。電圧Ｖｚ２は、電圧ＶＳＳより高く、電圧Ｖｘより低い。電圧Ｖｚ２の電圧値は、電圧Ｖｚ１の電圧値より高くてもよい。
【０２９８】
これによって、ベリファイフェイルのＢステートのメモリセルにおける選択ワード線ＷＬｋと半導体領域（チャネル）との間の電位差は、Ｃステートのプログラム対象のメモリセルにおける選択ワード線ＷＬｋと半導体領域との間の電位差より小さくなる。この結果として、Ｃステートのプログラム動作時において、Ｂステートのメモリセルに対するオーバープログラムは、抑制される。
【０２９９】
書き込みループＬＰ＜ｊ＋１＞において、ベリファイ動作が実行される。ベリファイ電圧ＶｖｆｙＣが、選択ワード線ＷＬｋに印加される。ベリファイ電圧ＶｖｆｙＣは、ＣステートのベリファイレベルＶＣＶを含む。Ｃステートのプログラム期間中の２回目以降の書き込みループにおいて、ベリファイ電圧ＶｖｆｙＣは、Ｂステート（及びＡステート）に関するベリファイレベルを含まない。このように、Ｃステートのプログラム期間中において、スロープログラムが実行されたＢステートのメモリセルに対して、ベリファイは、実行されない。
【０３００】
この後、Ｃステートに関するプログラム動作及ベリファイ動作が、繰り返し実行される。尚、Ｂステートの書き込み完了後の書き込みループにおいて、Ｂステートのプログラムベリファイに加えて、Ａステートのプログラムベリファイ及びそのベリファイ結果に基づいた再プログラム動作が実行されてもよい。
【０３０１】
例えば、書き込みループＬＰＺにおいて、Ｃステートに関するベリファイ動作によって、Ｃステートのプログラムが完了したと判定される。Ｃステートのデータを保持すべき全てのメモリセルに関しても、Ａ及びＢステートのメモリセルと同様に、プログラム完了後のベリファイが実行される（ステップＳ２５Ａ，Ｓ２６Ａ）。
【０３０２】
この場合、Ｃステートのプログラムが完了したと判定されたある時刻ｔｃからある期間Ｔｘｃが経過した後、ベリファイ電圧ＶｖｆｙＺが、選択ワード線ＷＬｋが印加される。
【０３０３】
ベリファイ電圧ＶｖｆｙＺは、ベリファイレベルＶｄｒＣを含む。ベリファイレベルＶｄｒＣの値は、ＣステートのベリファイレベルＶＣＶと異なってもよい。例えば、ベリファイレベルＶｄｒＣの電圧値は、ベリファイレベルＶＣＶより低く、読み出しレベルＶＣＲより高い。ベリファイレベルＶｄｒＣは、ＱＰＷモードにおけるＣステートのベリファイローレベルＶＣＬと実質的に同じ電圧値でもよい。尚、ベリファイレベルＶｄｒＣは、ベリファイレベルＶＣＶの値と同じでもよい。
【０３０４】
これによって、プログラム完了後のＣステートのメモリセルの閾値電圧が、ベリファイされる。
【０３０５】
ベリファイ電圧ＶｖｆｙＺの印加によってＣステートのメモリセルがベリファイパスであると判定された場合、そのメモリセルに対するプログラムは、完了する。
【０３０６】
ベリファイ電圧ＶＣｄｒの印加によってベリファイフェイルのＣステートのメモリセルが検知された場合、ベリファイフェイルのメモリセルに対して、Ｃステートの再プログラム動作が実行される。
【０３０７】
ベリファイレベルＶｄｒＣを用いたベリファイの後、Ｃステートのプログラムが再度実行される場合、Ｃステートのメモリセルに対応するビット線ＢＬ−Ｃのうちベリファイフェイルのメモリセルのビット線ＢＬ−Ｃに、電圧ＶＳＳが印加される。プログラム禁止状態（プログラム完了及びベリファイパス）のメモリセルに対応するビット線ＢＬ−Ａ，ＢＬ−Ｂ，ＢＬ−Ｃに、電圧Ｖｘが印加される。プログラム電圧ＶＰＧＭが、選択ワード線ＷＬｋに印加される。
【０３０８】
プログラム完了後のＣステートのメモリセルに対してプログラム動作が再度実行される場合（ステップＳ２７Ａ）において、プログラム電圧ＶＰＧＭの電圧値は、ベリファイレベルＶｄｒＣに関するベリファイ前のプログラム動作に用いられたプログラム電圧ＶＰＧＭの電圧値に設定される。
【０３０９】
尚、ベリファイレベルＶｄｒＣを用いたベリファイ後のプログラム動作において、プログラム電圧にステップアップ電圧が加算されてもよい。この場合、ベリファイフェイルのメモリセルに対して、スロープログラムが実行されてもよい。スロープログラムの実行のために、ベリファイフェイルのＣステートのメモリセルに対して、ある電圧値を有する電圧Ｖｘ３が、ビット線ＢＬ−Ｃに印加される。電圧Ｖｘ３の電圧値は、電圧Ｖｘより低く、電圧ＶＳＳより高い。
【０３１０】
ベリファイレベルＶｄｒＣに関してベリファイフェイルのメモリセルに対するプログラム動作が実行された後、本実施形態のフラッシュメモリのデータの書き込みは、終了する。
【０３１１】
尚、Ｃステートのプログラム完了後におけるメモリセルのベリファイにおいて、プログラム動作においてＣステートのメモリセルがプログラム禁止状態に一度設定されてから、閾値電圧の再検証のためのベリファイが実行されてもよい。また、Ｃステートのプログラム完了後のベリファイに動作において、Ａステート及びＢステートのうち少なくとも一方のベリファイが、再度実行されてもよい。
【０３１２】
以上のように、本実施形態のフラッシュメモリにおいて、あるステート（Ｘステート）のデータがプログラムが完了したメモリセルに対して、プログラムが完了したステートより上位のステート（（Ｘ＋１）ステート）のデータのプログラム期間中に、ベリファイ動作が実行される。本実施形態のフラッシュメモリは、第１の実施形態と同様に、一度ベリファイパス（プログラム完了）したメモリセルの閾値電圧を、再検証する。
【０３１３】
これによって、本実施形態のフラッシュメモリは、比較的短い期間で生じたメモリセルの閾値電圧の低下を検知できる。そして、本実施形態のフラッシュメモリは、閾値電圧が書き込むべきデータに対応した値に達したと判定されたメモリセルのうち書き込むべきデータに対応した値より閾値電圧が低下したメモリセルが検知された場合、そのメモリセルに対して、データの再書き込みを実行する。  
この結果として、本実施形態のフラッシュメモリは、書き込むべきデータに対応するステートの閾値分布の幅を小さくでき、データ内にエラーが発生するのを、防止できる。
【０３１４】
以上のように、本実施形態のフラッシュメモリは、データの信頼性の向上できる。
【０３１５】
（２ｂ−２）  第２の例  
図２８及び図２９を参照して、本実施形態のフラッシュメモリの動作例の第２の例について、説明する。図２８は、本実施形態のフラッシュメモリの動作を説明するためのフローチャートである。図２９は、本実施形態のフラッシュメモリの動作例の書き込み動作時における各配線の電圧波形（横軸：時間、縦軸：電位）を模式的に示すタイミングチャートである。図２８は、書き込むべきデータに対応した各ステートに関するデータの書き込み動作の全体的な流れを模式的に示すフローチャートである。
【０３１６】
プログラムの完了が検知されたＸステートより上位のステート（（Ｘ＋１）ステート）のデータの書き込み期間中において、Ｘステートに関するメモリセルの閾値電圧のベリファイが実行された場合、ベリファイフェイルしたＸステートのメモリセルがベリファイにパスするまで、Ｘステートのメモリセルに対するプログラムが、繰り返し実行されてもよい。
【０３１７】
図２８及び図２９に示されるように、Ａステートのプログラムが完了した後（ステップＳ２３のＹｅｓ）、Ａステート（Ｘステート）のメモリセルがプログラム禁止状態に設定され、Ｂステート及びＣステート（（Ｘ＋１）ステート）のプログラムのために、書き込みループが実行される（ステップＳ２４Ａ）。
【０３１８】
書き込みループＬＰ＜ｉ＞において、プログラム電圧ＶＰＧＭの印加後、ベリファイ動作の実行のために、ベリファイ電圧ＶｂｆｙＢＸが、選択ワード線ＷＬｋに印加される（ステップＳ２５Ａ）。
【０３１９】
ベリファイ電圧ＶｖｆｙＢＸ内のベリファイレベルＶｄｒＡによって、データの書き込み完了と判定されたＡステートのメモリセルがベリファイパスであるか否か、判定される（ステップＳ２６Ａ）。
【０３２０】
書き込みループＬＰ＜ｉ＋１＞において、Ｂ及びＣステートのプログラムと共に、ベリファイレベルＶｄｒＡに関するベリファイにフェイルしたＡステートのメモリセルに対して、再プログラム動作（スロープログラム）が実行される（ステップＳ２７Ｂ）。
【０３２１】
書き込みループＬＰ＜ｉ＋１＞のベリファイ動作において、ベリファイレベルＶｄｒＡを含むベリファイ電圧ＶｖｆｙＢＸが、選択ワード線ＷＬｋに再度印加される。  
この時、電圧Ｖｂが、Ｂステート及びＣステートに関するベリファイでフェイルしたメモリセルのビット線ＢＬ−Ｂ，ＢＬ−Ｃに加えて、再プログラムされたＡステートのメモリセルのビット線ＢＬ−Ａに、印加される。これによって、Ｂ及びＣステートのプログラム期間中において、スロープログラムされたＡステートのメモリセルの閾値電圧が、ベリファイされる。
【０３２２】
再プログラムされたＡステートのメモリセルが、ベリファイでフェイルした場合、次の書き込みループＬＰ＜ｉ＋２＞において、Ｂ及びＣステートのメモリセルに対するプログラム（通常プログラム）及びベリファイと共に、スロープログラム及びベリファイが、ベリファイフェイルのＡステートのメモリセルに対して実行される。尚、２回目以降のスロープログラムに関して、スロープログラムの対象のメモリセルＭＣのビット線ＢＬ−Ａの電位は、前回の書き込みループのスロープログラムに用いられたビットＢＬ−Ａの電位より高い値に設定されてもよい。
【０３２３】
尚、Ｂステートのメモリセル及びＣステートのメモリセルに関しても、Ａステートのメモリセルと同様に、各ステートの書き込み完了の判定後のベリファイにおいて、ベリファイフェイルのメモリセルが検知された場合、再プログラムされたメモリセルが、ベリファイパスと判定されるまで、再プログラム及びベリファイが繰り返し実行される。
【０３２４】
このように、本例にフラッシュメモリにおいて、一度プログラム完了と判定されたＸステートのメモリセルが、Ｘステートより上位の（Ｘ＋１）ステートのプログラム期間において実行されたベリファイ動作でパスするまで、スロープログラム及びプログラムベリファイが、Ｘステートに関してベリファイフェイルのメモリセルに対して、繰り返し実行される。
【０３２５】
これによって、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０３２６】
（２ｂ−３）  第３の例  
図３０及び図３１を用いて、本実施形態のフラッシュメモリの動作例の第３の例について、説明する。図３０は、本実施形態のフラッシュメモリの動作を説明するためのフローチャートである。図３１は、本実施形態のフラッシュメモリの動作例の書き込み動作時における各配線の電圧波形（横軸：時間、縦軸：電位）を模式的に示すタイミングチャートである。図３１は、書き込むべきデータに対応した各ステートに関するデータの書き込み動作の全体的な流れを模式的に示すフローチャートである。
【０３２７】
以下のように、本例のフラッシュメモリは、あるステートのプログラム期間の初期段階で、あるステートのデータに対応する閾値分布の下限値に関するベリファイを実行する。これによって、本例のフラッシュメモリは、メモリセルのオーバープログラムを抑制できる。
【０３２８】
図３０及び図３１に示されるように、複数のステートのデータの書き込みが同時に開始される（ステップＳ２１０）。
【０３２９】
プログラム動作（ステップＳ２１１）及びベリファイ動作（ステップＳ２１２）が、実行される。プログラム中の複数のステートのうち最下位のＸステート（ここでは、Ａステート）のプログラムが完了したか否か判定される（ステップＳ２１３）。Ａステートのプログラムが完了していない場合、プログラム動作及びベリファイ動作が実行される。
【０３３０】
Ａステートのメモリセルのプログラムが完了した後、Ａステートより上位のＢステート及びＣステートのデータの書き込みが、継続される。
【０３３１】
Ｂ及びＣステートのプログラム期間（Ａステートのプログラム完了後）の１回目の書き込みループＬＰ＜ｉ＞において、プログラム動作（ステップＳ２１４）の後、ベリファイ電圧ＶｖｆｙＢＺが、選択ワード線ＷＬｋに印加される（ステップＳ２１５）。
【０３３２】
ベリファイ電圧ＶｖｆｙＢＺは、Ｂステート（（Ｘ＋１）ステート）に関して２つのベリファイレベルＶＢＶ，ＶｄｒＢを含む。ベリファイレベル（第１のベリファイレベル）ＶｄｒＢは、ベリファイレベルＶｄｒＡ，ＶＡＶより高い電圧値を有し、ベリファイレベル（第２のベリファイレベル）ＶＢＶ以下の電圧値を有する。ベリファイレベルＶｄｒＢは、Ａステートのデータに対応する閾値分布の上限の電圧値より高い。例えば、ベリファイレベルＶｄｒＢは、読み出しレベルＶＢＲ以上の電圧値を有している。
【０３３３】
ベリファイレベルＶｄｒＢによって、Ｂステートのデータを保持すべきメモリセルがベリファイパスであるか否か検知される（ステップＳ２１６Ａ）。また、ベリファイレベルＶＶＢによって、Ｂステートのデータを保持すべきメモリセルがベリファイパスであるか否か検知される（ステップＳ２１６Ｂ）。
【０３３４】
Ｂステート以上のステートのプログラムにおいて１回目の書き込みループＬＰ＜ｉ＞の後、書き込みループＬＰ＜ｉ＋１＞が実行される。
【０３３５】
書き込みループＬＰ＜ｉ＋１＞のプログラム動作時において、Ｂステートのプログラム対象のメモリセルのうち２つのベリファイレベルＶｄｒＢ，ＶＢＶでベリファイフェイルのメモリセルにおいて、そのメモリセルに接続されたビット線ＢＬ−Ｂに、電圧Ｖｓｓが印加される（ステップＳ２１８Ａ）。これによって、ベリファイレベルＶｄｒＢ，ＶＢＶでベリファイフェイルのメモリセルに対して、通常モードのプログラムが実行される。
【０３３６】
書き込みループＬＰ＜ｉ＋１＞のプログラム動作時において、ベリファイレベルＶＢＶでフェイルしたメモリセルのうちベリファイレベルＶｄｒＢに関してベリファイパスのメモリセルにおいて、そのメモリセルに接続されたビット線ＢＬ−Ｂに、電圧Ｖｚが印加される。これによって、電圧Ｖｚが印加されたビット線に対応するメモリセルに対して、スロープログラムが実行される（Ｓ２１８Ｂ）。
【０３３７】
ベリファイレベルＶＢＶでベリファイパスであるメモリセルにおいて、電圧Ｖｘが、そのメモリセルのビット線ＢＬ−Ｂに印加される。これによって、ベリファイレベルＶＢＶでベリファイパスであるメモリセルは、プログラム禁止状態に設定される（ステップＳ２１７）。
【０３３８】
尚、メモリセルが第１のベリファイレベルＶｄｒＢに関してパスし、第２のベリファイレベルＶＢＶに関してフェイルした場合であっても、グランド電圧Ｖｓｓが、そのメモリセルに対応するビット線ＢＬ−Ｂに印加され、そのメモリセルに対するプログラム動作が実行されてもよい。
【０３３９】
このように、Ｂステートに関するベリファイ結果に応じたビット線の電位が制御されることによって、メモリセルの閾値電圧の状態に応じて、Ｂステートのメモリセルに対して、互いに異なるプログラム強度（電荷蓄積層に対する電荷の注入量）で、共通のプログラム電圧ＶＰＧＭを用いたプログラム動作を実行できる。
【０３４０】
尚、本例のフラッシュメモリは、ベリファイレベルＶｄｒＢに関してベリファイパスのＢステートのメモリセルに対して、スロープログラムが実行される場合であっても、ＡステートのベリファイレベルＶｄｒＡに関してベリファイフェイルであるＡステートのメモリセルに対して、ビット線ＢＬ−Ａの電位の制御によって、スロープログラムが実行できる。
【０３４１】
プログラム動作（ステップＳ２１８Ａ，Ｓ２１８Ｂ）の後に、ベリファイ動作が実行される（ステップＳ２１９）。このベリファイ動作において、Ｂステートのベリファイに関して、ベリファイレベルＶｄｒＢ（及びベリファイレベルＶｄｒＡ）のベリファイは省略されてもよい。
【０３４２】
ベリファイ結果に応じて、プログラム動作が実行される（Ｓ２２０）。  
尚、Ｂステートのデータを書き込むべきメモリセルの全てがベリファイレベルＶｄｒＢのベリファイをパスするまで、ベリファイレベルＶｄｒＢを含むベリファイ動作及びスロープログラムが繰り返し実行されてもよい。
【０３４３】
Ｂステートのプログラムが完了した後、Ｃステートのプログラムが実行される（ステップＳ２１３，Ｓ２１４）。  
Ｃステートのプログラム期間において、プログラム動作及びベリファイ動作が実行される（ステップＳ２１５，Ｓ２１６Ａ，Ｓ２１６Ｂ）。Ｂステートのプログラム期間中の動作と同様に、Ｂステートのプログラム完了後の１回目の書き込みループＬＰのベリファイ動作時において、ベリファイ電圧ＶｖｆｙＣＺは、Ｃステートに関して２つのベリファイレベルＶＣＶ，ＶｄｒＣを含む。ベリファイレベルＶｄｒＣの電圧値は、読み出しレベルＶＣＲ以上、ベリファイレベルＶＣＶ以下である。
【０３４４】
Ｃステートの２つのベリファイレベルに関してフェイルのメモリセルに対して、通常プログラムが、実行される（ステップＳ２１８Ａ）。
【０３４５】
ベリファイレベルＶＣＶでベリファイフェイルであるメモリセルのうちベリファイレベルＶｄｒＣに関するベリファイにパスしたメモリセルに対して、例えば、スロープログラムが実行される（ステップＳ２１８Ｂ）。
【０３４６】
Ｃステートの書き込みループが繰り返し実行され、Ｃステートのメモリセルに対するベリファイ結果に基づいて、Ｃステートのプログラム期間が完了か否か判定される（ステップＳ２１９，Ｓ２２０）。
【０３４７】
Ｃステートのプログラムが完了することによって、フラッシュメモリのデータの書き込みが終了する。
【０３４８】
尚、Ａステートのデータを保持すべきメモリセルに関して、１回目の書き込みループＬＰ＜１＞のベリファイ動作において、２つのベリファイレベルＶｄｒＡ，ＶＡＶを用いて、Ａステートのメモリセルに対するベリファイ動作を実行してもよい。
【０３４９】
フラッシュメモリにおいて、同じワード線に接続されたメモリセルであっても、メモリセル毎に特性が異なる可能性がある。この場合、あるワード線において、ある電圧値のプログラム電圧の印加時に、閾値電圧が上昇しやすいメモリセル（書き込み速度の速いメモリセル）と閾値電圧が上昇しにくいメモリセル（書き込み速度の遅いメモリセル）が、存在する。
【０３５０】
このため、データの書き込み動作時において、閾値電圧が上昇しやすいメモリセルが、書き込むべきデータに対応する閾値分布の下限値近傍の電圧値を有している場合、そのメモリセルに対してデータのプログラム（電荷蓄積層に対する電荷の注入）が実行されると、そのメモリセルの閾値電圧が過度に上昇する可能性がある。また、書き込みループの回数が増大するにしたがって、プログラム電圧の電圧値は、増加する。
【０３５１】
この結果として、メモリセルにおいてオーバープログラムによるエラーが発生する可能性がある。オーバープログラムは、メモリセルの閾値電圧が書き込むべきデータに対応する閾値分布の上限値を超える不良（データのエラー）である。オーバープログラムによるデータのエラーは、メモリセルに対して消去動作を実行しなければ、訂正できない。
【０３５２】
本例において、本実施形態のフラッシュメモリは、あるステートのプログラム期間の初期段階において、あるステートに対して設定された２つのベリファイレベル（電圧値）を用いて、あるステートのデータを書き込むべきメモリセルの閾値電圧の状態をベリファイする。これによって、本実施形態のフラッシュメモリは、オーバープログラムされる可能性があるメモリセルを、検知する。
【０３５３】
本実施形態のフラッシュメモリは、あるステートのプログラムの初期段階のように、あるステートに対するプログラム電圧が比較的低い段階で、オーバープログラムされる可能性を有するメモリセルに対するプログラム動作を制御し、メモリセルの閾値電圧が書き込むべきデータに対応する閾値電圧の範囲内に収める。これによって、本実施形態のフラッシュメモリは、メモリセルのオーバープログラムを抑制できる。
【０３５４】
これに伴って、本実施形態のフラッシュメモリは、プログラム期間の初期段階におけるプログラムの制御によって、書き込みループ数を削減できる。
【０３５５】
以上のように、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０３５６】
（２ｂ−４）  第４の例  
図３２及び図３３を用いて、本実施形態のフラッシュメモリの動作例の第４の例について、説明する。図３２は、本実施形態のフラッシュメモリの動作例の第４の例を説明するためのフローチャートである。
【０３５７】
データのプログラムが完了したあるステートのメモリセルに対するベリファイ動作が、上位のステートのプログラム期間中に実行される場合において、プログラムが完了したあるステートのベリファイ動作の結果におけるベリファイフェイルのメモリセルの個数（以下では、ベリファイフェイル数とよぶ）に応じて、スロープログラムのためのビット線ＢＬの電位が、制御されてもよい。
【０３５８】
図３２に示されるように、複数のステートのデータの書き込みが同時に開始される（ステップＳ２３０）。プログラム動作（ステップＳ２３１）及びベリファイ動作（ステップＳ２３２）が、実行される。
【０３５９】
プログラム中の複数のステートのうち最下位のＸステート（ここでは、Ａステート）のプログラムが完了したか否か判定される（ステップＳ２３３）。Ａステートのプログラムが完了していない場合、プログラム動作及びベリファイ動作が再度実行される。
【０３６０】
Ａステートのプログラムが完了した後、Ａステートのメモリセルはプログラム禁止状態に設定され（ステップＳ２３４）、Ａステートより上位のＢステート及びＣステートのデータのプログラムが、継続される。
【０３６１】
Ｂ及びＣステートのプログラム期間のある書き込みループにおいて、Ｂ及びＣステートのベリファイと共に、Ａステートに関する第２のベリファイレベルＶｄｒＡを含むベリファイが、Ａステートのメモリセルに対して実行される（ステップＳ２３５）。  
ベリファイ結果に基づいて、Ａステートのメモリセルの全てがベリファイパスか否か判定される（ステップＳ２３６）。
【０３６２】
ベリファイフェイルのＡステートのメモリセルＭＣが検出されなかった場合、Ａステートのメモリセルに対する再プログラム動作無しに、Ａステートのメモリセルに対する処理は完了する。
【０３６３】
ベリファイフェイルのＡステートのメモリセルＭＣが検出された場合、検出されたメモリセルにおけるベリファイフェイル数と設定値ＮＡとが比較される（ステップＳ２３７）。設定値ＮＡは、フラッシュメモリに対する実験の結果、及び、出荷時におけるフラッシュメモリに対するテストの結果などに基づいて、決定される。
【０３６４】
この比較結果に基づいて、ビット線の電位が制御され、ベリファイフェイルのＡステートのメモリセルに対する再プログラム動作が実行される。上述のように、Ａステートのメモリセルに対する再プログラム動作は、Ｂ及びＣステートのプログラム動作と同時に実行される。
【０３６５】
ベリファイフェイル数が、ある設定値ＮＡ以下である場合、スロープログラムのためのビット線ＢＬの電位は、第１の電圧値Ｖｚａに設定される（ステップＳ２３８−１）。  
ベリファイフェイル数が、ある設定値ＮＡより大きい場合、スロープログラムのためのビット線ＢＬの電位は、第２の電圧値Ｖｚｂに設定される（ステップＳ２３８−２）。第２の電圧値Ｖｚｂは、第１の電圧値Ｖｚａより低い。
【０３６６】
例えば、第１の電圧値Ｖｚａは、例えば、０．２５Ｖから０．３５Ｖの範囲内の電圧値であり、第２の電圧値Ｖｚｂは、０．１５Ｖから０．２Ｖの範囲内の電圧値である。  
第２の電圧値（例えば、０．２Ｖ）Ｖｚｂに設定されたビット線のメモリセルにおけるワード線とチャネルとの電位差は、第１の電圧値（例えば、０．３Ｖ）Ｖｚａに設定されたビット線のメモリセルにおけるワード線とチャネルとの電位差より大きくなる。
【０３６７】
この結果として、第２の電圧値Ｖｚｂに設定されたビット線ＢＬ−Ａのメモリセル（電荷蓄積層）内に注入される電荷量は、第１の電圧値Ｖｚａに設定されたビット線ＢＬ−Ａのメモリセル内に注入される電荷量より多くなる。
【０３６８】
このように、本例において、ベリファイフェイル数が設定値ＮＡ以上である場合、ベリファイフェイル数が設定値ＮＡより小さい場合よりも通常プログラムのビット線の電位に近い値に設定される。
【０３６９】
ベリファイフェイル数に応じたＡステートのメモリセルに対するスロープログラムの後、スロープログラムに対するベリファイ無しに、Ａステートのメモリセルの再プログラム動作は、終了する。但し、Ｂ及びＣステートのプログラムは、継続される。Ｂ及びＣステートのメモリセルに対しても、図３２に示される処理が実行される。
【０３７０】
経時変化によるベリファイフェイル数が多数存在する状態は、メモリセルアレイ内のメモリセルの特性の全体的な傾向として、メモリセルの閾値電圧が低下しやすい（電荷が電荷蓄積層から脱離しやすい）ことを示している。
【０３７１】
本実施形態のように、経時的な閾値電圧の低下（電荷蓄積層からの電荷の脱離）を考慮して、注入される電荷量をあらかじめ多くすることで、閾値電圧の低下に起因したメモリセルのデータのエラーを、抑制できる。
【０３７２】
図３３は、図３２に示される本実施形態のフラッシュメモリの動作例の変形例を説明するためのフローチャートである。
【０３７３】
図３３に示されるように、ベリファイフェイル数に応じて制御されたスロープログラム（ステップＳ２３８−１Ａ，Ｓ２３８−２Ａ）の後、スロープログラムされたメモリセルに対して第２のベリファイレベルＶｄｒＡを用いたベリファイ動作が実行されてもよい。
【０３７４】
図３３のフラッシュメモリの動作例のように、スロープログラムされたメモリセルに対してプログラムベリファイが実行されることによって、本実施形態のフラッシュメモリは、データの信頼性をさらに向上できる。
【０３７５】
以上のように、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０３７６】
（２ｃ）  まとめ  
本実施形態のフラッシュメモリにおいて、複数のステートのデータの書き込みが同時に実行される動作において、あるステートのプログラム期間中に、プログラムが完了した下位ステートのメモリセルに対して、ベリファイ動作を再度実行する。
【０３７７】
これによって、本実施形態のフラッシュメモリは、書き込み動作中において、閾値電圧が所望の値から低下したメモリセルを、検出できる。
【０３７８】
本実施形態のフラッシュメモリは、あるステートのプログラム期間中に、下位のステートに関してベリファイフェイルのメモリセルに対して、再プログラムを実行する。これによって、本実施形態のフラッシュメモリは、メモリセルの閾値電圧を、所望の値に再設定できる。
【０３７９】
この結果として、本実施形態のフラッシュメモリは、メモリセルの閾値電圧の低下に起因した各ステートの閾値分布の幅の広がりを抑制でき、データの書き込み期間中に発生するデータエラー（例えば、メモリセルの閾値電圧の低下に起因するデータエラー）を、低減できる。
【０３８０】
以上のように、本実施形態のメモリデバイス及びメモリシステムは、データの信頼性を改善できる。
【０３８１】
（３）  第３の実施形態  
図３４乃至図４０を参照して、第３の実施形態のメモリデバイスについて、説明する。
【０３８２】
本実施形態のメモリデバイス（例えば、ＮＡＮＤ型フラッシュメモリ）において、書き込み動作時、複数のワード線が同時に活性化され、複数のワード線のそれぞれに接続されたメモリセルに対して、データの書き込みが並行して実行される。
【０３８３】
例えば、選択された２本のワード線に対して、プログラム電圧がそれぞれ異なるタイミングで印加される。一方のワード線にプログラム電圧が印加された後に、他方のワード線にプログラム電圧が印加される。プログラム電圧が他方のワード線に印加された後において、ベリファイ電圧が、一方のワード線に印加される。この後、他方のワード線にベリファイ電圧が印加される。
【０３８４】
これによって、本実施形態のフラッシュメモリ（及びメモリシステム）は、データの書き込みに関する動作時間の圧迫無しに、あるワード線に接続されるメモリセルに対するプログラム動作とベリファイ動作との間において、ある期間を確保できる。
【０３８５】
この結果として、本実施形態のフラッシュメモリは、データの書き込み動作中にメモリセルの閾値電圧が意図せずに変化する不良を検知でき、検知された不良を訂正できる。
【０３８６】
したがって、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０３８７】
尚、本実施形態において、一方のワード線ＷＬｋに接続されたメモリセルと他方のワード線ＷＬｈに接続されたメモリセルとに対して並列にデータの書き込みを実行するために、各センスアンプユニット１３１は、一方のワード線ＷＬｋのメモリセルに書き込むべきデータを保持する１以上のラッチ回路ＤＬ１，ＤＬ２と、他方のワード線ＷＬｈのメモリセルに書き込むべきデータを保持する１以上のラッチ回路ＤＬ１，ＤＬ２とを、含む。
【０３８８】
以下において、本実施形態のフラッシュメモリ及びメモリシステムについて、より具体的に説明する。
【０３８９】
（３ａ−１）  第１の例  
図３４及び図３５を用いて、本実施形態のメモリデバイスの動作例の第１の例について説明する。図３４は、本実施形態のメモリデバイスの動作例の第１の例を説明するためのフローチャートである。図３５は、本実施形態のフラッシュメモリの書き込み動作時における各配線の電圧波形（横軸：時間、縦軸：電位）を模式的に示すタイミングチャートである。
【０３９０】
フラッシュメモリ１は、メモリコントローラ５からのコマンド、選択アドレス及び書き込むべきデータを、受信する。例えば、コマンドは、フラッシュメモリ１が実行すべき動作が、２つのワード線にそれぞれ接続されたメモリセルに対してデータの書き込みを並列に実行することを示す信号を含む。例えば、選択アドレスは、２つのワード線ＷＬｋ，ＷＬｈに割り付けられたアドレスを含む。データは、２つのワード線ＷＬｋ，ＷＬｈのメモリセルのそれぞれに書き込むべきデータを含む。
【０３９１】
図３４及び図３５に示されるように、シーケンサ１９は、メモリコントローラ５からのコマンド及びアドレスに基づいて、複数（ここでは、２つ）のワード線ＷＬｋ，ＷＬｈ（例えば、ｈ＝ｋ＋１）を選択ワード線として同時に活性化する（ステップＳ３０）。尚、同時に活性化される２本の選択ワード線ＷＬｋ，ＷＬｈは、メモリセルアレイ（ブロック）内において互いに隣り合うワード線でもよいし、隣り合わないワード線でもよい。
【０３９２】
シーケンサ１９は、２つのワード線ＷＬｋ，ＷＬｈを選択し、１回目の書き込みループＬＰＷ＜１＞（ＬＰＷ＜ｉ＞）を実行する。本実施形態において、１つの書き込みループは、一方のワード線ＷＬｋに対するプログラム動作及びベリファイ動作と、他方のワード線ＷＬｈに対するプログラム動作及びベリファイ動作とを、含む。
【０３９３】
メモリセルＭＣに書き込むべきデータに応じて、ビット線ＢＬの電位が制御される。また、セレクトゲート線ＳＧＤに、電圧ＶＳＧＤが印加される。  
時刻ｔ３１において、シーケンサ１９は、プログラム電圧ＶＰＧＭｋを、一方の選択ワード線ＷＬｋに印加する（ステップＳ３１）。これによって、一方の選択ワード線ＷＬｋに接続されたメモリセルに対して、プログラム動作が実行される。シーケンサ１９は、プログラム電圧ＶＰＧＭｋが選択ワード線ＷＬｋに印加されている期間において、非選択電圧Ｖｐａｓｓを、他方の選択ワード線ＷＬｈ及び非選択ワード線ｕｎｓｅｌＷＬに印加する。
【０３９４】
時刻ｔ３２において、一方のワード線ＷＬｋにベリファイ電圧が印加される前に、シーケンサ１９は、プログラム電圧ＶＰＧＭｈを、他方の選択ワード線ＷＬｈに印加する（ステップＳ３２）。これによって、選択ワード線ＷＬｈに接続されたメモリセルに対して、プログラム動作が実行される。この時、シーケンサ１９は、書き込みパス電圧Ｖｐａｓｓを、選択ワード線ＷＬｋ及び非選択ワード線ｕｎｓｅｌＷＬに印加する。
【０３９５】
プログラム電圧ＶＰＧＭｈが他方のワード線ＷＬｈ印加された後（書き込みパス電圧Ｖｐａｓｓが選択ワード線ＷＬｋに印加された後）、時刻ｔ３３において、シーケンサ１９は、ベリファイ電圧Ｖｖｆｙｋを、一方の選択ワード線ＷＬｋに印加する（ステップＳ３３）。これによって、ベリファイ動作が、選択ワード線ＷＬｋに接続されたメモリセルに対して実行される。この時、シーケンサ１９は、読み出しパス電圧ＶＲＥＡＤを、他方の選択ワード線ＷＬｈ及び非選択ワード線ｕｎｓｅｌＷＬに印加する。
【０３９６】
一方の選択ワード線ＷＬｋに対するベリファイ電圧Ｖｖｆｙｋの印加の後、時刻ｔ３４において、シーケンサ１９は、ベリファイ電圧Ｖｖｆｙｈが、他方のワード線ＷＬｈに印加する（ステップＳ３４）。これによって、ベリファイ動作が、選択ワード線ＷＬｈに接続されたメモリセルに対して実行される。シーケンサ１９は、読み出しパス電圧ＶＲＥＡＤが、一方の選択ワード線ＷＬｋ及び非選択ワード線ｕｎｓｅｌＷＬに印加する。
【０３９７】
シーケンサ１９は、各選択ワード線ＷＬｋ，ＷＬｈに接続されたメモリセルに関して、ベリファイ動作の結果に基づいて、メモリセルが、ベリファイパスであるか、ベリファイフェイルであるか、判定する（ステップＳ３５）。
【０３９８】
各選択ワード線ＷＬｋ，ＷＬｈにおいて、プログラム動作からある期間Ｔｚが経過した後、ベリファイ動作が実行される。１つの書き込みループ内において、選択ワード線ＷＬのメモリセルに対するプログラム電圧ＶＰＧＭｋ（ＶＰＧＭｈ）の印加とベリファイ電圧Ｖｖｆｙｋ（Ｖｖｆｙｈ）の印加と間の期間Ｔｚにおいて、非選択電圧Ｖｐａｓｓが、選択ワード線ＷＬｋ（ＷＬｈ）に印加される。選択ワード線ＷＬｋに関して、期間Ｔｚは、非選択電圧の印加期間を挟んで、プログラム電圧ＶＰＧＭｋの立ち下りの時刻ｔｙｋからベリファイ電圧Ｖｖｆｙｋの立ち上りの時刻ｔ３３までの期間に相当する。選択ワード線ＷＬｋに関して、期間Ｔｚは、プログラム電圧ＶＰＧＭｋの立ち下りの時刻ｔｙｈからベリファイ電圧Ｖｖｆｙｋの立ち上りの時刻ｔ３４までの期間に相当する。
【０３９９】
ベリファイ動作の結果に基づいて、ベリファイフェイルのメモリセルが存在する場合、シーケンサ１９は、１回目の書き込みループＬＰＷ＜１＞に続いて、２回目の書き込みループＬＰＷ＜２＞（ＬＰＷ＜ｉ＋１＞）を実行する。ベリファイ動作の結果に基づいて、ビット線ＢＬの電位が制御される。
【０４００】
２回目の書き込みループＬＰＷ＜２＞において、１回目の書き込みループＬＰＷ＜１＞と同様に、プログラム電圧ＶＰＧＭｈが、選択ワード線ＷＬｋに印加された後、プログラム電圧ＶＰＧＭｈが選択ワード線ＷＬｈに印加される。  
各ワード線ＷＬｋ，ＷＬｈのメモリセルに対するプログラム動作の後、ベリファイ電圧Ｖｖｆｙｋが、選択ワード線ＷＬｋに印加される。選択ワード線ＷＬｋのメモリセルに対するベリファイ動作の後、ベリファイ電圧Ｖｖｆｙｈが、選択ワード線ＷＬｈに印加される。
【０４０１】
このように、データの書き込みのシーケンスにおいて、データを書き込むべきメモリセルがベリファイにパスするまで、複数の書き込みループＬＰＷ＜３＞（ＬＰＷ＜ｉ＋２＞），ＬＰＷ＜４＞（ＬＰＷ＜ｉ＋３＞），・・・が実行され、選択ワード線ＷＬｋのメモリセルに対するプログラム動作と選択ワード線ＷＬｈのメモリセルに対するプログラム動作とが、交互に実行される。
【０４０２】
尚、一度のベリファイにパスしたメモリセルに対して、再度ベリファイ動作が実行されてもよい。本実施形態においても、２つのベリファイ動作間に、期間Ｔｘが確保されている。再度のベリファイ動作において、メモリセルがベリファイフェイルした場合、電圧Ｖｚが、そのメモリセルに接続されたビット線Ｖｚが印加され、そのメモリセルに対するプログラム動作（例えば、スロープログラム）が実行される。
【０４０３】
本例のように、一方のワード線ＷＬｋに対するプログラム電圧ＶＰＧＭｋの印加とベリファイ電圧Ｖｖｆｙｋの印加との間に、他方のワード線ＷＬｈに対するプログラム電圧ＶＰＧＭｈの印加のための期間が確保されている。
【０４０４】
このため、１つの書き込みループ内において、ある選択ワード線に対するプログラム動作とベリファイ動作との間の期間を長期化できる。それゆえ、本実施形態のフラッシュメモリは、メモリセルの閾値電圧がある値に収束するまでの期間が経過してから、メモリセルの閾値電圧を検証できる。
【０４０５】
これによって、本例において、本実施形態のフラッシュメモリは、データの書き込み中に生じる電荷蓄積層内の電荷の移動（例えば、電荷蓄積層からの電荷の脱離）に起因したメモリセルの閾値電圧の変化を、ベリファイ動作によって検知できる。
【０４０６】
それゆえ、本実施形態のフラッシュメモリは、閾値電圧の低下したメモリセルの検知を、比較的良い精度で、検知できる。
【０４０７】
本実施形態のフラッシュメモリは、２本のワード線を同時に選択し、各ワード線のメモリセルに対して並列にデータの書き込みを実行する。これによって、本実施形態のフラッシュメモリは、プログラム動作とベリファイ動作との間に比較的長い時間が設定されていても、動作時間の圧迫なし、及び、２つのワード線ＷＬのメモリセルに対するデータの書き込みのための全体的な長さの長期化なしに、データの書き込みを実行できる。
【０４０８】
以上のように、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０４０９】
（３ａ−２）  第２の例  
図３６を用いて、本実施形態のフラッシュメモリの動作例の第２の例について、説明する。図３６は、本実施形態のフラッシュメモリの動作例の第２の例を説明するためのタイミングチャートである。
【０４１０】
本例のように、選択された２つのワード線ＷＬｋ，ＷＬｈ間におけるプログラム動作及びベリファイ動作の順序は、データの書き込みの途中で、入れ替わってもよい。
【０４１１】
図３６に示されるように、ｉ回目の書き込みループＬＰＷ＜ｉ＞（例えば、ｉ＝１）において、プログラム電圧ＶＰＧＭｋが、選択ワード線ＷＬｋに印加された後、プログラム電圧ＶＰＧＭｈが、選択ワード線ＷＬｈに印加される。ベリファイ電圧Ｖｖｆｙｋが、選択ワード線ＷＬｋに印加された後、ベリファイ電圧Ｖｖｆｙｈが、選択ワード線ＷＬｈに印加される。
【０４１２】
ｉ回目の書き込みループＬＰＷ＜ｉ＞の後、（ｉ＋１）回目の書き込みループＬＰＷ＜ｉ＋２＞が実行される。ここで、選択ワード線ＷＬｋと選択ワード線ＷＬｈとの間で、プログラム動作の順序が、入れ替えられる。  
（ｉ＋１）回目の書き込みループＬＰＷ＜ｉ＋１＞において、時刻ｔ４１において、プログラム電圧ＶＰＧＭｈが、選択ワード線ＷＬｈに印加され、書き込みパス電圧Ｖｐａｓｓが、選択ワード線ＷＬｋに印加される。この後、時刻ｔ４２において、プログラム電圧ＶＰＧＭｋが、選択ワード線ＷＬｋに印加され、書き込みパス電圧Ｖｐａｓｓが、選択ワード線ＷＬｋに印加される。
【０４１３】
この後、時刻ｔ４３において、ベリファイ電圧Ｖｖｆｙｈが、選択ワード線ＷＬｈに印加される。ベリファイ電圧Ｖｖｆｙｈの印加の後、時刻ｔ４４において、ベリファイ電圧Ｖｖｆｙｋが、選択ワード線ＷＬｋに印加される。
【０４１４】
例えば、選択ワード線ＷＬｋに関して、書き込みループＬＰ＜ｉ＞のベリファイ動作と書き込みループＬＰ＜ｉ＋１＞のベリファイ動作において、期間Ｔｘ１が設定されている。例えば、選択ワード線ＷＬｈに関して、書き込みループＬＰ＜ｉ＞のベリファイ動作と書き込みループＬＰ＜ｉ＋１＞のベリファイ動作において、期間Ｔｘ２が設定されている。期間Ｔｘ１は、期間Ｔｘ２より長い。
【０４１５】
（ｉ＋１）回目の書き込みループＬＰＷ＜ｉ＋１＞の後、（ｉ＋２）回目の書き込みループＬＰＷ＜ｉ＋２＞が実行される。（ｉ＋２）回目の書き込みループＬＰＷ＜ｉ＋２＞において、ｉ回目の書き込みループＬＰＷ＜ｉ＞と同じ順序で、選択ワード線ＷＬｋ，ＷＬｈに対する動作が、実行される。  
（ｉ＋２）回目の書き込みループＬＰＷ＜ｉ＋２＞において、プログラム電圧ＶＰＧＭｋが、選択ワード線ＷＬｋに印加された後、プログラム電圧ＶＰＧＭｈが、選択ワード線ＷＬｈに印加される。ベリファイ電圧Ｖｖｆｙｋが、選択ワード線ＷＬｋに印加された後、ベリファイ電圧Ｖｖｆｙｈが、選択ワード線ＷＬｈに印加される。
【０４１６】
（ｉ＋２）回目の書き込みループＬＰＷ＜ｉ＋２＞の後、（ｉ＋３）回目の書き込みループＬＰＷ＜ｉ＋３＞が実行される。（ｉ＋３）回目の書き込みループＬＰＷ＜ｉ＋３＞において、（ｉ＋１）回目の書き込みループＬＰＷ＜ｉ＋１＞の書き込みループと同じの順序で、選択ワード線ＷＬｋ，ＷＬｈに対するプログラム動作及びベリファイ動作が、実行される。
【０４１７】
このように、選択ワード線（例えば、奇数番目のワード線）ＷＬｋのプログラム動作から開始される書き込みループ（例えば、奇数回目の書き込みループ）と、選択ワード線（例えば、偶数番目のワード線）のプログラム動作から開始される書き込みループ（例えば、偶数番目の書き込みループ）とが、交互に実行される。
【０４１８】
例えば、フラッシュメモリのデータの書き込みにおいて、メモリセルに書き込むべきデータに応じて、プログラム電圧ＶＰＧＭｋ，ＶＰＧＭｈのパルス幅、及び、ベリファイ電圧Ｖｖｆｙｋ，Ｖｖｆｙｈのパルス幅は、異なる。
【０４１９】
本例において、選択ワード線ＷＬｋのメモリセルに対するプログラム動作と選択ワード線ＷＬｈのメモリセルに対するプログラム動作の順序が、書き込みループごとに入れ替わる。
【０４２０】
これによって、本実施形態のフラッシュメモリは、２つの選択ワード線ＷＬｋ，ＷＬｈに印加される電圧のパルス幅が異なっていた場合、プログラム動作とベリファイ動作のとの間の期間の長さの違いが、２つの選択ワード線ＷＬｋ，ＷＬｈで生じていたとしても、プログラム動作とベリファイ動作との間の動作期間の違いを、平準化できる。
【０４２１】
（３ａ−３）  第３の例  
図３７乃至図４０を用いて、本実施形態のフラッシュメモリの動作例の第３の例について、説明する。
【０４２２】
フラッシュメモリに、pass write方式とよばれる書き込み方式が、適用される場合がある。Pass write方式は、foggy書き込み（粗書き）とfine書き込み（精緻書き）とを含む。
【０４２３】
Foggy書き込みは、メモリセルの閾値電圧を、書き込むべきデータに対応する値に大きなシフト量で、書きこむべきデータに対して設定されたあるレベル（例えば、ベリファイローレベル）までシフトさせる書き込みモードである。fine書き込みは、メモリセルの閾値電圧を、foggy書き込みの閾値電圧のシフト量に比較して小さなシフト量で、書き込むべきデータに対応する値までシフトさせる書き込みモードである。フラッシュメモリのデータの書き込みにおいて、Foggy書き込み（foggyモード）が実行された後、fine書き込み（fineモード）が実行される。
【０４２４】
図３７は、本実施形態のフラッシュメモリの書き込み動作時における各配線の電圧波形（横軸：時間、縦軸：電位）を模式的に示すタイミングチャートである。
【０４２５】
図３７に示されるように、２つのワード線ＷＬｋ，ＷＬｈが選択された後、選択ワード線ＷＬｋに接続されたメモリセルに対して、foggy書き込みのための１以上の書き込みループＬＰｆｇが実行される。
【０４２６】
選択ワード線ＷＬｋのメモリセルに対するfoggy書き込みの期間ＦＧＰ１において、プログラム電圧ＶＰＧＭｋが、選択ワード線ＷＬｋに印加される。プログラム電圧ＶＰＧＭｋの印加の後、ベリファイ電圧Ｖｖｆｙｋが、選択ワード線ＷＬｋに印加される。これによって、選択ワード線ＷＬｋに接続されたメモリセルが、ベリファイパスであるか否か判定される。ベリファイ電圧Ｖｖｆｙｋは、foggy書き込みのためのベリファイレベル（ベリファイローレベル）を含む。
【０４２７】
期間ＦＧＰ１において、選択ワード線ＷＬｋのメモリセルの閾値電圧が、書き込むべきデータに設定されたベリファイローレベル以上になるまで、選択ワード線ＷＬｋのメモリセルに対するfoggy書き込みの書き込みループＬＰｆｇが、繰り返し実行される。  
選択ワード線ＷＬｋのメモリセルに対するfoggy書き込みの期間ＦＧＰ１において、選択ワード線ＷＬｈのメモリセルに対するプログラム動作及びベリファイ動作は、実行されない。
【０４２８】
選択ワード線ＷＬｋのメモリセルに対するfoggy書き込みが完了した後、選択ワード線ＷＬｈに接続されたメモリセルに対して、foggy書き込みのための１以上の書き込みループＬＰｆｇが実行される。
【０４２９】
選択ワード線ＷＬｋのメモリセルに対するfoggy書き込みの期間ＦＧＰ２において、プログラム電圧ＶＰＧＭｈが、選択ワード線ＷＬｈに印加される。
【０４３０】
プログラム電圧ＶＰＧＭｈの印加の後、ベリファイ電圧Ｖｖｆｙｈが、選択ワード線ＷＬｈに印加され、選択ワード線ＷＬｈに接続されたメモリセルが、ベリファイパスであるか否か判定される。ベリファイ電圧Ｖｖｆｙｈは、foggy書き込みにおける書き込むべきデータに対応したベリファイレベル（ベリファイローベル）を含む。
る。
【０４３１】
期間ＦＧＰ２において、選択ワード線ＷＬｈのメモリセルの閾値電圧が、書き込むべきデータに設定されたベリファイローレベル以上になるまで、選択ワード線ＷＬｈのメモリセルに対するfoggy書き込みの書き込みループＬＰｆｇが、繰り返し実行される。  
選択ワード線ＷＬｈのメモリセルに対するfoggy書き込みの期間ＦＧＰ２において、選択ワード線ＷＬｋのメモリセルに対するプログラム動作及びベリファイ動作は、実行されない。
【０４３２】
このように、２つのワード線ＷＬｋ，ＷＬｈが選択された場合において、各ワード線ＷＬｋ，ＷＬｈのメモリセルに対するfoggy書き込みは、２つのワード線ＷＬｋ，ＷＬｈに対して並列に実行されない。
【０４３３】
各ワード線ＷＬｋ，ＷＬｈのメモリセルに対するfoggy書き込みの後、fine書き込みのための期間ＦＮＰにおいて、fine書き込みが２つのワード線ＷＬｋ，ＷＬｈのメモリセルに対して、並列（実質的に同時）に実行される。
【０４３４】
fine書き込みにおいて、プログラム電圧ＶＰＧＭｋ，ＶＰＧＭｈが初期値に設定され、ある電圧値のステップ電圧が、書き込みループの進行とともに、加算される。例えば、PassWrite方式の書き込み動作において、fine書き込みに用いられるステップアップ電圧の電圧値は、foggy書き込みに用いられるステップアップ電圧の電圧値より小さい。
【０４３５】
２つのワード線ＷＬｋ，ＷＬｈに対するfine書き込みにおいて、fine書き込みの１回目の書き込みループＬＰｆｎ＜１＞において、図３４及び図３５の動作例と同様に、プログラム電圧ＶＰＧＭｋが選択ワード線ＷＬｋに印加された後、且つ、ベリファイ電圧Ｖｖｆｙｋが選択ワード線ＷＬｋに印加される前に、プログラム電圧ＶＰＧＭｈが、ワード線ＷＬｈに印加される。プログラム電圧ＶＰＧＭｈが選択ワード線ＷＬｈに印加された後、ベリファイ電圧Ｖｖｆｙｋが、選択ワード線ＷＬｋに印加される。この後、ベリファイ電圧Ｖｖｆｙｈが、選択ワード線ＷＬｈに印加される。各ワード線ＷＬｋ，ＷＬｈに対するベリファイ電圧Ｖｖｆｙｋ，Ｖｖｆｙｈの印加の後、ベリファイ動作の結果に基づいて、メモリセルがベリファイパスであるか否か判定される。
【０４３６】
この書き込みループと実質的に同じ動作が、選択ワード線のそれぞれに接続されたメモリセルがベリファイにパスするまで、繰り返し実行される。
【０４３７】
尚、例えば、fine書き込みにおいて、ある電圧値Ｖｆ（０＜Ｖｆ＜ｘ）の電圧が、ビット線ＢＬに印加されてもよい。また、fine書き込み時に用いられるステップアップ電圧の電圧値は、foggy書き込み時に用いられるステップアップ電圧の電圧値より低くてもよい。
【０４３８】
図３８及び図３９は、図３７のフラッシュメモリの動作例の変形例を示している。
【０４３９】
図３８に示されるように、foggy書き込みの期間ＦＧＰ中においても、fine書き込みの期間中と同様に、選択ワード線ＷＬｋのメモリセルと選択ワード線ＷＬｈのメモリセルとに対して、並行にプログラム動作及びベリファイ動作が実行されてもよい。
【０４４０】
また、図３９に示されるように、図３６の動作例と同様に、選択ワード線ＷＬｋのメモリセルと選択ワード線ＷＬｈのメモリセルとに対する動作において、書き込みループの回数に応じて、プログラム動作及びベリファイ動作の順序が、入れ替えられてもよい。
【０４４１】
尚、図３９において、fine書き込みのみで、書き込みループの回数に応じて、選択ワード線ＷＬｋのメモリセルと選択ワード線ＷＬｈのメモリセルに対するプログラム動作（及びベリファイ動作）の順序が、入れ替えられてもよい。また、foggy書き込みのみで、書き込みループの回数に応じて、選択ワード線ＷＬｋのメモリセルと選択ワード線ＷＬｈのメモリセルに対するプログラム動作（及びベリファイ動作）の順序が、入れ替えられてもよい。
【０４４２】
以上のように、Pass write方式のようなある書き込みモードがフラッシュメモリに適用された場合であっても、複数のワード線ＷＬが同時に選択され、各ワード線のメモリセルに対して並列にデータの書き込みを実行できる。
【０４４３】
尚、本例において、フラッシュメモリの書き込みモードにPass write方式が適用された例が示されている。しかし、複数のワード線ＷＬを同時に選択可能な書き込みモードであれば、Pass write方式以外の書き込み方式が、本実施形態のフラッシュメモリに適用されてもよい。
【０４４４】
（３ａ−４）  第４の例  
図４０を用いて、本実施形態のフラッシュメモリの動作例の第４の例について、説明する。図４０は、本実施形態のフラッシュメモリの書き込み動作時における各配線の電圧波形（横軸：時間、縦軸：電位）を模式的に示すタイミングチャートである。
【０４４５】
フラッシュメモリにおいて、メモリセルアレイが、複数のストリングユニットを含む三次元構造を有する場合（図５及び図６参照）、フラッシュメモリ１は、ストリングユニットＳＵ毎に、動作を制御できる。
【０４４６】
本例において、本実施形態のフラッシュメモリは、複数のストリングユニットに対して、並列にデータの書き込みを実行する。  
例えば、本例のフラッシュメモリは、ワード線は、ストリングユニット毎に分離され、ワード線に対する電圧の印加をストリングユニット毎に互いに独立に制御できる。
【０４４７】
本例において、１つのブロックＢＫ内の４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）が、同時に選択される。そして、４つのストリングユニットＳＵにおいて、ワード線ＷＬｋが、選択される。４つのストリングユニットＳＵにおけるワード線ＷＬｋは、同じ配線層（基板表面から同じ高さに位置する層）内に配置されている。
【０４４８】
図４０に示されるように、ある書き込みループＬＰＷ＜ｉ＞（例えば、ｉ＝１）において、プログラム動作の実行のために、第１のストリングユニットＳＵ０が活性化される。この時、電圧ＶＳＧＤが、第１のドレイン側セレクトゲート線ＳＧＤ０に印加され、電圧ＶＳＳが、他のセレクトゲート線ＳＧＤ１，ＳＧＤ２，ＳＧＤ３に印加される。電圧ＶＳＳが、ソース側セレクトゲート線ＳＧＳに、印加される。
【０４４９】
時刻ｔ５１において、プログラム電圧ＶＰＧＭが、第１のストリングユニットＳＵ０のワード線ＷＬｋに印加される。書き込みパス電圧Ｖｐａｓｓが、第１のストリングユニットＳＵ０の他のワード線ｕｎｓｅｌＷＬに印加される。これによって、第１のストリングユニットＳＵ０において、プログラム動作が、ワード線ＷＬｋのメモリセルに対して実行される。
【０４５０】
他のストリングユニットＳＵ１，ＳＵ２，ＳＵ３のワード線ＷＬｋにおいて、電圧Ｖｓｓ（又は電圧Ｖｐａｓｓ）が、印加される。また、ストリングユニットＳＵ１，ＳＵ２，ＳＵ３の非選択ワード線ｕｎｓｅｌＷＬにおいて、電圧ＶＳＳ（又は電圧Ｖｐａｓｓ）が、印加される。
【０４５１】
第１のストリングユニットＳＵ０の選択ワード線ＷＬｋにベリファイ電圧が印加される前に、電圧ＶＳＧＤが、第２のドレイン側セレクトゲート線ＳＧＤ１に印加され、第２のストリングユニットが活性化される。電圧ＶＳＳが、他のセレクトゲート線ＳＧＤ０，ＳＧＤ２，ＳＧＤ３に印加される。
【０４５２】
時刻ｔ５２において、プログラム電圧ＶＰＧＭが、第２のストリングユニットＳＵ１のワード線ＷＬｋに印加される。書き込みパス電圧Ｖｐａｓｓが、第２のストリングユニットＳＵ１の他のワード線ｕｎｓｅｌＷＬに印加される。これによって、第２のストリングユニットＳＵ１において、プログラム動作が、ワード線ＷＬｋのメモリセルに対して実行される。
【０４５３】
他のストリングユニットＳＵ１，ＳＵ２，ＳＵ３において、電圧ＶＳＳ（又は電圧Ｖｐａｓｓ）が、ワード線ＷＬｋに印加され、電圧ＶＳＳ（又は電圧Ｖｐａｓｓ）が、非選択ワード線ＷＬｋに印加される。
【０４５４】
第３及び第４のストリングユニットＳＵ２，ＳＵ３においても、第１及び第２のストリングユニットＳＵ０，ＳＵ１と同様に、互いに異なる時刻において、ドレイン側セレクトゲート線ＳＧＤ２、ＳＧＤ３に対する電圧ＶＳＧ１の印加によって、ストリングユニットＳＵ２，ＳＵ３が活性化される。そして、時刻ｔ５３，ｔ５４において、プログラム電圧ＶＰＧＭが、各ストリングユニットＳＵ２，ＳＵ３のワード線ＷＬｋにそれぞれ印加される。このように、第３及び第４のストリングユニットＳＵ２，ＳＵ３において、プログラム動作が、ワード線ＷＬｋのメモリセルに対して実行される。
【０４５５】
各ストリングユニットＳＵのワード線ＷＬｋに対するプログラム電圧ＶＰＧＭｋの印加の後、各ストリングユニットＳＵのワード線ＷＬｋのメモリセルに対するベリファイ動作が実行される。
【０４５６】
電圧ＶＳＧが、第１のドレイン側セレクトゲート線ＳＧＤ０に印加され、第１のストリングユニットＳＵ０が活性化される。電圧ＶＳＳが、他のセレクトゲート線ＳＧＤ１，ＳＧＤ２，ＳＧＤ３に印加される。電圧ＶＳＧが、ソース側セレクトゲート線ＳＧＳに、印加される。
【０４５７】
時刻ｔ５５において、ベリファイ電圧Ｖｖｆｙが、第１のストリングユニットＳＵ０のワード線ＷＬｋに印加される。読み出しパス電圧ＶＲＥＡＤが、第１のストリングユニットＳＵ０の他のワード線ｕｎｓｅｌＷＬに印加される。これによって、第１のストリングユニットＳＵ０において、ベリファイ動作が、ワード線ＷＬｋのメモリセルに対して実行される。
【０４５８】
他のストリングユニットＳＵ１，ＳＵ２，ＳＵ３のワード線ＷＬｋにおいて、電圧Ｖｓｓ（又は電圧ＶＲＥＡＤ）が、印加される。また、ストリングユニットＳＵ１，ＳＵ２，ＳＵ３の非選択ワード線ＷＬｋにおいて、電圧ＶＳＳ（又は電圧ＶＲＥＡＤ）が、印加される。
【０４５９】
第１のストリングユニットＳＵ０の選択ワード線ＷＬｋにベリファイ電圧が印加された後、電圧ＶＳＧ１が、第２のドレイン側セレクトゲート線ＳＧＤ１に印加され、第２のストリングユニットＳＵが活性化される。電圧ＶＳＳが、他のセレクトゲート線ＳＧＤ０，ＳＧＤ２，ＳＧＤ３に印加される。
【０４６０】
時刻ｔ５６において、ベリファイ電圧Ｖｖｆｙが、第２のストリングユニットＳＵ１のワード線ＷＬｋに印加される。読み出しパス電圧ＶＲＥＡＤが、第２のストリングユニットＳＵ１の他のワード線ｕｎｓｅｌＷＬに印加される。これによって、第２のストリングユニットＳＵ１において、ベリファイ動作が、ワード線ＷＬｋのメモリセルに対して実行される。
【０４６１】
他のストリングユニットＳＵ１，ＳＵ２，ＳＵ３において、電圧Ｖｓｓ（又は電圧ＶＲＥＡＤ）が、ワード線ＷＬｋに印加され、電圧ＶＳＳ（又は電圧ＶＲＥＡＤ）が、非選択ワード線ｕｎｓｅｌＷＬに印加される。
【０４６２】
第３及び第４のストリングユニットＳＵ２，ＳＵ３においても、第１及び第２のストリングユニットＳＵ０，ＳＵ１と同様に、互いに異なる時刻において、ドレイン側セレクトゲート線ＳＧＤ２、ＳＧＤ３に対する電圧ＶＳＧ２の印加によって、ストリングユニットＳＵ２，ＳＵ３が活性化される。そして、各時刻ｔ５７，ｔ５８において、ベリファイ電圧Ｖｖｆｙが、ワード線ＷＬｋに印加される。このように、第３及び第４のストリングユニットＳＵ２，ＳＵ３において、ベリファイ動作が、ワード線ＷＬｋのメモリセルに対して実行される。
【０４６３】
各ワード線のメモリセルがベリファイにパスするまで、書き込みループＬＰＷ＜ｉ＋１＞，ＬＰＷ＜ｉ＋２＞が繰り返し実行される。
【０４６４】
尚、本例において、各ストリングユニットＳＵにおいて、同じ配線層内のワード線が選択されている。但し、本例において、異なる配線層内のワード線が、選択されてもよい。
【０４６５】
以上のように、本例のフラッシュメモリにおいて、複数のストリングユニットに対して、メモリセルに対するデータの書き込みが並列に実行される場合においても、プログラム動作とベリファイ動作との間に、ある期間Ｔｘを確保できる。
【０４６６】
本例において、本実施形態のフラッシュメモリは、複数のストリングユニットにおけるプログラム動作が完了してから、各ストリングユニットのベリファイ動作が実行する。これによって、あるストリングユニットにおいて、選択ワード線に対するプログラム電圧の印加からベリファイ電圧の印加までの期間を、長くできる。
【０４６７】
この結果として、メモリセルの電荷蓄積層内の電荷の移動が安定化するまでの期間を、長期化できる。それゆえ、本実施形態のフラッシュメモリは、プログラムが完了したメモリセルの閾値電圧がある値に収束してから、そのメモリセルの閾値電圧の状態を、ベリファイできる。
【０４６８】
したがって、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０４６９】
（３ｂ）  まとめ  
本実施形態のフラッシュメモリは、書き込み動作時において、複数のワード線を同時に選択し、各ワード線に接続されたメモリセルに対して並行して、データのプログラムを実行する。
【０４７０】
本実施形態のフラッシュメモリは、複数のワード線に対するデータの書き込みのための期間を圧迫すること無しに、プログラム動作とベリファイ動作との間に、ある期間を確保できる。
【０４７１】
この結果として、本実施形態のフラッシュメモリは、プログラム動作後にメモリセルの閾値電圧がある値に収束するまでの期間が確保された後に、メモリセルの閾値電圧を検証できる。
【０４７２】
この結果として、本実施形態のフラッシュメモリは、書き込み動作中に閾値電圧が変動したメモリセルを、比較的精度よく検知できる。本実施形態のフラッシュメモリは、閾値電圧が書き込むべきデータに対応する値より低下したメモリセルに対して再プログラム動作を実行することによって、メモリセル内に発生する可能性のあるデータのエラーを、削減できる。
【０４７３】
したがって、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０４７４】
（４）  変形例  
図４１乃至図４４を参照して、実施形態のフラッシュメモリの変形例について説明する。
【０４７５】
（４ａ）  第１の例  
図４１及び図４２を参照して、実施形態のフラッシュメモリの変形例の第１の例を説明する。図４１は、実施形態のフラッシュメモリの変形例を説明するためのフローチャートである。図４２は、実施形態のフラッシュメモリの変形例を説明するためのタイミングチャートである。図４２において、書き込み動作時におけるフラッシュメモリの各配線の電圧波形（横軸：時間、縦軸：電位）が模式的に示されている。
【０４７６】
図４１及び図４２に示されるように、フラッシュメモリのデータの書き込みが開始される（ステップＳ６０）。
【０４７７】
メモリセルに対して、プログラム動作が実行される（ステップＳ６１）。このプログラム動作時において、通常モードのプログラムの実行のために、ビット線ＢＬの電位は、グランド電圧ＶＳＳに設定されている。
【０４７８】
プログラム動作の後、ベリファイ動作が実行される（ステップＳ６２，Ｓ６３）。このベリファイ動作において、ベリファイローレベルとベリファイファイレベルの２つのレベルに関して、メモリセルの閾値電圧が、ベリファイされる。
【０４７９】
例えば、ｉ回目の書き込みループＬＰ＜ｉ＞において、ベリファイローレベルに関して、メモリセルがベリファイフェイルである場合（ステップＳ６２のＮｏ）、通常モードのプログラム動作が、メモリセルに対して実行される。
【０４８０】
メモリセルがベリファイローレベルでパスしたメモリセルにおいてそのメモリセルに対するベリファイハイレベルに関するベリファイ結果が、パスである場合（ステップＳ６３のＹｅｓ）、そのメモリセルに対するデータのプログラムは、完了する。
【０４８１】
メモリセルがベリファイローレベルでパスしたメモリセルにおいてそのメモリセルに対するベリファイハイレベルに関するベリファイ結果が、フェイルである場合（ステップＳ６３のＮｏ）、（ｉ＋１）回目の書き込みループＬＰ＜ｉ＋１＞において、そのメモリセル（例えば、ビット線ＢＬｙ，ＢＬｚに接続されたメモリセル）は、プログラム禁止状態に設定される（ステップＳ６４）。メモリセルをプログラム禁止状態に設定するために、電圧Ｖｘが、ビット線ＢＬｙ，ＢＬｚに印加される。
【０４８２】
プログラム禁止状態に設定されたメモリセルに対して、ベリファイローレベル及びベリファイハイレベルに関するベリファイ動作が、実行される（ステップＳ６５，Ｓ６６）。
【０４８３】
ここで、メモリセルの閾値電圧の変動に関する不良として、メモリセルの閾値電圧が意図せずに低下する不良に加えて、メモリセルの閾値電圧が意図せずに上昇する不良が存在する。  
この閾値電圧の意図しない上昇によって、ベリファイローレベルでのベリファイにパスしたメモリセルがプログラム動作時にプログラム禁止状態に設定されていたとしても、そのメモリセルが、ベリファイハイレベルにおいて、パスすることもある。
【０４８４】
メモリセルが、ベリファイローレベル及びベリファイハイレベルに関するベリファイにパスした場合（ステップＳ６６のＹｅｓ）、そのメモリセルは、プログラム完了と判定される。
【０４８５】
メモリセルが、ベリファイハイレベルに関するベリファイにフェイルした場合（ステップＳ６６のＮｏ）、そのメモリセルに対して、ベリファイ動作後のプログラム動作（次の書き込みループＬＰ＜ｉ＋２＞のプログラム動作）において、データのプログラムが実行される。
【０４８６】
この場合、電圧Ｖｚが、ベリファイハイレベルに関してフェイルのメモリセルに接続されたビット線に印加される。これによって、書き込みループＬＰ＜ｉ＋２＞のプログラム動作において、スロープログラムが、メモリセルに対して実行される（ステップＳ６７）。
【０４８７】
これによって、メモリセルに対するデータのプログラムが完了する。
【０４８８】
尚、ベリファイ動作が、スロープログラムされたメモリセルに対して実行され、ベリファイハイレベルに関して、パスであるか否か判定されてもよい。上述の他の例と同様に、メモリセルがベリファイファイレベルに関してパスするまで、プログラム動作及びベリファイ動作が繰り返し実行される。
【０４８９】
上述のように、ステップＳ６５において、メモリセルの閾値電圧が、ベリファイローレベルより小さくなる場合もある。この場合、ベリファイローレベルに関してベリファイフェイルのメモリセルに対して、通常モードのプログラム（ステップＳ６１）が再度実行される。
【０４９０】
メモリセルの閾値電圧が意図せずに上昇した場合、そのメモリセルに対する通常モードのプログラムモードによって、オーバープログラムがメモリセルに生じる可能性がある。
【０４９１】
本例のように、本実施形態のフラッシュメモリは、ベリファイローレベルに関してパスし、且つ、ベリファイハイレベルに関してフェイルしたメモリセルを、一度プログラム禁止状態に設定した後、そのメモリセルの閾値電圧をベリファイハイレベルに関してベリファイする。
【０４９２】
これによって、本実施形態のフラッシュメモリは、意図しない閾値電圧の上昇が発生したメモリセルを、検知できる。
【０４９３】
この結果として、本実施形態のフラッシュメモリは、メモリセルのオーバープログラムを抑制できる。
【０４９４】
したがって、本変形例における本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０４９５】
（４ｂ）  第２の例  
図４３を参照して、実施形態のフラッシュメモリの変形例の第１の例を説明する。図４３は、本実施形態のフラッシュメモリの動作例の第５の例を説明するためのフローチャートである。
【０４９６】
図４３に示されるように、選択ワード線に接続されたメモリセルに対するデータの書き込み動作が、開始される（ステップＳ７０）。
【０４９７】
シーケンサ１９は、選択ワード線に接続されたメモリセルに対して、プログラム動作を実行する（ステップＳ７１）。これによって、あるメモリセルの閾値電圧が、書き込むべきデータに対応する電圧値に、シフトされる。
【０４９８】
プログラム動作の後、シーケンサ１９は、ベリファイ動作を実行し（ステップＳ７２）、あるメモリセルがベリファイパスであるか否か判定する（ステップＳ７３）。メモリセルがベリファイフェイルである場合、シーケンサ１９は、そのメモリセルに対して、プログラム動作を再度実行する。
【０４９９】
メモリセルがベリファイパスである場合、シーケンサ１９は、そのメモリセルを、プログラム禁止状態に設定する（ステップＳ７４）。
【０５００】
シーケンサ１９は、メモリセルがベリファイパスした後における選択ワード線に対するプログラム電圧の印加回数（又は、実行された書き込みループの回数）を、カウントする（ステップＳ７５）。  
シーケンサ１９は、プログラム電圧の印加の回数が、設定値ＮＺを超えているか否か判定する（ステップＳ７６）。
【０５０１】
プログラム電圧の印加回数が、設定値ＮＺ以下である場合（ステップＳ７６のＮｏの場合）、シーケンサ１９は、次の書き込みループにおいて、そのメモリセルを、プログラム禁止状態に設定する。  
プログラム電圧の印加回数が、設定値ＮＺを超えている場合（ステップＳ７６のＹｅｓの場合）、シーケンサ１９は、プログラムベリファイを、ベリファイパスの結果に基づいてプログラム禁止状態に設定されたメモリセルに対して、実行する（ステップＳ７７）。ステップＳ７７のベリファイ動作において、例えば、プログラムベリファイに用いられるベリファイレベルは、書き込むべきデータに対応したベリファイレベル（図５参照）である。但し、書き込むべきデータに対応する閾値分布の下限値より低い電圧値（ベリファイハイレベルと読み出しレベルとの間の電圧値）が、ベリファイレベルとして用いられてもよい。
【０５０２】
ベリファイ動作の結果に基づいて、ベリファイパスしてからある期間後のメモリセルが、ベリファイパスであるか否か判定される（ステップＳ７８）。
【０５０３】
プログラムベリファイの結果が、パスである場合、そのメモリセルに対するデータのプログラムは完了する（ステップＳ７９）。
【０５０４】
プログラムベリファイの結果がフェイルである場合、次の書き込みループにおいて、そのメモリセルに対してスロープログラム（又は通常モードのプログラム）が実行される（ステップＳ８０）。スロープログラムの後、そのメモリセルに対するデータのプログラムは、完了する。尚、スロープログラムされたメモリセルに対して、再度ベリファイが実行され、ベリファイがパスするまで、スロープログラムとベリファイとが繰り返し実行されてもよい。
【０５０５】
このように、本例において、ベリファイパスしてからある回数ＮＺのプログラム電圧の印加後のメモリセルの閾値電圧が、ベリファイされる。
【０５０６】
これによって、本実施形態のフラッシュメモリは、あるメモリセルに関してベリファイパスしてから再度ベリファイされるまでの期間を制御でき、その期間を、比較的長く確保できる。
【０５０７】
これによって、本実施形態のフラッシュメモリは、ベリファイパスした後に発生する可能性があるメモリセルの閾値電圧の変化の検知の信頼性を向上できる。
【０５０８】
したがって、本実施形態のフラッシュメモリは、データの信頼性を向上できる。
【０５０９】
（４ｃ）  第３の例  
図４４を参照して、実施形態のフラッシュメモリの変形例の第３の例を説明する。図４４は、本実施形態のフラッシュメモリにおけるセンスアンプユニットの回路構成の変形例を示す等価回路図である。
【０５１０】
図４４に示されるように、センスアンプユニット１３１Ａは、電圧Ｖｙが印加された端子を有する。電圧Ｖｙは、例えば、プログラム動作時においてメモリセルをプログラム禁止状態に設定するための電圧Ｖｘ（Ｖｘ＞Ｖｚ）以上の電圧値を有する。
【０５１１】
センスアンプユニット１３１Ａ（又はシーケンサ１９）は、ビット線ＢＬに供給すべき電圧に応じて、制御信号ＢＬＣの信号レベル（電圧値）を制御する。これによって、センスアンプユニット１３１Ａは、トランジスタＴｒ２のゲートに供給される信号レベルに応じて、トランジスタＴｒ２の出力電圧（出力電流）を制御する。ビット線ＢＬの電位は、トランジスタＴｒ２の出力電圧に応じた電位に設定される。
【０５１２】
制御信号ＢＬＣの信号レベルは、ラッチ回路ＤＬ内のデータ（例えば、書き込むべきデータ及びベリファイ結果）を用いた処理部２０１の計算結果に基づいて、制御される。
【０５１３】
例えば、制御信号ＢＬＣの信号レベルが、第１の信号レベルＬＶ１である場合、第１の信号レベルに応じてトランジスタＴｒ２の駆動力によって、トランジスタから出力される電圧が、制限される。この結果として、制御信号ＢＬＣの信号レベルが、第１の信号レベルである場合、ビット線ＢＬの電位が、電圧Ｖｘ程度に設定される。
【０５１４】
制御信号ＢＬＣの信号レベルが、第１の信号レベルＬＶ１より小さい第２の信号レベルＬＶ２である場合、第２の信号レベルに応じてトランジスタＴｒ２の駆動力によって、ビット線ＢＬの電位が、電圧Ｖｚ程度に設定される。
【０５１５】
これと同様に、制御信号ＢＬＣの第３の信号レベルＬＶ３及び第４の信号レベルＬＶ４に応じて、電圧Ｖｂ、又は、電圧Ｖｓｓが、ビット線ＢＬに印加される。
【０５１６】
本例のように、トランジスタのゲートに供給される制御信号の信号レベルを制御することによって、ビット線ＢＬに印加される電位を制御できる。
【０５１７】
したがって、図４３に示される回路によって、メモリセルに対するプログラム動作時において、メモリセルの電荷蓄積層に注入される電荷量を、制御できる。
【０５１８】
このように、ビット線の電位を制御するための回路の構成が適宜変更されていても、本実施形態のフラッシュメモリは、上述の動作を実現できる。
【０５１９】
（５）その他  
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０５２０】
１：メモリデバイス、５：コントローラ、ＭＣ：メモリセル、ＷＬ：ワード線、１３１，１３１Ａ：センスアンプユニット。
【図１】
2018041518.tif 000003
【図２】
2018041518.tif 000004
【図３】
2018041518.tif 000005
【図４】
2018041518.tif 000006
【図５】
2018041518.tif 000007
【図６】
2018041518.tif 000008
【図７】
2018041518.tif 000009
【図８】
2018041518.tif 000010
【図９】
2018041518.tif 000011
【図１０】
2018041518.tif 000012
【図１１】
2018041518.tif 000013
【図１２】
2018041518.tif 000014
【図１３】
2018041518.tif 000015
【図１４】
2018041518.tif 000016
【図１５】
2018041518.tif 000017
【図１６】
2018041518.tif 000018
【図１７】
2018041518.tif 000019
【図１８】
2018041518.tif 000020
【図１９】
2018041518.tif 000021
【図２０】
2018041518.tif 000022
【図２１】
2018041518.tif 000023
【図２２】
2018041518.tif 000024
【図２３】
2018041518.tif 000025
【図２４】
2018041518.tif 000026
【図２５】
2018041518.tif 000027
【図２６】
2018041518.tif 000028
【図２７】
2018041518.tif 000029
【図２８】
2018041518.tif 000030
【図２９】
2018041518.tif 000031
【図３０】
2018041518.tif 000032
【図３１】
2018041518.tif 000033
【図３２】
2018041518.tif 000034
【図３３】
2018041518.tif 000035
【図３４】
2018041518.tif 000036
【図３５】
2018041518.tif 000037
【図３６】
2018041518.tif 000038
【図３７】
2018041518.tif 000039
【図３８】
2018041518.tif 000040
【図３９】
2018041518.tif 000041
【図４０】
2018041518.tif 000042
【図４１】
2018041518.tif 000043
【図４２】
2018041518.tif 000044
【図４３】
2018041518.tif 000045
【図４４】
2018041518.tif 000046