(57)【要約】  不揮発性メモリのための種々のプログラミング手法が、メモリセルをターゲットしきい値レベルに関してプログラムすることを含む。このプロセスは、初めにターゲットしきい値レベルより所定のオフセットだけ手前の第１のベリファイレベルに関してプログラムすることを含む。後に、プログラミングはターゲットベリファイレベルに関して完了される。第１のベリファイレベルでのベリファイについて、仮想の第１のベリファイレベルが実際上使用され、この場合、ターゲットしきい値レベルは選択されたワード線で使用され、バイアス電圧が隣接する非選択ワード線で使用される。従って、低レベルでのベリファイを避けるために、標準ベリファイレベルを実際にオフセットさせる代わりに１つ以上の隣接ワード線をバイアスすることによって、第１のプログラミングパスまたはプログラミングフェーズにおいてベリファイレベルは好ましくは仮想的にオフセットされる。
2010539631.tif 000002
【特許請求の範囲】
【請求項１】
ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリにおいて、１グループの個々のメモリセルを並行してプログラムする方法であって、
プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイされるように第１のパスで前記グループをプログラムするステップと、
プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルに対してベリファイされるように前記グループを次のパスでプログラムするステップと、を含み、
前記第１のパスで前記グループをプログラムするステップは、プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第１の隣接ワード線に印加される第１の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に関してベリファイするステップをさらに含む方法。
【請求項２】
請求項１記載の方法において、
前記ベリファイするステップは、第２の所定のバイアス電圧を第２の隣接ワード線に印加するステップをさらに含む方法。
【請求項３】
請求項１記載の方法において、
前記第１のパスで前記グループをプログラムするステップは、
（ａ）プログラムされる各メモリセルのしきい値電圧を高めるために所定量のプログラミング波形電圧を前記グループに並行して印加するステップと、
（ｂ）プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第１の隣接ワード線に印加される第１の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に関してベリファイするステップと、
（ｃ）前記グループ中のベリファイされたメモリセルのさらなるプログラミングを禁止するステップと、
前記グループの全てのメモリセルが全てベリファイされるまで（ａ）から（ｃ）までを反復するステップと、
をさらに含む方法。
【請求項４】
請求項３記載の方法において、
前記ベリファイするステップは、第２の所定のバイアス電圧を第２の隣接ワード線に印加するステップをさらに含む方法。
【請求項５】
請求項１記載の方法において、
前記グループを次のパスでプログラムするステップは、プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと前記第１の隣接ワード線に印加される所定の非選択ワード線電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルに関してベリファイするステップをさらに含む方法。
【請求項６】
請求項５記載の方法において、
前記ベリファイするステップは、第２の所定のバイアス電圧を第２の隣接ワード線に印加するステップをさらに含む方法。
【請求項７】
請求項１記載の方法において、
前記不揮発性メモリは、ＮＡＮＤタイプのものである方法。
【請求項８】
不揮発性メモリであって、
１セットのワード線および１セットのビット線によりアドレス指定可能なメモリセルのアレイと、  並行してプログラミングおよびベリファイを行うための１グループのメモリセルの各々のための読み出し／書き込み回路と、
個々のワード線のためのワード線電圧源と個々のビット線のためのビット線電圧源と、を備え、
前記読み出し／書き込み回路が各メモリセルを第１のパスおよび第２のパスでプログラムするために個々のワード線のための前記ワード線電圧源と協力し、
前記第１のパスでは、関連するターゲットしきい値レベルをプログラムされるメモリセルにアクセスするワード線に印加すると共に第１の所定のバイアス電圧を第１の隣接ワード線に印加する前記ワード線電圧源を用いて感知を行うことによって、前記読み出し／書き込み回路が、メモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に関してベリファイする不揮発性メモリ。
【請求項９】
請求項８記載の不揮発性メモリにおいて、
前記ベリファイすることは、前記ワード線電圧源に、第２の所定のバイアス電圧を第２の隣接ワード線に印加させることを含む不揮発性メモリ。
【請求項１０】
請求項８記載の不揮発性メモリにおいて、
前記グループを次のパスでプログラムすることは、関連するターゲットしきい値レベルをプログラムされる個々のメモリセルにアクセスするワード線に印加すると共に所定の非選択ワード線電圧を前記第１の隣接ワード線に印加する前記ワード線電圧源を用いて感知を行うことによって、前記読み出し／書き込み回路がメモリセルを関連するターゲットしきい値レベルに関してベリファイすることをさらに含む不揮発性メモリ。
【請求項１１】
請求項１０記載の不揮発性メモリにおいて、
前記ベリファイすることは、前記ワード線電圧源に第２の所定のバイアス電圧を第２の隣接ワード線に印加させることをさらに含む不揮発性メモリ。
【請求項１２】
請求項８記載の不揮発性メモリにおいて、
前記不揮発性メモリは、ＮＡＮＤタイプのものである不揮発性メモリ。
【請求項１３】
ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリにおいて、１グループの個々のメモリセルを並行してプログラムする方法であって、
プログラムされる個々のメモリセルの各々が、関連するターゲットしきい値レベルより所定のオフセットだけ手前の粗大ベリファイレベルに対してベリファイされるように、前記グループを初めに粗大フェーズでプログラムするステップと、
前記グループ中の、粗大ベリファイレベルに関してベリファイされたメモリセルを精密フェーズでプログラムするステップであって、前記精密フェーズでは、プログラミングが遅くされ、メモリセルが関連するターゲットしきい値レベルに関してベリファイされるステップと、を含み、
前記グループを初めに粗大フェーズでプログラムするステップは、実際上、プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第１の隣接ワード線に印加される第１の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを粗大ベリファイレベルに関してベリファイするステップをさらに含む方法。
【請求項１４】
請求項１３記載の方法において、
前記グループを初めに粗大フェーズでプログラムするステップは、前記粗大フェーズでプログラムされるメモリセルに実質的にゼロ電圧の第１のビット線電圧を印加するステップをさらに含む方法。
【請求項１５】
請求項１３記載の方法において、
前記グループを精密フェーズでプログラムするステップは、前記精密フェーズでプログラムされるメモリセルに、ゼロよりは高くて電源電圧よりは低い中間電圧の第２のビット線電圧を印加するステップを含む方法。
【請求項１６】
請求項１５記載の方法において、
前記不揮発性メモリは、ＮＡＮＤタイプのものである方法。
【請求項１７】
不揮発性メモリであって、
１セットのワード線および１セットのビット線によりアドレス指定可能なメモリセルのアレイと、  並行してプログラミングおよびベリファイを行うための１グループのメモリセルの各々のための読み出し／書き込み回路と、
個々のワード線のためのワード線電圧源と個々のビット線のためのビット線電圧源と、を備え、
前記読み出し／書き込み回路が各メモリセルを粗大フェーズおよび精密フェーズでプログラムするために個々のワード線のための前記ワード線電圧源と協力し、
前記粗大フェーズにおいて、実際上、プログラムされるメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルを印加すると共に第１の所定のバイアス電圧を第１の隣接ワード線に印加する前記ワード線電圧源を用いて感知を行うことによって、前記読み出し／書き込み回路が、メモリセルを粗大ベリファイレベルに関してベリファイする不揮発性メモリ。
【請求項１８】
請求項１７記載の不揮発性メモリにおいて、
前記グループを粗大フェーズでプログラムすることは、前記粗大フェーズでプログラムされるメモリセルに実質的にゼロ電圧の第１のビット線電圧を印加することをさらに含む不揮発性メモリ。
【請求項１９】
請求項１７記載の不揮発性メモリにおいて、
前記グループを精密フェーズでプログラムすることは、前記精密フェーズでプログラムされるメモリセルに、ゼロよりは高くて電源電圧よりは低い中間電圧の第２のビット線電圧を印加することを含む不揮発性メモリ。
【請求項２０】
請求項１７記載の不揮発性メモリにおいて、
前記不揮発性メモリは、ＮＡＮＤタイプのものである不揮発性メモリ。
【請求項２１】
ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリにおいて、所定のオフセットを伴うターゲットしきい値電圧レベルに関して１グループのメモリセルを並行してプログラムする方法であって、
プログラムされる各メモリセルのしきい値電圧を高めるために１つの量のプログラミング波形電圧を前記グループのメモリセルに並行して印加するステップと、
前記グループのメモリセルにアクセスするワード線に所定のしきい値電圧レベルを印加するステップと、
所定のしきい値電圧レベルを所定のオフセットだけ仮想的にオフセットさせることと同等であるような所定のバイアス電圧レベルを隣接ワード線に印加するステップと、
プログラムされた前記グループのメモリセルを、仮想的にオフセットされた所定のしきい値レベルに関してベリファイするために感知するステップと、
を含む方法。
【請求項２２】
不揮発性メモリであって、
１セットのワード線により１行ずつ、および１セットのビット線により１列ずつ、アドレス指定可能なメモリセルのアレイと、
並行してプログラミングおよびベリファイを行うための１グループのメモリセルの各々のための読み出し／書き込み回路と、を備え、
ベリファイ中に、前記グループのメモリセルにアクセスするワード線に所定のしきい値電圧レベルを印加すると共に隣接ワード線に所定のバイアス電圧を印加するために前記読み出し／書き込み回路と協力する電源とを含み、前記所定のバイアス電圧は、所定のしきい値電圧レベルを所定のオフセットだけ仮想的にオフセットさせることと同等である不揮発性メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリのための技術に関する。
【背景技術】
【０００２】
半導体メモリは、種々の電子装置用にポピュラーとなっている。例えば、不揮発性半導体メモリは、携帯電話機、デジタルカメラ、個人用携帯情報端末（ＰＤＡ）、モバイル計算装置、ノンモバイル計算装置およびその他の装置に用いられている。最もポピュラーな不揮発性半導体メモリの中に、電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）およびフラッシュメモリがある。
【０００３】
ＥＥＰＲＯＭおよびフラッシュメモリは、両方とも、半導体基板内のチャネル領域の上に位置してチャネル領域から絶縁されているフローティングゲートを利用する。フローティングゲートはソース領域とドレイン領域との間に位置する。コントロールゲートはフローティングゲートの上に設けられ、フローティングゲートから絶縁される。トランジスタのしきい値電圧は、フローティングゲート上に保持されている電荷の量により制御される。すなわち、そのソースおよびドレインの間の導通を許すためにトランジスタがオンに転換される前にコントロールゲートに印加されなければならない電圧の最低量は、フローティングゲート上の電荷のレベルにより制御される。
【０００４】
ＥＥＰＲＯＭ、またはＮＡＮＤフラッシュメモリ装置などのフラッシュメモリ装置をプログラムするときには、通例プログラム電圧がコントロールゲートに印加されると共にビット線が接地される。チャネルからの電子がフローティングゲートに注入される。電子がフローティングゲートに集積されるとき、フローティングゲートは負に充電され、メモリセルのしきい値電圧はメモリセルがプログラム済み状態となるように高められる。プログラミングに関するより多くの情報を、その全体が本願明細書において参照により援用されている「Source Side Self-Boosting Technique For Non-Volatile Memory 」という米国特許第６，８５９，３９７号（特許文献１）および「Detecting Over Programmed Memory」という米国特許第６，９１７，５４５号（特許文献２）で見出すことができる。
【０００５】
いくつかのＥＥＰＲＯＭとフラッシュメモリ装置とは２つの範囲の電荷を蓄積するために使用されるフローティングゲートを有し、従って、メモリセルは２つの状態（消去済み状態およびプログラム済み状態）の間でプログラム／消去され得る。このようなフラッシュメモリ装置は、時にはバイナリフラッシュメモリ装置と称される。
【０００６】
禁止範囲により分離された複数の識別可能な許容される／妥当なプログラム済みしきい値電圧範囲を識別することにより、多状態フラッシュメモリ装置が実現される。各々の識別可能なしきい値電圧範囲は、記憶装置において符号化されるデータビットのセットのための１つの所定値に対応する。
【０００７】
隣接するフローティングゲートに蓄積された電荷に基づく電界の結合のために、フローティングゲートに蓄積された見かけ上の電荷にシフトが発生する可能性がある。このフローティングゲート間結合現象は、その全体が本願明細書において参照により援用されている米国特許第５，８６７，４２９号（特許文献３）に記載されている。ターゲットのフローティングゲートに隣接するフローティングゲートの一例は、同じワード線に接続されかつ隣接するビット線に接続されているフローティングゲートを含む。
【０００８】
多状態装置では、許容されるしきい値電圧範囲と禁止範囲とはバイナリ装置の場合より狭いので、フローティングゲート間結合の効果は多状態装置に関しては大きな関心事である。従って、フローティングゲート間結合は、メモリセルが許容されるしきい値電圧範囲から禁止範囲へ移されるという結果をもたらす可能性がある。
【０００９】
フローティングゲート間結合は、別々のときにプログラムされた隣接するメモリセルのセット間で生じ得る。例えば、第１のメモリセルは、一セットのデータに対応するレベルの電荷をそのフローティングゲートに加えるためにプログラムされる。その後、第２のセットのデータに対応するレベルの電荷をそのフローティングゲートに加えるために１つ以上の隣接するメモリセルがプログラムされる。その隣接するメモリセルのうちの１つ以上がプログラムされた後、第１のメモリセルから読み出される電荷レベルは、隣接するメモリセル上の電荷が第１のメモリセルに結合されるという効果のために、プログラムされたものとは異なるように見える。隣接するメモリセルからの結合は、読み出される見かけ上の電荷レベルを、格納されているデータの誤読につながるのに充分な量だけシフトさせる可能性がある。
【００１０】
フローティングゲート間結合は、同時にプログラムされた隣接するメモリセルのセット間でも発生し得る。例えば、２つの隣接する多状態メモリセルは、第１のメモリセルが低いほうのしきい値電圧に対応する状態にプログラムされ、第２のメモリセルが高いほうのしきい値電圧に対応する状態にプログラムされるように、異なるターゲットレベルにプログラムされ得る。低いほうのしきい値電圧に対応する状態にプログラムされるメモリセルは、第２のメモリセルが高いほうのしきい値電圧に対応する状態に達する前に、その状態に達してさらなるプログラミングから締め出されそうである。第２のメモリセルは、高いほうのしきい値電圧に対応する状態に達した後、第１のメモリセルと結合して、プログラムされたのよりも高い見かけ上のしきい値電圧を第１のメモリセルに持たせ得る。
【００１１】
メモリセルのサイズが小さくなるに連れて、短チャネル効果と、より大きな酸化物厚／結合比変動と、より大きなチャネルのドーパント変動に起因してしきい値電圧の自然なプログラミング分布および消去分布は大きくなり、そのため隣接する状態間の利用可能な間隔が小さくなると思われる。この効果は、２状態だけを使用するメモリ（バイナリメモリ）より多状態メモリについて遥かに重要である。さらに、ワード線間の間隔の減少とビット線間の間隔の減少も、隣接するフローティングゲート間の結合を大きくする。
従って、隣接するフローティングゲート間の結合の効果を減少させる必要がある。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】米国特許第６，８５９，３９７号
【特許文献２】米国特許第６，９１７，５４５号
【特許文献３】米国特許第５，８６７，４２９号
【特許文献４】米国特許第５，５７０，３１５号
【特許文献５】米国特許第５，７７４，３９７号
【特許文献６】米国特許第６，０４６，９３５号
【特許文献７】米国特許第５，３８６，４２２号
【特許文献８】米国特許第６，４５６，５２８号
【特許文献９】米国特許出願公開第２００３／０００２３４８号
【特許文献１０】米国特許出願第１１／０２６，５３６号
【特許文献１１】米国特許出願公開第２００４／００５７２８７号
【特許文献１２】米国特許出願公開第２００４／０１０９３５７号
【特許文献１３】米国特許出願第１１／０１５，１９９号
【特許文献１４】米国特許出願第１１／０９９，１３３号
【特許文献１５】米国特許出願第１１／３２１，９５３号
【特許文献１６】米国特許第６，２２２，７６２号
【特許文献１７】米国特許出願公開第２００４／０２５５０９０号
【特許文献１８】米国特許出願第１１／０１３，１２５号
【特許文献１９】米国特許出願第１１／０９９，０４９号
【特許文献２０】米国特許第６，８８８，７５８号
【特許文献２１】米国特許第７，１９６，９２８号
【特許文献２２】米国特許出願公開第２００６／０２２１７１４号
【特許文献２３】米国特許出願第１１／３７７，９７２号
【特許文献２４】米国特許第６，７８１，８７７号
【非特許文献】
【００１３】
【非特許文献１】Chan et al., "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device," IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95
【非特許文献２】Nozaki et al., "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application," IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501
【非特許文献３】William D. BrownおよびJoe E. Brewer により編集された「Nonvolatile Semiconductor Memory Technology 」，ＩＥＥＥ  Ｐｒｅｓｓ（１９９８年）のセクション１．２
【非特許文献４】Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545
【発明の概要】
【００１４】
ターゲットメモリ状態と隣接するセルの前もって判定された状態との両方に依存するベリファイレベル
本発明の一般的な態様に従って、隣接するメモリセル上の電荷に起因する摂動（ユーピン効果）は、所与のターゲット状態へのセルのプログラミング中に、隣接するメモリセルに後にプログラムされる摂動を引き起こす電荷に関わらずセルから正しいターゲット状態が読み出されるようにベリファイレベルを適宜調整することによって、補償される。
【００１５】
ユーピン効果を最小にするためのベリファイレベルの仮想オフセットを伴うマルチパスプログラミング
本発明の他の１つの態様によれば、隣接する電荷蓄積素子に蓄積されている電荷に基づく電界の結合を最小にするために、プログラミングプロセスは少なくとも２パスで実行される。第１のパスは、標準ベリファイレベルからのオフセットを用いて各セルをそのターゲット状態の少し手前までプログラムする。第２のパスは、標準ベリファイレベルを用いてプログラミングを完了させる。第１のパスにおけるベリファイレベルは、低レベルでのベリファイを避けるために標準ベリファイレベルを実際にオフセットさせる代わりに１つ以上の隣接ワード線をバイアスすることによって、好ましくは仮想的にオフセットされる。
【００１６】
粗大ベリファイのために仮想ベリファイオフセットを用いる粗大／精密プログラミング
本発明の他の１つの態様によれば、関連するターゲットしきい値レベルに関してプログラムされるべきメモリセルのために、始めにより粗大ではあるが高速なプログラミングステップを用い、その後により精密なステップを用いることを含むプログラミング操作において、各粗大ステップの間のベリファイは、関連するターゲットしきい値レベルより所定のオフセットだけ低い粗大ベリファイレベルに関してのものであり、粗大ベリファイレベルは、ベリファイされるメモリセルにアクセスする選択されたワード線に印加される関連するターゲットしきい値レベルと、隣接するワード線に印加される所定のバイアス電圧とを用いて仮想的にもたらされる。一般的に、仮想オフセットは、隣接ワード線上の所定のバイアス電圧の逆関数である。
【００１７】
マルチパスプログラミングまたはマルチフェーズプログラミングは、両方とも、ユーピン効果を減少させるのに役立つ。それらは、ユーピン効果を補正するために隣接するセルのターゲット状態を判定することを含まないために簡単に実行できるので有利である。
【図面の簡単な説明】
【００１８】
【図１】ＮＡＮＤストリングの平面図である。
【図２】ＮＡＮＤストリングの等価回路図である。
【図３】ＮＡＮＤストリングの横断面図である。
【図４】ＮＡＮＤフラッシュメモリセルのアレイの一部分のブロック図である。
【図５】不揮発性メモリシステムのブロック図である。
【図６】不揮発性メモリシステムのブロック図である。
【図７】メモリアレイのブロック図である。
【図８】センスブロックの一実施形態を描いたブロック図である。
【図９】センスモジュールの一実施形態の略図である。
【図１０】センスモジュールの一実施形態のためのタイミング図である。
【図１１】不揮発性メモリをプログラムするためのプロセスの一実施形態を記述したフローチャートである。
【図１２】不揮発性メモリセルのコントロールゲートに印加される波形の例である。
【図１３】しきい値電圧分布のセットの例を描いた図である。
【図１４】しきい値電圧分布のセットの例を描いた図である。
【図１５】データを読み出すときに実行されるプロセスの一実施形態を記述したフローチャートである。
【図１６】データを読み出すときに実行されるプロセスの一実施形態を記述したフローチャートである。
【図１７】隣接するビット線からデータを感知するためのプロセスの一実施形態を記述したフローチャートである。
【図１８】隣接するビット線からデータを感知するためのプロセスの一実施形態を記述したタイミング図である。
【図１９】読み出しプロセスの一実施形態を記述したフローチャートである。
【図２０】プログラム済み状態についてのしきい値電圧の分布を描いた図である。
【図２１】プログラミングのプロセスの一実施形態を記述したグラフである。
【図２２】プログラミングのプロセスの一実施形態を記述したグラフである。
【図２３】プログラミングのプロセスの一実施形態を記述したフローチャートである。
【図２４】ベリファイするためのプロセスの一実施形態を記述したフローチャートである。
【図２５】データを読み出すためのプロセスの一実施形態を記述したフローチャートである。
【図２６】データを読み出すための一実施形態を記述したタイミング図である。
【図２７】メモリシステムを設定し使用するプロセスの一実施形態を記述したフローチャートである。
【図２８】メモリシステムを設定するためのプロセスの一実施形態を記述したフローチャートである。
【図２９】メモリシステムを設定するためのプロセスの一実施形態を記述したフローチャートである。
【図３０】メモリシステムを設定するためのプロセスの一実施形態を記述したフローチャートである。
【図３１】メモリシステムを設定するためのプロセスの一実施形態を記述したフローチャートである。
【図３２】データ依存ベリファイレベルを用いるプログラミング中にユーピン効果を補償する方法を示す流れ図である。
【図３３】本発明を図で示すのに適するメモリアレイの一部分を示す。
【図３４】隣接する電荷に起因する摂動を補償するためにプログラミング中にＷＬｎ上のベリファイレベルを調整することを示す。
【図３５】ワンパスのデータ依存ベリファイレベルが現在のワード線だけに印加される図３２に示されているベリファイするステップの一実施形態を示す流れ図である。
【図３６Ａ】４つの別個のクラスタをなして１つのしきい値ウィンドウ内に分散した４つのメモリ状態をサポートするメモリセルの代表的な集団の例を示す。
【図３６Ｂ】高くプログラムされた隣接セルの、現在感知されているセルのプログラム済みしきい値レベルに対する影響を示す。
【図３７Ａ】感知されている現在のセルに対するいろいろな隣のものからのユーピン効果の寄与を示す。
【図３７Ｂ】ユーピン効果を軽減するための、マルチパスプログラミングの第１のパスについてのベリファイレベルのシフトを示す。
【図３８】好ましい実施形態に従う、ベリファイ中のワード線上の標準のベリファイレベルと、その標準のベリファイレベルに仮想オフセットをもたらすための隣接ワード線のバイアスとの組み合わせを示す。
【図３９】ワンパスデータ依存ベリファイレベルが現在のワード線と隣接ワード線との両方に印加される、図３２に示されているベリファイステップの他の１つの好ましい実施形態を示す流れ図である。
【図４０】２ビットのメモリセルを持っていて、そのページが隣接ワード線上のメモリセル間のユーピン効果を最小にするのに最適なシーケンスでプログラムされるメモリの例を示す。
【図４１】図５に示されている記憶装置と通信するホストを示す。
【図４２】次のワード線のためのデータのページを得るための他の１つの手法を示す。
【図４３】消去済み状態にあるセルの集団を有するメモリ、およびそれらがユーピン効果による影響をどのように受け得るかを示す。
【図４４】全ての隣接する隣のものからの摂動を補正するために調整されたベリファイレベルでのソフトプログラミング後の消去済みセルの分布の効果を示す。
【図４５】１つの好ましい実施形態に従う、両側訂正を行うための隣接ワード線のバイアスを示す。
【図４６】所定のしきい値レベルに関してしきい値レベルの明確な分布を有するメモリセルのグループを作ることの流れ図である。
【図４７】本発明の１つの一般的な態様に従う、第１のパスがベリファイレベルに仮想オフセットを使用するマルチパスプログラミングによってユーピン効果を減少させることの流れ図である。
【図４８】本発明の１つの好ましい実施形態に従う、第１のパスがベリファイレベルに仮想オフセットを使用するマルチパスプログラミングによりユーピン効果を減少させることの流れ図である。
【図４９】この好ましい実施形態に従う、プログラミングの粗大フェーズにおけるベリファイの間に標準ベリファイレベルに対して仮想オフセットをもたらすための、ベリファイされる選択されたワード線上の標準ベリファイレベルと隣接ワード線のバイアスとの組み合わせを示す。
【図５０】粗大または精密プログラミングフェーズにおけるメモリセルのためのビット線電圧を示す。
【図５１】本発明の１つの好ましい実施形態に従う、粗大ベリファイレベルが仮想的に実現される粗大／精密プログラミングを示す流れ図である。
【発明を実施するための形態】
【００１９】
本発明を実施するのに適するメモリシステムの一例はＮＡＮＤフラッシュメモリ構造を使用し、それは、２つの選択ゲート間に複数のトランジスタを直列に配置することを含む。それらの直列のトランジスタと選択ゲートとはＮＡＮＤストリングと称される。図１は、１つのＮＡＮＤストリングを示す平面図である。図２は、その等価回路である。図１および２に描かれているＮＡＮＤストリングは第１の選択ゲート１２０と第２の選択ゲート１２２との間に挟まれた直列の４つのトランジスタ１００，１０２，１０４および１０６を含む。選択ゲート１２０は、ビット線１２６へのＮＡＮＤストリング接続をゲーティングする。選択ゲート１２２は、ソース線１２８へのＮＡＮＤストリング接続をゲーティングする。選択ゲート１２０は、コントロールゲート１２０ＣＧに適切な電圧を印加することにより制御される。選択ゲート１２２は、コントロールゲート１２２ＣＧに適切な電圧を印加することにより制御される。トランジスタ１００，１０２，１０４および１０６の各々はコントロールゲートおよびフローティングゲートを有する。トランジスタ１００はコントロールゲート１００ＣＧおよびフローティングゲート１００ＦＧを有する。トランジスタ１０２はコントロールゲート１０２ＣＧおよびフローティングゲート１０２ＦＧを含む。トランジスタ１０４はコントロールゲート１０４ＣＧおよびフローティングゲート１０４ＦＧを含む。トランジスタ１０６はコントロールゲート１０６ＣＧおよびフローティングゲート１０６ＦＧを含む。コントロールゲート１００ＣＧはワード線ＷＬ３に接続され（あるいはワード線ＷＬ３であり）、コントロールゲート１０２ＣＧはワード線ＷＬ２に接続され、コントロールゲート１０４ＣＧはワード線ＷＬ１に接続され、コントロールゲート１０６ＣＧはワード線ＷＬ０に接続されている。一実施形態では、トランジスタ１００，１０２，１０４および１０６はそれぞれメモリセルである。他の実施形態では、メモリセルは複数のトランジスタを含むか、あるいは図１および２に描かれているものとは異なり得る。選択ゲート１２０は選択線ＳＧＤに接続されている。選択ゲート１２２は選択線ＳＧＳに接続されている。
【００２０】
図３は、前述したＮＡＮＤストリングの横断面図を提供する。図３に描かれているように、ＮＡＮＤストリングのトランジスタはｐウェル領域１４０に形成される。各トランジスタは、コントロールゲート（１００ＣＧ，１０２ＣＧ，１０４ＣＧおよび１０６ＣＧ）とフローティングゲート（１００ＦＧ，１０２ＦＧ，１０４ＦＧおよび１０６ＦＧ）とから成る積層されたゲート構造を含む。コントロールゲートとフローティングゲートとは、通例、ポリシリコン層を堆積させることにより形成される。フローティングゲートは、酸化物または他の誘電体膜の上のｐウェルの表面上に形成される。コントロールゲートはフローティングゲートの上に形成され、ポリシリコン間誘電体層がコントロールゲートとフローティングゲートとを分離する。メモリセル（１００，１０２，１０４および１０６）のコントロールゲートはワード線を形成する。Ｎ＋ドーピングされた拡散領域１３０，１３２，１３４，１３６および１３８は隣接するセル間で共有され、それらを通してセルが互いに直列に接続されてＮＡＮＤストリングを形成する。これらのＮ＋ドーピングされた領域は、セルの各々のソースおよびドレインを形成する。例えば、Ｎ＋ドーピングされた領域１３０はトランジスタ１２２のドレインおよびトランジスタ１０６のためのソースとして働き、Ｎ＋ドーピングされた領域１３２はトランジスタ１０６のためのドレインおよびトランジスタ１０４のためのソースとして働き、Ｎ＋ドーピングされた領域１３４はトランジスタ１０４のためのドレインおよびトランジスタ１０２のためのソースとして働き、Ｎ＋ドーピングされた領域１３６はトランジスタ１０２のためのドレインおよびトランジスタ１００のためのソースとして働き、Ｎ＋ドーピングされた領域１３８はトランジスタ１００のためのドレインおよびトランジスタ１２０のためのソースとして働く。Ｎ＋ドーピングされた領域１２６はＮＡＮＤストリングのためのビット線に接続し、Ｎ＋ドーピングされた領域１２８は複数のＮＡＮＤストリングのための共通ソース線に接続する。
【００２１】
図１〜３はＮＡＮＤストリング内に４つのメモリセルを示しているけれども、４つのトランジスタの使用は単に一例として提供されているに過ぎないことに留意するべきである。本願明細書に記載されている技術と共に使用されるＮＡＮＤストリングは、４個未満のメモリセルまたは５個以上のメモリセルを持つことができる。例えば、いくつかのＮＡＮＤストリングは８個のメモリセル、１６個のメモリセル、３２個のメモリセル、６４個のメモリセルなどを含み得る。本願明細書の議論はＮＡＮＤストリング中のどんな特定の数のメモリセルにも限定されない。
【００２２】
各メモリセルは、データをアナログ形またはデジタル形で記憶することができる。１ビットのデジタルデータを記憶するとき、メモリセルの可能なしきい値電圧の範囲は２つの範囲に分割され、それらに論理データ「１」および「０」が割当てられる。ＮＡＮＤ形フラッシュメモリの一例では、電圧しきい値はメモリセルが消去された後は負であり、論理「１」として定義される。しきい値電圧はプログラム操作後は正であり、論理「０」として定義される。しきい値電圧が負であって、０ボルトをコントロールゲートに印加することによって読み出しが試みられたとき、メモリセルはオンに転換して、論理１が記憶されていることを示す。しきい値電圧が正であって、コントロールゲートに０ボルトを印加することによって読み出し操作が試みられたとき、メモリセルはオンに転換しなくて、そのことは論理ゼロが記憶されていることを示す。１ビットのデジタルデータを記憶するメモリセルはバイナリメモリセルと称される。
【００２３】
メモリセルは、複数ビットのデジタルデータを記憶することもできる。そのようなメモリセルは多状態メモリセルと称される。多状態メモリセルのためのしきい値電圧ウィンドウは、その状態の数に分割される。例えば、４つの状態が用いられるならば、データ値「１１」、「１０」、「０１」、および「００」に割当てられた４つのしきい値電圧範囲があり得る。ＮＡＮＤ形メモリの一例では、消去操作後のしきい値電圧は負であって「１１」として定義される。正のしきい値電圧は「１０」、「０１」、および「００」の状態のために使用される。
【００２４】
ＮＡＮＤ形フラッシュメモリおよびその動作の適切な例は、その全体が本願明細書において参照により援用されている、米国特許第５，５７０，３１５号（特許文献４）、米国特許第５，７７４，３９７号（特許文献５）、米国特許第６，０４６，９３５号（特許文献６）、米国特許第５，３８６，４２２号（特許文献７）、米国特許第６，４５６，５２８号（特許文献８）、および米国特許出願第０９／８９３，２７７号（米国特許出願公開第２００３／０００２３４８号）（特許文献９）に提供されている。ＮＡＮＤフラッシュメモリのほかに、他のタイプの不揮発性メモリも本発明と共に使用され得る。
【００２５】
フラッシュＥＥＰＲＯＭシステムにおいて有益な他の１つのタイプのメモリセルは、電荷を不揮発性に蓄積するために伝導性フローティングゲートの代わりに非伝導性の誘電体材料を利用する。そのようなセルは、Chan et al., "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device," IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95 （非特許文献１）に記載されている。酸化ケイ素、窒化ケイ素および酸化ケイ素（「ＯＮＯ」）から形成される３層誘電体が伝導性コントロールゲートとメモリセルのチャネルの上の半電導性基板の表面との間に挟まれている。セルは、電子をセルのチャネルから窒化物に注入することによりプログラムされ、ここでそれらは限られた領域に捕獲され蓄積される。この蓄積された電荷は、その後、セルのチャネルの一部分のしきい値電圧を検出可能な仕方で変化させる。セルは、ホットホールを窒化物に注入することにより消去される。Nozaki et al., "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application," IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501 （非特許文献２）も参照されたい。ここで、ドーピングされたポリシリコンゲートが別の選択トランジスタを形成するためにメモリセルチャネルの一部分の上に広がる分割ゲート構成の類似セルが記述されている。前述した２つの論文は、その全体が本願明細書において参照により援用されている。本願明細書において参照により援用されている、William D. BrownおよびJoe E. Brewer により編集された「Nonvolatile Semiconductor Memory Technology 」，ＩＥＥＥ  Ｐｒｅｓｓ（１９９８年）のセクション１．２（非特許文献３）において言及されているプログラミング技術は、そのセクションにおいて、誘電体電荷トラッピング装置に応用可能であるとも記述されている。この段落に記述されているメモリセルは本発明と一緒にも使用され得る。従って、本願明細書に記載されている技術は、異なるメモリセルの誘電体領域の間の結合にも適用される。
【００２６】
各セルに２ビットを記憶させることへの他の１つのアプローチが、Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545（非特許文献４）に記載されている。ＯＮＯ誘電体層がソース拡散とドレイン拡散との間のチャネルを横断して広がる。１つのデータビットのための電荷はドレインに隣接して誘電体層内に局在させられ、他方のデータビットのための電荷はソースに隣接して誘電体層内に局在させられる。多状態データ記憶は、誘電体内の空間的に分離された電荷蓄積領域のバイナリ状態を別々に読み出すことにより得られる。この段落に記載されているメモリセルは本発明と一緒にも使用され得る。
【００２７】
図４は、図１〜３に示されているもののようなＮＡＮＤセルのアレイの例を示す。各列に沿って、ビット線２０６がＮＡＮＤストリング１５０のためのドレイン選択ゲートのドレイン端子１２６に結合されている。ＮＡＮＤストリングの各行に沿って、ソース線２０４は、ＮＡＮＤストリングのソース選択ゲートの全てのソース端子１２８を接続することができる。メモリシステムの一部としてのＮＡＮＤアーキテクチャアレイとその動作との例が、米国特許第５，５７０，３１５号（特許文献４）、第５，７７４，３９７号（特許文献５）、および第６，０４６，９３５号（特許文献６）に見出される。
【００２８】
メモリセルのアレイはメモリセルの多数のブロックに分割される。フラッシュＥＥＰＲＯＭシステムで普通であるように、ブロックは消去の単位である。すなわち、各ブロックは、一緒に消去される最少数のメモリセルを含む。各ブロックは、通例、数個のページに分割される。ページは、プログラミングの単位である。一実施形態では、個々のページはセグメントに分割され、セグメントは、基本プログラミング操作として一度に書き込まれる最少数のセルを含み得る。データの１つ以上のページが、通例、メモリセルの１つの行に格納される。１ページは、１つ以上のセクタを記憶することができる。セクタは、ユーザデータとオーバーヘッドデータとを含む。オーバーヘッドデータは、通例、セクタのユーザデータから計算された誤り訂正符号（ＥＣＣ）を含む。コントローラ（後で記載される）の一部分は、データがアレイにプログラムされるときにＥＣＣを計算し、アレイからデータが読み出されるときにそれをチェックする。あるいは、ＥＣＣおよび／または他のオーバーヘッドデータは、それらが関係するユーザデータとは異なるページに、あるいは異なるブロックにすら、格納される。ユーザデータの１つのセクタは、通例、磁気ディスクドライブにおける１セクタのサイズに対応する５１２バイトである。オーバーヘッドデータは、通例、付加的な１６〜２０バイトである。多数のページ、例えばおよそ８ページから３２，６４，１２８またはそれ以上のページが１つのブロックを形成する。
【００２９】
図５は、本発明の一実施形態に従って、１ページのメモリセルを並行して読み出し、またプログラムするための読み出し／書き込み回路を有する記憶装置２９６を示す。記憶装置２９６は１つ以上のメモリダイ２９８を含み得る。メモリダイ２９８は、メモリセルの２次元アレイ３００、制御回路３１０、および読み出し／書き込み回路３６５を含む。いくつかの実施形態では、メモリセルのアレイは３次元的であり得る。メモリセルは、ビット線、ワード線、ソース線、およびメモリアレイを制御するために使用される他の線などの種々の制御線により制御されアクセスされる。例えば、メモリアレイ３００は、行デコーダ３３０を介してワード線により、また列デコーダ３６０を介してビット線により、アドレス指定可能である。読み出し／書き込み回路３６５は、複数のセンスブロック４００を含み、１ページのメモリセルが並行して読み出されまたはプログラムされることを可能にする。通例、コントローラ３５０が、１つ以上のメモリダイ２９８と同じ記憶装置２９６（例えば、取り外し可能な記憶装置カード）に含まれる。線３２０を介してホストとコントローラ３５０との間で、また線３１８を介してコントローラと１つ以上のメモリダイ２９８との間で、コマンドおよびデータが転送される。
【００３０】
制御回路３１０は、メモリアレイ３００に対してメモリ操作を実行するために読み出し／書き込み回路３６５と協力する。制御回路３１０は、状態マシン３１２、オンチップのアドレスデコーダ３１４および電力制御モジュール３１６を含む。状態マシン３１２は、メモリ操作のチップレベル制御を提供する。オンチップのアドレスデコーダ３１４は、ホストまたはメモリコントローラにより使用されるものと、デコーダ３３０および３６０により使用されるハードウェアアドレスとの間のアドレスインターフェイスを提供する。電力制御モジュール３１６は、メモリ操作中にワード線およびビット線に供給される電力および電圧を制御する。
【００３１】
いくつかの実施例では、図５のコンポーネントのうちのいくつかは合併され得る。種々の設計において、図５の、メモリセルアレイ３００以外のコンポーネントのうちの１つ以上は（単独であるいは組み合わされて）、１つの管理回路と見なされ得る。例えば、管理回路は、制御回路３１０、状態マシン３１２、デコーダ３１４／３６０、電力制御３１６、センスブロック４００、読み出し／書き込み回路３６５、コントローラ３５０などのうちの任意の１つ、またはこれらの１つの組み合わせを含み得る。
【００３２】
図６は、図５に示されている記憶装置２９６の他の構成を示す。各側におけるアクセス線および回路の密度が半分に減るように、種々の周辺回路によるメモリアレイ３００へのアクセスはアレイの両側で対称的に実行される。従って、行デコーダは行デコーダ３３０Ａおよび３３０Ｂに分割され、列デコーダは列デコーダ３６０Ａおよび３６０Ｂに分割されている。同様に、読み出し／書き込み回路は、下からビット線に接続する読み出し／書き込み回路３６５Ａおよびアレイ３００の上からビット線に接続する読み出し／書き込み回路３６５Ｂに分割されている。このようにして、読み出し／書き込みモジュールの密度は本質的に二分の一減らされている。図６の装置は、図５の装置について前に記載されたように、コントローラも含むことができる。
【００３３】
図７と関連して、メモリセルアレイ３００の代表的な構造が記載される。一例として、１，０２４ブロックに分割されたＮＡＮＤフラッシュＥＥＰＲＯＭが記載される。各ブロックに格納されたデータは同時に消去され得る。一実施形態では、ブロックは、同時に消去されるメモリセルの最小単位である。各ブロックに、この例では、ビット線ＢＬ０，ＢＬ１・・・ＢＬ８５１１に対応する８，５１２の列がある。一実施形態では、読み出し操作およびプログラミング操作中に１ブロックの全ビット線が同時に選択され得る。１つの共通のワード線に沿い、いずれかのビット線に接続されているメモリセルは同時にプログラムされ得る。
【００３４】
他の１つの実施形態では、ビット線は偶数ビット線および奇数ビット線に分けられる。奇数／偶数ビット線アーキテクチャでは、１つの共通ワード線に沿い奇数ビット線に接続されているメモリセルは１つの時点でプログラムされ、１つの共通ワード線に沿い偶数ビット線に接続されているメモリセルは他の１つの時点でプログラムされる。
【００３５】
図７は、直列に接続されてＮＡＮＤストリングを形成する４つのメモリセルを示している。４つのセルが各ＮＡＮＤストリングに含まれるように示されているけれども、４つより多いあるいは少ない数が使用され得る（例えば、１６，３２，または他の数）。ＮＡＮＤストリングの一端子は（選択ゲートドレイン線ＳＧＤに接続されている）ドレイン選択ゲートを介して対応するビット線に接続され、他の１つの端子は（選択ゲートソース線ＳＧＳに接続されている）ソース選択ゲートを介してｃソースに接続されている。
【００３６】
図８は、センスモジュール３８０と称されるコア部分と、共通部分３９０とに分割された１つの特定のセンスブロック４００のブロック図である。一実施形態では、各ビット線のための別々のセンスモジュール３８０と、複数のセンスモジュール３８０のセットのための１つの共通部分３９０とがある。一例では、センスブロックは１つの共通部分３９０と８つのセンスモジュール３８０とを含む。１グループ内のセンスモジュールの各々は、データバス３７２を介して、関連する共通部分と通信する。さらなる詳細については、その全体が本願明細書において参照により援用されている２００４年１２月２９日に出願された「Non-Volatile Memory & Method With Shared Processing For An Aggregate Of Sense Amplifiers」という米国特許出願第１１／０２６，５３６号（特許文献１０）を参照されたい。
【００３７】
センスモジュール３８０は、接続されているビット線の伝導電流が所定のしきい値レベルより高いか低いかを判定するセンス回路３７０を含む。センスモジュール３８０は、接続されているビット線の電圧状態をセットするために使用されるビット線ラッチ３８２も含む。例えば、ビット線ラッチ３８２にラッチされた１つの所定の状態は、接続されているビット線がプログラム禁止を示す状態（例えば、Ｖｄｄ）に引かれるという結果をもたらす。
【００３８】
共通部分３９０は、プロセッサ３９２と、データラッチのセット３９４と、データラッチのセット３９４およびデータバス３２０の間に結合されたＩ／Ｏインターフェイス３９６とを含む。プロセッサ３９２は計算を行う。例えば、その機能の１つは、感知されたメモリセルに格納されているデータを判定して、その判定されたデータをデータラッチのセットに格納することである。データラッチのセット３９４は、読み出し操作中にプロセッサ３９２により判定されたデータビットを記憶するために使用される。それは、プログラミング操作中にデータバス３２０からインポートされたデータビットを記憶するためにも使用される。インポートされたデータビットは、メモリにプログラムされるべく意図された書き込みデータを表す。Ｉ／Ｏインターフェイス３９６は、データラッチ３９４とデータバス３２０との間のインターフェイスを提供する。
【００３９】
読み出しまたは感知の間、システムの動作は、アドレス指定されたセルへのいろいろなコントロールゲート電圧の供給を制御する状態マシン３１２の制御下にある。それが、メモリによりサポートされる種々のメモリ状態に対応する種々の所定のコントロールゲート電圧を通って進むとき、センスモジュール３８０はそれらの電圧のうちの１つでトリップすることができて、１つの出力がセンスモジュール３８０からバス３７２を介してプロセッサ３９２に提供される。その時点で、プロセッサ３９２は、センスモジュールの（１つまたは複数の）トリップ事象と、入力線３９３を介しての状態マシンからの印加されたコントロールゲート電圧に関する情報とを考慮することにより、結果としての状態を判定する。それは、その後、メモリ状態のためのバイナリエンコーディングを計算し、結果としてのデータビットをデータラッチ３９４に格納する。コア部分の他の実施形態では、ビット線ラッチ３８２は、センスモジュール３８０の出力をラッチするためのラッチとしての役割と、また前述したビット線ラッチとしての役割との両方のために役立つ。
【００４０】
いくつかの実施例は複数のプロセッサ３９２を含むであろうと予想される。一実施形態では、各プロセッサ３９２は、その各出力が共にワイヤードＯＲ接続されるように、１つの出力線（図９には描かれていない）を含む。いくつかの実施形態では、出力線は、ワイヤードＯＲ線に接続される前に、反転される。ワイヤードＯＲを受け取る状態マシンは、プログラムされる全てのビットが所望のレベルに達した時を判定することができるので、この構成は、プログラム−ベリファイプロセス中にプログラミングプロセスが完了した時を速やかに判定することを可能にする。例えば、各ビットがその所望のレベルに達したとき、そのビットについて論理ゼロがワイヤードＯＲ線に送られる（あるいはデータ１が反転される）。全てのビットがデータ０（あるいは反転されたデータ１）を出力すると、状態マシンはプログラミングプロセスを終わらせるべきことを知る。各プロセッサは８個のセンスモジュールと通信するので、状態マシンがワイヤードＯＲ線を８回読み出す必要があるか、あるいは、状態マシンがワイヤードＯＲ線を１回読み出すだけでよいように関連するビット線の結果を累算するための論理がプロセッサ３９２に付加される。同様に、論理レベルを正しく選択することにより、包括的状態マシンは、第１のビットがその状態を変化させた時を検出してアルゴリズムを適宜変化させることができる。
【００４１】
プログラムまたはベリファイの間、プログラムされるべきデータは、データバス３２０からデータラッチのセット３９４に格納されている。状態マシンの制御下のプログラム操作は、アドレス指定されたメモリセルのコントロールゲートに印加される１系列のプログラミング電圧パルスを含む。メモリセルが所望の状態にプログラムされたかどうか判定するために、各プログラミングパルス後にベリファイ操作が続く。プロセッサ３９２は、所望のメモリ状態に関連してベリファイされたメモリ状態を監視する。それら２つが一致するとき、プロセッサ２２２は、ビット線がプログラム禁止を示す状態に引かれるようにビット線ラッチ２１４をセットする。これは、ビット線に結合されているセルが、たとえそのコントロールゲートにプログラミングパルスが現れても、それ以上プログラムされることを妨げる。他の実施形態では、プロセッサは最初にビット線ラッチ３８２にロードし、センス回路はそれをベリファイプロセス中に禁止値にセットする。
【００４２】
データラッチスタック３９４は、センスモジュールに対応するデータラッチのスタックを包含する。一実施形態では、センスモジュール３８０あたりに３つのデータラッチがある。いくつかの実施例（しかし、必要とはされない）では、データラッチは、その中に格納されている並列データがデータバス３２０のための直列データに、またその逆に、変換されるように、シフトレジスタとして実現される。好ましい実施形態では、ｍ個のメモリセルの読み出し／書き込みブロックに対応する全てのデータラッチは、１ブロックのデータがシリアル転送によって入力または出力され得るように、互いにリンクされて１つのブロックシフトレジスタを形成する。特に、ｒ個の読み出し／書き込みモジュールのバンクは、そのデータラッチのセットの各々がデータを、あたかもそれらが読み出し／書き込みブロック全体のための１つのシフトレジスタの一部であるかのように、データバスの中にまたはデータバスの中からシーケンシャルにシフトさせるように、適応させられる。
【００４３】
不揮発性記憶装置の種々の実施形態の構造および／または動作に関する付加的な情報は、すべてその全体が本願明細書において参照により援用されている、（１）２００４年３月２５日に公開された「Non-Volatile Memory And Method With Reduced Source Line Bias Errors 」という米国特許出願公開第２００４／００５７２８７号（特許文献１１）、（２）２００４年６月１０日に公開された「Non-Volatile Memory And Method With Improved Sensing」という米国特許出願公開第２００４／０１０９３５７号（特許文献１２）、（３）２００４年１２月１６日にRaul-Adrian Cerneaにより出願された「Improved Memory Sensing Circuit And Method For Low Voltage Operation」という米国特許出願第１１／０１５，１９９号（特許文献１３）、（４）２００５年４月５日にJian Chen により出願された「Compensating For Coupling During Read Operations Of Non-Volatile Memory」という米国特許出願第１１／０９９，１３３号（特許文献１４）、および（５）２００５年１２月２８日にSiu Lung Chan およびRaul-Adrian Cerneaにより出願された「Reference Sense Amplifier For Non-Volatile Memory 」という米国特許出願第１１／３２１，９５３号（特許文献１５）に見出され得る。
【００４４】
図９は、センスモジュール３８０の一例を示すが、他の実施例も使用され得る。センスモジュール３８０は、ビット線絶縁トランジスタ５１２、ビット線プルダウン回路（トランジスタ５２２および５５０）、ビット線電圧クランプトランジスタ６１２、読み出しバス転送ゲート５３０、センスアンプ６００およびビット線ラッチ３８２を含む。ビット線絶縁トランジスタ５１２の一方の側は、ビット線ＢＬおよびコンデンサ５１０に接続されている。ビット線絶縁トランジスタ５１２の他方の側は、ビット線電圧クランプトランジスタ６１２およびビット線プルダウントランジスタ５２２に接続されている。ビット線絶縁トランジスタ５１２のゲートは、ＢＬＳと称される信号を受信する。ビット線電圧クランプトランジスタ５１２のゲートは、ＢＬＣと称される信号を受信する。ビット線電圧クランプトランジスタ５１２は、ノードＳＥＮ２において読み出しバス転送ゲート５３０に接続されている。読み出しバス転送ゲート５３０は、読み出しバス５３２に接続されている。ビット線電圧クランプトランジスタ５１２は、ノードＳＥＮ２においてセンスアンプ６００に接続する。図９の実施形態では、センスアンプ６００はトランジスタ６１３，６３４，６４１，６４２，６４３，６５４，６５４および６５８，並びにコンデンサＣｓａを含む。ビット線ラッチ３８２はトランジスタ６６１，６６２，６６３，６６４，６６６および６６８を含む。
【００４５】
一般的に、１つのワード線に沿うメモリセルは並行して操作される。従って、一致する数のセンスモジュールが並行して動作する。一実施形態では、並行して動作するセンスモジュールに１つのコントローラが制御信号およびタイミング信号を提供する。いくつかの実施形態では、１つのワード線に沿うデータは複数のページに分割され、データは一度に１ページ、あるいは一度に複数のページに読み出されるかまたはプログラムされる。
【００４６】
センスモジュール３８０は、ビット線絶縁トランジスタ５１２が信号ＢＬＳによりイネーブルされたときに１つのメモリセルのためのビット線（例えば、ビット線ＢＬ）に接続可能である。センスモジュール３８０は、センスアンプ６００によってメモリセルの伝導電流を感知し、読み出し結果をセンスノードＳＥＮ２におけるデジタル電圧レベルとしてラッチし、それをゲート５３０を介して読み出しバス５３２に出力する。
【００４７】
センスアンプ６００は、第２の電圧クランプ（トランジスタ６１２および６３４）、プリチャージ回路（トランジスタ５４１，６４２および６４３）、およびディスクリミネータまたは比較回路（トランジスタ６５４，６５６および６５８、およびコンデンサＣｓａ）を含む。一実施形態では、読み出されるメモリセルのコントロールゲートに基準電圧が印加される。基準電圧がメモリセルのしきい値電圧より大きければ、メモリセルをオンに転換してそのソースおよびドレインの間に電流を伝導する。基準電圧がメモリセルのしきい値電圧より大きくなければ、メモリセルはオンに転換せず、そのソースおよびドレインの間に電流を伝導しない。多くの実施例において、オン／オフは連続的な遷移であり、メモリセルはいろいろなコントロールゲート電圧に応答していろいろな電流を伝導し得る。メモリセルがオンで電流を伝導されているならば、その伝導される電流は、ノードＳＥＮにおける電圧を低下させ、他方の端子がＶｄｄであるコンデンサＣｓａの両端間の電圧を実際上充電しあるいは高める。ノードＳＥＮにおける電圧が所定の感知期間の間に所定のレベルまで放電したならば、センスアンプ６００は、コントロールゲート電圧に応答してメモリセルがオンに転換したことを報じる。
【００４８】
センスモジュール３８０の１つの特徴は、感知中にビット線への一定電圧供給を取り入れたことである。これはビット線電圧クランプトランジスタ６１２により好ましく実現され、これは、トランジスタ６１２がビット線ＢＬと直列で、ダイオードクランプのように動作する。そのゲートは、そのしきい値電圧ＶＴより上の所望のビット線電圧ＶＢＬに等しい一定電圧ＢＬＣにバイアスされる。このようにして、それは、ビット線をノードＳＥＮから絶縁し、プログラム−ベリファイまたは読み出しの間、所望のＶＢＬ＝０．５〜０．７ボルトなどのビット線のための一定電圧レベルをセットする。一般的に、ビット線電圧レベルは、長いプリチャージ時間を避けるために充分に低いけれども接地ノイズおよび他のファクタを避けるために充分に高いレベルにセットされる。
【００４９】
センスアンプ６００は、センスノードＳＥＮを通る伝導電流を感知して、伝導電流が所定値より高いか低いかを判定する。センスアンプは、感知結果を信号ＳＥＮ２としてデジタル形で読み出しバス５３２に出力する。
【００５０】
本質的にＳＥＮ２における信号の反転状態であり得るデジタル制御信号ＩＮＶも、プルダウン回路を制御するために出力される。感知された伝導電流が所定値より高いときには、ＩＮＶはハイでＳＥＮ２はローである。この結果は、プルダウン回路によって強められる。プルダウン回路は、制御信号ＩＮＶにより制御されるｎトランジスタ５２２と、制御信号ＧＲＳにより制御される他の１つのｎトランジスタ５５０とを含む。ＧＲＳ信号がローであるときには、ＩＮＶ信号の状態に関わらずビット線ＢＬが浮動させられることを可能にする。プログラミング中、ＧＲＳ信号はハイになって、ビット線ＢＬが接地に引かれてＩＮＶにより制御されることを可能にする。ビット線ＢＬが浮動させられる必要があるとき、ＧＲＳ信号はローになる。センスモジュール、センスアンプおよびラッチの他の設計も使用され得ることに留意するべきである。
【００５１】
読み出し／書き込み回路３６５は、１ページのメモリセルに対して同時に作用する。読み出し／書き込み回路３６５内の各センスモジュール３８０は、ビット線を介して対応するセルに結合されている。伝導電流は、ソース線を通って接地へ行く前に、センスモジュールからビット線を通ってメモリセルのドレインに流入してソースから流出する。集積回路チップにおいて、メモリアレイ内のセルのソースは、全て、メモリチップの何らかの外部接地パッド（例えば、Ｖｓｓパッド）に接続されているソース線の複数のブランチとして互いに結合される。ソース線の抵抗を減少させるために金属ストラップが使用されるときでも、メモリセルのソース電極と接地パッドとの間に有限の抵抗Ｒが残る。通例、接地ループ抵抗Ｒはおよそ５０オームである。
【００５２】
並行して感知されるメモリのページ全体について、ソース線を通って流れる総電流は、全ての伝導電流の合計である。一般的に、各メモリセルは、その電荷蓄積素子内にプログラムされた電荷の量に依存する伝導電流を有する。メモリセルの所与のコントロールゲート電圧に対して、少量の電荷が割合に高い伝導電流を生じさせる。メモリセルのソース電極と接地パッドとの間に有限の抵抗が存在するとき、抵抗における電圧降下はＶｄｒｏｐ＝ｉＴＯＴ  Ｒにより与えられる。
【００５３】
例えば、４，２５６本のビット線が、各々１μＡの電流で、同時に放電すれば、ソース線電圧降下は４，０００線×１μＡ／線×５０オーム〜０．２ボルトに等しくなる。このソース線バイアスは、メモリセルのしきい値電圧が感知されるときに０．２ボルトの感知エラーの原因となる。
【００５４】
１セットの実施形態において、ソース線バイアスを減少させる方法は、マルチパス感知のための特徴および技術を有する読み出し／書き込み回路により成し遂げられる。各パスは、所与の区分電流値より高い伝導電流を有するメモリセルを識別してシャットダウンするのに役立つ。通例、各パスで、所与の区分電流値は、在来のシングルパス感知のためのブレークポイント電流値に次第に収斂する。このようにして、その後のパスにおける感知は、高電流セルがシャットダウンされているから、ソース線バイアスによる影響をより少なく受けることになる。
【００５５】
例えば、マルチパス感知は２パスで実行され得る（ｊ＝０から１まで）。第１のパス後、ブレークポイントより高い伝導電流を有するメモリセルが識別されて、それらの伝導電流をオフにすることによって除去される。それらの伝導電流をオフにする１つの好ましい仕方は、それらのビット線におけるそれらのドレイン電圧を接地にセットすることである。第２のパスでは、ソース線バイアスからのエラーは低減される。３以上のパスも考えられる。ソース線バイアスがエラーを引き起こさない実施形態では、感知のために１パスが使用され得る。
【００５６】
図１０（Ａ）〜１０（Ｋ）は、読み出し／ベリファイ操作中のセンスモジュール３８０の一実施形態を説明するタイミング図を描いている。
フェーズ（０）：セットアップ
センスモジュール３８０（図９を参照）は、イネーブル信号ＢＬＳ（図１０（Ａ））を介して対応するビット線に接続されている。電圧クランプはＢＬＣ（図１０（Ｂ））でイネーブルされる。プリチャージトランジスタ６４２は、制御信号ＦＬＴ（図１０（Ｃ））で限定電流源としてイネーブルされる。
【００５７】
フェーズ（１）：制御されたプリチャージ
センスアンプ６００は、信号ＩＮＶ（図１０（Ｈ））をトランジスタ６５８を介して接地に引くリセット信号ＲＳＴ（図１０（Ｄ））により初期化される。従って、リセット時に、ＩＮＶはローにセットされる。同時に、ｐトランジスタ６６３は相補的信号ＬＡＴをＶddまたはハイに引く（図１０（Ｈ））。すなわち、ＬＡＴはＩＮＶのコンプリメントである。絶縁トランジスタ６３４は信号ＬＡＴにより制御される。従って、リセット後、絶縁トランジスタ６３４はイネーブルされてセンスノードＳＥＮ２をセンスアンプの内部センスノードＳＥＮに接続する。
【００５８】
プリチャージトランジスタ６４２は、内部センスノードＳＥＮおよびセンスノードＳＥＮ２を通してビット線ＢＬを所定期間にわたってプリチャージする。これは、ビット線を、その中での伝導を感知するために最適の電圧に至らせる。プリチャージトランジスタ６４２は、制御信号ＦＬＴ（「ＦＬＯＡＴ（浮動）」）により制御される。ビット線は、ビット線電圧クランプ６１２によりセットされる所望のビット線電圧のほうへ引き上げられる。引き上げの速さは、ビット線の伝導電流に依存する。伝導電流が小さいほど、引き上げは速い。
【００５９】
所定値より高い伝導電流を有するメモリセルがオフにされて、ソース線バイアスへのそれらの寄与がなくされたならばソース線バイアスに起因する感知エラーは最少にされるということを前に説明した。従って、プリチャージトランジスタ６４２は２つの機能を果たす。１つは、ビット線を最適感知電圧にプリチャージすることである。他方は、ＤＣ（直流）感知のための所定値より高い伝導電流を有するメモリセルを、それらがソース線バイアスへの寄与から除去され得るように、識別するのを助けることである。
【００６０】
ＤＣ感知は、ビット線に所定の電流を供給するための電流源のように振る舞うプリチャージ回路を提供することにより成し遂げられる。ｐトランジスタ６４２を制御する信号ＦＬＴは、所定の電流が流れるように「プログラムする」ような信号である。一例として、ＦＬＴ信号は、５００ｎＡにセットされた基準電流を有する電流ミラーから生成され得る。ｐトランジスタ６４２が電流ミラーの反転脚を形成するとき、それは同じ５００ｎＡを投入させる。
【００６１】
図１０（Ｉ１）〜１０（Ｉ４）は、７００ｎＡ，４００ｎＡ，２２０ｎＡおよび４０ｎＡの伝導電流を有するメモリセルにそれぞれ接続された例としての４つのビット線の電圧を示す。プリチャージ回路（これはトランジスタ６４２を含む）が、例えば、５００ｎＡの限界値を有する電流源であるとき、５００ｎＡを上回る伝導電流を有するメモリセルは、ビット線上の電荷を、それが蓄積できるよりも速く排出させる。従って、伝導電流７００ｎＡを有するビット線では、内部センスノードＳＥＮにおけるその電圧あるいは信号は０Ｖの近くに留まる（例えば、０．１ボルト、図１０（Ｉ１）を参照）。その一方で、メモリセルの伝導電流が５００ｎＡより低ければ、プリチャージ回路（これはトランジスタ６４２を含む）はビット線を充電し始めて、その電圧は、クランプされているビット線電圧（例えば、電圧クランプ６１２によりセットされた０．５Ｖ）のほうへ上昇し始める（図１０（Ｉ２）〜１０（Ｉ４））。相応して、内部センスノードＳＥＮは０Ｖ付近に留まるかあるいはＶｄｄへ引き上げられる（図１０（Ｇ））。一般的に、伝導電流が小さいほど、ビット線電圧はクランプされたビット線電圧へ速く充電される。従って、制御されたプリチャージフェーズ後にビット線の電圧を調べることにより、接続されているメモリセルが所定のレベルより高い伝導電流を有するかあるいは低い伝導電流を有するかを識別することが可能である。
【００６２】
フェーズ（２）：ＤＣラッチングと後のストローブからの高電流セルの除去
制御されるプリチャージフェーズ後、ノードＳＥＮがディスクリミネータ回路によって感知される最初のＤＣ高電流感知フェーズが始まる。感知は、所定のレベルより高い伝導電流を有するメモリセルを識別する。ディスクリミネータ回路は直列の２つのｐトランジスタ６５４および６５６を含み、それらは、信号ＩＮＶを記録するノードのためのプルアップとして作用する。ｐトランジスタ６５４は、ローになる読み出しストローブ信号ＳＴＢによりイネーブルされ、ｐトランジスタ６５６は、ローになる内部センスノードＳＥＮの信号によりイネーブルされる。高電流メモリセルは、０Ｖに近いか、あるいは、少なくとも、ｐトランジスタ６５６をオフに転換させるほど充分に高くはそのビット線がプリチャージされ得ない信号ＳＥＮを有する。例えば、弱いプルアップが５００ｎＡの電流に限定されるならば、それは７００ｎＡの伝導電流を有するセルをプルアップしない（図１０（Ｇ１））。ＳＴＢがラッチのためにローをストローブすると、ＩＮＶはＶddにプルアップされる。これは、ラッチ回路６６０をＩＮＶがハイでＬＡＴがローの状態にセットする（図１０（Ｈ１））。
【００６３】
ＩＮＶがハイでＬＡＴがローであるとき、絶縁ゲート６３０はディスエーブルされ、センスノードＳＥＮ２は内部センスノードＳＥＮから遮られる。同時に、ビット線はプルダウントランジスタ５２２によって接地に引かれる（図９および１０（Ｉ１））。これは、ビット線のどのような伝導電流をもオフに転換させ、それをソース線バイアスへの寄与から除く。
【００６４】
従って、センスモジュール３８０の１つの好ましい実施例では、限定電流源プリチャージ回路が使用される。これは、高電流を伝導しているビット線を識別して、後の感知でのソース線バイアスエラーを最小にするためにそれらをオフに転換させるための追加のあるいは代わりの方法（ＤＣ感知）を提供する。
【００６５】
他の１つの実施形態では、プリチャージ回路は、高電流ビット線の識別を助けるように特別には構成されないけれども、メモリシステムに利用可能な最大電流の許容範囲内でなるべく速くビット線をプルアップしプリチャージするように最適化される。
【００６６】
フェーズ（３）：リカバリ／プリチャージ
以前にプルダウンされていなかったビット線の伝導電流の感知の前に、プリチャージ回路は、ローになる信号ＦＬＴによりアクティブ化されて、内部センスノードＳＥＮ２をＶddにプリチャージする（図１０（Ｃ）および図１０（Ｉ２）〜１０（Ｉ４））と共に、隣接するビット線の電圧の低下に起因して部分的に下方に結合されていたかもしれないビット線をプリチャージする。
【００６７】
フェーズ（４）：第１のＡＣ感知
一実施形態では、浮動させられた内部センスノードＳＥＮにおける電圧降下を判定することによりＡＣ（交流または過渡的）感知が実行される。これは、内部センスノードＳＥＮに結合されたコンデンサＣｓａを使用するディスクリミネータ回路により、また伝導電流がそれに充電する（ノードＳＥＮの電圧を低下させる）速度を考慮することにより、成し遂げられる。集積回路環境において、コンデンサＣｓａは通例トランジスタにより実現されるけれども、他の実施例が適切である。コンデンサＣｓａは所定の静電容量、例えば３０ｆＦを有し、それは最適電流決定のために選択され得る。区分電流値は、通例１００〜１，０００ｎＡの範囲であり、充電期間の適切な調整によりセットされ得る。
【００６８】
ディスクリミネータ回路は、内部センスノードＳＥＮの信号ＳＥＮを感知する。各感知の前に、内部センスノードＳＥＮの信号はプリチャージトランジスタ６４２によりＶddに引き上げられる。これは、最初に、コンデンサＣｓａの両端間の電圧をゼロにセットする。
【００６９】
センスアンプ６００が何時でも感知できるとき、プリチャージ回路は、ハイになるＦＬＴによりディスエーブルされる（図１０（Ｃ））。第１の感知期間Ｔ１は、ストローブ信号ＳＴＢのアサートにより終わらされる。感知期間中、導通しているメモリセルにより誘導される伝導電流がコンデンサに充電する。ＳＥＮの電圧は、コンデンサＣｓａがビット線の伝導電流の電流ドレイン作用を通して充電されているときにＶddから低下する。図１０（Ｇ）（曲線Ｇ２〜Ｇ４を参照）は、４００ｎＡ，２２０ｎＡおよび４０ｎＡの伝導電流を有するメモリセルにそれぞれ接続されている残りの３つの例としてのビット線に対応するＳＥＮノードを示し、低下は、より高い伝導電流を有するものについてはより急速である。
【００７０】
フェーズ（５）：第１のＡＣラッチと後の感知からのより高い電流のセルの除去
第１の所定の感知期間の終了時に、ＳＥＮノードは、ビット線の伝導電流に依存する何らかの電圧に低下している（図１０Ｇの曲線Ｇ２〜Ｇ４を参照）。一例として、この第１のフェーズにおける区分電流は３００ｎＡであるようにセットされる。コンデンサＣｓａ、感知期間Ｔ１およびｐトランジスタ６５６のしきい値電圧は、区分電流（例えば、３００ｎＡ）より高い伝導電流に対応するＳＥＮの信号が、トランジスタ６５６をオンに転換させるために充分に低くなるようなものである。ラッチ信号ＳＴＢがローをストローブすると、出力信号ＩＮＶはハイに引かれ、ラッチ３８２によりラッチされる（図１０（Ｅ）および図１０（Ｈ）（曲線Ｈ２））。その一方で、区分電流より低い伝導電流に対応する信号ＳＥＮは、トランジスタ６５６をオンに転換させることのできない信号ＳＥＮを生じさせる。この場合、ラッチ３８２は不変のままであり、その場合にはＬＡＴはハイのままである（図１０（Ｈ３）および１０（Ｈ４））。従って、ディスクリミネータ回路が、実際上、感知期間によりセットされる基準電流に関してビット線の伝導電流の高さを判定することが分かる。
【００７１】
センスアンプ６００は第２の電圧クランプトランジスタ６１２も含み、その目的は、トランジスタ６１２のドレインの電圧を、ビット線電圧クランプ６１０が適切に機能するように充分に高く保つことである。前述したように、ビット線電圧クランプ６１０は、ビット線電圧を所定値ＶBL、例えば０．５Ｖにクランプする。これは、トランジスタ６１２のゲート電圧ＢＬＣがＶBL＋ＶT にセットされること（ここで、ＶT はトランジスタ６１２のしきい値電圧である）、およびセンスノード５０１に接続されているドレインがソースより大きいこと、すなわち信号ＳＥＮ２＞ＶBLを必要とする。特に、電圧クランプの構成が与えられたならば、ＳＥＮ２はＸＸ０−ＶT またはＢＬＸ−ＶT のうちの小さいほうより高くあるべきではなく、ＳＥＮは低くあるべきではない。感知中、絶縁ゲート６３０は素通り（ｐａｓｓ−ｔｈｒｏｕｇｈ）モードである。しかし、感知中、内部センスノードＳＥＮの信号はＶddから低下する電圧を有する。第２の電圧クランプは、そのどちらがより低いとしても、ＸＸ０−ＶT またはＢＬＸ−ＶT のうちの低いほうよりＳＥＮが低下することを妨げる。これは、信号ＢＬＸにより制御されるｎトランジスタ６１２により成し遂げられ、ここでＢＬＸは≧ＶBL＋ＶT である。従って、電圧クランプの作用を通して、感知中、ビット線電圧ＶBLは一定に、例えば〜０．５Ｖに保たれる。
【００７２】
電流判定の出力はラッチ回路３８２によりラッチされる。ラッチ回路は、トランジスタ６６１，６６２，６６３および６６４並びにトランジスタ６６６および６６８によりセット／リセットラッチとして形成される。ｐトランジスタ６６６は信号ＲＳＴ（ＲＥＳＥＴ：リセット）により制御され、ｎトランジスタ６６８は信号ＳＴＢにより制御される。低電圧動作向けに適合させられている前述したセンスアンプの変形例が、その全体が本願明細書において参照により援用されている２００４年１２月１６日にRaul-Adrian Cerneaにより出願された「Improved Memory Sensing Circuit And Method For Low Voltage Operation」という米国特許出願第１１／０１５，１９９号（特許文献１３）に見出される。
【００７３】
一般的に、一致する数のマルチパスセンスモジュール３８０により操作される１ページのメモリセルがある。第１の区分電流レベルより高い伝導電流を有するメモリセルについては、それらのＬＡＴ信号はローにラッチされる（ＩＮＶはハイにラッチされる）。これは、対応するビット線を接地に引くようにビット線プルダウン回路５２０をアクティブ化し、これによりそれらの電流をオフに転換させる。
【００７４】
フェーズ（６）：リカバリ／プリチャージ
以前に下方に引かれていなかったビット線の伝導電流の次の感知の前に、プリチャージ回路は内部センスノード６３１をＶddにプリチャージするように信号ＦＬＴによりアクティブ化される（図１０（Ｃ）および図１０（Ｉ３）〜１０（Ｉ４））。
【００７５】
フェーズ（７）：第２の感知
センスアンプ６００が何時でも感知できるとき、プリチャージ回路は、ハイになるＦＬＴによりディスエーブルされる（図１０（Ｃ））。第２の感知期間Ｔ２は、ストローブ信号ＳＴＢのアサートによりセットされる。感知期間中、伝導電流があるならば、コンデンサに充電する。ノードＳＥＮの信号は、コンデンサＣｓａがビット線３６の伝導電流の電流ドレイン作用を通して充電されているときにＶddから低下する。
【００７６】
前の例によれば、３００ｎＡより高い伝導電流を有するメモリセルは、以前のフェーズで既に識別されてシャットダウンされている。図１４（Ｇ）（曲線Ｇ３およびＧ４）は、２２０ｎＡおよび４０ｎＡの伝導電流を有するメモリセルにそれぞれ接続されている２つの例としてのビット線に対応するＳＥＮ信号をそれぞれ示す。
【００７７】
フェーズ（８）：読み出しのための第２のラッチ
第２の所定の感知期間Ｔ２の終了時に、ＳＥＮは、ビット線の伝導電流に依存する何らかの電圧に低下している（図１０（Ｇ）（曲線Ｇ３およびＧ４））。一例として、この第２のフェーズにおける区分電流は１００ｎＡにセットされる。この場合、伝導電流２２０ｎＡを有するメモリセルは、そのＩＮＶがハイにラッチされ（図１０（Ｈ））、そのビット線は後に接地に引かれる（図１０（Ｉ３））。その一方で、伝導電流４０ｎＡを有するメモリセルは、ＬＡＴハイでプリセットされたラッチの状態に対して影響を及ぼさない。
【００７８】
フェーズ（９）：バスへの読み出し
最後に、読み出しフェーズでは、転送ゲート５３０の制御信号ＮＣＯは、ラッチされた信号ＳＥＮ２が読み出しバス５３２に読み出されることを可能にする（図１０（Ｊ）および１０（Ｋ））。
図１０（Ｉ１）〜１０（Ｉ４）から分かるように、ビット線電圧は、各感知期間中、一定のままである。従って、前の議論から、容量性のビット線間結合は排除される。
【００７９】
前述したセンスモジュール３８０は、感知が３つのパスで実行される１つの実施形態であり、始めの２つのパスは、より高い電流のメモリセルを識別してシャットダウンするために実行される。より高い電流のソース線バイアスへの寄与が除去されるので、最後のパスは、より低い範囲の伝導電流を有するセルをより正確に感知することができる。
【００８０】
他の実施形態では、感知操作はＤＣパスおよびＡＣパスの異なる組み合わせで実行され、あるものは２つだけあるいはそれ以上のＡＣパス、あるいは１つのパスだけを使用する。異なるパスの間に使用される区分電流値は、その都度同じであってもよく、あるいは最終パスで使用される区分電流に向かって漸次収斂してもよい。さらに、前述した感知の実施形態は、適切なセンスモジュールの一例に過ぎない。本願明細書に記載された発明を実施するために他の設計および技術も使用され得る。本願明細書に記載された発明のために１つの特定のセンスモジュールが必要とされたりあるいは提案されるわけではない。
【００８１】
図１１は、不揮発性メモリをプログラムする方法の一実施形態を記述したフローチャートである。一実施例では、メモリセルはプログラミングの前に（ブロックまたは他の単位で）消去される。メモリセルは、一実施形態では、充分な期間にわたってｐウェルを消去電圧（例えば、２０ボルト）に高めると共に、ソース線およびビット線が浮動している間選択されたブロックのワード線を接地することによって消去される。容量結合に起因して、選択されていないワード線、ビット線、選択線、およびｃソースも消去電圧のかなりの部分まで高められる。従って、選択されたメモリセルのトンネル酸化物層に強い電界が加えられ、フローティングゲートの電子が一般的にはファウラーノルドハイムトンネリングにより基板側に放出されるときに、選択されたメモリセルのデータが消去される。電子がフローティングゲートからｐウェル領域に移されるとき、選択されたセルのしきい値電圧は低められる。消去は、メモリアレイ全体、別々のブロック、あるいはセルの他の単位に対して、実行され得る。
【００８２】
図１１のステップ７００で、「データロード」コマンドがコントローラにより発せられて制御回路３１０により受け取られる。ステップ７０２で、ページアドレスを指定するアドレスデータがコントローラまたはホストからデコーダ３１４に入力される。ステップ７０４で、アドレス指定されたページのための１ページのプログラムデータがプログラミングのためにデータバッファに入力される。そのデータは、ラッチの適切なセットにおいてラッチされる。ステップ７０６で、コントローラにより状態マシン３１２に対して「プログラム」コマンドが発せられる。
【００８３】
「プログラム」コマンドによりトリガされて、ステップ７０４でラッチされたデータは、適切なワード線に加えられる図１２の階段状パルスを用いる状態マシン３１２により制御される選択されたメモリセル中にプログラムされる。ステップ７０８で、プログラム電圧Ｖｐｇｍは始動パルス（例えば、１２Ｖまたは他の値）に初期化され、状態マシン３１２により維持されるプログラムカウンタＰＣは０に初期化される。ステップ７１０で、選択されたワード線に第１のＶｐｇｍパルスが加えられる。対応するメモリセルがプログラムされるべきことを示す論理「０」が特定のデータラッチに記憶されているならば、対応するビット線が接地される。その一方で、対応するメモリセルがその現在のデータ状態に留まるべきであることを示す論理「１」が特定のラッチに記憶されているならば、対応するビット線はプログラミングを抑制するＶｄｄに接続される。
【００８４】
ステップ７１２で、選択されたメモリセルの状態は、それらがそれらのターゲットしきい値電圧に達しているかどうかを判定するためにベリファイされる。選択されたセルのしきい値電圧がターゲットレベルに達していることが検出されたならば、対応するデータラッチに記憶されているデータは論理「１」に変更される。しきい値電圧が適切なレベルに達していないことが検出されたならば、対応するデータラッチに記憶されているデータは変更されない。このようにして、対応するデータラッチに論理「１」が記憶されているビット線はプログラムされなくてもよい。全てのデータラッチが論理「１」を記憶しているとき、状態マシンは（前述したワイヤードＯＲタイプのメカニズムを介して）全ての選択されたセルがプログラムされていることを知る。ステップ７１４で、全てのデータラッチが論理「１」を記憶しているかどうかがチェックされる。そうであるならば、全ての選択されたメモリセルがプログラムされてベリファイされたのであるから、プログラミングプロセスは完了していて成功している。「合格」のステータスがステップ７１６で報告される。
【００８５】
ステップ７１４で、データラッチの全てが論理「１」を記憶しているわけではないと判定されたならば、プログラミングプロセスは続行される。ステップ７１８で、プログラムカウンタＰＣはプログラム極限値ＰＣＭＡＸと照合される。プログラム極限値の一例は２０であるけれども、他の数も使用され得る。プログラムカウンタＰＣが２０未満でなければ、プログラムプロセスは失敗していて、ステップ７２０で「失敗」のステータスが報告される。いくつかの実施形態では、ループの最大数に達した後、システムは、所定量未満のセルがプログラミングを終えていないかどうかをチェックする。その所定数未満がプログラミングを終えていなければ、プログラミングプロセスは依然として合格であると見なされる。プログラムカウンタＰＣが２０未満であれば、ステップ７２２でＶｐｇｍレベルはステップサイズだけ高められ、プログラムカウンタＰＣはインクリメントされる。ステップ７２２の後、プロセスはステップ７１０に巡り戻って次のＶｐｇｍパルスを印加する。
【００８６】
図１２は、プログラミングのために選択されたワード線に加えられる一連のプログラムパルスを示す。プログラムパルス同士の中間には１セットのベリファイパルスがある（図示せず）。いくつかの実施形態では、データがプログラムされる各状態について１つのベリファイパルスがあり得る。他の実施形態では、もっと多いあるいはもっと少ないベリファイパルスがあり得る。
【００８７】
一実施形態では、データは１つの共通ワード線に沿うメモリセルにプログラムされる。従って、図１２のプログラムパルスを加える前に、ワード線のうちの１つがプログラミングのために選択される。このワード線は、選択されたワード線と称される。ブロックの残りのワード線は、選択されていないワード線と称される。
【００８８】
成功したプログラム（ベリファイを伴う）プロセスの終了時に、メモリセルのしきい値電圧は、適宜に、プログラム済みメモリセルについてのしきい値電圧の１つ以上の分布の中または消去済みメモリセルについてのしきい値電圧の１つの分布の中にあるべきである。図１３は、各メモリセルが２ビットのデータを記憶するときのメモリセルのアレイについての例としてのしきい値電圧分布を示す。図１３は、消去済みメモリセルについての第１のしきい値電圧分布Ｅを示す。プログラム済みメモリセルについての３つのしきい値電圧分布Ａ，ＢおよびＣも描かれている。一実施形態では、Ｅ分布内のしきい値電圧は負であり、Ａ，ＢおよびＣ分布内のしきい値電圧は正である。
【００８９】
図１３の各々の区別可能なしきい値電圧範囲は、データビットのセットについての所定値に対応する。メモリセルにプログラムされたデータとセルのしきい値電圧レベルとの特定の関係は、セルのために採用されるデータ符号化方式に依存する。例えば、両方ともその全体が本願明細書において参照により援用されている、米国特許第６，２２２，７６２号と（特許文献１６）、および２００３年６月１３日に出願された「Tracking Cells For A Memory System」という米国特許出願公開第２００４／０２５５０９０号（特許文献１７）は、多状態フラッシュメモリセルのための種々のデータ符号化方式を記載している。一実施形態では、フローティングゲートのしきい値電圧がその隣の物理状態に誤ってシフトしても１ビットだけが影響を受けることとなるように、データ値はグレイコード割当てを用いてしきい値電圧範囲に割当てられる。一例は、「１１」をしきい値電圧範囲Ｅ（状態Ｅ）に割り当て、「１０」をしきい値電圧範囲Ａ（状態Ａ）に割当て、「００」をしきい値電圧範囲Ｂ（状態Ｂ）に割当て、「０１」をしきい値電圧範囲Ｃ（状態Ｃ）に割当てる。しかし、他の実施形態では、グレイコードは使用されない。図１３は４つの状態を示しているけれども、本発明は、４つより多いまたは少ない状態を含むものを含む他の多状態構造でも使用され得る。例えば、いくつかの不揮発性記憶素子は８つ（７つのプログラム済みおよび１つの消去済み）またはそれ以上の状態を利用することができる。
【００９０】
図１３は、メモリセルからデータを読み出すための３つの読み出し基準電圧Ｖｒａ，ＶｒｂおよびＶｒｃも示している。所与のメモリセルのしきい値電圧がＶｒａ，ＶｒｂおよびＶｒｃより高いか低いかを試験することにより、システムはそのメモリセルがどの状態にあるかを判定することができる。
【００９１】
図１３は、３つのベリファイ基準電圧Ｖｖａ，ＶｖｂおよびＶｖｃも示す。メモリセルを状態Ａにプログラムするときに、システムは、それらのメモリセルがＶｖａより大きいかまたはそれに等しいしきい値電圧を有するかどうか試験する。メモリセルを状態Ｂにプログラムするときに、システムは、メモリセルがＶｖｂより大きいかまたはそれに等しいしきい値電圧を有するかどうか試験する。メモリセルを状態Ｃにプログラムするときに、システムは、メモリセルがＶｖｃより大きいかまたはそれに等しいそれらのしきい値電圧を有するかどうか判定する。
【００９２】
フルシーケンスプログラミングとして知られる１つの実施形態では、メモリセルは、消去状態Ｅからプログラム済み状態Ａ，ＢまたはＣのいずれにも直接プログラムされることができる。例えば、プログラムされるべきメモリセルの集団は、その集団の中の全てのメモリセルが消去済み状態Ｅになるように、始めに消去され得る。いくつかのメモリセルが状態Ｅから状態Ａへプログラムされつつあるときに、他のメモリセルは状態Ｅから状態Ｂへかつ／または状態Ｅから状態Ｃへプログラムされつつある。
【００９３】
図１４は、２つの異なるページ、下側ページおよび上側ページのためのデータを記憶する多状態メモリセルをプログラムする２パス手法の例を示す。４つの状態、すなわち状態Ｅ（１１）、状態Ａ（１０）、状態Ｂ（００）および状態Ｃ（０１）が描かれている。状態Ｅについて、両方のページが「１」を記憶する。状態Ａについて、下側ページは「０」を記憶し、上側ページは「１」を記憶する。状態Ｂについて、両方のページが「０」を記憶する。状態Ｃについて、下側ページは「１」を記憶し、上側ページは「０」を記憶する。特定のビットパターンが状態の各々に割り当てられているけれども、異なるビットパターンも割り当てられ得るということに留意するべきである。
【００９４】
第１のプログラミングパスで、セルのしきい値電圧レベルは、下側論理ページにプログラムされるべきビットに応じてセットされる。そのビットが論理「１」であれば、しきい値電圧は、以前に消去されていた結果として適切な状態にあるから、変更されない。しかし、プログラムされるべきビットが論理「０」であれば、そのセルのしきい値レベルは、矢７３０により示されているように、状態Ａとなるように高められる。
【００９５】
第２のプログラミングパスで、セルのしきい値電圧レベルは、上側論理ページにプログラムされるビットに応じてセットされる。上側論理ページのビットが論理「１」を記憶しなければならないのであれば、下側ページのビットのプログラミングに依存してセルが状態ＥまたはＡのうちの一方であり、その両方が「１」の上側ページビットを維持しているから、プログラミングは行なわれない。上側ページのビットが論理「０」であるべきであれば、しきい値電圧は変更される。第１のパスがセルが消去済み状態Ｅに留まるという結果をもたらしたならば、第２のフェーズで、セルは、矢７３４により描かれているように、しきい値電圧が高められて状態Ｃの中に入るようにプログラムされる。セルが第１のプログラミングパスの結果として状態Ａにプログラムされていたならば、メモリセルは、矢７３２により描かれているように、しきい値電圧が高められて状態Ｂの中に入るように第２のパスでさらにプログラムされる。第２のパスの結果は、セルを、下側ページのためのデータを変更することなく上側ページのために論理「０」を記憶するように指定された状態にプログラムすることである。
【００９６】
一実施形態では、１つのワード線を満たすのに充分なデータが書き込まれるならば、システムはフルシーケンス書き込みを実行するようにセットアップされ得る。不十分なデータが書き込まれるならば、プログラミングプロセスは、受け取られたデータでプログラムして下側ページをプログラムすることができる。その後のデータが受け取られると、システムは上側ページをプログラムする。さらに別の１つの実施形態では、システムは、下側ページをプログラムするモードで書き始めて、１つのワード線の全体（またはその大部分）のメモリセルを満たすのに充分なデータが後に受け取られたならばフルシーケンスプログラミングモードに転換することができる。そのような実施形態についてのより多くの詳細な情報が、その全体が本願明細書において参照により援用されている２００４年１２月１４日にSergey Anatolievich GorobetsおよびYan Liにより出願された「Pipelined Programming Of Non-Volatile Memories Using Early Data 」という米国特許出願第１１／０１３，１２５号（特許文献１８）に開示されている。
【００９７】
図１５は、不揮発性メモリセルからデータを読み出すための一実施形態を記述するフローチャートである。センスモジュールに関する前の議論は、データが特定のビット線からどのように読み出されるかを論じている。図１５は、システムレベルでの読み出しプロセスを提供する。ステップ８００で、データを読み出すためのリクエストがホスト、コントローラ、または他のエンティティから受け取られる。前に論じられたように、隣接するフローティングゲート（または他の隣接する電荷蓄積素子）に蓄積された電荷に基づく電界の結合のために、不揮発性メモリセルのフローティングゲート（または他の電荷蓄積素子）に蓄積された見かけ上の電荷にシフトが発生する可能性がある。この結合を補償するために、所与のメモリセルのための読み出しプロセスは、隣接するメモリセルのプログラム済み状態を考慮に入れる。ステップ８０２は、隣接するフローティングゲート間の結合のそのような補償を提供するかどうかを判定することを含む。いくつかの実施形態では、ステップ８０２はどの程度の補償を用いるかを決定することを含む。ステップ８０４で、データを読み出すためのリクエストに応答して１つの特定のページまたは他のデータ単位のために読み出しプロセスが実行される。ステップ８０４の読み出しプロセスは、ステップ８０２に基づいて、隣接するフローティングゲート間の結合の適切な補償を含むことができる。一実施形態では、ステップ８０４で読み出されるメモリセルは１つの共通ワード線に、けれども異なるビット線に、接続されている。
【００９８】
一実施形態では、１ページのためのデータがプログラムされるときに、システムはまた誤り訂正符号（ＥＣＣ）を作り、これらのＥＣＣをページのデータと共に書き込む。ＥＣＣ技術は当該技術分野で良く知られている。使用されるＥＣＣプロセスは、当該技術分野で知られている任意の適切なＥＣＣプロセスを含むことができる。１ページ（または他のデータ単位）からデータを読み出すときに、データ中にエラーがあるかどうか判定するためにＥＣＣが使用される（ステップ８０６）。ＥＣＣプロセスは、コントローラ、状態マシン、またはシステム中の他の場所で実行され得る。データ中にエラーがなければ、そのデータはステップ８０８でユーザに報告される。ステップ８０６でエラーが発見されたならば、そのエラーが訂正可能であるかどうか判定される（ステップ８１０）。種々のＥＣＣ方法が、１セットのデータ中の所定数のエラーを訂正する能力を有する。ＥＣＣプロセスがそのデータを訂正できるならば、ステップ８１２でそのデータを訂正するためにＥＣＣプロセスが使用され、その訂正されたデータがステップ８１４でユーザに報告される。データがＥＣＣプロセスによって訂正できなければ（ステップ８１０）、ステップ８２０でエラーがユーザに報告される。いくつかの実施形態では、ステップ８２０は、データの全部または部分集合を報告することを含むこともできる。データの１つの部分集合がエラーを有しないことが分かったならば、その部分集合が報告され得る。
【００９９】
図１６は、隣接するフローティングゲート間の結合の補償を使用することのある、不揮発性メモリセルからデータを読み出すための他の１つの実施形態を記述するフローチャートである。図１５のプロセスと図１６のプロセスとの１つの差異は、図１６のプロセスが、読み出しプロセス中にエラーがある場合に限って補償を使用することである。
【０１００】
図１６のステップ８４０で、データを読み出すためのリクエストがホスト、コントローラ、または他のエンティティから受け取られる。ステップ８４２で、そのデータを読み出すためのリクエストに応答して１つの特定のページまたは他のデータ単位のための読み出しプロセスが実行される。ステップ８４２の読み出しプロセスは、本願明細書に記載された結合の補償を含まない。ステップ８４４は、データ中にエラーがあるかどうかの判定を含む。データ中にエラーがなければ、そのデータはステップ８４６でユーザに報告される。ステップ８４４でエラーが発見されれば、ステップ８５０で、そのエラーが訂正可能であるかどうかが判定される。種々のＥＣＣ方法が、１セットのデータ中の所定数のエラーを訂正する能力を有する。ＥＣＣプロセスがそのデータを訂正できるならば、ステップ８５２でそのデータを訂正するためにＥＣＣプロセスが使用され、その訂正されたデータがステップ８５４でユーザに報告される。データがＥＣＣプロセスにより訂正できなければ（ステップ８５０）、システムは、隣接するフローティングゲート間の結合の補償を伴う読み出しプロセスを実行することによってデータを回復しようと試みる。従って、ステップ８６０で、システムは、隣接フローティングゲート間の結合を処理するために補償を用いるかどうか、かつ／またはどの程度の補償を用いるかを決定する。ステップ８６２で、データを読み出すためのリクエストに応答して１つの特定のページまたは他のデータ単位のために読み出しプロセスが実行される。ステップ８６２の読み出しプロセスは、ステップ８６０に基づいて、隣接フローティングゲート間の結合の適切な補償を用いることによってデータを回復しようと試みる。
【０１０１】
ターゲットのフローティングゲートに隣接するフローティングゲートは、同じビット線上にあるけれども異なるワード線上にある隣接フローティングゲート、同じワード線上にあるけれども異なるビット線上にある隣接フローティングゲート、または隣接するビット線および隣接するワード線の両方の上にあるためにターゲットのフローティングゲートの向こう側にあるフローティングゲートを含み得る。一実施形態では、本願明細書で論じられた結合の補償は、隣接フローティングゲートのこれらの前述したセットのうちのいずれにも適用され得る。いくつかの実施形態では、本願明細書で論じられた結合の補償は、同じワード線上にあるけれども異なるビット線上にある隣接フローティングゲートに適用される。例えば、メモリセル３６２は、その見かけ上のしきい値電圧がメモリセル３６４および３６６からの結合に起因して変化させられ得る（図７を参照）。同じビット上にあるけれども異なるワード線上にある隣接フローティングゲートに起因する結合の補償は、その全体が本願明細書において参照により援用されている２００５年４月５日にYan LiおよびJian Chen により出願された「Read Operation For Non-Volatile Storage That Includes Compensation For Coupling 」という米国特許出願第１１／０９９，０４９号（特許文献１９）においてより詳しく論じられている。いくつかの実施形態は、同じワード線上にあるけれども異なるビット線上にある隣接フローティングゲート間および同じビット線上にあるけれども異なるワード線上にある隣接フローティングゲート間の結合の補償を提供する。
【０１０２】
隣接するフローティングゲート間の結合の量は、隣接するフローティングゲートがプログラムされるタイミングに依存する。同時にプログラムされる２つの隣接するフローティングゲートは、結合をほとんどあるいは全く持ちそうもない。最大量の結合は、一方のフローティングゲートがプログラムされなくて（例えば、消去済み状態Ｅに留まる）、他方のフローティングゲートが後に最高に（例えば、最も）プログラムされた状態にプログラムされる（例えば、状態Ｃにプログラムされる図１３を参照）場合に２つの隣接するフローティングゲート間に生じそうである。状態Ｅと状態Ａとの間には大きなマージンがあるので、結合があっても、状態Ｅにあるデータを誤って読み出すことはなさそうである。２番目に大きな量の結合は、状態Ａにプログラムされた第１のフローティングゲートと、状態Ｃにプログラムされた、後にプログラムされたフローティングゲートとの間にある。従って、一実施形態では、結合の補償が使用される唯一のときは、１つのメモリセルが第１のプログラム済み状態（例えば、状態Ａ）にあって、その隣のものが１セットの状態（４つの状態、８つの状態、または異なる数の状態）のうちの最高のプログラム済み状態（例えば、状態Ｃ）にあるときである。他の実施形態では、結合の補償は、隣のメモリセルが異なる状態、例えば状態Ｂまたは他の１つの状態にあるときに使用され得る。４つより多いまたは少ない状態を使用するいくつかの実施形態では、結合の補償は、隣のメモリセルが、結合を引き起こすと分かっている状態にあるときに、使用され得る。同様に、結合の補償は、ターゲットのメモリセルが、その特定の実施例に適切な、状態Ａ以外の状態にあるときに、使用され得る。
【０１０３】
隣のメモリセルの状態が何らかの技術を用いて検出または取得され得るならば、考察されているメモリセルに必要な訂正の量は、次の読み出し操作の間に決定され調整されることができる。特定のメモリセルの状態を知る１つの方法は、読み出し操作を通してのものである。しかし、一実施形態では、隣接するビット線のためのセンスアンプ間には通信はない。読み出し操作後も、考察されているメモリセルは、その隣のメモリセルの状態を知らない。
【０１０４】
図１７は、１つのメモリセルが状態Ａにあってその隣のメモリセルのうちの１つ以上が状態Ｃにあるかどうかに基づいて、補償が使用されるべきかどうか、またどの程度の補償が使用されるべきかを判定するための一実施形態を記述するフローチャートである。少なくとも２つのシナリオがある。１つのシナリオでは、読み出される特定のメモリセルは状態Ａにあり、その隣のもののうちの１つは状態Ｃにある。第２のシナリオでは、読み出される特定のメモリセルは状態Ａにあり、その隣のもののうちの２つ（異なるビット線）は状態Ｃにある。図１７のプロセスは、特定のメモリセル（または特定のビット線）についてのいずれかの隣のものが状態Ｃに（または、７つ以上の状態のセットのうちの最高のプログラム済み状態に）あるかどうか判定する。このプロセスは、図１５のステップ８０２および図１６のステップ８６０を実行するために使用され得る。
【０１０５】
図１７のステップ９００で、選択されたワード線に接続されているメモリセルの全て（または部分集合）が、メモリセルが状態Ｃにあるかどうか判定するために、読み出される。これは、読み出し比較ポイントＶｒｃを使用することにより成し遂げられる。Ｖｒｃより大きなしきい値電圧を有するメモリセルは、状態Ｃにあると想定される。Ｖｒｃ未満のしきい値電圧を有するメモリセルは状態Ｃにはない。Ｖｒｃを使用する読み出し操作の終了時に、各センスアンプは、その対応するメモリセルが状態Ｃにあるか否かをラッチする。克服されなければならない１つの障害は、いくつかの実施例ではセンスアンプが隣のセンスアンプに話しかけることができないことである。例えば、図７を見ると、ビット線ＢＬ２のためのセンスアンプは、ビット線ＢＬ１またはビット線ＢＬ３のセンスアンプと通信できない。従って、ＢＬ２のためのセンスアンプは、ＢＬ１およびＢＬ３上の隣のメモリセルが状態Ｃにあるかどうかを知らない。ステップ９０２〜９１０は、隣のメモリセルが状態Ｃにあるかどうかを示すために実行される。ステップ９０２で、状態Ｃにあるとステップ９００で感知されたメモリセルに接続されているビット線の全てが所定の電圧に充電される。一例では、状態Ｃのメモリセルを伴うビット線は０．５ボルトに充電される。図９を振り返り見ると、これは、０．５ボルト＋Ｖｔｈ（トランジスタ６１２の）をトランジスタ６１２のゲートに印加すると共に、ＩＮＶ＝０を引き起こすためにＲＳＴ信号をローにトグルすることによって、成し遂げられ得る。他のセンスアンプは、ＩＮＶ＝１でセットアップされていたので、それらのビット線には充電はされない。ＧＲＳ＝０では、ビット線にはアクティブなプルダウンはない。Ｃデータを有するビット線が充電されるときに、隣接するビット線はビット線間結合に起因してそれらのビット線に結合される。１つの実施例では、そのような結合は総ビット線静電容量の４０％であり得る。両方の隣のものがＣデータを有するビット線について、容量結合は総ビット線静電容量の８０％におよび得る。例えば、ビット線の１つの隣のものがＣデータを有するならば、それは約０．１５ボルトだけ上方結合(coupled-up)され得る。ビット線の２つの隣のものがＣデータを有するならば、それは約０．３ボルトだけ上方結合され得る。
【０１０６】
ステップ９０４で、Ｃデータを有する２つの隣のものを有するビット線が識別される。一実施形態では、ステップ９０４は、ＢＬＣを０．２＋Ｖｔｈ（トランジスタ６１２の）に下げることによって成し遂げられる。これは、２つのＣの隣のものを有するビット線のトランジスタ６１２をオフに転換させる。なぜならば、トランジスタ６１２のドレイン側はＶｄｄであり、ソース側は０．３ボルトだからである。その後、ＳＥＮノードは放電されず、センスアンプはＬＡＴ＝１をラッチする。１つのＣの隣のものを有するかあるいはＣの隣のものを有しない他のビット線は、トランジスタ６１２が導通している。ビット線はコンデンサＣｓａより遥かに高い静電容量を有するので、ＳＥＮノードは放電し、センスアンプはＬＡＴ＝０をラッチする。ＳＥＮノードが充電されるか放電されるかの結果は、適切なデータラッチ３９４に記憶される（ステップ９０６）。ステップ９０６の後、センスアンプおよびビット線はリセットされ、ステップ９０２と同様に、状態Ｃにあるメモリセルに接続されているビット線はその後ステップ９０８で再び充電される。ステップ９１０で、１つ以上のＣの隣のものに結合されているビット線が、ＢＬＣ＝０．１５ボルト＋Ｖｔｈ（トランジスタ６１２の）を印加することによって感知される。システムは、状態Ｃにあるメモリセルを有する１つ以上の隣のものを有するビット線を感知する。ステップ９１２で、結果がラッチ３９４のうちの１つに格納される。ステップ９０４で２つの隣のものが状態Ｃにありかつステップ９０８で１つ以上の隣のものが状態Ｃにあるという表示を記憶したビット線について、そのビット線は状態Ｃにある隣のものを２つ以上有すると想定される。２つ以上の隣のものが状態Ｃにあるという表示をステップ９０６で記憶しなかったけれどもステップ９１０で１つ以上の隣のものが状態Ｃにあるという表示を記憶したビット線について、それらのビット線は状態Ｃにある隣のものを１つ有すると想定される。
【０１０７】
図１８は、図１７のプロセスで実行される操作のうちのいくつかをグラフ的に描くタイミング図である。タイミング図は、ステップ９０２，９０４および９０６に対応する３つの期間に分解されている。ステップ９０２中、信号ＢＬＣを０．５ボルトにトランジスタ６１２についてのしきい値電圧を加えたものに高められることが分かる。これは、選択されたワード線に接続されていて状態Ｃにあるメモリセルに結合されている全てのビット線のために行われる。それらのビット線は０．５ボルトに高められるように示されている。そのときに２つのＣの隣のものを有するビット線は、ビット線が０．３ボルトに高められるように２つの対応する隣のビット線に結合される。Ｃの隣のものを有しないビット線は０ボルトに留まる。この時間フレーム中、信号ＧＲＳはローである。ＢＬＣはその後０ボルトに下げられ、その後０．２ボルトにトランジスタ６１２についてのしきい値電圧を加えたものに高められ、そのときにビット線が感知される（ステップ９０４）。状態Ｃの２つの隣のものの隣のビット線はＳＥＮノードを放電させない（線９１４を参照）。状態Ｃの２つの隣のものを有しなかったビット線はＳＥＮノードを放電させる（線９１６を参照）。データを適切なビット線ラッチ３８２にラッチした後に、データはデータラッチ３９４に転送される。
【０１０８】
図１９は、１つ以上のＣの隣のものを有するメモリセルのために補償を提供することを含み得る読み出しプロセスの一実施形態を記述している。図１９のプロセスは、図１５のステップ８０４および図１６のステップ８６２の一実施形態のより多くの詳細を提供する。さらに、図１６のステップ８４２を実行するためにステップ９４０〜９５０および９６４〜９７２が使用され得る。図１９のプロセスは、１つのワード線と全ビット線、またはビット線の部分集合を含む１ページのデータのために実行され得る。図１９のステップ９４０で、読み出し基準電圧Ｖｒａが、ページに関連付けられた適切なワード線に印加される。これは、そのワード線に接続されたメモリセルのためのコントロールゲートに読み出し基準電圧Ｖｒａを印加させる。ステップ９４２で、ページに関連付けられているビット線は、アドレス指定されたメモリセルが導通するか導通しないかを、それらのコントロールゲートへのＶｒａの印加に基づいて判定するために、感知される。導通するビット線は、メモリセルがオンに転換したこと、従って、それらのメモリセルのしきい値電圧がＶｒａより低い（例えば、状態Ｅにある）ことを示す。ステップ９４４で、ビット線についての感知の結果が、それらのビット線のための適切なラッチに格納される。
【０１０９】
ステップ９４６で、読み出し基準電圧Ｖｒｂが、読み出されるページに関連付けられているワード線に印加される。ステップ９４８で、ビット線が、前に記載されているように感知される。ステップ９５０で、状態Ｃにある隣のメモリセルを有しない、ページ中のメモリセルに接続されているビット線のための適切なラッチに、結果が格納される。
【０１１０】
この実施形態は、状態Ｃにあるメモリセルの隣にある状態Ａのデータを補正しようと試みる。引き起こされる可能性のあるエラーは、メモリセルが、実際には状態Ａにあるのに状態Ｂにあるように見えることとなるように高められた見かけ上のしきい値電圧を有することである。ステップ９５２で、Ｖｒｂに第１のオフセットを加えたものが、読み出されるページに関連付けられているワード線に印加される。ライン９５４で、ビット線が、前に記載されているように感知される。ステップ９５６で、状態Ｃにある隣のメモリセルを１つ有する、ページ中のメモリセルに接続されているビット線のための適切なラッチに、結果が格納される。ステップ９５８で、Ｖｒｂに第２のオフセットを加えたものが、読み出されるページに関連付けられているワード線に印加される。ステップ９６０で、ビット線が、前に記載されているように感知される。ステップ９６２で、状態Ｃにある隣接するメモリセルを２つ有する、ページ中のメモリセルに接続されているビット線のための適切なラッチに、結果が格納される。
【０１１１】
ステップ９６４で、読み出されるページに関連付けられているワード線に読み出し基準電圧Ｖｒｃが印加される。ステップ９６６で、ビット線が、前に記載されているように感知される。ステップ９６８で、全ビット線について結果が適切なラッチに格納される。ステップ９７０で、ページ（または他のデータ単位）中の各メモリセルについてのデータ値が判定される。例えば、メモリセルがＶｒａで導通すれば、そのメモリセルは状態Ｅにある。メモリセルがＶｒｂ（またはＶｒｂと第１のオフセット、またはＶｒｂｔと第２のオフセット）およびＶｒｃで導通するけれどもＶｒａでは導通しなければ、そのメモリセルは状態Ａにある。メモリセルがＶｒｃでは導通するけれどもＶｒａでもＶｒｂ（またはＶｒｂとどちらかのオフセット）でも導通しなければ、そのメモリセルは状態Ｂにある。メモリセルがＶｒａでも、Ｖｒｂ（またはＶｒｂとどちらかのオフセット）でもＶｒｃでも導通しなければ、そのメモリセルは状態Ｃにある。一実施形態では、データ値はプロセッサ３９２により判定される。ステップ９７２で、プロセッサ３９２は、各ビット線について、判定されたデータ値を適切なラッチに格納する。他の実施形態では、種々のレベル（Ｖｒａ、Ｖｒｂ、およびＶｒｃ）を感知することは異なる順序で行われ得る。
【０１１２】
第１のオフセットおよび第２のオフセットの量は、特定の実施例に依存する。本願明細書に記載された発明は、第１のオフセットあるいは第２のオフセットの特定の値には依存しない。一実施形態では、第１のオフセットは０．１ボルトで第２のオフセットは０．２ボルトであるが、他の適切な値が使用されてもよい。
【０１１３】
別々のビット線上の隣接するメモリセル間の容量結合について読み出しプロセス中に補正を行う代わりに、補償はプログラミングのときにも実行され得る。システムはプログラミングのときにデータを知っているので、システムはメモリセルを、そのメモリセルの隣のもののうちの１つ以上が状態Ｃにプログラムされるべく指定されていれば、意図的に、僅かに低いしきい値電圧を有する状態Ａにプログラムすることができる。このようにして、その状態Ａのメモリセルは、状態Ｃに指定された隣のものがプログラミングを終えた後に、正しく読み出される。
【０１１４】
プログラミングプロセスを不当に低速化せずに密なしきい値電圧分布を達成するための１つの解決策は、２フェーズのプログラミングプロセスを使用することである。第１のフェーズすなわち粗大プログラミングフェーズは、密なしきい値電圧分布を達成することにあまり配慮せずにしきい値電圧をすばやく高めようとする試みを含む。第２のフェーズすなわち精密プログラミングフェーズは、より密なしきい値電圧分布を達成しながらターゲットしきい値電圧に達するためにしきい値電圧をよりゆっくり高めようと試みる。粗大／精密プログラミング方法の一例が、その全体が本願明細書において参照により援用されている米国特許第６，８８８，７５８号（特許文献２０）に見出される。
【０１１５】
粗大／精密プログラミング方法の一例では、プロセスは２つのベリファイレベル、すなわちターゲットベリファイレベル（精密ベリファイレベルとも呼ばれる）および粗大ベリファイレベルを使用する。プロセスは、プログラミングプロセスの粗大フェーズを行うことから始まる。メモリセルのしきい値電圧がターゲットベリファイレベルより低い粗大ベリファイレベルに達したときに、メモリセルは、０ボルトより大きくて禁止電圧よりは低い値にビット線電圧を高めて精密プログラミングフェーズに入る。粗大フェーズ中、ビット線電圧はほぼ０ボルトである。メモリセルのプログラミングを禁止するためには、ビット線電圧は禁止電圧（例えば、Ｖｄｄ）に高められる。精密プログラミングフェーズ中、ビット線電圧が０ボルトから中間値に高められるという影響により、プログラミングは粗大プログラミングフェーズと比べて遅くされる。従って、プログラムステップあたりのしきい値電圧の変化は、粗大プログラミングフェーズ中はより小さそうである。メモリセルは、メモリセルについてのしきい値電圧がターゲットしきい値電圧に達するまでは精密プログラミングフェーズに留まる。メモリセルのしきい値電圧がターゲットしきい値電圧に達するときに、ビット線電圧は、そのメモリセルのそれ以上のプログラミングを禁止するためにＶｄｄ（または他の禁止電圧）に高められる。
【０１１６】
異なるビット線上の隣接するメモリセル間の結合について補正を行うことを含む、提案されたプログラミング方法は、前述した粗大／精密プログラミングプロセスを使用するけれども、２の代わりに３のベリファイレベルが使用される。例えば、図２０は、状態Ａについてのしきい値電圧分布９８０を示す。ベリファイのために使用されるターゲット電圧はＶｖａである。前に論じられた粗大／精密プログラミングのための従来の技法は、Ｖｃａと記される粗大ベリファイレベルを有する。提案された方式は、以下のように使用されるべき第３のベリファイレベルＶｉａを付け加えることを含む。要約すると、粗大プログラミングフェーズ中、メモリセルは、しきい値電圧がＶｃａに達するまでプログラムされる。状態Ａにプログラムされつつあって、状態Ｃにプログラムされるべきメモリセルに隣接しているために補償を必要とするメモリセルは、精密フェーズにおいてしきい値電圧がＶｉａに達するまでプログラムされる。他のメモリセルは、精密フェーズにおいて、それらのしきい値電圧がＶｖａに達するまでプログラムされる。従って、状態Ｃにある隣のものを有して状態Ａにあるメモリセルは、ことによるとターゲットしきい値電圧分布９８０より低いことさえある、より低いしきい値電圧を持ちそうである。従って、結合は、それらのメモリセルのしきい値電圧をしきい値電圧分布９８０の中へ高めさせる。
【０１１７】
図２１は、その隣のもののいずれもが状態Ｃにはないために補償を必要としなかったメモリセルについての粗大／精密プログラミングの一例を示すしきい値電圧対時間およびビット線電圧対時間のグラフを提供する。このグラフは、時点ｔ１，ｔ２，ｔ３，ｔ４およびｔ５においてプログラミングパルスがメモリセルのためのコントロールゲートに印加されると想定している。ｔ１，ｔ２およびｔ３に関連するパルスで、メモリセルのしきい値電圧は高められる。時点ｔ３でメモリセルのしきい値電圧はＶｃａより高くなる。従って、粗大プログラミングフェーズは終わり、精密プログラミングフェーズが始まる。ビット線電圧は、それに応じて０ボルトから中間電圧Ｖ１（例えば、１ボルト）に高められる。０ボルトとは対照的に、中間電圧Ｖ１の印加は、そのビット線についてのプログラミングプロセスを遅くする。時点ｔ５で、メモリセルのしきい値電圧はＶｖａより大きく、ビット線電圧は禁止電圧（例えば、Ｖｄｄ）に高められる。
【０１１８】
図２２は、その隣のもののうちの１つ以上が状態Ｃにあってこのメモリセルが状態Ａにプログラムされるために補償を必要とするメモリセルについてのグラフを示す。時点ｔ３で、メモリセルのしきい値電圧は高まってＶｃａに達しているので、ビット線電圧は中間電圧Ｖ１に高められる。時点ｔ４で、メモリセルのしきい値電圧はＶｉａに達し、それはＶｃａより大きくてＶｖａよりは小さいので、メモリセルは、ビット線電圧をＶｄｄに高めることによってさらなるプログラミングから締め出される。
【０１１９】
他の実施形態では、Ｖ１のほかに複数の中間電圧が使用され得ることに留意するべきである。例えば、補償を受けるメモリセルは１つの中間ビット線電圧を使用することができ、補償を受けないメモリセルは他の１つの中間ビット線電圧を使用することができる。他の実施形態では、別々のビット線が別々の中間電圧を使用することができる。
【０１２０】
図２３は、図２１および２２のグラフに従うプログラミングのためのプロセスの一実施形態を記述するフローチャートである。ステップ１０００で、「データロード」がコントローラにより発せられて制御回路により受け取られる。ステップ１００２で、ページアドレスを示すアドレスデータがコントローラまたはホストからデコーダ３１４に入力される。ステップ１００４で、アドレス指定されたページのための１ページのプログラムデータ（または他のデータ単位）がプログラミングのためにデータバッファに入力される。そのデータは適切なラッチのセットにラッチされる。ステップ１００６で、「プログラム」コマンドがコントローラにより状態マシン３１２に対して発せられる。ステップ１００８で、結合を補償するかどうかに関して判定が行われる。特定のメモリセルが状態Ｃにプログラムされつつありかつその隣のもののうちの１つ以上（または２つ以上）が状態Ｃにプログラムされるためにプログラミングプロセスの間に特定のメモリセルが補償を受ける必要があるかどうかを例えばコントローラ３５０、制御回路３１０、センスブロック４００または他のコンポーネントが判定する。コントローラ３５０および制御回路３１０はプログラムデータ全体を知っているので、一実施形態では、システムは、補償が必要かどうかを自動的に知る。他の実施形態では、各ビット線のためのデータラッチの各々は、プログラムされるべきデータを知る。従って、センスモジュール４００は、ビット線のいずれかが、状態Ｃにプログラムされるべきデータを有する隣のものを有するかどうかを判定するために図１７のステップ９０８，９１０および９１２を実行することができる。そうであるならば、そのような隣のものを有するビット線は補償のために表示される。図２３の一実施形態では、状態Ｃにある隣のものを１つ以上有するメモリセルに提供される補償値が１つだけある。他の実施形態では、状態Ｃにある隣のものが１つあるかあるいは状態Ｃにある隣のものが２つあるかによって値の異なる補償が提供され得る。
【０１２１】
図２３のステップ１０１０で、最初のパルスはその初期値にセットされ、プログラムカウンタはその初期値にセットされ、ビット線電圧はその初期値にセットされる。プログラムされるべきメモリセルについて、ビット線電圧は０ボルトにセットされる。プログラムされないメモリセルについて、ビット線はＶｄｄにセットされる。初期電圧の表示をラッチに格納することもできる。いくつかの実施形態では、初期ビット線値をプログラムパルスステップ１０１２の間に印加することもできる（以下で論じられる）。
【０１２２】
ステップ１０１２で、プログラムパルスが適切なワード線に印加される。ステップ１０１４で、ベリファイプロセスが実行される。メモリセルが粗大プログラミングフェーズにあるならば、ステップ１０１４のベリファイプロセスは、メモリセルのしきい値電圧が粗大ベリファイレベルに達しているかどうかを判定するために使用される。メモリセルが精密プログラミングフェーズにあるならば、メモリセルについてのしきい値電圧は、ターゲットしきい値電圧（例えば、Ｖｖａ）または補償を必要とするメモリセルについての中間ベリファイレベル（例えば、Ｖｉａ）と比較される。ステップ１０１４について、より多くの詳細が下に提供される。ステップ１０１６で、プログラムされるべきメモリセルの全てについてのステータスが、それらが全てベリファイされたようなステータスであるかどうかが判定される。それらが全てベリファイされたならば、成功したプログラミングプロセスがステップ１０１８で報告される。それらの全てがベリファイされたのではなければ、ステップ１０２０でプログラムカウンタＰＣがプログラム極限値ＰＣｍａｘと照合される。プログラムカウンタＰＣがＰＣｍａｘ未満でなければ、プログラムプロセスは失敗していて、ステップ１０２２で失敗のステータスが報告される。プログラムカウンタがＰＣｍａｘ未満であれば、ステップ１０２４でプログラム電圧（Ｖｐｇｍ）振幅がステップサイズだけ大きくされてプログラムカウンタＰＣがインクリメントされる。ステップ１０２４の後、プロセスはステップ１０１２に巡り戻って次のＶｐｇｍパルスを印加する。
【０１２３】
図２４は、図２３のベリファイステップ１０１４の一実施形態を記述するフローチャートである。ステップ１０６０で、システムは、メモリセルが粗大プログラミングフェーズにあるのか、あるいは精密プログラミングフェーズにあるのかを判定する。図２３のプロセスは１グループのメモリセル（例えば、１つの共通ワード線に接続された１ページのメモリセル）のために行われる高レベルプロセスを記述しているということに留意するべきである。図２４のプロセスは、プログラムされる各々の特定のメモリセルのために個別に実行される。一実施形態では、１つの特定のメモリセルが粗大プログラミングフェーズにあるのか、あるいは精密プログラミングフェーズにあるのかの表示を記憶するラッチがセンスブロックに与えられる。メモリセルが粗大プログラミングフェーズにあるならば、ステップ１０６２においてベリファイプロセスが粗大ベリファイレベル（例えば、Ｖｃａ）で実行される。すなわち、センスアンプは、メモリセルのしきい値電圧が適切な粗大ベリファイレベルに達しているかどうかを判定するために使用される。例えば、メモリセルが状態Ａにプログラムされつつあるならば、センスアンプは、前に記載されているように、メモリセルのしきい値電圧がＶｃａに達しているかどうかを試験する。しきい値電圧が粗大ベリファイレベルに達していたならば（ステップ１０６４）、メモリセルは粗大プログラミングフェーズを終えている。従って、ステップ１０６６で、次のプログラミングパルスでメモリセルが精密プログラミングフェーズに入るようにビット線電圧が中間電圧Ｖ１に高められる。ステップ１０６６の後、しきい値電圧が精密ベリファイレベル（あるいは中間ベリファイレベルが適切である）も超えたかどうかを判定するためにプロセスはステップ１０８０（後で論じられる）で続行される。メモリセルのしきい値電圧が粗大ベリファイレベルに達していなければ、ステップ１０６８においてメモリセルが粗大プログラミングフェーズを続行するようにビット線電圧は現在のレベルに留まる。
【０１２４】
ステップ１０６０においてメモリセルが精密プログラミングフェーズにあると判定されたならば、ステップ１０８０においてメモリセルが状態Ａにプログラムされつつあって結合についての補償を必要としているかどうかが判定される。否であれば、ベリファイプロセスはステップ１０８２において精密ベリファイレベル（例えば、ターゲットベリファイレベルＶｖａ、ＶｖｂまたはＶｖｃ）を用いて実行される。補償が必要とされるならば、ステップ１０９０において中間ベリファイレベルＶｉａを用いてベリファイプロセスが実行される。メモリセルのしきい値電圧が適切なベリファイレベルより高ければ（ステップ１０８４）、メモリセルは、ビット線電圧をＶｄｄに高めることによってステップ１０８８においてさらなるプログラミングから締め出される。メモリセルのしきい値電圧がベリファイレベルより高くなければ（ステップ１０８４）、ビット線電圧はステップ１０８６においてその現在のレベルに維持され、精密プログラミングフェーズが続行される。
【０１２５】
セルのフローティングゲート間結合の効果は、前に記載されたように、プログラムシーケンス中に補正され得る。それは、読み出し操作中にも補正され得る。次の議論は、隣のメモリセル状態に応じて読み出しが修正され得るようにビット線間結合効果を修正ファクタとして感知プロセスに組み込む読み出しシーケンスを記述する。図２５および２６は、隣接するメモリセルからの結合を経験している一定のメモリセルに補償を与えることを考慮に入れるデータ読み出しプロセスの実施形態を説明する。ステップ１１００で、全てのビット線が、これらのビット線かつ選択されたワード線に接続されているメモリセルが状態Ｃにあるかどうかを判定するために、読み出される。これは、Ｖｒｃを読み出し比較ポイントとして用いる読み出し操作を実行することによって実行される。状態Ｃにあるメモリセルを有するビット線は、メモリセルが状態Ｃにあるという表示をラッチする。その読み出し操作は図１８に示されている。ステップ１１０２で、状態Ｃ以外の状態にあるメモリセルを有するビット線が充電される。一実施形態では、それらのビット線は０．５ボルトに充電される。ステップ１１０２でビット線が充電された後、状態Ｃにあるメモリセルに接続されたビット線がステップ１１０４で０．２５〜０．４ボルトの間に充電される。状態Ｃにあるメモリに接続されたビット線のステップ１１０４における充電は、ステップ１１０２で充電されたビット線を０．５ボルトより高い電圧へ上方結合させる。例えば、図２６は、状態Ｃにあるメモリセルを有しないビット線を表すビット線ＢＬｎを示す。グラフは、ビット線がステップ１１０２の間に０．５ボルトに充電されることを示す。ビット線ＢＬｎ＋１は状態Ｃにあるメモリセルに接続されていて、ＢＬｎ＋１はＢＬｎの隣のものである。ステップ１１０４の間、ビット線ＢＬｎ＋１はおよそ０．４ボルトに充電される。そのときに、ビット線ＢＬｎは、破線１１２０により描かれているように、０．５より高い電圧に結合される。ステップ１１０４で充電された隣のものに隣接しないビット線は、線１１２２により描かれているように、０．５ボルトに留まる。図２５のステップ１１０６において、全てのビット線（またはビット線の部分集合）が感知される。Ｃの隣のものを有するビット線は、より高いビット線電圧を有すると感知される。そのより高いビット線電圧の故に、ビット線は、より多くの電流を伝導し、それはより低いしきい値電圧の外観を与える。これは隣接するセル間の結合を補償する。Ｃの隣のものを有するセルは、それらの隣のものがプログラムされた後、そのオリジナルのプログラムレベルより高い浮動電圧に結合される。このフローティングゲート間結合補償を有する読み出しは、セルのオリジナルのプログラムレベルを正しく読み直す。この読み出し補正は、多数の読み出し操作からの時間ペナルティなしで行われる。１つの読み出し操作が、補正を必要とするメモリセルと補正を必要としないメモリセルとについて結果を得る。
【０１２６】
前に記載された１つの実施形態では、セルソースノイズが除去されているときにいくつかの感知ストローブがあり得る。図２５および２６に関して前に記載されたプロセスは、全ての感知ストローブの間あるいは後の感知ストローブの間に応用され得る。例えば、２ストローブを有する１つの実施形態では、第１のストローブは図２５および２６のプロセスを使用しないかも知れず、第２のストローブは図２５および２６のプロセスを使用するかもしれない。
【０１２７】
前の記述は、プログラミングの間および読み出しの間のフローティングゲート結合を補償するためのプロセスを記述している。いくつかの実施形態では、プログラミングおよび読み出しの両方の間に補償が行われ得る。しかし、たいていの実施形態では、補償はプログラミングの間または読み出しの間に行われるけれども、その両方の間に行われるわけではない。補償を読み出しの間に行うのか、あるいはプログラミングの間に行うのかの決定は、メモリシステムの使用法に基づいてなされ得る。例えば、データはほとんどプログラムされないけれども多数回読み出されることになるであろうホストにおいてメモリシステムが使用されるのであれば、プログラミングの間に補償するほうがよいかもしれない。あるいは、ホストが多数回プログラムしてほとんど読み出さないならば、補償を読み出しプロセスの間に行うほうがよい。
【０１２８】
一実施形態では、メモリシステムは、読み出しプロセスの間でかつプログラミングプロセスの間に補償を行うための技術を含むように製造され得る。製造プロセスの間またはその後の何らかの段階で、メモリシステムは、読み出しプロセスの間にだけまたはプログラミングプロセスの間にだけ補償を行うように設定され得る。
【０１２９】
図２７は、読み出しプロセスの間またはプログラミングプロセスの間に補償を行うようにメモリシステムを設定するためのプロセスを記述するフローチャートを提供する。ステップ１２００で、メモリシステムは、読み出し中に補償を行うと共にプログラミング中に補償を行う能力を伴って製造される。これは、半導体ウェハを製造することを含み得る。任意に、ステップ１２００は、当該技術分野で知られているプロセスを用いてウェハをパッケージングすることも含み得る。このパッケージは、前述した設定を行うためのスイッチを有するかもしれないし有しないかもしれない。集積回路上の記憶素子に関連付けられたそのようなスイッチを付加するための技術は当該技術分野において知られている。ステップ１２０２で、補償が読み出し中に行われるべきであるのかあるいは補償がプログラミング中に行われるべきであるのかを示すために、ステップ１２００で製造されたメモリシステムの一部分であるフラグ（補償フラグ）が、意図された使用法に基づいてセットされる。フラグは、製造プロセス中、製造プロセス後、試験プロセス中、あるいは装置が使用されている間にセットされ得る。ステップ１２０４で、装置の使用中に、システムは補償フラグをチェックする。補償フラグが読み出し中に補償を行うためにセットされていたならば、ステップ１２０６でメモリシステムは読み出しプロセス中に結合についての補償を提供する。補償フラグがプログラミングのためにセットされれば、メモリはプログラミングプロセス中に結合についての補償を提供する（ステップ１２０８）。
【０１３０】
フラグはステップ１２０２で多くの異なる仕方でセットされ得る。製造または試験プロセスの間に、補償が読み出し中に行われるべきかあるいはプログラミング中に行なわれるべきかを示すためにＲＯＭヒューズがセットされ得る。他の実施形態では、フラグの指示を記憶するための他の手段（例えば、不揮発性アレイ内のメモリセル、フリップフロップ、あるいは他の記憶装置）が、製造プロセス中あるいは製造プロセス後に実現されかつ／またはセットされ得る。フラグは試験プロセス中あるいは使用中にもセットされ得る。さらに、集積回路のためのパッケージングは、ホストへのメモリカードの挿入の前にユーザによりセットされ得るスイッチを含むことができる。
【０１３１】
いくつかの実施形態では、補償フラグは、メモリシステムがホストに挿入された後にステップ１２０２でセットされ得る。図２８〜３１は、そのような設定の例を提供する。図２８のステップ１３００で、メモリシステムはホストに組み込まれる。ホストの例は、デジタルカメラ、ミュージックプレーヤ、移動電話、ハンドヘルド計算装置、あるいは他の計算装置を含むことができる。例示を目的として、ミュージックプレーヤがプログラムするより遥かに頻繁に読み出しを行うであろうということを考慮する。従って、ミュージックプレーヤは、プログラミング中に補償を提供することができる。その一方で、デジタルカメラは、より頻繁にプログラムし得るから、読み出しプロセス中に補償プロセスを提供するのがより適切である。図２８のステップ１３０２で、ホストはそのプリファランスをコントローラに知らせる。すなわち、ホストは、既知のプロトコルを使用するコントローラに自身が補償を何時実行することを望むかを伝えることができると知るように事前プログラムされる。ステップ１３０４で、コントローラは、ホストからプリファランスを受け取って、ホストから受け取ったそのプリファランスに基づいて補償フラグ（メモリセルまたは他の記憶装置に記憶される）をセットする。
【０１３２】
図２９はメモリシステムを設定するための他の１つの実施形態のフローチャートを提供する。ステップ１３２０で、メモリシステムがホストに組み込まれる。ステップ１３３２で、ユーザはプリファランスを選択することができる。一実施形態では、ユーザは、機械的スイッチを動かすことによってあるいはホストのユーザインターフェイスでプリファランスを選択することによってプリファランスを選択する。例えば、デジタルカメラのユーザは読み出し中に補償を行うことを選択することができ、ミュージックプレーヤのユーザはプログラミング中に補償を行うことを選ぶことができる。ステップ１３３４で、ホストはそのプリファランスをコントローラに知らせる。ステップ１３３６で、コントローラは、ホストから受け取られたプリファランスに基づいて補償フラグをセットする。
【０１３３】
図３０は、メモリシステムを設定するためのプロセスの他の１つの実施形態を記述するフローチャートを提供する。ステップ１３３０で、メモリシステムはホストに組み込まれる。ステップ１３３２で、コントローラはホストが身元を明らかにすることを要求する。例えば、ホストは、自身がデジタルカメラ、ミュージックプレーヤ、ＰＤＡ、携帯電話機などであることを示すことができる。コントローラは、ステップ１３３４でその情報を受け取ってホスト情報のテーブルにアクセスする。テーブルは、各々のモデルまたはタイプの装置について補償フラグをどのようにセットするかを明らかにする。そのテーブルとホストから受け取られた情報とに基づいて、コントローラは設定を選択する（例えば、読み出し中に補償を行うか、それともプログラム中に補償を行うかを選択する）。ステップ１３３６で、コントローラは、ステップ１３３４で決定された設定に基づいてフラグを適宜セットする。
【０１３４】
図３１は、メモリシステムを設定するためのプロセスの他の１つの実施形態を記述するフローチャートである。ステップ１３６０で、メモリシステムはホストに組み込まれる。ステップ１３６２で、ホストは複数のファイルをメモリシステムに格納させる。所定量の時間の後、所定量のファイルがメモリシステムに格納された後、あるいはホストまたはユーザからのコマンドに基づいて、コントローラはステップ１３６４でメモリシステムに格納されている最も代表的なファイルタイプを判定する。例えば、１０個のファイルが格納されていて、そのうちの８個がミュージックファイルであるならば、コントローラは、最も代表的なファイルがミュージックファイルであると判定する。ステップ１３６６で、コントローラは、代表的ファイルタイプに基づいて設定を決定する。例えば、ファイルタイプを記録したテーブルをメモリシステムに格納することができ、各ファイルタイプについての補償フラグのために１つの値が格納される。フラグの値は、補償をプログラミング中に行うかそれとも読み出し中に行うかを示すことができる。ステップ１３６８で、コントローラは、ステップ１３６６で決定された設定に基づいて補償フラグをセットする。
【０１３５】
隣接するセルの中の電荷に起因する摂動についてのプログラミング中の補償
セル間のフローティングゲート結合（「ユーピン効果」）
前述したように、１つのメモリセルの電荷蓄積素子の中にプログラムされた電荷は、隣接するメモリセルの電界を乱す電界を生じさせる。これは、本質的に電荷蓄積素子を有する電界効果トランジスタである隣のメモリセルの特性に影響を及ぼす。特に、感知されるときには、メモリセルは、乱され方の程度がより低いときよりも高いしきい値レベルを有する（あるいはより多くプログラムされている）ように見える。
【０１３６】
一般的に、１つのメモリセルが第１の界環境下でプログラム−ベリファイされて、隣接セルが後に異なる電荷でプログラムされたために後に異なる界環境下で再び読み出されるならば、「ユーピン効果」と称される隣接するフローティングゲート間の結合により読み出し精度が影響を受けるかもしれない。半導体メモリにおいて集積化がますます進むと、メモリセル間の蓄積された電荷に起因する電界の摂動（ユーピン効果）は、セル間の間隔が縮むに連れてますます明らかになってくる。
【０１３７】
読み出し中のＢＬ−ＢＬおよびＷＬ−ＷＬユーピン効果についての補正
前のセクションに記載されたように、１つの方法は、読み出し操作中にＢＬ−ＢＬユーピン効果を補償することである。それは、隣接するビット線上のセルのプログラム済み状態が始めに留意されて、現在のビット線上の現在のセルを読み出すときに適切な補償を行うために使用される、ルックアヘッド（「ＬＡ」）手法である。隣接するセルのデータを読み出すために、現在のセルのビット線で付加的な感知が行われる。隣接するビット線上の検出されたデータに基づいて、現在のセルを感知するときに適切な量の補償が使用される。
【０１３８】
読み出し中のＷＬ−ＷＬユーピン効果についての補正は、本質的に、ルックアヘッド（「ＬＡ」）読み出しと称されているものである。ＬＡ読み出し方式は、その全体が本願明細書において参照により援用されている、米国特許第７，１９６，９２８号と（特許文献２１）、２００６年１０月に公開された「Read Operations For Non-Volatile Storage That Includes Compensation For Coupling」という米国特許出願公開第２００６／０２２１７１４号（特許文献２２）とに開示されている。ＬＡ補正を伴う読み出しは、基本的に、隣接するワード線上のセルにプログラムされたメモリ状態を調べ、現在のワード線上の読み出されつつあるメモリセルに対してそれらが持つ摂動効果を補正する。ページが前述した好ましいプログラミング方式に従ってプログラムしているのであれば、隣接するワード線は現在のものの直ぐ上のワード線からのものである。ＬＡ補正方式は、隣接するワード線上のデータが現在のページの前に読み出されることを必要とする。
【０１３９】
代わりの直接ＬＡ方式（「ＤＬＡ」：Direct LA scheme）が、その全体が本願明細書において参照により援用されている２００６年３月１７日に出願された「System For Performing Read Operations On Non-Volatile Storage With Compensation For Coupling」という米国特許出願第１１／３７７，９７２号（特許文献２３）に開示されている。ＤＬＡ方式も、隣のワード線上の隣接するセルのプログラム済み状態を考慮に入れることによって現在のワード線におけるセルの読み出しに対して補正を行う。読み出し中に現在のワード線を単にバイアスする代わりに、補正は、結果として生じるフローティングゲート結合がＷＬ−ＷＬユーピン効果エラーを相殺するように、隣接するワード線をバイアスすることによって成し遂げられる。
【０１４０】
読み出し中にユーピン効果を補正することは可能であるけれども、メモリがセルあたりにますます多くのメモリ状態をサポートするとき、操作はますます厄介になる。２ビットまたは４状態のメモリでは、現在のワード線上のページのプログラム済み状態を判定するために既に少なくとも３回の読み出しがある。補償を行うために隣のワード線上のデータが使用されるならば、隣のワード線上のページも読み出されなければならない。それゆえ、現在のワード線上の現在のページを読み出すことは、隣のワード線上の隣のページを読み出すことも必要とする。
【０１４１】
プログラミング中のユーピン効果の補正
多くの点で、プログラミング性能を犠牲にしてではあるけれどもプログラミング中にユーピン効果を補正するのが好ましい。多くの記憶装置は、いったんデータがプログラムされた後はほとんどあるいは全く更新されることなくそれが多数回読み出されるという仕方で使用される。従って、装置の総合的性能は、補正という重荷をプログラミング側に移すことによって最善にされる。
【０１４２】
ユーピン効果は隣接するセルにより強く影響を及ぼし、それはメモリアレイの１つの行に沿うビット線を横断することがあり（ＢＬ−ＢＬユーピン効果）、また１つの列に沿うワード線を横断することがあり得る（ＷＬ−ＷＬユーピン効果）。それは、セルにとっての界環境の、プログラム−ベリファイの時点と隣接するセルがプログラムされた後の読み出しの時点との間での非対称性を最小にすることによって、軽減される。
【０１４３】
プログラミング中にユーピン効果を減少させる方法がいくつかある。１つの方法は、１つのワード線に沿う１ページのメモリセルのためのプログラミングが２以上のパスで完了させられるマルチパスプログラミングを行うことである。通例、少なくとも２つのプログラミングパスが実行される。第１のパスは、ページ中の全セルをそれらのそれぞれのターゲット状態の近くへ、ターゲット状態について普通はそれであるべきものより低くオフセットしている対応するベリファイレベルを用いて、プログラムする。次のパスは、そのようなオフセットを伴わない標準のベリファイレベルを用いてプログラミングを完成させる。セルに対するユーピン効果は、セルのプログラミング後の隣のものの変化（すなわち、プログラミング）によって与えられるに過ぎない。次のパスがフローティングゲート間の電荷の最小限の変化を伴って実行されるときには、プログラム−ベリファイ操作とその後の読み出し操作との間に界環境の最小限の非対称性があり得る。従って、ユーピン効果は２パスプログラミング手法で最小にされる。この手法は、ＢＬ−ＢＬユーピン効果を最小にすることができる。後述されるように、それは、ワード線からワード線へとプログラムしてゆくときに２パスが特定の順序で実行されるならば、ＷＬ−ＷＬユーピン効果を減少させることもできる。
【０１４４】
前述した最低２パスのプログラミング方式の１つの不利な点は、各々のプログラミングが、データが適切になる前に少なくとも２パスを必要とすることである。換言すれば、データは、最終パスが完了するまでは有効ではなく、従って有用ではない。
【０１４５】
１つの代わりのマルチパスプログラミング方式は、全ビットが適切になるまで各パスが１つの付加的なビットを漸次プログラムするようにマルチビット符号化を採用することである。このようにして、各パスは、マルチビットデータの少なくとも１ビットをプログラムすると共に、セルにプログラムされたマルチビットデータが有効になる前に全パスを完了させることを必要とせずに有用なデータを格納することができる。ＢＬ−ＢＬユーピン効果を減少させるために、バイナリプログラミングの各パスの間の電荷の大きな変化を避ける符号化が使用される。そのような特性を有する１つの好ましい符号化は、図１４と関連して前に記載された「ＬＭ」符号化により与えられる。ＬＭ符号化は、各パスが１ビットのデータを格納することを効果的に可能にするけれども、ユーピン効果をおよそ５０％減少させるだけである。
【０１４６】
ターゲットメモリ状態と隣接するセルの前もって判定された状態との両方に依存するベリファイレベル
本発明の一般的な態様に従って、隣接するメモリセル上の電荷に起因する摂動は、隣接するメモリセルに後にプログラムされた摂動を引き起こす電荷にもかかわらず正しいターゲット状態がセルから読み出されることとなるようにベリファイレベルを適宜調整することによって、セルの所与のターゲット状態へのプログラム中に補償される。
【０１４７】
これは、隣接するメモリセルのメモリ状態を前もって判定し、プログラムされるメモリセルのターゲット状態と隣接するメモリセルのメモリ状態との関数としてベリファイレベルを調整することによって成し遂げられる。この方式は、プログラミングが単一パスで完了させられるという利点も有する。
【０１４８】
図３２は、プログラミング中にデータ依存ベリファイレベルを用いてユーピン効果を補償する方法を示す流れ図である。これは、本質的に、データ依存ベリファイレベルを使用するワンパスプログラミング方式である。
ステップ１４００：プログラムされる各メモリセルのしきい値電圧を高めるためにある量のプログラミング電圧を１グループのメモリセルに並行して印加する。
ステップ１４１０：ベリファイされるメモリセルのしきい値電圧を、所与のターゲット状態と、ベリファイされるメモリセルに隣接するメモリセルのターゲット状態との関数である所定のベリファイレベルに関して判定することによって、グループのメモリセルのプログラム済み状態を所与のターゲット状態に関してベリファイする。
ステップ１４２０：グループ中のベリファイされたメモリセルのそれ以上のプログラミングを禁止する。
ステップ１４３０：所与のターゲット状態にプログラムされるべきメモリセルは全てベリファイされたか？そうであるならば、ステップ１４４０に進み、そうでなければ、ステップ１４００に進む。
ステップ１４４０：所与のターゲット状態にプログラムされるべきメモリセルについてのプログラミングは終了する。
【０１４９】
図３３は、本発明を説明するのに適するメモリアレイの一部分を示す。例えば、１つのワード線ＷＬｎにより接続される１ページのメモリセルが並行してプログラムされる。メモリセル１４６０などの、ページ中のセルのうちの任意の１つに対するユーピン効果は、大部分は、プログラムされるメモリセル１４６０の近隣の隣接するセルの後のプログラミングにより与えられる。特に、ワード線ＷＬｎに沿って、左側の隣のものはセル１４７２であり、右側の隣のものはセル１４７４である。同様に、プログラムしているセル１４６０はビット線ＢＬ２を介してセンスアンプ（図示せず）に結合されている。ビット線ＢＬ２に沿って、プログラム中のセル１４６０の下の、ワード線ＷＬｎ−１上の隣のものはセル１４８２であり、上のＷＬｎ＋１ワード線上の隣のものはセル１４８４である。
【０１５０】
メモリセル１４６０の隣のものは可能なメモリ状態のうちの任意の１つにあることができて、各々が異なる量の電荷をその電荷蓄積素子に有し、従って異なる量の摂動を主張する。隣のものが４つある場合には、摂動の範囲は、これらの隣のものにおける可能なメモリ状態の順列により与えられる。一般的に、当面の問題に関連のある隣のものは、メモリセル１４６０がプログラミングを終えた後にプログラムされるものだけである。実際問題として、メモリセル１４６０により見られる摂動の量、従って補償レベルの数を扱いやすい数に量子化することが好ましい。例えば、補償レベルの数を１ビットにより符号化することができ、この場合、「０」は無補償を意味し、「１」は所定のレベルの補償を意味することができる。他の１つの実施形態では、４つに及ぶ可能な補償レベルを表すために２ビットが使用され得る。
【０１５１】
現在のワード線ＷＬｎに印加される所定のオフセットベリファイレベル
一実施形態では、ベリファイは、プログラム−ベリファイされるべきメモリセルに関連付けられたワード線に印加される所定のオフセットベリファイ電圧レベルで感知することによって実行される。例えば、図３３を参照して、メモリセル１４６０がプログラム−ベリファイされるならば、所定のベリファイ電圧レベルがＷＬｎに印加される。
【０１５２】
図３４は、隣接する電荷に起因する摂動を補償するためにプログラミング中にＷＬｎ上のベリファイレベルを調整することを示す。この例は、１ビットにより符号化される２つの可能な補償レベルを示す。隣のものがより少なくプログラムされて総摂動が所定のしきい値より低いときには、補償は使用されない。従って、ベリファイ感知中にＷＬｎワード線に印加されるベリファイ電圧レベルは、セル１４６０などのセルをターゲット状態にプログラムするのに適切な標準のＶ（ターゲット状態）と同じである（補償符号「１」）。一方、隣のものがより多くプログラムされた状態にあって総摂動が所定のしきい値より高いときには、標準ベリファイレベルを所定のオフセット電圧ΔＶだけ低くオフセットさせることによって補償が行われる、すなわち、Ｖ−ΔＶの電圧がＷＬｎに印加される（補償符号「０」）。オフセットΔＶは、ΔＶ（隣接状態）により示される隣接状態の関数である。図３４の例はＮＡＮＤメモリに関連し、そこではＷＬｎはＮＡＮＤチェーンの中の選択されたワード線であって（図２を参照）、選択されていないワード線の残りには、ベリファイ操作中、電圧Ｖｐａｓｓが印加される。ＷＬｎ−１およびＷＬｎ＋１は、ＷＬｎに隣接する選択されていないワード線のうちの２つとして示されている。
【０１５３】
一般的に、オフセットは、それにプログラムされるべきターゲット状態に依存する隣のものからの摂動の量がどれほどかの関数である。プログラム済み状態が多いほど、より多くの電荷および摂動がある。オフセットを、工場におけるメモリチップの初期試験および品質認定により前もって定めることができる。
【０１５４】
図３２の例は１ビット補償方式を示しているが、２ビット補償方式などのより精細な方式も可能である。２ビットの場合には、ＷＬｎに印加され得る４つの可能な電圧レベル、すなわちＶ、（Ｖ−ΔＶ１）、（Ｖ−ΔＶ２）および（Ｖ−ΔＶ３）がある。
【０１５５】
図３５は、ワンパスデータ依存ベリファイレベルが現在のワード線にだけ印加される図３２に示されているベリファイステップの一実施形態を示す流れ図である。ベリファイステップ１４１０は、
ステップ１４１２：ベリファイされるメモリセルのしきい値電圧を、所与のターゲット状態と、ベリファイされるメモリセルに隣接するメモリセルのターゲット状態との関数である所定のベリファイレベルに関して判定することによって、グループのメモリセルのプログラム済み状態を所与のターゲット状態に関してベリファイすることと、
ステップ１４１４：ベリファイは、ベリファイされるメモリセルのワード線上の所定のベリファイレベルにより与えられる電圧を用いて感知することを含むということとを含む。
【０１５６】
プログラムされるべきメモリセルがＮＡＮＤチェーンの一部であるならば（図２を参照）、所定のベリファイレベルは、プログラムされるメモリセルに関連付けられたワード線に印加される。チェーン中の他の全てのメモリセルは、それらをオンに転換させるために、それらに関連付けられたワード線にパス電圧Ｖｐａｓｓ（遠くのドレイン側にあるセルはＶｄｄであり得る）を印加される。
【０１５７】
１ビット補償方式では、ページの全セルのコントロールゲートが同じワード線ＷＬｎを共有するので、プログラミング中のベリファイは、１つの所与のターゲット状態についてページに対して２回実行されなければならない。ページ中の、その隣のものが補償を必要としないセルのためには、標準ベリファイ電圧レベルＶがＷＬｎに印加される。補償を必要とするセルのためには、オフセットベリファイ電圧レベルＶ−ΔＶがＷＬｎに印加される。
【０１５８】
他の実施形態では、より多くの補償レベルが考えられるということが理解されるべきである。いろいろなレベルは１つより多いビットにより符号化され、ベリファイ操作は、いろいろな補償レベルを有するページのいろいろな部分集合に対して実行されなければならない。プログラミングを受けるセルのための補償レベルが決定されると、それはベリファイ操作中に使用されるべくセルの同じ列または感知回路にラッチされる。前述したように、ベリファイできないセルは次のプログラミングパルスによるさらなるプログラミングを受けさせられ、ベリファイされたものはさらなるプログラミングを受けないようにプログラム禁止にされる。
【０１５９】
プログラミング中にベリファイレベルをターゲット状態と隣接するメモリセルの前もって判定されたメモリ状態との関数として、調整することにより、隣接するセル上の現存するあるいは予想される電荷に起因するユーピン効果は本質的に１プログラミングパスで補償される。全セルを第１のパスでそれらのターゲット状態の近くにプログラムし、その後に、好ましくは隣接するセルがプログラムされた後にプログラミングをさらなるパスで完了させる必要はない。実際には、プログラミングは、性能を高めるために好ましくは２以上のフェーズ（例えば、粗大／精密フェーズ）を採用し得るけれども、ユーピン効果を減少させるために２つの別々のパスを完全に異なる時点で実行する必要はない。シングルパスのプログラミングは、最大のプログラミング性能と、ワード線からワード線へのより簡単なプログラミングシーケンスとを考慮に入れる。
【０１６０】
より低いオフセットベリファイレベルを用いる操作に伴う問題点
シングルパスプログラミング方式あるいはマルチパスプログラミング方式のいずれの場合にも、パスのうちの少なくとも１つにおいてベリファイレベルはより低くオフセットされなければならない。低すぎるベリファイレベルを使用することには問題が生じるかもしれない。
【０１６１】
一般的に、隣のものからのユーピン効果に起因するセルの摂動は、セルの見かけ上のしきい値レベルを高めるという効果を有する。換言すれば、セルは、ユーピン効果なしの場合より多くプログラムされているように見える。従って、ユーピン効果を考慮に入れるときにはベリファイレベルは標準より低くなければならない。２パスプログラミング方式では、特にそうである。第１のパスは完全にユーピン効果の影響を受け、第２の仕上げパスは、ユーピン効果の影響がより少なくて、ベリファイし得る。従って、最悪の場合のユーピン効果に起因する「過剰プログラミング」を回避すると共に、メモリセル間でしきい値レベルの集団のために密な分布を保証するために、第１のパスのベリファイレベルは標準より低くオフセットされなければならない。しかし、次の説明から分かるように、オフセットは１Ｖほどの低さかあるいはそれ以上であり得る。これは、感知中に操作上の難点を引き起こすかあるいは１つのメモリセルがサポートし得るメモリ状態の数を制限することがある。
【０１６２】
図３６Ａは、１つのしきい値ウィンドウ内で４つの別々のクラスタをなして分布する４つのメモリ状態をサポートするメモリセルの典型的な集団の例を示す。各クラスタは、４つのメモリ状態のうちの１つを有する集団メモリセルを表す。この例は、−２．５Ｖから４Ｖに及ぶしきい値ウィンドウを示す。一般的に、しきい値ウィンドウの下限は、負の電圧で感知するセンスアンプの能力により決まる。その一方で、しきい値ウィンドウの上限は、高電圧トランジスタの降伏電圧と、大量の電荷を保持するためのフローティングゲートの劣化とにより決まる。
【０１６３】
図３６Ｂは、現在感知されているセルのプログラム済みしきい値レベルに対する高くプログラムされた隣接するセルの影響を示す。これは、現在のセルの知覚されるしきい値レベルを高めるユーピン効果である。例えば、高くプログラムされた隣のものは、その電荷蓄積素子（例えば、フローティングゲート）に相当の量の電荷をプログラムされ、その隣接する電荷の影響は、感知される現在のセルのフローティングゲートに結合する。各々の隣のものは、現在のセルの知覚されるしきい値レベルを３５０ｍＶも高め得る。セルが、その直ぐ隣のものの４つ全て（左、右、上および下）により乱されるならば、それは、知覚されるしきい値レベルを１Ｖ超高め得る。従って、その隣のもののプログラム済み状態により、各セルの見かけ上のしきい値レベルは、ゼロからある最高ボルト数までの範囲内でシフトされ得る。各クラスタに対する正味の効果は、その末尾がより高いボルト数のほうへ散開させられるということである。
【０１６４】
図３７Ａは、感知される現在のセルに対するいろいろな隣のものからのユーピン効果の寄与を示す。この例は、感知される現在のセルが状態「Ａ」にあるメモリセルの集団に属することを示している。集団１５０２は、いかなる隣接摂動にもさらされないメモリセルを表す。隣接するビット線上の隣のものの両方が後に最もプログラムされた状態にプログラムされることにより集団のいくつかのセルが乱されるときに１５０２の末尾は１５０４へ変更される（ＢＬ−ＢＬユーピン効果）。同様に、次のワード線（ＷＬｎ＋１）上の隣のものが後に最もプログラムされた状態にプログラムされることによって集団のいくつかのセルが乱されるときにも１５０４の末尾はさらに１５０６へ変更される（ＷＬ−ＷＬユーピン効果）。従って、ＢＬ−ＢＬユーピン効果およびＷＬ−ＷＬユーピン効果の両方の組み合わせが、セルをより高いしきい値電圧レベルを有するように見えさせ得るということが分かる。例えば、最悪の場合のＢＬ−ＢＬ効果はしきい値電圧を２５０ｍＶシフトさせることができ、一方の隣のものからの最悪の場合のＷＬ−ＷＬ効果はしきい値電圧を３５０ｍＶ、両側からならば７００ｍＶ、シフトさせることができる。その組み合わせは６００ｍＶから約１Ｖにおよび得る。
【０１６５】
前述したように、ユーピン効果にさらされたメモリセルの見かけ上のしきい値レベルの上昇に起因して「過剰プログラム」しないために、マルチパスプログラミングの第１のパスのためのベリファイレベルは、最悪の場合のユーピン効果を実質的に含むオフセット１５１２だけ低くセットされる。従って、第１のプログラミングパスについて、高くプログラムされた隣接するセルに起因して知覚される高められたしきい値レベルにより明らかにされる現在のセルの起こり得る「過剰プログラミング」を避けるために、第１のパスのためのベリファイレベルは１Ｖも低くオフセットされなければならないかもしれない。
【０１６６】
図３７Ｂは、ユーピン効果を減少させるための、マルチパスプログラミングの第１のパスのためのベリファイレベルのシフトを示す。例えば、２つのパスがあって最終のパスが状態「Ａ」、「Ｂ」および「Ｃ」のためにそれぞれ標準ベリファイレベルＶ２ａ、Ｖ２ｂおよびＶ２ｃを使用するならば、これらのターゲット状態の各々へのプログラミングのための対応する第１のパスのベリファイレベルＶ１ａ、Ｖ１ｂおよびＶ１ｃは、所定量だけ低くオフセットされ得る。例えば、Ｖ１ａはＶ２ａから所定量１５１２（図３７Ａも参照）だけ低くオフセットされる。
【０１６７】
マルチパスプログラミング方式において第１のパスのベリファイレベルをオフセットさせることと、シングルパスプログラミング方式においてユーピン効果を補償するために使用される低いほうのベリファイレベルをより小さな程度にオフセットさせることとは、消去済み状態「Ｅ」についての問題を引き起こす。一般的に、なるべく多くの別々の状態をはめ込むためにしきい値ウィンドウの広さを最大にするために、消去済み状態はしきい値ウィンドウの下端の限界に置かれる。前に説明されたように、この限界は、負電圧で感知するセンスアンプの能力により制御される。例えば、下限は、図に示されているように−２．５Ｖであり、実際問題として、消去済み状態の、明瞭に画されかつしっかりと制御される分布を持つことが好ましい。通例、それは、より密な分布を形成するための消去後のソフトプログラミングにより成し遂げられる。ソフトプログラミングは、消去済み状態のための所定のレベルに関してのプログラム−ベリファイを必要とする。しかし、オフセットした第１のパスのベリファイレベルが必要であれば、そのオフセット１５１０はベリファイレベルをしきい値ウィンドウの下限を超えてシフトさせるかもしれない。オフセットを限界内に保つために全てのクラスタをより正の端のほうへシフトさせることが可能ではあるけれども、それはしきい値ウィンドウの有効範囲を狭める。
【０１６８】
隣接ワード線をバイアスすることによるベリファイレベルの仮想オフセット
本発明の他の１つの態様に従って、調整されたベリファイレベルでプログラム−ベリファイされるときに、隣接するメモリセル中に後にプログラムされる摂動を引き起こす電荷に関わらず正しいターゲット状態がセルから読み出されることとなるように隣接ワード線を適宜バイアスすることによって、ベリファイレベルの調整が仮想的に成し遂げられる。これは、プログラムされるセルのベリファイレベルに現実のオフセットを使用することを回避し、これにより、最低メモリ状態をベリファイするときに負電圧感知を必要とするようにベリファイレベルを低くシフトさせすぎるかもしれないという問題を回避するという利点を有する。
【０１６９】
前に図３６Ａおよび３６Ｂに関連して説明したように、より低くオフセットされたベリファイレベルを使用することは望ましくない。本発明のこの態様は、隣接するワード線ＷＬｎ＋１を適切にバイアスすることで同じ効果を達成することによって、標準より低いベリファイレベルを使用するという問題を回避する。
【０１７０】
図３８は、好ましい実施形態に従う、標準ベリファイレベルに仮想オフセットをもたらすための、ベリファイを受けるワード線上の標準ベリファイレベルと隣接するワード線をバイアスすることとの組み合わせを示す。この例は、ＮＡＮＤメモリに使用される１ビットにより符号化される２つの可能な補償レベルを示す。特に、ＷＬｎはＮＡＮＤチェーンの中の選択されたワード線であり（図２を参照）、選択されていないワード線の残りには、ベリファイ操作中に電圧Ｖｐａｓｓが印加される。
【０１７１】
隣のものがより少なくプログラムされて総摂動が所定のしきい値より低いときには、補償は使用されない（補償符号「１」）。従って、ベリファイ感知中にＷＬｎワード線に印加されるベリファイ電圧レベルは、セル１４６０などのセルをターゲット状態にプログラムするのに適切な標準のＶ（ターゲット状態）と同じである（補償符号「１」）。同時に、チェーン内の選択されていないワード線の残りには、ベリファイ操作中に電圧Ｖｐａｓｓが印加される。ＷＬｎ−１およびＷＬｎ＋１は、ＷＬｎに隣接する選択されていないワード線のうちの２つとして示されている。特に２つの電圧のうちの１つ、Ｖ０＝ＶｐａｓｓがＷＬｎ＋１に印加される。
【０１７２】
一方、隣のものがより多くプログラムされた状態にあって総摂動が所定のしきい値より高いときには、補償が必要とされる（補償符号「０」）。この場合、Ｖ０より低いＶ１がＷＬｎ＋１に印加される。Ｖ１は、図３４に示されている補償符号「０」のための設定と事実上同様の効果を有することとなるように、前もって決められる。しかし、標準ベリファイレベルをより低くオフセットさせてそれをＷＬｎに印加する（補償符号「０」）。同等の方式は、より低くオフセットされたＶｐａｓｓであるＶ１をＷｎ＋１に印加することである。
【０１７３】
従って、１ビット補償では、ワード線電圧設定は標準ベリファイ操作と同様であり、補償が不要であるときには隣のワード線ＷＬｎ＋１にＶ０＝Ｖｐａｓｓが印加され、補償が必要なときには隣のワード線にＶ１が印加される。電圧Ｖ１をＶｐａｓｓ−ΔＶ’と見なすことができ、ここでΔＶ’は、図３４に示されているＷＬｎにおける標準ベリファイレベルに対する仮想オフセットの効果を生じさせるための余分なバイアスである。好ましくは、隣接するワード線上の電圧は、補償を伴うセルのベリファイ中のより低い電圧Ｖ１から、無補償の他のセルのベリファイ中のより高い電圧Ｖ０へ高められる。
【０１７４】
図３９は、ワンパスデータ依存ベリファイレベルが現在のワード線と隣接するワード線との両方に印加される、図３２に示されているベリファイステップの他の１つの好ましい実施形態を示す流れ図である。隣接するワード線（例えば、ＷＬｎ＋１）に対するバイアス電圧の付加的な印加は、現在のワード線（例えば、ＷＬｎ）に印加されるベリファイ電圧レベルを仮想的にオフセットさせるという効果を有する。これは、前述したベリファイ電圧を低下させることに関連する不利益を回避する。実際に、仮想オフセットの効果は、ＷＬ−ＷＬ結合効果についてのメカニズムを真似、従ってＷＬ−ＷＬ結合効果を調整することに関して、より精密である。
ステップ１５３０：ワード線およびビット線によりアクセスされ得るメモリセルのアレイを有する不揮発性メモリを提供する。
ステップ１５４０：１グループのメモリセルが並行して所与のターゲット状態にプログラムされるように指定する。
ステップ１５５０：プログラムされる各メモリセルのしきい値電圧を高めるためにある量のプログラミング波形電圧をグループのメモリセルに並行して印加する。
ステップ１５６０：所与のターゲット状態の第１の関数である所定のベリファイ電圧レベルを、グループのメモリセルにアクセスするワード線に印加する。
ステップ１５６２：ベリファイされるメモリセルに隣接するメモリセルのターゲット状態の第２の関数である所定のバイアス電圧レベルを隣接するワード線に印加する。
ステップ１５６８：プログラムされるメモリセルのグループをベリファイするために感知する。
ステップ１５７０：所与のターゲット状態にプログラムされたとベリファイされたグループの中のメモリセルのさらなるプログラミングを禁止する。
ステップ１５８０：所与のターゲット状態にプログラムされるべきメモリセルが全てベリファイされたか？そうであるならば、ステップ１５９０に進み、そうでなければ、ステップ１５４０に進む。
ステップ１５９０：所与のターゲット状態にプログラムされるべきメモリセルについてのプログラミングは終了する。
【０１７５】
ＷＬ−ＷＬユーピン効果を半分だけ減少させるための好ましいプログラミング方式
隣接するワード線上のメモリセル間に摂動が生じるＷＬ−ＷＬユーピン効果に関して、それは、好ましいプログラミング方式を用いてプログラミング中に軽減される。これは、実際上、摂動を半分だけ減少させる。残りの半分も、前述したプログラミング操作中または読み出し操作中に種々の補償方式のうちの１つまたはそれらの組み合わせを用いて訂正され得る。
米国特許第６，７８１，８７７号（特許文献２４）は、ＷＬ−ＷＬユーピン効果がメモリアレイ中のページを最適な順序でプログラムすることによっても減少させられるプログラミング方式を開示している。
【０１７６】
１つの好ましいプログラミング方式は、ワード線に関連付けられているページを最適な順序でプログラムさせる。例えば、どの物理的ページも１ページのバイナリデータを保持するバイナリメモリの場合には、ページは、好ましくは、例えば下から上へなどの終始一貫した方向に沿ってシーケンシャルにプログラムされる。この方法では、特定のページがプログラムされるときに、その下側のページは既にプログラムされている。それらがどんな摂動を引き起こす効果を現在のページに及ぼすとしても、それらは、現在のページがプログラム−ベリファイされるときにそれらの摂動を考慮して償われる。本質的に、ページをプログラムする順序は、プログラムされる現在のページが、それがプログラムされた後には、その環境に最小限の変化を見ることを可能にするべきである。従って、各々のプログラム済みページはその上側のページによってのみ乱され、ＷＬ−ＷＬユーピン効果は、このプログラミング順序によって実際上半分に減少させられる。
【０１７７】
メモリセルの各物理ページが多状態で、結果としての複数の論理データページが別々のパスでプログラムされるメモリの場合には、順序はあまり単純ではない。例えば、４つのメモリ状態を符号化する２ビットメモリでは、１つのワード線に関連付けられた各物理ページは、各セルからの２ビットデータの単一のページまたは２つの別々の論理ページ（それぞれ各セルからの１ビットデータの下側および上側ビット）と見なされ得る。従って、各セルが、２ビット符号に対応する４つの状態のうちのそのターゲット状態に直接プログラムされて、物理ページがプログラムされ得る。あるいは、２つのビットの各々は、始めに下ビットのページで、その後に上側ビットのページで別々にプログラムされ得る。各物理ページの論理ページが別々にプログラムされるときには、修正された最適順序が可能である。
【０１７８】
図４０は２ビットメモリセルを有するメモリの例を示し、そのページは、隣接するワード線上のメモリセル間のユーピン効果を最小にするように最適な順序でプログラムされる。便宜上、表示法は、物理ページＰ０，Ｐ１，Ｐ２・・・がそれぞれワード線Ｗ０，Ｗ１，Ｗ２・・・上に存在するような表示法である。２ビットメモリでは、各物理ページには２つの論理ページ、すなわち、各々バイナリデータを有する下側ビット論理ページおよび上側ビット論理ページが関連付けられる。一般的に、論理ページはＬＰ（ワード線、論理ページ）により与えられる。例えば、Ｗ０上のＰ０の下側ビットページおよび上側ビットページはそれぞれＬＰ（０．０）およびＬＰ（０．１）と称され、Ｗ２上の対応するものはＬＰ（２．０）およびＬＰ（２．１）と称される。
【０１７９】
本質的に、論理ページのプログラミングは、プログラムされる現在のセルが、それがプログラムされた後にその環境に最小限の変化を見ることとなるように順序ｎに従う。この場合にも、下から上への１つの終始一貫した方向にインクリメンタルに移動することは、１つの側からの摂動を除去するのに役立つ。さらに、各物理ページが２つのプログラミングパスを持ち得るので、プログラミングが低いほうの物理ページから上のほうへ移動してゆくときに、現在の上側ビットページは、それに隣接する下側ビットページが既にプログラムされ終わったためにそれらの摂動を引き起こす効果が現在の上側ビットページをプログラムするときに償われることとなった後に、プログラムされるのがよい。従って、プログラミングがＬＰ（０．０）から始まるならば、順序は、ページプログラミング順序、０，１，２・・・ｎ・・・により指定されるとおりであり、それはＬＰ（０．０），ＬＰ（１．０），ＬＰ（０．１），ＬＰ（２．０），ＬＰ（１．１），ＬＰ（３．０），ＬＰ（２．１）・・・をもたらす。
【０１８０】
データ依存ベリファイレベルを用いてプログラムするための隣接状態の判定
図２４に関して前述したように、プログラム−ベリファイ中のＢＬ−ＢＬユーピン効果についての好ましい補償方式は、プログラム−ベリファイレベルを隣接状態のプログラム済み状態に応じて調整することである。プログラムされるセルの列またはビット線に隣接状態を伝えるために、各々の隣のもののビット線は、各々の隣のもののプログラム済み状態に依存する所定の電圧にセットされる。この所定の電圧は、プログラムされるセルのビット線において行なわれる付加的な感知で検出され、その後にプログラム−ベリファイレベルをオフセットさせるために使用される。
【０１８１】
プログラミング中のＷＬ−ＷＬユーピン効果についての補償の場合には、プログラム−ベリファイレベルを適宜オフセットさせるために、隣接するワード線についてのプログラム済み状態またはデータが取得されて、ベリファイを受けるセルのベリファイ回路または感知回路に利用可能にされなければならない。
【０１８２】
例えば、メモリアレイ中の底のワード線から開始するなどの好ましい順序でプログラミングが行なわれるならば、現在プログラムされているワード線に関して、先行するワード線は既にプログラムされている。先行するワード線からのデータのページは、単に読み出されて、対応する列ラッチにラッチされ得る。しかし、図４０に関連して記載された好ましいプログラミング順序が遵守されるならば、先行するワード線からのユーピン効果は既に留意されていて、補償を計算するためにそのデータを得る必要はない。
やがてプログラムされるべき次のワード線内のデータについては、それを取得するためのいくつかの可能性がある。
【０１８３】
図４１は、図５に示されている記憶装置と通信するホストを示す。記憶装置はメモリチップ２９８とコントローラ６１０とを含む。メモリチップ２９８は、メモリアレイ３００と、センスアンプ、データラッチ３９４、Ｉ／Ｏ回路などの周辺回路と、オンチップ制御回路３１０とを含む。オンチップ制御回路３１０は、メモリチップの動作を制御する。多くの実施例において、ホスト１０はコントローラ３５０を介してメモリチップ２９８と通信して相互に作用する。
【０１８４】
コントローラ３５０は、メモリチップと協力し、より高いレベルのメモリ動作を制御し管理する。例えば、ホスト書き込みに関して、ホスト１０はデータが１ページずつメモリアレイ３００に書き込まれるべきことを要求する。その後、データの各ページはコントローラ３５０に送られ、これは、それをデータラッチ３９４に、メモリアレイにプログラムされるように、集結させる。１つの実施例では、少なくとも２ページのデータがコントローラ３５０により受け取られてコントローラＲＡＭ３５２にバッファされる。第１のページがワード線ＷＬｎ内の現在のページにプログラムされるべくデータラッチ３９４にラッチされているときに、ワード線ＷＬｎ＋１内の次のページにプログラムされるべく意図されている次のページのデータが評価されて、高度にプログラムされた状態に対応するものは、符号化された補償レベルとしても、対応するデータラッチにラッチされる。好ましい実施例では、各列に関連付けられたロジックおよびプロセッサは、本発明の種々のベリファイ方式でプログラミング操作を行うために状態マシンと協力する。
【０１８５】
図４２は、次のワード線のためのデータのページを得るための他の１つの手法を示す。不揮発性メモリアレイ３００の一部分が正規部分３０２とバッファ部分３０４とに分割される。メモリアレイの正規部分３０２は、通例、マルチビットデータを記憶する。その一方で、バッファ部分３０４内のメモリセルは、好ましくは、バイナリデータを記憶するように構成される。このようにすれば、バイナリデータは、相対的に高速に、ユーピン効果を補正する必要なく、バッファ部分にプログラムされ得る。好ましくは、データが最初にメモリに書き込まれるときに、それは最初にバッファ部分３０４に書かれる。後に、適切なときに、バッファ部分３０４からのデータが正規部分３０２にコピーされ得る。正規部分３０２にプログラムされるべきデータはバッファ部分３０４から容易に読み出され得るので、現在のページがプログラムされつつあるときに次のページのためのデータも、プログラム−ベリファイ中の補償についての考慮のために利用可能である。
【０１８６】
消去済みメモリ状態のための隣接するセル内の電荷に起因する摂動の補償
前述したように、データのページが、例えば下から上へなどの一定のワード線順序でプログラムされつつあるときに、下側の隣接ワード線ＷＬｎ−１は、現在のワード線ＷＬｎより前にプログラムされるので現在のワード線のセルに対してユーピン効果を及ぼさない。従って、ベリファイレベルについて調整するときに、前にプログラムされたワード線ＷＬｎ−１は考慮されなくてもよい。
【０１８７】
しかし、消去済み状態に留まるメモリセルについては、ＷＬｎ−１上のプログラム済みセルでさえもＷＬｎ上の消去済みセルに対してユーピン効果を及ぼす。換言すれば、上Ｗｎ＋１および下Ｗｎ−１にある隣接する隣のものの両方がＷＬｎ上のセルを乱す。それは、セルが常に消去済み状態に留まるならば、プログラムされるどの隣接する隣のものもセルがその状態になった後に存在するからである。従って、両方がセルの、それが消去されてからの界環境の変化に、寄与する。
【０１８８】
メモリは、通例、それらのしきい値レベルがしきい値ウィンドウの下端部に存する範囲に下がるように、そのセルを消去する。好ましい実施形態では、より深く消去されたセルを所定の区分しきい値レベルより下のより狭い範囲内にプログラムするためにソフトプログラミング操作が採用される。ソフトプログラミングは、所定の区分しきい値レベルに関してのベリファイと交互に行なわれる。このようにして、ソフトプログラミングとベリファイとは、消去済みセルの分布を所定の区分しきい値レベルの直ぐ下の所定の範囲に引き締めるのに役立つ。
【０１８９】
図４３は、消去済み状態にあるセルの集団を有するメモリ、およびそれらがユーピン効果によってどのように影響され得るかを示す。セルのワード線への所定のベリファイレベルＶE の印加によって所定の区分しきい値レベル１６１０に関して消去済みセルがソフトプログラムされベリファイされた後に、引き締められた消去済み集団は密な分布１６０２により表される。前に論じられたように、ＷＬｎ−１にあるページのプログラミングはＷＬ−ＷＬユーピン効果を導入して、分布１６０２の右尾部が、延びた尾部１６０４の場合のように、より高いレベルのほうへ広がるという結果をもたらす。同様に、ＷＬｎにあるページのプログラミングはＢＬ−ＢＬユーピン効果を導入して、分布１６０４の右尾部が、延びた尾部１６０６の場合のように、より高いレベルのほうへさらに広がるという結果をもたらす。最後に、ＷＬｎ＋１上のページをプログラムすることの効果は、右尾部を１６０６から延びた尾部１６０８へさらに広げる。
後にプログラムされた隣のものに起因して、いくつかの消去済みセルが、それらのしきい値レベルがプログラム済み状態領域までシフトされるほどに乱されることがあるということが図４３から明らかである。
【０１９０】
本発明の他の１つの態様に従って、消去済みメモリセルは、それらが消去された後に好ましくは「ソフトプログラムされる」。この「ソフトプログラムされる」というのは、消去済みセルを消去済み状態とプログラム済み状態とを区別するための所定のしきい値に関して所定の範囲のしきい値レベルにプログラムすることを指す。これは、消去済みセルを所定のしきい値に関して交互にプログラムしベリファイすることにより成し遂げられる。隣接するメモリセル上の電荷に起因する摂動は、隣接するメモリセルに後にプログラムされる摂動を引き起こす電荷にもかかわらず正しい消去済み状態がセルから読み出されることとなるようにベリファイレベルを適宜調整することによってソフトプログラミング中に補償される。
【０１９１】
これは、プログラムされるセルのワード線の両側の隣接ワード線上のものを含む隣接するメモリセルのメモリ状態を前もって判定し、隣接するメモリセルのメモリ状態の関数であるオフセットで区分レベルを下げることによってベリファイレベルを調整することによって、成し遂げられる。
【０１９２】
図４４は、全ての隣接する隣のものからの摂動を補正するために調整されたベリファイレベルでのソフトプログラミング後の消去済みセルの分布の効果を示す。この場合、ベリファイレベルは、隣接するワード線ＷＬｎ−１およびＷＬｎ＋１の両方の上の隣接するセルと、隣接するビット線上の隣のものとの関数として調整される。ソフトプログラミング後、消去済みセルが図４３において１６０２の左尾部および１６２６の右尾部により示される補正されていない分布と比べて引き締まったしきい値分布１６３０を有することが見られる。
ＢＬ−ＢＬユーピン効果が黙許され得る１つの代わりの実施形態では、ベリファイレベルのためのオフセットの調整でＷＬ−ＷＬユーピン効果だけが補正される。
１つの好ましい実施形態では、ベリファイレベルのオフセットは、図３８Ａおよび図３８Ｂに示されているものと同様の隣接ワード線のうちの１つ以上のバイアスによって仮想的に実行される。
【０１９３】
図４５は、１つの好ましい実施形態に従う、両側補正を成し遂げるための隣接ワード線のバイアスを示す。ソフトプログラムされる消去済みセルがワード線ＷＬｎ上にあるならば、図３８Ａに示されている方式と同様に標準ベリファイレベルＶE がＷＬｎに印加される。標準ベリファイレベルＶE は、図４３に関連して前に記載されたユーピン効果補正を考慮せずに消去済みセルの標準ソフトプログラミングに使用されるものである。
【０１９４】
ＷＬｎのどちらの側にも隣接するワード線があるので、好ましい実施例は、両方の隣接するワード線をバイアスすることである。各々の隣接するワード線がそれぞれ１ビットの「１」または「０」により表示される２つの電圧Ｖ０またはＶ１のうちの１つを持つことを許されるならば、両方の隣接するワード線は、２ビットにより表示される４つの可能な組み合わせを有する。それらの組み合わせの各々は、ＶE の異なる量の仮想オフセット、従って対応する量の補償レベルを与える。前に論じられたように、隣接するワード線が、値Ｖｐａｓｓを有するＶ０にバイアスされるときには、それは標準の場合である。その一方で、隣接するワード線がＶ０より低いＶ１にバイアスされるときには、それはＶE の仮想のより低いオフセットを生じさせるという効果を有する。従って、両方の隣接ワード線がＶ１にバイアスされれば最高の補償レベル（００）が達成される。次のより低い補償レベル（０１）は、Ｖ１にある隣接ワード線ＷＬｎ＋１とＶ０にあるＷＬｎ−１とを有する。同様に、最小あるいは無補償レベル（１１）は、共にＶ０にあるＶＬｎ−１およびＷＬｎ＋１を有する。
【０１９５】
図４６は、所定のしきい値レベルに関して明瞭に画定されたしきい値レベルの分布を有するメモリセルのグループを作ることの流れ図である。
ステップ１６００：ワード線およびビット線によりアクセスし得るメモリセルのアレイを有する不揮発性メモリを提供する。
ステップ１６１０：消去済み状態の限界を定める所定のしきい値レベルを実質的に超えさせて１グループのメモリセルを消去する。
ステップ１６２０：プログラムされる各メモリセルのしきい値電圧を高めるためにある量のプログラミング波形電圧をグループの消去済みメモリセルに並行して印加する。
ステップ１６３０：グループのメモリセルにアクセスするワード線に所定のしきい値レベル電圧を印加する。
ステップ１６３２：第１の所定のバイアス電圧レベルを第１の隣接ワード線に印加し、第１の所定のバイアス電圧は第１の隣接するメモリセルのターゲット状態の第２の関数であり、第１の隣接するセルは第１の隣接ワード線によりアクセス可能であって、ベリファイされるメモリセルに隣接している。
ステップ１６３４：第２の所定のバイアス電圧レベルを第２の隣接ワード線に印加し、第２の所定のバイアス電圧は第２の隣接するメモリセルのターゲット状態の第２の関数であり、第２の隣接するセルは第２の隣接ワード線によりアクセス可能であって、ベリファイされるメモリセルに隣接している。
ステップ１６３８：所定のしきい値レベルに関してプログラムされたグループの消去済みメモリセルをベリファイするために感知する。
ステップ１６４０：ベリファイされたグループ中のメモリセルのそれ以上のプログラミングを禁止する。
ステップ１６５０：グループ中の全ての消去済みメモリセルがベリファイされたか？そうであるならば、ステップ１６６０に進み、そうでなければ、ステップ１６２０に進む。
ステップ１６６０：グループ中の全ての消去済みメモリセルが所定のしきい値レベルに関してプログラムされた。
【０１９６】
ユーピン効果を最小にするためのベリファイレベルの仮想オフセットを用いるマルチパスプログラミング
前に論じられたように、ユーピン効果があると、プログラム済みセルは、その後の隣接セルのプログラム後に読み出されると見かけ上より高いしきい値レベルを伴ってより多く「プログラムされている」ように見える。これによって、同じ状態にプログラムされたセルについてのしきい値の分布が広がる。
【０１９７】
前の解決策は、プログラミングを２つ以上のパスで行うことである。第１のパスは、各セルをそのターゲット状態またはターゲットしきい値レベルの少し手前にプログラムすることである。第２のパスは、ターゲット状態までのプログラミングを完了させる。このようにすれば、プログラムされるセルに見える隣接界環境の、それが最後にプログラムされかつベリファイされた時点から隣接セルがプログラムされる時点までの変化は、最小になる。これは、選択されたワード線上のベリファイレベルを第１のパス中でより低くオフセットさせることによって成し遂げられる。次のワード線内のセルがプログラムされた後、分布を引き締めるために第２のパスプログラミングが加えられる。
【０１９８】
本発明の他の１つの態様によれば、隣接する電荷蓄積素子に蓄積されている電荷に基づく電界の結合を最小にするために、プログラミングプロセスは少なくとも２パスで実行される。第１のパスは、標準ベリファイレベルからのオフセットを用いて各セルをそのターゲット状態の少し手前までプログラムする。第２のパスは、標準ベリファイレベルでプログラミングを完了させる。第１のパスにおけるベリファイレベルは、低レベルでのベリファイを避けるために標準ベリファイレベルを実際にオフセットさせる代わりに１つ以上の隣接ワード線をバイアスすることによって、好ましくは仮想的にオフセットされる。
【０１９９】
図４７は、本発明の１つの一般的な態様に従う、第１のパスがベリファイレベルに仮想オフセットを使用するマルチパスプログラミングによってユーピン効果を減少させることの流れ図である。
ステップ１７００：ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリを提供する。
ステップ１７１０：プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイされるように、第１のパスで１グループのメモリセルを並行してプログラムする。ここで、第１のパスにおけるプログラミングはステップ１７１４を含む。
ステップ１７１４：プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第１の隣接ワード線に印加される第１の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイする。
ステップ１７２０：プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルに対してベリファイされるように、グループを次のパスでプログラムする。
【０２００】
図４８は、本発明の１つの好ましい実施形態に従う、第１のパスがベリファイレベルに仮想オフセットを使用するマルチパスプログラミングによってユーピン効果を減少させることの流れ図である。  ステップ１７００：ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有し、関連するターゲットしきい値レベルに関して個々のメモリセルの各々がプログラム可能である不揮発性メモリを提供する。
ステップ１７１０：プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイされるように、第１のパスで１グループのメモリセルを並行してプログラムする。ここで、第１のパスにおけるプログラミングはステップ１７１２、ステップ１７１４、ステップ１７１６、およびステップ１７１８を含む。
ステップ１７１２：プログラムされる各メモリセルのしきい値電圧を高めるために所定量のプログラミング波形電圧をグループに並行して印加する。
ステップ１７１４：プログラムされる個々のメモリセルにアクセスするワード線に印加される関連するターゲットしきい値レベルと第１の隣接ワード線に印加される第１の所定のバイアス電圧とを用いて感知を行うことによって、個々のメモリセルを関連するターゲットしきい値レベルより所定のオフセットだけ手前に対してベリファイする。
ステップ１７１６：グループ中のベリファイされたメモリセルのそれ以上のプログラミングを禁止する。
ステップ１７１８：グループ中の全てのセルがベリファイされたか？そうであるならば、ステップ１７２０に進み、そうでなければ、ステップ１７１０に進む。
ステップ１７２０：プログラムされる個々のメモリセルの各々が関連するターゲットしきい値レベルに対してベリファイされるように、グループを次のパスでプログラムする。
【０２０１】
前に論じられたように、マルチパスプログラミングを用いることの利点は、ユーピン効果を減少させることができることである。マルチパスプログラミングは、ユーピン効果を補正するために隣接するセルのターゲット状態を判定することを必要としないのでより簡単に実行できる。
【０２０２】
粗大ベリファイのために仮想ベリファイオフセットを用いる粗大／精密プログラミング
粗大および精密プログラミングステップの２フェーズでのプログラミング手法は、米国特許第６，８８８，７５８号に記載され、既に図２０および図２１にも関連して記載されている。プログラミング操作が２つのベリファイレベル、すなわちターゲットベリファイレベル(精密ベリファイレベルとも呼ばれる)および精密ベリファイレベルの前の粗大ベリファイレベルを用いることが分かる。粗大ベリファイレベルは、精密ベリファイレベルから所定のオフセットだけ低くオフセットされている。
【０２０３】
プロセスは、プログラミングプロセスの粗大フェーズを実行することから始まる。各粗大プログラミングステップの次に、粗大ベリファイレベルに関してのベリファイが続く。メモリセルのしきい値電圧がターゲットベリファイレベルより低い粗大ベリファイレベルまでプログラムされたときに、メモリセルは精密プログラミングフェーズに入る。プログラミングは、ターゲットレベルを通り越さないように、遅くされる。これは、セルのビット線電圧を０ボルトよりは大きくて禁止電圧よりは小さい値に高めることによって成し遂げられる。一般的に、フルプログラミング効率を目的として、粗大フェーズ中と同様に、ビット線電圧はほぼ０ボルトである。その一方で、メモリセルのプログラミングを禁止するためには、ビット線電圧は禁止電圧（例えば、Ｖｄｄ）に高められる。精密プログラミングフェーズ中、ビット線電圧が０ボルトから中間値に高められるという効果に起因して、プログラミングは粗大プログラミングフェーズと比べて遅くされる。従って、プログラムステップあたりのしきい値電圧の変化は、粗大プログラミングフェーズ中はより小さくなりやすい。メモリセルは、そのメモリセルについてのしきい値電圧がターゲットしきい値電圧に達するまで精密プログラミングフェーズに留まる。メモリセルのしきい値電圧がターゲットしきい値電圧に達したとき、そのメモリセルのそれ以上のプログラミングを禁止するためにビット線電圧がＶｄｄ(または他の禁止電圧)に高められる。
【０２０４】
前の粗大／精密プログラミング手法は２つのベリファイレベルに関してのベリファイを必要とし、その第１のものはターゲットベリファイレベルより低い粗大ベリファイレベルである。粗大フェーズ中、これは、ベリファイされるメモリセルの選択されたワード線に実際の粗大ベリファイ電圧レベルを供給することによって成し遂げられる。ＮＡＮＤチェーンの場合、ＮＡＮＤチェーン内の他の全てのワード線は、通例、標準のＶｐａｓｓ電圧にセットされる。精密フェーズ中、選択されたワード線はターゲットベリファイ電圧レベルそのものに高められる。
【０２０５】
本発明の他の１つの態様に従って、初めに、より粗大ではあるが速いプログラミングステップを用い、次に、より精密なステップが続くことを含むプログラミング操作において、関連するターゲットしきい値レベルに関してプログラムされるべきメモリセルについて、各粗大ステップ間のベリファイは、関連するターゲットしきい値レベルより所定のオフセットだけ低い粗大ベリファイレベルに関してのものであり、粗大ベリファイレベルは、ベリファイされるメモリセルにアクセスする選択されたワード線に印加される関連するターゲットしきい値レベルと、隣接ワード線に印加される所定のバイアス電圧とを用いることによって仮想的にもたらされる。一般的に、仮想オフセットは、隣接ワード線上の所定のバイアス電圧の逆関数である。
【０２０６】
図４９は、好ましい実施形態に従う、プログラミングの粗大フェーズにおけるベリファイ中に標準ベリファイレベルに仮想オフセットをもたらすための、ベリファイを受ける選択されたワード線上の標準ベリファイレベルと隣接ワード線のバイアスとの組み合わせを示す。この例では、ＷＬｎはＮＡＮＤチェーンの中の選択されたワード線であり（図２を参照）、選択されないワード線の残りには普通、ベリファイ操作中、電圧Ｖｐａｓｓが印加される。
【０２０７】
粗大フェーズ中、ベリファイ操作は、ターゲット状態のためのベリファイレベルより低くオフセットされるべき粗大ベリファイレベルに関して感知を行うことにより成し遂げられる。しかし、ＷＬｎ上の電圧をオフセットさせる代わりに、それは粗大フェーズおよび精密フェーズの全体にわたって変わらず、ターゲットベリファイレベルに留まる。代わりに、粗大フェーズ中、隣接ワード線のうちの１つ、例えばＷＬｎ＋１が標準Ｖｐａｓｓより低い電圧Ｖ１にバイアスされる。これは、ＷＬｎをＶｃｏａｒｓｅ（粗大）にセットするという仮想的効果を有する。
【０２０８】
メモリセルは、プログラムされて粗大ベリファイレベルに対してベリファイされた後、そのビット線をゼロ電圧にバイアスすることによって精密プログラミングフェーズに入る。精密フェーズにおけるベリファイ操作は、通例にならい、ターゲットベリファイレベルに関して感知を行うことにより成し遂げられる。すなわち、ＷＬｎに印加されたターゲットベリファイレベルと、ＷＬｎ＋１およびＷＬｎ−１などの選択されていないワード線に印加されたＶ２（＝Ｖｐａｓｓ）とを用いて行う。
【０２０９】
図５０は、粗大または精密プログラミングフェーズ中のメモリセルのためのビット線電圧を示す。粗大プログラミングフェーズ中、ビット線は実質的にゼロ電圧である。精密プログラミングフェーズ中、プログラミングを遅らせるためにビット線はゼロとＶｄｄとの間の所定の中間電圧にある。
【０２１０】
図５１は、本発明の１つの好ましい実施形態に従う、粗大ベリファイレベルが仮想的に実現される粗大／精密プログラミングを示す流れ図である。
ステップ１８００：ワード線およびビット線によりアクセス可能であるメモリセルのアレイを有する不揮発性メモリを提供する。
ステップ１８０２：メモリセルを関連するターゲットしきい値レベルに関してプログラムするために、関連するターゲットしきい値レベルより低いオフセットベリファイレベルを提供する。
ステップ１８１０：粗大フェーズにおけるプログラミングを可能にするために１グループのセルのビット線に第１のビット線電圧を初めに印加する。
ステップ１８２０：所定量のプログラミング波形電圧を印加することによりグループのメモリセルを関連するターゲットしきい値レベルに関して並行してプログラムする。
ステップ１８３０：プログラムされる個々のメモリセルを、個々のメモリセルにアクセスするワード線に印加された関連するターゲットしきい値レベルと第１の隣接ワード線に印加された第１の所定のバイアス電圧とを用いて感知することによって、オフセットベリファイレベルに関してベリファイする。
ステップ１８３２：プログラムされる個々のメモリセルを、個々のメモリセルにアクセスするワード線に印加された関連するターゲットしきい値レベルと第１の隣接ワード線に印加された第２の所定のバイアス電圧とを用いて感知を行うことによって、関連するターゲットしきい値レベルに関してベリファイする。
ステップ１８４０：グループの全てのメモリセルが関連するターゲットしきい値レベルに対してベリファイされたか？そうであるならば、ステップ１８６０に進み、そうでなければ、ステップ１８５０に進む。
ステップ１８５０：オフセットベリファイレベルに対してベリファイされた任意のメモリセルのビット線を、そのメモリセルのためのプログラミングが精密フェーズで遅らされるように、第２のビット線電圧にセットする。
ステップ１８５２：関連するターゲットしきい値レベルに対してベリファイされた任意のメモリセルのビット線を、そのメモリセルのためのプログラミングが禁止されるように、第３のビット線電圧にセットする。
ステップ１８６０：グループについて関連するターゲットしきい値レベルに関するプログラミングを終了する。
【０２１１】
記載された種々のタイプの不揮発性メモリシステムは、それぞれ１ビットから複数のビットのデータを記憶し、取り外し可能なメモリカードと他の装置の回路基板に埋め込まれた記憶装置とを含むいろいろなデジタル記憶装置およびシステムに存在すると考えられるメモリセルをサポートすることができる。
【０２１２】
本発明についての前の詳しい記述は、解説および説明の目的のために与えられている。網羅的であること、あるいは発明を開示された形そのものに限定することは意図されていない。前の教示を考慮すれば多くの改変および変形が可能である。説明された実施形態は、本発明の原理とその実際的な応用とを最善に説明することによって、他の当業者が本発明を種々の実施形態において、意図された特定の使用法に適する種々の改変を加えて最善に利用することを可能にするために、選択された。本願明細書に添付されている特許請求の範囲により本発明の範囲が定義されることが意図されている。
【図１】
2010539631.tif 000003
【図２】
2010539631.tif 000004
【図３】
2010539631.tif 000005
【図４】
2010539631.tif 000006
【図５】
2010539631.tif 000007
【図６】
2010539631.tif 000008
【図７】
2010539631.tif 000009
【図８】
2010539631.tif 000010
【図９】
2010539631.tif 000011
【図１０】
2010539631.tif 000012
【図１１】
2010539631.tif 000013
【図１２】
2010539631.tif 000014
【図１３】
2010539631.tif 000015
【図１４】
2010539631.tif 000016
【図１５】
2010539631.tif 000017
【図１６】
2010539631.tif 000018
【図１７】
2010539631.tif 000019
【図１８】
2010539631.tif 000020
【図１９】
2010539631.tif 000021
【図２０】
2010539631.tif 000022
【図２１】
2010539631.tif 000023
【図２２】
2010539631.tif 000024
【図２３】
2010539631.tif 000025
【図２４】
2010539631.tif 000026
【図２５】
2010539631.tif 000027
【図２６】
2010539631.tif 000028
【図２７】
2010539631.tif 000029
【図２８】
2010539631.tif 000030
【図２９】
2010539631.tif 000031
【図３０】
2010539631.tif 000032
【図３１】
2010539631.tif 000033
【図３２】
2010539631.tif 000034
【図３３】
2010539631.tif 000035
【図３４】
2010539631.tif 000036
【図３５】
2010539631.tif 000037
【図３６Ａ】
2010539631.tif 000038
【図３６Ｂ】
2010539631.tif 000039
【図３７Ａ】
2010539631.tif 000040
【図３７Ｂ】
2010539631.tif 000041
【図３８】
2010539631.tif 000042
【図３９】
2010539631.tif 000043
【図４０】
2010539631.tif 000044
【図４１】
2010539631.tif 000045
【図４２】
2010539631.tif 000046
【図４３】
2010539631.tif 000047
【図４４】
2010539631.tif 000048
【図４５】
2010539631.tif 000049
【図４６】
2010539631.tif 000050
【図４７】
2010539631.tif 000051
【図４８】
2010539631.tif 000052
【図４９】
2010539631.tif 000053
【図５０】
2010539631.tif 000054
【図５１】
2010539631.tif 000055
【国際調査報告】
2010539631.tif 000056
2010539631.tif 000057