JP4402699B2 - ノードメモリ基盤のldpcデコーダ及び復号方法 - Google Patents
ノードメモリ基盤のldpcデコーダ及び復号方法 Download PDFInfo
- Publication number
- JP4402699B2 JP4402699B2 JP2007021427A JP2007021427A JP4402699B2 JP 4402699 B2 JP4402699 B2 JP 4402699B2 JP 2007021427 A JP2007021427 A JP 2007021427A JP 2007021427 A JP2007021427 A JP 2007021427A JP 4402699 B2 JP4402699 B2 JP 4402699B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- variable
- check
- memory
- message
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65D—CONTAINERS FOR STORAGE OR TRANSPORT OF ARTICLES OR MATERIALS, e.g. BAGS, BARRELS, BOTTLES, BOXES, CANS, CARTONS, CRATES, DRUMS, JARS, TANKS, HOPPERS, FORWARDING CONTAINERS; ACCESSORIES, CLOSURES, OR FITTINGS THEREFOR; PACKAGING ELEMENTS; PACKAGES
- B65D35/00—Pliable tubular containers adapted to be permanently or temporarily deformed to expel contents, e.g. collapsible tubes for toothpaste or other plastic or semi-liquid material; Holders therefor
- B65D35/24—Pliable tubular containers adapted to be permanently or temporarily deformed to expel contents, e.g. collapsible tubes for toothpaste or other plastic or semi-liquid material; Holders therefor with auxiliary devices
- B65D35/32—Winding keys
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47K—SANITARY EQUIPMENT NOT OTHERWISE PROVIDED FOR; TOILET ACCESSORIES
- A47K5/00—Holders or dispensers for soap, toothpaste, or the like
- A47K5/06—Dispensers for soap
- A47K5/12—Dispensers for soap for liquid or pasty soap
- A47K5/1211—Dispensers for soap for liquid or pasty soap using pressure on soap, e.g. with piston
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6566—Implementations concerning memory access contentions
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Public Health (AREA)
- Mechanical Engineering (AREA)
- Error Detection And Correction (AREA)
Description
以後、Richardsonらは、LDPC符号を構成するファクターグラフ(factor graph)上で復号過程中に生成、アップデートされるメッセージの確率分布(probability distribution)によって変化することを追跡する密度拡散(density evolution)技法を提案した。また、これを用いて、サイクルフリー(cycle free)のファクターグラフ上で無限大の反復を仮定したとき、誤り確率を‘0’に収束可能にするチャンネルパラメーター(例えば、しきい値(threshold))を最大化できるファクターグラフの変数とチェックノードの次数分布(degree distribution)を提案した。そして、このような場合がサイクルが存在する有限な長さのLDPC符号に対しても適用可能であることを理論的に提示した。このような密度拡散技法を用いて不規則LDPC符号の理論的なチャンネル容量がShannon限界に僅か0.0045dBまで近接できることを示した。
図1は、一般的なLDPC符号のタナーグラフとパリティチェックマトリックスを示す。同図に、2個の情報ビットKと3個のパリティビットの場合において、タナーグラフ(Tanner graph)とパリティチェックマトリックスHを示す。
図1を参照すると、グラフ上で変数ノード(Variable node)は、符号語(codeword)の各ビットを示し、チェックノード(Check node)は一つのチェック方程式(equation)を示す。したがって、変数ノードの数は、符号語の長さ(length)、すなわちマトリックスHの列サイズ(column size)を示し、チェックノードの数はパリティビット(parity bit)の数、すなわちマトリックスHの行サイズ(row size)を示す。したがって、図1には符号率2/5のLDPC符号を一例として示す。このようなタナーグラフ上で、各ノードを接続するエッジ(edge)はマトリックスHにおける‘1’を示す。
図2を参照すると、一般的なLDPC符号のデコーダは、二分グラフ(bipartite graph)上でメッセージパッシング(message-passing)の概念で説明可能であるが、このデコーダは、図2のように変数ノードとチェックノードとの間のメッセージ、すなわち外部情報(extrinsic information)を相互に交換しつつ反復(iterative)演算方式で動作する。
図2に示すように、
一般的に知られている積和アルゴリズムの場合に、各メッセージの生成は、下記の<数式(1)>及び<数式(2)>のように表わされる。
<数式(1)>に示すように、yjはj番目の変数ノード、すなわちj番目の受信ビットに該当するLLR(Log-Likelihood Ratio)を、C(j)はj番目の変数ノードに接続されたチェックノードのインデックス集合を、V(i)はi番目のチェックノードに接続された変数ノードのインデックス集合を、それぞれ示す。
<数式(2)>に示すように、pはメッセージmの符号(sign)、例えば‘+1’又は‘-1’を、qはメッセージmの振幅をそれぞれ示し、x>=0である場合にF(x)=-log(tanh(x/2))、x<0である場合にF(x)=+log(tanh(-x/2))を示す。
以上に説明したように、メッセージパッシングアルゴリズムで動作する一般的なLDPCデコーダは、上記の反復演算過程を経て情報ビットを復号する。
図3は、一般的なブロックLDPCのグラフ形態及びチェックマトリックスを示す。
まず、図3は、上記した図1で使用されたマトリックスHを並列要素Zだけ拡張して示すもので、一例としてZ=2である場合を示す。Z=2である場合に、符号語(codeword)の長さが2倍に拡張された。このような場合に、マトリックスHは、既存の基本マトリックスHで各要素をZ×Zマトリックスで示すことができる。
まず、図3の左側に示すように、図1に示したマトリックスHを単純拡張した場合に、単位マトリックス(identity matrix)は‘1’に位置される。しかしながら、このような場合にグラフで各階層(layer)間に情報の交換がないので、符号語長さが長くなるだけの符号化利得(coding gain)が得られない。したがって、図3の右側に示すように、エッジ置換(edge permutation)を通じて階層間にエッジの接続を任意に行う。これは、基本マトリックスHで‘1’に該当する位置に単位マトリックスの代わりに置換マトリックス(permutation matrix)を使用することと同様である。以上のように、ブロックLDPCにおけるデコーダは、Z単位で並列処理されることによって、処理率の向上と共に、制御オーバーヘッド(control overhead)の減少が可能になる。
一般的なメッセージパッシングデコーダは、エッジメッセージのアップデート順序に関係なく動作できる。ここで、スケジューリング方式は、エッジメッセージのアップデート順序を決定することで、デコーダの反復による収束速度に影響を及ぼす。
なお、この直列スケジューリング方式は、変数ノード基盤(variable node based)方式とチェックノード基盤(check node based)方式に分けられる。
チェックノード基盤の直列スケジューリング方式は、一つのチェックノードに接続された出力メッセージC2Vをアップデートするために必要な入力メッセージ(incoming message)V2Cをまずアップデートする。一つのチェックノードに接続された出力メッセージがすべてアップデートされると、次のチェックノードに移動させた後にアップデートし、このような動作を繰り返して遂行する。同様に、変数ノード基盤の直列スケジューリング方式も上記のように動作が遂行されることができる。
図4は、一つのベクトルノード処理器(Vector Node Processor:以下、“VNPVNP”とする)とベクトルエッジメッセージメモリ(Vector Edge Message Memory:以下、“VMM”とする)で実現された従来のデコーダの実現例を示す。
VNPは、少なくとも一つのノード処理器ユニットを含んでおり、各ノード処理器ユニットはZ回の演算を遂行する。また、VNPは、制御信号により変数ノード又はチェックノードの演算を遂行することができる。デコーダは、一つのVMMをもってV2CとC2Vメッセージをすべて格納しなければならない。したがって、このような構造では、上記したようなフラッディングスケジューリング方式だけが適用されることができる。
例えば、VNPが変数ノード処理器として動作を始めるときに、VMMにはC2Vメッセージが格納されている。したがって、VNPが1番目の変数ノードに対する出力メッセージV2Cをアップデートするために、VMMに格納されているC2Vメッセージを読み出して出力メッセージを計算した後、読み取り動作を遂行したメモリアドレスにV2Cメッセージを格納する。
上記のように、すべての変数ノードに対する演算を遂行すると、VMMは、すべてV2Cメッセージにアップデートされる。その後、VNPは、制御信号の動作によってチェックノード処理器の動作を遂行する。すなわち、各エッジ当り一つのメモリでV2CとC2Vメッセージをすべて格納及び処理するためにはフラッディングスケジューリング技法だけが可能である。
この場合に、従来のデコーダの構造では、一個のVNPで順次的な演算を遂行するので、メモリが小さく、ハードウェアが簡単な反面、デコーダの処理率が遅いという問題点が伴う。これについては、後述する図6A及び図6Bを参照して具体的に説明するため、ここではその詳細な説明を省略する。
図5に示すように、それぞれのVNPは、変数ノード又はチェックノード処理器の役割だけを遂行し、2個の処理器が同時に動作することによって復号処理率(decoding throughput)を向上可能にする。上記と同様に、VNPとVMMとの間に存在するスイッチング装置は、一例として図3に示したような各階層間のエッジ置換を遂行する。しかしながら、図5のような構造を有するデコーダは、C2VとV2Cメッセージを格納するためのメモリが各々必要となる。したがって、メモリが、上記した図4に示した構造に比べて2倍増加、すなわちハードウェア個数の増加が2倍になって物理的体積が大きくなるという問題点がある。
したがって、複雑度を低下させつつ速い処理率を達成できるデコーダの設計及びその実現方法が要求される。
R. G. Gallger著、"Low-density parity-check code"、IRE Transaction on Information Theory、(米国)、IEEE、1962年1月、p. 21-28
本発明の他の目的は、メッセージメモリを別に使用することより、メモリの使用量を減少し、ベクトルノード処理器を利用しつつ速い処理率を達成することができるノードメモリ基盤のLDPCデコーダ及び復号方法を提供することにある。
下記に、本発明に関連した公知の機能又は構成に関する具体的な説明が本発明の要旨を不明にすると判断された場合に、その詳細な説明を省略する。
本発明の実施形態によるチェックノードメモリは、一つのチェックノード(check node)ごとに所定の代表値を格納しており、メモリ要素(memory element)の数はチェックノードの数と同一である。
したがって、本発明の実施形態では、上記の図5に示したように、V2CとC2Vエッジメッセージメモリを別途に使用することよりも、メモリの使用量を減少することができる。また、本発明の実施形態によると、変数ノード処理器でV2Cメッセージをアップデートするために関連したC2Vメッセージを注文型(on-demand)に生成する。これによって、上記の図4に示した場合と異なり、一つのベクトルノード処理器(Vector Node Processor:以下、“VNP”とする)だけでも速い処理率(throughput)を実現することができる。
以上のように、提案する本発明の実施形態は、変数ノード基盤の直列スケジューリング方式でメッセージパッシング符号化を遂行するデコーダの実現方法及び装置に関するもので、本発明の実施形態によるデコーダの望ましい動作実施形態を添付の図面を参照して説明する。
図6A及び図6Bは、一般的なデコーダで使用されるフラッディングスケジューリング方式を示す。
図6A及び図6Bを参照すると、従来のフラッディングスケジューリング方式は、変数ノード処理器(V2Cメッセージの生成)とチェックノード処理器(C2Vメッセージの生成)が順次に動作する。すなわち、デコーダは、まず図6Aに示すように、すべてのエッジのV2Cメッセージをすべてアップデートした後に、図6Bに示すようにすべてのC2Vメッセージをアップデートする。
このような構造では、変数ノードとチェックノードの値をやりとりするとき、他のノードの値を使用しない。例えば、V2Cメッセージを生成する場合にC2Vメッセージを用いるが、この場合に用いられるC2Vメッセージは、以前の反復過程でのチェックノード処理器によってアップデートされたものである。すなわち、従来技術では、V2Cメッセージをアップデートする過程で、まずアップデートされたV2Cメッセージを用いてC2Vメッセージをアップデートすることができなかった。
図7A〜図7Fを参照すると、本発明によるLDPC復号方法は、アップデートされたメッセージを用いてこれに関連したメッセージをまずアップデートすることによって、デコーダの性能、すなわち収束速度を向上させることができる。すなわち、1番目の変数ノードのV2Cメッセージをアップデートするときに、LDPC復号方法は、図7Aに示すように、第1の変数ノードに接続されたエッジ(例えば、エッジa,b)のC2Vメッセージを予め獲得しなければならない。
次に、図7Bに示すように、LDPC復号方法は、1番目の変数ノードにかかるC2Vメッセージを獲得すると、変数ノードに接続されたエッジ、すなわちエッジa、b(点線部分)のC2Vメッセージをアップデートするために第1及び第2のチェックノード処理器の動作によってメッセージを生成する。
以後、図7Cに示すように、LDPC復号方法は、上記の生成されたエッジa,bのC2Vメッセージを獲得し、エッジa,bに接続されたノードからのC2Vメッセージを通じてV2Cメッセージを生成する。次に、図7Dに示すように、2番目の変数ノードに接続されたエッジ(例えば、エッジd,e,f)のV2Cメッセージを生成するために、これらのC2Vメッセージを獲得する。C2Vメッセージを獲得する動作は図7Aの動作と類似し、2番目の変数ノードに接続されたエッジ(例えば、エッジd,e,f)のC2Vメッセージを予め獲得する。
図7Eに、参照符号2番目の変数に接続されたエッジd,e,fのC2Vメッセージをアップデートするために関連したチェックノード処理器の動作を示す。ここで、1番目の変数ノードからアップデートされたV2Cメッセージがエッジd、eのC2Vメッセージを生成するために用いられる。
それによって、図7Fに示すように、LDPC復号方法は、エッジd,e,fにかかるC2Vメッセージをすべて獲得し、アップデートされたC2Vメッセージを通じてエッジd,e,fのV2Cメッセージが生成される。
<数式(3)>及び<数式(4)>に示すように、v、cは、各々変数ノード及びチェックノードを示し、qcはノードメモリ値mcの振幅(magnitude of node memory value)を、pcはノードメモリ値mcの符号(sign of node memory value)を、V(c)はc番目のチェックノードに近接した変数ノードのインデックス集合(index set)を、C(v)はv番目の変数ノードに近接したチェックノードのインデックス集合を、sgn(x)はx値が0より小さい場合に-1(sgn(x)=-1,x<0)、x値が0以上である場合に+1(sgn(x)=+1,x≧0)を、それぞれ示す。
まず、<数式(3)>に示すように、初期化段階でmvcは入力LLRであるyvに初期化する。ここで、
次に、<数式(4)>に示すように、反復段階でLは変数ノードvの入力メッセージをすべて合わせる過程を示し、ノードvの入力メッセージは入力LLRであるyvとC2Vメッセージからなる。
次に、
すなわち、本発明のスケジューリング方式は、既存のフラッディングスケジューリング方式とは差別される直列スケジューリング方式として、mvcを毎度アップデートする方式である。すなわち、本発明の実施形態では、一例として、変数ノードを基準としてチェックノードをアップデートする方式、すなわち直列スケジューリング方式を通じて、前記各変数ノードに接続されたチェックノードをすべてアップデートする方式に関して説明する。
まず、mvcを更新するためにLから入力エッジの値を除去する。それにより、該当するエッジの振幅(magnitude)値と符号値を除去する部分が必要で、これは下記の<数式(5)>のように表わされる。
上記したように、本発明の実施形態によるノード処理器は、任意の変数ノードに対して出力メッセージ、すなわちV2Cメッセージを生成及び格納するためにC2Vメッセージをチェックノードメモリ値(pc,qc)からの要求により計算して使用する。これは、一種の統合されたノード処理(unified node processing)方式で、一つのノード処理過程でC2VとV2Cメッセージが同時に生成及びアップデートされる効果を有する。
図8を参照すると、本発明の実施形態によるLDPCデコーダは、ベクトルノード処理器801と、ベクトルノード処理器801に入力信号を提供する入力LLR803と、ベクトルノード処理器801の出力の中でV2Cメッセージを格納するV2Cエッジメモリ805と、ノードメモリ値の振幅であるpc(1ビット)又はノードメモリ値の符号であるqc(K'-1ビット)が格納されるチェックノードメモリ807と、ベクトルノード処理器801を制御するための制御信号を提供する制御部809と、チェックノードメモリ807からの出力をパリティチェックするパリティチェック検証器(parity check verifier)811と、ベクトルノード処理器801から出力されるメッセージをスイッチングしてチェックノードメモリ807に伝送する第1のスイッチ813と、チェックノードメモリ807からの出力をスイッチングしてベクトルノード処理器801に伝達する第2のスイッチ815を含む。
通常に、ブロックLDPCの場合は上記したメモリ読み取り/書き込みとメッセージの生成がZ個の単位で一度に処理されることができる。ノードメモリの一例として、チェックノードメモリ807の値は、V2Cメッセージ又はLLR803からの入力LLR値と異なるビット精密度(bit precision)K'を有することができる。
従来のデコーダでは、別途のパリティチェック検証器811を必要とすることに比べて、本発明によるLDPCデコーダではノードメモリ値の符号値を確認することだけでこの機能を遂行できるため、ハードウェアの実現が簡単になる。したがって、図8に示すような本発明の実施形態では、パリティチェック検証器811のハードウェアを簡単に実現することができる。
複数セットの値に対して同時に読み取り/書き込みを遂行する場合に対する効率的な構造は、一つの変数ノードに接続されたエッジの数(dv、変数ノード次数(variable node degree))だけに処理するものである。このとき、V2Cメッセージ又はチェックノード値を格納するための構造は、dv個だけのメモリバンク(memory bank)からなる。
一方、不規則(irregular)LDPCの場合には、最大変数ノード次数だけのメモリバンクからなる。このような場合に、一つの変数ノードに接続されたエッジメッセージと関連したチェックノード値が一つのサイクル(cycle)に読み取り又は書き込みが可能になるので、パイプライン(pipeline)構造を用いてサイクルごとに1セットの変数ノードに対する処理段階が可能である。これを通じて複数のデコーダの処理率を大幅向上させることができる。
例えば、情報ビットに該当するノードをまずアップデートし、その後、パリティビットに該当するノードをアップデートする。或いは、上記と反対又は不規則LDPC符号の場合に、ノード次数によりアップデート順序を決定することができることはもちろんである。なお、エッジの接続形態により、ノードのアップデート順序を決定することもできることはもちろんである。
図9を参照すると、本発明の実施形態によるノード処理器は、V2Cエッジメモリバンク910とチェックノードメモリバンク930から現在処理している変数ノードに接続されたエッジに該当するエッジメッセージと、このエッジに接続されたチェックノードの値を読み取って上述した動作を遂行する。
新たに計算されたV2Cエッジメッセージとチェックノード値は、更に各変数ノードに接続されたエッジの数、すなわち上記に仮定したところによれば6個が一度に格納される。また、復号化処理率を向上するためのパイプライン構造では、コア(core)動作中にタイミングを合わせるためのラッチ(latch)が挿入されるため、メモリバンクに読み取り/書き込み動作が同時に遂行される。
したがって、デュアルポートメモリ(dual-port memory)を使用して読み取り/書き込みが同時に遂行されるため、メモリ接続の衝突が発生しないようにノードの処理手順を調節する。一方、図9で、関数Fの実現は、ルックアップテーブル(look-up table)又は色々な近似(approximation)アルゴリズム、例えば中間和(min-sum)、線形近似(linear approximation)などを用いて可能である。
803 LLR
805 V2Cエッジメモリ(L×Z×K)
807 チェックノードメモリ(Z×K’)
809 制御部
811 パリティチェック検証器
817 LAPP
910 V2Cエッジメモリバンク
930 チェックノードメモリバンク
Claims (24)
- 無線通信システムにおける低密度パリティチェック符号(LDPC)デコーダであって、
複数の変数ノードと前記複数の変数ノードの各々に対応する一つ以上のチェックノードとの間の各エッジを通じて伝送されるメッセージを格納するエッジメモリと、
前記各エッジに接続されたチェックノードに対応する振幅値と符号(sign)値を有するチェックノード値を格納するノードメモリと、
前記ノードメモリ及び前記エッジメモリのうち少なくとも一つに格納された情報を用いて前記複数の変数ノードのうち予め設定された一つの変数ノードに接続されるエッジのチェックノード出力(C2V)メッセージ及び新たなチェックノード値を生成し、前記生成されたチェックノード値を前記ノードメモリに貯蔵し、前記生成されたチェックノード出力メッセージを前記エッジメモリに格納し、前記格納されたチェックノード出力メッセージを用いて前記予め設定された一つの変数ノードのエッジに接続された変数ノード出力メッセージ(V2C)を生成し、各変数ノード別前記変数ノード出力メッセージの生成を反復する復号化動作を遂行するノード処理器と、を含み、
前記ノード処理器は、前記ノードメモリに格納されたチェックノード値の符号値に従って前記復号化動作を終了することを特徴とするLDPCデコーダ。 - 前記ノードメモリと前記エッジメモリにそれぞれ格納されるチェックノード値とチェックノード出力メッセージは、ノード基盤の直列スケジューリング方式によってアップデートされることを特徴とする請求項1記載のLDPCデコーダ。
- 前記符号値は、前記チェックノード値が0以上であるか否かを示し、すべてのチェックノード値の符号値が、該当チェックノード値が0以上であることを示す場合に前記復号化動作を終了することを特徴とする請求項1記載のLDPCデコーダ。
- 前記ノードメモリに格納されるチェックノード値は、前記変数ノード出力メッセージ及び入力LLR(Log-Likelihood Ratio)の値と異なるビット精密度(bit precision)を有することを特徴とする請求項1記載のLDPCデコーダ。
- 前記ノードメモリと前記エッジメモリのうち少なくとも一つはメモリバンク(memory bank)で構成されることを特徴とする請求項1記載のLDPCデコーダ。
- 前記メモリバンクの個数が最大変数のノード次数であることを特徴とする請求項6記載のLDPCデコーダ。
- 前記ノードメモリに格納されたチェックノード値と前記エッジメモリに格納されたチェックノード出力メッセージのうち少なくとも一つは、パイプライン構造によってサイクルごとに予め設定された変数ノードの個数だけアップデートされることを特徴とする請求項1記載のLDPCデコーダ。
- 前記LDPCデコーダは、
置換動作を通じて前記ノードメモリと前記ノード処理器の出力をスイッチングするスイッチと、
前記ノードメモリからの出力をパリティチェックするパリティチェック検証器と、
前記ノード処理器を制御するための制御信号を提供する制御部と、
をさらに含むことを特徴とする請求項1に記載のLDPCデコーダ。 - 前記スイッチは、
前記ノード処理器からの出力メッセージをスイッチングして前記ノードメモリに伝達する第1のスイッチと、
前記ノードメモリからの出力をスイッチングして前記ノード処理器に伝達する第2のスイッチと、
を含むことを特徴とする請求項9に記載のLDPCデコーダ。 - 前記スイッチは、前記ノードメモリと前記ノード処理器との間に位置することを特徴とする請求項9に記載のLDPCデコーダ。
- 前記パリティチェック検証器は、前記チェックノード値の符号を確認して前記ノードメモリからの出力をチェックすることを特徴とする請求項9に記載のLDPCデコーダ。
- 前記制御信号は、前記複数の変数ノード各々の順序を指定する指定信号及び前記LDPCデコーダの終結信号のうちの少なくとも一つを含むことを特徴とする請求項9記載のLDPCデコーダ。
- 前記指定信号は、
前記複数の変数ノード各々の次数によってアップデート順序を決定する信号及び前記エッジの接続形態により前記複数の変数ノード各々のアップデート順序を決定する信号のうちいずれか一つを含むことを特徴とする請求項13記載のLDPCデコーダ。 - 通信システムにおける低密度パリティチェック符号(LDPC)復号方法であって、
複数の変数ノードのうち、アップデートする変数ノード及び前記変数ノードを一つ以上のチェックノードに接続するエッジのチェックノード値を設定し、前記設定された変数ノードに対応する変数ノードメッセージと前記チェックノード値を格納する段階と、
前記格納されたチェックノード値を用いて前記一つ以上のチェックノードのメッセージを生成する段階と、
前記生成された一つ以上のチェックノードのメッセージを用いて前記変数ノードのメッセージ及び前記チェックノード値をアップデートし、前記アップデートされた変数ノードのメッセージ及び前記チェックノード値を格納する段階と、
前記アップデートして格納された変数ノードのメッセージ及びエッジの値を使用して次にアップデートして格納する変数ノードのメッセージ及び前記次にアップデートして格納する変数ノードとエッジによって接続される少なくとも一つのチェックノードのメッセージを生成し、
前記格納されたチェックノード値の符号(sign)値に基づいて前記変数ノードメッセージ及び前記チェックノード値のアップデートによる復号化動作を終了する段階と、を有し、
前記チェックノード値は、前記各エッジに接続されたチェックノードに対応する振幅値と前記符号値を含むことを特徴とするLDPC復号方法。 - 前記アップデートする段階は、
変数ノード基盤の直列スケジューリング方式を使用して前記変数ノードのメッセージと前記チェックノード値をアップデートして格納する段階であることを特徴とする請求項15記載のLDPC復号方法。 - 前記格納されたチェックノード値は、前記格納された変数ノードメッセージ及び入力LLR(Log-Likelihood Ratio)の値と異なるビット精密度を有することを特徴とする請求項15記載のLDPC復号方法。
- 前記アップデートされた変数ノードのメッセージを格納するメモリ及び前記アップデートされたチェックノード値を格納するメモリのうち少なくとも一つは、メモリバンクで構成されることを特徴とする請求項17記載のLDPC復号方法。
- 前記メモリバンクの個数が前記アップデートする変数ノードの最大次数であることを特徴とする請求項18記載のLDPC復号方法。
- 前記格納された変数ノードのメッセージ及び前記格納されたチェックノード値のうち少なくとも一つは、サイクルごとに予め設定された変数ノードの個数だけアップデートされることを特徴とする請求項15記載のLDPC復号方法。
- 前記復号化動作を終了する段階は、
すべてのチェックノード値の符号値が0以上であることを示す場合に、復号化動作を終了する段階を有し、前記符号値は前記チェックノード値が0以上であるか否かを示すことを特徴とする請求項15記載のLDPC復号方法。 - 前記複数の変数ノード及び複数のチェックノード値のアップデート順序を制御する制御信号を生成する段階
をさらに有することを特徴とする請求項15記載のLDPC復号方法。 - 前記制御信号は、前記複数の変数ノードのアップデート順序を指定する指定信号及びデコーダの終結信号のうちの少なくとも一つを含むことを特徴とする請求項22記載のLDPC復号方法。
- 前記指定信号は、前記複数の変数ノードの次数により前記複数の変数ノードのアップデート順序を決定する信号及び前記エッジの接続形態により前記複数の変数ノードのアップデート順序を決定する信号のうちのいずれか一つを含むことを特徴とする請求項23記載のLDPC復号方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060010263A KR100899738B1 (ko) | 2006-02-02 | 2006-02-02 | 노드 메모리 기반의 ldpc 복호기 및 복호방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007208985A JP2007208985A (ja) | 2007-08-16 |
JP4402699B2 true JP4402699B2 (ja) | 2010-01-20 |
Family
ID=38197586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007021427A Expired - Fee Related JP4402699B2 (ja) | 2006-02-02 | 2007-01-31 | ノードメモリ基盤のldpcデコーダ及び復号方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7886208B2 (ja) |
EP (1) | EP1819054A3 (ja) |
JP (1) | JP4402699B2 (ja) |
KR (1) | KR100899738B1 (ja) |
CN (1) | CN101079639B (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8196025B2 (en) * | 2005-08-03 | 2012-06-05 | Qualcomm Incorporated | Turbo LDPC decoding |
KR101492595B1 (ko) * | 2007-05-21 | 2015-02-11 | 라모트 앳 텔-아비브 유니버시티 리미티드 | 메모리 효율적인 ldpc 디코딩 |
US8181083B2 (en) * | 2007-08-27 | 2012-05-15 | Stmicroelectronics S.R.L. | Methods and architectures for layered decoding of LDPC codes with minimum latency |
JP4487213B2 (ja) * | 2007-10-19 | 2010-06-23 | ソニー株式会社 | 復号装置および方法、並びにプログラム |
JP5333233B2 (ja) | 2007-12-13 | 2013-11-06 | 日本電気株式会社 | 復号装置、データ蓄積装置、データ通信システム、および復号方法 |
KR101434267B1 (ko) * | 2007-12-14 | 2014-08-27 | 삼성전자주식회사 | 통신 시스템에서 신호 수신 장치 및 방법 |
US8296640B2 (en) | 2008-06-20 | 2012-10-23 | Samsung Electronics Co., Ltd. | Method and apparatus for parallel processing multimode LDPC decoder |
US8335979B2 (en) * | 2008-12-08 | 2012-12-18 | Samsung Electronics Co., Ltd. | Contention-free parallel processing multimode LDPC decoder |
KR101206434B1 (ko) | 2008-12-12 | 2012-11-29 | 연세대학교 산학협력단 | 저밀도 패리티 검사 부호를 위한 동적 스케줄링 기법을 이용한 복호 방법 및 그 장치 |
TW201037529A (en) | 2009-03-02 | 2010-10-16 | David Reynolds | Belief propagation processor |
WO2010103757A1 (ja) * | 2009-03-13 | 2010-09-16 | 日本電気株式会社 | 復号装置および復号方法 |
US20110154168A1 (en) * | 2009-12-18 | 2011-06-23 | Electronics And Telecommunications Research Institute | Effective high-speed ldpc encoding method and apparatus using the same |
KR101286858B1 (ko) * | 2009-12-21 | 2013-07-17 | 한국전자통신연구원 | 저밀도 패리티 검사 부호를 위한 고속 복호 방법 |
US8972831B2 (en) | 2010-01-11 | 2015-03-03 | Analog Devices, Inc. | Belief propagation processor |
US9612903B2 (en) * | 2012-10-11 | 2017-04-04 | Micron Technology, Inc. | Updating reliability data with a variable node and check nodes |
KR20150024489A (ko) * | 2013-08-26 | 2015-03-09 | 삼성전자주식회사 | 메모리 시스템에서의 ldpc 디코딩 방법 및 이를 이용한 ldpc 디코더 |
CN105306514A (zh) * | 2014-07-30 | 2016-02-03 | 北京信威通信技术股份有限公司 | 基于Zookeeper的录音文件分布存储方法和系统 |
US9473175B1 (en) * | 2015-02-10 | 2016-10-18 | Microsemi Storage Solutions (U.S.), Inc. | Forward error correction decoder system |
CN106330200B (zh) | 2015-07-09 | 2019-09-10 | 华邦电子股份有限公司 | 执行于通量图形处理器的低密度奇偶校验解码方法 |
CN108370253B (zh) * | 2015-12-24 | 2022-05-03 | 英特尔公司 | 用于低密度奇偶校验解码的混合式调度和基于锁存器的流水线 |
US10548158B2 (en) * | 2016-03-10 | 2020-01-28 | Huawei Technologies Co., Ltd. | Message passing algorithm decoder and methods |
EP3242405B1 (en) * | 2016-05-02 | 2024-02-21 | Université de Bretagne Sud | Non-binary check node processing with pre-sorted input |
KR102589918B1 (ko) * | 2016-07-19 | 2023-10-18 | 삼성전자주식회사 | 저밀도 패리티 체크 디코더 및 그것을 포함하는 저장 장치 |
US10128981B1 (en) * | 2016-08-31 | 2018-11-13 | Marvell International Ltd. | Message-passing decoder with fast convergence and reduced storage |
EP3293885B1 (en) * | 2016-09-09 | 2024-01-03 | Université de Bretagne Sud | Check node processing for syndrome computation in the decoding of non-binary codes, in particular non-binary ldpc codes |
US10141953B2 (en) | 2016-12-14 | 2018-11-27 | Via Technologies, Inc. | Low-density parity-check apparatus and matrix trapping set breaking method |
KR102588969B1 (ko) * | 2019-03-19 | 2023-10-16 | 에스케이하이닉스 주식회사 | 오류 정정 디코더 및 이를 포함하는 메모리 시스템 |
US11088707B2 (en) | 2019-06-29 | 2021-08-10 | Intel Corporation | Low density parity check (LDPC) decoder architecture with check node storage (CNS) or bounded circulant |
US11515891B2 (en) | 2020-12-22 | 2022-11-29 | Intel Corporation | Application of low-density parity-check codes with codeword segmentation |
US11929762B2 (en) | 2021-11-24 | 2024-03-12 | Samsung Electronics Co., Ltd. | Low density parity check decoder and storage device |
KR102511827B1 (ko) * | 2021-11-24 | 2023-03-21 | 삼성전자주식회사 | Ldpc 디코더 및 스토리지 장치 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US283707A (en) * | 1883-08-21 | Machine | ||
US7415079B2 (en) * | 2000-09-12 | 2008-08-19 | Broadcom Corporation | Decoder design adaptable to decode coded signals using min* or max* processing |
US7020829B2 (en) * | 2002-07-03 | 2006-03-28 | Hughes Electronics Corporation | Method and system for decoding low density parity check (LDPC) codes |
KR100543154B1 (ko) * | 2002-07-26 | 2006-01-20 | 휴우즈 일렉트로닉스 코오포레이션 | 저밀도 패리티 검사 코드 생성 방법 및 시스템 |
US7436902B2 (en) * | 2003-06-13 | 2008-10-14 | Broadcom Corporation | Multi-dimensional space Gray code maps for multi-dimensional phase modulation as applied to LDPC (Low Density Parity Check) coded modulation |
JP2005045735A (ja) | 2003-07-25 | 2005-02-17 | Sony Corp | 符号検出装置及び方法、復号装置及び方法、並びに情報処理装置及び方法 |
KR100809619B1 (ko) * | 2003-08-26 | 2008-03-05 | 삼성전자주식회사 | 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법 |
KR20050046471A (ko) * | 2003-11-14 | 2005-05-18 | 삼성전자주식회사 | 저밀도 패러티 검사 부호를 병렬 연접하는 채널부호화/복호화 장치 및 방법 |
CN100472972C (zh) * | 2004-05-03 | 2009-03-25 | 美国博通公司 | 可操作地将ldpc编码信号解码的解码器 |
CN1713530A (zh) | 2004-06-22 | 2005-12-28 | 印芬龙科技股份有限公司 | 解码低密度奇偶校验(ldpc)码字的ldpc解码器 |
US20050283707A1 (en) | 2004-06-22 | 2005-12-22 | Eran Sharon | LDPC decoder for decoding a low-density parity check (LDPC) codewords |
US7516390B2 (en) * | 2005-01-10 | 2009-04-07 | Broadcom Corporation | LDPC (Low Density Parity Check) coding and interleaving implemented in MIMO communication systems |
US7499490B2 (en) * | 2005-06-24 | 2009-03-03 | California Institute Of Technology | Encoders for block-circulant LDPC codes |
-
2006
- 2006-02-02 KR KR1020060010263A patent/KR100899738B1/ko not_active IP Right Cessation
-
2007
- 2007-01-31 JP JP2007021427A patent/JP4402699B2/ja not_active Expired - Fee Related
- 2007-02-02 CN CN2007101288834A patent/CN101079639B/zh active Active
- 2007-02-02 EP EP07101634A patent/EP1819054A3/en not_active Ceased
- 2007-02-02 US US11/702,015 patent/US7886208B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP1819054A3 (en) | 2009-02-25 |
CN101079639B (zh) | 2011-02-09 |
US20070220398A1 (en) | 2007-09-20 |
JP2007208985A (ja) | 2007-08-16 |
EP1819054A2 (en) | 2007-08-15 |
CN101079639A (zh) | 2007-11-28 |
US7886208B2 (en) | 2011-02-08 |
KR20070079513A (ko) | 2007-08-07 |
KR100899738B1 (ko) | 2009-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4402699B2 (ja) | ノードメモリ基盤のldpcデコーダ及び復号方法 | |
Casado et al. | Informed dynamic scheduling for belief-propagation decoding of LDPC codes | |
US9075738B2 (en) | Efficient LDPC codes | |
USRE44421E1 (en) | Decoding apparatus for low-density parity-check codes using sequential decoding, and method thereof | |
US7133853B2 (en) | Methods and apparatus for decoding LDPC codes | |
JP4199279B2 (ja) | 低密度パリティ検査コードの符号化方法 | |
US7454685B2 (en) | Method and apparatus for decoding low density parity check code using united node processing | |
US7774674B2 (en) | LDPC decoder for DVB-S2 decoding | |
CN107370490B (zh) | 结构化ldpc的编码、译码方法及装置 | |
US20070089018A1 (en) | Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including reconfigurable permuting/de-permuting of data values | |
US8091013B2 (en) | Multi-code LDPC (low density parity check) decoder | |
KR20070003294A (ko) | 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치 | |
US20200091933A1 (en) | Iterative decoding with early termination criterion that permits errors in redundancy part | |
US10128869B2 (en) | Efficient convergence in iterative decoding | |
KR101657912B1 (ko) | 비이진 저밀도 패리티 검사 코드의 복호화 방법 | |
Thameur et al. | A survey on decoding schedules of LDPC convolutional codes and associated hardware architectures | |
TWI407703B (zh) | 解碼器 | |
Malema | Low-density parity-check codes: construction and implementation. | |
Oh et al. | Efficient highly-parallel decoder architecture for quasi-cyclic low-density parity-check codes | |
Zhao et al. | A BER performance-aware early termination scheme for layered LDPC decoder | |
Zhu et al. | Memory efficient LDPC code design for high throughput software defined radio (SDR) systems | |
KR20230029168A (ko) | 비이진 저밀도 패리티 검사 코드 디코더, 그것의 동작방법 및 메모리 시스템 | |
趙雄心 | Research on LDPC Decoder Design Methodology for Error-Correcting Performance and Energy-Efficiency | |
Kienle et al. | Joint graph-decoder design of IRA codes on scalable architectures [LDPC codes] | |
Xin et al. | Serial FFT-BP LDPC decoding based on unsymmetrical message transmission |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090602 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090827 |
|
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: 20090929 |
|
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: 20091029 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4402699 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: 20121106 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131106 Year of fee payment: 4 |
|
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 |