(57)【要約】【課題】データリテンションによる閾値電圧変化の影響を抑制した半導体記憶装置を提供する。【解決手段】実施形態によれば、半導体記憶装置は、複数のメモリセルを備えたメモリセルアレイ２３と、複数のワード線と、ワード線ドライバ２５と、複数のビット線ＢＬと、複数のビット線ＢＬを介して、複数のメモリセルのデータを検出すると共に、複数のビット線にビット線電圧を印加するセンスアンプ回路２４と、制御部２２と、を有し、制御部２２は、各メモリセルへのデータの書き込み動作を実行するためにワード線ドライバ２５とセンスアンプ回路２４を制御する。制御部２２は、書き込み動作において、書き込み動作の対象となる選択ワードに接続された選択メモリセルのターゲットレベルと、選択メモリセルに隣接する隣接ワード線に接続された隣接メモリセルの閾値レベルとの差の状態に応じて、ビット線電圧を変更する。【選択図】図１６
2020149742.tif 000002
【特許請求の範囲】
【請求項１】
各々が複数レベルの閾値電圧のいずれかに設定可能な複数のメモリセルを備えたメモリセルアレイと、
前記複数のメモリセルのゲートにそれぞれ接続された複数のワード線と、
前記複数のワード線にそれぞれ電圧を印加するワード線ドライバと、
前記複数のメモリセルの一端にそれぞれ接続された複数のビット線と、
前記複数のビット線を介して、前記複数のメモリセルのデータを検出すると共に、前記複数のビット線にビット線電圧を印加するセンスアンプ回路と、
前記複数のメモリセルへのデータの書き込み動作を実行するために、前記ワード線ドライバと前記センスアンプ回路を制御する制御回路と、
を有し、
前記制御回路は、前記書き込み動作において、前記書き込み動作の対象となる選択ワード線に接続された選択メモリセルのターゲットレベルと、前記選択ワード線に隣接する隣接ワード線に接続された隣接メモリセルの閾値レベルとの差の状態に応じて、前記ビット線電圧を変更する、半導体記憶装置。
【請求項２】
前記差の状態が、前記選択メモリセルの前記ターゲットレベルが、前記複数のレベルの中の第１の閾値レベル以上で、かつ前記隣接メモリセルの閾値レベルが前記第１の閾値レベル未満である第１の状態のとき、前記制御回路は、前記ビット線電圧の変更では、前記ビット線電圧を低下させる、請求項１に記載の半導体記憶装置。
【請求項３】
前記差の状態が、前記選択メモリセルの前記ターゲットレベルが、前記複数のレベルの中の第２の閾値レベル未満で、かつ前記隣接メモリセルの閾値レベルが前記第２の閾値レベル以上である第２の状態のとき、前記制御回路は、前記ビット線電圧の変更では、前記ビット線電圧を上昇させる、請求項１又は２に記載の半導体記憶装置。
【請求項４】
前記差の状態が、前記選択メモリセルの前記ターゲットレベルが前記隣接メモリセルの閾値レベルよりも高い状態であるとき、前記制御回路は、前記ビット線電圧の変更では、前記ビット線電圧を低下させる、請求項１に記載の半導体記憶装置。
【請求項５】
前記差の状態が、前記選択メモリセルの前記ターゲットレベルが前記隣接メモリセルの閾値レベルよりも低い状態であるとき、前記制御回路は、前記ビット線電圧の変更では、前記ビット線電圧を低下させる、請求項１に記載の半導体記憶装置。
【請求項６】
前記制御回路は、前記選択メモリセルへの前記データ書き込みの前に、前記隣接メモリセルの閾値レベルを読み出す、請求項１に記載の半導体記憶装置。
【請求項７】
前記書き込み動作は、複数のプログラムループを含み、
各プログラムループは、前記選択ワード線にプログラム電圧を印加するプログラム動作と、前記選択ワード線にベリファイ電圧を印加するベリファイ動作からなるプログラムプログラムループとを含み、
前記複数のプログラムループは、前記複数レベルのうち低い閾値レベルに対応するプログラムループから高い閾値レベルに対応するプログラムループに順番に実行され、
前記制御回路は、前記複数のプログラムループの一部が終了した段階で前記隣接メモリセルの前記閾値レベルを読み出す、請求項１に記載の半導体記憶装置。
【請求項８】
前記選択メモリセルの書き込みデータに対応する複数のデータをラッチする複数のラッチ回路を有し、
前記制御回路は、読み出した前記隣接メモリセルの閾値レベルのデータを、前記複数のラッチ回路の少なくとも１つに格納する、請求項７に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
ＮＡＮＤ型ＦＬＡＳＨメモリでは、メモリセルを、１ビット（２値）のデータを保持可能なＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）とする場合だけでなく、２ビット（４値）のデータを保持可能なＭＬＣ（Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）、３ビット（８値）のデータを保持可能なＴＬＣ（Ｔｒｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）または４ビット（１６値）のデータを保持可能なＱＬＣ（Ｑｕａｄ  Ｌｅｖｅｌ  Ｃｅｌｌ）として構成する場合がある。
【０００３】
メモリセルに対するデータの書き込みを行うと、メモリセルの閾値電圧が、電荷蓄積膜に蓄えられた電荷量に応じて変化する。メモリセルが、データの書き込みの結果として高い閾値電圧に設定された場合、書き込み完了後のデータを保持した状態で時間が経過すること（データリテンション）による閾値電圧が低下することがある。また、メモリセルが、データの書き込みの結果として低い閾値電圧に設定された場合、書き込み完了後のデータを保持した状態で時間が経過すること（データリテンション）による閾値電圧が上昇することがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１８６９３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データリテンションによる閾値電圧変化の影響を抑制した半導体記憶装置を提供する。
【課題を解決するための手段】
【０００６】
実施形態によれば、各々が複数レベルの閾値電圧のいずれかに設定可能な複数のメモリセルを備えたメモリセルアレイと、前記複数のメモリセルのゲートにそれぞれ接続された複数のワード線と、前記複数のワード線にそれぞれ電圧を印加するワード線ドライバと、前記複数のメモリセルの一端にそれぞれ接続された複数のビット線と、前記複数のビット線を介して、前記複数のメモリセルのデータを検出すると共に、前記複数のビット線にビット線電圧を印加するセンスアンプ回路と、前記複数のメモリセルへのデータの書き込み動作を実行するために、前記ワード線ドライバと前記センスアンプ回路を制御する制御回路と、を有し、前記制御回路は、前記書き込み動作において、前記書き込み動作の対象となる選択ワード線に接続された選択メモリセルのターゲットレベルと、前記選択ワード線に隣接する隣接ワード線に接続された隣接メモリセルの閾値レベルとの差の状態に応じて、前記ビット線電圧を変更する、半導体記憶装置が提供される。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に関わるメモリシステムの構成例を示すブロック図である。
【図２】第１の実施形態の不揮発性メモリの構成例を示すブロック図である。
【図３】第１の実施形態に関わる、３次元構造のＮＡＮＤメモリセルアレイのブロックの構成例を示す図である。
【図４】第１の実施形態に関わる、３次元構造のＮＡＮＤメモリセルアレイの一部領域の断面図である。
【図５】第１の実施形態の閾値電圧の閾値領域とデータコーディングの関係の一例を示す図である。
【図６】第１の実施形態に関わる、プログラム動作時における各配線の電位変化を示す図である。
【図７】第１の実施形態に関わる、プログラム動作時のストリングの様子を示す回路図である。
【図８】第１の実施形態に関わる、ＱＰＷ動作時における各配線の電位変化を示す図である。
【図９】第１の実施形態に関わる通常のプログラム動作を説明するための図である。
【図１０】第１の実施形態に関わる、ＱＰＷ動作を説明するための図である。
【図１１】第１の実施形態に関わる、ベリファイ動作時における各配線の電位変化を示す図である。
【図１２】第１の実施形態に関わるセンスアンプ回路の具体的な構成の一例を示す回路図である。
【図１３】第１の実施形態に関わるセンスアンプ回路の動作波形を示す図である。
【図１４】第１の実施形態に関わる、電荷蓄積膜における電子の移動量を説明するための図である。
【図１５】第１の実施形態に関わる、電荷蓄積膜における電子の移動量を説明するための図である。
【図１６】第１の実施形態に関わる、データリテンションによる閾値分布への影響を説明するための説明図である。
【図１７】第１の実施形態に関わる、ＱＰＷ動作において、ＱＰＷ電圧の増減の判断基準を示す図である。
【図１８】第１の実施形態に関わる、ＱＰＷ動作時におけるＱＰＷ電圧の増減により閾値分布の変化を説明するための図である。
【図１９】第１の実施形態に関わる、選択メモリセルへのＱＰＷによる閾値分布の変化を説明するための図である。
【図２０】第１の実施形態に関わる、制御部によるデータの書き込みの流れの例を示すフローチャートである。
【図２１】第１の実施形態に関わる、ＱＰＷ動作が実行されるときの処理の流れの例を示すフローチャートである。
【図２２】第１の実施形態に関わる、選択ワード線と隣接ワード線の波形図である。
【図２３】第１の実施形態の変形例１に関わる制御部によるデータの書き込みの流れの例を示すフローチャートである。
【図２４】第２の実施形態に関わる、一つのワード線ＷＬについての書き込み動作を模式的に示す図である。
【図２５】第２の実施形態に関わる、第１書き込み動作および第２書き込み動作の実行順序の例を示す図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照して実施形態を説明する。
（第１の実施形態）
（メモリシステムの構成）
図１は、実施形態に関わるメモリシステムの構成例を示すブロック図である。本実施形態のメモリシステムは、メモリコントローラ１と不揮発性メモリ２とを備える。メモリシステムは、ホストと接続可能である。ホストは、例えば、パーソナルコンピュータ、携帯端末などの電子機器である。
【０００９】
不揮発性メモリ２は、データを不揮発に記憶する半導体記憶装置であり、例えば、ＮＡＮＤフラッシュメモリを備えている。本実施形態では、不揮発性メモリ２は、メモリセルあたり３ｂｉｔを記憶可能なメモリセルを有するＮＡＮＤメモリ、すなわち３ｂｉｔ／Ｃｅｌｌ（ＴＬＣ：Ｔｒｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）のＮＡＮＤメモリであるとして説明する。不揮発性メモリ２は、３次元化されている。
【００１０】
メモリコントローラ１は、ホストからの書き込みリクエストに従って不揮発性メモリ２へのデータの書き込みを制御する。また、メモリコントローラ１は、ホストからの読み出しリクエストに従って不揮発性メモリ２からのデータの読み出しを制御する。メモリコントローラ１は、ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１、プロセッサ１２、ホストインターフェイス１３、ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ）回路１４およびメモリインターフェイス１５を備える。ＲＡＭ１１、プロセッサ１２、ホストインターフェイス１３、ＥＣＣ回路１４およびメモリインターフェイス１５は、互いに内部バス１６で接続される。
【００１１】
ホストインターフェイス１３は、ホストから受信したリクエスト、ユーザデータである書き込みデータなどを内部バス１６に出力する。また、ホストインターフェイス１３は、不揮発性メモリ２から読み出されたユーザデータ、プロセッサ１２からの応答などをホストへ送信する。  
【００１２】
メモリインターフェイス１５は、プロセッサ１２の指示に基づいてユーザデータ等を不揮発性メモリ２へ書き込む処理および不揮発性メモリ２から読み出す処理を制御する。
【００１３】
プロセッサ１２は、メモリコントローラ１を統括的に制御する。プロセッサ１２は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等である。プロセッサ１２は、ホストからホストインターフェイス１３経由でリクエストを受けた場合に、そのリクエストに従った制御を行う。例えば、プロセッサ１２は、ホストからのリクエストに従って、不揮発性メモリ２へのユーザデータおよびパリティの書き込みをメモリインターフェイス１５へ指示する。また、プロセッサ１２は、ホストからのリクエストに従って、不揮発性メモリ２からのユーザデータおよびパリティの読み出しを、メモリインターフェイス１５へ指示する。
【００１４】
プロセッサ１２は、ＲＡＭ１１に蓄積されるユーザデータに対して、不揮発性メモリ２上の格納領域（以下、メモリ領域という）を決定する。ユーザデータは、内部バス１６経由でＲＡＭ１１に格納される。プロセッサ１２は、メモリ領域の決定を、書き込み単位であるページ単位のデータ、すなわちページデータ、に対して実施する。本明細書では、不揮発性メモリ２の１ページに格納されるユーザデータをユニットデータと定義する。ユニットデータは、例えば、符号化されて符号語として不揮発性メモリ２に格納される。
【００１５】
なお、符号化は必須ではない。メモリコントローラ１は、符号化せずにユニットデータを不揮発性メモリ２に格納してもよいが、図１では、一構成例として符号化を行う構成を示している。メモリコントローラ１が符号化を行わない場合には、ページデータはユニットデータと一致する。また、１つのユニットデータに基づいて１つの符号語が生成されてもよいし、ユニットデータが分割された分割データに基づいて１つの符号語が生成されてもよい。また、複数のユニットデータを用いて１つの符号語が生成されてもよい。
【００１６】
プロセッサ１２は、ユニットデータごとに書き込み先の不揮発性メモリ２のメモリ領域を決定する。不揮発性メモリ２のメモリ領域には物理アドレスが割当てられている。プロセッサ１２は、ユニットデータの書き込み先のメモリ領域を、物理アドレスを用いて管理する。プロセッサ１２は、決定したメモリ領域の物理アドレスを指定してユーザデータを不揮発性メモリ２へ書き込むようメモリインターフェイス１５へ指示する。プロセッサ１２は、ユーザデータの論理アドレス（ホストが管理する論理アドレス）と物理アドレスとの対応を管理する。プロセッサ１２は、ホストからの論理アドレスを含む読み出しリクエストを受信した場合は、論理アドレスに対応する物理アドレスを特定し、物理アドレスを指定してユーザデータの読み出しをメモリインターフェイス１５へ指示する。
【００１７】
ＥＣＣ回路１４は、ＲＡＭ１１に格納されたユーザデータを符号化して符号語を生成する。また、ＥＣＣ回路１４は、不揮発性メモリ２から読み出された符号語を復号する。  
【００１８】
ＲＡＭ１１は、ホストから受信したユーザデータを不揮発性メモリ２へ記憶するまでに一時格納したり、不揮発性メモリ２から読み出したデータをホストへ送信するまでに一時格納する。ＲＡＭ１１は、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの汎用メモリである。
【００１９】
図１では、メモリコントローラ１が、ＥＣＣ回路１４とメモリインターフェイス１５をそれぞれ備える構成例を示した。しかしながら、ＥＣＣ回路１４がメモリインターフェイス１５に内蔵されていてもよい。また、ＥＣＣ回路１４が、不揮発性メモリ２に内蔵されていてもよい。
【００２０】
ホストから書き込みリクエストを受信した場合、メモリコントローラ１は次のように動作する。プロセッサ１２は、書き込みデータをＲＡＭ１１に一時記憶させる。プロセッサ１２は、ＲＡＭ１１にストアされたデータを読み出し、ＥＣＣ回路１４に入力する。ＥＣＣ回路１４は、入力されたデータを符号化し、符号語をメモリインターフェイス１５に入力する。メモリインターフェイス１５は、入力された符号語を不揮発性メモリ２に書き込む。
【００２１】
ホストから読み出しリクエストを受信した場合、メモリコントローラ１は次のように動作する。メモリインターフェイス１５は、不揮発性メモリ２から読み出した符号語をＥＣＣ回路１４に入力する。ＥＣＣ回路１４は、入力された符号語を復号し、復号されたデータをＲＡＭ１１にストアする。プロセッサ１２は、ＲＡＭ１１にストアされたデータを、ホストインターフェイス１３を介してホストに送信する。
【００２２】
図２は、本実施形態の不揮発性メモリの構成例を示すブロック図である。不揮発性メモリ２は、ＮＡＮＤ  Ｉ／Ｏインターフェイス２１、制御部２２、ＮＡＮＤメモリセルアレイ２３、センスアンプ回路２４及びワード線ドライバ２５を備える。不揮発性メモリ２は、例えば１チップの半導体基板（例えば、シリコン基板）からなる。
【００２３】
ＮＡＮＤ  Ｉ／Ｏインターフェイス２１は、メモリコントローラ１から出力された、書き込みイネーブル信号ＷＥｎ、読み出しイネーブル信号ＲＥｎ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥなどの制御信号を受け取る。また、ＮＡＮＤ  Ｉ／Ｏインターフェイス２１は、メモリコントローラ１から出力された、コマンド、アドレス、データを受け取る。
【００２４】
制御部（制御回路）２２は、ＮＡＮＤ  Ｉ／Ｏインターフェイス２１から制御信号、コマンド、アドレス、データを受け取り、それらに基づいて、不揮発性メモリ２の動作を制御する。制御部２２は、例えば、制御信号、コマンド、アドレス、データに基づいてワード線ドライバ２５やセンスアンプ回路２４を制御し、書き込み動作、読み出し動作、消去動作等を実行する。
【００２５】
制御部２２は、書き込みコマンドが入力された場合、書き込みコマンドに伴って入力されたデータをＮＡＮＤメモリセルアレイ２３上の指定されたアドレスへ書き込むようセンスアンプ回路２４とワード線ドライバ２５を制御する。また、制御部２２は、読み出しコマンドが入力された場合ＮＡＮＤメモリセルアレイ２３上の指定されたアドレスからデータを読み出すようセンスアンプ回路２４とワード線ドライバ２５を制御する。
【００２６】
例えば、制御部２２は、ＮＡＮＤメモリセルアレイ２３に含まれるメモリセル（メモリセルトランジスタ）ＭＴへデータを書き込むために、ワード線ドライバ２５によって複数のワード線ＷＬへ印加される電圧や、センスアンプ回路２４によって複数のビット線ＢＬに印加される電圧（ビット線電圧）を制御する。
【００２７】
センスアンプ回路２４は、複数のビット線ＢＬに独立して電圧（または電流）を印加し、また、複数のビット線ＢＬの電圧（または電流）を独立して検出して各メモリセルＭＴのデータを検出することができるように構成されている。すなわち、センスアンプ回路２４は、複数のビット線ＢＬを介して、複数のメモリセルＭＴのデータを検出すると共に、複数のビット線ＢＬにビット線電圧を印加することができる。
【００２８】
ワード線ドライバ２５は、複数のワード線および選択ゲート線に独立して、プログラム電圧などの各種電圧を印加することができるように構成されている。すなわち、ワード線ドライバ２５は、複数のワード線にプログラム電圧を印加することができる。
（ＮＡＮＤメモリセルアレイの構成）
図３は、３次元構造のＮＡＮＤメモリセルアレイ２３のブロックの構成例を示す図である。図３は、３次元構造のＮＡＮＤメモリセルアレイ（以下、メモリセルアレイという）２３を構成する複数のブロックのうちの１つのブロックＢＬＫを示している。メモリセルアレイの他のブロックも図３と同様の構成を有する。メモリセルアレイ２３は、後述するように、各々が複数レベルの閾値電圧のいずれかに設定可能な複数のメモリセルＭＴを備えている。
【００２９】
図示するように、ブロックＢＬＫは、例えば４つのストリングユニット（ＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数のＮＡＮＤストリングＮＳを含む。ＮＡＮＤストリングＮＳの各々は、ここでは８個のメモリセルＭＴ（ＭＴ０〜ＭＴ７）と、選択トランジスタＳＴ１，ＳＴ２とを含む。なお、ＮＡＮＤストリングＮＳに含まれるメモリセルＭＴの個数は、ここでは８個であるが、８個に限られず、例えば、３２個、４８個、６４個、９６個でもよい。選択トランジスタＳＴ１，ＳＴ２は、電気回路上は１つのトランジスタとして示しているが、構造上はメモリセルトランジスタと同じでもよい。また、例えばカットオフ特性を高めるために、選択トランジスタＳＴ１，ＳＴ２として、それぞれ複数の選択トランジスタを用いてもよい。 さらに、メモリセルＭＴと選択トランジスタＳＴ１，ＳＴ２との間には、ダミーセルトランジスタが設けられていてもよい。
【００３０】
メモリセルＭＴは、選択トランジスタＳＴ１，ＳＴ２間において、直列接続されるようにして配置されている。一端側のメモリセルＭＴ７が、選択トランジスタＳＴ１接続され、他端側のメモリセルＭＴ０が、選択トランジスタＳＴ２に接続されている。
【００３１】
ストリングユニットＳＵ０〜ＳＵ３の各々の選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に接続される。他方で、選択トランジスタＳＴ２のゲートは、同一のブロックＢＬＫ内にある複数のストリングユニットＳＵ間で同一のセレクトゲート線ＳＧＳに共通接続される。また、同一のブロックＢＬＫ内にあるメモリセルＭＴ０〜ＭＴ７のゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続される。すなわち、ワード線ＷＬ０〜ＷＬ７及びセレクトゲート線ＳＧＳは、同一ブロックＢＬＫ内の複数のストリングユニットＳＵ０〜ＳＵ３間で共通に接続されているのに対し、セレクトゲート線ＳＧＤは、同一ブロックＢＬＫ内であってもストリングユニットＳＵ０〜ＳＵ３毎に独立している。
【００３２】
ＮＡＮＤストリングＮＳを構成するメモリセルＭＴ０〜ＭＴ７のゲートには、それぞれワード線ＷＬ０〜ＷＬ７が接続されている。すなわち、複数のワード線ＷＬは、複数のメモリセルＭＴのゲートに接続されている。ブロックＢＬＫ内において同一行にあるメモリセルＭＴｉのゲートは、同一のワード線ＷＬｉに接続される。なお、以下の説明では、ＮＡＮＤストリングＮＳを単に「ストリング」という場合がある。
【００３３】
各ＮＡＮＤストリングＮＳは、対応するビット線に接続されている。従って、各メモリセルＭＴは、ＮＡＮＤストリングＮＳに含ませる選択トランジスタＳＴや他のメモリセルＭＴを介して、ビット線に接続されている。複数のビット線ＢＬは、各々が複数のメモリセルを含む、複数のＮＡＮＤストリングＮＳの一端に接続されている。
【００３４】
上述した通り、同一のブロックＢＬＫ内にあるメモリセルＭＴのデータは、一括して消去される。一方、データの読み出し及び書き込みは、メモリセルグループＭＧ単位（またはページ単位）で行われる。本明細書では、１つのワード線ＷＬｉに接続され、かつ１つのストリングユニットＳＵに属する複数のメモリセルＭＴをメモリセルグループＭＧと定義する。本実施形態では、不揮発性メモリ２は３ビット（８値）のデータを保持可能なＴＬＣ（Ｔｒｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）のＮＡＮＤメモリである。従って、１つのメモリセルグループＭＧが、３ページ分のデータを保持することができる。各メモリセルＭＴが保持することができる３ビットは、それぞれこの３ページに対応する。
【００３５】
図４は、３次元構造のＮＡＮＤメモリセルアレイの一部領域の断面図である。図４に示すように、ｐ型ウェル領域（Ｐ−ｗｅｌｌ）上に複数のＮＡＮＤストリングＮＳが形成されている。すなわち、ｐ型ウェル領域上には、セレクトゲート線ＳＧＳとして機能する複数の配線層３３３、ワード線ＷＬｉとして機能する複数の配線層３３２、およびセレクトゲート線ＳＧＤとして機能する複数の配線層３３１が積層されている。
【００３６】
そして、これらの配線層３３３，３３２，３３１を貫通してｐ型ウェル領域に達するメモリホール３３４が形成されている。メモリホール３３４の側面には、ブロック絶縁膜３３５、電荷蓄積膜（電荷保持領域）３３６、およびゲート絶縁膜３３７が順次形成され、更にメモリホール３３４内に導電体柱３３８が埋め込まれている。導電体柱３３８は、例えばポリシリコンからなり、ＮＡＮＤストリングＮＳに含まれるメモリセルＭＴ並びに選択トランジスタＳＴ１及びＳＴ２の動作時にチャネルが形成される領域として機能する。すなわち、配線層３３１と導電体柱３３８とそれらの間の膜３３５〜３３７がそれぞれ選択トランジスタＳＴ１として機能し、配線層３３２と導電体柱３３８とそれらの間の膜３３５〜３３７がそれぞれメモリセルＭＴとして機能し、配線層３３３と各導電体柱３３８とそれらの間の膜３３５〜３３７が選択トランジスタＳＴ２として機能する。
【００３７】
各ＮＡＮＤストリングＮＳにおいて、ｐ型ウェル領域上に選択トランジスタＳＴ２、複数のメモリセルＭＴ、及び選択トランジスタＳＴ１が順に形成されている。導電体柱３３８よりも上側には、ビット線ＢＬとして機能する配線層が形成される。導電体柱３３８の上端には、導電体柱３３８とビット線ＢＬとを接続するコンタクトプラグ３３９が形成されている。
【００３８】
さらに、ｐ型ウェル領域の表面内には、ｎ＋型不純物拡散層およびｐ＋型不純物拡散層が形成されている。ｎ＋型不純物拡散層上にはコンタクトプラグ３４０が形成され、コンタクトプラグ３４０上には、ソース線ＳＬとして機能する配線層が形成される。
【００３９】
以上の図４に示した構成が、図４の紙面の奥行き方向に複数配列されており、奥行き方向に一列に並ぶ複数のＮＡＮＤストリングの集合によって、１つのストリングユニットＳＵが形成される。
（メモリセルトランジスタの閾値分布）
図５は、本実施形態の閾値電圧の閾値領域とデータコーディングの関係の一例を示す図である。図５では、３ｂｉｔ／Ｃｅｌｌの不揮発性メモリ２の閾値分布例を示している。不揮発性メモリ２では、メモリセルＭＴの電荷蓄積膜３３６に蓄えられた電荷量により情報が記憶される。各メモリセルＭＴは、電荷量に応じた閾値電圧を有する。そして、メモリセルＭＴに記憶する複数のデータ値は、閾値電圧の複数の領域（閾値領域）にそれぞれ対応する。
【００４０】
図５の、Ｅｒ、Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇと記載した８つの分布（山型）は、８つの閾値領域内のそれぞれの閾値分布を示している。このように、各メモリセルＭＴは、７つの境界によって仕切られた閾値分布を有している。図５の横軸は閾値電圧を示し、縦軸はメモリセル数（セル数）の分布を示している。隣り合う閾値領域の間には、書き込み動作で用いられるベリファイ電圧が設定される。
【００４１】
本実施形態では、閾値電圧がベリファイ電圧ＡＶ以下となる領域を領域Ｅｒとよび、閾値電圧がベリファイ電圧ＡＶより大きくベリファイ電圧ＢＶ以下となる領域を領域Ａとよび、閾値電圧がベリファイ電圧ＢＶより大きくベリファイ電圧ＣＶ以下となる領域を領域Ｂとよび、閾値電圧がベリファイ電圧ＣＶより大きくベリファイ電圧ＤＶ以下となる領域を領域Ｃとよぶ。また、本実施形態では、閾値電圧がベリファイ電圧ＤＶより大きくベリファイ電圧ＥＶ以下となる領域を領域Ｄとよび、閾値電圧がベリファイ電圧ＥＶより大きくベリファイ電圧ＦＶ以下となる領域を領域Ｅとよび、閾値電圧がベリファイ電圧ＦＶより大きくベリファイ電圧ＧＶ以下となる領域を領域Ｆとよび、閾値電圧がベリファイ電圧ＧＶより大きい領域を領域Ｇとよぶ。
【００４２】
また、領域Ｅｒ，Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇに対応する閾値分布をそれぞれ分布Ｅｒ，Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ（第１〜第８の分布）と呼ぶ。ＡＶ〜ＧＶは、各領域の境界となる閾値電圧である。
【００４３】
不揮発性メモリ２では、メモリセルＭＴの複数の閾値領域（すなわち閾値分布）に複数のデータ値をそれぞれ対応させる。この対応をデータコーディングという。このデータコーディングをあらかじめ定めておき、データの書き込み（プログラム）時には、データコーディングに従って記憶するデータ値に応じた閾値領域内となるようにメモリセルＭＴに電荷を注入する。そして、読み出し時には、メモリセルＭＴに読み出し電圧を印加し、読み出し電圧よりメモリセルＭＴの閾値が低いか高いかにより、データ、すなわちそのメモリセルＭＴの閾値レベルが決定される。
【００４４】
読み出し電圧ＡＲ、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲは、図５に示すように、それぞれベリファイ電圧ＡＶ、ＢＶ、ＣＶ、ＤＶ、ＥＶ、ＦＶ、ＧＶよりも低い電圧に設定される。
【００４５】
図５には、各分布に対応するデータ値を示すデータコーディングが示されている。本実施形態では、８つの閾値分布（閾値領域）を３ｂｉｔの８つのデータ値にそれぞれ対応させる。閾値電圧と、上位、中位、下位の各ページに対応するビットのデータ値との関係は、以下に示す通りである。
【００４６】
・閾値電圧がＥｒ領域内にあるメモリセルは“１１１”を記憶している状態である。  
【００４７】
・閾値電圧がＡ領域内にあるメモリセルは“０１１”を記憶している状態である。  
【００４８】
・閾値電圧がＢ領域内にあるメモリセルは“００１”を記憶している状態である。  
【００４９】
・閾値電圧がＣ領域内にあるメモリセルは“１０１”を記憶している状態である。  
【００５０】
・閾値電圧がＤ領域内にあるメモリセルは“１００”を記憶している状態である。  
【００５１】
・閾値電圧がＥ領域内にあるメモリセルは“１１０”を記憶している状態である。  
【００５２】
・閾値電圧がＦ領域内にあるメモリセルは“０１０”を記憶している状態である。  
【００５３】
・閾値電圧がＧ領域内にあるメモリセルは“０００”を記憶している状態である。
【００５４】
このように、閾値電圧の領域毎に、各メモリセルＭＴの３ｂｉｔのデータの状態を表すことが出来る。なお、メモリセルＭＴが未書き込みの状態（「消去」の状態）では、メモリセルＭＴの閾値電圧はＥｒ領域内にある。また、ここに示した符号では，Ｅｒ（消去）状態で”１１１”というデータを記憶し、Ａ状態で”０１１”というデータを記憶するといったように、任意の２つの隣接する状態間で１ｂｉｔのみデータが変化する。このように、図５に示したコーディングは、任意の２つの隣接する領域間で１ｂｉｔのみデータが変化するグレイ符号である。
【００５５】
なお、図５では８個のレベルが離散的に分布する場合を例に説明したが、これは例えばデータの書き込み直後の理想的な状態である。従って、現実的には隣接するレベルが重なることが起こり得る。例えば、データの書き込み後、ディスターブ等により、分布Ｅｒの上端と分布Ａの下端とが重なる場合がある。このような場合には、例えばＥＣＣ技術などを用いてデータが訂正される。
（書き込み動作）
まず、本実施形態に係る書き込み動作について簡単に説明する。まず、書き込み動作は、大まかにはプログラム動作とベリファイ動作とを含む。
【００５６】
プログラム動作は、電子を電荷蓄積膜３３６に注入することにより閾値電圧を上昇させる（または注入を禁止することで閾値を維持させる）動作のことである。以下では、閾値電圧を上昇させる動作を「“０”プログラム」または「“０”書き込み」と呼び、“０”プログラム対象とされたビット線ＢＬには“０”データが与えられる。他方で、閾値電圧を維持させる動作を「“１”プログラム」、「“１”書き込み」、または「書き込み禁止」と呼び、“１”プログラム対象とされたビット線ＢＬには“１”データが与えられる。
【００５７】
ベリファイ動作は、プログラム動作の後、データを読み出すことで、メモリセル（メモリセルトランジスタ）ＭＴの閾値電圧がターゲットレベルまで達したか否かを判定する動作である。ターゲットレベルまで達したメモリセルＭＴは、その後、書き込み禁止とされる。
【００５８】
以上のプログラム動作とベリファイ動作の組み合わせを繰り返すことで、メモリセルＭＴの閾値がターゲットレベルまで上昇される。
【００５９】
図６は、プログラム動作時における各配線の電位変化を示している。図示するように、まずセンスアンプ回路２４が各ビット線ＢＬにプログラムデータを転送する。“０”データが与えられたビット線ＢＬには“Ｌ”レベルとして接地電圧Ｖｓｓ（例えば０Ｖ）が印加される。“１”データが与えられたビット線ＢＬには“Ｈ”レベルとして書き込み禁止電圧Ｖｉｎｈｉｂｉｔ（例えば２．５Ｖ）が印加される。
【００６０】
またワード線ドライバ２５は、いずれかのブロックＢＬＫを選択し、更にいずれかのストリングユニットＳＵを選択する。そして、選択されたストリングユニットＳＵにおけるセレクトゲート線ＳＧＤに例えば５Ｖを印加して、選択トランジスタＳＴ１をオン状態とさせる。他方で、セレクトゲート線ＳＧＳに電圧Ｖｓｓを印加することで、選択トランジスタＳＴ２をオフ状態とさせる。
【００６１】
更にワード線ドライバ２５は、選択ブロックＢＬＫにおける非選択ストリングユニットＳＵ及び非選択ブロックＢＬＫにおける非選択ストリングユニットＳＵのセレクトゲート線ＳＧＤ及びＳＧＳに電圧Ｖｓｓを印可して、選択トランジスタＳＴ１及びＳＴ２をオフ状態とさせる。
【００６２】
またソース線ＳＬは、例えば１Ｖ（セレクトゲート線ＳＧＳの電位よりも高い電位）とされる。
【００６３】
その後、ワード線ドライバ２５は、選択ブロックＢＬＫにおける選択ストリングユニットＳＵにおけるセレクトゲート線ＳＧＤの電位を、例えば２．５Ｖとする。この電位は、“０”データ（０Ｖ）が与えられたビット線ＢＬに対応する選択トランジスタＳＴ１はオンさせるが、“１”データ（２．５Ｖ）が与えられたビット線ＢＬに対応する選択トランジスタＳＴ１はカットオフさせる電圧である。
【００６４】
そしてワード線ドライバ２５は、選択ブロックＢＬＫにおいていずれかのワード線ＷＬを選択し、選択ワード線に電圧Ｖｐｇｍを印加し、その他の非選択ワード線ＷＬに電圧Ｖｐａｓｓ＿ｐｇｍを印加する。電圧Ｖｐｇｍは、トンネル現象により電子を電荷蓄積膜に注入するための高電圧であり、Ｖｐｇｍ＞Ｖｐａｓｓ＿ｐｇｍである。この際のストリングユニットＳＵの様子を図８に示す。図７は、プログラム動作時のストリングの様子を示す回路図である。
【００６５】
図７では、“０”書き込み対象のビット線ＢＬ、及び、“１”書き込み対象のビット線ＢＬに対応する２つのＮＡＮＤストリングを図示している。また、ワード線ＷＬ３が選択された際の様子を示している。
【００６６】
図示するように、選択ワード線ＷＬ３には電圧Ｖｐｇｍが印加され、非選択ワード線ＷＬ０〜ＷＬ２及びＷＬ４〜ＷＬ７には電圧Ｖｐａｓｓ＿ｐｇｍが印加される。
【００６７】
そして、“０”書き込み対象のビット線ＢＬに対応するＮＡＮＤストリングでは、選択トランジスタＳＴ１がオン状態となる。そのため、選択ワード線ＷＬ３に接続されたメモリセルＭＴ３のチャネル電位Ｖchは０Ｖとなる。すなわち、ゲートとチャネルとの間の電位差が大きくなり、その結果、電子が電荷蓄積膜に注入されて、メモリセルＭＴ３の閾値が上昇される。
【００６８】
“１”書き込み対象のビット線ＢＬに対応するＮＡＮＤストリングでは、選択トランジスタＳＴ１がカットオフ状態となる。そのため、選択ワード線ＷＬ３に接続されたメモリセルＭＴ３のチャネルは電気的にフローティングとなり、ワード線ＷＬ等との容量カップリングによりチャネル電位Ｖchは電圧Ｖｐｇｍ近くまで上昇される。すなわち、ゲートとチャネルとの間の電位差が小さくなり、その結果、電子は電荷蓄積膜に注入されず、メモリセルＭＴ３の閾値は維持される（閾値分布レベルがより高い分布に遷移するほどには閾値は変動しない）。
（ＱＰＷ動作）
なお、プログラム動作として、ＱＰＷ（Ｑｕｉｃｋ  ｐａｓｓ ｗｒｉｔｅ）動作がなされる場合もある。
【００６９】
上述した（通常の）プログラム動作では、図６に示すように、閾値を上昇させたいメモリセル（メモリセルトランジスタ）ＭＴに対応する（“０”データが与えられた）ビット線ＢＬには“Ｌ”レベル（例えば接地電圧Ｖｓｓ、０Ｖ）を印加し、閾値を上昇させたくないメモリセル（メモリセルトランジスタ）ＭＴに対応する（“１”データが与えられた）ビット線ＢＬには“Ｈ”レベル（例えば２．５Ｖ）を印加した。この場合、メモリセルグループＭＧに含まれる複数のメモリセルＭＴに対して、閾値電圧を上昇させるか維持させるという２通りの制御しか行えない。
【００７０】
図８は、ＱＰＷ動作時における各配線の電位変化を示す図である。ＱＰＷ動作では、図８に示すように、閾値電圧を小さい変化幅で上昇させたいメモリセルＭＴに対応するビット線ＢＬには、例えば、“Ｌ”レベル（接地電圧Ｖｓｓ、例えば０Ｖ）より高く“Ｈ”レベル（書き込み禁止電圧Ｖｉｎｈｉｂｉｔ、例えば２．５Ｖ）より低い電圧を印加する。すなわち、閾値電圧を上昇させたいメモリセルＭＴに対応する（“０”データが与えられた）ビット線ＢＬよりも、ビット線ＢＬの充電レベルを上げる。これにより、対象となるメモリセルＭＴにおいては、チャネル電位Ｖchが“Ｌ”レベル（接地電圧Ｖｓｓ、例えば０Ｖ）よりも上昇する。従って、このチャネル電圧Ｖchの上昇分だけ、選択ワード線ＷＬに印加される電圧Ｖｐｇｍによる電荷蓄積膜３３６への電子の注入が緩和される。従って、ＱＰＷ動作を利用することにより、メモリセルグループＭＧに含まれる複数のメモリセルＭＴに対して、閾値電圧を上昇させる、閾値を維持させる、あるいは、閾値電圧を小さい変化幅で上昇させる、という３通りの制御を行うことができる。以下では、このＱＰＷ動作のためにビット線ＢＬに印加する電圧を、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗと呼ぶ。
【００７１】
図９及び図１０は横軸に閾値電圧をとり縦軸にセル数をとって、ＱＰＷ動作による閾値電圧の変化を説明するための図である。図９は通常のプログラム動作を説明するための図であり、図１０はＱＰＷ動作を説明するための図である。
【００７２】
図９及び図１０において、分布ＤＥｒは、領域Ｅｒの閾値分布を示しており、分布ＤＳ１ａは、ターゲットレベルの領域Ａの各メモリセルＭＴについて、例えば１回目のループにおける書き込みによって得られる閾値分布の一例を示している。図９の例では、ターゲットレベルの領域Ａの各メモリセルＭＴに対してベリファイ電圧Ｖｖを用いたベリファイ動作が行われることを示している。なお、通常のプログラム動作では、ビット線電圧は例えば０Ｖで固定であり、プログラム電圧＝実効プログラム電圧である。
【００７３】
分布ＤＳ１ａは、ベリファイ電圧Ｖｖに到達していないので、これらの各メモリセルＭＴに対してプログラム電圧をΔＶｐｇｍだけ増加させて２回目のループが実施される。
【００７４】
プログラム電圧がΔＶｐｇｍだけ増加する結果、各メモリセルＭＴは、ΔＶｐｇｍに相当する分（矢印）だけ閾値電圧が上昇し、分布ＤＳ１ｂが得られる。ベリファイ電圧Ｖｖよりも高い閾値電圧を有する分布ＤＳ１ｂ中のメモリセルＭＴについては書き込み禁止とされ、ベリファイ電圧Ｖｖに到達していない分布ＤＳ１ｂ中のメモリセルＭＴについては、次の３回目のループにおいて更に、プログラム電圧をΔＶｐｇｍだけ増加させて書き込みが行われる。
【００７５】
この結果、ベリファイ電圧Ｖｖに到達していない分布ＤＳ１ｂ中のメモリセルＭＴは、ΔＶｐｇｍに相当する分だけ閾値電圧が上昇し（矢印）、分布ＤＳ１ｃが得られる。ベリファイ電圧Ｖｖよりも高い閾値電圧を有する分布ＤＳ１ｃ中のメモリセルＭＴについては書き込み禁止とされ、ベリファイ電圧Ｖｖに到達していない分布ＤＳ１ｃ中のメモリセルＭＴについては、次の４回目のループにおいて更に、プログラム電圧をΔＶｐｇｍだけ増加させて書き込みが行われる。この結果、ベリファイ電圧Ｖｖに到達していない分布ＤＳ１ｃ中のメモリセルＭＴは、ΔＶｐｇｍに相当する分だけ閾値電圧が上昇し（矢印）、分布ＤＳ１が得られる。分布ＤＳ１はメモリセルＭＴの全てがベリファイ電圧Ｖｖよりも高い閾値電圧を有することを示しており、ターゲットレベルに設定された全てのメモリセルＭＴは書き込み禁止とされる。
【００７６】
ＱＰＷ動作時には、例えば、図１０に示すように、ベリファイ電圧としてベリファイ電圧Ｖｖに相当するベリファイ電圧ＶｖＨの他に、ベリファイ電圧ＶｖＨよりも低い電圧のベリファイ電圧ＶｖＬを用いたベリファイ動作を行う。以下、ベリファイ電圧ＶｖＨをベリファイハイレベルともいい、ベリファイ電圧ＶｖＬをベリファイローレベルともいう。これにより、対象となるメモリセルＭＴの閾値電圧がベリファイローレベルよりも低い値か、ベリファイローレベルとベリファイハイレベルとの間の値か、ベリファイハイレベルよりも高い値かが判定される。以下、閾値電圧がベリファイローレベルとベリファイハイレベルとの間の値と判定されたメモリセルをパスライトセルという。なお、ここではＱＰＷ動作として、メモリセルＭＴの閾値電圧を判定するためにワード線ＷＬにベリファイローレベルとベリファイハイレベルという２種類の電圧を印加する例を示したが、後述するように、ワード線ＷＬに印加する電圧を一定に保ちつつセンスアンプ回路２４の動作パラメータを変更して（例えば、センス時間を短くして）ベリファイ動作を実行してもよい。
【００７７】
そして、メモリセルＭＴの閾値電圧がベリファイローレベルよりも低い場合には、プログラム電圧を通常と同様にΔＶｐｇｍだけ増加させ、閾値電圧がベリファイハイレベルよりも高い値の場合には書き込み禁止とし、閾値電圧がベリファイローレベルとベリファイハイレベルの間の値の場合には、実効プログラム電圧の増加分をΔＶｐｇｍよりも小さい電圧に設定する。
【００７８】
ＱＰＷ動作では、実効プログラム電圧の増加分をΔＶｐｇｍよりも小さい電圧に設定するために、プログラム電圧ＶｐｇｍをΔＶｐｇｍだけ増加させると同時に、ビット線電圧をＶｂｌ＿ＬからＱＰＷ電圧Ｖｂｌ＿ｑｐｗ（Ｖｂｌ＿Ｌ＜Ｖｂｌ＿ｑｐｗ）に増加させるようになっている。従って、実効プログラム電圧の増加分は、（ΔＶｐｇｍ−Ｖｂｌ＿ｑｐｗ）となる。
【００７９】
図１０の例では、ターゲットレベルの領域Ａの各メモリセルＭＴに対してベリファイローレベル及びベリファイハイレベルを用いたベリファイ動作が行われる。このベリファイ動作が書き込みシーケンス中のｎ（ｎは自然数）回目のループで行われたものとすると、分布ＤＳ１ａ中のベリファイローレベルに到達していないメモリセルＭＴに対しては、実効プログラム電圧をΔＶｐｇｍだけ増加させて（ｎ＋１）回目のループが実施される。これにより、この対象となったメモリセルＭＴについては、閾値電圧がΔＶｐｇｍに相当する分だけ上昇する（白抜き矢印）。
【００８０】
一方、分布ＤＳ１ａ中のベリファイローレベルとベリファイハイレベルとの間のメモリセルＭＴに対しては、プログラム電圧をΔＶｐｇｍだけ増加させると同時にビット線電圧をＱＰＷ電圧Ｖｂｌ＿ｑｐｗに増加させて、（ｎ＋１）回目のループが実施される。これにより、この対象となったメモリセルＭＴについては、実効プログラム電圧は（ΔＶｐｇｍ−Ｖｂｌ＿ｑｐｗ）だけ増加し、この実効プログラム電圧の増加分に相当する分だけ閾値電圧が上昇する（塗り潰し矢印）。この結果、この対象となったメモリセルＭＴについては、（ｎ＋１）回目のループによってベリファイハイレベルを超えるものと期待される。こうして、（ｎ＋１）回目のループにより閾値分布ＤＳ１ｂ＿ｑｐｗが得られる。
【００８１】
ベリファイハイレベルよりも高い閾値電圧を有する分布ＤＳ１ｂ＿ｑｐｗ中のメモリセルＭＴについては書き込み禁止とされ、ベリファイローレベルに到達していない分布ＤＳ１ｂ＿ｑｐｗ中のメモリセルＭＴについては、次の（ｎ＋２）回目のループにおいて更に、実効プログラム電圧をΔＶｐｇｍだけ増加させて書き込みが行われる。また、分布ＤＳ１ｂ＿ｑｐｗ中のベリファイローレベルとベリファイハイレベルとの間のメモリセルＭＴ（接続されたビット線ＢＬにはビット線電圧Ｖｂｌ＿Ｌが印加されている）に対しては、
プログラム電圧をΔＶｐｇｍだけ増加させると同時にビット線電圧をＱＰＷ電圧Ｖｂｌ＿ｑｐｗに増加させて、（ｎ＋２）回目のループが実施される。これにより、この対象となったメモリセルＭＴについては、実効プログラム電圧は（ΔＶｐｇｍ−Ｖｂｌ＿ｑｐｗ）だけ増加し、実効プログラム電圧の増加分に相当する分だけ閾値電圧が上昇する（塗り潰し矢印）。この結果、この対象となったメモリセルＭＴについては、（ｎ＋２）回目のループによってベリファイハイレベルを超えるものと期待される。こうして、（ｎ＋２）回目のループにより閾値分布ＤＳ１ｃ＿ｑｐｗが得られる。
【００８２】
ベリファイハイレベルよりも高い閾値電圧を有する分布ＤＳ１ｃ＿ｑｐｗ中のメモリセルＭＴについては書き込み禁止とされ、分布ＤＳ１ｃ＿ｑｐｗ中のベリファイローレベルとベリファイハイレベルとの間のメモリセルＭＴについては、次の（ｎ＋３）回目のループにおいて、プログラム電圧をΔＶｐｇｍだけ増加させると同時にビット線電圧をＱＰＷ電圧Ｖｂｌ＿ｑｐｗに増加させて、（ｎ＋３）回目のループが実施される。これにより、この対象となったメモリセルＭＴについては、実効プログラム電圧は（ΔＶｐｇｍ−Ｖｂｌ＿ｑｐｗ）だけ増加し、実効プログラム電圧の増加分に相当する分だけ閾値電圧が上昇する（塗り潰し矢印）。この結果、この対象となったメモリセルＭＴについては、（ｎ＋３）回目のループによってベリファイハイレベルを超えるものと期待される。こうして、（ｎ＋３）回目のループにより閾値分布ＤＳ１＿ｑｐｗが得られる。
【００８３】
図９に示すように、通常のプログラム動作では、ターゲットレベルの領域Ａの各メモリセルＭＴは、閾値分布ＤＳ１に示す分布を有し、ターゲット領域の幅はΔＶｐｇｍとなる。これに対し、ＱＰＷ動作では、図１０に示すように、ターゲットレベルの領域Ａの各メモリセルＭＴは、閾値分布ＤＳ１＿ｑｐｗに示す分布を有し、ターゲット領域の幅はΔＶｐｇｍ−Ｖｂｌ＿ｑｐｗとなり、閾値分布の幅を狭くすることができる。
【００８４】
図１０に示すように、ＱＰＷ動作時の閾値分布の幅は、閾値電圧の変化の大きさ、即ち、実効プログラム電圧の増加分の大きさに対応する。従って、ビット線電圧をより大きくして実効プログラム電圧の増加分を小さくすることで、閾値電圧の変化の大きさを小さくして、閾値分布の幅をより小さくすることができる。
（ベリファイ動作）
ベリファイ動作は、プログラム動作によって選択ワード線ＷＬに関わる各メモリセルＭＴである選択メモリセルＭＴの閾値電圧がベリファイレベルに達したか否か、即ち、選択メモリセルＭＴに所望のデータが書き込まれたか否かを検証する動作である。すなわち、ベリファイ動作は、書き込み動作の一環として、選択メモリセルＭＴの閾値電圧を検証するために実行される、読み出し動作である。
【００８５】
図１１は、ベリファイ動作時における各配線の電位変化を示す図である。ワード線ドライバ２５が、プログラム動作がなされたブロックＢＬＫおよびストリングユニットＳＵを選択し、選択されたブロックＢＬＫにおけるセレクトゲート線ＳＧＳおよび選択されたストリングユニットＳＵにおけるセレクトゲート線ＳＧＤに、例えば５Ｖを印加する。これにより、選択されたストリングユニットＳＵに含まれるＮＡＮＤストリングでは、選択トランジスタＳＴ１と選択トランジスタＳＴ２の両方がオン状態となる。
【００８６】
一方で、非選択のブロックＢＬＫにおけるセレクトゲート線ＳＧＳおよび、選択されたブロックＢＬＫにおける非選択のストリングユニットＳＵにおけるセレクトゲート線ＳＧＤには電圧Ｖｓｓを印可して、選択トランジスタＳＴ１および／またはＳＴ２をオフ状態とさせる。これにより、非選択のストリングユニットＳＵに含まれるＮＡＮＤストリングでは、少なくとも選択トランジスタＳＴ１がオフ状態となる。また、非選択のブロックＢＬＫに含まれるＮＡＮＤストリングでは、選択トランジスタＳＴ１と選択トランジスタＳＴ２の両方がオフ状態となる。
【００８７】
また、ワード線ドライバ２５は、選択ブロックＢＬＫにおいていずれかのワード線ＷＬを選択し、選択ワード線に電圧Ｖｃｇｒｖを印加し、その他の非選択ワード線ＷＬに電圧Ｖｒｅａｄを印加する。例えば、メモリセルＭＴの閾値電圧を状態Ａにするためのプログラム動作を行った場合、ベリファイ動作では電圧Ｖｒｅａｄとして電圧ＡＶを用いる。同様に、メモリセルＭＴの閾値電圧を状態Ｂにするためのプログラム動作を行った場合、ベリファイ動作では電圧Ｖｃｇｒｖとして電圧ＢＶを用いる。電圧Ｖｒｅａｄは、非選択ワード線ＷＬに接続されたメモリセルＭＴをそれらの閾値電圧にかかわらずオンさせるための電圧であり、Ｖｒｅａｄ＞Ｖｃｇｒｖ（ＧＶ）である。
【００８８】
そして、センスアンプ回路２４が各ビット線ＢＬを電圧Ｖｂｌに充電する。電圧Ｖｂｌは、ソース線ＳＬの電圧Ｖｓｌよりも大きく、Ｖｂｌ＞Ｖｓｌである。これにより、選択されたストリングユニットＳＵに含まれるＮＡＮＤストリングでは、選択ワード線ＷＬに接続されたメモリセルＭＴの閾値電圧に応じて、ビット線ＢＬ側からソース線ＳＬ側へ、電流が流れる（あるいは流れない）。これにより、閾値電圧が所望のレベルまで上昇しているかどうかを検証することができる。
【００８９】
上述したように、書き込み動作は、プログラム動作とベリファイ動作とを含むループを繰り返すことにより実行される。プログラム動作では、選択ワード線ＷＬにプログラム電圧Ｖｐｇｍが印加される。続くベリファイ動作では、検証する閾値レベルに対応して、電圧ＡＶ〜ＧＶのうち少なくとも１つが印加される。なお、各ループにおいて、プログラム動作が実行された後、ベリファイ動作が複数回実行されることがある。反対に、各ループにおいて、プログラム動作が実行された後、ベリファイ動作が実行されないこともある。
（センスアンプ回路）
次に、各ビット線ＢＬにビット線電圧を供給すると共に、メモリセルＭＴに記憶されたデータの読み出し及びベリファイ動作を行うセンスアンプ回路２４について説明する。
【００９０】
図１２は、図１中のセンスアンプ回路２４の具体的な構成の一例を示す回路図である。センスアンプ回路２４は、ビット線ＢＬ０〜ＢＬ（ｍ−１）にそれぞれ関連付けられた複数のセンスアンプユニットＳＡＵを含み、図１２には、１本のビット線ＢＬに接続された１つのセンスアンプユニットＳＡＵの詳細な回路構成を示している。
【００９１】
センスアンプユニットＳＡＵは、図１２に示すように、センスアンプ部ＳＡ、並びにラッチ回路ＳＤＬ、ＡＤＬ、ＢＤＬ、ＣＤＬ、２つのＤＤＬ及びＸＤＬを含んでいる。センスアンプ部ＳＡ並びにラッチ回路ＳＤＬ、ＡＤＬ、ＢＤＬ、ＣＤＬ、２つのＤＤＬ及びＸＤＬは、互いにデータを受信可能なように接続される。そのうちラッチ回路ＳＤＬ、ＡＤＬ、ＢＤＬ、ＣＤＬ及び２つのＤＤＬは、バスＬＢＵＳによって接続される。ラッチ回路ＳＤＬ、ＡＤＬ、ＢＤＬ、ＣＤＬ、２つのＤＤＬ及びＸＤＬは、読み出し及び書き込みデータ及び後述する各種データを一時的に保持する。ラッチ回路ＸＤＬは、制御部２２に接続され、センスアンプユニットＳＡＵと制御部２２との間でデータの入出力に使用される。
【００９２】
ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬは、書き込み動作時にターゲットレベルに対応するビットデータが格納される。２つのラッチ回路ＤＤＬは、後述するように隣接メモリセルＭＴの閾値レベルに関する情報が格納される。
【００９３】
ラッチ回路ＳＤＬは、例えばインバータ５０，５１及びｎチャネルＭＯＳトランジスタ５２，５３を含んでいる。インバータ５０の入力ノード及びインバータ５１の出力ノードはノードＬＡＴに接続される。インバータ５１の入力ノード及びインバータ５０の出力ノードはノードＩＮＶに接続される。インバータ５０，５１によって、ノードＩＮＶ，ＬＡＴのデータが保持される。制御部２２からの書き込みデータは、ノードＬＡＴに供給される。ノードＩＮＶにおいて保持されるデータはノードＬＡＴに保持されるデータの反転データである。
【００９４】
トランジスタ５２のドレイン・ソース路の一端はノードＩＮＶに接続され、他端はバスＬＢＵＳに接続される。また、トランジスタ５３のドレイン・ソース路の一端はノードＩＮＶに接続され、他端はバスＬＢＵＳに接続される。トランジスタ５３のゲートには制御信号ＳＴＬが入力され、トランジスタ５２のゲートには制御信号ＳＴＩが入力される。
【００９５】
なお、各ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、２つのＤＤＬ及びＸＤＬの回路構成はラッチ回路ＳＤＬと同様のため、説明を省略する。なお、センスアンプユニットＳＡＵに供給される各種制御信号は、制御部２２から与えられるものである。
【００９６】
センスアンプ部ＳＡは、例えば、ｐチャネルＭＯＳトランジスタ４０、ｎチャネルＭＯＳトランジスタ４１〜４８、及びキャパシタ４９を含んでいる。
【００９７】
センスアンプ部ＳＡは、読み出し動作において、対応するビット線ＢＬに読み出されたデータをセンスして、読み出したデータが“０”であるか“１”であるかを判定する。また、センスアンプ部ＳＡは、プログラム動作において、対応するビット線ＢＬを書き込むデータ“０”，“１”に応じた電圧値に設定する。
【００９８】
センスアンプ部ＳＡにおいて、プログラム動作には、トランジスタ４０〜４４が関係する。内部電源電圧である電圧ＶＤＤを供給する電源線とノードＣＯＭとの間には、トランジスタ４０のソース・ドレイン路及びトランジスタ４１のドレイン・ソース路が直列接続される。また、ノードＣＯＭと接地電圧である電圧Ｖｓｓを供給するノードＳＲＣとの間には、トランジスタ４４のドレイン・ソース路が接続される。また、ノードＣＯＭとビット線ＢＬとの間にはトランジスタ４２のドレイン・ソース路及びトランジスタ４３のドレイン・ソース路が直列接続される。
【００９９】
トランジスタ４０，４４のゲートはノードＩＮＶに接続される。従って、“０”データに対応してノードＬＡＴがローレベル（以下、“Ｌ”という）の場合には、ＩＮＶはハイレベル（以下、“Ｈ”という）に維持されており、トランジスタ４０がオフでありトランジスタ４４がオンである。逆に、“１”データに対応してノードＬＡＴが“Ｈ”の場合には、ノードＩＮＶは“Ｌ”に維持されており、トランジスタ４０がオンでありトランジスタ４４がオフである。
【０１００】
プログラム動作時には、トランジスタ４５，４６のゲートにそれぞれ供給される制御信号ＨＬＬ，ＸＸＬは“Ｌ”であり、トランジスタ４５，４６はオフである。トランジスタ４１に供給される制御信号は“Ｈ”であり、トランジスタ４１はオンである。また、通常プログラム動作時には、制御信号ＢＬＣ，ＢＬＳによって、トランジスタ４２，４３は導通する。
【０１０１】
従って、“０”データがノードＬＡＴに保持されると、トランジスタ４０はオフでトランジスタ４４がオンとなって、ノードＳＲＣからの電圧Ｖｓｓ（例えば０Ｖ）等のビット線電圧Ｖｂｌ＿Ｌがビット線ＢＬに供給される。また、“１”データがノードＬＡＴに保持されると、トランジスタ４０はオンでトランジスタ４４がオフとなって、トランジスタ４２，４３に与える制御信号ＢＬＣ，ＢＬＳに応じて、例えば、２．５Ｖ等のビット線電圧Ｖｂｌ＿Ｈがビット線ＢＬに供給される。
【０１０２】
また、本実施形態においては、ＱＰＷ動作時には、パスライトセルに対応するビット線ＢＬに接続されたセンスアンプユニットＳＡＵについては、ラッチ回路ＳＤＬのノードＩＮＶは“Ｈ”に設定される。これにより、トランジスタ４０はオフとなる。また、制御信号ＢＬＸによってトランジスタ４１もオフである。この状態で、制御信号ＢＬＣ及び制御信号ＢＬＳを適宜設定することで、トランジスタ４２及び４３によって、ビット線ＢＬにＱＰＷ時の電圧を供給する。
【０１０３】
本実施形態においては、制御部２２は、制御信号ＢＬＣ及びＢＬＳの設定を制御することで、ＱＰＷ時の電圧を変更するようになっている。
【０１０４】
ベリファイ動作には、センスアンプ部ＳＡの全てのトランジスタ４０〜４８及びキャパシタ４９が関係する。トランジスタ４０のドレインとノードＣＯＭとの間にはトランジスタ４５のドレイン・ソース路及び４６のドレイン・ソース路が直列接続される。また、バスＬＢＵＳと基準電位点との間には、トランジスタ４８のドレイン・ソース路及び４７のドレイン・ソース路が直列接続される。トランジスタ４５のソースとトランジスタ４６のドレインとはセンスノードＳＥＮに接続され、センスノードＳＥＮはトランジスタ４７のゲートに接続される。トランジスタ４５〜４８のゲートには、それぞれ制御信号ＨＬＬ、ＸＸＬ、センスノードＳＥＮの電圧又は制御信号ＳＴＢが印加される。センスノードＳＥＮはキャパシタ４９を介してクロックＣＬＫが印加される。
【０１０５】
次に、ベリファイ動作について、図１３を参照して説明する。図１３は図１２のセンスアンプ回路２４の動作波形を示す図である。
【０１０６】
まず、ワード線ドライバ２５は、選択ワード線に、ベリファイ電圧としてターゲットレベルに対応したベリファイ電圧Ｖｖを印加し、非選択ワード線に、ベリファイ電圧Ｖｖよりも高い非選択読み出し電圧Ｖｒｅａｄ（例えば、５〜７Ｖ）を印加する。
【０１０７】
ベリファイ動作時には、制御部２２は、先ずノードＩＮＶを“Ｌ”にして、トランジスタ４０をオンにする。また、制御信号ＢＬＸによってトランジスタ４１をオンにすると共に、制御信号ＢＬＣ及び制御信号ＢＬＳを所定の電圧に設定することで、ビット線ＢＬを一定の電圧（例えば、０．５Ｖ）に固定する。また、制御信号ＨＬＬを所定電圧に設定することで、センスノードＳＥＮをビット線ＢＬの電圧よりも高い所定のプリチャージ電圧Ｖｐｒｅに充電する。この状態で、制御信号ＸＸＬを“Ｈ”にすると（ｔ３）、センスノードＳＥＮからトランジスタ４６、４２及び４３を介してビット線ＢＬに電流が流れ、センスノードＳＥＮの電圧は次第に低下する。
【０１０８】
センスノードＳＥＮの電圧は、ベリファイ対象のメモリセル（選択メモリセル）の閾値電圧の状態に応じて変化する。即ち、選択メモリセルＭＴの閾値電圧がベリファイ電圧Ｖｖよりも低いときは、選択メモリセルＭＴはオン状態であり、選択メモリセルＭＴに大きなセル電流が流れ、センスノードＳＥＮの電圧が低下する速度は速くなる。また、選択メモリセルＭＴの閾値電圧がベリファイ電圧Ｖｖよりも高いときは、選択メモリセルＭＴはオフ状態であり、選択メモリセルＭＴに流れるセル電流は、小さいか、又は、選択メモリセルＭＴにセル電流が流れず、センスノードＳＥＮの電圧が低下する速度は遅くなる。
【０１０９】
そこで、センスノードＳＥＮの電荷を放電し始める放電開始時ｔ３から第１期間が経過した第１時点ｔ４、即ち、制御信号ＸＸＬを"Ｈ"にしてから第１期間が経過した時点で、制御信号ＸＸＬを"Ｌ"にするとともに、制御信号ＳＴＢを"Ｈ"にしてトランジスタ４８をオンにすると、センスノードＳＥＮの電圧が"Ｌ"であるか"Ｈ"であるかに応じてトランジスタ４７がオン，オフする。
【０１１０】
例えば、選択メモリセルＭＴが書き込み不足セルであるときは、その閾値電圧がベリファイ電圧Ｖｖよりも低く、かつ、両者の差が大きいため、選択メモリセルＭＴは完全オン状態であり、選択メモリセルＭＴに大きなセル電流が流れる。このため、センスノードＳＥＮの電圧は、急速に低下し、電圧降下量は、時刻ｔ４に達する前にｄＶに達し、時刻ｔ４において、センスノードＳＥＮが“Ｌ”になり、トランジスタ４７はオフであってバスＬＢＵＳから基準電圧点には電流は流れない。
【０１１１】
また、選択メモリセルＭＴがパスライトセルであるときは、その閾値電圧がベリファイ電圧Ｖｖよりも低く、かつ、両者の差が小さいため、選択メモリセルＭＴに小さなセル電流が流れる。このため、センスノードＳＥＮの電圧は、緩やかに低下し、電圧降下量は時刻ｔ４に達する前にｄＶに達せず、時刻ｔ４において、センスノードＳＥＮは、“Ｈ”に対応する電圧のままとなる。従って、トランジスタ４７はオンであってバスＬＢＵＳから基準電圧点に電流が流れる。
【０１１２】
また、選択メモリセルＭＴが書き込み完了セルであるときは、その閾値電圧がベリファイ電圧Ｖｖよりも高いため、選択メモリセルＭＴはオフ状態であり、選択メモリセルＭＴに流れるセル電流は、非常に小さいか、又は、選択メモリセルＭＴにセル電流が流れない。このため、センスノードＳＥＮの電圧は、非常に緩やかに低下し、電圧降下量は時刻ｔ４に達する前にｄＶに達せず、時刻ｔ４において、センスノードＳＥＮは、“Ｈ”のままとなる。従って、トランジスタ４７はオンであってバスＬＢＵＳから基準電圧点に電流が流れる。
【０１１３】
このようにして、まず、書き込み不足セルの選別を行うことができる。図１５のＤＥＴ １は、第１時点ｔ４においてバスＬＢＵＳに電流が流れるか流れないかに応じて得られるセンスノードＳＥＮのレベルの検出結果、即ち、閾値電圧がベリファイローレベルを超えているか否かの検出結果を示すものである。 
【０１１４】
この後、図１３のｔ５において制御信号ＳＴＢをローレベルにして、トランジスタ４８をオフにする。続いて、ｔ６において再び制御信号ＸＸＬを"Ｈ"にする。次に、先の工程でセンスノードＳＥＮの電荷を放電した第１期間（ｔ３からｔ４）に加えて第２期間（ｔ６からｔ７）が経過した第２時点ｔ７で、制御信号ＸＸＬを"Ｌ"にするとともに、制御信号ＳＴＢを"Ｈ"にしてトランジスタ４８をオンにする。これにより、第２時点ｔ７においてセンスノードＳＥＮの電圧が"Ｌ"であるか"Ｈ"であるかに応じてトランジスタ４７がオン，オフする。
【０１１５】
例えば、選択メモリセルＭＴが書き込み不足セルであるときは、センスノードＳＥＮの電圧は、急速に低下し、既に、電圧降下量は、時刻ｔ４に達する前にｄＶに達しているため、時刻ｔ７においても、センスノードＳＥＮは“Ｌ”である。従って、従って、トランジスタ４７はオフであってバスＬＢＵＳから基準電圧点に電流が流れない。
【０１１６】
また、選択メモリセルＭＴがパスライトセルであるときは、その閾値電圧がベリファイ電圧Ｖｖよりも低く、かつ、両者の差が小さいため、選択メモリセルＭＴに小さなセル電流が流れる。このため、センスノードＳＥＮの電圧は、緩やかに低下し、電圧降下量は、時刻ｔ７に達する前にｄＶに達し、時刻ｔ７においてセンスノードＳＥＮは、“Ｌ”になる。従って、トランジスタ４７はオフであってバスＬＢＵＳから基準電圧点に電流が流れない。
【０１１７】
また、選択メモリセルＭＴが書き込み完了セルであるときは、その閾値電圧がベリファイ電圧Ｖｖよりも高いため、選択メモリセルＭＴに流れるセル電流は、非常に小さいか、又は、選択メモリセルＭＴにセル電流が流れない。このため、センスノードＳＥＮの電圧は、非常に緩やかに低下し、電圧降下量は、時刻ｔ７に達する前にｄＶに達せず、時刻ｔ７においてもセンスノードＳＥＮは、“Ｈ”のままとなる。従って、トランジスタ４７はオンであってバスＬＢＵＳから基準電圧点に電流が流れる。
【０１１８】
このようにして、パスライトセル及び書き込み完了セルの選別を行うことができる。図１３のＤＥＴ２は、第２時点ｔ７においてバスＬＢＵＳに電流が流れるか流れないかに応じて得られるセンスノードＳＥＮのレベルの検出結果、即ち、閾値電圧がベリファイローレベルとベリファイハイレベルの間の値であるか、ベリファイハイレベルを超えているかの検出結果を示している。
【０１１９】
図１３に示すように、例えば、ＤＥＴ１及びＤＥＴ２が共に"Ｌ"のときは、選択メモリセルＭＴは書き込み不足セルと認識され、ＤＥＴ１が"Ｈ"、ＤＥＴ２が"Ｌ"のときは、選択メモリセルＭＴはパスライトセルと認識され、ＤＥＴ１及びＤＥＴ２が共に"Ｈ"のときは、選択メモリセルＭＴは、書き込み完了セルと認識される。
【０１２０】
なお、上記のセンスアンプ部ＳＡの動作はあくまでも一例である。例えば、選択メモリセルＭＴの閾値電圧がベリファイハイレベルおよびベリファイローレベルを超えているかを検出するために、例えば、ワード線ドライバ２５によって選択ワード線にベリファイ電圧としてターゲットレベルに対応したベリファイ電圧Ｖｖおよびそれよりも少し低い電圧を連続して印加し、各ベリファイ電圧印加期間において選択メモリセルＭＴに流れる電流をセンスアンプ部ＳＡで検出してもよい。
【０１２１】
制御部２２は、書き込み不足セル、パスライトセル又は書き込み完了セルのいずれであるかの判定を行い、判定結果に基づいてセンスアンプ回路２４を制御してビット線電圧を設定する。この場合において、制御部２２は、パスライトプログラム動作時には、書き込み対象のメモリセルＭＴのレベル、ループ等に応じて、ＱＰＷ動作時の電圧を変化させるようになっている。
（データリテンションによる閾値分布への影響）
選択メモリセルＭＴへのデータの書き込み完了後、書き込まれたデータを保持した状態で期間が経過すること（データリテンション）によって閾値レベルが変動する場合がある。例えば、選択メモリセルＭＴへのデータの書き込みにおいて、電荷蓄積膜３３６への電荷の注入量が多く、かつ選択メモリセルＭＴに隣接するメモリセル（以下、「隣接メモリセル」または「隣接ワード線に接続されたメモリセル」などという）の電荷蓄積膜３３６に蓄積電荷量が少ない場合、書き込み完了後、選択メモリセルＭＴの閾値レベルが低下する可能性がある。また、例えば、選択メモリセルＭＴへのデータの書き込みにおいて、電荷蓄積膜３３６への電荷の注入量が少なく、かつ隣接メモリセルＭＴの電荷蓄積膜３３６に蓄積電荷量が多い場合、書き込み完了後、選択メモリセルＭＴの閾値レベルが上昇する可能性がある。
【０１２２】
言い換えれば、選択メモリセルＭＴの閾値レベルが高くかつ隣接メモリセルＭＴの閾値レベルが低い場合、選択メモリセルＭＴへのデータの書き込み後、選択メモリセルＭＴの閾値レベルの低下が生じえる。選択メモリセルＭＴの閾値レベルが低くかつ隣接メモリセルＭＴの閾値レベルが高い場合、選択メモリセルＭＴへのデータの書き込み後、選択メモリセルＭＴの閾値レベルの上昇が生じえる。
【０１２３】
以下の説明では、電荷の注入量が多いすなわち閾値レベルが高いメモリセルを高レベルメモリセルといい、電荷の注入量が少ないすなわち閾値レベルが低いメモリセルを低レベルメモリセルという。
【０１２４】
図１４及び図１５は、電荷蓄積膜３３６における電子の移動量を説明するための図である。
【０１２５】
選択ワード線ＷＬ（ｎ）の選択メモリセルＭＴのターゲットレベルの閾値が高いとき、選択ワード線ＷＬ（ｎ）に対応するメモリセルＭＴの電荷蓄積膜３３６には、多くの電荷（ここでは電子ｅ）が蓄積される。
【０１２６】
しかし、ワード線ＷＬ（ｎ）の高レベルメモリセルＭＴと同じチャネルの、高レベルメモリセルＭＴに隣接する１つ又は２つの隣接メモリセルＭＴの閾値レベルが、高レベルメモリセルＭＴの閾値レベルよりも低いとき、電荷が、電荷蓄積膜３３６を介して、高レベルメモリセルＭＴから隣接メモリセルＭＴへ移動する。
【０１２７】
図１４は、選択メモリセルＭＴが高レベルメモリセルであり、隣接メモリセルＭＴが低レベルメモリセルである場合を示している。この場合、高レベルメモリセルＭＴの電荷蓄積膜３３６の電荷は、隣接メモリセルＭＴの電荷蓄積膜３３６へ移動する。図１４に示すように、選択ワード線ＷＬ（ｎ）のゲート下の電荷蓄積膜３３６の電荷が、隣接ワード線ＷＬ（ｎ＋１）及びＷＬ（ｎ−１）のゲート下の電荷蓄積膜３３６へ流出する。
【０１２８】
図１５は、隣接メモリセルＭＴの電荷蓄積膜３３６の電荷量が、図１４の隣接メモリセルＭＴの電荷蓄積膜３３６の電荷量よりも、多い場合を示している。すなわち、図１５は、図１４の場合に比べて、隣接メモリセルＭＴの閾値レベルが高い場合を示している。
【０１２９】
図１５の高レベルメモリセルＭＴからの電荷の流出量は、図１４の場合の電荷の流出量によりも少ない。逆に言えば、図１４の高レベルメモリセルＭＴからの電荷の流出量は、図１５の場合の電荷の流出量によりも多い。図１４の矢印Ｒ１の長さが、図１５の矢印Ｒ２の長さよりも長く示すことにより、図１４の高レベルメモリセルＭＴからの電荷の流出量が、図１５の場合の電荷の流出量によりも多いことを示している。
【０１３０】
各メモリセルＭＴが多値を記憶する３次元構造のメモリセルＭＴの場合、データの書き込み後、時間の経過に伴い、このような電荷の移動が発生すると、隣接する閾値分布同士で一部が近づき又は重なってデータの読み出しにおけるマージンが低下する。
【０１３１】
図１６は、データリテンションによる閾値分布への影響を説明するための説明図である。なお、図１６では、ブロック絶縁膜３３５とゲート絶縁膜３３７は省略されている。図１６の左側には、ワードラインＷＬ（ｎ）に対応するメモリセルＭＴの電荷蓄積膜３３６には、高いターゲットレベルに対応して多くの電荷が保持されている状態が示されている。選択メモリセルＭＴの電荷量は、ターゲットレベルに応じた閾値分布に従う。図１６の左側の各閾値分布ＤＳは、ターゲットレベルに応じた閾値分布を示す。
【０１３２】
各閾値分布は、データの書き込み完了後、時間の経過に伴って、図１６の右側の点線で示す各閾値分布ＤＳから実線で示す閾値分布ＤＳｓに示すように、シフトする。高レベルメモリセルＭＴは、低レベル側へシフトし、低レベルメモリセルＭＴは、高レベル側へシフトする。その結果、閾値分布ＤＳｓ同士の一部が重なり、各ターゲットレベルに応じた閾値分布に基づいて設定された読み出し電圧を用いると、データの誤読み出しが発生する。
（閾値分布変動対策）
本実施形態では、選択メモリセルＭＴにデータの書き込みを行う前に、隣接するメモリセルＭＴのデータ（閾値レベル）を確認する。そして、隣接メモリセルＭＴのデータと、選択メモリセルＭＴのターゲットレベル（閾値レベル）の差に応じて、選択メモリセルＭＴへ注入する電荷量を変化させる。
【０１３３】
例えば、隣接メモリセルＭＴの閾値レベルが、選択メモリセルＭＴのターゲットレベルよりも低いときは、選択メモリセルＭＴへ注入する電荷量を多くする。また、隣接メモリセルＭＴの閾値レベルが、選択メモリセルＭＴのターゲットレベルよりも高いときは、選択メモリセルＭＴへ注入する電荷量を少なくする。
【０１３４】
ここでは、選択メモリセルＭＴのターゲットレベルと、隣接メモリセルＭＴの閾値レベルの状態に応じて、選択メモリセルＭＴへ注入する電荷量が変更される。選択メモリセルＭＴへ注入する電荷量を多くする場合は、隣接メモリセルＭＴの閾値レベルが所定の閾値レベル以上で選択メモリセルＭＴのターゲットレベルが所定の閾値レベル未満である場合である。選択メモリセルＭＴへ注入する電荷量を少なくする場合は、隣接メモリセルＭＴの閾値レベルが所定の閾値レベル未満で選択メモリセルＭＴのターゲットレベルが所定の閾値レベル以上である場合である。電荷量の注入量の変更は、ＱＰＷ動作時におけるＱＰＷ電圧Ｖｂｌ＿ｑｐｗの増減により行われる。
【０１３５】
図１７は、ＱＰＷ動作において、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗの増減の判断基準を示す図である。横軸は、選択メモリセルＭＴのターゲットレベルを示し、縦軸は、隣接メモリセルＭＴの閾値レベルを示す。
【０１３６】
選択メモリセルＭＴのターゲットレベルがＥｒからＣのいずれかであって、かつ２つの隣接メモリセルＭＴの閾値レベルが共にＤからＧのいずれかである場合、時間の経過に伴い、選択メモリセルＭＴの電荷の増加が生じる。この場合は、図１７における領域αに対応する。
【０１３７】
また、選択ワード線ＷＬ（ｎ）の各選択メモリセルＭＴのターゲットレベルがＤからＧのいずれかであって、かつ２つの隣接メモリセルＭＴの閾値レベルが共にＥｒからＣのいずれかであるとき、時間の経過に伴い、選択メモリセルＭＴの電荷の減少が生じる。この場合は、図１７における領域βの状態に対応する。
【０１３８】
制御部２２は、選択メモリセルＭＴへのデータの書き込み時にＱＰＷ動作を行うとき、選択メモリセルＭＴのターゲットレベルと隣接メモリセルＭＴの閾値レベルが図１７に示す領域αにある場合と、領域βにある場合とを判別する。制御部２２は、この判別結果に基づいて、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗの増減の要否を判定する。
【０１３９】
なお、ここでは、選択メモリセルＭＴのターゲットレベルのレベル範囲を、レベルＤを基準に、レベルＤ以上か否かで判定し、かつ隣接メモリセルＭＴの閾値レベル範囲もレベルＤ以上か否かで判定しているが、基準レベルは、Ｄでなくてもよく、さらに、ターゲットレベルのレベル範囲と、隣接メモリセルＭＴの閾値レベル範囲は異なっていてもよい。
【０１４０】
図１８は、ＱＰＷ動作時におけるＱＰＷ電圧Ｖｂｌ＿ｑｐｗの増減により閾値分布の変化を説明するための図である。
【０１４１】
ＱＰＷ動作は、メモリセルＭＴの閾値電圧がベリファイハイレベルのベリファイ電圧ＶｖＨとベリファイローレベルのベリファイ電圧ＶｖＬの間にあると判定されたときに実行される。選択メモリセルＭＴのターゲットレベル範囲と隣接メモリセルＭＴの閾値レベル範囲が上述した領域αの場合、制御部２２は、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗを上昇させる。その結果、閾値分布は、一点鎖線で示すように、閾値電圧が低い方へ移動する。また、選択メモリセルＭＴのターゲットレベル範囲と隣接メモリセルＭＴの閾値レベル範囲が上述した領域βの場合、制御部２２は、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗを減少させる。その結果、閾値分布は、二点鎖線で示すように、閾値電圧が高い方へ移動する。
【０１４２】
図１９は、本実施形態に関わる、選択メモリセルＭＴへのＱＰＷによる閾値分布の変化を説明するための図である。選択メモリセルＭＴへのデータの書き込み時に、選択メモリセルＭＴが高レベルメモリセルであってかつ隣接メモリセルＭＴが低レベルメモリセルである場合（領域βの場合）は、選択メモリセルＭＴの閾値電圧が上がるように、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗを低下させる。また、選択メモリセルＭＴへのデータの書き込み時に、選択メモリセルＭＴが低レベルメモリセルであって隣接メモリセルＭＴが高レベルメモリセルである場合（領域αの場合）は、閾値電圧が下がるように、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗを上昇させる。
【０１４３】
すなわち、図１９に示すように、高レベルメモリセルＭＴの閾値分布ＤＳは、右へシフトした閾値分布ＤＳｎとなり、低レベルメモリセルＭＴの閾値分布ＤＳは、左へシフトした閾値分布ＤＳｎとなるようには、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗが調整される。
【０１４４】
上述したように、選択メモリセルＭＴの閾値電圧が、隣接メモリセルＭＴの閾値電圧よりも高い場合、時間の経過に伴い、選択メモリセルＭＴの電荷が隣接メモリセルＭＴへ移動する。その結果、選択メモリセルＭＴの電荷量が減少し、選択メモリセルＭＴの閾値分布は、閾値電圧の低い方へ（図では左へ）シフトしてしまう。
【０１４５】
そこで、選択メモリセルＭＴの閾値電圧が、隣接メモリセルＭＴの閾値電圧よりも高い場合は、このような閾値分布のシフトを予め想定して、選択メモリセルＭＴへのデータの書き込み時の電荷量を多くする。言い換えれば、選択メモリセルＭＴのターゲットレベルと隣接メモリセルＭＴの閾値レベルとの差の状態が、選択メモリセルＭＴのターゲットレベルが隣接メモリセルＭＴの閾値レベルよりも高い状態であるとき、制御部２２は、ビット線電圧の変更においてビット線電圧を低下させる。
【０１４６】
その結果、高レベルメモリセルＭＴの閾値分布ＤＳは、右へシフトして閾値分布ＤＳｎとなる。時間の経過に伴い、閾値電圧が低下しても、選択メモリセルＭＴの閾値分布と隣接メモリセルＭＴの閾値分布同士は、重なり難い。
【０１４７】
同様に、選択メモリセルＭＴの閾値電圧が、隣接メモリセルＭＴの閾値電圧よりも低い場合、時間の経過に伴い、隣接メモリセルＭＴの電荷が選択メモリセルＭＴへ流入する。その結果、選択メモリセルＭＴの電荷量が増加し、選択メモリセルＭＴの閾値分布は、閾値電圧の高い方へ（図では右へ）シフトしてしまう。
【０１４８】
そこで、選択メモリセルＭＴの閾値電圧が、隣接メモリセルＭＴの閾値電圧よりも低い場合は、このような閾値分布のシフトを予め想定して、選択メモリセルＭＴへのデータの書き込み時の電荷量を少なくする。言い換えれば、選択メモリセルＭＴのターゲットレベルと隣接メモリセルＭＴの閾値レベルとの差の状態が、選択メモリセルＭＴのターゲットレベルが隣接メモリセルＭＴの閾値レベルよりも低い状態であるとき、制御部２２は、ビット線電圧の変更においてビット線電圧を低下させる。
【０１４９】
その結果、低レベルメモリセルＭＴの閾値分布ＤＳは、左へシフトして閾値分布ＤＳｎとなる。時間の経過に伴い、閾値電圧が上昇しても、選択メモリセルＭＴの閾値分布と隣接メモリセルＭＴの閾値分布同士は、重なり難い。
【０１５０】
以上のような選択メモリセルＭＴへの電荷注入量の変更は、ＱＰＷ時のＱＰＷ電圧Ｖｂｌ＿ｑｐｗを調整することにより行われる。選択メモリセルＭＴへのデータの書き込み時の電荷量を多くするときは、ＱＰＷ時のビット線電圧を低くするように調整される。選択メモリセルＭＴへのデータの書き込み時の電荷量を少なくするときは、ＱＰＷ時のビット線電圧を高くするように調整される。
【０１５１】
すなわち、選択メモリセルＭＴへのデータの書き込み時に、時間の経過に伴う閾値分布の変化を予め想定して、隣接メモリセルＭＴの閾値電圧に応じて閾値分布を変更する。これによって、時間の経過に伴う閾値分布の変化が起こったとしても、選択メモリセルＭＴの閾値分布と隣接メモリセルＭＴの閾値分布が、一部でも重ならないようにした。
【０１５２】
図２０は、制御部２２によるデータの書き込みの流れの例を示すフローチャートである。
【０１５３】
制御部２２は、書き込みコマンドを受信すると、その書き込みコマンドに係わる選択ワード線に隣接する隣接ワード線について各隣接メモリセルＭＴの閾値レベルの読み出しを実行する（ステップ（以下、Ｓと略す）１）。ここで、各隣接メモリセルＭＴの閾値レベルの読み出しとは、隣接ワード線の各隣接メモリセルＭＴの閾値電圧が、図１７で示した所定の閾値レベル、例えばレベルＤ以上であるか否かが判定のための読み出しである。よって、各隣接メモリセルＭＴの閾値レベルの読み出しとは、各隣接メモリセルＭＴがベリファイ電圧ＤＶ以上か否かを判定することである。
【０１５４】
選択ワード線ＷＬ（ｎ）の隣接ワード線は、図３における上下のワード線ＷＬ（ｎ−１）、ＷＬ（ｎ＋１）である。もしも、選択ワード線ＷＬ（ｎ）の上又は下にワード線がないときは、下又は上のワード線のみについて閾値レベルの読み出しが行われる。
【０１５５】
制御部２２は、読み出し結果の情報（各隣接メモリセルＭＴがベリファイ電圧ＤＶ以上か否かの情報）を、選択ワード線ＷＬ（ｎ）のデータラッチへ格納する（Ｓ２）。ここでは、データラッチは、選択ワード線ＷＬ（ｎ）の各センスアンプユニットＳＡＵの２つのラッチ回路ＤＤＬである。
【０１５６】
各選択メモリセルＭＴについて、上下のワード線ＷＬ（ｎ−１）、ＷＬ（ｎ＋１）の２つの隣接メモリセルＭＴの閾値レベルの状態が２つのラッチ回路ＤＤＬに格納される。よって、各センスアンプユニットＳＡＵの２つのラッチ回路ＤＤＬに、２つの隣接メモリセルＭＴの閾値レベルの情報が格納される。
【０１５７】
なお、データの書き込みがデータ消去後にワード線ＷＬ（０）から順番に行われていくような場合、及びストリングユニットＳＵの端部のワード線ＷＬ（７）のときは、１つの隣接メモリセルＭＴの閾値レベルの情報のみが、２つのラッチ回路ＤＤＬの一方に格納される。
【０１５８】
さらになお、ここでは、ラッチ回路ＤＤＬが２つあるが、隣接メモリセルＭＴの閾値データを格納するラッチ回路ＤＤＬが１つの場合は、上下のワード線の隣接メモリセルＭＴの２つの閾値データの一つでも、図１７に示すような状態（領域α、β）の場合にあるかの情報が、１つのラッチ回路ＤＤＬに格納される。
【０１５９】
また、２つの隣接メモリセルＭＴの一方だけが図１７に示すような状態（領域α、β）にあるときは、他方の隣接メモリセルＭＴのさらに隣のメモリセル（以下、隣々接メモリセルという）の閾値レベルを読み出すようにしてもよい。その場合、隣々接メモリセルの閾値データも使って、図１７に示すような状態（領域α、β）の場合のいずれであるかが判断される。例えば、隣々接メモリセルとして、ワード線ＷＬ（ｎ−２）又はＷＬ（ｎ−２）のメモリセルＭＴの閾値レベルが読み出され、読み出された閾値レベルの情報が１つのラッチ回路ＤＤＬに上書きされる。
【０１６０】
制御部２２は、選択ワード線ＷＬ（ｎ）への書き込み動作を実行する（Ｓ３）。書き込み動作では、上述したＱＰＷ動作も行われる。書き込み動作は、上述したように、プログラム動作とベリファイ動作を含み、実効プログラム電圧をΔＶｐｇｍだけ増加させながら行われる。そして、ターゲットレベルの領域の各メモリセルＭＴに対してベリファイ電圧Ｖｖを用いたベリファイ動作が行われたときに、読み出された閾値電圧がベリファイローレベルとベリファイハイレベルの間の値の場合には、実効プログラム電圧の増加分をΔＶｐｇｍよりも小さい電圧に設定することにより、ＱＰＷ動作が実行される。すなわち、ベリファイ動作において、選択メモリセルＭＴの閾値電圧がベリファイローレベルとベリファイハイレベルとの間にあるときは、上述したＱＰＷ動作が実行される。よって、Ｓ３では、ＱＰＷ動作が実行されない場合もある。
【０１６１】
以上のように、制御部２２は、書き込みコマンドを受信すると、選択メモリセルＭＴへのプログラム動作を実行する前に、隣接メモリセルＭＴの閾値レベルを読み出す。その後、データの書き込みを実行する。データの書き込みの途中で、読み出された閾値電圧がベリファイローレベルとベリファイハイレベルの間の値の場合には、実効プログラム電圧の増加分をΔＶｐｇｍよりも小さい電圧に設定することにより、ＱＰＷ動作が実行される。
【０１６２】
図２１は、Ｓ３において、ＱＰＷ動作が実行されるときの処理の流れの例を示すフローチャートである。ＱＰＷ動作が実行されるとき、Ｓ１で読みされた隣接ワード線の読み出し結果に応じて、ＱＰＷ動作時のＱＰＷ電圧Ｖｂｌ＿ｑｐｗが変更される。
【０１６３】
制御部２２は、Ｓ３においてＱＰＷ動作を実行するとき、選択メモリセルＭＴのターゲットレベルが低レベルで、かつ隣接メモリセルＭＴの閾値レベルが高レベルであるかを判定する（Ｓ１１）。
【０１６４】
選択メモリセルＭＴのターゲットレベルは、データラッチであるラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬに格納されている。隣接メモリセルＭＴの閾値レベルは、Ｓ２により２つのラッチ回路ＤＤＬに格納されている。よって、制御部２２は、ターゲットレベルを示すラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬの各値と、２つのラッチ回路ＤＤＬの各値とに基づいて、選択メモリセルＭＴのターゲットレベルと隣接メモリセルＭＴの閾値レベルが上述した領域α、βにあるか否かを判定することができる。
【０１６５】
選択メモリセルＭＴのターゲットレベルが低レベルで、かつ隣接メモリセルＭＴの閾値レベルが高レベルであるとき、すなわち選択メモリセルＭＴのターゲットレベルと隣接メモリセルＭＴの閾値レベルが領域αにあるとき（Ｓ１１：ＹＥＳ）、制御部２２は、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗに対して所定の増加分の電圧Ｖαを加算した、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗよりも高いバイアス電圧で、ＱＰＷを実行する（Ｓ１２）。その結果、Ｓ１２のＱＰＷ動作により、選択メモリセルＭＴへ注入する電荷量は、減少する。
【０１６６】
選択メモリセルＭＴのターゲットレベルが低レベルでない、あるいは隣接メモリセルＭＴの閾値レベルが高レベルでないとき（Ｓ１１：ＮＯ）、制御部２２は、選択メモリセルＭＴのターゲットレベルが高レベルで、かつ隣接メモリセルＭＴの閾値レベルが低レベルであるかを判定する（Ｓ１３）。
【０１６７】
選択メモリセルＭＴのターゲットレベルが高レベルで、かつ隣接メモリセルＭＴの閾値レベルが低レベルであるとき、すなわち選択メモリセルＭＴのターゲットレベルと隣接メモリセルＭＴの閾値レベルが領域βにあるとき（Ｓ１３：ＹＥＳ）、制御部２２は、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗに対して所定の増加分の電圧Ｖβを減算した、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗよりも低いバイアス電圧で、ＱＰＷを実行する（Ｓ１４）。その結果、Ｓ１４のＱＰＷ動作により、選択メモリセルＭＴへ注入する電荷量は、増加する。
【０１６８】
以上のように、制御回路である制御部２２は、各メモリセルＭＴへのデータの書き込み動作において、データの書き込み動作の対象となる選択ワード線ＷＬに接続された選択メモリセルＭＴのターゲットレベルと、選択メモリセルＭＴに隣接する隣接メモリセルＭＴ（選択メモリセルＭＴに接続される選択ワード線に隣接する隣接ワード線に接続されるメモリセルＭＴ）の閾値レベルとの差の状態に応じて、選択メモリセルＭＴのビット線電圧の変更を行うようにセンスアンプ回路２４を制御する。
【０１６９】
具体的には、その差の状態が、選択メモリセルＭＴのターゲットレベルが、複数のレベルの中の所定の第１の閾値レベル（上述に例では、レベルＤ）以上で、かつ隣接メモリセルＭＴの閾値レベルがその第１の閾値レベル未満である状態のとき、制御部２２は、ビット線電圧の変更では、ビット線電圧を低下させる。
【０１７０】
また、その差の状態が、選択メモリセルＭＴのターゲットレベルが、複数のレベルの中の第２の閾値レベル（上述に例では、レベルＤ）未満で、かつ隣接メモリセルＭＴの閾値レベルが第２の閾値レベル以上である状態のとき、制御部２２、ビット線電圧の変更では、ビット線電圧を上昇させる。
【０１７１】
選択メモリセルＭＴのターゲットレベルが高レベルでない、あるいは隣接メモリセルＭＴの閾値レベルが高レベルであるとき（Ｓ１３：ＮＯ）、制御部２２は、通常のバイアス電圧、すなわちＱＰＷ電圧Ｖｂｌ＿ｑｐｗをビット線ＢＬに印加してＱＰＷ動作を実行する（Ｓ１５）。また、２つの隣接メモリセルＭＴが共に、領域αにもあるいは領域βにもない場合は、通常のＱＰＷ動作が実行される。以上のＱＰＷ電圧の調整は、ビット線ＢＬ毎に行われる。
【０１７２】
なお、上述した例では、選択メモリセルＭＴに対して隣接する２つの隣接メモリセルＭＴが共に、領域αにあるかあるいは領域βにある場合に、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗの変更を行っているが、２つのうちの１つでも、領域αにあるかあるいは領域βにある場合に、ＱＰＷ電圧の変更を行うようにしてもよい。
【０１７３】
さらになお、電圧Ｖα及びＶβは、上述した例ではどの選択ワード線ＷＬにおいても一定であるが、選択ワード線ＷＬ０〜ＷＬ７に応じて異なるようにしてもよい。これにより、図３に示すＤ３方向におけるメモリセルＭＴの製造バラツキによるデータリテンションによる電荷の移動量が異なる場合に対応することができる。
【０１７４】
図２２は、選択ワード線と隣接ワード線の波形図である。制御部２２がＩ／Ｏインターフェイス２１を介して書き込みコマンドを受信すると、選択ワード線ＷＬ（ｎ）では、プログラムループが、すなわち各選択メモリセルＭＴに対するプログラム動作が、開始される。図２２に示すように、書き込み動作は、選択メモリセルの閾値電圧を上昇させるためにプログラム電圧Ｖｐｇｍを印加するプログラム動作と、選択メモリセルの閾値電圧が十分に上昇したかどうかを検証するためにベリファイ電圧Ｖｖを印加するベリファイ動作からなるプログラムループ（ループ）が繰り返される。プログラムープの数は、例えば、予め決められており、各ターゲットレベルにおいてプログラム電圧の印加とベリファイ電圧の印加するループの範囲も予め設定されている。
【０１７５】
隣接ワード線ＷＬ（ｎ＋１）、ＷＬ（ｎ−１）のデータ読み出しのために、非選択ワード線ＷＬには、レベルＧの閾値電圧ＧＶよりも大きな読み出し電圧Ｖｐａｓｓ＿ｒｅａｄが印加され、選択ワード線ＷＬ（ｎ）には、電圧Ｖｒｅａｄが印加され、隣接ワード線には、所定の電圧Ｖｃｇｒｖが印加される。隣接ワード線ＷＬ（ｎ＋１）、ＷＬ（ｎ−１）のデータ読み出し後に、データの書き込みが行われる。
【０１７６】
以上のように、上述した実施形態では、プログラム動作の前に、同じチャネルの隣接メモリセルＭＴの閾値レベルを読み出し、ＱＰＷ動作時に、その読み出し結果に応じて選択メモリセルへの閾値電圧をターゲットレベルより高いあるいは低い閾値に書き込むことにより、書き込み完了後のデータを保持した状態で時間が経過すること（データリテンション）による閾値の低下を補正する。
【０１７７】
その結果、時間の経過に伴う閾値電圧の変動に対して、選択メモリセルＭＴのロバストな閾値分布を形成して、データの誤読み出しを低減し信頼性の高い、半導体記憶装置を実現することができる。
【０１７８】
言い換えれば、ＱＰＷ動作におけるＱＰＷ電圧Ｖｂｌ＿ｑｐｗを変動させることにより、実効プログラム電圧を変化させる。ＱＰＷ電圧Ｖｂｌ＿ｑｐｗの変動のために、プラス又はマイナスのバイアス電圧がＱＰＷ電圧Ｖｂｌ＿ｑｐｗに加えられる。結果として、時間の経過に伴って隣り合う閾値分布が重なってしまうことを抑制する。
【０１７９】
以上のように、上述した実施形態によれば、データリテンションによる閾値電圧変化の影響を抑制した半導体記憶装置を提供することができる。
【０１８０】
次に、上述した実施形態の変形例を説明する。
（変形例１）
上述した実施形態では、隣接ワード線の読み出しは、書き込み動作における最初のプログラムループの前に行われているが、書き込み動作の途中のプログラムループの前に行うようにしてもよい。
【０１８１】
例えば、図５に示すようなデータコーディングの場合、レベルＣのターゲットレベルまでのデータの書き込みに相当するプログラムループが終了した後は、下位ページのデータは、全て「０」であるので、下位ページのデータラッチであるラッチ回路ＣＤＬを使用しない、すなわちラッチ回路ＣＤＬを開放することができる。その開放されたラッチ回路ＣＤＬに、隣接メモリセルＭＴの閾値データの状態を格納するようにしてもよい。さらに、レベルＥのターゲットレベルまでのデータ書き込みが終了した後は、上位ページのデータは、全て「０」であるので、上位ページのデータラッチであるラッチ回路ＡＤＬを使用しない、すなわちラッチ回路ＡＤＬを開放することができる。その開放されたラッチ回路ＡＤＬ、ＣＤＬに、隣接メモリセルＭＴの閾値データの状態を格納するようにしてもよい。
【０１８２】
図２３は、本変形例１に係わる制御部２２によるデータの書き込みの流れの例を示すフローチャートである。図２３において、図２０と同じ処理については、同じステップ番号を付し説明は省略し、異なる点のみ説明する。
【０１８３】
制御部２２は、書き込み動作が所定の段階まで進行したかを判定する（Ｓ２１）。例えば、図５におけるレベルＣに相当するプログラムループまで、書き込みが終了したかが判定される。
【０１８４】
書き込み動作が所定の閾値レベルまで終了したとき（Ｓ２１：ＹＥＳ）、制御部２２は、所定のラッチ回路を開放する（Ｓ２２）。例えば、図７のデータコーディングの場合、レベルＤ以上に相当するプログラムループにおいては、ラッチ回路ＣＤＬの値は、全て「０」なので、使用しなくてもよい。よって、ラッチ回路ＣＤＬが開放される。
【０１８５】
その後は、上述したＳ１からＳ３の処理が実行される。Ｓ２の所定のデータラッチは、Ｓ２２で開放されたラッチ回路である。Ｓ３においてＱＰＷ動作が実行される場合、上述した実施形態と同様の処理が実行される。
【０１８６】
また、書き込み動作が所定の段階まで進行していないとき（Ｓ２１：ＮＯ）、処理は、Ｓ３へ移行する。本変形例によれば、隣接メモリセル専用のラッチ回路が不要となる。
【０１８７】
なお、データコーディングのパターンは、図５に示すデータの割り付けパターン以外のパターンもあるので、ラッチ回路ＢＤＬも開放できるときは、ラッチ回路ＢＤＬに、隣接メモリセルＭＴの閾値データの状態を格納するようにしてもよい。
【０１８８】
その場合、２つのラッチ回路ＢＤＬ、ＣＤＬを使用しなくてもよい閾値レベルまで書き込み動作が進行してから、Ｓ２２において２つのラッチ回路ＢＤＬ、ＣＤＬが開放されて、隣接メモリセルＭＴの閾値レベルの状態が２つのラッチ回路ＢＤＬ、ＣＤＬに格納される。
【０１８９】
本変形例によれば、書き込み動作は、複数のプログラムループを含む。各プログラムループは、選択ワード線ＷＬにプログラム電圧Ｖｐｇｍを印加するプログラム動作と、選択ワード線ＷＬにベリファイ電圧を印加するベリファイ動作からなるプログラムプログラムループとを含む。複数のプログラムループは、複数レベルのうち低い閾値レベルに対応するプログラムループから高い閾値レベルに対応するプログラムループに順番に実行される。制御部２２は、複数レベルについての低い閾値レベルから高い閾値レベルに順番に、書き込みシーケンスを実行する途中から、所定のプログラムループの前に、隣接メモリセルＭＴの閾値レベルが読み出される。すなわち、制御部２２は、複数のプログラムループの一部が終了した段階で隣接メモリセルの閾値レベルを読み出す。そして、制御部２２は、読み出した隣接メモリセルＭＴの閾値レベルのデータを、その後のプログラムループにおいて使用されない複数のラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬの少なくとも１つに格納する。よって、隣接メモリセルＭＴのための専用のラッチ回路が不要となる。
（変形例２）
上述した実施形態では、図１７に示すような選択メモリセルＭＴのターゲットレベルと隣接メモリセルＭＴの閾値レベルが、どの領域にあるかに基づいて、ビット線ＢＬへのＱＰＷ電圧の変更を行っているが、選択メモリセルＭＴのターゲットレベルと隣接メモリセルＭＴの閾値レベルとの差が所定のレベル以上の差があるか否かに基づいて、ビット線ＢＬへのＱＰＷ電圧の変更を行うようにしてもよい。
【０１９０】
例えば、選択メモリセルＭＴのターゲットレベルがＡで、隣接メモリセルＭＴの閾値レベルがＤであるとき、レベル差は＋３である。このレベル差が３以上であるときには、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗを上昇するように、ビット線ＢＬへのＱＰＷ電圧の変更を行う。このレベル差が３未満であるときには、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗの変更は行わない。
【０１９１】
また、選択メモリセルＭＴのターゲットレベルがＥで、隣接メモリセルＭＴの閾値レベルがＡであるとき、レベル差が−４である。そのときは、このレベル差が３以上であるので、ＱＰＷ電圧Ｖｂｌ＿ｑｐｗを下降するように、ビット線ＢＬへのＱＰＷ電圧の変更を行う。
【０１９２】
以上のように、選択メモリセルＭＴのターゲットレベルと隣接メモリセルＭＴの閾値レベルとの差が所定のレベル以上の差があるか否かに基づいて、ビット線ＢＬへのＱＰＷ電圧Ｖｂｌ＿ｑｐｗの変更を行うようにしてもよい。
【０１９３】
なお、レベル判断用の差分値について複数の範囲を設けて、選択メモリセルＭＴのターゲットレベルと隣接メモリセルＭＴの閾値レベルとの差がどの差分値の範囲に属するかを判定し、差が属する差分値の範囲に応じて予め設定された調整量を用いて、ビット線ＢＬへのＱＰＷ電圧の変更を行うようにしてもよい。この場合、複数の範囲に応じたラッチ回路が必要となるが、差分値に応じたＱＰＷ電圧Ｖｂｌ＿ｑｐｗの調整をすることができる。
（第２の実施形態）
第２の実施形態では、データの書き込みを２段階で行う場合に、ＱＰＷ動作のＱＰＷ電圧Ｖｂｌ＿ｑｐｗの調整が行われる。
【０１９４】
本実施形態のメモリシステム及び不揮発性メモリの構成は、第１の実施形態のメモリシステム及び不揮発性メモリと同じであるので、同じ構成要素については同じ符合を付して説明は省略し、異なる構成についてのみ説明する。
【０１９５】
２段階書き込み方式では、データの書き込みを行うメモリセルＭＴを含むブロックＢＬＫに対する一括消去の実行後、第１書き込み動作によって各ターゲットレベルのデータが大まかに書き込まれた後、第２書き込み動作によって各ターゲットレベルのデータが精度よく書き込まれる。すなわち、本実施形態における書き込み動作は、第１書き込み動作と第２書き込み動作を含む。
【０１９６】
メモリセルアレイ２３へのデータの書き込みは、制御部２２により行われる。制御部２２は、第１書き込み動作と第２書き込み動作を行うように、プログラム電圧Ｖｐｇｍ及びビット線電圧を制御する。第１書き込み動作では、図５に示すような各閾値分布幅よりも大きな幅を有する複数のレベルのデータが、複数のメモリセルＭＴへ書き込まれる。第２書き込み動作は、第１書き込み動作の後に行われ、図５に示すような閾値分布幅を有する複数のレベルＡ〜Ｇのデータが、複数のメモリセルＭＴへ書き込まれる。
【０１９７】
すなわち、制御部２２は、各々が図５に示すような閾値分布幅よりも広い閾値分布幅を有する複数のレベルのデータを複数のメモリセルＭＴへ書き込む第１書き込み動作、及び、その第１書き込み動作の後に行われ各々が図５に示すような閾値分布幅（図５）を有する複数の状態のデータを複数のメモリセルＭＴへ書き込む第２書き込み動作を行うように、プログラム電圧Ｖｐｇｍ及びビット線電圧を制御する。
【０１９８】
図２４は、一つのワード線ＷＬについての書き込み動作を模式的に示す図である。時刻ｔ１１で第１書き込み動作が開始され、時刻ｔ１２で第１書き込み動作が終了した後に第２書き込み動作が開始され、時刻ｔ１３で第２書き込み動作が終了する。以下、第１書き込み動作を、フォギー書き込みといい、第２書き込み動作を、ファイン書き込みという。
【０１９９】
なお、フォギー書き込みとファイン書き込みは、隣接ワード線干渉を低減するために、ｋを０〜７の整数のいずれかとすれば、ワード線ＷＬ（ｋ）のフォギー書き込みをした後の次には、ワード線ＷＬ（ｋ＋１）のフォギー書き込みをし、その後に、ワード線ＷＬ（ｋ）のファイン書き込みを実行する、というような順序で実行される。図２４では、模式的に、時刻ｔ１２で第１書き込み動作が終了した後に第２書き込み動作が開始される様子を示している。しかし、隣接ワード線干渉を低減するために、あるワード線ＷＬｋに対応するあるメモリセルＭＴ（メモリセルグループＭＧ）に対して第１書き込み動作が終了する時刻と、第２書き込み動作が開始される時刻との間には、少なくとも、同じストリングユニットＳＵｊ（ｊは０〜３の整数のいずれか）においてワード線ＷＬ（ｋ＋１）に対応する他のメモリセルＭＴ（メモリセルグループＭＧ）に対する第１書き込み動作が実行される。
【０２００】
図２５は、第１書き込み動作および第２書き込み動作の実行順序の例を示す図である。例えば、１番目から４番目の動作として、ワード線ＷＬ０に対応したメモリセルグループＭＧに対する第１書き込み動作が実行される。次に、５番目から８番目の動作として、ワード線ＷＬ１に対応したメモリセルグループＭＧに対する第１書き込み動作が実行される。
【０２０１】
次に、９番目から１２番目の動作として、ワード線ＷＬ０に対応したメモリセルグループＭＧに対する第２書き込み動作が実行される。以下同様の実行順序で、動作が繰り返される。例えば、このような動作順序の場合、ストリングユニットＳＵ０においてワード線ＷＬ０に対応するメモリセルグループＭＧに対するデータの書き込みが完了するのは、９番目の動作が終了した時刻である。
【０２０２】
２段階書き込みが行われるときは、フォギー書き込みが行われていない隣接ワード線は、閾値レベルが不明であるので、図２０のＳ１における読み込み対象とせずに、Ｓ１では、フォギー書き込みが行われた隣接ワード線とファイン書き込みが行われた隣接ワード線が、Ｓ１における読み込み対象とされる。
【０２０３】
フォギー書き込みとファイン書き込みが、図２５のように、ワード線間で行われるとき、フォギー書き込みがワード線ＷＬ（ｎ）に行われ、ファイン書き込みがワード線ＷＬ（ｎ−１）に行われ、フォギー書き込みがワード線ＷＬ（ｎ＋１）に行われ、ファイン書き込みがワード線ＷＬ（ｎ）に行われる。
【０２０４】
この場合、ファイン書き込みがワード線ＷＬ（ｎ−１）に行われるときは、Ｓ１では、ワード線ＷＬ（ｎ）とワード線ＷＬ（ｎ−２）が隣接ワード線の２つのワード線の各ビット線ＢＬの閾値レベルが読み出される。
【０２０５】
フォギー書き込みがワード線ＷＬ（ｎ＋１）に行われるときは、Ｓ１では、ワード線ＷＬ（ｎ）のみが隣接ワード線として、各ビット線ＢＬの閾値レベルが読み出される。
【０２０６】
ファイン書き込みがワード線ＷＬ（ｎ）に行われるときは、Ｓ１では、ワード線ＷＬ（ｎ＋１）とワード線ＷＬ（ｎ−１）が隣接ワード線の２つのワード線の各ビット線ＢＬの閾値レベルが読み出される。
【０２０７】
なお、ＱＰＷ動作は、ファイン書き込みにおいてのみ行うようにしてもよいし、フォギー書き込みとファイン書き込みの両書き込み時に行うようにしてもよい。さらになお、ＱＰＷ動作は、フォギー書き込みのときだけも適用してもよい。
【０２０８】
よって、以上のように、上述した第２の実施形態によっても、データリテンションによる閾値電圧変化の影響を抑制した半導体記憶装置を提供することができる。
【０２０９】
第１の実施形態の各変形例は、第２の実施形態においても適用可能である。
【０２１０】
上述した各実施形態及び各変形例によれば、書き込み完了後のデータを保持した状態で時間が経過すること（データリテンション）による閾値電圧変化の影響を抑制した半導体記憶装置を提供することができる。
【０２１１】
なお、上述した各実施形態及び各変形例では、メモリセルＭＴは、３ビット（８値）のデータを保持可能なＴＬＣ（Ｔｒｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）であるが、上述した各実施形態及び各変形例は、２ビット（４値）のデータを保持可能なＭＬＣ（Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）、または４ビット（１６値）のデータを保持可能なＱＬＣ（Ｑｕａｄ  Ｌｅｖｅｌ  Ｃｅｌｌ）などの他の多値メモリにも適用可能である。
【０２１２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２１３】
１  メモリコントローラ、２  不揮発性メモリ、１２  プロセッサ、１３  ホストインターフェイス、１４  ＥＣＣ回路、１５  メモリインターフェイス、１６  内部バス、２１  インターフェイス、２２  制御部、２３  メモリセルアレイ、２４  センスアンプ回路、２５  ワード線ドライバ、４０〜４８  トランジスタ、４９  キャパシタ、５０，５１  インバータ、５２，５３  トランジスタ、３３１、３３２、３３３  配線層、３３４  メモリホール、３３５  ブロック絶縁膜、３３６  電荷蓄積膜、３３７  ゲート絶縁膜、３３８  導電体柱、３３９、３４０  コンタクトプラグ。
【図１】
2020149742.tif 000003
【図２】
2020149742.tif 000004
【図３】
2020149742.tif 000005
【図４】
2020149742.tif 000006
【図５】
2020149742.tif 000007
【図６】
2020149742.tif 000008
【図７】
2020149742.tif 000009
【図８】
2020149742.tif 000010
【図９】
2020149742.tif 000011
【図１０】
2020149742.tif 000012
【図１１】
2020149742.tif 000013
【図１２】
2020149742.tif 000014
【図１３】
2020149742.tif 000015
【図１４】
2020149742.tif 000016
【図１５】
2020149742.tif 000017
【図１６】
2020149742.tif 000018
【図１７】
2020149742.tif 000019
【図１８】
2020149742.tif 000020
【図１９】
2020149742.tif 000021
【図２０】
2020149742.tif 000022
【図２１】
2020149742.tif 000023
【図２２】
2020149742.tif 000024
【図２３】
2020149742.tif 000025
【図２４】
2020149742.tif 000026
【図２５】
2020149742.tif 000027