(57)【要約】【課題】データの信頼性を向上することが可能な半導体メモリを提供する。【解決手段】実施形態の半導体メモリは、複数のメモリセルと、複数のメモリセルに接続されたワード線と、複数のメモリセルにそれぞれ接続された複数のビット線と、コントローラとを含む。それぞれが第１乃至第３データを記憶するメモリセルは、それぞれ第１乃至第３閾値電圧を有するように設定される。書き込み動作においてコントローラは、第１書き込みを実行し、第１書き込みに応じて第２データを書き込むべき複数のメモリセルを複数のサブグループに分類し、分類の後に第１プログラムループを含む第２書き込みを実行する。コントローラは、１回の第１プログラムループ内に、前記ワード線に対し第１プログラムパルスと第２プログラムパルスとをそれぞれ印加する。【選択図】図８
2019057350.tif 000002
【特許請求の範囲】
【請求項１】
各々が閾値電圧に基づいて複数ビットのデータを記憶する複数のメモリセルであって、前記複数ビットのデータとして第１データを記憶する場合は第１閾値電圧を有するように設定され、前記複数ビットのデータとして第２データを記憶する場合は第１閾値電圧より高い第２閾値電圧を有するように設定され、前記複数ビットのデータとして第３データを記憶する場合は第２閾値電圧より高い第３閾値電圧を有するように設定される複数のメモリセルと、
前記複数のメモリセルに接続されたワード線と、
前記複数のメモリセルにそれぞれ接続された複数のビット線と、
第１書き込みを実行し、前記第１書き込み結果に応じて前記第２データを書き込むべき前記複数のメモリセルを複数のサブグループに分類し、前記分類の後に第１プログラムループを含む第２書き込みを実行するコントローラと、
を備え、
前記コントローラは、前記第２書き込みを実行する際、
前記第１データを書き込むべき前記複数のメモリセルを第１グループの前記メモリセルに対応付け、前記第３データを書き込むべき前記複数のメモリセルを第２グループの前記メモリセルに対応付け、前記第２データを書き込むべき前記複数のメモリセルのうち前記複数のサブグループの一のサブグループに分類されたメモリセルを前記第１グループの前記メモリセルに対応付け、前記第２データを書き込むべき前記複数のメモリセルのうち前記複数のサブグループの他のサブグループに分類されたメモリセルを前記第２グループの前記メモリセルに対応付け、
１回の前記第１プログラムループ内に、前記ワード線に対し第１プログラムパルスと第２プログラムパルスとをそれぞれ印加し、
前記第１プログラムパルスを印加している間に、前記第１グループの前記メモリセルに接続された前記ビット線に対し第１電圧を印加し、
前記第２プログラムパルスを印加している間に、前記第１グループの前記メモリセルに接続された前記ビット線に対し第１電圧よりも高い第２電圧を印加し、前記第２グループの前記メモリセルに接続された前記ビット線に対し前記第１電圧を印加する、半導体メモリ。
【請求項２】
前記第１書き込みは、プログラムループ内に前記ワード線に対しプログラムパルスが印加される回数が前記第１プログラムループよりも少なく、且つ前記プログラムパルスを前記ワード線に対し印加した後前記メモリセルにおける前記第１データの書き込み完了を判定するベリファイ動作を実行する第２プログラムループを含み、
前記コントローラは、前記第２プログラムループ内で実行した前記ベリファイ動作をパスした前記メモリセルの数が所定の数を超えると、前記第２データを書き込むべき前記複数のメモリセルを複数のサブグループに分類したうえで前記第２書き込みを開始する、
請求項１に記載の半導体メモリ。
【請求項３】
各々が閾値電圧に基づいて複数ビットのデータを記憶する複数のメモリセルであって、前記複数ビットのデータとして第１データを記憶する場合は第１閾値電圧を有するように設定され、前記複数ビットのデータとして第２データを記憶する場合は第１閾値電圧より高い第２閾値電圧を有するように設定され、前記複数ビットのデータとして第３データを記憶する場合は第２閾値電圧より高い第３閾値電圧を有するように設定される複数のメモリセルと、
前記複数のメモリセルに接続されたワード線と、
前記複数のメモリセルにそれぞれ接続された複数のビット線と、
外部から第１ページデータを受け取ると、第１書き込みを実行して前記第１ページデータを前記複数のメモリセルに書き込み、
さらに外部から第２ページデータを受け取ると、前記ワード線に所定の電圧を印加して前記複数のメモリセルから前記第１ページデータを読み出し、且つ前記ワード線に前記所定の電圧より高い電圧を印加して前記第２データを書き込むべき前記複数のメモリセルにおける前記第１書き込み後の閾値電圧分布をモニタし、このモニタ結果に基づき前記第２データを書き込むべき前記複数のメモリセルを複数のサブグループに分類し、前記分類の後に第１プログラムループを含む第２書き込みを実行して前記読み出した第１ページデータと前記受け取った第２ページデータとに基づいた複数ビットのデータを前記複数のメモリセルに書き込む書き込み動作を実行するコントローラと、
を備え、
前記コントローラは、前記第２書き込みを実行する際、
前記第２データを書き込むべき前記複数のメモリセルのうち前記複数のサブグループの一のサブグループに分類されたメモリセルを第１グループの前記メモリセルに対応付け、前記第２データを書き込むべき前記複数のメモリセルのうち前記複数のサブグループの他のサブグループに分類されたメモリセルを第２グループの前記メモリセルに対応付け、
１回の前記第１プログラムループ内に、前記ワード線に対し第１プログラムパルスと第２プログラムパルスとをそれぞれ印加し、
前記第１プログラムパルスを印加している間に、前記第１グループの前記メモリセルに接続された前記ビット線に対し第１電圧を印加し、
前記第２プログラムパルスを印加している間に、前記第１グループの前記メモリセルに接続された前記ビット線に対し第１電圧よりも高い第２電圧を印加し、前記第２グループの前記メモリセルに接続された前記ビット線に対し前記第１電圧を印加する、半導体メモリ。
【請求項４】
前記第１プログラムパルスの電圧は、前記第２プログラムパルスの電圧よりも低い、
請求項１又は請求項３に記載の半導体メモリ。
【請求項５】
各々が閾値電圧に基づいて複数ビットのデータを記憶する複数のメモリセルと、
前記複数のメモリセルに接続されたワード線と、
外部から第１ページデータを受け取ると、第１書き込みを実行して前記第１ページデータを前記複数のメモリセルに書き込み、
さらに外部から第２ページデータを受け取ると、互いに電圧値が異なる複数のプログラムパルスを前記ワード線に対し印加するプログラムループを含む第２書き込みを実行し、前記第２ページデータと前記第１ページデータとに基づいた複数ビットのデータを前記複数のメモリセルに書き込む書き込み動作を実行するコントローラと、
を備え、
前記コントローラは、前記第２ページデータを外部から受け取った後前記第２書き込みを実行する前に、
前記第１書き込みにより前記複数のメモリセルに書き込まれた前記第１ページデータを読み出し可能な読み出し電圧、及びこの読み出し電圧より高く前記複数のプログラムパルスの電圧より低い電圧を前記ワード線に対し印加する、半導体メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、半導体メモリに関する。
【背景技術】
【０００２】
半導体メモリとしてＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２００９２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
データの信頼性を向上することが可能な半導体メモリを提供する。
【課題を解決するための手段】
【０００５】
実施形態の半導体メモリは、複数のメモリセルと、ワード線と、複数のビット線と、コントローラと、を含む。複数のメモリセルは、各々が閾値電圧に基づいて複数ビットのデータを記憶する。複数のメモリセルは、複数ビットのデータとして第１データを記憶する場合は第１閾値電圧を有するように設定され、複数ビットのデータとして第２データを記憶する場合は第１閾値電圧より高い第２閾値電圧を有するように設定され、複数ビットのデータとして第３データを記憶する場合は第２閾値電圧より高い第３閾値電圧を有するように設定される。ワード線は、複数のメモリセルに接続される。複数のビット線は、複数のメモリセルにそれぞれ接続される。コントローラは、第１書き込みを実行し、第１書き込み結果に応じて第２データを書き込むべき複数のメモリセルを複数のサブグループに分類し、分類の後に第１プログラムループを含む第２書き込みを実行する。コントローラは、第２書き込みを実行する際、第１データを書き込むべき複数のメモリセルを第１グループのメモリセルに対応付け、第３データを書き込むべき複数のメモリセルを第２グループのメモリセルに対応付け、第２データを書き込むべき複数のメモリセルのうち複数のサブグループの一のサブグループに分類されたメモリセルを第１グループのメモリセルに対応付け、第２データを書き込むべき複数のメモリセルのうち複数のサブグループの他のサブグループに分類されたメモリセルを第２グループのメモリセルに対応付ける。コントローラは、１回の第１プログラムループ内に、ワード線に対し第１プログラムパルスと第２プログラムパルスとをそれぞれ印加し、第１プログラムパルスを印加している間に、第１グループのメモリセルに接続されたビット線に対し第１電圧を印加し、第２プログラムパルスを印加している間に、第１グループのメモリセルに接続されたビット線に対し第１電圧よりも高い第２電圧を印加し、第２グループのメモリセルに接続されたビット線に対し第１電圧を印加する。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係る半導体メモリを含むメモリシステムの構成例を示すブロック図。
【図２】第１実施形態におけるメモリセルアレイ回路構成の一例を示す図。
【図３】第１実施形態におけるメモリセルトランジスタの閾値分布の一例を示す図。
【図４】第１実施形態におけるメモリセルトランジスタの閾値分布に対するデータの割り付けの一例を示す図。
【図５】第１実施形態におけるセンスアンプユニットの回路構成の一例を示す図。
【図６】第１実施形態に係る半導体メモリの第１書き込み動作において各種配線に印加される電圧の一例を示す図。
【図７】第１実施形態に係る半導体メモリの第１書き込み動作におけるメモリセルトランジスタの閾値分布の変化の一例を示す図。
【図８】第１実施形態に係る半導体メモリの第２書き込み動作において各種配線に印加される電圧の一例を示す図。
【図９】第１実施形態に係る半導体メモリの第２書き込み動作におけるメモリセルトランジスタの閾値分布の変化の一例を示す図。
【図１０】第１実施形態におけるメモリシステムの書き込み動作におけるフローチャートの一例を示す図。
【図１１】第１実施形態に係る半導体メモリの第２書き込み動作における“Ｄ”プログラム対象のメモリセルトランジスタの閾値電圧の変化の一例を示す図。
【図１２】第２実施形態に係る半導体メモリの第２書き込み動作において各種配線に印加される電圧の一例を示す図。
【図１３】第２実施形態の第１変形例に係る半導体メモリの第２書き込み動作において各種配線に印加される電圧の一例を示す図。
【図１４】第２実施形態に係る半導体メモリの第２書き込み動作における“Ｃ”プログラム対象のメモリセルトランジスタの閾値電圧の変化の一例を示す図。
【図１５】第２実施形態に係る半導体メモリの第２書き込み動作における“Ｅ”プログラム対象のメモリセルトランジスタの閾値電圧の変化の一例を示す図。
【図１６】第３実施形態に係る半導体メモリにおける第３書き込み動作のフローチャートの一例を示す図。
【図１７】第３実施形態に係る半導体メモリの第３書き込み動作において各種配線に印加される電圧の一例を示す図。
【図１８】第３実施形態に係る半導体メモリの第３書き込み動作におけるメモリセルトランジスタの閾値分布の変化の一例を示す図。
【図１９】第４実施形態に係る半導体メモリにおける第３書き込み動作のフローチャートの一例を示す図。
【図２０】第４実施形態に係る半導体メモリの第３書き込み動作において各種配線に印加される電圧の一例を示す図。
【図２１】第４実施形態に係る半導体メモリの第３書き込み動作における“Ｄ”プログラム対象のメモリセルトランジスタの閾値電圧の変化の一例を示す図。
【図２２】第１実施形態の変形例に係る半導体メモリの第２書き込み動作において各種配線に印加される電圧の一例を示す図。
【図２３】第２実施形態の第２変形例に係る半導体メモリの第２書き込み動作において各種配線に印加される電圧の一例を示す図。
【図２４】第３実施形態の変形例に係る半導体メモリの第３書き込み動作において各種配線に印加される電圧の一例を示す図。
【図２５】第４実施形態の変形例に係る半導体メモリの第３書き込み動作において各種配線に印加される電圧の一例を示す図。
【発明を実施するための形態】
【０００７】
以下に、実施形態について図面を参照して説明する。図面は模式的なものである。尚、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付す。参照符号を構成する文字の後の数字は、同じ文字を含んだ参照符号によって参照され、且つ同様の構成を有する要素同士を区別するために用いられている。同じ文字を含んだ参照符号で示される要素を相互に区別する必要がない場合、これらの要素は同じ文字のみを含んだ参照符号により参照される。
【０００８】
［１］第１実施形態
以下に、第１実施形態に係る半導体メモリについて説明する。
【０００９】
［１−１］構成
［１−１−１］半導体メモリ１０の構成
図１は、第１実施形態に係る半導体メモリ１０を含むメモリシステム１の構成例を示している。メモリシステム１は、図１に示すように半導体メモリ１０及びメモリコントローラ２０を備えている。
【００１０】
半導体メモリ１０は、データを不揮発に記憶することが可能なＮＡＮＤ型フラッシュメモリである。半導体メモリ１０は、図１に示すようにメモリセルアレイ１１、コマンドレジスタ１２、アドレスレジスタ１３、シーケンサ１４、ドライバ１５、ロウデコーダ１６、及びセンスアンプモジュール１７を備えている。
【００１１】
メモリセルアレイ１１は、複数のブロックＢＬＫ０〜ＢＬＫｎ（ｎは１以上の整数）を含んでいる。ブロックＢＬＫは、不揮発性メモリセルの集合であり、例えばデータの消去単位となる。メモリセルアレイ１１には、複数のビット線及び複数のワード線が設けられ、各メモリセルは、１本のビット線及び１本のワード線に関連付けられている。メモリセルアレイ１１の詳細な構成については後述する。
【００１２】
コマンドレジスタ１２は、半導体メモリ１０がメモリコントローラ２０から受信したコマンドＣＭＤを保持する。コマンドＣＭＤは、例えばシーケンサ１４に読み出し動作を実行させる命令や、書き込み動作を実行させる命令を含んでいる。
【００１３】
アドレスレジスタ１３は、半導体メモリ１０がメモリコントローラ２０から受信したアドレス情報ＡＤＤを保持する。アドレス情報ＡＤＤは、例えばブロックアドレスＢＡ及びページアドレスＰＡを含んでいる。ブロックアドレスＢＡは、各種動作の対象となるメモリセルを含むブロックＢＬＫの選択に使用される。ページアドレスＰＡは、各種動作の対象となるメモリセルに関連付けられたワード線の選択に使用される。
【００１４】
シーケンサ１４は、コマンドレジスタ１２に保持されたコマンドＣＭＤに基づいて、半導体メモリ１０全体の動作を制御する。例えばシーケンサ１４は、ドライバ１５、ロウデコーダ１６、及びセンスアンプモジュール１７を制御して、メモリコントローラ２０から受信したデータＤＡＴの書き込み動作を実行する。
【００１５】
ドライバ１５は、シーケンサ１４の制御に基づいて、所望の電圧を生成する。そしてドライバ１５は、アドレスレジスタ１３に保持されたページアドレスＰＡに基づいて、例えば選択されたワード線に印加する電圧と、非選択のワード線に印加する電圧とを、対応する信号線にそれぞれ印加する。以下では、選択されたワード線のことを選択ワード線と称し、非選択のワード線のことを非選択ワード線と称する。
【００１６】
ロウデコーダ１６は、アドレスレジスタ１３に保持されたブロックアドレスＢＡに基づいて、１つのブロックＢＬＫを選択する。そしてロウデコーダ１６は、ドライバ１５が各信号線に印加した電圧を、例えば選択ワード線及び非選択ワード線にそれぞれ印加する。
【００１７】
センスアンプモジュール１７は、メモリコントローラ２０から受信した書き込みデータＤＡＴに応じて、各ビット線に所望の電圧を印加する。また、センスアンプモジュール１７は、ビット線の電圧に基づいてメモリセルに記憶されたデータを判定し、判定した読み出しデータＤＡＴをメモリコントローラ２０に送信する。センスアンプモジュール１７の詳細な構成については後述する。
【００１８】
［１−１−２］メモリコントローラ２０の構成
メモリコントローラ２０は、ホスト機器３０からの命令に応答して、半導体メモリ１０に対して読み出し、書き込み、及び消去等を命令する。メモリコントローラ２０は、図１に示すようにプロセッサ２１、ＲＡＭ（Random Access Memory）２２、ホストインターフェイス回路２３、バッファメモリ２４、ＥＣＣ（Error Correction Code）回路２５、及びＮＡＮＤインターフェイス回路２６を備えている。
【００１９】
プロセッサ２１は、メモリコントローラ２０全体の動作を制御する。例えばプロセッサ２１は、ホスト機器３０から受信した書き込み命令に応答して、書き込みコマンドを発行する。また、プロセッサ２１は、例えばウェアレベリング等、半導体メモリ１０のメモリ空間を管理するための様々な処理を実行する。
【００２０】
ＲＡＭ２２は、例えばＤＲＡＭ（Dynamic Random Access Memory)等の揮発性メモリである。ＲＡＭ２２は、プロセッサ２１の作業領域として使用される。例えばＲＡＭ２２は、半導体メモリ１０を管理するためのファームウェア、各種管理テーブル、各種動作時におけるカウント結果等を保持する。
【００２１】
ホストインターフェイス回路２３は、ホストバスによって外部のホスト機器３０と接続され、メモリコントローラ２０及びホスト機器３０間のデータ、コマンド、及びアドレスの転送を制御する。ホストインターフェイス回路２３は、例えばＳＡＴＡ（Serial Advanced Technology Attachment）、ＳＡＳ（Serial Attached SCSI）、ＰＣＩｅ（PCI Express）（登録商標）等の通信インターフェイス規格をサポートする。
【００２２】
バッファメモリ２４は、メモリコントローラ２０が半導体メモリ１０から受信した読み出しデータや、ホスト機器３０から受信した書き込みデータ等を一時的に保持する。
【００２３】
ＥＣＣ回路２５は、データのエラー訂正処理をする。具体的には、書き込み動作時にＥＣＣ回路２５は、ホスト機器３０から受信した書き込みデータに基づいてパリティを生成し、生成したパリティを書き込みデータに付与する。読み出し動作時にＥＣＣ回路２５は、半導体メモリ１０から受信した読み出しデータに基づいてシンドロームを生成し、生成したシンドロームに基づいて読み出しデータのエラーを検出及び訂正する。
【００２４】
ＮＡＮＤインターフェイス回路２６は、メモリコントローラ２０及び半導体メモリ１０間のデータ、コマンド、及びアドレスの転送を制御し、ＮＡＮＤインターフェイス規格をサポートする。例えばＮＡＮＤインターフェイス回路２６は、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号ＷＥｎ、及びリードイネーブル信号ＲＥｎを送信し、レディビジー信号ＲＢｎを受信し、入出力信号Ｉ／Ｏを送受信する。信号ＣＬＥは、受信した信号Ｉ／ＯがコマンドＣＭＤであることを半導体メモリ１０に通知する信号である。信号ＡＬＥは、受信した信号Ｉ／Ｏがアドレス情報ＡＤＤであることを半導体メモリ１０に通知する信号である。信号ＷＥｎは、信号Ｉ／Ｏの入力を半導体メモリ１０に命令する信号である。信号ＲＥｎは、信号Ｉ／Ｏの出力を半導体メモリ１０に命令する信号である。信号ＲＢｎは、半導体メモリ１０がメモリコントローラ２０からの命令を受け付けるレディ状態であるか命令を受け付けないビジー状態であるかを、メモリコントローラ２０に通知する信号である。信号Ｉ／Ｏは、例えば８ビットの信号であり、コマンドＣＭＤ、アドレス情報ＡＤＤ、書き込みデータＤＡＴ、読み出しデータ等を含み得る。
【００２５】
以上で説明した半導体メモリ１０及びメモリコントローラ２０は、それらの組み合わせにより一つの半導体装置を構成しても良い。このような半導体装置としては、例えばＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００２６】
［１−１−３］メモリセルアレイ１１の構成
図２は、第１実施形態におけるメモリセルアレイ１０の回路構成の一例を示している。以下に、第１実施形態におけるメモリセルアレイ１０の回路構成について、１つのブロックＢＬＫに注目して説明する。
【００２７】
ブロックＢＬＫは、例えば図２に示すように４つのストリングユニットＳＵ０〜ＳＵ３を含んでいる。各ストリングユニットＳＵは、ビット線ＢＬ０〜ＢＬｍ（ｍは１以上の整数）にそれぞれ関連付けられた複数のＮＡＮＤストリングＮＳを含んでいる。例えばＮＡＮＤストリングＮＳは、８個のメモリセルトランジスタＭＴ０〜ＭＴ７並びに選択トランジスタＳＴ１及びＳＴ２を含んでいる。
【００２８】
メモリセルトランジスタＭＴは、制御ゲート及び電荷蓄積層を備え、データを不揮発に保持する。各ＮＡＮＤストリングＮＳに含まれたメモリセルトランジスタＭＴ０〜ＭＴ７は、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。同一ブロックＢＬＫ内のメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続されている。各ストリングユニットＳＵ内で共通のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴの記憶する１ビットデータの集合は、“ページ”と呼ばれている。
【００２９】
選択トランジスタＳＴ１及びＳＴ２は、各種動作時におけるストリングユニットＳＵの選択に使用される。同一ブロックＢＬＫ内のストリングユニットＳＵ０〜ＳＵ３にそれぞれ含まれた選択トランジスタＳＴ１のゲートは、それぞれ選択ゲート線ＳＧＤ０〜ＳＧＤ３に共通接続されている。各ブロックＢＬＫで同一列に対応する選択トランジスタＳＴ１のドレインは、それぞれ対応するビット線ＢＬに共通接続されている。同一ブロックＢＬＫ内の選択トランジスタＳＴ２のゲートは、選択ゲート線ＳＧＳに共通接続されている。各ブロックＢＬＫの選択トランジスタＳＴ２のソースは、複数のブロックＢＬＫ間でソース線ＳＬに共通接続されている。
【００３０】
以上で説明したメモリセルトランジスタＭＴは、閾値電圧を細かく分類することによって、２ビット以上のデータを記憶することが出来る。例えば、メモリセルトランジスタＭＴは、書き込み方式としてＴＬＣ（Triple-Level Cell）方式が適用された場合に３ビットデータを記憶し、ＱＬＣ（Quadruple-Level Cell）方式が適用された場合に４ビットデータを記憶する。つまり、共通のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴは、ＴＬＣ方式が適用された場合に３ページのデータを記憶し、ＱＬＣ方式が適用された場合に４ページのデータを記憶する。
【００３１】
図３は、ＴＬＣ方式（３bit/cell）及びＱＬＣ方式（４bit/cell）が適用された場合におけるメモリセルトランジスタＭＴの閾値分布の一例をそれぞれ示し、縦軸がメモリセルトランジスタＭＴの数に対応し、横軸がメモリセルトランジスタＭＴの閾値電圧Ｖｔｈに対応している。メモリセルトランジスタＭＴの閾値分布は、図３に示すように、ＴＬＣ方式の場合に８個に分類され、ＱＬＣ方式の場合に１６個に分類される。
【００３２】
ＴＬＣ方式における８個の閾値分布は、閾値電圧の低い方から順に“ＥＲ”レベル、“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベル、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、“Ｇ”レベルと呼ばれる。これらの閾値分布には、それぞれ３ビットデータが割り当てられる。ＱＬＣ方式における１６個の閾値分布は、閾値電圧の低い方から順に“ＥＲ”レベル、“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベル、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、“Ｇ”レベル、“Ｈ”レベル、“Ｉ”レベル、“Ｊ”レベル、“Ｋ”レベル、“Ｌ”レベル、“Ｍ”レベル、“Ｎ”レベル、“Ｏ”レベルと呼ばれる。これらの閾値分布には、それぞれ４ビットデータが割り当てられる。
【００３３】
以上で説明した各書き込み方式の閾値分布において、隣り合う閾値分布の間にそれぞれ読み出し電圧が設定される。例えば読み出し電圧ＡＲは、“ＥＲ”レベルにおける最大の閾値電圧と“Ａ”レベルにおける最小の閾値電圧との間に設定され、メモリセルトランジスタＭＴの閾値電圧が“ＥＲ”レベルの閾値分布に含まれるのか“Ａ”レベル以上の閾値分布に含まれるのかを判定する動作に使用される。読み出し電圧ＢＲは、“Ａ”レベルにおける最大の閾値電圧と“Ｂ”レベルにおける最小の閾値電圧との間に設定され、メモリセルトランジスタＭＴの閾値電圧が“Ａ”レベル以下の閾値分布に含まれるのか“Ｂ”レベル以上の閾値分布に含まれるのかを判定する動作に使用される。
【００３４】
例えば、ワード線ＷＬに読み出し電圧ＡＲが印加されると、“ＥＲ”レベルに含まれるメモリセルトランジスタＭＴがオン状態になり、“Ａ”レベル以上の閾値分布に含まれるメモリセルトランジスタがオフ状態になる。ワード線ＷＬに読み出し電圧ＢＲが印加されると、“Ａ”レベル以下の閾値分布に含まれるメモリセルトランジスタＭＴがオン状態になり、“Ｂ”レベル以上の閾値分布に含まれるメモリセルトランジスタがオフ状態になる。
【００３５】
その他の読み出し電圧ＣＲ、ＤＲ、ＥＲ、ＦＲ、ＧＲ、ＨＲ、ＩＲ、ＪＲ、ＫＲ、ＬＲ、ＭＲ、ＮＲ、及びＯＲも、読み出し電圧ＡＲ及びＢＲと同様に、隣り合う閾値分布間に設定される。
【００３６】
各書き込み方式において、最も高い閾値分布における最大の閾値電圧よりも高い電圧に、読み出しパス電圧Ｖreadが設定される。ワード線ＷＬに読み出しパス電圧Ｖreadが印加されると、メモリセルトランジスタＭＴは記憶するデータに依らずにオン状態になる。
【００３７】
図４は、ＴＬＣ方式が適用された場合におけるメモリセルトランジスタＭＴの閾値分布に対するデータの割り付けの一例を示している。尚、図４に示された電圧ＡＶ、ＢＶ、ＣＶ、ＤＶ、ＥＶ、ＦＶ、及びＧＶは、それぞれ“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベル、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルのプログラムに使用されるベリファイ電圧である。半導体メモリ１０は、メモリセルトランジスタＭＴの閾値電圧が所望のベリファイ電圧を超えたことを検知することによってベリファイパスとし、当該メモリセルトランジスタＭＴのプログラムを完了する。例えばベリファイ電圧ＡＶは、“ＥＲ”レベルにおける最大の閾値電圧と“Ａ”レベルにおける最小の閾値電圧との間に設定され、“Ａ”レベルの閾値分布の下裾近傍に位置する。その他のベリファイ電圧ＢＶ、ＣＶ、ＤＶ、ＥＶ、ＦＶ、ＧＶについても同様である。つまり、ベリファイ電圧ＡＶ、ＢＶ、ＣＶ、ＤＶ、ＥＶ、ＦＶ、及びＧＶは、例えば読み出し電圧ＡＲ、ＢＲ、ＣＲ、ＤＲ、ＥＲ、ＦＲ、及びＧＲよりもそれぞれ高い電圧に設定される。
【００３８】
図４に示すＴＬＣ方式のデータの割り付けが、以下に羅列されている。  
“ＥＲ”レベル：“１１１”（“Lowerビット／Middleビット／Upperビット”）データ
“Ａ”レベル：“１１０”データ
“Ｂ”レベル：“１００”データ
“Ｃ”レベル：“１０１”データ
“Ｄ”レベル：“００１”データ
“Ｅ”レベル：“０１１”データ
“Ｆ”レベル：“０１０”データ
“Ｇ”レベル：“０００”データ
このデータの割り付けが適用された場合、読み出し動作においてLowerビットの１ページデータ（Lowerページデータ）は、読み出し電圧ＤＲを用いた読み出し結果によって確定する。Middleビットの１ページデータ（Middleページデータ）は、読み出し電圧ＢＲ、ＥＲ、及びＧＲを用いた読み出し結果によって確定する。Upperビットの１ページデータ（Upperページデータ）は、読み出し電圧ＡＲ、ＣＲ、及びＦＲを用いた読み出し結果によって確定する。
【００３９】
このように、Lowerページデータ、Middleページデータ、及びUpperページデータがそれぞれ、１回、３回、及び３回の読み出し動作によって確定するため、このデータの割り付けは“１−３−３コード”と称される。以下では、書き込み方式にＴＬＣ方式を適用し、データの割り付けに図４に示す１−３−３コードを適用した場合を例に説明する。
【００４０】
［１−１−４］センスアンプモジュール１７の構成
図５は、第１実施形態におけるセンスアンプモジュール１７の回路構成の一例を示している。センスアンプモジュール１７は、ビット線ＢＬ０〜ＢＬｍにそれぞれ関連付けられた複数のセンスアンプユニットＳＡＵを含み、図５には、１つのセンスアンプユニットＳＡＵの詳細な回路構成が抽出して示されている。
【００４１】
図５に示すように、センスアンプユニットＳＡＵは、センスアンプ部ＳＡ、並びにラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＸＤＬを含んでいる。センスアンプ部ＳＡ、並びにラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＸＤＬは、互いにデータを送受信可能なようにバスＬＢＵＳによって接続されている。
【００４２】
センスアンプ部ＳＡは、例えば読み出し動作において、対応するビット線ＢＬに読み出されたデータをセンスして、読み出したデータが“０”であるか“１”であるかを判定する。センスアンプ部ＳＡは、例えばｐチャネルＭＯＳトランジスタ４０、ｎチャネルＭＯＳトランジスタ４１〜４７、及びキャパシタ４８を含んでいる。
【００４３】
トランジスタ４０の一端は電源線に接続され、トランジスタ４０のゲートはノードＩＮＶに接続されている。トランジスタ４１の一端はトランジスタ４０の他端に接続され、トランジスタ４１の他端はノードＣＯＭに接続され、トランジスタ４１のゲートには制御信号ＢＬＸが入力される。トランジスタ４２の一端はノードＣＯＭに接続され、トランジスタ４２の他端は対応するビット線ＢＬに接続され、トランジスタ４２のゲートには制御信号ＢＬＣが入力される。トランジスタ４３の一端はノードＣＯＭに接続され、トランジスタ４３の他端はノードＳＲＣに接続され、トランジスタ４３のゲートはノードＩＮＶに接続されている。トランジスタ４４の一端はトランジスタ４０の他端に接続され、トランジスタ４４の他端はノードＳＥＮに接続され、トランジスタ４４のゲートには制御信号ＨＬＬが入力される。トランジスタ４５の一端はノードＳＥＮに接続され、トランジスタ４５の他端はノードＣＯＭに接続され、トランジスタ４５のゲートには制御信号ＸＸＬが入力される。トランジスタ４６の一端は接地され、トランジスタ４６のゲートはノードＳＥＮに接続されている。トランジスタ４７の一端はトランジスタ４６の他端に接続され、トランジスタ４７の他端はバスＬＢＵＳに接続され、トランジスタ４７のゲートには制御信号ＳＴＢが入力される。キャパシタ４８の一端はノードＳＥＮに接続され、キャパシタ４８の他端にはクロックＣＬＫが入力される。
【００４４】
以上で説明した制御信号ＢＬＸ、ＨＬＬ、ＸＸＬ、及びＳＴＢは、例えばシーケンサ１４によって生成される。また、トランジスタ４０の一端に接続された電源線には、例えば半導体記憶装置１０の電源電圧である電圧Ｖddが印加され、ノードＳＲＣには、例えば半導体記憶装置１０の接地電圧である電圧Ｖssが印加される。
【００４５】
ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＸＤＬは、読み出しデータを一時的に保持することが出来る。ラッチ回路ＸＤＬは図示しない入出力回路に接続され、センスアンプユニットＳＡＵと入出力回路との間のデータの入出力に使用される。ラッチ回路ＡＤＬは、例えばインバータ５０及び５１、並びにｎチャネルＭＯＳトランジスタ５２及び５３を含んでいる。
【００４６】
インバータ５０の入力ノードはノードＬＡＴに接続され、インバータ５０の出力ノードはノードＩＮＶに接続されている。インバータ５１の入力ノードはノードＩＮＶに接続され、インバータ５１の出力ノードはノードＬＡＴに接続されている。トランジスタ５２の一端はノードＩＮＶに接続され、トランジスタ５２の他端はバスＬＢＵＳに接続され、トランジスタ５２のゲートには制御信号ＳＴＩが入力される。トランジスタ５３の一端はノードＬＡＴに接続され、トランジスタ５３の他端はバスＬＢＵＳに接続され、トランジスタ５３のゲートには制御信号ＳＴＬが入力される。ラッチ回路ＢＤＬ、ＣＤＬ、及びＸＤＬの回路構成は、例えばラッチ回路ＡＤＬの回路構成と同様のため、説明を省略する。
【００４７】
以上で説明したセンスアンプモジュール１７において、各センスアンプユニットＳＡＵがビット線ＢＬに読み出されたデータを判定するタイミングは、制御信号ＳＴＢがアサートされたタイミングに基づいている。
【００４８】
尚、第１実施形態におけるセンスアンプモジュール１７は、以上で説明した構成に限定されず、種々変更することが出来る。例えば、センスアンプユニットＳＡＵが備えるラッチ回路の個数は、適用する書き込み方式に基づいて適宜変更することが出来る。
【００４９】
［１−２］動作
第１実施形態におけるメモリシステム１では、ホスト機器３０から受信したデータの書き込み動作において、メモリコントローラ２０が２段階の書き込み動作を半導体メモリ１０に命令する。以下では、半導体メモリ１０が実行する１段階目の書き込み動作のことを第１書き込み動作と称し、２段階目の書き込み動作のことを第２書き込み動作と称する。
【００５０】
半導体メモリ１０のシーケンサ１４は、第１書き込み動作及び第２書き込み動作においてプログラムループを繰り返し実行する。プログラムループは、プログラム動作及びベリファイ動作を含んでいる。プログラム動作で使用されるプログラム電圧は、プログラムループ毎にステップアップされる。各プログラムループにおいて、ベリファイ動作が実行されるレベルの種類及び数は、書き込み動作の進行に応じて適宜変更される。各プログラムループでは、プログラム禁止のメモリセルトランジスタＭＴに対して例えばチャネルブーストが適用され、当該メモリセルトランジスタＭＴの閾値電圧の上昇が抑制される。
【００５１】
また、第１実施形態に係る半導体メモリ１０では、第１書き込み動作のプログラム動作にシングルパルス方式が適用され、第２書き込み動作のプログラム動作にダブルパルス方式が適用される。シングルパルス方式のプログラム動作では、１回のプログラム動作で選択ワード線に１回のプログラムパルスが印加される。ダブルパルス方式のプログラム動作では、１回のプログラム動作で選択ワード線に２回のプログラムパルスが印加される。また、ダブルパルス方式のプログラム動作では、１回目のプログラムパルスと、２回目のプログラムパルスとで、異なるデータの書き込みを進行することが出来る。ダブルパルス方式において、一方のプログラムパルスが印加されている間に、他方のプログラムパルスにおいてプログラム対象とされるメモリセルトランジスタＭＴは、例えばプログラム禁止に設定される。
【００５２】
（第１書き込み動作について）
図６は、第１実施形態に係る半導体メモリ１０の第１書き込み動作において各種配線に印加される電圧の一例を示している。図６には、入出力信号Ｉ／Ｏの状態、並びに選択ワード線ＷＬsel、各レベルのプログラムに対応するビット線ＢＬの電圧がそれぞれ示されている。入出力信号Ｉ／Ｏは、半導体メモリ１０がメモリコントローラ２０から受信したコマンドと、半導体メモリ１０がビジー状態になっている期間とを示している。以下では、半導体メモリ１０がレディ状態及びビジー状態になっている場合には、それぞれレディビジー信号ＲＢｎが“Ｈ”レベル及び“Ｌ”レベルになっているものとする。第１書き込み動作が実行される前の初期状態において、ワード線ＷＬ及びビット線ＢＬには、例えば接地電圧Ｖssが印加されている。
【００５３】
図６に示すように、まずメモリコントローラ２０は、半導体メモリ１０に第１コマンドセットを送信する。第１コマンドセットは、半導体メモリ１０に第１書き込み動作の実行を指示するコマンドと、Lowerページデータとを含んでいる。
【００５４】
このLowerページデータは、センスアンプモジュール１７内部のラッチ回路に保持される。そして半導体メモリ１０は、ビジー状態になり、センスアンプモジュール１７内に保持されたLowerページデータを用いて、シングルパルス方式が適用された第１書き込み動作を実行する。
【００５５】
具体的には、シーケンサ１４は、例えば“ＥＲ”レベルにプログラムするメモリセルトランジスタＭＴをプログラム禁止に設定して、“ＬＭ”レベルにプログラムするメモリセルトランジスタＭＴをプログラム対象に設定する。以下では、プログラム対象のメモリセルトランジスタＭＴに対応するビット線ＢＬのことをプログラム対象のビット線ＢＬと称し、プログラム禁止のメモリセルトランジスタＭＴに対応するビット線ＢＬのことをプログラム禁止のビット線ＢＬと称する。
【００５６】
そしてシーケンサ１４は、“ＬＭ”データをプログラムするメモリセルトランジスタＭＴに対して、ベリファイ電圧ＬＭＶを用いた第１書き込み動作を実行する。ベリファイ電圧ＬＭＶは、例えばベリファイ電圧ＣＶよりも低く、ベリファイをパスしたメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧ＤＶを大きく超えないように設定される。
【００５７】
第１書き込み動作が開始すると、まずシーケンサ１４は、プログラム動作を実行する。初回のプログラム動作においてセンスアンプモジュール１７は、プログラム禁止のビット線ＢＬに電圧Ｖblを印加し、プログラム対象のビット線ＢＬに接地電圧Ｖssを印加する。電圧Ｖblは、例えば接地電圧Ｖssより高く、電源電圧Ｖddより低い電圧である。プログラム禁止のビット線ＢＬに電圧Ｖblが印加されると、例えば対応するＮＡＮＤストリングＮＳの選択トランジスタＳＴ１がオフ状態になり、当該ＮＡＮＤストリングＮＳのチャネルがフローティング状態になる。
【００５８】
そしてロウデコーダ１６は、選択ワード線ＷＬselにプログラム電圧Ｖpgm１を印加する。プログラム電圧Ｖpgm１は、メモリセルトランジスタＭＴの閾値電圧を上昇させることが可能な高電圧である。選択ワード線ＷＬselにプログラム電圧Ｖpgm１が印加されると、プログラム禁止のメモリセルトランジスタＭＴでは、フローティング状態のチャネルがブーストすることによって、閾値電圧の上昇が抑制される。プログラム対象のメモリセルトランジスタＭＴでは、制御ゲートとチャネルとの間の電位差によって電荷蓄積層に電子が注入され、閾値電圧が上昇する。
【００５９】
次に、シーケンサ１４は、ベリファイ動作を実行する。ベリファイ動作においてセンスアンプモジュール１７は、例えばプログラム禁止のビット線ＢＬに電圧Ｖssを印加して、プログラム対象のビット線ＢＬに電圧Ｖblを印加する。ロウデコーダ１６は、選択ワード線ＷＬselにベリファイ電圧ＬＭＶを印加する。そして各センスアンプユニットＳＡＵは、対応するメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧ＬＭＶを超えたかどうかを判定し、シーケンサ１４は、ベリファイをパスしたビット線ＢＬを以降のプログラム動作においてプログラム禁止に設定する。
【００６０】
以上で説明したシングルパルス方式のプログラム動作とベリファイ動作との組が、１回のプログラムループに相当する。これ以降にシーケンサ１４は、プログラムループを繰り返し実行し、プログラムループ毎にプログラム電圧Ｖpgm１をΔＶpgm１ずつステップアップする。そしてシーケンサ１４は、例えばベリファイをパスしたメモリセルトランジスタＭＴの数が所定の数を超えたことを検知すると、第１書き込み動作を終了して半導体メモリ１０をレディ状態に遷移させる。
【００６１】
尚、以上で説明した第１書き込み動作では、ベリファイ動作を含むプログラムループが繰り返し実行される場合について述べたが、これに限定されない。例えば、第１書き込み動作では、ベリファイ動作が実行されなくても良い。この場合にシーケンサ１４は、プログラム禁止のビット線ＢＬとプログラム対象のビット線ＢＬとにそれぞれ所定の電圧が印加された状態で、選択ワード線ＷＬselに所定の回数のプログラムパルス（プログラム電圧）が印加されるように、各モジュールを制御する。そしてシーケンサ１４は、複数回のプログラムパルスを印加する場合に、プログラムパルスの印加毎に、そのプログラム電圧をステップアップする。
【００６２】
図７は、第１実施形態に係る半導体メモリ１０の第１書き込み動作におけるメモリセルトランジスタＭＴの閾値分布の変化の一例を示している。図７の上部には第１書き込み動作で使用される１ページのデータが示され、図７の（１）及び（２）には半導体メモリ１０において第１書き込み動作を実行される前後におけるメモリセルトランジスタＭＴの閾値分布がそれぞれ示されている。
【００６３】
図７の上部に示すように、第１書き込み動作で使用されるLowerページデータは、メモリコントローラ２０から入力される。
【００６４】
図７の（１）に示すように、第１書き込み動作の実行前において、メモリセルトランジスタＭＴの閾値電圧は“ＥＲ”レベルに分布している。
【００６５】
図７の（２）に示すように、第１書き込み動作の実行後において、“１（Lowerビット）”データがプログラムされるメモリセルトランジスタＭＴでは、閾値電圧の上昇が抑制されるため、閾値電圧が“ＥＲ”レベルに分布する。“０”データがプログラムされるメモリセルトランジスタＭＴでは、閾値電圧が上昇し、“ＥＲ”レベルの閾値分布から“ＬＭ”レベルの閾値分布が形成される。
【００６６】
以上のように、第１書き込み動作では、“ＥＲ”レベルの閾値分布から２つの閾値分布が形成される。
【００６７】
（第２書き込み動作について）
図８は、第１実施形態に係る半導体メモリ１０の第２書き込み動作において各種配線に印加される電圧の一例を示している。図８には、入出力信号Ｉ／Ｏの状態、並びに選択ワード線ＷＬsel、各レベルのプログラムに対応するビット線ＢＬの電圧がそれぞれ示されている。入出力信号Ｉ／Ｏは、半導体メモリ１０がメモリコントローラ２０から受信したコマンドと、半導体メモリ１０がビジー状態になっている期間とを示している。第２書き込み動作が実行される前の初期状態において、ワード線ＷＬ及びビット線ＢＬには、例えば接地電圧Ｖssが印加されている。
【００６８】
図８に示すように、まずメモリコントローラ２０は、半導体メモリ１０に第２コマンドセットを送信する。第２コマンドセットは、半導体メモリ１０に第２書き込み動作の実行を指示するコマンドと、Middleページデータ及びUpperページデータとを含んでいる。
【００６９】
このMiddleページデータ及びUpperページデータは、センスアンプモジュール１７内部のラッチ回路に保持される。そして半導体メモリ１０は、ビジー状態になり、センスアンプモジュール１７内に保持されたMiddleページデータ及びUpperページデータを用いて第２書き込み動作を実行する。尚、半導体メモリ１０が第２コマンドセットを受信している間に、半導体メモリ１０がビジー状態になる期間が含まれていても良い。
【００７０】
第２書き込み動作が開始すると、シーケンサ１４は、まずＩＤＬ（Internal data load）を実行する。ＩＤＬとは、選択ワード線にプログラムパルスが印加される前に、当該選択ワード線ＷＬに対応するメモリセルトランジスタＭＴに記憶されているデータを読み出す動作である。
【００７１】
ＩＤＬにおいてセンスアンプモジュール１７は、各ビット線ＢＬに電圧Ｖblを印加する。そしてロウデコーダ１６は、選択ワード線ＷＬselに読み出し電圧ＬＭＲを印加する。読み出し電圧ＬＭＲは、“ＥＲ”レベルにおける最大の閾値電圧と“ＬＭ”レベルにおける最小の閾値電圧との間に設定される。それから各センスアンプユニットＳＡＵは、対応するメモリセルトランジスタＭＴの閾値電圧が読み出し電圧ＬＭＲを超えたかどうかを判定し、第１書き込み動作によって書き込まれたLowerページデータがセンスアンプモジュール１７内のラッチ回路に復元される。
【００７２】
続けて、シーケンサ１４は、分類ベリファイ動作を実行する。分類ベリファイ動作は、第１書き込み動作の結果に応じて、“Ｄ”レベルのプログラム対象である複数のメモリセルトランジスタＭＴを、複数のグループに分類する動作である。具体的には、分類ベリファイ動作においてシーケンサ１４は、“Ｄ”レベルのプログラム対象である複数のメモリセルトランジスタＭＴを、例えば閾値電圧の高い第１グループと閾値電圧の低い第２グループとに分類する。分類ベリファイ動作においてセンスアンプモジュール１７は、各ビット線ＢＬに電圧Ｖblを印加する。そしてロウデコーダ１６は、選択ワード線ＷＬselにベリファイ電圧ＤＩＶを印加する。ベリファイ電圧ＤＩＶは、“ＬＭ”レベルの閾値分布に含まれ、好ましくは“ＬＭ”レベルの閾値分布の中間部に対応する電圧に設定される。つまり、ベリファイ電圧ＤＩＶは、読み出し電圧ＬＭＲよりも高く且つ読み出し電圧ＤＲよりも低く設定される。それから各センスアンプユニットＳＡＵは、“Ｄ”レベルのプログラム対象のメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧ＤＩＶを超えたかどうかを判定し、シーケンサ１４がベリファイ結果に応じて“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴを第１グループ及び第２グループに分類する。具体的には、シーケンサ１４は、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴにおいて、ベリファイ電圧ＤＩＶによるベリファイにパスした場合に第１グループに分類し、ベリファイ電圧ＤＩＶによるベリファイにフェイルした場合に第２グループに分類する。
【００７３】
そして、シーケンサ１４は、センスアンプモジュール１７内に保持されたMiddleページデータ及びUpperページデータと、メモリセルトランジスタＭＴから読み出したLowerページデータとに基づいて、ダブルパルス方式のプログラム動作を実行する。
【００７４】
具体的には、まずシーケンサ１４は、例えば“ＥＲ”レベル、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルにそれぞれプログラムするメモリセルトランジスタＭＴと、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴのうち第２グループのメモリセルトランジスタＭＴとをプログラム禁止に設定する。また、シーケンサ１４は、例えば“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルにそれぞれプログラムするメモリセルトランジスタＭＴと、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴのうち第１グループのメモリセルトランジスタとをプログラム対象に設定する。
【００７５】
そしてセンスアンプモジュール１７は、プログラム禁止のビット線ＢＬに電圧Ｖblを印加し、プログラム対象のビット線ＢＬに接地電圧Ｖssを印加する。それからロウデコーダ１６は、選択ワード線ＷＬselに第１パルスを印加する。最初のプログラムループにおける第１パルスの電圧は、プログラム電圧Ｖpgm２であり、プログラム電圧Ｖpgm２は例えばプログラム電圧Ｖpgm１よりも低く設定される。選択ワード線ＷＬselに第１パルスが印加されると、プログラム禁止のメモリセルトランジスタＭＴでは、例えばチャネルブーストにより閾値電圧の上昇が抑制され、プログラム対象のメモリセルトランジスタＭＴでは、制御ゲートとチャネルとの間の電位差によって閾値電圧が上昇する。
【００７６】
次に、シーケンサ１４は、例えば“ＥＲ”レベル、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルにそれぞれプログラムするメモリセルトランジスタＭＴと、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴのうち第１グループのメモリセルトランジスタＭＴとをプログラム禁止に設定する。また、シーケンサ１４は、例えば“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルにそれぞれプログラムするメモリセルトランジスタＭＴと、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴのうち第２グループのメモリセルトランジスタとをプログラム対象に設定する。
【００７７】
そしてセンスアンプモジュール１７は、プログラム禁止のビット線ＢＬに電圧Ｖblを印加し、プログラム対象のビット線ＢＬに接地電圧Ｖssを印加する。それからロウデコーダ１６は、選択ワード線ＷＬselに第２パルスを印加する。最初のプログラムループにおける第２パルスの電圧は、プログラム電圧Ｖpgm３であり、プログラム電圧Ｖpgm２よりも高く設定される。選択ワード線ＷＬselに第２パルスが印加されると、プログラム禁止のメモリセルトランジスタＭＴでは、例えばチャネルブーストにより閾値電圧の上昇が抑制され、プログラム対象のメモリセルトランジスタＭＴでは、制御ゲートとチャネルとの間の電位差によって閾値電圧が上昇する。
【００７８】
次に、シーケンサ１４は、ベリファイ動作を実行する。ベリファイ動作においてセンスアンプモジュール１７は、例えばプログラム禁止のビット線ＢＬに電圧Ｖssを印加して、プログラム対象のビット線ＢＬに電圧Ｖblを印加する。そしてロウデコーダ１６は、選択ワード線ＷＬselにベリファイ電圧Ｖvfyを印加する。ベリファイ電圧Ｖvfyは、ベリファイ電圧ＡＶ、ＢＶ、ＣＶ、ＤＶ、ＥＶ、ＦＶ、及びＧＶのうちいずれか１つの電圧に対応し、プログラムループの進行に応じて電圧の低い方から順に使用される。また、ベリファイ電圧Ｖvfyは、プログラムループの進行に応じて複数種類のベリファイ電圧Ｖvfyが連続に印加されることもある。各センスアンプユニットＳＡＵは、対応するメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧Ｖvfyを超えたかどうかを判定し、シーケンサ１４は、ベリファイをパスしたビット線ＢＬを以降のプログラム動作においてプログラム禁止に設定する。
【００７９】
以上で説明した第１パルス及び第２パルスを用いたダブルパルス方式のプログラム動作とベリファイ動作との組が、１回のプログラムループに相当する。これ以降にシーケンサ１４は、プログラムループを繰り返し実行し、プログラムループ毎にプログラム電圧Ｖpgm２をΔＶpgm２ずつステップアップして、プログラム電圧Ｖpgm３をΔＶpgm３ずつステップアップする。ΔＶpgm２及びΔＶpgm３は、それぞれ例えばΔＶpgm１よりも小さく設定される。
【００８０】
そしてシーケンサ１４は、例えば各レベルにおけるベリファイをパスしたメモリセルトランジスタＭＴの数がそれぞれ所定の数を超えたことを検知すると、第２書き込み動作を終了して半導体メモリ１０をレディ状態に遷移させる。
【００８１】
以上で説明したように、第２書き込み動作におけるプログラムループ内で選択ワード線ＷＬselに対してプログラムパルスが印加される回数は、第１書き込み動作におけるプログラムループ内で選択ワード線ＷＬselに対してプログラムパルスが印加される回数よりも多い。
【００８２】
図９は、第１実施形態に係る半導体メモリ１０の第２書き込み動作におけるメモリセルトランジスタＭＴの閾値分布の変化の一例を示している。図９の上部には第２書き込み動作で使用される３ページのデータが示され、図９の（１）及び（２）には半導体メモリ１０において第２書き込み動作を実行される前後におけるメモリセルトランジスタＭＴの閾値分布がそれぞれ示されている。
【００８３】
図９の上部に示すように、第２書き込み動作で使用されるLowerページデータは、ＩＤＬによって復元され、Middleページデータ及びUpperページデータは、メモリコントローラ２０から入力される。
【００８４】
図９の（１）に示すように、第２書き込み動作の実行前において、メモリセルトランジスタＭＴの閾値電圧は“ＥＲ”レベル及び“ＬＭ”レベルに分布している。
【００８５】
図９の（２）に示すように、第２書き込み動作の実行後において、“１１１（“Lowerビット/Middleビット/Upperビット”）”データがプログラムされるメモリセルトランジスタＭＴでは、閾値電圧の上昇が抑制されるため、閾値電圧が“ＥＲ”レベルに分布する。“１１０”データ、“１００”データ、及び“１０１”データのそれぞれがプログラムされるメモリセルトランジスタＭＴでは、閾値電圧が上昇し、“ＥＲ”レベルの閾値分布からそれぞれ“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルの閾値分布が形成される。“００１”データ、“０１１”データ、“０１０”データ、及び“０００”データのそれぞれがプログラムされるメモリセルトランジスタＭＴでは、閾値電圧が上昇し、“ＬＭ”レベルの閾値分布からそれぞれ“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルの閾値分布が形成される。
【００８６】
以上のように、第２書き込み動作では、“ＥＲ”レベルの閾値分布から４つの閾値分布が形成され、“ＬＭ”レベルの閾値分布から４つの閾値分布が形成され、合計８つの閾値分布が形成される。
【００８７】
尚、以上で説明した第１実施形態に係る半導体メモリ１０の第２書き込み動作におけるグループの分類については、以下のように言い換えることも出来る。
【００８８】
例えば、シーケンサ１４は、分類ベリファイ動作を実行することによって、第１書き込み動作の結果に応じて、“Ｄ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを複数のサブグループに分類する。
【００８９】
具体的には、まずシーケンサ１４は、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルにそれぞれ対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを第１グループのメモリセルトランジスタＭＴに対応付け、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルにそれぞれ対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを第２グループのメモリセルトランジスタＭＴに対応付ける。
【００９０】
そして、シーケンサ１４は、“Ｄ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴのうち複数のサブグループの一のサブグループに分類されたメモリセルトランジスタＭＴを第１グループのメモリセルトランジスタＭＴに対応付け、“Ｄ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴのうち複数のサブグループの他のサブグループに分類されたメモリセルトランジスタＭＴを第２グループのメモリセルトランジスタＭＴに対応付ける。
【００９１】
それから、シーケンサ１４は、第１グループのメモリセルトランジスタＭＴに対して第１パルスを用いたプログラムを実行し、第２グループのメモリセルトランジスタＭＴに対して第２パルスを用いたプログラムを実行する。
【００９２】
（書き込み動作全体の流れについて）
図１０は、第１実施形態におけるメモリシステム１の書き込み動作におけるフローチャートの一例を示している。図１０の説明では、説明を簡潔にするために変数ｉを使用する。変数ｉは、例えばプロセッサ２１によってカウントされ、ＲＡＭ２２に保持される。
【００９３】
ステップＳ１０において、メモリコントローラ２０は、ワード線ＷＬｉ（ｉ＝０）を選択した第１書き込み動作の実行を半導体メモリ１０に命令する。すると半導体メモリ１０は、メモリコントローラ２０から受信したLowerページデータを、ワード線ＷＬ０に接続されたメモリセルトランジスタＭＴに書き込む。
【００９４】
ステップＳ１１において、メモリコントローラ２０は、変数ｉをインクリメントする。
【００９５】
ステップＳ１２において、メモリコントローラ２０は、ワード線ＷＬｉ（ｉ＝１）を選択した第１書き込み動作の実行を半導体メモリ１０に命令する。すると半導体メモリ１０は、メモリコントローラ２０から受信したLowerページデータを、ワード線ＷＬ１に接続されたメモリセルトランジスタＭＴに書き込む。
【００９６】
ステップＳ１３において、メモリコントローラ２０は、ワード線ＷＬ（ｉ−１）を選択した第２書き込み動作の実行を半導体メモリ１０に命令する。すると半導体メモリ１０は、メモリコントローラ２０から受信したMiddleページデータ及びUpperページデータと、選択ワード線ＷＬselに対応するメモリセルトランジスタＭＴから読み出したLowerページデータとに基づいて、３ページのデータをワード線ＷＬ０に接続されたメモリセルトランジスタＭＴ０に書き込む。
【００９７】
ステップＳ１４において、メモリコントローラ２０は、変数ｉが例えば“７”になったかどうかを確認する。この判定値“７”は、ブロックＢＬＫに設けられたワード線ＷＬの本数に基づいて設定され、適宜変更することが出来る。
【００９８】
ステップＳ１４において変数ｉが“７”になっていない場合（Ｓ１４、ＮＯ）、メモリコントローラ２０は、ステップＳ１１の処理に戻る。つまりメモリコントローラ２０は、変数ｉをインクリメントして、ワード線ＷＬｉを選択した第１書き込み動作と、ワード線ＷＬ（ｉ−１）を選択した第２書き込み動作とを、半導体メモリ１０に実行させる。ステップＳ１４において変数ｉが“７”であった場合（Ｓ１４、ＹＥＳ）、メモリコントローラ２０は、ステップＳ１５の処理に移行する。
【００９９】
ステップＳ１５において、メモリコントローラ２０は、ワード線ＷＬｉ（ｉ＝７）を選択した第２書き込み動作の実行を半導体メモリ１０に命令する。すると半導体メモリ１０は、メモリコントローラ２０から受信したMiddleページデータ及びUpperページデータと、選択ワード線ＷＬselに対応するメモリセルトランジスタＭＴから読み出したLowerページデータとに基づいて、３ページのデータをワード線ＷＬ７に接続されたメモリセルトランジスタＭＴ７に書き込む。
【０１００】
以上で説明した一連の動作が、１つのブロックＢＬＫに対する書き込み動作に相当する。これ以降にメモリコントローラ２０は、異なるブロックＢＬＫを選択して、同様の動作を繰り返し半導体メモリ１０に命令する。そしてメモリコントローラ２０は、例えばホスト機器３０から受信した書き込みデータを全て半導体メモリ１０に記憶させると、書き込み動作を終了する。
【０１０１】
以上で説明した第１実施形態に係るメモリシステム１の書き込み動作は、半導体メモリ１０の視点且つ１本のワード線ＷＬに注目すると、以下のように説明することが出来る。
【０１０２】
半導体メモリ１０は、外部からLowerページデータを受け取ると、第１書き込み動作を実行してLowerページデータを複数のメモリセルトランジスタＭＴに書き込む。
【０１０３】
半導体メモリ１０は、さらに外部からMiddleページデータ及びUpperページデータを受け取ると、選択ワード線ＷＬselに所定の電圧を印加して複数のメモリセルトランジスタＭＴからLowerページデータを読み出し、且つ選択ワード線ＷＬselに所定の電圧より高い電圧を印加して“Ｄ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴにおける第１書き込み動作後の閾値電圧分布をモニタする。
【０１０４】
そして、シーケンサ１４は、このモニタ結果に基づき“Ｄ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを複数のサブグループに分類する。この分類の後にシーケンサ１４は、後半プログラムループを含む第２書き込み動作を実行して読み出したLowerページデータと受け取ったMiddleページデータ及びUpperページデータとに基づいた複数ビットのデータを複数のメモリセルトランジスタＭＴに書き込む。
【０１０５】
［１−３］第１実施形態の効果
以上で説明した第１実施形態に係る半導体メモリ１０に依れば、メモリセルが記憶するデータの信頼性を向上することが出来る。以下に、第１実施形態に係る半導体メモリ１０の詳細な効果について説明する。
【０１０６】
メモリシステム１においてメモリコントローラ２０は、メモリセルに複数ビットの情報を記憶させる場合に、２段階の書き込み動作を半導体メモリ１０に命令することがある。この場合に、１段階目の書き込み動作においてメモリシステム１は、例えばLowerページデータを用いて、大まかに２の閾値分布を形成する。そして２段階目の書き込み動作においてメモリシステム１は、１段階目の書き込み動作において高い閾値にプログラムされたメモリセルと、低い閾値にプログラムされたメモリセルとに対して、それぞれ異なるプログラムパルスを用いたダブルパルス方式のプログラム動作を実行する。
【０１０７】
例えば、書き込み方式にＴＬＣ方式を適用されたと仮定すると、２段階目の書き込み動作において、例えば“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルにプログラムされるメモリセルが第１パルスによってプログラムされ、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルにプログラムされるメモリセルが第１パルスよりも電圧が高い第２パルスによってプログラムされる。この場合、第１パルスと第２パルスとで、プログラム対象のレベルの数が異なることから、第１パルスによるプログラムの繰り返しによって“Ｃ”レベルのベリファイをパスするタイミングと、第２パルスによるプログラムの繰り返しによって“Ｇ”レベルのベリファイをパスするタイミングとが異なることがある。
【０１０８】
そこで、第１実施形態に係る半導体メモリ１０では、２段階目の書き込み動作（第２書き込み動作）において分類ベリファイ動作を実行し、“Ｄ”レベルにプログラムするメモリセルを閾値電圧に応じて第１グループ及び第２グループに分類をする。そして、半導体メモリ１０は、“Ｄ”レベルにプログラムするメモリセルの第１グループと第２グループとに対して、それぞれ異なるプログラムパルスを適用したダブルパルス方式のプログラム動作を実行する。
【０１０９】
第２書き込み動作において“Ｄ”レベルにプログラムされるメモリセルの閾値電圧の変化の一例が、図１１に示されている。図１１の（１）に示すように、第２書き込み動作において半導体メモリ１０は、“Ｄ”レベルにプログラムされるメモリセルのうち、閾値電圧がベリファイ電圧ＤＩＶより高い第１グループを第１パルスでプログラムする。図１１の（２）に示すように、第２書き込み動作において半導体メモリ１０は、“Ｄ”レベルにプログラムされるメモリセルのうち、閾値電圧がベリファイ電圧ＤＩＶ以下の第２グループを第２パルスでプログラムする。また、図１１の（１）及び（２）に示すように、第１パルスによる閾値電圧の上昇幅は、第２パルスによる閾値電圧の上昇幅よりも小さい。
【０１１０】
つまり、半導体メモリ１０は、“Ｄ”レベルにプログラムするメモリセルのうち、閾値電圧が高い第１グループに対してプログラム電圧の低い第１パルスを用いたプログラムを実行し、閾値電圧が低い第２グループに対してプログラム電圧の高い第２パルスを用いたプログラム動作を実行する。これにより、第１実施形態に係る半導体メモリ１０は、“Ｄ”レベルへのプログラムにおいて、第１パルスによるプログラムの繰り返しによって第１グループのメモリセルの閾値電圧がベリファイ電圧ＤＶを超えるタイミングと、第２パルスによるプログラムの繰り返しによって第２グループのメモリセルの閾値電圧がベリファイ電圧ＤＶを超えるタイミングとを揃えることが出来る。
【０１１１】
また、第１実施形態に係る半導体メモリ１０は、第２書き込み動作において、第１パルスによってプログラムされるレベルの数と、第２パルスによってプログラムされるレベルの数とを揃えることが出来る。具体的には、第１実施形態に係る半導体メモリ１０では、“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベル、及び”Ｄ”レベルの第１グループが第１パルスによってプログラムされ、“Ｄ”レベルの第２グループ、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルが第２パルスによってプログラムされる。これにより、第１実施形態に係る半導体メモリ１０は、２段階の書き込み動作においてダブルパルス方式のプログラム動作を適用した場合に、第１パルスによるプログラムの終了タイミングと、第２パルスによるプログラムの終了タイミングとを揃えることが出来る。
【０１１２】
以上の結果、半導体メモリ１０は、２段階の書き込み動作においてダブルパルス方式のプログラム動作を適用した場合において、一方のプログラムパルスによるプログラムが終了した後に生じる、他方のプログラムパルスによるディスターブの影響を抑制することが出来る。従って、第１実施形態に係る半導体メモリ１０は、メモリセルが記憶するデータの信頼性を向上することが出来る。
【０１１３】
尚、以上の説明では、書き込み方式にＴＬＣ方式が適用された場合を例に挙げたが、これに限定されない。例えば、書き込み方式にＱＬＣ方式が適用された場合においても、第１実施形態で説明した動作と同様の動作を実行することが出来る。本例について、以下に説明する。
【０１１４】
図３に示すように、ＱＬＣ方式において“ＥＲ”レベルから形成される閾値分布の数は合計１５個である。第２書き込み動作においてダブルパルス方式を適用する場合、例えば第１パルスによって“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベル、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルのプログラムが実行され、第２パルスによって“Ｈ”レベル、“Ｉ”レベル、“Ｊ”レベル、“Ｋ”レベル、“Ｌ”レベル、“Ｍ”レベル、“Ｎ”レベル、及び“Ｏ”レベルのプログラムが実行される。このように、一方のプログラムパルスによってプログラムされるレベルの数が、他方のプログラムパルスによってプログラムされるレベルの数よりも多くなってしまう。
【０１１５】
そこで、ＱＬＣ方式における第２書き込み動作においてシーケンサ１４は、“Ｈ”レベルにプログラムするメモリセルを対象として分類ベリファイ動作を実行し、“Ｈ”レベルにプログラムするメモリセルを閾値分布の高い第１グループと閾値電圧の低い第２グループとに分類する。そしてシーケンサ１４は、ダブルパルス方式のプログラム動作において、“Ｈ”レベルの第１グループを第１パルスによってプログラムして、“Ｈ”レベルの第２グループを第２パルスによってプログラムする。
【０１１６】
これにより、第１実施形態に係る半導体メモリ１０は、ＱＬＣ方式においても同様に、第２書き込み動作において、第１パルスによってプログラムされるレベルの数と、第２パルスによってプログラムされるレベルの数とを揃えることが出来る。従って、第１実施形態に係る半導体メモリ１０は、ＱＬＣ方式においても同様に、メモリセルが記憶するデータの信頼性を向上することが出来る。
【０１１７】
［２］第２実施形態
第２実施形態に係る半導体メモリ１０は、第１実施形態に係る半導体メモリ１０と同様の構成である。そして第２実施形態に係る半導体メモリ１０は、第１実施形態で説明した第２書き込み動作において、分類ベリファイ動作によって“Ｃ”レベル及び“Ｅ”レベルのプログラム対象のメモリセルトランジスタＭＴをそれぞれ分類し、トリプルパルス方式のプログラム動作を実行する。以下に、第２実施形態に係る半導体メモリ１０について、第１実施形態と異なる点を説明する。
【０１１８】
［２−１］動作
第２実施形態に係る半導体メモリ１０の第１書き込み動作では、ベリファイをパスしたメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧ＣＶを大きく超えないように、ベリファイ電圧ＬＭＶが設定される。第２実施形態に係る半導体メモリ１０の第１書き込み動作のその他の動作は、第１実施形態に係る半導体メモリ１０の第１書き込み動作と同様のため、説明を省略する。
【０１１９】
図１２は、第２実施形態に係る半導体メモリの第２書き込み動作において各種配線に印加される電圧の一例を示している。図１２には、選択ワード線ＷＬsel、各レベルのプログラムに対応するビット線ＢＬの電圧がそれぞれ示されている。第２書き込み動作が実行される前の初期状態において、ワード線ＷＬ及びビット線ＢＬには、例えば接地電圧Ｖssが印加されている。
【０１２０】
第２書き込み動作が開始するとシーケンサ１４は、図１２に示すように、まずＩＤＬを実行する。ＩＤＬにおいてセンスアンプモジュール１７は、各ビット線ＢＬに電圧Ｖblを印加する。そしてロウデコーダ１６は、選択ワード線ＷＬselに読み出し電圧ＬＭＲを印加する。それから各センスアンプユニットＳＡＵは、対応するメモリセルトランジスタＭＴの閾値電圧が読み出し電圧ＬＭＲを超えたかどうかを判定し、第１書き込み動作によって書き込まれたLowerページデータがセンスアンプモジュール１７内のラッチ回路に復元される。
【０１２１】
次にシーケンサ１４は、“Ｃ”レベルにプログラムするメモリセルトランジスタＭＴに対するプログラム動作を実行する。このプログラム動作は、“Ｃ”レベルにプログラムするメモリセルトランジスタＭＴを“ＥＲ”レベルから、“ＬＭ”レベルに上げるために実行される動作である。具体的には、シーケンサ１４は、“ＥＲ”レベル、“Ａ”レベル、“Ｂ”レベル、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルにそれぞれプログラムするメモリセルトランジスタＭＴをプログラム禁止に設定する。また、シーケンサ１４は、“Ｃ”レベルにプログラムするメモリセルトランジスタＭＴをプログラム対象に設定する。そしてセンスアンプモジュール１７は、プログラム禁止のビット線ＢＬに電圧Ｖblを印加し、プログラム対象のビット線ＢＬに接地電圧Ｖssを印加する。それからロウデコーダ１６は、選択ワード線ＷＬselに例えばプログラム電圧Ｖpgm１を印加する。尚、このプログラム動作において使用されるプログラムパルスの電圧は、プログラム電圧Ｖpgm１に限定されず、種々変更することが可能である。選択ワード線ＷＬselにプログラム電圧Ｖpgm１が印加されると、プログラム禁止のメモリセルトランジスタＭＴでは、例えばチャネルブーストにより閾値電圧の上昇が抑制され、プログラム対象のメモリセルトランジスタＭＴでは、制御ゲートとチャネルとの間の電位差によって閾値電圧が上昇する。
【０１２２】
尚、図１２には、１回のプログラムパルスが印加される場合が例示されているが、これに限定されない。例えば、この“Ｃ”レベルにプログラムするメモリセルトランジスタＭＴに対するプログラム動作に、第１書き込み動作と同様のプログラムループを適用しても良い。つまり、当該プログラム動作は、“Ｃ”レベルにプログラムするメモリセルトランジスタＭＴの閾値電圧を、“ＬＭ”レベルにまで上昇させることが出来れば良い。
【０１２３】
続けて、シーケンサ１４は、分類ベリファイ動作を実行する。第２実施形態における分類ベリファイ動作は、“Ｃ”レベルのプログラム対象である複数のメモリセルトランジスタＭＴと、“Ｅ”レベルのプログラム対象である複数のメモリセルトランジスタＭＴとを、それぞれ閾値電圧の高い第１グループと閾値電圧の低い第２グループとに分類する。
【０１２４】
分類ベリファイ動作においてセンスアンプモジュール１７は、例えば“Ｃ”レベル及び“Ｅ”レベルにそれぞれプログラムするメモリセルトランジスタＭＴに対応するビット線ＢＬに電圧Ｖblを印加し、その他のビット線ＢＬに電圧Ｖssを印加する。そしてロウデコーダ１６は、選択ワード線ＷＬselにベリファイ電圧ＤＩＶを印加する。それから各センスアンプユニットＳＡＵは、“Ｃ”レベル及び“Ｅ”レベルのプログラム対象のメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧ＤＩＶを超えたかどうかを判定し、閾値電圧の高さに応じて第１グループ及び第２グループに分類する。
【０１２５】
そして、シーケンサ１４は、センスアンプモジュール１７内に保持されたMiddleページデータ及びUpperページデータと、メモリセルトランジスタＭＴから読み出したLowerページデータとに基づいて、トリプルパルス方式のプログラム動作を実行する。
【０１２６】
まず、シーケンサ１４は、第１パルスを用いたプログラム動作を実行する。具体的には、シーケンサ１４は、例えば“ＥＲ”レベル、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルにそれぞれプログラムするメモリセルトランジスタＭＴと、“Ｃ”レベルにプログラムするメモリセルトランジスタＭＴのうち第２グループのメモリセルトランジスタＭＴとをプログラム禁止に設定する。また、シーケンサ１４は、例えば“Ａ”レベル及び“Ｂ”レベルにそれぞれプログラムするメモリセルトランジスタＭＴと、“Ｃ”レベルにプログラムするメモリセルトランジスタＭＴのうち第１グループのメモリセルトランジスタＭＴとをプログラム対象に設定する。
【０１２７】
そしてセンスアンプモジュール１７は、プログラム禁止のビット線ＢＬに電圧Ｖblを印加し、プログラム対象のビット線ＢＬに接地電圧Ｖssを印加する。それからロウデコーダ１６は、選択ワード線ＷＬselに第１パルスを印加する。最初のプログラムループにおける第１パルスの電圧は、第２プログラム電圧Ｖpgm２であり、第１実施形態と同様に、第１書き込み動作における第１プログラム電圧Ｖpgm１よりも低く設定される。選択ワード線ＷＬselに第１パルスが印加されると、プログラム禁止のメモリセルトランジスタＭＴでは、例えばチャネルブーストにより閾値電圧の上昇が抑制され、プログラム対象のメモリセルトランジスタＭＴでは、制御ゲートとチャネルとの間の電位差によって閾値電圧が上昇する。
【０１２８】
次に、シーケンサ１４は、第２パルスを用いたプログラム動作を実行する。具体的には、シーケンサ１４は、例えば“ＥＲ”レベル、“Ａ”レベル、“Ｂ”レベル、“Ｆ”レベル、及び“Ｇ”レベルにそれぞれプログラムするメモリセルトランジスタＭＴと、“Ｃ”レベルにプログラムするメモリセルトランジスタＭＴのうち第１グループのメモリセルトランジスタＭＴと、“Ｅ”レベルにプログラムするメモリセルトランジスタＭＴのうち第２グループのメモリセルトランジスタＭＴとをプログラム禁止に設定する。また、シーケンサ１４は、例えば“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴと、“Ｃ”レベルにプログラムするメモリセルトランジスタＭＴのうち第２グループのメモリセルトランジスタと、“Ｅ”レベルにプログラムするメモリセルトランジスタＭＴのうち第１グループのメモリセルトランジスタＭＴとをプログラム対象に設定する。
【０１２９】
そしてセンスアンプモジュール１７は、プログラム禁止のビット線ＢＬに電圧Ｖblを印加し、プログラム対象のビット線ＢＬに接地電圧Ｖssを印加する。それからロウデコーダ１６は、選択ワード線ＷＬselに第２パルスを印加する。最初のプログラムループにおける第２パルスの電圧は、第３プログラム電圧Ｖpgm３であり、第２プログラム電圧Ｖpgm２よりも高く設定される。選択ワード線ＷＬselに第２パルスが印加されると、プログラム禁止のメモリセルトランジスタＭＴでは、例えばチャネルブーストにより閾値電圧の上昇が抑制され、プログラム対象のメモリセルトランジスタＭＴでは、制御ゲートとチャネルとの間の電位差によって閾値電圧が上昇する。
【０１３０】
次に、シーケンサ１４は、第３パルスを用いたプログラム動作を実行する。具体的には、シーケンサ１４は、例えば“ＥＲ”レベル、“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベル、及び“Ｄ”レベルにそれぞれプログラムするメモリセルトランジスタＭＴと、“Ｅ”レベルにプログラムするメモリセルトランジスタＭＴのうち第１グループのメモリセルトランジスタＭＴとをプログラム禁止に設定する。また、シーケンサ１４は、例えば“Ｆ”レベル及び“Ｇ”レベルにプログラムするメモリセルトランジスタＭＴと、“Ｅ”レベルにプログラムするメモリセルトランジスタＭＴのうち第２グループのメモリセルトランジスタとをプログラム対象に設定する。
【０１３１】
そしてセンスアンプモジュール１７は、プログラム禁止のビット線ＢＬに電圧Ｖblを印加し、プログラム対象のビット線ＢＬに接地電圧Ｖssを印加する。それからロウデコーダ１６は、選択ワード線ＷＬselに第３パルスを印加する。最初のプログラムループにおける第３パルスの電圧は、第４プログラム電圧Ｖpgm４であり、第３プログラム電圧Ｖpgm３よりも高く設定される。選択ワード線ＷＬselに第３パルスが印加されると、プログラム禁止のメモリセルトランジスタＭＴでは、例えばチャネルブーストにより閾値電圧の上昇が抑制され、プログラム対象のメモリセルトランジスタＭＴでは、制御ゲートとチャネルとの間の電位差によって閾値電圧が上昇する。
【０１３２】
次に、シーケンサ１４は、ベリファイ動作を実行する。ベリファイ動作の詳細は、第１実施形態で説明した第２書き込み動作におけるベリファイ動作と同様のため、説明を省略する。
【０１３３】
以上で説明した第１パルス、第２パルス、及び第３パルスを用いたトリプルパルス方式のプログラム動作とベリファイ動作との組が、１回のプログラムループに相当する。これ以降にシーケンサ１４は、プログラムループを繰り返し実行し、プログラムループ毎にプログラム電圧Ｖpgm２をΔＶpgm２ずつステップアップして、プログラム電圧Ｖpgm３をΔＶpgm３ずつステップアップして、プログラム電圧Ｖpgm４をΔＶpgm４ずつステップアップする。ΔＶpgm２、ΔＶpgm３、及びΔＶpgm４は、それぞれ例えば第１実施形態で説明した第１書き込み動作におけるΔＶpgm１よりも小さく設定される。
【０１３４】
そしてシーケンサ１４は、例えば全てのベリファイをパスしたメモリセルトランジスタＭＴの数が所定の数を超えたことを検知すると、第２書き込み動作を終了する。第２実施形態に係る半導体メモリ１０のその他の動作は、第１実施形態で説明した半導体メモリ１０の動作と同様のため、説明を省略する。
【０１３５】
尚、以上で説明した第２実施形態における第２書き込み動作では、“Ｃ”レベルの分類ベリファイ動作と、“Ｅ”レベルの分類ベリファイ動作とを、ベリファイ電圧を変更して実行しても良い。図１３は、第２実施形態の第１変形例に係る半導体メモリの第２書き込み動作において各種配線に印加される電圧の一例を示し、以上で説明した図１２に対して、ＩＤＬと分類ベリファイ動作との間に実行されるプログラム動作に使用されるプログラム電圧の値と、分類ベリファイ動作の詳細が異なっている。
【０１３６】
具体的には、第２実施形態の第１変形例において、ＩＤＬと分類ベリファイとの間に実行されるプログラム動作では、図１３に示すように例えばプログラム電圧Ｖpgm０が使用される。プログラム電圧Ｖpgm０は、プログラム電圧Ｖpgm１より低ければ良く、任意の数値に設定することが可能である。また、本変形例におけるＩＤＬと分類ベリファイとの間に実行されるプログラム動作では、第２実施形態と同様にベリファイ動作を含む複数回のプログラムループを実行しても良いし、プログラムパルスのみを複数回印加しても良い。
【０１３７】
そして、第２実施形態の第１変形例における分類ベリファイ動作では、２種類のベリファイ電圧を用いたベリファイ動作が実行される。具体的には、当該分類ベリファイ動作では、例えば“Ｃ”レベルにプログラムするメモリセルトランジスタＭＴの分類に用いるベリファイ電圧ＤＩＶ１と、“Ｅ”レベルにプログラムするメモリセルトランジスタＭＴの分類に用いるベリファイ電圧ＤＩＶ２とが使用される。ベリファイ電圧ＤＩＶ１は、ベリファイ電圧ＤＩＶ２よりも低い。
【０１３８】
第２実施形態の第１変形例における分類ベリファイ動作においてセンスアンプモジュール１７は、例えば“Ｃ”レベル及び“Ｅ”レベルにそれぞれプログラムするメモリセルトランジスタＭＴに対応するビット線ＢＬに電圧Ｖblを印加し、その他のビット線ＢＬに電圧Ｖssを印加する。そしてロウデコーダ１６は、選択ワード線ＷＬselにベリファイ電圧ＤＩＶ１及びＤＩＶ２を順番に印加し、各センスアンプユニットＳＡＵは、“Ｃ”レベルのプログラム対象のメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧ＤＩＶ１を超えたかどうかを判定し、“Ｅ”レベルのプログラム対象のメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧ＤＩＶ２を超えたかどうかを判定する。
【０１３９】
それから、シーケンサ１４は、この判定結果に基づいて、“Ｃ”レベルにプログラムするメモリセルトランジスタＭＴと、“Ｅ”レベルにプログラムするメモリセルトランジスタＭＴとを閾値電圧の高さに応じてそれぞれ第１グループ及び第２グループに分類する。第２実施形態の第１変形例におけるその他の動作は、第２実施形態における第２書き込み動作と同様のため、説明を省略する。
【０１４０】
尚、以上で説明した第２実施形態に係る半導体メモリ１０の第２書き込み動作におけるグループの分類については、以下のように言い換えることも出来る。
【０１４１】
例えば、シーケンサ１４は、分類ベリファイ動作を実行することによって、第１書き込み動作の結果やＩＤＬと分類ベリファイとの間に実行されるプログラム動作の結果に応じて、“Ｃ”レベル及び“Ｅ”レベルにそれぞれ対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを複数のサブグループに分類する。
【０１４２】
具体的には、まずシーケンサ１４は、“Ａ”レベル及び“Ｂ”レベルにそれぞれ対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを第１グループのメモリセルトランジスタＭＴに対応付け、“Ｄ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを第２グループのメモリセルトランジスタＭＴに対応付け、“Ｆ”レベル、及び“Ｇ”レベルにそれぞれ対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを第３グループのメモリセルトランジスタＭＴに対応付ける。
【０１４３】
そして、シーケンサ１４は、“Ｃ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴのうち複数のサブグループの一のサブグループに分類されたメモリセルトランジスタＭＴを第１グループのメモリセルトランジスタＭＴに対応付け、“Ｃ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴのうち複数のサブグループの他のサブグループに分類されたメモリセルトランジスタＭＴを第２グループのメモリセルトランジスタＭＴに対応付ける。
【０１４４】
さらに、シーケンサ１４は、“Ｅ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴのうち複数のサブグループの一のサブグループに分類されたメモリセルトランジスタＭＴを第２グループのメモリセルトランジスタＭＴに対応付け、“Ｅ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴのうち複数のサブグループの他のサブグループに分類されたメモリセルトランジスタＭＴを第３グループのメモリセルトランジスタＭＴに対応付ける。
【０１４５】
それから、シーケンサ１４は、第１グループのメモリセルトランジスタＭＴに対して第１パルスを用いたプログラムを実行し、第２グループのメモリセルトランジスタＭＴに対して第２パルスを用いたプログラムを実行し、第２グループのメモリセルトランジスタＭＴに対して第３パルスを用いたプログラムを実行する。
【０１４６】
［２−２］第２実施形態の効果
以上で説明した第２実施形態に係る半導体メモリ１０に依れば、第１実施形態と同様に、メモリセルが記憶するデータの信頼性を向上することが出来る。以下に、第２実施形態に係る半導体メモリ１０の詳細な効果について説明する。
【０１４７】
メモリシステム１は、２段階の書き込み動作において、トリプルパルス方式のプログラム動作を実行することも出来る。トリプルパルス方式では、プログラムする閾値の高さに応じて、３種類のプログラムパルスが使用される。メモリシステム１は、トリプルパルス方式のプログラム動作においても、第１実施形態で説明したダブルパルス方式と同様の理由により、３種類のプログラムパルスによってそれぞれベリファイをパスするタイミングが異なることがある。
【０１４８】
そこで、第２実施形態に係る半導体メモリ１０では、２段階目の書き込み動作（第２書き込み動作）において分類ベリファイ動作を実行し、“Ｃ”レベルにプログラムするメモリセルと、“Ｅ”レベルにプログラムするメモリセルとを閾値電圧に応じて第１グループ及び第２グループに分類をする。そして、半導体メモリ１０は、第２書き込み動作において、第１グループと第２グループとで、異なるプログラムパルスを用いてプログラムする。
【０１４９】
第２書き込み動作において“Ｃ”レベルにプログラムされるメモリセルの閾値電圧の変化の一例が、図１４に示されている。図１４の（１）に示すように、第２書き込み動作において半導体メモリ１０は、“Ｃ”レベルにプログラムされるメモリセルのうち、閾値電圧がベリファイ電圧ＤＩＶ（又はＤＩＶ１）より高い第１グループのメモリセルを第１パルスでプログラムする。図１４の（２）に示すように、第２書き込み動作において半導体メモリ１０は、“Ｃ”レベルにプログラムされるメモリセルのうち、閾値電圧がベリファイ電圧ＤＩＶ（又はＤＩＶ１）以下の第２グループのメモリセルを第２パルスでプログラムする。また、図１４の（１）及び（２）に示すように、第１パルスによる閾値電圧の上昇幅は、第２パルスによる閾値電圧の上昇幅よりも小さい。
【０１５０】
また、第２書き込み動作において“Ｅ”レベルにプログラムされるメモリセルの閾値電圧の変化の一例が、図１５に示されている。図１５の（１）に示すように、第２書き込み動作において半導体メモリ１０は、“Ｅ”レベルにプログラムされるメモリセルのうち、閾値電圧がベリファイ電圧ＤＩＶ（又はＤＩＶ２）より高い第１グループのメモリセルを第２パルスでプログラムする。図１５の（２）に示すように、第２書き込み動作において半導体メモリ１０は、“Ｅ”レベルにプログラムされるメモリセルのうち、閾値電圧がベリファイ電圧ＤＩＶ（又はＤＩＶ２）以下の第２グループのメモリセルを第３パルスでプログラムする。また、図１５の（１）及び（２）に示すように、第２パルスによる閾値電圧の上昇幅は、第３パルスによる閾値電圧の上昇幅よりも小さい。
【０１５１】
以上のように、半導体メモリ１０は、“Ｃ”レベルにプログラムするメモリセルのうち、閾値電圧が高いグループに対してプログラム電圧の低い第１パルスを用いたプログラムを実行し、閾値電圧が低いグループに対してプログラム電圧の高い第２パルスを用いたプログラム動作を実行する。また、半導体メモリ１０は、“Ｅ”レベルにプログラムするメモリセルのうち、閾値電圧が高いグループに対してプログラム電圧の低い第２パルスを用いたプログラムを実行し、閾値電圧が低いグループに対してプログラム電圧の高い第３パルスを用いたプログラム動作を実行する。
【０１５２】
これにより、第２実施形態に係る半導体メモリ１０は、“Ｃ”レベルにプログラムされるメモリセルにおいて、第１パルスによるプログラムの繰り返しによってベリファイ電圧ＣＶを超えるタイミングと、第２パルスによるプログラムの繰り返しによってベリファイ電圧ＣＶを超えるタイミングとを揃えることが出来る。また、半導体メモリ１０は、“Ｅ”レベルにプログラムされるメモリセルにおいて、第２パルスによるプログラムの繰り返しによってベリファイ電圧ＥＶを超えるタイミングと、第３パルスによるプログラムの繰り返しによってベリファイ電圧ＥＶを超えるタイミングとを揃えることが出来る。
【０１５３】
また、第２実施形態に係る半導体メモリ１０は、第２書き込み動作において、第１パルスによってプログラムされるレベルの数と、第２パルスによってプログラムされるレベルの数と、第３パルスによってプログラムされるレベルの数とを揃えることが出来る。具体的には、第２実施形態に係る半導体メモリ１０では、“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベルの第１グループが第１パルスによってプログラムされ、”Ｃ”レベルの第２グループ、“Ｄ”レベル、“Ｅ”レベルの第１グループが第２パルスによってプログラムされ、“Ｅ”レベルの第２グループ、“Ｆ”レベル、及び“Ｇ”レベルが第３パルスによってプログラムされる。これにより、第２実施形態に係る半導体メモリ１０は、２段階の書き込み動作においてトリプルパルス方式のプログラム動作を適用した場合に、第１パルスによるプログラムの終了タイミングと、第２パルスによるプログラムの終了タイミングと、第３パルスによるプログラムの終了タイミングとを揃えることが出来る。
【０１５４】
以上の結果、半導体メモリ１０は、２段階の書き込み動作においてトリプルパルス方式のプログラム動作を適用した場合において、あるプログラムパルスによるプログラムが終了した後に生じる、その他のプログラムパルスによるディスターブの影響を抑制することが出来る。従って、第２実施形態に係る半導体メモリ１０は、第１実施形態と同様に、メモリセルが記憶するデータの信頼性を向上することが出来る。
【０１５５】
［３］第３実施形態
第３実施形態に係る半導体メモリ１０は、第１実施形態に係る半導体メモリ１０と同様の構成である。そして第３実施形態に係る半導体メモリ１０は、フルシーケンスの書き込み動作の途中に第１実施形態で説明した分類ベリファイ動作を挿入し、書き込み動作の途中からダブルパルス方式を適用する。以下に、第３実施形態に係る半導体メモリ１０について、第１及び第２実施形態と異なる点を説明する。
【０１５６】
［３−１］動作
第３実施形態におけるメモリシステム１では、ホスト機器３０から受信したデータの書き込み動作において、メモリコントローラ２０がフルシーケンスの書き込み動作を半導体メモリ１０に命令する。フルシーケンスの書き込み動作とは、例えばＴＬＣ方式において３ビットのデータを一括でメモリセルトランジスタＭＴに書き込む動作に相当し、１回の書き込み動作で所望の閾値分布を形成する。以下では、半導体メモリ１０が実行するフルシーケンスの書き込み動作のことを第３書き込み動作と称する。
【０１５７】
図１６は、第３実施形態に係る半導体メモリ１０における第３書き込み動作のフローチャートの一例を示している。図１６の説明では、説明を簡潔にするために変数ｊを使用する。変数ｊは、例えばシーケンサ１４内のカウンタによってカウントされる。
【０１５８】
ステップＳ２０においてシーケンサ１４は、カウンタをリセット（ｊ＝０）する。ステップＳ２１においてシーケンサ１４は、シングルパルス方式のプログラム動作を実行する。ステップＳ２２においてシーケンサ１４は、ベリファイ動作を実行する。ステップＳ２３においてシーケンサ１４は、カウンタの数値が“ｋ”になっているかどうかを確認する。“ｋ”は、任意の数値に設定することが出来、１以上の整数である。
【０１５９】
ステップＳ２３において、カウンタの数値が“ｋ”になっていない場合（Ｓ２３、ＮＯ）、シーケンサ１４はステップＳ２４に移行する。シーケンサ１４は、ステップＳ２４及びＳ２５においてプログラム電圧をステップアップし、カウンタの数値をインクリメントして、ステップＳ２１の動作に移行する。つまり、シングルパルス方式のプログラム動作と、ベリファイ動作とを含むプログラムループを再び実行する。以下では、この書き込み動作の前半に実行されるプログラムループのことを、前半プログラムループと称する。
【０１６０】
ステップＳ２３において、カウンタの数値が“ｋ”になっている場合（Ｓ２３、ＹＥＳ）、シーケンサ１４はステップＳ２６に移行する。ステップＳ２６においてシーケンサ１４は、分類ベリファイ動作を実行する。この分類ベリファイ動作は、第１実施形態で説明した第２書き込み動作の分類ベリファイ動作と同様であり、本動作によって“Ｄ”レベルのプログラム対象であるメモリセルトランジスタＭＴが、閾値電圧の高い第１グループと閾値電圧の低い第２グループとに分類される。
【０１６１】
ステップＳ２７においてシーケンサ１４は、ダブルパルス方式のプログラム動作を実行する。ステップＳ２８においてシーケンサ１４は、ベリファイ動作を実行する。ステップＳ２９においてシーケンサ１４は、例えば各レベルにおけるベリファイをパスしたメモリセルトランジスタＭＴの数がそれぞれ所定の数を超えたかどうかを確認する。
【０１６２】
各レベルにおけるベリファイにパスしていない場合（Ｓ２９、ＮＯ）、シーケンサ１４はステップＳ３０に移行する。ステップＳ３０においてシーケンサ１４は、プログラム電圧をステップアップして、ステップＳ２７の動作に移行する。つまり、ダブルパルス方式のプログラム動作と、ベリファイ動作とを含むプログラムループを再び実行する。以下では、この書き込み動作の後半に実行されるプログラムループのことを、後半プログラムループと称する。各レベルにおけるベリファイにパスしている場合（Ｓ２９、ＹＥＳ）、シーケンサ１４は第３書き込み動作を終了して半導体メモリ１０をレディ状態に遷移させる。
【０１６３】
以上で説明した一連の動作が、１つのワード線ＷＬに対する書き込み動作に相当する。これ以降にメモリコントローラ２０は、異なるワード線ＷＬを選択して、同様の動作を半導体メモリ１０に命令する。そしてメモリコントローラ２０は、例えばホスト機器３０から受信した書き込みデータを全て半導体メモリ１０に記憶させると、書き込み動作を終了する。
【０１６４】
図１７は、第３実施形態に係る半導体メモリ１０の第３書き込み動作において各種配線に印加される電圧の一例を示している。図１７には、入出力信号Ｉ／Ｏの状態、並びに選択ワード線ＷＬsel、各レベルのプログラムに対応するビット線ＢＬの電圧がそれぞれ示されている。以下では、図１６における“ｋ”の数値が２に設定されている場合を例に説明する。第３書き込み動作が実行される前の初期状態において、ワード線ＷＬ及びビット線ＢＬには、例えば接地電圧Ｖssが印加されている。
【０１６５】
図１７に示すように、まずメモリコントローラ２０は、半導体メモリ１０に第３コマンドセットを送信する。第３コマンドセットは、半導体メモリ１０に第３書き込み動作の実行を指示するコマンドと、Lowerページデータ、Middleページデータ、及びUpperページデータとを含んでいる。
【０１６６】
このLowerページデータ、Middleページデータ、及びUpperページデータは、センスアンプモジュール１７内部のラッチ回路に保持される。そして半導体メモリ１０は、ビジー状態になり、センスアンプモジュール１７内に保持されたLowerページデータ、Middleページデータ、及びUpperページデータを用いて第３書き込み動作を実行する。尚、半導体メモリ１０が第３コマンドセットを受信している間に、半導体メモリ１０がビジー状態になる期間が含まれていても良い。
【０１６７】
第３書き込み動作が開始すると、シーケンサ１４は、まずシングルパルス方式のプログラム動作を実行する。具体的には、まずシーケンサ１４は、例えば“ＥＲ”レベルにプログラムするメモリセルトランジスタＭＴをプログラム禁止に設定する。また、シーケンサ１４は、例えば“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベル、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルにそれぞれプログラムするメモリセルトランジスタＭＴをプログラム対象に設定する。
【０１６８】
そしてセンスアンプモジュール１７は、プログラム禁止のビット線ＢＬに電圧Ｖblを印加し、プログラム対象のビット線ＢＬに接地電圧Ｖssを印加する。それからロウデコーダ１６は、選択ワード線ＷＬselにプログラム電圧Ｖpgmを印加する。プログラム電圧Ｖpgmは、メモリセルトランジスタＭＴの閾値電圧を上昇させることが可能な高電圧である。選択ワード線ＷＬselにプログラム電圧Ｖpgmが印加されると、プログラム禁止のメモリセルトランジスタＭＴでは、例えばチャネルブーストにより閾値電圧の上昇が抑制され、プログラム対象のメモリセルトランジスタＭＴでは、制御ゲートとチャネルとの間の電位差によって閾値電圧が上昇する。
【０１６９】
次に、シーケンサ１４は、ベリファイ動作を実行する。ベリファイ動作においてセンスアンプモジュール１７は、例えばプログラム禁止のビット線ＢＬに電圧Ｖssを印加して、プログラム対象のビット線ＢＬに電圧Ｖblを印加する。そしてロウデコーダ１６は、選択ワード線ＷＬselにベリファイ電圧ＡＶを印加する。各センスアンプユニットＳＡＵは、対応するメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧ＡＶを超えたかどうかを判定し、シーケンサ１４は、ベリファイをパスしたビット線ＢＬを以降のプログラム動作においてプログラム禁止に設定する。
【０１７０】
以上で説明したシングルパルス方式のプログラム動作とベリファイ動作との組が、１回の前半プログラムループに相当する。これ以降にシーケンサ１４は、前半プログラムループを繰り返し実行し、前半プログラムループ毎にプログラム電圧ＶpgmをΔＶpgmずつステップアップする。
【０１７１】
そしてシーケンサ１４は、例えば３回の前半プログラムループを実行した後に、分類ベリファイ動作を実行する。分類ベリファイ動作においてセンスアンプモジュール１７は、プログラム対象のビット線ＢＬに電圧Ｖblを印加する。そしてロウデコーダ１６は、選択ワード線ＷＬselにベリファイ電圧ＤＩＶを印加する。それから各センスアンプユニットＳＡＵは、“Ｄ”レベルのプログラム対象のメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧ＤＩＶを超えたかどうかを判定し、閾値電圧の高さに応じて第１グループ及び第２グループに分類する。
【０１７２】
次に、シーケンサ１４は、センスアンプモジュール１７内に保持されたLowerページデータ、Middleページデータ、及びUpperページデータと、分類ベリファイ動作の結果とに基づいて、ダブルパルス方式のプログラム動作を実行する。このダブルパルス方式のプログラム動作は、第１実施形態で説明した第２書き込み動作におけるダブルパルス方式のプログラム動作と同様である。そして、シーケンサ１４は、第１実施形態で説明した第２書き込み動作におけるベリファイ動作と同様のベリファイ動作を実行する。
【０１７３】
尚、第３実施形態におけるダブルパルス方式のプログラム動作では、第１パルスの電圧が、例えば直前のプログラムループにおいて印加されたプログラム電圧にΔＶpgmを加算した電圧に設定され、第２パルスの電圧が、例えば第１実施形態の第２書き込み動作における最初のプログラムループ内で第２パルスとして印加されたプログラム電圧Ｖpgm３と同じ電圧に設定される。第２パルスの電圧はこれに限定されず、同一のプログラムループ内で第１パルスより高い電圧に設定されていれば良い。
【０１７４】
以上で説明した第１パルス及び第２パルスを用いたダブルパルス方式のプログラム動作とベリファイ動作との組が、１回の後半プログラムループに相当する。これ以降にシーケンサ１４は、後半プログラムループを繰り返し実行し、プログラムループ毎に第１パルス及び第２パルスの電圧をそれぞれΔＶpgmずつステップアップする。尚、後半プログラムループにおいて、第１パルスの電圧がステップアップする値と、第２パルスの電圧がステップアップする値とは異なっていても良く、それぞれ任意の値に設定することが可能である。
【０１７５】
そしてシーケンサ１４は、例えば各レベルにおけるベリファイをパスしたメモリセルトランジスタＭＴの数がそれぞれ所定の数を超えたことを検知すると、第３書き込み動作を終了して半導体メモリ１０をレディ状態に遷移させる。
【０１７６】
以上で説明したように、第３書き込み動作において、後半プログラムループ内で選択ワード線ＷＬselに対してプログラムパルスが印加される回数は、前半プログラムループ内で選択ワード線ＷＬselに対してプログラムパルスが印加される回数よりも多い。また、前半プログラムループは、プログラムパルスを選択ワード線ＷＬselに対して印加した後、選択メモリセルにおいて“Ａ”レベルに対応するデータの書き込み完了を判定するベリファイ動作を含んでいる。
【０１７７】
図１８は、第３実施形態に係る半導体メモリ１０の第３書き込み動作におけるメモリセルトランジスタＭＴの閾値分布の変化の一例を示している。図１８の（１）及び（２）には半導体メモリ１０において第３書き込み動作を実行される前後におけるメモリセルトランジスタＭＴの閾値分布がそれぞれ示されている。
【０１７８】
図１８の（１）に示すように、第３書き込み動作の実行前において、メモリセルトランジスタＭＴの閾値電圧は“ＥＲ”レベルに分布している。そして、図１８の（２）に示すように、第３書き込み動作の実行後において、“ＥＲ”レベルの閾値分布から“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベル、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルの閾値分布が形成される。
【０１７９】
このように、第３書き込み動作では、“ＥＲ”レベルの閾値分布から８つの閾値分布が形成される。第３実施形態に係る半導体メモリ１０のその他の動作は、第１実施形態で説明した半導体メモリ１０の動作と同様のため、説明を省略する。
【０１８０】
尚、以上で説明した第３実施形態に係る半導体メモリ１０の第３書き込み動作におけるグループの分類については、以下のように言い換えることも出来る。
【０１８１】
例えば、シーケンサ１４は、分類ベリファイ動作を実行することによって、前半プログラムループによる書き込み結果に応じて、“Ｄ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを複数のサブグループに分類する。
【０１８２】
具体的には、まずシーケンサ１４は、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルにそれぞれ対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを第１グループのメモリセルトランジスタＭＴに対応付け、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルにそれぞれ対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを第２グループのメモリセルトランジスタＭＴに対応付ける。
【０１８３】
そして、シーケンサ１４は、“Ｄ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴのうち複数のサブグループの一のサブグループに分類されたメモリセルトランジスタＭＴを第１グループのメモリセルトランジスタＭＴに対応付け、“Ｄ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴのうち複数のサブグループの他のサブグループに分類されたメモリセルトランジスタＭＴを第２グループのメモリセルトランジスタＭＴに対応付ける。
【０１８４】
それから、シーケンサ１４は、第１グループのメモリセルトランジスタＭＴに対して第１パルスを用いたプログラムを実行し、第２グループのメモリセルトランジスタＭＴに対して第２パルスを用いたプログラムを実行する。
【０１８５】
［３−２］第３実施形態の効果
以上のように、第３実施形態に係る半導体メモリ１０は、フルシーケンスの書き込み動作において、まず始めにシングルパルス方式のプログラム動作を適用した前半プログラムループを繰り返し実行する。そして半導体メモリ１０は、所定の回数の前半プログラムループを実行した後に、分類ベリファイ動作を実行する。
【０１８６】
半導体メモリ１０は、このように書き込み動作の途中で分類ベリファイ動作を実行することによって、“Ｄ”レベルにプログラムするメモリセルのうち、閾値電圧の高いメモリセルと、閾値電圧の低いメモリセルとを区別することが出来る。つまり、第３実施形態に係る半導体メモリ１０は、第１実施形態と同様に、“Ｄ”レベルにプログラムするメモリセルを、比較的閾値電圧の高い第１グループと、比較的閾値電圧の低い第２グループとに分類することが出来る。
【０１８７】
そして、第３実施形態に係る半導体メモリ１０は、書き込み動作の途中でシングルパルス方式のプログラム動作からダブルパルス方式のプログラム動作に移行する。具体的には、第３実施形態に係る半導体メモリ１０は、ダブルパルス方式のプログラム動作において、“Ｄ”レベルにプログラムするメモリセルのうち、閾値電圧が高い第１グループのメモリセルに対してプログラム電圧の低い第１パルスを用いたプログラムを実行し、閾値電圧が低い第２グループのメモリセルに対してプログラム電圧の高い第２パルスを用いたプログラムを実行する。
【０１８８】
これにより、第３実施形態に係る半導体メモリ１０は、第１実施形態と同様に、“Ｄ”レベルにプログラムされるメモリセルにおいて、第１パルスによるプログラムの繰り返しによってベリファイをパスするタイミングと、第２パルスによるプログラムの繰り返しによってベリファイをパスするタイミングとを揃えることが出来る。また、第３実施形態に係る半導体メモリ１０は、第１実施形態と同様に、ダブルパルス方式のプログラム動作において、第１パルスによってプログラムされるレベルの数と、第２パルスによってプログラムされるレベルの数とを揃えることが出来る。
【０１８９】
以上のように、第３実施形態に係る半導体メモリ１０は、フルシーケンスの書き込み動作において、第１実施形態と同様の、“Ｄ”レベルのプログラムを分類したダブルパルス方式のプログラム動作を実行することが出来る。
【０１９０】
これにより、第３実施形態に係る半導体メモリ１０は、書き込み動作の途中からダブルパルス方式のプログラム動作を適用した場合において、一方のプログラムパルスによるプログラムが終了した後に生じる、他方のプログラムパルスによるディスターブの影響を抑制することが出来る。従って、第３実施形態に係る半導体メモリ１０は、第１実施形態と同様に、メモリセルが記憶するデータの信頼性を向上することが出来る。
【０１９１】
［４］第４実施形態
第４実施形態に係る半導体メモリ１０は、第１実施形態に係る半導体メモリ１０と同様の構成である。そして第４実施形態に係る半導体メモリ１０は、第３実施形態で説明した第３書き込み動作において、分類ベリファイ動作を省略して、分類ベリファイ動作の代わりに“Ａ”レベルのベリファイ結果を利用するものである。以下に、第４実施形態に係る半導体メモリ１０について、第１〜第３実施形態と異なる点を説明する。
【０１９２】
［４−１］動作
図１９は、第４実施形態に係る半導体メモリ１０における第３書き込み動作のフローチャートの一例を示している。図１９に示すフローチャートは、第３実施形態で説明した図１６に示すフローチャートにおいて、ステップＳ２３、及びＳ２６に対応する動作をステップＳ４０、Ｓ４１、及びＳ４２に置き換え、ステップＳ２１及びステップＳ２５の動作を省略したものと同様である。
【０１９３】
ステップＳ４０においてシーケンサ１４は、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴのうち、閾値電圧Ｖｔｈがベリファイ電圧ＡＶを超えた数をカウントする。そして、ステップＳ４１においてシーケンサ１４は、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴのうち、閾値電圧Ｖｔｈがベリファイ電圧ＡＶを超えたセル数が、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴの例えば半数以上になったかどうかを確認する。尚、この判定値は、任意の数値に設定することが可能である。
【０１９４】
ステップＳ４１において、閾値電圧Ｖｔｈがベリファイ電圧ＡＶを超えたセル数が半数以上になっていない場合（Ｓ４１、ＮＯ）、シーケンサ１４は、ステップＳ２４に移行する。つまり、シーケンサ１４は、プログラム電圧Ｖpgmをステップアップして、プログラムループを再び実行する。ステップＳ４１において、閾値電圧Ｖｔｈがベリファイ電圧ＡＶを超えたセル数が半数以上になった場合（Ｓ４１、ＹＥＳ）、シーケンサ１４は、ステップＳ４２に移行する。
【０１９５】
ステップＳ４２においてシーケンサ１４は、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴを閾値電圧の高い第１グループと閾値電圧の低い第２グループとに分類する。具体的には、直前のベリファイ電圧ＡＶにおけるベリファイ結果に基づいて、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴにおいて、ベリファイ電圧ＡＶによるベリファイにパスした場合に第１グループに分類し、ベリファイ電圧ＡＶによるベリファイにフェイルした場合に第２グループに分類する。
【０１９６】
そしてシーケンサ１４は、ステップＳ２７〜Ｓ３０の動作を実行して、第３実施形態で図１６を用いて説明した後半プログラムループを繰り返し実行する。それからシーケンサ１４は、ステップＳ２９において例えば各レベルにおけるベリファイをパスしたメモリセルトランジスタＭＴの数がそれぞれ所定の数を超えたことを検知すると、第３書き込み動作を終了して半導体メモリ１０をレディ状態に遷移させる。
【０１９７】
図２０は、第４実施形態に係る半導体メモリ１０の第３書き込み動作において各種配線に印加される電圧の一例を示している。図２０には、入出力信号Ｉ／Ｏの状態、並びに選択ワード線ＷＬsel、各レベルのプログラムに対応するビット線ＢＬの電圧がそれぞれ示されている。図２０に示すように、第４実施形態の第３書き込み動作において各種配線に印加される電圧は、第３実施形態で説明した図１７において分類ベリファイ動作のためのベリファイ電圧ＤＩＶ印加が省略されたものと同様である。
【０１９８】
具体的には、シングルパルスのプログラム動作を含む前半プログラムループが繰り返し実行される。例えば、３回の前半プログラムループが実行されると、最後の前半プログラムループにおいてシーケンサ１４は、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴにおいて、閾値電圧Ｖｔｈがベリファイ電圧ＡＶを超えたセル数が半数以上となったことを検知する。
【０１９９】
そしてシーケンサ１４は、ベリファイ電圧ＡＶによるベリファイ結果に基づいて、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴを第１グループ及び第２グループに分類する。それからシーケンサ１４は、第３実施形態で説明した後半プログラムループに移行する。第４実施形態に係る半導体メモリ１０のその他の動作は、第３実施形態で説明した半導体メモリ１０の動作と同様のため、説明を省略する。
【０２００】
このように第４実施形態に係る半導体メモリ１０においても、後半プログラムループ内で選択ワード線ＷＬselに対してプログラムパルスが印加される回数は、前半プログラムループ内で選択ワード線ＷＬselに対してプログラムパルスが印加される回数よりも多い。また、前半プログラムループは、プログラムパルスを選択ワード線ＷＬselに対して印加した後、選択メモリセルにおいて“Ａ”レベルに対応するデータの書き込み完了を判定するベリファイ動作を含んでいる。
【０２０１】
尚、以上で説明した第４実施形態に係る半導体メモリ１０の第３書き込み動作におけるグループの分類については、以下のように言い換えることも出来る。
【０２０２】
例えば、シーケンサ１４は、前半プログラムループ内で実行した“Ａ”レベルに対応するベリファイ動作をパスしたメモリセルトランジスタＭＴの数が所定の数を超えると、“Ｄ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを複数のサブグループに分類する。
【０２０３】
具体的には、まずシーケンサ１４は、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルにそれぞれ対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを第１グループのメモリセルトランジスタＭＴに対応付け、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルにそれぞれ対応するデータを書き込むべき複数のメモリセルトランジスタＭＴを第２グループのメモリセルトランジスタＭＴに対応付ける。
【０２０４】
そして、シーケンサ１４は、“Ｄ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴのうち複数のサブグループの一のサブグループに分類されたメモリセルトランジスタＭＴを第１グループのメモリセルトランジスタＭＴに対応付け、“Ｄ”レベルに対応するデータを書き込むべき複数のメモリセルトランジスタＭＴのうち複数のサブグループの他のサブグループに分類されたメモリセルトランジスタＭＴを第２グループのメモリセルトランジスタＭＴに対応付ける。
【０２０５】
それから、シーケンサ１４は、第１グループのメモリセルトランジスタＭＴに対して第１パルスを用いたプログラムを実行し、第２グループのメモリセルトランジスタＭＴに対して第２パルスを用いたプログラムを実行する。
【０２０６】
［４−２］第４実施形態の効果
以上のように、第４実施形態に係る半導体メモリ１０では、第３実施形態で説明したフルシーケンスの書き込み動作において、分類ベリファイ動作のためのベリファイ電圧ＤＩＶ印加が省略されている。そして、第４実施形態に係る半導体メモリ１０では、プログラムループに含まれる“Ａ”レベルのベリファイ動作を利用して“Ｄ”レベルにプログラムするメモリセルを閾値電圧の高い第１グループと閾値電圧の低い第２グループとに分類し、シングルパルス方式のプログラム動作からダブルパルス方式のプログラム動作に移行している。
【０２０７】
第４実施形態の第３書き込み動作において“Ｄ”レベルにプログラムされるメモリセルの閾値電圧の変化の一例が、図２１に示されている。図２１に示すように、第４実施形態に係る半導体メモリ１０は、ベリファイ電圧ＡＶを基準として“Ｄ”レベルにプログラムされるメモリセルをグループ分類し、それぞれ異なるプログラムパルスを用いたプログラム動作を実行する。
【０２０８】
具体的には、図２１の（１）に示すように、第３書き込み動作において半導体メモリ１０は、“Ｄ”レベルにプログラムされるメモリセルのうち、シングルパルス方式からダブルパルス方式への移行時の閾値電圧がベリファイ電圧ＡＶより高い第１グループのメモリセルを第１パルスでプログラムする。図２１の（２）に示すように、第３書き込み動作において半導体メモリ１０は、“Ｄ”レベルにプログラムされるメモリセルのうち、シングルパルス方式からダブルパルス方式への移行時の閾値電圧がベリファイ電圧ＡＶ以下の第２グループのメモリセルを第２パルスでプログラムする。また、図２１の（１）及び（２）に示すように、第１パルスによる閾値電圧の上昇幅は、第２パルスによる閾値電圧の上昇幅よりも小さい。
【０２０９】
これにより、第４実施形態に係る半導体メモリ１０は、“Ｄ”レベルにプログラムされるメモリセルにおいて、第１パルスによるプログラムの繰り返しによってベリファイ電圧ＤＶを超えるタイミングと、第２パルスによるプログラムの繰り返しによってベリファイ電圧ＤＶを超えるタイミングとを揃えることが出来る。また、第４実施形態に係る半導体メモリ１０は、第３実施形態と同様に、ダブルパルス方式のプログラム動作において、第１パルスによってプログラムされるレベルの数と、第２パルスによってプログラムされるレベルの数とを揃えることが出来る。
【０２１０】
以上のように、第４実施形態に係る半導体メモリ１０は、フルシーケンスの書き込み動作において、第３実施形態と同様の、“Ｄ”レベルのプログラムを分類したダブルパルス方式のプログラム動作を実行することが出来る。
【０２１１】
これにより、第４実施形態に係る半導体メモリ１０は、書き込み動作の途中からダブルパルス方式のプログラム動作を適用した場合において、一方のプログラムパルスによるプログラムが終了した後に生じる、他方のプログラムパルスによるディスターブの影響を抑制することが出来る。従って、第４実施形態に係る半導体メモリ１０は、第３実施形態と同様に、メモリセルが記憶するデータの信頼性を向上することが出来る。
【０２１２】
尚、以上の説明では、図１９に示すステップＳ４０において、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴのうち、閾値電圧Ｖｔｈがベリファイ電圧ＡＶを超えたセル数をカウントして、ステップＳ４１における判定値として利用したが、これに限定されない。
【０２１３】
例えば、シーケンサ１４が、ステップＳ４０において書き込み対象の全てのメモリセルトランジスタＭＴにおける“Ａ”レベルのベリファイ結果を参照しても良い。この場合、シーケンサ１４は、ステップＳ４１において当該全てのメモリセルトランジスタＭＴのうち、閾値電圧Ｖｔｈがベリファイ電圧ＡＶを超えたセル数が半数以上となったかどうかを判定し、その判定結果に基づいてステップＳ４２に移行する。このように、ステップＳ４０及びＳ４１においてカウント及び判定に用いるメモリセルの種類は、適宜変更することが出来る。
【０２１４】
［５］変形例等
実施形態の半導体メモリ＜図１、１０＞は、複数のメモリセルと、ワード線と、複数のビット線と、コントローラ＜図１、１４＞と、を含む。複数のメモリセルは、各々が閾値電圧に基づいて複数ビットのデータを記憶する。複数のメモリセルは、複数ビットのデータとして第１データ＜図４、例えば“Ａ”レベル＞を記憶する場合は第１閾値電圧を有するように設定され、複数ビットのデータとして第２データ＜図４、“Ｄ”レベル＞を記憶する場合は第１閾値電圧より高い第２閾値電圧を有するように設定され、複数ビットのデータとして第３データ＜図４、例えば“Ｇ”レベル＞を記憶する場合は第２閾値電圧より高い第３閾値電圧を有するように設定される。ワード線は、複数のメモリセルに接続される。複数のビット線は、複数のメモリセルにそれぞれ接続される。コントローラは、第１書き込みを実行し、第１書き込み結果に応じて第２データを書き込むべき複数のメモリセルを複数のサブグループに分類し、分類の後に第１プログラムループを含む第２書き込みを実行する。コントローラは、第２書き込みを実行する際、第１データを書き込むべき複数のメモリセルを第１グループのメモリセルに対応付け、第３データを書き込むべき複数のメモリセルを第２グループのメモリセルに対応付け、第２データを書き込むべき複数のメモリセルのうち複数のサブグループの一のサブグループに分類されたメモリセルを第１グループのメモリセルに対応付け、第２データを書き込むべき複数のメモリセルのうち複数のサブグループの他のサブグループに分類されたメモリセルを第２グループのメモリセルに対応付ける。コントローラは、１回の第１プログラムループ内に、ワード線に対し第１プログラムパルス＜図８、第１パルス＞と第２プログラムパルス＜図８、第２パルス＞とをそれぞれ印加し、第１プログラムパルスを印加している間に、第１グループのメモリセルに接続されたビット線に対し第１電圧を印加し、第２プログラムパルスを印加している間に、第１グループのメモリセルに接続されたビット線に対し第１電圧よりも高い第２電圧を印加し、第２グループのメモリセルに接続されたビット線に対し第１電圧を印加する。これにより、半導体メモリが記憶するデータの信頼性を向上させることが出来る。
【０２１５】
尚、第１、第３、及び第４実施形態では、ダブルパルス方式のプログラム動作において、第１パルスによるプログラム動作時に、第２パルスにおいてプログラム対象とされるメモリセルをプログラム禁止に設定された場合を例に説明したが、これに限定されない。また、第２実施形態では、トリプルパルス方式のプログラム動作において、第１パルスによるプログラム動作時に、第２及び第３パルスにおいてプログラム対象とされるメモリセルをプログラム禁止に設定され、第２パルスによるプログラム動作時に、第１及び第３パルスにおいてプログラム対象とされるメモリセルをプログラム禁止に設定された場合を例に説明したが、これに限定されない。
【０２１６】
例えば、シーケンサ１４は、ダブルパルス方式の書き込み動作において、第２パルスにおいてプログラム対象とされるメモリセルを、第１パルスによるプログラム動作時においてプログラム対象に設定しても良い。また、シーケンサ１４は、トリプルパルス方式の書き込み動作において、第２パルスにおいてプログラム対象とされるメモリセルを、第１パルスによるプログラム動作時においてプログラム対象に設定しても良いし、第３パルスにおいてプログラム対象とされるメモリセルを、第１パルス及び第２パルスによるプログラム動作時においてそれぞれプログラム対象に設定しても良い。
【０２１７】
図２２は、第１実施形態の変形例における第２書き込み動作で各種配線に印加される電圧の一例を示し、第１実施形態で図８を用いて説明した第２書き込み動作に対して、第１パルスが印加されている際のビット線ＢＬの電圧が異なっている。具体的には、センスアンプモジュール１７が、図２２に示すように第１パルスが印加されている際に、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴのうち第２グループに対応するビット線ＢＬと、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルのプログラムにそれぞれ対応するビット線ＢＬとに電圧Ｖssを印加する。第１実施形態の変形例における第２書き込み動作のその他の動作は、図８を用いて説明した第２書き込み動作と同様のため、説明を省略する。
【０２１８】
図２３は、第２実施形態の第２変形例における第２書き込み動作で各種配線に印加される電圧の一例を示し、第２実施形態で図１２を用いて説明した第２書き込み動作に対して、第１パルスが印加されている際のビット線ＢＬの電圧と第２パルスが印加されている際のビット線ＢＬの電圧とが異なっている。具体的には、センスアンプモジュール１７が、図２３に示すように第１パルスが印加されている際に、“Ｃ”レベルにプログラムするメモリセルトランジスタＭＴのうち第２グループに対応するビット線ＢＬと、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルのプログラムにそれぞれ対応するビット線ＢＬとに電圧Ｖssを印加する。また、第２パルスが印加されている際に、“Ｅ”レベルにプログラムするメモリセルトランジスタＭＴのうち第２グループに対応するビット線ＢＬと、“Ｆ”レベル及び“Ｇ”レベルのプログラムにそれぞれ対応するビット線ＢＬとに電圧Ｖssを印加する。第２実施形態の第２変形例における第２書き込み動作のその他の動作は、図１２を用いて説明した第２書き込み動作と同様のため、説明を省略する。尚、第２実施形態の第２変形例における上記動作は、第２実施形態の第１変形例に対して適用することも可能である。
【０２１９】
図２４は、第３実施形態の変形例における第３書き込み動作で各種配線に印加される電圧の一例を示し、第３実施形態で図１７を用いて説明した第３書き込み動作に対して、第１パルスが印加されている際のビット線ＢＬの電圧が異なっている。具体的には、センスアンプモジュール１７が、図２４に示すように第１パルスが印加されている際に、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴのうち第２グループに対応するビット線ＢＬと、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルのプログラムにそれぞれ対応するビット線ＢＬとに電圧Ｖssを印加する。第３実施形態の変形例における第３書き込み動作のその他の動作は、図１７を用いて説明した第３書き込み動作と同様のため、説明を省略する。
【０２２０】
図２５は、第４実施形態の変形例における第３書き込み動作で各種配線に印加される電圧の一例を示し、第４実施形態で図２０を用いて説明した第３書き込み動作に対して、第１パルスが印加されている際のビット線ＢＬの電圧が異なっている。具体的には、センスアンプモジュール１７が、図２５に示すように第１パルスが印加されている際に、“Ｄ”レベルにプログラムするメモリセルトランジスタＭＴのうち第２グループに対応するビット線ＢＬと、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルのプログラムにそれぞれ対応するビット線ＢＬとに電圧Ｖssを印加する。第４実施形態の変形例における第３書き込み動作のその他の動作は、図２０を用いて説明した第３書き込み動作と同様のため、説明を略する。
【０２２１】
尚、上記実施形態では、ベリファイ動作において、選択ワード線ＷＬselにベリファイ電圧が印加されている間に、センスアンプモジュール１７がプログラム禁止のビット線ＢＬと、ベリファイ非対象のメモリセルに対応するビット線に対して接地電圧Ｖssを印加している場合を例に説明したが、これに限定されない。例えば、センスアンプモジュール１７は、各ベリファイ電圧が印加されている間に、プログラム禁止のビット線ＢＬとベリファイ非対象のメモリセルに対応するビット線に対して電圧Ｖblを印加していても良い。
【０２２２】
尚、第３及び第４実施形態において、書き込み方式としてＴＬＣ方式を適用した場合を例に説明したが、これに限定されない。第３及び第４実施形態に係る半導体メモリ１０には、例えばＱＬＣ方式が適用されても良い。このような場合においても、第３書き込み動作の途中からグループ分類する対象のメモリセルを適宜設定することにより、第３及び第４実施形態と同様の効果を得ることが出来る。例えば、第１実施形態で説明したように、“Ｈ”レベルにプログラムするメモリセルをグループ分類して、分類したグループにそれぞれ異なるプログラムパルスを適用したダブルパルスのプログラム動作を実行すれば良い。
【０２２３】
尚、第３及び第４実施形態において、プログラム動作にダブルパルス方式を適用した場合を例に説明したが、これに限定されない。第３及び第４実施形態に係る半導体メモリ１０には、例えばトリプルパルス方式が適用されても良い。このような場合においても、第３書き込み動作の途中から、第２実施形態と同様にグループ分類する対象のメモリセルを設定することにより、第３及び第４実施形態と同様の効果を得ることが出来る。例えば、第２実施形態で説明したように、分類ベリファイ動作において、“Ｃ”レベル及び“Ｅ”レベルにそれぞれプログラムするメモリセルをグループ分類する。そして第２実施形態で説明したトリプルパルス方式のプログラム動作と同様に、“Ｃ”レベルで分類されたグループ毎にそれぞれ異なるプログラムパルスを適用し、“Ｅ”レベルで分類されたグループ毎にそれぞれ異なるプログラムパルスを適用する。これにより、トリプルパルス方式を適用した第３及び第４実施形態に係る半導体メモリ１０は、それぞれ第２実施形態と同様の効果を得ることが出来る。
【０２２４】
尚、上記実施形態では、第１〜第３書き込み動作についてワード線ＷＬの波形を示して説明したが、対応する信号線ＣＧの波形もワード線ＷＬの波形と同様の波形となる。つまり、ワード線ＷＬに印加される電圧と、ワード線ＷＬに電圧が印加されている期間とは、対応する信号線ＣＧの電圧を調べることにより大まかに知ることが出来る。尚、ワード線ＷＬの電圧と信号線ＣＧの電圧との間には、トランジスタＴＲによる電圧降下の影響が現れていても良い。
【０２２５】
尚、上記実施形態におけるメモリセルアレイ１１の構成は、その他の構成であっても良い。その他のメモリセルアレイ１１の構成については、例えば“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号、“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【０２２６】
尚、上記実施形態では、ブロックＢＬＫがデータの消去単位である場合を例に説明したが、これに限定されない。その他の消去動作については、“不揮発性半導体記憶装置”という２０１１年９月１８日に出願された米国特許出願１３／２３５，３８９号、“不揮発性半導体記憶装置”という２０１０年１月２７日に出願された米国特許出願１２／６９４，６９０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【０２２７】
尚、本明細書において“接続”とは、電気的に接続されている事を示し、例えば間に別の素子を介することを除外しない。また、本明細書において“遮断”とは、トランジスタがオフ状態になっていることを示し、例えばトランジスタのリーク電流のような微少な電流が流れることを除外しない。
【０２２８】
尚、上記各実施形態において、  
（１）書き込み動作は、上述した通りプログラム動作とベリファイ動作とを含む。プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば１３.７〜１４.３Ｖの間である。これに限定されることなく、例えば１３.７〜１４.０Ｖ、１４.０〜１４.６Ｖのいずれかの間にしても良い。プログラム動作時に非選択のワード線に印加される電圧としては、例えば６.０〜７.３Ｖの間としても良い。この場合に限定されることなく、例えば７.３〜８.４Ｖの間としても良く、６.０Ｖ以下としても良い。  
書き込み動作において、奇数番目のワード線を選択した際に、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を選択した際に、選択されたワード線に最初に印加される電圧とは、異なっていても良い。書き込み動作において、非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えても良い。  
プログラム動作をＩＳＰＰ方式（Incremental Step Pulse Program）とした場合における、プログラム電圧のステップアップ幅としては、例えば０.５Ｖ程度が挙げられる。  
書き込み動作の時間（ｔProg）としては、例えば１７００〜１８００μs、１８００〜１９００μs、１９００〜２０００μsの間にしても良い。
【０２２９】
（２）消去動作では、半導体基板上部に形成され、且つ上記メモリセルが上方に積層されたウェルに最初に印加する電圧は、例えば１２.０〜１３.６Ｖの間である。この場合に限定されることなく、例えば１３.６〜１４.８Ｖ、１４.８〜１９.０Ｖ、１９.０〜１９.８Ｖ、１９.８〜２１.０Ｖの間であっても良い。  
消去動作の時間（ｔErase）としては、例えば３０００〜４０００μs、４０００〜５０００μs、４０００〜９０００μsの間にしても良い。
【０２３０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２３１】
１…メモリシステム、１０…半導体メモリ、１１…メモリセルアレイ、１２…コマンドレジスタ、１３…アドレスレジスタ、１４…シーケンサ、１５…ドライバ、１６…ロウデコーダ、１７…センスアンプモジュール、２０…メモリコントローラ、２１…プロセッサ、２２…ＲＡＭ、２３…ホストインターフェイス回路、２４…バッファメモリ、２５…ＥＣＣ回路、２６…ＮＡＮＤインターフェイス回路、３０…ホスト機器、ＢＬ…ビット線、ＷＬ…ワード線、ＭＴ…メモリセルトランジスタ、ＳＴ…選択トランジスタ、ＢＬＫ…ブロック、ＳＡＵ…センスアンプユニット
【図１】
2019057350.tif 000003
【図２】
2019057350.tif 000004
【図３】
2019057350.tif 000005
【図４】
2019057350.tif 000006
【図５】
2019057350.tif 000007
【図６】
2019057350.tif 000008
【図７】
2019057350.tif 000009
【図８】
2019057350.tif 000010
【図９】
2019057350.tif 000011
【図１０】
2019057350.tif 000012
【図１１】
2019057350.tif 000013
【図１２】
2019057350.tif 000014
【図１３】
2019057350.tif 000015
【図１４】
2019057350.tif 000016
【図１５】
2019057350.tif 000017
【図１６】
2019057350.tif 000018
【図１７】
2019057350.tif 000019
【図１８】
2019057350.tif 000020
【図１９】
2019057350.tif 000021
【図２０】
2019057350.tif 000022
【図２１】
2019057350.tif 000023
【図２２】
2019057350.tif 000024
【図２３】
2019057350.tif 000025
【図２４】
2019057350.tif 000026
【図２５】
2019057350.tif 000027