JP2010268179A - Ldpc decoding circuit - Google Patents

Ldpc decoding circuit Download PDF

Info

Publication number
JP2010268179A
JP2010268179A JP2009117236A JP2009117236A JP2010268179A JP 2010268179 A JP2010268179 A JP 2010268179A JP 2009117236 A JP2009117236 A JP 2009117236A JP 2009117236 A JP2009117236 A JP 2009117236A JP 2010268179 A JP2010268179 A JP 2010268179A
Authority
JP
Japan
Prior art keywords
memory
check matrix
code
memories
data
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.)
Pending
Application number
JP2009117236A
Other languages
Japanese (ja)
Inventor
Yoshihiko Kakiuchi
仁彦 垣内
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.)
NEC Engineering Ltd
Original Assignee
NEC Engineering Ltd
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 NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP2009117236A priority Critical patent/JP2010268179A/en
Publication of JP2010268179A publication Critical patent/JP2010268179A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To solve the problem of having to hold a large amount of memories for storing estimated posteriori probability data in parallel in order to increase a transfer speed in an LDPC (low density parity check code) decoding circuit. <P>SOLUTION: A memory A and a memory B are memories that correspond to a column 901 in which 1 continuously exists in code parts of an inspection matrix, and are composed of high-speed memories or flip-flops to always receive access. A memory C is a memory corresponding to a column 902 in which 1 exists at random in code parts, and a memory D is a memory corresponding to a parity part 1003 in which 1 exists step-wise, each of them being configured by a normal memory. Thus, the number of used memories is reduced by taking into consideration the characteristic of the inspection matrix to devise a method for storing the estimated posteriori probability data. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明はLDPC復号回路に関する。   The present invention relates to an LDPC decoding circuit.

LDPC(Low Density Parity Check Code)とは、通信などにおいて雑音によって情報が誤ってしまう時に、その誤りを訂正する目的で情報に付加される冗長な符号であり、訂正能力が非常に高いことが特徴である。冗長な符号を付加する装置を符号化装置といい、誤りを訂正する装置を復号化装置という。   LDPC (Low Density Parity Check Code) is a redundant code that is added to information for the purpose of correcting the error when the information is erroneous due to noise in communications, etc. It is. An apparatus for adding redundant codes is called an encoding apparatus, and an apparatus for correcting errors is called a decoding apparatus.

LDPCは、1960年代に提案されたが、そのアルゴリズムを実現するためには、当時としては、大量の記憶境域を持たなくてはならず、あまり実用的ではないとされていた。しかしながら、近年の高集積化や強力な誤り訂正の需要により、注目され始めている。   LDPC was proposed in the 1960s, but at that time, it had to have a large amount of storage space in order to realize its algorithm, and was considered not very practical. However, due to the recent demand for high integration and powerful error correction, it has begun to attract attention.

先ず、LDPCの符号化について説明する。nビットの情報符号の集合をCとし、mビットの検査符号の集合をMとする。通信路に送出する情報をX=(C,M)と定義し、m行,(m+n)列を有する検査行列をHとしたとき、X・H=0となるような集合Mを見つけ出すことができる。Xを算出することを符号化と呼ぶ。   First, LDPC encoding will be described. A set of n-bit information codes is C, and a set of m-bit check codes is M. If the information to be sent to the communication channel is defined as X = (C, M) and the check matrix having m rows and (m + n) columns is H, a set M such that X · H = 0 is found. be able to. The calculation of X is called encoding.

次に、LDPCの復号化について説明する。通信路において、Xを変調した集合をFとした時、雑音などにより、データが壊れて、Fを復調した結果がYとなってしまった場合、その値から誤りを推測して、訂正した後の集合をyとすると、H・y=0となる筈であり、このようなyを見つけることを復号化と呼ぶ。このとき、Y、yは復調後のデータであるため軟判定符号となっている。但し、H・y=0を計算するときには、yは硬判定後の情報で行なう。   Next, LDPC decoding will be described. In the communication channel, when the set that modulates X is F, if the data is corrupted due to noise, etc., and the result of demodulating F becomes Y, after estimating the error from that value and correcting it If y is set to y, H · y = 0, and finding such y is called decoding. At this time, Y and y are soft-decision codes because they are demodulated data. However, when calculating H · y = 0, y is performed with the information after the hard decision.

