(57)【要約】【課題】処理能力を向上する。【解決手段】実施形態に係る半導体記憶装置は、複数の第１メモリセルＭＴ、ワード線ＷＬ、制御回路１７を含む。制御回路１７は、第１モードの第１プログラムループにおいて、ワード線に第１電圧ＶＳＶを印加して第１プログラムを実行した後、第１メモリセルのオフセル数が閾値以下になるまで、ワード線ＷＬに印加される第２電圧ＶＣＧ＿ＳＶをステップアップさせながら第１ベリファイを繰り返し、第１電圧ＶＳＶと第１ベリファイを繰り返した回数とに基づいて第３電圧ＶＰＧＭ＿ＳＶを決定し、第２モードの１回目の第２プログラムループにおいて、ワード線ＷＬに第３電圧ＶＰＧＭ＿ＳＶを印加して第２プログラムを実行する。【選択図】      図７
2018147535.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１メモリセルを含む第１メモリセルグループと、
前記複数の第１メモリセルに共通に接続されたワード線と、
第１プログラム及び第１ベリファイを含む第１プログラムループを繰り返す第１モードと、第２プログラム及び第２ベリファイを含む第２プログラムループを繰り返す第２モードとを備える書き込み動作を制御する制御回路と
を備え、前記制御回路は、前記第１及び第２モードを順に実行する場合、前記第１プログラムループにおいて、前記ワード線に第１電圧を印加して前記第１プログラムを実行した後、前記第１メモリセルのオフセル数が閾値以下になるまで、前記ワード線に印加される第２電圧をステップアップさせながら前記第１ベリファイを繰り返し、前記第１電圧と前記第１ベリファイを繰り返した回数とに基づいて前記第１電圧より低い第３電圧を決定し、１回目の前記第２プログラムループにおいて、前記ワード線に前記第３電圧を印加して前記第２プログラムを実行した後、前記ワード線に前記第２電圧より低い第４電圧を印加して前記第２ベリファイを実行する半導体記憶装置。
【請求項２】
前記制御回路は、１回目の前記第１プログラムループにおいて、前記ワード線に前記第２電圧を印加した前記第１ベリファイで、前記オフセル数が前記閾値以下である場合、前記オフセル数が前記閾値よりも多くなるまで前記第１電圧をステップアップさせながら前記第１プログラムループを繰り返す請求項１記載の半導体記憶装置。
【請求項３】
前記制御回路は、前記第１プログラムループにおいて、前記第１ベリファイを繰り返す場合、前記第２電圧を第１電圧幅ずつステップアップさせる請求項１又は２記載の半導体記憶装置。
【請求項４】
複数の第２メモリセルを含む第２メモリセルグループを更に含み、
前記制御回路は、前記第２メモリセルグループへの前記書き込み動作に前記第３電圧を用いる場合、前記１モードを実行せずに前記第２モードを実行する請求項１乃至３のいずれか一項記載の半導体記憶装置。
【請求項５】
前記制御回路は、前記第１電圧、前記第１電圧の印加期間、前記閾値を調整可能である請求項１記載の半導体記憶装置。
【請求項６】
請求項１乃至５のいずれか一項記載の半導体記憶装置と、
前記半導体記憶装置に、前記第１モードの実行を指示する第１コマンドを送信するコントローラとを備えるメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置及びメモリシステムに関する。
【背景技術】
【０００２】
半導体記憶装置として、ＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第９，２５７，１８８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
処理能力が向上できる半導体記憶装置及びメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態に係る半導体記憶装置は、複数の第１メモリセルを含む第１メモリセルグループと、複数の第１メモリセルに共通に接続されたワード線と、第１プログラム及び第１ベリファイを含む第１プログラムループを繰り返す第１モードと、第２プログラム及び第２ベリファイを含む第２プログラムループを繰り返す第２モードとを備える書き込み動作を制御する制御回路とを含む。制御回路は、第１及び第２モードを順に実行する場合、第１プログラムループにおいて、ワード線に第１電圧を印加して第１プログラムを実行した後、第１メモリセルのオフセル数が閾値以下になるまで、ワード線に印加される第２電圧をステップアップさせながら第１ベリファイを繰り返し、第１電圧と第１ベリファイを繰り返した回数とに基づいて第１電圧より低い第３電圧を決定し、１回目の第２プログラムループにおいて、ワード線に第３電圧を印加して第２プログラムを実行した後、ワード線に第２電圧より低い第４電圧を印加して第２ベリファイを実行する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るメモリシステムのブロック図である。
【図２】図２は、第１実施形態に係る半導体記憶装置のブロック図である。
【図３】図３は、第１実施形態に係る半導体記憶装置の備えるメモリセルアレイの回路図である。
【図４】図４は、第１実施形態に係る半導体記憶装置の備えるメモリセルアレイの断面図である。
【図５】図５は、第１実施形態に係る半導体記憶装置の備えるセンスアンプモジュールのブロック図である。
【図６】図６は、第１実施形態に係る半導体記憶装置の備えるメモリセルトランジスタの閾値分布図である。
【図７】図７は、第１実施形態に係る半導体記憶装置におけるサンプリングモードの説明図である。
【図８】図８は、第１実施形態に係る半導体記憶装置の備えるオフセットテーブルである。
【図９】図９は、第１実施形態に係る半導体記憶装置における書き込み動作を示すフローチャートである。
【図１０】図１０は、第１実施形態に係る半導体記憶装置における書き込み動作を示すフローチャートである。
【図１１】図１１は、第１実施形態に係る半導体記憶装置における書き込み動作時の選択ワード線の電圧を示すタイミングチャートである。
【図１２】図１２は、第１実施形態に係る半導体記憶装置における書き込み動作時の選択ワード線の電圧を示すタイミングチャートである。
【図１３】図１３は、第２実施形態の第１例に係る半導体記憶装置における書き込みを示すフローチャートである。
【図１４】図１４は、第２実施形態の第２例に係る半導体記憶装置における書き込みを示すフローチャートである。
【図１５】図１５は、第２実施形態の第３例に係る半導体記憶装置における書き込みを示すフローチャートである。
【図１６】図１６は、第２実施形態の第４例に係る半導体記憶装置におけるゾーンを示すＮＡＮＤストリングの断面図である。
【図１７】図１７は、第２実施形態の第４例に係る半導体記憶装置における書き込みを示すフローチャートである。
【図１８】図１８は、第３実施形態に係るメモリシステムにおける書き込み動作を示すフローチャートである。
【図１９】図１９は、第３実施形態に係るメモリシステムの備えるコントローラがレジスタを指定しない場合のコマンドシーケンスを示すタイミングチャートである。
【図２０】図２０は、第３実施形態に係るメモリシステムの備えるコントローラがレジスタを指定する場合のコマンドシーケンスを示すタイミングチャートである。
【図２１】図２１は、第４実施形態に係るメモリシステムにおける書き込み動作を示すフローチャートである。
【図２２】図２２は、第１変形例に係る半導体記憶装置におけるサンプリングモードの説明図である。
【発明を実施するための形態】
【０００７】
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００８】
１．第１実施形態
第１実施形態に係る半導体記憶装置及びメモリシステムについて説明する。以下では半導体記憶装置として、メモリセルトランジスタが半導体基板上方に三次元に積層された三次元積層型ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【０００９】
１．１  構成について
１．１．１  メモリシステムの全体構成について  
まず、本実施形態に係るメモリシステムの全体構成について、図１を用いて説明する。
【００１０】
図１に示すように、メモリシステム１は、ＮＡＮＤ型フラッシュメモリ１００及びコントローラ２００を備えている。コントローラ２００とＮＡＮＤ型フラッシュメモリ１００は、例えばそれらの組み合わせにより一つの半導体記憶装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００１１】
ＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルトランジスタを備え、データを不揮発に記憶する。ＮＡＮＤ型フラッシュメモリ１００は、ＮＡＮＤバスによってコントローラ２００と接続され、コントローラ２００からの命令に基づいて動作する。より具体的には、ＮＡＮＤ型フラッシュメモリ１００は、データ線ＤＱ０〜ＤＱ７を介してコントローラ２００と、例えば８ビットの入出力信号Ｉ／Ｏの送受信を行う。入出力信号Ｉ／Ｏは、例えばデータ、アドレス、及びコマンドである。また、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から、例えばチップイネーブル信号ＣＥｎ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号ＷＥｎ、及びリードイネーブル信号ＲＥｎを受信する。そして、ＮＡＮＤ型フラッシュメモリ１００はコントローラ２００に、レディ／ビジー信号Ｒ／Ｂｎを送信する。
【００１２】
チップイネーブル信号ＣＥｎは、ＮＡＮＤ型フラッシュメモリ１００をイネーブルにするための信号であり、例えばＬｏｗ（“Ｌ”）レベルでアサートされる。コマンドラッチイネーブル信号ＣＬＥは、入出力信号Ｉ／Ｏがコマンドであることを示す信号であり、例えばＨｉｇｈ（“Ｈ”）レベルでアサートされる。アドレスラッチイネーブル信号ＡＬＥは、入出力信号Ｉ／Ｏがアドレスであることを示す信号であり、例えば“Ｈ”レベルでアサートされる。ライトイネーブル信号ＷＥｎは、受信した信号をＮＡＮＤ型フラッシュメモリ１００内へ取り込むための信号であり、コントローラ２００よりコマンド、アドレス、及びデータ等を受信する度に、例えば“Ｌ”レベルでアサートされる。よって、ＷＥｎがトグルされる度に、入出力信号Ｉ／ＯがＮＡＮＤ型フラッシュメモリ１００に取り込まれる。リードイネーブル信号ＲＥｎは、コントローラ２００が、ＮＡＮＤ型フラッシュメモリ１００からデータを読み出すための信号である。リードイネーブル信号ＲＥｎは、例えば“Ｌ”レベルでアサートされる。レディ／ビジー信号Ｒ／Ｂｎは、ＮＡＮＤ型フラッシュメモリ１００がビジー状態であるか否か（コントローラ２００からコマンドを受信不可能な状態か可能な状態か）を示す信号であり、例えばＮＡＮＤ型フラッシュメモリ１００がビジー状態の際に“Ｌ”レベルとされる。
【００１３】
コントローラ２００は、ホスト機器２からの命令に応答して、ＮＡＮＤ型フラッシュメモリ１００に対してデータの読み出し、書き込み、消去等を命令する。また、コントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００のメモリ空間を管理する。
【００１４】
コントローラ２００は、ホストインターフェイス回路２１０、内蔵メモリ（ＲＡＭ）２２０、プロセッサ（ＣＰＵ）２３０、バッファメモリ２４０、ＮＡＮＤインターフェイス回路２５０、及びＥＣＣ回路２６０を含む。
【００１５】
ホストインターフェイス回路２１０は、コントローラバスを介してホスト機器２と接続され、ホスト機器２との通信を司る。ホストインターフェイス回路２１０は、プロセッサ２３０及びバッファメモリ２４０に、ホスト機器２から受信した命令及びデータを転送する。また、ホストインターフェイス回路２１０は、プロセッサ２３０の命令に応答して、バッファメモリ２４０内のデータをホスト機器２へ転送する。
【００１６】
ＮＡＮＤインターフェイス回路２５０は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続され、ＮＡＮＤ型フラッシュメモリ１００との通信を司る。ＮＡＮＤインターフェイス回路２５０は、ＮＡＮＤ型フラッシュメモリ１００にプロセッサ２３０から受信した命令を転送する。また、ＮＡＮＤインターフェイス回路２５０は、書き込み時には、ＮＡＮＤ型フラッシュメモリ１００に、バッファメモリ２４０内の書き込みデータを転送する。更に、ＮＡＮＤインターフェイス回路２５０は、読み出し時には、バッファメモリ２４０に、ＮＡＮＤ型フラッシュメモリ１００から読み出されたデータを転送する。
【００１７】
プロセッサ２３０は、コントローラ２００全体の動作を制御する。例えば、プロセッサ２３０は、ホスト機器２から書き込み命令を受信した際には、それに応答して、ＮＡＮＤ型フラッシュメモリ１００に書き込み命令を出力する。読み出し及び消去の際も同様である。また、プロセッサ２３０は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。更に、プロセッサ２３０は、各種の演算を実行する。例えば、プロセッサ２３０は、データの暗号化処理やランダマイズ処理等を実行する。
【００１８】
ＥＣＣ回路２６０は、データの誤り訂正（ＥＣＣ：Error Checking and Correcting）処理を実行する。
【００１９】
内蔵メモリ２２０は、例えばＤＲＡＭ等の半導体メモリであり、プロセッサ２３０の作業領域として使用される。そして内蔵メモリ２２０は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、各種の管理テーブル等を保持する。
【００２０】
１．１．２  半導体記憶装置の構成について
次に、ＮＡＮＤ型フラッシュメモリ１００の構成について、図２を用いて説明する。
【００２１】
図２に示すようにＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１、センスアンプモジュール１２、ロウデコーダ１３、入出力回路１４、レジスタ１５、ロジック制御回路１６、シーケンサ１７、レディ／ビジー制御回路１８、及び電圧生成回路１９を含む。なお、図２の例では、説明を簡略化するために、各ブロック間の接続の一部が示されている。
【００２２】
メモリセルアレイ１１は、ブロックＢＬＫ０〜ＢＬＫｎ（ｎは１以上の自然数）を含む。ブロックＢＬＫは、ビット線及びワード線に関連付けられた複数の不揮発性メモリセルトランジスタの集合である。各メモリセルトランジスタは、ＭＬＣ（Multi-Level Cell）方式を適用することにより、複数ビットのデータを記憶することができる。
【００２３】
センスアンプモジュール１２は、メモリセルアレイ１１から読み出したデータＤＡＴを、入出力回路１４を介してコントローラ２００に出力する。また、センスアンプモジュール１２は、コントローラ２００から入出力回路１４を介して受け取った書き込みデータＤＡＴを、メモリセルアレイ１１に転送する。
【００２４】
また、センスアンプモジュール１２は、カウンタＣＴ、及びビット線毎に設けられた複数のセンスアンプユニット（図示せず）を含む。カウンタＣＴは、読み出したデータのオフセル数、すなわちオフ状態にあるメモリセルトランジスタの個数をカウントし、このカウント結果をシーケンサ１７に転送する。センスアンプモジュール１２についての詳細は後述する。
【００２５】
ロウデコーダ１３は、読み出し動作及び書き込み動作を行うメモリセルトランジスタに対応するワード線を選択する。そしてロウデコーダ１３は、選択ワード線及び非選択ワード線にそれぞれ必要な電圧を印加する。
【００２６】
入出力回路１４は、データ線ＤＱ０〜ＤＱ７を介してコントローラ２００と、例えば８ビットの入出力信号Ｉ／Ｏ（Ｉ／Ｏ０〜Ｉ／Ｏ７）を送受信する。例えば入出力回路１４は、コントローラ２００から受信した入出力信号Ｉ／Ｏに含まれた書き込みデータＤＡＴを、センスアンプモジュール１２に転送する。また入出力回路１４は、センスアンプモジュール１２から転送された読み出しデータＤＡＴを入出力信号Ｉ／Ｏとしてコントローラ２００に送信する。
【００２７】
レジスタ１５は、ステータスレジスタ１５Ａ、アドレスレジスタ１５Ｂ、コマンドレジスタ１５Ｃを含む。ステータスレジスタ１５Ａは、ステータス情報ＳＴＳを保持する。またステータスレジスタ１５Ａは、シーケンサ１７の指示に応じてこのステータス情報ＳＴＳを入出力回路１４に転送する。アドレスレジスタ１５Ｂは、入出力回路１４からアドレスＡＤＤを受け取り、このアドレスＡＤＤを保持する。そしてアドレスレジスタ１５Ｂは、アドレスＡＤＤに含まれたカラムアドレスＣＡ及びロウアドレスＲＡをそれぞれ、センスアンプモジュール１２及びロウデコーダ１３に転送する。コマンドレジスタ１５Ｃは、入出力回路１４からコマンドＣＭＤを受け取り、このコマンドＣＭＤを保持する。そしてコマンドレジスタ１５Ｃは、コマンドＣＭＤをシーケンサ１７に転送する。
【００２８】
ロジック制御回路１６は、コントローラ２００からチップイネーブル信号ＣＥｎ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号ＷＥｎ、リードイネーブル信号ＲＥｎを受信し、これらの制御信号に応じて入出力回路１４及びシーケンサ１７を制御する。
【００２９】
シーケンサ１７は、ＮＡＮＤ型フラッシュメモリ１００全体の動作を制御する。具体的には、シーケンサ１７は、コマンドレジスタ１５Ｃから転送されたコマンドＣＭＤに基づいてセンスアンプモジュール１２、ロウデコーダ１３、及び電圧生成回路１９等を制御し、データの書き込み動作及び読み出し動作等を実行する。シーケンサ１７は、書き込み動作時に、プログラム電圧をサンプリングし、その結果に基づいて、プログラム電圧のオフセット値を算出することができる。プログラム電圧とはデータの書き込み時に選択ワード線に印加される電圧である。オフセット値を算出する動作については後述する。
【００３０】
また、シーケンサ１７は、レジスタＲＥＧを含む。レジスタＲＥＧは、例えばプログラム電圧のオフセット値に関連するテーブル（以下、「オフセットテーブル」と呼ぶ）を有している。シーケンサ１７は、オフセットテーブルを参照して最適なプログラム電圧を設定する。なお、オフセットテーブルは、例えばセットフィーチャー（set feature）と呼ばれるパラメータ書き込み動作により書き換えることが可能である。
【００３１】
レディ／ビジー制御回路１８は、シーケンサ１７の動作状態に基づいてレディ／ビジー信号Ｒ／Ｂｎを生成し、この信号をコントローラ２００に送信する。レディ／ビジー信号Ｒ／Ｂｎは、レディ／ビジー制御回路１８が、その出力に接続されたトランジスタＴｒのオン／オフを制御することによって生成される。
【００３２】
電圧生成回路１９は、シーケンサ１７の指示に基づいて各種電圧を生成する。そして電圧生成回路１９は、生成した電圧をメモリセルアレイ１１、センスアンプモジュール１２、及びロウデコーダ１３等に供給する。
【００３３】
１．１．３  メモリセルアレイの構成について  
次に、メモリセルアレイ１１の構成について、図３を用いて説明する。図３の例は、ブロックＢＬＫ０を示しているが、他のブロックＢＬＫの構成も同じである。
【００３４】
図３に示すように、ブロックＢＬＫ０は、例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。なお、１つのブロックＢＬＫに含まれるストリングユニットＳＵ数は任意である。そして、各々のストリングユニットＳＵは、複数のＮＡＮＤストリング２０を含む。ＮＡＮＤストリング２０の各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）、並びに選択トランジスタＳＴ１及びＳＴ２を含んでいる。以下、メモリセルトランジスタＭＴ０〜ＭＴ７を限定しない場合は、メモリセルトランジスタＭＴと表記する。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。
【００３５】
なお、メモリセルトランジスタＭＴは、電荷蓄積層に絶縁膜を用いたＭＯＮＯＳ型であっても良いし、電荷蓄積層に導電層を用いたＦＧ型であっても良い。以下、本実施形態では、ＭＯＮＯＳ型を例として説明する。また、メモリセルトランジスタＭＴの個数は８個に限られず、１６個や３２個、６４個、１２８個等であってもよく、その数は限定されるものではない。更に、選択トランジスタＳＴ１及びＳＴ２の個数は、任意であり、それぞれ１個以上あれば良い。
【００３６】
メモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。より具体的には、メモリセルトランジスタＭＴ０〜ＭＴ７は、その電流経路が直列に接続される。そしてメモリセルトランジスタＭＴ７のドレインは、選択トランジスタＳＴ１のソースに接続され、メモリセルトランジスタＭＴ０のソースは、選択トランジスタＳＴ２のドレインに接続されている。
【００３７】
ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ１のゲートは、それぞれ選択ゲート線ＳＧＤ０〜ＳＧＤ３に接続される。同様に、ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ２のゲートは、それぞれ選択ゲート線ＳＧＳ０〜ＳＧＳ３に接続される。以下、選択ゲート線ＳＧＤ０〜ＳＧＤ３を限定しない場合は、選択ゲート線ＳＧＤと表記する。選択ゲート線ＳＧＳ０〜ＳＧＳ３を限定しない場合は、選択ゲート線ＳＧＳと表記する。なお、各ストリングユニットＳＵの選択ゲート線ＳＧＳ０〜ＳＧＳ３は共通に接続されても良い。
【００３８】
ブロックＢＬＫ内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続される。以下、ワード線ＷＬ０〜ＷＬ７を限定しない場合は、ワード線ＷＬと表記する。
【００３９】
ストリングユニットＳＵ内にある各ＮＡＮＤストリング２０の選択トランジスタＳＴ１のドレインは、それぞれ異なるビット線ＢＬ０〜ＢＬ（Ｌ−１）（Ｌは２以上の整数）に接続される。以下、ビット線ＢＬ０〜ＢＬ（Ｌ−１）を限定しない場合は、ビット線ＢＬと表記する。各ビット線ＢＬは、複数のブロックＢＬＫ間で各ストリングユニットＳＵ内にある１つのＮＡＮＤストリング２０を共通に接続する。更に、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通に接続されている。つまり、ストリングユニットＳＵは、異なるビット線ＢＬに接続され、且つ同一の選択ゲート線ＳＧＤ及びＳＧＳに接続されたＮＡＮＤストリング２０の集合体である。またブロックＢＬＫは、ワード線ＷＬを共通にする複数のストリングユニットＳＵの集合体である。そしてメモリセルアレイ１１は、ビット線ＢＬを共通にする複数のブロックＢＬＫの集合体である。
【００４０】
データの書き込み動作及び読み出し動作は、いずれかのストリングユニットＳＵにおけるいずれかのワード線ＷＬに接続されたメモリセルトランジスタＭＴに対して、一括して行われる。以下、データの書き込み動作及び読み出し動作の際、一括して選択されるメモリセルトランジスタＭＴの群を「メモリセルグループＭＣＧ」と呼ぶ。そして、１つのメモリセルグループＭＣＧに書き込まれる、あるいは読み出される１ビットのデータの集まりを「ページ」と呼ぶ。
【００４１】
データの消去は、ブロックＢＬＫ単位、またはブロックＢＬＫよりも小さい単位で行うことができる。消去方法に関しては、例えば“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）と呼ぶ。
【００６２】
なお、図６では４個のレベルが離散的に分布する場合を例に説明したが、これは例えばデータの書き込み直後の理想的な状態である。従って、現実的には隣接するレベルが重なることが起こり得る。例えばデータの書き込み後、ディスターブ等により“Ｅｒ”レベルの上端と“Ａ”レベルの下端とが重なる場合がある。このような場合には、例えばＥＣＣ技術等を用いてデータが訂正される。
【００６３】
１．３  書き込み動作
次に、書き込み動作について説明する。書き込み動作は、大まかにはプログラムとプログラムベリファイとを含む。そして、プログラムとプログラムベリファイとの組み合わせ（以下、「プログラムループ」と呼ぶ）を繰り返すことで、メモリセルトランジスタＭＴの閾値電圧がターゲットレベルまで上昇される。
【００６４】
プログラムは、電子を電荷蓄積層に注入することにより閾値電圧を上昇させる（または注入を禁止することで閾値電圧を維持させる）動作のことである。以下では、閾値電圧を上昇させる動作を「“０”書き込み」と呼ぶ。他方で、閾値電圧を維持させる動作を「“１”書き込み」または「書き込み禁止」と呼ぶ。
【００６５】
プログラムベリファイは、プログラムの後、データを読み出し、メモリセルトランジスタＭＴの閾値電圧が目標とするターゲットレベルに達したか否かを判定する動作である。以下、メモリセルトランジスタＭＴの閾値電圧がターゲットレベルに達している場合を、「ベリファイをパスした」と呼び、ターゲットレベルまで達していない場合を、「ベリファイをフェイルした」と呼ぶ。
【００６６】
本実施形態における書き込み動作には、「ノーマルモード」と「サンプリングモード」と呼ばれる２つのモードがある。シーケンサ１７は、ワード線ＷＬに印加されるプログラム電圧の最適化をおこなう場合にサンプリングモードを選択する。以下、プログラム電圧の初期値をＶＰＧＭと表記し、最適化されたプログラム電圧をＶＰＧＭ＿ＳＶと表記する。
【００６７】
ノーマルモードは通常の書き込みシーケンスであり、プログラムループを繰り返し、データを書き込む。ノーマルモードの１回目のプログラムでは、サンプリングモードで最適化されたプログラム電圧として電圧ＶＰＧＭ＿ＳＶが用いられ、プログラムループを繰り返す毎に、プログラム電圧はステップアップされる。以下、ノーマルモードにおけるステップアップ電圧をＤＶＰと表記する。
【００６８】
サンプリングモードは、最適なプログラム電圧を求めるための書き込みシーケンスである。以下、サンプリングモード時の書き込み動作を、単に「サンプリング」とも呼ぶ。サンプリングモードでは、ノーマルモードの１回目に印加されるプログラム電圧よりも高い電圧を用いてプログラムが実行される。以下、サンプリングモード時の１回目のプログラムループで選択ワード線ＷＬに印加されるプログラム電圧をＶＳＶと表記する。電圧ＶＳＶ、ＶＰＧＭ、及びＶＰＧＭ＿ＳＶとは、ＶＳＶ＞ＶＰＧＭ＿ＳＶ＞ＶＰＧＭの関係にある。例えば、電圧ＶＳＶは、１回のプログラムでメモリセルトランジスタＭＴの閾値電圧のシフト量が、“Ｅｒ”レベルから“Ｂ”レベルに達するような高い電圧である。そして、このときのメモリセルトランジスタＭＴの閾値電圧のシフト量に基づいて、プログラム電圧の最適化、すなわちオフセット電圧ＶＯＳを決定する。電圧ＶＰＧＭ、ＶＰＧＭ＿ＳＶ、及びＶＯＳは、ＶＰＧＭ＿ＳＶ＝ＶＰＧＭ＋ＶＯＳの関係にある。
【００６９】
１．３．１  サンプリングモードについて
次に、サンプリングモードについて、図７を用いて詳細に説明する。
【００７０】
図７に示すように、シーケンサ１７は、プログラム時に、例えば“Ｃ”レベルのデータを書き込む（以下、単に「“Ｃ”書き込み」と呼ぶ）メモリセルトランジスタＭＴを対象にして、電圧ＶＳＶを用いた“０”書き込みを実行する。例えば、“Ｃ”書き込みのメモリセルトランジスタＭＴ数は、ランダマイズ処理により、データ長の１／４程度になる。このとき、“Ｅｒ”レベル、“Ａ”レベル、及び“Ｂ”レベルのデータを書き込む（以下、それぞれ「“Ｅｒ”書き込み」、「“Ａ”書き込み」、及び「“Ｂ”書き込み」と呼ぶ）メモリセルトランジスタＭＴは、書き込み禁止とされる。この結果、例えば、多数の“Ｃ”書き込みのメモリセルトランジスタＭＴの閾値電圧は、“Ｅｒ”レベルから“Ｂ”レベルに達する。なお、“０”書き込みの対象とされるメモリセルトランジスタＭＴは、電圧ＶＳＶを用いた“０”書き込みにより閾値電圧が達するレベル（例えば“Ｂ”レベル）よりも高いレベル（例えば“Ｃ”レベル）のデータを書き込むメモリセルトランジスタＭＴであれば良い。
【００７１】
サンプリングモードとノーマルモードとでは、プログラムベリファイの動作が異なる。より具体的には、サンプリングモードの場合、シーケンサ１７は、プログラムベリファイ時に、オフセル数をカウントし、オフセル数が予め設定された規定数以下になるまで、読み出し電圧を等間隔でステップアップさせながらプログラムベリファイを繰り返す。
【００７２】
以下、プログラムループ内におけるプログラムベリファイの繰り返しを「ベリファイループ」と呼ぶ。そして、各ベリファイループにおけるプログラムベリファイを、ベリファイループの回数に応じて、第１〜第Ｍベリファイ（Ｍは、１以上の整数）と呼ぶ。更に、サンプリングモードでの第１ベリファイ時に選択ワード線ＷＬに印加される読み出し電圧をＶＣＧ＿ＳＶと表記し、電圧ＶＣＧ＿ＳＶのステップアップ電圧をＤＶＣＧと表記する。より具体的には、例えば、ロウデコーダ１３は、第２ベリファイ時、選択ワード線ＷＬに電圧（ＶＣＧ＿ＳＶ＋ＤＶＣＧ）を印加し、第３ベリファイ時、選択ワード線ＷＬに電圧（ＶＣＧ＿ＳＶ＋２・ＤＶＣＧ）を印加する。同様に、ロウデコーダ１３は、第Ｍベリファイ時、選択ワード線ＷＬに電圧（ＶＣＧ＿ＳＶ＋（Ｍ−１）・ＤＶＣＧ）を印加する。
【００７３】
また、サンプリングモードの場合、シーケンサ１７は、第１ベリファイにおいて、オフセル数が規定数以下の場合、すなわち、書き込み不足の場合、一旦オフセル数が規定数より多くなるまで、プログラム電圧をステップアップさせながらプログラムループを繰り返す。以下、サンプリングモードにおける電圧ＶＳＶのステップアップ電圧をＤＳＶと表記する。そして、シーケンサ１７は、第１ベリファイにおいてオフセル数が規定数より多くなった場合に、オフセル数が規定数以下になるまでベリファイループを繰り返す。この場合、ベリファイループは少なくとも２回以上繰り返される。
【００７４】
シーケンサ１７は、オフセル数が規定数以下になったときの読み出し電圧、すなわちベリファイループの回数に基づいて、オフセット電圧ＶＯＳを決定する。そして、シーケンサ１７は、オフセット電圧ＶＯＳに基づいて最適なプログラム電圧ＶＰＧＭ＿ＳＶを設定する。電圧ＶＰＧＭ＿ＳＶと電圧ＶＯＳとは、ＶＰＧＭ＿ＳＶ＝ＶＰＧＭ＋ＶＯＳの関係にある。
【００７５】
なお、シーケンサ１７は、電圧ＶＳＶの電圧値及び印加期間、オフセルの規定数、並びに電圧ＤＳＶ、電圧ＶＣＧ＿ＳＶ及び電圧ＤＶＣＧ＿ＳＶの電圧値を調整する機能を有していても良く、例えばコントローラ２００がSet Featureにより変更しても良い。
【００７６】
１．３．２  オフセットテーブルについて
次に、オフセットテーブルについて、図８を用いて説明する。本実施形態では、シーケンサ１７は、サンプリングモード時のプログラムループの回数と読み出し電圧（ベリファイループの回数）とに関するオフセットテーブルを有する。そして、シーケンサ１７は、オフセットテーブルに基づいてオフセット電圧ＶＯＳを決定する。なお、図８の例は、プログラムループが２回まで設定され、ベリファイループの回数が５回まで設定されているテーブルを示しているが、これに限定されない。サンプリングモードにおけるプログラムループの回数とプログラムベリファイの回数は任意に設定可能である。
【００７７】
図８に示すように、例えばプログラムループの回数が１回であり且つベリファイループの回数が２回である場合、オフセット電圧ＶＯＳとして電圧ＶＯＳ１＿２が設定される。同様に、ベリファイループの回数が３、４、及び５回である場合、オフセット電圧ＶＯＳとして電圧ＶＯＳ１＿３、ＶＯＳ１＿４、及びＶＯＳ１＿５がそれぞれ設定される。同様に、プログラムループが２回である場合、ベリファイループの回数に応じて、電圧ＶＯＳ２＿２〜ＶＯＳ２＿５が設定される。プログラムループの回数で同じである場合、ベリファイループの回数が多いほど、オフセット電圧ＶＯＳは小さくなる。例えば、電圧ＶＯＳ１＿２〜ＶＯＳ１＿５は、ＶＯＳ１＿２＞ＶＯＳ１＿３＞ＶＯＳ１＿４＞ＶＯＳ１＿５の関係にある。また、ベリファイループの回数が同じ場合、プログラムループの回数が多いほど、オフセット電圧ＶＯＳは大きくなる。例えば、電圧ＶＯＳ１＿２と電圧ＶＯＳ＿２＿２とは、ＶＯＳ１＿２＜ＶＯＳ２＿２の関係にある。なお、電圧ＶＯＳ１＿２〜ＶＯＳ１＿５及び電圧ＶＯＳ２＿２〜ＶＯＳ２＿５における各電圧間のステップ幅は同じでも良く、異なっていても良い。
【００７８】
１．３．３  半導体記憶装置における書き込み動作の全体の流れについて
次に、半導体記憶装置における書き込み動作の全体の流れについて、図９及び図１０を用いて説明する。図９及び図１０の例は、前回の書き込み動作と同じブロックＢＬＫの同じワード線ＷＬが選択されている場合、ノーマルモードを選択し、異なるワード線ＷＬが選択されている場合、サンプリングモードを選択する場合を示している。なお、サンプリングモードを選択する条件は、任意に設定可能である。例えば、シーケンサ１７は、毎回、サンプリングモードを適用し、プログラム電圧ＶＰＧＭ＿ＳＶを設定した後、ノーマルモードによる書き込みを実行しても良い。あるいは、シーケンサ１７は、コントローラ２００から送信されるコマンドに応じてサンプリングモードを選択しても良い。
【００７９】
図９に示すように、まず、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から書き込み命令（コマンドＣＭＤ、アドレスＡＤＤ、及びデータＤＡＴ）を受信する（ステップＳ１０）。より具体的には、ＮＡＮＤ型フラッシュメモリ１００の入出力回路１４は、受信したコマンドＣＭＤ、アドレスＡＤＤ、及びデータＤＡＴを、コマンドレジスタ１５Ｃ、アドレスレジスタ１５Ｂ、及びセンスアンプモジュール１２にそれぞれ転送する。アドレスレジスタ１５Ｂは、カラムアドレスＣＡをセンスアンプモジュール１２に送信し、ロウアドレスＲＡをロウデコーダ１３に送信する。コマンドレジスタ１５ＣにコマンドＣＭＤが格納されると、シーケンサ１７の制御に応じて、レディ／ビジー制御回路１８は、レディ／ビジー信号を“Ｈ”レベルから“Ｌ”レベルにする。
【００８０】
シーケンサ１７は、選択ワード線ＷＬが前回と異なる場合（ステップＳ１１＿Ｙｅｓ）、サンプリングモードを選択する（ステップＳ１２）。より具体的には、例えば、選択ブロックＢＬＫが前回と異なる場合、あるいは、選択ブロックＢＬＫは前回と同じだが、選択ワード線ＷＬが前回と異なる場合、シーケンサ１７はサンプリングモードを選択する。
【００８１】
他方で、シーケンサ１７は、選択ワード線ＷＬが前回と同じである場合（ステップＳ１１＿Ｎｏ）、ノーマルモードを選択する（ステップＳ１３）。例えば、ストリングユニットＳＵは前回と異なるが、選択ワード線ＷＬが前回と同じ場合、あるいはメモリセルグループＭＣＧが前回と同じ場合、シーケンサ１７はノーマルモードを選択する。ノーマルモードが選択された場合、シーケンサ１７は、前回の書き込み動作で用いられたプログラム電圧ＶＰＧＭ＿ＳＶを１回目のプログラム電圧として設定する。前回使用されたプログラム電圧ＶＰＧＭ＿ＳＶは、例えば、シーケンサ１７内のレジスタＲＥＧに保持されている。
【００８２】
サンプリングモードが選択された場合（ステップＳ１２）、シーケンサ１７は、プログラム電圧として電圧ＶＳＶを設定する（ステップＳ１４）。
【００８３】
シーケンサ１７は、電圧ＶＳＶを用いてプログラムを実行する（ステップＳ１５）。より具体的には、シーケンサ１７は“Ｃ”書き込みのメモリセルトランジスタＭＴを“０”書き込みの対象とし、“Ｅｒ”〜“Ｂ”書き込みのメモリセルトランジスタＭＴを書き込み禁止とする。センスアンプモジュール１２は、“Ｃ”書き込みのメモリセルトランジスタＭＴに対応するビット線ＢＬに例えば電圧ＶＳＳを印加し、“Ｅｒ”〜“Ｂ”書き込みのメモリセルトランジスタＭＴに対応するビット線ＢＬに電圧ＶＢＬ（＞ＶＳＳ）を印加する。ロウデコーダ１３は、選択ブロックＢＬＫにおいて、選択ワード線ＷＬに電圧ＶＳＶを印加し、その他の非選択ワード線ＷＬに電圧ＶＰＡＳＳを印加する。電圧ＶＰＡＳＳは、メモリセルトランジスタＭＴの閾値電圧によらず、メモリセルトランジスタＭＴをオン状態にする電圧である。電圧ＶＰＡＳＳは、ＶＰＡＳＳ＜ＶＰＧＭ＜ＶＳＶの関係にある。これにより、“Ｃ”書き込みのメモリセルトランジスタＭＴの閾値電圧が上昇する。
【００８４】
次に、シーケンサ１７は、プログラムベリファイを実行する（ステップＳ１６）。より具体的には、ロウデコーダ１３は、選択ワード線ＷＬに第１ベリファイの読み出し電圧ＶＣＧ＿ＳＶを印加し、非選択ワード線ＷＬに電圧ＶＲＥＡＤを印加する。電圧ＶＲＥＡＤは、保持データに関わらずメモリセルトランジスタＭＴをオンさせる電圧であり、ＶＲＥＡＤ（＞ＶＣＧ＿ＣＶ）＞ＶＣＧ＿ＳＶの関係にある。例えば、読み出し対象のメモリセルトランジスタＭＴの閾値電圧が電圧ＶＣＧ＿ＳＶより高い場合、メモリセルトランジスタＭＴはオフ状態となり、閾値電圧が電圧ＶＣＧ＿ＳＶより低い場合、メモリセルトランジスタＭＴはオン状態となる。この状態でセンスアンプモジュール１２は、各ビット線ＢＬに流れる電流をセンスして、メモリセルトランジスタＭＴのデータを読み出し、カウンタＣＴがオフセル数をカウントする。
【００８５】
オフセル数が規定数より多い場合(ステップＳ１７＿Ｙｅｓ)、シーケンサ１７は、読み出し電圧を電圧ＤＶＣＧだけステップアップさせる。より具体的には、例えばシーケンサ１７は、第２ベリファイにおける読み出し電圧として電圧（ＶＣＧ＿ＳＶ＋ＤＶＣＧ）を設定する。そして、シーケンサ１７は、ステップＳ１６に戻り、オフセル数が規定数以下になるまでベリファイループを繰り返す。
【００８６】
オフセル数が規定数以下の場合（ステップＳ１７＿Ｎｏ）、シーケンサ１７は、読み出し電圧をステップアップしたか確認する。すなわち、シーケンサ１７は、１回目のベリファイループにおいて、オフセル数が規定数以下であったか確認する。
【００８７】
読み出し電圧をステップアップしていない場合（ステップＳ１９＿Ｎｏ）、シーケンサ１７は、プログラム電圧を電圧ＤＳＶだけステップアップする(ステップＳ２０)。より具体的には、例えば、シーケンサ１７は、２回目のプログラム電圧として電圧（ＶＳＶ＋ＤＳＶ）を設定する。そして、シーケンサ１７は、ステップＳ１５に戻り、プログラムを再度実行する。シーケンサ１７は、ベリファイループを少なくとも２回以上繰り返す状況になるまで、サンプリングモードにおけるプログラムループを繰り返す。
【００８８】
図１０に示すように、シーケンサ１７は、読み出し電圧をステップアップしている場合（ステップＳ１９＿Ｙｅｓ）、すなわち、ベリファイループを少なくとも２回以上繰り返している場合、サンプリングが正常に実行されたと判断し、ベリファイループの回数（読み出し電圧）とプログラムループの回数とに基づいて、プログラム電圧ＶＰＧＭ＿ＳＶを設定する（ステップＳ２１）。
【００８９】
次にシーケンサ１７は、ノーマルモードに移行して、書き込み動作を継続する（ステップＳ２２）。
【００９０】
ステップＳ２２においてノーマルモードに移行後、あるいはステップＳ１３においてノーマルモード選択後、シーケンサ１７は、ノーマルモードにおけるプログラムを実行する（ステップＳ２３）。より具体的には、シーケンサ１７は、“Ａ”〜“Ｃ”書き込みのメモリセルトランジスタＭＴを“０”書き込みの対象とし、“Ｅｒ”書き込みのメモリセルトランジスタＭＴを書き込み禁止とする。センスアンプモジュール１２は、“Ａ”〜“Ｃ”書き込みのメモリセルトランジスタＭＴに対応するビット線ＢＬに例えば電圧ＶＳＳを印加し、“Ｅｒ”書き込みのメモリセルトランジスタＭＴに対応するビット線ＢＬに電圧ＶＢＬ（＞ＶＳＳ）を印加する。ロウデコーダ１３は、ノーマルモードにおける１回目のプログラム電圧として、選択ワード線に電圧ＶＰＧＭ＿ＳＶを印加する。
【００９１】
次に、シーケンサ１７は、プログラムベリファイを実行する（ステップＳ２４）。より具体的には、例えば、“Ａ”レベルのプログラムベリファイを行う場合、ロウデコーダ１３は、選択ワード線に電圧ＶＣＧ＿ＡＶを印加する。なお、ノーマルモードにおけるプログラムベリファイでは、複数のレベルのプログラムベリファイを実行しても良い。このとき、各レベルに応じた読み出し電圧の間隔は、それぞれ同じでなくても良い。例えば、“Ａ”〜“Ｃ”レベルのベリファイを実行する場合、電圧ＶＣＧ＿ＡＶと電圧ＶＣＧ＿ＢＶとの電圧差と、電圧ＶＣＧ＿ＢＶと電圧ＶＣＧ＿ＣＶとの電圧差とは同じでなくても良い。
【００９２】
ベリファイをパスしている場合（ステップＳ２５＿Ｙｅｓ）、シーケンサ１７は、書き込み動作を終了させる。
【００９３】
ベリファイをフェイルしている場合（ステップＳ２５＿Ｎｏ）、シーケンサ１７は、ノーマルモードにおけるプログラムループの回数が、予め設定された規定回数に達しているか確認する（ステップＳ２６）。
【００９４】
プログラムループが規定回数に達している場合（ステップＳ２６＿Ｙｅｓ）、シーケンサ１７は、書き込み動作を終了させ、書き込み動作が正常に終了しなかった旨（ステータス情報ＳＴＳ）をコントローラ２００に報告する。
【００９５】
プログラムループが規定回数に達していない場合（ステップＳ２６＿Ｎｏ）、シーケンサ１７は、次のプログラムループにおけるプログラム電圧を電圧ＤＶＰだけステップアップさせる（ステップＳ２７）。より具体的には、例えば、シーケンサ１７は、ノーマルモードにおける２回目のプログラム電圧として電圧（ＶＰＧＭ＿ＳＶ＋ＤＶＰ）を設定する。そして、シーケンサ１７はステップＳ２３に戻り、再度プログラムを実行する。
【００９６】
シーケンサ１７は、ベリファイをパスするか、ノーマルモードにおけるプログラムループの回数が規定回数に達するまで、プログラムループを繰り返す。
【００９７】
１．３．４  書き込み動作時における選択ワード線の電圧の具体例
次に、書き込み動作時における選択ワード線ＷＬの電圧の具体例について、図１１及び図１２を用いて説明する。図１１の例は、サンプリングモードにおいてプログラムループを１回実行した後、ノーマルモードに移行する場合を示しており、図１２の例は、サンプリングモードにおいてプログラムループを２回実行した後、ノーマルモードに移行する場合を示している。
【００９８】
まず、サンプリングモードにおいて、プログラムループを１回実行した場合について説明する。
【００９９】
図１１に示すように、まず、シーケンサ１７は、サンプリングモードを選択する。シーケンサ１７は、サンプリングモードにおける１回目のプログラムループにおいて、サンプリングモードによる１回目のプログラムを実行する（“Ｓ＿Ｐｇ１”）。このとき、ロウデコーダ１３は、選択ワード線ＷＬに電圧ＶＳＶを印加する。
【０１００】
次に、シーケンサ１７は、サンプリングモードによる１回目のプログラムベリファイを実行する（“Ｓ＿Ｐｖ１”）。図１１の例は、ベリファイループを５回繰り返す場合を示している。ロウデコーダ１３は、第１ベリファイ（“第１Ｖｆｙ”）において、選択ワード線ＷＬに電圧ＶＣＧ＿ＳＶを印加する。そして、ロウデコーダ１３は、ベリファイループを繰り返す毎に、選択ワード線ＷＬに印加する電圧を電圧ＤＶＣＧだけステップアップさせる。より具体的には、ロウデコーダ１３は、第２ベリファイ（“第２Ｖｆｙ”）において、選択ワード線ＷＬに電圧（ＶＣＧ＿ＳＶ＋ＤＶＣＧ）を印加し、第３ベリファイ（“第３Ｖｆｙ”）において、選択ワード線ＷＬに電圧（ＶＣＧ＿ＳＶ＋２・ＤＶＣＧ）を印加する。更に、ロウデコーダ１３は、第４ベリファイ（“第４Ｖｆｙ”）において、選択ワード線ＷＬに電圧（ＶＣＧ＿ＳＶ＋３・ＤＶＣＧ）を印加し、第５ベリファイ（“第５Ｖｆｙ”）において、選択ワード線ＷＬに電圧（ＶＣＧ＿ＳＶ＋４・ＤＶＣＧ）を印加する。
【０１０１】
シーケンサ１７は、サンプリングの結果に基づいてオフセット電圧ＶＯＳを決定し、補正したプログラム電圧ＶＰＧＭ＿ＳＶを算出する。なお、ノーマルモードが選択された場合、シーケンサ１７は、ここまでの動作を省略する。
【０１０２】
次に、シーケンサ１７は、ノーマルモードに移行する。シーケンサ１７は、ノーマルモードにおける１回目のプログラムループにおいて、ノーマルモードによる１回目のプログラムを実行する（“Ｎ＿Ｐｇ１”）。このとき、ロウデコーダ１３は、選択ワード線ＷＬに電圧ＶＰＧＭ＿ＳＶを印加する。
【０１０３】
次に、シーケンサ１７は、ノーマルモードによる１回目のプログラムベリファイを実行する（“Ｎ＿Ｐｖ１”）。図１１の例は、“Ａ”レベルのプログラムベリファイを実行する場合を示している。ロウデコーダ１３は、選択ワード線ＷＬに、サンプリングモードにおける電圧ＶＣＧ＿ＳＶよりも低く、“Ａ”レベルのプログラムベリファイに対応した電圧ＶＣＧ＿ＡＶを印加する。
【０１０４】
次に、シーケンサ１７は、ノーマルモードにおける２回目のプログラムループにおいて、ノーマルモードによる２回目のプログラムを実行する（“Ｎ＿Ｐｇ２”）。このとき、ロウデコーダ１３は、選択ワード線ＷＬに、電圧ＶＰＧＭ＿ＳＶを電圧ＤＶＰだけステップアップさせた電圧（ＶＰＧＭ＿ＳＶ＋ＤＶＰ）を印加する。
【０１０５】
次に、シーケンサ１７は、ノーマルモードによる２回目のベリファイを実行する（“Ｎ＿Ｐｖ２”）。図１１の例は、“Ａ”及び“Ｂ”レベルのプログラムベリファイを実行する場合を示している。ロウデコーダ１３は、選択ワード線ＷＬに、“Ａ”レベルのプログラムベリファイに対応した電圧ＶＣＧ＿ＡＶを印加した後、“Ｂ”レベルのプログラムベリファイに対応した電圧ＶＣＧ＿ＢＶを印加する。
【０１０６】
次に、シーケンサ１７は、ノーマルモードにおける３回目のプログラムループにおいて、ノーマルモードによる３回目のプログラムを実行する（“Ｎ＿Ｐｇ３”）。このとき、ロウデコーダ１３は、選択ワード線ＷＬに、電圧（ＶＰＧＭ＿ＳＶ＋ＤＶＰ）を電圧ＤＶＰだけステップアップさせた電圧（ＶＰＧＭ＿ＳＶ＋２・ＤＶＰ）を印加する。
【０１０７】
シーケンサ１７は、ベリファイをパスするか、プログラムループが規定回数に達するまで、ノーマルモードにおけるプログラムループを繰り返す。
【０１０８】
次に、サンプリングモードにおいて、プログラムを２回実行した場合について説明する。
【０１０９】
図１２に示すように、まず、シーケンサ１７は、サンプリングモードを選択する。シーケンサ１７は、サンプリングモードにおける１回目のプログラムループにおいて、サンプリングモードによる１回目のプログラムを実行する（“Ｓ＿Ｐｇ１”）。このとき、ロウデコーダ１３は、選択ワード線ＷＬに電圧ＶＳＶを印加する。
【０１１０】
次に、シーケンサ１７は、サンプリングモードによる１回目のプログラムベリファイを実行する（“Ｓ＿Ｐｖ１”）。図１２の例では、オフセルのカウント数が規定数以下のため、シーケンサ１７は、プログラムベリファイを１回で終了している。
【０１１１】
次に、シーケンサ１７は、サンプリングモードにおける２回目のプログラムループにおいて、サンプリングモードによる２回目のプログラムを実行する（“Ｓ＿Ｐｇ２”）。このとき、ロウデコーダ１３は、選択ワード線ＷＬに、電圧ＶＳＶを電圧ＤＳＶだけステップアップさせた電圧（ＶＳＶ＋ＤＳＶ）を印加する。
【０１１２】
次に、シーケンサ１７は、サンプリングモードによる２回目のプログラムベリファイを実行する（“Ｓ＿Ｐｖ２”）。図１２の例は、ベリファイループを３回繰り返す場合を示している。ロウデコーダ１３は、第１ベリファイ（“第１Ｖｆｙ”）において、選択ワード線ＷＬに電圧ＶＣＧ＿ＳＶを印加する。そして、ロウデコーダ１３は、ベリファイループを繰り返す毎に、選択ワード線ＷＬに印加する電圧を電圧ＤＶＣＧだけステップアップさせる。より具体的には、ロウデコーダ１３は、第２ベリファイ（“第２Ｖｆｙ”）において、選択ワード線ＷＬに電圧（ＶＣＧ＿ＳＶ＋ＤＶＣＧ）を印加し、第３ベリファイ（“第３Ｖｆｙ”）において、選択ワード線ＷＬに電圧（ＶＣＧ＿ＳＶ＋２・ＤＶＣＧ）を印加する。
【０１１３】
シーケンサ１７は、サンプリングの結果に基づいてオフセット電圧ＶＯＳを決定し、補正したプログラム電圧ＶＰＧＭ＿ＳＶを算出する。
【０１１４】
次に、シーケンサ１７は、ノーマルモードに移行する。ノーマルモードにおける書き込み動作は図１１と同じなので、説明は省略する。
【０１１５】
１．４  本実施形態に係る効果について
本実施形態に係る構成であると、半導体記憶装置及びメモリシステムの処理能力を向上できる。以下、本効果について詳述する。
【０１１６】
例えば、三次元積層型ＮＡＮＤ型フラッシュメモリにおいて、ＮＡＮＤストリング内の各メモリセルトランジスタＭＴのセルサイズは、レイヤにより異なる場合がある。このような場合、メモリセルトランジスタＭＴ毎、すなわちワード線ＷＬ毎に最適なプログラム電圧が異なる。
【０１１７】
プログラム電圧を最適化するための方法としては、例えば、他のメモリセルグループＭＣＧにデータを書き込み、メモリセルトランジスタＭＴの閾値電圧がターゲットレベル（例えば“Ａ”レベル）に達したときのプログラム電圧を求め、これを適用する方法がある。但し、この場合、プログラム電圧がターゲットレベルに達するまで、プログラムループ（プログラム及びベリファイ）を繰り返すため、最適化に時間を要する。また、実際に書き込みを行うメモリセルトランジスタＭＴに対して、プログラム電圧の最適化ができない。
【０１１８】
これに対し、本実施形態に係る構成では、半導体記憶装置がサンプリングモード及びノーマルモードの２つの書き込みモードを備える。サンプリングモードを選択した場合、半導体記憶装置は、ノーマルモードの１回目のプログラムで用いられるプログラム電圧よりも高いプログラム電圧を選択ワード線ＷＬに印加できる。更に、半導体記憶装置は、プログラムループ内で、オフセル数が予め設定された規定数以下になるまで、読み出し電圧を等間隔でステップアップさせながらプログラムベリファイを繰り返すことができる。そして、半導体記憶装置は、サンプリングモードにおけるプログラム電圧とプログラムベリファイを繰り返した回数（読み出し電圧）とに基づいてプログラム電圧を最適化できる。従って、半導体記憶装置は、プログラムとプログラムベリファイを繰り返しながらプログラム電圧の最適値を求める方法と比較して、プログラム電圧の最適化に必要なプログラム（プログラムループ）の回数を低減できる。これにより、半導体記憶装置は、プログラム電圧の最適化に必要な時間を短縮できる。よって、半導体記憶装置及びメモリシステムの処理能力を向上できる。
【０１１９】
更に、本実施形態に係る構成では、ノーマルモードにおいて、最適化されたプログラム電圧を用いることにより、メモリセルトランジスタＭＴの閾値電圧が必要なレベルに達するまでのプログラムループの回数を低減できる。よって、書き込み動作の処理時間を短縮できる。
【０１２０】
更に、本実施形態に係る構成では、サンプリングによりメモリセルトランジスタＭＴの閾値電圧が達するレベルよりも高いレベルのデータを書き込むメモリセルトランジスタＭＴを対象にして、プログラム（“０”書き込み）を実行する。従って、サンプリングモード終了後に、最適化されたプログラム電圧を用いて、ノーマルモードの書き込み動作を実行できる。
【０１２１】
更に、本実施形態に係る構成では、最適化されたプログラム電圧の電圧値（電圧ＶＰＧＭ＿ＳＶの電圧値）を、例えばシーケンサ１７内のレジスタＲＥＧに保持しておくことができる。従って、保持されたプログラム電圧の電圧値を使用可能な場合は、サンプリングモードを省略することができるため、書き込み動作の処理時間の増加を抑制できる。
【０１２２】
なお、レジスタＲＥＧは、サンプリングモードで算出された電圧ＶＰＧＭ＿ＳＶの電圧値を２つ以上保持しても良い。あるいは、サンプリングモード毎に電圧ＶＰＧＭ＿ＳＶの電圧値を保持するために、複数のレジスタＲＥＧが設けられても良い。例えば、シーケンサ１７は、ワード線ＷＬ毎にサンプリングモードを実行し、各ワード線ＷＬに対応する電圧ＶＰＧＭ＿ＳＶの電圧値を１つのレジスタＲＥＧ内、もしくは、複数のレジスタＲＥＧに保持することができる。この場合、ノーマルモードで使用する電圧ＶＰＧＭ＿ＳＶの電圧値は、サンプリングモードに紐付されたレジスタＲＥＧに保持されている電圧ＶＰＧＭ＿ＳＶの電圧値が用いられる。
【０１２３】
２．第２実施形態
次に、第２実施形態に係る半導体記憶装置及びメモリシステムについて説明する。第２実施形態では、書き込み動作において、シーケンサ１７がサンプリングモードを選択する場合の例を４つ示す。以下、第１実施形態と異なる点についてのみ説明する。
【０１２４】
２．１  第１例
まず、第１例について、図１３を用いて説明する。第１例では、前回と異なるブロックＢＬＫが選択された場合に、サンプリングモードが選択される。図１３は、ＮＡＮＤ型フラッシュメモリ１００における書き込み動作全体の流れを、第１実施形態の図９及び図１０よりも簡略に示したフローチャートである。
【０１２５】
図１３に示すように、まず、ＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から書き込み命令を受信する（ステップＳ１０）。
【０１２６】
選択ブロックＢＬＫが前回と異なる場合（ステップＳ３０＿Ｙｅｓ）、シーケンサ１７は、サンプリングモードを選択し、サンプリングを実行する（ステップＳ３１）。サンプリング動作の詳細は、第１実施形態の図９及び図１０におけるステップＳ１２及びＳ１４〜Ｓ２２と同じである。例えば、プログラム電圧の最適値のばらつきが、ブロックＢＬＫ間で大きい場合、シーケンサ１７は、ブロックＢＬＫ毎にサンプリングを実行する。サンプリングの結果、シーケンサ１７は、プログラム電圧ＶＰＧＭ＿ＳＶを設定する。
【０１２７】
選択ブロックＢＬＫが前回と同じ場合（ステップＳ３０＿Ｎｏ）、シーケンサ１７は、レジスタＲＥＧ内に保持されたプログラム電圧ＶＰＧＭ＿ＳＶを用いる。
【０１２８】
次に、シーケンサ１７は、ノーマルモードを選択して書き込みを行う（ステップＳ３２）。この場合の書き込み動作は、第１実施形態の図９及び図１０におけるステップＳ２３〜Ｓ２７と同じである。
【０１２９】
２．２  第２例
次に、第２例について、図１４を用いて説明する。第２例では、ストリングユニットＳＵ０が選択された場合に、サンプリングモードが選択される。以下、第１例と異なる点についてのみ説明する。
【０１３０】
図１４に示すように、第１例と異なり、シーケンサ１７は、ストリングユニットＳＵ０が選択された場合（ステップＳ３３＿Ｙｅｓ）、サンプリングを実行する（ステップＳ３１）。例えば、本例では、選択ブロックＢＬＫにおける書き込み順序は、ワード線ＷＬ０のストリングユニットＳＵ０〜ＳＵ３、ワード線ＷＬ１のストリングユニットＳＵ０〜ＳＵ３、…、ワード線ＷＬ７のストリングユニットＳＵ０〜ＳＵ３の順となる。このため、あるワード線ＷＬについてストリングユニットＳＵ０が選択された場合（ステップＳ３３＿Ｙｅｓ）はサンプリングを実行し、ストリングユニットＳＵ１〜ＳＵ３が選択された場合（ステップＳ３３＿Ｎｏ）は、ストリングユニットＳＵ０が選択された際に最適化されたプログラム電圧ＶＰＧＭ＿ＳＶを用いる。
なお、本例において、ブロックＢＬＫ０のストリングユニットＳＵ０が選択された場合に、サンプリングモードを選択するようにしても良い。
【０１３１】
２．３  第３例
次に、第３例について、図１５を用いて説明する。第３例では、前回と異なるメモリセルグループＭＣＧが選択された場合に、サンプリングモードが選択される。以下、第１及び第２例と異なる点についてのみ説明する。
【０１３２】
図１５に示すように、第１及び第２例と異なり、シーケンサ１７は、選択メモリセルグループＭＣＧが前回と異なる場合（ステップＳ３４＿Ｙｅｓ）、サンプリングを実行する（ステップＳ３１）。例えば、同じメモリセルグループＭＣＧで下位ページを書き込んだ後に上位ページを書き込む場合、あるいは、同じページでカラムアドレスＣＡが異なる場合、同じメモリセルグループＭＣＧが選択される。
【０１３３】
２．４  第４例
次に、第４例について説明する。第４例では、ＮＡＮＤストリング２０内のメモリセルトランジスタＭＴを複数のワード線ＷＬ単位（以下、「ゾーンＺＮ」と呼ぶ）にグループ分けし、異なるゾーンＺＮが選択された場合に、サンプリングモードが選択される。以下、第１乃至第３例と異なる点についてのみ説明する。
【０１３４】
２．４．１  ゾーンＺＮについて  
まず、ゾーンＺＮについて、図１６を用いて説明する。図１６は、第１実施形態の図４におけるメモリピラーＭＰ及び配線層３４を抜粋した図である。
【０１３５】
図１６に示すように、シーケンサ１７は、ワード線ＷＬ０〜ＷＬ７を、例えば４つのゾーンＺＮ０〜ＺＮ３に分けて管理する。図１６の例では、ワード線ＷＬ０及びＷＬ１はゾーンＺＮ０に属し、ワード線ＷＬ２及びＷＬ３はゾーンＺＮ１に属し、ワード線ＷＬ４及びＷＬ５はゾーンＺＮ２に属し、ワード線ＷＬ６及びＷＬ７はゾーンＺＮ３に属する。なお、ゾーンＺＮの設定は、任意に変更可能である。例えば、ワード線ＷＬ０〜ＷＬ３をゾーンＺＮ０として設定し、ワード線ＷＬ４〜ＷＬ７をゾーンＺＮ１として設定しても良い。
【０１３６】
２．４．２  半導体記憶装置における書き込み動作の全体の流れについて
次に、半導体記憶装置における書き込み動作の全体の流れについて、図１７を用いて説明する。
【０１３７】
図１７に示すように、第１乃至第３例と異なり、シーケンサ１７は、ゾーンＺＮが前回と異なる場合（ステップＳ３５＿Ｙｅｓ）、サンプリングを実行する（ステップＳ３１）。
【０１３８】
２．５  本実施形態に係る効果について
本実施形態の第１乃至第４例を第１実施形態に適用できる。更に、第１乃至第４例は可能な限り組み合わせることができる。例えば、第２例と第３例を組み合わせて、ストリングユニットＳＵ０において、前回と同じメモリセルグループＭＣＧが選択された場合、ノーマルモードを選択するように良い。
【０１３９】
３．第３実施形態について
次に、第３実施形態に係る半導体記憶装置及びメモリシステムについて説明する。第３実施形態は、コントローラ２００がＮＡＮＤ型フラッシュ型メモリ１００における書き込みモードを選択する場合について説明する。以下、第１及び第２実施形態と異なる点についてのみ説明する。
【０１４０】
３．１  メモリシステムにおける書き込み動作の全体の流れについて
まず、メモリシステム１における書き込み動作の全体の流れについて、図１８を用いて説明する。図１８の例では、コントローラ２００は、前回と同じロウアドレスＲＡを選択しなかった場合に、サンプリングモードを選択する。
【０１４１】
図１８に示すように、まず、コントローラ２００は、ホスト機器２から書き込み命令を受信する（ステップＳ１００）。
【０１４２】
コントローラ２００のプロセッサ２３０は、データを書き込むアドレスＡＤＤ（ロウアドレスＲＡ及びカラムアドレスＣＡ）を決定する（ステップＳ１０１）。
【０１４３】
プロセッサ２３０は、例えば内蔵メモリ２２０が保持する前回の書き込み情報（アドレスＡＤＤ）を参照し、前回と同じロウアドレスＲＡを選択した場合（ステップＳ１０２＿Ｙｅｓ）、ノーマルモードを選択し、ライトコマンドを発行する。そして、プロセッサ２３０は、ＮＡＮＤインターフェイス回路２５０を介してＮＡＮＤ型フラッシュメモリ１００に、書き込み命令（ライトコマンド、アドレスＡＤＤ、及びデータＤＡＴ）を送信する（ステップＳ１０３）。
【０１４４】
すると、シーケンサ１７は、コントローラ２００から受信した書き込み命令に基づき、ノーマルモードを選択して書き込み動作を開始する（ステップＳ１０５）。この場合、ＮＡＮＤ型フラッシュメモリ１００における書き込み動作は、第１実施形態の図９及び図１０のステップＳ１３以降と同じである。
【０１４５】
他方で、プロセッサ２３０は、前回と異なるロウアドレスＲＡを選択した場合（ステップＳ１０２＿Ｙｅｓ）、サンプリングモードを選択し、サンプリングコマンドを発行する。そして、プロセッサ２３０は、ＮＡＮＤインターフェイス回路２５０を介してＮＡＮＤ型フラッシュメモリ１００に、サンプリングコマンドを含む書き込み命令（サンプリングコマンド、ライトコマンド、アドレスＡＤＤ、及びデータＤＡＴ）を送信する（ステップＳ１０４）。
【０１４６】
すると、シーケンサ１７は、コントローラ２００から受信したサンプリングコマンドに基づきサンプリングモードを選択して、書き込み動作を開始する（ステップＳ１０６）。この場合、ＮＡＮＤ型フラッシュメモリ１００における書き込み動作は、第１実施形態の図９及び図１０のステップＳ１２以降と同じである。シーケンサ１７は、サンプリングによりプログラム電圧ＶＰＧＭ＿ＳＶを算出した後に、ノーマルモードに移行して書き込み動作を継続する。
【０１４７】
なお、シーケンサ１７が複数のレジスタＲＥＧを保持している場合、プロセッサ２３０は、適切なレジスタＲＥＧを選択して書き込み命令を送信する。より具体的には、ノーマルモードの場合、プロセッサ２３０は、選択ページに対応する電圧ＶＰＧＭ＿ＳＶの電圧値が保持されているレジスタＲＥＧとノーマルモードを選択して書き込み命令を送信する。この場合、ＮＡＮＤ型フラッシュメモリ１００における書き込み動作は、選択されたレジスタＲＥＧに保持されている電圧ＶＰＧＭ＿ＳＶの電圧値を用いて、第１実施形態の図９及び図１０のステップＳ１３以降と同じ書き込み動作を行う。また、サンプリングモードの場合、プロセッサ２３０は、サンプリングの結果を格納するレジスタＲＥＧとサンプリングモードを選択して書き込み命令を送信する。この場合、サンプリングモードで算出された電圧ＶＰＧＭ＿ＳＶの電圧値は、選択されたレジスタＲＥＧに保持され、選択されなかったレジスタＲＥＧに保持されている電圧ＶＰＧＭ＿ＳＶの電圧値は更新されない。
【０１４８】
３．２  書き込み動作のコントローラの動作について
次に、書き込み動作時のコントローラ２００の動作について、図１９及び図２０を用いて２つの例を説明する。図１９の例は、コントローラ２００がレジスタＲＥＧを指定せずに、サンプリングモードを選択する場合の書き込み動作を示している。図２０の例は、コントローラ２００がレジスタＲＥＧを指定して、サンプリングモードを選択する場合の書き込み動作を示している。
【０１４９】
まず、コントローラ２００がレジスタＲＥＧを指定しない場合について説明する。例えば、シーケンサ１７が１個のレジスタＲＥＧを含み、レジスタＲＥＧが電圧ＶＰＧＭ＿ＳＶを１つだけ保持できる場合、コントローラ２００はレジスタＲＥＧを指定しない。
【０１５０】
図１９に示すように、まず、プロセッサ２３０は、サンプリングの実行を通知するサンプリングコマンド“ＹＹｈ”と書き込み動作の実行を通知するコマンド“８０ｈ”をＮＡＮＤ型フラッシュメモリ１００に出力するとともに、コマンドラッチイネーブル信号ＣＬＥを“Ｈ”レベルにしてアサートする。
【０１５１】
次に、プロセッサ２３０は、アドレス“ＡＤＤ”を出力すると共に、アドレスラッチイネーブル信号ＡＬＥを“Ｈ”レベルにしてアサートする。なお、図１９の例では、アドレスを１サイクルで示しているが、カラムアドレスＣＡ及びロウアドレスＲＡ等を送信するため、複数のサイクルであっても良い。
【０１５２】
次に、プロセッサ２３０は、プログラムデータ“ＤＡＴ”を必要なサイクル数出力する。
【０１５３】
更にプロセッサ２３０は、書き込み実行を指示するライトコマンド“１０ｈ”を出力すると共に、コマンドラッチイネーブル信号ＣＬＥを“Ｈ”レベルにしてアサートする。
【０１５４】
これらのコマンド、アドレス、及びデータは、ＮＡＮＤ型フラッシュメモリ１００の例えばレジスタ１５に格納される。
【０１５５】
シーケンサ１７は、サンプリングコマンド“ＹＹｈ”に応答してサンプリングモードを選択する。また、シーケンサ１７は、ライトコマンド“１０ｈ”に応答して、書き込み動作を開始し、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となる（Ｒ／Ｂｎ＝“Ｌ”）。
【０１５６】
書き込み動作が完了すると、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となり、レディ／ビジー信号Ｒ／Ｂｎは“Ｈ”レベルに復帰する。
【０１５７】
次に、コントローラ２００がレジスタＲＥＧを指定する場合について説明する。例えばシーケンサ１７が複数のレジスタＲＥＧを含む場合、コントローラ２００は選択ページに対応するレジスタＲＥＧを指定する。
【０１５８】
図２０に示すように、まず、プロセッサ２３０は、レジスタＲＥＧを指定することを通知するコマンド“ＺＺ１ｈ”と、書き込みモード及びレジスタＴＥＧを通知するコマンド“ＺＺ２ｈ”と、書き込み動作の実行を通知するコマンド“８０ｈ”をＮＡＮＤ型フラッシュメモリ１００に出力するとともに、コマンドラッチイネーブル信号ＣＬＥを“Ｈ”レベルにしてアサートする。例えば、コマンドＺＺ２ｈは、１サイクルの信号であり、“ＺＺ２ｈ”の８ビットのデータのうち１ビットでサンプリングモードかノーマルモードかを選択し、残りのビットで使用するレジスタＲＥＧを選択する。なお、コマンド“ＺＺ２ｈ”はアドレスまたはデータであっても良い。
【０１５９】
次に、プロセッサ２３０は、図１９と同様に、アドレス“ＡＤＤ”、プログラムデータ“ＤＡＴ”、書き込み実行を指示するライトコマンド“１０ｈ”を出力する。
【０１６０】
３．３  本実施形態に係る効果について
本実施形態に係る構成であれば、第１及び第２実施形態と同様の効果を得ることができる。
【０１６１】
なお、本実施形態では、プロセッサ２３０は、ロウアドレスＲＡが同じ場合に、サンプリングモードを選択する場合について説明したが、これに限定されない。第１及び第２実施形態で説明したシーケンサ１７によるサンプリングモードの選択動作をプロセッサ２３０が行っても良い。更には、第１乃至第３実施形態を組み合わせて、コントローラ２００とＮＡＮＤ型フラッシュメモリ１００がそれぞれ異なる条件でサンプリングモードを選択するようにしても良い。
【０１６２】
４．第４実施形態
次に、第４実施形態に係る半導体記憶装置及びメモリシステムについて説明する。第４実施形態は、コントローラ２００が選択ブロックＢＬＫの書き換え回数（書き込み／消去を繰り返した回数）に応じてサンプリングを選択する場合について説明する。以下、第１乃至第３実施形態と異なる点についてのみ説明する。
【０１６３】
４．１  メモリシステムにおける書き込み動作の全体の流れについて
メモリシステム１における書き込み動作の全体の流れについて、図２１を用いて説明する。図２１の例では、コントローラ２００は、以前に行ったサンプリング後の書き換え回数に応じてサンプリングモードを選択する。
【０１６４】
図２１に示すように、まず、コントローラ２００は、ホスト機器２から書き込みを受信する（ステップＳ１００）。
【０１６５】
コントローラ２００のプロセッサ２３０は、データを書き込むアドレスＡＤＤ（ロウアドレスＲＡ及びカラムアドレスＣＡ）を決定する（ステップＳ１０１）。
【０１６６】
プロセッサ２３０は、例えば内蔵メモリ２２０に設けられた書き換え回数テーブルを参照する（ステップＳ１０７）。書き換え回数テーブルには、例えば、ブロックＢＬＫ毎に、サンプリングしてからの書き換え回数が記憶されている。なお、書き込みテーブルに保持されている書き換え回数は、ワード線ＷＬ単位でも良く、ストリングユニットＳＵ単位でも良く、任意に設定可能である。また、書き換え回数テーブルには、例えば出荷後からの通算の書き換え回数が記憶されていても良い。この場合、予め設定された複数の規定回数（例えば、１０００回、５０００回、…）に達する毎に、サンプリングを行っても良い。更に、ブロックＢＬＫ毎の消去回数を保持する消去回数テーブルであっても良い。
【０１６７】
書き換え回数が規定回数以下の場合（ステップＳ１０７＿Ｙｅｓ）、第３実施形態と同様に、プロセッサ２３０は、ノーマルモードを選択してライトコマンドを発行する。そしてプロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００に、書き込み命令を送信する（ステップＳ１０３）。
【０１６８】
すると、シーケンサ１７は、ノーマルモードを選択して書き込み動作を開始する（ステップＳ１０５）。
【０１６９】
他方で、書き換え回数が規定回数よりも多い場合（ステップＳ１０７＿Ｎｏ）、プロセッサ２３０は、第３実施形態と同様に、サンプリングモードを選択して、サンプリングコマンドとライトコマンドを発行する。そして、プロセッサ２３０は、ＮＡＮＤ型フラッシュメモリ１００に、サンプリングコマンドを含む書き込み命令を送信する（ステップＳ１０４）。
【０１７０】
すると、シーケンサ１７は、サンプリングモードを選択して書き込み動作を開始する（ステップＳ１０６）。
【０１７１】
４．２  本実施形態に係る効果について
本実施形態に係る構成であれば、第１乃至第３実施形態と同様の効果が得られる。
【０１７２】
更に、本実施形態に係る構成であれば、書き込みと消去を繰り返すことによりメモリセルトランジスタＭＴの特性が劣化した場合においても、最適なプログラム電圧を設定することができる。よって、半導体記憶装置及びメモリシステムの処理能力を向上できる。
【０１７３】
５．変形例等
上記実施形態に係る半導体記憶装置は、複数の第１メモリセル(MT)を含む第１メモリセルグループ(MCG)と、複数の第１メモリセルに共通に接続されたワード線(WL)と、第１プログラム及び第１ベリファイを含む第１プログラムループを繰り返す第１モード(サンプリングモード)と、第２プログラム及び第２ベリファイを含む第２プログラムループを繰り返す第２モード(ノーマルモード)とを備える書き込み動作を制御する制御回路(17)とを含む。制御回路は、第１及び第２モードを順に実行する場合、第１プログラムループにおいて、ワード線に第１電圧 (VSV)を印加して第１プログラムを実行した後、第１メモリセルのオフセル数が閾値以下になるまで、ワード線に印加される第２電圧(VCG_SV)をステップアップさせながら第１ベリファイを繰り返し、第１電圧と第１ベリファイを繰り返した回数とに基づいて第１電圧より低い第３電圧(VPGM_SV)を決定し、１回目の第２プログラムループにおいて、ワード線に第３電圧を印加して第２プログラムを実行した後、ワード線に第２電圧より低い第４電圧(VCG_AV)を印加して第２ベリファイを実行する。
【０１７４】
上記実施形態を適用することにより、処理能力を向上できる半導体記憶装置を提供できる。
【０１７５】
なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。
【０１７６】
５．１  第１変形例
例えば、８値（３ビット）のデータを保持可能なメモリセルトランジスタＭＴに本実施形態を適用しても良い。一例を、図２２を用いて説明する。以下、第１実施形態の図７と異なる点についてのみ説明する。
【０１７７】
図２２に示すように、シーケンサ１７は、例えば“Ｄ”〜“Ｇ”書き込みのメモリセルトランジスタＭＴを対象にして、電圧ＶＳＶを用いた“０”書き込みを実行する。このとき、“Ｅｒ”〜“Ｃ”書き込みのメモリセルトランジスタＭＴは、書き込み禁止とされる。この結果、例えば、多数の“Ｄ”〜“Ｇ”書き込みのメモリセルトランジスタＭＴの閾値電圧は、“Ｃ”レベルに達するほど、大きくシフトする。この場合、電圧ＶＣＧ＿ＳＶは、例えば電圧ＶＣＧ＿ＣＶ以上、電圧ＶＣＧ＿ＤＶ未満の電圧に設定される。
【０１７８】
５．２  その他変形例
例えば、上記実施形態は可能な限り組み合わせることができる。例えば、第１実施形態と第４実施形態を組み合わせても良い。
【０１７９】
更に、上記実施形態において、センスアンプモジュール１２は、電流センス型であっても良く、電圧センス型であっても良い。
【０１８０】
更に、上記実施形態は三次元積層型ＮＡＮＤ型フラッシュメモリに限定されず、半導体基板上にメモリセルが配置された平面型ＮＡＮＤ型フラッシュメモリにも適用できる。更には、ＮＡＮＤ型フラッシュメモリに限定されず、他のメモリを用いた半導体記憶装置にも適用できる。
【０１８１】
更に、上記実施形態における「接続」とは、間に例えばトランジスタあるいは抵抗等、他の何かを介在させて間接的に接続されている状態も含む。
【０１８２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１８３】
なお、本発明に関する各実施形態において、以下の通りであっても良い。例えばメモリセルトランジスタＭＴが２ビット（４値）のデータを保持可能であり、４値のいずれかを保持している際の閾値レベルを低い方からＥｒレベル（消去レベル）、Ａレベル、Ｂレベル、及びＣレベルとしたとき、
（１）読み出し動作では、
Ａレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば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の制御電極が形成されている。ここで仕事関数調整用の材料はＴａＯなどの金属酸化膜、ＴａＮなどの金属窒化膜である。制御電極にはＷなどを用いることができる。
【０１９６】
また、メモリセル間にはエアギャップを形成することができる。
【符号の説明】
【０１９７】
１…メモリシステム、２…ホスト機器、１１…メモリセルアレイ、１２…センスアンプモジュール、１３…ロウデコーダ、１４…入出力回路、１５…レジスタ、１５Ａ…ステータスレジスタ、１５Ｂ…アドレスレジスタ、１５Ｃ…コマンドレジスタ、１６…ロジック制御回路、１７…シーケンサ、１８…レディ／ビジー制御回路、１９…電圧生成回路、２０…ＮＡＮＤストリング、３０…半導体基板、３１…ｎ型ウェル、３２…ｐ型ウェル、３３…型拡散層、３４…配線層、３５…半導体層、３６…トンネル絶縁膜、３７…電荷蓄積層、３８…ブロック絶縁膜、１００…ＮＡＮＤ型フラッシュメモリ、２００…コントローラ、２１０…ホストインターフェイス回路、２２０…内蔵メモリ、２３０…プロセッサ、２４０…バッファメモリ、２５０…ＮＡＮＤインターフェイス回路、２６０…ＥＣＣ回路
【図１】
2018147535.tif 000003
【図２】
2018147535.tif 000004
【図３】
2018147535.tif 000005
【図４】
2018147535.tif 000006
【図５】
2018147535.tif 000007
【図６】
2018147535.tif 000008
【図７】
2018147535.tif 000009
【図８】
2018147535.tif 000010
【図９】
2018147535.tif 000011
【図１０】
2018147535.tif 000012
【図１１】
2018147535.tif 000013
【図１２】
2018147535.tif 000014
【図１３】
2018147535.tif 000015
【図１４】
2018147535.tif 000016
【図１５】
2018147535.tif 000017
【図１６】
2018147535.tif 000018
【図１７】
2018147535.tif 000019
【図１８】
2018147535.tif 000020
【図１９】
2018147535.tif 000021
【図２０】
2018147535.tif 000022
【図２１】
2018147535.tif 000023
【図２２】
2018147535.tif 000024