(57)【要約】分類コードを使用してソフトデータを判定するための装置及び方法が、提供される。１つの装置例は、分類コード（ＣＣ）復号器とＣＣ復号器に連結される外符号復号器とを含むことができる。ＣＣ復号器は、ＣＣコードワードを受信するように構成される。ＣＣコードワードは、外符号コードワードの一片及び対応するＣＣパリティ桁を含む。ＣＣ復号器は、少なくとも部分的に、対応するＣＣ桁を使用して、外符号コードワードの一片に関連付けられるソフトデータを判定するように構成される。【選択図】図３
2016509420.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
分類コード（ＣＣ）復号器と、
前記ＣＣ復号器に連結される外符号復号器と、を備え、
前記ＣＣ復号器は、
ＣＣコードワードであって、外符号コードワードの一片及び対応するＣＣパリティ桁を含む、ＣＣコードワードを受信するように、ならびに
少なくとも部分的に、前記対応するＣＣパリティ桁を使用して、前記外符号コードワードの一片に関連付けられるソフトデータを判定するように構成される、装置。
【請求項２】
前記外符号復号器は、ソフト入力復号器である、請求項１に記載の装置。
【請求項３】
前記外符号復号器は、反復復号器である、請求項１に記載の装置。
【請求項４】
前記反復復号器は、低密度パリティチェック（ＬＤＰＣ）復号器であり、前記外符号コードワードの前記一片は、ＬＤＰＣコードワードの一片である、請求項３に記載の装置。
【請求項５】
前記ＣＣ復号器に連結されるメモリをさらに備え、前記ＣＣ復号器は、前記メモリのハード読み取りを介して前記ＣＣコードワードを受信するように構成される、請求項１〜４のいずれか一項に記載の装置。
【請求項６】
前記ソフトデータは、前記外符号コードワードの前記一片に関連付けられる信頼性値である、請求項１〜４のいずれか一項に記載の装置。
【請求項７】
前記信頼性値は、少なくとも部分的に、ハード読み取りを使用して判定される前記ＣＣコードワードの桁に関して判定される対数尤度比（ＬＬＲ）を含む、請求項６に記載の装置。
【請求項８】
前記ソフトデータは、前記外符号コードワードの前記一片の一部分に関連付けられる信頼性値である、請求項１〜４のいずれか一項に記載の装置。
【請求項９】
前記ＣＣ復号器は、それぞれの信頼性値を、前記外符号コードワードの前記一片の前記一部分の各桁に関連付けるように構成される、請求項８に記載の装置。
【請求項１０】
前記ＣＣ復号器は、前記外符号コードワードの前記一片の前記一部分に関する前記信頼性値を、前記外符号復号器に提供するように構成される、請求項８に記載の装置。
【請求項１１】
外符号復号器は、前記外符号コードワードの復号において前記信頼性値を利用するように構成される、請求項１０に記載の装置。
【請求項１２】
前記信頼性値は、３つの値、不確実な信頼性、強い信頼性、または弱い信頼性のうちの１つに対応するそれぞれの値のうちの１つである、請求項１１に記載の装置。
【請求項１３】
少なくとも部分的にメモリセルの条件に基づいて、前記信頼性値を調整することをさらに含む、請求項８に記載の装置。
【請求項１４】
前記ＣＣは、２つの代数コードのテンソル積である、請求項１〜４のいずれか一項に記載の装置。
【請求項１５】
前記ＣＣは、一桁パリティチェックコード及びバイナリ代数コードのテンソル積である、請求項１〜４のいずれか一項に記載の装置。
【請求項１６】
前記ＣＣ復号器及び前記外符号復号器は、コントローラの構成要素である、請求項１〜４のいずれか一項に記載の装置。
【請求項１７】
外符号復号器は、フィードバックパスを介して前記ＣＣ復号器にハード決定をフィードバックするように構成され、前記ＣＣ復号器は、前記ハード決定を使用してソフトデータを判定するように構成される、請求項１〜４のいずれか一項に記載の装置。
【請求項１８】
装置であって、
外符号復号器と、
前記外符号復号器に連結される中間コード復号器と、
前記中間コード復号器に連結される分類コード（ＣＣ）復号器と、を備え、
前記ＣＣ復号器は、
ＣＣコードワードであって、ＣＣパリティ桁と、ホストからのユーザデータから成るデータと、中間コードパリティ桁と、外符号パリティ桁とを含む、ＣＣコードワードを、ハード読み取りを介してメモリから受信するように、
前記ＣＣパリティ桁を使用して、前記データに関連付けられるソフトデータを判定するように、及び
前記データ及び前記ソフトデータを、前記中間コード復号器に提供するように構成される、装置。
【請求項１９】
前記データは、低密度パリティチェック（ＬＤＰＣ）コードワードの一片であり、前記中間コード復号器は、反復ＬＤＰＣ復号器である、請求項１８に記載の装置。
【請求項２０】
前記ＣＣ復号器は、少なくとも部分的に前記ＣＣパリティ桁に基づいて、前記データの多数の桁に関連付けられるソフトデータを判定するようにさらに構成される、請求項１８〜１９のいずれか一項に記載の装置。
【請求項２１】
前記ＣＣは、検出コード及び訂正コードのテンソル積である、請求項１８〜１９のいずれか一項に記載の装置。
【請求項２２】
前記ＣＣは、一桁パリティチェックコード（Ｃ１）及びバイナリ代数コード（Ｃ２）のテンソル積である、請求項１８〜１９のいずれか一項に記載の装置。
【請求項２３】
前記ＣＣ復号器は、前記Ｃ１を使用して、前記データの少なくとも一部分における奇数のエラーを検出するように構成される、請求項２２に記載の装置。
【請求項２４】
前記ＣＣ復号器は、Ｃ２を使用して、エラー内の前記データのｔ以下の部分を識別するように構成される、請求項２２に記載の装置。
【請求項２５】
前記ＣＣ復号器は、どの特定の前記データのｔ＋１の部分がエラーであるかを識別することなしに、前記データのｔ＋１の部分がエラーであることを検出するように構成される、請求項２２に記載の装置。
【請求項２６】
前記中間コード復号器は、最大２反復動作するように構成される、請求項１８〜１９のいずれか一項に記載の装置。
【請求項２７】
前記中間コード復号器、前記外符号復号器、及び前記ＣＣ復号器は、コントローラの構成要素である、請求項１８〜１９のいずれか一項に記載の装置。
【請求項２８】
装置であって、
外符号コードワードを提供するように構成される外符号符号器と、
前記外符号符号器に連結される分類コード（ＣＣ）符号器と、を備え、前記ＣＣ符号器は、ＣＣパリティ桁を判定し、前記ＣＣパリティ桁をＣＣコードワードとして前記外符号符号器コードワードの一片に付加するように構成され、
前記ＣＣ符号器は、メモリへの前記ＣＣコードワードの書き込みを制御するように構成される、装置。
【請求項２９】
前記外符号符号器は、低密度パリティチェック（ＬＤＰＣ）符号器であり、前記外部符号器コードワードの前記一片は、ＬＤＰＣコードワードの一片である、請求項２８に記載の装置。
【請求項３０】
前記ＬＤＰＣ符号器に連結されるボーズ・チョドーリ・オッケンジェム（ＢＣＨ）符号器をさらに備え、前記ＬＤＰＣ符号器は、前記ＢＣＨ符号器からＢＣＨコードワードを受信し、前記ＣＣ符号器にＬＤＰＣコードワードを提供するように構成される、請求項２９に記載の装置。
【請求項３１】
前記ＣＣ符号器は、前記外符号コードワードの前記一片の複数の部分の各々に関して、一桁パリティチェックコード（Ｃ１）の桁を判定するように構成される、請求項２８〜３０のいずれか一項に記載の装置。
【請求項３２】
前記ＣＣ符号器は、前記外符号コードワードの前記一片からバイナリ代数コード（Ｃ２）を判定するように構成される、請求項３１に記載の装置。
【請求項３３】
前記ＣＣ符号器は、Ｃ１及びＣ２のテンソル積として前記ＣＣを判定するように構成される、請求項３２に記載の装置。
【請求項３４】
前記外符号符号器及び前記ＣＣ符号器は、コントローラの構成要素である、請求項２８〜３０のいずれか一項に記載の装置。
【請求項３５】
方法であって、
分類コード（ＣＣ）符号器に、外符号コードワードの少なくとも一片を受信することと、
前記ＣＣ符号器を介して、前記外部符号器コードワードの前記一片から一桁パリティチェックコード（Ｃ１）及びバイナリ代数コード（Ｃ２）を判定することと、
Ｃ１及びＣ２のテンソル積としてＣＣを判定することと、を含む、方法。
【請求項３６】
ＣＣパリティ桁を前記外符号コードワードの前記一片に付加して、ＣＣコードワードを生成することと、
前記ＣＣコードワードをメモリに書き込むこと、をさらに含む、請求項３５に記載の方法。
【請求項３７】
前記外符号コードワードの前記一片は、ＬＤＰＣコードワードの一片である、請求項３５〜３６のいずれか一項に記載の方法。
【請求項３８】
ＢＣＨ符号器を介して、ユーザデータからＢＣＨコードワードを判定することと、
前記ＬＤＰＣ符号器を介して、前記ＢＣＨコードワードから前記ＬＤＰＣコードワードを判定することと、をさらに含む、請求項３７の方法。
【請求項３９】
方法であって、
第１の復号器に、第１の符号器コードワードを受信することであって、前記第１の符号器コードワードは、第２の符号器コードワードの一片及び第１のコードパリティ桁を含む、受信することと、
前記第１の復号器を介して、少なくとも部分的に前記第１のコードパリティ桁に基づいて、前記第２の符号器コードワードの前記一片に関連付けられるソフトデータを判定することと、
前記第２の符号器コードワードの前記一片及び判定されたソフトデータを、前記第１の復号器から第２の復号器に提供することと、を含む、方法。
【請求項４０】
前記第２の復号器は、反復復号器である、請求項３９に記載の方法。
【請求項４１】
前記最大２反復動作する第２の復号器を介して、少なくとも部分的に、前記第２の符号器コードワードの前記一片及び前記判定されたソフトデータに基づくデータを判定することをさらに含む、請求項４０に記載の方法。
【請求項４２】
前記ソフトデータを判定することは、前記第２の符号器コードワードの前記一片の桁に関連付けられる信頼性値を判定することを含む、請求項３９〜４１のいずれか一項に記載の方法。
【請求項４３】
前記第１の復号器を介して、前記第１のコードパリティ桁からパリティチェックコード（Ｃ１）及びバイナリ代数コード（Ｃ２）を判定することをさらに含み、前記第１のコードパリティ桁は、Ｃ１及びＣ２のテンソル積から計算される、請求項３９〜４１のいずれか一項に記載の方法。
【請求項４４】
前記第１の復号器は、分類コード（ＣＣ）復号器であり、前記第１のコードパリティ桁は、ＣＣパリティ桁であり、前記第２の復号器は、低密度パリティチェック（ＬＤＰＣ）復号器であり、前記第２の符号器コードワードの前記一片は、ＬＤＰＣコードワードの一片である、請求項３９〜４１のいずれか一項に記載の方法。
【請求項４５】
方法であって、
分類コード（ＣＣ）復号器にＣＣコードワードを受信することと、
前記ＣＣ復号器を介して、前記ＣＣコードワードからＣＣパリティ桁及び外部コードワードの一片を判定することと、
エラーである前記外部コードワードの前記一片のｔ以下の部分が存在する前記ＣＣパリティ桁に基づいて、エラーである前記外部コードワードの前記一片のｔ部分を識別することと、
エラーである前記外部コードワードの前記一片のｔ＋１の部分が存在する前記ＣＣパリティ桁に基づいて、エラーである前記外部コードワードの前記一片のｔ＋１の部分を検出することと、を含む、方法。
【請求項４６】
前記ＣＣ復号器によって、反復復号器に、前記外部コードワードの前記一片の識別及び検出された部分に関して前記外部コードワード及びソフトデータの片を提供することをさらに含み、前記反復復号器は、低密度パリティチェック（ＬＤＰＣ）復号器であり、前記外部コードワードの前記一片は、ＬＤＰＣコードワードである、請求項４５に記載の方法。
【請求項４７】
エラーである前記外部コードワードのｔ部分を識別することは、弱い信頼性に対応する信頼性値を、前記外部コードワードの前記識別されたｔ部分内の全ての桁に関連付けることを含む、請求項４６に記載の方法。
【請求項４８】
エラーである前記外部コードワードの前記一片のｔ部分を識別することは、強い信頼性に対応する信頼性値を、前記外部コードワードの前記一片の前記識別されたｔ部分以外の全ての桁に関連付けることを含む、請求項４６に記載の方法。
【請求項４９】
エラーである前記外部コードワードのｔ＋１の部分の検出を識別することは、不確実な信頼性に対応する信頼性値を、前記外部コードワードの前記一片内の全ての桁に関連付けることを含む、請求項４６に記載の方法。
【請求項５０】
前記外部コードワードの前記一片内の特定の桁に対応する信頼性値を、少なくとも部分的に前記ＣＣパリティ桁に基づいて判定することと、
前記外部コードワードの前記一片内の前記特定の桁に対応する前記信頼性値を、前記外部コードワードの前記一片内の前記特定の桁の読み取りから判定されるソフトデータに少なくとも部分的に基づいて調整することと、をさらに含む、請求項４５〜４９のいずれか一項に記載の方法。
【請求項５１】
前記一片の前記外部コードワード内の前記特定の桁に関して前記判定されるソフトデータは、前記一片の前記外部コードワード内の前記特定の桁に関してハード読み取りを使用して判定されるＬＬＲである、請求項５０に記載の方法。
【請求項５２】
前記ＣＣパリティ桁を判定することは、前記受信されるＣＣコードワード及び前記ＣＣパリティ桁のパリティチェックマトリックスの積として、ＣＣシンドロームを計算することを含む、請求項４５〜４９のいずれか一項に記載の方法。
【請求項５３】
前記受信されるＣＣコードワードは、ハード読み取りを介してメモリから獲得される、請求項４５〜４９のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、メモリエラー訂正に関し、より具体的には、分類コードを使用してソフトデータを判定するための装置及び方法に関する。
【背景技術】
【０００２】
メモリデバイスは、典型的に、コンピュータまたは他の電子デバイスにおいて、内部、半導体、集積回路として提供される。揮発性及び不揮発性メモリを含む、多くの異なるタイプのメモリがある。揮発性メモリは、そのデータを維持するために電力を必要とし得、とりわけランダムアクセスメモリ（ＲＡＭ）、動的ランダムアクセスメモリ（ＤＲＡＭ）、及び同期動的ランダムアクセスメモリ（ＳＤＲＡＭ）が含まれる。不揮発性メモリは、給電されていないときに、記憶されたデータを保持することによって永続的なデータを提供することができ、とりわけ、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、相変化ランダムアクセスメモリ（ＰＣＲＡＭ）、抵抗性ランダムアクセスメモリ（ＲＲＡＭ）、及び磁気ランダムアクセスメモリ（ＭＲＡＭ）を挙げることができる。
【０００３】
メモリデバイスは、一緒に組合わせて、固体状態ドライブ（ＳＳＤ）を形成することができる。ＳＳＤは、種々の他の種類の不揮発性及び揮発性メモリの中でもとりわけ、不揮発性メモリ、例えば、ＮＡＮＤフラッシュメモリ及び／もしくはＮＯＲフラッシュメモリを含むことができ、ならびに／または揮発性メモリ、例えば、ＤＲＡＭ及び／もしくはＳＲＡＭを含むことができる。フラッシュメモリデバイスは、例えば、フローティングゲートなどの、電荷貯蔵構造内に情報を記憶するメモリセルを含むことができ、広範な電子用途のための不揮発性メモリとして利用することもできる。
【０００４】
メモリは、広範な電子用途のための揮発性及び不揮発性データ記憶として利用される。不揮発性メモリは、例えば、パーソナルコンピュータ、携帯メモリスティック、デジタルカメラ、携帯電話、ＭＰ３プレイヤーなどの携帯音楽プレイヤー、ムービープレイヤー、及び他の電子デバイスに使用することができる。メモリセルは、アレイがメモリデバイスとして使用されている状態で、アレイ内に配置することができる。
【０００５】
ハード読み取りは、メモリセルがプログラムされ得る複数の状態間を区別するような読み取り動作である。ハード読み取りは、ハードデータ、例えば、読み取り動作によって判定される状態に対応する桁を返す。ソフトデータは、ハードデータ以外のデータであり得る。ソフトデータは、ハードデータに関連付けられる確信度に関する確信度レベルを示す（または、示すために使用される）ことができる。例えば、ソフト読み取りは、メモリセルが帯電される特定の電圧を判定するために使用することができ、それは、ハードデータの信頼性を特徴付けるために使用することができる。ハードデータの信頼性は、２つの状態間の境界付近の特定の電圧に対して帯電されたメモリセルに関して、ある状態に対応する電圧範囲の中心付近の特定の電圧に対して帯電されたメモリセルよりも少ない場合がある。種々のエラー訂正コードスキームは、ソフトデータを使用して遥かにより良好に実施することができる。しかしながら、ソフト読み取りによって判定されるソフトデータはハード読み取りと比較してより遅く、ソフト読み取りによって判定されるソフトデータの通信は、帯域幅を消費し、メモリスループットに影響を及ぼす可能性がある。
【図面の簡単な説明】
【０００６】
【図１】本開示のいくつかの実施形態に従う、不揮発性メモリアレイの一部分の概略図を例解する。
【図２】本開示のいくつかの実施形態に従う、少なくとも１つのメモリシステムを含む計算システムの形態の装置のブロック図である。
【図３】本開示のいくつかの実施形態に従う、コントローラの形態の装置の機能ブロック図である。
【図４】本開示のいくつかの実施形態に従う、ＣＣ符号化されたシーケンス例を例解する図である。
【図５】本開示のいくつかの実施形態に従う、分類コードを使用して復号するための方法のフローチャートである。
【発明を実施するための形態】
【０００７】
分類コードを使用してソフトデータを判定するための装置及び方法が、提供される。１つの装置例は、分類コード（ＣＣ）復号器と、ＣＣ復号器に連結される外符号復号器（ＣＣ以外の１つ以上のコードに対応する）とを含むことができる。ＣＣは、最内符号であり得、低密度パリティチェック（ＬＤＰＣ）コードなどの１つ以上の外部エラー訂正コード（単数または複数）（ＥＣＣ）が存在し得る。ＣＣ復号器は、ＣＣコードワードを受信するように構成される。ＣＣコードワードは、外部ＥＣＣコードワードの一片を含む。ＣＣ復号器は、少なくとも部分的に、対応するＣＣパリティ桁、例えば、パリティビットに基づいて、外部ＥＣＣコードワードの一片に関連付けられるソフトデータを判定するように構成される。
【０００８】
本開示の種々の実施形態によれば、「分類コード」は、メモリ、例えば、フラッシュメモリからのハード読み取りから獲得されるデータに基づいて、ソフトデータを生成するために使用される。この様式で生成されるソフトデータは、反復復号器、例えば、ＬＤＰＣ復号器において使用することができる。分類コードは、単純で簡単なフォワード符号化及び復号技術と共に利用することができ、その使用は、先行アプローチと比較して、特定の反復範囲における最良の生のビットエラー率（ＲＢＥＲ）性能を提供することができる。本開示の装置及び方法の１つの利点は、ＥＣＣオーバーヘッドのごく一部のみを使用して達成することができる、メモリからのハード読み取りに基づいてソフトデータを生成するための分類コードの使用である。本開示の分類コードは、ＬＤＰＣコード、及びその復号器が任意の形態のソフト情報を利用することができる任意のＥＣＣと協調して使用することができる。
【０００９】
ＬＤＰＣコードの利点としては、シャノン容量に近い性能及び効率的／構造的ハードウェア実装を挙げることができる。ＬＤＰＣ復号器は、信頼性情報、例えば「信念」の反復交換に基づく、「信念伝播」アルゴリズムを利用する。ＬＤＰＣ復号器は、確率的な性質であり、したがって、ソフトデータを利用することができる。実際、ＬＤＰＣコードは、例えば、信頼性値などのソフトデータの存在下でのみ、シャノン容量に近い性能を達成することができる。
【００１０】
しかしながら、メモリからのソフトデータ読み取りを伴う作業は、複数の読み取りを必要とし、ハード読み取りと比較してより遅い読み取り時間をもたらし得るメモリのソフト読み取りを介したソフトデータの獲得を含むがそれらに限定されない、いくつかの課題を含む。ハード読み取りの場合、単一ビットの代わりに複数のビットが転送されるため、メモリからのソフトデータ読み取りの転送は、ハード読み取りデータの転送と比較して、より低いスループット率をもたらし得る。メモリ内の全てのページ／ブロック／ダイを含むであろうソフト読み取り位置の算出は、困難であり得る。したがって、それは、可能な限りハード読み取りモードでフラッシュデバイスを動作させるのにより効率的であり得る。
【００１１】
図１は、本開示のいくつかの実施形態に従う、不揮発性メモリアレイ１００の一部分の概略図を例解する。図１の実施形態は、ＮＡＮＤアーキテクチャの不揮発性メモリアレイ、例えば、ＮＡＮＤフラッシュを例解する。しかしながら、本明細書において説明される実施形態は、本実施例に限定されない。図１に示されるように、メモリアレイ１００は、アクセス線（例えば、ワード線１０５−１、．．．、１０５−Ｎ）、及び交差するデータ線（例えば、ローカルビット線１０７−１、１０７−２、１０７−３、．．．、１０７−Ｍ）を含む。デジタル環境におけるアドレス指定を容易にするために、ワード線１０５−１、．．．、１０５−Ｎの数、及びローカルビット線１０７−１、１０７−２、１０７−３、．．．、１０７−Ｍの数は、２のいくらかの累乗であり得る（例えば、２５６ワード線と４，０９６ビット線）。
【００１２】
メモリアレイ１００は、ＮＡＮＤストリング１０９−１、１０９−２、１０９−３、．．．、１０９−Ｍを含む。各ＮＡＮＤストリングは、不揮発性メモリセル１１１−１、．．．、１１１−Ｎを含み、各々、それぞれのワード線１０５−１、．．．、１０５−Ｎに連結される。各ＮＡＮＤストリング（及びその構成メモリセル）はまた、ローカルビット線１０７−１、１０７−２、１０７−３、．．．、１０７−Ｍと関連付けられる。各ＮＡＮＤストリング１０９−１、１０９−２、１０９−３、．．．、１０９−Ｍの不揮発性メモリセル１１１−１、．．．、１１１−Ｎは、ソース選択ゲート（ＳＧＳ）、例えば、電界効果トランジスタ（ＦＥＴ）、１１３とドレイン選択ゲート（ＳＧＤ）、例えば、ＦＥＴ、１１９との間で、直列にソース・トゥ・ドレイン接続される。各ソース選択ゲート１１３は、ソース選択線１１７上の信号に応答して、それぞれのＮＡＮＤストリングを共通のソース１２３に選択的に連結するように構成され、一方で、各ドレイン選択ゲート１１９は、ドレイン選択線１１５上の信号に応答して、それぞれのＮＡＮＤストリングをそれぞれのビット線に選択的に連結するように構成される。
【００１３】
図１に例解される実施形態に示されるように、ソース選択ゲート１１３のソースは、共通のソース線１２３に接続される。ソース選択ゲート１１３のドレインは、対応するＮＡＮＤストリング１０９−１のメモリセル１１１−１のソースに接続される。ドレイン選択ゲート１１９のドレインは、ドレインコンタクト１２１−１において、対応するＮＡＮＤストリング１０９−１のビット線１０７−１に接続される。ドレイン選択ゲート１１９のソースは、対応するＮＡＮＤストリング１０９−１の最後のメモリセル１１１−Ｎ、例えば、フローティングゲートトランジスタのドレインに接続される。
【００１４】
いくつかの実施形態では、不揮発性メモリセル１１１−１、．．．、１１１−Ｎの構造は、ソース、ドレイン、フローティングゲートなどの電荷貯蔵構造、及び制御ゲートを含む。不揮発性メモリセル１１１−１、．．．、１１１−Ｎは、それぞれ、ワード線、１０５−１、．．．、１０５−Ｎに連結されるそれらの制御ゲートを有する。不揮発性メモリセル、１１１−１、．．．、１１１−Ｎの「列」は、ＮＡＮＤストリング１０９−１、１０９−２、１０９−３、．．．、１０９−Ｍを作成し、それぞれ、所与のローカルビット線１０７−１、１０７−２、１０７−３、．．．、１０７−Ｍに連結される。不揮発性メモリセルの「行」は、所与のワード線１０５−１、．．．、１０５−Ｎに共通して連結されるメモリセルである。用語「列」及び「行」の使用は、不揮発性メモリセルの特定の線形、例えば、垂直及び／または水平の配向を示唆することを意味されない。ＮＯＲアレイアーキテクチャは、メモリセルのストリングが選択されたゲート間で並列に連結されることを除き、同様に配列することができる。
【００１５】
選択されたワード線、例えば、１０５−１、．．．、１０５−Ｎに連結されるセルのサブセットは、メモリセルのページとして、一緒にプログラムする及び／または読み取ることができる。プログラム動作、例えば、書き込み動作は、その選択されたアクセス線に連結される選択されたセルの閾値電圧（Ｖｔ）を、標的の、例えば、所望の状態、例えば、電荷貯蔵状態に対応する所望のプログラム電圧レベルまで増加させるために、多数のプログラムパルス、例えば、１６Ｖ〜２０Ｖを、選択されたワード線に印加することを含むことができる。
【００１６】
読み取り動作（本明細書において使用するとき、「読み取り」動作は、プログラム検証動作を指すことができる）は、選択されたセルのデータ値を判定するために、選択されたセルに連結されたビット線の電圧及び／または電流の変化を感知することを含むことができる。読み取り動作は、ビット線を予め帯電させること、及び選択されたセルが導通し始めるときに放電を感知することを含むことができる。本明細書において使用するとき、感知することは、読み取ることに含まれる行為である。
【００１７】
選択されたセルの状態を判定する、例えば、感知することは、選択されたワード線に多数の感知信号、例えば、読み取り電圧を提供しつつ、選択されていないセルの閾値電圧とは独立して、選択されていないセルを導通状態に定置するのに十分なストリングの選択されていないセルに連結されるワード線に、多数の電圧、例えば、読み取りパス電圧を提供することを含むことができる。読み取り及び／または検証されている選択されたセルに対応するビット線は、選択されたワード線に印加される特定の感知信号に応答して、選択されたセルが導通するかどうかを判定するように感知することができる。例えば、選択されたセルの状態は、ビット線電流が、特定の状態に関連付けられる特定の参照電流に達する、ワード線電圧によって判定することができる。
【００１８】
ＮＡＮＤストリング内の選択されたメモリセル上で実施される感知動作において、ストリングの選択されていないメモリセルは、導通状態であるようにバイアスされる。かかる感知動作においては、選択されたセルの状態は、ストリングに対応するビット線上で感知される電流及び／または電圧に基づいて、判定することができる。例えば、選択されたセルの状態は、所与の期間中にビット線電流が特定の量だけ変化するか、または特定のレベルに達するかどうかに基づいて、判定することができる。
【００１９】
例として、図１に示されるアレイ１００などのアレイのメモリセルは、シングルレベル（メモリ）セル（ＳＬＣ）またはマルチレベル（メモリ）セル（ＭＬＣ）であり得る。ＳＬＣは、単一ビット、例えば、２つの状態メモリセルであり得る。すなわち、セルは、２つの状態、例えば、Ｐ０及びＰ１のうちの１つに、それぞれプログラムすることができる。動作中、選択されたブロック内などの多数のメモリセルは、Ｐ０かまたはＰ１のいずれかに対応するＶｔレベルを有するようにプログラムすることができる。例として、状態Ｐ０は、バイナリ「１」などの記憶されたデータ値を表すことができる。状態Ｐ１は、バイナリ「０」などの記憶されたデータ値を表すことができる。
【００２０】
ＭＬＣは、２ビット、例えば、４つの状態のメモリセルであることができ、または、１メモリセル当たりデータの小数部のビットを含む、１メモリセル当たり２つを超えるビットのデータを記憶することができる。例えば、２ビットメモリセルは、４つの状態、例えば、Ｐ０、Ｐ１、Ｐ２、及びＰ３のうちの１つに、それぞれプログラムすることができる。動作中、選択されたブロック内などの多数のメモリセルは、Ｐ０、Ｐ１、Ｐ２、またはＰ３のいずれかに対応するＶｔレベルを有するようにプログラムすることができる。例として、状態Ｐ０は、バイナリ「１１」などの記憶されたデータ値を表すことができる。状態Ｐ１は、バイナリ「１０」などの記憶されたデータ値を表すことができる。状態Ｐ２は、バイナリ「００」などの記憶されたデータ値を表すことができる。状態Ｐ３は、バイナリ「０１」などの記憶されたデータ値を表すことができる。しかしながら、実施形態は、これらの例に限定されない。
【００２１】
図２は、本開示のいくつかの実施形態に従う、少なくとも１つのメモリシステム２３４を含む計算システム２３０の形態の装置のブロック図である。本明細書において使用するとき、メモリシステム２３４、コントローラ２３８、またはメモリデバイス２３９も、別々に「装置」であると見なされることがある。メモリシステム２３４は、例えば、固体状態ドライブ（ＳＳＤ）であることができ、ホストインターフェース２３６と、コントローラ２３８、例えば、プロセッサ及び／または他の制御回路と、多数のメモリデバイス２３９−１、．．．、２３９−Ｍ、例えば、ＮＡＮＤフラッシュデバイスなどの、メモリシステム２３４のための記憶容量を提供する固体状態メモリデバイスとを含むことができる。いくつかの実施形態では、コントローラ２３８、メモリデバイス２３９−１〜２３９−Ｍ、及び／またはホストインターフェース２３６は、単一のダイ上にか、または単一のパッケージ、例えば、管理されたＮＡＮＤアプリケーション内に物理的に位置付けることができる。また、いくつかの実施形態では、メモリ、例えば、メモリデバイス２３９−１〜２３９−Ｍは、単一のメモリデバイスを含むことができる。
【００２２】
図２に例解されるように、コントローラ２３４は、１つ以上のチャネルを介してホストインターフェース２３６及びメモリデバイス２３９−１、．．．、２３９−Ｍに連結され得、メモリシステム２３４及びホスト２３２の間でデータを転送するために使用され得る。インターフェース２３６は、標準インターフェースの形態であり得る。例えば、メモリシステム２３４が計算システム２３０内のデータ記憶のために使用されるとき、インターフェース２３６は、他のコネクタ及びインターフェースの中でもとりわけ、シリアルアドバンスドテクノロジーアタッチメント（ＳＡＴＡ）、周辺構成要素相互接続エクスプレス（ＰＣＩｅ）、またはユニバーサルシリアルバス（ＵＳＢ）であり得る。しかしながら、概して、インターフェース２３６は、メモリシステム２３４とホストインターフェース２３６のための互換性のあるレセプタを有するホスト２３２との間で、制御、アドレス、データ、及び他の信号を渡すためのインターフェースを提供することができる。
【００２３】
ホスト２３２は、種々の他の種類のホストの中でもとりわけ、パーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、携帯電話、またはメモリカードリーダーなどのホストシステムであり得る。ホスト２３２は、システムマザーボード及び／またはバックプレーンを含むことができ、多数のメモリアクセスデバイス、例えば、多数のプロセッサを含むことができる。ホスト２３２は、通信チャネル２３３によってホストインターフェース２３６に連結され得る。
【００２４】
コントローラ２３８は、他の動作の中でもとりわけ、データ読み取り、書き込み、及び消去動作を制御するために、メモリデバイス２３９−１、．．．、２３９−Ｍと通信することができる。コントローラ２３８は、例えば、いくつかのメモリデバイス２３９−１、．．．、２３９−Ｍへのアクセスを制御するため、及び／もしくはホスト２３２とメモリデバイス２３９−１、．．．、２３９−Ｍとの間のデータ転送を促進するためのハードウェア、ならびに／またはファームウェア、例えば、１つ以上の集積回路、ならびに／またはソフトウェアの形態の多数の構成要素を含むことができる。例えば、図２に例解される例では、コントローラ２３８は、ソフトデータ構成要素２４２及びエラーコード／復号構成要素２４４を含むことができる。しかしながら、コントローラ２３８は、本開示の実施形態を曖昧にしないために例解されていない、種々の他の構成要素を含むことができる。また、構成要素２４２及び／または２４４は、いくつかの実施形態では、コントローラ２３８の構成要素でなくてもよく、例えば、構成要素２４２及び／または２４４は、独立した構成要素であり得る。
【００２５】
ソフトデータ構成要素２４２は、ソフトデータを判定する、例えば、参照するために使用することができる。例えば、ソフトデータ構成要素２４２は、ハード読み取りからソフトデータを判定するために使用することができる。エラーコード／復号構成要素２４４は、例えば、ＢＣＨ符号器／復号器、ＬＤＰＣ符号器／復号器、分類コード符号器／復号器、及び／または他の種類の符号器／復号器であり得、ホスト２３２とメモリデバイス２３９−１、．．．、２３９−Ｍ間で転送されるユーザデータを符号化／復号することができる。ソフトデータ構成要素２４２は、エラーコード／復号構成要素２４４に連結されて、例えば、それにソフトデータを提供することができる。それに加えて、エラーコード／復号構成要素２４４の復号器は、ソフトデータを別のエラーコード／復号構成要素２４４の復号器に提供することができる。
【００２６】
メモリデバイス２３９−１、．．．、２３９−Ｍは、メモリセルの多数のアレイ、例えば、図１に示されるアレイ１００などのアレイを含むことができる。アレイは、例えば、ＮＡＮＤアーキテクチャを有するフラッシュアレイであり得る。しかしながら、実施形態は、特定の種類のメモリアレイまたはアレイアーキテクチャに限定されない。メモリセルは、例えば、多数の物理的ページを含む多数のブロックにグループ化することができる。多数のブロックは、メモリセルのプレーン内に含まれ得、アレイは、多数のプレーンを含むことができる。
【００２７】
図３は、本開示のいくつかの実施形態に従う、コントローラ３３８の形態の装置の機能ブロック図である。コントローラ３３８は、メモリ３３９に連結され得、コントローラ３３８は、ＥＣＣ符号化／復号構成要素３４４を含むことができる。コントローラ３３８は、図２の計算システム２３０の一部として示されるコントローラ２３８と同等のものであり得る。本開示の装置及び方法は、計算システムに関して、またより具体的には、メモリからのデータ読み取りの復号に関して例解されているが、本開示の実施形態はそのように限定されるものではなく、通信チャネル２３３を通じて伝送されるデータの復号などの他の様式で実装することもできる。
【００２８】
メモリ３３９は、非一時的媒体であり、メモリセル、例えば、不揮発性メモリセルの多数のアレイを含むことができる。アレイは、例えば、図１に示されるアレイ１００などのＮＡＮＤアーキテクチャを有するフラッシュアレイであり得る。しかしながら、本開示の実施形態は、特定の種類のメモリアレイまたはアレイアーキテクチャに限定されない。本開示の方法及び装置はまた、他のメモリセル、例えば、典型的にはＤＲＡＭ、ＰＣＲＡＭ、及び／またはＲＲＡＭメモリに使用されるメモリセルなどと共に使用または実装することもできる。
【００２９】
コントローラ３３８は、メモリ３３９と通信して、動作する、例えば、メモリセルを読み取る、書き込む、動かす、プログラムする、感知する、消去することができる。したがって、コントローラ３３８は、メモリ３３９との通信、及びメモリ３３９内に記憶されたデータを管理することができる。コントローラ３３８は、多数の集積回路を利用する回路、及び他の別個の構成要素を有することができる。いくつかの実施形態では、コントローラ３３８は、ホストインターフェース１０８、及び／またはメモリデバイス３３９を含む、プリント基板に連結される特定用途向け集積回路（ＡＳＩＣ）であり得る。メモリ３３９及び／またはコントローラ３３８は、本開示の実施形態を曖昧にしないために例解されていない、追加の回路を含むことができる。本明細書において使用するとき、コントローラ３３８及び／またはメモリ３３９はまた、別々に実装される、及び／または「装置」と見なされてもよい。
【００３０】
ＥＣＣ符号化／復号構成要素３４４は、メモリ３３９に伝送されている、及び／またはメモリ３３９から受信されているデータを符号化及び復号するために構成される論理を含むことができる。データの符号化及び／または復号は、ハードウェア及び／またはソフトウェアにおいて達成することができる。例えば、ＥＣＣ符号化／復号構成要素３４４は、入力時に符号化されていないデータを受信し、出力時に符号化されたデータを提供することができる。
【００３１】
図３に例解されるように、ＥＣＣ符号化／復号構成要素３４４は、多数の種々の種類のエラーコード／復号構成要素、例えば、特定のＥＣＣエンジンを実装する符号器／復号器を含むことができる。エラー符号化構成要素は、メモリ３３９に書き込む、例えば、記憶するための、例えば、ホスト、例えば、図２に示される２３２から受信されたデータ、例えば、ユーザデータを、符号化するように構成することができる。代替的な実施形態（単数または複数）によると、種々の種類のエラーコード／復号構成要素は、ＥＣＣ符号化／復号構成要素３４４の構成要素としてよりもむしろ、コントローラ３３８の構成要素として実装することができる。
【００３２】
いくつかの実施形態によると、ＥＣＣ符号化／復号構成要素３４４は、多数の符号化部分（単数または複数）及び／または復号部分（単数または複数）を含むことができる。例えば、ＥＣＣ符号化／復号構成要素３４４は、１つ以上の外符号符号器（単数または複数）、例えば、ＬＤＰＣ符号器３４８、１つ以上の外符号復号器、例えば、ＬＤＰＣ復号器３５４などの反復復号器、ＣＣ符号器３５０、及びＣＣ復号器３５２を含むことができる。ＥＣＣ符号化／復号構成要素３４４はまた、例えば、任意追加的なボーズ・チョドーリ・オッケンジェム（ＢＣＨ）符号器３４６及びＢＣＨ復号器３５６を含むこともできる。任意追加的なＢＣＨ符号器３４６及びＢＣＨ復号器３５６は、１つ以上の中間コード符号器、例えば、ＬＤＰＣ符号器３４８、及び１つ以上の中間コード復号器、例えば、ＬＤＰＣ復号器３５４などの反復復号器が存在するように、最外符号符号器及び復号器として実装することができる。任意追加的なＢＣＨ符号器３４６及びＢＣＨ復号器３５６は、別々の構成要素として実装することができ、またはＢＣＨ符号器／復号器３４７として実装することができる。ＬＤＰＣ符号器３４８及びＬＤＰＣ復号器３５４は、別々の構成要素として実装することができ、または符号器／反復復号器３４９の構成要素として実装してもよい。ＣＣ符号器３５０及び／またはＣＣ復号器３５２は、別々の構成要素として実装することができ、またはＣＣ符号器／復号器３５１の構成要素として実装してもよい。本開示の実施形態は、上に記載した特定の量及び／または種類のコード符号器／復号器セットに限定されるものではなく、追加の符号器／復号器、及び／または上述のもの以外の異なる種類もしくは順序の符号化／復号を含むことができる。
【００３３】
本開示の種々の実施形態によると、ＣＣ復号器３５２は、コントローラの構成要素として、またはプロセッサ、マイクロプロセッサ、システムオンチップ、特定用途向け集積回路，ハードウェア論理、もしくは開示される機能性の全部または一部を提供する１つ以上の集積回路上での包含に好適な他の回路を介して、ハードウェア内に実装することができる。種々の実施形態では、ＣＣ復号器３５２は、フィールドもしくはマスクプログラム可能ゲートアレイ集積回路などのプログラム可能技術、完全にもしくは部分的にセルベースの集積回路などのセミカスタム技術、特殊集積回路などの技術、それらの組合せ、または集積回路の設計及び／もしくは製造に適合する別の技術を含む種々の技術に従って、設計可能及び／もしくは製造可能であり得る。
【００３４】
ユーザデータは、まず任意追加的なＢＣＨ符号器３４６を使用して符号化することができ、それは、ＬＤＰＣ符号器３４８を使用してさらに符号化することができ、それは、ＣＣ符号器３５０を使用してさらに符号化することができる。したがって、ＬＤＰＣコードは、ＢＣＨコードに対する内符号であり、ＣＣは、ＬＤＰＣコードに対する内符号である。種々の実施形態によると、ＢＣＨ符号器３４６及び／またはＢＣＨ復号器３５６は、点線によって図３に示されるように、所望により省略することができる。
【００３５】
本開示の種々の実施形態によると、ＥＣＣ符号化／復号構成要素３４４は、全ＬＤＰＣ  ＥＣＣスキーム、または内部ＬＤＰＣコードと外部ＢＣＨコードとを有する連接されたＥＣＣスキームを選択的に実装することができる。連接されたＥＣＣスキームにおいては、ＬＤＰＣ復号器は、例えば、１または２反復、走ることができる。１または２反復後の残りのエラーは、例えば、外部ＢＣＨコードを実装する構成要素（単数または複数）によって訂正することができる。
【００３６】
高精度ＬＤＰＣ復号器は、ＬＤＰＣ復号器が所望の量の反復に制御され得るように、使用することができる。全ＬＤＰＣ  ＥＣＣスキームは、それが必要なだけ多くの反復を走ることができるならば、特定の用途に関するハード及びソフトモードの双方において、連接されたＥＣＣスキーム、例えば、外／内符号とのＬＤＰＣコードの連接と比較してより高いＲＢＥＲ性能を支持することができる。全ＬＤＰＣ  ＥＣＣスキームは、ＬＤＰＣ復号器反復の数及び利用可能なハードウェアリソースに応じて、多様なスループット率を提供することができる。しかしながら、全ＬＤＰＣ  ＥＣＣスキームは、連接されたＥＣＣスキームと比較して、同一のＲＢＥＲ性能に達するためにより多くの復号器反復を必要とする可能性があり、より複雑なＥＣＣ復号構成要素、例えば、ＬＤＰＣ復号器３５４を利用する。より高い復号器の反復は、より高い復号器電力に変わる。
【００３７】
例えば、１または２反復を実装するＬＤＰＣ復号器を伴う連接されたＥＣＣスキームは、相対的により複雑でないＥＣＣ符号化／復号構成要素３４４と共に実装することができ、より少ない反復を必要とすることができ、全ＬＤＰＣ  ＥＣＣスキームより少ない電力を使用することができ、（いくつかの用途に関して）持続したスループットを提供することができる。しかしながら、連接されたＥＣＣスキームは、例えば、フラッシュメモリにおけるサイクリング及び保持効果の後、ＲＢＥＲの寿命の最後に対応するＲＢＥＲ領域において、全ＬＤＰＣ  ＥＣＣスキームと比較して同程度に高いＲＢＥＲ性能を提供しない。
【００３８】
いくつかの実施形態によると、１または２反復のＬＤＰＣ復号器に限定される用途、例えば、電力及びハードウェアの制約に関しては、連接されたＥＣＣスキームは、全ＬＤＰＣ  ＥＣＣスキームより良好に機能し、１または２反復のＬＤＰＣ復号器に限定されない用途に関しては、全ＬＤＰＣ  ＥＣＣスキームは、連接されたＥＣＣスキームより良好に機能する。
【００３９】
本開示の種々の実施形態によると、メモリのハード読み取りに基づいて判定されるソフトデータが、ＬＤＰＣ復号器に提供される。ハード読み取りモードにおける全ＬＤＰＣ  ＥＣＣスキーム及び連接されたＥＣＣスキームは、どちらもより遅い復号器収束を抱え、それは、より高い数の復号器反復へと変わる。所与のＲＢＥＲに関して、ＬＤＰＣ復号器の平均反復数は、ソフトデータの存在下ではより少なくなるであろう。ソフトデータは、ＬＤＰＣ復号器が、高い信頼性を有すると判定された、例えば、ビットなどのデータ桁と、低い信頼性を有すると判定されたデータ桁とを区別することを可能にすることができ、これは、ＬＤＰＣ復号器の確率的性質のため、低い信頼性を有すると判定されたデータ桁のより速い訂正に転じることができる。信頼性のあるデータ桁と信頼性のないデータ桁とを区別するソフトデータを使用するＬＤＰＣ復号器は、より良好なＲＢＥＲ性能、及びより速いＬＤＰＣ復号器収束、例えば、より少ない平均数のＬＤＰＣ復号器反復を提供することができる。
【００４０】
本開示の種々の実施形態によると、ＥＣＣオーバーヘッドの一部分は、ＣＣパリティ桁を含む「分類コード」（ＣＣ）のために使用される。ＣＣパリティ桁は、メモリからのハード読み取りによって獲得されるデータに基づいてソフトデータを生成するために、使用することができる。生成されたソフトデータは、ＬＤＰＣ復号器性能を改善するために、ＬＤＰＣ復号器において使用することができる。いくつかの実施形態によると、ソフトデータの品質、例えば、粒度は、分類コードに割り当てられるＥＣＣオーバーヘッドバジェットの量に基づくことができる。粗いソフトデータでさえも、特定の反復数におけるＬＤＰＣ復号器からの改善されたＲＢＥＲ結果につながることができる。したがって、本開示のＣＣは、ＬＤＰＣ復号器結果を達成するために、改善された相対的に小さいＥＣＣオーバーヘッドを使用して実装することができる。
【００４１】
本開示の種々の実施形態によると（及び、図３を参照すると）、書き込みパスにおいて、ＣＣ符号器３５０は、ＬＤＰＣ符号器３４８によって提供されるＬＤＰＣコードワード、例えば、ＬＤＰＣ符号化されたシーケンスを受信することができる。ＬＤＰＣコードワードは、ＣＣコードワードに関するユーザデータに対応する、特定の数のより小さい片に分割することができる。ＣＣ符号器３５０は、ＬＤＰＣ符号化シーケンスの各片にＣＣパリティ桁を追加することができる。付加されたＣＣパリティ桁を有するＬＤＰＣコードワードの一片は、ＣＣコードワードである。単一のＬＤＰＣコードワード内には、複数のＣＣコードワードが存在し得る。ＬＤＰＣコードワードに対応するＣＣコードワードは、ＣＣ符号化されたシーケンスである。換言すれば、ＣＣ符号化されたシーケンスは、多数のＣＣコードワードを含むことができ、各ＣＣコードワードは、図４に関してさらに説明されるように、ＬＤＰＣコードワードの一片から形成される。
【００４２】
ＣＣ符号器３５０出力、例えば、ＣＣコードワード（単数または複数）は、メモリ３３９に書き込むことができる。換言すれば、ＣＣコードは、ＬＤＰＣコードに対する内符号である。下により詳細に述べるように、ＣＣ符号化は、ＣＣ符号器３５２が、ＬＤＰＣコードワードの片に付加され得る多数のＣＣパリティ桁を含むＣＣコードワードを生成するように、系統的であり得る。本明細書において使用するとき、「コードワード」は、例えば、ユーザデータ、例えば、入力データとそれぞれのコードのパリティ桁とを含むことができる、データ桁のシーケンスを指す。
【００４３】
復号パスにおいて、ＣＣ復号器３５２は、ハード読み取りによってメモリ３３９から獲得されるデータなどのデータを受信することができる。ＣＣ復号器３５２によって受信されるデータは、多数のＣＣコードワードを含むＣＣ符号化されたシーケンスであり得る。ＣＣ復号器３５２によって受信されるＣＣ符号化されたシーケンスは、桁エラーが生じているか否かに応じて、メモリ３３９に記憶されたＣＣ符号化されたシーケンスと同一であってもよく、または同一でなくてもよい。すなわち、ＣＣ復号器３５２によって受信されるＣＣコードワードは、１つ以上の桁における起こり得るエラーのため、メモリ３３９に書き込まれた対応するＣＣコードワードと同一であってもよく、または同一でなくてもよい。
【００４４】
ＣＣ復号器３５２は、ＣＣ制約に関連付けられる能力に基づいて、ＬＤＰＣコードワードのそれぞれの片に関連付けられるソフトデータを生成することができる。ＬＤＰＣコードワードの片及び関連付けられるソフトデータは、ＬＤＰＣ復号器３５４に提供され得る。種々の実施形態によると、ＣＣ復号器３５２は、例えば、（メモリから受信されるＣＣコードワードの）ＬＤＰＣコードワード片に対して、いかなる訂正も行わない。すなわち、ＣＣ復号器３５２の出力におけるＲＢＥＲは、メモリからのＲＢＥＲと同じである。
【００４５】
いくつかの実施形態によると、ＬＤＰＣ符号器３４８は、ユーザデータを入力として受信し、ＬＤＰＣコードワードをＣＣ符号器３５０に出力することができる。所望により、ＢＣＨ符号器３４６は、ユーザデータを入力として受信し、ＢＣＨコードワードをＬＤＰＣ符号器３４８に、例えば、ＬＤＰＣ符号器３４８に対する入力として、出力することができる。ＬＤＰＣ符号器３４８は、ＢＣＨコードワードを受信し、それからＬＤＰＣコードワードを生成することができる。したがって、ＬＤＰＣコードは、ＢＣＨコードに対する内符号である。
【００４６】
いくつかの実施形態によると、ＬＤＰＣ復号器３５４は、ＬＤＰＣコードワードとＬＤＰＣコードワードの各片に関連付けられるソフトデータとを含む１つ以上の片をＣＣ復号器３５２から受信し、ＬＤＰＣコードワード及びソフトデータから判定されるユーザデータを出力することができる。ＬＤＰＣコードワードに対応する複数のＣＣコードワードに関連付けられるソフトデータは、一緒にグループ化され、ＬＤＰＣ復号器３５４に渡されることができ、該ＬＤＰＣ復号器３５４は、集約されたソフトデータを使用してＬＤＰＣコードワードを復号する。
【００４７】
所望により、ＬＤＰＣ復号器３５４は、ＬＤＰＣコードワードとＬＤＰＣコードワードのそれぞれの片に関連付けられるソフトデータとを含む１つ以上の片をＣＣ復号器３５２から受信し、ＢＣＨコードワードをＢＣＨ復号器３５６に出力することができる。ＢＣＨ復号器３５６は、ＢＣＨコードワードを入力として受信し、ユーザデータを出力することができる。いくつかの実施形態によると、ＬＤＰＣ復号器３５４は、下にさらに述べられるように、フィードバックパス３５８を介して信頼性データをＣＣ復号器３５２に提供することができる。
【００４８】
種々の実施形態によると、ＣＣ復号器３５２は、それぞれの信頼性値を、ＬＤＰＣコードワードの一片の種々の部分に、例えば、ＬＤＰＣコードワードのそれぞれの片の桁（単数または複数）に関連付けるように構成することができる。信頼性値は、例えば、対数尤度比（ＬＬＲ）であり得る。ＣＣ復号器３５２は、ＬＤＰＣコードワードの一片の一部分に関する信頼性値を、（ＬＤＰＣコードワードの一片と併せて）ＬＤＰＣ復号器に提供するように構成される。種々の実施形態によると、信頼性値は、３つの値：不確実な信頼性に対応する１つの値、強い信頼性に対応する別の値、及び弱い信頼性に対応する第３の値のうちの１つであり得る。いくつかの実施形態によると、信頼性値は、少なくとも部分的に、特定の桁に関連付けられる他のソフトデータに基づいて、上述の３つの値のうちの１つからさらに調整することができる。
【００４９】
図４は、本開示のいくつかの実施形態に従う、ＣＣ符号化されたシーケンス例を例解する図である。ＣＣ符号化されたシーケンス４６０は、ＬＤＰＣコードワードから、多数のＣＣパリティ桁４６９をその中に挿入することによって形成され、各ＣＣコードワード４６８は、ＬＤＰＣコードワード４６７の一片及び関連付けられるＣＣパリティ桁４６９から形成される。ＬＤＰＣコードワードは、ユーザデータ４６２、ＬＤＰＣパリティ桁４６６、及び／または任意追加的なＢＣＨパリティ桁４６４を含むことができる。したがって、ＣＣ符号化されたシーケンス４６０は、ユーザデータ４６２、ユーザデータ桁４６２、ＬＤＰＣパリティ桁４６６、任意追加的なＢＣＨパリティ桁４６４、及びＣＣパリティ桁４６９を含むことができる。したがって、ＣＣ符号化されたシーケンス４６０は、連接されたコードワードである。いくつかの実施形態によると、ＣＣ符号化されたシーケンス４６０は、多数のＣＣコードワード４６８を含み、各ＣＣコードワード４６８は、ＬＤＰＣコードワード４６７の一片、及びＬＤＰＣコードワード４６７の一片に関連付けられるＣＣパリティ桁４６９から成る。
【００５０】
例として、ＣＣ符号化されたシーケンス４６０は、多数のＣＣパリティ桁４６９と併せて、ＬＤＰＣコードワードから成り得る。ＬＤＰＣコードワードは、例えば、１６，０００の桁、例えば、ビットのサイズを有することができる。したがって、この例では、ＣＣ符号化されたシーケンス４６０は１６，０００桁のＬＤＰＣコードワードに加えて多数のＣＣパリティ桁４６９を含むため、ＣＣ符号化されたシーケンス４６０のサイズは、１６，０００桁より大きい。ＬＤＰＣコードユーザデータは、任意追加的なＢＣＨコードパリティビットに加えて、ホストからのユーザデータから成る。
【００５１】
ＣＣ符号化されたシーケンス４６０は、多数のＣＣコードワード４６８から成り得る。図４は、１００個のＣＣコードワード４６８を含むＣＣ符号化されたシーケンス４６０を示す。ＣＣコードワード４６８のＬＤＰＣコードワード４６７の一片は、多数の部分４７０、例えば、「チャンク」を含むことができる。ＣＣパリティ桁４６９は、多数の部分４７０に付加され得る。図４は、８個の部分４７０を有するＣＣコードワード４６８を示す。すなわち、ＣＣコードワードが構成されるＬＤＰＣコードワード４６７の一片は、複数の部分を含むことができる。
【００５２】
ＬＤＰＣコードワード例のサイズが１６，０００桁であると仮定すると、各部分４７０はしたがって、２０桁から成り、各ＣＣコードワード４６８は、８×２０＝１６０桁を有するＬＤＰＣコードワード４６７の一片と、それに付加されるＣＣパリティ桁４６９（量は、ＣＣコード比率に依存する）とを含む。しかしながら、ＬＤＰＣコードワード４６７の一片、ＣＣコードワード４６８、ＣＣパリティ桁４６９、及び／または部分４７０は、この例に説明される桁の量に限定されず、各々、この例に説明されるものより多いまたは少ない桁から成ってもよい。各部分４７０、例えば、この例では２０ビットは、ＬＤＰＣコードワード４６０の一片の一部分であり、各部分４７０はまた、Ｃ１コードワードである（下にさらに述べられる）。
【００５３】
本開示の種々の実施形態によると、ＣＣは、代数コード（「Ｃ１」）及びバイナリ代数コード（「Ｃ２」）のテンソル積である。Ｃ１は、任意の検出コードであり得る。種々の実施形態によると、Ｃ１は、各Ｃ１コードワードに対応するパリティチェックコード、例えば、各Ｃ１コードワードに対応する一桁パリティチェックコードから成る。例えば、Ｃ１桁は、「１」に設定して、Ｃ１コードワードの桁に関する偶数または奇数パリティのうちの１つを示すことができる。いくつかの実施形態によると、Ｃ１は、部分４７０の全ての桁の加算のうちの最下位桁として計算することができる。ＣＣコードワード４６８のＬＤＰＣコードワード４６７の一片が８個の部分を含むと仮定すると、各チャンクに関して計算されるＣ１と併せて、８桁のベクトルが得られる。したがって、Ｃ１は、ＬＤＰＣコードワード４６７の一片の一部分、例えば、部分４７０内の奇数の桁エラーを検出するために使用することができる。逆に、Ｃ１は、ＬＤＰＣコードワード４６０の一片の一部分内、例えば、部分４７０内の偶数の桁エラーを検出するためには使用することができない。
【００５４】
Ｃ２は、任意の訂正コードであり得る。例えば、Ｃ２は、ハミングコードなどのバイナリ代数コードであり得る。しかしながら、Ｃ２は、ハミングコード実装に限定されない。Ｃ２は、「ｔ」エラーを識別する、及び「ｔ＋１」エラーを検出するために使用することができる。すなわち、Ｃ２は、エラーであるＣＣコードワード４６８の「ｔ」部分４７０を直接識別するために使用することができ、ＣＣコードワード４６８の「ｔ＋１」部分４７０がエラーであるかを検出するために使用することができる（しかし、どの部分４７０がエラーであるかを識別することができない）。「ｔ＋１」を超えるエラーが存在する場合、ＣＣコードは、エラーである部分４７０を正確に検出することができない。この場合、部分４７０は、エラーである、及び／またはエラーでないとして誤認される可能性がある。その結果、一部のビットは、（下にさらに述べるように）不適切な信頼性値に割り当てられる場合がある。
【００５５】
Ｃ１及びＣ２のテンソル積は、例によってさらに例解することができる。Ｃ１が比率４／５の単一パリティコードであると仮定すると、Ｃ２は、比率４／７のハミングコードである。Ｃ１、Ｃ２、及びＨ（Ｃ１）とＨ（Ｃ２）とのテンソル積のパリティチェックマトリックスは、以下に与えられる：
【数１】
2016509420.tif 000003
Ｈ（Ｃ１）は、１×５マトリックスであり、Ｈ（Ｃ２）は、３×７マトリックスであり、結果として得られるＨ（ＴＰＣ）は、３×３５マトリックスである。したがって、結果として得られるコード比率は、３２／３５である。
【００５６】
テンソル積を決定するために、Ｈ（Ｃ１）を、例えば、マトリックス乗算によって、Ｈ（Ｃ２）の各入力によって乗じる。例えば、Ｈ（ＴＰＣ）の第１の行の初めの５入力は、Ｈ（Ｃ１）をＨ（Ｃ２）で乗じることによって計算され、例えば、（１，１）は１である。同様に、Ｈ（ＴＰＣ）の第２の行の最後の５ビットは、例えば、Ｈ（Ｃ１）をＨ（Ｃ２）で乗じることによって計算され、（２，７）＝０である。Ｃ１（検出コード）及びＣ２（訂正コード）のテンソル積に基づく結果として得られるコードは、「検出コード」である。
【００５７】
ＣＣ符号器、例えば、図３の３５０は、ＣＣコードワード４６８を生成し、これは、メモリ、例えば、図３の３３９に書き込まれる。ＣＣは、系統的なコードである。したがって、符号化は、ＣＣ４６９のパリティ桁の生成に関与する。これは、バイナリ加算に関与する線形の動作である。ＣＣが最内符号であるとすると、ＣＣ符号器、例えば、図３の３５０への入力は、ＬＤＰＣコードワード、例えば、ＬＤＰＣ符号化されたビットシーケンスである。ＣＣ符号器は、この入力シーケンスを取得し、ＣＣパリティ桁をそこへ付加する。結果として得られるＣＣコードワードはその後、例えば、図２に示される２３８などのコントローラによって、メモリに書き込まれる。
【００５８】
以下の考察は、ＣＣコードワードの生成を例解する例である。この例に関するコード比率は３２／３５であり、したがって各々３２ビットのＣＣ符号器へのデータ入力が、３５ビットのＣＣコードワードにマッピングされ、これは、３個のパリティ桁を含む。以下の例において、３２ビットのＣＣ符号器への入力は、以下のように仮定される：
Ｕ＝［Ｕ１  Ｕ２…Ｕ３２］。次に、ＣＣコードワード（付加されたＣＣの３個のパリティ桁を伴う）は以下の形態である：
【表１】
2016509420.tif 000004
Ｐ１、Ｐ２、及びＰ３は、パリティ桁である。ｉ番目の「ファントムシンドローム」は、例えば、バイナリ加算を使用して、例えば、ｉ番目の列中の５ビットを加算することによって、計算することができる。用語Ｓ１、Ｓ２、Ｓ３、及びＳ４は、数として計算することができる。用語Ｓ５、Ｓ６、及びＳ７は、Ｐ１、Ｐ２、及びＰ３を含む。結果として得られるシンドローム（ベクトル）［Ｓ１  Ｓ２…Ｓ７］は、使用した４／７ハミングコードに関する有効なコードワードである。ファントムシンドロームをハミングコードのパリティチェックマトリックスで乗じることによって、Ｓ５、Ｓ６、及びＳ７は、Ｓ１、Ｓ２、Ｓ３、及び  Ｓ４から以下のように決定することができる（全ての加算はバイナリである）：
Ｓ５＝Ｓ１＋Ｓ２＋Ｓ３、
Ｓ６＝Ｓ１＋Ｓ２＋Ｓ４、
Ｓ７＝Ｓ１＋Ｓ３＋Ｓ４、また
次に、Ｓ５、Ｓ６、及びＳ７を使用して、Ｐ１、Ｐ２、及びＰ３を以下のように得ることができる：
Ｐ１＝Ｓ５＋Ｕ２１＋Ｕ２２＋Ｕ２３＋Ｕ２４、
Ｐ２＝Ｓ６＋Ｕ２５＋Ｕ２６＋Ｕ２７＋Ｕ２８、
Ｐ３＝Ｓ７＋Ｕ２９＋Ｕ３０＋Ｕ３１＋Ｕ３２。
シンドローム（ベクトル）［Ｓ１  Ｓ２…Ｓ７］は、Ｃ２のパリティチェックマトリックス、例えば、ハミングコードパリティチェックマトリックスによって乗じることができ、これは、先に述べたようにエラーである部分４７０を検出または識別するために使用することができる別のシンドロームをもたらす。
【００５９】
図５は、本開示のいくつかの実施形態に従う、分類コードを復号するための方法のフローチャートである。ＣＣ復号器への入力は、例えば、ハード読み取り５７１などによる、例えば、メモリから読み取られたデータであり得る。一度に読み取られるデータの量は、例えば、データのページに対応することができる。ＣＣ復号器、例えば、図３の３５２は、多数のＣＣコードワードを含むように、受信されたＣＣ符号化されたシーケンスのＣＣコードワード、例えば、ＬＤＰＣコードワード上で動作することができる。ＣＣ符号化されたシーケンスを含むデータは、複数のＣＣコードワードを含むことができる。所与のＬＤＰＣコードワード中のＣＣコードワードの正確な数は、ＣＣ及びＬＤＰＣコードコードワードサイズに依存する。
【００６０】
この例では、各ＣＣコードワードに関して、復号するステップは、以下の通りである。ＣＣシンドロームは、５７２に示されるように、受信されたＣＣコードワードを、分類コードのパリティチェックマトリックスによって乗じることによって計算される。多数の部分が、５７３に示されるように、エラーであってもよい。エラーである部分の量に応じて、異なる結果が生じることになる。すなわち、結果は、エラーであるｔ以下の部分が存在するか、エラーであるｔ＋１の部分が存在するか、またはエラーであるｔ＋１超、例えば、ｔ＋２以上の部分が存在するかに応じて異なる。
【００６１】
受信されたＣＣコードワード内で「ｔ」以下の部分がエラーである場合、シンドロームは、５７４に示されるように、エラーである部分を正確に識別する。エラーであると識別された部分は、Ｃ１が単一のパリティコードであるとき、エラー内に奇数のビットを有することになる。５７５に示されるように、弱い信頼性（適切なサインを伴う）に対応する信頼性値は、エラーであると識別された部分内の全てのビットに関連付けられ、強い信頼性（適切なサインを伴う）に対応する信頼性値は、例えば、エラーであるとは識別されない、他の部分内の全てのビットに関連付けられる。本開示の種々の実施形態によると、特定のセルの桁に関する弱い及び／または強い信頼性に対応する信頼性値は、特定のメモリセルの条件、例えば、プログラム／消去サイクル、保持、データが保持されていた時間量、読み取り阻害の数などに少なくとも部分的に基づいて、調整する、例えば、精緻化する、整調するなどすることができる。
【００６２】
「ｔ＋１」の部分がエラーである場合、シンドロームは、５７６に示されるように、エラーである部分を識別することなく、「ｔ＋１」の部分がエラーであることを検出する。この場合、ＣＣコードワード内の全てのビットは、５７７に示されるように、不確実な信頼性に対応する信頼性値を割り当てられる。本開示の種々の実施形態によると、特定のセルの桁に関する不確実な信頼性に対応する信頼性値は、特定のメモリセルの条件、例えば、プログラム／消去サイクル、保持、データが保持されていた時間量、読み取り阻害の数などに少なくとも部分的に基づいて、調整する、例えば、精緻化する、整調するなどすることができる。
【００６３】
「ｔ＋１」を超える部分がエラーである場合、シンドロームは、５７８に示されるように、エラーである部分を誤認する。エラーであると誤認された部分に関して、弱い信頼性に対応する信頼性値（適切なサインを伴う）は、５７９に示されるようにエラーであると誤認された部分内の全てのビットに関連付けられ、また、強い信頼性に対応する信頼性値（適切なサインを伴う）は、５７９に示されるように、例えば、エラーであるとは識別されない、他の部分内の全てのビットに関連付けられる。これは、エラーである「ｔ」以下の部分が存在する場合と同様に処理される。
【００６４】
誤認の結果として、一部のビットは、不適切な信頼性を割り当てられることがある。弱い信頼性に対応する信頼性値は、エラーであると誤認された部分内のビットに関連付けられる。Ｃ１内の検出不可能なエラー事象（エラーである偶数のビット）を無視すると、弱い信頼性に対応する信頼性値は、実際には正しいビット、例えば、ＣＣコードワードのビットに関連付けられ得る。残りの部分、例えば、エラーであると誤認されていない部分に関して、これらの部分の一部には、エラーである奇数のビットが存在することになり、強い信頼性に対応する信頼性値は、これらの誤りのあるビット、及び残りの正しいビットに関連付けられる。
【００６５】
一部のビットとの不正確及び／または不適切な信頼性値の関連付けは、例えば、ＬＤＰＣ復号器において、いくらかの性能の劣化を引き起こす可能性がある。しかしながら、信頼性値の関連付けはＲＢＥＲを変化させないとすると、性能の劣化は小規模であり得、したがってＬＤＰＣ復号器におけるソフトデータの使用に関連付けられる利益の観点から、許容され得る。
【００６６】
ＣＣ復号器動作の詳細な例を、下に説明する。メモリ内の記憶されたＣＣコードワードを、例えば、ハード読み取りを介して受信した後、１×７のファントムシンドロームが計算される。１×７のファントムシンドロームを、３×７Ｈ（Ｃ２）によって乗じて、１×３のエラー場所マトリックスを獲得し、これは、奇数のビットエラーを有する部分を位置付けるために１０進数に変換することができる。例として：
【数２】
2016509420.tif 000005
を考察する（ビットエラーは、単一下線によって示され、パリティ桁は、二重下線によって示される）。
Ｃ（２５）にビットエラーが存在すると仮定すると、Ｃ’は：
【数３】
2016509420.tif 000006
である。この場合、シンドロームは、［１１０００１１］であり、エラーロケータは、［０１０］＝２であり、これは右から２番目の５ビット部分を指す。Ｃ２がエラーであるｔ＝１の部分を識別することができ、Ｃ’がエラーである単一の部分を有したとすると、ＣＣ復号器は、エラーである部分を正確に識別することができる。
【００６７】
別の例として、同じＵ及びＣに関して、エラーがＵ（７）、Ｕ（８）、及びＵ（１０）において作成された（単一の部分内の３ビットエラーは、エラーである単一の部分を引き起こす）と仮定すると：
【数４】
2016509420.tif 000007
シンドロームは、［１１００００１］であり、エラーロケータは、［１１０］＝６であり、これは、右から６番目の部分を指す。
【００６８】
最後の例に関して、部分６内の３ビットエラー及び部分２内の１ビットエラーは：
【数５】
2016509420.tif 000008
であり、
シンドロームは、［１１０００１１］であり、エラーロケータは、［０１０］＝２である。したがって、エラーロケータは、奇数のビットエラーを有する第２の部分を示す。この特定のＣＣコードは、奇数のビットエラーを有するただ１つの部分のみを位置付けることが可能である。この例は、エラーである２つの部分を有するため、これは、図５の５７８及び５７９に対応する。この場合、ＣＣ復号器は、正しい（エラーではない）部分６を誤認し、これは、部分６の誤りのあるビットにおける高い信頼性の関連付けをもたらすことになる。
【００６９】
分類コードの選択及び／または設計は、本装置または方法が実装されている計算システム及び／またはメモリデバイスの必要に基づいて行うことができる。ＣＣは、ＲＢＥＲを変化させない。ＣＣ復号器は、ソフトデータ、例えば、信頼性値を、メモリから読み取られたものと同じサインを有するビットに関連付ける。部分内の全てのビットは、同様に処理することができる。例えば、部分がエラーであると識別される場合、一部の、例えば、奇数のビットがエラーであり得る場合であっても、弱い信頼性に対応する信頼性値は、その部分内の全てのビットに関連付けることができる。このことを考慮すると、より短い部分を有することがより良い。しかしながら、より短い部分は、より多くのＥＣＣオーバーヘッドを使用する。例えば、以下の２つのコード例を考察する。
【００７０】
コード１は、２５ビットの単一パリティコード（Ｋ，Ｎ）＝（２４，２５）であるＣ１、及びハミングコード（Ｋ，Ｎ）＝（４，８）を検出する２ビットを訂正する１ビットであるＣ２を有する。ＣＣは、（Ｋ，Ｎ）＝（１９６，２００）＿比率＝０．９８（２％オーバーヘッド）である。コード２は、１０ビットの単一パリティコード（Ｋ，Ｎ）＝（９，１０）であるＣ１、及びハミングコード（Ｋ，Ｎ）＝（４，８）を検出する２ビットを訂正する１ビットであるＣ２を有する。ＣＣは、（Ｋ，Ｎ）＝（７６，８０）＿比率＝０．９５（５％  オーバーヘッド）である。これらの例は、より小さい部分サイズと比率とのトレードオフを示す（より細かいソフト信頼性割当てを示唆する）。固定されたＥＣＣバジェットを仮定すると、ＥＣＣバジェットから取得された任意の過剰の比率は、より高い比率のＬＤＰＣコードの使用につながり得る。したがって、結果として得られるＲＢＥＲ性能は、より不良となり得る。
【００７１】
Ｃ２に関してより大きい「ｔ」を有することは、有益であり得る。しかしながら、この効果は、結果として得られるコードに関する増加されたコードワードサイズであろう。以下の２つの事例を考察する。コード１は、２５ビットの単一パリティコード（Ｋ，Ｎ）＝（２４，２５）であるＣ１、及びハミングコード（Ｋ，Ｎ）＝（４，８）を検出する２ビットを訂正する１ビットであるＣ２を有する。ＣＣは、（Ｋ，Ｎ）＝（１９６，２００）比率＝０．９８（２％オーバーヘッド）である。コード２は、２５ビットの単一パリティコード（Ｋ，Ｎ）＝（２４，２５）であるＣ１、及びゴーレイコード（Ｋ，Ｎ）＝（１２，２４）を検出する４ビットを訂正する３ビットであるＣ２を有する。ＣＣは、（Ｋ，Ｎ）＝（５８８，６００）比率＝０．９８（２％オーバーヘッド）である。どちらのコード例も、同一のオーバーヘッド（２％）を有する。コード１は、２００ビット（８つの２５ビットの部分）当たり、エラーである１つの部分を識別し、エラーである２つの部分を検出することができる。コード２は、６００ビット（２４個の２５ビットの部分）当たり、エラーである３つの部分を識別し、エラーである４つの部分を検出することができる。これらの２つのコードを比較すると、コード２は、ＥＣＣリソースをプールしており、より大きいコードワードをそれらに提供している。２００ビットの３つの区分としてのコード２の６００ビットのコードワードを考察すると、コード２は、該区分のうちの１つが、エラーである２、３、または４つの部分を有し、またエラーである部分の総数が、２４個の部分のうち４以下であるときにのみ、より良好に機能するであろう。シミュレーションは、ＲＢＥＲ領域が約５Ｅ−３の例では、両コードは同様に機能することを示しており、これは、関心のＲＢＥＲ領域では、８つの部分のうちエラーである２つ超の部分を有する確率は、極めて低いことを表している。しかしながら、種々の製品及び技術に関する関心のＲＢＥＲ領域に応じて、ＣＣコードワードのＥＣＣリソースのプーリングは、有益であり得る。
【００７２】
エラーであると誤認された部分のビットに対する不正確な信頼性値の関連付けの可能性を考慮すると、弱い信頼性、不確実な信頼性、及び／または強い信頼性に対応する信頼性値の選択は、良好な性能を達成するために使用することができる。同一の構成に関しては、より不良な選択は、遥かにより不良な結果につながり得る。
【００７３】
再び図３を参照すると、ＬＤＰＣ復号器３５４からＣＣ復号器３５２へのフィードバックパス３５８は、それらの間にターボ等化を提供するために使用することができる。ターボ等化は、ＣＣ復号器３５２の動作を潜在的に助けることができる。ＣＣ復号器３５２が、まず、メモリからのハード読み取りを介してデータを受信することができ、ＬＤＰＣ復号器３５４における使用のためにソフトデータを生成することができる。ＬＤＰＣ復号器３５４は、例えば、数回の反復を走らせた後に、この生成されたソフトデータをエラー訂正のために使用することができる。ＬＤＰＣ復号器３５４からのハード決定は、フィードバックパス３５８を介してＣＣ復号器３５２にフィードバックされ得る。ＬＤＰＣ復号器３５４からのハード決定を用いて、ＣＣ復号器３５２は、メモリ３３９から読み取られたデータと比較して、潜在的により少ないエラーをその中に有するハード読み取りからのデータと共に稼働することができる。
【００７４】
ＬＤＰＣ復号器３５４からのこの新しいデータを使用して、ＣＣ復号器３５２は、ソフトデータを再生成し、それをＬＤＰＣ復号器３５４に送り返すことができる。ＬＤＰＣ復号器３５４からのフィードバックは、無視することができ、ＣＣ復号器は、ソフトデータが全く存在しないかのように（ＣＣ復号器３５２が、ハード読み取りを介してメモリ３３９から獲得したデータに基づいてソフトデータを生成する状況と同様に）ソフトデータを生成することができる。または、ＣＣ復号器３５２は、潜在的にエラーである部分を識別することができる。信頼性値を同じ弱い信頼性に対応する全てのビットに関連付ける代わりに、エラーである部分を識別するＣＣ復号器３５２によって、ＣＣ復号器３５２は、（ＬＤＰＣ復号器３５４からフィードバックされるソフトデータを使用して）エラーであるビット（単数または複数）を識別するよう試みることができる。例えば、最も低い信頼性ビットは、エラーである可能性がより高いものとして識別することができ、弱い信頼性に対応する信頼性値は、部分のいくつかのビットに関連付けることができ、一方、強い信頼性に対応する信頼性値は、チャンク内の他のビットに関連付けることができる。
【００７５】
低密度パリティチェック（ＬＤＰＣ）コードなどの高度なエラー訂正コード（ＥＣＣ）の復号は、対数尤度比（ＬＬＲ）情報などのソフトデータを使用して達成することができる。バイナリデータ値決定に関する確信度は、ＬＬＲとして表すことができ、これは、
【数６】
2016509420.tif 000009
として算出され、式中、Ｐ（０）は、データ値の桁、例えば、ビットが、第１の値、例えば、ゼロを有する条件付き確率であり、Ｐ（１）は、データ値の桁が第２の値、例えば、１を有する条件付き確率である。（コードワードがメモリに記憶される場合、メモリに実際に記憶されるデータ値は、コードワードのデータ値であることに留意されたい。）確信度全体が感知された状態に起因するとき、上述の式は、
【数７】
2016509420.tif 000010
であるため、「０」を表す状態が感知されるときである正の無限大と、また
【数８】
2016509420.tif 000011
であるため、「１」を表す状態が感知されるときである負の無限大とをもたらす。確信度の測定は、１ビットに切り捨てて、例えば、読み取り要求に応答して、正の無限大の代わりに＋１を返し、また負の無限大の代わりに−１を返すことができる。
【００７６】
１つの方法例は、ハード読み取りを使用して、メモリセルの状態を判定することを含むことができる。ソフトデータは、少なくとも部分的に、判定された状態に基づいて判定される。本開示のいくつかの実施形態によると、確率は、特定のデータ値配置内の近隣の状態に対応するデータ値に基づいて、特定のデータ値配置内の各状態に対応するデータ値の各桁、例えば、ビットに関して予め判定することができる。これらの予め判定された確率から、ＬＬＲも、特定のデータ値配置内の近隣の状態に対応するデータ値に基づいて、特定のデータ値配置内の各状態に対応するデータ値の各桁、例えば、ビットに関して計算することができる。データ値確率及び／またはＬＬＲは、参照テーブル（ＬＵＴ）などのデータ構造内に記憶することができる。したがって、適当なデータ値確率及び／またはＬＬＲは、例えば、ハード読み取りによるインデックスに基づいて、ＬＵＴから読み出すことができる。
【００７７】
図５に関して先に述べたように、「ｔ＋１」の部分がエラーである場合、例えば、図３に示されるＣＣ復号器３５２によって、シンドロームは、５７６に示されるように、エラーである部分を識別することなく、「ｔ＋１」の部分がエラーであることを検出する。本開示のいくつかの実施形態によると、ＣＣコードワード内の全ての桁、例えば、ビットは、５７７に示されるように、不確実な信頼性に対応する同一の信頼性値を割り当てられる。本開示の種々の実施形態によると、エラーであると識別された「ｔ＋１」の部分を有するＣＣコードワード内の特定のビットに関して、不確実な信頼性に対応する同一の信頼性値は、少なくとも部分的に、エラーであると識別された「ｔ＋１」の部分を有するＣＣコードワード内の特定の桁に関して判定されたソフトデータに基づいて、それぞれ調整する、例えば、精緻化することができる。エラーであると識別された「ｔ＋１」の部分を有するＣＣコードワード内の特定の桁に関して判定されたソフトデータは、例えば、特定の桁のハード読み取りを使用して判定されたＬＬＲ、または特定の桁の複数の読み取りから判定されたＬＬＲであり得る。
【００７８】
図５に関して先に述べたように、受信されたＣＣコードワード内で「ｔ」以下の部分がエラーである場合、シンドロームは、５７４に示されるように、エラーである部分を正確に識別する。５７５に示されるように、弱い信頼性（適切なサインを伴う）に対応する信頼性値は、エラーであると識別された部分内の全てのビットに関連付けられ、強い信頼性（適切なサインを伴う）に対応する信頼性値は、例えば、エラーであるとは識別されない、他の部分内の全てのビットに関連付けられる。本開示の種々の実施形態によると、エラーであると識別された「ｔ」以下の部分を有するＣＣコードワード内の特定のビットに関して、関連付けられた特定の桁の信頼性値は、少なくとも部分的にＣＣコードワード内の特定の桁に関して判定されたソフトデータに基づいて、調整する、例えば、精緻化することができる。ＣＣコードワード内の特定の桁に関して判定されたソフトデータは、例えば、特定の桁のハード読み取りを使用して判定されたＬＬＲ、または特定の桁の複数の読み取りから判定されたＬＬＲであり得る。
【００７９】
具体的な実施形態を本明細書において例解及び説明してきたが、当業者は、同じ結果を達成すると算出される配設を、示される具体的な実施形態に代用することができることを理解するであろう。本開示は、本開示の種々の実施形態の適応または改変を網羅することが意図される。上の説明は、制限的ではなく、例解的に行われていることが理解されるものとする。上の実施形態の組合せ、及び本明細書において具体的に説明されていない他の実施形態は、上の説明を再考察すれば、当業者には明らかであろう。本開示の種々の実施形態の範囲は、上の構造及び方法が使用される、他の用途を含む。したがって、本開示の種々の実施形態の範囲は、添付の特許請求の範囲を、かかる特許請求の範囲が権利付与される均等物の全範囲と共に、参照して決定されるべきである。
【００８０】
前述の発明を実施するための形態において、種々の特性は、本開示を合理化する目的で、単一の実施形態に一緒にグループ化される。本開示の方法は、本開示の開示される実施形態が、各請求項で明示的に列挙されるものよりも多い特性を使用しなければならないという意図を反映するものとして解釈されないものとする。むしろ、以下の請求項が反映するように、発明の主題は、単一の開示される実施形態の全ての特性よりも少ない特性にある。このため、以下の特許請求の範囲は、本明細書において、各請求項は、別個の実施形態として自立する状態で、発明を実施するための形態に組み込まれる。
【図１】
2016509420.tif 000012
【図２】
2016509420.tif 000013
【図３】
2016509420.tif 000014
【図４】
2016509420.tif 000015
【図５】
2016509420.tif 000016
【手続補正書】
【提出日】平成27年8月5日(2015.8.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
装置であって、
分類コード（ＣＣ）復号器と、
前記ＣＣ復号器に連結される外符号復号器と、を備え、
前記ＣＣ復号器は、
ＣＣコードワードであって、外符号コードワードの一片及び対応するＣＣパリティ桁を含む、ＣＣコードワードを受信するように、ならびに
少なくとも部分的に、前記対応するＣＣパリティ桁を使用して、前記外符号コードワードの一片に関連付けられるソフトデータを判定するように構成される、装置。
【請求項２】
前記外符号復号器は、低密度パリティチェック（ＬＤＰＣ）反復復号器であり、前記外符号コードワードの前記一片は、ＬＤＰＣコードワードの一片である、請求項１に記載の装置。
【請求項３】
前記ＣＣ復号器に連結されるメモリをさらに備え、前記ＣＣ復号器は、前記メモリのハード読み取りを介して前記ＣＣコードワードを受信するように構成される、請求項１〜２のいずれかに記載の装置。
【請求項４】
前記ソフトデータは、前記外符号コードワードの前記一片に関連付けられる信頼性値であり、前記信頼性値は、少なくとも部分的に、ハード読み取りを使用して判定される前記ＣＣコードワードの桁に関して判定される対数尤度比（ＬＬＲ）を含む、請求項１〜３のいずれかに記載の装置。
【請求項５】
前記ソフトデータは、前記外符号コードワードの前記一片の一部分に関連付けられる信頼性値であり、前記ＣＣ復号器は、それぞれの信頼性値を、前記外符号コードワードの前記一片の前記一部分の各桁に関連付けるように構成される、請求項１〜４のいずれかに記載の装置。
【請求項６】
外符号復号器は、前記外符号コードワードの復号において前記信頼性値を利用するように構成される、請求項５に記載の装置。
【請求項７】
前記ＣＣは、２つの代数コードのテンソル積である、請求項１に記載の装置。
【請求項８】
外符号復号器は、フィードバックパスを介して前記ＣＣ復号器にハード決定をフィードバックするように構成され、前記ＣＣ復号器は、前記ハード決定を使用してソフトデータを判定するように構成される、請求項１に記載の装置。
【請求項９】
方法であって、
第１の復号器に、第１の符号器コードワードを受信することであって、前記第１の符号器コードワードは、第２の符号器コードワードの一片及び第１のコードパリティ桁を含む、受信することと、
前記第１の復号器を介して、少なくとも部分的に前記第１のコードパリティ桁に基づいて、前記第２の符号器コードワードの前記一片に関連付けられるソフトデータを判定することと、
前記第２の符号器コードワードの前記一片及び判定されたソフトデータを、前記第１の復号器から第２の復号器に提供することと、を含む、方法。
【請求項１０】
最大２反復動作する前記第２の復号器を介して、少なくとも部分的に、前記第２の符号器コードワードの前記一片及び前記判定されたソフトデータに基づくデータを判定することをさらに含む、請求項９に記載の方法。
【請求項１１】
前記ソフトデータを判定することは、前記第２の符号器コードワードの前記一片の桁に関連付けられる信頼性値を判定することを含む、請求項９〜１０のいずれかに記載の方法。
【請求項１２】
前記第１の復号器を介して、前記第１のコードパリティ桁からパリティチェックコード（Ｃ１）及びバイナリ代数コード（Ｃ２）を判定することをさらに含み、前記第１のコードパリティ桁は、Ｃ１及びＣ２のテンソル積から計算される、請求項９〜１１のいずれかに記載の方法。
【請求項１３】
前記第１の復号器は、分類コード（ＣＣ）復号器であり、前記第１のコードパリティ桁は、ＣＣパリティ桁であり、前記第２の復号器は、低密度パリティチェック（ＬＤＰＣ）復号器であり、前記第２の符号器コードワードの前記一片は、ＬＤＰＣコードワードの一片である、請求項９〜１２のいずれかに記載の方法。
【請求項１４】
装置であって、
外符号コードワードを提供するように構成される外符号符号器と、
前記外符号符号器に連結される分類コード（ＣＣ）符号器と、を備え、前記ＣＣ符号器は、ＣＣパリティ桁を判定し、前記ＣＣパリティ桁をＣＣコードワードとして前記外符号符号器コードワードの一片に付加するように構成され、
前記ＣＣ符号器は、メモリへの前記ＣＣコードワードの書き込みを制御するように構成される、装置。
【請求項１５】
前記外符号符号器は、低密度パリティチェック（ＬＤＰＣ）符号器であり、前記外部符号器コードワードの前記一片は、ＬＤＰＣコードワードの一片である、請求項１４に記載の装置。
【請求項１６】
前記ＬＤＰＣ符号器に連結されるボーズ・チョドーリ・オッケンジェム（ＢＣＨ）符号器をさらに含み、前記ＬＤＰＣ符号器は、前記ＢＣＨ符号器からＢＣＨコードワードを受信し、前記ＣＣ符号器にＬＤＰＣコードワードを提供するように構成される、請求項１４〜１５のいずれかに記載の装置。
【請求項１７】
前記ＣＣ符号器は、前記外符号コードワードの前記一片の複数の部分の各々に関して、一桁パリティチェックコード（Ｃ１）の桁を判定するように構成され、前記ＣＣ符号器は、前記外符号コードワードの前記一片からバイナリ代数コード（Ｃ２）を判定するように構成される、請求項１４〜１６のいずれか一項に記載の装置。
【請求項１８】
前記ＣＣ符号器は、Ｃ１及びＣ２のテンソル積として前記ＣＣを判定するように構成される、請求項１７に記載の装置。
【国際調査報告】
2016509420.tif 000017
2016509420.tif 000018