(57)【要約】【課題】誤読み出しの確率を小さくする。【解決手段】不揮発性半導体記憶装置１は、複数のワード線及び複数のビット線に接続され、ｎ値（ｎは３以上の自然数）を記憶可能な複数のメモリセルを有するメモリセルアレイ２と、書き込みデータに応じてワード線及びビット線の電圧を制御し、メモリセルにデータを書き込む書き込み動作と、メモリセルの閾値電圧を判定するベリファイ動作とを行う制御回路９とを含む。制御回路９は、第１のメモリセルを第１の閾値電圧に書き込む場合に、第１の判定電圧及び第２の判定電圧を用いてベリファイ動作を行う。そして、制御回路９は、第１のメモリセルの閾値電圧が第１の判定電圧以上かつ第２の判定電圧未満である場合に、第１のメモリセルに隣接する第２のメモリセルの書き込みデータに基づいて第１のメモリセルの書き込みを完了するか、書き込みを継続するかを判断する。【選択図】      図１０
2013122799.tif 000002
【特許請求の範囲】
【請求項１】
複数のワード線及び複数のビット線に接続され、ｎ値（ｎは３以上の自然数）を記憶可能な複数のメモリセルを有するメモリセルアレイと、
書き込みデータに応じてワード線及びビット線の電圧を制御し、メモリセルにデータを書き込む書き込み動作と、前記メモリセルの閾値電圧を判定するベリファイ動作とを行う制御回路と、
を具備し、
前記制御回路は、
第１のメモリセルを第１の閾値電圧に書き込む場合に、第１の判定電圧及び第２の判定電圧（第１の判定電圧＜第２の判定電圧）を用いてベリファイ動作を行い、
前記第１のメモリセルの閾値電圧が前記第１の判定電圧以上かつ前記第２の判定電圧未満である場合に、前記第１のメモリセルに隣接する第２のメモリセルの書き込みデータに基づいて前記第１のメモリセルの書き込みを完了するか、書き込みを継続するかを判断する、
ことを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記制御回路は、前記第１のメモリセルの閾値電圧が前記第１の判定電圧以上かつ前記第２の判定電圧未満であり、かつ前記第２のメモリセルが前記第１の閾値電圧より高い第２の閾値電圧に書き込まれる場合に、前記第１のメモリセルの書き込みを完了することを特徴とする請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
前記制御回路は、前記第１のメモリセルの閾値電圧が前記第１の判定電圧以上かつ前記第２の判定電圧未満であり、かつ前記第２のメモリセルが前記第１の閾値電圧以下の第３の閾値電圧に書き込まれる場合に、前記第１のメモリセルに接続されるビット線に中間電圧を印加して前記第１のメモリセルの書き込みを継続し、
前記中間電圧は、前記第１の判定電圧未満の閾値電圧を有するメモリセルを書き込む際に用いる第１のビット線電圧と、メモリセルを書き込み禁止にする際に用いる第２のビット線電圧（第１のビット線電圧＜第２のビット線電圧）との間に設定されることを特徴とする請求項１又は２に記載の不揮発性半導体記憶装置。
【請求項４】
前記制御回路は、前記第２の判定電圧以上の閾値電圧を有する第３のメモリセルを書き込み禁止にし、
前記書き込みが完了した第１のメモリセルを前記第３のメモリセルと同じバイアスに設定することを特徴とする請求項１乃至３のいずれかに記載の不揮発性半導体記憶装置。
【請求項５】
メモリセルの書き込みデータ及びベリファイの結果を格納するラッチ回路をさらに具備し、
前記第１のメモリセルに接続される第１のラッチ回路は、前記第２のメモリセルに接続されるラッチ回路との間にデータパスを有することを特徴とする請求項１乃至４のいずれかに記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
電気的に書き換えが可能な不揮発性半導体記憶装置の一種として、ＮＡＮＤ型フラッシュメモリが知られている。このＮＡＮＤ型フラッシュメモリのデータ記憶容量を大きくするための技術として、メモリセルの閾値分布を細分化し、メモリセルが複数ビットを記憶可能とする多値（ＭＬＣ：Multi Level Cell）記憶方式が用いられる。
【０００３】
ＮＡＮＤ型フラッシュメモリのメモリセルは、メモリセルの制御ゲートに書き込み電圧を印加し、制御ゲート−基板間の電位差を用いて電子を電荷蓄積層に注入することで書き込みが行われる。また、ＮＡＮＤ型フラッシュメモリは、その回路構成上、１本のワード線に繋がる全てのメモリセルを単位として書き込みが行われる。
【０００４】
容量結合の影響により、あるメモリセルに対して電荷蓄積層に電子を注入すると、既に書き込まれた隣接メモリセルの閾値電圧がシフトしてしまう場合がある。さらに、メモリセルの微細化により、隣接メモリセルのデータパターンに応じてメモリセルの閾値電圧がシフトする量が変化するようになり、閾値分布に影響を及ぼしている。このことから、メモリセルのデータを正しく読み出せない、すなわち誤読み出しが増え、ＮＡＮＤ型フラッシュメモリの信頼性が低下してしまう場合がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１９６９８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実施形態は、誤読み出しの確率を小さくすることが可能な不揮発性半導体記憶装置を提供する。
【課題を解決するための手段】
【０００７】
実施形態に係る不揮発性半導体記憶装置は、複数のワード線及び複数のビット線に接続され、ｎ値（ｎは３以上の自然数）を記憶可能な複数のメモリセルを有するメモリセルアレイと、書き込みデータに応じてワード線及びビット線の電圧を制御し、メモリセルにデータを書き込む書き込み動作と、前記メモリセルの閾値電圧を判定するベリファイ動作とを行う制御回路とを具備する。前記制御回路は、第１のメモリセルを第１の閾値電圧に書き込む場合に、第１の判定電圧及び第２の判定電圧（第１の判定電圧＜第２の判定電圧）を用いてベリファイ動作を行い、前記第１のメモリセルの閾値電圧が前記第１の判定電圧以上かつ前記第２の判定電圧未満である場合に、前記第１のメモリセルに隣接する第２のメモリセルの書き込みデータに基づいて前記第１のメモリセルの書き込みを完了するか、書き込みを継続するかを判断する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る不揮発性半導体記憶装置の構成を示すブロック図。
【図２】図１に示したメモリセルアレイ及びセンスアンプ回路の構成を示す回路図。
【図３】センスアンプユニット（ＳＡＵ）の一例を示す回路図。
【図４】データ制御ユニット（ＤＣＵ）の一例を示す回路図。
【図５】メモリセルの閾値電圧とデータとの関係を説明する図。
【図６】書き込み動作の一例を説明する模式図。
【図７】第１の実施形態に係る書き込み動作を説明する模式図。
【図８】データラッチ回路のデータ割り付けを説明する図。
【図９】着目セル及び隣接セルに関するデータラッチ回路のデータの様子を示す図。
【図１０】第１の実施形態に係る書き込み動作を示すフローチャート。
【図１１】Ａレベルの書き込みベリファイ後におけるメモリセルの閾値電圧とデータラッチ回路のデータとの関係を示す図。
【図１２】着目セル及び隣接セルに関するデータラッチ回路のデータの様子を示す図。
【図１３】第２の実施形態に係る書き込み動作を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、実施形態について図面を参照して説明する。ただし、図面は模式的または概念的なものであり、各図面の寸法および比率などは必ずしも現実のものと同一とは限らない。以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１０】
［第１の実施形態］
［１．不揮発性半導体記憶装置の構成］
図１は、第１の実施形態に係る不揮発性半導体記憶装置１の構成を示すブロック図である。本実施形態では、不揮発性半導体記憶装置１として、ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【００１１】
図１において、メモリセルアレイ２は、複数のメモリセルがマトリクス状に配置されて構成されている。メモリセルは、電気的に書き換え可能なＥＥＰＲＯＭセルから構成される。メモリセルアレイ２には、メモリセルの電圧を制御するために、複数のビット線、複数のワード線、及びソース線が配設されている。
【００１２】
ロウデコーダとしてのワード線制御回路３は、複数のワード線に接続され、データの読み出し、書き込み、及び消去時に、ワード線の選択及び駆動を行う。センスアンプ回路４は、複数のビット線に接続され、データの読み出し、書き込み、及び消去時に、ビット線の電圧を制御する。また、センスアンプ回路４は、データの読み出し時にビット線のデータを検知し、データの書き込み時に書き込みデータに応じた電圧をビット線に印加する。カラムデコーダ５は、アドレスデコーダ８の出力信号に応じて、ビット線を選択するためのカラム選択信号を生成し、このカラム選択信号をセンスアンプ回路４に送る。
【００１３】
入出力制御回路６は、外部から供給される各種コマンドＣＭＤ、アドレス信号ＡＤＤ、及びデータＤＴ（書き込みデータを含む）を受ける。データの書き込み時、書き込みデータは、入出力制御回路６からデータ入出力バッファ７を介してセンスアンプ回路４に送られる。データの読み出し時、センスアンプ回路４に読み出された読み出しデータは、データ入出力バッファ７を介して入出力制御回路６に送られ、入出力制御回路６から外部ＨＭ（例えば、メモリコントローラ、または、ホスト）に出力される。
【００１４】
入出力制御回路６からデータ入出力バッファ７に送られたアドレス信号ＡＤＤは、アドレスデコーダ８に送られる。アドレスデコーダ８は、アドレス信号ＡＤＤをデコードし、ロウアドレスをワード線制御回路３に送り、カラムアドレスをカラムデコーダ５に送る。
【００１５】
入出力制御回路６からデータ入出力バッファ７に送られたコマンドＣＭＤは、制御回路（コントローラ）９に送られる。制御回路９には、外部ＨＭから、チップイネーブル信号／ＣＥ、書き込みイネーブル信号／ＷＥ、読み出しイネーブル信号／ＲＥ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ等の外部制御信号が供給される。制御回路９は、動作モードに応じて供給される外部制御信号及びコマンドＣＭＤに基づいて、データの書き込み及び消去のシーケンスを制御する制御信号、及びデータの読み出しを制御する制御信号を発生する。この制御信号は、ワード線制御回路３、センスアンプ回路４、及び制御電圧発生回路１０等に送られる。制御回路９は、この制御信号を用いて、不揮発性半導体記憶装置１の各種動作を統括的に制御する。また、制御回路９は不揮発性半導体記憶装置１の中に配置されていなくても良い。すなわち、不揮発性半導体記憶装置１とは別の半導体装置に配置されていても良いし、外部ＨＭ内に配置されていても良い。
【００１６】
制御電圧発生回路１０は、制御回路９から送られる各種制御信号に応じて、読み出し電圧、書き込み電圧、ベリファイ電圧、及び消去電圧等、メモリセルアレイ２、ワード線制御回路３、及びセンスアンプ回路４の各種動作に必要な電圧を発生する。
【００１７】
パラメータ記憶部１１は、入出力制御回路６、及び制御回路９に接続され、テスト工程で決定されたチップの品質に適したパラメータを記憶する。
【００１８】
図２は、図１に示したメモリセルアレイ２及びセンスアンプ回路４の構成を示す回路図である。メモリセルアレイ２は、複数のブロックＢＬＫを備えている。各ブロックＢＬＫは、データの消去単位である。各ブロックＢＬＫは、複数のＮＡＮＤストリングＮＳを備えている。各ＮＡＮＤストリングＮＳは、複数のメモリセルＭＣ（メモリセルトランジスタともいう）と、２個の選択ゲートトランジスタＳＴ１及びＳＴ２とから構成されている。図２では、ＮＡＮＤストリングＮＳが３２個のメモリセルＭＣを備えている構成を一例として示している。選択ゲートトランジスタＳＴ１及びＳＴ２としては、例えばＮチャネルＭＯＳＦＥＴ（Metal Oxide Semiconductor Field Effect Transistor）が用いられる。
【００１９】
メモリセルＭＣは、半導体基板（ウェル）上にゲート絶縁膜を介在して形成された電荷蓄積層（例えば、浮遊ゲート電極、トラップを有する絶縁膜、または、これらを積層した膜）と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極とを有する積層ゲート構造を備えている。メモリセルＭＣは、電荷蓄積層に注入された電子の多寡による閾値電圧の変化に応じて、例えば１つのメモリセルＭＣに複数ビット（又は、３値以上）のデータを記憶することが可能である。
【００２０】
ＮＡＮＤストリングＮＳ内で隣接するメモリセルＭＣ同士の電流経路は直列接続されている。直列接続されたメモリセルＭＣの一端は選択ゲートトランジスタＳＴ１のソースに接続され、他端は選択ゲートトランジスタＳＴ２のドレインに接続されている。
【００２１】
同一行にあるメモリセルＭＣの制御ゲート電極は、１本のワード線ＷＬに共通接続されている。同一行にある選択ゲートトランジスタＳＴ１（又はＳＴ２）のゲート電極は、選択ゲート線ＳＧＤ（又はＳＧＳ）に共通接続されている。選択ゲートトランジスタＳＴ１のドレインは、ビット線ＢＬに接続されている。選択ゲートトランジスタＳＴ２のソースは、ソース線ＳＲＣに接続されている。
【００２２】
同一のワード線ＷＬに接続された複数のメモリセルＭＣはページを構成する。データの書き込み及び読み出しは、１つのページ内のメモリセルＭＣに対して一括して行なわれる。また、メモリセルアレイ２は、複数のページのデータが一括して消去されるように構成されており、この消去の単位がブロックＢＬＫである。
【００２３】
ビット線ＢＬは、ブロックＢＬＫ間で、選択ゲートトランジスタＳＴ１のドレインを共通接続している。つまり、複数のブロックＢＬＫ内の同一列にあるＮＡＮＤストリングＮＳは、同一のビット線ＢＬに接続される。
【００２４】
センスアンプ回路４は、複数のセンスアンプユニット（ＳＡＵ）４ａと、複数のデータ制御ユニット（ＤＣＵ）４ｂとを備えている。複数のセンスアンプユニット４ａはそれぞれ、複数のビット線ＢＬ０〜ＢＬｎに接続されている。複数のデータ制御ユニット４ｂはそれぞれ対応する複数のセンスアンプユニット４ａに接続されている。複数のセンスアンプユニット４ａで１つのセンスアンプユニット群４−１ａを構成し、複数のデータ制御ユニット４ｂで１つのデータ制御ユニット群４−１ｂを構成している。各センスアンプユニット４ａは、データの読み出し時、メモリセルからビット線に読み出されたデータを検知し、保持する。複数のデータ制御ユニット４ｂはそれぞれ、カラム選択信号ＳＥＬ０〜ＳＥＬｎに従って動作するカラム選択トランジスタＣＴ０〜ＣＴｎを介してデータ入出力バッファ７に接続されている。
【００２５】
また、任意のデータ制御ユニット４ｂは、行方向において隣接するデータ制御ユニットに接続されており、当該データ制御ユニット４ｂに隣接するデータ制御ユニットとの間でデータの受け渡しが可能なように構成されている。行方向において隣接するデータ制御ユニット同士は、２本の信号線で接続されており、そのうちの１本の信号線は、一方が他方にデータを送るために使用され、もう１本の信号線は、一方が他方からデータを受けるために使用される。
【００２６】
書き込み動作（プログラム動作とも呼ぶ）、読み出し動作、及びプログラムベリファイ動作（ベリファイ動作とも呼ぶ）において、センスアンプユニット４ａに接続されているビット線が選択されるとともに、１本のワード線が選択される。この選択されたワード線に接続されている全てのメモリセルに、書き込み、又は読み出し電圧を印加することにより一斉に書き込み、又は読み出し動作が行われる。
【００２７】
［１−１．センスアンプユニット４ａの構成］
図３は、センスアンプユニット（ＳＡＵ）４ａの一例を示す回路図である。センスアンプユニット４ａは、複数のＰチャネルＭＯＳトランジスタ（以下、ＰＭＯＳと称す）２０、２１、２２、２３と、複数のＮチャネルＭＯＳトランジスタ（以下、ＮＭＯＳと称す）３１、３２、３３、３４、３５、３６、３７と、例えば２個のクロックドインバータ回路により構成されたラッチ回路ＬＡＴ１とにより構成されている。
【００２８】
ＰＭＯＳ２０のソースは電源電圧Ｖｄｄが供給されるノードに接続され、ドレインはＰＭＯＳ２１、ＮＭＯＳ３１、３２を介してデータ制御ユニット（ＤＣＵ）４ｂに接続される。ＰＭＯＳ２０のゲートは、ラッチ回路ＬＡＴ１のノードＩＮＶに接続されている。ＰＭＯＳ２１のゲートには信号ＢＬＣ１が供給され、ＮＭＯＳ３１、３２のゲートには信号ＢＬＣ２、ＢＬＣ３がそれぞれ供給されている。ＮＭＯＳ３１とＮＭＯＳ３２との接続ノードは、ビット線ＢＬに接続されるとともに、ＮＭＯＳ３３、３４を介して接地されている。ＮＭＯＳ３３のゲートは、ラッチ回路ＬＡＴ１のノードＩＮＶに接続され、ＮＭＯＳ３３は、ラッチ回路ＬＡＴ１に保持されたデータにより制御される。さらに、ＮＭＯＳ３４のゲートには、信号ＤＩＳが供給されている。
【００２９】
また、ＰＭＯＳ２２のソースは電源電圧Ｖｄｄが供給されるノードに接続され、ドレインはＰＭＯＳ２３、ＮＭＯＳ３６、ＮＭＯＳ３７を介してデータ制御ユニット４ｂに接続される。ＰＭＯＳ２２のゲートには信号ＢＬＣ４が供給され、ＰＭＯＳ２３のゲートはＮＭＯＳ３５を介してＰＭＯＳ２１とＮＭＯＳ３１との接続ノードに接続されている。ＮＭＯＳ３５のゲートには信号ＸＸＬが供給され、ＮＭＯＳ３６のゲートにはリセット信号ＲＳＴが供給されている。ＮＭＯＳ３７のゲートには信号ＢＬＣ５が供給されている。ラッチ回路ＬＡＴ１は、ＮＭＯＳ３６に並列接続されている。
【００３０】
このように構成されたセンスアンプユニット４ａの動作について概略的に説明する。
【００３１】
（書き込み動作）
メモリセルにデータを書き込む場合、先ず、リセット信号ＲＳＴが一旦ハイレベル（以下、Ｈレベルと記す）とされ、ラッチ回路ＬＡＴ１がリセットされる。すなわち、ラッチ回路ＬＡＴ１のノードＩＮＶがＬレベルに設定される。この後、信号ＢＬＣ１、ＢＬＣ４、ＤＩＳがローレベル（以下、Ｌレベルと記す）とされる。
【００３２】
この後、信号ＢＬＣ２、ＢＬＣ３、ＸＸＬがＨレベルとされ、信号ＢＬＣ４がＬレベルとされて、データ制御ユニット４ｂからデータが取り込まれる。このデータが書き込みを示すＬレベル“０”である場合、ＰＭＯＳ２３のゲートがＬレベルとなり、ＰＭＯＳ２３はオン状態となる。このため、ラッチ回路ＬＡＴ１にはＨレベル“１”がセットされる。また、データが非書き込みを示すＨレベル“１”である場合、ＰＭＯＳ２３がオフ状態となる。このため、ラッチ回路ＬＡＴ１にはＬレベル“０”がセットされる。すなわち、データを書き込む場合、ラッチ回路ＬＡＴ１のノードＩＮＶはＨレベルに設定され、非書き込みの場合、ノードＩＮＶはＬレベルに設定される。
【００３３】
次いで、信号ＢＬＣ１、ＢＬＣ３、ＤＩＳ、ＸＸＬがＬレベル、信号ＢＬＣ２がＨレベルとされ、ビット線ＢＬがＨレベルに充電される。この後、信号ＤＩＳがＨレベルに設定される。すると、ラッチ回路ＬＡＴ１のノードＩＮＶが書き込みを示すＨレベルの場合、ＮＭＯＳ３３がオンし、ＮＭＯＳ３３、３４を介してビット線の電荷が放電される。また、ラッチ回路ＬＡＴ１のノードＩＮＶが非書き込みを示すＬレベルの場合、ＮＭＯＳ３３がオフするため、ビット線の電位はＨレベルに保持される。
【００３４】
この後、図２に示すビット線とＮＡＮＤストリングとを接続する選択ゲートトランジスタＳＴ１の選択ゲート線ＳＧＤがＨレベルとされると、ビット線の電位がメモリセルのチャネルに転送される。これと同時に選択されたメモリセルのワード線に書き込み電圧Ｖｐｇｍが印加される。このため、書き込みセルの場合、チャネルがＬレベル（Ｖｓｓ）、ワード線が書き込み電圧Ｖｐｇｍとなり、書き込みが行われる。また、非書き込みセルの場合、チャネルがＨレベル（＝Ｖｄｄ−Ｖｔ：Ｖｔは選択ゲートトランジスタの閾値電圧）、ワード線がＶｐｇｍとなり、ワード線−チャネル間の電位差が十分大きくならず、書き込みが行われない（書き込み禁止）。
【００３５】
（読み出し動作）
メモリセルからデータを読み出す場合、先ず、リセット信号ＲＳＴが一旦Ｈレベルとされ、ラッチ回路ＬＡＴ１がリセットされる。この後、信号ＢＬＣ１、ＢＬＣ３、ＤＩＳ、ＸＸＬがＬレベル、信号ＢＬＣ２がＨレベルとされ、ビット線がＨレベルに充電される。この後、信号ＢＬＣ２をＬレベルとして選択ワード線に読み出し電圧が印加される。メモリセルの閾値電圧が読み出し電圧より高い場合、メモリセルはオフ状態となり、ビット線はＨレベルに保持される。また、メモリセルの閾値電圧が読み出し電圧より低い場合、メモリセルはオン状態となり、ビット線の電荷が放電される。このため、ビット線はＬレベルとなる。次いで、信号ＢＬＣ３がＨレベルとされ、ビット線の電位がデータ制御ユニット４ｂに読み出される。
【００３６】
（プログラムベリファイ動作）
書き込み動作後、メモリセルの閾値電圧を検証するプログラムベリファイ動作が行われる。プログラムベリファイ動作は、読み出し動作とほぼ同様である。プログラムベリファイ動作では、ビット線をＨレベルに充電した後、選択ワード線に所定のベリファイ電圧が印加される。メモリセルの閾値電圧がベリファイ電圧に達している場合、メモリセルはオフ状態となる。このため、ビット線の電位はＨレベルに保持される。また、メモリセルの閾値電圧がベリファイ電圧に達していない場合、メモリセルはオン状態となる。このため、ビット線の電位はＬレベルとなる。
【００３７】
この状態において、信号ＢＬＣ１、ＢＬＣ２、ＸＸＬがＨレベル、信号ＢＬＣ４、ＢＬＣ３、ＤＩＳ、ＲＳＴがＬレベルとされ、ビット線ＢＬの電位がラッチ回路ＬＡＴ１に保持される。すなわち、メモリセルの閾値電圧がベリファイ電圧に達しており、ビット線ＢＬの電位がＨレベルの場合、ＰＭＯＳ２３がオフ状態となる。このため、ラッチ回路ＬＡＴ１にはＬレベルが保持される。また、メモリセルの閾値電圧がベリファイ電圧に達しておらず、ビット線ＢＬの電位がＬレベルの場合、ＰＭＯＳ２３がオン状態となる。このため、ラッチ回路ＬＡＴ１にはＨレベルが保持される。すなわち、ベリファイをパスした場合、ラッチ回路ＬＡＴ１のノードＩＮＶの電位はＬレベルとなり、ベリファイをパスしない場合、ノードＩＮＶの電位はＨレベルとなる。
【００３８】
また、ラッチ回路ＬＡＴ１の反転ノードＩＮＶｎのデータは、信号ＢＬＣ５をＨレベルとして、ＮＭＯＳ３７をオンした状態において、データ制御ユニット４ｂに転送される。
【００３９】
［１−２．データ制御ユニット４ｂの構成］
図４は、データ制御ユニット（ＤＣＵ）４ｂの一例を示す回路図である。このデータ制御ユニット４ｂは、例えば４個のデータラッチ回路ＤＬ０〜ＤＬ３と、バス４１と、データ形成回路４２とを備えている。
【００４０】
バス４１の一端は、対応するセンスアンプユニット４ａに接続され、他端はデータ入出力バッファ７に接続されている。
【００４１】
データラッチ回路ＤＬ０は、ラッチ回路ＬＡＴ２と、トランスファーゲート４３とにより構成されている。ラッチ回路ＬＡＴ２は、トランスファーゲート４３を介してバス４１に接続される。トランスファーゲート４３は信号φ及びその反転信号φｎにより制御される。データラッチ回路ＤＬ１〜ＤＬ３は、データラッチ回路ＤＬ０と同一構成であり、トランスファーゲートに供給される信号がそれぞれ相違している。従って、データラッチ回路ＤＬ０〜ＤＬ３は、選択的にバス４１に接続可能とされている。
【００４２】
データ形成回路４２は、ラッチ回路ＬＡＴ３、ＰＭＯＳ５２〜５６、ＮＭＯＳ６１〜７０、インバータ回路７１、及びＮＭＯＳ７２〜７５により構成されている。ＰＭＯＳ５１のソースは電源電圧Ｖｄｄが供給されるノードに接続されている。このＰＭＯＳ５１のゲートにはセット信号ＳＥＴ１が供給され、ドレインはラッチ回路ＬＡＴ３に接続されている。さらに、ＰＭＯＳ５１のドレインはＮＭＯＳ６１を介して接地されるとともに、ＮＭＯＳ６２、６３を介して接地されている。ＮＭＯＳ６１のゲートにはリセット信号ＲＳＴ２が供給され、ＮＭＯＳ６２のゲートには信号ＬＡＴＨが供給されている。ＮＭＯＳ６３のゲートは、入力端子がバス４１に接続されたインバータ回路７１の出力端子に接続されている。さらに、ＰＭＯＳ５１のドレインは、ＮＭＯＳ６４、６５を介して接地されている。ＮＭＯＳ６４のゲートには信号ＬＡＴＬが供給され、ＮＭＯＳ６５のゲートは、バス４１に接続されている。
【００４３】
電源電圧Ｖｄｄが供給されるノードとバス４１との間には、ＰＭＯＳ５２、５３の直列回路と、ＰＭＯＳ５４、５５の直列回路と、ＰＭＯＳ５６が接続されている。
【００４４】
ＰＭＯＳ５２のゲートには、信号ＢＵＳＨ２が供給され、ＰＭＯＳ５３のゲートはＬＡＴ３のノードＬＡＴｎに接続されている。ＰＭＯＳ５２、５３は、信号ＢＵＳＨ２とＬＡＴ３のノードＬＡＴｎの電位とに応じてバス４１をＨレベルに充電する回路である。
【００４５】
ＰＭＯＳ５４のゲートには、信号ＢＵＳＬ２が供給され、ＰＭＯＳ５５のゲートはＬＡＴ３のノードＬＡＴに接続されている。ＰＭＯＳ５４、５５は、信号ＢＵＳＬ２とＬＡＴ３のノードＬＡＴの電位とに応じてバス４１をＨレベルに充電する回路である。
【００４６】
ＰＭＯＳ５６のゲートには、セット信号ＳＥＴ２が供給されている。ＰＭＯＳ５６は、セット信号ＳＥＴ２に応じてバス４１をＨレベルに充電する回路である。
【００４７】
バス４１と接地間には、ＮＭＯＳ６６、６７の直列回路と、ＮＭＯＳ６８、６９の直列回路と、ＮＭＯＳ７０が接続されている。
【００４８】
ＮＭＯＳ６６のゲートには、信号ＢＵＳＨ１が供給され、ＮＭＯＳ６７のゲートはＬＡＴ３のノードＬＡＴｎに接続されている。ＮＭＯＳ６６、６７は、信号ＢＵＳＨ１とＬＡＴ３のノードＬＡＴｎの電位とに応じてバス４１をＬレベルに放電する回路である。
【００４９】
ＮＭＯＳ６８のゲートには、信号ＢＵＳＬ１が供給され、ＮＭＯＳ６９のゲートはＬＡＴ３のノードＬＡＴに接続されている。ＮＭＯＳ６８、６９は、信号ＢＵＳＬ１とＬＡＴ３のノードＬＡＴの電位とに応じてバス４１をＬレベルに放電する回路である。
【００５０】
ＮＭＯＳ７０のゲートには、リセット信号ＲＳＴ２が供給されている。ＮＭＯＳ７０は、リセット信号ＲＳＴ２に応じてバス４１をＬレベルに放電する回路である。
【００５１】
バス４１と接地間には、ＮＭＯＳ７２、７３の直列回路と、ＮＭＯＳ７４、７５の直列回路とが接続されている。
【００５２】
ＮＭＯＳ７２のゲートには、信号ＢＵＳＬＰが供給され、ＮＭＯＳ７３のゲートは、ＬＡＴＰ（当該データ制御ユニットの行方向において左側に隣接するデータ制御ユニットに含まれるラッチ回路ＬＡＴ３のノードＬＡＴ）に接続されている。ＮＭＯＳ７２、７３は、信号ＢＵＳＬＰとノードＬＡＴＰの電位とに応じてバス４１をＬレベルに放電する回路である。
【００５３】
ＮＭＯＳ７４のゲートには、信号ＢＵＳＬＮが供給され、ＮＭＯＳ７５のゲートは、ノードＬＡＴＮ（当該データ制御ユニットの行方向において右側に隣接するデータ制御ユニットに含まれるラッチ回路ＬＡＴ３のノードＬＡＴ）に接続されている。ＮＭＯＳ７４、７５は、信号ＢＵＳＬＮとノードＬＡＴＮの電位とに応じてバス４１をＬレベルに放電する回路である。
【００５４】
データ制御ユニット４ｂは、データラッチ回路ＤＬ０〜ＤＬ３にデータを保持するとともに、保持したデータを加工することが可能である。つまり、データ制御ユニット４ｂは、後述するように、保持したデータの例えば論理積“ＡＮＤ”、“ＮＡＮＤ”、論理和“ＯＲ”、反転に相当する動作が可能なように構成されている。
【００５５】
（データ制御ユニットの基本動作）
データ制御ユニット４ｂの基本動作について説明する。データ入出力バッファ７から供給された２ビットの書き込みデータは、データラッチ回路ＤＬ０、ＤＬ１に１ビットずつラッチされる。ここで、データラッチ回路ＤＬ０、ＤＬ１は、例えば下位ページ、上位ページのデータをそれぞれ保持する。データラッチ回路ＤＬ２は、ベリファイがパスしたことを示すフラグデータを保持するために用いられる。データラッチ回路ＤＬ３は、隣接するデータ制御ユニットから転送されたデータを保持するために用いられる。データラッチ回路ＤＬ０〜ＤＬ３のデータは、トランスファーゲート４３を介してバス４１に転送可能とされている。
【００５６】
バス４１のデータをラッチ回路ＬＡＴ３に取り込む場合、リセット信号ＲＳＴ２をＨレベルとしてＮＭＯＳ６１、７０をオンさせ、バス４１、及びラッチ回路ＬＡＴ３をＬレベルにリセットする。
【００５７】
次いで、セット信号ＳＥＴ１をＬレベルとしてＰＭＯＳ５１をオンさせ、ラッチ回路ＬＡＴ３をＨレベルにセットする。このように、ラッチ回路ＬＡＴ３にデータを取り込む場合、ラッチ回路ＬＡＴ３は、先ず、Ｈレベルにセットされる。この後、例えばデータラッチ回路ＤＬ０〜ＤＬ３の何れかより、バス４１にデータを転送する。この状態において、信号ＬＡＴＨをＨレベルとする。バス４１のデータがＨレベルの場合、インバータ回路７１の出力信号がＬレベルとなり、ＮＭＯＳ６３はオフ状態のままである。このため、ラッチ回路ＬＡＴ３はＨレベルのままである。
【００５８】
また、バス４１がＬレベルの場合、インバータ回路７１の出力信号がＨレベルとなり、ＮＭＯＳ６３がオンとなる。このため、ラッチ回路ＬＡＴ３は、ＮＭＯＳ６２、６３を介して放電され、Ｌレベルとなる。
【００５９】
次に、バス４１のデータを反転してラッチ回路ＬＡＴ３に取り込む場合の動作について説明する。上記のようにして、ラッチ回路ＬＡＴ３をＨレベルにセットした状態において、バス４１にデータを転送する。この後、信号ＬＡＴＬをＨレベル、信号ＬＡＴＨをＬレベルとする。バス４１のデータがＨレベルの場合、ＮＭＯＳ６５はオンとなる。このため、ラッチ回路ＬＡＴ３は、ＮＭＯＳ６４、６５を介して放電され、Ｌレベルとなる。
【００６０】
また、バス４１がＬレベルの場合、ＮＭＯＳ６５はオフ状態のままである。このため、ラッチ回路ＬＡＴ３はＨレベルのままである。
【００６１】
このようにして、ラッチ回路ＬＡＴ３に保持されたデータを、データラッチ回路ＤＬ０〜ＤＬ３に転送することにより、データラッチ回路ＤＬ０〜ＤＬ３のデータを操作することができる。
【００６２】
（データラッチ回路に記憶されたデータの反転動作）
データラッチ回路ＤＬ０〜ＤＬ３のデータを反転させる反転動作について説明する。先ず、前述した動作によりバス４１を充電し、データラッチ回路ＤＬ０〜ＤＬ３のいずれかのトランスファーゲート４３が開けられる。例えばデータラッチ回路ＤＬ０のトランスファーゲート４３が開けられた場合において、データラッチ回路ＤＬ０のノードＤＴがＨレベルである場合、データラッチ回路ＤＬ０のクロックドインバータ回路を介してバス４１が放電され、ノードＤＴの反転データがバス４１へ転送されたことになる。
【００６３】
次に、上記のようにして、ＬＡＴ３をリセットした後、信号ＳＥＴ１をＬレベルとしてＬＡＴ３のノードＬＡＴをＨレベルとする。
【００６４】
次に、信号ＬＡＴＬをＨレベルとすると、バス４１がデータラッチ回路ＤＬ０のデータによって放電されている場合、ノードＬＡＴはＨレベルとなり、バス４１が充電状態を維持したままの場合、ＮＭＯＳ６５がオンするため、ノードＬＡＴはＬレベルに放電される。
【００６５】
次に、上述したようにバス４１を充電し、信号ＢＵＳＨ１をＨレベルにすると、ノードＬＡＴがＨレベル（ＬＡＴ３のノードＬＡＴｎがＬレベル）の場合、バス４１はＨレベルを維持し、ノードＬＡＴがＬレベル（ＬＡＴ３のノードＬＡＴｎがＨレベル）の場合、バス４１はＬレベルとなる。
【００６６】
最後に、データラッチ回路ＤＬ０のラッチ回路ＬＡＴ２をリセットした後、トランスファーゲート４３を開けることにより、バス４１のデータがトランスファーゲート４３を介してラッチ回路ＬＡＴ２に取り込まれる。この結果、バス４１のデータがＨレベルの場合、ノードＤＴはＬレベルとなり、バス４１のデータがＬレベルの場合、ノードＤＴはＨレベルとなる。
【００６７】
上記一連の動作を纏めると、ラッチ回路ＬＡＴ２のノードＤＴの反転データがバス４１へ転送され、この反転データのさらに反転データがラッチ回路ＬＡＴ３へ転送される。ラッチ回路ＬＡＴ３のデータがバス４１に転送され、バス４１の反転データがラッチ回路ＬＴＡ２のノードＤＴに保持される。このようにして、データラッチ回路ＤＬ０〜ＤＬ３のノードＤＴが反転される。
【００６８】
なお、データ制御ユニット４ｂの基本動作は、これに限定されるものではなく、他の動作によっても可能である。この動作を基本としてデータの“ＡＮＤ”、“ＮＡＮＤ”、“ＯＲ”動作を行うことが可能である。
【００６９】
（隣接するデータ制御ユニット間のデータ転送動作）
図２に示すように、データ制御ユニット４ｂは、行方向に隣接するデータ制御ユニットに接続されており、当該データ制御ユニット４ｂの行方向に隣接するデータ制御ユニットとの間でデータの受け渡しが可能なように構成されている。このデータ転送動作を行うために、データ制御ユニット４ｂ（具体的には、データ形成回路４２）は、ＮＭＯＳ７２〜７５を備えている。
【００７０】
上述したようにバス４１を充電し、信号ＢＵＳＬＰをＨレベルにすると、ノードＬＡＴＰがＬレベルの場合、バス４１はＨレベルを維持し、ノードＬＡＴＰがＨレベルの場合、バス４１はＬレベルとなる。この動作により、当該データ制御ユニットの左側に隣接するデータ制御ユニットに含まれるラッチ回路ＬＡＴ３の反転データをバス４１に転送することができる。その後、データラッチ回路ＤＬ３は、バス４１のデータを保持する。
【００７１】
同様に、上述したようにバス４１を充電し、信号ＢＵＳＬＮをＨレベルにすると、ノードＬＡＴＮがＬレベルの場合、バス４１はＨレベルを維持し、ノードＬＡＴＮがＨレベルの場合、バス４１はＬレベルとなる。この動作により、当該データ制御ユニットの右側に隣接するデータ制御ユニットに含まれるラッチ回路ＬＡＴ３の反転データをバス４１に転送することができる。その後、データラッチ回路ＤＬ３は、バス４１のデータを保持する。
【００７２】
［２．不揮発性半導体記憶装置の動作］
次に、上記のように構成された不揮発性半導体記憶装置１の動作について説明する。本実施形態のメモリセルＭＣは、１つのメモリセルＭＣに２ビット以上（又は、３値、例えば、閾値分布の数が３つ以上）のデータを記憶することが可能である。以下に、メモリセルＭＣが２ビットデータを記憶する場合を例に挙げて説明する。
【００７３】
図５は、メモリセルＭＣの閾値電圧とデータとの関係を説明する図である。２ビットデータは、上位ページデータ“ｘ”と下位ページデータ“ｙ”とにより“ｘｙ”で表され、ここでは、例えば、閾値分布に応じてＥｒレベル＝“１１”、Ａレベル＝“０１”，Ｂレベル＝“００”，Ｃレベル＝“１０”のようにデータが割り付けられる。２ビットデータ記憶方式の場合、データの書き込み（プログラム）は、下位ページプログラムと上位ページプログラムとの２回の書き込み動作を必要とする。
【００７４】
Ｅｒレベルは、メモリセルの閾値電圧の最も低い消去状態（例えば、負の閾値電圧）である。図５（ａ）は、下位ページをプログラムした場合のメモリセルの閾値分布であり、メモリセルの閾値電圧Ｖｔｈは、Ｅｒレベル及びＬＭ（Lower Middle）レベルのいずれかに設定される。下位ページプログラムは、Ｅｒレベルのメモリセルを選択的にＬＭレベルにする動作である。ＬＭレベルのメモリセルは、下位ページデータが“０”データのメモリセルである。
【００７５】
図５（ｂ）は、上位ページをプログラムした場合の閾値分布である。上位ページプログラムは、Ｅｒレベルのメモリセルを選択的にＡレベルにする第１の上位ページプログラムと、ＬＭレベルのメモリセルを選択的にＢレベル及びＣレベルにする第２の上位ページプログラムとを含む。これら２種類の上位ページプログラムは、１つの書き込みシーケンス内で、選択ページに対して、選択的に“０”，“１”データを与えて同時にプログラム電圧の印加が行われる。
【００７６】
図６は、書き込み動作の一例を説明する模式図である。書き込み動作では、ワード線に書き込み電圧を印加してメモリセルの閾値電圧を上昇させるステップと、メモリセルの閾値電圧を確認する（ベリファイする）ステップとが繰り返し実行され、当該ワード線に接続された選択ページの全てのメモリセル（又は所定数以上のメモリセル）のベリファイがパスした場合に、当該ワード線の書き込みが完了し、次のワード線の書き込みが行われる。また、ブロックＢＬＫ内の書き込み動作は、例えばソース線ＳＲＣに近いワード線ＷＬから順に行われる。
【００７７】
図６（ａ）に示すように、メモリセルをＡレベルに書き込む場合、Ａレベルのベリファイがパスする判定電圧ＡＶと、判定電圧ＡＶより若干低い判定電圧ＡＶＬ（Ｅｒレベルより高い）との２の判定電圧を用意して２回に分けてベリファイ動作を行う。このベリファイ動作で判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満の閾値電圧を持つメモリセルは、次の書き込み電圧印加動作においてビット線に０ＶとＶｄｄとの間の中間電圧を印加する。これにより、ビット線に０Ｖを印加する場合に比べて、閾値電圧の変動量（上昇量）を小さくすることができる。この結果、図６（ｂ）に示すように、閾値電圧の分布を細くすることが可能となる。
【００７８】
しかしながら、この方法で得られた細い分布も、隣接セルがＡレベルよりも高い閾値電圧への書き込みであった場合、その書き込みの過程で容量結合の影響を受け、結果として図６（ｂ）の破線のように分布が広がってしまう。
【００７９】
そこで、本実施形態では、Ａレベルに書き込まれる着目セルの行方向に隣接する隣接セルの書き込みデータがＡレベルより高い閾値電圧（Ｂ及びＣレベル）である場合に、着目セルの判定電圧を判定電圧ＡＶ以上かつ判定電圧ＡＶ未満に設定するようにする。これにより、隣接セルとの容量結合により着目セルの閾値電圧がシフトした場合でも、Ａレベルのメモリセルの閾値分布が広がるのを抑制することができる。
【００８０】
図７は、本実施形態に係る書き込み動作を説明する模式図である。図７（ａ）に示すように、判定電圧ＡＶＬ及びＡＶの２つのベリファイ電圧を用いてベリファイを行い、判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満の閾値電圧を持つメモリセルのグループ（第１のグループ）に着目する。そして、着目セルに隣接する隣接セルのデータ（隣接データ）に基づいて、さらに上記第１のグループを２つのグループに分ける。つまり、ＡＶＬレベル以上かつＡＶレベル未満の閾値電圧を持つ着目セルが、隣接データにＢ又はＣレベル（Ｂ／Ｃレベル）を含むか、隣接データにＢ又はＣレベルを含まないかどうかを調べる。
【００８１】
書き込み電圧が印加された後のベリファイ動作において、判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満の閾値電圧を持つ着目セルが、隣接データにＢ又はＣレベルを含む場合、この着目セルに関しては書き込み完了（書き込み禁止）とする。一方、判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満の閾値電圧を持つ着目セルが、隣接データにＢ又はＣレベルを含まない場合、この着目セルに関しては次の書き込み電圧の印加動作からビット線に中間電位を印加する。このような方法により書き込みが完了したＡレベルの閾値分布は、図７（ｂ）の実線のようになる。この後、Ｂ及びＣレベルのメモリセルが書き込まれていくため、判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満の閾値電圧を持つメモリセルは、容量結合の影響を受けて破線のような分布になる。結果的に、Ａレベルのメモリセルの閾値分布は、Ａレベルの書き込み完了時よりも細くなる。
【００８２】
次に、着目セルが判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満の閾値電圧を有し、かつ隣接データにＢ又はＣレベルを含むメモリセルであるか否かを判定するための制御方法について説明する。図８は、データラッチ回路ＤＬ０〜ＤＬ２のデータ割り付けを説明する図である。
【００８３】
データラッチ回路ＤＬ０は、２ビットの書き込みデータのうち下位ページデータを格納する。データラッチ回路ＤＬ１は、２ビットの書き込みデータのうち上位ページデータを格納する。データラッチ回路ＤＬ２は、ベリファイ電圧が低い方（Ａレベルの場合は判定電圧ＡＶＬに相当）のベリファイの結果としてのパス／フェイルデータを格納する。ベリファイパスの場合が“１”データ、ベリファイフェイルが“０”データとする。書き込みが完了したメモリセル（判定電圧ＡＶのベリファイがパスしたメモリセルを含む）では、データラッチ回路ＤＬ１〜ＤＬ２のデータは、“１１１”に設定される。
【００８４】
図９は、着目セル及び隣接セルに関するデータラッチ回路ＤＬ０〜ＤＬ２のデータの様子を示している。着目セルは、選択ワード線ＷＬｎに接続された選択ページに含まれる任意のメモリセルであり、かつＡレベルに書き込まれるメモリセルである。隣接セル１は、選択ワード線ＷＬｎに接続され、かつ着目セルの左側に隣接するメモリセルである。隣接セル２は、選択ワード線ＷＬｎに接続され、かつ着目セルの右側に隣接するメモリセルである。隣接セル１、着目セル、及び隣接セル２はそれぞれ、ビット線ＢＬｍ−１、ＢＬｍ、及びＢＬｍ＋１に接続されている。なお、図９の例では、着目セルが１つであるが、実際には隣接セル自身も着目セルとして扱う場合、偶数（even）セルと奇数（odd）セルとの２回に分けて演算を実行する。
【００８５】
まず、奇数（odd）セルの演算について説明する。奇数（odd）セルの演算は、下記の式のように行われる。なお、“odd”が着目セルのデータラッチ回路、“even1”が隣接セル１のデータラッチ回路、“even2”が隣接セル２のデータラッチ回路である。“〜”は反転を意味し、“｜”は論理和“ＯＲ”を意味し、“＆”は論理積“ＡＮＤ”を意味し、“→”はデータを格納する動作を意味する。  
(〜DL0(even1)｜〜DL0(even2))＆DL0(odd)＆〜DL1(odd)＆DL2(odd)｜DL1(odd)  →  DL1(odd)
具体的には、隣接セル（隣接セル１又は隣接セル２）の書き込みデータがＢ又はＣレベルであることを判定するには、隣接セルのデータラッチ回路ＤＬ０の反転データを使用する。隣接セル１及び隣接セル２のデータラッチ回路ＤＬ０の反転データの論理和が“１”である場合、隣接セル１及び隣接セル２の少なくとも一方がＢ又はＣレベルであることが分かる。
【００８６】
続いて、着目セルが、Ａレベルに書き込まれるメモリセルであり、かつベリファイの結果として判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満の閾値電圧を有することを判定するために、“ＤＬ０＆〜ＤＬ１＆ＤＬ２”という演算を着目セルに対して行う。前述の演算との論理積を取った結果が“１”である場合、着目セルが、Ａレベルに書き込まれるメモリセルであり、かつ判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満の閾値電圧を有し、かつ隣接セル１又は隣接セル２がＢ又はＣレベルであると判断できる。この時、着目セルのベリファイをパスとするため、着目セルのデータラッチ回路ＤＬ１との論理和を取った結果を、同じく着目セルのデータラッチ回路ＤＬ１に代入する。これにより、着目セルのデータラッチ回路ＤＬ０〜ＤＬ２が“１１１”となり、着目セルの書き込みが完了し、その後の書き込み動作では、着目セルは書き込み禁止に設定される。
【００８７】
続いて、奇数（odd）セルと同じ演算を偶数（even）セルに対して実行する。偶数（even）セルの演算は、下記の式のように行われる。  
(〜DL0(odd1)｜〜DL0(odd2))＆DL0(even)＆〜DL1(even)＆DL2(even)｜DL1(even)  →  DL1(even)
この演算により、次回の書き込みの準備が完了する。この後、データラッチ回路のデータに基づいて、書き込み動作（書き込み電圧の印加）が行われる。
【００８８】
上記演算の結果が“１”になる状態、すなわち“着目セルがＡレベル、かつ隣接セル１及び隣接セル２の少なくとも一方がＢ又はＣレベル”という条件を満たす状態は、着目セル、隣接セル１及び隣接セル２が以下のデータパターンとなる。なお、“（隣接セル１）−（着目セル）−（隣接セル２）”という表記で書き込みデータ（Ｅｒ、Ａ、Ｂ、Ｃ）を表している。  
（隣接セルにＣレベルを含むデータパターン）
“Ｃ−Ａ−Ｃ”、“Ｃ−Ａ−Ｂ”、“Ｃ−Ａ−Ａ”、“Ｃ−Ａ−Ｅｒ”、“Ｂ−Ａ−Ｃ”、“Ａ−Ａ−Ｃ”、“Ｅｒ−Ａ−Ｃ”の７つのデータパターン
（隣接セルにＢレベル以下を含むデータパターン）
“Ｂ−Ａ−Ｂ”、“Ｂ−Ａ−Ａ”、“Ｂ−Ａ−Ｅｒ”、“Ａ−Ａ−Ｂ”、“Ｅｒ−Ａ−Ｂ”の５つのデータパターン
上記のようなデータパターンの場合、かつ着目セルの判定電圧が判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満である場合に、着目セルは、書き込み完了とされる。
【００８９】
図１０は、本実施形態に係る書き込み動作を示すフローチャートである。なお、図１０は、着目セルにおける書き込み動作を示しており、よって、図１０の書き込み動作は、選択ページ内の全てのメモリセルに対して実行される。
【００９０】
まず、センスアンプ回路４が書き込みデータ及び前回のベリファイ結果に応じてビット線の電圧を設定した後、ワード線制御回路３は、Ａレベルを書き込むための書き込み電圧を選択ワード線に印加する（ステップＳ１００）。続いて、センスアンプ回路４及びワード線制御回路３は、判定電圧ＡＶＬ及びＡＶを用いたベリファイ動作を実行する（ステップＳ１０１）。
【００９１】
続いて、ステップＳ１０２において判定電圧ＡＶＬのベリファイがフェイルである場合、着目セルは書き込みが継続される（ステップＳ１０３）。すなわち、センスアンプ回路４は、着目セルに対してビット線の電圧を０Ｖとする書き込みを継続するようにデータラッチ回路のデータを設定する。
【００９２】
ステップＳ１０２において判定電圧ＡＶＬのベリファイがパスである場合、制御回路９は、着目セルの両側に隣接する隣接セル１及び隣接セル２のうち少なくとも一方の隣接データがＢ又はＣレベルであるか否かを判定する（ステップＳ１０４）。ステップＳ１０４において隣接データがＢ又はＣレベルである場合、着目セルは書き込み完了とされる（ステップＳ１０５）。すなわち、センスアンプ回路４は、着目セルに対して書き込み禁止となるようにデータラッチ回路のデータを設定する。
【００９３】
ステップＳ１０４において隣接データがＢ又はＣレベルでない場合、制御回路９は、ＡＶレベルのベリファイがパスしたか否かを判定する（ステップＳ１０６）。ステップＳ１０６においてＡＶレベルのベリファイがパスである場合、着目セルは書き込み完了とされる（ステップＳ１０５）。すなわち、センスアンプ回路４は、着目セルに対して書き込み禁止となるようにデータラッチ回路のデータを設定する。
【００９４】
ステップＳ１０６においてＡＶレベルのベリファイがフェイルである場合、隣接データがＢ又はＣレベルでないので、着目セルは書き込みが継続される（ステップＳ１０７）。すなわち、センスアンプ回路４は、着目セルに対してビット線の電圧を中間電圧とする書き込みを継続するようにデータラッチ回路のデータを設定する。
【００９５】
以上の制御を選択ページに含まれる全てのメモリセルに対して実行した後、今回の書き込みステージ（書き込み電圧の印加及びベリファイ）が終了する。その後、ステップアップ電圧を加えた書き込み電圧を用いて、次回の書き込みステージが実行される。
【００９６】
図１１は、Ａレベルの書き込みベリファイ後におけるメモリセルの閾値電圧とデータラッチ回路のデータとの関係を示す図である。本実施形態では、Ａレベルの書き込みベリファイ後、すなわち判定電圧ＡＶＬ及びＡＶのベリファイ動作後に、メモリセルの書き込み状態は４つのパターンに分類される。
【００９７】
第１のパターンとして、ＡＶＬレベル及びＡＶレベルの両方のベリファイがパスしていない、すなわちメモリセルの閾値電圧ＶｔｈがＡＶＬレベル未満である場合は、ビット線を０Ｖとする通常の書き込み動作が引き続き行われる。この時のデータラッチ回路ＤＬ０〜ＤＬ２のデータは、“１００”となる。
【００９８】
ＡＶＬレベルのベリファイがパスして、ＡＶレベルのベリファイがフェイル、すなわちメモリセルの閾値電圧ＶｔｈがＡＶＬレベル以上かつＡＶレベル未満である場合は、隣接セルのデータを調べた上で書き込み状態が決定される。具体的には、メモリセルの閾値電圧Ｖｔｈが判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満であり、かつ隣接セルの書き込みデータがＥｒ又はＡレベルである場合は、ビット線を中間電圧とする書き込み動作が引き続き行われる（第２のパターン）。この時のデータラッチ回路ＤＬ０〜ＤＬ２のデータは、“１０１”となる。一方、メモリセルの閾値電圧Ｖｔｈが判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満であり、かつ隣接セルの書き込みデータがＢ又はＣレベルである場合は、メモリセルは書き込み禁止にされる（第３のパターン）。この時のデータラッチ回路ＤＬ０〜ＤＬ２のデータは、“１１１”となる。
【００９９】
第４のパターンとして、判定電圧ＡＶＬ及び判定電圧ＡＶの両方のベリファイがパスした、すなわちメモリセルの閾値電圧ＶｔｈがＡＶレベル以上である場合は、メモリセルは書き込み禁止にされる。この時のデータラッチ回路ＤＬ０〜ＤＬ２のデータは、“１１１”となる。
【０１００】
［３．効果］
以上詳述したように第１の実施形態では、不揮発性半導体記憶装置１は、複数のワード線及び複数のビット線に接続され、ｎ値（ｎは３以上の自然数）を記憶可能な複数のメモリセルを有するメモリセルアレイ２と、書き込みデータに応じてワード線及びビット線の電圧を制御し、メモリセルにデータを書き込む書き込み動作と、上記メモリセルの閾値電圧を判定するベリファイ動作とを行う制御回路９とを具備する。制御回路９は、着目セルをＡレベルに書き込む場合に、判定電圧ＡＶＬ及びＡＶ（ＡＶＬ＜ＡＶ）を用いてベリファイ動作を行う。そして、制御回路９は、着目セルの閾値電圧がＡＶＬレベル以上かつＡＶレベル未満であり、かつ着目セルに隣接する隣接セルがＡレベルより高い閾値電圧（Ｂ又はＣレベル）に書き込まれる場合に、着目セルの書き込みを完了するようにしている。
【０１０１】
従って第１の実施形態によれば、隣接セルとの容量結合により着目セルの閾値電圧が書き込み完了直後の閾値電圧からシフトした場合でも、Ａレベルのメモリセルの閾値分布が広がるのを抑制することができる。これにより、メモリセルの閾値分布を狭くすることが可能となる。この結果、メモリセルのデータを正確に読み出すことが可能となるため、誤読み出しを低減可能な不揮発性半導体記憶装置１を実現できる。
【０１０２】
また、本実施形態では、隣接セル同士のデータパターンに応じて閾値変動を補償することができるため、メモリセルがより微細化された場合でも、メモリセルの閾値分布を狭くすることが可能となる。
【０１０３】
また、着目セルがＡレベルに書き込まれるメモリセルであり、かつ着目セルの閾値電圧が判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満であり、かつ着目セルに隣接する隣接セルがＡレベル以下の閾値電圧（Ｅｒ又はＡレベル）に書き込まれる場合に、制御回路９は、ビット線に接地電圧Ｖｓｓと電源電圧Ｖｄｄとの間の中間電圧を印加して書き込みを行うようにしている。これにより、当該着目セルの閾値電圧の上昇量を小さくすることができるため、メモリセルの閾値分布を狭くすることが可能となる。
【０１０４】
［第２の実施形態］
メモリセル（着目セル）の閾値電圧は、着目セルと隣接セルとの閾値電圧の差が大きくなるほど、そのシフト量が大きくなる。すなわち、着目セルがＡレベルに書き込まれ、かつ隣接セルがＣレベルである場合には、隣接セルがＢレベルである場合に比べて、着目セルの閾値電圧のシフト量が大きい。そこで、第２の実施形態は、着目セルの閾値電圧Ｖｔｈが判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満であり、かつ隣接セルがＣレベル（閾値電圧が最も高い状態）である場合に、着目セルの書き込みを完了するようにしている。
【０１０５】
図１２は、着目セル及び隣接セルに関するデータラッチ回路ＤＬ０〜ＤＬ２のデータの様子を示している。図１２の例では、着目セルが１つであるが、実際には隣接セル自身も着目セルとして扱う場合、偶数（even）セルと奇数（odd）セルとの２回に分けて演算を実行する。
【０１０６】
まず、奇数（odd）セルの演算について説明する。奇数（odd）セルの演算は、下記の式のように行われる。なお、“odd”が着目セルのデータラッチ回路、“even1”が隣接セル１のデータラッチ回路、“even2”が隣接セル２のデータラッチ回路である。  
(〜DL0(even1)＆DL1(even1)｜〜DL0(even2)＆DL1(even2))＆DL0(odd)＆〜DL1(odd)＆DL2(odd)｜DL1(odd)  →  DL1(odd)
具体的には、隣接セル（隣接セル１又は隣接セル２）の書き込みデータがＣレベルであることを判定するには、隣接セルのデータラッチ回路ＤＬ０及びＤＬ１のデータを使用する。隣接セル１のデータラッチ回路ＤＬ０の反転データと隣接セル１のデータラッチ回路ＤＬ１のデータとの論理積が“１”である場合、隣接セル１がＣレベルであることが分かる。隣接セル２についても同様であるため、隣接セル１の演算結果と隣接セル２の演算結果との論理和が“１”である場合、隣接セル１及び隣接セル２の少なくとも一方がＣレベルであることが分かる。
【０１０７】
続いて、着目セルが、Ａレベルに書き込まれるメモリセルであり、かつベリファイの結果として判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満の閾値電圧を有することを判定するために、“ＤＬ０＆〜ＤＬ１＆ＤＬ２”という演算を着目セルに対して行う。前述の演算との論理積を取った結果が“１”である場合、着目セルが、Ａレベルに書き込まれるメモリセルであり、かつ判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満の閾値電圧を有し、かつ隣接セル１又は隣接セル２がＣレベルであると判断できる。この時、着目セルのベリファイをパスとするため、着目セルのデータラッチ回路ＤＬ１との論理和を取った結果を、同じく着目セルのデータラッチ回路ＤＬ１に代入する。これにより、着目セルのデータラッチ回路ＤＬ０〜ＤＬ２が“１１１”となり、着目セルの書き込みが完了し、その後の書き込み動作では、着目セルは書き込み禁止に設定される。
【０１０８】
続いて、奇数（odd）セルと同じ演算を偶数（even）セルに対して実行する。偶数（even）セルの演算は、下記の式のように行われる。  
(〜DL0(odd1)＆DL1(odd1)｜〜DL0(odd2)＆DL1(odd2))＆DL0(even)＆〜DL1(even)＆DL2(even)｜DL1(even)  →  DL1(even)
この演算により、次回の書き込みの準備が完了する。この後、データラッチ回路のデータに基づいて、書き込み動作（書き込み電圧の印加）が行われる。
【０１０９】
上記演算の結果が“１”になる状態、すなわち“着目セルがＡレベル、かつ隣接セル１及び隣接セル２の少なくとも一方がＣレベル”という条件を満たす状態は、着目セル、隣接セル１及び隣接セル２が以下のデータパターンとなる。なお、“（隣接セル１）−（着目セル）−（隣接セル２）”という表記で書き込みデータ（Ｅｒ、Ａ、Ｂ、Ｃ）を表している。  
“Ｃ−Ａ−Ｃ”、“Ｃ−Ａ−Ｂ”、“Ｃ−Ａ−Ａ”、“Ｃ−Ａ−Ｅｒ”、“Ｂ−Ａ−Ｃ”、“Ａ−Ａ−Ｃ”、“Ｅｒ−Ａ−Ｃ”の７つのデータパターン
上記のようなデータパターンの場合、かつ着目セルの閾値電圧が判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満である場合に、着目セルは、書き込み完了とされる。
【０１１０】
図１３は、本実施形態に係る書き込み動作を示すフローチャートである。なお、図１３は、着目セルにおける書き込み動作を示しており、よって、図１３の書き込み動作は、選択ページ内の全てのメモリセルに対して実行される。
【０１１１】
本実施形態の書き込み動作では、ステップＳ２０２において判定電圧ＡＶＬのベリファイがパスである場合、制御回路９は、着目セルの両側に隣接する隣接セル１及び隣接セル２のうち少なくとも一方の隣接データＣレベルであるか否かを判定する（ステップＳ２０４）。そして、ステップＳ２０４において隣接データがＣレベルである場合、着目セルは書き込み完了とされる（ステップＳ２０５）。すなわち、センスアンプ回路４は、着目セルに対して書き込み禁止となるようにデータラッチ回路のデータを設定する。それ以外のステップは、第１の実施形態で説明した図１０のフローチャートと同じである。
【０１１２】
（効果）
以上詳述したように第２の実施形態によれば、メモリセル（着目セル）の閾値電圧Ｖｔｈが判定電圧ＡＶＬ以上かつ判定電圧ＡＶ未満であり、かつ隣接セルがＣレベル（閾値電圧が最も高い状態）である場合に、着目セルの書き込みを完了するように制御することができる。
【０１１３】
これにより、Ａレベルに書き込まれる着目セルに隣接する隣接セルがＣレベル（最も高い閾値電圧）に書き込まれる場合に、着目セルの閾値電圧のシフト量を低減することが可能となる。その他の効果は、第１の実施形態と同じである。
【０１１４】
なお、上記各実施形態では、１個のメモリセルが２ビットを記憶する場合の構成について示しているが、１個のメモリセルが３ビット以上を記憶する場合も同様に適用可能である。さらに、上記各実施形態では、着目セルがＡレベルに書き込まれる場合を説明しているが、着目セルがＡレベル以外の閾値電圧に書き込まれる場合にも同様に適用可能である。
【０１１５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１６】
１…不揮発性半導体記憶装置、２…メモリセルアレイ、３…ワード線制御回路、４…センスアンプ回路、４ａ…センスアンプユニット、４ｂ…データ制御ユニット、５…カラムデコーダ、６…入出力制御回路、７…データ入出力バッファ、８…アドレスデコーダ、９…制御回路、１０…制御電圧発生回路、１１…パラメータ記憶部。
【図１】
2013122799.tif 000003
【図２】
2013122799.tif 000004
【図３】
2013122799.tif 000005
【図４】
2013122799.tif 000006
【図５】
2013122799.tif 000007
【図６】
2013122799.tif 000008
【図７】
2013122799.tif 000009
【図８】
2013122799.tif 000010
【図９】
2013122799.tif 000011
【図１０】
2013122799.tif 000012
【図１１】
2013122799.tif 000013
【図１２】
2013122799.tif 000014
【図１３】
2013122799.tif 000015