(57)【要約】【課題】セル間干渉効果を低減する。【解決手段】不揮発性半導体記憶装置１は、閾値電圧により決まるデータを不揮発に記憶する複数のメモリセルと、複数のメモリセルに接続され、かつ第１のワード線と、前記第１のワード線から数えてｎ（ｎは１以上の整数）番目の第２のワード線とを含む複数のワード線と、ワード線の電圧を制御してメモリセルにデータを書き込み、かつ第１のワード線から前記第２のワード線に向かって順に書き込む制御回路１１とを含む。制御回路１１は、第１のワード線に接続されたメモリセルへの書き込みシーケンスにおいて、第１のワード線に接続されたメモリセルに書き込む前に、第２のワード線に書き込み電圧を印加する。【選択図】      図６
2012027966.tif 000002
【特許請求の範囲】
【請求項１】
データを不揮発に記憶する複数のメモリセルと、
前記複数のメモリセルに接続され、かつ第１のワード線と、前記第１のワード線から数えてｎ（ｎは１以上の整数）番目の第２のワード線とを含む複数のワード線と、
前記ワード線の電圧を制御して前記メモリセルにデータを書き込み、かつ前記第１のワード線から前記第２のワード線に向かって順に書き込む制御回路と、
を具備し、
前記制御回路は、前記第１のワード線に接続されたメモリセルへの書き込みシーケンスにおいて、前記第１のワード線に接続されたメモリセルに書き込む前に、前記第２のワード線に書き込み電圧を印加することを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記第１のワード線への書き込みシーケンスは、ステップアップする書き込み電圧の印加と、書き込みベリファイとの繰り返しにより行われることを特徴とする請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
前記メモリセルは、下位ビットデータと上位ビットデータとを含み閾値電圧で定まる２ビット以上のデータを記憶可能であり、
前記制御回路は、前記第２のワード線に接続されたメモリセルのうち下位ビット書き込み状態から上位ビット書き込み状態に移る際に閾値電圧の変動が大きいメモリセルに書き込み電圧を印加することを特徴とする請求項１又は２に記載の不揮発性半導体記憶装置。
【請求項４】
前記制御回路は、前記第１のワード線に書き込み電圧を印加する前に、前記第１のワード線への書き込みベリファイを行うことを特徴とする請求項１乃至３のいずれかに記載の不揮発性半導体記憶装置。
【請求項５】
前記制御回路は、前記第２のワード線に書き込み電圧を印加する前に、前記第２のワード線への書き込みベリファイを行うことを特徴とする請求項１乃至４のいずれかに記載の不揮発性半導体記憶装置。
【請求項６】
前記第１のワード線の書き込みデータを保持する第１のラッチ回路と、
前記第２のワード線の書き込みデータを保持する第２のラッチ回路と、
をさらに具備し、
前記制御回路は、前記第１及び第２のラッチ回路のデータを用いて、前記第１のワード線への書き込みシーケンスを行うことを特徴とする請求項１乃至５のいずれかに記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
電気的に書き換えが可能な不揮発性半導体記憶装置（ＥＥＰＲＯＭ）の一つとして、ＮＡＮＤ型フラッシュメモリが知られている。このＮＡＮＤ型フラッシュメモリのデータ記憶容量を大きくするための技術として、メモリセルの閾値分布を細分化し、メモリセルが複数ビットデータ（多値データ）を記憶可能とする多値記憶方式が用いられる。
【０００３】
ＮＡＮＤ型フラッシュメモリ内のあるメモリセルに対して電荷蓄積層に電荷を注入すると、このメモリセル以前に書き込まれた隣接メモリセルの電荷蓄積層の電位が変動するおそれがある（セル間干渉効果）。その結果、元々書き込まれていた隣接メモリセルの閾値がする場合がある。これは、書き込みデータごとの閾値分布が狭い多値メモリにおいてより深刻である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２３８３９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
実施形態は、セル間干渉効果を低減することが可能な不揮発性半導体記憶装置を提供する。
【課題を解決するための手段】
【０００６】
実施形態に係る不揮発性半導体記憶装置は、データを不揮発に記憶する複数のメモリセルと、前記複数のメモリセルに接続され、かつ第１のワード線と、前記第１のワード線から数えてｎ（ｎは１以上の整数）番目の第２のワード線とを含む複数のワード線と、前記ワード線の電圧を制御して前記メモリセルにデータを書き込み、かつ前記第１のワード線から前記第２のワード線に向かって順に書き込む制御回路とを具備する。前記制御回路は、前記第１のワード線に接続されたメモリセルへの書き込みシーケンスにおいて、前記第１のワード線に接続されたメモリセルに書き込む前に、前記第２のワード線に書き込み電圧を印加することを特徴とする不揮発性半導体記憶装置。
【図面の簡単な説明】
【０００７】
【図１】ＮＡＮＤ型フラッシュメモリ１の構成を示すブロック図。
【図２】メモリセルアレイ１０及びビット線制御回路１２の構成例を示す回路図。
【図３】センスアンプユニットＳＡＵの構成例を示す回路図。
【図４】データ制御ユニットＤＣＵの構成例を示す回路図。
【図５】２値記憶方式におけるメモリセルＭＣの閾値分布を説明する図。
【図６】第１の実施形態に係るプログラム時の電圧関係を説明する図。
【図７】第１の実施形態に係るプログラムシーケンスを示すフローチャート。
【図８】ワード線レベルとラッチデータとの対応関係を示す図。
【図９】ワード線レベルとラッチデータとの対応関係を示す図。
【図１０】変形例に係るプログラムシーケンスを示すフローチャート。
【図１１】変形例に係るプログラムシーケンスを示すタイミングチャート。
【図１２】４値記憶方式におけるメモリセルＭＣの閾値分布を説明する図。
【図１３】プログラム順序を説明する図。
【図１４】第２の実施形態に係るプログラム時の電圧関係を説明する図。
【図１５】第２の実施形態に係るプログラムシーケンスを示すフローチャート。
【図１６】ワード線レベルとラッチデータとの対応関係を示す図。
【図１７】変形例に係るプログラム時の電圧関係を説明する図。
【図１８】第３の実施形態に係るプログラム時の電圧関係を説明する図。
【図１９】第３の実施形態に係るプログラムシーケンスを示すフローチャート。
【図２０】ワード線レベルとラッチデータとの対応関係を示す図。
【図２１】変形例に係るプログラムシーケンスを示すフローチャート。
【図２２】ワード線レベルとラッチデータとの対応関係を示す図。
【図２３】ワード線レベルとラッチデータとの対応関係を示す図。
【図２４】変形例２に係るプログラムシーケンスを示すフローチャート。
【図２５】ワード線レベルとラッチデータとの対応関係を示す図。
【図２６】ワード線レベルとラッチデータとの対応関係を示す図。
【図２７】ワード線レベルとラッチデータとの対応関係を示す図。
【図２８】第４の実施形態に係るプログラムシーケンスを示すフローチャート。
【図２９】ワード線レベルとラッチデータとの対応関係を示す図。
【図３０】第５の実施形態に係るプログラム時の電圧関係を説明する図。
【発明を実施するための形態】
【０００８】
以下、実施形態について図面を参照して説明する。以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【０００９】
［１］第１の実施形態
［１−１］回路構成
不揮発性半導体記憶装置としてNAND型フラッシュメモリを例に挙げて、図１の要部ブック図と図２の回路図を用いて説明する。メモリセルアレイ１０は、電気的に書き換えが可能なフラッシュメモリセルがマトリクス状に配置されて構成されている。図２に示すように、メモリセルアレイ１０には、Ｘ方向に延在する複数のワード線ＷＬ、Ｘ方向と交差するＹ方向に延在する複数のビット線ＢＬ、及びＸ方向に延在するソース線ＳＲＣが配設される。メモリセルアレイ１０の具体的な構成については後述する。
【００１０】
ワード線ＷＬには、ワード線制御回路１１が接続されている。ワード線制御回路１１は、ワード線ＷＬを選択し、また、データの消去、書き込み及び読み出しに必要な各種電圧をワード線ＷＬに印加する。ワード線制御回路１１は、ロウデコーダ、ワード線ドライバなどを含んでいる。
【００１１】
ビット線ＢＬには、ビット線制御回路１２が接続されている。ビット線制御回路１２は、ビット線ＢＬを選択し、ビット線ＢＬの電圧を制御し、メモリセルのデータ消去、メモリセルへのデータ書き込み、及びメモリセルからのデータ読み出しを行う。ビット線制御回路１２の具体的な構成については後述する。
【００１２】
カラムデコーダ１３は、アドレスデコーダ１４の出力信号に応じて、ビット線ＢＬを選択するカラム選択信号ＳＥＬを生成する。このカラム選択信号ＳＥＬは、ビット線制御回路１２に送られる。
【００１３】
入出力制御回路１５は、外部との間で各種データの入出力を制御する。具体的には、入出力制御回路１５は、外部から供給される各種コマンド、アドレス信号、及び入力データを受け、また、出力データを外部に出力する。データ書き込み時、入力データ（書き込みデータ）は、入出力制御回路１５からデータ入出力バッファ１６を介してビット線制御回路１２に送られる。データ読み出し時、ビット線制御回路１２によって読み出された出力データ（読み出しデータ）は、データ入出力バッファ１６を介して入出力制御回路１５に送られ、入出力制御回路１５から外部に出力される。
【００１４】
入出力制御回路１５からデータ入出力バッファ１６に一時的に格納されたアドレス信号は、アドレスデコーダ１４に送られる。このアドレスデコーダ１４によりデコードされた信号は、ワード線制御回路１１、及びカラムデコーダ１３に送られる。
【００１５】
入出力制御回路１５からデータ入出力バッファ１６に一時的に格納されたコマンドは、制御信号発生回路１７に送られる。制御信号発生回路１７には、外部からチップイネーブル信号／ＣＥ、書き込みイネーブル信号／ＷＥ、読み出しイネーブル信号／ＲＥ、アドレスラッチイネーブル信号ＡＬＥ、及びコマンドラッチイネーブル信号ＣＬＥ等の外部制御信号が供給される。また、制御信号発生回路１７は、外部にレディ／ビジー信号Ｒ／Ｂを供給する。
【００１６】
制御信号発生回路１７は、動作モードに応じて外部から供給される外部制御信号及びコマンドに基づいて、データ書き込み及び消去のシーケンスを制御する制御信号、及びデータ読み出しを制御する制御信号を発生する。この制御信号は、ワード線制御回路１１、ビット線制御回路１２、及び制御電圧生成回路１８に送られる。
【００１７】
制御電圧生成回路１８は、制御信号発生回路１７から送られる各種制御信号に応じて、メモリセルアレイ１０、ワード線制御回路１１、及びビット線制御回路１２の各種動作に必要な電圧、例えば、読み出し電圧、書き込み電圧、ベリファイ電圧、消去電圧等を生成する。
【００１８】
［１−１Ａ］メモリセルアレイ１０及びビット線制御回路１２の構成
メモリセルアレイ１０は、１個又は複数個のブロックＢＬＫを備えている。ブロックＢＬＫは、データ消去の最小単位である。
【００１９】
各ブロックＢＬＫは、Ｘ方向に沿って順に配列された（ｉ＋１）個のＮＡＮＤストリングを備えている（ｉは、０以上の整数）。ＮＡＮＤストリングに含まれる選択ゲートトランジスタＳ１は、ドレインがビット線ＢＬに接続され、ゲートが選択ゲート線ＳＧＤに共通接続されている。ＮＡＮＤストリングに含まれる選択ゲートトランジスタＳ２は、ソースがソース線ＳＲＣに共通接続され、ゲートが選択ゲート線ＳＧＳに共通接続されている。
【００２０】
各メモリセルＭＣは、ｐ型ウェル上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（Metal Oxide Semiconductor Field Effect Transistor）により構成されている。積層ゲート構造は、ｐ型ウェル上にゲート絶縁膜を介在して形成された電荷蓄積層、及び電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルＭＣは、電荷蓄積層に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。第１の実施形態では、メモリセルＭＣは、１ビットデータ（２値データ）を記憶するように構成されている。
【００２１】
各ＮＡＮＤストリングにおいて、（ｊ＋１）個（ｊは、０以上の整数）のメモリセルＭＣは、選択ゲートトランジスタＳ１のソースと選択ゲートトランジスタＳ２のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、（ｊ＋１）個のメモリセルＭＣは、隣接するもの同士で拡散領域（ソース領域若しくはドレイン領域）を共有するような形でＹ方向に直列接続される。
【００２２】
各ＮＡＮＤストリングにおいて、最もソース側に位置するメモリセルＭＣから順に、制御ゲート電極がワード線ＷＬ０〜ＷＬｊにそれぞれ接続されている。従って、ワード線ＷＬｊに接続されたメモリセルＭＣのドレインは選択ゲートトランジスタＳ１のソースに接続され、ワード線ＷＬ０に接続されたメモリセルＭＣのソースは選択ゲートトランジスタＳ２のドレインに接続されている。
【００２３】
ワード線ＷＬ０〜ＷＬｊは、ブロックＢＬＫ内の各ＮＡＮＤストリング間で、メモリセルＭＣの制御ゲート電極を共通接続している。つまり、ブロックＢＬＫ内において同一行にあるメモリセルＭＣの制御ゲート電極は、同一のワード線ＷＬに接続される。同一のワード線ＷＬに接続されるメモリセルＭＣは、ページという単位を構成する。ページは、書き込み及び読み出しの最小単位である。
【００２４】
ビット線ＢＬ０〜ＢＬｉは、ブロックＢＬＫ間で、選択ゲートトランジスタＳ１のドレインを共通接続している。つまり、複数個のブロックＢＬＫ内において同一列にあるＮＡＮＤストリングは、同一のビット線ＢＬに接続される。
【００２５】
ビット線制御回路１２は、センスアンプ回路１２Ａ、データ制御回路１２Ｂ、及びビット線ＢＬに対応する数のカラム選択ゲートＣＴ０〜ＣＴｉを備えている。センスアンプ回路１２Ａは、ビット線ＢＬに対応する数のセンスアンプユニットＳＡＵを備えている。各センスアンプユニットＳＡＵは、１本のビット線ＢＬに接続されている。データ制御回路１２Ｂは、ビット線ＢＬに対応する数のデータ制御ユニットＤＣＵを備えている。各データ制御ユニットＤＣＵは、１個のセンスアンプユニットＳＡＵに接続されている。
【００２６】
センスアンプユニットＳＡＵは、データ読み出し時、メモリセルＭＣからビット線ＢＬに読み出されたデータを検知し、保持する。データ制御ユニットＤＣＵは、カラム選択ゲートＣＴを介してデータ入出力バッファ１６に接続されている。カラム選択ゲートＣＴは、カラムデコーダ１３から送られるカラム選択信号ＳＥＬ０〜ＳＥＬｉに基づいて動作する。
【００２７】
書き込み動作（プログラム動作ともいう）、読み出し動作、及びプログラムベリファイ動作（ベリファイ動作ともいう）において、センスアンプユニットＳＡＵに接続されたビット線ＢＬが選択されるとともに、１本のワード線ＷＬが選択される。この選択されたワード線ＷＬに接続される１ページ分のメモリセルＭＣに、書き込み電圧（プログラム電圧ともいう）、ベリファイ電圧又は読み出し電圧を印加することにより一斉にプログラム動作、読み出し動作又はベリファイ動作が行われる。
【００２８】
［１−１Ｂ］センスアンプユニットＳＡＵの構成
図３は、センスアンプユニットＳＡＵの構成例を示す回路図である。センスアンプユニットＳＡＵは、４個のＰチャネルＭＯＳトランジスタ（以下、ＰＭＯＳと記す）２１〜２４と、７個のＮチャネルＭＯＳトランジスタ（以下、ＮＭＯＳと記す）３１〜３７と、例えばクロックドインバータ回路により構成されたラッチ回路ＬＡＴ１とを備えている。
【００２９】
ＰＭＯＳ２１のソースは電源電圧Ｖｄｄが供給されるノードに接続され、ドレインはＰＭＯＳ２２、ＮＭＯＳ３１、及びＮＭＯＳ３２を介してデータ制御ユニットＤＣＵに接続されている。ＰＭＯＳ２１のゲートは、後述するラッチ回路ＬＡＴ１のノードＩＮＶに接続されている。ＰＭＯＳ２２のゲートには信号ＢＬＣ１が供給され、ＮＭＯＳ３１、３２のゲートには信号ＢＬＣ２、ＢＬＣ３がそれぞれ供給されている。ＮＭＯＳ３１とＮＭＯＳ３２との接続ノードＮ２は、ビット線ＢＬに接続されるとともに、ＮＭＯＳ３３、及びＮＭＯＳ３４を介して接地されている（すなわち、接地電圧Ｖｓｓが供給されるノードに接続されている）。ＮＭＯＳ３３のゲートはラッチ回路ＬＡＴ１のノードＩＮＶに接続され、ＮＭＯＳ３３はラッチ回路ＬＡＴ１に保持されたデータにより制御される。ＮＭＯＳ３４のゲートには、信号ＤＩＳが供給されている。
【００３０】
ＰＭＯＳ２３のソースは電源電圧Ｖｄｄが供給されるノードに接続され、ドレインはＰＭＯＳ２４、ＮＭＯＳ３６、ＮＭＯＳ３７を介してデータ制御ユニットＤＣＵに接続されている。ＰＭＯＳ２３のゲートには信号ＢＬＣ４が供給されている。ＰＭＯＳ２４のゲートは、ＮＭＯＳ３５を介してＰＭＯＳ２２とＮＭＯＳ３１との接続ノードＮ１に接続されている。ＮＭＯＳ３５のゲートには、信号ＸＸＬが供給されている。ＮＭＯＳ３６のゲートには、リセット信号ＲＳＴが供給されている。ＮＭＯＳ３７のゲートには、信号ＢＬＣ５が供給されている。ラッチ回路ＬＡＴ１は、ＮＭＯＳ３６に並列接続されている。
【００３１】
次に、センスアンプユニットＳＡＵの動作について説明する。  
（プログラム動作）
メモリセルＭＣにデータをプログラムする場合、先ず、リセット信号ＲＳＴが一旦ハイレベル（以下、Ｈレベルと記す）とされ、ラッチ回路ＬＡＴ１がリセットされる。すなわち、ラッチ回路ＬＡＴ１のノードＩＮＶがローレベル（以下、Ｌレベルと記す）に設定される。この後、信号ＢＬＣ１、ＢＬＣ４、ＤＩＳがＬレベルとされる。
【００３２】
続いて、信号ＢＬＣ２、ＢＬＣ３、ＸＸＬがＨレベルとされ、信号ＢＬＣ４がＬレベルとされて、データ制御ユニットＤＣＵからセンスアンプユニットＳＡＵにデータが取り込まれる。このデータが書き込みを示すＬレベル“０”である場合、ＰＭＯＳ２４のゲートがＬレベルとなり、ＰＭＯＳ２４はオンする。このため、ラッチ回路ＬＡＴ１にはＨレベル“１”がセットされる。また、データ制御ユニットＤＣＵから取り込まれたデータが非書き込みを示すＨレベル“１”である場合、ＰＭＯＳ２４がオフする。このため、ラッチ回路ＬＡＴ１にはＬレベル“０”がセットされる。すなわち、データを書き込む場合、ラッチ回路ＬＡＴ１のノードＩＮＶはＨレベルに設定され、非書き込みの場合、ノードＩＮＶはＬレベルに設定される。
【００３３】
続いて、信号ＢＬＣ１、ＢＬＣ３、ＤＩＳ、ＸＸＬがＬレベル、信号ＢＬＣ２がＨレベルとされ、ビット線ＢＬがＨレベルに充電される。この後、信号ＤＩＳがＨレベルに設定される。すると、ラッチ回路ＬＡＴ１のノードＩＮＶが書き込みを示すＨレベルの場合、ＮＭＯＳ３３がオンし、ＮＭＯＳ３３、ＮＭＯＳ３４を介してビット線ＢＬの電荷が放電される。また、ラッチ回路ＬＡＴ１のノードＩＮＶが非書き込みを示すＬレベルの場合、ＮＭＯＳ３３がオフするため、ビット線ＢＬの電位はＨレベルに保持される。
【００３４】
この後、図２に示すビット線ＢＬとメモリセルＭＣとを接続する選択ゲートトランジスタＳ１の選択ゲート線ＳＧＤがＨレベルとされると、ビット線ＢＬの電位がメモリセルＭＣのチャネルに転送される。これと同時に、選択されたメモリセルＭＣのワード線ＷＬ（選択ワード線ＷＬ）にプログラム電圧Ｖｐｇｍが印加される。このため、書き込みセルの場合、チャネルがＬレベル（Ｖｓｓ）、選択ワード線ＷＬがプログラム電圧Ｖｐｇｍとなり、プログラムが行われる。また、非書き込みセルの場合、チャネルがＨレベル（Ｖｄｄ−Ｖｔ：Ｖｔは選択ゲートトランジスタの閾値電圧）、選択ワード線ＷＬがプログラム電圧Ｖｐｇｍとなるため、プログラムが行われない。
【００３５】
（読み出し動作）
メモリセルＭＣからデータを読み出す場合、先ず、リセット信号ＲＳＴが一旦Ｈレベルとされ、ラッチ回路ＬＡＴ１がリセットされる。この後、信号ＢＬＣ１、ＢＬＣ３、ＤＩＳ、ＸＸＬがＬレベル、信号ＢＬＣ２がＨレベルとされ、ビット線ＢＬがＨレベルに充電される。
【００３６】
続いて、信号ＢＬＣ２をＬレベルとして選択ワード線ＷＬに読み出し電圧が印加される。メモリセルＭＣの閾値電圧が読み出し電圧より高い場合、メモリセルＭＣはオフ状態であり、ビット線ＢＬはＨレベルに保持される。また、メモリセルＭＣの閾値電圧が読み出し電圧より低い場合、メモリセルＭＣはオン状態となり、ビット線ＢＬの電荷が放電され、ビット線はＬレベルとなる。そして、信号ＢＬＣ３がＨレベルとされ、ビット線ＢＬの電圧がデータ制御ユニットＤＣＵに転送される。このようにして、メモリセルのデータが判定できる。
【００３７】
（プログラムベリファイ動作）
プログラム動作後にメモリセルＭＣの閾値電圧を検証するプログラムベリファイ動作は、読み出し動作とほぼ同様である。この場合、ビット線ＢＬをＨレベルに充電した後、選択ワード線ＷＬに所定のベリファイ電圧が印加される。メモリセルＭＣの閾値電圧がベリファイ電圧に達している場合、メモリセルＭＣはオフ状態となる。このため、ビット線ＢＬの電圧はＨレベルに保持される。また、メモリセルＭＣの閾値電圧がベリファイ電圧に達していない場合、メモリセルはオン状態となる。このため、ビット線ＢＬの電圧はＬレベルとなる。
【００３８】
この状態において、信号ＢＬＣ１、ＢＬＣ２、ＸＸＬがＨレベル、信号ＢＬＣ４、ＢＬＣ３、ＤＩＳ、ＲＳＴがＬレベルとされ、ビット線ＢＬの電圧がラッチ回路ＬＡＴ１に保持される。メモリセルＭＣの閾値電圧がベリファイ電圧に達しており、ビット線ＢＬの電圧がＨレベルの場合、ＰＭＯＳ２４がオフ状態となる。このため、ラッチ回路ＬＡＴ１にはＬレベルが保持される。また、メモリセルＭＣの閾値電圧がベリファイ電圧に達しておらず、ビット線ＢＬの電圧がＬレベルの場合、ＰＭＯＳ２４がオン状態となる。このため、ラッチ回路ＬＡＴ１にはＨレベルが保持される。すなわち、ベリファイをパスした場合、ラッチ回路ＬＡＴ１のノードＩＮＶの電圧はＬレベルとなり、ベリファイをパスしない場合、ノードＩＮＶの電圧はＨレベルとなる。
【００３９】
また、ラッチ回路ＬＡＴ１の反転ノードＩＮＶｎのデータは、信号ＢＬＣ５をＨレベルとしてＮＭＯＳ３７をオンさせることで、データ制御ユニットＤＣＵに転送される。
【００４０】
［１−１Ｃ］データ制御ユニットＤＣＵの構成
図４は、データ制御ユニットＤＣＵの構成例を示す回路図である。データ制御ユニットＤＣＵは、例えば５個のデータラッチ回路０ＤＬ、１ＤＬ、２ＤＬ、３ＤＬ、４ＤＬと、バス４１と、データ形成回路４２とを備えている。バス４１の一端は、センスアンプユニットＳＡＵに接続され、他端はカラム選択ゲート（図示せず）を介してデータ入出力バッファ１６に接続されている。
【００４１】
データラッチ回路０ＤＬは、ラッチ回路ＬＡＴ２と、トランスファーゲート４３とにより構成されている。ラッチ回路ＬＡＴ２は、トランスファーゲート４３を介してバス４１に接続されている。トランスファーゲート４３は、信号φ０及びその反転信号φ０ｎにより制御される。データラッチ回路１ＤＬ、２ＤＬ、３ＤＬ、４ＤＬは、データラッチ回路０ＤＬと同一構成であり、各データラッチ回路のトランスファーゲートに供給される信号がそれぞれ相違している。従って、データラッチ回路０ＤＬ、１ＤＬ、２ＤＬ、３ＤＬ、４ＤＬは、選択的にバス４１に接続可能とされている。なお、データラッチ回路ＤＬの数は、実施形態に応じて増減する。
【００４２】
データ形成回路４２は、ラッチ回路ＬＡＴ３と、ＰＭＯＳ５１〜５６と、ＮＭＯＳ６１〜７０と、インバータ回路７１とにより構成されている。ＰＭＯＳ５１のソースは電源電圧Ｖｄｄが供給されるノードに接続されている。このＰＭＯＳ５１のゲートにはセット信号ＳＥＴ１が供給され、ドレインはラッチ回路ＬＡＴ３に接続されている。また、ＰＭＯＳ５１のドレインはＮＭＯＳ６１を介して接地されるとともに、ＮＭＯＳ６２、６３を介して接地されている。ＮＭＯＳ６１のゲートにはリセット信号ＲＳＴ２が供給され、ＮＭＯＳ６２のゲートには、信号ＬＡＴＨが供給されている。ＮＭＯＳ６３のゲートは、入力端がバス４１に接続されたインバータ回路７１の出力端に接続されている。さらに、ＰＭＯＳ５１のドレインは、ＮＭＯＳ６４、６５を介して接地されている。ＮＭＯＳ６４のゲートには信号ＬＡＴＬが供給され、ＮＭＯＳ６５のゲートは、バス４１に接続されている。
【００４３】
電源電圧Ｖｄｄが供給されるノードとバス４１との間には、ＰＭＯＳ５２、５３の直列回路と、ＰＭＯＳ５４、５５の直列回路と、ＰＭＯＳ５６とがそれぞれ接続されている。ＰＭＯＳ５２のゲートには信号ＢＵＳＨ２が供給され、ＰＭＯＳ５３のゲートはラッチ回路ＬＡＴ３のノードＬＡＴｎに接続されている。ＰＭＯＳ５２、５３は、信号ＢＵＳＨ２とラッチ回路ＬＡＴ３のノードＬＡＴｎの電位とに応じてバス４１をＨレベルに充電する。
【００４４】
ＰＭＯＳ５４のゲートには信号ＢＵＳＬ２が供給され、ＰＭＯＳ５５のゲートはラッチ回路ＬＡＴ３のノードＬＡＴに接続されている。ＰＭＯＳ５４、５５は、信号ＢＵＳＬ２とラッチ回路ＬＡＴ３のノードＬＡＴの電位とに応じてバス４１をＨレベルに充電する。
【００４５】
ＰＭＯＳ５６のゲートには、セット信号ＳＥＴ２が供給されている。ＰＭＯＳ５６は、セット信号ＳＥＴ２に応じてバス４１をＨレベルに充電する。
【００４６】
バス４１及び接地端子間には、ＮＭＯＳ６６、６７の直列回路と、ＮＭＯＳ６８、６９の直列回路と、ＮＭＯＳ７０とがそれぞれ接続されている。
【００４７】
ＮＭＯＳ６６のゲートには信号ＢＵＳＨ１が供給され、ＮＭＯＳ６７のゲートはラッチ回路ＬＡＴ３のノードＬＡＴｎに接続されている。ＮＭＯＳ６６、６７は、信号ＢＵＳＨ１とラッチ回路ＬＡＴ３のノードＬＡＴｎの電位とに応じてバス４１をＬレベルに放電する。
【００４８】
ＮＭＯＳ６８のゲートには信号ＢＵＳＬ１が供給され、ＮＭＯＳ６９のゲートはラッチ回路ＬＡＴ３のノードＬＡＴに接続されている。ＮＭＯＳ６８、６９は、信号ＢＵＳＬ１とラッチ回路ＬＡＴ３のノードＬＡＴの電位とに応じてバス４１をＬレベルに放電する。
【００４９】
ＮＭＯＳ７０のゲートには、リセット信号ＲＳＴ２が供給されている。ＮＭＯＳ７０は、リセット信号ＲＳＴ２に応じてバス４１をＬレベルに放電する。
【００５０】
次に、データ制御ユニットＤＣＵの動作について説明する。データ制御ユニットＤＣＵは、データラッチ回路０ＤＬ、１ＤＬ、２ＤＬ、３ＤＬ、４ＤＬにデータを保持するとともに、保持したデータを加工することが可能である。つまり、データ制御ユニットＤＣＵは、後述するように、保持したデータの例えば論理積“ＡＮＤ”、“ＮＡＮＤ”、論理和“ＯＲ”、反転に相当する動作が可能である。
【００５１】
（データ制御ユニットＤＣＵの基本動作）
データ制御ユニットＤＣＵの基本動作について説明する。データ入出力バッファ１６から供給された２ビットの書き込みデータは、データラッチ回路１ＤＬ、２ＤＬに１ビットずつラッチされる。ここで、データラッチ回路１ＤＬ、２ＤＬは、例えば、下位ページ、上位ページのデータをそれぞれ保持する。データラッチ回路０ＤＬ、１ＤＬ、２ＤＬ、３ＤＬ、４ＤＬのデータは、トランスファーゲート４３を介してバス４１に転送可能である。
【００５２】
バス４１のデータをラッチ回路ＬＡＴ３に取り込む場合、先ず、リセット信号ＲＳＴ２をＨレベルとしてＮＭＯＳ６１、７０をオンさせ、バス４１、及びラッチ回路ＬＡＴ３をＬレベルにリセットする。
【００５３】
続いて、セット信号ＳＥＴ１をＬレベルとしてＰＭＯＳ５１をオンさせ、ラッチ回路ＬＡＴ３をＨレベルにセットする。ラッチ回路ＬＡＴ３にデータを取り込む場合、ラッチ回路ＬＡＴ３は、最初に、Ｈレベルにセットされる。この後、例えばデータラッチ回路０ＤＬ〜４ＤＬのいずれかより、バス４１にデータを転送する。この状態において、信号ＬＡＴＨをＨレベルとする。バス４１のデータがＨレベルの場合、インバータ回路７１の出力信号がローレベルとなり、ＮＭＯＳ６３はオフ状態のままである。このため、ラッチ回路ＬＡＴ３はＨレベルのままである。
【００５４】
また、バス４１がＬレベルの場合、インバータ回路７１の出力信号がＨレベルとなり、ＮＭＯＳ６３がオンとなる。このため、ラッチ回路ＬＡＴ３は、ＮＭＯＳ６２、６３を介して放電され、Ｌレベルを保持する。
【００５５】
次に、バス４１のデータを反転してラッチ回路ＬＡＴ３に取り込む動作について説明する。ラッチ回路ＬＡＴ３をＨレベルにセットした状態で、データラッチ回路０ＤＬ〜４ＤＬのいずれかより、バス４１にデータを転送する。この後、信号ＬＡＴＬをＨレベルとする。バス４１のデータがＨレベルの場合、ＮＭＯＳ６５はオンとなる。このため、ラッチ回路ＬＡＴ３は、ＮＭＯＳ６４、６５を介して放電され、Ｌレベルを保持する。
【００５６】
また、バス４１がＬレベルの場合、ＮＭＯＳ６５はオフ状態のままである。このため、ラッチ回路ＬＡＴ３はＨレベルのままである。
【００５７】
このようにして、ラッチ回路ＬＡＴ３に保持されたデータを、データラッチ回路０ＤＬ〜４ＤＬに転送することにより、データラッチ回路０ＤＬ〜４ＤＬのデータを操作することができる。
【００５８】
（データラッチ回路に保持されたデータの反転動作）
次に、データラッチ回路０ＤＬ〜４ＤＬのデータを反転させる反転動作について説明する。先ず、前述した動作によりバス４１を充電し、データラッチ回路０ＤＬ〜４ＤＬのいずれかのトランスファーゲート４３が開けられる。例えばデータラッチ回路０ＤＬのトランスファーゲート４３が開けられた場合において、データラッチ回路０ＤＬのノードＤＴがＨレベルである場合、データラッチ回路０ＤＬのクロックドインバータ回路を介してバス４１が放電され、ノードＤＴの反転データがバス４１へ転送されたこととなる。
【００５９】
続いて、上記のようにして、ＬＡＴ３リセットした後、信号ＳＥＴ１をＬレベルとしてＬＡＴ３のノードＬＡＴをＨレベルとする。
【００６０】
続いて、信号ＬＡＴＬをＨレベルとすると、バス４１がデータラッチ回路のデータによって放電されている場合、ノードＬＡＴはＨレベルを維持し、バス４１が充電状態を維持したままの場合、ＮＭＯＳ６５がオンするため、ノードＬＡＴはＬレベルに放電される。
【００６１】
続いて、前述した動作によりバス４１を充電し、信号ＢＵＳＨ１をＨレベルとすると、ラッチ回路ＬＡＴ３のノードＬＡＴがＨレベル（ノードＬＡＴｎがＬレベル）の場合、バス４１はＨレベルを維持し、ノードＬＡＴがＬレベル（ノードＬＡＴｎがＨレベル）の場合、バス４１はＬレベルとなる。
【００６２】
最後に、データラッチ回路０ＤＬのラッチ回路ＬＡＴ２をリセットした後、トランスファーゲート４３を開けることにより、バス４１のデータがトランスファーゲート４３を介してラッチ回路ＬＡＴ２に取り込まれる。この結果、バス４１のデータがＨレベルの場合、ラッチ回路ＬＡＴ２のノードＤＴはＬレベルとなり、バス４１のデータがＬレベルの場合、ノードＤＴはＨレベルとなる。
【００６３】
上記一連の動作をまとめると、ラッチ回路ＬＡＴ２のノードＤＴの反転データがバス４１へ転送され、その反転データがラッチ回路ＬＡＴ３へ転送される。続いて、ラッチ回路ＬＡＴ３のデータがバス４１に転送され、バス４１の反転データがラッチ回路ＬＡＴ２に保持される。このようにして、データラッチ回路０ＤＬ〜４ＤＬのノードＤＴが反転される。
【００６４】
なお、データ制御ユニットＤＣＵの基本動作は、これに限定されるものではなく、他の動作によっても可能である。この動作を基本としてデータの“ＡＮＤ”、“ＮＡＮＤ”、“ＯＲ”動作を行うことが可能である。
【００６５】
［１−２］ＮＡＮＤ型フラッシュメモリ１の動作
第１の実施形態は、１個のメモリセルＭＣが１ビットデータ（２値データ）を記憶可能なＮＡＮＤ型フラッシュメモリの例である。２値書き込みにも有効なセル間干渉効果を低減する書き込み方法が望まれる。ソース側から数えてｎ（ｎは０以上の整数）番目の選択ワード線ＷＬｎに接続されたメモリセルに書き込んだ（以下、「ワード線ＷＬｎに書き込んだ」ともいう。）後、ＷＬｎのドレイン側の隣接ワード線ＷＬｎ＋１を書き込むと、ＷＬｎはＷＬｎ＋１からのセル間干渉効果を多く受けて閾値分布が広がってしまう。これを低減させるために、第１の実施形態では、２値書き込みでＷＬｎを書き込む際、ＷＬｎ＋１にプログラム電圧を印加してから、ＷＬｎの書き込み（プログラム）を行うようにしている。
【００６６】
図５は、２値記憶方式におけるメモリセルＭＣの閾値分布を説明する図である。メモリセルＭＣの閾値電圧Ｖｔｈは、“Ｅ”レベル及び“Ｌ”レベルに設定可能である。Ｅ＝１、Ｌ＝０のようにデータが割り付けられる。“Ｅ”レベルは、メモリセルＭＣの閾値電圧の最も低い（例えば、負の閾値電圧）消去状態である。“Ｌ”レベルは、電荷蓄積層に電子を注入することで、メモリセルＭＣの閾値電圧が“Ｅ”レベルより高くなった“０”書き込み状態である。
【００６７】
データ消去は、ブロック単位で行われる。選択ブロックの全ワード線を０Ｖとし、メモリセルアレイが形成されたｐ型ウェルに消去電圧Ｖｅｒａ（例えば２０Ｖ）を印加する。これにより、選択ブロック内の全メモリセルは、電荷蓄積層の電子が放出されて、負の閾値電圧（“Ｅ”レベル）になる。
【００６８】
センスアンプユニットＳＡＵのラッチ回路ＬＡＴ１にロードする書き込みデータは、データ“０”（書き込み）、又は“１”（書き込み禁止）である。この書き込みデータに応じて、ビット線を介してＮＡＮＤストリングのチャネル電圧が、“０”、“１”書き込みに応じて、Ｖｓｓ、Ｖｄｄ−Ｖｔ（Ｖｔは選択ゲートトランジスタの閾値電圧）に設定される。そして、選択ワード線にプログラム電圧Ｖｐｇｍを印加することにより、書き込みセルでは電子注入が生じ、書き込み禁止セルでは電子注入が生じない。これにより、同じページ内で選択的にメモリセルの閾値電圧を上昇させることができる。
【００６９】
図６は、プログラム時にワード線に印加する電圧関係を説明する図である。図６には、選択ワード線ＷＬｎと、ＷＬｎのドレイン側の隣接ワード線ＷＬｎ＋１とを示している。
【００７０】
図６に示すように、選択ワード線ＷＬｎのプログラムシーケンスにおいて、選択ワード線ＷＬｎに一回目のプログラム電圧を印加する直前に、ワード線ＷＬｎ＋１にプログラム電圧を一回だけ（１パルスだけ）印加する。その後、選択ワード線ＷＬｎに対してプログラム動作を実行する。具体的には、プログラム電圧の印加と、メモリセルＭＣの閾値電圧を検証するベリファイ動作とを、ベリファイがパスするまで繰り返す。この際、プログラム電圧は、順次ステップアップされる。このような制御をすることで、ワード線ＷＬｎをプログラムする前に、ワード線ＷＬｎ＋１に接続されたメモリセルの閾値分布は、最終的にプログラム動作後の閾値電圧のある程度近くに設定される。これにより、ＷＬｎの閾値分布を広げる要因であるワード線ＷＬｎ＋１からのセル間干渉効果が低減できる。本実施形態で「選択ワード線ＷＬｎのプログラムシーケンス」という場合、選択ワード線ＷＬｎの書き込みが完了する一連の動作を含んでおり、具体的には、隣接ワード線ＷＬｎ＋１へのパルス印加と、選択ワード線ＷＬｎへの複数回のプログラム電圧の印加と、これに対応するベリファイ動作とを含む。
【００７１】
なお、プログラム動作時、プログラム対象のワード線にはプログラム電圧を印加し、それ以外のワード線にはプログラムを禁止するプログラムパス電圧を印加する。また、ベリファイ動作時、ベリファイ対象のワード線にはベリファイ電圧を印加し、それ以外のワード線には、閾値電圧によらずメモリセルがオンするベリファイパス電圧を印加する。
【００７２】
図７は、第１の実施形態に係るプログラムシーケンスを示すフローチャートである。図８及び図９は、ワード線のレベル（“Ｅ”レベル及び“Ｌ”レベル）と、データラッチ回路ＤＬ及びセンスアンプユニットＳＡＵのラッチデータとの対応関係を示す図である。
【００７３】
先ず、選択ワード線ＷＬｎにプログラムするデータを入出力制御回路１５を介して外部からロードし、一旦データラッチ回路０ＤＬにラッチする。そして、データラッチ回路０ＤＬのデータをデータラッチ回路１ＤＬに転送する（ステップＳ１００）。データラッチ回路０ＤＬは、キャッシュ（バッファ）として用いられる。
【００７４】
続いて、ワード線ＷＬｎのドレイン側の隣接ワード線ＷＬｎ＋１にプログラムするデータを入出力制御回路１５を介して外部からロードし、一旦データラッチ回路０ＤＬにラッチする。そして、データラッチ回路０ＤＬのデータをデータラッチ回路２ＤＬに転送する（ステップＳ１０１）。必要ならば、データラッチ回路０ＤＬを他の動作に使用する場合を考えてリセットしておく。ここまでで、選択ワード線ＷＬｎをプログラムするために必要なデータが用意できており、ラッチデータは、図８（１）のようになっている。
【００７５】
続いて、ワード線ＷＬｎ＋１のデータをデータラッチ回路２ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎ＋１にプログラム電圧を１パルス印加する（ステップＳ１０２）。この状態で、ワード線ＷＬｎ＋１の閾値電圧は、最終的にプログラムされる閾値電圧にある程度近い値に設定されている。ステップＳ１０２におけるラッチデータは、図８（２）のようになっている。プログラム電圧印加時、ビット線制御回路１２は、ビット線を選択的に充電している状態である。
【００７６】
続いて、ワード線ＷＬｎのデータをデータラッチ回路１ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎをプログラムする（ステップＳ１０３）。ステップＳ１０３におけるラッチデータは、図８（３）のようになっている。ステップＳ１０３は、図６に示すように、ベリファイ動作を含んでおり、ベリファイがパスするまでプログラム電圧をステップアップ電圧分順次上げながら、プログラム電圧の印加とベリファイ動作とが繰り返される。ここまでで、ワード線ＷＬｎをプログラムする際に、ワード線ＷＬｎ＋１にプログラム電圧を１パルス印加してから、ワード線ＷＬｎのプログラムを行うことが実現できている。
【００７７】
ステップＳ１０４〜Ｓ１０７は、選択ワード線ＷＬｎ＋１をプログラムする際に、ワード線ＷＬｎ＋１のドレイン側の隣接ワード線ＷＬｎ＋２にプログラム電圧を１パルス印加する動作である。先ず、ワード線ＷＬｎ＋１のデータをデータラッチ回路２ＤＬからデータラッチ回路１ＤＬに転送する（ステップＳ１０４）。ステップＳ１０４において、ワード線ＷＬｎ＋１のデータはワード線ＷＬｎをプログラムする際にすでにロードされているので、再度ロードする必要はない。
【００７８】
続いて、ワード線ＷＬｎ＋２にプログラムするデータを入出力制御回路１５を介して外部からロードし、一旦データラッチ回路０ＤＬにラッチする。そして、データラッチ回路０ＤＬのデータをデータラッチ回路２ＤＬに転送する（ステップＳ１０５）。必要ならば、データラッチ回路０ＤＬを他の動作に使用する場合を考えてリセットしておく。ここまでで、選択ワード線ＷＬｎ＋１をプログラムするために必要なデータが用意できており、ラッチデータは、図９（１）のようになっている。
【００７９】
続いて、ワード線ＷＬｎ＋２のデータをデータラッチ回路２ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎ＋２にプログラム電圧を１パルス印加する（ステップＳ１０６）。この状態で、ワード線ＷＬｎ＋２の閾値電圧は、最終的にプログラムされる閾値電圧にある程度近い値に設定されている。ステップＳ１０６におけるラッチデータは、図９（２）のようになっている。
【００８０】
続いて、ワード線ＷＬｎ＋１のデータをデータラッチ回路１ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎをプログラムする（ステップＳ１０７）。ステップＳ１０７におけるラッチデータは、図９（３）のようになっている。ここまでで、ワード線ＷＬｎ＋１をプログラムする際に、ワード線ＷＬｎ＋２にプログラム電圧を１パルス印加してから、ワード線ＷＬｎ＋１のプログラムを行うことが実現できている。
【００８１】
同様にして、ワード線ＷＬｎ＋１以降のプログラムは、ステップＳ１０４〜Ｓ１０７のフローを繰り返し用いることで実現できる。なお、他の動作にデータラッチ回路０ＤＬを用いないのであれば、ワード線ＷＬｎのデータ用とワード線ＷＬｎ＋１のデータ用との２個のデータラッチ回路を用意すればよいので、データラッチ回路の数は最低２個で十分である。この場合には、データラッチ回路を２個まで削減できる。その結果、データラッチ回路が３個以上ある場合と比べて、回路面積を縮小できる。
【００８２】
［１−３］変形例
選択ワード線のプログラムと、データのロード動作とを並行して行うようにしてもよい。図１０は、第１の実施形態の変形例に係るプログラムシーケンスを示すフローチャートである。
【００８３】
ステップＳ１０３のプログラム動作と並行して、ステップＳ１０４〜Ｓ１０５のデータロード動作を行う。この変形例の場合、データラッチ回路は３個必要である。
【００８４】
なお、データラッチ回路を余分に必要とする機能は、データラッチ回路が３個である場合、同時に使えない。よって、データラッチ回路０ＤＬを他の動作に使用する場合は、データラッチ回路の数を増やすことになる。
【００８５】
図１１は、第１の実施形態の変形例に係るプログラムシーケンスを示すタイミングチャートである。レディ状態、すなわちレディ／ビジー信号Ｒ／Ｂがハイレベルである場合に、入出力制御回路（Ｉ／Ｏ）１５はデータロードを行う。そして、プログラムシーケンスとデータロードとが並列に行われる。このようなフローを実現することで、プログラム動作を高速化することができる。
【００８６】
［１−４］効果
以上詳述したように第１の実施形態では、選択ワード線ＷＬｎのプログラムシーケンスにおいて、先ず、選択ワード線ＷＬｎのドレイン側に隣接する隣接ワード線ＷＬｎ＋１に書き込み電圧を１パルス印加する。この状態で、隣接ワード線ＷＬｎ＋１の閾値電圧は、最終的にプログラムされる閾値電圧にある程度近い値に設定されている。その後、選択ワード線ＷＬｎにプログラム電圧の印加動作とベリファイ動作とを繰り返すことで、選択ワード線ＷＬｎをプログラムするようにしている。
【００８７】
従って第１の実施形態によれば、隣接ワード線ＷＬｎ＋１からセル間干渉効果を受けている状態で選択ワード線ＷＬｎをプログラムすることができる。これにより、最終的にプログラムが完了した時点で、選択ワード線ＷＬｎが隣接ワード線ＷＬｎ＋１から受けるセル間干渉効果を低減することができ、ひいては誤読み出しを低減することができる。
【００８８】
また、選択ワード線ＷＬｎの閾値分布をより狭くすることができる。これにより、誤読み出しを低減することができるため、記録されたデータの信頼性が高いＮＡＮＤ型フラッシュメモリを実現することができる。
【００８９】
また、メモリの微細化が進むにつれ、隣接ビット線間やメモリセル間の寄生容量が大きくなった場合でも、記録されたデータの信頼性が高いＮＡＮＤ型フラッシュメモリを実現することができる。
【００９０】
第１の実施形態では、隣接ワード線ＷＬｎ＋１に書き込み電圧を１パルス印加した後、隣接ワード線ＷＬｎ＋１のベリファイをしていない。このため、ベリファイ用のデータの再入力が必要ない。よって、選択ワード線ＷＬｎのプログラム時間が大きく増えることはない。例えば、隣接ワード線ＷＬｎ＋１のベリファイを行うと、プログラム電圧の印加動作を複数回行わなければならない。この場合は、書き込み時間が大幅に長くなる。
【００９１】
なお、第１の実施形態の説明では、選択ワード線ＷＬｎに隣接するワード線ＷＬｎ＋１にプログラム電圧を印加している。しかしこれに限らず、ワード線ＷＬｎのプログラムシーケンスにおいて、ワード線ＷＬｎから１本以上離れたワード線にプログラム電圧を印加するようにしてもよい。
【００９２】
［２］第２の実施形態
第２の実施形態は、例えば２ビットデータ以上の多値データを記憶可能なメモリセルを備えたＮＡＮＤ型フラッシュメモリに対するセル間干渉効果を低減するためのプログラム方法である。
【００９３】
第２の実施形態は、多値データとして２ビットデータ（４値データ）を記憶可能なメモリセルを一例として説明する。図１２は、４値記憶方式におけるメモリセルＭＣの閾値分布を説明する図である。
【００９４】
４値データは、上位ページデータ“ｘ”と下位ページデータ“ｙ”とにより“ｘｙ”で表され、ここでは、例えば、Ｅ＝１１、Ａ＝０１，Ｂ＝００，Ｃ＝１０のようにデータが割り付けられる。
【００９５】
図１２（１）において、“Ｅ”レベルは、メモリセルＭＣの閾値電圧の最も低い（例えば、負の閾値電圧）消去状態である。図１２（２）は、下位ページをプログラムした場合の閾値分布であり、メモリセルＭＣの閾値電圧Ｖｔｈは、“Ｅ”レベル及び“Ｌ”レベルのいずれかに設定される。
【００９６】
４値記憶方式の場合、データのプログラムは、下位ページプログラムと上位ページプログラムとを必要とする。下位ページプログラムは、“Ｅ”レベルのメモリセルを選択的に“Ｌ”レベルにする動作である。上位ページプログラムは、“Ｅ”レベルのメモリセルを選択的に“Ａ”レベルにする第１の上位ページプログラムと、“Ｌ”レベルのメモリセルを選択的に“Ｂ”レベル及び“Ｃ”レベルにする第２の上位ページプログラムとを含む。これら２種の上位ページ書き込みは、一つのシーケンス内で、選択ページに対して、選択的に“０”，“１”書き込みデータを与えて同時にプログラム電圧の印加が行われる。
【００９７】
次に、多値プログラムにおけるプログラム順序について説明する。図１３は、プログラム順序を説明する図である。図１３の数字は、プログラムの順番を表している。
【００９８】
図１３に示すように、（１）ワード線ＷＬ０の下位ページをプログラム、（２）ワード線ＷＬ１の下位ページをプログラム、（３）ワード線ＷＬ０の上位ページをプログラム、（４）ワード線ＷＬ２の下位ページをプログラム、という順にプログラムを行う。このようなプログラムを行った場合、下位ページデータに起因するセル間干渉効果を低減することができる。以後のプログラム順序は、図１３を踏まえて考える。
【００９９】
［２−１］ＮＡＮＤ型フラッシュメモリ１の動作
図１４は、プログラム時にワード線に印加する電圧関係を説明する図である。図１４には、選択ワード線ＷＬｎと、ワード線ＷＬｎのドレイン側の隣接ワード線ＷＬｎ＋１とを示している。
【０１００】
ワード線ＷＬｎ＋１のメモリセルを“Ａ”レベルや“Ｃ”レベルにプログラムする場合、これらメモリセルの閾値電圧が大きく変化するため、ワード線ＷＬｎのメモリセルは大きなセル間干渉効果を受けてしまう。第２の実施形態では、ワード線ＷＬｎのプログラム時にワード線ＷＬｎ＋１にも多値データ用のプログラム電圧を印加することで、ワード線ＷＬｎがワード線ＷＬｎ＋１から受けるセル間干渉効果を低減する。
【０１０１】
図１４に示すように、ワード線ＷＬｎの上位ページをプログラムする直前に、ワード線ＷＬｎ＋１の下位データ及び上位データを用いて、ワード線ＷＬｎ＋１にプログラム電圧を１パルス印加し、ワード線ＷＬｎ＋１に接続されるメモリセルのうち“Ａ”レベル及び“Ｃ”レベルに設定すべきメモリセルに対してプログラムを行う。この“Ａ”レベル及び“Ｃ”レベルのセルのみに行う選択的なプログラムは、ビット線制御回路１２によって制御される。その後、ワード線ＷＬｎの上位ページプログラム（ベリファイを含む）を行う。このような動作により、ワード線ＷＬｎのプログラムが完了した後に、ワード線ＷＬｎのメモリセルが、ワード線ＷＬｎ＋１の“Ａ”レベルや“Ｃ”レベルにプログラムされたメモリセルから受けるはずであったセル間干渉効果を低減することが可能になる。
【０１０２】
図１５は、第２の実施形態に係るプログラムシーケンスを示すフローチャートである。図１６は、ワード線のレベル（“Ｅ”レベル、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベル）と、データラッチ回路ＤＬ及びセンスアンプユニットＳＡＵのラッチデータとの対応関係を示す図である。
【０１０３】
先ず、ワード線ＷＬｎ＋１に対して、通常の下位ページプログラムを行う。すなわち、ワード線ＷＬｎ＋１にプログラムする下位ページデータを入出力制御回路１５を介して外部からロードし、一旦データラッチ回路０ＤＬにラッチする。そして、データラッチ回路０ＤＬのデータをデータラッチ回路１ＤＬに転送する（ステップＳ２００）。必要ならば、データラッチ回路０ＤＬを他の動作に使用する場合を考えてリセットしておく。ステップＳ２００におけるラッチデータは、図１６（１）のようになっている。
【０１０４】
続いて、ワード線ＷＬｎ＋１の下位ページデータをデータラッチ回路１ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎ＋１の下位ページをプログラムする（ステップＳ２０１）。ステップＳ２０１におけるラッチデータは、図１６（２）のようになっている。
【０１０５】
続いて、ワード線ＷＬｎの上位ページをプログラムするためのデータの準備をする。すなわち、ワード線ＷＬｎ＋１にプログラムする上位ページデータを入出力制御回路１５を介して外部からロードし、データラッチ回路０ＤＬを介してデータラッチ回路４ＤＬに転送する（ステップＳ２０２）。続いて、ワード線ＷＬｎ＋１にプログラムする下位ページデータを再ロードし、データラッチ回路０ＤＬを介してデータラッチ回路２ＤＬに転送する（ステップＳ２０３）。ステップＳ２０３では、ワード線ＷＬｎ＋１の下位ページデータは既にプログラムされているため、ワード線ＷＬｎ＋１のデータをセンスアンプユニットＳＡＵに読み出し、このデータをデータラッチ回路２ＤＬに転送してもよい。
【０１０６】
続いて、ワード線ＷＬｎにプログラムする上位ページデータを再ロードし、データラッチ回路０ＤＬを介してデータラッチ回路３ＤＬに転送する（ステップＳ２０４）。ステップＳ２０４で再ロードとしているのは、ワード線ＷＬｎ−１のプログラム時に一度データをロードしているためである。なお、ステップＳ２０２において、前段のプログラムデータがデータラッチ回路４ＤＬに残っているので、データラッチ回路４ＤＬのデータをデータラッチ回路３ＤＬに転送してもよい。
【０１０７】
続いて、ワード線ＷＬｎにプログラムする下位ページデータを再ロードし、データラッチ回路０ＤＬを介してデータラッチ回路１ＤＬに転送する（ステップＳ２０５）。なお、ステップＳ２０５では、ワード線ＷＬｎの下位ページデータは既にプログラムされているため、ワード線ＷＬｎのデータをセンスアンプユニットＳＡＵに読み出し、このデータをデータラッチ回路１ＤＬに転送してもよい。又は、前段のプログラムデータがデータラッチ回路２ＤＬに残っているので、データラッチ回路２ＤＬのデータをデータラッチ回路１ＤＬに転送してもよい。
【０１０８】
ここまでで、ワード線ＷＬｎの上位ページをプログラムするためのデータが準備できている。ワード線ＷＬｎ＋１の下位ページプログラムが終われば、図１３の書き込み順で次はワード線ＷＬｎの上位ページプログラムに移るが、その前に、ワード線ＷＬｎ＋１の書き込みデータが“Ａ”レベル又は“Ｃ”レベルであるメモリセルにプログラム電圧を印加したいのでそのための書き込みデータを準備する。このためには２ＤＬと４ＤＬのＸＮＯＲを演算すればよい（ステップＳ２０６）。ＸＮＯＲを演算するには、前述したようなラッチ動作では一度にＸＮＯＲを演算することができず、一旦データラッチに演算途中のデータを逃がしておく必要がある。そのために、今回はデータラッチ回路０ＤＬを用いる。なお、この時点でデータラッチ回路０ＤＬを他の用途にも用いたい場合には、データラッチ回路ＤＬをもう一つ増やす必要がある。ＸＮＯＲ演算の結果は、センスアンプユニットＳＡＵに転送される。必要ならば、データラッチ回路０ＤＬを他の動作に使用する場合を考えてリセットしておく。
【０１０９】
ワード線ＷＬｎ＋１のうち“Ａ”レベル又は“Ｃ”レベルに設定するべきメモリセルの書き込みデータがセンスアンプユニットＳＡＵに準備された状態が図１６（３）である。センスアンプユニットＳＡＵのデータを用いて、ワード線ＷＬｎ＋１のうち“Ａ”レベル又は“Ｃ”レベルに設定するべきメモリセルに、プログラム電圧を１パルス印加する（ステップＳ２０７）。この状態で、ワード線ＷＬｎ＋１のうち“Ａ”レベル又は“Ｃ”レベルのメモリセルの閾値電圧は、最終的にプログラムされる閾値電圧にある程度近い値に設定されている。
【０１１０】
続いて、ワード線ＷＬｎの上位ページデータを１ＤＬと３ＤＬのＡＮＤを演算して生成し、この演算結果をセンスアンプユニットＳＡＵに転送する（ステップＳ２０８）。ステップＳ２０８におけるラッチデータは、図１６（４）のようになっている。続いて、ワード線ＷＬｎの上位ページをプログラム（ベリファイを含む）する（ステップＳ２０９）。ここまでで、ワード線ＷＬｎの上位ページをプログラムする際に、ワード線ＷＬｎ＋１のうち“Ａ”レベル又は“Ｃ”レベルのメモリセルにプログラム電圧を１パルス印加してから、ワード線ＷＬｎの上位ページプログラムを行うことが実現できている。同様にして、ワード線ＷＬｎ＋１以降の上位ページプログラムは、図１５のフローを繰り返し用いることで実現できる。
【０１１１】
なお、第２の実施形態のように多値のプログラム方式を実装する場合には、実際の書き込み特性に関する情報を用いる方式と組み合わせて、最初に印加するプログラム電圧を無理のない範囲で大きめに選んでおくことで、より良い効果が期待できる。
【０１１２】
［２−２］変形例
多値において、ワード線ＷＬｎ-1のプログラムが完了した後、ワード線ＷＬｎのプログラムに移ったときを考えると、ワード線ＷＬｎのプログラムには、ワード線ＷＬｎ-1がプログラムされたことによるセル間干渉効果と、ワード線ＷＬｎ＋1の書き込みデータが“Ａ”レベル又は“Ｃ”レベルであるメモリセルによるセル間干渉効果との２つが加わるので、ワード線ＷＬｎが書き込まれ過ぎてしまう可能性もある。
【０１１３】
これを防ぐための手法として、図１７に示すように、ワード線ＷＬｎにプログラム電圧を印加する前に、ワード線ＷＬｎのベリファイを行う。これにより、最初のベリファイがパスしたメモリセルにはプログラムが行われないので、ワード線ＷＬｎが書き込まれ過ぎてしまうのを防ぐことができる。
【０１１４】
［２−３］効果
以上詳述したように第２の実施形態では、選択ワード線ＷＬｎの上位ページをプログラムするシーケンスにおいて、先ず、選択ワード線ＷＬｎのドレイン側に隣接する隣接ワード線ＷＬｎ＋１に上位ページ用のプログラム電圧を１パルス印加する。この状態で、隣接ワード線ＷＬｎ＋１の閾値電圧は、最終的にプログラムされる閾値電圧に近い値に設定されている。その後、プログラム電圧の印加動作とベリファイ動作とを繰り返すことで、選択ワード線ＷＬｎの上位ページをプログラムするようにしている。
【０１１５】
従って第２の実施形態によれば、隣接ワード線ＷＬｎ＋１からセル間干渉効果を受けている状態で選択ワード線ＷＬｎの上位ページをプログラムすることができる。これにより、多値データを記憶可能なＮＡＮＤ型フラッシュメモリにおいて、最終的にプログラムが完了した時点で、選択ワード線ＷＬｎが隣接ワード線ＷＬｎ＋１から受けるセル間干渉効果を低減することができる。その他の効果は、第１の実施形態と同じである。
【０１１６】
プログラム時にベリファイを行うと、プログラムに使用されたデータは壊れてしまう。第２の実施形態では、ワード線ＷＬｎ＋１に書き込み電圧を１パルス印加する動作ではベリファイを行っていないので、データラッチ回路ＤＬにラッチされたワード線ＷＬｎ＋１の下位ページデータ及び上位ページデータは壊れていない。よって、次のプログラムシーケンスにおいてワード線ＷＬｎ＋１をプログラムする際には、データラッチ回路ＤＬにラットされたデータを使用することが可能となる。よって、外部から再度データをロードする場合に比べて、データ転送時間を短縮することができ、ひいてはプログラム時間を短縮することができる。また、ロードするデータが既にプログラムされたデータである場合、メモリセルアレイから読み出せばよい。この場合も、外部から再度データをロードする場合に比べて、データ転送時間を短縮することができる。
【０１１７】
なお、第２の実施形態の説明では、選択ワード線ＷＬｎに隣接するワード線ＷＬｎ＋１にプログラム電圧を印加している。しかしこれに限らず、ワード線ＷＬｎのプログラムシーケンスにおいて、ワード線ＷＬｎから１本以上離れたワード線にプログラム電圧を印加するようにしてもよい。
【０１１８】
［３］第３の実施形態
第３の実施形態は、選択ワード線ＷＬｎが、選択ワード線ＷＬｎのドレイン側に隣接する２本のワード線ＷＬｎ＋１及びＷＬｎ＋２から受けるセル間干渉効果を低減するようにしている。
【０１１９】
［３−１］ＮＡＮＤ型フラッシュメモリ１の動作
図１８は、プログラム時にワード線に印加する電圧関係を説明する図である。図１８には、ワード線ＷＬｎのドレイン側に隣接する２本のワード線ＷＬｎ＋１，ＷＬｎ＋２を示している。
【０１２０】
図１８に示すように、ワード線ＷＬｎ＋１の下位ページをプログラムする直前に、ワード線ＷＬｎ＋２にプログラム電圧を１パルス印加する。続いて、ワード線ＷＬｎ＋１の下位ページをプログラム（ベリファイを含む）する。その後、ワード線ＷＬｎの上位ページをプログラム（ベリファイを含む）する。このような動作により、ワード線ＷＬｎのプログラムが完了した後に、ワード線ＷＬｎのメモリセルが、下位ページがプログラムされたワード線ＷＬｎ＋２から受けるはずであったセル間干渉効果を低減することが可能になる。
【０１２１】
図１９は、第３の実施形態に係るプログラムシーケンスを示すフローチャートである。図２０は、ワード線のレベル（“Ｅ”レベル、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベル）と、データラッチ回路ＤＬ及びセンスアンプユニットＳＡＵのラッチデータとの対応関係を示す図である。
【０１２２】
先ず、ワード線ＷＬｎ＋１にプログラムする下位ページデータを入出力制御回路１５を介して外部からロードし、一旦データラッチ回路０ＤＬにラッチする。そして、データラッチ回路０ＤＬのデータをデータラッチ回路１ＤＬに転送する（ステップＳ３００）。ステップＳ３００において、前段のプログラムシーケンスにおいて、ワード線ＷＬｎ＋１の下位ページデータがデータラッチ回路３ＤＬに残っているので、データラッチ回路３ＤＬのデータをデータラッチ回路１ＤＬに転送してもよい。
【０１２３】
続いて、ワード線ＷＬｎ＋２にプログラムする下位ページデータを入出力制御回路１５を介して外部からロードし、一旦データラッチ回路０ＤＬにラッチする。そして、データラッチ回路０ＤＬのデータをデータラッチ回路３ＤＬに転送する（ステップＳ３０１）。必要ならば、データラッチ回路０ＤＬを他の動作に使用する場合を考えてリセットしておく。ここまでで、ワード線ＷＬｎ＋１の下位ページをプログラムするためのデータが準備できている。ステップＳ３０１におけるラッチデータは、図２０（１）のようになっている。
【０１２４】
続いて、ワード線ＷＬｎ＋２の下位ページデータをデータラッチ回路３ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎ＋２に下位ページ用のプログラム電圧を１パルス印加する（ステップＳ３０２）。ステップＳ３０２におけるラッチデータは、図２０（２）のようになっている。
【０１２５】
続いて、ワード線ＷＬｎ＋１の下位ページデータをデータラッチ回路１ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎ＋１の下位ページをプログラム（ベリファイを含む）する（ステップＳ３０３）。ステップＳ３０３におけるラッチデータは、図２０（３）のようになっている。ここまでで、ワード線ＷＬｎ＋１の下位ページをプログラムする際に、ワード線ＷＬｎ＋２に下位ページ用のプログラム電圧を１パルス印加してから、ワード線ＷＬｎ＋１の下位ページプログラムを行うことが実現できている。
【０１２６】
続いて、ワード線ＷＬｎにプログラムする上位ページデータをロードし、データラッチ回路０ＤＬを介してデータラッチ回路２ＤＬに転送する（ステップＳ３０４）。続いて、ワード線ＷＬｎにプログラムする下位ページデータを再ロードし、データラッチ回路０ＤＬを介してデータラッチ回路１ＤＬに転送する（ステップＳ３０５）。なお、ステップＳ３０５では、ワード線ＷＬｎの下位ページデータは既にプログラムされているため、ワード線ＷＬｎのデータをセンスアンプユニットＳＡＵに読み出し、このデータをデータラッチ回路１ＤＬに転送してもよい。
【０１２７】
ここまでで、ワード線ＷＬｎの上位ページをプログラムするためのデータが準備できている。続いて、ワード線ＷＬｎの上位ページデータを２ＤＬと１ＤＬのＡＮＤを演算して生成し、この演算結果をセンスアンプユニットＳＡＵに転送する（ステップＳ３０６）。続いて、ワード線ＷＬｎの上位ページをプログラム（ベリファイを含む）する（ステップＳ３０７）。これにより、ワード線ＷＬｎがワード線ＷＬｎ＋２から受けるセル間干渉効果の一部が低減できる。
【０１２８】
また、第３の実施形態では、ワード線ＷＬｎ＋２の下位ページデータだけを使用しているが、ワード線ＷＬｎ＋２の上位ページデータも用いて、ワード線ＷＬｎ＋２のうち“Ａ”レベル又は“Ｃ”レベルのメモリセルにプログラム電圧を１パルス印加した後、ワード線ＷＬｎのプログラムを行ってもよい。この場合は、ワード線ＷＬｎの上位ページ、ワード線ＷＬｎ＋１の下位ページ、ワード線ＷＬｎ＋１の上位ページ、ワード線ＷＬｎ＋２の下位ページ、及びワード線ＷＬｎ＋２の上位ページ分のデータラッチ回路を用意する必要がある。
【０１２９】
［３−２］変形例１
図１９のフローチャートでは、ワード線ＷＬｎ＋１の下位ページをプログラムする直前にワード線ＷＬｎ＋２にプログラム電圧を１パルス印加しているが、ワード線ＷＬｎの上位ページをプログラムする直前にワード線ＷＬｎ＋２にプログラム電圧を１パルス印加するようにしてもよい。
【０１３０】
図２１は、第３の実施形態の変形例１に係るプログラムシーケンスを示すフローチャートである。図２２及び図２３は、ワード線のレベル（“Ｅ”レベル、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベル）と、データラッチ回路ＤＬ及びセンスアンプユニットＳＡＵのラッチデータとの対応関係を示す図である。
【０１３１】
ステップＳ４００は、図１９のステップＳ３００と同じである。必要ならば、データラッチ回路０ＤＬを他の動作に使用する場合を考えてリセットしておく。ステップＳ４００におけるラッチデータは、図２２（１）のようになっている。
【０１３２】
続いて、ワード線ＷＬｎ＋１の下位ページデータをデータラッチ回路１ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎ＋１の下位ページをプログラムする（ステップＳ４０１）。ステップＳ４０１におけるラッチデータは、図２２（２）のようになっている。
【０１３３】
続いて、ワード線ＷＬｎ＋２の下位ページデータをデータラッチ回路３ＤＬに転送し（ステップＳ４０２）、ワード線ＷＬｎの上位ページデータをデータラッチ回路２ＤＬに転送し（ステップＳ４０３）、ワード線ＷＬｎの下位ページデータをデータラッチ回路１ＤＬに転送する（ステップＳ４０４）。これらのステップは、図１９のステップＳ３０１、Ｓ３０４及びＳ３０５と同じである。
【０１３４】
続いて、ワード線ＷＬｎ＋２の下位ページデータをデータラッチ回路３ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎ＋２に下位ページ用のプログラム電圧を１パルス印加する（ステップＳ４０５）。ステップＳ４０５におけるラッチデータは、図２３（１）のようになっている。
【０１３５】
続いて、図１９のステップＳ３０６及びＳ３０７と同様に、ワード線ＷＬｎの上位ページをプログラムする（ステップＳ４０６及びＳ４０７）。これにより、ワード線ＷＬｎの上位ページをプログラムする直前に、ワード線ＷＬｎ＋２にプログラム電圧を１パルス印加することが実現できている。
【０１３６】
［３−３］変形例２
ワード線ＷＬｎの上位ページをプログラムする際に、第２の実施形態のプログラム方式を用いることも可能である。図２４は、第３の実施形態の変形例２に係るプログラムシーケンスを示すフローチャートである。図２５〜図２７は、ワード線のレベル（“Ｅ”レベル、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベル）と、データラッチ回路ＤＬ及びセンスアンプユニットＳＡＵのラッチデータとの対応関係を示す図である。
【０１３７】
ステップＳ５００及び５０１は、図１９のステップＳ３００及びＳ３０１と同じである。ただし、ワード線ＷＬｎ＋２の下位ページは、データラッチ回路４ＤＬにラッチされている。ステップＳ５０１におけるラッチデータは、図２５（１）のようになっている。この時、データラッチ回路２ＤＬには、前段のプログラム時に使用したワード線ＷＬｎの下位ページデータが残っており、データラッチ回路５ＤＬには、前段のプログラム時に使用したワード線ＷＬｎの上位ページデータが残っている。
【０１３８】
続いて、ワード線ＷＬｎ＋２の下位ページデータをデータラッチ回路４ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎ＋２に下位ページ用のプログラム電圧を１パルス印加する（ステップＳ５０２）。ステップＳ５０２におけるラッチデータは、図２５（２）のようになっている。
【０１３９】
続いて、ワード線ＷＬｎ＋１の下位ページデータをデータラッチ回路１ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎ＋１の下位ページをプログラムする（ステップＳ５０３）。ステップＳ５０３におけるラッチデータは、図２６（１）のようになっている。ここまでで、ワード線ＷＬｎ＋１の下位ページをプログラムする際に、ワード線ＷＬｎ＋２に下位ページ用のプログラム電圧を１パルス印加してから、ワード線ＷＬｎ＋１の下位ページプログラムを行うことが実現できている。
【０１４０】
続いて、ワード線ＷＬｎ＋１にプログラムする上位ページデータをロードし、データラッチ回路０ＤＬを介してデータラッチ回路５ＤＬに転送する（ステップＳ５０４）。続いて、ワード線ＷＬｎ＋１にプログラムする下位ページデータを再ロードし、データラッチ回路０ＤＬを介してデータラッチ回路２ＤＬに転送する（ステップＳ５０５）。なお、ステップＳ５０５では、ワード線ＷＬｎ＋１の下位ページデータは既にプログラムされているため、ワード線ＷＬｎ＋１のデータをセンスアンプユニットＳＡＵに読み出し、このデータをデータラッチ回路２ＤＬに転送してもよい。
【０１４１】
続いて、ステップＳ３０４及びＳ３０５と同様に、ワード線ＷＬｎの上位ページデータ及び下位ページデータをロードする（ステップＳ５０６及びＳ５０７）。ただし、ワード線ＷＬｎの上位ページデータは、データラッチ回路３ＤＬにラッチされる。
【０１４２】
続いて、ステップＳ２０６と同様に、２ＤＬと５ＤＬのＸＮＯＲを演算し、演算結果をセンスアンプユニットＳＡＵに転送する（ステップＳ５０８）。必要ならば、データラッチ回路０ＤＬを他の動作に使用する場合を考えてリセットしておく。ステップＳ５０８におけるラッチデータは、図２６（２）のようになっている。続いて、ステップＳ２０７と同様に、センスアンプユニットＳＡＵのデータを用いて、ワード線ＷＬｎ＋１のうち“Ａ”レベル又は“Ｃ”レベルに設定するべきメモリセルに、プログラム電圧を１パルス印加する（ステップＳ５０９）。
【０１４３】
その後のステップＳ５１０及びＳ５１１は、第２の実施形態と同じである。これにより、ワード線ＷＬｎがワード線ＷＬｎ＋１から受けるセル間干渉効果を低減できるとともに、ワード線ＷＬｎがワード線ＷＬｎ＋２から受けるセル間干渉効果の一部を低減できる。
【０１４４】
［３−４］効果
以上詳述したように第３の実施形態では、選択ワード線ＷＬｎの上位ページをプログラムする前に、選択ワード線ＷＬｎのドレイン側に隣接する隣接ワード線ＷＬｎ＋２に書き込み電圧を１パルス印加する。この状態で、隣接ワード線ＷＬｎ＋２の閾値電圧は、最終的に下位ページがプログラムされる閾値電圧にある程度近い値に設定されている。さらに、選択ワード線ＷＬｎの上位ページをプログラムする前に、選択ワード線ＷＬｎのドレイン側に隣接する隣接ワード線ＷＬｎ＋１のプログラムを完了させる。その後、選択ワード線ＷＬｎの上位ページをプログラムするようにしている。
【０１４５】
従って第３の実施形態によれば、隣接ワード線の隣のワード線ＷＬｎ＋２からセル間干渉効果を受けている状態で選択ワード線ＷＬｎの上位ページをプログラムすることができる。これにより、最終的にプログラムが完了した時点で、選択ワード線ＷＬｎが隣接ワード線の隣のワード線ＷＬｎ＋２から受けるセル間干渉効果を低減することができる。その他の効果は、第１の実施形態と同じである。
【０１４６】
［４］第４の実施形態
多値プログラムにおけるプログラム順序は、図１３に限定されるものではない。第４の実施形態は、ＷＬｎの下位ページ→ＷＬｎの上位ページ→ＷＬｎ＋１の下位ページ→ＷＬｎ＋１の上位ページというように、昇順にプログラムを行うようにしている。
【０１４７】
図２８は、第４の実施形態に係るプログラムシーケンスを示すフローチャートである。図２９は、ワード線のレベル（“Ｅ”レベル、“Ａ”レベル、“Ｂ”レベル、及び“Ｃ”レベル）と、データラッチ回路ＤＬ及びセンスアンプユニットＳＡＵのラッチデータとの対応関係を示す図である。
【０１４８】
先ず、ワード線ＷＬｎにプログラムする下位ページデータを入出力制御回路１５を介して外部からロードし、一旦データラッチ回路０ＤＬにラッチする。そして、データラッチ回路０ＤＬのデータをデータラッチ回路１ＤＬに転送する（ステップＳ６００）。又は、前段のプログラムデータがデータラッチ回路３ＤＬに残っているので、データラッチ回路３ＤＬのデータをデータラッチ回路１ＤＬに転送してもよい。
【０１４９】
続いて、ワード線ＷＬｎ＋１にプログラムする下位ページデータを入出力制御回路１５を介して外部からロードし、一旦データラッチ回路０ＤＬにラッチする。そして、データラッチ回路０ＤＬのデータをデータラッチ回路３ＤＬに転送する（ステップＳ６０１）。必要ならば、データラッチ回路０ＤＬを他の動作に使用する場合を考えてリセットしておく。ステップＳ６０１におけるラッチデータは、図２９（１）のようになっている。
【０１５０】
続いて、ワード線ＷＬｎ＋１の下位ページデータをデータラッチ回路３ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎ＋１に下位ページ用のプログラム電圧を１パルス印加する（ステップＳ６０２）。ステップＳ６０２におけるラッチデータは、図２９（２）のようになっている。
【０１５１】
続いて、ワード線ＷＬｎの下位ページデータをデータラッチ回路１ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎの下位ページをプログラム（ベリファイを含む）する（ステップＳ６０３）。ステップＳ６０３におけるラッチデータは、図２９（３）のようになっている。ここまでで、ワード線ＷＬｎの下位ページをプログラムする際に、ワード線ＷＬｎ＋１に下位ページ用のプログラム電圧を１パルス印加してから、ワード線ＷＬｎの下位ページプログラムを行うことが実現できている。
【０１５２】
続いて、ワード線ＷＬｎにプログラムする上位ページデータをロードし、データラッチ回路０ＤＬを介してデータラッチ回路２ＤＬに転送する（ステップＳ６０４）。続いて、ワード線ＷＬｎにプログラムする下位ページデータを再ロードし、データラッチ回路０ＤＬを介してデータラッチ回路１ＤＬに転送する（ステップＳ６０５）。なお、ステップＳ６０５では、ワード線ＷＬｎの下位ページデータは既にプログラムされているため、ワード線ＷＬｎのデータをセンスアンプユニットＳＡＵに読み出し、このデータをデータラッチ回路１ＤＬに転送してもよい。
【０１５３】
ここまでで、ワード線ＷＬｎの上位ページをプログラムするためのデータが準備できている。続いて、ワード線ＷＬｎの上位ページデータを２ＤＬと１ＤＬのＡＮＤを演算して生成し、この演算結果をセンスアンプユニットＳＡＵに転送する（ステップＳ６０６）。続いて、ワード線ＷＬｎの上位ページをプログラム（ベリファイを含む）する（ステップＳ６０７）。これにより、ワード線ＷＬｎがワード線ＷＬｎ＋１から受けるセル間干渉効果の一部が低減できる。
【０１５４】
（効果）
以上詳述したように第４の実施形態では、ワード線を昇順にプログラムする方式において、選択ワード線ＷＬｎをプログラムする直前に、選択ワード線ＷＬｎのドレイン側に隣接する隣接ワード線ＷＬｎ＋１に書き込み電圧を１パルス印加する。この状態で、隣接ワード線ＷＬｎ＋１の閾値電圧は、最終的に下位ページがプログラムされる閾値電圧にある程度近い値に設定されている。その後、選択ワード線ＷＬｎをプログラムするようにしている。
【０１５５】
従って第４の実施形態によれば、隣接ワード線ＷＬｎ＋１からセル間干渉効果を受けている状態で選択ワード線ＷＬｎをプログラムすることができる。これにより、最終的にプログラムが完了した時点で、選択ワード線ＷＬｎが隣接ワード線ＷＬｎ＋１から受けるセル間干渉効果を低減することができる。その他の効果は、第１の実施形態と同じである。
【０１５６】
なお、第４に実施形態に第３の実施形態を適用することも可能である。
【０１５７】
［５］第５の実施形態
例えば上記第２の実施形態では、選択ワード線ＷＬｎのプログラムシーケンスにおいて、隣接ワード線ＷＬｎ＋１にプログラム電圧を１パルスのみ印加している。しかし、これに限らず、ＷＬｎ＋１に２回以上のプログラム電圧、すなわち２パルス以上のプログラム電圧を印加するようにしてもよい。
【０１５８】
図３０は、第５の実施形態に係るプログラム時にワード線に印加する電圧関係を説明する図である。図３０には、選択ワード線ＷＬｎと、選択ワード線ＷＬｎのドレイン側に隣接するワード線ＷＬｎ＋１を示している。
【０１５９】
図３０に示すように、ＷＬｎのプログラムシーケンスにおいて、ワード線ＷＬｎをプログラムする直前に、ワード線ＷＬｎ＋１にプログラム電圧を印加する。この際、ワード線ＷＬｎ＋１にプログラム電圧を２パルス印加している。２パルス目は、１パルス目よりステップアップ電圧分高くする。また、ワード線ＷＬｎ＋１にプログラム電圧を１パルス印加した後、ベリファイを行う。
【０１６０】
これにより、ワード線ＷＬｎ＋１をより高い閾値電圧に設定した後にワード線ＷＬｎをプログラムできるため、ワード線ＷＬｎがワード線ＷＬｎ＋１から受けるセル間干渉効果をより低減することができる。
【０１６１】
また、図３０では、ワード線ＷＬｎのプログラムにおいて、ワード線ＷＬｎにプログラム電圧を印加する前に、ワード線ＷＬｎのベリファイを行う。これにより、最初のベリファイがパスしたメモリセルにはプログラム電圧が印加されないので、ワード線ＷＬｎが書き込まれ過ぎてしまうのを防ぐことができる。
【０１６２】
なお、図３０では、プログラム電圧を２パルス印加しているが、勿論２パルス以上であってもよい。また、第５の実施形態は、上記第１乃至第４の実施形態に適用することが可能である。
【０１６３】
また、ベリファイを行った場合には、データがロードしたものと異なってしまう。よって、前段でパルスを印加するためにロードしたデータは、プログラムの際に同じものが必要になったときには、再度ロードするか、プログラムされたデータであれば読み出すかして、再度準備しなおす必要がある。
【０１６４】
本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、構成要素を変形して具体化することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、１つの実施形態に開示される複数の構成要素の適宜な組み合わせ、若しくは異なる実施形態に開示される構成要素の適宜な組み合わせにより種々の発明を構成することができる。例えば、実施形態に開示される全構成要素から幾つかの構成要素が削除されても、発明が解決しようとする課題が解決でき、発明の効果が得られる場合には、これらの構成要素が削除された実施形態が発明として抽出されうる。
【符号の説明】
【０１６５】
１…ＮＡＮＤ型フラッシュメモリ、１０…メモリセルアレイ、１１…ワード線制御回路、１２…ビット線制御回路、１２Ａ…センスアンプ回路、１２Ｂ…データ制御回路、１３…カラムデコーダ、１４…アドレスデコーダ、１５…入出力制御回路、１６…データ入出力バッファ、１７…制御信号発生回路、１８…制御電圧生成回路、ＳＡＵ…センスアンプユニット、ＤＣＵ…データ制御ユニット、ＭＣ…メモリセル、ＷＬ…ワード線、ＢＬ…ビット線、ＳＲＣ…ソース線、Ｓ１，Ｓ２…選択ゲートトランジスタ、ＳＧＤ，ＳＧＳ…選択ゲート線、ＣＴ…カラム選択ゲート。
【図１】
2012027966.tif 000003
【図２】
2012027966.tif 000004
【図３】
2012027966.tif 000005
【図４】
2012027966.tif 000006
【図５】
2012027966.tif 000007
【図６】
2012027966.tif 000008
【図７】
2012027966.tif 000009
【図８】
2012027966.tif 000010
【図９】
2012027966.tif 000011
【図１０】
2012027966.tif 000012
【図１１】
2012027966.tif 000013
【図１２】
2012027966.tif 000014
【図１３】
2012027966.tif 000015
【図１４】
2012027966.tif 000016
【図１５】
2012027966.tif 000017
【図１６】
2012027966.tif 000018
【図１７】
2012027966.tif 000019
【図１８】
2012027966.tif 000020
【図１９】
2012027966.tif 000021
【図２０】
2012027966.tif 000022
【図２１】
2012027966.tif 000023
【図２２】
2012027966.tif 000024
【図２３】
2012027966.tif 000025
【図２４】
2012027966.tif 000026
【図２５】
2012027966.tif 000027
【図２６】
2012027966.tif 000028
【図２７】
2012027966.tif 000029
【図２８】
2012027966.tif 000030
【図２９】
2012027966.tif 000031
【図３０】
2012027966.tif 000032
【手続補正書】
【提出日】平成23年7月11日(2011.7.11)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
【特許文献１】特開２００６−２２８３９４号公報
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８０
【補正方法】変更
【補正の内容】
【００８０】
続いて、ワード線ＷＬｎ＋１のデータをデータラッチ回路１ＤＬからセンスアンプユニットＳＡＵへ転送し、ワード線ＷＬｎ＋１をプログラムする（ステップＳ１０７）。ステップＳ１０７におけるラッチデータは、図９（３）のようになっている。ここまでで、ワード線ＷＬｎ＋１をプログラムする際に、ワード線ＷＬｎ＋２にプログラム電圧を１パルス印加してから、ワード線ＷＬｎ＋１のプログラムを行うことが実現できている。