(57)【特許請求の範囲】
【請求項１】
ロウ及びカラムに関連付けられた複数のメモリセルを含む半導体記憶装置と、
前記半導体記憶装置に対して、第１モード及び第２モードのいずれかのモードでデータを書き込むコントローラと
を具備し、前記第１モードでは、いずれかのロウアドレスにつき、アドレスの連続する第１カラム及び第２カラムを含み、全カラムの一部である第１カラム群に対応するメモリセルに、第１電圧をベリファイ電圧として用いてデータが書き込まれ、アドレスが連続する第３カラム及び第４カラムを含み、前記第１カラム群と異なる第２カラム群に対応するメモリセルは書き込み禁止とされ、
前記第２モードでは、前記第１電圧と異なる第２電圧をベリファイ電圧に用いて、前記第２カラム群に対応するメモリセル、及び前記第１カラム群に対応するメモリセルのうち、閾値が前記第１電圧と第２電圧との間であるメモリセルにデータが書き込まれ、残りは書き込み禁止とされる、メモリシステム。
【請求項２】
前記第２電圧は前記第１電圧よりも大きい、請求項１記載のメモリシステム。
【請求項３】
前記コントローラは、更に第３モードでデータを書き込み可能であり、該第３モードでは、いずれかのロウアドレスにつき、全カラムに対応するメモリセルにデータが書き込まれる、請求項１記載のメモリシステム。
【請求項４】
前記コントローラは、前記第１モードまたは第２モードを選択した際には第１コマンドを前記半導体記憶装置へ発行し、前記第３モードを選択した際には、前記第１コマンドと異なる第２コマンドを前記半導体記憶装置へ発行する、請求項３記載のメモリシステム。
【請求項５】
前記コントローラは、前記第１コマンドに引き続き、いずれのカラム群を選択したかを示す情報を前記半導体記憶装置へ発行する、請求項４記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
メモリセルが三次元に配列されたＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２５８２８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作信頼性を向上出来るメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
本実施形態のメモリシステムは、ロウ及びカラムに関連付けられた複数のメモリセルを含む半導体記憶装置と、半導体記憶装置に対して、第１モード及び第２モードのいずれかのモードでデータを書き込むコントローラとを具備する。第１モードでは、いずれかのロウアドレスにつき、アドレスの連続する第１カラム及び第２カラムを含み、全カラムの一部である第１カラム群に対応するメモリセルに対応するメモリセルに、第１電圧をベリファイ電圧として用いてデータが書き込まれ、アドレスが連続する第３カラム及び第４カラムを含み、第１カラム群と異なる第２カラム群に対応するメモリセルは書き込み禁止とされる。第２モードでは、前記第１電圧と異なる第２電圧をベリファイ電圧に用いて、第２カラム群に対応するメモリセル、及び前記第１カラム群に対応するメモリセルのうち、閾値が前記第１電圧と第２電圧との間であるメモリセルにデータが書き込まれ、残りは書き込み禁止とされる。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るメモリシステムのブロック図である。
【図２】図２は、第１実施形態に係る半導体記憶装置の備えるブロックの回路図である。
【図３】図３は、第１実施形態に係る半導体記憶装置の備えるブロックの断面図である。
【図４】図４は、第１実施形態に係る半導体記憶装置におけるページの概念図である。
【図５】図５は、第１実施形態に係る半導体記憶装置の備える条件テーブルの概念図である。
【図６】図６は、第１実施形態に係るコントローラの動作を示すフローチャートである。
【図７】図７は、第１実施形態に係るメモリシステムのコマンドシーケンスを示すタイミングチャートである。
【図８】図８は、第１実施形態に係るメモリシステムのコマンドシーケンスを示すタイミングチャートである。
【図９】図９は、第１実施形態に係るメモリシステムのコマンドシーケンスを示すタイミングチャートである。
【図１０】図１０は、第１実施形態に係る半導体記憶装置の動作を示すフローチャートである。
【図１１】図１１は、第１実施形態に係る半導体記憶装置で実行されるプリベリファイの概念図である。
【図１２】図１２は、第１実施形態に係る半導体記憶装置の書き込み動作時における各種信号の電圧変化を示すタイミングチャートである。
【図１３】図１３は、第１実施形態に係る半導体記憶装置の書き込み動作時における各種信号の電圧変化を示すタイミングチャートである。
【図１４】図１４は、第１実施形態に係る半導体記憶装置の模式図である。
【図１５】図１５は、第１実施形態に係る半導体記憶装置の模式図である。
【図１６】図１６は、第１実施形態に係る半導体記憶装置の模式図である。
【図１７】図１７は、第１実施形態に係る半導体記憶装置における各ゾーンに対応するメモリセルの閾値分布の変化を示す模式図である。
【図１８】図１８は、第１実施形態に係る半導体記憶装置のワード線電圧の変化を示すタイミングチャートである。
【図１９】図１９は、第２実施形態に係る半導体記憶装置におけるページの概念図である。
【図２０】図２０は、第２実施形態に係る半導体記憶装置の備える条件テーブルの概念図である。
【図２１】図２１は、第２実施形態に係るコントローラの動作を示すフローチャートである。
【図２２】図２２は、第２実施形態に係るメモリシステムのコマンドシーケンスを示すタイミングチャートである。
【図２３】図２３は、第２実施形態に係る半導体記憶装置の動作を示すフローチャートである。
【図２４】図２４は、第３実施形態に係るメモリシステムのコマンドシーケンスを示すタイミングチャートである。
【図２５】図２５は、第３実施形態に係る半導体記憶装置の動作を示すフローチャートである。
【図２６】図２６は、第１乃至第３実施形態の変形例に係る半導体記憶装置における各ゾーンに対応するメモリセルの閾値分布の変化を示す模式図である。
【図２７】図２７は、第１乃至第３実施形態の変形例に係る半導体記憶装置における各ゾーンに対応するメモリセルの閾値分布の変化を示す模式図である。
【図２８】図２８は、第１乃至第３実施形態の変形例に係る半導体記憶装置における各ゾーンに対応するメモリセルの閾値分布の変化を示す模式図である。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【０００８】
１．第１実施形態  
第１実施形態に係るメモリシステムについて説明する。以下では半導体記憶装置として、メモリセルが半導体基板の上方に三次元に積層された三次元積層型ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【０００９】
１．１  構成について  
１．１．１  メモリシステムの全体構成について  
まず、本実施形態に係るメモリシステムの大まかな全体構成について、図１を用いて説明する。
【００１０】
図示するようにメモリシステム１は、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とを備えている。ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とは、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００１１】
ＮＡＮＤ型フラッシュメモリ１００は複数のメモリセルを備え、データを不揮発に記憶する。コントローラ２００は、ＮＡＮＤバスによってＮＡＮＤ型フラッシュメモリ１００に接続され、ホストバスによってホスト機器３００に接続される。そしてコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００を制御し、またホスト機器３００から受信した命令に応答して、ＮＡＮＤ型フラッシュメモリ１００にアクセスする。ホスト機器３００は、例えばデジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばＳＤＴＭインターフェースに従ったバスである。
【００１２】
ＮＡＮＤバスは、ＮＡＮＤインターフェースに従った信号の送受信を行う。この信号の具体例は、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ、ライトイネーブル信号ＷＥｎ、リードイネーブル信号ＲＥｎ、レディ・ビジー信号ＲＢｎ、及び入出力信号Ｉ／Ｏである。
【００１３】
信号ＣＬＥ及びＡＬＥは、ＮＡＮＤ型フラッシュメモリ１００への入力信号Ｉ／Ｏがそれぞれコマンド及びアドレスであることをＮＡＮＤ型フラッシュメモリ１００に通知する信号である。信号ＷＥｎはlowレベルでアサートされ、入力信号Ｉ／ＯをＮＡＮＤ型フラッシュメモリ１００に取り込ませるための信号である。信号ＲＥｎもlowレベルでアサートされ、ＮＡＮＤ型フラッシュメモリ１００から出力信号Ｉ／Ｏを読み出すための信号である。レディ・ビジー信号ＲＢｎは、ＮＡＮＤ型フラッシュメモリ１００がレディ状態（コントローラ２００からの命令を受信出来る状態）であるか、それともビジー状態（コントローラ２００からの命令を受信出来ない状態）であるかを示す信号であり、lowレベルがビジー状態を示す。入出力信号Ｉ／Ｏは、例えば８ビットの信号である。そして入出力信号Ｉ／Ｏは、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００との間で送受信されるデータの実体であり、コマンド、アドレス、書き込みデータ、読み出しデータ、及びＮＡＮＤ型フラッシュメモリ１００のステータス情報等である。
【００１４】
１．１．２  コントローラ２００の構成について  
引き続き図１を用いて、コントローラ２００の構成の詳細について説明する。図１に示すようにコントローラ２００は、ホストインターフェース回路２１０、内蔵メモリ（ＲＡＭ）２２０、プロセッサ（ＣＰＵ）２３０、バッファメモリ２４０、及びＮＡＮＤインターフェース回路２５０を備えている。
【００１５】
ホストインターフェース回路２１０は、ホストバスを介してホスト機器３００と接続され、ホスト機器３００から受信した命令及びデータを、それぞれプロセッサ２３０及びバッファメモリ２４０に転送する。またプロセッサ２３０の命令に応答して、バッファメモリ２４０内のデータをホスト機器３００へ転送する。
【００１６】
プロセッサ２３０は、コントローラ２００全体の動作を制御する。例えばプロセッサ２３０は、ホスト機器３００から書き込み命令を受信した際には、それに応答して、ＮＡＮＤインターフェース回路２５０に対して書き込み命令を発行する。読み出し及び消去の際も同様である。またプロセッサ２３０は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。
【００１７】
ＮＡＮＤインターフェース回路２５０は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続され、ＮＡＮＤ型フラッシュメモリ１００との通信を司る。そしてＮＡＮＤインターフェース回路２５０は、プロセッサ２３０から受信した命令に基づき、信号ＡＬＥ、ＣＬＥ、ＷＥｎ、及びＲＥｎをＮＡＮＤ型フラッシュメモリ１００へ出力する。また書き込み時には、プロセッサ２３０で発行された書き込みコマンド、及びバッファメモリ２４０内の書き込みデータを、入出力信号Ｉ／ＯとしてＮＡＮＤ型フラッシュメモリ１００へ転送する。更に読み出し時には、プロセッサ２３０で発行された読み出しコマンドを、入出力信号Ｉ／ＯとしてＮＡＮＤ型フラッシュメモリ１００へ転送し、更にＮＡＮＤ型フラッシュメモリ１００から読み出されたデータを入出力信号Ｉ／Ｏとして受信し、これをバッファメモリ２４０へ転送する。
【００１８】
バッファメモリ２４０は、書き込みデータや読み出しデータを一時的に保持する。
【００１９】
内蔵メモリ２２０は、例えばＤＲＡＭ等の半導体メモリであり、プロセッサ２３０の作業領域として使用される。そして内蔵メモリ２２０は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、各種の管理テーブル等を保持する。
【００２０】
１．１．３  ＮＡＮＤ型フラッシュメモリ１００の構成について  
１．１．３．１  ＮＡＮＤ型フラッシュメモリ１００の全体構成について  
次に、ＮＡＮＤ型フラッシュメモリ１００の構成について説明する。図１に示すようにＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１０、ロウデコーダ１２０（１２０−０〜１２０−３）、センスアンプ１３０、カラムセレクタ１４０、カラムデコーダ１５０、アドレスレジスタ１６０、コマンドレジスタ１７０、及びシーケンサ１８０を備える。
【００２１】
コマンドレジスタ１７０は、コントローラ２００から受信したコマンドＣＭＤを一時的に保持する。
【００２２】
アドレスレジスタ１６０は、コントローラ２００から受信したアドレスＡＤＤを一時的に保持する。そして、ロウアドレスＲＡをロウデコーダ１２０に転送し、カラムアドレスＣＡをカラムデコーダ１５０に転送する。
【００２３】
メモリセルアレイ１１０は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルの集合体である例えば４つのブロックＢＬＫ（ＢＬＫ０〜ＢＬＫ３）を備えている。そしてメモリセルアレイ１１０は、コントローラ２００から与えられたデータを記憶する。
【００２４】
ロウデコーダ１２０−０〜１２０−３は、ブロックＢＬＫ０〜ＢＬＫ３にそれぞれ対応付けて設けられ、アドレスレジスタ１６０から受信したロウアドレスＲＡをデコードする。そして、ロウアドレスＲＡのデコード結果に基づき、対応するブロックＢＬＫ０〜ＢＬＫ３にそれぞれ電圧を出力する。
【００２５】
カラムデコーダ１５０は、アドレスレジスタ１６０から受信したカラムアドレスＣＡをデコードする。そしてカラムデコーダ１５０におけるカラムアドレスＣＡのデコード結果に基づき、カラムセレクタ１４０が、対応するカラムを選択する。
【００２６】
センスアンプ１３０は、データの読み出し時には、メモリセルアレイ１１０から読み出されたデータをセンスする。そして、カラムセレクタ１４０で選択されたカラムに対応するデータＤＡＴをコントローラ２００に出力する。データの書き込み時には、コントローラ２００から受信した書き込みデータＤＡＴを、メモリセルアレイ１１０において、カラムセレクタ１４０で選択されたカラムに対応する領域に転送する。
【００２７】
シーケンサ１８０は、コマンドレジスタ１７０に保持されたコマンドＣＭＤに基づき、ＮＡＮＤ型フラッシュメモリ１００全体の動作を制御する。
【００２８】
１．１．３．２  ブロックＢＬＫの構成について  
次に、上記ブロックＢＬＫの構成について図２を用いて説明する。図示するように、ブロックＢＬＫは例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数のＮＡＮＤストリング１０を含む。
【００２９】
ＮＡＮＤストリング１０の各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）及び選択トランジスタＳＴ１、ＳＴ２を含んでいる。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そしてメモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。
【００３０】
ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に接続される。これに対してストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ２のゲートは、例えばセレクトゲート線ＳＧＳに共通接続される。もちろん、ストリングユニット毎に異なるセレクトゲート線ＳＧＳ０〜ＳＧＳ３に接続されても良い。また、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続される。
【００３１】
また、メモリセルアレイ１１０内において同一列にあるＮＡＮＤストリング１０の選択トランジスタＳＴ１のドレインは、ビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１）、但し（Ｌ−１）は２以上の自然数）に共通接続される。すなわちビット線ＢＬは、複数のブロックＢＬＫ間でＮＡＮＤストリング１０を共通に接続する。更に、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通に接続されている。
【００３２】
つまりストリングユニットＳＵは、異なるビット線ＢＬに接続され、且つ同一のセレクトゲート線ＳＧＤに接続されたＮＡＮＤストリング１０の集合体である。またブロックＢＬＫは、ワード線ＷＬを共通にする複数のストリングユニットＳＵの集合体である。そしてメモリセルアレイ１１０は、ビット線ＢＬを共通にする複数のブロックＢＬＫの集合体である。
【００３３】
図３は、ブロックＢＬＫの一部領域の断面図である。図示するように、ｐ型ウェル領域２０上に、複数のＮＡＮＤストリング１０が形成されている。すなわち、ウェル領域２０上には、セレクトゲート線ＳＧＳとして機能する例えば４層の配線層２７、ワード線ＷＬ０〜ＷＬ７として機能する８層の配線層２３、及びセレクトゲート線ＳＧＤとして機能する例えば４層の配線層２５が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が形成されている。
【００３４】
そして、これらの配線層２５、２３、２７を貫通してウェル領域２０に達するピラー状の導電体３１が形成されている。導電体３１の側面には、ゲート絶縁膜３０、電荷蓄積層（絶縁膜）２９、及びブロック絶縁膜２８が順次形成され、これらによってメモリセルトランジスタＭＴ、並びに選択トランジスタＳＴ１及びＳＴ２が形成されている。導電体３１は、ＮＡＮＤストリング１０の電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして導電体３１の上端は、ビット線ＢＬとして機能する金属配線層３２に接続される。
【００３５】
ウェル領域２０の表面領域内には、ｎ＋型不純物拡散層３３が形成されている。拡散層３３上にはコンタクトプラグ３５が形成され、コンタクトプラグ３５は、ソース線ＳＬとして機能する金属配線層３６に接続される。更に、ウェル領域２０の表面領域内には、ｐ＋型不純物拡散層３４が形成されている。拡散層３４上にはコンタクトプラグ３７が形成され、コンタクトプラグ３７は、ウェル配線ＣＰＷＥＬＬとして機能する金属配線層３８に接続される。ウェル配線ＣＰＷＥＬＬは、ウェル領域２０を介して導電体３１に電位を印加するための配線である。
【００３６】
以上の構成が、図３を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のＮＡＮＤストリング１０の集合によってストリングユニットＳＵが形成される。
【００３７】
またデータの消去は、ブロックＢＬＫ単位、またはブロックＢＬＫよりも小さい単位で行うことが出来る。消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という２０１１年９月１８日に出願された米国特許出願１３／２３５，３８９号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という２０１０年１月２７日に出願された米国特許出願１２／６９４，６９０号に記載されている。更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という２０１２年５月３０日に出願された米国特許出願１３／４８３，６１０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００３８】
更に、メモリセルアレイ１１０の構成についてはその他の構成であっても良い。すなわちメモリセルアレイ１１０の構成については、例えば、“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００３９】
１．１．３．３  ブロックＢＬＫの種類とデータの書き込み単位について  
次に、上記ブロックＢＬＫの種類とデータの書き込み単位について説明する。
【００４０】
本実施形態に係るブロックＢＬＫは、ＭＬＣ（Multi-level cell）用ブロック、ＳＬＣ（Single-level cell）用ブロック、及び４ＰＰＰ（Partial page program）用ブロックの３種類のうちのいずれかの種類を取り得る。
【００４１】
＜ＭＬＣ用ブロック及びＳＬＣ用ブロックについて＞  
ＭＬＣ用ブロック及びＳＬＣ用ブロックでは、データの書き込みは、いずれかのストリングユニットＳＵにおけるいずれかのワード線ＷＬに接続されたメモリセルトランジスタＭＴに対して、一括して行われる。この単位を「ページ」と呼ぶ。
【００４２】
そしてＳＬＣ用ブロックは、１つのメモリセルトランジスタＭＴが１ビットのデータを保持可能なブロックである。これに対してＭＬＣ用ブロックでは、１つのメモリセルトランジスタＭＴが２ビット以上のデータを保持可能である。例えば２ビットデータを保持する場合を例に挙げると、データの書き込みは、２ビットデータのうちの下位ビット毎（下位ページ）、及び上位ビット毎（上位ページ）に行われる。従って、ＭＬＣ用ブロックのページ数は、ＳＬＣ用ブロックのページ数の２倍となる。
【００４３】
＜４ＰＰＰ用ブロックについて＞  
４ＰＰＰ用ブロックは、１ページの１／４のサイズのデータ単位で書き込みが行われるブロックである。図４は、４ＰＰＰ用ブロックにおける１ページデータと、データ位置に対応するカラムアドレスとの関係を示す模式図である。
【００４４】
なお、センスアンプ１３０は１ページ分のデータを保持可能なページバッファを備えており、書き込み時には、ページバッファに格納されたページサイズのデータの各ビットがビット線ＢＬに与えられる。従って図４は、このページバッファの模式図と言うことも出来る。また以下では、ページサイズが１６Ｋバイトである場合を例に説明する。
【００４５】
図４に示すように、４ＰＰＰ用ブロックにおいて１ページは、４つのゾーンＺＮ（ＺＮ０〜ＺＮ３）を含む。そして各ゾーンＺＮは、１６ＫＢの１／４である４ＫＢのサイズを有する。
【００４６】
メモリセルアレイ１１０において、ビット線ＢＬは「カラム」なる単位によって指定され、１つのカラムは例えば８本のビット線ＢＬを含む。例えばカラムアドレスＣＡ０が割り当てられたカラムにはビット線ＢＬ０〜ＢＬ７が対応し、カラムアドレスＣＡ１が割り当てられたカラムにはビット線ＢＬ８〜ＢＬ１５が対応する。
【００４７】
先頭ゾーンＺＮ０は、その先頭アドレスがＣＡ０であり、最終アドレスがＣＡ４０９５（ＣＡ（４Ｋ−１））である。次のゾーンＺＮ１は、その先頭アドレスがＣＡ４０９６（ＣＡ４Ｋ）であり、最終アドレスがＣＡ８１９１（ＣＡ（８Ｋ−１））である。次のゾーンＺＮ２は、その先頭アドレスがＣＡ８１９２（ＣＡ８Ｋ）であり、最終アドレスがＣＡ１２２８７（ＣＡ（１２Ｋ−１））である。そして最終ゾーンＺＮ３は、その先頭アドレスがＣＡ１２２８８（ＣＡ１２Ｋ）であり、最終アドレスがＣＡ１６３８３（ＣＡ（１６Ｋ−１））である。
【００４８】
そして４ＰＰＰ用ブロックでは、この４ＫＢのゾーン単位でデータが書き込まれる。あるいは換言すれば、データの書き込み自体はページ単位で行われるが、実際に正味のデータが書き込まれるのは、選択されたいずれか１つのゾーンだけであり、その他の非選択ゾーンＺＮについては実質的なデータの書き込みが禁止される。
【００４９】
４ＰＰＰ用ブロックに対してデータを書き込む際には、どのゾーンＺＮが選択されるかによって、書き込み条件が異なる。図５は、各ゾーンＺＮと書き込み条件との関係を示すテーブル（以下、これを条件テーブルと呼ぶ）の概念図である。条件テーブルは、例えばいずれかのブロックＢＬＫに保持されており、例えばＮＡＮＤ型フラッシュメモリ１００に対する電源投入時に読み出され、シーケンサ１８０内の例えばレジスタに保持される。そしてシーケンサは、この条件テーブルに基づいて書き込み動作を実行する。
【００５０】
図示するように条件テーブルは、ゾーン毎に、プログラムベリファイ時に用いるベリファイ電圧ＶＣＧ＿Ｚ、プログラム時に用いるプログラム電圧ＶＰＧＭのステップアップ幅ΔＶＰＧＭ、及びプログラム前にプリベリファイを行うか否かの情報、を保持する。
【００５１】
図５の例であると、先頭ゾーンＺＮ０選択時には、プログラムベリファイ時に用いられるベリファイ電圧はＶＣＧ＿Ｚ０とされ、ステップアップ幅はΔＶＰＧＭ＿Ｚ０とされ、プリベリファイは行われない。ゾーンＺＮ１選択時には、ベリファイ電圧はＶＣＧ＿Ｚ１とされ、ステップアップ幅はΔＶＰＧＭ＿Ｚ１とされ、プリベリファイは行っても行わなくても良い。ゾーンＺＮ２選択時には、ベリファイ電圧はＶＣＧ＿Ｚ２とされ、ステップアップ幅はΔＶＰＧＭ＿Ｚ２とされ、プリベリファイは行っても行わなくても良い。最終ゾーンＺＮ３選択時には、ベリファイ電圧はＶＣＧ＿Ｚ３とされ、ステップアップ幅はΔＶＰＧＭ＿Ｚ３とされ、プリベリファイが行われる。
【００５２】
なお、ベリファイレベルＶＣＧ＿Ｚには下記の関係がある。すなわち、  
ＶＣＧ＿Ｚ０≦ＶＣＧ＿Ｚ１≦ＶＣＧ＿Ｚ２＜ＶＣＧ＿Ｚ３
またステップアップ幅ΔＶＰＧＭには、下記の関係がある。すなわち、  
ΔＶＰＧＭ＿Ｚ０≧ΔＶＰＧＭ＿Ｚ１≧ΔＶＰＧＭ＿Ｚ２＞ΔＶＰＧＭ＿Ｚ３
プリベリファイの詳細については後述する。
【００５３】
１．２  書き込み動作について  
次に、上記構成のメモリシステム１の書き込み動作について説明する。
【００５４】
１．２．１  コントローラ２００の動作について  
まず、コントローラ２００の動作につき、図６を用いて説明する。図６の各ステップは、主にプロセッサ２３０の主導により実行される。
【００５５】
図示するようにコントローラ２００は、ホスト機器３００から書き込み命令と共に書き込みデータを受信する（ステップＳ１０）。するとプロセッサ２３０は、受信した書き込みデータをバッファメモリ２４０に保持させる（ステップＳ１１）と共に、受信した書き込みデータをすぐに不揮発化させる必要があるか否かを判断する（ステップＳ１２）。
【００５６】
すぐに不揮発化させる必要が無い場合には（ステップＳ１２、ＮＯ）、処理は終了する。この場合、コントローラ２００は、ホスト機器３００から更なる書き込み命令を受信した際や、他に処理を行っていない空き時間など、任意のタイミングでＮＡＮＤ型フラッシュメモリ１００に書き込みデータを書き込む。
【００５７】
すぐに不揮発化させる必要がある場合には（ステップＳ１２、ＹＥＳ）、プロセッサ２３０は、書き込みデータのサイズを判断する（ステップＳ１３）。データサイズが４ＫＢではない場合（ステップＳ１３、ＮＯ）、プロセッサ２３０は、データをＳＬＣモードで書くべきか否かを判断する（ステップＳ１４）。ＳＬＣモードとは、ＳＬＣ用ブロックにデータを書き込むモード、つまり１つのメモリセルトランジスタに１ビットデータを書き込むモードである。
【００５８】
ＳＬＣモードで書く必要がない場合（ステップＳ１４、ＮＯ）、プロセッサ２３０はＭＬＣモードを選択する。ＭＬＣモードとは、ＭＬＣ用ブロックにデータを書き込むモード、つまり１つのメモリセルトランジスタにマルチビットデータを書き込むモードである。そして、プロセッサ２３０の命令に応答してＮＡＮＤインターフェース回路２５０は、通常のプログラムコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する（ステップＳ１５）。引き続きプロセッサ２３０は、ＭＬＣ用ブロックに対応するページアドレス（ロウアドレス）と書き込みデータを、ＮＡＮＤインターフェース回路２５０を介してＮＡＮＤ型フラッシュメモリ１００に出力する。ページアドレスは、ＭＬＣ用ブロックにおいて直前に書き込まれたページの次のページに対応するアドレスである。
【００５９】
ＳＬＣモードで書く必要がある場合（ステップＳ１４、ＹＥＳ）、プロセッサ２３０はＳＬＣモードを選択する。そしてプロセッサ２３０の命令に応答してＮＡＮＤインターフェース回路２５０は、まずＳＬＣコマンドをＮＡＮＤ型フラッシュメモリ１００に発行し（ステップＳ１６）、引き続き通常のプログラムコマンドを発行する（ステップＳ１５）。ＳＬＣコマンドは、ＮＡＮＤ型フラッシュメモリ１００をＳＬＣモードにするためのコマンドである。引き続きプロセッサ２３０は、ＳＬＣ用ブロックＢＬＫに対応するページアドレスと書き込みデータを、ＮＡＮＤインターフェース回路２５０を介してＮＡＮＤ型フラッシュメモリ１００に出力する。ページアドレスは、ＳＬＣ用ブロックにおいて直前に書き込まれたページの次のページに対応するアドレスである。
【００６０】
ステップＳ１３においてデータサイズが４ＫＢであった場合（ステップＳ１３、ＹＥＳ）、プロセッサ２３０はＰＰＰモードを選択する。ＰＰＰモードとは、図４を用いて説明したように、ページサイズ未満のサイズであるゾーン単位でデータを書き込むモードである。そしてプロセッサ２３０の命令に応答してＮＡＮＤインターフェース回路２５０は、まずＰＰＰコマンドをＮＡＮＤ型フラッシュメモリ１００に発行し（ステップＳ１７）、引き続きＳＬＣコマンド及び通常のプログラムコマンドを順次発行する（ステップＳ１６、Ｓ１５）。更にプロセッサ２３０は、ＰＰＰ用ブロックに対応するページアドレス及び選択されたゾーンに対応するカラムアドレスと書き込みデータを、ＮＡＮＤインターフェース回路２５０を介してＮＡＮＤ型フラッシュメモリ１００に出力する。ページアドレスは、ＰＰＰ用ブロックにおいて直前に書き込まれたページの次のページに対応するアドレスである。またカラムアドレスは、ＰＰＰ用ブロックにおいて直前に書き込まれたゾーンＺＮｉの次のゾーンＺＮ（ｉ＋１）に対応するアドレスである（ｉは自然数であり、図４の例であると０、１、２、３のいずれか）。例えば図４においてゾーンＺＮ０及びＺＮ１のデータが書き込まれていれば、次のゾーンＺＮ２の先頭カラムアドレスに対応するＣＡ８１９２が発行される。
【００６１】
次に、コントローラ２００とＮＡＮＤ型フラッシュメモリ１００との間のコマンドシーケンスについて説明する。
【００６２】
＜ＭＬＣモードについて＞  
まず、ＭＬＣモード時におけるコマンドシーケンスについて、図７を用いて説明する。図示するようにコントローラ２００は、まず通常の書き込みコマンド“８０Ｈ”を発行する（図６のステップＳ１５に相当）と共に、信号ＣＬＥをアサート（“Ｈ”レベル）する。引き続きコントローラ２００は、例えば５サイクルにわたってアドレス（ＣＡ：カラムアドレス、ＲＡ：ロウアドレス）を発行すると共に、信号ＡＬＥをアサート（“Ｈ”レベル）する。これらのコマンド及びアドレスは例えばレジスタ１７０及び１６０にそれぞれ格納される。そしてシーケンサ１８０は、レジスタ１７０にＰＰＰコマンド及びＳＬＣコマンドが保持されることなく、通常の書き込みコマンド“８０Ｈ”が保持されたことに応答して、ＭＬＣモードによる書き込みアクセスを受信したことを認識する。
【００６３】
次にコントローラ２００は、複数サイクルにわたって書き込みデータＤinを出力する。この間、信号ＡＬＥ及びＣＬＥはネゲート（“Ｌ”レベル）される。ＮＡＮＤ型フラッシュメモリ１００で受信された書き込みデータＤinは、センスアンプ１３０内のページバッファに保持される。
【００６４】
次にコントローラ２００は、書き込みコマンド“１０Ｈ”を発行すると共に、ＣＬＥをアサートする。コマンド“１０ｈ”がレジスタ１７０に格納されたことに応答して、シーケンサ１８０は書き込み動作を開始し、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となる（ＲＢｎ＝“Ｌ”）。なおコントローラ２００は、コマンド、アドレス、及びデータ等の信号を発行する度に、ＷＥｎをアサート（“Ｌ”レベル）する。そして、ＷＥｎがトグルされる度に、信号がＮＡＮＤ型フラッシュメモリ１００に取り込まれる。
【００６５】
＜通常のＳＬＣモードについて＞  
次に、通常のＳＬＣモード時におけるコマンドシーケンスについて、図８を用いて説明する。図示するように、図７で説明したＭＬＣモードと異なる点は、コントローラ２００が、まずＳＬＣコマンド“Ａ２Ｈ”を発行する点である（図６のステップＳ１６に相当）。その後、コントローラ２００は通常の書き込みコマンド“８０Ｈ”を発行する。シーケンサ１８０は、ＰＰＰコマンドが保持されることなくＳＬＣコマンド“Ａ２Ｈ”及び通常の書き込みコマンド“８０Ｈ”がレジスタ１７０に保持されたことにより、通常のＳＬＣモードによる書き込みアクセスを受信したことを認識する。
【００６６】
＜ＰＰＰモードについて＞  
次に、ＰＰＰモード時におけるコマンドシーケンスにつき、図９を用いて説明する。図示するように、図８で説明した通常のＳＬＣモードと異なる点は、コントローラ２００が、ＳＬＣコマンド“Ａ２Ｈ”の前にＰＰＰコマンド“ＸＨ”を発行する点である（図６のステップＳ１７に相当）。その後、コントローラ２００はＳＬＣコマンド“Ａ２Ｈ”及び通常の書き込みコマンド“８０Ｈ”を発行する。シーケンサ１８０は、レジスタ１７０に、ＰＰＰコマンド“ＸＨ”、ＳＬＣコマンド“Ａ２Ｈ”、及び通常の書き込みコマンド“８０Ｈ”が保持されたことにより、ＰＰＰモードによる書き込みアクセスを受信したことを認識する。
【００６７】
１．２．２  ＮＡＮＤ型フラッシュメモリ１００の動作について  
次に、ＮＡＮＤ型フラッシュメモリ１００の動作につき、図１０を用いて説明する。図１０の処理は、コマンド“１０Ｈ”がコマンドレジスタ１７０に格納されたことに応答して開始され、主にシーケンサ１８０が主導することにより実行される。
【００６８】
コントローラ２００から受信したコマンドはコマンドレジスタ１７０に保持され、アドレスはアドレスレジスタ１６０に保持される。コマンドレジスタ１７０においてＰＰＰコマンドが保持されておらず（ステップＳ２０、ＮＯ）、且つＳＬＣコマンドが保持されていなければ（ステップＳ２１、ＮＯ）、シーケンサ１８０はＭＬＣモードでプログラムを実行する（ステップＳ２２）。すなわち、通常のプログラムコマンド“８０Ｈ”のみが与えられた場合には、データはＭＬＣ用ブロックにページ単位で書き込まれる。
【００６９】
コマンドレジスタ１７０においてＰＰＰコマンドは保持されていないが（ステップＳ２０、ＮＯ）、ＳＬＣコマンドは保持されている場合には（ステップＳ２１、ＹＥＳ）、シーケンサ１８０は、通常のＳＬＣモードでプログラムを実行する（ステップＳ２３）。すなわち、ＳＬＣコマンド“Ａ２Ｈ”及び通常のプログラムコマンド“８０Ｈ”が与えられている場合には、データはＳＬＣ用ブロックにページ単位で書き込まれる。
【００７０】
コマンドレジスタ１７０においてＰＰＰコマンド“ＸＨ”が保持されている場合（ステップＳ２０）、シーケンサ１８０はＰＰＰモードでプログラムを実行する。カラムデコーダ１５０は、アドレスレジスタ１６０から与えられるカラムアドレスＣＡをデコードする。そして、カラムアドレスＣＡがＣＡ１２Ｋ以上であった場合（ステップＳ２４、ＹＥＳ）、カラムセレクタ１４０がゾーンＺＮ３を選択する（ステップＳ２５）。その結果、センスアンプ１３０におけるページバッファのゾーンＺＮ３に対応する領域に、コントローラ２００から受信した書き込みデータが格納される。引き続き、シーケンサ１８０はプリベリファイを行い（ステップＳ２６）、プリベリファイの結果に基づいて、ＰＰＰモードによる書き込みを行う（ステップＳ２７）。
【００７１】
ステップＳ２６のプリベリファイ及びステップＳ２７のＰＰＰモードによる書き込みにつき、図１１を用いて説明する。図１１は、ゾーンＺＮ０〜ＺＮ２に対応するメモリセルトランジスタの閾値分布と、ゾーンＺＮ３に対応するメモリセルトランジスタの閾値分布を示している。
【００７２】
図示するように、ゾーンＺＮ３が選択された時点において、当該ページにおいてゾーンＺＮ０〜ＺＮ２に対応するメモリセルトランジスタには既にデータが書き込まれている。図１１の例であると、“１”データ（消去状態）を書き込まれたメモリセルトランジスタの閾値は例えば負の値であり、“０”データを書き込まれたメモリセルトランジスタの閾値は“１”データのそれよりも高い（例えば正の値）。また、図５を用いて説明したように、ゾーンＺＮ０〜ＺＮ２に用いるベリファイ電圧ＶＣＧ＿Ｚ０、ＶＣＧ＿Ｚ１、及びＶＣＧ＿Ｚ２は、ゾーンＺＮ３に用いるベリファイ電圧ＶＣＧ＿Ｚ３よりも小さい。
【００７３】
このような状況において、ステップＳ２６のプリベリファイとは、ゾーンＺＮ０〜ＺＮ２に対応し、且つ“０”データを保持するメモリセルトランジスタのうち、閾値がＶＣＧ＿Ｚ３未満のものを特定する動作である。このようにして特定されたトランジスタの分布を、図１１では斜線を付した領域で示している。
【００７４】
またステップＳ２７の書き込みでは、当然ながらゾーンＺＮ３のデータがメモリセルトランジスタに書き込まれる。この際、ベリファイ電圧としてＶＣＧ＿Ｚ３が用いられるので、これらのメモリセルトランジスタに加えて、プリベリファイで特定されたメモリセルトランジスタについても書き込みが行われる。この結果、ゾーンＺＮ０〜ＺＮ３の全てにおいて、“０”データを保持するメモリセルトランジスタの閾値はＶＣＧ＿Ｚ３以上の値とされる。
【００７５】
図１０に戻って説明を続ける。カラムアドレスＣＡがＣＡ（４Ｋ−１）以下であった場合（ステップＳ２８、ＹＥＳ）、カラムセレクタ１４０はゾーンＺＮ０を選択する（ステップＳ２９）。その結果、センスアンプ１３０におけるページバッファのゾーンＺＮ０に対応する領域に、コントローラ２００から受信した書き込みデータが格納される。ゾーンＺＮ０が選択された場合、シーケンサ１８０は、プリベリファイを行うことなくＳＬＣモードで書き込みを行う（ステップＳ３０）。この際、ベリファイ電圧としてＶＣＧ＿Ｚ０が用いられ、またゾーンＺＮ１〜ＺＮ３に対応するメモリセルトランジスタに対する書き込みは禁止される（言い換えれば“１”データがプログラムされる）。
【００７６】
カラムアドレスＣＡがＣＡ８Ｋ以上且つＣＡ（１２Ｋ−１）以下であった場合（ステップＳ３１、ＹＥＳ）、カラムセレクタ１４０はゾーンＺＮ２を選択する（ステップＳ３２）。その結果、センスアンプ１３０におけるページバッファのゾーンＺＮ２に対応する領域に、コントローラ２００から受信した書き込みデータが格納される。ゾーンＺＮ２が選択された場合、シーケンサ１８０は、プリベリファイがイネーブルとされているか否かを確認する（ステップＳ３３）。イネーブルとされていれば（ステップＳ３３、ＹＥＳ）、プリベリファイが行われる（ステップＳ３４）。ステップＳ３４のプリベリファイで特定されるメモリセルトランジスタは、ゾーンＺＮ０及びＺＮ１において、“０”データを保持し且つ閾値がＶＣＧ＿Ｚ２未満のメモリセルトランジスタである。そして、ゾーンＺＮ２に対応するメモリセルトランジスタに対してＳＬＣモードで書き込みが実行される（ステップＳ３５）。なお、ゾーンＺＮ３に対応するメモリセルトランジスタは消去状態であるはずなので、これらのメモリセルトランジスタに対する書き込みは禁止される。ステップＳ３３でプリベリファイがイネーブルとされていれば（ステップＳ３３、ＹＥＳ）、ステップＳ３５では、ゾーンＺＮ２に対応するメモリセルトランジスタだけでなく、ステップＳ３３で特定されたメモリセルトランジスタに対しても書き込みが実行される。この結果、当該ページに対応する、“０”データを保持するメモリセルトランジスタの閾値はＶＣＧ＿Ｚ２以上の値とされる。ステップＳ３３でプリベリファイがディセーブルとされていれば（ステップＳ３３、ＮＯ）、ステップＳ３５では、ゾーンＺＮ０、ＺＮ１、及びＺＮ３に対応するメモリセルトランジスタに対する書き込みは禁止される。
【００７７】
カラムアドレスＣＡが、ＣＡ４Ｋ以上且つＣＡ（８Ｋ−１）以下であった場合（ステップＳ３１、ＮＯ）、カラムセレクタ１４０はゾーンＺＮ１を選択する（ステップＳ３６）。その結果、センスアンプ１３０におけるページバッファのゾーンＺＮ１に対応する領域に、コントローラ２００から受信した書き込みデータが格納される。そして、ゾーンＺＮ２が選択された場合と同様の処理が行われる。すなわち、まず必要に応じてプリベリファイが行われる（ステップＳ３８）。ステップＳ３８のプリベリファイで特定されるメモリセルトランジスタは、ゾーンＺＮ０において、“０”データを保持し且つ閾値がＶＣＧ＿Ｚ１未満のメモリセルトランジスタである。そして、ゾーンＺＮ１に対応するメモリセルトランジスタに対してＳＬＣモードで書き込みが実行される（ステップＳ３９）。
【００７８】
次に、上記書き込み時におけるＮＡＮＤ型フラッシュメモリ１００の動作の詳細について、図１２及び図１３を用いて説明する。
【００７９】
＜ＭＬＣモード及び通常のＳＬＣモードについて＞  
まず、ＭＬＣモード及び通常のＳＬＣモード時の動作について、図１２を用いて説明する。
【００８０】
ＭＬＣモード及び通常のＳＬＣモードでは、まずデータのプログラム動作が実行される。図示するように、時刻ｔ０においてロウデコーダ１２０は、レジスタ１６０から与えられるロウアドレスＲＡに従って、ＭＬＣ用ブロックまたはＳＬＣブロックを選択し、更に選択ブロックにおいていずれかのストリングユニットＳＵを選択する。そしてロウデコーダ１２０は、選択したストリングユニットＳＵのセレクトゲート線ＳＧＤ０に、電圧ＶＳＧＤ_progを印加する。電圧ＶＳＧＤ_progは、選択トランジスタＳＴ１をオンさせる電圧である。更にロウデコーダ１２０は、セレクトゲート線ＳＧＳ、及び非選択ストリングユニットのセレクトゲート線ＳＧＤに０Ｖを印加する。
【００８１】
またセンスアンプ１４０は、ページバッファに格納された書き込みデータに基づき、“０”データを書き込むビット線ＢＬに例えば０Ｖを印加し、“１”データを書き込むビット線ＢＬに正電圧ＶＤＤ（＞０Ｖ）を印加する（時刻ｔ１）。“０”データ書き込みは、メモリセルトランジスタＭＴの電荷蓄積層に電子を注入することによりメモリセルトランジスタＭＴの閾値電圧を上昇させ、その結果として閾値レベルをより高いレベルに遷移させる書き込み動作のことである。他方で“１”データ書き込みは、メモリセルトランジスタＭＴの電荷蓄積層への電子の注入を抑制することにより閾値レベルを維持させる書き込み動作のことである（つまり、閾値電圧はほぼ不変であり、書き込みが禁止される、と言うことも出来る）。
【００８２】
引き続き時刻ｔ２においてロウデコーダ１２０は、選択ストリングユニットＳＵのセレクトゲート線ＳＧＤに電圧ＶＳＧＤを印加する（例えば、ＶＳＧＤ_prog＞ＶＳＧＤ）。電圧ＶＳＧＤ_progは、選択トランジスタＳＴ１に対して電圧ＶＤＤの転送を可能とさせる電圧である。他方で電圧ＶＳＧＤは、選択トランジスタＳＴ１に対して０Ｖは転送可能であるが、電圧ＶＤＤは転送不能とさせる電圧である。従って、“１”データを書き込むビット線ＢＬに対応する選択トランジスタＳＴ１は、カットオフ状態となる。
【００８３】
次に、時刻ｔ３においてロウデコーダ１２０は、選択ブロックのワード線ＷＬに電圧ＶＰＡＳＳを印加する。引き続きロウデコーダ１２０は、選択ワード線ＷＬに印加される電圧をＶＰＡＳＳからＶＰＧＭに上昇させる（時刻ｔ４）。これにより、選択ストリングユニットＳＵにおいて選択ワード線ＷＬに接続されたメモリセルトランジスタＭＴにデータがページ単位で書き込まれる。なお、電圧ＶＰＡＳＳは保持データに関わらずメモリセルトランジスタＭＴをオン状態とし、且つ、“１”データ書き込みに対応するＮＡＮＤストリング１０内のチャネルの電位を容量カップリングにより十分に上昇可能な電圧である。また電圧ＶＰＧＭは、ＦＮトンネリングにより電荷蓄積層に電子を注入可能な高電圧である。
【００８４】
時刻ｔ４〜ｔ５の期間でデータがプログラムされた後、各配線は０Ｖとされる（時刻ｔ７）。
【００８５】
以上によりデータプログラムが完了すると、シーケンサ１８０はプログラムベリファイを実行する。プログラムベリファイは、時刻ｔ４〜ｔ５におけるデータプログラムによりメモリセルトランジスタが、目標とする閾値レベルまで上昇したか否かを判断する動作である。
【００８６】
すなわち、時刻ｔ８においてロウデコーダ１２０は、選択ストリングユニットＳＵにおけるセレクトゲート線ＳＧＤ及びＳＧＳに電圧ＶＳＧを印加する。電圧ＶＳＧは、選択トランジスタＳＴ１、ＳＴ２をオン状態とする電圧である。引き続きセンスアンプ１３０は、ビット線ＢＬに電圧Ｖbl（＜ＶＤＤ）を印加し、ロウデコーダ１２０は、選択ブロックの非選択ワード線ＷＬに電圧ＶＲＥＡＤを印加する。電圧ＶＲＥＡＤは、保持データに関わらずメモリセルトランジスタをオン状態にする電圧である（時刻ｔ９）。更にロウデコーダ１２０は、選択ワード線ＷＬにプログラムベリファイ電圧Ｖpvfyを印加する（時刻ｔ１０）。Ｖpvfyは、図５で説明した例えばＶＣＧ＿Ｚ３に等しく、メモリセルトランジスタにおいて最終的な目標となる閾値電圧である。
【００８７】
この結果、選択ワード線ＷＬに接続されたメモリセルトランジスタがオフ状態となれば、ビット線ＢＬにセル電流は流れず、当該ビット線ＢＬはプログラムベリファイにパスする。他方でオン状態となれば、ビット線ＢＬにセル電流が流れ、当該ビット線ＢＬはプログラムベリファイにフェイルする。
【００８８】
以降、プログラムベリファイにフェイルしたビット線ＢＬを対象として、上記プログラム及びプログラムベリファイが繰り返される。この際、プログラムを繰り返す度に、電圧ＶＰＧＭの値はΔＶＰＧＭだけステップアップされる。
【００８９】
なお、図１２の例ではプログラムベリファイ電圧Ｖpvfyは一定値とされているが、ＭＬＣモードの場合には、閾値に応じてＶpvfyもステップアップされる。
【００９０】
＜ＰＰＰモードについて＞  
次に、ＰＰＰモード時における動作について、図１３を用いて説明する。以下では、図１２で説明したＭＬＣモード及び通常のＳＬＣモードとの違いについてのみ着目して説明する。
【００９１】
ＰＰＰモードにおいてシーケンサ１８０は、まずデータプログラム前の時刻ｔ２０〜ｔ０の期間において、プリベリファイを実行する。
【００９２】
図１３に示すように、まずプログラムベリファイ時と同様に、ロウデコーダ１２０は選択ストリングユニットＳＵのセレクトゲート線ＳＧＤ及びＳＧＳに電圧ＶＳＧを印加して、選択トランジスタＳＴ１及びＳＴ２をオン状態とする（時刻ｔ２０）。引き続き時刻ｔ２１において、センスアンプ１４０がビット線ＢＬを電圧Ｖblに充電し、ロウデコーダ１２０は非選択ワード線ＷＬに電圧ＶＲＥＡＤを印加する。この状態でロウデコーダ１２０は、時刻ｔ２２において、選択ワード線ＷＬに電圧ＶＣＧＲを印加する。電圧ＶＣＧＲは、図１１で説明したように“１”データと“０”データとを判別可能な電圧であり、その値はＶＣＧ＿Ｚ０未満であり、且つ“１”データを保持するメモリセルトランジスタの取り得る閾値の最大値より大きい。
【００９３】
引き続きロウデコーダ１２０は、時刻ｔ２３において、選択ワード線ＷＬにベリファイ電圧ＶＣＧ＿Ｚを印加する。電圧ＶＣＧ＿Ｚは、図５で説明したように、ゾーン毎に設定された値である。
【００９４】
以上の結果、電圧ＶＣＧＲ印加時にはセル電流が流れず、電圧ＶＣＧ＿Ｚ印加時にはセル電流が流れるビット線が、“０”データを保持し且つその閾値がＶＣＧ未満であるメモリセルトランジスタに対応していると特定出来る（すなわち、図１１における斜線部分のメモリセルが特定される）。
【００９５】
上記プリベリファイの後、プログラムとプログラムベリファイとが繰り返される。ＰＰＰモードにおけるプログラムがＭＬＣモードや通常のＳＬＣモードと異なる点は、プリベリファイ時に特定されたビット線ＢＬも“０”データ書き込み対象となる点である。すなわち、非選択ゾーンＺＮであっても、プリベリファイで特定されたビット線ＢＬには０Ｖが印加される。
【００９６】
プログラムベリファイは、ＭＬＣモード及び通常のＳＬＣモードと同様である。但し、プログラムベリファイ時に使用されるベリファイ電圧は、プリベリファイ時に用いたベリファイ電圧ＶＣＧ＿Ｚと同じ値である。
【００９７】
以上のように、電圧ＶＣＧＲ及びＶＣＧ＿Ｚを用いた２回の読み出し動作により、“０”データを保持し、且つ閾値がＶＣＧ＿Ｚ未満のメモリセルトランジスタに対応するビット線ＢＬが特定される。このようなメモリセルトランジスタは、“０”データ書き込み時において使用されたベリファイ電圧がＶＣＧ＿Ｚ未満であったか、あるいは書き込み直後の閾値はＶＣＧ＿Ｚ以上であったが、その後、時間経過により閾値が低下したメモリセルトランジスタである。そして、このようなメモリセルトランジスタに対しても、“０”データの追加書き込みが行われる。
【００９８】
なお、プリベリファイは、書き込み動作時の初めにのみ行えば良い。その後は、ＭＬＣモード及び通常のＳＬＣモードと同様にプログラム動作とプログラムベリファイ動作とが繰り返される。
【００９９】
１．２．３  ＰＰＰモードの具体例  
次に、上記ＰＰＰモードによるデータの書き込み動作の具体例につき、図１４乃至図１６を用いて説明する。図１４乃至図１６はセンスアンプ１３０及びＰＰＰ用ブロックのブロック図である。図１４乃至図１６では、ページサイズが１６Ｋバイトであり、１ページが４ゾーンを含み、そしてそれぞれゾーンＺＮ０、ＺＮ１、及びＺＮ３が選択された際の様子を示している。
【０１００】
まずゾーンＺＮ０選択時の様子につき、図１４を用いて説明する。図示するように、コントローラ２００から与えられた４Ｋバイトのデータは、センスアンプ１３０のページバッファにおいて、カラムセレクタ１４０によって選択されたゾーンＺＮ０に対応する領域に格納される。その他の領域（ゾーンＺＮ１〜ＺＮ３）では、例えばシーケンサ１８０によって全ビットが“１”とされる。この状態において、ページ単位でデータが書き込まれる。この結果、実質的にゾーンＺＮ０のみが書き込まれ、ゾーンＺＮ１〜ＺＮ３は非書き込みとされる。
【０１０１】
次にゾーンＺＮ１選択時の様子につき、図１５を用いて説明する。図１５は、ゾーンＺＮ１選択時のプリベリファイがディセーブルとされている場合について示している。図示するように、コントローラ２００から与えられた４Ｋバイトのデータは、センスアンプ１３０のページバッファにおいて、カラムセレクタ１４０によって選択されたゾーンＺＮ１に対応する領域に格納される。その他の領域（ゾーンＺＮ０及びＺＮ２〜ＺＮ３）では、例えばシーケンサ１８０によって全ビットに“１”がセットされる。この状態で、ページ単位でデータが書き込まれる。この結果、実質的にゾーンＺＮ１のみが書き込まれ、ゾーンＺＮ０及びＺＮ２〜ＺＮ３は非書き込みとされる。なお、プリベリファイがイネーブルとされている場合には、ベリファイ電圧ＶＣＧ＿Ｚ１を用いたプリベリファイの結果に基づいて追加書き込みが必要となったメモリセルトランジスタも“０”データ書き込み対象とされる。ゾーンＺＮ２選択時は、ゾーンＺＮ１選択時と同様である。
【０１０２】
次にゾーンＺＮ３選択時の様子につき、図１６を用いて説明する。最終ゾーンＺＮ３選択時には、まずベリファイ電圧ＶＣＧ＿Ｚ３を用いたプリベリファイが行われる。そして図示するように、プリベリファイの結果に基づくデータが、センスアンプ１３０のページバッファに格納される。すなわち、追加書き込みが必要なメモリセルトランジスタＭＴに対応する領域には“０”がセットされ、不要な領域には“１”がセットされる。更に、コントローラ２００から与えられた４Ｋバイトのデータが、カラムセレクタ１４０によって選択されたゾーンＺＮ３に対応する領域に格納される。この状態において、ページ単位でデータが書き込まれる。この結果、ゾーンＺＮ３だけでなく、既に書き込み済みのゾーンＺＮ０〜ＺＮ２に対しても、プリベリファイ結果に応じて追加書き込みが行われる。
【０１０３】
１．３  本実施形態に係る効果  
本実施形態によれば、メモリシステム及び半導体記憶装置の動作信頼性を向上出来る。本効果につき、以下説明する。
【０１０４】
記憶装置のコントローラは、例えばＦＡＴ（file allocation table）ファイルシステム等の種々のファイルシステムを用いて記憶装置を管理している。また、記憶装置に書き込むべきデータには、すぐに不揮発化すべき（不揮発性メモリセルに書き込むべき）データと、そうでないデータとがある。後者のデータの場合には、例えばコントローラや記憶装置の空き時間等、都合の良いタイミングで不揮発化すれば良い。
【０１０５】
すぐに不揮発化すべきデータの例としては、例えばファイルシステムの管理情報等が挙げられ、このようなデータのサイズは、ページサイズよりも小さいことが多い。この場合、１ページを複数の領域に分割して、ページサイズ未満のデータ単位で書き込むことが好ましい。より具体的には、一部の領域にのみ実質的なデータを含み、その他の領域には書き込み禁止データ（本例では“１”データ）を含むページデータを書き込めばよい。そして、次のページサイズ未満のデータを書き込む際には、同じページを選択し、“１”データが書き込まれた領域に、実質的なデータを書き込む。このような方法を用いれば、ページを有効利用出来る。
【０１０６】
しかし本方法であると、同一ページ内において、最初に書き込まれたデータと、最後に書き込まれたデータとの間で、プログラムディスターブの影響が異なる。すなわち、最初に書き込まれたデータは、同一ページ内においてその後に行われる書き込み動作によって影響を受け、その閾値分布が拡がる。この結果、データの信頼性が低下するおそれがある。
【０１０７】
この点、本実施形態であると、コントローラ２００はＰＰＰモードを明示するＰＰＰコマンドをＮＡＮＤ型フラッシュメモリ１００に発行する。するとＮＡＮＤ型フラッシュメモリ１００は、ＰＰＰコマンドを受信したことにより、ページサイズ未満のデータを書き込むべきことを認識する。そしてＮＡＮＤ型フラッシュメモリ１００は、コントローラ２００から受信したカラムアドレスに基づいて、書き込むべきデータがページ内におけるいずれの領域（上記実施形態の例であるとゾーンＺＮ０〜ＺＮ３のいずれか）に対応するものであるかを判断する。そして、ページ内において最後に書き込まれるべき領域に対応する場合には、ページ内で閾値分布が揃うように、既に書き込み済みのゾーンも含めたページ単位での書き込みを実行する。これにより、ページサイズ未満のデータ単位で書き込みを行う場合であっても、データ信頼性の低下を抑制出来る。
【０１０８】
以上の点を、図１７を参照しつつ具体的に説明する。図１７は、あるページにつき、ゾーンＺＮ０からＺＮ１、ＺＮ２、及びＺＮ３の順でデータを書き込んだ際における、ゾーンＺＮ０〜ＺＮ３に対応するメモリセルトランジスタの閾値分布の変動を示している。また図１７は、ゾーンＺＮ１及びＺＮ２に関してはプリベリファイを行わない場合を示している。
【０１０９】
図示するように、初期状態（消去状態）において全メモリセルトランジスタは“１”データを保持しており、その閾値はＶＣＧＲ未満（例えば０Ｖ未満）である。
【０１１０】
この状態で、まずゾーンＺＮ０がＰＰＰモードで書き込まれる。この結果、書き込みデータに応じて、ゾーンＺＮ０に対応するメモリセルトランジスタの一部には“０”データが書き込まれる。“０”データを保持するメモリセルトランジスタの閾値はＶＣＧ＿Ｚ０以上であり、当然ながらＶＣＧＲより高い。他方で、選択ワード線ＷＬに電圧ＶＰＧＭが印加されることにより、非書き込み（“１”データ書き込み）対象のメモリセルトランジスタに対する誤書き込みが生じ、一部の非書き込み対象メモリセルトランジスタの閾値も変動する。その結果、閾値分布の上裾部分が高電圧側にシフトする。この閾値シフトの部分を、図１７では斜線を付して示している。
【０１１１】
次に、ゾーンＺＮ１がＰＰＰモードで書き込まれる。この結果、ゾーンＺＮ１に対応するメモリセルトランジスタの一部には“０”データが書き込まれる。“０”データを保持するメモリセルトランジスタの閾値はＶＣＧ＿Ｚ１以上であり、ＶＣＧＲより高い。この際にも、誤書き込みによって非書き込み対象のメモリセルトランジスタの閾値も変動する。更に、既に書き込み済みのゾーンＺＮ０に対応するメモリセルトランジスタのうち、“０”データが書き込まれたメモリセルトランジスタの閾値も変動する。
【０１１２】
引き続き、ゾーンＺＮ２がＰＰＰモードで書き込まれる。この際も、ゾーンＺＮ１と同様に誤書き込みによって、非書き込み対象のメモリセルトランジスタの閾値電圧が変動する。
【０１１３】
最後に、ゾーンＺＮ３がＰＰＰモードで書き込まれる。この際、ベリファイ電圧ＶＣＧ＿Ｚ３を用いたプリベリファイ結果により追加書き込みが必要と判断された、ゾーンＺＮ０〜ＺＮ２に対応するメモリセルトランジスタに対しても書き込みが行われる。
【０１１４】
以上の結果、ゾーンＺＮ３の書き込みが完了した時点、すなわち１ページ全体の書き込みが完了した時点において、“０”データを保持するメモリセルトランジスタの閾値分布における誤書き込みの影響はほぼ解消される。すなわち、ゾーンＺＮ０〜ＺＮ３が受ける誤書き込みの影響はゾーン毎に異なるが、プリベリファイ結果に基づいてゾーンＺＮ３の書き込みを行うことで、この影響の差異をほぼ解消し、“０”データを保持するメモリセルトランジスタの閾値分布はゾーンＺＮ０〜ＺＮ３間でほぼ均一となる。他方で“１”データの閾値分布には、非書き込み対象メモリセルトランジスタに対する誤書き込みの影響が残っているが、この影響による閾値のシフト量は、ゾーンＺＮ０〜ＺＮ３間でほぼ同じである。なぜなら、非書き込み対象メモリセルトランジスタが誤書き込みの影響を受ける回数は、ゾーンＺＮ０〜ＺＮ３のいずれについても同じ４回だからである。従って、“１”データの閾値分布もまた、ゾーンＺＮ０〜ＺＮ３間でほぼ均一となる。
【０１１５】
このように、１ページを複数の領域に分割して書き込む分割書き込みにおいて、ＮＡＮＤ型フラッシュメモリ１００は、書き込みデータが１ページ内のいずれの領域に対応するものかを認識する。そして、少なくとも最後のゾーンＺＮ３書き込み時にはプリベリファイを行い、この結果に基づき、既に書き込み済みのゾーンＺＮ０〜ＺＮ２に対して再書き込みを行い、これらの領域の閾値分布をゾーンＺＮ３と合わせる。これにより、分割書き込みを行う場合であっても、ゾーン間における閾値分布をほぼ均一に揃えることが出来る。
【０１１６】
なお、最終ゾーン以外のゾーンに対応するメモリセルトランジスタの閾値分布は、最終ゾーン書き込み時に調整される。従って、最終ゾーン以外の書き込みは、最終ゾーンの書き込みに比べて粗くて良い。この点を、図１８を用いて説明する。図１８は、ゾーンＺＮ０の書き込み、プリベリファイ、及びゾーンＺＮ３書き込み時におけるワード線の電圧を簡略化して示すタイミングチャートである。
【０１１７】
図示するように、プログラムとプログラムベリファイとの繰り返しによってデータは書き込まれる。この際、プログラム電圧ＶＰＧＭは繰り返しの度にステップアップ幅ΔＶＰＧＭでステップアップされる。そして、先頭ゾーンＺＮ０書き込み時におけるステップアップ幅ΔＶＰＧＭ＿Ｚ０は、最終ゾーンＺＮ３書き込み時におけるステップアップ幅ΔＶＰＧＭ＿Ｚ３よりも大きくされる。従って、ゾーンＺＮ０の書き込みは、ゾーンＺＮ３の書き込みよりも早く終了する。他方で、ゾーンＺＮ３書き込み時には、細かいステップでプログラム電圧ＶＰＧＭがステップアップされるので、より高精度に閾値を設定出来る。このことは、ゾーンＺＮ１及びＺＮ２についても同様である。
【０１１８】
なお、図１８ではプログラム電圧ＶＰＧＭの初期値を、ゾーンＺＮ０書き込みの場合とゾーンＺＮ３書き込みの場合とで同じ値としているが、異なっていても良い。
【０１１９】
２．第２実施形態  
次に、第２実施形態に係るメモリシステムについて説明する。本実施形態は、上記第１実施形態において、１ページを２分割して書き込むモードを更に備えるものである。以下では、第１実施形態と異なる点についてのみ説明する。また以下では、１ページを４分割して書き込むモード（第１実施形態で説明したモード）を４ＰＰＰモードと呼び、２分割して書き込むモードを２ＰＰＰモードと呼ぶ。
【０１２０】
２．１  ブロックの種類とデータの書き込み単位について  
本実施形態に係るメモリセルアレイ１１０は、第１実施形態で説明したＭＬＣ用ブロック、ＳＬＣ用ブロック、及び４ＰＰＰ用ブロックに加えて、更に２ＰＰＰ用ブロックを含む。
【０１２１】
２ＰＰＰ用ブロックは、１ページの１／２のサイズのデータ単位で書き込みが行われるブロックである。図１９は、２ＰＰＰ用ブロックにおける１ページデータと、データ位置に対応するカラムアドレスとの関係を示す模式図であり、４ＰＰＰ用ブロックについて説明した図４に対応する。
【０１２２】
図１９に示すように、２ＰＰＰ用ブロックにおいて１ページは、２つのゾーンＺＮ０及びＺＮ１を含む。そして各ゾーンＺＮは、１６ＫＢの１／２である８ＫＢのサイズを有する。
【０１２３】
先頭ゾーンＺＮ０は、その先頭アドレスがＣＡ０であり、最終アドレスがＣＡ８１９１（ＣＡ（８Ｋ−１））である。次のゾーンＺＮ１は、その先頭アドレスがＣＡ８１９２（ＣＡ８Ｋ）であり、最終アドレスがＣＡ１６３８３（ＣＡ（１６Ｋ−１））である。そして２ＰＰＰ用ブロックでは、この８ＫＢのゾーンＺＮ単位でデータが書き込まれる。
【０１２４】
２ＰＰＰモードにおける書き込み条件は、第１実施形態において図５を用いて説明した条件テーブルに保持される。図２０は、本実施形態に係る条件テーブルの概念図である。
【０１２５】
図示するように、先頭ゾーンＺＮ０選択時の書き込み条件は、４ＰＰＰモードにおける先頭ゾーンＺＮ０選択時と同様である。また最終ゾーンＺＮ１選択時の書き込み条件は、４ＰＰＰモードにおける最終ゾーンＺＮ３選択時と同様である。
【０１２６】
２．２  書き込み動作について  
次に、本実施形態に係るメモリシステム１における書き込み動作について説明する。
【０１２７】
２．２．１  コントローラ２００の動作について  
まず、コントローラ２００の動作につき、図２１を用いて説明する。図２１は、書き込み動作時におけるコントローラ２００の動作を示すフローチャートである。
【０１２８】
第１実施形態において図６を用いて説明した動作と異なる点は、下記の点である。すなわち、  
（１）データサイズが４ＫＢであった場合（ステップＳ１３、ＹＥＳ）、コントローラ２００は４ＰＰＰコマンドを発行する（ステップＳ４１）。  
（２）データサイズが８ＫＢであった場合（ステップＳ４０、ＹＥＳ）、コントローラ２００は２ＰＰＰコマンドを発行する（ステップＳ４２）。
【０１２９】
４ＰＰＰコマンド及び２ＰＰＰコマンドは、第１実施形態で説明したＰＰＰコマンドの一種であり、それぞれ４ＰＰＰモード及び２ＰＰＰモードでの書き込みを命令するコマンドである。
【０１３０】
図２２は、ＰＰＰモード時におけるコマンドシーケンスを示している。図示するように、第１実施形態で説明した図９と異なる点は、複数のＰＰＰコマンドが用意されている点である。図２２の例であると、２ＰＰＰモードが指定される際にはコマンド“ＸＡＨ”が発行され、４ＰＰＰモードが指定される際にはコマンド“ＸＢＨ”が発行される。なお、１ページを８分割して、２ＫＢ単位でデータを書き込む８ＰＰＰモードが用意されても良く、この場合にはコマンド“ＸＣＨ”が発行される。
【０１３１】
２．２．２  ＮＡＮＤ型フラッシュメモリ１００の動作について  
次に、ＮＡＮＤ型フラッシュメモリ１００の動作につき、図２３を用いて説明する。図２３は、書き込み動作時におけるＮＡＮＤ型フラッシュメモリ１００の動作を示すフローチャートであり、第１実施形態における図１０に対応する。
【０１３２】
図示するように、ＰＰＰコマンドを受信し（ステップＳ２０、ＹＥＳ）、それが４ＰＰＰコマンドであった場合（ステップＳ５０、ＹＥＳ）、シーケンサ１８０は４ＰＰＰモードで書き込みを行う。本動作は、第１実施形態で説明した通りであり、図１０におけるステップＳ２４〜Ｓ３９の動作が行われる。
【０１３３】
受信したＰＰＰコマンドが２ＰＰＰコマンドであった場合（ステップＳ５０、ＮＯ）、シーケンサ１８０は２ＰＰＰモードで書き込みを行う。カラムアドレスＣＡがＣＡ８Ｋ以上であった場合（ステップＳ５２、ＹＥＳ）、カラムセレクタ１４０がゾーンＺＮ１を選択する（ステップＳ５３）。その結果、センスアンプ１３０におけるページバッファのゾーンＺＮ１に対応する領域に、コントローラ２００から受信した８Ｋバイトの書き込みデータが格納される。引き続きシーケンサ１８０はプリベリファイを行い（ステップＳ５４）、プリベリファイの結果に基づいて、ＳＬＣモードによる書き込みを行う（ステップＳ５５）。すなわち、４ＰＰＰモード時においてゾーンＺＮ３が選択された際と同様の動作が行われる。
【０１３４】
カラムアドレスＣＡがＣＡ（８Ｋ−１）以下であった場合（ステップＳ５２、ＮＯ）、カラムセレクタ１４０はゾーンＺＮ０を選択する（ステップＳ５６）。その結果、センスアンプ１３０におけるページバッファのゾーンＺＮ０に対応する領域に、コントローラ２００から受信した８ＫＢの書き込みデータが格納される。ゾーンＺＮ０が選択された場合、シーケンサ１８０は、プリベリファイを行うことなくＳＬＣモードで書き込みを行う（ステップＳ５７）。すなわち、４ＰＰＰモード時においてゾーンＺＮ０が選択された際と同様の動作が行われる。
【０１３５】
２．３  本実施形態に係る効果  
本実施形態によれば、複数のＰＰＰモードを有することで、種々のサイズのデータに対応出来る。本実施形態では、データが４ＫＢ及び８ＫＢの場合を例に説明したが、これに限定されず、種々のデータサイズを適宜選択出来る。
【０１３６】
３．第３実施形態  
次に、第３実施形態に係るメモリシステムについて説明する。本実施形態は、上記第１または第２実施形態において、１ページ内のゾーン数及び選択ゾーンをコントローラ２００がＮＡＮＤ型フラッシュメモリ１００へ通知するものである。以下では、第１及び第２実施形態と異なる点についてのみ説明する。
【０１３７】
３．１  コントローラ２００の動作について  
まず、コントローラ２００の動作につき、図２４を用いて説明する。図２４は、ＰＰＰモード選択時におけるコマンドシーケンスを示している。
【０１３８】
図示するように本例では、第１実施形態で説明した図９において、コントローラ２００はＰＰＰコマンド“ＸＨ”の次にゾーン情報を発行する。ゾーン情報は例えば８ビットデータであり、上位４ビットがゾーン数を示し、下位４ビットが選択ゾーンを示す。従って、上位４ビットが“００１０”であれば２ＰＰＰモードが選択され、“０１００”であれば４ＰＰＰモードが選択され、“１０００”であれば８ＰＰＰモードが選択される。そして下位ビットが“００００”であればゾーンＺＮ０が選択され、“０００１”であればゾーンＺＮ１が選択され、“００１０”であればゾーンＺＮ２が選択され、以下同様である。すなわち、これからコントローラ２００が実行するＰＰＰモードがいずれのＰＰＰモードであるかを示す情報であり、換言すれば、コントローラ２００がこれから実行すべき動作に対する設定値であり、モード情報とも言うべきデータである。もちろん、このモード情報の構成は本例に限定されず、ゾーン数及び選択ゾーンの指定さえ出来れば十分である。
【０１３９】
３．２  ＮＡＮＤ型フラッシュメモリ１００の動作について  
次に、ＮＡＮＤ型フラッシュメモリ１００の動作について、図２５を用いて説明する。図２５は、４ＰＰＰモード時におけるＮＡＮＤ型フラッシュメモリ１００の動作を示すフローチャートであり、第２実施形態で説明した図２３におけるステップＳ５１に相当する。
【０１４０】
モードコマンドの上位４ビットに基づいて４ＰＰＰモードであることを把握したシーケンサ１８０は、引き続きモード情報の下位４ビットを確認する（ステップＳ６０）。そしてシーケンサ１８０は、モード情報の下位４ビットに基づき、選択ゾーンを認識する（ステップＳ６１〜Ｓ６３）。その他は第１実施形態で説明した通りである。なお、モード情報により選択ゾーンを把握出来るので、カラムデコーダ１５０によるカラムアドレスのデコードは特に必要ではない。すなわち、シーケンサ１８０の命令に従って、カラムセレクタ１４０が指定されたゾーンを選択するようにしても良い。
【０１４１】
３．３  本実施形態に係る効果  
本実施形態のように、１ページ内のゾーン数及び選択ゾーンを、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００に通知するようにしても良い。
【０１４２】
４．変形例等  
以上のように、上記実施形態に係るメモリシステムは、ロウ及びカラムに関連付けられた複数のメモリセルを含む半導体記憶装置と、半導体記憶装置に対して、第１モード(PPP modeのZN0選択)及び第２モード(PPP modeのZN3選択)のいずれかのモードでデータを書き込むコントローラとを備える。第１モード(PPP modeのZN0選択)では、いずれかのロウアドレスにつき、アドレスの連続する第１カラム及び第２カラムを含み、全カラムの一部である第１カラム群(ZN0)に対応するメモリセルにデータが書き込まれ、アドレスが連続する第３カラム及び第４カラムを含み、第１カラム群と異なる第２カラム群(ZN3)に対応するメモリセルは書き込み禁止とされる。第２モード(PPP modeのZN3選択)では、第２カラム群(ZN3)に対応するメモリセルにデータが書き込まれ、第１カラム群(ZN0)に対応するメモリセルは書き込み禁止とされる。半導体記憶装置は、書き込み動作におけるワード線の動作設定値につき、第１モード(ZN0選択時)では第１設定値を用い、第２モード(ZN3選択時)では第１設定値と異なる第２設定値を用いる(図5)。
【０１４３】
あるいは、メモリシステムは、第１モード(PPP modeのZN0選択)では第１電圧(VCG_Z0)をベリファイ電圧として用いてデータが書き込まれる。そして第２モード(PPP modeのZN3選択)では、第１電圧(VCG_Z0)と異なる第２電圧(VCG_Z3)をベリファイ電圧に用いて、第２カラム群(ZN3)に対応するメモリセル、及び第１カラム群(ZN0)に対応するメモリセルのうち、閾値が第１電圧と第２電圧との間であるメモリセルにデータが書き込まれる(図11,16)。
【０１４４】
本構成によれば、ページサイズ未満のデータ単位で書き込みを行う場合であっても、同一ページ内の閾値分布をほぼ均一にすることが出来る。従って、メモリセルトランジスタによるデータ保持特性を向上させ、半導体記憶装置及びメモリシステムの動作信頼性を向上出来る。
【０１４５】
なお、実施形態は上記説明した形態に限られず、種々の変形が可能である。例えば、上記実施形態では２ＰＰＰモード及び４ＰＰＰモードの場合を例に挙げて説明したが、８ＰＰＰモード、１６ＰＰＰモード、及び３２ＰＰＰモードなどがサポートされても良い。ページサイズを１６ＫＢとすれば、８ＰＰＰモードの場合には１ページはそれぞれが２ＫＢの８個のゾーンに分割される。１６ＰＰＰモードの場合には、それぞれが１ＫＢの１６個のゾーンに分割される。３２ＰＰＰモードの場合には、それぞれが５１２バイトの３２個のゾーンに分割される。このように、１ページを何分割するか、またどのモードをサポートするかは、適宜選択可能である。
【０１４６】
更に“０”データ書き込みの際のビット線の条件を、最終ゾーン選択時とそれ以外のゾーン選択時とで異ならせても良い。この様子を図２６及び図２７に示す。図２６及び図２７は書き込み時における閾値分布の変動を示しており、図２６は最終ゾーン以外のゾーンが選択された場合を示し、図２７は最終ゾーンが選択された場合を示している。
【０１４７】
図２６に示すように、最終ゾーン以外のゾーンが選択された場合は、ビット線ＢＬの電位は、閾値電圧が所望の値ＶＣＧ＿Ｚ０、ＶＣＧ＿Ｚ１、またはＶＣＧ＿Ｚ２（４ＰＰＰの場合）に達するまで一定値（例えば０Ｖ）とされる。従って、１回のプログラムによる閾値の変動は、書き込み動作の期間、ほぼ一定である。
【０１４８】
これに対して図２７に示すように最終ゾーンが選択された場合は、所望の値ＶＣＧ＿Ｚ３よりも小さいベリファイレベルＶＣＧ＿ＱＰＷが初めに設定される。そして、閾値電圧がＶＣＧ＿ＱＰＷに達するまでは、ビット線ＢＬの電位は例えば０Ｖとされる。閾値電圧がＶＣＧ＿ＱＰＷに達した後は、ビット線ＢＬの電位はより高い電圧に設定され、再びプログラムが開始される。ビット線ＢＬの電位が高い電圧にされたことで、電荷蓄積層とチャネルとの間の電位差が小さくなり、閾値の変動量も小さくなる。当然ながら、最終ゾーン選択時には、その他のゾーンにおいてプリベリファイにフェイルしたメモリセルトランジスタも同様の方法でプログラムされる。
【０１４９】
本方法によれば、目標となる閾値分布まで遠い段階では粗く書き、近づくと細かく書く。従って、書き込み速度の向上と高精度な書き込みとを両立出来る。
【０１５０】
また上記実施形態では、最終ゾーン選択時にのみプリベリファイを行い、また最終ゾーン選択時のベリファイレベルがその他のゾーン選択時のベリファイレベルよりも高い場合を例に説明した。しかし、この場合に限定されるものではない。図２８は、４ＰＰＰモードにおいて、ゾーンＺＮ２選択時にプリベリファイを行う場合の閾値分布の変動を示している。この場合、ゾーンＺＮ２選択時に、プリベリファイの結果追加書き込みが必要となったメモリセルに対してもプログラムが行われる。
【０１５１】
その後のゾーンＺＮ３選択時には、誤書き込みの影響によってゾーンＺＮ０〜ＺＮ２に対応するメモリセルトランジスタの閾値は変動するが、“０”データを保持するメモリセルトランジスタが受ける誤書き込みの影響は、ゾーンＺＮ３の書き込み時によるものだけである。従って、この程度の閾値変動を許容出来る場合には、プリベリファイは必ずしも最終ゾーン選択時である必要はない。またこの場合、ＶＣＧ＿Ｚ０≦ＶＣＧ＿Ｚ１＜ＶＣＧ＿Ｚ２であり、ＶＣＧ＿Ｚ３はＶＣＧ＿Ｚ２より大きくても小さくてもよいが、同じであることが好ましい。もちろん、ΔＶＰＧＭ＿Ｚ０≧ΔＶＰＧＭ＿Ｚ１＞ΔＶＰＧＭ＿Ｚ２である。そして、ΔＶＰＧＭ＿Ｚ３はΔＶＰＧＭ＿Ｚ２より大きくても小さくてもよいし、同じであってもよい。
【０１５２】
また、上記実施形態では、各ゾーンＺＮはカラムアドレス順に選択される場合を例に説明した。例えば４ＰＰＰモードの場合には、ゾーンＺＮ０、ＺＮ１、ＺＮ２、及びＺＮ３の順に選択される場合を例に説明した。しかし、必ずしもこの選択順序に限られるものではない。同一ページ内において、最後に選択されるゾーンＺＮの書き込み時にプリベリファイ及びプリベリファイ結果に基づく書き込みが行われれば良い。例えば４ＰＰＰモードにおいて、ゾーンＺＮ１が最後に選択される場合には、図５に示すゾーンＺＮ３に関する書き込み条件を用いてプリベリファイ及び書き込みが行われても良い。つまり、１ページ内の全ゾーンの書き込みが完了した時点において、各ゾーンの閾値分布がほぼ揃っていれば、ゾーンＺＮの選択順序は問わない。そして図５及び図２０で説明した条件テーブルは、ゾーンＺＮと書き込み条件との関係を保持するテーブルと言うよりも、ゾーン毎の書き込み順序と、その順序に対応する書き込み条件との関係を保持するテーブルである、と言うことも出来る。
【０１５３】
また、図９や図２２のコマンドシーケンスでは、ＰＰＰコマンドの次にＳＬＣコマンド“Ａ２Ｈ”が発行される場合を例に説明した。しかし、ＰＰＰコマンドを受信したことに応答して、ＮＡＮＤ型フラッシュメモリ１００はＳＬＣモードを選択しても良い。この場合、コントローラ２００はＳＬＣコマンド“Ａ２Ｈ”を発行する必要は無い。
【０１５４】
更に、データを読み出す際の読み出しレベルは、図１７及び図２８で説明した電圧ＶＣＧＲを用いても良い。しかし、最終ゾーンＺＮの書き込み後、ページ内において“０”データを保持するメモリセルトランジスタの閾値は、全体的に高電圧側へシフトする（ベリファイレベルＶＣＧ＿Ｚ３以上の値に設定される）。従って、読み出しレベルとして、ＶＣＧＲとＶＣＧ＿Ｚ３との間の値を用いても良い。
【０１５５】
更に、上記実施形態ではメモリセルが三次元に積層されたＮＡＮＤ型フラッシュメモリを例に挙げて説明したが、メモリセルが半導体基板上に二次元に配列された平面型ＮＡＮＤ型フラッシュメモリに適用することも可能である。更に、電荷蓄積層が絶縁膜で形成されたＭＯＮＯＳ型に限らず、電荷蓄積層が導電膜で形成されたＦＧ型にも適用出来る。
【０１５６】
また、上記実施形態で説明したフローチャートにおける各ステップの順序は一例に過ぎず、可能な限りその順序を入れ替えることが出来る。
【０１５７】
１つのメモリセルトランジスタＭＴが２ビットデータを保持する場合、その閾値電圧は、保持データに応じて４種類のレベルのいずれかを取る。４種類のレベルを低い方から順に、消去レベル、Ａレベル、Ｂレベル、及びＣレベルとした場合、Ａレベルの読み出し動作時に選択ワード線に印加される電圧は、例えば０Ｖ〜０．５５Ｖの間である。これに限定されることなく、０．１Ｖ〜０．２４Ｖ，０．２１Ｖ〜０．３１Ｖ，０．３１Ｖ〜０．４Ｖ，０．４Ｖ〜０．５Ｖ，０．５Ｖ〜０．５５Ｖ等のいずれかの間であってもよい。Ｂレベルの読み出し時に選択ワード線に印加される電圧は、例えば１．５Ｖ〜２．３Ｖの間である。これに限定されることなく、１．６５Ｖ〜１．８Ｖ，１．８Ｖ〜１．９５Ｖ，１．９５Ｖ〜２．１Ｖ，２．１Ｖ〜２．３Ｖ等のいずれかの間であってもよい。Ｃレベルの読み出し動作時に選択ワード線に印加される電圧は、例えば３．０Ｖ〜４．０Ｖの間である。これに限定されることなく、３．０Ｖ〜３．２Ｖ，３．２Ｖ〜３．４Ｖ，３．４Ｖ〜３．５Ｖ，３．５Ｖ〜３．６Ｖ，３．６Ｖ〜４．０Ｖ等のいずれかの間であってもよい。読み出し動作の時間（ｔＲ）としては、例えば２５μｓ〜３８μｓ，３８μｓ〜７０μｓ，７０μｓ〜８０μｓ等のいずれかの間であってよい。
【０１５８】
書き込み動作は、プログラムとプログラムベリファイとを含む。書き込み動作においては、プログラム時に選択されたワード線に最初に印加される電圧は、例えば１３．７Ｖ〜１４．３Ｖの間である。これに限定されることなく、例えば１３．７Ｖ〜１４．０Ｖ，１４．０Ｖ〜１４．６Ｖ等のいずれかの間であってもよい奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧とを異ならせてもよい。プログラム動作をＩＳＰＰ方式（Incremental Step Pulse Program）としたとき、ステップアップの電圧として、例えば０．５Ｖ程度が挙げられる。非選択のワード線に印加される電圧としては、例えば６．０Ｖ〜７．３Ｖの間であってもよい。これに限定されることなく、例えば７．３Ｖ〜８．４Ｖの間であってもよく、６．０Ｖ以下であってもよい。非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかにより、印加するパス電圧を異ならせてもよい。書き込み動作の時間（ｔＰｒｏｇ）としては、例えば１７００μｓ〜１８００μｓ，１８００μｓ〜１９００μｓ，１９００μｓ〜２０００μｓの間であってよい。
【０１５９】
消去動作においては、半導体基板上部に配置され、かつ、メモリセルが上方に配置されたウェルに最初に印加される電圧は、例えば１２Ｖ〜１３．６Ｖの間である。これに限定されることなく、例えば１３．６Ｖ〜１４．８Ｖ，１４．８Ｖ〜１９．０Ｖ，１９．０Ｖ〜１９．８Ｖ，１９．８Ｖ〜２１Ｖ等のいずれかの間であってもよい。消去動作の時間（ｔＥｒａｓｅ）としては、例えば３０００μｓ〜４０００μｓ，４０００μｓ〜５０００μｓ，４０００μｓ〜９０００μｓの間であってよい。
【０１６０】
また、メモリセルは、例えば以下のような構造であってもよい。メモリセルは、シリコン基板等の半導体基板上に膜厚が４ｎｍ〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積膜を有する。この電荷蓄積膜は、膜厚が２ｎｍ〜３ｎｍのシリコン窒化（ＳｉＮ）膜、またはシリコン酸窒化（ＳｉＯＮ）膜などの絶縁膜と、膜厚が３ｎｍ〜８ｎｍのポリシリコン（Ｐｏｌｙ−Ｓｉ）膜との積層構造にすることができる。ポリシリコン膜には、ルテニウム（Ｒｕ）などの金属が添加されていても良い。メモリセルは、電荷蓄積膜の上に絶縁膜を有する。この絶縁膜は、例えば膜厚が３ｎｍ〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と、膜厚が３ｎｍ〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜とに挟まれた、膜厚が４ｎｍ〜１０ｎｍのシリコン酸化（ＳｉＯ）膜を有する。Ｈｉｇｈ−ｋ膜の材料としては、酸化ハフニウム（ＨｆＯ）などが挙げられる。また、シリコン酸化膜の膜厚は、Ｈｉｇｈ−ｋ膜の膜厚よりも厚くすることができる。絶縁膜上には、膜厚が３ｎｍ〜１０ｎｍの仕事関数調整用の膜を介して、膜厚が３０ｎｍ〜７０ｎｍの制御電極が設けられる。ここで仕事関数調整用膜は、例えば酸化タンタル（ＴａＯ）などの金属酸化膜、窒化タンタル（ＴａＮ）などの金属窒化膜等である。制御電極には、タングステン（Ｗ）などを用いることができる。メモリセル間にはエアギャップを配置することができる。
【０１６１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１６２】
１…メモリシステム、１００…ＮＡＮＤ型フラッシュメモリ、１１０…メモリセルアレイ、１２０…ロウデコーダ、１３０…センスアンプ、１４０…カラムセレクタ、１５０…カラムデコーダ、１６０、１７０…レジスタ、１８０…シーケンサ、２００…コントローラ、２１０、２５０…インターフェース回路、２２０、２４０…メモリ、２３０…プロセッサ、３００…ホスト機器
【図１】
0006457364.tif 000002
【図２】
0006457364.tif 000003
【図３】
0006457364.tif 000004
【図４】
0006457364.tif 000005
【図５】
0006457364.tif 000006
【図６】
0006457364.tif 000007
【図７】
0006457364.tif 000008
【図８】
0006457364.tif 000009
【図９】
0006457364.tif 000010
【図１０】
0006457364.tif 000011
【図１１】
0006457364.tif 000012
【図１２】
0006457364.tif 000013
【図１３】
0006457364.tif 000014
【図１４】
0006457364.tif 000015
【図１５】
0006457364.tif 000016
【図１６】
0006457364.tif 000017
【図１７】
0006457364.tif 000018
【図１８】
0006457364.tif 000019
【図１９】
0006457364.tif 000020
【図２０】
0006457364.tif 000021
【図２１】
0006457364.tif 000022
【図２２】
0006457364.tif 000023
【図２３】
0006457364.tif 000024
【図２４】
0006457364.tif 000025
【図２５】
0006457364.tif 000026
【図２６】
0006457364.tif 000027
【図２７】
0006457364.tif 000028
【図２８】
0006457364.tif 000029