JP4567734B2 - メモリが効率的なldpc復号化方法及び装置 - Google Patents

メモリが効率的なldpc復号化方法及び装置 Download PDF

Info

Publication number
JP4567734B2
JP4567734B2 JP2007524935A JP2007524935A JP4567734B2 JP 4567734 B2 JP4567734 B2 JP 4567734B2 JP 2007524935 A JP2007524935 A JP 2007524935A JP 2007524935 A JP2007524935 A JP 2007524935A JP 4567734 B2 JP4567734 B2 JP 4567734B2
Authority
JP
Japan
Prior art keywords
check node
message
node
check
state
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
JP2007524935A
Other languages
English (en)
Other versions
JP2008508835A (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2008508835A publication Critical patent/JP2008508835A/ja
Application granted granted Critical
Publication of JP4567734B2 publication Critical patent/JP4567734B2/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
    • 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • 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
    • 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
    • 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/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
    • H03M13/1114Merged schedule message passing algorithm with storage of sums of check-to-bit node messages or sums of bit-to-check node messages, e.g. in order to increase the memory efficiency
    • 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
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/1122Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
    • 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
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Detection And Correction Of Errors (AREA)

Description

[発明の背景]
ほぼ全ての形態の電子通信/格納システムは誤り訂正符号を使用する。誤り訂正符号は、データストリームの中に冗長性を導入することによって、これらのシステムにおける情報転送の本質的な不信頼性を補償する。誤り訂正の数学的基礎はShannonによって確立された。Shannonが開発したチャネルの数学的概念では、通信システムにおける信号の歪がランダムプロセスによってモデル化される。Shannonの最も基礎的な成果は雑音のあるチャネルの定理であり、これはチャネルのキャパシティ、すなわちチャネルを通じて情報を確実に送達できる最大速度を指定する量を規定する。キャパシティに近い速度での高信頼度伝送は誤り訂正符号の使用を要する。よって誤り訂正符号は、キャパシティに可能な限り接近しつつ、十分な信頼性を達成するべく設計される。誤り訂正符号の実用にあたっては、誤り訂正符号実施の複雑さがさらなる要因として関与する。ターボ符号の発明とその後の低密度パリティ検査(LDPC;low-density parity-check)符号の再発見/開発がもたらした最近の誤り訂正符号化システムの進歩は、Shannonのキャパシティに非常に近づくことができる、実現可能な複雑度の符号化システムを提供する。
LDPC符号は、図1に示すグラフ100のように、しばしばタナーグラフと呼ばれる、二部グラフ(bipartite graph)によってうまく表現される。タナーのグラフでは、1組のノードの中で、可変ノード102は符号語のビットに相当し、他の組のノード、検査ノードと呼ばれる場合もある制約ノード106は、符号を規定する1組のパリティ検査制約に相当する。エッジ(edge)104はグラフの中で可変ノードを制約ノード(constraint node)へ接続する。可変ノードと制約ノードとは、それらがグラフの中でエッジによって結ばれる場合にネイバー(neighbor)であると呼ばれる。通常は、1対のノードが最高でも1本のエッジによって結ばれると仮定する。LDPC符号は、パリティ検査マトリックス202を使って同等に表現できる。図2はパリティマトリックス表現の一例を示すものであり、ここに示されたベクトルx208は、Hx=0の場合に限り、符号語(codeword)である。
各々の可変ノードには1ビットの符号語が関連する。場合によっては、これらのビットのいくつかがパンクチャー(puncture)される。パンクチャードビットはある特定の符号構造において望ましく、それらは伝送される符号語から除外される。
可変ノードシーケンスに1対1で関連するビットシーケンスは、各制約ノードにつき、(可変ノードとの関連を介し)制約に隣接するビットの2を法とする和が0になる、すなわちそれらが1の偶数を構成する場合に限り、符号の符号語である。
LDPC符号語を復号するために用いる復号器と復号アルゴリズムは、グラフの中でエッジ沿いにメッセージを交換することによって、そして着信メッセージに基づきノードにて計算を実行することによりこれらのメッセージを更新することによって、作動する。かかるアルゴリズムは一般的にメッセージ引き渡しアルゴリズム(message passing algorithm)と呼ばれるであろう。グラフの中の各可変ノードには、例えば通信チャネルからの観察によって決定される関連ビットの値の推定を示す、受信値と呼ばれる、ソフトビットが最初に提供される。理想的に、別々のビットの推定値は統計的に独立する。実際には、この理想は侵害されることがあり、且つしばしば侵害される。受信値の集まりは受信語(received word)をなす。本願の目的で、例えば通信システムの受信器によって観察される信号を、受信語により識別してよい。
ノードへ、すなわち可変ノードか制約ノードへ、取り付けられるエッジの数は、ノードの度数(degree of the node)と呼ばれる。正規のグラフ又は符号とは、全ての可変ノードが同じ度数を、例えばjを持ち、且つ全ての制約ノードが同じ度数、例えばkを持つ、グラフ又は符号である。本発明者らはこの場合に、符号は(j、k)正規符号 (regular code)であると言う。これらは当初Gallager(1961年)によって考究された符号である。「正規」符号とは対照的に、不正規符号(irregular code)は、度数の異なる制約ノード及び/又は可変ノードを有する。例えば、いくつかの可変ノードは度数4、他の可変ノードは度数3、さらに他の可変ノードは度数2であってよい。
不正規符号はその表現及び/又は実施がより煩雑になることがあるが、不正規LDPC符号が正規LDPC符号に比べてより優れた誤り訂正/検知性能を提供できることが判明している。
当初の符号語の再現版を生成するため、LDPC符号化を用いて生成された受信語を、これにLDPC復号化操作を、例えば誤り訂正及び検知操作を実行することによって、処理できることは理解されよう。符号化された当初のデータを取り戻すため、復元された符号語はその後データ復号化にかけることができる。データ復号化プロセスは、例えば復元された符号語から特定のビット部分集合を選択するだけでよい。
上で述べたとおり、LDPC復号化操作は一般的にメッセージ引き渡しアルゴリズムを備える。役に立つ可能性のあるメッセージ引き渡しアルゴリズムは数多くあり、かかるアルゴリズムの使用はLDPC復号化に限定されない。
以降の節で論述する本発明の理解を促すため、以下に信念伝播(belief propagation)の簡単な数学的説明を与える。
(バイナリ)LDPC符号の信念伝播は以下のとおりに表現できる。グラフのエッジに沿って伝送されるメッセージは、可変ノードに関連するビットの対数尤度(log-likelihood)log(p/p)と解釈される。ここで(p、p)は関連ビットにおける条件付き確率分布を表し、ここでpはビットが値xを取る確率を示す。受信器によって復号器へ提供されるソフトビットもまた対数尤度の形で与えられる。よって、受信値は、すなわち受信語の要素は、通信チャネルによって提供されるビットの観察を条件とし、関連ビットの対数尤度である。一般的に、メッセージmは対数尤度mを表し、受信値yは対数尤度yを表す。パンクチャードビットの場合、対数尤度受信値yは0に設定され、p=p=1/2を示す。
信念伝播のメッセージ引き渡し規則を検討する。メッセージは、検査ノードから可変ノードへ至るメッセージの場合にmC2Vと表し、可変ノードから検査ノードへ至るメッセージの場合にmV2Cと表す。d本のエッジを持つ可変ノードを検討する。各エッジj=1,...,dにつき、mC2V(i)はエッジi沿いに着信するメッセージを表すとする。復号化プロセスの初期化のときに、全てのエッジについてmC2V=0を設定する。一般的に、可変ノードから発信するメッセージは以下によって与えられる。
Figure 0004567734
この操作に対応するノードからの発信復号化ソフト値(エッジメッセージではない)は
Figure 0004567734
によって与えられる。この出力に関連する発信硬判定(outgoing hard decision)はXoutの標識から得られる。
検査ノードでは、メッセージをその「標識」とマグニチュードを用いて表すと、しばしばより好都合である。よって、メッセージmについて、m∈GF[2]はメッセージの「パリティ」を表すとする、つまり、もしもm≧0ならm=0であり、もしもm<0ならm=1である。加えて、m∈[0,∞]はmのマグニチュードを表すとする。こうしてm=−1mpを得る。検査ノードにおいて、mとmとの更新は別々である。本発明者らは、度数dの検査ノードの場合に、
Figure 0004567734
を得、ここで全ての加算はGF[2]上であり、且つ、
Figure 0004567734
を得、ここで加算は実数であり、F(x):=ln coth(x/2)を定義する。本発明者らはFがこれ自体の逆であること、すなわちF(x)=F(x)であることに着目する。
LDPCの文献でしばしば言及されるアルゴリズムは、いわゆるMIN−SUMアルゴリズムである。このアルゴリズムで、検査ノードにおける更新操作は以下のとおりに数学的に表現できる。
Figure 0004567734
よって、C2Vメッセージの信頼度は、他のエッジ沿いに着信するV2Cメッセージの最低信頼度に等しい。このアルゴリズムを実施するには、検査ノードにて、最も小さい信頼度と2番目に小さい信頼度(それらの値は、もしも少なくとも2つの着信メッセージで発生するなら、同じ可能性がある)とを、そして信頼度が最も低い着信メッセージを提供するエッジの識別性(identity)を、保存すれば十分である。信頼度が最も低い着信メッセージを発生させているエッジ沿いの発信C2Vメッセージの信頼度は2番目に小さい着信信頼度に等しく、他の全てのエッジの発信C2Vメッセージの信頼度は最も小さい信頼度に等しい。
米国特許第6,633,856号ではLDPC復号器アーキテクチャが説明された。そのアーキテクチャでは、検査ノードから可変ノードへ送信されるメッセージがメモリに格納された。メッセージが、例えば5ビットから構成される場合、そして検査ノードが度数Kを持つ場合、それらのメッセージのために用いる記憶域は5Kビットである。
実施と費用の観点から、LDPC復号器は、構築することが比較的容易く、要求されるハードウェアが比較的少量となる方式で実施するのが、一般的には望ましい。メモリは、多くの復号器設計において主要な構成品にあたる。もしも復号器の実施に要するメモリ量を低い、又は最低限の量に抑えることができ、これによりハードウェア費用が減るなら、望ましいであろう。
使用メモリ量を減らすにあたってメモリ削減は関心事ではあるが、実世界の1つ又は複数の復号化時間制約への不適合を招きかねない、容認し難い処理遅延を課す設計を避けることはしばしば必要である。
上の論述を踏まえ、ただ単にLDPC復号器の実施のために、及び/又は比較的少量のメモリで復号化操作を実行できるLDPC復号器を製造するために使用できる、メモリが効率的な方法と装置とが望ましいことは明らかであろう。加えて、メモリが効率的な復号器実施を使用しLDPC復号化プロセスに多大な遅延を招くことを避けるための方法は望ましく、且つ有益であろう。
[発明の概要]
本発明は、メモリが効率的な方式でLDPC復号化操作を実行するための方法と装置とを指向する。本発明の種々の特徴は、例えば1つ又は複数のメッセージ情報圧縮及び/又は展開技法を使用し、メモリが効率的な方式で実施される、検査ノード処理方法及び装置を指向する。本発明のさらなる特徴は、復号化プロセスに甚大な遅延を招くことを避ける符号構造を有するLDPC符号の使用により、メモリが効率的なLDPC復号器にて、例えば本願にて説明されるタイプの復号器にて、遅延を回避すること及び/又は抑えることを指向する。
本発明の発明者は、LDPC復号器における検査ノード計算に、発信信頼度(outgoing reliability)がわずか2つの値を取り、それらの値の内一方はただ1つのエッジに沿って発信するという性質があること、さらに検査ノードのメッセージ情報を効率的に格納するため、そして検査ノードプロセッサモジュールを効率的に実施するため、この性質を利用できることに気付いた。この性質を利用し、検査ノードの処理中には各エッジにつきメッセージ全体を格納する必要はなく、記憶域は、処理のため、そしてある1つのノードに対応する検査ノード処理が完了したときに出力メッセージを構築するために、必要とされる量にまで抑えられる。メッセージ圧縮を使用することにより、検査ノードプロセッサモジュールに要求される記憶域は、多くの場合、メッセージ圧縮が本発明に従って使用されない実施に比べて、大幅に抑えることができる。
本発明の種々の特徴は、検査ノード処理モジュールを指向する。処理モジュールは、各検査ノードに関連するメッセージに対応するメッセージ情報を圧縮形式で格納する。これを果たすため、例えば1検査ノードにつき1項目を含む、検査ノード状態メモリ(check node state memory)が使用される。検査ノードの状態情報(state information)は、その検査ノードの1組のメッセージ一式ではなく、その検査ノードに対する入力メッセージから生成される情報を含む。よって、状態情報は1組の圧縮されたメッセージ情報に相当する。各々の検査ノードに対応する圧縮された情報は、各々の入力メッセージが、例えば可変ノード至検査ノードメッセージが、受信されるときに更新される。入力メッセージはどんな順序でも受信でき、例えば、個々の検査ノードの入力メッセージは連続的に受信され処理される必要はない。よって本発明によると、ある1つの検査ノードに対応する入力メッセージは、最初に他の検査ノードの全入力メッセージを受信することなく処理でき、その後に、他の検査ノードに対応する入力メッセージが続く。これは、可変至検査ノードメッセージを、LDPCグラフの検査ノード側にエッジが現れる順序とは対照的に、可変ノードエッジ順序で受信し処理することを可能にする。よって、可変ノード処理素子にて可変ノード順序でメッセージを処理するなら、本発明の検査ノード処理モジュールにおける処理に先駆け、生成されるメッセージを再順序付けする必要はない。
1個の検査ノードに対応する1組の可変ノード至検査ノードメッセージ一式が処理された後には、検査ノードに関連する1組のメッセージ一式に対応する圧縮されたメッセージ情報にアクセスし、処理する、例えば、本明細書において抽出プロセス(extraction process)とも呼ばれる展開プロセス(decompression process)を行う。抽出プロセスは、例えば実施される特定の符号構造と同符号構造の中での個々の検査ノードの位置とに応じ、個々の検査ノードによって産出されるべき1組の検査ノード至可変ノードメッセージ一式を生成する。
いくつかの実施形態において、各検査ノードにつき格納される状態は2つの値、例えば第1及び第2の値を含む。これらの値はメッセージマグニチュード値(message magnitude value)であってよい。状態はまた、値の内一方に関連するエッジ位置情報を含む。この情報は、特定の検査ノードによって産出される発信メッセージのマグニチュード部分を生成するために使用される状態を表す。信頼度情報を表すメッセージマグニチュード情報に加え、各検査ノードにつき累積標識ビット値(accumulated sign bit value)が格納される。累積標識ビットは検査ノードに至る各入力メッセージの標識ビットをXORすることによって生成され、これを最後に生成された累積標識ビット値とともに処理することにより、各出力メッセージの標識ビット(sign bit)を生成する。
ある特定の実施形態においては、検査ノードに対応する、受信される各入力メッセージにつき、追加の標識ビット情報が格納される。かかる実施形態において、入力標識ビットは検査ノードエッジで受信される各メッセージから格納される。よってかかる実施形態においては、検査ノードごとの累積標識ビットに加え、検査ノードエッジごとに入力標識ビットが格納され、各エッジは異なる入力メッセージに対応する。
検査ノードが復号化プロセスのかなり後に処理される入力メッセージを可変ノードから受け取らない符号構造を使用することにより、1個の検査ノードに対応する1組の入力メッセージ一式を、その個々の検査ノードからの出力メッセージが生成される前に、処理する必要があるが、少なくともいくつかの検査ノードの出力メッセージは、実施されるグラフ構造の中に存在する1組の可変ノード一式からのメッセージを処理せずとも、生成できる。グラフの一部分に発生する検査ノードの処理を、かなり後に処理される可変ノードからのメッセージに検査ノードが依存しない形に行う利点を考慮に入れる符号を使用することにより、検査ノード出力メッセージ生成にともなうタイミング遅延を減らす、及び/又は最小限に抑えることができる。
ある1つの検査ノードのための検査ノード出力メッセージは、1組の入力メッセージ一式が、例えば各検査ノードエッジにつき1つの入力メッセージが処理された時点で、生成できる。可変ノードへの入力メッセージとなる検査ノード出力メッセージを生成するため、本発明の検査ノード処理モジュールは、検査ノードに関連する検査ノード状態を読み取る。検査ノード処理モジュールは、1エッジのための完全な出力メッセージを、例えば検査ノード至可変ノードメッセージを抽出するため、例えば生成するため、格納されたマグニチュード状態情報から、例えば第1及び第2のマグニチュード値とエッジ識別子から、状態を処理する。このプロセスは、1組の出力メッセージ一式が生成されるまで、検査ノードのエッジごとに繰り返される。検査ノード状態情報の処理は、実質的には展開操作(decompression operation)である。
いくつかの実施形態においては、検査ノードメッセージマグニチュード(信頼度)情報を圧縮状態で格納するためmin sumアルゴリズムを使用する。かかる実施形態においては、最小メッセージマグニチュード値と、第2の最小メッセージマグニチュード値と、最小メッセージマグニチュード値に対応するエッジを指示する情報とが、各検査ノードにつき格納される。累積標識ビット情報に加えてこの情報がある。この情報は、情報に対応する特定の検査ノードに対応する入力メッセージが受信されるたびに、特定の検査ノードの入力メッセージの各々が処理されるまで、更新される。
ある1つのエッジに対応する発信メッセージのマグニチュード部分を生成するため、エッジは、最小メッセージ値が受信されたところのエッジを指示する格納されたエッジ識別子に比較される。発信メッセージを生成しようとしているエッジが格納されたエッジ識別子に合致しない場合には、最小メッセージ値が発信メッセージのマグニチュードとして使用される。格納されたエッジ識別子が、発信メッセージを生成しようとするエッジに合致する場合には、第2の最小値が発信メッセージ値として使用される。よって、検査ノードによって生成される発信メッセージのマグニチュードは、最小値か又は第2の最小値のいずれか一方を持つこととなり、第2の最小値は、検査ノードによって受信された最小マグニチュード値を供給した単一のエッジ上で出力される。
計算的に、これは2つの考えられる信頼度、A及びB間で多重化(選択)操作を実行すること意味し、ここでA及びBは、2つの考えられる発信マグニチュード値であり、例えば特定の検査ノードによって受信される最小又は第2の最小受信メッセージマグニチュード値である。マグニチュード値A(最小値)が受信されたところのエッジを指示する格納されたエッジ索引にエッジ(可変至検査ノード接続)が合致する場合、第2の発信マグニチュード値Bが発信メッセージのマグニチュード部分として選択される。さもなくば、最小マグニチュード値Aが出力される。
発信メッセージのための標識ビットは様々な方法で生成できる。ある1つの特定の例示的実施形態において、ある1つの検査ノードに対応する累積標識ビット値は、発信メッセージを生成しようとしているエッジに対応する格納された受信標識ビット値に組み合わされ、例えばXORされ、そのエッジのための発信メッセージの標識ビット値が生成される。このプロセスは、発信メッセージ生成プロセスのマグニチュード生成部分のように、発信メッセージを生成しようとしているエッジごとに繰り返される。
実施の観点から、本発明の検査ノード処理方法には、メッセージ圧縮の使用により検査ノード処理の実施に要するメモリ量を減らすという利点がある。実施の観点から、これは、今日使用され且つ将来の使用が見込まれる、数多くの堅牢な(robust)LDPC符号の場合のように、検査ノードが多数のエッジを有する場合に特に有意義である。
例えば、1つの標識ビットと4つのマグニチュードビットを含む5ビットのメッセージの場合を検討する。上の仮定のもと、検査ノードからの出力情報は凡そK+8+logKビットまで圧縮でき、ここでKは着信及び発信メッセージの数である。5ビットメッセージの例で、K個の入力メッセージの各々に対応する標識ビットを格納するためK個の格納ビットが使用され、出力メッセージが取る可能性がある2つの考えられるマグニチュード値の、例えば最小入力メッセージマグニチュードと次に最も小さい入力メッセージマグニチュード値の、各々を格納するため8ビットが使用され、第2の信頼度値を受け取ることとなるエッジ(メッセージ)を示すためlogKビットが使用され、他方、他のエッジは最小入力メッセージマグニチュード値を受け取る。高速度LDPC符号の場合のように、もしもKが大きいなら、このメッセージ情報格納技法の使用は、出力メッセージを生成するプロセスの一部として各受信メッセージに対応するビット一式を格納する実施に比べ、大幅な節約をもたらす。
格納された状態から、例えば最小メッセージマグニチュード、第2の最小メッセージマグニチュード、最小メッセージマグニチュードに対応するエッジ位置、及びエッジの各々に対応する格納された標識ビットから、発信メッセージを生成するため、メッセージ一式が格納される実施形態に比べ、ある程度の余分な処理が要求されるが、代償として、かなりのメモリ節約がありうる。
本発明の検査ノード処理モジュールには、検査ノード処理モジュールへの入力となる可変至検査ノードメッセージを、特定のメッセージ処理順序を顧慮せず受信でき、処理できるという、さらなる利点がある。出力メッセージは、検査ノードへの入力メッセージの各々が処理された後に生成される。
本発明の多数のさらなる特徴と利益とは、以降の詳細な説明から明白となるであろう。
以下の3つの関連出願は参照してここに明示的に組み込まれ、本出願の一部をなすと考えられる、2001年10月10日に出願され、「LDPC符号を復号化するための方法と装置(METHODS AND APPARATUS FOR DECODING LDPC CODES)」と題された、米国特許出願第09/975,331号、2002年4月4日に出願され、「パリティ検査復号器で使用するノードプロセッサ(NODE PROCESSORS FOR USE IN PARITY CHECK DECODERS)」と題された、米国特許第出願第10/117,264号、2003年7月11日に出願され、「LDPC符号を符号化するための方法と装置(METHODS AND APPARATUS FOR ENCODING LDPC CODES)」と題された、米国特許出願第10/618,325号。
本発明の種々の実施形態は、簡素な、例えばハードウェアの複雑度が低い、LDPC復号器アーキテクチャ実施を提供する方法と装置とを指向する。本発明の方法と装置とは、ある特定のアルゴリズムの場合に、検査ノードから送出される信頼度が2つの考えられる値の内一方を取り、それらの値の内一方はただ1つのメッセージエッジに沿って送信されるという知見を有利に活かす。これは、例えばmin−sumアルゴリズムに、当てはまる。LDPCメッセージ情報を圧縮形式で格納するために使用できる他のアルゴリズムの場合にも、例えば、検査ノードから送出される信頼度がわずか2つの考えられる値を取り、それらの値の内一方は、検査ノードに取り付けられたただ1つのメッセージエッジに沿って送信されるという性質を、min−sumアルゴリズムと共有するアルゴリズムの場合にも、同じ条件が存在し得る。
本発明によると、復号化を制御するために使用されるLDPC符号構造の中では、各々の検査ノードに状態Sが関連する。状態は、現在の復号化反復にて着信メッセージの信頼度(メッセージマグニチュード)情報を含み、これは発信メッセージを生成するために使われる。メッセージm,...,mが導入されたと仮定し、Sは状態を表すとする。次に、状態更新関数Gを仮定し、ある1つの検査ノードに対応する受信可変至検査ノードメッセージを処理した後に帰結する所与の検査ノードの更新済み状態は、以下のとおりに表すことができる。
k+1=G(mk+1,Sk
本発明の種々の実施形態によると、状態更新操作は、圧縮形式をとる、検査ノードに対応する複数のメッセージのマグニチュード部分に相当する状態に対して実行される。よって、状態更新操作は着信メッセージを圧縮する。
メッセージ情報を圧縮形式で格納するためのMINSUMアルゴリズムを使用する実施の場合、格納されるメッセージ状態は、例えば(m,m,A,s)の形をとってよい。ここで、mはこれまでのところ状態に対応する検査ノードによって認められる最小着信信頼度(メッセージマグニチュード)であり、mはこれまでのところ認められる第2の最も小さい信頼度であり、Aは信頼度mの着信メッセージを運んだエッジに索引を付すことにより最小値mを供給したメッセージエッジがどれなのかを指示し、sは状態情報が対応する検査ノードに対応する着信メッセージの標識のXORである。
検査ノードに対応する状態情報の更新を関数Gを用いて実行することにより、そして個々の検査ノードに対応する状態を、メッセージの宛先にあたる検査ノードがどれかに応じ着信メッセージにより更新するため、格納でき回収できる復号器実施を提供することにより、ある1つの検査ノードプロセッサに着信するメッセージの順序は本質的に恣意的なものにできる。よって本発明によると、可変至検査ノードメッセージは可変ノード順序で検査ノードプロセッサモジュールに到着でき、メッセージはそれらが受信される順序で処理される。これは、両側(それぞれ可変ノードプロセッサと検査ノードプロセッサとして実施される可変ノードと検査ノード)が、可変ノード順序で更新される、本発明に従い実施される、図4及び5に図示された復号器400及び500等のLDPC復号器を可能にする。さらに、いくつかの実施形態においては、可変ノードと検査ノードの両方の処理素子が並行に、例えば同時に作動でき、事実作動する。
本発明のかかる復号器実施は、可変ノード処理が可変ノードメッセージ順序で実行され、検査ノード処理が検査ノードメッセージ順序で実行され、格納のためメモリが使用される、復号器実施に比べて、メモリ要求の大幅節約を可能にし、さらに検査ノードプロセッサと可変ノードプロセッサとの間で引き渡されるメッセージの再順序付けを可能にする。
本発明のLDPC復号器設計の基礎的な原理と利益のいくつかを説明してきたが、次に本発明の1つ又は複数の特徴を実施する種々の例示的なモジュールとLDPC復号器とを説明する。
図3は、本発明に従い実施された、制約ノード処理モジュールとも呼ばれる、検査ノード処理モジュール300を図解する。モジュール300は、可変至検査ノード(V2C)メッセージを入力302を介し、制御情報を制御信号入力324を介し、受信し、検査ノード至可変ノード(C2V)メッセージを生成し、同メッセージは出力322を介して出力される。検査ノード処理モジュール300は、検査ノード至可変ノードメッセージを生成するために使用できるメッセージ情報を圧縮形式で格納する。
検査ノード処理モジュール300は、検査ノード状態メモリモジュール310と、制御モジュール309と、検査ノードプロセッサ素子308と、メッセージ標識メモリ312と、検査ノード状態バッファメモリ314と、検査ノード抽出器316とを含み、これらは図3に示すようにともに結合される。図解された実施形態において、各々の受信V2Cメッセージの標識値はマグニチュード値から分離される。マグニチュードメッセージ値は入力304を介して検査ノードプロセッサ308へ供給され、他方各々の受信メッセージに対応する標識値は検査ノードプロセッサ素子308へ供給され、且つメッセージ標識メモリ312に格納され、同メッセージ標識メモリは、後ほど格納された状態321、323から発信C2Vメッセージを生成する際に使用される標識ビットを格納する。
検査ノード状態メモリ310は、復号化を制御するために使用される符号構造の各検査ノードにつき、単一の状態メモリ素子321、323を含み、同状態メモリ素子は、これに対応する特定の検査ノードの状態を格納するために使用される。各々の検査ノード状態メモリ321、323は、復号化を制御するために使用されるLDPCグラフ構造に対応する1つの検査ノードに対応する状態情報を格納する。
図3の例で、状態は、上で論述したmin sumアルゴリズムに対応する圧縮表現で格納される。項目は、復号化を制御するために使われる1つの完全なLDPCグラフ表現に含まれるエッジメッセージに対応する処理反復のたびに、項目に対応する検査ノード処理の始めにリセットされる。グラフの反復から反復にいたる検査ノードの処理は、最初の反復が完了する前に、例えばグラフの中にある1つの検査ノードに対応する1組の可変ノード一式が完了した後に、行われてよい。かかる場合に、全組の検査ノード状態情報321、323のリセットは同時に起こらない。むしろ、ある1つの検査ノードに対応する検査ノード状態は、これが完全に更新され、C2Vメッセージの生成に使用するため検査ノード状態バッファメモリへ供給された後にリセットされる。
各々の状態項目321、323は、復号化を制御するために用いるグラフ構造の中の1検査ノードに対応する。各々の状態項目321、323は、S、すなわち項目に対応する検査ノードに宛てられた各受信V2Cメッセージに対応する標識ビットのXORにあたる1ビットの値と、同検査ノードに対応する最小受信メッセージマグニチュードを示す最小値mと、同検査ノードに対応する第2の最小メッセージマグニチュード値mと、最も低い最小値mが受信されたところのメッセージエッジを示す索引Iとを含む。
制御信号入力324は制御信号を受信し、同制御信号は、復号化を制御するために用いる符号構造の関数として、例えば、グラフのエッジ数の、よって可変及び検査ノード処理素子間で引き渡されるメッセージ数の、関数として、検査ノード処理モジュールの動作を制御するために使用される。制御信号324は、ある特定の時間に入力302にて受信されるエッジしたがってV2Cメッセージがどれなのかを、指示する情報を含む。同信号は、V2C入力メッセージタイミングと所望のC2V出力メッセージタイミングとの間の関係が固定されているか又は既知であるケースで(通常のケース)、C2Vメッセージ生成を駆動するために役立てることができる。制御信号324は、制御モジュール309、メッセージ標識メモリ312、そして検査ノード読み取りプロセッサ(抽出器)316へ供給される。制御モジュール309は受信した制御信号をもとに、受信したV2Cメッセージに対応する検査ノードがどれなのかを判断する。制御モジュールは、更新のため検査ノード状態メモリ310から読み取るべき検査ノード状態情報321、323の組がどれなのかを、受信した制御情報に基づき、判断する。よって制御モジュールは、受信メッセージに対応する検査ノードを、エッジ情報に基づき、判断する。下で論述するとおり、検査ノードプロセッサが受信したメッセージ情報を用いて回収された状態情報を更新した後、更新された状態は、更新される状態の回収元にあたる検査ノード状態項目321、323へ書き込まれる。このプロセスは、特定の処理反復のときに検査ノードに宛てられた最後のV2Cメッセージを使ってある特定の検査ノードの検査ノード状態が完全に更新されたことを、制御モジュール309が検査ノードプロセッサ素子308に合図するまで続く。検査ノードの状態が完全に更新されたところで、検査ノードプロセッサは、検査ノード状態へデフォルト値を書き込むことによって検査ノード状態の値をリセットし、完全に更新された検査ノード状態を、メッセージ抽出で使用するため、検査ノード状態バッファ314へ出力する。検査ノード状態バッファメモリ314は、項目321、323と同じ内容を持ち、ただし検査ノードの1組の完全に更新された状態に対応する値を持つ、1つ又は複数の検査ノードのための状態項目を含む。検査ノード状態バッファメモリ314は、入力324から得る制御信号のベースにて完全に更新された検査ノード情報を格納すべき項目が何かを知る。
検査ノード状態メモリ310は、格納されるべき状態情報を受信する更新済み検査ノード状態メッセージ入力327と、アクセスするべき検査ノード状態情報321、323の組がどれなのかを指示し、且つ指示された組の検査ノード状態情報から更新済み状態情報を格納するべきか否か、又は読み取るべきか否かを指示する、制御信号を受信する制御入力327とを含む。検査ノード状態メモリから読み取られた検査ノード状態情報321又は323は、出力329を介して出力され、検査ノードプロセッサ素子308の状態入力へ供給され、ここで状態更新操作のために使用される。
メモリから回収された1組の状態情報に対し、受信V2Cメッセージに含まれる情報の
関数として、検査ノードプロセッサ308によって行われる状態更新操作は以下のとおり
である。受信V2Cメッセージのマグニチュードmは、受信メッセージの宛先にあたる
検査ノードに対応する、回収された状態情報の中の最小マグニチュードm 比較される。
もしもmがmに満たないなら、mをmに等しく設定することにより更新済みmを作り、mはmに等しく設定され、これによりmは更新済み最小値となり、以前の最小値は検査ノードにとって現在の第2の最小値となる。加えて、最小mに対応するメッセージエッジを指摘する索引Iは、処理されているメッセージが、例えば更新済みの最小マグニチュード値を提供するメッセージが、受信されたところのメッセージエッジを指摘する。
もしもmがmに満たなく、ただしmより大きいなら、mはmに等しく設定され、m又はIは変更しない。
もしもm に等しいか又はこれより大きいなら、メモリから読み取られたm
、及びIの値は変更されず、更新済みの状態は、メモリから読み取られたこれらの要
素の値を含む。
受信メッセージ値と格納最小値との相対的マグニチュードにかかわりなく、格納検査ノード状態項目から読み取られる標識ビットにより受信メッセージの標識ビットのXORを実行することにより、検査ノードの累積標識ビットSは受信メッセージごとに更新される。XOR操作の結果は検査ノードにとって更新済み項目の標識Sビットとなり、これは、完全には更新されていない検査ノードの場合にメモリへ書き込まれ、完全に更新された検査ノード項目の場合には検査ノード状態メモリバッファ314へ供給される。上で述べたとおり、完全に更新された検査ノード項目の場合には、検査ノード状態の読み取り元にあたる検査ノードの項目321、323へデフォルト値が書き込まれ、これにより、別のグラフ処理反復のため情報をリセットする。最小mと第2の最小mとのデフォルト値は普通、これらの要素が取り得る最大値となる。
上で説明した検査ノード処理及び状態更新技法を踏まえ、検査ノードプロセッサ素子308が可変至検査ノードメッセージを恣意的な順序で、例えば検査ノードエッジ順序とは対照的に可変ノードエッジ順序で、処理できることは明白であろう。これは、可変ノードプロセッサが可変ノードエッジ順序で平素作動するとの前提のもと、検査ノードプロセッサ素子308がV2Cメッセージを、可変ノードプロセッサ操作の結果としてそれらが必然的に発生する順序で、処理することを可能にする。
検査ノードの完全に更新された状態情報は、C2V出力メッセージを生成するため必要とされる情報の圧縮形式表現をとるので、出力322を介し出力される実際のC2Vメッセージを構築するため、さらなる処理を使用する。検査ノード読み取りプロセッサ、例えば抽出器、316は、検査ノード状態メモリ314に格納された完全に更新された状態と、メモリ312に格納された格納標識値とから(各受信V2Cメッセージにつき1つの標識値313、315が格納される)、完全なC2Vメッセージを生成する。
よって、C2Vメッセージを読み取るには、もしも圧縮格納形式を使用しなかったなら必要とされない展開を実行するため、メッセージが圧縮形式で格納されない実施に比べて余分な処理を要する。格納された着信メッセージ標識値313、315は標識メモリから直に読み取られる。発信C2Vメッセージに関連するメッセージエッジに対応する発信標識を得るため、メモリ313から読み取られる各標識値は、ある1つの検査ノードに対応する完全に更新された和SによりXORされる。よって、ある1つのメッセージエッジの発信標識は、そのメッセージエッジで受信されるメッセージ標識と、LDPCグラフの中でそのメッセージエッジが取り付けられている検査ノードに対応する1組のメッセージ一式のXORに対応する累積標識値Sとから、生成される。信頼度は、例えばメッセージマグニチュード部分は、検査ノードのため格納された状態に含まれる最小、第2の最小、及びメッセージ索引値から抽出される。もしも読み取られるエッジの索引がAに一致するなら信頼度mが出力され、さもなくば信頼度mが出力される。メッセージエッジ識別子として働く索引Aを表現するには数多くの可能性がある。簡素なエッジ番号は索引Aを表現する1つの方法であるが、他の番号付け方式及び/又はエッジ索引付け方法もまた使用してよい。
メッセージ抽出器316によって生成されるメッセージマグニチュードはマグニチュード出力318にて出力され、他方発信メッセージ標識は出力320にて出力され、これらが組み合わされることにより、出力322を介し出力される完全なメッセージを形成する。
図3に関し本発明の発明的検査ノード処理モジュール300を説明してきたが、今度は、本発明による例示的LDPC復号器手段におけるモジュールの使用を、図4を参照しながら、説明する。
図4は、図3に示す検査ノード処理モジュール300を使用し実施された例示的LDPC復号器400を示す。復号器400は、可変ノード処理と検査ノード処理の両方を可変ノードエッジ順序で実行する。復号器400は、検査ノード処理モジュール300に加え、復号器制御モジュール402と、可変ノード処理素子404と、ソフト入力バッファ406と、ソフト/ハード出力バッファ412と、制約検査モジュール408と、反復制御論理回路410とを含む。
復号化されるべき入力値は、可変ノード処理素子404へロードされる前に、ソフト入力バッファ406へ供給される。復号器制御モジュール402は、復号化操作の制御に使用されるLDPCグラフ構造に対応する格納された復号化制御情報に従い、復号器制御信号を生成することを担当する。復号器制御モジュールは、可変ノード処理素子操作はもとより、図3に関し上で論述した検査ノード処理モジュール操作を制御するために用いる制御信号を生成する。復号器制御モジュールの制御のもと、可変ノード処理素子には、入力データの処理すべき部分が、例えばマグニチュード情報と標識ビットとを含む受信メッセージ値が、順次ロードされる。最初の反復のときには、可変ノードPE404によって処理されるべき既存制約メッセージはなく、V2Cメッセージは入力データを処理することによって生成される。V2Cメッセージは、可変ノードメッセージエッジ順序で、入力データから生成され、出力される。マグニチュードと標識値とを含む生成されたV2Cメッセージは、検査ノード処理モジュール300のV2C入力302へ供給される。メッセージは制約検査モジュール408にも供給され、他方ソフト/ハード出力ピンポンバッファは、生成される各V2Cメッセージに関連する標識ビットを受け取る。制約検査モジュール408は、復号器グラフの1回の反復に対応する受信メッセージ標識値が、所定の復号化制約を、例えばパリティ検査を、満たすか否かを判断するため、検査を行う。もしもメッセージ引き渡し反復の終わりに1組の全V2C及びC2Vメッセージが生成されていたなら、制約検査モジュール408はパリティ検査が満たされるか否かを判断する。モジュール408は、現在のメッセージ引き渡し復号化反復が首尾よい復号化に帰結したことを検知する場合に復号化完了信号を、あるいは復号化が成功と判断されない場合には反復完了信号を、生成する。制約検査モジュール408によって生成された信号は反復制御論理410へ供給される。毎回の反復の終わりには、グラフのエッジに対応する格納された標識値を、制約検査が満たされなかったと仮定し軟判定として、又は制約検査が満たされた場合には硬判定として、出力バッファ412から出力できる。
反復制御論理410は、パリティ検査信号の満足に帰結しなかったメッセージ引き渡し反復の回数が予め選択された回数を過ぎた後に、タイムアウト信号として不首尾の復号化を合図し、あるいはタイムアウトに先駆けパリティ検査が満たされる場合には首尾よい復号化を合図する。よって制御論理410は、予め選択された復号化反復回数以内に復号化が首尾よく完了しない場合に復号化Iを終結させるタイムアウト関数を含む。
LDPC復号器400は、可変ノード処理操作と検査ノード処理操作の両方を可変ノードエッジ順序で実行し、これにより、検査ノード処理が検査ノードエッジ順序で実行され、可変ノード処理が可変ノードエッジ順序で実行される他のシステムに比べて、可変ノード及び検査ノード処理素子308、404間でのメッセージ格納の必要性を抑えるか、又は解消する。さらに、下で論述するとおり、LDPCグラフ構造の慎重な選択により、二重の制約ノード状態メモリ項目321、323一式を提供する必要なく、LDPCグラフ構造の各反復の処理に重複を設けることができる。
復号器400を使用する復号化反復は以下のとおりに進行してよい。可変ノードは一度に1つずつ更新される。検査ノード出力状態メモリと標識メモリとからメッセージが読み取られ、発信検査ノードメッセージが生成される。これらのメッセージは可変ノードにて合計され、その後、標準可変ノード処理を経て合計から差し引かれる。発信メッセージが生成されるにつれ、それらは検査ノードプロセッサへ直に送信され、同検査ノードプロセッサはまた、対応する部分状態をメモリから回収する。状態は更新され、部分状態メモリへ戻される。V2Cメッセージが現在の反復でその制約にとって最後のV2Cメッセージなら、状態は出力状態メモリへ書き込まれてよく、部分状態メモリはリセットされる。
本発明の検査ノード処理モジュール300と図4に示す一般的LDPC復号器システムとは、並行な配置で働く複数の制約ノード及び可変ノード処理素子の使用を支援するべく、本発明に従い容易く適合できる。図5の復号器500は、N個の制約ノード、制約状態抽出回路、及び可変ノード処理素子を並行に使用しながら作動する。図5の制約検査モジュール308’と、反復制御論理310’と、バッファ312’及び306’とは、図4に関し説明した同様に番号が付された素子と同じか又は類似する方式で作動する。検査ノード処理モジュール300’の他の素子もまた、図4の「’」を含まない同様の番号が付された素子について説明したのと同じか又は類似する方式で働く。ただし図5の実施形態において、素子308は、並行に配置されたN個の制約プロセッサ308を含み、他方制約ノード状態メモリ324もまたN倍の組の検査ノード状態とともに働くよう設計され、他方制約状態抽出モジュール316’はN個のメッセージ抽出回路を含む。状態項目の数は、並行に実施されるノードがいくつあるかではなく、グラフの中の検査ノード数によって決まるため、メモリ310’が、一度にN組の状態情報アクセスを支援する一方で、図4の実施形態に比べて、追加の状態項目を含む必要がないことに留意されたい。
図5の実施形態は、小さいグラフ記述の使用と、復号化を制御することを意図してより大きいグラフを生成するため小さいグラフをいかに修正すべきかについての制御情報とに基づき、N個のワイド復号化操作を支援するべく設計された復号器制御モジュール502を含む。小さいグラフへの修正は、N個のメッセージの組が並行に引き渡される、可変及び検査ノード処理素子間で引き渡されるメッセージの再順序付けとして、例えばローテーションとして、実施してよい。特に図5の実施形態においては、メッセージが復号器500の様々な素子間で引き渡されるときにメッセージの再順序付けを制御するためスイッチ530、526、528が使用される。再順序付けは、制御論理518に格納されるグラフ記述情報と、制御論理518によって駆動される列カウンタ520の関数として順列マップ522によって生成されるローテーション信号との関数である。検査ノード処理モジュール300’へ供給されるメッセージの再順序付けを制御するために用いるローテーション制御信号は、可変プレッシング素子504の入力へ供給されるメッセージの再順序付けを制御するために用いるローテーション信号のいくつかを、遅延ライン524の使用により、遅延させることによって生成される。
検査ノードプロセッサモジュール300と本発明に従い実施された種々のLDPC復号器400及び500について説明してきたが、今度は、グラフ設計、LDPC符号構造、そして本発明を実施する復号器において特定のグラフ構造を使用する復号化実施に関し、様々な特徴を説明する。
図5に描かれたような復号器を高速度応用のために実施する場合、ときに投影グラフと呼ばれる、格納されたグラフ記述情報によって記述される小さいグラフは通常、非常に小さくなる、すなわちこれは少数の可変ノードを有することになる。図示されたとおり、アーキテクチャは1クロック周期当たり1回の投影エッジ更新を実行し、これは各クロック周期中にN個のメッセージを処理することに相当する。完全なグラフ反復の復号化を、次が始まる前に、終了しなければならない場合には、復号化システムに遅延が導入される。これは、長いパイプライン遅延の場合に、例えば大きいグラフの場合に、非能率を引き起こすことがある。パイプライン遅延は、各エッジが処理を開始した後、エッジの各々に対し復号化操作を完了するため必要とされる、追加のクロック周期である。パイプライン遅延が投影グラフのサイズに対して大きい場合、この追加の遅延は復号器の速度を著しく落とすことがある。
ただし遅延問題は、これが復号器400で発生しようが、あるいは並列復号器500で発生しようが、賢明なグラフ設計によって改善できる。
1組の投影可変ノードVを複数の組に、例えば少なくともSV1とSV2とに、分割でき、ここでSV1はSV2に先行し、さらに1組の投影検査ノードCを少なくとも2つの組SC1及びSC2に分割でき、SC1の中の検査ノードはグラフのエッジによってSV1の中の可変ノードにのみ接続すると仮定する。そこで、もしも処理が可変ノード順序で実行されるなら、可変ノードV1に対応するメッセージが最初に処理され、その後に可変ノードV2に対応するメッセージが続き、その後に可変ノードV3からのメッセージが続く。このような場合、第1の組の検査ノードSC1に対応するメッセージの処理は、SV1の最後の可変ノードに対応する最後のメッセージが処理されるまでに、あるいはもしもSC1の最後の検査ノードがSV2の最後の可変ノードの最後のエッジへ接続しないならそれ以前に、完了することになる。SC1の組の検査ノードに対応する完全に完了した状態は、V2Cメッセージの生成に使用するため検査ノード状態メモリに格納でき、その一方で、次のグラフ反復として可変ノードV1からのV2Cメッセージに対する処理を開始できる。よって、制約ノード処理モジュール300が未完了のグラフ処理反復に対応するV2Cメッセージをまだ処理している間に、次のグラフ処理反復を開始できる。
この理由は、反復n+1にて可変ノードSV1の組からのメッセージの処理が始まるときに、C1の制約はすでに反復nにて完全に更新されているからである。この種の分割を設けるようグラフを制約すると、後続の反復の時間を部分的に重複させることが可能となり、パイプライン遅延による不利を効果的に抑える及び/又は解消する、ことができる。
図6には、かかる性質を備えるLDPC符号と対応するグラフ構造600とが示されている。図6において、グラフはC〜Cと識別される8個の検査ノード602と、V〜V16と識別される16個の可変ノード604とを含む。可変ノード組SV1に含まれる可変ノードV〜V12からのメッセージが制約ノードプロセッサモジュール300によって処理されるときまでに、最初の4個の制約ノードC〜Cに対応する状態が完全に更新済みとなることに留意されたい。この完全に更新された状態は制約ノードバッファメモリ314へ転送でき、制約ノードC〜Cに対応する制約ノード項目は次回のグラフ処理反復で使用するため解放される。よって、SC2の組の制約ノード、すなわち制約ノードC5、C6、C7、及びC8に関し1回の反復で処理が続行するとき、SC1の組のノードに対応するその反復のC2Vメッセージは生成され、それと同時に、次回の反復の制約ノード処理を、現在の反復に関連する進行中の処理と重複しながら、開始できる。
本発明のLDPC復号器方法及び装置は、検査ノード数がしばしばグラフの中のエッジ数よりかなり少なくなる高速度符号にとって、特に相応しい。かかる場合に、本発明に従って使用される状態メモリは、制約ノード処理の目的でメッセージ一式が格納される場合に要求されるエッジメモリより、かなり小さくなる傾向にある。
図7は、復号器処理を、例えば最初のグラフ処理反復中に可変ノードへロードされるメッセージ値0、−1、5、及び4を有する1組の例示的入力データを復号するため、図4の復号器400が使われるときに発生する処理を、説明するために用いる比較的簡素なグラフを示す。
図7のグラフ700は、可変ノード順序に0から8の番号が付された9本のエッジによってともに結合された、全部で3個の検査ノード702と4個の可変ノード706とを含む。エッジは可変ノードにおける順序とは異なる順序で検査ノードにて出現するため、もしも検査ノード側からエッジに番号を付したなら、エッジが異なる番号順番を持つことになることに留意されたい。メッセージは、図示されたエッジに沿って可変ノード706と検査ノード702との間を行き来する。検査ノード702は第1〜第3の検査ノード710、712、714を含み、他方可変ノード706は第1〜第4の可変ノード720、722、724、726を含む。
図800には、復号器400と図7に示す符号構造とを使用した結果得られる様々な値が示されている。図800は、受信メッセージ(0、−1、5、及び4)を復号器400へロードするため、そして最初にメッセージを処理するため使用される初回の反復の後に続く、2回の完全復号器処理反復の結果を示す。第2の入力値の手前には、メッセージに関連する、負の標識ビットを、すなわち1のビットを示すため、負符号が使用され、他方負符号なしは正の標識ビット、すなわち0のビットを示す。よって、第2のメッセージ−1は負の標識ビットを有し、他方第1、第3、及び第4の入力メッセージは正の標識ビットを有する。最初の処理反復の終わりに、検査ノードC1、C2、及びC3に対応する状態メモリ項目は、図8の上部、1組の状態メモリ項目値802のところに示された値を含む。
反復はV2Cメッセージの抽出から始まる。最初の反復で、抽出されたC2Vメッセージは0に設定される。これらのメッセージは現在の反復の一部として可変ノードにて合計され、V2Cが生成される。これらのメッセージは検査ノードプロセッサによって受信され、同検査ノードプロセッサは現在の反復に関連する検査ノード状態を更新する。全ての検査ノード状態が更新されたとき、反復は完了する。
チャートの中、1組の状態メモリ項目値802の下の各行は、個別のメッセージエッジに、例えばC2Vメッセージの抽出に、関連する処理と、指定エッジに沿って伝送されるべきV2Cメッセージの生成と、所与のエッジへ関連する検査ノード状態の更新とに対応する。毎回のグラフ反復は、図7のグラフの1エッジ当たり1つのC2Vメッセージの生成及び処理と、各エッジにつき1つのV2Cメッセージの生成及び処理とをともなう。
一般的に、列810、812、816、818、及び820は、前回の復号器反復中に発生した処理の結果を使用するC2Vメッセージ抽出を示す。列822は、可変ノードへ至る全着信メッセージの和にあたる可変ノード和と、可変ノードへ関連する受信値とを示す。
列824は、この反復にて対応するエッジに沿って生成されるV2Cメッセージを示す。これは、可変ノード和から着信C2Vメッセージを引いたものに等しい。これらのC2Vメッセージは制約ノードプロセッサによって受信され、列826、828、830に示すとおりに状態情報を更新するために使われる。列826、828、830は、列824に示す各V2Cメッセージの受信に応じ、検査ノードプロセッサ状態が現在の処理反復中にいかに更新されるかを示す。
情報810は、C2Vメッセージを生成するため制約ノードバッファ状態メモリ314から読み取られる前回のグラフ処理反復中に生成された検査ノード状態を示す。前回の処理反復で生成された各検査ノードに対応するこの完全に更新された状態は、V2Cメッセージを生成するため現在のグラフ反復で可変ノードプロセッサ304によって処理されるC2Vメッセージを生成するために使用される。列812は、前回の反復からのエッジ沿いV2Cメッセージに対応する標識ビットを示し、これは現在の処理反復にてC2Vメッセージを構築するため標識ビットメモリ312から回収され、同C2Vメッセージは可変ノードプロセッサへ入力され、同可変ノードプロセッサは現在の処理反復のためV2Cメッセージを生成する。列814は、受信済みV2Cメッセージから格納された標識ビット812を、前回の反復で生成され、C2Vメッセージに関連するメッセージエッジに対応する検査ノード(C1、C2、又はC3)に対応する状態から得られる格納された累積標識ビットSとともにXORすることによって抽出される制約状態によって生成される、更新された標識ビットを示す。列816は、前回の処理反復中に第1の最小値mか又は第2の最小値mが出力されるかを判断するため、制約状態抽出器によって実行される検査の結果を示す。この検査では、生成されようとするC2Vメッセージのエッジ索引を、格納された第1の最小値に対応するエッジ索引Iに比較する。ここで、「Y」は、エッジ索引が前回の反復にて最小マグニチュードを伝送したエッジに一致することを意味する「はい」を表し、「N」は、エッジ索引が前回の反復にて最小マグニチュードを伝送したエッジに一致しないことを意味する「いいえ」を表す。列812は、発信C2Vメッセージのマグニチュードとして使用されるべきm又はmの選択の結果を示す。列820は、現在の反復中に可変ノードプロセッサ304によって使用される、指定エッジ上で伝送される実際のC2Vメッセージを示す。可変ノードプロセッサ304は、処理反復中に受信したC2Vメッセージの和を生成する。列822に示す結果的に得られるVNode和は、例えば現在の反復中に制約ノード処理のため、メッセージエッジに沿って制約プロセッサモジュール300へ供給されるV2Cメッセージを生成するために使用される。
制約ノード処理モジュールの観点から、列810、812、814、816、818、820、及び822に示す情報は、前回のグラフ処理反復における計算結果に由来する操作に相当する。上で論述したとおり、慎重なグラフ設計を前提とし、1回のグラフ処理反復でこれらの操作が発生するときと、次の制約ノード処理反復でメッセージ状態の更新が発生するときには、ある程度の重複があってよい。
列824は、図7に示すグラフ構造を使用し例示的入力を処理することに対応する第2及び第3の制約ノード処理モジュール反復中に受信され処理される、V2Cメッセージを示す。毎回のグラフ反復では、エッジE0〜E8上で引き渡されるメッセージに対応する9個のV2Cメッセージを処理する。制約処理モジュール300によるメッセージの処理は可変ノードエッジ順序で発生する。処理が始まるとき、検査ノードに対応する制約メモリはあらかじめ再初期化される。処理反復に重複がないと仮定するなら、検査ノードC1、C2、及びC3の各々の状態は、エッジE0に対応する第1のV2Cメッセージの受信に先駆けあらかじめ再初期化される。列826、828、830の各々は、それぞれ検査ノードC1、C2、C3の内1つに対応する、受信V2Cメッセージによって更新された後の、格納された状態を示し、各行は個別のV2Cメッセージの処理に対応する。ある特定のメッセージに、例えば行に対応するエッジ上で伝達されるメッセージに応じて、更新される状態内容は、太字で示されている。列826、828、830では、初期値に設定された値を示すためXが使われている。これらの値は生成されるC2V出力メッセージで使用されないため、「無関係」値である。
第2の反復の終わりに、完全に更新されたメッセージ状態C1、C2、C3がC1(m=0,m=4,I=2,S=0)、C2(m=1,m=3,I=1,S=1)、そしてC3(m=1,m=3,I=3,S=1)の値へ更新済みであることに留意されたい。第3の反復の終わりに、完全に更新されたメッセージ状態C1、C2、C3は、C1(m=1,m=3,I=2,S=0)、C2(m=0,m=3,I=1,S=0)、そしてC3(m=3,m=3,I=3,S=0)の値へ更新済みである。
状態は、ある1つの検査ノードに対応するメッセージの処理が完了した後に消去されるものとして示されていないが、グラフ処理反復間に重複がある実施形態においては、完全に更新された制約ノードに対応する状態のリセットが制約ノード状態バッファメモリ324に格納され、状態情報リセットは制約状態メモリに格納されるであろう。制約状態更新順序について、そして1回の完全グラフ反復に関連する処理中に1組の更新状態一式がいかに生成されるかについて、専ら理解を促すため、図8に示す例にはかかるリセットが示されていない。
本発明の復号器と復号方法とともに使用できる種々の符号構造を前提とし、処理反復間に発生しうる重複の量に関しては多大な柔軟性が可能である。異なる復号器反復に対応する検査ノード処理の実行に関し復号化遅延重複を減らすため、グラフ処理反復にて10%、20%、30%、40%、又はそれ以上の重複を可能にする符号構造を選択できる。
次に、種々の例示的復号化方法実施と例示的変形とを説明する。
低密度パリティ検査復号化操作を実行するある特定の例示的方法は、複数の検査ノードによって受信されるメッセージに対応するメッセージ状態情報をメモリに格納することと、前記複数の検査ノードの内1つへ宛てられた検査ノード入力メッセージを受信することと、前記複数の組の状態情報の内、状態更新操作に使用すべき1組を、前記受信メッセージの宛先にあたる検査ノードに基づき選択することと、選択された組のメッセージ状態情報を前記メモリから回収することと、選択された組のメッセージ状態情報を前記受信メッセージの関数として更新することと、の各ステップとを含む。方法はさらに、前記更新された組のメッセージ状態情報を前記メッセージ状態情報の回収元にあたるメモリ位置へ書き込むことと、前記受信する、選択する、回収する、及び更新するステップを、受信する複数のメッセージの各々につき、前記受信メッセージに対応するエッジがLDPC符号を表すグラフの中で可変処理ノードへ取り付けられる順序に一致する第1の順番で、順次に繰り返すことと、の各ステップを含む。いくつかの実施において、前記受信メッセージに対応するエッジが、前記LDPC符号を表すグラフの中で可変処理ノードへ取り付けられる順序に一致する順番は、前記受信メッセージに対応するエッジが前記LDPC符号を表すグラフの中で制約処理ノードへ取り付けられる第2の順番と異なる。例示的方法はさらに、1組の可変至検査ノードメッセージ一式が受信済みである検査ノードに対応する少なくとも1組の状態情報に対し検査ノード至可変ノードメッセージ抽出操作を実行することを含み、ここで抽出操作は複数の検査ノード至可変ノードメッセージを生成するため複数回実行され、前記複数の可変ノードの内の1個へ宛てられる検査ノード至可変ノードメッセージは、前記複数の可変ノードの内の前記1個へ宛てられる一連の検査ノード至可変ノードメッセージを作るため連続的に生成される。
例示的方法において、完全に更新された状態は、C2Vメッセージ抽出プロセスにて使用するため完全に更新された状態がバッファメモリに格納される前に、検査ノードごとに生成される。完全に更新された状態とは、その状態に対応する検査ノードに対応する1組のV2Cメッセージ一式によって更新済みの状態である。1つの完全なグラフに対応する処理のときには複数の組の状態が更新される。1つのグラフに対応する複数の復号化反復は通常、復号化を制御するために用いるLDPC符号を表すために用いるグラフにおいて1組のメッセージの処理に対応する反復のたびに実行される。異なるグラフ処理反復に対応する検査ノード状態は、以降の反復のため検査ノード状態が前の反復のときにすでに完全に更新されたと仮定し、同じ期間中に更新できる。
よっていくつかの実施において、方法は、前記第1の検査ノードに対応する別の組の状態を、前記第1の復号器処理反復中に、前記少なくとも1つの他の検査ノードの、例えばグラフの中の最後の検査ノードの、前記状態更新を完全に完了する前に、可変至検査ノードメッセージ処理の第2の反復の一部として更新することを含む。
復号化方法の一部として、グラフ処理反復の重複を促進するため、いくつかの実施形態において方法はさらに、前記第1の検査ノードに対応する前記完全に更新された状態をバッファすることと、前記バッファされた完全に更新された状態から検査ノード至可変ノードメッセージを抽出することとを含む。前記バッファされた完全に更新された状態から検査ノード至可変ノードメッセージを抽出するステップは、いくつかの実施において、前記完全に更新された状態と、前記完全に更新された状態を生成するため使用される複数の可変ノード至検査ノードメッセージに対応する格納された標識情報とから、複数の発信メッセージを生成することを含む。
いくつかの例示的復号化方法は、第1の複数の検査ノードのための状態更新を、第2の複数の検査ノードに対応する状態更新を完了する前に完全に完了することを含み、ある1つの検査ノードのための状態更新は、その検査ノードの状態が前記検査ノードに対応する複数のメッセージエッジの各々につき一度更新されたときに完全に完了する。いくつかの実施形態において、第1及び第2の複数の検査ノードは、復号化を制御するために用いる実施LDPC符号構造を表すLDPCグラフの中で総検査ノード数の少なくとも20%を各々含む。
状態更新操作は、第1の組の検査ノードに対応する状態の更新の一部として行われてよい。いくつかの実施において、第1の組の検査ノードの更新は、第1の組の可変至検査ノードメッセージを使用し第1の期間中に実行され、方法はさらに、第2の組の検査ノードに対応する状態情報を第2の期間中に更新することを含み、前記第2の組の検査ノードは前記第1の組の検査ノードに含まれない検査ノードだけを含み、前記第2の期間は前記第1の期間の後に続く。かかる実施において、検査ノード情報は異なるときに抽出されてよい。一実施において、方法は、前記第2の期間中に前記第1の組の検査ノードに対応する更新された状態情報から、検査ノード至可変ノードメッセージを抽出することを含む。このタイミング特徴を実施するいくつかの実施において、前記第1及び第2の期間は長さが等しい。前記第1及び第2の期間は、第3の組の検査ノードに対応する状態が更新される第3の期間によって隔てられてよく、且つしばしば隔てられる。これは、多数のノードを含む大きいグラフの場合にしばしば当てはまる。いくつかの実施において、第1及び第2の組の検査ノードは、復号化を制御するために用いるLDPC符号に対応するグラフの中で検査ノードの少なくとも10%を各々含む。他の実施において、第1及び第2の組の検査ノードは、復号化を制御するために用いるLDPC符号に対応するグラフの中で検査ノードの少なくとも20%を各々含む。いくつかの実施において、第1の期間は、N個の可変至検査ノードメッセージを処理するのに要する時間の40%に満たなく、ここでNは、復号化を制御するために用いるLDPC符号に対応するグラフにおける総メッセージエッジ数に等しく、一方他の実施形態において、第1の期間は、N個の可変至検査ノードメッセージを処理するのに要する時間の20%に満たなく、ここでNは、復号化を制御するために用いるLDPC符号に対応するグラフにおける総メッセージエッジ数に等しい。
上述の方法及び装置については、本発明の範囲内にとどまりつつ数多くの変化が可能である。例えばメッセージについて圧縮された状態を使用するが、C2Vメッセージの標識情報は、本発明の範囲内になおとどまりつつ、上述したのとは若干異なる方式で生成できる。一代替実施では、1つのメモリが状態メモリとして使用され、他のメモリは前回の反復からの状態一式を収容し、反復の終わりにはバッファの役割が逆転する、ピンポン構造を使用する。かかる実施形態においては、標識ビットが以下のとおりに扱われるであろう。V2Cメッセージの標識が格納される。信頼度情報に加え、着信標識ビットのXORもまた状態の一部として保持される。C2Vメッセージが抽出されるときには、格納されたV2C標識が状態の中の累積X−ORとともにXORされることによりC2Vメッセージ標識ビットを得る。ひとたび読み取られたV2C標識ビットはもはや不要であるため、その後、可変ノードプロセッサによって直ちに生成されるV2C標識ビットによってこれを上書きしてよいことに留意されたい。
上述の方法は、メモリと、CPUと、ともに結合された1つ又は複数の入力及び/又は出力装置とを含むコンピュータシステムで実施されてよい。かかる実施形態において、メモリは本発明に従い実施されるルーチンを含む。実行されたルーチンにより、CPUは、本発明に従いデータを受信し、処理し、例えば復号化し、出力する。代わりに、本発明のステップは、専用のハードウェア、例えば回路、及び/又はハードウェア及びソフトウェアの組み合わせを用いて実施されてよい。
10個の可変ノードと5個の検査ノードとを含む、例示的LDPC符号を示すグラフである。 図1に示すグラフ表現の代案としてマトリックス表現の使用により符号を示す図1のLDPC符号の代替表現である。 本発明に従い実施された制約ノード処理モジュールを示す。 本発明に従い実施されたLDPC復号器を示す。 本発明に従いN個の並列制約ノード及び可変ノード処理素子を用いて実施された別のLDPC復号器を示す。 例えば図4の復号器にて、復号化を制御するために使用できる例示的LDPC符号構造を示す。 本発明に従い、例えば図4の例示的復号器にて、復号化を制御するために使用できる別の例示的LDPC符号構造を示す。 図4の復号器と図7に示すLDPC符号構造とを使用し、1組の入力値に復号化操作を実行した結果を示す。

Claims (30)

  1. 検査ノードプロセッサモジュールを備え、低密度パリティ検査(LDPC)復号化操作を実行する装置であって、
    前記検査ノードプロセッサモジュールは、
    i)複数の検査ノードのための複数のメッセージ状態メモリ格納素子を含む検査ノード状態メモリと、なお、各検査ノード状態格納素子は単一の検査ノードに対応し、且つ前記検査ノード状態メモリ対応する前記検査ノードに宛てられたメッセージに対応する第1及び第2のメッセージマグニチュード値を格納するため第1及び第2の位置を含、前記各ノード状態格納素子はさらに、前記検査ノード状態格納素子対応する前記検査ノードに対応する累積標識値を格納するため標識メモリ位置を含む;
    ii)受信され可変ノード至検査ノード状態メッセージの内容に基づき前記検査ノード状態メモリに格納された状態を更新する検査ノードプロセッサ素子と;
    iii)前記検査ノード状態メモリに結合され、処理されるべき可変至検査ノードメッセージと同じ検査ノードに対応する検査ノード状態を出力するため前記検査ノード状態メモリを制御する制御モジュールと、なお、前記検査ノード状態は、処理されるべき前記可変至検査ノードメッセージと同じノードに対応する前記検査ノード状態格納素子の内の1つの出力である;
    iv)検査ノード至可変ノードメッセージの生成に使用するために、検査ノードに対応する各受信メッセージに含まれる標識ビットを格納するメッセージ標識メモリと;
    v)少なくとも1つの検査ノードに対応する完全に更新された検査ノード状態情報を格納する検査ノード状態バッファメモリと;
    vi)前記検査ノード状態バッファメモリ及び前記メッセージ標識メモリに結合され、前記少なくとも1つの検査ノードに対応する前記完全に更新された検査ノード状態情報及び前記少なくとも1つの検査ノードに対応する格納された標識メッセージ情報から検査ノード至可変ノードメッセージを生成するための検査ノード至可変ノードメッセージ抽出器と、なお、1つの検査ノード至可変ノードメッセージは前記少なくとも1つの検査ノードに対応する受信された受信検査ノード至可変ノードメッセージの各々に対して生成される;
    を備えた装置。
  2. 前記少なくとも1つの検査ノードに対応する完全に更新された検査ノード状態情報は、M個の可変ノード至検査ノードメッセージの各々から生成された状態情報であって、Mは前記少なくとも1つの検査ノードに対応するエッジの数である、請求項に記載の装置。
  3. 前記制御モジュールは、ある検査ノードに対応する更新された状態を前記検査ノードに対応する状態情報の読み取り元にあたる同じメッセージ状態メモリ格納素子格納するために前記検査ノード状態メモリを制御する、請求項に記載の装置。
  4. 前記検査ノード状態メモリは、復号化を制御するために用いるLDPCグラフ構造に含まれる各検査ノードに対して1つの検査ノード状態メモリ格納素子を含む、請求項1に記載の装置。
  5. 前記メッセージ標識メモリは、復号化を制御するために用いるLDPCグラフ構造に含まれる各メッセージエッジに対して1つの標識ビット格納位置を含む、請求項に記載の装置。
  6. 前記検査ノード処理モジュールへ結合される可変ノードプロセッサをさらに備え、前記可変ノードプロセッサモジュールは、前記検査ノード処理モジュールから検査ノード至可変ノードメッセージを受信し、且つ前記検査ノード処理モジュールへ供給される可変ノード至検査ノードメッセージを生成する、請求項に記載の装置。
  7. 前記検査ノード処理モジュール及び前記可変ノードプロセッサモジュール結合される復号器制御モジュールをさらに備え、前記復号器制御モジュールは、メッセージを可変ノード順序で処理するため前記検査ノード処理モジュールと前記可変ノードプロセッサモジュールの両方を制御する、請求項に記載の装置。
  8. 前記可変ノードプロセッサは、並列に配置された複数の可変ノード処理素子を含む、請求項に記載の装置。
  9. 前記検査ノードプロセッサモジュールは、並列に配置された複数の検査ノード処理素子を含む、請求項に記載の装置。
  10. 前記可変ノードプロセッサと前記検査ノードプロセッサとの間で並行に引き渡されるメッセージを再順序付けするために、前記可変ノードプロセッサモジュールと前記検査ノードプロセッサモジュールとの間に配置される少なくとも1つのメッセージ再順序付け素子がある、請求項に記載の装置。
  11. 前記復号器制御モジュールは、格納されたメッセージの再順序付け情報の関数としてメッセージ再順序付け素子を制御する制御論理を含む、請求項10に記載の装置。
  12. 低密度パリティ検査(LDPC)復号化操作を実行する方法であって、
    複数の検査ノードによって受信されるメッセージに対応する複数の組のメッセージ状態情報をメモリに格納することと
    前記複数の検査ノードの内の1つへ宛てられた検査ノード入力メッセージを受信することと
    前記複数の組のメッセージ状態情報の内、状態更新操作で使用すべき1組を前記受信メッセージの宛先にあたる前記検査ノードに基づき選択することと
    選択された組のメッセージ状態情報を前記メモリから回収することと
    選択された組のメッセージ状態情報を前記受信メッセージの関数として更新することと
    少なくとも1つの他の検査ノードの状態更新を完了する前に第1の検査ノードに対応する完全に更新された状態を生成するために、前記第1の検査ノードの状態更新を完全に完了することと;
    前記第1の検査ノードに対応する前記完全に更新された状態をバッファすることと;
    前記バッファされた完全に更新された状態から検査ノード至可変ノードメッセージを抽出することと、なお、前記バッファされた完全に更新された状態から検査ノード至可変ノードメッセージを抽出する前記ステップは、前記完全に更新された状態と前記完全に更新された状態を生成するため使用される複数の可変ノード至検査ノードメッセージに対応する格納された標識情報とから複数の発信メッセージを生成することを含む;
    の各ステップを備えた方法。
  13. 前記更新された前記組のメッセージ状態情報を、前記メッセージ状態情報の回収元にあたるメモリ位置へ書き込むことをさらに備える、請求項12に記載の方法。
  14. 前記受信する、選択する、回収する、及び更新するステップを、受信する複数のメッセージの各々に対して、前記受信メッセージに対応するエッジがLDPC符号を表すグラフの中で可変処理ノードへ取り付けられる順序に一致する第1の順番で順次繰り返すことをさらに備える、請求項12に記載の方法。
  15. 前記受信メッセージに対応するエッジが前記LDPC符号を表すグラフの中で可変処理ノードへ取り付けられる順序に一致する前記順番は、前記受信メッセージに対応するエッジが前記LDPC符号を表すグラフの中で制約処理ノードへ取り付けられる第2の順番と異なる、請求項14に記載の方法。
  16. 1組の可変至検査ノードメッセージ一式が受信済みである検査ノードに対応する少なくとも1組の状態情報に対して、検査ノード至可変ノード抽出操作を実行することをさらに備える、請求項14に記載の方法。
  17. 複数の検査ノード至可変ノードメッセージを生成するために前記抽出操作を実行することをさらに備え、前記複数の可変ノードの内の1個へ宛てられる検査ノード至可変ノードメッセージは、前記複数の可変ノードの内の前記1個へ宛てられる一連の検査ノード至可変ノードメッセージを作るため連続的に生成される、請求項16に記載の方法。
  18. 前記第1の検査ノードの状態更新は、ある1つの検査ノードのための状態更新が、その検査ノードの状態が前記検査ノードに対応する複数のメッセージエッジの各々につき一度更新されたときに完全に完了する、請求項12に記載の方法。
  19. 前記第1の検査ノードに対応する別の組の状態を、前記少なくとも1つの他の検査ノードの前記状態更新を完全に完了する前に、可変至検査ノードメッセージ処理の第2の反復の一部として更新することをさらに備える、請求項12に記載の方法。
  20. 第1の複数の検査ノードのための状態更新を、第2の複数の検査ノードに対応する状態更新を完了する前に完全に完了することをさらに備え、ある1つの検査ノードのための状態更新は、その検査ノードの状態が前記検査ノードに対応する複数のメッセージエッジの各々につき一度更新されたときに完全に完了する、請求項12に記載の方法。
  21. 第1及び第2の複数の検査ノードは、復号化を制御するために用いる実施LDPC符号構造を表すLDPCグラフの中で総検査ノード数の少なくとも20%を各々含む、請求項20に記載の方法。
  22. 前記更新する操作は、第1の組の検査ノードに対応する状態情報の部分更新として実行される、請求項12に記載の方法。
  23. 第1の組の検査ノードの前記更新は、第1の組の可変至検査ノードメッセージを使用して第1の期間中に実行され、この方法はさらに、
    第2の組の検査ノードに対応する状態情報を第2の期間中に更新することを備え、前記第2の組の検査ノードは前記第1の組の検査ノードに含まれない検査ノードだけを含み、
    前記第2の期間は前記第1の期間の後に続く、請求項22に記載の方法。
  24. 前記第2の期間中に前記第1の組の検査ノードに対応する更新された状態情報から検査ノード至可変ノードメッセージを抽出することをさらに備える、請求項23に記載の方法。
  25. 前記第1及び第2の期間は長さが等しい、請求項24に記載の方法。
  26. 前記第1及び第2の期間は、第3の組の検査ノードに対応する状態が更新される第3の期間中で隔てられる、請求項24に記載の方法。
  27. 前記第1及び第2の組の検査ノードは、復号化を制御するために用いるLDPC符号に対応するグラフの中で検査ノードの少なくとも10%を各々含む、請求項24に記載の方法。
  28. 前記第1及び第2の組の検査ノードは、復号化を制御するために用いるLDPC符号に対応するグラフの中で検査ノードの少なくとも20%を各々含む、請求項24に記載の方法。
  29. 前記第1の期間は、N個の可変至検査ノードメッセージを処理するのに要する時間の40%に満たなく、Nは、復号化を制御するために用いるLDPC符号に対応するグラフにおける総メッセージエッジ数に等しい、請求項24に記載の方法。
  30. 前記第1の期間は、N個の可変至検査ノードメッセージを処理するのに要する時間の20%に満たなく、Nは、復号化を制御するために用いるLDPC符号に対応するグラフにおける総メッセージエッジ数に等しい、請求項24に記載の方法。
JP2007524935A 2004-08-02 2005-08-01 メモリが効率的なldpc復号化方法及び装置 Expired - Fee Related JP4567734B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/909,753 US7127659B2 (en) 2004-08-02 2004-08-02 Memory efficient LDPC decoding methods and apparatus
PCT/US2005/027526 WO2006017555A2 (en) 2004-08-02 2005-08-01 Memory efficient ldpc decoding methods and apparatus

Publications (2)

Publication Number Publication Date
JP2008508835A JP2008508835A (ja) 2008-03-21
JP4567734B2 true JP4567734B2 (ja) 2010-10-20

Family

ID=35733811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007524935A Expired - Fee Related JP4567734B2 (ja) 2004-08-02 2005-08-01 メモリが効率的なldpc復号化方法及び装置

Country Status (11)

Country Link
US (2) US7127659B2 (ja)
EP (2) EP1782541A4 (ja)
JP (1) JP4567734B2 (ja)
KR (1) KR100888096B1 (ja)
CN (1) CN101044688B (ja)
AU (1) AU2005271540A1 (ja)
CA (1) CA2575953C (ja)
NO (1) NO20071133L (ja)
UA (1) UA86987C2 (ja)
WO (1) WO2006017555A2 (ja)
ZA (1) ZA200701825B (ja)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4138700B2 (ja) * 2004-05-31 2008-08-27 株式会社東芝 復号装置および復号回路
US7617432B2 (en) * 2004-11-10 2009-11-10 Qualcomm Incorporated Hierarchical design and layout optimizations for high throughput parallel LDPC decoders
US7594154B2 (en) * 2004-11-17 2009-09-22 Ramakrishna Vedantham Encoding and decoding modules with forward error correction
US7441178B2 (en) * 2005-02-24 2008-10-21 Keyeye Communications Low complexity decoding of low density parity check codes
TWI291290B (en) * 2005-04-21 2007-12-11 Univ Nat Chiao Tung Method for updating check-node of low-density parity-check (LDPC) codes decoder and device using the same
US7571372B1 (en) 2005-06-23 2009-08-04 Marvell International Ltd. Methods and algorithms for joint channel-code decoding of linear block codes
US7761768B2 (en) * 2005-06-24 2010-07-20 Intel Corporation Techniques for reconfigurable decoder for a wireless system
US7818649B1 (en) * 2005-11-30 2010-10-19 Aquantia Corporation Efficient message passing scheme of iterative error correcting decoders
US7509528B2 (en) * 2006-03-10 2009-03-24 Alcatel Lucent Transaction bundling for improved redundancy
US20070245217A1 (en) * 2006-03-28 2007-10-18 Stmicroelectronics S.R.L. Low-density parity check decoding
EP1841073A1 (en) * 2006-03-29 2007-10-03 STMicroelectronics N.V. Fast convergence LDPC decoding using BCJR algorithm at the check nodes
US8028216B1 (en) 2006-06-02 2011-09-27 Marvell International Ltd. Embedded parity coding for data storage
US7644339B2 (en) 2006-10-02 2010-01-05 Broadcom Corporation Overlapping sub-matrix based LDPC (low density parity check) decoder
US8457005B2 (en) 2006-11-08 2013-06-04 Trellisware Technologies, Inc. Method and system for establishing cooperative routing in wireless networks
US8588126B2 (en) 2006-11-08 2013-11-19 Trellisware Technologies, Inc. Methods and apparatus for network communication via barrage relay onto an independent medium allocation
KR100864838B1 (ko) * 2006-12-05 2008-10-23 한국전자통신연구원 저밀도 패리티 검사 부호의 검사노드를 갱신하는 방법 및장치
WO2008069567A1 (en) * 2006-12-05 2008-06-12 Electronics And Telecommunications Research Institute Apparatus and method for updating check node of low-density parity check codes
US8504890B2 (en) * 2006-12-17 2013-08-06 Ramot At Tel Aviv University Ltd. Scheduling for LDPC decoding
KR100938068B1 (ko) * 2007-01-30 2010-01-21 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
KR100919779B1 (ko) * 2007-03-06 2009-10-01 재단법인서울대학교산학협력재단 저밀도 패리티 검사 부호를 위한 복호화기 및 복호화 방법
TW200838160A (en) * 2007-03-09 2008-09-16 Univ Nat Chiao Tung Cyclic comparison method of low density parity check decoder
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
US20090013239A1 (en) * 2007-07-02 2009-01-08 Broadcom Corporation LDPC (Low Density Parity Check) decoder employing distributed check and/or variable node architecture
CN101106381B (zh) * 2007-08-09 2010-04-07 上海交通大学 分层的低密度校验码译码器及译码处理方法
US8181083B2 (en) * 2007-08-27 2012-05-15 Stmicroelectronics S.R.L. Methods and architectures for layered decoding of LDPC codes with minimum latency
US8576946B2 (en) * 2007-10-19 2013-11-05 Trellisware Technologies, Inc. Method and system for cooperative communications with minimal coordination
US8181081B1 (en) 2007-11-30 2012-05-15 Marvell International Ltd. System and method for decoding correlated data
CN101188426B (zh) * 2007-12-05 2011-06-22 深圳国微技术有限公司 用于对准循环结构的ldpc码进行并行处理的译码器及方法
US8005990B2 (en) * 2008-02-29 2011-08-23 Newport Media, Inc. Efficient decoding of mobile multimedia multicast system non real-time service files
US8156409B2 (en) * 2008-02-29 2012-04-10 Seagate Technology Llc Selectively applied hybrid min-sum approximation for constraint node updates of LDPC decoders
CN101854178B (zh) * 2009-04-01 2013-01-30 中国科学院微电子研究所 一种低功耗的ldpc译码器
CN101562456B (zh) * 2009-06-03 2012-08-22 华北电力大学(保定) 基于低密度奇偶校验码译码软信息的码辅助帧同步方法
US8375278B2 (en) * 2009-07-21 2013-02-12 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8516352B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8516351B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US9397699B2 (en) * 2009-07-21 2016-07-19 Ramot At Tel Aviv University Ltd. Compact decoding of punctured codes
US9032067B2 (en) * 2010-03-12 2015-05-12 Fujitsu Limited Determining differences in an event-driven application accessed in different client-tier environments
KR20110124659A (ko) * 2010-05-11 2011-11-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법
CN101944993A (zh) * 2010-09-29 2011-01-12 北京邮电大学 基于ldpc码的加密方案中移位矩阵生成方法
US8832065B2 (en) 2010-10-29 2014-09-09 Fujitsu Limited Technique for coordinating the distributed, parallel crawling of interactive client-server applications
US9400962B2 (en) 2010-10-29 2016-07-26 Fujitsu Limited Architecture for distributed, parallel crawling of interactive client-server applications
US8880588B2 (en) 2010-10-29 2014-11-04 Fujitsu Limited Technique for stateless distributed parallel crawling of interactive client-server applications
US9208054B2 (en) 2011-02-14 2015-12-08 Fujitsu Limited Web service for automated cross-browser compatibility checking of web applications
US8879640B2 (en) 2011-02-15 2014-11-04 Hong Kong Applied Science and Technology Research Institute Company Limited Memory efficient implementation of LDPC decoder
US8843812B1 (en) 2011-03-23 2014-09-23 Sk Hynix Memory Solutions Inc. Buffer management in a turbo equalization system
US9143166B1 (en) * 2011-03-23 2015-09-22 Sk Hynix Memory Solutions Inc. Adaptive scheduling of turbo equalization based on a metric
KR101922990B1 (ko) * 2011-11-11 2018-11-28 삼성전자주식회사 멀티미디어 통신 시스템에서 준순환 저밀도 패리티 검사 부호 송/수신 장치 및 방법
US8989050B2 (en) * 2011-12-01 2015-03-24 Telefonaktiebolaget L M Ericsson (Publ) Graph-based distributed coordination methods for wireless communication networks
US8879428B2 (en) * 2011-12-01 2014-11-04 Telefonaktiebolaget L M Ericsson (Publ) Systems and method for graph-based distributed parameter coordination in a communication network
US8954820B2 (en) 2012-02-10 2015-02-10 Stec, Inc. Reduced complexity non-binary LDPC decoding algorithm
US8880951B2 (en) 2012-04-06 2014-11-04 Fujitsu Limited Detection of dead widgets in software applications
KR101926608B1 (ko) * 2012-08-27 2018-12-07 삼성전자 주식회사 경 판정 디코딩 방법 및 이를 이용한 저밀도 패리티 체크 디코더
US8972834B2 (en) 2012-08-28 2015-03-03 Hughes Network Systems, Llc System and method for communicating with low density parity check codes
US20140082449A1 (en) * 2012-09-18 2014-03-20 Fan Zhang LDPC Decoder With Variable Node Hardening
CN102970047B (zh) * 2012-12-01 2016-02-24 电子科技大学 基于平均幅度的ldpc码加权梯度下降比特翻转译码算法
RU2522299C1 (ru) * 2013-01-11 2014-07-10 Государственное казенное образовательное учреждение высшего профессионального образования Академия Федеральной службы охраны Российской Федерации (Академия ФСО России) Способ и устройство помехоустойчивого декодирования сигналов, полученных с использованием кода проверки на четность с низкой плотностью
US8930789B1 (en) * 2013-01-23 2015-01-06 Viasat, Inc. High-speed LDPC decoder
US9094132B1 (en) 2013-01-23 2015-07-28 Viasat, Inc. High data rate optical transport network using 8-PSK
US9379738B2 (en) * 2013-03-13 2016-06-28 Marvell World Trade Ltd. Systems and methods for decoding using partial reliability information
KR101698875B1 (ko) 2013-03-14 2017-01-24 한국전자통신연구원 Ldpc 부호의 복호 방법 및 장치
US9513989B2 (en) * 2013-03-26 2016-12-06 Seagate Technology Llc Priori information based post-processing in low-density parity-check code decoders
RU2546070C1 (ru) * 2013-11-12 2015-04-10 Открытое акционерное общество "Калужский научно-исследовательский институт телемеханических устройств" Способ мягкого декодирования помехоустойчивого кода
US9743397B2 (en) 2013-11-14 2017-08-22 Telefonaktiebolaget L M Ericsson (Publ) Reduced-size message pass in factor graphs for wireless communications networks
EP3082267A4 (en) * 2013-12-09 2017-08-16 Mitsubishi Electric Corporation Error-correction decoding device
TWI551058B (zh) * 2014-05-09 2016-09-21 衡宇科技股份有限公司 最小-總和演算法之低密度奇偶校驗碼解碼器及其解碼方法
US9391647B2 (en) * 2014-07-18 2016-07-12 Storart Technology Co., Ltd. Decoder and decoding method thereof for min-sum algorithm low density parity-check code
KR102189440B1 (ko) 2014-08-25 2020-12-14 삼성전자주식회사 에러 정정 디코더를 포함하는 스토리지 장치 및 에러 정정 디코더의 동작 방법
US20160182083A1 (en) * 2014-12-23 2016-06-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and Methods for Decoder Scheduling With Overlap and/or Switch Limiting
US9590657B2 (en) 2015-02-06 2017-03-07 Alcatel-Lucent Usa Inc. Low power low-density parity-check decoding
US9935654B2 (en) * 2015-02-06 2018-04-03 Alcatel-Lucent Usa Inc. Low power low-density parity-check decoding
CN104852746B (zh) * 2015-05-27 2017-11-03 北京邮电大学 Ldpc码的译码器和译码方法
RU2639687C1 (ru) 2015-10-13 2017-12-21 Хуавэй Текнолоджиз Ко., Лтд Устройство и способ декодирования и система передачи сигналов
US10784901B2 (en) 2015-11-12 2020-09-22 Qualcomm Incorporated Puncturing for structured low density parity check (LDPC) codes
US10469104B2 (en) 2016-06-14 2019-11-05 Qualcomm Incorporated Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes
KR102626162B1 (ko) * 2016-06-14 2024-01-18 삼성전자주식회사 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법
WO2018084735A1 (en) * 2016-11-03 2018-05-11 Huawei Technologies Co., Ltd. Efficiently decodable qc-ldpc code
US10340949B2 (en) * 2017-02-06 2019-07-02 Qualcomm Incorporated Multiple low density parity check (LDPC) base graph design
US10312939B2 (en) 2017-06-10 2019-06-04 Qualcomm Incorporated Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code
TWI657669B (zh) * 2017-11-28 2019-04-21 財團法人資訊工業策進會 低密度奇偶檢查碼解碼器及其解碼方法
US20220021400A1 (en) * 2018-12-03 2022-01-20 Université De Bretagne Sud Iterative decoder for decoding a code composed of at least two constraint nodes
CN110535476B (zh) * 2019-09-30 2023-06-06 深圳忆联信息系统有限公司 Ldpc软译码器软信息存储优化方法、装置、计算机设备及存储介质

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3542756A (en) 1968-02-07 1970-11-24 Codex Corp Error correcting
US3665396A (en) 1968-10-11 1972-05-23 Codex Corp Sequential decoding
US4295218A (en) 1979-06-25 1981-10-13 Regents Of The University Of California Error-correcting coding system
DE3483349D1 (de) * 1983-10-25 1990-11-08 Nissan Motor Kuehlvorrichtung fuer eine kraftfahrzeugmaschine.
US5293489A (en) 1985-01-24 1994-03-08 Nec Corporation Circuit arrangement capable of centralizing control of a switching network
US5271042A (en) 1989-10-13 1993-12-14 Motorola, Inc. Soft decision decoding with channel equalization
US5157671A (en) 1990-05-29 1992-10-20 Space Systems/Loral, Inc. Semi-systolic architecture for decoding error-correcting codes
US5313609A (en) 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
US5396518A (en) 1993-05-05 1995-03-07 Gi Corporation Apparatus and method for communicating digital data using trellis coding with punctured convolutional codes
US5457704A (en) 1993-05-21 1995-10-10 At&T Ipm Corp. Post processing method and apparatus for symbol reliability generation
US5526501A (en) 1993-08-12 1996-06-11 Hughes Aircraft Company Variable accuracy indirect addressing scheme for SIMD multi-processors and apparatus implementing same
US5615298A (en) 1994-03-14 1997-03-25 Lucent Technologies Inc. Excitation signal synthesis during frame erasure or packet loss
US5860085A (en) 1994-08-01 1999-01-12 Cypress Semiconductor Corporation Instruction set for a content addressable memory array with read/write circuits and an interface register logic block
US5671221A (en) 1995-06-14 1997-09-23 Sharp Microelectronics Technology, Inc. Receiving method and apparatus for use in a spread-spectrum communication system
US5867538A (en) 1995-08-15 1999-02-02 Hughes Electronics Corporation Computational simplified detection of digitally modulated radio signals providing a detection of probability for each symbol
US5968198A (en) 1996-08-16 1999-10-19 Ericsson, Inc. Decoder utilizing soft information output to minimize error rates
CA2214952C (en) * 1996-09-11 2007-09-04 Sankyo Company, Limited Insecticidal composition
US5892962A (en) 1996-11-12 1999-04-06 Lucent Technologies Inc. FPGA-based processor
US5909572A (en) 1996-12-02 1999-06-01 Compaq Computer Corp. System and method for conditionally moving an operand from a source register to a destination register
US6438180B1 (en) 1997-05-09 2002-08-20 Carnegie Mellon University Soft and hard sequence detection in ISI memory channels
GB2326253A (en) 1997-06-10 1998-12-16 Advanced Risc Mach Ltd Coprocessor data access control
US5933650A (en) 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US5864703A (en) 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US6195777B1 (en) 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
US6073250A (en) 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US6339834B1 (en) 1998-05-28 2002-01-15 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre Interleaving with golden section increments
WO2000019616A2 (en) 1998-09-28 2000-04-06 Advanced Hardware Architectures, Inc. Turbo product code decoder
US6247158B1 (en) 1998-11-30 2001-06-12 Itt Manufacturing Enterprises, Inc. Digital broadcasting system and method
US6397240B1 (en) 1999-02-18 2002-05-28 Agere Systems Guardian Corp. Programmable accelerator for a programmable processor system
US6473010B1 (en) 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US6539367B1 (en) * 2000-05-26 2003-03-25 Agere Systems Inc. Methods and apparatus for decoding of general codes on probability dependency graphs
JP4389373B2 (ja) * 2000-10-11 2009-12-24 ソニー株式会社 2元巡回符号を反復型復号するための復号器
US6754804B1 (en) 2000-12-29 2004-06-22 Mips Technologies, Inc. Coprocessor interface transferring multiple instructions simultaneously along with issue path designation and/or issue order designation for the instructions
US6731700B1 (en) 2001-01-04 2004-05-04 Comsys Communication & Signal Processing Ltd. Soft decision output generator
US6938196B2 (en) * 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
US6633856B2 (en) 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US6842872B2 (en) * 2001-10-01 2005-01-11 Mitsubishi Electric Research Laboratories, Inc. Evaluating and optimizing error-correcting codes using projective analysis
US6718504B1 (en) 2002-06-05 2004-04-06 Arc International Method and apparatus for implementing a data processor adapted for turbo decoding
US7178080B2 (en) 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
JP4062435B2 (ja) * 2002-12-03 2008-03-19 日本電気株式会社 誤り訂正符号復号装置
US6957375B2 (en) * 2003-02-26 2005-10-18 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
US11079672B2 (en) 2018-10-31 2021-08-03 Taiwan Semiconductor Manufacturing Company Ltd. Method and system for layout enhancement based on inter-cell correlation

Also Published As

Publication number Publication date
EP2683086A2 (en) 2014-01-08
EP1782541A2 (en) 2007-05-09
US7376885B2 (en) 2008-05-20
EP2683086A3 (en) 2014-01-22
US20070168832A1 (en) 2007-07-19
CN101044688B (zh) 2012-06-13
EP1782541A4 (en) 2009-03-18
KR20070058477A (ko) 2007-06-08
WO2006017555A2 (en) 2006-02-16
US7127659B2 (en) 2006-10-24
WO2006017555A3 (en) 2006-11-09
US20060026486A1 (en) 2006-02-02
NO20071133L (no) 2007-05-02
AU2005271540A1 (en) 2006-02-16
CA2575953A1 (en) 2006-02-16
ZA200701825B (en) 2008-11-26
CN101044688A (zh) 2007-09-26
CA2575953C (en) 2009-08-25
JP2008508835A (ja) 2008-03-21
KR100888096B1 (ko) 2009-03-11
UA86987C2 (ru) 2009-06-10

Similar Documents

Publication Publication Date Title
JP4567734B2 (ja) メモリが効率的なldpc復号化方法及び装置
KR100958234B1 (ko) 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들
JP6451955B2 (ja) 多段ソフト入力デコードのためのシステムおよび方法
AU2005222533B2 (en) Method and apparatus for efficiently decoding low density parity check code
US7673223B2 (en) Node processors for use in parity check decoders
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US20110131462A1 (en) Matrix-vector multiplication for error-correction encoding and the like
JP2004531972A (ja) Ldpc符号を復号する方法と装置
CN102412847A (zh) 用联合节点处理来解码低密度奇偶校验码的方法和设备
JP2005506733A5 (ja)
KR20150128750A (ko) 늦은 신뢰도 정보를 사용하여 디코딩하기 위한 시스템 및 방법
CN107733443B (zh) 用于通用乘积码背景的低延迟软解码器架构
CN1953336A (zh) 在低密度奇偶校验解码器中更新校验节点的方法
US20190103885A1 (en) Systems and methods for decoding error correcting codes
JP2006135813A (ja) 低密度パリティチェック符号復号器及び方法
RU2382493C2 (ru) Эффективные по использованию памяти способы декодирования кодов с низкой плотностью контроля по четности (ldpc) и устройства для осуществления этих способов
US8645787B2 (en) Method for controlling a basic parity node of a non-binary LDPC code decoder, and corresponding basic parity node processor
US20190097655A1 (en) Low-density parity-check code decoder and decoding method

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20081121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091112

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100805

R150 Certificate of patent or registration of utility model

Ref document number: 4567734

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130813

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees