(57)【要約】  不揮発性メモリセルのフローティングゲート（または他の電荷記憶素子）に蓄積される見かけの電荷のシフトが、隣接するフローティングゲート（または他の隣接電荷記憶素子）に蓄積される電荷による電場の結合のために発生する場合がある。この結合を補償するために、既定のメモリセルの読み出し処理またはプログラミング処理では、隣接するメモリセルのプログラム状態を考慮に入れることができる。補償が必要とされるかどうかを判断するために、プロセスは、（例えば、隣接するビットラインまたは他の場所の）隣接メモリセルのプログラム状態についての検出を含んでいる。
2009545092.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性記憶装置を動作させる方法であって、
不揮発性記憶素子のセットが第１状態にあるか否かを判定するステップと、
前記判定によって第１状態にあると判定された不揮発性記憶素子の制御ラインの第１セットを充電するステップと、
第１状態ににない不揮発性記憶素子の制御ラインの第２セットを検出して、充電する前記ステップによって制御ラインの第１セットが制御ラインの第２セットに十分に結合したか否かを判定することによって、どの不揮発性記憶素子のセットが第１状態にある隣接不揮発性記憶素子を有しているかを判定するステップ、
を有し、
制御ラインの第１セットに十分に結合された制御ラインの第２セットに接続されている不揮発性記憶素子が、第１状態にある少なくとも１つの隣接不揮発性記憶素子を有することを特徴とする方法。
【請求項２】
不揮発性記憶素子のセットが第１状態にあるか否かを判定する前記ステップが、不揮発性記憶素子のセットが３つ以上のプログラム状態と１つの消去状態のセットに対する読み出し比較電圧のセットのうちの最大の読み出し比較電圧より大きい閾値電圧を有するか否かを判定するステップを有しており、
不揮発性記憶素子のセットが、前記最大の読み出し比較電圧より大きい閾値電圧を有する不揮発性記憶素子の第１サブセットと、前記最大の読み出し比較電圧未満の閾値電圧を有する不揮発性記憶素子の第２サブセットを有していることを特徴とする請求項１に記載の方法。
【請求項３】
不揮発性記憶素子のセットが第１状態にあるか否かを判定する前記ステップが、不揮発性記憶素子のセットが７つ以上のプログラム状態と１つの消去状態のセットに対する読み出し比較電圧のセットのうちの最大の読み出し比較電圧より大きい閾値電圧を有するか否かを判定するステップを有しており、
不揮発性記憶素子のセットが、前記最大の読み出し比較電圧より大きい閾値電圧を有する不揮発性記憶素子の第１サブセットと、前記最大の読み出し比較電圧未満の閾値電圧を有する不揮発性記憶素子の第２サブセットを有していることを特徴とする請求項１に記載の方法。
【請求項４】
制御ラインの第１セット及び制御ラインの第２セットがビットラインであることを特徴とする請求項１に記載の方法。
【請求項５】
前記検出が、
制御ラインの第２セットが第１所定レベルより高い値に充電されたか否かを判定することによって、制御ラインの第２セットが制御ラインの第１セットに結合しているか否かを検出するステップと、
制御ラインの第２セットが第１所定レベルより高い値に充電されたか否かの結果を記憶するステップ、
を有することを特徴とする請求項１に記載の方法。
【請求項６】
第２所定レベルを使用して、充電する前記ステップと、どの不揮発性記憶素子のセットが第１状態にある隣接不揮発性記憶素子を有しているかを判定する前記ステップとを繰り返し、
第１所定レベルが、第１状態にある隣接不揮発性記憶素子を第１の数だけ有する不揮発性記憶素子を特定するのに用いられ、
第２所定レベルが、第１状態にある隣接不揮発性記憶素子を第２の数だけ有する不揮発性記憶素子を特定するのに用いられる、
ことを特徴とする請求項５に記載の方法。
【請求項７】
第１状態が、電荷蓄積状態のセットの最大のプログラム状態に相当することを特徴とする請求項５に記載の方法。
【請求項８】
第１状態ににない不揮発性記憶素子の制御ラインの第２セットを検出して、前記充電によって制御ラインの第１セットが制御ラインの第２セットに十分に結合したか否かを判定する前記ステップが、制御ラインの第２セットのうちの１本の制御ラインと通信するコンデンサがその１本の制御ラインを放電させるために充電するか否かを判定するステップを有することを特徴とする請求項１に記載の方法。
【請求項９】
第１状態にある１つまたは複数の隣接不揮発性記憶素子を有する不揮発性記憶素子のセットを読み出すときにフローティングゲート結合に対する補償を使用することを特徴とする不揮発性記憶素子のセットを読み出すステップをさらに有することを特徴とする請求項１に記載の方法。
【請求項１０】
制御ラインの第１セット及び制御ラインの第２セットがビットラインであり、
フローティングゲート結合が、隣接ビットラインに接続されているとともに同じワードライン上にあるフローティングゲートの間で生じることを特徴とする請求項９に記載の方法。
【請求項１１】
不揮発性記憶素子のセットを読み出す前記ステップが、フローティングゲート結合のための補償を行わずに、第１状態にある１つまたは複数の隣接不揮発性記憶素子を有さない不揮発性記憶素子のセットを読み出すステップを有することを特徴とする請求項９に記載の方法。
【請求項１２】
不揮発性記憶素子のセットがＮＡＮＤフラッシュメモリ装置であることを特徴とする請求項１に記載の方法。
【請求項１３】
不揮発性記憶素子のセットがマルチ状態フラッシュメモリ装置であることを特徴とする請求項１に記載の方法。
【請求項１４】
不揮発性記憶システムであって、
不揮発性記憶素子と、
不揮発性記憶素子と通信する制御ラインと、
不揮発性記憶素子及び制御ラインと通信する管理回路、
を有し、
管理回路が、
不揮発性記憶素子が第１状態にあるかどうかを判定し、
第１状態にあると判定された不揮発性記憶素子の制御ラインの第１サブセットを充電し、
第１状態ににない不揮発性記憶素子の制御ラインの第２サブセットを検出して、制御ラインの第１サブセットを充電する前記ステップによって制御ラインの第１サブセットが制御ラインの第サブ２セットに十分に結合したか否かを判定することによって、どの不揮発性記憶素子が第１状態にある隣接不揮発性記憶素子を有しているかを判定する、
ことを特徴とする不揮発性記憶システム。
【請求項１５】
管理回路が、３つのプログラム状態と１つの消去状態のセットに対する読み出し比較電圧のセットのうちの最大の読み出し比較電圧より大きい閾値電圧を不揮発性記憶素子が有するか否かを判定することによって、不揮発性記憶素子が第１状態にあるか否かを判定することを特徴とする請求項１４に記載の不揮発性記憶システム。
【請求項１６】
制御ラインの第１サブセットと制御ラインの第２サブセットがビットラインであり、
各不揮発性記憶素子が１本の共通ワードラインに接続されており、
管理回路が、制御回路、電源制御回路、復号部、状態マシン、コントローラ及び検出ブロックのいずれか、あるいは、組み合わせを有していることを特徴とする請求項１４に記載の不揮発性記憶システム。
【請求項１７】
管理回路が、制御ラインの第２セットが第１所定レベルより高い値に充電されたか否かを判定し、制御ラインの第２セットが第１所定レベルより高い値に充電されたか否かの結果を記憶することによって、制御ラインの第２サブセットを検出することを特徴とする請求項１４に記載の不揮発性記憶システム。
【請求項１８】
管理回路が、充電と、制御ラインの第２サブセットが第２所定レベルより高い値に充電されたか否かを判断するための制御ラインの第２サブセットの検出を繰り返し、
第１所定のレベルが、第１状態にある隣接不揮発性記憶素子を第１の数だけ有する不揮発性記憶素子を特定するのに用いられ、
第２所定のレベルが、第１状態にある隣接不揮発性記憶素子を第２の数だけ有する不揮発性記憶素子を特定するのに用いられる、
ことを特徴とする請求項１７に記載の不揮発性記憶システム。
【請求項１９】
第１状態が、３つ以上のプログラム状態及び１つの消去状態のうちの最大のプログラム状態に相当することを特徴とする請求項１７に記載の不揮発性記憶システム。
【請求項２０】
第１状態が、７つ以上のプログラム状態及び１つの消去状態のうちの最大のプログラム状態に相当することを特徴とする請求項１７に記載の不揮発性記憶システム。
【請求項２１】
管理回路が、制御ラインの第２サブセットのうちの少なくとも１本の制御ラインと通信するコンデンサが前記一本の制御ラインを放電させるために充電するか否かを判定することによって、制御ラインの第２サブセットのうちの少なくとも１本の制御ラインを検出することを特徴とする請求項１４に記載の不揮発性記憶システム。
【請求項２２】
管理回路が、第１状態にある１つまたは複数の隣接不揮発性記憶素子を有する不揮発性記憶素子を読み出すときにフローティングゲート結合に対する補償を使用して不揮発性記憶素子を読み出すことを特徴とする請求項１４に記載の不揮発性記憶システム。
【請求項２３】
制御ラインの第１サブセット及び制御ラインの２サブセットがビットラインであり、
フローティングゲート結合が、隣接ビットライン上、かつ、同じワードライン上のフローティングゲートの間で生じることを特徴とする請求項２２に記載の不揮発性記憶システム。
【請求項２４】
管理回路が、フローティングゲート結合のための補償を行わずに、第１状態にある隣接不揮発性記憶素子を有さない不揮発性記憶素子を読み出すことを特徴とする請求項２２に記載の不揮発性記憶システム。
【請求項２５】
不揮発性記憶素子がＮＡＮＤフラッシュメモリ装置であることを特徴とする請求項１４に記載の不揮発性記憶システム。
【請求項２６】
前記不揮発性記憶素子がマルチ状態フラッシュメモリ装置であることを特徴とする請求項１４に記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリの技術に関する。
【背景技術】
【０００２】
半導体メモリは、様々な電子装置に使用されることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ及び他の装置の中に使用されている。電気的消去・プログラム可能型読取専用メモリ（ＥＥＰＲＯＭ）と、フラッシュメモリは、最も普及している不揮発性半導体メモリの１つである。
【０００３】
ＥＥＰＲＯＭとフラッシュメモリは、両方とも、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されたフローティングゲートを利用している。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。制御ゲートは、フローティングゲート上に設けられており、そのフローティングゲートから絶縁されている。トランジスタの閾値電圧は、フローティングゲート上に保持される電荷量によって制御される。つまり、そのソースとドレインの間の導通を可能にするためにトランジスタをオンにする前に制御ゲートに印加しなければならない電圧の最小量は、そのフローティングゲート上の電荷レベルにより制御される。
【０００４】
ＮＡＮＤフラッシュメモリ装置などのＥＥＰＲＯＭまたはフラッシュメモリ装置をプログラムする場合、一般にプログラム電圧が制御ゲートに印加され、ビットラインが接地される。チャネルからの電子は、フローティングゲートに注入される。電子がフローティングゲート内に蓄積すると、フローティングゲートは負に帯電し、メモリセルの閾値電圧が上昇してメモリセルがプログラム状態になる。プログラミングについての詳細は米国特許６，８５９，３９７号、発明の名称「ＳｏｕｒｃｅＳｉｄｅ Ｓｅｌｆ ＢｏｏｓｔｉｎｇＴｅｃｈｎｉｑｕｅ ｆｏｒ Ｎｏｎ-Ｖｏｌａｔｉｌｅ Ｍｅｍｏｒｙ」と、米国特許第６，９１７，５４５号、発明の名称「ＤｅｔｅｃｔｉｎｇＯｖｅｒ Ｐｒｏｇｒａｍｍｅｄ Ｍｅｍｏｒｙ」に記載されている。引用した２つの特許はその全体を参照することにより本明細書に組み込まれる。
【０００５】
いくつかのＥＥＰＲＯＭ及びフラッシュメモリ装置はフローティングゲートを有しており、前記フローティングゲートを用いて２つの範囲の電荷を蓄積可能であり、その結果、メモリセルは２つの状態（消去状態とプログラム状態）の間でプログラム／消去できる。このようなフラッシュメモリ装置は、バイナリフラッシュメモリ装置と呼ばれることがある。
【０００６】
マルチ状態フラッシュメモリ装置は、禁止範囲によって分離された複数の別個の許容／有効プログラム閾値電圧範囲を識別することによって実装される。別個の閾値電圧範囲の各々は、メモリ装置内に符号化されたデータビットのセットの所定の値に対応する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
隣接するフローティングゲート内に蓄積される電荷に基づく電界の結合のために、フローティングゲート上に蓄積される見かけの電荷内にシフトが発生する可能性がある。このフローティングゲート間結合現象は、米国特許第５，８６７，４２９号に説明されている。その全体は参照により本明細書に組み込まれる。対象のフローティングゲートに隣接するフローティングゲートの一例は、同じワードラインに接続されており、かつ、隣接するビットラインに接続されているフローティングゲートを含む。
【０００８】
マルチ状態装置においては、許容閾値電圧範囲及び禁止範囲がバイナリ装置よりも狭くなるため、フローティングゲート間結合の影響はマルチ状態装置にとってはより大きな問題となる。従って、フローティングゲート間結合の結果、メモリセルが許容閾値電圧範囲から禁止範囲にシフトする可能性がある。
【０００９】
フローティングゲート間結合は、異なるタイミングでプログラムされた隣接メモリセルのセットの間で発生する可能性がある。例えば、第１のメモリセルは、1セットのデータに対応するそのフローティングゲートに、あるレベルの電荷を追加するようにプログラムされる。その後、1または複数の隣接メモリセルが、第２のセットのデータに対応するそのフローティングゲートにあるレベルの電荷を追加するようにプログラムされる。１または複数の隣接メモリセルがプログラムされた後に、第１のメモリセルに結合する隣接メモリセル上の電荷の影響のために、第１のメモリセルから読み出される電荷レベルが、プログラムされたレベルとは異なった値となる。隣接メモリセルからの結合は、記憶されているデータの読み出しエラーにつながるほど、読み出される見かけの電荷レベルをシフトさせる場合がある。
【００１０】
また、フローティングゲート間結合は、同時にプログラムされた隣接メモリセルのセットの間でも発生する可能性がある。例えば、２つの隣接するマルチ状態メモリセルは、第１のメモリセルが低い閾値電圧に対応する状態にプログラムされ、第２のメモリセルが高い閾値電圧に対応する状態にプログラムされるように異なる目標レベルにプログラムされる場合がある。低い閾値電圧に対応する状態にプログラムされるメモリセルは、一般には、その状態に達したときに、第２のメモリセルが高い閾値電圧に対応する状態に到達する前に追加のプログラミングからロックアウトされる。第２のメモリセルは、高い閾値電圧に対応する状態に到達した後に、第１のメモリセルに結合し、第１のメモリセルをプログラムされたよりも高い見かけの閾値電圧にする。
【００１１】
メモリセルのサイズが縮小するに伴って、チャネルがより短くなる影響、酸化物の厚さ／結合比のより大きい変動、及び、チャネルドーパントのより大きい変動を受けて、閾値電圧の本来のプログラミング及び消去分布が増加し、これにより隣接状態の間で利用可能な分離が減少することが予測される。この影響は、２つの状態だけを使用するメモリ（バイナリメモリ）よりも、マルチ状態メモリにとってより重大となる。さらに、ワードライン間の間隔及びビットライン間の間隔の縮小も、隣接フローティングゲート間の結合を増加させる。
【００１２】
従って、隣接フローティングゲート間の結合の影響を減少させる必要性がある。
【課題を解決するための手段】
【００１３】
本明細書では、隣接するフローティングゲート間の結合の影響を削減する技術を説明する。一実施形態は、異なるビットライン上の隣接フローティングゲート間の結合の影響を削減する。しかしながら、他の実施形態では、本明細書に説明される技術は、フローティングゲートの他のセット（または、フローティングゲートを活用しないメモリセルの他のセット）の間での結合に対して使用できる。
【００１４】
一実施形態は、不揮発性記憶素子のセットが第１状態にあるか否かを判定するステップと、それに応じて、第１状態にあると判定された不揮発性記憶素子の制御ラインの第１セット充電するステップを有する。第１状態にない不揮発性記憶素子の制御ラインの第２セットを検出し、制御ラインの第１セットが帯電によって制御ラインの第２セットに十分に結合したかどうかを判定することによって、セットのうちのどの不揮発性記憶素子が第１状態にある隣接不揮発性記憶素子を有するかが判定される。制御ラインの第１セットに十分に結合されている制御ラインの第２セットに接続された不揮発性記憶素子は、第１状態にある少なくとも１つの隣接不揮発性記憶素子を有する。一例では、第１状態は、マルチ状態アーキテクチャの最もプログラムされた状態にあるフラッシュメモリセルに相当する。しかしながら、他のプログラムされた状況または状態も使用できる。
【００１５】
別の実施形態は、第１プログラム状態にある不揮発性記憶素子の第１セットに接続されている制御ラインの第１セットに電荷を印加するステップと、制御ラインの第１セットに隣接する制御ラインの第２セットの電荷を検出するステップによって、第１プログラム状態にある隣接不揮発性記憶素子を有する不揮発性記憶素子の第２セットを識別する。制御ラインの第２セットは、不揮発性記憶素子の第２セットと接続されている。
【００１６】
別の実施形態は、特定の不揮発性記憶素子に対する特定の制御ラインと、隣接不揮発性記憶素子に対する隣接制御ラインの間の容量結合に基づいて隣接不揮発性記憶素子の状態を検出する。検出された状態が第１状態である場合に隣接不揮発性記憶素子と特定の不揮発性記憶素子の間の結合を補償する一方で、情報が特定の不揮発性記憶素子から読み出される。
【００１７】
別の実施形態は、不揮発性記憶素子のセットが第１状態にあるか否かを判断するステップと、第１状態にないと判断された不揮発性記憶素子の第１セットの制御ラインを充電するステップを含む。第１状態にあると判断された不揮発性記憶素子の制御ラインの第１セットは充電される。制御ラインの第２セットの少なくともサブセットが制御ラインの第２セットの充電に応じて制御ラインの第１セットの少なくともサブセットに結合するように、制御ラインの第２セットの充電は制御ラインの第２セットの充電を開始した後に開始される。制御ラインの第１セットに接続された不揮発性記憶素子についての情報は、制御ラインの第１セットの充電及び制御ラインの第２セットの充電に応じて検出される。
【００１８】
本明細書に説明されるさまざまな方法は、さまざまな装置によって実行できる。適切な装置の一例は、不揮発性記憶素子、不揮発性記憶素子と通信する制御ライン、及び、不揮発性記憶素子及び制御ラインと通信する管理回路を含む。管理回路は本明細書に説明されている方法を実行する。さまざまな実施形態において、管理回路は、制御回路、電力制御回路、復号部、状態マシン、制御部、及び、検出ブロックのいずれかまたは組み合わせを含む。他の回路を含むこともできる。
【図面の簡単な説明】
【００１９】
【図１】ＮＡＮＤストリングの平面図。
【図２】ＮＡＮＤストリングの等価回路図。
【図３】ＮＡＮＤストリングの断面図。
【図４】ＮＡＮＤフラッシュメモリセルのアレイの一部のブロック図。
【図５】不揮発性メモリシステムのブロック図。
【図６】不揮発性メモリシステムのブロック図。
【図７】メモリアレイのブロック図。
【図８】検出ブロックの一実施形態を示すブロック図。
【図９】検出モジュールの一実施形態の概略図。
【図１０】検出モジュールの一実施形態のタイミング図。
【図１１】不揮発性メモリをプログラムする処理の一実施形態を説明するフローチャート。
【図１２】不揮発性メモリセルの制御ゲートに印加される波形の例。
【図１３】閾値電圧の分布のセットの例。
【図１４】閾値電圧の分布のセットの例。
【図１５】データ読み出し時に実行される処理の一実施形態を示すフローチャート。
【図１６】データ読み出し時に実行される処理の一実施形態を示すフローチャート。
【図１７】隣接ビットラインからデータを検出する処理の一実施形態を示すフローチャート。
【図１８】隣接ビットラインからデータを検出する処理の一実施形態を示すタイミング図。
【図１９】読み出し処理の一実施形態を示すフローチャート。
【図２０】プログラム状態の閾値電圧の分布。
【図２１】プログラミング処理の一実施形態を説明するグラフ。
【図２２】プログラミング処理の一実施形態を説明するグラフ。
【図２３】プログラミング処理の一実施形態を説明するフローチャート。
【図２４】検証処理の一実施形態を説明するフローチャート。
【図２５】データ読み出し処理の一実施形態を説明するフローチャート。
【図２６】データ読み出し処理の一実施形態を説明するタイミング図。
【図２７】メモリシステムを構成、使用する処理の一実施形態を説明するフローチャート。
【図２８】メモリシステムを構成するための処理の一実施形態を説明するフローチャート。
【図２９】メモリシステムを構成するための処理の一実施形態を説明するフローチャートである。
【図３０】メモリシステムを構成するための処理の一実施形態を説明するフローチャートである。
【図３１】メモリシステムを構成するための処理の一実施形態を説明するフローチャート。
【発明を実施するための形態】
【００２０】
本発明の実施に適したメモリシステムの一例は、ＮＡＮＤフラッシュメモリ構造を用いる。そのＮＡＮＤフラッシュメモリ構造は２つの選択ゲートの間に直列に接続された複数のトランジスタを含んでいる。直列に接続されたトランジスタと選択ゲートは、ＮＡＮＤストリングと呼ばれる。図１は１つのＮＡＮＤストリングを示す平面図である。図２は、その等価回路である。図１と図２に示すＮＡＮＤストリングは、第１選択ゲート１２０と第２選択ゲート１２２の間に挟まれているとともに直列に接続されている４つのトランジスタ１００、１０２、１０４及び１０６を有する。選択ゲート１２０は、ビットライン１２６のＮＡＮＤストリングの接続をゲート制御する。選択ゲート１２２は、ソースライン１２８へのＮＡＮＤストリングの接続をゲート制御する。選択ゲート１２０は、制御ゲート１２０ＣＧに適切な電圧を印加することで制御される。選択ゲート１２２は、制御ゲート１２２ＣＧに適切な電圧を印加することで制御される。トランジスタ１００、１０２、１０４、及び１０６のそれぞれは制御ゲートとフローティングゲートを有している。トランジスタ１００は、制御ゲート１００ＣＧとフローティングゲート１００ＦＧを有している。トランジスタ１０２は、制御ゲート１０２ＣＧとフローティングゲート１０２ＦＧを有している。トランジスタ１０４は、制御ゲート１０４ＣＧとフローティングゲート１０４ＦＧを有している。トランジスタ１０６は、制御ゲート１０６ＣＧとフローティングゲート１０６ＦＧを有している。制御ゲート１００ＣＧは、ワードラインＷＬ３に接続されており（またはワードラインＷＬ３であり）、制御ゲート１０２ＣＧはワードラインＷＬ２に接続されており、制御ゲート１０４ＣＧはワードラインＷＬ１に接続されており、制御ゲート１０６ＣＧはワードラインＷＬ０に接続されている。一実施形態では、トランジスタ１００、１０２、１０４及び１０６はそれぞれがメモリセルである。他の実施形態では、メモリセルは複数のトランジスタを有していてもよく、あるいは、図１または図２に示されているものと異なっていてもよい。選択ゲート１２０は選択ラインＳＧＤに接続されている。選択ゲート１２２は選択ラインＳＧＳに接続されている。
【００２１】
図３は、上記のＮＡＮＤストリングの断面図を示す。図３に示すように、ＮＡＮＤストリングのトランジスタは、ｐウェル領域１４０内に形成される。各トランジスタは、制御ゲート（１００ＣＧ、１０２ＣＧ、１０４ＣＧ、及び１０６ＣＧ）とフローティングゲート（１００ＦＧ，１０２ＦＧ、１０４ＦＧ、及び１０６ＦＧ）からなる積層ゲート構造を有している。制御ゲートとフローティングゲートは、通常はポリシリコン層を堆積することにより形成される。フローティングゲートは、ｐウェルの表面上の酸化物または他の誘電体膜の上部に形成されている。制御ゲートはフローティングゲート上にあり、ポリシリコン間誘電体層が制御ゲートとフローティングゲートを分離している。メモリセル（１００、１０２、１０４、及び１０６）の制御ゲートは、ワードラインを構成する。Ｎ＋ドープ拡散領域１３０、１３２、１３４、１３６及び１３８は、隣接しているセルの間で共有されており、それを通してセルは相互に直列に接続されてＮＡＮＤストリングを構成する。これらのＮ＋ドープ領域はセルのソース及びドレインを構成する。たとえば、Ｎ＋ドープ領域１３０は、トランジスタ１２２のドレインとトランジスタ１０６のソースとして機能し、Ｎ＋ドープ領域１３２は、トランジスタ１０６のドレインとトランジスタ１０４のソースとして機能し、Ｎ＋ドープ領域１３４は、トランジスタ１０４のドレインとトランジスタ１０２のソースとして機能し、Ｎ＋ドープ領域１３６は、トランジスタ１０２のドレインとトランジスタ１００のソースとして機能し、Ｎ＋ドープ領域１３８は、トランジスタ１００のドレインとトランジスタ１２０のソースとして機能する。Ｎ＋ドープ領域１２６はＮＡＮＤストリングのためのビットラインに接続されている。また、Ｎ＋ドープ領域１２８は複数のＮＡＮＤストリングのための共通のソースラインに接続されている。
【００２２】
図１から図３はＮＡＮＤストリングの中の４個のメモリセルを示しているが、４つのトランジスタの使用は例としてのみ示されていることに注意する。本明細書に説明する技術とともに使用するＮＡＮＤストリングは、４個未満のメモリセルまたは４個を超えるメモリセルを有し得る。例えば、いくつかのＮＡＮＤストリングは８個のメモリセル、１６個のメモリセル、３２個のメモリセル、６４個のメモリセル等を含む。本明細書の説明はＮＡＮＤストリングの中の特定の数のメモリセルに制限されない。
【００２３】
各メモリセルは、アナログまたはデジタル形式で表されたデータを記憶することができる。１ビットのデジタルデータを記憶するときに、メモリセルの可能な閾値電圧の範囲は、論理データ「１」と「０」が割り当てられる２つの範囲に分割される。ＮＡＮＤ型フラッシュメモリの一例では、電圧閾値は、メモリセルが消去された後には負になり、論理「１」と定義される。閾値電圧はプログラム動作後には正となり、論理「０」と定義される。閾値電圧が負であるときに、制御ゲートに０ボルトを印加することにより読み出しが試みられると、メモリセルがオンして論理１が記憶されていることを示す。閾値電圧が正のときに、制御ゲートに０ボルトを印加することにより読み出し動作が試みられると、メモリセルはオンにならずに論理０が記憶されていることを示す。１ビットのデジタルデータを記憶するメモリセルはバイナリメモリセルと呼ばれる。
【００２４】
メモリセルは、複数ビットのデジタルデータを記憶することもできる。このようなメモリセルは、マルチ状態メモリセルと呼ばれる。マルチ状態メモリセルの閾値電圧ウィンドウは多くの状態に分割される。例えば、４つの状態が使用される場合、データ値「１１」、「１０」、「０１」、及び「００」に割り当てられる４つの閾値電圧範囲がある。ＮＡＮＤ型メモリの一例では、消去動作後の閾値電圧は負であり「１１」と定義される。正の閾値電圧は「１０」、「０１」及び「００」の状態に使用される。
【００２５】
ＮＡＮＤ型フラッシュメモリ及びそれらの動作の関連する例は、以降の米国特許／特許出願内に提供されており、それら全てはその全体を参照することにより本明細書に組み込まれる。米国特許第５，５７０，３１５号、米国特許第５，７７４，３９７号、米国特許第６，０４６，９３５号、米国特許第５，３８６，４２２号、米国特許第６，４５６，５２８号、及び米国特許出願第０９／８９３，２７７号（公開番号ＵＳ２００３／０００２３４８号）。ＮＡＮＤフラッシュメモリに加えて、他の種類の不揮発性メモリも本発明とともに使用できる。
【００２６】
フラッシュＥＥＰＲＯＭシステム内で役立つ別の種類のメモリセルは、導電性フローティングゲートの代わりに非導電性誘電体材料を利用して、不揮発的な方法で電荷を蓄積する。このようなセルは、Ｃｈａｎらによる論文、「ＡＴｒｕｅ Ｓｉｎｇｌｅ-Ｔｒａｎｓｉｓｔｏｒ Ｏｘｉｄｅ-Ｎｉｔｒｉｄｅ-Ｏｘｉｄｅ ＥＥＰＲＯＭ Ｄｅｖｉｃｅ」、ＩＥＥＥ Ｅｌｅｃｔｒｏｎ Ｄｅｖｉｃｅ Ｌｅｔｔｅｒｓ, Ｖｏｌ.ＥＤＬ-8，Ｎｏ．３、１９８７年３月、９３〜９５ページ内に記載されている。酸化シリコン、窒化シリコン及び酸化シリコン（「ＯＮＯ」）からなる三層誘電体は、導電性制御ゲートと、メモリセルチャネル上の半導体基板の表面の間に挟持される。セルは、セルチャネルから窒化物内に電子を注入することによってプログラムされる。その電子は、制限領域内にトラップされて蓄積される。それから、この蓄積された電荷は、セルチャネルの一部の閾値電圧を検出可能なように変化させる。窒化物内にホットホールを注入することによって、セルが消去される。Ｎｏｚａｋｉらの「Ａ 1-Ｍｂ ＥＥＰＲＯＭ ｗｉｔｈ ＭＯＮＯＳ ＭｅｍｏｒｙＣｅｌｌ ｆｏｒ ＳｅｍｉｃｏｎｄｕｃｔｏｒＤｉｓｋ Ａｐｐｌｉｃａｔｉｏｎ」,ＩＥＥＥ Ｊｏｕｒｎａｌ ｏｆ Ｓｏｌｉｄ-Ｓｔａｔｅ Ｃｉｒｃｕｉｔｓ,Ｖｏｌ.２６,Ｎｏ.４，１９９１年４月、４９７〜５０１ページを参照すると、分割ゲート構成内の同様のセルを説明しており、ここではドープされたポリシリコンゲートがメモリセルチャネルの一部上に延び、別個の選択トランジスタを構成している。以上の２つの論文は、それらの全体を参照することによって本明細書に組み込まれる。Ｗｉｌｌｉａｍ  Ｄ．Ｂｒｏｗｎ及びＪｏｅ  Ｅ．Ｂｒｅｗｅｒによって編集された「ＮｏｎｖｏｌａｔｉｌｅＳｅｍｉｃｏｎｄｕｃｔｏｒ Ｍｅｍｏｒｙ Ｔｅｃｈｎｏｌｏｇｙ」,ＩＥＥＥ Ｐｒｅｓｓ，１９９８のセクション１．２で言及されているプログラミング技術（参照によって本明細書に組み込まれる）も、誘電体電荷捕捉装置に適用可能であることをそのセクションで説明している。本段落で説明したメモリセルは、本発明と使用することもできる。従って、本明細書に説明する技術は、異なるメモリセルの誘電領域間の結合にも適合する。
【００２７】
各セルに２ビットを記憶する別の手法が、Ｅｉｔａｎら、「ＮＲＯＭ: Ａ Ｎｏｖｅｌ Ｌｏｃａｌｉｚｅｄ Ｔｒａｐｐｉｎｇ, ２-Ｂｉｔ Ｎｏｎｖｏｌａｔｉｌｅ Ｍｅｍｏｒｙ Ｃｅｌｌ」、ＩＥＥＥＥｌｅｃｔｒｏｎ Ｄｅｖｉｃｅ Ｌｅｔｔｅｒｓ、第２１巻、第１１号、２０００年１１月、５４３〜５４５ページに説明されている。ＯＮＯ誘電体層は、ソース拡散とドレイン拡散の間のチャンネルに広がっている。一方のデータビットの電荷はドレインに隣接する誘電体層で局所化され、他方のデータビットの電荷はソースに隣接する誘電体層で局所化される。マルチ状態データ記憶装置は、誘電体中で空間的に分離された電荷蓄積領域のバイナリ状態を別々に読み出すことによって実現される。本段落に説明したメモリセルは、本発明とともに使用することもできる。
【００２８】
図４は、図１〜３に示したようなＮＡＮＤセルのアレイの一例を示している。各列に沿って、ビットライン２０６はＮＡＮＤストリング１５０のドレイン選択ゲートのドレイン端子１２６に接続している。ＮＡＮＤストリングの各行に沿って、ソースライン２０４はＮＡＮＤストリングのソース選択ゲートのすべてのソース端子１２８に接続できる。メモリシステムの一部としてのＮＡＮＤアーキテクチャアレイ及びその動作の一例は、米国特許第５，５７０，３１５号、第５，７７４，３９７号、及び第６，０４６，９３５号に記載されている。
【００２９】
メモリセルのアレイは、メモリセルの多数のブロックに分割される。フラッシュＥＥＰＲＯＭシステムでは一般的なように、ブロックは消去のユニットである。つまり、各ブロックは、共に消去される最小数のメモリセルを有する。各ブロックは、一般に複数のページに分割される。ページはプログラミングの単位である。一実施形態では、個々のページはセグメントに分割され、セグメントは基本プログラミング動作として一度に書き込まれる最小数のセルを有することができる。一般に、メモリセルの１行に１ページ以上のデータを記憶する。１ページは１つ以上のセクタを記憶できる。１つのセクタは、ユーザデータとオーバヘッドデータを有する。オーバヘッドデータは一般に、そのセクタのユーザデータから計算された誤り訂正符号（ＥＣＣ）を有する。制御部（後に説明）の一部は、データがアレイ内にプログラムされるときにＥＣＣを計算し、さらにデータがアレイから読み出されるときにそれをチェックする。また、ＥＣＣ及び／又は他のオーバヘッドデータは、それらが関連するユーザデータ以外の異なるページもしくは異なるブロックにさえ記憶される。ユーザデータのセクタは一般に５１２バイトであり、磁気ディスクドライブ内のセクタのサイズに対応する。オーバヘッドデータは一般に、追加の１６〜２０バイトである。多数のページがブロックを構成し、それは８ページから、例えば最大３２、６４，１２８またはそれ以上のページのいずれであってもよい。
【００３０】
図５は、本発明の一実施形態による１ページのメモリセルを並列に読み出し及びプログラミングする読み出し／書き込み回路を備えたメモリ装置２９６を示している。メモリ装置２９６は、１つ以上のメモリダイ２９８を有する。メモリダイ２９８は、２次元のアレイのメモリセル３００、制御回路３１０、及び読み出し／書き込み回路３６５を有する。いくつかの実施形態では、メモリセルのアレイは３次元であり得る。メモリセルは、ビットライン、ワードライン、ソースライン、及びメモリアレイを制御するために使用される他のライン等のさまざまな制御ラインによって制御、アクセスされる。例えば、メモリアレイ３００は、行復号部３３０を介してワードラインによって、及び、列復号部３６０を介してビットラインによってアドレス指定できる。読み出し／書き込み回路３６５は複数の検出ブロック４００を有しており、１ページのメモリセルを並列に読み出し又はプログラムすることができる。一般に、制御部３５０は、１つ以上のメモリダイ２９８のように同じメモリ装置２９６（例えば、取り外し可能なストレージカード）内に含まれる。コマンド及びデータは、ライン３２０を介してホストと制御部３５０の間、及び、ライン３１８を介して制御部と１つ以上のメモリダイ２９８の間で送られる。
【００３１】
制御回路３１０は、読み出し／書き込み回路３６５と協調して、メモリアレイ３００上でメモリ動作を実行する。制御回路３１０は、状態マシン３１２、オンチップアドレス復号部３１４及び電力制御モジュール３１６を有している。状態マシン３１２は、メモリ動作のチップレベル制御を提供する。オンチップアドレス復号部３１４は、ホスト又はメモリ制御部によって用いられるとともに、復号部３３０及び３６０によって用いられるハードウェアアドレスの間のアドレスインタフェースを提供する。電力制御モジュール３１６は、メモリ動作中にワードライン及びビットラインに供給される電力及び電圧を制御する。
【００３２】
いくつかの実装形態では、図５の構成要素のいくつかを結合することができる。多様な設計では、メモリセルアレイ３００以外の図５の構成要素の１つまたは複数を（単独でまたは組み合わせて）１つの管理回路と見なすことができる。例えば、管理回路は、制御回路３１０、状態マシン３１２、復号部３１４／３６０、電力制御３１６、検出ブロック４００、読み出し／書き込み回路３６５、制御部３５０等の内の１つ、または組み合わせを有してよい。
【００３３】
図６は、図５に示したメモリ装置２９６の別の構成を示している。様々な周辺回路によるメモリアレイ３００へのアクセスはアレイの両側で対称的に実装されており、各側のアクセスライン及び回路の密度が半分に低減されている。従って、行復号部は行復号部３３０Ａと３３０Ｂに分割され、列復号部は列復号部３６０Ａと３６０Ｂに分割されている。同様に、読み出し／書き込み回路は、アレイ３００の底部からビットラインに接続する読み出し／書き込み回路３６５Ａと、アレイ３００の上部からビットラインに接続する読み出し／書き込み回路３６５Ｂに分割されている。この方法により、読み出し／書き込みモジュールの密度は本質的に２分の１に低減される。図６の装置は、図５の装置で上述したような制御部を有することもできる。
【００３４】
図７を参照し、メモリセルアレイ３００の例示的な構造を説明する。一例として、１，０２４個のブロックに区切られるＮＡＮＤフラッシュＥＥＰＲＯＭを説明する。各ブロックに記憶されるデータは同時に消去できる。一実施形態では、ブロックは、同時に消去されるメモリセルの最小単位である。この例では、各ブロックにＢＬ０、ＢＬ１、．．．、ＢＬ８５１１に相当する８，５１２の列がある。一実施形態では、ブロックの全てのビットラインは、読み出し動作及びプログラム動作の間に同時に選択できる。１つの共通したワードラインに沿った、任意のビットラインに接続されたメモリセルは、同時にプログラムできる。
【００３５】
別の実施形態では、ビットラインは偶数のビットラインと奇数のビットラインに分割される。奇数／偶数ビットラインアーキテクチャでは、共通ワードラインに沿った奇数ビットラインに接続されたメモリセルはあるときにプログラムされる。それに対し、共通ワードラインに沿った偶数ビットラインに接続されたメモリセルは別のときにプログラムされる。
【００３６】
図７は、直列に接続され、ＮＡＮＤストリングを形成する４個のメモリセルを示す。４個のセルはそれぞれのＮＡＮＤストリング内に含まれるとして示されているが、４個より多い、または少ない数（例えば、１６、３２、または別の数）を使用できる。ＮＡＮＤストリングの１つの端子は（選択ゲートドレインＳＧＤに接続されている）ドレイン選択ゲートを介して対応するビットラインに接続され、別の端子は（選択ゲートソースラインＳＧＳに接続されている）ソース選択ゲートを介してｃ−ソースに接続される。
【００３７】
図８は、検出モジュール３８０、及び、共通部３９０と呼ばれるコア部内で分割された個々の検出ブロック４００のブロック図である。一実施形態では、各ビットラインの別個の検出モジュール３８０と、複数の検出モジュール３８０の集合の１つの共通部３９０があってもよい。一例では、検出ブロックは、１つの共通部３９０と８つの検出モジュール３８０を有することができる。グループ内の各検出モジュールは、データバス３７２を介して関連する共通部と通信できる。さらなる詳細としては、米国特許出願第１１／０２６，５３６号、「Ｎｏｎ-Ｖｏｌａｔｉｌｅ Ｍｅｍｏｒｙ & Ｍｅｔｈｏｄ ｗｉｔｈＳｈａｒｅｄ Ｐｒｏｃｅｓｓｉｎｇ ｆｏｒ ａｎ Ａｇｇｒｅｇａｔｅ ｏｎ Ｓｅｎｓｅ Ａｍｐｌｉｆｉｅｒｓ」、出願日０４年１２月２９日を参照する。その全体は参照することにより本明細書に組み込まれる。
【００３８】
検出モジュール３８０は検出回路３７０を有しており、検出回路３７０は接続されたビットライン内の伝導電流が所定の閾値レベルより高いか低いかを判定する。検出モジュール３８０はさらにビットラインラッチ３８２を有しており、ビットラインラッチ３８２は接続されたビットライン上の電圧条件を設定するために用いられる。例えば、ビットラインラッチ３８２内にラッチされる所定の状態によって、接続されたビットラインはプログラム禁止を指定する状態（例えば、Ｖｄｄ）とされる。
【００３９】
共通部３９０は、プロセッサ３９２、１セットのデータラッチ３９４、及び１セットのデータラッチ３９４とデータバス３２０の間を接続するＩ／Ｏインタフェース３９６を有する。プロセッサ３９２は計算を実行する。例えば、その機能の１つは、検出されたメモリセル内に記憶されているデータを判定し、判定したデータを１セットのデータラッチ内に記憶することである。１セットのデータラッチ３９４は、読み出し動作中に、プロセッサ３９２によって判定されたデータビットを記憶するために用いられる。それは、プログラム動作中に、データバス３２０から取り込まれたデータビットを記憶するためにも用いられる。取り込まれたデータビットは、メモリ内にプログラムする予定の書き込みデータを表す。Ｉ／Ｏインタフェース３９６は、データラッチ３９４とデータバス３２０の間のインタフェースを提供する。
【００４０】
読み出し又は検出中には、システムの動作は状態マシン３１２の制御下にあり、状態マシン３１２はアドレスされたセルへの異なる制御ゲート電圧の供給を制御する。メモリによってサポートされた様々なメモリ状態に対応する様々な既定制御ゲート電圧のステップを進む際に、検出モジュール３８０はこれらの電圧の１つに移動し、バス３７２を介して検出モジュール３８０からプロセッサ３９２に出力が提供される。その時点で、プロセッサ３９２は、検出モジュールの移動イベントと、状態マシンから入力ライン３９３を介して印加された制御ゲート電圧についての情報を考慮することによって得られたメモリ状態を決定する。それから、メモリ状態に対するバイナリ符号化を計算し、得られたデータビットをデータラッチ３９４に記憶する。コア部の別の実施形態では、ビットラインラッチ３８２は、検出モジュール３８０の出力をラッチするラッチ、及び、上記のようなビットラインラッチの両方としてダブルデューティを提供する。
【００４１】
当然のことながら、いくつかの実装形態では複数のプロセッサ３９２を有することができる。一実施形態では、各プロセッサ３９２は出力ライン（図９には示されていない）を有し、各出力ラインは共にワイヤードＯＲ接続される。いくつかの実施形態では、出力ラインは、ワイヤードＯＲラインに接続する前に反転される。ワイヤードＯＲを受け取る状態マシンはプログラムされる全てのビットがいつ所望のレベルに到達するかを決定できる。したがって、この構成はプログラミング処理がいつ完了するかについてのプログラム検証処理中の素早い決定を可能にする。例えば、各ビットがその所望のレベルに到達すると、そのビット用の論理０がワイヤードＯＲラインに送られる（又はデータ１を反転させる）。全てのビットがデータ０を出力する（又はデータ１を反転させる）と、状態マシンはプログラミング処理を終了することを認識する。各プロセッサは８つの検出モジュールと通信するため、状態マシンはワイヤードＯＲラインを８回読み出す必要があるか、あるいは、関連するビットラインの結果を蓄積するために論理がプロセッサ３９２に追加され、状態マシンがワイヤードＯＲラインを１回だけ読めばよいようにする。同様に、論理レベルを正しく選ぶことによって、グローバル状態マシンは、第１ビットがその状態をいつ変更するのか、及び、相応してアルゴリズムをいつ変更するのかを検出できる。
【００４２】
プログラム又は検証中に、プログラムされるデータはデータバス３２０から１セットのデータラッチ３９４内に記憶される。状態マシンの制御下のプログラム動作は、アドレスされるメモリセルの制御ゲートに印加される一連のプログラミング電圧パルスを有する。各プログラミングパルスに続いて検証が実行され、メモリセルが所望の状態にプログラムされたかどうかを特定する。プロセッサ３９２は、所望のメモリ状態に対する検証メモリ状態を監視する。その２つが一致する場合、プロセッサ３９２はビットラインラッチ３８２を設定し、プログラム禁止を指定する状態にビットラインを設定する。これにより、たとえプログラミングパルスがその制御ゲートに現れても、ビットラインに接続したセルがさらにプログラムされないようにする。他の実施形態では、プロセッサが最初にビットラインラッチ３８２をロードし、検出回路が検証処理中に禁止値にそれを設定する。
【００４３】
データラッチスタック３９４は、検出モジュールに対応するデータラッチのスタックを有する。一実施形態では、検出モジュール３８０毎に３つのデータラッチが存在する。いくつかの実装形態では、（必須ではないが）データラッチはシフトレジスタとして実装され、内部に記憶されたパラレルデータをデータバス３２０のシリアルデータに変換したり、その逆を行ったりする。好適な実施形態では、ｍ個のメモリセルの読み出し／書き込みブロックに対応する全てのデータラッチを共にリンクさせてブロックシフトレジスタを構成し、シリアル転送によってデータのブロックを入力または出力できるようにする。特に、ｒ個の読み出し／書き込みモジュールのバンクを調整し、そのセットのデータラッチが読み出し／書き込みブロックの全体のシフトレジスタの一部であっても、そのセットのデータラッチのそれぞれが順にデータバスの内外にデータをシフトできるようにする。
【００４４】
不揮発性記憶装置の多様な実施形態の構造及び／または動作についての追加情報は、（１）米国特許出願公開第２００４／００５７２８７号、「Ｎｏｎ-Ｖｏｌａｔｉｌｅ Ｍｅｍｏｒｙ Ａｎｄ Ｍｅｔｈｏｄ ＷｉｔｈＲｅｄｕｃｅｄ Ｓｏｕｒｃｅ ＬｉｎｅＢｉａｓ Ｅｒｒｏｒｓ」、公開日２００４年３月２５日、（２）米国特許出願公開第２００４／０１０９３５７号、「Ｎｏｎ-Ｖｏｌａｔｉｌｅ Ｍｅｍｏｒｙ Ａｎｄ Ｍｅｔｈｏｄ ｗｉｔｈＩｍｐｒｏｖｅｄ Ｓｅｎｓｉｎｇ」、公開日２００４年６月１０日、（３）米国特許出願第１１／０１５，１９９号、「ＩｍｐｒｏｖｅｄＭｅｍｏｒｙ Ｓｅｎｓｉｎｇ ＣｉｒｃｕｉｔＡｎｄ Ｍｅｔｈｏｄ ＦｏｒＬｏｗ Ｖｏｌｔａｇｅ Ｏｐｅｒａｔｉｏｎ」、発明者Ｒａｕｌ−ＡｄｒｉａｎＣｅｒｎｅａ、出願日０４年１２月１６日、（４）米国特許出願第１１／０９９，１３３号、「Ｃｏｍｐｅｎｓａｔｉｎｇ ｆｏｒ Ｃｏｕｐｌｉｎｇ ＤｕｒｉｎｇＲｅａｄ Ｏｐｅｒａｔｉｏｎｓ ｏｆ Ｎｏｎ-Ｖｏｌａｔｉｌｅ Ｍｅｍｏｒｙ」、発明者Ｊｉａｎ Ｃｈｅｎ、出願日２００５年４月５日、及び（５）米国特許出願第１１／３２１，９５３号、「Ｒｅｆｅｒｅｎｃｅ Ｓｅｎｓｅ Ａｍｐｌｉｆｉｅｒ ＦｏｒＮｏｎ-Ｖｏｌａｔｉｌｅ Ｍｅｍｏｒｙ」、発明者Ｓｉｕ Ｌｕｎｇ Ｃｈａｎ及びＲａｕｌ−Ａｄｒｉａｎ  Ｃｅｒｎｅａ、出願日２００５年１２月２８日に記載されている。直前に示した特許文書の５つの全ては、その全体を参照することにより本明細書に組み込まれる。
【００４５】
図９は検出モジュール３８０の一例を示しているが、他の実装形態を用いることもできる。検出モジュール３８０は、ビットライン分離トランジスタ５１２、ビットライン引き下げ回路（５２２及び５５０）、ビットライン電圧クランプ６１２、読み出しバス転送ゲート５３０、センス増幅器６００、及び、ビットラインラッチ３８２を含んでいる。ビットライン分離トランジスタ５１２の一端は、ビットラインＢＬ及びコンデンサ５１０に接続されている。ビットライン分離トランジスタ５１２の他端はビットライン電圧クランプトランジスタ６１２及びビットライン引き下げトランジスタ５２２に接続されている。ビットライン分離トランジスタ５１２のゲートは、ＢＬＳと呼ばれる信号を受信する。ビットライン電圧クランプトランジスタ６１２のゲートは、ＢＬＣと呼ばれる信号を受信する。ビットライン電圧クランプトランジスタ６１２は、ノードＳＥＮ２で読み出しバス転送ゲート５３０に接続される。読み出しバス転送ゲート５３０は、読み出しバス５３２に接続される。ビットライン電圧クランプトランジスタ６１２は、ノードＳＥＮ２でセンス増幅器６００に接続される。図９の実施形態では、センス増幅器６００は、コンデンサＣｓａだけではなく、トランジスタ６１３、６３４、６４１、６４２、６４３、６５４、６５４及び６５８も有している。ビットラインラッチ３８２は、トランジスタ６６１、６６２、６６３、６６４、６６６及び６６８を有している。
【００４６】
一般に、ワードラインに沿うメモリセルは並列に動作する。従って、対応する数の検出モジュールが並列に動作中になる。一実施形態では、ページ制御部は、並列に操作される検出モジュールに制御及びタイミング信号を提供する。いくつかの実施形態では、ワードラインに沿ったデータは複数のページに分けられ、データは一度に１ページずつ、あるいは、一度に複数のページずつ読み出され、あるいは、プログラムされる。
【００４７】
ビットライン分離トランジスタ５１２が信号ＢＬＳによって起動されると、検出モジュール３８０はメモリセルのビットライン（例えば、ビットラインＢＬ）に接続可能になる。検出モジュール３８０はセンス増幅器６００を介してメモリセルの伝導電流を検出し、その読み出し結果を検出ノードＳＥＮ２においてデジタル電圧レベルとしてラッチし、ゲート５３０を介して読み出しバス５３２にそれを出力する。
【００４８】
センス増幅器６００は、第２電圧クランプ（トランジスタ６１２及び６３４）、事前充電回路（トランジスタ５４１、６４２、及び６４３）、識別又は比較回路（トランジスタ６５４，６５６、及び６５８；及びコンデンサＣｓａ）を有する。一実施形態では、基準電圧が、読み出されるメモリセルの制御ゲートに印加される。基準電圧がメモリセルの閾値電圧より大きい場合は、メモリセルがオンしてそのソースとドレインの間で電流を導通させる。基準電圧がメモリセルの閾値電圧より大きくない場合は、メモリセルはオンにならずにそのソースとドレインの間で電流を導通させない。多くの実装形態では、オン／オフは連続的な遷移であってもよく、メモリセルは異なる制御ゲート電圧に応じて異なる電流を導通できる。メモリセルがオンであり電流を導通させている場合、導通させた電流によってノードＳＥＮ上の電圧は低下し、他方の端子がＶｄｄであるコンデンサＣｓａを効率的に充電し、そこにかかる電圧を増大させる。ノードＳＥＮ上の電圧が所定の検出期間中に所定のレベルまで放電すると、センス増幅器６００はメモリセルが制御ゲート電圧に応じてオンになったことを報告する。
【００４９】
検出モジュール３８０の１つの特徴は、検出中にビットラインに定電圧の供給を含むことである。これは、ビットライン電圧クランプトランジスタ６１２によって実現される。ビットライン電圧クランプトランジスタ６１２は、ビットラインＢＬと直列のトランジスタ６１２を備えたダイオードクランプのように動作する。そのゲートは、その閾値電圧ＶＴより高い所望のビットライン電圧ＶＢＬと等しい定電圧ＢＬＣにバイアスされる。このように、それは検出ノードＳＥＮからビットラインを分離し、プログラム検証又は読み出し中の所望のＶＢＬ＝０．５〜０．７Ｖ等のビットラインに定電圧レベルを設定する。一般に、ビットライン電圧レベルは、長い事前充電時間を避けるのに十分な程度に低く、かつ、地動雑音や他の因子を避けるために十分な程度に高いレベルに設定される。
【００５０】
センス増幅器６００は検出ノードＳＥＮを介して伝導電流を検出し、伝導電流が所定の値より高いか低いかを判定する。センス増幅器はその検出結果をデジタル形式で、信号ＳＥＮ２として読み出しバス５３２に出力する。
【００５１】
デジタル制御信号ＩＮＶは、本質的に読み出し後の信号ＳＥＮ２の反転させた状態であるが、引き下げ回路を制御するためにも出力される。検出した伝導電流が所定の値より高い場合、ＩＮＶはＨＩＧＨになりＳＥＮ２はＬＯＷになる。この結果は、引き下げ回路によって増幅される。引き下げ回路は、制御信号ＩＮＶによって制御されるｎトランジスタ５２２と、制御信号ＧＲＳによって制御される別のｎトランジスタ５５０を有する。ＧＲＳ信号がＬＯＷのとき、ＩＮＶ信号の状態にかかわらずビットラインＢＬを浮遊させることができる。プログラミング中、ＧＲＳ信号はＨＩＧＨになってビットラインＢＬを接地し、ＩＮＶによって制御される。ビットラインを浮遊させる必要がある場合、ＧＲＳ信号はＬＯＷになる。検出モジュール、センス増幅器、及びラッチの他の設計も使用できることに留意する。
【００５２】
読み出し／書き込み回路３６５は、１ページのメモリセルに対して同時に動作する。読み出し／書き込み回路３６５内の各検出モジュール３８０は、ビットラインを介して対応するセルに結合される。伝導電流は、検出モジュールからビットラインを通ってメモリセルのドレインに流入し、ソースから流出してソースラインを通ってグランドに流れる。集積回路チップでは、メモリアレイ内のセルのソースは全て、ソースラインの複数の分岐として、メモリチップの外部接地パッド（例えばＶｓｓパッド）に接続されている。たとえソースラインの抵抗を低減するためにメタルストラップが使用されていても、有限抵抗Ｒがメモリセルのソース電極と接地パッドの間に存在する。通常、接地ループ抵抗Ｒは約５０オームである。
【００５３】
ページ全体のメモリが並列で検出されている場合、ソースラインを流れる総電流は全ての伝導電流の合計である。一般的には、各メモリセルは、その電荷蓄積素子にプログラムされた電荷量に依存する伝導電流を有する。メモリセルの既定の制御ゲート電圧の場合、小さい電荷が相対的に高い伝導電流を生じさせる。メモリセルのソース電極と接地パッドの間に有限抵抗が存在するとき、抵抗での電圧低下は、Ｖｄｒｏｐ＝ｉＴＯＴ  Ｒで示される。
【００５４】
例えば、４，２５６本のビットラインが同時に放電すると、それぞれが１μＡの電流であったとすると、ソースライン電圧の低下は、４，０００（ライン）×１（μＡ／ライン）×５０（オーム）＝０．２ボルトとなる。このソースラインバイアスが、メモリセルの閾値電圧検出時に０．２ボルトの検出誤差を生じさせる。
【００５５】
実施形態の１セットでは、ソースラインバイアスを低減するための方法は、マルチパス検出のための機能及び技法を備えた読み出し／書き込み回路によって達成される。それぞれのパスは、既定の限界電流値より伝導電流が高いメモリセルを特定し、シャットダウンするのに役立つ。従来の単独パス検出では、通常は、各パスでは、既定の限界電流値は漸次的にブレイクポイント電流値に収束する。このようにして、電流が高いセルがシャットダウンされて、その後のパスにおける検出がソースラインバイアスによって受ける影響はより少なくなる。
【００５６】
例えば、マルチパス検出は、２つのパス（ｊ＝０から１）で実現できる。第１のパスの後に、伝導電流がブレイクポイントよりも高いメモリセルが特定され、その伝導電流をオフにすることによってそれらのメモリセルが除去される。それらの伝導電流をオフする好ましい方法は、ビットライン上のドレイン電圧を接地することである。第２のパスでは、ソースラインバイアスからの誤差が削減される。３つ以上のパスも考慮される。ソースラインバイアスが誤差を生じさせない実施形態では、検出に１つのパスを使用できる。
【００５７】
図１０（Ａ）から図１０（Ｋ）は読み出し／検証動作中の検出モジュール３８０の一実施形態を説明するタイミング図を示している。
【００５８】
段階（０）：セットアップ
検出モジュール３８０（図９を参照）は、イネーブル信号ＢＬＳ（図１０（Ａ））によって対応するビットラインに接続される。電圧クランプは、ＢＬＣ（図１０（Ｂ））によって起動される。事前充電トランジスタ６４２は、制御信号ＦＬＴ（図１０（Ｃ））を備えた制限電流源として起動される。
【００５９】
段階（１）：制御された事前充電
センス増幅器６００はリセット信号ＲＳＴ（図１０（Ｄ））によって初期化され、これによって、トランジスタ６５８を介して信号ＩＮＶ（図１０（Ｈ））が接地される。従って、リセット時に、ＩＮＶはＬＯＷに設定される。同時に、ｐトランジスタ６６３は相補信号ＬＡＴをＶｄｄ、つまりＨＩＧＨ（図１０（Ｈ））に引き上げる。すなわち、ＬＡＴはＩＮＶの補数である。分離トランジスタ６３４は信号ＬＡＴによって制御される。従って、リセット後、分離トランジスタ６３４は、検出ノードＳＥＮ２をセンス増幅器の内部検出ノードＳＥＮに接続可能とされる。
【００６０】
事前充電トランジスタ６４２は、内部検出ノードＳＥＮと検出ノードＳＥＮ２を介して、ビットラインＢＬを所定の期間だけ事前充電する。これは、ビットラインを、内部の導通を検出するための最適な電圧にする。事前充電トランジスタ６４２は、制御信号ＦＬＴ（「ＦＬＯＡＴ」）で制御される。ビットラインは、ビットライン電圧クランプ６１２によって設定される所望のビットライン電圧に引き上げられる。引き上げの速度は、ビットライン内の伝導電流に依存する。伝導電流が小さいほど、引き上げは速くなる。
【００６１】
既に説明したように、伝導電流が所定の値より高いそれらのメモリセルがオフし、ソースラインバイアスに対する影響が排除されると、ソースラインバイアスに起因する検出誤差が最小限に抑えられる。従って、事前充電トランジスタ６４２は、２つの機能を果たす。１つは、ビットラインを最適検出電圧に事前充電することである。他方は、ソースラインバイアスへの影響を排除するために、Ｄ．Ｃ．（直流）検出用の所定値よりも高い伝導電流のメモリセルを特定するのに役立つことである。
【００６２】
Ｄ．Ｃ．検出は、ビットラインに所定の電流を供給するための電流源のように動作する事前充電回路を提供することにより達成される。ｐトランジスタ６４２を制御する信号ＦＬＴは、所定の電流が流れるように「プログラム」するものである。一例では、ＦＬＴ信号は、基準電流が５００ｎＡに設定されたカレントミラーから生成される。ｐトランジスタ６４２は、カレントミラーのミラーレッグを形成する場合、それに流れる電流も同じく５００ｎＡである。
【００６３】
図１０（Ｉ１）〜図１０（Ｉ４）は、７００ｎＡ、４００ｎＡ、２２０ｎＡ及び４０ｎＡの伝導電流のメモリセルにそれぞれ接続されている４本の例示のビットラインに対する電圧を示す。例えば、事前充電回路（トランジスタ６４２を含む）が５００ｎＡを限度とする電流源である場合、５００ｎＡを超える伝導電流を有するメモリセルは、それが蓄積できるより速く、ビットライン上の電荷を排出させる。その結果、伝導電流７００ｎＡのビットラインの場合、内部検出ノードＳＥＮでの電圧または信号は（図１０（Ｉ１）参照）、０．１ボルト等の０Ｖ近くとなる。他方、メモリセルの伝導電流が５００ｎＡ未満の場合、事前充電回路（トランジスタ６４２を含む）は、ビットラインを充電し始め、その電圧はクランプビットライン電圧（例えば、電圧クランプ６１２によって設定される０．５Ｖ）に向かって上昇を開始する（図１０（Ｉ２）から図１０（Ｉ４）を参照）。それに応じて、内部検出ノードＳＥＮは０Ｖ近くに留まるか、または、Ｖｄｄ（図１０（Ｇ））まで引き上げられる。一般的には、ビットライン電圧は、伝導電流が小さいほど速くクランプビットライン電圧まで充電される。従って、制御された事前充電段階の後にビットライン上の電圧を調べることにより、接続されたメモリセルが所定レベルよりも高い伝導電流を有するか、または、低い伝導電流を有するかどうかを特定できる。
【００６４】
段階（２）：Ｄ．Ｃ．ラッチ、及び、その後のストローブからの高電流セルの除去
制御された事前充電段階の後、初期のＤ．Ｃ．高電流検出段階が開始され、そこではノードＳＥＮが識別回路によって検出される。検出は、所定のレベルよりも高い伝導電流を備えたメモリセルを特定する。識別回路は、２つのｐトランジスタ６５４と６５６を直列で有しており、それらは信号ＩＮＶを登録するノード用の引き上げとして機能する。ｐトランジスタ６５４は、読み出しストローブ信号ＳＴＢがＬＯＷになることにより起動され、ｐトランジスタ６５６は内部検出ノードＳＥＮの信号がＬＯＷになることによって起動される。高電流メモリセルは、信号ＳＥＮを０Ｖに近くにするか、あるいは、少なくともｐトランジスタ６５６をオフにするほど高くそのビットラインが事前充電されることを不可能とする。例えば、弱い引き上げが５００ｎＡの電流に制限される場合、７００ｎＡという伝導電流のセルを引き上げることができない（図１０（Ｇ１））。ＳＴＢがラッチするためにＬＯＷにストローブする場合、ＩＮＶがＶｄｄに引き上げられる。これにより、ラッチ回路６６０が、ＩＮＶがＨＩＧＨ及びＬＡＴがＬＯＷとなるように設定される（図１０（Ｈ１））。
【００６５】
ＩＮＶがＨＩＧＨであり、ＬＡＴがＬＯＷであるとき、分離ゲート６３０は停止にされ、検出ノードＳＥＮ２は内部検出ノードＳＥＮから遮断される。同時に、ビットラインは引き下げトランジスタ５２２（図９及び図１０（Ｉ１））によって接地される。これにより、ビットライン内の伝導電流は実質的にオフにされ、それがソースラインバイアスに寄与しないようにする。
【００６６】
従って、検出モジュール３８０の１つの好適実装形態において、制限電流源事前充電回路が利用される。これは、高電流が流れるビットラインを特定し、それらをオフにして以後の検出でのソースラインバイアス誤差を最小限に抑えるための追加の、あるいは代替の方法（Ｄ．Ｃ．検出）となる。
【００６７】
別の実施形態では、事前充電回路は高電流ビットラインを特定するのに役立つように特別に構成されるのではなく、メモリシステムが利用できる最大電流の許容範囲内で可能な限り迅速にビットラインを引き上げて事前充電するように最適化されている。
【００６８】
段階（３）：回復／事前充電
前もって引き下げられていないビットライン内の伝導電流を検出する前に、事前充電回路は信号ＦＬＴがＬＯＷになることによって起動され、内部検出ノードＳＥＮ２をＶｄｄ（図１０（Ｃ）及び図１０（Ｉ２）から図１０（Ｉ４））に事前充電し、及び、隣接ビットラインにおける電圧の低下に起因して部分的に低下した可能性のあるビットラインを事前充電する。
【００６９】
段階（４）：第１Ａ．Ｃ．検出
一実施形態では、Ａ．Ｃ．（交流または過渡）検出が、浮遊内部検出ノードＳＥＮでの電圧低下を決定することによって実行される。これは、識別回路が、内部検出ノードＳＥＮに結合されたコンデンサＣｓａを利用し、伝導電流がそれを充電している（ノードＳＥＮへの電圧を低減する）速度を考慮することによって実現される。集積回路環境においては、コンデンサＣｓａは、通常はトランジスタで実現されるが、他の実装形態であってもよい。コンデンサＣｓａは、例えば３０ｆＦ等の所定の電気容量を有し、これは最適電流の決定のために選択される。通常は１００から１０００ｎＡの範囲内にある限界電流値は、充電期間の適切な調整によって設定される。
【００７０】
識別回路は、内部検出ノードＳＥＮ内の信号ＳＥＮを検出する。各検出の前に、内部検出ノードＳＥＮでの信号は、事前充電トランジスタ６４２によってＶｄｄに引き上げられる。これは、最初に、コンデンサＣｓａ全体の電圧がゼロとなるように設定する。
【００７１】
センス増幅器６００が検出する準備が整うと、ＦＬＧがＨＩＧＨ（図１０（Ｃ））になることによって事前充電回路が停止する。第１の検出期間Ｔ１は、ストローブ信号ＳＴＢのアサーションによって終了される。検出期間中、伝導するメモリセルによって引き起こされる伝導電流がコンデンサを充電する。コンデンサＣｓａがビットライン内の伝導電流の排出作用により充電されるにつれて、ＳＥＮの電圧がＶｄｄから減少する。図１０（Ｇ）（曲線Ｇ２からＧ４を参照）は、４００ｎＡ、２２０ｎＡ、及び４０ｎＡの伝導電流を備えたメモリセルにそれぞれ接続された残りの３つの例示のビットラインに対応するＳＥＮノードを示しており、減少は伝導電流が高いほど急速である。
【００７２】
段階（５）：第１Ａ．Ｃ．ラッチ、及び、以後の検出からの高電流セルの除去
第１の所定検出期間の最後に、ＳＥＮノードはビットライン内の伝導電流（図１０Ｇの曲線Ｇ２からＧ４参照）に応じた所定電圧まで減少する。一例として、この第１段階の限界電流は３００ｎＡとなるように設定される。コンデンサＣｓａ、検出期間Ｔ１及びｐトランジスタ６５６の閾値電圧は、限界電流（例えば、３００ｎＡ）より高い伝導電流に対応するＳＥＮの信号がトランジスタ６５６をオンする程度に十分に低下するようにされる。ラッチ信号ＳＴＢがＬＯＷにストローブすると、出力信号ＩＮＶがＨＩＧＨに引っ張られ、ラッチ３８２（図１０（Ｅ）及び図１０（Ｈ）（曲線Ｈ２））によってラッチされる。他方、限界電流より低い伝導電流に対応する信号ＳＥＮは、トランジスタ６５６をオンにできない信号ＳＥＮを生じる。この場合、ラッチ３８２は変更されないままとなり、その場合ＬＡＴはＨＩＧＨ（図１０（Ｈ３）及び図１０（Ｈ４））に留まる。従って、識別回路が、検出期間によって設定される基準電流を基準にして、ビットライン内の伝導電流の大きさを実質的に判定することが分かる。
【００７３】
センス増幅器６００は第２の電圧クランプトランジスタ６１２を有しており、その目的は、トランジスタ６１２のドレインの電圧を十分に高く維持し、ビットライン電圧クランプ６１０が適切に機能できるようにすることである。前述したように、ビットライン電圧クランプ６１０は、ビットライン電圧を、例えば０．５Ｖ等の所定値ＶＢＬに固定する。これにより、トランジスタ６１２のゲート電圧をＶＢＬ＋ＶＴ（ここで、ＶＴはトランジスタ６１２の閾値電圧である）に設定し、検出ノード５０１に接続されるドレインをソースより高く、つまり信号ＳＥＮ２＞ＶＢＬとすることが必要になる。特に、電圧クランプの構成を考慮すると、ＳＥＮ２はＸＸ０−ＶＴまたはＢＬＸ−ＶＴの小さい方以下であり、ＳＥＮはそれ以上である必要がある。検出中、分離ゲート６３０は通過モードである。しかしながら、検出中、内部検出ノードＳＥＮでの信号は、Ｖｄｄから低下した電圧を有する。第２の電圧クランプは、ＳＥＮが、ＸＸ０−ＶＴまたはＢＬＸ−ＶＴのどちらか低い方より低下しないようにする。これは、信号ＢＬＸによって制御されるｎトランジスタ６１２によって達成され、この場合ＢＬＸ?ＶＢＬ＋ＶＴである。従って、電圧クランプの動作により、ビットライン電圧ＶＢＬは検出中に一定（例えば〜０．５Ｖ）に保たれる。
【００７４】
電流決定の出力は、ラッチ回路３８２によってラッチされる。ラッチ回路は、トランジスタ６６６と６６８と共にトランジスタ６６１、６６２、６６３、及び６６４による設定／リセットラッチとして構成される。ｐトランジスタ６６６は信号ＲＳＴ（リセット）によって制御され、ｎトランジスタ６６８は信号ＳＴＢによって制御される。低電圧動作に適した上記のセンス増幅器の変形態様は、発明者Ｒａｕｌ-Ａｄｒｉａｎ Ｃｅｒｎｅａの米国特許出願第１１／０１５，１９９号、発明の名称「ＩｍｐｒｏｖｅｄＭｅｍｏｒｙ Ｓｅｎｓｉｎｇ ＣｉｒｃｕｉｔＡｎｄ Ｍｅｔｈｏｄ ＦｏｒＬｏｗ Ｖｏｌｔａｇｅ Ｏｐｅｒａｔｉｏｎ」、出願日０４年１２月１６日に見られ、全体として参照によって本明細書に組み込まれる。
【００７５】
一般に、多経路検出モジュール３８０の対応する数によって操作される１ページのメモリセルが存在する。第１限界電流レベルより高い伝導電流を備えたそれらのメモリセルに対して、ＬＡＴ信号はＬＯＷにラッチされる（ＩＮＶはＨＩＧＨにラッチされる）。これはさらにビットライン引き下げ回路５２０を起動し、対応するビットラインを接地し、それによって電流をオフにする。
【００７６】
段階（６）：回復／事前充電
予め引き下げられていないビットライン内の伝導電流の次の検出の前に、事前充電回路が信号ＦＬＴによって起動され、内部検出ノード６３１をＶｄｄまで事前充電する（図１０Ｃ及び図１０（Ｉ３）から１０（Ｉ４））。
【００７７】
段階（７）：第２検出
センス増幅器６００が検出しようとすると、事前充電回路はＦＬＴをＨＩＧＨにすることによって停止される（図１０（Ｃ））。第２検出期間Ｔ２は、ストローブ信号ＳＴＢのアサートによって設定される。検出期間中、伝導電流は（もしあれば）コンデンサを充電する。コンデンサＣｓａがビットライン３６内の伝導電流の排出動作を介して充電しているときに、ノードＳＥＮの信号はＶｄｄから低下する。
【００７８】
前の例に従って、３００ｎＡより高い伝導電流を備えたメモリセルは、より早い段階で既に識別され遮断されている。図１４（Ｇ）（曲線Ｇ３とＧ４）は、２２０ｎＡと４０ｎＡの伝導電流を備えたメモリセルに各々接続した２つの例示のビットラインに対応するＳＥＮ信号を各々示している。
【００７９】
段階（８）：読み出し用の第２ラッチ
第２の所定検出期間Ｔ２の最後で、ＳＥＮはビットライン内の伝導電流に依存していくらかの電圧まで低下する（図１０（Ｇ）（曲線Ｇ３とＧ４））。一例として、第２段階の限界電流は、１００ｎＡとなるように設定される。この場合、２２０ｎＡの伝導電流を備えたメモリセルは、そのＩＮＶをＨＩＧＨにラッチし（図１０（Ｈ））、次にビットラインを接地する（図１０（Ｉ３））。一方、４０ｎＡの伝導電流を備えたメモリセルは、ラッチの（ＬＡＴをＨＩＧＨに事前設定した）状態に影響を与えない。
【００８０】
段階（９）：バスへの読み出し
最後に、読み出し段階において、転送ゲート５３０における制御信号ＮＣＯは、ラッチした信号ＳＥＮ２を読み出しバス５３２に読み出し可能にする（図１０（Ｊ）と１０（Ｋ））。
【００８１】
図１０（Ｉ１）〜１０（Ｉ４）から分かるように、ビットライン電圧は各検出期間中においては一定に留まる。従って、これまでの議論からビットライン間の容量結合は除去される。
【００８２】
上記の検出モジュール３８０は３つの経路を用いて検出を実行する一実施形態であり、最初の２つの経路は高電流のメモリセルを識別し遮断するために実装されている。ソースラインバイアスへの高電流の寄与を除去することで、最後の経路はより低い範囲の伝導電流を備えたセルをより正確に検出できる。
【００８３】
他の実施形態では、検出動作はＤＣ及びＡＣ経路の異なる組み合わせを用いて実装され、一部は２つ以上のＡＣ経路だけ、又は、１つの経路だけを用いる。異なる経路に対して用いられる限界電流値は毎回同じであってもよいし、最後の経路に用いられる限界電流値に向かって徐々に収束していてもよい。さらに、前述した検出実施形態は適切な検出モジュールの一例にすぎない。本明細書に説明する本発明を実装するために他の設計及び技術を使用することもできる。本明細書に説明する本発明には、１つの特定の検出モジュールが必要とされるわけではない。
【００８４】
図１１は、不揮発性メモリをプログラムする方法の一実施形態を説明するフローチャートである。一実装形態では、メモリセルがプログラミングの前に（ブロック単位で、または他の単位で）消去される。一実施形態では、メモリセルは、十分な期間の間にｐウェルを消去電圧（例えば２０ボルト）に上昇させ、ソースラインとビットラインがフローティングしている間に選択したブロックのワードラインを接地することによって消去される。容量結合のため、非選択ワードライン、ビットライン、選択ライン、及び、ｃソースも消去電圧のかなりの部分まで上昇される。従って、選択したメモリセルのトンネル酸化物層には強力な電場が印加され、選択したメモリセルのデータは、通常は、フローティングゲートの電子がＦｏｗｌｅｒ−Ｎｏｒｄｈｅｉｍトンネリングによって基板側に放出されるにつれて消去される。電子がフローティングゲートからｐウェル領域へ移動するにつれて、選択されたセルの閾値は低くなる。消去は、メモリアレイ、分割ブロック、別のセルのユニット全体で実行され得る。
【００８５】
図１１のステップ７００では、「データロード」コマンドが制御部によって発行され、制御回路３１０で受け取られる。ステップ７０２では、ページアドレスを指定するアドレスデータを制御部又はホストから復号部３１４に入力する。ステップ７０４では、アドレスされたページのプログラムデータの１ページをプログラミングのためにデータバッファに入力する。そのデータは、適切なセットのラッチ内にラッチされる。ステップ７０６では、「プログラム」コマンドが、制御部によって状態マシン３１２に発行される。
【００８６】
「プログラム」コマンドによってトリガされ、ステップ７０４でラッチしたデータは、適切なワードラインに印加した図１２のステップパルスを用いて、状態マシン３１２によって制御された選択メモリセル内にプログラムされる。ステップ７０８で、プログラム電圧Ｖｐｇｍを開始パルス（例えば、１２Ｖまたは他の値）に初期化し、状態マシン３１２によって維持されるプログラムカウンタＰＣは０に初期化される。ステップ７１０では、第１Ｖｐｇｍパルスを選択ワードラインに印加する。対応するメモリセルをプログラムすべきことを示す論理「０」が特定のデータラッチ内に記憶された場合、対応するビットラインを接地する。一方、対応するメモリセルがその電流データ状態に留まるべきことを示す論理「１」が特定のラッチ内に記憶された場合、プログラミングを禁止するために対応するビットラインをＶｄｄに接続する。
【００８７】
ステップ７１２では、選択したメモリセルの状態が検証され、それらがその目標閾値電圧に到達したか否か判断が判断される。選択したセルの閾値電圧が目標レベルに到達していることが検出されると、対応するデータラッチに記憶されるデータは論理「１」に変更される。閾値電圧が適切なレベルに到達していないことが検出された場合、対応するデータラッチ内に記憶したデータは変更されない。このように、その対応するデータラッチ内に記憶した論理「１」を有するビットラインはプログラムする必要はない。全てのデータラッチが論理「１」を記憶しているときに、状態マシンは（上記のワイヤードＯＲ型機構によって）全ての選択セルがプログラムされたことを認識する。ステップ７１４では、全てのデータラッチが論理「１」を記憶しているかどうかを確認する。そうであれば、全ての選択メモリセルがプログラムされて検証されたので、プログラミング処理を完了し成功とする。ステップ７１６では、「成功」の状態を報告する。
【００８８】
ステップ７１４において、全てのデータラッチが論理「１」を記憶しているとは限らないと判定された場合、プログラミング処理は継続する。ステップ７１８では、プログラム限界値ＰＣＭＡＸに対してプログラムカウンタＰＣを確認する。プログラム限界値の一例は２０であるが、他の値を用いることもできる。プログラムカウンタＰＣが２０以上であれば、プログラム処理は失敗し、ステップ７２０で「不合格」の状態を報告する。いくつかの実施形態では、ループの最大数に達した後、システムは、所定量未満のセルがプログラミングを終了していないかどうかをチェックする。その所定数未満がプログラムを終了していない場合、プログラミング処理は依然として合格と見なされる。プログラムカウンタＰＣが２０未満である場合には、Ｖｐｇｍレベルはステップサイズで増加し、ステップ７２２でプログラムカウンタＰＣが増分される。ステップ７２２の後、プロセスはステップ７１０に一巡して戻り、次のＶｐｇｍパルスを印加する。
【００８９】
図１２はプログラミングのために選択されたワードラインに適用される一連のプログラムパルスを示す。プログラムパルスの間には検証パルス（不図示）のセットがある。いくつかの実施形態では、データがプログラミングされる状態ごとに検証パルスがある。他の実施形態では、さらに多くのまたはさらに少ない検証パルスがあり得る。
【００９０】
一実施形態では、データは共通ワードラインに沿ってメモリセルにプログラムされる。従って、図１２のプログラムパルスを適用する前に、ワードラインの内の１つがプログラミングに選択される。このワードラインが選択ワードラインと呼ばれる。ブロックの残りのワードラインは非選択ワードラインと呼ばれる。
【００９１】
成功した（検証を行った）プログラム処理の最後では、メモリセルの閾値電圧はプログラムしたメモリセルの閾値電圧の１つ以上の分布内、又は、必要に応じて消去したメモリセルの閾値電圧分布内にあるべきである。図１３は、各メモリセルが２ビットのデータを記憶している場合のメモリセルアレイの閾値電圧分布を示している。図１３は、消去したメモリセル用の第１の閾値電圧分布Ｅを示している。プログラムしたメモリセルの３つの閾値電圧分布Ａ、Ｂ及びＣも示している。一実施形態では、分布Ｅ内の閾値電圧は負であり、分布Ａ、Ｂ及びＣ内の閾値電圧は正である。
【００９２】
図１３の異なる閾値電圧範囲の各々は、データビットのセットの所定の値に対応する。メモリセルにプログラムされたデータとセルの閾値電圧レベルの間の具体的な関係は、セルに対して採用されるデータ符号化方式に依存する。例えば、米国特許第６，２２２，７６２号及び米国特許出願公開公報第２００４／０２５５０９０号、「Ｔｒａｃｋｉｎｇ  Ｃｅｌｌｓ  Ｆｏｒ  Ａ  Ｍｅｍｏｒｙ  Ｓｙｓｔｅｍ」、出願日２００３年６月１３日（両方とも全体として参照によって本明細書に組み込まれる）は、マルチ状態フラッシュメモリセルの様々なデータ符号化方式を説明している。一実施形態では、データ値はグレイ符号割り当てを用いて閾値電圧範囲に割り当てられ、フローティングゲートの閾値電圧がその隣接する物理状態に誤ってシフトしても、１ビットだけが影響を受けるようにする。一例では、「１１」を閾値電圧範囲Ｅ（状態Ｅ）、「１０」を閾値電圧範囲Ａ（状態Ａ）、「００」を閾値電圧範囲Ｂ（状態Ｂ）、「０１」を閾値電圧範囲Ｃ（状態Ｃ）に割り当てる。しかし、他の実施形態ではグレイ符号は用いられない。図１１は４つの状態を示しているが、本発明は４つの状態より多い、又は、少ない状態を含む他のマルチ状態構造と共に用いることもできる。例えば、いくつかの不揮発性記憶素子は、８個（７個のプログラムされた、及び１個の消去された）以上の状態を活用できる。
【００９３】
図１３はさらに、メモリセルからデータを読み出すための３つの読み出し基準電圧Ｖｒａ、Ｖｒｂ及びＶｒｃを示している。所定のメモリセルの閾値電圧がＶｒａ、Ｖｒｂ及びＶｒｃより高いか、低いかをテストすることによって、システムはメモリセルがどの状態にあるかを特定できる。
【００９４】
図１３は、３つの検証基準電圧Ｖｖａ、Ｖｖｂ及びＶｖｃも示している。メモリセルを状態Ａにプログラムする場合、システムは、それらのメモリセルがＶｖａ以上の閾値電圧を有するかどうかをテストする。メモリセルを状態Ｂにプログラムする場合、システムは、メモリセルがＶｖｂ以上の閾値電圧を有するかどうかをテストする。メモリセルを状態Ｃにプログラムする場合、システムはメモリセルがＶｖｃ以上の閾値電圧を有するかどうかを判定する。
【００９５】
完全シーケンスプログラミングとして知られる一実施形態では、メモリセルは、消去状態Ｅから、プログラム状態Ａ、ＢまたはＣのどれかに直接的にプログラムできる。例えば、集団内の全てのメモリセルが消去状態Ｅになるように、プログラムされるメモリセルの集団が最初に消去されてよい。いくつかのメモリセルは状態Ｅから状態Ａにプログラムされるが、他のメモリセルは状態Ｅから状態Ｂに、及び／または、状態Ｅから状態Ｃにプログラムされる。
【００９６】
図１４は、２つの異なるページ（下側ページと上側ページ）に対してデータを記憶するマルチ状態メモリセルをプログラムする二経路技術の一例を示している。状態Ｅ（１１）、状態Ａ（１０）、状態Ｂ（００）及び状態Ｃ（０１）の４つの状態が示されている。状態Ｅの場合、両方のページが「１」を記憶する。状態Ａの場合、下側ページが「０」を記憶し、上側ページが「１」を記憶する。状態Ｂの場合、両方のページが「０」を記憶する。状態Ｃの場合、下側ページが「１」を記憶し、上側ページが「０」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることも可能であることに注意する。
【００９７】
第１プログラミング経路では、セルの閾値電圧レベルは下側の論理ページにプログラムされるビットに従って設定される。そのビットが論理「１」であれば、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるビットが論理「０」であれば、矢印７３０で示したように、セルの閾レベルは状態Ａになるように増大される。
【００９８】
第２プログラミング経路では、セルの閾値電圧レベルは上側論理ページ内にプログラムされるビットに従って設定される。上側論理ページビットが論理「１」を記憶する場合、セルは下側ページビットのプログラミングに依存する状態Ｅ又はＡの一方であり、どちらも上側ページビットは「１」を保持するのでプログラミングは生じない。上側ページビットが論理「０」となる場合、閾値電圧はシフトされる。第１経路によってセルが消去状態Ｅに留まっていれば第２段階でセルをプログラムし、矢印７３４で示したように閾値電圧が状態Ｃ内になるように増大させる。第１プログラミング経路の結果としてセルが状態Ａ内にプログラムされれば、メモリセルはさらに第２経路でプログラムされ、矢印７３２で示したように閾値電圧が状態Ｂ内になるように増大させる。第２経路の結果は、下側ページ用のデータを変更することなく、上側ページの論理「０」を記憶するように指定した状態にセルをプログラムすることである。
【００９９】
一実施形態では、ワードラインを充填するのに十分なデータを書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。十分ではないデータが書き込まれた場合、プログラミング処理は受け取ったデータを用いて下側ページプログラミングを実行できる。次のデータを受け取ったとき、システムは上側ページをプログラムする。さらに別の実施形態では、システムは下側ページをプログラムするモードで書き込みを開始し、ワードラインのメモリセルの全体（又は大部分）を充填するために次の十分なデータを受け取った場合、全シーケンスプログラミングモードに変換する。このような実施形態のさらなる詳細は、発明者Ｓｅｒｇｙ  Ａｎａｔｏｌｉｅｖｉｃｈ  Ｇｏｒｏｂｅｔｓ及びＹａｎ  Ｌｉの米国特許出願第１１／０１３，１２５号、発明の名称「ＰｉｐｅｌｉｎｅｄＰｒｏｇｒａｍｍｉｎｇ ｏｆ Ｎｏｎ-Ｖｏｌａｔｉｌｅ Ｍｅｍｏｒｉｅｓ Ｕｓｉｎｇ Ｅａｒｌｙ Ｄａｔａ」、出願日２００４年１２月１４日で開示されている。その全体は参照することによって本明細書に組み込まれる。
【０１００】
図１５は、不揮発性メモリセルからデータを読み出す一実施形態を説明するフローチャートである。検出モジュールに関する前述の説明は、どのようにしてデータが特定のビットラインから読み出されるのかを説明している。図１５は、システムレベルでの読み出し処理を提供する。ステップ８００では、データ読み出し要求がホスト、制御部、または別の構成要素から受信される。前述したように、不揮発性メモリセルのフローティングゲート（または他の電荷蓄積素子）に蓄積された見かけの電荷のシフトは、隣接するフローティングゲート（または他の隣接する電荷蓄積素子）に蓄積された電荷による電界の結合により生じる。この結合を補償するために、既定のメモリセルの読み出し処理は、隣接メモリセルのプログラム状態を考慮して行われる。ステップ８０２は、隣接するフローティングゲート間の結合にこのような補償をするか否かの判定を含んでいる。いくつかの実施形態では、ステップ８０２は、どの程度の補償を使用するのかについての判定も含んでいる。ステップ８０４では、データ読み出し要求に応じて、読み出し処理が特定のページ、または、他の単位のデータに対して実行される。ステップ８０４の読み出し処理は、ステップ８０２に基づいて隣接するフローティングゲートとの間の結合に対する適切な補償を行うことを含むことができる。一実施形態では、ステップ８０４で読み出されるメモリセルは、共通のワードラインに接続されている（ビットラインは異なる）。
【０１０１】
一実施形態では、ページのデータがプログラムされると、システムは、エラー訂正符号（ＥＣＣ）を作成し、それらのＥＣＣをデータのページとともに書き込む。ＥＣＣ技術は、技術では周知である。使用されるＥＣＣ処理は、既知の任意の適切なＥＣＣ処理を含む場合がある。ページ（または他のデータ単位）からデータを読み出すときに、ＥＣＣはデータにエラーがあるかどうかを判定するために使用される（ステップ８０６）。ＥＣＣ処理は制御部、状態マシン、あるいはシステム内の他の場所で実行できる。データにエラーがない場合、データはステップ８０８でユーザに報告される。ステップ８０６でエラーが検出されると、エラーが訂正可能であるかどうかが判定される（ステップ８１０）。種々のＥＣＣ方法は、データのセット内の所定数のエラーを補正する能力を有している。ＥＣＣ処理がデータを訂正できる場合には、ステップ８１２でＥＣＣ処理によってデータが補正され、ステップ８１４で補正されたデータがユーザに報告される。データがＥＣＣ処理（ステップ８１０）によって訂正可能ではない場合、エラーはステップ８２０でユーザに報告される。いくつかの実施形態では、ステップ８２０はデータの全てまたはサブセットを報告することを含むこともできる。データのサブセットがエラーを有さない場合、そのサブセットを報告することができる。
【０１０２】
図１６は、隣接するフローティングゲート間の結合の補償を潜在的に使用する不揮発性メモリセルからデータを読み出すための別の実施形態を説明するフローチャートである。図１５の処理と図１６の処理の１つの相違点は、図１６の処理は読み出し処理中にエラーがある場合にだけ補償を使用するという点である。
【０１０３】
図１６のステップ８４０では、データ読み出し要求が、ホスト、制御部、または、別の構成要素から受信される。ステップ８４２では、データ読み出し要求に応じて、読み出し処理が特定ページ、または、他の単位のデータに対して実行される。ここでは、ステップ８４２の読み出し処理は、結合に対する補償を含んでいない。ステップ８４４は、データに任意のエラーがあるかどうかの判定を含んでいる。データにエラーがない場合、データはステップ８４６でユーザに報告される。エラーがステップ８４４で検出されると、ステップ８５０で、エラーが訂正可能であるかどうかが判定される。種々のＥＣＣ方法は、データのセットの中の所定数のエラーを訂正する能力を有する。ＥＣＣ処理がデータを訂正できる場合には、ステップ８５２でそのデータの訂正にＥＣＣ処理が使用され、ステップ８５４で訂正されたデータがユーザに報告される。データがＥＣＣ処理（ステップ８５０）によって訂正できない場合には、システムは、隣接するフローティングゲートの間の結合の補償とともに読み出し処理を実行することによって、データを回復しようと試みる。従って、ステップ８６０で、システムは、隣接するフローティングゲート間の結合に対処するために補償を使用するかどうか、及び／または、どの程度の補償を使用するかを決定する。ステップ８６２では、データ読み出し要求に応えて、読み出し処理が特定のページ、または、他の単位のデータに対して実行される。ステップ８６２の読み出し処理は、ステップ８６０に基づいて、隣接するフローティングゲート間の結合に対する適切な補償を使用することによってデータの回復を試みる。
【０１０４】
対象のフローティングゲートに隣接するフローティングゲートは、同じビットライン上にあるが別のワードライン上にある隣接フローティングゲート、同じワードライン上にあるが別のビットライン上にある隣接フローティングゲート、あるいは、隣接するビットライン上かつ隣接するワードライン上にあるために対象フローティングゲートの対角方向にあるフローティングゲートを含んでいる。一実施形態では、説明した結合に対する補償は、これらの前述したセットの隣接フローティングゲートの何れにも適用できる。いくつかの実施形態では、説明した結合に対する補償は、同じワードライン上であるが、別のビットライン上の隣接フローティングゲートに適用する。例えば、メモリセル３６２は、その見かけ閾値電圧がメモリセル３６４と３６６（図７を参照すること）からの結合のために変更された可能性がある。同じビットライン上であるが別のワードライン上の隣接フローティングゲートに起因する結合に対する補償は、発明者Ｙａｎ  Ｌｉ及びＪｉａｎ  Ｃｈｅｎの米国特許出願第１１／０９９，０４９号、「ＲｅａｄＯｐｅｒａｔｉｏｎ Ｆｏｒ Ｎｏｎ-Ｖｏｌａｔｉｌｅ Ｓｔｏｒａｇｅ Ｔｈａｔ Ｉｎｃｌｕｄｅｓ Ｃｏｍｐｅｎｓａｔｉｏｎｆｏｒ Ｃｏｕｐｌｉｎｇ」、出願日２００５年４月５日にさらに詳しく説明されている。その全体は参照により本明細書に組み込まれる。いくつかの実施形態は、同じワードライン上であるが別のビットライン上の隣接フローティングゲート間、及び同じビットライン上であるが別のワードライン上の隣接フローティングゲート間の結合に補償を提供する。
【０１０５】
隣接するフローティングゲート間の結合の量は、隣接フローティングゲートがプログラムされるタイミングに依存する。通常は、同時にプログラムされる２つの隣接フローティングゲートはほとんど、あるいは、まったく結合を有さない。結合が最大量となるのは、一方のフローティングゲートがプログラムされておらず（例えば、消去状態Ｅに留まっており）、他方のフローティングゲートがその後に最大のプログラム状態（例えば状態Ｃにプログラムされる場合――図１３を参照）にプログラムされる２つの隣接フローティングゲート間で発生する可能性が高い。但し、状態Ｅと状態Ａの間には大きなマージンがあるため、結合が生じても、状態Ｅのデータの読み出しでエラーが生じる可能性は低い。結合が次に最大量となるのは、状態Ａにプログラムされた第１のフローティングゲートと、その後に状態Ｃにプログラムされたフローティングゲートの間である。従って、一実施形態では、メモリセルが第１プログラム状態（例えば状態Ａ）にあり、その隣が状態のセット（４つの状態、８つの状態、または別の数の状態）のうちの最大のプログラム状態（例えば状態Ｃ）にあるときにのみ、結合に対する補償が使用される。他の実施形態では、結合に対する補償は、隣接メモリセルが状態Ｂまたは別の状態等の異なる状態にあるときに使用することができる。４つより多いまたは４つ未満の状態を使用するいくつかの実施形態では、結合に対する補償は、隣接メモリセルが結合を生じさせることが判明している状態にあるときに使用できる。同様に、結合に対する補償は、特定の実装形態に応じて適宜に、対象のメモリセルが状態Ａ以外の状態にあるときに使用することができる。
【０１０６】
隣接メモリセルの状態が何らかの技術を使用して検出または取得できる場合、検討中のメモリセルに必要とされる訂正の量は、次の読み出し動作で決定し、調整することができる。特定のメモリセルの状態を知る１つの方法は、読み出し動作を通すことである。しかし、一実施形態では、隣接ビットラインについてセンス増幅器の通信はない。読み出し動作の後も、検討中のメモリセルはその隣接メモリセルの状態を知らない。
【０１０７】
図１７は、メモリセルが状態Ａにあるのか、及び、その隣の１つまたは複数のセルが状態Ｃにあるのかどうかに基づいて、補償を使用する必要があるか否か、及び、どの程度の補償を使用する必要があるかを決定するための一実施形態を説明するフローチャートである。少なくとも２つのシナリオがある。１つのシナリオでは、読み出されている特定のメモリセルが状態Ａにあり、その隣接セルの１つが状態Ｃにある。第２のシナリオでは、読み出されている特定のメモリセルが状態Ａにあり、その隣接セルの内の２つ（異なるビットライン）が状態Ｃにある。図１７の処理は、特定のメモリセル（または特定のビットライン）に対する全ての隣接セルが状態Ｃにあるのか（または７つまたは８つ以上の状態のセットのうちの最高プログラム状態にあるのか）を判定する。この処理は、図１５のステップ８０２及び図１６のステップ８６０を実現するために使用できる。
【０１０８】
図１７のステップ９００では、選択されたワードラインに接続されているメモリセルの全て（またはサブセット）が読み出されて、メモリセルが状態Ｃにあるのか否かが判定される。これは、読み出し比較点Ｖｒｃを使用することにより実現される。Ｖｒｃより大きい閾値電圧を有するそれらのメモリセルは、状態Ｃにあると見なされる。Ｖｒｃ未満の閾値電圧を有するそれらのメモリセルは状態Ｃにない。Ｖｒｃを使用する読み出し動作の最後に、各センス増幅器が、その対応するメモリセルが状態Ｃにあるかどうかをラッチする。克服しなければならない１つの障害は、いくつかの実装形態においては、センス増幅器が隣接するセンス増幅器と通信できないという点である。従って、図７を見ると、ビットラインＢＬ２のセンス増幅器は、センス増幅器ビットラインＢＬ１またはビットラインＢＬ３と通信できない。従って、ＢＬ２のセンス増幅器は、ＢＬ１及びＢＬ３上の隣接メモリセルが状態Ｃにあるかどうかを知らない。ステップ９０２から９１０は、隣接メモリセルが状態Ｃにあるかどうかを示すために実行される。ステップ９０２では、ステップ９００で状態Ｃにあると検出されたメモリセルに接続されているビットラインの全てが、所定の電圧に充電される。１つの例では、状態Ｃのメモリセルのあるビットラインは０．５ボルトに充電される。図９を見ると、これはトランジスタ６１２のゲートに０．５ボルト＋Ｖｔｈ（トランジスタ６１２のＶｔｈ）を印加し、ＲＳＴ信号を低く切り換えることによってＩＮＶ＝０を生じさせることで達成できる。他のセンス増幅器はＩＮＶ＝１でセットアップされていたため、それらのビットラインは充電されない。ＧＲＳ＝０の場合、ビットライン上にアクティブな引き下げはない。Ｃデータのあるビットラインがチャージアップすると、隣接ビットラインは、ビットライン間結合によってそれらのビットラインに結合される。一実装形態では、この結合は総ビットライン電気容量の４０％となる可能性がある。両方の隣接セルがＣデータを有するビットラインの場合、容量結合は総ビットライン電気容量の最大８０％となるであろう。例えば、１つの隣接セルがＣデータであるビットラインの場合、結合により約０．１５ボルト昇圧される。２つの隣接セルがＣデータを有するビットラインの場合、結合により約０．３ボルト昇圧される。
【０１０９】
ステップ９０４では、２つの隣接セルがＣデータを有するビットラインが特定される。一実施形態では、ステップ９０４は、ＢＬＣを０．２＋Ｖｔｈ（トランジスタ６１２のＶｔｈ）まで引き下げることによって達成される。これにより、２つのＣの隣接セルのあるビットラインが、そのトランジスタ６１２をオフさせる。これは、トランジスタ６１２のドレイン側がＶｄｄであり、ソース側が０．３ボルトであるためである。次に、ＳＥＮノードは放電されず、センス増幅器はＬＡＴ＝１をラッチする。１つのＣの隣接セルのあるビットライン、あるいは、Ｃの隣接セルがない他のビットラインは、トランジスタ６１２を導通させる。ビットラインはコンデンサＣｓａよりもはるかに高い電気容量を有するため、ＳＥＮノードは放電し、センス増幅器はＬＡＴ＝０をラッチする。ＳＥＮノードが充電されたのか、放電されたのかの結果は、適切なデータラッチ３９４に記憶される（ステップ９０６）。ステップ９０６の後で、センス増幅器及びビットラインはリセットされ、状態Ｃのメモリセルに接続されているそれらのビットラインは、ステップ９０２に同様に、再びステップ９０８で充電される。ステップ９１０では、１つまたは複数のＣの隣接セルに結合されているビットラインが、ＢＬＣ＝０．１５ボルト＋Ｖｔｈ（トランジスタ６１２のＶｔｈ）を印加することにより検出される。システムは、状態Ｃのメモリセルを有する１つまたは複数の隣接セルのあるそれらのビットラインを検出する。ステップ９１２では、結果がラッチ３９４の１つに記憶される。ステップ９０４で２つの隣接セルが状態Ｃにあるとの結果、及び、ステップ９０８で１つまたは複数の隣接セルが状態Ｃにあるとの結果が記憶されたそれらのビットラインの場合、それらのビットラインが状態Ｃにある２つまたは３つ以上の隣接セルを有すると考えられる。ステップ９０６で２つまたは３つ以上の隣接セルが状態Ｃにあるという結果を記憶せずに、ステップ９１０で１つまたは複数の隣接セルが状態Ｃにあるという結果を記憶したそれらのビットラインの場合、それらのビットラインが状態Ｃにある１つの隣接セルを有すると考えられる。
【０１１０】
図１８は、図１７の処理で実行される動作のいくつかをグラフを使って描くタイミング図である。タイミング図は、ステップ９０２、９０４及び９０６に対応する３つの期間に分けられている。ステップ９０２の間は、信号ＢＬＣは、トランジスタ６１２の閾値電圧が加えられた０．５ボルトに上げられる。これは、選択されたワードラインに接続されているメモリセルに結合されており、かつ、状態Ｃにある全てのビットラインに対して行われる。これらのビットラインが０．５ボルトに引き上げられることが示されている。次に、２つのＣの隣接セルがあるビットラインが、０．３ボルトにひき上げられて、２つの対応する隣接ビットラインに結合される。Ｃの隣接セルがないビットラインは０ボルトのままとなる。このタイムフレームでは、信号ＧＲＳは低い。次にＢＬＣは０ボルトまで引き下げられ、次にトランジスタ６１２の閾値電圧が加えられた０．２ボルトに上げられ、その時点でビットラインが検出される（ステップ９０４）。２つの状態Ｃの隣接セルに隣接するそれらのビットラインはＳＥＮノードを放出しない（ライン９１４参照）。２つの状態Ｃの隣接セルを有さないビットラインはＳＥＮノードを放出する（ライン９１６参照）。適切なビットラインラッチ３８２でデータをラッチした後、データはデータラッチ３９４に転送される。
【０１１１】
図１９は、１つまたは複数のＣの隣接セルを有するメモリセルへの補償を有する読み出し処理の一実施形態を説明する。図１９の処理は、図１５のステップ８０４、及び、図１６のステップ８６２の一実施形態のさらなる詳細を提供する。さらに、ステップ９４０から９５０及び９６４から９７２は、図１６のステップ８４２を実現するために使用できる。図１９の処理は、１つのワードライン及び全ビットライン、あるいは、ビットラインのサブセットを有する１ページのデータに対して実行できる。図１９のステップ９４０では、読み出し基準電圧Ｖｒａが、ページに関連する適切なワードラインに印加される。これにより、読み出し基準電圧Ｖｒａが、そのワードラインに接続されているメモリセルの制御ゲートに印加される。ステップ８４２では、ページに関連するビットラインが検出されて、それらの制御ゲートに対するＶｒａの印加に基づいて、アドレス指定されたメモリセルが導通するか、あるいは導通しないかが判定される。導通するビットラインは、メモリセルがオンになったことを示す。従って、それらのメモリセルの閾値電圧はＶｒａ未満（例えば状態Ｅ）である。ステップ９４４では、ビットラインに対する検出の結果が、それらのビットラインに対する適切なラッチに記憶される。
【０１１２】
ステップ９４６では、読み出し基準電圧Ｖｒｂが読み出し中のページに関連するワードラインに印加される。ステップ９４８では、ビットラインが前述したように検出される。ステップ９５０では、結果が、状態Ｃにある隣接メモリセルを有さないページ内のメモリセルに接続されているビットラインに対する適切なラッチに記憶される。
【０１１３】
この実施形態は、状態Ｃにあるメモリセルに隣接する状態Ａのデータの訂正を試みる。引き起こされる可能性のあるエラーは、メモリセルが、実際には状態Ａにあるときに、増加されて、状態Ｂにあるかのように見える見かけの閾値電圧を有するという点である。ステップ９５２では、第１のオフセットが加えられたＶｒｂが読み出し中のページに関連するワードラインに印加される。ステップ９５４では、ビットラインが前述したように検出される。ステップ９５６では、結果が、状態Ｃにある１つの隣接メモリセルを有するページ内のメモリセルに接続されているビットラインに対する適切なラッチに記憶される。ステップ９５８では、第２のオフセットが加えられたＶｒｂが読み出し中のページに関連するワードラインに印加される。ステップ９６０では、ビットラインが前述したように検出される。ステップ９６２では、結果が、状態Ｃにある２つの隣接メモリセルを有するページ内のメモリセルに接続されているビットラインに対する適切なラッチに記憶される。
【０１１４】
ステップ９６４では、読み出し基準電圧Ｖｒｃが、読み出し中のページと関連するワードラインに印加される。ステップ９６６では、ビットラインが前述したように検出される。ステップ９６８では、結果が全てのビットラインに対して適切なラッチに記憶される。ステップ９７０では、ページ（または他のデータの単位）内の各メモリセルのデータ値が判定される。例えば、メモリセルがＶｒａで導通する場合には、メモリセルは状態Ｅにある。メモリセルが、Ｖｒｂ（または第１のオフセットが加えられたＶｒｂまたは第２のオフセットが加えられたＶｒｂｔ）及びＶｒｃで導通し、Ｖｒａで導通しない場合は、メモリセルは状態Ａにある。メモリセルがＶｒｃで導通するが、ＶｒａまたはＶｒｂ（あるいは何れかのオフセットが加えられたＶｒｂ）で導通しない場合には、メモリセルは状態Ｂにある。メモリセルがＶｒａ、Ｖｒｂ（または何れかのオフセットが加えられたＶｒｂ）またはＶｒｃで導通しない場合は、メモリセルは状態Ｃにある。一実施形態では、データ値がプロセッサ３９２によって判定される。ステップ９７２では、プロセッサ３９２は各ビットラインに対する適切なラッチに判定されたデータ値を記憶する。他の実施形態では、さまざまなレベル（Ｖｒａ、Ｖｒｂ及びＶｒｃ）の検出をさまざまな順序で実施しても良い。
【０１１５】
第１オフセット及び第２オフセットの量は、特定の実装形態に依存している。ここで説明する発明は、第１オフセットまたは第２オフセットの特定の値に依存しない。一実施形態では、第１オフセットは０．１ボルトであり、第２オフセットは０．２ボルトである。しかしながら、他の値が適宜に使用されてもよい。
【０１１６】
読み出し処理の間に異なるビットライン上の隣接メモリセルの間の容量結合を訂正する代わりに、プログラミング時に補償を実行することもできる。システムはプログラミング時にデータを知るため、メモリセルが状態Ｃにプログラムされるように割り当てられた１つまたは複数の隣接セル有する場合に、システムはわずかに低い閾値電圧となるように意図的にそのメモリセルを状態Ａにプログラムすることができる。このようにして、その状態Ａのメモリセルは、状態Ｃに割り当てられた隣接セルがプログラミングを終了した後に正しく読み出される。
【０１１７】
プログラミング処理を不当に減速することなく緊密な閾値電圧分布を達成するための１つの解決策は、２段階のプログラミング処理を使用することである。第１の段階、つまり粗いプログラミング段階では、より高速に閾値電圧を上昇させ、緊密な閾値電圧分布を達成するために払う注意は相対的に少ない。第２の段階、つまり密なプログラミング段階は、より緊密な閾値電圧分布を達成するとともに目標閾値電圧に到達するためにより低速で閾値電圧を上昇させることを試みる。粗／密プログラミング方法論の一例は、米国特許第６，８８８，７５８号に記載されている。その全体は参照により本明細書に組み込まれる。
【０１１８】
粗／密プログラミング方法の一例では、処理は２つの検証レベル、つまり目標検証レベル（密検証レベルとも呼ばれる）と粗検証レベルを使用する。処理は、プログラミング処理の粗段階を実行することによって開始する。メモリセルの閾値電圧が、目標検証レベル以下である粗検証レベルに到達すると、メモリセルは、０ボルトより大きく、禁止電圧未満の値にビットライン電圧を上昇させることによって密プログラミング段階に入る。粗段階の間は、ビットライン電圧は約０ボルトである。メモリセルがプログラムされるのを阻止するために、ビットライン電圧は禁止電圧（例えばＶｄｄ）まで上昇する。密プログラミング段階の間は、ビットライン電圧が０ボルトから中間値に上げられる影響のために、プログラミングは粗プログラミング段階と比較して遅くなる。従って、プログラムステップ毎の閾値電圧の変化は、粗プログラミング段階の間小さくなる傾向がある。メモリセルは、メモリセルの閾値電圧が目標閾値電圧に達するまで密プログラミング段階に維持される。メモリセルの閾値電圧が目標閾値電圧に達すると、ビットライン電圧はＶｄｄ（または他の禁止電圧）に上げられ、メモリセルの追加のプログラミングが阻止される。
【０１１９】
異なるビットライン上で隣接するメモリセルの間の結合の訂正を含むプログラミングのために提案される方法は、前述した粗／密プログラミング処理を使用する。ただし、３つの検証レベルが２つの代わりに使用される。例えば、図２０は、状態Ａのための閾値電圧分布９８０を示す。検証のために使用される目標電圧はＶｖａである。前述した粗／密プログラミングのための従来技術による方法は、Ｖｃａとラベルされる粗い検証レベルを有する。提案された方式は、後述されるように使用される第３の検証レベルＶｉａを追加する。要約すると、粗プログラミング段階の間に、メモリセルは、閾値電圧がＶｃａに到達するまでプログラムされる。状態Ａにプログラムされており、かつ、状態Ｃにプログラムされるメモリセルに隣接するために補償を必要とするメモリセルは、閾値電圧がＶｉａに達するまで密段階でプログラムされる。他のメモリセルは、それらの閾値電圧がＶｖａに到達するまで密段階でプログラムされる。従って、状態Ｃにある隣接セルを有する状態Ａにあるメモリセルは、目標閾値電圧分布９８０より低い閾値電圧を有する可能性がある。従って、結合によりそれらのメモリセルの閾値電圧は閾値電圧分布９８０に上昇する。
【０１２０】
図２１は、隣接セルの何れもが状態Ｃにないために補償を必要としないメモリセルに対する粗／密プログラミングの一例を示すために、閾値電圧と時間、及び、ビットライン電圧と時間の関係のグラフを示している。グラフは、時間ｔ１、ｔ２、ｔ３、ｔ４、及びｔ５では、プログラミングパルスがメモリセルに対する制御ゲートに印加されるとしている。ｔ１、ｔ２、及びｔ３と関連するパルスでは、メモリセルの閾値電圧が増加する。時間ｔ３で、メモリセルの閾値電圧はＶｃａより高くなる。従って、粗プログラミング段階は終了し、密プログラミング段階が開始する。ビットライン電圧は、相応して０ボルトから中間電圧Ｖ１（例えば１ボルト）に上昇される。中間電圧Ｖ１の印加は、０ボルトと対照的に、そのビットラインのプログラミング処理を減速する。時間ｔ５で、メモリセルの閾値電圧がＶｖａ以上となると、ビットライン電圧は抑制電圧（例えばＶｄｄ）に上げられる。
【０１２１】
図２２は、状態Ａにプログラムされるとともに１または複数の隣接セルが状態Ｃにあるために、補償を必要とするメモリセルのグラフを示す。時間ｔ３では、メモリセルの閾値電圧は増加してＶｃａに達する。従って、ビットライン電圧は、中間電圧Ｖ１に上昇する。時間ｔ４では、メモリセルの閾値電圧が、Ｖｃａより大きくＶｖａ未満であるＶｉａに到達する。従って、メモリセルは、ビットライン電圧がＶｄｄに上昇することによって、追加のプログラミングからロックアウトされる。
【０１２２】
他の実施形態では、Ｖ１に加えて複数の中間電圧を使用できることに留意する。例えば、補償を受けるメモリセルは、１つの中間ビットライン電圧を使用することができ、補償を受けないメモリセルは、別の中間ビットライン電圧を使用することができる。他の実施形態では、さまざまなビットラインが異なる中間電圧を使用することができる。
【０１２３】
図２３は、図２１と図２２のグラフに基づくプログラミングの処理の一実施形態を説明するフローチャートである。ステップ７００では、「データロード」が制御部によって発行され、制御回路によって受信される。ステップ１００２では、ページアドレスを指定するアドレスデータが、制御部またはホストから復号部３１４に入力される。ステップ１００４では、アドレス指定されたページに対するプログラムデータのページ（または他のデータ単位）がプログラミングのためのデータバッファに入力される。そのデータは、ラッチの適切なセットにラッチされる。ステップ１００６では、「プログラム」コマンドが制御部によって状態マシン３１２に発行される。ステップ１００８では、結合を補償するか否かかに関する判定がされる。例えば、制御部３５０、制御回路網３１０、検出ブロック４００、または、別の構成要素が、特定のメモリセルが状態Ｃにプログラムされており、その隣接セルの１つまたは複数（あるいは２つまたは３つ以上）が状態Ｃにプログラムされるために、その特定のメモリセルがプログラミング処理の間に補償を受ける必要があるかどうかを判断する。制御部３５０及び制御回路網３１０は全てのプログラムデータを認識しているため、一実施形態においては、システムは補償が必要かどうかを自動的に認識する。他の実施形態では、各ビットラインに対する各データラッチが、プログラムされるデータを知っている。従って、検出モジュール４００は、いずれかのビットラインが状態Ｃにプログラムされるデータを有する隣接セルを有するかどうかを判断するために、図１７のステップ９０８、９１０及び９１２を実行できる。有する場合には、隣接セルを有するそれらのビットラインは補償のためにマークされる。図２３の一実施形態では、１つまたは複数の隣接セルが状態Ｃであるメモリセルに与えられる補償値は１つだけである。他の実施形態では、状態Ｃの隣接セルが１つであるか、状態Ｃの隣接セルが２つであるかに応じて値の異なる補償を提供できる。
【０１２４】
図２３のステップ１０１０では、初期パルスが初期値に設定され、プログラムカウンタが初期値に設定され、ビットライン電圧が初期値に設定される。プログラムされるメモリセルの場合、ビットライン電圧は０ボルトに設定される。プログラムされないメモリセルの場合、ビットラインはＶｄｄに設定される。初期電圧の指定は、ラッチにも記憶できる。いくつかの実施形態では、初期ビットライン値は、プログラムパルスステップ１０１２（後述される）において適用できる。
【０１２５】
ステップ１０１２では、プログラムパルスが適切なワードラインに適用される。ステップ１０１４では、検証処理が実行される。メモリセルが粗プログラミング段階にある場合には、ステップ１０１４の検証処理が、メモリセルの閾値電圧が粗検証レベルに到達したか否かを判定するために使用される。メモリセルが密プログラミング段階にある場合には、メモリセルに対する閾値電圧は、補償を必要とするメモリセルについて、目標閾値電圧（例えばＶｒａ）または中間検証レベル（例えばＶｉａ）のどちらかと比較される。ステップ１０１４の詳細は後述される。ステップ１０１６では、プログラムされる全てのメモリセルのステータスが、それらが全て検証されたことを示しているか否かが判定される。それらがすべて検証された場合には、プログラミング処理の成功がステップ１０１８で報告される。それらが全て検証されていない場合には、ステップ１０２０で、プログラムカウンタＰＣが、プログラム限度値ＰＣｍａｘに対してチェックされる。プログラムカウンタがＰＣｍａｘ以上である場合には、プログラム処理は失敗となり、失敗のステータスがステップ１０２２で報告される。プログラムカウンタがＰＣｍａｘ未満である場合には、ステップ１０２４で、プログラム電圧（Ｖｐｇｍ）の大きさがステップサイズ分増加され、プログラムカウンタＰＣが増分される。ステップ１０２４後に、処理はステップ１０１２にループバックし、次のＶｐｇｍパルスが印加される。
【０１２６】
図２４は、図２３の検証ステップ１０１４の一実施形態を説明するフローチャートである。ステップ１０６０では、システムは、メモリセルが粗プログラミング段階にあるのか、密プログラミング段階にあるのかを判定する。図２３の処理は、メモリセルのグループ（例えば、共通のワードラインに接続されているメモリセルのページ）に対して実行される高レベル処理を説明していることに留意する。図２４の処理は、プログラムされている特定のメモリセルごとに個別に実行される。一実施形態では、検出ブロックが、特定のメモリセルが粗プログラミング段階にあるのか密プログラミング段階にあるのかの結果を記憶するラッチを備えている。メモリセルが粗プログラミング段階にある場合には、検証処理はステップ１０６２で粗検証レベル（例えば、Ｖｃａ）で実行される。すなわち、センス増幅器が使用されて、メモリセルの閾値電圧が適切な粗検証レベルに達したかどうかが判定される。例えば、メモリセルが状態Ａにプログラムされている場合、センス増幅器は、前述したように、メモリセルの閾値電圧がＶｃａに達したかどうかをテストする。閾値電圧が粗検証レベルに到達すると（ステップ１０６４）、メモリセルの粗プログラミング段階が完了する。従って、ステップ１０６６で、ビットライン電圧が中間電圧Ｖ１に引き上げられ、メモリセルは次のプログラミングパルスで密プログラミング段階に入る。ステップ１０６６の後に、処理はステップ１０８０（後述される）に続き、閾値電圧が密検証レベル（あるいは中間検証レベル）を超えるか否かが判定される。メモリセルの閾値電圧が粗検証レベルに到達していない場合には、ビットライン電圧はステップ１０６８で現在のレベルに留まり、メモリセルに粗プログラミング段階が続行される。
【０１２７】
ステップ１０６０でメモリセルが密プログラミング段階にあると判断されると、ステップ１０８０で、メモリセルが状態Ａにプログラムされており、結合の補償を必要とするかどうかが判定される。必要としない場合には、ステップ１０８２で、密検証レベル（例えば、目標検証レベルＶｖａ、ＶｖｂまたはＶｖｃ）を使用して検証処理が実行される。補償が必要とされる場合には、ステップ１０９０で検証処理が中間検証レベルＶｉａを使用して実行される。メモリセルの閾値電圧が適切な検証レベルを上回ると（ステップ１０８４）、ビットライン電圧をＶｄｄに上げることによって、メモリセルはステップ１０８８で追加のプログラミングからロックアウトされる。メモリセルの閾値電圧が検証レベルを上回っていない場合は（ステップ１０８４）、ビットライン電圧はステップ１０８６で現在のレベルで維持され、密プログラミング段階が続行する。
【０１２８】
セルフローティングゲート間検証の影響は、前述したようにプログラムシーケンス中に訂正できる。それは、読み出し動作の間にも訂正できる。以下の説明は、検出処理に修正率としてビットライン間結合の影響を組み込み、その結果、読み出しが隣接メモリセルの状態に応じて修正できる読み出しシーケンスを説明している。図２５と図２６は、隣接メモリセルからの結合を経験している特定のメモリセルに対して補償を提供することを可能にするデータの読み出し処理の実施形態を説明する。ステップ１１００では、全ビットラインが読み出されて、それらのビットライン、及び、選択されたワードラインに接続されるメモリセルが状態Ｃであるか否かが判定される。これは、読み出し比較点としてＶｒｃを使用して読み出し動作を実行することによって実行される。状態Ｃにあるメモリセルを有するそれらのビットラインは、メモリセルが状態Ｃにあるとの結果をラッチする。読み出し動作は図１８に示されている。ステップ１１０２では、状態Ｃ以外の状態にあるメモリセルのあるそれらのビットラインが充電される。一実施形態では、それらのビットラインは０．５ボルトに充電される。ステップ１１０２でビットラインが充電された後に、状態Ｃのメモリセルに接続されるビットラインが、ステップ１１０４で、０．２５ボルトと０．４ボルトの間に充電される。ステップ１１０４で状態Ｃのメモリに接続されているビットラインを充電すると、ステップ１１０２で充電されたビットラインが０．５ボルトより高い電圧にカップルドアップされる。例えば、図２６は、状態Ｃにあるメモリセルを有さないそれらのビットラインを表すビットラインＢＬｎを示す。グラフは、ステップ１１０２の間に０．５ボルトに充電されるビットラインを示す。ビットラインＢＬｎ＋１は状態Ｃのメモリセルに接続され、ＢＬｎ＋１はＢＬｎに隣接する。ステップ１１０４の間に、ＢＬｎ＋１は約０．４ボルトに充電される。次にビットラインＢＬｎは、破線１１２０によって描かれているように、０．５より高い電圧に結合される。ステップ１１０４で充電された隣接セルに隣接していないビットラインは、ライン１１２２で描かれているように０．５ボルトのままとなる。図２５のステップ１１０６では、全てのビットライン（またはビットラインのサブセット）が検出される。Ｃの隣接セルを有するビットラインは、より高いビットライン電圧を有すると検出される。高いビットライン電圧のために、ビットラインは、低い閾値電圧の出現を示すより高い電流を伝導する。これは、隣接するセルの間での結合を補償する。Ｃの隣接セルを有するセルは、隣接セルがプログラムされた後に、元のプログラムレベルよりも高い浮動電圧に結合される。フローティングゲート間結合補償を伴うこの読み出しは、セルの元のプログラムレベルを正しく読み戻す。この読み出し訂正は、複数の読み出し動作によるタイムペナルティを生じさせることなく行われる。１つの読み出し動作は、訂正を必要とするメモリセルと訂正を必要としないメモリセルの結果を取得する。
【０１２９】
前述した一実施形態では、セルソースノイズが除去されているため複数の検出ストローブがある場合がある。図２５と図２６に関して前述した処理は、全ての送信ストローブの間、または、後の検出ストローブの間に適用できる。例えば、２つのストローブのある一実施形態では、第１のストローブが図２５及び図２６の処理を使用してよいが、第２のストローブは図２５及び図２６の処理を使用しなくてよい。
【０１３０】
前記説明は、プログラム中、及び読み出し中にフローティングゲート結合を補償するための処理を説明する。いくつかの実施形態では、補償は、プログラミングと読み出しの両方の間に実行できる。しかしながら、大部分の実施形態では、補償はプログラミング中、または、読み出し中の何れかで実行され、両方では実行されない。読み出し中に補償を実行するのか、または、プログラミング中に補償を実行するのかの決定は、メモリシステムの使用に基づいてすることができる。例えば、メモリシステムが、データがあまりプログラムされないが何度も読み出されるホストで使用される場合には、プログラム中に補償する方がよい。反対に、ホストがプログラムを何度も実行し、読み出しをあまり実行しない場合には、読み出し処理の間に補償を実行する方がよい。
【０１３１】
一実施形態では、メモリシステムは、読み出し処理の間及びプログラミング処理の間に補償を実行するための技術を含むように製造できる。製造工程の間、または、製造工程の後のなんらかの時点で、メモリシステムは、読み出し処理の間だけ、または、プログラミング処理の間だけのどちらかに補償を実行するように構成できる。
【０１３２】
図２７は、メモリシステムを、読み出し処理の間、または、プログラミング処理の間のどちらかで補償を実行するように構成するための処理を説明するフローチャートを示す。ステップ１２００では、メモリシステムは、読み出し中に補償を実行するため、及び、プログラミング中に補償を実行するための機能を備えて製造される。これは、半導体ウェハを製造することを含んでよい。すなわち、ステップ１２００は、既知の工程を使用してウェハをパッケージングすることも含むことができる。パッケージは、前述した構成を実行するためのスイッチを有してよい、あるいは、有さなくてよい。集積回路上の記憶素子に接続されているこのようなスイッチを追加するための技術は既知である。ステップ１２０２では、ステップ１２００で製造されるメモリシステムの一部であるフラグ（補償フラグ）が、補償が読み出し中に実行される必要があるのかどうか、あるいは、補償がプログラム中に実行される必要があるのかどうかを示すために、使用目的に基づいて設定される。フラグは、製造工程の間、製造工程の後、試験処理の間、あるいは装置が使用されている間に設定できる。ステップ１２０４では、装置を使用する間に、システムが補償フラグをチェックする。読み出し中に補償を実行するように補償フラグが設定された場合は、ステップ１２０６でメモリシステムが読み出し処理中に結合に対する補償をする。補償フラグがプログラミングのために設定されると、メモリがプログラミング処理中に結合に対する補償をする（ステップ１２０８）。
【０１３３】
フラグはステップ１２０２で多くの異なる方法で設定できる。製造工程またはテスト処理の間に、ＲＯＭヒューズを、補償が読み出し中に実行されるべきなのか、あるいはプログラミングの間に実行されるべきなのかを示すために設定できる。他の実施形態では、フラグの結果を記憶するための他の手段（例えば、不揮発性アレイでのメモリセル、フリップフロップ、または他の記憶装置）が、製造工程の間または後で実装及び／または設定できる。フラグはテスト処理の間、または使用中にも設定できる。さらに、集積回路のパッケージは、メモリカードをホストの中に挿入する前にユーザによって設定できる。
【０１３４】
いくつかの実施形態では、補償フラグは、メモリシステムがホストの中に挿入された後にステップ１２０２で設定できる。図２８から図３１がこのような構成の例を示す。図２８のステップ１３００では、メモリシステムはホストにインストールされる。ホストの例は、デジタルカメラ、音楽プレーヤ、携帯電話、携帯用計算装置、または他の計算装置を含む場合がある。例示すると、音楽プレーヤは、プログラムよりはるかに頻繁に読み出しが行われると考えられる。従って、音楽プレーヤはプログラミング中に補償をしてよい。他方、デジタルカメラはより頻繁にプログラムする可能性があるため、読み出し処理中に補償処理を提供する方がより適切である場合がある。図２８のステップ１３０２では、ホストは適性を制御部に通知する。すなわち、ホストは、いつ補償を実行するのがよいかを既知のプロトコルを使用して制御部に告げることができることを理解するように前もってプログラムされる。ステップ１３０４では、制御部は、ホストから適性を受信し、ホストから受信したその適性に基づいて、補償フラグを設定する（メモリセルまたは他の記憶装置に記憶される）。
【０１３５】
図２９は、メモリシステムを構成する別の実施形態のフローチャートを示す。ステップ１３２０では、メモリシステムがホストにインストールされる。ステップ１３３２では、ユーザが適性を選択できる。一実施形態では、ユーザは、機械スイッチを動かすことによって、あるいは、ホストのユーザインタフェースで適性を選択する。例えば、デジタルカメラのユーザは、読み出し中に補償を実行することを選択し、音楽プレイ装置のユーザはプログラミング中に補償を実行することを選ぶことができる。ステップ１３３４では、ホストはその適性を制御部に通知する。ステップ１３３６では、制御部は、ホストから受け取られた適性に基づいて補償フラグを設定する。
【０１３６】
図３０は、メモリシステムを構成するための処理の別の実施形態を説明するフローチャートを示す。ステップ１３３０では、メモリシステムがホストにインストールされる。ステップ１３３２では、制御部が、ホストがそれ自体を識別することを要求する。例えば、ホストが、それがデジタルカメラ、音楽プレーヤ、ＰＤＡ、携帯電話等であることを示す。制御部はその情報を受信し、ステップ１３３４でホスト情報の表にアクセスする。表は装置の型または種別ごとに、補償フラグ設定方法を特定する。その表とホストから受信した情報に基づいて、制御部は構成を選ぶ（例えば、読み出し中に補償を実行するのか、あるいはプログラミング中に実行するのかを選ぶ）。ステップ１３３６では、制御部は、ステップ１３３４で決定された構成に基づいて、フラグを設定する。
【０１３７】
図３１は、メモリシステムを構成するための処理の別の実施形態を説明するフローチャートである。ステップ１３６０では、メモリシステムがホストにインストールされる。ステップ１３６２で、ホストは、複数のファイルをメモリシステムに記憶させる。所定時間後に所定量のファイルがメモリシステムに記憶された後に、あるいは、ホストまたはユーザからのコマンド受信時に、制御部はステップ１３６４でメモリシステムに記憶されている最も代表的なファイルタイプを特定する。例えば、１０個のファイルが記憶され、その内の８個が音楽ファイルである場合、制御部は、最も代表的なファイルが音楽ファイルであることを決定する。ステップ１３６６では、制御部が代表的なファイルタイプに基づいて構成を決定する。例えば、表は、ファイルタイプを一覧表示するメモリシステムに記憶することができ、ファイルタイプごとに補償フラグのための値が記憶される。フラグの値は、プログラミング中に補償を実行するのか、あるいは読み出し中にプログラムを実行するのかを示すことができる。ステップ１３６８では、制御部はステップ１３６６で決定された構成に基づいて補償フラグを設定する。
【０１３８】
本発明の前記の詳細な説明は、図解及び説明のために提示された。網羅的となること、あるいは本発明を開示されているまさにその形式に制限することは意図されていない。前記教示を鑑みて多くの変型及び変形が可能である。説明した実施形態は、本発明の原理及びその実際的な応用例を最もよく説明し、それにより当業者が多様な実施形態で、及び意図された特定の用途に適するような多様な変型で本発明を最もうまく活用できるようにするために選ばれた。本発明の範囲が本明細書に添付される請求項により定められることが意図される。
【図１】
2009545092.tif 000003
【図２】
2009545092.tif 000004
【図３】
2009545092.tif 000005
【図４】
2009545092.tif 000006
【図５】
2009545092.tif 000007
【図６】
2009545092.tif 000008
【図７】
2009545092.tif 000009
【図８】
2009545092.tif 000010
【図９】
2009545092.tif 000011
【図１０】
2009545092.tif 000012
【図１１】
2009545092.tif 000013
【図１２】
2009545092.tif 000014
【図１３】
2009545092.tif 000015
【図１４】
2009545092.tif 000016
【図１５】
2009545092.tif 000017
【図１６】
2009545092.tif 000018
【図１７】
2009545092.tif 000019
【図１８】
2009545092.tif 000020
【図１９】
2009545092.tif 000021
【図２０】
2009545092.tif 000022
【図２１】
2009545092.tif 000023
【図２２】
2009545092.tif 000024
【図２３】
2009545092.tif 000025
【図２４】
2009545092.tif 000026
【図２５】
2009545092.tif 000027
【図２６】
2009545092.tif 000028
【図２７】
2009545092.tif 000029
【図２８】
2009545092.tif 000030
【図２９】
2009545092.tif 000031
【図３０】
2009545092.tif 000032
【図３１】
2009545092.tif 000033
【手続補正書】
【提出日】平成21年3月13日(2009.3.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性記憶装置を動作させる方法であって、
不揮発性記憶素子のセットが第１状態にあるか否かを判定するステップと、
前記判定によって第１状態にあると判定された不揮発性記憶素子の制御ラインの第１セットを充電するステップと、
第１状態ににない不揮発性記憶素子の制御ラインの第２セットを検出して、充電する前記ステップによって制御ラインの第１セットが制御ラインの第２セットに十分に結合したか否かを判定することによって、どの不揮発性記憶素子のセットが第１状態にある隣接不揮発性記憶素子を有しているかを判定するステップ、
を有し、
制御ラインの第１セットに十分に結合された制御ラインの第２セットに接続されている不揮発性記憶素子が、第１状態にある少なくとも１つの隣接不揮発性記憶素子を有することを特徴とする方法。
【請求項２】
第１状態にある１つまたは複数の隣接不揮発性記憶素子を有する不揮発性記憶素子のセットを読み出すときにフローティングゲート結合に対する補償を使用することを特徴とする不揮発性記憶素子のセットを読み出すステップをさらに有することを特徴とする請求項１に記載の方法。
【請求項３】
前記検出が、
制御ラインの第２セットが第１所定レベルより高い値に充電されたか否かを判定することによって、制御ラインの第２セットが制御ラインの第１セットに結合しているか否かを検出するステップと、
制御ラインの第２セットが第１所定レベルより高い値に充電されたか否かの結果を記憶するステップ、
を有することを特徴とする請求項２に記載の方法。
【請求項４】
第２所定レベルを使用して、充電する前記ステップと、どの不揮発性記憶素子のセットが第１状態にある隣接不揮発性記憶素子を有しているかを判定する前記ステップとを繰り返し、
第１所定レベルが、第１状態にある隣接不揮発性記憶素子を第１の数だけ有する不揮発性記憶素子を特定するのに用いられ、
第２所定レベルが、第１状態にある隣接不揮発性記憶素子を第２の数だけ有する不揮発性記憶素子を特定するのに用いられる、
ことを特徴とする請求項３に記載の方法。
【請求項５】
不揮発性記憶素子のセットを読み出す前記ステップが、フローティングゲート結合のための補償を行わずに、第１状態にある１つまたは複数の隣接不揮発性記憶素子を有さない不揮発性記憶素子のセットを読み出すステップを有することを特徴とする請求項１〜４のいずれか一項に記載の方法。
【請求項６】
不揮発性記憶素子のセットが第１状態にあるか否かを判定する前記ステップが、不揮発性記憶素子のセットが３つ以上のプログラム状態と１つの消去状態のセットに対する読み出し比較電圧のセットのうちの最大の読み出し比較電圧より大きい閾値電圧を有するか否かを判定するステップを有しており、
不揮発性記憶素子のセットが、前記最大の読み出し比較電圧より大きい閾値電圧を有する不揮発性記憶素子の第１サブセットと、前記最大の読み出し比較電圧未満の閾値電圧を有する不揮発性記憶素子の第２サブセットを有していることを特徴とする請求項１〜５のいずれか一項に記載の方法。
【請求項７】
第１状態ににない不揮発性記憶素子の制御ラインの第２セットを検出して、前記充電によって制御ラインの第１セットが制御ラインの第２セットに十分に結合したか否かを判定する前記ステップが、制御ラインの第２セットのうちの１本の制御ラインと通信するコンデンサがその１本の制御ラインを放電させるために充電するか否かを判定するステップを有することを特徴とする請求項１〜６のいずれか一項に記載の方法。
【請求項８】
不揮発性記憶素子のセットが第１状態にあるか否かを判定する前記ステップが、不揮発性記憶素子のセットが７つ以上のプログラム状態と１つの消去状態のセットに対する読み出し比較電圧のセットのうちの最大の読み出し比較電圧より大きい閾値電圧を有するか否かを判定するステップを有しており、
不揮発性記憶素子のセットが、前記最大の読み出し比較電圧より大きい閾値電圧を有する不揮発性記憶素子の第１サブセットと、前記最大の読み出し比較電圧未満の閾値電圧を有する不揮発性記憶素子の第２サブセットを有していることを特徴とする請求項１に記載の方法。
【請求項９】
不揮発性記憶システムであって、
不揮発性記憶素子と、
不揮発性記憶素子と通信する制御ラインと、
不揮発性記憶素子及び制御ラインと通信する管理回路、
を有し、
管理回路が、
不揮発性記憶素子が第１状態にあるかどうかを判定し、
第１状態にあると判定された不揮発性記憶素子の制御ラインの第１サブセットを充電し、
第１状態ににない不揮発性記憶素子の制御ラインの第２サブセットを検出して、制御ラインの第１サブセットを充電する前記ステップによって制御ラインの第１サブセットが制御ラインの第サブ２セットに十分に結合したか否かを判定することによって、どの不揮発性記憶素子が第１状態にある隣接不揮発性記憶素子を有しているかを判定する、
ことを特徴とする不揮発性記憶システム。
【請求項１０】
管理回路が、第１状態にある１つまたは複数の隣接不揮発性記憶素子を有する不揮発性記憶素子を読み出すときにフローティングゲート結合に対する補償を使用して不揮発性記憶素子を読み出すことを特徴とする請求項９に記載の不揮発性記憶システム。
【請求項１１】
管理回路が、フローティングゲート結合のための補償を行わずに、第１状態にある隣接不揮発性記憶素子を有さない不揮発性記憶素子を読み出すことを特徴とする請求項１０に記載の不揮発性記憶システム。
【請求項１２】
管理回路が、３つのプログラム状態と１つの消去状態のセットに対する読み出し比較電圧のセットのうちの最大の読み出し比較電圧より大きい閾値電圧を不揮発性記憶素子が有するか否かを判定することによって、不揮発性記憶素子が第１状態にあるか否かを判定することを特徴とする請求項１１に記載の不揮発性記憶システム。
【請求項１３】
管理回路が、制御ラインの第２セットが第１所定レベルより高い値に充電されたか否かを判定し、制御ラインの第２セットが第１所定レベルより高い値に充電されたか否かの結果を記憶することによって、制御ラインの第２サブセットを検出することを特徴とする請求項９〜１２のいずれか一項に記載の不揮発性記憶システム。
【請求項１４】
管理回路が、充電と、制御ラインの第２サブセットが第２所定レベルより高い値に充電されたか否かを判断するための制御ラインの第２サブセットの検出を繰り返し、
第１所定のレベルが、第１状態にある隣接不揮発性記憶素子を第１の数だけ有する不揮発性記憶素子を特定するのに用いられ、
第２所定のレベルが、第１状態にある隣接不揮発性記憶素子を第２の数だけ有する不揮発性記憶素子を特定するのに用いられる、
ことを特徴とする請求項１３に記載の不揮発性記憶システム。
【請求項１５】
制御ラインの第１サブセットと制御ラインの第２サブセットがビットラインであり、
各不揮発性記憶素子が１本の共通ワードラインに接続されており、
管理回路が、制御回路、電源制御回路、復号部、状態マシン、コントローラ及び検出ブロックのいずれか、あるいは、組み合わせを有していることを特徴とする請求項１４に記載の不揮発性記憶システム。
【請求項１６】
管理回路が、制御ラインの第２サブセットのうちの少なくとも１本の制御ラインと通信するコンデンサが前記一本の制御ラインを放電させるために充電するか否かを判定することによって、制御ラインの第２サブセットのうちの少なくとも１本の制御ラインを検出することを特徴とする請求項９または１５に記載の不揮発性記憶システム。
【請求項１７】
前記不揮発性記憶素子がマルチ状態フラッシュメモリ装置であることを特徴とする請求項９または１６に記載の不揮発性記憶システム。
【国際調査報告】
2009545092.tif 000034
2009545092.tif 000035