(57)【要約】      （修正有）【課題】高品質な半導体記憶装置を提供する。【解決手段】第１ビットデータと第２ビットデータを保持可能な不揮発性のメモリセルと、メモリセルにデータを書き込む制御回路１２２と、を備え、制御回路は、メモリセルに第１ビットデータを保持させる第１の書込みの最中に、第２ビットデータを保持させる第２の書込み動作を実行するための第２ビットデータを外部から受信したとき、第１の書込みを中断して、メモリセルに対して第１ビットデータと第２ビットデータとを併せて書込む第３の書込みを行う。【選択図】図１
2015212992.tif 000002
【特許請求の範囲】
【請求項１】
第１ビットデータと第２ビットデータを保持可能な不揮発性のメモリセルと、
前記メモリセルにデータを書き込む制御回路と、
を備え、
前記制御回路は、前記メモリセルに前記第１ビットデータを保持させる第１の書込みの最中に、前記第２ビットデータを保持させる第２の書込み動作を実行するために、
前記第１の書込みの途中で前記第２ビットデータを外部から受信したとき、前記第１の書込みを中断して、前記メモリセルに対して前記第１ビットデータと前記第２ビットデータとを併せて書込む第３の書込みを行い、
前記第１ビットデータに続いて待機コマンドを受信した場合、前記第２ビットデータの受信を待って、前記メモリセルに対して前記第１ビットデータ及び第２ビットデータを併せて書込む第４の書込みを行うことを特徴とする半導体記憶装置。
【請求項２】
第１ビットデータと第２ビットデータを保持可能な不揮発性のメモリセルと、
前記メモリセルにデータを書き込む制御回路と、
を備え、
前記制御回路は、前記メモリセルに前記第１ビットデータを保持させる第１の書込みの最中に、前記第２ビットデータを保持させる第２の書込み動作を実行するために、前記第１の書込みの途中で前記第２ビットデータを外部から受信したとき、前記第１の書込みを中断して、前記メモリセルに対して前記第１ビットデータと前記第２ビットデータとを併せて書込む第３の書込みを行うことを特徴とする半導体記憶装置。
【請求項３】
前記制御回路は、
前記第１ビットデータに続いて待機コマンドを受信した場合、前記第２ビットデータの受信を待って、前記メモリセルに対して前記第１ビットデータ及び第２ビットデータを併せて書込む第４の書込みを行うことを特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
第１ビットデータと第２ビットデータを保持可能な不揮発性のメモリセルと、
前記メモリセルにデータを書き込む制御回路と、
を備え、
前記制御回路は、
前記メモリセルに前記第１ビットデータを保持させる第１の書込みの最中に、前記第２ビットデータを保持させる第２の書込み動作を実行するために、
前記第１ビットデータに続いて待機コマンドを受信した場合、前記第２ビットデータの受信を待って、前記メモリセルに対して前記第１ビットデータ及び第２ビットデータを併せて書込む第３の書込みを行うことを特徴とする半導体記憶装置。
【請求項５】
前記制御回路は、前記第１の書込みの際にベリファイ動作を行い、
前記ベリファイ動作の結果に基づいて、前記第３の書き込みデータの供する第１ビットデータを変更することを特徴とする請求項２乃至４のいずれか一項に記載の半導体記憶装置。
【請求項６】
前記制御回路は、前記第１の書込みの際に、前記メモリセルのゲートに電圧を印加するプログラム動作及びベリファイ動作を行い、
前記第１の書込みの最中に前記第２ビットデータを受信し、前記プログラム動作の回数、及び前記ベリファイ動作の結果の少なくとも一方の所望の条件を満たす場合、前記第３の書込みを行うことを特徴とする請求項２乃至５のいずれか一項に記載の半導体記憶装置。
【請求項７】
第１ビットデータと第２ビットデータを保持可能な不揮発性のメモリセルと、
前記メモリセルにデータを書き込む制御回路と、
を備え、
前記制御回路は、
前記第１ビットデータを書込む際には、前記メモリセルのゲートに、プログラム電圧を第１の初期電圧からステップアップさせつつ印加し、
前記第１ビットデータの書込み動作中に、前記第２ビットデータを受信した際には、前記プログラム電圧のステップアップを中断し、ステップアップされたプログラム電圧を、第２の初期電圧に更新し、
前記メモリセルのゲートに、プログラム電圧を前記第２の初期電圧からステップアップさせつつ印加することを特徴とする半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
近年、ＮＡＮＤ型フラッシュメモリのビット密度向上に向けたアプローチとして、メモリセルトランジスタが半導体基板の上方に積層された３次元積層型ＮＡＮＤフラッシュメモリ、所謂ＢｉＣＳ（Bit-Cost Scalable）フラッシュメモリのメモリが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開特開２００４−１９２７８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
高品質な半導体記憶装置を提供する。
【課題を解決するための手段】
【０００５】
実施形態に係る半導体記憶装置は、第１ビットデータと第２ビットデータを保持可能な不揮発性のメモリセルと、前記メモリセルにデータを書き込む制御回路と、を備え、前記制御回路は、前記メモリセルに前記第１ビットデータを保持させる第１の書込みの最中に、前記第２ビットデータを保持させる第２の書込み動作を実行するために、前記第１の書込みの途中で前記第２ビットデータを外部から受信したとき、前記第１の書込みを中断して、前記メモリセルに対して前記第１ビットデータと前記第２ビットデータとを併せて書込む第３の書込みを行う。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態に係る３次元積層型不揮発性半導体記憶装置の回路構成を示すブロック図である。
【図２】図２は、第１の実施形態に係るメモリセルアレイのブロック図である。
【図３】図３は、ブロックＢＬＫ０の回路図である。他のブロックＢＬＫも同様の構成を有している。
【図４】図４は、ＮＡＮＤストリングの断面図である。
【図５】図５（ａ）は、第１の実施形態に係るメモリセルトランジスタＭＴの閾値分布の初期状態を示す。図５（ｂ）は、下位ビット書込み完了後の第１の実施形態に係るメモリセルトランジスタＭＴの閾値分布を示す。図５（ｃ）は、上位ビット書込み、または２ビットプログラム完了後の第１の実施形態に係るメモリセルトランジスタＭＴの閾値分布を示す。
【図６】図６は、第１の実施形態に係る書込み動作のフローチャートである。
【図７】図７は、第１の実施形態に係る書込み動作の具体例１である。
【図８】図８は、第１の実施形態に係る書込み動作の具体例２である。
【図９】図９は、第２の実施形態に係る書込み動作のフローチャートである。
【図１０】図１０は、第１の実施形態に係る書込み動作の具体例である。
【図１１】図１１は、第３の実施形態に係る書込み動作のフローチャートである。
【図１２】図１２は、第４の実施形態に係る書込み動作のフローチャートである。
【図１３】図１３は、第４の実施形態に係る下位ページデータの変化方法を示す図である。
【図１４】図１４は、第４の実施形態に係る下位ページデータの変化方法を示す図である。
【図１５】図１５は、第４の実施形態に係る書き込みデータの処理方法を示す図である。
【発明を実施するための形態】
【０００７】
以下に、実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。  
また、以下ではＮＡＮＤフラッシュメモリの一例として、３次元積層型ＮＡＮＤフラッシュメモリを例に挙げて各実施形態を説明する。下記の各実施形態で単にＮＡＮＤフラッシュメモリと称する場合は、３次元積層型ＮＡＮＤフラッシュメモリの事を意味する。
【０００８】
（第１の実施形態）
＜不揮発性半導体記憶装置の構成＞
図１を用いて、第１の実施形態に係わる３次元積層型不揮発性半導体記憶装置について説明する。  
本実施形態の３次元積層型不揮発性半導体記憶装置（メモリシステムとも称す）１００は、メモリコントローラ１１０と、ＮＡＮＤフラッシュメモリ１２０と、を有する。
【０００９】
＜メモリコントローラ＞
メモリコントローラ１１０は、ホストインタフェース１１１、ＲＡＭ（Random Access Memory）１１２、ＥＣＣ（Error Correcting Code）回路１１３、ＣＰＵ（Central Processing unit)１１４、ＲＯＭ（Read Only Memory）１１５、フラッシュメモリインタフェース１１６を含んでいる。
【００１０】
メモリコントローラ１１０は、ＮＡＮＤフラッシュメモリ１２０の動作に必要なコマンドなどを出力し、ＮＡＮＤフラッシュメモリ１２０からのデータの読み出し、ＮＡＮＤフラッシュメモリ１２０へのデータの書込み、またはＮＡＮＤフラッシュメモリ１２０のデータの消去を行う。
【００１１】
ホストインタフェース１１１は、データバスを介してパーソナルコンピュータ等のホストデバイス（外部機器）２００と接続されている。このホストインタフェース１１１を介して、ホストデバイス２００とメモリシステム１００との間でデータの送受信等が行われる。
【００１２】
ＲＡＭ１１２は、例えば揮発性のメモリであり、例えばＣＰＵ１１４が動作するための動作プログラム等を格納している。
【００１３】
ＥＣＣ（Error Correcting Code）回路１１３は、ホストデバイス２００からデータを受け取り、データにエラー訂正符号を付加し、エラー訂正符号を付されたデータを、例えばフラッシュメモリインタフェース１１６に供給する。また、ＥＣＣ回路１１３は、ＮＡＮＤフラッシュメモリ１２０から供給されたデータをフラッシュメモリインタフェース１１６を介して受け取り、このデータに対してエラー訂正符号を用いてエラー訂正を行う。
【００１４】
ＣＰＵ（Central Processing unit)１１４は、メモリシステム１００の全体の動作を司る。ＣＰＵ１１４はＲＡＭ１１２及びＲＯＭ１１５に格納されたデータに基づいてＮＡＮＤフラッシュメモリ１２０を制御する。
【００１５】
ＲＯＭ（Read Only Memory）１１５は、不揮発性のメモリであり、例えばＣＰＵ１１４が動作するための動作プログラム等を格納している。
【００１６】
フラッシュメモリインタフェース１１６には、データバスを介してＮＡＮＤフラッシュメモリ１２０が接続されている。
【００１７】
＜ＮＡＮＤフラッシュメモリ＞
ＮＡＮＤフラッシュメモリ１２０は、入出力バッファ（Input / Output buffer）１２１、制御回路（Control Circuit）１２２、カラムアドレスバッファ／カラムデコーダ（Column address buffer / Column decoder）１２３、フェイルビットカウンタ回路（Fail bit counter circuit）１２４、データラッチ回路（Data Latch Circuit）１２５、センスアンプ（Sense Amplifier）１２６、ロウアドレスバッファ（Row Address Buffer）１２７、ロウデコーダ（Row Decoder）１２８、及びメモリセルアレイ（Memory Cell Array）１３０を備えている。
【００１８】
メモリセルアレイ１３０は、複数の不揮発性のメモリセルトランジスタが半導体基板に対して垂直方向に積層された３次元積層型不揮発性半導体記憶装置である。メモリセルアレイ１３０の詳細な構成については後述する。
【００１９】
センスアンプ１２６は、データの読み出し時には、メモリセルトランジスタからビット線に読み出されたデータを、ＳＥＮノード（不図示）にてセンスする。またセンスアンプ１２６は、データの書込み時には、センスアンプのＳＥＮノードに書き込みデータに応じた書き込み電圧をセットする。メモリセルアレイ１３０へのデータの読み出し及び書込みは、複数のメモリセルトランジスタ単位で行われる。センスアンプ１２６は、カラムアドレスバッファ／カラムデコーダ１２３から入力されるビット線選択信号を受信し、ビット線選択トランジスタを介してビット線ＢＬの何れかを選択して駆動する。
【００２０】
データラッチ回路１２５は、それぞれＳＲＡＭ等で構成される第１のキャッシュ（cache）１２５ａ、第２のキャッシュ１２５ｂ、及び第３のキャッシュ１２５ｃを備えている。第１のキャッシュ１２５ａは、第２のキャッシュ１２５ｂ、及び第３のキャッシュ１２５ｃは、それぞれ、メモリコントローラ１１０から供給されたデータや、センスアンプ１２６によって検知されたベリファイ結果等を格納する。
【００２１】
フェイルビットカウンタ回路１２４は、データラッチ回路１２５に格納されているベリファイの結果からプログラムが完了していないビット数をカウントする。
【００２２】
カラムアドレスバッファ／カラムデコーダ１２３は、メモリコントローラ１１０から入出力バッファ１２１を介して入力されるカラムアドレス信号を一時的に格納する。そして、カラムアドレス信号に従ってビット線ＢＬの何れかを選択する選択信号をセンスアンプ１２６に出力する。
【００２３】
ロウデコーダ１２８は、ロウアドレスバッファ１２７を介して入力されるロウアドレス信号をデコードし、メモリセルアレイのワード線ＷＬ及び選択ゲート線ＳＧＤ、ＳＧＳを選択して駆動する。また、このロウデコーダ１２８は、メモリセルアレイ１３０のブロックを選択する部分とページを選択する部分を有する。
【００２４】
なお、本実施形態のＮＡＮＤフラッシュメモリ１２０は、図示せぬ外部入出力端子Ｉ／Ｏを有し、この外部入出力端子Ｉ／Ｏを介して入出力バッファ１２１とメモリコントローラ１１０とのデータの授受が行われる。外部入出力端子Ｉ／Ｏを介して入力されるアドレス信号は、ロウアドレスバッファ１２７を介してロウデコーダ１２８及びカラムアドレスバッファ／カラムデコーダ１２３に出力される。
【００２５】
制御回路１２２は、メモリコントローラ１１０を介して供給される各種外部制御信号（書込みイネーブル信号ＷＥn、読み出しイネーブル信号ＲＥn、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ等）とコマンドＣＭＤに基づき、データの書込み及び消去のシーケンス制御、及び読み出し動作を制御する。また、制御回路１２２は、レジスタ等を備えており、例えばフェイルビットカウンタ回路１２４によってカウントされた値に関係する値や、プログラム電圧印加回数に関係した値を格納している。そして、制御回路１２２は、プログラムが完了していないビット数と、設定された許容フェイルビット数とを比較して、プログラム動作がパスしたかフェイルであるかの判断を行う。また、制御回路１２２は、内部にプログラムパルス印加回数をカウントするカウンタを備えている。そして、制御回路１２２は、カウントしたプログラムパルス印加回数と、レジスタに格納されたプログラムパルス印加回数とを比較する。
【００２６】
＜メモリセルアレイ＞
図２に示すように、メモリセルアレイ１３０は、それぞれがワード線及びビット線に関連付けられた複数の不揮発性メモリセルの集合である複数（図２の例では３個）のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、ＢＬＫ２、…）を備えている。
【００２７】
ブロックＢＬＫの各々は、メモリセルが直列接続されたＮＡＮＤストリング１３１の集合である複数のストリングユニットＳＵ（ＳＵ０、ＳＵ１、ＳＵ２、…）を備えている。もちろん、メモリセルアレイ１３０内のブロック数や、１ブロックＢＬＫ内のストリングユニット数は任意である。
【００２８】
次に、図３を用いて、ブロックＢＬＫ０の回路図について説明する。  
図３に示すように、ブロックＢＬＫ０は例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数のＮＡＮＤストリング１３１を含む。
【００２９】
ＮＡＮＤストリング１３１の各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）と、選択トランジスタＳＴ１、ＳＴ２と、バックゲートトランジスタＢＴとを含んでいる。
【００３０】
メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを含む積層ゲートを備え、データを不揮発に保持する。なお、メモリセルトランジスタＭＴの個数は８個に限られず、１６個や３２個、６４個、１２８個等であってもよく、その数は限定されるものではない。
【００３１】
バックゲートトランジスタＢＴは、メモリセルトランジスタＭＴと同様に、制御ゲートと電荷蓄積層とを含む積層ゲートを備える。バックゲートトランジスタＢＴはデータを保持するためのものでは無く、データの書込み、読み出し、及び消去時には単なる電流経路として機能する。
【００３２】
メモリセルトランジスタＭＴ及びバックゲートトランジスタＢＴは、選択トランジスタＳＴ１、ＳＴ２間に、その電流経路が直列接続されるようにして配置されている。なおバックゲートトランジスタＢＴは、メモリセルトランジスタＭＴ３とＭＴ４との間に設けられる。この直列接続の一端側のメモリセルトランジスタＭＴ７の電流経路は選択トランジスタＳＴ１の電流経路の一端に接続され、他端側のメモリセルトランジスタＭＴ０の電流経路は選択トランジスタＳＴ２の電流経路の一端に接続されている。
【００３３】
ストリングユニットＳＵ０〜ＳＵ３の各々の選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に接続され、選択トランジスタＳＴ２のゲートは、それぞれセレクトゲート線ＳＧＳ０〜ＳＧＳ３に接続される。これに対して同一のブロックＢＬＫ０内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートはそれぞれワード線ＷＬ０〜ＷＬ７に共通接続される。また、ストリングユニットＳＵ０〜ＳＵ３の各々のバックゲートトランジスタＢＴの制御ゲートはバックゲート線ＢＧに共通接続される。
【００３４】
すなわち、ワード線ＷＬ０〜ＷＬ７及びバックゲート線ＢＧは同一ブロックＢＬＫ０内の複数のストリングユニットＳＵ０〜ＳＵ３間で共通に接続されているのに対し、セレクトゲート線ＳＧＤ、ＳＧＳは、同一ブロックＢＬＫ０内であってもストリングユニットＳＵ０〜ＳＵ３毎に独立している。
【００３５】
また、メモリセルアレイ１３０内でマトリクス状に配置されたＮＡＮＤストリング１３１のうち、同一行にあるＮＡＮＤストリング１３１の選択トランジスタＳＴ１の電流経路の他端は、いずれかのビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１）、（Ｌ−１）は１以上の自然数）に共通接続される。すなわち、ビット線ＢＬは、複数のブロックＢＬＫ間で、ＮＡＮＤストリング１３１を共通に接続する。また、選択トランジスタＳＴ２の電流経路の他端は、ソース線ＳＬに共通に接続されている。ソース線ＳＬは、例えば複数のブロック間で、ＮＡＮＤストリング１３１を共通に接続する。
【００３６】
前述の通り、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴのデータは、一括して消去される。これに対してデータの読み出し及び書込みは、いずれかのブロックＢＬＫのいずれかのストリングユニットＳＵにおける、いずれかのワード線ＷＬに共通に接続された複数のメモリセルトランジスタＭＴにつき、一括して行われる。このデータの書込み単位を「ページ」と呼ぶ。
【００３７】
メモリセルアレイ１３０の構成については、例えば、“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００３８】
図４を用いてメモリセルアレイ１３０の一構成例について簡単に説明する。図４に示す構造が、図４を記載した紙面の奥行き方向（Ｄ２）に複数配列され、且つそれらがワード線ＷＬ、セレクトゲート線ＳＧＤ及びＳＧＳ、並びにバックゲート線ＢＧを共有して、１つのストリングユニットＳＵが形成される。
【００３９】
図４に示すように、半導体基板上方に、バックゲート線ＢＧとして機能する導電層（例えば多結晶シリコン層）２１が形成される。更に導電層２１上には、ワード線ＷＬとして機能する複数の導電層（例えば多結晶シリコン層）２３ａ〜２３ｄが形成される。更に導電層２３ｄ上には、セレクトゲート線ＳＧＤ及びＳＧＳとして機能する導電層（例えば多結晶シリコン層）２７ａ及び２７ｂが形成される。
【００４０】
そして、上記導電層２７ａ、２７ｂ、及び２３ａ〜２３ｄを貫通するようにしてメモリホールが形成される。このメモリホールの側面には、ブロック絶縁膜２５ａ、電荷蓄積層（絶縁膜）２５ｂ、及びゲート絶縁膜２５ｃが順次形成され、更にメモリホール内を導電膜２６ａ、２６ｂが埋め込んでいる。導電膜２６ａ、２６ｂは、ＮＡＮＤストリング１３１の電流経路として機能し、メモリセルトランジスタＭＴの動作時にチャネルが形成される領域である。
【００４１】
更に、導電膜２６ａ上には導電膜３０ａ及び３０ｂが形成され、導電膜３０ａ上にはソース線層３１が形成され、導電膜３０ｂ上には導電膜３２を介してビット線層３３が形成される。
【００４２】
＜メモリセルトランジスタの閾値分布について＞
次に、図５を用いて、本実施形態に係るメモリセルトランジスタＭＴの取りうる閾値分布について説明する。
【００４３】
図５示すようにメモリセルトランジスタＭＴは、その閾値に応じて例えば２ビットのデータを保持可能である。この２ビットデータは、閾値の低いものから順番に、例えば“Ｅ”レベル、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベルである。また、各レベルは、上位ビット及び下位ビットの２ビットのアドレスをもつ。例えば“Ｅ”は“１１”と番号付けされ、“Ａ”は“０１”と番号付けされ、“Ｂ”は“００”と番号付けされ、“Ｃ”は“１０”と番号付けされる。“１１”、“０１”、“００”、及び“１０”は、左側の数字が上位ビット、右側の数字が下位ビットに割り当てられる。ここでは、下位ビットのデータの書込み単位を「下位ページ」と呼ぶ。また、上位ビットのデータの書込み単位を「上位ページ」と呼ぶ。
【００４４】
“Ｅ”レベルは、データが消去された状態における閾値であり、例えば負の値を有し（正の値を有していても良い）、ベリファイ電圧ＥＶよりも低い。“Ａ”〜“Ｃ”レベルは、電荷蓄積層内に電荷が注入された状態の閾値であり、“Ａ”レベルは読み出しレベル“ＡＲ”よりも高く、且つ読み出しレベル“ＢＲ”より低い閾値を有する。“Ｂ”レベルは、読み出しレベル“ＢＲ”よりも高く、且つ読み出しレベル“ＣＲ”より低い閾値を有する。“Ｃ”レベルは、読み出しレベル“ＣＲ”よりも高い閾値を有する。
【００４５】
このように、４つの閾値レベルを取り得ることにより、個々のメモリセルトランジスタＭＴは２ビットのデータ(4-level data)を記憶出来る。
【００４６】
図５（ａ）に示すように、メモリセルトランジスタＭＴの消去状態の分布は、“Ｅ”レベルである。
【００４７】
下位ページ書込みが行われると、図５（ａ）に示す１値の閾値分布が、図５（ｂ）に示す２値の閾値分布に変化する。 電圧“ＭＲ”をワード線に供給して読み出し動作を行なうことで、メモリセルの閾値電圧が電圧“ＭＲ”よりも高いか低いか判別できる。その結果、データを読み出すことができる。
【００４８】
上位ページ書込みが行われると、図５（ｂ）に示す２値の閾値分布が、図５（ｃ）に示すように、４値の閾値分布に変化する。
【００４９】
＜第１の実施形態に係るデータの書込み動作について＞
次に、本実施形態に係るデータの書込み動作につき、図６を参照して説明する。書込み動作は、電荷を電荷蓄積層に注入して閾値を上昇させるプログラム動作と、プログラム動作の結果としての閾値分布の変化を確認するプログラムベリファイ動作とを含む。なお図６に示す処理は、主に制御回路１２２の制御によって実行される。
【００５０】
［Ｓ１０１］
ＮＡＮＤフラッシュメモリ１２０は、メモリコントローラ１１０から書込みコマンド、下位ページのアドレス、下位ページのデータ、及び書込み開始コマンドを順に受信する。その際、制御回路１２２は、第３のキャッシュ１２５ｃに、下位ページのデータを展開する。これとともに第２のキャッシュ１２５ｂにも下位ページのデータを展開する。この利用については後述する。尚、以下では簡単のために、書込みコマンド、アドレス、データ、及び書込み開始コマンドをまとめて「コマンドシーケンス」等と称す。
【００５１】
次に、制御回路１２２は、書込み開始コマンドを受信すると、下位ページのプログラム動作を開始する。具体的には、制御回路１２２の命令に応答して、ロウデコーダ１２８が選択ワード線ＷＬにプログラム電圧ＶＰＧＭ（初回のプログラム印加は、電圧ＶＰＧＭ（initial for lower））を印加し、センスアンプ１２６がビット線ＢＬに書き込みデータに応じた電圧を印加する。これにより、第３のキャッシュ１２５ｃに展開したデータがメモリセルトランジスタＭＴにページ単位でプログラムされる。
【００５２】
［Ｓ１０２］
次に、制御回路１２２の命令に応答して、ロウデコーダ１２８は、ベリファイ電圧ＶＰＶＦＹを選択ワード線ＷＬに印加して、プログラムベリファイ動作を実行する。ベリファイの結果は第３のキャッシュ１２５ｃに格納し、ここに都度上書きしていく。
【００５３】
［Ｓ１０３］
制御回路１２２は、２ビットプログラム（書き込み）動作（フルシーケンス）へ移行可能か否かの判定を行う。２ビットプログラムとは、メモリセルトランジスタＭＴに対して下位ページのデータと上位ページのデータとを併せて書込む動作の事を意味する。  
下記に、制御回路１２２による当該判定方法について説明する。  
｛方法１｝制御回路１２２は、メモリコントローラ１１０から、当該下位ページと同一のワード線ＷＬに属する上位ページに関するコマンドシーケンス（書込みコマンド、上位ページのアドレス、上位ページのデータ、及び書込み開始コマンド）を受信したか否かを判定する。制御回路１２２は、当該上位ページのデータを受信した場合、第１のキャッシュ１２５ａに、当該上位ページのデータを展開する。尚、以下では、簡単のために書込み動作が行われている下位ページと同一のワード線ＷＬに属する上位ページの事を単に「上位ページ」と称す。
【００５４】
｛方法２｝制御回路１２２は、ステップＳ１０２のプログラムベリファイによってデータを読み出す。そして制御回路１２２は、メモリセルトランジスタＭＴの閾値が所望の値まで上昇しているか否かを、読み出しデータに基づいて確認する。制御回路１２２は、プログラムが完了していないビット数と、制御回路１２２のレジスタ内に設定された所定のビット数とを比較する。  
｛方法３｝制御回路１２２は、ステップＳ１０１の下位ページのプログラム動作（またはプログラム動作及びプログラムベリファイ動作を含む書込み動作）の回数（パルスの印加回数、またはループ回数ともいう）をカウントし、所定の回数を超えたか否かの判定を行う。  
制御回路１２２は、方法１（判定方法１）、または方法１及び方法２の組み合わせ（判定方法２）、または方法１及び方法３の組み合わせ（判定方法３）、または方法１〜方法３の組み合わせ（判定方法４）を行う事により２ビットプログラム動作へ移行可能か否かの判定を行う。
【００５５】
｛判定方法１｝
制御回路１２２が判定方法１を用いる場合の例について説明する。制御回路１２２は、上位ページに関連するコマンドシーケンスを受信したと判定する場合（ステップＳ１０３、ＹＥＳ）、２ビットプログラム動作へ移行可能であるとしてステップＳ１０６に移行する。制御回路１２２は、当該コマンドシーケンスを受信していないと判定する場合（ステップＳ１０３、ＮＯ）、２ビットプログラム動作へ移行可能でないとしてステップＳ１０４に移行する。
【００５６】
｛判定方法２｝
次に、制御回路１２２が判定方法２を用いる場合の例について説明する。制御回路１２２は、上位ページに関連するコマンドシーケンスを受信し、且つプログラムが完了していないビット数が、所定のビット数以下であると判定する場合（ステップＳ１０３、ＹＥＳ）、２ビットプログラム動作へ移行可能であるとしてステップＳ１０６に移行する。制御回路１２２は、当該コマンドシーケンスを受信していない、若しくはプログラムが完了していないビット数が、所定のビット数よりも大きいと判定する場合（ステップＳ１０３、ＮＯ）、２ビットプログラム動作へ移行可能でないとしてステップＳ１０４に移行する。
【００５７】
｛判定方法３｝
次に、制御回路１２２が判定方法３を用いる場合の例について説明する。制御回路１２２は、上位ページに関連するコマンドシーケンスを受信し、且つプログラム動作の回数が所定値以上であると判定する場合（ステップＳ１０３、ＹＥＳ）、２ビットプログラム動作へ移行可能であるとしてステップＳ１０６に移行する。制御回路１２２は、当該コマンドシーケンスを受信していない、若しくはプログラム動作の回数が所定値に達していないと判定する場合（ステップＳ１０３、ＮＯ）、２ビットプログラム動作へ移行可能でないとしてステップＳ１０４に移行する。
【００５８】
｛判定方法４｝
次に、制御回路１２２が判定方法４を用いる場合の例について説明する。制御回路１２２は、上位ページに関連するコマンドシーケンスを受信し、プログラムが完了していないビット数が、所定のビット数以下であり、且つプログラム動作の回数が所定値以上である場合（ステップＳ１０３、ＹＥＳ）、２ビットプログラム動作へ移行可能であるとしてステップＳ１０６に移行する。制御回路１２２は、当該コマンドシーケンスを受信していない、若しくはプログラムが完了していないビット数が、所定のビット数よりも大きい、若しくはプログラムパルス印加回数が所定値に達していないと判定する場合（ステップＳ１０３、ＮＯ）、２ビットプログラム動作へ移行可能でないとしてステップＳ１０４に移行する。
【００５９】
さらに、制御回路１２２は、少なくとも方法１の判定方法を含む限り、その他の判定方法を方法１に付加してもよい。
【００６０】
［Ｓ１０４］
ステップＳ１０３において、制御回路１２２が、２ビットプログラム動作を行えないと判定する場合（ステップＳ１０３、ＮＯ）、制御回路１２２は選択ページにおける全ビットがベリファイにパスしたか否かを判定する。
【００６１】
具体的には、制御回路１２２は、ステップＳ１０２のプログラムベリファイによってデータを読み出す。そして制御回路１２２は、メモリセルトランジスタＭＴの閾値が所望の値まで上昇しているか否かを、読み出しデータに基づいて確認する。以下、所望の値まで上昇していたビット、すなわちプログラムが完了していたビットと、上昇していなかったビット、すなわちプログラムが完了していなかったビットとを識別し、制御回路１２２は、プログラムが完了していないビット数(フェイルビット数)と、設定された許容ビット数とを比較して、プログラム動作がパスしたかフェイルであるかを判定する。
【００６２】
制御回路１２２は選択ページおけるプログラムベリファイがパスしていると判定する場合（ステップＳ１０４、ＹＥＳ）、当該ページに対する書込み動作を終了する。
【００６３】
尚、ステップＳ１０３において、制御回路１２２が、上記方法２を行っている場合、ステップＳ１０４において方法２の判定結果を利用する。
【００６４】
［Ｓ１０５］
ステップＳ１０５において、制御回路１２２は、プログラム動作がフェイルしていると判定する場合は（ステップＳ１０４、ＮＯ）、プログラムのループ回数が予め設定されている最大値であるか否かを判定する。制御回路１２２は、プログラムのループ回数が最大値であると判定する場合（ステップＳ１０５、ＹＥＳ）、当該ページに対する書込み動作は終了する。
【００６５】
制御回路１２２は、プログラムのループ回数が最大値でないと判定する場合（ステップＳ１０５、ＮＯ）、例えば制御回路１２２は、プログラム電圧ＶＰＧＭ＝（ＶＰＧＭ＋ΔＶx）に更新して、ステップＳ１０１に戻る。
【００６６】
［Ｓ１０６］
ステップＳ１０３において、制御回路１２２が、２ビットプログラム動作を行えると判定する場合（ステップＳ１０３、ＹＥＳ）、制御回路１２２は、下位ページ書込みを中断し、下位ページのデータ及びアドレス、並びに上位ページのデータ及びアドレスを用いて、２ビットプログラム動作を開始する。尚、２ビットプログラム動作への移行に際し、下位ページ書込みによって、図５（ｂ）に示すような、２値の閾値分布が形成されている必要はない。
【００６７】
この際、下位ページ書込み動作時（ステップＳ１０１〜Ｓ１０５）においてステップアップしてきた下位ページプログラム用のプログラム電圧ＶＰＧＭを、２ビットプログラム用の電圧に初期化する。尚、２ビットプログラム動作において初回のプログラム印加は、電圧ＶＰＧＭ（initial for 2bit）である。また、２ビットプログラム動作においては、前記格納した第２のキャッシュ１２５ｂのデータをもとにした下位ページデータならびに第１のキャッシュ１２５ａに格納された上位ページデータをもとに書き込みを開始する。
【００６８】
［Ｓ１０７］
ステップＳ１０２と同様に、ロウデコーダ１２８は、プログラムベリファイ動作を実行する。
【００６９】
［Ｓ１０８］
ステップＳ１０４と同様にして、そして制御回路１２２は、プログラムベリファイ動作を行う。選択ページにおけるプログラムベリファイにパスすれば（ステップＳ１０８、ＹＥＳ）、当該ページに対する書込み動作は終了する。
【００７０】
［Ｓ１０９］
ステップＳ１０５と同様に、制御回路１２２は、プログラム動作がフェイルしていると判定する場合は（ステップＳ１０８、ＮＯ）、プログラムのループ回数が最大値であるか否かを判定する。制御回路１２２は、プログラムのループ回数が最大値であると判定する場合（ステップＳ１０９、ＹＥＳ）、当該ページに対する書込み動作を終了する。
【００７１】
制御回路１２２は、プログラムのループ回数が最大値でないと判定する場合（ステップＳ１０９、ＮＯ）、例えば制御回路１２２は、プログラム電圧ＶＰＧＭを（ＶＰＧＭ＋ΔＶx）に更新して、ステップＳ１０６に戻る。
【００７２】
尚、２ビットプログラム時においても、下位ページプログラム時と同様に、プログラム電圧ＶＰＧＭはΔＶxずつステップアップしているが、必ずしもこれに限らない。このことは、以下の他の実施形態でも同様である。
【００７３】
＜第１の実施形態に係るデータの書込み動作の具体例１について＞
次に、第１の実施形態に係るデータの書込み動作の具体例１につき、図７を参照して説明する。具体例１では、ステップＳ１０３において、判定方法３を採用した場合の動作について説明する。図７に示すレディ／ビジーは、図示せぬＮＡＮＤフラッシュメモリ１２０に設けられたピンの状態を示し、ＮＡＮＤフラッシュメモリの内部動作でキャッシュが占有されているか否かを示す。たとえば”Ｈ”レベルであればすくなくとも１つのキャッシュが解放されていて、たとえばデータ入力が可能であることを示す
［時刻Ｔ０］
時刻Ｔ０より、ＮＡＮＤフラッシュメモリ１２０は、メモリコントローラ１１０から、下位ページに関連するコマンドシーケンス（書込みコマンド（８０）、下位ページのアドレス、下位ページのデータ、及び書込み開始コマンド（１５））の受信を開始する。
【００７４】
［時刻Ｔ１］
時刻Ｔ１より、制御回路１２２は、第３のキャッシュ１２５ｃに、下位ページのデータの展開を開始する。時刻Ｔ１から時刻Ｔ２の間、ＮＡＮＤフラッシュメモリ１２０はビジー状態になる。
【００７５】
そして、ステップＳ１０１〜Ｓ１０５の動作が実行される。  
［時刻Ｔ２］
本具体例１の場合、制御回路１２２は、上位ページに関連するコマンドシーケンスを受信可能とし、且つ書込み動作の回数が所定の回数（ここでは、一例として３回）以上であると判定する場合、２ビットプログラム動作を開始するものとする。
【００７６】
［時刻Ｔ３］
時刻Ｔ３までに、メモリセルアレイ１３０への下位ページの書込み動作が行われている間に、上位ページに関連するコマンドシーケンスがＮＡＮＤフラッシュメモリ１２０に入力される。
【００７７】
［時刻Ｔ４］
時刻Ｔ４において、制御回路１２２は、書込み動作が３回行われた後のステップＳ１０３に係る判定において、２ビットプログラム動作への移行することができると判定するため、２ビットプログラム動作を開始する。
【００７８】
２ビットプログラム動作の際、制御回路１２２は、下位ページ書込み動作時（時刻Ｔ２〜時刻Ｔ３）においてステップアップしてきた下位ページプログラム用のプログラム電圧ＶＰＧＭ（ＶＰＧＭ（initial for lower）＋ΔＶx＋ΔＶx）を２ビットプログラム用の電圧に初期化する。尚、２ビットプログラム動作において初回のプログラム印加は、電圧ＶＰＧＭ（initial for 2bit）（電圧ＶＰＧＭ（initial for 2bit）＜ステップアップしてきた下位ページプログラム用のプログラム電圧ＶＰＧＭ）である。
【００７９】
＜第１の実施形態に係るデータの書込み動作の具体例２について＞
次に、第１の実施形態に係るデータの書込み動作の具体例２につき、図８を参照して説明する。具体例２では、ステップＳ１０３において、判定方法３を採用した場合の動作について説明する。図８に示すレディ／ビジーは、ＮＡＮＤフラッシュメモリ１２０ＮＡＮＤフラッシュメモリ１２０のレディ／ビジーを示している。  ［時刻Ｔ０］〜［時刻Ｔ２］
図７で説明した時刻Ｔ０〜時刻Ｔ２の動作と同様である。
【００８０】
［時刻Ｔ４］
時刻Ｔ４において、書込み動作が３回行われた直後のステップＳ１０３において、未だ、上位ページに関連するコマンドシーケンスがＮＡＮＤフラッシュメモリ１２０に入力されていない。そのため、制御回路１２２は、２ビットプログラム動作へ移行できないと判定し、４回目の書込み動作に移行する。
【００８１】
［時刻Ｔ５］
時刻Ｔ５において、メモリセルアレイ１３０への下位ページの書込み動作が行われている間に、上位ページに関連するコマンドシーケンスのＮＡＮＤフラッシュメモリ１２０への入力が完了する。
【００８２】
［時刻Ｔ６］
制御回路１２２は、プログラム動作が４回行われた後のステップＳ１０３に係る判定において、２ビットプログラム動作への移行することができると判定するため、２ビットプログラム動作を開始する。
【００８３】
＜第１の実施形態に係るデータの書込み動作の作用効果について＞
上述した実施形態によれば、メモリセルアレイ１３０への下位ページの書込み動作において、選択ページにおける全ビットがベリファイにパスしていなくても、所定の条件下で、２ビットプログラム動作を開始することができるメモリシステム１００を開示している。
【００８４】
より具体的には、メモリセルアレイ１３０への下位ページの書込み動作が行われている間に、制御回路１２２は、少なくとも当該下位ページと同一のワード線ＷＬに属する上位ページに関連するコマンドシーケンス（書込みコマンド、アドレス、データ、及び書込み開始コマンド）を受信したか否かを判定する。
【００８５】
そして、制御回路１２２が、少なくとも当該下位ページと同一のワード線ＷＬに属する上位ページに関連するコマンドシーケンスを受信したと判定する場合は、下位ページのデータ及びアドレス、並びに上位ページのデータ及びアドレスを用いて、２ビットプログラム動作に移行する。
【００８６】
ところで、２ビット（４値）データを、書込む動作において、１ビットずつデータを書き込む方法がある。この際、図５（ｂ）に示すように２ビットのうちのまず下位ページのデータが書き込まれ、次に図５（ｃ）に示すように上位ページのデータが書き込まれる。しかしながら、このような書込み方法場合、下位ページのデータの書込みが終了するまでは、上位ページのデータの書込みに移行できない。
【００８７】
一方で、このように、上述した実施形態に係るメモリシステム１００を用いることによって、下位ページの書込みを終了する（２値の閾値分布を形成する）前に、２ビットプログラム動作を行うので、より高速に２ビット（４値）プログラムを行うことができる。これにより、より高速に書込み動作を行うことができる高品質なメモリシステム１００を提供することができる。
【００８８】
尚、第１の実施形態によれば、制御回路１２２は、ステップＳ１０２のプログラムベリファイ後に、ステップＳ１０３の判定を行っているがこれに限らない。例えば、制御回路１２２は、ステップＳ１０３の判定は、ステップＳ１０１、Ｓ１０２と並列に実行しても良い。
【００８９】
また、制御回路１２２は、ステップＳ１０２の下位ページに関するプログラムベリファイが終わった後に、２ビットプログラム動作に移行しているが、これに限らない。例えば、制御回路１２２は、ステップＳ１０１のプログラム中、またはステップＳ１０２のプログラムベリファイ中に、２ビットプログラム動作に移行しても良い。しかしながら、ステップＳ１０２の下位ページに関するプログラムベリファイが終わった後のほうが、下位ページのプログラムベリファイ結果を把握でき、制御回路１２２は、より望ましい移行タイミングを導出することができる。
【００９０】
（第２の実施形態）
続いて、図９及び図１０を用いて、第２の実施形態に係るメモリシステム１００ついて説明する。第２の実施形態では、制御回路１２２は、所定のコマンドを受信した場合、下位ページ書込み動作を行わず、一気に上位ページ書込み動作を行う点で、第１の実施形態と異なっている。尚、第２の実施形態において、上述した第１の実施形態と略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００９１】
＜第２の実施形態に係るデータの書込み動作について＞
次に、第２の実施形態に係るデータの書込み動作につき、図９を参照して説明する。なお図９に示す処理は、主に制御回路１２２の制御によって実行される。
【００９２】
［Ｓ２０１］
制御回路１２２は、２ビットプログラム動作（フルシーケンス）に移行可能かを判定する。具体的には、制御回路１２２は、メモリコントローラ１１０から、書込み開始コマンドではなく待機コマンドを含むコマンドシーケンスを受信するか否かを判定する。
【００９３】
［Ｓ２０２］
制御回路１２２は、メモリコントローラ１１０から、待機コマンドを含まない、下位ページに関連するコマンドシーケンスを受信する場合（ステップＳ２０１、ＮＯ）、ステップＳ１０１と同様の動作を行う。
【００９４】
［Ｓ２０３］
次に、ロウデコーダ１２８は、ステップＳ１０２と同様の動作を行う。
【００９５】
［Ｓ２０４］
続いて、制御回路１２２は、ステップＳ１０４と同様の動作を行う。選択ページにおけるプログラムベリファイにパスすれば（ステップＳ２０４、ＹＥＳ）、当該ページに対する書込み動作は終了する。
【００９６】
［Ｓ２０５］
ステップＳ１０５と同様に、制御回路１２２は、選択ページにおけるプログラムベリファイにフェイルしていると判定する場合は（ステップＳ２０４、ＮＯ）、プログラムのループ回数が最大値であるか否かを判定する。制御回路１２２は、プログラムのループ回数が最大値であると判定する場合（ステップＳ２０５、ＹＥＳ）、当該ページに対する書込み動作を終了する。
【００９７】
制御回路１２２は、プログラムのループ回数が最大値でないと判定する場合（ステップＳ２０５、ＮＯ）、例えば制御回路１２２は、プログラム電圧ＶＰＧＭを（ＶＰＧＭ＋ΔＶx）に更新して、ステップＳ２０２に戻る。
【００９８】
［Ｓ２０６］
ステップＳ２０１において、制御回路１２２が、メモリコントローラ１１０から、待機コマンド（１Ａ）を含むコマンドシーケンスを受信する場合（ステップＳ２０１、ＹＥＳ）、下位ページの書込み動作は行わず、上位ページに関連するコマンドシーケンスを受信するまで待機する。
【００９９】
［Ｓ２０７］
制御回路１２２は、メモリコントローラ１１０から上位ページに関連するコマンドシーケンスを受信した場合、下位ページのデータ及びアドレス、並びに上位ページのデータ及びアドレスを用いて２ビットプログラム動作（フルシーケンス）のためのプログラム動作を開始する。尚、２ビットプログラム動作において初回のプログラム印加は、電圧ＶＰＧＭ（initial for 2bit）である。
【０１００】
［Ｓ２０８］
ステップＳ１０７と同様に、ロウデコーダ１２８は、プログラムベリファイ動作を実行する。
【０１０１】
［Ｓ２０９］
ステップＳ２０４と同様にして、そして制御回路１２２は、プログラムベリファイ動作を行う。選択ページにおけるプログラムベリファイにパスすれば（ステップＳ２０９、ＹＥＳ）、当該ページに対する書込み動作は終了する。
【０１０２】
［Ｓ２１０］
ステップＳ２０５と同様に、制御回路１２２は、選択ページにおけるプログラムベリファイにフェイルしていると判定する場合は（ステップＳ２０９、ＮＯ）、プログラムのループ回数が最大値であるか否かを判定する。制御回路１２２は、プログラムのループ回数が最大値であると判定する場合（ステップＳ２１０、ＹＥＳ）、当該ページに対する書込み動作を終了する。
【０１０３】
制御回路１２２は、プログラムのループ回数が最大値でないと判定する場合（ステップＳ２１０、ＮＯ）、例えば制御回路１２２は、プログラム電圧ＶＰＧＭを（ＶＰＧＭ＋ΔＶx）に更新して、ステップＳ２０７に戻る。
【０１０４】
＜第２の実施形態に係るデータの書込み動作の具体例について＞
次に、第２の実施形態に係るデータの書込み動作の具体例につき、図１０を参照して説明する。図１０に示すレディ／ビジーは、ＮＡＮＤフラッシュメモリ１２０のレディ／ビジーを示している。
【０１０５】
［時刻Ｔ０］
時刻Ｔ０において、ＮＡＮＤフラッシュメモリ１２０は、メモリコントローラ１１０から、下位ページに関連するコマンドシーケンスを受信する。
【０１０６】
［時刻Ｔ１］
時刻Ｔ１において、制御回路１２２は、当該コマンドシーケンスに、待機コマンド（１Ａ）が含まれていると判定する場合、下位ページの書込み動作は行わず、上位ページに関連するコマンドシーケンスを受信するまで待機する。
【０１０７】
また、制御回路１２２は、第３のキャッシュ１２５ｃに、下位ページのデータを展開する。この間、ＮＡＮＤフラッシュメモリ１２０はビジー状態になる。
【０１０８】
［時刻Ｔ２］
時刻Ｔ２において、第３のキャッシュ１２５ｃへの、下位ページのデータの展開が完了すると、ＮＡＮＤフラッシュメモリ１２０はレディ状態になる。
【０１０９】
［時刻Ｔ３］
時刻Ｔ３において、制御回路１２２は、メモリコントローラ１１０から上位ページに関連するコマンドシーケンスを受信すると、２ビットプログラム動作（フルシーケンス）を開始する。
【０１１０】
＜第２の実施形態に係るデータの書込み動作の作用効果について＞
上述した実施形態によれば、メモリコントローラ１１０は、待機コマンド（１Ａ）を用いて、ＮＡＮＤフラッシュメモリ１２０の下位ページ書込み動作を待機させている。そして、メモリコントローラ１１０は、上位ページに係るコマンドシーケンスをＮＡＮＤフラッシュメモリ１２０に入力させることにより、ＮＡＮＤフラッシュメモリ１２０に２ビットプログラム動作を行わせることができる。
【０１１１】
このように、本実施形態では、下位ページ書込みを行わず、２ビットプログラムを行うので、１ビットずつ書込み動作を行う場合に比べて、より高速に書込み動作を行うことが可能となる高品質なメモリシステム１００を提供することができる。
【０１１２】
（第３の実施形態）
続いて、図１１を用いて、第３の実施形態に係るメモリシステム１００ついて説明する。第３の実施形態では、第１の実施形態と、第２の実施形態とを組み合わせた動作を説明している。尚、第３の実施形態において、上述した第１の実施形態及び第２の実施形態と略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【０１１３】
＜第３の実施形態に係るデータの書込み動作について＞
第３の実施形態に係るデータの書込み動作につき、図１１を参照して説明する。なお図１１に示す処理は、主に制御回路１２２の制御によって実行される。
【０１１４】
［Ｓ３０１］
制御回路１２２は、ステップＳ２０１と同様に動作する。
【０１１５】
［Ｓ３０２］
制御回路１２２は、ステップＳ２０２と同様に動作する（ステップＳ３０１、ＮＯ）。
【０１１６】
［Ｓ３０３］
次に、ロウデコーダ１２８は、ステップＳ２０３と同様に動作する。
【０１１７】
［Ｓ３０４］
続いて、制御回路１２２は、ステップＳ１０３と同様に動作する。
【０１１８】
［Ｓ３０５］
更に、制御回路１２２は、ステップＳ１０４と同様に動作する（ステップＳ３０４、ＮＯ）。
【０１１９】
［Ｓ３０６］
続いて、制御回路１２２は、ステップＳ１０５と同様に動作する（ステップＳ３０５、ＮＯ）。
【０１２０】
［Ｓ３０７］
制御回路１２２は、Ｓ２０６と同様に動作する。
【０１２１】
［Ｓ３０８］
制御回路１２２は、ステップＳ１０６、またはＳ２０７と同様に動作する（ステップＳ３０４、Ｓ３０１、ＹＥＳ）。
【０１２２】
［Ｓ３０９］
ロウデコーダ１２８は、ステップＳ１０７と同様に動作する。
【０１２３】
［Ｓ３１０］
制御回路１２２は、ステップＳ１０８と同様に動作する。
【０１２４】
［Ｓ３１１］
制御回路１２２は、ステップＳ１０９と同様に動作する（ステップＳ３１０、ＮＯ）。
【０１２５】
＜第３の実施形態に係るデータの書込み動作の作用効果について＞
上述した実施形態によれば、第１の実施形態に係るデータの書込み方法と、第２の実施形態に係るデータの書込み方法とを組み合わせている。そのため、第１の実施形態及び第２の実施形態の作用効果を享受することが可能となる。
【０１２６】
（第４の実施形態）
続いて、図１１を用いて、第４の実施形態に係るメモリシステム１００ついて説明する。第４の実施形態では、下位ページ書込み動作時において、ベリファイがフェイルとなった場合において、下位ページデータを訂正する方法について説明する。尚、第４の実施形態において、上述した第１の実施形態と略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【０１２７】
＜第４の実施形態に係るデータの書込み動作について＞
次に、第４の実施形態に係るデータの書込み動作につき、図１２を参照して説明する。なお図１２に示す処理は、主に制御回路１２２の制御によって実行される。
【０１２８】
［Ｓ４０１］〜［Ｓ４０５］
ステップＳ１０１〜Ｓ１０５と同様に動作する。
【０１２９】
［Ｓ４０６］
制御回路１２２は、センスアンプ１２６を介して、下位ページ書込み動作後の現在のセル状態を検査読み出しする。検査読み出しを実施せずに、第３のキャッシュ１２５ｃに残留しているプログラムベリファイの結果を用いてもよい。  
図１３に示すように、プログラムベリファイの結果（Lower page program result）が、第３のキャッシュ１２５ｃに格納される。図１３において“Ｐ”はベリファイパスビット、“Ｆ”はベリファイフェイルビットを示している。また、下位ページデータは第２のキャッシュ１２５ｂに格納される。図１３では、bit2と、bit6の下位ページがフェイルしているものとする。
【０１３０】
［Ｓ４０７］
ここで、制御回路１２２は、下記の３通りの方法で、下位ページのフェイルを救済する。尚、ここでは、詳細に記載しないが、例えばページ単位のデータにページＥＣＣパリティが付与され、ＥＣＣ回路１１３で、演算されることにより、所定のビット数のエラーを救済することが可能である。したがって、ＮＡＮＤフラッシュメモリ１２０においては、ＥＣＣ回路１１３にデータ訂正が可能な範囲で、書き込みデータの変更や書き込み未完了ビットの放置が許容できる場合がある。ここで述べる救済とは、前記データの変更、またはプログラムベリファイの判断基準の変更のことを意味している。
【０１３１】
｛救済方法１｝
図１３において、ｂｉｔ２は下位ページデータが”０”、上位ページデータが”０”で、最終的な閾値分布到達位置は”Ｂ”レベルである。しかし、下位ページ書き込みから２ビット書込みに移行する段階、具体的にはステップＳ４０６において、閾値分布のＡ分布を超えていることが確認できれば、制御回路１２２は、ｂｉｔ２の下位ページデータを”０”データから”１”データに変更する処理を行う。これにより、当該２ビットプログラムでは、ｂｉｔ２は下位ページデータのビット不良として処理することができる。
【０１３２】
｛救済方法２｝
下位ページでプログラムベリファイがフェイルとなったビットは、書き込みが困難な不良ビットである可能性があり、このビットは上位ページ書き込みでもまたプログラムベリファイがフェイルとなる可能性がある。そこで、制御回路１２２は、２ビット書込みに移行する段階で、上位ページと下位ページのデータを変更する。具体的には図１４において、ｂｉｔ６は下位ページデータが”０”、上位ページデータが”１”で最終的な閾値分布到達位置は”Ｃ”である。ここで制御回路１２２は、ｂｉｔ６の下位ページ書き込みデータを”０”データから”１”データに変更する処理を行う。これにより、２ビット書込みではｂｉｔ６に対して非書込みとなり、以降書き込みが行われない。
【０１３３】
｛救済方法３｝
救済方法１、救済方法２では、２ビットプログラムに移行する段階で、上位または下位ページデータを変更する方法を開示した。救済方法３では、上位ページや下位ページデータを変更せずに、前記現在のセルの状態の検査読み出しの結果、もしくは第３のキャッシュ１２５ｃに残留しているプログラムベリファイの結果により、プログラムベリファイがパスしているか否かの判断基準を変更する。
【０１３４】
救済方法１、救済方法２、救済方法３は、書き込みの進捗、具体的にはフェイルビットの数や、ループ回数など複数の判断基準により、制御回路１２２が適切に判断してよい。
【０１３５】
次に、具体的な書き込みデータの処理方法について述べる。図１５において、第３のキャッシュ１２５ｃに格納されているLower Page program resultでＰは１データを、Ｆは０データを示すものとする。
【０１３６】
救済方法１では、下位ページ書き込みデータが格納されている第２キャッシュ１２５ｂと、上位ページデータが格納されている第１キャッシュ１２５ａのＯＲ演算結果を反転し、その結果にさらに第３のキャッシュ１２５ｃに格納されている下位ページのプログラムベリファイの結果の反転データをＡＮＤ演算し、演算結果を第２キャッシュ１２５ｂに格納されている下位ページ書込みデータにＯＲ演算することで達成する。
【０１３７】
これにより、下位ページ書き込み時のプログラムベリファイがフェイルしているビットを０から１データに変更し、この変更後のデータを用いて２ビット書き込みを開始する。
【０１３８】
救済方法２では、第３キャッシュ１２５ｃに格納されている下位ページプログラムベリファイの結果の反転を、下位ページの書き込みデータが格納されている第２キャッシュ１２５ｂと上位ページ書き込みデータが格納されている第１キャッシュ１２５ａそれぞれにＯＲ演算して達成する。
【０１３９】
これにより、下位ページ書き込み時のプログラムベリファイがフェイルしているビットをそれぞれ０から１データに変更して非書込みデータとし、この変更後のデータを用いて２ビット書込みを開始する。
【０１４０】
救済方法３では、図１５を参照すると、ｂｉｔ６とｂｉｔ２が下位ページの書き込みでプログラムベリファイがフェイルだったビットである。ｂｉｔ６の最終的な閾値分布到達位置は“Ｃ”であり、ｂｉｔ２の閾値分布到達位置は“Ａ”である。よって、２ビット書き込みに移行後のプログラムベリファイの判断において、具体的にはステップＳ４１０の判断において、設定された許容ビット数に、下位ページの検査読み出しの結果またはプログラムベリファイのフェイルビットの数に関係した数を加算する。
【０１４１】
より具体的には、制御回路１２２は、ステップＳ４１０の判断において、閾値分布ごとに許容ビット数を設定することがある。このような場合、制御回路１２２は、Ａの閾値分布については設定された許容数を使用する。制御回路１２２は、Ｂの閾値分布については、設定された許容数に下位ビットのフェイルビットの数に関係してここでは１を加算した許容数を設定する。制御回路１２２は、Ｃの閾値分布については、設定された許容数に下位ビットのフェイルビット数に関係してここでは１を加算した許容数を設定する。
【０１４２】
制御回路１２２は、閾値分布ごとではなく、２ビット書込み全体で許容ビット数を設定することがある。このような場合、制御回路１２２は、下位ページ書き込みのフェイルビット数に関係して、設定された許容数に２を加算した許容数を設定する。
【０１４３】
上記設定された許容数とは、回路で設定された値や、既知のフューズに記録された値である。
【０１４４】
［Ｓ４０８］〜［Ｓ４１０］
ステップＳ１０６〜Ｓ１０８と同様の動作を行う。
【０１４５】
［Ｓ４１１］
ステップＳ１０９と同様の動作を行い、ループ回数が最大値では無い場合は、ステップＳ４０７に戻る。
【０１４６】
＜第４の実施形態に係るデータの書込み動作の作用効果について＞
上述した実施形態によれば、フェイルとなった下位ページに関連する上位ページの書込み状態によって、処置する方法を変えている。
【０１４７】
ところで、このＥＣＣ回路１１３による救済は限度が有り、フェイルビット数がページＥＣＣパリティにより救済可能なビット数を超える場合、救済することはできない。
【０１４８】
しかしながら、上述した実施形態によれば、救済が必要なビット数を軽減することができる。
【０１４９】
また、予め、フェイルになる可能性のあるビットへの書込み動作を行わないため、書込み時間が長いビットへの書込み動作を、未然に回避し、システム性能、とくに書き込み性能劣化を回避することが可能となる。
【０１５０】
または、プログラムベリファイのパス、フェイルの判断基準を下位ページの書き込み結果に応じて変更することで、当該ページに適切なベリファイのパスフェイル基準を設定することによっても、書き込み性能劣化を回避することが可能である。
【０１５１】
更に、第１の実施形態と同様の効果を得ることもできるので、より高速に書込み動作をおこなうことができる高品質なメモリシステム１００を提供することができる。
【０１５２】
尚、第４の実施形態は、第２の実施形態及び第３の実施形態と組み合わせて用いる事も可能である。
【０１５３】
（変形例など）
尚、上述した各実施形態では、２値書込みから４値書込みへの移行、あるいは最初から４値書込みをする方法について説明した。しかし、これに限らず、超多値の場合、例えば２値書込みから８値書込み、４値書込みから８値書込み、または最初から８値書込みを行う場合なども同様の方法を使用することができる。換言すると、メモリセルトランジスタＭＴが２ビット以上のデータを保持可能な場合でも、上述する各実施形態を適用することが可能である。
【０１５４】
また、上述した各実施形態では、３次元積層構造のＮＡＮＤフラッシュメモリについて説明したが、必ずしもこれに限らず、電荷蓄積層に絶縁膜を用いる平面ＮＡＮＤフラッシュメモリであっても適用可能である。
【０１５５】
また、上述した各実施形態では、データラッチ回路１２５は、３つのキャッシュを備えているが、これに限らず、少なくとも２つ以上のキャッシュを備えていれば良い。
【０１５６】
なお、本発明に関する各実施形態において、
（１）読み出し動作では、
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の間にしてもよい。
【０１６８】
（４）メモリセルの構造は、
半導体基板（シリコン基板）上に膜厚が４〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が２〜３ｎｍのＳｉＮ、またはＳｉＯＮなどの絶縁膜と膜厚が３〜８ｎｍのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはＲｕなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が３〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と膜厚が３〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜に挟まれた膜厚が４〜１０ｎｍのシリコン酸化膜を有している。Ｈｉｇｈ−ｋ膜はＨｆＯなどが挙げられる。また、シリコン酸化膜の膜厚はＨｉｇｈ−ｋ膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が３〜１０ｎｍの仕事関数調整用の材料を介して膜厚が３０ｎｍ〜７０ｎｍの制御電極が形成されている。ここで仕事関数調整用の材料はＴａＯなどの金属酸化膜、ＴａＮなどの金属窒化膜である。制御電極にはＷなどを用いることができる。
【０１６９】
また、メモリセル間にはエアギャップを形成することができる。
【０１７０】
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内において種々変形して実施することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示された構成要件を適宜組み合わせることによって種々の発明が抽出される。例えば、開示された構成要件からいくつかの構成要件が削除されても、所定の効果が得られるものであれば、発明として抽出され得る。
【符号の説明】
【０１７１】
１００…メモリシステム、    １１０…メモリコントローラ、  
１１１…ホストインタフェース、    １１２…ＲＡＭ、    １１３…ＥＣＣ回路
１１４…ＣＰＵ、    １１５…ＲＯＭ、    １１６…フラッシュメモリインタフェース
１２０…ＮＡＮＤフラッシュメモリ、    １２１…入出力バッファ
１２２…制御回路、    １２３…カラムデコーダ    １２４…フェイルビットカウンタ回路
１２５…データラッチ回路、    １２５ａ…第１のキャッシュ
１２５ｂ…第２のキャッシュ、    １２５ｃ…第３のキャッシュ
１２６…センスアンプ、    １２７…ロウアドレスバッファ、    １２８…ロウデコーダ
１３０…メモリセルアレイ、    １３１…ＮＡＮＤストリング、  
２００…ホストデバイス。
【図１】
2015212992.tif 000003
【図２】
2015212992.tif 000004
【図３】
2015212992.tif 000005
【図４】
2015212992.tif 000006
【図５】
2015212992.tif 000007
【図６】
2015212992.tif 000008
【図７】
2015212992.tif 000009
【図８】
2015212992.tif 000010
【図９】
2015212992.tif 000011
【図１０】
2015212992.tif 000012
【図１１】
2015212992.tif 000013
【図１２】
2015212992.tif 000014
【図１３】
2015212992.tif 000015
【図１４】
2015212992.tif 000016
【図１５】
2015212992.tif 000017