(57)【特許請求の範囲】
【請求項１】
フラッシュ・メモリ・デバイス（１００）をプログラミングするための方法であって、
所与の一の信号レベルに関して前記フラッシュ・メモリ・デバイスをプログラミングすることと、元のプログラム値から消去項を減算することによって前記所与の一の信号レベルに関する複数のプログラム値を計算することとを備え、
前記所与の一の信号レベルは複数のプログラム値と対応し、
前記プログラミングするステップは、プログラミング段階と、複数の検証段階とを備え、
前記複数の検証段階の内の少なくとも２つは前記所与の一の信号レベルに関する異なるプログラム値であることを特徴とする方法。
【請求項２】
前記検証段階は、前記フラッシュ・メモリ・デバイスから１つまたは複数の読み取り値を読み取るステップと、前記１つまたは複数の読み取り値を、前記プログラム値の１つに対応する少なくとも１つのしきい値と比較するステップとをさらに備える請求項１に記載の方法。
【請求項３】
前記プログラム値のそれぞれは、複数のグループの１つに関連し、さらに前記グループのそれぞれは、或る信号レベルに対応する請求項１に記載の方法。
【請求項４】
前記プログラム値のそれぞれは、複数のグループの１つに関連し、さらに前記グループの数は、前記フラッシュ・メモリ・デバイスにおける信号レベルの数に対応する請求項１に記載の方法。
【請求項５】
前記検証段階の所与の検証段階から１つまたは複数のセルを除外することを、前記所与の検証段階に関連するプログラム値が、前記除外される１つまたは複数のセルに適用されない場合、行うステップをさらに備える請求項１に記載の方法。
【請求項６】
前記検証段階のさらなる検証段階から１つまたは複数のセルを除外することを、前記除外される１つまたは複数のセルが、前記検証段階の１つに合格した場合、行うステップをさらに備える請求項１に記載の方法。
【請求項７】
前記複数のプログラム値は、セル間干渉、バック・パターン依存、プログラム妨害、読み取り妨害、およびさらなる雑音の１つまたは複数を事前補償するプログラム値を備える請求項１に記載の方法。
【請求項８】
前記複数のプログラム値は、妨害を補償する事前補償されたプログラム値に対応する請求項１に記載の方法。
【請求項９】
前記プログラム値の数は、ＬＫに対応し、ただし、Ｌは、差分ΔＶｔ（ｌ）値の数であり、ΔＶｔ（ｌ）は、セルのＶｔ電圧の変化であり、さらにＫは、考慮されるアグレッサ・セルの数である請求項８に記載の方法。
【請求項１０】
フラッシュ・メモリ・デバイスをプログラミングするためのシステムであって、
メモリと、
前記メモリに結合され、所与の一の信号レベルに関して前記フラッシュ・メモリ・デバイスをプログラミングし、元のプログラム値から消去項を減算することによって前記所与の一の信号レベルに関する複数のプログラム値を計算するように動作する少なくとも１つのプロセッサとを備え、
前記所与の一の信号レベルは複数のプログラム値と対応し、
前記プログラミングするステップは、プログラミング段階と、複数の検証段階とを備え、
前記複数の検証段階の内の少なくとも２つは前記所与の一の信号レベルに関する異なるプログラム値であることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、参照によりそれぞれ本明細書に組み込まれている、２００８年７月２２日に出願した米国仮特許出願第６１／１３５，７３２号、および２００８年９月３０日に出願した米国仮特許出願第６１／１９４，７５１号の優先権を主張する。
【０００２】
本出願は、２００９年３月１１日に出願した、「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｔｏｒｉｎｇ  Ｄａｔａ  ｉｎ  ａ  Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ  ｗｉｔｈ  Ｃｒｏｓｓ−Ｐａｇｅ  Ｓｅｃｔｏｒｓ，Ｍｕｌｔｉ−Ｐａｇｅ  Ｃｏｄｉｎｇ  ａｎｄ  Ｐｅｒ−Ｐａｇｅ  Ｃｏｄｉｎｇ」という名称の国際特許出願第ＰＣＴ／ＵＳ０９／３６８１０号、ならびに２００９年６月３０日にそれぞれ出願し、参照により本明細書に組み込まれている「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｒｅａｄ−Ｓｉｄｅ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」という名称の国際特許出願第ＰＣＴ／ＵＳ０９／４９３２６号、「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｗｒｉｔｅ−Ｓｉｄｅ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」という名称の国際特許出願第ＰＣＴ／ＵＳ０９／４９３２７号、「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｉｎｔｅｒｆａｃｉｎｇ  Ｂｅｔｗｅｅｎ  ａ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ  ａｎｄ  ａ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ａｒｒａｙ」という名称の国際特許出願第ＰＣＴ／ＵＳ０９／４９３２８号、「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  Ｕｓｉｎｇ  Ｍｏｄｕｌａｔｉｏｎ  Ｃｏｄｉｎｇ」という名称の国際特許出願第ＰＣＴ／ＵＳ０９／４９３３０号、および「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｏｆｔ  Ｄｅｍａｐｐｉｎｇ  ａｎｄ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」という名称の国際特許出願第ＰＣＴ／ＵＳ０９／４９３３３号と関連する。
【０００３】
本発明は、一般に、フラッシュ・メモリ・デバイスに関し、より詳細には、そのようなフラッシュ・メモリ・デバイスにおいて信号レベルごとに複数のプログラム値をプログラミングするための改良された技術に関する。
【背景技術】
【０００４】
フラッシュ・メモリ・デバイスなどのいくつかのメモリ・デバイスは、データを格納するのにアナログ・メモリ・セルを使用する。各メモリ・セルは、電荷または電圧などの、格納値とも呼ばれるアナログ値を格納する。格納値は、セルの中に格納された情報を表す。例えば、フラッシュ・メモリ・デバイスにおいて、各アナログ・メモリ・セルは、通常、或る電圧を格納する。各セルに関する可能なアナログ値の範囲は、通常、複数のしきい値領域に分割され、各領域は、１つまたは複数のデータ・ビット値に対応する。データは、所望される１つまたは複数のビットに対応する公称アナログ値を書き込むことによって、アナログ・メモリ・セルに書き込まれる。
【０００５】
例えば、ＳＬＣ（シングルレベル・セル）フラッシュ・メモリ・デバイスは、１メモリ・セル当り１ビット（または可能な２つのメモリ状態）を格納する。他方、ＭＬＣ（マルチレベル・セル）フラッシュ・メモリ・デバイスは、１メモリ・セル当り２ビット以上を格納する（すなわち、各セルは、４つ以上のプログラミング可能な状態を有する）。ＭＬＣフラッシュ・メモリ・デバイスのより詳細な説明に関しては、例えば、参照により本明細書に組み込まれている、２００９年３月１１に出願した、「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｔｏｒｉｎｇ  Ｄａｔａ  ｉｎ  ａ  Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ  ｗｉｔｈ  Ｃｒｏｓｓ−Ｐａｇｅ  Ｓｅｃｔｏｒｓ，Ｍｕｌｔｉ−Ｐａｇｅ  Ｃｏｄｉｎｇ  ａｎｄ  Ｐｅｒ−Ｐａｇｅ  Ｃｏｄｉｎｇ」という名称の国際特許出願ＰＣＴ／ＵＳ０９／３６８１０号を参照されたい。
【０００６】
例えば、マルチレベルＮＡＮＤフラッシュ・メモリ・デバイスにおいて、浮動ゲート・デバイスが、異なるマルチビット値にそれぞれが対応する複数の間隔に分割される或る範囲内のプログラマブルしきい値電圧で使用される。所与のマルチビット値をメモリ・セルに入れるようにプログラミングするのに、メモリ・セルにおける浮動ゲート・デバイスのしきい値電圧が、その値に対応するしきい値電圧間隔に入るようにプログラミングされる。
【０００７】
メモリ・セルの中に格納されたアナログ値は、しばしば、歪んでいる。これらの歪みは、通常、例えば、ＢＰＤ（バック・パターン依存）、雑音、およびＩＣＩ（セル間干渉）に起因する。フラッシュ・メモリ・デバイスにおける歪みのより詳細な説明に関しては、例えば、参照によりそれぞれ本明細書に組み込まれている、Ｊ．Ｄ．Ｌｅｅ他、「Ｅｆｆｅｃｔｓ  ｏｆ  Ｆｌｏａｔｉｎｇ−Ｇａｔｅ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  ｏｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃｅｌｌ  Ｏｐｅｒａｔｉｏｎ」、ＩＥＥＥ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｌｅｔｔｅｒｓ、２６４〜２６６頁、（２００２年５月）、またはＫｉ−Ｔａｅ  Ｐａｒｋ他、「Ａ  Ｚｅｒｏｉｎｇ  Ｃｅｌｌ−ｔｏ−Ｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｐａｇｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｗｉｔｈ  Ｔｅｍｐｏｒａｒｙ  ＬＳＢ  Ｓｔｏｒｉｎｇ  ａｎｄ  Ｐａｒａｌｌｅｌ  ＭＳＢ  Ｐｒｏｇｒａｍ  Ｓｃｈｅｍｅ  ｆｏｒ  ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．４３、Ｎｏ．４、９１９〜９２８頁、（２００８年４月）を参照されたい。
【０００８】
ＩＣＩおよび他のそのような歪みの影響を軽減するためのいくつかの技術が、提案または示唆されてきた。例えば、Ｋｉ−Ｔａｅ  Ｐａｒｋ他は、ＩＣＩを軽減する偶／奇プログラミング、ボトムアップ・プログラミング、および多段プログラミングなどの既存のプログラミング技術を説明する。これらの既存の方法は、ＩＣＩおよび他の歪みの影響を低減することに役立ってきたが、トランジスタ・サイズが小さくされるにつれ、例えば、フラッシュ・セルが非常に近接しているために寄生静電容量がはるかに大きい６５ナノメートル技術より小さくなると、それほど効果的でなくなる。
【０００９】
「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｗｒｉｔｅ−Ｓｉｄｅ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」という名称の国際特許出願ＰＣＴ／ＵＳ０９／４９３２７号が、書き込み側セル間干渉軽減技術を開示する。フラッシュ・メモリ・デバイスが、そのフラッシュ・メモリにおける少なくとも１つのターゲット・セル、およびこのターゲット・セルより後にプログラミングされるべき少なくとも１つのアグレッサ・セルに書き込まれるべきプログラム・データを獲得することによってプログラミングされる。ターゲット・セル上のセル間干渉を事前補償する事前補償されたプログラム値が計算される。アグレッサ・セルは、ターゲット・セルに隣接する１つまたは複数のセルを備える。複数のしきい値電圧に関連する事前補償されたプログラム値およびその他の値をフラッシュ・メモリ・アレイに書き込むための改良された技術の必要性が、依然として存在する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】米国仮特許出願第６１／１３５，７３２号
【特許文献２】米国仮特許出願第６１／１９４，７５１号
【特許文献３】国際特許出願第ＰＣＴ／ＵＳ０９／３６８１０号
【特許文献４】国際特許出願第ＰＣＴ／ＵＳ０９／４９３２６号
【特許文献５】国際特許出願第ＰＣＴ／ＵＳ０９／４９３２７号
【特許文献６】国際特許出願第ＰＣＴ／ＵＳ０９／４９３２８号
【特許文献７】国際特許出願第ＰＣＴ／ＵＳ０９／４９３３０号
【特許文献８】国際特許出願第ＰＣＴ／ＵＳ０９／４９３３３号
【特許文献９】米国特許第６，５２２，５８０号
【特許文献１０】米国特許出願第２００８／００８４７５１号
【非特許文献】
【００１１】
【非特許文献１】Ｊ．Ｄ．Ｌｅｅ他、「Ｅｆｆｅｃｔｓ  ｏｆ  Ｆｌｏａｔｉｎｇ−Ｇａｔｅ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  ｏｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃｅｌｌ  Ｏｐｅｒａｔｉｏｎ」、ＩＥＥＥ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｌｅｔｔｅｒｓ、２６４〜２６６頁、（２００２年５月）
【非特許文献２】Ｋｉ−Ｔａｅ  Ｐａｒｋ他、「Ａ  Ｚｅｒｏｉｎｇ  Ｃｅｌｌ−ｔｏ−Ｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｐａｇｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｗｉｔｈ  Ｔｅｍｐｏｒａｒｙ  ＬＳＢ  Ｓｔｏｒｉｎｇ  ａｎｄ  Ｐａｒａｌｌｅｌ  ＭＳＢ  Ｐｒｏｇｒａｍ  Ｓｃｈｅｍｅ  ｆｏｒ  ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．４３、Ｎｏ．４、９１９〜９２８頁、（２００８年４月）
【非特許文献３】Ｔ．Ｓ．Ｊｕｎｇ、「Ａ  １１７−ｍｍ２  ３．３−Ｖ  ｏｎｌｙ  １２８−Ｍｂ  Ｍｕｌｔｉｌｅｖｅｌ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ｆｏｒ  Ｍａｓｓ  Ｓｔｏｒａｇｅ  Ａｐｐｌｉｃａｔｉｏｎｓ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、ｖｏｌ．３１、Ｎｏ．１１、１５７５〜１５８３頁、（１９９６年１１月）
【非特許文献４】Ｋ．Ｄ．Ｓｕｈ他、「Ａ  ３．３  Ｖ  ３２  Ｍｂ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ｗｉｔｈ  Ｉｎｃｒｅｍｅｎｔａｌ  Ｓｔｅｐ  Ｐｕｌｓｅ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｓｃｈｅｍｅ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、ｖｏｌ．３０、Ｎｏ．１１、１１４９〜１１５６頁、（１９９５年１１月）
【発明の概要】
【課題を解決するための手段】
【００１２】
概ね、フラッシュ・メモリにおいて信号レベルごとに複数のプログラム値をプログラミングするための方法および装置が提供される。本発明の一態様によれば、複数のプログラム値を有するフラッシュ・メモリ・デバイスが、所与の信号レベルに関してフラッシュ・メモリ・デバイスをプログラミングすることによってプログラミングされ、プログラミングするステップは、プログラミング段階と、複数の検証段階とを備える。プログラミングするステップは、所与の信号レベルに関するすべてのセルがプログラミングされるまで繰り返されることが可能である。さらに、プログラミングするステップは、さらなる１つまたは複数の信号レベルに関して繰り返されることが可能である。
【００１３】
本発明の別の態様によれば、複数のプログラム値を有するフラッシュ・メモリ・デバイスがプログラミングされ、プログラミングするステップは、プログラミング段階と、複数の検証段階とを備え、少なくとも１つの信号レベルは、複数のプログラム値を備える。プログラミングするステップは、すべてのセルがプログラミングされるまで繰り返されることが可能である。信号レベルまたはプログラム値（あるいは両方）は、電圧、電流、および抵抗の１つまたは複数を使用して表されることが可能である。
【００１４】
プログラム値のそれぞれは、複数の互いに素なグループの１つに関連する。一変種において、これらの互いに素なグループのそれぞれは、或る信号レベルに対応する。別の変種において、これらの互いに素なグループの少なくとも２つは、異なる数のメンバを備える。さらに別の変種において、これらの互いに素なグループの数は、フラッシュ・メモリ・デバイスにおける信号レベルの数に対応する。
【００１５】
１つの例示的な実施例において、複数のプログラム値は、セル間干渉、バック・パターン依存、プログラム妨害、読み取り妨害、およびさらなる雑音の１つまたは複数を事前補償するプログラム値を備える。例えば、複数のプログラム値は、少なくとも１つのアグレッサ・セルからのセル間干渉などの妨害を補償する事前補償されたプログラム値に対応することが可能である。より低い複雑度で妨害を補償するためのいくつかのオプションの単純化が開示される。
【００１６】
本発明のより完全な理解、ならびに本発明のさらなる特徴および利点は、後段の詳細な説明および図面を参照することによって得られる。
【図面の簡単な説明】
【００１７】
【図１】従来のフラッシュ・メモリ・システムを示す概略ブロック図である。
【図２】図１の例示的なマルチレベル・セル・フラッシュ・メモリに関する例示的なしきい値電圧分布を示す図である。
【図３】ＭＬＣ（マルチレベル・セル）フラッシュ・メモリ・デバイスにおける例示的なフラッシュ・セル・アレイのアーキテクチャを示す図である。
【図４】図２の電圧割当てスキームに関する例示的な２段階ＭＬＣプログラミング・スキームを示す図である。
【図５Ａ】隣接セルに加えられるＩＣＩを低減する代替のＭＬＣプログラミング・スキームを示す図である。
【図５Ｂ】隣接セルに加えられるＩＣＩを低減する代替のＭＬＣプログラミング・スキームを示す図である。
【図６】ＭＬＣ（マルチレベル・セル）フラッシュ・メモリ・デバイスにおける例示的なフラッシュ・セル・アレイをさらに詳細に示す図である。
【図７】いくつかの例示的なアグレッサ・セルからの寄生静電容量に起因してターゲット・セルに関して存在するＩＣＩを示す図である。
【図８】コントローラ・ベースのＩＣＩ軽減技術を組み込む例示的なフラッシュ・メモリ・システムを示す概略ブロック図である。
【図９】メモリ・ベースのＩＣＩ軽減技術を組み込む例示的なフラッシュ・メモリ・システムを示す概略ブロック図である。
【図１０】本発明の特徴を組み込む書き込み側ＩＣＩ軽減プロセスの例示的な実施例を説明する流れ図である。
【図１１】従来のＩＳＰＰ（インクリメンタル・ステップ・パルス・プログラミング）プロセスを説明する流れ図である。
【図１２】本発明の特徴を組み込むＩＳＰＰプロセスを説明する流れ図である。
【図１３】本発明の特徴を組み込む代替のＩＳＰＰプロセスを説明する流れ図である。
【発明を実施するための形態】
【００１８】
本発明の様々な態様は、シングルレベル・セルＮＡＮＤフラッシュ・メモリ・デバイスまたはＭＬＣ（マルチレベル・セル）ＮＡＮＤフラッシュ・メモリ・デバイスなどのメモリ・デバイスにおいてＩＣＩを軽減するための信号処理技術を対象とする。本明細書で使用される、マルチレベル・セル・フラッシュ・メモリは、各メモリ・セルが２ビット以上を格納するメモリを備える。通常、１つのフラッシュ・セルの中に格納された複数のビットは、異なるページに属する。本発明は、アナログ値を電圧として格納するメモリ・セルを使用して本明細書で説明されるが、本発明は、当業者には明白なとおり、格納されたデータ状態を表すのに電圧、電流、または抵抗を使用するなどの、フラッシュ・メモリに関する任意の格納機構と共に使用され得る。
【００１９】
図１は、従来のフラッシュ・メモリ・システム１００の概略ブロック図である。図１に示されるとおり、例示的なフラッシュ・メモリ・システム１００は、フラッシュ制御システム１１０と、フラッシュ・メモリ・ブロック１６０とを備える。例示的なフラッシュ制御システム１１０は、フラッシュ・コントローラ１２０と、符号器／復号器ブロック１４０と、１つまたは複数のバッファ１４５とを備える。代替の実施形態において、符号器／復号器ブロック１４０およびいくつかのバッファ１４５は、フラッシュ・コントローラ１２０内部に実装されてもよい。符号器／復号器ブロック１４０およびバッファ１４５は、例えば、よく知られた市販の技術および／または製品を使用して実施されることが可能である。
【００２０】
例示的なフラッシュ・メモリ・ブロック１６０は、よく知られた市販の技術および／または製品を使用して、それぞれ実施されることが可能なメモリ・アレイ１７０と、１つまたは複数のバッファ１８０とを備える。メモリ・アレイ１７０は、ＮＡＮＤフラッシュ・メモリ、ＰＣＭ（相変化メモリ）、ＭＲＡＭメモリ、ＮＯＲフラッシュ・メモリ、または別の不揮発性フラッシュ・メモリなどのシングルレベル・セル・フラッシュ・メモリまたはマルチレベル・セル・フラッシュ・メモリとして実施されることが可能である。本発明は、主に、マルチレベル・セルＮＡＮＤフラッシュ・メモリのコンテキストにおいて例示されるが、本発明は、当業者には明白なとおり、シングルレベル・セル・フラッシュ・メモリおよびその他の不揮発性メモリにも適用され得る。
【００２１】
（マルチレベル・セル・フラッシュ・メモリ）
マルチレベル・セルＮＡＮＤフラッシュ・メモリにおいて、しきい値検出器が、或る特定のセルに関連する電圧値を、事前定義されたメモリ状態に変換するのに通常、使用される。図２は、参照により本明細書に組み込まれている米国特許第６，５２２，５８０号の教示に基づく、図１の例示的なマルチレベル・セル・フラッシュ・メモリ１７０に関する例示的なしきい値電圧分布を示す。一般に、セルのしきい値電圧は、セルが或る量の電流を伝導するようにセルに印加される必要がある電圧である。しきい値電圧は、セルの中に格納されたデータに関する測度である。
【００２２】
図２に示される例示的な実施形態において、各格納要素は、可能な４つのデータ状態を使用して、各メモリ・セルの中に２ビットのデータを格納する。図２は、４つのピーク２１０〜２１３を示し、各ピークは、１つの状態に対応する。マルチレベル・セル・フラッシュ・デバイスにおいて、しきい値電圧分布グラフ２００の異なるピーク２１０〜２１３が、セルの中に２ビットを格納するために使用される。
【００２３】
しきい値電圧分布グラフ２００のピーク２１０〜２１３には、対応する２進値でラベルが付けられる。このため、セルが第１の状態２１０にある場合、セルは、低い方のビット（最下位ビット、ＬＳＢとしても知られる）に関して「１」を表し、高い方のビット（最上位ビット、ＭＳＢとしても知られる）に関して「１」を表す。状態２１０は、一般に、セルの初期の未だにプログラミングされていない状態、または消去された状態である。同様に、セルが第２の状態２１１にある場合、セルは、低い方のビットに関して「０」を表し、高い方のビットに関して「１」を表す。セルが第３の状態２１２にある場合、セルは、低い方のビットに関して「０」を表し、高い方のビットに関して「０」を表す。最後に、セルが第４の状態２１３にある場合、セルは、低い方のビットに関して「１」を表し、高い方のビットに関して「０」を表す。
【００２４】
しきい値電圧分布２１０は、０ボルトを下回る負のしきい値電圧レベルで、消去された状態（「１１」データ状態）にあるアレイ内のセルのしきい値電圧Ｖｔの分布を表す。「１０」ユーザ・データを格納するメモリ・セルのしきい値電圧分布２１１が、０ボルトから１ボルトまでの範囲内にあるように示され、「００」ユーザ・データを格納するメモリ・セルのしきい値電圧分布２１２が、１ボルトから２ボルトまでの範囲内にあるように示される。しきい値電圧分布２１３は、しきい値電圧レベルが２ボルトから４．５ボルトまでの範囲内の読み取り走査電圧に設定された、「０１」データ状態にプログラミングされているセルの分布を示す。
【００２５】
このように、図２の例示的な実施形態において、０ボルト、１ボルト、および２ボルトが、各レベルまたは各状態の間の電圧レベルしきい値として使用され得る。これらの電圧レベルしきい値は、フラッシュ・メモリ１６０（例えば、フラッシュ・メモリ１６０における感知回路）によって、所与のセルの電圧レベルまたは電圧状態を判定するのに使用される。フラッシュ・メモリ１６０は、測定された電圧を電圧レベルしきい値と比較することに基づいて、各セルに１つまたは複数のビットを割り当て、これらの割当ては、次に、ハード判定としてフラッシュ制御システム１１０に伝送される。さらに、または代替として、ソフト情報を使用する実施例において、フラッシュ・メモリ１６０は、メモリ・セルの中に格納されたビットの数より多くのビットが、測定された電圧を表すのに使用される場合に、測定された電圧、または測定された電圧の量子化されたバージョンをソフト情報としてフラッシュ制御システム１１０に伝送することが可能である。
【００２６】
セルは、通常、よく知られたＩＳＰＰ（インクリメンタル・ステップ・パルス・プログラミング）技術およびプログラミング／検証技術を使用してプログラミングされることにさらに留意されたい。ＩＳＰＰ技術およびプログラミング／検証技術の説明に関しては、例えば、参照により本明細書に組み込まれている、米国特許出願第２００８／００８４７５１号、Ｋｉ−Ｔａｅ  Ｐａｒｋ他、「Ａ  Ｚｅｒｏｉｎｇ  Ｃｅｌｌ−ｔｏ−Ｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｐａｇｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｗｉｔｈ  Ｔｅｍｐｏｒａｒｙ  ＬＳＢ  Ｓｔｏｒｉｎｇ  ａｎｄ  Ｐａｒａｌｌｅｌ  ＭＳＢ  Ｐｒｏｇｒａｍ  Ｓｃｈｅｍｅ  ｆｏｒ  ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．４３、Ｎｏ．４、９１９〜９２８頁、（２００８年４月）、Ｔ．Ｓ．Ｊｕｎｇ、「Ａ  １１７−ｍｍ２  ３．３−Ｖ  ｏｎｌｙ  １２８−Ｍｂ  Ｍｕｌｔｉｌｅｖｅｌ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ｆｏｒ  Ｍａｓｓ  Ｓｔｏｒａｇｅ  Ａｐｐｌｉｃａｔｉｏｎｓ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、ｖｏｌ．３１、Ｎｏ．１１、１５７５〜１５８３頁、（１９９６年１１月）、およびＫ．Ｄ．Ｓｕｈ他、「Ａ  ３．３  Ｖ  ３２  Ｍｂ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ｗｉｔｈ  Ｉｎｃｒｅｍｅｎｔａｌ  Ｓｔｅｐ  Ｐｕｌｓｅ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｓｃｈｅｍｅ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、ｖｏｌ．３０、Ｎｏ．１１、１１４９〜１１５６頁、（１９９５年１１月）を参照されたい。一般に、プログラミング／検証サイクル中、フラッシュ・メモリ１６０は、最小限のターゲットしきい値電圧（本明細書で「プログラム電圧」とも呼ばれる）を超えるまで、高まる電圧を徐々に印加して、セル・トランジスタの中に電荷を格納する。例えば、図２の例における「１０」データ状態をプログラミングする際、フラッシュ・メモリ１６０は、０．４ボルトという最小限のターゲットしきい値電圧を超えるまで、高まる電圧を徐々に印加して、セル・トランジスタの中に電荷を格納する。
【００２７】
後段でさらに説明するとおり、シングル・メモリ・セルの中に格納される２ビットのそれぞれは、異なるページからである。つまり、各メモリ・セルの中に格納された２ビットの各ビットには、異なるページ・アドレスが付いている。図２に示される右側のビットは、下位のページ・アドレスが入力されると、アクセスされる。左側のビットは、上位のページ・アドレスが入力されると、アクセスされる。
【００２８】
図３は、ＭＬＣ（マルチレベル・セル）フラッシュ・メモリ・デバイス１６０における例示的なフラッシュ・セル・アレイ３００のアーキテクチャを示し、それぞれの例示的なセルは、通常、２ビットを格納する浮動ゲート・トランジスタに対応する。図３で、各セルは、その２ビットが属する２つのページに関する２つの番号に関連する。例示的なセル・アレイ・セクション３００は、ワード線ｎ乃至ｎ＋２、および４つのビット線を示す。例示的なフラッシュ・セル・アレイ３００は、偶ページと奇ページに分割され、ただし、例えば、偶数番号を有するセル（番号０および２を有するセルなどの）は、偶ページに対応し、奇数番号を有するセル（番号１および３を有するセルなどの）は、奇ページに対応する。ワード線ｎは、例えば、偶ビット線の中に偶ページ０および２を格納し、奇ビット線の中に奇ページ１および３を格納する。
【００２９】
さらに、図３は、偶ビット線または奇ビット線が、示された順序で順次に（ボトムアップで）選択され、プログラミングされる例示的なプログラミング・シーケンスを示す。番号は、それらのページがプログラミングされる順序を示す。例えば、ページ０は、ページ１より前にプログラミングされる。偶ページおよび奇ページのプログラミングのさらなる説明に関しては、例えば、参照により本明細書に組み込まれている、Ｋｉ−Ｔａｅ  Ｐａｒｋ他、「Ａ  Ｚｅｒｏｉｎｇ  Ｃｅｌｌ−ｔｏ−Ｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｐａｇｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｗｉｔｈ  Ｔｅｍｐｏｒａｒｙ  ＬＳＢ  Ｓｔｏｒｉｎｇ  ａｎｄ  Ｐａｒａｌｌｅｌ  ＭＳＢ  Ｐｒｏｇｒａｍ  Ｓｃｈｅｍｅ  ｆｏｒ  ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」、ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．４３、Ｎｏ．４、９１９〜９２８頁、（２００８年４月）を参照されたい。
【００３０】
図４は、図２の電圧割当てスキームに関する例示的な２段階ＭＬＣプログラミング・スキーム４００を示す。図４に示されるとおり、ＬＳＢプログラミング段階中、消去された状態４１０にある選択されたセルの状態は、ＬＳＢがゼロである場合、プログラミングされた最低の状態４１１に移る。このため、ＬＳＢプログラミング段階で、メモリ・セルは、消去された状態「１１」から「１０」にプログラミングされる。次に、ＭＳＢプログラミング段階中、２つの状態、状態「００」（４１２）および状態「１０」（４１３）が、前のＬＳＢデータに依存して順次に形成される。一般に、ＭＳＢプログラミング段階中、「１０」状態は、「００」にプログラミングされ、状態「１１」は、「０１」にプログラミングされる。
【００３１】
図４のプログラミング・スキーム４００は、状態４１０から状態４１３への状態の変化に関連する最大電圧シフトを例示することが注目される。状態の変化に関連する最大電圧シフトを低減し、その結果、電圧シフトによって生じるＩＣＩを低減する、いくつかのプログラミング・スキームが提案または示唆されている。
【００３２】
図５Ａおよび図５Ｂは一緒になって、隣接セルに加えられるＩＣＩを低減する代替のＭＬＣプログラミング・スキーム５００を示す。図５Ａに示されるとおり、ＬＳＢプログラミング段階中、メモリ・セルが、ＳＬＣプログラミングと同様の仕方で、状態「１１」から、一時的（または中間）状態として状態「ｘ０」にプログラミングされる。同一のワード線における隣接セルもＬＳＢプログラミングされた後、分布は、ＩＣＩに起因して、図５Ａにおけるピーク５１０によって示されるとおり、場合により、広くなっている。その後、図５Ｂに示されるＭＳＢプログラミング段階で、「ｘ０」状態が、入力データに対応する最終段階として「００」または「１０」にプログラミングされ、さもなければ、「１１」状態が、最終の「０１」状態にプログラミングされる。一般に、「１１」セルを除くすべてのメモリは、隣接セルによって生じるＩＣＩが大きく低減され得るように、ＬＳＢデータに関する一時的にプログラミングされた状態から、ＭＳＢプログラミング状態における最終状態に再プログラミングされる。最終状態におけるセルは、最終状態に再プログラミングされているので、中間状態にある間にセルが経験したＩＣＩを被らない。最終状態におけるセルは、最終状態になってからセルが経験したＩＣＩだけしか被らない。前述したとおり、中間プログラミング段階を使用する図５Ａおよび図５Ｂのマルチステップ・プログラミング・シーケンスは、最大電圧変化を低減し、したがって、これらの電圧変化によって生じるＩＣＩを低減する。図５Ｂで、例えば、ＭＳＢプログラミング段階中の最大電圧シフトは、状態「１１」から「０１」への遷移、および状態「ｘ０」から「１０」への遷移にそれぞれ関連することを見て取ることができる。これらの電圧シフトは、図４における状態「１１」から「０１」への最大電圧シフトと比べて、相当に小さい。
【００３３】
図６は、ＭＬＣ（マルチレベル・セル）フラッシュ・メモリ・デバイス１３０における例示的なフラッシュ・セル・アレイ６００をさらに詳細に示す。図６に示されるとおり、フラッシュ・セル・アレイ６００は、１フラッシュ・セル、ｃｉ当り３ビットを格納する。図６は、１ブロックに関するフラッシュ・セル・アレイ・アーキテクチャを示し、ただし、それぞれの例示的なセルは、３ビットを格納する浮動ゲート・トランジスタに通常、対応する。例示的なセル・アレイ６００は、ｍ個のワード線と、ｎ個のビット線とから成る。通常、現行のマルチページ・セル・フラッシュ・メモリにおいて、単一のセル内の複数のビットは、異なるページに属する。図６の例において、各セルに関する３ビットは、異なる３つのページに対応し、各ワード線が、３つのページを格納する。以下の説明において、ページ０、１、および２は、ワード線内で低ページ・レベル、中ページ・レベル、および高ページ・レベルと呼ばれる。
【００３４】
前述したとおり、フラッシュ・セル・アレイは、偶ページと奇ページにさらに分割されることが可能であり、ただし、例えば、偶数番号を有するセル（図６のセル２および４などの）は、偶ページに対応し、奇数番号を有するセル（図６のセル１および３などの）は、奇ページに対応する。この場合、或るページ（ページ０などの）は、偶セルにおいて偶ページ（偶ページ０）を含み、奇セルにおいて奇ページ（奇ページ０）を含む。
【００３５】
（セル間干渉）
前述したとおり、ＩＣＩは、セル間の寄生静電容量の結果であり、一般に、歪みの最も顕著な原因の１つであると考えられる。図７は、いくつかの例示的なアグレッサ・セル７２０からの寄生静電容量に起因してターゲット・セル７１０に関して存在するＩＣＩを示す。以下の表記が図７において使用される。
ＷＬ：ワード線
ＢＬ：ビット線
ＢＬｏ：奇ビット線
ＢＬｅ：偶ビット線、および
Ｃ：静電容量。
【００３６】
ＩＣＩは、ターゲット・セル７１０がプログラミングされた後にプログラミングされるアグレッサ・セル７２０によってもたらされる。ＩＣＩは、ターゲット・セル７１０の電圧、Ｖｔを変化させる。例示的な実施形態において、「ボトムアップ」プログラミング・スキームが想定され、ワード線ｉおよびｉ＋１における隣接するアグレッサ・セルが、ターゲット・セル７１０に関するＩＣＩを生じさせる。ブロックのそのようなボトムアップ・プログラミングでは、下位のワード線ｉ−１からのＩＣＩは、除去され、５つまでの隣接セルが、図７に示されるとおり、アグレッサ・セル７２０としてＩＣＩに寄与する。しかし、本明細書で開示される技術は、当業者には明白なとおり、ワード線ｉ−１などの他のワード線からのアグレッサ・セルもＩＣＩに寄与する事例にまで一般化され得ることが注目される。ワード線ｉ−１、ｉ、およびｉ＋１からのアグレッサ・セルがＩＣＩに寄与する場合、最も近い８つまでの隣接セルが考慮される必要がある。ターゲット・セルからより離れている他のセルは、それらのセルの、ＩＣＩへの寄与がごくわずかである場合、無視され得る。一般に、アグレッサ・セル７２０は、プログラミング・シーケンス・スキーム（ボトムアップ技術または偶／奇技術などの）を分析して、所与のターゲット・セル７１０の後にプログラミングされるアグレッサ・セル７２０を識別することによって、識別される。
【００３７】
ターゲット・セル７１０上にアグレッサ・セル７２０によってもたらされるＩＣＩは、以下のとおり、例示的な実施形態においてモデル化され得る。すなわち、
【００３８】
【数１】
0005496198.tif 000002
ただし、
【００３９】
【数２】
0005496198.tif 000003
は、アグレッサ・セル（ｗ，ｂ）のＶｔ電圧の変化であり、
【００４０】
【数３】
0005496198.tif 000004
は、ＩＣＩに起因するターゲット・セル（ｉ，ｊ）のＶｔ電圧の変化であり、ｋｘ、ｋｙおよびｋｘｙは、ｘ方向、ｙ方向、およびｘｙ方向に関する静電容量結合係数である。
【００４１】
一般に、Ｖｔは、セル上に格納され、読み取り動作中に獲得されるデータを表す電圧である。Ｖｔは、例えば、１セル当り格納されたビットの数より高い精度でソフト電圧値として、または１セル当り格納されたビットの数（例えば、１セル当り３ビットのフラッシュの場合、３ビット）と同一の分解能でハード電圧レベルに量子化された値として、読み取り動作によって獲得され得る。
【００４２】
（システム・レベルの考慮事項）
図８は、コントローラ・ベースのＩＣＩ軽減技術を組み込む例示的なフラッシュ・メモリ・システム８００の概略ブロック図である。図８に示されるとおり、例示的なフラッシュ・メモリ・システム８００は、インタフェース８５０によって接続された、フラッシュ制御システム８１０と、フラッシュ・メモリ・ブロック８６０とを備える。例示的なフラッシュ制御システム８１０は、通常、１つまたは複数の集積回路上に、フラッシュ・コントローラ８２０と、読み取りチャネル８２５とを備える。例示的なフラッシュ・コントローラ８２０は、本発明の特徴および機能をサポートするようにこの場合、変形される、例えば、よく知られた市販の技術および／または製品を使用して実施されることが可能である。
【００４３】
例示的な読み取りチャネル８２５は、信号処理ユニット８３０と、符号器／復号器ブロック８４０と、１つまたは複数のバッファ８４５とを備える。「読み取りチャネル」という用語は、書き込みチャネルも包含し得ることが注目される。代替の実施形態において、符号器／復号器ブロック８４０およびいくつかのバッファ８４５は、フラッシュ・コントローラ８２０内部に実装されてもよい。符号器／復号器ブロック８４０およびバッファ８４５は、本発明の特徴および機能を提供するようにこの場合、変形される、例えば、よく知られた市販の技術および／または製品を使用して実施されることが可能である。
【００４４】
例示的な信号処理ユニット８３０は、例えば、図１０に関連して後段でさらに説明される、１つまたは複数のＩＣＩ軽減プロセス８３５を実施する１つまたは複数のプロセッサを備える。さらに、図８に示される様々なブロックの間のデータ・フローも、例えば、図１０に関連して後段でさらに説明される。一般に、図１０に関連して後段でさらに説明されるとおり、書き込み動作中にＩＣＩ軽減を実行するのに、１つまたは複数のＩＣＩ軽減プロセス８３５は、ターゲット・セルおよびアグレッサ・セルに関するプログラム・データに基づいて、メモリ・アレイ８７０の中に格納されるべき事前補償されたプログラム値を生成する。
【００４５】
例示的なフラッシュ・メモリ・ブロック８６０は、メモリ・アレイ８７０と、１つまたは複数のバッファ８８０と、メモリ制御回路８９５とを備える。バッファ８８０はそれぞれ、よく知られた市販の技術および／または製品を使用して実施されることが可能である。例示的なメモリ制御回路８９５は、図１１〜図１３に関連して後段でさらに説明されるとおり、計算された、事前補償されたプログラム値をメモリ・アレイ８７０に書き込む１つまたは複数のＩＳＰＰ（インクリメンタル・ステップ・パルス・プログラミング）機能８９８をさらに備える。さらに、メモリ制御回路８９５は、当業者には明白なとおり、プログラミングのために、読み取り機能（例えば、センス増幅器）と、偶／奇ビット線選択機能と、キャッシュ／バッファ・ストレージとを備えることも可能である。従来のインクリメンタル・ステップ・パルス・プログラミング技術の説明に関しては、例えば、参照により本明細書に組み込まれている、米国特許出願第２００８／００８４７５１号、Ｋｉ−Ｔａｅ  Ｐａｒｋ他、「Ａ  Ｚｅｒｏｉｎｇ  Ｃｅｌｌ−ｔｏ−Ｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｐａｇｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｗｉｔｈ  Ｔｅｍｐｏｒａｒｙ  ＬＳＢ  Ｓｔｏｒｉｎｇ  ａｎｄ  Ｐａｒａｌｌｅｌ  ＭＳＢ  Ｐｒｏｇｒａｍ  Ｓｃｈｅｍｅ  ｆｏｒ  ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．４３、Ｎｏ．４、９１９〜９２８頁、（２００８年４月）、Ｔ．Ｓ．Ｊｕｎｇ、「Ａ  １１７−ｍｍ２  ３．３−Ｖ  ｏｎｌｙ  １２８−Ｍｂ  Ｍｕｌｔｉｌｅｖｅｌ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ｆｏｒ  Ｍａｓｓ  Ｓｔｏｒａｇｅ  Ａｐｐｌｉｃａｔｉｏｎｓ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、ｖｏｌ．３１、Ｎｏ．１１、１５７５〜１５８３頁、（１９９６年１１月）、およびＫ．Ｄ．Ｓｕｈ他、「Ａ  ３．３  Ｖ  ３２  Ｍｂ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ｗｉｔｈ  Ｉｎｃｒｅｍｅｎｔａｌ  Ｓｔｅｐ  Ｐｕｌｓｅ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｓｃｈｅｍｅ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、ｖｏｌ．３０、Ｎｏ．１１、１１４９〜１１５６頁、（１９９５年１１月）を参照されたい。本発明は、主に、ＩＣＩ軽減のコンテキストにおいて例示されるが、本発明は、当業者には明白なとおり、任意の妨害の軽減に適用され得る。
【００４６】
開示されるＩＣＩ軽減技術の様々な実施形態において、例示的なインタフェース８５０は、アグレッサ・セルに関連する情報を表す値などの、従来のフラッシュ・メモリ・システムと関係するさらなる情報を伝える必要がある可能性がある。このため、インタフェース８５０は、従来のフラッシュ・メモリ・システムにおけるインタフェースと比べて、より大きい容量（例えば、より多くの入力ピンまたは出力ピン）、またはより高速のレートを有する必要がある可能性がある。インタフェース８５０は、オプションとして、例えば、ＤＤＲ（ダブル・データレート）技術を使用して、インタフェース８５０の情報伝送容量を増加させる、参照により本明細書に組み込まれている、２００９年６月３０日に出願した、「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｉｎｔｅｒｆａｃｉｎｇ  Ｂｅｔｗｅｅｎ  ａ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ  ａｎｄ  ａ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ａｒｒａｙ」という名称の国際特許出願ＰＣＴ／ＵＳ０９／４９３２８号（整理番号０８−０７６９）の教示に、例えば、従って実施されることが可能である。
【００４７】
書き込み動作中、インタフェース８５０は、ページ・レベル・アクセス技術またはワード線レベル・アクセス技術を通常、使用して、ターゲット・セルの中に格納されるように、事前補償されたプログラム値を転送する。例示的なページ・レベル・アクセス技術またはワード線レベル・アクセス技術のより詳細な説明に関しては、例えば、参照により本明細書に組み込まれている、２００９年３月１１日に出願した、「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｔｏｒｉｎｇ  Ｄａｔａ  ｉｎ  ａ  Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ  ｗｉｔｈ  Ｃｒｏｓｓ−Ｐａｇｅ  Ｓｅｃｔｏｒｓ，Ｍｕｌｔｉ−Ｐａｇｅ  Ｃｏｄｉｎｇ  ａｎｄ  Ｐｅｒ−Ｐａｇｅ  Ｃｏｄｉｎｇ」という名称の国際特許出願ＰＣＴ／ＵＳ０９／３６８１０号を参照されたい。事前補償されたプログラム値の数は、通常、元のプログラム値の数より多いので、通常、元のプログラム値を表すのと比べて、事前補償されたプログラム値を表すのに、より多くのビットが要求される。したがって、書き込み側ＩＣＩ軽減に関して、インタフェース８５０は、従来のインタフェースと比べて、より多くのデータを転送する必要がある。
【００４８】
図８の実施形態において、開示される書き込み側ＩＣＩ軽減技術は、通常、最小の面積を実現するように論理回路に合わせて最適化されたプロセス技術で、フラッシュ・メモリの外部に実装される。しかし、このことは、インタフェース８５０上でさらなるアグレッサ・セル・データが転送されなければならないという犠牲を払う。
【００４９】
図９は、代替の実施形態による、メモリ・ベースのＩＣＩ軽減技術を組み込む例示的なフラッシュ・メモリ・システム９００の概略ブロック図である。図９に示されるとおり、例示的なフラッシュ・メモリ・システム９００は、インタフェース９５０によって接続された、フラッシュ制御システム９１０と、フラッシュ・メモリ・ブロック９６０とを備える。例示的なフラッシュ制御システム９１０は、通常、１つまたは複数の集積回路上に、フラッシュ・コントローラ９２０と、オプションの読み取りチャネル９２５とを備える。例示的な読み取りチャネル９２５は、符号器／復号器ブロック９４０と、１つまたは複数のバッファ９４５とを備える。代替の実施形態において、符号器／復号器ブロック９４０およびいくつかのバッファ９４５は、フラッシュ・コントローラ９２０内部に実装されてもよい。例示的なフラッシュ・コントローラ９２０は、本発明の特徴および機能をサポートするようにこの場合、変形される、例えば、よく知られた市販の技術および／または製品を使用して実施されることが可能である。符号器／復号器ブロック９４０およびバッファ９４５は、よく知られた市販の技術および／または製品を使用して実施されることが可能である。
【００５０】
例示的なフラッシュ・メモリ・ブロック９６０は、メモリ・アレイ９７０と、１つまたは複数のバッファ９８０と、信号処理ユニット９８５と、メモリ制御回路９９５とを備える。バッファ９８０はそれぞれ、よく知られた市販の技術および／または製品を使用して実施されることが可能である。例示的な信号処理ユニット９８５は、例えば、図１０に関連して後段でさらに説明される、１つまたは複数のＩＣＩ軽減プロセス９００を実施する１つまたは複数のプロセッサを備える。
【００５１】
さらに、図９に示される様々なブロックの間のデータ・フローも、例えば、図１０に関連して後段でさらに説明される。一般に、図１０に関連して後段でさらに説明されるとおり、書き込み動作中にＩＣＩ軽減を実行するのに、１つまたは複数のＩＣＩ軽減プロセス９９０は、ターゲット・セルおよびアグレッサ・セルに関してフラッシュ・コントローラ９１０から受け取られたプログラム・データに基づいて、事前補償されたプログラム値を生成する。
【００５２】
例示的なメモリ制御回路９９５は、図８の場合と同様に、また、図１１〜図１３に関連して後段でさらに説明されるとおり、計算された、事前補償されたプログラム値をフラッシュ・メモリ・アレイ９７０に書き込む１つまたは複数のＩＳＰＰ機能９９８をさらに備える。さらに、メモリ制御回路９９５は、当業者には明白なとおり、プログラミングのために、読み取り機能（例えば、センス増幅器）と、偶／奇ビット線選択機能と、キャッシュ／バッファ・ストレージとを備えることも可能である。
【００５３】
開示されるＩＣＩ軽減技術の様々な実施形態において、例示的なインタフェース９５０は、アグレッサ・セルに関連する情報を表す値などの、従来のフラッシュ・メモリ・システムと関係するさらなる情報を伝える必要がある可能性がある。このため、インタフェース９５０は、従来のフラッシュ・メモリ・システムにおけるインタフェースと比べて、より大きい容量（例えば、より多くの入力ピンまたは出力ピン）、またはより高速のレートを有する必要がある可能性がある。インタフェース９５０は、オプションとして、例えば、ＤＤＲ（ダブル・データレート）技術を使用して、インタフェース９５０の情報伝送容量を増加させる、参照により本明細書に組み込まれている、２００９年６月３０日に出願した、「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｉｎｔｅｒｆａｃｉｎｇ  Ｂｅｔｗｅｅｎ  ａ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ  ａｎｄ  ａ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ａｒｒａｙ」という名称の国際特許出願ＰＣＴ／ＵＳ０９／４９３２８号（整理番号０８−０７６９）の教示に、例えば、従って実施されることが可能である。
【００５４】
書き込み動作中、インタフェース９５０は、ターゲット・セルおよびアグレッサ・セルの中に格納されるようにプログラム・データを転送し、事前補償されたプログラム値が、フラッシュ・メモリ９６０内部で計算される。インタフェース９５０は、例えば、従来のフラッシュ・メモリ・システムの場合と同様にターゲット・セルに対するページのためのプログラム・データを転送し、さらに、アグレッサ・セルに対する隣接するワード線、または偶ビット線もしくは奇ビット線のためのプログラム・データを転送する。通常、事前補償されたプログラム値を表すのと比べて、このプログラム・データを表すのに要求されるビットは、より少ない。したがって、書き込み側ＩＣＩ軽減に関して、インタフェース９５０は、通常、インタフェース８５０と比べて、より小さい帯域幅しか要求しない。しかし、このことは、論理回路にではなく、メモリに合わせて通常、最適化されるフラッシュ・メモリを製造するのに使用されるメモリ・プロセス技術を使用して、メモリ内部に書き込み側ＩＣＩ軽減プロセスを実装するという犠牲を払う。
【００５５】
図８および図９のＩＣＩ軽減技術の様々な実施形態において使用される静電容量結合係数ｋｘ、ｋｙおよびｋｘｙは、フラッシュ制御システム８１０、９１０および／またはフラッシュ・メモリ・ブロック８６０、９６０において計算され得ることが注目される。静電容量結合係数ｋｘ、ｋｙおよびｋｘｙは、それぞれのインタフェース８５０、９５０上で転送されることが必要である可能性がある。静電容量結合係数は、適応性であることが可能であり、絶えず、時々、または定期的に更新されることが可能であることが注目される。
【００５６】
前述したとおり、本発明の様々な態様は、ＩＣＩを軽減する信号処理技術を提供する。とりわけ利点として、ＩＣＩ軽減の信号処理アプローチは、技術的制約および物理的制約に縛られない。一般に、後段で詳細に説明されるとおり、書き込み側ＩＣＩ軽減は、アグレッサ・セル７２０の中に格納されるプログラム電圧の知識を有して、ターゲット・セル７１０のプログラミング中に実現され得る。
【００５７】
（書き込み側ＩＣＩ軽減）
図１０は、本発明の特徴を組み込む書き込み側ＩＣＩ軽減プロセス１０００の例示的な実施例を説明する流れ図である。図８および図９に関連して前述したとおり、書き込み側ＩＣＩ軽減プロセス１０００は、通常、フラッシュ制御システム８１０における信号処理ユニット８３０、またはフラッシュ・メモリ９６０における信号処理ユニット９８５によって実施される。図１０に示されるとおり、書き込み側ＩＣＩ軽減プロセス１０００は、ステップ１０１０中にフラッシュ・メモリ７００における１つまたは複数のターゲット・セル７１０に書き込まれるべきプログラム・データを最初に獲得する。前述したとおり、例示的なページ・レベル・アクセス技術またはワード線レベル・アクセス技術のより詳細な説明は、例えば、参照により本明細書に組み込まれている、２００９年３月１１に出願した、「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｔｏｒｉｎｇ  Ｄａｔａ  ｉｎ  ａ  Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ  ｗｉｔｈ  Ｃｒｏｓｓ−Ｐａｇｅ  Ｓｅｃｔｏｒｓ，Ｍｕｌｔｉ−Ｐａｇｅ  Ｃｏｄｉｎｇ  ａｎｄ  Ｐｅｒ−Ｐａｇｅ  Ｃｏｄｉｎｇ」という名称の国際特許出願ＰＣＴ／ＵＳ０９／３６８１０号において見ることができる。
【００５８】
その後、ステップ１０２０中、ターゲット・セル７１０に関して、書き込み側ＩＣＩ軽減プロセス１０００は、後にプログラミングされるべき少なくとも１つの隣接セル７２０のためのプログラム・データの１つまたは複数のビットを獲得する。ステップ１０２０中に獲得されるアグレッサ・セル７２０は、メモリ７００における隣接ページに関連することが可能であり、書き込み側ＩＣ軽減プロセス１０００は、アグレッサ・セル７２０のためのプログラム・データが利用可能になるまで待たなければならない可能性があることが注目される。ターゲット・セルおよび潜在的なアグレッサ・セルに関するプログラム・データは、それらのアグレッサ・セルに関するすべての値が利用可能になるまで、例えば、バッファ８４５または９８０の中に格納されることが可能である。これらのバッファは、ＩＣＩ軽減を実行するのに十分な量のデータが集められるまで、例えば、ターゲット・セルに対するページ、ならびに隣接するワード線、または隣接する偶ビット線もしくは奇ビット線におけるｘ、ｙ、またはｘｙ方向における隣接ページを格納することが可能である。前の書き込みプロセスからの潜在的なアグレッサ・セルに関するプログラム・データが、バッファの中で利用可能である可能性がある。前述したとおり、アグレッサ・セル７２０は、プログラミング・シーケンス・スキーム（ボトムアップ技術または偶／奇技術などの）を分析して、所与のターゲット・セル７１０の後にプログラミングされるアグレッサ・セル７２０を識別することによって、識別される。
【００５９】
書き込み側ＩＣＩ軽減プロセス１０００は、ステップ１０３０中にターゲット・セルに関するＩＣＩを事前補償する。予期されるＩＣＩを補償するターゲット・セル７１０の新たなプログラム電圧は、以下の式で得られる。すなわち、
【００６０】
【数４】
0005496198.tif 000005
ただし、ＰＶｔは、元のプログラム電圧またはターゲットしきい値電圧であり、
ＰＶｔｃは、ＩＣＩ消去後の新たなプログラム電圧または新たなターゲットしきい値電圧であり、ΔＶｃは、ＩＣＩ消去項である。
【００６１】
一般に、式（２）に関するＩＣＩ軽減項は、結合係数、ならびにアグレッサ・セル７２０の電圧変化に基づいて計算される。前述したとおり、図７の例示的な実施形態において、アグレッサ・セル７２０は、同一のワード線、および隣接する上位のワード線におけるセルを備える。オプションとして、隣接する下位のワード線におけるアグレッサ・セルも、それらのセルがＩＣＩを生じさせる場合、考慮されることが可能である。このため、ＩＣＩに起因する電圧分布のシフトと広がりの両方が軽減される。
【００６２】
ＩＣＩ軽減項は、以下のとおり計算されることが可能である。すなわち、
【００６３】
【数５】
0005496198.tif 000006
ただし、
【００６４】
【数６】
0005496198.tif 000007
は、電圧レベルｌがセル（ｗ，ｂ）にプログラミングされた際のセル（ｗ，ｂ）のＶｔ電圧の変化であり、ｌ∈｛１，２，．．．Ｌ｝は、電圧レベルであり（１セル当り３ビットの場合、Ｌ＝８）、さらにｋｘ、ｋｙおよびｋｘｙは、静電容量結合係数である。異なるターゲット・セル、および異なるアグレッサ・セルに異なる電圧レベルｌがプログラミングされ得ることに留意されたい。
【００６５】
【数７】
0005496198.tif 000008
として、例えば、Ｖｔ電圧の予期される変化、または平均変化が使用され得る。最後に、ステップ１０３０中にターゲット・セル７１０に関して計算された、事前補償されたプログラム値が、ステップ１０４０中にフラッシュ・メモリ８６０、９６０に供給される。
【００６６】
（ＩＣＩ軽減の単純化）
Ａ．マルチステップ・ページ・プログラミング・シーケンス
前述したとおり、図５Ａおよび図５Ｂは、例示的なマルチステップ・ページ・プログラミング・シーケンスを示す。本発明の或る態様は、マルチステップ・ページ・プログラミング・シーケンスがＭＬＣフラッシュ・デバイス６００に適用される際、中間プログラミング中に出現するＩＣＩは、最終の上位ページの後のプログラミングによって相殺されることを認識する。一般に、上位（ＭＳＢ）ページの最終プログラミングは、最終プログラミングされた電圧の分布を再プログラミングし、引き締め、したがって、中間状態に加えられたＩＣＩを消去する。このため、本発明の一実施形態において、ＩＣＩは、最終の最上位ページ（ＭＳＢ）がプログラミングされると初めて、消去される。下位のページ（すなわち、中間状態）のプログラミングに関するＩＣＩを消去することは、オプションであるが、一般に、良好な誤り率のパフォーマンスを実現するのに要求されない。例えば、図６の１セル当り３ビットのフラッシュ・デバイス６００の場合、下位ページおよび中位ページの中間プログラミングは、無視され得る。
【００６７】
一般に、書き込み側ＩＣＩ軽減の場合、例えば、隣接するワード線またはビット線における、アグレッサ・セルのプログラム・レベルｌの知識が要求される。一般に、式（３）には、異なるＬ個のΔＶｔ（ｌ）値が存在する。例えば、図６の例示的なＭＬＣフラッシュ・セル・アレイ６００において、Ｌは、１セル当り３ビットを有するＭＬＣフラッシュ・セル・アレイ６００において８である。しかし、本発明の一態様は、使用されるプログラミング・アルゴリズムに依存して、異なるＭ個だけのΔＶｔ（ｌ）を使用して、異なるＬ個のΔＶｔ（ｌ）値が近似で記述され得ることを認識し、ただし、Ｍ＜Ｌである。図５Ｂに示される例示的なプログラミング・スキームに関して、「１１」から「０１」への遷移と「ｘ０」から「１０」への遷移は、ほぼ同一の電圧シフトを有するので、異なるＭ＝３個のΔＶｔ（ｌ）を考慮するだけで十分である。より複雑なＩＣＩ軽減プロセスは、可能なすべての遷移、「１１」から「１１」への遷移、「１１」から「０１」への遷移、「ｘ０」から「００」への遷移、「ｘ０」から「１０」への遷移に関して、異なるＬ＝４個のΔＶｔ（ｌ）値を考慮する。図７の実施形態において、式（２）および式（３）における別々のΔＶｃ値の数は、ＩＣＩを生じさせる隣接する５つのセル７２０が存在するので、Ｌ５ではなく、Ｍ５である。したがって、計算される必要がある別々のΔＶｃ値の数は、Ｍ＜Ｌである場合、大幅に減る。
【００６８】
図７に示される例示的なフラッシュ・メモリに関してマルチステップ・ページ・プログラミングが使用される場合、図１０のコントローラ・ベースの、またはメモリ・ベースのＩＣＩ軽減プロセス１０００が、以下のとおり実施される。ページ・データは、バッファ・メモリ８４５または９８０の中に一時的に格納され、隣接する上位のワード線に関する上位ページ・データが利用可能になるまで、フラッシュ・メモリ・デバイス８７０、９７０に書き込まれない。それぞれのＩＣＩ軽減ブロック８３５または９９０が、図１０に関連して前述したとおり、これらのデータ・ビットに基づいて新たなプログラム電圧（事前補償されたプログラム値）を計算する。電源電圧が、例えば、電力中断または電力遮断に起因して、しきい値電力を下回って低下した場合、バッファ・メモリ８４５または９８０の中に格納されたデータが、データが失われることを防止するようにフラッシュ・メモリ８７０、９７０（または、別の不揮発性メモリ）に書き込まれることが可能である。
【００６９】
前述した書き込み側ＩＣＩ軽減は、最終状態だけではなく、例えば、１セル当り３ビットのフラッシュの中間ページがプログラミングされる際に、中間状態にも適用され得る。マルチステップ・ページ・プログラミング考慮事項は、フラッシュ・メモリの読み取りと書き込みの両方に影響を与えることが注目される。中間状態にプログラミングされると、セルは、無期限に中間状態に保たれ得る。
【００７０】
Ｂ．Ｘ−Ｙ方向の静電容量結合係数を無視する
前述したとおり、例示的な実施形態において、式（３）は、図７に示される例示的なフラッシュ・メモリにおけるターゲット・セル７１０と５つまでの隣接アグレッサ・セル７２０の間のＩＣＩに対処するのに、静電容量結合係数ｋｘ、ｋｙおよびｋｘｙを考慮する。しかし、本発明の別の態様は、ｋｘｙ≪ｋｘ＜ｋｙであることを認識する。このため、ｘ−ｙ方向における静電容量結合ｋｘｙは、式（３）において無視されることが可能であり、ＩＣＩ軽減項は、以下のとおりとなる。すなわち、
【００７１】
【数８】
0005496198.tif 000009
【００７２】
次に、別々のΔＶｃ値の数が、式（３）によって与えられるとおり、Ｌ５ではなく、Ｌ３に減らされる。別々のΔＶｃ値の数は、別々のＭ＜Ｌ個だけの電圧シフトΔＶｔ（ｌ）しか考慮しないことによって、さらに減らされ得る。すると、計算される必要がある別々のΔＶｃ値の数は、Ｍ３個に減らされる。一般に、ＩＣＩ軽減の単純化ＡおよびＢにおいて、別々のΔＶｃ値の数は、Ｍｋによって与えられ、ただし、ｋは、考慮されるアグレッサ・セルの数であり、Ｍは、考慮される別々の電圧シフトの数である。書き込み側軽減に関する式（３）は、本明細書で説明されるとおり単純化され得る。別々のΔＶｃ値の数を減らすことにより、式（２）から明白なとおり、事前補償されたプログラム値の数も減らされる。このことは、例えば、インタフェース８５０を介して伝送される必要があるデータの量を減らすのに役立ち、その結果、別々のＭ＜Ｌ個だけの電圧シフトΔＶｔ（ｌ）しか考慮しないことにより、別々のΔＶｃ値の数を減らさない書き込み側軽減スキームと比べて、インタフェース８５０の容量（ピン数または伝送レートの点で）が、減らされることが可能である。
【００７３】
Ｃ．偶／奇プログラミングに関してＸ方向における係数を無視する
図３に関連して前述したとおり、例示的な偶／奇プログラミング・シーケンスが、示された順序で偶または奇のビット線を選択し、順次に（ボトムアップで）プログラミングする。本発明の別の態様は、ｘ方向の結合が、偶ページまたは奇ページに関して（例えば、奇ページが偶ページの後にプログラミングされる場合、奇ページに関して）無視され得ることを認識する。したがって、奇ページに関して、式（３）におけるＩＣＩ軽減項は、以下のとおり単純化される。すなわち、
【００７４】
【数９】
0005496198.tif 000010
ただし、計算される必要がある別々のΔＶｃ値の数は、Ｍ個だけに減らされる。奇ビット線と偶ビット線の並行プログラミングを使用する一部のフラッシュ・アーキテクチャは、ほとんどパフォーマンスの損失なしにｘ結合がすべて一緒に省略されることを許す。一般に、式（５）は、偶ページと奇ページの両方に関してハードウェア複雑度を減らすのに使用され得る。書き込み側軽減に関する式（３）は、本明細書で説明されるとおり単純化され得る。
【００７５】
（改良されたＩＳＰＰ技術）
本発明の一態様によれば、１つの電圧レベル、または１つのデータ状態に関して複数のしきい値電圧をプログラミングするための改良されたＩＳＰＰ技術が提供される。図１２に関連して後段で説明される１つの例示的な実施形態において、開示されるＩＳＰＰプロセス１２００は、プログラミング段階と、複数の検証段階とを使用してフラッシュ・メモリ・デバイスの各電圧レベルをプログラミングする。図１３に関連して後段で説明される別の例示的な実施形態において、開示されるＩＳＰＰプロセス１３００は、プログラミング段階と、複数の検証段階とを使用してフラッシュ・メモリ・デバイスのすべての電圧レベルをプログラミングし、ただし、電圧レベルの少なくとも１つは、プログラミングされている複数のプログラム電圧またはターゲットしきい値電圧を備える。
【００７６】
とりわけ用途として、開示されるＩＳＰＰ技術は、例示的な書き込み側ＩＣＩ軽減プロセスなどの、セル妨害に関する計算された、事前補償されたプログラム値をプログラミングするのに使用され得る。式（２）に関連して前述したとおり、ＰＶｔｃは、ＩＣＩ軽減後の新たなプログラム電圧またはターゲットしきい値電圧である。このため、同一のデータまたは同一の電圧レベルを格納する同一のワード線におけるセルの間のプログラム電圧は、これらのプログラム電圧が、隣接セルの中の格納されたデータに依存するので、異なる。
【００７７】
本明細書で説明される信号レベル（図２に関連して前段でデータ状態とも呼ばれる）は、電圧レベル、電流レベル、または抵抗レベルなどの、任意の数の例示的な信号を使用して表されることも可能である。１つの例示的な実施例において、各格納要素は、各メモリ・セルの中に、可能な４つのデータ状態を使用して２ビットのデータを格納する。可能な各データ状態は、対応するプログラム電圧（ターゲットしきい値電圧とも呼ばれる）、対応するプログラム電流、または対応するプログラム抵抗などの、少なくとも１つの対応するプログラム値を有する。開示されるＩＳＰＰ技術が、例えば、セル妨害に関する計算された、事前補償されたプログラム値をプログラミングするのに使用される場合、所与のデータ状態または信号レベルは、複数の対応するプログラム値を有することが可能である。
【００７８】
図１１は、従来のＩＳＰＰプロセス１１００を説明する流れ図である。従来のインクリメンタル・ステップ・パルス・プログラミング技術の説明に関しては、参照により本明細書に組み込まれている、米国特許出願第２００８／００８４７５１号、Ｋｉ−Ｔａｅ  Ｐａｒｋ他、「Ａ  Ｚｅｒｏｉｎｇ  Ｃｅｌｌ−ｔｏ−Ｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｐａｇｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｗｉｔｈ  Ｔｅｍｐｏｒａｒｙ  ＬＳＢ  Ｓｔｏｒｉｎｇ  ａｎｄ  Ｐａｒａｌｌｅｌ  ＭＳＢ  Ｐｒｏｇｒａｍ  Ｓｃｈｅｍｅ  ｆｏｒ  ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．４３、Ｎｏ．４、９１９〜９２８頁、（２００８年４月）、Ｔ．Ｓ．Ｊｕｎｇ、「Ａ  １１７−ｍｍ２  ３．３−Ｖ  ｏｎｌｙ  １２８−Ｍｂ  Ｍｕｌｔｉｌｅｖｅｌ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ｆｏｒ  Ｍａｓｓ  Ｓｔｏｒａｇｅ  Ａｐｐｌｉｃａｔｉｏｎｓ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、ｖｏｌ．３１、Ｎｏ．１１、１５７５〜１５８３頁、（１９９６年１１月）、およびＫ．Ｄ．Ｓｕｈ他、「Ａ  ３．３  Ｖ  ３２  Ｍｂ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ｗｉｔｈ  Ｉｎｃｒｅｍｅｎｔａｌ  Ｓｔｅｐ  Ｐｕｌｓｅ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｓｃｈｅｍｅ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、ｖｏｌ．３０、Ｎｏ．１１、１１４９〜１１５６頁、（１９９５年１１月）を参照されたい。一般に、従来のＩＳＰＰプロセス１１００は、ワード線全体において同一のデータまたは同一の電圧レベルを格納するすべてのセルに同一のプログラム電圧をプログラミングし、１つの電圧レベル（例えば、図２に関連してデータ状態とも呼ばれる）に関してワード線全体において実現されるべきターゲットしきい値電圧が、１つだけしか存在しない。例えば、１セル当り２ビットを格納するマルチレベル・セルの場合、４つの電圧レベルまたは電圧状態が存在する。
【００７９】
図１１に示されるとおり、従来のＩＳＰＰプロセス１１００は、ステップ１１１０中にページ・データを最初にロードする。従来のプログラミング・プロセスにおいて、ターゲット・セルに対するページ（すなわち、プログラミングされるページ）だけがロードされる。通常、フラッシュ・メモリは、電圧レベルの低い方から順にセルを漸進的にプログラミングする。最初、現在の電圧レベル、またはより高い電圧レベルでプログラミングされるすべてのセルが選択される。選択されたセルは、ステップ１１２０中に、プログラミング・パルスを印加することによってプログラミングされる。その後、ステップ１１３０中に検証段階が実行されて、選択されたセルが所望されるターゲットしきい値電圧に達しているかどうかが判定される。ターゲットしきい値電圧に達している、または超えている検証されたセルは、ステップ１１３０中に選択解除される。一般に、検証段階は、フラッシュ・メモリ・デバイスから１つまたは複数の読み取り値を読み取り、それらの読み取り値を、所望されるプログラム電圧またはターゲットしきい値電圧に関するしきい値と比較する。
【００８０】
ステップ１１４０中に、すべてのセルがプログラミングされたかどうかを判定する試験が実行される。ステップ１１４０中に、すべてのセルがプログラミングされているわけではないと判定された場合、プログラム制御は、ステップ１１２０に戻り、プログラミング・パルスをインクリメントして、残りのセルをターゲットしきい値電圧までさらにプログラミングする。しかし、ステップ１１４０中に、すべてのセルがプログラミングされていると判定された場合、プログラム制御は、ステップ１１６０で終了する。
【００８１】
本発明は、例示的なＩＣＩ軽減技術に関するプログラム電圧調整が、隣接セルの中に格納されたデータに依存する異なるセル間干渉効果に起因して、同一のデータを格納するページまたはワード線における複数のセルに関して異なり得ることを認識する。前述したとおり、例示的な書き込み側ＩＣＩ軽減の場合、例えば、隣接するワード線またはビット線におけるアグレッサ・セルのプログラム・レベルｌの知識が、一般に、要求される。一般に、ｋ個のアグレッサ・セル７２０のそれぞれに関して、式（３）に異なるＬ個のΔＶｔ（ｌ）値が存在する。このため、各電圧レベルに関して、可能なＮ＝Ｌｋ個の事前補償されたプログラム値が存在する。
【００８２】
例えば、図６の例示的なＭＬＣフラッシュ・セル・アレイ６００において、１セル当り３ビットを有するＭＬＣフラッシュ・セル・アレイ６００におけるＬは、８である。しかし、本発明の一実施形態は、使用されるプログラミング・アルゴリズムに依存して、異なるＭ個だけのΔＶｔ（ｌ）を使用して、異なるＬ個のΔＶｔ（ｌ）値が近似で記述され得ることを認識し、ただし、Ｍ＜Ｌである。すると、或る電圧レベルに関して、Ｎ＝Ｍｋ個だけの事前補償されたプログラム値しか計算される必要がなく、Ｎ＝Ｍｋだけの検証段階しか適用される必要がない。したがって、検証段階の数が減らされている。検証段階の数を減らすことは、プログラミング時間を短縮するという利点を有し、このことは、書き込み速度を高める。例示的な実施例において、隣接する上位のセル７２０だけが、ターゲット・セル７１０上で大きなＩＣＩ結合を生じさせるものと想定される。このため、１つの電圧レベルに関する可能なプログラム電圧の数は、Ｍ個のレベルに制限され（このことは、前述した開示されるＩＣＩ軽減技術の、より複雑度の低いバージョンと見なされ得る）、Ｍだけの検証段階しか適用される必要がない。したがって、プログラミング時間がさらに短縮される。所与のフラッシュ・メモリが、２つの信号レベルを有し、１つのアグレッサ・セル７２０が存在する場合、Ｍは、２である。同様に、所与のフラッシュ・メモリが、後段で説明されるマルチステップ・ページ・プログラミング・シーケンスを使用し、１つのアグレッサ・セル７２０が存在し、書き込み側ＩＣＩ消去が、ＭＳＢページのプログラミング中に適用される場合、Ｍは、やはり、１つの電圧レベルにつき２である。電圧レベルに関する事前補償されたプログラム電圧の数、Ｎは、すべての電圧レベルに関して同一である必要はなく、各電圧レベルは、異なる数Ｎを有することが可能であることが注目される。
【００８３】
本発明の一態様は、各電圧レベルに関して異なる複数のプログラム電圧をプログラミングする、図１２に関連して後段で説明される改良されたＩＳＰＰプロセス１２００を提供する。一般に、フラッシュ・メモリ・デバイスが複数のプログラム電圧を有する場合、プログラム電圧のそれぞれは、複数の互いに素なグループの１つに関連することが可能である。フラッシュ・メモリ・デバイスのプログラミング中、各プログラミング段階は、複数の検証段階を含む。所与の互いに素なグループに関する検証段階の数は、その所与の互いに素なグループの中に入っているメンバの数と等しい。例えば、それぞれの互いに素なグループは、異なる電圧レベル（例えば、電圧しきい値）に対応することが可能である。それぞれの互いに素なグループは、他の互いに素なグループとは異なり得る数のメンバを有する。前述したとおり、本発明は、当業者には明白なとおり、格納されたデータを表すのに電圧、電流、または抵抗を使用するなどの、フラッシュ・メモリに関する任意の格納機構と共に使用され得る。
【００８４】
図１２は、本発明の特徴を組み込むＩＳＰＰプロセス１２００を説明する流れ図である。一般に、開示されるＩＳＰＰプロセス１２００は、複数回のプログラミングするステップでワード線に複数の電圧レベルをプログラミングし、少なくとも１つの電圧レベルに関するプログラミングするステップは、プログラミング段階と、複数の検証段階とを備える。したがって、プログラミングするステップの少なくとも１回において、プログラミングされた電圧レベルは、対応する複数の検証段階を用いて検証される。このようにして、例示的なＩＣＩ軽減技術に関するプログラム電圧調整は、同一のデータを格納するページにおける複数のセルに関して異なり得る。
【００８５】
図１２に示されるとおり、開示されるＩＳＰＰプロセス１２００は、前段で説明され、さらに参照により本明細書に組み込まれている、「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｗｒｉｔｅ−Ｓｉｄｅ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」という名称の国際特許出願ＰＣＴ／ＵＳ０９／４９３２７号において説明されるとおり、ターゲット・セルおよびアグレッサ・セルに関するデータを含むページ・データを、ステップ１２１０中に最初にロードする。例えば、このページ・データは、プログラミングされるべき現在のページ、ならびにアグレッサ・セルを含む隣接ページなどのさらなるページを含む。ロードされたページ・データの中のビット数に基づいて、フラッシュ・メモリ・デバイスにおけるセルに書き込まれるべき事前補償されたプログラム値が、ステップ１２１５中に算出される。これらの事前補償されたプログラム値は、例えば、式（２）および式（３）に従って計算される。前述したとおり、フラッシュ・メモリは、通常、電圧レベルの低い方から順にセルを漸進的にプログラミングする。最初、現在の電圧レベル、またはより高い電圧レベルでプログラミングされるすべてのセルが選択される。選択されたセルは、ステップ１２２０中に、事前補償されたプログラム値でプログラミングされる。その後、ステップ１２３０−１乃至１２３０−Ｎ（ひとまとめにして、「ステップ１２３０」と呼ばれる）の間に複数Ｎの検証段階が実行されて、選択されたセルが所望されるプログラム電圧またはターゲットしきい値電圧に達しているかどうかが判定される。検証段階の数Ｎは、現在の電圧レベルに関する可能な別々の事前補償されたプログラム値の数と等しい。ターゲットしきい値電圧に達している、または超えている検証されたセルは、ステップ１２３０中に選択解除される。例えば、前述したとおり、各電圧レベルに関する可能な別々の事前補償されたプログラム値の数は、一般に、Ｎ＝Ｌｋである。本明細書で説明される様々な単純化において、可能な別々の事前補償されたプログラム値の数は、Ｎ＝Ｍｋにまで、またはＮ＝Ｍまでにさえ減らされることが可能である。
【００８６】
電圧レベルに関する事前補償されたプログラム電圧の数Ｎは、すべての電圧レベルに関して同一である必要はなく、各電圧レベルが、別個の数Ｎを有することが可能である（例えば、検証段階の対応する数Ｎが異なる少なくとも２つの電圧レベルが存在する）ことがこの場合も注目される。
【００８７】
このため、ページにおける異なるセルに関する１つの電圧レベルに関して異なるＮ個のプログラム電圧またはターゲット電圧しきい値を実現するため、ステップ１２２０中の毎プログラム段階後に、ステップ１２３０中にＮの検証段階が適用される。例えば、本明細書で説明される例示的な実施形態において、Ｎは２である。このため、各電圧レベルにつき必要な異なる２つのプログラム電圧を確認するために、ステップ１２２０中の毎プログラム段階後に、ステップ１２３０中に２つの検証段階が適用される。例示的な実施形態において、検証１が、第１のターゲット電圧しきい値を確認し、検証２が、第２のターゲット電圧しきい値を確認する。検証１のターゲット電圧しきい値は、検証２のターゲット電圧しきい値より低い。第１のターゲット電圧にプログラミングされる必要があるセルは、検証２中に検証される必要はない。他方、第２のターゲット電圧にプログラミングされる必要があるセルは、検証１中に検証される必要はない。検証段階中に十分にプログラミングされていると判定されたセルは、将来のプログラミング段階に関して選択解除される。
【００８８】
ステップ１２４０中に、現在の電圧レベルでプログラミングされる必要があるすべてのセルがプログラミングされているかどうかを判定する試験が実行される。ステップ１２４０中に、すべてのセルがプログラミングされてはいないと判定された場合、プログラム制御は、ステップ１２２０に戻り、残りのセルをターゲットしきい値電圧までさらにプログラミングするようにプログラミング・パルスをインクリメントする。しかし、ステップ１２４０中に、すべてのセルがプログラミングされていると判定された場合、プログラム制御は、ステップ１２５０に進む。
【００８９】
ステップ１２５０中に、プログラミングされるべきさらなる電圧レベルが存在するかどうかを判定する試験が実行される。ステップ１２５０中に、プログラミングされるべきさらなる電圧レベルが存在すると判定された場合、プログラム制御は、ステップ１２２０に戻り、次のレベルをプログラミングする。しかし、ステップ１２５０中に、すべてのレベルがプログラミングされていると判定された場合、プログラム制御は、ステップ１２６０で終了する。
【００９０】
図１３は、本発明の特徴を組み込むＩＳＰＰプロセス１３００の代替の実施例を説明する流れ図である。一般に、開示されるＩＳＰＰプロセス１３００は、フラッシュ・メモリ・デバイスに関する電圧レベルのすべてを単一回でプログラミングする。図１３に示されるとおり、開示されるＩＳＰＰプロセス１３００は、前段で説明され、さらに参照により本明細書に組み込まれている、「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｗｒｉｔｅ−Ｓｉｄｅ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」という名称の国際特許出願ＰＣＴ／ＵＳ０９／４９３２７号において説明されるとおり、ターゲット・セルおよびアグレッサ・セルに関するデータを含むページ・データを、ステップ１３１０中に最初にロードする。ロードされたページ・データの中のビットに基づいて、フラッシュ・メモリ・デバイスにおけるセルに書き込まれるべき事前補償されたプログラム値が、ステップ１３１５中に算出される。これらの事前補償されたプログラム値は、式（２）および式（３）に従って計算される。選択されたセルは、ステップ１３２０中に、すべてのレベルに関する事前補償されたプログラム値でプログラミングされる。その後、ステップ１３３０−１乃至１３３０−Ｎ（ひとまとめにして、「ステップ１３３０」と呼ばれる）の間に複数Ｎの検証段階が実行されて、選択されたセルがターゲットしきい値電圧に達しているかどうかが判定される。Ｎは、プログラミングされるべき事前補償されたプログラム値の総数と等しい。所望されるターゲットしきい値電圧に達している、または超えている検証されたセルは、それらのセルがさらにプログラミングされないようにステップ１３３０中に選択解除される。ステップ１３３０中に検証される検証段階の数Ｎは、少なくとも１つの電圧レベルまたはデータ状態が複数のプログラム電圧を有するので、電圧レベルまたはデータ状態の数を超えることが注目される。これらのプログラム値は、例えば、セル間干渉機構または他の妨害機構の影響を軽減する事前補償されたプログラム値である。例えば、本明細書で説明される様々な例示的な書き込み側ＩＣＩ消去技術において、Ｌ個のレベルが存在し、各レベルＬｋに関して、Ｍｋ個またはＭ個の事前補償されたプログラム値が計算されるので、Ｎは、Ｌ×Ｌｋ、Ｌ×Ｍｋ、またはＬ×Ｍであることが可能である。消去された状態は、通常、プログラミングされていないものと考える場合、Ｎは、例えば、（Ｌ−１）×Ｍｋ、または（Ｌ−１）×Ｍである。Ｌは、例えば、Ｌが４である図５Ｂに示されるとおり、最終状態がプログラミングされた後のレベルの数を指すこと、またはマルチステップ・プログラミング・シーケンスにおいて図５Ａ（Ｌ＝２である）に示されるとおり、中間レベルの数を指すことが可能であることに留意されたい。
【００９１】
このため、異なるＮ個のプログラム電圧またはターゲット電圧しきい値を実現するため、ステップ１３２０中の毎プログラム段階後に、ステップ１３３０中にＮの検証段階が適用され、ただし、Ｎは、ページに関連する電圧レベルまたはデータ状態の数（消去された状態は、通常、プログラミングされていないので、消去された状態をカウントしない）を超える。例えば、開示される技術が、図５Ａおよび図５Ｂに関連して説明される例示的な１セル当り２ビットのフラッシュ・メモリのＬＳＢページのプログラミングに適用される場合、Ｎは、本発明によれば、１より大きいのに対して、従来のプログラミング方法では、Ｎは、状態「ｘ０」に関連する１つだけのターゲットしきい値電圧しかプログラミングされ、検証される必要がないので、１である。開示される技術が、図５Ａおよび図５Ｂに関連して説明される関連して説明される例示的な１セル当り２ビットのフラッシュ・メモリのＭＳＢページのプログラミングに適用される場合、Ｎは、本発明によれば、３より大きいのに対して、従来のプログラミング方法では、Ｎは、状態「０１」、「００」、および「１０」に関連する３つだけのターゲットしきい値電圧しかプログラミングされ、検証される必要がないので、３である。ステップ１３４０中に、すべてのセルがプログラミングされている（すなわち、所望されるターゲットしきい値電圧に達している）かどうかを判定する試験が、実行される。ステップ１３４０中に、すべてのセルがプログラミングされてはいないと判定された場合、プログラム制御は、ステップ１３２０に戻り、残りのセルを所望されるターゲットしきい値電圧までプログラミングするようにプログラミング・パルスをインクリメントする。しかし、ステップ１３４０中に、すべてのセルがプログラミングされていると判定された場合、プログラム制御は、ステップ１３６０で終了する。
【００９２】
複数の検証段階を使用する、開示されるプログラミング技術は、図５Ｂに示されるとおり、最終状態がプログラミングされる際に、または図５Ａに示されるとおり、中間状態がプログラミングされる際に、使用されることが可能であることに留意されたい。
【００９３】
（プロセス、システム、および製造品の詳細）
本明細書のいくつかの流れ図は、ステップの例示的な順序を説明するが、その順序が変更され得ることも本発明の実施形態である。本発明の代替の実施形態として、アルゴリズムの様々な置換が企図される。本発明の例示的な実施形態は、ソフトウェア・プログラムにおける処理ステップに関連して説明されてきたが、当業者には明白なとおり、様々な機能が、デジタル領域で、ソフトウェア・プログラムにおいて、回路要素もしくは状態マシンによってハードウェアにおいて、またはソフトウェアとハードウェアの両方の組合せにおいて、処理ステップとして実施されることが可能である。そのようなソフトウェアは、例えば、デジタルシグナルプロセッサ、特定用途向け集積回路、マイクロコントローラ、または汎用コンピュータにおいて使用されることが可能である。そのようなハードウェアおよびソフトウェアは、集積回路内で実施される回路内で実施されることが可能である。
【００９４】
このため、本発明の機能は、方法の形態、およびそれらの方法を実施するための装置の形態で実施されることが可能である。本発明の１つまたは複数の態様は、例えば、記憶媒体の中に格納され、マシンにロードされ、さらに／またはマシンによって実行されるか、何らかの伝送媒体を介して伝送されるかにかかわらず、プログラム・コードの形態で実施されることが可能であり、このプログラム・コードが、コンピュータなどのマシンにロードされ、マシンによって実行されると、そのマシンが、本発明を実施するための装置となる。汎用プロセッサ上で実施される場合、それらのプログラム・コード・セグメントは、プロセッサと一緒になって、特定の論理回路と同様に動作するデバイスを提供する。また、本発明は、集積回路、デジタルシグナルプロセッサ、マイクロプロセッサ、およびマイクロコントローラの１つまたは複数において実施されることも可能である。
【００９５】
当技術分野で知られているとおり、本明細書で説明される方法および装置は、コンピュータ可読媒体を自ら備え、その媒体上にコンピュータ可読コード手段が実現されている製造品として配布されることが可能である。このコンピュータ可読プログラム・コード手段は、コンピュータ・システムと連携して、本明細書で説明される方法を実行する、または本明細書で説明される装置を作成するステップのすべて、または一部を実行するように動作可能である。このコンピュータ可読媒体は、記録可能な媒体（例えば、フロッピー・ディスク、ハードドライブ、コンパクト・ディスク、メモリ・カード、半導体デバイス、チップ、ＡＳＩＣ（特定用途向け集積回路））であっても、伝送媒体（例えば、光ファイバ、ワールド・ワイド・ウェブ、ケーブル、あるいは時分割多元接続チャネル、符号分割多元接続チャネル、または他の無線周波数チャネルを使用する無線チャネルを備えるネットワーク）であってもよい。コンピュータ・システムで使用するのに適した、情報を格納することができる、知られている、または開発される任意の媒体が、使用されることが可能である。コンピュータ可読コード手段は、磁気媒体上の磁気変化、またはコンパクト・ディスクの表面上の高さ変化などの、命令およびデータをコンピュータが読み取ることを許すための任意の機構である。
【００９６】
本明細書で説明されるコンピュータ・システムおよびサーバはそれぞれ、本明細書で開示される方法、ステップ、および機能を実施するように関連するプロセッサを構成するメモリを含む。これらのメモリは、分散型であることも、ローカル型であることも可能であり、これらのプロセッサは、分散型であることも、単体であることも可能である。これらのメモリは、電気メモリ、磁気メモリ、または光メモリとして、あるいは以上のタイプまたは他のタイプの格納デバイスの任意の組合せとして実施されることが可能である。さらに、「メモリ」という用語は、関連するプロセッサによってアクセスされるアドレス指定可能な空間内のアドレスから読み取られる、またはそのようなアドレスに書き込まれることが可能な任意の情報を包含するように十分に広く解釈されなければならない。この定義で、ネットワーク上の情報は、関連するプロセッサが、ネットワークからその情報を取得することができるため、やはりメモリの範囲内にある。
【００９７】
本明細書で示され、説明される実施形態および変形形態は、本発明の原理を単に例示するに過ぎないこと、ならびに様々な変形が、本発明の趣旨および範囲を逸脱することなく、当業者によって実施されることが可能であることを理解されたい。
【図１】
0005496198.tif 000011
【図２】
0005496198.tif 000012
【図３】
0005496198.tif 000013
【図４】
0005496198.tif 000014
【図５Ａ】
0005496198.tif 000015
【図５Ｂ】
0005496198.tif 000016
【図６】
0005496198.tif 000017
【図７】
0005496198.tif 000018
【図８】
0005496198.tif 000019
【図９】
0005496198.tif 000020
【図１０】
0005496198.tif 000021
【図１１】
0005496198.tif 000022
【図１２】
0005496198.tif 000023
【図１３】
0005496198.tif 000024