(57)【要約】【課題】処理能力を向上することができる半導体記憶装置を提供する。【解決手段】異なる複数の閾値電圧のいずれかに設定可能な複数のメモリセルＭＴを備えたメモリセルアレイ２３と、複数のメモリセルＭＴにそれぞれ接続された複数のビット線ＢＬと、複数のメモリセルＭＴのゲートに接続されたワード線ＷＬと、メモリセルＭＴにデータを書き込むプログラム動作と前記メモリセルに書き込まれたデータを検証するベリファイ動作とのセットから成る複数のループを繰り返し行う書き込みシーケンスを実行し、メモリセルＭＴに所定のデータの書き込みを行う制御部２２と、を具備し、制御部２２は、書き込みシーケンス実行に先立ち、メモリセルＭＴに対して予備プログラム動作と検出ベリファイ動作を行った結果に基づき書き込みシーケンスを補正する。【選択図】図１８
2020047329.tif 000002
【特許請求の範囲】
【請求項１】
各々が少なくとも４つの異なる閾値電圧のいずれかに設定可能な複数のメモリセルを備えたメモリセルアレイと、
前記複数のメモリセルにそれぞれ接続された複数のビット線と、
前記複数のメモリセルのゲートに接続されたワード線と、
前記メモリセルにデータを書き込むプログラム動作と前記メモリセルに書き込まれた前記データを検証するベリファイ動作とのセットから成る複数のループを繰り返し行う書き込みシーケンスを実行し、前記メモリセルに所定のデータの書き込みを行う制御部と、
を具備し、
前記制御部は、前記書き込みシーケンス実行に先立ち、前記メモリセルに対して予備プログラム動作と検出ベリファイ動作を行った結果に基づき前記書き込みシーケンスを補正することを特徴とする、半導体記憶装置。
【請求項２】
前記制御部は、前記予備プログラム動作と前記検出ベリファイ動作を行い、設定されたデータが書き込まれていない前記メモリセルの割合であるフェイル率を算出し、前記フェイル率に基づき前記書き込みシーケンスを補正することを特徴とする、請求項１に記載の半導体記憶装置。
【請求項３】
前記制御部は、前記書き込みシーケンスに設定されている前記ループの数を調整することで補正を行うことを特徴とする、請求項１又は請求項２に記載の半導体記憶装置。
【請求項４】
前記制御部は、前記書き込みシーケンスに設定されている前記ベリファイ動作を開始する前記ループの位置を調整することで補正を行うことを特徴とする、請求項１乃至請求項３のいずれか一項に記載の半導体記憶装置。
【請求項５】
前記制御部は、前記書き込みシーケンスに設定されている前記複数のループにおいて、前記ワード線に印加するプログラム電圧を調整することで補正を行うことを特徴とする、請求項１乃至請求項４のいずれか一項に記載の半導体記憶装置。
【請求項６】
前記制御部は、前記予備プログラム動作において、前記メモリセルに設定可能な複数の閾値電圧のうち、一番低い閾値電圧をターゲットとして前記プログラム動作を行うことを特徴とする、請求項１乃至請求項５のいずれか一項に記載の半導体記憶装置。
【請求項７】
前記制御部は、前記予備プログラム動作において、異なる閾値電圧をターゲットとする前記プログラム動作を複数回行うことを特徴とする、請求項１乃至請求項６のいずれか一項に記載の半導体記憶装置。
【請求項８】
前記制御部は、前記１回の予備プログラム動作に対し、前記検出ベリファイ動作を１回のみ行うことを特徴とする、請求項１乃至請求項７に記載の半導体記憶装置。
【請求項９】
前記制御部は、前記予備プログラム動作において最後に行われる前記プログラム動作よりも前に、前記検出ベリファイ動作を行うことを特徴とする、請求項１乃至請求項８に記載の半導体記憶装置。
【請求項１０】
前記制御部は、前記検出ベリファイ動作を行った結果に基づき、前記検出ベリファイ動作よりも後に行われる前記予備プログラム動作における前記プログラム動作の補正も行うことを特徴とする、請求項９に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
半導体記憶装置として、ＮＡＮＤフラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１４２８７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本実施形態は、処理能力を向上することができる半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本実施形態の半導体記憶装置は、各々が少なくとも４つの異なる閾値電圧のいずれかに設定可能な複数のメモリセルを備えたメモリセルアレイと、前記複数のメモリセルにそれぞれ接続された複数のビット線と、前記複数のメモリセルのゲートに接続されたワード線と、前記メモリセルにデータを書き込むプログラム動作と前記メモリセルに書き込まれた前記データを検証するベリファイ動作とのセットから成る複数のループを繰り返し行う書き込みシーケンスを実行し、前記メモリセルに所定のデータの書き込みを行う制御部とを備えている。前記制御部は、前記書き込みシーケンス実行に先立ち、前記メモリセルに対して予備プログラム動作と検出ベリファイ動作を行った結果に基づき前記書き込みシーケンスを補正する。
【図面の簡単な説明】
【０００６】
【図１】本発明の実施形態にかかるメモリシステムの構成例を示すブロック図。
【図２】本発明の実施形態の不揮発性メモリの構成例を示すブロック図。
【図３】３次元構造のメモリセルアレイのブロックの構成例を示す図。
【図４】３次元構造のＮＡＮＤメモリのメモリセルアレイの一部領域の断面図。
【図５】本発明の実施形態の閾値領域の一例を示す図。
【図６】本発明の実施形態のデータコーディングを示す図。
【図７】書き込み動作時における各配線の電位変化を示す図。
【図８】書き込み動作時のストリングの様子を示す回路図。
【図９】標準書き込みシーケンスに基づく書き込み動作時における、ループ回数とプログラム動作およびベリファイ動作との関係を示すダイアグラム。
【図１０】標準書き込みシーケンスに基づく書き込み動作時における、ループ回数とビット線電圧との関係を示すダイアグラム。
【図１１】標準書き込みシーケンスに基づく書き込み動作時における、選択ワード線、及び、ビット線の電圧を示すタイミングチャート。
【図１２】標準書き込みシーケンスに基づく書き込み動作時における、選択ワード線、及び、ビット線の電圧を示すタイミングチャート。
【図１３】標準書き込みシーケンスに基づく書き込み動作時における、選択ワード線の電圧の一例を説明する図。
【図１４】標準書き込みシーケンスに基づく書き込み動作時における、プログラム動作とベリファイ動作のタイミングを示す図。
【図１５】第１の実施形態における書き込み動作の手順の一例を説明するフローチャート。
【図１６】第１の実施形態における半導体記憶装置の書き込み動作時における、ループ回数とプログラム動作およびベリファイ動作との関係の一例を示すダイアグラム。
【図１７】第１の実施形態における半導体記憶装置の書き込み動作時における、選択ワード線の電圧の一例を説明する図。
【図１８】第１の実施形態における半導体記憶装置の書き込み動作時における、プログラム動作とベリファイ動作のタイミングの一例を示す図。
【図１９】第１の実施形態における半導体記憶装置の書き込み動作時における、ループ回数とプログラム動作およびベリファイ動作との関係の別の一例を示すダイアグラム。
【図２０】第１の実施形態における半導体記憶装置の書き込み動作時における、選択ワード線の電圧の別の一例を説明する図。
【図２１】第１の実施形態における半導体記憶装置の書き込み動作時における、プログラム動作とベリファイ動作のタイミングの別の一例を示す図。
【図２２】第２の実施形態における半導体記憶装置の書き込み動作時における、選択ワード線の電圧の一例を説明する図。
【図２３】第２の実施形態における半導体記憶装置の書き込み動作時における、プログラム動作とベリファイ動作のタイミングの一例を示す図。
【図２４】第３の実施形態における半導体記憶装置の書き込み動作時における、選択ワード線の電圧の一例を説明する図。
【図２５】第３の実施形態における半導体記憶装置の書き込み動作時における、プログラム動作とベリファイ動作のタイミングの一例を示す図。
【図２６】第４の実施形態における書き込み動作の手順の一例を説明するフローチャート。
【図２７】第４の実施形態における半導体記憶装置の書き込み動作時における、選択ワード線の電圧の一例を説明する図。
【図２８】第４の実施形態における半導体記憶装置の書き込み動作時における、プログラム動作とベリファイ動作のタイミングの一例を示す図。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態を説明する。
（第１の実施形態）
（１．構成）
（１−１．メモリシステムの構成）
図１は、本発明の実施形態にかかるメモリシステムの構成例を示すブロック図である。本実施形態のメモリシステムは、メモリコントローラ１と、半導体記憶装置としての不揮発性メモリ２とを備える。メモリシステムは、ホストと接続可能である。ホストは、例えば、パーソナルコンピュータ、携帯端末などの電子機器である。
【０００８】
不揮発性メモリ２は、データを不揮発に記憶するメモリであり、例えば、ＮＡＮＤメモリ（ＮＡＮＤフラッシュメモリ）を備えている。本実施形態では、不揮発性メモリ２は、メモリセルあたり３ｂｉｔを記憶可能なメモリセルを有するＮＡＮＤメモリ、すなわち３ｂｉｔ／Ｃｅｌｌ（ＴＬＣ：Ｔｒｉｐｌｅ Ｌｅｖｅｌ Ｃｅｌｌ）のＮＡＮＤメモリであるとして説明する。不揮発性メモリ２は、３次元化されている。
【０００９】
メモリコントローラ１は、ホストからの書き込みリクエストに従って不揮発性メモリ２へのデータの書き込みを制御する。また、メモリコントローラ１は、ホストからの読み出しリクエストに従って不揮発性メモリ２からのデータの読み出しを制御する。メモリコントローラ１は、ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）１１、プロセッサ１２、ホストインターフェイス１３、ＥＣＣ（Ｅｒｒｏｒ Ｃｈｅｃｋ ａｎｄ Ｃｏｒｒｅｃｔ）回路１４およびメモリインターフェイス１５を備える。ＲＡＭ１１、プロセッサ１２、ホストインターフェイス１３、ＥＣＣ回路１４およびメモリインターフェイス１５は、互いに内部バス１６で接続される。
【００１０】
ホストインターフェイス１３は、ホストから受信したリクエスト、ユーザデータ（書き込みデータ）などを内部バス１６に出力する。また、ホストインターフェイス１３は、不揮発性メモリ２から読み出されたユーザデータ、プロセッサ１２からの応答などをホストへ送信する。
【００１１】
メモリインターフェイス１５は、プロセッサ１２の指示に基づいて、ユーザデータ等を不揮発性メモリ２へ書き込む処理および不揮発性メモリ２から読み出す処理を制御する。
【００１２】
プロセッサ１２は、メモリコントローラ１を統括的に制御する。プロセッサ１２は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）、ＭＰＵ（Ｍｉｃｒｏ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）等である。プロセッサ１２は、ホストからホストインターフェイス１３経由でリクエストを受けた場合に、そのリクエストに従った制御を行う。例えば、プロセッサ１２は、ホストからのリクエストに従って、不揮発性メモリ２へのユーザデータおよびパリティの書き込みをメモリインターフェイス１５へ指示する。また、プロセッサ１２は、ホストからのリクエストに従って、不揮発性メモリ２からのユーザデータおよびパリティの読み出しを、メモリインターフェイス１５へ指示する。
【００１３】
プロセッサ１２は、ＲＡＭ１１に蓄積されるユーザデータに対して、不揮発性メモリ２上の格納領域（メモリ領域）を決定する。ユーザデータは、内部バス１６経由でＲＡＭ１１に格納される。プロセッサ１２は、メモリ領域の決定を、書き込み単位であるページ単位のデータ（ページデータ）に対して実施する。本明細書では、不揮発性メモリ２の１ページに格納されるユーザデータをユニットデータと定義する。ユニットデータは、一般的には符号化されて符号語として不揮発性メモリ２に格納される。本実施形態では、符号化は必須ではない。メモリコントローラ１は、符号化せずにユニットデータを不揮発性メモリ２に格納してもよいが、図１では、一構成例として符号化を行う構成を示している。メモリコントローラ１が符号化を行わない場合には、ページデータはユニットデータと一致する。また、１つのユニットデータに基づいて１つの符号語が生成されてもよいし、ユニットデータが分割された分割データに基づいて１つの符号語が生成されてもよい。また、複数のユニットデータを用いて１つの符号語が生成されてもよい。
【００１４】
プロセッサ１２は、ユニットデータごとに書き込み先の不揮発性メモリ２のメモリ領域を決定する。不揮発性メモリ２のメモリ領域には物理アドレスが割当てられている。プロセッサ１２は、ユニットデータの書き込み先のメモリ領域を、物理アドレスを用いて管理する。プロセッサ１２は、決定したメモリ領域（物理アドレス）を指定してユーザデータを不揮発性メモリ２へ書き込むようメモリインターフェイス１５へ指示する。プロセッサ１２は、ユーザデータの論理アドレス（ホストが管理する論理アドレス）と物理アドレスとの対応を管理する。プロセッサ１２は、ホストからの論理アドレスを含む読み出しリクエストを受信した場合は、論理アドレスに対応する物理アドレスを特定し、物理アドレスを指定してユーザデータの読み出しをメモリインターフェイス１５へ指示する。
【００１５】
ＥＣＣ回路１４は、ＲＡＭ１１に格納されたユーザデータを符号化して、符号語を生成する。また、ＥＣＣ回路１４は、不揮発性メモリ２から読み出された符号語を復号する。
【００１６】
ＲＡＭ１１は、ホストから受信したユーザデータを不揮発性メモリ２へ記憶するまでに一時格納したり、不揮発性メモリ２から読み出したデータをホストへ送信するまでに一時格納したりする。ＲＡＭ１１は、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）やＤＲＡＭ（Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）などの汎用メモリである。
【００１７】
図１では、メモリコントローラ１が、ＥＣＣ回路１４とメモリインターフェイス１５をそれぞれ備える構成例を示した。しかしながら、ＥＣＣ回路１４がメモリインターフェイス１５に内蔵されていてもよい。また、ＥＣＣ回路１４が、不揮発性メモリ２に内蔵されていてもよい。
【００１８】
ホストから書き込みリクエストを受信した場合、メモリシステムは次のように動作する。プロセッサ１２は、書き込み対象となるデータをＲＡＭ１１に一時記憶させる。プロセッサ１２は、ＲＡＭ１１にストアされたデータを読み出し、ＥＣＣ回路１４に入力する。ＥＣＣ回路１４は、入力されたデータを符号化し、符号語をメモリインターフェイス１５に入力する。メモリインターフェイス１５は、入力された符号語を不揮発性メモリ２に書き込む。
【００１９】
ホストから読み出しリクエストを受信した場合、メモリシステムは次のように動作する。メモリインターフェイス１５は、不揮発性メモリ２から読み出した符号語をＥＣＣ回路１４に入力する。ＥＣＣ回路１４は、入力された符号語を復号し、復号されたデータをＲＡＭ１１にストアする。プロセッサ１２は、ＲＡＭ１１にストアされたデータを、ホストインターフェイス１３を介してホストに送信する。
（１−２．不揮発性メモリの構成）
図２は、本実施形態の不揮発性メモリの構成例を示すブロック図である。不揮発性メモリ２は、ＮＡＮＤ Ｉ／Ｏインターフェイス２１、制御部２２、ＮＡＮＤメモリセルアレイ（メモリセル部）２３、センスユニット２４、及び、ロウデコーダ２５を備える。不揮発性メモリ２は、例えば１チップの半導体基板（例えば、シリコン基板）からなる。
【００２０】
制御部２２は、ＮＡＮＤ Ｉ／Ｏインターフェイス２１経由でメモリコントローラ１か
ら入力されたコマンド等に基づいて、不揮発性メモリ２の動作を制御する。具体的には、制御部２２は、書き込みリクエストが入力された場合、書き込み対象となるデータをＮＡＮＤメモリセルアレイ２３上の指定されたアドレスへ書き込むよう、ロウデコーダ２５とセンスユニット２４を制御する。また、制御部２２は、読み出しリクエストが入力された場合、読み出だされたデータをＮＡＮＤメモリセルアレイ２３から読み出してＮＡＮＤ Ｉ／Ｏインターフェイス２１経由でメモリコントローラ１へ出力するよう制御する。
【００２１】
ロウデコーダ２５は、制御部２２から入力されたロウアドレスに基づいて、ＮＡＮＤメモリセルアレイ２３をブロック単位で選択するとともに、ワード線に所望の電圧を印可する。
【００２２】
センスユニット２４は、データの読み出し時において、ＮＡＮＤメモリセルアレイ２３から読み出したデータを検知する。また、センスユニット２４は、データの書き込み時において、メモリコントローラ１から入力された書き込みデータを一時的に格納し、ＮＡＮＤメモリセルアレイ２３に転送する。
（１−３．メモリセルアレイの構成）
図３は、３次元構造のメモリセルアレイのブロックの構成例を示す図である。図３は、３次元構造のメモリセルアレイを構成する複数のブロックのうちの１つのブロックＢＬＫを示している。メモリセルアレイの他のブロックも図３と同様の構成を有する。なお、本実施形態は、２次元構造のメモリセルにも適用可能である。
【００２３】
図示するように、ブロックＢＬＫは、例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数のＮＡＮＤストリングＮＳを含む。ＮＡＮＤストリングＮＳの各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）と、選択トランジスタＳＴ１，ＳＴ２とを含む。
【００２４】
なお、メモリセルトランジスタＭＴの個数は８個に限られず、例えば、３２個、４８個、６４個、９６個でもよい。選択トランジスタＳＴ１，ＳＴ２は、電気回路上は１つのトランジスタとして示しているが、構造上はメモリセルトランジスタと同じでもよい。また、例えばカットオフ特性を高めるために、選択トランジスタＳＴ１，ＳＴ２として、それぞれ複数の選択トランジスタを用いてもよい。さらに、メモリセルトランジスタＭＴと選択トランジスタＳＴ１，ＳＴ２との間には、ダミーセルトランジスタが設けられていてもよい。
【００２５】
メモリセルトランジスタＭＴは、選択トランジスタＳＴ１，ＳＴ２間において、直列接続されるようにして配置されている。一端側のメモリセルトランジスタＭＴ７が、選択トランジスタＳＴ１に接続され、他端側のメモリセルトランジスタＭＴ０がは、選択トランジスタＳＴ２に接続されている。
【００２６】
ストリングユニットＳＵ０〜ＳＵ３の各々の選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に共通接続される。他方で、選択トランジスタＳＴ２のゲートは、同一のブロックＢＬＫ内にある複数のストリングユニットＳＵ間で同一のセレクトゲート線ＳＧＳに共通接続される。また、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続される。すなわち、ワード線ＷＬ０〜ＷＬ７及びセレクトゲート線ＳＧＳは、同一ブロックＢＬＫ内の複数のストリングユニットＳＵ０〜ＳＵ３間で共通に接続されているのに対し、セレクトゲート線ＳＧＤは、同一ブロックＢＬＫ内であってもストリングユニットＳＵ０〜ＳＵ３毎に独立している。
【００２７】
ＮＡＮＤストリングＮＳを構成するメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲート電極には、それぞれワード線ＷＬ０〜ＷＬ７が接続されており、また各ＮＡＮＤストリングＮＳ中のメモリセルトランジスタＭＴｉ（ｉ＝０〜ｎ）間は、同一のワード線ＷＬｉ（ｉ＝０〜ｎ）によって共通接続されている。すなわち、ブロックＢＬＫ内において同一行にあるメモリセルトランジスタＭＴｉの制御ゲート電極は、同一のワード線ＷＬｉに接続される。なお、以下の説明では、ＮＡＮＤストリングＮＳを単に「ストリング」という場合がある。
【００２８】
ＮＡＮＤストリングＮＳはビット線に接続されており、ＮＡＮＤストリングＮＳに含まれる各メモリセルは、対応するワード線ＷＬｉに接続されている。上述した通り、同一のブロックＢＬＫ内にあるメモリセル（メモリセルトランジスタＭＴ）のデータは、一括して消去される。一方、データの読み出し及び書き込みは、メモリセルグループＭＧ単位（またはページ単位）で行われる。本明細書では、１つのワード線ＷＬｉに接続され、かつ１つのストリングユニットＳＵに属する複数のメモリセルをメモリセルグループＭＧと定義する。本実施形態では、不揮発性メモリ２は、３ｂｉｔ／ＣｅｌｌのＮＡＮＤメモリであり、１つのメモリセルグループＭＧが、３ページ分のデータを保持することができる。各メモリセルの３ｂｉｔは、それぞれこの３ページに対応する。本実施形態では、この３ページをＬｏｗｅｒページ（第１のページ）、Ｍｉｄｄｌｅページ（第２のページ）、Ｕｐｐｅｒページ（第３のページ）と呼ぶ。
【００２９】
読み出し動作及び書き込み動作時において、物理アドレスに応じて、１本のワード線ＷＬｉおよび１本のセレクトゲート線ＳＧＤが選択され、メモリセルグループＭＧが選択される。
【００３０】
図４は、３次元構造のＮＡＮＤメモリのメモリセルアレイの一部領域の断面図である。図４に示すように、ｐ型ウェル領域（P-well）上に複数のＮＡＮＤストリングＮＳが形成されている。すなわち、ｐ型ウェル領域上には、セレクトゲート線ＳＧＳとして機能する複数の配線層３３３、ワード線ＷＬｉとして機能する複数の配線層３３２、およびセレクトゲート線ＳＧＤとして機能する複数の配線層３３１が積層されている。
【００３１】
そして、これらの配線層３３３，３３２，３３１を貫通してｐ型ウェル領域に達するメモリホール３３４が形成されている。メモリホール３３４の側面には、ブロック絶縁膜３３５、電荷蓄積層３３６、およびゲート絶縁膜３３７が順次形成され、更にメモリホール３３４内に導電体柱３３８が埋め込まれている。導電体柱３３８は、例えばポリシリコンからなり、ＮＡＮＤストリングＮＳに含まれるメモリセルトランジスタＭＴ並びに選択トランジスタＳＴ１及びＳＴ２の動作時にチャネルが形成される領域として機能する。
【００３２】
各ＮＡＮＤストリングＮＳにおいて、ｐ型ウェル領域上に選択トランジスタＳＴ２、複数のメモリセルトランジスタＭＴ、及び選択トランジスタＳＴ１が形成されている。導電体柱３３８よりも上側には、ビット線ＢＬとして機能する配線層が形成される。導電体柱３３８の上端には、導電体柱３３８とビット線ＢＬとを接続するコンタクトプラグ３３９が形成されている。
【００３３】
さらに、ｐ型ウェル領域の表面内には、ｎ＋型不純物拡散層およびｐ＋型不純物拡散層が形成されている。ｎ＋型不純物拡散層上にはコンタクトプラグ３４０が形成され、コンタクトプラグ３４０上には、ソース線ＳＬとして機能する配線層が形成される。
【００３４】
以上の図４に示した構成が、図４の紙面の奥行き方向に複数配列されており、奥行き方向に一列に並ぶ複数のＮＡＮＤストリングの集合によって、１つのストリングユニットＳＵが形成される。
（１−４．メモリセルトランジスタの閾値分布）
図５は、本発明の実施形態の閾値領域の一例を示す図である。図５では、３ｂｉｔ／Ｃｅｌｌの不揮発性メモリ２の閾値分布例を示している。不揮発性メモリ２では、メモリセルの電荷蓄積層に蓄えられた電荷量により情報を記憶する。各メモリセルは、電荷量に応じた閾値電圧を有する。そして、メモリセルに記憶する複数のデータ値を、閾値電圧の複数の領域（閾値領域）にそれぞれ対応させる。
【００３５】
図５の、Ｅｒ、Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇと記載した８つの分布（山型）は、８つの閾値領域内のそれぞれの閾値分布を示している。このように、各メモリセルは、７つの境界によって仕切られた閾値分布を有している。図５の横軸は閾値電圧を示し、縦軸はメモリセル数（セル数）の分布を示している。
【００３６】
本実施形態では、閾値電圧がＶｒ１以下となる領域を領域Ｅｒとよび、閾値電圧がＶｒ１より大きくＶｒ２以下となる領域を領域Ａとよび、閾値電圧がＶｒ２より大きくＶｒ３以下となる領域を領域Ｂとよび、閾値電圧がＶｒ３より大きくＶｒ４以下となる領域を領域Ｃとよぶ。また、本実施形態では、閾値電圧がＶｒ４より大きくＶｒ５以下となる領域を領域Ｄとよび、閾値電圧がＶｒ５より大きくＶｒ６以下となる領域を領域Ｅとよび、閾値電圧がＶｒ６より大きくＶｒ７以下となる領域を領域Ｆとよび、閾値電圧がＶｒ７より大きい領域を領域Ｇとよぶ。
【００３７】
また、領域Ｅｒ，Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇに対応する閾値分布をそれぞれ分布Ｅｒ，Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ（第１〜第８の分布）と呼ぶ。Ｖｒ１〜Ｖｒ７は、各領域の境界となる閾値電圧である。
【００３８】
不揮発性メモリ２では、メモリセルの複数の閾値領域（すなわち閾値分布）に複数のデータ値をそれぞれ対応させる。この対応をデータコーディングという。このデータコーディングをあらかじめ定めておき、データの書き込み（プログラム）時には、データコーディングに従って記憶するデータ値に応じた閾値領域内となるようにメモリセルに電荷を注入する。そして、読み出し時には、メモリセルに読み出し電圧を印加し、読み出し電圧よりメモリセルの閾値が低いか高いかにより、データが決定される。
【００３９】
図６は、第１の実施形態のデータコーディングを示す図である。本実施形態では、図５に示した８つの閾値分布（閾値領域）を３ｂｉｔの８つのデータ値にそれぞれ対応させる。閾値電圧と、Upper，Middle，Lowerページに対応するビットのデータ値との関係は、以下に示す通りである。
【００４０】
・閾値電圧がＥｒ領域内にあるメモリセルは“１１１”を記憶している状態である。
【００４１】
・閾値電圧がＡ領域内にあるメモリセルは“１０１”を記憶している状態である。
【００４２】
・閾値電圧がＢ領域内にあるメモリセルは“００１”を記憶している状態である。
【００４３】
・閾値電圧がＣ領域内にあるメモリセルは“０１１”を記憶している状態である。
【００４４】
・閾値電圧がＤ領域内にあるメモリセルは“０１０”を記憶している状態である。
【００４５】
・閾値電圧がＥ領域内にあるメモリセルは“１１０”を記憶している状態である。
【００４６】
・閾値電圧がＦ領域内にあるメモリセルは“１００”を記憶している状態である。
【００４７】
・閾値電圧がＧ領域内にあるメモリセルは“０００”を記憶している状態である。
【００４８】
このように、閾値電圧の領域毎に、各メモリセルの３ｂｉｔのデータの状態を表すことが出来る。なお、メモリセルが未書き込みの状態（「消去」の状態）では、メモリセルの閾値電圧はＥｒ領域内にある。また、ここに示した符号では，Ｅｒ（消去）状態で”１１１”というデータを記憶し、Ａ状態で”１０１”というデータを記憶するといったように、任意の2つの隣接する状態間で１ｂｉｔのみデータが変化する。このように、図６に示したコーディングは、任意の２つの隣接する領域間で１ｂｉｔのみデータが変化するグレイ符号である。
【００４９】
なお、図５では８個のレベルが離散的に分布する場合を例に説明したが、これは例えばデータの書き込み直後の理想的な状態である。従って、現実的には隣接するレベルが重なることが起こり得る。例えば、データの書き込み後、ディスターブ等により、分布Ｅｒの上端と分布Ａの下端とが重なる場合がある。このような場合には、例えばＥＣＣ技術などを用いてデータが訂正される。
（２．動作）
次に、本実施形態におけるデータの書き込み動作について説明する。
（２−１．書き込み動作の概念）
まず、本実施形態に係る書き込み動作について簡単に説明する。まず、書き込み動作は、大まかにはプログラム動作とベリファイ動作とを含む。
【００５０】
プログラム動作は、電子を電荷蓄積層に注入することにより閾値を上昇させる（または注入を禁止することで閾値を維持させる）動作のことである。以下では、閾値を上昇させる動作を「“０”プログラム」または「“０”書き込み」と呼び、“０”プログラム対象とされたビット線ＢＬには“０”データが与えられる。他方で、閾値を維持させる動作を「“１”プログラム」、「“１”書き込み」、または「書き込み禁止」と呼び、“１”プログラム対象とされたビット線ＢＬには“１”データが与えられる。
【００５１】
ベリファイ動作は、プログラム動作の後、データを読み出すことで、メモリセルトランジスタＭＴの閾値がターゲットレベルまで達したか否かを判定する動作である。ターゲットレベルまで達したメモリセルトランジスタＭＴは、その後、書き込み禁止とされる。
【００５２】
以上のプログラム動作とベリファイ動作の組み合わせを繰り返すことで、メモリセルトランジスタＭＴの閾値がターゲットレベルまで上昇される。
【００５３】
図７は、プログラム動作時における各配線の電位変化を示している。図示するように、まずセンスユニット２４が各ビット線ＢＬにプログラムデータを転送する。“０”データが与えられたビット線ＢＬには“Ｌ”レベルとして接地電圧Ｖｓｓ（例えば０Ｖ）が印加される。“１”データが与えられたビット線ＢＬには“Ｈ”レベル、例えば２．５Ｖが印加される。
【００５４】
またロウデコーダ２５は、いずれかのブロックＢＬＫを選択し、更にいずれかのストリングユニットＳＵを選択する。そして、選択されたストリングユニットＳＵにおけるセレクトゲート線ＳＧＤに例えば５Ｖを印加して、選択トランジスタＳＴ１をオン状態とさせる。他方で、セレクトゲート線ＳＧＳに電圧Ｖｓｓを印加することで、選択トランジスタＳＴ２をオフ状態とさせる。
【００５５】
更にロウデコーダ２５は、選択ブロックＢＬＫにおける非選択ストリングユニットＳＵ及び非選択ブロックＢＬＫにおける非選択ストリングユニットＳＵのセレクトゲート線ＳＧＤ及びＳＧＳに電圧Ｖｓｓを印可して、選択トランジスタＳＴ１及びＳＴ２をオフ状態とさせる。
【００５６】
またソース線ＳＬは、例えば１Ｖ（セレクトゲート線ＳＧＳの電位よりも高い電位）とされる。
【００５７】
その後、ロウデコーダ２５は、選択ブロックＢＬＫにおける選択ストリングユニットＳＵにおけるセレクトゲート線ＳＧＤの電位を、例えば２．５Ｖとする。この電位は、“０”データ（０Ｖ）が与えられたビット線ＢＬに対応する選択トランジスタＳＴ１はオンさせるが、“１”データ（２．５Ｖ）が与えられたビット線ＢＬに対応する選択トランジスタＳＴ１はカットオフさせる電圧である。
【００５８】
そしてロウデコーダ２５は、選択ブロックＢＬＫにおいていずれかのワード線ＷＬを選択し、選択ワード線に電圧ＶＰＧＭを印加し、その他の非選択ワード線ＷＬに電圧ＶＰＡＳＳを印加する。電圧ＶＰＧＭは、トンネル現象により電子を電荷蓄積層に注入するための高電圧であり、ＶＰＧＭ＞ＶＰＡＳＳである。この際のストリングユニットＳＵの様子を図８に示す。
【００５９】
図８では、“０”書き込み対象のビット線ＢＬ、及び、“１”書き込み対象のビット線ＢＬに対応する２つのＮＡＮＤストリングを図示している。また、ワード線ＷＬ３が選択された際の様子を示している。
【００６０】
図示するように、選択ワード線ＷＬ３には電圧ＶＰＧＭが印加され、非選択ワード線ＷＬ０〜ＷＬ２及びＷＬ４〜ＷＬ７には電圧ＶＰＡＳＳが印加される。
【００６１】
そして、“０”書き込み対象のビット線ＢＬに対応するＮＡＮＤストリングでは、選択トランジスタＳＴ１がオン状態となる。そのため、選択ワード線ＷＬ３に接続されたメモリセルトランジスタＭＴ３のチャネル電位Ｖchは０Ｖとなる。すなわち、制御ゲートとチャネルとの間の電位差が大きくなり、その結果、電子が電荷蓄積層に注入されて、メモリセルトランジスタＭＴ３の閾値が上昇される。
【００６２】
“１”書き込み対象のビット線ＢＬに対応するＮＡＮＤストリングでは、選択トランジスタＳＴ１がカットオフ状態となる。そのため、選択ワード線ＷＬ３に接続されたメモリセルトランジスタＭＴ３のチャネルは電気的にフローティングとなり、ワード線ＷＬ等との容量カップリングによりチャネル電位Ｖchは電圧ＶＰＧＭ近くまで上昇される。すなわち、制御ゲートとチャネルとの間の電位差が小さくなり、その結果、電子は電荷蓄積層に注入されず、メモリセルトランジスタＭＴ３の閾値は維持される（閾値分布レベルがより高い分布に遷移するほどには閾値は変動しない）。
（２−２．書き込み動作の具体例について）
本実施形態の書き込み動作の説明にあたり、まず、標準書き込みシーケンスについて、図９及び図１０を用いて、より具体的に説明する。図９及び図１０では、プログラム動作とベリファイ動作との組み合わせが１９回繰り返されることによって、データが書き込まれる場合を例に示している。この繰り返し動作を「ループ」と呼ぶ。
【００６３】
図９には、各ループにおいて行われるベリファイ動作のターゲットレベルが示されている。図示するように、１回目及び２回目のループでは、ベリファイ動作は“Ａ”レベルのみを対象にして行われる。つまり、ベリファイ動作時に選択ワード線ＷＬには電圧ＶfyＡが印加され、電圧ＶfyＢ〜ＶfyＧは印加されない。引き続き３回目及び４回目のループでは、ベリファイ動作は“Ａ”レベルと“Ｂ”レベルとを対象にして行われる。つまり、ベリファイ動作時に選択ワード線ＷＬには電圧ＶfyＡ及びＶfyＢが順次印加され、電圧ＶfyＣ〜ＶfyＧは印加されない。
【００６４】
５回目及び６回目のループでは、ベリファイ動作は“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルを対象にして行われる。つまり、ベリファイ動作時に選択ワード線ＷＬには電圧ＶfyＡ、ＶfyＢ、及びＶfyＣが順次印加され、電圧ＶfyＤ〜ＶfyＧは印加されない。そして、“Ａ”レベルを対象としたベリファイ動作は、６回目のループで完了する。これは、例えば６回のループ回数で“Ａ”レベルへのプログラムはほぼ完了するということが経験的に求められるからである。
【００６５】
また、７回目及び８回目のループでは、ベリファイ動作は“Ｂ”レベル、“Ｃ”レベル、及び“Ｄ”レベルを対象にして行われる。つまり、ベリファイ動作時に選択ワード線ＷＬには電圧ＶfyＢ、ＶfyＣ、及びＶfyＤが順次印加される。そして、“Ｂ”レベルを対象としたベリファイ動作は、８回目の書き込み動作で完了する。更に、９回目及び１０回目のループでは、ベリファイ動作は“Ｃ”レベル、“Ｄ”レベル、及び“Ｅ”レベルを対象にして行われる。つまり、ベリファイ動作時に選択ワード線ＷＬには電圧ＶfyＣ、ＶfyＤ、及びＶfyＥが順次印加される。そして、“Ｃ”レベルを対象としたベリファイ動作は、１０回目のループで完了する。
【００６６】
以降、同様にして“Ｇ”レベルの書き込みまで行われ、ループは最大で１９回、繰り返される。
【００６７】
図１０は図９に対応し、各ループにおける、閾値のターゲットレベルに応じたビット線の状態を示している。図１０において、“１”なる表記は、対応するビット線ＢＬに“１”データが与えられることを意味し、“０”なる表記は、“０”データが与えられることを意味している。
【００６８】
図示するように、メモリセルトランジスタＭＴの閾値を“Ｅｒ”レベルに維持しておくべき場合には、全ループにわたってビット線ＢＬに“１”データが与えられる。すなわち 、書き込み動作の期間、常に選択トランジスタＳＴ１がカットオフ状態とされる。
【００６９】
閾値のターゲットレベルが“Ａ”レベルの場合、つまり、閾値を“Ｅｒ”レベル内の値 から“Ａ”レベル内の値へ上昇させるべきメモリセルトランジスタＭＴに対しては、１回目から６回目のループにおいて“０”プログラム動作が行われ得る。これは、“Ａ”レベルに対するベリファイ動作が行われるループに対応している。ベリファイ動作をパスするまではビット線ＢＬには“０”データが与えられ、パスした後は“１”データが与えられる。 また、プログラム動作が完了した７回目以降のループにおいても、ビット線ＢＬには“１ ”データが与えられ、書き込み禁止とされる。
【００７０】
ターゲットレベルが“Ｂ”レベルの場合、つまり、閾値を“Ｅｒ”レベル内の値から“ Ｂ”レベル内の値へ上昇させるべきメモリセルトランジスタＭＴに対しては、１回目から８回目のループにおいて“０”プログラム動作が行われ得る。これは、“Ｂ”レベルに対するベリファイ動作が行われるループに対応している。３回目から８回目のループでは、ビット線ＢＬには、ベリファイ動作をパスするまで“０”データが与えられ、パスした後は“１” データが与えられる。また、プログラム動作が完了した９回目以降のループにおいても、 ビット線ＢＬには“１”データが与えられ、書き込み禁止とされる。
【００７１】
その後は同様にして、“Ｃ”〜“Ｇ”レベルまでのプログラム動作が行われる。
【００７２】
以上の動作時における各配線の電位の様子を図１１及び図１２に示す。図１１及び図１２は、１回目から１２回目のループにおける、選択ワード線ＷＬの電位、“Ｅｒ”レベルを維持すべきメモリセルトランジスタＭＴに対応するビット線ＢＬ（図１１及び図１２ではＢＬ（“Ｅｒ”）と表記）の電位、及び“Ａ”〜“Ｇ”レベル内の値に閾値を上昇させるべき メモリセルトランジスタＭＴに対応するビット線ＢＬ（図１１及び図１２ではそれぞれＢＬ（“Ａ”）、ＢＬ（“Ｂ”）、ＢＬ（“Ｃ”）、ＢＬ（“Ｄ”）、ＢＬ（“Ｅ”）、ＢＬ（“Ｆ”）、及び、ＢＬ（“Ｇ”）と表記）の電位の時間変化を示している。
【００７３】
図示するように、１回目のループでは、ビット線ＢＬ（“Ａ”）〜ＢＬ（“Ｇ”）に対して“０”プログラムが行われる。すなわち選択ワード線ＷＬには電圧ＶＰＧＭが印加され、ビット線ＢＬ（“Ｅｒ”）には例えば２．５Ｖが印加され、ビット線ＢＬ（“Ａ”）〜ＢＬ（“Ｇ”）には、例えば電圧ＶＳＳ（＝０Ｖ）が印加される。そして、“Ａ”レベルについてのベリファイ動作が行われる。すなわち、ビット線ＢＬ（“Ａ”）が例えば０．７Ｖにプリチャージされ、選択ワード線ＷＬにはベリファイ電圧ＶfyＡが印加される。その他のビット線ＢＬ（“Ｅｒ”）、ＢＬ（“Ｂ”）〜ＢＬ（“Ｇ”）は、例えば０Ｖ等に固定され、ベリファイ対象から外される。
【００７４】
２回目のループでは、１回目の“Ａ”レベルについてのベリファイ動作をフェイルしたビット線ＢＬ（“Ａ”）及びビット線ＢＬ（“Ｂ”）〜ＢＬ（“Ｇ”）に対して“０”プログラムが行われる。このとき選択ワード線ＷＬに印加される電圧ＶＰＧＭはステップアップされる。そして、１回目と同様に“Ａ”レベルについてのベリファイ動作が実行される。
【００７５】
３回目のループでは、２回目と同様に、“Ａ”レベルについてのベリファイ動作をフェイルしたビット線ＢＬ（“Ａ”）及びビット線ＢＬ（“Ｂ”）〜ＢＬ（“Ｇ”）に対して“０”プログラムが行われる。このとき選択ワード線ＷＬに印加される電圧ＶＰＧＭはステップアップされる。そして、１及び２回目と同様に、まず“Ａ”レベルについてのベリファイ動作が実行される。次に、“Ｂ”レベルについてのベリファイ動作が実行される。すなわち、ビット線ＢＬ（“Ａ”）及びＢＬ（“Ｂ”）が例えば０．７Ｖにプリチャージされ、選択ワード線ＷＬにはベリファイ電圧ＶfyＡ及びＶfyＢが順次印加される。その他のビット線ＢＬ（“Ｅｒ”）及びＢＬ（“Ｃ”）〜ＢＬ（“Ｇ”）は、例えば０Ｖ等に固定され、ベリファイ対象から外される。４回目のループでは、電圧ＶＰＧＭがステップアップされて、３回目のループと同様の動作が行われる。
【００７６】
５回目のループでは、ビット線ＢＬ（“Ａ”）、ＢＬ（“Ｂ”）、及びＢＬ（“Ｃ”）に対して“０”プログラムが行われる。そして、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルについてベリファイ動作が行われる。６回目のループでは、電圧ＶＰＧＭがステップアップされて、５回目のループと同様の動作が行われる。
【００７７】
以下同様にして書き込み動作が行われ、１１回目のループにおいて、ビット線ＢＬ（“Ａ”）、ＢＬ（“Ｂ”）、及びＢＬ（“Ｃ”）の全てが書き込み禁止とされる。
【００７８】
図１３は、上述した標準書き込みシーケンスに基づく書き込み動作時の、各ループにおける選択ワード線の電圧（電圧ＶＰＧＭ）の一例を説明する図である。また、図１４は、上述した標準書き込みシーケンスに基づく書き込み動作時における、プログラム動作とベリファイ動作のタイミングを示す図である。
【００７９】
図１３に示すように、１回目のループにおいて、選択ワード線ＷＬに印加される電圧ＶＰＧＭは、例えば１２．０Ｖに設定されている。そして、２回目のループ以降、選択ワード線ＷＬに印加される電圧ＶＰＧＭは、０．５Ｖずつ増加するよう設定されている。すなわち、２回目のループにおいて選択ワード線ＷＬに印加される電圧ＶＰＧＭは１２．５Ｖ、３回目のループにおいて選択ワード線ＷＬに印加される電圧ＶＰＧＭは１３．０Ｖであり、最終ループである１９回目のループにおいて選択ワード線ＷＬに印加される電圧ＶＰＧＭは２１．０Ｖに設定されている。
【００８０】
また、図１４に示すように、１回目及び２回目のループでは、ベリファイ動作は“Ａ”レベルのみを対象にして行われる。つまり、１回のプログラム動作に対してベリファイ動作は１回行われる。３回目及び４回目のループでは、ベリファイ動作は“Ａ”レベルと“Ｂ”レベルとを対象にして行われる。つまり、１回のプログラム動作に対してベリファイ動作は２回行われる。５回目から、“Ｄ”レベルを対象としたベリファイ動作が完了する１２回目までのループでは、１回のプログラム動作に対してベリファイ動作は３回行われる。以降も、１回のプログラム動作に対して、設定された所定のレベルのベリファイ動作が行われる。最終的には、１９回のループで、プログラム動作が１９回、ベリファイ動作が４２回行われる。
【００８１】
なお、上の説明では、ベリファイ動作が上限回数まで実施されることを想定している。図９に示したように、“Ａ”レベルを対象とするベリファイ動作は、１回目のループから６回目のループにかけて最大で６回実行され得る。また、“Ｂ”レベルを対象とするベリファイ動作は、３回目のループから８回目のループにかけて最大で６回実行され得る。他のレベルについても同様である。ここで、例えば、“Ａ”レベルに書き込まれるメモリセルトランジスタＭＴは複数存在し、当該メモリセルトランジスタＭＴに接続されたビット線ＢＬ（“Ａ”）も複数存在する。従って、厳密には、例えば、“Ａ”レベルに書き込まれるメモリセルトランジスタＭＴの全てが５回目のループにおいて“Ａ”レベルを対象とするベリファイ動作にパスした場合は、ビット線ＢＬ（“Ａ”）については、６回目のループにおいてベリファイ動作が実行されないということも有りえる。これは、以下の説明についても同様である。
【００８２】
１回目のプログラム動作で選択ワード線ＷＬに印加される電圧ＶＰＧＭや、２回目以降のプログラム動作における電圧ＶＰＧＭの増加量、そして、各レベルにおけるベリファイ動作が開始するループは、書き込みが速いワーストケースを想定して設定されており、ターゲットレベルを超えた書き込みが行われないよう十分にマージンが確保されている。
【００８３】
上述した、書き込み動作におけるループ回数、各ループにおける選択ワード線の電圧（電圧ＶＰＧＭ）、各ループにおけるベリファイ動作対象レベルは、標準書き込みシーケンスとして制御部２２に格納されている。標準書き込みシーケンスに基づいてＮＡＮＤメモリセルアレイ２３への書き込み動作が実行される場合には、標準書き込みシーケンスに基づく制御信号が制御部２２からセンスユニット２４およびロウデコーダ２５に出力される。
【００８４】
次に、本実施形態における書き込み動作について、図１５を用いて説明する。図１５は、第１の実施形態における書き込み動作の手順の一例を説明するフローチャートである。
【００８５】
まず、メモリセルトランジスタＭＴの書き込み特性を検出して、その検出結果に基づいて、標準書き込みシーケンスに対する補正を行う。まず、閾値のターゲットレベルが高いメモリセルトランジスタＭＴに対し、予備プログラム動作を行う（Ｓ１）。Ｓ１における予備プログラム動作は、例えば、閾値のターゲットレベルが“Ｅ”〜“Ｇ”レベルであるメモリセルトランジスタＭＴに対し、第９ループの電圧ＶＰＧＭを選択ワード線に印加する。なお、予備プログラム動作で印可する電圧は、第９ループの電圧ＶＰＧＭに限定されるものではなく、他のループの電圧でもよい。
【００８６】
次に、予備プログラム動作に対する検出ベリファイ（Ｄｅｔｅｃｔｉｏｎ Ｖｅｌｉｆｙ）動作を実行し、書き込み特性を検出する（Ｓ２）。Ｓ２における検出ベリファイ動作は、Ｓ１の予備プログラム動作で印可した電圧に対応するレベルをターゲットにして行う。例えば、第９ループの電圧ＶＰＧＭを選択ワード線に印加した場合、“Ｅ”レベルを対象にして行われる。
【００８７】
続いて、Ｓ２における検出ベリファイ動作をパスしたビットと、フェイルしたビットの数を検出する（Ｓ３）。パス／フェイルのビット数の検出は、制御部２２に設けられたフェイル数カウント回路２２１において行われる。なお、閾値のターゲットレベルが“Ｅ”であるメモリセルトランジスタＭＴの数が算出可能である場合、Ｓ３におけるビット数の検出は、パスビット、または、フェイルビットのどちらか一方のみを行ってもよい。
【００８８】
次に、制御部２２は、Ｓ３で検出したパス／フェイルのビット数に基づき、メモリセルトランジスタＭＴの書き込み特性を推定し、標準書き込みシーケンスを補正する（Ｓ４）。例えば、Ｓ３において、フェイルビットの割合（閾値のターゲットレベルが“Ｅ”であるメモリセルトランジスタＭＴの総数に対するフェイルビットの割合）が、予め設定された閾値よりも大きい場合、書き込み特性が遅いと推定される。同じメモリセルグループＭＧに属する他の（閾値のターゲットレベルが“Ｅ”でない）メモリセルトランジスタＭＴも、同様に、書き込み特性が遅いと推定される。
【００８９】
ここで、上記のように、１回目のプログラム動作で選択ワード線ＷＬに印加される電圧ＶＰＧＭや、２回目以降のプログラム動作における電圧ＶＰＧＭの増加量、そして、各レベルにおけるベリファイ動作が開始するループは、書き込みが速いワーストケースを想定して設定されている。従って、このようなパラメータを、書き込み特性が遅いと推定される場合にまで適用することは、効率的ではない。
【００９０】
そこで、例えば、標準書き込みシーケンスの１回目のループをスキップし、２ループ目からプログラム動作を実行するよう、補正する。また、各レベルのベリファイ動作についても、標準書き込みシーケンスから１ループ遅いタイミングで開始するよう、補正する。なお、標準書き込みシーケンスの補正は、上述したループのスキップや、ベリファイ動作を開始するループを遅らせるだけでなく、各ループにおける電圧ＶＰＧＭを増減したり、ループ間における電圧ＶＰＧＭのステップアップ幅を増減したりしてもよい。
【００９１】
図１６には、補正後書き込みシーケンスの各ループにおいて行われる、ベリファイ動作のターゲットレベルが示されている。図１６の横軸には、標準書き込みシーケンスにおけるループ回数を示している。図１６において、各レベルのベリファイ動作は、“〇”で記したループにおいて実行される。“−”で示したループは、標準書き込みシーケンスにおいてはベリファイ動作が設定されていたが、補正によりベリファイ動作をスキップする（実行しない）ループを示している。
【００９２】
図示するように、標準書き込みシーケンスにおける１回目のループでは、“Ａ”レベルを対象としてベリファイ動作が行われていたが、補正後書き込みシーケンスでは行われない。標準書き込みシーケンスにおける３回目のループでは、ベリファイは“Ａ”レベルと“Ｂ”レベルとを対象にしてベリファイ動作が行われていたが、補正後書き込みシーケンスでは“Ａ”レベルのみを対象とし、“Ｂ”レベルのベリファイ動作は行われない。また、標準書き込みシーケンスにおける５回目のループは、補正後書き込みシーケンスにおいては、“Ａ”レベルと“Ｂ”レベルとを対象にしてベリファイ動作が行われ、“Ｃ”レベルのベリファイ動作がスキップされている。
【００９３】
以下、同様にして、標準書き込みシーケンスにおける７回目、１１回目、１４回目のループも、当該ループにおいて設定されていた最も高いレベルのベリファイ動作（それぞれ、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル“のベリファイ動作）がスキップされ、ベリファイ動作の数が削減されている。
【００９４】
図１７には、第１の実施形態の半導体記憶装置の書き込み動作時における、各ループにおける選択ワード線の電圧（電圧ＶＰＧＭ）の一例を示している。図１７の横軸には、標準書き込みシーケンスにおけるループ回数を示している。
【００９５】
まず、予備プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭは、例えば、標準書き込みシーケンスにおける第９ループの電圧ＶＰＧＭ（１６．０Ｖ）に設定されている。そして、標準書き込みシーケンスにおける第１ループのプログラム動作は、補正後書き込みシーケンスでは行われず、第２ループからプログラム動作が開始される。標準書き込みシーケンスにおける第２ループにおいて選択ワード線ＷＬに印加される電圧ＶＰＧＭは１２．５Ｖであるが、補正によって±α増減させる（α≧０）。以降、標準書き込みシーケンスにおける３回目のループから最終ループである１９回目のループまで、ワード線ＷＬに印加される電圧ＶＰＧＭは、補正によって±α増減させる（α≧０）。
【００９６】
図１８には、上述した書き込み動作時における、プログラム動作とベリファイ動作のタイミングを示している。まず、標準書き込みシーケンスに先だち、予備プログラム動作と、これに対する検出ベリファイ（Ｄｅｔｅｃｔｉｏｎ Ｖｅｌｉｆｙ）動作が行われる。これにより、標準書き込みシーケンスが補正され、標準書き込みシーケンスにおける２回目のループから実行される。標準書き込みシーケンスにおける２回目及び３回目のループでは、ベリファイ動作は“Ａ”レベルのみを対象にして行われる。つまり、１回のプログラム動作に対してベリファイ動作は１回行われる。標準書き込みシーケンスにおける４回目及び５回目のループでは、ベリファイ動作は“Ａ”レベルと“Ｂ”レベルとを対象にして行われる。つまり、１回のプログラム動作に対してベリファイ動作は２回行われる。標準書き込みシーケンスにおける６回目のループでは、ベリファイ動作は“Ａ”〜“Ｃ”レベルを対象にして行われる。つまり、１回のプログラム動作に対してベリファイ動作は３回行われる。
【００９７】
以降も、１回のプログラム動作に対して、設定された所定のレベルのベリファイ動作が行われる。最終的には、１８回のループで、プログラム動作が１８回、ベリファイ動作が各レベルについて５回ずつ（計３５回）行われる。すなわち、予備プログラム動作とこれに対する検出ベリファイ動作を含めても、プログラム動作が１９回、ベリファイ動作が３６回となる。
【００９８】
最後に、制御部２２は、上述のように補正後書き込みシーケンスに基づく制御信号をセンスユニット２４およびロウデコーダ２５に出力し、ＮＡＮＤメモリセルアレイ２３への書き込み動作が続行される（Ｓ５）。
【００９９】
なお、上述では、標準書き込みシーケンスの１回目のループをスキップし、２ループ目からプログラム動作実行するよう、補正する場合について説明したが、モリセルトランジスタＭＴの書き込み特性に応じて２ループ以上スキップすることも可能である。図１９〜図２１を用いて、更に書き込み特性が遅く、標準書き込みシーケンスの１回目と２回目のループをスキップする場合の補正の一例を説明する。
【０１００】
図１９には、補正後書き込みシーケンスの各ループにおいて行われる、ベリファイ動作のターゲットレベルが示されている。図１９において、各レベルのベリファイ動作は、“〇”で記したループにおいて実行される。“−”で示したループは、標準書き込みシーケンスにおいてはベリファイ動作が設定されていたが、補正によりベリファイ動作をスキップする（実行しない）ループを示している。
【０１０１】
図示するように、標準書き込みシーケンスにおける１回目及び２回目のループでは、“Ａ”レベルを対象としてベリファイ動作が行われていたが、補正後書き込みシーケンスでは行われない。標準書き込みシーケンスにおける３回目及び４回目のループでは、ベリファイ動作は“Ａ”レベルと“Ｂ”レベルとを対象にしてベリファイ動作が行われていたが、補正後書き込みシーケンスでは“Ａ”レベルのみを対象とし、“Ｂ”レベルのベリファイ動作は行われない。また、標準書き込みシーケンスにおける５回目及び６回目のループは、補正後書き込みシーケンスにおいては、“Ａ”レベルと“Ｂ”レベルとを対象にしてベリファイ動作が行われ、“Ｃ”レベルのベリファイ動作がスキップされている。
【０１０２】
以下、同様にして、標準書き込みシーケンスにおける７回目〜１２回目、１４回目、１５回目のループも、当該ループにおいて設定されていた最も高いレベルのベリファイ動作がスキップされ、ベリファイ動作の数が削減されている。
【０１０３】
図２０には、上述の半導体記憶装置の書き込み動作時における、各ループにおける選択ワード線の電圧（電圧ＶＰＧＭ）の一例を示している。図２０の横軸には、標準書き込みシーケンスにおけるループ回数を示している。
【０１０４】
まず、予備プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭは、例えば、標準書き込みシーケンスにおける第９ループの電圧ＶＰＧＭ（１６．０Ｖ）に設定されている。そして、標準書き込みシーケンスにおける第１ループ及び第２ループのプログラム動作は、補正後書き込みシーケンスでは行われず、第３ループからプログラム動作が開始される。標準書き込みシーケンスにおける第３ループにおいて選択ワード線ＷＬに印加される電圧ＶＰＧＭは１３．０Ｖであるが、補正によって±α増減させる（α≧０）。以降、標準書き込みシーケンスにおける４回目のループから最終ループである１９回目のループまで、ワード線ＷＬに印加される電圧ＶＰＧＭは、補正によって±α増減させる（α≧０）。
【０１０５】
図２１には、上述した書き込み動作時における、プログラム動作とベリファイ動作のタイミングを示している。まず、標準書き込みシーケンスに先だち、予備プログラム動作と、これに対する検出ベリファイ（Ｄｅｔｅｃｔｉｏｎ Ｖｅｌｉｆｙ）動作が行われる。これにより、標準書き込みシーケンスが補正され、標準書き込みシーケンスにおける３回目のループから実行される。標準書き込みシーケンスにおける３回目及び４回目のループでは、ベリファイ動作は“Ａ”レベルのみを対象にして行われる。つまり、１回のプログラム動作に対してベリファイ動作は１回行われる。標準書き込みシーケンスにおける５回目及び６回目のループでは、ベリファイ動作は“Ａ”レベルと“Ｂ”レベルとを対象にして行われる。つまり、１回のプログラム動作に対してベリファイ動作は２回行われる。標準書き込みシーケンスにおける７回目のループでは、ベリファイ動作は“Ｂ”レベルと“Ｃ”レベルを対象にして行われる。つまり、１回のプログラム動作に対してベリファイ動作は２回行われる。
【０１０６】
以降も、１回のプログラム動作に対して、設定された所定のレベルのベリファイ動作が行われる。最終的には、１７回のループで、プログラム動作が１７回、ベリファイ動作が各レベルについて４回ずつ（計２８回）行われる。すなわち、予備プログラム動作とこれに対する検出ベリファイ動作を含めても、プログラム動作が１８回、ベリファイ動作が２９回となる。
【０１０７】
以上のように、本実施形態によれば、ＮＡＮＤメモリセルアレイ２３への書き込み動作に先だって、予備プログラム動作を行うことにより、メモリセルトランジスタＭＴの書き込み特性を検出し、標準書き込みシーケンスの補正を行う。補正によって、メモリセルトランジスタＭＴの閾値の変更への寄与が小さい（実質的に寄与していない）ループを削減したり、各ターゲットレベルにおけるベリファイ動作の開始タイミングを調整したりすることができる。従って、標準書き込みシーケンスを実行した場合に比べ、プログラム動作の回数やベリファイ動作の回数を削減することができるので、書き込み時間を短縮し、高速化することができる。書き込み時間を高速化することで、半導体記憶装置の処理能力を向上させることができる。
【０１０８】
また、閾値のターゲットレベルが低いレベル（例えば“Ａ”レベル）のメモリセルトランジスタＭＴの隣に、閾値のターゲットレベルが高いレベル（例えば“Ｅ”レベル）のメモリセルトランジスタＭＴが配置されており、低い電圧から順に選択ワード線ＷＬに印加される電圧ＶＰＧＭを上昇させていくと、閾値のターゲットレベルが高いレベルのメモリセルトランジスタＭＴの閾値が上昇するのに伴い、カップリング現象により、閾値のターゲットレベルが低いレベルのメモリセルトランジスタＭＴの閾値分布が広がってしまい、信頼性が低下する可能性がある。本実施形態では、予備プログラム動作において、閾値のターゲットレベルが高いレベルのメモリセルトランジスタＭＴに対するプログラム動作を先に済ませることで、カップリング現象を抑制し、閾値のターゲットレベルが低いレベルのメモリセルトランジスタＭＴの閾値分布が広がってしまうことを抑制する効果も得られる。
【０１０９】
なお、予備プログラム動作によりメモリセルトランジスタＭＴの書き込み特性が速い（書き込み特性が劣化した状態である）と判断された場合、ループ間における選択ワード線ＷＬに印加される電圧ＶＰＧＭの増加量を小さく設定することで、各領域Ｅｒ，Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇの分布幅を細くすることが可能である。この場合、半導体記憶装置の信頼性を向上させることができる。
【０１１０】
また、予備プログラム動作により、他と違う特異な書き込み特性（書き込み速度が極端に遅い、など）を有するメモリセルグループＭＧを検出することも可能である。このようなメモリセルグループＭＧについて、将来的に不良化の恐れがあると判断された場合には、当該メモリセルグループＭＧに接続されているワード線ＷＬへの書き込み動作を中止することにより、半導体記憶装置の信頼性を向上させることができる。
（第２の実施形態）
次に、本発明の第２の実施形態にかかる半導体記憶装置について説明する。本実施形態の半導体記憶装置は、標準書き込みシーケンスの補正方法が、上述した第１の実施形態の半導体記憶装置と異なる。本実施形態の半導体記憶装置の構成は、上述した第１の実施形態の半導体記憶装置と同様であるので説明を省略し、以下、第１の実施形態と異なる点についてのみ説明する。
【０１１１】
本実施形態における書き込み動作は、図１５を用いて説明した第１の実施形態と同様であるが、各手順の詳細な実行内容が異なっている。以下、図１５を用いて、本実施形態における書き込み動作の手順を具体的に説明する。
【０１１２】
まず、予備プログラム動作を行う（Ｓ１）。第１の実施形態では、閾値のターゲットレベルが高いメモリセルトランジスタＭＴに対し、予備プログラム動作を行っていた。これに対し、本実施形態では、“Ａ”〜“Ｇ”レベルのメモリセルトランジスタＭＴに対し、第１ループの電圧ＶＰＧＭを選択ワード線に印加することで、予備プログラム動作行う。
【０１１３】
次に、予備プログラム動作に対する検出ベリファイ（Ｄｅｔｅｃｔｉｏｎ Ｖｅｌｉｆｙ）動作を実行し、書き込み特性を検出する（Ｓ２）。Ｓ２における検出ベリファイ動作は、“Ａ”レベルを対象にして行われる。
【０１１４】
続いて、Ｓ２における検出ベリファイ動作をパスしたビットと、フェイルしたビットの数を検出する（Ｓ３）。パス／フェイルのビット数の検出は、制御部２２に設けられたフェイル数カウント回路２２１において行われる。なお、閾値のターゲットレベルが“Ａ”であるメモリセルトランジスタＭＴの数が算出可能である場合、Ｓ３におけるビット数の検出は、パスビット、または、フェイルビットのどちらか一方のみを行ってもよい。
【０１１５】
次に、制御部２２は、Ｓ３で検出したパス／フェイルのビット数に基づき、メモリセルトランジスタＭＴの書き込み特性を推定し、標準書き込みシーケンスを補正する（Ｓ４）。例えば、Ｓ３において、フェイルビットの割合（閾値のターゲットレベルが“Ａ”であるメモリセルトランジスタＭＴの総数に対するフェイルビットの割合）が、予め設定された閾値よりも大きい場合、書き込み特性が遅いと推定される。
【０１１６】
例えば、標準書き込みシーケンスの１回目及び２回目のループをスキップし、３ループ目からプログラム動作を実行するよう、標準書き込みシーケンスを補正する。また、各レベルのベリファイ動作についても、標準書き込みプシーケンスから２ループ遅いタイミングで開始するよう、補正する（図１９参照）。
【０１１７】
図２２には、第２の実施形態の半導体記憶装置の書き込み動作時における、各ループにおける選択ワード線の電圧（電圧ＶＰＧＭ）の一例を示している。図２２の横軸には、標準書き込みシーケンスにおけるループ回数を示している。
【０１１８】
まず、予備プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭは、例えば、標準書き込みシーケンスにおける第１ループの電圧ＶＰＧＭ（１２．０Ｖ）に設定されている。そして、標準書き込みシーケンスにおける第１ループ及び第２ループのプログラム動作は、補正後書き込みシーケンスでは行われず、第３ループからプログラム動作が開始される。標準書き込みシーケンスにおける第３ループにおいて選択ワード線ＷＬに印加される電圧ＶＰＧＭは１３．０Ｖであるが、補正によって±α増減させる（α≧０）。以降、標準書き込みシーケンスにおける４回目のループから最終ループである１９回目のループまで、ワード線ＷＬに印加される電圧ＶＰＧＭは、補正によって±α増減させる（α≧０）。
【０１１９】
図２３には、上述した書き込み動作時における、プログラム動作とベリファイ動作のタイミングを示している。まず、予備プログラム動作と、これに対する検出ベリファイ（Ｄｅｔｅｃｔｉｏｎ Ｖｅｌｉｆｙ）動作が行われる。これにより、標準書き込みシーケンスが補正され、標準書き込みシーケンスにおける３回目のループから実行される。標準書き込みシーケンスにおける３回目及び４回目のループでは、ベリファイ動作は“Ａ”レベルのみを対象にして行われる。つまり、１回のプログラム動作に対してベリファイ動作は１回行われる。標準書き込みシーケンスにおける５回目及び６回目のループでは、ベリファイ動作は“Ａ”レベルと“Ｂ”レベルとを対象にして行われる。つまり、１回のプログラム動作に対してベリファイ動作は２回行われる。標準書き込みシーケンスにおける７回目のループでは、ベリファイ動作は“Ｂ”レベルと“Ｃ”レベルを対象にして行われる。つまり、１回のプログラム動作に対してベリファイ動作は２回行われる。
【０１２０】
以降も、１回のプログラム動作に対して、設定された所定のレベルのベリファイ動作が行われる。最終的には、１７回のループで、プログラム動作が１７回、ベリファイ動作が各レベルについて４回ずつ（計２８回）行われる。すなわち、予備プログラムとこれに対する検出ベリファイ動作を含めても、プログラム動作が１８回、ベリファイ動作が２９回となる。
【０１２１】
最後に、制御部２２は、補正後書き込みシーケンスに基づく制御信号をセンスユニット２４およびロウデコーダ２５に出力し、ＮＡＮＤメモリセルアレイ２３への書き込み動作が続行される（Ｓ５）。
【０１２２】
以上のように、本実施形態によれば、まず、閾値のターゲットレベルが一番低い“Ａ”レベルであるメモリセルトランジスタＭＴに対し、第１ループの電圧ＶＰＧＭを選択ワード線に印加して予備プログラム動作を行うことでメモリセルトランジスタＭＴの書き込み特性を検出し、標準書き込みシーケンスの補正を行うことで、第１の実施形態と同様の効果が得られる。これにより、標準書き込みシーケンスの１回目のループを予備プログラム動作として流用できるため、標準書き込みシーケンスに対して特別なステップを付加する必要がない。更に、予備プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭを高い電圧に充電する必要がなく、消費電力を低減することができる効果も得られる。
（第３の実施形態）
次に、本発明の第３の実施形態にかかる半導体記憶装置について説明する。本実施形態の半導体記憶装置は、標準書き込みシーケンスの補正方法が、上述した第１の実施形態の半導体記憶装置と異なる。本実施形態の半導体記憶装置の構成は、上述した第１の実施形態の半導体記憶装置と同様であるので説明を省略し、以下、第１の実施形態と異なる点についてのみ説明する。
【０１２３】
本実施形態における書き込み動作は、図１５を用いて説明した第１の実施形態と同様であるが、各手順の詳細な実行内容が異なっている。以下、図１５を用いて、本実施形態における書き込み動作の手順を具体的に説明する。
【０１２４】
まず、予備プログラム動作を行う（Ｓ１）。第１の実施形態では、閾値のターゲットレベルが高いメモリセルトランジスタＭＴに対し、予備プログラム動作を１回行っていた。これに対し、本実施形態では、異なるターゲットレベルの予備プログラム動作を２回行う。本実施形態では、第１プログラム動作として、“Ａ”〜“Ｇ”レベルのメモリセルトランジスタＭＴに対し、第１ループの電圧ＶＰＧＭを選択ワード線に印加する。続いて、第２予備プログラム動作として、“Ｅ”〜“Ｇ”レベルのメモリセルトランジスタＭＴに対し、第９ループの電圧ＶＰＧＭを選択ワード線に印加する。
【０１２５】
次に、予備プログラム動作に対する検出ベリファイ（Ｄｅｔｅｃｔｉｏｎ Ｖｅｌｉｆｙ）動作を実行し、書き込み特性を検出する（Ｓ２）。Ｓ２における検出ベリファイ動作は、“Ｅ”レベルを対象にして行われる。
【０１２６】
続いて、Ｓ２における検出ベリファイ動作をパスしたビットと、フェイルしたビットの数を検出する（Ｓ３）。パス／フェイルのビット数の検出は、制御部２２に設けられたフェイル数カウント回路２２１において行われる。なお、閾値のターゲットレベルが“Ｅ”であるメモリセルトランジスタＭＴの数が算出可能である場合、Ｓ３におけるビット数の検出は、パスビット、または、フェイルビットのどちらか一方のみを行ってもよい。
【０１２７】
次に、制御部２２は、Ｓ３で検出したパス／フェイルのビット数に基づき、メモリセルトランジスタＭＴの書き込み特性を推定し、標準書き込みシーケンスを補正する（Ｓ４）。例えば、Ｓ３において、フェイルビットの割合（閾値のターゲットレベルが“Ｅ”であるメモリセルトランジスタＭＴの総数に対するフェイルビットの割合）が、予め設定された閾値よりも大きい場合、書き込み特性が遅いと推定される。
【０１２８】
例えば、標準書き込みシーケンスの１回目及び２回目のループをスキップし、３ループ目からプログラム動作を実行するよう、書き込みシーケンスを補正する。また、各レベルのベリファイ動作についても、標準書き込みシーケンスから２ループ遅いタイミングで開始するよう、補正する（図１９参照）。
【０１２９】
図２４には、第３の実施形態の半導体記憶装置の書き込み動作時における、各ループにおける選択ワード線の電圧（電圧ＶＰＧＭ）の一例を示している。
【０１３０】
まず、第１予備プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭは、例えば、標準書き込みシーケンスにおける第１ループの電圧ＶＰＧＭ（１２．０Ｖ）に設定されている。次に、第２予備プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭは、例えば、標準書き込みシーケンスにおける第９ループの電圧ＶＰＧＭ（１６．０Ｖ）に設定されている。そして、標準書き込みシーケンスにおける第１ループ及び第２ループのプログラム動作は、補正後書き込みシーケンスでは行われず、第３ループからプログラム動作が開始される。標準書き込みシーケンスにおける第３ループから最終ループである１９回目のループまで、ワード線ＷＬに印加される電圧ＶＰＧＭは、補正によって±α増減させる（α≧０）。
【０１３１】
図２５には、上述した書き込み動作時における、プログラム動作とベリファイ動作のタイミングを示している。まず、２回の予備プログラム動作と、これに対する検出ベリファイ（Ｄｅｔｅｃｔｉｏｎ Ｖｅｌｉｆｙ）動作が行われる。これにより、標準書き込みシーケンスが補正され、標準書き込みシーケンスにおける３回目のループから実行される。３回目のループ以降１９回目のループまで、１回のプログラム動作に対して、設定された所定のレベルのベリファイ動作が行われる。最終的には、１７回のループで、プログラム動作が１７回、ベリファイ動作が各レベルについて４回ずつ（計２８回）行われる。すなわち、予備プログラム動作とこれに対する検出ベリファイ動作を含めても、プログラム動作が１９回、ベリファイ動作が２９回となる。
【０１３２】
最後に、制御部２２は、補正後書き込みシーケンスに基づく制御信号をセンスユニット２４およびロウデコーダ２５に出力し、ＮＡＮＤメモリセルアレイ２３への書き込み動作が続行される（Ｓ５）。
【０１３３】
以上のように、本実施形態によれば、まず、“Ａ”〜“Ｇ”レベルのメモリセルトランジスタＭＴに対し、第１ループの電圧ＶＰＧＭを選択ワード線に印加して１回目の予備プログラム動作を行い、続いて閾値のターゲットレベルが高いメモリセルトランジスタＭＴに対し高いレベルの電圧ＶＰＧＭ（例えば、第９ループの電圧ＶＰＧＭ）を印可して２回目の予備プログラム動作を行う。引き続き、メモリセルトランジスタＭＴの書き込み特性を検出し、標準書き込みシーケンスの補正を行うことで、第１の実施形態と同様の効果が得られる。また、カップリング現象により、閾値のターゲットレベルが低いレベルのメモリセルトランジスタＭＴの閾値分布が広がってしまうことを抑制する効果も得られる。
（第４の実施形態）
次に、本発明の第４の実施形態にかかる半導体記憶装置について説明する。本実施形態の半導体記憶装置は、標準書き込みシーケンスの補正方法が、上述した第１の実施形態の半導体記憶装置と異なる。本実施形態の半導体記憶装置の構成は、上述した第１の実施形態の半導体記憶装置と同様であるので説明を省略し、以下、第１の実施形態と異なる点についてのみ説明する。以下、図２６を用いて、本実施形態における書き込み動作の手順を具体的に説明する。
【０１３４】
まず、１回目の予備プログラム動作を行う（Ｓ１１）。第１の実施形態では、閾値のターゲットレベルが高いメモリセルトランジスタＭＴに対し、予備プログラム動作を１回行っていた。これに対し、本実施形態では、異なるターゲットレベルの予備プログラム動作を２回行う。更に、本実施形態では、１回目の予備プログラム動作と２回目の予備プログラム動作との間に、書き込み特性の検出を行う。Ｓ１１では、第１回目の予備プログラム動作として、“Ａ”〜“Ｇ”レベルのメモリセルトランジスタＭＴに対し、第１ループの電圧ＶＰＧＭを選択ワード線に印加する。
【０１３５】
次に、第１回目の予備プログラム動作に対する検出ベリファイ（Ｄｅｔｅｃｔｉｏｎ Ｖｅｌｉｆｙ）動作を実行し、書き込み特性を検出する（Ｓ２）。Ｓ２における検出ベリファイ動作は、“Ａ”レベルを対象にして行われる。
【０１３６】
続いて、Ｓ２における検出ベリファイ動作をパスしたビットと、フェイルしたビットの数を検出する（Ｓ３）。パス／フェイルのビット数の検出は、制御部２２に設けられたフェイル数カウント回路２２１において行われる。なお、閾値のターゲットレベルが“Ａ”であるメモリセルトランジスタＭＴの数が算出可能である場合、Ｓ３におけるビット数の検出は、パスビット、または、フェイルビットのどちらか一方のみを行ってもよい。
【０１３７】
次に、制御部２２は、Ｓ３で検出したパス／フェイルのビット数に基づき、メモリセルトランジスタＭＴの書き込み特性を推定し、標準書き込みシーケンスを補正する（Ｓ４）。例えば、Ｓ３において、フェイルビットの割合（閾値のターゲットレベルが“Ａ”であるメモリセルトランジスタＭＴの総数に対するフェイルビットの割合）が、予め設定された閾値よりも大きい場合、書き込み特性が遅いと推定される。
【０１３８】
例えば、標準書き込みシーケンスの１回目及び２回目のループをスキップし、３ループ目からプログラム動作を実行するよう、標準書き込みシーケンスを補正する。また、各レベルのベリファイ動作についても、標準書き込みシーケンスから２ループ遅いタイミングで開始するよう、補正する（図１９参照）。
【０１３９】
続いて、第２回目の予備プログラム動作として、“Ｅ”〜“Ｇ”レベルのメモリセルトランジスタＭＴに対し、第９ループの電圧ＶＰＧＭを選択ワード線に印加する（Ｓ１２）。第２回目の予備プログラム動作に対する検出ベリファイ動作は行ってもよいし、行わなくてもよい。なお、本ステップで選択ワード線に印可される電圧ＶＰＧＭは、Ｓ３における標準書き込みシーケンスの補正に準じて変更される。例えば、第９ループの電圧ＶＰＧＭが１６．０から１６．１Ｖに補正された場合、本ステップで第２回目の予備プログラム動作として選択ワード線に印可する電圧ＶＰＧＭも１６．１Ｖとする。
【０１４０】
図２７には、第４の実施形態の半導体記憶装置の書き込み動作時における、各ループにおける選択ワード線の電圧（電圧ＶＰＧＭ）の一例を示している。
【０１４１】
まず、第１予備プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭは、例えば、標準書き込みシーケンスにおける第１ループの電圧ＶＰＧＭ（１２．０Ｖ）に設定されている。次に、第２予備プログラム動作において、選択ワード線ＷＬに印加される電圧ＶＰＧＭは、例えば、標準書き込みシーケンスにおける第９ループの補正後電圧ＶＰＧＭ（１６．０±αＶ）に設定されている。そして、標準書き込みシーケンスにおける第１ループ及び第２ループのプログラム動作は、補正後書き込みシーケンスでは行われず、第３ループからプログラム動作が開始される。標準書き込みシーケンスにおける第３ループから最終ループである１９回目のループまで、ワード線ＷＬに印加される電圧ＶＰＧＭは、補正によって±α増減させる（α≧０）。
【０１４２】
図２８には、上述した書き込み動作時における、プログラム動作とベリファイ動作のタイミングを示している。まず、１回目の予備プログラム動作と、これに対する検出ベリファイ（Ｄｅｔｅｃｔｉｏｎ Ｖｅｌｉｆｙ）動作、そして、２回目の予備プログラム動作が行われる。これにより、標準書き込みシーケンスが補正され、標準書き込みシーケンスにおける３回目のループから実行される。３回目のループ以降１９回目のループまで、１回のプログラム動作に対して、設定された所定のレベルのベリファイ動作が行われる。最終的には、１７回のループで、プログラム動作が１７回、ベリファイ動作が各レベルについて４回ずつ（計２８回）行われる。すなわち、予備プログラム動作とこれに対する検出ベリファイ動作を含めても、プログラム動作が１９回、ベリファイ動作が２９回となる。
【０１４３】
最後に、制御部２２は、補正後書き込みシーケンスに基づく制御信号をセンスユニット２４およびロウデコーダ２５に出力し、ＮＡＮＤメモリセルアレイ２３への書き込み動作が続行される（Ｓ５）。
【０１４４】
以上のように、本実施形態によれば、まず、“Ａ”〜“Ｇ”レベルのメモリセルトランジスタＭＴに対し、第１ループの電圧ＶＰＧＭを選択ワード線に印加して１回目の予備プログラム動作を行い、メモリセルトランジスタＭＴの書き込み特性を検出し、標準プログラムシーケンスの補正を行う。このとき、２回目の予備プログラム動作で印加する電圧の補正も行う。そして、閾値のターゲットレベルが高いメモリセルトランジスタＭＴに対し高いレベルの電圧ＶＰＧＭ（例えば、第９ループの電圧ＶＰＧＭ）を印可して２回目の予備プログラム動作を行う。まずこれらの動作を行うことで、第１の実施形態と同様の効果が得られる。また、第２回目の予備プログラム動作で印加する電圧を補正することで、カップリング現象により閾値のターゲットレベルが低いレベルのメモリセルトランジスタＭＴの閾値分布が広がってしまうことを抑制する効果が高まる。
【０１４５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、一例として示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１４６】
１…メモリコントローラ、２…不揮発性メモリ、１１…ＲＡＭ、１２…プロセッサ、１３…ホストインターフェイス、１４…ＥＣＣ回路、１５…メモリインターフェイス、１６…内部バス、２１…ＮＡＮＤ Ｉ／Ｏインターフェイス、２２…制御部、２３…メモリセルアレイ、２４…センスユニット、２５…ロウデコーダ、２２１…フェイル数カウント回路、３３３，３３２，３３１…配線層、３３４…メモリホール、３３５…ブロック絶縁膜、３３６…電荷蓄積層、３３７…ゲート絶縁膜、３３８…導電体柱、３３９，３４０…コンタクトプラグ、
【図１】
2020047329.tif 000003
【図２】
2020047329.tif 000004
【図３】
2020047329.tif 000005
【図４】
2020047329.tif 000006
【図５】
2020047329.tif 000007
【図６】
2020047329.tif 000008
【図７】
2020047329.tif 000009
【図８】
2020047329.tif 000010
【図９】
2020047329.tif 000011
【図１０】
2020047329.tif 000012
【図１１】
2020047329.tif 000013
【図１２】
2020047329.tif 000014
【図１３】
2020047329.tif 000015
【図１４】
2020047329.tif 000016
【図１５】
2020047329.tif 000017
【図１６】
2020047329.tif 000018
【図１７】
2020047329.tif 000019
【図１８】
2020047329.tif 000020
【図１９】
2020047329.tif 000021
【図２０】
2020047329.tif 000022
【図２１】
2020047329.tif 000023
【図２２】
2020047329.tif 000024
【図２３】
2020047329.tif 000025
【図２４】
2020047329.tif 000026
【図２５】
2020047329.tif 000027
【図２６】
2020047329.tif 000028
【図２７】
2020047329.tif 000029
【図２８】
2020047329.tif 000030