(57)【特許請求の範囲】
【請求項１】
不揮発性記憶システムを動作させる方法であって、その不揮発性記憶システムは、一組のワードライン（ＷＬ０〜ＷＬ６３）及び一組のビットライン（ＢＬｉ−２〜ＢＬｉ＋２）に接続された一組の不揮発性記憶素子（４００）を含み、その方法は、
少なくとも一つの検知動作を実行する工程と、ここで、前記少なくとも一つの検知動作は、前記一組のワードライン内の選択された選択ワードライン（ＷＬｎ）に隣接する隣接ワードライン（ＷＬｎ−１）に対して行われ、前記隣接ワードライン上の不揮発性記憶素子（１３９０；１３９２，１３９８；１３９６；１３９４）をＭ≧２個のグループに区分し、前記記憶素子のＭ≧２個のグループは、前記一組のビットラインのＭ≧２個の対応するビットラインのグループ（ＢＬｉ−２；ＢＬｉ−１、ＢＬｉ＋２；ＢＬｉ＋１；ＢＬ）に接続され、前記Ｍ≧２個のビットラインのグループは、第１（ＢＬｉ−１、ＢＬｉ＋２）及び第２（ＢＬｉ＋１）のビットラインのグループを含み、
プログラムシーケンスの複数の反復を実行する工程と、ここで、少なくとも一つの反復は、
前記第１のビットラインのグループに接続された前記選択ワードライン上の不揮発性記憶素子（１３９２、１３９８）をプログラムのために選択し、前記第２のビットラインのグループに接続された選択ワードライン上の不揮発性記憶素子（１３９６）のプログラムを禁止し、かつ隣接ワードライン（ＷＬｎ−１）に第１のパス電圧（Ｖｐａｓｓ１〜Ｖｐａｓｓ４）を印加しながらの、選択ワードラインへの第１のプログラムパルス（１３０２）の印加と、
前記第２のビットラインのグループに接続された前記選択ワードライン上の不揮発性記憶素子（１３９６）をプログラムのために選択し、前記第１のビットラインのグループに接続された選択ワードライン上の不揮発性記憶素子（１３９２、１３９８）のプログラムを禁止し、かつ隣接ワードライン（ＷＬｎ−１）に第２のパス電圧（Ｖｐａｓｓ１〜Ｖｐａｓｓ４）を印加しながらの、選択ワードラインへの第２のプログラムパルス（１３０４）の印加とを含む、
を備える方法。
【請求項２】
前記少なくとも一つの反復の前記第１のプログラムパルスと前記第２のプログラムパルスとの間では、前記選択ワードライン上の不揮発性記憶素子に対する検証動作が実行されず、
前記第２のプログラムパルスの後に、前記選択ワードライン上の不揮発性記憶素子に対する検証動作（１３０９、１３１９、１３２９、１３３９）を実行し、その後、前記プログラムシーケンスの次の反復を実行する工程と、
をさらに備える請求項１に記載の方法。
【請求項３】
前記隣接ワードライン上の前記不揮発性記憶素子は、少なくともＭ＋１種類のデータ状態（Ｅ、Ａ、Ｂ、Ｃ）によってデータを記憶し、
前記少なくとも一つの検知動作は、前記隣接ワードライン上の不揮発性記憶素子をＭ≧２個だけのグループ（Ｅ、Ａ；Ｂ、Ｃ）に区分する、
請求項１又は２に記載の方法。
【請求項４】
前記隣接ワードラインが、前記選択ワードラインのソース側にある請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記少なくとも一つの検知動作は、前記隣接ワードライン上の不揮発性記憶素子の閾値電圧に応じて、前記隣接ワードライン上の不揮発性記憶素子を前記Ｍ≧２個のグループに区分し、
前記第１のビットラインのグループに接続された前記隣接ワードライン上の不揮発性記憶素子は、前記第２のビットラインのグループに接続された前記隣接ワードライン上の不揮発性記憶素子よりも低い閾値電圧を有し、
前記第１のパス電圧（Ｖｐａｓｓ１）は、前記第２のパス電圧（Ｖｐａｓｓ２）よりも低い、
請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記少なくとも一つの検知動作は、前記隣接ワードライン上の不揮発性記憶素子の閾値電圧に応じて、前記隣接ワードライン上の不揮発性記憶素子を前記Ｍ≧２個のグループに区分し、
前記第１のビットラインのグループに接続された前記隣接ワードライン上の不揮発性記憶素子は、前記第２のビットラインのグループに接続された前記隣接ワードライン上の不揮発性記憶素子よりも高い閾値電圧を有し、
前記第１のパス電圧（Ｖｐａｓｓ２）は、前記第２のパス電圧（Ｖｐａｓｓ１）よりも高い、
請求項１から４のどれか一つに記載の方法。
【請求項７】
前記プログラムシーケンスの複数の反復のなかで前記少なくとも一つの反復よりも先に行われる少なくとも一つの事前の反復（１７１０）では、前記第１及び第２のビットラインのグループのいずれかに接続された前記選択ワードライン上の不揮発性記憶素子をプログラムのために同時に選択しつつ、前記選択ワードラインにプログラムパルス（１７０２、１７０６、１７１０）を印加する、
請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記プログラムシーケンスの複数の反復のなかで前記少なくとも一つの反復よりも先に行われる事前の反復では、前記選択ワードライン上の少なくとも一つの不揮発性記憶素子を、一つのターゲットデータ状態（Ｂ）にプログラムし、
前記少なくとも一つの反復は、前記選択ワードライン上の他の少なくとも一つの不揮発性記憶素子を、前記一つのターゲットデータ状態よりも高い他のターゲットデータ状態（Ｃ）にプログラムする、
請求項１から７のいずれか一項に記載の方法。
【請求項９】
少なくとも第１（２１０１）及び第２（２１０２）のラッチが前記一組のビットラインのなかの一つのビットラインに接続され、
前記事前の反復では、第１の検証レベル（ＶｖａＬ、ＶｖｂＬ）、次いで前記第１の検証レベルよりも高い第２の検証レベル（ＶｖａＨ、ＶｖｂＨ）を使用して、前記少なくとも一つの不揮発性記憶素子をプログラムし、
前記第１のラッチは、前記少なくとも一つの不揮発性記憶素子が前記第１の検証レベルまでプログラムされているのか否かを示すビットを記憶し、
前記第２のラッチは、前記少なくとも一つの不揮発性記憶素子が前記第２の検証レベルまでプログラムされているのか否かを示すビットを記憶し、
前記少なくとも一つの検知動作は、前記プログラムシーケンスの途中で、前記事前の反復の後に実行され、
前記少なくとも一つの検知動作では、前記一つのビットラインに接続された前記隣接ワードライン上の不揮発性記憶素子を検知し、前記不揮発性記憶素子のＭ≧２個のグループのなかで当該隣接ワードライン上の不揮発性記憶素子が属するグループを少なくとも部分的に識別するためのビットを、前記第１のラッチ（２１０１）に上書きして記憶する、
請求項８に記載の方法。
【請求項１０】
前記少なくとも一つの検知動作は、前記プログラムシーケンスの途中で、前記事前の反復（１７１０）の後、かつ、前記選択ワードライン上の前記少なくとも一つの不揮発性記憶素子が、前記一つのターゲットデータ状態にプログラムされたと判断されたときに、実行される、
請求項９に記載の方法。
【請求項１１】
一組の不揮発性記憶素子（４００）と、
選択された選択ワードライン（ＷＬｎ）及び前記選択ワードラインに隣接する隣接ワードライン（ＷＬｎ−１）を含む、前記一組の不揮発性記憶素子に接続された一組のワードライン（ＷＬ０からＷＬ６３）と、
前記一組の不揮発性記憶素子に接続された一組のビットライン（ＢＬｉ−２からＢＬｉ＋２）と、
前記一組のワードライン及び前記一組のビットラインに接続された少なくとも一つの制御回路（５１０、５５０）とを備え、
前記少なくとも一つの制御回路は、
（ａ）前記隣接ワードラインに対する少なくとも一つの検知動作と、ここで、前記少なくとも一つの検知動作は、前記隣接ワードライン上の不揮発性記憶素子（１３９０；１３９２，１３９８；１３９６；１３９４）をＭ≧２個のグループに区分し、前記Ｍ≧２個の不揮発性記憶素子のグループは、少なくとも第１（ＢＬｉ―１、ＢＬｉ＋２）及び第２（ＢＬｉ＋１）のビットラインのグループを含む、前記一組のビットラインのＭ≧２個の対応するビットラインのグループ（ＢＬｉ−２；ＢＬｉ−１、ＢＬｉ＋２；ＢＬ＋１；ＢＬ）に接続され、
（ｂ）プログラムシーケンスの複数の反復と、ここで、少なくとも一つの反復において前記少なくとも一つの制御回路は、（ｉ）前記第１のビットラインのグループに接続された前記選択ワードライン上の不揮発性記憶素子（１３９２、１３９８）をプログラムのために選択し、前記第２のビットラインのグループに接続された選択ワードライン上の不揮発性記憶素子（１３９６）のプログラムを禁止し、隣接ワードライン（ＷＬｎ−１）に第１のパス電圧（Ｖｐａｓｓ１〜Ｖｐａｓｓ４）を印加し、かつ選択ワードラインに第１のプログラムパルス（１３０２）を印加し、（ｉｉ）前記第２のビットラインのグループに接続された前記選択ワードライン上の不揮発性記憶素子（１３９６）をプログラムのために選択し、前記第１のビットラインのグループに接続された選択ワードライン上の不揮発性記憶素子（１３９２、１３９８）のプログラムを禁止し、隣接ワードライン（ＷＬｎ−１）に第２のパス電圧（Ｖｐａｓｓ１〜Ｖｐａｓｓ４）を印加し、かつ選択ワードラインに第２のプログラムパルス（１３０４）を印加する、
を実行する、不揮発性記憶システム。
【請求項１２】
前記少なくとも一つの反復の前記第１のプログラムパルスと前記第２のプログラムパルスとの間では、前記選択ワードライン上の不揮発性記憶素子に対する検証動作が実行されない請求項１１に記載の不揮発性記憶システム。
【請求項１３】
前記隣接ワードライン上の前記不揮発性記憶素子は、少なくともＭ＋１種類のデータ状態（Ｅ、Ａ、Ｂ、Ｃ）によってデータを記憶し、
前記少なくとも一つの検知動作は、前記隣接ワードライン上の不揮発性記憶素子をＭ≧２個だけのグループ（Ｅ、Ａ；Ｂ、Ｃ）に区分する、
請求項１１又は１２に記載の不揮発性記憶システム。
【請求項１４】
前記少なくとも一つの検知動作は、前記隣接ワードライン上の不揮発性記憶素子の閾値電圧に応じて、前記隣接ワードライン上の不揮発性記憶素子を前記Ｍ≧２個のグループに区分し、
前記第１のビットラインのグループに接続された前記隣接ワードライン上の不揮発性記憶素子が、前記第２のビットラインのグループに接続された前記隣接ワードライン上の不揮発性記憶素子よりも低い閾値電圧を有するときは、前記第１のパス電圧（Ｖｐａｓｓ１）が前記第２のパス電圧（Ｖｐａｓｓ２）よりも低くし、
前記第１のビットラインのグループに接続された前記隣接ワードライン上の不揮発性記憶素子が、前記第２のビットラインのグループに接続された前記隣接ワードライン上の不揮発性記憶素子よりも高い閾値電圧を有するときは、前記第１のパス電圧（Ｖｐａｓｓ２）が前記第２のパス電圧（Ｖｐａｓｓ１）よりも高くする、
請求項１１から１３のいずれか一項に記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、不揮発性メモリに関する。
【背景技術】
【０００２】
半導体メモリは、様々な電子装置に使用されることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ及び他の装置の中に使用されている。電気的消去・プログラム可能型読取専用メモリ（ＥＥＰＲＯＭ）と、フラッシュメモリは、最も普及している不揮発性半導体メモリの一つである。ＥＥＰＲＯＭの一種であるフラッシュメモリを用いると、従来のフル機能を備えたＥＥＰＲＯＭとは対照的に、メモリアレイ全体のコンテンツ、又はメモリの一部のコンテンツを一つのステップで消去できる。
【０００３】
従来のＥＥＰＲＯＭとフラッシュメモリの何れもが、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されたフローティングゲートを利用している。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。制御ゲートは、フローティングゲート上に配置されており、そのフローティングゲートから絶縁されている。このように形成されたトランジスタの閾値電圧（Ｖｔｈ）は、フローティングゲート上に保持される電荷量によって制御される。つまり、そのソースとドレインの間の導通を可能にするためにトランジスタをオンにする前に制御ゲートに印加しなければならない電圧の最小量は、そのフローティングゲート上の電荷レベルにより制御される。
【０００４】
いくつかのＥＥＰＲＯＭ及びフラッシュメモリ素子は２つの範囲の電荷を記憶するために使用される記憶素子その他のフローティングゲートを含むセルを有するため、記憶素子は２つの状態、たとえば消去状態とプログラム状態の間でプログラム／消去できる。各記憶素子は１ビットのデータを記憶できるため、このようなフラッシュメモリ素子はバイナリフラッシュメモリ素子と呼ばれることもある。
【０００５】
マルチ状態（マルチレベルとも呼ばれる）フラッシュメモリ素子が、複数の別個の許可／有効プログラム閾値電圧範囲を識別することによって実現される。各閾値電圧範囲は、記憶素子内で符号化される一組のデータビットの所定値に相当する。例えば、各メモリエレメントは、そのエレメントを４つの別々の閾値電圧範囲に相当する４つの別々の電荷バンドの内の一つに置くことができ、２ビットのデータを記憶できる。
【０００６】
通常、プログラム動作中に制御ゲートに印加されるプログラム電圧Ｖｐｇｍは、経時的に大きさが大きくなる一連のパルスとして印加される。プログラム電圧は、選択されたワードラインに印加され得る。一つの考えられる手法では、パルスの大きさは、例えば０．２から０．４Ｖ等の所定のステップサイズでそれぞれの連続パルスで大きくなる。Ｖｐｇｍは、フラッシュメモリエレメントの制御ゲートに印加され得る。プログラムパルス間の期間では、検証動作が実施される。すなわち、並行してプログラムされているエレメントのグループの内の各エレメントのプログラムレベルは、エレメントがプログラムされている検証レベル以上であるか否かを判断するために、連続プログラムパルスの間に読み出される。マルチ状態フラッシュメモリエレメントのアレイの場合、検証ステップは、エレメントがそのデータ関連検証レベルに達したのかどうかを判断するために、エレメントの状態ごとに実行され得る。例えば、４つの状態にデータを記憶できるマルチ状態メモリエレメントは、３つの比較点について検証動作を実行する必要がある場合がある。
【０００７】
さらに、ＥＥＰＲＯＭ又はＮＡＮＤストリング内のＮＡＮＤフラッシュメモリ素子等のフラッシュメモリ素子をプログラムするときには、通常、Ｖｐｇｍが制御ゲートに印加され、ビットラインが接地され、記憶素子のチャネルからフローティングゲートの中に電子が注入される。電子がフローティングゲート内に蓄積すると、フローティングゲートは負に帯電され、メモリエレメントの閾値電圧は上昇し、プログラムされた状態にあると見なされる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、困難であり続ける一つの問題は、プログラム外乱である。プログラム外乱は、他の選択されたＮＡＮＤストリングのプログラム中に、禁止されている選択されていないＮＡＮＤストリングで発生することがある。プログラム外乱は、非選択の不揮発性記憶素子の閾値電圧が、他の不揮発性記憶素子のプログラムのためにシフトされると発生する。プログラム外乱は、まだプログラムされていない消去された記憶素子だけではなく、以前にプログラムされた記憶素子でも発生することがある。
【課題を解決するための手段】
【０００９】
非選択ワードラインへのパス電圧を最適に設定することにより、プログラム外乱及びプログラムと消去のサイクルによる劣化を低減する方法及び不揮発性記憶装置を提供する。
【００１０】
選択ワードラインＷＬｎ上の複数の記憶素子を、それらに隣接する記憶素子ＷＬｎ−１の状態に応じて、グループごとにプログラムする。さらに、それぞれのグループに応じて、隣接する記憶素子ＷＬｎ−１には、最適なパス電圧を印加する。一つのグループには、一又は複数のデータ状態の記憶素子を含めることができる。
【図面の簡単な説明】
【００１１】
【図１ａ】ＮＡＮＤストリングの平面図。
【００１２】
【図１ｂ】ＮＡＮＤストリングの等価回路図。
【００１３】
【図２】ＮＡＮＤストリングの断面図。
【００１４】
【図３】３つのＮＡＮＤストリングを示す回路図。
【００１５】
【図４】ＮＡＮＤフラッシュ記憶素子のアレイのブロック図。
【００１６】
【図５】単一行／列デコーダ及び読み出し／書き込み回路を使用する不揮発性メモリシステムのブロック図。
【００１７】
【図６】検出ブロックの一実施形態を示すブロック図。
【００１８】
【図７】全ビットラインメモリアーキテクチャ用、又は奇数−偶数メモリアーキテクチャ用のメモリアレイのブロックへの編成の例を示す図。
【００１９】
【図８】閾値電圧分布及びワンパスプログラムの例を示す図。
【００２０】
【図９】閾値電圧分布及びツーパスプログラムの例を示す図。
【００２１】
【図１０ａ】種々の閾値電圧分布を示し、不揮発性メモリをプログラムするためのプロセスを説明する図。
【図１０ｂ】種々の閾値電圧分布を示し、不揮発性メモリをプログラムするためのプロセスを説明する図。
【図１０ｃ】種々の閾値電圧分布を示し、不揮発性メモリをプログラムするためのプロセスを説明する図。
【００２２】
【図１１】一組の記憶素子のためのマルチパスプログラム動作を示す図。
【００２３】
【図１２ａ】制御ゲートから、相対的に低状態にある隣接する記憶素子のフローティングゲートへのプログラム電圧の結合を示すＮＡＮＤストリングの断面図。
【００２４】
【図１２ｂ】比較的に高状態にある隣接する記憶素子のフローティングゲートから、プログラム電圧を受け取る制御ゲートへの電子放射を示すＮＡＮＤストリングの断面図。
【００２５】
【図１３ａ】マルチパルスプログラム技術の第１の実施形態において、プログラム動作中に選択されたワードラインに印加されるパルス列を示す図。
【００２６】
【図１３ｂ】図１３ａのプログラム動作中に隣接する非選択のワードラインに印加されるパルス列を示す図。
【００２７】
【図１３ｃ】一組の記憶素子に適用された、マルチパルスプログラム技術の第１の実施形態の適用例を示す図。
【００２８】
【図１４ａ】マルチパルスプログラム技術の第２の実施形態において、プログラム動作中に選択されたワードラインに印加されるパルス列を示す図。
【００２９】
【図１４ｂ】図１４ａのプログラム動作の間に隣接する非選択のワードラインに印加されるパルス列を示す図。
【００３０】
【図１４ｃ】一組の記憶素子に適用された、マルチパルスプログラム技術の第２の実施形態の適用例を示す図。
【００３１】
【図１５】図１３ａから図１４ｃに対応するプログラム技術を示す図。
【００３２】
【図１６ａ】図１３ａに対応するさまざまなプログラムパルスの大きさを示す図。
【００３３】
【図１６ｂ】図１４ａに対応するさまざまなプログラムパルスの大きさを示す図。
【００３４】
【図１６ｃ】マルチパルスプログラム技術の第３の実施形態においてプログラム動作中に選択されたワードラインに印加されるパルス列を示す図。
【００３５】
【図１７ａ】マルチパルスプログラム技術の第４の実施形態において、プログラム動作中に選択されたワードラインに印加されるパルス列を示す図。
【００３６】
【図１７ｂ】図１７ａに対応するさまざまなプログラムパルスの大きさを示す図。
【００３７】
【図１７ｃ】図１７ａに対応するプログラム技術を示す図。
【００３８】
【図１７ｄ】図１７ａに対応する代替プログラム技術を示す図。
【００３９】
【図１８ａ】マルチパルスプログラム技術の第５の実施形態において、プログラム動作中に選択されたワードラインに印加されるパルス列を示す図。
【００４０】
【図１８ｂ】図１８ａのプログラム動作中に隣接する非選択のワードラインに印加されるパルス列を示す図。
【００４１】
【図１８ｃ】一組の記憶素子に適用された、マルチパルスプログラム技術の第５の実施形態の適用例を示す図。
【００４２】
【図１９】図１８ａに対応するプログラム技術を示す図。
【００４３】
【図２０ａ】マルチパルスプログラム技術の第６の実施形態において、プログラム動作中に選択されたワードラインに印加されるパルス列を示す図。
【００４４】
【図２０ｂ】図２０ａに対応するプログラム技術を示す図。
【００４５】
【図２１ａ】マルチパルスプログラム技術の第７の実施形態の間のそれぞれのビットラインのためのデータラッチの使用を示す図。
【００４６】
【図２１ｂ】図２１ａに対応するプログラム技術を示す図。
【発明を実施するための形態】
【００４７】
本発明の実施に適したメモリシステムの一例は、ＮＡＮＤフラッシュメモリ構造を用いる。そのＮＡＮＤフラッシュメモリ構造は２つの選択ゲートの間に直列に接続された複数のトランジスタを有している。直列に配置されたトランジスタと選択ゲートは、ＮＡＮＤストリングと呼ばれる。図１ａは、一つのＮＡＮＤストリングを示す平面図である。図１ｂはその等価回路である。図示されたＮＡＮＤストリングは、直列に接続されており、第１の選択ゲート１２０と第２の選択ゲート１２２の間に挟まれている４つのトランジスタ１００、１０２、１０４、及び１０６を有する。選択ゲート１２０は、ＮＡＮＤストリングをビットライン１２６に接続する。選択ゲート１２２は、ＮＡＮＤストリングをソースライン１２８に接続する。選択ゲート１２０は、制御ゲート１２０ＣＧに適切な電圧が印加されることによって制御される。選択ゲート１２２は、制御ゲート１２２ＣＧに適切な電圧が印加されることによって制御される。トランジスタ１００、１０２、１０４及び１０６のそれぞれは制御ゲート及びフローティングゲートを有する。トランジスタ１００は、制御ゲート１００ＣＧ及びフローティングゲート１００ＦＧを有する。トランジスタ１０２は制御ゲート１０２ＣＧ及びフローティングゲート１０２ＦＧを有する。トランジスタ１０４は、制御ゲート１０４ＣＧ及びフローティングゲート１０４ＦＧを有する。トランジスタ１０６は、制御ゲート１０６ＣＧおよびフローティングゲート１０６ＦＧを有する。制御ゲート１００ＣＧは、ワードラインＷＬ３に接続されており、制御ゲート１０２ＣＧはワードラインＷＬ２に接続されており、制御ゲート１０４ＣＧはワードラインＷＬ１に接続されており、制御ゲート１０６ＣＧはワードラインＷＬ０に接続されている。一実施形態では、トランジスタ１００、１０２、１０４及び１０６は、それぞれ、メモリセルである。他の実施形態では、メモリセルは、複数のトランジスタを有していることもある。あるいは、図示されているのとは異なることもある。選択ゲート１２０は、選択ラインＳＧＤに接続されている。選択ゲート１２２は、選択ラインＳＧＳに接続されている。
【００４８】
図２は、前述されたＮＡＮＤストリングの断面図を示す。ＮＡＮＤストリングのトランジスタはｐ−ウェル領域１４０に形成されている。ｐ−ウェル領域は、代わりにｐ−タイプ基板１４４のｎ−ウェル領域１４２内にあってよい。各トランジスタは、制御ゲート（１００ＣＧ、１０２ＣＧ、１０４ＣＧ、及び１０６ＣＧ）とフローティングゲート（１００ＦＧ、１０２ＦＧ、１０４ＦＧ、及び１０６ＦＧ）から構成される積層ゲート構造を有している。フローティングゲートは、ｐ−ウェルの表面に、酸化膜又は他の誘電体膜の上に形成される。制御ゲートはフローティングゲートの上にあり、ポリシリコン間の誘電体層が制御ゲート及びフローティングゲートを分離している。メモリセル（１００、１０２、１０４及び１０６）の制御ゲートは、ワードラインを構成している。Ｎ＋ドープ層１３０、１３２、１３４、１３６、及び１３８が、隣接するセルの間で共有され、これによってセルが互いに直列に接続されており、ＮＡＮＤストリングを形成している。これらのＮ＋ドープ層は、各セルのソース及びドレインを構成している。例えば、Ｎ＋ドープ層１３０はトランジスタ１２２のドレイン及びトランジスタ１０６のソースとしての機能を果たし、Ｎ＋ドープ層１３２はトランジスタ１０６のドレイン及びトランジスタ１０４のソースとしての機能を果たし、Ｎ＋ドープ層１３４はトランジスタ１０４のドレイン及びトランジスタ１０２のソースとしての機能を果たし、Ｎ＋ドープ層１３６はトランジスタ１０２のドレイン及びトランジスタ１００のソースとしての機能を果たし、Ｎ＋ドープ層１３８はトランジスタ１００のドレイン及びトランジスタ１２０のソースとしての機能を果たす。Ｎ＋ドープ層１２６は、ＮＡＮＤストリングのためのビットラインに接続する。一方、Ｎ＋ドープ層１２８は複数のＮＡＮＤストリングのための一つの共通ソースラインに接続する。
【００４９】
図１ａ、１ｂおよび図２はＮＡＮＤストリング内の４個のメモリセルを示しているが、本明細書に説明される技術とともに使用されるＮＡＮＤストリングは、４個未満のメモリセル又は４個以上のメモリセルを有することができることに留意されたい。たとえば、いくつかのＮＡＮＤストリングは、８個、１６個、３２個又はそれ以上のメモリセルを含む。
【００５０】
各メモリセルは、アナログ形式又はデジタル形式で表されるデータを記憶できる。１ビットのデジタルデータを記憶するとき、メモリセルの閾値電圧の範囲は、論理データ「１」及び「０」が割り当てられる２つの範囲に分割される。ＮＡＮＤタイプのフラッシュメモリの一例では、電圧閾値は、メモリセルが消去された後に負となり、論理「１」として定義される。プログラム動作後に閾値電圧は正となり、論理「０」として定義される。閾値電圧が負であり、制御ゲートに０ボルトを印加することにより読み出しが試行されると、メモリセルがオンして論理１が記憶されていることが示される。閾値電圧が正であり、制御ゲートに０ボルトを印加することにより読み出し動作が試行されると、メモリセルはオンせず、論理ゼロが記憶されることが示される。
【００５１】
メモリセルは、複数の状態を記憶し、それによって複数ビットのデジタルデータを記憶することもできる。データの複数の状態を記憶するケースでは、閾値電圧の範囲は状態の数に分割される。例えば、４つの状態が使用される場合、データ値「１１」、「１０」、「０１」、及び「００」に割り当てられる４つの閾値範囲がある。ＮＡＮＤタイプメモリの一例では、消去動作後の閾値電圧は負であり、「１１」として定義される。正の閾値電圧は「１０」、「０１」、及び「００」の状態のために使用される。いくつかの実施形態では、フローティングゲートの閾値電圧が誤って隣の物理状態にシフトしても、１ビットだけが影響を受けるように、データ値（例えば、論理状態）は、グレーコード割り当てを使用して閾値範囲に割り当てられる。メモリセルにプログラムされたデータと、セルの閾値電圧範囲の間の特殊な関係は、メモリセルのために採用されるデータ符号化方式に依存する。
【００５２】
ＮＡＮＤフラッシュメモリに加えて、他のタイプの不揮発性メモリも使用できる。
【００５３】
フラッシュＥＥＰＲＯＭシステムで役立つ別のタイプのメモリセルは、不揮発的に電荷を蓄えるために、導電性のフローティングゲートの代わりに非導電性の誘電材料を用いる。酸化ケイ素、窒化ケイ素、及び酸化ケイ素（「ＯＮＯ」）から形成される三層誘電体が、導電性の制御ゲートと、メモリセルチャネル上の半導体基板の表面の間に挟まれる。セルは、セルチャネルから窒化物に電子を注入することによってプログラムされ、電子は限られた領域内に閉じ込められ、蓄えられる。次に、この蓄えられた電荷が、検出可能な態様で、セルのチャネルの一部の閾値電圧を変化させる。セルは、窒化物の中にホットホールを注入することによって消去される。ドープされたポリシリコンゲートがメモリセルチャネルの一部の上に延在していることで別個の選択トランジスタが形成されている分割ゲート構造の類似するセルが提供される。
【００５４】
別の手法では、ＯＮＯ誘電体層がソース拡散とドレイン拡散の間のチャネルを横切って延在する各ＮＲＯＭセルに２ビットが記憶される。１データビットの電荷は、ドレインに隣接する誘電体層に局所化され、他のデータビットの電荷はソースに隣接する誘電体層に局所化される。マルチ状態データ記憶は、誘電体内の空間的に分離された電荷蓄積領域のバイナリ状態を別々に読み出すことによって実現される。
【００５５】
図３は、３つのＮＡＮＤストリングを示す回路図である。ＮＡＮＤ構造を使用するフラッシュメモリシステムの典型的なアーキテクチャは、数個のＮＡＮＤストリングを含む。例えば、３つのＮＡＮＤストリング３２０、３４０及び３６０は、さらに多くのＮＡＮＤストリングを有するメモリアレイ内で見ることができる。ＮＡＮＤストリングのそれぞれが２個の選択ゲートと４個の記憶素子を含む。図面を簡素化するために４個の記憶素子が示されているが、最新のＮＡＮＤストリングは、例えば、３２個又は６４個の記憶素子を有することもある。
【００５６】
例えば、ＮＡＮＤストリング３２０は、選択ゲート３２２及び３２７並びに記憶素子３２３から３２６を含み、ＮＡＮＤストリング３４０は、選択ゲート３４２及び３４７並びに記憶素子３４３から３４６を含み、ＮＡＮＤストリング３６０は、選択ゲート３６２及び３６７並びに記憶素子３６３から３６６を含む。各ＮＡＮＤストリングは、その選択ゲート（例えば、選択ゲート３２７、３４７又は３６７）によってソースラインに接続される。ソース側選択ゲートの制御には、選択ラインＳＧＳが使用される。多様なＮＡＮＤストリング３２０、３４０及び３６０は、各選択ゲート３２２、３４２、３６２内の選択トランジスタによって、各ビットライン３２１、３４１及び３６１に接続される。これらの選択トランジスタは、ドレイン選択ラインＳＧＤによって制御される。他の実施形態では、選択ラインは、必ずしもＮＡＮＤストリングの間で共通である必要はない。つまり、異なる選択ラインを、異なるＮＡＮＤストリングのために設けることもできる。ワードラインＷＬ３は、記憶素子３２３、３４３及び３６３の制御ゲートに接続される。ワードラインＷＬ２は、記憶素子３２４、３４４及び３６４の制御ゲートに接続される。ワードラインＷＬ１は、記憶素子３２５、３４５及び３６５の制御ゲートに接続される。ワードラインＷＬ０は、記憶素子３２６、３４６及び３６６の制御ゲートに接続される。図から分かるように、各ビットライン及びそれぞれのＮＡＮＤストリングは、記憶素子のアレイ又は一組の列を含む。ワードライン（ＷＬ３、ＷＬ２、ＷＬ１及びＷＬ０）は、アレイ又は一組の行を含む。各ワードラインは、行内の各記憶素子の制御ゲートに接続されている。あるいは、制御ゲートは、ワードライン自体によって構成されてもよい。例えば、ワードラインＷＬ２は、記憶素子３２４、３４４及び３６４の制御ゲートを構成することができる。実際には、１本のワードライン上に数千の記憶素子がある場合がある。
【００５７】
各記憶素子はデータを記憶することができる。例えば、１ビットのデジタルデータを記憶するとき、記憶素子の閾値電圧（Ｖｔｈ）の範囲は、論理データ「１」および「０」を割り当てられる２つの範囲に分割される。ＮＡＮＤタイプのフラッシュメモリの一例では、Ｖｔｈは、記憶素子が消去された後に負となり、論理「１」として定義される。プログラム動作後のＶｔｈは、正となり、論理「０」として定義される。Ｖｔｈが負であるときに読み出しが試行されると、記憶素子はオンして論理「１」が記憶されていることが示される。Ｖｔｈが正であるときに読み出しが試行されると、記憶素子はオンせず、論理「０」が記憶されていることが示される。記憶素子は、例えば複数ビットのデジタルデータ等、複数のレベルの情報を記憶することもできる。この場合、Ｖｔｈの値の範囲はデータのレベルの数に分けられる。例えば、４レベルの情報が記憶される場合、データ値「１１」、「１０」、「０１」、及び「００」に割り当てられる４つのＶｔｈの範囲がある。ＮＡＮＤタイプメモリの一例では、消去動作後のＶｔｈは負となり、「１１」と定義される。正のＶｔｈは、「１０」、「０１」、及び「００」の状態のために使用される。記憶素子にプログラムされるデータと、素子の閾値電圧範囲の間の特定の関係は、記憶素子のために採用されるデータ符号化方式に依存する。
【００５８】
フラッシュ記憶素子をプログラムするときは、記憶素子の制御ゲートにプログラム電圧を印加され、その記憶素子に接続されたビットラインを接地する。それにより、チャネルからの電子がフローティングゲートに注入される。フローティングゲート内に電子が蓄積すると、フローティングゲートは負に帯電し、記憶素子のＶｔｈが上昇する。プログラムする記憶素子の制御ゲートにプログラム電圧を印加するためには、適切なワードラインにプログラム電圧を印加する。前述したように、それぞれのＮＡＮＤストリングにおける一つの記憶素子が、同じワードラインを共有する。例えば図３の記憶素子３２４をプログラムする場合、プログラム電圧が、記憶素子３４４及び３６４の制御ゲートにも印加される。
【００５９】
しかしながら、他のＮＡＮＤストリングのプログラム中に、禁止されたＮＡＮＤストリングでは、ときにはプログラムされるそのＮＡＮＤストリング自体でも、プログラム外乱が発生し得る。プログラム外乱は、他の不揮発性記憶素子のプログラムに起因して、非選択の不揮発性記憶素子の閾値電圧が変化することによって起きる。プログラム外乱は、プログラムされていない消去状態の記憶素子だけではなく、以前にプログラムされた記憶素子でも発生し得る。プログラム外乱の多様なメカニズムにより、ＮＡＮＤフラッシュメモリといった不揮発性記憶素子の使用可能な動作範囲が制限され得る。
【００６０】
例えば、ＮＡＮＤストリング３２０が禁止され（即ち、現在プログラムされる記憶素子を含まない非選択のＮＡＮＤストリングであり）、ＮＡＮＤストリング３４０がプログラムされている（即ち、現在プログラムされる記憶素子を含む選択されたＮＡＮＤストリングである）場合、プログラム外乱がＮＡＮＤストリング３２０で発生することがある。例えばパス電圧Ｖｐａｓｓが低いような場合は、禁止されたＮＡＮＤストリングのチャネルが十分にブーストされず、非選択のＮＡＮＤストリングの選択されたワードラインが意図せずプログラムされることがある。別の考えられる状況では、ブーストされていた電圧が、ゲート誘導ドレインリーク（ＧＩＤＬ）又は他のリーク現象によって引き下げられ、同じ問題を起こすことがある。後にプログラムされる他の隣接記憶素子との容量結合による電荷記憶素子のＶｔｈの変化といった他の影響も、プログラム外乱の要因となり得る。
【００６１】
図４は、図１ａと１ｂに示すようなＮＡＮＤ記憶素子のアレイ４００の例を示す。各列に沿って、ビットライン４０６が、ＮＡＮＤストリング４５０のドレイン選択ゲートのドレイン端子４２６に接続されている。ＮＡＮＤストリングの各行に沿って、ソースライン４０４が、ＮＡＮＤストリングのソース選択ゲートの全てのソース端子４２８に接続されている。
【００６２】
記憶素子のアレイは、記憶素子の多数のブロックに分割される。フラッシュＥＥＰＲＯＭシステムでは一般的なように、ブロックは消去の単位である。つまり、各ブロックは、共に消去される最小数の記憶素子を有する。各ブロックは、一般に複数のページに分割される。ページは、プログラムの最小単位である。１ページ又は複数ページのデータは、通常、記憶素子の１行に記憶される。例えば、１行は、通常、いくつかのインタリーブされたページを含む、あるいは、１行は１ページを構成してよい。ページの全ての記憶素子は、一度に読み出され、又は、プログラムされる。さらに、ページは、一つ又は複数のセクタからユーザデータを記憶できる。セクタは、ユーザデータの便利な単位としてホストによって使用される論理概念である。つまり、セクタは、通常、コントローラに限定されるオーバヘッドデータは含まない。オーバヘッドデータは、セクタのユーザデータから計算されたエラー訂正コード（ＥＣＣ）を含むことができる。（後述される）コントローラの一部は、データがアレイにプログラムされるときにＥＣＣを計算し、データがアレイから読み出されるときにそれをチェックする。また、ＥＣＣ及び／又は他のオーバヘッドデータは、それらが関連するユーザデータ以外の異なるページに記憶されてもよいし、もしくは、異なるブロックに記憶されてもよい。
【００６３】
ユーザデータのセクタは一般に５１２バイトであり、磁気ディスクドライブ内のセクタのサイズに対応する。オーバヘッドデータは一般に、追加の１６〜２０バイトである。多数のページがブロックを構成し、それは８ページから、例えば最大３２、６４、１２８又はそれ以上のページのいずれであってもよい。いくつかの実施形態では、ＮＡＮＤストリングの列はブロックを含む。
【００６４】
一実施形態では、メモリ記憶素子は、十分な期間に亘ってｐ−ウェルが消去電圧（例えば１４から２２Ｖ）に上昇され、ソースラインとビットラインがフローティングしている間に、選択されたブロックのワードラインを接地させることによって消去される。容量結合のために、非選択ワードライン、ビットライン、選択ライン及びｃ−ソースも消去電圧のかなりの部分まで引き上げられる。従って、強力な電界が選択された記憶素子のトンネル酸化物層に印加され、フローティングゲートの電子が、通常はファウラー−ノードハイムトンネル現象によって基板側に放出されるにつれて、選択された記憶素子のデータが消去される。電子がフローティングゲートからｐ−ウェル領域に移されるのにしたがって、選択された記憶素子の閾値電圧は引き下げられる。消去はメモリアレイ全体、別々のブロック、又は、他の記憶素子の単位で実行できる。
【００６５】
図５は、単一行／列デコーダ及び読み出し／書き込み回路を使用する不揮発性メモリシステムのブロック図である。同図は、一実施形態に従って記憶素子のページを同時に読み出し、プログラムするための読み出し／書き込み回路を有するメモリ素子５９６を示す。メモリ素子５９６は、一つ以上のメモリダイ５９８を有する。メモリダイ５９８は、２次元のアレイの記憶素子４００、制御回路５１０、及び、読み出し／書き込み回路５６５を有する。いくつかの実施形態では、記憶素子のアレイは三次元である場合がある。メモリアレイ４００は行復号部５３０を介してワードラインによって、及び列復号部５６０を介してビットラインによってアドレスできる。読み出し／書き込み回路５６５は複数の検出ブロック５００を有しており、１ページの記憶素子を並列に読み出し又はプログラムすることができる。一般に、制御部５５０は、一つ以上のメモリダイ５９８のように同じメモリ素子５９６（例えば、取り外し可能なストレージカード）内に含まれる。コマンド及びデータは、ライン５２０を介してホストと制御部５５０の間及びライン５１８を介して制御部と一つ以上のメモリダイ５９８の間で送られる。
【００６６】
制御回路５１０は、読み出し／書き込み回路５６５と協調して、メモリアレイ４００上でメモリ動作を実行する。制御回路５１０は、状態マシン５１２、オンチップアドレスデコーダ５１４、及び電力制御モジュール５１６を含む。状態マシン５１２は、メモリ動作のチップレベル制御を提供する。オンチップアドレスデコーダ５１４は、ホスト又はメモリコントローラによって使用されるとともに、デコーダ５３０と５６０によって使用されるハードウェアアドレスの間にアドレスインタフェースを提供する。電力制御モジュール５１６は、メモリ動作中、ワードライン及びビットラインに供給される電力及び電圧を制御する。
【００６７】
いくつかの実装例では、図５の構成要素のいくつかを組み合わせることができる。多様な設計では、記憶素子アレイ４００以外の（単独又は組み合わせた）一つ又は複数の構成要素を、管理回路つまり制御回路と見なすことができる。例えば、一又は複数の管理回路又は制御回路は、制御回路５１０、状態マシン５１２、デコーダ５１４／５６０、電力制御５１６、検出ブロック５００、読み出し／書き込み回路５６５、制御部５５０等の内の任意の一又は組み合わせを含んでよい。
【００６８】
別の実施形態では、不揮発性メモリシステムは、二重の行／列デコーダ及び読み出し／書き込み回路を使用する。メモリアレイ４００に対する種々の周辺回路によるアクセスは、アレイの対向する側で対称的に実施され、これによって各側のアクセスライン及び回路の密度が半減される。したがって、行デコーダは２つの行デコーダに分割されており、列デコーダは２つの列デコーダに分割されている。同様に、読み出し／書き込み回路は底部からビットラインに接続する読み出し／書き込み回路と、アレイ４００の上部からビットラインに接続する読み出し／書き込み回路に分割される。このようにして、読み出し／書き込みモジュールの密度は、基本的に２分の１、削減される。
【００６９】
図６は、検出ブロックの一実施形態を示すブロック図である。個々の検出ブロック５００は、検出モジュール５８０と呼ばれるコア部分、及び共通部分５９０に区切られる。一実施形態では、ビットラインごとに別個の検出モジュール５８０、及び、複数の検出モジュールの一組に一つの共通部分５９０がある。一例では、検出ブロックは、一つの共通部分５９０及び８つの検出モジュール５８０を含む。グループ内の検出モジュールのそれぞれが、データバス５７２を介して関連付けられた共通部分と通信する。
【００７０】
検出モジュール５８０は、接続されているビットラインの導通電流が所定の閾値レベルを超えているのか、それとも下回っているのかを判断する検出回路５７０を含む。検出モジュール５８０は、接続されたビットライン上で電圧状態を設定するために使用されるビットラインラッチ５８２も含む。例えば、ビットラインラッチ５８２で所定の状態にラッチされることにより、接続されたビットラインは、プログラム禁止（例えば、１．５から３Ｖ）を指定する状態にプルされることになる。
【００７１】
共通部分５９０は、プロセッサ５９２、一組のデータラッチ５９４、及び、一組のデータラッチ５９４とデータバス５２０の間に結合されているＩ／Ｏインタフェース５９６を含む。プロセッサ５９２は、計算を実行する。例えば、その機能の一つは、検出された記憶素子に記憶されるデータを特定し、一組のデータラッチにその決定されたデータを記憶することである。一組のデータラッチ５９４は、読み出し動作の間にプロセッサ５９２によって決定されるデータビットを記憶するために使用される。それは、プログラム動作中にデータバス５２０からインポートされるデータビットを記憶するためにも使用される。インポートされたデータビットは、メモリの中にプログラムされるべきことを意味する書き込みデータを表す。Ｉ／Ｏインタフェース５９６は、データラッチ５９４とデータバス５２０の間のインタフェースを提供する。
【００７２】
読み出し又は検知の間、システムの動作は状態マシン５１２の制御下にあり、状態マシン５１２は、アドレス指定された記憶素子に対する様々な制御ゲート電圧の供給を制御する。サポートする多様なメモリ状態に対応して、所定の多様な制御ゲート電圧が順次供給されていくと、これらの電圧のなかの一つで検出モジュール５８０がトリップし、検出モジュール５８０からの出力がバス５７２を介してプロセッサ５９２に提供される。このとき、プロセッサ５９２は、検出モジュールがトリップしたことと、入力回線５９３を介して状態マシンから得られる印加した制御ゲート電圧についての情報とを考慮し、その結果として得られるメモリ状態を決定する。次に、それは、メモリ状態を２進コード化し、結果として生じるデータビットをデータラッチ５９４に記憶する。コア部分の別の実施形態では、ビットラインラッチ５８２は、検出モジュール５８０の出力をラッチするためのラッチとして、また、上述されたビットラインラッチとして二重の役割を果たす。
【００７３】
いくつかの実装例は、複数のプロセッサ５９２を含むことがある。一実施形態では、出力ラインのそれぞれがともにワイヤードＯＲ化されるように、各プロセッサ５９２が出力ライン（不図示）を含む。いくつかの実施形態では、出力ラインは、ワイヤードＯＲラインに接続される前に反転される。ワイヤードＯＲを受け取る状態マシンは、プログラムされている全てのビットがいつ所望されるレベルに達したのかを判断できるため、この構成によって、いつプログラムプロセスが完了したのかの、プログラム検証プロセスの間の迅速な判断が可能になる。例えば、各ビットがその所望されたレベルに達すると、そのビットの論理ゼロがワイヤードＯＲラインに送られる（又はデータ１が反転される）。全てのビットがデータ０（又は反転されたデータ１）を出力すると、次に状態マシンはプログラムプロセスを終了しなければならないことを知る。各プロセッサは８つの検出モジュールと通信するため、状態マシンはワイヤードＯＲラインを８度読み出す必要がある。つまり、論理がプロセッサ５９２に追加され、状態マシンがワイヤードＯＲラインを１度だけ読み出せばよいように、関連付けられたビットラインの結果を蓄積する。同様に、論理レベルを正しく選ぶことによって、グローバル状態マシンはいつ第１のビットがその状態を変更するのかを検出し、アルゴリズムを適切に変更する。
【００７４】
プログラム又は検証の間に、プログラムされるデータは、データバス５２０から一組のデータラッチ５９４に記憶される。状態マシンの制御下にあるプログラム動作は、アドレス指定された記憶素子の制御ゲートに印加される一連のプログラム電圧パルスを含む。各プログラムパルスの後ろには、記憶素子が所望されるメモリ状態にプログラムされたかどうかを判断するために読み返し（検証）が続く。プロセッサ５９２は、所望されるメモリ状態に関して読み返しメモリ状態を監視する。この２つが一致するとき、ビットラインがプログラム禁止を指定する状態にプルされるように、プロセッサ５９２がビットラインラッチ５８２を設定する。これが、プログラムパルスがその制御ゲートに出現したとしても、ビットラインに結合された記憶素子がさらにプログラムされるのを禁止する。他の実施形態では、プロセッサはビットラインラッチ５８２を初期にロードし、検証プロセスの間に検出回路がそれを禁止値に設定する。
【００７５】
データラッチスタック５９４は、検出モジュールに対応するデータラッチのスタックを含む。一実施形態では、検出モジュール５８０ごとに３つのデータラッチがある。（必須ではないが）いくつかの実装例では、データラッチは、その中に記憶される並列データが、データバス５２０用のシリアルデータに変換され、逆の場合も同じとなるように、シフトレジスタとして実装される。好ましい実施形態では、データのブロックをシリアル転送によって入力又は出力できるように、ｍ個の記憶素子の読み出し／書き込みブロックに対応する全てのデータラッチがともにリンクしてブロックシフトレジスタが形成され得る。特に、読み出し／書き込みモジュールのバンクは、一組のデータラッチのそれぞれが、あたかもそれらが読み出し／書き込みブロック全体のためのシフトレジスタの一部であるかのように、データをデータバスの中に又はデータバスの中から次々とシフトするように適応される。
【００７６】
図７は、全ビットラインメモリアーキテクチャ用、又は、奇数−偶数メモリアーキテクチャ用のブロックへのメモリアレイの編成の例を示す。メモリアレイ４００の例示的な構造が説明される。一例として、１０２４個のブロックに区切られるＮＡＮＤフラッシュＥＥＰＲＯＭが説明される。各ブロックに記憶されるデータは、同時に消去され得る。一実施形態では、ブロックは、同時に消去される記憶素子の最小単位である。この例では、各ブロックにビットラインＢＬ０、ＢＬ１、．．．ＢＬ８５１１に対応する８，５１２の列がある。全ビットライン（ＡＢＬ）アーキテクチャ（アーキテクチャ７１０）と呼ばれる一実施形態では、ブロックの全ビットラインは、読み出し動作及びプログラム動作の間に同時に選択され得る。共通ワードラインに沿った、任意のビットラインに接続された記憶素子は、同時にプログラムされ得る。
【００７７】
提供されている例では、４個の記憶素子が直列で接続され、ＮＡＮＤストリングを形成する。４個の記憶素子が各ＮＡＮＤストリングに含まれるように示されているが、４個以上又は４個未満（例えば、１６、３２、６４、又は別の数）を使用できる。ＮＡＮＤストリングの一つの端子はドレイン選択ゲートを介して対応するビットラインに接続され（ゲートドレインラインＳＧＤを選択するために接続され）、別の端子はソース選択ゲートを介してｃ−ソースに接続される（ゲートソースラインＳＧＳを選択するために接続される）。
【００７８】
奇数−偶数アーキテクチャ（アーキテクチャ７００）と呼ばれる別の実施形態では、ビットラインは偶数ビットライン（ＢＬｅ）及び奇数ビットライン（ＢＬｏ）に分割される。奇数／偶数ビットラインアーキテクチャでは、共通ワードラインに沿った、奇数ビットラインに接続された記憶素子は、一度にプログラムされる。一方、共通ビットラインに沿った、偶数ビットラインに接続された記憶素子は別のときにプログラムされる。この例では、各ブロックに偶数列及び奇数列に分割される８，５１２の列があり、６４個の記憶素子が１列内に直列で接続され、ＮＡＮＤストリングを形成するのが示されている。
【００７９】
読み出し動作及びプログラム動作の一つの構成の間に、４，２５６個の記憶素子が同時に選択される。選択された記憶素子は、同じワードライン及び同種のビットライン（例えば、偶数又は奇数）を有する。したがって、論理ページを形成する５３２バイトのデータを同時に読み出す、又はプログラムすることができ、メモリの１ブロックが少なくとも８論理ページ（奇数ページ及び偶数ページにそれぞれ４ワードライン）を記憶できる。マルチ状態の記憶素子の場合、各記憶素子が２ビットのデータを記憶し、これらの２個のビットのそれぞれが異なるページに記憶されるとき、１ブロックは１６論理ページを記憶できる。また、他のサイズのブロック及びページも使用できる。
【００８０】
ＡＢＬアーキテクチャ又は奇数−偶数アーキテクチャどちらかの場合、記憶素子は、ｐ−ウェルを消去電圧（例えば２０Ｖ）に上昇させ、選択されたブロックのワードラインを接地することによって消去され得る。ソースライン及びビットラインはフローティングしている。消去はメモリアレイ全体、別々のブロック、又はメモリ素子の一部である記憶素子の別の単位で実行され得る。電子は、記憶素子のＶｔｈが負になるように、記憶素子のフローティングゲートからｐ−ウェル領域に転送される。
【００８１】
読み出し動作及び検証動作では、選択ゲート（ＳＧＤ及びＳＧＳ）が２．５から４．５Ｖの範囲の電圧に接続され、非選択のワードライン（例えば、ＷＬ２が選択されたワードラインであるとき、ＷＬ０、ＷＬ１、及びＷＬ３）が読み出しパス電圧ＶＲＥＡＤ（通常、４．５から６Ｖの範囲の電圧）に上昇され、トランジスタをパスゲートとして動作させる。選択ワードラインＷＬ２はある電圧に接続され、その電圧のレベルは、対象の記憶素子のＶｔｈがそのレベルを上回っているのか、それとも下回っているのかを判断するために、各読み出し動作及び検証動作ごとに指定される。例えば、２レベルの記憶素子のための読み出し動作では、選択ワードラインＷＬ２が接地され、Ｖｔｈが０ボルトよりも高いかどうかが検出され得る。２レベルの記憶素子のための検証動作では、選択ワードラインＷＬ２は、例えば０．８Ｖに接続され、その結果、Ｖｔｈが少なくとも０．８Ｖを超えたかどうかが検証される。ソース及びｐ−ウェルは０Ｖである。偶数ビットライン（ＢＬｅ）であると仮定される選択ビットラインは、例えば０．７Ｖというレベルにプリチャージされる。Ｖｔｈがワードラインの読み出しレベル又は検証レベルよりも高い場合には、対象の記憶素子と関連付けられたビットライン（ＢＬｅ）の電位レベルは、非導電性記憶素子のために高レベルに維持される。他方、Ｖｔｈが読み出しレベル又は検証レベルよりも低い場合には、関係するビットライン（ＢＬｅ）の電位レベルは、導電性記憶素子がビットラインを放電するため、例えば０．５Ｖ未満等の低レベルに減少する。したがって、記憶素子の状態が、ビットラインに接続されている電圧コンパレータ検出増幅器により検出され得る。
【００８２】
図８は、一組の閾値電圧分布及びワンパスプログラムの例を示す。記憶素子アレイのための例示の閾値電圧分布は、各記憶素子が２ビットのデータを記憶する場合に提供される。第１の閾値電圧分布８００は、消去された（状態Ｅ）記憶素子を表す。３つの閾値電圧分布８０２、８０４、及び８０６は、それぞれプログラムされた状態Ａ、Ｂ及びＣを表す。一実施形態では、Ｅ分布内の閾値電圧は負であり、Ａ、Ｂ及びＣ分布内の閾値電圧は正である。
【００８３】
特定の状態にある記憶素子の数は、その閾値電圧が対応する検証レベルを上回るとされた記憶素子をカウントすることによって、特定することができる。
【００８４】
それぞれの独立した閾値電圧範囲は、一組のデータビットの所定値に対応する。記憶素子にプログラムされたデータと記憶素子の閾値電圧レベルの特定の関係は、記憶素子のために採用されるデータ符号化方式に依存する。一実施形態では、フローティングゲートの閾値電圧が誤ってその隣の物理状態にシフトすると、１ビットだけが影響を受けるように、データ値がグレーコード割り当てを使用して閾値電圧範囲に割り当てられる。一例は、閾値電圧範囲Ｅ（状態Ｅ）に「１１」を、閾値電圧範囲Ａ（状態Ａ）に「１０」を、閾値電圧範囲Ｂ（状態Ｂ）に「００」を、及び閾値電圧範囲Ｃ（状態Ｃ）に「０１」を割り当てる。しかしながら、他の実施形態では、グレーコードは使用されない。４つの状態が図示されているが、本技術は、４つの状態より多い又は少ない状態を含む他のマルチ状態構造に使用することもできる。
【００８５】
記憶素子からデータを読み出すための３つの読み出し基準電圧、Ｖｒａ、Ｖｒｂ、及びＶｒｃが提供される。所与の記憶素子の閾値電圧がＶｒａ、Ｖｒｂ、及びＶｒｃを超えているのか、それとも下回っているのかをテストすることによって、システムは、例えば、プログラム状態等の、記憶素子の状態を特定することができる。
【００８６】
さらに、３つの検証基準電圧Ｖｖａ、Ｖｖｂ、及びＶｖｃが、記憶素子からデータを読み出すために提供される。記憶素子を状態Ａにプログラムするとき、システムは、それらの記憶素子がＶｖａ以上の閾値電圧を有するかどうかをテストする。記憶素子を状態Ｂにプログラムするとき、システムは、記憶素子がＶｖｂ以上の閾値電圧を有するかどうかをテストする。記憶素子を状態Ｃにプログラムするとき、システムは、記憶素子がＶｖｃ以上の閾値電圧を有するかどうかをテストする。
【００８７】
一実施形態では、フルシーケンスプログラムとして知られるが、記憶素子は、消去状態Ｅからプログラム状態Ａ、Ｂ又はＣの何れかに直接的にプログラムされる。例えば、まず、プログラムされる記憶素子の集合中の全ての記憶素子が消去状態Ｅとなるように、当該集合が消去される場合がある。図１６ａに示される一連のプログラムパルスは、記憶素子を直接的に状態Ａ、Ｂ、又はＣにプログラムするために使用される。いくつかの記憶素子は状態Ｅから状態Ａにプログラムされ、他の記憶素子は状態Ｅから状態Ｂに、及び／又は、状態Ｅから状態Ｃにプログラムされる。ＷＬｎ上で状態Ｅから状態Ｃにプログラムするときには、ＷＬｎ下のフローティングゲート上の電荷の量の変化が、状態Ｅから状態Ａに、又は、状態Ｅから状態Ｂにプログラムするときの電荷の変化と比較して最大となるので、ＷＬｎ―１下の隣接フローティングゲートに対する寄生結合の量は最大値に達する。状態Ｅから状態Ｂにプログラムするときは、隣接フローティングゲートへの結合の量はより少ない。状態Ｅから状態Ａにプログラムするときは、結合の量はさらに削減される。
【００８８】
Ｖｔは、一つの検証レベルを示すが、データ状態のための検証レベルとは異なる。例えば図１６ａ、図１６ｂに関連して後述するように、それは第２のプログラムパルスを開始するトリガとして使用されることができる。この場合、Ｖｔは、ＶｖａとＶｖｂとの間、即ち、データ状態ＡとＢのための検証レベルの間とすることができる。
【００８９】
他の選択肢として、一又は複数のデータ状態のために、低検証レベルと高検証レベルを使用することが挙げられる。例えば、ＶｖａＬとＶｖａＨを状態Ａのための低検証レベルと高検証レベルとし、ＶｖｂＬとＶｖｂＨを状態Ｂのための低検証レベルと高検証レベルとすることができる。プログラムの間、目標状態として状態Ａにプログラムされている記憶素子の閾値電圧がＶｖａＬを超えた時に、それに接続されたビットライン電圧を、プログラム、即ち、非禁止レベルと完全禁止レベルとの間のあるレベルまで上げることによって、記憶素子のプログラム速度を減速させる。これは、閾値電圧の大きな増大を避け、正確性をもたらす。閾値電圧がＶｖａＨに達した時、記憶素子はさらなるプログラムからロックアウトされる。同様に、目標状態として状態Ｂにプログラムされている記憶素子の閾値電圧がＶｖｂＬを超えた時に、その記憶素子のプログラム速度を減速し、閾値電圧がＶｖｂＨに達した時に、記憶素子をさらなるプログラムからロックアウトする。このようなプログラム技術は、クイックパス書き込み、あるいは二重検証技術と称される。ここで、一例ではあるが、最高位の状態については、いくらかのオーバーシュートは基本的に許容されるので、二重の検証レベルを使用しなくてもよい。その代わり、消去状態よりも高く、最高位の状態よりも低いプログラム状態に関しては、二重の検証レベルを使用することができる。
【００９０】
図９は、２つの異なるページ（下側ページと上側ページ）に対してデータを記憶するマルチ状態記憶素子をプログラムするツーパス技術の一例を示している。図８の閾値電圧分布８００、８０２、８０４および８０６の繰り返しで４つの状態が示されている。これらの状態およびその示すビットは、状態Ｅ（１１）、状態Ａ（１０）、状態Ｂ（００）及び状態Ｃ（０１）である。状態Ｅの場合、両方のページが「１」を記憶する。状態Ａの場合、下側ページが「０」を記憶し、上側ページが「１」を記憶する。状態Ｂの場合、両方のページが「０」を記憶する。状態Ｃの場合、下側ページが「１」を記憶し、上側ページが「０」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることも可能であることに注意する。
【００９１】
第１プログラムパスでは、記憶素子の閾値電圧レベルが、下側の論理ページにプログラムされるビットに応じて設定される。そのビットが論理「１」であれば、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるビットが論理「０」であれば、矢印９００で示したように、記憶素子の閾値レベルは状態Ａになるように増大される。これによって、第１プログラムパスを終了する。
【００９２】
第２プログラムパスでは、記憶素子の閾値電圧レベルが、上側論理ページ内にプログラムされるビットに応じて設定される。上側論理ページビットが論理「１」を記憶する場合、記憶素子は下側ページビットのプログラムに依存する状態Ｅ又はＡの一方であり、どちらも上側ページビットは「１」を保持するのでプログラムは生じない。上側ページビットが論理「０」となる場合、閾値電圧はシフトされる。第１パスによって記憶素子が消去状態Ｅに留まっていれば第２段階で記憶素子をプログラムし、矢印９２０で示したように閾値電圧が状態Ｃ内になるように増大させる。第１プログラムパスの結果として記憶素子が状態Ａ内にプログラムされれば、記憶素子はさらに第２パスでプログラムされ、矢印９１０で示したように閾値電圧が状態Ｂ内になるように増大させる。第２パスの結果は、下側ページ用のデータを変更することなく、上側ページの論理「０」を記憶するように指定した状態に記憶素子をプログラムすることである。図８および９の両方において、隣接するワードライン上のフローティングゲートへの結合量は最終状態に依存する。
【００９３】
一実施形態では、全ページを充填するのに十分なデータを書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。十分ではないデータが全ページに書き込まれた場合、プログラム処理は受け取ったデータを用いて下側ページプログラムを実行できる。次のデータを受け取ったときは、システムは上側ページをプログラムする。さらに別の実施形態では、システムは下側ページをプログラムするモードで書き込みを開始し、ワードラインの記憶素子の全体（又は大部分）を充填するために次の十分なデータを受け取った場合、全シーケンスプログラムモードに変換する。
【００９４】
図１０ａから図１０ｃは、前のページの隣接記憶素子に書き込んだ後で、特定のページに対してその特定の記憶素子を書き込むことによって、その特定の記憶素子に対するフローティングゲート間結合効果を低減する不揮発性メモリをプログラムする別の方法を開示している。実装形態の一例では、不揮発性記憶素子は、４つのデータ状態を用いて記憶素子毎に２ビットのデータを記憶する。例えば、状態Ｅが消去状態であり、状態Ａ、Ｂ及びＣがプログラム状態であると仮定する。状態Ｅはデータ１１を記憶している。状態Ａはデータ０１を記憶している。状態Ｂはデータ１０を記憶している。状態Ｃはデータ００を記憶している。両方のビットは隣接する状態Ａ及びＢの間で変化するので、これは非グレイ符号化の一例である。データの物理的データ状態への他の符号化を用いることもできる。各記憶素子は２ページ分のデータを記憶する。参照のために、これらのページのデータは上側ページ及び下側ページと呼ばれるが、他のラベルを与えることもできる。状態Ａを参照すると、上側ページはビット０を記憶し、下側ページはビット１を記憶している。状態Ｂを参照すると、上側ページはビット１を記憶し、下側ページはビット０を記憶している。状態Ｃを参照すると、両方のページがビットデータ０を記憶している。
【００９５】
プログラム処理は、２つのステップの処理である。第１ステップでは、下側ページをプログラムする。下側ページがデータ１のままである場合、記憶素子状態は状態Ｅ（分布１０００）に留まる。データが０にプログラムされる場合、記憶素子の電圧の閾値は、記憶素子が状態Ｂ’（分布１０１０）にプログラムされるように引き上げられる。状態Ｂ’は、中間状態又はあいまいな状態である。従って、図１０ａは、状態Ｅから状態Ｂ’への記憶素子のプログラムを示している。状態Ｂ’は暫定的状態Ｂであり、従って、検証点はＶｖｂ’として示され、Ｖｖｂより低い。
【００９６】
分布１０１０は、状態Ｂ’の記憶素子が分布１０１０に達する前に経験する、一時的で過渡的な分布（図示されず）を伴ってもよい。
【００９７】
一実施形態では、状態Ｅから状態Ｂ’に記憶素子をプログラムした後、ＮＡＮＤストリング内の隣接記憶素子（ＷＬｎ＋１）をその下側ページに対してプログラムする。例えば、図２を見直すと、記憶素子１０６用の下側ページをプログラムした後、記憶素子１０４の下側ページをプログラムする。記憶素子１０４をプログラムした後、記憶素子１０４が状態Ｅから状態Ｂ’に上昇した閾値電圧を有していた場合、フローティングゲート間結合の影響は記憶素子１０６の見かけの閾値電圧を上昇させる。これは、図１０ｂの閾値電圧分布１０１２に示したように状態Ｂ’の閾値電圧分布を拡大する効果を有する。閾値電圧分布のこの見かけの拡大は、上側ページをプログラムする際に修正される。また、状態Ｅは、分布１００２によって示されるように、より少ない範囲に広げられてもよい。
【００９８】
図１０ｃは、上側ページをプログラムする工程を示している。記憶素子が消去状態Ｅであって上側ページが１に留まる場合、記憶素子は状態Ｅ（分布１００２）に留まる。記憶素子が状態Ｅであり、その上側ページデータが０にプログラムされる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Ａ（分布１００４）になる。記憶素子が中間の閾値電圧分布１０１２であって上側ページデータが１に留まる場合、記憶素子は最終状態Ｂ（分布１００６）にプログラムされる。記憶素子が中間の閾値電圧分布１０１２であって上側ページデータがデータ０になる場合、記憶素子の閾値電圧は上昇し、記憶素子は状態Ｃ（分布１００８）になる。図１０ａ−ｃに示す工程は、対して、隣接する記憶素子への上側ページのプログラムのみが、特定の記憶素子の明確な閾値電圧に影響を与えるので、フローティングゲートのフローティングゲートカップリングへの影響を低減することができる。選択的な符号化の一例は、分布１０１２を、上側ページが１であれば状態Ｃへ遷移させ、上側ページが０であれば状態Ｂへ遷移させる。
【００９９】
図１０ａから図１０ｃは、４つのデータ状態、及び、２ページのデータに関しての例を提供するが、教示される概念は、４つの状態より多い又は少なく、２ページより多い又は少ない他の実装例に適用できる。例えば、記憶素子ごとに８つ又は１６の状態のあるメモリ素子が、現在、計画されている、又は生産中である。
【０１００】
図１１は、一組の記憶素子のためのマルチパスプログラム動作を示す。図示された構成要素は、はるかに多数の記憶素子、ワードライン及びビットラインの組の一部であってもよい。考えられる一つのプログラム動作では、例えば記憶素子１１０２、１１０４、及び１１０６等のＷＬｎ−１上の記憶素子が、第１のプログラムパスでプログラムされる。このステップは、丸囲みの「１」で表される。次に（「２」）、例えば記憶素子１１１２、１１１４及び１１１６等のＷＬｎ上の記憶素子が、第１のプログラムパスでプログラムされる。この例では、プログラムのためにワードラインが選択されると、各プログラムパルスの後に検証動作が行われる。ＷＬｎでの検証動作中に、一又は複数の検証電圧がＷＬｎに印加され、パス電圧がＷＬｎ−１及びＷＬｎ＋１を含む残りのワードラインに印加される。パス電圧は、非選択の記憶素子をオンにする（導電性にする）ために使用され、それによって選択されたワードラインのための検知動作が生じる。次に（「３」）、ＷＬｎ−１上の記憶素子が、第２のプログラムパスでプログラムされる。次に（「４」）、ＷＬｎ＋１上の記憶素子は、第１のプログラムパスでプログラムされる。次に（「５」）、ＷＬｎ上の記憶素子が、その最終的なそれぞれの状態に、第２のプログラムパスでプログラムされる。
【０１０１】
ＷＬｎ＋１上でのプログラムによって、ＷＬｎ上の記憶素子は、各状態の閾値電圧分布が高められ、かつ広げられるような影響を受ける。これは、単一パスプログラムとマルチパスプログラムのいずれにおいても発生し得る。単一パスのパスプログラムでは、各ワードラインが完全にプログラムされてから例えばＷＬｎ−１、次いでＷＬｎ、次いでＷＬｎ＋１等の次のワードラインに移動する。
【０１０２】
図１２ａは、制御ゲートから、相対的に低状態にある隣接する記憶素子のフローティングゲートへのプログラム電圧の結合を示すＮＡＮＤストリングの断面図を示す。基板１２５０は、ソース／ドレイン領域１２４０、１２４１、１２４２、及び１２４３を含む。記憶素子１２１０，１２２０、及び１２３０は基板上に形成されている。記憶素子１２１０は、ＷＬｎ−１制御ゲート１２１１及びフローティングゲート１２１２を含む。記憶素子１２２０は、ＷＬｎ制御ゲート１２２１及びフローティングゲート１２２２を含む。記憶素子１２３０は、ＷＬｎ＋１制御ゲート１２３１及びフローティングゲート１２３２を含む。記憶素子１２２０は、プログラムされ、ＷＬｎを介してＶｐｇｍを受け取る。一方、記憶素子１２１０及び１２３０は、パス電圧Ｖｐａｓｓを受け取る。
【０１０３】
ＮＡＮＤ素子といったメモリ素子のサイズ縮小が進むにつれて、記憶素子間で生じる干渉が、記憶素子の特徴を決定する上での重要な要素になっている。これらの干渉の内の一つが、ワードラインからワードラインへの干渉である。その他の問題の中でも、これはプログラム中における二つの重要な問題につながる。第１に、ＷＬｎのプログラム中、ＷＬｎ上のバイアスはＶｐｇｍであるが、一方、隣接する非選択のワードラインＷＬｎ−１及びＷＬｎ＋１は通常Ｖｐａｓｓのバイアスにある。非選択のワードラインが個別の異なるＶｐａｓｓレベルにあることもある。ワードライン／制御ゲート１２２１上のＶｐｇｍは、結合率ｒ２に応じてフローティングゲート１２１２及び１２３２に結合し、それによってフローティングゲート１２１２及び１２３２の電位を上げる。これは、ＷＬｎ＋１／ｎ−１の記憶素子上でのＶｐａｓｓ外乱の確率を高める。あらゆるワードライン上の記憶素子はＶｐａｓｓ外乱を受けることで影響され得るが、隣接するフローティングゲートへのＶｐｇｍ結合によって、それらの記憶素子はＶｐａｓｓ外乱に最も影響を受けやすくなる。特に、隣接する記憶素子が、例えばＥ又はＡ状態等の相対的に低状態にあるとき、それらのフローティングゲートの中には相対的にほとんど電子がなくフローティングゲート１２１２にとって相対的により高い電位を生じさせる。制御ゲート１２２１からの結合は、記憶素子１２１２及び１２３２の閾値電圧の上昇につながり、したがってＥ状態の記憶素子がＡ状態の記憶素子として読み出されるほどのプログラム外乱（ＥからＡへの間違い）を引き起こすほど、フローティングゲート電位が大きく高められることもある。
【０１０４】
消去状態記憶素子は、その低い閾値電圧のために、Ｃ状態の記憶素子といった高状態の記憶素子よりも、Ｖｐａｓｓ外乱の影響をはるかに受けやすい。また、Ｖｐａｓｓ外乱は、プログラム中にブーストされる禁止チャネル（非選択のＮＡＮＤストリング）においてではなく、主に、選択されたＮＡＮＤストリングにおいて等、プログラムチャネルで発生する。ブーストのため、フローティングゲートとチャネルの間の電場は、Ｖｐａｓｓ外乱に起因する重大な電子トンネリングが発生しないように、プログラムされたチャネルにおいてよりもはるかに低くなる。ＷＬｎ＋１／ｎ−１でＶｐａｓｓを引き下げると、それによりフローティングゲートとチャネルの間の電場が下がるため、Ｖｐａｓｓ外乱の問題を削減できる。ただし、より低いＶｐａｓｓは、ＷＬｎ記憶素子上でのプログラム飽和も悪化させる。したがって、一つのＶｐａｓｓレベルは異なるデータ状態にあるＷＬｎ−１／ｎ＋１記憶素子にとって最適ではない。
【０１０５】
図１２ｂは、相対的に高状態にある隣接する記憶素子のフローティングゲートから、プログラム電圧を受け取る制御ゲートへの電子放射を示すＮＡＮＤストリングの断面図を示す。ここでは、フローティングゲート１２１２は、制御ゲート１２２１上での高いＶｐｇｍのために電子が放射される領域１２１３を有する。特に、プログラム動作のいくつかのプログラムパルスの間、ＷＬｎ上のＶｐｇｍは相対的に高い値に達することがある。ＷＬｎ−１フローティングゲート１２１２と制御ゲート１２２１の間の電位差が十分に高いと、フローティングゲート１２１２の角から制御ゲート１２２１に向かって電子放射を引き起こすほど強い電場が生じることになる。さらに、記憶素子１２１０がＣ状態やその他の高い状態にあるときは、フローティングゲート１２１２に比較的多くの電子が存在することから、その電位が引き下げられ、リークのためのより強い電場を生じさせることになりので、その問題はさらに悪化する。かかる電子リークは、記憶素子の閾値電圧を低下させるプログラム外乱を引き起こすことがある。例えば、Ｃ状態の記憶素子は、あたかもそれがＢ状態にあるかのように（ＣからＢ故障）読み出されることがある。閾値電圧は、フローティングゲートの下にある基板のチャンネルを導電性にするために記憶素子の制御ゲートに印加される必要がある電圧であるため、フローティングゲート内の電荷量が減少すると、記憶素子の閾値電圧が減少することに留意されたい。フローティングゲート内の電荷量が減少するので、制御ゲート／ワードラインに印加されるより小さい電圧で、記憶素子を導電性にするのには十分となる。
【０１０６】
禁止チャネルの場合、チャンネル内のブースト電位は、ＷＬｎ−１／ｎ＋１のフローティングゲート１２１２及び１２３２まで結合させ、したがってフローティングゲートをより高い電位に上げる。これにより、フローティングゲート１２１２及び１２３２と、制御ゲート１２２１との間の電場が下がり、したがってフローティングゲートから制御ゲートへのリークが削減される。また、ＷＬｎ−１上でＶｐｓｓを増加しても、フローティングゲート電位は高まり、したがってこの問題は縮小されるが、それによってまた、記憶素子は前述されたＶｐａｓｓ外乱の影響をより受けやすくなる。したがって、やはり一つのＶｐａｓｓレベルは、異なるデータ状態にあるＷＬｎ−１／ｎ＋１記憶素子にとって最適ではない。
【０１０７】
図１３ａは、マルチパルスプログラム技術の第１の実施形態であって、プログラム動作中に選択されたワードラインに印加されるパルス列を示す。本明細書に説明される技術は、フローティングゲートから制御ゲートへのリークを削減することができる。一方、同時に、ＷＬｎ＋１／ｎ−１上の記憶素子におけるＶｐａｓｓ外乱を改善する。先に説明したように、ＷＬｎ＋１／ｎ−１上の記憶素子におけるＶｐａｓｓ外乱は、ＷＬｎ＋１／ｎ−１のＶｐａｓｓを引き下げることによって削減できる。ただし、これはプログラム飽和を悪化させることを代償として成立する。
【０１０８】
一つの考えられる手法では、記憶素子のプログラムは、一組のプログラムパルスを使用することによって達成される。各組は、複数のプログラムパルスを含んでおり、一組のプログラムパルスの後に、検証動作が行われる。一組のプログラムパルスの間では、検証動作が実行されない。ＷＬｎに接続された記憶素子のためにプログラム動作を開始するコマンドに応じて、検知／読み出し動作がＷＬｎ−１上で実行され、ＷＬｎ−１記憶素子の状態が決定される。ＷＬｎのプログラムが終了されるまで、読み出し動作の結果は、例えばラッチ又は他の一時的な記憶部へ、一時的に保存される。ＷＬｎに接続された記憶素子は、次いで別々に、ＷＬｎ−１記憶素子の状態に基づき、一度に一グループずつ、グループ毎にプログラムされ、一のプログラムパルスがグループごとに印加される。このプログラム中に、グループ特有のパス電圧をＷＬｎ−１に印加してもよい。この手法によると、潜在的に、より深い消去状態やより高いＣ状態が可能となり、したがって閾値電圧の範囲が拡大される。
【０１０９】
図１３ａでは、グループの数は、ＷＬｎ−１上の記憶素子の考えられるデータ状態の数と同じである。例えば、４つの考えられる状態Ｅ、Ａ、Ｂ及びＣがある場合、記憶素子の４つのグループがあり、プログラム動作の各反復は、ＷＬｎに対して４つのプログラムパルスの組を印加することを含み、その後に検証動作の一又は複数のパルスが続く。例えば、プログラム動作が完了するまで、プログラムパルス１３０２、１３０４、１３０６、及び１３０８の後には検証パルス１３０９が続き、プログラムパルス１３１２、１３１４、１３１６及び１３１８の後には検証パルス１３１９が続き、プログラムパルス１３２２、１３２４、１３２６、及び１３２８の後には検証パルス１３２９が続き、プログラムパルス１３３２、１３３４、１３３６及び１３３８の後には、検証パルス１３３９が続く等である。全ての記憶素子のために検証動作を並行して実行すると、プログラム時間が短縮される。プログラムパルスに表記されたＥ、Ａ、Ｂ又はＣは、それに隣接するＷＬｎ−１の近傍記憶素子がその特定の状態にあるＷＬｎ上の記憶素子をプログラムするために使用されるプログラムパルスを示す。
【０１１０】
一組のプログラムパルスにおける各プログラムパルスは、同じ又は異なる大きさを有してよい。考えられる一つの手法では、プログラムパルスの大きさは、ＷＬｎ−１上のパス電圧が上昇するにつれて減少する。これは、効果的なＶｐｇｍの突然の変化を回避する。具体的には、パス電圧が増加するにつれて（図１３ｂを参照）、一組のプログラムパルスにおいてＶｐｇｍを降圧していくことができる。したがって、プログラムパルス１３０８の大きさはパルス１３０６の大きさよりも小さく、プログラムパルス１３０６の大きさはパルス１３０４の大きさよりも小さく、プログラムパルス１３０４の大きさはパルス１３０２の大きさよりも小さい。プログラムパルスは、依然として一組ごとに増分的に増加することもある。したがって、プログラムパルス１３１８の大きさはパルス１３０８の大きさよりも大きく、プログラムパルス１３１６の大きさは、パルス１３０６の大きさよりも大きくてもよい。一例であるが、Ｖｐｇｍの大きさをステップダウンさせるものを、図１３ａ、図１４ａ、図１６ｃ、図１７ａ、図１８ａ、及び図２０ａにおいて点線で示す。
【０１１１】
図１３ａのプログラムパルスはＷＬｎに印加されるが、関連付けられるパス電圧は、図１３ｂに示すように、ＷＬｎ−１に印加される。
【０１１２】
図１３ｂは、図１３ａのプログラム動作の間に、隣接する非選択のワードラインに印加されるパルス列を示す。図１３ｂのパルス列は、図１３ａのパルス列と時間的に整合されている。パルス列は、本明細書中では、時間及び／又は大きさという点で必ずしも拡大／縮小しない。プログラムパルスごとに、対応するパス電圧がＷＬｎ−１に印加される。考えられる一例として、名目のＶｐａｓｓを隣接していない非選択の記憶素子に印加してもよい。具体的には、Ｖｐａｓｓ１（１３４２）、Ｖｐａｓｓ２（１３４４）、Ｖｐａｓｓ３（１３４６）及びＶｐａｓｓ４（１３４８）の大きさのパス電圧が、プログラムパルス１３０２、１３０４、１３０６、及び１３０８それぞれがＷＬｎに印加されるときにＷＬｎ−１に印加され、この場合Ｖｐａｓｓ１＜Ｖｐａｓｓ２＜Ｖｐａｓｓ３＜Ｖｐａｓｓ４である。
【０１１３】
Ｖｐａｓｓ１（１３４２）がＷＬｎ−１に印加される期間、プログラムパルス１３０２がＷＬｎに印加され、ＷＬｎ上の記憶素子のうち、隣接するＷＬｎ−１上の記憶素子がＥ状態である第１のグループはプログラムされ、隣接するＷＬｎ−１上の記憶素子がそれぞれＡ、Ｂ又はＣ状態にある第２、第３及び第４のグループは禁止される。Ｖｐａｓｓ２（１３４４）がＷＬｎ−１に印加される期間では、プログラムパルス１３０４がＷＬｎに印加され、ＷＬｎ上の記憶素子の第１、第３及び第４のグループが禁止されている間に、ＷＬｎ上の記憶素子の第２のグループがプログラムされる。Ｖｐａｓｓ３（１３４６）がＷＬｎ−１に印加される期間では、プログラムパルス１３０６がＷＬｎに印加され、ＷＬｎ上の記憶素子の第１、第２及び第４のグループが禁止されている間に、ＷＬｎ上の記憶素子の第３のグループがプログラムされる。Ｖｐａｓｓ４（１３４８）がＷＬｎ−１に印加される期間では、プログラムパルス１３０８がＷＬｎに印加され、ＷＬｎ上の記憶素子の第１、第２及び第３のグループが禁止されている間に、ＷＬｎ上の記憶素子の第４のグループがプログラムされる。
【０１１４】
検証動作中は、読み出し電圧Ｖｒｅａｄ１３４９が、ＷＬｎ−１及び他の非選択のワードラインに印加される。上述したように、各プログラムパルス及び対応するパス電圧ごとに、ＷＬｎ上の記憶素子の一つのグループがプログラムのために選択される。記憶素子がＮＡＮＤストリング等の直列接続ストリングで配置されるとき、対応するストリング又はビットラインを選択することによって一つの記憶素子がプログラムのために選択できる。これはビットラインに０Ｖを印加することを含んでよい。同様に、例えば、接続されたドレイン側選択ゲートを非導電性にするほどに昇圧された電圧をビットラインに印加するなど、対応するストリング又はビットラインを禁止することによって、記憶素子がプログラムされることを禁止することができる。
【０１１５】
パス電圧は異なる順序で印加できることにも留意されたい。最低から最高（例えば、Ｖｐａｓｓ１、Ｖｐａｓｓ２、Ｖｐａｓｓ３、Ｖｐａｓｓ４）は一つの任意選択である。最高から最低（例えば、Ｖｐａｓｓ４、Ｖｐａｓｓ３、Ｖｐａｓｓ２、Ｖｐａｓｓ１）は別の任意選択である。他のさらに無作為化した順序も受け入れられる。したがって、一組のプログラムパルスの中で、記憶素子が選択、禁止される順序は任意に変更することができ、特定の順序に制約されない。
【０１１６】
図１３ｃは、一組の記憶素子に適用された、マルチパルスプログラム技術の第１の実施形態の適用例を示す。記憶素子のブロックは、例えば、ワードラインＷＬ０からＷＬ６３で、及び例のビットラインＢＬｉ−２、ＢＬｉ−１、ＢＬｉ、ＢＬｉ＋１及びＢＬｉ＋２で配列される。ＷＬ０からＷＬｎ−２は、ＷＬｎを基準にして、ソース側の隣接していない非選択のワードラインであり、ＷＬｎ＋２からＷＬ６３は、ＷＬｎを基準にして、ドレイン側の隣接していない非選択のワードラインである。ＷＬｎ、つまり現在選択されているワードラインは、例の記憶素子１３８０、１３８２、１３８４、１３８６及び１３８８に接続されている。ＷＬｎ−１つまりＷＬｎのソース側の隣接ワードラインは、例の記憶素子１３９０、１３９２、１３９４、１３９６及び１３９８に接続されている。記憶素子１３９０、１３９２、１３９４、１３９６及び１３９８は、それぞれ記憶素子１３８０、１３８２、１３８４、１３８６及び１３８８に直接的に隣接し、それらと同じビットライン又はＮＡＮＤストリング上にある。
【０１１７】
例として、記憶素子１３９０、１３９２、１３９４、１３９６及び１３９８が、それぞれＥ状態、Ａ状態、Ｃ状態、Ｂ状態、及びＡ状態にあると仮定する。
【０１１８】
プログラムパルスの各組の第１のプログラムパルスの間、例えばプログラムパルス１３０２、１３１２、１３２２及び１３３２の間は、ＷＬｎ−１上のＥ状態記憶素子に隣接するＷＬｎ上の記憶素子が、プログラムのために選択される。ここでは、記憶素子１３８０がプログラムのために選択される。ＢＬｉ−２は、選択されるビットラインの一つとなる。すなわち、記憶素子１３８０のプログラムが完了するまで、記憶素子１３８０は、プログラム可能なＮＡＮＤストリングを構成することによって、プログラムされることを許容する。ＷＬｎ上の他の記憶素子は、プログラムされることが禁止される。すなわち、それらは、プログラム不能なＮＡＮＤストリングを構成することによって、プログラムされることを禁止する。これらの記憶素子は、禁止された少なくとも一つのビットライン（ＢＬｉ−１、ＢＬｉ、ＢＬｉ＋１、及びＢＬｉ＋２を含む）のグループに接続される。この時点では、最も低いパス電圧Ｖｐａｓｓ１が、ＷＬｎ−１に印加される。ＷＬｎ−１記憶素子が低状態であると、低パス電圧がＶｐａｓｓ外乱を防ぐので、これは最適である。
【０１１９】
各組の第２のプログラムパルスの間、例えばプログラムパルス１３０４、１３１４、１３２４及び１３３４の間は、ＷＬｎ−１上のＡ状態の記憶素子に隣接するＷＬｎ上の記憶素子がプログラムのために選択される。ここでは、記憶素子１３８２及び１３８８がプログラムのために選択される。これらの記憶素子は、一又は複数の選択されたグループのビットライン（ＢＬｉ−１及びＢＬｉ＋２を含む）に接続される。ＷＬｎ上の他の記憶素子は、プログラムされるのが禁止される。これらの記憶素子は、禁止された一又は複数のグループのビットライン（ＢＬｉ−２、ＢＬｉ及びＢＬｉ＋１を含む）に接続される。このときに、二番目に低いパス電圧Ｖｐａｓｓ２がＷＬｎ−１に印加される。このパス電圧は、ＷＬｎ−１記憶素子の状態に応じて調整されているので、最適である。
【０１２０】
各組の第３のプログラムパルスの間、例えばプログラムパルス１３０６、１３１６、１３２６及び１３３６の間は、ＷＬｎ−１上のＢ状態の記憶素子に隣接するＷＬｎ上の記憶素子がプログラムのために選択される。ここでは、記憶素子１３８６がプログラムのために選択される。この記憶素子は、選択された一又は複数のグループのビットライン（ＢＬｉ＋１を含む）に接続されている。ＷＬｎ上の他の記憶素子は、プログラムされるのが禁止される。これらの記憶素子は、禁止された一又は複数のグループのビットライン（ＢＬｉ−２、ＢＬｉ−１、ＢＬｉ、及びＢＬｉ＋２を含む）に接続される。このとき、次に低いパス電圧Ｖｐａｓｓ３がＷＬｎ−１に印加される。
【０１２１】
各組の第４のプログラムパルスの間、例えばプログラムパルス１３０８、１３１８、１３２８及び１３３８の間は、ＷＬｎ−１上のＣ状態の記憶素子に隣接するＷＬｎ上の記憶素子がプログラムのために選択される。ここでは、記憶素子１３８４がプログラムのために選択される。この記憶素子は、選択された一又は複数のグループのビットライン（ＢＬｉを含む）に接続される。ＷＬｎ上の他の記憶素子はプログラムされるのが禁止される。これらの記憶素子は、禁止された一又は複数のグループのビットライン（ＢＬｉ−２、ＢＬｉ−１、ＢＬｉ＋１、及びＢＬｉ＋２を含む）に接続される。このとき、最高のパス電圧Ｖｐａｓｓ４がＷＬｎ−１に印加される。
【０１２２】
本例は４つのデータ状態のメモリ素子に適用されるが、追加のデータ状態との使用のために拡張できることに留意されたい。
【０１２３】
この手法は、パス電圧をＷＬｎ−１上の様々なデータ状態に応じて調整するという点で最適であるが、プログラム時間の延長を招く。別の手法では、次に説明するように、各グループに複数のデータ状態が含まれるように、ＷＬｎ−１上の記憶素子を一又は複数のグループにグループ化し、それによって一反復あたりのプログラムパルス数を削減する。
【０１２４】
図１４ａは、マルチパルスプログラム技術の第２の実施形態であって、プログラム動作中に選択されたワードラインに印加されるパルス列を示す。この手法では、下から２つの状態である状態Ｅ及びＡを一グループ化し、上から２つの状態である状態Ｂ及びＣを一グループ化する。したがって、ＷＬｎのプログラム動作に関連してＷＬｎ−１の読み出しが行われると、状態Ｅ及び状態ＡであるＷＬｎ−１上の記憶素子が一グループ化され、状態Ｂ及びＣであるＷＬｎ−１上の記憶素子が一グループ化される。この手法は、ＷＬｎ−１記憶素子の状態に応じてパス電圧の大きさを調整しながらも、効率化のために異なるパス電圧の数を削減することができる。考えられる他のグループ化も可能である。例えば、状態Ｅを一グループとし、状態Ａ、Ｂ及びＣを別の一グループとしてもよい。４つを超えるデータ状態があるとき、考えられるグループ数はさらに多くなる。例えば、８つのデータ状態Ｅ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ及びＧの場合、２つのグループを使用することができ、第１のグループは状態Ｅ及びＡを含み、第２のグループは状態Ｂ、Ｃ、Ｄ、Ｅ、Ｆ及びＧを含む、とすることができる。あるいは、３つのグループを使用してもよく、第１のグループが状態Ｅ及び状態Ａを含み、第２のグループが状態Ｂ、Ｃ、Ｄ、Ｅを含み、第３のグループが状態Ｆ及びＧを含む、とすることもできる。他の変形も考えられる。どのグループ化が最適であるのかは、メモリ素子を個別に試験して決定することができる。
【０１２５】
状態Ｅ及びＡがグループ化され、状態Ｂ及びＣがグループ化される手法では、プログラム動作の第１の反復は、２つのプログラムパルス１４０２及び１４０４と、その後に続く一又は複数の検証パルス１４０６との組を含むようにすることができる。第１のプログラムパルスは、それに隣接するＷＬｎ−１上の記憶素子がＥ又はＡ状態にあるＷＬｎ上の記憶素子をプログラムするために使用される。第２のプログラムパルスは、それに隣接するＷＬｎ−１上の記憶素子がＢ又はＣ状態にあるＷＬｎ上の記憶素子をプログラムするために使用される。同様に、プログラムパルス１４０８及び１４１０の後に検証パルス１４１２が続き、プログラムパルス１４１４及び１４１６の後に検証パルス１４１８が続き、プログラムパルス１４２０及び１４２２の後に検証パルス１４２４が続く。Ｖｐａｓｓがより高いときは、ステップダウンさせたＶｐｇｍを使用することもでき、それは点線によって示されている。
【０１２６】
図１４ｂは、図１４ａのプログラム動作中に、隣接する非選択のワードラインに印加されるパルス列を示す。図１４ｂは、図１４ａと時間的に整合されている。プログラムパルス１４０２が印加されるときは、ＶｐａｓｓＬの相対的に小さいパス電圧１４２５がＷＬｎ−１に印加される。プログラムパルス１４０４が印加されるときは、ＶｐａｓｓＨの相対的に大きいパス電圧１４２６がＷＬｎ−１に印加される。検証電圧１４０６がＷＬｎに印加されるときは、Ｖｒｅａｄ１４２７がＷＬｎ−１及び他の非選択のワードラインに印加される。パス電圧のシーケンスは、残りのプログラム反復について繰り返される。
【０１２７】
したがって、ＶｐａｓｓＬ（１４２５）がＷＬｎ−１に印加される期間では、プログラムパルス１４０２がＷＬｎに印加され、ＷＬｎ上の記憶素子のうち、それに隣接するＷＬｎ−１上の記憶素子がＥ又はＡ状態である第１のグループの記憶素子がプログラムされる。一方、隣接するＷＬｎ−１上の記憶素子がＢ又はＣ状態であるＷＬｎ上の第２のグループの記憶素子は禁止される。ＶｐａｓｓＨ（１４２６）がＷＬｎ−１に印加される期間では、プログラムパルス１４０４がＷＬｎに印加され、ＷＬｎ上の第２のグループの記憶素子がプログラムされ、一方、ＷＬｎ上の第１のグループの記憶素子は禁止される。
【０１２８】
図１４ｃは、一組の記憶素子に適用された、マルチパルスプログラム技術の第２の実施形態の適用例を示す。図１３ｃと同様に、ＷＬｎ、つまり現在選択されているワードラインは、一例として記憶素子１４８０、１４８２、１４８４、１４８６及び１４８８と接続され、ＷＬｎ−１は、一例として記憶素子１４９０、１４９２、１４９４、１４９６及び１４９８に接続されている。各プログラム反復の第１のプログラムパルス１４０２、１４０８、１４１４及び１４２０の間は、ＷＬｎ−１上のＥ又はＡ状態の記憶素子に隣接するＷＬｎ上の記憶素子が、プログラムのために選択される。ここでは、記憶素子１４８０（ＢＬｉ−２）、１４８２（ＢＬｉ−１）及び１４８８（ＢＬｉ＋２）が、プログラムのために選択される。このとき、ＷＬｎ−１にはＶｐａｓｓＬが印加される。各プログラム反復の第２のプログラムパルス１４０４、１４１０、１４１６及び１４２２の間は、ＷＬｎ−１上のＢ又はＣ状態の記憶素子に隣接するＷＬｎ上の記憶素子が、プログラムのために選択される。ここでは、記憶素子１４８４（ＢＬｉ）及び１４８６（ＢＬｉ＋１）がプログラムのために選択される。このとき、ＷＬｎ−１にはＶｐａｓｓＨが印加される。
【０１２９】
図１５は、図１３ａから図１４ｃに対応するプログラム技術を示す。ステップ１５００では、例えばメモリ素子のコントローラがホストから受信するプログラムコマンドに応じて、ＷＬｎのプログラム動作を開始する。このプログラムコマンドに応えて、ステップ１５０２では、Ｍ−１個の制御ゲート電圧を使用して、ＷＬｎ−１上の記憶素子の読み出しを行い、それらの記憶素子をＭ個（Ｍ≧２）のグループに区分する。ここで、隣接するワードライン上の記憶素子は、少なくともＭ＋１個のデータ状態によってデータを記憶できる。例えば、図１３ａでは、Ｍ＝４であり、記憶素子を４つのグループに区分するために、３つの制御ゲート電圧が使用される。図１４ａでは、Ｍ＝２であり、記憶素子を２つのグループに区分するために、一つの制御ゲート電圧が使用される。制御ゲート電圧は、検知電圧の一種であり、隣接ワードライン上の不揮発性記憶素子を、少なくとも、閾値電圧が検知電圧を下回る（つまり、検知電圧印加時に導電性ではない記憶素子）の第１のグループと、閾値電圧が検知電圧を超える不揮発性記憶素子（つまり、検知電圧印加時に導電性である記憶素子）の第２のグループとに区分するために使用される。
【０１３０】
ステップ１５０４では、ビットライン又はＮＡＮＤストリング毎に、識別したグループを一又は複数のデータラッチに記憶する。一般的に、メモリ素子では、それぞれが１ビットを記憶する複数のデータラッチが、ビットラインごとに設けられている。設計に応じて、グループ識別を記憶するために十分な数の利用可能なラッチが存在し得る。ラッチあたり１ビットとして、ビットラインあたりＫ≧１個のラッチはＫビットのデータを記憶することができ、２Ｋ＝Ｍの異なるグループの区分に用いることができる。例えば、Ｍ＝２のとき、Ｋ＝１であり、Ｍ＝４のときＫ＝２である。Ｍ＝２のとき、０ビットがＥ又はＡ状態を示し、１ビットがＢ又はＣ状態を示してよい。Ｍ＝４では、あるラッチ（ラッチ１）での０ビットと他のラッチ（ラッチ２）での０ビットとの組み合わせは、Ｅ状態を示すことができ、ラッチ１での０ビット及びラッチ２での１ビットとの組み合わせはＡ状態を示すことができ、ラッチ１での１ビット及びラッチ２での０ビットとの組み合わせはＢ状態を示すことができ、ラッチ１での１ビット及びラッチ２での１ビットとの組み合わせはＣ状態を示すことができる。
【０１３１】
ステップ１５０６では、任意であるが、図１７ａから図１７ｄを参照して以下に説明する単一パルスによるプログラム処理が使用されてもよい。この手法は、高いプログラム電圧を使用する場合に、プログラム動作期間の途中まで、マルチパルスによるプログラム技術の使用を遅らせることができる。それにより、結果として、ＷＬｎ−１上の記憶素子のデータ状態に基づいて異なるパス電圧を使用する利点を依然として保ちつつ、プログラム時間を短縮することができる。
【０１３２】
ステップ１５０８では、プログラム反復インデックスｉ、及びプログラムパルスインデックスｊが、「１」に設定される。ステップ１５１０では、プログラム動作において複数のプログラムパルスのｉ番目の反復が開始される。ステップ１５１２では、ＷＬｎ−１上の第ｊ番のグループの記憶素子に接続されたビットラインのグループが、プログラムのために選択される。一方、ビットラインの他の全てのグループは禁止される。ステップ１５１４では、一組のプログラムパルスの第ｊ番のプログラムパルスがＷＬｎに印加される。一方、ステップ１５１６では、第ｊ番のパス電圧が隣接する非選択のワードラインＷＬｎ−１に印加され、Ｖｐａｓｓが他の非選択のワードラインに印加される。決定ステップ１５１８で一組のプログラムパルスに次のプログラムパルスがある場合、ｊをステップ１５２０で増分し、ステップ１５１２、１５１４及びステップ１５１６を、ビットラインの次のグループに対して繰り返し実行する。決定ステップ１５１８で一組のプログラムパルスに次のプログラムパルスがない場合、ステップ１５２２で検証動作が実行される。決定ステップ１５２４では、プログラム動作の次の反復があり、ステップ１５２６でｉを増分し、ステップ１５１０、１５１２、１５１４及び１５１６を繰り返し実行する。決定ステップ１５２４でプログラム動作の次の反復がなければ、プログラム動作をステップ１５２８で完了する。
【０１３３】
図１６ａは、図１３ａに対応して、変化するプログラムパルスの大きさを示す。上述したように、ＷＬｎ−１でのパス電圧を小さくすると、Ｖｐｇｍをより大きくすることができる。同様に、ＷＬｎ−１及びＷＬｎ＋１でのパス電圧を大きくすると、Ｖｐｇｍをより小さくすることができる。Ｘ軸は、プログラム動作の複数のプログラム反復を示し、ｙ軸はＶｐｇｍを示す。線１６００、１６０２、１６０４及び１６０６に基づいて、所与の反復及びパス電圧に応じたＶｐｇｍを設定することができる。具体的には、Ｖｐａｓｓ１、Ｖｐａｓｓ２、Ｖｐａｓｓ３又はＶｐａｓｓ４を使用する場合、線１６００、１６０２、１６０４又は１６０６をそれぞれ使用することができる。
【０１３４】
図１６ｂは、図１４ａに対応して、変化するプログラムパルスの大きさを示す。ＶｐａｓｓＬ又はＶｐａｓｓＨを使用する場合、曲線１６１０又は１６０２をそれぞれ使用して、所与の反復に対するＶｐｇｍを設定することができる。
【０１３５】
図１６ｃは、マルチパルスによるプログラム技術の第３の実施形態で、プログラム動作中に選択されたワードラインに印加されるパルス列を示す。この例では、偶数番号のビットライン及び奇数番号のビットラインに対して、別々に検証動作が実行される。これは、奇数−偶数検知能力を有するメモリ素子にとっては有用であるが、全ビットライン検知能力にとっては有用ではない。具体的には、ＷＬｎ−１上の隣接記憶素子がＥ又はＡ状態にあるＷＬｎ上の記憶素子に対して一つのプログラムパルスが使用される例では、第１の反復では、プログラムパルス１６２２及び１６２４の後に、偶数番号付きビットラインのＷＬｎ上の記憶素子を検証するための一又は複数の検証パルス１６２６と、及び奇数番号付きビットラインのＷＬｎ上の記憶素子を検証するための一又は複数の検証パルス１６２８とが続く。以後の反復は相応して進行する。パス電圧は、Ｖｒｅａｄが検証パルスの両方の組に印加される、図１４ｂに従って印加できる。
【０１３６】
図１７ａは、マルチパルスによるプログラム技術の第４の実施形態であって、プログラム動作中に選択されたワードラインに印加されるパルス列を示す。図１５のステップ１５０６に関して説明したように、単一パルスによるプログラム処理１７１０を、複数パルスによるプログラム処理に先行して実行してもよく、それによって、ＷＬｎ−１上の記憶素子のデータ状態に基づいて異なるパス電圧を使用するという利点を維持しつつ、プログラム時間を短縮することができる。考えられる一つの実装例では、単一パルスによるプログラム処理では、ＷＬｎ−１上の記憶素子のデータ状態に関わりなく、プログラムパルス１７０２、１７０６及び１７１０によってＷＬｎ上の記憶素子を同時にプログラムする。検証パルス１６０４の一例も示す。この例では、実例として、１１番目のプログラムパルスの後にトリガ条件が満たされ、プログラムパルス１７５２及び１７５４によって、複数パルスプログラム処理１７５０の第１の反復が行われる。
【０１３７】
ＷＬｎ−１上の記憶素子の読み出しは、例えば、単一パルスによるプログラム処理の開始時に、又は複数パルスによるプログラム処理の開始時に行うことができる。複数パルスによるプログラム処理では、プログラムパルス１７５２が、ＷＬｎ−１上の隣接する記憶素子がＥ又はＡ状態にあるＷＬｎ記憶素子をプログラムし、プログラムパルス１７５４が、ＷＬｎ−１上の隣接する記憶素子がＢ又はＣ状態にあるＷＬｎ記憶素子をプログラムする。それに、一又は複数の検証パルス１７５６の組が続く。プログラムパルス１７５８及び１７６０、ならびに１７６４及び１７６６は同様に、プログラムが完了するまで以後の反復でＷＬｎに印加される。
【０１３８】
考えられる一つの手法では、複数パルスによるプログラム処理を、特定数のプログラム反復、例えば１２番目の反復に達したときに、トリガされてもよい。又は、一の適当な手法では、ＷＬｎ上での記憶素子の特定数が、ターゲット検証レベルまでプログラムされたことが検証されたときに、複数パルスによるプログラム処理をトリガすることができる。ターゲット検証レベルは、ターゲットデータ状態であってもよいし、データ状態の間の値であってもよい。例えば、Ｅ、Ａ、Ｂ及びＣ状態では、トリガ検証レベルは、Ｖｖｂ等のＢ状態の検証レベルであってよい。この場合、Ａ状態の記憶素子及びＢ状態の記憶素子がプログラムを完了すれば、複数パルスによるプログラム処理において、一つの検証パルスＶｖｃだけを使用すれば足りる。一例として、Ｂ状態の記憶素子の９０％がＶｖｂを超えたときに、複数パルスによるプログラム処理をトリガすることができる。この時点で、全てのＡ状態記憶素子については、プログラムが完了したものと仮定する。複数パルスによるプログラム処理では、Ｂ状態及びＣ状態の検証パルスが最初に使用される。Ｂ状態記憶素子の残りの１０％のプログラムが完了すれば、Ｃ状態記憶素子だけが残るので、検証パルスＶｖｃだけを使用すればよい。
【０１３９】
図１７ｂは、図１７ａに対応して、大きさの変化するプログラムパルスを示す。単一パルスによるプログラム処理では、曲線１７７０を用いることにより、プログラム反復に応じたＶｐｇｍを設定することができる。複数パルスによるプログラム処理では、ＶｐａｓｓＬがＷＬｎ−１に印加されるときについては、曲線１７７４を用いることによってプログラム反復に応じたＶｐｇｍを設定することができ、ＶｐａｓｓＨがＷＬｎ−１に印加されるときについては、曲線１７７２を用いることによって、プログラム反復に応じたＶｐｇｍを設定することができる。このように、低いパス電圧に起因する結合を補償するＶｐｇｍのステップアップと、高いパス電圧に起因する結合を補償するためのＶｐｇｍのステップダウンとを実現し、それによって実効的なプログラム電圧を安定した速度で上昇させることができる。
【０１４０】
図１７ｃは、図１７ａに対応するプログラム技術を示す。この手法では、プログラム動作の開始時にＷＬｎ−１の読み出しを行う。ステップ１７８０では、ＷＬｎに対するプログラム動作を開始する。ステップ１７８１では、Ｍ−１個の制御ゲート電圧を使用してＷＬｎ−１上の記憶素子の読み出しを行い、記憶素子及び接続されたビットライン又はＮＡＮＤストリングをＭ≧２個のグループに区分する。ステップ１７８２では、ビットライン毎に、識別したグループを一又は複数のデータラッチに記憶する。ステップ１７８３では、単一パルスによるプログラムと検証の処理を開始する。この処理の間、ステップ１７８４では、検証レベルに到達する記憶素子の数又はプログラム反復の数を追跡し、トリガ条件が満たされるかどうかを判断する。決定ステップ１７８５で、トリガ状態が満たされると、複数パルスによるプログラムと検証の処理がステップ１７８６で実行され、最終的にステップ１７８７で、プログラム動作が完了する。トリガ条件が決定ステップ１７８５で満たされないと、単一パルスによるプログラムと検証の処理のさらなる反復が実行される。
【０１４１】
図１７ｄは、図１７ａに対応する代替プログラム技術を示す。この手法では、単一パルスによるプログラムと検証の処理が完了し、トリガ条件が満たされ、複数パルスによるプログラムと検証の処理を開始する時に、ＷＬｎ−１の読み出しを行う。ステップ１７９０で、ＷＬｎに対するプログラム動作を開始する。ステップ１７９１では、単一パルスによるプログラムと検証の処理を実行する。この処理の間、ステップ１７９３では、検証レベルに達する記憶素子の数、又はプログラム反復数が追跡され、トリガ条件が満たされるかどうかを判断する。決定ステップ１７９２でトリガ条件が満たされると、ステップ１７９４では、Ｍ−１個の制御ゲート電圧を使用してＷＬｎ−１上の記憶素子を読み出し行い、記憶素子及び接続されたビットライン又はＮＡＮＤストリングをＭ≧２個のグループに区分する。決定ステップ１７９２においてトリガ条件が満たされていない場合、単一パルスによるプログラムと検証の処理のさらなる反復が実行される。ステップ１７９５では、ビットラインごとに識別したグループを一又は複数のデータラッチに記憶する。ステップ１７９６では、複数パルスによるプログラムと検証の処理を実行し、最終的にプログラム動作はステップ１７９７で完了する。
【０１４２】
図１８ａは、マルチパルスプログラム技術の第５の実施形態であって、プログラム動作中に選択されたワードラインに印加されるパルス列を示す。この手法では、偶数番号付きのビットラインが、奇数番号付きのビットラインとは別にプログラムされるが、ともに検証される。例えば、４状態の実施形態の場合、第１の反復では、隣接するＷＬｎ−１上の記憶素子がＥ又はＡ状態にある偶数番号付きビットラインのＷＬｎ記憶素子をプログラムパルス１８０２でプログラムし、かつ、それに隣接するＷＬｎ−１上の記憶素子がＢ又はＣ状態にある偶数番号付きのビットラインのＷＬｎ記憶素子をプログラムパルス１８０４でプログラムする。さらに、隣接するＷＬｎ−１上の記憶素子がＥ又はＡ状態にある奇数番号付きビットラインのＷＬｎ記憶素子をプログラムパルス１８０６によってプログラムし、隣接するＷＬｎ−１上の記憶素子がＢ又はＣ状態にある奇数番号付きビットラインのＷＬｎ記憶素子をプログラムパルス１８０８によってプログラムする。一又は複数の検証パルス１８０９が後に続く。
【０１４３】
同様に、第２の反復は、プログラムパルス１８１２、１８１４、１８１６及び１８１８と、それに続く一又は複数の検証パルス１８１９を含み、第３の反復は、プログラムパルス１８２２、１８２４、１８２６及び１８２８と、それに続く一又は複数の検証パルス１８２９を含み、第４の反復は、プログラムパルス１８３２、１８３４、１８３６及び１８３８と、それに続く一又は複数の検証パルス１８３９を含む等である。
【０１４４】
図１８ｂは、図１８ａのプログラム動作中に、隣接する非選択ワードラインに印加されるパルス列を示す。図１８ｂは、図１８ａと時間的に整合されている。プログラムパルス１８０２及び１８０６がそれぞれＷＬｎに印加されるとき、ＶｐａｓｓＬ電圧１８４２及び１８４６がＷＬｎ−１に印加される。プログラムパルス１８０４及び１８０８がそれぞれＷＬｎに印加されるときは、ＶｐａｓｓＨ電圧１８４４及び１８４８がＷＬｎ−１に印加される。検証パルス１８０９がＷＬｎに印加されるときは、Ｖｒｅａｄ１８５０がＷＬｎ−１及び他の非選択のワードラインに印加される。一組のパス電圧が、連続する反復ごとに繰り返される。
【０１４５】
図１８ｃは、一組の記憶素子に適用された、マルチパルスによるプログラム技術の第５の実施形態の適用例を示す。図１３ｃと同様に、ＷＬｎ、つまり現在選択されているワードラインは、一例として記憶素子１８８０、１８８２、１８８４、１８８６及び１８８８に接続され、ＷＬｎ−１は一例として記憶素子１８９０、１８９２、１８９４、１８９６及び１８９８と接続される。ＢＬｉ−２ｅ、ＢＬｉｅ及びＢＬｉ＋２ｅは、一例として偶数番号付きビットラインであり、ＢＬｉ−１ｏ及びＢＬｉ＋１ｏは、一例として奇数番号付きビットラインである。
【０１４６】
各プログラム反復の第１のプログラムパルス１８０２、１８１２、１８２２及び１８３２（図１８ａ）の間、ＷＬｎ−１上のＥ又はＡ状態の記憶素子に隣接する偶数番号付きビットラインのＷＬｎ上の記憶素子が、偶数ビットライン処理でプログラムのために選択される。ここでは、記憶素子１８８０及び１８８８が選択され、ＶｐａｓｓＬがＷＬｎ−１に印加される。各プログラム反復の第２のプログラムパルス１８０４、１８１４、１８２４及び１８３４の間は、ＷＬｎ−１上のＢ又はＣ状態の記憶素子に隣接する偶数番号付きビットラインのＷＬｎ上の記憶素子が、プログラムのために選択される。ここでは、ＶｐａｓｓＨがＷＬｎ−１に印加される間に、記憶素子１８８４が選択される。
【０１４７】
各プログラム反復の第３のプログラムパルス１８０６、１８１６、１８２６及び１８３６の間、ＷＬｎ−１上のＥ又はＡ状態の記憶素子に隣接する奇数番号付きビットラインのＷＬｎ上の記憶素子が、奇数ビットライン処理でプログラムのために選択される。ここでは、ＶｐａｓｓＬがＷＬｎ−１に印加される間に、記憶素子１８８２が選択される。各プログラム反復の第４のプログラムパルス１８０８、１８１８、１８２８及び１８３８の間は、ＷＬｎ−１上のＢ又はＣ状態の記憶素子に隣接する奇数番号付きビットラインのＷＬｎ上の記憶素子が、プログラムのために選択される。ここでは、ＶｐａｓｓＨがＷＬｎ−１に印加される間に、記憶素子１８８６が選択される。
【０１４８】
図１９は、図１８ａに対応するプログラム技術を示す。ステップ１９００で、ＷＬｎに対するプログラム動作が開始する。ステップ１９０２では、Ｍ−１個の制御ゲート電圧を使用してＷＬｎ−１上の記憶素子の読み出しを行い、記憶素子をＭ≧２個のグループに区分する。ステップ１９０４では、ビットライン又はＮＡＮＤストリングごとに識別したグループを一又は複数のデータラッチに記憶する。任意であるステップ１９０６では、単一パルスによるプログラム処理が実行される。ステップ１９０８では、プログラム反復インデックスｉ及びプログラムパルスインデックスｊが１に設定される。ステップ１９１０では、プログラム動作のｉ番目の複数プログラムパルス反復が開始する。ステップ１９１２では、偶数ビットラインのプログラム処理が開始する。ステップ１９１４では、グループ＝ｊのグループ識別を有する偶数番号付きビットラインを選択し、他のビットラインを禁止することが行われる。例えば、ビットラインの第１のグループ、グループ１は、ｊ＝１のときに選択される。
【０１４９】
ステップ１９１８では、一組のプログラムパルスの第ｊ番のプログラムパルスがＷＬｎに印加される。一方、ステップ１９２０では、第ｊ番のパス電圧が隣接するワードラインＷＬｎ−１に印加され、Ｖｐａｓｓが他の非選択のワードラインに印加される。決定ステップ１９２２では、現在の（偶数ビットラインの）プログラム処理が完了していない場合、ｊはステップ１９２４で増分され、ステップ１９１４、１９１８及び１９２０が繰り返される。例えば、ビットラインの第２のグループ、グループ２は、ｊ＝２のときに選択される。
【０１５０】
偶数ビットラインのプログラム処理が決定ステップ１９２２で完了すると、ステップ１９２６で奇数ビットラインのプログラム処理を開始する。決定ステップ１９２８で奇数処理がまだ完了していないと、ステップ１９３０がｊを増分し、ステップ１９１６で他のビットラインを禁止しながら、グループ＝ｊのグループ識別を有するオフ番号付きのビットラインを選択する。例えば、ビットラインの第３のグループ、グループ３は、ｊ＝３のときに選択される。ステップ１９１８及び１９２０は、説明されたように繰り返される。決定ステップ１９２２でＹＥＳとなると、奇数処理の１９２６へ続く。決定ステップ１９２８で奇数処理が完了すると、ステップ１９３２では、検証動作が偶数ビットライン及び奇数ビットライン（同時に又は別個に）に対して実行される。
【０１５１】
決定ステップ１９３４で次のプログラム反復があり、ステップ１９３６で増分される場合、ステップ１９１４、１９１８及び１９２０が繰り返される。決定ステップ１９３４で次のプログラム反復がない場合、プログラム動作はステップ１９３８で完了する。
【０１５２】
図２０ａは、マルチパルスによるプログラム技術の第６の実施形態であって、プログラム動作中に選択されたワードラインに印加されるパルス列を示す。この手法では、全ての偶数番号付きビットラインが完全にプログラムされた後に、全ての奇数番号付きビットラインが別々のプログラム処理で完全にプログラムする。これは、全てのビットライン検知機能を有さないメモリ素子にとっては有効である。第１のプログラム処理の第１の反復では、例えば、隣接するＷＬｎ−１上の記憶素子がＥ又はＡ状態にある偶数番号付きビットラインに対してＷＬｎ上の記憶素子を、プログラムパルス２００２によってプログラムする。プログラムパルス２００４は、例えば、隣接するＷＬｎ−１記憶素子がＢ又はＣ状態にある偶数番号付きビットラインに対してＷＬｎ上の記憶素子をプログラムする。偶数番号付きビットラインのための検証パルス２００６が後に続く。第１のプログラム処理の以後の反復は、偶数番号付きビットラインに接続された記憶素子がプログラムを完了するまで、同様に実行される。
【０１５３】
その後、第２のプログラム処理が奇数番号付きビットラインについて実行される。第２のプログラム処理の第１の反復では、隣接するＷＬｎ−１記憶素子が例えばＥ又はＡ状態にある奇数番号付きビットラインに対してＷＬｎ上の記憶素子を、プログラムパルス２０３２によってプログラムする。プログラムパルス２０３４は、隣接するＷＬｎ−１記憶素子が例えばＢ又はＣ状態にある奇数番号付きビットラインに対してＷＬｎ上の記憶素子をプログラムする。奇数番号付きビットラインのための検証パルス２０３６が後に続く。第２のプログラム処理のその後の反復は、奇数番号付きビットラインに接続された記憶素子がプログラムを完了するまで、同様に実行される。
【０１５４】
図２０ｂは、図２０ａに対応するプログラム技術を示す。一つの手法では、ＷＬｎ−１のための読み出し動作がプログラム動作の前に実行される。具体的には、ステップ２０８０で、ＷＬｎのためのプログラム動作を開始する。ステップ２０８２では、Ｍ−１個の制御ゲート電圧を使用してＷＬｎ−１上の記憶素子の読み出しを行い、記憶素子をＭ≧２個のグループに区分する。ステップ２０８４では、ビットライン又はＮＡＮＤストリングごとに識別されたグループを一又は複数のデータラッチに記憶する。ステップ２０８６では、偶数番号付きビットラインの記憶素子のための複数パルスによるプログラムと検証の処理が実行される。ステップ２０８８では、奇数番号付きビットラインの記憶素子のための複数パルスによるプログラムと検証の処理が実行される。プログラム動作は、ステップ２０９０で完了する。
【０１５５】
考えられる別の手法では、読み出し動作が、関連付けられるプログラム処理の直前に、偶数番号付きビットラインのために実行され、別個の読み出し動作が、関連付けられるプログラム処理の直前に奇数番号付きビットラインのために実行される。
【０１５６】
図２１ａは、マルチパルスプログラム技術の第７の実施形態において、それぞれのビットラインのためのデータラッチの使用を示す。図１５に関して上述されたように、メモリ素子では、それぞれが１ビットを記憶する複数のデータラッチが、ビットラインごとに設けられ得る。ラッチあたり１ビットで、ビットラインあたりＫ個のラッチが、Ｋビットのデータを記憶し、ビットライン及び関連付けられる記憶素子の２Ｋ＝Ｍの異なるグループを識別するために使用される。さらに、図８に関して上述したように、一又は複数のデータ状態に対して低検証レベル及び高検証レベルを使用する、二重検証プログラム技術を採用することができる。上述したように、二重検証レベルは、全てでなく、一部のプログラム状態について使用できる。例として、プログラム状態がＡ、Ｂ及びＣであるときに、二重検証レベルを、状態Ｃに採用せず、状態Ａ及びＢだけに対して採用してもよい。例えば、Ａ状態についてはＶｖａＬ及びＶｖａＨをそれぞれ低検証レベル及び高検証レベルとし、Ｂ状態についてはＶｖｂＬ及びＶｖｂＨをそれぞれ低検証レベル及び高検証レベルとする。かかる二重検証プログラム技術は、前述したマルチパルスプログラム技術の多様な実施形態と効率的に統合できる。この手法により、ラッチのハードウェアが追加的に必要となることを、回避又は最小限に抑えることができる。
【０１５７】
各ビットラインは、この例では、それぞれが１ビットを記憶する２つのラッチを有する。ラッチの第１のセット２１０１は、それぞれビットラインＢＬｉ−２、ＢＬｉ−１、ＢＬ、ＢＬｉ＋１及びＢＬｉ＋２に接続される、ラッチ２１２０、２１２２、２１２４、２１２６及び２１２１を含む。ラッチの第２のセット２１０２は、ビットラインＢＬｉ−２、ＢＬｉ−１、ＢＬ、ＢＬｉ＋１及びＢＬｉ＋２にそれぞれ接続されるラッチ２１１０、２１１２、２１１４、２１１６、及び２１１８を含む。当初、全ての０ビットがラッチに記憶される。プログラムの間、丸を付けられた「１」で表されるように、例えばＢというターゲット状態にプログラムされることが意図される記憶素子の閾値電圧Ｖｔｈがより下方の検証レベル、ＶｖｂＬ（例えば、Ｖｔｈ＞ＶｖｂＬ）を超えると、セット２１０１の対応するラッチはビット＝１に設定される。ビット＝０は、Ｖｔｈ≦ＶｖｂＬである限り、セット２１０１のラッチに留まる。
【０１５８】
その後、丸を付けられた「２」で表されるように、例えばＢというターゲット状態にプログラムされることが意図される記憶素子の閾値電圧Ｖｔｈが高い方の検証レベル、つまりＶｖｂＨを超えると（例えばＶｔｈ＞ＶｖｂＨ）、セット２１０２の対応するラッチがビット＝１に設定される。ビット＝０は、Ｖｔｈ≦ＶｖｂＨである限り、セット２１０２のラッチに留まる。全てのＢ状態記憶素子についてＶｔｈ＞ＶｖｂＨのとき、ラッチのセット２１０１のデータはもはや必要とされず、複数パルスによるプログラムと検証の処理が開始できる。つまり、高い方の検証レベルと関連付けられる状態にプログラムされるべき全ての記憶素子について、いったん高い方の検証レベルに到達すれば、低い方の検証レベルに到達したかどうかを示すビットは無視することができる。
【０１５９】
ターゲット状態にプログラムされる「全ての」記憶素子に対する参照が、無視されない全ての記憶素子を含むことを意図されることに留意されたい。例えば、１ページのデータは、６４Ｋの記憶素子に記憶される８ＫＢである場合がある。記憶素子の小さい部分は欠陥があり、物理的な欠陥、又はそれらの記憶素子に、非常にゆっくりとプログラムさせ、余分なプログラムパルスを要求する何らかの他の問題を有する。例えば、評価が、平均で、６４Ｋの記憶素子の中から３２の記憶素子に欠陥があると判断することがある。したがって、プログラム中、どのビットが良好なのか、それとも不良なのかを具体的に知ることなく、３２ビットを無視することを選んでよく、それらにプログラムすることを強制しない。いくつかの記憶素子を無視し、それらを補正するためにＥＣＣを使用する方がより効率的である。無視される記憶素子の数は、ＲＯＭヒューズに関するパラメータによって決定できる。
【０１６０】
丸が付けられた「３」によって表される処理では、ラッチのセット２１０１内のデータは、ＷＬｎ−１記憶素子のためのビットラインのグループを識別するために上書きできる（図２１ｂも参照）。例えば、ビット＝０は、状態Ｅ又はＡのＷＬｎ−１記憶素子のために設定でき、ビット＝１は状態Ｂ又はＣのＷＬｎ−１記憶素子のために設定できる。このラッチの再利用は、別のラッチのセットに対する必要性を回避する。
【０１６１】
ラッチのセット２１０１が再利用されると、それらのラッチに記憶される全ての以前のデータは失われる。二重検証レベルの対象となる全ての記憶素子が関連付けられる高い検証レベルに到達するまで、ラッチのセットを上書きしてはならないのはこのためである。例えば、全てのＢ状態の記憶素子がいったんＶｖｂＨに達し、ラッチ２１０１が処理「３」で上書きされると、記憶素子がＶｖｂＬに達したかどうかに関する情報は失われる。したがって、全てのＢ状態の記憶素子がＶｖｂＨ（その時点で、記憶素子がＶｖｂＬにも達したことは固有である）に達し、処理「３」の前に追加のプログラムからロックアウトされていることを保証しなければならない。
【０１６２】
ラッチは、Ｂ状態の記憶素子について、いつプログラムが完了したのかを決定するために制御回路によって読み出される。例えばＣ状態の記憶素子等の二重検証レベルを使用しない記憶素子の場合、低検証レベルは使用されず、したがってセット２１０１内の対応するラッチは使用されない。代わりに、セット２１０２の関連付けられるラッチは、Ｖｔｈが検証レベルＶｖｃを超えると（例えばＶｔｈ＞Ｖｖｃ）ビット＝１に設定される。それ以外の場合、Ｖｔｈ≦Ｖｖｃであると、ビット＝０である。
【０１６３】
他の実装例が考えられる。例えば、８状態メモリ素子の場合、二重検証レベルはＡ−Ｆ状態のために使用されてよく、Ｇは最高の状態である。ラッチの追加セットは、ＷＬｎ−１記憶素子のためのビットラインのグループを識別するために使用されてよい。
【０１６４】
図２１ｂは、図２１ａに対応するプログラム技術を示す。ステップ２１５０で、プログラム動作はＷＬｎのために開始する。ステップ２１５２で、低い方の検証レベル及び高い方の検証レベルが少なくとも一つのデータ状態のために使用される、単一パルスによるプログラムと検証の反復が実行される。図８の例のＢ状態等の、低い方の検証レベル及び高い方の検証レベルが使用される最高のデータ状態は、プログラム動作の複数パルスによるプログラムと検証の処理を開始するトリガ状態であってもよい。低い方の検証結果は、少なくともラッチの第１のセット２１０１に記憶され、高い方の検証結果は、少なくともラッチの第２のセット２１０２に記憶される。決定ステップ２１５４では、トリガ状態の記憶素子がまだ高い方の検証レベルに到達していない場合、ステップ２１５２において、次の単一パルスによるプログラムと検証の反復が繰り返される。決定ステップ２１５４でＹＥＳとなると、ステップ２１５６が実行される。ステップ２１５６では、Ｍ−１個の制御ゲート電圧を使用してＷＬｎ−１上の記憶素子の読み出しを行い、記憶素子をＭ≧２個だけのグループに区分する。ステップ２１５８では、ビットライン又はＮＡＮＤストリングごとに識別されたグループが、ラッチの第１のセット２１０１を含む一又は複数のデータラッチに記憶される。
【０１６５】
ステップ２１６０では、複数パルスプログラム検証反復が実行され、ここでは、少なくとも一つの残りのデータ状態について検証レベルが使用される。残りのデータ状態はＣ状態等の最高のデータ状態であってよい。検証結果は、少なくともラッチの第２のセット２１０２に記憶される。ビットラインのグループが２つしかないとき、１個のビットで各グループを識別するのに十分である（例えば、グループ１の場合、ビット＝０、及びグループ２の場合ビット＝１）。ビットラインのグループが２つより多いとき、２つ以上のラッチが必要とされる。例えば、ビットラインのグループが４つのとき、２個のビットが必要とされるため、セット２１０１及び２１０２を越えるラッチの一つの追加のセットが必要とされる。セット２１０２は、プログラムを完了するために残りの記憶素子のための検証データを記憶するために使用され、したがってビットライングループデータを記憶するには利用できない。
【０１６６】
決定ステップ２１６２では、残りの記憶素子がその検証レベルに達していない場合、ステップ２１６０において、追加の複数パルスによるプログラムと検証の反復が繰り返し実行される。ステップ２１６２でＹＥＳとなると、プログラム動作は、ステップ２１６４で完了する。残りの記憶素子は、無視されるビット数を含まない。
【０１６７】
本明細書に説明される技術の一実施形態では、一組のワードライン及び一組のビットラインに接続された一組の不揮発性記憶素子を含む、不揮発性記憶システムを動作させるための方法が提供される。この方法は、一組のワードライン内の選択された選択ワードラインに隣接する隣接ワードラインに対して、少なくとも一つの検知動作を実行することを含む。その少なくとも一つの検知動作は、隣接ワードライン上の不揮発性記憶素子をＭ≧２個のグループに区分する。記憶素子のＭ≧２個のグループは、第１及び第２のビットラインのグループを含む、前記一組のビットラインのＭ≧２個の対応するビットラインのグループに接続される。この方法は、少なくとも一つの反復を含む、プログラムシーケンスの複数の反復を実行することをさらに含む。前記少なくとも一つの反復は、（ａ）第１のビットラインのグループに接続された前記選択ワードライン上の不揮発性記憶素子をプログラムのために選択し、前記第２のビットラインのグループに接続された選択ワードライン上の不揮発性記憶素子のプログラムを禁止し、かつ隣接ワードラインに第１のパス電圧を印加しながらの、選択ワードラインへの第１のプログラムパルスの印加と、（ｂ）前記第２のビットラインのグループに接続された前記選択ワードライン上の不揮発性記憶素子をプログラムのために選択し、前記第１のビットラインのグループに接続された選択ワードライン上の不揮発性記憶素子のプログラムを禁止し、かつ隣接ワードラインに第２のパス電圧を印加しながらの、選択ワードラインへの第２のプログラムパルス（１３０４）の印加とを含む。
【０１６８】
他の実施形態では、不揮発性記憶システムは、一組の不揮発性記憶素子と、一つの選択ワードライン及びその選択ワードラインの一つの隣接ワードラインを含む、一組の不揮発性記憶素子に接続された一組のワードラインと、一組の不揮発性記憶素子に接続された一組のビットライン、並びに一組のワードライン及び一組のビットラインに接続された少なくとも一つの制御回路を含む。その少なくとも一つの制御回路は、隣接するワードラインに対して少なくとも一つの検知動作を実行する。その少なくとも一つの検知動作は、隣接ワードライン上の不揮発性記憶素子をＭ≧２個のグループに区分する。不揮発性記憶素子のＭ≧２個のグループは、少なくとも第１及び第２のビットラインのグループを含む、一組のビットラインのＭ≧２個の対応するビットラインのグループに接続される。少なくとも一つの制御回路は、プログラムシーケンスの複数の反復をさらに実行する。その少なくとも一つの反復では、少なくとも一つの制御回路が、（ｉ）前記第１のビットラインのグループに接続された前記選択ワードライン上の不揮発性記憶素子をプログラムのために選択し、前記第２のビットラインのグループに接続された選択ワードライン上の不揮発性記憶素子のプログラムを禁止し、隣接ワードラインに第１のパス電圧を印加し、かつ選択ワードラインに第１のプログラムパルスを印加し、（ｉｉ）前記第２のビットラインのグループに接続された前記選択ワードライン上の不揮発性記憶素子をプログラムのために選択し、前記第１のビットラインのグループに接続された選択ワードライン上の不揮発性記憶素子のプログラムを禁止し、隣接ワードラインに第２のパス電圧を印加し、かつ選択ワードラインに第２のプログラムパルスを印加する。
【０１６９】
他の実施形態では、一組のワードラインに接続された、直列接続された不揮発性記憶素子のストリングを含む不揮発性記憶システムを動作させるための方法が提供される。この方法は、一組のワードラインのなかの選択ワードラインに隣接する隣接ワードラインに検知電圧を印加する工程と、少なくとも、閾値電圧が検知電圧を下回る隣接ワードライン上の不揮発性記憶素子の第１のグループと、閾値電圧が検知電圧を上回る隣接ワードライン上の不揮発性記憶素子の第２のグループとを識別する工程と、第１のグループの不揮発性記憶素子を有する各ストリングと、第２のグループの不揮発性記憶素子を有する各ストリングとを識別するデータを記憶し、それによって記憶されたデータを提供する工程を含む。この方法はさらに、一つの期間内で、隣接ワードラインに第１のパス電圧を印加しつつ、その記憶されたデータに基づき、隣接ワードライン上の第１のグループの不揮発性記憶素子を有するストリング内の選択ワードライン上の不揮発性記憶素子をプログラムすることと、隣接ワードライン上の第２のグループの不揮発性記憶素子を有するストリング内の選択ワードライン上の不揮発性記憶素子のプログラムを禁止することを含む。この方法はさらに、他の一つの期間内で、隣接ワードラインに第２のパス電圧を印加しつつ、その記憶されたデータに基づき、隣接ワードライン上の第２のグループの不揮発性記憶素子を有するストリング内の選択ワードライン上の不揮発性記憶素子をプログラムすることと、隣接ワードライン上の第１のグループの不揮発性記憶素子を有するストリング内の選択ワードライン上の不揮発性記憶素子のプログラムを禁止することを含む。
【０１７０】
本明細書に示される方法を実行するための、対応する方法、システム及びコンピュータ読み出し可能な記憶装置、又はプロセッサ読み出し可能な記憶装置も提供されてよい。
【０１７１】
前記発明を実施するための形態は、図解及び説明のために提示された。それは、網羅的であること、又は開示されている正確な形式に本技術を制限することを意図していない。上記の教示を鑑みて、多くの修正及び変形が考えられる。説明された実施形態は、本技術及びその実践的な用途の原則を最もよく説明し、それによって当業者が多様な実施例において、及び意図された特定の使用に適するような多様な修正をもって本技術を最もよく活用できるようにするために選ばれた。本技術の範囲は、本明細書に添付される特許請求項の範囲により定められることが意図される。
【図１ａ．２】
0005444468.tif 000002
【図１ｂ】
0005444468.tif 000003
【図３】
0005444468.tif 000004
【図４】
0005444468.tif 000005
【図５】
0005444468.tif 000006
【図６】
0005444468.tif 000007
【図７】
0005444468.tif 000008
【図８】
0005444468.tif 000009
【図９】
0005444468.tif 000010
【図１０ａ】
0005444468.tif 000011
【図１０ｂ】
0005444468.tif 000012
【図１０ｃ】
0005444468.tif 000013
【図１１】
0005444468.tif 000014
【図１２ａ】
0005444468.tif 000015
【図１２ｂ】
0005444468.tif 000016
【図１３ａ】
0005444468.tif 000017
【図１３ｂ】
0005444468.tif 000018
【図１３ｃ】
0005444468.tif 000019
【図１４ａ】
0005444468.tif 000020
【図１４ｂ】
0005444468.tif 000021
【図１４ｃ】
0005444468.tif 000022
【図１５】
0005444468.tif 000023
【図１６ａ】
0005444468.tif 000024
【図１６ｂ】
0005444468.tif 000025
【図１６ｃ】
0005444468.tif 000026
【図１７ａ】
0005444468.tif 000027
【図１７ｂ】
0005444468.tif 000028
【図１７ｃ】
0005444468.tif 000029
【図１７ｄ】
0005444468.tif 000030
【図１８ａ】
0005444468.tif 000031
【図１８ｂ】
0005444468.tif 000032
【図１８ｃ】
0005444468.tif 000033
【図１９】
0005444468.tif 000034
【図２０ａ】
0005444468.tif 000035
【図２０ｂ】
0005444468.tif 000036
【図２１ａ】
0005444468.tif 000037
【図２１ｂ】
0005444468.tif 000038