(57)【要約】【課題】信頼性を向上できる。【解決手段】実施形態の半導体記憶装置は、メモリセルＭＴとビット線ＢＬとセンスアンプ１５とを含む。書き込み動作は、プログラムと第１及び第２ベリファイとを含むプログラムループを繰り返す。プログラムは、第１ベリファイをフェイルした場合に実行される第１プログラムと、第１ベリファイをパスし第２ベリファイをフェイルした場合に実行される第２プログラムとを含む。第２ベリファイは、第１条件に基づいて実行される。書き込み動作を中断していない場合、第１ベリファイは第１条件と異なる第２条件に基づいて実行され、書き込み動作を中断した場合、書き込み動作を再開した後の最初の第１ベリファイは第１及び第２条件と異なる第３条件に基づいて実行される。【選択図】      図８
2018142388.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルと、
前記メモリセルに接続されたビット線と、
前記ビット線に接続されたセンスアンプと
を備え、
書き込み動作は、プログラムと第１及び第２ベリファイとを含むプログラムループを繰り返し、
前記プログラムは、前記第１ベリファイをフェイルした場合に前記ビット線に第１電圧を印加する第１プログラムと、前記第１ベリファイをパスし前記第２ベリファイをフェイルした場合に前記ビット線に第２電圧を印加する第２プログラムとを含み、
前記第２ベリファイは、第１条件に基づいて実行され、
前記書き込み動作を中断していない場合、前記第１ベリファイは前記第１条件と異なる第２条件に基づいて実行され、前記書き込み動作を中断した場合、前記書き込み動作を再開した後の最初の前記第１ベリファイは前記第１及び第２条件と異なる第３条件に基づいて実行される半導体記憶装置。
【請求項２】
前記第１条件において、前記センスアンプは、第１センス期間、前記ビット線の電圧をセンスし、
前記第２条件において、前記センスアンプは、前記第１センス期間よりも短い第２センス期間、前記ビット線の前記電圧をセンスし、
前記第３条件において、前記センスアンプは、前記第２センス期間よりも短い第３センス期間、前記ビット線の前記電圧をセンスする請求項１記載の半導体記憶装置。
【請求項３】
前記メモリセルのゲートに接続されたワード線と、
前記ワード線に接続されたロウデコーダと
を更に備え、
前記第１条件において、前記ロウデコーダは、前記ワード線に第３電圧を印加し、
前記第２条件において、前記ロウデコーダは、前記ワード線に前記第３電圧より低い第４電圧を印加し、
前記第３条件において、前記ロウデコーダは、前記ワード線に前記第４電圧より低い第５電圧を印加する請求項１記載の半導体記憶装置。
【請求項４】
メモリセルと、
前記メモリセルのゲートに接続されたワード線と、
前記ワード線に接続されたロウデコーダと
を備え、
書き込み動作は、前記ワード線にプログラムパルスを印加するプログラムと、第１及び第２ベリファイとを含むプログラムループを繰り返し、
前記書き込み動作を中断していない場合、前記プログラムパルスの電圧は、前記プログラムループを繰り返す毎にステップアップされ、
前記書き込み動作を中断した場合、前記書き込み動作を再開した後の最初の前記プログラムパルスの前記電圧は、前記書き込み動作を中断する前の最後の前記プログラムパルスの前記電圧と同じである半導体記憶装置。
【請求項５】
前記書き込み動作を中断する場合、前記第１及び第２ベリファイの途中あるいは前記第１及び第２ベリファイ終了後に前記書き込み動作を中断する請求項１乃至４のいずれか一項記載の半導体記憶装置。
【請求項６】
請求項１乃至５のいずれか一項記載の半導体記憶装置と、
前記半導体記憶装置に、書き込み動作を中断させる場合に第１コマンドを送信し、書き込み動作を再開させる場合に第２コマンドを送信するコントローラと
を備えるメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置及びメモリシステムに関する。
【背景技術】
【０００２】
半導体記憶装置として、ＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２０６８２号公報
【特許文献２】特開２０１４−１８６７８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
信頼性を向上できる半導体記憶装置及びメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態に係る半導体記憶装置は、メモリセルと、メモリセルに接続されたビット線と、ビット線に接続されたセンスアンプとを含む。書き込み動作は、プログラムと第１及び第２ベリファイとを含むプログラムループを繰り返す。プログラムは、第１ベリファイをフェイルした場合にビット線に第１電圧を印加する第１プログラムと、第１ベリファイをパスし第２ベリファイをフェイルした場合にビット線に第２電圧を印加する第２プログラムとを含む。第２ベリファイは、第１条件に基づいて実行される。書き込み動作を中断していない場合、第１ベリファイは第１条件と異なる第２条件に基づいて実行され、書き込み動作を中断した場合、書き込み動作を再開した後の最初の第１ベリファイは前記第１及び第２条件と異なる第３条件に基づいて実行される。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るメモリシステムのブロック図である。
【図２】図２は、第１実施形態に係る半導体記憶装置のブロック図である。
【図３】図３は、第１実施形態に係る半導体記憶装置の備えるメモリセルアレイの回路図である。
【図４】図４は、第１実施形態に係る半導体記憶装置の備えるメモリセルアレイの断面図である。
【図５】図５は、第１実施形態に係る半導体記憶装置の備えるセンスアンプの回路図である。
【図６】図６は、第１実施形態に係る半導体記憶装置の備えるメモリセルトランジスタの閾値分布図である。
【図７】図７は、第１実施形態に係る半導体記憶装置におけるベリファイのターゲットレベルの一例を示す図である。
【図８】図８は、第１実施形態に係る半導体記憶装置におけるベリファイ動作時のノードＳＥＮの電圧とセンス期間の関係を示すグラフである。
【図９】図９は、第１実施形態に係るメモリシステムにおける書き込み動作を示すフローチャートである。
【図１０】図１０は、第１実施形態に係る半導体記憶装置における書き込み動作を示すフローチャートである。
【図１１】図１１は、第１実施形態に係る半導体記憶装置における書き込み動作を示すフローチャートである。
【図１２】図１２は、第１実施形態に係る半導体記憶装置におけるプログラム動作時の各配線の電圧を示すタイミングチャートである。
【図１３】図１３は、第１実施形態に係る半導体記憶装置におけるベリファイ動作時の各配線の電圧を示すタイミングチャートである。
【図１４】図１４は、第１実施形態に係るメモリシステムにおける書き込み動作時の各種信号のタイミングチャートである。
【図１５】図１５は、第１実施形態に係るメモリシステムにおけるサスペンドを含む書き込み動作を示すタイミングチャートである。
【図１６】図１６は、書き込み動作の途中でサスペンドを行った場合のメモリセルトランジスタの閾値分布図である。
【図１７】図１７は、第２実施形態に係る半導体記憶装置における書き込み動作を示すフローチャートである。
【図１８】図１８は、第２実施形態に係る半導体記憶装置における書き込み動作を示すフローチャートである。
【図１９】図１９は、第２実施形態に係るメモリシステムにおけるサスペンドを含む書き込み動作を示すタイミングチャートである。
【図２０】図２０は、第３実施形態に係る半導体記憶装置における書き込み動作を示すフローチャートである。
【図２１】図２１は、第３実施形態に係る半導体記憶装置における書き込み動作を示すフローチャートである。
【図２２】図２２は、第３実施形態に係るメモリシステムにおけるサスペンドを含む書き込み動作を示すタイミングチャートである。
【図２３】図２３は、第４実施形態に係る半導体記憶装置における書き込み動作を示すフローチャートである。
【図２４】図２４は、第４実施形態に係る半導体記憶装置における書き込み動作を示すフローチャートである。
【図２５】図２５は、第４実施形態に係るメモリシステムにおけるサスペンドを含む書き込み動作を示すタイミングチャートである。
【図２６】図２６は、第５実施形態に係る半導体記憶装置における書き込み動作時のメモリセルトランジスタの閾値分布図である。
【図２７】図２７は、第５実施形態に係る半導体記憶装置における書き込み動作を示すフローチャートである。
【図２８】図２８は、第５実施形態に係る半導体記憶装置における書き込み動作を示すフローチャートである。
【図２９】図２９は、第１変形例に係る半導体記憶装置におけるベリファイ動作時の各配線の電圧を示すタイミングチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００８】
１．第１実施形態
第１実施形態に係る半導体記憶装置及びメモリシステムについて説明する。以下では半導体記憶装置として、メモリセルトランジスタが半導体基板上方に三次元に積層された三次元積層型ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【０００９】
本実施形態に係る半導体記憶装置及びメモリシステムは、データの書き込み動作途中で、外部機器から、例えば読み出し命令があると、書き込み動作を一旦中断(以下、「サスペンド」とも表記する)し、読み出し動作を実行後に、書き込み動作を再開（以下、「レジューム」とも表記する）する機能を有する。
【００１０】
１．１  構成について
１．１．１  メモリシステムの全体構成について  
まず、本実施形態に係るメモリシステムの全体構成について、図１を用いて説明する。
【００１１】
図１に示すように、メモリシステム１は、ＮＡＮＤ型フラッシュメモリ１００及びコントローラ２００を備えている。コントローラ２００とＮＡＮＤ型フラッシュメモリ１００は、例えばそれらの組み合わせにより一つの半導体記憶装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００１２】
ＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルトランジスタを備え、データを不揮発に記憶する。ＮＡＮＤ型フラッシュメモリ１００は、ＮＡＮＤバスによってコントローラ２００と接続され、コントローラ２００からの命令に基づいて動作する。より具体的には、ＮＡＮＤ型フラッシュメモリ１００は、データ線ＤＱ０〜ＤＱ７を介してコントローラ２００と、例えば８ビットの入出力信号Ｉ／Ｏの送受信を行う。入出力信号Ｉ／Ｏは、例えばデータ、アドレス、及びコマンドである。また、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から、例えばチップイネーブル信号ＣＥｎ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号ＷＥｎ、及びリードイネーブル信号ＲＥｎを受信する。そして、ＮＡＮＤ型フラッシュメモリ１００はコントローラ２００に、レディ／ビジー信号Ｒ／Ｂｎを送信する。
【００１３】
チップイネーブル信号ＣＥｎは、ＮＡＮＤ型フラッシュメモリ１００をイネーブルにするための信号であり、例えばＬｏｗ（“Ｌ”）レベルでアサートされる。コマンドラッチイネーブル信号ＣＬＥは、入出力信号Ｉ／Ｏがコマンドであることを示す信号であり、例えばＨｉｇｈ（“Ｈ”）レベルでアサートされる。アドレスラッチイネーブル信号ＡＬＥは、入出力信号Ｉ／Ｏがアドレスであることを示す信号であり、例えば“Ｈ”レベルでアサートされる。ライトイネーブル信号ＷＥｎは、受信した信号をＮＡＮＤ型フラッシュメモリ１００内へ取り込むための信号であり、コントローラ２００よりコマンド、アドレス、及びデータ等を受信する度に、例えば“Ｌ”レベルでアサートされる。よって、ＷＥｎがトグルされる度に、入出力信号Ｉ／ＯがＮＡＮＤ型フラッシュメモリ１００に取り込まれる。リードイネーブル信号ＲＥｎは、コントローラ２００が、ＮＡＮＤ型フラッシュメモリ１００からデータを読み出すための信号である。リードイネーブル信号ＲＥｎは、例えば“Ｌ”レベルでアサートされる。レディ／ビジー信号Ｒ／Ｂｎは、ＮＡＮＤ型フラッシュメモリ１００がビジー状態であるか否か（コントローラ２００からコマンドを受信不可能な状態か可能な状態か）を示す信号であり、例えばＮＡＮＤ型フラッシュメモリ１００がビジー状態の際に“Ｌ”レベルとされる。
【００１４】
コントローラ２００は、ホスト機器２からの命令に応答して、ＮＡＮＤ型フラッシュメモリ１００に対してデータの読み出し、書き込み、消去等を命令する。また、コントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００のメモリ空間を管理する。
【００１５】
コントローラ２００は、ホストインターフェイス回路２１０、内蔵メモリ（ＲＡＭ）２２０、プロセッサ（ＣＰＵ）２３０、バッファメモリ２４０、ＮＡＮＤインターフェイス回路２５０、及びＥＣＣ回路２６０を含む。
【００１６】
ホストインターフェイス回路２１０は、コントローラバスを介してホスト機器２と接続され、ホスト機器２との通信を司る。ホストインターフェイス回路２１０は、プロセッサ２３０及びバッファメモリ２４０に、ホスト機器２から受信した命令及びデータを転送する。また、ホストインターフェイス回路２１０は、プロセッサ２３０の命令に応答して、バッファメモリ２４０内のデータをホスト機器２へ転送する。
【００１７】
ＮＡＮＤインターフェイス回路２５０は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続され、ＮＡＮＤ型フラッシュメモリ１００との通信を司る。ＮＡＮＤインターフェイス回路２５０は、ＮＡＮＤ型フラッシュメモリ１００にプロセッサ２３０から受信した命令を転送する。また、ＮＡＮＤインターフェイス回路２５０は、書き込み時には、ＮＡＮＤ型フラッシュメモリ１００に、バッファメモリ２４０内の書き込みデータを転送する。更に、ＮＡＮＤインターフェイス回路２５０は、読み出し時には、バッファメモリ２４０に、ＮＡＮＤ型フラッシュメモリ１００から読み出されたデータを転送する。
【００１８】
プロセッサ２３０は、コントローラ２００全体の動作を制御する。例えば、プロセッサ２３０は、ホスト機器２から書き込み命令を受信した際には、それに応答して、ＮＡＮＤ型フラッシュメモリ１００に書き込み命令を出力する。読み出し及び消去の際も同様である。また、プロセッサ２３０は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。更に、プロセッサ２３０は、各種の演算を実行する。例えば、プロセッサ２３０は、データの暗号化処理やランダマイズ処理等を実行する。
【００１９】
ＥＣＣ回路２６０は、データの誤り訂正（ＥＣＣ：Error Checking and Correcting）処理を実行する。
【００２０】
内蔵メモリ２２０は、例えばＤＲＡＭ等の半導体メモリであり、プロセッサ２３０の作業領域として使用される。そして内蔵メモリ２２０は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、各種の管理テーブル等を保持する。
【００２１】
１．１．２  半導体記憶装置の構成について
次に、半導体記憶装置の構成について、図２を用いて説明する。
【００２２】
図２に示すように、ＮＡＮＤ型フラッシュメモリ１００は、シーケンサ１０、電圧発生回路１１、レジスタ１２、メモリセルアレイ１３、ロウデコーダ１４、及びセンスアンプ１５を含む。
【００２３】
メモリセルアレイ１３は、ロウ及びカラムに対応付けられた不揮発性のメモリセルトランジスタ（以下、「メモリセル」とも表記する）を含む複数のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、…）を備えている。各々のブロックＢＬＫは、複数のストリングユニットＳＵ（ＳＵ０、ＳＵ１、ＳＵ２、ＳＵ３、…）を含む。そして各々のストリングユニットＳＵは、複数のＮＡＮＤストリング１６を含む。なお、メモリセルアレイ１３内のブロックＢＬＫ数及びブロックＢＬＫ内のストリングユニットＳＵ数は任意である。メモリセルアレイ１３の詳細については後述する。
【００２４】
ロウデコーダ１４は、コントローラ２００から与えられるロウアドレスをデコードする。ロウデコーダ１４は、デコード結果に基づき、ブロックＢＬＫのいずれかを選択し、更にいずれかのストリングユニットＳＵを選択する。そして、ロウデコーダ１４は、必要な電圧をブロックＢＬＫに出力する。
【００２５】
センスアンプ１５は、データの読み出し動作時には、メモリセルアレイ１３から読み出されたデータをセンスする。そして、センスアンプ１５は、読み出しデータをコントローラ２００に出力する。センスアンプ１５は、データの書き込み動作時には、コントローラ２００から受信した書き込みデータをメモリセルアレイ１３に転送する。
【００２６】
シーケンサ１０は、ＮＡＮＤ型フラッシュメモリ１００全体の動作を制御する。
【００２７】
電圧発生回路１１は、シーケンサ１０の制御に応じて、データの書き込み、読み出し、及び消去に必要な電圧を発生させ、この発生した電圧をロウデコーダ１４及びセンスアンプ１５等に印加する。ロウデコーダ１４及びセンスアンプ１５は、電圧発生回路１１より供給された電圧をメモリセルアレイ１３内のメモリセルトランジスタに印加する。
【００２８】
レジスタ１２は、種々の信号を保持する。例えば、レジスタ１２は、書き込み動作をサスペンドしたときのステータス情報（以下、「サスペンド情報」と呼ぶ）を保持する。シーケンサ１０は、レジスタ１２が保持するサスペンド情報に基づいて、書き込み動作をレジュームする。また、レジスタ１２は、種々のテーブルを保持することも可能である。
【００２９】
１．１．３  メモリセルアレイの構成について  
次に、メモリセルアレイ１３の構成について、図３を用いて説明する。図３の例は、ブロックＢＬＫ０を示しているが、他のブロックＢＬＫの構成も同じである。
【００３０】
図３に示すように、ブロックＢＬＫ０は、例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。そして、各々のストリングユニットＳＵは、複数のＮＡＮＤストリング１６を含む。ＮＡＮＤストリング１６の各々は、例えば８個のメモリセルトランジスタＭＴ０〜ＭＴ７、並びに選択トランジスタＳＴ１及びＳＴ２を含んでいる。以下、メモリセルトランジスタＭＴ０〜ＭＴ７を限定しない場合は、メモリセルトランジスタＭＴと表記する。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。
【００３１】
なお、メモリセルトランジスタＭＴは、電荷蓄積層に絶縁膜を用いたＭＯＮＯＳ型であっても良いし、電荷蓄積層に導電層を用いたＦＧ型であっても良い。以下、本実施形態では、ＭＯＮＯＳ型を例として説明する。また、メモリセルトランジスタＭＴの個数は８個に限られず、１６個や３２個、６４個、１２８個等であってもよく、その数は限定されるものではない。更に、選択トランジスタＳＴ１及びＳＴ２の個数は、任意であり、それぞれ１個以上あれば良い。
【００３２】
メモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。より具体的には、メモリセルトランジスタＭＴ０〜ＭＴ７は、その電流経路が直列に接続される。そしてメモリセルトランジスタＭＴ７のドレインは、選択トランジスタＳＴ１のソースに接続され、メモリセルトランジスタＭＴ０のソースは、選択トランジスタＳＴ２のドレインに接続されている。
【００３３】
ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ１のゲートは、それぞれ選択ゲート線ＳＧＤ０〜ＳＧＤ３に接続される。同様に、ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ２のゲートは、それぞれ選択ゲート線ＳＧＳ０〜ＳＧＳ３に接続される。以下、選択ゲート線ＳＧＤ０〜ＳＧＤ３を限定しない場合は、選択ゲート線ＳＧＤと表記する。選択ゲート線ＳＧＳ０〜ＳＧＳ３を限定しない場合は、選択ゲート線ＳＧＳと表記する。なお、各ストリングユニットＳＵの選択ゲート線ＳＧＳ０〜ＳＧＳ３は共通に接続されても良い。
【００３４】
ブロックＢＬＫ内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続される。以下、ワード線ＷＬ０〜ＷＬ７を限定しない場合は、ワード線ＷＬと表記する。
【００３５】
ストリングユニットＳＵ内にある各ＮＡＮＤストリング１６の選択トランジスタＳＴ１のドレインは、それぞれ異なるビット線ＢＬ０〜ＢＬ（Ｎ−１）（Ｎは２以上の整数）に接続される。以下、ビット線ＢＬ０〜ＢＬ（Ｎ−１）を限定しない場合は、ビット線ＢＬと表記する。各ビット線ＢＬは、複数のブロックＢＬＫ間で各ストリングユニットＳＵ内にある１つのＮＡＮＤストリング１６を共通に接続する。更に、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通に接続されている。つまり、ストリングユニットＳＵは、異なるビット線ＢＬに接続され、且つ同一の選択ゲート線ＳＧＤ及びＳＧＳに接続されたＮＡＮＤストリング１６の集合体である。またブロックＢＬＫは、ワード線ＷＬを共通にする複数のストリングユニットＳＵの集合体である。そしてメモリセルアレイ１３は、ビット線ＢＬを共通にする複数のブロックＢＬＫの集合体である。
【００３６】
データの消去は、ブロックＢＬＫ単位、またはブロックＢＬＫよりも小さい単位で行うことができる。消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という２０１１年９月１８日に出願された米国特許出願１３／２３５，３８９号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という２０１０年１月２７日に出願された米国特許出願１２／６９４，６９０号に記載されている。更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という２０１２年５月３０日に出願された米国特許出願１３／４８３，６１０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００３７】
更に、メモリセルアレイ１３の構成は、他の構成であっても良い。すなわちメモリセルアレイ１３の構成については、例えば、“三次元積層不揮発性半導体メモリ(THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY)”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ(THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY)”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法(NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE AND METHOD OF MANUFACTURING THE SAME)”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号“半導体メモリ及びその製造方法(SEMICONDUCTOR MEMORY AND METHOD FOR MANUFACTURING SAME)”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００３８】
１．１．４  メモリセルアレイの断面構成について  
次に、メモリセルアレイ１３の断面構成について、図４を用いて説明する。図４の例は、ストリングユニットＳＵ０及びＳＵ１の断面を示しており、ストリングユニットＳＵ２及びＳＵ３の構成も同様である。なお、図４において、層間絶縁膜は省略されている。
【００３９】
図４に示すように、半導体基板２０に平行な第１方向Ｄ１に沿って、半導体基板２０に平行で第１方向Ｄ１に垂直な第２方向Ｄ２に延びる複数のソース線コンタクトＬＩが設けられている。２つのソース線コンタクトＬＩの間には、１つのストリングユニットＳＵが配置されている。ソース線コンタクトＬＩは、半導体基板２０とＮＡＮＤストリング１６よりも上方に設けられる図示せぬソース線ＳＬとを接続する。なお、ソース線コンタクトＬＩ及びＮＡＮＤストリング１６の配置は任意に設定可能である。例えば２つのソース線コンタクトＬＩの間に複数のストリングユニットＳＵが設けられても良い。更に図４の例では、説明を簡略化するために１つのストリングユニットＳＵにおいて、複数のＮＡＮＤストリング１６が、第２方向Ｄ２に沿って１列に配列されている場合を示しているが、１つのストリングユニットＳＵにおけるＮＡＮＤストリング１６の配列は任意に設定可能である。例えば、第２方向Ｄ２に沿って、２列並行に配置されても良く、４列の千鳥配置に配列されても良い。
【００４０】
各ストリングユニットＳＵにおいて、ＮＡＮＤストリング１６は、半導体基板２０に垂直な第３方向Ｄ３に沿って形成されている。より具体的には、半導体基板２０の表面領域には、ｎ型ウェル２１が設けられている。そして、ｎ型ウェル２１の表面領域には、ｐ型ウェル２２が設けられている。また、ｐ型ウェル２２の表面領域の一部には、ｎ＋型拡散層２３が設けられている。そしてｐ型ウェル２２の上方には、選択ゲート線ＳＧＳ、ワード線ＷＬ、及び選択ゲート線ＳＧＤとして機能する１０層の配線層２４が、それぞれ図示せぬ層間絶縁膜を介して順次積層されている。
【００４１】
そして、１０層の配線層２４を貫通してｐ型ウェル２２に達するピラー状の半導体層２５が形成されている。半導体層２５の側面には、トンネル絶縁膜２６、電荷蓄積層２７、及びブロック絶縁膜２８が順次形成される。半導体層２５には、例えば多結晶シリコンが用いられる。トンネル絶縁膜２６及びブロック絶縁膜２８には、例えばシリコン酸化膜が用いられる。電荷蓄積層２７には、例えばシリコン窒化膜が用いられる。以下、半導体層２５、トンネル絶縁膜２６、電荷蓄積層２７、及びブロック絶縁膜２８によって形成されるピラーを「メモリピラーＭＰ」と呼ぶ。半導体層２５は、ＮＡＮＤストリング１６の電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして半導体層２５の上端は、ビット線ＢＬとして機能する配線層（不図示）に接続される。
【００４２】
メモリピラーＭＰと配線層２４とにより、メモリセルトランジスタＭＴ、並びに選択トランジスタＳＴ１及びＳＴ２が形成される。なお、図４の例では、選択ゲート線ＳＧＤ及びＳＧＳとして機能する配線層２４は、それぞれ１層設けられているが、複数層設けられても良い。
【００４３】
ソース線コンタクトＬＩは、第２方向Ｄ２に沿ってライン形状を有する。ソース線コンタクトＬＩには、例えば多結晶シリコンが用いられる。そしてソース線コンタクトＬＩの底面はｎ＋型拡散層２３に接続され、上面はソース線ＳＬとして機能する配線層（不図示）に接続される。
【００４４】
１．１．５  センスアンプの構成について  
次に、センスアンプ１５の構成について説明する。センスアンプ１５は、複数のセンスアンプユニットＳＡＵと複数のラッチ回路ＸＤＬとを含む。
【００４５】
センスアンプユニットＳＡＵは、例えばビット線ＢＬ毎に設けられ、対応するビット線ＢＬに読み出されたデータをセンスし、また対応するビット線ＢＬに書き込みデータを転送する。ラッチ回路ＸＤＬは、センスアンプユニットＳＡＵ毎に設けられ、対応するビット線ＢＬに関連するデータを一時的に保持する。
【００４６】
次に、センスアンプユニットＳＡＵの構成について、図５を用いて説明する。なお、本実施形態では、ビット線ＢＬを流れる電流をセンスする電流センス方式のセンスアンプユニットＳＡＵを例に説明するが、電圧センス方式のセンスアンプユニットＳＡＵを用いても良い。
【００４７】
図５に示すように、センスアンプユニットＳＡＵは、センス回路ＳＡ、例えば４個のラッチ回路（ＳＤＬ、ＡＤＬ、ＢＤＬ、及びＴＤＬ）、プリチャージ回路３０、及びバススイッチ３２を含む。
【００４８】
センス回路ＳＡは、ビット線ＢＬに読み出されたデータ（以下、「リードデータ」と呼ぶ）をセンスし、また書き込みデータ（以下、「プログラムデータ」と呼ぶ）に応じてビット線ＢＬに電圧を印加する。すなわち、センス回路ＳＡは、ビット線ＢＬを直接的に制御する。
【００４９】
次に、センス回路ＳＡの回路の詳細について説明する。以下の説明において、トランジスタのソースまたはドレインの一方を「トランジスタの一端」と呼び、ソースまたはドレインの他方を「トランジスタの他端」と呼ぶ。
【００５０】
センス回路ＳＡは、高耐圧ｎチャネルＭＯＳトランジスタ４０、低耐圧ｎチャネルＭＯＳトランジスタ４１〜５０、低耐圧ｐチャネルＭＯＳトランジスタ５１、及び容量素子５２を備えている。
【００５１】
トランジスタ４０のゲートに信号ＢＬＳが入力される。トランジスタ４０の一端は対応するビット線ＢＬに接続され、トランジスタ４０の他端はノードＢＬＩに接続される。
【００５２】
トランジスタ４１のゲートには、信号ＢＬＣが入力される。トランジスタ４１の一端はノードＢＬＩに接続され、トランジスタ４１の他端はノードＳＣＯＭに接続される。トランジスタ４１は、対応するビット線ＢＬを、信号ＢＬＣに応じた電位にクランプするためのものである。
【００５３】
トランジスタ４２のゲートには、信号ＢＬＸが入力される。トランジスタ４２の一端はノードＳＣＯＭに接続され、トランジスタ４２の他端はノードＳＳＲＣに接続される。
【００５４】
トランジスタ４３のゲートは、ノードＩＮＶ＿Ｓに接続される。トランジスタ４３の一端はノードＳＳＲＣに接続され、トランジスタ４３の他端はノードＳＲＣＧＮＤに接続される。ノードＳＲＣＧＮＤには、例えば接地電圧ＶＳＳが印加される。
【００５５】
トランジスタ５１のゲートは、ノードＩＮＶ＿Ｓに接続される。トランジスタ５１の一端に電源電圧ＶＤＤＳＡが印加され、トランジスタ５１の他端はノードＳＳＲＣに接続される。
【００５６】
トランジスタ４４のゲートには、信号ＸＸＬが入力される。トランジスタ４４の一端はノードＳＣＯＭに接続され、トランジスタ４４の他端はノードＳＥＮに接続される。
【００５７】
トランジスタ４５のゲートには、信号ＨＬＬが入力される。トランジスタ４５の一端には電圧ＶＳＥＮＰが印加され、トランジスタ４５の他端はノードＳＥＮに接続される。
【００５８】
容量素子５２の一方の電極は、ノードＳＥＮに接続され、容量素子５２の他方の電極にはクロック信号ＣＬＫが入力される。
【００５９】
トランジスタ４７のゲートは、ノードＳＥＮに接続される。トランジスタ４７の一端はトランジスタ４８の一端に接続され、トランジスタ４７の他端にはクロック信号ＣＬＫが入力される。トランジスタ４７は、ノードＳＥＮの電圧をセンスするセンストランジスタとして機能する。
【００６０】
トランジスタ４８のゲートには、信号ＳＴＢが入力される。トランジスタ４８の他端はバスＬＢＵＳに接続される。
【００６１】
トランジスタ４６のゲートには、信号ＢＬＱが入力される。トランジスタ４６の一端はノードＳＥＮに接続され、トランジスタ４６の他端はバスＬＢＵＳに接続される。
【００６２】
トランジスタ４９のゲートは、バスＬＢＵＳに接続される。トランジスタ４９の一端はトランジスタ５０の一端に接続され、トランジスタ４９の他端には電圧ＶＬＳＡが印加される。電圧ＶＬＳＡは、例えば接地電圧ＶＳＳであっても良い。
【００６３】
トランジスタ５０のゲートには、信号ＬＳＬが入力される。トランジスタ５０の他端はノードＳＥＮに接続される。
【００６４】
ラッチ回路ＳＤＬ、ＡＤＬ、ＢＤＬ、及びＴＤＬは、データを一時的に保持する。データの書き込み時には、センス回路ＳＡは、ラッチ回路ＳＤＬの保持データに応じて、ビット線ＢＬを制御する。その他のラッチ回路ＡＤＬ、ＢＤＬ、及びＴＤＬは、例えば、個々のメモリセルトランジスタが２ビット以上のデータを保持する多値動作用に使用される。なお、ラッチ回路の個数は任意に設定可能であり、例えばメモリセルトランジスタが保持可能なデータ量（ビット数）に応じて設定される。
【００６５】
ラッチ回路ＳＤＬは、低耐圧ｎチャネルＭＯＳトランジスタ６０〜６３及び低耐圧ｐチャネルＭＯＳトランジスタ６４〜６７を備えている。
【００６６】
トランジスタ６０のゲートには、信号ＳＴＬが入力される。トランジスタ６０の一端はバスＬＢＵＳに接続され、トランジスタ６０の他端はノードＬＡＴ＿Ｓに接続される。
【００６７】
トランジスタ６１のゲートには、信号ＳＴＩが入力される。トランジスタ６１の一端はバスＬＢＵＳに接続され、トランジスタ６１の他端はノードＩＮＶ＿Ｓに接続される。
【００６８】
トランジスタ６２のゲートは、ノードＩＮＶ＿Ｓに接続される。トランジスタ６２の一端は接地され、トランジスタ６２の他端はノードＬＡＴ＿Ｓに接続される。
【００６９】
トランジスタ６３のゲートは、ノードＬＡＴ＿Ｓに接続される。トランジスタ６３の一端は接地され、トランジスタ６３の他端はノードＩＮＶ＿Ｓに接続される。
【００７０】
トランジスタ６４のゲートは、ノードＩＮＶ＿Ｓに接続される。トランジスタ６４の一端はノードＬＡＴ＿Ｓに接続され、トランジスタ６４の他端はトランジスタ６６の一端に接続される
トランジスタ６５のゲートは、ノードＬＡＴ＿Ｓに接続される。トランジスタ６５の一端はノードＩＮＶ＿Ｓに接続され、トランジスタ６５の他端はトランジスタ６７の一端に接続される。
【００７１】
トランジスタ６６のゲートには、信号ＳＬＬが入力される。トランジスタ６６の他端には電源電圧ＶＤＤＳＡが印加される。
【００７２】
トランジスタ６７のゲートには信号ＳＬＩが入力される。トランジスタ６７の他端には電源電圧ＶＤＤＳＡが印加される。
【００７３】
ラッチ回路ＳＤＬでは、トランジスタ６２、６４で第１インバータが構成され、トランジスタ６３、６５で第２インバータが構成されている。そして、第１インバータの出力及び第２インバータの入力（ノードＬＡＴ＿Ｓ）が、データ転送用のトランジスタ６０を介してバスＬＢＵＳに接続され、第１インバータの入力及び第２インバータの出力（ノードＩＮＶ＿Ｓ）が、データ転送用のトランジスタ６１を介してバスＬＢＵＳに接続される。ラッチ回路ＳＤＬは、データをノードＬＡＴ＿Ｓで保持し、その反転データをノードＩＮＶ＿Ｓで保持する。
【００７４】
ラッチ回路ＡＤＬ、ＢＤＬ、及びＴＤＬは、ラッチ回路ＳＤＬと同様の構成を有しているので、説明は省略するが、各トランジスタの参照符号及び信号名は、図５の通りラッチ回路ＳＤＬのものとは区別して以下説明する。ラッチ回路ＳＤＬのトランジスタ６０〜６７が、ラッチ回路ＡＤＬのトランジスタ７０〜７７、ラッチ回路ＢＤＬのトランジスタ８０〜８７、及びラッチ回路ＴＤＬのトランジスタ９０〜９７にそれぞれ相当する。そして各センスアンプユニットＳＡＵにおいて、センス回路ＳＡ、並びに４個のラッチ回路ＳＤＬ、ＡＤＬ、ＢＤＬ、及びＴＤＬは、互いにデータを送受信可能なようにバスＬＢＵＳによって接続されている。
【００７５】
プリチャージ回路３０は、バスＬＢＵＳをプリチャージする。プリチャージ回路３０は、例えば低耐圧ｎチャネルＭＯＳトランジスタ３１を含む。トランジスタ３１のゲートには、信号ＬＰＣが入力される。トランジスタ３１の一端はバスＬＢＵＳに接続され、トランジスタ３１の他端には電圧ＶＨＬＢが印加される。そしてプリチャージ回路３０は、バスＬＢＵＳに電圧ＶＨＬＢを転送することで、バスＬＢＵＳをプリチャージする。
【００７６】
バススイッチ３２は、バスＬＢＵＳとバスＤＢＵＳとを接続する。すなわち、バススイッチ３２は、センス回路ＳＡとラッチ回路ＸＤＬとを接続する。バススイッチ３２は、例えば低耐圧ｎチャネルＭＯＳトランジスタ３３を含む。トランジスタ３３のゲートには、信号ＤＳＷが入力される。トランジスタ３３の一端はバスＬＢＵＳに接続され、トランジスタ３３の他端はバスＤＢＵＳを介してラッチ回路ＸＤＬに接続される。
【００７７】
なお、上記構成のセンスアンプユニットＳＡＵにおける各種信号は、例えばシーケンサ１０によって与えられる。
【００７８】
１．２  メモリセルトランジスタの閾値分布について  
次に、本実施形態に係るメモリセルトランジスタＭＴの取り得る閾値分布について、図６を用いて説明する。以下、本実施形態では、メモリセルトランジスタＭＴが４値（２ビット）のデータを保持可能な場合について説明するが、保持可能なデータは４値に限定されない。本実施形態においては、メモリセルトランジスタＭＴが、例えば８値（３ビット）のデータを保持可能であっても良く、２値（１ビット）以上のデータを保持可能であれば良い。
【００７９】
図６に示すように、各々のメモリセルトランジスタＭＴの閾値電圧は、離散的な例えば４個の分布のいずれかに含まれる値を取る。この４個の分布を閾値の低い順にそれぞれ、“Ｅｒ”レベル、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルと呼ぶことにする。
【００８０】
“Ｅｒ”レベルは、例えばデータの消去状態に相当する。そして“Ｅｒ”レベルに含まれる閾値電圧は電圧ＶｆｙＡよりも小さく、正または負の値を有する。
【００８１】
“Ａ”〜“Ｃ”レベルは、電荷蓄積層に電荷が注入されてデータが書き込まれた状態に相当し、各分布に含まれる閾値電圧は例えば正の値を有する。“Ａ”レベルに含まれる閾値電圧は、電圧ＶｆｙＡ以上であり、且つ電圧ＶｆｙＢ未満である（但し、ＶｆｙＢ＞ＶｆｙＡ）。“Ｂ”レベルに含まれる閾電圧値は、電圧ＶｆｙＢ以上であり、且つ電圧ＶｆｙＣ未満である（但し、ＶｆｙＣ＞ＶｆｙＢ）。“Ｃ”レベルに含まれる閾値電圧は、電圧ＶｆｙＣ以上であり、且つ電圧ＶＲＥＡＤ及びＶＰＡＳＳ未満である（ＶＲＥＡＤ（ＶＰＡＳＳ）＞ＶｆｙＣ）。なお、ＶＲＥＡＤ及びＶＰＡＳＳは、それぞれデータの読み出し動作時及び書き込み動作時に非選択ワード線ＷＬに印加される電圧である。
【００８２】
以上のように、各メモリセルトランジスタＭＴは、４個の閾値分布のいずれかを有することで、４種類の状態を取ることができる。これらの状態を、２進数表記で“００”〜“１１”に割り当てることで、各メモリセルトランジスタＭＴは２ビットのデータを保持できる。以下、この２ビットデータをそれぞれ、上位ビット及び下位ビットと呼ぶ。また、一括して書き込まれる（あるいは読み出される）上位ビットの集合を上位ページ（upper page）、下位ビットの集合を下位ページ（lower page）と呼ぶ。
【００８３】
なお、図６では４個のレベルが離散的に分布する場合を例に説明したが、これは例えばデータの書き込み直後の理想的な状態である。従って、現実的には隣接するレベルが重なることが起こり得る。例えばデータの書き込み後、ディスターブ等により“Ｅｒ”レベルの上端と“Ａ”レベルの下端とが重なる場合がある。このような場合には、例えばＥＣＣ技術等を用いてデータが訂正される。
【００８４】
１．３  書き込み動作について  
次に、書き込み動作について説明する。書き込み動作は、大まかにはプログラムとベリファイとを含む。そして、プログラムとベリファイとの組み合わせ（以下、「プログラムループ」と呼ぶ）を繰り返すことで、メモリセルトランジスタＭＴの閾値電圧がターゲットレベルまで上昇される。
【００８５】
プログラムは、電子を電荷蓄積層に注入することにより閾値電圧を上昇させる（または注入を禁止することで閾値電圧を維持させる）動作のことである。以下では、閾値電圧を上昇させる動作を「“０”プログラム」または「“０”書き込み」と呼び、“０”プログラム対象とされたビット線ＢＬには“０”データが与えられる。他方で、閾値電圧を維持させる動作を「“１”プログラム」、「“１”書き込み」、または「書き込み禁止」と呼び、“１”プログラム対象とされたビット線ＢＬには“１”データが与えられる。
【００８６】
ベリファイは、プログラムの後、データを読み出し、メモリセルトランジスタＭＴの閾値電圧が目標とするターゲットレベルに達したか否かを判定する動作である。以下、メモリセルトランジスタＭＴの閾値電圧がターゲットレベルに達している場合を、「ベリファイをパスした」と呼び、ターゲットレベルまで達していない場合を、「ベリファイをフェイルした」と呼ぶ。
【００８７】
本実施形態では、“０”プログラムにおいて、目標とするベリファイレベル（例えば“Ａ”レベルに対応する電圧ＶｆｙＡ）とメモリセルトランジスタＭＴの閾値電圧との差に応じて、閾値電圧の変動量が比較的大きい第１プログラム条件、あるいは第１プログラムよりも閾値電圧の変動量が小さい第２プログラム条件のいずれかが適用される。例えば、メモリセルトランジスタＭＴの閾値電圧がベリファイレベルより十分に低く、１回のプログラムでは目標とするベリファイレベルに達しない場合、閾値電圧の変動量が比較的大きい第１プログラム条件が適用される。また、メモリセルトランジスタＭＴの閾値電圧が目標とするベリファイレベルに比較的近く、第１プログラムを適用すると閾値電圧がベリファイレベルを大きく超えてしまう場合、第２プログラム条件が適用される。
【００８８】
より具体的には、第１プログラム条件と第２プログラム条件とは、ビット線ＢＬの電圧が異なる。例えば、第１プログラム条件に対応するビット線ＢＬに電圧ＶＳＳが印加される。そして、第２プログラム条件に対応するビット線ＢＬに印加される電圧をＶＱＰＷとし、“１”プログラムに対応するビット線ＢＬに印加される電圧をＶＢＬとする。すると、電圧ＶＳＳ、電圧ＶＱＰＷ、及び電圧ＶＢＬは、ＶＢＬ＞ＶＱＰＷ＞ＶＳＳの関係にある。
【００８９】
以下、“０”プログラムにおいて、第１プログラム条件を適用するビット線をＢＬ（“０”）、第２プログラム条件を適用するビット線をＢＬ（“ＱＰＷ”）と表記する。また、“１”プログラムに対応するビット線をＢＬ（“１”）と表記する。
【００９０】
１．３．１  ベリファイのターゲットレベルについて
次に、ベリファイのターゲットレベルについて説明する。本実施形態においては、第１及び第２プログラム条件に対応して、ターゲットレベルが異なる第１及び第２ベリファイが実行される。そして、プログラムループ内でサスペンドが発生しなかった場合（以下、「通常状態」と呼ぶ）と、プログラムループ内でサスペンドが発生し、書き込み動作をレジュームした場合（以下、「レジューム直後」と呼ぶ）とで第１ベリファイのターゲットレベルが異なる。
【００９１】
第１及び第２ベリファイにおけるターゲットレベルについて、図７を用いて説明する。図７の例は、“Ｅｒ”レベルから“Ａ”レベルに書き込む場合のターゲットレベルについて示している。
【００９２】
図７に示すように、第２ベリファイのターゲットレベルは、例えばベリファイレベルと同じ電圧（ＶｆｙＡ）が設定される。以下、第２ベリファイのターゲットレベルを電圧ＶＨと表記し、例えば“Ａ”レベルに対応する電圧ＶＨをＶＨ＿Ａと表記する。
【００９３】
第１ベリファイのターゲットレベルは、電圧ＶＨよりも低い電圧が設定される。以下、通常状態における第１ベリファイのターゲットレベルを電圧ＶＬ１と表記し、例えば“Ａ”レベルに対応する電圧ＶＬ１をＶＬ１＿Ａと表記する。また、レジューム直後における第１ベリファイのターゲットレベルを電圧ＶＬ２と表記し、例えば“Ａ”レベルに対応する電圧ＶＬ２をＶＬ２＿Ａと表記する。電圧ＶＨ、ＶＬ１、及びＶＬ２は、ＶＨ＞ＶＬ１＞ＶＬ２の関係にある。
【００９４】
メモリセルトランジスタの閾値電圧が電圧ＶＬ１（あるいは電圧ＶＬ２）未満の場合（閾値電圧＜ＶＬ１あるいはＶＬ２）、第１ベリファイをフェイルしたと判定され、次のプログラムループにおいては、第１プログラム条件が適用される。メモリセルトランジスタの閾値電圧が電圧ＶＬ１（あるいは電圧ＶＬ２）以上電圧ＶＨ未満の場合（ＶＬ１あるいはＶＬ２≦閾値電圧＜ＶＨ）、第１ベリファイをパスし、第２ベリファイをフェイルしたと判定され、次のプログラムループにおいては、第２プログラム条件が適用される。メモリセルトランジスタの閾値電圧が電圧ＶＨ以上の場合（ＶＨ≦閾値電圧）、第２ベリファイをパスしたと判定され、その後のプログラムループにおいては、書き込み禁止とされる。
【００９５】
次に、ターゲットレベルとセンス期間の関係について、図８を用いて説明する。本実施形態では、ターゲットレベルに応じて、ビット線ＢＬの電圧をセンスする期間、すなわち信号ＸＬＬを“Ｈ”レベルにして、ノードＳＥＮの電荷をビット線ＢＬに転送する期間の長さが異なる。以下、第１ベリファイにおけるセンス期間を「第１センス期間Ｔｓ＿Ｌ」と呼び、第２ベリファイにおけるセンス期間を「第２センス期間Ｔｓ＿Ｈ」と呼ぶ。更に、通常状態における第１センス期間をＴｓ＿Ｌ１と表記し、レジューム直後における第１センス期間をＴｓ＿Ｌ２と表記する。
【００９６】
図８に示すように、センス期間中にノードＳＥＮの電荷がビット線ＢＬに転送されると、ノードＳＥＮの電圧は低下する。このとき、ノードＳＥＮの電圧が低下していく速度は、メモリセルトランジスタＭＴの閾値電圧Ｖｔに応じて異なる。例えば、閾値電圧Ｖｔが電圧ＶＬ２未満の場合（Ｖｔ＜ＶＬ２）、メモリセルトランジスタＭＴは強いオン状態となり、ノードＳＥＮの電圧は急激に低下する。閾値電圧Ｖｔが電圧ＶＬ２以上電圧ＶＬ１未満の場合（ＶＬ２≦Ｖｔ＜ＶＬ１）、メモリセルトランジスタＭＴは、Ｖｔ＜ＶＬ２の場合よりも弱いオン状態となり、ノードＳＥＮの電圧は、比較的緩やかに低下する。また、閾値電圧Ｖｔが電圧ＶＬ１以上電圧ＶＨ未満の場合（ＶＬ１≦Ｖｔ＜ＶＨ）、メモリセルトランジスタＭＴは更に弱いオン状態となり、ノードＳＥＮの電圧は、更に緩やかに低下する。また、閾値電圧Ｖｔが電圧ＶＨ以上の場合（Ｖｔ≧ＶＨ）、メモリセルトランジスタＭＴはオフ状態となり、ノードＳＥＮの電圧は、ほとんど低下しない。
【００９７】
この関係に基づいて、センス期間は、ターゲットレベル未満の閾値電圧Ｖｔを有するメモリセルトランジスタＭＴがベリファイをフェイルしていると判定されるように、すなわちセンストランジスタ４７がオフ状態とされるように設定される。より具体的には、第１センス期間Ｔｓ＿Ｌ２は、閾値電圧Ｖｔが電圧ＶＬ２未満であるメモリセルトランジスタＭＴが第１ベリファイをフェイルしたと判定されるように設定される。同様に、第１センス期間Ｔｓ＿Ｌ１は、閾値電圧Ｖｔが電圧ＶＬ１未満であるメモリセルトランジスタＭＴが第１ベリファイをフェイルしたと判定されるように設定される。第２センス期間Ｔｓ＿Ｈは、閾値電圧Ｖｔが電圧ＶＨ未満であるメモリセルトランジスタＭＴが第２ベリファイをフェイルしたと判定されるように設定される。よって、第１センス期間Ｔｓ＿Ｌ１、Ｔｓ＿Ｌ２、及び第２センス期間Ｔｓ＿Ｈの長さは、Ｔｓ＿Ｌ２＜Ｔｓ＿Ｌ１＜Ｔｓ＿Ｈの関係にある。
【００９８】
１．３．２  メモリシステムにおける書き込み動作の全体の流れについて
次に、メモリシステムにおける書き込み動作の全体の流れについて、図９を用いて説明する。
【００９９】
図９に示すように、まずコントローラ２００のホストインターフェイス回路２１０は、ホスト機器２より書き込み命令を受信する（ステップＳ１）。
【０１００】
この書き込み命令に応答してコントローラ２００のプロセッサ２３０は、ＮＡＮＤインターフェイス回路２５０を介してＮＡＮＤ型フラッシュメモリ１００に、書き込み命令（ライトコマンド、アドレス、及びデータ）を送信する（ステップＳ２）。
【０１０１】
すると、ＮＡＮＤ型フラッシュメモリ１００のシーケンサ１０は、コントローラ２００から受信した書き込み命令に基づき、書き込み動作を実行する（ステップＳ３）。
【０１０２】
そして、ＮＡＮＤ型フラッシュメモリ１００が書き込み動作実行中に、コントローラ２００は、ホスト機器２より例えば読み出し命令を受信する（ステップＳ４）。するとプロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００にサスペンドコマンドを送信する（ステップＳ５）。
【０１０３】
シーケンサ１０は、受信したサスペンドコマンドに基づいて、書き込み動作をサスペンドする（ステップＳ６）。このとき、シーケンサ１０は、例えばレジスタ１２にサスペンド情報を保存する。なお、シーケンサ１０は、コントローラ２００にサスペンド情報を送信しても良い。
【０１０４】
次にプロセッサ２３０は、書き込み動作をサスペンドし、レディ／ビジー信号Ｒ／Ｂｎが“Ｈ”レベルに復帰したのを確認すると、ＮＡＮＤ型フラッシュメモリ１００に読み出し命令（リードコマンド及びアドレス）を送信する（ステップＳ７）。
【０１０５】
シーケンサ１０は、受信した読み出し命令に基づき、メモリセルアレイからデータを読み出し、コントローラ２００にその結果を送信する（ステップＳ８）。
【０１０６】
次に、プロセッサ２３０は、リードデータのＥＣＣ処理等を行った後、データをホスト機器２に送信する（ステップＳ９）。ホスト機器２は、リードデータを受信する（ステップＳ１０）。
【０１０７】
読み出し動作が完了した後、プロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００に、レジュームコマンドを送信する（ステップＳ１１）。
【０１０８】
シーケンサ１０は、受信したレジュームコマンドに基づき、書き込み動作をレジュームする（ステップＳ１２）。より具体的には、シーケンサ１０は、レジスタ１２内のサスペンド情報を確認し、書き込み動作をレジュームする。
【０１０９】
１．３．３  ＮＡＮＤ型フラッシュメモリにおける書き込み動作の全体の流れについて
次に、ＮＡＮＤ型フラッシュメモリ１００における書き込み動作の全体の流れについて、図１０及び図１１を用いて説明する。本実施形態におけるＮＡＮＤ型フラッシュメモリ１００は、書き込み動作中にサスペンドコマンドを受信すると、プログラム終了後に、書き込み動作をサスペンドし、レジュームコマンド受信後は、ベリファイから書き込み動作をレジュームする。図１０及び図１１の例は、説明を簡略化するため、１つのレベル（例えば“Ａ”レベル）について第１及び第２ベリファイを実行する場合を示している。
【０１１０】
図１０に示すように、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から書き込み命令（ライトコマンド、アドレス、プログラムデータ）を受信する（ステップＳ１０１）。シーケンサ１０は、コントローラ２００から受信した書き込み命令に基づいて書き込み動作を開始する。
【０１１１】
まず、シーケンサ１０は、プログラムを実行する。プログラムにおいて、ロウデコーダ１４は、選択ワード線ＷＬにプログラムパルスを印加する（ステップＳ１０２）。より具体的には、シーケンサ１０は、プログラムを開始する際、レディ／ビジー信号Ｒ／Ｂｎを“Ｌ”レベルにする。センスアンプ１５は、ラッチ回路ＳＤＬが保持するデータに応じて、ビット線ＢＬを充電する（以下、「ＢＬプリチャージ」と呼ぶ）。１回目のプログラムでは、第２プログラム条件は適用されないため、“０”データ、すなわち“０”プログラムに対応してビット線ＢＬ（“０”）に電圧ＶＳＳが印加され（接地され）、“１”データ、すなわち“１”プログラムに対応してビット線ＢＬ（“１”）に電圧ＶＢＬが印加される。ロウデコーダ１４は、選択ブロックＢＬＫにおいて、いずれかのワード線ＷＬを選択し、選択ワード線ＷＬにプログラムパルスとして電圧ＶＰＧＭを印加し、その他の非選択ワード線ＷＬに電圧ＶＰＡＳＳを印加する。電圧ＶＰＧＭは、電子を電荷蓄積層に注入するための高電圧である。電圧ＶＰＡＳＳは、メモリセルトランジスタＭＴの閾値電圧によらず、メモリセルトランジスタＭＴをオン状態にする電圧である。電圧ＶＰＧＭと電圧ＶＰＡＳＳとは、ＶＰＧＭ＞ＶＰＡＳＳの関係にある。これにより、対象となるメモリセルトランジスタＭＴに“１”または“０”書き込みが行われる。
【０１１２】
次に、シーケンサ１０は、コントローラ２００からサスペンドコマンドを受信している場合（ステップＳ１０３＿Ｙｅｓ）、プログラム終了後、書き込み動作をサスペンドする（ステップＳ１０４）。シーケンサ１０は、書き込み動作をサスペンドした後、レディ／ビジー信号Ｒ／Ｂｎを“Ｈ”レベルにする。
【０１１３】
次に、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から読み出し命令（リードコマンド及びアドレス）を受信する（ステップＳ１０５）。
【０１１４】
センスアンプ１５は、メモリセルアレイ１３からデータを読み出す（ステップＳ１０６）。より具体的には、シーケンサ１０は、読み出し動作を開始する際、レディ／ビジー信号Ｒ／Ｂｎを“Ｌ”レベルにする。ロウデコーダ１４は、選択ブロックＢＬＫの選択ワード線ＷＬに電圧ＶＣＧＲＶを印加し、非選択ワード線ＷＬに電圧ＶＲＥＡＤを印加する。電圧ＶＣＧＲＶは、読み出し対象データの閾値レベルに応じた電圧である。電圧ＶＲＥＡＤは、保持データに関わらずメモリセルトランジスタＭＴをオンさせる電圧であり、ＶＲＥＡＤ＞ＶＣＧＲＶの関係にある。例えば、読み出し対象のメモリセルトランジスタＭＴの閾値電圧が電圧ＶＣＧＲＶより高い場合、メモリセルトランジスタＭＴはオフ状態となり、閾値電圧が電圧ＶＣＧＲＶより低い場合、メモリセルトランジスタＭＴはオン状態となる。この状態でセンスアンプ１５は、各ビット線ＢＬに流れる電流をセンスして、メモリセルトランジスタＭＴのデータを読み出す。シーケンサ１０は、読み出し動作終了後、レディ／ビジー信号Ｒ／Ｂｎを“Ｈ”レベルにする。
【０１１５】
次に、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００からレジュームコマンドを受信する（ステップＳ１０７）。より具体的には、コントローラ２００は、リードデータを読み出すと、ＮＡＮＤ型フラッシュメモリ１００に、レジュームコマンドを送信する。
【０１１６】
シーケンサ１０は、レジュームコマンドを受信すると、レジスタ１２内に保持されたサスペンド情報を確認し、書き込み動作を再開させる（ステップＳ１０８）。
【０１１７】
シーケンサ１０は、レジューム後、まず第１ベリファイを実行する（ステップＳ１０９）。より具体的には、シーケンサ１０は、レジューム直後の状態にあるため、ターゲットレベルを電圧ＶＬ２として、すなわち第１センス期間Ｔｓ＿Ｌ２を設定して、第１ベリファイを実行する。
【０１１８】
また、シーケンサ１０は、コントローラ２００からサスペンドコマンドを受信していない場合（ステップＳ１０３＿Ｎｏ）、プログラム終了（ステップＳ１０２）後、ターゲットレベルを電圧ＶＬ１として、すなわち第１センス期間Ｔｓ＿Ｌ１を設定して、第１ベリファイを実行する（ステップＳ１１０）。
【０１１９】
図１１に示すように、シーケンサ１０は、第１ベリファイ（ステップＳ１０９あるいはＳ１１０）終了後、第２ベリファイを実行する（ステップＳ１１１）。
【０１２０】
シーケンサ１０は、プログラム対象の全て（あるいは予め設定された規定数以上）のメモリセルトランジスタＭＴが第２ベリファイをパスしている場合（ステップ１１２＿Ｙｅｓ）、書き込み動作を終了させる。
【０１２１】
また、シーケンサ１０は、第２ベリファイをパスしていないメモリセルトランジスタＭＴがある（あるいは予め設定された規定数以上ある）場合（ステップＳ１１２＿Ｎｏ）、プログラムループが予め設定された規定回数に達したか確認する（ステップＳ１１３）。
【０１２２】
プログラムループが規定回数に達している場合（ステップＳ１１３＿Ｙｅｓ）、シーケンサ１０は、書き込み動作を終了させ、書き込み動作が正常に終了しなかった旨をコントローラ２００に報告する。
【０１２３】
プログラムループが規定回数に達していない場合（ステップＳ１１３＿Ｎｏ）、シーケンサ１０は、次のプログラムのプログラムパルスの設定電圧をステップアップさせる（ステップＳ１１４）。より具体的には、シーケンサ１０は、プログラムパルスの設定電圧をΔＶだけステップアップさせる。プログラムパルスの設定電圧は、プログラムループを繰り返す度にΔＶだけステップアップされる。例えば１回目のプログラムパルスの電圧を電圧ＶＰＧＭとすると、２回目のプログラムパルスの電圧はＶＰＧＭ＋ΔＶとされ、３回目のプログラムパルスの電圧はＶＰＧＭ＋２・ΔＶとされる。
【０１２４】
ステップＳ１０２に戻り、次のプログラムループが実行される。このとき、センスアンプ１５は、第２ベリファイをパスしたメモリセルトランジスタＭＴに対応するビット線ＢＬ（“１”）に電圧ＶＢＬを印加して、第１ベリファイをフェイルしたメモリセルトランジスタＭＴに対応するビット線ＢＬ（“０”）に電圧ＶＳＳを印加して、第１ベリファイをパスして、第２ベリファイをフェイルしたメモリセルトランジスタＭＴに対応するビット線ＢＬ（“ＱＰＷ”）に電圧ＶＱＰＷを印加する。ロウデコーダ１４は、選択ワード線ＷＬにステップアップさせたプログラムパルスを印加する。
【０１２５】
シーケンサ１０は、第２ベリファイをパスするか、プログラムループが規定回数に達するまで、プログラムループを繰り返す。
【０１２６】
１．３．４  プログラム時の各配線の電圧について
次に、プログラム時の各配線の電圧について、図１２を用いて説明する。
【０１２７】
図１２に示すように、センスアンプ１５は、センスアンプユニットＳＡＵ内のラッチ回路ＳＤＬに格納されたデータに基づいて、ＢＬプリチャージを行う。より具体的には、ラッチ回路ＳＤＬに“１”データ（“Ｈ”レベルのデータ）が保持されている場合、ノードＩＮＶ＿Ｓは“Ｌ”レベルとなるため、トランジスタ５１がオン状態となる。この状態において、信号ＢＬＳ及びＢＬＸが“Ｈ”レベルとされて、トランジスタ４０及び４２がオン状態とされる。そして、信号ＢＬＣが“Ｈ”レベルとされて、トランジスタ４１のゲートに電圧“ＶＢＬ＋Ｖｔ４１”（Ｖｔ４１はトランジスタ４１の閾値電圧）が印加されると、ビット線ＢＬに電圧ＶＢＬが印加される。すなわち、ビット線ＢＬ（“１”）には、電圧ＶＢＬが印加される。他方で、ラッチ回路ＳＤＬに“０”データ（“Ｌ”レベルのデータ）が保持されている場合、ノードＩＮＶ＿Ｓは“Ｈ”レベルとなるため、トランジスタ４３がオン状態とされる。ノードＳＲＣＧＮＤに電圧ＶＳＳが印加されている場合、対応するビット線ＢＬには電圧ＶＳＳが印加される。すなわち、ビット線ＢＬ（“０”）及びビット線ＢＬ（“ＱＰＷ”）には、電圧ＶＳＳが印加される。
【０１２８】
ロウデコーダ１４は、いずれかのブロックＢＬＫを選択し、更にいずれかのストリングユニットＳＵを選択する。そして、ロウデコーダ１４は、選択されたストリングユニットＳＵにおける選択ゲート線ＳＧＤに電圧ＶＳＤ１を印加する。選択トランジスタＳＴ１の閾値電圧をＶｔｓｇとすると、電圧ＶＳＤ１は、“ＶＢＬ＋Ｖｔｓｇ”以上の電圧で、選択トランジスタＳＴ１をオン状態とさせる電圧である。他方で、ロウデコーダ１４は、非選択ストリングユニットＳＵの選択ゲート線ＳＧＤに電圧ＶＳＳを印加して、対応する選択トランジスタＳＴ１をオフ状態とさせる。また、ロウデコーダ１４は、選択ゲート線ＳＧＳに電圧ＶＳＳを印加して、選択トランジスタＳＴ２をオフ状態とさせる。
【０１２９】
またソース線ＳＬには、例えばソース線ドライバ（不図示）を介して、電圧ＶＣＥＬＳＲＣ（＞ＶＳＳ）が印加される。
【０１３０】
これにより、ビット線ＢＬ（“１”）に対応する選択ＮＡＮＤストリング１６のチャネルには電圧ＶＢＬが印加され、ビット線ＢＬ（“０”）及びＢＬ（“ＱＰＷ”）に対応する選択ＮＡＮＤストリング１６のチャネルには、電圧ＶＳＳが印加される。
【０１３１】
その後、ロウデコーダ１４は、選択ストリングユニットＳＵの選択ゲート線ＳＧＤに電圧ＶＳＤ２を印加する。電圧ＶＳＤ２は、電圧ＶＳＤ１及び電圧ＶＢＬよりも低い電圧で、電圧ＶＳＳを印加された選択トランジスタＳＴ１はオンさせるが、電圧ＶＢＬを印加された選択トランジスタＳＴ１はカットオフさせる電圧である。これにより、ビット線ＢＬ（“１”）に対応するＮＡＮＤストリング１６のチャネルはフローティング状態となる。また、センスアンプ１５は、センスアンプユニットＳＡＵ内のトランジスタ４１において、信号ＢＬＣの“Ｈ”レベルの電圧を“ＶＱＰＷ＋Ｖｔ４１”とする。これにより、電圧ＶＢＬが印加されていたビット線ＢＬ（“１”）に対応するセンスアンプユニットＳＡＵにおいては、トランジスタ４１がカットオフ状態とされ、ビット線ＢＬ（“１”）もフローティング状態となる。
【０１３２】
次に、センスアンプ１５は、第２プログラム条件に応じてラッチ回路ＳＤＬのデータを更新する。より具体的には、ビット線ＢＬ（“ＱＰＷ”）に対応するセンスアンプユニットＳＡＵにおいては、ラッチ回路ＳＤＬのデータが“０”データから“１”データに更新される。従って、センスアンプ１５は、ビット線ＢＬ（“ＱＰＷ”）にトランジスタ４１でクランプされた電圧ＶＱＰＷを印加する。
【０１３３】
次に、ロウデコーダ１４は、選択ブロックＢＬＫにおいていずれかのワード線ＷＬを選択し、選択ワード線に電圧ＶＰＧＭを印加し、その他の非選択ワード線ＷＬに電圧ＶＰＡＳＳを印加する。
【０１３４】
ビット線ＢＬ（“０”）に対応するＮＡＮＤストリング１６では、選択トランジスタＳＴ１がオン状態となる。そして、選択ワード線ＷＬに接続されたメモリセルトランジスタＭＴのチャネル電位はＶＳＳとなる。よって、制御ゲートとチャネルとの間の電位差（ＶＰＧＭ−ＶＳＳ）が大きくなり、その結果、電子が電荷蓄積層に注入されて、メモリセルトランジスタＭＴの閾値電圧が上昇される。
【０１３５】
ビット線ＢＬ（“１”）に対応するＮＡＮＤストリング１６では、選択トランジスタＳＴ１がカットオフ状態となる。そのため、選択ワード線ＷＬに接続されたメモリセルトランジスタＭＴのチャネルは電気的にフローティングとなる。すると、ワード線ＷＬ等との容量カップリングにより、チャネル電位は上昇する。よって、制御ゲートとチャネルとの間の電位差が小さくなり、その結果、電子は電荷蓄積層にほとんど注入されず、メモリセルトランジスタＭＴの閾値電圧は維持される（閾値分布レベルがより高い分布に遷移するほどには閾値電圧は変動しない）。
【０１３６】
ビット線ＢＬ（“ＱＰＷ”）に対応するＮＡＮＤストリング１６では、選択トランジスタＳＴ１がオン状態となる。そして、選択ワード線ＷＬに接続されたメモリセルトランジスタＭＴのチャネル電位はＶＱＰＷ（＞ＶＳＳ）となる。よって、制御ゲートとチャネルとの間の電位差（ＶＰＧＭ−ＶＱＰＷ）は、チャネル電位がＶＳＳの場合よりも小さくなる。その結果、電荷蓄積層に注入される電子量は、ビット線ＢＬ（“０”）に対応するメモリセルトランジスタＭＴよりも少なくなり、メモリセルトランジスタＭＴの閾値電圧の変動量も少なくなる。
【０１３７】
１．３．５  ベリファイ時の各配線の電圧について
次に、ベリファイ時の各配線の電圧について、図１３を用いて説明する。図１３の例は説明を簡略化するため、１つのレベル（例えば“Ａ”レベル）に対して第１及び第２ベリファイを実行する場合を示している。複数のレベルのベリファイを実行する場合、各レベルに対応した電圧ＶＣＧＲＶが印加される（レベルに応じてＶＣＧＲＶがステップアップされる）。また、図１３の例は、第１ベリファイにおいて対象となる全てのビット線ＢＬにＢＬプリチャージを行い、第２ベリファイにおいて第１ベリファイをパスしたビット線ＢＬにＢＬプリチャージを実施する場合を示している。なお、本実施形態においては、第１センス期間が、第２センス期間よりも短い場合について説明するが、これに限定されない。例えば、第１及び第２センス期間を同じ長さとし、第１及び第２ベリファイ時の電圧ＶＣＧＲＶが第１及び第２ベリファイのターゲットレベルに応じて異なっていても良い。
【０１３８】
図１３に示すように、時刻ｔ１において、ロウデコーダ１４は、選択ブロックＢＬＫの選択ゲート線ＳＧＤ及びＳＧＳに電圧ＶＳＧを印加し、選択ワード線ＷＬに電圧ＶＣＧＲＶを印加し、非選択ワード線ＷＬに電圧ＶＲＥＡＤを印加する。電圧ＶＳＧは選択トランジスタＳＴ１及びＳＴ２をオン状態にする電圧である。
【０１３９】
時刻ｔ２において、センスアンプ１５は、ビット線ＢＬのＢＬプリチャージを行い、ビット線ＢＬに電圧ＶＢＬＲＤを印加する。電圧ＶＢＬＲＤは読み出し動作時にビット線ＢＬに印加される電圧である。
【０１４０】
また、ソース線ＳＬには、例えばソース線ドライバを介して、電圧ＶＳＲＣ（＞ＶＳＳ）が印加される。
【０１４１】
時刻ｔ３において、シーケンサ１０は、信号ＨＬＬを“Ｈ”レベルにして、トランジスタ４５をオン状態にする。これにより、センスアンプユニットＳＡＵ内においてノードＳＥＮに電圧ＶＳＥＮＰが印加される。
【０１４２】
時刻ｔ４〜ｔ８において、第１ベリファイが実行される。
【０１４３】
より具体的には、時刻ｔ４において、シーケンサ１０は、信号ＨＬＬを“Ｌ”レベルにし、ノードＳＥＮをフローティング状態にする。そして、シーケンサ１０は、クロック信号ＣＬＫに“Ｈ”レベルの電圧を印加する（以下、「クロックアップ」と呼ぶ）。この結果、容量素子５２は充電され、ノードＳＥＮの電圧は、容量カップリングの影響により電圧ＶＢＳＴに上昇する。電圧ＶＢＳＴは、クロックアップにより上昇したノードＳＥＮの電圧であり、電圧ＶＳＥＮＰよりも高い電圧である。
【０１４４】
時刻ｔ５〜ｔ６の期間、シーケンサ１０は、第１センスを実行する。なお、通常状態における第１センス期間は、レジューム直後の第１センス期間よりも長い。より具体的には、時刻ｔ５〜ｔ６の間、シーケンサ１０は、信号ＸＸＬを“Ｈ”レベルにしてトランジスタ４４をオン状態にする。この状態において、ベリファイ対象となるメモリセルトランジスタＭＴの閾値電圧がターゲットレベル以上の場合、メモリセルトランジスタＭＴはオフ状態（以下、「オフセル（off-cell）」と呼ぶ）とされ、対応するビット線ＢＬからソース線ＳＬに電流はほとんど流れない。よって、ノードＳＥＮ及び容量素子５２に充電された電荷はほとんど放電されず、ノードＳＥＮの電圧はほとんど変動しない。他方で、ベリファイ対象となるメモリセルトランジスタＭＴの閾値電圧がターゲットレベル未満の場合、メモリセルトランジスタＭＴはオン状態（以下、「オンセル（on-cell）」と呼ぶ）となり、対応するビット線ＢＬからソース線ＳＬに電流が流れる。すなわち、ノードＳＥＮの電圧が低下していく。
【０１４５】
時刻ｔ６において、シーケンサ１０は、信号ＸＸＬを“Ｌ”レベルにしてトランジスタ４４をオフ状態にする。そして、シーケンサ１０は、クロック信号ＣＬＫに“Ｌ”レベルの電圧を印加する（以下、「クロックダウン」と呼ぶ）。この結果、容量カップリングの影響により、ノードＳＥＮの電圧は低下する。
【０１４６】
時刻ｔ７〜ｔ８の期間、シーケンサ１０は、ノードＳＥＮの電圧をストローブする。より具体的には、シーケンサ１０は、信号ＳＴＢを“Ｈ”レベルにし、トランジスタ４８をオン状態にする。この状態において、ノードＳＥＮの電圧がセンストランジスタ４７の閾値電圧（判定レベル）以上の場合、対応するセンストランジスタ４７は、オン状態にされる。この結果、第１ベリファイをパスしたと判定される。このとき、予め“Ｈ”レベルとされていたバスＬＢＵＳは“Ｌ”レベルとされる。
【０１４７】
他方で、ノードＳＥＮの電圧がセンストランジスタ４７の閾値電圧（判定レベル）よりも低い場合、センストランジスタ４７は、オフ状態にされる。この結果、第１ベリファイをフェイルしたと判定される。このとき、予め“Ｈ”レベルとされていたバスＬＢＵＳは“Ｈ”レベルを維持する。
【０１４８】
時刻ｔ８において、ラッチ回路ＳＤＬにバスＬＢＵＳの反転データが格納される。より具体的には、第１ベリファイをフェイルしたラッチ回路ＳＤＬには“Ｌ”データが格納され、ノードＩＮＶ＿Ｓは“Ｈ”レベルとされる。これにより、トランジスタ５１はオフ状態とされ、トランジスタ４３はオン状態とされる。従って、第１ベリファイをフェイルしたメモリセルトランジスタＭＴ（オフセル）に対応するビット線ＢＬには、電圧ＶＳＳが印加される。
【０１４９】
時刻ｔ９〜ｔ１３において、時刻ｔ４〜８と同様に、シーケンサ１０は第２ベリファイを実行する。時刻ｔ９〜ｔ１３における動作は、時刻ｔ４〜８における動作とほぼ同じである。なお、本実施形態では、第２ベリファイではノードＳＥＮのセットアップ（電圧ＶＳＥＮＰの印加）が実行されていないが、第１ベリファイ同様にノードＳＥＮのセットアップを行っても良い。
【０１５０】
時刻ｔ９において、ノードＳＥＮの電圧がクロックアップされる。
【０１５１】
時刻ｔ１０〜ｔ１１の期間、シーケンサ１０は、第２センスを実行する。
【０１５２】
時刻ｔ１１において、ノードＳＥＮの電圧がクロックダウンされる。
【０１５３】
時刻ｔ１２〜ｔ１３の期間、シーケンサ１０は、ノードＳＥＮの電圧をストローブする。ノードＳＥＮの電圧がセンストランジスタ４７の閾値電圧以上の場合、対応するセンストランジスタ４７は、オン状態にされる。この結果、第２ベリファイをパスしたと判定される。他方で、ノードＳＥＮの電圧がセンストランジスタ４７の閾値電圧よりも低い場合、対応するセンストランジスタ４７は、オフ状態にされる。この結果、第２ベリファイをフェイルしたと判定される。
【０１５４】
時刻ｔ１３において、リカバリ処理が行われ、ベリファイ動作が終了する。
【０１５５】
なお、複数のレベルのベリファイを実行する場合、レベル毎に時刻ｔ２〜ｔ１３が繰り返される。この場合、各レベルに応じてＶＣＧＲＶがステップアップされる。
【０１５６】
１．３．６  書き込み動作のコントローラの動作について
次に、書き込み動作時のコントローラ２００の動作ついて、図１４を用いて説明する。図１４の例は、通常状態における書き込み動作を示している。
【０１５７】
図１４に示すように、まず、プロセッサ２３０は、書き込み動作を実行することを通知するコマンド“８０ｈ”をＮＡＮＤ型フラッシュメモリ１００に出力するとともに、コマンドラッチイネーブル信号ＣＬＥを“Ｈ”レベルにしてアサートする。
【０１５８】
次に、プロセッサ２３０は、アドレス“ＡＤＤ”を出力すると共に、アドレスラッチイネーブル信号ＡＬＥを“Ｈ”レベルにしてアサートする。なお、図１４の例では、アドレスを１サイクルで示しているが、カラムアドレス及びロウアドレス等を送信するため、複数のサイクルであっても良い。
【０１５９】
次に、プロセッサ２３０は、プログラムデータ“ＤＡＴ”を必要なサイクル数出力する。
【０１６０】
更にプロセッサ２３０は、書き込み実行を指示するライトコマンド“１０ｈ”を出力すると共に、コマンドラッチイネーブル信号ＣＬＥを“Ｈ”レベルにしてアサートする。
【０１６１】
これらのコマンド、アドレス、及びデータは、ＮＡＮＤ型フラッシュメモリ１００の例えばレジスタ１２に格納される。
【０１６２】
ライトコマンド“１０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００は、書き込み動作を開始し、ビジー状態となる（Ｒ／Ｂｎ＝“Ｌ”）。以下、ＮＡＮＤ型フラッシュメモリ１００における書き込み動作期間、すなわちビジー状態の期間をｔＰＲＯＧとする。
【０１６３】
書き込み動作が完了すると、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となり、レディ／ビジー信号Ｒ／Ｂｎは“Ｈ”レベルに復帰する。
【０１６４】
１．３．７  書き込み動作時にサスペンドが発生した場合の具体例について
次に、書き込み動作時にサスペンドが発生した場合の具体例について、図１５を用いて説明する。図１５の例は、１回目のプログラムループにおいて書き込み動作をサスペンドし、読み出し動作実行後、レジュームする場合を示している。また、図１５の例は、１回のベリファイにおいて、“Ａ”〜“Ｃ”レベルのベリファイを実行する場合を示している。以下、“Ａ”〜“Ｃ”レベルに対応する電圧ＶＣＧＲＶを、それぞれＶＣＧＲＶ＿Ａ〜ＶＣＧＲＶ＿Ｃと表記する。
【０１６５】
図１５に示すように、プロセッサ２３０は、書き込み動作を実行するため、コマンド“８０ｈ”、アドレスデータ“ＡＤＤ”、及びライトコマンド“１０ｈ”を出力する。すると、シーケンサ１０は、ライトコマンド“１０ｈ”に応じて書き込み動作を開始し、ビジー状態（Ｒ／Ｂｎ＝“Ｌ”）となる。
【０１６６】
プロセッサ２３０は、１回目のプログラム中に、ホスト機器２より読み出し命令を受信すると、サスペンドコマンド“Ａ７ｈ”を出力する。図１５の例では、シーケンサ１０は、プログラム中（選択ワード線ＷＬに電圧ＶＰＧＭを印加中）に、サスペンドコマンド“Ａ７ｈ”を受信している。シーケンサ１０は、ビジー状態にも関わらずサスペンドコマンド“Ａ７ｈ”を受信すると、プログラム終了後、書き込み動作をサスペンドし、レディ／ビジー信号Ｒ／Ｂｎを“Ｈ”レベルに復帰させる。なお、ベリファイ中にサスペンドコマンド“Ａ７ｈ”を受信した場合は次のプログラム終了後にサスペンドする。以下、サスペンドコマンド受信後、レディ／ビジー信号Ｒ／Ｂｎを“Ｈ”レベルに復帰させるまでの期間、すなわちサスペンド状態になるまでの期間を期間ｔＳＴＯＰＲＳＴと表記する。
【０１６７】
次に、プロセッサ２３０は、レディ／ビジー信号Ｒ／Ｂｎが“Ｈ”レベルに復帰したのを確認した後、読み出し動作を実行することを通知するコマンド“００ｈ”、読み出し用のアドレス“ＡＤＤ”、及び読み出し動作の実行を指示するリードコマンド“３０ｈ”を出力する。なお、図１５の例では１サイクルでアドレスが転送される例を示しているが、複数サイクルで転送されても良い。
【０１６８】
シーケンサ１０は、リードコマンド“３０ｈ”に応答して、読み出し動作を開始し、ビジー状態となる。以下、読み出し動作時におけるビジー状態の期間を期間ｔＲと表記する。そして、メモリセルアレイ１３からデータ“Ｒ−ＤＡＴ”の読み出しが完了すると、レディ／ビジー信号Ｒ／Ｂｎが“Ｈ”レベルに復帰する（レディ状態となる）。レディ／ビジー信号Ｒ／Ｂｎが“Ｈ”レベルになると、コントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００にリードイネーブル信号ＲＥｎを送信して、データ“Ｒ−ＤＡＴ”を読み出す。
【０１６９】
次にプロセッサ２３０は、読み出し動作が終了すると、レジュームコマンド“４８ｈ”、を出力する。すると、シーケンサ１０は、コマンド“４８ｈ”に応答して、サスペンド情報を確認した後、ベリファイから書き込み動作をレジュームし、ビジー状態となる。図１５の例では、１回目のプログラム終了後に書き込み動作をサスペンドしていたため、１回目のベリファイから書き込み動作をレジュームしている。この場合、第１ベリファイのターゲットレベルとして電圧ＶＬ２が設定される（第１センス期間Ｔｓ＿Ｌ２が設定される）。その後、第２ベリファイをフェイルした場合、２回目のプログラムループが実行される。２回目のプログラムでは、選択ワード線ＷＬに電圧ＶＰＧＭ＋ΔＶが印加される。そして、２回目のベリファイでは、第１ベリファイのターゲットレベルとして電圧ＶＬ１が設定される（第１センス期間Ｔｓ＿Ｌ１が設定される）。
【０１７０】
ＮＡＮＤ型フラッシュメモリ１００において書き込み動作が完了すると、レディ／ビジー信号Ｒ／Ｂｎは“Ｈ”レベルに復帰する。
【０１７１】
１．４  本実施形態に係る効果について
本実施形態に係る構成であると、半導体記憶装置及びメモリシステムの信頼性を向上できる。以下、本効果について詳述する。
【０１７２】
書き込み動作中に、サスペンドが実行されると、オーバープログラムによる書き込み誤動作が生じる場合がある。例えば、図１６に示すように、“Ｅｒ”レベルから“Ａ”レベルにデータを書き込む場合において、選択ワード線ＷＬに電圧ＶＰＧＭを印加し、閾値分布（ａ）から閾値分布（ｂ）まで書き込んだ（閾値電圧が上昇した）後、サスペンドが実行される。すると、サスペンド中に、メモリセルトランジスタＭＴの電荷が抜けるデータリテンションが生じ、メモリセルトランジスタＭＴの閾値電圧は、閾値分布（ｂ）から閾値分布（ｃ）まで低下する。これにより、閾値分布（ｂ）の位置で、電圧ＶＬ１＿Ａ以上にあったメモリセルトランジスタＭＴの閾値電圧の一部は、電圧ＶＬ１＿Ａ未満に低下してしまう（閾値分布（ｃ）の斜線部）。すると、レジューム直後の第１ベリファイをフェイルしてしまうため、閾値分布（ｃ）の斜線部のメモリセルトランジスタＭＴに対しては第１プログラム条件で次のプログラムが実行される。このとき、選択ワード線ＷＬには、サスペンド前の電圧ＶＰＧＭからステップアップされた電圧ＶＰＧＭ＋ΔＶが印加されるため、閾値分布（ｃ）の斜線部のメモリセルトランジスタＭＴの閾値電圧は大きく上昇する。従って、一部のメモリセルトランジスタＭＴにおいては、オーバープログラムによる誤書き込みが生じる（閾値分布（ｄ）の斜線部）。
【０１７３】
これに対し、本実施形態に係る構成では、書き込み動作をサスペンドする場合において、レジューム直後の第１ベリファイのターゲットレベルを、通常状態における第１ベリファイのターゲットレベルよりも低く設定できる。例えば、図１６において、閾値分布（ｃ）の斜線部よりも低い電圧ＶＬ２＿Ａを設定する。これにより、レジューム直後の第１ベリファイにおいて、データリテンションによる閾値電圧低下の影響で、第１ベリファイをフェイルするメモリセルトランジスタＭＴの個数を低減できる。よって、書き込み動作をサスペンドした場合に、レジューム後のプログラムによるオーバープログラムを抑制し、誤書き込みを低減できる。従って、半導体記憶装置及びメモリシステムの信頼性を向上できる。
【０１７４】
２．第２実施形態
次に、第２実施形態に係る半導体記憶装置及びメモリシステムについて説明する。第２実施形態は、ベリファイ終了後に書き込み動作をサスペンドし、再度ベリファイから書き込み動作をレジュームする場合について説明する。なお、第２実施形態におけるコントローラ２００の動作は、第１実施形態と同じである。以下、第１実施形態と異なる点についてのみ説明する。
【０１７５】
２．１  ベリファイのターゲットレベルについて
まず、ベリファイのターゲットレベルについて説明する。第１実施形態と同様に、レジューム直後の第１ベリファイのターゲットレベルは、通常状態のターゲットレベルよりも低くしても良い。また、レジューム直後の第１ベリファイのターゲットレベルは、通常状態の第１ベリファイのターゲットレベルと同じ電圧ＶＬ１に設定しても良い。すなわち、サスペンド前のベリファイにおける第１センス期間と、レジューム直後のベリファイにおける第１センス期間とを同じ長さにしても良い。以下、本実施形態においては、レジューム直後の第１ベリファイのターゲットレベルを通常状態の第１ベリファイのターゲットレベルと同じ電圧ＶＬ１にする場合について説明する。
【０１７６】
２．２  ＮＡＮＤ型フラッシュメモリにおける書き込み動作の全体の流れについて
まず、ＮＡＮＤ型フラッシュメモリ１００における書き込み動作の全体の流れについて、図１７及び図１８を用いて説明する。図１７及び図１８の例は、第１実施形態の図１０及び図１１と同様に、説明を簡略化するため、１つのレベル（例えば“Ａ”レベル）について第１及び第２ベリファイを実行する場合を示している。なお、図１７及び図１８におけるステップＳ１０１〜１０８、Ｓ１１２〜Ｓ１１４は、第１実施形態の図１０及び図１１と同じである。同様に、図１７及び図１８におけるステップＳ１１０＿１及びＳ１１０＿２は、第１実施形態のステップＳ１１０と同じであり、ステップＳ１１１＿１及びＳ１１１＿２は、第１実施形態のステップＳ１１１と同じある。このため、ステップＳ１０１〜１０８、Ｓ１１０＿１、Ｓ１１０＿２、Ｓ１１１＿１、Ｓ１１１＿２、及びＳ１１２〜Ｓ１１４の動作の詳細な記載は省略する。
【０１７７】
図１７に示すように、まず、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から書き込み命令を受信する（ステップＳ１０１）。
【０１７８】
次に、ロウデコーダ１４は、選択ワード線ＷＬにプログラムパルスを印加する（ステップＳ１０２）。すなわち、シーケンサ１０は、プログラムを実行する。
【０１７９】
次に、シーケンサ１０は、ベリファイを実行する。より具体的には、シーケンサ１０は、ターゲットレベルＶＬ１に基づく第１ベリファイ（ステップＳ１１０＿１）及びターゲットレベルＶＨ２に基づく第２ベリファイ（ステップＳ１１１＿１）を実行する。
【０１８０】
シーケンサ１０は、プログラム対象の全て（あるいは予め設定された規定数以上）のメモリセルトランジスタＭＴが第２ベリファイをパスしている場合（ステップ１１２＿Ｙｅｓ）、書き込み動作を終了させる。
【０１８１】
また、シーケンサ１０は、第２ベリファイをパスしていないメモリセルトランジスタＭＴがある（あるいは予め設定された規定数以上ある）場合（ステップＳ１１２＿Ｎｏ）、プログラムループが予め設定された規定回数に達したか確認する（ステップＳ１１３）。
【０１８２】
シーケンサ１０は、プログラムループが規定回数に達している場合（ステップＳ１１３＿Ｙｅｓ）、書き込み動作を終了させ、書き込み動作が正常に終了しなかった旨をコントローラ２００に報告する。
【０１８３】
プログラムループが規定回数に達していない場合（ステップＳ１１３＿Ｎｏ）、シーケンサ１０は、図１８に示すように、コントローラ２００からサスペンドコマンドを受信しているか確認する（ステップＳ１０３）。
【０１８４】
シーケンサ１０は、コントローラ２００からサスペンドコマンドを受信している場合（ステップＳ１０３＿Ｙｅｓ）、ベリファイ終了後、書き込み動作をサスペンドする（ステップＳ１０４）。シーケンサ１０は、書き込み動作をサスペンドした後、レディ／ビジー信号Ｒ／Ｂｎを“Ｈ”レベルにする。
【０１８５】
次に、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から読み出し命令を受信し（ステップＳ１０５）、読み出し動作を実行する（ステップＳ１０６）。シーケンサ１０は、読み出し動作終了後、レディ／ビジー信号Ｒ／Ｂｎを“Ｈ”レベルにする。
【０１８６】
次に、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００からレジュームコマンドを受信する（ステップＳ１０７）。
【０１８７】
シーケンサ１０は、レジュームコマンドを受信すると、レジスタ１２内のサスペンド情報を確認し、書き込み動作をレジュームする（ステップＳ１０８）。
【０１８８】
シーケンサ１０は、レジューム後、再度ベリファイを実行する。より具体的には、シーケンサ１０は、第１ベリファイ（ステップＳ１１０＿２）及び第２ベリファイ（ステップＳ１１１＿２）を実行する。なお、第１ベリファイ（ステップＳ１１０＿２）及び第２ベリファイ（ステップＳ１１１＿２）は省略されても良い。
【０１８９】
コントローラ２００からサスペンドコマンドを受信していない場合（ステップＳ１０３＿Ｎｏ）、あるいは第２ベリファイ（ステップＳ１１１＿２）実行後、シーケンサ１０は、次のプログラムのプログラムパルスの設定電圧をステップアップさせる（ステップＳ１１４）。
【０１９０】
ステップＳ１０２に戻り、次のプログラムループが実行される。このとき、センスアンプ１５は、サスペンド直前に実行した第１ベリファイ（ステップＳ１１０＿１）及び第２ベリファイ（ステップＳ１１１＿１）の結果を優先的に用いて、ビット線ＢＬに電圧を印加する。
【０１９１】
シーケンサ１０は、第２ベリファイ（ステップＳ１１１＿１）をパスするか、プログラムループが規定回数に達するまで、プログラムループを繰り返す。
【０１９２】
２．３  書き込み動作時にサスペンドが発生した場合の具体例について
次に、書き込み動作時にサスペンドが発生した場合の具体例について、図１９を用いて説明する。図１９の例は、第１実施形態の図１５と同様に、１回目のプログラムループにおいて書き込み動作をサスペンドし、読み出し動作実行後、レジュームする場合を示している。また、図１９の例は、１回のベリファイにおいて、“Ａ”〜“Ｃ”レベルのベリファイを実行する場合を示している。
【０１９３】
図１９に示すように、第１実施形態と異なり、シーケンサ１０は、例えばプログラム中（選択ワード線ＷＬに電圧ＶＰＧＭを印加中）に、サスペンドコマンド“Ａ７ｈ”を受信すると、ベリファイ終了後、書き込み動作をサスペンドし、レディ／ビジー信号Ｒ／Ｂｎを“Ｈ”レベルに復帰させている。従って、本実施形態における期間ｔＳＴＯＰＲＳＴは、ベリファイを実行する分だけ、第１実施形態の期間ｔＳＴＯＰＲＳＴよりも長くなる。
【０１９４】
レジューム後、シーケンサ１０は、第１実施形態と同様に、書き込み動作中断時のステータスを確認した後、ベリファイから書き込み動作をレジュームし、ビジー状態となる。但し、ベリファイ判定は、サスペンド前のベリファイ結果が優先的に用いられる。
【０１９５】
２．４  本実施形態に係る効果について、
本実施形態に係る構成は、書き込み動作をサスペンドする場合において、ベリファイ終了後にサスペンドを実行し、レジューム直後に再度ベリファイを実行する。サスペンド前にベリファイを実行することにより、データリテンションの影響を抑制できる。よって、レジューム後のプログラムによるオーバープログラムを抑制し、誤書き込みを低減できる。従って、半導体記憶装置及びメモリシステムの信頼性を向上できる。
【０１９６】
更に、レジューム直後に再度ベリファイを実行することにより、データリテンションの影響や、例えばサスペンド中に実行された読出し動作によるディスターブ等の影響を確認できる。
【０１９７】
３．第３実施形態
次に、第３実施形態に係る半導体記憶装置及びメモリシステムについて説明する。第３実施形態は、サスペンド直前のプログラムパルスの電圧と、レジューム後の最初のプログラムパルスの電圧を同じにするものである。以下、第２実施形態に本実施形態を適用した場合について示し、第２実施形態と異なる点についてのみ説明する。
【０１９８】
３．１  ＮＡＮＤ型フラッシュメモリにおける書き込み動作の全体の流れについて
まず、ＮＡＮＤ型フラッシュメモリ１００における書き込み動作の全体の流れについて、図２０及び図２１を用いて説明する。図２０及び図２１の例は、第２実施形態の図１７及び図１８と同様に、説明を簡略化するため、１つのレベル（例えば“Ａ”レベル）について第１及び第２ベリファイを実行する場合を示している。なお、図２０及び図２１における各ステップの動作は、第２実施形態の図１７及び図１８と同じである。このため、各ステップの動作の詳細な記載は省略する。
【０１９９】
図２０に示すように、コントローラ２００から書き込み命令を受信してから（ステップＳ１０１）、レジューム後に第２ベリファイ（ステップＳ１１１＿２）を実行するまでの流れは、第２実施形態の図１７及び図１８と同様である。
【０２００】
第２実施形態と異なる点は、コントローラ２００からサスペンドコマンドを受信していない場合（ステップＳ１０３＿Ｎｏ）、シーケンサ１０は、次のプログラムのプログラムパルスの設定電圧をステップアップさせる（ステップＳ１１４）。
【０２０１】
他方で、シーケンサ１０は、第２ベリファイを実行した場合（ステップＳ１１１＿２）、プログラムパルスの設定電圧を維持させる（ステップアップしない）。
【０２０２】
次に、ステップＳ１０２に戻り、次のプログラムループが実行される。このとき、センスアンプ１５は、サスペンド直前に実行した第１ベリファイ（ステップＳ１１０＿１）及び第２ベリファイ（ステップＳ１１１＿１）の結果を優先的に用いて、ビット線ＢＬに電圧を印加する。
【０２０３】
シーケンサ１０は、第２ベリファイ（ステップＳ１１１＿１）をパスするか、プログラムループが規定回数に達するまで、プログラムループを繰り返す。
【０２０４】
３．２  書き込み動作時にサスペンドが発生した場合の具体例について
次に、書き込み動作時にサスペンドが発生した場合の具体例について、図２２を用いて説明する。図２２の例は、第２実施形態の図１９と同様に、１回目のプログラムループにおいて書き込み動作をサスペンドし、読み出し動作実行後、レジュームする場合を示している。また、図２２の例は、１回のベリファイにおいて、“Ａ”〜“Ｃ”レベルのベリファイを実行する場合を示している。
【０２０５】
図２２に示すように、レジューム後のプログラムパルスの電圧が、第２実施形態の図１９と異なる。より具体的には、シーケンサ１０は、まず、レジューム後に１回目のプログラムループのベリファイを実行する。その後、ロウデコーダ１４は、２回目のプログラムにおいて、選択ワード線ＷＬに、１回目のプログラムと同じ電圧ＶＰＧＭを印加にしている。そして、ロウデコーダ１４は、３回目のプログラムにおいて、選択ワード線ＷＬに、ステップアップした電圧ＶＰＧＭ＋ΔＶを印加している。
【０２０６】
３．３  本実施形態に係る効果について
本実施形態に係る構成は、書き込み動作をサスペンドする場合において、サスペンド前の最後のプログラムパルスの電圧と、レジューム後の最初のプログラムパルスの電圧を同じにすることができる。これにより、レジューム後のプログラムによるオーバープログラムを抑制し、誤書き込みを低減できる。従って、半導体記憶装置及びメモリシステムの信頼性を向上できる。
【０２０７】
更に、本実施形態は、第１及び第２実施形態に適用できる。これにより、第１及び第２実施形態と同様の効果が得られる。
【０２０８】
４．第４実施形態
次に、第４実施形態に係る半導体記憶装置及びメモリシステムについて説明する。第４実施形態は、ベリファイの途中で書き込み動作をサスペンドし、ベリファイから書き込み動作をレジュームする場合について説明する。なお、第４実施形態におけるコントローラ２００の動作は、第１実施形態と同じである。以下、第１乃至第３実施形態と異なる点についてのみ説明する。
【０２０９】
４．１  ＮＡＮＤ型フラッシュメモリにおける書き込み動作の全体の流れについて
まず、ＮＡＮＤ型フラッシュメモリ１００における書き込み動作の全体の流れについて、図２３及び図２４を用いて説明する。図２３及び図２４の例は、第１実施形態の図１０及び図１１と同様に、説明を簡略化するため、１つのレベル（例えば“Ａ”レベル）について第１及び第２ベリファイを実行する場合を示している。また、第２及び第３実施形態と同様に、レジューム直後の第１ベリファイのターゲットレベルを通常状態の第１ベリファイのターゲットレベルと同じ電圧ＶＬ１とする場合について示している。なお、図２３及び図２４におけるステップＳ１０１〜１０８、Ｓ１１０〜Ｓ１１４は、第１実施形態の図１０及び図１１と同じである。このため、ステップＳ１０１〜１０８、Ｓ１１０〜Ｓ１１４の動作の詳細な記載は省略する。
【０２１０】
図２３に示すように、まず、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から書き込み命令を受信する（ステップＳ１０１）。
【０２１１】
次に、ロウデコーダ１４は、選択ワード線ＷＬにプログラムパルスを印加する（ステップＳ１０２）。すなわち、シーケンサ１０は、プログラムを実行する。
【０２１２】
シーケンサ１０は、コントローラ２００からサスペンドコマンドを受信している場合（ステップＳ１０３＿Ｙｅｓ）、予め設定されたベリファイの一部動作を実行させる（ステップＳ１２０）。例えば、シーケンサ１０は、データリテンションの影響を受けやすい第１ベリファイを選択して実行させても良い。また、例えば、シーケンサ１０は、“Ａ”〜“Ｃ”レベルのベリファイにおいて、書き込みレベル（例えば“Ｅｒ”レベルから“Ａ”レベルへの書き込み）の近傍のレベル(例えば“Ａ”レベル)を選択してベリファイしても良い。
【０２１３】
その後、シーケンサ１０は、書き込み動作をサスペンドする（ステップＳ１０４）。
【０２１４】
次に、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から読み出し命令（リードコマンド及びアドレス）を受信し（ステップＳ１０５）、読み出し動作を実行する（ステップＳ１０６）。
【０２１５】
次に、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００からレジュームコマンドを受信する（ステップＳ１０７）。
【０２１６】
シーケンサ１０は、レジュームコマンドを受信すると、レジスタ１２内のサスペンド情報を確認し、書き込み動作を再開させる（ステップＳ１０８）。
【０２１７】
シーケンサ１０は、レジューム（ステップＳ１０８）後、あるいはサスペンドコマンドを受信していない場合（ステップＳ１０３＿Ｎｏ）において、第１ベリファイ（ステップＳ１１０）及び第２ベリファイ（ステップＳ１１１）を実行する。但し、シーケンサ１０は、サスペンドが実行された場合、ベリファイ判定には、サスペンド前に実行されたベリファイの一部動作（ステップＳ１２０）に基づく判定結果を優先的に用いる。
【０２１８】
図２４に示すように、シーケンサ１０は、プログラム対象の全て（あるいは予め設定された規定数以上）のメモリセルトランジスタＭＴが第２ベリファイをパスしている場合（ステップ１１２＿Ｙｅｓ）、書き込み動作を終了させる。
【０２１９】
また、シーケンサ１０は、第２ベリファイをパスしていないメモリセルトランジスタＭＴがある（あるいは予め設定された規定数以上ある）場合（ステップＳ１１２＿Ｎｏ）、プログラムループが予め設定された規定回数に達したか確認する（ステップＳ１１３）。
【０２２０】
シーケンサ１０は、プログラムループが規定回数に達している場合（ステップＳ１１３＿Ｙｅｓ）、書き込み動作を終了させ、書き込み動作が正常に終了しなかった旨をコントローラ２００に報告する。
【０２２１】
プログラムループが規定回数に達していない場合（ステップＳ１１３＿Ｎｏ）、シーケンサ１０は、次のプログラムのプログラムパルスの設定電圧をステップアップさせる（ステップＳ１１４）。
【０２２２】
そして、ステップＳ１０２に戻り、次のプログラムループが実行される。
【０２２３】
シーケンサ１０は、第２ベリファイ（ステップＳ１１１）をパスするか、プログラムループが規定回数に達するまで、プログラムループを繰り返す。
【０２２４】
４．２  書き込み動作時にサスペンドが発生した場合の具体例について
次に、書き込み動作時にサスペンドが発生した場合の具体例について、図２５を用いて説明する。図２５の例は、第１実施形態の図１５と同様に、１回目のプログラムループにおいて書き込み動作をサスペンドし、読み出し動作実行後、レジュームする場合を示している。また、図２５の例は、１回のベリファイにおいて、“Ａ”〜“Ｃ”レベルのベリファイを実行し、更にサスペンド直前のベリファイにおいては、“Ａ”レベルのベリファイが選択される場合を示している。
【０２２５】
図２５に示すように、シーケンサ１０は、例えばプログラム中（選択ワード線ＷＬに電圧ＶＰＧＭを印加中）に、サスペンドコマンド“Ａ７ｈ”を受信すると、“Ａ”レベルのベリファイ終了後、書き込み動作をサスペンドし、レディ／ビジー信号Ｒ／Ｂｎを“Ｈ”レベルに復帰させている。従って、本実施形態における期間ｔＳＴＯＰＲＳＴは、“Ａ”レベルのベリファイを実行する分だけ、第１実施形態の期間ｔＳＴＯＰＲＳＴよりも長くなる。
【０２２６】
レジューム後、シーケンサ１０は、第２実施形態と同様に、書き込み動作中断時のステータスを確認した後、ベリファイから書き込み動作をレジュームし、ビジー状態となる。例えば、レジューム後に“Ａ”〜“Ｃ”レベルのベリファイを行っても、“Ａ”レベルのベリファイ判定については、サスペンド前のベリファイ結果が優先的に用いられる。図２５の例では、２回目のプログラムループにおいて、プログラムパルスの電圧がＶＰＧＭ＋ΔＶにステップアップされている。但し、第３実施形態と同様に、レジューム後、最初のプログラムにおいては、プログラムパルスはステップアップされなくても良い。
【０２２７】
４．３  本実施形態に係る効果について
本実施形態に係る構成は、書き込み動作をサスペンドする場合において、サスペンド前にベリファイの一部動作を選択的に実行し、レジューム直後に再度ベリファイを実行することができる。サスペンド前にデータリテンションの影響を受けやすい条件について、ベリファイを実行しておくことで、データリテンションの影響を抑制できる。よって、レジューム後のプログラムによるオーバープログラムを抑制し、誤書き込みを低減できる。従って、半導体記憶装置及びメモリシステムの信頼性を向上できる。
【０２２８】
更に、本実施形態は、第１及び第３実施形態に適用できる。これにより、第１及び第３実施形態と同様の効果が得られる。
【０２２９】
５．第５実施形態
次に、第５実施形態に係る半導体記憶装置及びメモリシステムについて説明する。第５実施形態は、書き込み動作において、各メモリセルトランジスタＭＴに、第２プログラム条件が１回だけ適用される場合について説明する。なお、第５実施形態におけるコントローラ２００の動作は、第１実施形態と同じである。以下、第１乃至第４実施形態と異なる点についてのみ説明する。
【０２３０】
５．１  書き込み動作について  
まず、本実施形態における書き込み動作について、図２６を用いて説明する。図２６の例は、“Ｅｒ”レベルから“Ａ”レベルに書き込む場合を示している。
【０２３１】
図２６に示すように、まず、第１プログラム条件を適用してプログラムを実行し、閾値分布（ａ）から閾値分布（ｂ）まで書き込みを行う。閾値分布（ｂ）は、電圧ＶＬ１＿Ａ以上電圧ＶＨ＿Ａ未満なので、次のプログラムでは、第２プログラム条件が適用され、閾値分布（ｂ）から閾値分布（ｃ）まで書き込まれる。閾値分布（ｃ）の斜線部の閾値電圧は、電圧ＶＨ＿Ａよりも低いため、第２ベリファイをフェイルする。しかし、すでに第２プログラム条件によるプログラムが実行されているため、書き込み禁止とされる。すなわち、１つのメモリセルトランジスタＭＴに対して、２回目の第２プログラム条件によるプログラムは実行されない。
【０２３２】
５．２  ＮＡＮＤ型フラッシュメモリにおける書き込み動作の全体の流れについて
まず、ＮＡＮＤ型フラッシュメモリ１００における書き込み動作の全体の流れについて、図２７及び図２８を用いて説明する。図２７及び図２８の例は、プログラム終了後、書き込み動作をサスペンドし、レジューム後にベリファイ動作を実行する場合を示している。図２７及び図２８の例は、第１実施形態の図１０及び図１１と同様に、説明を簡略化するため、１つのレベル（例えば“Ａ”レベル）について第１及び第２ベリファイを実行する場合を示している。また、図２７及び図２８の例は、第２乃至第４実施形態と同様に、レジューム直後の第１ベリファイのターゲットレベルを、通常状態の第１ベリファイのターゲットレベルと同じ電圧ＶＬ１とする場合について示している。なお、図２７及び図２８におけるステップＳ１０１〜１０８、Ｓ１１０〜Ｓ１１４は、第１実施形態の図１０及び図１１と同じである。このため、ステップＳ１０１〜１０８、Ｓ１１０〜Ｓ１１４の動作の詳細な記載は省略する。
【０２３３】
図２７に示すように、ステップＳ１０１からステップＳ１０８までのフローは第１実施形態の図１０と同じである。
【０２３４】
シーケンサ１０は、レジューム（ステップＳ１０８）後、あるいはサスペンドコマンドを受信していない場合（ステップＳ１０３＿Ｎｏ）において、第１ベリファイ（ステップＳ１１０）及び第２ベリファイ（ステップＳ１１１）を実行する。
【０２３５】
図２８に示すように、シーケンサ１０は、プログラム対象の全て（あるいは予め設定された規定数以上）のメモリセルトランジスタＭＴが第２ベリファイをパスしている場合（ステップ１１２＿Ｙｅｓ）、書き込み動作を終了させる。
【０２３６】
また、シーケンサ１０は、第２ベリファイをパスしていないメモリセルトランジスタＭＴがある（あるいは予め設定された規定数以上ある）場合（ステップＳ１１２＿Ｎｏ）、プログラムループが予め設定された規定回数に達したか確認する（ステップＳ１１３）。
【０２３７】
シーケンサ１０は、プログラムループが規定回数に達している場合（ステップＳ１１３＿Ｙｅｓ）、書き込み動作を終了させ、書き込み動作が正常に終了しなかった旨をコントローラ２００に報告する。
【０２３８】
プログラムループが規定回数に達していない場合（ステップＳ１１３＿Ｎｏ）、シーケンサ１０は、次のプログラムのプログラムパルスの設定電圧をステップアップさせる（ステップＳ１１４）。
【０２３９】
次のプログラムにおいて、センスアンプ１５は、以前に実行されたプログラムで第２プログラム条件を適用済み（ステップＳ１３０＿Ｙｅｓ）のメモリセルトランジスタＭＴに対応するビット線ＢＬ（“ＱＰＷ”）に電圧ＶＢＬを印加する（ステップＳ１３１）。また、センスアンプ１５は、以前に実行されたプログラムで第２プログラム条件を適用していない（ステップＳ１３０＿Ｎｏ）メモリセルトランジスタＭＴに対応するビット線ＢＬ（“ＱＰＷ”）に電圧ＶＱＰＷを印加する。また、センスアンプ１５は、ビット線ＢＬ（“０”）に電圧ＶＳＳを印加し、ビット線ＢＬ（“１”）に電圧ＶＢＬを印加する。そして、ステップＳ１０２に戻り、ロウデコーダ１４は、選択ワード線ＷＬに、ステップアップしたプログラムパルスを印加する。
【０２４０】
シーケンサ１０は、第２ベリファイをパスするか、プログラムループが規定回数に達するまで、プログラムループを繰り返す。
【０２４１】
５．３  本実施形態に係る効果について
例えば、サスペンド起因のデータリテンションにより、電圧ＶＨ以上にあったメモリセルトランジスタＭＴの閾値電圧が電圧ＶＨ未満に低下した場合、レジューム後のプログラムにおいて、第２プログラム条件によるプログラムが実行される。実際には書き込みが完了しているメモリセルトランジスタＭＴに第２プログラム条件によるプログラムが実行されるため、オーバープログラムとなり、誤書き込みとなる場合がある。
【０２４２】
これに対し、本実施形態に係る構成は、書き込み動作において、各メモリセルトランジスタＭＴに第２プログラム条件を１回適用できる。よって、第２プログラム条件によるプログラムにより、閾値電圧が電圧ＶＨ以上となった（第２ベリファイをパスした）メモリセルトランジスタＭＴに対しては、データリテンションにより閾値電圧が電圧ＶＨ未満に低下しても、追加で第２プログラム条件によるプログラムが実行されない。よって、オーバープログラムを抑制し、誤書き込みを低減できる。従って、半導体記憶装置及びメモリシステムの信頼性を向上できる。
【０２４３】
更に、本実施形態は、第１乃至第４実施形態に適用できる。これにより第１乃至第４実施形態と同様の効果が得られる。
【０２４４】
６．変形例等
上記実施形態に係る半導体記憶装置は、メモリセル(MT)と、メモリセルに接続されたビット線(BL)と、ビット線に接続されたセンスアンプ(15)とを含む。書き込み動作は、プログラムと第１及び第２ベリファイとを含むプログラムループを繰り返す。プログラムは、第１ベリファイをフェイルした場合にビット線(BL(“0”))に第１電圧(VSS)を印加する第１プログラムと、第１ベリファイをパスし第２ベリファイをフェイルした場合にビット線(BL(“QPW”))に第２電圧(VQPW)を印加する第２プログラムとを含む。第２ベリファイは、第１条件(VH)に基づいて実行される。書き込み動作を中断していない場合、第１ベリファイは第１条件と異なる第２条件(VL1)に基づいて実行され、書き込み動作を中断した場合、書き込み動作を再開した後の最初の第１ベリファイは前記第１及び第２条件と異なる第３条件(VL2)に基づいて実行される。
【０２４５】
上記実施形態を適用することにより、信頼性を向上できる半導体記憶装置を提供できる。
【０２４６】
なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。
【０２４７】
６．１  第１変形例
例えば、第１実施形態において、第１及び第２センス期間の長さを同じにし、選択ワード線に印加する電圧ＶＣＧＲＶを、ベリファイのターゲットレベルに応じて変えても良い。一例を、図２９を用いて説明する。以下、第１実施形態の図１３と異なる点についてのみ説明する。
【０２４８】
図２９に示すように、第１センス期間（時刻ｔ５〜ｔ６間）と第２センス期間（時刻ｔ１０〜ｔ１１）の長さを同じにする。通常状態の場合、第１ベリファイに対応して、時刻ｔ１〜ｔ８の期間、選択ワード線ＷＬに電圧ＶＣＧＲＶ１を印加する。他方で、レジューム直後の場合、第１ベリファイに対応して、時刻ｔ１〜ｔ８の期間、選択ワード線ＷＬに電圧ＶＣＧＲＶ２を印加する。また、第２ベリファイに対応して、時刻ｔ８〜ｔ１３の期間、選択ワード線ＷＬに電圧ＶＣＧＲＶ３を印加する。このとき、電圧ＶＣＧＲＶ１、ＶＣＧＲＶ２、及びＶＣＧＲＶ３は、それぞれターゲットレベルである電圧ＶＬ１、ＶＬ２、及びＶＨに応じて設定され、ＶＣＧＲＶ２＜ＶＣＧＲＶ１＜ＶＣＧＲＶ３の関係にある。
【０２４９】
このような構成においても、第１実施形態と同様の効果が得られる。
【０２５０】
６．２  その他変形例
例えば、上記実施形態は可能な限り組み合わせることができる。例えば、第１実施形態に、第４及び第５実施形態を適用しても良い。
【０２５１】
更に、上記実施形態は三次元積層型ＮＡＮＤ型フラッシュメモリに限定されず、半導体基板上にメモリセルが配置された平面型ＮＡＮＤ型フラッシュメモリにも適用できる。更には、ＮＡＮＤ型フラッシュメモリに限定されず、プログラムとベリファイとを含む書き込み動作中にサスペンドとレジュームを実行可能な、他のメモリを用いた半導体記憶装置にも適用できる。
【０２５２】
更に、上記実施形態における「接続」とは、間に例えばトランジスタあるいは抵抗等、他の何かを介在させて間接的に接続されている状態も含む。  
更に、上記実施形態において、同じ電圧とした場合、電圧の値は、厳密に一致していなくても良く、数値的な違いは、上記実施形態の効果が得られる範囲であれば、誤差として許容される。
【０２５３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０２５４】
なお、本発明に関する各実施形態において、以下の通りであっても良い。例えばメモリセルトランジスタＭＴが２ビット（４値）のデータを保持可能であり、４値のいずれかを保持している際の閾値レベルを低い方からＥｒレベル（消去レベル）、Ａレベル、Ｂレベル、及びＣレベルとしたとき、
（１）読み出し動作では、
Ａレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V、0.21V〜0.31V、0.31V〜0.4V、0.4V〜0.5V、及び0.5V〜0.55Vのいずれかの間にしても良い。
【０２５５】
Ｂレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V、1.8V〜1.95V、1.95V〜2.1V、及び2.1V〜2.3Vのいずれかの間にしても良い。
【０２５６】
Ｃレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V、3.2V〜3.4V、3.4V〜3.5V、3.5V〜3.6V、及び3.6V〜4.0Vのいずれかの間にしても良い。
【０２５７】
読み出し動作の時間（tR）としては、例えば25μs〜38μs、38μs〜70μs、または70μs〜80μsの間にしても良い。
【０２５８】
（２）書き込み動作は、上述した通りプログラム動作とベリファイ動作を含む。書き込み動作では、
プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V及び14.0V〜14.6Vのいずれかの間としても良い。
【０２５９】
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧を変えても良い。
【０２６０】
プログラム動作をISPP方式(Incremental Step Pulse Program)としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。
【０２６１】
非選択のワード線に印加される電圧としては、例えば6.0V〜7.3Vの間としてもよい。この場合に限定されることなく、例えば7.3V〜8.4Vの間としてもよく、6.0V以下としても良い。
【０２６２】
非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えても良い。
【０２６３】
書き込み動作の時間（tProg）としては、例えば1700μs〜1800μs、1800μs〜1900μs、または1900μs〜2000μsの間にしても良い。
【０２６４】
（３）消去動作では、
半導体基板上部に形成され、且つ、上記メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.6Vの間である。この場合に限定されることなく、例えば13.6V〜14.8V、14.8V〜19.0V、19.0〜19.8V、または19.8V〜21Vの間であっても良い。
【０２６５】
消去動作の時間（tErase）としては、例えば3000μs〜4000μs、4000μs〜5000μs、または4000μs〜9000μsの間にしても良い。
【０２６６】
（４）メモリセルの構造は、
半導体基板（シリコン基板）上に膜厚が4〜10nmのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が2〜3nmのＳｉＮ、またはＳｉＯＮなどの絶縁膜と膜厚が3〜8nmのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはＲｕなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が3〜10nmの下層Ｈｉｇｈ−ｋ膜と膜厚が3〜10nmの上層Ｈｉｇｈ−ｋ膜に挟まれた膜厚が4〜10nmのシリコン酸化膜を有している。Ｈｉｇｈ−ｋ膜はＨｆＯなどが挙げられる。また、シリコン酸化膜の膜厚はＨｉｇｈ−ｋ膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が3〜10nmの仕事関数調整用の材料を介して膜厚が30nm〜70nmの制御電極が形成されている。ここで仕事関数調整用の材料はＴａＯなどの金属酸化膜、ＴａＮなどの金属窒化膜である。制御電極にはＷなどを用いることができる。
【０２６７】
また、メモリセル間にはエアギャップを形成することができる。
【符号の説明】
【０２６８】
１…メモリシステム、２…ホスト機器、１０…シーケンサ、１１…電圧発生回路、１２…レジスタ、１３…メモリセルアレイ、１４…ロウデコーダ、１５…センスアンプ、１６…ＮＡＮＤストリング、２０…半導体基板、２１…ｎ型ウェル、２２…ｐ型ウェル、２３…ｎ＋型拡散層、２４…配線層、２５…半導体層、２６、２８…絶縁膜、２７…電荷蓄積層、３０…プリチャージ回路、３１、３３、４０〜５１、６０〜６７、７０〜７７、８０〜８７、９０〜９７…トランジスタ、３２…バススイッチ、５２…容量素子、１００…ＮＡＮＤ型フラッシュメモリ、２００…コントローラ、２１０…ホストインターフェイス回路、２２０…内蔵メモリ、２３０…プロセッサ、２４０…バッファメモリ、２５０…ＮＡＮＤインターフェイス回路、２６０…ＥＣＣ回路
【図１】
2018142388.tif 000003
【図２】
2018142388.tif 000004
【図３】
2018142388.tif 000005
【図４】
2018142388.tif 000006
【図５】
2018142388.tif 000007
【図６】
2018142388.tif 000008
【図７】
2018142388.tif 000009
【図８】
2018142388.tif 000010
【図９】
2018142388.tif 000011
【図１０】
2018142388.tif 000012
【図１１】
2018142388.tif 000013
【図１２】
2018142388.tif 000014
【図１３】
2018142388.tif 000015
【図１４】
2018142388.tif 000016
【図１５】
2018142388.tif 000017
【図１６】
2018142388.tif 000018
【図１７】
2018142388.tif 000019
【図１８】
2018142388.tif 000020
【図１９】
2018142388.tif 000021
【図２０】
2018142388.tif 000022
【図２１】
2018142388.tif 000023
【図２２】
2018142388.tif 000024
【図２３】
2018142388.tif 000025
【図２４】
2018142388.tif 000026
【図２５】
2018142388.tif 000027
【図２６】
2018142388.tif 000028
【図２７】
2018142388.tif 000029
【図２８】
2018142388.tif 000030
【図２９】
2018142388.tif 000031