LDPCの復号化は、推定事後確率データZRを初期値(復調結果Y)から検査行列H(m,m+n)に従って順次に更新していくことにより行なう。この更新の過程において、全要素の値を初期値0とし更新されていく検査行列H(m,m+n)と同サイズの行列L(m,m+n)を使用する。検査行列H(m,m+n)の要素が1に関連する要素について全処理が終了すると、H・y=0のチェックが行なわれ、NGの場合は処理が繰り返される。このようなLDPC符号の復号を回路化する場合は、一般的に、図16に示すような回路構成が採用される。   LDPC decoding is performed by sequentially updating the estimated posterior probability data ZR from the initial value (demodulation result Y) according to the check matrix H (m, m + n). In this updating process, a matrix L (m, m + n) having the same size as the check matrix H (m, m + n) that is updated with the values of all elements as the initial value 0 is used. When all the processes are completed for the elements whose elements of the parity check matrix H (m, m + n) are 1, the check of H · y = 0 is performed, and in the case of NG, the process is repeated. When such LDPC code decoding is circuitized, a circuit configuration as shown in FIG. 16 is generally employed.

推定事後確率データZRは、非常に大きいデータであり、また連続したデータであるため、メモリに格納することができる。この推定事後確率データZRを格納するメモリをZRメモリといい、一般的には1つのアドレスに1つのデータを記憶する。メモリのビット幅は、推定事後確率データZRの量子化ビット数により、1つのアドレスに1つのデータであれば、メモリのビット幅とデータの量子化ビット幅は等価となる。推定事後確率データZRは、1つずつシリアルに読み出すことも理論上は可能であるが、計算速度が非常に低下するため、一般的には、いくつかのデータを一度に読み出す必要が生じる。また、Lの値も同様でLメモリに値を記憶するが、Lメモリは本発明とは直接関係しないので詳細な説明は省略する。   The estimated posterior probability data ZR is very large data and is continuous data, and therefore can be stored in a memory. A memory that stores the estimated posterior probability data ZR is called a ZR memory, and generally stores one data at one address. If the bit width of the memory is one data per address according to the number of quantization bits of the estimated posterior probability data ZR, the memory bit width and the data quantization bit width are equivalent. It is theoretically possible to read the estimated posterior probability data ZR serially one by one, but since the calculation speed is greatly reduced, it is generally necessary to read several data at a time. The value of L is the same, and the value is stored in the L memory. However, since the L memory is not directly related to the present invention, a detailed description is omitted.

ZRメモリは推定事後確率データZRを検査行列H(m,m+n)の列毎に記憶し、Lメモリは行列L(m,m+n)の各要素の値を記憶する。上記処理の過程で、ZRメモリおよびLメモリを読み出して計算し、その結果を再びZRメモリおよびLメモリに格納することを繰り返す。この時、推定事後確率データZRは検査行列の要素の内で1の存在している列の要素を取り出す必要がある。   The ZR memory stores the estimated posterior probability data ZR for each column of the check matrix H (m, m + n), and the L memory stores the value of each element of the matrix L (m, m + n). In the course of the above process, the ZR memory and L memory are read and calculated, and the result is stored again in the ZR memory and L memory. At this time, in the estimated posterior probability data ZR, it is necessary to extract the element of the column in which 1 exists among the elements of the check matrix.

ところで、検査行列H(m,m+n)が膨大な場合、ZRメモリおよびLメモリの記憶容量も膨大となり、全ての情報を1つのメモリに保存すると、その情報の読出し及び書込み処理をシリアルに行うこととなるため処理性能が落ちてしまう。この種の問題に関し、推定事後確率データを複数のメモリに分割して格納するとした従来技術が知られている。   By the way, when the check matrix H (m, m + n) is enormous, the storage capacity of the ZR memory and the L memory also becomes enormous, and when all information is stored in one memory, reading and writing processing of the information is serialized. Since this is done, processing performance falls. With respect to this type of problem, there is known a conventional technique in which estimated posterior probability data is divided and stored in a plurality of memories.

しかし、この技術では単に複数のメモリに分割するとしただけであるため、後述のようにブロック化した検査行列H(m,m+n)において、ランダムに“1”が存在しアクセスを受けないメモリはともかく、連続して“1”が存在し常にアクセスを受けるメモリでは低速な読み書きとなるので、それだけ処理性能が劣化することは避けられないという問題点がある。一方、読み書き速度を向上させようとして、単純に全てのメモリを高速メモリもしくはフリップフロップで構成したり、並列して読み書きできるメモリの数を増やすとコストが嵩むことになる。   However, since this technique simply divides the memory into a plurality of memories, in the check matrix H (m, m + n) that is blocked as will be described later, “1” randomly exists and is not accessed. In any case, since there is a continuous “1” and the memory that is always accessed is read / written at a low speed, there is a problem that the processing performance is inevitably deteriorated. On the other hand, in order to increase the read / write speed, if all the memories are simply configured with high-speed memories or flip-flops, or the number of memories that can be read / written in parallel increases, the cost will increase.

特開2008−278184JP2008-278184

解決しようとする問題点は、常にアクセスを受ける推定事後確率データを記憶するメモリの読み書き速度が遅いということである。   The problem to be solved is that the read / write speed of the memory storing the estimated posterior probability data that is always accessed is slow.

本発明は、推定事後確率データを記憶するメモリの速度の向上を図るため、検査符号の特性に合わせて記憶方式を工夫したことを最も主要な特徴とする。   The main feature of the present invention is that the storage method is devised in accordance with the characteristics of the check code in order to improve the speed of the memory for storing the estimated posterior probability data.

本発明のLDPC復号回路は、高い転送性能を持たせるためにLDPC復号アルゴリズムの回路化を少数のメモリで実現できるという利点がある。その理由は、検査行列の特徴に従って推定事後確率データをメモリに格納する構成としたからである。即ち、検査行列の行単位に処理を行う場合に、その時に必要なデータがメモリから読み易い構成とした。   The LDPC decoding circuit of the present invention has the advantage that the circuitization of the LDPC decoding algorithm can be realized with a small number of memories in order to provide high transfer performance. This is because the estimated posterior probability data is stored in the memory according to the characteristics of the check matrix. That is, when processing is performed in units of rows of the check matrix, the data required at that time is easily read from the memory.

LDPCの一般的な復号アルゴリズム(メイン部)を示すフローチャートFlow chart showing general decoding algorithm (main part) of LDPC LDPCの一般的な復号アルゴリズム(Z計算部)を示すフローチャートFlow chart showing general LDPC decoding algorithm (Z calculator) LDPCの一般的な復号アルゴリズムフロー(L計算部)を示すフローチャートFlow chart showing the general decoding algorithm flow (L calculation part) of LDPC 一般的な検査行列を例示する図Diagram illustrating a general check matrix 検査符号(Quasi-Cyclic LDPC符号)のブロック化を例示する図Diagram illustrating block formation of check code (Quasi-Cyclic LDPC code) ブロック化された検査符号の表示を例示する図Diagram illustrating display of block check code ブロック表示された一般的な検査符号を例示する図Diagram illustrating a general check code displayed in block form 本発明のLDPC復号回路を示す図The figure which shows the LDPC decoding circuit of this invention 検査行列とZRメモリを構成するメモリとの対応関係を示す図The figure which shows the correspondence of a check matrix and the memory which comprises ZR memory メモリAと推定事後確率データZRと行列の対応イメージを示す図Diagram showing the correspondence between memory A, estimated posterior probability data ZR, and matrix メモリCと推定事後確率データZRと行列の対応イメージを示す図Diagram showing the correspondence between memory C, estimated posterior probability data ZR, and matrix 図8をより具体的に示した図A more specific view of FIG. 本発明のLDPC復号回路の動作例を示すタイミングチャートTiming chart showing an operation example of the LDPC decoding circuit of the present invention 他の検査行列とZRメモリを構成するメモリとの対応関係を示す図The figure which shows the correspondence of the other check matrix and the memory which comprises ZR memory 図14に対応するLDPC復号回路の動作例を示すタイミングチャートTiming chart showing an operation example of the LDPC decoding circuit corresponding to FIG. 一般的な復号器の回路構成図Circuit diagram of a general decoder

推定事後確率データを記憶するメモリの読み書き速度を向上するという目的を、コストを抑えつつ実現した。   The purpose of improving the read / write speed of the memory that stores the estimated posterior probability data was realized while suppressing the cost.

先ず、LDPCの復号化の一般的なアルゴリズムについて、図1〜図3により簡単に説明する。このアルゴリズムを実現するための回路構成は、基本的には図16に示したとおりである。検査行列Hはm行、(m+n)列、初期値として、Z(i)=Y(i)、L(j,i)=0とする。但し、j=0〜(m-1)、i=0〜(m+n-1)である(図1のステップS1)。なお、tはトライ回数を表す。   First, a general algorithm for LDPC decoding will be briefly described with reference to FIGS. The circuit configuration for realizing this algorithm is basically as shown in FIG. The parity check matrix H has m rows, (m + n) columns, and Z (i) = Y (i) and L (j, i) = 0 as initial values. However, j = 0 to (m-1) and i = 0 to (m + n-1) (step S1 in FIG. 1). Note that t represents the number of tries.

j=0として検査行列Hの1行目を指定し(ステップS2)、make Z(ステップS3)、次いでをmake L(ステップS4)起動する。これをj=(m-1)まで繰り返し(ステップS5)、H・y=0を確認する(ステップS6)。最終のZRがyである。H・y=0でなく、かつtをカウントアップ(ステップS7)してもトライ回数が最大回数に達していない場合(ステップS8)はステップS2へ戻る。   The first row of the check matrix H is designated as j = 0 (step S2), make Z (step S3), and then make L (step S4) is activated. This is repeated until j = (m−1) (step S5), and H · y = 0 is confirmed (step S6). The final ZR is y. If H · y = 0 is not satisfied, and t is counted up (step S7) and the number of tries has not reached the maximum number (step S8), the process returns to step S2.

図2はmake Zの詳細を示す。i=0として検査行列Hの1列目を指定し(ステップS3-1)、検査行列H(j,i)=1なら(ステップS3-2)、Z(i)=ZR(i)-L(j.i)(ステップS3-3)、検査行列H(j,i)=1でないなら(ステップS3-2)、Z(i)=0(ステップS3-4)という処理をi=(m+n-1)まで繰り返す(ステップS3-5,ステップS3-6)。   FIG. 2 shows the details of make Z. Designate the first column of the parity check matrix H as i = 0 (step S3-1), and if the parity check matrix H (j, i) = 1 (step S3-2), Z (i) = ZR (i) -L (ji) (step S3-3), if the check matrix H (j, i) = 1 is not true (step S3-2), the process Z (i) = 0 (step S3-4) is i = (m + n -1) is repeated (steps S3-5 and S3-6).

図3はmake Lの詳細を示す。i=0として検査行列Hの1列目を指定し(ステップS4-1)、検査行列H(j,i)=1なら(ステップS4-2)、L(j,i)=f(Z,i)およびZR(i)=Z(i)+L(j,i)(ステップS4-3)、検査行列H(j,i)=1でないなら(ステップS4-2)、L=0(ステップS4-4)という処理をi=(m+n-1)まで繰り返す(ステップS4-5,ステップS4-6)。   FIG. 3 shows the details of make L. The first column of the parity check matrix H is designated as i = 0 (step S4-1). If the parity check matrix H (j, i) = 1 (step S4-2), L (j, i) = f (Z, i) and ZR (i) = Z (i) + L (j, i) (step S4-3), if parity check matrix H (j, i) = 1 is not satisfied (step S4-2), L = 0 (step The process of S4-4) is repeated until i = (m + n-1) (steps S4-5 and S4-6).

ここで、Z(0)〜Z(i-1)およびZ(i+1)〜Z(m+n-1)の絶対値の内の最小値をa、Z(0)〜Z(i-1)およびZ(i+1)〜Z(m+n-1)の符合の掛け算結果をbとした場合、f(Z,i)=a・bである。   Here, the minimum value among the absolute values of Z (0) to Z (i-1) and Z (i + 1) to Z (m + n-1) is a, Z (0) to Z (i- When the multiplication result of the sign of 1) and Z (i + 1) to Z (m + n-1) is b, f (Z, i) = a · b.

さて、符号化および復号化の時に使用される検査行列Hの例を図4に示す。図4は説明を単純化するために小規模としているが、検査行列Hの行と列は、とても大きいことがあり、図4のように0と1のみで表現するのは、非常に困難となる。そこで、図5のようにブロック化し、図6のように、その1が存在する位置を示す数字をブロックに割り当てることがある。ZRメモリは推定事後確率データを基本的には検査行列Hの列単位に記憶するが、図5のようにブロック化した場合にはブロック単位に記憶する。   Now, an example of the parity check matrix H used at the time of encoding and decoding is shown in FIG. Although FIG. 4 is made small for simplicity of explanation, the rows and columns of the check matrix H may be very large, and it is very difficult to express only 0 and 1 as shown in FIG. Become. Therefore, there are cases where a block is formed as shown in FIG. 5 and a number indicating the position where the 1 exists is assigned to the block as shown in FIG. The ZR memory stores the estimated posterior probability data basically in units of columns of the check matrix H, but stores them in units of blocks when the blocks are formed as shown in FIG.

図6において、左上隅から右下隅にかけて斜めに規則的に1が並ぶブロックは0、オール0のブロックは−1、その他のブロックは1が割り当てられている。ブロック内の1は規則的に巡回する必要がある。このように表現できる符号をQuasi-Cyclic符号と呼ぶ。また、検査行列の右半分が、図4に示すように、斜めに規則的に1が並ぶ符号をRepeat Accumulate符号と呼び、符号化において有利になるため、一般的に用いられることが多い。   In FIG. 6, 0 is assigned to blocks in which 1 is regularly arranged diagonally from the upper left corner to the lower right corner, −1 is assigned to all 0 blocks, and 1 is assigned to other blocks. The 1 in the block needs to be circulated regularly. A code that can be expressed in this way is called a Quasi-Cyclic code. Also, as shown in FIG. 4, the right half of the parity check matrix is called “Repeat Accumulate code”, which is a code in which 1's are regularly arranged diagonally, and is advantageous in encoding.

LDPCの復号は、その計算量の多さから、回路への実装はとても難しいとされている。最大の問題点は、図3のステップS4-3におけるZRおよびLの情報を全て記憶する必要があり、この記憶のために多くのメモリを利用しなくてはならないということにある。この多くのメモリとは、多くの個数のメモリを使用するということである。その理由は、ZRおよびLが大量であるためである。例えば、一つの数値の要素を8bit、LDPC(2000,1000)において、1が一行辺り10個存在すると、Lは1000×10×8 = 80000bitのデータを記憶しなくてはならず、これを全てフリップフロップで設計してしまうと、回路規模が膨大となる。   LDPC decoding is considered to be very difficult to implement in circuits due to the large amount of computation. The biggest problem is that it is necessary to store all the ZR and L information in step S4-3 in FIG. 3, and a lot of memory must be used for this storage. This much memory means that a large number of memories are used. The reason is that ZR and L are large. For example, 8 bits for one numeric element, LDPC (2000, 1000), if there are 10 1 per line, L must memorize 1000 x 10 x 8 = 80000 bits of data, When designing with flip-flops, the circuit scale becomes enormous.

次に、このデータを全て一つのメモリに記憶するとしても、メモリは、1回のアクセスで、データ幅分のデータしかやりとりできない。しかし、図1〜図3までに記したシリアルアルゴリズムのLDPCでは、ステップS4-3において10個のデータをほぼ同時に必要とするため、並列に読み出せるようにメモリを分割する必要がある。   Next, even if all the data is stored in one memory, the memory can exchange only data corresponding to the data width in one access. However, since the LDPC of the serial algorithm described in FIGS. 1 to 3 requires 10 data almost simultaneously in step S4-3, it is necessary to divide the memory so that it can be read in parallel.

Quasi-Cyclic符号により、ブロック化された場合に列で見ると、最低でもそのブロック分だけメモリが必要となる。もし、例に挙げたLDPC(2000,1000)の符号において、20bit単位でブロック化されたとしても、必要となるメモリは、2000/20=100で100個となり、ASICなどへの実装の妨げとなる。従って、メモリの分割を行わないで、全ての情報を1つのメモリに保存すると、その情報の読出し及び書込み処理をシリアルに行うため処理性能が落ちてしまう。   When a block is formed by the Quasi-Cyclic code, memory is required for at least that block when viewed in a row. Even if the code of LDPC (2000, 1000) given as an example is blocked in units of 20 bits, the required memory will be 100 with 2000/20 = 100, which will hinder implementation on ASIC etc. Become. Accordingly, if all the information is stored in one memory without dividing the memory, the processing performance deteriorates because the information is read and written serially.

本発明のLDPC復号回路は、図16に示したように、ZRメモリに大量のメモリを使用するのではなく、検査行列の特徴から連続してアクセスされない領域を持った列は統合して、図8に示すように、ZRメモリ1-1を構成するメモリの数を減らす。具体的には、図7に示すようなブロック表示の検査行列であった場合、符号部分の列701には常に1があり、パリティ部分702には階段状に1があるので、列701のそれぞれにはメモリもしくはフリップフロップに割り当て、パリティ部分702には1つのメモリを割り当て、符号部分の他の列は全てで他の1つのメモリを割り当てる。なお、図8における「12」等の数字は、大規模な検査行列に対応して、図6における「−1」等の数字に代わるものであって、20x20の行列のパターンを一意に示している。   As shown in FIG. 16, the LDPC decoding circuit according to the present invention does not use a large amount of memory for the ZR memory, but integrates columns having areas that are not continuously accessed from the characteristics of the parity check matrix. As shown in FIG. 8, the number of memories constituting the ZR memory 1-1 is reduced. Specifically, in the case of a parity check matrix of block display as shown in FIG. 7, since the code portion column 701 always has 1 and the parity portion 702 has 1 in a staircase pattern, Is assigned to a memory or flip-flop, one memory is assigned to the parity portion 702, and the other columns in the code portion are all assigned another one memory. Note that the numbers such as “12” in FIG. 8 replace the numbers such as “−1” in FIG. 6 corresponding to the large parity check matrix, and uniquely indicate the pattern of the 20 × 20 matrix. Yes.

本発明により、本来、図7に示すような検査行列では、12列のため最低でも12個のメモリが必要となるところを、2個(列701をフリップフロップに割り当てた場合)もしくは4個に減らすことができて、かつ性能を落とすこともない。   According to the present invention, in the parity check matrix as shown in FIG. 7, the number of places where at least 12 memories are required for 12 columns is reduced to 2 (when column 701 is assigned to a flip-flop) or 4 It can be reduced and performance is not degraded.

図9を参照すると、検査行列とZRメモリ1-1を構成するメモリA〜Dとの対応関係が示されている。図9において、メモリAおよびメモリBは符号部分の内の連続して1が存在している列901に対応するメモリであり、常にアクセスを受けるため高速なメモリもしくはフリップフロップで構成する。メモリCは符号部分の内のランダムに1が存在している列902に対応したメモリ、メモリDは階段状に1が存在しているパリティ部分1003に対応したメモリであり、いずれも通常のメモリで構成する。   Referring to FIG. 9, the correspondence relationship between the parity check matrix and the memories A to D constituting the ZR memory 1-1 is shown. In FIG. 9, a memory A and a memory B are memories corresponding to a column 901 in which 1s continuously exist in the code part, and are constituted by high-speed memories or flip-flops because they are always accessed. The memory C is a memory corresponding to the column 902 in which 1s are randomly present in the code part, and the memory D is a memory corresponding to the parity part 1003 in which 1s are present in steps, both of which are normal memories. Consists of.

図10,図11は、図9を詳細化し、メモリA、メモリCと推定事後確率データZRと行列の対応を示している。図10における単位行列1001は図9における列901を拡大したものである。単位行列1001に対応した推定事後確率データZRは図9に示したイメージのようにメモリAに格納される。同様に、図11における単位行列1101,1102は図9における列902を拡大したものである。単位行列1101,1102に対応した推定事後確率ZRは、図9に示したイメージのようにメモリCに格納される。このように、メモリCには、複数の列の推定事後確率データZRが格納される。よって、単位行列1101と単位行列1102は読出しが排他的となるように構成されていることが肝要である。   10 and 11 detail FIG. 9 and show the correspondence between the memory A, the memory C, the estimated posterior probability data ZR, and the matrix. The unit matrix 1001 in FIG. 10 is an enlargement of the column 901 in FIG. The estimated posterior probability data ZR corresponding to the unit matrix 1001 is stored in the memory A as in the image shown in FIG. Similarly, the unit matrices 1101 and 1102 in FIG. 11 are enlarged views of the column 902 in FIG. The estimated posterior probabilities ZR corresponding to the unit matrices 1101 and 1102 are stored in the memory C as in the image shown in FIG. Thus, the memory C stores the estimated posterior probability data ZR of a plurality of columns. Therefore, it is important that the unit matrix 1101 and the unit matrix 1102 are configured to be read exclusively.

図12は図9を図16に対応する形態で示す。メモリCとメモリDは、常に同じ列を実行するわけではなく、制御回路5により指定された列を実行する。メモリDは、階段状の行列部分のデータを割り当てる部分であるが、図9からも分るとおり、一度読み出した推定事後確率データZRは、次の(行に対する)処理で必ず使用されるため、バッファリングしておくことで、メモリアクセスを減らすことができる。Lメモリ2は、メモリA〜メモリDに対応したLの情報を格納する。制御回路5は各ブロック1-1,2〜4を全て制御する。計算回路3は図1〜図3に示した処理を実行する。   FIG. 12 shows FIG. 9 in a form corresponding to FIG. The memory C and the memory D do not always execute the same column, but execute the column specified by the control circuit 5. The memory D is a part to which the data of the staircase-like matrix part is allocated. However, as can be seen from FIG. 9, the estimated posterior probability data ZR read once is always used in the next process (for the row). By buffering, memory access can be reduced. The L memory 2 stores L information corresponding to the memories A to D. The control circuit 5 controls all the blocks 1-1, 2-4. The calculation circuit 3 executes the processing shown in FIGS.

図12により動作について説明する。メモリA〜メモリDには、Yの値が推定事後確率データZRの初期値として格納されている。制御回路5がメモリA〜メモリDおよびLメモリ2に対して、最初の行を読み出す。前述のとおり、これらのメモリに配置されている推定事後確率データZRは、一度のアクセスにより1行分が読み出せるようになっている。また、Lメモリ2に関しては、1行分の情報を一度のアクセスで読み出せるようにデータが配置されているとする。   The operation will be described with reference to FIG. In the memories A to D, the value of Y is stored as the initial value of the estimated posterior probability data ZR. The control circuit 5 reads the first row from the memory A to the memory D and the L memory 2. As described above, the estimated posterior probability data ZR arranged in these memories can read one row by one access. In addition, regarding the L memory 2, it is assumed that data is arranged so that information for one row can be read by one access.

バッファ4は、前回読み出したメモリDからの推定事後確率データZRを保持するもので、この存在により、メモリDへのアクセスを減らすことが可能となる。横の行を読み出した後、計算回路3により、新しい推定事後確率データZRとLの情報が作成され、再び各メモリに格納される。これを繰り返すことにより、行列の行を最後まで実行し、全ての行の実行が完了した時点で1回の訂正とする。この訂正を数回繰り返すことにより、誤りの訂正を行うことができる。図13は、4行分の実行により1回の訂正をすることを2回繰り返した場合をタイミングチャートで示している。   The buffer 4 holds the estimated posterior probability data ZR from the memory D read out last time, and the presence thereof makes it possible to reduce access to the memory D. After the horizontal row is read, new estimated posterior probability data ZR and L information are created by the calculation circuit 3 and stored again in each memory. By repeating this, the rows of the matrix are executed to the end, and correction is made once when execution of all the rows is completed. By repeating this correction several times, an error can be corrected. FIG. 13 is a timing chart showing a case where one correction is repeated twice by executing four rows.

なお、その基本的構成は上記の通りであるが、図14に示すように、図9とは異なる検査行列に対応するタイミングチャートを図15に示す。図14において、符号部分の内のランダムに1が存在している列1402において、メモリCは、一度に2個の列の推定事後確率データZRをアクセスされる必要が発生する。このため、図15において、メモリCの2回の読出しが完了するまで、他のメモリの読出しを待たせる構成としている。   Although the basic configuration is as described above, as shown in FIG. 14, a timing chart corresponding to a check matrix different from FIG. 9 is shown in FIG. In FIG. 14, in the column 1402 where 1 is randomly present in the code portion, the memory C needs to be accessed with the estimated posterior probability data ZR of two columns at a time. For this reason, in FIG. 15, the reading of the other memory is waited until the two readings of the memory C are completed.

1 ZRメモリ
2 Lメモリ
3 計算回路
4 バッファ
5 制御回路
2-1 ZRメモリ
701 符号部分の列
702 パリティ部分
901 符号部分の列
902 符号部分の列
903 パリティ部分
1001 単位行列
1101 単位行列
1102 単位行列
1401 符号部分の列
1402 符号部分の列
1403 単位行列
1 ZR memory 2 L memory 3 Calculation circuit 4 Buffer 5 Control circuit
2-1 ZR memory
701 Code sequence
702 Parity part
901 Code part sequence
902 Code part sequence
903 Parity part
1001 identity matrix
1101 identity matrix
1102 identity matrix
1401 Code sequence
1402 Code sequence
1403 identity matrix

Claims (3)

低密度パリティコード(LDPC)の情報を検査行列に従いシリアル処理して復号するLDPC復号回路において、
推定事後確率データを記憶するメモリは、前記検査行列のパターンに基づいてブロック化された前記検査行列の符号部分の内で“1”を有するブロックが列に多く存在する箇所に対して高速メモリもしくはフリップフロップメモリで構成し、前記検査行列の符号部分のそれ以外の箇所に対して少なくとも1つのランダムメモリにより構成し、前記検査行列のパリティ符号部に対して他の1つのランダムメモリで構成することを特徴とするLDPC復号回路。
In an LDPC decoding circuit that serially processes and decodes low density parity code (LDPC) information according to a check matrix,
The memory for storing the estimated posterior probability data is a high-speed memory or a high-speed memory for a portion where a number of blocks having “1” exist in a column in the code portion of the check matrix that is blocked based on the pattern of the check matrix It is composed of a flip-flop memory, is composed of at least one random memory for other portions of the code part of the parity check matrix, and is composed of another random memory for the parity code part of the parity check matrix LDPC decoding circuit characterized by the above.
前記ブロック化は、前記検査行列のQuasi-Cyclic 符号とRepeat Accumulate符号により行なわれることを特徴とする請求項1に記載のLDPC復号回路。   2. The LDPC decoding circuit according to claim 1, wherein the blocking is performed by a Quasi-Cyclic code and a Repeat Accumulate code of the parity check matrix. 前記パリティ符号部のパターンが、当該ランダムメモリを一度読み出したデータが次の行に対する処理で必ず使用されるようなものであるときは、前に読み出したデータを保持しておくことを特徴とする請求項1もしくは2に記載のLDPC復号回路。   When the data of the parity code part is such that the data once read from the random memory is always used in the processing for the next row, the previously read data is retained. The LDPC decoding circuit according to claim 1 or 2.
JP2009117236A 2009-05-14 2009-05-14 Ldpc decoding circuit Pending JP2010268179A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009117236A JP2010268179A (en) 2009-05-14 2009-05-14 Ldpc decoding circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009117236A JP2010268179A (en) 2009-05-14 2009-05-14 Ldpc decoding circuit

Publications (1)

Publication Number Publication Date
JP2010268179A true JP2010268179A (en) 2010-11-25

Family

ID=43364805

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009117236A Pending JP2010268179A (en) 2009-05-14 2009-05-14 Ldpc decoding circuit

Country Status (1)

Country Link
JP (1) JP2010268179A (en)

Similar Documents

Publication Publication Date Title
TWI735143B (en) Memory system
US8756479B2 (en) LDPC multi-decoder architectures
JP4038518B2 (en) Method and apparatus for efficiently decoding low density parity check code
JP4602406B2 (en) Method and apparatus for encoding and decoding data
WO2016112857A1 (en) Ldpc code encoder and decoder
JP6960877B2 (en) Memory system
CN112000512B (en) Data restoration method and related device
CN105356968B (en) The method and system of network code based on cyclic permutation matrices
US10090860B2 (en) Memory system using integrated parallel interleaved concatenation
JP2007215089A (en) Decoding apparatus and decoding method
WO2011109084A1 (en) Quasi-cyclic ldpc encoding and decoding for non-integer multiples of circulant size
US20080134008A1 (en) Parallel LDPC Decoder
JPWO2010073922A1 (en) Error correction encoding apparatus, decoding apparatus, encoding method, decoding method, and program thereof
US20070283209A1 (en) Loading the input memory of an ldpc decoder with data for decoding
JP4357561B2 (en) Encoding apparatus and encoding method
JP4819470B2 (en) Decoding device and decoding method
JPH01158698A (en) Semiconductor memory
KR102355082B1 (en) Efficient survivor memory architecture for successive cancellation list decoding of channel polarization codes
WO2010053152A1 (en) Decoding device, data transmitting device having the decoding device, and data storage device
JP2009260692A (en) Decoding apparatus and decoding method
CN116707546A (en) Hardware implementation method and device for quasi-cyclic LDPC decoding
TW201029337A (en) Method for decoding LDPC code and the circuit thereof
JP2010268179A (en) Ldpc decoding circuit
JP2006217072A (en) Turbo decoder and turbo decoding method
CN110113058A (en) Coding and decoding method, device, equipment and computer readable storage medium