(57)【特許請求の範囲】
【請求項１】
メモリ・デバイス内で少なくとも１つの軟データ値を生成する方法であって、
デコーダから性能フィードバックを入手することと、
前記性能フィードバックに基づいて読取統計を入手することと、
前記入手された読取統計に基づいて前記少なくとも１つの軟データ値を生成することと
を含む方法。
【請求項２】
前記性能フィードバックは、（ｉ）前記デコーダによって復号されたデータに基づく誤りのあるビットの個数、（ｉｉ）前記デコーダによって復号されたデータ、および、（ｉｉｉ）満足されないパリティ検査の個数、の１つ以上を含む、請求項１に記載の方法。
【請求項３】
メモリ・デバイス内で少なくとも１つの軟データ値を生成する方法であって、
硬データを入手することと、
前記硬データを復号することと、
前記復号されたデータに基づいて読取統計を入手することと、
前記入手された読取統計に基づいて前記少なくとも１つの軟データ値を生成することと
を含む方法。
【請求項４】
前記軟データ値は、（ｉ）１つまたは複数の対数尤度比を生成するのに使用される軟読取値、および（ｉｉ）１つまたは複数の対数尤度比、の１つ以上を含む、請求項３に記載の方法。
【請求項５】
前記少なくとも１つの軟データ値は、メモリ・アレイの１つまたは複数の所望の位置について入手され、誤りのあるビットの個数は、前記１つまたは複数の所望の位置について判定される、請求項３に記載の方法。
【請求項６】
前記読取統計は、少なくとも１つのターゲット・セルに関連する１つまたは複数のアグレッサ・セル内の所与のパターンＰＡＴＴについて入手され、前記方法は、１つまたは複数のターゲット・セルおよび１つまたは複数の関連するアグレッサ・セルについて硬データを復号するステップと、前記関連するアグレッサ・セル内の前記所与のパターンＰＡＴＴを有する誤りのある復号されたターゲット・ビットの個数を判定するステップと、誤りのある復号されたターゲット・ビットの前記個数に基づいて前記所与のパターンについて前記読取統計を入手するステップとをさらに含む、請求項３に記載の方法。
【請求項７】
前記読取統計は、複数の可能な値について入手された非対称読取統計を含み、前記方法は、前記復号されたデータ内の第１の値を有する誤りのあるビットの個数を判定するステップと、前記復号されたデータ内の第２の値を有する誤りのあるビットの前記個数を判定するステップと、前記第１の値を有する誤りのあるビットの前記個数に基づいて前記第１の値に関する読取統計を入手するステップと、前記第２の値を有する誤りのあるビットの前記個数に基づいて前記第２の値に関する読取統計を入手するステップとをさらに含む、請求項３に記載の方法。
【請求項８】
メモリ・デバイス内で少なくとも１つの軟データ値を生成する方法であって、
満足されないパリティ検査の個数を入手することと、
満足されないパリティ検査の前記個数に基づいて前記少なくとも１つの軟データ値を生成することと
を含む方法。
【請求項９】
前記軟データ値は、（ｉ）１つまたは複数の対数尤度比を生成するのに使用される軟読取値、および（ｉｉ）１つまたは複数の対数尤度比、の１つ以上を含む、請求項８に記載の方法。
【請求項１０】
前記軟データ値は、メモリ・アレイの１つまたは複数の所望の位置について入手され、前記１つまたは複数の所望の位置内のビットを有する符号語は、使用され、満足されないパリティ検査の前記個数は、前記符号語について入手される、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、それぞれ参照によって本明細書に組み込まれている、２００８年９月３０日に出願した米国仮出願第６１／１９４，７５１号および２００９年６月３０日に出願した国際出願第ＰＣＴ／ＵＳ０９／４９３３３号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｏｆｔ  Ｄｅｍａｐｐｉｎｇ  ａｎｄ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」の優先権を主張するものである。
【０００２】
本願は、それぞれ本願と同時に出願され、参照によって本明細書に組み込まれている、国際出願、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｏｆｔ  Ｄａｔａ  Ｇｅｎｅｒａｔｉｏｎ  ｆｏｒ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅｓ  Ｂａｓｅｄ  ｏｎ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｆａｃｔｏｒ  Ａｄｊｕｓｔｍｅｎｔ」、国際出願、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｏｆｔ  Ｄａｔａ  Ｇｅｎｅｒａｔｉｏｎ  ｆｏｒ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅｓ」、および国際出願、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｏｆｔ  Ｄａｔａ  Ｇｅｎｅｒａｔｉｏｎ  ｆｏｒ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅｓ  Ｕｓｉｎｇ  Ｒｅｆｅｒｅｎｃｅ  Ｃｅｌｌｓ」に関連する。
【０００３】
本発明は、全般的にはフラッシュ・メモリ・デバイスに関し、より具体的には、そのようなフラッシュ・メモリ・デバイスでのセル間干渉、バック・パターン依存（ｂａｃｋ  ｐａｔｔｅｒｎ  ｄｅｐｅｎｄｅｎｃｙ）、雑音、および他のひずみを軽減する改善された軟デマッピング（ｓｏｆｔ  ｄｅｍａｐｐｉｎｇ）および軟データ生成（ｓｏｆｔ  ｄａｔａ  ｇｅｎｅｒａｔｉｏｎ）の技法に関する。
【背景技術】
【０００４】
フラッシュ・メモリ・デバイスなどの複数のメモリ・デバイスは、データを格納するのにアナログ・メモリ・セルを使用する。各メモリ・セルは、電荷または電圧など、ストレージ・バリュー（ｓｔｏｒａｇｅ  ｖａｌｕｅ）とも称するアナログ値を格納する。ストレージ・バリューは、セルに格納された情報を表す。たとえば、フラッシュ・メモリ・デバイスでは、各アナログ・メモリ・セルは、通常はある電圧を格納する。各セルの可能なアナログ値の範囲は、しきい領域に分割され、各領域は、１つまたは複数のデータ・ビット値に対応する。データは、所望の１つまたは複数のビットに対応する公称アナログ値を書き込むことによってアナログ・メモリ・セルに書き込まれる。
【０００５】
たとえば、シングルレベル・セル（ＳＬＣ）フラッシュ・メモリ・デバイスは、メモリ・セルあたり１ビット（すなわち、２つの可能なメモリ状態）を格納する。その一方で、マルチレベル・セル（ＭＬＣ）フラッシュ・メモリ・デバイスは、メモリ・セルあたり複数のビットを格納する（すなわち、各セルが、４つ以上のプログラム可能な状態を有する）。ＭＬＣフラッシュ・メモリ・デバイスのより詳細な議論については、たとえば、参照によって本明細書に組み込まれている、２００９年３月１１日に出願した国際出願第ＰＣＴ／ＵＳ０９／３６８１０号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｔｏｒｉｎｇ  Ｄａｔａ  ｉｎ  ａ  Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ  ｗｉｔｈ  Ｃｒｏｓｓ−Ｐａｇｅ  Ｓｅｃｔｏｒｓ，  Ｍｕｌｔｉ−Ｐａｇｅ  Ｃｏｄｉｎｇ  Ａｎｄ  Ｐｅｒ−Ｐａｇｅ  Ｃｏｄｉｎｇ」を参照されたい。
【０００６】
たとえば、マルチレベルＮＡＮＤフラッシュ・メモリ・デバイスでは、フローティング・ゲート・デバイスが、複数の間隔に分割される範囲内のプログラム可能しきい電圧と共に使用され、各間隔は、異なるマルチビット値に対応する。所与のマルチビット値をメモリ・セルにプログラムするためには、メモリ・セル内のフローティング・ゲート・デバイスのしきい電圧を、その値に対応するしきい電圧間隔にプログラムする。
【０００７】
メモリ・セルに格納されたアナログ値は、しばしば、ひずむ。ひずみは、通常、たとえばバック・パターン依存（ＢＰＤ）、雑音、およびセル間干渉（ＩＣＩ）に起因する。フラッシュ・メモリ・デバイスでのひずみのより詳細な議論については、たとえば、それぞれ参照によって本明細書に組み込まれている、Ｊ．Ｄ．Ｌｅｅ他、「Ｅｆｆｅｃｔｓ  ｏｆ  Ｆｌｏａｔｉｎｇ−Ｇａｔｅ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  ｏｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃｅｌｌ  Ｏｐｅｒａｔｉｏｎ」、ＩＥＥＥ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｌｅｔｔｅｒｓ、２６４〜２６６頁（２００２年５月）、またはＫｉ−Ｔａｅ  Ｐａｒｋ他、「Ａ  Ｚｅｒｏｉｎｇ  Ｃｅｌｌ−ｔｏ−Ｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｐａｇｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｗｉｔｈ  Ｔｅｍｐｏｒａｒｙ  ＬＳＢ  Ｓｔｏｒｉｎｇ  ａｎｄ  Ｐａｒａｌｌｅｌ  ＭＳＢ  Ｐｒｏｇｒａｍ  Ｓｃｈｅｍｅ  ｆｏｒ  ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．４３、Ｎｏ．４、９１９〜９２８頁（２００８年４月）を参照されたい。
【０００８】
複数の技法が、ＩＣＩおよび他の外乱の影響を軽減するために提案されまたは提唱されてきた。たとえば、Ｋｉ−Ｔａｅ  Ｐａｒｋ他は、ＩＣＩを軽減する、偶数／奇数プログラミング（ｅｖｅｎ／ｏｄｄ  ｐｒｏｇｒａｍｍｉｎｇ）、ボトム・アップ・プログラミング（ｂｏｔｔｏｍ  ｕｐ  ｐｒｏｇｒａｍｍｉｎｇ）、およびマルチステージ・プログラミング（ｍｕｌｔｉ−ｓｔａｇｅ  ｐｒｏｇｒａｍｍｉｎｇ）などの既存のプログラミング技法を説明している。２００９年６月３０日に出願された国際出願第ＰＣＴ／ＵＳ０９／４９３３３号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｏｆｔ  Ｄｅｍａｐｐｉｎｇ  ａｎｄ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」は、フラッシュ・メモリでの軟デマッピングおよび外乱軽減の方法および装置を開示している。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国仮出願第６１／１９４，７５１号
【特許文献２】国際出願第ＰＣＴ／ＵＳ０９／４９３３３号
【特許文献３】国際出願、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｏｆｔ  Ｄａｔａ  Ｇｅｎｅｒａｔｉｏｎ  ｆｏｒ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅｓ  Ｂａｓｅｄ  ｏｎ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｆａｃｔｏｒ  Ａｄｊｕｓｔｍｅｎｔ」
【特許文献４】国際出願、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｏｆｔ  Ｄａｔａ  Ｇｅｎｅｒａｔｉｏｎ  ｆｏｒ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅｓ」
【特許文献５】国際出願、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｏｆｔ  Ｄａｔａ  Ｇｅｎｅｒａｔｉｏｎ  ｆｏｒ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅｓ  Ｕｓｉｎｇ  Ｒｅｆｅｒｅｎｃｅ  Ｃｅｌｌｓ」
【特許文献６】国際出願第ＰＣＴ／ＵＳ０９／３６８１０号
【特許文献７】米国特許第６，５２２，５８０号
【特許文献８】国際出願第ＰＣＴ／ＵＳ０９／４９３２６号
【特許文献９】国際出願第ＰＣＴ／ＵＳ０９／４９３２７号
【特許文献１０】国際出願第ＰＣＴ／ＵＳ０９／４９３２８号
【非特許文献】
【００１０】
【非特許文献１】Ｊ．Ｄ．Ｌｅｅ他、「Ｅｆｆｅｃｔｓ  ｏｆ  Ｆｌｏａｔｉｎｇ−Ｇａｔｅ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  ｏｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃｅｌｌ  Ｏｐｅｒａｔｉｏｎ」、ＩＥＥＥ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｌｅｔｔｅｒｓ、２６４〜２６６頁（２００２年５月）
【非特許文献２】Ｋｉ−Ｔａｅ  Ｐａｒｋ他、「Ａ  Ｚｅｒｏｉｎｇ  Ｃｅｌｌ−ｔｏ−Ｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｐａｇｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｗｉｔｈ  Ｔｅｍｐｏｒａｒｙ  ＬＳＢ  Ｓｔｏｒｉｎｇ  ａｎｄ  Ｐａｒａｌｌｅｌ  ＭＳＢ  Ｐｒｏｇｒａｍ  Ｓｃｈｅｍｅ  ｆｏｒ  ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」、ＩＥＥＥ  Ｊ．ｏｆ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．４３、Ｎｏ．４、９１９〜９２８頁（２００８年４月）
【非特許文献３】Ａ．Ｊ．ＢｌａｎｋｓｂｙおよびＣ．Ｊ．Ｈｏｗｌａｎｄ、「Ａ  ６９０−ｍＷ  １−Ｇｂ／ｓ  １０２４−ｂ，  Ｒａｔｅ−１／２  Ｌｏｗ−Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ−Ｃｈｅｃｋ  Ｄｅｃｏｄｅｒ」、ＩＥＥＥ  Ｊ．Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．３７、４０４〜４１２頁（２００２年３月）
【非特許文献４】Ｄ．Ｅ．Ｈｏｃｅｖａｒ、「ＬＤＰＣ  Ｃｏｄｅ  Ｃｏｎｓｔｒｕｃｔｉｏｎ  Ｗｉｔｈ  Ｆｌｅｘｉｂｌｅ  Ｈａｒｄｗａｒｅ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ」、ＩＥＥＥ  Ｉｎｔ’ｌ  Ｃｏｎｆ．ｏｎ  Ｃｏｍｍ．（ＩＣＣ）、米国アラスカ州アンカレッジ、２７０８〜２７１２頁（２００３年５月）
【非特許文献５】Ｒ．Ｎ．Ｓ．Ｒａｔｎａｙａｋｅ、Ｅ．Ｆ．Ｈａｒａｔｓｃｈ、およびＧｕ−Ｙｅｏｎ  Ｗｅｉ、「Ａ  Ｂｉｔ−ｎｏｄｅ  ｃｅｎｔｒｉｃ  ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ｌｏｗ−ｄｅｎｓｉｔｙ  ｐａｒｉｔｙ  ｃｈｅｃｋ  ｄｅｃｏｄｅｒｓ」、ＩＥＥＥ  Ｇｌｏｂａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｃｏｎｆｅｒｅｎｃｅ（Ｇｌｏｂｅｃｏｍ）、米国コロンビア特別区ワシントン、２６５〜２７０頁（２００７年１１月）
【非特許文献６】Ｅ．Ｙｅｏ他、「ＶＬＳＩ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ  ｆｏｒ  Ｉｔｅｒａｔｉｖｅ  Ｄｅｃｏｄｅｒｓ  ｉｎ  Ｍａｇｎｅｔｉｃ  Ｒｅｃｏｒｄｉｎｇ  Ｃｈａｎｎｅｌｓ」、ＩＥＥＥ  Ｔｒａｎｓ．Ｏｎ  Ｍａｇｎｅｔｉｃｓ、Ｖｏｌ．３７、Ｎｏ．２、７４８〜７５５頁（２００１年３月）
【発明の概要】
【発明が解決しようとする課題】
【００１１】
これらの既存の方法は、フラッシュ・メモリの復号性能を改善するのを助けたが、複数の制約をこうむり、この制約は、克服されたならば、フラッシュ・メモリの信頼性をさらに改善することができる。たとえば、現在のフラッシュ・メモリは、通常、復号のためにフラッシュ制御システムに硬データ（ｈａｒｄ  ｄａｔａ）のみを供給する。しかし、軟データが、復号プロセスの誤り率性能を改善できることが周知である。したがって、フラッシュ・メモリからの硬データを使用して軟データを推定するかその質を高め、これによって復号性能を改善する、軟データ生成技法の必要が存在する。
【課題を解決するための手段】
【００１２】
一般に、デコーダ性能フィードバックを使用するメモリ・デバイス用の軟データ生成の方法および装置。本発明の一態様によれば、少なくとも１つの軟データ値が、デコーダから性能フィードバックを入手することと、性能フィードバックに基づいて読取統計を入手することと、入手された読取統計に基づいて少なくとも１つの軟データ値を生成することとによって、メモリ・デバイス内で生成される。性能フィードバックは、復号されたデータ、デコーダによって復号されたデータに基づいてメモリ・デバイスによって割り当てられた誤りのあるビットの個数、または満足されないパリティ検査の個数を含むことができる。
【００１３】
本発明の一態様によれば、少なくとも１つの軟データ値が、硬データを入手することと、硬データを復号することと、復号されたデータに基づいて読取統計を入手することと、入手された読取統計に基づいて少なくとも１つの軟データ値を生成することとによって、メモリ・デバイス内で生成される。硬データは、データ・ビット、電圧レベル、電流レベル、および抵抗レベルのうちの１つまたは複数を含む。軟データ値は、（ｉ）１つまたは複数の対数尤度比を生成するのに使用される軟読取値、あるいは（ｉｉ）１つまたは複数の対数尤度比を含むことができる。
【００１４】
読取統計または軟データ値（あるいはその両方）は、耐久性、プログラム／消去サイクルの個数、読取サイクルの個数、保持時間、温度、温度変化、プロセス・コーナー（ｐｒｏｃｅｓｓ  ｃｏｒｎｅｒ）、セル間干渉影響、メモリ・デバイス内の位置、およびアグレッサ（ａｇｇｒｅｓｓｏｒ）・セルのパターンのうちの１つまたは複数の関数として計算され得る。
【００１５】
一変形形態では、軟データ値は、メモリ・アレイの１つまたは複数の所望の位置について入手され、誤りのあるビットの個数は、１つまたは複数の所望の位置について判定される。
【００１６】
もう１つの変形形態では、読取統計は、少なくとも１つのターゲット・セルに関連する１つまたは複数のアグレッサ・セル内の所与のパターンＰＡＴＴについて入手され、方法は、１つまたは複数のターゲット・セルおよび１つまたは複数の関連するアグレッサ・セルについて硬データを復号するステップと、関連するアグレッサ・セル内の所与のパターンＰＡＴＴを有する誤りのある復号されたターゲット・ビットの個数を判定するステップと、誤りのある復号されたターゲット・ビットの個数に基づいて所与のパターンについて読取統計を入手するステップとをさらに含む。
【００１７】
もう１つの変形形態では、読取統計は、複数の可能な値について入手された非対称読取統計を含み、方法は、復号されたデータ内の第１の値を有する誤りのあるビットの個数を判定するステップと、復号されたデータ内の第２の値を有する誤りのあるビットの個数を判定するステップと、第１の値を有する誤りのあるビットの個数に基づいて第１の値に関する読取統計を入手するステップと、第２の値を有する誤りのあるビットの個数に基づいて第２の値に関する読取統計を入手するステップとをさらに含む。
【００１８】
さまざまな実施形態では、読取統計は、ビット・ベースの統計、セル・ベースの統計、およびパターン依存統計のうちの１つまたは複数を含む。読取統計は、確率および読取分布の平均値または分散のうちの１つまたは複数を含むこともできる。
【００１９】
本発明のもう１つの態様によれば、少なくとも１つの軟データ値が、満足されないパリティ検査の個数を入手することと、満足されないパリティ検査の個数に基づいて少なくとも１つの軟データ値を生成することとによって、メモリ・デバイス内で生成される。
【００２０】
本発明ならびに本発明のさらなる特徴および利益のより完全な理解は、次の詳細な説明および図面を参照することによって得られる。
【図面の簡単な説明】
【００２１】
【図１】従来のフラッシュ・メモリ・システムを示す概略ブロック図である。
【図２】図１の例示的なフラッシュ・メモリの例示的なしきい電圧分布を示す図である。
【図３】マルチレベル・セル（ＭＬＣ）フラッシュ・メモリ・デバイス内の例示的なフラッシュ・セル・アレイのアーキテクチャを示す図である。
【図４】図２の電圧割当て方式の例示的な２ステージＭＬＣプログラミング方式を示す図である。
【図５Ａ】隣接セルに加えられるＩＣＩを減らす代替ＭＬＣプログラミング方式を集合的に示す図である。
【図５Ｂ】隣接セルに加えられるＩＣＩを減らす代替ＭＬＣプログラミング方式を集合的に示す図である。
【図６】マルチレベル・セル（ＭＬＣ）フラッシュ・メモリ・デバイス内の例示的なフラッシュ・セル・アレイをさらに詳細に示す図である。
【図７】セル間干渉、バック・パターン依存、雑音、および他のひずみなどの複数の例示的なアグレッサ・セルに起因するターゲット・セルについて存在する外乱を示す図である。
【図８】本発明によるコントローラ・ベースの軟デマッピング／軟データ生成技法を組み込まれた例示的なフラッシュ・メモリ・システムを示す概略ブロック図である。
【図９】本発明の代替実施形態によるメモリ・ベースの軟デマッピング／軟データ生成技法を組み込まれた例示的なフラッシュ・メモリ・システムを示す概略ブロック図である。
【図１０】反復的なデマッピングおよび復号ならびにオプションのインターリービングを用いる例示的なフラッシュ読取チャネル・アーキテクチャを示す図である。
【図１１】本発明による軟データ生成を用いる例示的なフラッシュ・メモリ・システムを示す図である。
【図１２Ａ】それぞれ例示的な軟デマッピング・プロセスおよび例示的な軟データ生成プロセスを説明する流れ図である。
【図１２Ｂ】それぞれ例示的な軟デマッピング・プロセスおよび例示的な軟データ生成プロセスを説明する流れ図である。
【図１３】ＬＤＰＣ（ｌｏｗ−ｄｅｎｓｉｔｙ  ｐａｒｉｔｙ−ｃｈｅｃｋ）符号の例示的な２部グラフ表現を示す図である。
【図１４】例示的なＬＤＰＣデコーダ・アーキテクチャを示すブロック図である。
【図１５】本発明の一実施形態による軟データ生成を用いる例示的なフラッシュ・メモリ・システムを示す図である。
【図１６】例示的な２進チャネルの誤り確率ｐおよびｑを示すトレリスである。
【図１７Ａ】フラッシュ・メモリからのデータの読出に関する統計を記録する例示的なセル・ベースの統計テーブルを示す図である。
【図１７Ｂ】フラッシュ・メモリからのデータの読出に関する統計を記録する例示的なセル・ベースの統計テーブルを示す図である。
【図１７Ｃ】フラッシュ・メモリからのデータの読出に関する統計を記録する例示的なセル・ベースの統計テーブルを示す図である。
【図１８】フラッシュ・メモリからのデータの読出に関するパターン依存統計を記録する例示的なパターン依存セル・ベース統計テーブルを示す図である。
【図１９】本発明の基準セル実施形態に関する、図３の例示的なフラッシュ・セル・アレイをさらに詳細に示す図である。
【図２０】本発明の基準セル実施形態に関するビット・ベースの統計生成プロセスの例示的実施態様を説明する流れ図である。
【図２１】本発明の基準セル実施形態に関するセル・ベースの統計生成プロセスの例示的実施態様を説明する流れ図である。
【図２２】本発明の復号済み符号語実施形態に関するビット・ベースの統計生成プロセスの例示的実施態様を説明する流れ図である。
【図２３】本発明の復号済み符号語実施形態に関するセル・ベースの統計生成プロセスの例示的実施態様を説明する流れ図である。
【図２４】メモリ・アレイ内の複数の異なる位置に関する誤り確率統計を計算する例示的なビット・ベースの位置固有統計生成プロセスを説明する流れ図である。
【図２５】メモリ・アレイ内の複数の異なる位置に関する統計を計算する例示的なセル・ベースの位置固有統計生成プロセスを説明する流れ図である。
【図２６】各アグレッサ・セルのすべての可能な値に基づく、所与のターゲット・セルに対するパターン依存外乱の影響を示す確率密度関数の集団を示す図である。
【図２７】少なくとも１つのターゲット・セルに関連する１つまたは複数のアグレッサ・セル内の所与のデータ・パターンに依存する誤り確率統計を推定する例示的なビット・ベースのパターン依存統計生成プロセスを説明する流れ図である。
【図２８】少なくとも１つのターゲット・セルに関連する１つまたは複数のアグレッサ・セル内の所与のデータ・パターンに依存する統計を推定する例示的なセル・ベースのパターン依存統計生成プロセスを説明する流れ図である。
【図２９】本発明の基準セル実施形態の２つの可能な２進値の誤り確率統計を推定する例示的な非対称統計生成プロセスを説明する流れ図である。
【図３０】本発明の復号済み符号語実施形態の２つの可能な２進値の誤り確率統計を推定する例示的な非対称統計生成プロセスを説明する流れ図である。
【図３１】満足されないパリティ検査を使用する統計生成プロセスの例示的実施態様を説明する流れ図である。
【図３２】満足されないパリティ検査を使用してメモリ・アレイ内の複数の異なる位置の誤り確率統計を推定する例示的な位置固有統計生成プロセスを説明する流れ図である。
【図３３】満足されないパリティ検査を使用して２つの可能な２進値の誤り確率統計を推定する例示的な非対称統計生成プロセスを説明する流れ図である。
【発明を実施するための形態】
【００２２】
本発明のさまざまな態様は、シングルレベル・セルまたはマルチレベル・セル（ＭＬＣ）ＮＡＮＤフラッシュ・メモリ・デバイスなどのメモリ・デバイスでの改善された復号のための軟データ生成技法を対象とする。本明細書で使用されるときに、マルチレベル・セル・フラッシュ・メモリは、各メモリ・セルが複数のビットを格納するメモリを含む。通常、１つのフラッシュ・セルに格納される複数のビットは、異なるページに属する。本発明は、本明細書ではアナログ値を電圧として格納するメモリ・セルを使用して例示されるが、当業者に明白であるように、本発明を、格納されたデータを表すのに電圧または電流を使用することなど、メモリ・デバイスの任意のストレージ機構と共に使用することができる。
【００２３】
図１は、従来のフラッシュ・メモリ・システム１００の概略ブロック図である。図１に示されているように、例示的なフラッシュ・メモリ・システム１００は、フラッシュ制御システム１１０およびフラッシュ・メモリ・ブロック１６０を含む。例示的なフラッシュ制御システム１１０は、フラッシュ・コントローラ１２０、エンコーダ／デコーダ・ブロック１４０、および１つまたは複数のバッファ１４５を含む。代替実施形態では、エンコーダ／デコーダ・ブロック１４０およびいくつかのバッファ１４５を、フラッシュ・コントローラ１２０の内部で実施することができる。エンコーダ／デコーダ・ブロック１４０およびバッファ１４５を、たとえば、周知の市販の技法および／または製品を使用して実施することができる。
【００２４】
例示的なフラッシュ・メモリ・ブロック１６０は、それぞれ周知の市販の技法および／または製品を使用して実施できる、メモリ・アレイ１７０および１つまたは複数のバッファ１８０を含む。メモリ・アレイ１７０は、ＮＡＮＤフラッシュ・メモリ、相変化メモリ（ＰＣＭ）、ＭＲＡＭメモリ、ＮＯＲフラッシュ・メモリ、または別の不揮発性フラッシュ・メモリなど、シングルレベル・セルまたはマルチレベル・セルのフラッシュ・メモリとして実施することができる。本発明を、主にマルチレベル・セルＮＡＮＤフラッシュ・メモリの文脈で例示するが、当業者に明白であるように、本発明を、シングルレベル・セル・フラッシュ・メモリおよび他の不揮発性メモリに適用することができる。
【００２５】
マルチレベル・セル・フラッシュ・メモリ
マルチレベル・セルＮＡＮＤフラッシュ・メモリでは、しきい値検出器が、通常、特定のセルに関連する電圧値を事前定義のメモリ状態に変換するのに使用される。図２に、参照によって本明細書に組み込まれている米国特許第６，５２２，５８０号の教示に基づく、図１の例示的なマルチレベル・セル・フラッシュ・メモリ１７０の例示的なしきい電圧分布を示す。一般に、セルのしきい電圧は、そのセルがある量の電流を導通するようにするためにそのセルに印加される必要がある電圧である。しきい電圧は、セルに格納されるデータに関する測定値である。
【００２６】
図２に示された例示的な実施形態では、各ストレージ要素は、各メモリ・セル内に２ビットのデータを格納するために４つの可能なデータ状態を使用する。図２は、４つのピーク２１０〜２１３を示し、各ピークは１つの状態に対応する。マルチレベル・セル・フラッシュ・デバイスでは、しきい電圧分布グラフ２００の異なるピーク２１０〜２１３が、セルに２ビットを格納するのに使用される。
【００２７】
しきい電圧分布グラフ２００のピーク２１０〜２１３は、対応する２進値を用いてラベルを付けられている。したがって、あるセルが第１状態２１０であるときに、そのセルは、下側ビット（最下位ビット、ＬＳＢとも称する）について「１」を、上側ビット（最上位ビット、ＭＳＢとも称する）について「１」を表す。状態２１０は、一般に、セルの初期未プログラム状態または消去状態である。同様に、あるセルが、第２状態２１１であるときに、そのセルは、下側ビットについて「０」、上側ビットについて「１」を表す。あるセルが第３状態２１２であるときに、そのセルは、下側ビットについて「０」、上側ビットについて「０」を表す。最後に、あるセルが第４状態２１３であるときに、そのセルは、下側ビットについて「１」、上側ビットについて「０」を表す。
【００２８】
しきい電圧分布２１０は、０ボルト未満の負のしきい電圧レベルを有する、消去状態（「１１」データ状態）であるアレイ内のセルのしきい電圧Ｖｔの分布を表す。それぞれ「１０」および「００」のユーザ・データを格納するメモリ・セルのしきい電圧分布２１１および２１２が、それぞれ０ボルトと１ボルトとの間ならびに１ボルトと２ボルトとの間にあるものとして示されている。しきい電圧分布２１３は、読取経路電圧の２ボルトと４．５ボルトとの間にセットされたしきい電圧レベルを有する、「０１」データ状態になるようにプログラムされたセルの分布を示す。
【００２９】
したがって、図２の例示的実施形態では、０ボルト、１ボルト、および２ボルトを、各レベルまたは各状態の間の電圧レベルしきい値として使用することができる。これらの電圧レベルしきい値は、フラッシュ・メモリ１６０（たとえば、フラッシュ・メモリ１６０内のセンシング回路）によって、所与のセルの電圧レベルまたは状態を判定するのに使用される。フラッシュ・メモリ１６０は、電圧レベルしきい値に対する測定電圧の比較に基づいて各セルに１つまたは複数のビットを割り当て、この割当ては、その後、硬判定としてフラッシュ制御システム１１０に送られる。それに加えてまたはその代わりに、軟情報（ｓｏｆｔ  ｉｎｆｏｒｍａｔｉｏｎ）を使用する実施態様では、フラッシュ・メモリ１６０は、測定電圧または測定電圧の量子化版を軟情報としてフラッシュ制御システム１１０に送ることができ、ここでは、メモリ・セルに格納されたビット数より多数のビットが、測定電圧を表すのに使用される。
【００３０】
さらに、セルが、通常は周知のプログラム／検証技法を使用してプログラムされることに留意されたい。一般に、プログラム／検証サイクル中には、フラッシュ・メモリ１６０は、最小ターゲットしきい電圧を超えるまで、セル・トランジスタ内に電荷をたくわえるために増加する電圧を徐々に印加する。たとえば、図２の例で「１０」データ状態をプログラムする時に、フラッシュ・メモリ１６０は、０．４Ｖの最小ターゲットしきい電圧を超えるまで、セル・トランジスタ内に電荷をたくわえるために増加する電圧を徐々に印加することができる。
【００３１】
下でさらに述べるように、単一のメモリ・セルに格納された２ビットのそれぞれは、異なるページからのものである。言い換えると、各メモリ・セルに格納された２ビットの各ビットは、異なるページ・アドレスを担う。図２に示された右側ビットは、下側ページ・アドレスが入力される時にアクセスされる。左側ビットは、上側ページ・アドレスが入力される時にアクセスされる。
【００３２】
図３に、マルチレベル・セル（ＭＬＣ）フラッシュ・メモリ・デバイス１６０内の例示的なフラッシュ・セル・アレイ３００のアーキテクチャを示し、ここで、各例示的セルは、通常、２ビットを格納するフローティングゲート・トランジスタに対応する。図３では、各セルが、２ビットが属する２つのページの２つの番号に関連する。例示的なセル・アレイ・セクション３００は、ワード線ｎからｎ＋２および４つのビット線を示す。例示的なフラッシュ・セル・アレイ３００は、偶数ページおよび奇数ページに区分され、たとえば、偶数番号を有するセル（番号０および２を有するセルなど）は、偶数ページに対応し、奇数番号を有するセル（番号１および３を有するセルなど）は、奇数ページに対応する。ワード線ｎは、たとえば、偶数ビット線に偶数ページ０および２を格納し、奇数ビット線に奇数ページ１および３を格納する。
【００３３】
さらに、図３は、偶数ビット線セルまたは奇数ビット線セルのいずれかが選択され、示された順序で順次（ボトム・アップ）プログラムされる、例示的なプログラム・シーケンスを示す。番号は、ページがプログラムされる順序を示す。たとえば、ページ０は、ページ１の前にプログラムされる。偶数ページおよび帰趨ページのプログラミングのさらなる議論については、参照によって本明細書に組み込まれている、Ｋ．−Ｔ．Ｐａｒｋ他、「Ａ  Ｚｅｒｏｉｎｇ  Ｃｅｌｌ−ｔｏ−Ｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｐａｇｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｗｉｔｈ  Ｔｅｍｐｏｒａｒｙ  ＬＳＢ  Ｓｔｏｒｉｎｇ  ａｎｄ  Ｐａｒａｌｌｅｌ  ＭＳＢ  Ｐｒｏｇｒａｍ  Ｓｃｈｅｍｅ  ｆｏｒ  ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」、ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．４３、Ｎｏ．４、９１９〜９２８頁（２００８年４月）を参照されたい。
【００３４】
図４に、図２の電圧割当て方式の例示的な２ステージＭＬＣプログラミング方式４００を示す。図４に示されているように、ＬＳＢプログラミング・ステージ中には、消去状態４１０である選択されたセルの状態は、ＬＳＢが０である場合には最低のプログラム済み状態４１１に移動する。したがって、ＬＳＢプログラミング状態で、メモリ・セルは、消去状態「１１」から「１０」にプログラムされる。次に、ＭＳＢプログラム・ステージ中に、２つの状態すなわち状態「００」（４１２）および状態「０１」（４１３）が、以前のＬＳＢデータに応じて順次形成される。一般に、ＭＳＢプログラミング状態中には、「１０」状態が「００」にプログラムされ、状態「１１」が「０１」にプログラムされる。
【００３５】
図４のプログラミング方式４００が、状態４１０から状態４１３への状態の変化に関連する最大電圧シフトを示すことに留意されたい。複数のプログラミング方式が、状態の変化に関連する最大電圧シフトを減らし、これによって、電圧シフトによって引き起こされるＩＣＩを減らすために提案されまたは提唱されてきた。
【００３６】
図５Ａおよび５Ｂは、隣接セルに加えられるＩＣＩを減らす代替ＭＬＣプログラミング方式５００を集合的に示す。図５Ａに示されているように、ＬＳＢプログラミング・ステージ中に、メモリ・セルは、ＳＬＣプログラミングに似た形で、状態「１１」から一時的（または中間）状態として状態「ｘ０」にプログラムされる。同一ワード線内の隣接セルもＬＳＢプログラムされた後に、分布は、おそらくは、ＩＣＩに起因して図５Ａのピーク５１０によって示されるように広げられる。その後、図５Ｂに示されたＭＳＢプログラミング・ステージで、「ｘ０」状態が、入力データに対応する最終状態として「００」および「１０」のいずれかにプログラムされ、あるいは、「１１」状態が、最終的な「０１」状態にプログラムされる。一般に、「１１」セルを除くすべてのメモリ・セルは、ＭＳＢプログラミング・ステージで、ＬＳＢデータについて一時的にプログラムされた状態からその最終的な状態に再プログラムされ、その結果、隣接セルによって引き起こされるＩＣＩを大幅に減らせるようになる。最終的な状態のセルは、最終的な状態に再プログラムされたので、中間状態である間に経験したＩＣＩから損害を受けない。最終的な状態のセルは、最終的な状態になって以降に経験したＩＣＩからのみ損害を受ける。上で注記したように、中間プログラム状態を使用する、図５Ａおよび５Ｂのマルチステップ・プログラミング・シーケンスは、最大電圧変化を減らし、したがって、これらの電圧変化によって引き起こされるＩＣＩを減らす。図５Ｂで、たとえばＭＳＢプログラミング・ステージ中の最大電圧シフトが、それぞれ状態「１１」から「０１」へおよび状態「ｘ０」から状態「１０」への遷移に関連することがわかる。これらの電圧シフトは、図４の状態「１１」から「０１」への最大電圧シフトより大幅に小さい。
【００３７】
図６に、マルチレベル・セル（ＭＬＣ）フラッシュ・メモリ・デバイス１３０内の例示的なフラッシュ・セル・アレイ６００をさらに詳細に示す。図６に示されているように、フラッシュ・セル・アレイ６００は、フラッシュ・セルあたり３つのビットｃｉを格納する。図６は、１ブロックのフラッシュ・セル・アレイ・アーキテクチャを示し、ここで、各例示的なセルは、通常、３ビットを格納するフローティングゲート・トランジスタに対応する。例示的なセル・アレイ６００は、ｍ個のワード線およびｎ個のビット線からなる。通常、現在のマルチページ・セル・フラッシュ・メモリでは、単一のセル内のビットは、異なるページに属する。図６の例では、各セルの３つのビットは、３つの異なるページに対応し、各ワード線は、３つのページを格納する。次の議論では、ページ０、１、および２を、ワード線内の下側ページ・レベル、中央ページ・レベル、および上側ページ・レベルと称する。
【００３８】
上で示したように、フラッシュ・セル・アレイを、偶数ページおよび奇数ページにさらに区分することができ、たとえば、偶数番号を有するセル（図６のセル２および４など）は、偶数ページに対応し、奇数番号を有するセル（図６のセル１および３など）は、奇数ページに対応する。この場合に、ページ（ページ０など）は、偶数セル内に偶数ページ（偶数ページ０）を含み、奇数セル内に奇数ページ（奇数ページ０）を含む。
【００３９】
セル間干渉および他の外乱
図７に、セル間干渉、バック・パターン依存、雑音、および他のひずみなどの複数の例示的なアグレッサ・セル７２０に起因するターゲット・セル７１０について存在する外乱を示す。次の表記か、図７で使用されている。
ＷＬ  ワード線、
ＢＬ  ビット線、
ＢＬｏ  奇数ビット線、
ＢＬｅ  偶数ビット線、および
Ｃ  キャパシタンス。
【００４０】
たとえば、ＩＣＩは、ターゲット・セル７１０がプログラムされた後にプログラムされるアグレッサ・セル７２０によって引き起こされる。ＩＣＩは、ターゲット・セル７１０の電圧Ｖｔを変更する。例示的実施形態では、「ボトム・アップ」プログラミング方式が仮定され、ワード線ｉおよびｉ＋１内の近接アグレッサ・セルが、ターゲット・セル７１０のＩＣＩを引き起こす。ブロックのそのようなボトム・アップ・プログラミングを用いると、図７に示されているように、下側ワード線ｉ−１からのＩＣＩが除去され、５つまでの隣接するセルが、アグレッサ・セル７２０としてＩＣＩに寄与する。しかし、当業者に明白であるように、本明細書で開示される技法を、ワード線ｉ−１などの他のワード線からのアグレッサ・セルもＩＣＩに寄与する場合に一般化できることに留意されたい。ワード線ｉ−１、ｉ、およびｉ＋１からのアグレッサ・セルがＩＣＩに寄与する場合には、８つまでの最も近い隣接セルを考慮する必要がある。ターゲット・セルからより遠い他のセルは、そのＩＣＩへの寄与を無視できる場合には、無視することができる。一般に、アグレッサ・セル７２０は、所与のターゲット・セル７１０の後にプログラムされるアグレッサ・セル７２０を識別するためにプログラミング・シーケンス方式（ボトム・アップまたは偶数／奇数技法など）を分析することによって識別される。
【００４１】
一般に、Ｖｔは、セルに格納されたデータを表す電圧であり、読取動作中に入手される。Ｖｔを、読取動作によって、たとえばセルあたりに格納されるビット数より高い精度を有する軟電圧値として、またはセルあたりに格納されるビット数と同一の分解能を有する硬電圧レベル（たとえば、３ビット／セル・フラッシュについて３ビット）に量子化された値として、入手することができる。
【００４２】
ＩＣＩ軽減技法のより詳細な議論については、たとえば、それぞれ参照によって本明細書に組み込まれている国際出願第ＰＣＴ／ＵＳ０９／４９３２６号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｒｅａｄ−Ｓｉｄｅ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」または国際出願第ＰＣＴ／ＵＳ０９／４９３２７号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｗｒｉｔｅ−Ｓｉｄｅ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」を参照されたい。
【００４３】
軟データ生成
本発明は、フラッシュ・メモリの軟デマッピング技法および軟データ生成技法を提供する。下で図１２Ａに関連してさらに述べる、１つの例示的実施形態では、質を高められた軟データが、確率密度関数、その近似、ビット・ベースの確率、またはセル・ベースの確率などの確率統計を使用してフラッシュ・メモリによって割り当てられる軟データから生成される。下で図１２Ｂに関連してさらに述べる、別の例示的実施形態では、軟データは、確率密度関数、その近似、ビット・ベースの確率、またはセル・ベースの確率などの確率統計を使用してフラッシュ・メモリによって割り当てられる硬データから生成される。一般に、フラッシュ・メモリによって割り当てられるデータは、最初に入手される。次に、本発明は、フラッシュ・メモリからのデータに基づいて、確率または信頼性情報などの軟情報を生成し、またはその質を高める。生成された軟情報を、オプションで、軟判定復号に使用することができる。本明細書で使用されるときに、用語「確率密度関数」は、確率密度関数と、ヒストグラムおよびガウス近似などのその近似とを含まなければならない。
【００４４】
図８は、本発明によるコントローラ・ベースの軟データ生成技法を組み込まれた例示的なフラッシュ・メモリ・システム８００の概略ブロック図である。図８に示されているように、例示的なフラッシュ・メモリ・システム８００は、インターフェース８５０によって接続された、フラッシュ制御システム８１０およびフラッシュ・メモリ・ブロック８６０を含む。例示的なフラッシュ制御システム８１０は、通常は１つまたは複数の集積回路である、フラッシュ・コントローラ８２０および読取チャネル８２５を含む。
【００４５】
例示的な読取チャネル８２５は、信号処理ユニット８３０、エンコーダ／デコーダ・ブロック８４０、および１つまたは複数のバッファ８４５を含む。用語「読取チャネル」が、書込チャネルをも含むことができることに留意されたい。代替実施形態では、エンコーダ／デコーダ・ブロック８４０およびいくつかのバッファ８４５を、フラッシュ・コントローラ８２０の内部で実施することができる。エンコーダ／デコーダ・ブロック８４０およびバッファ８４５を、たとえば、本発明の特徴および機能を提供するために本明細書で変更される、周知の市販の技法および／または製品を使用して実施することができる。
【００４６】
例示的な信号処理ユニット８３０は、それぞれたとえば図１２Ａおよび１２Ｂに関連して下でさらに述べる１つまたは複数の軟デマッパおよび／または軟データ生成プロセス８３５を実施する１つまたは複数のプロセッサを含む。例示的なフラッシュ・メモリ・ブロック８６０は、それぞれ周知の市販の技法および／または製品を使用して実施できるメモリ・アレイ８７０および１つまたは複数のバッファ８８０を含む。
【００４７】
開示される軟データ生成技法のさまざまな実施形態では、例示的なインターフェース８５０は、アグレッサ・セルに関連する情報を表す値など、従来のフラッシュ・メモリ・システムに関連する追加情報を伝える必要がある場合がある。したがって、インターフェース８５０は、従来のフラッシュ・メモリ・システム内のインターフェースより大きい容量またはより高速のレートを有する必要がある場合がある。インターフェース８５０を、オプションで、参照によって本明細書に組み込まれている、２００９年６月３０日に出願した国際出願第ＰＣＴ／ＵＳ０９／４９３２８号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｉｎｔｅｒｆａｃｉｎｇ  Ｂｅｔｗｅｅｎ  ａ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ  ａｎｄ  ａ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ａｒｒａｙ」（弁理士整理番号第０８−０７６９号）の教示に従って実施することができ、この国際出願第ＰＣＴ／ＵＳ０９／４９３２８号の教示は、たとえばダブル・データ・レート（ＤＤＲ）技法を使用してインターフェース８５０の情報搬送容量を高める。書込動作中に、インターフェース８５０は、通常はページ・レベル・アクセス技法またはワード線レベル・アクセス技法を使用して、ターゲット・セルに格納されるプログラム値を転送する。例示的なページ・レベル・アクセス技法またはワード線レベル・アクセス技法のより詳細な議論については、たとえば、参照によって本明細書に組み込まれている、２００９年３月１１日に出願した国際出願第ＰＣＴ／ＵＳ０９／３６８１０号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｔｏｒｉｎｇ  Ｄａｔａ  ｉｎ  ａ  Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ  ｗｉｔｈ  Ｃｒｏｓｓ−Ｐａｇｅ  Ｓｅｃｔｏｒｓ，  Ｍｕｌｔｉ−Ｐａｇｅ  Ｃｏｄｉｎｇ  ａｎｄ  Ｐｅｒ−Ｐａｇｅ  Ｃｏｄｉｎｇ」を参照されたい。
【００４８】
読取動作中に、インターフェース８５０は、ターゲット・セルおよびアグレッサ・セルについてメモリ・アレイ８７０から入手された硬読取値および／または軟読取値を転送する。たとえば、ターゲット・セルを有するページの読取値に加えて、上側／下側ワード線または隣接する偶数ビット線もしくは奇数ビット線内の１つまたは複数の近接ページの読取値が、インターフェース・バスを介して転送される。図８の実施形態では、開示される軟データ生成技法は、フラッシュ・メモリの外部で、通常は最小面積を達成するために論理回路用に最適化されたプロセス・テクノロジで実施される。しかし、これは、インターフェース８５０上で転送される可能性がある追加のアグレッサ・セル・データという犠牲を払うものである。
【００４９】
図９は、本発明の代替実施形態によるメモリ・ベースの軟データ生成技法を組み込まれた例示的なフラッシュ・メモリ・システム９００の概略ブロック図である。図９に示されているように、例示的なフラッシュ・メモリ・システム９００は、インターフェース９５０によって接続された、フラッシュ制御システム９１０およびフラッシュ・メモリ・ブロック９６０を含む。
【００５０】
例示的なフラッシュ制御システム９１０は、通常は１つまたは複数の集積回路である、フラッシュ・コントローラ９２０およびオプションの読取チャネル９２５を含む。代替実施形態では、エンコーダ／デコーダ・ブロック９４０およびいくつかのバッファ９４５を、フラッシュ・コントローラ９２０の内部で実施することができる。例示的なフラッシュ・コントローラ９２０を、たとえば、本発明の特徴および機能をサポートするために本明細書で変更される、周知の市販の技法および／または製品を使用して実施することができる。例示的な読取チャネル９２５は、エンコーダ／デコーダ・ブロック９４０および１つまたは複数のバッファ９４５を含む。エンコーダ／デコーダ・ブロック９４０およびバッファ９４５を、周知の市販の技法および／または製品を使用して実施することができる。
【００５１】
例示的なフラッシュ・メモリ・ブロック９６０は、それぞれ周知の市販の技法および／または製品を使用して実施することができる、メモリ・アレイ９７０および１つまたは複数のバッファ９８０を含む。さらに、例示的なフラッシュ・メモリ・ブロック９６０は、それぞれたとえば図１２Ａおよび１２Ｂに関連して下でさらに述べる１つまたは複数の軟デマッピングおよび／または軟データ生成プロセス９９０を実施する１つまたは複数のプロセッサを含む例示的な信号処理ユニット９８５を含む。
【００５２】
開示される軟データ生成技法のさまざまな実施形態では、例示的なインターフェース９５０は、アグレッサ・セルに関連する情報を表す値など、従来のフラッシュ・メモリ・システムに関連する追加情報を伝える必要がある場合がある。したがって、インターフェース９５０は、従来のフラッシュ・メモリ・システム内のインターフェースより大きい容量またはより高速のレートを有する必要がある場合がある。インターフェース９５０を、オプションで、参照によって本明細書に組み込まれている、２００９年６月３０日に出願した国際出願第ＰＣＴ／ＵＳ０９／４９３２８号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｉｎｔｅｒｆａｃｉｎｇ  Ｂｅｔｗｅｅｎ  ａ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ  ａｎｄ  ａ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ａｒｒａｙ」（弁理士整理番号第０８−０７６９号）の教示に従って実施することができ、この国際出願第ＰＣＴ／ＵＳ０９／４９３２８号の教示は、たとえばダブル・データ・レート（ＤＤＲ）技法を使用してインターフェース９５０の情報搬送容量を高める。
【００５３】
書込動作中に、インターフェース９５０は、ターゲット・セルおよびアグレッサ・セルに格納されるプログラム・データを転送する。読取動作中に、インターフェース９５０は、ターゲット・セル（１つまたは複数）およびオプションでアグレッサ・セルの新しい硬読取値、硬データ、軟読取値、または軟データを転送する。通常、単一の読取アクセスについて伝えられる情報は、１ページまたは１ワード線のデータである。ターゲット・セルのデータだけを送ることは、通常は論理回路用ではなくメモリ用に最適化された、フラッシュ・メモリの製造に使用されるメモリ・プロセス・テクノロジを使用してメモリの内部で軟データ生成プロセスを実施するという犠牲を払って、インターフェース９５０の帯域幅要件を減らすことに留意されたい。
【００５４】
図１０に、参照によって本明細書に組み込まれている２００９年６月３０日に出願した国際出願第ＰＣＴ／ＵＳ０９／４９３３３号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｏｆｔ  Ｄｅｍａｐｐｉｎｇ  ａｎｄ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」の教示に従う反復的なデマッピングおよび復号ならびにオプションのインターリービングを用いる例示的なフラッシュ読取チャネル・アーキテクチャ１０００を示す。図１０に示されているように、例示的な書込経路は、エンコーダ１０１０、オプションのインターリーバ１０２０、直並列コンバータ１０３０、およびマッパ１０４０を含む。データは、既知の形でメモリ１０５０に書き込まれ、メモリ１０５０から読み取られる。例示的な読取経路は、軟デマッパまたは軟データ・ジェネレータ１０６０、並直列コンバータ１０７０、デインターリーバ１０８０、デコーダ１０９０、およびインターリーバ１０９５を含む。一般に、下でさらに述べるように、軟デマッパまたは軟データ・ジェネレータ１０６０は、反復プロセスが最終判断に収束するまで反復的な形で新しい軟情報を生成し、軟デマッパにフィード・バックするためにデコーダ１０９０によって処理される、下でさらに説明される軟情報を生成する。
【００５５】
本発明に従って軟情報（ＬＬＲ）を生成するのに軟デマッパ１０６０によって使用される式を、下の「読取統計を使用する軟データ（ＬＬＲ）の計算」という題名のセクションで述べる。図１０に示されているように、軟デマッパ１０６０によって生成される軟情報を、軟デマッパ１０６０、デインターリーバ１０８０、デコーダ１０９０、およびフィードバック経路内のインターリーバ１０９５の間の反復デマッピングおよび復号に使用することができる。
【００５６】
フラッシュからのデータに基づく軟データ生成
本発明は、現在のフラッシュ・メモリ８６０、９６０が、通常はフラッシュ制御システム８１０、９１０に硬データだけを供給することを認めるものである。しかし、軟データが、復号プロセスで誤り率性能を改善できることが周知である。したがって、本発明の一態様によれば、フラッシュ・メモリ８６０、９６０からの硬データは、軟データを推定するのに使用され、これによって、フラッシュ制御システム８１０、９１０での復号性能を改善する。たとえば、後で述べるように、硬データの統計特性を使用して、軟データを推定するかその質を高めることができる。生成された軟データを、その後、誤り率性能を改善するために、ＬＤＰＣ符号の確率伝搬（ｂｅｌｉｅｆ  ｐｒｏｐａｇａｔｉｏｎ）復号などの復号に使用することができる。
【００５７】
本発明のもう１つの態様によれば、フラッシュ・メモリ８６０、９６０は、フラッシュ制御システム８１０、９１０に軟データまたは軟情報を供給する。質を高められた軟データが、フラッシュ・メモリ８６０、９６０によって供給された軟データから生成されて、これによって、フラッシュ制御システム８１０、９１０での復号性能が改善される。軟情報を使用する実施態様では、フラッシュ・メモリ・システム８６０、９６０は、測定電圧または測定電圧の量子化版を軟情報としてフラッシュ制御システム８１０、９１０に送り、ここで、メモリ・セルに格納されるビット数より多数のビットが、測定電圧を表すのに使用される。
【００５８】
図１１に、本発明の一実施形態によるコントローラ・ベースの軟データ生成を用いる例示的なフラッシュ・メモリ・システム１１００を示す。図１１に示されているように、例示的なフラッシュ・メモリ・システム１１００は、インターフェース１１１５によって接続された、フラッシュ・メモリ・ブロック１１１０およびフラッシュ制御システム１１２０を含む。後で述べるように、軟データ値または硬データ値（あるいはその両方）は、フラッシュ・メモリ・ブロック１１１０によって割り当てることができ、さらなる復号および処理のためにインターフェース１１１５を介してフラッシュ制御システム１１２０に転送される。例示的なフラッシュ制御システム１１２０は、下で図１２Ａおよび１２Ｂに関連してさらに述べる軟デマッパ／軟データ・ジェネレータ１２００と、下で図１３〜１４に関連してさらに述べるデコーダ１４００とを含む。デコーダ１４００は、たとえば、確率伝搬、メッセージ・パッシング、Ｓｕｍ−Ｐｒｏｄｕｃｔ、またはＭｉｎ−Ｓｕｍアルゴリズムなど、ＬＤＰＣ復号アルゴリズムを使用して実施することができる。
【００５９】
図１１に示されているように、軟デマッパ／軟データ・ジェネレータ１２００によって生成される軟情報を、オプションで、軟デマッパ／軟データ・ジェネレータ１２００とデコーダ１４００との間の反復的なデマッピングおよび復号に使用することができる。一般に、図１１に示されているように、軟デマッパ／軟データ・ジェネレータ１２００は、下の「読取統計を使用する軟データ（ＬＬＲ）の計算」という題名のセクションで述べるように、ＬＬＲの形の軟情報Ｌｅを生成する。当初に、軟デマッパ／軟データ・ジェネレータ１２００によって計算されたＬＬＲ、Ｌｅは、フラッシュ・メモリ１１００からの軟読出または硬読出（あるいはその両方）および対応する統計に基づく。ＬＬＲ、Ｌｅは、デコーダ１４００によって処理されて、新しい軟情報Ｌａを生成し、この軟情報Ｌａは、反復プロセスが最終判断に収束するまで、反復的な形で軟デマッパ／軟データ・ジェネレータ１２００にフィード・バックされる。
【００６０】
軟デマッパ／軟データ・ジェネレータ１２００
図１２Ａは、フラッシュ・メモリ８１０、９１０によって供給される軟データから質を高められた軟データを生成するために本発明の特徴を組み込んだ例示的な軟デマッピング・プロセス１２００を説明する流れ図である。図１２Ａに示されているように、例示的な軟デマッピング・プロセス１２００は、当初に、ステップ１２１０中にターゲット・セルの軟データｒをフラッシュ・メモリ８１０、９１０から入手し、オプションで、ターゲット・セルに関連するアグレッサ・セル（１つまたは複数）に格納されたデータを表す１つまたは複数の値ｈを入手する。
【００６１】
その後、軟デマッピング・プロセス１２００は、ステップ１２２０中に、１つまたは複数の確率密度関数など、ｒおよびオプションでｈに基づく統計（または確率）を入手する。この統計は、下の「統計の収集」という題名のセクションでさらに述べる。
【００６２】
その後、ステップ１２３０中に、入手された統計を使用してＬＬＲ（１つまたは複数）を計算する。ＬＬＲ（１つまたは複数）は、下の「読取統計を使用する軟データ（ＬＬＲ）の計算」という題名のセクションで述べる。その後、ステップ１２４０中に、計算されたＬＬＲをデコーダ１４００に供給し、あるいはオプションでデインターリーバに供給する。計算されたＬＬＲを、オプションで、たとえばＬＬＲの符号に基づいて、読取データに対する最終判断を行うのに使用することができる。
【００６３】
図１２Ｂは、フラッシュ・メモリ８１０、９１０によって供給される硬データから軟データを生成するために本発明の特徴を組み込んだ例示的な軟データ生成プロセス１２５０を説明する流れ図である。図１２Ｂに示されているように、例示的な軟データ生成プロセス１２５０は、当初に、ステップ１２６０中にターゲット・セルの硬データ
【数１】
0005535220.tif 000002
（以下、「Ｓ＾」と表記する。他の変数についても同）をフラッシュ・メモリ８１０、９１０から入手し、オプションで、ターゲット・セルに関連するアグレッサ・セル（１つまたは複数）に格納されたデータを表す１つまたは複数の値
【数２】
0005535220.tif 000003
（以下、ｈ−と表記する。他の変数についても同）を入手する。硬データｓ＾は、たとえば、フラッシュ・メモリ８１０、９１０によって各セルに割り当てられた２進ビットまたはレベルとすることができる。
【００６４】
セル内の１ビットのＬＬＲを計算するために、他のビットは使用不能であり、セル内の他のビットは、たとえば、ページ・アクセス技法およびワード線アクセス技法を使用して読み取られる。例示的なページ・レベル・アクセス技法およびワード線レベル・アクセス技法のより詳細な議論については、たとえば、参照によって本明細書に組み込まれている２００９年３月１１日に出願した国際出願第ＰＣＴ／ＵＳ０９／３６８１０号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｔｏｒｉｎｇ  Ｄａｔａ  ｉｎ  ａ  Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ  ｗｉｔｈ  Ｃｒｏｓｓ−Ｐａｇｅ  Ｓｅｃｔｏｒｓ，  Ｍｕｌｔｉ−Ｐａｇｅ  Ｃｏｄｉｎｇ  ａｎｄ  Ｐｅｒ−Ｐａｇｅ  Ｃｏｄｉｎｇ」を参照されたい。ページ・アクセス技法を用いると、そのＬＬＲが計算されようとしているページが読み取られ、オプションで、同一ワード線内の他のページをも読み取ることができ、その結果、硬データをセルのレベルｓ＾にマッピングできるようになる。ワード線アクセス技法を用いると、ワード線全体を読み取って、セル内のすべてのビットを入手することができ、これらのビットから、硬データ・レベルｓ＾が入手される。
【００６５】
たとえば、アグレッサ・セル７２０（または、アグレッサ・セル７２０が格納されているページもしくはワード線）からビットを読み出すことによって、パターンｈ−が入手される。アグレッサ・セルを読み出す技法のより詳細な議論については、たとえば、参照によって本明細書に組み込まれている国際出願第ＰＣＴ／ＵＳ０９／４９３２６号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｒｅａｄ−Ｓｉｄｅ  Ｉｎｔｅｒｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｍｉｔｉｇａｔｉｏｎ  ｉｎ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」を参照されたい。
【００６６】
次に、軟データ生成プロセス１２５０は、ステップ１２７０中に、１つまたは複数の確率密度関数など、ｓ＾およびオプションでｈ−に基づく統計（または確率）を入手する。この統計は、下の「統計の収集」という題名のセクションでさらに述べるように、ビット・ベースの確率またはセル・ベースの確率とすることもできる。軟読取値の分布のガウス近似が使用されるときには、この統計は、ガウス近似式について「読取統計を使用する軟データ（ＬＬＲ）の計算」という題名のセクションで述べるように、分布の平均値または分散を含む。平均値および分散は、たとえば、プログラム／消去サイクル、読取サイクル、および温度などの異なる性能要因についてフラッシュ・メモリ・チップの特性試験中に事前計算し、テーブルに格納することができる。平均値および分散を、性能要因に基づき、オプションで、アグレッサ・セル７２０に格納されたパターンｈ−にも基づいて、テーブルから入手することができる。
【００６７】
次に、ステップ１２８０中に、入手された統計を使用して、ＬＬＲ（１つまたは複数）を計算する。ＬＬＲ（１つまたは複数）は、下の「読取統計を使用する軟データ（ＬＬＲ）の計算」という題名のセクションで述べる。「読取統計を使用する軟データ（ＬＬＲ）の計算」という題名のセクションで説明するように、統計に加えてまたはその代わりに、デコーダによって供給される先験的ＬＬＲ  Ｌａをオプションで使用して、ＬＬＲを計算できることに留意されたい。セル内のビットのＬＬＲが計算される時に、先験的ＬＬＲ  Ｌａは、セル内の少なくとも１つのビット（オプションで他のすべてのビット）に使用される。これは、セル内のこれらの他のビットが読み取られており、先験的ＬＬＲ  Ｌａがデコーダによってそれらについて計算済みであることを必要とする。
【００６８】
その後、ステップ１２９０中に、計算されたＬＬＲがデコーダ１４００に供給され、あるいはオプションでデインターリーバに供給される。計算されたＬＬＲを、オプションで、たとえばＬＬＲの符号に基づいて、読取データに対する最終判断を行うのに使用することができる。セル内のすべてのビット（またはワード線内のすべてのページ）を、２００９年３月１１日に出願した国際出願第ＰＣＴ／ＵＳ０９／３６８１０号、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｔｏｒｉｎｇ  Ｄａｔａ  ｉｎ  ａ  Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ  ｗｉｔｈ  Ｃｒｏｓｓ−Ｐａｇｅ  Ｓｅｃｔｏｒｓ，  Ｍｕｌｔｉ−Ｐａｇｅ  Ｃｏｄｉｎｇ  ａｎｄ  Ｐｅｒ−Ｐａｇｅ  Ｃｏｄｉｎｇ」に記載されているように共同で符号化し、復号することができることに留意されたい。別の実施形態では、セル内のビット（またはワード線内のすべてのページ）を、やはり国際出願第ＰＣＴ／ＵＳ０９／３６８１０号に記載されているように、別々に符号化し、復号することができる。
【００６９】
デコーダ１４００  ＬＤＰＣ実施態様
ＬＤＰＣ符号およびＬＤＰＣ復号の次の背景の議論は、参照によって本明細書に組み込まれている、Ａ．Ｊ．ＢｌａｎｋｓｂｙおよびＣ．Ｊ．Ｈｏｗｌａｎｄ、「Ａ  ６９０−ｍＷ  １−Ｇｂ／ｓ  １０２４−ｂ，  Ｒａｔｅ−１／２  Ｌｏｗ−Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ−Ｃｈｅｃｋ  Ｄｅｃｏｄｅｒ」、ＩＥＥＥ  Ｊ．Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．３７、４０４〜４１２頁（２００２年３月）の議論に基づく。より詳細な議論について、読者は、ＢｌａｎｋｓｂｙおよびＨｏｗｌａｎｄの論文全体を参照されたい。
【００７０】
ＬＤＰＣ符号のグラフ表現
ＬＤＰＣ符号を、２部グラフを使用して表すことができ、２部グラフでは、ノードの一方の集合は、パリティ検査制約を表し、他方の集合は、データ・ビットを表す。図１３は、ＬＤＰＣ符号の例示的な２部グラフ表現１３００を示す図である。パリティ検査行列は、グラフの結合行列であり、ここで、Ｈの列ｉに対応するビット・ノードｉは、Ｈの項目ｈｊｉがセットされているすなわち非０である場合に、Ｈの行ｊに対応するチェック・ノードｊに接続される。
【００７１】
ＬＤＰＣ符号を復号するのに使用される１つのアルゴリズムが、ｓｕｍ−ｐｒｏｄｕｃｔアルゴリズムとして知られている。このアルゴリズムを用いる良い復号性能のためには、ＬＤＰＣ符号のグラフ表現内のサイクルの長さが、できる限り長いことが重要である。図１３の例示的な表現では、長さ４の例示的な短いサイクルが図示されている。図１３に示された長さ４のサイクルなどの短いサイクルは、ｓｕｍ−ｐｒｏｄｕｃｔアルゴリズムの性能を劣化させる。ＬＤＰＣ符号を復号する別の周知のアルゴリズムが、ｍｉｎ−ｓｕｍアルゴリズムである。
【００７２】
Ｓｕｍ−Ｐｒｏｄｕｃｔアルゴリズム
ｓｕｍ−ｐｒｏｄｕｃｔアルゴリズムは、ＬＤＰＣ符号を復号するための反復アルゴリズムである。ｓｕｍ−ｐｒｏｄｕｃｔアルゴリズムは、メッセージ・パッシング・アルゴリズムまたは確率伝搬としても知られている。ｓｕｍ−ｐｒｏｄｕｃｔアルゴリズムのより詳細な議論については、たとえば、それぞれ参照によって本明細書に組み込まれている、Ａ．Ｊ．ＢｌａｎｋｓｂｙおよびＣ．Ｊ．Ｈｏｗｌａｎｄ、「Ａ  ６９０−ｍＷ  １−Ｇｂ／ｓ  １０２４−ｂ，  Ｒａｔｅ−１／２  Ｌｏｗ−Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ−Ｃｈｅｃｋ  Ｄｅｃｏｄｅｒ」、ＩＥＥＥ  Ｊ．Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．３７、４０４〜４１２頁（２００２年３月）、Ｄ．Ｅ．Ｈｏｃｅｖａｒ、「ＬＤＰＣ  Ｃｏｄｅ  Ｃｏｎｓｔｒｕｃｔｉｏｎ  Ｗｉｔｈ  Ｆｌｅｘｉｂｌｅ  Ｈａｒｄｗａｒｅ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ」、ＩＥＥＥ  Ｉｎｔ’ｌ  Ｃｏｎｆ．ｏｎ  Ｃｏｍｍ．（ＩＣＣ）、米国アラスカ州アンカレッジ、２７０８〜２７１２頁（２００３年５月）、ならびにＲ．Ｎ．Ｓ．Ｒａｔｎａｙａｋｅ、Ｅ．Ｆ．Ｈａｒａｔｓｃｈ、およびＧｕ−Ｙｅｏｎ  Ｗｅｉ、「Ａ  Ｂｉｔ−ｎｏｄｅ  ｃｅｎｔｒｉｃ  ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ｌｏｗ−ｄｅｎｓｉｔｙ  ｐａｒｉｔｙ  ｃｈｅｃｋ  ｄｅｃｏｄｅｒｓ」、ＩＥＥＥ  Ｇｌｏｂａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｃｏｎｆｅｒｅｎｃｅ（Ｇｌｏｂｅｃｏｍ）、米国コロンビア特別区ワシントン、２６５〜２７０頁（２００７年１１月）を参照されたい。
【００７３】
ビット・ノードｉからチェック・ノードｊへのメッセージＱｉ，ｊは、
【数３】
0005535220.tif 000004
によって与えられ、ここで、Ｌｅ，ｉは、ビットｉの軟デマッパ／軟データ・ジェネレータによって供給される外来ＬＬＲである。チェック・ノードｊからビット・ノードｉへのメッセージＲｊ，ｉは、
【数４】
0005535220.tif 000005
によって与えられ、ここで、
【数５】
0005535220.tif 000006
かつ
【数６】
0005535220.tif 000007
である。ビットｉの帰納的対数尤度比（ＬＬＲ）とも呼ばれる帰納的情報値Λｉは、
【数７】
0005535220.tif 000008
によって与えられる。
【００７４】
反復的なデマッピングおよび復号のために軟デマッパ／軟データ・ジェネレータに供給されるビットｉのＬＬＲ  Ｌａ，ｉは、
【数８】
0005535220.tif 000009
として与えられ、ここで、Ｂｉは、ビット・ノードｉに接続されたチェック・ノードの集合であり、Ｃｊは、チェック・ノードｊに接続されたビット・ノードの集合である。
【００７５】
ＬＤＰＣデコーダ  ハードウェア共有デコーダ・アーキテクチャ
ＬＤＰＣ符号を復号するｓｕｍ−ｐｒｏｄｕｃｔアルゴリズムを実施する時の重要な課題は、メッセージの受渡しを管理することである。チェック・ノードとビット・ノードとの両方の機能性が、比較的単純なので、そのそれぞれの実現は、少数のゲートだけを用いる。主な問題は、機能ノードの間のメッセージの受渡しに必要な帯域幅の実施である。
【００７６】
図１４は、例示的なハードウェア共有ＬＤＰＣデコーダ・アーキテクチャ１４００のブロック図である。図１４に示されているように、一般化されたＬＤＰＣデコーダ・アーキテクチャ１４００は、それぞれチェック・ノード機能性またはビット・ノード機能性のいずれかを実施する複数の機能ユニット１４１０、１４２０と、メッセージを格納し、グラフ接続性を実現するメモリ・ファブリック１４５０とを含む。制御論理１４３０は、メモリ・ファブリック１４５０の構成を制御する。ハードウェア共有ＬＤＰＣデコーダ・アーキテクチャ１４００の実施態様の詳細な議論については、たとえば、Ｅ．Ｙｅｏ他、「ＶＬＳＩ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ  ｆｏｒ  Ｉｔｅｒａｔｉｖｅ  Ｄｅｃｏｄｅｒｓ  ｉｎ  Ｍａｇｎｅｔｉｃ  Ｒｅｃｏｒｄｉｎｇ  Ｃｈａｎｎｅｌｓ」、ＩＥＥＥ  Ｔｒａｎｓ．Ｏｎ  Ｍａｇｎｅｔｉｃｓ、Ｖｏｌ．３７、Ｎｏ．２、７４８〜７５５頁（２００１年３月）を参照されたい。
【００７７】
そのようなハードウェア共有アーキテクチャが、デコーダの面積を減らすことが認められている。
【００７８】
図１５に、本発明の一実施形態による軟データ生成を用いる例示的なフラッシュ・メモリ・システム１５００を示す。図１５に示されているように、例示的なフラッシュ・メモリ・システム１５００は、フラッシュ・メモリ・ブロック１５１０を含む。後で述べるように、硬データ値または軟データ値（あるいはその両方）は、通常、フラッシュ・メモリ・ブロック１５１０によって割り当てられ、さらなる復号および処理のためにインターフェース１５１５を介してフラッシュ制御システム１５２０に転送される。例示的なフラッシュ制御システム１５２０は、下で図１６に関連してさらに述べるＬＬＲジェネレータ１５５０、下の「統計の収集」という題名のセクションでさらに述べる統計ジェネレータ（１つまたは複数）１５７０、およびデコーダ１５３０を含む。統計ジェネレータ（１つまたは複数）１５７０によって生成される統計は、オプションで、下でたとえば図１７Ａから１７Ｃおよび１８に関連してさらに述べる１つまたは複数の統計テーブル１５６０に記録され、あるいはその代わりに、リアルタイムで生成され得る。
【００７９】
統計ジェネレータ（１つまたは複数）１５７０によって生成された統計は、ＬＬＲジェネレータ１５５０によって使用されて、たとえばＬＬＲ、Ｌｅの形の軟データを生成する。当初に、ＬＬＲ、Ｌｅは、フラッシュ・メモリ１５１０からの軟読出または硬読出（あるいはその両方）および対応する統計に基づく。ＬＬＲ、Ｌｅは、デコーダ１５３０によって処理されて、新しい軟情報Ｌａを生成し、この軟情報Ｌａは、反復プロセスが最終判断に収束するまで、反復的な形でＬＬＲジェネレータ１５５０にフィード・バックされる。
【００８０】
デコーダ１５３０は、やはり、たとえば確率伝搬、メッセージ・パッシング、Ｓｕｍ−Ｐｒｏｄｕｃｔ、またはＭｉｎ−ＳｕｍアルゴリズムなどのＬＤＰＣ復号アルゴリズムを使用して実施することができる。本明細書で説明される統計ジェネレータ１５７０およびＬＬＲジェネレータ１５５０の機能を、フラッシュ制御システム１５２０、デコーダ１５３０、および読取チャネル８２５（たとえば、図８を参照されたい）のうちの１つまたは複数で実施できることに留意されたい。
【００８１】
読取統計を使用する軟データ（ＬＬＲ）の計算
ビットｃの先験的対数尤度比（ＬＬＲ）Ｌａは、次のように定義することができる。
【数９】
0005535220.tif 000010
ここで、Ｐ（・・・）は確率である。
【００８２】
同様に、フラッシュ出力ｒに対して条件付けられたビットｃのＬＬＲは、次のように計算される。
【数１０】
0005535220.tif 000011
ここで、Ｌｅ（ｃ）は、後続デコーダに渡される外来ＬＬＲまたは軟情報であり、ｐ（…）は、確率密度関数（ＰＤＦ）である。
【００８３】
図１６は、例示的な２進チャネルの誤り確率ｐおよびｑを示すトレリス１６００である。２進チャネルの文脈で、ｐが誤り確率を表し、そうでない場合に、ｐ（…）が確率密度関数を表すことに留意されたい。ｐ≠ｑの場合には、この２進チャネルは非対称である。ｐ＝ｑの場合には、この２進チャネルは対称である。図１６に示されているように、ｐは、２進０の誤り確率（すなわち、０が書き込まれた時に１を読み取る確率）である。同様に、ｑは、２進１の誤り確率（すなわち、１が書き込まれた時に０を読み取る確率）である。２進０を正しく読み取る確率（すなわち、０が書き込まれた時に０を読み取る確率）は、１−ｐとして表すことができる。同様に、２進１を正しく読み取る確率（すなわち、１が書き込まれた時に１を読み取る確率）は、１−ｑとして表すことができる。
【００８４】
２進非対称チャネルの外来ＬＬＲ
トレリス１６００によって定義される２進非対称チャネルのビットｃの外来ＬＬＲ、Ｌｅ（ｃ）は、次のように表すことができる。
【数１１】
0005535220.tif 000012
【００８５】
読取ビットｃ＾＝０の外来ＬＬＲ、Ｌｅ（ｃ）は、
【数１２】
0005535220.tif 000013
として計算される。
【００８６】
読取ビットｃ＾＝１の外来ＬＬＲ、Ｌｅ（ｃ）は、
【数１３】
0005535220.tif 000014
として計算される。
【００８７】
２進対称チャネルの外来ＬＬＲ（ただし、ｐ＝ｑ＝ｐ０）
読取ビットｃ＾＝０の外来ＬＬＲ、Ｌｅ（ｃ）は、
【数１４】
0005535220.tif 000015
として計算される。
【００８８】
読取ビットｃ＾＝１の外来ＬＬＲ、Ｌｅ（ｃ）は、
【数１５】
0005535220.tif 000016
として計算される。
【００８９】
フラッシュ・メモリからの軟出力の外来ＬＬＲ
２ビット／セル・フラッシュ・メモリについて、外来ＬＬＲを、フラッシュ・メモリ８１０、９１０から受け取られる軟値ｒについて、次のように計算することができる。
【数１６】
0005535220.tif 000017
【００９０】
一般に、セルあたりの任意のビット数について、ビットＣｉの外来ＬＬＲは、
【数１７】
0005535220.tif 000018
と表すことができ、ここで、
ｒ：受け取られた信号
ｓ：格納されたビット（ｃ０，ｃ１，・・・，ｃｍ）によって与えられるオリジナルの格納された状態またはレベル
ｃｉ：符号化されたビット
ｍ：セルあたりのビット数
【数１８】
0005535220.tif 000019
Ｌｅ（Ｃｉ）：外来ＬＬＲ
χｉｃｉ：そのビット・ラベルが位置ｉで値Ｃｉ＝ｃｉを有する状態またはレベルの部分集合、である。ここで、Ｌａ（Ｃｉ）は、たとえばＬＤＰＣデコーダ１０９０または１４００などのデコーダによって供給される。最初の反復では、Ｌａ（Ｃｉ）を０に初期化することができる。
【００９１】
次の等値性
【数１９】
0005535220.tif 000020
を使用すると、外来ＬＬＲの式を、次のように書くこともできる。
【数２０】
0005535220.tif 000021
【００９２】
この式を、
【数２１】
0005535220.tif 000022
にさらに単純化することができる。
【００９３】
この式は、数学的には、すべての状態またはレベルが同等にありそうである場合の上の式と同等である。
【００９４】
フラッシュ・メモリからの軟出力のパターン依存外来ＬＬＲ
フラッシュ・メモリ８１０、９１０から受け取られる、ターゲット・セルの１つまたは複数の軟値ｒおよびアグレッサ・セル（１つまたは複数）の１つまたは複数の値ｈ−について、
【数２２】
0005535220.tif 000023
であることを示すことができ、ここで、ｈ−は、ターゲット・セルに対する外乱を引き起こす周囲のセル（１つまたは複数）または他のセル内に格納されたデータ・パターンである。たとえば、
【数２３】
0005535220.tif 000024
は、ＬＬＲが計算されようとしている位置（ｋ，ｌ）のターゲット・セルに近接するすべてのアグレッサ・セルを表す。
【００９５】
パターンｈ−を、たとえばアグレッサ・セルから硬データを読み出すことによって入手することができる。
【００９６】
外来ＬＬＲの式を、次のように書くこともできる。
【数２４】
0005535220.tif 000025
【００９７】
この式を、
【数２５】
0005535220.tif 000026
にさらに単純化することができる。
【００９８】
この式は、数学的に、すべての状態が同等にありそうである場合に上の式と同等である。
【００９９】
フラッシュ・メモリからの硬出力の外来ＬＬＲ
軟出力がフラッシュ・メモリから使用可能ではなく、フラッシュ・メモリが、フラッシュ・メモリによって格納されたデータに割り当てられた状態またはレベルである硬データｓ＾だけを供給する時には、外来ＬＬＲを、
【数２６】
0005535220.tif 000027
として計算することができ、ここで、Ｅ｛ｒ｜ｓ＾｝は、軟値ｒ（電圧など）の期待値または硬値ｓ＾を仮定する軟値ｒに関するある他の推定値である。Ｐ（ｓ＾｜ｓ）は、状態またはレベルｓが最初に書き込まれ格納されたと仮定して、硬値（状態またはレベルなど）ｓ＾が読み取られる確率である。
【０１００】
外来ＬＬＲを、その代わりに
【数２７】
0005535220.tif 000028
として計算することができ、ここで、Ｐ（ｓ｜ｓ＾）は、硬値（状態またはレベル）ｓ＾が読み取られると仮定して、状態またはレベルｓが最初に書き込まれるか格納された確率である。
【０１０１】
フラッシュ・メモリからの硬出力のパターン依存外来ＬＬＲ
軟出力がフラッシュ・メモリから使用可能ではなく、フラッシュ・メモリが、フラッシュ・メモリによって格納されたデータに割り当てられた状態またはレベルである硬データｓ＾だけを供給するときには、外来ＬＬＲを、アグレッサ・セルに格納されたパターンｈ−に基づいて計算することができ、
【数２８】
0005535220.tif 000029
ここで、Ｐ（ｓ＾，ｈ−｜ｓ）は、状態またはレベルｓが最初に書き込まれ格納されたと仮定して、硬値（状態またはレベル）ｓ＾が読み取られ、アグレッサ・セル内のパターンがｈ−である確率である。ｈ−は、ターゲット・セルに対する外乱を引き起こす周囲のセル（１つまたは複数）または他のセルに格納されたデータ・パターンである。たとえば、
【数２９】
0005535220.tif 000030
は、そのＬＬＲが計算されようとしている位置（ｋ，ｌ）のターゲット・セルに近接するすべてのアグレッサ・セルを表す。
【０１０２】
パターンｈ−を、たとえばアグレッサ・セルからの硬データを読み出すことによって入手することができる。
【０１０３】
パターン依存ＬＬＲを、その代わりに
【数３０】
0005535220.tif 000031
として計算することができ、ここで、Ｐ（ｓ｜ｓ＾，ｈ−）は、硬値（状態またはレベルなど）ｓ＾が読み取られ、アグレッサ・セル内のパターンがｈ−であると仮定して、状態またはレベルｓが最初に書き込まれたか格納された確率である。
【０１０４】
フラッシュからの軟出力の軟デコーダ・フィードバックなしの外来ＬＬＲ
デコーダからの軟出力が、軟デマッパ／軟データ・ジェネレータ内で使用されない（言い換えると、Ｌａ（Ｃｉ）＝０）であるときには、軟デマッパ／軟データ・ジェネレータ内の外来ＬＬＲを、次のように計算することができる。
【数３１】
0005535220.tif 000032
【０１０５】
これらの外来ＬＬＲは、その後、図１０および１１に示されたデコーダに渡される。次に、ＬＤＰＣは、たとえばデータ・ビットが復号されるまでデコーダの内部の局所反復のためにメッセージ渡し復号アルゴリズムを適用することができる。この場合に、軟デマッパ／軟データ・ジェネレータの間の大域検出／復号反復は、全体的な計算の複雑さを下げるために、実行されない。
【０１０６】
パターン依存ＬＬＲを、この場合には次のように計算することができる。
【数３２】
0005535220.tif 000033
【０１０７】
フラッシュからの硬出力の軟デコーダ・フィードバックなしの外来ＬＬＲ
軟データがフラッシュ・メモリから使用可能ではなく、デコーダからの軟出力が、計算の複雑さを減らすのに使用される場合には、外来ＬＬＲを次のように計算することができる。
【数３３】
0005535220.tif 000034
ここで、Ｅ｛ｒ｜ｓ＾｝は、軟値ｒ（電圧など）の期待値または硬値ｓ＾を仮定する軟値ｒのある他の推定値である。Ｐ（ｓ＾｜ｓ）は、状態またはレベルｓが最初に書き込まれ格納されたと仮定して、硬値（状態またはレベルなど）ｓ＾が読み取られる確率である。
【０１０８】
代替実施態様では、ＬＬＲを
【数３４】
0005535220.tif 000035
として計算することができ、ここで、Ｐ（ｓ｜ｓ＾）は、硬値（状態またはレベルなど）ｓ＾が読み取られると仮定して、状態またはレベルｓが最初に書き込まれるか格納された確率である。
【０１０９】
パターン依存ＬＬＲは、この場合に、次のように計算することができる。
【数３５】
0005535220.tif 000036
【０１１０】
フラッシュからの軟出力の外来ＬＬＲのガウス近似
フラッシュ・メモリからの軟出力（読取しきい電圧など）が、ガウス分布を有してモデル化される場合には、最初に格納されたか書き込まれたレベルｓを仮定した軟出力ｐ（ｒ）の条件ＰＤＦ  ｐ（ｒ｜ｓ）を
【数３６】
0005535220.tif 000037
と表すことができ、ここで、σ（ｓ）は、標準偏差であり、Ｅ｛ｒ｜ｓ｝は、状態ｓの軟出力（しきい電圧など）の平均値または期待値である。
【０１１１】
すると、外来ＬＬＲを
【数３７】
0005535220.tif 000038
として計算することができる。
【０１１２】
すべての状態の電圧分布が同一の標準偏差σ（ｓ）＝σを有する場合には、この式を次の式に単純化することができる。
【数３８】
0005535220.tif 000039
【０１１３】
この式を、
【数３９】
0005535220.tif 000040
にさらに単純化することができる。
【０１１４】
フラッシュからの硬出力の外来ＬＬＲのガウス近似
フラッシュ・メモリからの軟出力が使用可能ではないときには、ＬＬＲを、軟出力がガウス分布であると仮定して次のように計算することができ、
【数４０】
0005535220.tif 000041
ここで、Ｅ｛ｒ｜ｓ｝は、状態ｓに関する軟出力ｒ（しきい電圧など）の平均値または期待値であり、Ｅ｛ｒ｜ｓ＾｝は、フラッシュ・メモリによって割り当てられ、供給される状態またはレベルである硬出力ｓ＾に関する軟出力ｒ（しきい電圧など）の平均値または期待値である。
【０１１５】
すべての状態に関する電圧分布が、同一の標準偏差σ（ｓ）＝σを有する場合には、この式を、次の式に単純化することができる。
【数４１】
0005535220.tif 000042
【０１１６】
この式を、さらに
【数４２】
0005535220.tif 000043
に単純化することができる。
【０１１７】
フラッシュ・メモリからの硬出力のパターン依存外来ＬＬＲのガウス近似
硬出力のパターン依存ＬＬＲは、軟出力の分布がガウシアンとしてモデル化される場合に、次のように計算することができる。
【数４３】
0005535220.tif 000044
ここで、ｈ−は、上で定義したように、アグレッサ・セルに格納されるパターンであり、σ（ｓ，ｈ−）は、状態ｓおよびパターンｈ−に関する軟出力の分布の標準偏差である。
【０１１８】
すべての状態およびパターンの電圧分布が、同一の標準偏差σ（ｓ，ｈ−）＝σを有する場合には、この式を次の式に単純化することができる。
【数４４】
0005535220.tif 000045
【０１１９】
この式を、さらに
【数４５】
0005535220.tif 000046
に単純化することができる。
【０１２０】
フラッシュ・メモリからの軟出力の軟デコーダ・フィードバックなしの外来ＬＬＲのガウス近似
軟デコーダ・フィードバックが使用されないときには、外来ＬＬＲを、フラッシュ・メモリからの軟出力が使用可能であるときの軟出力分布に関するガウス近似を使用して次のように計算することができる。
【数４６】
0005535220.tif 000047
【０１２１】
すべての状態の電圧分布が同一の標準偏差σ（ｓ）＝σを有する場合には、この式を、次の式に単純化することができる。
【数４７】
0005535220.tif 000048
【０１２２】
この式を、さらに
【数４８】
0005535220.tif 000049
に単純化することができる。
【０１２３】
フラッシュ・メモリからの硬出力の軟デコーダ・フィードバックなしの外来ＬＬＲのガウス近似
軟デコーダ・フィードバックが使用されないときには、外来ＬＬＲを、フラッシュ・メモリからの硬出力だけが使用可能であるときの軟出力分布のガウス近似を使用して次のように計算することができる。
【数４９】
0005535220.tif 000050
【０１２４】
すべての状態の電圧分布が同一の標準偏差σ（ｓ）＝σを有する場合には、この式を、次の式に単純化することができる。
【数５０】
0005535220.tif 000051
【０１２５】
この式を、さらに
【数５１】
0005535220.tif 000052
に単純化することができる。
【０１２６】
対応するパターン依存ＬＬＲは、次のように計算される。
【数５２】
0005535220.tif 000053
【０１２７】
すべての状態およびパターンの電圧分布が同一の標準偏差σ（ｓ，ｈ−）＝σを有する場合には、この式を次の式に単純化することができる。
【数５３】
0005535220.tif 000054
【０１２８】
これを、さらに
【数５４】
0005535220.tif 000055
に単純化することができる。
【０１２９】
読取統計テーブル
図１７Ａ〜１７Ｃは、フラッシュ・メモリからのデータの読出に関する統計を記録する例示的なセル・ベースの統計テーブルである。図１７Ａは、（書込レベル（ｓ）および読取レベル（ｓ＾））の所与の対について、書込レベル（ｓ）が書き込まれたときに
読取レベル（ｓ＾）が読み取られた回数を示す、例示的なセル・ベースの統計カウント・テーブル１７００である。たとえば、書込レベル（ｓ）も００と等しいときに、読取レベル（ｓ＾＝００）は、１０６１７回読み取られた。さらに、書込レベル（ｓ）が０１と等しいときに、読取レベル（ｓ＾＝００）は、誤って１４８回読み取られた。カウント・テーブル１７００は、オプションで、各行および列の合計をも示す。カウント・テーブル１７００内の値は、図２１、２３、２５、および２８に関連して下で述べる、複数のセル・ベースの統計プロセスによって使用される。
【０１３０】
図１７Ｂは、（書込レベル（ｓ）および読取レベル（ｓ＾））の所与の対について、読取レベル（ｓ＾）が読み取られたという条件の下で書込レベル（ｓ）が書き込まれた確率ｐ（ｓ｜ｓ＾）を示す、例示的なセル・ベースの統計テーブルである。図１７Ｃは、（書込レベル（ｓ）および読取レベル（ｓ＾））の所与の対について、書込レベル（ｓ）が書き込まれたという条件の下で、読取レベル（ｓ＾））が読み取られた確率ｐ（ｓ＾｜ｓ）を示す、例示的なセル・ベースの統計テーブル１７４０である。
【０１３１】
図１８は、所与のパターンの存在下でフラッシュ・メモリからのデータの読出に関するパターン依存統計を記録する例示的なパターン依存セル・ベース統計テーブル１８００である。例示的なテーブル１８００は、（書込レベル（ｓ）および読取レベル（ｓ＾））の所与の対について、所与のパターンｈ−の存在下で、書込レベル（ｓ）が書き込まれたという条件の下で、読取レベル（ｓ＾）がパターンｈ−の存在下で読み取られた確率ｐ（ｓ＾，ｈ−｜ｓ）を示す。
【０１３２】
統計の収集
基準セルを使用する統計収集
図１９に、図３の例示的なフラッシュ・セル・アレイをさらに詳細に示す。図１９に示されているように、例示的なフラッシュ・セル・アレイ１９００は、すべての動作条件で信頼できるチャネル推定値または統計を提供するために複数の基準セル１９２０−ｒｅｆ１から１９２０−ｒｅｆＮ（本明細書では集合的に基準セル１９２０と称する）を含む。
【０１３３】
例示的な基準セル１９２０は、図１９では切り刻まれた背景を有して図示されている。基準セル１９２０を、既知のビット・パターンまたは既知の記号パターンなどの既知のパターンを使用して周期的にまたは間欠的にプログラムすることができる。基準セル１９２０を、任意の所望の形で、たとえば、各ワード線内の一貫したまた可変の個数のセルを使用して、フラッシュ・セル・アレイ１９００の中で分散させることができることに留意されたい。基準セル１９２０の位置は、固定することができ、あるいは、たとえば使い古されたまたは損傷を受けたセルを回避するために、経時的に変更することができる。一実施態様では、基準セル１９２０の位置は、固定され、同一の基準セル１９２０の性能を、経時的に観察することができる。この固定位置実施態様では、基準セル１９２０を、オプションで、１回だけ書き込むことができ、あるいは、フラッシュ・メモリ・アレイ内の他のセルに匹敵する回数だけ書き込み、読み取ることができる。
【０１３４】
さらなる変形形態では、基準セル１９２０の位置は、基準セル１９２０の性能がアレイ１９００全体の性能を反映するために、経時的に変更される。さらに別の変形形態では、統計を、複数の異なるアレイ１９００内の基準セル１９２０から入手することができ、その後、結果は、平均をとられる。
【０１３５】
下でさらに述べるように、基準セル１９２０は、読み取られ、既知のパターンと比較される。たとえば、誤りを検出する確率ｐ０の推定値を、次のように入手することができる。
【数５５】
0005535220.tif 000056
基準セルのプログラミングおよび読取を、オプションで、既知の形で、メモリにまたがって消耗を拡散させるウェアレベル・アルゴリズムと組み合わせることができる。
【０１３６】
さまざまな実施形態では、基準セル１９２０は、すべての可能なレベルを格納することができ、周期的パターン（レベルが交番する場合）を有し、周期的に書き込まれまたは経時的に読み取られるのいずれかとすることができる。
【０１３７】
後で述べるように、本発明のさまざまな実施形態は、ビット・ベースの統計、セル・ベースの統計、またはパターン依存統計を収集し、使用する。ビット・ベースの統計を使用する実施形態について、ビット誤り性能が測定される。セル・ベースの統計を使用する実施形態について、読取統計が、セルを基礎として測定される。パターン依存統計について、読取統計は、アグレッサ・セルに格納されたデータ・パターンをも説明する。
【０１３８】
１．基準セルを使用するビット・ベースの統計
図２０は、本発明の基準セル実施形態に関するビット・ベースの統計生成プロセス２０００の例示的実施態様を説明する流れ図である。一般に、ビット・ベースの統計生成プロセス２０００は、ビット誤りを検出する確率ｐ０を計算する。その後、誤りを検出する確率ｐ０をＬＬＲジェネレータ１５５０（図１５）によって使用して、所望の軟データを計算することができる。当初に、統計生成プロセス２０００は、ステップ２０１０中に、１つまたは複数の基準セル１９２０に既知のパターンを書き込む。前に示したように、既知のパターンは、たとえば、既知のビット・パターンまたは既知の記号パターンとすることができる。
【０１３９】
その後、ステップ２０２０中に、基準セルを読み取る。その後、統計生成プロセス２０００は、ステップ２０３０中に、基準セル１９２０内の誤りのあるビットの個数など、エラー・メトリックを判定する。前に示したように、ステップ２０２０中に読み取られた基準セル１９２０を、既知のパターンと比較することができる。
【０１４０】
統計生成プロセス２０００は、ステップ２０４０中に、次のように誤り確率統計を計算する。
【数５６】
0005535220.tif 000057
【０１４１】
２．基準セルを使用するセル・ベースの統計
図２１は、本発明の基準セル実施形態に関するセル・ベースの統計生成プロセス２１００の例示的実施態様を説明する流れ図である。図２１に示されているように、セル・ベースの統計生成プロセス２１００は、当初に、ステップ２１１０中に基準セル１９２０に１つまたは複数の既知の電圧レベルを書き込む。
【０１４２】
その後、セル・ベースの統計生成プロセス２１００は、ステップ２１２０中に基準セル１９２０から電圧レベルを読み取る。可能な書込レベルｓまたはＬＶＬｗｒｉｔごとに、セル・ベースの統計生成プロセス２１００は、ステップ２１３０中に、この書込レベルｓまたはＬＶＬｗｒｉｔが書き込まれた時に各レベルｓ＾またはＬＶＬｒｅａｄが読み取られた回数をカウントする。
【０１４３】
ステップ２１４０中に、次のように誤り確率統計を計算する。
【数５７】
0005535220.tif 000058
【０１４４】
代替案では、ステップ２１４０中に、誤り確率統計を次のように計算することができる（逆の事例）。
【数５８】
0005535220.tif 000059
【０１４５】
代替の正規化項を、ステップ２１４０中に計算される式の分母に使用できることに留意されたい。
【０１４６】
復号済み符号語を使用する統計収集
本発明の復号済み符号語実施形態では、軟データは、基準セルとして復号済み符号語から入手されたデータを使用して、フラッシュ・メモリ・デバイス８１０、９１０などのメモリ・デバイスについて生成される。一般に、フラッシュ・メモリ・デバイスなどのメモリ・デバイスからの硬データが復号され、誤りのある復号済みビットの個数などのエラー・メトリックが入手される。たとえば、誤りのある復号済みビットの個数を、復号済みビットをメモリ・デバイスから入手された硬データと比較することによって入手することができる。この形で、復号済み符号語を、正しいと仮定することができ、復号済み符号語は、上で述べた基準セルとして働くことができる。
【０１４７】
１．復号済み符号語を使用するビット・ベースの統計
図２２は、本発明の復号済み符号語実施形態に関するビット・ベースの統計生成プロセス２２００の例示的実施態様を説明する流れ図である。一般に、ビット・ベースの統計生成プロセス２２００は、復号済み符号語を使用して、誤りを検出する確率ｐ０を計算する。その後、誤りを検出する確率ｐ０を、ＬＬＲジェネレータ１５５０（図１５）によって使用して、所望の軟データを計算することができる。当初に、統計生成プロセス２２００は、ステップ２２１０中に、フラッシュ・メモリから硬データを入手する。
【０１４８】
その後、ビット・ベースの統計生成プロセス（復号済み符号語）２２００は、ステップ２２２０中に硬データを復号する。フラッシュ・メモリからの誤りのあるビットの個数などのエラー・メトリックを、ステップ２２３０中に判定する。誤りのあるビットの個数は、たとえば、復号済みビット（正しいと仮定される）をフラッシュ・メモリからの硬データと比較することによって判定することができる。
【０１４９】
統計生成プロセス２２００は、ステップ２２４０中に次のように誤り確率統計を計算する。
【数５９】
0005535220.tif 000060
【０１５０】
２．復号済み符号語を使用するセル・ベースの統計
図２３は、本発明の特徴を組み込んだセル・ベースの統計生成プロセス（復号済み符号語）２３００の例示的実施態様を説明する流れ図である。一般に、統計生成プロセス２３００は、復号済み符号語を使用して、セル・ベースの誤り確率を計算する。当初に、セル・ベースの統計生成プロセス２３００は、ステップ２３１０中にフラッシュ・メモリから硬データを入手する。
【０１５１】
その後、セル・ベースの統計生成プロセス（復号済み符号語）２３００は、ステップ２３２０中に硬データを復号する。その後、ステップ２３２５中に、復号済みビットを対応する電圧レベルにマッピングする。
【０１５２】
その後、可能な復号済み電圧レベルｓまたはＬＶＬｄｅｃｏｄごとに、セル・ベースの統計生成プロセス（復号済み符号語）２３００は、ステップ２３３０中に、この復号済みレベルｓ  ＬＶＬｄｅｃｏｄが復号された時に各電圧レベルｓ＾またはＬＶＬｒｅａｄが読み取られた回数をカウントする。
【０１５３】
ステップ２３４０中に、次のように誤り確率統計を計算する。
【数６０】
0005535220.tif 000061
【０１５４】
代替案では、誤り確率統計を、ステップ２３４０中に次のように計算することができる（逆の事例）
【数６１】
0005535220.tif 000062
【０１５５】
条件固有の誤り確率
前に示したように、誤り確率統計を、オプションで、メモリ・アレイの異なる位置について、アグレッサ・セルの異なるパターンについて、異なる温度について、異なる個数のプログラム／消去サイクルまたは読取サイクルについて、その他など、異なる条件について入手することができる。その後、同一条件が観察される時に、軟データを、正しい条件依存の統計または確率を使用して入手することができる。
【０１５６】
下で図２４および２５に関連して述べるように、例示的な位置固有統計生成プロセス２４００、２５００は、それぞれビット・ベースの統計およびセル・ベースの統計を使用して、メモリ・アレイの異なる位置に関する誤り確率統計を入手する。
【０１５７】
ビット・ベースの位置固有統計
図２４は、メモリ・アレイ内の複数の異なる位置に関するビット誤りを検出する確率を推定する例示的なビット・ベースの位置固有統計生成プロセス２４００を説明する流れ図である。たとえば、誤りを検出する確率ｐ０，ＬＯＣを、異なるページ位置、ワード線位置、ビット線位置（偶数ビット線および奇数ビット線など）、およびマルチレベル・セル内の異なるビット（最上位ビット（ＭＳＢ）および最下位ビット（ＬＳＢ）など）のうちの１つまたは複数について入手することができる。図２４に示されているように、例示的なビット・ベースの位置固有統計生成プロセス２４００は、当初に、ステップ２４３０中に、所望の位置固有統計に基づいて、基準セルまたは復号済み符号語の所望の位置の誤りのあるビットの個数を判定する。たとえば、位置固有統計がＭＳＢに関するものである場合には、ステップ２４３０中に、誤りのあるＭＳＢビットの個数を評価する。ＭＳＢ統計が入手されつつあるときには、たとえば、ＬＳＢビットなど、各セル内のすべての他のビットをオプションで無視できることに留意されたい。
【０１５８】
次に、位置固有統計生成プロセス２４００は、ステップ２４４０中に次のように位置固有誤り確率統計を計算する。
【数６２】
0005535220.tif 000063
【０１５９】
セル・ベースの位置固有統計
セル・ベースの位置固有実施態様について、メモリ・アレイ内の関心を持たれている異なる位置は、たとえば、異なるワード線位置またはビット線位置（偶数ビット線および奇数ビット線など）のうちの１つまたは複数を含むことができる。
【０１６０】
図２５は、異なるワード線位置またはビット線位置（偶数ビット線および奇数ビット線など）のうちの１つまたは複数など、メモリ・アレイ１９００内の複数の異なる位置について誤り確率統計を入手する例示的なセル・ベースの位置固有統計生成プロセス２５００を説明する流れ図である。図２５に示されているように、可能な基準電圧レベルｓまたはＬＶＬｒｅｆごとに、例示的なセル・ベースの位置固有統計生成プロセス２５００は、当初に、ステップ２５３０中に、この基準レベルｓまたはＬＶＬｒｅｆが復号されたか書き込まれた時に各電圧レベルｓ＾ＬＶＬｒｅａｄが所望の位置で読み取られた回数をカウントする。
【０１６１】
次に、セル・ベースの位置固有統計生成プロセス２５００は、ステップ２５４０中に次のように位置固有誤り確率統計を計算する。
【数６３】
0005535220.tif 000064
【０１６２】
代替案では、ｐ（ｓ｜ｓ−）を、上で述べたように計算することができる。
【０１６３】
本発明のさまざまな実施態様では、別々のビット・ベースの、セル・ベースの、またはパターン・ベースの統計を、ページごと、ワード線ごと、もしくはメモリ・アレイごとに、またはページのグループ、ワード線のグループ、もしくはメモリ・アレイのグループについて（あるワード線内の異なるページ・レベル、またはあるメモリ・アレイ内の下ワード線、中ワード線、および上ワード線についてなど）、収集することができる。さらに、統計を、複数のページ、ワード線、またはメモリ・アレイにまたがって平均化することができ、その後、平均統計を、これらのページ、ワード線、またはメモリ・アレイについて使用することができる。
【０１６４】
パターン依存の統計
前に示したように、本発明のさまざまな実施形態は、１つまたは複数の軟値ｒについて、ターゲット・セルおよび１つまたは複数の値ｈ−について、アグレッサ・セル（１つまたは複数）について、外来ＬＬＲ、Ｌｅを計算し、ここで、ｈ−は、アグレッサ・セル（囲むセル（１つまたは複数）などに格納されたデータ・パターンである。
【０１６５】
図２６に、各アグレッサ・セル７２０のすべての可能な値に基づく、例示的なマルチレベル・セル・フラッシュ・メモリ６００の所与のターゲット・セル７１０に関する確率密度関数２６１０の例示的な集団２６００を示す。例示的なマルチレベル・セル・フラッシュ・メモリは、セルあたり４つのレベル（２ビット）を有し、１つのアグレッサ・セル７２０が、データ依存ｐｄｆについて考慮される。所与のターゲット・セル７１０の各可能なレベルに適用可能な確率密度関数の個数は、各アグレッサ・セル７２０の可能なレベルの個数を、所与のターゲット・セル７１０に影響するアグレッサ・セル７２０の個数乗したものである。前に示したように、例示的実施形態では、各セルは、４つの可能な値のうちの１つを有することができ、ターゲット・セル７１０あたり１つのアグレッサ・セル７２０があり、各アグレッサ・セル７２０は、４つの可能なレベルのうちの１つを有することができる。したがって、例示のために、確率密度関数の集団２６００は、アグレッサ・セルのパターンに適用可能なデータまたは電圧レベル０に関する４つの確率密度関数２６１０−１から２６１０−４を含む。他のデータ・レベル１、２、および３のそれぞれについても、４つの確率密度関数がある。当業者に明白であるように、本発明を、セルあたり任意の個数のレベルおよび任意の個数のアグレッサ・セル７２０を有するマルチレベル・セル・フラッシュ・メモリ６００に拡張することができる。
【０１６６】
一般に、図２６の各確率密度関数は、他の雑音および外乱の影響の中でも、対応するアグレッサ・セル７２０の所与の値に関する所与のターゲット・セル７１０に対するＩＣＩの影響を表す。本発明のさらなる実施形態では、データ依存確率密度関数は、ＩＣＩの代わりにまたはＩＣＩに加えて、他のデータ依存ひずみを表すことができる。後で述べるように、さまざまな実施形態では、確率密度関数を、事前定義の静的なものとするか、リアルタイム観察に基づいて適合されるものとするか、あるいは、ガウス関数など、アグレッサ・セル７２０の測定されたまたは検出された値ｈの関数として表すことができる。
【０１６７】
本発明の一態様によれば、フラッシュ・メモリ・デバイス内の外乱は、少なくとも１つのターゲット・セルに対する１つまたは複数のアグレッサ・セルのパターン依存外乱を表す１つまたは複数の確率密度関数を入手することによって特徴を表すことができる。外乱は、たとえば、バック・パターン依存、セル間干渉、プログラム妨害、読取妨害、および／または追加の雑音を含むことができる。確率密度関数を、１つまたは複数のデータ判断に基づいて更新することができる。確率密度関数を、格納されたテーブルおよび／または式として表すことができる。
【０１６８】
さらに、確率密度関数のテーブル・エントリまたは関数パラメータを、オプションで、たとえば受け取られたデータ判断に基づいて、適応式に更新できることに留意されたい。たとえば、確率密度関数を、受け取られたアグレッサ・パターンｈ−に基づいて選択することができる。選択された確率密度関数は、その後、受け取られたターゲット・セル値ｒに基づいて、既知の技法を使用して、最新のオカレンスを用いて更新される（たとえば、対応するカウンタを増やすことによって）。
【０１６９】
前に示したように、所与のターゲット・セル７１０に影響するアグレッサ・セル７２０の個数を、複数の要因に基づいて減らすか無視することができる。この形で、検討する必要がある確率密度関数の個数を減らすことができる。たとえば、ＩＣＩを軽減する例示的実施態様では、斜めに結合する係数ｋｘｙが、他の結合する係数よりはるかに小さい（しばしばそうであるように）場合には、斜めに位置するセルからのＩＣＩを無視することができる。さらに、プログラミング・シーケンスは、検討される必要があるアグレッサ・セル７２０の個数に影響する。たとえば、ボトム・アップ手法など、ワード線が必ず固定された順序で書き込まれる場合には、下側ワード線内のセルからの外乱ＩＣＩ寄与がない場合がある。さらに、外乱ＩＣＩがターゲット・セル７１０の左右の隣に関して対称である場合には、特性を表される必要がある確率密度関数の個数が、半分だけ減らされる。
【０１７０】
前に示したように、１つの例示的実施態様では、確率密度関数を、ガウス確率密度関数を使用して近似することができる。さらなる変形形態では、確率密度関数が、たとえばヒストグラムに基づく場合に、追加の複雑さという犠牲を払って、改善された性能を得ることができる。確率密度関数がヒストグラムを使用して実施されるときに、確率密度関数を、成功して復号されたワード線を使用してヒストグラムをトレーニングすることによって適応式に更新することができる。
【０１７１】
さらなる実施形態では、確率密度関数およびその近似を、読取データを検出するために、ビタビ・アルゴリズム、軟出力ビタビ（ＳＯＶＡ）アルゴリズム、およびＢＣＪＲアルゴリズムなどのトレリス・ベースの検出アルゴリズムによって使用することができる。
【０１７２】
１．ビット・ベースのパターン依存統計
図２７は、少なくとも１つのターゲット・セル７１０（図７）に関連する１つまたは複数のアグレッサ・セル７２０の所与のパターンｈ−またはＰＡＴＴに関するビット・エラーを検出する確率ｐ０，ＰＡＴＴを推定する例示的なビット・ベースのパターン依存統計生成プロセス２７００を説明する流れ図である。当初に、ビット・ベースのパターン依存統計生成プロセス２７００は、ステップ２７２０中に基準ターゲット・セル７１０および潜在的に関連するアグレッサ・セル（１つまたは複数）７２０を読み取る。さらに、ステップ２７２５中に、読み取られたターゲット・ビットごとに、関連するアグレッサ・セル７２０のパターンＰＡＴＴを識別する。このパターンは、ステップ２７２５中に、たとえば書き込まれた既知のパターンを評価することによって、または基準セルもしくは復号済み符号語の実際の読取動作に基づいて、識別することができる。
【０１７３】
ステップ２７３０中に、１つまたは複数の識別されたパターンについて、対応するパターンを有する誤りのあるターゲット・ビットの個数を判定する。その後、ステップ２７４０中に、次のように誤り確率統計を計算する。
【数６４】
0005535220.tif 000065
【０１７４】
当業者に明白であるように、上で説明した諸技法を、オプションで、位置固有パターン依存統計を入手するために統合できることに留意されたい。さらに、さらなる変形形態では、それに加えてまたはその代わりに、読取統計を、メモリ・デバイスの耐久性、読取サイクル数、保持特性、温度、または他のパラメータの関数として入手することができる。
【０１７５】
２．セル・ベースのパターン依存統計
図２８は、少なくとも１つのターゲット・セルに関連する１つまたは複数のアグレッサ・セルの所与のパターンに関する誤りを検出する確率を推定する例示的なセル・ベースのパターン依存統計生成プロセス２８００を説明する流れ図である。図２８に示されているように、セル・ベースのパターン依存統計生成プロセス２８００は、当初に、ステップ２８２０中に１つまたは複数のターゲット・セルを読み取る。その後、ステップ２８２５中に、関連するアグレッサ・セル（１つまたは複数）のパターンｈ−またはＰＡＴＴを識別する。
【０１７６】
その後、ステップ２８３０中に、１つまたは複数の識別されたパターンについて、および可能な基準電圧レベルｓまたはＬＶＬｒｅｆごとに、セル・ベースのパターン依存統計生成プロセス２８００は、この基準レベルｓまたはＬＶＬｒｅｆが復号されたか書き込まれた時に各電圧レベルｓ＾またはＬＶＬｒｅａｄが読み取られた回数をカウントする。
【０１７７】
ステップ２８４０中に、パターン依存誤り確率統計が、次のように計算される。
【数６５】
0005535220.tif 000066
【０１７８】
非対称誤り確率統計
前に示したように、ＮＡＮＤフラッシュ・メモリ・チャネルなどのある種のチャネルでは、２進０および２進１などの異なる可能な２進値の誤りを検出する確率が、大きく異なる可能性がある。したがって、本発明は、オプションで、非対称チャネルの誤りを検出する確率を提供する。図２９および３０は、２進０および２進１などの２つの可能な２進値の誤り確率ｐおよびｑを推定する例示的な非対称統計生成プロセス２９００、３０００を提供する。下でさらに述べるように、図２９は、基準セルを使用して非対称統計を推定し、図３０は、復号済み符号語を使用して非対称統計を推定する。したがって、本発明は、フラッシュ・メモリからの硬データに基づいて可能な２進値ごとに非対称ＬＬＲを提供する。
【０１７９】
非対称誤り確率−基準セル
前に示したように、ＮＡＮＤフラッシュ・メモリ・チャネルなどのある種のチャネルでは、２進０および２進１などの異なる可能な２進値の誤りを検出する確率が、大きく異なる可能性がある。したがって、本発明は、オプションで、非対称チャネルの誤りを検出する確率を提供する。図２９は、本発明の基準セル実施形態の２つの可能な２進値の誤り確率を推定する例示的な非対称統計生成プロセス２９００を説明する流れ図である。
【０１８０】
図２９に示されているように、非対称統計生成プロセス２９００は、当初に、ステップ２９１０中に基準セル１９２０に既知のパターンを書き込み、その後、ステップ２０２０中に基準セル１９２０を読み取る。非対称統計生成プロセス２９００は、ステップ２９３０中に基準データ内の２進０を有する誤りのあるビットの個数を判定し、その後、次のように、ステップ２９４０中に２進０の誤り確率統計を計算する。
【数６６】
0005535220.tif 000067
【０１８１】
その後、非対称統計生成プロセス２９００は、ステップ２９５０中に基準データ内の２進１を有する誤りのあるビットの個数を判定し、その後、次のように、ステップ２９６０中に２進１の誤り確率統計を計算する。
【数６７】
0005535220.tif 000068
【０１８２】
非対称誤り確率−復号済み符号語
図３０は、本発明の復号済み符号語実施形態の２つの可能な２進値の誤り確率を推定する例示的な非対称統計生成プロセス３０００を説明する流れ図である。図３０に示されているように、非対称統計生成プロセス３０００は、当初に、ステップ３０１０中にフラッシュ・メモリから硬データを入手し、ステップ３０２０中に硬データを復号する。
【０１８３】
その後、非対称統計生成プロセス３０００は、ステップ３０３０中に復号済みデータ内の２進０を有するフラッシュ・メモリからの誤りのあるビットの個数を判定する。その後、ステップ３０４０中に、次のように２進０の誤り確率統計を計算する。
【数６８】
0005535220.tif 000069
【０１８４】
同様に、ステップ３０５０中に、復号済みデータ内の２進１を有するフラッシュ・メモリからの誤りのあるビットの個数を判定する。その後、ステップ３０６０中に、次のように２進１の誤り確率統計を計算する。
【数６９】
0005535220.tif 000070
【０１８５】
一実施形態では、ＮＡＮＤフラッシュ・メモリがアイドルである（すなわち、ユーザ・データを能動的に読み取っても書き込んでもいない）間に、統計を収集し、計算し、格納することができる。
【０１８６】
例示的実施形態は、基準セルまたはデコーダ・フィードバックを使用する統計収集を使用したが、検出されたデータまたは復号されたデータを使用して、たとえば最小平均二乗誤差判断基準を使用して、統計を推定するのに適応的方法を使用することもできる。
【０１８７】
代替実施形態では、統計または対応するＬＬＲを、ワーストケース動作条件（たとえば、プログラム／消去サイクルの個数、保持時間、および温度に関する）について、たとえばフラッシュ・メモリの実験的特性試験に基づいて事前に計算し、その後、これらを悪いチャネル条件について使用することができる。この形で、より正確な統計またはＬＬＲが、誤り確率が最大であるときに使用可能である。言い換えると、事前定義の統計または対応するＬＬＲを、事前定義の動作条件について事前に計算することができる。
【０１８８】
さらなる変形形態では、軟データを、復号が成功するまで異なる統計（誤り確率など）に基づいて反復して生成することができる。統計を、データの成功の検出または復号まで、ある範囲にわたって変更することができる。本発明のこの変形形態は、データの仮想再読取を提供する。データは、実際にはフラッシュ・メモリから再読取されないが、データは、異なる軟情報を用いて成功して復号される。
【０１８９】
満足されないパリティ検査に基づく誤り性能
本発明の諸態様は、満足されないパリティ検査を、軟データを入手するために性能メトリックとして使用することもできることを認めるものである。（Ｎ，Ｋ，Ｊ，Ｌ）ＬＤＰＣ符号を検討されたく、Ｎは、符号語長であり、Ｋは、未符号化符号語長（符号語内のユーザ・データ長）であり、ＪおよびＬは、それぞれパリティ検査行列の列重みおよび行重みである。（Ｎ，Ｋ，Ｊ，Ｌ）ＬＤＰＣ符号語が、誤り確率ｐ０で伝送されるか格納される時に、チェック・サムが最初の反復で不合格になる確率を、次のように表すことができる。
【数７０】
0005535220.tif 000071
この確率を、次のように推定することができる。
【数７１】
0005535220.tif 000072
【０１９０】
したがって、誤り確率ｐ０を、次のように推定することができる。
【数７２】
0005535220.tif 000073
【０１９１】
上の手順では、チャネルおよび初期ＬＬＲ値を、反復復号を実行する前に推定することができる。チャネル推定の複雑さおよび待ち時間は、軟判定復号の１反復のそれより小さく、ＬＤＰＣ符号の硬判定復号に対するかなりの性能利益を伴う。軟判定復号の標準実施態様と比較した追加のハードウェアは、次の計算を実行するブロックである。
【数７３】
0005535220.tif 000074
【０１９２】
図３１は、本発明の一態様による、満足されないパリティ検査を使用する統計生成プロセス３１００の例示的実施態様を説明する流れ図である。一実施形態では、最初の反復の後の満足されないパリティ検査が使用される。一般に、統計生成プロセス３１００は、満足されないパリティ検査を使用して、誤りを検出する確率ｐ０を計算する。その後、誤りを検出する確率ｐ０を、ＬＬＲジェネレータ１５５０（図１５）によって使用して、所望の軟データを計算することができる。
【０１９３】
当初に、統計生成プロセス３１００は、ステップ３１１０中に満足されないパリティ検査の個数を入手する。次に、統計生成プロセス３１００は、ステップ３１２０中に次のように誤り確率統計を計算する。
【数７４】
0005535220.tif 000075
【０１９４】
位置固有統計−満足されないパリティ検査
図３２は、満足されないパリティ検査を使用してメモリ・アレイ１９００内の複数の異なる位置の誤り確率統計を入手する例示的な位置固有統計生成プロセス３２００を説明する流れ図である。たとえば、誤り確率統計を、異なるページ位置、ワード線位置、ビット線位置（偶数ビット線および奇数ビット線など）、およびマルチレベル・セル内の異なるビット（最上位ビット（ＭＳＢ）および最下位ビット（ＬＳＢ）など）のうちの１つまたは複数について入手することができる。一般に、位置固有統計は、満足されないパリティ検査を使用して、所望の位置にビットを位置決めする符号語を使用することによって入手される（ステップ３２１０）。
【０１９５】
次に、図３２に示されているように、例示的な位置固有統計生成プロセス３２００は、ステップ３２２０中に、符号語に関する満足されないパリティ検査の個数を入手する。その後、ステップ３２３０中に、次のように位置固有誤り確率統計を計算する。
【数７５】
0005535220.tif 000076
【０１９６】
満足されないパリティ検査に基づく非対称統計
図３３は、満足されないパリティ検査を使用して２つの可能な２進値の誤りを検出する確率を推定する例示的な非対称統計生成プロセス３３００を説明する流れ図である。本発明のこの態様は、平均誤り確率ｐ−
を、満足されないパリティ検査に基づいて計算できることを認めるものである（ただし、ｐ−＝（ｐ＋ｑ）／２）。ｐおよびｑの値を、平均誤り確率確率ｐ−と、誤り確率ｐおよびｑの比ｋとに基づいて計算することができる。
【０１９７】
誤り確率ｐおよびｑの比ｋを、上で説明した復号済み符号語技法などのデータ分析を使用して入手することができる。代替案では、誤り確率ｐおよびｑの比ｋを、たとえば、本願と同時に出願され、参照によって本明細書に組み込まれている、国際出願、名称「Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｏｆｔ  Ｄａｔａ  Ｇｅｎｅｒａｔｉｏｎ  ｆｏｒ  ｍｅｍｏｒｙ  ｄｅｖｉｃｅｓ  Ｕｓｉｎｇ  Ｒｅｆｅｒｅｎｃｅ  Ｃｅｌｌｓ」に記載の基準セル技法を使用して入手することができる。誤り確率ｐおよびｑの比ｋは、通常は、オフラインで計算され、たとえばテーブルに格納されるはずである。図３３に示されているように、例示的な非対称統計生成プロセス（満足されないパリティ検査）３３００は、当初に、ステップ３３１０中に誤り確率ｐおよびｑの比ｋを入手する。
【０１９８】
平均誤り確率確率ｐ−を、ステップ３３２０中に、図１６に関連して上で説明した技法を使用して入手することができる。具体的に言うと、平均誤り確率確率ｐ−を、次のように推定することができる。
【数７６】
0005535220.tif 000077
【０１９９】
その後、ステップ３３３０中に、次のように２進０の誤り確率統計ｐを計算する。
【数７７】
0005535220.tif 000078
【０２００】
その後、ステップ３３４０中に、次のように２進１の誤り確率統計ｑを計算する。
【数７８】
0005535220.tif 000079
【０２０１】
非対称統計生成プロセス（満足されないパリティ検査）３３００によって計算される誤り確率統計ｐおよびｑを、オプションで位置固有および／またはパターン依存にすることができることに留意されたい。
【０２０２】
プロセス、システム、および製造品の詳細
本明細書の複数の流れ図は、ステップの例示的シーケンスを説明するが、そのシーケンスを変更できることも、本発明の実施形態である。アルゴリズムのさまざまな置換が、本発明の代替実施形態として企図されている。本発明の例示的実施形態を、ソフトウェア・プログラム内の処理ステップに関して説明したが、当業者に明白であるように、さまざまな機能を、ディジタル領域でソフトウェア・プログラム内の処理ステップとして、ハードウェアで回路要素または状態機械によって、あるいはソフトウェアとハードウェアとの両方の組合せで実施することができる。そのようなソフトウェアを、たとえば、ディジタル信号プロセッサ、特定用途向け集積回路、マイクロコントローラ、または汎用コンピュータで使用することができる。そのようなハードウェアおよびソフトウェアを、集積回路内で実施される回路内で実施することができる。
【０２０３】
したがって、本発明の機能を、方法およびこれらの方法を実践する装置の形で実施することができる。本発明の１つまたは複数の態様を、たとえば、記憶媒体に格納されるか、機械にロードされかつ／または機械によって実行されるか、あるいはある伝送媒体を介して伝送されるかのいずれかであるプログラム・コードの形で実施することができ、ここで、そのプログラム・コードがコンピュータなどの機械にロードされ、その機械によって実行されるときに、その機械は、本発明を実践する装置になる。汎用コンピュータで実施される時に、プログラム・コード・セグメントは、特定の論理回路に類似して動作するデバイスを提供するためにプロセッサと組み合わされる。本発明を、集積回路、ディジタル信号プロセッサ、マイクロプロセッサ、およびマイクロコントローラのうちの１つまたは複数で実施することもできる。
【０２０４】
当技術分野で既知のように、本明細書で述べられた方法および装置を、コンピュータ可読コード手段をその上で実施されたコンピュータ可読媒体をそれ自体が含む製造品として配布することができる。コンピュータ可読プログラム・コード手段は、本明細書で述べられた方法を実行するステップのすべてまたは一部を実行しまたは本明細書で述べられた装置を作成するために、コンピュータ・システムに関連して動作可能である。コンピュータ可読媒体は、記録可能媒体（たとえば、フロッピ・ディスク、ハード・ドライブ、コンパクト・ディスク、メモリ・カード、半導体デバイス、チップ、特定用途向け集積回路（ＡＳＩＣ））とすることができ、あるいは、伝送媒体（たとえば、光ファイバを含むネットワーク、ワールド・ワイド・ウェブ、ケーブル、または時分割多元接続、符号分割多元接続、もしくは他の無線周波数チャネルを使用する無線チャネル）とすることができる。コンピュータ・システムと共に使用するのに適切な情報を格納できる既知のまたは開発されるすべての媒体を、使用することができる。コンピュータ可読コード手段は、磁気媒体上の磁気変動またはコンパクト・ディスクの表面上の高さ変動など、コンピュータが命令およびデータを読み取ることを可能にするすべての機構である。
【０２０５】
本明細書で説明されるコンピュータ・システムおよびサーバは、それぞれ、本明細書で開示される方法、ステップ、および機能を実施するために関連プロセッサを構成するメモリを含む。メモリを、分散型またはローカルとすることができ、プロセッサを、分散型または単独とすることができる。メモリを、電子メモリ、磁気メモリ、または光メモリ、あるいは上記または他のタイプのストレージ・デバイスの任意の組合せとして実施することができる。さらに、用語「メモリ」は、関連するプロセッサによってアクセスされるアドレス空間内のアドレスから読み取られるかそのアドレスに書き込まれることが可能なすべての情報を包含するのに十分に広く解釈されなければならない。この定義を用いると、ネットワーク上の情報は、それでも、関連するプロセッサがネットワークからその情報を取り出すことができるので、メモリに含まれる。
【０２０６】
本明細書で図示され、説明された実施形態および変形形態が、本発明の原理の単なる例示であり、さまざまな修正形態を、本発明の範囲および趣旨から逸脱せずに当業者が実施できることを理解されたい。
【図１】
0005535220.tif 000080
【図２】
0005535220.tif 000081
【図３】
0005535220.tif 000082
【図４】
0005535220.tif 000083
【図５Ａ】
0005535220.tif 000084
【図５Ｂ】
0005535220.tif 000085
【図６】
0005535220.tif 000086
【図７】
0005535220.tif 000087
【図８】
0005535220.tif 000088
【図９】
0005535220.tif 000089
【図１０】
0005535220.tif 000090
【図１１】
0005535220.tif 000091
【図１２Ａ】
0005535220.tif 000092
【図１２Ｂ】
0005535220.tif 000093
【図１３】
0005535220.tif 000094
【図１４】
0005535220.tif 000095
【図１５】
0005535220.tif 000096
【図１６】
0005535220.tif 000097
【図１７Ａ】
0005535220.tif 000098
【図１７Ｂ】
0005535220.tif 000099
【図１７Ｃ】
0005535220.tif 000100
【図１８】
0005535220.tif 000101
【図１９】
0005535220.tif 000102
【図２０】
0005535220.tif 000103
【図２１】
0005535220.tif 000104
【図２２】
0005535220.tif 000105
【図２３】
0005535220.tif 000106
【図２４】
0005535220.tif 000107
【図２５】
0005535220.tif 000108
【図２６】
0005535220.tif 000109
【図２７】
0005535220.tif 000110
【図２８】
0005535220.tif 000111
【図２９】
0005535220.tif 000112
【図３０】
0005535220.tif 000113
【図３１】
0005535220.tif 000114
【図３２】
0005535220.tif 000115
【図３３】
0005535220.tif 000116