KR20130092441A - Decoder and decoding method - Google Patents

Decoder and decoding method Download PDF

Info

Publication number
KR20130092441A
KR20130092441A KR1020130006039A KR20130006039A KR20130092441A KR 20130092441 A KR20130092441 A KR 20130092441A KR 1020130006039 A KR1020130006039 A KR 1020130006039A KR 20130006039 A KR20130006039 A KR 20130006039A KR 20130092441 A KR20130092441 A KR 20130092441A
Authority
KR
South Korea
Prior art keywords
parity check
node
cyclic
check matrix
matrix
Prior art date
Application number
KR1020130006039A
Other languages
Korean (ko)
Other versions
KR102000268B1 (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 연세대학교 산학협력단
Publication of KR20130092441A publication Critical patent/KR20130092441A/en
Application granted granted Critical
Publication of KR102000268B1 publication Critical patent/KR102000268B1/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/1131Scheduling of bit node or check node processing
    • 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/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • 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
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation

Abstract

PURPOSE: A decoder and a decoding method have various decoding rate and support a block length. CONSTITUTION: An integrated node processor (110) includes groups of an inspection node and a bit node corresponding to a parity inspection matrix. The integrated node processer generates soft information about the inspection node and the bit node. A variable interconnection network (120) variably set an interconnection about groups varying with the parity inspection matrix. A circulation moving unit (130) circulates and moves the output of the variable interconnection network according to the parity inspection matrix. A parity inspection matrix storage part (140) stores a plurality of parity inspection matrixes corresponding to the plurality of decoding rates and decoding lengths. [Reference numerals] (110) Integrated node processor; (120) Variable interconnection network; (121,DD,EE,FF,GG,HH,II) Interconnection switch part; (140) Parity inspection matrix storage part; (150) LDPC decoding controller; (AA) CVP group 1; (BB) CVP group 2; (CC) CVP group 3; (JJ,MM) Circulation movement part 1; (KK,NN) Circulation movement part 2; (LL,OO) Circulation movement part 6

Description

복호화 장치 및 복호화 방법{DECODER AND DECODING METHOD}Decoding device and decoding method {DECODER AND DECODING METHOD}

본 발명은 데이터를 복호화하는 복호화 장치 및 복호화 방법에 관한 것이다.The present invention relates to a decoding apparatus and a decoding method for decoding data.

최근 LDPC 부호(codes)는 AWGN 채널에서 섀넌(Shannon)의 채널 성능 한계(limit)에 가장 근접한 오류정정 성능을 보임으로써 IEEE 802.11n WLAN, IEEE 802.16e 모바일(mobile) WiMAX, DVB-T2 와 같은 무선 통신 시스템에서 채널 부호 기법으로 사용되고 있다. 이와 같은 무선 통신 시스템에서는 채널 환경, 전송 신호의 중요도에 따라서 다양한 부호율 및 블록 길이를 사용하여 부호화 및 복호화를 수행할 필요가 있다. 따라서, 다양한 부호율 및 블록 길이를 지원할 수 있는 복호기가 요구된다. 또한, Gbps급 전송률(data rate)을 지원하는 통신 시스템의 출현에 따라 채널 복호기 또한 Gbps급 스루풋(throughput)을 지원해야 하기 때문에 고속으로 동작하는 LDPC 복호기의 기술 개발이 요구된다.Recent LDPC codes show error correction performance closest to Shannon's channel performance limit in AWGN channels, enabling wireless such as IEEE 802.11n WLAN, IEEE 802.16e mobile WiMAX, and DVB-T2. It is used as a channel coding technique in communication systems. In such a wireless communication system, it is necessary to perform encoding and decoding using various code rates and block lengths according to the channel environment and the importance of a transmission signal. Therefore, a decoder that can support various code rates and block lengths is required. In addition, with the emergence of a communication system supporting a Gbps data rate, a channel decoder also needs to support Gbps throughput, so a technology development of an LDPC decoder that operates at high speed is required.

본 발명은 다양한 부호율과 블록 길이를 지원하며, 고속으로 동작하는 복호화 장치 및 복호화 방법을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a decoding apparatus and decoding method that support various code rates and block lengths and operate at high speed.

본 발명이 해결하고자 하는 과제는 이상에서 언급된 과제로 제한되지 않는다. 언급되지 않은 다른 기술적 과제들은 이하의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the above-mentioned problems. Other technical subjects not mentioned may be clearly understood by those skilled in the art from the following description.

본 발명의 일 측면에 따른 복호화 장치는 패리티 검사 행렬에 대응하는 검사 노드와 비트 노드의 그룹들을 포함하며, 상기 검사 노드와 상기 비트 노드에 대한 소프트 정보를 생성하는 통합 노드 프로세서; 상기 통합 노드 프로세서로부터 상기 소프트 정보를 입력받고, 상기 패리티 검사 행렬에 따라 상기 그룹들에 대한 인터커넥션을 가변적으로 설정하는 가변 인터커넥션 네트워크; 그리고 상기 패리티 검사 행렬에 따라 상기 가변 인터커넥션 네트워크의 출력을 순환 이동하는 순환 이동부를 포함한다.A decoding apparatus according to an aspect of the present invention includes an integrated node processor including groups of check nodes and bit nodes corresponding to a parity check matrix, and generating soft information about the check node and the bit node; A variable interconnection network which receives the soft information from the integrated node processor and variably sets the interconnections for the groups according to the parity check matrix; And a circular moving unit for circularly moving the output of the variable interconnection network according to the parity check matrix.

일 실시 예로서, 상기 복호화 장치는 복수 개의 부호율 또는 복수 개의 부호 길이에 대응하는 복수 개의 패리티 검사 행렬을 저장하는 패리티 검사 행렬 저장부를 더 포함하며, 상기 가변 인터커넥션 네트워크는, 상기 복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 그룹들에 대한 상기 인터커넥션을 설정할 수 있다.According to an embodiment, the decoding apparatus may further include a parity check matrix storage unit configured to store a plurality of parity check matrices corresponding to a plurality of code rates or a plurality of code lengths, and the variable interconnection network may include the plurality of parity checks. The interconnection for the groups may be established according to the parity check matrix corresponding to a predetermined code rate or a predetermined code length in a matrix.

일 실시 예로서, 상기 통합 노드 프로세서의 각 그룹은 상기 패리티 검사 행렬의 서브 행렬의 크기에 대응하는 검사 노드들의 레지스터들과 비트 노드들의 레지스터들을 포함하며, 상기 레지스터들은 비트 노드들 또는 검사 노드들로부터 전송받은 브로드 캐스팅(broadcasting) 입력으로부터 합-곱 알고리즘(Sum-Product Algorithm)에 따라 생성되는 상기 소프트 정보를 저장할 수 이TEK.In one embodiment, each group of integrated node processors includes registers of bit nodes and registers of bit nodes corresponding to the size of a sub-matrix of the parity check matrix, wherein the registers are from bit nodes or check nodes. Store the soft information generated according to the sum-product algorithm from the received broadcasting input.

일 실시 예로서, 상기 가변 인터커넥션 네트워크는 상기 레지스터들과 일대일로 대응하며, 상기 패리티 검사 행렬에 따라 복수의 순환 이동부들 중 대응하는 하나 이상의 순환 이동부와 상기 인터커넥션을 설정하는 인터커넥션 스위치들을 포함할 수 있다.In one embodiment, the variable interconnection network corresponds one-to-one with the registers, and interconnection switches configured to establish the interconnection with one or more cyclic shifters of the plurality of cyclic shifters according to the parity check matrix. It may include.

일 실시 예로서, 상기 인터커넥션 스위치들은 상기 패리티 검사 행렬 중 상기 검사 노드와 상기 비트 노드가 연결되는 서브 행렬들의 정보에 기초하여, 상기 하나 이상의 순환 이동부와 상기 인터커넥션을 설정할 수 있다.In example embodiments, the interconnection switches may configure the interconnection with the one or more cyclic shifters based on information of sub-matrixes to which the check node and the bit node of the parity check matrix are connected.

일 실시 예로서, 각각의 인터커넥션 스위치는, 컨트롤 신호에 따라 하나의 입력에 대하여 2 개의 출력을 가지며, 상기 통합 노드 프로세서로부터의 입력을 복수 개의 상기 그룹들의 집합에 대응하는 복수 개의 순환 이동부로 동시에 전송할 수 있다.In one embodiment, each interconnection switch has two outputs for one input in accordance with a control signal and simultaneously inputs the inputs from the integrated node processor to a plurality of circular moving parts corresponding to a set of the plurality of groups. Can transmit

일 실시 예로서, 상기 순환 이동부는, 상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 가변 인터커넥션 네트워크로부터의 상기 입력을 제1 사이클 단위로 순환 이동하는 제1 순환 쉬프터; 그리고 상기 순환 정보에 따라 상기 제1 순환 쉬프터의 출력을 제2 사이클만큼 순환 이동하는 제2 순환 쉬프터들을 포함할 수 있다.The cyclic shifter may include: a first cyclic shifter cyclically moving the input from the variable interconnection network in units of first cycles according to cyclic information of a sub-matrix of the parity check matrix; And second cyclic shifters that cyclically move the output of the first cyclic shifter by a second cycle according to the cyclic information.

일 실시 예로서, 상기 제2 사이클은 상기 제1 사이클 단위보다 작은 값을 가질 수 있다.In an embodiment, the second cycle may have a smaller value than the first cycle unit.

일 실시 예로서, 상기 제1 순환 쉬프터는 상기 입력을 상기 제1 사이클 단위로 순환 이동하는 복수 개의 순환 쉬프트 회로들을 포함하며, 상기 복수 개의 순환 쉬프트 회로의 출력을 선택하여 상기 제2 순환 쉬프터들로 출력할 수 있다.In an embodiment, the first cyclic shifter includes a plurality of cyclic shift circuits circulating the input in the first cycle unit, and selects outputs of the plurality of cyclic shift circuits to the second cyclic shifters. You can print

본 발명의 다른 일 측면에 따른 무선 통신 장치는 패리티 검사 행렬을 이용하여 데이터로부터 부호어를 생성하는 LDPC 부호화 장치를 포함하는 송신 장치; 그리고 상기 패리티 검사 행렬을 이용하여 상기 부호어를 복호화하여 상기 데이터를 복원하는 LDPC 복호화 장치를 포함하는 수신 장치를 포함하며, 상기 LDPC 복호화 장치는, 패리티 검사 행렬에 대응하는 검사 노드와 비트 노드의 그룹들을 포함하며, 상기 검사 노드와 상기 비트 노드에 대한 소프트 정보를 생성하는 통합 노드 프로세서; 상기 통합 노드 프로세서로부터 상기 소프트 정보를 입력받고, 상기 패리티 검사 행렬에 따라 상기 그룹들에 대한 인터커넥션을 가변적으로 설정하는 가변 인터커넥션 네트워크; 그리고 상기 패리티 검사 행렬에 따라 상기 가변 인터커넥션 네트워크의 출력을 순환 이동하는 순환 쉬프터를 포함한다.According to another aspect of the present invention, there is provided a wireless communication apparatus including: a transmission apparatus including an LDPC encoding apparatus generating a codeword from data using a parity check matrix; And a receiving device including an LDPC decoding device for decoding the codeword by using the parity check matrix to restore the data, wherein the LDPC decoding device includes a group of check nodes and bit nodes corresponding to the parity check matrix. An integrated node processor for generating soft information for the check node and the bit node; A variable interconnection network which receives the soft information from the integrated node processor and variably sets the interconnections for the groups according to the parity check matrix; And a cyclic shifter cyclically moving the output of the variable interconnection network according to the parity check matrix.

일 실시 예로서, 상기 LDPC 복호화 장치는 복수 개의 부호율 또는 복수 개의 부호 길이에 대응하는 복수 개의 패리티 검사 행렬을 저장하는 패리티 검사 행렬 저장부를 더 포함하며, 상기 가변 인터커넥션 네트워크는, 상기 복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 그룹들에 대한 상기 인터커넥션을 설정할 수 있다.The LDPC decoding apparatus may further include a parity check matrix storage unit configured to store a plurality of parity check matrices corresponding to a plurality of code rates or a plurality of code lengths, and the variable interconnection network may include the plurality of parity. The interconnection for the groups may be established according to the parity check matrix corresponding to a predetermined code rate or a predetermined code length of the check matrix.

일 실시 예로서, 상기 순환 이동부는, 상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 가변 인터커넥션 네트워크로부터의 상기 입력을 제1 사이클 단위로 순환 이동하는 제1 순환 쉬프터; 그리고 상기 순환 정보에 따라 상기 제1 순환 쉬프터의 출력을 제2 사이클만큼 순환 이동하는 제2 순환 쉬프터들을 포함할 수 있다.The cyclic shifter may include: a first cyclic shifter cyclically moving the input from the variable interconnection network in units of first cycles according to cyclic information of a sub-matrix of the parity check matrix; And second cyclic shifters that cyclically move the output of the first cyclic shifter by a second cycle according to the cyclic information.

본 발명의 또 다른 일 측면에 따른 복호화 방법은 패리티 검사 행렬에 대응하는 검사 노드와 비트 노드에 대한 소프트 정보를 생성하는 단계; 상기 패리티 검사 행렬에 따라 상기 검사 노드와 상기 비트 노드 간의 인터커넥션을 가변적으로 설정하는 단계; 그리고 상기 가변적으로 설정된 상기 인터커넥션에 따라 입력되는 신호를 상기 패리티 검사 행렬에 따라 순환 이동하는 단계를 포함한다.According to another aspect of the present invention, a decoding method includes generating soft information about a check node and a bit node corresponding to a parity check matrix; Variably setting an interconnection between the check node and the bit node according to the parity check matrix; And cyclically moving a signal input according to the variably set interconnection according to the parity check matrix.

일 실시 예로서, 상기 인터커넥션을 가변적으로 설정하는 단계는, 복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 검사 노드와 상기 비트 노드 간의 상기 인터커넥션을 설정할 수 있다.According to an embodiment, the step of variably setting the interconnection may include: interworking between the check node and the bit node according to the parity check matrix corresponding to a predetermined code rate or a predetermined code length among a plurality of parity check matrices. You can set up a connection.

일 실시 예로서, 상기 순환 이동하는 단계는, 상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 입력되는 신호를 제1 사이클 단위로 순환 이동하는 단계; 그리고 상기 순환 정보에 따라 상기 제1 사이클 단위로 순환된 신호를 제2 사이클만큼 순환 이동하는 단계를 포함할 수 있다.In an embodiment, the cyclic shifting may include: cyclically shifting the input signal in units of a first cycle according to cyclic information of a sub-matrix of the parity check matrix; And cyclically moving the signal circulated in the first cycle unit by a second cycle according to the circulation information.

본 발명의 실시 예에 의하면 다양한 부호율과 블록 길이를 지원할 수 있는 복호화 장치가 제공된다.According to an embodiment of the present invention, a decoding apparatus capable of supporting various code rates and block lengths is provided.

또한, 본 발명의 실시 예에 의하면 복호화를 고속으로 수행할 수 있다.In addition, according to an embodiment of the present invention, decoding can be performed at high speed.

도 1은 본 발명의 실시 예에 따른 무선 통신 시스템의 구성도이다.
도 2는 패리티 검사 행렬을 예시적으로 나타낸 도면이다.
도 3은 위 수학식 6에 나타낸 행렬을 이분 그래프(bipartite graph) 형태로 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 LDPC 복호화 장치의 구성도이다.
도 5는 본 발명의 일 실시예에 따른 LDPC 복호화 장치를 구성하는 통합 노드 프로세서의 구성도이다.
도 6은 본 발명의 일 실시예에 따른 LDPC 복호화 장치를 구성하는 가변 인터커넥션 네트워크의 인터커넥션 스위치부의 구성도이다.
도 7은 LDPC 부호의 예시적인 패리티 검사 행렬을 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 LDPC 복호화 장치를 구성하는 순환 이동부의 구성도이다.
도 9는 도 8에 도시된 제1 순환 쉬프터의 구성도이다.
도 10은 도 8에 도시된 각각의 제2 순환 쉬프터의 구성도이다.
1 is a block diagram of a wireless communication system according to an embodiment of the present invention.
2 is a diagram illustrating a parity check matrix by way of example.
3 is a diagram illustrating a matrix shown in Equation 6 in the form of a bipartite graph.
4 is a block diagram of an LDPC decoding apparatus according to an embodiment of the present invention.
5 is a configuration diagram of an integrated node processor constituting an LDPC decoding apparatus according to an embodiment of the present invention.
6 is a block diagram of an interconnection switch unit of a variable interconnection network constituting an LDPC decoding apparatus according to an embodiment of the present invention.
7 is a diagram illustrating an exemplary parity check matrix of an LDPC code.
8 is a configuration diagram of a cyclic shifter constituting an LDPC decoding apparatus according to an embodiment of the present invention.
FIG. 9 is a configuration diagram of the first cyclic shifter illustrated in FIG. 8.
FIG. 10 is a configuration diagram of each second circulation shifter illustrated in FIG. 8.

본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되는 실시 예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Other advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.

만일 정의되지 않더라도, 여기서 사용되는 모든 용어들(기술 혹은 과학 용어들을 포함)은 이 발명이 속한 종래 기술에서 보편적 기술에 의해 일반적으로 수용되는 것과 동일한 의미를 가진다. 일반적인 사전들에 의해 정의된 용어들은 관련된 기술 그리고/혹은 본 출원의 본문에 의미하는 것과 동일한 의미를 갖는 것으로 해석될 수 있고, 그리고 여기서 명확하게 정의된 표현이 아니더라도 개념화되거나 혹은 과도하게 형식적으로 해석되지 않을 것이다.Unless defined otherwise, all terms (including technical or scientific terms) used herein have the same meaning as commonly accepted by the generic art in the prior art to which this invention belongs. Terms defined by generic dictionaries may be interpreted to have the same meaning as in the related art and / or in the text of this application, and may be conceptualized or overly formalized, even if not expressly defined herein I will not.

본 발명의 실시예에 따른 복호화 장치는 다양한 패리티 검사 행렬에 대하여 동작하는 비트 노드와 검사 노드 사이의 인터커넥션 네트워크의 가변적 제어를 통해 다양한 부호율과 블록 길이를 지원할 수 있다. 본 발명의 실시예에 따른 복호화 장치는 비트 노드와 검사 노드를 통합하여 서로 다른 클락 사이클에 동작하는 연산기를 공유함으로써 전병렬처리시 증가하는 복잡도를 감소시킬 수 있다. 본 발명의 실시예에 따른 복호화 장치는 저복잡도 병렬처리에 효율적인 순환 쉬프터(cyclic shifter) 로직을 사용한다.The decoding apparatus according to the embodiment of the present invention may support various code rates and block lengths through variable control of an interconnection network between a bit node and a check node that operate on various parity check matrices. The decoding apparatus according to the embodiment of the present invention can reduce the complexity that is increased during the parallel processing by integrating the bit node and the check node and sharing the operation units that operate in different clock cycles. The decoding apparatus according to the embodiment of the present invention uses cyclic shifter logic that is effective for low complexity parallel processing.

도 1은 본 발명의 실시 예에 따른 무선 통신 시스템의 구성도이다. 도 1을 참조하면, 무선 통신 시스템은 송신 장치(40)와 수신 장치(80)를 포함한다. 송신 장치(40)는 LDPC 부호화 장치(50)와 변조기(60)를 포함한다. LDPC 부호화 장치(50)는 데이터(m)를 입력받고, 전달받은 데이터(m)를 부호화(encoding)하여 부호어(c)를 출력한다. 변조기(60)는 LDPC 부호화 장치(50)로부터 부호어(c)를 입력받고, 부호어(c)를 무선변조한다. 무선변조된 부호어는 안테나를 통하여 수신 장치(80)에 송신된다. 수신 장치(80)는 복조기(90) 및 LDPC 복호화 장치(100)를 포함한다. 복조기(90)는 안테나를 통하여 무선변조된 부호어를 입력받고, 이를 부호어(c)로 복조한다. LDPC 복호화 장치(100)는 부호어(c)를 입력받고, 부호어(c)를 복호화(decoding)하여 데이터(m)를 출력한다.1 is a configuration diagram of a wireless communication system according to an embodiment of the present invention. Referring to FIG. 1, a wireless communication system includes a transmitting device 40 and a receiving device 80. The transmission device 40 includes an LDPC encoding device 50 and a modulator 60. The LDPC encoding apparatus 50 receives data m, encodes the received data m, and outputs a codeword c. The modulator 60 receives the codeword c from the LDPC encoder 50 and radio modulates the codeword c. The radio modulated codeword is transmitted to the receiving device 80 through an antenna. The receiving device 80 includes a demodulator 90 and an LDPC decoding device 100. The demodulator 90 receives a radio-modulated codeword through an antenna and demodulates it into a codeword (c). The LDPC decoding apparatus 100 receives a codeword c, decodes the codeword c, and outputs data m.

이와 같이, 도 1에 도시한 무선 통신 시스템(10)은 LDPC 부호화 장치(50)를 사용하여 데이터(m)를 부호어(c)로 부호화하고, LDPC 복호화 장치(100)를 사용하여 부호어(c)를 데이터(m)로 복호화함으로써, 데이터(m)를 안정적으로 송수신한다. LDPC 복호화 장치(100)는 예를 들어 아래의 수학식 1에 따라, 패리티 검사 행렬(H)을 이용하여 부호어(c)에 오류가 있는지 여부를 판단할 수 있다. 여기서, 패리티 검사 행렬은 LDPC 복호화 장치(100)에 수신된 부호어(c)에 오류가 포함되는지를 검사하기 위한 행렬을 의미한다. As described above, the wireless communication system 10 shown in FIG. 1 encodes the data m into the codeword c using the LDPC encoding apparatus 50, and uses the LDPC decoding apparatus 100 to encode the codeword ( By decoding c) into data m, data m is transmitted and received stably. The LDPC decoding apparatus 100 may determine whether there is an error in the codeword c by using the parity check matrix H, for example, according to Equation 1 below. Here, the parity check matrix means a matrix for checking whether an error is included in the codeword c received by the LDPC decoding apparatus 100.

[수학식 1][Equation 1]

H·cT = 0H-c T = 0

수학식 1에서 부호어(c)와 패리티 검사 행렬 간의 행렬 연산 값이 '0'이면 부호어(c)에 오류가 없는 것으로 판단하고, '0'이 아니면 부호어(c)에 오류가 있는 것으로 판단한다.In Equation 1, if the matrix operation value between the codeword (c) and the parity check matrix is '0', it is determined that the codeword (c) has no error, and if it is not '0', the codeword (c) has an error. To judge.

도 2는 패리티 검사 행렬을 예시적으로 나타낸 도면이다. 도 2에 도시된 바와 같이, 후술되는 준순환(quasi-cyclic) LDPC 부호에서 사용되는 패리티 검사 행렬(H)은 복수의 서브 행렬을 포함할 것이다. 각각의 서브행렬은 정사각 행렬이며, 단위 행렬의 순환 행렬이거나 영행렬이다. 패리티 검사 행렬(H)은 아래의 수학식 2와 같이 제1 행렬(H1)과 제2 행렬(H2)로 구분될 수 있다. 이때, 제2 행렬(H2)은 역행렬을 갖는 정사각 행렬이다.2 is a diagram illustrating a parity check matrix by way of example. As shown in FIG. 2, the parity check matrix H used in a quasi-cyclic LDPC code described below will include a plurality of sub-matrices. Each submatrix is a square matrix and is either a cyclic or zero matrix of unitary matrices. The parity check matrix H may be divided into a first matrix H1 and a second matrix H2 as shown in Equation 2 below. In this case, the second matrix H2 is a square matrix having an inverse matrix.

[수학식 2]&Quot; (2) "

H = [H1, H2]H = [H1, H2]

아래의 수학식 3을 참조하면, LDPC 부호화 장치(50)에 의하여 생성된 부호어(c)는 데이터(m)와 패리티 비트(parity bit)(p)로 구분될 수 있다.Referring to Equation 3 below, the codeword c generated by the LDPC encoding apparatus 50 may be divided into data m and parity bit p.

[수학식 3]&Quot; (3) "

c = [m, p]c = [m, p]

LDPC 부호화 장치(50)에서 데이터(m)를 부호화하기 위한 패리티 비트(p)는 패리티 검사 행렬(H)을 이용하여 유도된다. 예를 들어, 패리티 검사 행렬(H)은 l 개의 열들과 p(p=l-n) 개의 행들로 구성된다. 제1 행렬(H1)은 p개의 행들과 n개의 열들로 구성되며, 복수의 서브 행렬을 포함한다. 제2 행렬(H2)은 p(p=l-n)개의 행들과 p개의 열들로 구성된다.The parity bit p for encoding the data m in the LDPC encoding apparatus 50 is derived using the parity check matrix H. For example, the parity check matrix H consists of l columns and p (p = l-n) rows. The first matrix H1 is composed of p rows and n columns, and includes a plurality of sub matrices. The second matrix H2 is composed of p (p = l-n) rows and p columns.

앞서 언급된 수학식 1 내지 3은 아래의 수학식 4를 유도할 수 있다.Equations 1 to 3 mentioned above may derive Equation 4 below.

[수학식 4]&Quot; (4) "

[H1, H2]·[m, p]T = H1·mT + H2·pT = 0[H1, H2] · [m, p] T = H1 · m T + H2 · p T = 0

pT = - H2-1·H1·mT p T =-H2 -1H1m T

무선 통신 시스템(10)에서 부호어의 다양한 부호율(code rate) 및 블록 길이를 지원하기 위하여, 복수의 패리티 검사 행렬들이 이용한다. 예를 들어, IEEE 802.11n 시스템의 경우, 12개의 패리티 검사 행렬이 정의된다.In order to support various code rates and block lengths of codewords in the wireless communication system 10, a plurality of parity check matrices are used. For example, for an IEEE 802.11n system, twelve parity check matrices are defined.

패리티 검사 행렬의 원소를 임의로 생성할 경우, 패리티 검사 행렬의 정보를 저장하기 위하여 많은 메모리 공간을 필요로 하지만, 준순환(quasi-cyclic) LDPC 부호를 사용하여 LDPC(Low Density Parity Check, 저밀도 패리티 검사) 부호화 및 복호화를 수행하면, 패리티 검사 행렬을 저장하기 위한 메모리의 양을 감소시키고 연산 과정을 간단히 할 수 있다.When randomly generating elements of the parity check matrix, a large amount of memory space is required to store the information of the parity check matrix. However, a low density parity check (LDPC) using a quasi-cyclic LDPC code is used. When encoding and decoding are performed, the amount of memory for storing the parity check matrix may be reduced, and the operation process may be simplified.

준순환 LDPC 부호에서, 패리티 검사 행렬은 도 2에 도시한 바와 같이 여러 개의 작은 정사각 행렬들로 나누어지게 된다. 이러한 준순환 LDPC 부호의 패리티 검사 행렬(H)은 아래의 수학식 5와 같이 표현될 수 있다.In the quasi-cyclic LDPC code, the parity check matrix is divided into several small square matrices as shown in FIG. The parity check matrix H of the quasi-cyclic LDPC code may be expressed by Equation 5 below.

[수학식 5]&Quot; (5) "

Figure pat00001
Figure pat00001

패리티 검사 행렬(H)에서 각각의 hi ,j는 단위 행렬의 순환행렬 또는 영행렬을 나타낸다. 이러한 구조적 LDPC 부호의 특성에 기인하여, 하드웨어 구조에서 패리티 검사 행렬을 저장하는 메모리의 크기를 효과적으로 줄일 수 있다. LDPC 부호의 부호어를 복호화하는 과정은 이분 그래프(bipartite graph)를 통하여 설명될 수 있다. 아래의 수학식 6은 이분 그래프에 대응하는 행렬을 나타낸다.In the parity check matrix H, each h i , j represents a cyclic matrix or a zero matrix of the unit matrix. Due to this characteristic of the structural LDPC code, the size of the memory storing the parity check matrix in the hardware structure can be effectively reduced. The decoding of the codeword of the LDPC code can be described through a bipartite graph. Equation 6 below shows a matrix corresponding to a bipartite graph.

[수학식 6] &Quot; (6) "

Figure pat00002
Figure pat00002

도 3은 위 수학식 6에 나타낸 행렬을 이분 그래프(bipartite graph) 형태로 나타낸 도면이다. 도 3에 도시된 바와 같이, 이분 그래프는 왼쪽의 비트 노드와 오른쪽의 검사 노드로 구성될 수 있다. 비트 노드의 개수는 패리티 검사 행렬에서 열의 개수와 동일하고, 검사 노드의 개수는 패리티 검사 행렬에서 행의 개수와 동일하다.3 is a diagram illustrating a matrix shown in Equation 6 in the form of a bipartite graph. As shown in FIG. 3, the bipartite graph may include a bit node on the left side and a check node on the right side. The number of bit nodes is equal to the number of columns in the parity check matrix, and the number of check nodes is equal to the number of rows in the parity check matrix.

위 수학식 6의 행렬에서, 원소 '1'은 이분 그래프에서 서로 대응하는 비트 노드와 검사 노드를 연결하는 엣지(edge)를 나타낸다. 예를 들어, 수학식 6에 나타낸 행렬의 (3,5)의 원소가 '1'이기 때문에, 도 3에서 다섯 번째 비트 노드와 세 번째 검사 노드가 엣지(edge)로 연결된다. 이러한 방식으로 비트 노드와 검사 노드 사이에 인터커넥션(interconnection)이 형성된다.In the matrix of Equation 6, an element '1' represents an edge connecting bit nodes and check nodes corresponding to each other in a bipartite graph. For example, since the element of (3,5) of the matrix shown in Equation 6 is '1', the fifth bit node and the third check node in FIG. 3 are connected by an edge. In this way, an interconnection is formed between the bit node and the check node.

패리티 검사 행렬에 따라 부호화된 부호어의 복호화 과정은 메시지 패싱 알고리즘(message passing algorithm)에 의해서 수행된다. 메시지 패싱 알고리즘은 엣지(edge)로 연결된 비트 노드와 검사 노드가 소프트 정보(soft information)를 주고받으면서 부호어를 복호하는 과정이다. 일반적으로 소프트 정보(soft information)를 반복해서 주고 받기 때문에, 복호화 과정은 여러 번의 반복(iteration) 과정을 거쳐서 수행된다. 메시지 패싱 알고리즘의 과정은 다음과 같다.The decoding process of the codeword coded according to the parity check matrix is performed by a message passing algorithm. The message passing algorithm is a process of decoding codewords while bit nodes connected by edges and check nodes exchange soft information. In general, since soft information is repeatedly transmitted and received, the decoding process is performed through several iterations. The process of the message passing algorithm is as follows.

LDPC 부호의 부호비트의 길이가 N이고, 정보비트의 길이가 K인 경우, 패리티 비트의 길이는 N-K로 정해진다. 부호어를 c = [c1, c2,..., cN]로 나타낼 때, 관계식(xi = 1-2ci)에 의해 부호어는 심볼 시퀀스(x = [x1, x2,..., xN])로 매핑될 수 있다. 전송 심볼 x는 부가 백색 가우스 잡음(AWGN; Additive White Gaussian Noise) 채널을 통과하여 수신단으로 수신되며, 수신단에 수신된 심볼 시퀀스를 "y = [y1, y2,..., yN]"로 나타낼 수 있다.When the length of the code bit of the LDPC code is N and the length of the information bit is K, the length of the parity bit is set to NK. A codeword c = [c 1, c 2 , ..., c N] to indicate, the relationship codeword symbol sequence by (x i = 1-2c i) ( x = [x 1, x 2,. .., x N ]). The transmission symbol x is received at the receiving end through an Additive White Gaussian Noise (AWGN) channel and receives the received symbol sequence "y = [y 1 , y 2 , ..., y N ]". It can be represented as.

k번째 반복(iteration)에서 발생하는 소프트 정보(soft information)를

Figure pat00003
Figure pat00004
로 정의한다.
Figure pat00005
는 j번째 비트 노드에서 생성되어 i번째 검사 노드로 전송되는 소프트 정보(soft information)를 나타내고,
Figure pat00006
는 i번째 검사 노드에서 생성되어 j번째 비트 노드로 전송되는 소프트 정보를 나타낸다. LDPC 복호화를 위한 대표적인 반복 메시지 패싱 알고리즘(iterative message passing algorithm)인 합-곱 알고리즘(SPA; Sum-Product Algorithm)에 대해 설명하면 다음과 같다.Soft information that occurs at the k iteration
Figure pat00003
Wow
Figure pat00004
.
Figure pat00005
Represents soft information generated at the j th bit node and transmitted to the i th check node,
Figure pat00006
Represents soft information generated at the i th check node and transmitted to the j th bit node. A sum-product algorithm (SPA), which is a typical iterative message passing algorithm for LDPC decoding, will be described as follows.

초기화(Initialization)를 위해, j=1,2,...,N(N은 비트 노드 개수)일 때의 고유 정보(intrinsic information)를 계산한다. 고유 정보는 채널을 통과한 심볼 값으로부터 구할 수 있다. 고유 정보의 개수는 비트 노드의 개수와 동일하다. 고유 정보는 수신 심볼로부터 로그우도비(LLR; Log Likelihood Ratio) 형태로 아래의 수학식 7과 같이 나타낼 수 있다.For initialization, the intrinsic information when j = 1, 2, ..., N (where N is the number of bit nodes) is calculated. Unique information can be obtained from the symbol value passed through the channel. The number of unique information is equal to the number of bit nodes. The unique information may be represented by Equation 7 below in the form of a log likelihood ratio (LLR) from the received symbol.

[수학식 7][Equation 7]

Figure pat00007
Figure pat00007

반복적 복호화(Iterative decoding)에 대해 설명한다. 먼저, 초기화를 통해 생성된 고유 정보(intrinsic information)가 첫 번째 소프트 정보(soft information)로써 비트 노드에서 검사 노드로 전달된다. 비트 노드로부터 고유 정보를 받은 검사 노드는 소프트 정보(soft information)를 생성하여 다시 연결된 비트 노드에 전달한다.Iterative decoding will be described. First, intrinsic information generated through initialization is transmitted from the bit node to the check node as first soft information. Upon receiving the unique information from the bit node, the test node generates soft information and delivers the soft information back to the connected bit node.

검사 노드의 동작에 대해 살펴보면, i = 1, 2,..., N-K(N은 부호비트의 길이, K는 정보비트의 길이, N-K는 검사 노드의 개수)에 대해 생성되는 소프트 정보

Figure pat00008
는 예를 들어 아래의 수학식 8과 같다. 이때, N(i)는 i번째 검사 노드에 연결된 비트 노드 집합이다.Looking at the operation of the check node, soft information generated for i = 1, 2, ..., NK (N is the length of the sign bit, K is the length of the information bit, NK is the number of check nodes).
Figure pat00008
For example, Equation 8 below. In this case, N (i) is a set of bit nodes connected to the i th check node.

[수학식 8][Equation 8]

Figure pat00009
Figure pat00009

Figure pat00010
Figure pat00010

비트 노드 동작에 대해 살펴보면, j = 1, 2,..., N(N은 부호비트의 길이)에 대하여 생성되는 소프트 정보

Figure pat00011
는 예를 들어 아래의 수학식 9와 같다.Looking at the bit node operation, soft information generated for j = 1, 2, ..., N, where N is the length of the sign bit.
Figure pat00011
For example, Equation 9 below.

[수학식 9]&Quot; (9) "

Figure pat00012
Figure pat00012

수학식 9에서, M(j)는 j번째 비트 노드에 연결된 검사 노드의 집합이고,

Figure pat00013
는 j번째 비트 노드와 연결된 i' 번째 검사 노드로 다시 전송되는 소프트 정보(soft information)이다. 비트 결정을 할 때 필요한 소프트 정보
Figure pat00014
는 예를 들어 아래의 수학식 10으로 나타낼 수 있다.In Equation 9, M (j) is a set of check nodes connected to the j th bit node,
Figure pat00013
Is soft information transmitted back to the i'th check node connected to the j th bit node. Soft information needed when making bit decisions
Figure pat00014
For example, may be represented by Equation 10 below.

[수학식 10]&Quot; (10) "

Figure pat00015
Figure pat00015

수학식 10에서,

Figure pat00016
의 값이 0보다 크면, 부호어의 j번째 비트를 0으로, 0보다 작으면 1로 결정한다. LDPC 복호화 장치(100)는 수학식 10에 의하여, 매 반복(iteration)마다 복호된 부호어를 얻을 수 있다.In Equation (10)
Figure pat00016
If the value of is greater than 0, the j th bit of the codeword is set to 0, and if it is smaller than 0, it is set to 1. The LDPC decoding apparatus 100 may obtain a decoded codeword every iteration according to equation (10).

LDPC 복호화 장치(100)는 복호된 부호어(c)가 앞서 언급된 수학식 1의 조건을 만족하면 정확하게 복호된 부호어라고 판단하며, 부호어 중에서 정보 비트를 추출한다. 만약, 복호된 부호어(c)가 수학식 1의 조건을 만족하지 않으면 다시 반복(iteration)을 수행한다.The LDPC decoding apparatus 100 determines that the decoded codeword c is a decoded codeword if it satisfies the condition of Equation 1 described above, and extracts an information bit from the codeword. If the decoded codeword c does not satisfy the condition of Equation 1, iteration is performed again.

LDPC 복호화 장치(100)에서, LDPC 부호의 복호에 사용되는 반복적 메시지 패싱 알고리즘(iterative message passing algorithm)인 합-곱 알고리즘(SPA)은 매 반복(iteration)마다 대응하는 비트 노드와 검사 노드 사이에서 소프트 정보가 전송된다.In the LDPC decoding apparatus 100, a sum-product algorithm (SPA), which is an iterative message passing algorithm used for decoding an LDPC code, is soft between a corresponding bit node and a check node at each iteration. The information is sent.

이때, 고속 동작을 위해서는 검사 노드는 이와 연결된 복수 개의 비트 노드에 수학식 8의 소프트 정보(soft information)를 동시에 전송해야 하며, 비트 노드는 이와 연결된 복수 개의 검사 노드에 수학식 9의 소프트 정보를 동시에 전송해야 한다. 이에 따라, 하나의 비트 노드와 여러 개의 검사 노드를 연결해주는 인터커넥션(interconnection)이 필수적으로 요구된다. 하나의 검사 노드와 여러 개의 비트 노드를 연결해주는 인터커넥션 또한 요구된다.In this case, for the high speed operation, the test node must simultaneously transmit soft information of Equation 8 to the plurality of bit nodes connected thereto, and the bit node simultaneously transmits the soft information of Equation 9 to the plurality of test nodes connected thereto. Should be sent. Accordingly, an interconnection that connects one bit node and several check nodes is required. An interconnect that connects one check node and several bit nodes is also required.

LDPC 복호화 장치에서 수백에서 수천 개에 달하는 비트 노드와 검사 노드를 연결해 주는 인터커넥션 장치는 높은 복잡도를 갖는다. LDPC 복호화 장치에서 브로드캐스팅 기법을 이용할 경우, 인터커넥션 장치의 복잡도를 낮출 수 있다. 브로드캐스팅 기반의 메시지 패싱 알고리즘에 따라 수학식 1은 아래의 수학식 11과 같이 변경된다.In the LDPC decoding device, an interconnect device that connects hundreds to thousands of bit nodes and check nodes has a high complexity. When the broadcasting technique is used in the LDPC decoding apparatus, the complexity of the interconnection apparatus may be reduced. According to the broadcasting based message passing algorithm, Equation 1 is changed to Equation 11 below.

[수학식 11]&Quot; (11) "

Figure pat00017
Figure pat00017

수학식 11은 수학식 8과 다르게, i번째 검사 노드가 비트 노드들에 동일한 소프트 정보를 전달한다. 브로드캐스팅 기반의 메시지 패싱 알고리즘(message passing algorithm)은 여러 개의 검사 노드에서 비트 노드로 전송하는 정보가 동일하기 때문에 검사 노드에서 비트 노드로 데이터를 전송하는 인터커넥션 장치의 복잡도가 감소한다. 그러나 원래의 검사 노드에서 비트 노드로 전송해야 하는 데이터를 비트 노드 내에서 생성해야 하므로, 비트 노드의 복잡도가 증가한다.Unlike Equation 8, the i th check node delivers the same soft information to the bit nodes. The broadcasting-based message passing algorithm reduces the complexity of the interconnection apparatus for transmitting data from the check node to the bit node because the information transmitted from the check nodes to the bit nodes is the same. However, the complexity of the bit node increases because the data that must be transmitted from the original check node to the bit node must be generated within the bit node.

앞서 언급된 수학식 9 역시 아래의 수학식 12와 같이 변경될 수 있다.Equation 9 mentioned above may also be changed to Equation 12 below.

[수학식 12]&Quot; (12) "

Figure pat00018
Figure pat00018

검사 노드와 마찬가지로, 비트 노드 역시 여러 개의 검사 노드들로 전송되는 정보를 동일한 값으로 바꿈에 따라서 비트 노드에서 검사 노드로 연결되는 인터커넥션 장치의 복잡도를 감소할 수 있다. 하지만, 이 경우에도 원래 전송되어야 하는 수학식 9의 비트 노드의 정보를 비트 노드가 아닌 검사 노드에서 생성해야 하므로, 검사 노드의 복잡도가 증가할 수 있다.Like the check node, the bit node may reduce the complexity of the interconnection device connected from the bit node to the check node by changing the information transmitted to the plurality of check nodes to the same value. However, even in this case, since the information of the bit node of Equation 9, which should be originally transmitted, must be generated by the check node instead of the bit node, the complexity of the check node may increase.

다양한 부호율 및 부호 길이를 지원하기 위하여 다양한 패리티 검사 행렬이 정의될 수 있다. 예를 들어 준순환 LDPC 부호의 경우 패리티 검사 행렬을 수학식 5과 같이 표현할 수 있는데, 다양한 부호율을 지원하기 위하여, l과 p가 다양한 값을 가질 수 있다. 또한, 수학식 5의 패리티 검사 행렬의 서브 행렬

Figure pat00019
의 크기를 다양하게 정의하여 다양한 부호 길이를 지원할 수 있다. 따라서, 다양한 부호 길이 및 부호율을 지원하기 위하여, LDPC 복호화 장치는 다양한 패리티 검사 행렬에 대하여 유동적으로 동작할 수 있어야 한다. 이하에서 설명되는 본 발명의 실시 예는 다양한 패리티 검사 행렬, 즉 다양한 lp의 값을 가지며 다양한 서브 행렬
Figure pat00020
를 갖는 패리티 검사 행렬에 대응하여 유연하게 동작할 수 있는 LDPC 복호화 장치를 제시한다.Various parity check matrices can be defined to support various code rates and code lengths. For example, in the case of a quasi-cyclic LDPC code, the parity check matrix may be expressed as Equation 5. In order to support various code rates, l and p may have various values. In addition, the sub-matrix of the parity check matrix of Equation 5
Figure pat00019
By varying the size of, we can support various code lengths. Therefore, in order to support various code lengths and code rates, the LDPC decoding apparatus should be able to operate flexibly for various parity check matrices. Embodiments of the present invention described below have various parity check matrices, that is, various values of l and p and various submatrices.
Figure pat00020
An LDPC decoding apparatus capable of flexibly operating in correspondence with a parity check matrix having a λ is provided.

도 4는 본 발명의 일 실시예에 따른 LDPC 복호화 장치의 구성도이다. 본 발명의 일 실시예에 따른 LDPC 복호화 장치(100)는 통합 노드 프로세서(110), 가변 인터커넥션 네트워크(120), 순환 이동부들(130), 패리티 검사 행렬 저장부(140), 그리고 각 구성을 제어하기 위한 LDPC 복호 제어부(150)를 포함한다.4 is a block diagram of an LDPC decoding apparatus according to an embodiment of the present invention. The LDPC decoding apparatus 100 according to an embodiment of the present invention may include an integrated node processor 110, a variable interconnection network 120, a cyclic shifters 130, a parity check matrix storage 140, and respective components. LDPC decoding control unit 150 for controlling.

통합 노드 프로세서(combined check and variable node process)(110)는 검사 노드와 비트 노드를 프로세싱하여 출력한다. 가변 인터커넥션 네트워크(flexible interconnect network)(120)는 통합 노드 프로세서(110)로부터의 프로세싱 결과를 입력받고, LDPC 복호 제어부(150)의 제어에 의해 패리티 검사 행렬 저장부(140)에 저장된 패리티 검사 행렬의 부호율 또는 부호 길이에 대응하여 가변될 수 있다. 패리티 검사 행렬 저장부(140)은 다양한 부호율 또는 부호 길이에 대응하는 패리티 검사 행렬들을 저장할 수 있다. 순환 이동부들(130)은 가변 인터커넥션 네트워크(120)의 출력을 순환 쉬프트(cyclic shift)한다.The combined check and variable node process 110 processes and outputs a check node and a bit node. The flexible interconnect network 120 receives the processing result from the integrated node processor 110, and the parity check matrix stored in the parity check matrix storage 140 under the control of the LDPC decoding control unit 150. The code rate may vary depending on the code rate or the code length. The parity check matrix storage unit 140 may store parity check matrices corresponding to various code rates or code lengths. The cyclic shifters 130 cyclically shift the output of the variable interconnection network 120.

도 4에 도시한 본 발명의 실시 예에서, LDPC 복호화 장치(100)는 전병렬 프로세싱(fully parallel processing)에 의해 모든 비트 노드가 같은 클록에 동작하여 생성한 소프트 정보(soft information)를 검사 노드에 전달할 수 있다. 마찬가지로, 검사 노드 또한 같은 클록에 동작하여 생성된 소프트 정보를 비트 노드에 전달할 수 있다.In the embodiment of the present invention illustrated in FIG. 4, the LDPC decoding apparatus 100 may transmit soft information generated by all bit nodes operating at the same clock to a test node by fully parallel processing. Can be. Similarly, the check node can also operate on the same clock and pass the generated soft information to the bit node.

부분병렬 프로세싱(partially parallel processing)의 경우, 비트 노드와 검사 노드 사이에서 메시지를 주고 받을 때 필요한 클록 사이클 수가 많기 때문에, 높은 스루풋(throughput)을 달성하는데 한계가 있다. 이와 달리, 전병렬 프로세싱은 비트 노드와 검사 노드 사이에 메시지를 전달하는 과정에서 필요한 클록 사이클 수가 적기 때문에 수 Gbps급 이상의 높은 스루풋(throughput)을 달성하는데 효과적이다. 하지만, 전병렬 프로세싱의 경우, 하드웨어 구현 시 비트 노드와 검사 노드의 개수에 비례하여 하드웨어 복잡도가 증가한다. 메시지 패싱 알고리즘으로 브로드캐스팅 기법이 적용된 합-곱 알고리즘(SPA)을 사용하면, 전병렬 처리를 사용함에 따라 증가하는 인터커넥션의 복잡도를 낮출 수 있다.In the case of partial parallel processing, there is a limit in achieving high throughput because of the large number of clock cycles required for sending and receiving messages between bit nodes and check nodes. In contrast, all-parallel processing is effective in achieving high throughput of several Gbps or more because the number of clock cycles required in transferring a message between bit nodes and check nodes is small. However, in the case of all parallel processing, hardware complexity increases in proportion to the number of bit nodes and check nodes in the hardware implementation. Using the sum-product algorithm (SPA) with the broadcasting technique as the message passing algorithm can reduce the complexity of the interconnection that increases with the use of pre-parallel processing.

기존의 SPA에서는, 비트 노드와 검사 노드가 수행해야 하는 동작이 명확히 구분되어 있어서, 각각이 필요한 하드웨어 자원(resource)만을 가지고 있으면 되었으나, 본 발명의 실시 예에서 브로드캐스팅 기법이 SPA에 적용됨에 따라, 비트 노드는 검사 노드가 수행해야 하는 동작의 일부를 지원해야 하고, 또한 검사 노드는 비트 노드가 수행해야 하는 동작의 일부를 지원해야 한다. 또한, 각각의 비트 노드와 검사 노드는 원래 SPA에서 지원해야 하는 기능 또한 지원해야 한다.In the existing SPA, the operations that the bit node and the check node need to perform are clearly distinguished, and each of them needs to have only the necessary hardware resources. The bit node must support some of the operations that the check node must perform, and the check node must also support some of the operations that the bit node should perform. In addition, each bit node and check node must also support the functionality that the original SPA must support.

따라서, 브로드캐스팅 기법이 적용된 SPA를 이용하는 LDPC 복호의 경우에 있어, 비트 노드와 검사 노드의 하드웨어의 복잡도가 증가하게 된다. 이에, 브로드캐스팅 기법이 적용되면서 증가한 하드웨어의 복잡도를 낮출 수 있도록, 본 발명의 실시 예에 따른 LDPC 복호화 장치(100)의 통합 노드 프로세서(110)는 각각의 그룹 내에 비트 노드와 검사 노드를 통합시킨 병합된 검사 및 체크 노드 프로세서(combined variable and check node processor)로써 구현될 수 있다.Therefore, in the case of LDPC decoding using SPA to which broadcasting technique is applied, hardware complexity of bit node and check node is increased. Accordingly, in order to reduce the complexity of the hardware increased as the broadcasting technique is applied, the integrated node processor 110 of the LDPC decoding apparatus 100 according to the embodiment of the present invention integrates a bit node and a check node in each group. It may be implemented as a combined variable and check node processor.

통합 노드 프로세서(110)는 N개의 CVP 그룹들(CVP 그룹 1~N)로 이루어질 수 있다. 각 CVP 블록은 여러 개의 CVP(CVP1~Z)를 포함한다. 각 CVP는 비트 노드의 기능(variable node processor)과 검사 노드의 기능(check node processor)을 모두 가지고 있다. 다양한 부호율 및 부호 길이를 지원하기 위하여 패리티 검사 행렬의 서브 행렬이 다양한 크기를 가질 때, 하나의 CVP 그룹(group) 내에서 사용되는 CVP의 개수는 다양할 수 있다. 예를 들어, 패리티 검사 행렬의 서브 행렬의 크기가 10이라면 10개의 CVP가 필요하고 서브 행렬의 크기가 20이라면 20개의 CVP가 필요하다.The integrated node processor 110 may be composed of N CVP groups (CVP groups 1 to N). Each CVP block contains several CVPs (CVP1 ~ Z). Each CVP has both a variable node processor and a check node processor. When the sub-matrix of the parity check matrix has various sizes to support various code rates and code lengths, the number of CVPs used in one CVP group may vary. For example, if the size of the sub-matrix of the parity check matrix is 10, 10 CVPs are required. If the size of the sub-matrix is 20, 20 CVPs are needed.

다양한 서브 행렬의 크기를 지원하기 위해서는, 크기가 가장 큰 서브 행렬만큼의 CVP가 필요하다. 언급된 예의 경우, 20개의 CVP가 필요하며, 이 중에서 10개만 사용하고 나머지 10개는 사용하지 않음으로써 크기가 10인 서브 행렬을 지원할 수 있다. 즉, CVP 그룹(group) 내의 CVP의 개수는 다양한 서브 행렬의 지원과 관련이 있다.In order to support the sizes of the various submatrices, the CVP is required as much as the largest submatrices. For the example mentioned, 20 CVPs are required, and only 10 of them can be used, and the remaining 10 can be used to support submatrices of size 10. That is, the number of CVPs in a CVP group is related to the support of various submatrices.

또한, 수학식 5의 패리티 검사 행렬을 보면 p개의 서브 행렬과 l개의 서브 행렬을 통하여 패리티 검사 행렬의 열과 행이 정의된다. 이때 p개의 서브 행렬이 패리티 검사 행렬의 부호어의 길이를 결정한다. 또한, p개 서브 행렬이 결정되었을 때, l이 부호율을 결정하게 된다. 따라서 p개의 서브 행렬을 갖는 패리티 검사 행렬을 지원하기 위하여, 다시 말해 p개의 서브 행렬을 갖는 패리티 검사 행렬에 의해 생성된 부호어를 복호하기 위하여 p개의 CVP 그룹이 필요하다.Also, in the parity check matrix of Equation 5, columns and rows of the parity check matrix are defined through p sub matrices and l sub matrices. At this time, p sub-matrix determines the length of the codeword of the parity check matrix. Further, when p submatrices are determined, l determines the code rate. Therefore, in order to support the parity check matrix having a sub-matrix of p, the p number of CVP group is necessary in order to decode the code words generated by the parity check matrix, in other words having a p sub-matrix.

예를 들어 p가 24일 경우 24개의 CVP 그룹(group)이 필요하고, p가 20인 경우 20개의 CVP 그룹이 필요할 것이다. 따라서, 지원해야 하는 패리티 검사 행렬 중 p의 값이 가장 큰 패리티 검사 행렬에 맞추어 CVP 그룹의 개수가 결정될 수 있다. 언급된 예에서, CVP 그룹의 개수는 24로 결정된다. 만약, p가 20인 패리티 검사 행렬에 대하여 복호를 수행할 때는 20개의 CVP 그룹만 사용하고 나머지 4개는 사용하지 않을 수 있다. 이러한 방식으로 다양한 부호어 길이에 대응하여 복호화가 가능하다.For example, if p is 24, you will need 24 CVP groups. If p is 20, you will need 20 CVP groups. Therefore, the number of CVP groups may be determined according to the parity check matrix having the largest value p among the parity check matrices to be supported. In the example mentioned, the number of CVP groups is determined to be 24. When decoding the parity check matrix having p of 20, only 20 CVP groups may be used and the remaining 4 may not be used. In this manner, decoding can be performed corresponding to various codeword lengths.

비트 노드와 검사 노드가 따로 구현되는 경우, 하드웨어의 복잡도가 두 배 정도로 증가한다. 본 발명의 실시 예를 구성하는 통합 노드 프로세서(110)는 브로드캐스팅이 적용된 경우에 있어서, 검사 노드와 비트 노드에서 사용되는 로직의 종류가 대부분 비슷함을 이용하여 하나의 프로세서를 이용하여 메시지 패싱 알고리즘을 구현할 수 있다.If the bit node and check node are implemented separately, the complexity of the hardware is doubled. In the case where broadcasting is applied, the integrated node processor 110 constituting an embodiment of the present invention uses a single processor to generate a message passing algorithm using most similar types of logic used in the check node and the bit node. Can be implemented.

도 5는 본 발명의 일 실시예에 따른 LDPC 복호화 장치를 구성하는 통합 노드 프로세서의 구성도이다. 도 5에 도시된 바와 같이, 통합 노드 프로세서(110)는 비트 노드 레지스터들(111), 검사 노드 레지스터들(112), 제1 로직(113), 가산기(114), 제2 로직(115)을 포함한다. 각각의 비트 노드 레지스터(1111)는 N 개의 비트 노드들 중 하나에 대응하며, 각각의 검사 노드 레지스터(1121)는 M 개의 비트 노드들 중 하나에 대응한다. 패리티 검사 행렬에 따라, 하나의 비트 노드 또는 검사 노드는 여러 개의 검사 노드들 또는 비트 노드들과 연결된다. 비트 노드는 이와 연결된 다수의 검사 노드들로부터 브로드캐스팅 입력 데이터를 전송받고, 검사 노드는 다수의 비트 노드들로부터 브로드캐스팅 입력 데이터를 전송받는다.5 is a configuration diagram of an integrated node processor constituting an LDPC decoding apparatus according to an embodiment of the present invention. As shown in FIG. 5, the integrated node processor 110 may remove the bit node registers 111, the check node registers 112, the first logic 113, the adder 114, and the second logic 115. Include. Each bit node register 1111 corresponds to one of the N bit nodes, and each check node register 1121 corresponds to one of the M bit nodes. According to the parity check matrix, one bit node or check node is connected with several check nodes or bit nodes. The bit node receives broadcast input data from a plurality of check nodes connected thereto, and the check node receives broadcast input data from a plurality of bit nodes.

도 5에 도시한 실시 예에서는 N개의 검사 노드 또는 비트 노드로부터 N개의 브로드캐스팅 입력 데이터가 제1 로직(113)으로 입력된다. 브로드캐스팅 입력 데이터로부터 브로드캐스팅 출력 데이터를 생성하는 과정은 다음과 같다. 제1 로직(113)은 다중화기(1131)와 매핑부(1132)를 이용하여 기존의 SPA와 마찬가지의 방식에 따라 SPA 데이터를 생성하여 가산기(114)로 출력한다. 매핑부(1132)는 예를 들어 룩업테이블(LUT)을 이용하여 입력에 대응하는 매핑 데이터를 검출할 수 있다. 가산기(114)는 덧셈 연산을 통해 모든 SPA 데이터를 더하여, 브로드캐스팅 출력을 생성한다.In the embodiment shown in FIG. 5, N broadcasting input data are input to the first logic 113 from N check nodes or bit nodes. The process of generating broadcasting output data from broadcasting input data is as follows. The first logic 113 generates SPA data using the multiplexer 1131 and the mapping unit 1132 in the same manner as the existing SPA, and outputs the SPA data to the adder 114. The mapping unit 1132 may detect mapping data corresponding to the input using, for example, a lookup table (LUT). The adder 114 adds all the SPA data through an add operation to produce a broadcasting output.

브로드캐스팅 기법이 적용된 경우, 각각의 노드(비트 노드 또는 검사 노드)는 기존의 SPA에서 생성하는 것과 동일한 데이터를 생성하여 저장할 필요가 있다. 브로드캐스팅 입력 데이터는 기존의 SPA에서 받게 되는 데이터와 차이를 가지므로, 기존의 SPA에서 받게 되는 데이터로 만들어야 한다. 이는 가산기(114)의 출력단 측에 연결되는 제2 로직(115)의 다중화기(1151)와 매핑부(1152)의 룩업테이블(LUT)을 이용하여 수행될 수 있다.When the broadcasting technique is applied, each node (bit node or check node) needs to generate and store the same data generated by the existing SPA. Since the broadcasting input data is different from the data received from the existing SPA, it should be made into the data received from the existing SPA. This may be performed by using the multiplexer 1151 of the second logic 115 connected to the output terminal side of the adder 114 and the lookup table LUT of the mapping unit 1152.

이 과정이 끝나면 기존의 SPA에서 받게 되는 것과 같은 데이터를 각각의 노드(비트 노드 또는 검사 노드)들이 갖게 된다. 제2 로직(115)에서 연산된 결과는 비트 노드 연산인지 검사 노드 연산인지에 따라 해당 레지스터(register)(111,112)에 저장된다. 이후, 각 노드는 다시 브로드캐스팅 출력을 생성하여 연결된 노드로 전달하며, 전달된 브로드 캐스팅 출력은 클록 사이클의 연산 수행시에 사용된다.At the end of this process, each node (bit node or check node) has the same data that it would receive in the existing SPA. The result calculated by the second logic 115 is stored in the registers 111 and 112 according to whether it is a bit node operation or a check node operation. Thereafter, each node generates a broadcasting output again and delivers it to the connected node, and the delivered broadcasting output is used when performing a calculation of a clock cycle.

전병렬 프로세싱의 경우, 비트 노드와 검사 노드가 동작하는 시점이 항상 다르기 때문에, 필요한 로직들은 시간 공유(time sharing)가 가능하다. 본 발명의 실시 예는 브로드캐스팅 기법을 지원하여 고속으로 동작하면서도, 병합된 검사 및 체크 노드 프로세서(combined variable and check node processor)에 의하여 검사 노드와 비트 노드의 하드웨어 복잡도는 기존의 SPA과 동일한 수준으로 유지할 수 있다.In the case of pre-parallel processing, the time required for the bit node and the check node are always different, so the necessary logics can be time shared. While the embodiment of the present invention supports a broadcasting scheme and operates at a high speed, the hardware complexity of the check node and the bit node by the combined variable and check node processor is the same as that of the existing SPA. I can keep it.

전병렬 처리(Fully parallel architecture)에 있어, 비트 노드와 검사 노드가 회로 접속에 의해 배선 연결(hardwired)되면, 다양한 패리티 검사 행렬을 지원하기 어렵게 된다. 즉, 패리티 검사 행렬에 따라 비트 노드와 검사 노드 간의 연결이 다른데, 기존의 배선 연결(hardwired) 인터커넥션 방식의 경우, 특정한 하나의 패리티 검사 행렬에서 검사 노드 또는 비트 노드 간에 연결 동작을 수행하는 것은 가능하지만, 패리티 검사 행렬의 변화에 대응하여 비트 노드와 검사 노드의 연결을 바꾸지 못한다.In a fully parallel architecture, when the bit node and the check node are hardwired by circuit connection, it becomes difficult to support various parity check matrices. That is, the connection between the bit node and the check node is different according to the parity check matrix. In the conventional hardwired interconnection scheme, it is possible to perform a connection operation between the check node or the bit node in one specific parity check matrix. However, in response to the change of the parity check matrix, the connection of the bit node and the check node cannot be changed.

이에, 본 발명의 실시 예에 따른 LDPC 복호화 장치(100)를 구성하는 가변 인터커넥션 네트워크(120)는 다양한 패리티 검사 행렬을 지원할 수 있도록 제공된다. 가변 인터커넥션 네트워크(120)는 패리티 검사 행렬에 따라 재구성 가능(reconfigurable)한 유동적 인터커넥션 네트워크로써 구현된다.Accordingly, the variable interconnection network 120 constituting the LDPC decoding apparatus 100 according to an embodiment of the present invention is provided to support various parity check matrices. The variable interconnection network 120 is implemented as a flexible interconnection network reconfigurable according to a parity check matrix.

도 6은 본 발명의 일 실시예에 따른 LDPC 복호화 장치를 구성하는 가변 인터커넥션 네트워크의 인터커넥션 스위치부의 구성도이다. 도 4 및 도 6을 참조하면, 가변 인터커넥션 네트워크(Flexible Interconnection Network)(120)의 인터커넥션 스위치부(121)들을 포함한다. 각각의 인터커넥션 스위치부(121)는 통합 노드 프로세서(110)의 하나의 검사 및 비트 노드 프로세서(CVP)에 일대일 대응하며, 입력 포트(input port)를 통해 브로드캐스팅 출력을 대응하는 검사 및 비트 노드 프로세서로부터 입력받는다. 다양한 패리티 검사 행렬을 지원하기 위하여 하나의 CVP에서 나온 브로드캐스팅 출력 데이터는 패리티 검사 행렬에 따라서 최대 24개의 CVP 그룹에 연결될 수 있다.6 is a block diagram of an interconnection switch unit of a variable interconnection network constituting an LDPC decoding apparatus according to an embodiment of the present invention. 4 and 6, the interconnection switch units 121 of the flexible interconnection network 120 are included. Each interconnection switch unit 121 corresponds to one test and bit node processor (CVP) of the integrated node processor 110 one-to-one, and the test and bit node corresponding to the broadcast output through the input port (input port) It receives input from the processor. In order to support various parity check matrices, broadcasting output data from one CVP may be connected to up to 24 CVP groups according to the parity check matrix.

하나의 CVP 그룹의 24개의 CVP 그룹에 각각 연결하게 되면, 인터커넥션 네트워크의 복잡도가 커지게 된다. 본 발명의 실시 예에 있어서, 가변 인터커넥션 네트워크(120)는 여러 개의 CVP 그룹을 하나의 큰 그룹(group)으로 묶어서 인터커넥션을 수행할 수 있다. 도 6에는 4개의 CVP 그룹을 하나의 큰 그룹으로 묶은 예가 도시되어 있다.Connecting to 24 CVP groups in one CVP group increases the complexity of the interconnection network. In an embodiment of the present invention, the variable interconnection network 120 may perform interconnection by grouping several CVP groups into one large group. 6 shows an example in which four CVP groups are grouped into one large group.

인터커넥션 스위치부(121)는 두 개의 컨트롤 신호(CTRL0, CTRL1)를 받는 스위치들(1211~1215)를 사용하여 인터커넥션을 수행할 수 있다. 각 스위치(1211~1215)는 두 개의 전송 게이트(TG1,TG2)를 포함한다. 2개의 전송 게이트(TG1,TG2)는 공통된 입력에 대응하여 컨트롤 신호(CTRL0, CTRL1)에 따라 2개의 출력(출력0, 출력1)을 생성한다. 예를 들어, 검사 노드 또는 비트 노드에 대해, CVP 그룹(group) 1~4를 연결할 필요가 없는 경우, 컨트롤 신호를 조절하여 CVP 그룹 1~4으로는 브로드캐스팅 출력 데이터를 보내지 않고 CVP 그룹 5~8으로 브로드캐스팅 출력 데이터를 보낼 수 있다.The interconnection switch unit 121 may perform interconnection using the switches 1211 to 1215 receiving two control signals CTRL0 and CTRL1. Each switch 1211 to 1215 includes two transmission gates TG1 and TG2. The two transfer gates TG1 and TG2 generate two outputs (output 0 and output 1) according to the control signals CTRL0 and CTRL1 in response to a common input. For example, if you do not need to connect CVP groups 1 to 4 for a check node or a bit node, adjust the control signal to send CVP groups 5 to 4 without sending broadcast output data to CVP groups 1 to 4. You can send the broadcast output data to 8.

다른 예로, CVP 그룹 1~8으로 연결할 필요가 없는 경우에는, CVP 그룹 1~8까지는 데이터를 보내지 않도록 컨트롤 신호를 조절할 수 있다. 이러한 컨트롤 신호는 패리티 검사 행렬에 따라 다르게 생성될 수 있다. 따라서, 패리티 검사 행렬에 따라 스위치들(1211~1215)을 제어하여 가변적으로 CVP 그룹으로 연결 또는 차단을 구현할 수 있으며, 다양한 패리티 검사 행렬을 지원할 수 있다.As another example, if there is no need to connect to CVP groups 1-8, the control signal can be adjusted so that no data is sent to CVP groups 1-8. Such a control signal may be generated differently according to the parity check matrix. Accordingly, the switches 1211 to 1215 may be controlled according to the parity check matrix to variably connect or block the CVP group, and support various parity check matrices.

도 7은 LDPC 부호의 예시적인 패리티 검사 행렬을 나타낸 도면이다. 이는 IEEE 802.11n WLAN 시스템에서 사용되는 준순환 LDPC 부호의 패리티 검사 행렬을 나타낸다. 패리티 검사 행렬은 제1 행렬(H1)과 제2 행렬(H2)로 구분된다. 제1 행렬(H1)은 4 개의 행들과 20개의 열들로 구성되며, 제2 행렬(H2)은 4 개의 행들과 4 개의 열들로 구성된다. 또한, 각 서브 행렬은 단위 행렬의 순환 행렬 또는 영행렬로 구현된다. 하나의 네모 칸은 서브 행렬을 나타낸다. 서브 행렬의 크기가 81이라고 했을 때, 81개의 비트 노드와 81개의 검사 노드는 하나의 그룹을 이루는 것이다.7 is a diagram illustrating an exemplary parity check matrix of an LDPC code. This shows the parity check matrix of the quasi-cyclic LDPC code used in the IEEE 802.11n WLAN system. The parity check matrix is divided into a first matrix H1 and a second matrix H2. The first matrix H1 consists of four rows and twenty columns, and the second matrix H2 consists of four rows and four columns. In addition, each sub-matrix is implemented as a cyclic matrix or a zero matrix of the unit matrix. One square represents a submatrix. When the size of the sub-matrix is 81, 81 bit nodes and 81 check nodes form a group.

도 7에서 각 서브 행렬에 표시된 숫자는 단위 행렬의 순환 이동(cyclic shift)의 크기를 나타낸다. 패리티 검사 행렬에서 첫 번째 행의 첫 번째 열, 즉 (1,1) 서브 행렬에 기재된 숫자 '13'은, 1~81의 비트 노드와 1~81의 검사 노드 사이에 인터커넥션이 있으며, 서로 '13'만큼 순환 이동(cyclic shift)되어 비트 노드와 검사 노드가 연결되는 것을 의미한다. 즉, 1번 비트 노드는 14번 검사 노드에, 2번 비트 노드는 15번 검사 노드에, 같은 방식으로 81번 비트 노드는 13번 검사 노드에 연결된다는 것을 의미하며, 이때 순환 쉬프터(clic shifter)를 필요로 한다. '-' 는 영행렬을 나타내며, 인터커넥션이 없다는 것을 의미한다.In FIG. 7, the numbers indicated in each sub-matrix represent the magnitude of the cyclic shift of the unit matrix. In the parity check matrix, the number '13' described in the first column of the first row, that is, the (1,1) sub-matrix, has an interconnection between the bit nodes of 1-81 and the check nodes of 1-81, This means that the bit node and the check node are connected by cyclic shift by 13 '. That is, bit 1 node is connected to check node 14, bit 2 node is connected to check node 15, and bit node 81 is connected to check node 13 in the same manner, where a cyclic shifter is used. Need. '-' Represents a zero matrix, meaning no interconnection.

순환 이동부(130)는 도 4에 도시된 바와 같이 가변 인터커넥션 네트워크(120)의 출력과 연결된다. 도 7에 도시한 패리티 검사 행렬을 예로 들면, 첫 번째 비트 노드 그룹에서 가변 인터커넥션 네트워크(120)의 인터커넥션 스위치부(121)로 데이터를 내보내면, 인터커넥션 스위치부(121)를 통하여 첫 번째에서 네 번째 검사 노드 그룹으로 데이터가 전송된다.The circular movement unit 130 is connected to the output of the variable interconnection network 120 as shown in FIG. Taking the parity check matrix shown in FIG. 7 as an example, when data is sent from the first bit node group to the interconnection switch unit 121 of the variable interconnection network 120, the first connection is performed through the interconnection switch unit 121. Is sent to the fourth check node group.

도 7에 도시한 실시 예의 경우, 네 번째 검사 노드 그룹밖에 존재하지 않으므로, 인터커넥션 스위치부(121)는 CVP 그룹 1~4에만 데이터를 전송할 것이다. 순환 이동부(130)는 전송된 데이터를 '13', '69', '51', '16'이라는 값만큼 순환 쉬프트(cyclic shift)하여 각각의 CVP 그룹으로 전송한다. 즉, 순환 이동부(130)는 하나의 입력에 대응하여 네 개의 순환 쉬프트(cyclic shift) 출력을 발생한다.In the case of the embodiment illustrated in FIG. 7, since only the fourth test node group exists, the interconnection switch unit 121 may transmit data only to the CVP groups 1 to 4. The cyclic shifter 130 cyclically shifts the transmitted data by the values '13', '69', '51', and '16' and transmits the data to each CVP group. That is, the cyclic shift unit 130 generates four cyclic shift outputs in response to one input.

도 8은 본 발명의 일 실시예에 따른 LDPC 복호화 장치를 구성하는 순환 이동부의 구성도이다. 도 8을 참조하면, 순환 이동부(130)는 제1 순환 쉬프터(1st stage cyclic shifter)(131)와, 제2 순환 쉬프터(2nd stage cyclic shifter)들(132)을 포함한다. 즉, 순환 이동부(130)는 2-스테이지(two stage)의 순환 쉬프터 구조로 이루어져 있다.8 is a configuration diagram of a cyclic shifter constituting an LDPC decoding apparatus according to an embodiment of the present invention. Referring to FIG. 8, the cyclic shifter 130 includes a first stage cyclic shifter 131 and second cyclic shifters 132. That is, the cyclic shifter 130 has a two-stage cyclic shifter structure.

도 7에 도시한 패리티 검사 행렬의 첫 번째 열을 보면 순환 쉬프트 값(cyclic shift value)이 '13', '69', '51', '16'으로 그 크기가 다양함을 알 수 있다. 이것을 동시에 지원하기 위해서는 네 개의 순환 쉬프터(cyclic shifter)가 필요한데, 단순히 네 개의 순환 쉬프터(cyclic shifter)를 병렬로 연결하여 순환 이동을 구현할 경우, 복잡도가 증가할 수 있다.Looking at the first column of the parity check matrix shown in Figure 7 it can be seen that the size of the cyclic shift value (cyclic shift value) is '13', '69', '51', '16'. In order to support this simultaneously, four cyclic shifters are required. If cyclic shifts are implemented by simply connecting four cyclic shifters in parallel, complexity may increase.

이에 따라, 제1 순환 쉬프터(131)는 정해진 순환 쉬프트(cyclic shift) 단위(예를 들어 16 사이클)로 순환 이동(cyclic shift)을 수행한다. 이에 따라, 제1 순환 쉬프터(131)는 일정 범위만큼의 순환 쉬프트(cyclic shift) 동작을 수행하여 제2 순환 쉬프터들(132)로 출력을 내보낸다. 제2 순환 쉬프터들(132)은 제1 순환 쉬프터(131)에 의하여 첫 번째 스테이지에서 수행된 순환 이동(cyclic shift) 이후에 부족한 양만큼 순환 이동을 수행한다.Accordingly, the first cyclic shifter 131 performs a cyclic shift in a predetermined cyclic shift unit (for example, 16 cycles). Accordingly, the first cyclic shifter 131 outputs the output to the second cyclic shifters 132 by performing a cyclic shift operation by a predetermined range. The second cyclic shifters 132 perform a cyclic shift by an insufficient amount after the cyclic shift performed in the first stage by the first cyclic shifter 131.

일 실시 예로, 브로드캐스팅 데이터는 가변 인터커넥션 네트워크(120)에서 4개의 CVP 그룹 단위로 연결되는 경우, 하나의 순환 쉬프터(cyclic shifter)에서는 네 개의 서로 다른 순환 쉬프트(cyclic shift) 크기를 지원할 수 있어야 한다. 따라서, 제2 순환 쉬프터들(132)은 병렬적 순환 쉬프터(parallelized cyclic shifter) 구조로 배치되어 병렬 처리를 수행한다.In one embodiment, when the broadcasting data is connected in units of four CVP groups in the variable interconnection network 120, one cyclic shifter should be able to support four different cyclic shift sizes. do. Accordingly, the second cyclic shifters 132 are arranged in a parallelized cyclic shifter structure to perform parallel processing.

도 9는 도 8에 도시된 제1 순환 쉬프터의 구성도이다. 도 9에 도시한 바와 같이, 제1 순환 쉬프터(131)는 입력을 특정 사이클(예를 들어 16 사이클) 순환시키는 순환 쉬프트 회로들(1311~1315)을 포함한다. 제1 순환 쉬프터(131)는 제1 내지 제5 순환 쉬프트 회로(1311~1315)를 시리얼(serial)로 연결하여 구현될 수 있다.FIG. 9 is a configuration diagram of the first cyclic shifter illustrated in FIG. 8. As shown in FIG. 9, the first cyclic shifter 131 includes cyclic shift circuits 1311-1315 for circulating the input in a specific cycle (eg, 16 cycles). The first cyclic shifter 131 may be implemented by connecting the first to fifth cyclic shift circuits 1311 to 1315 in serial.

제1 순환 쉬프터(131)는 패리티 검사 행렬에 정의된 순환 쉬프트 값(cyclic shift value)에 따라서 출력 포인트를 선택해서 제2 순환 쉬프터들(132)로 데이터를 넘길 수 있다. 데이터의 길이가 27, 54, 81 중의 하나인 경우, 순환 쉬프트 회로(1311)를 27개씩(16+11) 세 영역으로 나누어, 멀티플렉서(multiplexer)의 선택을 통해 모든 경우를 지원할 수 있도록 구현될 수 있다. 제1 순환 쉬프터(131) 내에 멀티플렉서가 존재하지만 기본적으로 순환 쉬프트(cyclic shift) 단위가 16 단위 하나이기 때문에 로직의 복잡도는 높지 않다.The first cyclic shifter 131 may select an output point according to a cyclic shift value defined in the parity check matrix and pass data to the second cyclic shifters 132. When the length of data is one of 27, 54, and 81, the cyclic shift circuit 1311 may be divided into three regions of 27 (16 + 11), and may be implemented to support all cases through the selection of a multiplexer. have. Although the multiplexer is present in the first cyclic shifter 131, the complexity of the logic is not high because basically one cyclic shift unit is 16 units.

제1 순환 쉬프터(131)의 순환 쉬프트 단위가 '16'인 경우를 예로 들면, 도 7에 도시한 패리티 검사 행렬의 첫 번째 열에서, 첫 번째 순환 쉬프트 값(cyclic shift value)은 '13'이므로, 제1 순환 쉬프터(131)는 입력을 쉬프트(shift) 시키지 않고 바로 제2 순환 쉬프터들(132)로 보낸다. 이후, 제2 순환 쉬프터들(132)에 의해 13번의 순환 쉬프트가 수행된다.For example, when the cyclic shift unit of the first cyclic shifter 131 is '16', in the first column of the parity check matrix illustrated in FIG. 7, the first cyclic shift value is '13'. The first cyclic shifter 131 sends the input directly to the second cyclic shifters 132 without shifting the input. Thereafter, thirteen cyclic shifts are performed by the second cyclic shifters 132.

도 7에 도시한 패리티 검사 행렬의 첫 번째 열에서, 두 번째 순환 쉬프트 값은 '69'이므로, 제1 순환 쉬프터(131)는 16 사이클 단위로 4 단계를 거쳐 '64'까지 순환 쉬프트(cyclic shift)를 수행하여, 제2 순환 쉬프터들(131)로 보낸다. 이에 따라, 제2 순환 쉬프터들(132)은 5번의 순환 쉬프트(cyclic shift)만을 더 수행하면 된다.In the first column of the parity check matrix shown in FIG. 7, since the second cyclic shift value is '69', the first cyclic shifter 131 cyclic shifts to '64' through four steps in units of 16 cycles. ) Is sent to the second cyclic shifters 131. Accordingly, the second cyclic shifters 132 only need to perform five more cyclic shifts.

도 7에 도시한 패리티 검사 행렬의 첫 번째 열에서, 세 번째 순환 쉬프트 값은 '51'이므로, 제1 순환 쉬프터(131)는 16 사이클 단위로 3 단계를 거쳐 '48'까지 순환 쉬프트(cyclic shift)를 수행하여, 제2 순환 쉬프터들(131)로 보낸다. 이에 따라, 제2 순환 쉬프터들(132)은 3번의 순환 쉬프트(cyclic shift)만을 더 수행하면 된다. 또한, 도 7에 도시한 패리티 검사 행렬의 첫 번째 열에서, 네 번째 순환 쉬프트 값은 '16'이므로, 제1 순환 쉬프터(131)는 16 순환 이동을 수행한다. 이때는 제2 순환 쉬프터들(132)은 동작하지 않고 바로 출력으로 내보낼 수 있다.In the first column of the parity check matrix shown in FIG. 7, since the third cyclic shift value is '51', the first cyclic shifter 131 performs cyclic shifts to '48' through three steps in units of 16 cycles. ) Is sent to the second cyclic shifters 131. Accordingly, the second cyclic shifters 132 only need to perform three more cyclic shifts. Further, in the first column of the parity check matrix shown in FIG. 7, since the fourth cyclic shift value is '16', the first cyclic shifter 131 performs 16 cyclic shifts. In this case, the second cyclic shifters 132 may be directly outputted without being operated.

도 10은 도 8에 도시된 각각의 제2 순환 쉬프터의 구성도이다. 도 8 및 도 10을 참조하면, 제2 순환 쉬프터들(132)의 각 제2 순환 쉬프터(1321)는 4 블록의 순환 쉬프트 회로(1321a~d)로 구성된다. FIG. 10 is a configuration diagram of each second circulation shifter illustrated in FIG. 8. 8 and 10, each of the second cyclic shifters 1321 of the second cyclic shifters 132 includes four blocks of the cyclic shift circuits 1321a ˜ d.

제2 순환 쉬프터(1321)는 제1 순환 쉬프터(131)에서 순환 쉬프트(cyclic shift)한 결과를 바탕으로, 부족한 양만큼만 순환 쉬프트(cyclic shift)를 하는 것이기 때문에 최대 순환 쉬프트(cyclic shift)의 크기가 제1 순환 쉬프터(131)의 순환 쉬프트 단위(예를 들어, 16)보다 작다. 제1 순환 쉬프터(131)가 없는 경우에는 제2 순환 쉬프터(1321)가 1부터 최대 80까지 순환 쉬프트(cyclic shift)를 모두 지원해야 하지만, 본 발명의 실시 예의 경우 제2 순환 쉬프터(1321)는 1부터 15까지 순환 쉬프트(cyclic shift)만을 지원하면 되므로 순환 이동부(130)의 복잡도를 크게 낮출 수 있다.Since the second cyclic shifter 1321 performs a cyclic shift only by an insufficient amount on the basis of the result of the cyclic shift in the first cyclic shifter 131, the maximum cyclic shift is the size of the cyclic shift. Is smaller than the cyclic shift unit (eg, 16) of the first cyclic shifter 131. If there is no first cyclic shifter 131, the second cyclic shifter 1321 should support all of the cyclic shift (cyclic shift) from 1 to a maximum of 80, the second cyclic shifter 1321 in the embodiment of the present invention Since only the cyclic shift from 1 to 15 need to be supported, the complexity of the cyclic shift unit 130 can be greatly reduced.

예를 들어, 첫 번째 회로(1321a)에서는 1 스텝(step)의 순환 쉬프트를 수행한다. 두 번째 회로(1321b)에서는 2 스텝, 세 번째 회로(1321c)에서는 4 스텝, 네 번째 회로(1321d)에서는 8 스텝만큼 순환 쉬프트를 수행한다. 27, 54, 81 등 다양한 길이의 데이터의 순환 쉬프트(cyclic shift)를 모두 지원하기 위해 제2 순환 쉬프터(1321) 역시 제1 순환 쉬프터(131)와 마찬가지로 세 부분으로 나누어 구성될 수 있다.For example, the first circuit 1321a performs a cyclic shift of one step. A cyclic shift is performed by two steps in the second circuit 1321b, four steps in the third circuit 1321c, and eight steps in the fourth circuit 1321d. The second cyclic shifter 1321 may also be divided into three parts like the first cyclic shifter 131 to support all of the cyclic shift of data of various lengths such as 27, 54, and 81.

제2 순환 쉬프터(1321)에서 수행해야 할 순환 쉬프트(cyclic shift)의 길이가 '5'이면, 첫 번째 단계와 세 번째 단계에서만 순환 쉬프트(cyclic shift)를 수행할 수 있다. 이때, 두 번째 단계와 네 번째 단계에서는 순환 쉬프트(cyclic shift)를 수행하지 않고 바로 다음 단계로 데이터를 전달할 수 있다. 본 발명의 실시 예에 의하면, 제1 순환 쉬프터(131)에서 특정 단위(예를 들어, 16 단위)로 순환 쉬프트(cyclic shift)를 수행하므로, 제2 순환 쉬프터(1321)에서 수행해야 하는 순환 쉬프트의 크기는 15 이하로 제한된다. 따라서, 순환 이동부(130)의 전체 복잡도가 기존의 순환 쉬프터(cyclic shifter)에 비하여 감소될 수 있다.If the length of the cyclic shift to be performed in the second cyclic shifter 1321 is '5', the cyclic shift may be performed only in the first and third steps. In this case, in the second and fourth steps, data may be transferred to the next step without performing a cyclic shift. According to an embodiment of the present invention, since the cyclic shift is performed in a specific unit (for example, 16 units) in the first cyclic shifter 131, the cyclic shift to be performed in the second cyclic shifter 1321. The size of is limited to 15 or less. Therefore, the overall complexity of the cyclic shifter 130 can be reduced compared to the conventional cyclic shifter.

전술한 바와 같이, 본 발명의 실시예에 따른 LDPC 복호화 장치는 다양한 부호율과 부호 길이를 지원할 수 있으며, 재구성 가능한(reconfigurable) 인터커넥션을 구현한다. 본 발명의 실시 예에 따른 LDPC 복호화 장치는 준순환 LDPC 부호의 메시지 패싱 과정에서 필요한 순환 이동부를 병렬 연산 처리에 적합하고 복잡도가 낮은 구조로 구현된다. 따라서, 전병렬처리시 증가하는 비트 노드와 검사 노드의 복잡도와 인터커넥션 네트워크의 복잡도를 감소시키고 수 Gbps의 스루풋(throughput)을 지원할 수 있다.As described above, the LDPC decoding apparatus according to the embodiment of the present invention can support various code rates and code lengths, and implement reconfigurable interconnection. The LDPC decoding apparatus according to the embodiment of the present invention is implemented in a structure having a low complexity and suitable for parallel operation processing of a cyclic shifter required in a message passing process of a quasi-cyclic LDPC code. Therefore, it is possible to reduce the complexity of the bit node and the check node and the complexity of the interconnection network and to support throughput of several Gbps.

이상의 실시예들은 본 발명의 이해를 돕기 위하여 제시된 것으로, 본 발명의 범위를 제한하지 않으며, 이로부터 다양한 변형 가능한 실시예들도 본 발명의 범위에 속할 수 있음을 이해하여야 한다. 예를 들어, 본 발명의 실시예에 도시된 각 구성 요소는 분산되어 실시될 수도 있으며, 반대로 여러 개로 분산된 구성 요소들은 결합되어 실시될 수 있다. 따라서, 본 발명의 기술적 보호범위는 특허청구범위의 기술적 사상에 의해 정해져야 할 것이며, 본 발명의 기술적 보호범위는 특허청구범위의 문언적 기재 그 자체로 한정되는 것이 아니라 실질적으로는 기술적 가치가 균등한 범주의 발명에 대하여까지 미치는 것임을 이해하여야 한다.It is to be understood that the above-described embodiments are provided to facilitate understanding of the present invention, and do not limit the scope of the present invention, and it is to be understood that various modifications may be made within the scope of the present invention. For example, each component shown in the embodiment of the present invention may be distributed and implemented, and conversely, a plurality of distributed components may be combined. Therefore, the technical protection scope of the present invention should be determined by the technical idea of the claims, and the technical protection scope of the present invention is not limited to the literary description of the claims, The invention of a category.

10: 무선 통신 시스템 40: 송신 장치
50: LDPC 부호화 장치 60: 변조기
80: 수신 장치 90: 복조기
100: LDPC 복호화 장치 110: 통합 노드 프로세서
120: 가변 인터커넥션 네트워크 130: 순환 이동부
140: 패리티 검사 행렬 저장부 150: LDPC 복호 제어부
10: wireless communication system 40: transmitting device
50: LDPC encoder 60: modulator
80: receiver 90: demodulator
100: LDPC decoding device 110: integrated node processor
120: variable interconnection network 130: circular moving unit
140: parity check matrix storage unit 150: LDPC decoding control unit

Claims (15)

패리티 검사 행렬에 대응하는 검사 노드와 비트 노드의 그룹들을 포함하며, 상기 검사 노드와 상기 비트 노드에 대한 소프트 정보를 생성하는 통합 노드 프로세서;
상기 통합 노드 프로세서로부터 상기 소프트 정보를 입력받고, 상기 패리티 검사 행렬에 따라 상기 그룹들에 대한 인터커넥션을 가변적으로 설정하는 가변 인터커넥션 네트워크; 그리고
상기 패리티 검사 행렬에 따라 상기 가변 인터커넥션 네트워크의 출력을 순환 이동하는 순환 이동부를 포함하는 복호화 장치.
An integrated node processor including groups of check nodes and bit nodes corresponding to a parity check matrix, the soft node generating soft information for the check node and the bit node;
A variable interconnection network which receives the soft information from the integrated node processor and variably sets the interconnections for the groups according to the parity check matrix; And
And a cyclic shift unit cyclically moving the output of the variable interconnection network according to the parity check matrix.
제1 항에 있어서,
복수 개의 부호율 또는 복수 개의 부호 길이에 대응하는 복수 개의 패리티 검사 행렬을 저장하는 패리티 검사 행렬 저장부를 더 포함하며,
상기 가변 인터커넥션 네트워크는,
상기 복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 그룹들에 대한 상기 인터커넥션을 설정하는 복호화 장치.
The method according to claim 1,
A parity check matrix storage unit for storing a plurality of parity check matrices corresponding to a plurality of code rates or a plurality of code lengths;
The variable interconnection network,
And setting the interconnection for the groups according to the parity check matrix corresponding to a predetermined code rate or a predetermined code length among the plurality of parity check matrices.
제1 항에 있어서,
상기 통합 노드 프로세서의 각 그룹은 상기 패리티 검사 행렬의 서브 행렬의 크기에 대응하는 검사 노드들의 레지스터들과 비트 노드들의 레지스터들을 포함하며,
상기 레지스터들은 비트 노드들 또는 검사 노드들로부터 전송받은 브로드 캐스팅(broadcasting) 입력으로부터 합-곱 알고리즘(Sum-Product Algorithm)에 따라 생성되는 상기 소프트 정보를 저장하는 복호화 장치.
The method according to claim 1,
Each group of the integrated node processor includes registers of check nodes and registers of bit nodes corresponding to a size of a sub-matrix of the parity check matrix,
And the registers store the soft information generated according to a sum-product algorithm from a broadcasting input received from bit nodes or check nodes.
제3 항에 있어서,
상기 가변 인터커넥션 네트워크는 상기 레지스터들과 일대일로 대응하며, 상기 패리티 검사 행렬에 따라 복수의 순환 이동부들 중 대응하는 하나 이상의 순환 이동부와 상기 인터커넥션을 설정하는 인터커넥션 스위치들을 포함하는 복호화 장치.
The method of claim 3,
And the variable interconnection network corresponds one-to-one with the registers, and includes interconnection switches configured to establish the interconnection with one or more cyclic shifters of a plurality of cyclic shifters according to the parity check matrix.
제4 항에 있어서,
상기 인터커넥션 스위치들은 상기 패리티 검사 행렬 중 상기 검사 노드와 상기 비트 노드가 연결되는 서브 행렬들의 정보에 기초하여, 상기 하나 이상의 순환 이동부와 상기 인터커넥션을 설정하는 복호화 장치.
5. The method of claim 4,
And the interconnection switches are configured to establish the interconnection with the one or more cyclic shift units based on information of sub-matrices of the parity check matrix to which the check node and the bit node are connected.
제5 항에 있어서,
각각의 인터커넥션 스위치는,
컨트롤 신호에 따라 하나의 입력에 대하여 2 개의 출력을 가지며, 상기 통합 노드 프로세서로부터의 입력을 복수 개의 상기 그룹들의 집합에 대응하는 복수 개의 순환 이동부로 동시에 전송하는 복호화 장치.
6. The method of claim 5,
Each interconnection switch
2. The decoding apparatus having two outputs for one input according to a control signal, and simultaneously transmitting inputs from the integrated node processor to a plurality of circular moving units corresponding to a plurality of sets of groups.
제1 항에 있어서,
상기 순환 이동부는,
상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 가변 인터커넥션 네트워크로부터의 상기 입력을 제1 사이클 단위로 순환 이동하는 제1 순환 쉬프터; 그리고
상기 순환 정보에 따라 상기 제1 순환 쉬프터의 출력을 제2 사이클만큼 순환 이동하는 제2 순환 쉬프터들을 포함하는 복호화 장치.
The method according to claim 1,
The circular moving unit,
A first cyclic shifter cyclically moving the input from the variable interconnection network in units of first cycles according to cyclic information of a sub-matrix of the parity check matrix; And
And second cyclic shifters cyclically moving the output of the first cyclic shifter by a second cycle according to the cyclic information.
제7 항에 있어서,
상기 제2 사이클은 상기 제1 사이클 단위보다 작은 값을 갖는 복호화 장치.
The method of claim 7, wherein
And the second cycle has a smaller value than the first cycle unit.
제8 항에 있어서,
상기 제1 순환 쉬프터는 상기 입력을 상기 제1 사이클 단위로 순환 이동하는 복수 개의 순환 쉬프트 회로들을 포함하며, 상기 복수 개의 순환 쉬프트 회로의 출력을 선택하여 상기 제2 순환 쉬프터들로 출력하는 복호화 장치.
The method of claim 8,
The first cyclic shifter includes a plurality of cyclic shift circuits cyclically moving the input in units of the first cycle, and selects and outputs outputs of the plurality of cyclic shift circuits to the second cyclic shifters.
패리티 검사 행렬을 이용하여 데이터로부터 부호어를 생성하는 LDPC 부호화 장치를 포함하는 송신 장치; 그리고
상기 패리티 검사 행렬을 이용하여 상기 부호어를 복호화하여 상기 데이터를 복원하는 LDPC 복호화 장치를 포함하는 수신 장치를 포함하며,
상기 LDPC 복호화 장치는,
패리티 검사 행렬에 대응하는 검사 노드와 비트 노드의 그룹들을 포함하며, 상기 검사 노드와 상기 비트 노드에 대한 소프트 정보를 생성하는 통합 노드 프로세서;
상기 통합 노드 프로세서로부터 상기 소프트 정보를 입력받고, 상기 패리티 검사 행렬에 따라 상기 그룹들에 대한 인터커넥션을 가변적으로 설정하는 가변 인터커넥션 네트워크; 그리고
상기 패리티 검사 행렬에 따라 상기 가변 인터커넥션 네트워크의 출력을 순환 이동하는 순환 쉬프터를 포함하는 무선 통신 시스템.
A transmission device including an LDPC encoding device for generating a codeword from data using a parity check matrix; And
And a receiving device including an LDPC decoding device for decoding the codeword by using the parity check matrix to restore the data.
The LDPC decoding apparatus,
An integrated node processor including groups of check nodes and bit nodes corresponding to a parity check matrix, the soft node generating soft information for the check node and the bit node;
A variable interconnection network which receives the soft information from the integrated node processor and variably sets the interconnections for the groups according to the parity check matrix; And
And a cyclic shifter cyclically moving the output of the variable interconnection network according to the parity check matrix.
제10 항에 있어서,
상기 LDPC 복호화 장치는 복수 개의 부호율 또는 복수 개의 부호 길이에 대응하는 복수 개의 패리티 검사 행렬을 저장하는 패리티 검사 행렬 저장부를 더 포함하며,
상기 가변 인터커넥션 네트워크는,
상기 복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 그룹들에 대한 상기 인터커넥션을 설정하는 무선 통신 시스템.
The method of claim 10,
The LDPC decoding apparatus further includes a parity check matrix storage unit for storing a plurality of parity check matrices corresponding to a plurality of code rates or a plurality of code lengths.
The variable interconnection network,
And establishing the interconnection for the groups according to the parity check matrix corresponding to a predetermined code rate or a predetermined code length of the plurality of parity check matrices.
제10 항에 있어서,
상기 순환 이동부는,
상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 가변 인터커넥션 네트워크로부터의 상기 입력을 제1 사이클 단위로 순환 이동하는 제1 순환 쉬프터; 그리고
상기 순환 정보에 따라 상기 제1 순환 쉬프터의 출력을 제2 사이클만큼 순환 이동하는 제2 순환 쉬프터들을 포함하는 복호화 장치.
The method of claim 10,
The circular moving unit,
A first cyclic shifter cyclically moving the input from the variable interconnection network in units of first cycles according to cyclic information of a sub-matrix of the parity check matrix; And
And second cyclic shifters cyclically moving the output of the first cyclic shifter by a second cycle according to the cyclic information.
패리티 검사 행렬에 대응하는 검사 노드와 비트 노드에 대한 소프트 정보를 생성하는 단계;
상기 패리티 검사 행렬에 따라 상기 검사 노드와 상기 비트 노드 간의 인터커넥션을 가변적으로 설정하는 단계; 그리고
상기 가변적으로 설정된 상기 인터커넥션에 따라 입력되는 신호를 상기 패리티 검사 행렬에 따라 순환 이동하는 단계를 포함하는 복호화 방법.
Generating soft information for the check node and the bit node corresponding to the parity check matrix;
Variably setting an interconnection between the check node and the bit node according to the parity check matrix; And
And cyclically moving a signal input according to the variably set interconnection according to the parity check matrix.
제13 항에 있어서,
상기 인터커넥션을 가변적으로 설정하는 단계는,
복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 검사 노드와 상기 비트 노드 간의 상기 인터커넥션을 설정하는 복호화 방법.
The method of claim 13,
Variably setting the interconnection,
And setting the interconnection between the check node and the bit node according to the parity check matrix corresponding to a predetermined code rate or a predetermined code length among a plurality of parity check matrices.
제13 항에 있어서,
상기 순환 이동하는 단계는,
상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 입력되는 신호를 제1 사이클 단위로 순환 이동하는 단계; 그리고
상기 순환 정보에 따라 상기 제1 사이클 단위로 순환된 신호를 제2 사이클만큼 순환 이동하는 단계를 포함하는 복호화 방법.
The method of claim 13,
The circular movement step,
Cyclically moving the input signal in units of a first cycle according to cyclic information of a sub-matrix of the parity check matrix; And
And cyclically moving the signal circulated in the first cycle unit by a second cycle according to the cyclic information.
KR1020130006039A 2012-02-10 2013-01-18 Decoder and decoding method KR102000268B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20120013970 2012-02-10
KR1020120013970 2012-02-10

Publications (2)

Publication Number Publication Date
KR20130092441A true KR20130092441A (en) 2013-08-20
KR102000268B1 KR102000268B1 (en) 2019-07-16

Family

ID=49217227

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130006039A KR102000268B1 (en) 2012-02-10 2013-01-18 Decoder and decoding method

Country Status (1)

Country Link
KR (1) KR102000268B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101477925B1 (en) * 2013-10-08 2014-12-30 세종대학교산학협력단 Method for setting of data-path using LDPC Decoder and LDPC Decoder thereof
WO2019107912A1 (en) * 2017-11-29 2019-06-06 연세대학교 산학협력단 Ldpc encoding device and method which have low latency and high reliability characteristics

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100975547B1 (en) * 2007-07-02 2010-08-16 브로드콤 코포레이션 Distributed processing LDPCLow Density Parity Check decoder

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100975547B1 (en) * 2007-07-02 2010-08-16 브로드콤 코포레이션 Distributed processing LDPCLow Density Parity Check decoder

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101477925B1 (en) * 2013-10-08 2014-12-30 세종대학교산학협력단 Method for setting of data-path using LDPC Decoder and LDPC Decoder thereof
WO2019107912A1 (en) * 2017-11-29 2019-06-06 연세대학교 산학협력단 Ldpc encoding device and method which have low latency and high reliability characteristics

Also Published As

Publication number Publication date
KR102000268B1 (en) 2019-07-16

Similar Documents

Publication Publication Date Title
KR100975547B1 (en) Distributed processing LDPCLow Density Parity Check decoder
CA2577794C (en) Ldpc decoding methods and apparatus
US7530002B2 (en) Sub-matrix-based implementation of LDPC (Low Density Parity Check) decoder
WO2011062111A1 (en) Error correction method and device, and communication system using the same
US8433971B2 (en) Communication device architecture for in-place constructed LDPC (low density parity check) code
US8713399B1 (en) Reconfigurable barrel shifter and rotator
KR100941680B1 (en) Apparatus and method for generating of quasi-cyclic low density parity check codes
WO2014127140A1 (en) Design for lifted ldpc codes having high parallelism, low error floor, and simple encoding principle
US20150200747A1 (en) Transmission method, reception method, transmitter, and receiver
CA2672073A1 (en) Ldpc encoding methods and apparatus
US9973212B2 (en) Decoding algorithm with enhanced parity check matrix and re-encoding scheme for LDPC code
JP2007006494A (en) Device and method for data transmission/reception in communications system using structural low-density parity check code
KR101622956B1 (en) Contention-free parallel processing multimode ldpc decoder
US9595977B2 (en) LDPC decoder with efficient circular shifters
US8145986B2 (en) Multi-CSI (Cyclic Shifted Identity) sub-matrix based LDPC (Low Density Parity Check) codes
US9104589B1 (en) Decoding vectors encoded with a linear block forward error correction code having a parity check matrix with multiple distinct pattern regions
KR101077552B1 (en) APPARATUS AND METHOD OF DECODING LOW DENSITY PARITY CHECK CODE USING MUlTI PROTOTYPE MATRIX
EP2991231A1 (en) Multilevel encoding and multistage decoding
EP2890016A1 (en) Ldpc encoder and decoder
KR102000268B1 (en) Decoder and decoding method
KR102635532B1 (en) Method and apparatus for transmitting and receiving a signal using polar coding in a communication system
US20140122979A1 (en) Hardware Architecture and Implementation of Low Power Layered Multi-Level LDPC Decoder
KR102396814B1 (en) Apparatus and method for channel encoding/decoding in communication or broadcasting system
EP2951926B1 (en) Ldpc code design and encoding apparatus for their application
US10608771B2 (en) Apparatus and method for encoding and decoding using short-length block code in wireless communication system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant