KR20130092441A - Decoder and decoding method - Google Patents
Decoder and decoding method Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
- H03M13/3715—Adaptation to the number of estimated errors or to the channel state
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
Abstract
Description
본 발명은 데이터를 복호화하는 복호화 장치 및 복호화 방법에 관한 것이다.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
이와 같이, 도 1에 도시한 무선 통신 시스템(10)은 LDPC 부호화 장치(50)를 사용하여 데이터(m)를 부호어(c)로 부호화하고, LDPC 복호화 장치(100)를 사용하여 부호어(c)를 데이터(m)로 복호화함으로써, 데이터(m)를 안정적으로 송수신한다. LDPC 복호화 장치(100)는 예를 들어 아래의 수학식 1에 따라, 패리티 검사 행렬(H)을 이용하여 부호어(c)에 오류가 있는지 여부를 판단할 수 있다. 여기서, 패리티 검사 행렬은 LDPC 복호화 장치(100)에 수신된 부호어(c)에 오류가 포함되는지를 검사하기 위한 행렬을 의미한다. As described above, the
[수학식 1][Equation 1]
H·cT = 0H-c T = 0
수학식 1에서 부호어(c)와 패리티 검사 행렬 간의 행렬 연산 값이 '0'이면 부호어(c)에 오류가 없는 것으로 판단하고, '0'이 아니면 부호어(c)에 오류가 있는 것으로 판단한다.In
도 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
[수학식 2]&Quot; (2) "
H = [H1, H2]H = [H1, H2]
아래의 수학식 3을 참조하면, LDPC 부호화 장치(50)에 의하여 생성된 부호어(c)는 데이터(m)와 패리티 비트(parity bit)(p)로 구분될 수 있다.Referring to
[수학식 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
앞서 언급된 수학식 1 내지 3은 아래의 수학식 4를 유도할 수 있다.
[수학식 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
패리티 검사 행렬의 원소를 임의로 생성할 경우, 패리티 검사 행렬의 정보를 저장하기 위하여 많은 메모리 공간을 필요로 하지만, 준순환(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) "
패리티 검사 행렬(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) "
도 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)를 와 로 정의한다. 는 j번째 비트 노드에서 생성되어 i번째 검사 노드로 전송되는 소프트 정보(soft information)를 나타내고, 는 i번째 검사 노드에서 생성되어 j번째 비트 노드로 전송되는 소프트 정보를 나타낸다. LDPC 복호화를 위한 대표적인 반복 메시지 패싱 알고리즘(iterative message passing algorithm)인 합-곱 알고리즘(SPA; Sum-Product Algorithm)에 대해 설명하면 다음과 같다.Soft information that occurs at the k iteration Wow . Represents soft information generated at the j th bit node and transmitted to the i th check node, 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
[수학식 7][Equation 7]
반복적 복호화(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는 검사 노드의 개수)에 대해 생성되는 소프트 정보 는 예를 들어 아래의 수학식 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). For example,
[수학식 8][Equation 8]
비트 노드 동작에 대해 살펴보면, j = 1, 2,..., N(N은 부호비트의 길이)에 대하여 생성되는 소프트 정보 는 예를 들어 아래의 수학식 9와 같다.Looking at the bit node operation, soft information generated for j = 1, 2, ..., N, where N is the length of the sign bit. For example,
[수학식 9]&Quot; (9) "
수학식 9에서, M(j)는 j번째 비트 노드에 연결된 검사 노드의 집합이고, 는 j번째 비트 노드와 연결된 i' 번째 검사 노드로 다시 전송되는 소프트 정보(soft information)이다. 비트 결정을 할 때 필요한 소프트 정보 는 예를 들어 아래의 수학식 10으로 나타낼 수 있다.In
[수학식 10]&Quot; (10) "
수학식 10에서, 의 값이 0보다 크면, 부호어의 j번째 비트를 0으로, 0보다 작으면 1로 결정한다. LDPC 복호화 장치(100)는 수학식 10에 의하여, 매 반복(iteration)마다 복호된 부호어를 얻을 수 있다.In Equation (10) 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 복호화 장치(100)는 복호된 부호어(c)가 앞서 언급된 수학식 1의 조건을 만족하면 정확하게 복호된 부호어라고 판단하며, 부호어 중에서 정보 비트를 추출한다. 만약, 복호된 부호어(c)가 수학식 1의 조건을 만족하지 않으면 다시 반복(iteration)을 수행한다.The
LDPC 복호화 장치(100)에서, LDPC 부호의 복호에 사용되는 반복적 메시지 패싱 알고리즘(iterative message passing algorithm)인 합-곱 알고리즘(SPA)은 매 반복(iteration)마다 대응하는 비트 노드와 검사 노드 사이에서 소프트 정보가 전송된다.In the
이때, 고속 동작을 위해서는 검사 노드는 이와 연결된 복수 개의 비트 노드에 수학식 8의 소프트 정보(soft information)를 동시에 전송해야 하며, 비트 노드는 이와 연결된 복수 개의 검사 노드에 수학식 9의 소프트 정보를 동시에 전송해야 한다. 이에 따라, 하나의 비트 노드와 여러 개의 검사 노드를 연결해주는 인터커넥션(interconnection)이 필수적으로 요구된다. 하나의 검사 노드와 여러 개의 비트 노드를 연결해주는 인터커넥션 또한 요구된다.In this case, for the high speed operation, the test node must simultaneously transmit soft information of
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,
[수학식 11]&Quot; (11) "
수학식 11은 수학식 8과 다르게, i번째 검사 노드가 비트 노드들에 동일한 소프트 정보를 전달한다. 브로드캐스팅 기반의 메시지 패싱 알고리즘(message passing algorithm)은 여러 개의 검사 노드에서 비트 노드로 전송하는 정보가 동일하기 때문에 검사 노드에서 비트 노드로 데이터를 전송하는 인터커넥션 장치의 복잡도가 감소한다. 그러나 원래의 검사 노드에서 비트 노드로 전송해야 하는 데이터를 비트 노드 내에서 생성해야 하므로, 비트 노드의 복잡도가 증가한다.Unlike
앞서 언급된 수학식 9 역시 아래의 수학식 12와 같이 변경될 수 있다.
[수학식 12]&Quot; (12) "
검사 노드와 마찬가지로, 비트 노드 역시 여러 개의 검사 노드들로 전송되는 정보를 동일한 값으로 바꿈에 따라서 비트 노드에서 검사 노드로 연결되는 인터커넥션 장치의 복잡도를 감소할 수 있다. 하지만, 이 경우에도 원래 전송되어야 하는 수학식 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
다양한 부호율 및 부호 길이를 지원하기 위하여 다양한 패리티 검사 행렬이 정의될 수 있다. 예를 들어 준순환 LDPC 부호의 경우 패리티 검사 행렬을 수학식 5과 같이 표현할 수 있는데, 다양한 부호율을 지원하기 위하여, l과 p가 다양한 값을 가질 수 있다. 또한, 수학식 5의 패리티 검사 행렬의 서브 행렬의 크기를 다양하게 정의하여 다양한 부호 길이를 지원할 수 있다. 따라서, 다양한 부호 길이 및 부호율을 지원하기 위하여, LDPC 복호화 장치는 다양한 패리티 검사 행렬에 대하여 유동적으로 동작할 수 있어야 한다. 이하에서 설명되는 본 발명의 실시 예는 다양한 패리티 검사 행렬, 즉 다양한 l과 p의 값을 가지며 다양한 서브 행렬 를 갖는 패리티 검사 행렬에 대응하여 유연하게 동작할 수 있는 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 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. 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
통합 노드 프로세서(combined check and variable node process)(110)는 검사 노드와 비트 노드를 프로세싱하여 출력한다. 가변 인터커넥션 네트워크(flexible interconnect network)(120)는 통합 노드 프로세서(110)로부터의 프로세싱 결과를 입력받고, LDPC 복호 제어부(150)의 제어에 의해 패리티 검사 행렬 저장부(140)에 저장된 패리티 검사 행렬의 부호율 또는 부호 길이에 대응하여 가변될 수 있다. 패리티 검사 행렬 저장부(140)은 다양한 부호율 또는 부호 길이에 대응하는 패리티 검사 행렬들을 저장할 수 있다. 순환 이동부들(130)은 가변 인터커넥션 네트워크(120)의 출력을 순환 쉬프트(cyclic shift)한다.The combined check and
도 4에 도시한 본 발명의 실시 예에서, LDPC 복호화 장치(100)는 전병렬 프로세싱(fully parallel processing)에 의해 모든 비트 노드가 같은 클록에 동작하여 생성한 소프트 정보(soft information)를 검사 노드에 전달할 수 있다. 마찬가지로, 검사 노드 또한 같은 클록에 동작하여 생성된 소프트 정보를 비트 노드에 전달할 수 있다.In the embodiment of the present invention illustrated in FIG. 4, the
부분병렬 프로세싱(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
통합 노드 프로세서(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
다양한 서브 행렬의 크기를 지원하기 위해서는, 크기가 가장 큰 서브 행렬만큼의 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
또한, 수학식 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
도 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
도 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
브로드캐스팅 기법이 적용된 경우, 각각의 노드(비트 노드 또는 검사 노드)는 기존의 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
이 과정이 끝나면 기존의 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
전병렬 프로세싱의 경우, 비트 노드와 검사 노드가 동작하는 시점이 항상 다르기 때문에, 필요한 로직들은 시간 공유(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
도 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
하나의 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
인터커넥션 스위치부(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
다른 예로, 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
도 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,
순환 이동부(130)는 도 4에 도시된 바와 같이 가변 인터커넥션 네트워크(120)의 출력과 연결된다. 도 7에 도시한 패리티 검사 행렬을 예로 들면, 첫 번째 비트 노드 그룹에서 가변 인터커넥션 네트워크(120)의 인터커넥션 스위치부(121)로 데이터를 내보내면, 인터커넥션 스위치부(121)를 통하여 첫 번째에서 네 번째 검사 노드 그룹으로 데이터가 전송된다.The
도 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
도 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
도 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
일 실시 예로, 브로드캐스팅 데이터는 가변 인터커넥션 네트워크(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
도 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
제1 순환 쉬프터(131)는 패리티 검사 행렬에 정의된 순환 쉬프트 값(cyclic shift value)에 따라서 출력 포인트를 선택해서 제2 순환 쉬프터들(132)로 데이터를 넘길 수 있다. 데이터의 길이가 27, 54, 81 중의 하나인 경우, 순환 쉬프트 회로(1311)를 27개씩(16+11) 세 영역으로 나누어, 멀티플렉서(multiplexer)의 선택을 통해 모든 경우를 지원할 수 있도록 구현될 수 있다. 제1 순환 쉬프터(131) 내에 멀티플렉서가 존재하지만 기본적으로 순환 쉬프트(cyclic shift) 단위가 16 단위 하나이기 때문에 로직의 복잡도는 높지 않다.The first
제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
도 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
도 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
도 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
제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
예를 들어, 첫 번째 회로(1321a)에서는 1 스텝(step)의 순환 쉬프트를 수행한다. 두 번째 회로(1321b)에서는 2 스텝, 세 번째 회로(1321c)에서는 4 스텝, 네 번째 회로(1321d)에서는 8 스텝만큼 순환 쉬프트를 수행한다. 27, 54, 81 등 다양한 길이의 데이터의 순환 쉬프트(cyclic shift)를 모두 지원하기 위해 제2 순환 쉬프터(1321) 역시 제1 순환 쉬프터(131)와 마찬가지로 세 부분으로 나누어 구성될 수 있다.For example, the
제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
전술한 바와 같이, 본 발명의 실시예에 따른 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.
복수 개의 부호율 또는 복수 개의 부호 길이에 대응하는 복수 개의 패리티 검사 행렬을 저장하는 패리티 검사 행렬 저장부를 더 포함하며,
상기 가변 인터커넥션 네트워크는,
상기 복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 그룹들에 대한 상기 인터커넥션을 설정하는 복호화 장치.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.
상기 통합 노드 프로세서의 각 그룹은 상기 패리티 검사 행렬의 서브 행렬의 크기에 대응하는 검사 노드들의 레지스터들과 비트 노드들의 레지스터들을 포함하며,
상기 레지스터들은 비트 노드들 또는 검사 노드들로부터 전송받은 브로드 캐스팅(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.
상기 가변 인터커넥션 네트워크는 상기 레지스터들과 일대일로 대응하며, 상기 패리티 검사 행렬에 따라 복수의 순환 이동부들 중 대응하는 하나 이상의 순환 이동부와 상기 인터커넥션을 설정하는 인터커넥션 스위치들을 포함하는 복호화 장치.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.
상기 인터커넥션 스위치들은 상기 패리티 검사 행렬 중 상기 검사 노드와 상기 비트 노드가 연결되는 서브 행렬들의 정보에 기초하여, 상기 하나 이상의 순환 이동부와 상기 인터커넥션을 설정하는 복호화 장치.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.
각각의 인터커넥션 스위치는,
컨트롤 신호에 따라 하나의 입력에 대하여 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 순환 쉬프터의 출력을 제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.
상기 제2 사이클은 상기 제1 사이클 단위보다 작은 값을 갖는 복호화 장치.The method of claim 7, wherein
And the second cycle has a smaller value than the first cycle unit.
상기 제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 복호화 장치는,
패리티 검사 행렬에 대응하는 검사 노드와 비트 노드의 그룹들을 포함하며, 상기 검사 노드와 상기 비트 노드에 대한 소프트 정보를 생성하는 통합 노드 프로세서;
상기 통합 노드 프로세서로부터 상기 소프트 정보를 입력받고, 상기 패리티 검사 행렬에 따라 상기 그룹들에 대한 인터커넥션을 가변적으로 설정하는 가변 인터커넥션 네트워크; 그리고
상기 패리티 검사 행렬에 따라 상기 가변 인터커넥션 네트워크의 출력을 순환 이동하는 순환 쉬프터를 포함하는 무선 통신 시스템.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.
상기 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.
상기 순환 이동부는,
상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 가변 인터커넥션 네트워크로부터의 상기 입력을 제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.
상기 인터커넥션을 가변적으로 설정하는 단계는,
복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 검사 노드와 상기 비트 노드 간의 상기 인터커넥션을 설정하는 복호화 방법.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.
상기 순환 이동하는 단계는,
상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 입력되는 신호를 제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.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100975547B1 (en) * | 2007-07-02 | 2010-08-16 | 브로드콤 코포레이션 | Distributed processing LDPCLow Density Parity Check decoder |
-
2013
- 2013-01-18 KR KR1020130006039A patent/KR102000268B1/en active IP Right Grant
Patent Citations (1)
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)
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 |