(57)【要約】  データが目標メモリセルにプログラムされ、目標メモリセルから読み出される。データを読み出す際に、温度補償が提供される。温度補償は、温度情報と１以上の隣接メモリセルの状態とに基づく。一実施形態では、データが目標メモリセルから読み出される際に、システムは、現在の温度を検知して、現在の温度と、データがプログラムされた時点の温度との温度差を決定する。温度差が閾値よりも大きければ、データを読み出すプロセスは、温度情報と隣接状態情報とに基づいて温度補償を提供するステップを含む。一代替手段では、温度補償を提供するための決定は、温度差以外の諸条件によってトリガーされ得る。
2013520760.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性記憶装置を動作させる方法であって、
不揮発性記憶素子にデータをプログラムすること、及び、
前記プログラミングの後に、前記不揮発性記憶素子から前記データを読み出すことと、を備え、
前記データを読み出すことは、温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて温度補償を提供することを含む、方法。
【請求項２】
前記データを読み出すことは、温度差が閾値よりも大きいと判断することを含み、
前記温度差は、現在の温度と、前記データをプログラムする時点の温度と、の差であり、
温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて温度補償を提供することは、少なくとも１つの隣接不揮発性記憶素子に関する状態情報と、前記温度差が前記閾値よりも大きいと判断することに応じた前記温度差と、に基づいて、補償を提供することを含む、
請求項１に記載の方法。
【請求項３】
温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて温度補償を提供することは、
温度に基づいて初期補償値を決定すること、及び、
少なくとも１つの隣接不揮発性記憶素子に関する前記状態情報に基づいて前記初期補償値を調整すること、
を含む、請求項１または２に記載の方法。
【請求項４】
温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて温度補償を提供することは、温度と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて補償値を決定することを含む、
請求項１または２に記載の方法。
【請求項５】
前記データを読み出すことは、
前記不揮発性記憶素子から情報を検知すること、
前記検知の後に、前記温度補償を適用すること、及び、
前記検知及び前記適用に基づいて前記データを決定すること、
を含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
データを読み出すことは、
前記温度補償を適用すること、及び、
前記温度補償の前記適用の後に、前記温度補償の前記適用に基づいて前記不揮発性記憶素子から情報を検知すること、
を含む、請求項１から４のいずれか一項に記載の方法。
【請求項７】
温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて温度補償を提供することは、温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいてエラー訂正符号復号化プロセスのためのＬＲＲテーブルを調整することを含む、請求項１から６のいずれか一項に記載の方法。
【請求項８】
温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて温度補償を提供することは、前記データの前記読み出しのための読み出し比較レベルを調整することを含み、
前記読み出し比較レベルは、温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて調整される、
請求項１から６のいずれか一項に記載の方法。
【請求項９】
温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて温度補償を提供することは、温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいてエラー訂正符号復号化プロセスを調整することを含む、請求項１から６のいずれか一項に記載の方法。
【請求項１０】
読み出すことは、
現在の温度情報を決定すること、
前記データのプログラミングからの温度情報にアクセスすること、
前記現在の温度情報と、前記データのプログラミングからの前記温度情報と、の温度差を決定すること、
１以上の目標不揮発性記憶素子に対して、１以上の隣接不揮発性記憶素子に関する状態情報を決定すること、
前記温度差が閾値よりも大きいと判断すること、
前記温度差と、前記温度差が前記閾値よりも大きいと判断することに応じた適切な隣接不揮発性記憶素子に関する状態情報と、に基づいて、１以上の目標不揮発性記憶素子のための温度補償を適用すること、
目標不揮発性記憶素子から情報を検知すること、及び、
前記検知と前記温度補償とに基づいてデータを報告すること、
を含む、請求項１に記載の方法。
【請求項１１】
読み出すことは、
現在の温度情報を決定すること、
前記データのプログラミングからの温度情報にアクセスすること、
前記現在の温度情報と、前記データのプログラミングからの前記温度情報と、の温度差を決定すること、
前記受け取られた現在の温度情報に基づいて読み出しパラメータを調整すること、
前記読み出し動作パラメータを用いて前記不揮発性記憶素子から初期情報を検知すること、
前記温度差と、前記不揮発性記憶素子に関する１以上の隣接不揮発性記憶素子の状態を表す情報と、に基づく温度補償を用いて、前記初期情報から前記不揮発性記憶素子に記憶されたデータを特定すること、及び、
前記特定されたデータを報告すること、
を含む、請求項１に記載の方法。
【請求項１２】
不揮発性記憶素子と、
前記不揮発性記憶素子と通信する１以上の管理回路と、を備え、
前記１以上の管理回路は、温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて温度補償を提供することによって、前記不揮発性記憶素子からデータを読み出す、不揮発性記憶システム。
【請求項１３】
前記１以上の管理回路は、
温度差が閾値よりも大きいと判断し、
前記温度差が前記閾値よりも大きいと判断することに応じて、温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて温度補償を提供し、
前記温度差は、前記データのプログラミングの際の温度と、前記データを読み出す際の温度と、の差であり、
前記温度情報は、前記温度差である、
請求項１２に記載の不揮発性記憶システム。
【請求項１４】
前記１以上の管理回路は、温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいてエラー訂正符号復号化プロセスを調整することによって、温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて温度補償を提供する、
請求項１２または１３に記載の不揮発性記憶システム。
【請求項１５】
前記１以上の管理回路は、前記データを読み出すための読み出し比較レベルを調整することによって、温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて温度補償を提供する、
請求項１２または１３に記載の不揮発性記憶システム。
【請求項１６】
前記１以上の管理回路は、
現在の温度情報を決定し、
前記データのプログラミングからの温度情報にアクセスし、
前記現在の温度情報と、前記データのプログラミングからの温度情報と、の温度差を決定し、
１以上の隣接不揮発性記憶素子に関する状態情報を決定し、
前記温度差と適切な隣接不揮発性記憶素子に関する前記状態情報とに基づいて１以上の目標不揮発性記憶素子のための温度補償を決定して適用し、
目標不揮発性記憶素子から情報を検知し、
前記検知と前記温度補償とに基づいてデータを報告することによって、
前記不揮発性記憶素子からデータを読み出す、
請求項１２に記載の不揮発性記憶システム。
【請求項１７】
前記１以上の管理回路は、
現在の温度情報を決定し、
データのプログラミングからの温度情報にアクセスし、
前記現在の温度情報と、データのプログラミングからの温度情報と、の温度差を決定し、
前記受け取られた現在の温度情報に基づいて１以上の動作パラメータを調整し、
前記１以上の動作パラメータを用いて、前記不揮発性記憶素子から初期情報を検知し、
前記温度差と、前記不揮発性記憶素子に対する１以上の隣接不揮発性記憶素子の状態を表す情報と、に基づく温度補償を用いて、前記初期情報から前記不揮発性記憶素子に記憶されたデータを特定し、
前記特定されたデータを報告することによって、
前記不揮発性記憶素子からデータを読み出す、
請求項１２に記載の不揮発性記憶システム。
【請求項１８】
前記１以上の管理回路は、
各データ状態のための複数の比較値において読み出し動作を実行し、
前記読み出し動作、温度情報、及び、隣接状態情報に基づく特定のデータ値を表すデータの各ビットのための確率を決定することによって、
前記不揮発性記憶素子からデータを読み出す、
請求項１２に記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性記憶装置に関する。
【背景技術】
【０００２】
半導体メモリは、様々な電子デバイスで使われることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナル・デジタル・アシスタント、モバイルコンピュータ、非モバイルコンピュータ、及び他の装置に使用されている。電気的消去・再書込み可能型読取専用メモリ（ＥＥＰＲＯＭ）とフラッシュメモリは、最も普及している不揮発性半導体メモリである。
【０００３】
ＥＥＰＲＯＭとフラッシュメモリは、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されているフローティングゲートを採用している。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。フローティングゲートの上に、そのフローティングゲートから絶縁されている制御ゲートが設けられている。トランジスタの閾値電圧は、フローティングゲート上に保持されている電荷量によって制御される。即ち、そのソースとドレインの間の導通を可能にすべくトランジスタをオンするために制御ゲートに印加すべき電圧の最小量は、そのフローティングゲート上の電荷量レベルにより制御される。
【０００４】
ＥＥＰＲＯＭやフラッシュメモリデバイスにプログラミングを行う場合、典型的には、制御ゲートにプログラム電圧が印加され、ビットラインが接地される。チャネルからの電子がフローティングゲートへ注入される。フローティングゲートに電子が蓄積されると、フローティングゲートが負値に帯電し、メモリセルの閾値電圧が上昇し、メモリセルがプログラムされた状態となる。プログラミングに関するさらなる情報は、「Source Side Self Boosting Technique for Non-Volatile Memory」と題した米国特許第６，８５９，３９７号、および、「Detecting Over Programmed Memory」と題した米国特許第６，９１７，５４２号に開示されている。両文献の内容は、その全体を参照することにより本明細書に組み込まれる。
【０００５】
一部のＥＥＰＲＯＭおよびフラッシュメモリ装置は、電荷の２つの範囲を記憶するために使用されるフローティングゲートを備える。従って、メモリセルは、２つの状態の間で、プログラムまたは消去される。消去状態およびプログラム状態の各々は、データ「１」およびデータ「０」に相当する。そのような装置は、バイナリ装置と呼ばれることがある。
【０００６】
マルチ状態フラッシュメモリセルは、多数の、明確な許容されている複数の閾値電圧範囲を特定することによって、実施される。明確な閾値電圧範囲の各々は、データビットの集合に関する所定の値に相当する。メモリセルにプログラムされたデータと、セルの閾値電圧範囲との間の詳細な関係は、セルのために採用されるデータ符号化方式に依存する。例えば、両方ともその全体を参照することにより本明細書に組み込まれる、米国特許第６，２２２，７６２号及び米国特許出願公表第２００４／０２５５０９０号は、マルチ状態フラッシュメモリセルの多様なデータ符号化方式を説明する。
【０００７】
集積回路で実施される不揮発性記憶システムを含む集積回路の動作および挙動は温度による影響を受ける可能性のあることが観察されている。従前のメモリシステムでは、読み出し／検証比較レベル、ビットライン電流、センスアンプ、選択ゲートの制御ゲート電圧、および温度に基づくボディバイアス条件を調整することによって温度に対する補償を行なう。一部のシステムでは、ＴＣＯと称される温度補償係数が使用される。一実施形態では、ＴＣＯは温度変化１℃当たりのメモリセルの閾値電圧変化の大きさを示す。ＴＣＯの単位はｍＶ／℃である。典型的なＴＣＯの例は、−３ｍＶ／℃である。また、従前の一部のデバイスでは、閾値電圧分布を動的に測定し、測定された閾値電圧分布に基づいて読み出し比較レベルを更新することによって読み出しレベルを最適化するための高度なコントローラ技術が採用されることもある。
【０００８】
デバイスサイズが小さくなると、温度に対する補償の必要性がさらに大きくなる。
【図面の簡単な説明】
【０００９】
【図１Ａ】閾値電圧分布を示すグラフである。
【図１】ＮＡＮＤストリングの平面図である。
【図２】ＮＡＮＤストリングの等価回路図である。
【図３】不揮発性メモリシステムのブロック図である。
【図４】メモリアレイの一実施例を示すブロック図である。
【図５】センスブロックの一実施例を示すブロック図である。
【図６】閾値電圧分布の集合の一例およびプログラミングプロセスの例を示す。
【図７】閾値電圧分布の集合の一例およびプログラミングプロセスの例を示す。
【図８Ａ】閾値電圧分布の例とプログラミングプロセスの例を示す。
【図８Ｂ】閾値電圧分布の例とプログラミングプロセスの例を示す。
【図８Ｃ】閾値電圧分布の例とプログラミングプロセスの例を示す。
【図９】閾値電圧分布とメモリセルに記憶されたデータとの関係の一例を示す表である。
【図１０Ａ】閾値電圧分布の例とプログラミングプロセスの例を示す。
【図１０Ｂ】閾値電圧分布の例とプログラミングプロセスの例を示す。
【図１０Ｃ】閾値電圧分布の例とプログラミングプロセスの例を示す。
【図１０Ｄ】閾値電圧分布の例とプログラミングプロセスの例を示す。
【図１１】不揮発性記憶装置を動作させるプロセスの一実施形態を説明するフローチャートである。
【図１２】不揮発性記憶装置をプログラムするプロセスの一実施形態を説明するフローチャートである。
【図１３】不揮発性記憶装置に対してプログラミング動作を実施するプロセスの一実施形態を説明するフローチャートである。
【図１４】不揮発性記憶装置からデータを読み出すプロセスの一実施形態を説明するフローチャートである。
【図１５】不揮発性記憶装置からデータを読み出すプロセスの一実施形態を説明するフローチャートである。
【図１６】不揮発性記憶装置に記憶されるデータを符号化および復号化するプロセスの一実施形態を説明するフローチャートである。
【図１７】ＬＲＲ表の例を示す。
【図１８】不揮発性記憶装置からデータを読み出すプロセスの一実施形態を説明するフローチャートである。
【図１９】重複する閾値電圧範囲を示す。
【図２０】ＬＲＲ表の例を示す。
【図２１】読み出しプロセスの一部として補償を提供するプロセスの一実施形態を説明するフローチャートである。
【図２２】不揮発性記憶装置からデータを読み出すプロセスの一実施形態を説明するフローチャートである。
【図２３】不揮発性記憶装置からデータを読み出すプロセスの一実施形態を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
温度が所与のメモリセルの挙動および動作に与える影響は、所与のメモリセルに隣接または近接するメモリセルの状態に応じて変化する。したがって、１以上の隣接メモリセルの温度ならびに条件（あるいは状態）に基づく温度補償を提供することが提案される。
【００１１】
図１Ａは、プログラミングの時点と読み出しの時点の温度および温度差が閾値電圧（Ｖｔ）分布のシフトと拡大をもたらす場合の様子の例を示す。Ｖｔ分布Ａは、比較的高い温度におけるプログラミングの直後に得られたＶｔ分布である。Ｖｔ分布Ａは、この例では、１０ビットの右端および左端レベルで約０．６Ｖの幅を有する。しかしながら、同じＶｔ分布が低い温度で測定されるとき、Ｖｔ分布はシフトアップして拡大しＶｔ分布Ｄを形成する。不揮発性記憶素子は負の温度係数（Ｔｃｏ）を有するのでＶｔ分布はシフトアップする。しかしながら、不揮発性記憶素子間のＴｃｏには変動があるので、Ｖｔ分布はさらに拡大する。例えば、分布Ｃにおける不揮発性記憶素子（分布Ｄにおける不揮発性記憶素子の全体集合の部分集合である）は、分布Ｂにおける不揮発性記憶素子よりも大きいＴｃｏを有する。部分集合ＢおよびＣはいずれも、分布Ａのように、不揮発性記憶素子からなる不揮発性記憶素子Ｄの集合を一体に形成する。この場合、分布ＢおよびＣにおける不揮発性記憶素子のＴｃｏの差は、かなりあり、それゆえに、この例では約０．２Ｖの著しいＶｔ分布の拡大をもたらす。
【００１２】
このようなＴｃｏの大きな差は、隣接する不揮発性記憶素子間に密接な相互作用がある大規模な不揮発性記憶素子において生じる可能性がある。不揮発性記憶素子のＴｃｏは隣接する不揮発性記憶素子に記憶されるデータに依存することが分かっている。特に、大きいＴｃｏは、隣接する不揮発性記憶素子が目標不揮発性記憶素子よりも著しく低いプログラム（または消去）状態にあるときに生じる。隣接する不揮発性記憶素子が同様のプログラム状態または高いプログラム状態にプログラムされるとき不揮発性記憶素子のＴｃｏは小さい。隣接する不揮発性記憶素子のプログラム状態の情報を考慮することによって、目標不揮発性記憶素子のＴｃｏはより正確に知られ、それゆえに、適合検知レベル（adapted sense levels）などの補償技術によるより正確な読み出し動作がプログラミングと読み出しとの間の温度差と、隣接する不揮発性記憶素子のデータ状態とに基づいて適用されうる。
【００１３】
データは、目標メモリセルにプログラムされてこれらから読み出される。データを読み出す際に、温度補償が提供される。温度補償は、温度情報と１以上の隣接メモリセルの状態とに基づく。一実施形態では、データが目標メモリセルから読み出される際に、システムは、現在温度を検知して、現在温度とデータがプログラムされた時点の温度との温度差を決定する。温度差が閾値よりも大きい場合、データを読み出すプロセスは、温度情報と隣接セルの状態情報とに基づいて温度補償を提供することを含む。一代替手段では、温度補償を提供する判断は、温度差以外の条件によってトリガーされ得る。
【００１４】
本明細書で説明されている技術を実行するための不揮発性記憶システムの一例は、ＮＡＮＤ構造を用いるフラッシュメモリシステムであり、２つの選択ゲートの間に複数のトランジスタを直列接続で配置することを含んでいる。直列接続されたトランジスタと選択ゲートは、ＮＡＮＤストリングと呼ばれる。図１は、１つのＮＡＮＤストリングを示す平面図である。図２は、その等価回路である。図１と図２に示すＮＡＮＤストリングは、第１の（ドレイン側）選択ゲート１２０と第２の（ソース側）選択ゲート１２２の間に挟まれている、直列接続されている４つのトランジスタ１００、１０２、１０４及び１０６を有する。選択ゲート１２０は、ビットラインコンタクト１２６を介してＮＡＮＤストリングをビットラインに接続している。選択ゲート１２２は、ＮＡＮＤストリングをソースライン１２８に接続している。選択ゲート１２０は、選択ラインＳＧＤに適切な電圧を印加することによって制御される。選択ゲート１２２は、選択ラインＳＧＳに適切な電圧を印加することによって制御される。トランジスタ１００、１０２、１０４、及び１０６のそれぞれは、制御ゲートとフローティングゲートを有している。例えば、トランジスタ１００は、制御ゲート１００ＣＧとフローティングゲート１００ＦＧを備えている。トランジスタ１０２は、制御ゲート１０２ＣＧとフローティングゲート１０２ＦＧを備えている。トランジスタ１０４は、制御ゲート１０４ＣＧとフローティングゲート１０４ＦＧを備えている。トランジスタ１０６は、制御ゲート１０６ＣＧとフローティングゲート１０６ＦＧを備えている。制御ゲート１００ＣＧはワードラインＷＬ３に接続されており、制御ゲート１０２ＣＧはワードラインＷＬ２に接続されており、制御ゲート１０４ＣＧはワードラインＷＬ１に接続されており、制御ゲート１０６ＣＧはワードラインＷＬ０に接続されている。
【００１５】
図１と図２は、ＮＡＮＤストリング内の４個のメモリセルを示しているが、４個のメモリセルの使用は単に一例として提示されている点に留意されたい。ＮＡＮＤストリングは、４個よりも少ない、或いは、４個よりも多いメモリセルを有していてよい。例えば、ＮＡＮＤストリングによっては８個、１６個、３２個、６４個、１２８個などの数のメモリセルを有していてよい。本明細書の説明は、ＮＡＮＤストリング内のメモリセルの数をいかなる特定の数にも限定しない。一実施形態は、６６個のメモリセルを備えたＮＡＮＤストリングを使用する。６６個のメモリセルのうち、６４個のメモリセルはデータを記憶し、メモリセルの２個はデータを記憶しないためダミーメモリセルとされる。
【００１６】
ＮＡＮＤ構造を用いたフラッシュメモリシステムの一般的なアーキテクチャは、いくつかのＮＡＮＤストリングを含んでいる。各ＮＡＮＤストリングは、ソース選択ゲートによって共通ソースラインに接続されているとともに、ドレイン選択ゲートによって関連するビットラインに接続されている。ここで、ソース選択ゲートは、選択ラインＳＧＳによって制御され、ドレイン選択ゲートは、選択ラインＳＧＤによって制御されている。各ビットラインと、そのビットラインにビットラインコンタクトを介して接続されているそれぞれのＮＡＮＤストリングとが、メモリセルアレイの列を構成する。ビットラインは、複数のＮＡＮＤストリングによって共有されている。典型的には、ビットラインは、ワードラインと直交する方向でＮＡＮＤストリングの最上部を通っており、１のセンスアンプと接続されている。
【００１７】
ＮＡＮＤタイプのフラッシュメモリおよびそれらの動作に関連する例は、以下の米国特許／特許出願に記載されており、それらの文献は、その全体が参照により本明細書に組み込まれる。米国特許第５，５７０，３１５号、米国特許第５，７７４，３９７号、米国特許第６，０４６，９３５号、米国特許第６，４５６，５２８号、及び、米国公開公報第ＵＳ２００３／０００２３４８号。
【００１８】
ＮＡＮＤフラッシュメモリに加えて、他のタイプの不揮発性記憶デバイスも使用されうる。例えば、不揮発性メモリデバイスは、電荷を蓄える誘電体層を採用するメモリセルからも製造される。前述の導電性フローティングゲート素子の代わりに、誘電体層が使用される。誘電体記憶素子を利用するこのようなメモリデバイスは、Ｅｉｔａｎ等の「ＮＲＯＭ：Ａ Ｎｏｖｅｌ Ｌｏｃａｌｉｚｅｄ Ｔｒａｐｐｉｎｇ，２−Ｂｉｔ Ｎｏｎｖｏｌａｔｉｌｅ Ｍｅｍｏｒｙ Ｃｅｌｌ」，ＩＥＥＥ Ｅｌｅｃｔｒｏｎ Ｄｅｖｉｃｅ Ｌｅｔｔｅｒｓ，ｖｏｌ．２１，ｎｏ．１１，Ｎｏｖｅｍｂｅｒ ２０００，ｐｐ．５４３−５４５に掲載されている。ＯＮＯ誘電体層が、ソース−ドレイン間の拡散チャネルに広がる。１つのデータビットに対応する電荷はドレインに隣接する誘電体層に局在し、他のデータビットに対応する電荷はソースに隣接する誘電体層に局在する。米国特許第５，７６８，１９２号および米国特許第６，０１１，７２５号には、２つの二酸化ケイ素層の間に挟まれたトラッピング誘電体を有する不揮発性メモリセルが開示されている。マルチ状態データ記憶装置が、誘電体内の空間的に分離された電荷記憶領域のバイナリ状態を別々に読み出すことによって実現される。ＭＯＮＯＳタイプの構造ベースの不揮発性記憶装置、ＴＡＮＯＳタイプの構造ベースの不揮発性記憶装置、またはナノ結晶ベースの不揮発性記憶装置も採用されうる。他のタイプの不揮発性記憶装置も採用されうる。
【００１９】
図３は、メモリセル（例えば、ＮＡＮＤマルチ状態フラッシュメモリ）の１ページ（あるいは他の単位）に対して同時に読み出しおよびプログラミングを行うためのリード／ライト回路を備える記憶デバイス２１０を示している。記憶デバイス２１０は、１つ以上のメモリダイ２１２又は１つ以上のメモリチップ２１２を有していてもよい。メモリダイ（あるいは集積回路）２１２は、メモリセルの（２次元又は３次元の）アレイ２００、制御回路２２０、及び、リード／ライト回路２３０Ａと２３０Ｂを有する。一実施形態では、様々な周辺回路によるメモリアレイ２００へのアクセスはアレイの両側で対称的に実装されており、これにより、各側のアクセスライン及び各側の回路の密度が半分に低減される。リード／ライト回路２３０Ａ及び２３０Ｂは、複数のセンスブロック３００を有しており、それらのセンスブロック３００によって１ページのメモリセルを同時に読み出し又はプログラムすることができる。メモリアレイ２００は、行デコーダ２４０Ａと２４０Ｂを介したワードラインと、列デコーダ２４２Ａと２４２Ｂを介したビットラインによってアドレス指定される。ワードラインとビットラインは、制御ラインの一例である。典型的な実施形態では、コントローラ２４４は、１つ以上のメモリダイ２１２のような同じメモリデバイス２１０（例えば、取り外し可能なストレージカード又はパッケージ）内に含まれる。命令及びデータは、ライン２３２を介してホストとコントローラ２４４の間で転送され、また、ライン２３４を介してコントローラと１つ以上のメモリダイ２１２の間で転送される。
【００２０】
制御回路２２０は、リード／ライト回路２３０Ａと２３０Ｂと協調して、メモリアレイ２００に対してメモリ動作を実行する。制御回路２２０は、ステートマシン２２２、オンチップアドレスデコーダ２２４、電力制御モジュール２２６、及び、温度センサー２２８を有している。ステートマシン２２２は、メモリ動作のチップレベル制御を提供する。オンチップアドレスデコーダ２２４は、ホスト又はメモリコントローラによって用いられるアドレスと、デコーダ２４０Ａ、２４０Ｂ、２４２Ａ及び２４２Ｂによって用いられるハードウェアアドレスとの間にアドレスインターフェースを提供する。電力制御モジュール２２６は、メモリ動作中のワードライン及びビットラインに供給される電力及び電圧を制御する。一実施形態では、電力制御モジュール２２６は、供給電力より大きな電圧を作り出すことができる一つ以上のチャージポンプを有する。制御回路２２０は、アドレスラインＡＤＤＲを、行デコーダ２４０Ａおよび２０４Ｂと列デコーダ２４２Ａおよび２４２Ｂとに提供する。列デコーダ２４２Ａおよび２４２Ｂは、Ｄａｔａ Ｉ／Ｏと標識された信号線を介してコントローラ２４４にデータを提供する。温度センサー２２８は、当技術分野で周知のアナログまたはディジタル温度センサーであってよい。
【００２１】
一実施形態では、コントローラ２４４は、メモリチップ２１２とは異なるダイ（または集積回路）で実施される。一部の実施形態では、コントローラ２４４は、ホストとインターフェースをとり、さらに制御回路２２０やデコーダともインターフェースをとる。一部の実施形態では、コントローラ２４４は、リード／ライト回路とインターフェースをとる。
【００２２】
一実施形態では、制御回路２２０、電源制御回路２２６、デコーダ回路２２４、ステートマシン回路２２２、デコーダ回路２４２Ａ、デコーダ回路２４２Ｂ、デコーダ回路２４０Ａ、デコーダ回路２４０Ｂ、リード／ライト回路２３０Ａ、リード／ライト回路２３０Ｂ、温度センサー２２８、および／またはコントローラ２４４の１つまたは任意の組み合わせは、１以上の管理回路と称されうる。１以上の管理回路は、本明細書に記載されるプロセスを実施する。
【００２３】
図５Ａは、メモリセルアレイ２００の例示的な構造を示す。一実施形態においては、メモリセルのアレイは、数多くのブロックに（例えば、ブロック０〜１０２３に、あるいは、その他の量のブロックに）分割される。フラッシュメモリシステムに一般的であるように、ブロックは消去の単位である。すなわち、各ブロックは共に消去される最小数のメモリセルを含む。他の消去の単位もまた、用いることができる。
【００２４】
ブロックは、ビットライン（例えば、ビットラインＢＬ０〜ＢＬ６９６２３）とワードライン（ＷＬ０，ＷＬ１，ＷＬ２，ＷＬ３，）と、を介してアクセス可能な、ＮＡＮＤストリングのセットを含む。図４は、直列接続されることでＮＡＮＤストリングを形成している、４つのメモリセルを示している。各々のＮＡＮＤストリングに４つのセルが含まれることが示されているが、４個よりも少ない、或いは、４個よりも多いメモリセルを有していてよい（例えば、ＮＡＮＤストリングに、１６個、３２個、６４個、１２８個やその他の数のメモリセルがあってもよい。）各ＮＡＮＤストリングの一端は、（選択ゲートドレインラインＳＧＤに接続されている）ドレイン選択ゲートを介して対応するビットラインに接続されており、他端は、（選択ゲートソースラインＳＧＳに接続されている）ソース選択ゲートを介してソースラインに接続されている。
【００２５】
各ブロックは、典型的に、多くのページに分割される。一実施形態では、ページがプログラミングの単位である。他の単位のプログラミングも採用されうる。１以上のデータページが典型的にメモリセルの１行に記憶される。例えば、１以上のデータページは、共通ワードラインに接続されたメモリセルに記憶されてもよい。ページは１以上のセクターを記憶しうる。セクターは、ユーザーデータおよびオーバーヘッドデータ（システムデータとも呼ばれる）を含む。ユーザーデータのセクターは、典型的に、磁気ディスクドライブのセクターのサイズに対応する５１２バイトである。８ページから、例えば、最大３２、６４、１２８またはそれ以上のページに及ぶ多くのページがブロックを形成する。また、種々のサイズのブロック、ページ、およびセクターが採用されうる。さらに、ブロックは、６９，６２４本前後のビットラインを有しうる。
【００２６】
図４は、センスモジュール４８０と呼ばれるコア部と共通部４９０とに分割された個々のセンスブロック３００のブロック図である。一実施形態では、各ビットラインに対して個別のセンスモジュール４８０を用意し、複数のセンスモジュール４８０に対して一つの共通部４９０を用意してもよい。一例として、１個のセンスブロックは、１個の共通部４９０と８個のセンスモジュール４８０とを有している。グループ内の各センスモジュールは、データバス４７２を介して協働する共通部と通信する。さらなる詳細としては、その全体を参照することにより本明細書に組み込まれる米国特許出願公開公報２００６／０１４０００７号を参照されたい。
【００２７】
センスモジュール４８０は、接続されたビットライン内の伝導電流が所定のレベルより高いか低いかを判定するセンス回路４７０を備えている。幾つかの実施形態では、センスモジュール４８０は、センスアンプと一般に呼ばれる回路を有する。センスモジュール４８０は、さらに、接続されたビットラインに電圧状態を設定するために用いられるビットラインラッチ４８２を有している。例えば、メモリセルをプログラミングから保護する目的で、ビットラインラッチ４８２内で所定の状態がラッチされることによって、接続されたビットラインを、プログラム禁止を指定する状態（例えば、Ｖｄｄ）に引き上げる（プルする）。
【００２８】
共通部４９０は、プロセッサ４９２、複数のデータラッチ４９４、及び、複数のデータラッチ４９４とデータバス４２０との間を接続するＩ／Ｏインターフェース４９６を備えている。プロセッサ４９２は計算を実行する。例えば、その機能の１つは、検知されたメモリセル内に記憶されているデータを特定し、特定されたデータを複数のデータラッチ内に記憶することである。複数のデータラッチ４９４は、読み出し動作において、プロセッサ４９２によって特定されたデータビット群を記憶するために用いられる。複数のデータラッチ４９４は、プログラム動作において、データバス４２０から取り込んだデータビット群を記憶するためにも用いられる。取り込まれるデータビット群は、メモリ内に書き込む予定の書き込みデータ（ライトデータ）を表す。Ｉ／Ｏインターフェース４９６は、データラッチ４９４とデータバス４２０の間のインターフェースを提供する。
【００２９】
読み出し又は検知中には、システムの動作はステートマシン２２２の制御下にあり、ステートマシン２２２はアドレス指定されたセルへの種々の制御ゲート電圧の供給を（電力制御２２６を用いて）制御する。メモリに用意された様々なメモリ状態に対応する様々な既定制御ゲート電圧のステップを進む毎に、センスモジュール４８０はこれらの電圧の１つにトリップし、バス４７２を介してセンスモジュール４８０からプロセッサ４９２に出力が提供される。その時点で、プロセッサ４９２は、センスモジュールのトリッピングイベントと、ステートマシンから入力ライン４９３を介して印加された制御ゲート電圧についての情報によって、結果としてのメモリ状態を特定する。それから、プロセッサ４９２は、メモリ状態に対するバイナリ符号化を計算し、得られたデータビット群をデータラッチ４９４に格納する。コア部の別の実施形態では、ビットラインラッチ４８２は、センスモジュール４８０の出力をラッチするラッチ、及び、上記のようなビットラインラッチの二つの役割を持つ。
【００３０】
いくつかの実装形態では複数のプロセッサ４９２を有することができる。一実施形態では、各プロセッサ４９２は出力ライン（図５には示されていない）を有し、各出力ラインは共にワイヤードＯＲ（配線論理和）接続される。いくつかの実施形態では、出力ラインは、ワイヤードＯＲラインに接続される前段階で反転される。この構成は、ワイヤードＯＲの結果を受け取るステートマシンが、プログラムされる全てのビットがいつ所望のレベルに到達したかを判断できるので、プログラム処理の完了時点を判定するプログラム検証処理における素早い判定を可能にする。例えば、各ビットがその所望のレベルに到達すると、そのビット用の論理「０」がワイヤードＯＲラインに送られる（又はデータ「１」が反転される）。全てのビットがデータ「０」を出力すると（又はデータ「１」が反転されると）、ステートマシンはプログラミング処理の完了を知る。各プロセッサが８個のセンスモジュールと通信する実施形態では、（いくつかの実施形態において）ステートマシンはワイヤードＯＲラインを８回読み出す必要があってもよいし、あるいは、協働するビットラインの結果を蓄積するための論理をプロセッサ４９２に追加し、ステートマシンがワイヤードＯＲラインを一度だけ読み出せば良いようにしてもよい。
【００３１】
データラッチスタック４９４は、センスモジュールに対応するデータラッチのスタックを有する。一実施形態では、センスモジュール４８０毎に３個（または４個、或いはその他の数の）データラッチが存在する。一実施形態では、ラッチはそれぞれ１ビットである。
【００３２】
プログラム又は検証処理の間、プログラムされるべきデータはデータバス４２０から複数のデータラッチ４９４内に記憶される。検証処理の間、プロセッサ４９２は、所望のメモリ状態に対する検証メモリ状態を監視する。その２つが一致したとき、プロセッサ４９２は、プログラム禁止を指定する状態にビットラインを引き上げる（プルする）ようにビットラインラッチ４８２を設定する。これにより、たとえプログラミングパルスがその制御ゲートに影響しても、ビットラインに接続したメモリセルがさらにプログラミングされないようにすることができる。他の実施形態では、プロセッサが最初にビットラインラッチ４８２をロードし、センス回路が検証処理中にそれに禁止値を設定する。
【００３３】
いくつかの実装形態では、（必須ではないが）データラッチはシフトレジスタとして実装され、内部に記憶されたパラレルデータをデータバス４２０用にシリアルデータに変換したり、その逆を行ったりする。好適な一実施形態では、メモリセルのリード／ライトブロックに対応する全てのデータラッチを相互にリンクしてブロックシフトレジスタを構成し、シリアル転送によってデータのブロックを入力または出力できるようにする。特に、リード／ライトモジュールの一群のデータラッチのそれぞれが、データバスへ或いはデータバスからデータを順に転送するようにリード／ライトモジュールのバンクを構成し、一群のデータラッチがあたかもリード／ライトブロック全体のシフトレジスタの一部であるかのようにしてもよい。
【００３４】
検知動作、センスアンプについての、さらなる情報は、次の文献に記載されている。（１）米国特許出願公開公報第２００４／００５７２８７号、「Non-Volatile Memory And Method With Reduced Source Line Bias Errors」、２００４年３月２５日発行、（２）米国特許出願公開公報第２００４／０１０９３５７号、「Non-Volatile Memory And Method with Improved Sensing」、２００４年６月１０日発行、（３）米国特許出願公開公報第２００５０１６９０８２号、（４）米国特許出願公開公報第２００６／０２２１６９２号、タイトルは「Compensating for Coupling During Read Operations of Non-Volatile Memory」、発明者Jian Chen、２００５年４月５日出願、及び、（５）米国特許出願公開公報第２００６／０１５８９４７号、タイトルは「Reference Sense Amplifier For Non-Volatile Memory」、発明者Siu Lung ChanおよびRaul-Adrian Cernea、２００５年１２月２８日出願。これら５個の特許文献の全ては、その全体を参照することにより本明細書に組み込まれる。
【００３５】
成功したプログラミング処理（検証を含む）の後に、メモリセルの閾値電圧は、プログラムされたメモリセルについての１つ以上の閾値電圧の分布の範囲内、または、消去されたメモリセルについての１つの閾値電圧の分布の範囲内のうち、どちらか適切な範囲内である必要がある。図６は、各メモリセルがデータの２ビットを記憶する場合の、メモリセルアレイについての（データ状態に応じた）閾値電圧分布の例を示している。しかしながら他の実施形態では、１メモリセル当り、データの２ビットよりも多いまたは少ないビットを用いることができる（例：１メモリセル当りデータの３ビット、あるいは４ビット以上）。
【００３６】
図６は、消去されたメモリセルについての、第１の閾値電圧分布Ｅを示している。プログラムされたメモリセルについての３つの閾値電圧分布Ａ、ＢおよびＣも、示されている。一実施形態では、分布Ｅ内の閾値電圧は負であり、Ａ、ＢおよびＣ分布内の閾値電圧は正である。図６のそれぞれの閾値電圧範囲は、データビットのセットの所定値に対応する。メモリセルにプログラミングされたデータとセルの閾値電圧レベルの特殊な関係は、セルのために採用されるデータ符号化方式に依存する。例えば、両方ともその全体を参照することにより本明細書に組み込まれる、米国特許第６，２２２，７６２号、及び、「Tracking Cells For A Memory System,」と題する２００３年７月１３日出願の米国特許出願公表第2004/0255090号は、マルチ状態フラッシュメモリセルの多様なデータ符号化方式を説明する。一実施形態では、フローティングゲートの閾値電圧が誤ってその近傍の物理状態にシフトした場合に１ビットだけが影響を受けるように、データ値がグレーコード割り当てを使用して閾値電圧範囲に割り当てられる。一例は、閾値電圧範囲Ｅ（状態Ｅ）に「１１」を、閾値電圧範囲Ａ（状態Ａ）に「１０」を、閾値電圧範囲Ｂ（状態Ｂ）に「００」を、及び閾値電圧範囲Ｃ（状態Ｃ）に「０１」を割り当てる。しかしながら、他の実施形態では、グレーコードは使用されない。図６では４つの状態が示されているが、本発明は、４つの状態より多い、又は、少ない構造を含む他のマルチ状態構造に使用することもできる。
【００３７】
また、図６は、データをメモリセルから読み出すための３つの読み出し基準電圧Ｖｒａ、Ｖｒｂ、およびＶｒｃ（読み出し比較レベル／値とも呼ばれる）を示す。所与のメモリセルの閾値電圧がＶｒａ、Ｖｒｂ、およびＶｒｃ以上であるかそれとも以下であるかを試験することによって、システムはメモリセルがどの状態にあるかを判断することができる。例えば、メモリセルがＶｒａよりも小さい閾値電圧を有する場合、メモリセルは状態Ｅにあるものと見なされる。メモリセルがＶｒｂも小さくかつＶｒａよりも大きい閾値電圧を有する場合、メモリセルは状態Ａにあるものと見なされる。メモリセルがＶｒｃよりも小さくかつＶｒｂよりも大きい閾値電圧を有する場合、メモリセルは状態Ｂにあるものと見なされる。メモリセルがＶｒｃよりも大きい閾値電圧を有する場合、メモリセルは状態Ｃにあるものと見なされる。
【００３８】
図６は、３つの検証参照電圧Ｖｖａ、Ｖｖｂ、及び、Ｖｖｃ（検証比較値／レベルとも呼ばれる）を示している。メモリセルを状態Ａにプログラミングするとき、システムは、それらのメモリセルがＶｖａ以上の閾値電圧を有するかどうかをテストする。メモリセルを状態Ｂにプログラミングするとき、システムは、メモリセルがＶｖｂ以上の閾値電圧を有するかどうかをテストする。メモリセルを状態Ｃにプログラミングするとき、システムは、メモリセルがＶｖｃ以上の閾値電圧を有するかどうかをテストする。
【００３９】
全シーケンス・プログラミングとして知られる一実施形態では、メモリセルは消去状態Ｅからプログラム状態Ａ、Ｂ、またはＣのいずれかに直接プログラムされうる。例えば、プログラムされるべきメモリセルの母集団は、母集団内のすべてのメモリセルが消去状態Ｅにあるようにするために、まず消去されてよい。この後、メモリセルを状態Ａ、Ｂ、またはＣに直接プログラムするためにプログラミングプロセスが採用される。一部のメモリセルが状態Ｅから状態Ａにプログラムされている間に、他のメモリセルは状態Ｅから状態Ｂおよび／または状態Ｅから状態Ｃにプログラムされている。
【００４０】
図７は、２つの異なるページ（下位ページと上位ページ）に対してデータを記憶するマルチ状態メモリセルにプログラムする、２パス技術の一例を示している。状態Ｅ（１１）、状態Ａ（１０）、状態Ｂ（００）及び状態Ｃ（０１）の４つの状態が示されている。状態Ｅの場合、両方のページが「１」を記憶する。状態Ａの場合、下位ページが「０」を記憶し、上位ページが「１」を記憶する。状態Ｂの場合、両方のページが「０」を記憶する。状態Ｃの場合、下位ページが「１」を記憶し、上位ページが「０」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることも可能である。第１プログラミングパスでは、メモリセルの閾値電圧レベルは下位の論理ページにプログラムされるビットに従って設定される。そのビットが論理「１」であれば、各々のメモリセルは、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるデータビットが論理「０」であれば、矢印５０４で示したように、セルの閾値レベルは状態Ａになるように増大される。
【００４１】
第２プログラミングパスでは、メモリセルの閾値電圧レベルは上位論理ページ内にプログラムされるビットに従って設定される。上位論理ページビットが論理「１」を記憶する場合、セルは下位ページビットのプログラミングに依存する状態Ｅ又はＡの一方であり、どちらも上位ページビットは「１」を保持するのでプログラミングは生じない。上位ページビットが論理「０」となる場合、閾値電圧はシフトされる。第１パスによってメモリセルが消去状態Ｅに留まっていれば第２段階でメモリセルをプログラムし、矢印５０２で示したように閾値電圧が状態Ｃ内になるように増大させる。第１プログラミングパスの結果としてメモリセルが状態Ａ内にプログラムされれば、メモリセルはさらに第２パスでプログラムされ、矢印５０６で示したように閾値電圧が状態Ｂ内になるように増大させる。第２パスの結果は、下位ページ用のデータを変更することなく、上位ページの論理「０」を記憶するように指定した状態にメモリセルをプログラムすることである。
【００４２】
一実施形態では、１ページ全体を充填するのに十分なデータを書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。十分ではないデータが１ページ全体に書き込まれる場合、プログラミング処理は、受け取ったデータを用いて下位ページをプログラムすることができる。次のデータを受け取ったときは、システムは上位ページをプログラミングする。さらに別の実施形態では、システムは下位ページをプログラムするモードで書き込みを開始することができ、次に、ワードラインのメモリセルの全体（又は大部分）を充填するために十分なデータを受け取った場合、全シーケンスプログラミングモードに変換する。このような実施形態のさらなる詳細は、米国特許出願第2006/0126390号に開示されている。その全体は参照することによって本明細書に組み込まれる。
【００４３】
図８Ａ〜Ｃは、不揮発性メモリをプログラムする別の多段階プログラミングプロセスを説明する。図８Ａ〜Ｃのプロセスは、ある特定のメモリセルに対して、特定ページに関するその特定メモリセルへの書込みによってフローティングゲート間結合を抑制する。その書き込みは、前ページの隣接メモリセルへの書込みの次にある。図８Ａ〜Ｃによって教示されるプロセスの実施形態の一例では、不揮発性メモリセルは、４つのデータ状態を用いてメモリセル当たり２ビットのデータを記憶する。例えば、状態Ｅは消去状態であり、状態Ａ、Ｂ、およびＣはプログラム状態であると仮定する。図９は状態と記憶されるデータとの関係の一例を示す。状態Ｅはデータ１１を記憶する。状態Ａはデータ０１を記憶する。状態Ｂはデータ００を記憶する。状態Ｃはデータ１０を記憶する。これはグレーコーディングの例である。また、物理データ状態への他のデータ符号化も採用されうる。各メモリセルは２ページのデータを記憶する。参考のために、これらのページのデータは上位ページおよび下位ページと呼ばれるが、これらは他のラベルを与えられうる。図８Ａ〜Ｃのプロセスに対する状態Ａを参照すると、上位ページはデータ０を記憶し、下位ページはデータ１を記憶する。状態Ｂを参照すると、いずれのページもデータ０を記憶する。状態Ｃを参照すると、下位ページはデータ０を記憶し、上位ページは１を記憶する。図８Ａ〜Ｃのプログラミングプロセスは２パスプログラミングプロセスであるが、図８Ａ〜Ｃのプロセスは３パスプロセス、４パスプロセスなどを実施するために使用されうる。第１段階では、下位ページがプログラムされる。下位ページがデータ１のままでなければならない場合、メモリセル状態は状態Ｅに保たれる。データが０にプログラムされなければならない場合、メモリセルが状態Ｂ’にプログラムされるようにメモリセルの電圧の閾値が上昇される。したがって、図８Ａは、状態Ｅから状態Ｂ’へのメモリセルのプログラミングを示す。図８Ａに示される状態Ｂ’は中間状態Ｂであり、したがって、検証点はＶｖｂよりも低いＶｖｂ’として示される。
【００４４】
一実施形態では、メモリセルが状態Ｅから状態Ｂ’にプログラムされた後、ＮＡＮＤストリングの（ワードラインＷＬｎ＋１の）隣接メモリセルが、その下位ページについてプログラムされることになる。隣接メモリセルのプログラミング後、フローティングゲート間結合の影響により、以前にプログラムされたメモリセルの見かけ閾値電圧を上昇させる場合がある。これは、状態Ｂ’に対する閾値電圧分布を図８Ｂの閾値電圧分布５２０として示された閾値電圧分布に拡大する効果を有することになる。この見かけ閾値電圧分布の拡大は、上位ページをプログラムするときに修正されることになる。
【００４５】
図８Ｃは、上位ページをプログラムするプロセスを示す。メモリセルが消去状態Ｅにありかつ上位ページが１のままでなければならない場合、メモリセルは状態Ｅのままになる。メモリセルが状態Ｅにありかつその上位ページデータが０にプログラムされなければならない場合、メモリセルの閾値電圧はメモリセルが状態Ａにあるように上昇されることになる。メモリセルが中間閾値電圧分布５２０にありかつ上位ページデータが１のままでなければならない場合、メモリセルは最終状態Ｃにプログラムされることになる。メモリセルが中間閾値電圧分布５２０にありかつ上位ページデータがデータ０にならなければならない場合、メモリセルは状態Ｂになる。所与のメモリセルの見かけ閾値電圧に影響を及ぼすのは隣接メモリセルの上位ページプログラミングのみであるので、図８Ａ〜Ｃで示されるプロセスはフローティングゲート間結合の影響を抑制する。
【００４６】
図８Ａ〜Ｃは４つのデータ状態と２ページのデータに関する例を示しているが、図８Ａ〜Ｃによって教示される概念は４つ前後の状態と２ページとは異なる他の実施形態に適用されうる。図８Ａ〜Ｃのプログラミングプロセスに関するさらなる詳細が、米国特許第７，１９６，９２８号明細書に見られ、参照によって本明細書に組み込まれる。
【００４７】
図１０Ａ〜Ｄは、共通ワードラインに接続されたメモリセルをプログラムする別のマルチ状態プログラミングプロセスを示しており、当該プロセスは、図８Ａ〜Ｃのプロセスと同様に採用されうる。図１０Ａ〜Ｄのプロセスの第１段階は、閾値電圧分布ＢおよびＣから図１０Ａの閾値電圧分布５３０で示されるような中間閾値電圧分布Ｂ’までを対象とする第１のプログラミングメモリセルを含む。この第１の段階は、この後、隣接するワードラインで実施され、隣接するワードラインは隣接するフローティングゲートからの結合によって中間閾値電圧分布を拡大させる（図１０Ｂ参照）。第２のプログラミング段階は、閾値電圧分布Ｂ’から閾値電圧分布Ｃまでを対象とするメモリセルのプログラミングを含む（図１０Ｃ参照）。プログラミングプロセスの第３の段階は、分布Ｅから分布Ａにメモリセルをプログラムするステップと、および分布Ｂ’から分布Ｂにメモリセルをプログラムするステップとを含む（図１０Ｄ参照）。
【００４８】
図１１は、図３のシステム（または他のシステム）など、不揮発性メモリを動作させるプロセスの一実施形態を説明するフローチャートである。ステップ６００において、データをプログラムする要求が受け取られる。要求は、ホスト、別のデバイス、またはコントローラから受け取られうる。要求は、コントローラ、制御回路、ステートマシン、またはその他のデバイスで受け取られてもよい。要求に応じて、コントローラ、制御回路、ステートマシン、またはその他のデバイスは、ステップ６０２において、データの記憶に使用されるフラッシュ・メモリ・セルのブロックを決定することになる。データは、ステップ６０４において、前述のプログラミングプロセス（または他のプログラミングプロセス）のいずれかを用いて決定されたブロックにプログラムされることになる。プログラムされたデータは、ステップ６０６において、１回以上読み出されることになる。各ステップの間に予測不可能な時間が経過し得るのでステップ６０４と６０６との間は破線であり、ステップ６０６はステップ６０４に応じて実施されない。むしろ、ステップ６０６はデータまたはその他の事象を読み出す要求に応じて実施される。
【００４９】
図１２は、ブロック内のメモリセルをプログラムするプログラミングプロセスを説明するフローチャートである。図１２のプロセスは、図１１のステップ６０４の一実施形態である。ステップ６３２において、メモリセルはプログラミングに先立って（ブロックなどの単位で）消去される。メモリセルは、一実施形態において、ｐウエルを消去電圧（例えば、２０Ｖ）まで十分な時間上昇させ、ソースおよびビットラインがフローティング状態の間に選択ブロックのワードラインをグラウンドに接続することによって消去される。それゆえ、強力な電場が選択メモリセルのトンネル酸化物層に印加され、選択メモリセルは、フローティングゲートの電子が典型的にＦｏｗｌｅｒ−Ｎｏｒｄｈｅｉｍトンネリング機構によって基板側に放射されると消去される。電子がフローティングゲートからｐウエル領域に移動されると、選択メモリセルの閾値電圧が低下される。消去は、メモリアレイ全体、個々のブロック、またはセルの別の単位で実施されうる。他の消去方法も採用されうる。ステップ６３４において、消去されたメモリセルの閾値電圧分布を狭めるためにソフトプログラミングが実施される。一部のメモリセルは、消去プロセスの結果として必要以上に深い消去状態にある可能性がある。ソフトプログラミングでは、深く消去されたメモリセルの閾値電圧を消去状態に対してなお有効範囲にある高い閾値電圧に移動させるためにプログラミングパルスを印加することができる。ステップ６３６において、ブロックのメモリセルは、本明細書に記載のようにプログラムされる。図１２のプロセスは、前述の様々な回路を用いて、ステートマシン、コントローラ、またはステートマシンおよびコントローラの組み合わせの指示の下で実施されうる。例えば、コントローラは、データをプログラムするために、ステートマシンに対してコマンドおよびデータを発行してもよい。それに応じて、ステートマシンはプログラミング動作を実行するために前述の回路を動作させてもよい。
【００５０】
図１３は、共通ワードラインに接続されたメモリセルのプログラミングを実施するプロセスの一実施形態を説明するフローチャートである。図１３のプロセスは、図１２のステップ６３６の間に１回以上実施されうる。例えば、図１３のプロセスは、メモリセルを状態Ｅから状態Ａ、Ｂ、またはＣのいずれかに直接プログラム（例えば、全シーケンス・プログラミング）するために採用されうる。あるいは、図１３のプロセスは、図７、図８Ａ〜Ｃ、図１０Ａ〜Ｄのプロセス、またはその他のプログラミング方式のプロセスの１つまたは各々を実施するために採用されうる。例えば、図８Ａ〜Ｃのプロセスを実施するとき、図１３のプロセスは、メモリセルの一部を状態Ｅから状態Ｂ’にプログラムするステップを含む第１の段階を実施するために採用されうる。図１３のプロセスは、この後、メモリセルの一部を状態Ｅから状態Ａにプログラムするステップと、状態Ｂ’から状態ＢおよびＣにプログラムするステップと、を含む第２の段階をさらに実施するために再び採用されうる。
【００５１】
図１３のステップ７６８において、現在の温度が温度センサー２２８を用いて検知される。その温度読取り値は、メモリアレイなどの不揮発性記憶装置に記憶される。一部の実施形態では、温度読取り値は記憶のためにコントローラによって直ちにコントローラ２４４に送られる。一部の実施形態では、温度はメモリ回路（例えば、コントローラ、ホスト、またはその他の場所）に存在しないセンサーによって検知されうる。
【００５２】
典型的に、プログラム動作中に制御ゲートに印加されるプログラム電圧は、一連のプログラムパルスとして印加される。プログラミングパルス間には検証を実施するための１以上の検証パルスがある。多くの実施形態では、プログラムパルスの大きさは、連続するパルスごとに所定のステップサイズだけ増加される。図１３のステップ７７０において、プログラミング電圧（Ｖｐｇｍ）は開始時の大きさ（例えば、〜１２〜１６Ｖまたは別の適当なレベル）に初期化され、ステートマシン２２２によって維持されるプログラムカウンタＰＣは１で初期化される。
【００５３】
ステップ７７２において、プログラム信号Ｖｐｇｍのプログラムパルスは、選択ワードライン（プログラミングのために選択されたワードライン）に印加される。一実施形態では、プログラムされているメモリセルのグループは、すべて同じワードライン（選択ワードライン）に接続される。非選択ワードラインは、当技術分野で周知のブースティング方式を実施するために１以上のブースティング電圧（例えば、〜９Ｖ）を受け取る。一実施形態では、メモリセルがプログラムされるべきであれば、対応するビットラインがグランドに接続される。一方、メモリセルがその現在の閾値電圧に保たれるべきであれば、対応するビットラインはプログラミングを阻止するためにＶｄｄに接続される。ステップ７７２において、選択ワードラインに接続されたメモリセルのすべてが同時にプログラムされるように、プログラムパルスは、選択ワードラインに接続されたすべてのメモリセルに同時に印加される。すなわち、メモリセルは同時に（すなわち、時間的に重なり合って）プログラムされる。このように、選択ワードラインに接続されたメモリセルのすべては、プログラミングからロックアウトされていない限り、同時に閾値電圧変化を有することになる。ステップ７７４において、適切なメモリセルは、１以上の検証動作を実施するために、適切な目標レベルを使用して検証される。メモリセルは、その目標レベルに達していることが検証されると、さらなるプログラミングからロックアウトされる。メモリセルをさらなるプログラミングからロックアウトする一実施形態では、対応するビットライン電圧を、例えば、Ｖｄｄに上昇させるべきである。
【００５４】
ステップ７７６において、すべてのメモリセルがそれらの目標閾値電圧に達しているかどうかが判断される。すべてのメモリセルがそれらの目標閾値電圧に達していれば、すべての選択メモリセルがそれらの目標状態にプログラムされて検証されているのでプログラミングプロセスは終了し成功している。「ＰＡＳＳ」のステータスがステップ７７８において報告される。ステップ７７６においてメモリセルのすべてがそれらの目標閾値電圧に達しているわけではないと判断されれば、プログラミングプロセスはステップ７８０に進む。
【００５５】
ステップ７８０において、システムは、それぞれの目標閾値電圧分布にまだ達していないメモリセルの数を計数する。すなわち、システムは、検証プロセスに不合格になったセルの数を計数する。この計数は、ステートマシン、コントローラ、またはその他の論理によって行なわれうる。一実施形態では、センスブロック３００（図３参照）の各々が各自のセルのステータス（合否）を記憶することになる。これらの値は、デジタルカウンタを用いて計数されうる。前述のように、センスブロックの多くは一緒にワイヤードＯＲ接続される出力信号を有する。それゆえ、１本のラインをチェックすると、セルの大きなグループの中にある、どのセルも検証に不合格になっていないことを示すことができる。一緒にワイヤードＯＲ接続されている（例えば、バイナリ樹状構造）ラインを適切に構成することによって、不合格になっているセルの数を判断するためにバイナリ・サーチ法が採用されうる。このようにして、少数のセルが不合格であった場合は計数が短時間で終了する。多数のセルが不合格であった場合は計数に長い時間を要する。米国特許公開２００８／０１２６６７６号にはさらに多くの情報が見られ、参照によってその全体が本明細書に組み込まれる。別の代替手段では、その対応するメモリセルが不合格になり、アナログ電圧または電流加算回路が、不合格となったメモリセルの数を計数するために採用されうる場合に、センスアンプの各々はアナログ電圧または電流を出力することができる。
【００５６】
一実施形態では、最終検証ステップに不合格となった現在プログラムされているメモリセルの総数を反映する１つの総数が計数される。別の実施形態では、各データ状態に対して別々の計数が保存される。
【００５７】
ステップ７８２において、ステップ７８０からの計数が所定の制限値以下であるかどうかが判断される。一実施形態では、所定の制限値はメモリセルのページに対する読み出しプロセス中にＥＣＣによって訂正されうるビット数である。不合格セルの数が所定の制限値以下であれば、プログラミングプロセスを停止することができ、「ＰＡＳＳ」のステータスがステップ７７８において報告される。この状況では、十分なメモリセルが正しくプログラムされており、完全にプログラムされていない、残るわずかなメモリセルが読み出しプロセス中にＥＣＣを用いて訂正され得る。一部の実施形態では、ステップ７８０において、各セクター、各目標データ状態などの単位で不合格セルの数が計数され、これらの計数はステップ７８２において個別または集合的に閾値と比較されることになる。
【００５８】
別の実施形態では、将来のエラーを見込んで、所定の制限値は、読み出しプロセス中にＥＣＣによって訂正されうるビット数未満であってもよい。ページに対して全数未満のメモリセルをプログラムするとき、あるいは唯一のデータ状態（または全状態未満の状態）の計数を比較するとき、所定の制限値はメモリセルのページに対して読み出しプロセス中にＥＣＣによって訂正されうるビット数の一部（案分または非案分）であってもよい。一部の実施形態では、制限値は事前に決定されない。代わりに、制限値は、ページに対して既に計数されたエラーの数、実施されたプログラム−消去サイクルの数、温度などの基準に応じて変化する。
【００５９】
不合格セルの数が少なくとも所定の制限値であれば、プログラミングプロセスはステップ７８４に進み、プログラムカウンタＰＣはプログラム制限値（ＰＬ）と照合される。プログラム制限値の一例は２０であるが、他の値も採用されうる。プログラムカウンタＰＣがプログラム制限値ＰＬ未満でなければ、プログラムプロセスは不合格であったものと考えられ、ステップ７８８においてＦＡＩＬのステータスが報告される。プログラムカウンタＰＣがプログラム制限値ＰＬ未満であれば、プロセスはステップ７８６に進み、その間にプログラムカウンタＰＣは１だけインクリメントされ、プログラム電圧Ｖｐｇｍは次の大きさにステップアップされる。例えば、次のパルスは前のパルスよりもステップサイズ（例えば、０．１〜０．４Ｖのステップサイズ）だけ大きくなる。ステップ７８６の後、プロセスはステップ７７２にループバックして、別のプログラムパルスが選択ワードラインに印加される。
【００６０】
検証動作（例えば、ステップ７７４）および読み出し動作の間に、選択ワードラインは電圧に接続され、関連メモリセルの閾値電圧が所定レベルに達しているかどうかを判断するために電圧のレベルは各読み出し動作（例えば、Ｖｒａ、Ｖｒｂ、およびＶｒｃ）または検証動作（例えば、Ｖｖａ、Ｖｖｂ、およびＶｖｃ）について指定される。ワードライン電圧を印加した後、メモリセルの伝導電流が測定されてメモリセルが、ワードラインに印加された電圧に応じてターンオンしたかどうかが判断される。一定値よりも大きい伝導電流が測定されると、メモリセルがターンオンしており、ワードラインに印加された電圧がメモリセルの閾値電圧よりも大きいものと見なされる。一定値よりも大きい伝導電流が測定されなければ、メモリセルはターンオンしておらず、ワードラインに印加された電圧がメモリセルの閾値電圧よりも大きくないものと見なされる。
【００６１】
読み出し動作中または検証動作中にメモリセルの伝導電流を測定する方法は多数ある。一例では、メモリセルの伝導電流は、センスアンプ内の専用コンデンサを充放電する速度によって測定される。別の例では、選択メモリセルの伝導電流によって、このメモリセルを含むＮＡＮＤストリングは、対応するビットラインを放電させる（または放電させない）ことができる。ビットラインの電圧は、これが放電されているかどうかを調べるためにしばらくしてから測定される。なお、本明細書で説明する技術は、検証／読み出しに関する当技術分野で周知の種々の方法とともに採用されうる。検証／読み出しに関するさらなる情報は、特許文献（１）米国特許出願公開第２００４／００５７２８７号、（２）米国特許出願公開第２００４／０１０９３５７号、（３）米国特許出願公開第２００５／０１６９０８２号、および（４）米国特許出願公開第２００６／０２２１６９２号に見られ、その全体が参照によって本明細書に組み込まれる。前述の消去、読み出し、および検証動作は、当技術分野で周知の方法によって実施される。それゆえ、説明される詳細の多くは、当業者によって変更されうる。当技術分野で周知の他の消去、読み出し、および検証方法も採用されうる。
【００６２】
プログラミングの終了後、メモリセルは、図６〜１０によって示されるように、１以上の閾値電圧分布をしていることになる。この時点で、データは読み出しが可能である。多くの場合、データは、これがプログラムされた時期よりもかなり後で読み出されうる。場合によっては、プログラミング中のメモリシステムの温度は、読み出し動作を実施している間の温度と同じでない可能性がある。この温度変化は、読み出し動作にエラーを導入し、性能に影響を与えかねない。
【００６３】
集積回路が種々の温度範囲で異なった働きをすることは周知である。従前のメモリシステムでは、読み出し／検証比較レベル、ビットライン電流、センスアンプ、選択ゲートの制御ゲート電圧、および温度に基づくボディバイアス条件を調整することによって必ず温度補償をする。
【００６４】
プログラミングの時点と読み出しの時点との間に著しい温度変化がある場合、読み出しプロセスは失敗する可能性があることが観測されている。温度が上昇すると、閾値電圧分布は下方にシフトする傾向がある。また、高い状態（例えば、Ｃ状態）は低い状態（例えば、Ａ状態）よりも多く下方にシフトすることが観測されている。
【００６５】
データ状態が、互いに近い、あるいは部分的に重なるメモリシステムの場合、温度変化に対する前述の対策は、プログラミング時点と読み出し時点との温度差に対応した閾値電圧分布の拡大を明らかにする十分な働きをしない可能性がある。
【００６６】
本発明者らは、プログラミングが実施された時点と読み出しが実施された時点との間の温度変化に応じた閾値電圧の様々な拡大の１つの原因は、隣接するメモリセルが目標メモリセルに与える影響によるものであることを観測している。すなわち、隣接するメモリセルのデータ状態は、目標メモリセルのＴＣＯに影響を及ぼすことになる。目標メモリセルに影響を与える隣接するメモリセルは、同じワードライン上の目標メモリセルの隣のメモリセル、または同じビットライン上の目標メモリセルの隣のメモリセルを含む。さらに、隣接するメモリセルは目標メモリセルに対して斜めになっている場合もある（例えば、１本のビットラインおよび１本のワードラインを横切って）。
【００６７】
したがって、メモリシステムはメモリがプログラムされた時点とメモリが読み出された時点との間の温度差に基づいて温度補償を提供する決定をすることが提案される。提供される温度補償では、温度データと、隣接するメモリセルのデータ状態と、を考慮に入れることになる。
【００６８】
図１４は、温度データと、隣接するメモリセルのデータ状態とに基づいて温度補償を実施する読み出しプロセスを説明するフローチャートである。図１４の処理は、読み出しデータに対するホストからの要求に応じて、あるいは読み出しデータに関する内部プロセスの一部として実施されうる。図１４のステップ８００において、システムは温度データを決定することになる。一実施形態では、システムは現在の温度を読み取ることになる。一実施形態では、コントローラ２４４、ステートマシン２２２などの回路と通信している温度センサーがある。別の実施形態では、メモリチップ上の温度センサー２２８がステートマシン２２２、コントローラ２４４、または別の回路に温度データを提供するために採用される。別の実施形態では、コントローラ２４４はオンボード温度センサーを含む。別の実施形態では、ホストは温度データをコントローラ２４４に提供する。現在の温度を得るための特別な手段は必要でない。また、ステップ８００は、データがプログラムされたときに、メモリシステムの温度を含む過去の温度データを得るステップを含みうる。ステップ８０２において、システムは、適切な温度補償を決定して、適用することになる。ステップ８０２は、当技術分野で周知の標準温度補償である。例えば、読み出し比較レベル、センス電流、センスアンプ性能、およびその他の動作条件は、現在の温度、または現在の温度とデータをプログラムするときに存在した温度との差に基づいて変更されうる。ステップ８０２において決定され、適用される温度補償では、隣接セル状態情報が考慮されない。
【００６９】
ステップ８０４において、システムは隣接セル状態情報を得ることになる。例えば、図４を振り返って、読み出されるべき目標メモリセルはメモリセル３１２であると仮定する。同じワードライン上の隣接メモリセルの２つの例は、メモリセル３１４および３１６である。同じビットラインにある隣接セルも、隣接メモリセルであるとしてよい。図１４のステップ８０４は、メモリセル３１４および／または３１６（ならびにメモリセル３１２と同じビットライン上にある他のメモリセル）の状態（例えば、Ｅ、Ａ、Ｂ、またはＣ）を決定するステップを含む。ステップ８０６において、システムは、ステップ８０４において得られた隣接セル状態情報と温度データとに基づく追加温度補償を決定することになる。ステップ８０６のさらなる詳細を以下で示す。ステップ８０８において、ステップ８０６において決定された温度補償は、ステップ８０８における読み出しプロセスに適用される。ステップ８０８のさらなる詳細を以下で示す。ステップ８１０において、目標メモリセルがステップ８０２、８０６、および８０８で前述した補償を含む読み出し動作を用いて検知される。ステップ８１２において、目標メモリセルで検知されたデータが報告される。ステップ８１２の例は、データをコントローラ２４４に報告するステップ、コントローラ２４４からのデータをホストに報告するステップ、あるいはデータをユーザーに提示するステップを含む。なお、ステップの順序は図１４に示した順序とは変わっていてもよい。ステップの多くは、異なる順序で実施されてもよく、同時に実施されてもよい。例えば、ステップ８１０の目標メモリセルを検知する前、目標メモリセルを検知する間、または目標メモリセルを検知した後に、２組の温度補償（ステップ８０２およびステップ８０８）が実施されてもよい。さらに、２つのタイプの温度補償が組み合わされてもよく、（ステップ８０２の補償を省いて）ステップ８０８の補償のみが採用されてもよい。
【００７０】
図１５は、図１４のプロセスの１つの実施形態例を説明するフローチャートである。この例では、コントローラ２４４はプログラミングの時点と読み出しの時点との温度差に基づいて温度補償を提供する決定をすることになる。コントローラが温度補償を必要であると判断する場合、補償の量は目標メモリセルの隣接セルのデータ状態に基づくことになる。一部の実施形態では、温度補償はやはりプログラミングの時点の温度と、読み出しの時点または現在の温度との温度差に基づいている。図１５に関して後述する例では、温度はメモリチップ２１２内の温度センサー２２８によって検知され、補償はコントローラ２４４の指示で提供される。しかしながら、他の実施形態では、図１５のプロセスは、温度がメモリチップ上で測定されない実施形態において採用されうるが、温度に依存するメカニズムを補償するために、メモリシステム内の他の部品やメモリシステム外の別の部品によって測定される。例えば、データを記憶するためのフラッシュメモリなどの不揮発性記憶装置を使用する半導体ディスクドライブ（ＳＳＤ）を採用するシステムでは、温度は、ホストなどのＳＳＤ外部の部品から得られてもよい。ＳＳＤのコントローラでは、本明細書で開示されるように、温度の影響を補償するための温度情報を利用することができる。温度情報の由来は問題でない。メモリシステムは、追加温度補償を提供するために隣接セルのデータ状態を使用する。これによって、メモリシステムは、エラーを防止および／または訂正するために、データがプログラムされた時点とデータが読み出された時点との温度差による閾値電圧の拡大およびシフトを明らかにすることができる。
【００７１】
図１５のステップ８５０において、コントローラ２４４は、ホストからデータを読み出すための要求を受け取る。一実施形態では、ステップ８５０は実施されず、図１５のプロセスは内部読み出しプロセスの一部として実施される（例えば、レベリング、ガベージコレクションなどのために）。ステップ８５２において、コントローラ２４４は温度データを温度センサー２２８に要求する。一実施形態では、コントローラ２４４はこの要求をステートマシン２２２、または制御回路２２０の別の部分に伝達し、ステートマシン２２２、または制御回路２２０の別の部分は温度データを温度センサー２２８から得ることになる。ステップ８５４において、メモリチップ２１２は、温度センサー２２８を用いて現在の温度を検知することになる。ステップ８５６において、温度データは制御回路２２０からコントローラ２４４に転送される。ステップ８５８において、コントローラ２４４は、現在の温度に基づいて、読み出しパラメータ（または他の動作パラメータ）のいずれかを調整するかどうかを判断する。調整すると判断すれば、ステップ８６０において、読み出しパラメータに対する調整が現在の温度に基づいて行なわれる。
【００７２】
ステップ８６０において行なわれる調整は、読み出し比較レベルの変更、センス電流の変更、センスアンプの動作の変更、ボディバイアス条件の変更など、当技術分野で周知のものである。調整の別の例は、スキャンされているメモリセルの母集団全体に対する閾値電圧分布全体を近似するデータを得るためにワードライン上のすべてのメモリセル（またはメモリセルの他の単位）のスキャンを実施することであってもよい。これらの分布から、システムは最大点の間の最小点を特定することができる。これらの最小点は新たな読み出し比較レベルを定めるために使用される。一部の実施形態では、ステップ８５２〜８６０がメモリ２１２によって自動的に実施されうる。
【００７３】
ステップ８６０の後、コントローラ２４４は、読み出されているデータが最初にプログラムされた時点からの温度データを得ることになる。一部の実施形態では、プログラミング温度が例えば同じワードライン上の余分なセルに記憶される場合に、プログラミング中の温度情報がステップ８６８の検知動作の一部として得られる可能性がある。ステップ８５８において、コントローラ２４４がパラメータを調整しないと決定すると、プロセスはステップ８６０をスキップしてステップ８６２に直接進み、プログラミングの時点の温度データを得る。一実施形態では、温度センサー２２８は、プログラミングの温度データと、メモリ２００などの不揮発性記憶デバイスにおける他の動作とを記憶することになる。ステップ８６２において、コントローラ２４４は読み出されているデータを特定することができ、制御回路２２０はデータがプログラムされたときと関係のある温度データに関する以前に記憶された温度データを得ることになる。その温度情報は、ステップ８６２の一部としてコントローラ２４４に送られる。
【００７４】
ステップ８６４において、コントローラ２４４は、温度変化に基づいて読み出しパラメータ（または他の操作パラメータ）を調整することになる。例えば、ステップ８５６において、コントローラ２４４は現在の温度を受け取る。ステップ８６２において、コントローラ２４４はプログラミングの時点における温度を受け取る。それゆえ、２つの温度を差し引く（例えば、現在の温度−過去の温度）ことによって、コントローラ２４４はプログラミングの時点と読み出しの時点（現在は読み出しの時点であるものとして）との温度差を知る。その温度差が閾値よりも大きければ、ステップ８６６において、コントローラ２４４はその温度（例えば、現在の温度または温度差）に基づいて温度補償を提供する決定をしてもよい。ステップ８６６において提供される温度補償は、隣接セルの状態データに基づかない温度補償であり、どちらかといえば従来型の温度補償である。
【００７５】
なお、ステップ８６４において、コントローラ２４４が温度補償を提供しないと決定すれば、プロセスはステップ８６６をスキップして直接ステップ８６８に進む。ステップ８６８において、コントローラ２４４は、目標メモリセルで１以上の検知動作を実施することになる。
【００７６】
ステップ８５０の読み出し要求は、複数のメモリセル、例えば、ワードライン上のメモリセルのすべて（または部分集合）または複数のワードラインに接続されたメモリセルのすべて（または部分集合）からデータを要求することになる可能性が高い。目標メモリセルに対する最初の組のデータを得るために様々な検知動作が実施される。また、ステップ８６８は、目標メモリセルに対する隣接メモリセルの検知動作を実施するステップを含む。一実施形態では、隣接メモリセルが同じワードライン上のメモリセルであるとき、同じワードラインのすべてのメモリセルに対して検知動作を実施する（当該実施により目標メモリセルに対するデータを得る）ステップでは隣接メモリセルに対するデータも得られる。場合によっては、この目標メモリセルは、目標メモリセルの各々に対する隣接メモリセルを含んでいてもよい。一部の実施形態では、ステップ８６８において検知されたデータは、後述する温度補償で調整されていない初期データである。一部の実施形態では、プログラミング温度が、例えば、同じワードライン上の余分なメモリセルに記憶される場合、プログラミング中の温度情報はステップ８６８の検知動作の一部として得られてもよい。
【００７７】
ステップ８７０において、検知動作からの初期情報はメモリチップ２１２からコントローラ２４４に転送される。ステップ８７２では、コントローラは、隣接セル状態情報および／または温度情報に基づく温度補償を用いて、最終データの読み出しを決定する。ステップ８７２のさらなる詳細を以下に示す。ステップ８７４において、コントローラ２４４はデータを報告する（図１４のステップ８１２参照）。なお、図１５の上述の議論において、温度補償はステップ８６０、ステップ８６６、およびステップ８７２の３回実施される。他の実施形態では、温度補償は、１回のみ（ステップ８７２）または２回（ステップ８７２と、ステップ８６０またはステップ８６６のいずれか）実施される。
【００７８】
前述のように、プログラムされて読み出されたデータは、エラーを有する場合がある。これらのエラーを修復するために、システムはプログラミング中にエラー訂正符号でデータを符号化し、読み出しプロセス中にデータを復号化するＥＣＣプロセスを採用する。図１６は、一実施形態に従って採用されうる不揮発性記憶装置に対してデータを符号化し復号化するシステムを示す。不揮発性メモリアレイにおける誤ったデータや破損したデータの読み出しを検出して訂正するためにエラー訂正制御が採用される。一般的に、一部の追加ＥＣＣまたはパリティビットが入力データから計算され符号化方式に従ってメモリアレイに記憶される。読み出しの際、入力データおよびＥＣＣビットがともに読み出され、デコーダではこれら両方を使用してエラーが存在するかどうかと、場合によってはエラーがどのビットで発生しているかと、が検出される。
【００７９】
図１６のエラー訂正制御システムは、一実施形態においてコントローラ２４４の一部として実装されうるが、種々のシステムおよびアーキテクチャが採用されうる。図１６のシステムは、エンコーダ８８０、不揮発性記憶装置８８２（例えば、メモリアレイ２００）、ＬＬＲ（対数尤度比）表８８４、およびデコーダ８８６を含む。エンコーダ８８０は、不揮発性記憶装置８８２に記憶されるべき、情報ビットとも称されるユーザーデータを受け取る。情報ビットは、マトリクスｉ＝［１ ０］で表わされる（なお、２ビットは単なる例として採用されるもので、多くの実施形態では２ビットよりも長い符号語を有する）。エンコーダ８０２は、このプロセスでは、２パリティビットがデータビットに追加されていることを示すマトリクスまたは符号語ｖ＝［１ ０ １ ０］によって表わされたデータを提供するために情報ビットにパリティビットが追加されるエラー訂正符号化プロセスを実施する。入力データをより複雑な方法で出力データにマッピングする、以下で議論するような他の方法が採用されうる。Ｇａｌｌａｇｅｒコードとも称される低密度パリティチェック（ＬＤＰＣ）コードが採用されうる。実際には、このようなコードは、典型的に、多数の記憶要素にわたって符号化される複数ページに適用される。ＬＤＰＣに関するさらなる情報がＤ．ＭａｃＫａｙ，Ｉｎｆｏｒｍａｔｉｏｎ Ｔｈｅｏｒｙ，Ｉｎｆｅｒｅｎｃｅ ａｎｄ Ｌｅａｒｎｉｎｇ Ａｌｇｏｒｉｔｈｍｓ，Ｃａｍｂｒｉｄｇｅ Ｕｎｉｖｅｒｓｉｔｙ Ｐｒｅｓｓ ２００３，ｃｈａｐｔｅｒ ４７に見られる。データビットは、この後、１組の不揮発性記憶素子の各不揮発性記憶素子を１以上のプログラムされた状態にプログラムすることによって、論理ページにマッピングされて不揮発性記憶装置８８２に記憶されうる。典型的に、符号語は多数のビットを有しており、多くのメモリセルに記憶される。符号語のビットの部分集合は、特定のメモリセルに記憶されることになる。
【００８０】
１つの可能な実施形態では、エラー訂正復号化を実施する反復「メッセージパッシング」復号化プロセスが使用される。当該エラー訂正復号化は、エンコーダ８８０において実装された符号化によって提供された冗長ビットを採用している。反復メッセージパッシング復号化に関するさらなる詳細は、前述のＤ．ＭａｃＫａｙの原本に見られる。反復確率的メッセージパッシング復号化では、符号語の各ビットに初期確率評価基準を割り当てることによって符号語を復号しようとする。確率評価基準は、各ビットの信頼性、すなわち、そのビットが誤っていない可能性を示す。一アプローチでは、確率評価基準は、ＬＬＲ表８８４から得られる対数尤度比ＬＬＲである。ＬＬＲ値は、記憶素子から読み出される様々なバイナリ・ビットの値が既知であることの信頼性の尺度である。
【００８１】
一実施形態では、ビットに対するＬＬＲが下記の数１で与えられ、ここで、Ｐ（ｖ＝０｜Ｙ）は、状態読み出しがＹであるとの条件が与えられる場合に、ビットが０である確率であり、Ｐ（ｖ＝１｜Ｙ）は、状態読み出しがＹであるとの条件が与えられる場合に、ビットが１である確率である。それゆえ、ＬＬＲ＞０はビットが１よりも０である可能性が高いことを示し、ＬＬＲ＜０はビットが０よりも１である可能性が高いことを示す。さらに、大きさが大きいことは確率が大きいこと、すなわち、信頼性の増大を示す。それゆえ、ＬＬＲ＝６３であるビットは、ＬＬＲ＝５であるビットよりも０である可能性が高く、ＬＬＲ＝−６３であるビットは、ＬＬＲ＝−５であるビットよりも１である可能性が高い。ＬＬＲ＝０は、ビットが０である可能性と１である可能性とが等しいことを示す。
【数１】
2013520760.tif 000003
【００８２】
ＬＬＲ値は、符号語におけるビット位置の各々に対して提供されうる。さらに、ビット列間のマッピングと不揮発性メモリのプログラムされた状態とを検討するに際して、不揮発性メモリから読み出された電圧レベルに関してビットが「０」または「１」のいずれかを保持する傾向が強いときにより大きい大きさのＬＬＲが使用されるように、ＬＬＲ表は複数の読み出し結果を明示することができる。
【００８３】
デコーダ８８６は、ＬＬＲを受け取り、符号を表すパリティチェックが満たされているかどうかを判断する逐次代入を繰り返す。すべてのパリティチェックが満たされると、復号プロセスは収束しており、符号語は再構成されている。１以上のパリティチェックが満たされていなければ、デコーダはパリティチェックと矛盾する１以上のビットのＬＬＲを調整してから、プロセスにおけるパリティチェックまたは次のチェックを再適用してこれが満たされているかどうかを判断する。例えば、ＬＬＲの大きさおよび／またはＬＬＲの極性が調整されうる。問題となっているパリティチェックがなお満たされなければ、ＬＬＲは別の反復中に再び調整されうる。ＬＬＲを調整すると、場合によってはビットフリッピング（例えば、０から１へのまたは１から０への）が生じる可能性がある。一実施形態では、問題となっているパリティチェックが満たされた時点で、該当する場合、別のパリティチェックが符号語に適用される。あるいは、プロセスは次のパリティチェックに移り、後で、失敗したチェックにループバックする。プロセスはすべてのパリティチェックを満たそうとして継続する。それゆえ、Ｙ１の復号プロセスは、パリティビットｖと復号化情報ビットｉを含む復号化情報を得るために完遂される。
【００８４】
図１７は、４つの状態にあるメモリセル当たり２ビットのデータを記憶するデバイスの種々の状態の各ビット位置に対する初期ＬＬＲ値を有するＬＲＲ表の例を示す（｜Ｍ３｜＞｜Ｍ２｜の場合）。各メモリセルに記憶された２ビットは、下位ビットおよび上位ビットと称される。正のＬＬＲ値は対応ビットに対する論理０を示し、負のＬＬＲ値は対応ビットに対する論理１を示す。大きさが大きいことは、その論理状態にあるビットに関する信頼性、すなわち確率が大きいことを示す。図１７のＬＬＲ表は、電圧ウィンドウ全体にわたって状態が均一に分布する場合のデータ例と、ガウス雑音と、図９の符号化に対応するグレー・コード・データと、に関するものである。
【００８５】
前述のように、メモリは情報ビットおよびパリティビット（またはＥＣＣビット）を表すデータを記憶し、パリティビットはエラー訂正符号に従って提供される。パリティビットは情報ビットとともに符号語を規定する。１つの可能なアプローチでは、低密度パリティチェック（ＬＤＰＣ）符号が使用されてもよい。実際には、このような符号は、典型的に、多数の記憶素子に対して符号化される多くのビットに適用される（すなわち、あらゆるセルがパリティビットを記憶するわけではなく、チェックは複数セルにわたって分散している）。ＬＤＰＣ符号は、発生するオーバーヘッドコストが比較的低いので望ましい。さらに、ＬＤＰＣ符号は反復メッセージパッシング復号アルゴリズムの下でＳｈａｎｎｏｎ限界に近い性能を示す。しかしながら、これは、いかなるタイプのエラー訂正符号も採用されうるので、一例にすぎない。例えば、他の線形ブロック符号が採用されてもよい。
【００８６】
ＬＤＰＣ符号は、スパース・パリティ・チェック行列を特徴とする線形ブロック符号である。行列はＫ個の情報ビットおよびＭ個のパリティビットを含み、符号長はＮ＝Ｋ＋Ｍである。さらに、パリティビットはＭ個のパリティチェック方程式が満たされるように規定され、行列の各行がパリティチェック方程式を表す。特に、行列の行はチェックノードによって特定され、列は記憶素子に記憶されるデータを示す変数、例えば、符号語ビットによって特定される。このデータは、下記の方程式に基づく情報ビットｉおよびパリティビットｐを含む。
【数２】
2013520760.tif 000004
ここで、Ｈはスパース・パリティ・チェック行列であり、ｖはデータベクトルであり、ｉは情報ビットベクトルであり、ｐはパリティ・ビット・ベクトルである。パリティベクトルｐは上式を解くことによって決定されうる。さらに、これは、行列Ｈの右側が下三角である場合はガウス消去法を用いて効果的に実施されうる。
【００８７】
ＬＤＰＣに対する復号化プロセスは、反復メッセージパッシング復号として知られる確率的反復復号化プロセスである。様々なメッセージパッシング復号アルゴリズムが当技術分野で周知である。一般的なこのようなアルゴリズムは、確率伝播アルゴリズムである。一実施形態では、反復は、チェックノードを連続的に横断するステップと各パリティチェックに基づいて関連ビットのＬＬＲ値を更新するステップとを含む。一アプローチでは、パリティ・チェック行列の第１のパリティチェックを満たすための試みがなされる。そのパリティチェックが満たされた時点で、第２のパリティチェックを満たすための試みがなされ、以下同様である。なお、ビットの正負符号がフリップされると、以前に満たされたパリティチェックがフリップの発生によって満たされなくなる場合がある。ＬＬＲは、すべてのチェックが当業者に周知の方法で満たされるまで修正される。なお、反復復号アルゴリズム群はメッセージパッシング復号アルゴリズム群を含み、メッセージパッシング復号アルゴリズム群はさらに確率伝播復号アルゴリズムを含む。
【００８８】
図１８は、隣接セル状態情報および／または温度情報に基づく温度補償を用いてデータを決定するための、コントローラ２４４に関するプロセスの一実施形態を説明するフローチャートである（図１５のステップ８７２）。図１８のプロセスでは、前述の確率的反復復号プロセスが使用される。ステップ９０２において、コントローラ２４４（または別のエンティティ）が各メモリセルに対する信頼性尺度（例えば、あるビットが０または１である確率）を割り当てることになる。セルが２、３、またはそれ以上のビットを表す場合、コントローラは複数の信頼性尺度を各セルに割り当てる。その尺度は、２つの要因、すなわち、雑音モデル（例えば、１つの状態をプログラムし、もう１つの状態を読み出す確率）とビットの状態へのマッピングとに依存している。他の実施形態では、ステップ９０２は、シミュレーション、実験、または過去の実績に基づいていてもよい。１つの実施態様例では、コントローラ２４４は、適切なＬＬＲ表（図１７参照）にアクセスすることになる。ＬＲＲ表は、製造前に、製造後試験後に、またはメモリシステムの動作中において動的に、作成されうる。検知動作から受け取られた初期情報に基づいて（ステップ８６８）、コントローラ２４４は、各メモリセルの読み出し、または各ビットの読み出しに対してＬＬＲ表から適切な信頼性を割り当てることになる。
【００８９】
ステップ９０４において、コントローラ２４４は、各メモリセルに関する温度オフセットを特定することになる。ステップ９０４におけるこの温度オフセットは、温度差のみに基づいており、例えば、ステップ９０４における温度オフセットは、プログラミングの時点の温度と読み出しの時点の温度との差に基づいていてもよい。一実施形態では、オフセットは乗数である。別の実施形態では、オフセットは加算される定数であってもよい。例えば、コントローラ２４４は、各温度差の値（または値の集合）に対する記載を有する表を、オフセットのあるべき姿を示すために、維持することができる。一実施形態では、表は、温度差の範囲と各範囲に対するオフセットとを有することになる。ステップ９０４は、適切なオフセットを特定するための温度差を用いるステップを含む。一実施形態では、温度オフセットは各メモリセルに対して提供される。メモリセルの温度オフセットが明らかになると、温度補償の影響はそのメモリセルによって記憶されたビットの各々に対して別々に算出されうる。
【００９０】
ステップ９０６において、コントローラ２４４は、各目標メモリセルに対する隣接セル状態に基づいて温度オフセットを特定することになる。先に説明したように、コントローラ２４４は、目標メモリセルと、各目標に対する隣接メモリセルと、を含む各メモリセルに関する初期検知情報とを有することになる。一実施形態では、コントローラ２４４によって、ワードラインに接続されたすべてのメモリセルが読み出されることになる。したがって、あらゆる目標メモリセルがワードライン上にある場合（ある事例ではすべてのメモリセルがワードラインに接続される）、ワードライン上の隣接メモリセルもそのデータをコントローラ２４４によって受け取られていることになる。一方または両方の隣接セル（あるいは、同じビットラインまたは斜め隣接セルを考慮する場合は２つよりも多くの隣接セル）のデータに基づいて、コントローラ２４４はオフセットを特定することができる。オフセットは、前述したように（表などのデータ構造を用いて）、乗数であってもよく、加算される定数であってよい。
【００９１】
ステップ９０８において、複合温度補償値が各メモリセル（あるいは一部の実施形態では、各ビット）に対して与えられる。複合温度補償は、各目標メモリセルに対して（または読み出された各ビットに対して）隣接セルデータ状態に基づく温度オフセット（ステップ９０６）によって調整された温度のみに基づく温度オフセットを含む（ステップ９０４）。例えば、ステップ９０４からのオフセットは乗数（Ｘ１）であり、ステップ９０６からのオフセットが第２の乗数（Ｘ２）である場合、複合温度補償は２つの乗数の積（Ｘ１）×（Ｘ２）であってもよい。ステップ９１０において、各目標メモリセル（または読み出された各ビット）に対して、ＬＬＲ表からの適切な確率値が複合温度補償に基づいて調整される。例えば、乗数はＬＬＲ表の値が乗じられ、定数はＬＬＲ表内の値に加算される。ステップ９１２において、ＥＣＣ復号処理が実施される（図１６のステップ８８６参照）。ＥＣＣ処理９１２の結果は、符合語に収束することである。特定された符号語がプログラムされた符号語と異なる確率が小さいとき、デコーダは実際のプログラムされたデータを再現構成する。ステップ９１６において、そのデータはコントローラ２４４によってホストに報告される。一部の実施形態では、データ内のエラーの数がデコーダの訂正能力よりも大きい場合、たとえ反復回数および確率調整の回数が大きくてもデコーダは機能しないであろう。
【００９２】
図１８は、ステップ９２０、９２２、９２４、および９２６を含むＥＣＣ復号処理９１２を示す。ステップ９２０において、データは、現在の確率に基づいて復号化される。ステップ９２２において、復号化されたデータが正当な符号語に一致すると、プロセスは成功裏に完了しており、データはステップ９１６において報告される。ステップ９２０からの復号化されたデータが認められた符号語に一致しなければ（ステップ９２４）、ステップ９２６における確率の調整が必要であり、プロセスはステップ９２０にループバックしてデータの復号を再び試みる。確率の調整前に、システムはステップ９２０〜９２６のループが最大回数（ｍａｘ）より多く実施されるかどうかを試験する。最大回数より多く実施されれば、プロセスは失敗である（ステップ９３０）。最大回数より多く実施されなければ、ステップ９２６において確率を調整する必要がある。ステップ９２６の一実施形態は、確率の大きさを調整するステップを含む。ステップ９２６の別の実施形態は、確率の正負符号を調整するステップを含む。さらに別の実施形態では、大きさ、および正負符号が調整されうる。大きさ、または正負符号の調整には様々な方法がある。一実施形態では、ゼロに最も近い１以上の確率値はそれらの正負符号がフリップされて大きさが変更されることになる。ステップ９１２のプロセスは、前述されかつ当技術分野で周知であるＬＤＰＣ符号の教示を用いる反復処理である。
【００９３】
前述の議論において、目標メモリセルの初期検知は、読み出し比較レベルＶｒａ、Ｖｒｂ、およびＶｒｃを使用するステップを含む（図６参照）。別の実施形態において、追加読み出し比較レベルは、大きい分解能で検知するために採用されうる。例えば、図１９は、読み出し比較レベルＶｒａ、Ｖｒｂ１、Ｖｒｂ２、Ｖｒｂ３、Ｖｒｃ１、Ｖｒｃ２、およびＶｒｃ３の重複閾値電圧分布を示す。これらの読み出し比較レベルの各々を読み出すことによって、より正確な確率が様々な初期データセットに割り当てられうる。例えば、メモリセルがＶｒａとＶｒｂ１との間の閾値電圧を有する場合、そのメモリセルは範囲Ｒ１の閾値電圧を有する。範囲Ｒ１にあるメモリセルは状態Ａにある確率が高い。メモリセルがＶｒｂ１よりも大きくＶｒｂ２よりも小さい閾値電圧を有する場合、そのメモリセルの閾値電圧は範囲Ｒ２にある。範囲Ｒ２に閾値電圧を有するメモリセルは、状態Ａにある確率が低く状態Ｂにある確率も同様に低い。メモリセルがＶｒｂ２よりも大きくＶｒｂ３よりも小さい閾値電圧を有する場合、閾値電圧は範囲Ｒ３にある。範囲Ｒ３に閾値電圧を有するメモリセルは、状態Ｂにある確率が低いが状態Ａにある確率はさらに低い。範囲Ｒ２にあるメモリセルが状態Ｂにある確率は、範囲Ｒ３にあるメモリセルが状態Ｂにある確率よりも小さい。メモリセルがＶｒｂ３よりも大きくＶｒｃ１よりも小さい閾値電圧を有する場合、その閾値電圧は範囲Ｒ４にある。閾値電圧が範囲Ｒ４にあるメモリセルは、状態Ｂにある確率が高い。メモリセルがＶｒｃ１よりも大きくＶｒｃ２よりも小さい閾値電圧を有する場合、そのメモリセルは範囲Ｒ５の閾値電圧を有する。範囲Ｒ５に閾値電圧を有するメモリセルは状態Ｂにある確率が低く状態Ｃにある確率はさらに低い。メモリセルがＶｒｃ２よりも大きくＶｒｃ３よりも小さい閾値電圧を有する場合、その閾値電圧は範囲Ｒ６にある。範囲Ｒ６に閾値電圧を有するメモリセルは状態Ｃにある確率が低く状態Ｂにある確率はさらに低い。メモリセルがＶｒｃ３よりも大きい閾値電圧を有する場合、そのメモリセルは範囲Ｒ７にある。範囲Ｒ７に閾値電圧を有するメモリセルは、状態Ｃにある確率が高い。なお、状態Ｅは図１９に示されていない。しかしながら、メモリセルがＶｒａよりも小さい閾値電圧を有する場合、閾値電圧は範囲Ｒ０にあり、状態Ｅにある確率が高い。
【００９４】
図２０は、図１９の閾値電圧範囲の各々にあるビット当たりの信頼性尺度（ＬＬＲ）を示すＬＬＲ表である。図２０のＬＬＲ表では、メモリセル当たり２ビットが記憶されるものと見なしている。図２０のＬＬＲ表の例では、大きさＭ１〜Ｍ５が｜Ｍ５｜＞｜Ｍ４｜＞｜Ｍ３｜＞｜Ｍ２｜＞｜Ｍ１｜を満たしている。表内の大きさの各々は、そのビットが１または０である対数尤度比を示す。負符号でビットのＬＬＲが１であることを示し、正符号でそのビットのＬＬＲが０であることを示す。
【００９５】
一実施形態は、図１９の読み出し比較レベルと図２０のＬＬＲ表とを用いた図１５および図１８（図１５のステップ８７２）のプロセスを含む。検知動作を実施するとき（ステップ８６８参照）、メモリチップは、メモリセルがどの範囲（Ｒ０、Ｒ１・・・Ｒ７）にあるかを特定するために、Ｖｒａ、Ｖｒｂ１、Ｖｒｂ２、Ｖｒｂ３、Ｖｒｃ１、Ｖｒｃ２、およびＶｒｃ３において読み出し比較レベルを実施することになる。このデータはソフト情報と称される。このソフト情報はこの後コントローラ２４４に伝達される。コントローラ２４４は、この後、図１８のステップ９０２において図２０のＬＬＲ表を用いて初期確率を特定することになる。図２０のＬＬＲ表の値は、この後、先に説明したように、温度情報と隣接データ状態情報との組み合わせに基づいてステップ９１０において調整されることになる（ステップ９０４および９０６）。
【００９６】
一実施形態では、各電圧範囲はビットシーケンスにマッピングされるが、そのシーケンスは、コントローラに対して、電圧範囲を特定している。そのシーケンスは３ビット以上を含む。通常、そのシーケンスの最初の２ビットはハードビットであり、例えば、これらは下位ページのビットの正負符号と上位ページのビットの正負符号とを表すが、シーケンスの残りのビットはソフトビットである。しかしながら、別のマッピングでは、各閾値を表すビットシーケンスとビットの各々の正負符号に関する情報とは、単に、ＬＬＲ表に見られるだけである。４つを超える範囲があると、特定された電圧はソフト情報を表す。ハードビットおよびソフトビットは、シーケンスまたはマッピングを表す範囲で、システムはマッピングにおけるハードビット（ＨＢ）に等価である記憶されたビット（ＳＢ）を直接特定することができるが、シーケンスにおけるビットの残りはソフトビットである。グレーマッピングを使用するとセルの容量が改善されることが分かる。例えば、ＳＢ表現が重要ではなくても、ＨＢがグレー符号であれば十分である。その一方で、セルの容量の改善はＢＩＣＭ（ビットインターリーブ符号化変調）方式の下での最適訂正能力の効果である。
【００９７】
隣接セルデータ状態情報に基づいて温度補償を提供する別の実施形態は、隣接セルデータ状態情報を提供するか否かを判断するために、読み出し時の温度とプログラミング時の温度との温度差ΔＴを用いるステップを含む。例えば、図１８のステップ９０４〜９１０は、図２１のステップ９８０、９８２、および９８４に置き換えられる。ステップ９８２または９８４に続いて、プロセスは図１８のステップ９１２に進むことになる。ステップ９８０において、システムはΔＴがある閾値定数Ｋよりも大きいかどうかを判断することになる。ΔＴが定数Ｋより大きくなければ、補償は提供されない（ステップ９８２）。しかしながら、ΔＴが定数Ｋよりも大きければ、ステップ９８４において補償が隣接セルデータ状態に基づいて提供される。２００９年３月２６日に公開された米国特許出願公開第２００９／００８０２５９号「Ｐｏｓｔ−Ｆａｃｔｏ Ｃｏｒｒｅｃｔｉｏｎ ｆｏｒ Ｃｒｏｓｓ Ｃｏｕｐｌｉｎｇ ｉｎ ａ Ｆｌａｓｈ Ｍｅｍｏｒｙ」には、不揮発性記憶素子からデータを読み出す方法が開示されており、そこではメモリセルに記憶されたデータが、測定値と、隣接セルが目標メモリセルの読み出しを妨げるそれぞれの程度とに基づいて推定される。図２１のステップ９８４は、米国特許出願公開第２００９／００８０２５９号のプロセスを実現することによって実施されうる。
【００９８】
別の一連の実施形態では、温度補償（隣接セルデータ状態を考慮に入れた）が読み出しプロセスに対して読み出し比較レベルを調整するために採用されうる。図２２および２３は、温度補償（隣接セルデータ状態に基づいて調整される）に基づいた読み出し比較値の変更について２つの実施形態を説明するフローチャートである。図２２のプロセスは、同じワードラインに沿った他のメモリセルに対する隣接セルデータ状態を考慮に入れるステップを含み、検知のステップ後に補償を提供する。図２３のプロセスでは、同じワードライン上または同じビットライン上の隣接セルデータ状態を考慮に入れることができ、検知の前に補償を提供する。
【００９９】
図２２のステップ１０００では、コントローラはデータを読み出すための要求を受け取る。ステップ１００２において、コントローラ２４４は、前述のようにメモリチップからの温度データを要求する。ステップ１００４において、メモリチップは、前述のように、温度情報を（例えば、温度センサー２２８を用いて）検知することになる。ステップ１００６において、ステップ１００４で検知された現在の温度データと、過去の温度データ（読み出されるデータのプログラミングの時点における温度データ）とがコントローラ２４４に転送される。ステップ１００８において、コントローラ２４４は、ΔＴ（現在の温度と、データがプログラムされた時点で測定された温度との差）がある定数Ｋよりも大きいかどうかを判断する。ΔＴがＫよりも大きくなければ、ステップ１０２０において、検知動作が標準比較レベル（例えば、Ｖｒａ、Ｖｒｂ、およびＶｒｃ）で実施される。ステップ１０２２において、検知されたデータはコントローラ２４４に転送される。ステップ１０２４において、コントローラは当技術分野で周知の方法のいずれかを用いて最終データを決定することになる。一実施形態では、標準ＥＣＣ復号化が採用されうる。別の実施形態では、前述のように、あるいは先行技術で知られる他の反復ＥＣＣプロセスが採用されうる。ステップ１０２６において、データはホストに報告される。
【０１００】
ステップ１００８において、コントローラ２４４は、ΔＴが定数Ｋよりも大きいと判断すると、ステップ１０３０において、検知動作が各データ状態に対して複数の比較レベルで実施される。例えば、読み出し動作は、標準比較レベルと、標準比較レベルよりも大きい１以上の比較レベルと、標準比較レベルより小さい１以上の比較レベルと、で実施されうる。一実施形態では、状態の各対の間での３つの読み出し動作が、例えば、Ｖｒａ、Ｖｒａ＋．２ｖ、Ｖｒａ−．２ｖ、Ｖｒｂ、Ｖｒｂ＋．２ｖ、Ｖｒｂ−．２ｖ、Ｖｒｃ、Ｖｒｃ＋．２ｖ、およびＶｒｃ−．２ｖで実施されうる。他の実施形態では、さらに多くの比較レベルが採用可能であり、±．２以外のインクリメントが採用されうる。ステップ１０３２において、データはコントローラ２４４に転送される。一実施形態では、各検知動作の結果が転送されうる。ステップ１０３４において、コントローラ２４４は、温度差（プログラミングの時点の温度と読み出しの時点との温度差）と隣接メモリセルの１以上のデータ状態との組み合わせに基づいて各メモリセルに使用するための適切なデータを選定することになる。温度差（プログラミングの時点の温度と読み出しの時点の温度との温度差）と、データを使用するために様々な読み出し動作のどれかを特定すべく隣接セルが状態Ｅ、Ａ、Ｂ、またはＣのいずれにあるかと、を考慮に入れた関数が作成されうる。別の実施形態では、１以上の表に温度差（プログラミングの時点の温度と読み出しの時点の温度との温度差）と隣接メモリセルのデータ状態の各組み合わせに関する情報が備えられうる。ステップ１０３４の後、データはステップ１０２６において報告される。なお、前述の図２２のプロセスは、コントローラ２４４によって実施される。別の実施形態では、図２２のプロセスはステートマシン２２２によって実施されうる。ステートマシンにおいてプロセスを実施することによって、システムは複数の検知動作からのデータをコントローラ２４４に転送する時間を節約することになる。
【０１０１】
図２３は、隣接セル状態情報を考慮に入れた温度補償に基づく読み出し比較値を調整するための別の実施形態を説明するフローチャートである。図２３のプロセスにおいて、補償は検知動作に先立って提供される。図２３のステップ１１００において、温度は前述のように検知される。ステップ１１０２において、プログラミングの時点の温度データがアクセスされる。ΔＴ（現在の温度とプログラミングの時点の温度との差）が定数Ｋよりも大きければ、データはステップ１１０６において隣接メモリセルからアクセスされる。一実施形態では、システムは隣接メモリセルを積極的に読み出すことができる。別の実施形態では、システムはメモリセルのワードライン、メモリセルのブロックなどに対する検知動作を事前に実施してその結果を保存していることになる。別の実施形態では、隣接メモリセルは、事前の読み出しおよび記憶が、他の動作のために行なわれていてもよい。ステップ１１０８において、隣接メモリセル状態とΔＴに基づいて、読み出し比較レベルに対する調整がなされる。例えば、一実施形態では、場合によって、標準読み出し比較値よりも大きい１つのオフセットと、標準読み出し比較値よりも小さい１つのオフセットと、があり、状態の各対の間にある読み出し比較レベルは全部で３つとなる。例えば、Ｖｒａ、Ｖｒａ＋．２ｖ、Ｖｒａ−．２ｖ、Ｖｒｂ、Ｖｒｂ＋．２ｖ、Ｖｒｂ−．２ｖ、Ｖｒｃ、Ｖｒｃ＋．２ｖ、およびＶｒｃ−．２ｖが採用されうる。別の実施形態では、複数のオフセットが採用されうる。別の実施形態では、標準読み出し比較値よりも大きい１つのオフセットと、標準読み出し比較値よりも小さい１つのオフセットと、が採用されうるが、標準読み出し比較電圧を読み出すことはなく、状態の各対の間にある読み出し比較レベルは全部で２つとなる。ΔＴと１以上の隣接セルのデータ状態とに基づいて、複数の読み出し比較値のどれを使用するかを特定する関数が設定されうる。あるいは、ΔＴと１以上の隣接セルのデータ状態との組み合わせに基づいて、読み出し比較値のどれかを選定するために表が設定されうる。ステップ１１１０において、検知動作は新たな読み出し比較値を用いて実施される。一実施形態では、様々なメモリセルが様々な読み出し比較レベルを利用することになる。したがって、複数の検知動作が種々のメモリセルに必要なすべての比較レベルにおける各状態に対して実施されることになる。しかしながら、どのメモリセルにとっても、データは、ステップ１１０８で特定される関連読み出し比較レベルに対して記憶されるだけになる。ステップ１１１２において、データはホストまたはコントローラなどの構成要素に報告される。なお、ステップ１１０４において、ΔＴが定数Ｋよりも大きいと判断されなければ、プロセスはステップ１１０６および１１０８をスキップして直接ステップ１１１０に進み、当初の比較値で検知動作を実施する。
【０１０２】
なお、隣接セルの状態情報は、温度差補償に加えて他の補償を調整するために使用されうる。例えば、隣接セルに依存する閾値電圧はフローティングゲートまたはフローティングゲート結合に起因してシフトし、プログラミング・セル・データに依存するプログラムディスターブは、他のメカニズムと同様に、やはり１以上の隣接メモリセルの状態に基づいて調整されうる。
【０１０３】
上記の実施形態では、システムがプログラミングの時点の温度と読み出しの時点の温度との一定温度差を検知すると、システムは、温度差と１以上の隣接メモリセルのデータ状態とを考慮に入れた追加の補償を適用することになる。別の実施形態では、システムは、温度差と１以上の隣接メモリセルのデータ状態とを考慮に入れた追加の補償を適用することなくまず読み出しプロセスを実施しようとする。このような読み出しプロセスは、ソフトビットの有無を問わずＥＣＣ（例えば、ＢＨＣまたはＬＤＰＣベースの）の採用を含んでいてもよい。ＥＣＣプロセスが失敗すると（または読み出しプロセスが失敗すると）、システムは回復モードで動作することになる。回復モードでは、システムは、温度差と１以上の隣接メモリセルのデータ状態とを考慮に入れた追加補償を適用するために前述の技術を用いて読み出しプロセスを再び実施することになる。
【０１０４】
一実施形態は、データを不揮発性記憶素子にプログラムすること、及び、そのプログラミング後にデータを不揮発性記憶素子から読み出すことを含む。データを読み出すことは、温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づいて温度補償を提供することを含む。
【０１０５】
一実施形態は、現在の温度情報を決定すること、目標不揮発性記憶素子へのデータのプログラミングからの温度情報にアクセスすること、現在の温度情報とデータのプログラミングからの温度情報との温度差を決定すること、目標不揮発性記憶素子の１以上の隣接不揮発性記憶素子に関する状態情報を決定すること、温度差が閾値よりも大きい場合に温度データに基づく目標不揮発性記憶素子に対する温度補償の量と１以上の隣接不揮発性記憶素子に関する状態情報とを決定して適用すること、目標不揮発性記憶素子から情報を検知すること、及び、検知に基づくデータと適用された温度補償とを報告することを含む。温度データは、現在の温度、温度差、またはその他の温度データを含みうる。
【０１０６】
一実施形態は、不揮発性記憶素子に関する現在の温度情報を受け取ること、不揮発性記憶素子の以前のプログラミング中の温度に対応する不揮発性記憶素子に関するプログラミング温度情報を受け取ること、少なくとも現在の温度情報に基づいて動作パラメータを調整すること、動作パラメータを用いて不揮発性記憶素子から初期情報を検知すること、不揮発性記憶素子の各々に関する１以上の隣接不揮発性素子の状態を表す情報と、現在の温度情報とプログラミング温度情報との温度差と、に基づく温度補償を用いて、初期情報から不揮発性記憶素子に記憶されたデータを特定すること、及び、特定されたデータを報告することを含む。
【０１０７】
一実施形態は、不揮発性記憶素子と、不揮発性記憶素子と通信するための１以上の管理回路と、を含む。１以上の管理回路は、温度情報と少なくとも１つの隣接不揮発性記憶素子に関する状態情報とに基づく温度補償を提供することによって不揮発性記憶素子からデータを読み出す。
【０１０８】
一実施形態は、ホストインターフェース、メモリ回路、およびコントローラ回路を含む。メモリ回路は、複数の不揮発性記憶素子、デコーダ、温度センサー、およびステートマシンを含む。コントローラ回路は、メモリ回路、およびホストインターフェースと通信している。コントローラ回路は、ステートマシンと通信している。メモリ回路から、コントローラ回路は、温度センサーからの現在の温度情報と、不揮発性記憶素子のプログラミングからの温度情報とを受け取る。メモリ回路から、コントローラは、不揮発性記憶素子から検知された初期情報を受け取る。コントローラは、少なくとも１つの隣接不揮発性記憶素子に関する状態情報と、現在の温度情報と不揮発性記憶素子のプログラミングからの温度情報との温度差と、に基づいて温度補償を決定する。コントローラは、不揮発性記憶素子に記憶されたユーザーデータを特定するために、温度補償と組み合わせた初期情報を用いてデータ復元プロセスを実施する。
【０１０９】
一実施形態は、不揮発性記憶素子の中にデータをプログラムする手段と、プログラミング後にその不揮発性記憶素子からデータを読み出す手段とを含む。データを読み出すステップは、温度情報および隣接セル状態情報に基づいて温度補償を提供するステップを含む。
【０１１０】
本発明についての先の詳細な記述は、例示および説明を目的として提示されている。これは、本発明を網羅するものではなく、本発明を開示された厳格な形態に制限するものでもない。上記の教示に照らして多くの修正形態および変更形態が考えられる。記載された実施形態は、本発明の原理およびその実用化を最もよく説明し、それによって、その実際的応用では、当業者が本発明を様々な実施形態で、かつ期待される具体的使用に適する様々な修正形態で最もよく利用しうるように選定された。本発明の範囲は、本明細書に添付された特許請求の範囲によって規定されることを意図するものである。
【図１】
2013520760.tif 000005
【図１Ａ】
2013520760.tif 000006
【図２】
2013520760.tif 000007
【図３】
2013520760.tif 000008
【図４】
2013520760.tif 000009
【図５】
2013520760.tif 000010
【図６】
2013520760.tif 000011
【図７】
2013520760.tif 000012
【図８Ａ】
2013520760.tif 000013
【図８Ｂ】
2013520760.tif 000014
【図８Ｃ】
2013520760.tif 000015
【図９】
2013520760.tif 000016
【図１０Ａ】
2013520760.tif 000017
【図１０Ｂ】
2013520760.tif 000018
【図１０Ｃ】
2013520760.tif 000019
【図１０Ｄ】
2013520760.tif 000020
【図１１】
2013520760.tif 000021
【図１２】
2013520760.tif 000022
【図１３】
2013520760.tif 000023
【図１４】
2013520760.tif 000024
【図１５】
2013520760.tif 000025
【図１６】
2013520760.tif 000026
【図１７】
2013520760.tif 000027
【図１８】
2013520760.tif 000028
【図１９】
2013520760.tif 000029
【図２０】
2013520760.tif 000030
【図２１】
2013520760.tif 000031
【図２２】
2013520760.tif 000032
【図２３】
2013520760.tif 000033
【国際調査報告】
2013520760.tif 000034
2013520760.tif 000035