KR101840252B1 - Apparatus for low density parity check code - Google Patents

Apparatus for low density parity check code Download PDF

Info

Publication number
KR101840252B1
KR101840252B1 KR1020120024917A KR20120024917A KR101840252B1 KR 101840252 B1 KR101840252 B1 KR 101840252B1 KR 1020120024917 A KR1020120024917 A KR 1020120024917A KR 20120024917 A KR20120024917 A KR 20120024917A KR 101840252 B1 KR101840252 B1 KR 101840252B1
Authority
KR
South Korea
Prior art keywords
addresses
address
banks
variable node
block
Prior art date
Application number
KR1020120024917A
Other languages
Korean (ko)
Other versions
KR20130103910A (en
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 KR1020120024917A priority Critical patent/KR101840252B1/en
Publication of KR20130103910A publication Critical patent/KR20130103910A/en
Application granted granted Critical
Publication of KR101840252B1 publication Critical patent/KR101840252B1/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
    • 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
    • H03M13/6505Memory efficient implementations
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/65253GPP LTE including E-UTRA
    • 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/6566Implementations concerning memory access contentions

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 체크 노드의 연산 수행 결과를 복수의 블록 열에 대한 가변 노드 연산에서 공유함으로써 지연 시간을 절감할 수 있고, 메모리 읽기 동작의 횟수를 경감할 수 있는 저밀도 패리티 검사 부호용 장치를 제공한다.
본원의 제1 발명에 따른 저밀도 패리티 검사 부호용 장치는, 체크 노드 유닛, 가변 노드 유닛, 제어 유닛 및 메모리를 포함하는 저밀도 패리티 검사 부호용 장치에 있어서, 상기 가변 노드 유닛이 상기 메모리 내 체크 노드 결과값을 읽어들여 가상의 복수의 블록 열에 대하여 가변 노드 연산을 동시에 수행할 때, 상기 메모리 내 하나의 뱅크에서 서로 다른 어드레스의 데이터를 동시에 읽는 경우, 상기 제어 유닛은 상기 서로 다른 어드레스 중 어느 하나를 소정 간격 쉬프트 시켜 상기 서로 다른 어드레스를 상호 일치시킨다.
The present invention provides a low-density parity check code apparatus capable of reducing a delay time and reducing the number of memory read operations by sharing the operation result of a check node in a variable node operation for a plurality of block sequences.
There is provided an apparatus for a low density parity check code according to the first aspect of the present invention, comprising: a check node unit; When a variable node operation is concurrently performed on a plurality of virtual block columns by reading a value of one of the different addresses in a single bank in the memory, And the addresses are shifted to mutually match the different addresses.

Description

저밀도 패리티 검사 부호용 장치{APPARATUS FOR LOW DENSITY PARITY CHECK CODE}[0001] APPARATUS FOR LOW DENSITY PARITY CHECK CODE [0002]

본 발명은 패리티 검사 부호에 관한 것으로, 더욱 상세하게는 저밀도 패리티 검사(Low Density Parity Check, 이하, 'LDPC'라 한다) 부호용 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parity check code, and more particularly to an apparatus for coding a low density parity check (LDPC) code.

최근, LDPC 부호는 쉐넌 리미트(Shannon limit)에 가까운 강력한 에러 보정 능력을 가지는 오류 정정 부호로서 차세대 무선 통신 기술에서 폭 넓게 상용화될 것으로 각광받고 있다. 즉, DVB, WLAN, WiMAX등의 통신 표준뿐 아니라 4세대 통신 표준인 LTE에서도 주된 화두의 하나로 포함되어 논의되고 있다.2. Description of the Related Art In recent years, an LDPC code has been widely expected to be widely used in next generation wireless communication technology as an error correction code having a strong error correction capability close to a Shannon limit. In other words, not only communication standards such as DVB, WLAN, and WiMAX but also LTE, a fourth generation communication standard, are discussed as one of the main issues.

일반적으로, LDPC 부호는 '(N, K) LDPC 부호'와 같은 방식으로 표기하는데 여기서 K는 통신 모듈의 송신부에서 부호화하는 비트들의 수이고, N은 부호화의 결과로 생성된 블록의 비트 수이다. 부호화의 결과로 생성된 N 비트는 부호화하는 K 비트를 그대로 포함하면서 (N-K) 비트가 추가적으로 덧붙여진 것이다. 여기서 추가적으로 덧붙여진 (N-K) 비트는 K 비트에 오류가 발생하였을 경우, 이를 정정하는데 결정적인 역할을 한다.In general, an LDPC code is written in the same manner as an '(N, K) LDPC code', where K is the number of bits to be encoded by the transmitter of the communication module and N is the number of bits of the block generated as a result of encoding. The N bits generated as a result of encoding are those in which (N-K) bits are additionally added including the K bits to be encoded. The additional (N-K) bit here is crucial in correcting an error in the K bits.

통신의 수신부에서는 송신부에서 전송된 LDPC 부호를 수신한 후, 복호기를 통해 N 비트의 LDPC 부호를 K 비트로 복원하는 과정을 수행하는데, 이 과정에서 핵심 기반이 되는 것이 '이진 패리티 체크 행렬'이라 할 수 있다. 이진 패리티 체크 행렬은 (N-K)행 N열의 크기를 가지며, LDPC 복호 과정의 핵심 연산과 직결되는 구조를 포함하고 있다. LDPC 복호과정은 이분 그래프로 표현할 수 있는데, 이 이분 그래프의 두 개 유형의 노드 중 체크 노드는 이진 패리티 체크 행렬의 (N-K) 행에 각각 대응되어 (N-K)개 존재하며, 또 다른 유형의 노드인 비트 노드는 이진 패리티 체크 행렬의 N열에 각각 대응하여 N개 존재한다. 이분 그래프의 에지는 서로 다른 유형의 노드 간에만 연결되고, 이진 패리티 체크 행렬의 m행 n열의 성분을 H(m,n)이라 하면(여기서 0≤m<M, 0≤n<N), 이 성분이 1일 경우에만 m행에 대응하는 체크노드와 n행에 대응하는 가변 노드가변 노드 연결된다. 이러한 방식에 의해 이진 패리티 체크 행렬의 모든 성분을 살펴 (N-K)개의 체크 노드와 N개의 가변 노드 간의 에지 연결을 완료하면, LDPC 핵심 복호과정이 모두 이분 그래프로 표현되게 된다.The receiver of the communication receives the LDPC code transmitted from the transmitter and then restores the N bits of the LDPC code to the K bits through the decoder. In this process, the core is the 'binary parity check matrix' have. The binary parity check matrix has a size of (N-K) rows and N columns, and includes a structure directly connected to the core operation of the LDPC decoding process. The LDPC decoding process can be represented by a two-segment graph. Among the two types of nodes of the two-segment graph, the check nodes correspond to (NK) rows of the binary parity check matrix NK, N bit nodes correspond to N columns of the binary parity check matrix, respectively. If the edge of the graph is connected only between nodes of different types and the component of m rows and n columns of the binary parity check matrix is H (m, n) (0 ≤ m <M, 0 ≤ n <N) And the check node corresponding to the m-th row and the variable node variable node corresponding to the n-th row are connected only when the component is 1. In this way, all the components of the binary parity check matrix are examined. When the edge connection between the (N-K) check nodes and the N variable nodes is completed, the LDPC core decoding process is expressed by a half-value graph.

또한 완성된 이분 그래프는 LDPC 복호기의 구조와 매우 유사해진다. 체크 노드는 복호기의 체크 노드 프로세서에 대응되고, 가변 노드는 복호기의 가변 노드 프로세서에 대응된다. In addition, the completed binary graph becomes very similar to the structure of the LDPC decoder. The check node corresponds to the check node processor of the decoder, and the variable node corresponds to the variable node processor of the decoder.

두 핵심 프로세서는 복호기 내부에서 번갈아 동작하며 연산을 수행한다. 즉, 체크 노드 프로세서가 입력되는 가변 노드에 대하여 연산을 수행하여 체크 노드 연산을 완료하면, 완료된 체크 노드를 바탕으로 가변 노드 프로세서는 입력되는 체크 노드에 대하여 가변 노드 연산을 수행한다. 가변 노드 연산 수행 후에는 그 결과 값을 활용하여 복호를 시도하여 이에 성공하면 연산을 멈추고, 실패하면 다시 순환적으로 다음 번 체크 노드 연산과 이에 이은 가변 노드 연산을 수행하는 것이 LDPC 복호기가 수행하는 연산의 개요라고 할 수 있다.The two core processors operate alternately within the decoder and perform computations. That is, when the check node processor completes the check node operation by performing an operation on the variable node to which the check node processor is input, the variable node processor performs a variable node operation on the input check node, based on the completed check node. After the variable node operation is performed, decoding is attempted utilizing the resultant value. If the decoding is successful, the operation is stopped. If it is unsuccessful, the next check node operation and the subsequent variable node operation are performed cyclically, .

종래 기술에 따르면, LDPC 장치의 하드웨어 구조를 3가지로 구분할 수 있다. 구체적으로, 1) 첫번째, 모든 체크 노드와 가변 노드가 개개의 하드웨어에 대응되는 완전 병렬 구조, 2) 두번째, 단지 하나의 체크 노드 프로세서와 가변 노드 프로세서가 모든 복호 연산을 수행하기 위해 반복적으로 재사용되는 완전 직렬 구조, 그리고, 3) 세번째, 완전 병렬 구조와 완전 직렬 구조를 절충한 부분 병렬 구조이다. According to the prior art, the hardware structure of the LDPC apparatus can be classified into three types. Specifically, there are 1) a fully parallel structure in which all check nodes and variable nodes correspond to individual hardware, and 2) only one check node processor and variable node processor are repeatedly reused to perform all decoding operations And 3) a partially parallel structure that compromises the third, fully parallel and full serial structures.

일반적으로, 완전 병렬 구조는 하드웨어 구현의 복잡도가 매우 높아 잘 채택되지 않으며, 완전 직렬 구조의 경우, 복호 지연 시간이 너무 길어 잘 채택되지 않는다. 따라서 하드웨어 복잡도와 복호 지연 시간을 절충한 부분 병렬 구조가 많이 채택되고 있는 추세이며 LDPC 블록 부호와 같은 이진 패리티 체크 행렬이 정의되어 부분 병렬 구조를 이용한 구현의 적합도를 높이고 있다. In general, a fully parallel structure is not well adopted because the complexity of the hardware implementation is very high, and in the case of a fully serial structure, the decoding delay time is too long to be adopted well. Therefore, a partial parallel structure which compromises between hardware complexity and decoding delay time has been widely adopted, and a binary parity check matrix such as an LDPC block code is defined, thereby improving the suitability of implementation using a partial parallel structure.

부분 병렬 구조가 하드웨어 복잡도와 복호 지연 시간 양면에서 이득을 가지는 것은 사실이지만, 모든 체크 노드 및 가변 노드의 연산을 동시에 수행하지 않기 때문에 체크 노드 연산의 결과가 임베디드 SRAM에 저장되어 수차례에 걸쳐 반복적으로 수행하는 가변 노드 프로세서 연산을 대비하여야 한다. 이러한 임베디드 SRAM 사용상의 특성으로 인해 추가적인 지연 시간이 발생하고 있다. 하지만 아직까지 임베디드 SRAM 사용으로 인해 추가 지연 시간을 대폭 절감하기 위한 접근법이 아직 효과적으로 제시되지 않고 있다.It is true that the partial parallel architecture gains both hardware complexity and decoding latency. However, since all the check nodes and variable nodes are not operated simultaneously, the result of the check node operation is stored in the embedded SRAM, The variable node processor operation to be performed must be prepared. Additional latency is occurring due to the nature of these embedded SRAMs. However, the use of embedded SRAM has not yet been effectively addressed in order to significantly reduce additional latency.

도 1은 종래기술에 따른 부분 병렬 구조의 LDPC 복호기의 기반이 되는 이진 패리티 체크 행렬이다.FIG. 1 is a binary parity check matrix on which a partial parallel LDPC decoder according to the related art is based.

이 행렬은 행이 6개의 블록, 열이 12개의 블록으로 구성되어 있으므로 총 72개의 블록으로 구성되어 있으며, 각 블록은 80행 80열로 구성되어 있다. 따라서 총 480행 960열의 이진 패리티 행렬을 나타낸다. 여기서, 검은색으로 표기된 블록은 영행렬을 의미하고, 나머지 인덱스는 인덱스의 수만큼 오른쪽으로 Cyclic shift된 Identity 행렬을 의미한다.The matrix consists of 72 blocks, each consisting of 80 rows and 80 columns, because the matrix consists of 6 blocks and 12 columns. Thus, a total of 480 rows and 960 columns of binary parity matrix are shown. Here, the black block means a zero matrix, and the remaining index means an identity matrix cyclically shifted to the right by the number of indexes.

도 1의 QC-LDPC 블록 부호를 기반으로 부분 병렬 복호기를 구현할 때, 복호 연산의 기본 단위는 단위 블록 행렬이라고 할 수 있다. 이때, 복호 연산 과정에서 우선적으로 각 블록 행렬에 대한 체크 노드 프로세서 연산을 완료하면, 단일 블록 행 내부에 있는 행에 대한 체크 노드 프로세서의 연산 수행 결과는 동일한 SRAM 메모리 뱅크의 서로 다른 주소에 기록된다. When a partial parallel decoder is implemented based on the QC-LDPC block code of FIG. 1, the basic unit of the decoding operation may be referred to as a unit block matrix. At this time, when the check node processor operation for each block matrix is completed prior to the decoding operation, the operation result of the check node processor for a row within a single block row is recorded at different addresses in the same SRAM memory bank.

이와 같은 SRAM 기록 과정은 체크 노드 프로세서의 연산 수행 결과가 여러 열에 대한 가변 노드 프로세서의 연산 수행이 필요하기 때문이다. 예를 들면, 블록 4행에 대한 체크 노드 프로세서의 연산 수행 결과는 가변 노드 프로세서의 연산 수행 중 블록 1열, 3열, 9열, 10열, 16열, 17열에 대해 모두 필요하게 된다. 하지만 일반적인 1포트 혹은 2포트 SRAM 메모리는 읽기 동작을 할 때, 단일 주소로 밖에 접근할 수 없으므로 같은 메모리의 서로 다른 주소에 있는 값을 요구하는 이들 연산을 동시에 수행할 수 없다. The SRAM writing process is performed because the execution result of the check node processor needs to perform the operation of the variable node processor for several rows. For example, the operation result of the check node processor for the block 4 row is required for all of the blocks 1, 3, 9, 10, 16, and 17 during the operation of the variable node processor. However, since a typical 1-port or 2-port SRAM memory can only access a single address when performing a read operation, these operations that require values at different addresses in the same memory can not be performed at the same time.

이러한 이유로 기존의 복호 연산은 복수 개의 블록 열에 대한 가변 노드 연산을 시행하고자 할 경우에 동일한 블록 행 내의 서로 다른 단일 행에 대한 체크 노드 프로세서 연산 결과가 필요하다면, 서로 다른 가변 노드 프로세서의 연산이 동시에 수행될 수 없기 때문에 복호 지연 시간이 매우 길어질 수밖에 없다.For this reason, when the conventional decoding operation is to perform a variable node operation on a plurality of block columns and a check node processor operation result for a single single row in the same block row is required, operations of different variable node processors are simultaneously performed The decoding delay time is very long.

본 발명은 체크 노드의 연산 수행 결과를 복수의 블록 열에 대한 가변 노드 연산에서 공유함으로써 지연 시간을 절감할 수 있는 저밀도 패리티 검사 부호용 장치를 제공한다.The present invention provides an apparatus for a low density parity check code capable of reducing a delay time by sharing an operation result of a check node in a variable node operation for a plurality of block sequences.

또한, 본 발명은 메모리 읽기 동작의 횟수를 경감할 수 있는 저밀도 패리티 검사 부호용 장치를 제공한다.The present invention also provides a device for a low density parity check code capable of reducing the number of memory read operations.

본원의 제1 발명에 따른 저밀도 패리티 검사 부호용 장치는, 체크 노드 유닛, 가변 노드 유닛, 제어 유닛 및 메모리를 포함하는 저밀도 패리티 검사 부호용 장치에 있어서, 상기 가변 노드 유닛이 상기 메모리 내 체크 노드 결과값을 읽어들여 가상의 복수의 블록 열에 대하여 가변 노드 연산을 동시에 수행할 때, 상기 메모리 내 하나의 뱅크에서 서로 다른 어드레스의 데이터를 동시에 읽는 경우, 상기 제어 유닛은 상기 서로 다른 어드레스 중 어느 하나를 소정 간격 쉬프트 시켜 상기 서로 다른 어드레스를 상호 일치시킨다.There is provided an apparatus for a low density parity check code according to the first aspect of the present invention, comprising: a check node unit; When a variable node operation is concurrently performed on a plurality of virtual block columns by reading a value of one of the different addresses in a single bank in the memory, And the addresses are shifted to mutually match the different addresses.

또한, 본원의 제2 발명에 따른 저밀도 패리티 검사 부호용 장치는 저밀도 패리티 검사 부호에 의해 부호화된 신호가 전송됨에 따라, 상기 저밀도 패리티 검사 부호를 위한 검사 행렬에 포함된 가변 노드에 대하여 초기화부; 각 체크 노드에 연결된 모든 다른 가변 노드로부터의 정보를 바탕으로 가변 노드의 신뢰를 갱신하는 체크 노드 유닛; 상기 가변 노드의 연산을 수행하는 가변 노드 유닛; 상기 가변 노드 유닛이 연산한 결과값의 부호를 이용하여 상기 결과값의 부호에 따라 이진으로 판정하는 판정 유닛; 및 상기 가변 노드 유닛이 메모리 내 체크 노드 결과값을 읽어들여 가상의 복수의 블록 열에 대하여 상기 가변 노드의 연산을 동시에 수행할 때, 상기 메모리 내 하나의 뱅크에서 서로 다른 어드레스의 데이터를 동시에 읽는 경우, 상기 서로 다른 어드레스 중 어느 하나를 소정 간격 쉬프트 시켜 상기 서로 다른 어드레스를 상호 일치시키는 제어 유닛을 포함한다.The apparatus for low density parity check code according to the second aspect of the present invention includes: an initialization unit for a variable node included in a check matrix for the low density parity check code as a signal encoded by the low density parity check code is transmitted; A check node unit updating the trust of the variable node based on information from all other variable nodes connected to each check node; A variable node unit for performing the operation of the variable node; A determination unit for determining the binary value according to the sign of the result value using the sign of the result value calculated by the variable node unit; And when the variable node unit reads in-memory check node result values and concurrently performs operations of the variable nodes with respect to a plurality of virtual block columns, when data of different addresses are simultaneously read from one bank in the memory, And a control unit for shifting any one of the different addresses by a predetermined distance to mutually match the different addresses.

또한, 본원의 제3 발명에 따른 저밀도 패리티 검사 부호용 장치는, 체크 노드 유닛, 가변 노드 유닛, 제어 유닛 및 메모리를 포함하는 저밀도 패리티 검사 부호용 장치에 있어서, 상기 가변 노드 유닛이 상기 메모리 내 체크 노드 결과값을 읽어들여 가상의 복수의 블록 열에 대하여 가변 노드 연산을 동시에 수행할 때, 상기 메모리 내 복수 뱅크에서 서로 다른 어드레스의 데이터를 동시에 읽는 경우, 상기 제어 유닛은 상기 복수 뱅크 중 어느 하나의 뱅크에 대하여 서로 다른 어드레스 중 어느 하나의 어드레스를 소정 간격 쉬프트 시켜 상호 일치시킨다.According to a third aspect of the present invention, there is provided an apparatus for a low density parity check code including a check node unit, a variable node unit, a control unit and a memory, wherein the variable node unit comprises: When the variable node operation is concurrently performed on a plurality of virtual block columns by simultaneously reading the node result value and simultaneously reading data of different addresses in the plurality of banks in the memory, One of the addresses different from each other is shifted by a predetermined interval to mutually coincide.

또한, 본원의 제4 발명에 따른 저밀도 패리티 검사 부호용 장치는, 저밀도 패리티 검사 부호에 의해 부호화된 신호가 전송됨에 따라, 상기 저밀도 패리티 검사 부호를 위한 검사 행렬에 포함된 가변 노드에 대하여 초기화부; 각 체크 노드에 연결된 모든 다른 가변 노드로부터의 정보를 바탕으로 가변 노드의 신뢰를 갱신하는 체크 노드 유닛; 상기 가변 노드의 연산을 수행하는 가변 노드 유닛; 상기 가변 노드 유닛이 연산한 결과값의 부호를 이용하여 상기 결과값의 부호에 따라 이진으로 판정하는 판정 유닛; 및 상기 가변 노드 유닛이 메모리 내 체크 노드 결과값을 읽어들여 가상의 복수의 블록 열에 대하여 가변 노드 연산을 동시에 수행할 때, 상기 메모리 내 복수 뱅크에서 서로 다른 어드레스의 데이터를 동시에 읽는 경우, 상기 복수 뱅크 중 어느 하나의 뱅크에 대하여 서로 다른 어드레스 중 어느 하나의 어드레스를 소정 간격 쉬프트 시켜 상호 일치시키는 제어 유닛을 포함한다.According to a fourth aspect of the present invention, there is provided an apparatus for a low-density parity check code, the apparatus comprising: an initialization unit for a variable node included in a check matrix for the low-density parity check code as a signal encoded by the low-density parity check code is transmitted; A check node unit updating the trust of the variable node based on information from all other variable nodes connected to each check node; A variable node unit for performing the operation of the variable node; A determination unit for determining the binary value according to the sign of the result value using the sign of the result value calculated by the variable node unit; And when the variable node unit reads in-memory check node result values and concurrently performs variable node operations on a plurality of virtual block columns, when data of different addresses are simultaneously read from a plurality of banks in the memory, And a control unit for causing any one of the addresses different from one another among the plurality of banks to be mutually coincident with each other by a predetermined interval.

본 발명의 저밀도 패리티 검사 부호용 장치에 따르면, 체크 노드의 연산 수행 결과를 여러 개의 블록 열에 대한 가변 노드 연산에서 공유할 수 있고, 메모리 읽기 동작의 횟수를 경감할 수 있는 효과가 있다.According to the apparatus for low density parity check code of the present invention, it is possible to share the operation result of the check node in the variable node operation for a plurality of block rows, and to reduce the number of memory read operations.

도 1은 일반적인 QC-LDPC 블록 부호,
도 2는 본 발명의 일실시예에 따른 LDPC 부호용 장치의 블럭 구성도,
도 3(a)은 동일 뱅크 내 서로 다른 주소의 데이터가 충돌하는 상황에 대한 설명도,
도 3(b)은 본 발명의 일실시예에 따른 단일 뱅크 내 어드레스 충돌을 회피하기 위한 어드레스 쉬프트 기법을 설명하기 위한 도면,
도 4(a)는 복수개의 뱅크 내에서 복수의 어드레스들이 충돌하는 상황에 대한 설명도,
도 4(b)는 본 발명의 다른 실시예에 따른 복수 뱅크 내 어드레스 충돌을 회피하기 위한 어드레스 쉬프트 기법을 설명하기 위한 도면,
도 5(a)(b)(c)는 본 발명의 일 실시예에 따른 레지스터 내 데이터 갱신 패턴 설명도, 및
도 6은 도 5(a)(b)(c)를 구현하기 위한 주요 구성에 대한 블럭도이다.
FIG. 1 shows a general QC-LDPC block code,
2 is a block diagram of an apparatus for an LDPC code according to an embodiment of the present invention.
3 (a) is an explanatory diagram of a situation where data at different addresses in the same bank collide,
FIG. 3B is a diagram for explaining an address shift technique for avoiding an address conflict in a single bank according to an embodiment of the present invention; FIG.
4 (a) is an explanatory diagram of a situation in which a plurality of addresses collide in a plurality of banks,
FIG. 4B is a diagram for explaining an address shift technique for avoiding address conflicts in a plurality of banks according to another embodiment of the present invention; FIG.
5 (a), (b) and (c) are explanatory diagrams of a data update pattern in a register according to an embodiment of the present invention, and
FIG. 6 is a block diagram of a main configuration for implementing FIGS. 5 (a), (b), and (c).

이하, 본 발명의 바람직한 실시예(들)에 대하여 첨부도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호로 표기되었음에 유의하여야 한다. 또한, 하기의 설명에서는 많은 특정사항들이 도시되어 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들 없이도 본 발명이 실시될 수 있음은 이 기술분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다.
Hereinafter, preferred embodiments (s) of the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same reference numerals are used to designate the same or similar components in the drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention, and it is to be understood that the present invention may be practiced without these specific details, It will be obvious to you.

도 2는 본 발명의 일실시예에 따른 LDPC 부호용 장치의 블럭 구성도이다.2 is a block diagram of an apparatus for an LDPC code according to an embodiment of the present invention.

본 발명의 일실시예에 따른 LDPC 부호용 장치는 초기화부(210), 체크 노드 유닛(220), 가변 노드 유닛(230), 제어 유닛(240), 메모리(250), 및 판정 유닛(260)을 포함한다.The apparatus for LDPC code according to an embodiment of the present invention includes an initialization unit 210, a check node unit 220, a variable node unit 230, a control unit 240, a memory 250, .

초기화부(210)는 가변 노드 각각(v=0, … , n-1)에 대하여 수학식1을 적용하여 초기화를 수행한다. The initialization unit 210 performs initialization by applying Equation (1) to each of the variable nodes (v = 0, ..., n-1).

Figure 112018010623791-pat00001
Figure 112018010623791-pat00001

여기에서, qcv는 가변 노드 v에서 체크 노드 c로 전달하는 확률 정보를 의미하고, L(qcv)는 가변 노드v가 체크 노드c로 전달하는 확률이 0인 경우 대한 가변 노드v가 체크 노드c로 전달하는 확률이 1인 경우의 로그 우도 비율(Log likelihood ratio)를 의미한다. 그리고 σ2은 잡음 분산을 의미하며, yv는 가변노드로 입력되는 신호를 나타낸다. 즉, 가변 노드v가 체크 노드c로 전달하는 확률이 0인 경우에 대한 가변 노드v가 체크 노드c로 전달하는 확률이 1인 경우의 로그 우도 비율을 산출하는 것이다.
Here, qcv denotes probability information to be transmitted from the variable node v to the check node c, and L (qcv) denotes the probability that the variable node v for the probability that the variable node v delivers to the check node c is 0 Log likelihood ratio when the probability of transmission is 1. And? 2 denotes noise variance, and yv denotes a signal input to the variable node. That is, the log likelihood ratio when the probability that the variable node v delivers to the check node c is 1 and the probability that the variable node v transmits to the check node c is 1 is calculated.

체크 노드 유닛(220)은 체크 노드(c=0, ..., m-1)에 대하여 수학식 2를 이용하여 모든 L(qcv)를 수집하고, 각 체크 노드에 연결된 모든 다른 가변 노드로부터의 정보를 바탕으로 가변 노드의 신뢰를 갱신한다.The check node unit 220 collects all L (qcv) using the equation (2) for the check nodes (c = 0, ..., m-1) And updates the trust of the variable node based on the information.

Figure 112018010623791-pat00002
Figure 112018010623791-pat00002

가변 노드 유닛(230)은 v=0, ..., n-1에 대하여 수학식3을 이용하여 가변노드의 연산을 수행한다.
The variable node unit 230 performs the operation of the variable node using Equation (3) for v = 0, ..., n-1.

Figure 112018010623791-pat00003
Figure 112018010623791-pat00003

판정 유닛(260)은 가변 노드 유닛(230)이 연산한 수학식4의 결과값의 부호를 이용하여, 결과값의 부호가 음수이면 대응하는 가변 노드를 1로 판정하고, 양수이면 0으로 판정한다.The determination unit 260 uses the sign of the result value of the equation (4) calculated by the variable node unit 230 to determine that the corresponding variable node is 1 if the sign of the result value is negative, .

Figure 112018010623791-pat00004
Figure 112018010623791-pat00004

그리고, 판정 유닛(260)은 판정한 코드 워드(

Figure 112018010623791-pat00005
)와 패리티 비트 행렬(H)의 행렬 곱 연산을 수행하여 영행렬이면 복호화를 종료하고, 그렇지 않으면 체크 노드 유닛(220)에서의 연산으로 복귀하여 전체 과정을 반복한다.Then, the determination unit 260 compares the determined code word (
Figure 112018010623791-pat00005
) And the parity bit matrix H to perform decoding if the matrix is a zero matrix, otherwise return to the operation in the check node unit 220 and repeat the entire process.

그런데, LDPC 장치가 복수열의 가변 노드 유닛(230)에서의 동시 연산을 수행하고자 하는 경우, 메모리(250) 내 동일 뱅크에 대하여 서로 다른 주소의 데이터가 충돌하는 상황이 발생할 수 있다.
However, when the LDPC apparatus intends to perform simultaneous computation in a plurality of columns of variable node units 230, a situation where data of different addresses collide with the same bank in the memory 250 may occur.

도 3(a)은 동일 뱅크 내 서로 다른 주소의 데이터가 충돌하는 상황에 대한 설명도이다.3 (a) is an explanatory diagram of a situation where data of different addresses collide with each other in the same bank.

가변 노드 유닛(230)이 메모리(250) 내 체크 노드 결과값을 독출하여 가상의 블록 열C1과 블록 열C6에 대한 가변 노드 연산을 동시에 수행하는 경우, 동일 뱅크R4 내 address25의 데이터와 address0의 데이터를 동시에 독출해야 하나, 동시에 동일 뱅크 내 서로 다른 번지에서 데이터를 독출하는 것은 불가능하다.When the variable node unit 230 reads the check node result value in the memory 250 and simultaneously performs the variable node operation on the virtual block column C1 and the block column C6, the data of the address 25 in the same bank R4 and the data of the address 0 At the same time, it is impossible to read data at different addresses in the same bank at the same time.

이때에는, 도 3(b)와 같이, 데이터가 포함된 어드레스를 쉬프트 시켜 처리한다.At this time, as shown in Fig. 3 (b), an address including data is shifted and processed.

도 3(b)은 본 발명의 일실시예에 따른 단일 뱅크 내 어드레스 충돌을 회피하기 위한 어드레스 쉬프트 기법을 설명하기 위한 도면이다.3 (b) is a diagram for explaining an address shift technique for avoiding an address conflict in a single bank according to an embodiment of the present invention.

도 3(b)에 따르면, 블록 열C1의 address25에 대응하는 블록 열C6의 address0를 address25로 쉬프트 시켜 일치시키고, 블록 열C6의 나머지 address29, 및 address4에 대해서도 동일한 간격으로 쉬프트 시킨다. 즉, 블록 열 C6의 address29, 및 address4를 각각 25 만큼 쉬프트 시킨 address54, 및 address29로 변경한다.According to FIG. 3 (b), the address 0 of the block sequence C 6 corresponding to the address 25 of the block sequence C 1 is shifted to address 25, and the remaining address 29 and address 4 of the block sequence C 6 are also shifted by the same interval. That is, address 29 and address 4 of the block column C 6 are changed to address 54 and address 29 which are shifted by 25, respectively.

이를 위하여 본 발명의 일실시예에 따른 제어 유닛(240)은, 가변 노드 유닛(230)과 메모리(250)를 연결하는 네트웍(241)과, 가변 노드 유닛(230)이 메모리(250) 내 체크 노드 결과값을 읽어들여 가상의 복수의 블록 열에 대하여 가변 노드 연산을 동시에 수행할 때, 단일 뱅크 내에서 서로 다른 어드레스의 데이터를 동시에 읽으면, 서로 다른 어드레스 중 어느 하나를 소정 간격 쉬프트 시켜 서로 다른 어드레스를 상호 일치시키는 서브 컨트롤러(242)를 포함할 수 있다.To this end, the control unit 240 according to an embodiment of the present invention includes a network 241 connecting the variable node unit 230 and the memory 250, When a variable node operation is simultaneously performed on a plurality of virtual block arrays by reading a node result value, when data of different addresses are simultaneously read in a single bank, any one of the different addresses is shifted by a predetermined interval to obtain different addresses And may include a subcontroller 242 that coincides with each other.

결과적으로, 본 발명에 따른 어드레스 쉬프트 기법을 활용하면, 가변 노드 유닛(230)이 다수의 블록 열에 대하여 동시에 연산을 수행할 수 있다.
As a result, utilizing the address shift technique according to the present invention, the variable node unit 230 can simultaneously perform operations on a plurality of block sequences.

도 4(a)는 복수개의 뱅크 내에서 복수의 어드레스들이 충돌하는 상황에 대한 설명도이다.4 (a) is an explanatory diagram of a situation in which a plurality of addresses collide in a plurality of banks.

가변 노드 유닛(230)이 메모리(250) 내 체크 노드 결과값을 독출하여 가상의 블록 열C2와 블록 열C5에 대한 가변 노드 연산을 동시에 수행하는 경우, 동일 뱅크 R1 내 address1의 데이터와 address0의 데이터, 동일 뱅크 R2 내 address13의 데이터와 address16의 데이터, 그리고, 동일 뱅크 R5 내 address25의 데이터와 address20의 데이터를 동시에 독출해야 하나, 동시에 동일 뱅크 내 서로 다른 번지에서 데이터를 독출하는 것이 불가능하다.When the variable node unit 230 reads the check node result value in the memory 250 and simultaneously performs the variable node operation on the virtual block column C2 and the block column C5, the data of the address 1 and the data of the address 0 in the same bank R1 , The address 13 data and the address 16 data in the same bank R 2 and the address 25 data and the address 20 data in the same bank R 5 must be simultaneously read, but it is impossible to simultaneously read the data at different addresses in the same bank.

이때에는, 도 4(B)와 같이, 데이터가 포함된 어드레스를 쉬프트 시키고, 추가적으로 소량의 레지스터를 추가하여 처리한다.
At this time, as shown in Fig. 4B, the address including the data is shifted and a small amount of registers are additionally processed.

도 4(b)는 본 발명의 다른 실시예에 따른 복수 뱅크 내 어드레스 충돌을 회피하기 위한 어드레스 쉬프트 기법을 설명하기 위한 도면이고, 도 5(a)(b)(c)는 본 발명의 일 실시예에 따른 레지스터 내 데이터 갱신 패턴 설명도이다.FIG. 4B is a diagram for explaining an address shift technique for avoiding address conflicts in a plurality of banks according to another embodiment of the present invention, and FIGS. 5A, 5B, Fig. 7 is an explanatory diagram of a data update pattern in a register according to an example. Fig.

우선, 뱅크 R1을 기준으로 하여, 어드레스를 일치시키고, 나머지 어드레스들에 대하여 해당하는 크기 만큼 쉬프트 시킨다. First, the addresses are matched with respect to the bank R1, and the address is shifted by the corresponding size with respect to the remaining addresses.

이때, 어드레스를 쉬프트 시켰으나, 불일치하면서 충돌하는 뱅크R2 및 R5 내 어드레스들의 데이터들은 상호 불일치하는 어드레스의 차에 해당하는 만큼의 레지스터를 마련하여 데이터를 저장한다.At this time, the data of the addresses in the banks R2 and R5 which have shifted the addresses but are in conflict with each other in an inconsistent manner are provided with registers corresponding to the difference between addresses that are mutually inconsistent.

마련된 레지스터를 이용하여 데이터를 공급하는 과정을 구체적으로 설명하면 다음과 같다. The process of supplying data using the provided registers will be described in detail as follows.

(R2, C2')의 어드레스가 12이고, (R2, C5)의 어드레스가 16이므로, 두 위치간의 어드레스 차이는 4이다. 따라서, 도 5에 도시된 바와 같이, 레지스터 내 데이터를 저장하기 위한 필요 공간은 4개가 필요하다. 도 5(a)는 초기에 레지스터 내에 저장되는 데이터 어드레스이고, 도 5(b)는 1 싸이클 후 레지스터 내에 갱신되어 저장되는 데이터 어드레스이며, 도 5(c)는 2 싸이클 후 레지스터 내에 갱신되어 저장되는 데이터 어드레스이다.
(R2, C2 ') is 12 and the address of (R2, C5) is 16, the address difference between the two positions is 4. Therefore, as shown in Fig. 5, four spaces are required for storing the data in the register. 5A is a data address initially stored in a register, FIG. 5B is a data address updated and stored in a register after one cycle, FIG. 5C shows a data register that is updated and stored in the register after two cycles Data address.

도 6은 도 5(a)(b)(c)를 구현하기 위한 주요 구성에 대한 블럭도이다.FIG. 6 is a block diagram of a main configuration for implementing FIGS. 5 (a), (b), and (c).

본 발명의 다른 실시예에 따른 제어 유닛(640)은 가변 노드 유닛(630)과 메모리(650)를 연결하는 네트웍(641), 복수 뱅크 내에서 불일치하는 어드레스 차이를 보상하기 위한 레지스터 어레이(642), 및 레지스터 어레이의 갱신되는 데이터를 가변 노드 유닛에 공급하는 서브 컨트롤러(643)를 포함한다.The control unit 640 according to another embodiment of the present invention includes a network 641 connecting the variable node unit 630 and the memory 650, a register array 642 for compensating for discrepancies in address differences in a plurality of banks, And a sub-controller 643 for supplying updated data of the register array to the variable node unit.

서브 컨트롤러(643)는 메모리(650) 내 해당 어드레스의 데이터를 읽어들여 레지스터 어레이 내 최후 데이터를 갱신함과 아울러, 레지스터 어레이 내 최선 데이터를 가변 노드 유닛(630)으로 출력한다.
The sub controller 643 reads the data of the corresponding address in the memory 650 to update the last data in the register array and outputs the best data in the register array to the variable node unit 630.

본 발명에 따르면, LDPC 부호용 장치는 저장된 값들을 여러 번에 걸쳐 다른 순서로 독출할 필요가 있는 병렬 프로세서가 포함된 구조에서 적용 가능하다. 예컨대, 복호화기 등에 적용 가능하다.
According to the present invention, the apparatus for LDPC code is applicable in a structure including a parallel processor in which stored values need to be read out in different orders over several times. For example, it can be applied to a decoder and the like.

이와 같이, 본 발명의 상세한 설명에서는 구체적인 실시예(들)에 관해 설명하였으나, 본 발명의 범주에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예(들)에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위 뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
Although the present invention has been described in detail with respect to specific embodiments thereof, it should be understood that various changes and modifications may be made without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiment (s), but should be defined by equivalents to the appended claims, as well as the following claims.

210: 초기화부 220: 체크 노드 유닛
230: 가변 노드 유닛 240: 제어 유닛
250: 메모리 260: 판정 유닛
210: initialization unit 220: check node unit
230: variable node unit 240: control unit
250: memory 260: determination unit

Claims (9)

체크 노드 유닛, 가변 노드 유닛, 제어 유닛 및 메모리를 포함하고, 상기 메모리는 복수의 뱅크로 이루어진 저밀도 패리티 검사 부호용 장치에 있어서,
상기 메모리 내 상기 복수의 뱅크 중 어느 하나의 뱅크 - 상기 뱅크는 다수의 블록열을 포함하고, 상기 블록열 각각은 다수의 어드레스를 저장함 - 에서 상기 다수의 블록열 중 어느 하나의 블록열 내 어느 하나의 어드레스의 데이터와, 상기 다수의 블록열 중 다른 하나의 블록열 내 어느 하나의 어드레스의 데이터를 동시에 읽는 경우, 상기 어느 하나의 블록열 내 어느 하나의 어드레스가 상기 다른 하나의 블록열 내 어느 하나의 어드레스와 불일치하면, 상기 제어 유닛은 상기 어느 하나의 블록열 내 어느 하나의 어드레스가 상기 다른 하나의 블록열 내 어느 하나의 어드레스와 상호 일치하도록 상기 어느 하나의 블록열 내 어느 하나의 어드레스를 소정 간격 쉬프트 시키고, 이후 상기 가변 노드 유닛이 상기 메모리 내 체크 노드 결과값을 읽어들여 가변 노드 연산을 동시에 수행하는 것을 특징으로 하는 저밀도 패리티 검사 부호용 장치.
Wherein the memory comprises a check node unit, a variable node unit, a control unit, and a memory, wherein the memory is a device for a low density parity check code having a plurality of banks,
Wherein one of the plurality of banks in the memory and the bank includes a plurality of block columns and each of the block columns stores a plurality of addresses, And when data of any one address in one of the plurality of block sequences is simultaneously read out, any one of the addresses in any one of the block sequences is read out to any one of the other block sequences The control unit sets any one of the addresses in any one of the block sequences so that any one of the addresses in the one block sequence coincides with any one of the addresses in the other block sequence, And then the variable node unit reads the in-memory check node result value Apparatus for low density parity check code, characterized in that to perform a node calculation at the same time.
복수의 뱅크로 이루어진 메모리를 포함하는 저밀도 패리티 검사 부호용 장치에 있어서,
저밀도 패리티 검사 부호에 의해 부호화된 신호가 전송됨에 따라, 상기 저밀도 패리티 검사 부호를 위한 검사 행렬에 포함된 가변 노드를 초기화시키는 초기화부;
각 체크 노드에 연결된 모든 다른 가변 노드로부터의 정보를 바탕으로 가변 노드의 신뢰를 갱신하는 체크 노드 유닛;
상기 가변 노드의 연산을 수행하는 가변 노드 유닛;
상기 가변 노드 유닛이 연산한 결과값의 부호를 이용하여 상기 결과값의 부호에 따라 이진으로 판정하는 판정 유닛; 및
상기 복수의 뱅크 중 어느 하나의 뱅크 - 상기 뱅크는 다수의 블록열을 포함하고, 상기 블록열 각각은 다수의 어드레스를 저장함 - 에서 상기 다수의 블록열 중 어느 하나의 블록열 내 어느 하나의 어드레스의 데이터와, 상기 다수의 블록열 중 다른 하나의 블록열 내 어느 하나의 어드레스의 데이터를 동시에 읽는 경우, 상기 어느 하나의 블록열 내 어느 하나의 어드레스가 상기 다른 하나의 블록열 내 어느 하나의 어드레스와 불일치하면, 상기 어느 하나의 블록열 내 어느 하나의 어드레스가 상기 다른 하나의 블록열 내 어느 하나의 어드레스와 상호 일치하도록 상기 어느 하나의 블록열 내 어느 하나의 어드레스를 소정 간격 쉬프트 시키는 제어 유닛
을 포함하는 저밀도 패리티 검사 부호용 장치.
A low-density parity-check code comprising a memory including a plurality of banks,
An initialization unit for initializing a variable node included in a check matrix for the low density parity check code as a signal encoded by the low density parity check code is transmitted;
A check node unit updating the trust of the variable node based on information from all other variable nodes connected to each check node;
A variable node unit for performing the operation of the variable node;
A determination unit for determining the binary value according to the sign of the result value using the sign of the result value calculated by the variable node unit; And
Wherein one of the plurality of banks and the bank includes a plurality of block columns and each of the block columns stores a plurality of addresses, and wherein, in any one of the plurality of block columns, Data and data of any one address in the other block sequence among the plurality of block sequences are read at the same time, any one of the addresses in any one of the above- A control unit for shifting any one of the addresses in the one block sequence by a predetermined interval so that any one address in the one block sequence coincides with any one address in the other block sequence,
And a low-density parity-check code.
제1항 또는 제2항에 있어서, 상기 제어 유닛은,
상기 가변 노드 유닛과 상기 메모리를 연결하는 네트웍; 및
상기 다수의 블록열 중 어느 하나의 블록열 내 어느 하나의 어드레스의 데이터와, 상기 다수의 블록열 중 다른 하나의 블록열 내 어느 하나의 어드레스의 데이터를 동시에 읽는 경우, 상기 어느 하나의 블록열 내 어느 하나의 어드레스가 상기 다른 하나의 블록열 내 어느 하나의 어드레스와 불일치하면, 상기 어느 하나의 블록열 내 어느 하나의 어드레스가 상기 다른 하나의 블록열 내 어느 하나의 어드레스와 상호 일치하도록 상기 어느 하나의 블록열 내 어느 하나의 어드레스를 소정 간격 쉬프트 시키는 서브 컨트롤러
를 포함하는 저밀도 패리티 검사 부호용 장치.
3. The apparatus according to claim 1 or 2,
A network connecting the variable node unit and the memory; And
When data of any one address in any one of the plurality of block rows and data of any one address in another block row among the plurality of block rows are read at the same time, If any one of the addresses is inconsistent with any one of the addresses in the other block row, any one of the addresses in the one block row coincides with any one of the addresses in the other block row, A sub-controller for shifting any one address in the block column of the sub-
And a low-density parity-check-code generator.
제1항 또는 제2항에 있어서, 상기 제어 유닛은,
상기 복수의 뱅크 중 상기 어느 하나의 뱅크를 제외한 나머지 뱅크 내 다수의 어드레스를 상기 소정 간격 쉬프트 시키는 것을 특징으로 하는 저밀도 패리티 검사 부호용 장치.
3. The apparatus according to claim 1 or 2,
And shifts a plurality of addresses in the remaining banks excluding the one of the plurality of banks by the predetermined interval.
제3항에 있어서,
상기 복수의 뱅크 중 상기 어느 하나의 뱅크를 제외한 나머지 뱅크에서의 어드레스 간에는 충돌이 없는 것을 특징으로 하는 저밀도 패리티 검사 부호용 장치.
The method of claim 3,
Wherein there is no collision between addresses in the remaining banks excluding the one of the plurality of banks.
체크 노드 유닛, 가변 노드 유닛, 제어 유닛 및 메모리를 포함하고, 상기 메모리는 복수의 뱅크로 이루어진 저밀도 패리티 검사 부호용 장치에 있어서,
상기 복수의 뱅크 - 상기 복수의 뱅크는 각각 다수의 블록열을 포함하고, 상기 다수의 블록열은 각각 다수의 어드레스를 저장함 - 에서 상기 복수의 뱅크 중 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스의 데이터와, 상기 복수의 뱅크 중 다른 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스의 데이터를 동시에 읽는 경우, 상기 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스와, 상기 다른 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스가 불일치하면, 상기 제어 유닛은 상기 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스와, 상기 다른 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스가 상호 일치하도록 상기 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스를 소정 간격 쉬프트 시키고, 이후 상기 가변 노드 유닛이 상기 메모리 내 체크 노드 결과값을 읽어들여 가변 노드 연산을 동시에 수행하는 것을 특징으로 하는 저밀도 패리티 검사 부호용 장치.
Wherein the memory comprises a check node unit, a variable node unit, a control unit, and a memory, wherein the memory is a device for a low density parity check code having a plurality of banks,
Wherein each of the plurality of banks includes a plurality of blocks and each of the plurality of blocks stores a plurality of addresses, wherein each of the plurality of banks includes a plurality of banks, When data of one address and data of any one address belonging to one of the blocks in the other one of the plurality of banks are read at the same time, And if any one of the addresses belonging to one of the blocks in the other bank is inconsistent, the control unit judges whether any one of the addresses belonging to one of the blocks in the one bank and the address The address of one bank belonging to one of the blocks, And the variable node unit reads the result of the check node in the memory and performs the variable node operation concurrently. The low density parity check code device according to claim 1, .
복수의 뱅크로 이루어진 메모리를 포함하는 저밀도 패리티 검사 부호용 장치에 있어서,
저밀도 패리티 검사 부호에 의해 부호화된 신호가 전송됨에 따라, 상기 저밀도 패리티 검사 부호를 위한 검사 행렬에 포함된 가변 노드를 초기화시키는 초기화부;
각 체크 노드에 연결된 모든 다른 가변 노드로부터의 정보를 바탕으로 가변 노드의 신뢰를 갱신하는 체크 노드 유닛;
상기 가변 노드의 연산을 수행하는 가변 노드 유닛;
상기 가변 노드 유닛이 연산한 결과값의 부호를 이용하여 상기 결과값의 부호에 따라 이진으로 판정하는 판정 유닛; 및
상기 복수의 뱅크 - 상기 복수의 뱅크는 각각 다수의 블록열을 포함하고, 상기 다수의 블록열은 각각 다수의 어드레스를 저장함 - 에서 상기 복수의 뱅크 중 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스의 데이터와, 상기 복수의 뱅크 중 다른 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스의 데이터를 동시에 읽는 경우, 상기 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스와, 상기 다른 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스가 불일치하면, 상기 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스와, 상기 다른 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스가 상호 일치하도록 상기 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스를 소정 간격 쉬프트 시키는 제어 유닛
을 포함하는 저밀도 패리티 검사 부호용 장치.
A low-density parity-check code comprising a memory including a plurality of banks,
An initialization unit for initializing a variable node included in a check matrix for the low density parity check code as a signal encoded by the low density parity check code is transmitted;
A check node unit updating the trust of the variable node based on information from all other variable nodes connected to each check node;
A variable node unit for performing the operation of the variable node;
A determination unit for determining the binary value according to the sign of the result value using the sign of the result value calculated by the variable node unit; And
Wherein each of the plurality of banks includes a plurality of blocks and each of the plurality of blocks stores a plurality of addresses, wherein each of the plurality of banks includes a plurality of banks, When data of one address and data of any one address belonging to one of the blocks in the other one of the plurality of banks are read at the same time, And when any one of the addresses belonging to one of the blocks in the other bank is inconsistent, any one of the addresses belonging to one of the blocks in the one bank, The address of one of the banks in the one bank is set to coincide with the address of the other bank A control unit for shifting any address belonging to the lock column by a predetermined interval
And a low-density parity-check code.
제6항 또는 제7항에 있어서,
상기 제어 유닛은,
상기 가변 노드 유닛과 상기 메모리를 연결하는 네트웍;
상기 복수의 뱅크 중 어느 하나의 뱅크를 제외한 나머지 뱅크에 대하여 상기 쉬프트 후 불일치하는 어드레스 차이를 보상하기 위한 레지스터 어레이; 및
상기 레지스터 어레이의 갱신되는 데이터를 가변 노드 유닛에 공급하는 서브 컨트롤러
를 포함하는 저밀도 패리티 검사 부호용 장치.
8. The method according to claim 6 or 7,
Wherein the control unit comprises:
A network connecting the variable node unit and the memory;
A register array for compensating an address difference that is inconsistent after the shift for the remaining banks except for one of the plurality of banks; And
A sub-controller for supplying updated data of the register array to the variable node unit,
And a low-density parity-check-code generator.
제8항에 있어서,
상기 서브 컨트롤러는, 상기 메모리 내 해당 어드레스의 데이터를 읽어들여 상기 레지스터 어레이 내 최후 데이터를 갱신하고, 상기 레지스터 어레이 내 최선 데이터를 상기 가변 노드 유닛으로 출력하는 것을 특징으로 하는 저밀도 패리티 검사 부호용 장치.
9. The method of claim 8,
Wherein the sub-controller reads the data of the corresponding address in the memory, updates the last data in the register array, and outputs the best data in the register array to the variable node unit.
KR1020120024917A 2012-03-12 2012-03-12 Apparatus for low density parity check code KR101840252B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120024917A KR101840252B1 (en) 2012-03-12 2012-03-12 Apparatus for low density parity check code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120024917A KR101840252B1 (en) 2012-03-12 2012-03-12 Apparatus for low density parity check code

Publications (2)

Publication Number Publication Date
KR20130103910A KR20130103910A (en) 2013-09-25
KR101840252B1 true KR101840252B1 (en) 2018-03-20

Family

ID=49452846

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120024917A KR101840252B1 (en) 2012-03-12 2012-03-12 Apparatus for low density parity check code

Country Status (1)

Country Link
KR (1) KR101840252B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050111201A (en) * 2004-05-21 2005-11-24 삼성전자주식회사 Apparatus and method for decoding symbol with low density parity check code
KR20060125947A (en) * 2005-06-01 2006-12-07 삼성전자주식회사 Method and apparatus for ldpc channel decoding
KR20070037643A (en) * 2004-07-21 2007-04-05 퀄컴 플래리온 테크놀러지스, 인크. Ldpc encoding methods and apparatus
KR101058324B1 (en) * 2003-02-26 2011-08-22 콸콤 인코포레이티드 Method and apparatus for performing low density parity check (LDPC) code operations using multi-level permutation
EP2365639A2 (en) * 2010-02-18 2011-09-14 Hughes Network Systems, LLC Method and system for providing low density parity check (LDPC) encoding and decoding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101058324B1 (en) * 2003-02-26 2011-08-22 콸콤 인코포레이티드 Method and apparatus for performing low density parity check (LDPC) code operations using multi-level permutation
KR20050111201A (en) * 2004-05-21 2005-11-24 삼성전자주식회사 Apparatus and method for decoding symbol with low density parity check code
KR20070037643A (en) * 2004-07-21 2007-04-05 퀄컴 플래리온 테크놀러지스, 인크. Ldpc encoding methods and apparatus
KR20060125947A (en) * 2005-06-01 2006-12-07 삼성전자주식회사 Method and apparatus for ldpc channel decoding
EP2365639A2 (en) * 2010-02-18 2011-09-14 Hughes Network Systems, LLC Method and system for providing low density parity check (LDPC) encoding and decoding

Also Published As

Publication number Publication date
KR20130103910A (en) 2013-09-25

Similar Documents

Publication Publication Date Title
Ye et al. Explicit constructions of optimal-access MDS codes with nearly optimal sub-packetization
US10536169B2 (en) Encoder and decoder for LDPC code
CN103155421B (en) The many decoder architectures of LDPC
US7730377B2 (en) Layered decoding of low density parity check (LDPC) codes
US20050262420A1 (en) Apparatus and method for decoding low density parity check codes
US20130283131A1 (en) Ldpc encoding and decoding techniques
US8438448B2 (en) Decoding method and device for low density generator matrix codes
CN106936444B (en) Set decoding method and set decoder
CN109495115A (en) A kind of ldpc decoder and interpretation method based on FPGA
KR100975695B1 (en) Apparatus and method for receiving signal in a communication system
US20200091933A1 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
US9116825B2 (en) Memory controller
KR102019893B1 (en) Apparatus and method for receiving signal in communication system supporting low density parity check code
US20110179337A1 (en) Memory utilization method for low density parity check code, low density parity check code decoding method and decoding apparatus thereof
US20160049962A1 (en) Method and apparatus of ldpc encoder in 10gbase-t system
US20100185913A1 (en) Method for decoding ldpc code and the circuit thereof
JP7429223B2 (en) Turbo product code decoding method, device, decoder and computer storage medium
KR20160116980A (en) Scheduling apparatus and method of the parity check matrix h for vertical shuffle scheduling algorithm of the low density parity check decoder
CN102594369B (en) Quasi-cyclic low-density parity check code decoder based on FPGA (field-programmable gate array) and decoding method
KR101840252B1 (en) Apparatus for low density parity check code
CN110741559B (en) Polarization encoder, communication unit, integrated circuit and method thereof
US10727869B1 (en) Efficient method for packing low-density parity-check (LDPC) decode operations
EP4012929A1 (en) Multi-standard low-density parity check decoder
US11323139B2 (en) Apparatuses and methods for mapping frozen sets between polar codes and product codes
CN117375636B (en) Method, device and equipment for improving throughput rate of QC-LDPC decoder

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right