(57)【特許請求の範囲】
【請求項１】
複数のワード線と、
複数のビット線と、
前記ワード線と前記ビット線との交点に対応して設けられた複数のメモリセルと、
前記複数のワード線のうち選択ワード線に電圧を印加するワード線ドライバと、
前記メモリセルのデータを検出するセンスアンプ回路と、
前記ワード線ドライバおよび前記センスアンプ回路を制御するコントローラとを備え、
前記選択ワード線に接続された選択メモリセルに第１データを書き込む書込みシーケンスは、前記ワード線ドライバによって前記選択ワード線へ書込み電圧を印加する書込み動作と、前記選択メモリセルの閾値電圧が基準電圧に達したときに前記コントローラによって該選択メモリセルへの書込みを終了するベリファイ動作と、を有する書込みループを含み、
前記コントローラは、前記選択メモリセルに隣接する隣接メモリセルに書き込まれかつ前記第１データよりも後に書き込まれる第２データが消去状態よりも論理的に１段階だけ高いデータである場合に、前記選択メモリセルのベリファイ動作において用いられかつ前記選択メモリセルの書込みを終了させるために用いられる前記基準電圧を変更する、半導体記憶装置。
【請求項２】
前記隣接メモリセルは、前記選択ワード線に隣接する隣接ワード線に接続されており、  前記コントローラは、前記第２データが消去状態よりも論理的に１段階だけ高いデータである場合に、前記基準電圧を低下させる、請求項１に記載の半導体記憶装置。
【請求項３】
前記ワード線ドライバは、或る書込みシーケンスにおいて前記書込みループを実行するごとに前記選択ワード線の電圧を上昇させ、
前記第２データが消去状態よりも論理的に１段階だけ高い所定データ以外のデータである場合、
前記第１データの前記書込みシーケンスにおいて、前記選択メモリセルの閾値電圧が第１基準電圧未満の第２基準電圧を超えたときに、前記コントローラは、次の書込みループにおいて、該第２基準電圧を超えた選択メモリセルに接続する前記ビット線の電圧を上昇させ、前記選択メモリセルの閾値電圧が前記第１基準電圧を超えたときに、前記選択メモリセルへの書き込みシーケンスを終了し、
前記第２データが前記所定データである場合、
前記第１データの書込みシーケンスにおいて、前記選択メモリセルの閾値電圧が前記第２基準電圧を超えたときに、前記選択メモリセルへの書き込みシーケンスを終了する、請求項１または請求項２に記載の半導体記憶装置。
【請求項４】
前記選択ワード線および前記隣接ワード線に接続された複数の前記メモリセルに格納するデータを格納する記憶部をさらに備えた請求項２に記載の半導体記憶装置。
【請求項５】
前記隣接メモリセルは、前記選択メモリセルに接続された選択ビット線の少なくとも一方側に隣接する隣接ビット線に接続されており、
前記コントローラは、前記第２データに基づいて、前記選択メモリセルの前記ベリファイ動作において用いられる前記基準電圧を低下させる、請求項１に記載の半導体記憶装置。
【請求項６】
前記第２データが前記第１データに対応する閾値電圧よりも高い閾値電圧に対応するデータである場合、前記コントローラは、前記選択メモリセルのベリファイ動作において用いられる前記基準電圧を低下させる、請求項５に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明による実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
ＮＡＮＤ型ＥＥＰＲＯＭ(Electrically Erasable Programmable Read-Only Memory) 等の不揮発性メモリでは、その微細化に伴い、セル間干渉効果（近接干渉効果）が増大している。セル間干渉効果が増大すると、メモリセルの閾値電圧が隣接メモリセルの書き込みによって変化する場合があり、それにより、メモリセルの閾値分布が広がってしまう。
【０００３】
一方、ＭＬＣ（Multi Level Cell）のような多値化されたメモリセルが開発されている。ＭＬＣでは、各値の閾値範囲が比較的狭いため、メモリセルの閾値分布は、できるだけ狭いことが好ましい。しかし、セル間干渉効果によってメモリセルの閾値分布が広がると、メモリセルの閾値分布をＭＬＣの閾値範囲内に入れることが困難になる。従って、装置の微細化とともに、メモリセルの閾値分布を狭くすることが望まれている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１３−５３２８８１号公報（米国特許第８３１０８７０号公報）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
微細化しつつ、メモリセルの閾値分布を狭くすることができる半導体記憶装置を提供する。
【課題を解決するための手段】
【０００６】
本実施形態による半導体記憶装置は、複数のワード線と、複数のビット線と、ワード線とビット線との交点に対応して設けられた複数のメモリセルとを備える。ワード線ドライバは、複数のワード線のうち選択ワード線に電圧を印加する。センスアンプ回路は、メモリセルのデータを検出する。コントローラは、ワード線ドライバおよびセンスアンプを制御する。選択ワード線に接続された選択メモリセルに第１データを書き込む書込みシーケンスは、ワード線ドライバによって選択ワード線へ書込み電圧を印加する書込み動作と、選択メモリセルの閾値電圧が基準電圧に達したときにコントローラによって該選択メモリセルへの書込みを終了するベリファイ動作と、を有する書込みループを含む。コントローラは、選択メモリセルに隣接する隣接メモリセルに書き込まれかつ第１データよりも後に書き込まれる第２データが消去状態よりも論理的に１段階だけ高いデータである場合に、選択メモリセルのベリファイ動作において用いられかつ選択メモリセルの書込みを終了させるために用いられる基準電圧を変更する。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態の不揮発性半導体記憶装置（以下、単にメモリともいう）の構成の一例を示す図。
【図２】ＮＡＮＤセルユニット１１の構成の一例を示す概略的な断面図。
【図３】メモリセルアレイ１のブロックおよびページ等の概念を示す図。
【図４】或る書込み対象ページに３ビットデータを書き込む書込みシーケンスの各段階を閾値分布で示したグラフ。
【図５】ワード線ＷＬにデータを書き込む順序を示す概念図。
【図６】第１の実施形態によるベリファイレベルおよびメモリセルＭＣの閾値分布を示すグラフ。
【図７】第１の実施形態によるファイン書込みシーケンスの一例を示すフロー図。
【図８】第１の実施形態の変形例によるファイン書込みシーケンスの一例を示すフロー図。
【図９】第２の実施形態によるベリファイレベルおよびメモリセルＭＣの閾値分布を示すグラフ。
【発明を実施するための形態】
【０００８】
以下、図面を参照して本発明に係る実施形態を説明する。本実施形態は、本発明を限定するものではない。
【０００９】
（第１実施形態）
図１は、第１実施形態の不揮発性半導体記憶装置（以下、単にメモリともいう）の構成の一例を示す図である。本実施形態によるメモリは、例えば、ＮＡＮＤ型ＥＥＰＲＯＭである。
【００１０】
本実施形態によるメモリは、メモリセルアレイ１と、センスアンプ回路２と、ロウデコーダ３と、入出力（Ｉ／Ｏ）バッファ４と、コントローラ５と、電圧発生回路６と、ＲＯＭフューズ７と、データ記憶回路８とを備えている。
【００１１】
メモリセルアレイ１は、同一のウェル上に形成された複数のメモリブロックＢＬＫ０〜ＢＬＫｉ（ｉは２以上の整数）を有している。また、各メモリブロックＢＬＫは、図１に示すように、Ｙ方向に延びる複数本のＮＡＮＤセルユニット１１をＸ方向に並べて構成されている。さらに、各ＮＡＮＤセルユニット１１は、直列に接続された複数のメモリセルＭＣ０〜ＭＣｎ（ｎは１以上の整数、例えば、ｎ＝６３）と、これらの両端に接続された選択トランジスタＳ１、Ｓ２とを含んでいる。メモリセルＭＣは、ワード線ＷＬとビット線ＢＬとの交点に対応して設けられている。
【００１２】
図１には、メモリブロックＢＬＫ０用のワード線ＷＬ０〜ＷＬｎおよび選択ゲート線ＳＧＳ、ＳＧＤが示されている。ワード線ＷＬ０〜ＷＬｎは、それぞれメモリセルＭＣ０〜ＭＣｎの制御ゲートに接続されており、いずれもＸ方向に延びている。また、選択ゲート線ＳＧＳ、ＳＧＤは、それぞれ選択トランジスタＳ１、Ｓ２のゲートに接続されており、いずれもＸ方向に延びている。また、ワード線ＷＬ０〜ＷＬｎと選択ゲート線ＳＧＳ、ＳＧＤは、Ｘ方向に隣接する複数のＮＡＮＤセルユニット１１に共有されている。
【００１３】
また、メモリブロックＢＬＫ０内の各選択トランジスタＳ１のソースは、同一のソース線ＳＬに接続されている。また、メモリブロックＢＬＫ０内の各選択トランジスタＳ２のドレインは、対応するビット線ＢＬ０〜ＢＬｊ（ｊは２以上の整数、例えば、７００００）に接続されている。図１に示すように、ソース線ＳＬは、Ｘ方向に延びており、ビット線ＢＬ０〜ＢＬｊは、Ｙ方向に延びている。
【００１４】
センスアンプ回路２は、センスアンプＳＡと、ビット線コントローラＢＬＣとを備えている。センスアンプＳＡは、メモリセルＭＣからビット線ＢＬ０〜ＢＬｊを通じてデータを読み出す回路である。センスアンプＳＡは、メモリセルＭＣのデータに応じた電圧と基準電圧とを比較することによって、該データの論理を検出する。ビット線コントローラＢＬＣは、コントローラ５から受け取ったアドレスに応じて、複数のビット線ＢＬのうち単数または複数のビット線ＢＬを選択的に駆動する。ビット線コントローラＢＬＣは、選択ビット線ＢＬの電圧を制御することにより、書込み制御、ベリファイリード、読み出し動作を行う。
【００１５】
例えば、センスアンプ回路２は、ベリファイリードおよび読出し動作において、選択ワード線ＷＬと選択ビット線ＢＬとに接続された選択メモリセルＭＣに格納されたデータを検出する。センスアンプ回路２はデータラッチ回路（図示せず）をさらに備え、センスアンプＳＡにおいて検出されたデータを一時的に保持可能である。
【００１６】
ロウデコーダ（ワード線ドライバ）３は、ワード線および選択ゲート線のいずれかを選択してそのワード線または選択ゲート線に電圧を印加する回路である。
【００１７】
Ｉ／Ｏバッファ４は、センスアンプ回路２と外部入出力端子との間でのデータの受け渡しや、コントローラ５からコマンドデータやアドレスデータの受け取りを行う回路である。
【００１８】
コントローラ５は、メモリセルアレイ１に対する種々の制御を行う制御部である。コントローラ５は、例えば、外部に設けられたホストまたはメモリコントローラ（ＭＨ）から書き込みイネーブル信号ＷＥｎ、読み出しイネーブル信号ＲＥｎ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥなどの外部制御信号を受け取る。それにより、コントローラ５は、ロウデコーダ（ワード線ドライバ）３やセンスアンプ回路２、ビット線コントローラＢＬＣ等を制御し、書込み動作、読出し動作、消去動作等を実行する。
【００１９】
電圧発生回路６は、複数の昇圧回路２１と、パルス発生回路２２とを有している。電圧発生回路６は、コントローラ５からの制御信号に基づいて、駆動する昇圧回路２１の個数を切り替える。また、電圧発生回路６は、パルス発生回路２２を制御することで、パルス電圧のパルス幅やパルス高さを調整する。
【００２０】
ＲＯＭフューズ７は、書き込み時や消去時のパルス電圧のパルス幅やパルス高さの設定値を格納しておくための記憶部である。例えば、ＲＯＭフューズ７は、書込み動作においてワード線に印加される書込み電圧（プログラム電圧）Ｖｐｇｍや書込み電圧の上昇幅（ステップアップ幅）ΔＶｐｇｍ、ベリファイレベル等の値を格納している。尚、書込み電圧Ｖｐｇｍ、ステップアップ幅ΔＶｐｇｍ、ベリファイレベルは、メモリの外部から与えられてもよい。
【００２１】
データ記憶回路８は、メモリセルアレイ１の制御に用いられる種々のデータを保存しておくための書き換え可能な不揮発性記憶回路である。
【００２２】
図２は、ＮＡＮＤセルユニット１１の構成の一例を示す概略的な断面図である。ＮＡＮＤセルユニット１１は、直列に接続された複数のメモリセルＭＣと、その両端に接続された２つの選択トランジスタＳ１、Ｓ２とを含む。ソース側の選択トランジスタＳ１はソース線ＳＬに、ドレイン側の選択トランジスタＳ２はビット線ＢＬにそれぞれ接続されている。
【００２３】
メモリセルＭＣ０〜ＭＣｎと、選択トランジスタＳ１、Ｓ２は、半導体基板１０１内のウェル１０２上に形成されており、ウェル１０２内の拡散層１０３により直列に接続されている。これらのトランジスタは、層間絶縁膜１２１により覆われている。
【００２４】
メモリセルＭＣは、それぞれ電荷蓄積層（例えば、フローティングゲート）１１２およびコントロールゲート１１３を備える。電荷蓄積層１１２は、半導体基板１０１上にゲート絶縁膜１１１を介して設けられている。コントロールゲート１１４は、電荷蓄積層１１２上にゲート間絶縁膜１１３を介して形成されている。また、選択トランジスタＳ１、Ｓ２の各々は、半導体基板１０１上にゲート絶縁膜１１５を介して形成されたゲート電極１１６を有している。なお、電荷蓄積層１１２は、電荷蓄積機能を有する絶縁膜（例えばシリコン窒化膜）としてもよい。
【００２５】
コントロールゲート１１３は、ワード線ＷＬ０〜ＷＬｎのいずれかに接続されている。ＮＡＮＤセルユニット１１の一端のメモリセルＭＣ０は、選択トランジスタＳ１を介してソース線ＳＬに接続されている。ＮＡＮＤセルユニット１１の他端のメモリセルＭＣｎは、選択トランジスタＳ２を介してビット線ＢＬに接続されている。尚、ワード線ＷＬ、ビット線ＢＬ、メモリセルＭＣの数は、特に限定されない。また、メモリセルＭＣは、ＳＬＣ（Single-Level Cell）、ＭＬＣ(Multi-Level Cell)、ＴＬＣ(Triple-Level Cell)またはＱＬＣ (Quadruple-Level Cell)以上のいずれでもよい。
【００２６】
図３は、メモリセルアレイ１のブロックおよびページ等の概念を示す図である。メモリセルアレイ１は、メモリブロック（以下、ブロックともいう）ＢＬＯＣＫ０〜ＢＬＯＣＫｍに分割されている。この例では、ブロックＢＬＯＣＫ０〜ＢＬＯＣＫｍは、それぞれデータ消去の最小単位である。各ブロックＢＬＯＣＫ０〜ＢＬＯＣＫｍは、複数のページで構成されている。ページは、データ読出しまたはデータ書込みの単位である。各ページは、ワード線ＷＬに対応しており、或るアドレスで特定される複数のメモリセルＭＣのデータによって構成されている。
【００２７】
ＮＡＮＤ型ＥＥＰＲＯＭは、ページ単位で、書込み動作および読出し動作を行う。すなわち、ビット線コントローラＢＬＣは、ページ内のビット線ＢＬの制御を同時に行うことができる。センスアンプＳＡは、ビット線ＢＬを介してメモリセルＭＣのデータを検出する。
【００２８】
次に、本実施形態によるメモリのデータ書込み動作を説明する。データ書込み動作（書込みシーケンス）は、書込み動作とベリファイリード動作とを含む書込みループを繰り返すことにより実行される。書込み動作は、選択ワード線へ書込み電圧を印加し、選択メモリセルの閾値電圧を上昇させてデータを書き込む動作である。ベリファイリード動作は、選択メモリセルの閾値電圧がベリファイレベルに達したか否か、即ち、選択メモリセルに所望のデータが書き込まれたか否かを検証する動作である。
【００２９】
書込みシーケンス内において、書込みループを繰り返すごとに、ワード線ドライバ３は、選択ワード線の電圧をΔＶｐｇｍずつ上昇（ステップアップ）させる。これにより、選択ワード線に接続された選択メモリセルの閾値電圧は、書込ループを実行するごとに、ほぼΔＶｐｇｍずつ上昇する。
【００３０】
選択メモリセルの閾値電圧が徐々に上昇すると、ベリファイリードにおいて、選択メモリセルの閾値電圧は、ベリファイレベル（基準電圧）に次第に接近し、いずれベリファイレベルに到達する。このとき、その選択メモリセルＭＣはベリファイをパス（合格）したことになる。ベリファイをパスすると、その選択メモリセルＭＣへの書込みは終了し、その選択メモリセルに対応するビット線は非選択状態（書込み禁止）となる。例えば、ビット線コントローラＢＬＣは、ベリファイをパスした選択メモリセルＭＣに対応するビット線の電圧を上昇させて固定し、選択ワード線に書込み電圧が印加されても、その選択メモリセルに印加される電圧を低下させる。これにより、その後の書込みループにおいて、ベリファイをパスした選択メモリセルＭＣには、データがそれ以上書き込まれない。従って、選択メモリセルの閾値電圧は、ベリファイレベル（基準電圧）以上で、かつ、その近傍に分布することになる。
【００３１】
尚、選択状態とは、選択ワード線に書込み電圧が印加されたときに、選択メモリセルに印加される電圧が低下しないようビット線の電圧を低下させた状態（書込み許可状態）である。非選択状態とは、選択ワード線に書込み電圧が印加されても、その選択メモリセルに印加される電圧が低下するようにビット線の電圧を固定した状態（書込み禁止状態）である。
【００３２】
書込みシーケンスの制御は、コントローラ５、センスアンプ２およびロウデコーダ（ワード線ドライバ）３により行われる。また、書込みシーケンスは、ワード線ＷＬ０、ＷＬ１、・・・ＷＬｎ−１、ＷＬｎの順に行う。
【００３３】
図４（Ａ）〜図４（Ｄ）は、或る書込み対象ページに３ビットデータを書き込む書込みシーケンスの各段階を閾値分布で示したグラフである。これらのグラフの縦軸は、選択メモリセルＭＣｓの数を示し、横軸は選択メモリセルＭＣｓの閾値電圧を示す。尚、縦軸は、対数表示されている。
【００３４】
本実施形態によるメモリは、フォギー−ファイン方式で３ビットデータをメモリセルＭＣへ書き込む。フォギー−ファイン方式は、フォギー書込みによって各レベルのデータを大まかに書き込んだ後、ファイン書込みによって各レベルのデータを精度良く書き込む方式である。さらに、フォギー書込みの前に、ＬＭ（Lower Middle）書込みを行う場合もある。本実施形態において、フォギー−ファイン方式は、ＬＭ書込み、フォギー書込みおよびファイン書込みを含み、それぞれの段階において、上記書込みシーケンスが実行される。
【００３５】
以下、選択メモリセルをＭＣｓとし、隣接メモリセルをＭＣとする。選択メモリセルＭＣｓは、選択ワード線ＷＬｓに接続されたメモリセルである。隣接メモリセルＭＣは、選択ワード線ＷＬｓに隣接するワード線ＷＬに接続されたメモリセルＭＣである。即ち、隣接メモリセルＭＣは、選択メモリセルＭＣｓに対してビット線の延伸方向（図２のＹ方向）に隣接するメモリセルである。例えば、図２において、選択メモリセルＭＣｓがＭＣ１とすると、隣接メモリセルＭＣは、ＭＣ０またはＭＣ２となる。
【００３６】
図４（Ａ）は、初期状態（消去状態）における選択メモリセルＭＣｓの閾値分布を示す。ブロック消去によってブロックＢＬＯＣＫ内の全てのメモリセルＭＣは、消去状態（Ｅｒレベルともいう）になっている。従って、ブロックＢＬＯＣＫ内のメモリセルＭＣの閾値電圧は、論理データの中で最も低いＥｒレベルとなっている。尚、レベルとは、閾値電圧のレベルを示し、以下、Ｅｒ＜ＬＭ、Ｅｒ＜Ａ＜Ｂ＜Ｃ＜Ｄ＜Ｅ＜Ｆ＜Ｇである。
【００３７】
（ＬＭ書込み）
次に、図４（Ｂ）に示すようにＬＭ書込み（下位ページの書き込み）が実行される。ＬＭ書込みでは、一部の選択メモリセルＭＣｓの閾値電圧をＥｒレベルからＬＭレベルに引き上げる。ＬＭレベルが書き込まれた選択メモリセルＭＣｓは、その後、閾値電圧の比較的高いデータ（例えば、Ｄ、Ｅ、Ｆ、Ｇレベル）を書き込むメモリセルである。一方、Ｅｒレベルのまま維持されている選択メモリセルＭＣｓは、Ｅｒレベルのままのメモリセル、あるいは、その後、閾値電圧の比較的低いデータ（例えば、Ａ、Ｂ、Ｃレベル）を書き込むメモリセルである。このようなＬＭ書き込みによって、選択メモリセルＭＣｓの閾値電圧は、ＥｒレベルとＬＭレベルとの２つの分布に分けられる。
【００３８】
ＬＭ書込みにおいて、上記書込みループが繰り返し実行される。ＬＭレベルの書込みは、ＬＭレベルの書込み対象である選択メモリセルＭＣｓがベリファイリードをパス（合格）したときに終了する。ベリファイリードにおけるベリファイレベル（基準電圧）は、例えば、所望のＬＭレベルの閾値分布の下端に設定される。選択メモリセルＭＣｓは、その閾値電圧がベリファイレベルを超えたときにパスする。ベリファイをパスした選択メモリセルＭＣｓは、上述の通り、非選択状態となる。従って、ＬＭ書込みにおけるそれ以降の書込みループにおいて、データはその選択メモリセルＭＣｓに書き込まれない。
【００３９】
（フォギー書込み）
次に、上位ページが書き込まれる。上位ページの書込みは、図４（Ｃ）に示すフォギー書込みの段階、および、図４（Ｄ）に示すファイン書込みの段階を含む。フォギー書込みは、各データを大まかに書き込む段階である。フォギー書込みによって、図４（Ｃ）に示すように、Ｅｒレベルにある選択メモリセルＭＣｓには、Ｅｒ、Ａ、Ｂ、Ｃレベルのいずれかのレベルのデータが比較的大きなΔＶｐｇｍでステップアップ書込みされ、大まかに書き込まれる。ＬＭレベルにある選択メモリセルＭＣｓには、Ｄ、Ｅ、Ｆ、Ｇレベルのいずれかのレベルのデータが同様に大まかに書き込まれる。フォギー書込みでは、ベリファイレベルがファイン書込みのそれよりも幾分低く設定されており、また、ΔＶｐｇｍが比較的大きく設定されている。従って、フォギー書込みにおいて、選択メモリセルＭＣｓが大まかに書き込まれると、その閾値分布は、Ｂ〜Ｇレベルのそれぞれに分かれるが、ファイン書込みの各レベルの閾値分布の上限値を超えない範囲で低電圧側へ広く分布する。
【００４０】
尚、フォギー書込みの段階では、Ａレベルを書き込むべき選択メモリセルＭＣｓには、書込みを実行しない。即ち、フォギー書込みの段階では、ＥｒおよびＡレベルの選択メモリセルＭＣｓは、ほぼＥｒレベルに属しており、明確に区別されていない。これは、フォギー書込みの段階において、Ａレベルの閾値電圧は、Ｅｒレベルの閾値電圧に非常に近く、Ａレベルのベリファイレベルが負に大きい電圧になる可能性があるからである。
【００４１】
フォギー書込みにおいて、改めて、書込みループが繰り返し実行される。書込み対象である選択メモリセルＭＣｓが各レベルのベリファイリードをパス（合格）したときにフォギー書込みは終了する。ベリファイリードにおけるＢ〜Ｇレベルのそれぞれのベリファイレベルは、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇの順に大きくなるように設定される。上述の通り、フォギー書込みにおけるＢ〜Ｇレベルのベリファイレベルは、ファイン書込みにおけるＢ〜Ｇレベルのベリファイレベルと比較してそれぞれ幾分低く設定されている。また、フォギー書込みのΔＶｐｇｍもファイン書込みのそれよりも大きく設定されている。これにより、フォギー書込みにおけるＢ〜Ｇレベルの選択メモリセルＭＣｓの閾値電圧は、それぞれ、ファイン書込みにおけるＢ〜Ｇレベルに対応する閾値電圧を超えることなく、かつ、それよりも広い分布を有する。このように、フォギー書込みにおいて選択メモリセルＭＣｓには、Ｂ〜Ｇレベルのデータが大まかに書き込まれる。
【００４２】
（ファイン書込み）
ファイン書込みは、フォギー書込み後に実行され、フォギー書込みよりも狭い閾値範囲内に各データを精度良く書き込む段階である。フォギー書込みによって大まかに書き込まれた選択メモリセルＭＣｓの閾値電圧は、図４（Ｄ）に示すように、ファイン書込みによって所望の閾値範囲内に書き込まれる。
【００４３】
ファイン書込みの段階では、Ｂ〜Ｇレベルのデータが書き込まれるとともに、ＡレベルのデータがＥｒレベルから書き込まれる。これにより、ファイン書込みでは、Ａレベルの選択メモリセルＭＣｓは、Ｅｒレベルから区別される。
【００４４】
ファイン書込みにおいて、改めて、書込みループが繰り返し実行される。書込み対象である選択メモリセルＭＣｓが各レベルのベリファイリードをパス（合格）したときにファイン書込みは終了する。ベリファイリードにおけるＡ〜Ｇレベルのそれぞれのベリファイレベルは、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇの順に大きくなるように設定される。上述の通り、ファイン書込みにおけるＢ〜Ｇレベルのベリファイレベルは、フォギー書込みにおけるＢ〜Ｇレベルのベリファイレベルと比較してそれぞれ高く、通常の読み出し動作に用いられる基準電圧にほぼ等しいか、あるいは、読み出し動作の基準電圧より幾分高い。これにより、選択メモリセルＭＣｓの閾値電圧は、それぞれ、ファイン書込みにおいて、Ｂ〜Ｇレベルに対応する所望の閾値分布に書き込まれる。それとともに、Ａレベルを書き込むべき選択メモリセルＭＣｓは、ＥｒレベルからＡレベルへ書き込まれる。このように、ファイン書込みにおいて選択メモリセルＭＣｓは、Ａ〜Ｇレベルのデータに書き込まれる。Ｅｒレベルの選択メモリセルＭＣｓは、そのままの状態を維持し、書き込みは実行されない。これにより、Ｅｒ〜Ｇレベルの３ビットデータが選択メモリセルＭＣｓに書き込まれる。
【００４５】
図４（Ａ）〜図４（Ｄ）に示す書込みは、ブロックＢＬＯＣＫ内のワード線（ページ）ＷＬごとに実行される。このとき、セル間干渉効果（近接干渉効果）を抑制するために、ＬＭ書込み、フォギー書込みおよびファイン書込みは、隣接ワード線ＷＬ間において段階的に（徐々に）実行される。
【００４６】
例えば、図５は、ワード線ＷＬにデータを書き込む順序を示す概念図である。尚、図５では、５本のワード線ＷＬ０〜ＷＬ４（５ページ）に接続されたメモリセルＭＣの状態を表示しており、ＷＬ５以降のワード線に接続されたメモリセルＭＣの状態については、図示を省略している。ステップＳ１〜Ｓ１６は、ＬＭ書込み、フォギー書込みまたはファイン書込みの実行順を時系列で示している。
【００４７】
まず、ステップＳ１において、ワード線ＷＬ０〜ＷＬ４に接続されたメモリセルＭＣは全て消去状態（Ｅｒレベル）となっている。
【００４８】
次に、ステップＳ２において、ワード線ＷＬ０に対してＬＭ書込みが実行される。これにより、ワード線ＷＬ０に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｂ）に示すような分布となる。
【００４９】
次に、ステップＳ３において、ワード線ＷＬ１に対してＬＭ書込みが実行される。これにより、ワード線ＷＬ１に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｂ）に示すような分布となる。
【００５０】
次に、ステップＳ４において、ワード線ＷＬ０に対してフォギー書込みが実行される。これにより、ワード線ＷＬ０に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｃ）に示すような分布となる。
【００５１】
次に、ステップＳ５において、ワード線ＷＬ２に対してＬＭ書込みが実行される。これにより、ワード線ＷＬ２に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｂ）に示すような分布となる。
【００５２】
次に、ステップＳ６において、ワード線ＷＬ１に対してフォギー書込みが実行される。これにより、ワード線ＷＬ１に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｃ）に示すような分布となる。
【００５３】
次に、ステップＳ７において、ワード線ＷＬ０に対してファイン書込みが実行される。これにより、ワード線ＷＬ０に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｄ）に示すような分布となる。
【００５４】
次に、ステップＳ８において、ワード線ＷＬ３に対してＬＭ書込みが実行される。これにより、ワード線ＷＬ３に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｂ）に示すような分布となる。
【００５５】
次に、ステップＳ９において、ワード線ＷＬ２に対してフォギー書込みが実行される。これにより、ワード線ＷＬ２に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｃ）に示すような分布となる。
【００５６】
次に、ステップＳ１０において、ワード線ＷＬ１に対してファイン書込みが実行される。これにより、ワード線ＷＬ１に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｄ）に示すような分布となる。
【００５７】
次に、ステップＳ１１において、ワード線ＷＬ４に対してＬＭ書込みが実行される。これにより、ワード線ＷＬ４に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｂ）に示すような分布となる。
【００５８】
次に、ステップＳ１２において、ワード線ＷＬ３に対してフォギー書込みが実行される。これにより、ワード線ＷＬ３に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｃ）に示すような分布となる。
【００５９】
次に、ステップＳ１３において、ワード線ＷＬ２に対してファイン書込みが実行される。これにより、ワード線ＷＬ２に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｄ）に示すような分布となる。
【００６０】
次に、ステップＳ１４において、図示しないが、ワード線ＷＬ５に対してＬＭ書込みが実行される。これにより、ワード線ＷＬ５に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｂ）に示すような分布となる。
【００６１】
次に、ステップＳ１５において、ワード線ＷＬ４に対してフォギー書込みが実行される。これにより、ワード線ＷＬ４に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｃ）に示すような分布となる。
【００６２】
次に、ステップＳ１６において、ワード線ＷＬ３に対してファイン書込みが実行される。これにより、ワード線ＷＬ３に接続された選択メモリセルＭＣｓの閾値分布は、図４（Ｄ）に示すような分布となる。
【００６３】
このように、或るワード線ＷＬｎに接続されたメモリセルＭＣは、それに隣接するワード線ＷＬｎ±１に接続されたメモリセルＭＣに対して２段階以上先行して書き込まれることはない。例えば、ワード線ＷＬ０に接続されたメモリセルＭＣは、それに隣接するワード線ＷＬ１に接続されたメモリセルＭＣよりも先にＬＭ状態（ＬＭ書込み実行済みの状態）となるが、ワード線ＷＬ１に接続されたメモリセルＭＣがＬＭ状態となる前にフォギー状態（フォギー書込み実行済みの状態）となることはない。また、ワード線ＷＬ０に接続されたメモリセルＭＣは、ワード線ＷＬ１に接続されたメモリセルＭＣよりも先にフォギー状態となるが、ワード線ＷＬ１に接続されたメモリセルＭＣがフォギー状態となる前にファイン状態（ファイン書込み実行済みの状態）になることはない。即ち、ワード線ＷＬ０に接続されたメモリセルＭＣは、それに隣接するワード線ＷＬ１に接続されたメモリセルＭＣよりも２段階以上先行して書込みが進むことはない。これにより、セル間干渉効果を抑制しつつ、３ビットデータをメモリセルＭＣに書き込むことができる。
【００６４】
尚、選択メモリセルＭＣｓが消去状態、ＬＭ状態、フォギー状態である場合、セル間干渉効果を受けても、その後の書込みによって閾値分布は修正され得る。従って、選択メモリセルＭＣｓが消去状態、ＬＭ状態、フォギー状態である場合、セル間干渉効果はさほど問題とならない。しかし、選択メモリセルＭＣｓがファイン状態である場合、選択メモリセルＭＣｓは、書込みが完了しているので、セル間干渉効果を受けると、その影響は修正されない。このため、選択メモリセルＭＣｓがファイン状態である場合には、セル間干渉効果の抑制は重要となる。
【００６５】
ここで、ワード線に対してファイン書込みを実行する際に、その一方に隣接するワード線に接続されたメモリセルＭＣは、既にファイン書込みが完了している。例えば、ステップＳ９〜Ｓ１０において、隣接ワード線ＷＬ１に接続された隣接メモリセルＭＣにファイン書込みを実行する場合、選択ワード線ＷＬ０に接続された選択メモリセルＭＣｓは、すでにファイン状態となっている。
【００６６】
上述の通り、フォギー書込みでは、Ｂ〜Ｇレベルのデータが隣接メモリセルＭＣに大まかに書き込まれている。従って、隣接メモリセルＭＣのファイン書込みにおいて、Ｂ〜Ｇレベルのデータの書込みは、隣接メモリセルＭＣの閾値電圧をさほど大きくはシフトさせない。従って、隣接メモリセルＭＣにＢ〜Ｇレベルのデータをファイン書込みすることは、選択メモリセルＭＣｓに対してさほどセル間干渉効果を与えない。しかし、Ａレベルのデータは、Ｅｒレベルに含まれており、ファイン書込みにおいて、ＥｒレベルからＡレベルへ大きく遷移する。従って、隣接メモリセルＭＣにＡレベルのデータをファイン書込みする場合、選択メモリセルＭＣｓの閾値電圧は比較的大きく上昇する。即ち、隣接メモリセルＭＣにＡレベルのデータをファイン書込みすることは、選択メモリセルＭＣｓに対して比較的大きなセル間干渉効果を与える。
【００６７】
例えば、図５の矢印Ａ１で示すステップＳ９〜Ｓ１０のファイン書込みにおいて、ワード線ＷＬ１に接続されたメモリセルＭＣにＡレベルが書き込まれた場合、ワード線ＷＬ０に接続されたメモリセルＭＣは、比較的大きなセル間干渉効果を受ける。これにより、ワード線ＷＬ０に接続されたメモリセルＭＣの閾値分布は高電圧側へ広がってしまう。
【００６８】
また、図５の矢印Ａ２で示すステップＳ１２〜Ｓ１３のファイン書込みにおいて、ワード線ＷＬ２に接続されたメモリセルＭＣにＡレベルが書き込まれた場合、ワード線ＷＬ１に接続されたメモリセルＭＣは、比較的大きなセル間干渉効果を受ける。これにより、ワード線ＷＬ１に接続されたメモリセルＭＣの閾値分布は高電圧側へ広がってしまう。
【００６９】
さらに、図５の矢印Ａ３で示すステップＳ１５〜Ｓ１６のファイン書込みにおいて、ワード線ＷＬ３に接続されたメモリセルＭＣにＡレベルが書き込まれた場合、ワード線ＷＬ２に接続されたメモリセルＭＣは、比較的大きな近接干渉効果を受ける。これにより、ワード線ＷＬ２に接続されたメモリセルＭＣの閾値分布は高電圧側へ広がってしまう。
【００７０】
このように、隣接メモリセルへの書込みデータの論理に依って、それ以前にファイン書込みされた選択メモリセルＭＣｓが比較的大きなセル間干渉効果を受けてしまう場合がある。
【００７１】
そこで、本実施形態において、コントローラ５は、選択メモリセルＭＣｓよりも後に書き込まれる隣接メモリセルＭＣへの書込みデータの論理に基づいて、選択メモリセルＭＣｓのベリファイ動作に用いられるベリファイレベル（基準電圧）を変更する。この場合、同一書込みレベルに対して、複数のベリファイレベルがファイン書込みのために必要となる。複数のベリファイレベルは、ＲＯＭフューズ７またはデータ記憶回路８に予め格納される。例えば、図６に示す、第１および第２ベリファイレベルＶＲＦａ＿１〜ＶＲＦｇ＿１、ＶＲＦａ＿２〜ＶＲＦｆ＿２がＲＯＭフューズ７またはデータ記憶回路８に予め格納される。また、コントローラ５は、選択メモリセルＭＣｓよりも後に書き込まれる隣接メモリセルＭＣへの書込みデータを参照する必要がある。このため、記憶部としてのＩ／Ｏバッファ４は、選択ワード線ＷＬｓに接続された選択メモリセルＭＣｓに書き込むデータだけでなく、その後に書き込まれる隣接ワード線ＷＬに接続された隣接メモリセルＭＣに書き込むデータをも格納する。即ち、Ｉ／Ｏバッファ４は、隣接する複数のワード線ＷＬに対応する複数ページ分のデータを格納する。尚、選択メモリセルＭＣｓおよび隣接メモリセルＭＣへの書込みデータは、センスアンプ回路２内に設けられた記憶部（図示せず）に格納してもよい。
【００７２】
以下、図６を参照して、ベリファイレベルの変更例を説明する。ここで、選択メモリセルＭＣｓへの書込みデータが“第１データ”に対応し、隣接メモリセルＭＣへの書込みデータが“第２データ”に対応する。
【００７３】
図６は、第１の実施形態によるベリファイレベルおよびメモリセルＭＣの閾値分布を示すグラフである。図６のＥｒ〜Ｇは、Ｅｒ〜Ｇレベルのファイン書込み後の選択メモリセルＭＣｓの閾値分布（第１データの閾値分布）を示している。ベリファイレベルＶＲＦａ＿１〜ＶＲＦｇ＿１は、第１基準電圧としての第１ベリファイレベルを示す。ベリファイレベルＶＲＦａ＿２〜ＶＲＦｆ＿２は、第２基準電圧としての第２ベリファイレベルを示す。尚、本実施形態において、ＶＲＦｇ＿２は設定されていない。ＧレベルはＥｒ〜Ｇレベルの中で閾値電圧の最も高いレベルであるので、セル間干渉効果によって、Ｇレベルの閾値電圧が高電圧側へシフトしても、センスアンプＳＡは、Ｇレベルのデータを問題なく検出できるからである。従って、Ｇレベルの第２ベリファイレベルは、第１ベリファイレベルＶＲＦｇ＿１と同一でよい。
【００７４】
第１ベリファイレベルＶＲＦａ＿１〜ＶＲＦｇ＿１は、通常のファイン書込みにおいて用いられるベリファイレベルである。第１ベリファイレベルＶＲＦａ＿１〜ＶＲＦｇ＿１は、隣接メモリセルＭＣへの書込みデータ（第２データ）が所定レベル（例えば、Ａレベル）以外のレベル（例えば、Ｅｒ、Ｂ〜Ｇレベル）である場合に、選択メモリセルＭＣｓの各書込みループのベリファイリードに用いられる。この場合、コントローラ５は、選択メモリセルＭＣｓの各書込みループのベリファイリードにおいて、第１ベリファイレベルＶＲＦａ＿１〜ＶＲＦｇ＿１を用いる。選択メモリセルＭＣｓの閾値電圧が選択メモリセルＭＣｓへの書込みデータ（第１データ）に対応する第１ベリファイレベル（ＶＲＦａ＿１〜ＶＲＦｇ＿１のいずれか）を超えたときに、選択メモリセルＭＣｓのファイン書込みが終了する。ファイン書込み後の選択メモリセルＭＣｓの閾値分布は、図６の細線Ｌａ＿１〜Ｌｇ＿１のようになる。
【００７５】
第２ベリファイレベルＶＲＦａ＿２〜ＶＲＦｆ＿２は、セル間干渉効果を考慮した場合のベリファイレベルである。第２ベリファイレベルＶＲＦａ＿２〜ＶＲＦｆ＿２は、隣接メモリセルＭＣへの書込みデータ（第２データ）が所定レベル（例えば、Ａレベル）である場合に、選択メモリセルＭＣｓの各書込みループのベリファイリードに用いられる。この場合、コントローラ５は、選択メモリセルＭＣｓの各書込みループのベリファイリードにおいて、第２ベリファイレベルＶＲＦａ＿２〜ＶＲＦｆ＿２を用いる。選択メモリセルＭＣｓの閾値電圧が選択メモリセルＭＣｓへの書込みデータ（第１データ）に対応する第２ベリファイレベル（ＶＲＦａ＿２〜ＶＲＦｆ＿２のいずれか）を超えたときに、選択メモリセルＭＣｓのファイン書込みが終了する。この場合、ファイン書込み後の選択メモリセルＭＣｓの閾値分布は、図６の太線Ｌａ＿２〜Ｌｆ＿２および細線Ｌｇ＿１のようになる。
【００７６】
第１および第２ベリファイレベルＶＲＦａ＿１〜ＶＲＦｇ＿１、ＶＲＦａ＿２〜ＶＲＦｆ＿２は、それぞれ所望のＥｒ〜Ｇレベルの閾値分布の下端の電圧に設定されている。しかし、第２ベリファイレベルＶＲＦａ＿２〜ＶＲＦｆ＿２はそれぞれ第１ベリファイレベルＶＲＦａ＿１〜ＶＲＦｆ＿１よりも低い電圧である。従って、第１ベリファイレベルＶＲＦａ＿１〜ＶＲＦｇ＿１を用いた場合、図６の細線Ｌａ＿１〜Ｌｇ＿１で示すように、ファイン書込み後の選択メモリセルＭＣｓの閾値分布は、比較的高くなる。第２ベリファイレベルＶＲＦａ＿２〜ＶＲＦｆ＿２を用いた場合、図６の太線Ｌａ＿２〜Ｌｆ＿２で示すように、ファイン書込み後の選択メモリセルＭＣｓの閾値分布は、細線Ｌａ＿１〜Ｌｇ＿１で示すそれよりも低くなる。
【００７７】
このように、本実施形態によれば、隣接メモリセルＭＣへの書込みデータ（第２データ）が所定レベル（例えば、Ａレベル）である場合に、コントローラ５は、選択メモリセルＭｃｓの書込みを終了させるために用いられるベリファイレベルを、第１ベリファイレベルから第２ベリファイレベルへ低下させる。これにより、選択メモリセルＭＣｓの閾値電圧を予め低くする。例えば、選択メモリセルＭＣｓの閾値電圧を、図６の太線Ｌａ＿２〜Ｌｇ＿２で示す閾値範囲にする。これにより、隣接メモリセルＭＣがファイン書込みされたときに、選択メモリセルＭＣｓの閾値電圧は、セル間干渉効果を受けて上昇し、太線Ｌａ＿２〜Ｌｆ＿２で示す閾値範囲から細線Ｌａ＿１〜Ｌｆ＿１で示す閾値範囲へシフトすることになる。即ち、選択メモリセルＭＣｓの閾値電圧は、セル間干渉効果を受けて上昇するものの、その上昇は、或る程度キャンセルされる。このように、セル間干渉効果を受けながらも、選択メモリセルＭＣｓの閾値電圧を所望の閾値範囲（図６の細線Ｌａ＿１〜Ｌｆ＿１で示される範囲）に入れることが可能となる。
【００７８】
一方、隣接メモリセルＭＣへの書込みデータが所定レベル（例えば、Ａレベル）以外のレベル（例えば、Ｅｒ、Ｂ〜Ｇレベル）である場合に、コントローラ５は、選択メモリセルＭＣｓの書込みを終了させるために用いられるベリファイレベルを第１ベリファイレベルに維持する。従って、選択メモリセルＭＣｓは、その閾値電圧が所望の閾値範囲（図６の細線Ｌａ＿１〜Ｌｇ＿１で示される範囲）に入るように書き込まれる。これにより、セル間干渉効果が比較的小さい場合には、選択メモリセルＭＣｓの閾値電圧を当初から所望の閾値範囲に入れることができる。この場合、隣接メモリセルＭＣにデータがファイン書込みされても、選択メモリセルＭＣｓの閾値電圧はさほど変化しないので、選択メモリセルＭＣｓの閾値電圧は、所望の閾値分布を維持する。
【００７９】
このように、本実施形態によれば、セル間干渉効果が比較的大きい場合であっても、あるいは、比較的小さい場合であっても、選択メモリセルＭＣｓの閾値電圧を所望の閾値範囲に入れることができ、選択メモリセルＭＣｓの閾値分布を所望の閾値分布（図６の細線Ｌａ＿１〜Ｌｇ＿１）にすることができる。その結果、本実施形態によるメモリは、微細化しつつ、メモリセルＭＣの閾値分布を狭くすることができる。
【００８０】
図７は、第１の実施形態によるファイン書込みシーケンスの一例を示すフロー図である。図７は、或る選択ワード線ＷＬｓに接続された選択メモリセルＭＣｓへの書き込みを示す。
【００８１】
まず、選択メモリセルＭＣｓおよび隣接メモリセルＭＣに書き込まれるデータがＩ／Ｏバッファ４に格納される（Ｓ１００）。
【００８２】
次に、ビット線コントローラＢＬＣが選択ビット線ＢＬｓに低レベル電圧を印加し、それ以外の非選択ビット線ＢＬを高レベル電圧に固定する（Ｓ１０２）。これにより、非選択ビット線ＢＬを書込み禁止（inhibit）状態にする。尚、Ｅｒレベルを書き込む選択メモリセルＭＣｓに接続された選択ビット線ＢＬも高レベル電圧に固定して、書込み禁止状態にする。
【００８３】
次に、ワード線ドライバＷＤＲＶが選択ワード線ＷＬｓに書込み電圧Ｖｐｇｍを印加する（Ｓ１０４）。これにより、選択ビット線ＢＬｓおよび選択ワード線ＷＬｓに接続された選択メモリセルＭＣｓに書込みが実行される。
【００８４】
次に、コントローラ５は、選択ワード線ＷＬｓに対応するページ内の選択メモリセルＭＣｓについてベリファイリード動作を実行する（Ｓ１０６）。例えば、ベリファイリード動作は、ビット線ＢＬｉに対応する選択メモリセルＭＣｓｉ（ｉ＝０〜ｊ）について、ｉの順番に実行する。ｉの初期値は０である。尚、書込み禁止状態となっている選択メモリセルＭＣｓｉについては、ベリファイを実行せずに（スキップして）、ｉをｉ＋１へインクリメントする（Ｓ１０８のＹＥＳ）。
【００８５】
選択メモリセルＭＣｓｉが書込み禁止状態となっていない場合（Ｓ１０８のＮＯ）、コントローラ５は、選択メモリセルＭＣｓｉの閾値電圧が第１ベリファイレベルに達しているか否かを判定する（Ｓ１１０）。選択メモリセルＭＣｓｉの閾値電圧がすでに第１ベリファイレベルに達している場合（Ｓ１１０のＹＥＳ）、コントローラ５は、その選択メモリセルＭＣｓｉを書込み禁止に設定し、ｉをｉ＋１へインクリメントする（Ｓ１１２、Ｓ１１４）。書込み禁止の選択メモリセルＭＣｓｉに接続されたビット線ＢＬは、高レベル電圧に固定される。尚、書込みシーケンスが開始された当初において、選択メモリセルＭＣｓは、Ｅｒレベルにあるので、ほとんどの選択メモリセルＭＣｓの閾値電圧は、次のように、まだ第１ベリファイレベルに達していない。
【００８６】
選択メモリセルＭＣｓｉの閾値電圧が第１ベリファイレベルに達していない場合（Ｓ１１０のＮＯ）、コントローラ５は、選択メモリセルＭＣｓｉの閾値電圧が第２ベリファイレベルに達しているか否かを判定する（Ｓ１１６）。選択メモリセルＭＣｓｉの閾値電圧が第２ベリファイレベルに達していない場合（Ｓ１１６のＮＯ）、コントローラ５は、選択メモリセルＭＣｓｉを選択状態に維持したままとし、ｉをｉ＋１へインクリメントする（Ｓ１１４）。この場合、選択メモリセルＭＣｓｉの閾値電圧は、第１ベリファイレベルよりも低い第２ベリファイレベルにも達しておらず、かなり低い状態である。従って、コントローラ５は、選択メモリセルＭＣｓｉを選択状態のままとし、後述するように、選択ワード線ＷＬｓの電圧をステップアップさせて、再度、書込みを行う。
【００８７】
一方、選択メモリセルＭＣｓｉの閾値電圧が第２ベリファイレベルに達している場合（Ｓ１１６のＹＥＳ）、選択メモリセルＭＣｓの閾値電圧は、第１ベリファイレベルに満たないが、第２ベリファイレベルに達している。ここで、コントローラ５は、Ｉ／Ｏバッファ４に格納されている隣接メモリセルＭＣへの書込みデータ（第２データ）を参照する。コントローラ５は、隣接メモリセルＭＣへの書込みデータが所定レベル（例えば、Ａレベル）のデータであるか否かを判定する（Ｓ１１８）。
【００８８】
隣接メモリセルＭＣへの書込みデータがＡレベル以外のＥｒ、Ｂ〜Ｇレベルである場合（Ｓ１１８のＮＯ）、コントローラ５は、選択メモリセルＭＣｓｉの選択状態を維持したままとし、ｉをｉ＋１へインクリメントする（Ｓ１１４）。上述の通り、隣接メモリセルＭＣへの書込みデータがＡレベル以外のＥｒ、Ｂ〜Ｇレベルである場合、セル間干渉効果による選択メモリセルＭＣｓの閾値電圧のシフト（上昇幅）は比較的小さい。この場合、選択メモリセルＭＣｓの書込みは、その閾値電圧が第１ベリファイレベルに達するまで継続される。コントローラ５は、第１ベリファイレベルを選択するといってもよい。従って、選択メモリセルＭＣｓの閾値電圧が第２ベリファイレベルを超えていても、コントローラ５は、選択メモリセルＭＣｓｉを選択状態のままとし、閾値電圧が第１ベリファイレベルに達するまで、選択ワード線ＷＬｓの電圧をステップアップさせて書込みを繰り返す。
【００８９】
一方、隣接メモリセルＭＣへの書込みデータがＡレベルである場合（Ｓ１１８のＹＥＳ）、コントローラ５は、選択メモリセルＭＣｓｉを書込み禁止に設定し、ｉをｉ＋１へインクリメントする（Ｓ１２０、Ｓ１１４）。書込み禁止の選択メモリセルＭＣｓｉに接続されたビット線ＢＬは、高レベル電圧に固定される。上述の通り、隣接メモリセルＭＣへの書込みデータがＡレベルである場合、セル間干渉効果による選択メモリセルＭＣｓの閾値電圧のシフト（上昇幅）は比較的大きい。この場合、選択メモリセルＭＣｓの書込みは、その閾値電圧が第２ベリファイレベルに達したときに終了する。即ち、コントローラ５は、ベリファイレベルを、第１ベリファイレベルから第２ベリファイレベルへ変更している。コントローラ５は、第２ベリファイレベルを選択していると言ってもよい。従って、選択メモリセルＭＣｓの閾値電圧が第２ベリファイレベルに達した場合、コントローラ５は、選択メモリセルＭＣｓｉを書込み禁止に設定する。
【００９０】
ステップＳ１１４において、ｉをｉ＋１へインクリメントした後、コントローラ５は、ｉがｊに達したか否かを判定する（Ｓ１２２）。即ち、コントローラ５は、選択ワード線ＷＬｓに対応するページ内の全ての選択メモリセルＭＣｓ０〜ＭＣｊのベリファイが終了したかどうかを判定する。ｉがｊに達しておらず、ページ内にベリファイの終了していない選択メモリセルＭＣｓがある場合（Ｓ１２２のＮＯ）、ステップＳ１０８〜Ｓ１２０を繰り返す。
【００９１】
一方、ｉがｊに達し、ページ内の全ての選択メモリセルＭＣｓについてベリファイが終了すると（Ｓ１２２のＹＥＳ）、コントローラ５は、ベリファイをパスしていない選択メモリセルＭＣｓ（非選択状態となっておらず書込みの終了していない選択メモリセルＭＣｓｉ）の個数が所定数Ｎ１以下かどうかを判定する（Ｓ１２４）。ベリファイをパスしていない選択メモリセルＭＣｓの個数が所定数Ｎ１より多い場合（Ｓ１２４のＮＯ）、コントローラ５は、選択ワード線ＷＬｓの書込み電圧をＶｐｇｍからＶｐｇｍ＋ΔＶｐｇｍへステップアップさせて（Ｓ１２６）、次の書込みループ（Ｓ１０２〜Ｓ１２２）を実行する。このとき、コントローラ５は、書込みが終了した選択メモリセルＭＣｓｉのビット線ＢＬについては非選択状態（書込み禁止状態）にし（Ｓ１０２）、その選択メモリセルＭＣｓにはそれ以降の書込みループにおいてデータを書き込まない。一方、コントローラ５は、書込みがまだ終了していない選択メモリセルＭＣｓｉのビット線ＢＬを選択状態（書込許可状態）のままとし、それ以降の書込みループにおいてその選択メモリセルＭＣｓにデータを書き込む。
【００９２】
このように書込みループ（Ｓ１０２〜Ｓ１１６）を繰り返し、書込みが終了していない選択メモリセルＭＣｓの個数が所定数Ｎ１以下となった場合（Ｓ１１５のＹＥＳ）、選択ワード線ＷＬｓ（当該ページ）のファイン書込みシーケンスが終了する。
【００９３】
その後、次の隣接ワード線ＷＬを選択ワード線として書込みシーケンスが実行される。全てのワード線ＷＬ０〜ＷＬｎ（全ページ）に対して書込みシーケンスが実行されると、そのブロックＢＬＯＣＫの書込みが終了する。
【００９４】
このように、本実施形態では、隣接メモリセルＭＣへの書込みデータがＡレベル以外のＥｒ、Ｂ〜Ｇレベルである場合（Ｓ１１８のＮＯ）、コントローラ５は、第１ベリファイレベル（第１基準電圧）を用いて選択メモリセルＭＣｓをベリファイする。隣接メモリセルＭＣへの書込みデータがＡレベルである場合（Ｓ１１８のＹＥＳ）、コントローラ５は、第１ベリファイレベルよりも低い第２ベリファイレベル（第２基準電圧）を用いて選択メモリセルＭＣｓをベリファイする。
【００９５】
これにより、隣接メモリセルＭＣへの書込みデータがＡレベル以外のＥｒ、Ｂ〜Ｇレベルである場合（Ｓ１１８のＮＯ）、選択メモリセルＭＣｓは、その閾値電圧が第１ベリファイレベルまで達するように書き込まれる。一方、隣接メモリセルＭＣへの書込みデータがＡレベルである場合（Ｓ１１８のＹＥＳ）、選択メモリセルＭＣｓは、その閾値電圧が第２ベリファイレベルまで達するように書き込まれる。その結果、選択メモリセルＭＣｓの閾値電圧は、セル間干渉効果を考慮した閾値電圧レベルに書き込まれる。
【００９６】
上述のようなフォギー−ファイン方式を採用した場合、例えば、ＥｒレベルからＡレベルへのファイン書込みが大きなセル間干渉効果を与える。即ち、隣接メモリセルＭＣへの書込みデータ（第２データ）がＥｒレベルよりも論理的に１段階だけ高いＡレベルのデータである場合、隣接メモリセルＭＣへの書込みは、選択メモリセルＭＣｓに大きなセル間干渉効果を与える。従って、このような場合に、コントローラ５は、ベリファイレベルを第１ベリファイレベルから第２ベリファイレベルへ低下させ、選択メモリセルＭＣｓの閾値電圧を予め低くする。これにより、セル間干渉効果を受けても、選択メモリセルＭＣｓの閾値分布は所望の分布に接近し得る。
【００９７】
一方、Ｂ〜Ｇレベルのデータは、フォギー書込みによって或る程度書き込まれている。従って、隣接メモリセルＭＣへのＢ〜Ｇレベルのファイン書込みは、大きなセル間干渉効果を与えない。即ち、隣接メモリセルＭＣへの書込みデータ（第２データ）がＥｒレベルよりも論理的に２段階以上高いレベルのデータである場合、隣接メモリセルＭＣへの書込みは、選択メモリセルＭＣｓに大きなセル間干渉効果を与えない。従って、このような場合に、コントローラ５は、ベリファイレベルを第１ベリファイレベルのままとして、選択メモリセルＭＣｓの閾値電圧を所望の分布にする。
【００９８】
勿論、フォギー−ファイン方式以外の書込み方式では、Ｅｒレベルよりも論理的に２段階以上高いレベルのデータを隣接メモリセルＭＣへファイン書込みするときに、選択メモリセルＭＣｓへ大きなセル間干渉効果を与える場合もある。このような場合、Ｅｒレベルよりも論理的に２段階以上高いレベルのデータを隣接メモリセルＭＣへファイン書込みするときに、コントローラ５は、選択メモリセルＭＣｓのファイン書込み時に、ベリファイレベルを第１ベリファイレベルから第２ベリファイレベルへ低下させてもよい。
【００９９】
（変形例）
図８は、第１の実施形態の変形例によるファイン書込みシーケンスの一例を示すフロー図である。本変形例では、ＱＰＷ方式の複数のベリファイレベルを利用して、第１の実施形態のファイン書込みを実行する。
【０１００】
ＮＡＮＤ型ＥＥＰＲＯＭは、ＱＰＷ（Quick Pass Write）方式を用いてデータを書き込む場合がある。ＱＰＷ方式では、書込みシーケンスにおいて、選択メモリセルの閾値電圧がベリファイ・ロウレベルを超えたときに、ビット線コントローラＢＬＣは、ベリファイ・ロウレベルを超えた選択メモリセルＭＣｓに対応するビット線ＢＬの電圧ＶｃｈをΔＶｐｇｍと同程度の電圧ΔＶｃｈ（ΔＶｃｈ＝０〜２ΔＶｐｇｍ）だけ上昇させる。これにより、その選択メモリセルＭＣｓに印加される書込み電圧の上昇を緩和させ、書込みループにおいて、選択メモリセルＭＣｓの閾値電圧を小刻みに上昇させる。その後、その選択メモリセルＭＣｓの閾値電圧がベリファイ・ハイレベルを超えたときに、コントローラ５は、選択メモリセルＭＣｓへの書き込みシーケンスを終了する。
【０１０１】
例えば、選択メモリセルＭＣｓの閾値電圧がベリファイ・ロウレベルに達するまでは、ワード線ドライバＷＤＲＶは、書込みループを実行するごとに選択ワード線ＷＬｓの書込み電圧Ｖｐｇｍを比較的大きなステップアップ幅ΔＶｐｇｍ（例えば、０.３Ｖ）で上昇させる。このとき、ビット線コントローラＢＬＣは、選択メモリセルＭＣｓに対応するビット線電圧をほぼ０Ｖにする。これにより、選択メモリセルＭＣｓの閾値電圧、ベリファイ・ロウレベルへ向かって大きくシフトさせ、選択メモリセルＭＣｓは速く書き込まれる。
【０１０２】
選択メモリセルＭＣｓの閾値電圧がベリファイ・ロウレベルに達した後、ベリファイ・ハイレベルに達するまでの間、ビット線コントローラＢＬＣは、選択メモリセルＭＣｓに対応するビット線ＢＬの電圧Ｖｃｈを０ＶからΔＶｃｈ（例えば、０．４Ｖ）に設定する。これにより、選択メモリセルＭＣｓの閾値電圧は、ベリファイ・ハイレベルへ向かって小さくシフトし、小刻みに書き込まれる。ＱＰＷ方式を採用することにより、選択ワード線ＷＬｓの閾値電圧は、ベリファイ・ハイレベルの近傍に集中し、閾値分布を非常に狭くすることができる。
【０１０３】
このようなＱＰＷ方式では、複数のベリファイレベルは、既に設定されており、ＲＯＭフューズ７またはメモリ８に予め格納されている。第１の実施形態の第１および第２ベリファイレベルは、それぞれＱＰＷ方式に用いられる上記ベリファイ・ハイレベルおよびベリファイ・ロウレベルであってもよい。即ち、ＱＰＷ方式のベリファイ・ハイレベルおよびベリファイ・ロウレベルを第１および第２ベリファイレベルとして利用して、第１の実施形態のファイン書込みを実行してもよい。
【０１０４】
図８のフロー図を参照して、本変形例によるファイン書込みを説明する。
【０１０５】
まず、第１の実施形態と同様に、ステップＳ１００〜Ｓ１１８を実行する。ここで、ステップＳ１１０の第１ベリファイレベルにはベリファイ・ハイレベルを用いている。ステップＳ１１６の第２ベリファイレベルにはベリファイ・ロウレベルを用いている。
【０１０６】
選択メモリセルＭＣｓの閾値電圧が第１および第２ベリファイレベルに達していない場合（Ｓ１１６のＮＯ）、ビット線コントローラＢＬＣは、次の書込みループにおいて、その選択メモリセルＭＣｓに対応するビット線ＢＬの電圧Ｖｃｈを０Ｖのままとし、ステップＳ１１４以降を実行する。即ち、ステップＳ１１６において、選択メモリセルＭＣｓの閾値電圧が第２ベリファイレベルに達するまで、コントローラ５は、書込みループ（Ｓ１０２からＳ１２４）を実行する。書込みループの動作自体は、第１の実施形態における書込みループの動作と同様である。
【０１０７】
一方、選択メモリセルＭＣｓｉの閾値電圧が第２ベリファイレベルに達した場合（Ｓ１１６のＹＥＳ）、コントローラ５は、Ｉ／Ｏバッファ４に格納されている隣接メモリセルＭＣへの書込みデータ（第２データ）を参照する。コントローラ５は、隣接メモリセルＭＣへの書込みデータが所定データ（例えば、Ａレベル）であるか否かを判断する（Ｓ１１８）。
【０１０８】
隣接メモリセルＭＣへの書込みデータがＡレベル以外のＢ〜Ｇレベルである場合（Ｓ１１８のＮＯ）、コントローラ５は、選択メモリセルＭＣｓに対応するビット線ＢＬの電圧Ｖｃｈを０ＶからΔＶｃｈへ変更する（Ｓ１２１）。即ち、選択メモリセルＭＣｓの閾値電圧が第１ベリファイレベルと第２ベリファイレベルの間にあり（Ｓ１１６のＹＥＳ）、かつ、書込みデータがＡレベル以外のＢ〜Ｇレベルである場合（Ｓ１１８のＹＥＳ）、ビット線コントローラＢＬＣは、次の書込みループにおいて、選択メモリセルＭＣｓに対応するビット線ＢＬの電圧Ｖｃｈを０ＶからΔＶｃｈへ設定する。これにより、選択メモリセルＭＣｓは、ＱＰＷ方式で書き込まれ、選択メモリセルＭＣｓの閾値電圧を小刻みに上昇させる。
【０１０９】
その後、コントローラ５は、ステップＳ１１４以降を実行する。即ち、ステップＳ１１０において、選択メモリセルＭＣｓの閾値電圧が第１ベリファイレベルに達するまで、コントローラ５は、書込みループ（Ｓ１０２からＳ１２４）を実行する。選択メモリセルＭＣｓの閾値電圧が第１ベリファイレベルに達した場合（Ｓ１１０のＹＥＳ）、その選択メモリセルＭＣｓは書込禁止となり（Ｓ１１２）、その選択メモリセルＭＣｓへの書込みが終了する。
【０１１０】
一方、隣接メモリセルＭＣへの書込みデータがＡレベルである場合（Ｓ１１８のＹＥＳ）、コントローラ５は、選択メモリセルＭＣｓｉを書込み禁止に設定する（Ｓ１２０）。この場合、第１の実施形態と同様に、コントローラ５は、ステップＳ１１４を実行し、ＱＰＷは実行しない。即ち、隣接メモリセルＭＣへの書込みデータがＡレベルである場合、選択メモリセルＭＣｓの閾値電圧が第２ベリファイレベル（ベリファイ・ロウレベル）に達したときに、書き込みは終了し、第１ベリファイレベル（ベリファイ・ハイレベル）は用いられない。これにより、選択メモリセルＭＣｓの閾値電圧は、セル間干渉効果を考慮したレベルに書き込まれる。
【０１１１】
書込みループ（Ｓ１０２〜Ｓ１２２）を繰り返し、書込みが終了していない選択メモリセルＭＣｓの個数が所定数Ｎ１以下となった場合に（Ｓ１２４のＹＥＳ）、選択ワード線ＷＬｓのファイン書込みシーケンスが終了する。その後、次の隣接ワード線ＷＬを選択ワード線として書込みシーケンスが実行される。
【０１１２】
このように、本変形例は、ＱＰＷ方式の複数のベリファイレベル（ベリファイ・ロウレベルおよびベリファイ・ハイレベル）を利用して、セル間干渉効果を考慮したファイン書込みを実行する。これにより、本変形例は、第１および第２ベリファイレベルを新しく生成することなく、第１の実施形態と同様の効果を得ることができる。
【０１１３】
また、本変形例によれば、隣接メモリセルＭＣへの書込みデータがＡレベル以外である場合、通常のＱＰＷを実行し、隣接メモリセルＭＣへの書込みデータがＡレベルである場合、選択メモリセルＭＣｓの閾値電圧がベリファイ・ロウレベルに達したときに書込みが終了する。従って、ＱＰＷの書込み時間を増大させること無く、寧ろ、書込みデータがＡレベルである場合には、書込み時間を短縮させつつ、メモリセルＭＣの閾値分布を狭くすることができる。
【０１１４】
尚、上記実施形態では、各メモリセルＭＣは３ビットデータを格納するが、各メモリセルＭＣは、２ビット以下あるいは、４ビット以上のデータを格納してもよい。
【０１１５】
（第２の実施形態）
第１の実施形態では、隣接するワード線ＷＬ間（隣接ページ間）におけるセル間干渉効果を考慮している。第２の実施形態では、隣接するビット線ＢＬ間におけるセル間干渉効果を考慮する。即ち、ワード線の延伸方向（図１または図２のＸ方向）に隣接するメモリセル間の近接干渉効果を考慮する。従って、第２の実施形態において隣接メモリセルＭＣは、選択メモリセルＭＣｓに接続された選択ビット線の少なくとも一方に隣接する隣接ビット線に接続されており、選択メモリセルＭＣｓに対してワード線の延伸方向に隣接するメモリセルＭＣである。
【０１１６】
この場合、隣接する複数のメモリセルＭＣは、同一ページに属する。従って、Ｉ／Ｏバッファ４は、複数ページのデータを格納する必要は無く、書込み対象ページのデータを格納可能であればよい。
【０１１７】
また、同一ページ内において、通常、低いレベルのデータほど先に書込み終了し、高いレベルのデータほど書込み終了までに時間がかかる。従って、隣接メモリセルの書込みデータが選択メモリセルＭＣｓの書込みデータよりも閾値電圧において高いデータである場合、選択メモリセルＭＣｓはセル間干渉効果を受け易い。第２の実施形態では、このようなセル間干渉効果を考慮して書込みを行う。尚、第２の実施形態によるメモリの構成は、第１の実施形態のそれと同様でよい。
【０１１８】
以下の実施形態では、各メモリセルＭＣに２ビットデータを格納する例を示す。しかし、各メモリセルＭＣは、２ビット未満あるいは、３ビット以上のデータを格納してもよい。
【０１１９】
図９は、第２の実施形態によるベリファイレベルおよびメモリセルＭＣの閾値分布を示すグラフである。図９のＥｒ〜Ｃは、Ｅｒ〜Ｃレベルのファイン書込み後の選択メモリセルＭＣｓの閾値分布（第１データの閾値分布）を示している。ベリファイレベルＶＲＦａ＿１１〜ＶＲＦｃ＿１１は、第１基準電圧としての第１ベリファイレベルを示す。ベリファイレベルＶＲＦａ＿１２およびＶＲＦｂ＿１２は、第２基準電圧としての第２ベリファイレベルを示す。
【０１２０】
選択メモリセルＭＣｓのファイン書込み時のベリファイレベルは、該選択メモリセルＭＣｓのいずれか一方あるいは両側に隣接する単数または複数の隣接メモリセルＭＣへの書込みデータ（第２データ）に基づいて変更（低下）される。例えば、単数または複数の隣接メモリセルＭＣへの書込みデータが選択メモリセルＭＣｓへの書込みデータ（例えば、Ａレベル）よりも閾値電圧において高いデータ（例えば、Ｂ、Ｃレベル）である場合、コントローラ５は、選択メモリセルＭＣｓのベリファイに用いられるベリファイレベルを第１ベリファイレベルから第２ベリファイレベルへ低下させる。単数または複数の隣接メモリセルＭＣへの書込みデータが選択メモリセルＭＣｓへの書込みデータ以下のレベル（例えば、Ｅｒ、Ａレベル）である場合、コントローラ５は、選択メモリセルＭＣｓのベリファイに用いられるベリファイレベルを第１ベリファイレベルのままとする。即ち、コントローラ５は、隣接メモリセルＭＣへの書込みデータと選択メモリセルＭＣｓへの書込みデータとの比較によって、選択メモリセルＭＣｓのベリファイに用いられるベリファイレベルを変更する。
【０１２１】
尚、ＶＲＦｃ＿１２は設定されていない。ＣレベルはＥｒ〜Ｃレベルの中で閾値電圧の最も高いレベルであるので、セル間干渉効果によって、Ｃレベルの閾値電圧が高電圧側へシフトしても、センスアンプＳＡは、Ｃレベルのデータを確実に検出できるからである。従って、Ｃレベルの第２ベリファイレベルは、第１ベリファイレベルＶＲＦｃ＿１と同一である。
【０１２２】
第１ベリファイレベルＶＲＦａ＿１１〜ＶＲＦｃ＿１１は、通常のファイン書込みにおいて用いられるベリファイレベルである。隣接メモリセルＭＣへの書込みデータが選択メモリセルＭＣｓへの書込みデータ（例えば、Ａレベル）以下のレベル（例えば、Ｅｒ、Ａレベル）である場合に、コントローラ５は、選択メモリセルＭＣｓの各書込みループのベリファイリードにおいて、第１ベリファイレベルＶＲＦａ＿１１〜ＶＲＦｇ＿１１を選択する。選択メモリセルＭＣｓの閾値電圧がその書込みデータ（第１データ）に対応する第１ベリファイレベル（ＶＲＦａ＿１１〜ＶＲＦｃ＿１１のいずれか）を超えたときに、選択メモリセルＭＣｓのファイン書込みが終了する。この場合、ファイン書込み後の選択メモリセルＭＣｓの閾値分布は、図９の細線Ｌａ＿１１〜Ｌｇ＿１１のようになる。
【０１２３】
第２ベリファイレベルＶＲＦａ＿１２、ＶＲＦｂ＿１２は、セル間干渉効果を考慮した場合のベリファイレベルである。隣接メモリセルＭＣへの書込みデータが選択メモリセルＭＣｓへの書込みデータより大きいレベル（例えば、Ｂ、Ｃレベル）である場合に、コントローラ５は、選択メモリセルＭＣｓの各書込みループのベリファイリードにおいて、第２ベリファイレベルＶＲＦａ＿１２、ＶＲＦｂ＿１２を選択する。選択メモリセルＭＣｓの閾値電圧がそれぞれに対応する第２ベリファイレベル（ＶＲＦａ＿１２、ＶＲＦｂ＿１２のいずれか）を超えたときに、その選択メモリセルＭＣｓのファイン書込みが終了する。ファイン書込み後の選択メモリセルＭＣｓの閾値分布は、図９の太線Ｌａ＿１２、Ｌｂ＿１２および細線Ｌｃ＿１のようになる。
【０１２４】
第１および第２ベリファイレベルは、いずれも所望のＥｒ〜Ｃレベルの閾値分布の下端に設定されている。しかし、第２ベリファイレベルＶＲＦａ＿１２、ＶＲＦｂ＿１２はそれぞれ第１ベリファイレベルＶＲＦａ＿１１、ＶＲＦｂ＿１１よりも低い電圧である。従って、選択メモリセルＭＣｓが第１ベリファイレベルＶＲＦａ＿１１〜ＶＲＦｃ＿１１を用いてベリファイリードされた場合、図９の細線Ｌａ＿１１〜Ｌｃ＿１１で示すように、ファイン書込み後の選択メモリセルＭＣｓの閾値電圧は、比較的高くなる。選択メモリセルＭＣｓが第２ベリファイレベルＶＲＦａ＿１２、ＶＲＦｂ＿１２を用いてベリファイリードされた場合、図９の太線Ｌａ＿１２、Ｌｂ＿１２で示すように、ファイン書込み後の選択メモリセルＭＣｓの閾値電圧は、比較的低くなる。
【０１２５】
このように、第２の実施形態によれば、隣接メモリセルＭＣへの書込みデータ（第２データ）のレベルが選択メモリセルＭＣｓへの書込みデータより大きい場合に、コントローラ５は、ベリファイレベルを第１ベリファイレベルから第２ベリファイレベルへ低下させ、選択メモリセルＭＣｓの閾値電圧を予め低くする。例えば、選択メモリセルＭＣｓの閾値電圧を、図９の太線Ｌａ＿１２、Ｌｂ＿１２で示す閾値範囲に入れる。これにより、隣接メモリセルＭＣがファイン書込みされたときに、選択メモリセルＭＣｓの閾値電圧は、セル間干渉効果を受けて上昇し、太線Ｌａ＿１２、Ｌｂ＿１２で示す閾値範囲から細線Ｌａ＿１１、Ｌｂ＿１１で示す閾値範囲へシフトする。即ち、選択メモリセルＭＣｓの閾値電圧は、セル間干渉効果を受けて上昇するものの、その上昇は、或る程度キャンセルすることができる。このように、セル間干渉効果を受けながらも、選択メモリセルＭＣｓの閾値電圧を所望の閾値範囲（細線Ｌａ＿１１、Ｌｂ＿１１で示される範囲）に入れることが可能となる。
【０１２６】
一方、隣接メモリセルＭＣへの書込みデータのレベルが選択メモリセルＭＣｓへの書込みデータのそれ以下である場合に、選択メモリセルＭＣｓは、通常通り、所望の閾値分布（図９の細線Ｌａ＿１１、Ｌｂ＿１１）になるように書き込まれる。これにより、セル間干渉効果が比較的小さい場合には、選択メモリセルＭＣｓの閾値電圧を当初から所望の閾値範囲に入れることができる。この場合、隣接メモリセルＭＣにデータがファイン書込みされても、選択メモリセルＭＣｓの閾値電圧はさほど変化しないので、選択メモリセルＭＣｓの閾値電圧は、所望の閾値分布を維持する。尚、第２の実施形態によるメモリの動作フロー図は、図７のフロー図と同様でよい。
【０１２７】
このように、第２の実施形態によれば、セル間干渉効果が比較的大きい場合であっても、あるいは、比較的小さい場合であっても、選択メモリセルＭＣｓの閾値電圧を所望の閾値範囲に入れることができ、選択メモリセルＭＣｓの閾値分布を所望の閾値分布（図９の細線Ｌａ＿１１〜Ｌｃ＿１１）にすることができる。その結果、第２の実施形態によるメモリは、第１の実施形態と同様の効果を得ることができる。
【０１２８】
第２の実施形態において、隣接メモリセルＭＣへの書込みデータが選択メモリセルＭＣｓへの書込みデータよりも論理的に２段階以上高いデータである場合に、コントローラ５は、選択メモリセルＭＣｓのベリファイレベルを低下させてもよい。例えば、選択メモリセルＭＣｓへの書込みデータがＡレベルであり、かつ、その両側の２つの隣接メモリセルＭＣへの書込みデータがＣレベルである場合に、コントローラ５は、選択メモリセルＭＣｓのベリファイレベルを低下させてもよい。
【０１２９】
また、隣接メモリセルＭＣへの書込みデータが選択メモリセルＭＣｓへの書込みデータよりも論理的に１段階高いデータである場合に、コントローラ５は、選択メモリセルＭＣｓのベリファイレベルを低下させてもよい。例えば、選択メモリセルＭＣｓへの書込みデータがＡレベルであり、かつ、その両側の２つの隣接メモリセルＭＣへの書込みデータがＢレベルである場合に、コントローラ５は、選択メモリセルＭＣｓのベリファイレベルを低下させてもよい。
【０１３０】
さらに、一方側の１つの隣接メモリセルＭＣへの書込みデータに基づいて、コントローラ５は、選択メモリセルＭＣｓのベリファイレベルを低下させてもよい。この場合、例えば、選択メモリセルＭＣｓの第２ベリファイレベルは、両側の隣接メモリセルＭＣへの書込みデータに基づいて設定される第２ベリファイレベルと第１ベリファイレベルとの間の中間レベルであってもよい。
【０１３１】
このように、第２の実施形態では、コントローラ５は、選択メモリセルＭＣｓおよび隣接メモリセルＭＣの書込みデータの組み合わせに基づいて、ベリファイレベルを変更する。これにより、セル間干渉効果を考慮しつつ、メモリセルＭＣの閾値分布をさらに狭くすることができる。
【０１３２】
上述の通り、同一ページ内においては、低いレベルのデータほど先に書込み終了し、高いレベルのデータほど書込み終了までに時間がかかる。従って、隣接メモリセルの書込みデータが選択メモリセルＭＣｓの書込みデータよりも閾値電圧において高いデータである場合、選択メモリセルＭＣｓはセル間干渉効果を受け易い。よって、このような場合であっても、第２の実施形態によれば、セル間干渉効果を受けながらも、選択メモリセルＭＣｓの閾値分布を所望の分布に接近させることができる。
【０１３３】
第２の実施形態は、第１の実施形態と同様にＱＰＷに適用可能である。即ち、第２の実施形態は、上記変形例と組み合わせてもよい。これにより第２の実施形態は、上記変形例の効果をも得ることができる。この場合、メモリの動作フロー図は、図８のフロー図と同様でよい。
【０１３４】
また、上記実施形態は、メモリセルアレイが平面状に配列された２次元構造メモリだけでなく、メモリセルアレイが立体的に配列された３次元構造（積層型）メモリにも適用可能である。
【０１３５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１３６】
１・・・メモリセルアレイ、２・・・センスアンプ回路、３・・・ロウデコーダ、４・・・Ｉ／Ｏバッファ、５・・・コントローラ、６・・・電圧発生回路、７・・・ＲＯＭフューズ、８・・・データ記憶回路、ＳＡ・・・センスアンプ、ＢＬＣ・・・ビット線コントローラ、ＲｏｗＤＥＣ・・・ロウデコーダ、ＷＤＲＶ・・・ワード線ドライバ
【図１】
0006502880.tif 000002
【図２】
0006502880.tif 000003
【図３】
0006502880.tif 000004
【図４】
0006502880.tif 000005
【図５】
0006502880.tif 000006
【図６】
0006502880.tif 000007
【図７】
0006502880.tif 000008
【図８】
0006502880.tif 000009
【図９】
0006502880.tif 000010