(57)【要約】【課題】記載された実施形態は、媒体に記憶されたデータを読み取る媒体コントローラを提供する。【解決手段】媒体コントローラは、媒体からの短縮符号語の各ビットの値を決定する。短縮符号語は、完全な符号語の複数の非短縮ビットを含み、完全な符号語は、複数の非短縮ビット、および、１つまたは複数の短縮ビットを含む。短縮ビットは、短縮符号語内の未使用ビットに対応する。媒体コントローラは、短縮符号語の各ビットの決定された値を、対数尤度比（ＬＬＲ）値の第１の組に変換する。完全な符号語は、短縮符号語に関するＬＬＲ値の第１の組を使用して復号される。媒体コントローラは、ＬＬＲ値の第２の組を生成するために、符号語の非短縮ビットに対応する１つまたは複数のＬＬＲ値を減衰し、ＬＬＲ値の第２の組を復号する。【選択図】図１
2015015701.tif 000002
【特許請求の範囲】
【請求項１】
コントローラによって、記憶媒体および通信チャネルのうちの少なくとも１つからデータを読み取る方法であって、前記方法が、
前記読み取りデータの短縮符号語の各ビットに関する値を決定することを含み、前記短縮符号語が、完全な符号語の複数の非短縮ビットを含み、前記完全な符号語が、複数の非短縮ビット、および１つまたは複数の短縮ビットを含み、前記短縮ビットが、前記短縮符号語内の未使用ビットに対応し、
前記方法が、さらに、前記短縮符号語の各ビットに関する前記決定された値を、対数尤度比（ＬＬＲ）の値の第１の組に変換することと、
前記完全な符号語を、前記短縮符号語に関する前記ＬＬＲ値の第１の組を使用して復号することと、
ＬＬＲ値の第２の組を生成するために、前記ＬＬＲ値の第１の組の１つまたは複数のＬＬＲ値を減衰させることと、を含み、前記１つまたは複数のＬＬＲ値が、前記符号語の非短縮ビットに対応し、
前記方法が、さらに、前記ＬＬＲ値の第２の組を復号することを含む、方法。
【請求項２】
前記１つまたは複数のＬＬＲ値を減衰させるステップが、前記ＬＬＲ値の第１の組の復号が、前記短縮符号語に対応するデータをうまく回復しなかった場合にのみ、実行される、請求項１に記載の方法。
【請求項３】
前記１つまたは複数のＬＬＲ値を減衰させるステップが、
前記短縮符号語の短縮ビットに対応する１つまたは複数のＬＬＲ値を、関連する最大のＬＬＲの大きさに設定することと、
前記ＬＬＲ値の第１の組の１つまたは複数のＬＬＲ値の大きさを、所定の量だけ減少させることと、
前記ＬＬＲ値の第１の組の１つまたは複数のＬＬＲ値の大きさを、所定のスケールファクタによってスケーリングすることと、のうちの１つを含む、請求項１に記載の方法。
【請求項４】
前記短縮符号語に関するＬＬＲ値の第１の組を復号することの前に、前記ＬＬＲ値の第１の組の１つまたは複数のＬＬＲ値を減衰させることをさらに含む、請求項１に記載の方法。
【請求項５】
前記復号することが、前記ＬＬＲ値の第２の組からの前記短縮符号語に対応するデータをうまく回復しなかった場合、
ＬＬＲ値の第３の組を生成するために、前記ＬＬＲ値の第２の組の１つまたは複数のＬＬＲ値を減衰させることをさらに含み、前記１つまたは複数のＬＬＲ値が、前記符号語の非短縮ビットに対応し、
前記方法が、さらに、前記ＬＬＲ値の第３の組を復号することを含む、請求項１に記載の方法。
【請求項６】
前記ＬＬＲ値の第１の組を減衰させることが、前記ＬＬＲ値の第１の組の１つまたは複数のＬＬＲ値の大きさを、第１の所定の量だけ減少させることによって行われ、
前記ＬＬＲ値の第２の組を減衰させることが、前記ＬＬＲ値の第２の組の１つまたは複数のＬＬＲ値の大きさを、第２の所定の量だけ減少させることによって行われる、請求項５に記載の方法。
【請求項７】
前記ＬＬＲ値の第１の組を減衰させることが、前記ＬＬＲ値の第１の組の１つまたは複数のＬＬＲ値の大きさを、第１のスケールファクタによってスケーリングすることによって行われ、
前記ＬＬＲ値の第２の組を減衰させることが、前記ＬＬＲ値の第２の組の１つまたは複数のＬＬＲ値の大きさを、第２のスケールファクタによってスケーリングすることによって行われる、請求項５に記載の方法。
【請求項８】
前記決定された値が、バイナリデータまたはアナログ電圧レベルのうちの少なくとも１つであり、前記短縮符号語の各ビットに関する前記決定された値を、対数尤度比（ＬＬＲ）値の第１の組に変換するステップが、第１のしきい値レベルを用いて実行され、前記方法が、さらに、
減衰動作のしきい値数に達した場合、
前記コントローラの読み取り再試行制限に達しているかどうかを判定することを含み、
前記方法が、さらに、前記読み取り再試行制限に達しない場合、
前記記憶媒体から前記短縮符号語の各ビットに関する値を再読み取りすることと、
１つまたは複数の後続のしきい値レベルを用いて、前記短縮符号語の各ビットに関する前記決定された値を、対数尤度比（ＬＬＲ）値の後続の組に変換することと、
前記減衰させるステップおよび前記復号するステップを、前記ＬＬＲ値の後続の組を用いて再実行することと、を含む、請求項１に記載の方法。
【請求項９】
前記読み取り再試行制限に達した場合、
前記ＬＬＲ値の組に対するデータ回復をさらに実行することを含む、請求項８に記載の方法。
【請求項１０】
前記復号するステップは、低密度パリティチェック（ＬＤＰＣ）復号であり、
前記さらなるデータ回復は、デジタル信号処理（ＤＳＰ）、および、独立ディスク（ＲＡＩＤ）データ回復の冗長アレイのうちの少なくとも１つである、請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
【０００２】
本出願は、参照によりその全体が本明細書に組み込まれている、２０１２年１１月２１日に出願した米国仮出願第６１／７２９，１７８号の優先権を主張するものである。
【０００３】
本出願の主題は、参照によりその全体が本明細書に組み込まれている、２０１２年５月４日に出願した米国特許出願第１３／４６４，４３３号、および、２０１２年８月４日に出願した米国特許出願第１３／５６７，０２５号に関連する。
【背景技術】
【０００４】
フラッシュメモリは、特定の種類の電気的に消去可能なプログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）である不揮発性メモリ（ＮＶＭ）である。一般的に用いられる種類のフラッシュメモリ技術の１つが、ＮＡＮＤフラッシュメモリである。ＮＡＮＤフラッシュメモリは、セルあたり小さいチップ面積を必要とし、典型的には、１つまたは複数のバンクまたはプレーンに分割される。各バンクは、ブロックに分割され、各ブロックは、ページに分割される。各ページは、ユーザデータ、誤り訂正符号（ＥＣＣ）情報、またはその両方を記憶するためのいくつかのバイトを含む。
【０００５】
ＮＡＮＤデバイスに関する３つの基本的な動作、すなわち、読み取り、書き込み、および消去が存在する。読み取りおよび書き込み動作は、ページ単位で行われる。ページサイズは、一般に、２Nバイトのユーザデータ（プラス、ＥＣＣ情報のための追加のバイト）であり、ここで、Nは、整数であり、典型的なユーザデータページサイズは、例えば、ページあたり２０４８バイト（２ＫＢ）、４０９６バイト（４ＫＢ）、８１９２バイト（８ＫＢ）、またはそれ以上である。「読み取りユニット」は、最小量のデータであり、ＥＣＣ情報に対応しており、ＥＣＣ情報は、ＮＶＭから読み取られ、ＥＣＣによって補正されることが可能で、読み取りユニットは、典型的には、４Ｋビットと３２Ｋビットの間であってよい（例えば、一般に、ページあたり整数の読み取りユニットが存在する）。ページは、典型的には、ブロックに配置され、消去動作は、ブロック単位で行われる。典型的なブロックサイズは、例えば、ブロックあたり６４、１２８、またはそれ以上のページである。ページは、通常はブロック内の低アドレスから高アドレスへ、順次に書き込まれなければならない。より低いアドレスは、ブロックが消去されるまで、再書き込みされることができない。一般に、ＥＣＣ情報および／またはメモリ管理に使用される他のメタデータを記憶するために使用される予備領域（典型的には、１００〜６４０バイト）が、各ページに関連付けられる。ＥＣＣ情報は、一般に、ページ内に記憶されたユーザデータを検出し、訂正するために用いられ、論理アドレスを物理アドレスに、または、物理アドレスから論理アドレスにマッピングするために、メタデータが使用されてよい。複数のバンクを有するＮＡＮＤフラッシュチップでは、各バンクからページが実質的に並列にアクセスされることを可能にする、複数バンクの動作がサポートされてよい。
【０００６】
ＮＡＮＤフラッシュメモリは、フローティングゲートトランジスタから作られたメモリセルのアレイに情報を記憶する。これらのトランジスタは、外部電力を供給されることなしに、数カ月または数年のオーダの長期間、電荷とも呼ばれるそれらの電圧レベルを保持する。シングルレベルセル（ＳＬＣ）フラッシュメモリでは、各セルは、１ビットの情報を記憶する。多レベルセル（ＭＬＣ）フラッシュメモリでは、各セルは、そのセルのフローティングゲートに印加する複数のレベルの電荷間で選択することによって、セルあたり１より多くのビットを記憶することができる。ＭＬＣ  ＮＡＮＤフラッシュメモリは、同じ数のトランジスタを使用して、より多くのビットが記憶されることを可能にするために、直列に連結されたトランジスタ配置によって、セルあたり複数の電圧レベルを用いる。したがって、個々に考えると、各セルは、セルに記憶されている論理ビット値（複数可）に対応する特定の格納された（プログラムされた）電荷を有し、セルは、各セルのための１つまたは複数のしきい値電圧に基づいて読み取られる。
【０００７】
理想的には、ＮＶＭ内のすべてのセルは、同じしきい値電圧を有するが、実際には、しきい値電圧は、形状がガウス確率曲線に似ている「しきい値電圧分布」で、セルによって異なる。多数のセル（例えば、読み取りユニットまたはページ）にわたって考えると、セルあたりの状態（例えば、セルあたり２ｂ分布で、ｂはビット数）と同じくらい多くのしきい値電圧分布（例えば、ガウス確率曲線）が存在する。したがって、ＳＬＣフラッシュメモリに関して、セルあたり２つの状態（０または１）、および、したがって、２つのしきい値電圧分（ゼロのための１つ、および、１のための別のもの）、並びに、単一の読み取りしきい値電圧が存在する。大部分のＭＬＣ  ＮＡＮＤフラッシュメモリは、セルあたり４つの可能な状態を用い、したがって、セルあたり２ビットの情報を記憶することができる。したがって、ＭＬＣフラッシュメモリに関して、４つの状態（例えば、００、０１、１０、１１）、および、したがって、４つのしきい値電圧分布、並びに、３つの読み取りしきい値が存在する。
【０００８】
セルあたりのビット数を増加させることは、セル間干渉および保持雑音（例えば、漏れなどによる、格納された電荷のドリフト）をより深刻にし、これは、各電圧レベルを分離する電圧マージンの量を減少させ、読み取りエラーの可能性、したがって、システムのビット誤り率（ＢＥＲ）を増加させる。さらに、各セルのしきい値電圧分布は、例えば、読み取り妨害、書き込み妨害、保持損失、セルエージングおよびプロセス、電圧および温度（ＰＶＴ）変動により、ＮＶＭの動作時間中に変化する可能性があり、これもＢＥＲを増加させる。ＮＶＭから読み取られる読み取りユニット中でビットエラーに遭遇すると、システム（例えば、ＮＶＭに結合されたコントローラ）は、ハード復号訂正可能な読み取りユニットの標本の位置を突き止めるために、読み取りしきい値の異なる電圧値で、読み取りユニットを再読み取りすることができる。さらに、例えば、Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ（ＢＣＨ）のような誤り訂正符号（ＥＣＣ）、および低密度パリティチェック（ＬＤＰＣ）を用いることによって、より大きいＢＥＲを補償するために、ソフトウェアの複雑さが増加する可能性がある。
【０００９】
メモリデバイスがより小さくなり、セルあたりのレベルの数が増加するにつれて、より強力なＥＣＣが必要とされる。例えば、ＥＣＣは、ＢＣＨ符号の符号化率を減少させることによって改善されるが、符号化率を減少させることは、ＮＶＭの記憶容量を減少させる。ＢＣＨ符号とは異なり、ＬＤＰＣ符号は、軟判定復号であり、各ビット値を推定する（「ハード復号」）ことに加えて、復号器は、各ビットの信頼度（「軟判定復号」）も推定する。ＢＣＨ符号を上回るＬＤＰＣ符号のために、各ビットの信頼度の改善された推定が望まれる。
【発明の概要】
【課題を解決するための手段】
【００１０】
この概要は、以下の詳細な説明でさらに説明される概念の選択を単純化された形態で紹介するために提供される。この概要は、特許請求される主題の主要な特徴または本質的な特徴を特定するものではなく、特許請求される主題の範囲を限定するために使用されるものでもない。
【００１１】
記載された実施形態は、媒体に記憶されたデータを読み取る媒体コントローラを提供する。媒体コントローラは、媒体からの短縮符号語の各ビットの値を決定する。短縮符号語は、完全な符号語の複数の非短縮ビットを含み、完全な符号語は、複数の非短縮ビット、および、１つまたは複数の短縮ビットを含む。短縮ビットは、短縮符号語内の未使用ビットに対応する。媒体コントローラは、短縮符号語の各ビットの決定された値を、対数尤度比（ＬＬＲ）値の第１の組に変換する。完全な符号語は、短縮符号語に関するＬＬＲ値の第１の組を使用して復号される。媒体コントローラは、ＬＬＲ値の第２の組を生成するために、符号語の非短縮ビットに対応する１つまたは複数のＬＬＲ値を減衰し、ＬＬＲ値の第２の組を復号する。
【００１２】
記載された実施形態の他の態様、特徴、および利点は、以下の詳細な説明、添付の特許請求の範囲、および、添付図面からより完全に明らかになり、添付図面では、同様の参照番号は、類似のまたは同一の要素を識別する。
【図面の簡単な説明】
【００１３】
【図１】例示的な実施形態によるフラッシュメモリ記憶システムのブロック図を示す。
【図２】単一の標準的なフラッシュメモリセルの例示的な機能ブロック図を示す。
【図３】例示的な実施形態による例示的なＮＡＮＤ  ＭＬＣフラッシュメモリセルを示す。
【図４】経時的な図３のＭＬＣ  ＮＡＮＤフラッシュセル内の状態ビット値の電圧分布の変化の例示的な図を示す。
【図５Ａ】初期時点での図３のＭＬＣ  ＮＡＮＤフラッシュセルのしきい値電圧確率分布の例示的な図である。
【図５Ｂ】より後の時点での初期時点での図３のＭＬＣ  ＮＡＮＤフラッシュセルのシフトされたしきい値電圧確率分布の例示的な図である。
【図６Ａ】図１の記憶媒体に記憶された例示的な非短縮符号語を示す。
【図６Ｂ】図１の記憶媒体に記憶された例示的な短縮符号語を示す。
【図７】図６Ｂの短縮符号語の例示的な減衰されたものを示す。
【図８】例示的な実施形態による図１のフラッシュメモリ記憶システムの例示的なＬＤＰＣ復号アルゴリズムの流れ図を示す。
【図９】図８のＬＤＰＣ復号アルゴリズムによる、減衰有りおよび無しの、信号対雑音比に対する訂正不可能なビット誤りの誤りフロアを示す例示的なグラフを示す。
【発明を実施するための形態】
【００１４】
記載された実施形態は、媒体に記憶されたデータを読み取る媒体コントローラを提供する。媒体コントローラは、媒体からの短縮符号語の各ビットの値を決定する。短縮符号語は、完全な符号語の複数の非短縮ビットを含み、完全な符号語は、複数の非短縮ビット、および、１つまたは複数の短縮ビットを含む。短縮ビットは、短縮符号語内の未使用ビットに対応する。媒体コントローラは、短縮符号語の各ビットの決定された値を、対数尤度比（ＬＬＲ）値の第１の組に変換する。完全な符号語は、短縮符号語に関するＬＬＲ値の第１の組を使用して復号される。媒体コントローラは、ＬＬＲ値の第２の組を生成するために、符号語の非短縮ビットに対応する１つまたは複数のＬＬＲ値を減衰し、ＬＬＲ値の第２の組を復号する。
【００１５】
表１は、記載された実施形態を理解するための助けとして、本明細書を通じて用いられる頭字語のリストを定義する。
【００１６】
【表１】
2015015701.tif 000003
図１は、不揮発性メモリ（ＮＶＭ）記憶システム１００のブロック図を示す。ＮＶＭ記憶システム１００は、媒体１１０を含み、媒体１１０は、媒体コントローラ１２０に結合される。媒体１１０は、ＮＡＮＤフラッシュ固体ディスク（ＳＳＤ）、ハードディスクドライブ（ＨＤＤ）のような磁気記憶媒体、コンパクトディスク（ＣＤ）もしくはデジタル多用途ディスク（ＤＶＤ）のような光記憶媒体、ハイブリッド光および磁気システム、または、他の同様の記憶システムとして実装されてよい。媒体１１０は、典型的には、バックプレーン、磁気記録システム内のドライブヘッド、光ファイバ、１つもしくは複数の同軸ケーブル、１つもしくは複数のより対銅線、または、１つもしくは複数の無線周波数（ＲＦ）チャネルのような、物理的伝送媒体によって、媒体コントローラ１２０に結合されてよい。さらに、ＮＶＭ記憶システムに関して本明細書に記載されているが、記載された実施形態は、有線もしくは無線チャネルを介して受信されたデータを復号するために、携帯電話または基地局のベースバンド処理システムで、または、有線もしくは無線通信チャネルから受信されたデータを復号する任意のシステムで、追加でまたは代わりに用いられてよい。
【００１７】
図１に示すように、媒体１１０および媒体コントローラ１２０は、集合的にＳＳＤ１０１である。媒体コントローラ１２０は、固体コントローラ１３０、制御プロセッサ１４０、バッファ１５０、およびＩ／Ｏインタフェース１６０を含む。媒体コントローラ１２０は、媒体１１０と、通信リンク１７０に結合されたホストデバイス１８０との間のデータの転送を制御する。媒体固体コントローラ１２０は、システムオンチップ（ＳｏＣ）または他の集積回路（ＩＣ）として実装されてよい。固体コントローラ１３０は、媒体１１０内のメモリ位置にアクセスするために使用されてよく、典型的には、媒体１１０とインタフェースするために、低レベルのデバイス特有の動作を実装することができる。バッファ１５０は、制御プロセッサ１４０のためのキャッシュとして、並びに／または、固体媒体１１０およびホストデバイス１８０間の動作のための読み取り／書き込みバッファとして機能するように用いられるＲＡＭバッファであってよい。例えば、データは、一般に、Ｉ／Ｏインタフェース１６０およびリンク１７０を介する固体媒体１１０およびホストデバイス１８０間の転送中、バッファ１５０に一時的に格納されてよい。バッファ１５０は、通信リンク１７０のデータ転送サイズと、媒体１１０の記憶ユニットサイズ（例えば、読み取りユニットサイズ、ページサイズ、セクタサイズ、またはマップされたユニットサイズ）との間の差を考慮するために、データをグループ化、または分割するために用いられてよい。バッファ１５０は、媒体コントローラ１２０の内部の、静的ランダムアクセスメモリ（ＳＲＡＭ）として、または、埋め込まれた動的ランダムアクセスメモリ（ｅＤＲＡＭ）として実装されてよいが、典型的には２倍データレート（例えば、ＤＤＲ−３）ＤＲＡＭであってよい、媒体コントローラ１２０の外部のメモリ（図示せず）を含むこともできる。
【００１８】
制御プロセッサ１４０は、媒体１１０内のデータへのデータアクセス（例えば、読み取りまたは書き込み動作）データを制御するために、固体コントローラ１３０と通信する。制御プロセッサ１４０は、Ｐｅｎｔｉｕｍ（登録商標）、Ｐｏｗｅｒ  ＰＣ（登録商標）、Ｔｅｎｓｉｌｉｃａ（登録商標）、もしくはＡＲＭ（登録商標）プロセッサ、または、異なるプロセッサの種類の組み合わせの１つもしくは複数として実装されてよい（Ｐｅｎｔｉｕｍは、Ｉｎｔｅｌ（登録商標）  Ｃｏｒｐｏｒａｔｉｏｎの登録商標であり、Ｔｅｎｓｉｌｉｃａは、Ｔｅｎｓｉｌｉｃａ，Ｉｎｃ．の登録商標であり、ＡＲＭプロセッサは、ＡＲＭ  Ｈｏｌｄｉｎｇｓによるものであり、Ｐｏｗｅｒ  ＰＣは、ＩＢＭ（登録商標）による登録商標である）。図１には単一のプロセッサとして示しているが、制御プロセッサ１４０は、複数のプロセッサ（図示せず）によって実装されてよく、記載されて実施形態にしたがってしきい値最適化動作を実行することを含む、動作のために必要とされるようなソフトウェア／ファームウェアを含むことができる。制御プロセッサ１４０は、低密度パリティチェック（ＬＤＰＣ）符号器／復号器（コーデック）１４２と通信し、コーデック１４２は、媒体１１０に書き込まれたデータのＬＤＰＣ符号化、および、媒体１１０から読み取られたデータの復号を実行する。
【００１９】
通信リンク１７０は、ホストデバイス１８０と通信するために使用され、ホストデバイス１８０は、ＮＶＭシステム１００とインタフェースするコンピュータシステムであってよい。通信リンク１７０は、カスタム通信リンクであってよく、または、例えば、小型コンピュータシステムインタフェース（「ＳＣＳＩ」）プロトコルバス、シリアルアタッチドＳＣＳＩ（「ＳＡＳ」）プロトコルバス、シリアルアドバンストテクノロジーアタッチメント（「ＳＡＴＡ」）プロトコルバス、ユニバーサルシリアルバス（「ＵＳＢ」）、ユニバーサルフラッシュストレージ（「ＵＦＳ」）プロトコルインタフェース、イーサネットリンク、ＩＥＥＥ８０１．１１リンク、ＩＥＥＥ８０２．１５リンク、ＩＥＥＥ８０２．１６リンク、ペリフェラルコンポーネントインターコネクトエクスプレス（「ＰＣＩ−Ｅ」）リンク、シリアルラピッドＩ／Ｏ（「ＳＲＩＯ」）リンク、または、周辺デバイスをコンピュータに接続するための任意の他の同様のインタフェースリンクのような、標準的な通信プロトコルにしたがって動作するバスであってよい。
【００２０】
図２は、固体媒体１１０内に見ることができる単一のフラッシュメモリセルの例示的な機能ブロック図を示す。フラッシュメモリセル２００は、２つのゲートを有するＭＯＳＦＥＴである。ワード線制御ゲート２３０が、フローティングゲート２４０の上部に配置される。フローティングゲート２４０は、絶縁層によって、ワード線制御ゲート２３０およびＭＯＳＦＥＴチャネルから絶縁され、ＭＯＳＦＥＴチャネルは、Ｎ−チャネル２５０および２６０、並びにＰ−チャネル２７０を含む。フローティングゲート２４０は、電気的に絶縁されるため、フローティングゲート２４０上に配置された任意の電荷は、典型的には多くの月の間、残り、十分に放電しないことになる。フローティングゲート２４０が、電荷を保持する場合、ワード線制御ゲート２３０からの電界を部分的に打ち消し、これは、セルのしきい値電圧を変更する。しきい値電圧は、チャネルを導通させるために、制御ゲート２３０に印加される電圧の量である。チャネルの導電率は、セルに記憶された値を、例えば、フローティングゲート２４０上の電荷を感知することによって決定する。
【００２１】
図３は、固体媒体１１０内に見ることができる例示的なＮＡＮＤ  ＭＬＣフラッシュメモリストリング３００を示す。図３に示すように、フラッシュメモリストリング３００は、ドレインからソースに直列に接続された、１つまたは複数のワード線トランジスタ２００（２）、２００（４）、２００（６）、２００（８）、２００（１０）、２００（１２）、２００（１４）、および２００（１６）（例えば、８フラッシュメモリセル）、並びに、ビット線選択トランジスタ３０４を含むことができる。この直列接続は、接地選択トランジスタ３０２、ワード線トランジスタ２００（２）、２００（４）、２００（６）、２００（８）、２００（１０）、２００（１２）、２００（１４）、および２００（１６）、並びに、ビット線選択トランジスタ３０４が、ビット線３２２が完全にローに引かれるように、対応するゲートをハイに駆動することによって、（例えば線形モードもしくは飽和モードで）すべて「ターンオン」されるようなものである。ターンオンされるワード線トランジスタ２００（２）、２００（４）、２００（６）、２００（８）、２００（１０）、２００（１２）、２００（１４）、および２００（１６）の数（または、トランジスタが、線形領域または飽和領域で動作している場所）を変化させることは、ＭＬＣストリング３００が、複数の電圧レベルを達成することを可能にすることができる。典型的なＭＬＣ  ＮＡＮＤフラッシュは、フローティングゲートを有する６４個のトランジスタの（例えば、図３に示すような）「ＮＡＮＤストリング」を用いることができる。書き込み動作中、高電圧が、ＮＡＮＤストリングに、書き込まれるワード線位置で印加される。読み取り動作中、電圧が、所望の読み取り位置に対応するトランジスタを除く、ＮＡＮＤストリング内のすべてのトランジスタのゲートに印加される。所望の読み取り位置は、フローティングゲートを有する。
【００２２】
本明細書に記載のように、ＳＬＣおよびＭＬＣ  ＮＡＮＤフラッシュの両方で、各セルは、読み取りしきい値電圧レベルと比較することなどによって感知することができる電圧充電値（例えば、アナログ信号）を有する。媒体コントローラは、電圧充電値を読み取り、セルの対応するバイナリ値を検出するために用いられる所与の数の所定の電圧しきい値を有することができる。例えば、ＭＬＣ  ＮＡＮＤフラッシュに関して、３つのしきい値（０．１、０．２、０．３）が存在する場合、セル電圧レベルが、０．０≦セル電圧＜０．１であるならば、セルは、［００］の値を有するとして検出され得る。典型的なＭＬＣフラッシュを読み取る際に、３つの読み取りしきい値が、フラッシュ製造業者によってプログラムされた規定値に当初は設定される。ＥＣＣが失敗した場合、３つのしきい値は、データを再読み取りするために修正される。セル電圧レベルが、０．１≦セル電圧＜０．２ならば、値は、［１０］であってよい、などである。このように、測定されたセルレベルは、セルレベルが、２つのしきい値の間にあるものと決定され、検出され得るまで、典型的にはしきい値と１つずつ比較されてよい。このように、検出されたデータ値は、検出された値を（例えば、誤り訂正符号と共に）、ホストデバイス１８０に提供されるデータに復号するために、メモリコントローラ１２０の復号器に提供される。
【００２３】
記載された実施形態は、フラッシュメモリに記憶されたデータを復号するために、低密度パリティチェック（ＬＤＰＣ）復号器（例えば、図１のＬＤＰＣコーデック１４２）を用いる。ＬＤＰＣ復号器は、訂正能力の点で、シャノン限界に近づくことができる。代数的符号を用いる復号器とは異なり、ＬＤＰＣ復号器は、（符号語あたりの訂正可能な誤りのビットでのような）一定の訂正能力を持たない。さらに、ＬＤＰＣ復号器は、「誤りフロア」を作成するそれらのタナーグラフ内のトラッピングセットの影響を受けやすく、誤りフロアは、入力ビット誤り率に対する出力ビット誤り率の通常の「ウォーターフォール」特性の変化であり、ここで、出力ビット誤り率は、はるかに急ではない勾配に突然変化する。しかしながら、ＬＤＰＣ符号をより効率的に用いるために、ＬＤＰＣ復号器は、復号されている各ビットが所与の値を有する（例えば、各セルが特定の電荷レベルを有する）アナログ的な確率のような「軟」データを用いる。所与の値を有する復号ビットのこの確率は、一般に、対数尤度比（ＬＬＲ）として特定される。フラッシュメモリでは、例えば、読み取り動作中にビット検出のためのしきい値電圧を移動させる能力は、各ビットがどのくらい信頼できるかを判定するために、ビット値の複数の標本を取ることを可能にし、この信頼度は、各ビットに関するＬＬＲとして表されてよい。本明細書に記載のように、フラッシュメモリの軟判定ＬＤＰＣ復号の一部は、各ビット位置に関するＬＬＲを生成するために、所与のフラッシュセルの（それぞれ、異なるしきい値電圧での）１つまたは複数の読み取りを用いている。
【００２４】
例えば、図４は、ＭＬＣ  ＮＡＮＤフラッシュセルの状態（ビット値）の電圧分布が、経時的にどのように変化するかを示す。特に、すべてのビットが、まったく同じにドリフトするわけではなく、これは、単一の固定された電圧しきい値で読み取る際の変動につながる。さらに、ビットのいくつかは、単にその正しい位置からドリフトされている値を有するのではなく、間違った値を報告することなどによって、「スタック」する可能性がある。記載された実施形態は、ＬＤＰＣ復号器が、符号語の一部であるが送信／記憶されない「短縮」ビットを除いてすべてのビットに使用される対数尤度比（ＬＬＲ）を変更することによって、「スタック」ビット（間違っているが、それらが正しいことを高い確率で主張するビット）の影響を克服することを可能にする。
【００２５】
図５Ａおよび５Ｂは、図３に示すようなＭＬＣ  ＮＡＮＤフラッシュセルのしきい値電圧およびしきい値電圧確率分布の例示的な図を示す。図５Ａは、グレイ符号化ＭＬＣ状態１１（例えば、分布５５０）、０１（例えば、分布５６０）、００（例えば、分布５７０）、および１０（例えば、分布５８０）に関する、初期時点（例えば、データが書き込まれるとき）でのしきい値電圧確率分布を表す。示されているように、公称の読み取りしきい値５４０、５４２、５４４は、各ＭＬＣ状態間に理想的に位置する。図５Ｂは、より後の時点でのしきい値電圧確率分布を表す。図５Ｂに示されているように、しきい値電圧分布５５１、５６１、５７１、および５８１は、保持ドリフトなどにより、図５Ａに示すそれらのより以前のそれぞれのしきい値電圧分布５５０、５６０、５７０、および５８０に対してシフトされる。図５Ｂは、左に一様にシフトされたすべての４つの分布を示すが、分布は、一般に、互いに独立してシフトする可能性がある。さらに、しきい値電圧分布のシフトの方向は、一般に、不明であるか、直接知り得ない。またさらに、シフトは、各ビットで独立している可能性があり、シフトは、分布を拡大させる可能性があり、拡大は、非対称である可能性がある。
【００２６】
いくつかの実施形態では、４つの状態の統計的分布が、各状態に対して２５パーセントであるように、様々なスクランブル技術が使用される。（例えば、図５Ｂに示すような）シフトされた分布を有するＭＬＣセルが、通常の読み取りしきい値（例えば、図５Ａに示すシフトされていない分布位置のために配置された５４０、５４２、および５４４）を使用して読み取られると、（多くの標本にわたる）各状態に関して２５パーセントの期待される読み取りデータからの偏差が、（例えば、任意の誤り訂正の前に）観測される可能性がある。媒体コントローラ１２０は、しきい値電圧分布中のシフトの存在を推測するために、読み取りデータ状態にこの差異を用いることができる。媒体コントローラ１２０は、次に、公称の読み取りしきい値（例えば、５４０、５４２、および５４４）を、図５Ｂに示すようなシフトされた読み取りしきい値５６５、５７５、および５８５になるように、観測された差異に少なくとも部分的に基づいて調整することができる。いくつかの実施形態では、差異は、全ページを基準に（または、複数のページを基準に）評価されてよい。他の実施形態では、差異は、読み取りユニットおよび／または符号語を基準に評価されてよい。図４Ａおよび４Ｂには示していないが、ＳＬＣセルに関して、２つの状態（例えば、１および０）並びに単一の読み取りしきい値が存在してよい。２つの状態の統計的分布が、各状態に関して５０パーセントであるように、スクランブリングが用いられてよい。読み取りしきい値は、典型的には、参照により本明細書に組み入れられる２０１２年５月４日に出願された関連の米国特許出願第１３／４６４，４３３号に記載のようにシフトされてよい。
【００２７】
したがって、図５Ａおよび５Ｂで見られるように、最下位ビット（ＬＳＢ）を読み取る際、しきい値基準未満の電圧が、１として読み取られる。見られるように、Ｖ４は、より多くのビットを１として標本化する傾向があることになり、Ｖ０は、より多くのビットを０として標本化する傾向があることになる。また、Ｖ２によって標本化されたビットは、２つの分布の中心で、時には不確定である。各セルがその電圧しきい値（１から０に交差する）を有する場所に正確に基づいて、セルが実際に１または０を保持している可能性は、決定され得るが、この可能性は、（図５Ａと図５Ｂとの違いによって示されるように）経時的に変化する可能性がある。ＮＡＮＤフラッシュメモリの軟判定ＬＤＰＣ復号の一部は、ＮＡＮＤフラッシュの（それぞれ、異なるしきい値電圧での）１つまたは複数の読み取りを、各ビット位置に関するＬＬＲに変えている。異なるしきい値でのＮＡＮＤフラッシュの複数の読み取りが実行される順序は、様々な実施形態によれば、（分布追跡情報のような）静的および／または動的な追跡情報、読み取りの観測される差異、復号の試みからの観測される誤り率、並びに他の要因のような要因に基づいて変化する。
【００２８】
多くの実際の場合では、符号語は、短縮される。短縮は、いくつかのメッセージビット位置のような符号語位置が存在することを意味し、これらの符号化位置は、未使用であり、記憶／送信されることなく符号化および復号する際の両方で、有効に知られる。短縮符号語は、符号語の可変サイズをサポートし、符号化率の選択のより高い柔軟性を提供するために用いられてよい。例えば、チェックバイトの数は、固定されているが、異なるＮＡＮＤフラッシュ販売業者が、異なる量の予備領域を提供する場合、符号語あたりのユーザバイトの数は、異なる量の予備領域を収容するために、符号語を短縮することによって変更されてよい。図６Ａは、媒体１１０に記憶された例示的な短縮符号語６００を示す。図６Ａに示すように、短縮符号語６００は、短縮メッセージビット６０２、非短縮メッセージビット６０４、およびＥＣＣビット６０６を含む。一緒に、非短縮メッセージビット６０４およびＥＣＣビット６０６は、媒体１１０に記憶された非短縮符号語部分６０８を形成する。図６Ｂは、媒体１１０から読み取られる例示的な短縮符号語６２０を示す。図６Ｂに示すように、短縮符号語６２０は、いくつかの短縮メッセージビットＬＬＲ６２２、いくつかの非短縮メッセージビット６２４、およびＥＣＣビットＬＬＲ６２６を含む、一緒に、非短縮メッセージビットＬＬＲ６２４およびＥＣＣビットＬＬＲ６２６は、媒体１１０から読み取られるデータに対応する非短縮符号語部分６２８を形成する。
【００２９】
例えば、第１のＮＡＮＤフラッシュ販売業者は、１６ＫＢページのユーザデータあたり１２１６バイトの予備領域を用いる可能性があり、第２のＮＡＮＤフラッシュ販売業者は、１６ＫＢページのユーザデータあたり１２８０バイトの予備領域を用いる可能性がある。２ＫＢの符号語あたり１４４バイトのＬＤＰＣチェックビットを有する例示的な実施形態では、各販売業者のメモリに関して、各ページのすべてのバイトを効率的に使用して、第１の販売業者のＮＡＮＤフラッシュは、８インスタンスの（２２００Ｂ、２０５６Ｂ）符号を用いる可能性があり、第２の販売業者のＮＡＮＤフラッシュは、８インスタンスの（２２０８Ｂ、２０６４Ｂ）符号を用いる可能性がある。実装に応じて、ＬＤＰＣ符号器および復号器（例えば、図１のＬＤＰＣコーデック１４２）は、２１７６バイトのユーザデータ、１４４バイトのＬＤＰＣチェックビットを有する（２３２０Ｂ、２１７６Ｂ）符号のような、より大きいサイズの符号語を実装することができる。（２２００Ｂ、２０５６Ｂ）コードおよび（２２０８Ｂ、２０６４Ｂ）コードの両方は、その後、実装された符号語の短縮されたものになる。
【００３０】
特定のチャネルは、「スタックビット」誤りとして知られる誤りを有する可能性があり、スタックビット誤りは、ある値（例えば、０）であるように強く現れるが、実際には別の値（例えば、１）であるべきである誤りである。スタックビット誤りは、（１）書き込む／プログラムすることができず、常に固定値として読み取ることができないビット（例えば、図３のＮＡＮＤ  ＭＬＣフラッシュメモリストリング３００内の１つまたは複数のショートしたまたはオープンのトランジスタ）のような、静的なスタックビット、（２）多レベルセル（ＭＬＣ）フラッシュのような、セルあたり複数のビットを記憶するいくつかの技術で、セルのＭＳＢをプログラムする際に、セルのＬＳＢが誤って読み取られる場合、結果として生じる電荷状態は、誤ったＬＳＢに基づき、結果として、そのセルのＬＳＢおよび／またはＭＳＢ位置に「スタック」ビットが生じる、誤ったプログラミング、（３）書き込まれる／プログラムされるために送られているデータが、書き込み／プログラムの前に、（アルファ粒子などによる）任意の誤りを経験する場合、誤りのビットは、誤った値にプログラムされる、シングルイベントアップセット（ＳＥＵ）、の１つまたは複数によるものである可能性がある。
【００３１】
このような「スタックビット」誤りは、所与の値（例えば、大きい大きさのＬＬＲ）を有するように非常に強く現れるため、実際には、ビットが逆の値であるべきである場合、スタックビット誤りは、このように、ＬＤＰＣ復号の誤りを作成する可能性がある。このようなスタックビット誤りは、それらの値について強く「嘘をつく」ことによって、ＬＤＰＣ復号に関する誤りフロアを上昇させ、「トラッピングセット問題」を悪化させる可能性がある。トラッピングセット問題は、ＬＬＲ値が、ビットが０であることを強く示すが、実際には、ビットは、１である場合であり、トラッピングセットの他のビットは、いくつかの場合、誤りビットの強さを無効にすることができない。記載された実施形態は、短縮ビット位置の相対的な「確実性」を高めるために、非短縮ビット位置のＬＬＲを選択的に変更する。これは、ＬＤＰＣ復号がスタックビットを克服するのを助け、スタックビットの存在下での誤りフロアを低下させる。
【００３２】
ＬＤＰＣ復号器は、一般に、短縮位置を、ＬＬＲの最大の大きさを有するものとして扱う。他の（非短縮）ビット位置は、記憶／伝送媒体から得られるアナログデータ（例えば、各ビットの可能性を決定するために、図５ＡおよびＢに示すような様々なしきい値と比較される、測定されたセルレベル）によって決定されるように、所与の値を有するそれらの実際の可能性から決定されるＬＬＲを有する。
【００３３】
いくつかの実施形態では、短縮ビット位置は、符号化では（同様に、復号では）常にゼロとして扱われる。他の実施形態では、短縮ビット位置は、符号化では（同様に、復号では）常に１として扱われる。他の実施形態では、短縮ビット位置の一部または全部は、符号化では（同様に、復号では）、ゼロおよび１を交互にするような、特定のパターンを有するように扱われる。したがって、記載された実施形態によれば、短縮ビット位置のＬＬＲは、最大のＬＬＲの大きさを有するものとして、または、無限のＬＬＲの大きさを有するものとして扱われてよく、復号処理中、変更されることが防止される。例えば、いくつかの実施形態では、短縮ビット位置は、「無限の」大きさのための特別な符号化を有し、ＬＤＰＣ復号器のロジックは、「無限」の値を（その数学的意味にしたがうように、または、任意の他の値よりはるかに大きいものとして）特別に扱うように変更される。短縮ビット位置のための特別な「無限の」ＬＬＲの大きさを有することは、これらのビット位置が、正しいことが「保証される」ように、これらのビット位置の「確実性」を強化し、これは、スタックビットの存在下では、非短縮ビット位置については、大きい大きさのＬＬＲの値を有する非短縮ビット位置であっても容易ではない。他の実施形態では、短縮ビット位置のＬＬＲは、初期のＬＤＰＣ復号ステップで（例えば、反復ＬＤＰＣ復号処理の第１の反復の開始時に）、可能な最大のＬＬＲの大きさに設定され、後続のＬＤＰＣ復号の反復では変更が許可されない。短縮ビット位置のＬＬＲが変更を許可される場合でも、短縮ビット位置のＬＬＲは、それらの信頼できる初期の大きさのおかげで、誤った値（例えば、誤った符号）に変更されることはありそうにない。
【００３４】
復号中、スタックビットのＬＬＲは、例えば、ビットに関するアナログレベルを決定し、ビットが０または１である確率を決定することによって、任意の他の非短縮ビットに関して決定される。スタックビットに関して、しかしながら、ビットのアナログレベルは、正しくない。スタックビットは、このように、最大値のＬＬＲのように、大きいＬＬＲの大きさを有し、潜在的に誤りフロアを上昇させ、ＬＤＰＣ復号器の出力ビット誤り率を制限する。具体的には、スタックビットは、トラッピングセットに巻き込まれるＬＤＰＣ復号器の可能性を増加することによって、ＬＤＰＣ復号器が、解決法に集中するのを妨げる。これが発生すると、ＬＤＰＣ復号は、失敗する。ＬＤＰＣ復号は、ますます多くの正確なＬＬＲ情報を使用して、複数回繰り返されてよい。例えば、硬判定ＬＤＰＣ復号が失敗する場合、ＮＡＮＤフラッシュメモリの１つまたは複数の追加の読み取りが、一次ＬＬＲ情報を得るために、異なったしきい値電圧で行われ、ＬＤＰＣ復号は、この軟判定情報を用いて繰り返される。ＬＤＰＣ復号が再び失敗する場合、二次ＬＬＲ情報を得るために、中間しきい値電圧でのような、ＮＡＮＤフラッシュメモリのさらなる追加の読み取りが行われ、ＬＬＲ復号は、この改善された軟判定情報を用いて繰り返される。ＬＤＰＣ復号が再び失敗する場合、様々な実施形態は、ＤＳＰ技術、または、いくつかの形式の複数の符号語にまたがるより高いレベルの符号（例えば、ＲＡＩＤ５のような符号）のような、さらに他の代替の戦略を有する。
【００３５】
スタックビットの存在下では、繰り返される読み取り再試行およびＬＤＰＣ復号は、スタックビットが変化せず、代わりに、正しくない状態を維持するため、ＬＤＰＣ復号を改善しない。さらなる代替の戦略は、非常に処理が集中的である傾向があり、依然として、スタックビットを訂正できない可能性がある。
【００３６】
様々な実施形態では、軟判定ＬＤＰＣ復号ステップが失敗する場合、非短縮ビット位置は、減衰された（大きさが減らされた）それらのＬＬＲ値を有するが、短縮ビット位置は、それらの（例えば、最大の）ＬＬＲ値を維持し、その後、ＬＤＰＣ復号が繰り返される。非短縮ビット位置を減衰させることは、短縮ビット位置と比較してスタックビットのＬＬＲの大きさを減少させる効果を有し、したがって、ＬＤＰＣ復号器に、どのビットが正しい値を有するのかを決定するより高い能力を与える。減衰が、非短縮ビット位置に適用された後、ＬＤＰＣ復号は、更新されたＬＬＲを用いて再び試みられる。減衰は、繰り返されてよく、例えば、第１のわずかな減衰が、ＬＤＰＣ復号を成功させない場合、１つまたは複数の追加のより積極的な減衰ステップが実行されてよく、ＬＤＰＣ復号が再試行されてよい。したがって、減衰および反復ＬＤＰＣ復号が、復号処理の１つまたは複数の段階で行われる。図７は、例示的な減衰され、短縮された符号語７００（例えば、図６Ｂの符号語６２０の減衰されたもの）を示し、符号語７００は、短縮メッセージビットＬＬＲ６２２、減衰された非短縮メッセージビットＬＬＲ７０４、および、減衰されたＥＣＣビットＬＬＲ７０６を含み、その結果、符号語６２０のすべての非短縮位置は、減衰される（例えば、減衰された非短縮メッセージビットＬＬＲ７０４は、非短縮メッセージビットＬＬＲ６２４の減衰されたものであり、減衰されたＥＣＣビットＬＬＲ７０６は、ＥＣＣビットＬＬＲ６２６の減衰されたものである）。短縮メッセージビットＬＬＲ６２２は、減衰されない。
【００３７】
図８は、不揮発性メモリ（例えば、ＭＬＣ  ＮＡＮＤフラッシュメモリ）の例示的なＬＤＰＣ復号処理８００の流れ図を示す。ステップ８０２では、ＬＤＰＣ復号処理８００が開始する。ステップ８０４では、媒体１１０の（例えば、図３に示すような）１つまたは複数のセルの第１の読み取りが、１つまたは複数のセルのそれぞれの第１のアナログレベルを決定するために行われる。ステップ８０６では、１つまたは複数のセルのそれぞれのアナログレベルが、各ＬＬＲ値に対応するビット値を決定するために、ＬＬＲ値に変換される。破線８０７で示すように、任意のステップ８０８では、ステップ８１０でのＬＤＰＣ復号を実行する前に、非短縮ビット位置は、減衰されてよい。ステップ８１０では、ＬＤＰＣ復号が、符号語内の１つまたは複数のセルのそれぞれに関するＬＬＲ値に対して実行される。ステップ８１２では、ＬＤＰＣ復号が成功した場合、処理８００は、ステップ８２４に進む。ステップ８１２では、ＬＤＰＣ復号（任意の減衰ステップ８０８ありまたはなしでの）が、成功しなかった場合、処理８００は、ステップ８１４に進み、非短縮位置の減衰が実行されるべきか否かが決定される。ステップ８１４で、減衰が実行されるべき場合、ステップ８１６では、符号語の非短縮ビット位置は、減衰され、処理８００は、ステップ８１０に戻り、ＬＤＰＣ復号が、符号語内の１つまたは複数のセルのそれぞれに関するＬＬＲ値に対して実行される。ステップ８１４で、減衰が実行されるべきではない場合、ステップ８１８では、媒体コントローラ１２０の読み取り再試行限界に達したか否かが判定される。ステップ８１８で、読み取り再試行限界に達していない場合、ステップ８２０で、媒体１１０の１つまたは複数のセルのその後の読み取りが、決定された電圧レベルを精密にするために、（例えば、図５ＡおよびＢに示すような）１つまたは複数の代わりのしきい値レベルを用いて実行される。後続の読み取り動作が、ステップ８２０で実行された後、処理８００は、ステップ８０６に戻り、１つまたは複数のセルのそれぞれに関する精密化されたアナログレベルが、各ＬＬＲ値に対応するビット値を決定するために、ＬＬＲ値に変換される。ステップ８１８で、読み取り再試行限界に達している場合、ステップ８２２では、１つまたは複数の追加の復号方法が、データを復元するために試みられてよい（例えば、デジタル信号処理（ＤＳＰ）、など）。ステップ８２４では、処理８００は、完了し、復元されたデータは、媒体コントローラ１２０によってさらに処理されてよい。
【００３８】
このように、記載された実施形態では、ＬＤＰＣ復号（減衰なし）が失敗するたびに、より正確な軟判定情報を得るために、減衰および反復ＬＤＰＣ復号が、追加の読み取りと並行などして試みられる。いくつかの例示的な実施形態では、減衰および反復ＬＤＰＣ復号は、（さらなる軟判定情報を得るための）すべての所望の追加の読み取り後のＬＤＰＣ復号が失敗した場合、単独で行われる。ＤＳＰが、減衰の前または後に行われてよく、複数の符号語にまたがるより高いレベルの符号化（例えば、ＲＡＩＤ５のような符号）の使用が、一般に、最後の回復の試みであるため、減衰および反復ＬＤＰＣ復号は、必ずしも最終的な試みではない。スタックビット誤りが、より優勢である場合、非短縮ビット位置のみが、最大のＬＬＲ値を有することができるように、減衰は、すべてのＬＤＰＣ復号に対して行われる。減衰の第１の試みは、第１の減衰レベルで実行されてよく、ＬＤＰＣ復号が失敗する場合、１つまたは複数のより強いレベルの減衰が、さらなるＬＤＰＣ復号の試みのために適用されてよい。
【００３９】
ハード誤りが、ＬＤＰＣ復号がトラッピングセットでスタックする原因である場合、ＬＤＰＣ復号は、一般に、単一の「小さい」トラッピングセットでスタックする。トラッピングセットのサイズ（関与する誤ったビットノードおよび不満足なチェックノードの数）は、ＬＤＰＣ符号のパリティチェック行列に対応するタナーグラフ、特に、列重み、および、グラフの短周期スペクトルによって決定される。例示的な小さいトラッピングセットは、（４，２）および（４，４）を含み、これは、それぞれ、４つの誤ったビットノード、並びに、２つおよび４つの不満足なチェックを意味する。ＬＤＰＣ復号が、このような小さいトラッピングセットでスタックする場合、これは、シンドローム重みによって、または、同等に、不満足なチェックの数によって決定可能である。ＬＤＰＣ復号が、許容最大反復回数に達した後、シンドローム重みが小さいか、最後の数回の反復の間、小さかった（１と６の間）ことがわかった場合、これは、小さいトラッピングセットを含むハード誤りを示すと思われる。それに応じて、読み取り再試行は、ハード誤りを確実に検出することができないため（書き込まれたアナログ電圧が、最低および最高読み取り基準電圧によって囲まれる電圧窓を超える場合のような）、追加の読み取り再試行よりも、より積極的な減衰を使用することが有効である。
【００４０】
減衰は、すべての非短縮ビット位置のＬＬＲに比を適用することによって行われる。例えば、ＬＬＲが−７から＋７までの範囲である場合、非短縮ビット位置は、５／７、または４．５／７、または４／７のような減衰係数を乗算される。短縮ビット位置は、それらの最大のＬＬＲ（例えば、＋７または−７）を維持する。図９は、増加する減衰係数２／７、３／７、４／７、および５／７を使用する減衰ありの様々な結果に対する、減衰なしの誤りフロア（三角形）を示す。図９では、ｓ＝１０は、符号語あたり１０のスタックビット誤りが存在することを示し、ＵＢＥＲは、ＬＤＰＣ復号後の訂正不可能なビット誤り率を表し、ＳＮＲは、信号対雑音比である。いくつかの実施形態では、減衰は、指定されたしきい値より大きい任意の非短縮ビット位置のＬＬＲ値の大きさを選択的に減少させることによって行われる。（−７から＋７までの範囲のＬＬＲ値を使用する）第１の例では、４より大きい大きさを有する任意のＬＬＲ値は、その大きさを４まで減少されている。（−７から＋７までの範囲のＬＬＲ値を使用する）第２の例では、５より大きい大きさを有する任意のＬＬＲ値は、その大きさを１だけ減少されている。第３の例では、最大の大きさを有する任意のＬＬＲ値は、その大きさを、１または２のような指定された量だけ減少されている。代わりに、減衰は、指数関数的減衰（より大きい大きさのＬＬＲ値を、より小さいＬＬＲ値より多く減衰させる）、ステップ関数、２次関数、または任意の他の数学関数のような、非短縮ビット位置のＬＬＲに適用される任意の関数であってよい。
【００４１】
いくつかの実施形態では、減衰は、特定の種類の失敗の可能性の知識に基づいて、非対称である。例えば、値１が正のＬＬＲを有し、値０が負のＬＬＲを有する場合、並びに、スタックビットが、値０より値１を有する可能性がより高い場合、非対称減衰が、負のＬＬＲ値よりも強く正のＬＬＲ値を減衰させる。さらに、この例では、任意のスタックビットが値０を有することが非常にありそうにない場合、正のＬＬＲ値のみが減衰される。
【００４２】
ＭＬＣ  ＮＡＮＤフラッシュを用いる実施形態では、スタックビットの障害がどのようにセルに影響するかの可能性についての知識と組み合わされた、同じセルに記憶された他のビットの値（例えば、復号されているＭＳＢビットに関するＬＳＢビット値、または、復号されているＬＳＢビットに関するＭＳＢビット値、など）についての知識は、同じセルに記憶された他のビットの値の知識に基づく、各ビット位置の選択的な減衰を可能にする。例えば、下位ページを復号する場合、上位ページを読み取りおよび復号することは、下位ページの復号に使用されるＬＬＲ値を選択的に減衰させるために、追加の情報を提供する。したがって、ＬＬＲ値は、ＮＡＮＤフラッシュの（１つまたは複数の符号語のような）所与の部分をそれぞれのしきい値電圧で読み取ることによって取られた１つまたは複数の標本を変換することによって生成されてよい。さらなる実施形態では、各ビット位置で取られた標本を、そのビット位置に関するＬＬＲ値に変換するために、テーブルルックアップが使用される。テーブルは、ファームウェアなどによって、読み取られているＮＡＮＤフラッシュの部分のセルの状態分布の静的または動的な知識に基づいて、予め計算される。さらに別の実施形態では、標本は、それぞれのしきい値電圧によって順序付けされ、変換は、ＬＬＲ値を決定するために、（１から０、または０から１のような）遷移点のインデックスを使用することが可能となる。
【００４３】
様々な実施形態によれば、ＬＬＲ値は、ＬＤＰＣ復号器、専用ハードウェアユニット、ファームウェア、および他の同様な技術、のうちの１つまたは複数によって生成される。様々な実施形態によれば、ＬＬＲの減衰は、前処理ステップとしてのＬＤＰＣ復号器、ルックアップテーブルで提供されるＬＬＲ値を変更するファームウェア、メモリに記憶されたＬＬＲ値を直接修正すること、および他の同様な技術、のうちの１つまたは複数によって行われる。
【００４４】
例示的な実施形態は、（例えば、図６Ａ〜Ｂおよび７に示すように）ＥＣＣビットがメッセージビットの端部にある組織符号を用いる。しかしながら、いくつかの実施形態では、ＥＣＣビットは、データ内の任意の場所（中央、前方）であってよく、符号は、組織的でなくてよく、これは、ＬＤＰＣ復号器（例えば、１４２）が、メッセージとＥＣＣビットとを区別することができないことを意味する。この場合、復号器は、すべてのビットが「符号化」され、ＥＣＣ情報およびデーが、数学的アルゴリズムにしたがって互いにインタリーブされるように、短縮ビット（例えば、６０２）と非短縮ビット（例えば、６０４）とを区別する。
【００４５】
このように、記載された実施形態は、媒体に記憶されたデータを読み取る媒体コントローラを提供する。媒体コントローラは、媒体からの短縮符号語の各ビットの値を決定する。短縮符号語は、完全な符号語の複数の非短縮ビットを含み、完全な符号語は、複数の非短縮ビット、および、１つまたは複数の短縮ビットを含む。短縮ビットは、デフォルト値に設定された短縮符号語内の未使用ビットに対応する。媒体コントローラは、短縮符号語の各ビットの決定された値を、対数尤度比（ＬＬＲ）値の第１の組に変換する。完全な符号語は、短縮符号語に関するＬＬＲ値の第１の組を使用して復号される。媒体コントローラは、ＬＬＲ値の第２の組を生成するために、符号語の非短縮ビットに対応する１つまたは複数のＬＬＲ値を減衰し、ＬＬＲ値の第２の組を復号する。
【００４６】
本明細書での「一実施形態」または「実施形態」への参照は、実施形態に関連して説明した特定の特徴、構造、または特性が、少なくとも１つの実施形態に含まれ得ることを意味する。本明細書の様々な箇所での「一実施形態では」という語句の出現は、必ずしもすべてが同じ実施形態のことを指しておらず、別のまたは代わりの実施形態が、他の実施形態と相互に排他的である必要もない。同じことが、「実装」という用語にも当てはまる。本明細書で使用される、「例示的」という単語は、本明細書では、例、事例、または例示として機能することを意味するために使用される。本明細書に「例示的」に記載される任意の態様または設計は、必ずしも、他の態様または設計より好適または有利であると解釈されるべきではない。むしろ、例示という単語の使用は、概念を具体的に提示することを意図している。
【００４７】
例示的な実施形態を、デジタル信号プロセッサ、マイクロコントローラ、または汎用コンピュータとしての可能な実装を含むソフトウェアプログラムの処理ブロックに関して説明してきたが、記載された実施形態は、そのように限定されない。当業者には明らかであろうように、ソフトウェアの様々な機能は、回路の処理として実装されてもよい。このような回路は、例えば、単一の集積回路、多チップモジュール、単一のカード、または多カード回路パックで用いられてよい。
【００４８】
加えて、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味することを意図している。すなわち、特に指定のない限り、または、文脈から明らかでない限り、「ＸがＡまたはＢを用いる」は、自然な包括的置換のいずれかを意味することを意図している。すなわち、ＸがＡを用いる、ＸがＢを用いる、または、ＸがＡおよびＢの両方を用いる場合、「ＸがＡまたはＢを用いる」は、前述の事例のどれの下でも満たされる。加えて、本出願および添付の特許請求の範囲で使用される冠詞「ａ」および「ａｎ」は、一般に、特に指定のない限り、または、単数形に向けられることが文脈から明らかでない限り、「１つまたは複数」を意味すると解釈されるべきである。
【００４９】
さらに、「システム」、「構成要素」、「モジュール」、「インタフェース」、「モデル」、などの用語は、一般に、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または、実行中のソフトウェアのいずれかの、コンピュータ関連の実体を指すことを意図している。例えば、構成要素は、プロセッサ上で動作しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、および／または、コンピュータであってよいが、これらに限定されない。例として、コントローラ上で作動しているアプリケーション、コントローラおのどちらも構成要素となりうる。１つまたは複数の構成要素は、実行のプロセスおよび／またはスレッド内に存在してよく、構成要素は、１台のコンピュータ上に局在化されてよく、および／または、２つ以上のコンピュータ間で分散されてよい。
【００５０】
要素および標準を参照して本明細書で使用される、「互換性がある」という用語は、要素が、他の要素と、標準によって全体的または部分的に指定される方法で連絡し、他の要素によって、標準によって指定される方法で、他の要素と通信することが十分に可能であると認識されることを意味する。互換性のある要素は、標準によって指定された方法で内部的に動作する必要はない。
【００５１】
また、この説明の目的のために、「結合」、「結合する」、「結合された」、「接続」、「接続する」、または「接続された」という用語は、エネルギーが１つまたはそれ以上の要素の間で転送されることが可能となる、当該技術分野で既知の、または将来開発される任意の方法を指し、１つまたは複数の追加の要素の介在が、考えられるが、必要ではない。逆に、「直接結合された」、「直接接続された」、などの用語は、このような追加の要素の不在を示唆する。信号、および対応するノードまたはポートは、同じ名前によって指されてよく、本明細書での目的のために交換可能である。
【００５２】
本明細書に記載の主題は、ユーザインタラクティブな構成要素を有するコンピューティングアプリケーションのための１つまたは複数のコンピューティングアプリケーションの機能／動作を処理するように、例示的な実装の文脈で説明されている場合があるが、主題は、これらの特定の実施形態に限定されない。むしろ、本明細書に記載の技術は、任意の適切な種類のユーザインタラクティブな構成要素の実行管理方法、システム、プラットホーム、および／または装置に適用されてよい。
【００５３】
記載された実施形態は、方法、および、これらの方法を実施するための装置の形態で実施されてよい。記載された実施形態は、磁気記録媒体、光記録媒体、固体メモリ、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、または、任意の他の非一時的な機械可読記憶媒体のような有形の媒体内で具体化されたプログラムコードの形態で実装されてもよく、プログラムコードがコンピュータのような機械にインストールされ、機械によって実行されると、機械は、記載された実施形態を実施するための装置となる。記載された実施形態は、例えば、非一時的な機械可読記憶媒体に記憶される、機械にロードされ、および／もしくは機械によって実行される、または、電気的な配線またはケーブル接続を介する、光ファイバを介する、もしくは、電磁放射を介するような、いくつかの伝送媒体または搬送波を介して伝送される、プログラムコードの形態で実装されてもよく、プログラムコードがコンピュータのような機械にインストールされ、機械によって実行されると、機械は、記載された実施形態を実施するための装置となる。汎用プロセッサ上に実装されると、プログラムコードセグメントは、特定の論理回路と類似して動作する独自の装置を提供するために、プロセッサと結合する。記載された実施形態は、媒体を介して電気的または光学的に伝送され、磁気記録媒体などに磁界変動で記憶され、本明細書に記載されたような方法および／または装置を使用して生成される、ビットストリームまたは他の信号値のシーケンスの形態で実装されてもよい。
【００５４】
本明細書に記載の例示的な方法のステップは、必ずしも、記載された順序で実行される必要はないことを理解すべきであり、このような方法のステップの順序は、単に例示であると理解すべきである。同様に、様々な実施形態と矛盾しない方法で、追加のステップが、このような方法に含まれてよく、特定のステップが、省略または結合されてよい。
【００５５】
記載された実施形態の性質を説明するために説明および図示された部分の詳細、材料、および配置の様々な変更は、以下の特許請求の範囲から逸脱することなく、当業者によってなされ得ることが、さらに理解されるであろう。
【図１】
2015015701.tif 000004
【図２】
2015015701.tif 000005
【図３】
2015015701.tif 000006
【図４】
2015015701.tif 000007
【図５Ａ】
2015015701.tif 000008
【図５Ｂ】
2015015701.tif 000009
【図６Ａ】
2015015701.tif 000010
【図６Ｂ】
2015015701.tif 000011
【図７】
2015015701.tif 000012
【図８】
2015015701.tif 000013
【図９】
2015015701.tif 000014