JP5432367B2 - 書込み検証を使用した符号のエラーフロア軽減 - Google Patents

書込み検証を使用した符号のエラーフロア軽減 Download PDF

Info

Publication number
JP5432367B2
JP5432367B2 JP2012507186A JP2012507186A JP5432367B2 JP 5432367 B2 JP5432367 B2 JP 5432367B2 JP 2012507186 A JP2012507186 A JP 2012507186A JP 2012507186 A JP2012507186 A JP 2012507186A JP 5432367 B2 JP5432367 B2 JP 5432367B2
Authority
JP
Japan
Prior art keywords
codeword
error
decoded
bit
written
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012507186A
Other languages
English (en)
Other versions
JP2012525062A5 (ja
JP2012525062A (ja
Inventor
グレーフ,ニルス
ガンマン,キラン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agere Systems LLC
Original Assignee
Agere Systems LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agere Systems LLC filed Critical Agere Systems LLC
Publication of JP2012525062A publication Critical patent/JP2012525062A/ja
Publication of JP2012525062A5 publication Critical patent/JP2012525062A5/ja
Application granted granted Critical
Publication of JP5432367B2 publication Critical patent/JP5432367B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1142Decoding using trapping sets
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • H03M13/453Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
    • H03M13/455Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding using a set of erasure patterns or successive erasure decoding, e.g. generalized minimum distance [GMD] decoding
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • G11B2020/1823Testing wherein a flag is set when errors are detected or qualified
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/185Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using an low density parity check [LDPC] code
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/60Solid state media
    • G11B2220/61Solid state media wherein solid state memory is used for storing A/V content

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

関連出願の相互参照
本出願の主題は(1)整理番号08−0241として2008年12月12日に出願したPCT出願第PCT/US08/86523号の主題、(2)整理番号08−1293として2008年12月12日に出願したPCT出願第PCT/US08/86537号の主題、(3)整理番号08−0248として2009年3月10日に出願した米国特許出願第12/401,116号の主題、(4)整理番号08−1057として2009年4月2日に出願したPCT出願第PCT/US09/39279号の主題、(5)整理番号08−0242として2009年4月8日に出願した米国特許出願第12/420,535号の主題、(6)2008年5月1日に出願した米国特許出願第12/113,729号の主題、(7)2008年5月1日に出願した米国特許出願第12/113,755号の主題、及び(8)整理番号08−0243として2009年4月8日に出願したPCT出願第PCT/US09/39918号の主題に関し、それらの全ての教示は参照によりそれらの全体が本明細書に組み込まれている。
本発明はデジタル信号処理に関し、具体的には、低密度パリティチェック(LDPC)コーディングなどのデータ符号化方法に関する。
通信は通信チャネルを介しての送信側から受信側への情報の送信である。現実の世界では、通信チャネルは送信側から送信された情報の歪められたバージョンを受信側に提供する雑音の多いチャネルである。記憶装置(例えば、ハードディスク(HD)ドライブ、フラッシュドライブ)は送信側から情報を受け取り、その情報を記憶し、その後その情報の多かれ少なかれ歪められたバージョンを受信側に提供する、1つのそのような雑音の多いチャネルである。
記憶装置などの通信チャネルによって導入された歪(ひずみ)は、チャネルエラーを引き起こすのに十分大きい可能性がある、即ち、受信側は、チャネル入力信号が0であったのにチャネル出力信号を1と解釈する、或いはその逆である。チャネルエラーはスループットを低減し、従って望ましくない。従って、チャネルエラーを検出及び/又は訂正するツールが引き続き必要である。低密度パリティチェック(LDPC)コーディングはチャネルエラーの検出及び訂正のための1つの方法である。
LDPC符号は、低い信号対雑音比(SNR)のアプリケーションのために非常に低いビットエラーレート(BER)を達成することができる、知られている近シャノン限界符号の1つである。LDPC復号は、その並列化の可能性、低い実装複雑性、少ない復号待ち時間、並びに、高いSNRでのそれほど厳しくないエラーフロアの点で優れている。LDPC符号は事実上全ての次世代通信規格とみなされる。
PCT出願第PCT/US08/86523号 PCT出願第PCT/US08/86537号 米国特許出願第12/401,116号 PCT出願第PCT/US09/39279号 米国特許出願第12/420,535号 米国特許出願第12/113,729号 米国特許出願第12/113,755号 PCT出願第PCT/US09/39918号
一実施形態では、本発明は、元の符号化コードワードを記憶媒体に記憶するための機械実装方法である。元の符号化コードワードは、書き込まれた符号化コードワードとして記憶媒体に書き込まれる。チャネル出力コードワードは、書き込まれた符号化コードワードを記憶媒体から読み出すことにより生成される。元の符号化コードワードは、書き込まれた符号化コードワード内の1つ以上の誤りビットの第1のセットを識別するために、チャネル出力コードワードに基づいて派生コードワードと比較される。書き込まれた符号化コードワード内の1つ以上の誤りビットの第2のセットが、第1のセット内の1つ以上の誤りビットを選択することにより生成される。第2のセット内の1つ以上の誤りビットに対応する誤りビット情報が記憶媒体に書き込まれる。
他の実施形態では、本発明は、記憶媒体に記憶されている書き込まれた符号化コードワードに対する復号コードワードを生成するための機械実装方法であって、書き込まれた符号化コードワードは、1つ以上の誤りビットを有する。チャネル出力コードワードは、書き込まれた符号化コードワードを記憶媒体から読み出すことにより生成される。派生コードワードは、チャネル出力コードワードから生成される。誤りビット情報は記憶媒体から読み出され、誤りビット情報は書き込まれた符号化コードワード内の1つ以上の誤りビットに対応する。誤りビット情報は、修正コードワードを生成するために使用される。復号コードワードを生成するために、修正コードワードに対してさらなる処理が実行される。
本発明の他の態様、特徴、及び利点は、以下の詳細な説明、添付の請求項、及び同様の参照数字は同様の又は同一の要素を識別する添付の図面から、より十分に明らかになるであろう。
LDPCコーディングを利用する通信システム100のブロック図である。 図Aは、LDPC H行列200を示す図であり、図Bは、Hマトリックス200のタナーグラフである。 図AのデコーダACによって使用されるLDPC復号方法300の流れ図である。 本発明の一実施形態によるチャネルコントローラ120によって制御される図1の通信システム100によって実装されるLDPC符号化/復号プロセス400の流れ図である。 誤りビットテーブルの一実施形態の図である。 本発明の一実施形態による、図4のステップ410の流れ図、即ち書込みエラー検証プロセスの図である。 図6のステップ612の流れ図である。 本発明の一実施形態による図4の書込みエラー回復プロセス418の流れ図である。
図1は、LDPCコーディングを利用する通信システム100のブロック図である。データソース102は、元の情報ワード104として知られているビットのセットを生成する。LDPCエンコーダ106は元の情報ワード104を符号化して、元の符号化コードワード108を生成する。LDPC符号化は、以下でより詳細に議論される。元の符号化コードワード108(チャネル入力コードワードとしても知られている)は、書き込まれた符号化コードワードとして記憶媒体110(例えば、フラッシュドライブ、ハードドライブプラッタなど)に書き込まれる。
後ほどいつか、記憶媒体110は、書き込まれた符号化コードワードを読み出し、値yのセット(即ち、チャネル出力コードワード)をチャネル検出器112に出力する。チャネル出力コードワード、及びチャネル出力コードワードから派生した任意のコードワードは、派生コードワードとして知られている。チャネル検出器112は、受信された値yを対数尤度比(LLR)値Lchのセットに変換する。LLR値は、(i)対応する値yによって示された1ビット硬判定値に関するデコーダのベストゲスを表す符号ビット、及び(ii)硬判定におけるデコーダの信頼度を表す1つ以上のマグニチュードビットを備える。例えば、チャネル検出器112は、5ビット値として各LLR値Lchを出力することができ、最上位ビットは、硬判定を示す符号ビットであり、4つのマグニチュードビットの値は、硬判定の信頼度を示す。従って、1つの可能なLLR方式では、2進数00000のLLR値は最小信頼度を有する0の硬判定を示し、2進数01111のLLR値は最大信頼度を有する0の硬判定を示し、2進数10001のLLR値は最小信頼度を有する1の硬判定を示し、2進数11111のLLR値は最大信頼度を有する1の硬判定を示すことになり、2進数10000は使用されない。
チャネル検出器112はLch値をLDPCデコーダ114に送信し、Lch値はデコーダ入力コードワードになる。その後、LDPC114は、Lch値のセットに対して1つ以上の復号反復116(「ローカル反復」)を実行し、復号コードワード
Figure 0005432367
を生成する。LDPCデコーダACは、(i)LDPCデコーダ114が復号された正しいコードワード(DCCW)に到達する、即ち、
Figure 0005432367
がチャネル入力コードワード108と同じであるときか、又は(ii)LDPCデコーダACがDCCWに到達することなく最大許容数のローカル反復を実行する、即ち、LDPCデコーダ114が失敗したときに、終了する。デコーダ114が終了すると、デコーダ114は、復号コードワード、
Figure 0005432367
をデータ宛先118に出力する。LDPC復号は、以下でより詳細に説明される。
チャネルコントローラ120は、少なくともLDPCエンコーダ106、チャネル検出器112、及びLDPCデコーダ114の動作を制御する。チャネルコントローラは通常、ARM(アドバンストRISC(縮小命令セットコード)マシン)プロセッサである。
LDPC符号化
コードワード108を作成するために、LDPCエンコーダ106は、情報ワード104のビットに、LDPC符号によって指定されたいくつかのパリティビットを付加する。情報ワード104内のビットの数はKとして示される。符号化コードワード内のビットは可変ビットとして知られており、それらの可変ビットの数はNとして示される。従って、パリティビットの数はN−Kによって与えられる。
LDPCコードワード内の各パリティビットは、特定のLDPC符号によって指定された特定のやり方でそのコードワード内の1つ以上の他のビットに関連付けられ、パリティビットに割り当てられる値はLDPC符号を満たすようにセットされる。標準的なLDPC符号は、パリティビット及びその関連ビットがパリティチェック制約を満たす、例えば、ビットの合計が偶数である、即ち、合計モジュロ2=0であると指定する。
LDPC符号
特定のLDPC符号は、パリティチェック行列、又はH行列、或いは単にHとして知られている1及び0の2次元行列によって定義される。Hは、LDPCエンコーダ及びデコーダの両方によってアプリオリに知られている。Hは、N個の列及びN−K個の行、即ち、コードワードのビットごとに1つの列及びパリティビットごとに1つの行を備える。H内の各1は、列のコードワードビットと行のパリティビットとの間の関連を表す。例えば、Hの第3の行、第7の列にある1は、第3のパリティチェックビットがコードワードの第7のビットに関連することを意味する。チェックビットの値とそのチェックビットに関連する全ての可変ビットの合計モジュロ2は0であるはずである。典型的なLDPC符号の定義特性は、Hが「疎」である、即ち、Hの要素がほとんど0であり、1が比較的少ないことである。
図2(A)はLDPC H行列200を示す。H行列200は、N=9列、及びN−K=6行を備える。従って、H行列200は3ビット情報ワードを受け取り、6パリティビットを付加し、9ビットコードワードを出力するLDPC符号を定義する。記憶媒体がハードディスクドライブ又はフラッシュドライブである一実装形態では、各情報ワードは、長さが4,096ビットであり、各コードワードは、長さが4,552ビットである。他の実装形態は、他のビット長を有する情報ワード及び/又はコードワードを有してよい。
LDPC復号:確率伝搬法
図3は、図1のデコーダ114によって使用されるLDPC復号方法300の流れ図である。復号方法300の核心は、確率伝搬法と呼ばれる反復二相メッセージパッシングアルゴリズムである。確率伝搬法はタナーグラフを使用して説明されることが可能である。
図2(B)はH行列200のタナーグラフである。一般に、タナーグラフは、1)H内の列の数に等しい(従って、可変ビットの数Nに等しい)ビットノード(可変ノードとも呼ばれる)の数n、2)H内の行の数に等しい(従って、パリティビットの数に等しい)チェックノードの数m、3)それぞれが単一のビットノードnを単一のチェックノードmに接続する枝202、4)ビットノードnごとに、元のLch値、及び5)ビットノードnごとに、計算された硬判定出力値、
Figure 0005432367
を備える。図2(B)のタナーグラフは、9個のビットノードn〜n、6個のチェックノードm〜m、ビットノードをチェックノードに接続する18の枝202、9個のLch値、及び9個の
Figure 0005432367
値を備える。
タナーグラフ内の枝はビットノードnとチェックノードmとの間の関係を表し、枝はH内の1を表す。例えば、図2(B)では、枝202は、図2(A)内のH行列200の第1の列、第4の行に1があるので、第1のビットノードnを第4のチェックノードmに接続する。
タナーグラフは、2部グラフである、即ち、1つの枝が1つのビットノードをただ1つのチェックノードに接続することができ、1つのビットノードを別のビットノードに、又は1つのチェックノードを別のチェックノードに接続することができない。枝によって特定のチェックノードmに接続された全てのビットノードnのセットはN(m)として示される。枝によって特定のビットノードnに接続された全てのチェックノードmのセットはM(n)として示される。特定の(ビット又はチェック)ノードの添え字はグラフ内のその順序を表す連番である。
図3に戻ると、処理はステップ302において開始し、ステップ304、デコーダ初期化に進む。デコーダ初期化304は、各ビットノードnに接続された全ての枝(例えば、図2(B)の枝202)をビットノードnに関連する対応するLch値にセットするステップ、及びビットノードnの
Figure 0005432367
値をビットノードnのLchの硬判定値(即ち、MSB)にセットするステップを備える。従って、例えば、図2(B)において、ビットノードnに関連するLch値が10進数値+5である場合は、ステップ304において、ビットノードnをチェックノードm及びmに接続する2つの枝202は+5にセットされ、ビットノードn
Figure 0005432367
値は、1にセットされる。このステップの第1の部分を表す代替方法は、ビットノードnがセットM(n)内の各チェックノードmに+5のメッセージを送信することである。ビットノードnからチェックノードmに送信されるメッセージはビットノード又はQメッセージと呼ばれ、Qnmとして示される。
次いで、ステップ304は、シンドロームチェックステップ306に、N個の
Figure 0005432367
値を備える候補復号コードワードベクトル
Figure 0005432367
を送信する。シンドロームチェックステップ306は、次の等式(1)
Figure 0005432367
を使用してシンドロームベクトルzを計算し、式中、HはH行列の転置行列である。シンドロームベクトルzが0ベクトルである場合は、ベクトル
Figure 0005432367
は、Hによって定義された全てのパリティチェック制約を満たしている、即ち、
Figure 0005432367
は、有効な復号コードワードである。その場合、処理は、巡回冗長検査(CRC)チェック318に進む。
そうではなく、シンドロームベクトルzが0ベクトルでない場合は、ベクトル
Figure 0005432367
は、パリティチェック制約のうちの1つ以上を失敗する。シンドロームベクトルz内の各非ゼロ要素は、失敗したパリティチェック制約を表し、これは満たされていないチェックノード(USC)とも呼ばれる。シンドロームベクトルz内の非ゼロ要素の数は、ベクトル
Figure 0005432367
内のUSCの数bである。さらに、シンドロームベクトルzの非ゼロ要素の添え字は、ベクトル
Figure 0005432367
内のUSCの添え字である。
ベクトル
Figure 0005432367
がシンドロームチェック306を失敗した場合は、処理は続けて1つ以上の復号反復308(「ローカル反復」と呼ばれる)の第1に進む。復号反復308は、3つのステップ、即ち、1)確率伝搬法チェックノード更新ステップ310、2)確率伝搬法ビットノード更新ステップ312、及び3)ステップ306と同一であるシンドロームチェックステップ314を備える。
確率伝搬法チェックノード更新ステップ310において、各チェックノードmは、セットN(m)内の全てのビットノードnから受信されたQnmメッセージを使用して、次の等式(2)、(3)、及び(4)、
Figure 0005432367
Figure 0005432367
Figure 0005432367
によって、1つ以上のチェックノード、又はRmnとして示されたRメッセージを計算し、式中、iは復号反復であり、N(m)\nはビットノードnを除いたセットN(m)であり、関数sgnはそのオペランドの符号を返し、βは正の定数であり、その値は符号パラメータに依存する。各チェックノードmは、計算されたRmnメッセージをそれらの同じ枝に沿ってセットN(m)内の全てのビットノードnに送信し戻す。
次に、確率伝搬法ビットノード更新ステップ312において、各ビットノードnは、
Figure 0005432367
によって、1つ以上のQnmメッセージを計算し、式中、
Figure 0005432367
は、ビットノードnのための元のLch値であり、M(n)\mは、チェックノードmを除いたセットM(n)である。その後、各ビットノードnは、計算されたQnmメッセージをセットM(n)内の全てのチェックノードmに送信する。
さらに、ビットノード更新ステップ312中に、各ビットノードnは、次の等式(6)及び(7)、
Figure 0005432367
Figure 0005432367
によって、その
Figure 0005432367
値を更新する。P≧0の場合は、
Figure 0005432367
であり、P<0の場合は、
Figure 0005432367
である。等式(6)によって生成された値はまた、付帯的な値又はE値と呼ばれ、ELDPCとして示される。等式(7)によって生成された値は、P値と呼ばれる。等式(2)〜(7)によって表される特定の確率伝搬法アルゴリズムは、min−sumアルゴリズムとして知られている。
Figure 0005432367
値は各復号反復308中に更新され、最後に復号プロセス300によって出力されることに留意されたい。元のLLR値Lchは、復号プロセス300中ずっと変更されないままである。
ビットノード更新ステップ312は、デコーダの現在の
Figure 0005432367
値から構成されたベクトル
Figure 0005432367
をシンドロームチェックステップ314に送信する。ステップ314のシンドロームチェックは、前述のステップ306のシンドロームチェックと同一である。ベクトル
Figure 0005432367
がシンドロームチェック314を通った場合は、ベクトル
Figure 0005432367
はCRCステップ318に送信される。
LDPC復号:巡回冗長検査及び不適当に満たされたチェックノード
シンドロームチェック306又は314を通ることは、ベクトル
Figure 0005432367
が有効な復号コードワードであるが、必ずしも復号された正しいコードワード(DCCW)であるとは限らないことを意味する。LDPCデコーダがDCCWでない有効な復号コードワードを生成することは可能である。その場合、ベクトル
Figure 0005432367
内にUSCはないが、不適当に満たされたチェックノード(MSC)がある。不適当に満たされたチェックノードは、偶数の誤りビットノードに関連するチェックノードである。
従って、有効なベクトル
Figure 0005432367
がDCCWであることを保証するために、プロセス300はベクトル
Figure 0005432367
を巡回冗長検査(CRC)318に渡す。CRCチェックは、送信又は記憶中にデータの変更を検証することができるチェックサム演算である。具体的には、エンコーダは、送信されるべきコードワードの第1のCRCチェックサムを計算し、第1のCRCチェックサム及びコードワードの両方をデコーダに送信する。デコーダは、コードワード及び第1のCRCチェックサムの受信後、受信されたコードワードを使用して第2のCRCチェックサムを計算し、それを第1のCRCチェックサムと比較する。2つのCRCチェックサムが一致しない場合は、受信されたコードワードにエラーがある確率が高い。
ベクトル
Figure 0005432367
がCRCチェックを通った場合は、ベクトル
Figure 0005432367
はDCCWであり、プロセス300はグローバル変数DCCWを真にセットし、ベクトル
Figure 0005432367
を出力し、ステップ320で終了する。そうでなければ、ベクトル
Figure 0005432367
は、DCCWではなく、プロセス300はグローバル変数DCCWを偽にセットし、ベクトル
Figure 0005432367
を出力し、ステップ320で終了する。グローバル変数DCCWは、他の復号プロセスにDCCWが生成されたか否かを通知する。
ステップ314に戻ると、ベクトル
Figure 0005432367
がシンドロームチェックを失敗した場合は、ベクトル
Figure 0005432367
に1つ以上のUSCが存在する。USCを解決する標準的な方法は、別の復号反復308を実行することである。しかし、特定の復号セッションでは、妥当な量の時間内に決して満たされない1つ以上のUSCが存在する可能性がある(以下のトラッピングセットの議論を参照されたい)。従って、LDPCデコーダは、通常、それらがいくつの復号反復を実行することができるかに限定される。反復の最大数のための標準的な値は50から200までの範囲にある。
図3において、ステップ316は、反復の指定された最大数に達したかどうかを判定する。達していない場合は、別の復号反復308が実行される。そうではなく、反復の最大数に達した場合は、デコーダプロセス300は失敗した。その場合、プロセス300は、グローバル変数DCCWを偽にセットし、ベクトル
Figure 0005432367
を出力し、ステップ320で終了する。
(1つ以上のローカル復号反復308を伴う)プロセス300の完全な実行は、復号セッションとして知られている。
BER、SNR、及びエラーフロア
LDPCデコーダのビットエラーレート(BER)は、復号ビットが誤った値を有する確率を表す。従って、例えば、10−9のBERを有するデコーダは、平均して、10億復号ビットごとに1つの誤りビットを生成することになる。DCCWに収束するためのLDPC復号セッションの失敗はデコーダのBERに寄与する。
LDPCデコーダのBERはデコーダの入力信号の信号対雑音比(SNR)によって強く影響される。SNRの関数としてのBERのグラフは、通常、2つの別個の領域、即ち、ユニットのSNRが増大すると仮定すると、BERが急速に改善する(低減する)最初の「ウォータフォール」領域、及びSNRの増大がBERの穏やかな改善しかもたらさない、それに続く「エラーフロア」領域を備える。従って、エラーフロア領域においてかなり大きいBER改善を達成するには、SNR増大以外の方法を必要とする。
LDPC復号のエラーフロア特性を改善するための方法はコードワード長を増大することである。しかし、コードワード長を増大することはまた、メモリ及びLDPC復号のために必要とされる他の計算リソースを増大する。従って、通常、記憶装置上の読出しチャネル装置でそうであるように、そのようなリソースが厳しく限定されている場合は、必要なエラーフロア改善をもたらすために他の方法が見つけられなければならない。
他の乏しいリソースは処理サイクルである。通常、指定されたスループットを達成するために、記憶装置は、コードワードを復号するための固定数の読出しチャネル処理サイクルの予算を立てる。その予算を超える方法(例えば、オフザフライ方法)はスループットを低減する。クロックサイクル割当以内にDCCWを回復し、従って、スループットを低減しないオンザフライ方法は、より望ましい。
LDPCデコーダのエラーフロア特性を改善するための他の方法は1つ以上の後処理方法を使用することである。後処理方法は、復号セッションが、許容されている反復の最大数以内にDCCWに収束することができないときに実施される。後処理方法は、復号処理に関連する1つ以上の変数(例えば、y値、Lch値、及び/又はデコーダの動作パラメータ)を調整し、復号を再開始する。復号それ自体のように、後処理方法は、しばしば反復的であり、復号プロセスへの入力に対して複数の連続した変更を加える。
典型的なLDPC復号セッションでは、デコーダは第1のいくつかの復号反復以内にDCCWに収束する。そうではなく、LDPCデコーダが反復の指定された最大数以内にDCCWに収束することができない場合は、それは失敗したデコーダとして知られており、失敗したデコーダによって生成された復号コードワードは失敗したコードワードである。
失敗したコードワードは、通常、それらが含むUSCノードの数によって分類される。無効な復号コードワード(ICW)は、多数の(例えば、約5,000ビットコードワードごとに16より多い)USCノードを有する失敗したコードワードである。ICWは、通常、デコーダが全てのビットエラーを訂正することはできないほど多くのビットエラー、即ち少ない正しい値を含むデコーダ入力コードワードから生じる。ICWを処理するための典型的な後処理方法は、入力コードワードの再送信を要求することである。再送信は、オフザフライ方法であり、従って望ましくないが、通常、ICWを訂正するための唯一の信頼できる選択肢である。
近コードワード(NCW)は少数の(例えば、約5,000ビットコードワードごとに16以下の)USCを有する失敗したコードワードである。時々、NCW内のUSCは、トラッピングセットとして知られている安定した構成を形成し、そのためにさらなる復号反復はDCCWを生成しなくなる。トラッピングセットはLDPCデコーダのエラーフロア特性にかなり大きい影響を持つ。
トラッピングセットは(a,b)と表記され、ここで、bはトラッピングセット内のUSCの数であり、aはそれらのUSCに関連する誤りビットノードの数である。従って、(8,2)トラッピングセットは、2個のUSC、及びそれらの2個のUSCに関連する8個の誤りビットノード(EBN)を備える。大多数のトラッピングセットは、5個より少ないUSC及び10個より少ないEBNを備える。
ビットノードをフリップすることは、そのビットノードに関連する1つ以上の値を変更するための特定のプロセスを指す。フリップ中にどの値が変更されるかは、LDPCデコーダの状態に依存する。1つの可能な実装形態では、LDPCデコーダが初期化されたばかりであれば、ビットノードをフリップするステップは、(i)そのビットノードのLch値の硬判定値を反転する、即ち、1が0になる、及びその逆であるステップ、(ii)その同じLch値のマグニチュードビット、即ち信頼度を最大値にセットするステップ、及び(iii)全ての他のLch値のマグニチュードビットを最大許容マグニチュード値の多くても15%に限定するステップを備える。
例えば、4ビットLchマグニチュード値を有するシステムであって、最大許容正マグニチュードが+15であり、最大許容負マグニチュードが−16であり、さらに、最大許容値の15%が、それぞれ+2及び−2であるはずであるシステムを想定する。さらに、4つのビットノード、即ち+2、−11、+1、+13に対応する4つのLch値を想定する。この実施例では、第1のビットノードをフリップするステップは、(i)第1のビットノードのLch値の符号を反転する、即ち+2が−2になる、ステップ、(ii)第1のビットノードのLch値のマグニチュードを最大許容値にセットする、即ち2が−16になる、ステップ、及び(iii)その他の3つのビットノードのLch値のマグニチュードを最大許容値の多くても15%に限定する、即ち、−11、+1、及び+13がそれぞれ−2、+1、及び+2になる、ステップを備える。Lchマグニチュードを低い値にセットすることは、反復復号プロセスがDCCWに、より迅速に収束することができるようにし、失敗したデコーダの機会を少なくする。
この同じ実装形態によれば、デコーダが初期化された状態以外の何らかの状態にある場合は、ビットノードをフリップするステップは(i)(上記の等式7によって定義された)ビットノードのP値の硬判定値を判定するステップ、(ii)そのビットノードのLch値、P値、及び全ての関連するQnmメッセージの硬判定値をP値硬判定値の反対の値にセットするステップ、(iii)そのビットノードのLch値、P値、及び全ての関連するQnmメッセージのマグニチュードビットを最大値にセットするステップ、及び(iv)Lch、P、及び全ての他のビットのQnmメッセージ値のマグニチュードを最大許容値の15%に限定するステップを備える。最初のマグニチュードのみが限定されることに留意されたい。復号セッションが進むにつれて、P値及びメッセージ値は更新され、任意の許容値を想定することができる。他方、Lch値はリードオンリであり、従って、復号セッションの継続期間の間はそれらの限定されたマグニチュード値を維持することになる。
消去は、ビットノード値を変更するための別の特定のプロセスである。ビットノードを消去するステップは(i)そのビットノードのLch値の硬判定値を0にセットするステップ、及び(ii)その同じLch値のマグニチュードビット即ち信頼度を0、即ち信頼度なしにセットするステップを備える。
トラッピングセットに対応する近コードワードのためのEBNのうちの1つ以上が調整(例えば、フリップ又は消去)された場合は、その結果としての修正コードワードに対するLDPC復号を再実行することはDCCWに収束することができる。首尾よくいった場合は、このプロセスは、トラッピングセットをブレークすると言われる。従って、LDPCデコーダのエラーフロア特性を改善するための別のやり方は、失敗したデコーダの近コードワード(NCW)を取り出し、NCW内の可能なEBNを識別し、それらのEBNのうちの1つ以上をフリップ又は消去し、修正されたNCWをさらなるLDPC処理のために提出することである。
いくつかのトラッピングセットは、単一のEBNをフリップ又は消去することによりブレークされることが可能である。他のトラッピングセットでは、単一のEBNをフリップ又は消去することはUSCの数を低減することができるが、トラッピングセットを完全にブレークすることはできず、第2の別のトラッピングセットを生じ、その後、このトラッピングセットは、別のEBNをフリップ又は消去することによりブレークされることが可能である。さらに他のトラッピングセットは、同時に2つ以上のEBNをフリップ又は消去することによってのみブレークされることが可能である。
トラッピングセットは、(1)デコーダの動作条件(例えば、デコーダアルファベット、デコーダアルゴリズム、デコーダチェックノード更新方法)、(ii)書込みエラー、及び(iii)読出しエラーに基づいて幅広く変わる。通信チャネルが記憶装置である場合は、書込みエラーは、コードワードのビットが記憶装置に不正確に書き込まれたとき、即ち、書き込まれた符号化コードワード内のビットの値が対応するチャネル入力コードワード内の対応するビットの値に一致しないときである。読出しエラーは、正確に書き込まれたコードワードのビットが記憶装置から不正確に読み出されたとき、即ち、チャネル出力コードワード内のビットの値が書き込まれた符号化コードワード内の対応するビットの値に一致しないときである。読出しエラーからの回復は、例えば、セクタを複数回再読み出しして、その後、複数の読出しサンプルを平均することにより可能である。しかし、書込みエラーからの回復は、セクタを再読み出しすることによってでは可能でない。
本発明の諸実施形態は、書込みエラーに起因するLDPCデコーダ入力コードワード内のそれらのEBNを推定し訂正するための方法である。これらの方法は、通常、1対のプロセス、即ち、書込みエラー検証プロセス及び書込みエラー回復プロセスを備える。書込みエラー検証プロセスは、コードワードが記憶媒体に書き込まれるときに実行される。書込みエラー回復プロセスは、後ほど、コードワードが記憶媒体から読み出され、復号されるときに実行される。
図4は、本発明の一実施形態によるチャネルコントローラ120によって制御される図1の通信システム100によって実装されるLDPC符号化/復号プロセス400の流れ図である。処理はステップ402において開始し、続いてステップ404に進み、そこでデータソース102が元の情報ワード104をLDPCエンコーダ106に提供する。次に、ステップ406において、LDPCデコーダ106は元の情報ワード104を符号化して、チャネル入力コードワード108を生成する。次に、ステップ408において、チャネル入力コードワード108は記憶媒体110(例えば、フラッシュドライブ)に書き込まれる。次に、ステップ410、書込みエラー検証プロセスが実行され、このプロセスは、以下で、図6及び7の議論において、より詳細に説明される。
後ほどいつか、ステップ412において、記憶されているコードワードが記憶媒体110から読み出され、チャネル検出器112によって検出され、対応するデコーダ入力コードワードのためのLch値がLDPCデコーダ114に送信される。次に、ステップ414において、LDPCデコーダ114はデコーダ入力コードワードを処理して復号コードワードを生成する。この処理はLDPC復号、並びに、エラーフロア軽減方法、媒体欠陥検出方法、及び標準的なチャネルリトライ方法など、様々な読出しイベント方法を含む。ステップ414の処理の最終的な効果は、読出しエラーによる全てのEBNが訂正され、復号コードワードに残っているEBNはいずれも書込みエラーであるということである。
次に、ステップ416において、復号コードワードが誤りビットを有するかどうかが判定される。有しない場合は、復号コードワードはDCCWであり、プロセスはステップ420において終了する。そうではなく、復号コードワードが1つ以上の誤りビットを有する場合は、ステップ418において、書込みエラー回復プロセスが復号コードワードに対して実行され、このプロセスは、以下で図8の議論において、より詳細に説明される。
書込みエラー検証プロセス410は、チャネル入力コードワードが、書き込まれた符号化コードワードとして、記憶媒体、例えばフラッシュドライブに最初に書き込まれるときに実行される。書込みエラー検証プロセスは、書き込まれた符号化コードワードを読み戻し、対応するデコーダ入力コードワードを生成する。その後、プロセスは、デコーダ入力コードワードに対してLDPC復号を実行して復号コードワードを生成する。次いで、プロセスは、チャネル入力コードワードを復号コードワードと比較し、誤りビットの数及び添え字を判定する。誤りビットの数が0より大きく、且つ指定された閾値より小さい場合は、プロセスは、誤りビット情報を誤りビットテーブルと呼ばれるデータ構造に書き込む。本発明の一実施形態では、誤りビット情報は、誤りビットのうちの1つ以上のもののコードワード識別子(例えば、フラッシュドライブページID)及び添え字を備える。誤りビットの添え字は、復号コードワード内の誤りビットのロケーションを識別する。誤りビットテーブルは、通常、記憶媒体上に記憶される。
図5は、誤りビットテーブルの一実施形態の図である。テーブル500は、3つの列(フィールド)及び任意の数の行(レコード)を備える。列CODEWORD_IDENTIFIERは、コードワード識別子(例えば、フラッシュドライブページID)を含む。列EB_INDICESは、書込みエラー検証プロセスによって識別された1つ以上の誤りビットの添え字を含む。列COMPLETE_SETは、列EB_INDICES内の識別された誤りビット添え字が、書込みエラー検証プロセスによって検出された誤りビット添え字の全て(即ち、真又は1)を表すか、或いは適切なサブセット(即ち、偽又は0)を表すかを示す1ビット真/偽フィールドである。
図6は、本発明の一実施形態による、図4のステップ410、即ち書込みエラー検証プロセスの流れ図である。処理はステップ602において開始し、ステップ604に進み、そこで、書き込まれた符号化コードワードが記憶媒体から読み出され、デコーダ入力コードワードが生成される。
次に、ステップ606において、LDPC復号が様々な読出しイベント方法(例えば、エラーフロア軽減方法、媒体欠陥検出方法、標準的なチャネルリトライ方法)といっしょにデコーダ入力コードワードに対して実行され、復号コードワードが生成される。ステップ606の処理の最終的効果は、読出しエラーに起因するあらゆる誤りビットが訂正され、復号コードワードに残っているいかなる誤りビットも書込みエラーに起因するものであるということである。次に、ステップ608において、復号コードワードは、ビットに関してチャネル入力コードワードと比較され、(ビット誤一致に対応する)任意の誤りビットの数及び添え字が判定される。
ステップ610において、誤りビットの数が0である(即ち、ステップ606においてデコーダがDCCWに収束した)場合は、書込みエラー検証プロセス410は、ステップ616において終了する。そうではなく、誤りビットの数が指定された閾値(例えば、32)を超える場合は、ステップ614において、それ自体の方法を実行してエラーを訂正することもできる図1のチャネルコントローラ120に制御が与えられる。例えば、チャネルコントローラ120は、記憶媒体(例えばフラッシュドライブページ)上の現在のロケーションを不良とマークすることを決定し、チャネル入力コードワード108を別のロケーションに書き込もうと試みることもできる。チャネルコントローラ方法は、特定のチャネルコントローラ及びそのチャネルコントローラのメーカに特有のものである傾向がある。そうではなく、誤りビットの数が0より大きいが、指定された閾値以下である場合は、ステップ612において、1つ以上の誤りビット添え字が誤りビットテーブルに書き込まれる。
テーブルリミットLは、任意のコードワードのために誤りビットテーブルに記憶されることが可能である誤りビット添え字の最大数を指定する。識別された全ての誤りビットに関する情報を記憶することは、必ずしも常に必要であるとは限らない。研究調査は、5,000ビットLDPCコードワードの場合、4個以上のEBNを有するトラッピングセットでは、それらのEBNのうちの任意の3個をフリップすることは、そのトラッピングセットをブレークすることを示している。従って、通常、誤りビットテーブルにコードワードごとに4個以上の誤りビットを記憶する必要はない。その場合は、3がテーブルリミットLである。
さらに、大抵のトラッピングセットは、1つ又は2つのEBNをフリップすることによりブレークされることが可能である。1つ又は2つの誤りビット添え字のみを記憶することが決定され、即ちLが1又は2であり、識別された誤りビットの数がLより大きい場合は、Lの選択された添え字は、それらの添え字におけるビットをフリップすることが、デコーダがDCCWに収束することができるようにすることを保証するためにテストされる。そうでない場合は、Lの添え字の他のセットが選択され、(i)デコーダがDCCWに収束するか、又は(ii)サブセットがそれ以上入手されなくなるまでテストされる。
図7は、図6のステップ612の流れ図である。プロセス612は、図6のステップ607において検出された誤りビット添え字のうちのどれが、もしあれば、誤りビットテーブルに書き込まれるかを選択する。
処理はステップ702おいて開始し、ステップ704に進み、そこで、誤りビットの数がテーブルリミットL以下であるかどうかが判定される。
ステップ704において誤りビットの数がL以下である場合は、ステップ706において全ての誤りビット添え字が選択され、変数VARCOMPLETESETが1(真)にセットされる。次に、ステップ708において、レコードが誤りビットテーブル(例えば図5の500)に付加される。付加されたレコードのフィールドは、次のとおりセットされる。フィールドCODEWORD_IDENTIFIERは、一意のコードワード識別子(例えばフラッシュドライブページID)と等しくセットされる。フィールドCOMPLETE_SETはVARCOMPLETESETの値にセットされる。選択された誤りビット添え字はEB_INDICESに記憶される。
そうではなく、ステップ704において、誤りビットの数がLより大きい場合は、ステップ712において、Lが3以上であるかどうかが判定される。そうである場合は、ステップ714において、Lの誤りビット添え字がランダムに選択され、VARCOMPLETESETが0にセットされる。その後、処理は続いてステップ716に進み、そこで変数VARCOMPLETESETが0にセットされる(即ち、誤りビット添え字全てより少ないものが誤りビットテーブルに記憶される)。その後、処理は(前述の)ステップ708に進み、ステップ710において終了する。
そうではなく、ステップ712において、Lが1又は2である場合は、処理は続いてステップ718に進み、そこでLの誤りビット添え字が選択される。次に、ステップ720において、選択された添え字における元のデコーダ入力コードワード内のそれらのビットは、フリップされて、修正されたデコーダ入力コードワードを生じる。次に、ステップ722において、LDPC復号が、修正されたデコーダ入力コードワードに対して実行されて、復号コードワードを生成する。その後、ステップ724において、復号コードワードがチャネル入力コードワードと比較される。デコーダ出力コードワードに誤りビットがない場合は(ステップ726)、ステップ716において、VARCOMPLETESETが0にセットされ、処理は(前述の)ステップ708及び710に進む。
そうではなく、ステップ726において、復号コードワードが誤りビットを含むと判定された場合は、ステップ728において、Lの誤りビット添え字の別のセットが存在するかどうかが判定される。存在する場合は、ステップ732において、別のセットが選択される。次いで、ステップ734において、デコーダ入力コードワードは元のデコーダ入力コードワードにリセットされ(即ち、ステップ720において行われた変更が元に戻され)、処理はステップ720に戻る。
そうではなく、ステップ728において、Lの誤りビット添え字の他のセットが存在しない場合は、プロセス612は、ステップ730においてチャネルコントローラに制御を与え、ステップ710において終了する。チャネルコントローラの議論に関しては、上記の図6のステップ614の説明を参照されたい。
図4の書込みエラー回復プロセス418は、後ほど、システムが書き込まれた符号化コードワードを記憶媒体から読み出し、LDPCデコーダが復号反復の指定された最大数以内にDCCWに収束することができないときに、実行される。書込みエラー回復プロセスは、一意のコードワード識別子(例えばフラッシュドライブページID)を使用して、失敗した復号コードワードに一致するレコードがないか誤りビットテーブルを探索する。一致が発見された場合は、一致するレコードから誤りビット添え字が取り出され、取り出された添え字における失敗した復号コードワードビットの値はフリップされて、修正コードワードを生じる。
記憶されている誤りビット添え字が、書込み検証プロセス中に検出された全ての誤りビット添え字を表す場合は(即ち、COMPLETE_SET=1)、修正コードワードは、通常、シンドロームチェック及び巡回冗長検査のみに提出される。シンドロームチェックは、修正されたデコーダ入力コードワードが有効なLDPCコードワードであるかどうかを判定し、巡回冗長検査は、その有効なLDPCコードワードがDCCWであるかどうかを判定する。
そうではなく、記憶されている誤りビット添え字が、書込み検証プロセス中に検出された誤りビット添え字の全てより少ないものを表す場合は(即ち、COMPLETE_SET=0)、修正された復号コードワードは、さらなるLDPC復号(例えば、初期化ステップ304のない図3のプロセス300)に提出される。書込みエラー回復プロセスは、(i)さらなる復号がDCCWに収束するか、又は(ii)デコーダが復号反復の指定された最大数以内にDCCWに収束することができないときに終了する。
図8は、本発明の一実施形態による図4の書込みエラー回復プロセス418の流れ図である。処理はステップ802において開始し、ステップ804に進み、そこで、失敗した復号コードワードがLDPCデコーダから受信される。次に、ステップ806において、プロセス418は、例えばフラッシュドライブページIDによって探索して、復号コードワードとの一致がないか誤りビットテーブル(例えば、図5の500)を探索する。一致が発見されない場合は、プロセス418は、ステップ808においてチャネルコントローラに制御を与え、次いで、ステップ810において終了し、そうでない場合は、ステップ812において、EB_INDICES及びCOMPLETE_SETの値がビットエラーテーブルから取り出される。
次に、ステップ814において、プロセス418は、取り出された誤りビット添え字における復号コードワードビットの値をフリップして、修正コードワードを生じる。フリップするステップは、上記で、「0060」から「0063」までの段落において説明されている。次に、ステップ816において、COMPLETE_SETが0である(即ち、誤りビット添え字の適切なサブセットのみが誤りビットテーブルに記憶されていた)場合は、修正コードワードはステップ818においてLDPC復号に提出される。ステップ818がDCCWを生じた場合は(ステップ820)、プロセス418はステップ810において終了する。ステップ818がDCCWを生じない場合は、ステップ808において、チャネルコントローラに制御が与えられ、プロセス418はステップ810において終了する。
他方、ステップ816において、COMPLETE_SETが1である(即ち、全ての誤りビット添え字が誤りビットテーブルに記憶されていた)場合は、修正コードワードは、ステップ822においてシンドロームチェックに提出される。修正コードワードがシンドロームチェックを失敗した場合は、プロセス418はチャネルコントローラに制御を与え(ステップ808)、ステップ810において終了する。そうではなく、ステップ822において、修正されたデコーダ入力コードワードがシンドロームチェックを通った場合は、ステップ824においてCRCチェックが実行される。修正されたデコーダ入力コードワードがCRCチェックを通った場合は、処理はステップ810において終了する。そうではなく、ステップ824において、修正コードワードがCRCチェックを通らない場合は、チャネルコントローラに制御が与えられ(ステップ808)、プロセス418はステップ810において終了する。
書込み回復プロセス410の他の実施形態では、ステップ814はデコーダ入力コードワード内のビットをフリップし、復号コードワード内のビットはフリップしない。
要約すると、本発明の諸実施形態は、書込みエラーを含むNCWからDCCWを生成するための方法である。これらの方法は、通常、書込み検証プロセス及び書込みエラー回復プロセスを備える。書込み検証プロセスは、チャネル入力コードワードが記憶媒体に書き込まれるときに実行され、書き込まれたコードワード内の書込みエラー、例えば誤りビットを識別し、誤りビットのうちの1つ以上のものの添え字を誤りビットテーブルに記憶する。書込み回復プロセスは、後ほどいつか、デコーダがコードワードを復号しようと試み、NCWで失敗したときに、実行され、NCWに関連する誤りビット添え字がないか誤りビットテーブルを探索する。関連する誤りビット添え字が発見された場合は、NCW内の対応するビットはフリップされ、NCWはさらなるLDPC復号に提出される。
本発明はハードディスクドライブ及びフラッシュドライブのコンテキストで説明されてきたが、本発明はそのように限定されない。一般に、本発明は、任意の適切な記憶媒体を用いて実装されることが可能である。
さらに、本発明の諸実施形態はLDPC符号のコンテキストで説明されてきたが、本発明はそのように限定されない。本発明の諸実施形態は、トラッピングセットの影響を受けるのはグラフ定義の符号なので、グラフによって定義されることが可能である任意の符号、例えば、トルネード符号、構造化IRA符号のために実装されることも可能である。
本発明は、方法及びそれらの方法を実施するための装置の形態で実施されることが可能である。本発明はまた、磁気記録媒体、光記録媒体、固体メモリ、フロッピー(登録商標)ディスケット、CD−ROM、ハードドライブ、又は他の任意の機械可読記憶媒体などの有形媒体において実施されるプログラムコードの形態で実施されることが可能であり、プログラムコードがコンピュータなどの機械にロードされ機械によって実行されるとき、その機械は本発明を実施するための装置になる。本発明はまた、例えば、記憶媒体に記憶されていても、或いは機械にロードされ且つ/又は機械よって実装されても、プログラムコードの形態で実施されることが可能であり、そのプログラムコードがコンピュータなどの機械にロードされ機械によって実行されるとき、その機械は本発明を実施するための装置になる。プログラムコードセグメントは、汎用プロセッサ上で実装されるとき、そのプロセッサと結合して、特定の論理回路と同様に動作する一意の装置を提供する。
別途明記されない限り、各数値及び範囲は、単語「約(about)」又は「おおよそ(approximately)」がその数値又は範囲の値に先行しているかのように、およそであると解釈されるべきである。
本発明の本質を説明するために記述され例示されてきた部分の細部、材料、及び配列の様々な変更が、添付の請求項に明示されている本発明の範囲から逸脱することなく当業者によって加えられてよいことがさらに理解されるであろう。
請求項における図の数字及び/又は図の参照ラベルの使用は、請求項の解釈を容易にするために本特許請求の主題の1つ以上の可能な実施形態を識別することを意図するものである。そのような使用は、それらの請求項の範囲を対応する図に示されている実施形態に必ず限定するとは解釈されないものとする。
本明細書で説明されている例示的方法の諸ステップは、記載された順序で実行されることを必ずしも必要とされないことが理解されるべきであり、そのような方法の諸ステップの順序は、単に例示であると理解されるべきである。同様に、追加のステップがそのような方法に含まれてもよく、いくつかのステップは、本発明の様々な実施形態と矛盾しない方法で、省略されても又は結合されてもよい。
添付の方法請求項における要素は、もしあれば、対応するラベリングによって特定の順序で記述されるが、請求項の記述がそれらの要素のいくつか又は全てを実装するための特定の順序を別途暗示しない限り、それらの要素は、必ずしもその特定の順序で実装されることに限定されることを意図するものではない。
本明細書における「一実施形態(one embodiment)」又は「実施形態(an embodiment)」への言及は、その実施形態に関連して説明された特定の特徴、構造、又は特性が、本発明の少なくとも1つの実施形態に含まれてよいことを意味する。本明細書の様々な場所における「一実施形態における」というフレーズの出現は、必ずしも全て同じ実施形態を指すとは限らず、別々の又は代替の実施形態は、必ずしも他の実施形態と相互に排他的であるとも限らない。用語「実装形態(implementation)」にも同じことが言える。

Claims (10)

  1. 元の符号化コードワードを記憶媒体に記憶するための機械実装方法であって、
    (a)前記元の符号化コードワードを、書き込まれた符号化コードワードとして前記記憶媒体に書き込むステップ、
    (b)前記記憶媒体から前記書き込まれた符号化コードワードを読み出すことによりチャネル出力コードワードを生成するステップ、
    (c)前記書き込まれた符号化コードワード内の1つ以上の誤りビットの第1のセットを識別するために、前記チャネル出力コードワードに基づいて前記元の符号化コードワードを派生コードワードと比較するステップ、
    (d)前記第1のセット内の1つ以上の誤りビットを選択することにより前記書き込まれた符号化コードワード内の1つ以上の誤りビットの第2のセットを生成するステップ、
    及び
    (e)前記記憶媒体に、前記第2のセット内の前記1つ以上の誤りビットに対応する誤りビット情報を書き込むステップであって、前記誤りビット情報は、前記書き込まれた符号化コードワードのための一意の識別子及び前記第2のセット内の前記1つ以上の誤りビットのための添字を備えるステップ
    を備える方法。
  2. 請求項1記載の方法であって、元の符号化コードワードは低密度パリティチェックコードワードである、方法。
  3. 請求項1記載の方法であって、ステップ(c)は、前記チャネル出力コードワードに対する復号を実行して前記派生コードワードを生成するステップをさらに備える、方法。
  4. 請求項1記載の方法であって、
    (f)前記記憶媒体から前記書き込まれた符号化コードワードを読み出すことによりデコーダ入力コードワードを生成するステップ、
    (g)前記デコーダ入力コードワードに対する復号を実行して、復号コードワードを生成するステップ、並びに
    (h)復号コードワードが、復号された正しいコードワードでない場合は、
    (h1)前記記憶媒体から前記誤りビット情報を読み出すステップ、
    (h2)前記誤りビット情報に基づいて、修正コードワードを生成するステップ、及び
    (h3)前記修正コードワードに対してさらなる処理を実行するステップ
    をさらに備える方法。
  5. 請求項1記載の方法であって、ステップ(d)は、
    (d1)前記第1のセット内の1つ以上の誤りビットを選択するステップ、
    (d2)前記1つ以上の選択された誤りビットに基づいて修正コードワードを生成するステップ、
    (d3)前記修正コードワードに対する復号を実行して候補復号コードワードを生成するステップ、
    (d4)前記候補復号コードワードが復号された正しいコードワードであるかどうかを判定するステップ、
    (d5)前記候補復号コードワードが前記復号された正しいコードワードである場合は、前記1つ以上の選択された誤りビットに基づいて前記第2のセットを生成するステップ、及び
    (d6)前記候補復号コードワードが前記復号された正しいコードワードでない場合は、前記第1のセット内に別の1つ以上の選択された誤りビットがないかステップ(d1)〜(d4)を繰り返すステップ
    を備える、方法。
  6. 記憶媒体に記憶されている書き込まれた符号化コードワードのための復号コードワードを生成するための機械実装方法であって、前記書き込まれた符号化コードワードは1つ以上の誤りビットを有し、
    (a)前記記憶媒体から前記書き込まれた符号化コードワードを読み出すことによりチャネル出力コードワードを生成するステップ、
    (b)前記チャネル出力コードワードに基づいて派生コードワードを生成するステップ、
    (c)前記記憶媒体から誤りビット情報を読み出すステップであって、前記誤りビット情報は前記書き込まれた符号化コードワード内の1つ以上の誤りビットに対応し、前記誤りビット情報は、前記書き込まれた符号化コードワードのための一意の識別子及び前記書き込まれた符号化コードワード内の1つ以上の誤りビットのための添字を備えるステップ、
    (d)前記誤りビット情報に基づいて修正コードワードを生成するステップ、及び
    (e)前記修正コードワードに対する処理を実行して前記復号コードワードを生成するステップ
    を備える方法。
  7. 請求項6記載の方法であって、前記書き込まれた符号化コードワードは低密度パリティチェックコードワードである、方法。
  8. 請求項6記載の方法であって、ステップ(b)は、
    (b1)前記チャネル出力コードワードに対する復号を実行して前記派生コードワードを生成するステップ、及び
    (b2)前記派生コードワードが復号された正しいコードワードではないと判定するステップ
    を備える、方法。
  9. 請求項6記載の方法であって、ステップ(e)は、
    (e1)前記誤りビット情報が前記書き込まれた符号化コードワード内の前記誤りビットの全てに対応するか否かを判定するステップ、
    (e2)前記誤りビット情報が前記書き込まれた符号化コードワード内の前記誤りビットの全てに対応する場合は、前記修正コードワードに対してシンドロームチェック及び巡回冗長検査(CRC)のうちの1つ以上を実行するステップ、及び
    (e3)前記誤りビット情報が前記書き込まれた符号化コードワード内の前記誤りビットの全てには対応しない場合は、前記修正コードワードに対して復号を実行するステップを備える、方法。
  10. 請求項6記載の方法であって、前記誤りビット情報は
    記誤りビット情報が前記書き込まれた符号化コードワード内の前記誤りビットの全てに対応するかどうかの表示
    さらに備える、方法。
JP2012507186A 2009-04-21 2009-04-21 書込み検証を使用した符号のエラーフロア軽減 Expired - Fee Related JP5432367B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2009/041215 WO2010123493A1 (en) 2009-04-21 2009-04-21 Error-floor mitigation of codes using write verification

Publications (3)

Publication Number Publication Date
JP2012525062A JP2012525062A (ja) 2012-10-18
JP2012525062A5 JP2012525062A5 (ja) 2013-06-27
JP5432367B2 true JP5432367B2 (ja) 2014-03-05

Family

ID=43011368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012507186A Expired - Fee Related JP5432367B2 (ja) 2009-04-21 2009-04-21 書込み検証を使用した符号のエラーフロア軽減

Country Status (7)

Country Link
US (1) US8484535B2 (ja)
EP (1) EP2307960B1 (ja)
JP (1) JP5432367B2 (ja)
KR (1) KR101321487B1 (ja)
CN (1) CN102077173B (ja)
TW (1) TWI411912B (ja)
WO (1) WO2010123493A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301979B2 (en) * 2008-10-07 2012-10-30 Sandisk Il Ltd. Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders
US8683277B1 (en) * 2010-07-13 2014-03-25 Marvell International Ltd. Defect detection using pattern matching on detected data
US8996967B2 (en) 2010-08-06 2015-03-31 Stmicroelectronics, Inc. Rendering data write errors detectable
US8745466B2 (en) * 2010-08-06 2014-06-03 Stmicroelectronics, Inc. Detecting data-write errors
US8769380B1 (en) * 2010-11-02 2014-07-01 Marvell International Ltd. Methods and apparatus for error recovery in memory systems employing iterative codes
US8768990B2 (en) 2011-11-11 2014-07-01 Lsi Corporation Reconfigurable cyclic shifter arrangement
US8775897B2 (en) * 2012-05-07 2014-07-08 Lsi Corporation Data processing system with failure recovery
US9213602B1 (en) 2014-06-23 2015-12-15 Seagate Technology Llc Write mapping to mitigate hard errors via soft-decision decoding
US9602243B2 (en) * 2014-08-26 2017-03-21 Electronics And Telecommunications Research Institute Low density parity check encoder, and low density parity check encoding method using the same
GB2531783B (en) 2014-10-30 2016-09-28 Ibm Method and device for removing error patterns in binary data
KR102556479B1 (ko) * 2015-03-20 2023-07-17 에스케이하이닉스 주식회사 Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
US10108509B2 (en) * 2015-07-16 2018-10-23 Texas Instruments Incorporated Dynamic enabling of redundant memory cells during operating life
US9817716B2 (en) 2015-07-16 2017-11-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for retaining non-converged data sets for additional processing
US20170161141A1 (en) * 2015-12-02 2017-06-08 Samsung Electronics Co., Ltd. Method and apparatus for correcting data in multiple ecc blocks of raid memory
TWI632780B (zh) 2016-12-30 2018-08-11 慧榮科技股份有限公司 解碼方法與相關解碼裝置
US11010245B2 (en) * 2018-06-21 2021-05-18 Winbond Electronics Corp. Memory storage apparatus with dynamic data repair mechanism and method of dynamic data repair thereof
KR102643457B1 (ko) * 2018-11-19 2024-03-06 에스케이하이닉스 주식회사 Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
TWI748214B (zh) * 2019-07-29 2021-12-01 慧榮科技股份有限公司 快閃記憶體控制器、儲存裝置及其讀取方法
US11271589B2 (en) * 2019-10-18 2022-03-08 SK Hynix Inc. Memory system with error-reduction scheme for decoding and method of operating such memory system
US11537927B2 (en) 2020-02-14 2022-12-27 International Business Machines Corporation Quantum readout error mitigation by stochastic matrix inversion
US11456757B2 (en) * 2020-12-16 2022-09-27 SK Hynix Inc. Oscillation detection and mitigation in bit-flipping decoders
CN113053451B (zh) * 2021-03-05 2022-05-10 深圳三地一芯电子有限责任公司 Nandflash内生成softbit的方法、系统、主机以及储存介质
US11621727B2 (en) 2021-06-04 2023-04-04 SK Hynix Inc. Decoding systems and methods for local reinforcement

Family Cites Families (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3755779A (en) 1971-12-14 1973-08-28 Ibm Error correction system for single-error correction, related-double-error correction and unrelated-double-error detection
US4295218A (en) 1979-06-25 1981-10-13 Regents Of The University Of California Error-correcting coding system
CA1305768C (en) 1987-11-16 1992-07-28 Masanobu Arai Digital signal receiving circuit with means for controlling a baud rate sampling phase by a power of sampled signals
US5721745A (en) 1996-04-19 1998-02-24 General Electric Company Parallel concatenated tail-biting convolutional code and decoder therefor
US6023783A (en) 1996-05-15 2000-02-08 California Institute Of Technology Hybrid concatenated codes and iterative decoding
US5734962A (en) 1996-07-17 1998-03-31 General Electric Company Satellite communications system utilizing parallel concatenated coding
JP2856190B2 (ja) 1997-02-27 1999-02-10 日本電気株式会社 演算処理装置および演算処理方法
US6550023B1 (en) 1998-10-19 2003-04-15 Hewlett Packard Development Company, L.P. On-the-fly memory testing and automatic generation of bitmaps
US6678843B2 (en) 1999-02-18 2004-01-13 Interuniversitair Microelektronics Centrum (Imec) Method and apparatus for interleaving, deinterleaving and combined interleaving-deinterleaving
US6598204B1 (en) 1999-02-18 2003-07-22 Imec Vzw System and method of turbo decoding
US6307901B1 (en) 2000-04-24 2001-10-23 Motorola, Inc. Turbo decoder with decision feedback equalization
US6888897B1 (en) 2000-04-27 2005-05-03 Marvell International Ltd. Multi-mode iterative detector
AU2001261509A1 (en) 2000-05-11 2001-11-20 Thomas J. Reynolds Interactive method and system for teaching decision making
US6745157B1 (en) 2000-06-02 2004-06-01 Mitsubishi Electric Research Laboratories, Inc Super-node normalized belief propagation for probabilistic systems
US6910000B1 (en) 2000-06-02 2005-06-21 Mitsubishi Electric Research Labs, Inc. Generalized belief propagation for probabilistic systems
JP2002111512A (ja) 2000-09-29 2002-04-12 Sony Corp 復号装置及び方法、並びにデータ受信装置及び方法
US6950977B2 (en) 2001-03-15 2005-09-27 3G.Com, Inc. Mechanism for turbo decoding when CRC for partial blocks is provided
NO316488B1 (no) 2002-04-26 2004-01-26 Kongsberg Defence Comm As Fremgangsmåte og apparat for mottak av digitale kommunikasjonssignaler
JP3708064B2 (ja) * 2002-05-31 2005-10-19 株式会社東芝 ディスク記憶装置、ディスクコントローラ及び同装置に適用するエラー訂正方法
EP1568140A1 (en) * 2002-11-27 2005-08-31 Koninklijke Philips Electronics N.V. Running minimum message passing ldpc decoding
US7296216B2 (en) 2003-01-23 2007-11-13 Broadcom Corporation Stopping and/or reducing oscillations in low density parity check (LDPC) decoding
US20070234178A1 (en) 2003-02-26 2007-10-04 Qualcomm Incorporated Soft information scaling for interactive decoding
WO2004079563A1 (en) 2003-02-26 2004-09-16 Flarion Technologies, Inc. Soft information scaling for iterative decoding
US7340671B2 (en) 2003-10-10 2008-03-04 Regents Of The University Of California Decoding low density parity codes
KR101009785B1 (ko) 2003-12-10 2011-01-19 삼성전자주식회사 불균일 반복 축적 부호 부호화/복호화 장치 및 방법
US7237181B2 (en) * 2003-12-22 2007-06-26 Qualcomm Incorporated Methods and apparatus for reducing error floors in message passing decoders
US7607053B2 (en) 2003-12-30 2009-10-20 Telefonaktiebolaget L M Ericsson (Publ) Method and device for calculating bit error rate of received signal
US20050193320A1 (en) * 2004-02-09 2005-09-01 President And Fellows Of Harvard College Methods and apparatus for improving performance of information coding schemes
JP2005242797A (ja) 2004-02-27 2005-09-08 Oki Electric Ind Co Ltd エラー訂正回路
US7383484B2 (en) 2004-03-12 2008-06-03 Seagate Technology Llc Cyclic redundancy check based message passing in turbo product code decoding
WO2005096509A1 (en) * 2004-03-31 2005-10-13 Intel Corporation Multi-threshold message passing decoding of low-density parity check codes
US7353444B2 (en) 2004-05-07 2008-04-01 Comtech Aha Corporation LDPC architecture
GB2414638A (en) 2004-05-26 2005-11-30 Tandberg Television Asa Decoding a concatenated convolutional-encoded and block encoded signal
US20050283707A1 (en) 2004-06-22 2005-12-22 Eran Sharon LDPC decoder for decoding a low-density parity check (LDPC) codewords
US7457367B2 (en) 2004-07-07 2008-11-25 University Of Utah Research Foundation Detector and method for estimating data probability in a multi-channel receiver
JP2008507194A (ja) 2004-07-15 2008-03-06 サムスン エレクトロニクス カンパニー リミテッド 動き情報符号化装置及び方法、動き情報復号化装置及び方法、これを採用したスケーラブル映像符号化装置及び方法とスケーラブル映像復号化装置及び方法
US7181676B2 (en) 2004-07-19 2007-02-20 Texas Instruments Incorporated Layered decoding approach for low density parity check (LDPC) codes
US7730377B2 (en) 2004-07-22 2010-06-01 Texas Instruments Incorporated Layered decoding of low density parity check (LDPC) codes
US7143333B2 (en) 2004-08-09 2006-11-28 Motorola, Inc. Method and apparatus for encoding and decoding data
CN101341659B (zh) 2004-08-13 2012-12-12 Dtvg许可公司 用于多输入多输出通道的低密度奇偶校验码的码设计与实现的改进
US7760880B2 (en) 2004-10-13 2010-07-20 Viasat, Inc. Decoder architecture system and method
US8359513B2 (en) 2005-01-19 2013-01-22 Intel Corporation Data communications methods and apparatus
JP4595574B2 (ja) 2005-02-07 2010-12-08 ソニー株式会社 復号装置および方法、並びにプログラム
EP1717959A1 (en) 2005-04-29 2006-11-02 STMicroelectronics N.V. Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords
US7577891B2 (en) 2005-05-27 2009-08-18 Aquantia Corporation Method and apparatus for extending decoding time in an iterative decoder using input codeword pipelining
US7802172B2 (en) 2005-06-20 2010-09-21 Stmicroelectronics, Inc. Variable-rate low-density parity check codes with constant blocklength
US20060285852A1 (en) 2005-06-21 2006-12-21 Wenze Xi Integrated maximum a posteriori (MAP) and turbo product coding for optical communications systems
US7739558B1 (en) 2005-06-22 2010-06-15 Aquantia Corporation Method and apparatus for rectifying errors in the presence of known trapping sets in iterative decoders and expedited bit error rate testing
WO2007001305A1 (en) 2005-06-27 2007-01-04 Thomson Licensing Stopping criteria in iterative decoders
US7725800B2 (en) 2005-08-05 2010-05-25 Hitachi Global Stroage Technologies Netherlands, B.V. Decoding techniques for correcting errors using soft information
US7770090B1 (en) 2005-09-14 2010-08-03 Trident Microsystems (Far East) Ltd. Efficient decoders for LDPC codes
US8867336B2 (en) 2005-09-28 2014-10-21 Qualcomm Incorporated System for early detection of decoding errors
US20070089016A1 (en) 2005-10-18 2007-04-19 Nokia Corporation Block serial pipelined layered decoding architecture for structured low-density parity-check (LDPC) codes
US20070089019A1 (en) 2005-10-18 2007-04-19 Nokia Corporation Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including calculating check-to-variable messages
US7844877B2 (en) 2005-11-15 2010-11-30 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
US7602838B2 (en) 2005-12-22 2009-10-13 Telefonaktiebolaget Lm Ericsson (Publ) Linear turbo equalization using despread values
FI20055715A0 (fi) 2005-12-30 2005-12-30 Nokia Corp Turboekvalisointimenettely
US7752523B1 (en) 2006-02-13 2010-07-06 Marvell International Ltd. Reduced-complexity decoding of parity check codes
US7805642B1 (en) 2006-02-17 2010-09-28 Aquantia Corporation Low power iterative decoder using input data pipelining and voltage scaling
WO2007114724A1 (en) 2006-03-31 2007-10-11 Intel Corporation Layered decoder and method for performing layered decoding
US7941737B2 (en) 2006-04-19 2011-05-10 Tata Consultancy Services Limited Low density parity check code decoder
JP4341639B2 (ja) 2006-05-15 2009-10-07 住友電気工業株式会社 復号装置および復号プログラム
US7941726B2 (en) 2006-06-30 2011-05-10 Microsoft Corporation Low dimensional spectral concentration codes and direct list decoding
US7580469B2 (en) 2006-07-06 2009-08-25 Provigent Ltd Communication link control using iterative code metrics
US7895500B2 (en) 2006-07-28 2011-02-22 Via Telecom Co., Ltd. Systems and methods for reduced complexity LDPC decoding
FR2905209B1 (fr) 2006-08-24 2008-10-31 St Microelectronics Sa Procede et dispositif de decodage de blocs encodes avec un code ldpc
FR2905210B1 (fr) 2006-08-24 2008-10-31 St Microelectronics Sa Procede et dispositif de decodage par couches d'une succession de blocs encodes avec un code ldpc
US7644339B2 (en) 2006-10-02 2010-01-05 Broadcom Corporation Overlapping sub-matrix based LDPC (low density parity check) decoder
CN101174839A (zh) * 2006-10-30 2008-05-07 富士通株式会社 编码装置、解码装置、编码/解码装置及记录/再现装置
US7979775B2 (en) 2006-10-30 2011-07-12 Motorola Mobility, Inc. Turbo interference suppression in communication systems
JP4833173B2 (ja) 2006-10-30 2011-12-07 富士通株式会社 復号化器、符号化・復号化装置及び記録再生装置
JP2008112516A (ja) * 2006-10-31 2008-05-15 Fujitsu Ltd 誤り訂正回路及び情報再生装置
JP5251000B2 (ja) * 2006-11-01 2013-07-31 富士通株式会社 誤り訂正回路及び媒体記憶装置
US8255763B1 (en) 2006-11-08 2012-08-28 Marvell International Ltd. Error correction system using an iterative product code
US7949927B2 (en) 2006-11-14 2011-05-24 Samsung Electronics Co., Ltd. Error correction method and apparatus for predetermined error patterns
FR2909499B1 (fr) 2006-12-01 2009-01-16 Commissariat Energie Atomique Procede et dispositif de decodage pour codes ldpc, et appareil de communication comprenant un tel dispositif
WO2008076214A2 (en) 2006-12-14 2008-06-26 Regents Of The University Of Minnesota Error detection and correction using error pattern correcting codes
US7949931B2 (en) 2007-01-02 2011-05-24 International Business Machines Corporation Systems and methods for error detection in a memory system
US8051363B1 (en) 2007-01-16 2011-11-01 Marvell International Ltd. Absorb decode algorithm for 10GBase-T LDPC decoder
US8117515B2 (en) 2007-03-23 2012-02-14 Sizhen Yang Methodology and apparatus for soft-information detection and LDPC decoding on an ISI channel
US7904793B2 (en) 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
US20080256419A1 (en) * 2007-04-13 2008-10-16 Microchip Technology Incorporated Configurable Split Storage of Error Detecting and Correcting Codes
US7495519B2 (en) * 2007-04-30 2009-02-24 International Business Machines Corporation System and method for monitoring reliability of a digital system
US8418023B2 (en) 2007-05-01 2013-04-09 The Texas A&M University System Low density parity check decoder for irregular LDPC codes
US8151171B2 (en) 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
US7930621B2 (en) 2007-06-01 2011-04-19 Agere Systems Inc. Systems and methods for LDPC decoding with post processing
US8032816B2 (en) 2007-06-01 2011-10-04 International Business Machines Corporation Apparatus and method for distinguishing temporary and permanent errors in memory modules
US7765426B2 (en) * 2007-06-07 2010-07-27 Micron Technology, Inc. Emerging bad block detection
US8037394B2 (en) 2007-06-29 2011-10-11 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for generating bit reliability information in a post-processor using an error correction constraint
US8214719B1 (en) * 2007-07-26 2012-07-03 Marvell International Ltd. Long latency protocol for hard disk controller interface
US8127209B1 (en) 2007-07-30 2012-02-28 Marvell International Ltd. QC-LDPC decoder with list-syndrome decoding
US8181083B2 (en) 2007-08-27 2012-05-15 Stmicroelectronics S.R.L. Methods and architectures for layered decoding of LDPC codes with minimum latency
US8140948B2 (en) 2007-09-24 2012-03-20 Nec Laboratories America, Inc. Efficient low complexity high throughput LDPC decoding method and optimization
GB2455496B (en) 2007-10-31 2012-05-30 Hewlett Packard Development Co Error detection method and apparatus
US8127216B2 (en) 2007-11-19 2012-02-28 Seagate Technology Llc Reduced state soft output processing
US8219878B1 (en) 2007-12-03 2012-07-10 Marvell International Ltd. Post-processing decoder of LDPC codes for improved error floors
US8020070B2 (en) 2007-12-05 2011-09-13 Aquantia Corporation Trapping set decoding for transmission frames
US8156409B2 (en) 2008-02-29 2012-04-10 Seagate Technology Llc Selectively applied hybrid min-sum approximation for constraint node updates of LDPC decoders
US8161357B2 (en) 2008-03-17 2012-04-17 Agere Systems Inc. Systems and methods for using intrinsic data for regenerating data from a defective medium
US8099645B2 (en) 2008-04-11 2012-01-17 Nec Laboratories America, Inc. LDPC codes and stochastic decoding for optical transmission
US8245104B2 (en) 2008-05-02 2012-08-14 Lsi Corporation Systems and methods for queue based data detection and decoding
KR20090126829A (ko) 2008-06-05 2009-12-09 삼성전자주식회사 반복 복호 방법과 반복 복호 장치
US20090319860A1 (en) 2008-06-23 2009-12-24 Ramot At Tel Aviv University Ltd. Overcoming ldpc trapping sets by decoder reset
US20100037121A1 (en) 2008-08-05 2010-02-11 The Hong Kong University Of Science And Technology Low power layered decoding for low density parity check decoders
CN101803205B (zh) * 2008-08-15 2013-12-18 Lsi公司 近码字的ram列表解码
US8392692B2 (en) 2008-08-15 2013-03-05 Lsi Corporation Determining index values for bits of binary vector by processing masked sub-vector index values
US8103931B2 (en) 2008-08-27 2012-01-24 Mitsubishi Electric Research Laboratories, Inc. Method for constructing large-girth quasi-cyclic low-density parity-check codes
JP2010062907A (ja) 2008-09-04 2010-03-18 Toshiba Corp 復号装置および方法
US8301979B2 (en) 2008-10-07 2012-10-30 Sandisk Il Ltd. Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders
US8205144B1 (en) 2008-10-13 2012-06-19 Marvell International Ltd. Error event processing methods and systems
US8161345B2 (en) 2008-10-29 2012-04-17 Agere Systems Inc. LDPC decoders using fixed and adjustable permutators
JP4516625B1 (ja) 2009-08-11 2010-08-04 正幸 安部 電子装置
US8407550B2 (en) 2009-08-14 2013-03-26 Mitsubishi Electric Research Laboratories, Inc. Method and system for decoding graph-based codes using message-passing with difference-map dynamics
JP5527176B2 (ja) 2010-11-25 2014-06-18 ソニー株式会社 非水電解質電池

Also Published As

Publication number Publication date
EP2307960A1 (en) 2011-04-13
TW201129901A (en) 2011-09-01
US8484535B2 (en) 2013-07-09
KR101321487B1 (ko) 2013-10-23
KR20120011310A (ko) 2012-02-07
EP2307960A4 (en) 2013-01-16
CN102077173A (zh) 2011-05-25
US20120030539A1 (en) 2012-02-02
EP2307960B1 (en) 2018-01-10
CN102077173B (zh) 2015-06-24
JP2012525062A (ja) 2012-10-18
TWI411912B (zh) 2013-10-11
WO2010123493A1 (en) 2010-10-28

Similar Documents

Publication Publication Date Title
JP5432367B2 (ja) 書込み検証を使用した符号のエラーフロア軽減
JP5506828B2 (ja) 繰り返し復号器のための改良ターボ等化方法
US8448039B2 (en) Error-floor mitigation of LDPC codes using targeted bit adjustments
US9397698B1 (en) Methods and apparatus for error recovery in memory systems employing iterative codes
US8448050B2 (en) Memory system and control method for the same
WO2018142391A1 (en) Device, system and method of implementing product error correction codes for fast encoding and decoding
JP5670411B2 (ja) トラッピング・セットを破壊するための装置および方法
US8341506B2 (en) Techniques for correcting errors using iterative decoding
TWI797189B (zh) 用於多個字元線失敗的軟晶片消除恢復
EP2573943A1 (en) Power-optimized decoding of linear codes
US20170279467A1 (en) Performance optimization in soft decoding of error correcting codes
US11641213B2 (en) Log-likelihood ratio mapping tables in flash storage systems
JP2019057752A (ja) メモリシステム
US20170132077A1 (en) Non-Binary Low Density Parity Check Code Column Rotation
US8868999B1 (en) Systems and methods for erasure correction of iterative codes
KR101484066B1 (ko) 엘디피시 부호의 디코딩 방법
CN114333964A (zh) 用于存储器的纠错方法、装置、电子设备及介质

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120713

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130513

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20130513

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130711

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130718

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131017

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131205

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees