KR20140034579A - Apparatus for channel decoding - Google Patents

Apparatus for channel decoding Download PDF

Info

Publication number
KR20140034579A
KR20140034579A KR1020120101097A KR20120101097A KR20140034579A KR 20140034579 A KR20140034579 A KR 20140034579A KR 1020120101097 A KR1020120101097 A KR 1020120101097A KR 20120101097 A KR20120101097 A KR 20120101097A KR 20140034579 A KR20140034579 A KR 20140034579A
Authority
KR
South Korea
Prior art keywords
row
value
column
variable node
calculation unit
Prior art date
Application number
KR1020120101097A
Other languages
Korean (ko)
Inventor
심명섭
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020120101097A priority Critical patent/KR20140034579A/en
Publication of KR20140034579A publication Critical patent/KR20140034579A/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3927Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • H04L1/0053Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables specially adapted for power saving

Abstract

The present invention relates to a channel decoding device. A channel decoding device according to an embodiment of the present invention is a channel decoding device which performs low density parity check and includes: a variable node memory for storing a variable node value; a check node memory; a first calculation unit for calculating a log likelihood ratio for the variable node using the variable node value and check node value; a second calculation unit for calculating the size and sign of the check node based on the log likelihood ratio; a third calculation unit for calculating a check node update value based on the size and symbol of the check node; and a fourth calculation unit for calculating a variable node update value based on the check node update value and log likelihood ratio. The calculation for the log likelihood ratio calculation, the size and sign of the check node are performed for a second row which is the next row of a first row among the low density parity check matrix while the calculation for the check node update value and variable node update value for the first row among the low density parity check matrix. Therefore, the decoding time can be reduced. [Reference numerals] (340) Second calculation unit

Description

채널 복호화 장치{Apparatus for channel decoding}Apparatus for channel decoding

본 발명은 채널 복호화 장치에 관한 것이며, 더욱 상세하게는 복호 시간을 단축할 수 있는 채널 복호화 장치에 관한 것이다.The present invention relates to a channel decoding apparatus, and more particularly, to a channel decoding apparatus capable of shortening a decoding time.

거의 모든 형태의 전자 장치, 통신 장치들은 에러-정정 코드들을 사용한다. 에러 정정 코드들은 중복성을 데이터 스트림에 도입함으로써 이러한 장치들에서 고유의 정보 전송 신뢰도를 보상한다. Almost all forms of electronic and communication devices use error-correcting codes. Error correction codes compensate for the inherent information transmission reliability in such devices by introducing redundancy into the data stream.

한편, 수학적인 에러 정정 기초가 Shannon에 의해서 설정되었다. Shannon은 통신 시스템들의 신호 왜곡이 랜덤한 처리로서 모델링되는 채널의 수학적인 개념을 개발하였다. 가장 기본적인 Shannon의 결과는 Noisy 채널 원리인데, 이는 채널에 대해서 용량, 즉, 그 채널을 통해 정보가 신뢰적으로 전달될 수 있는 최대 속도를 규정하는 수량을 정의한다. On the other hand, the mathematical error correction basis was set by Shannon. Shannon developed the mathematical concept of a channel in which signal distortion in communication systems is modeled as a random process. The most basic Shannon's result is the Noisy channel principle, which defines a quantity for a channel, that is, a quantity that defines the maximum rate at which information can be reliably delivered over that channel.

용량에 근접하는 속도의 신뢰적인 전송은 에러 정정 코드들의 사용을 필요로 한다. 따라서, 에러-정정 코드들이 충분한 신뢰도를 달성하는 동시에 가능한 용량에 근접하도록 설계된다. 에러 정정 코드를 구현하는데 있어서의 복잡성은 에러 정정 코드들의 실질적인 적용에 있어 영향을 미치는 추가적인 요인이다. Reliable transmission at speeds near capacity requires the use of error correction codes. Thus, the error-correcting codes are designed to achieve as close as possible while attaining sufficient reliability. The complexity in implementing the error correction code is an additional factor that affects the practical application of the error correction codes.

저밀도 패리티 검사(low-density partiy-check; LDPC) 부호는, 오류정정부호의 일종으로서 완전한 전송을 보장할 수는 없지만 정보유실 확률을 가능한 원하는 만큼 적게할 수 있다. 이러한 LDPC 부호가 `Shannon limit'에 가장 근접하는 오류정정부호로서,통신 시스템에 활용될 수 있는 매우 우수한 오류정정부호로 재평가되고 있다.Low-density partiy-check (LDPC) codes are a type of error correcting code that can not guarantee complete transmission, but can reduce the probability of information loss as much as desired. The LDPC code is the error correcting code closest to the Shannon limit, and is reevaluated as a very good error correcting code that can be used in a communication system.

본 발명의 목적은, 복호 시간을 단축할 수 있는 채널 복호화 장치를 제공함에 있다.It is an object of the present invention to provide a channel decoding apparatus capable of shortening a decoding time.

상기 목적을 달성하기 위한 본 발명의 실시예에 따른 채널 복호화 장치는, 저밀도 패리티 검사를 수행하는 채널 복호화 장치로서, 변수 노드값을 저장하는 변수 노드 메모리와, 체크 노드 메모리와, 변수 노드값과 체크 노드값을 이용하여, 변수 노드에 대한 로그 우도비를 연산하는 제1 연산 유닛과, 로그 우도비에 기초하여, 체크 노드의 크기값 및 부호를 연산하는 제2 연산 유닛과, 체크 노드의 크기값, 및 부호에 기초하여, 체크 노드 갱신값을 연산하는 제3 연산 유닛과, 체크 노드 갱신값 및 로그 우도비에 기초하여, 변수 노드 갱신값을 연산하는 제4 연산 유닛을 구비하고, 저밀도 패리티 검사 행렬 중 제1 행에 대해, 체크 노드 갱신값의 연산 및 변수 노드 갱신값의 연산이 수행되는 동안, 저밀도 패리터 검사 행렬 중 제1 행의 다음 행인 제2 행에 대해, 로그 우도비 연산, 체크 노드의 크기값 및 부호 연산이 수행된다. A channel decoding apparatus according to an embodiment of the present invention for achieving the above object is a channel decoding apparatus for performing a low density parity check, a variable node memory for storing a variable node value, a check node memory, a variable node value and a check A first calculation unit for calculating a log likelihood ratio for a variable node using the node value, a second calculation unit for calculating a magnitude value and a sign of the check node based on the log likelihood ratio, and a magnitude value of the check node And a third calculating unit for calculating the check node update value based on the symbols and, and a fourth calculating unit for calculating the variable node update value based on the check node update value and the log likelihood ratio, and the low density parity check. For the first row of the matrix, while the operation of the check node update value and the operation of the variable node update value are performed, for the second row which is the next row of the first row of the low density parity check matrix. The log likelihood ratio operation, the check node size value, and the sign operation are performed.

본 발명의 일 실시예에 따른 채널 복호화 장치는, 저밀도 패리티 검사 행렬 중 제1 행에 대해, 체크 노드 갱신값의 연산 및 변수 노드 갱신값의 연산이 수행되는 동안, 저밀도 패리터 검사 행렬 중 제1 행의 다음 행인 제2 행에 대해, 로그 우도비 연산, 체크 노드의 크기값 및 부호 연산이 수행될 수 있다. 이에 의해, 채널 복호화의 복호 시간을 단축할 수 있게 된다.According to an embodiment of the present invention, the channel decoding apparatus may further include performing a check node update value and a variable node update value on a first row of a low density parity check matrix, while performing a first check of the low density parity check matrix. A log likelihood ratio operation, a magnitude value of a check node, and a sign operation may be performed on the second row, which is the next row of the row. As a result, the decoding time of channel decoding can be shortened.

한편, 제2 행에 대한 체크 노드의 크기값 및 부호 연산시, 제1 행과 데이터 의존성이 없는, 열을, 다른 열 보다 더 먼저 처리함으로써, 채널 복호화의 복호 시간을 더욱 단축할 수 있게 된다.On the other hand, when the magnitude value and the sign operation of the check node for the second row are processed, the decoding time of the channel decoding can be further shortened by processing the column having no data dependency on the first row before other columns.

한편, 배럴 시프트와 인버스 배럴 시프트를 한 번에 처리함으로써, 채널 복호화의 복호 시간을 더욱 단축할 수 있게 된다.On the other hand, by processing the barrel shift and the inverse barrel shift at once, the decoding time of the channel decoding can be further shortened.

한편, 갱신된 변수 노드값을, 변수 노드 메모리에 저장하지 않고, 로그 우도비 연산을 위해, 바로 사용할 수 있으므로, 채널 복호화의 복호 시간을 더욱 단축할 수 있게 된다. 또한, 변수 노드 메모리에 대한 억세스(access)가 불필요하게 되어, 채널 복호화 장치 내에서의 전력 소모를 줄일 수 있게 된다. On the other hand, since the updated variable node value can be directly used for the log likelihood ratio calculation without storing it in the variable node memory, the decoding time of channel decoding can be further shortened. In addition, access to the variable node memory becomes unnecessary, thereby reducing power consumption in the channel decoding apparatus.

도 1은 Tanner 그래프를 예시하는 도면이다.
도 2는 도 1의 그래프에 대응하는 LDPC 코드의 일예를 예시한다.
도 3은 본 발명의 일실시예에 따른 채널 복호화 장치를 도시한다.
도 4 내지 도 6은 도 3의 채널 복호화 장치를 설명하기 위해 참조되는 도면이다.
도 7은 본 발명의 다른 실시예에 따른 채널 복호화 장치를 도시한다.
도 8 내지 도 10은 도 7의 채널 복호화 장치를 설명하기 위해 참조되는 도면이다.
도 11은 본 발명의 다른 실시예에 따른 채널 복호화 장치를 도시한다.
1 is a diagram illustrating a Tanner graph.
2 illustrates an example of an LDPC code corresponding to the graph of FIG. 1.
3 shows a channel decoding apparatus according to an embodiment of the present invention.
4 to 6 are views referred to for describing the channel decoding apparatus of FIG. 3.
7 illustrates a channel decoding apparatus according to another embodiment of the present invention.
8 to 10 are diagrams referred to for describing the channel decoding apparatus of FIG. 7.
11 illustrates a channel decoding apparatus according to another embodiment of the present invention.

이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다. Hereinafter, the present invention will be described in detail with reference to the drawings.

이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 단순히 본 명세서 작성의 용이함만이 고려되어 부여되는 것으로서, 그 자체로 특별히 중요한 의미 또는 역할을 부여하는 것은 아니다. 따라서, 상기 "모듈" 및 "부"는 서로 혼용되어 사용될 수도 있다.The suffix "module" and " part "for components used in the following description are given merely for convenience of description, and do not give special significance or role in themselves. Accordingly, the terms "module" and "part" may be used interchangeably.

본 명세서에서는, 채널 복호화를 위해, LDPC 행렬을 사용하여, 저밀도 패리티 검사를 수행한다.In the present specification, a low density parity check is performed using an LDPC matrix for channel decoding.

도 1은 Tanner 그래프를 예시하는 도면이고, 도 2는 도 1의 그래프에 대응하는 LDPC 코드의 일예를 예시한다.1 is a diagram illustrating a Tanner graph, and FIG. 2 illustrates an example of an LDPC code corresponding to the graph of FIG. 1.

저밀도 패리티 검사(Low Density Parity Check, LDPC) 코드들은 도 1에 도시된 그래프(100)와 같이 종종 Tanner 그래프들로 지칭되는 이분 그래프들에 의해서 도시될 수 있다.Low Density Parity Check (LDPC) codes may be shown by bipartite graphs, often referred to as Tanner graphs, such as graph 100 shown in FIG. 1.

Tanner 그래프들에서, 가변 노드들(102)은 코드워드의 비트에 상응하고, 다른 세트의 노드들에서 체크 노드들(106)은 코드를 정의하는 패리티-검사 구속 세트에 상응할 수 있다. In Tanner graphs, variable nodes 102 correspond to a bit of a codeword, and in other sets of nodes, check nodes 106 may correspond to a set of parity-check constraints that define a code.

그래프에서 에지들(104)은 가변 노드들을 체크 노드들에 연결할 수 있다. 가변 노드들 및 체크 노드는 만약 그들이 그래프에서 에지에 의해 연결된다면 이웃들로 지칭된다. 통상적으로는 노드 쌍이 기껏해야 하나의 에지에 의해서 연결된다는 것이 가정된다. LDPC 코드들은 저밀도 패리티 검사 행렬(202)을 사용하여 등가적으로 표현될 수 있다. Edges 104 in the graph can connect variable nodes to check nodes. Variable nodes and check nodes are referred to as neighbors if they are connected by edges in the graph. It is typically assumed that node pairs are connected at most by one edge. LDPC codes may be represented equivalently using low density parity check matrix 202.

도 2는 저밀도 패리티 검사 행렬(H)(202)의 일예를 나타낸다. 이때, 표시된 벡터(x)(208)가, Hx=0인 관계가 있는 경우, 벡터(x)(208)는 에러가 없는 경우에 대응한다.2 shows an example of a low density parity check matrix (H) 202. At this time, when the displayed vector (x) 208 has a relationship where Hx = 0, the vector (x) 208 corresponds to the case where there is no error.

예를 들어, 부호화 장치에서, 소스 메시지와 패리티 검사 비트가 결합된 코드 워드(c)를 전송한다면, 저밀도 패리티 검사 행렬(H)과 코드 워드(c)의 관계는 수학식 1과 같을 수 있다. For example, in the encoding apparatus, if a code word c in which a source message and a parity check bit are combined is transmitted, the relationship between the low density parity check matrix H and the code word c may be expressed by Equation 1 below.

Figure pat00001
Figure pat00001

여기서, H는 저밀도 패리티 검사 행렬을 나타내며, c는 소스 메시지와 패리티 검사 비트가 결합된 코드 워드를 나타낼 수 있다.Here, H may represent a low density parity check matrix, and c may represent a code word in which a source message and a parity check bit are combined.

한편, 부호화 장치에서, 코드 워드(c)를 전송한다면, 채널을 통해, 노이즈 성분(n)이 추가될 수 있으며, 복호화 장치에서는, 노이즈가 부가된 신호(r)이 수신될 수 있다.On the other hand, if the code word (c) is transmitted in the encoding apparatus, the noise component (n) may be added through the channel, and in the decoding apparatus, the signal r to which the noise is added may be received.

Figure pat00002
Figure pat00002

한편, 복호화 장치는, 수신되는 신호(r)로부터, 코드 워드(c) 나아가, 소스 메시지(s)를 구하기 위해, 저밀도 패리티 검사 행렬을 이용한, 연산을 수행한다. 즉, Hc= 0 이므로, 수학식 3과 같은 연산이 성립할 수 있다. On the other hand, the decoding apparatus performs a calculation using a low density parity check matrix to obtain a code word (c) and a source message (s) from the received signal (r). That is, since Hc = 0, the operation shown in Equation 3 can be established.

Figure pat00003
Figure pat00003

한편, 수신되는 신호(r)는, 0과 1의 디지털 신호일 수 있으며, 그 외 0과 1 사이의 분수값일 수 있다.Meanwhile, the received signal r may be a digital signal of 0 and 1, and may be a fractional value between 0 and 1. FIG.

본 발명의 실시예에 따른 채널 복호화 장치는, 저밀도 패리티 검사 행렬을 이용하여, 0과 1 사이의 분수값이 수신되는 경우, 0 인지 1 인지에 대한 확률을 이용하여, 적합한 값을 선택하도록 한다.According to an embodiment of the present invention, when a fractional value between 0 and 1 is received using a low density parity check matrix, the channel decoding apparatus selects an appropriate value by using a probability of 0 or 1.

수신되는 신호(r)은, 이분 그래프(bipartite graph)의 변수 노드에서의 입력 확률을 나타내는데 사용될 수 있다. 그리고, 비트 확률 메시지는 변수 노드에서 체크 노드로 전달되고, 패리티 검사 제약에 따라, 변수 노드에서 합산된다. 이 데이터는 일반적으로, 수학식 4와 같이 정의된 로그 우도비로서 표현될 수 있다.The received signal r can be used to represent an input probability at a variable node of a bipartite graph. The bit probability message is then passed from the variable node to the check node and summed at the variable node according to the parity check constraint. This data can generally be expressed as a log likelihood ratio defined as in equation (4).

Figure pat00004
Figure pat00004

한편, 본 발명의 실시예에 따른, LDPC 코드는, 저밀도 패리티 검사 행렬의 블록 행과 블록 열을 나타내는 매크로 행렬일 수 있다. 즉, 매크로 행렬의 0 엔트리는 ZxZ의 부분 행렬에 대응할 수 있다.Meanwhile, the LDPC code according to the embodiment of the present invention may be a macro matrix representing a block row and a block column of the low density parity check matrix. That is, the zero entry of the macro matrix may correspond to the partial matrix of ZxZ.

한편, 입력 노드에 대한 확률값의 갱신을 위한, 반복 디코딩의 방법으로서, 본 발명의 실시예에서는, 계층화된 디코딩을 수행하는 것으로 한다. 이하의 수학식 5 내지 9은, 계층화된 디코딩시에 사용된다.On the other hand, as an iterative decoding method for updating a probability value for an input node, in the embodiment of the present invention, layered decoding is performed. Equations 5 to 9 below are used at the time of layered decoding.

Figure pat00005
Figure pat00005

수학식 5는 체크섬 부분 집합의 각각의 행 m 의 각각의 열 j에 대해 행 마다의 로그 우도비(Log Likelihood Ratio)를 나타낼 수 있다. 즉, 변수 노드에 대한 로그 우도비(L(qmj))를 나타낼 수 있다.Equation 5 may represent a log likelihood ratio for each row for each column j of each row m of the checksum subset. That is, the log likelihood ratio L (q mj ) for the variable node may be represented.

여기서, Rmj 는 체크 노드값을 나타내며, L(qj)는 변수 노드값을 나타낸다.Where R mj Denotes a check node value, and L (q j ) denotes a variable node value.

Figure pat00006
Figure pat00006

수학식 6은, 로그 우도비(L(qmn))에 기초하여, 연산되는 체크 노드의 크기값(Amj)을 나타낼 수 있다. Equation 6 may represent the size value A mj of the check node to be calculated based on the log likelihood ratio L (q mn ).

Figure pat00007
Figure pat00007

수학식 7은, 로그 우도비(L(qmn))에 기초하여, 연산되는 체크 노드의 부호(Smj)를 나타낼 수 있다. Equation 7 may represent the sign S mj of the check node to be calculated based on the log likelihood ratio L (q mn ).

Figure pat00008
Figure pat00008

수학식 8은, 체크 노드의 크기값(Amj), 및 부호(Smj)에 기초하여, 연산되는 체크 노드 갱신값(Rmj)을 나타낼 수 있다. Equation 8 may represent the check node update value R mj that is calculated based on the size value A mj of the check node and the sign S mj .

Figure pat00009
Figure pat00009

수학식 9는, 체크 노드 갱신값(Rmj) 및 로그 우도비(L(qmj))에 기초하여, 연산되는 변수 노드 갱신값(L(qj))을 나타낼 수 있다. 이때, 열(j)에 대해, 변수 노드값이 갱신될 수 있다.Equation 9 may represent the variable node update value L (q j ) calculated based on the check node update value R mj and the log likelihood ratio L (q mj ). At this time, for the row j, the variable node value may be updated.

한편, 이러한, 수학식 5 내지 9에 의한 연산에 의해, 복호화가 수행된 경우, 에러가 없는 지 여부는 다음의 수학식 10에 의해 판정 가능하다.On the other hand, when decoding is performed by the operation according to the equations (5) to (9), whether or not there is an error can be determined by the following equation (10).

Figure pat00010
Figure pat00010

즉, Hr=0인지 확인하여, 해당하는 경우, 적합한 디코딩이 수행된 것으로 판단할 수 있다.That is, it may be determined whether Hr = 0, and if appropriate, it may be determined that proper decoding has been performed.

이하에서는, 본 발명의 실시예에 따른 채널 복호화 장치를 도면을 참조하여 기술한다.Hereinafter, a channel decoding apparatus according to an embodiment of the present invention will be described with reference to the drawings.

도 3은 본 발명의 일실시예에 따른 채널 복호화 장치를 도시하며, 도 4 내지 도 6은 도 3의 채널 복호화 장치를 설명하기 위해 참조되는 도면이다.3 is a diagram illustrating a channel decoding apparatus according to an embodiment of the present invention, and FIGS. 4 to 6 are views referred to for describing the channel decoding apparatus of FIG. 3.

도면을 참조하면, 채널 복호화 장치(300)는, 변수 노드 메모리(310), 배럴 시프터(315), 체크 노드 메모리(320), 제1 리커버리 유닛(323), 제1 연산 유닛(330), 제2 연산 유닛(340), 제3 연산 유닛(350), 제2 리커버리 유닛(353), 제4 연산 유닛(360), 역 배럴 시프터(365), 및 버퍼(370)를 구비할 수 있다.Referring to the drawing, the channel decoding apparatus 300 includes a variable node memory 310, a barrel shifter 315, a check node memory 320, a first recovery unit 323, a first calculation unit 330, and a first node. The second calculation unit 340, the third calculation unit 350, the second recovery unit 353, the fourth calculation unit 360, the inverse barrel shifter 365, and the buffer 370 may be provided.

상술한 바와 같이, 계층화된 디코딩을 수행하는 것으로 한다. 상술한 수학식 5 내지 9은, 계층화된 디코딩시에 사용된다.As described above, it is assumed that layered decoding is performed. Equations 5 to 9 described above are used at the time of layered decoding.

변수 노드 메모리(310)는, 수학식 5의 변수 노드값(L(qj)) 또는 수학식 9의 변수 노드 갱신값(L(qj))을 저장할 수 있다.The variable node memory 310 may store the variable node value L (q j ) of Equation 5 or the variable node update value L (q j ) of Equation 9.

배럴 시프터(barrel shifter)(315)는, 변수 노드 메모리(310)에서 출력되는, 변수 노드값(L(qj))이 제1 연산 유닛(330)에서 연산가능하도록 비트 시프트(bit shift)를 수행한다.The barrel shifter 315 performs a bit shift such that the variable node value L (q j ) output from the variable node memory 310 is operable in the first calculation unit 330. To perform.

체크 노드 메모리(320)는, 수학식 6의 체크 노드의 크기값(Amj)과, 수학식 7의 체크 노드의 부호(Smj), 그리고, 크기값과 부호에 대한 위치 정보를 저장할 수 있다. The check node memory 320 may store the size value A mj of the check node of Equation 6, the sign S mj of the check node of Equation 7, and position information about the size value and the sign. .

제1 리커버리 유닛(323)은, 체크 노드의 크기값(Amj)과, 수학식 7의 체크 노드의 부호(Smj), 그리고 위치 정보를 이용하여, 해당하는 저밀도 패리티 검사 행렬의 행 m의 각각의 열 j에 대한, 체크 노드값(Rmj)을 출력한다.The first recovery unit 323 uses the size value A mj of the check node, the sign S mj of the check node of Equation 7, and the position information to determine the row m of the corresponding low density parity check matrix. For each column j, the check node value R mj is output.

한편, 체크 노드 메모리(320)가, 체크 노드값(Rmj)이 아닌, 체크 노드의 크기값(Amj) 중 가장 작은 값과 그 위치, 그리고, 그 다음 작은 값과, 체크 노드의 부호(Smj)만을 저장함으로써, 메모리를 효율적으로 사용할 수 있게 된다.On the other hand, the check node memory 320 is not the check node value R mj but the smallest value and the position of the check node size value A mj , the next small value, and the sign of the check node ( By storing only S mj ), the memory can be used efficiently.

제1 연산 유닛(330)은, 수학식 5의 연산을 수행할 수 있다. 즉, 저밀도 패리티 검사 행렬의 행 m의 각각의 열 j에 대해, 행 마다의 로그 우도비(Log Likelihood Ratio)를 연산할 수 있다. The first calculation unit 330 may perform the calculation of Equation 5. That is, for each column j of the rows m of the low density parity check matrix, a log likelihood ratio for each row can be calculated.

특히, 제1 연산 유닛(330)은, 배럴 시프터(barrel shifter)(315)로부터 비트 시프트된, 변수 노드값(L(qj))과, 제1 리커버리 유닛(323)으로부터의 체크 노드값(Rmj)을 이용하여, 로그 우도비(L(qmj))를 연산할 수 있다. In particular, the first calculation unit 330 includes the variable node value L (q j ), which is bit shifted from the barrel shifter 315, and the check node value from the first recovery unit 323 ( R mj ) can be used to calculate the log likelihood ratio L (q mj ).

제2 연산 유닛(340)은, 수학식 6의 연산 및 수학식 7의 연산을 수행할 수 있다. 즉, 제1 연산 유닛(330)에서 연산된 로그 우도비(L(qmn))에 기초하여, 체크 노드의 크기값(Amj), 및 체크 노드의 부호(Smj)를 각각 연산할 수 있다. The second operation unit 340 may perform the operation of Equation 6 and the operation of Equation 7. That is, based on the log likelihood ratio L (q mn ) calculated in the first calculation unit 330, the magnitude value A mj of the check node and the sign S mj of the check node can be calculated, respectively. have.

한편, 제2 연산 유닛(340)은, 수학식 6의 연산 및 수학식 7의 연산 수행을 위해, xor 비트 연산과 최소값(min)을 찾는 연산을 수행할 수 있다.Meanwhile, the second operation unit 340 may perform an operation for searching for the xor bit operation and the minimum value min to perform the operation of Equation 6 and the operation of Equation 7.

제2 연산 유닛(340)에서, 체크 노드의 크기값(Amj), 및 체크 노드의 부호(Smj)는, 각각 체크 노드 메모리(320)와, 제3 연산 유닛(350)으로 제공될 수 있다. In the second calculation unit 340, the magnitude value A mj of the check node and the sign S mj of the check node may be provided to the check node memory 320 and the third calculation unit 350, respectively. have.

한편, 제1 연산 유닛(330)과 제2 연산 유닛(340)은, 체크 노드 프로세싱 유닛(미도시)으로서, 하나의 유닛으로 구성될 수도 있다.Meanwhile, the first calculation unit 330 and the second calculation unit 340 may be configured as one unit as a check node processing unit (not shown).

제3 연산 유닛(350)은, 수학식 8의 연산을 수행할 수 있다. 즉, 체크 노드의 크기값(Amj), 및 부호(Smj)에 기초하여, 체크 노드 갱신값(Rmj)을 연산할 수 있다. The third calculation unit 350 may perform the calculation of Equation 8. That is, the check node update value R mj can be calculated based on the magnitude value A mj and the sign S mj of the check node.

한편, 제3 연산 유닛(350)은, 정규화 유닛(353)과, 제2 리커버리 유닛(356)을 포함할 수 있다.The third calculation unit 350 may include a normalization unit 353 and a second recovery unit 356.

정규화 유닛(normalization unit)(353)은, 제2 연산 유닛(340)으로부터의 체크 노드의 크기값(Amj), 및 부호(Smj)에 기초하여, 정규화(normalization)를 수행할 수 있다.The normalization unit 353 may perform normalization based on the magnitude value A mj and the sign S mj of the check node from the second calculation unit 340.

제2 리커버리 유닛(356)은, 정규화된 체크 노드의 크기값(Amj), 및 부호(Smj)에 기초하여, 해당하는 저밀도 패리티 검사 행렬의 행 m의 각각의 열 j에 대한, 체크 노드값(Rmj)을 출력한다.The second recovery unit 356 checks for each column j of the row m of the corresponding low density parity check matrix based on the size value A mj and the sign S mj of the normalized check node. Output the value R mj .

제3 연산 유닛(350)에서 연산된 체크 노드 갱신값(Rmj)은 제4 연산 유닛(360)으로 제공될 수 있다.The check node update value R mj calculated in the third calculation unit 350 may be provided to the fourth calculation unit 360.

제4 연산 유닛(360)은, 수학식 9의 연산을 수행할 수 있다. 즉, 체크 노드 갱신값(Rmj) 및 로그 우도비(L(qmj))에 기초하여, 변수 노드 갱신값(L(qj))을 연산할 수 있다.The fourth calculation unit 360 may perform the calculation of Equation 9. That is, the variable node update value L (q j ) can be calculated based on the check node update value R mj and the log likelihood ratio L (q mj ).

버퍼(370)는, 제1 연산 유닛(330)과 제4 연산 유닛(360) 사이에서 배치되며, 제1 연산 유닛(330)에서 연산된, 저밀도 패리티 검사 행렬의 소정 행(row)에 대한 로그 우도비를 저장할 수 있다. The buffer 370 is disposed between the first calculation unit 330 and the fourth calculation unit 360, and logs for a predetermined row of the low density parity check matrix calculated at the first calculation unit 330. Can save the likelihood ratio.

특히, 버퍼(370)는, 제1 연산 유닛(330) 및 제2 연산 유닛(340)이, 저밀도 패리티 검사 행렬의 제2 행에 대한, 로그 우도비(L(qmj)) 연산, 체크 노드의 크기값(Amj) 연산, 체크 노드의 부호(Smj) 연산을 수행하는 동안, 제4 연산 유닛(360)에, 저밀도 패리티 검사 행렬의 제1 행에 대한 로그 우도비(L(qmj))를 제공할 수 있다.In particular, the buffer 370 includes a log likelihood ratio L (q mj ) operation for the second row of the low-density parity check matrix, and a check node in which the first calculation unit 330 and the second calculation unit 340 operate. The log likelihood ratio L (q mj) for the first row of the low-density parity check matrix is transmitted to the fourth calculating unit 360 while performing the magnitude value A mj and the sign node S mj of the check node. ))

이에 따라, 제4 연산 유닛(360)은, 버퍼(370)로부터 수신한 제1 행에 대한 로그 우도비(L(qmj)) 를 이용하여, 제1 행에 대한, 변수 노드 갱신값(L(qj))을 연산할 수 있다.Accordingly, the fourth calculation unit 360 uses the log likelihood ratio L (q mj ) for the first row received from the buffer 370, and the variable node update value L for the first row. (q j )) can be calculated.

한편, 제4 연산 유닛(360)에서 연산된 변수 노드 갱신값(L(qj))은, 역 배럴 시프터(inverse barrel shifter)(365)에 제공될 수 있다.Meanwhile, the variable node update value L (q j ) calculated by the fourth calculation unit 360 may be provided to an inverse barrel shifter 365.

역 배럴 시프터(inverse barrel shifter)(365)는, 변수 노드 메모리(310)에 변수 노드 갱신값(L(qj))을 저장하기 위해, 배럴 시프터(barrel shifter)(315)에서 비트 시프트된 것을 고려하여, 역으로 비트 시프트 시킨다. 이에 출력되는, 역 배럴 시프트된 변수 노드 갱신값(L(qj))은 변수 노드 메모리(310)로 제공될 수 있다. 이에 따라, 변수 노드 메모리(310)는, 업데이트된 변수 노드 갱신값(L(qj))을 저장할 수 있다. Inverse barrel shifter 365 is a bit shifted in barrel shifter 315 to store variable node update value L (q j ) in variable node memory 310. Consider, bit shift in reverse. The inverse barrel shifted variable node update value L (q j ), which is output thereto, may be provided to the variable node memory 310. Accordingly, the variable node memory 310 may store the updated variable node update value L (q j ).

한편, 제3 연산 유닛(350)과 제4 연산 유닛(360)은, 변수 노드 프로세싱 유닛(미도시)으로서, 하나의 유닛으로 구성될 수도 있다.Meanwhile, the third calculation unit 350 and the fourth calculation unit 360 may be configured as one unit as a variable node processing unit (not shown).

도 4는 본 발명의 실시예에 따른 채널 복호화 장치에서 사용 가능한 저밀도 패리티 검사 행렬의 일예를 예시한다.4 illustrates an example of a low density parity check matrix that can be used in a channel decoding apparatus according to an embodiment of the present invention.

도 4의 저밀도 패리티 검사 행렬(400)은, 본 발명의 실시예에 따른, 계층 복호화가 가능한 저밀도 패리티 검사 행렬일 수 있다.The low density parity check matrix 400 of FIG. 4 may be a low density parity check matrix capable of hierarchical decoding according to an embodiment of the present invention.

한편, 도 4의 저밀도 패리티 검사 행렬의 코드 워드 블럭 길이(codeword block length)는 1296 비트(bit)이고, 서브 블록 사이즈(subblock size)는 54 bit일 수 있다.Meanwhile, the codeword block length of the low density parity check matrix of FIG. 4 may be 1296 bits, and the subblock size may be 54 bits.

한편, 본 발명의 실시예에서는, 채널 복호화의 복호 시간을 단축하기 위해, 종래의 저밀도 패리티 검사 행렬 중 제1 행에 대한 연산 완료 후, 저밀도 패리티 검사 행렬 중 제2 행에 대한 연산을 수행하는 것과 차별화하여, 저밀도 패리티 검사 행렬 중 제1 행(410)에 대한, 체크 노드 갱신값의 연산 및 변수 노드 갱신값의 연산이 수행되는 동안, 저밀도 패리터 검사 행렬 중 제1 행(410)의 다음 행인 제2 행(420)에 대해, 로그 우도비 연산, 체크 노드의 크기값 및 부호 연산이 수행하도록 한다.On the other hand, in the embodiment of the present invention, in order to shorten the decoding time of the channel decoding, after performing the operation on the first row of the conventional low density parity check matrix, performing the operation on the second row of the low density parity check matrix; By differentiating, while the operation of the check node update value and the operation of the variable node update value are performed on the first row 410 of the low density parity check matrix, the next row of the first row 410 of the low density parity check matrix is For the second row 420, log likelihood ratio operations, check node size values, and sign operations are performed.

즉, 상술한 저밀도 패리터 검사 행렬 중 제1 행(410)에 대한, 체크 노드 갱신값의 연산 및 변수 노드 갱신값의 연산을 수행함과 동시에, 저밀도 패리터 검사 행렬 중 제1 행(410)의 다음 행인 제2 행(420)에 대해, 로그 우도비 연산, 체크 노드의 크기값 및 부호 연산을 수행한다.That is, the check node update value and the variable node update value are performed on the first row 410 of the above-described low-density parity check matrix, and the first row 410 of the low-density parity check matrix is performed. A log likelihood ratio operation, a magnitude value of a check node, and a sign operation are performed on the second row 420 which is the next row.

도 5는, 종래의 연산 방법과 본 발명의 실시예에 따른 연산 방법을 간략히 비교하는 도면이다. 5 is a view for briefly comparing a conventional calculation method with a calculation method according to an embodiment of the present invention.

도 5(a)는, 종래의 연산 방법으로서, '1a'는, 저밀도 패리터 검사 행렬 중 제1 행(410)에 대한, 수학식 5 내지 7의 연산을 나타내며, '1b'는, 제1 행(410)에 대한, 수학식 8 내지 9의 연산을 나타낸다. 다시, '2a'는, 제2 행(420)에 대한, 수학식 5 내지 7의 연산을 나타내며, '2b'는, 제2 행(420)에 대한, 수학식 8 내지 9의 연산을 나타낸다. Fig. 5 (a) shows a conventional calculation method, in which '1a' indicates the calculation of the equations (5) to (7) for the first row 410 of the low density parity check matrix, and '1b' indicates the first. The operations of equations (8) through (9) for row 410 are shown. Again, '2a' represents an operation of equations 5 to 7 for the second row 420, and '2b' represents an operation of equations 8 to 9 for the second row 420.

도 5(a)에서는, 시간 순서대로, 제1 행(410)에 대한, 수학식 5 내지 7의 연산이 수행된 후, 제1 행(410)에 대한, 수학식 8 내지 9의 연산이 수행되고, 그 후, 제2 행(420)에 대한, 수학식 5 내지 7의 연산이 수행되고, 다시 제2 행(420)에 대한, 수학식 8 내지 9의 연산이 수행되는 것을 알 수 있다.In FIG. 5A, after the operations of Equations 5 to 7 are performed on the first row 410 in time order, the operations of Equations 8 to 9 are performed on the first row 410. Then, it can be seen that the operations of Equations 5 to 7 are performed on the second row 420, and the operations of Equations 8 to 9 are performed again on the second row 420.

도 5(b)는 본 발명의 실시예에 따른 연산 방법, 또는 채널 복호화 장치의 스케줄링 방법으로서, 제1 행(410)에 대한, 수학식 5 내지 7의 연산이 수행된 후, 제1 행(410)에 대한, 수학식 8 내지 9의 연산이 수행되면서, 동시에, 제2 행(420)에 대한, 수학식 5 내지 7의 연산이 수행되고, 그 후, 제2 행(420)에 대한, 수학식 8 내지 9의 연산이 수행되면서, 동시에, 제3 행에 대한, 수학식 5 내지 7의 연산이 수행되는 것을 알 수 있다.5B is a calculation method according to an embodiment of the present invention or a scheduling method of a channel decoding apparatus. After the calculations of Equations 5 to 7 are performed on the first row 410, the first row ( With respect to 410, the operations of Equations 8-9 are performed, and at the same time, the operations of Equations 5-7 are performed on the second row 420, and then, for the second row 420, While the operations of Equations 8 to 9 are performed, it can be seen that the operations of Equations 5 to 7 are performed on the third row at the same time.

이러한 방식에 의하면, 도 5(a)의 방식에 비해, 적어도 25% 이상의 채널 복호화의 복호 시간을 단축할 수 있게 된다.According to this method, it is possible to shorten the decoding time of channel decoding of at least 25% or more as compared to the method of FIG. 5 (a).

한편, 본 발명의 다른 실시예에 따르면, 채널 복호화의 복호 시간을 단축 하기 위해, 저밀도 패리티 검사 행렬 중 각 행에 대한 데이터 연산시, 이전 행과 데이터 의존성이 없는 소정 열(column)에 대해, 다른 열 보다 더 먼저 처리거나, 다음 행과 데이터 의존성이 있는 소정 열(column)에 대해, 다른 열 보다 더 먼저 처리하는 것도 가능하다.On the other hand, according to another embodiment of the present invention, in order to shorten the decoding time of the channel decoding, when a data operation for each row of the low-density parity check matrix, for a predetermined column having no data dependency on the previous row, It is also possible to process before a column, or for a certain column with data dependencies on the next row, before other columns.

도 6의 저밀도 패리티 검사 행렬(400) 중 제2 행(420)을 살펴보면, 제1 열, 제5 열, 제9 열, 제14 열은, 각각 해당 엔트리가 '50', '48', '13', '0'의 값을 갖는 것을 알 수 있다. Referring to the second row 420 of the low-density parity check matrix 400 of FIG. 6, the entries of the first column, the fifth column, the ninth column, and the fourteenth column are '50', '48', and ' It can be seen that it has a value of 13 ',' 0 '.

특히, 제2 행(420)의 제1 열, 제5 열, 제9 열, 제14 열은, 제1 행의 제1 열, 제5 열, 제9 열, 제14 열이 각각 소정 값들('40', '22', '43', '0')을 가지므로, 데이터 의존성이 있는 것을 알 수 있다.In particular, the first column, the fifth column, the ninth column, and the fourteenth column of the second row 420 have predetermined values (the first column, the fifth column, the ninth column, and the fourteenth column, respectively). '40', '22', '43', and '0'), it can be seen that there is a data dependency.

한편, 제2 행(420)의 제2 열, 제6 열, 제11 열, 제15열은, 각각 해당 엔트리가 '1', '35', '30', '0'의 값을 가지나, 제1 행의 제1 열, 제5 열, 제9 열, 제14 열이 해당 값이 없으므로, 데이터 의존성이 없는 것을 알 수 있다.Meanwhile, the second, sixth, eleventh, and fifteenth columns of the second row 420 each have a value of '1', '35', '30', and '0'. Since the first column, the fifth column, the ninth column, and the fourteenth column of the first row do not have corresponding values, it can be seen that there is no data dependency.

한편, 도 5(b)와 같이, 제1 행(410)에 대한, 수학식 8 내지 9의 연산이 수행되면서, 동시에, 제2 행(420)에 대한, 수학식 5 내지 7의 연산이 수행되는 경우, 제2 행(420)의 제1 열, 제5 열, 제9 열, 제14 열은, 제1 행과 데이터 의존성이 있으며, 제2 행(420)의 제2 열, 제6 열, 제11 열, 제15열은 제1 행과 데이터 의존성이 없으므로, 제2 행(420)의 제2 열, 제6 열, 제11 열, 제15열에 대한, 수학식 5 내지 7의 연산이, 제2 행(420)의 제1 열, 제5 열, 제9 열, 제14 열에 대한 수학식 5 내지 7의 연산 보다, 더 먼저 수행되는 것이 바람직하다. 이에 따라, 데이터 연산 시의 오류를 방지할 수 있게 된다.Meanwhile, as illustrated in FIG. 5B, the calculations of Equations 8 to 9 are performed on the first row 410, and at the same time, the calculations of Equations 5 to 7 are performed on the second row 420. , The first column, the fifth column, the ninth column, and the fourteenth column of the second row 420 have data dependency on the first row, and the second column and the sixth column of the second row 420. , Since the eleventh column and the fifteenth column have no data dependency on the first row, the calculations of Equations 5 to 7 for the second, sixth, eleventh, and fifteenth columns of the second row 420 are not performed. For example, the calculation may be performed earlier than the operations of Equations 5 to 7 on the first, fifth, ninth, and fourteenth columns of the second row 420. This makes it possible to prevent an error in data operation.

즉, 제1 연산 유닛(330)은, 제2 행에 대한 로그 우도비를 연산시, 제1 행과 데이터 의존성이 없는, 제2 행의 제2 열, 제6 열, 제11 열, 제15 열에 대해, 제2 행의 다른 열 보다 더 먼저 처리할 수 있다. 즉, 제2 행의 제2 열, 제6 열, 제11 열, 제15 열, 그리고, 제1 열, 제5 열, 제9 열, 제14 열 순서로, 로그 우도비를 연산할 수 있다.That is, the first calculation unit 330, when calculating the log likelihood ratio for the second row, has no data dependency on the first row, and the second, sixth, eleventh, and fifteenth columns of the second row. For columns, you can process them earlier than the other columns in the second row. That is, the log likelihood ratio may be calculated in the order of the second column, the sixth column, the eleventh column, the fifteenth column, and the first column, the fifth column, the ninth column, and the fourteenth column of the second row. .

또한, 제2 연산 유닛(340)은, 제2 행에 대한 체크 노드의 크기값 및 부호 연산시, 제1 행과 데이터 의존성이 없는, 제2 행의 제2 열, 제6 열, 제11 열, 제15열에 대해, 제2 행의 다른 열 보다 더 먼저 처리할 수 있다. 즉, 제2 행의 제2 열, 제6 열, 제11 열, 제15 열, 그리고, 제1 열, 제5 열, 제9 열, 제14 열 순서로, 체크 노드의 크기값 및 부호를 연산할 수 있다.In addition, the second calculation unit 340 includes the second column, the sixth column, and the eleventh column of the second row, in which there is no data dependency on the first row when the magnitude value and the sign calculation of the check node for the second row are performed. For the fifteenth column, we can process it earlier than the other columns in the second row. That is, in order of the second column, the sixth column, the eleventh column, the fifteenth column, and the first column, the fifth column, the ninth column, and the fourteenth column of the second row, Can be calculated.

한편, 도 5(b)와 같이, 제1 행(410)에 대한, 수학식 8 내지 9의 연산이 수행되면서, 동시에, 제2 행(420)에 대한, 수학식 5 내지 7의 연산이 수행되는 경우, 제1 행(410)의 제1 열, 제5 열, 제9 열, 제14 열은, 제2 행(420)과 데이터 의존성이 있고, 제1 행(410)의 제7 열, 제8 열, 제13 열은, 제2 행(420)과 데이터 의존성이 없으므로, 제1 행(410)의 제1 열, 제5 열, 제9 열, 제14 열에 대한, 수학식 8 내지 9의 연산이, 제1 행(410)의 제7 열, 제8 열, 제13 열에 대한 수학식 8 내지 9의 연산 보다, 더 먼저 수행되는 것이 바람직하다. 이에 따라, 데이터 연산 시의 오류를 방지할 수 있게 된다.Meanwhile, as illustrated in FIG. 5B, the calculations of Equations 8 to 9 are performed on the first row 410, and at the same time, the calculations of Equations 5 to 7 are performed on the second row 420. , The first column, the fifth column, the ninth column, and the fourteenth column of the first row 410 have data dependency on the second row 420, the seventh column of the first row 410, Since the eighth and thirteenth columns have no data dependency on the second row 420, Equations 8 to 9 of the first, fifth, ninth, and fourteenth columns of the first row 410 are shown. Is preferably performed earlier than the operations of Equations 8 to 9 for the seventh, eighth, and thirteenth columns of the first row 410. This makes it possible to prevent an error in data operation.

즉, 제3 연산 유닛(350)은, 제1 행에 대한 체크 노드 갱신값 연산시, 제2 행과 데이터 의존성이 있는, 제1 행(410)의 제1 열, 제5 열, 제9 열, 제14 열에 대해, 제1 행의 다른 열 보다 더 먼저 처리할 수 있다. 즉, 제1 행(410)의 제1 열, 제5 열, 제9 열, 제14 열, 그리고, 제7 열, 제8 열, 제13 열 순서로, 체크 노드 갱신값을 연산할 수 있다.That is, the third calculation unit 350 may perform the first column, fifth column, and ninth column of the first row 410 having data dependency on the second row when calculating the check node update value for the first row. For the fourteenth column, processing may occur earlier than the other columns in the first row. That is, the check node update value may be calculated in the order of the first, fifth, ninth, and fourteenth columns, and the seventh, eighth, and thirteenth columns of the first row 410. .

또한, 제4 연산 유닛(360)은, 제1 행에 대한 변수 노드 갱신값 연산시, 제2 행과 데이터 의존성이 있는, 제1 행(410)의 제1 열, 제5 열, 제9 열, 제14 열에 대해, 제1 행의 다른 열 보다 더 먼저 처리할 수 있다. 즉, 제1 행(410)의 제1 열, 제5 열, 제9 열, 제14 열, 그리고, 제7 열, 제8 열, 제13 열 순서로, 변수 노드 갱신값을 연산할 수 있다. In addition, the fourth calculation unit 360 may include the first column, the fifth column, and the ninth column of the first row 410 having data dependency on the second row when calculating the variable node update value for the first row. For the fourteenth column, processing may occur earlier than the other columns in the first row. That is, the variable node update value may be calculated in the order of the first, fifth, ninth, and fourteenth columns, and the seventh, eighth, and thirteenth columns of the first row 410. .

도 7은 본 발명의 다른 실시예에 따른 채널 복호화 장치를 도시하고, 도 8 내지 도 10은 도 7의 채널 복호화 장치를 설명하기 위해 참조되는 도면이다.FIG. 7 illustrates a channel decoding apparatus according to another embodiment of the present invention, and FIGS. 8 to 10 are diagrams for explaining the channel decoding apparatus of FIG. 7.

도면을 참조하면, 도 7의 채널 복호화 장치(700)는, 도 3의 채널 복호화 장치(300)와 유사하나, 다만, 역 배럴 시프터(inverse barrel shifter)(365)가 생략된 것에 그 차이가 있다.Referring to the drawings, the channel decoding apparatus 700 of FIG. 7 is similar to the channel decoding apparatus 300 of FIG. 3, except that an inverse barrel shifter 365 is omitted. .

이를 위해, 도 7의 배럴 시프터(315)는, 시프트 값은 다음의 수학식 11과 같이 조정되는 것이 바람직하다.To this end, the barrel shifter 315 of FIG. 7 preferably has a shift value adjusted as in Equation 11 below.

Figure pat00011
Figure pat00011

여기서, BSa는 조정된 배럴 시프트 값이며, BSc는 현재 배럴 시프트 값이며, BSp는 이전 배럴 시프트 값이며, %는 모듈로(modulo) 연산을 나타내며, Z는 저밀도 패리티 검사 행렬의 서브 블록 사이즈를 나타낼 수 있다.Where BSa is the adjusted barrel shift value, BSc is the current barrel shift value, BSp is the previous barrel shift value,% represents the modulo operation, and Z represents the subblock size of the low density parity check matrix. Can be.

도 8에 예시되는 저밀도 패리티 검사 행렬(400)의, 제1 행 제5 열과 제2 행 제5 열 영역(815)을 살펴보면, BSc는 48 이며, BSp는 22 이며, Z는 54bit 라면, BSa는 26임을 알 수 있다. 이에 따라, 조정된 배럴 시프트 값은 26이 될 수 있다.Looking at the first row fifth column and second row fifth column region 815 of the low density parity check matrix 400 illustrated in FIG. 8, if BSc is 48, BSp is 22, and Z is 54bit, BSa is It can be seen that 26. Accordingly, the adjusted barrel shift value can be 26.

한편, 도 8의 제1 열 영역(805), 제5 열 영역(815), 제9 열 영역(825), 제14 열 영역(845)은, 제1 행과 제2 행 간에, 서로 데이터 의존성을 가지는 것을 예시한다.Meanwhile, the first column region 805, the fifth column region 815, the ninth column region 825, and the fourteenth column region 845 of FIG. 8 have data dependency on each other between the first row and the second row. Example of having a.

한편, 도 8의 제1행 및 제2 행의, 제7 열 영역(820), 제8 열 영역(830), 제13 열 영역(840)은, 제1 행과 제2 행 간에 서로, 데이터 의존성이 없는 것을 예시한다.On the other hand, the seventh column area 820, the eighth column area 830, and the thirteenth column area 840 of the first row and the second row of FIG. 8 are each other between the first row and the second row. Illustrates no dependencies.

이에 따라, 상술한 바와 같이, 저밀도 패리티 검사 행렬 중 각 행에 대한 데이터 연산시, 이전 행과 데이터 의존성이 없는 소정 열(column)에 대해, 다른 열 보다 더 먼저 처리거나, 다음 행과 데이터 의존성이 있는 소정 열(column)에 대해, 다른 열 보다 더 먼저 처리하는 것도 가능하다.Accordingly, as described above, when a data operation is performed on each row of the low density parity check matrix, a predetermined column having no data dependency on the previous row is processed before other columns, or the next row and data dependency For certain columns, it is also possible to process them earlier than the other columns.

한편, 도 9는, 버퍼 사용 없이, 각 행 별로 수학식 5 내지 수학식 7의 연산을 수행하고, 그 후 수학식 8 내지 수학식 9의 연산을 수행하는 경우의, 복호화 장치 내의, 유닛 별 동작 스케줄링을 예시한다.On the other hand, Figure 9 is a unit-by-unit operation in the decoding apparatus, in the case of performing the operation of the equations (5) to (7) for each row, and then performing the operation of the equations (8) to (9) without using a buffer Illustrate scheduling.

세로축은, 클럭(clock)을 의미하며, 가로축의 VNM.RE는 변수 노드 메모리에 대한 read enable 를 의미하며, VNM.RA는 변수 노드 메모리에 대한 read address 를 의미하며, B는 배럴 시프터의 동작을 의미하며, cal L(qmj)는, 제1 연산 유닛(330)에서의 로그 우도비(L(qmj)) 연산 동작을 의미하며, xor는 제2 연산 유닛(340)에서의 체크 노드의 크기값(Amj), 및 체크 노드의 부호(Smj) 연산 동작을 의미하며, cal L(qj)는, 제4 연산 유닛(360)에서의 변수 노드 갱신값(L(qj)) 연산 동작을 의미하며, IB는 역 배럴 시프터(365)의 동작을 의미하며, VNM.WE는 체크 노드 메모리에 대한 write enable 상태를 의미하며, VNM.WA는 변수 노드 메모리에 대한 write address 상태를 의미한다.The vertical axis represents the clock, the horizontal axis VNM.RE means read enable for the variable node memory, the VNM.RA means read address for the variable node memory, and B represents the operation of the barrel shifter. Cal L (q mj ) denotes a log likelihood ratio L (q mj ) calculation operation in the first calculation unit 330, and xor denotes a check node of the second calculation unit 340. A magnitude value A mj and a sign S mj arithmetic operation of the check node, and cal L (qj) is a variable node update value L (q j ) operation in the fourth arithmetic unit 360. IB means operation of the inverse barrel shifter 365, VNM.WE means write enable state for the check node memory, and VNM.WA means write address state for the variable node memory. .

VNM.RE 내지 VNM.WA의 값이 '-1'인 경우, 해당 유닛은 동작하지 않으며, 그 외 다른 값을 가지는 경우, 해당 유닛이 동작하는 것으로 한다.If the value of VNM.RE to VNM.WA is '-1', the corresponding unit does not operate. If the value has any other value, the corresponding unit operates.

제1 클럭에서 제7 클럭까지, VNM.RE는 '1'값을 가질 수 있으며, 이에 따라, VNM.RA는 제1 행에 대한, 제1 열, 제5 열, 제7 열, 제8 열, 제9 열, 제13 열, 제14 열에 대해, 독출(read)할 수 있다. 즉, 변수 노드 메모리(310)가, 제1 클럭에서 제7 클럭까지, 각각 제1 행에 대한, 제1 열, 제5 열, 제7 열, 제8 열, 제9 열, 제13 열, 제14 열에 대한 값을 출력할 수 있다. From the first clock to the seventh clock, VNM.RE may have a value of '1', such that VNM.RA may have the first, fifth, seventh, and eighth columns for the first row. The ninth column, the thirteenth column, and the fourteenth column may be read. That is, the variable node memory 310 has the first column, the fifth column, the seventh column, the eighth column, the ninth column, the thirteenth column, for the first row, from the first clock to the seventh clock, respectively. A value for column 14 may be output.

도 9의 제1 영역(910)은, 제1 연산 유닛(330)에서 제1 행의 제1 열, 제5 열, 제7 열, 제8 열, 제9 열, 제13 열, 제14 열에 대한, 로그 우도비(L(qmj)) 연산을 수행하는 것을 나타낸다.The first region 910 of FIG. 9 is located in the first, fifth, seventh, eighth, ninth, thirteenth, and fourteenth columns of the first row in the first calculation unit 330. To perform a log likelihood ratio (L (q mj )) operation.

도 9의 제2 영역(920)은, 제4 연산 유닛(360)에서 제1 행의 제1 열, 제5 열, 제7 열, 제8 열, 제9 열, 제13 열, 제14 열에 대한, 변수 노드 갱신값(L(qj)) 연산을 수행하는 것을 나타낸다. The second region 920 of FIG. 9 is located in the first, fifth, seventh, eighth, ninth, thirteenth, and fourteenth columns of the first row in the fourth calculation unit 360. For a variable node update value L (q j ).

도 9의 제2 영역(920)에 해당하는 시간 동안, 도 9의 제3 영역(925)을 살펴보면, 제1 연산 유닛(330)이 동작하지 않는 것을 알 수 있다. Looking at the third region 925 of FIG. 9 during the time corresponding to the second region 920 of FIG. 9, it can be seen that the first calculation unit 330 does not operate.

그리고, 제1 연산 유닛(330)은, 도 9의 제4 영역(930)에 해당하는 시간 동안에, 제2 행의 제1 열, 제2 열, 제5 열, 제6 열, 제9 열, 제11 열, 제14 열, 제15 열에 대한, 로그 우도비(L(qmj)) 연산을 수행하는 것을 나타낸다.In addition, during the time corresponding to the fourth region 930 of FIG. 9, the first calculation unit 330 may include the first column, the second column, the fifth column, the sixth column, the ninth column, A log likelihood ratio L (q mj ) operation is performed on the eleventh, fourteenth, and fifteenth columns.

즉, 도 9는 도 5(a)와 같이, 시간 순서대로, 제1 행(410)에 대한, 수학식 5 내지 7의 연산이 수행된 후, 제1 행(410)에 대한, 수학식 8 내지 9의 연산이 수행되고, 그 후, 제2 행(420)에 대한, 수학식 5 내지 7의 연산이 수행되고, 다시 제2 행(420)에 대한, 수학식 8 내지 9의 연산이 수행되는 것을 알 수 있다.That is, FIG. 9 shows Equation 8 for the first row 410 after the operations of Equations 5 to 7 are performed on the first row 410 in the order of time, as shown in FIG. 5 (a). To 9 are performed, and then the operations of Equations 5 to 7 are performed on the second row 420, and again the operations of Equations 8 to 9 are performed on the second row 420. It can be seen that.

한편, 도 10은, 도 7의 복호화 장치 내의, 유닛 별 동작 스케줄링을 예시한다.FIG. 10 exemplifies operation scheduling for each unit in the decoding apparatus of FIG.

살펴보면, 도 9와 달리, 가로축에, BUF.WE 내지 BUF.RA가 더 추가된 것을 알 수 있다. Looking at it, it can be seen that, unlike FIG. 9, BUF.WE to BUF.RA are further added to the horizontal axis.

BUF.WE는 버퍼 메모리에 대한 write enable 를 의미하며, BUF.WA는 버퍼 메모리에 대한 write address를 의미하며, BUF.RE는 버퍼 메모리에 대한 read enable 를 의미하며, BUF.RA는 버퍼 메모리에 대한 read address 를 의미한다. BUF.WE stands for write enable for buffer memory, BUF.WA stands for write address for buffer memory, BUF.RE stands for read enable for buffer memory, and BUF.RA stands for buffer memory. It means read address.

제1 클럭에서 제7 클럭까지, VNM.RE는 '1'값을 가질 수 있으며, 이에 따라, VNM.RA는 제1 행에 대한, 제1 열, 제5 열, 제7 열, 제8 열, 제9 열, 제13 열, 제14 열에 대해, 독출(read)할 수 있다. From the first clock to the seventh clock, VNM.RE may have a value of '1', such that VNM.RA may have the first, fifth, seventh, and eighth columns for the first row. The ninth column, the thirteenth column, and the fourteenth column may be read.

이때, 상술한 바와 같이, 제2 행에 대한 데이터 의존성이 없는, 열에 대해, 연산을 먼저 수행하기 위해, 변수 노드 메모리(310)에서 출력되는 순서를 변경할 수 있다.In this case, as described above, the order of outputting from the variable node memory 310 may be changed in order to perform an operation on a column having no data dependency on the second row.

제1 행의 제8 열, 제7 열, 제14 열이, 제1 행의 이전 행에 해당하는 제12 행과의 데이터 의존성이 없으므로, 먼저 출력되고, 그 이후, 제12 행과의 데이터 의존성이 있는, 제1 행의 제1 열, 제5 열, 제9 열, 제13 열이, 출력되는 것이 가능하다.The eighth, seventh, and fourteenth columns of the first row are outputted first because there is no data dependency with the twelfth row corresponding to the previous row of the first row, and thereafter, the data dependency with the twelfth row. It is possible that the first column, the fifth column, the ninth column, and the thirteenth column of the first row are present.

즉, 변수 노드 메모리(310)가, 제1 클럭에서 제7 클럭까지, 각각 제1 행에 대한, 제8 열, 제7 열, 제14 열, 그리고, 제1 열, 제5 열, 제9 열, 제13 열에 대한 값을, 순서대로 출력할 수 있다. That is, the variable node memory 310 has the eighth, seventh, and fourteenth columns, and the first, fifth, and ninth columns, for the first row, from the first clock to the seventh clock, respectively. The values for the column and the thirteenth column can be output in order.

한편, 배럴 시프터(315)는, 변수 노드 메모리(310) 보다 1 클럭 이후에, 즉, 제2 클럭에서 제8 클럭까지, 제1 행에 대한, 제8 열, 제7 열, 제14 열, 그리고, 제1 열, 제5 열, 제9 열, 제13 열의 각각의 엔트리 값을 출력할 수 있다.On the other hand, the barrel shifter 315 is one clock after the variable node memory 310, that is, from the second clock to the eighth clock, for the first row, the eighth column, the seventh column, the fourteenth column, The entry values of the first, fifth, ninth, and thirteenth columns may be output.

이때, 상술한 수학식 11과 같이, 역 배럴 시프터가 배치되지 않은 점을 고려하여, 조정된 배럴 시프트 값을 출력하는 것이 가능하다. 이때, 이전 행의 배럴 시프트 값이 존재하지 않으므로, 결국, 제1 행에 대한, 제8 열, 제7 열, 제14 열, 그리고, 제1 열, 제5 열, 제9 열, 제13 열의 각각의 엔트리 값을 그대로 출력할 수 있다.At this time, it is possible to output the adjusted barrel shift value in consideration of the fact that the inverse barrel shifter is not arranged, as in the above equation (11). At this time, since the barrel shift value of the previous row does not exist, eventually, the eighth column, the seventh column, the fourteenth column, and the first, fifth, ninth, and thirteenth columns of the first row. Each entry value can be printed as it is.

다음, 제1 연산 유닛(330)은, 배럴 시프터(315) 보다 2 클럭 이후에, 즉, 제4 클럭에서 제10 클럭까지, 제1 행의 각 열에 대해 로그 우도비(L(qmj)) 연산을 수행할 수 있다.Next, the first calculation unit 330 has a log likelihood ratio L (q mj ) for each column of the first row two clocks later than the barrel shifter 315, that is, from the fourth clock to the tenth clock. You can perform the operation.

도 10의 제1 영역(1010)은, 제1 연산 유닛(330)에서 제1 행의 제1 열, 제5 열, 제7 열, 제8 열, 제9 열, 제13 열, 제14 열에 대한, 로그 우도비(L(qmj)) 연산을 수행하는 것을 나타낸다.The first region 1010 of FIG. 10 is located in the first, fifth, seventh, eighth, ninth, thirteenth, and fourteenth columns of the first row in the first calculation unit 330. To perform a log likelihood ratio (L (q mj )) operation.

이때, 상술한 바와 같이, 제12 행(제1 행의 이전 행에 해당)에 대한 데이터 의존성이 없는, 제1 행의 제8 열, 제7 열, 제14 열에 대한 영역(1015)에 대해, 로그 우도비(L(qmj)) 연산이 더 먼저 수행되고, 그 이후, 제12 행에 대한 데이터 의존성이 있는, 제1 행의 제1 열, 제5 열, 제9 열, 제13 열에 대한, 로그 우도비(L(qmj)) 연산이 수행될 수 있다. At this time, as described above, for the region 1015 for the eighth, seventh, and fourteenth columns of the first row, which has no data dependency on the twelfth row (corresponding to the previous row of the first row), The log likelihood ratio (L (q mj )) operation is performed earlier, and thereafter, for the first, fifth, ninth, and thirteenth columns of the first row, which has a data dependency on the twelfth row. , Log likelihood ratio L (q mj ) may be performed.

다음, 제2 연산 유닛(340)은, 제1 연산 유닛(330) 보다 1 클럭 이후에, 즉, 제5 클럭에서 제11 클럭까지, 제1 행의 각 열에 대해, 체크 노드의 크기값(Amj), 및 부호(Smj) 연산을 수행할 수 있다.Next, the second calculation unit 340 has a magnitude value A of the check node for each column of the first row one clock after the first calculation unit 330, that is, from the fifth clock to the eleventh clock. mj ) and a sign S mj can be performed.

한편, 버퍼(370)는, 제1 연산 유닛(330)에서 출력되는 로그 우도비(L(qmj))를 저장하기 위해, 제2 연산 유닛(340)과 동일한 시점에 동작할 수 있다. 즉, 제5 클럭에서 제11 클럭까지, BUF.WE는 '1'값을 가질 수 있으며, 이에 따라, BUF.WA는 제1 행에 대한, 제8 열, 제7 열, 제14 열, 그리고, 제1 열, 제5 열, 제9 열, 제13 열의 각각에 에 대해, 기록(write)할 수 있다. Meanwhile, the buffer 370 may operate at the same time as the second calculation unit 340 to store the log likelihood ratio L (q mj ) output from the first calculation unit 330. That is, from the fifth clock to the eleventh clock, BUF.WE can have a value of '1', whereby BUF.WA can be used for eighth, seventh, fourteenth, and The first column, the fifth column, the ninth column, and the thirteenth column can be written.

이렇게 하여, 제1 행에 대한, 수학식 5 내지 수학식 7에 대한 연산이 종료될 수 있다.In this way, the operation for Equations 5 to 7 for the first row can be ended.

다음, 제2 행에 대한, 수학식 5 내지 수학식 7에 대한 연산을 수행하기 위해, 제9 클럭에서 제16 클럭까지, VNM.RE는 '1'값을 가질 수 있으며, 이에 따라, VNM.RA는 제2 행에 대한, 제1 열, 제2 열, 제5 열, 제6 열, 제9 열, 제11 열, 제14 열, 제15열에 대해, 독출(read)할 수 있다. Next, VNM.RE may have a value of '1' from the ninth clock to the sixteenth clock in order to perform an operation on Equations 5 to 7 on the second row, and thus, VNM. The RA may read for the first row, the second column, the fifth column, the sixth column, the ninth column, the eleventh column, the fourteenth column, and the fifteenth column for the second row.

이때, 상술한 바와 같이, 제1 행에 대한 데이터 의존성이 없는, 열에 대해, 연산을 먼저 수행하기 위해, 변수 노드 메모리(310)에서 출력되는 순서를 변경할 수 있다.In this case, as described above, the order of outputting from the variable node memory 310 may be changed in order to perform an operation on a column having no data dependency on the first row.

제2 행의 제2 열, 제6 열, 제11 열, 제15열이, 제1 행과의 데이터 의존성이 없으므로, 먼저 출력되고, 그 이후, 제1 행과의 데이터 의존성이 있는, 제2 행의 제1 열, 제5 열, 제9 열, 제14 열이 출력되는 것이 가능하다.The second column, the sixth column, the eleventh column, and the fifteenth column of the second row are outputted first because there is no data dependency with the first row, and thereafter, with a second data dependency with the first row. It is possible that the first, fifth, ninth, and fourteenth columns of a row are output.

즉, 변수 노드 메모리(310)가, 제9 클럭에서 제16 클럭까지, 각각 제2 행의 제2 열, 제6 열, 제11 열, 제15열, 그리고, 제1 열, 제5 열, 제9 열, 제14 열에 대한 값을, 순서대로 출력할 수 있다. That is, the variable node memory 310 stores the second column, the sixth column, the eleventh column, the fifteenth column, and the first column, the fifth column, in the second row from the ninth clock to the sixteenth clock, respectively. The values for the ninth column and the fourteenth column can be output in this order.

한편, 배럴 시프터(315)는, 변수 노드 메모리(310) 보다 1 클럭 이후에, 즉, 제10 클럭에서 제17 클럭까지, 제2 행의 제2 열, 제6 열, 제11 열, 제15열, 그리고, 제1 열, 제5 열, 제9 열, 제14 열의 각각의 엔트리 값을 출력할 수 있다.On the other hand, the barrel shifter 315 is one clock after the variable node memory 310, that is, from the tenth clock to the seventeenth clock, the second, sixth, eleventh, and fifteenth rows of the second row. The entry values of the columns and the first, fifth, ninth, and fourteenth columns can be output.

이때, 상술한 수학식 11과 같이, 역 배럴 시프터가 배치되지 않은 점을 고려하여, 조정된 배럴 시프트 값을 출력하는 것이 가능하다. At this time, it is possible to output the adjusted barrel shift value in consideration of the fact that the inverse barrel shifter is not arranged, as in the above equation (11).

이전 행의 배럴 시프트 값이 존재하지 않는, 제2 행의 제2 열, 제6 열, 제11 열, 제15열은, 각각의 엔트리 값("1', '35', '30', '0')을 그대로 출력할 수 있다.The second, sixth, eleventh, and fifteenth columns of the second row, where the barrel shift values of the previous row do not exist, are the respective entry values ("1", "35", "30", " 0 ') can be printed as is.

한편, 이전 행의 배럴 시프트 값이 존재하는, 제2 행의 제1 열, 제5 열, 제9 열, 제14 열은, 상술한 수학식 11에 따라 조정된 배럴 시프트 값("10', '26', '24', '0')을 각각 출력할 수 있다.On the other hand, the first column, the fifth column, the ninth column, and the fourteenth column of the second row, in which the barrel shift values of the previous row exist, are adjusted by the above-described equation (11). '26', '24', and '0') can be output respectively.

다음, 제1 연산 유닛(330)은, 배럴 시프터(315) 보다 2 클럭 이후에, 즉, 제12 클럭에서 제19 클럭까지, 제2 행의 각 열에 대해 로그 우도비(L(qmj)) 연산을 수행할 수 있다.Next, the first calculation unit 330 has a log likelihood ratio L (q mj ) for each column of the second row two clocks after the barrel shifter 315, that is, from the twelfth clock to the nineteenth clock. You can perform the operation.

도 10의 제2 영역(1015)은, 제1 연산 유닛(330)에서 제2 행의 제2 열, 제6 열, 제11 열, 제15열, 그리고, 제1 열, 제5 열, 제9 열, 제14 열에 대한, 로그 우도비(L(qmj)) 연산을 수행하는 것을 나타낸다.The second region 1015 of FIG. 10 includes the second, sixth, eleventh, and fifteenth columns, and the first, fifth, and fifth columns of the second row in the first calculation unit 330. The log likelihood ratio L (q mj ) operation is performed on the 9th and 14th columns.

다음, 제2 연산 유닛(340)은, 제1 연산 유닛(330) 보다 1 클럭 이후에, 즉, 제13 클럭에서 제20 클럭까지, 제2 행의 각 열에 대해, 체크 노드의 크기값(Amj), 및 부호(Smj) 연산을 수행할 수 있다.Next, the second calculation unit 340 has a magnitude value A of the check node for each column of the second row one clock after the first calculation unit 330, that is, from the thirteenth clock to the twentieth clock. mj ) and a sign S mj can be performed.

한편, 버퍼(370)는, 제1 연산 유닛(330)에서 출력되는 로그 우도비(L(qmj))를 저장하기 위해, 제2 연산 유닛(340)과 동일한 시점에 동작할 수 있다. 즉, 제13 클럭에서 제19 클럭까지, BUF.WE는 '1'값을 가질 수 있으며, 이에 따라, BUF.WA는 제2 행의 제2 열, 제6 열, 제11 열, 제15열, 그리고, 제1 열, 제5 열, 제9 열, 제14 열에 대해, 기록(write)할 수 있다. Meanwhile, the buffer 370 may operate at the same time as the second calculation unit 340 to store the log likelihood ratio L (q mj ) output from the first calculation unit 330. That is, from the thirteenth clock to the nineteenth clock, the BUF.WE may have a value of '1', and accordingly, the BUF.WA may have the second, sixth, eleventh, and fifteenth columns of the second row. The first column, the fifth column, the ninth column, and the fourteenth column can be written.

한편, 버퍼(370)의 제2 행에 대한 기록에 앞서, 즉, 1 클럭 전에, 버퍼(370)로부터 이전에 저장된 제1 행에 대한 로그 우도비(L(qmj))가 출력될 수 있다.Meanwhile, the log likelihood ratio L (q mj ) for the first row previously stored from the buffer 370 may be output before the writing of the second row of the buffer 370, that is, one clock. .

즉, 제12 클럭에서 제18 클럭까지, BUF.RE는 '1'값을 가질 수 있으며, 이에 따라, BUF.RA는 제1 행의 제1 열, 제5 열, 제7 열, 제8 열, 제9 열, 제13 열, 제14 열에 대해, 독출(read)할 수 있다. That is, from the twelfth clock to the eighteenth clock, the BUF.RE may have a value of '1', and accordingly, the BUF.RA is the first column, the fifth column, the seventh column, and the eighth column of the first row. The ninth column, the thirteenth column, and the fourteenth column may be read.

이때, 버퍼(370)에서 제4 연산 유닛(360)으로의 출력 순서는, 제2 행과의 데이터 의존성이 있는 제1 행의 제1 열, 제5 열, 제9 열, 제14 열에 대한 로그 우도비(L(qmj))를 먼저 출력하며, 제2 행과의 데이터 의존성이 없는, 제1 행의 제7 열, 제8 열, 제13 열에 대한 로그 우도비(L(qmj))를 이후에 출력하는 것이 가능하다.At this time, the output order from the buffer 370 to the fourth operation unit 360 is a log for the first column, the fifth column, the ninth column, and the fourteenth column of the first row having the data dependency with the second row. likelihood ratio (L (q mj)) the first output, and second there is no data dependency between the second row and the seventh column in the first row and the eighth column, the 13 log-likelihood ratio (L (q mj)) for the columns Can be output later.

이에 따라, 제4 연산 유닛(360)은, 버퍼(370) 출력 동작 이후, 즉 제13 클럭에서 제19 클럭까지, 제1 행의 각 열에 대해 제1 행의 제1 열, 제5 열, 제7 열, 제8 열, 제9 열, 제13 열, 제14 열에 대한, 변수 노드 갱신값(L(qj))을 연산할 수 있다.Accordingly, the fourth operation unit 360 may perform the first column, the fifth column, and the first row of the first row for each column of the first row after the buffer 370 output operation, that is, from the thirteenth clock to the nineteenth clock. The variable node update value L (q j ) can be calculated for the seventh, eighth, ninth, thirteenth, and fourteenth columns.

도 10의 제3 영역(1020)은, 제4 연산 유닛(360)에서 제1 행의 제1 열, 제5 열, 제7 열, 제8 열, 제9 열, 제13 열, 제14 열에 대한, 변수 노드 갱신값(L(qj))을 연산하는 것을 나타낸다.The third region 1020 of FIG. 10 is connected to the first, fifth, seventh, eighth, ninth, thirteenth, and fourteenth columns of the first row in the fourth calculation unit 360. To compute the variable node update value L (q j ).

이렇게 하여, 도 5(b)와 같이, 제2 행에 대한, 수학식 5 내지 수학식 7에 대한 연산이 수행되면서, 동시에, 제1 행에 대한 수학식 8 내지 수학식 9에 대한 연산이 수행될 수 있다. In this way, as shown in FIG. 5 (b), while the operations on the equations 5 to 7 are performed on the second row, the operations on the equations 8 to 9 on the first row are performed at the same time. Can be.

이와 유사하게, 그 후, 제2 행(420)에 대한, 수학식 8 내지 9의 연산이 수행되면서, 동시에, 제3 행에 대한, 수학식 5 내지 7의 연산이 수행되는 것을 알 수 있다. 이러한 방식에 의하면, 도 9의 스케줄링 방식에 비해, 적어도 25% 이상의 채널 복호화의 복호 시간을 단축할 수 있게 된다.Similarly, it can then be seen that the operations of Equations 8-9 on the second row 420 are performed, while at the same time the operations of Equations 5-7 on the third row are performed. According to this method, it is possible to shorten the decoding time of at least 25% or more of channel decoding as compared to the scheduling method of FIG.

도 11은 본 발명의 다른 실시예에 따른 채널 복호화 장치를 도시한다. 11 illustrates a channel decoding apparatus according to another embodiment of the present invention.

도면을 참조하면, 도 11의 채널 복호화 장치(1100)는, 도 7의 채널 복호화 장치(700)와 유사하나, 다만, 변수 노드 메모리(310)와 배럴 시프터(315) 사이에, 멀티플렉서(multiplexer)(312)가 더 배치되는 것에 그 차이가 있다.Referring to FIG. 11, the channel decoding apparatus 1100 of FIG. 11 is similar to the channel decoding apparatus 700 of FIG. 7, except that a variable multiplexer is provided between the variable node memory 310 and the barrel shifter 315. The difference is that 312 is further placed.

멀티플렉서(312)는, 제4 연산 유닛(360)에서 연산된 변수 노드 갱신값을 수신하여, 배럴 시프터(315)로 수신된 변수 노드 갱신값을 바로 제공할 수 있다. 이와 같이, 제4 연산 유닛(360)에서 연산된 변수 노드 갱신값을 변수 노드 메모리(310)에 저장하였다가 다시 독출하여 출력하는 과정이 생략되므로, 채널 복호화의 복호 시간을 단축할 수 있게 된다.The multiplexer 312 may receive the variable node update value calculated by the fourth operation unit 360 and immediately provide the variable node update value received by the barrel shifter 315. As described above, since the process of storing the variable node update value calculated by the fourth operation unit 360 in the variable node memory 310, reading out the data again, and outputting the same is omitted, the decoding time of channel decoding can be shortened.

한편, 제4 연산 유닛(360)에서 연산된 변수 노드 갱신값은, 변수 노드 메모리(310)에 저장되는 것도 가능하며, 이러한 경우, 멀티플렉서(312)는, 선택적으로, 변수 노드 메모리(310)에 저장된 변수 노드 갱신값을 출력하던지, 또는 4 연산 유닛(360)에서 직접 수신한 변수 노드 갱신값을 출력할 수도 있다.On the other hand, the variable node update value calculated in the fourth calculation unit 360 may be stored in the variable node memory 310, and in this case, the multiplexer 312 may optionally be stored in the variable node memory 310. The stored variable node update value may be output, or the variable node update value received directly by the four calculation unit 360 may be output.

한편, 도 11의 복호화 장치(1100)는, 역 배럴 시프터(inverse barrel shifter)(365)가 생략되었으므로, 상술한 수학식 11에 따라, 배럴 시프터(315)의 시프터 값이 조정될 수 있다. Meanwhile, since the inverse barrel shifter 365 is omitted in the decoding apparatus 1100 of FIG. 11, the shifter value of the barrel shifter 315 may be adjusted according to Equation 11 described above.

한편, 도 11의 복호화 장치(1100)는, 상술한 바와 같이, 저밀도 패리티 검사 행렬 중 각 행에 대한 데이터 연산시, 이전 행과 데이터 의존성이 없는 소정 열(column)에 대해, 다른 열 보다 더 먼저 처리하거나, 다음 행과 데이터 의존성이 있는 소정 열(column)에 대해, 다른 열 보다 더 먼저 처리하는 것도 가능하다.On the other hand, as described above, the decoding apparatus 1100 of FIG. 11, prior to the operation of data for each row of the low density parity check matrix, for a predetermined column having no data dependency on the previous row, is earlier than other columns. It is also possible to process, or for some column with data dependence on, the next row, before the other columns.

이와 같이, 도 11의 채널 복호화 장치(1100)에 의하면, Wi-Fi (IEEE Std 802.11)에서 iteration 1회에 필요한 clock 수를 88 ~ 110 clock으로 줄일 수 있게 된다. 이는 570 clock 정도의 “latency constraint” 안에 5 ~ 6 회 이상의 iteration을 할 수 있게 됨으로써, LDPC 코드의 성능을 제대로 살릴 수 있게 됨을 의미한다.As described above, according to the channel decoding apparatus 1100 of FIG. 11, the number of clocks required for one iteration in Wi-Fi (IEEE Std 802.11) can be reduced to 88 to 110 clocks. This means that iterations can be made five to six times or more in a “latency constraint” of around 570 clocks, which allows the performance of LDPC code to be properly utilized.

특히, 도 11의 채널 복호화 장치(1100)는, DVB-T2, DVB-C2의 LDPC decoder에도 적용가능하며, 동등한 LDPC decoding 성능 확보, 회로 크기 감소, 전력 소모 감소 등의 효과를 얻을 수 있게 된다. In particular, the channel decoding apparatus 1100 of FIG. 11 can be applied to LDPC decoders of DVB-T2 and DVB-C2, and can obtain effects of securing LDPC decoding performance, reducing circuit size, and reducing power consumption.

본 발명의 실시예에 따른 채널 복호화 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.In the channel decoding apparatus according to the embodiment of the present invention, the configuration and method of the embodiments described above may not be limitedly applied, but the embodiments may be modified in whole or in part to enable various modifications. It may alternatively be configured in combination.

또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention.

Claims (16)

저밀도 패리티 검사를 수행하는 채널 복호화 장치에 있어서,
변수 노드값을 저장하는 변수 노드 메모리;
체크 노드 메모리;
상기 변수 노드값과 체크 노드값을 이용하여, 변수 노드에 대한 로그 우도비를 연산하는 제1 연산 유닛;
상기 로그 우도비에 기초하여, 체크 노드의 크기값 및 부호를 연산하는 제2 연산 유닛;
상기 체크 노드의 크기값, 및 부호에 기초하여, 체크 노드 갱신값을 연산하는 제3 연산 유닛; 및
상기 체크 노드 갱신값 및 상기 로그 우도비에 기초하여, 변수 노드 갱신값을 연산하는 제4 연산 유닛;을 구비하고,
저밀도 패리티 검사 행렬 중 제1 행에 대해, 상기 체크 노드 갱신값의 연산 및 상기 변수 노드 갱신값의 연산이 수행되는 동안, 상기 저밀도 패리터 검사 행렬 중 상기 제1 행의 다음 행인 제2 행에 대해, 상기 로그 우도비 연산, 상기 체크 노드의 크기값 및 부호 연산을 수행되는 것을 특징으로 하는 채널 복호화 장치.
A channel decoding apparatus for performing a low density parity check,
A variable node memory for storing a variable node value;
Check node memory;
A first calculating unit for calculating a log likelihood ratio for a variable node using the variable node value and the check node value;
A second calculating unit for calculating a magnitude value and a sign of a check node based on the log likelihood ratio;
A third calculating unit for calculating a check node update value based on a magnitude value of the check node and a sign; And
A fourth calculation unit configured to calculate a variable node update value based on the check node update value and the log likelihood ratio,
For the first row of the low density parity check matrix, for the second row that is the next row of the first row of the low density parity check matrix while the operation of the check node update value and the operation of the variable node update value are performed. And a log likelihood ratio operation, a magnitude value of the check node, and a sign operation.
제1항에 있어서,
상기 제1 연산 유닛에서 연산된 로그 우도비를 저장하는 버퍼;를 더 구비하는 것을 특징으로 하는 채널 복호화 장치.
The method of claim 1,
And a buffer for storing the log likelihood ratio calculated in the first calculation unit.
제2항에 있어서,
상기 버퍼는,
상기 제1 연산 유닛이, 상기 제2 행에 대한 로그 우도비를 연산하는 동안, 상기 제4 연산 유닛에, 상기 제1 행에 대한 로그 우도비를 제공하는 것을 특징으로 하는 채널 복호화 장치.
3. The method of claim 2,
The buffer is
And while the first calculation unit calculates a log likelihood ratio for the second row, provides the log likelihood ratio for the first row to the fourth calculation unit.
제1항에 있어서,
상기 제3 연산 유닛 및 상기 제4 연산 유닛이, 각각, 저밀도 패리티 검사 행렬 중 제1 행에 대해, 상기 체크 노드 갱신값의 연산 및 상기 변수 노드 갱신값의 연산을 수행하는 동안,
상기 제1 연산 유닛과 상기 제2 연산 유닛은, 상기 제2 행에 대해, 각각 로그 우도비 연산, 체크 노드의 크기값 연산, 체크 노드의 부호 연산을 수행하는 것을 특징으로 하는 채널 복호화 장치.
The method of claim 1,
While the third computing unit and the fourth computing unit respectively perform the operation of the check node update value and the variable node update value on the first row of the low density parity check matrix,
And the first operation unit and the second operation unit perform a log likelihood ratio operation, a size value operation of a check node, and a sign operation of a check node, on the second row, respectively.
제1항에 있어서,
상기 제1 연산 유닛은,
상기 제2 행에 대한 로그 우도비를 연산시, 상기 제1 행과 데이터 의존성이 없는, 상기 제2 행의 소정 열(column)에 대해, 상기 제2 행의 다른 열 보다 더 먼저 처리하는 것을 특징으로 하는 채널 복호화 장치.
The method of claim 1,
The first calculation unit,
In calculating a log likelihood ratio for the second row, a predetermined column of the second row, which has no data dependency with the first row, is processed before other columns of the second row. A channel decoding apparatus.
제1항에 있어서,
상기 제2 연산 유닛은,
상기 제2 행에 대한 체크 노드의 크기값 및 부호 연산시, 상기 제1 행과 데이터 의존성이 없는, 상기 제2 행의 소정 열(column)에 대해, 상기 제2 행의 다른 열 보다 더 먼저 처리하는 것을 특징으로 하는 채널 복호화 장치.
The method of claim 1,
The second calculation unit,
In the calculation of the magnitude and sign of the check node for the second row, processing of a predetermined column of the second row, which has no data dependency with the first row, is performed before other columns of the second row. Channel decoding apparatus characterized in that the.
제1항에 있어서,
상기 제3 연산 유닛은,
상기 제1 행에 대한 체크 노드 갱신값 연산시, 상기 제2 행과 데이터 의존성이 있는, 상기 제1 행의 소정 열(column)을, 상기 제1 행의 다른 열 보다 더 먼저 처리하는 것을 특징으로 하는 채널 복호화 장치.
The method of claim 1,
The third calculation unit,
In calculating a check node update value for the first row, a predetermined column of the first row, which has a data dependency with the second row, is processed before other columns of the first row. Channel decoding apparatus.
제1항에 있어서,
상기 제4 연산 유닛은,
상기 제1 행에 대한 변수 노드 갱신값 연산시, 상기 제2 행과 데이터 의존성이 있는, 상기 제1 행의 소정 열(column)을, 상기 제1 행의 다른 열 보다 더 먼저 처리하는 것을 특징으로 하는 채널 복호화 장치.
The method of claim 1,
The fourth calculation unit,
In calculating a variable node update value for the first row, a predetermined column of the first row, which has a data dependency with the second row, is processed before other columns of the first row. Channel decoding apparatus.
제1항에 있어서,
상기 제4 연산 유닛에서 연산된 변수 노드 갱신값을 수신하여, 상기 제1 연산 유닛으로 상기 수신된 변수 노드 갱신값을 제공하는 멀티플렉서;를 더 구비하는 것을 특징으로 하는 채널 복호화 장치.
The method of claim 1,
And a multiplexer configured to receive the variable node update value calculated in the fourth computing unit and provide the received variable node update value to the first computing unit.
제9항에 있어서,
상기 멀티플렉서는,
상기 변수 노드 메모리에 저장된 변수 노드 갱신값을 더 수신하며, 상기 제4 연산 유닛으로부터의 변수 노드 갱신값과, 상기 변수 노드 메모리로부터의 변수 노드 갱신값 중 어느 하나를 상기 제1 연산 유닛으로 제공하는 것을 특징으로 하는 채널 복호화 장치.
10. The method of claim 9,
The multiplexer comprising:
Receiving a variable node update value stored in the variable node memory, and providing one of the variable node update value from the fourth computing unit and the variable node update value from the variable node memory to the first computing unit; Channel decoding apparatus, characterized in that.
제1항에 있어서,
상기 변수 노드 메모리와 상기 제1 연산 유닛 사이에 배치되어, 상기 변수 노드 메모리에서 출력되는, 변수 노드값이 제1 연산 유닛에서 연산가능하도록 비트 시프트를 수행하는 배럴 시프터;를 더 구비하는 것을 특징으로 하는 채널 복호화 장치.
The method of claim 1,
And a barrel shifter disposed between the variable node memory and the first computing unit and performing a bit shift so that the variable node value, which is output from the variable node memory, is operable in the first computing unit. Channel decoding apparatus.
제11항에 있어서,
상기 변수 노드 메모리에 상기 제4 연산 유닛에서 연산된 변수 노드 갱신값을 저장하기 위해, 상기 배럴 시프터에서 비트 시프트된 것을 고려하여, 역으로 비트 시프트를 수행하는 역 배럴 시프터;를 더 구비하는 것을 특징으로 하는 채널 복호화 장치.
12. The method of claim 11,
And a reverse barrel shifter performing bit shifting in reverse in consideration of the bit shift in the barrel shifter, in order to store the variable node update value calculated in the fourth calculation unit in the variable node memory. A channel decoding apparatus.
제11항에 있어서,
상기 배럴 시프터는,
현재 배럴 시프트 값과 이전 행의 배럴 시프트 값과, 저밀도 패리티 검사 행렬의 서브 블록 사이즈에 기초하여, 조정된 배럴 시프트 값을 연산하여, 조정된 배럴 시프트 값에 따라, 비트 시프트를 수행하는 것을 특징으로 하는 채널 복호화 장치.
12. The method of claim 11,
The barrel shifter,
Calculate an adjusted barrel shift value based on the current barrel shift value, the barrel shift value of the previous row, and the sub-block size of the low density parity check matrix, and perform a bit shift according to the adjusted barrel shift value. Channel decoding apparatus.
제1항에 있어서,
상기 체크 노드 메모리는,
상기 제2 연산 유닛에서 연산된 체크 노드의 크기값 중 제일 작은 값과 그 위치, 그리고 다음 작은 값 및 부호를 저장하는 것을 특징으로 하는 채널 복호화 장치.
The method of claim 1,
The check node memory,
And a smallest value among the magnitude values of the check nodes calculated in the second calculation unit, its position, and a next small value and a sign.
제14항에 있어서,
상기 체크 노드 메모리에 저장된 체크 노드의 크기값 및 부호를 이용하여, 체크 노드값을 연산하고, 상기 연산된 체크 노드값을 상기 제1 연산 유닛으로 출력하는 제1 리커버리 유닛;을 더 구비하는 것을 특징으로 하는 채널 복호화 장치.
15. The method of claim 14,
And a first recovery unit which calculates a check node value using the size value and the sign of the check node stored in the check node memory and outputs the calculated check node value to the first calculation unit. A channel decoding apparatus.
제1항에 있어서,
상기 제3 연산 유닛은,
상기 제2 연산 유닛으로부터의 체크 노드의 크기값 및 부호에 기초하여, 정규화를 수행하는 정규화 유닛; 및
상기 정규화된 체크 노드의 크기값 및 부호를 이용하여, 체크 노드값을 연산하고, 상기 연산된 체크 노드값을 상기 제4 연산 유닛으로 출력하는 제2 리커버리 유닛;을 구비하는 것을 특징으로 하는 채널 복호화 장치.
The method of claim 1,
The third calculation unit,
A normalization unit that performs normalization based on a magnitude value and a sign of a check node from the second calculation unit; And
And a second recovery unit for calculating a check node value using the normalized check node size and a sign, and outputting the calculated check node value to the fourth calculation unit. Device.
KR1020120101097A 2012-09-12 2012-09-12 Apparatus for channel decoding KR20140034579A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120101097A KR20140034579A (en) 2012-09-12 2012-09-12 Apparatus for channel decoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120101097A KR20140034579A (en) 2012-09-12 2012-09-12 Apparatus for channel decoding

Publications (1)

Publication Number Publication Date
KR20140034579A true KR20140034579A (en) 2014-03-20

Family

ID=50644967

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120101097A KR20140034579A (en) 2012-09-12 2012-09-12 Apparatus for channel decoding

Country Status (1)

Country Link
KR (1) KR20140034579A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160090101A (en) * 2015-01-21 2016-07-29 삼성전자주식회사 Apparatus and method for performing channel decoding operation based on effective noise in mobile communication system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160090101A (en) * 2015-01-21 2016-07-29 삼성전자주식회사 Apparatus and method for performing channel decoding operation based on effective noise in mobile communication system

Similar Documents

Publication Publication Date Title
US8996972B1 (en) Low-density parity-check decoder
KR100958234B1 (en) Node processors for use in parity check decoders
JP6555759B2 (en) Structured LDPC coding method, decoding method, coding device, and decoding device
CN102412847B (en) Method and apparatus for decoding low density parity check code using united node processing
US7127659B2 (en) Memory efficient LDPC decoding methods and apparatus
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US9461671B1 (en) Method and apparatus for power conservation in LDPC decoding
US10491244B2 (en) Systems and methods for decoding error correcting codes
US20130212451A1 (en) Reduced complexity non-binary ldpc decoding algorithm
US9195536B2 (en) Error correction decoder and error correction decoding method
US8621329B2 (en) Reconfigurable BCH decoder
US20200044668A1 (en) Method for ldpc decoding, ldpc decoder and storage device
US20190103885A1 (en) Systems and methods for decoding error correcting codes
US10833704B1 (en) Low-density parity check decoder using encoded no-operation instructions
JP2014099944A (en) Methods and apparatus for low-density parity check decoding using hardware sharing and serial sum-product architecture
CN113783576A (en) Method and apparatus for vertical layered decoding of quasi-cyclic low density parity check codes constructed from clusters of cyclic permutation matrices
JP5333233B2 (en) Decoding device, data storage device, data communication system, and decoding method
US20170134048A1 (en) Message-passing based decoding using syndrome information, and related methods
WO2010053152A1 (en) Decoding device, data transmitting device having the decoding device, and data storage device
US11108410B1 (en) User-programmable LDPC decoder
KR20140034579A (en) Apparatus for channel decoding
JP5927323B1 (en) Matrix action device, matrix action method, and program
JP5385944B2 (en) Decoder
CN112470405A (en) Variable node processing method and apparatus for message passing decoding of non-binary codes
TWI523437B (en) Encoding and syndrome computing co-design circuit for bch code and method for deciding the same

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination