(57)【特許請求の範囲】
【請求項１】
複数の不揮発性記憶素子と前記複数の不揮発性記憶素子に接続されている複数のワード線を有する不揮発性記憶装置を動作させる方法であって、
前記複数の不揮発性記憶素子を消去するステップ（７０２、７５２）と、
前記複数の不揮発性記憶素子の第２のグループがプログラムされていない状態にある間に、前記複数の不揮発性記憶素子の第１のグループにデータをプログラムするステップであって、前記第１のグループ内の全ての不揮発性記憶素子に対して、前記第１のグループ内の前記不揮発性記憶素子の上側または下側のいずれかのワード線のいずれの隣接不揮発性記憶素子も、プログラムされていない状態にある前記第２のグループのメンバーであるステップ（７０４）と、
前記不揮発性記憶素子の前記第２のグループがプログラムされていない状態にある間に、不揮発性記憶素子の少なくとも前記第１のグループのデータを消去するステップ（７０６、７５６）と、
前記不揮発性記憶素子の前記第２のグループの少なくとも一部をプログラムするステップであって、前記第２のグループの前記一部の全ての不揮発性記憶素子に対して、前記第２のグループの前記一部の前記不揮発性記憶素子の上側または下側のいずれかのワード線のどの隣接不揮発性記憶素子もプログラムされていない状態にあるステップ（７０８）と、
前記第２のグループの前記少なくとも一部の前記不揮発性記憶素子の上側または下側のいずれかのワード線の前記隣接不揮発性記憶素子がプログラムされていない状態にある間に、不揮発性記憶素子の前記第２のグループの前記少なくとも一部のデータを消去するステップ（７１０）、
を備え、
前記第１のグループは、前記複数のワード線の偶数ワード線に接続されている不揮発性記憶素子であり、前記第２のグループは、前記複数のワード線の奇数ワード線に接続されている不揮発性記憶素子であり、
不揮発性記憶素子の前記第２のグループがプログラムされていない状態にある間に、不揮発性記憶素子の前記第１のグループのデータを消去する前記ステップが、
１つまたは複数の消去パルスを前記複数の不揮発性記憶素子に印加するステップと、
前記１つまたは複数の消去パルスを印加している間に第１の電圧を前記奇数ワード線に印加するステップと、
前記１つまたは複数の消去パルスを印加している間に第２の電圧を前記偶数ワード線に印加するステップであって、前記第１の電圧が前記第２の電圧よりも高いステップ、
を含む方法。
【請求項２】
前記複数の不揮発性記憶素子は、不揮発性記憶素子当たり１ビットのデータが保存されるブロックの一部であり、前記不揮発性記憶装置は、不揮発性記憶素子当たり複数ビットのデータが保存される不揮発性記憶素子のマルチレベルブロックをさらに備える請求項１に記載の方法。
【請求項３】
関連する不揮発性記憶素子の前記第２のグループがプログラムされていない状態にある間に、不揮発性記憶素子の前記第１のグループにプログラムされたデータを前記マルチレベルブロックの１つまたは複数に転送するステップと、
前記第２のグループの前記少なくとも一部の前記不揮発性記憶素子の上側または下側のいずれかのワード線の前記隣接不揮発性記憶素子がプログラムされていない状態にある間に、不揮発性記憶素子の前記第２のグループの前記少なくとも一部にプログラムされたデータを前記マルチレベルブロックの１つまたは複数に転送するステップ、
をさらに備える請求項２に記載の方法。
【請求項４】
前記第２のグループの前記少なくとも一部は、前記第２のグループの全体である請求項１〜３のいずれかに記載の方法。
【請求項５】
不揮発性記憶素子の前記第２のグループがプログラムされていない状態にある間に、不揮発性記憶素子の前記第１のグループのデータを消去する前記ステップが、前記奇数ワード線に接続されている前記不揮発性記憶素子を消去せずに前記偶数ワード線に接続されている前記不揮発性記憶素子の選択的消去を実施するステップを含む請求項４に記載の方法。
【請求項６】
前記奇数ワード線に接続されている前記不揮発性記憶素子を消去せずに前記偶数ワード線に接続されている前記不揮発性記憶素子の選択的消去を実施する前記ステップが、前記奇数ワード線の消去検証を実施せずに前記偶数ワード線の消去検証を実施するステップを含む請求項５に記載の方法。
【請求項７】
前記１つまたは複数の消去パルスを印加している間に第２の電圧を前記偶数ワード線に印加する前記ステップは、前記偶数ワード線に接続されている前記不揮発性記憶素子のトンネル酸化層に強力な電場を生成し、前記１つまたは複数の消去パルスを印加している間に第１の電圧を前記奇数ワード線に印加する前記ステップは、前記奇数ワード線に接続されている前記不揮発性記憶素子のトンネル酸化層により弱い電場を生成する請求項１に記載の方法。
【請求項８】
不揮発性記憶素子の前記第２のグループがプログラムされていない状態にある間に、不揮発性記憶素子の前記第１のグループのデータを消去する前記ステップが、
読み出し電圧を前記奇数ワード線に印加するステップと、
前記読み出し電圧よりも低い電圧を前記偶数ワード線に印加するステップと、
前記複数の不揮発性記憶素子の中の不揮発性記憶素子の第１のサブセットに接続されているビット線の状態を検出するステップと、
前記状態に基づいて不揮発性記憶素子の前記第１のサブセットが消去されているかどうかを判断するステップ、
によって消去検証を実施するステップを含む請求項７に記載の方法。
【請求項９】
複数の不揮発性記憶素子（２００）と、
不揮発性記憶素子のグループに接続されている複数のワード線（ＷＬ０、ＷＬ１、ＷＬ２．．．）と、
前記不揮発性記憶素子と通信する１つまたは複数の管理回路（２２０、２２２、２２４、２２６、２３０、２４０、２４２、２４４）を備えており、
前記１つまたは複数の管理回路は、
前記不揮発性記憶素子を消去するステップを実施し、
前記１つまたは複数の管理回路は、前記複数の不揮発性記憶素子の第２グループがプログラムされていない状態にある間に、前記複数の不揮発性記憶素子の第１のグループにデータをプログラムし、前記第１のグループ内の全ての不揮発性記憶素子に対して、前記第１のグループ内の前記不揮発性記憶素子の上側または下側のいずれかのワード線のいずれの隣接不揮発性記憶素子も、プログラムされていない状態にある第２のグループのメンバーであるステップを実施し、
前記１つまたは複数の管理回路は、不揮発性記憶素子の前記第２のグループがプログラムされていない状態にある間に、不揮発性記憶素子の前記第１のグループのデータを消去するステップを実施し、
前記１つまたは複数の管理回路は、前記不揮発性記憶素子の前記第２のグループの少なくとも一部をプログラムし、前記第２のグループの前記一部における全ての不揮発性記憶素子に対して、前記第２のグループの前記一部における不揮発性記憶素子の上側または下側のいずれかのワード線のいずれの隣接不揮発性記憶素子もプログラムされていない状態にあるステップを実施し、
前記１つまたは複数の管理回路は、前記第２のグループの前記少なくとも一部における前記不揮発性記憶素子の上側または下側のいずれかのワード線の前記隣接不揮発性記憶素子がプログラムされていない状態にある間に、不揮発性記憶素子の前記第２のグループの前記少なくとも一部におけるデータを消去するステップを実施し、
前記第１のグループは、前記複数のワード線の偶数ワード線に接続されている不揮発性記憶素子であり、前記第２のグループは、前記複数のワード線の奇数ワード線に接続されている不揮発性記憶素子であり、
不揮発性記憶素子の前記第２のグループがプログラムされていない状態にある間に、不揮発性記憶素子の前記第１のグループのデータを消去する前記ステップが、
１つまたは複数の消去パルスを前記複数の不揮発性記憶素子に印加するステップと、
前記１つまたは複数の消去パルスを印加している間に第１の電圧を前記奇数ワード線に印加するステップと、
前記１つまたは複数の消去パルスを印加している間に第２の電圧を前記偶数ワード線に印加するステップであって、前記第１の電圧が前記第２の電圧よりも高いステップ、
を含む不揮発性記憶デバイス。
【請求項１０】
前記複数の不揮発性記憶素子は、不揮発性記憶素子当たり１ビットのデータが保存されるブロックの一部であり、前記不揮発性記憶デバイスは、不揮発性記憶素子当たり複数ビットのデータが保存される不揮発性記憶素子のマルチレベルブロックをさらに含む請求項９に記載の不揮発性記憶デバイス。
【請求項１１】
前記１つまたは複数の管理回路は、関連する不揮発性記憶素子の前記第２のグループがプログラムされていない状態にある間に、関連する不揮発性記憶素子の前記第１のグループにプログラムされたデータを前記マルチレベルブロックの１つまたは複数に転送し、前記１つまたは複数の管理回路は、前記第２のグループの前記少なくとも一部における前記不揮発性記憶素子の上側または下側のいずれかのワード線の前記隣接不揮発性記憶素子がプログラムされていない状態にある間に、不揮発性記憶素子の前記第２のグループの前記少なくとも一部にプログラムされたデータを前記マルチレベルブロックの１つまたは複数に転送する請求項１０に記載の不揮発性記憶デバイス。
【請求項１２】
複数のワード線に接続されている複数の不揮発性記憶素子を消去する手段と、
前記複数の不揮発性記憶素子の第２のグループがプログラムされていない状態にある間に、前記複数の不揮発性記憶素子の第１のグループのデータをプログラムする手段であって、ここで、前記第１のグループ内の全ての不揮発性記憶素子に対して、前記第１のグループの前記不揮発性記憶素子の上側または下側のいずれかのワード線のいずれの隣接不揮発性素子も、プログラムされていない状態にある前記第２のグループのメンバーであることを特徴とする手段と、
不揮発性記憶素子の前記第２のグループがプログラムされていない状態にある間に、不揮発性記憶素子の少なくとも前記第１のグループのデータを消去する手段と、
前記不揮発性記憶素子の前記第２のグループの少なくとも一部をプログラムする手段であって、ここで、前記第２のグループの前記一部における全ての不揮発性記憶素子に対して、前記第２のグループの前記一部における前記不揮発性記憶素子の上側または下側のいずれかのワード線のいずれの隣接不揮発性記憶素子もプログラムされていない状態にあることを特徴とする手段と、
前記第２のグループの前記少なくとも一部における前記不揮発性記憶素子の上側または下側のいずれかのワード線の前記隣接不揮発性記憶素子がプログラムされていない状態にある間に、不揮発性記憶素子の前記第２のグループの前記少なくとも一部のデータを消去する手段、
を備え、
前記第１のグループは、前記複数のワード線の偶数ワード線に接続されている不揮発性記憶素子であり、前記第２のグループは、前記複数のワード線の奇数ワード線に接続されている不揮発性記憶素子であり、
不揮発性記憶素子の前記第２のグループがプログラムされていない状態にある間に、不揮発性記憶素子の少なくとも前記第１のグループのデータを消去する前記手段が、
１つまたは複数の消去パルスを前記複数の不揮発性記憶素子に印加するステップと、
前記１つまたは複数の消去パルスを印加している間に第１の電圧を前記奇数ワード線に印加するステップと、
前記１つまたは複数の消去パルスを印加している間に第２の電圧を前記偶数ワード線に印加するステップであって、前記第１の電圧が前記第２の電圧よりも高いステップ、
を実行する不揮発性記憶デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリに関する。
【背景技術】
【０００２】
半導体メモリは、様々な電子デバイスにおいてますます広く使用されるようになっている。たとえば、不揮発性半導体メモリは、携帯電話、ディジタルカメラ、携帯情報端末、モバイル・コンピューティング・デバイス、非モバイル・コンピューティング・デバイスなどのデバイスにおいて使用される。電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）およびフラッシュメモリは、不揮発性半導体メモリの中で最もよく使用されるものの１つである。ＥＥＰＲＯＭの一種でもあるフラッシュメモリの場合、全メモリアレイ、またはメモリの一部の内容は、従来のフル機能のＥＥＰＲＯＭとは対照的に１ステップで消去され得る。
【０００３】
従来のＥＥＰＲＯＭおよびフラッシュメモリでは、いずれも、半導体基板のチャネル領域上に配置されているとともにチャネル領域から絶縁されているフローティングゲートが利用される。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。制御ゲートは、フローティングゲート上に設けられており、フローティングゲートから絶縁されている。このように形成されたトランジスタの閾値電圧（ＶＴＨ）は、フローティングゲートに保持される電荷の量によって制御される。すなわち、トランジスタがそのソースとドレインの間の導通を可能にするためにターンオンされる前に制御ゲートに印加されなければならない最小量の電圧が、フローティングゲートの電荷のレベルによって制御される。
【０００４】
一部のＥＥＰＲＯＭおよびフラッシュメモリデバイスは、２つの範囲の電荷を保存するために使用されるフローティングゲートを有し、したがって、メモリ素子は、２つの状態、たとえば、消去状態とプログラム状態の間でプログラム／消去されうる。典型的には、第１の電圧範囲内の閾値電圧を有するメモリセルは消去状態にあるものと考えられ、第２の電圧範囲内にある閾値電圧を有するメモリセルはプログラム状態にあるものと考えられる。典型的には、第１の範囲と第２の範囲の間にはウィンドウがある。このようなフラッシュメモリデバイスは、各メモリ素子が１ビットのデータを保存し得るため、バイナリ・フラッシュメモリデバイスと呼ばれることもある。
【０００５】
マルチ状態（別名マルチレベル）フラッシュメモリデバイスは、複数の明確な許容／有効プログラム閾値電圧範囲を識別することによって実現される。明確な各閾値電圧範囲は、メモリデバイスで符号化されるデータビットのセットに対する所定値に対応する。たとえば、素子が４つの明確な閾値電圧範囲に対応する４つの離散電荷帯の１つに置かれうるとき、各メモリ素子は２ビットのデータを保存しうる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一部のフラッシュメモリデバイスは、バイナリおよびマルチ状態の両方として動作する。たとえば、一部のメモリセルは１ビットのデータ（「単一レベルセルまたはＳＬＣブロック」）を保存するために使用され、他のメモリセルは、セル当たり複数ビット（「マルチレベルセルまたはＭＬＣブロック」）を保存するために使用される。一部のデバイスの場合、ＳＬＣブロックおよびＭＬＳブロックは、同じ集積回路の一部であり、同じメモリアレイの一部である場合もある。ＳＬＣブロックは短期間のデータ保存に使用され、ＭＬＣブロックは長期間のデータ保存に使用され得る。換言すると、ＳＬＣブロックはキャッシュと同じように使用され得る。それゆえ、ＳＬＣブロックは、デバイスの寿命の間に、ＭＬＣブロックよりもはるかに多くの回数、プログラム／消去され得る。したがって、書込み／消去耐性は、ＭＬＣブロックよりもＳＬＣブロックに対してより深刻な問題となり得る。
【０００７】
一部のメモリアレイの場合、アレイは、多数の並列ワード線およびワード線に対して垂直に延びる多数のビット線として配列される。各メモリセルは、１本のワード線と１本のビット線とに接続され得る。ある状況では、メモリセルは、隣接ワード線および／または隣接ビット線上の隣接メモリセルのフローティングゲートに保存された電荷によって影響されうる。
【０００８】
隣接フローティングゲートに保存された電荷に起因する電場の結合により、メモリセルのフローティングゲートに保存された見かけの電荷シフトが起こりうる。この現象は米国特許第５，８６７，４２９号明細書に記載されており、その全体が参照によって本明細書に援用される。問題は、異なる時刻にプログラムされた隣接メモリセルのセットの間で最も顕著に起こる。たとえば、第１のメモリセルは、データのセットに対応するそのフローティングゲートに、あるレベルの電荷を加えるようにプログラムされる。その後、１つまたは複数の隣接メモリセルは、データの第２のセットに対応するそれらのフローティングゲートに、あるレベルの電荷を加えるようにプログラムされる。１つまたは複数の隣接メモリセルがプログラムされた後に、第１のメモリセルに結合されている隣接メモリセルの電荷の影響により、第１のメモリセルから読み出される電荷レベルは、プログラムされたレベルとは異なるようになる。隣接メモリセルからの結合は、読み出されている見かけの電荷レベルを、保存されたデータの誤読出しを引き起こすのに十分な量をシフトする可能性がある。本明細書では、この隣接フローティングゲート間の効果を、一種の「隣接フローティングゲート電荷結合効果」と呼ぶことがある。
【０００９】
また、隣接フローティングゲートの電荷は、メモリセルのフローティングゲート下の基板内の導電性チャネルと干渉し得る。特に、隣接フローティングゲートの電荷は、別のメモリセルのチャネルに流れる電流の強さに影響を与える可能性がある。それゆえ、隣接フローティングゲートに保存された電荷が変化すると、チャネルに同じ電流を生成するのに他のメモリセルの制御ゲートにより大きい（または、より小さい）電圧を必要とする場合がある。最終的な影響は、メモリセルに保存される電荷の量が、隣接フローティングゲートに保存される電荷の変化によって異なるように見えることである。この問題は、異なる時刻にプログラムされた隣接メモリセルのセットの間で最も顕著である。本明細書では、チャネル効果に対するこの隣接フローティングゲートを、別のタイプの「隣接フローティングゲート電荷結合効果」と呼ぶことがある。
【００１０】
メモリセルに関する別の問題は、時間とともに電荷がフローティングゲートの近くの誘電体に蓄積しうることである。たとえば、メモリセルをプログラムするとき、電荷がメモリセルのフローティングゲートの下のトンネル酸化層にトラップされ得る。メモリセルを消去しても、トラップされた電荷は完全に除去されない場合がある。各プログラム／消去サイクルでは、トラップされる電荷の量が増加する。
【００１１】
メモリセルのサイズが縮小するのに伴うメモリセル間の空間の減少によって、隣接するフローティングゲート電荷結合効果が増す。プログラム／消去サイクル数が増加するにつれて、隣接フローティングゲートの周りの電荷トラップが、フローティングゲート電荷結合効果を悪化させる。多くのプログラム／消去サイクルを受けるメモリセルの場合、大きい隣接フローティングゲート電荷結合効果は、閾値電圧範囲間の差を大幅に縮小する。たとえば、「１」と「０」を表す閾値電圧の範囲間のギャップが減少する。信頼性を保証し読出し誤差を回避するために、「１」状態と「０」状態の間に一定量の閾値電圧分離があるべきである。
【課題を解決するための手段】
【００１２】
本明細書では、高いプログラム／消去サイクル耐性を実現するようにメモリアレイをプログラムする技術を開示する。技術は、ワード線間のフローティングゲート電荷結合効果を軽減し、これによってメモリセルの耐性を強化し得る。技術は、ビット線間のフローティングゲート電荷結合効果を軽減し、これによってメモリセルの耐性を強化し得る。技術は、閾値電圧分布状態間の広いウィンドウを提供する。一部の態様では、技術は、ＭＬＣブロックも含むメモリアレイのＳＬＣブロックに適用される。
【図面の簡単な説明】
【００１３】
【図１】ＮＡＮＤストリングの平面図である。
【図２】接続するワード線を有する３つのＮＡＮＤストリングの回路図である。
【図３】ＮＡＮＤフラッシュ記憶素子のアレイのブロック図である。
【図４】メモリアレイの一実施形態を示すブロック図である。
【図５】センスブロックの一実施形態を示すブロック図である。
【図６Ａ】閾値電圧分布例を示す。
【図６Ｂ】閾値電圧分布例を示す。
【図６Ｃ】閾値電圧分布例を示す。
【図７Ａ】メモリアレイにおけるメモリセルのブロックをプログラムするプロセスの一実施形態を示す。
【図７Ｂ】メモリアレイにおけるメモリセルのブロックをプログラムするプロセスの別の実施形態を示す。
【図８Ａ】奇数および偶数ワード線のメモリセルをプログラムした後に得られるパターン例を示す。
【図８Ｂ】奇数および偶数ワード線のメモリセルをプログラムした後に得られるパターン例を示す。
【図９Ａ】ＳＬＣおよびＭＬＣブロックをプログラムするプロセスの一実施形態を示す。
【図９Ｂ】ＳＬＣおよびＭＬＣブロックをプログラムするプロセスの別の実施形態を示す。
【図１０】チェックボードパターンでメモリアレイにおけるメモリセルのブロックをプログラムするプロセスのフローチャートの一実施形態を示す。
【図１１Ａ】奇数および偶数ワード線のメモリセルをプログラムした後に得られるチェッカーボードパターン例を示す。
【図１１Ｂ】奇数および偶数ワード線のメモリセルをプログラムした後に得られるチェッカーボードパターン例を示す。
【図１２】チェッカーボードパターンを用いてＳＬＣおよびＭＬＣブロックをプログラムするプロセスの一実施形態を示す。
【図１３】メモリセルのプログラミングの詳細を説明するフローチャートである。
【図１４】メモリセルの消去の詳細を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
一態様では、ブロック内の一定の選択されたワード線（ＷＬ）のみがプログラムされる。他のＷＬは、消去された（プログラムされていない）状態にある。このため、ＷＬ−ＷＬフローティングゲート電荷結合効果が減少または除去される。最初に、メモリセルのグループ全体（たとえば、ブロック）が消去されてもよい。ＷＬがプログラムされると、両方の隣接ＷＬ（ＷＬｎ−１およびＷＬｎ＋１）がプログラムされずに消去された状態のままになる。この例では、「ｎ」は偶数、または、奇数であってもよい。例として、偶数ワード線のみがプログラムされる。偶数ワード線のすべてがプログラムされた後でデータブロックを新しいデータでプログラムしなければならないとき、ブロックは消去される。なお、ブロックを消去すると、奇数ＷＬのメモリセルは消去される必要がなくなり、奇数ＷＬのメモリセルへのストレスが減少する。その後に、奇数ＷＬのみがプログラムされる。
【００１５】
一態様では、ＳＬＣブロックおよびＭＬＣブロックを有するメモリアレイを作動させる。一態様では、以前の段落で議論した奇数／偶数プログラミングが、ＳＬＣブロックに適用される。たとえば、複数のＳＬＣブロックにおける偶数ＷＬのメモリセルがデータでプログラムされた後に、データは、１つまたは複数のＭＬＣブロックに転送される。この後、ＳＬＣブロックは消去され、ＳＬＣブロックの奇数ワード線がプログラムされてもよい。
【００１６】
一態様では、ブロックまたは他のユニットのプログラミングが、チェッカーボードパターンで実施される。たとえば、偶数ＷＬでは偶数メモリセルのみがプログラムされ、奇数ＷＬでは奇数メモリセルのみがプログラムされる。後で、新しいデータをブロックに保存する必要があるときに、偶数ＷＬでは奇数メモリセルのみがプログラムされ、奇数ＷＬでは偶数メモリセルのみがプログラムされるように、チェッカーボードパターンが反転される。このプログラミング方式では、ビット線間フローティングゲート電荷結合効果だけでなく、両ＷＬ間フローティングゲート電荷結合効果も低減または除去され得る。
【００１７】
一態様では、以前の段落で議論したチェッカーボードパターンプログラミングが、ＳＬＣブロックに適用される。たとえば、複数のＳＬＣブロックがチェッカーボードパターンを用いてプログラムされた後に、データは、１つまたは複数のＭＬＣブロックに転送される。この後、ＳＬＣブロックは消去され、ＳＬＣブロックをプログラムするためにチェッカーボードパターンの反転が使用されてもよい。
【００１８】
本明細書に記載する技術は、広範なメモリアレイに適用可能である。以下はＮＡＮＤアーキテクチャの一例である。しかしながら、本明細書に記載する技術は、この例に限定されない。フラッシュメモリシステムの一例ではＮＡＮＤ構造が採用され、これは２つの選択ゲートの間に直列に複数のフローティングゲートトランジスタの配列を含む。直列のトランジスタおよび選択ゲートは、ＮＡＮＤストリングと呼ばれる。図１は、１つのＮＡＮＤストリングを示す平面図である。図１に示したＮＡＮＤストリングは、直列の４つのトランジスタ１００、１０２、１０４、および１０６を含み、第１の（またはドレイン側）選択ゲート１２０と第２の（またはソース側）選択ゲート１２２の間に挟まれている。選択ゲート１２０は、ビット線コンタクト１２６を介して、ＮＡＮＤストリングをビット線に接続する。選択ゲート１２２は、ＮＡＮＤストリングをソース線１２８に接続する。選択ゲート１２０は、適切な電圧を選択線ＳＧＤに印加することによって制御される。選択ゲート１２２は、適切な電圧を選択線ＳＧＳに印加することによって制御される。トランジスタ１００、１０２、１０４、および１０６の各々は、制御ゲートおよびフローティングゲートを有する。たとえば、トランジスタ１００は、制御ゲート１００ＣＧおよびフローティングゲート１００ＦＧを有する。トランジスタ１０２は、制御ゲート１０２ＣＧおよびフローティングゲート１０２ＦＧを含む。トランジスタ１０４は、制御ゲート１０４ＣＧおよびフローティングゲート１０４ＦＧを含む。トランジスタ１０６は、制御ゲート１０６ＣＧおよびフローティングゲート１０６ＦＧを含む。制御ゲート１００ＣＧはワード線ＷＬ３に接続されており、制御ゲート１０２ＣＧはワード線ＷＬ２に接続されており、制御ゲート１０４ＣＧはワード線ＷＬ１に接続されており、制御ゲート１０６ＣＧはワード線ＷＬ０に接続されている。
【００１９】
ＮＡＮＤ構造を採用するフラッシュメモリシステムの典型的なアーキテクチャは、多くのＮＡＮＤストリングを含む。各ＮＡＮＤストリングは、選択線ＳＧＳによって制御されるそのソース選択ゲートによってソース線に接続されており、選択線ＳＧＤによって制御されるそのドレイン選択ゲートによってその関連ビット線に接続されている。各ビット線と、ビット線コンタクトを介してそのビット線に接続されているそれぞれのＮＡＮＤストリングは、メモリセルのアレイの列を備える。ビット線は、複数のＮＡＮＤストリングと共有される。一般的に、ビット線は、ＮＡＮＤストリングの上部を、ワード線に垂直な方向に延び、１つまたは複数のセンスアンプに接続されている。
【００２０】
図２は、さらに多くのＮＡＮＤストリングを有するメモリアレイの３つのＮＡＮＤストリング３０２、３０４、および３０６を示す。図２のＮＡＮＤストリングの各々は、２つの選択トランジスタと４つのメモリセルを含む。たとえば、ＮＡＮＤストリング３０２は、選択トランジスタ３２０および３３０とメモリセル３２２、３２４、３２６、および３２８とを含む。ＮＡＮＤストリング３０４は、選択トランジスタ３４０および３５０とメモリセル３４２、３４４、３４６、および３４８とを含む。各ＮＡＮＤストリングは、その選択トランジスタ（たとえば、選択トランジスタ３３０および選択トランジスタ３５０）によってソース線に接続されている。選択線ＳＧＳは、ソース側選択ゲートを制御するために使用される。様々なＮＡＮＤストリングが、選択トランジスタ３２０、３４０などによってそれぞれのビット線に接続されており、これらのトランジスタは選択線ＳＧＤによって制御される。他の実施形態では、選択線は共通であることを必ずしも必要としない。ワード線ＷＬ３は、メモリセル３２２およびメモリセル３４２の制御ゲートに接続されている。ワード線ＷＬ２は、メモリセル３２４、メモリセル３４４、およびメモリセル３５２の制御ゲートに接続されている。ワード線ＷＬ１は、メモリセル３２６およびメモリセル３４６の制御ゲートに接続されている。ワード線ＷＬ０は、メモリセル３２８およびメモリセル３４８の制御ゲートに接続されている。図から分かるように、各ビット線およびそれぞれのＮＡＮＤストリングは、メモリセルのアレイの列を備える。ワード線（ＷＬ３、ＷＬ２、ＷＬ１、およびＷＬ０）は、アレイの行を備える。
【００２１】
なお、ＮＡＮＤストリングは、図２に示すメモリセルよりも少ないかまたは多いメモリセルを有しうる。たとえば、一部のＮＡＮＤストリングは、８メモリセル、１６メモリセル、３２メモリセル、６４メモリセル、１２８メモリセルなどを含む。本明細書の議論は、ＮＡＮＤストリングにおける特定数のメモリセルに限定されない。さらに、ワード線は、図２に示すメモリセルよりも多いかまたは少ないメモリセルを有しうる。たとえば、ワード線は、千個または数万個のメモリセルを含みうる。本明細書の議論は、ワード線における特定数のメモリセルに限定されない。
【００２２】
各メモリセルは、データ（アナログまたはディジタル）を保存しうる。１ビットのディジタルデータを保存するとき、メモリセルの可能な閾値電圧の範囲は、論理データ「１」および「０」を割り当てられる２つの範囲に分割される。ＮＡＮＤ型フラッシュメモリの一例では、メモリセルが消去された後の閾値電圧は、負であり、論理「１」として定義される。プログラミング後の閾値電圧は、正であり、論理「０」として定義される。閾値電圧が負であり、かつ制御ゲートに０Ｖを印加することによって読出しが試行されると、メモリセルはターンオンして論理１が保存されていることを示す。閾値電圧が正であり、かつ読出し動作が制御ゲートに０Ｖを印加することによって試行されると、メモリセルはターンオンせず、これは論理ゼロが保存されていることを示す。
【００２３】
複数レベルのデータを保存する場合、可能な閾値電圧の範囲は、データのレベル数に分割される。たとえば、４つのレベルの情報（２ビットのデータ）が保存される場合、データ値「１１」、「１０」、「０１」、「００」に割り当てられた４つの閾値電圧範囲があることになる。ＮＡＮＤ型メモリの一例では、消去動作後の閾値電圧は負であり「１１」として定義される。正の閾値電圧は、「１０」、「０１」、および「００」のデータ状態に使用される。８つのレベルの情報（状態）が保存される場合（たとえば、３ビットのデータに対して）、データ値「０００」、「００１」、「０１０」、「０１１」、「１００」、「１０１」、「１１０」、および「１１１」に割り当てられた８つの閾値電圧範囲がある。
【００２４】
メモリセルにプログラムされたデータとセルの閾値電圧との間の具体的な関係は、セルのために採用されたデータ符号化方式に依存する。たとえば、米国特許第６，２２２，７６２号明細書および米国特許出願公開第２００４／０２５５０９０号明細書は、いずれも、その全体が参照によって本明細書に援用され、これらにはマルチ状態フラッシュメモリセルの様々なデータ符号化方式が記載されている。一実施形態では、フローティングゲートの閾値電圧が誤ってその隣接する物理的状態にシフトする場合に１ビットのみが影響を受けるように、データ値はグレーコード割当を用いて閾値電圧範囲に割り当てられる。一部の実施形態では、データ符号化方式は個々のワード線に対して変更されてもよく、データ符号化方式は経時的に変更されてもよく、または、ランダムワード線のデータビットが反転されるか、もしくはデータパターン感度を下げメモリセルでさらに長持ちするように別の方法でランダム化されてもよい。
【００２５】
ＮＡＮＤ型フラッシュメモリとこれらの動作に関連する例は、以下の米国特許／特許出願で提供され、それらのすべては参照によって本明細書で援用される。すなわち、米国特許第５，５７０，３１５号明細書、米国特許第５，７７４，３９７号明細書、米国特許第６，０４６，９３５号明細書、米国特許第６，４５６，５２８号明細書、および米国特許公開第ＵＳ２００３／０００２３４８号明細書である。また、本明細書の議論は、他のタイプの不揮発性メモリだけでなくＮＡＮＤに加えて他のタイプのフラッシュメモリにも適用されうる。たとえば、米国特許第５，０９５，３４４号明細書、米国特許第５，１７２，３３８号明細書、米国特許第５，８９０，１９２号明細書、および米国特許第６，１５１，２４８号明細書には、ＮＯＲ型フラッシュメモリが記載されており、その全体が参照によって本明細書で援用される。
【００２６】
ＮＡＮＤフラッシュメモリに加えて、他のタイプの不揮発性記憶デバイスも使用されうる。たとえば、いわゆるＴＡＮＯＳ構造（シリコン基板上のＴａＮ−Ａｌ２Ｏ３−ＳｉＮ−ＳｉＯ２の積層からなる）は、基本的に、窒化物層（フローティングゲートの代わり）における電荷のトラッピングを用いるメモリセルであり、本発明でも採用されうる。フラッシュＥＥＰＲＯＭシステムにおいて有用な別のタイプのメモリセルでは、電荷を不揮発的に保存するために導電性フローティングゲートの代わりに非導電性誘電体材料が利用される。このようなセルは、Ｃｈａｎ  ｅｔ  ａｌ．，“Ａ  Ｔｒｕｅ  Ｓｉｎｇｌｅ−Ｔｒａｎｓｉｓｔｏｒ  Ｏｘｉｄｅ−Ｎｉｔｒｉｄｅ−Ｏｘｉｄｅ  ＥＥＰＲＯＭ  Ｄｅｖｉｃｅ，”ＩＥＥＥ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｌｅｔｔｅｒｓ，Ｖｏｌ．ＥＤＬ−８，Ｎｏ．３，Ｍａｒｃｈ  １９８７，ｐｐ．９３−９５に記載されている。酸化ケイ素−窒化ケイ素−酸化ケイ素（「ＯＮＯ」）から形成される３層誘電体が、導電性制御ゲートとメモリセルチャネル上方の半導電性基板の表面との間に挟まれる。セルは、セルチャネルから窒素の中に電子を注入することによってプログラムされ、ここで電子は限られた領域にトラップされて保存される。この保存された電荷は、この後、検出可能な方法でセルのチャネルの一部の閾値電圧を変える。メモリセルは、ホットホールを窒素の中に注入することによって消去される。Ｎｏｚａｋｉ  ｅｔ  ａｌ．，“Ａ  １−Ｍｂ  ＥＥＰＲＯＭ  ｗｉｔｈ  ＭＯＮＯＳ  Ｍｅｍｏｒｙ  Ｃｅｌｌ  ｆｏｒ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ  Ｄｉｓｋ  Ａｐｐｌｉｃａｔｉｏｎ，”ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ，Ｖｏｌ．２６，Ｎｏ．４，Ａｐｒｉｌ  １９９１，ｐｐ．４９７−５０１も参照すべきであり、ここには、ドープされたポリシリコンゲートが単独の選択トランジスタを形成するためにメモリセルチャネルの一部に広がるスプリットゲート構成の同様のメモリセルが記載されている。前述の２つの論文は、その全体が参照によって本明細書に援用される。また、参照によって本明細書に援用される“Ｎｏｎｖｏｌａｔｉｌｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ  Ｍｅｍｏｒｙ  Ｔｅｃｈｎｏｌｏｇｙ，”  ｅｄｉｔｅｄ  ｂｙ  Ｗｉｌｌｉａｍ  Ｄ．Ｂｒｏｗｎ  ａｎｄ  Ｊｏｅ  Ｅ．Ｂｒｅｗｅｒ，ＩＥＥＥ  Ｐｒｅｓｓ，１９９８の１．２節で言及されるプログラミング技術は、誘電体電荷トラッピングデバイスに適用可能であることが同節に記載されている。他のタイプのメモリデバイスも採用されうる。
【００２７】
図３は、１つまたは複数のメモリダイまたはチップ２１２を含む場合もある不揮発性記憶デバイス２１０を示す。メモリダイ２１２は、メモリセルのアレイ２００（二次元または三次元）、制御回路２２０、ならびに読出し／書込み回路２３０Ａおよび２３０Ｂを含む。一実施形態では、様々な周辺回路によるメモリアレイ２００へのアクセスは、アレイの反対側で対称的に実施され、したがって、各側のアクセス線および回路の密度は半減される。読出し／書込み回路２３０Ａおよび２３０Ｂは、メモリセルのページを並列に読み出しまたはプログラムしうる複数のセンスブロック３００を含む。メモリアレイ２００は、行デコーダ２４０Ａおよび２４０Ｂを介してワード線によって、また列デコーダ２４２Ａおよび２４２Ｂを介してビット線によって、アクセス可能である。典型的な実施形態では、コントローラ２４４が、１つまたは複数のメモリダイ２１２と同じメモリデバイス２１０（たとえば、着脱交換式ストレージカードまたはパッケージ）に含まれる。コマンドおよびデータは、線２３２を介してホストとコントローラ２４４の間で、また線２３４を介してコントローラと１つまたは複数のメモリダイ２１２との間で転送される。一実施例は、複数のチップ２１２を含みうる。
【００２８】
制御回路２２０は、メモリアレイ２００でメモリ動作を実施するために読出し／書込み回路２３０Ａおよび２３０Ｂと協働する。制御回路２２０は、状態機械２２２、オンチップ・アドレス・デコーダ２２４、およびパワー制御モジュール２２６を含む。状態機械２２２は、メモリ動作のチップレベルを制御する。オンチップ・アドレス・デコーダ２２４は、ホストまたはメモリコントローラによって使用されるアドレスを、デコーダ２４０Ａ、２４０Ｂ、２４２Ａ、および２４２Ｂによって使用されるハードウェアアドレスに変換するためのアドレスインターフェースを提供する。パワー制御モジュール２２６は、メモリ動作中に、ワード線およびビット線に供給されるパワーおよび電圧を制御する。一実施形態では、パワー制御モジュール２２６は、電源電圧よりも大きい電圧を生成しうる１つまたは複数のチャージポンプを含む。
【００２９】
メモリアレイ２００は、ＭＬＣブロック領域２００ａおよびＳＬＣブロック領域２００ｂを含む。ＳＬＣブロックおよびＭＬＣブロックは、ユーザーデータに対して同数のメモリセルを有していてもよいが、ＭＬＣブロックはセル当たり複数ビットを保存するため、ＭＬＣブロックは、ＳＬＣブロックの２、３、４倍などにも及ぶ多くのデータを保存する可能性がある。ＳＬＣブロックとＭＬＣブロックとが同じ数のメモリセルを有する必要はない。典型的に、ＭＬＣブロックに保存されるデータは、より高い信頼性を提供するためにＳＬＣブロックで使用されるＥＣＣアルゴリズムよりも強力なＥＣＣアルゴリズムで処理される。このような強力なＥＣＣは、一般に、ＳＬＣブロックでは要求されない。ＳＬＣブロックを有するメモリアレイ２００の領域２００ｂを「ＳＬＣ領域２００ｂ」と呼び、ＭＬＣブロックを有するメモリアレイ２００の領域２００ａを「ＭＬＣ領域２００ａ」と呼ぶ。なお、一部の実施形態では、ＳＬＣブロックエリア２００ｂおよびＭＬＣブロックエリア２００ａは、所定の領域である必要がない。一部の実施形態では、メモリアレイ２００内の全てのブロックが、ＳＬＣまたはＭＬＣブロックいずれかとして使用されうる。たとえば、ブロックは、あるときはＳＬＣブロックとして、またあるときはＭＬＣブロックとして使用されてよい。他の実施形態では、コントローラ２４４は、一定のブロックをそれぞれＳＬＣブロックおよびＭＬＣブロックとして定義する。
【００３０】
一部の実施形態では、コントローラ２４４がユーザーデータを受け取ると、ユーザーデータはまず、１つまたは複数のＳＬＣブロックに保存される。しかしながら、コントローラ２４４は、ＳＬＣブロック内のメモリセルのすべてを必ずしもプログラムしない。一態様では、コントローラ２４４は、選択されたワード線のみ（たとえば、奇数ＷＬのみまたは偶数ＷＬのみ）をプログラムする。一態様では、コントローラ２４４は、チェッカーボードパターンでメモリセルをプログラムする。ある時点で、コントローラ２４４は、ＳＬＣブロックに保存されたユーザーデータを、１つまたは複数のＭＬＣブロックに転送してもよい。例として、各ＭＬＣブロックが、ＳＬＣブロックが保存しうるデータの２倍ものデータを保存する場合、コントローラ２４４は、４つのＳＬＣブロックがプログラムされるまで待機して、その後に、そのデータを読み込み、ＥＣＣ符号化を実施し、データを単一のＭＬＣブロックに保存してもよい。なお、ＳＬＣブロック内のメモリセルのすべてが、ＭＬＣブロックへの転送に先立ってプログラムされる必要はない。なお、さらに、この技術では、データがＳＬＣブロックに保存される期間よりも長くＭＬＣブロックに保存されることになる場合があるが、これは必要ではない。
【００３１】
一実施形態では、制御回路２２０、パワー制御回路２２６、デコーダ回路２２４、状態機械回路２２２、デコーダ回路２４２Ａ、デコーダ回路２４２Ｂ、デコーダ回路２４０Ａ、デコーダ回路２４０Ｂ、読出し／書込み回路２３０Ａ、読出し／書込み回路２３０Ｂ、および／またはコントローラ２４４の１つまたは任意の組合せは、１つまたは複数の管理回路と呼ばれうる。
【００３２】
図４は、メモリセルアレイ２００の例示的構造を示す。一実施形態では、メモリセルのアレイは、Ｍ個のブロックのメモリセルに分割される。フラッシュＥＥＰＲＯＭシステムでは普通のことであるが、ブロックは消去の単位である。すなわち、各ブロックは、同時に消去される最小数のメモリセルを含む。各ブロックは、一般的に、多数のページに分割される。ページはプログラミングの単位である。１ページまたは複数ページのデータが、一般的にメモリセルの１行に保存される。ページは１つまたは複数のセクターを保存し得る。セクターは、ユーザーデータおよびオーバーヘッドデータを含む。オーバーヘッドデータは、一般的に、セクターのユーザーデータから計算されるエラー訂正コード（ＥＣＣ）を含む。データがアレイにプログラムされており、さらにデータがアレイから読み出されているときにこれをチェックすると、コントローラの一部分（後述）はＥＣＣを計算する。あるいは、ＥＣＣおよび／または他のオーバーヘッドデータは、これらが関連するユーザーデータと異なるページ、または異なるブロックにさえ保存される。ユーザーデータのセクターは、磁気ディスクドライブのセクターのサイズに対応して、典型的に５１２バイトである。多数のページがブロックを形成し、たとえば、８ページから最大３２、６４、１２８、またはそれ以上のページがブロックを形成しうる。種々のサイズのブロックおよび配置も採用されうる。
【００３３】
別の実施形態では、ビット線は、奇数ビット線と偶数ビット線に分割される。奇数／偶数ビット線アーキテクチャでは、共通ワード線に沿っているとともに奇数ビット線に接続されているメモリセルは同時にプログラムされるが、共通ワード線に沿っているとともに偶数ビット線に接続されているメモリセルは、異なるタイミングでプログラムされる。
【００３４】
また、図４は、メモリアレイ２００のブロックｉのさらなる詳細を示す。ブロックｉは、Ｘ＋１個のビット線とＸ＋１個のＮＡＮＤストリングを含む。また、ブロックｉは、６４本のデータワード線（ＷＬ０〜ＷＬ６３）、２本のダミーワード線（ＷＬ＿ｄ０およびＷＬ＿ｄ１）、ドレイン側選択線（ＳＧＤ）、およびソース側選択線（ＳＧＳ）を含む。各ＮＡＮＤストリングの１つのターミナルは、（選択線ＳＧＤに接続されている）ドレイン選択ゲートを介して、対応するビット線に接続されており、他のターミナルは、（選択線ＳＧＳに接続されている）ソース選択ゲートを介して、ソース線に接続されている。６４本のデータワード線と２本のダミーワード線があるため、各ＮＡＮＤストリングは、６４個のデータメモリセルおよび２つのダミーメモリセルを含む。他の実施形態では、ＮＡＮＤストリングは、６４よりも多いかまたは少ないデータメモリセルと、上記より多いかまたは少ないダミーメモリセルを有しうる。データメモリセルは、ユーザーデータまたはシステムデータを保存しうる。ダミーメモリセルは、一般的に、ユーザーデータまたはシステムデータの保存に使用されない。一部の実施形態は、ダミーメモリセルを含まない。
【００３５】
図５は、センスモジュール４８０および共通部４９０と呼ばれる、中心部に分割された個々のセンスブロック３００のブロック図である。一実施形態では、各ビット線に対する分離センスモジュール４８０と、１セットの複数のセンスモジュール４８０に対する１つの共通部４９０がある。一例では、センスブロックは、１つの共通部４９０と８つのセンスモジュール４８０を含む。グループ内のセンスモジュールの各々は、データバス４７２を介して関連する共通部と通信する。さらに詳しくは、２００４年１２月２９日に出願され、その全体が参照として本明細書に援用される「Ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ  ａｎｄ  ｍｅｔｈｏｄ  ｗｉｔｈ  ｓｈａｒｅｄ  ｐｒｏｃｅｓｓｉｎｇ  ｆｏｒ  ａｎ  ａｇｇｒｅｇａｔｅ  ｏｆ  ｒｅａｄ／ｗｒｉｔｅ  ｃｉｒｃｕｉｔｓ」と題する米国特許出願公開第２００６／０１４０００７号明細書を参照されたい。
【００３６】
センスモジュール４８０は、接続されたビット線の伝導電流が所定の閾値レベル以上であるかまたは以下であるかを判断するセンス回路４７０を備える。一部の実施形態では、センスモジュール４８０は、一般にセンスアンプと呼ばれる回路を含む。また、センスモジュール４８０は、接続されたビット線の電圧状態を設定するために使用されるビット線ラッチ４８２を含む。たとえば、ビット線ラッチ４８２にラッチされた所定の状態は、接続されたビット線を、プログラム禁止を指定する状態（たとえば、Ｖｄｄ）にプルする。
【００３７】
共通部４９０は、プロセッサ４９２、１セットのデータラッチ４９４、および１セットのデータラッチ４９４とデータバス４２０との間に結合されたＩ／Ｏインターフェース４９６を備える。プロセッサ４９２は計算を実施する。たとえば、その機能の１つは、検出されるメモリセルに保存されるデータを決定して、決定されたデータを１セットのデータラッチに保存することである。１セットのデータラッチ４９４は、読出し動作中に、プロセッサ４９２によって決定されたデータビットを保存するために使用される。また、１セットのデータラッチ４９４は、プログラム動作中に、データバス４２０からインポートされたデータビットを保存するために使用される。インポートされたデータビットは、メモリにプログラムされるように意図された書込みデータを表す。Ｉ／Ｏインターフェース４９６は、データラッチ４９４とデータバス４２０との間のインターフェースを提供する。
【００３８】
読取りまたは検出の間に、システムの動作は、アドレス指定されたセルに対する種々の制御ゲート電圧の供給を制御する状態機械２２２の制御下にある。システムの動作が、メモリによってサポートされる様々なメモリ状態に対応する様々な所定の制御ゲート電圧をステップさせるにつれて、センスモジュール４８０は、これらの電圧の１つにトリップし、出力がセンスモジュール４８０からバス４７２を介してプロセッサ４９２に提供されることになる。その時点で、プロセッサ４９２は、センスモジュールのトリッピングイベントと入力線４９３を介した状態機械からの印加制御ゲート電圧に関する情報とを考慮することによって、最終的なメモリ状態を判断する。プロセッサは、この後、メモリ状態の２進符号化を計算し、得られたデータビットをデータラッチ４９４に保存する。中心部の別の実施形態では、ビット線ラッチ４８２は、センスモジュール４８０の出力をラッチするラッチとして、また、前述のようなビット線ラッチとしての２つの機能を果たす。
【００３９】
一部の実施例は複数のプロセッサ４９２を含むことが予想される。一実施形態では、各プロセッサ４９２は、出力線の各々が共にワイヤードＯＲ接続されるように出力線（図５には図示せず）を含む。一部の実施形態では、出力線は、ワイヤードＯＲ線に接続される前に反転される。この構成では、ワイヤードＯＲ線を受け入れる状態機械がプログラムされている全てのビットが所望レベルに達したことを判断しうるため、プログラム検証プロセス中にプログラミングプロセスが完了したことを素早く判断することができる。たとえば、各ビットがその所望レベルに達すると、そのビットに対する論理０がワイヤードＯＲ線に送られる（またはデータ１が反転される）。全てのビットがデータ０を出力すると（またはデータ１が反転されると）、状態機械は、プログラミングプロセスを終了すべきことを知る。各プロセッサが８つのセンスモジュールと通信する実施形態では、状態機械は、（一部の実施形態で）ワイヤードＯＲ線を８回読み出す必要がある場合があり、または、状態機械がワイヤードＯＲ線を１回読み出せば済むように、論理がプロセッサ４９２に加えられて関連するビット線の結果が蓄積される。
【００４０】
プログラムまたは検証中に、プログラムされるデータは、データバス４２０からデータラッチのセット４９４に保存される。状態機械の制御下にあるプログラム動作は、アドレス指定されたメモリセルの制御ゲートに印加された一連のプログラミング電圧パルス（大きさが増加する）を備える。各プログラミングパルスの後に、メモリセルが所望の状態にプログラムされているかどうかを判断するための検証プロセスが続く。プロセッサ４９２は、検証済みのメモリ状態を、所望のメモリ状態に対して監視する。両方が一致すると、プロセッサ４９２は、ビット線がプログラム禁止を指定する状態にプルされるように、ビット線ラッチ４８２をセットする。こうして、たとえセルがその制御ゲートでプログラミングパルスを受けても、ビット線に結合されるセルがさらにプログラムされることが禁止される。他の実施形態では、プロセッサは最初にビット線ラッチ４８２をロードし、センス回路は、これを検証プロセス中に禁止値に設定する。
【００４１】
データラッチスタック４９４は、センスモジュールに対応するデータラッチのスタックを含む。一実施形態では、センスモジュール４８０当たり３〜５個（または別の数）のデータラッチがある。一実施形態では、ラッチは各々が１ビットである。一部の実施例では（必須ではないが）、ラッチに保存された並列データがデータバス４２０用のシリアルデータに変換されるように、また逆も同様に、データラッチは、シフトレジスタとして実現される。好ましい一実施形態では、データのブロックがシリアル転送によって入力または出力されるように、ｍ個のメモリセルの読出し／書込みブロックに対応する全てのデータラッチが、ブロックシフトレジスタを形成するように共に結合されうる。特に、あたかもデータラッチが読出し／書込みブロック全体に対するシフトレジスタの一部であるかのように、データラッチのそのセットの各々がデータを順々にデータバスに、または、データバスからシフトするように、読出し／書込みモジュールのバンクは適合される。
【００４２】
読出し動作とセンスアンプとに関するさらなる情報は、（１）「Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ａｎｄ  Ｍｅｔｈｏｄ  Ｗｉｔｈ  Ｒｅｄｕｃｅｄ  Ｓｏｕｒｃｅ  Ｌｉｎｅ  Ｂｉａｓ  Ｅｒｒｏｒｓ」と題する米国特許第７，１９６，９３１号明細書、（２）「Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ａｎｄ  Ｍｅｔｈｏｄ  ｗｉｔｈ  Ｉｍｐｒｏｖｅｄ  Ｓｅｎｓｉｎｇ」と題する米国特許第７，０２３，７３６号明細書、（３）米国特許出願公開第２００５／０１６９０８２号明細書、（４）「Ｃｏｍｐｅｎｓａｔｉｎｇ  ｆｏｒ  Ｃｏｕｐｌｉｎｇ  Ｄｕｒｉｎｇ  Ｒｅａｄ  Ｏｐｅｒａｔｉｏｎｓ  ｏｆ  Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ」と題する米国特許第７，１９６，９２８号明細書、（５）２００６年７月２０日に公開された「Ｒｅｆｅｒｅｎｃｅ  Ｓｅｎｓｅ  Ａｍｐｌｉｆｉｅｒ  Ｆｏｒ  Ｎｏｎ−Ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ」と題する米国特許出願公開第２００６／０１５８９４７号明細書に見られる。直前に列挙した５つの特許文献のすべては、その全体が参照によって本明細書で援用される。
【００４３】
良好なプログラミングプロセス（及び検証）の最後に、メモリセルの閾値電圧が、必要に応じて、プログラムされたメモリセルに対する閾値電圧の１つまたは複数の分布内、または消去されたメモリセルに対する閾値電圧の分布内にあるべきである。図６Ａは、ＳＬＣブロック内のメモリセルの状態に対するＶｔ分布の例を示す。図６Ｂは、各メモリセルが４ビットのデータを保存するときの、メモリセルアレイに対するデータ状態に対応するＶｔ分布の例を示す。このような分布は、ＭＬＣブロックのプログラミングに使用される場合がある。しかしながら、他の実施形態では、メモリセル当たり４ビットよりも多いかまたは少ないデータを使用してもよい。図６Ｂは、データ状態０〜１５に対応する１６個のＶｔ分布を示す。一部の実施形態では、状態０における閾値電圧は負であり、状態１〜１５における閾値電圧は正である。しかしながら、状態１〜１５の１つまたは複数における閾値電圧は負であってもよい。
【００４４】
データ状態０〜１５の各々の間で、メモリセルからのデータの読出しに使用される基準電圧が読み取られる。たとえば、図６Ｂは、データ状態０と１の間の読出し基準電圧Ｖｒ１と、データ状態１と２の間のＶｒ２を示す。所与のメモリセルの閾値電圧がそれぞれの読出し基準電圧より高いか低いかをテストすることによって、システムは、メモリセルがどの状態にあるかを判断しうる。
【００４５】
各データ状態０〜１５の下端またはその近くに、検証基準電圧がある。たとえば、図６Ｂは、状態１に対するＶｖ１と状態２に対するＶｖ２を示す。メモリセルを所与の状態にプログラムするときに、システムは、これらのメモリセルが有する閾値電圧が検証基準電圧以上であるか否かを試験する。
【００４６】
図６Ｃは、誤り訂正アルゴリズムが誤ったセルの一定のパーセンテージを処理しうるため、データ状態０〜１５に対応するＶｔ分布の別の実施形態が部分的に重複しうることを示す。なお、さらに、負の閾値電圧を測定可能な正の範囲にシフトするためにソースまたはボディバイアスを通してボディエフェクトが使用されるため、Ｖｔ軸は、制御ゲートに印加される実際の電圧からずれていてもよい。留意すべきもう１つの点は、図示された１６の状態の等しい間隔／幅に反して、データ保持損失に対する感受性の量的変動を受け入れるために、様々な状態が種々の幅／間隔を有していてもよいことである。一部の実施形態では、状態０および／または１５が他の状態よりも広い。
【００４７】
図６Ａを再び参照すると、状態０はＳＬＣブロックにおける全てのメモリセルの消去から得られる消去分布であってもよい。消去検証電圧は、明確に示されていないが、消去分布のちょうど右端である場合がある。ＳＬＣブロックがプログラムされると、システムは、選択されたメモリセルの閾値電圧を分布１に移動する。システムは、メモリセルが状態１に対するＶｖの閾値電圧にプログラムされているかどうかを検証する。プログラミングが完了すると、システムはメモリセルの閾値電圧をＶｒと比較することによって、メモリセルを読み出す。
【００４８】
図７Ａは、メモリアレイ２００内のメモリセルのブロックをプログラムするプロセス７００のフローチャートの一実施形態を示す。一実施形態では、プロセス７００は、ＳＬＣブロックには適用されるがＭＬＣブロックには適用されない。しかしながら、プロセス７００はＭＬＣブロックに適用されてもよい。
【００４９】
ステップ７０２では、メモリアレイ内のメモリセルのブロックが消去される。一態様では、ブロックはＳＬＣブロックであるが、プロセス７００はＳＬＣブロックに限定されない。それゆえ、一態様では、ブロックはＭＬＣブロックである。メモリセルのブロックの消去の詳細は、図１４の議論に関連して後に説明される。ステップ７０２では、ブロック内の全てのメモリセルが消去される。
【００５０】
ステップ７０４では、偶数ワード線に接続されているメモリセルがプログラムされる。しかしながら、奇数ワード線のメモリセルは消去された（プログラムされていない）状態に維持される。図８Ａは、偶数ワード線のメモリセルをプログラムした後に得られるパターン例を示すが、奇数ワード線のメモリセルは消去された状態にある。破線で囲まれるメモリセルは、データでプログラムされるメモリセルである。図８Ａでは、ＷＬ１、ＷＬ３、およびＷＬ５で、メモリセルは、すべて消去された状態にあることを示す「０」を有する。ＷＬ０、ＷＬ２、およびＷＬ４のメモリセルは、これらのメモリセルがデータでプログラムされていることを示す「１」または「０」のいずれかを有する。本明細書では、表現「メモリセルのグループのプログラミング」、「メモリセルのグループ内のデータのプログラミング」、「プログラムされたワード線」、または同様の表現は、メモリセルの閾値電圧がデータを表すための適切なレベルに設定されることを意味するものと理解される。データをメモリセルにプログラムするために閾値電圧を変える必要のないメモリセルもありうることは理解されよう。たとえば、ＷＬ０、ＷＬ２、ＷＬ４のメモリセルの一部は、消去閾値電圧（図６Ａにおける状態０）からプログラムされた閾値電圧（たとえば、図６Ａにおける状態１）に変更されたそれらの閾値電圧を有していた。しかしながら、ＷＬ０、ＷＬ２、ＷＬ４の一部のメモリセルは、２進値「０」を表すための消去閾値電圧（たとえば、図６Ａにおける状態０）に留まる。なお、消去された状態が２進値「１」を表す場合もある。なお、さらに、プログラミングは、図６Ｂおよび６Ｃの状態２〜１５のいずれかなど、別の状態に閾値電圧を変更することを伴う可能性がある。換言すると、ブロックは、ＭＬＣブロックである可能性がある。一般的に、ブロックにはさらに多くのワード線がある。たとえば、６４本またはそれ以上のワード線があってもよい。また、一般的に、ブロックにはさらに多くのビット線がある。たとえば、数千本のビット線があってもよい。
【００５１】
ステップ７０６では、少なくとも偶数ワード線のメモリセルが消去される。ステップ７０２における完全なブロック消去以後に奇数ワード線のメモリセルはプログラムされなかったため、これらのメモリセルは消去される必要がない。選択されたワード線のメモリセルの消去の詳細は、図１４に関連して論じる。一部の実施形態では、偶数ワード線のメモリセルは通常の方法で消去されるが、奇数ワード線のメモリセルは弱く消去されるだけである。弱消去は後でさらに詳しく説明される。消去は、様々な事象によってトリガーされる可能性がある。一態様では、ＳＬＣブロックは、１つまたは複数のＭＬＣブロックへの転送を保証するために十分にプログラムされるまでプログラムされる。ＭＬＣブロックへのデータ転送の後に、ＳＬＣブロックのデータは消去されてもよい。また、消去は、ブロック内の全てのデータが消去されるかまたは新しいデータで書かれる必要があることを示すコントローラ２４４にコマンドを送るホストによって、トリガーされてもよい。それゆえ、ブロックからのデータが、消去前に別のブロックに転送される必要はない。一定のワード線（たとえば、偶数ワード線のみ）のメモリセルを選択的に消去することは、図１４に関連して説明される。
【００５２】
ステップ７０８では、奇数ワード線のメモリセルがプログラムされる。しかしながら、偶数ワード線のメモリセルは消去された（プログラムされていない）状態に維持される。図８Ｂは、奇数ワード線のメモリセルをプログラムした後に得られるパターン例を示すが、偶数ワード線のメモリセルは消去された状態にある。図８Ｂでは、ＷＬ０、ＷＬ２、およびＷＬ４に対して、メモリセルは、すべてこれらが消去されていることを示す「０」を有する。ＷＬ１、ＷＬ３、およびＷＬ５のメモリセルは、これらのメモリセルがプログラムされていることを示す「１」または「０」のいずれかを有する。たとえば、メモリセルの一部は、それらの閾値電圧が消去閾値電圧（図６Ａにおける状態０）からプログラムされた状態（たとえば、図６Ａにおける状態１）に変更された閾値電圧を有する。なお、プログラミングは、閾値電圧を図６Ｂおよび６Ｃにおける状態２〜１５のいずれかなど、別の状態に変更することを伴う場合がある。
【００５３】
ステップ７１０では、少なくとも奇数ワード線のメモリセルが消去される。これは、偶数ワード線に対するステップ７０６に似ており、これについての詳細な説明は省略する。なお、奇数、そして偶数、そして奇数、そして偶数のワード線をプログラムする交互の順番を維持する必要はない。一態様では、奇数ワード線および偶数ワード線に対するプログラム／消去サイクル数のカウントが維持される。偶数ＷＬは、奇数ＷＬのプログラミングと消去に先立って、連続して複数回プログラム／消去されてよい。時間とともに、偶数および奇数ワード線は、同数のプログラム／消去サイクルを受け、これによって磨耗が平準化される。偶数および奇数ＷＬに対するプログラム／消去サイクルのカウントは、データブロック自身の空きメモリセルに保存されてもよい。すなわち、各ブロックにユーザーデータ用でない一定数のメモリセルがあってもよい。あるいは、カウントは、メモリアレイ２００の別のブロック、またはメモリアレイ２００の外部のメモリなど、他の場所に保存され得る。それゆえ、一態様では、ステップ７０４および７０６（偶数ＷＬのプログラム／消去）は、ステップ７０８および７１０（奇数ＷＬのプログラム／消去）を実施する前に何度も繰り返されてよい。
【００５４】
他の実施形態では、偶数および奇数ＷＬのプログラミングよりもむしろ、ある別のパターンが採用される。一実施形態では、パターンは、プログラムされた各ＷＬの間に少なくとも１つのプログラムされていないＷＬを有する。たとえば、全ての３つのワード線がプログラムされる際において、中間のＷＬは消去された状態に維持される。具体例として、ＷＬ０、ＷＬ３、ＷＬ６、ＷＬ９などがプログラムされるが、ＷＬ１、ＷＬ２、ＷＬ４、ＷＬ５、ＷＬ７、ＷＬ８などは消去された状態に維持される。ＷＬ０、ＷＬ３、ＷＬ６、ＷＬ９などを消去した後に、新しいグループのワード線がプログラミングのために選択される。たとえば、ＷＬ１、ＷＬ４、ＷＬ７、ＷＬ１０などはプログラムされるが、ＷＬ０、ＷＬ２、ＷＬ３、ＷＬ５，ＷＬ６、ＷＬ８などは消去された状態に維持される。チェッカーボードパターンなど、他のプログラミングパターンが後に説明される。
【００５５】
プログラムされた各ＷＬの次の少なくとも１本のＷＬをプログラムされていない状態に保つことによって、少なくとも一部のフローティングゲート電荷結合効果が減少または除去され得る。たとえば、所与のＷＬの上側または下側のＷＬのメモリセルのプログラミングから本来なら生じる可能性のある上記の効果は、著しく減少または除去される。このＷＬ−ＷＬフローティングゲート電荷結合効果を減らすと、ブロックの耐久性が高まる。さらに、状態（たとえば、消去状態とプログラムされた状態）間のウィンドウは増大され得る。
【００５６】
図７Ｂは、メモリアレイ２００内のメモリセルのブロックをプログラムするプロセス７５０のフローチャートの一実施形態を示す。一実施形態では、プロセス７５０は、ＳＬＣブロックには適用されうるがＭＬＣブロックには適用されない。しかしながら、プロセス７５０はＭＬＣブロックに適用されてもよい。プロセス７５０では、ＷＬは、これらがプログラムされる直前に通常の消去を受けるが、このときにプログラムされてはならないＷＬは弱く消去されるだけである。このときにプログラムされてはならないＷＬは、データを含んでいる可能性があるため弱く消去される
【００５７】
ステップ７５２では、偶数ワード線は通常の消去を受け、奇数ワード線は弱く消去される。一実施形態では、「弱い消去」は、消去メモリセルに通常は適用されるバイアス条件よりも弱く消去されるように、メモリセルのワード線に異なるバイアス条件を適用することによって実現される。一部のメモリセル（たとえば、偶数ワード線のメモリセルのみ）に対して通常の消去を行なう一方で、他のワード線のメモリセルを弱く消去することは、図１４に関連して説明される。ステップ７０４では、偶数ワード線に接続されているメモリセルがプログラムされる。しかしながら、奇数ワード線のメモリセルはプログラムされない。ステップ７０４は、プロセス７００に関連して既に説明されている。ステップ７５６では、奇数ワード線が通常の消去を受け、偶数ワード線は弱く消去される。ステップ７０８では、奇数ワード線のメモリセルは、偶数ワード線のメモリセルをプログラムすることなくプログラムされる。
【００５８】
プロセス７５０は、この後、ステップ７５２に戻って偶数ＷＬを消去し（たとえば、通常のバイアス条件をワード線に適用して）、奇数ワード線を弱く消去する。プロセス７００の変形形態に似たプロセス７５０の多くの変形形態が考えられる。
【００５９】
図９Ａは、ＳＬＣおよびＭＬＣブロックをプログラムするプロセス９００の一実施形態を示す。議論のために、８つのＳＬＣブロックをプログラムし、そのデータを１つのＭＬＣブロックに転送する例を説明する。この例では、１つのＭＬＣブロックを満たすために偶数ＷＬ（あるいは、奇数ＷＬ）のみがプログラムされる８つのＳＬＣブロックを取り上げるが、ＭＬＣブロックを満たすためにさらに多いか少ないＳＬＣブロックを取り上げてもよい。ステップ９０２では、ＳＬＣブロックが消去される。それゆえ、少なくとも８つのＳＬＣブロックが消去される。
【００６０】
ステップ９０４では、コントローラ２４４は、メモリアレイ２００に保存されるデータを受け取る。たとえば、ホストは、保存するユーザーデータをコントローラ２４４に送る。プロセス９００では、コントローラ２４４は、データをＭＬＣブロックに転送する前に、データがまずＳＬＣブロックに保存されるべきであると判断する。前述のように、ＳＬＣブロックは、データを一時的に保存するためのキャッシュの一種として使用されてもよい。
【００６１】
ステップ９０６では、ＳＬＣブロックの少なくとも１つの偶数ＷＬのメモリセルが、受け取られたデータでプログラムされる。コントローラ２４４は、データを複数のＳＬＣブロックにプログラムしてもよい。そうであれば、コントローラ２４４は、１つのＳＬＣブロックの偶数ＷＬのみと別のＳＬＣブロックの奇数ＷＬのみとをプログラムしてもよい。それゆえ、ある時点でＳＬＣブロックのすべてがその偶数ＷＬをプログラムされることは必要条件でない。しかしながら、議論を明確にするために、偶数ＷＬがＳＬＣブロックの各々でプログラムされる例を採用する。
【００６２】
ステップ９０８では、コントローラ２４４は、１つまたは複数のＭＬＣブロックへのデータの転送を保証するのに十分なＳＬＣブロックがプログラムされるかどうかを判断する。たとえば、コントローラ２４４は、８つのＳＬＣブロックの偶数ワード線のすべてがプログラムされたかどうかを判断する。そうでなければ、プロセス９００はステップ９０４に戻り、少なくともＭＬＣブロックへの転送を保証するのに十分なＳＬＣブロックがプログラムされるまで、メモリアレイに保存されるべきより多くのデータを受け取る。
【００６３】
なお、ＳＬＣブロックからのデータが、ＭＬＣブロックに可及的速やかに転送される必要はない。コントローラ２４４は、データをＳＬＣブロックから１つまたは複数のＭＬＣブロックに転送するためにメモリアクセスがアイドル状態（たとえば、ホストがメモリアレイ２００にアクセスしていない状態）になるまで待機してもよい。この場合、他のＳＬＣブロックは、データをＭＬＣブロックに転送するための適切な時期までプログラムされる。
【００６４】
コントローラ２４４が適切であると判断すると、ステップ９１０において、データはＳＬＣブロックから１つまたは複数のＭＬＣブロックに転送される。なお、この時点で、奇数ＷＬのメモリセルは消去された（プログラムされていない）状態に維持されている。この例では、コントローラ２４４は、８つのＳＬＣブロックの偶数ＷＬからデータを読み込み、ＥＣＣをデータに適用し、この後、データをＭＬＣブロックに保存する。ＷＬの偶数／奇数プログラミングをＭＬＣブロックに適用する必要はない。それゆえ、ＭＬＣブロックの全てのＷＬのメモリセルがプログラムされてよい。
【００６５】
ステップ９１２では、ＳＬＣブロックのメモリセルが消去される。プログラムされたＷＬのみが消去される必要がある。たとえば、偶数ＷＬのすべては、データが転送されたＳＬＣブロックの各々において消去される。一部の実施形態では、偶数ＷＬは通常の消去を受けるが、奇数ＷＬは弱い消去を受ける。なお、ワード線の半分のみが消去されることは必要条件でない。ステップ９１２の後に、プロセス９００はステップ９０４に戻り、メモリアレイ２００に保存されるべきより多くのデータを受け取る。しかしながら、このとき、データがＳＬＣブロックの各々の奇数ＷＬに保存されてもよい。
【００６６】
図７Ａの例と同様に、厳格な偶数／奇数ＷＬパターンをプロセス９００で使用する必要はない。たとえば、偶数ワード線は、奇数ワード線をプログラムする前に何度もプログラムされてよい。偶数および奇数ワード線に対するプログラム／消去サイクルのカウントは、磨耗が平準化されるように維持されてもよい。他の実施形態では、偶数および奇数のＷＬをプログラムするよりもむしろ、別のパターンが採用される。一実施形態では、パターンは、プログラムされた各ＷＬの間に少なくとも１つのプログラムされていないＷＬを有する。たとえば、全ての３つのワード線がプログラムされる際に、中間のＷＬは消去された状態に維持される。具体例として、ＷＬ０、ＷＬ３、ＷＬ６などがプログラムされるが、ＷＬ１、ＷＬ２、ＷＬ４、ＷＬ５、ＷＬ７、ＷＬ８などは消去された状態に維持される。ＷＬ０、ＷＬ３、ＷＬ６などを消去した後に、新しいグループのワード線がプログラミングのために選択される。たとえば、ＷＬ１．ＷＬ４、ＷＬ７などはプログラムされるが、ＷＬ０、ＷＬ２、ＷＬ３、ＷＬ５，ＷＬ６、ＷＬ８などは消去された状態に維持される。
【００６７】
図９Ｂは、ＳＬＣおよびＭＬＣブロックをプログラムするプロセス９５０の一実施形態を示す。この実施形態では、ワード線はプログラミングの直前に消去される。プログラムされないワード線は、弱く消去されてもよい。プロセス９５０は、プロセス９００に似ており、これについては詳しく説明しない。
【００６８】
ステップ９０４では、コントローラ２４４は、メモリアレイ２００に保存されるデータを受け取る。ステップ９５５では、偶数ワード線は通常の消去を受け、奇数ワード線は弱く消去される。ステップ９０６では、少なくとも１つのＳＬＣブロックの偶数ＷＬのメモリセルは、受け取られたデータでプログラムされる。コントローラ２４４は、データを複数のＳＬＣブロックにプログラムしてもよい。そうであれば、コントローラ２４４は、１つのＳＬＣブロックの偶数ＷＬのみと別のＳＬＣブロックの奇数ＷＬのみをプログラムしてもよい。それゆえ、ある時点でＳＬＣブロックのすべてがその偶数ＷＬをプログラムされることは必要条件でない。しかしながら、議論を明確にするために、偶数ＷＬがＳＬＣブロックの各々でプログラムされる例を採用する。
【００６９】
ステップ９０８では、コントローラ２４４は、１つまたは複数のＭＬＣブロックへのデータの転送を保証するのに十分なＳＬＣブロックがプログラムされるかどうかを判断する。そうでなければ、プロセス９５０はステップ９０４に戻り、少なくともＭＬＣブロックへの転送を保証するのに十分なＳＬＣブロックがプログラムされるまで、メモリアレイに保存されるべきより多くのデータを受け取る。コントローラ２４４が適切であると判断すると、ステップ９１０において、データはＳＬＣブロックから１つまたは複数のＭＬＣブロックに転送される。なお、この時点で、奇数ＷＬのメモリセルは弱く消去された（プログラムされていない）状態に維持される。
【００７０】
ステップ９１０の後、プロセス９５０はステップ９０４に戻り、メモリアレイ２００に保存されるべきより多くのデータを受け取る。しかしながら、このとき、データは、ＳＬＣブロックの（偶数ＷＬはプログラムされていない状態で）各々の奇数ＷＬに保存されてもよい。ステップ９５５では、奇数ＷＬに接続されているメモリセルは通常の消去を受け、偶数ＷＬに接続されているメモリセルは弱く消去される。
【００７１】
図１０は、チェッカーボードパターンでメモリアレイ２００のメモリセルのブロックをプログラムするプロセス１０００のフローチャートの一実施形態を示す。一実施形態では、プロセス１０００は、ＳＬＣブロックには適用されるが、ＭＬＣブロックには適用されない。しかしながら、プロセス１０００はＭＬＣブロックにも適用されてもよい。ステップ１００２では、メモリアレイにおけるメモリセルのブロックが消去される。メモリセルのブロックの消去の詳細を以下で論じる。ステップ１００２では、ブロック内の全てのメモリセルが消去される。
【００７２】
ステップ１００４では、偶数ビット線および偶数ワード線の両方に接続されているメモリセルがプログラムされ、奇数ビット線および奇数ワード線の両方に接続されているメモリセルがプログラムされる。しかしながら、他のメモリセルは消去された（プログラムされていない）状態にある。図１１Ａは、チェッカーボードパターンでメモリセルをプログラムした後に得られるパターンの例を示す。破線で囲まれるメモリセルは、プログラミングの候補であるメモリセルである。図１１Ａでは、メモリセルは、「１」または「０」のいずれかにプログラムされている。しかしながら、プログラミングは、図６Ｂおよび６Ｃにおける状態２〜１５のいずれかなど、別の状態に閾値電圧を変更することを伴う場合がある。換言すると、ブロックは、ＭＬＣブロックである可能性がある。一般的に、ブロックにはさらに多くのワード線がある。たとえば、６４本またはそれ以上のワード線があってもよい。また、一般的に、ブロックにはさらに多くのビット線がある。たとえば、数千本のビット線があってもよい。
【００７３】
ステップ１００６では、メモリセルが消去される。各ワード線にはプログラムされたメモリセルがあり得るため、消去は全てのメモリセルへの消去条件の適用を伴ってもよい。たとえば、まだ消去された状態にあるメモリセルでさえも、これに適用される消去条件を有する場合がある。メモリセルの消去の詳細は、図１４に関連して説明する。消去は、様々な事象によってトリガーされる可能性がある。一態様では、ＳＬＣブロックは、１つまたは複数のＭＬＣブロックへの転送を保証するために十分にプログラムされるまでプログラムされる。ＭＬＣブロックへのデータ転送の後に、ＳＬＣブロックのデータは消去されてもよい。また、消去は、ブロック内の全てのデータが消去されるかまたは新しいデータで書かれる必要があることを示すコントローラ２４４にコマンドを送るホストによってトリガーされてもよい。それゆえ、ブロックからのデータが、消去前に別のブロックに転送される必要はない。
【００７４】
ステップ１００８では、ステップ１００４においてプログラムされなかったメモリセルがプログラムされる。換言すると、チェッカーボードパターンの他の部分がプログラムされる。しかしながら、他のメモリセル（たとえば、ステップ１００４でプログラムされたメモリセル）は消去された（またはプログラムされていない）状態に維持される。図１１Ｂは、得られるパターンの例を示す。そのパターンでは、奇数ビット線と偶数ワード線の両方に接続されているメモリセルがプログラムされ、偶数ビット線と奇数ワード線の両方に接続されているメモリセルがプログラムされる。ステップ１０１０では、メモリセルが消去される。プロセス１０００は、この後、ステップ１００４に戻ることによって継続する場合もある。
【００７５】
なお、チェッカーボードの一部分（たとえば、図１１Ａ）に続いてチェッカーボードの他の部分（たとえば、図１１Ｂ）をプログラムする交互シーケンスが維持される必要はない。一態様では、各パターンに対するプログラム／消去サイクル数のカウントが維持される。図１１Ａのパターンは、図１１Ｂのパターンのプログラミングと消去に先立って、連続して複数回プログラム／消去されてもよい。時間が経過するにつれて、各パターンは、同数のプログラム／消去サイクルを受けて、磨耗が平準化される。各パターンに対するプログラム／消去サイクルのカウントは、データブロック自身の空きメモリセルに保存されてもよい。すなわち、各ブロックにユーザーデータ用でない一定数のメモリセルがあってもよい。あるいは、カウントは、メモリアレイ２００の別のブロック、またはメモリアレイ２００の外部のメモリなど、他の場所に保存されてもよい。それゆえ、一態様では、ステップ１００４および１００６は、ステップ１００８および１０１０を実施する前に何度も繰り返されてよい。
【００７６】
なお、図１１Ａおよび１１Ｂでは、プログラムされた各メモリセルの上側および下側のＷＬの隣接メモリセルは、プログラムされていない。このことは、図８Ａおよび８Ｂに示す実施形態にも言えることである。したがって、所与のＷＬの上側または下側のＷＬのメモリセルのプログラミングから本来なら生じ得るフローティングゲート電荷結合効果は、著しく減少または除去される。さらに、プログラムされた各メモリセルの右側および左側のビット線（ＢＬ）の隣接メモリセルは、プログラムされていない。したがって、右側および左側のＢＬのメモリセルのプログラミングから本来なら生じる可能性のあるフローティングゲート電荷結合効果も、著しく減少または除去される。唯一残るフローティングゲート電荷結合効果は対角方向であり、たとえば、ＷＬｎのＢＬｎのプログラムされたメモリセルは、ＷＬｎ＋１および／またはＷＬｎ−１のＢＬｎ−１およびＢＬｎ＋１のプログラムされたセルによって影響される場合がある。
【００７７】
図１１Ａおよび１１Ｂのチェッカーボードパターンでは、所与のワード線に対する１ビット線（ＢＬ）おきのメモリセルがプログラムされる。しかしながら、チェッカーボードパターンはこれほど高密度である必要はない。上記の対角結合効果を除去するために、一実施形態では、所与のワード線に対する４ビット線おきのメモリセルがプログラムされる。別の実施形態では、全てのワード線がプログラムされる必要はない。たとえば、４ワード線おきにプログラムされてもよい。例として、ＷＬ０の場合、ＢＬ０、ＢＬ４、ＢＬ８などのメモリセルがプログラムされる。ＷＬ１およびＷＬ２はプログラムされていない状態に維持され得る。ＷＬ３の場合、ＢＬ２、ＢＬ６、ＢＬ１０などのメモリセルがプログラムされる。他のチェッカーボードパターンが採用されてもよい。たとえば、各ＷＬは、各ワード線の４メモリセルおきにのみプログラムされてよい。この場合、プログラムされたメモリセルの上側および下側の隣接メモリセルは、プログラムされていない状態に維持される。さらに別の実施形態では、１ワード線おきおよび１ビット線おきにプログラムされる。たとえば、ＷＬ０の場合、ＢＬ０、ＢＬ２、ＢＬ４などのメモリセルがプログラムされ、ＷＬ１はプログラムされていない状態に維持される。ＷＬ２の場合、ＢＬ０、ＢＬ２、ＢＬ４などがプログラムされ、またはＢＬ１、ＢＬ３、ＢＬ５などがプログラムされる。両後者の場合、プログラムされた各メモリセルがプログラムされた状態にある隣接セルを有することは、対角方向においてさえもなく、それゆえ、フローティングゲート電荷結合効果はほぼ完全に除去される。
【００７８】
図１２は、ＳＬＣブロックに対するチェッカーボードパターンを用いてＳＬＣおよびＭＬＣブロックをプログラムするプロセス１２００の一実施形態を示す。説明のために、８つのＳＬＣブロックをプログラムし、そのデータを１つのＭＬＣブロックに転送する例を論じる。この例では、１つのＭＬＣブロックを満たすためにチェッカーボードパターンでプログラムされる８つのＳＬＣブロックを取り上げるが、ＭＬＣブロックを満たすためにさらに多いか少ないＳＬＣブロックを取り上げてもよい。ステップ１２０２では、ＳＬＣブロックが消去される。それゆえ、少なくとも８つのＳＬＣブロックが消去される。
【００７９】
ステップ１２０４では、コントローラ２４４は、メモリアレイ２００に保存されるデータを受け取る。たとえば、ホストは、保存するユーザーデータをコントローラ２４４に送る。プロセス１２００では、コントローラ２４４は、データをＭＬＣブロックに転送する前に、データがまずＳＬＣブロックに保存されるべきであると判断する。前述のように、ＳＬＣブロックは、データを一時的に保存するためのキャッシュの一種として使用されてもよい。
【００８０】
ステップ１２０６では、コントローラ２４４は、データをチェッカーボードパターンでプログラムする。コントローラ２４４は、データを複数のＳＬＣブロックにプログラムしてもよい。そうであれば、コントローラ２４４は、１つのＳＬＣブロックに対して１つのチェッカーボードパターン（たとえば、図１１Ａ）と別のＳＬＣブロックに対して別のチェッカーボードパターン（たとえば、図１１Ｂ）とを使用してもよい。しかしながら、説明を明確にするために、図１１ＡのパターンがＳＬＣブロックの各々でプログラムされる例が採用される。
【００８１】
ステップ１２０８では、コントローラ２４４は、１つまたは複数のＭＬＣブロックへのデータの転送を保証するのに十分なＳＬＣブロックがチェッカーボードパターンでプログラムされたかどうかを判断する。たとえば、コントローラ２４４は、８つ全てのＳＬＣブロックがプログラムされていると判断する。そうでなければ、プロセス１２００はステップ１２０４に戻り、少なくともＭＬＣブロックへの転送を保証するのに十分なＳＬＣブロックがプログラムされるまで、メモリアレイに保存されるべきより多くのデータを受け取る。
【００８２】
なお、ＳＬＣブロックからのデータが、ＭＬＣブロックに可及的速やかに転送される必要はない。コントローラ２４４は、データをＳＬＣブロックから１つまたは複数のＭＬＣブロックに転送するためにメモリアクセスがアイドル状態（たとえば、ホストがメモリアレイ２００にアクセスしていない状態）になるまで待機してもよい。この場合、他のＳＬＣブロックは、データをＭＬＣブロックに転送するための適切な時期までプログラムされる。
【００８３】
コントローラ２４４が適切であると判断すると、ステップ１２１０において、データはＳＬＣブロックから１つまたは複数のＭＬＣブロックに転送される。なお、この時点で、メモリセルの一部は消去された状態に維持される。たとえば、図１１Ａにおいて破線で囲まれていないメモリセルは、まだ消去された状態にある。本例では、コントローラ２４４は、８つのＳＬＣブロックのＷＬのすべてからデータを読み込み、プログラムされなかったメモリセルからデータを破棄し、ＥＣＣをデータに適用し、この後、データをＭＬＣブロックに保存する。チェッカーボードプログラミングをＭＬＣブロックに適用する必要はない。それゆえ、ＭＬＣブロックの全てのメモリセルがプログラムされ得る。
【００８４】
ステップ１２１２では、ＳＬＣブロックのメモリセルが消去される。ステップ１２１２の後に、プロセス１２００はステップ１２０４に戻り、メモリアレイ２００に保存されるべきより多くのデータを受け取る。しかしながら、このときデータは異なるチェッカーボードパターン（たとえば、図１１Ｂ）で保存されてもよい。各チェッカーボードパターン（たとえば、図１１Ａ、図１１Ｂ）に対するプログラム／消去サイクルのカウントは、磨耗が平準化されるように維持されてもよい。なお、図１１Ａおよび１１Ｂに示すチェッカーボードパターンは、プロセス１２００に使用される必要はない。たとえば、４ビット線おきの（そして、あるいは４ワード線おきの）メモリセルがプログラムされる低密度チェッカーボードパターンが採用されてもよい。
【００８５】
図１３は、メモリセルのプログラミングの詳細を説明するフローチャートである。図１３のプロセス１３００は、データをプログラムする要求を受け取ることに応じて実施され得る。プロセス１３００は、１本のワード線のプログラミングを記述しており、ブロック内の各ワード線に対して繰り返されてもよい。「ワード線のプログラミング」という表現は、ワード線に接続されているメモリセルをプログラムすることを意味する。一部の実施形態では、ワード線の全てのメモリセルは、同時にプログラムされる。すなわち、全てのビット線（および一定のワード線）に接続されているメモリセルは、同時にプログラムされる。一部の実施形態では、奇数ビット線に接続されているメモリセルは、偶数ビット線に接続されているメモリセルとは別にプログラムされる。
【００８６】
プロセス７００のステップ７０４を実施するために使用される場合に、プロセス１３００は、ブロック内の各偶数ワード線に対して一度実施されてよい。ステップ７０８を実施するために使用される場合に、プロセス１３００は、ブロック内の各奇数ワード線に対して一度実施されてよい。プロセス１０００のステップ１００４または１００８のいずれかを実施するために使用される場合に、プロセス１３００は、プログラムされる奇数ビット線を有する一部のワード線と、プログラムされる偶数ビット線を有する他のワード線とを備えるブロック内の各ワード線に対して一度実施されてよい。選択されたビット線のみのメモリセルのプログラミングは、一定のビット線のプログラミングをロックアウトすることによって実現されてもよい。
【００８７】
偶数（または奇数）ワード線がプログラムされる順序は、特定のシーケンスに限定されない。シーケンスの一例は、各偶数ワード線がプログラムされるまで、ＷＬ０、ＷＬ２、ＷＬ４などをプログラムすることである。奇数ワード線の場合、シーケンスは、各奇数ワード線がプログラムされるまで、ＷＬ１、ＷＬ３、ＷＬ５などをプログラムすることであってもよい。ワード線は逆の順序（すなわち、高から低に）でプログラムされる場合がある。また、ワード線は、順番にプログラムされる必要はない。たとえば、ＷＬ２は、ＷＬ０およびＷＬ４のプログラミング後にプログラムされてもよい。
【００８８】
ステップ１３１２では、システムは、初期のプログラムパルスの大きさを設定する。ステップ１３１４において、プログラムカウントＰＣは、最初は０となるように設定される。ステップ１３１６では、プログラムパルスが適切なワード線に印加される。ステップ１３１８では、そのワード線にプログラムされるメモリセルが、目標閾値電圧レベルに達しているかどうかが検証される。プログラムされるメモリセルのすべて、またはほとんどすべてが目標閾値電圧レベルに達している場合には（ステップ１３２０）、プログラミングプロセスはステップ１３２２において無事に終了する（ステータス＝合格）。メモリセルのすべて、または、ほとんどすべてが検証済みであるわけではない場合には、プログラムカウントＰＣが２０未満であるかどうかが、ステップ１３２４において判定される。プログラムカウントが２０未満でない場合には、プログラミングプロセスは不合格となる（ステップ１３２６）。プログラムカウントが２０未満の場合、ステップ１３２８において、プログラム電圧信号Ｖｐｇｍの大きさが次のパルスに対してステップサイズ（たとえば、０．３Ｖ）だけインクリメントされ、プログラムカウントＰＣがインクリメントされる。なお、目標閾値電圧に達しているメモリセルは、現在のプログラミングサイクルの残りに対するプログラミングからロックアウトされる。ステップ１３２８の後に、図１３のプロセスは、ステップ１３１６で継続し、次のプログラムパルスが印加される。なお、プログラムカウントＰＣとして２０とは別の数が、１３２４における停止基準として採用されてもよい。なお、さらに、１３２０において、一部の実施形態では、全てのメモリセルが目標閾値電圧に達する必要はない。ＥＣＣが適用されて、目標閾値電圧レベルに達しない一定数のメモリセルが補正されうるため、これらのメモリセルは容認されうる。
【００８９】
図１４は、メモリセルを消去するプロセス１４００を説明するフローチャートである。一部の実施形態では、一部のメモリセルは弱く消去されるだけで、他のメモリセルが通常の消去を受ける。他の実施形態では、全てのメモリセルが通常の消去を受ける。一部の実施形態では、通常の消去または弱い消去のいずれかを実現するために、異なるバイアス条件がＷＬに適用される。弱い消去は、メモリセルに対するストレスを軽減する。
【００９０】
プロセス１４００は、プロセス７００のステップ７０２、７０６、または７１０、プロセス７５０のステップ７５２または７５６、プロセス９００のステップ９０２または９１２、プロセス９５０のステップステップ９５５または９６２、プロセス１０００のステップ１００２、１００６、または１０１０、あるいはプロセス１２００のステップ１２０２または１２１２の一実施例である。ステップ１４０２では、システムは、初期消去パルスの大きさを設定する。ステップ１４０４において、消去ループカウントが、最初にゼロに設定される。ステップ１４０６では、バイアス条件がワード線に適用される。一実施形態では、メモリセルが弱く消去されるべきであるワード線に対して、通常の消去を受けるべきメモリセルを有するワード線に対するそれとは異なるバイアス条件が適用される。たとえば、通常の消去を受けるべきワード線に０Ｖが使用され、弱く消去されるべきワード線に正電圧が適用されてもよい。例として、正電圧は数Ｖ（たとえば、１〜４Ｖ）であってもよい。一部の実施形態では、偶数および奇数のワード線に、異なる電圧が印加される。プロセス１４００を説明する際に、「選択されたワード線」という用語は、メモリセルが通常の消去を受けるべきであるワード線を指し、「選択されたメモリセル」という用語は、通常の消去を受けるべきメモリセルを指す。「選択されていないワード線」という用語は、メモリセルが弱く消去されるべきワード線を指す。なお、選択されていないワード線に対する正電圧の大きさによっては、ある程度の消去が依然として行われる可能性があるが、この「弱い消去」は一般に重大ではなく、メモリセルの特性の劣化に関係しない。
【００９１】
ステップ１４０８では、消去条件が適用される。一実施例では、ステップ１４０２は、ｐウェルを十分な期間にわたって消去電圧（たとえば、２０Ｖ）まで上昇させ、選択されたブロックの選択されたワード線を接地し、バイアス電圧を選択されたブロックの選択されていないワード線に印加し、その間にソース線およびビット線をフローティングさせる。容量結合に起因して、ビット線、選択線、および共通ソース線は、消去電圧のかなりの割合まで上昇される。こうして、強力な電場が、選択されたメモリセルのトンネル酸化層に加えられ、フローティングゲートの電子が典型的にファウラーノルドハイムトンネリング現象によって基板側に放出されるにしたがって、選択されたメモリセルのデータが消去される。電子がフローティングゲートからｐウェル領域に転送されるにしたがって、選択されたセルの閾値電圧は低下する。消去は、メモリアレイ全体、個々のブロック、またはセルの別のユニットで実施されうる。
【００９２】
しかしながら、選択されていないワード線にバイアス電圧を印加することによって、選択されていないメモリセルは、これらのトンネル酸化層にこのような強力な電場を受けない。したがって、選択されていないメモリセルは、消去による重大なストレスを受けない。一部の実施形態では、選択されていないメモリセルは既に消去されており、したがって、それらの閾値電圧は前述の「弱い消去」バイアス条件によって大幅に変えられることはない。しかしながら、選択されていないメモリセルがプロセス１４００の開始前に消去状態にあることは、絶対条件ではない。すなわち、選択されていないメモリセルは、弱く消去される前にデータを有していてもよい。
【００９３】
ステップ１４１０では、１セットの消去検証条件がメモリセルに適用される。これは、一部の実施形態では選択的消去検証である。なお、一部のメモリセルは消去プロセスの前に消去されている場合があるため、検証条件は、選択されたワード線と選択されていないワード線で異なっていてもよい。たとえば、選択されたブロック内の選択されていないメモリセルが、直近の完全な消去以来プログラムされていないために、既に消去されているものと考えられる場合には、読出しパス電圧が選択されていないＷＬに印加されてもよい。
【００９４】
一実施例では、ステップ１４１０は、ビット線をグラウンドに放電することを含む。この後、０Ｖよりも高い電圧（たとえば、２．２Ｖ）が、共通ソース線に印加され、一定電圧（たとえば、０Ｖ）が、選択されたワード線に印加され、別の電圧（たとえば、Ｖｒｅａｄ）が、選択されていないワード線に印加される。Ｖｒｅａｄは、メモリセルが電流を導くように、十分に高い電圧であってよい。電荷がビット線で増大し、ボディイフェクトがＮＡＮＤストリングの少なくとも１つのメモリセルをターンオフさせるまで、所与のＮＡＮＤストリングのビット線電圧の増加をもたらす。
【００９５】
ステップ１４１２では、ＮＡＮＤストリングのメモリセルが十分に消去されたかどうかを判断するために、ＮＡＮＤストリングの各々が検出される。ステップ１４０６は、電荷がビット線で増大する所定の期間を待機した後に実施される。一実施例では、対応するＮＡＮＤストリングのメモリセルのいずれかが目標値を超えるＶｔを有するかどうかを判断するために、所与のビット線の電圧が基準値と比較される。目標値は負値でありうる。
【００９６】
一実施形態では、ＮＡＮＤストリングの各メモリセルのＶｔが目標レベルに達していることを検出すると、対応するデータラッチに保存されたデータは、論理「１」に変更される。ＮＡＮＤストリングが適切な目標レベルに達していないＶｔを有する少なくとも１つのメモリセルを有することが検出されると、対応するデータラッチに保存されたデータは変更されない。
【００９７】
ステップ１４１４では、十分なＮＡＮＤストリングが消去検証に合格したかどうかについての判断がなされる。一実施例では、一定数のＮＡＮＤストリングが消去検証で不合格となることが許容される。たとえば、消去検証で不合格となったＮＡＮＤストリングが３２よりも少ない場合には、全体の消去検証で合格となる。消去が合格すると、消去ステータスが合格に設定され、プロセス１４００が終了する。
【００９８】
ステップ１４１４において、消去検証が不合格であったと判断されると、ループカウントがチェックされて（ステップ１４１６）、これが上限値を超えているかどうかが判定される。上限値を超えていると判定されると、消去ステータスは不合格に設定されて、プロセス１４００が終了する。ループカウントが上限値を超えていない場合は、ステップ１４１８において消去電圧が増加される。消去電圧は、０．２Ｖ、０．５Ｖ、１．０Ｖなど、任意の所望量だけ増加され得る。ループカウントはインクリメントされる。ステップ１４０８において、新たな消去電圧が印加される。
【００９９】
本明細書に開示するように、一実施形態は、複数の不揮発性記憶素子と複数のワード線のグループを有する不揮発性記憶装置の動作方法である。この方法は、複数の不揮発性記憶素子を消去するステップと、複数の不揮発性記憶素子の第２のグループがプログラムされていない状態にある間に、複数の不揮発性記憶素子の第１のグループにデータをプログラムするステップとを備える。第１のグループ内の全ての不揮発性記憶素子に対して、第１のグループ内の不揮発性記憶素子の上側または下側のいずれかのワード線のいずれの隣接不揮発性記憶素子も、プログラムされていない状態にある第２のグループのメンバーである。不揮発性記憶素子の少なくとも第１のグループのデータは、不揮発性記憶素子の第２のグループがプログラムされていない状態にある間に消去される。その後、不揮発性記憶素子の第２のグループの少なくとも一部がプログラムされる。第２のグループの一部における全ての不揮発性記憶素子に対して、第２のグループの一部における不揮発性記憶素子の上側または下側のいずれかのワード線のどの隣接不揮発性記憶素子も、プログラムされていない状態にある。その後、不揮発性記憶素子の第２のグループの少なくとも一部のデータは、第２のグループの少なくとも一部における不揮発性記憶素子の上側または下側のいずれかのワード線の隣接不揮発性記憶素子がプログラムされていない状態にある間に、消去される。
【０１００】
一実施形態では、前の段落で議論した複数の不揮発性記憶素子は、不揮発性記憶素子当たり１ビットのデータが保存されるブロックの一部であり、不揮発性記憶装置は、不揮発性記憶素子当たり複数ビットのデータが保存される不揮発性記憶素子のマルチレベルブロックをさらに備える。一実施形態では、方法は、さらに、関連する不揮発性記憶素子の第２のグループがプログラムされていない状態にある間に、不揮発性記憶素子の第１のグループにプログラムされたデータをマルチレベルブロックの１つまたは複数に転送するステップと、第２のグループの少なくとも一部における不揮発性記憶素子の上側または下側のいずれかのワード線の隣接不揮発性記憶素子がプログラムされていない状態にある間に、不揮発性記憶素子の第２のグループの少なくとも一部にプログラムされたデータをマルチレベルブロックの１つまたは複数に転送するステップをさらに備える。
【０１０１】
別の実施形態では、不揮発性記憶素子の第１のグループは、複数のビット線の偶数ビット線および複数のワード線の偶数ワード線の両方、及び、複数のビット線の奇数ビット線および複数のワード線の奇数ワード線の両方に接続されている不揮発性記憶素子である。第２のグループは、奇数ビット線および偶数ワード線の両方、及び、偶数ビット線および奇数ワード線の両方に接続されている不揮発性記憶素子である。この場合、第２のグループの少なくとも一部は、第２のグループ全体である。
【０１０２】
一実施形態は、複数の不揮発性記憶素子と複数の不揮発性記憶素子に接続されている複数のワード線とを有する不揮発性記憶装置を動作させる方法である。この方法は、不揮発性記憶素子の第１のグループ内のデータを消去するステップと、不揮発性記憶素子の第２のグループを弱く消去するステップと、複数の不揮発性記憶素子の第２のグループをプログラムしないで、複数の不揮発性記憶素子の第１のグループにデータをプログラムするステップとを備え、第１のグループ内の全ての不揮発性記憶素子に対して、第１のグループ内の不揮発性記憶素子の上側または下側のいずれかのワード線のいずれの隣接不揮発性記憶素子も、プログラムされていない第２のグループの要素である。この方法は、さらに、不揮発性記憶素子の第２のグループがまだ弱く消去されているときに、不揮発性記憶素子の第２のグループ内のデータを一度に消去するステップと、不揮発性記憶素子の第２のグループをプログラムするステップとを備え、第２のグループ内の全ての不揮発性記憶素子に対して、第２のグループ内の不揮発性記憶素子の上側または下側のいずれかのワード線のいずれの隣接不揮発性記憶素子もプログラムされていない。
【０１０３】
一実施形態は、単一レベルブロックおよびマルチレベルブロックを備える不揮発性記憶装置を動作させる方法である。各単一レベルブロックは、複数のワード線と複数の不揮発性記憶素子とを備える。方法は、単一レベルブロックの第１の単一レベルブロック内の全てのワード線に接続されている不揮発性記憶素子を消去するステップと、第１の単一レベルブロック内のチェッカーボードパターンで不揮発性記憶素子にデータをプログラムするステップとを備える。第１の単一レベルブロック内の不揮発性記憶素子の少なくとも半分は、プログラムされていない状態にある。第１の単一レベルブロック内のチェッカーボードパターンに関連する不揮発性記憶素子からのデータは、第１の単一レベルブロック内の不揮発性記憶素子の少なくとも半分が消去された状態にある間に、マルチレベルブロックの第１のマルチレベルブロックに転送される。第１の単一レベルブロック内のデータは消去される。
【０１０４】
さらなる実施形態では、前の段落のチェッカーボードパターンは、第１のチェッカーボードパターンである。データは、第１の単一レベルブロック内の第２のチェッカーボードパターンで不揮発性記憶素子にプログラムされる。第１のチェッカーボードパターンでプログラムされた不揮発性記憶素子は、第２のチェッカーボードパターンを用いてはプログラムされない。第１の単一レベルブロック内の第２のチェッカーボードパターンに接続されている不揮発性記憶素子からのデータは、第１のチェッカーボードパターン線に接続されている不揮発性記憶素子が消去された状態にある間に、マルチレベルブロックの第２のマルチレベルブロックに転送される。
【０１０５】
一実施形態は、複数の不揮発性記憶素子と、不揮発性記憶素子のグループに接続されている複数のワード線と、不揮発性記憶素子と通信する１つまたは複数の管理回路を備える不揮発性記憶デバイスである。１つまたは複数の管理回路は、不揮発性記憶素子を消去する。１つまたは複数の管理回路は、複数の不揮発性記憶素子の第２のグループがプログラムされていない状態にある間に、複数の不揮発性記憶素子の第１のグループにデータをプログラムする。第１のグループ内の全ての不揮発性記憶素子に対して、第１のグループ内の不揮発性記憶素子の上側または下側のいずれかのワード線のいずれの隣接不揮発性記憶素子も、プログラムされていない状態にある第２のグループのメンバーである。１つまたは複数の管理回路は、不揮発性記憶素子の第２のグループがプログラムされていない状態にある間に、不揮発性記憶素子の第１のグループ内のデータを消去する。１つまたは複数の管理回路は、不揮発性記憶素子の第２のグループの少なくとも一部をプログラムする。第２のグループの一部における全ての不揮発性記憶素子に対して、第２のグループの一部における不揮発性記憶素子の上側または下側のいずれかのワード線のいずれの隣接不揮発性記憶素子も、プログラムされていない状態にある。１つまたは複数の管理回路は、第２のグループの少なくとも一部における不揮発性記憶素子の上側または下側のいずれかのワード線の隣接不揮発性記憶素子がプログラムされていない状態にある間に、不揮発性記憶素子の第２のグループの少なくとも一部におけるデータを消去する。
【０１０６】
一実施形態では、前の段落の不揮発性記憶デバイスは、不揮発性記憶素子のグループに接続されている複数のビット線をさらに備える。第１のグループは、複数のビット線の偶数ビット線および複数のワード線の偶数ワード線の両方、及び、複数のビット線の奇数ビット線および複数のビット線の奇数ワード線の両方に接続されている不揮発性記憶素子を含む。第２のグループは、奇数ビット線および偶数ワード線の両方、及び、偶数ビット線および奇数ワード線の両方に接続されている不揮発性記憶素子を含む。別の実施形態では、第１のグループは、複数のワード線の偶数ワード線に接続されている不揮発性記憶素子を含み、第２のグループは、複数のワード線の奇数ワード線に接続されている不揮発性記憶素子を含む。
【０１０７】
一実施形態は、不揮発性記憶素子の第１のグループと、不揮発性記憶素子の第２のグループと、不揮発性記憶素子の第１のグループに接続されている複数のワード線と、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループと通信する１つまたは複数の管理回路とを含む不揮発性記憶デバイスである。１つまたは複数の管理回路は、第１のグループ内に不揮発性記憶素子当たり１ビットのデータを保存する。１つまたは複数の管理回路は、第２のグループ内に不揮発性記憶素子当たり複数ビットのデータを記憶する。１つまたは複数の管理回路は、不揮発性記憶素子の第１のグループを消去する。１つまたは複数の管理回路は、複数のワード線の奇数ワード線に接続されている不揮発性記憶素子が消去された状態にある間に、複数のワード線の偶数ワード線に接続されている不揮発性記憶素子にデータをプログラムする。１つまたは複数の管理回路は、奇数ワード線に接続されている不揮発性記憶素子が消去された状態にある間に、偶数ワード線に接続する不揮発性記憶素子から不揮発性記憶素子の第２のグループにデータを転送する。１つまたは複数の管理回路は、偶数ワード線に接続されている不揮発性記憶素子内のデータを消去する。
【０１０８】
一実施形態は、不揮発性記憶素子の第１のグループと、不揮発性記憶素子の第２のグループと、不揮発性記憶素子の第１のグループに接続されている複数のワード線と、不揮発性記憶素子の第１のグループに接続されている複数のビット線と、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループと通信する１つまたは複数の管理回路とを備える不揮発性記憶デバイスである。１つまたは複数の管理回路は、第１のグループ内に不揮発性記憶素子当たり１ビットのデータを保存する。１つまたは複数の管理回路は、第２のグループ内に不揮発性記憶素子当たり複数ビットのデータを保存する。１つまたは複数の管理回路は、不揮発性記憶素子の第１のグループを消去する。１つまたは複数の管理回路は、第１のグループ内にチェッカーボードパターンで不揮発性記憶素子にデータをプログラムする。第１のグループ内の不揮発性記憶素子の少なくとも半分は、プログラムされていない状態にある。１つまたは複数の管理回路は、第１のグループ内のチェッカーボードパターンに関連する不揮発性記憶素子から不揮発性記憶素子の第２のグループ内の不揮発性記憶素子の第１のサブセットにデータを転送する。１つまたは複数の管理回路は、第１のグループ内のデータを消去する。
【０１０９】
さらなる実施形態では、前の段落のチェッカーボードパターンは、第１のチェッカーボードパターンである。１つまたは複数の管理回路は、第１のグループ内に第２のチェッカーボードパターンで不揮発性記憶素子にデータをプログラムする。第１のチェッカーボードパターンでプログラムされた不揮発性記憶素子は、第２のチェッカーボードパターンを用いてはプログラムされない。１つまたは複数の管理回路は、第１のチェッカーボードパターンに接続されている不揮発性記憶素子が消去された状態にある間に、第１のグループ内の第２のチェッカーボードパターンに関連する不揮発性記憶素子から、第２のグループ内の不揮発性記憶素子の第２のサブセットにデータを転送する。
【０１１０】
さらに別の実施形態は、単一レベルブロックおよびマルチレベルブロックを備える不揮発性記憶装置を動作させる方法である。各単一レベルブロックは、複数のワード線と複数の不揮発性記憶素子とを含む。方法は、第１のブロック内の奇数ワード線に接続されている不揮発性記憶素子を弱く消去する間に、単一レベルブロックの第１のブロック内の偶数ワード線に接続されている不揮発性記憶素子の通常の消去を実施するステップと、複数のワード線の偶数ワード線に接続されている不揮発性記憶素子内のデータをプログラムするステップとを含む。奇数ワード線に接続されている不揮発性記憶素子はプログラムされていない。偶数ワード線に接続されている不揮発性記憶素子からのデータは、マルチレベルセルブロックの１つまたは複数に転送され、転送は、奇数ワード線に接続されている不揮発性記憶素子が弱く消去されている状態にある間に行われる。
【０１１１】
本発明の前述の詳細な記述は、例示および説明を目的として提示されている。これは、本発明を網羅したり、開示された正確な形態に限定したりすることを意図するものではない。上記の教示に照らして多くの修正形態および変形形態が考えられる。前述の実施形態は、本発明の原理およびその実際的応用を最もよく説明し、それによって、他の当業者が本発明を様々な実施形態において検討される個々の用途に適するように様々に修正して最もよく利用できるように選定された。本発明の範囲は、本明細書に添付する特許請求の範囲によって規定されるものとする。
【図１】
0005575244.tif 000002
【図２】
0005575244.tif 000003
【図３】
0005575244.tif 000004
【図４】
0005575244.tif 000005
【図５】
0005575244.tif 000006
【図６Ａ】
0005575244.tif 000007
【図６Ｂ】
0005575244.tif 000008
【図６Ｃ】
0005575244.tif 000009
【図７Ａ】
0005575244.tif 000010
【図７Ｂ】
0005575244.tif 000011
【図８Ａ】
0005575244.tif 000012
【図８Ｂ】
0005575244.tif 000013
【図９Ａ】
0005575244.tif 000014
【図９Ｂ】
0005575244.tif 000015
【図１０】
0005575244.tif 000016
【図１１Ａ】
0005575244.tif 000017
【図１１Ｂ】
0005575244.tif 000018
【図１２】
0005575244.tif 000019
【図１３】
0005575244.tif 000020
【図１４】
0005575244.tif 000021