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