JP5593312B2 - デコーダのリセットによるldpcトラッピング集合の克服 - Google Patents

デコーダのリセットによるldpcトラッピング集合の克服 Download PDF

Info

Publication number
JP5593312B2
JP5593312B2 JP2011515675A JP2011515675A JP5593312B2 JP 5593312 B2 JP5593312 B2 JP 5593312B2 JP 2011515675 A JP2011515675 A JP 2011515675A JP 2011515675 A JP2011515675 A JP 2011515675A JP 5593312 B2 JP5593312 B2 JP 5593312B2
Authority
JP
Japan
Prior art keywords
code word
codeword
bits
bit
representation
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
JP2011515675A
Other languages
English (en)
Other versions
JP2011525771A5 (ja
JP2011525771A (ja
Inventor
シャロン、エラン
アルロド、イダン
リツィン、シモン
Original Assignee
ラマト アット テル アビブ ユニバーシティ リミテッド
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 ラマト アット テル アビブ ユニバーシティ リミテッド filed Critical ラマト アット テル アビブ ユニバーシティ リミテッド
Publication of JP2011525771A publication Critical patent/JP2011525771A/ja
Publication of JP2011525771A5 publication Critical patent/JP2011525771A5/ja
Application granted granted Critical
Publication of JP5593312B2 publication Critical patent/JP5593312B2/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
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • 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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2948Iterative decoding
    • H03M13/2951Iterative decoding using iteration stopping criteria
    • 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/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding

Description

本特許出願は、2008年6月23日出願の米国仮特許出願第61/074,701号を優先権主張するものである。
本明細書に、トラッピング集合に起因する非収束を克服する低密度パリティチェック(LDPC)復号化の方法および関連装置を開示する。
誤り訂正符号(ECC)は、通信システムおよび記憶装置において共通的に用いられる。通信チャネルおよび記憶装置の両方において生じる各種の物理現象の結果として通信または保存された情報を損なうノイズ効果が生じる。誤り訂正符号化スキームを用いて、通信または保存された情報を結果的に生じた誤りから保護することができる。これは、通信チャネルを介した伝送またはメモリ装置への保存の前に情報を符号化することにより行われる。符号化処理は、情報に冗長性を加えることにより情報ビットシーケンスを符号ワードに変換する。次いでこの冗長性を用いて、復号処理を介して損なわれた可能性のある符号ワードから情報を復元することができる。
通信システムおよび記憶システムの両方において、情報ビットシーケンスは、通信チャネルにまたはメモリ装置に適合された一連のシンボルxに変調または写像された符号化ビットシーケンスに符号化される。通信チャネルまたはメモリ装置の出力端で一連のシンボルが得られる。当該システムのECCデコーダはシーケンスを復号化して、ビットシーケンス
Figure 0005593312
を復元するものであり、元の情報ビットシーケンスを高い確度で再構築しなければならない。
一般的なECCファミリーは、線形2値ブロック符号のファミリーである。長さがNであるK次元の線形2値符号は、長さKの情報ビットシーケンスを長さNの符号ワードに線形写像したものであって、N>Kである。符号レートはR=K/Nで定義される。1×N次元の符号ワードの符号化処理が通常、次式に従い1×K次元の情報ビットシーケンスにK×N次元の生成行列Gを乗ずることで行われる。
Figure 0005593312
また、M×次元のパリティチェック行列Hを定義することも慣習的であり、M=N−K である。パリティチェック行列は、次式を介して生成行列に関連付けられる。
Figure 0005593312
パリティチェック行列を用いて、長さがNである2値ベクトルが有効な符号ワードであるか否かを調べることができる。1×Nの2値ベクトルは、次式が成立する場合に限っ
て符号に属する。
Figure 0005593312
(式(3)において、’のプライム記号は’が列ベクトルであることを意味する。)
近年、反復的符号化スキームが広く普及している。これらのスキームにおいて、符号はいくつかの簡単な組成符号の連接として構成され、簡単な符号の組成デコーダの間で情報を交換することにより、反復的な復号化アルゴリズムを用いて復号化される。通常、符号は組成符号間の相互接続を記述する二部グラフを用いて定義することができる。この場合、復号化はグラフの辺を介してやり取りされる反復的メッセージと見なすことができる。
反復符号の伝播しているクラスは、低密度パリティチェック(LDPC)符号である。LDPC符号は、疎なパリティチェック行列Hにより定義される線形2値ブロック符号である。図1に示すように、当該符号を同等に、N個のビットノード(図1ではN=13)の集合V、M個のチェックノード(図1ではM=10)の集合C、およびビットノードをチェックノードに接続する辺の集合E(図1ではE=38)を有する疎な二部グラフG=(V,C,E)により定義できる。ビットノードは符号ワードビットに対応し、チェックノードはビットに対するパリティチェック制約に対応する。ビットノードは、辺により当該ビットノードが関与するチェックノードに接続される。図1の左側の符号の行列表現において、ビットノードiをチェックノードjに接続している辺を行jと列iの交差箇所における非ゼロの行列成分で表す。
図1の最初および最後のチェックノードの次に、式(3)に等価な行を示す。記号
Figure 0005593312
は「XOR」を意味する。
LDPC符号は、反復的メッセージ受け渡し復号化アルゴリズムを用いて復号化することができる。これらのアルゴリズムは、ビットノード間でメッセージを交換することにより動作し、符号を表す基礎となる二部グラフの辺に沿ってノードをチェックする。デコーダには、符号ワードビットの初期推定値が与えられる(通信チャネル出力または読み出されたメモリ内容に基づいて)。これらの初期推定値は、有効な符号ワードとしてビットが満たすべきパリティチェック制約(式(3)による)を課すことにより洗練および改良される。これは、グラフの辺に沿って受け渡されるメッセージを用いて、符号ワードビットを表すビットノードと符号ワードビットに対するパリティチェック制約を表すチェックノードの間で情報を交換することにより行われる。
反復復号化アルゴリズムにおいて、ビット推定値およびビット推定値の信頼度の両方を伝達する「弱い」ビット推定値の利用が一般的である。
グラフの辺に沿って受け渡されるメッセージにより伝達されるビット推定値はさまざまな形式で表すことができる。「弱い」ビット推定値を表す一般的な尺度は、対数尤度比(LLR)であり、
Figure 0005593312
(current constraints and observations:現在の制約および観測値)
ここに、「現在の制約および観測値」が手元のメッセージを計算する際に考慮される各種のパリティチェック制約であり、観測値はこれらのパリティチェックに関与するビットに対応する。一般性を失うことなく、簡潔のため以下において常にLLRメッセージを用いるものと仮定する。LLRの符号はビットの推定値を与える(すなわち、正のLLRはv=0に対応し、負のLLRはv=1に対応する)。LLRの大きさは、推定値の信頼度を与える(すなわち、|LLR|=0は推定値が全く信頼できないことを意味し、|LLR|=±∞は推定値が完全に信頼でき且つビット値が既知であることを意味する)。
通常、ビットノードとチェックノードの間のグラフ辺に沿った復号化を行う間に受け渡されるメッセージは外因的である。辺e上のノードnから受け渡された外因的メッセージmは、辺e以外でnに接続している辺上で受取られた全ての値を考慮に入れる(当該メッセージは新しい情報だけに基づいているため、外因的と呼ばれる)。
メッセージ受け渡し復号化アルゴリズムの一例として、確率伝播(BP)アルゴリズムがあり、メッセージ受け渡しアルゴリズムファミリの中で最良のアルゴリズムと考えられる。
v=log(Pr(v=0|y)/Pr(v=1|y))が、受信されたかまたは読
み出された記号yだけに基づいてビットvの初期デコーダ推定値を表すとする。ビットのいくつかは通信チャネルを介して送信されていないかまたはメモリ装置に保存されていないためにこれらのビットのy観測値が無い可能性もある点に注意されたい。この場合、二つの可能性がある。1)短縮ビット、すなわちビットは先験的に知られていてPv=±∞
(ビットが0か1に応じて)である。2)パンクチャードビット、すなわちビットは先見的には知られておらずPv=log(Pr(v=0)/Pr(v=1))であり、Pr(
v=0)およびPr(v=1)はビットvが各々0または1である先験的確率である。情報ビットが0または1である先験的確率が等しく、且つ符号が線形であると仮定すれば、Pv=log((1/2)/(1/2))=0である。
v=log(Pr(v=0|,H・=0)/Pr(v=1|,H・=0))
が、受取ったかまたは読み出された全体のシーケンスに基づき、且つビットvが符号ワードの一部であると仮定(すなわち、H・=0と仮定)して、ビットvの最終デコーダ推定値を表すとする。
vcがビットノードvからチェックノードcへのメッセージを表すとする。Rcvをチェックノードcからビットノードvへのメッセージを表すとする。
BPアルゴリズムは以下の更新規則を利用してメッセージを計算する。
ビットノードからチェックノードへの計算規則は次式である。
Figure 0005593312
ここに、N(n,G)はグラフGにおけるノードnの隣接ノードの集合を表し、c’∈N(v,G)\cは、ノード「c」を除く隣接ノードを指す(和はc以外の全ての隣接ノードについて求める)。
チェックノードからビットノードへの計算規則は次式である。
Figure 0005593312
ここに、φ(x)={sign(x),−log tanh(|x|/2)}であって、φ領域内の演算は群{0,1}×R+にわたり行われる(これは基本的に、ここでの和
は大きさの合計と符号同士のXORとして定義されていることを意味する)。式(4)の表記と同様に、N(c,G)はグラフG内のチェックノードcの隣接するビットノードの集合を表し、v’∈N(c,G)\vはノード「v」を除く隣接ノードを指す(和はv以外の全ての隣接ノードについて求める)。
ビットvに対する最終デコーダ推定値は以下の通りである。
Figure 0005593312
メッセージ受け渡し復号化を行う間におけるメッセージ受け渡しの順序を復号化スケジュールと呼ぶ。BP復号化は特定のスケジュールを用いることは示唆せず、計算規則(式(4)、(5)および(6))を定義するだけである。復号化スケジュールは、符号の期待される誤り訂正能力に影響を及ぼさない。しかし、復号化スケジュールは、デコーダの収束速度およびデコーダの複雑度に大いに影響し得る。
LDPC符号を復号化する標準メッセージ受け渡しスケジュールは、各反復において全ての可変ノード、および後続する全てのチェックノードが隣接ノードに新規メッセージを受け渡すフラッディングスケジュールである(R.G.Gallager,Low-Density Parity-Check Codes,Camridge,MA:MIT Press 1963)。フラッディングスケジュールに基づく標準BPアルゴリズムを図2に与える。
フラッディングスケジュールに基づくBPアルゴリズムの標準的な実装は必要なメモリの観点から高価である。(Pv,Qv,Qvc、およびRcv個のメッセージを保存するために)総計で2|V|+2|E|個のメッセージを保存する必要がある。更に、フラッディングスケジュールは収束速度が遅いため、必要とされる誤り訂正能力を所与の復号化スループットで提供するためにより高度な復号化論理(例:ASIC上により多くのプロセッサ)を必要とする。
より効率的な、連続メッセージ受け渡し復号化スケジュールが知られている。連続メッセージ受け渡し復号化スケジュールでは、ビットまたはチェックノードを連続的に辿り、各ノードについて、当該ノードとの間で対応するメッセージがやり取りされる。例えば、連続スケジュールは、グラフ内のチェックノードを何らかの順序で連続的に辿ることにより実装でき、各チェックノードc∈Cについて以下のメッセージは送られる。
1.各v∈N(c)に対してQvc(すなわち、ノードcへの全てのQvcメッセージ)
2.各v∈N(c)に対してRcv(すなわち、ノードcからの全てのRcvメッセージ)
フラッディングスケジュールとは対照的に、連続スケジュールはグラフ上で情報の即時且つより高速な伝播を可能にする結果、収束がより速く(ほぼ2倍速く)なる。更に、連続スケジュールは、必要なメモリを大幅に減らしつつ効率的に実装できる。これは、Qvc
メッセージをオンザフライ計算するためにQv個のメッセージおよびRcv個のメッセージ
を用いることにより実現でき、従ってQvc個のメッセージを保存するための追加メモリを使用する必要がなくなる。これは式(4)、(6)に基づいてQvcを(Qv−Rcv)で表
すことにより行われる。更に、先験的なメッセージPvにより初期化されたものと同一メ
モリを用いて、反復的に更新されたQv個の後験的メッセージを保存する。フラッディン
グスケジュールの標準的な実装では符号のグラフ構造を保存するために2倍のメモリを必要とする両方のデータ構造N(c)∀c∈CおよびN(v)∀v∈Vを使用するのに対し、連続スケジュールではN(c)∀c∈Cに関する知識だけを使用すればよいため、必要なメモリを更に減らすことができる。連続にスケジューリングされた復号化アルゴリズムを図3に示す。
要約すれば、連続復号化スケジュールは、フラッディングスケジュールに対して以下の利点がある。
1)連続復号化スケジュールは、標準フラッディングスケジュールと比較して収束速度を2倍に上げる。これは、フラッディングスケジュールに基づくデコーダと比較して、所与のスループットで所与の誤り訂正能力を提供するために半分の復号化論理だけで済むことを意味する。
2)連続復号化スケジュールは、デコーダの実装におけるメモリ効率を高める。|V|+|E|個のメッセージだけを保存するRAMが必要である(標準フラッディングスケジュールのように2|V|+2|E|個のメッセージを保存するのではなく)。標準フラッディングスケジュールと比較して符号のグラフ構造を保存するのに半分のROMサイズで済む。
3)反復実行の間、「オンザフライ」収束テストを計算の一環として実施できるため、反復実行中に収束が検出でき、且つ任意の時点で復号化を終了できる。これにより復号に要する時間とエネルギー消費を節約できる。
[定義]
本明細書に記述する方法は、少なくとも二つの異なる条件下でデータ誤りの訂正に適用できる。一つの条件、記憶媒体からどのデータを取得するかである。他の条件は、伝送媒体からどのデータを受信するかである。記憶媒体および伝送媒体は、データに誤りを入れる「チャネル」の特別な場合である。データの「取得」および「受信」という概念を本明細書ではてデータを「インポート」するという概念に一般化している。データの「取得」およびデータの「受信」は、データをチャネルから「インポートする」特別な場合である。
本明細書に示す方法により復号化されるデータは符号ワードの表現である。これらの方法の一つが復号化に適用される前にチャネル内で符号ワードがノイズにより損なわれている恐れがあるため、データは符号ワードの「表現」に過ぎず、符号ワード自体ではない。
反復符号化システムでは図4で示すように、エラーフロアと呼ばれる好ましくない現象が生じ、通信チャネルまたはメモリ装置内で特定の「ノイズ」レベル以下では、ビット誤りの原因である「ノイズ」がたとえ減少するにせよ、デコーダの出力におけるブロック誤り率(BER)ははるかに遅く減少し始める。この現象は特に、必要なデコーダ出力ブロック誤り率が極めて低い(〜10-10)ことが求められる記憶システム内で問題となる。
図4では右へ行くほどノイズが増加する点に注意されたい。
反復符号化システムの誤り訂正能力およびエラーフロアは、符号長が増加するにつれて向上する(これはどのECCシステムでも言えるが、特に短い符号長で誤り訂正能力が劣る反復符号化システムで顕著である)ことが良く知られている。
しかし、反復符号化システムの従来方式の実装では、復号化ハードウェアのメモリの複雑度は符号長と比例するため、たとえ知られている最も効率的な実装(例:連続的にスケジューリングされたデコーダ)であっても長い符号を使用すれば複雑度が高まる。
従って、本明細書では、複雑度の低い復号化ハードウェアを用いて極めて低いエラーフロアおよびほぼ最適な誤り訂正能力を提供する極めて長いLDPC符号を実装する方法を開示する。
適切に設計されたLDPC符号は極めて強力であって、符号ワード内の多くの誤りを訂正できるが、たとえ不正確なビットの数が非常に少なくてグラフ内の特定の領域に限定できるにせよ、「トラッピング集合」として知られる現象に起因してデコーダが失敗し、符号のエラーフロアが増加する恐れがある。トラッピング集合は一般的なLDPC符号に対して明確に定義されていないものの、「これらは、誘導された部分グラフがごく少数の奇数次数チェックノードしか存在しないように、比較的少ない数の可変ノードを有する集合である。」として記述されている。
トラッピング集合は、LDPCグラフのトポロジおよび使用する特定の復号化アルゴリズムに関連していて、回避および解析するのが困難である。
トラッピング集合は、歴史的に記憶装置が要求する信頼度が、例えば保存された1014個のビット当たり1個のビット誤りというように比較的高いため、記憶装置分野で問題であった。その結果、フラッシュメモリ装置等のメモリ装置で用いられる符号はエラーフロアが低くなければならないが、トラッピング集合はエラーフロアを増やしてしまう。
従って、本明細書に示す一実施形態は、K個の情報ビットをN>K個の符号ワードビットとして符号化する符号ワードの表現を復号化する方法であって、本方法は(a)チャネルから符号ワードの表現をインポートすること、(b)N個のビットノードおよびN−K個のチェックノードを含むグラフにおけるビットノードとチェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新することおよび、(c)(i)所定の失敗基準に照らして復号化が収束に失敗し、且つ(ii)符号ワードビットの推定値が、当該グラフにトラッピング集合が含まれている兆候を示す基準を満たしている場合、反復を続ける前にメッセージの少なくとも一部をリセットすることを含んでいる。
本明細書に示す別の実施形態は、K個の情報ビットをN>K個の符号ワードビットとして符号化する符号ワードの表現を復号化する方法であって、本方法は(a)チャネルから符号ワードの表現をインポートすること、(b)N個のビットノードおよびN−K個のチェックノードを含むグラフにおけるビットノードとチェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新することおよび、(c)所定の失敗基準に照らして復号化が収束に失敗した場合、反復を続ける前に当該ビットノードから送られたメッセージの少なくとも一部を切り捨てることを含んでいる。
本明細書に示す別の実施形態は、K個の情報ビットをN>K個の符号ワードビットとし
て符号化する符号ワードの表現を復号化するデコーダであって、(a)N個のビットノードおよびN−K個のチェックノードを含むグラフにおけるビットノードとチェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新することおよび、(b)(i)所定の失敗基準に照らして復号化が収束に失敗し、且つ(ii)符号ワードビットの推定値が、当該グラフにトラッピング集合が含まれている兆候を示す基準を満たしている場合、反復を続ける前にメッセージの少なくとも一部をリセットすること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含んでいる。
本明細書に示す別の実施形態は、K個の情報ビットをN>K個の符号ワードビットとして符号化する符号ワードの表現を復号化するデコーダであって、(a)N個のビットノードおよびN−K個のチェックノードを含むグラフにおけるビットノードとチェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新することおよび、(b)所定の失敗基準に照らして復号化が収束に失敗した場合、反復を続ける前に当該ビットノードから送られたメッセージの少なくとも一部を切り捨てること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含んでいる。
本明細書に示す別の実施形態はメモリコントローラであって、(a)K個の情報ビットをN>K個の符号ワードビットの符号ワードとして符号化するエンコーダと、(b)(i)N個のビットノードおよびN−K個のチェックノードを含むグラフにおけるビットノードとチェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新することおよび、(ii)(A)所定の失敗基準に照らして復号化が収束に失敗し、且つ(B)符号ワードビットの推定値が、当該グラフにトラッピング集合が含まれている兆候を示す基準を満たしている場合、反復を続ける前にメッセージの少なくとも一部をリセットすること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含むデコーダとを含んでいる。
本明細書に示す別の実施形態はメモリコントローラであって、(a)K個の情報ビットをN>K個の符号ワードビットの符号ワードとして符号化するエンコーダと、(b)(i)N個のビットノードおよびN−K個のチェックノードを含むグラフにおけるビットノードとチェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新することおよび、(ii)所定の失敗基準に照らして復号化が収束に失敗した場合、反復を続ける前に当該ビットノードから送られたメッセージの少なくとも一部を切り捨てること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含むデコーダとを含んでいる。
本明細書に示す別の実施形態は受信器であって、(a)通信チャネルから受信したメッセージを復調することよりK個の情報ビットをN>K個の符号ワードビットとして符号化する符号ワードの表現を生成する復調器と、(b)(i)N個のビットノードおよびN−K個のチェックノードを含むグラフにおけるビットノードとチェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新することおよび、(ii)(A)所定の失敗基準に照らして復号化が収束に失敗し、且つ(B)符号ワードビットの推定値が、当該グラフにトラッピング集合が含まれている兆候を示す基準を満たしている場合、反復を続ける前にメッセージの少なくとも一部をリセットすること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含むデコーダとを含んでいる。
本明細書に示す別の実施形態は受信器であって、(a)通信チャネルから受信したメッセージを復調することよりK個の情報ビットをN>K個の符号ワードビットとして符号化する符号ワードの表現を生成する復調器と、(b)(i)N個のビットノードおよびN−K個のチェックノードを含むグラフにおけるビットノードとチェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新することおよび、(ii)所定の失敗基準に照らして復号化が収束に失敗した場合、反復を続ける前に当該ビットノードから送られたメッセージの少なくとも一部を切り捨てること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含むデコーダとを含んでいる。
本明細書に示す別の実施形態はメッセージを送受信する通信システムであって、(a)(i)当該メッセージのK個の情報ビットをN>K個の符号ワードビットの符号ワードとして符号化するエンコーダ、および(ii)通信チャネルを介して符号ワードを変調信号として送信する変調器を含む送信器と、(b)(i)通信チャネルから変調信号を受信して当該変調信号を復調することより、符号ワードの表現を生成する復調器、および(ii)(A)N個のビットノードおよびN−K個のチェックノードを含むグラフにおけるビットノードとチェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新することおよび、(B)(I)所定の失敗基準に照らして復号化が収束に失敗し、且つ(II)符号ワードビットの推定値が、当該グラフにトラッピング集合が含まれている兆候を示す基準を満たしている場合、反復を続ける前にメッセージの少なくとも一部をリセットすること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含むデコーダを含む受信器とを含んでいる。
本明細書に示す別の実施形態はメッセージを送受信する通信システムであって、(a)(i)当該メッセージのK個の情報ビットをN>K個の符号ワードビットの符号ワードとして符号化するエンコーダ、および(ii)通信チャネルを介して符号ワードを変調信号として送信する変調器を含む送信器と、(b)(i)通信チャネルから変調信号を受信して当該変調信号を復調することにより、符号ワードの表現を生成する復調器、および(ii)(A)N個のビットノードおよびN−K個のチェックノードを含むグラフにおけるビットノードとチェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新することおよび、(B)(I)所定の失敗基準に照らして復号化が収束に失敗した場合、反復を続ける前に当該ビットノードから送られたメッセージの少なくとも一部を切り捨てること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含むデコーダを含む受信器とを含んでいる。
本明細書に示す別の実施形態は、K個の情報ビットをN>K個の符号ワードビットとして符号化する符号ワードの表現を復号化する方法であって、本方法は(a)チャネルから符号ワードの表現をインポートすること、(b)N−K行およびN列を有するパリティチェック行列を提供すること、(c)当該行列の行と列との間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新することおよび、(d)(i)所定の失敗基準に照らして復号化が収束に失敗し、且つ(ii)符号ワードビットの推定値が、当該パリティチェック行列にトラッピング集合が含まれている兆候を示す基準を満たしている場合、反復を続ける前にメッセージの少なくとも一部をリセットすることを含んでいる。
本明細書に示す別の実施形態は、K個の情報ビットをN>K個の符号ワードビットとして符号化する符号ワードの表現を復号化する方法であって、本方法は(a)チャネルから
符号ワードの表現をインポートすること、(b)N−K行およびN列を有するパリティチェック行列を提供すること、(c)行と列との間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新することおよび、(d)所定の失敗基準に照らして復号化が収束に失敗した場合、反復を続ける前に当該列から送られたメッセージの少なくとも一部を切り捨てることを含んでいる。
本明細書に示す別の実施形態は、K個の情報ビットをN>K個の符号ワードビットとして符号化する符号ワードの表現を復号化するデコーダであって、(a)N−K行およびN列を有するパリティチェック行列を提供すること、(b)行と列との間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新すること、(c)(i)所定の失敗基準に照らして復号化が収束に失敗し、且つ(ii)符号ワードビットの推定値が、当該パリティチェック行列にトラッピング集合が含まれている兆候を示す基準を満たしている場合、反復を続ける前にメッセージの少なくとも一部をリセットすること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含んでいる。
本明細書に示す別の実施形態は、K個の情報ビットをN>K個の符号ワードビットとして符号化する符号ワードの表現を復号化するデコーダであって、(a)N−K行およびN列を有するパリティチェック行列を提供すること、(b)行と列との間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新すること、(c)所定の失敗基準に照らして復号化が収束に失敗した場合、反復を続ける前に当該列から送られたメッセージの少なくとも一部を切り捨てること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含んでいる。
本明細書に示す別の実施形態はメモリコントローラであって、(a)K個の情報ビットをN>K個の符号ワードビットの符号ワードとして符号化するエンコーダと、(b)(i)N−K行およびN列を有するパリティチェック行列を提供すること、(ii)行と列との間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新すること、(iii)(A)所定の失敗基準に照らして復号化が収束に失敗し、
且つ(B)符号ワードビットの推定値が、当該パリティチェック行列にトラッピング集合が含まれている兆候を示す基準を満たしている場合、反復を続ける前にメッセージの少なくとも一部をリセットすること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含むデコーダとを含んでいる。
本明細書に示す別の実施形態はメモリコントローラであって、(a)K個の情報ビットをN>K個の符号ワードビットの符号ワードとして符号化するエンコーダと、(b)(i)N−K行およびN列を有するパリティチェック行列を提供すること、(ii)行と列との間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新すること、(iii)所定の失敗基準に照らして復号化が収束に失敗した場合、
反復を続ける前に当該列から送られたメッセージの少なくとも一部を切り捨てること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含むデコーダとを含んでいる。
本明細書に示す別の実施形態は受信器であって、(a)通信チャネルから受信したメッセージを復調することよりK個の情報ビットをN>K個の符号ワードビットとして符号化する符号ワードの表現を生成する復調器と、(b)(i)N−K行およびN列を有するパリティチェック行列を提供すること、(ii)行と列との間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新すること、(iii)(
A)所定の失敗基準に照らして復号化が収束に失敗し、且つ(B)符号ワードビットの推定値が、当該パリティチェック行列にトラッピング集合が含まれている兆候を示す基準を満たしている場合、反復を続ける前にメッセージの少なくとも一部をリセットすること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含むデコーダとを含んでいる。
本明細書に示す別の実施形態は受信器であって、(a)通信チャネルから受信したメッセージを復調することよりK個の情報ビットをN>K個の符号ワードビットとして符号化する符号ワードの表現を生成する復調器と、(b)(i)N−K行およびN列を有するパリティチェック行列を提供すること、(ii)行と列との間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新すること、(iii)所
定の失敗基準に照らして復号化が収束に失敗した場合、反復を続ける前に当該列から送られたメッセージの少なくとも一部を切り捨てること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含むデコーダとを含んでいる。
本明細書に示す別の実施形態はメッセージを送受信する通信システムであって、(a)(i)当該メッセージのK個の情報ビットをN>K個の符号ワードビットの符号ワードとして符号化するエンコーダ、および(ii)通信チャネルを介して符号ワードを変調信号として送信する変調器を含む送信器と、(b)(i)通信チャネルから変調信号を受信して当該変調信号を復調することにより、符号ワードの表現を生成する復調器、および(ii)(A)N−K行およびN列を有するパリティチェック行列を提供すること、(B)行と列との間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新すること、(C)(I)所定の失敗基準に照らして復号化が収束に失敗し、且つ(II)符号ワードビットの推定値が、当該パリティチェック行列にトラッピング集合が含まれている兆候を示す基準を満たしている場合、反復を続ける前にメッセージの少なくとも一部をリセットすること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含むデコーダを含む受信器とを含んでいる。
本明細書に示す別の実施形態はメッセージを送受信する通信システムであって、(a)(i)当該メッセージのK個の情報ビットをN>K個の符号ワードビットの符号ワードとして符号化するエンコーダ、および(ii)通信チャネルを介して符号ワードを変調信号として送信する変調器を含む送信器と、(b)(i)通信チャネルから変調信号を受信して当該変調信号を復調することにより、符号ワードの表現を生成する復調器、および(ii)(A)N−K行およびN列を有するパリティチェック行列を提供すること、(B)行と列との間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新すること、(C)所定の失敗基準に照らして復号化が収束に失敗した場合、反復を続ける前に当該列から送られたメッセージの少なくとも一部を切り捨てること、を含むステップにより、符号ワードの推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化するプロセッサを含むデコーダを含む受信器とを含んでいる。
本明細書において、チャネルからインポートされたK個の情報ビットをN>K個の符号ワードビットとして符号化する符号ワードの表現を復号化する4種の一般的な方法を示す。
最初の2種の一般的な方法によれば、N個のビットノードおよびN−K個のチェックノードを含むグラフのビットノードとチェックノードとの間でメッセージを交換することにより、複数回の復号化反復で符号ワードビットの推定値を更新する。
第1の一般的な方法によれば、所定の失敗基準に照らして復号化が失敗し、且つ符号ワードビットの推定値が、当該パリティチェック行列にトラッピング集合が含まれている兆候を示す基準を満たしている場合、反復を続ける前にメッセージの少なくとも一部がリセットされる。
第1の一般的な方法のいくつかの実施形態において、グラフの少なくとも一部が複数の部分グラフに分割される。メッセージ交換の少なくとも一部が各部分グラフ内で別個に実行される。当該グラフにトラッピング集合が含まれるとする関連基準は、当該部分グラフのうち1個だけで復号化の収束が失敗することを含んでいる。
当該グラフにトラッピング集合が含まれる別の基準は、符号ワードビットの推定値のシンドロームの要素の高々約1パーセントが非ゼロ且つ2個の連続的な反復において一定であることである。
メッセージの少なくとも一部をリセットすることは、好適にはチェックノードから送られるメッセージの少なくとも一部の設定、および/またはビットノードから送られるメッセージの少なくとも一部の切り捨てを含んでいる。最も好適には、リセットは、チェックノードから送られた全てのメッセージをゼロに設定する、および/またはビットノードから送られる全てのメッセージを切り捨てることを含んでいる。好適には、ビットノードから送られるメッセージは対数尤度比であり、そのうち切り捨てられるメッセージは、約10〜約16桁である。
第2の一般的な方法によれば、所定の失敗基準に照らして復号化が収束に失敗した場合、反復を続ける前にビットノードから送られたメッセージの少なくとも一部が切り捨てられる。
一つの好適な失敗の基準は、例えば所定回数の反復の後、または所定時間の後、あるいはビットノードとチェックノード間での所定回数のメッセージ交換の後で、符号ワードビット推定値の非ゼロであるシンドロームの要素が少なくとも所定個数であることを含んでいる。別の好適な失敗基準は、2つの連続的な反復において符号ワードビット推定値の非ゼロであるシンドロームの要素が多くとも所定個数であることを含んでいる。好適な他の失敗基準は、連続的な2回の反復の後で、符号ワードビット推定値の非ゼロであるシンドロームの要素の数が所定の限度を下回ることを含んでいる。別の好適な失敗基準は、連続的な所定回数の反復の前後(例:1回の反復の前後)で、符号ワードビット推定値間のハミング距離が所定の限度を下回ることを含んでいる。
好適には、ビットノードから送られた全てのメッセージが切り捨てられる。
好適には、メッセージは対数尤度比であり、そのうち切り捨てられるメッセージは、高々約10〜約16桁が切り捨てられる。
上述のように、LDPC復号化のグラフ図は図1に示すように行列表現と等価である。従って、第3および第4の一般的な方法によれば、符号ワードビットの推定値は、Nビットのベクトル要素を有するビットベクトルとN−K個のチェックベクトル要素を有するチェックのベクトルを接続するパリティチェック行列を用いて更新される。複数回の復号化反復において、符号ワードビットの推定値は、そのように接続されたビットベクトル要素とチェックベクトル要素との間でメッセージを交換することにより更新される。
第3の一般的な方法によれば、所定の失敗基準に照らして復号化が失敗し、且つ符号ワ
ードビットの推定値が、当該パリティチェック行列にトラッピング集合が含まれている兆候を示す基準を満たす場合、反復を続ける前にメッセージの少なくとも一部がリセットされる。
第4の一般的な方法によれば、所定の失敗基準に照らして復号化が収束に失敗した場合、反復を続ける前に当該列から送られたメッセージの少なくとも一部が切り捨てられる。
4種の一般的な方法の一つに対応するデコーダは、対応する一般的な方法により符号ワードビット推定値を更新するアルゴリズムを実行することにより符号ワードの表現を復号化する1個以上のプロセッサを含んでいる。
4種の一般的な方法の一つに対応するメモリコントローラは、K個の情報ビットをN>Kビットの符号ワードとして符号化するエンコーダと、一般的な方法に対応するデコーダとを含んでいる。通常、このようなメモリコントローラは、符号ワードの少なくとも一部をメインメモリに保存すると共に、当該メインメモリから当該符号ワードの(おそらくノイズが多い)少なくとも一部の表現を取得する回路を含んでいる。4種の一般的な方法の一つに対応するメモリ装置は、このようなメモリコントローラを含むと共に、メインメモリをも含んでいる。
4種の一般的な方法の一つに対応する受信器は、通信チャネルから受信したメッセージを復調する復調器を含んでいる。復調器は、K個の情報ビットをN>K個の符号ワードビットとして符号化する符号ワードの表現を提供する。そのような受信器はまた、一般的な方法に対応するデコーダを含んでいる。
4種の一般的な方法の一つに対応する通信システムは、送信器および受信器を含んでいる。送信器は、メッセージのK個の情報ビットをN>K個の符号ワードビットの符号ワードとして符号化するエンコーダと、通信チャネルを介して当該符号ワードを変調信号として送信する変調器を含んでいる。受信器は、一般的な方法に対応する受信器である。
添付の図面を参照しながら、各種の実施形態についてあくまでも例示目的で記述する。
LDPC符号が疎なパリティチェック行列または疎な二部グラフとしてどのように表現できるかを示す。 フラッディングスケジュール確率伝播アルゴリズムを示す。 従来の連続スケジュール確率伝播アルゴリズムを示す。 エラーフロアを示す。 部分グラフ内および部分グラフと外部チェックノードの集合との間でどのようにメッセージが交換されるかを示す。 部分グラフ内および部分グラフと外部チェックノードの集合との間でメッセージが交換される確率伝播アルゴリズムを示す。 図6のアルゴリズムを実装するデコーダの高水準模式ブロック図である。 図6のアルゴリズムを実装するデコーダの高水準模式ブロック図である。 図1の疎な二部グラフを部分グラフに分割する2通りの方法を示す。 図1の疎な二部グラフを部分グラフに分割する2通りの方法を示す。 コントローラが図7Aのデコーダを含むフラッシュメモリ装置の高水準模式ブロック図である。 図10の詳細図である。 受信器が図7Aのデコーダを含む通信システムの高水準模式ブロック図である。
複雑度が低いLPDC復号化およびトラッピング集合に起因する非収束を克服するLPDC復号化の原理および動作は、図面および付随する記述を参照することでよりよく理解されよう。
LDPC符号用の従来型デコーダにおいて、デコーダが必要とするメモリは符号長N(符号の基礎となるグラフ|V|の可変ノードの数に等しい)および符号の基礎となるグラフ|E|の辺の数に比例する。効率的な実装において(例えば、連続的にスケジュールされたデコーダに基づいて)、必要とされるメモリは(|V|+|E|)*bpmビットと
同程度に小さくてよく、ここに|V|はビット推定値の数、|E|は辺メッセージの数、bpmはデコーダのメモリに保存されている1メッセージ当たりのビット数である(ここでは簡便のため、ビット推定値および辺メッセージの保存に同じビット数が必要とされると仮定しているが必ずしもそうでなくてもよい点に注意されたい)。充分な復号化時間が利用できると仮定すれば、本明細書に開示するデコーダは従来型デコーダと比較して、|V|個のビット推定値および|E|個の辺メッセージの一部だけを同時に保存することで、デコーダの誤り訂正能力を全く低下させることなく、復号化の実装に用いるメモリがはるかに小さくて済む。これは、適切な復号化スケジュールを採用し、且つ本明細書に記述する復号化ハードウェアを用いることにより実現される。
本明細書に記述する方法およびデコーダは、符号を表す基礎となるグラフをいくつかの区間に分割することにより動作し、グラフの異なる区間を一度に1個以上順次処理することによりメッセージ受け渡し復号化アルゴリズムを実行する。復号化実行中の各段階で、現在処理されているグラフ区間(群)に対応するビット推定値および辺メッセージだけが保存される。このようにして、極めて長いLDPC符号は採用するため、複雑度が低い復号化ハードウェアを利用しながら、ほぼ最適な誤り訂正能力および極めて低いエラーフロアが得られる。
本明細書に開示するデコーダは、主に以下の三つの理由により、メモリ装置での使用に極めて適している。
1.低いECCエラーフロアは、厳しいデコーダ出力BER要件(<10-15)がある
メモリ装置において特に重要である。短い符号を用いる場合、このような低いエラーフロアを実現することは極めて難しく、通常は符号の誤り訂正能力を犠牲にすることを必要とするが、これは符号の長さが短いために既に下げられている。従って、等価な長い符号を用いて符号の誤り訂正能力が向上し、従って保存されたデータを損なう所与のメモリ「ノイズ」から情報を保護するためにより低いECC冗長性が必要とされる。より大量の情報を所与の数のメモリセル(または所与のメモリシリコンサイズを用いて)に保存することができるため、これは結果的にメモリの費用対効果を向上させる。従って、メモリ装置の長ECCを使用することで大きい利点が得られるものと期待される。
2.本明細書に開示するLDPC方法は、一度にグラフ全体ではなく、各処理フェーズで符号の基礎となるグラフの区間を処理することを可能にする。このことは、各フェーズで「弱い」ビット推定値の全てではなく、「弱い」ビット推定値の一部だけを保存することができることを意味する。ここで、「弱い」ビット推定値という用語は、ストレージ(恐らくはフラッシュ装置)からの読み出しから推論される各々の保存されたビットの推定値「y」の信頼度を記述する一群のビットを指す。
現在必要とされるビット観測値(y)だけを記憶装置から読み出すことができ、従ってECC復号化を実装するためにメモリコントローラ内に大きいバッファを必要としないた
め、この特徴をメモリ装置で容易に利用することができる。あるいは、全てのビット観測値(ベクトルで表す)を一度にメモリから読み出す場合でも、これらの保存に必要なバッファは通常、デコーダが必要とするビット観測値(Pv個のメッセージ)の保存に必要
なメモリよりもはるかに小さい。このように、現在デコーダにより処理中であるグラフ区間に対応する弱いビット推定値の一部だけが毎回生成される結果、必要とされるデコーダのメモリが小さくて済む。
例えば、各セルが単一のビットvを保存し、各セルから読み出された状態yが0または1のいずれかであるSLCフラッシュメモリ装置を考える(1セル当たり1ビットを保存するフラッシュメモリ装置である。「SLC」は「単一レベルセル」を意味するが、実際には各セルが2レベルをサポートするため誤った名称である。「SLC」の「S」はプログラミングされたレベルが一つしかないことを示す)。すると、読み出されたセル状態のベクトルの保存に必要とされるメモリはNビットである。一方、全ての弱いビット推定値(Pv個のメッセージ)の保存により大きいメモリが必要となり得る(例えば、各LL
R推定値が6ビットに保存される場合は6Nビット)。従って、各デコーダ起動において必要とされる弱いビット推定値だけを生成する方がより効率的である。あるビットvに対するLLRビット推定値Pv=log(Pr(v=0|y)/Pr(v=1|y))を、
メモリ「ノイズ」に関する先験的な知識に基づいてフラッシュメモリ装置から読み出された対応するビット観測値から生成することができる。換言すれば、メモリ「ノイズ」統計値を知ることにより、「y」がセルから読まれる前提で、特定のメモリセルに保存されたビットvが0/1である確率を推論することができる。
例えば、特定のSLCフラッシュメモリ装置において、プログラムされたものとは異なるセルの状態を読み出す確率をp=10-2とすれば、y=0ならばPv=log((1−
p)/p)=4.6、およびy=1ならはPv=log(p/(1−p))=−4.6で
ある。更に、セルが単一ビット(1個の「強いビット」)を保存し、当該装置は2個の「弱いビット」に等価な8個の閾値電圧レベルを読み出すように構成されているためにフラッシュ装置の各セル(「」で表す)から読み出すことができる状態の数が8である場合、コントローラ内で3ビットのストレージを必要とする各要素「」が、3ビットより多い、例えば6ビット(BPM=1メッセージ当たりのビット数=6)として表現することができるLLR値Pvに変換される。これら6ビットは、フラッシュセルから読み出され
た2個の弱いビットとは逆に弱いビット推定値であって、この6ビットのLLR値に対応している。
3.本明細書に示す種類の復号化スケジュールは、(従来の復号化スケジュールと比較して)必要なメモリがより小さくて済む。しかし、本明細書に開示する復号化スケジュールでは、デコーダ収束速度が遅くなり、特にデコーダの最大誤り訂正能力付近で動作しているときに復号化時間が増大する恐れがある。このようなデコーダは、可変ECC復号化待ち時間を許容できるメモリ装置には極めて適している。例えば、損傷ビットの数が多いために、保存された正しい符号ワードにECCが収束するために必要とされる復号化時間が長い場合、メモリコントローラは以前に読まれた符号ワードの復号化が終了するまでメモリからの読み出しを止めることができる。フラッシュメモリ装置の寿命の大半では、メモリ「ノイズ」が小さく、且つ損傷ビットの数が少ない点に注意されたい。従って、デコーダは効率的且つ迅速に動作するため、パイプライン化された効率的なメモリ読み出しが可能になる。稀に、メモリから読み出された損傷ビットの数が多く、復号化時間が長引いた結果、読み出パイプラインがストールすることがある。従って、これらの可変的な復号化時間特徴にも拘わらず、平均的にはスループットは影響を受けないままである。
実施形態の一つのクラスによれば、符号を表す二部グラフG=(V,C,E)が以下のようにいくつかの区間に分割される。すなわち、1)ビットノードの集合Vをt個の互い
に素な部分集合V1,V2,...,Vt(但しV=V1∪V2∪...∪Vt)に分割する。2)ビットノードの各部分集合Viについて、Vi内のビットノードだけに接続しているチェックノードの全てを含むチェックノードの部分集合Ciを形成する。3)これまでに形
成されたチェックノードの部分集合のいずれにも存在しないチェックノードの全てを含む外部チェックノードの部分集合CJすなわちCJ=C\(C1∪C2∪...∪Ct)を形成
する。4)グラフGをGi=(Vi,Ci,Ei)のようにt個の部分グラフG1,G2,...,Gtに分割する。ここにEiはVi内のビットノードとCi内のチェックノードとの間で接続している辺の集合である。集合CJに接続している辺をEJで表す(EJ=E\(E1∪E2∪...∪Etに注意)。
これらの実施形態において、復号化フェーズを反復的に実行することによりグラフGは特別なメッセージ受け渡しスケジュールに従い処理され、各復号化フェーズは以下の順序でグラフの辺に沿ってメッセージを交換する。
i=1からtまで
1.図5にRCJViメッセージと表記されたRcv個のメッセージをEJ内の辺に沿ってチ
ェックノードc∈CJからビットノードv∈Viへ送る。図5にRCiViメッセージと表記された、チェックノードc∈Ciからビットノードv∈ViへのRcv個のメッセージをゼロに設定する。全てのビットv∈Viについて、初期ビット推定値を図5にPViメッセージと
表記されたPvに設定する。メッセージRCJViが当該ステップより前に他のt−1個の部
分グラフGk(k≠i)のためにデコーダを起動した結果である点に注意されたい。他の
部分グラフが未だ処理されていない場合、図5に示すそれらの対応メッセージQvicJはPviすなわちメモリから読み出されたかまたは通信チャネルから受信された推定値に設定される。これらがパンクチャードビットである場合、そのPviはゼロである。
2.何らかのスケジュールに従い(例:Ci内のチェックノードを連続的に辿って各チ
ェックノードについて当該チェックノードとの間でメッセージをやり取りすることにより実行される図3に記述する連続スケジュールに従い)、Ei内の辺に沿ってVi内のビットノードからCi内のチェックノードへQvc個のメッセージを、およびCi内のチェックノードからVi内のビットノードへRcv個のメッセージを送ることにより1回以上の反復を実
行する。これを図5にQViciおよびRCiViメッセージと表記する。
3.図5にQViCJメッセージと表記されたQvc個のメッセージをEJ内の辺に沿ってVi内のビットノードからCJ内のチェックノードへ送る。
復号化は、デコーダが全てのパリティチェック制約を満たす有効な符号ワードに収束するまで、または許された復号化フェーズの最大数に達するまで続けられる。各部分グラフi内でのメッセージの受け渡しの停止基準も同様である。当該部分グラフ内のパリティチェック制約が全て満たされるか、または許された最大反復回数に達するまで繰り返す。一般に、許された最大反復回数は、部分グラフ毎に、またはデコーダの起動毎に変化する場合がある。
Jの辺に沿って送られたメッセージ(図5のRCJViメッセージおよびQVjCJメッセー
ジ)を用いてグラフの異なる区間同士で情報を交換する。復号化を実行する間に各ステージで送られたメッセージを、メッセージ受け渡し復号化アルゴリズムの標準的な計算規則により計算することができる。例えば、BP復号化が実装されている場合、メッセージは式(4)および(5)に従い計算される。Min Sumアルゴリズム、Gallagher Aアルゴリズム、およびGallagher Bアルゴリズム等、他のメッセージ受け渡し復号化アルゴリズムは自身の計算規則を有している。
このような復号化アルゴリズムを、BP復号化を実装している各部分グラフ内で連続的にスケジュールされたメッセージ受け渡し復号化を仮定して図6に要約する。このアルゴリズムでは、ビットノードv∈Viに対応するQv個のメッセージだけを復号化する間の各段階において、Eiの辺に対応するRcv個のメッセージおよびEjの辺に対応するメッセージが保存される。従って、このクラスの実施形態のデコーダは、効率的な従来型デコーダにおける(|V|+|E|)個のメッセージに対して、(max{|V1|,|V2|,...,|Vi|}+max{|E1|,|E2|,...,|Ei|}+|EJ|)個のメッ
セージだけを同時に保存すればよい。従って、必要なメモリは、従来型デコーダが必要とするメモリの〜1/t分数である。長いLDPC符号を実装する場合、これはデコーダの複雑度に対して大きい利点をもたらす。
このクラスの実施形態による例示的なデコーダ30の高水準模式ブロック図を図7Aに示す。デコーダ30は、以下のものを含んでいる。
1.メモリから読み出されたかまたは通信チャネルから受信した対応ビット観測値 t
=[yv:v∈Vi](yvはビットvに対応する観測値)に基づいて、現在処理中である
部分グラフGi=(Vi,Ci,Ei)内のビットv∈Viについて初期ビット推定値Pt=[Pv:v∈Vi]を計算する初期LLR計算ブロック32。
2.現在処理中である部分グラフ(Pvメッセージとして初期化されたQvメッセージ)内のビットノードv∈Viに対するビット推定値を保存するメモリ領域36を含む読み出
し/書込みメモリ34。
3.以下を含む読み出し/書込みメモリ35
3a.現在処理中である部分グラフの辺集合Eiに対応するRcv個のメッセージを保存
するメモリ領域38。
3b.EJの辺に沿ってメッセージを保存するメモリ領域40。メモリ領域40は、i
)ビットノードv∈Vi,∀i’∈{1,...,n}\iからチェックノードc∈CJへのQvc個のメッセージ(iは現在処理中である部分グラフの添え字)を保存すると共に、ii)ビットノードv∈Viについてメモリ領域40は最初にチェックノードc∈CJからのRcv個のメッセージを保存し、その後で当該部分グラフを処理しているメモリ領域40はのQvcをチェックノードc∈CJに保存する。
4.(図6に示す)メッセージの更新に関わる計算を実行する処理ユニット42。
5. メモリ34と処理ユニット42との間でメッセージをルーティングするルーティング層44。例えば、このクラスの実施形態のいくつかのサブクラスにおいて、図6の部分グラフG1〜Gtにわたるループ内で、ルーティング層44は各プロセッサ42に現在の部分グラフGiの当該プロセッサ自身のチェックノードを割り当て、チェックノードの処
理はGiの全てのチェックノードについて(または、プロセッサ42の数と同数の、Giのチェックノードについて)並列に実行される。
6.符号のグラフ構造を保存する読み出し専用メモリ(ROM)46。メモリのアドレス指定およびルーティング層44によるスイッチングはROM46のエントリに基づく。
デコーダ30は複数の処理ユニット42を含んでいるため、メッセージの更新に関わる計算を並列に実行することができる。単一の処理ユニット42しか備えていない別の実施形態はルーティング層44を含んでいない。
上述のように、連続的な受け渡しスケジュールは、チェックノードまたはビットノードのいずれか連続的に辿る。図7Aのデコーダ30はチェックノードを連続的に辿る。図7Bは、ビットノードを連続的に辿る同様のデコーダ31の高水準模式ブロック図である。
このクラスの実施形態によるグラフ分割の一例を図8に示す。全てのビットノードが2個のチェックノードに接続され、全てのチェックノードが4個のビットノードに接続されるように、18個のビットノードおよび9個のチェックノードを有する規則的な二部グラフにより記述されるLDPC符号を本例に用いる。これは長さが18、レートが1/2のLDPC符号である。元のグラフを図8の左側に示す。これは図1のグラフでもある。自身のビットノード、チェックノード、および辺を部分集合に分割した後のグラフを図8の右側に示す。これが同じグラフを明快さのために再構成したものに過ぎない点に注意されたい。この符号の場合、従来技術の効率的なデコーダは18+36=54個のメッセージを保存する必要がある一方、対応するデコーダ30は6+8+12=26個のメッセージだけを保存すればよいため、同じ誤り訂正能力を維持しながらデコーダのメモリ複雑度が52%減少される。
図8の例のように、全ての部分グラフがトポロジー的に同一であることが好適である。この文脈において、「トポロジー的同一性」は、全ての部分グラフが同数のビットノードおよび同数のチェックノードを有し、各々のビットノードが内部チェックノードへの接続性に関して他の全ての部分グラフに対応するビットノードを有し、各部分グラフのチェックノードは、ビットノードへの接続性に関して他の全ての部分グラフに対応するチェックノードを有することを意味する。例えば図8において以下が成り立つ。
ビットノード1および5が部分グラフ1の両方のチェックノードに接続し、ビットノード11および16が部分グラフ2の両方のチェックノードに接続し、ビットノード13および17が部分グラフ3の両方のチェックノードに接続していて、且つこれらのビットノードのいずれも外部チェックノード(集合CJのチェックノード)に接続していないため
、ビットノード1、5、11、13、16および17は対応している。
残りのビットノードは、これらのビットノードの各々が同一部分グラフの1個のチェックノードに接続しているため、対応している。
部分グラフの全てのチェックノードは、これらのチェックノードの各々が部分グラフのチェックノードだけに接続している自身の部分グラフの2個ビットノード、および外部チェックノードにも接続している自身の部分グラフの他の2個のビットに接続しているため、対応している。
部分グラフが「トポロジー的に同一」であるために外部チェックノードに対して同一の接続性を有する必要が無い点に注意されたい。例えば、同一の外部チェックノード7に接続している部分グラフ3の2個のビットノード15、18はまた、部分グラフ3の同一チェックノード9にも接続しているが、同一外部チェックノード2に接続している部分グラフ1の2個のビットノード4、12は部分グラフ1の異なるチェックノード3、8に接続している。
しかし、必要ならばグリーディアルゴリズムにより任意のLDPCグラフGを部分グラフに分割することができる。第1の部分グラフは、ビットノードの任意の集合を選択することにより構築される。第1の部分グラフのチェックノードは、それらのビットノードだけに接続するチェックノードである。第2の部分グラフは、残りのビットノードの中から任意のビットノードの集合を選択することにより構築される。無論、第2の部分グラフ内のビットノードの数が第1の部分グラフのビットノードの数に等しいことが好適である。
ここでも、第2の部分グラフのチェックノードは、第2の部分グラフのビットノードだけに接続するチェックノードである。ビットノードの任意選択は必要な回数だけ繰り返される。最後の部分グラフは選択されなかったビットノードおよびそれらのビットノードだけに接続するチェックノードを含んでいる。残りのチェックノードがCJを構成する。
上述の実施形態のクラスにおいて、LDPCグラフGは、各々が自身のビットノードおよびチェックノードを有するt個の部分グラフに加え、チェックノードだけからなる別個の部分集合CJに分割される。別のクラスの実施形態において、図9に示すように、Gは
各々が自身のビットノードおよびチェックノードを有するちょうどt個の部分グラフに分割される。例えば上述のグリーディアルゴリズムを用いて、最後の部分グラフ(Gt)は
選択されなかったビットノード、これらのビットノードだけに接続するチェックノード、および残り全てのチェックノードを含んでいる。これは、部分グラフのビットノードから分離されたビットノードの自身の部分集合に接続している第1のクラスの実施形態の集合CJと同等である。このクラスの実施形態において、図6のアルゴリズムは、部分グラフ
ループ内の部分グラフG1〜Gt-1だけを含め、且つ専らGt内だけに切り離されたメッセ
ージ交換により部分グラフループを辿ることにより各復号化フェーズを終了することにより変更されている。図9にt=4の場合を示す。これらの実施形態の1個の下位クラスにおいて、いくつかのビットはパンクチャードビットであり、Gtはこれらのビット専用で
ある。Gtの全てのビットはパンクチャードビットであり、全てのパンクチャードビット
はGtのビットである。
図10は、フラッシュメモリ装置の高水準模式ブロック図である。行列に配置された複数のメモリセルMを含むメモリセルアレイ1は、列制御回路2、行制御回路3、c−ソース制御回路4、およびc−pウェル制御回路5により制御される。列制御回路2はメモリセルアレイ1のビット線(BL)に接続されていて、メモリセル(M)に保存されたデータを読み、書込み動作中のメモリセル(M)の状態を判定し、ビット線(BL)の電位レベルを制御して書込みを実行するかまたは書込みを禁止する。行制御回路3はワード線(WL)に接続されていて、ワード線(WL)の一つを選択し、読み出し電圧を印加し、列制御回路2により制御されたビット線の電位レベルと組み合わされた書込み電圧を印加し、メモリセル(M)が形成されているp型領域の電圧に結合された消去電圧を印加する。c−ソース制御回路4は、メモリセル(M)に接続している共通ソース線を制御する。c−pウェル制御回路5は、c−pウェル電圧を制御する。
メモリセル(M)に保存されたデータは、列制御回路2により読み出されて、入出力線およびデータ入力/出力バッファ6を介して外部入出力線へ出力される。メモリセルに保存されるプログラムデータは、外部入出力線を介してデータ入出力バッファ6に入力され、列制御回路2へ転送される。外部入出力線は、コントローラ20に接続している。
フラッシュメモリ装置を制御する命令データが、コントローラ20に接続している外部制御線に接続している命令インタフェースに入力される。命令データは、要求されている動作をフラッシュメモリに知らせる。入力命令は、列制御回路2、列制御回路3、c−ソース制御回路4、c−pウェル制御回路5、およびデータ入力/出力バッファ6を制御する状態機械8へ転送される。状態機械8は、READY/BUSYまたはPASS/FAIL等、フラッシュメモリの状態データを出力することができる。
コントローラ20は、パーソナルコンピュータ、デジタルカメラ、形態情報端末等のホストシステムに接続しているかまたは接続可能である。メモリアレイ1にデータを保存または読み出す等の命令を発行し、且つそのようなデータを提供または受け取るのはホスト側である。コントローラ20はそのような命令を、命令回路7により解釈および実行可能な命令信号に変換する。コントローラ20はまた、通常はメモリアレイに書き込まれるか
または読み出されているユーザーデータ用のバッファメモリを含んでいる。典型的なメモリ装置は、コントローラ20、各々がメモリアレイおよび付随する制御、入出力および状態機械回路を含む1個以上の集積回路チップ22を含む1個の集積回路チップ21を含んでいる。このトレンドは無論、そのような装置のメモリアレイとコントローラ回路を1個以上の集積回路チップ上に集積することである。メモリ装置は、ホストシステムの一部として埋め込まれていても、またはホストシステムの嵌め込みソケットに着脱自在に挿入可能なメモリカードに含まれていてもよい。そのようなカードはメモリ装置全体を含んでいても、またはコントローラとメモリアレイが付随する周辺回路と共に別個のカードで提供されてもよい。
図11は図10の一部の拡大図であり、コントローラ20が、ホストから1個以上の符号ワードとして受信したユーザーデータを符号化するエンコーダ52、符号ワードを(または符号ワードのいずれかのビットがパンクチャードビットである場合その非パンクチャードビットだけを)をメモリセル配列1に保存するよう命令回路7に指示すると共に、保存された符号ワード(またはパンクチャードビットの場合はその保存された部分)をメモリセルアレイ1から取り出すよう命令回路7に指示する回路54、および回路54により取得された符号ワードの表現を復号化するデコーダ30を含んでいることを示す。あるいは、コントローラ20はデコーダ30の代わりにデコーダ31を含んでいてもよい。
本明細書に開示する方法およびデコーダは主としてデータ記憶システムで用いることを意図しているが、これらの方法およびデコーダはまた通信システム、特に高周波を大幅に減衰させる媒体を介した波伝播に依存する通信システムにも適用できる。そのような通信は本質的に遅く且つノイズが多い。そのような通信の一例として、沿岸局と水面下の潜水艦との間の無線通信がある。
図12は、送信器110、チャネル103、および受信器112を含む通信システム100の高水準模式ブロック図である。送信器110はエンコーダ101および変調器102を含んでいる。受信器112は復調器104およびデコーダ30を含んでいる。エンコーダ101はメッセージを受信して対応する符号ワードを生成する。変調器102は、生成された符号ワードにBPSK、QPSKまたは多値QAM等のデジタル変調を施し、その結果得られた変調信号をチャネル103経由で受信器12に送信する。受信器112において、復調器104はチャネル103から変調信号を受信し、受信した変調信号に対しBPSK、QPSKまたは多値QAM等のデジタル復調を施す。デコーダ30は、その結果得られた上述のような元の符号ワードの表現を復号化する。あるい、受信器112はデコーダ30の代わりにデコーダ31を含んでいてもよい。
ここでトラッピング集合の問題に注目すれば、LDPC復号化におけるトラッピング集合を克服する2種類の従来方法がある。
1.トラッピング集合無しでLDPC符号を設計することによりトラッピング集合を回避する。
2.復号化を行う間、アルゴリズム手段によりトラッピング集合を克服する。
第1の種類の従来方法には以下の短所がある。
トラッピング集合が明確に定義されておらず、且つ長いLDPC符号が極めて複雑であるため、エラーフロアが低いグラフを設計して、エラーフロアが低いことを証明するのは、広範囲なシミュレーション要する困難なタスクになる恐れがある。更に、そのようなアプローチにより、符号化/復号化スキームにおける実装の複雑度、復号化の速度および柔
軟性等、他の態様に関して良好な特性を示すある種のLDPC符号の利用が除外される恐れがある。
復号化を行う間にトラッピング集合を克服するアルゴリズム的方法を用いる第2の種類の従来方法に関しては以下が言える。
文献においていくつかの方法が提案されている。
1.平均化。
2.通知された動的スケジューリング
3.トラッピング集合を識別して、それを回避すべくカスタマイズされた積和アルゴリズムを設計する。
1.平均化方法は、ビット値に対する更新アルゴリズムを用いる。更新は、先行する反復の結果だけでなく、いくつかの反復の結果の平均にも基づいている。算術平均、幾何平均、および重み付き算術幾何平均を含むいくつかの平均化方法が提案されている。
2.通知された動的スケジューリング。この方法では、毎回の反復で全てのチェックノードが更新される訳ではなく、グラフ内のメッセージの現在状態に基づいて更新される次のチェックノードを選択する。チェックノードは、当該チェックノードの更新が復号処理にとってどの程度有用であるかを測定する尺度に基づいて選択される。
両方法共にエラーフロアの向上を実現することができるが、平均化のために先行メッセージの履歴を保存する必要があり、通知された動的スケジューリングは高い計算量をもたらすため、アルゴリズムに付随する複雑度が高い。
第3の種類の方法は、トラッピング集合の識別および各グラフ用に特化されたアルゴリズムを必要とするため、特に同一アプリケーションで複数のLDPC符号が考慮する場合に、特定のシナリオにこれらを使用するのは限界がある。
現在述べている革新的な方法によれば、符号ワードの復号化は2段階のフェーズで実行される。第一フェーズを行う間、従来の復号化はLDPC符号により定義されるグラフに沿って実行される。
トラッピング集合の存在が疑われ、復号処理が妥当な符号ワード(すなわち全てのパリティチェック式を満たす符号ワード)に収束することが阻害される場合、復号化の第2フェーズに移行する。このフェーズでは、当該符号のグラフのノードに関連付けられた値のいくつかが変更される。
トラッピング集合が存在することは少数のビットが正しく収束することに失敗していることを示唆するため、トラッピング集合の存在を識別することができるのは、連続的に復号化を反復する間に少数を除く全てのビットが安定しているか、または他の全てのパリティチェック式が満たされる一方で少数のパリティチェック式が失敗する場合である。例えば、上述のように分割されたグラフの部分グラフのうち1個だけのパリティチェック式が失敗したならば、当該部分グラフはトラッピング集合であるかまたは含んでいることが疑われる。トラッピング集合の存在を示唆する別の兆候は、1パーセント以下のパリティチェック式だけが一貫して失敗していることである。例えば、シンドロームH・v’(v’は推定されたビットの列ベクトル)のいくつかの要素が非ゼロであって、連続的な2回の反復において同一であることは、トラッピング集合の存在を示唆する。
このような変更の二つの例は以下の通りである。
1.チェックノードの値Rcvをゼロにリセットする。
2.ビット確率の弱い値Qvを切り捨てる、すなわちビット確率に対応する弱い値Qvの大きさを所定の値、典型的には10〜16の間の値に制限する。
この方法論の背景にある動機は、反復処理を行う間に誤ったビットが高い確率を実現し、且つ誤った結果(パリティチェック式に対応するノードで含まれる)の信頼度もまた高い場合に小さいトラッピング集合に起因して収束の失敗が生じることである。このような状況では、更に反復しても、誤ったビットに対してなされた強い決定(好適には、弱い値の符号として実装される)は変わらない。
しかし、デコーダが、小さいトラッピング集合に含まれない全てのビットが既にそれらの正しい値に設定されている初期状態で動作を開始していた場合、符号ワードを正しく復号化する確率は極めて高い。
メッセージRcvの値をゼロにリセットすることにより、トラッピング集合に含まれない全てのビットが正しい状態に戻る。
この状況において、正しく復号化されているビット(大部分のビットはこの段階にある)に関連するメッセージQvcおよびRcvは急速に高い信頼度値まで上昇する一方、トラッピング集合内のビットに関するメッセージは遅く上昇するため、正しいメッセージからのトラッピング集合内のビットに対応する値に対してより大きな影響がある。そのような手順は、トラッピング集合内のビットの値を訂正する際に有用である。
この手順は、従来のLDPC復号化アルゴリズムに最小限の複雑度が加わるに過ぎない。
一実施形態において、本アルゴリズムは限られた回数の反復について復号化を実行する。収束に失敗した場合、本アルゴリズムは、Rcvメッセージのいくつかまたは全て等、特定の変数をゼロに設定するステップを追加し、ついで従来の復号化を続ける。
別の実施形態では、限られた回数の反復を実行した後で、Qv値のいくつかまたは全て
等、いくつかの変数に対して切捨て動作を追加し、次いで本アルゴリズムは従来の復号化を続ける。
両方のアルゴリズムは極めて簡単であって、低い複雑度で実装でき、更に、従来の高い複雑度且つ特化された方法とは対照的に一般的なLDPCグラフに適用できる。
弱い値Qvの切り捨ては、以下のように、各種の非収束基準および遅い収束基準に対し
て有用である。
1.所定回数の反復実行後、または所定時間経過後、または所定回数のメッセージ交換後に、所定のシンドロームの要素が非ゼロである場合。要素の所定個数の典型的な値は1である。
2.連続的な2回の反復においてシンドロームの要素の高々所定の個数が非ゼロのままである場合。
3.連続的な2回の反復においてシンドロームの非ゼロ要素の数の差違が所定の限度を下回り、遅い収束を示唆する場合。
4.所定回数の反復(通常は1回の反復)の前後でビット推定値間のハミング距離が所定の限度を下回り、遅い収束を示唆する場合。
上述のように非収束および遅い収束を考慮すべく図7A、7Bのデコーダ30、31は容易に変更される。具体的には、上述の基準に従い非収束または遅い収束を検出すべくルーティング層44を変更し、ルーティング層44により判定された非収束または遅い収束に応答して、Rcv値のいくつかまた全てをゼロにする、および/またはQv値のいくつか
または全てを切り捨てるべくプロセッサ42を修正する。
以上は、符号ワードの表現を復号化する方法、これらの方法を使用するデコーダ、自身のコントローラがこのようなデコーダを含むメモリ、および自身の受信器がこのようなデコーダを含む通信システムの限定された数の実施形態を記述したものである。本方法、デコーダ、メモリ、およびシステムの多くの変型、変更、およびその他の応用が行えることが理解されよう。

Claims (46)

  1. K個の情報ビットをN(>K)個の符号ワードビットとして符号化する符号ワードの表現を復号化する方法であって、
    (a)チャネルから前記符号ワードの前記表現をインポートすること、
    (b)N個のビットノードおよびN−K個のチェックノードを含むグラフにおける前記ビットノードと前記チェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新することおよび、
    (c)(i)所定の失敗基準に照らして前記復号化が収束に失敗し、且つ
    (ii)前記符号ワードビットの推定値が、前記グラフにトラッピング集合が含まれている兆候を示す基準を満たしている場合、前記反復を続ける前に前記メッセージの少なくとも一部をリセットすることを含む方法。
  2. (d)前記グラフの少なくとも一部を複数の部分グラフに分割することを更に含み、
    前記メッセージの交換の少なくとも一部が各部分グラフ内で別個に実行され、
    前記グラフにトラッピング集合が含まれる兆候を示す前記基準が、前記部分グラフのうち1個だけで復号化の収束が失敗することを含む、請求項1に記載の方法。
  3. 前記グラフにトラッピング集合が含まれている兆候を示す前記基準が、前記推定値のシンドロームの要素の1パーセント以下が非ゼロであり、2個の連続的な反復において一定であることを含む、請求項1に記載の方法。
  4. 前記リセットが、前記チェックノードから送られるメッセージの少なくとも一部をゼロに設定することを含む、請求項1に記載の方法。
  5. 前記リセットが、前記チェックノードから送られる全てのメッセージをゼロに設定することを含む、請求項4に記載の方法。
  6. 前記リセットが、前記ビットノードから送られるメッセージの少なくとも一部を切り捨てることを含む、請求項1に記載の方法。
  7. 前記リセットが、前記ビットノードから送られる全てのメッセージを切り捨てることを含む、請求項6に記載の方法。
  8. 前記メッセージが対数尤度比であり、前記切り捨てが10〜16の間の値である、請求項6に記載の方法。
  9. K個の情報ビットをN(>K)個の符号ワードビットとして符号化する符号ワードの表現を復号化する方法であって、
    (a)チャネルから前記符号ワードの前記表現をインポートすること、
    (b)N個のビットノードおよびN−K個のチェックノードを含むグラフにおける前記ビットノードと前記チェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新することおよび、
    (c)所定の失敗基準に照らして前記復号化が収束に失敗した場合、前記反復を続ける前に前記ビットノードから送られた前記メッセージの少なくとも一部を切り捨てることを含む方法。
  10. 前記所定の失敗基準が、前記推定値のシンドロームの要素の少なくとも所定個数が非ゼロである、請求項9に記載の方法。
  11. 前記所定個数が1である、請求項10に記載の方法。
  12. 前記所定の失敗基準が、前記反復の所定回数実行後に、前記シンドロームの要素の少なくとも所定個数が非ゼロである、請求項10に記載の方法。
  13. 前記所定の失敗基準が、所定時間経過後に、前記シンドロームの要素の少なくとも所定個数が非ゼロである、請求項10に記載の方法。
  14. 前記所定の失敗基準が、前記メッセージの所定回数の交換後に、前記シンドロームの要素の少なくとも所定個数が非ゼロである、請求項10に記載の方法。
  15. 前記所定の失敗基準が、連続的な2回の反復において、前記シンドロームの要素の高々所定個数が非ゼロのままである、請求項9に記載の方法。
  16. 前記所定の失敗基準が、連続的な2回の反復実行後に、非ゼロである前記シンドロームの要素の個数の差が所定の限度を下回る、請求項9に記載の方法。
  17. 前記所定の失敗基準が、所定回数の連続的な反復実行の前後で、前記推定値間で所定の限度を下回るハミング距離を含む、請求項9に記載の方法。
  18. 連続的な反復の前記所定回数が1である、請求項17に記載の方法。
  19. 前記ビットノードから送られた全てのメッセージが切り捨てられる、請求項9に記載の方法。
  20. 前記メッセージが対数尤度比であり、前記切り捨てが10〜16の間の値である、請求項9に記載の方法。
  21. K個の情報ビットをN(>K)個の符号ワードビットとして符号化する符号ワードの表現を復号化するデコーダであって、
    (a)N個のビットノードおよびN−K個のチェックノードを含むグラフにおける前記ビットノードと前記チェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新することおよび、
    (b)(i)所定の失敗基準に照らして前記復号化が収束に失敗し、且つ
    (ii)前記符号ワードビットの推定値が、前記グラフにトラッピング集合が含まれている兆候を示す基準を満たしている場合、前記反復を続ける前に前記メッセージの少なくとも一部をリセットすること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダ。
  22. K個の情報ビットをN(>K)個の符号ワードビットとして符号化する符号ワードの表現を復号化するデコーダであって、
    (a)N個のビットノードおよびN−K個のチェックノードを含むグラフにおける前記ビットノードと前記チェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で符号ワードビットの推定値を更新することおよび、
    (b)所定の失敗基準に照らして前記復号化が収束に失敗した場合、前記反復を続ける前に前記ビットノードから送られた前記メッセージの少なくとも一部を切り捨てること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダ。
  23. (a)K個の情報ビットをN(>K)個の符号ワードビットの符号ワードとして符号化するエンコーダと、
    (b)(i)N個のビットノードおよびN−K個のチェックノードを含むグラフにおける前記ビットノードと前記チェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新することおよび、
    (ii)(A)所定の失敗基準に照らして前記復号化が収束に失敗し、且つ
    (B)前記符号ワードビットの推定値が、前記グラフにトラッピング集合が含まれている兆候を示す基準を満たしている場合、前記反復を続ける前に前記メッセージの少なくとも一部をリセットすること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダとを含むメモリコントローラ。
  24. (c)前記符号ワードの少なくとも一部を主メモリに保存し、且つ前記符号ワードの前記少なくとも一部の表現を前記主メモリから取得する回路を更に含む、請求項23に記載のメモリコントローラ。
  25. (a)請求項24に記載の前記メモリコントローラと、
    (b)前記主メモリとを含むメモリ装置。
  26. (a)K個の情報ビットをN(>K)個の符号ワードビットの符号ワードとして符号化するエンコーダと、
    (b)(i)N個のビットノードおよびN−K個のチェックノードを含むグラフにおける前記ビットノードと前記チェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新することおよび、
    (ii)所定の失敗基準に照らして前記復号化が収束に失敗した場合、前記反復を続ける前に前記ビットノードから送られた前記メッセージの少なくとも一部を切り捨てること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダとを含んでいるメモリコントローラ。
  27. (c)前記符号ワードの少なくとも一部を主メモリに保存し、且つ前記符号ワードの前記少なくとも一部の表現を前記主メモリから取得する回路を更に含む、請求項26に記載のメモリコントローラ。
  28. (a)請求項27に記載の前記メモリコントローラと、
    (b)前記主メモリとを含むメモリ装置。
  29. (a)通信チャネルから受信したメッセージを復調することによりK個の情報ビットをN(>K)個の符号ワードビットとして符号化する符号ワードの表現を生成する復調器と、
    (b)(i)N個のビットノードおよびN−K個のチェックノードを含むグラフにおける前記ビットノードと前記チェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新することおよび、
    (ii)(A)所定の失敗基準に照らして前記復号化が収束に失敗し、且つ
    (B)前記符号ワードビットの推定値が、前記グラフにトラッピング集合が含まれている兆候を示す基準を満たしている場合、前記反復を続ける前に前記メッセージの少なくとも一部をリセットすること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダとを含む受信器。
  30. (a)通信チャネルから受信したメッセージを復調することによりK個の情報ビットを
    N(>K)個の符号ワードビットとして符号化する符号ワードの表現を生成する復調器と、
    (b)(i)N個のビットノードおよびN−K個のチェックノードを含むグラフにおける前記ビットノードと前記チェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新することおよび、
    (ii)所定の失敗基準に照らして前記復号化が収束に失敗した場合、前記反復を続ける前に前記ビットノードから送られた前記メッセージの少なくとも一部を切り捨てること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダとを含む受信器。
  31. メッセージを送受信する通信システムであって、
    (a)(i)前記メッセージのK個の情報ビットをN(>K)個の符号ワードビットの符号ワードとして符号化するエンコーダ、および
    (ii)通信チャネルを介して前記符号ワードを変調信号として送信する変調器を含む送信器と、
    (b)(i)前記通信チャネルから前記変調信号を受信して前記変調信号を復調することより、前記符号ワードの表現を生成する復調器、および
    (ii)(A)N個のビットノードおよびN−K個のチェックノードを含むグラフにおける前記ビットノードと前記チェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新することおよび、
    (B)(I)所定の失敗基準に照らして前記復号化が収束に失敗し、且つ
    (II)前記符号ワードビットの推定値が、前記グラフにトラッピング集合が含まれている兆候を示す基準を満たしている場合、前記反復を続ける前に前記メッセージの少なくとも一部をリセットすること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダを含む受信器とを含む通信システム。
  32. メッセージを送受信する通信システムであって、
    (a)(i)前記メッセージのK個の情報ビットをN(>K)個の符号ワードビットの符号ワードとして符号化するエンコーダ、および
    (ii)通信チャネルを介して前記符号ワードを変調信号として送信する変調器を含む送信器と、
    (b)(i)前記通信チャネルから前記変調信号を受信して前記変調信号を復調することにより、前記符号ワードの表現を生成する復調器、および
    (ii)(A)N個のビットノードおよびN−K個のチェックノードを含むグラフにおける前記ビットノードと前記チェックノードとの間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新することおよび、
    (B)所定の失敗基準に照らして前記復号化が収束に失敗した場合、前記反復を続ける前に前記ビットノードから送られた前記メッセージの少なくとも一部を切り捨てること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの表現を復号化するプロセッサを含むデコーダを含む受信器とを含む通信システム。
  33. K個の情報ビットをN(>K)個の符号ワードビットとして符号化する符号ワードの表現を復号化する方法であって、
    (a)チャネルから前記符号ワードの表現をインポートすること、
    (b)N−K行およびN列を有するパリティチェック行列を提供すること、
    (c)前記行列の前記行と前記列との間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新することおよび、
    (d)(i)所定の失敗基準に照らして前記復号化が収束に失敗し、且つ
    (ii)前記符号ワードビットの推定値が、前記パリティチェック行列にトラッピング集合が含まれている兆候を示す基準を満たしている場合、前記反復を続ける前に前記メッセージの少なくとも一部をリセットすることを含む方法。
  34. K個の情報ビットをN(>K)個の符号ワードビットとして符号化する符号ワードの表現を復号化する方法であって、
    (a)チャネルから前記符号ワードの表現をインポートすること、
    (b)N−K行およびN列を有するパリティチェック行列を提供すること、
    (c)前記行と前記列との間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新することおよび、
    (d)所定の失敗基準に照らして前記復号化が収束に失敗した場合、前記反復を続ける前に前記列から送られた前記メッセージの少なくとも一部を切り捨てることを含む方法。
  35. K個の情報ビットをN(>K)個の符号ワードビットとして符号化する符号ワードの表現を復号化するデコーダであって、
    (a)N−K行およびN列を有するパリティチェック行列を提供すること、
    (b)前記行と前記列との間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新すること、
    (c)(i)所定の失敗基準に照らして前記復号化が収束に失敗し、且つ
    (ii)前記符号ワードビットの推定値が、前記パリティチェック行列にトラッピング集合が含まれている兆候を示す基準を満たしている場合、前記反復を続ける前に前記メッセージの少なくとも一部をリセットすること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダ。
  36. K個の情報ビットをN(>K)個の符号ワードビットとして符号化する符号ワードの表現を復号化するデコーダであって、
    (a)N−K行およびN列を有するパリティチェック行列を提供すること、
    (b)前記行と前記列との間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新すること、
    (c)所定の失敗基準に照らして前記復号化が収束に失敗した場合、前記反復を続ける前に前記列から送られた前記メッセージの少なくとも一部を切り捨てること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダ。
  37. (a)K個の情報ビットをN(>K)個の符号ワードビットの符号ワードとして符号化するエンコーダと、
    (b)(i)N−K行およびN列を有するパリティチェック行列を提供すること、
    (ii)前記行と前記列との間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新すること、
    (iii)(A)所定の失敗基準に照らして前記復号化が収束に失敗し、且つ
    (B)前記符号ワードビットの推定値が、前記パリティチェック行列にトラッピング集合が含まれている兆候を示す基準を満たしている場合、前記反復を続ける前に前記メッセージの少なくとも一部をリセットすること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダとを含むメモリコントローラ。
  38. (c)前記符号ワードの少なくとも一部を主メモリに保存し、且つ前記符号ワードの前記少なくとも一部の表現を前記主メモリから取得する回路を更に含む、請求項37に記載のメモリコントローラ。
  39. (a)請求項38に記載の前記メモリコントローラと、
    (b)前記主メモリとを含むメモリ装置。
  40. (a)K個の情報ビットをN(>K)個の符号ワードビットの符号ワードとして符号化するエンコーダと、
    (b)(i)N−K行およびN列を有するパリティチェック行列を提供すること、
    (ii)前記行と前記列との間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新すること、
    (iii)所定の失敗基準に照らして前記復号化が収束に失敗した場合、前記反復を続ける前に前記列から送られた前記メッセージの少なくとも一部を切り捨てること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダとを含むメモリコントローラ。
  41. (c)前記符号ワードの少なくとも一部を主メモリに保存し、且つ前記符号ワードの前記少なくとも一部の表現を前記主メモリから取得する回路を更に含む、請求項40に記載のメモリコントローラ。
  42. (a)請求項41に記載の前記メモリコントローラと、
    (b)前記主メモリとを含むメモリ装置。
  43. (a)通信チャネルから受信したメッセージを復調することによりK個の情報ビットをN(>K)個の符号ワードビットとして符号化する符号ワードの表現を生成する復調器と、
    (b)(i)N−K行およびN列を有するパリティチェック行列を提供すること、
    (ii)前記行と前記列との間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新すること、
    (iii)(A)所定の失敗基準に照らして前記復号化が収束に失敗し、且つ
    (B)前記符号ワードビットの推定値が、前記パリティチェック行列にトラッピング集合が含まれている兆候を示す基準を満たしている場合、前記反復を続ける前に前記メッセージの少なくとも一部をリセットすること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダとを含む受信器。
  44. (a)通信チャネルから受信したメッセージを復調することよりK個の情報ビットをN(>K)個の符号ワードビットとして符号化する符号ワードの表現を生成する復調器と、
    (b)(i)N−K行およびN列を有するパリティチェック行列を提供すること、
    (ii)前記行と前記列との間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新すること、
    (iii)所定の失敗基準に照らして前記復号化が収束に失敗した場合、前記反復
    を続ける前に前記列から送られた前記メッセージの少なくとも一部を切り捨てること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダとを含む受信器。
  45. メッセージを送受信する通信システムであって、
    (a)(i)前記メッセージのK個の情報ビットをN(>K)個の符号ワードビットの符号ワードとして符号化するエンコーダ、および
    (ii)通信チャネルを介して前記符号ワードを変調信号として送信する変調器を含む送信器と、
    (b)(i)前記通信チャネルから前記変調信号を受信して前記変調信号を復調するこ
    とにより、前記符号ワードの表現を生成する復調器、および
    (ii)(A)N−K行およびN列を有するパリティチェック行列を提供すること、
    (B)前記行と前記列との間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新すること、
    (C)(I)所定の失敗基準に照らして前記復号化が収束に失敗し、且つ
    (II)前記符号ワードビットの推定値が、前記パリティチェック行列にトラッピング集合が含まれている兆候を示す基準を満たしている場合、前記反復を続ける前に前記メッセージの少なくとも一部をリセットすること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダを含む受信器とを含む通信システム。
  46. メッセージを送受信する通信システムであって、
    (a)(i)前記メッセージのK個の情報ビットをN(>K)個の符号ワードビットの符号ワードとして符号化するエンコーダ、および
    (ii)通信チャネルを介して前記符号ワードを変調信号として送信する変調器を含む送信器と、
    (b)(i)前記通信チャネルから前記変調信号を受信して前記変調信号を復調することにより、前記符号ワードの表現を生成する復調器、および
    (ii)(A)N−K行およびN列を有するパリティチェック行列を提供すること、
    (B)前記行と前記列との間でのメッセージ交換を含むステップにより複数回の復号化反復で前記符号ワードビットの推定値を更新すること、
    (C)所定の失敗基準に照らして前記復号化が収束に失敗した場合、前記反復を続ける前に前記列から送られた前記メッセージの少なくとも一部を切り捨てること、を含むステップにより、前記符号ワードの推定値を更新するアルゴリズムを実行することにより前記符号ワードの前記表現を復号化するプロセッサを含むデコーダを含む受信器とを含む通信システム。
JP2011515675A 2008-06-23 2009-05-26 デコーダのリセットによるldpcトラッピング集合の克服 Expired - Fee Related JP5593312B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US7470108P 2008-06-23 2008-06-23
US61/074,701 2008-06-23
PCT/IB2009/052204 WO2009156883A1 (en) 2008-06-23 2009-05-26 Overcoming ldpc trapping sets by decoder reset

Publications (3)

Publication Number Publication Date
JP2011525771A JP2011525771A (ja) 2011-09-22
JP2011525771A5 JP2011525771A5 (ja) 2014-02-20
JP5593312B2 true JP5593312B2 (ja) 2014-09-24

Family

ID=40849244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011515675A Expired - Fee Related JP5593312B2 (ja) 2008-06-23 2009-05-26 デコーダのリセットによるldpcトラッピング集合の克服

Country Status (5)

Country Link
US (1) US20090319860A1 (ja)
EP (1) EP2301158A1 (ja)
JP (1) JP5593312B2 (ja)
TW (1) TW201018095A (ja)
WO (1) WO2009156883A1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370711B2 (en) 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding
CN101803206B (zh) * 2008-08-15 2013-09-04 Lsi公司 近码字的rom列表解码
EP2340507A4 (en) 2009-03-05 2012-05-30 Lsi Corp IMPROVED TURBO COMPENSATION PROCESS FOR ITERATIVE DECODER
US8572460B2 (en) * 2009-03-17 2013-10-29 Broadcom Corporation Communication device employing binary product coding with selective additional cyclic redundancy check (CRC) therein
JP5432367B2 (ja) 2009-04-21 2014-03-05 アギア システムズ インコーポレーテッド 書込み検証を使用した符号のエラーフロア軽減
US8464142B2 (en) 2010-04-23 2013-06-11 Lsi Corporation Error-correction decoder employing extrinsic message averaging
US8499226B2 (en) 2010-06-29 2013-07-30 Lsi Corporation Multi-mode layered decoding
US8458555B2 (en) * 2010-06-30 2013-06-04 Lsi Corporation Breaking trapping sets using targeted bit adjustment
US8504900B2 (en) 2010-07-02 2013-08-06 Lsi Corporation On-line discovery and filtering of trapping sets
US8645810B2 (en) 2011-07-31 2014-02-04 Sandisk Technologies Inc. Fast detection of convergence or divergence in iterative decoding
KR20140078576A (ko) 2011-07-31 2014-06-25 샌디스크 테크놀로지스, 인코포레이티드 메모리 및 전력 요건들이 감소된 에러-정정 디코딩
JP5631846B2 (ja) 2011-11-01 2014-11-26 株式会社東芝 半導体メモリ装置および復号方法
US8768990B2 (en) 2011-11-11 2014-07-01 Lsi Corporation Reconfigurable cyclic shifter arrangement
JP5591876B2 (ja) * 2012-06-22 2014-09-17 株式会社東芝 誤り訂正装置、誤り訂正方法およびプログラム
US8640002B1 (en) 2012-07-10 2014-01-28 Micron Technology, Inc. Resolving trapping sets
US9203432B2 (en) * 2012-08-28 2015-12-01 Marvell World Trade Ltd. Symbol flipping decoders of non-binary low-density parity check (LDPC) codes
RU2012146685A (ru) 2012-11-01 2014-05-10 ЭлЭсАй Корпорейшн База данных наборов-ловушек для декодера на основе разреженного контроля четности
TWI504163B (zh) * 2013-01-08 2015-10-11 Nat Univ Chung Hsing Low density co - bit check code decoding apparatus and method
US9407290B2 (en) 2013-03-15 2016-08-02 Sandisk Technologies Llc Error-correction decoding with conditional limiting of check-node messages
FR3009462B1 (fr) 2013-08-02 2019-08-23 Thales Procede ameliore de decodage d'un code correcteur avec passage de message, en particulier pour le decodage de codes ldpc ou codes turbo
KR20150024489A (ko) * 2013-08-26 2015-03-09 삼성전자주식회사 메모리 시스템에서의 ldpc 디코딩 방법 및 이를 이용한 ldpc 디코더
US9306600B2 (en) * 2014-01-06 2016-04-05 Micron Technology, Inc. Read threshold calibration for LDPC
US9564922B1 (en) 2014-03-19 2017-02-07 Microsemi Storage Solutions (U.S.), Inc. Error correction code decoder with stochastic floor mitigation
US9602133B1 (en) 2015-01-27 2017-03-21 Microsemi Storage Solutions (U.S.), Inc. System and method for boost floor mitigation
US9793924B1 (en) 2015-12-04 2017-10-17 Microsemi Solutions (U.S.), Inc. Method and system for estimating an expectation of forward error correction decoder convergence
US9911466B2 (en) 2016-02-16 2018-03-06 Micron Technology, Inc. Read threshold voltage selection
KR20180009558A (ko) 2016-07-19 2018-01-29 삼성전자주식회사 저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러
KR102592870B1 (ko) * 2018-10-12 2023-10-24 에스케이하이닉스 주식회사 에러 정정 회로 및 이의 동작 방법
TWI748214B (zh) * 2019-07-29 2021-12-01 慧榮科技股份有限公司 快閃記憶體控制器、儲存裝置及其讀取方法
CN112821895B (zh) * 2021-04-16 2021-07-09 成都戎星科技有限公司 一种实现信号高误码率下的编码识别方法
DE112022002131T5 (de) 2021-09-28 2024-04-11 Microchip Technology Inc. Ldpc-dekodierung mit trapped-block-management

Family Cites Families (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06290076A (ja) * 1993-04-05 1994-10-18 Nec Ic Microcomput Syst Ltd デバッグ装置
US5614358A (en) * 1995-05-15 1997-03-25 Eastman Kodak Company Ultrathin tabular grain emulsions with reduced reciprocity failure
EP0718676A1 (en) * 1994-12-22 1996-06-26 Eastman Kodak Company Photographic print elements containing emulsions of enhanced speed and controlled minimum densities
DE69534783T2 (de) * 1994-12-22 2006-10-12 Eastman Kodak Co. Kubische Silberiodochloridemulsionen, Verfahren zu ihrer Herstellung sowie fotografische Kopierelemente
US5641618A (en) * 1995-05-15 1997-06-24 Eastman Kodak Company Epitaxially sensitized ultrathin dump iodide tabular grain emulsions
US5776959A (en) * 1995-06-05 1998-07-07 Washington University Anticonvulsant and anxiolytic lactam and thiolactam derivatives
US5728517A (en) * 1995-06-30 1998-03-17 Eastman Kodak Company Photographic emulsions of enhanced sensitivity
US5612175A (en) * 1996-01-26 1997-03-18 Eastman Kodak Company Epitaxially sensitized tabular grain emulsions exhibiting enhanced speed and contrast
US5612176A (en) * 1996-01-26 1997-03-18 Eastman Kodak Company High speed emulsions exhibiting superior speed-granularity relationships
US5614359A (en) * 1996-01-26 1997-03-25 Eastman Kodak Company High speed emulsions exhibiting superior contrast and speed-granularity relationships
US5612177A (en) * 1996-01-26 1997-03-18 Eastman Kodak Company (111) tabular grain emulsions exhibiting increased speed
US5663041A (en) * 1996-02-20 1997-09-02 Eastman Kodak Company High chloride (100) tabular grain emulsions containing large, thin tabular grains and a process for their preparation
US6513154B1 (en) * 1996-10-21 2003-01-28 John R. Porterfield System and method for testing of computer programs in programming effort
US5880466A (en) * 1997-06-02 1999-03-09 The Regents Of The University Of California Gated charged-particle trap
US6332962B1 (en) * 1997-06-13 2001-12-25 Micrion Corporation Thin-film magnetic recording head manufacture using selective imaging
US6090536A (en) * 1998-12-17 2000-07-18 Eastman Kodak Company Photographic emulsions and elements of increased sensitivity
US6027869A (en) * 1998-12-17 2000-02-22 Eastman Kodak Company Photographic elements containing light scattering particles
US6225036B1 (en) * 1998-12-17 2001-05-01 Eastman Kodak Company Color photographic element containing a fragmentable electron donor in combination with a one equivalent coupler and starch peptized tabular emulsion for improved photographic response
US6187525B1 (en) * 1998-12-17 2001-02-13 Eastman Kodak Company Color photographic elements of increased sensitivity containing one equivalent coupler
US6898185B1 (en) * 1999-10-20 2005-05-24 Broadcom Corporation Diagnostics of cable and link performance for a high-speed communication system
US7164494B1 (en) * 2000-02-07 2007-01-16 Adobe Systems Incorporated Color separation of pattern color spaces and form XObjects
US6264416B1 (en) * 2000-03-09 2001-07-24 Vantage Mobility International, Llc Compact, slide-out ramp for a minivan
WO2001076079A2 (en) * 2000-04-04 2001-10-11 Comtech Telecommunication Corp. Enhanced turbo product code decoder system
KR20100046063A (ko) * 2000-06-16 2010-05-04 어웨어, 인크. Ldpc 코드형 변조를 위한 시스템 및 방법
US6365336B1 (en) * 2000-10-31 2002-04-02 Eastman Kodak Company Aqueous photothermographic imaging elements comprising aqueous silver halide emulsions precipitated in the presence of cationic starch peptizing agent
US6395465B1 (en) * 2000-12-07 2002-05-28 Eastman Kodak Company Preparation of high bromide photographic emulsions with starch peptizer
US6383730B1 (en) * 2000-12-07 2002-05-07 Eastman Kodak Company Preparation of high chloride photographic emulsions with starch peptizer
US6391534B1 (en) * 2000-12-07 2002-05-21 Eastman Kodak Company Preparation of high bromide photographic emulsions with starch peptizer and oxidizing agent
KR100713331B1 (ko) * 2000-12-23 2007-05-04 삼성전자주식회사 부호분할다중접속 이동통신시스템의 반복복호 중지 장치 및 방법
US6680331B2 (en) * 2001-07-16 2004-01-20 Board Of Regents, The University Of Texas System Lactam and thiolactam derivatives as anesthetic and conscious sedation agents
US7046403B1 (en) * 2001-08-31 2006-05-16 Adobe Systems Incorporated Image edge color computation
US6518007B1 (en) * 2001-12-11 2003-02-11 Eastman Kodak Company Silver halide elements containing solubilized antifoggants and low fogging tabular silver halide grains
US7197690B2 (en) * 2002-05-31 2007-03-27 Broadcom Corporation Bandwidth efficient coded modulation scheme based on MLC (multi-level code) signals having multiple maps
US7020829B2 (en) * 2002-07-03 2006-03-28 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes
US20040019845A1 (en) * 2002-07-26 2004-01-29 Hughes Electronics Method and system for generating low density parity check codes
US20060013181A1 (en) * 2002-07-31 2006-01-19 Victor Stolpman Apparatus, and associated method, for allocating communications in a multi-channel communication system
US6893809B2 (en) * 2002-09-16 2005-05-17 Eastman Kodak Company Silver halide photographic element containing fogged emulsions for accelerated development
US6756188B2 (en) * 2002-09-16 2004-06-29 Eastman Kodak Company Photographic recording material for accelerated development
JP3994851B2 (ja) * 2002-10-28 2007-10-24 富士ゼロックス株式会社 画像処理方法
US6740483B1 (en) * 2003-04-30 2004-05-25 Eastman Kodak Company Process for doping silver halide emulsion grains with Group 8 transition metal shallow electron trapping dopant, selenium dopant, and gallium dopant, and doped silver halide emulsion
US7185270B2 (en) * 2003-07-29 2007-02-27 Broadcom Corporation LDPC (low density parity check) coded modulation hybrid decoding
US7159170B2 (en) * 2003-06-13 2007-01-02 Broadcom Corporation LDPC (low density parity check) coded modulation symbol decoding
US7383493B2 (en) * 2003-06-13 2008-06-03 Broadcom Corporation LDPC (Low Density Parity Check) coded modulation hybrid decoding using non-Gray code maps for improved performance
US7023735B2 (en) * 2003-06-17 2006-04-04 Ramot At Tel-Aviv University Ltd. Methods of increasing the reliability of a flash memory
US7222284B2 (en) * 2003-06-26 2007-05-22 Nokia Corporation Low-density parity-check codes for multiple code rates
US7334181B2 (en) * 2003-09-04 2008-02-19 The Directv Group, Inc. Method and system for providing short block length low density parity check (LDPC) codes
JP4093158B2 (ja) * 2003-09-17 2008-06-04 日産自動車株式会社 ディーゼルエンジンのフィルタ再生制御装置
US7376883B2 (en) * 2003-10-27 2008-05-20 The Directv Group, Inc. Method and system for providing long and short block length low density parity check (LDPC) codes
EP1536568A1 (en) * 2003-11-26 2005-06-01 Matsushita Electric Industrial Co., Ltd. Belief propagation decoder cancelling the exchange of unreliable messages
US7237181B2 (en) * 2003-12-22 2007-06-26 Qualcomm Incorporated Methods and apparatus for reducing error floors in message passing decoders
US7383487B2 (en) * 2004-01-10 2008-06-03 Broadcom Corporation IPHD (iterative parallel hybrid decoding) of various MLC (multi-level code) signals
US7395495B2 (en) * 2004-01-12 2008-07-01 Intel Corporation Method and apparatus for decoding forward error correction codes
US20050193320A1 (en) * 2004-02-09 2005-09-01 President And Fellows Of Harvard College Methods and apparatus for improving performance of information coding schemes
JP4282558B2 (ja) * 2004-06-30 2009-06-24 株式会社東芝 低密度パリティチェック符号復号器及び方法
JP4817641B2 (ja) * 2004-10-26 2011-11-16 キヤノン株式会社 画像形成装置
US7900127B2 (en) * 2005-01-10 2011-03-01 Broadcom Corporation LDPC (Low Density Parity Check) codes with corresponding parity check matrices selectively constructed with CSI (Cyclic Shifted Identity) and null sub-matrices
EP1699138A1 (en) * 2005-03-02 2006-09-06 STMicroelectronics N.V. Method and device for decoding LDPC encoded codewords, in particular DVB-S2 LDPC encoded codewords
JP4526450B2 (ja) * 2005-06-30 2010-08-18 ルネサスエレクトロニクス株式会社 復号装置と方法並びにプログラム
US7716553B2 (en) * 2005-07-13 2010-05-11 Leanics Corporation System and method for designing RS-based LDPC code decoder
US7307902B2 (en) * 2005-08-30 2007-12-11 Hewlett-Packard Development Company, L.P. Memory correction system and method
US7743315B2 (en) * 2005-10-27 2010-06-22 Nec Laboratories America, Inc. System and method for low-density parity check (LDPC) code design
US7852802B2 (en) * 2005-10-31 2010-12-14 Nec Laboratories America, Inc. Joint scheduling and grouping for SDMA systems
EP1966897A4 (en) * 2005-12-27 2012-05-30 Lg Electronics Inc DEVICES AND METHODS FOR DECODING USING A CHANNEL CODE OR LPDC
US8457219B2 (en) * 2005-12-30 2013-06-04 Ikanos Communications, Inc. Self-protection against non-stationary disturbances
US8132072B2 (en) * 2006-01-06 2012-03-06 Qualcomm Incorporated System and method for providing H-ARQ rate compatible codes for high throughput applications
US8259852B2 (en) * 2006-07-19 2012-09-04 Broadcom Corporation Method and system for satellite communication
KR100943602B1 (ko) * 2006-06-27 2010-02-24 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
US7730378B2 (en) * 2006-06-29 2010-06-01 Nec Laboratories America, Inc. Low-complexity high-performance low-rate communications codes
US20080028271A1 (en) * 2006-07-25 2008-01-31 Legend Silicon Method for generating ldpc code for a ldpc based tds-ofdm system
US7831895B2 (en) * 2006-07-25 2010-11-09 Communications Coding Corporation Universal error control coding system for digital communication and data storage systems
US20080109698A1 (en) * 2006-07-25 2008-05-08 Legend Silicon Hybrid min-sum decoding apparatus with low bit resolution for ldpc code
US7904783B2 (en) * 2006-09-28 2011-03-08 Sandisk Corporation Soft-input soft-output decoder for nonvolatile memory
US7818653B2 (en) * 2006-09-28 2010-10-19 Sandisk Corporation Methods of soft-input soft-output decoding for nonvolatile memory
US7644339B2 (en) * 2006-10-02 2010-01-05 Broadcom Corporation Overlapping sub-matrix based LDPC (low density parity check) decoder
US7934146B2 (en) * 2006-10-18 2011-04-26 Nokia Corporation Method, apparatus and computer program product providing for data block encoding and decoding
US8504890B2 (en) * 2006-12-17 2013-08-06 Ramot At Tel Aviv University Ltd. Scheduling for LDPC decoding
US7966548B2 (en) * 2007-06-29 2011-06-21 Alcatel-Lucent Usa Inc. Method and system for encoding data using rate-compatible irregular LDPC codes based on edge growth and parity splitting
US7958429B2 (en) * 2007-07-02 2011-06-07 Broadcom Corporation Distributed processing LDPC (low density parity check) decoder
US8010881B2 (en) * 2007-07-02 2011-08-30 Broadcom Corporation Multi-code LDPC (low density parity check) decoder
US20090013239A1 (en) * 2007-07-02 2009-01-08 Broadcom Corporation LDPC (Low Density Parity Check) decoder employing distributed check and/or variable node architecture
US8006172B2 (en) * 2007-07-10 2011-08-23 Oracle America, Inc. Auxiliary path iterative decoding
US8127209B1 (en) * 2007-07-30 2012-02-28 Marvell International Ltd. QC-LDPC decoder with list-syndrome decoding
US8086928B2 (en) * 2007-08-15 2011-12-27 Broadcom Corporation Methods and systems for terminating an iterative decoding process of a forward error correction block
EP2066056B1 (en) * 2007-11-28 2016-04-27 STMicroelectronics N.V. Method and device for decoding a received systematic code encoded block
CN101803206B (zh) * 2008-08-15 2013-09-04 Lsi公司 近码字的rom列表解码
US8335949B2 (en) * 2009-11-06 2012-12-18 Trellisware Technologies, Inc. Tunable early-stopping for decoders
US8918695B2 (en) * 2009-12-23 2014-12-23 Intel Corporation Methods and apparatus for early stop algorithm of turbo decoding

Also Published As

Publication number Publication date
WO2009156883A1 (en) 2009-12-30
TW201018095A (en) 2010-05-01
US20090319860A1 (en) 2009-12-24
EP2301158A1 (en) 2011-03-30
JP2011525771A (ja) 2011-09-22

Similar Documents

Publication Publication Date Title
JP5593312B2 (ja) デコーダのリセットによるldpcトラッピング集合の克服
US8806307B2 (en) Interruption criteria for block decoding
US8291279B2 (en) Memory-efficient LDPC decoder and method
US8504895B2 (en) Using damping factors to overcome LDPC trapping sets
KR101621573B1 (ko) 복잡도를 줄인 ldpc 디코더
JP5177767B2 (ja) ガロア体gf(q)におけるldpc符号を復号する方法および機器
US8464123B2 (en) Matrix structure for block encoding
CN107528597B (zh) 一种基于crc校验码的ldpc码后处理译码方法
US9270297B2 (en) Error-correction decoding with reduced memory and power requirements
US8935598B1 (en) System and method for adaptive check node approximation in LDPC decoding
US10848182B2 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
US8375278B2 (en) Compact decoding of punctured block codes
US20150372695A1 (en) Method and apparatus of ldpc decoder with lower error floor
US10790854B2 (en) Coset probability based majority-logic decoding for non-binary LDPC codes
KR20130012549A (ko) Ldpc 부호화, 복호화 방법 및 그 방법을 이용하는 장치
US8516351B2 (en) Compact decoding of punctured block codes
US8516352B2 (en) Compact decoding of punctured block codes
EP2989720A1 (en) Method and apparatus of ldpc encoder in 10gbase-t system
WO2011010286A2 (en) Compact decoding of punctured codes
JP2012175564A (ja) 復号装置、符号化装置、復号方法、符号化方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130705

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130926

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131003

A524 Written submission of copy of amendment under section 19 (pct)

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20131227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140307

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140530

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: 20140704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140804

R150 Certificate of patent or registration of utility model

Ref document number: 5593312

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees