(57)【要約】【課題】高品質な半導体記憶装置を提供する。【解決手段】半導体記憶装置は、メモリセルにデータを書込む場合、ワード線に、第１電圧を印加する第１プログラムを行ない、ワード線に、第１電圧よりも低い第２電圧を印加する第１プログラムベリファイを行ない、ワード線に、第１電圧よりも低く、且つ第２電圧よりも高い第３電圧を印加する第２ベリファイを行ない、第１及び第２ベリファイを行った後、ビット線に印加する電圧を調整し、第１プログラム、第１及び第２ベリファイを行ない、第２ベリファイを完了すると、ワード線に、第１電圧よりも高い第４電圧を印加する第２プログラムを行ない、第２プログラムを完了すると、ワード線に、第４電圧よりも高い第５電圧を印加する第３プログラムを行う制御回路を備える。【選択図】図７
2018160292.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルトランジスタと、
前記複数のメモリセルトランジスタに接続されるワード線と、
前記複数のメモリセルトランジスタにそれぞれ接続される複数のビット線と、
前記メモリセルトランジスタにデータを書込む場合、
前記ワード線に、第１電圧を印加する第１プログラム動作を行ない、
前記ワード線に、前記第１電圧よりも低い第２電圧を印加する第１プログラムベリファイ動作を行ない、
前記ワード線に、前記第１電圧よりも低く、且つ前記第２電圧よりも高い第３電圧を印加する第２プログラムベリファイ動作を行ない、
前記第１プログラムベリファイ動作及び前記第２プログラムベリファイ動作を行った後、複数のビット線に印加する電圧を調整し、前記第１プログラム動作、前記第１プログラムベリファイ動作、及び前記第２プログラムベリファイ動作を行ない、
前記第２プログラムベリファイ動作を完了すると、前記ワード線に、前記第１電圧よりも高い第４電圧を印加する第２プログラム動作を行ない、
前記第２プログラム動作を完了すると、前記ワード線に、前記第４電圧よりも高い第５電圧を印加する第３プログラム動作を行う、
制御回路と、
を備える半導体記憶装置。
【請求項２】
前記制御回路は、前記第１プログラムベリファイ動作及び前記第２プログラムベリファイ動作を行った後、複数のビット線に印加する電圧を調整する際、
前記第１プログラムベリファイ動作をパスしなかった前記メモリセルトランジスタに接続される前記ビット線に印加する電圧を、前記第２電圧よりも低い第６電圧に設定し、
前記第１プログラムベリファイ動作をパスし、前記第２プログラムベリファイ動作をパスしなかった前記メモリセルトランジスタに接続される前記ビット線に印加する電圧を、前記第６電圧よりも高い第７電圧に設定し、
前記第２プログラムベリファイ動作をパスした前記メモリセルトランジスタに接続される前記ビット線に印加する電圧を、前記第７電圧よりも高い第８電圧に設定し、
前記第１プログラム動作、前記第１プログラムベリファイ動作、及び前記第２プログラムベリファイ動作を行なう、
請求項１記載の半導体記憶装置。
【請求項３】
前記制御回路は、
前記第２プログラム動作及び前記第３プログラム動作を行う際、書込み対象となる前記メモリセルトランジスタに接続された前記ビット線に、前記第６電圧を印加し、書込み対象ではない前記メモリセルトランジスタに接続された前記ビット線に、前記第８電圧を印加する、
請求項２記載の半導体記憶装置。
【請求項４】
複数のメモリセルトランジスタと、
前記複数のメモリセルトランジスタに接続されるワード線と、
前記複数のメモリセルトランジスタにそれぞれ接続される複数のビット線と、
前記メモリセルトランジスタにデータを書込む場合、
前記ワード線に、第１電圧を印加する第１プログラム動作を行ない、
前記ワード線に、前記第１電圧よりも低い第２電圧を印加し、第１タイミングと、前記第１タイミングとは異なる第２タイミングとで、書込み対象となる前記メモリセルトランジスタに接続された前記ビット線の電流値を計測するプログラムベリファイ動作を行ない、
前記プログラムベリファイ動作を行った後、複数のビット線に印加する電圧を調整し、前記第１プログラム動作、及び前記プログラムベリファイ動作を行ない、
前記プログラムベリファイ動作を完了すると、前記ワード線に、前記第１電圧よりも高い第３電圧を印加する第２プログラム動作を行ない、
前記第２プログラム動作を完了すると、前記ワード線に、前記第３電圧よりも高い第４電圧を印加する第３プログラム動作を行う、
制御回路と、
を備える半導体記憶装置。
【請求項５】
前記制御回路は、前記プログラムベリファイ動作を行った後、複数のビット線に印加する電圧を調整する際、
前記プログラムベリファイ動作の前記第１タイミングでパスしなかった前記メモリセルトランジスタに接続される前記ビット線に印加する電圧を、前記第２電圧よりも低い第５電圧に設定し、
前記プログラムベリファイ動作の前記第１タイミングでパスし、前記第２タイミングでパスしなかった前記メモリセルトランジスタに接続される前記ビット線に印加する電圧を、前記第５電圧よりも高い第６電圧に設定し、
前記プログラムベリファイ動作の前記第２タイミングでパスした前記メモリセルトランジスタに接続される前記ビット線に印加する電圧を、前記第６電圧よりも高い第７電圧に設定し、
前記第１プログラム動作、及び前記プログラムベリファイ動作を行なう、
請求項４記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
メモリセルが三次元に配列されたＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２３８３６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
高品質な半導体記憶装置を提供する。
【課題を解決するための手段】
【０００５】
実施形態の半導体記憶装置は、メモリセルにデータを書込む場合、ワード線に、第１電圧を印加する第１プログラムを行ない、ワード線に、第１電圧よりも低い第２電圧を印加する第１プログラムベリファイを行ない、ワード線に、第１電圧よりも低く、且つ第２電圧よりも高い第３電圧を印加する第２ベリファイを行ない、第１及び第２ベリファイを行った後、ビット線に印加する電圧を調整し、第１プログラム、第１及び第２ベリファイを行ない、第２ベリファイを完了すると、ワード線に、第１電圧よりも高い第４電圧を印加する第２プログラムを行ない、第２プログラムを完了すると、ワード線に、第４電圧よりも高い第５電圧を印加する第３プログラムを行う制御回路を備える。
【図面の簡単な説明】
【０００６】
【図１】図１は、メモリシステムのブロック図である。
【図２】図２は、ＮＡＮＤ型フラッシュメモリのブロック図である。
【図３】図３は、メモリセルアレイの回路図である。
【図４】図４は、第１実施形態に係る半導体記憶装置のセンスアンプユニット及びその周辺回路を示す回路図である。
【図５】図５は、第１実施形態に係る半導体記憶装置のセンスモジュールの回路図である。
【図６】図６は、第１実施形態に係る半導体記憶装置のメモリセルトランジスタの閾値分布及びデータの関係を示す図である。
【図７】図７は、第１実施形態に係る半導体記憶装置の書込み動作の概要を示す図である。
【図８】図８は、第１実施形態に係る半導体記憶装置のプログラム動作の概要示す波形図である。
【図９】図９は、第１実施形態に係る半導体記憶装置のプログラムベリファイ動作の概要示す波形図である。
【図１０】図１０は、第１実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図１１】図１１は、第１実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図１２】図１２は、第１実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図１３】図１３は、第１実施形態に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図１４】図１４は、第１実施形態の比較例に係る半導体記憶装置のプログラム回数と、メモリセルトランジスタＭＴの閾値の変動との関係を示す図である。
【図１５】図１５は、第１実施形態の比較例に係る半導体記憶装置のプログラム回数と、メモリセルトランジスタＭＴの閾値の変動との関係を示す図である。
【図１６】図１６は、第１実施形態に係る半導体記憶装置のプログラム回数と、メモリセルトランジスタＭＴの閾値の変動との関係を示す図である。
【図１７】図１７は、第１実施形態に係る半導体記憶装置のプログラム回数と、メモリセルトランジスタＭＴの閾値の変動との関係を示す図である。
【図１８】図１８は、第１実施形態の変形例に係る半導体記憶装置のセンスアンプユニット及びその周辺回路を示す回路図である。
【図１９】図１９は、第１実施形態の変形例に係る半導体記憶装置のセンスモジュールの回路図である。
【図２０】図２０は、第１実施形態の変形例に係る半導体記憶装置のプログラムベリファイ動作原理を示す図である。
【図２１】図２１は、第１実施形態の変形例に係る半導体記憶装置のプログラムベリファイ動作の概要示す波形図である。
【図２２】図２２は、第１実施形態の変形例に係る半導体記憶装置のグループの判定方法を示す図である。
【図２３】図２３は、第１実施形態の変形例に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図２４】図２４は、第２実施形態に係る半導体記憶装置のメモリセルトランジスタの閾値分布及びデータの関係を示す図である。
【図２５】図２５は、第２実施形態に係る半導体記憶装置の書込み動作の概要を示す図である。
【図２６】図２６は、第２実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図２７】図２７は、第２実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図２８】図２８は、第２実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図２９】図２９は、第２実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図３０】図３０は、第２実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図３１】図３１は、第２実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図３２】図３２は、第２実施形態に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図３３】図３３は、第２実施形態に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図３４】図３４は、第２実施形態に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図３５】図３５は、第２実施形態の変形例に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図３６】図３６は、第２実施形態の変形例に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図３７】図３７は、第２実施形態の変形例に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図３８】図３８は、第３実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図３９】図３９は、第３実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図４０】図４０は、第３実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図４１】図４１は、第３実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図４２】図４２は、第３実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図４３】図４３は、第３実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図４４】図４４は、第４実施形態に係る半導体記憶装置のメモリセルトランジスタの閾値分布及びデータの関係を示す図である。
【図４５】図４５は、第４実施形態に係る半導体記憶装置の書込み動作の概要を示す図である。
【図４６】図４６は、第４実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図４７】図４７は、第４実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図４８】図４８は、第４実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図４９】図４９は、第４実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図５０】図５０は、第４実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図５１】図５１は、第４実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図５２】図５２は、第４実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図５３】図５３は、第４実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図５４】図５４は、第４実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図５５】図５５は、第４実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図５６】図５６は、第４実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図５７】図５７は、第４実施形態に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図５８】図５８は、第４実施形態に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図５９】図５９は、第４実施形態に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図６０】図６０は、第４実施形態に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図６１】図６１は、第４実施形態に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図６２】図６２は、第４実施形態の変形例に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図６３】図６３は、第４実施形態の変形例に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図６４】図６４は、第４実施形態の変形例に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図６５】図６５は、第４実施形態の変形例に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図６６】図６６は、第４実施形態の変形例に係る半導体記憶装置の書込み動作時のパルスを示す図である。
【図６７】図６７は、第５実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図６８】図６８は、第５実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図６９】図６９は、第５実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図７０】図７０は、第５実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図７１】図７１は、第５実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図７２】図７２は、第５実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図７３】図７３は、第５実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図７４】図７４は、第５実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図７５】図７５は、第５実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図７６】図７６は、第５実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【図７７】図７７は、第５実施形態に係る半導体記憶装置の書込み動作を示すフロー図である。
【発明を実施するための形態】
【０００７】
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。以下では半導体記憶装置として、複数のメモリセルトランジスタが半導体基板の上方に積層された三次元積層型ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【０００８】
＜１＞第１実施形態    
第１実施形態に係る半導体記憶装置について説明する。
【０００９】
＜１−１＞構成
＜１−１−１＞メモリシステム  
まず、第１実施形態に係る半導体記憶装置を含むメモリシステムの構成について、図１を用いて説明する。
【００１０】
図１に示すようにメモリシステム１は、ＮＡＮＤ型フラッシュメモリ（半導体記憶装置）１００及びメモリコントローラ２００を備えている。メモリコントローラ２００とＮＡＮＤ型フラッシュメモリ１００は、例えばそれらの組み合わせにより一つの半導体装置を構成しても良い。その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。なお、メモリシステム１は、ホストデバイス３００を更に備える構成であっても良い。
【００１１】
ＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルトランジスタを備え、データを不揮発に記憶する。ＮＡＮＤ型フラッシュメモリ１００の構成の詳細は後述する。
【００１２】
メモリコントローラ２００は、ホストデバイス３００からの命令に応答して、ＮＡＮＤ型フラッシュメモリ１００に対して読み出し、書込み、消去等を命令する。
【００１３】
メモリコントローラ２００は、ホストインターフェイス回路（ホストI/F）２０１、内蔵メモリ（ＲＡＭ: Random access memory）２０２、プロセッサ（ＣＰＵ:Central processing unit）２０３、バッファメモリ２０４、ＮＡＮＤインターフェイス回路（NAND I/F）２０５、及びエラー訂正回路（ＥＣＣ回路、またはＥＣＣ）２０６を備えている。
【００１４】
ホストインターフェイス回路２０１は、コントローラバスを介してホストデバイス３００と接続され、メモリコントローラ２００と、ホストデバイス３００との通信を司る。そして、ホストインターフェイス回路２０１は、ホストデバイス３００から受信した命令及びデータを、それぞれＣＰＵ２０３及びバッファメモリ２０４に転送する。ホストインターフェイス回路２０１は、ＣＰＵ２０３の命令に応答して、バッファメモリ２０４内のデータをホストデバイス３００へ転送する。
【００１５】
ＮＡＮＤインターフェイス回路２０５は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続される。そして、ＮＡＮＤインターフェイス回路２０５は、ＮＡＮＤ型フラッシュメモリ１００とメモリコントローラ２００の通信を司る。そして、ＮＡＮＤインターフェイス回路２０５は、ＣＰＵ２０３から受信した命令をＮＡＮＤ型フラッシュメモリ１００に転送する。更に、ＮＡＮＤインターフェイス回路２０５は、データの書込み時にはバッファメモリ２０４内の書込みデータをＮＡＮＤ型フラッシュメモリ１００へ転送する。更に、ＮＡＮＤインターフェイス回路２０５は、データの読み出し時には、ＮＡＮＤ型フラッシュメモリ１００から読み出されたデータをバッファメモリ２０４へ転送する。
【００１６】
ＮＡＮＤバスは、ＮＡＮＤインターフェイスに従った信号の送受信を実行する。この信号の具体例は、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号ＷＥｎ、リードイネーブル信号ＲＥｎ、レディ・ビジー信号ＲＢｎ、及び入出力信号Ｉ／Ｏである。
【００１７】
信号ＣＬＥ及びＡＬＥは、ＮＡＮＤ型フラッシュメモリ１００への入力信号Ｉ／Ｏがそれぞれコマンド及びアドレスであることをＮＡＮＤ型フラッシュメモリ１００に通知する信号である。信号ＷＥｎは“Ｌ（ｌｏｗ）”レベルでアサートされ、入力信号Ｉ／ＯをＮＡＮＤ型フラッシュメモリ１００に取り込ませるための信号である。「アサート」とは、信号（または論理）が有効（アクティブ）な状態とされていることを意味し、これに相対する用語として「ネゲート」は信号（または論理が無効（インアクティブ）な状態とされていることを意味する。信号ＲＥｎも“Ｌ”レベルでアサートされ、ＮＡＮＤ型フラッシュメモリ１００から出力信号Ｉ／Ｏを読み出すための信号である。レディ・ビジー信号ＲＢｎは、ＮＡＮＤ型フラッシュメモリ１００がレディ状態（メモリコントローラ２００からの命令を受信出来る状態）であるか、それともビジー状態（メモリコントローラ２００からの命令を受信出来ない状態）であるかを示す信号であり、“Ｌ”レベルがビジー状態を示す。入出力信号Ｉ／Ｏは、例えば８ビットの信号である。そして入出力信号Ｉ／Ｏは、ＮＡＮＤ型フラッシュメモリ１００とメモリコントローラ２００との間で送受信されるデータの実体であり、コマンド、アドレス、書込みデータ、及び読み出しデータ等である。
【００１８】
ＣＰＵ２０３は、メモリコントローラ２００全体の動作を制御する。例えば、ＣＰＵ２０３は、ホストデバイス３００から書込み命令を受信した際には、ＮＡＮＤインターフェイス回路２０５に基づく書込み命令を発行する。読み出し及び消去の際も同様である。ＣＰＵ２０３は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。更にＣＰＵ２０３は、各種の演算を実行する。例えば、データの暗号化処理やランダマイズ処理等を実行する。尚、上述したように、ホストデバイス３００が、メモリシステム１に含まれる場合においても、ＣＰＵ２０３は、メモリシステム１全体の動作を司る。
【００１９】
ＥＣＣ回路２０６は、データの誤り訂正（ＥＣＣ：Error Checking and Correcting）処理を実行する。すなわちＥＣＣ回路２０６は、データの書込み時には書込みデータに基づいてパリティを生成する。そして、ＥＣＣ回路２０６は、データの読み出し時には前記パリティからシンドロームを生成して誤りを検出し、誤りを訂正する。なお、ＣＰＵ２０３がＥＣＣ回路２０６の機能を有していても良い。
【００２０】
内蔵メモリ２０２は、例えばＤＲＡＭ等の半導体メモリであり、ＣＰＵ２０３の作業領域として使用される。そして内蔵メモリ２０２は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、各種の管理テーブル等を記憶する。
【００２１】
＜１−１−２＞ＮＡＮＤ型フラッシュメモリ  
次に、図２を用いてＮＡＮＤ型フラッシュメモリ１００の構成について説明する。
【００２２】
図２に示すようにＮＡＮＤ型フラッシュメモリ１００は、周辺回路１１０及びコア回路１２０を備えている。
【００２３】
コア回路１２０は、メモリセルアレイ１３０、センスアンプユニット１４０、及びロウデコーダ１５０を備えている。
【００２４】
メモリセルアレイ１３０は、複数の不揮発性メモリセルトランジスタ（単にメモリセルと記載しても良い）を備えており、複数の不揮発性メモリセルトランジスタのそれぞれがワード線及びビット線に関連付けられている。そして、メモリセルアレイ１３０は、複数の不揮発性メモリセルトランジスタの集合である複数（図２の例では３個）のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、ＢＬＫ２）を備えている。
【００２５】
データの消去は、ブロックＢＬＫ単位、またはブロックＢＬＫよりも小さい単位で実行することが出来る。消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という２０１１年９月１８日に出願された米国特許出願１３／２３５，３８９号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という２０１０年１月２７日に出願された米国特許出願１２／６９４，６９０号に記載されている。更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という２０１２年５月３０日に出願された米国特許出願１３／４８３，６１０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００２６】
ブロックＢＬＫの各々は、メモリセルトランジスタが直列接続されたＮＡＮＤストリング１３１の集合である複数（図２の例では４個）のストリングユニットＳＵ（ＳＵ０、ＳＵ１、ＳＵ２、ＳＵ３）を備えている。もちろん、メモリセルアレイ１３０内のブロック数や、１ブロックＢＬＫ内のストリングユニット数は任意である。メモリセルアレイ１３０内のブロックの物理的な位置を示すものをブロックアドレスと呼ぶ。
【００２７】
ロウデコーダ１５０は、ブロックアドレスに対応するブロックを選択状態にし、選択されたブロックのワード線を所望の電圧状態にする。
【００２８】
センスアンプユニット１４０は、データの読み出し時には、メモリセルトランジスタからビット線に読み出されたデータをセンスする。
【００２９】
周辺回路１１０は、シーケンサ（制御回路）１１１、レジスタ１１２、及びドライバ１１３を備える。
【００３０】
シーケンサ１１１は、ＮＡＮＤ型フラッシュメモリ１００全体の動作を制御する。
【００３１】
レジスタ１１２は、種々の信号を記憶する。例えば、レジスタ１１２は、データの書込みや消去動作のステータスを記憶し、これによってコントローラに動作が正常に完了したか否かを通知する。なお、レジスタ１１２は、種々のテーブルを記憶することも可能である。
【００３２】
ドライバ１１３は、データの書込み、読み出し、及び消去に必要な電圧を、ロウデコーダ１５０、センスアンプユニット１４０、及び図示せぬソース線ドライバに供給する。
【００３３】
＜１−１−３＞メモリセルアレイ
図３を用いてメモリセルアレイの構成について説明する。図３では、あるブロックＢＬＫを示している。図３に示すように、第１実施形態のブロックＢＬＫは例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数のＮＡＮＤストリング１３１を含む。
【００３４】
ＮＡＮＤストリング１３１の各々は、選択トランジスタＳＴ１、ＳＴ２及び複数（図３では一例として４８個）のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ４７）を含んでいる。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そして複数のメモリセルトランジスタＭＴ（メモリセルトランジスタ群）は、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。もちろん、メモリセルトランジスタＭＴの数は任意である。
【００３５】
ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に接続される。また、ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ２のゲートは、それぞれセレクトゲート線ＳＧＳ０〜ＳＧＳ３に接続される。もちろん、ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ２のゲートは一つのセレクトゲート線ＳＧＳに接続されても良い。また、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ４７）の制御ゲートは、それぞれワード線ＷＬ（ＷＬ０〜ＷＬ４７）に接続される。
【００３６】
また、メモリセルアレイ１３０内において同一列にあるＮＡＮＤストリング１３１の選択トランジスタＳＴ１のドレインは、ビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１）：Ｌは２以上の自然数）に接続される。すなわちビット線ＢＬは、複数のブロックＢＬＫのＮＡＮＤストリング１３１に接続される。更に、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに接続されている。
【００３７】
メモリセルアレイ１３０の構成についてはその他の構成であっても良い。すなわちメモリセルアレイ１３０の構成については、例えば、“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００３８】
＜１−１−４＞センスアンプユニット
＜１−１−４−１＞センスアンプユニットの概要
次に、センスアンプユニット１４０の概要について説明する。第１実施形態で説明するセンスアンプユニット１４０として、以下ではビット線の電圧をセンスする（電圧センス方式）ことによってデータを判別する場合を例に挙げる。
【００３９】
センスアンプユニット１４０は、複数のセンスモジュール１４１を備えている。センスモジュール１４１は、センスアンプ１４６と、フックアップ部１４２を備えている。
【００４０】
電圧センス方式において、センスアンプユニット１４０は、読み出しデータに応じてビット線の電位を変動させ、この電位変動を検出する。ビット線の電位変動は、ビット線間の容量結合に起因して、隣り合うビット線の電位に影響を与える。その結果、データの誤読み出しが発生するおそれがある。従って電圧センス方式では、データは偶数ビット線毎、及び奇数ビット線毎に読み出される。
【００４１】
図４に示すように、電圧センス方式によってセンス動作を行うセンスアンプユニット１４０は、あるビット線に対してセンス動作を行う場合、隣り合うビット線をシールドしてセンス動作が行われる。すなわち、電圧センス方式では、ビット線の電圧変動をセンスする。このように、電圧センス方式では、偶数ビット線毎、及び奇数ビット線毎にデータを読み出す。例えば、偶数ビット線からデータを読み出す際には奇数ビット線を一定電位に固定し（シールドし）、奇数ビット線からデータを読み出す際には偶数ビット線を一定電位に固定する。
【００４２】
第１実施形態では、互いに隣り合う２本のビット線を偶数ビット線ＢＬｅと奇数ビット線ＢＬｏとに分類する。そして、隣り合う偶数ビット線ＢＬｅと奇数ビット線ＢＬｏとが１つのセンスモジュール１４１を共有している。
【００４３】
第１実施形態において、偶数ビット線ＢＬｅのデータを読み出す場合には、シーケンサ１１１は、偶数ビット線ＢＬｅ用のトランジスタ１４２ａをオンし、偶数ビット線ＢＬｅをセンスアンプ１４６に接続する。この時、シーケンサ１１１は、信号ＢＩＡＳｏを“Ｈ”レベルとすることにより、接地用トランジスタ１４５ｂをオンする。これにより、奇数ビット線ＢＬｏは、接地電位ＢＬＣＲＬに接続され、奇数ビット線ＢＬｏは所定の電位（第１実施形態では接地電位）になる。
【００４４】
センスモジュール１４１は、奇数ビット線ＢＬｏを接地電位の状態にして、偶数ビット線ＢＬｅをプリチャージする。この場合、奇数ビット線ＢＬｏの電位は所定の電位に保持されたままである。そのため、偶数ビット線ＢＬｅは、奇数ビット線ＢＬｏの電位の変動に起因する影響を受けることなく、適切にプリチャージが行われる。
【００４５】
一方、奇数ビット線のデータを読み出す場合には、シーケンサ１１１は、奇数ビット線ＢＬｏ用のトランジスタ１４２ｂをオンし、奇数ビット線ＢＬｏをセンスモジュール１４３に接続する。この時、シーケンサ１１１は、信号ＢＩＡＳｅを“Ｈ”レベルとすることにより、接地用トランジスタ１４５ａをオンする。これにより、偶数ビット線ＢＬｅは、接地電位ＢＬＣＲＬに接続され、偶数ビット線ＢＬｅは所定の電位（第１実施形態では接地電位）になる。
【００４６】
センスモジュール１４１は、偶数ビット線ＢＬｅを接地電位の状態にして、奇数ビット線ＢＬｏをプリチャージする。この場合、上述したように、奇数ビット線ＢＬｏは、適切にプリチャージが行われる。
【００４７】
このように、読出し動作時に、非選択ビット線を接地状態にすることにより、非選択ビット線の信号の影響を受けることなく、正確な読み出し動作を行うことが可能となる。
【００４８】
＜１−１−４−２＞センスモジュール
図５を用いて、第１実施形態に係る半導体記憶装置１００のセンスモジュール１４１の説明をする。第１実施形態に係る半導体記憶装置１００のセンスモジュール１４１は、フックアップ部１４２、センスアンプ１４６を備える。
【００４９】
図５に示すように、センスモジュール１４１は、３つのダイナミックデータキャッシュ１４６−１〜１４６−３、テンポラリデータキャッシュ１４６−４、第１のデータキャッシュ１４６−５、及び第２のデータキャッシュ１４６−６、を有している。なお、ダイナミックデータキャッシュ１４６−１〜１４６−３及びテンポラリデータキャッシュ１４６−４は、必要に応じて設けるようにすればよい。
【００５０】
第１のデータキャッシュ１４６−５は、クロックドインバータ１４６−５ａ及び１４６−５ｃ並びにＮチャネルＭＯＳトランジスタ１４６−５ｂを有している。第２のデータキャッシュ１４６−６は、クロックドインバータ１４６−６ａ及び１４６−６ｃ並びにＮチャネルＭＯＳトランジスタ１４６−６ｂ及び１４６−６ｄを有している。第１のダイナミックデータキャッシュ１４６−１は、ＮチャネルＭＯＳトランジスタ１４６−１ａ及び１４６−１ｂを有している。第２のダイナミックデータキャッシュ１４６−２は、ＮチャネルＭＯＳトランジスタ１４６−２ａ及び１４６−２ｂを有している。第３のダイナミックデータキャッシュ１４６−３は、ＮチャネルＭＯＳトランジスタ１４６−３ａ及び１４６−３ｂを有している。また、テンポラリデータキャッシュ１４６−４は、容量１４６−４ａを有している。そして、テンポラリデータキャッシュ１４６−４のノードＴＤＣにデータが一時記憶される。なお、第１のダイナミックデータキャッシュ１４６−１、第２のダイナミックデータキャッシュ１４６−２、第３のダイナミックデータキャッシュ１４６−３、テンポラリデータキャッシュ１４６−４、第１のデータキャッシュ１４６−５、及び第２のデータキャッシュ１４６−６の回路構成は、図５に示すものに限定されるわけではなく、他の回路構成を採用することもできる。
【００５１】
そしてセンスアンプ１４６は、フックアップ部１４２によって、対応する偶数ビット線ＢＬｅ及び奇数ビット線ＢＬｏにそれぞれ接続される。トランジスタ１４２ａ及び１４２ｂのゲートには、それぞれ信号ＢＬＳｅ及びＢＬＳｏが入力される。また偶数ビット線ＢＬｅ及び奇数ビット線ＢＬｏには、ＮチャネルＭＯＳトランジスタ１４５ａ及び１４５ｂのソースが接続される。トランジスタ１４５ａ及び１４５ｂは、それぞれゲートに信号ＢＩＡＳｅ及びＢＩＡＳｏが入力され、ドレインに信号ＢＬＣＲＬが入力される。
【００５２】
このセンスモジュール１４１は、電圧センス方式用のセンスモジュールである。
【００５３】
なお、センスモジュール１４１としては種々の構成が適用出来、例えば“SEMICONDUCTOR MEMORY DEVICE”と表題され、２０１６年６月１７日に出願された米国特許出願１５／１８５，６７１に記載された構成が適用出来る。この特許出願の内容は、その全体が本願明細書において参照により援用されている。
【００５４】
＜１−１−５＞メモリセルトランジスタの閾値分布及びデータの関係
図６を用いて、メモリセルトランジスタＭＴの閾値分布及びデータの関係について説明する。
【００５５】
図６に示すように、各々のメモリセルトランジスタＭＴは、その閾値に応じて例えば２ビットのデータを保持可能である。この２ビットデータは、閾値の低いものから順番に、例えば“１１”、“０１”、“００”、“１０”である。
【００５６】
“１１”データを保持するメモリセルトランジスタＭＴの閾値は、ある一定の分布内にあり、この“１１”データに対応する閾値分布を“Ｅｒ”レベルと呼ぶ。Ｅｒレベルは、電荷蓄積層内の電荷が引き抜かれて、データが消去された状態における閾値分布であり、正または負の値である（例えば電圧ＶＡ未満）。
【００５７】
“０１”、“００”、及び“１０”も、電荷蓄積層内に電荷が注入されて、データが書き込まれた状態の閾値分布である。
【００５８】
“０１”データを保持するメモリセルトランジスタＭＴの閾値は“Ａ”レベルの分布内にあり、Ｅｒレベル内の閾値よりも高い（例えば電圧ＶＡ以上、ＶＢ未満であり、ＶＡ＜ＶＢ）。
【００５９】
“００”データを保持するメモリセルトランジスタＭＴの閾値は“Ｂ”レベルの分布内にあり、Ａレベル内の閾値よりも高い（例えば電圧ＶＢ以上、ＶＣ未満であり、ＶＢ＜ＶＣ）。
【００６０】
“１０”データを保持するメモリセルトランジスタＭＴの閾値は“Ｃ”レベルの分布内にあり、Ｂレベル内の閾値よりも高い（例えば電圧ＶＣ以上）。
【００６１】
もちろん、２ビットデータと閾値との関係はこの関係に限定されるものでは無く、例えば“１１”データが“Ｃ”レベルに対応するような場合であっても良く、両者の関係については適宜選択出来る。
【００６２】
＜１−２＞動作
＜１―２−１＞書込み動作の概要
図７を用いて、第１実施形態に係る半導体記憶装置１００の書込み動作の概要を説明する。
【００６３】
第１実施形態において、シーケンサ１１１がメモリセルアレイ１３０に書込み動作を行う際、大きく分けて２種類の書込み方法（第１書込み及び第２書込み）を行う。
【００６４】
図７を用いて、第１書込みについて説明する。ここでは、一例としてＥｒレベルからＡレベルへの書込み時に第１書込みを適用する場合について説明する。
【００６５】
第１書込みは、プログラム動作（単にプログラムとも記載する）と、プログラムベリファイ動作（単にプログラムベリファイまたはベリファイとも記載する）とを含んでいる。プログラム動作とは、選択メモリセルトランジスタＭＴの電荷蓄積層に電子を注入する動作である。プログラムベリファイ動作とは、プログラム動作が完了したか否かを確認する動作である。
【００６６】
第１書込みは、メモリセルトランジスタＭＴの閾値分布の幅を狭くするために、プログラム動作後のメモリセルトランジスタＭＴ（選択メモリセルトランジスタＭＴ）の閾値を３つのグループ（第１〜第３グループ）に分類し、この分類に応じて、プログラム動作の条件を変える動作である。
【００６７】
３つのグループは、例えば、図７に示すように、選択メモリセルトランジスタＭＴの閾値が電圧ＶＬＡ未満の第１グループＧＰ１と、選択メモリセルトランジスタＭＴの閾値が電圧ＶＬＡ以上かつ電圧ＶＡ（ＶＬＡ＜ＶＡ）未満の第２グループＧＰ２と、選択メモリセルトランジスタＭＴの閾値が電圧ＶＡ以上の第３グループＧＰ３とから構成される。
【００６８】
シーケンサ１１１は、電圧ＶＬＡを用いる第１プログラムベルファイ動作と、電圧ＶＡを用いる第２プログラムベリファイ動作と、を行うことで、メモリセルトランジスタＭＴがどのグループに属するか判定することが可能である。
【００６９】
このように、第１グループ内のメモリセルトランジスタＭＴは、その閾値が書込みの目的である電圧ＶＡから遠い位置にある書込み不足セル（これを第１セルとも記載する）である。また、第２グループ内のメモリセルトランジスタＭＴは、その閾値が書込みの目的である電圧ＶＡに近い位置にある書込み不足セル（これを第２セルとも記載する）である。さらに、第３グループ内のメモリセルトランジスタＭＴは、書込み完了セル（これを第３セルとも記載する）である。
【００７０】
このため、再書込み時に、第１グループに分類された書込み不足セルに対しては、ビット線を第１電圧に設定して通常の書込みを行い、第２グループに分類された第２セルに対しては、ビット線を第１電圧よりも高い第２電圧に設定して、通常書込みよりも弱い（閾値変動幅が少ない）書込みを行う。
【００７１】
また、第３グループに分類された書込み完了セルに対しては、ビット線を第２電圧よりも高い第３電圧に設定して書込みを禁止する。
【００７２】
ここで、第１実施形態係る半導体記憶装置の書込み動作では、図７に示すように、プログラムベリファイ時に選択ワード線に印加する選択読み出し電圧として、２つの電圧（ＶＬＡ／ＶＡ）を用いて、二回のプログラムベリファイ動作を行う。
【００７３】
また、非選択ワード線には、選択読み出し電圧よりも高い非選択読み出し電圧ＶＲＥＡＤを印加する。
【００７４】
ここでは、一例としてＥｒレベルからＡレベルへの書込み時に第１書込みを適用する場合について説明したが、これに限らない。例えば、Ｘ（Ｘは任意のレベル）レベルの書込み時に第１書込みを適用しても良い。この場合、シーケンサ１１１は、電圧ＶＬＸを用いる第１プログラムベルファイ動作と、電圧ＶＸ（ＶＬＸ＜ＶＸ）を用いる第２プログラムベリファイ動作と、を行うことで、メモリセルトランジスタＭＴがどのグループに判定することが可能である。
【００７５】
続いて、第２書込みについて説明する。
【００７６】
第２書込みは、プログラム動作を含むが、プログラムベリファイ動作は含まない。第２書込みでは、目標となるレベルに対応して、プログラム動作の回数（プログラム回数とも記載する）が設定される。例えば、ＡレベルからＢレベルに閾値を遷移させる場合は、Ａレベルが書込まれた後に複数回（例えば２回）プログラム動作を行う。また、ＡレベルからＣレベルに閾値を遷移させる場合は、Ａレベルが書込まれた後に複数回（例えば４回）プログラム動作を行う。プログラム回数は、例えばレジスタ１１２に記憶される。勿論、プログラム回数は、他の記憶領域に記憶されていても良い。
【００７７】
第２書込みでは、プログラムベリファイ動作を行わないことにより、第１書込みと比較して書込み動作の時間を短縮することが可能となる。
【００７８】
以上のように、第１実施形態では、ＥｒレベルからＡレベルへの書込みの際に第１書込みを適用する。そして、ＡレベルからＢレベルへの書込み、及びＢレベルからＣレベルへの書込みの際に第２書込みを適用する。しかしながら、第１書込み及び第２書込みの適用方法は上記に限らない。
【００７９】
＜１−２−２＞プログラム動作
図８を用いて、第１書込み及び第２書込みに含まれるプログラム動作の基本的な動作波形について説明する。
【００８０】
［時刻Ｔ０］〜［時刻Ｔ１］
時刻Ｔ０においてロウデコーダ１５０は、レジスタ１１２から与えられるロウアドレスＲＡに従って、ブロックを選択する。そしてロウデコーダ１５０は、選択セレクトゲート線ＳＧＤに、電圧ＶＳＧＤ_ＰＲＯＧ（例えば、ＶＳＳ＜ＶＳＧＤ_ＰＲＯＧ）を印加し、選択セレクトゲート線ＳＧＳ、非選択セレクトゲート線ＳＧＤ、ＳＧＳに電圧ＶＳＳを印加する。電圧ＶＳＧＤ_ＰＲＯＧは、選択トランジスタＳＴ１をオン状態にする電圧である。
【００８１】
時刻Ｔ０においてセンスアンプユニット１４０は、メモリセルトランジスタＭＴの電荷蓄積層に電子を注入する書込みビット線ＢＬ（第１グループ、第２グループに属するメモリセルトランジスタＭＴに接続されるビット線）に例えば電圧ＶＳＳを印加し、メモリセルトランジスタＭＴの電荷蓄積層への電子の注入を抑制する非書込みビット線ＢＬ（第３グループに属するメモリセルトランジスタＭＴに接続されるビット線）に正電圧ＶＩＮＨＩＢＩＴ（ＶＳＳ＜ＶＩＮＨＩＢＩＴ）を印加する。
【００８２】
なお、以下では簡単のため、第１グループ〜第３グループに属するメモリセルトランジスタＭＴに接続されるビット線を、それぞれ第１グループ〜第３グループに属するビット線と記載する。
【００８３】
［時刻Ｔ１］〜［時刻Ｔ２］
引き続き時刻Ｔ１においてロウデコーダ１５０は、選択セレクトゲート線ＳＧＤに電圧ＶＳＧＤを印加する（例えば、ＶＳＳ＜ＶＳＧＤ＜ＶＳＧＤ_ＰＲＯＧ）。
【００８４】
そして、センスアンプユニット１４０は、第２グループに属する書込みビット線ＢＬに例えば電圧ＶＢＬを印加する。
【００８５】
電圧ＶＳＧＤは、選択トランジスタＳＴ１に対して電圧ＶＳＳの転送を可能とさせるが、電圧ＶＤＤの転送は不能とさせる電圧である。従って、非書込みビット線ＢＬ（第３グループ）に対応する選択トランジスタＳＴ１は、カットオフ状態となる。
【００８６】
［時刻Ｔ２］〜［時刻Ｔ３］
次に、時刻Ｔ２においてロウデコーダ１５０は、ワード線ＷＬ（選択及び非選択）に電圧ＶＰＡＳＳを印加する。
【００８７】
［時刻Ｔ３］〜［時刻Ｔ４］
引き続きロウデコーダ１５０は、複数の選択ワード線ＷＬに印加する電圧を電圧ＶＰＡＳＳから電圧ＶＰＧＭに昇圧する。これにより、選択ワード線ＷＬに接続された選択メモリセルトランジスタＭＴに電子が注入される。電圧ＶＰＧＭは、書込むレベルや、プログラム回数に応じて適宜変更される。電圧ＶＰＧＭの具体的な変更方法は後述する。第１グループに分類されたメモリセルトランジスタＭＴに対しては、通常の書込みが行われ、第２グループに分類されたメモリセルトランジスタＭＴに対しては、通常書込みよりも弱い書込みが行われる。
【００８８】
また、第３グループに分類されたメモリセルトランジスタＭＴに電圧ＶＩＮＨＩＢＩＴが印加されることで、メモリセルトランジスタＭＴに接続される選択トランジスタＳＴ１はカットオフされる。これにより、メモリセルトランジスタＭＴのチャネルは、フローティング状態となり、ブーストされる。このため、ワード線ＷＬにプログラム電圧が印加されても、書込み対象ではないメモリセルトランジスタＭＴに対してプログラム動作は行われない。このような動作をロックアウト動作とも記載する。
【００８９】
［時刻Ｔ４］〜［時刻Ｔ５］
時刻Ｔ３〜時刻Ｔ４の期間でプログラムされた後、時刻Ｔ３〜時刻Ｔ４においてロウデコーダ１５０は、ワード線ＷＬ、選択セレクトゲート線ＳＧＤに電圧ＶＳＳを印加し、センスアンプユニット１４０は、非書込みビット線ＢＬに電圧ＶＳＳを印加する。これによりプログラム動作が終了する。
【００９０】
以下において、プログラム動作は、上述したプログラム動作を参照する。また、以上の様に図８に示した動作が、一回分のプログラム動作に相当する。複数回プログラム動作を行う場合は、図８に示す動作を複数回繰り返すことなる。
【００９１】
＜１−２−３＞プログラムベリファイ動作
図９を用いて、プログラムベリファイ動作の基本的な動作波形について説明する。
【００９２】
［時刻ＴＦ０］〜［時刻ＴＦ１］
時刻ＴＦ０においてロウデコーダ１５０は、選択セレクトゲート線ＳＧＤに電圧ＶＳＧを印加し、非選択セレクトゲート線ＳＧＤには、０Ｖまたは非選択電圧ＶＢＢ（例えば負電圧）を印加する。また、センスアンプユニット１４０のプリチャージ電源電圧ＶＰＲＥがＶＤＤとされる。
【００９３】
［時刻ＴＦ１］〜［時刻ＴＦ２］
引き続き時刻ＴＦ１において、ロウデコーダ１５０は、選択ワード線ＷＬにベリファイ電圧ＶＸ（Ｘは任意のレベル）またはＶＬＸ（ＶＬＸ＜ＶＬＸ）を印加し、非選択ワード線ＷＬに電圧ＶＲＥＡＤを印加する。
【００９４】
センスアンプユニット１４０は、読み出し対象のビット線（図９の例では偶数ビット線ＢＬｅ）を、予めプリチャージする。具体的には、信号ＢＬＰＲＥを“Ｈ（High）”レベル（Ｌレベル＜Ｈレベル）としてトランジスタＮチャネルＭＯＳ１４６ｂをオンすることによって、テンポラリデータキャッシュ１４６−４のノードＴＤＣを電圧ＶＤＤでプリチャージする。
【００９５】
［時刻ＴＦ２］〜［時刻ＴＦ３］
次に時刻ＴＦ２〜ＴＦ３において、ビット線選択信号ＢＬＳｅ及びＢＬＳｏ、並びにバイアス選択信号ＢＩＡＳｅ及びＢＩＡＳｏの設定が行われる。図９の例では偶数ビット線ＢＬｅが選択されるため、偶数ビット線選択信号ＢＬＳｅが“Ｈ”レベルとされ、奇数ビット線ＢＬｏをＢＬＣＲＬ（＝電圧ＶＳＳ）に固定するため、信号ＢＩＡＳｏが“Ｈ”レベルとされる。
【００９６】
また、信号ＢＬＣには、ビット線プリチャージ用のクランプ電圧ＶＢＬＣが印加され、これにより偶数ビット線ＢＬｅは例えば電圧ＶＢＬにプリチャージされる。
【００９７】
以上により、偶数ビット線ＢＬｅが電圧ＶＢＬに充電され、奇数ビット線ＢＬｏが電圧ＶＳＳに固定される。
【００９８】
［時刻ＴＦ３］〜［時刻ＴＦ４］
次に時刻ＴＦ３において、信号ＢＬＣが電圧ＶＳＳとされて、ビット線ＢＬｅが電気的にフローティングの状態とされる。
【００９９】
［時刻ＴＦ４］〜［時刻ＴＦ５］
次に時刻ＴＦ４において、選択されたストリングユニットのソース側の選択ゲート線ＳＧＳに電圧ＶＳＧが印加される。その他の非選択セレクトゲート線ＳＧＳには、電圧ＶＳＳまたは非選択電圧ＶＢＢが印加される。これにより、ベリファイ電圧よりメモリセルトランジスタＭＴの閾値が高ければビット線の放電はなく、低ければ読み出し電流が流れてビット線が放電される。
【０１００】
［時刻ＴＦ５］〜［時刻ＴＦ６］
次に時刻ＴＦ５〜ＴＦ６において、信号ＶＰＲＥが電圧ＶＤＤになっている状態で、信号ＢＬＰＲＥが電圧ＶＳＧとされることで、テンポラリデータキャッシュ１４６−４のノードＴＤＣが電圧ＶＤＤにプリチャージされる。
【０１０１】
［時刻ＴＦ７］〜［時刻ＴＦ８］
引き続き時刻ＴＦ７〜ＴＦ８において、信号ＢＬＣにセンス用電圧ＶＳＥＮＳＥが印加される。この時、選択ビット線ＢＬｅの電位がＶＳＥＮＳＥ−Ｖｔｈより高ければ、トランジスタ１４６ａ（信号ＢＬＣが与えられるトランジスタ）はカットオフのままであり、テンポラリデータキャッシュ１４６−４のノードＴＤＣにはＶＤＤが保持される。Ｖｔｈは、メモリセルトランジスタＭＴの閾値電圧である。一方、選択ビット線ＢＬｅの電位がＶＳＥＮＳＥ―Ｖｔｈより低ければ、トランジスタ１４６ａはオンするため、テンポラリデータキャッシュ１４６−４のノードＴＤＣは放電されてほぼビット線ＢＬｅの電位(例えば０．４Ｖ)と等しくなる。
【０１０２】
［時刻ＴＦ９］〜［時刻ＴＦ１０］
次に時刻ＴＦ９〜ＴＦ１０において、センスされたデータが第２のデータキャッシュ１４６−６に取り込まれる。具体的には、一旦、信号ＳＥＮ２及びＬＡＴ２がオフ状態とされ、信号ＥＱ２が電圧ＶＤＤとされることでノードＳＥＮ１とノードＮ２とが同電位とされる。この後、信号ＢＬＣ２の電位が電位ＶＤＤ＋Ｖｔｈとされ、テンポラリデータキャッシュ１４６−４のノードＴＤＣのデータが第２のデータキャッシュ１４６−６に転送される。この結果、元々テンポラリデータキャッシュ１４６−４のノードＴＤＣが“Ｈ”レベルの場合、第２のデータキャッシュ１４６−６のデータは“１”となる。また、テンポラリデータキャッシュ１４６−４のノードＴＤＣが“Ｌ（例えば０．４Ｖ）の場合、第２のデータキャッシュ１４６−６のデータは”０“となる。
【０１０３】
以上のようにして、偶数ビット線ＢＬｅからデータが読み出される。その後、リカバリ動作が行われ、各ノード及び信号がリセットされる。
【０１０４】
奇数ビット線ＢＬｏの読み出しも同様にして行われる。この場合には、図９の例とは逆に、信号ＢＬＳｏが“Ｈ”レベルとされ信号ＢＬＳｅが“Ｌ”レベルとされる。また、信号ＢＩＡＳｅが“Ｈ”レベルとされ、信号ＢＩＡＳｏが“Ｌ”レベルとされる。
【０１０５】
以下において、電圧センス方式のプログラムベリファイ動作は、上述したプログラムベリファイ動作を参照する。また、以上の様に図９に示した動作が、一回分のプログラムベリファイ動作に相当する。複数回プログラムベリファイ動作を行う場合は、図９に示す動作を複数回繰り返すことなる。
【０１０６】
＜１−２−４＞書込み動作の動作フロー
次に、図１０〜図１２を用いて、第１実施形態に係る半導体記憶装置１００の書込み動作の動作フローについて説明する。ここでは、図７で説明した動作をベースにした動作フローについて説明する。
【０１０７】
図１０に示すように、第１実施形態の書込み動作において半導体記憶装置１００は、第１書込み（ステップＳ１０００）を行った後に、第２書込み（ステップＳ１１００）を行う。
【０１０８】
図１１を用いて、第１書込み（ステップＳ１０００）の動作フローについて説明する。なお、プログラム動作及びプログラムベリファイ動作の詳細な動作については上述したので、以下では概略的に説明する。
【０１０９】
［ステップＳ１００１］
まず、シーケンサ１１１は、Ａレベル以上のデータが書込まれるメモリセルトランジスタＭＴに対してＡレベルプログラム動作を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭを、Ａレベル用のプログラム電圧ＶＰＧＭ（Ａ）に設定する。なお、以下では、各レベル用のプログラム電圧を表記する場合に、電圧ＶＰＧＭ（Ｘ）と表記する（Ｘは任意のレベル）。
【０１１０】
［ステップＳ１００２］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対してＡレベルのプログラム動作を行う（図８参照）。なお、以下では、簡単のために、Ｘレベルのプログラム動作を、単にＸレベルプログラム等と記載することがある。
【０１１１】
［ステップＳ１００３］
続いて、シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１グループか否かを判定する為の第１プログラムベリファイ動作（単に第１ベリファイとも記載する）を行う。この場合、シーケンサ１１１は、電圧ＶＬＡを用いてプログラムベリファイ動作を行う（図９参照）。
【０１１２】
続いて、シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第２グループか否かを判定する為の第２プログラムベリファイ動作（単に第２ベリファイとも記載する）を行う。この場合、シーケンサ１１１は、電圧ＶＡを用いてプログラムベリファイ動作を行う（図９参照）。
【０１１３】
［ステップＳ１００４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいて第２プログラムベリファイ動作がパスしたか否かを判定する。
【０１１４】
［ステップＳ１００５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、第１及び第２プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ１００４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ１００２を行う。
【０１１５】
具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させ、第１グループに属するビット線ＢＬ電圧を電圧ＶＳＳに設定し、第２グループに属するビット線ＢＬ電圧を電圧ＶＢＬに設定し、第３グループに属するビット線ＢＬ電圧を電圧ＶＩＮＨＩＢＩＴに設定する。
【０１１６】
［ステップＳ１００６］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいて第２プログラムベリファイ動作がパスしていると判定する場合（Ｓ１００５、ＹＥＳ）、Ｂレベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０１１７】
シーケンサ１１１は、Ｂレベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ１００６、ＮＯ）、書込み動作を終了する。
【０１１８】
図１２を用いて、第２書込み（ステップＳ１１００）の動作フローについて説明する。
【０１１９】
［ステップＳ１１０１］
シーケンサ１１１は、Ｂレベル以上のデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ１００６、ＹＥＳ）、シーケンサ１１１は、プログラム電圧ＶＰＧＭを、Ｂレベル用のプログラム電圧ＶＰＧＭ（Ｂ）に設定する。この電圧ＶＰＧＭ（Ｂ）は直前の電圧ＶＰＧＭ（Ａ）＋ｄＶＰＧＭ＊Ｙ（Ｙは任意の整数）よりも大きい。
【０１２０】
［ステップＳ１１０２］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対してＢレベルのプログラム動作を行う。
【０１２１】
［ステップＳ１１０３］
上述したように、第２書込みでは、プログラム動作の回数が決まっている。シーケンサ１１１は、ステップＳ１１０２の実行回数（プログラム回数）をカウントし、レジスタ１１２に記憶されている第１値（Ｂレベルプログラム用のプログラム回数）を超えたか否かを判定する。
【０１２２】
［ステップＳ１１０４］
シーケンサ１１１は、ステップＳ１１０２の実行回数が第１値を超えていないと判定する場合（ステップＳ１１０３、ＮＯ）、各種電圧を再設定し、ステップＳ１１０２を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させる。
【０１２３】
［ステップＳ１１０５］
シーケンサ１１１は、ステップＳ１１０２の実行回数が第１値を超えていると判定する場合（ステップＳ１１０３、ＹＥＳ）、Ｃレベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０１２４】
シーケンサ１１１は、Ｃレベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ１１０５、ＮＯ）、書込み動作を終了する。
【０１２５】
［ステップＳ１１０６］
シーケンサ１１１は、Ｃレベル以上のデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ１１０５、ＹＥＳ）、シーケンサ１１１は、プログラム電圧ＶＰＧＭを、Ｃレベル用のプログラム電圧ＶＰＧＭ（Ｃ）に設定する。この電圧ＶＰＧＭ（Ｃ）は直前の電圧ＶＰＧＭ（Ｂ）＋ｄＶＰＧＭ＊Ｙ（Ｙは任意の整数）よりも大きい。
【０１２６】
［ステップＳ１１０７］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対してＣレベルのプログラム動作を行う。
【０１２７】
［ステップＳ１１０８］
シーケンサ１１１は、ステップＳ１１０７の実行回数（プログラム回数）をカウントし、レジスタ１１２に記憶されている第２値（Ｃレベルプログラム用のプログラム回数）を超えたか否かを判定する。なお、第２値は、Ａレベルプログラム完了後からのプログラム回数でも良いし、Ｂレベルプログラム完了後からのプログラム回数でも良い。
【０１２８】
シーケンサ１１１は、ステップＳ１１０７の実行回数が第２値を超えていると判定する場合（ステップＳ１１０８、ＹＥＳ）、書込み動作を終了する。
【０１２９】
［ステップＳ１１０９］
シーケンサ１１１は、ステップＳ１１０７の実行回数が第２値を超えていないと判定する場合（ステップＳ１１０８、ＮＯ）、各種電圧を再設定し、ステップＳ１１０７を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させる。
【０１３０】
なお、図１０〜図１２の動作は、図７を用いて説明した動作をベースにしている。そのため、第１書込み及び第２書込みの適用方法が変わる場合、第１実施形態に係る半導体記憶装置１００の書込み動作の動作フローも第１書込み及び第２書込みの適用方法に応じて変わる。
【０１３１】
＜１−２−５＞パルスの具体例
続いて、図１３を用いて、上述したメモリセルトランジスタＭＴに対して、第１実施形態の書込み動作を適用する際の具体的なパルス例について説明する。図１３では、簡単のため、選択ワード線ＷＬ、ビット線ＢＬ、ＢＬＣ２の波形のみを図示している。
【０１３２】
簡単のため図１３では、プログラム動作に関しては、図８の時刻Ｔ３〜時刻Ｔ４までの間に選択ワード線ＷＬに印加される電圧ＶＰＧＭをパルスとして図示している。プログラムベリファイ動作に関しては、図９の時刻ＴＦ１〜時刻ＴＦ１０までの間に選択ワード線ＷＬに印加される電圧ＶＡ／ＶＬＡ及びＢＬＣ２に印加される電圧ＶＤＤ＋Ｖｔｈをパルスとして図示している。換言すると、プログラム動作時における“パルス”とは、図８の時刻Ｔ３〜時刻Ｔ４までの間に選択ワード線ＷＬに印加される電圧ＶＰＧＭを意味する。同様に、プログラムベリファイ動作時における“パルス”とは、図９の時刻ＴＦ１〜時刻ＴＦ１０までの間に選択ワード線ＷＬに印加される電圧ＶＸ及びＢＬＣ２に印加される電圧ＶＤＤ＋Ｖｔｈを意味する。
【０１３３】
また、図１３の下部には、動作状態を示している。図中のＰはプログラム動作を意味し、Ｖはプログラムベリファイ動作を意味する。
【０１３４】
シーケンサ１１１は、プログラム動作を実行するたびに、電圧ＶＰＧＭ（Ｘ）を電圧ｄＶＰＧＭずつインクリメントする。
【０１３５】
図１３に示すように、シーケンサ１１１は、まず第１書込みを行う。シーケンサ１１１は、電圧ＶＰＧＭ（Ａ）を用いて、書込み対象のメモリセルトランジスタＭＴに対してプログラム動作を実行する。この際、シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴに係るビット線ＢＬに電圧ＶＳＳを供給する。そして、書込み対象ではないメモリセルトランジスタＭＴに係るビット線ＢＬに電圧ＶＩＮＨＩＢＩＴを供給する。これにより、書込み対象のメモリセルトランジスタＭＴのチャネルは電圧ＶＳＳとなり、ワード線ＷＬにプログラム電圧ＶＰＧＭ（Ａ）が印加されることでメモリセルトランジスタＭＴに対してプログラムが行われる。また、書込み対象ではないメモリセルトランジスタＭＴに電圧ＶＩＮＨＩＢＩＴが印加されることで、メモリセルトランジスタＭＴに接続される選択トランジスタＳＴ１はカットオフされる。これにより、メモリセルトランジスタＭＴのチャネルは、フローティング状態となり、ブーストされる。このため、ワード線ＷＬにプログラム電圧が印加されても、書込み対象ではないメモリセルトランジスタＭＴに対してプログラム動作は行われない。
【０１３６】
次に、シーケンサ１１１は、第１プログラムベリファイ動作を実行する。より具体的には、シーケンサ１１１はワード線ＷＬにベリファイ電圧ＶＬＡを印加することで、メモリセルトランジスタＭＴに対してプログラムベリファイ動作を実行する。
【０１３７】
続いて、シーケンサ１１１は、第２プログラムベリファイ動作を実行する。より具体的には、シーケンサ１１１はワード線ＷＬにベリファイ電圧ＶＡを印加することで、メモリセルトランジスタＭＴに対してプログラムベリファイ動作を実行する。
【０１３８】
シーケンサ１１１は、プログラム動作を行う際、プログラムベリファイの結果に基づき、第１グループに係るビット線ＢＬに電圧ＶＳＳを印加し、第２グループに係るビット線ＢＬに電圧ＶＢＬを印加し、第３グループに係るビット線ＢＬに電圧ＶＩＮＨＩＢＩＴを印加する。そして、電圧ＶＰＧＭ（Ａ）＋ｄＶＰＧＭを用いて、書込み対象のメモリセルトランジスタＭＴに対してプログラム動作を実行する。これにより、第１、及び第２グループに属するメモリセルトランジスタＭＴに対してプログラムが行われる。
【０１３９】
なお、第３グループのメモリセルトランジスタＭＴに電圧ＶＩＮＨＩＢＩＴが印加されることで、メモリセルトランジスタＭＴに接続される選択トランジスタＳＴ１はカットオフされる。これにより、メモリセルトランジスタＭＴのチャネルは、フローティング状態となり、ブーストされる。このため、ワード線ＷＬにプログラム電圧が印加されても、第３グループに属するメモリセルトランジスタＭＴに対してプログラム動作は行われない。
【０１４０】
書込み対象のメモリセルトランジスタＭＴが第２プログラムベリファイ動作をパスするまで、プログラム動作及びプログラムベリファイ動作が繰り返される。書込み対象の全てのメモリセルトランジスタＭＴが第２プログラムベリファイ動作をパスする（第１書込みが完了する）と、シーケンサ１１１は、Ｂレベル及びＣレベルに関する第２書込みを開始する。
【０１４１】
シーケンサ１１１は、電圧ＶＰＧＭ（Ｂ）を用いて、書込み対象のメモリセルトランジスタＭＴに対してプログラム動作を実行する。そして、プログラム動作を繰り返す度に電圧ＶＰＧＭ（Ｂ）に電圧ｄＶＰＧＭを加え、Ｂレベルに関するプログラム回数が第１値を超えるまで、プログラム動作を繰り返す。
【０１４２】
Ｂレベルに関するプログラム動作を終了すると、シーケンサ１１１は、電圧ＶＰＧＭ（Ｃ）を用いて、書込み対象のメモリセルトランジスタＭＴに対してプログラム動作を実行する。そして、プログラム動作を繰り返す度に電圧ＶＰＧＭ（Ｃ）に電圧ｄＶＰＧＭを加え、Ｃレベルに関するプログラム回数が第１値を超えるまで、プログラム動作を繰り返す。
【０１４３】
以上のようにして第２書込みが終了する。
【０１４４】
なお、図１３の動作は、図７を用いて説明した動作をベースにしている。そのため、第１書込み及び第２書込みの適用方法が変わる場合、第１実施形態に係る半導体記憶装置１００の書込み動作のパルスも第１書込み及び第２書込みの適用方法に応じて変わる。
【０１４５】
＜１−３＞効果
上述した実施形態によれば、書込み状態のメモリセルトランジスタＭＴの閾値分布の幅を狭くする第１書込みと、プログラムベリファイ動作を行わない第２書込みと、を用いてデータの書込み動作を行っている。
【０１４６】
これにより、書込み状態のメモリセルトランジスタＭＴの閾値分布の幅を狭めつつ、書込みを高速に行う事が可能となる。
【０１４７】
以下に、第１実施形態の効果を説明するために、比較例について説明する。
【０１４８】
図１４は、プログラム回数と、メモリセルトランジスタＭＴの閾値の変動との関係を示している。図１４に示すように、メモリセルトランジスタＭＴの書込み特性はそれぞれ異なることがある。
【０１４９】
図１４に示すように、例えば、メモリセルトランジスタＭＴの特性は、Ａレベルを超えてから２回プログラム動作を行うと、Ｂレベルの範囲に閾値が遷移し、Ａレベルを超えてから４回プログラム動作を行うと、Ｃレベルの範囲に閾値が遷移することがある。
【０１５０】
しかし、図１５に示すように、閾値分布が広がり、閾値分布が重なる可能性がある。
【０１５１】
そこで、上述した実施形態では、図１６に示すように、Ａレベルの書込みに対して、メモリセルトランジスタＭＴの閾値分布の幅を狭くする第１書込み動作を行っている。Ａレベルの閾値分布の幅を狭めてから第２書込みを行うため、Ｂレベル及びＣレベルの閾値分布を狭める事が可能となる。
【０１５２】
例えば、上述したように、複数のメモリセルトランジスタＭＴの特性（図中の傾き）が同じにならない場合でも、Ａレベルの閾値分布の幅を狭めているので、図１７に示すように、各レベルの閾値が重なることを抑制することができる。
【０１５３】
以上の様に、上述した実施形態によれば、各レベルの閾値分布の重なりを抑制しつつ、Ｂレベル及びＣレベルに関するプログラムベリファイ動作を削減できる。そのため、上述した実施形態に係る半導体記憶装置１００は、書込み動作を高速にしつつ、かつ、各レベルの閾値分布を適切な分布にすることができる。
【０１５４】
＜１―４＞第１実施形態の変形例
第１実施形態の変形例について説明する。第１実施形態の変形例では、センスモジュールとして、電流検知タイプのセンスモジュールを採用した半導体記憶装置に、第１実施形態の書込み動作を適用する場合について説明する。尚、第１実施形態の変形例に係る半導体記憶装置１００の基本的な構成及び基本的な動作は、上述した第１実施形態に係る半導体記憶装置１００と同様である。従って、上述した第１実施形態で説明した事項及び上述した第１実施形態から容易に類推可能な事項についての説明は省略する。
【０１５５】
＜１−４−１＞センスアンプユニット
＜１−４−１−１＞センスアンプユニットの概要
次に、図１８を用いて、第１実施形態の変形例に係るセンスアンプユニット１４０の概要について説明する。第１実施形態の変形例で説明するセンスアンプユニット１４０として、以下ではメモリセルアレイ１３０内の全てのビット線を同時に駆動してページデータ（ページとは例えば同一のワード線に接続された複数のメモリセルトランジスタＭＴによって構成される）を読み出す電流をセンスする（電流センス方式）ことによってデータを判別する場合を例に説明する。
【０１５６】
第１実施形態の変形例に係る半導体記憶装置１００は、選択ワード線に印加する選択読み出し電圧を一定値とし、選択メモリセルトランジスタＭＴに流れるセル電流の大きさに基づいて、選択メモリセルトランジスタＭＴの閾値を分類する。
【０１５７】
センスアンプユニット１４０は、複数のセンスモジュール１４３を備えている。そして、複数のセンスモジュール１４３はそれぞれトランジスタ３１を介してビット線ＢＬに接続される。
【０１５８】
電流センス方式において、センスアンプユニット１４０は、電圧センス方式と異なり、ット線間の容量結合を考慮しなくて良い。そのため、電圧センス方式では、データは偶数ビット線毎、及び奇数ビット線毎に読み出されたが、電流センス方式では、全てのビット線を同時に駆動することが可能となる。
【０１５９】
＜１−４−１−２＞センスモジュール
図１９に示すように、センスモジュール１４３は、クランプ回路３２、プリチャージ回路３３、判別回路３４及びラッチ回路３５Ａ、３５Ｂから構成される。
【０１６０】
クランプ回路３２は、ＮチャネルＭＯＳトランジスタ３６、３７から構成される。プリチャージ回路３３は、ＰチャネルＭＯＳトランジスタ３８から構成される。判別回路３４は、ＰチャネルＭＯＳトランジスタ４０、４１、ＮチャネルＭＯＳトランジスタ４２、５２、５３及びキャパシタ３９から構成される。
【０１６１】
ラッチ回路３５Ａは、フリップフロップ接続された２つのインバータ、即ち、ＰチャネルＭＯＳトランジスタ４３Ａ、４４Ａ及びＮチャネルＭＯＳトランジスタ４５Ａ、４６Ａを有する。ＰチャネルＭＯＳトランジスタ４７Ａ及びＮチャネルＭＯＳトランジスタ４８Ａは、ラッチ回路３５Ａの活性化／非活性化を制御するために使用される。
【０１６２】
センスノードＳＥＮの電位は、ＮチャネルＭＯＳトランジスタ５２を介してラッチ回路３５Ａにラッチされる。ラッチ回路３５Ａにラッチされたデータは、センスノードＳＥＮをビット線から強制的に切断するロックアウト動作に使用しない。
【０１６３】
ラッチ回路３５Ｂは、フリップフロップ接続された２つのインバータ、即ち、ＰチャネルＭＯＳトランジスタ４３Ｂ、４４Ｂ及びＮチャネルＭＯＳトランジスタ４５Ｂ、４６Ｂを有する。ＰチャネルＭＯＳトランジスタ４７Ｂ及びＮチャネルＭＯＳトランジスタ４８Ｂは、ラッチ回路３５Ｂの活性化／非活性化を制御するために使用される。
【０１６４】
センスノードＳＥＮの電位は、ＮチャネルＭＯＳトランジスタ５３を介してラッチ回路３５Ｂにラッチされる。ラッチ回路３５Ｂにラッチされたデータは、センスノードＳＥＮをビット線から強制的に切断するロックアウト動作に使用する。
【０１６５】
センスモジュール１４３とビット線ＢＬとの間には、クランプ回路としてのＮチャネルＭＯＳトランジスタ３１が接続される。ＮＡＮＤセルユニット２１は、ビット線ＢＬに接続される。ＮチャネルＭＯＳトランジスタ４９は、ビット線ＢＬの電荷を放電するために使用される。ＮチャネルＭＯＳトランジスタ４９のオン／オフは、ラッチ回路３５Ｂにラッチされたデータに基づいて決定される。
【０１６６】
このセンスモジュール１４３は、電流センス方式用のセンスモジュールである。
【０１６７】
なお、センスモジュール１４３としては種々の構成が適用出来、例えば“NONVOLATILE SEMICONDUCTOR MEMORY”と表題され、２００９年９月２１日に出願された米国特許出願１２／５６３，２９６に記載された構成が適用出来る。この特許出願の内容は、その全体が本願明細書において参照により援用されている。
【０１６８】
＜１−４−２＞動作
＜１−４−２―１＞プログラムベリファイ動作の原理
図２０は、第１実施形態の変形例に係る半導体記憶装置１００のプログラムベリファイ動作の原理を示している。
【０１６９】
図７を用いて説明したように、第１の実施形態では、２回のプログラムベリファイ動作により、書込み対象である選択メモリセルトランジスタＭＴの３つの閾値状態（第１〜第３グループ）を識別していた。しかし、第１実施形態の変形例では、一回のプログラムベリファイ動作により、図７と同様に書込み対象である選択メモリセルトランジスタＭＴの３つの閾値状態（第１〜第３グループ）を識別することができる。
【０１７０】
具体的には、選択ワード線に印加する選択読み出し電圧を一定値（例えば、ＶＸ）とし、この時、選択メモリセルトランジスタＭＴに流れるセル電流Ｉｃｅｌｌが２つの値Ｚ１、Ｚ２により区分される３つの領域（領域１／領域２／領域３）のいずれに属するかを判定することにより、選択メモリセルトランジスタＭＴの閾値を、第１〜第３グループのうちの一つに分類する。
【０１７１】
例えば、選択読み出し電圧がＶ１のとき、第１グループ内のメモリセルトランジスタＭＴ（第１セル）に流れるセル電流は、Ｉｃｅｌｌ１となり、第２グループ内のメモリセルトランジスタＭＴ（第２セル）に流れるセル電流は、Ｉｃｅｌｌ２となり、第３グループ内のメモリセルトランジスタＭＴ（第３セル）に流れるセル電流は、Ｉｃｅｌｌ３となる。
【０１７２】
但し、Ｉｃｅｌｌ１＞Ｉｃｅｌｌ２＞Ｉｃｅｌｌ３である。
【０１７３】
上述した第１実施形態における第１書込みでは、選択読み出し電圧として２つの値を使用し、それぞれの値について、選択メモリセルトランジスタＭＴに流れるセル電流の有無を検出する。これは、第１実施形態における第１書込みでは、セル電流の有無を検出していたため、二回のプログラムベリファイ動作が必要であった、と言い換えることができる。
【０１７４】
そこで、第１実施形態の変形例では、セル電流の有無ではなく、セル電流の大きさを判定することにより、一回のプログラムベリファイ動作で、選択メモリセルトランジスタＭＴの閾値を３つのグループに分類する。
【０１７５】
選択メモリセルトランジスタＭＴに流れるセル電流の大きさ判定は、例えば、予めセンスモジュールのセンスノードを充電しておき、この後、選択メモリセルトランジスタＭＴに流れるセル電流によりセンスノードの電荷を放電し始める放電開始時から第一期間が経過した第一時点（第１タイミング）でのセンスノードの電位と、放電開始時から第一期間よりも長い第二期間が経過した第二時点（第２タイミング）でのセンスノードの電位とに基づいて行うことができる。
【０１７６】
第１実施形態の変形例によれば、一回のプログラムベリファイ動作により選択メモリセルトランジスタＭＴの閾値を分類できるため、二回のプログラムベリファイ動作により選択メモリセルトランジスタＭＴの閾値を分類する場合に比べて、選択ワード線の電位を変えるためのセットアップ期間や、ロックアウト動作後のビット線のリカバリ期間などが不要となる。
【０１７７】
従って、プログラムベリファイ動作時間の短縮による書込み動作の高速化を実現できる。
【０１７８】
＜１−４−２―２＞プログラムベリファイ動作
図２１を用いて、第１実施形態の変形例に係る半導体記憶装置１００のプログラムベリファイ動作の基本的な動作波形について説明する。
【０１７９】
［時刻ＴＣ０］〜［時刻ＴＣ１］
時刻ＴＣ０においてロウデコーダ１５０は、非選択ワード線に非選択読み出し電圧ＶＲＥＡＤを印加する。
【０１８０】
［時刻ＴＣ１］〜［時刻ＴＣ２］
時刻ＴＣ１においてロウデコーダ１５０は、選択ワード線に、選択読み出し電圧としてＶＸ（ＶＸ＜ＶＲＥＡＤ）を印加する。
【０１８１】
シーケンサ１１１は、センスノードＳＥＮをプリチャージ電圧ＶＰＲＥに充電し、かつ、ビット線ＢＬを一定電位（例えば、ＶＢＬ）に固定した状態で、制御信号ＦＬＴを“Ｈ”レベルにすると、センスノードＳＥＮの電位は、選択メモリセルトランジスタＭＴの閾値に応じて以下のようになる。
【０１８２】
即ち、選択メモリセルトランジスタＭＴの閾値が選択読み出し電圧よりも低いときは、選択メモリセルトランジスタＭＴに大きなセル電流が流れ、センスノードＳＥＮの電位が低下する速度は速くなる。また、選択メモリセルトランジスタＭＴの閾値が選択読み出し電圧よりも高いときは、選択メモリセルトランジスタＭＴに流れるセル電流は、小さいか、又は、選択メモリセルトランジスタＭＴにセル電流が流れず、センスノードＳＥＮの電位が低下する速度は遅くなる。
【０１８３】
［時刻ＴＣ２］〜［時刻ＴＣ４］
そこで、シーケンサ１１１は、制御信号ＬＳＡを“Ｈ”レベルにし、図１９のＮチャネルＭＯＳトランジスタ５２をオンにする。また、センスノードＳＥＮの電荷を放電し始める放電開始時ＴＣ２から第一期間が経過した第一時点ＴＣ３、即ち、制御信号ＦＬＴを“Ｈ”レベルにしてから第一期間が経過した時点で、制御信号ＳＴＢを“Ｌ”レベルにすると、センスノードＳＥＮの電位が図１９のラッチ回路３５Ａにラッチされる。
【０１８４】
例えば、選択メモリセルトランジスタＭＴが第１セル（第１グループ）であるときは、その閾値が選択読み出し電圧よりも低く、かつ、両者の差が大きいため、選択メモリセルトランジスタＭＴに大きなセル電流が流れる。このため、センスノードＳＥＮの電位は、急速に低下し、電位降下量は、時刻ＴＣ３に達する前にｄＶに達し、時刻ＴＣ３において、センスノードＳＥＮが“Ｌ”レベルになる。
【０１８５】
従って、ラッチ回路３５Ａの入力ノードＩＮＶＡは、“Ｈ”レベルになり、ラッチ回路３５Ａの出力ノードＬＡＴＡは、“Ｌ”レベルになる。但し、この時点で、センスノードＳＥＮをビット線ＢＬから強制的に切断し、ビット線ＢＬを放電するロックアウト動作は行わない。
【０１８６】
また、選択メモリセルトランジスタＭＴが第２セル（第２グループ）であるときは、その閾値が選択読み出し電圧よりも低く、かつ、両者の差が小さいため、選択メモリセルトランジスタＭＴに小さなセル電流が流れる。このため、センスノードＳＥＮの電位は、緩やかに低下し、電位降下量は、時刻ＴＣ３に達する前にｄＶに達せず、時刻ＴＣ３において、センスノードＳＥＮは、“Ｈ”レベルのままとなる。
【０１８７】
従って、ラッチ回路３５Ａの入力ノードＩＮＶＡは、“Ｌ”レベルになり、ラッチ回路３５Ａの出力ノードＬＡＴＡは、“Ｈ”レベルになる。
【０１８８】
さらに、選択メモリセルトランジスタＭＴが第３セル（第３グループ）であるときは、その閾値が選択読み出し電圧よりも高いため、選択メモリセルトランジスタＭＴに流れるセル電流は、非常に小さいか、又は、選択メモリセルトランジスタＭＴにセル電流が流れない。このため、センスノードＳＥＮの電位は、非常に緩やかに低下し、電位降下量は、時刻ＴＣ３に達する前にｄＶに達せず、時刻ＴＣ３において、センスノードＳＥＮは、“Ｈ”レベルのままとなる。
【０１８９】
従って、ラッチ回路３５Ａの入力ノードＩＮＶＡは、“Ｌ”レベルになり、ラッチ回路３５Ａの出力ノードＬＡＴＡは、“Ｈ”レベルになる。
【０１９０】
このようにして、まず、書込み不足セル（第１グループ）の選別を行う。
【０１９１】
この後、制御信号ＬＳＡを“Ｌ”レベルにし、図１９のＮチャネルＭＯＳトランジスタ５２をオフにする。
【０１９２】
［時刻ＴＣ５］〜［時刻ＴＣ７］
次に、シーケンサ１１１は、制御信号ＬＳＢを“Ｈ”レベルにし、図１９のＮチャネルＭＯＳトランジスタ５３をオンにする。また、センスノードＳＥＮの電荷を放電し始める放電開始時ＴＣ２から第一期間よりも長い第二期間が経過した第二時点ＴＣ６、即ち、制御信号ＦＬＴを“Ｈ”レベルにしてから第二期間が経過した時点で、制御信号ＳＴＢを“Ｌ”レベルにすると、センスノードＳＥＮの電位が図１９のラッチ回路３５Ｂにラッチされる。
【０１９３】
例えば、選択メモリセルトランジスタＭＴが第１セル（第１グループ）であるときは、センスノードＳＥＮの電位は、急速に低下し、既に、電位降下量は、時刻ＴＣ３に達する前にｄＶに達しているため、時刻ＴＣ６においても、センスノードＳＥＮは“Ｌ”レベルである。
【０１９４】
従って、ラッチ回路３５Ｂの入力ノードＩＮＶＢは、“Ｈ”レベルになり、ラッチ回路３５Ｂの出力ノードＬＡＴＢは、“Ｌ”レベルになる。
【０１９５】
この後、ＮチャネルＭＯＳトランジスタ３６がオフになり、センスノードＳＥＮがビット線ＢＬから切断される（ロックアウト動作）。また、ＮチャネルＭＯＳトランジスタ４９がオンになり、ビット線ＢＬが放電される。
【０１９６】
また、選択メモリセルトランジスタＭＴが第２セル（第２グループ）であるときは、その閾値が選択読み出し電圧よりも低く、かつ、両者の差が小さいため、選択メモリセルトランジスタＭＴに小さなセル電流が流れる。このため、センスノードＳＥＮの電位は、緩やかに低下し、電位降下量は、時刻ＴＣ６に達する前にｄＶに達し、時刻ＴＣ６において、センスノードＳＥＮは、“Ｌ”レベルになる。
【０１９７】
従って、ラッチ回路３５Ｂの入力ノードＩＮＶＢは、“Ｈ”レベルになり、ラッチ回路３５Ｂの出力ノードＬＡＴＢは、“Ｌ”レベルになる。
【０１９８】
この後、ＮチャネルＭＯＳトランジスタ３６がオフになり、センスノードＳＥＮがビット線ＢＬから切断される（ロックアウト動作）。また、ＮチャネルＭＯＳトランジスタ４９がオンになり、ビット線ＢＬが放電される。
【０１９９】
さらに、選択メモリセルトランジスタＭＴが第３セル（第３グループ）であるときは、その閾値が選択読み出し電圧よりも高いため、選択メモリセルトランジスタＭＴに流れるセル電流は、非常に小さいか、又は、選択メモリセルトランジスタＭＴにセル電流が流れない。このため、センスノードＳＥＮの電位は、非常に緩やかに低下し、電位降下量は、時刻ＴＣ６に達する前にｄＶに達せず、時刻ＴＣ６においても、センスノードＳＥＮは、“Ｈ”レベルのままとなる。
【０２００】
従って、ラッチ回路３５Ｂの入力ノードＩＮＶＢは、“Ｌ”レベルになり、ラッチ回路３５Ｂの出力ノードＬＡＴＢは、“Ｈ”レベルになる。
【０２０１】
このようにして、第２セル（第２グループ）及び第３セル（第３グループ）の選別を行う。
【０２０２】
図２２は、２つのラッチ回路にラッチされるデータＩＮＶＡ，ＩＮＶＢと３つのグループとの関係を示している。
【０２０３】
図２２に示すように、ＩＮＶＡ及びＩＮＶＢが共に“Ｈ”レベルのときは、選択メモリセルトランジスタＭＴは、第１グループ（図２０の領域１）に属すると判定され、第１セルと認識される。
【０２０４】
図２２に示すように、ＩＮＶＡが“Ｌ”レベル、ＩＮＶＢが“Ｈ”レベルのときは、選択メモリセルトランジスタＭＴは、第２グループ（図２０の領域２）に属すると判定され、第２セルと認識される。
【０２０５】
図２２に示すように、ＩＮＶＡ及びＩＮＶＢが共に“Ｌ”レベルのときは、選択メモリセルトランジスタＭＴは、第３グループ（図２０の領域３）に属すると判定され、第１セルと認識される。
【０２０６】
以上、説明したように、第一実施例によれば、選択メモリセルトランジスタＭＴに流れるセンス電流の大きさの違いを利用することにより、一回のプログラムベリファイ動作により選択メモリセルトランジスタＭＴの閾値を３つのグループに分類できる。
【０２０７】
以下において、電流センス方式のプログラムベリファイ動作は、上述したプログラムベリファイ動作を参照する。
【０２０８】
＜１−４−２―３＞書込み動作の動作フロー
尚、上述したセンスモジュール及びプログラムベリファイ動作は、図１０〜図１２で説明した動作フローに適用可能である。簡単のため、ここでは第１実施形態で説明した内容と異なる図１１のステップＳ１００３〜Ｓ１００５について説明する。
【０２０９】
［ステップＳ１００３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作（単にベリファイとも記載する）を行う。この場合、シーケンサ１１１は、電圧ＶＡを用いてプログラムベリファイ動作を行う。
【０２１０】
［ステップＳ１００４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０２１１】
［ステップＳ１００５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ１００４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ１００２を行う。
【０２１２】
なお、図１０〜図１２の動作は、図７を用いて説明した動作をベースにしている。そのため、第１書込み及び第２書込みの適用方法が変わる場合、第１実施形態の変形例に係る半導体記憶装置１００の書込み動作の動作フローも第１書込み及び第２書込みの適用方法に応じて変わる。
【０２１３】
＜１−４−２―４＞パルスの具体例
続いて、図２３を用いて、第１実施形態の書込み動作に、第１実施形態の変形例のセンスモジュールを適用する際の具体的なパルス例について説明する。図２３では、簡単のため、選択ワード線ＷＬ、ビット線ＢＬ、ＳＴＢの波形のみを図示している。
【０２１４】
簡単のため図２３では、プログラム動作に関しては、図８の時刻Ｔ３〜時刻Ｔ４までの間に選択ワード線ＷＬに印加される電圧ＶＰＧＭをパルスとして図示している。プログラムベリファイ動作に関しては、図２１の時刻ＴＣ１〜時刻ＴＣ７までの間に選択ワード線ＷＬに印加される電圧ＶＡ及びＳＴＢの信号をパルスとして図示している。換言すると、プログラム動作時における“パルス”とは、図８の時刻Ｔ３〜時刻Ｔ４までの間に選択ワード線ＷＬに印加される電圧ＶＰＧＭを意味する。同様に、プログラムベリファイ動作時における“パルス”とは、図２１の時刻ＴＣ１〜時刻ＴＣ７までの間に選択ワード線ＷＬに印加される電圧ＶＸ（Ｘは任意のレベル）及びＳＴＢの“Ｌ”レベル期間を意味する。
【０２１５】
また、図２３の下部には、動作状態を示している。図中のＰはプログラム動作を意味し、Ｖはプログラムベリファイ動作を意味する。
【０２１６】
シーケンサ１１１は、プログラム動作を実行するたびに、電圧ＶＰＧＭ（Ｘ）を電圧ｄＶＰＧＭずつインクリメントする。
【０２１７】
なお、プログラム時の動作については、図１３で説明した方法と同様なので、説明を割愛する。
【０２１８】
シーケンサ１１１は、まず第１書込みを行う。シーケンサ１１１は、メモリセルトランジスタＭＴに対してプログラム動作を行った後、プログラムベリファイ動作を実行する。より具体的には、シーケンサ１１１はワード線ＷＬにベリファイ電圧ＶＡを印加し、ＳＴＢを２回立ち下げることで、メモリセルトランジスタＭＴに対してプログラムベリファイ動作を実行する。
【０２１９】
シーケンサ１１１は、プログラム動作を行う際、プログラムベリファイの結果に基づき、第１グループに係るビット線ＢＬに電圧ＶＳＳを印加し、第２グループに係るビット線ＢＬに電圧ＶＢＬを印加し、第３グループに係るビット線ＢＬの電圧をＶＩＮＨＩＢＩＴにする。そして、シーケンサ１１１は、図１３で説明した方法と同様の方法にて書込み対象のメモリセルトランジスタＭＴに対して書込み動作を実行する。
【０２２０】
なお、第２書込みについては、図１３で説明した動作と同様なので、説明を割愛する。
【０２２１】
以上のように、第１実施形態では、第１及び第２プログラムベリファイ動作毎に、シーケンサ１１１は選択ワード線に印加する電圧を変えていた。しかし、第１実施形態の変形例では、選択ワード線に印加する電圧を変えずに、１回のプログラムベリファイ動作中に、２回ＳＴＢを立ち下げている。
【０２２２】
なお、図２３の動作は、図７を用いて説明した動作をベースにしている。そのため、第１書込み及び第２書込みの適用方法が変わる場合、第１実施形態の変形例に係る半導体記憶装置１００の書込み動作のパルスも第１書込み及び第２書込みの適用方法に応じて変わる。
【０２２３】
＜１−４−３＞効果
以上のように、第１実施形態の変形例で説明した電流センス方式を、第１実施形態で説明した書込み方法に適用することが可能である。これにより、電流センス方式を採用した半導体記憶装置１００においても、第１実施形態で説明した効果と同様の効果を得ることが可能となる。
【０２２４】
＜２＞第２実施形態
第２実施形態について説明する。第２実施形態では、メモリセルトランジスタが８値のデータを記憶し、センスモジュールとして、電圧検知タイプのセンスモジュール（第１実施形態で説明したセンスモジュール）を採用した半導体記憶装置に、第１実施形態の書込み動作を適用する場合について説明する。尚、第２実施形態に係る半導体記憶装置１００の基本的な構成及び基本的な動作は、上述した第１実施形態に係る半導体記憶装置１００と同様である。従って、上述した第１実施形態で説明した事項及び上述した第１実施形態から容易に類推可能な事項についての説明は省略する。
【０２２５】
＜２−１＞構成
＜２−１−１＞センスアンプユニットの概要
第２実施形態に係るセンスアンプユニット１４０の構成及び動作は、第１実施形態で説明したセンスアンプユニット１４０と同じである。
【０２２６】
＜２−１−２＞メモリセルトランジスタの閾値分布及びデータの関係
図２４を用いて、メモリセルトランジスタの閾値分布及びデータの関係について説明する。
【０２２７】
図２４に示すように、各々のメモリセルトランジスタＭＴは、その閾値に応じて例えば３ビットのデータを保持可能である。この３ビットデータは、閾値の低いものから順番に、例えば“１１１”、“０１１”、“００１”、“０００”、“０１０”、“１１０”、“１００”、“１０１”である。
【０２２８】
“１１１”データを保持するメモリセルトランジスタＭＴの閾値は、ある一定の分布内にあり、この“１１１”データに対応する閾値分布を“Ｅｒ”レベルと呼ぶ。Ｅｒレベルは、電荷蓄積層内の電荷が引き抜かれて、データが消去された状態における閾値分布であり、正または負の値である（例えば電圧ＶＡ未満）。
【０２２９】
“０１１”、“００１”、“０００”、“０１０”、“１１０”、“１００”、“１０１”は、電荷蓄積層内に電荷が注入されて、データが書き込まれた状態の閾値分布である。
【０２３０】
“０１１”データを保持するメモリセルトランジスタＭＴの閾値は“Ａ”レベルの分布内にあり、Ｅｒレベル内の閾値よりも高い（例えば電圧ＶＡ以上、ＶＢ未満であり、ＶＡ＜ＶＢ）。
【０２３１】
“００１”データを保持するメモリセルトランジスタＭＴの閾値は“Ｂ”レベルの分布内にあり、Ａレベル内の閾値よりも高い（例えば電圧ＶＢ以上、ＶＣ未満であり、ＶＢ＜ＶＣ）。
【０２３２】
“０００”データを保持するメモリセルトランジスタＭＴの閾値は“Ｃ”レベルの分布内にあり、Ｂレベル内の閾値よりも高い（例えば電圧ＶＣ以上、ＶＤ未満であり、ＶＣ＜ＶＤ）。
【０２３３】
“０１０”データを保持するメモリセルトランジスタＭＴの閾値は“Ｄ”レベルの分布内にあり、Ｃレベル内の閾値よりも高い（例えば電圧ＶＤ以上、ＶＥ未満であり、ＶＤ＜ＶＥ）。
【０２３４】
“１１０”データを保持するメモリセルトランジスタＭＴの閾値は“Ｅ”レベルの分布内にあり、Ｄレベル内の閾値よりも高い（例えば電圧ＶＥ以上、ＶＦ未満であり、ＶＥ＜ＶＦ）。
【０２３５】
“１００”データを保持するメモリセルトランジスタＭＴの閾値は“Ｆ”レベルの分布内にあり、Ｅレベル内の閾値よりも高い（例えば電圧ＶＦ以上、ＶＧ未満であり、ＶＦ＜ＶＧ以上）。
【０２３６】
“１０１”データを保持するメモリセルトランジスタＭＴの閾値は“Ｇ”レベルの分布内にあり、Ｆレベル内の閾値よりも高い（例えば電圧ＶＧ以上）。
【０２３７】
もちろん、３ビットデータと閾値との関係はこの関係に限定されるものでは無く、例えば“１１１”データが“Ｇ”レベルに対応するような場合であっても良く、両者の関係については適宜選択出来る。
【０２３８】
＜２−２＞動作
＜２―２−１＞書込み動作の概要
図２５を用いて、第２実施形態に係る半導体記憶装置の書込み動作の概要について説明する。
【０２３９】
第２実施形態において、シーケンサ１１１がメモリセルアレイ１３０に書込み動作を行う際、第１実施形態と同様に大きく分けて２種類の書込み方法（第１書込み及び第２書込み）を行う。
【０２４０】
第２実施形態では、Ｅｒレベルから、Ａレベル、Ｂレベル、Ｃレベル、Ｄレベル、Ｅレベル、Ｆレベル、及びＧレベルへと閾値分布を順に遷移させる書込み方式（第１方式）について説明する。
【０２４１】
図２５に示すように、第２実施形態では、ＥｒレベルからＡレベルへの書込み、ＣレベルからＤレベルへの書込み、及びＦレベルからＧレベルへの書込み、の際に第１書込みを適用する。そして、ＡレベルからＢレベルへの書込み、ＢレベルからＣレベルへの書込み、ＤレベルからＥレベルへの書込み、及びＥレベルからＦレベルへの書込み、の際に第２書込みを適用する。しかしながら、第１書込み及び第２書込みの適用方法は上記に限らない。
【０２４２】
また、シーケンサ１１１は第１書込みを行う度に、選択メモリセルトランジスタＭＴが、第１〜第３グループのいずれに属するかを判定する。
【０２４３】
＜２−２−２＞書込み動作の動作フロー
次に、図２６〜図３１を用いて、第２実施形態に係る半導体記憶装置１００の書込み動作の動作フローについて説明する。ここでは、図２５で説明した動作をベースにした動作フローについて説明する。なお、第２実施形態では、第１実施形態で説明した電圧センス方式のセンスモジュール及びプログラムベリファイ動作が用いられる。
【０２４４】
図２６に示すように、第２実施形態の書込み動作において半導体記憶装置１００は、ＥｒレベルからＡレベルへの書込みに関する第１書込み（ステップＳ２０００）を行った後に、ＡレベルからＢレベルへの書込み及びＢレベルからＣレベルへの書込みに関する関する第２書込み（ステップＳ２１００）を行う。続いて、半導体記憶装置１００は、ＣレベルからＤレベルへの書込みに関する第１書込み（ステップＳ２２００）を行った後に、ＤレベルからＥレベルへの書込み及びＥレベルからＦレベルへの書込みに関する関する第２書込み（ステップＳ２３００）を行う。そして、半導体記憶装置１００は、ＦレベルからＧレベルへの書込みに関する第１書込み（ステップＳ２４００）を行って、書込み動作を終了する。
【０２４５】
図２７を用いて、ＥｒレベルからＡレベルへの書込みに関する第１書込み（ステップＳ２０００）の動作フローについて説明する。
【０２４６】
［ステップＳ２００１］〜［ステップＳ２００６］
半導体記憶装置１００は、ステップＳ１００１〜Ｓ１００６と同様の動作を行う。
【０２４７】
図２８を用いて、ＡレベルからＢレベルへの書込み及びＢレベルからＣレベルへの書込みに関する関する第２書込み（ステップＳ２１００）の動作フローについて説明する。
【０２４８】
［ステップＳ２１０１］、［ステップＳ２１０２］
半導体記憶装置１００は、ステップＳ１１０１、及びＳ１１０２と同様の動作を行う。
【０２４９】
［ステップＳ２１０３］
上述したように、第２書込みでは、プログラム動作の回数が決まっている。シーケンサ１１１は、ステップＳ２１０２の実行回数（プログラム回数）をカウントし、レジスタ１１２に記憶されている第３値（Ｂレベルプログラム用のプログラム回数）を超えたか否かを判定する。
【０２５０】
［ステップＳ２１０４］
シーケンサ１１１は、ステップＳ２１０２の実行回数が第３値を超えていないと判定する場合（ステップＳ２１０３、ＮＯ）、各種電圧を再設定し、ステップＳ２１０２を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させる。
【０２５１】
［ステップＳ２１０５］
シーケンサ１１１は、ステップＳ２１０２の実行回数が第３値を超えていると判定する場合（ステップＳ２１０３、ＹＥＳ）、Ｃレベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０２５２】
シーケンサ１１１は、Ｃレベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ２１０５、ＮＯ）、書込み動作を終了する。
【０２５３】
［ステップＳ２１０６］、［ステップＳ２１０７］
半導体記憶装置１００は、ステップＳ２１０６、及びＳ２１０７と同様の動作を行う。
【０２５４】
［ステップＳ２１０８］
シーケンサ１１１は、ステップＳ２１０７の実行回数（プログラム回数）をカウントし、レジスタ１１２に記憶されている第４値（Ｃレベルプログラム用のプログラム回数）を超えたか否かを判定する。なお、第４値は、Ａレベルプログラム完了後からのプログラム回数でも良いし、Ｂレベルプログラム完了後からのプログラム回数でも良い。
【０２５５】
［ステップＳ２１０９］
シーケンサ１１１は、ステップＳ２１０７の実行回数が第４値を超えていないと判定する場合（ステップＳ２１０８、ＮＯ）、各種電圧を再設定し、ステップＳ２１０７を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させる。
【０２５６】
［ステップＳ２１１０］
シーケンサ１１１は、ステップＳ２１０７の実行回数が第４値を超えていると判定する場合（ステップＳ２１０８、ＹＥＳ）、Ｄレベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０２５７】
シーケンサ１１１は、Ｄレベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ２１１０、ＮＯ）、書込み動作を終了する。
【０２５８】
図２９を用いて、ＣレベルからＤレベルへの書込みに関する第１書込み（ステップＳ２２００）の動作フローについて説明する。
【０２５９】
［ステップＳ２２０１］
シーケンサ１１１は、プログラム電圧ＶＰＧＭを、Ｄレベル用のプログラム電圧ＶＰＧＭ（Ｄ）に設定する。
【０２６０】
［ステップＳ２２０２］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対してＤレベルのプログラム動作を行う。
【０２６１】
［ステップＳ２２０３］
続いて、シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１グループか否かを判定する為の第１プログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＬＤを用いてプログラムベリファイ動作を行う。
【０２６２】
続いて、シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第２グループか否かを判定する為の第２プログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＤ（ＶＬＤ＜ＶＤ）を用いてプログラムベリファイ動作を行う。
【０２６３】
［ステップＳ２２０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいて第２プログラムベリファイ動作がパスしたか否かを判定する。
【０２６４】
［ステップＳ２２０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、第１及び第２プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ２２０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ２２０２を行う。
【０２６５】
具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させ、第１グループに属するビット線ＢＬ電圧を電圧ＶＳＳに設定し、第２グループに属するビット線ＢＬ電圧を電圧ＶＢＬに設定し、第３グループに属するビット線ＢＬ電圧を電圧ＶＩＮＨＩＢＩＴに設定する。
【０２６６】
［ステップＳ２２０６］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいて第２プログラムベリファイ動作がパスしていると判定する場合（Ｓ２２０５、ＹＥＳ）、Ｅレベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０２６７】
シーケンサ１１１は、Ｅレベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ２２０６、ＮＯ）、書込み動作を終了する。
【０２６８】
図３０を用いて、ＤレベルからＥレベルへの書込み及びＥレベルからＦレベルへの書込みに関する関する第２書込み（ステップＳ２３００）の動作フローについて説明する。
【０２６９】
［ステップＳ２３０１］
シーケンサ１１１は、Ｅレベル以上のデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ２２０６、ＹＥＳ）、シーケンサ１１１は、プログラム電圧ＶＰＧＭを、Ｅレベル用のプログラム電圧ＶＰＧＭ（Ｅ）に設定する。この電圧ＶＰＧＭ（Ｅ）は直前の電圧ＶＰＧＭ（Ｄ）＋ｄＶＰＧＭ＊Ｙ（Ｙは任意の整数）よりも大きい。
【０２７０】
［ステップＳ２３０２］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対してＥレベルのプログラム動作を行う。
【０２７１】
［ステップＳ２３０３］
上述したように、第２書込みでは、プログラム動作の回数が決まっている。シーケンサ１１１は、ステップＳ２３０２の実行回数（プログラム回数）をカウントし、レジスタ１１２に記憶されている第５値（Ｅレベルプログラム用のプログラム回数）を超えたか否かを判定する。なお、第５値は、任意のレベルのプログラム完了後からのプログラム回数である。
【０２７２】
［ステップＳ２３０４］
シーケンサ１１１は、ステップＳ２３０２の実行回数が第５値を超えていないと判定する場合（ステップＳ２３０３、ＮＯ）、各種電圧を再設定し、ステップＳ２３０２を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させる。
【０２７３】
［ステップＳ２３０５］
シーケンサ１１１は、ステップＳ２３０２の実行回数が第５値を超えていると判定する場合（ステップＳ２３０３、ＹＥＳ）、Ｆレベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０２７４】
シーケンサ１１１は、Ｆレベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ２３０５、ＮＯ）、書込み動作を終了する。
【０２７５】
［ステップＳ２３０６］
シーケンサ１１１は、Ｆレベル以上のデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ２３０５、ＹＥＳ）、シーケンサ１１１は、プログラム電圧ＶＰＧＭを、Ｆレベル用のプログラム電圧ＶＰＧＭ（Ｆ）に設定する。この電圧ＶＰＧＭ（Ｆ）は直前の電圧ＶＰＧＭ（Ｅ）＋ｄＶＰＧＭ＊Ｙ（Ｙは任意の整数）よりも大きい。
【０２７６】
［ステップＳ２３０７］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対してＦレベルのプログラム動作を行う。
【０２７７】
［ステップＳ２３０８］
シーケンサ１１１は、ステップＳ２３０７の実行回数（プログラム回数）をカウントし、レジスタ１１２に記憶されている第６値（Ｆレベルプログラム用のプログラム回数）を超えたか否かを判定する。なお、第６値は、任意のレベルのプログラム完了後からのプログラム回数である。
【０２７８】
［ステップＳ２３０９］
シーケンサ１１１は、ステップＳ２３０７の実行回数が第６値を超えていないと判定する場合（ステップＳ２３０８、ＮＯ）、各種電圧を再設定し、ステップＳ２３０７を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させる。
【０２７９】
［ステップＳ２３１０］
シーケンサ１１１は、ステップＳ２３０７の実行回数が第６値を超えていると判定する場合（ステップＳ２３０８、ＹＥＳ）、Ｇレベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０２８０】
シーケンサ１１１は、Ｇレベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ２３１０、ＮＯ）、書込み動作を終了する。
【０２８１】
図３１を用いて、ＦレベルからＧレベルへの書込みに関する第１書込み（ステップＳ２４００）の動作フローについて説明する。
【０２８２】
［ステップＳ２４０１］
シーケンサ１１１は、プログラム電圧ＶＰＧＭを、Ｇレベル用のプログラム電圧ＶＰＧＭ（Ｇ）に設定する。
【０２８３】
［ステップＳ２４０２］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対してＧレベルのプログラム動作を行う。
【０２８４】
［ステップＳ２４０３］
続いて、シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１グループか否かを判定する為の第１プログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＬＧを用いてプログラムベリファイ動作を行う。
【０２８５】
続いて、シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第２グループか否かを判定する為の第２プログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＧ（ＶＬＧ＜ＶＧ）を用いてプログラムベリファイ動作を行う。
【０２８６】
［ステップＳ２４０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいて第２プログラムベリファイ動作がパスしたか否かを判定する。
【０２８７】
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいて第２プログラムベリファイ動作がパスしていると判定する場合（Ｓ２４０５、ＹＥＳ）、書込み動作を終了する。
【０２８８】
［ステップＳ２４０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、第１及び第２プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ２４０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ２４０２を行う。
【０２８９】
具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させ、第１グループに属するビット線ＢＬ電圧を電圧ＶＳＳに設定し、第２グループに属するビット線ＢＬ電圧を電圧ＶＢＬに設定し、第３グループに属するビット線ＢＬ電圧を電圧ＶＩＮＨＩＢＩＴに設定する。
【０２９０】
なお、図２６〜図３１の動作は、図２５を用いて説明した動作をベースにしている。そのため、第１書込み及び第２書込みの適用方法が変わる場合、第２実施形態に係る半導体記憶装置１００の書込み動作の動作フローも第１書込み及び第２書込みの適用方法に応じて変わる。
【０２９１】
＜２−２−３＞パルスの具体例
続いて、図３２〜図３４を用いて、上述したメモリセルトランジスタＭＴに対して、第２実施形態の書込み動作を適用する際の具体的なパルス例について説明する。図３２〜図３４の表記方法に関しては図１３と同様である。
【０２９２】
図３２に示すように、シーケンサ１１１は、まずＥｒレベルからＡレベルへの書込みに関する第１書込みを行う。シーケンサ１１１は、ＥｒレベルからＡレベルへの書込みに関する第１書込みを終了すると、ＡレベルからＢレベルへの書込み、及びＢレベルからＣレベルへの書込みに関する第２書込みを行う。
【０２９３】
図３３に示すように、シーケンサ１１１は、ＡレベルからＢレベルへの書込み、及びＢレベルからＣレベルへの書込みに関する第２書込みを終了すると、ＣレベルからＤレベルへの書込みに関する第１書込みを行う。シーケンサ１１１は、ＣレベルからＤレベルへの書込みに関する第１書込みを終了すると、ＤレベルからＥレベルへの書込み、及びＥレベルからＦレベルへの書込みに関する第２書込みを行う。
【０２９４】
図３４に示すように、シーケンサ１１１は、ＤレベルからＥレベルへの書込み、及びＥレベルからＦレベルへの書込みに関する第２書込みを終了すると、ＦレベルからＧレベルへの書込みに関する第１書込みを行う。
【０２９５】
なお、図３２〜図３４の動作は、図２５を用いて説明した動作をベースにしている。そのため、第１書込み及び第２書込みの適用方法が変わる場合、第２実施形態に係る半導体記憶装置１００の書込み動作のパルスも第１書込み及び第２書込みの適用方法に応じて変わる。
【０２９６】
＜２−３＞効果
以上のように、第２実施形態では、メモリセルトランジスタＭＴが８値のデータを記憶できる場合について説明したが、第１実施形態と同様の効果を得ることが可能である。
【０２９７】
＜２―４＞第２実施形態の変形例
第２実施形態の変形例について説明する。第２実施形態の変形例では、センスモジュールとして、電流検知タイプのセンスモジュール（第１実施形態の変形例で説明したセンスモジュール）を採用した半導体記憶装置に、第２実施形態の書込み動作を適用する場合について説明する。尚、第２実施形態の変形例に係る半導体記憶装置１００の基本的な構成及び基本的な動作は、上述した第１実施形態、第１実施形態の変形例及び第２実施形態に係る半導体記憶装置１００と同様である。従って、上述した第１実施形態、第１実施形態の変形例及び第２実施形態で説明した事項及び上述した第１実施形態、第１実施形態の変形例及び第２実施形態から容易に類推可能な事項についての説明は省略する。
【０２９８】
＜２−４−１＞センスアンプユニットの概要
第２実施形態の変形例に係るセンスアンプユニット１４０の構成及び動作は、第１実施形態の変形例で説明したセンスアンプユニット１４０と同じである。
【０２９９】
＜２−４−２＞動作
＜２−４−２―１＞書込み動作の動作フロー
第１実施形態の変形例で説明した電流センス方式のセンスモジュール及びプログラムベリファイ動作は、図２６〜図３１で説明した動作フローに適用可能である。簡単のため、ここでは第２実施形態で説明した内容と異なる図２７のステップＳ２００３〜Ｓ２００５、図２９のステップＳ２２０３〜Ｓ２２０５、及び図３１のステップＳ２４０３〜Ｓ２４０５について説明する。
【０３００】
［ステップＳ２００３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＡを用いてプログラムベリファイ動作を行う。
【０３０１】
［ステップＳ２００４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０３０２】
［ステップＳ２００５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ２００４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ２００２を行う。
【０３０３】
［ステップＳ２２０３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＤを用いてプログラムベリファイ動作を行う。
【０３０４】
［ステップＳ２２０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０３０５】
［ステップＳ２２０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ２２０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ２２０２を行う。
【０３０６】
［ステップＳ２４０３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＧを用いてプログラムベリファイ動作を行う。
【０３０７】
［ステップＳ２４０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０３０８】
［ステップＳ２４０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ２４０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ２４０２を行う。
【０３０９】
なお、図２６〜図３１の動作は、図２５を用いて説明した動作をベースにしている。そのため、第１書込み及び第２書込みの適用方法が変わる場合、第２実施形態の変形例に係る半導体記憶装置１００の書込み動作の動作フローも第１書込み及び第２書込みの適用方法に応じて変わる。
【０３１０】
＜２−４−２―２＞パルスの具体例
続いて、図３５〜図３７を用いて、第２実施形態の変形例に係る半導体記憶装置の書込み動作の具体的なパルス例について説明する。図３５〜図３７の表記方法に関しては図２３と同様である。
【０３１１】
図３５〜図３７に示すように、第１実施形態の変形例で説明した電流センス方式のセンスモジュールを有する半導体記憶装置１００においても、第２実施形態で説明したデータ書込み方法を適用することができる。
【０３１２】
＜２−４−３＞効果
以上のように、第１実施形態の変形例で説明した電流センス方式を、第２実施形態で説明した書込み方法に適用することが可能である。これにより、電流センス方式を採用した半導体記憶装置１００においても、第２実施形態で説明した効果と同様の効果を得ることが可能となる。
【０３１３】
＜３＞第３実施形態
第３実施形態について説明する。第２実施形態では、Ｅｒレベルから、Ａレベル、Ｂレベル、Ｃレベル、Ｄレベル、Ｅレベル、Ｆレベル、及びＧレベルへと閾値分布を順に遷移させる書込み方式（第１方式）について説明した。第３実施形態では、順にレベルを遷移させるわけではなく、任意のレベルへと閾値分布を遷移させる書込み方式（第２方式）を採用する場合について説明する。尚、第３実施形態に係るメモリの基本的な構成及び基本的な動作は、上述した第１実施形態及び第２実施形態に係る半導体記憶装置１００と同様である。従って、上述した第１実施形態及び第２実施形態で説明した事項及び上述した第１実施形態及び第２実施形態から容易に類推可能な事項についての説明は省略する。
【０３１４】
＜３−１＞センスアンプユニットの概要
第３実施形態に係るセンスアンプユニット１４０の構成及び動作は、第１実施形態で説明したセンスアンプユニット１４０と同じである。
【０３１５】
＜３−２＞動作
＜３−２−１＞書込み動作の概要
第３実施形態では、順に閾値分布を遷移させるのではなく、任意のレベルに遷移させる書込み方式（第２方式）について説明する。
【０３１６】
一例として、シーケンサ１１１は、メモリセルトランジスタＭＴの閾値をＤ〜Ｆレベルに遷移させる場合、Ａ〜Ｃレベルの書込みは行わない。また、シーケンサ１１１は、メモリセルトランジスタＭＴの閾値をＧレベルに遷移させる場合、Ａ〜Ｆレベルの書込みは行わない。換言すると、シーケンサ１１１は、Ｄ〜Ｆレベルプログラム動作を行う時は、Ａ〜Ｃレベルプログラム動作をスキップする。また、シーケンサ１１１は、Ｇレベルプログラム動作を行う時は、Ａ〜Ｆレベルプログラム動作をスキップする。なお、第２方式の具体例については、これに限らず、スキップさせるレベルは適宜選択可能である。また、シーケンサ１１１は、プログラムをスキップさせる場合、プログラム動作時においてスキップされる選択メモリセルトランジスタＭＴのビット線には電圧ＶＩＮＨＩＢＩＴを印加する。
【０３１７】
第３実施形態は、ＥｒレベルからＡレベルへの書込み、ＥｒレベルからＤレベルへの書込み、及びＥｒレベルからＧレベルへの書込み、の際に第１書込みを適用する。そして、ＡレベルからＢレベルへの書込み、ＢレベルからＣレベルへの書込み、ＤレベルからＥレベルへの書込み、及びＥレベルからＦレベルへの書込み、の際に第２書込みを適用する。しかしながら、第１書込み及び第２書込みの適用方法は上記に限らない。
【０３１８】
＜３−２−２＞書込み動作の動作フロー
次に、図３８〜図４３を用いて、第３実施形態に係る半導体記憶装置１００の書込み動作の動作フローについて説明する。ここでは、＜３−２−１＞で説明した動作をベースにした動作フローについて説明する。
【０３１９】
［ステップＳ３０００］
図３８に示すように、第３実施形態の書込み動作においてシーケンサ１１１は、Ａ〜Ｃレベルのデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０３２０】
［ステップＳ３１００］、［ステップＳ３２００］
シーケンサ１１１は、Ａ〜Ｃレベルのデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ３０００、ＹＥＳ）、Ａ〜Ｃレベルに関するプログラム動作を行う。
【０３２１】
［ステップＳ３３００］
第３実施形態の書込み動作においてシーケンサ１１１は、Ｄ〜Ｆレベルのデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０３２２】
［ステップＳ３４００］、［ステップＳ３５００］
シーケンサ１１１は、Ｄ〜Ｆレベルのデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ３３００、ＹＥＳ）、Ｄ〜Ｆレベルに関するプログラム動作を行う。
【０３２３】
［ステップＳ３６００］
第３実施形態の書込み動作においてシーケンサ１１１は、Ｇレベルのデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０３２４】
［ステップＳ３７００］
シーケンサ１１１は、Ｇレベルのデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ３６００、ＹＥＳ）、Ｇレベルに関するプログラム動作を行う。
【０３２５】
図３９を用いて、ＥｒレベルからＡレベルへの書込みに関する第１書込み（ステップＳ３１００）の動作フローについて説明する。
【０３２６】
［ステップＳ３１０１］〜［ステップＳ３１０６］
半導体記憶装置１００は、ステップＳ１００１〜Ｓ１００６と同様の動作を行う。
【０３２７】
図４０を用いて、ＡレベルからＢレベルへの書込み、及びＢレベルからＣレベルへの書込みに関する第１書込み（ステップＳ３２００）の動作フローについて説明する。
【０３２８】
［ステップＳ３２０１］〜［ステップＳ３２０９］
半導体記憶装置１００は、ステップＳ１１０１〜Ｓ１１０９と同様の動作を行う。
【０３２９】
なお、シーケンサ１１１は、ステップＳ３２０３では第１値ではなく第７値（Ｂレベル用のプログラム回数）を用いて判定動作を行い、ステップＳ３２０８では第２値ではなく第８値（Ｃレベル用のプログラム回数）を用いて判定動作を行う。
【０３３０】
図４１を用いて、ＥｒレベルからＤレベルへの書込みに関する第１書込み（ステップＳ３４００）の動作フローについて説明する。
【０３３１】
［ステップＳ３４０１］〜［ステップＳ３４０６］
半導体記憶装置１００は、ステップＳ２２０１〜Ｓ２２０６と同様の動作を行う。
【０３３２】
図４２を用いて、ＤレベルからＥレベルへの書込み、及びＥレベルからＦレベルへの書込みに関する第１書込み（ステップＳ３５００）の動作フローについて説明する。
【０３３３】
［ステップＳ３５０１］〜［ステップＳ３５０９］
半導体記憶装置１００は、ステップＳ２３０１〜Ｓ２３０９と同様の動作を行う。
【０３３４】
なお、シーケンサ１１１は、ステップＳ３５０３では第５値ではなく第９値（Ｅレベル用のプログラム回数）を用いて判定動作を行い、ステップＳ３５０８では第６値ではなく第１０値（Ｆレベル用のプログラム回数）を用いて判定動作を行う。
【０３３５】
図４３を用いて、ＥｒレベルからＧレベルへの書込みに関する第１書込み（ステップＳ３７００）の動作フローについて説明する。
【０３３６】
［ステップＳ３７０１］〜［ステップＳ３７０６］
半導体記憶装置１００は、ステップＳ２４０１〜Ｓ２４０６と同様の動作を行う。
【０３３７】
なお、第３実施形態に係る半導体記憶装置の書込み動作の具体的なパルスは、スキップされるビット線の電圧以外は図３２〜図３４と同様になるので説明は省略する。
【０３３８】
＜３−３＞効果
以上のように、書込み方法として第２方式を用いる場合でも、第２実施形態で説明した書込み方法に適用することが可能である。これにより、第２実施形態で説明した効果と同様の効果を得ることが可能となる。
【０３３９】
＜３―４＞第３実施形態の変形例
第３実施形態の変形例について説明する。第３実施形態の変形例では、センスモジュールとして、電流検知タイプのセンスモジュール（第１実施形態の変形例で説明したセンスモジュール）を採用した半導体記憶装置に、第３実施形態の書込み動作を適用する場合について説明する。尚、第３実施形態の変形例に係る半導体記憶装置１００の基本的な構成及び基本的な動作は、上述した第１実施形態、第１実施形態の変形例、第２実施形態、第２実施形態の変形例、及び第３実施形態に係る半導体記憶装置１００と同様である。従って、上述した第１実施形態、第１実施形態の変形例、第２実施形態、第２実施形態の変形例、及び第３実施形態で説明した事項及び上述した第１実施形態、第１実施形態の変形例、第２実施形態、第２実施形態の変形例、及び第３実施形態から容易に類推可能な事項についての説明は省略する。
【０３４０】
＜３−４−１＞センスアンプユニットの概要
第３実施形態の変形例に係るセンスアンプユニット１４０の構成及び動作は、第１実施形態の変形例で説明したセンスアンプユニット１４０と同じである。
【０３４１】
＜３−４−２＞動作
＜３−４−２―１＞書込み動作の動作フロー
第１実施形態の変形例で説明した電流センス方式のセンスモジュール及びプログラムベリファイ動作は、図３８〜図４３で説明した動作フローに適用可能である。簡単のため、ここでは第３実施形態で説明した内容と異なる図３９のステップＳ３１０３〜Ｓ３１０５、図４１のステップＳ３４０３〜Ｓ３４０５、及び図４３のステップＳ３７０３〜Ｓ３７０５について説明する。
【０３４２】
［ステップＳ３１０３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＡを用いてプログラムベリファイ動作を行う。
【０３４３】
［ステップＳ３１０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０３４４】
［ステップＳ３１０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ３１０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ３１０２を行う。
【０３４５】
［ステップＳ３４０３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＤを用いてプログラムベリファイ動作を行う。
【０３４６】
［ステップＳ３４０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０３４７】
［ステップＳ３４０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ３４０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ３４０２を行う。
【０３４８】
［ステップＳ３７０３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＧを用いてプログラムベリファイ動作を行う。
【０３４９】
［ステップＳ３７０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０３５０】
［ステップＳ３７０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ３７０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ３７０２を行う。
【０３５１】
なお、第３実施形態の変形例に係る半導体記憶装置の書込み動作の具体的なパルスは、スキップされるビット線の電圧以外は図３５〜図３７と同様になるので説明は省略する。
【０３５２】
＜３−４−３＞効果
以上のように、第１実施形態の変形例で説明した電流センス方式を、第３実施形態で説明した書込み方法に適用することが可能である。これにより、電流センス方式を採用した半導体記憶装置１００においても、第３実施形態で説明した効果と同様の効果を得ることが可能となる。
【０３５３】
＜４＞第４実施形態
第４実施形態について説明する。第４実施形態では、メモリセルトランジスタが１６値のデータを記憶し、センスモジュールとして、電圧検知タイプのセンスモジュール（第１実施形態で説明したセンスモジュール）を採用した半導体記憶装置に、第１実施形態の書込み動作を適用する場合について説明する。尚、第４実施形態に係る半導体記憶装置１００の基本的な構成及び基本的な動作は、上述した第１〜第３実施形態に係る半導体記憶装置１００と同様である。従って、上述した第１〜第３実施形態で説明した事項及び上述した第１〜第３実施形態から容易に類推可能な事項についての説明は省略する。
【０３５４】
＜４−１＞構成
＜４−１−１＞センスアンプユニットの概要
第４実施形態に係るセンスアンプユニット１４０の構成及び動作は、第１実施形態で説明したセンスアンプユニット１４０と同じである。
【０３５５】
＜４−１−２＞メモリセルトランジスタの閾値分布及びデータの関係
図４４を用いて、メモリセルトランジスタの閾値分布及びデータの関係について説明する。
【０３５６】
図４４に示すように、各々のメモリセルトランジスタＭＴは、その閾値に応じて例えば４ビットのデータを保持可能である。この４ビットデータは、閾値の低いものから順番に、例えば“１１１１”“１０１１”、“０１０１”、“１０００”、“１００１”、“０００１”、“００１１”、“０１１１”、“０１０１”、“１１０１”“１１００”、“０１００”、“００００”、“００１０”、“０１１０”、“１１１０”である。
【０３５７】
“１１１１”データを保持するメモリセルトランジスタＭＴの閾値は、ある一定の分布内にあり、この“１１１１”データに対応する閾値分布を“Ｅｒ”レベルと呼ぶ。Ｅｒレベルは、電荷蓄積層内の電荷が引き抜かれて、データが消去された状態における閾値分布であり、正または負の値である（例えば電圧Ｖ１未満）。
【０３５８】
“１０１１”、“０１０１”、“１０００”、“１００１”、“０００１”、“００１１”、“０１１１”、“０１０１”、“１１０１”“１１００”、“０１００”、“００００”、“００１０”、“０１１０”、“１１１０”は、電荷蓄積層内に電荷が注入されて、データが書き込まれた状態の閾値分布である。
【０３５９】
“１０１１”データを保持するメモリセルトランジスタＭＴの閾値は“１”レベルの分布内にあり、０レベル内の閾値よりも高い（例えば電圧Ｖ１以上、Ｖ２未満であり、Ｖ１＜Ｖ２）。
【０３６０】
“０１０１”データを保持するメモリセルトランジスタＭＴの閾値は“２”レベルの分布内にあり、１レベル内の閾値よりも高い（例えば電圧Ｖ２以上、Ｖ３未満であり、Ｖ２＜Ｖ３）。
【０３６１】
“１０００”データを保持するメモリセルトランジスタＭＴの閾値は“３”レベルの分布内にあり、２レベル内の閾値よりも高い（例えば電圧Ｖ３以上、Ｖ４未満であり、Ｖ３＜Ｖ４）。
【０３６２】
“１００１”データを保持するメモリセルトランジスタＭＴの閾値は“４”レベルの分布内にあり、３レベル内の閾値よりも高い（例えば電圧Ｖ４以上、Ｖ５未満であり、Ｖ４＜Ｖ５）。
【０３６３】
“０００１”データを保持するメモリセルトランジスタＭＴの閾値は“５”レベルの分布内にあり、４レベル内の閾値よりも高い（例えば電圧Ｖ５以上、Ｖ６未満であり、Ｖ５＜Ｖ６）。
【０３６４】
“００１１”データを保持するメモリセルトランジスタＭＴの閾値は“６”レベルの分布内にあり、５レベル内の閾値よりも高い（例えば電圧Ｖ６以上、Ｖ７未満であり、Ｖ６＜Ｖ７）。
【０３６５】
“０１１１”データを保持するメモリセルトランジスタＭＴの閾値は“７”レベルの分布内にあり、６レベル内の閾値よりも高い（例えば電圧Ｖ７以上、Ｖ８未満であり、Ｖ７＜Ｖ８）。
【０３６６】
“０１０１”データを保持するメモリセルトランジスタＭＴの閾値は“８”レベルの分布内にあり、７レベル内の閾値よりも高い（例えば電圧Ｖ８以上、Ｖ９未満であり、Ｖ８＜Ｖ９）。
【０３６７】
“１１０１”データを保持するメモリセルトランジスタＭＴの閾値は“９”レベルの分布内にあり、８レベル内の閾値よりも高い（例えば電圧Ｖ９以上、Ｖ１０未満であり、Ｖ９＜Ｖ１０）。
【０３６８】
“１１００”データを保持するメモリセルトランジスタＭＴの閾値は“Ａ”レベルの分布内にあり、９レベル内の閾値よりも高い（例えば電圧ＶＡ以上、ＶＢ未満であり、ＶＡ＜ＶＢ）。
【０３６９】
“０１００”データを保持するメモリセルトランジスタＭＴの閾値は“Ｂ”レベルの分布内にあり、Ａレベル内の閾値よりも高い（例えば電圧ＶＢ以上、ＶＣ未満であり、ＶＢ＜ＶＣ）。
【０３７０】
“００００”データを保持するメモリセルトランジスタＭＴの閾値は“Ｃ”レベルの分布内にあり、Ｂレベル内の閾値よりも高い（例えば電圧ＶＣ以上、ＶＤ未満であり、ＶＣ＜ＶＤ）。
【０３７１】
“００１０”データを保持するメモリセルトランジスタＭＴの閾値は“Ｄ”レベルの分布内にあり、Ｃレベル内の閾値よりも高い（例えば電圧ＶＤ以上、ＶＥ未満であり、ＶＤ＜ＶＥ）。
【０３７２】
“０１１０”データを保持するメモリセルトランジスタＭＴの閾値は“Ｅ”レベルの分布内にあり、Ｄレベル内の閾値よりも高い（例えば電圧ＶＥ以上、ＶＦ未満であり、ＶＥ＜ＶＦ）。
【０３７３】
“１１１０”データを保持するメモリセルトランジスタＭＴの閾値は“Ｆ”レベルの分布内にあり、Ｅレベル内の閾値よりも高い（例えば電圧ＶＦ以上）。
【０３７４】
もちろん、４ビットデータと閾値との関係はこの関係に限定されるものでは無く、例えば“１１１１”データが“Ｇ”レベルに対応するような場合であっても良く、両者の関係については適宜選択出来る。
【０３７５】
＜４−２＞動作
＜４―２−１＞書込み動作の概要
図４５を用いて、第４実施形態に係る半導体記憶装置の書込み動作の概要について説明する。
【０３７６】
第４実施形態において、シーケンサ１１１がメモリセルアレイ１３０に書込み動作を行う際、第１実施形態と同様に大きく分けて２種類の書込み方法（第１書込み及び第２書込み）を行う。
【０３７７】
第４実施形態では、０レベルから、１レベル、２レベル、３レベル、４レベル、５レベル、６レベル、７レベル、８レベル、９レベル、Ａレベル、Ｂレベル、Ｃレベル、Ｄレベル、Ｅレベル、及びＦレベルへと閾値分布を順に遷移させる書込み方式（第１方式）について説明する。
【０３７８】
図４５に示すように、第４実施形態では、０レベルから１レベルへの書込み、３レベルから４レベルへの書込み、６レベルから７レベルへの書込み、９レベルからＡレベルへの書込み、及びＣレベルからＤレベルへの書込み、の際に第１書込みを適用する。そして、その他の書込みの際に第２書込みを適用する。しかしながら、第１書込み及び第２書込みの適用方法は上記に限らない。
【０３７９】
また、シーケンサ１１１は第１書込みを行う度に、選択メモリセルトランジスタＭＴが、第１〜第３グループのいずれに属するかを判定する。
【０３８０】
＜４−２−２＞書込み動作の動作フロー
次に、図４６〜図５６を用いて、第４実施形態に係る半導体記憶装置１００の書込み動作の動作フローについて説明する。ここでは、図４５で説明した動作をベースにした動作フローについて説明する。なお、第４実施形態では、第１実施形態で説明した電圧センス方式のセンスモジュール及びプログラムベリファイ動作が用いられる。
【０３８１】
図４６に示すように、第４実施形態の書込み動作において半導体記憶装置１００は、０レベルから１レベルへの書込みに関する第１書込み（ステップＳ４０００）を行った後に、１レベルから２レベルへの書込み及び２レベルから３レベルへの書込みに関する関する第２書込み（ステップＳ４１００）を行う。続いて、半導体記憶装置１００は、３レベルから４レベルへの書込みに関する第１書込み（ステップＳ４２００）を行った後に、４レベルから５レベルへの書込み及び５レベルから６レベルへの書込みに関する関する第２書込み（ステップＳ４３００）を行う。そして、半導体記憶装置１００は、６レベルから７レベルへの書込みに関する第１書込み（ステップＳ４４００）を行った後に、７レベルから８レベルへの書込み及び８レベルから９レベルへの書込みに関する関する第２書込み（ステップＳ４５００）を行う。続いて半導体記憶装置１００は、９レベルからＡレベルへの書込みに関する第１書込み（ステップＳ４６００）を行った後に、ＡレベルからＢレベルへの書込み及びＢレベルからＣレベルへの書込みに関する関する第２書込み（ステップＳ４７００）を行う。そして、半導体記憶装置１００は、ＣレベルからＤレベルへの書込みに関する第１書込み（ステップＳ４８００）を行った後に、ＤレベルからＥレベルへの書込み及びＥレベルからＦレベルへの書込みに関する関する第２書込み（ステップＳ４９００）を行って、書込み動作を終了する。
【０３８２】
図４７を用いて、０レベルから１レベルへの書込みに関する第１書込み（ステップＳ４０００）の動作フローについて説明する。
【０３８３】
［ステップＳ４００１］
まず、シーケンサ１１１は、１レベル以上のデータが書込まれるメモリセルトランジスタＭＴに対して１レベルプログラム動作を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭを、１レベル用のプログラム電圧ＶＰＧＭ（１）に設定する。
【０３８４】
［ステップＳ４００２］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対して１レベルのプログラム動作を行う。
【０３８５】
［ステップＳ４００３］
続いて、シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１グループか否かを判定する為の第１プログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＬ１を用いてプログラムベリファイ動作を行う。
【０３８６】
続いて、シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第２グループか否かを判定する為の第２プログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧Ｖ１（ＶＬ１＜Ｖ１）を用いてプログラムベリファイ動作を行う。
【０３８７】
［ステップＳ４００４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいて第２プログラムベリファイ動作がパスしたか否かを判定する。
【０３８８】
［ステップＳ４００５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、第１及び第２プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ４００４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ４００２を行う。
【０３８９】
具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させ、第１グループに属するビット線ＢＬ電圧を電圧ＶＳＳに設定し、第２グループに属するビット線ＢＬ電圧を電圧ＶＢＬに設定し、第３グループに属するビット線ＢＬ電圧を電圧ＶＩＮＨＩＢＩＴに設定する。
【０３９０】
［ステップＳ４００６］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいて第２プログラムベリファイ動作がパスしていると判定する場合（Ｓ４００５、ＹＥＳ）、２レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０３９１】
シーケンサ１１１は、２レベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ４００６、ＮＯ）、書込み動作を終了する。
【０３９２】
図４８を用いて、１レベルから２レベルへの書込み、及び２レベルから３レベルへの書込み、に関する第２書込み動作（ステップＳ４１００）の動作フローについて説明する。
【０３９３】
［ステップＳ４１０１］
シーケンサ１１１は、２レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ４００６、ＹＥＳ）、プログラム電圧ＶＰＧＭを、２レベル用のプログラム電圧ＶＰＧＭ（２）に設定する。この電圧ＶＰＧＭ（２）は直前の電圧ＶＰＧＭ（１）＋ｄＶＰＧＭ＊Ｙ（Ｙは任意の整数）よりも大きい。
【０３９４】
［ステップＳ４１０２］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対して２レベルのプログラム動作を行う。
【０３９５】
［ステップＳ４１０３］
上述したように、第２書込みでは、プログラム動作の回数が決まっている。シーケンサ１１１は、ステップＳ４１０２の実行回数（プログラム回数）をカウントし、レジスタ１１２に記憶されている第１１値（２レベルプログラム用のプログラム回数）を超えたか否かを判定する。なお、第１１値は、任意のレベルのプログラム完了後からのプログラム回数である。
【０３９６】
［ステップＳ４１０４］
シーケンサ１１１は、ステップＳ４１０２の実行回数が第１１値を超えていないと判定する場合（ステップＳ４１０３、ＮＯ）、各種電圧を再設定し、ステップＳ４１０２を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させる。
【０３９７】
［ステップＳ４１０５］
シーケンサ１１１は、ステップＳ４１０２の実行回数が第１１値を超えていると判定する場合（ステップＳ４１０３、ＹＥＳ）、３レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０３９８】
シーケンサ１１１は、３レベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ４１０５、ＮＯ）、書込み動作を終了する。
【０３９９】
［ステップＳ４１０６］
シーケンサ１１１は、３レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ４１０５、ＹＥＳ）、シーケンサ１１１は、プログラム電圧ＶＰＧＭを、３レベル用のプログラム電圧ＶＰＧＭ（３）に設定する。この電圧ＶＰＧＭ（３）は直前の電圧ＶＰＧＭ（２）＋ｄＶＰＧＭ＊Ｙ（Ｙは任意の整数）よりも大きい。
【０４００】
［ステップＳ４１０７］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対して３レベルのプログラム動作を行う。
【０４０１】
［ステップＳ４１０８］
シーケンサ１１１は、ステップＳ４１０７の実行回数（プログラム回数）をカウントし、レジスタ１１２に記憶されている第１２値（３レベルプログラム用のプログラム回数）を超えたか否かを判定する。なお、第１２値は、任意のレベルのプログラム完了後からのプログラム回数である。
【０４０２】
シーケンサ１１１は、ステップＳ４１０７の実行回数が第１２値を超えていると判定する場合（ステップＳ４１０８、ＹＥＳ）、書込み動作を終了する。
【０４０３】
［ステップＳ４１０９］
シーケンサ１１１は、ステップＳ４１０７の実行回数が第１２値を超えていないと判定する場合（ステップＳ４１０８、ＮＯ）、各種電圧を再設定し、ステップＳ４１０７を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させる。
【０４０４】
［ステップＳ４１１０］
シーケンサ１１１は、ステップＳ４１０７の実行回数が第１２値を超えていると判定する場合（ステップＳ４１０９、ＹＥＳ）、４レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０４０５】
シーケンサ１１１は、４レベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ４１１０、ＮＯ）、書込み動作を終了する。
【０４０６】
図４９を用いて、３レベルから４レベルへの書込みに関する第１書込み（ステップＳ４２００）の動作フローについて説明する。
【０４０７】
［ステップＳ４２０１］
シーケンサ１１１は、４レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ４１１０、ＹＥＳ）、プログラム電圧ＶＰＧＭを、４レベル用のプログラム電圧ＶＰＧＭ（４）に設定する。
【０４０８】
［ステップＳ４２０２］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対して４レベルのプログラム動作を行う。
【０４０９】
［ステップＳ４２０３］
続いて、シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１グループか否かを判定する為の第１プログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＬ４を用いてプログラムベリファイ動作を行う。
【０４１０】
続いて、シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第２グループか否かを判定する為の第２プログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧Ｖ４（ＶＬ４＜Ｖ４）を用いてプログラムベリファイ動作を行う。
【０４１１】
［ステップＳ４２０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいて第２プログラムベリファイ動作がパスしたか否かを判定する。
【０４１２】
［ステップＳ４２０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、第１及び第２プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ４２０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ４２０２を行う。
【０４１３】
具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させ、第１グループに属するビット線ＢＬ電圧を電圧ＶＳＳに設定し、第２グループに属するビット線ＢＬ電圧を電圧ＶＢＬに設定し、第３グループに属するビット線ＢＬ電圧を電圧ＶＩＮＨＩＢＩＴに設定する。
【０４１４】
［ステップＳ４２０６］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいて第２プログラムベリファイ動作がパスしていると判定する場合（Ｓ４２０５、ＹＥＳ）、５レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０４１５】
シーケンサ１１１は、５レベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ４２０６、ＮＯ）、書込み動作を終了する。
【０４１６】
図５０を用いて、４レベルから５レベルへの書込み、及び５レベルから６レベルへの書込み、に関する第２書込み動作（ステップＳ４３００）の動作フローについて説明する。
【０４１７】
［ステップＳ４３０１］
シーケンサ１１１は、５レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ４２０６、ＹＥＳ）、プログラム電圧ＶＰＧＭを、５レベル用のプログラム電圧ＶＰＧＭ（５）に設定する。この電圧ＶＰＧＭ（５）は直前の電圧ＶＰＧＭ（４）＋ｄＶＰＧＭ＊Ｙ（Ｙは任意の整数）よりも大きい。
【０４１８】
［ステップＳ４３０２］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対して５レベルのプログラム動作を行う。
【０４１９】
［ステップＳ４３０３］
上述したように、第２書込みでは、プログラム動作の回数が決まっている。シーケンサ１１１は、ステップＳ４３０２の実行回数（プログラム回数）をカウントし、レジスタ１１２に記憶されている第１３値（５レベルプログラム用のプログラム回数）を超えたか否かを判定する。なお、第１３値は、任意のレベルのプログラム完了後からのプログラム回数である。
【０４２０】
［ステップＳ４３０４］
シーケンサ１１１は、ステップＳ４３０２の実行回数が第１３値を超えていないと判定する場合（ステップＳ４３０３、ＮＯ）、各種電圧を再設定し、ステップＳ４３０２を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させる。
【０４２１】
［ステップＳ４３０５］
シーケンサ１１１は、ステップＳ４３０２の実行回数が第１３値を超えていると判定する場合（ステップＳ４３０３、ＹＥＳ）、６レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０４２２】
シーケンサ１１１は、６レベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ４３０５、ＮＯ）、書込み動作を終了する。
【０４２３】
［ステップＳ４３０６］
シーケンサ１１１は、６レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ４３０５、ＹＥＳ）、シーケンサ１１１は、プログラム電圧ＶＰＧＭを、６レベル用のプログラム電圧ＶＰＧＭ（６）に設定する。この電圧ＶＰＧＭ（６）は直前の電圧ＶＰＧＭ（５）＋ｄＶＰＧＭ＊Ｙ（Ｙは任意の整数）よりも大きい。
【０４２４】
［ステップＳ４３０７］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対して６レベルのプログラム動作を行う。
【０４２５】
［ステップＳ４３０８］
シーケンサ１１１は、ステップＳ４３０７の実行回数（プログラム回数）をカウントし、レジスタ１１２に記憶されている第１４値（６レベルプログラム用のプログラム回数）を超えたか否かを判定する。なお、第１４値は、任意のレベルのプログラム完了後からのプログラム回数である。
【０４２６】
シーケンサ１１１は、ステップＳ４３０７の実行回数が第１４値を超えていると判定する場合（ステップＳ４３０８、ＹＥＳ）、書込み動作を終了する。
【０４２７】
［ステップＳ４３０９］
シーケンサ１１１は、ステップＳ４３０７の実行回数が第１４値を超えていないと判定する場合（ステップＳ４３０８、ＮＯ）、各種電圧を再設定し、ステップＳ４３０７を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させる。
【０４２８】
［ステップＳ４３１０］
シーケンサ１１１は、ステップＳ４３０７の実行回数が第１４値を超えていると判定する場合（ステップＳ４３０９、ＹＥＳ）、７レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０４２９】
シーケンサ１１１は、７レベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ４３１０、ＮＯ）、書込み動作を終了する。
【０４３０】
図５１を用いて、６レベルから７レベルへの書込みに関する第１書込み（ステップＳ４４００）の動作フローについて説明する。
【０４３１】
［ステップＳ４４０１］
シーケンサ１１１は、７レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ４３１０、ＹＥＳ）、プログラム電圧ＶＰＧＭを、７レベル用のプログラム電圧ＶＰＧＭ（７）に設定する。
【０４３２】
［ステップＳ４４０２］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対して７レベルのプログラム動作を行う。
【０４３３】
［ステップＳ４４０３］
続いて、シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１グループか否かを判定する為の第１プログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＬ７を用いてプログラムベリファイ動作を行う。
【０４３４】
続いて、シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第２グループか否かを判定する為の第２プログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧Ｖ７（ＶＬ７＜Ｖ７）を用いてプログラムベリファイ動作を行う。
【０４３５】
［ステップＳ４４０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいて第２プログラムベリファイ動作がパスしたか否かを判定する。
【０４３６】
［ステップＳ４４０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、第１及び第２プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ４４０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ４４０２を行う。
【０４３７】
具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させ、第１グループに属するビット線ＢＬ電圧を電圧ＶＳＳに設定し、第２グループに属するビット線ＢＬ電圧を電圧ＶＢＬに設定し、第３グループに属するビット線ＢＬ電圧を電圧ＶＩＮＨＩＢＩＴに設定する。
【０４３８】
［ステップＳ４４０６］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいて第２プログラムベリファイ動作がパスしていると判定する場合（Ｓ４４０５、ＹＥＳ）、８レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０４３９】
シーケンサ１１１は、８レベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ４４０６、ＮＯ）、書込み動作を終了する。
【０４４０】
図５２を用いて、７レベルから８レベルへの書込み、及び８レベルから９レベルへの書込み、に関する第２書込み動作（ステップＳ４５００）の動作フローについて説明する。
【０４４１】
［ステップＳ４５０１］
シーケンサ１１１は、８レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ４５０６、ＹＥＳ）、プログラム電圧ＶＰＧＭを、８レベル用のプログラム電圧ＶＰＧＭ（８）に設定する。この電圧ＶＰＧＭ（８）は直前の電圧ＶＰＧＭ（７）＋ｄＶＰＧＭ＊Ｙ（Ｙは任意の整数）よりも大きい。
【０４４２】
［ステップＳ４５０２］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対して８レベルのプログラム動作を行う。
【０４４３】
［ステップＳ４５０３］
上述したように、第２書込みでは、プログラム動作の回数が決まっている。シーケンサ１１１は、ステップＳ４５０２の実行回数（プログラム回数）をカウントし、レジスタ１１２に記憶されている第１５値（８レベルプログラム用のプログラム回数）を超えたか否かを判定する。なお、第１５値は、任意のレベルのプログラム完了後からのプログラム回数である。
【０４４４】
［ステップＳ４５０４］
シーケンサ１１１は、ステップＳ４５０２の実行回数が第１５値を超えていないと判定する場合（ステップＳ４５０３、ＮＯ）、各種電圧を再設定し、ステップＳ４５０２を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させる。
【０４４５】
［ステップＳ４５０５］
シーケンサ１１１は、ステップＳ４５０２の実行回数が第１５値を超えていると判定する場合（ステップＳ４５０３、ＹＥＳ）、９レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０４４６】
シーケンサ１１１は、９レベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ４５０５、ＮＯ）、書込み動作を終了する。
【０４４７】
［ステップＳ４５０６］
シーケンサ１１１は、９レベル以上のデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ４５０５、ＹＥＳ）、シーケンサ１１１は、プログラム電圧ＶＰＧＭを、９レベル用のプログラム電圧ＶＰＧＭ（９）に設定する。この電圧ＶＰＧＭ（９）は直前の電圧ＶＰＧＭ（８）＋ｄＶＰＧＭ＊Ｙ（Ｙは任意の整数）よりも大きい。
【０４４８】
［ステップＳ４５０７］
シーケンサ１１１は、プログラム電圧を用いて対象のメモリセルトランジスタＭＴに対して９レベルのプログラム動作を行う。
【０４４９】
［ステップＳ４５０８］
シーケンサ１１１は、ステップＳ４５０７の実行回数（プログラム回数）をカウントし、レジスタ１１２に記憶されている第１６値（９レベルプログラム用のプログラム回数）を超えたか否かを判定する。なお、第１６値は、任意のレベルのプログラム完了後からのプログラム回数である。
【０４５０】
シーケンサ１１１は、ステップＳ４５０７の実行回数が第１６値を超えていると判定する場合（ステップＳ４５０８、ＹＥＳ）、書込み動作を終了する。
【０４５１】
［ステップＳ４５０９］
シーケンサ１１１は、ステップＳ４５０７の実行回数が第１６値を超えていないと判定する場合（ステップＳ４５０８、ＮＯ）、各種電圧を再設定し、ステップＳ４５０７を行う。具体的には、シーケンサ１１１は、プログラム電圧ＶＰＧＭをｄＶＰＧＭ増加させる。
【０４５２】
［ステップＳ４５１０］
シーケンサ１１１は、ステップＳ４５０７の実行回数が第１６値を超えていると判定する場合（ステップＳ４５０９、ＹＥＳ）、Ａレベル以上のデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０４５３】
シーケンサ１１１は、Ａレベル以上のデータが書込まれるメモリセルトランジスタＭＴがないと判定する場合（ステップＳ４５１０、ＮＯ）、書込み動作を終了する。
【０４５４】
図５３を用いて、９レベルからＡレベルへの書込みに関する第１書込み（ステップＳ４６００）の動作フローについて説明する。
【０４５５】
［ステップＳ４６０１］〜［ステップＳ４６０６］
半導体記憶装置１００は、ステップＳ２００１〜Ｓ２００６と同様の動作を行う。
【０４５６】
図５４を用いて、ＡレベルからＢレベルへの書込み、及びＢレベルからＣレベルへの書込み、に関する第２書込み動作（ステップＳ４７００）の動作フローについて説明する。
【０４５７】
［ステップＳ４７０１］〜［ステップＳ４７１０］
メモリシステム１は、ステップＳ２１０１〜Ｓ２１１０と同様の動作を行う。
【０４５８】
なお、シーケンサ１１１は、ステップＳ４７０３では第３値ではなく第１７値（Ｂレベル用のプログラム回数）を用いて判定動作を行い、ステップＳ４７０８では第２値ではなく第１８値（Ｃレベル用のプログラム回数）を用いて判定動作を行う。
【０４５９】
図５５を用いて、ＣレベルからＤレベルへの書込みに関する第１書込み（ステップＳ４８００）の動作フローについて説明する。
【０４６０】
［ステップＳ４８０１］〜［ステップＳ４８０６］
半導体記憶装置１００は、ステップＳ２２０１〜Ｓ２２０６と同様の動作を行う。
【０４６１】
図５６を用いて、ＤレベルからＥレベルへの書込み、及びＥレベルからＦレベルへの書込み、に関する第２書込み動作（ステップＳ４９００）の動作フローについて説明する。
【０４６２】
［ステップＳ４９０１］〜［ステップＳ４９０９］
メモリシステム１は、ステップＳ２３０１〜Ｓ２３０９と同様の動作を行う。
【０４６３】
なお、シーケンサ１１１は、ステップＳ４９０３では第５値ではなく第１９値（Ｅレベル用のプログラム回数）を用いて判定動作を行い、ステップＳ４９０８では第６値ではなく第２０値（Ｆレベル用のプログラム回数）を用いて判定動作を行う。
【０４６４】
なお、図４６〜図５６の動作は、図４５を用いて説明した動作をベースにしている。そのため、第１書込み及び第２書込みの適用方法が変わる場合、第４実施形態に係る半導体記憶装置１００の書込み動作の動作フローも第１書込み及び第２書込みの適用方法に応じて変わる。
【０４６５】
＜４−２−３＞パルスの具体例
続いて、図５７〜図６１を用いて、上述したメモリセルトランジスタＭＴに対して、第４実施形態の書込み動作を適用する際の具体的なパルス例について説明する。図５７〜図６１の表記方法に関しては図１３と同様である。
【０４６６】
図５７に示すように、シーケンサ１１１は、まず０レベルから１レベルへの書込みに関する第１書込みを行う。シーケンサ１１１は、０レベルから１レベルへの書込みに関する第１書込みを終了すると、１レベルから２レベルへの書込み、及び２レベルから３レベルへの書込みに関する第２書込みを行う。
【０４６７】
図５８に示すように、シーケンサ１１１は、１レベルから２レベルへの書込み、及び２レベルから３レベルへの書込みに関する第２書込みを終了すると、３レベルから４レベルへの書込みに関する第１書込みを行う。シーケンサ１１１は、３レベルから４レベルへの書込みに関する第１書込みを終了すると、４レベルから５レベルへの書込み、及び５レベルから６レベルへの書込みに関する第２書込みを行う。
【０４６８】
図５９に示すように、シーケンサ１１１は、４レベルから５レベルへの書込み、及び５レベルから６レベルへの書込みに関する第２書込みを終了すると、６レベルから７レベルへの書込みに関する第１書込みを行う。シーケンサ１１１は、６レベルから７レベルへの書込みに関する第１書込みを終了すると、７レベルから８レベルへの書込み、及び８レベルから９レベルへの書込みに関する第２書込みを行う。
【０４６９】
図６０に示すように、シーケンサ１１１は、７レベルから８レベルへの書込み、及び８レベルから９レベルへの書込みに関する第２書込みを終了すると、９レベルからＡレベルへの書込みに関する第１書込みを行う。シーケンサ１１１は、９レベルからＡレベルへの書込みに関する第１書込みを終了すると、ＡレベルからＢレベルへの書込み、及びＢレベルからＣレベルへの書込みに関する第２書込みを行う。
【０４７０】
図６１に示すように、シーケンサ１１１は、ＡレベルからＢレベルへの書込み、及びＢレベルからＣレベルへの書込みに関する第２書込みを終了すると、ＣレベルからＤレベルへの書込みに関する第１書込みを行う。シーケンサ１１１は、ＣレベルからＤレベルへの書込みに関する第１書込みを終了すると、ＤレベルからＥレベルへの書込み、及びＥレベルからＦレベルへの書込みに関する第２書込みを行う。
【０４７１】
なお、図５７〜図６１の動作は、図４５を用いて説明した動作をベースにしている。そのため、第１書込み及び第２書込みの適用方法が変わる場合、第４実施形態に係る半導体記憶装置１００の書込み動作のパルスも第１書込み及び第２書込みの適用方法に応じて変わる。
【０４７２】
＜４−３＞効果
以上のように、第４実施形態では、メモリセルトランジスタＭＴが１６値のデータを記憶できる場合について説明したが、第１実施形態と同様の効果を得ることが可能である。
【０４７３】
＜４―４＞第４実施形態の変形例
第４実施形態の変形例について説明する。第４実施形態の変形例では、センスモジュールとして、電流検知タイプのセンスモジュール（第１実施形態の変形例で説明したセンスモジュール）を採用した半導体記憶装置に、第４実施形態の書込み動作を適用する場合について説明する。尚、第４実施形態の変形例に係る半導体記憶装置１００の基本的な構成及び基本的な動作は、上述した第１実施形態、第１実施形態の変形例、第２実施形態、第２実施形態の変形例、第３実施形態、第３実施形態の変形例、及び第４実施形態に係る半導体記憶装置１００と同様である。従って、上述した第１実施形態、第１実施形態の変形例、第２実施形態、第２実施形態の変形例、第３実施形態、第３実施形態の変形例、及び第４実施形態で説明した事項及び上述した第１実施形態、第１実施形態の変形例、第２実施形態、第２実施形態の変形例、第３実施形態、第３実施形態の変形例、及び第４実施形態から容易に類推可能な事項についての説明は省略する。
【０４７４】
＜４−４−１＞センスアンプユニットの概要
第４実施形態の変形例に係るセンスアンプユニット１４０の構成及び動作は、第１実施形態の変形例で説明したセンスアンプユニット１４０と同じである。
【０４７５】
＜４−４−２＞動作
＜４−４−２―１＞書込み動作の動作フロー
第１実施形態の変形例で説明した電流センス方式のセンスモジュール及びプログラムベリファイ動作は、図４６〜図５６で説明した動作フローに適用可能である。簡単のため、ここでは第４実施形態で説明した内容と異なる図４７のステップＳ４００３〜Ｓ４００５、図４９のステップＳ４２０３〜Ｓ４２０５、図５１のステップＳ４４０３〜Ｓ４４０５、図５３のステップＳ４６０３〜Ｓ４６０５、及び図５５のステップＳ４８０３〜Ｓ４８０５について説明する。
【０４７６】
［ステップＳ４００３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧Ｖ１を用いてプログラムベリファイ動作を行う。
【０４７７】
［ステップＳ４００４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０４７８】
［ステップＳ４００５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ４００４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ４００２を行う。
【０４７９】
［ステップＳ４２０３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧Ｖ４を用いてプログラムベリファイ動作を行う。
【０４８０】
［ステップＳ４２０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０４８１】
［ステップＳ４２０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ４２０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ４２０２を行う。
【０４８２】
［ステップＳ４４０３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧Ｖ７を用いてプログラムベリファイ動作を行う。
【０４８３】
［ステップＳ４４０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０４８４】
［ステップＳ４４０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ４４０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ４４０２を行う。
【０４８５】
［ステップＳ４６０３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＡを用いてプログラムベリファイ動作を行う。
【０４８６】
［ステップＳ４６０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０４８７】
［ステップＳ４６０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ４６０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ４６０２を行う。
【０４８８】
［ステップＳ４８０３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＤを用いてプログラムベリファイ動作を行う。
【０４８９】
［ステップＳ４８０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０４９０】
［ステップＳ４８０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ４８０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ４８０２を行う。
【０４９１】
なお、図４６〜図５６の動作は、図４５を用いて説明した動作をベースにしている。そのため、第１書込み及び第２書込みの適用方法が変わる場合、第４実施形態の変形例に係る半導体記憶装置１００の書込み動作の動作フローも第１書込み及び第２書込みの適用方法に応じて変わる。
【０４９２】
＜４−４−２―２＞パルスの具体例
続いて、図６２〜図６６を用いて、第４実施形態の変形例に係る半導体記憶装置の書込み動作の具体的なパルス例について説明する。図６２〜図６６の表記方法に関しては図２３と同様である。
【０４９３】
図６２〜図６６に示すように、第１実施形態の変形例で説明した電流センス方式のセンスモジュールを有する半導体記憶装置１００においても、第４実施形態で説明したデータ書込み方法を適用することができる。
【０４９４】
＜４−４−３＞効果
以上のように、第１実施形態の変形例で説明した電流センス方式を、第４実施形態で説明した書込み方法に適用することが可能である。これにより、電流センス方式を採用した半導体記憶装置１００においても、第４実施形態で説明した効果と同様の効果を得ることが可能となる。
【０４９５】
＜５＞第５実施形態
第５実施形態について説明する。第４実施形態では、０レベルから、１レベル、２レベル、３レベル、４レベル、５レベル、６レベル、７レベル、８レベル、９レベル、Ａレベル、Ｂレベル、Ｃレベル、Ｄレベル、Ｅレベル、及びＦレベルへと閾値分布を順に遷移させる書込み方式（第１方式）について説明した。第５実施形態では、順にレベルを遷移させるわけではなく、任意のレベルへと閾値分布を遷移させる書込み方式（第２方式）を採用する場合について説明する。尚、第５実施形態に係る半導体記憶装置１００の基本的な構成及び基本的な動作は、上述した第１実施形態〜第４実施形態に係る半導体記憶装置１００と同様である。従って、上述した第１実施形態〜第４実施形態で説明した事項及び上述した第１実施形態〜第４実施形態から容易に類推可能な事項についての説明は省略する。
【０４９６】
＜５−１＞センスアンプユニットの概要
第５実施形態に係るセンスアンプユニット１４０の構成及び動作は、第１実施形態で説明したセンスアンプユニット１４０と同じである。
【０４９７】
＜５−２＞動作
＜５−２−１＞書込み動作の概要
第５実施形態では、任意のレベルに遷移させる書込み方式（第２方式）について説明する。
【０４９８】
一例として、シーケンサ１１１は、メモリセルトランジスタＭＴの閾値を４〜６レベルに遷移させる場合、１〜３レベルの書込みは行わない。また、シーケンサ１１１は、メモリセルトランジスタＭＴの閾値を７〜９レベルに遷移させる場合、１〜６レベルの書込みは行わない。また、シーケンサ１１１は、メモリセルトランジスタＭＴの閾値をＡ〜Ｃレベルに遷移させる場合、１〜９レベルの書込みは行わない。シーケンサ１１１は、メモリセルトランジスタＭＴの閾値をＤ〜Ｆレベルに遷移させる場合、１〜Ｃレベルの書込みは行わない。
【０４９９】
換言すると、シーケンサ１１１は、４〜６レベルプログラム動作を行う時は、１〜３レベルプログラム動作をスキップする。シーケンサ１１１は、７〜９レベルプログラム動作を行う時は、１〜６レベルプログラム動作をスキップする。シーケンサ１１１は、Ａ〜Ｃレベルプログラム動作を行う時は、１〜９レベルプログラム動作をスキップする。シーケンサ１１１は、Ｄ〜Ｆレベルプログラム動作を行う時は、１〜Ｃレベルプログラム動作をスキップする。なお、第２方式の具体例については、これに限らず、スキップさせるレベルは適宜選択可能である。
【０５００】
第５実施形態は、０レベルから１レベルへの書込み、３レベルから４レベルへの書込み、６レベルから７レベルへの書込み、９レベルからＡレベルへの書込み、及びＣレベルからＤレベルへの書込み、の際に第１書込みを適用する。そして、その他の書込みの際に第２書込みを適用する。しかしながら、第１書込み及び第２書込みの適用方法は上記に限らない。
【０５０１】
＜５−２−２＞書込み動作の動作フロー
次に、図６７〜図７７を用いて、第５実施形態に係る半導体記憶装置１００の書込み動作の動作フローについて説明する。ここでは、＜５−２−１＞で説明した動作をベースにした動作フローについて説明する。
【０５０２】
［ステップＳ５０００］
図６７に示すように、第５実施形態の書込み動作においてシーケンサ１１１は、１〜３レベルのデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０５０３】
［ステップＳ５１００］、［ステップＳ５２００］
シーケンサ１１１は、１〜３レベルのデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ５０００、ＹＥＳ）、１〜３レベルに関するプログラム動作を行う。
【０５０４】
［ステップＳ５３００］
第５実施形態の書込み動作においてシーケンサ１１１は、４〜６レベルのデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０５０５】
［ステップＳ５４００］、［ステップＳ５５００］
シーケンサ１１１は、４〜６レベルのデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ５３００、ＹＥＳ）、４〜６レベルに関するプログラム動作を行う。
【０５０６】
［ステップＳ５６００］
第５実施形態の書込み動作においてシーケンサ１１１は、７〜９レベルのデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０５０７】
［ステップＳ５７００］、［ステップＳ５８００］
シーケンサ１１１は、７〜９レベルのデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ５６００、ＹＥＳ）、７〜９レベルに関するプログラム動作を行う。
【０５０８】
［ステップＳ５９００］
第５実施形態の書込み動作においてシーケンサ１１１は、Ａ〜Ｃレベルのデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０５０９】
［ステップＳ６０００］、［ステップＳ６１００］
シーケンサ１１１は、Ａ〜Ｃレベルのデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ５９００、ＹＥＳ）、Ａ〜Ｃレベルに関するプログラム動作を行う。
【０５１０】
［ステップＳ６２００］
第５実施形態の書込み動作においてシーケンサ１１１は、Ｄ〜Ｆレベルのデータが書込まれるメモリセルトランジスタＭＴがあるか否かを判定する。
【０５１１】
［ステップＳ６３００］、［ステップＳ６４００］
シーケンサ１１１は、Ｄ〜Ｆレベルのデータが書込まれるメモリセルトランジスタＭＴがあると判定する場合（ステップＳ６２００、ＹＥＳ）、Ｄ〜Ｆレベルに関するプログラム動作を行う。
【０５１２】
図６８を用いて、０レベルから１レベルへの書込みに関する第１書込み（ステップＳ５１００）の動作フローについて説明する。
【０５１３】
［ステップＳ５１０１］〜［ステップＳ５１０６］
半導体記憶装置１００は、ステップＳ４００１〜Ｓ４００６と同様の動作を行う。
【０５１４】
図６９を用いて、１レベルから２レベルへの書込み、及び２レベルから３レベルへの書込みに関する第１書込み（ステップＳ５２００）の動作フローについて説明する。
【０５１５】
［ステップＳ５２０１］〜［ステップＳ５２０９］
半導体記憶装置１００は、ステップＳ４１０１〜Ｓ４１０９と同様の動作を行う。
【０５１６】
なお、シーケンサ１１１は、ステップＳ５２０３では第１１値ではなく第２１値（２レベル用のプログラム回数）を用いて判定動作を行い、ステップＳ５２０８では第１２値ではなく第２２値（３レベル用のプログラム回数）を用いて判定動作を行う。
【０５１７】
図７０を用いて、０レベルから４レベルへの書込みに関する第１書込み（ステップＳ５４００）の動作フローについて説明する。
【０５１８】
［ステップＳ５４０１］〜［ステップＳ５４０６］
半導体記憶装置１００は、ステップＳ４２０１〜Ｓ４２０６と同様の動作を行う。
【０５１９】
図７１を用いて、４レベルから５レベルへの書込み、及び５レベルから６レベルへの書込みに関する第１書込み（ステップＳ５５００）の動作フローについて説明する。
【０５２０】
［ステップＳ５５０１］〜［ステップＳ５５０９］
半導体記憶装置１００は、ステップＳ４３０１〜Ｓ４３０９と同様の動作を行う。
【０５２１】
なお、シーケンサ１１１は、ステップＳ５５０３では第１３値ではなく第２３値（５レベル用のプログラム回数）を用いて判定動作を行い、ステップＳ５５０８では第１４値ではなく第２４値（６レベル用のプログラム回数）を用いて判定動作を行う。
【０５２２】
図７２を用いて、０レベルから７レベルへの書込みに関する第１書込み（ステップＳ５７００）の動作フローについて説明する。
【０５２３】
［ステップＳ５７０１］〜［ステップＳ５７０６］
半導体記憶装置１００は、ステップＳ４４０１〜Ｓ４４０６と同様の動作を行う。
【０５２４】
図７３を用いて、７レベルから８レベルへの書込み、及び８レベルから９レベルへの書込みに関する第１書込み（ステップＳ５８００）の動作フローについて説明する。
【０５２５】
［ステップＳ５８０１］〜［ステップＳ５８０９］
半導体記憶装置１００は、ステップＳ４５０１〜Ｓ４５０９と同様の動作を行う。
【０５２６】
なお、シーケンサ１１１は、ステップＳ５８０３では第１５値ではなく第２５値（８レベル用のプログラム回数）を用いて判定動作を行い、ステップＳ５８０８では第１６値ではなく第２６値（９レベル用のプログラム回数）を用いて判定動作を行う。
【０５２７】
図７４を用いて、０レベルからＡレベルへの書込みに関する第１書込み（ステップＳ６０００）の動作フローについて説明する。
【０５２８】
［ステップＳ６００１］〜［ステップＳ６００６］
半導体記憶装置１００は、ステップＳ４６０１〜Ｓ４６０６と同様の動作を行う。
【０５２９】
図７５を用いて、ＡレベルからＢレベルへの書込み、及びＢレベルからＣレベルへの書込みに関する第１書込み（ステップＳ６１００）の動作フローについて説明する。
【０５３０】
［ステップＳ６１０１］〜［ステップＳ６１０９］
半導体記憶装置１００は、ステップＳ４７０１〜Ｓ４７０９と同様の動作を行う。
【０５３１】
なお、シーケンサ１１１は、ステップＳ６１０３では第１７値ではなく第２７値（Ｂレベル用のプログラム回数）を用いて判定動作を行い、ステップＳ６１０８では第１８値ではなく第２８値（Ｃレベル用のプログラム回数）を用いて判定動作を行う。
【０５３２】
図７６を用いて、０レベルからＤレベルへの書込みに関する第１書込み（ステップＳ６３００）の動作フローについて説明する。
【０５３３】
［ステップＳ６３０１］〜［ステップＳ６３０６］
半導体記憶装置１００は、ステップＳ４８０１〜Ｓ４８０６と同様の動作を行う。
【０５３４】
図７７を用いて、ＤレベルからＥレベルへの書込み、及びＥレベルからＦレベルへの書込みに関する第１書込み（ステップＳ６４００）の動作フローについて説明する。
【０５３５】
［ステップＳ６４０１］〜［ステップＳ６４０９］
半導体記憶装置１００は、ステップＳ４９０１〜Ｓ４９０９と同様の動作を行う。
【０５３６】
なお、シーケンサ１１１は、ステップＳ６４０３では第１９値ではなく第２９値（Ｅレベル用のプログラム回数）を用いて判定動作を行い、ステップＳ６４０８では第２０値ではなく第３０値（Ｆレベル用のプログラム回数）を用いて判定動作を行う。
【０５３７】
なお、第５実施形態に係る半導体記憶装置の書込み動作の具体的なパルスは、スキップされるビット線の電圧以外は図５７〜図６１と同様になるので説明は省略する。
【０５３８】
＜５−３＞効果
以上のように、書込み方法として第２方式を用いる場合でも、第４実施形態で説明した書込み方法に適用することが可能である。これにより、第４実施形態で説明した効果と同様の効果を得ることが可能となる。
【０５３９】
＜５―４＞第５実施形態の変形例
第５実施形態の変形例について説明する。第５実施形態の変形例では、センスモジュールとして、電流検知タイプのセンスモジュール（第１実施形態の変形例で説明したセンスモジュール）を採用した半導体記憶装置に、第５実施形態の書込み動作を適用する場合について説明する。尚、第５実施形態の変形例に係る半導体記憶装置１００の基本的な構成及び基本的な動作は、上述した第１実施形態、第１実施形態の変形例、第２実施形態、第２実施形態の変形例、第３実施形態、第３実施形態の変形例、第４実施形態、第４実施形態の変形例、及び第５実施形態に係る半導体記憶装置１００と同様である。従って、上述した第１実施形態、第１実施形態の変形例、第２実施形態、第２実施形態の変形例、第３実施形態、第３実施形態の変形例、第４実施形態、第４実施形態の変形例、及び第５実施形態で説明した事項及び上述した第１実施形態、第１実施形態の変形例、第２実施形態、第２実施形態の変形例、第３実施形態、第３実施形態の変形例、第４実施形態、第４実施形態の変形例、及び第５実施形態から容易に類推可能な事項についての説明は省略する。
【０５４０】
＜５−４−１＞センスアンプユニットの概要
第５実施形態の変形例に係るセンスアンプユニット１４０の構成及び動作は、第１実施形態の変形例で説明したセンスアンプユニット１４０と同じである。
【０５４１】
＜５−４−２＞動作
＜５−４−２―１＞書込み動作の動作フロー
第１実施形態の変形例で説明した電流センス方式のセンスモジュール及びプログラムベリファイ動作は、図６７〜図７７で説明した動作フローに適用可能である。簡単のため、ここでは第５実施形態で説明した内容と異なる図６８のステップＳ５１０３〜Ｓ５１０５、図７０のステップＳ５４０３〜Ｓ５４０５、図７２のステップＳ５７０３〜Ｓ５７０５、図７４のステップＳ６００３〜Ｓ６００５、及び図７６のステップＳ６３０３〜Ｓ６３０５について説明する。
【０５４２】
［ステップＳ５１０３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧Ｖ１を用いてプログラムベリファイ動作を行う。
【０５４３】
［ステップＳ５１０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０５４４】
［ステップＳ５１０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ５１０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ５１０２を行う。
【０５４５】
［ステップＳ５４０３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧Ｖ４を用いてプログラムベリファイ動作を行う。
【０５４６】
［ステップＳ５４０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０５４７】
［ステップＳ５４０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ５４０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ５４０２を行う。
【０５４８】
［ステップＳ５７０３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧Ｖ７を用いてプログラムベリファイ動作を行う。
【０５４９】
［ステップＳ５７０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０５５０】
［ステップＳ５７０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ５７０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ５７０２を行う。
【０５５１】
［ステップＳ６００３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＡを用いてプログラムベリファイ動作を行う。
【０５５２】
［ステップＳ６００４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０５５３】
［ステップＳ６００５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ６００４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ６００２を行う。
【０５５４】
［ステップＳ６３０３］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループか否かを判定する為のプログラムベリファイ動作を行う。この場合、シーケンサ１１１は、電圧ＶＤを用いてプログラムベリファイ動作を行う。
【０５５５】
［ステップＳ６３０４］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴの全てにおいてプログラムベリファイ動作がパスしたか否かを判定する。
【０５５６】
［ステップＳ６３０５］
シーケンサ１１１は、書込み対象のメモリセルトランジスタＭＴのうち、プログラムベリファイ動作がパスしていないメモリセルトランジスタＭＴがあると判定する場合（Ｓ６３０４、ＮＯ）、書込み対象のメモリセルトランジスタＭＴが第１〜第３グループのうち、どのグループに属するかを判定する。そして、シーケンサ１１１は、判定されたグループに基づいて、各種電圧を再設定し、ステップＳ６３０２を行う。
【０５５７】
なお、第５実施形態の変形例に係る半導体記憶装置の書込み動作の具体的なパルスは、スキップされるビット線の電圧以外は図６２〜図６６と同様になるので説明は省略する。
【０５５８】
＜５−４−３＞効果
以上のように、第１実施形態の変形例で説明した電流センス方式を、第５実施形態で説明した書込み方法に適用することが可能である。これにより、電流センス方式を採用した半導体記憶装置１００においても、第５実施形態で説明した効果と同様の効果を得ることが可能となる。
【０５５９】
＜６＞その他
なお、上述した実施形態によれば、メモリセルアレイ１３０として三次元積層型ＮＡＮＤ型フラッシュメモリを例に挙げて説明したが、これに限らない。すなわちメモリセルアレイ１３０の構成については、例えば、“SEMICONDUCTOR MEMORY DEVICE HAVING PLURALITY OF TYPES OF MEMORIES INTEGRATED ON ONE CHIP”という２００９年３月３日に出願された米国特許出願１２／３９７，７１１号に記載されている。また、“SEMICONDUCTOR MEMORY DEVICE INCLUDING STACKD GATE HAVING CHARGE ACCUMULATION LAYER AND CONTROL GATE AND METHOD OF WRITING DATA TO SEMICONDUCTOR MEMORY DEVICE”という２０１２年４月１９日に出願された米国特許出願１３／４５１，１８５号、“NONVOLATILE SEMICONDUCTOR MEMORY ELEMENT, NONVOLATILE SEMICONDUCTOR MEMORY, AND METHOD FOR OPERATING NONVOLATILE SEMICONDUCTOR MEMORY ELEMENT”という２００９年３月１７日に出願された米国特許出願１２／４０５，６２６号、及び“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE HAVING ELEMENT ISOLATING REGION OF TRENCH TYPE AND METHOD OF MANUFACTURING THE SAME”という２００１年９月２１日に出願された米国特許出願０９／９５６，９８６号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【０５６０】
また、上述した各実施形態によれば、シーケンサ１１１は、全てのページデータを受信してからデータの書込みを行っている。しかし、これに限らず、例えば、ページデータを受信するたびに書込みを行うメモリシステムにおいても、上述したような各実施形態を適用することが可能である。
【０５６１】
また、上述した各実施形態では、メモリセルトランジスタＭＴが、４〜１６値のデータを記憶する場合について説明したが、これに限らず、メモリセルトランジスタＭＴが３２値以上のデータを記憶する場合でも適用可能である。
【０５６２】
また、上述した各実施形態において、
（１）読み出し動作では、
Aレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば０V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V, 0.21V〜0.31V, 0.31V〜0.4V, 0.4V〜0.5V, 0.5V〜0.55Vいずれかの間にしてもよい。
【０５６３】
Bレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V, 1.8V〜1.95V, 1.95V〜2.1V,  2.1V〜2.3Vいずれかの間にしてもよい。
【０５６４】
Cレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば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方式（Ｉｎｃｒｅｍｅｎｔａｌ Ｓｔｅｐ Ｐｕｌｓｅ Ｐｒｏｇｒａｍ）としたとき、ステップアップの電圧として、例えば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の間にしてもよい。
（４）メモリセルトランジスタの構造は、
半導体基板（シリコン基板）上に膜厚が４〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が２〜３ｎｍのＳｉＮ、またはＳｉＯＮなどの絶縁膜と膜厚が３〜８ｎｍのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはＲｕなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が３〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と膜厚が３〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜に挟まれた膜厚が４〜１０ｎｍのシリコン酸化膜を有している。Ｈｉｇｈ−ｋ膜はＨｆＯなどが挙げられる。また、シリコン酸化膜の膜厚はＨｉｇｈ−ｋ膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が３〜１０ｎｍの仕事関数調整用の材料を介して膜厚が３０ｎｍ〜７０ｎｍの制御電極が形成されている。ここで仕事関数調整用の材料はＴａＯなどの金属酸化膜、ＴａＮなどの金属窒化膜である。制御電極にはＷなどを用いることができる。
【０５７０】
また、メモリセルトランジスタ間にはエアギャップを形成することができる。
【０５７１】
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内において種々変形して実施することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示された構成要件を適宜組み合わせることによって種々の発明が抽出される。例えば、開示された構成要件からいくつかの構成要件が削除されても、所定の効果が得られるものであれば、発明として抽出され得る。
【符号の説明】
【０５７２】
１…メモリシステム
１００…ＮＡＮＤフラッシュメモリ
１１０…周辺回路
１１１…シーケンサ
１１２…レジスタ
１１３…ドライバ
１２０…コア回路
１３０…メモリセルアレイ
１３１…ＮＡＮＤストリング
１４０…センスアンプユニット
１４１…センスモジュール（電圧）
１４２…フックアップ部
１４３…センスモジュール（電流）
１４６…センスアンプ
１５０…ロウデコーダ
２００…メモリコントローラ
２０１…ホストインターフェイス回路
２０２…ＲＡＭ
２０３…ＣＰＵ
２０４…バッファメモリ
２０５…ＮＡＮＤインターフェイス回路
２０６…ＥＣＣ
３００…ホストデバイス
【図１】
2018160292.tif 000003
【図２】
2018160292.tif 000004
【図３】
2018160292.tif 000005
【図４】
2018160292.tif 000006
【図５】
2018160292.tif 000007
【図６】
2018160292.tif 000008
【図７】
2018160292.tif 000009
【図８】
2018160292.tif 000010
【図９】
2018160292.tif 000011
【図１０】
2018160292.tif 000012
【図１１】
2018160292.tif 000013
【図１２】
2018160292.tif 000014
【図１３】
2018160292.tif 000015
【図１４】
2018160292.tif 000016
【図１５】
2018160292.tif 000017
【図１６】
2018160292.tif 000018
【図１７】
2018160292.tif 000019
【図１８】
2018160292.tif 000020
【図１９】
2018160292.tif 000021
【図２０】
2018160292.tif 000022
【図２１】
2018160292.tif 000023
【図２２】
2018160292.tif 000024
【図２３】
2018160292.tif 000025
【図２４】
2018160292.tif 000026
【図２５】
2018160292.tif 000027
【図２６】
2018160292.tif 000028
【図２７】
2018160292.tif 000029
【図２８】
2018160292.tif 000030
【図２９】
2018160292.tif 000031
【図３０】
2018160292.tif 000032
【図３１】
2018160292.tif 000033
【図３２】
2018160292.tif 000034
【図３３】
2018160292.tif 000035
【図３４】
2018160292.tif 000036
【図３５】
2018160292.tif 000037
【図３６】
2018160292.tif 000038
【図３７】
2018160292.tif 000039
【図３８】
2018160292.tif 000040
【図３９】
2018160292.tif 000041
【図４０】
2018160292.tif 000042
【図４１】
2018160292.tif 000043
【図４２】
2018160292.tif 000044
【図４３】
2018160292.tif 000045
【図４４】
2018160292.tif 000046
【図４５】
2018160292.tif 000047
【図４６】
2018160292.tif 000048
【図４７】
2018160292.tif 000049
【図４８】
2018160292.tif 000050
【図４９】
2018160292.tif 000051
【図５０】
2018160292.tif 000052
【図５１】
2018160292.tif 000053
【図５２】
2018160292.tif 000054
【図５３】
2018160292.tif 000055
【図５４】
2018160292.tif 000056
【図５５】
2018160292.tif 000057
【図５６】
2018160292.tif 000058
【図５７】
2018160292.tif 000059
【図５８】
2018160292.tif 000060
【図５９】
2018160292.tif 000061
【図６０】
2018160292.tif 000062
【図６１】
2018160292.tif 000063
【図６２】
2018160292.tif 000064
【図６３】
2018160292.tif 000065
【図６４】
2018160292.tif 000066
【図６５】
2018160292.tif 000067
【図６６】
2018160292.tif 000068
【図６７】
2018160292.tif 000069
【図６８】
2018160292.tif 000070
【図６９】
2018160292.tif 000071
【図７０】
2018160292.tif 000072
【図７１】
2018160292.tif 000073
【図７２】
2018160292.tif 000074
【図７３】
2018160292.tif 000075
【図７４】
2018160292.tif 000076
【図７５】
2018160292.tif 000077
【図７６】
2018160292.tif 000078
【図７７】
2018160292.tif 000079