KR102000268B1 - Decoder and decoding method - Google Patents

Decoder and decoding method Download PDF

Info

Publication number
KR102000268B1
KR102000268B1 KR1020130006039A KR20130006039A KR102000268B1 KR 102000268 B1 KR102000268 B1 KR 102000268B1 KR 1020130006039 A KR1020130006039 A KR 1020130006039A KR 20130006039 A KR20130006039 A KR 20130006039A KR 102000268 B1 KR102000268 B1 KR 102000268B1
Authority
KR
South Korea
Prior art keywords
matrix
cyclic
parity check
node
check matrix
Prior art date
Application number
KR1020130006039A
Other languages
Korean (ko)
Other versions
KR20130092441A (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

본 발명은 복호화 장치 및 복호화 방법에 관한 것으로, 패리티 검사 행렬에 대응하는 검사 노드와 비트 노드의 그룹들을 포함하며, 상기 검사 노드와 상기 비트 노드에 대한 소프트 정보를 생성하는 통합 노드 프로세서; 상기 통합 노드 프로세서로부터 상기 소프트 정보를 입력받는 가변 인터커넥션 네트워크; 그리고 상기 패리티 검사 행렬에 따라 상기 가변 인터커넥션 네트워크로부터 출력되는 소프트 정보를 순환 이동하여 상기 통합 노드 프로세서로 출력하는 복수의 순환 이동부를 포함하고, 상기 가변 인터커넥션 네트워크는, 상기 복수의 순환 이동부와의 인터커넥션을 상기 패리티 검사 행렬에 따라 가변적으로 설정하는 복호화 장치를 제공한다.The present invention relates to a decoding apparatus and a decoding method, the decoding node including a check node and groups of bit nodes corresponding to a parity check matrix and generating soft information for the check node and the bit node; A variable interconnection network for receiving the soft information from the integrated node processor; And a plurality of cyclic shifters for cyclically shifting soft information output from the variable interconnection network according to the parity check matrix and outputting the soft information to the integrated node processor, wherein the variable interconnection network includes: To the interleaver in accordance with the parity check matrix.

Description

복호화 장치 및 복호화 방법{DECODER AND DECODING METHOD}[0001] DECODER AND DECODING METHOD [0002]

본 발명은 데이터를 복호화하는 복호화 장치 및 복호화 방법에 관한 것이다.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 복호기의 기술 개발이 요구된다.Recently, LDPC codes show error correction performance closest to Shannon's channel performance limit on an AWGN channel, so that wireless such as IEEE 802.11n WLAN, IEEE 802.16e mobile WiMAX, DVB-T2 And is used as a channel coding technique in a communication system. In such a wireless communication system, it is necessary to perform coding and decoding using various coding rates and block lengths depending on the channel environment and the importance of transmission signals. Therefore, a decoder capable of supporting various code rates and block lengths is required. Also, due to the emergence of a communication system supporting a data rate of Gbps, a channel decoder also has to support Gbps throughput, which requires development of an LDPC decoder that operates at high speed.

본 발명은 다양한 부호율과 블록 길이를 지원하며, 고속으로 동작하는 복호화 장치 및 복호화 방법을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a decoding apparatus and a decoding method that support various coding 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.

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

일 실시 예로서, 상기 복호화 장치는 복수 개의 부호율 또는 복수 개의 부호 길이에 대응하는 복수 개의 패리티 검사 행렬을 저장하는 패리티 검사 행렬 저장부를 더 포함하며, 상기 가변 인터커넥션 네트워크는, 상기 복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 복수의 순환 이동부와의 인터커넥션을 설정할 수 있다.In one embodiment, the decoding apparatus further includes a parity check matrix storage unit storing a plurality of parity check matrices corresponding to a plurality of code rates or a plurality of code lengths, wherein the variable interconnection network includes: Interconnection with the plurality of cyclic shifters can be established according to the parity check matrix corresponding to a predetermined code rate or a predetermined code length of the matrices.

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

일 실시 예로서, 상기 통합 노드 프로세서는 상기 검사 노드 및 상기 비트 노드로 동작 가능한 검사 및 비트 노드 프로세서들을 포함하고, 상기 가변 인터커넥션 네트워크는 상기 패리티 검사 행렬에 따라 상기 복수의 순환 이동부 중 대응하는 하나 이상의 순환 이동부와 상기 인터커넥션을 설정하는 인터커넥션 스위치들을 포함하고, 상기 인터커넥션 스위치들은 상기 검사 및 비트 노드 프로세서들과 일대일 대응되도록 연결될 수 있다.In one embodiment, the unified node processor includes check and bit node processors operable with the check node and the bit node, wherein the variable interconnection network is operable to detect a corresponding one of the plurality of cyclic shifters according to the parity check matrix One or more cyclic shifters and interconnection switches for establishing the interconnection, and the interconnection switches may be connected in a one-to-one correspondence with the test and bit node processors.

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

일 실시 예로서, 각각의 인터커넥션 스위치는, 상기 통합 노드 프로세서로부터의 입력을 상기 하나 이상의 순환 이동부로 동시에 전송할 수 있다.In one embodiment, each interconnection switch may simultaneously transmit an input from the unified node processor to the one or more cyclic shifters.

일 실시 예로서, 상기 복수의 순환 이동부는 각각, 상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 가변 인터커넥션 네트워크로부터의 입력을 제1 사이클 단위로 순환 이동하는 제1 순환 쉬프터; 그리고 상기 순환 정보에 따라 상기 제1 순환 쉬프터의 출력을 제2 사이클만큼 순환 이동하는 제2 순환 쉬프터들을 포함하고, 상기 서브 행렬은 상기 패리티 검사 행렬 중의 일부인 부분 행렬로서, 정사각 행렬인 동시에, 단위 행렬의 순환 행렬 또는 영행렬이고, 상기 순환 정보는 상기 순환 행렬의 순환 이동 크기일 수 있다.In one embodiment, each of the plurality of cyclic shifters includes: a first cyclic shifter for cyclically shifting an input from the variable interconnection network in units of a first cycle according to cyclic information of a sub-matrix of the parity check matrix; And second cyclic shifters for cyclically shifting the output of the first cyclic shifter according to the cyclic information, the sub-matrix being a partial matrix part of the parity check matrix, the square matrix being a square matrix, Or a zero matrix, and the cyclic information may be a cyclic shift size of the cyclic matrix.

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

일 실시 예로서, 상기 제1 순환 쉬프터는 상기 가변 인터커넥션 네트워크로부터의 입력을 상기 제1 사이클 단위로 순환 이동하는 복수 개의 순환 쉬프트 회로들을 포함하며, 상기 복수 개의 순환 쉬프트 회로들의 출력을 선택하여 상기 제2 순환 쉬프터들로 출력할 수 있다.In one embodiment, the first cyclic shifter includes a plurality of cyclic shift circuits that cyclically shift an input from the variable interconnection network in the first cycle unit, and selects an output of the plurality of cyclic shift circuits, And output to the second cyclic shifters.

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

일 실시 예로서, 상기 LDPC 복호화 장치는 복수 개의 부호율 또는 복수 개의 부호 길이에 대응하는 복수 개의 패리티 검사 행렬을 저장하는 패리티 검사 행렬 저장부를 더 포함하며, 상기 가변 인터커넥션 네트워크는, 상기 복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 복수의 순환 이동부와의 인터커넥션을 설정할 수 있다.The LDPC decoding apparatus may further include 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 interconnection with the plurality of cyclic shifters can be established according to the parity check matrix corresponding to a predetermined code rate or a predetermined code length in the check matrix.

일 실시 예로서, 상기 복수의 순환 이동부는 각각, 상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 가변 인터커넥션 네트워크로부터의 입력을 제1 사이클 단위로 순환 이동하는 제1 순환 쉬프터; 그리고 상기 순환 정보에 따라 상기 제1 순환 쉬프터의 출력을 제2 사이클만큼 순환 이동하는 제2 순환 쉬프터들을 포함하고, 상기 서브 행렬은 상기 패리티 검사 행렬 중의 일부인 부분 행렬로서, 정사각 행렬인 동시에, 단위 행렬의 순환 행렬 또는 영행렬이고, 상기 순환 정보는 상기 순환 행렬의 순환 이동 크기일 수 있다.In one embodiment, each of the plurality of cyclic shifters includes: a first cyclic shifter for cyclically shifting an input from the variable interconnection network in units of a first cycle according to cyclic information of a sub-matrix of the parity check matrix; And second cyclic shifters for cyclically shifting the output of the first cyclic shifter according to the cyclic information, the sub-matrix being a partial matrix part of the parity check matrix, the square matrix being a square matrix, Or a zero matrix, and the cyclic information may be a cyclic shift size of the cyclic matrix.

본 발명의 또 다른 일 측면에 따른 복호화 방법은 통합 노드 프로세서에 의해, 패리티 검사 행렬에 대응하는 검사 노드와 비트 노드에 대한 소프트 정보를 생성하는 단계; 가변 인터커넥션 네트워크에 의해, 상기 패리티 검사 행렬에 따라 복수의 순환 이동부와의 인터커넥션을 가변적으로 설정하는 단계; 그리고 상기 복수의 순환 이동부에 의해, 상기 가변 인터커넥션 네트워크로부터 입력되는 신호를 상기 패리티 검사 행렬에 따라 순환 이동하여 상기 통합 노드 프로세서로 출력하는 단계를 포함하고, 상기 인터커넥션을 가변적으로 설정하는 단계는, 상기 가변 인터커넥션 네트워크와 상기 복수의 순환 이동부 간의 인터커넥션을 상기 패리티 검사 행렬에 따라 가변적으로 설정할 수 있다.According to another aspect of the present invention, there is provided a decoding method comprising: generating soft information for a check node and a bit node corresponding to a parity check matrix by an integrated node processor; Varying an interconnection with a plurality of cyclic shifters according to the parity check matrix by a variable interconnection network; And cyclically moving a signal input from the variable interconnection network according to the parity check matrix by the plurality of cyclic shifters and outputting the cyclic shift message to the integrated node processor, The interconnection between the variable interconnection network and the plurality of circular movement units may be variably set according to the parity check matrix.

일 실시 예로서, 상기 인터커넥션을 가변적으로 설정하는 단계는, 복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 가변 인터커넥션 네트워크와 상기 복수의 순환 이동부 간의 상기 인터커넥션을 설정할 수 있다.According to an embodiment, the step of variably setting the interconnection may include a step of setting the interconnection to be variable according to the parity check matrix corresponding to a predetermined code rate or a predetermined code length among the plurality of parity check matrixes, The interconnection between the moving units can be set.

일 실시 예로서, 상기 통합 노드 프로세서로 출력하는 단계는, 상기 복수의 순환 이동부에 의해, 상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 가변 인터커넥션 네트워크로부터 입력되는 신호를 제1 사이클 단위로 순환 이동하는 단계; 그리고 상기 복수의 순환 이동부에 의해, 상기 순환 정보에 따라 상기 제1 사이클 단위로 순환된 신호를 제2 사이클만큼 순환 이동하는 단계를 포함하고, 상기 서브 행렬은 상기 패리티 검사 행렬 중의 일부인 부분 행렬로서, 정사각 행렬인 동시에, 단위 행렬의 순환 행렬 또는 영행렬이고, 상기 순환 정보는 상기 순환 행렬의 순환 이동 크기일 수 있다.In one embodiment of the present invention, the step of outputting to the integrated node processor comprises: a step of outputting, by the plurality of cyclic shifting units, a signal input from the variable interconnection network according to cyclic information of a sub-matrix of the parity check matrix, ; ≪ / RTI > And cyclically shifting a signal circulated in the first cycle unit by a second cycle according to the cyclic information by the plurality of cyclic shifting units, wherein the sub-matrix is a partial matrix that is a part of the parity check matrix , A square matrix, a unit matrix circulation matrix or a zero matrix, and the circulation information may be a circular movement size of the circulation matrix.

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

또한, 본 발명의 실시 예에 의하면 복호화를 고속으로 수행할 수 있다.Also, according to the 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 configuration diagram of a wireless communication system according to an embodiment of the present invention.
2 is a diagram illustrating a parity check matrix.
FIG. 3 is a diagram showing the 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 that configures an LDPC decoding apparatus according to an embodiment of the present invention.
6 is a configuration 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.
FIG. 8 is a block diagram of a cyclic shifting unit included in an LDPC decoding apparatus according to an embodiment of the present invention.
9 is a configuration diagram of the first cyclic shifter shown in FIG.
10 is a configuration diagram of each second cyclic shifter shown in FIG.

본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되는 실시 예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.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 can support various coding rates and block lengths through variable control of the interconnection network between the bit node and the check node operating on various parity check matrices. The decoding apparatus according to the embodiment of the present invention can reduce the complexity in the case of the pre-array processing by integrating the bit nodes and the check nodes and sharing the operation units operating in different clock cycles. The decoding apparatus according to an embodiment of the present invention uses an efficient cyclic shifter logic 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 apparatus 40 and a receiving apparatus 80. The transmitting apparatus 40 includes an LDPC coding apparatus 50 and a modulator 60. [ The LDPC encoding apparatus 50 receives the data m and encodes the received data m to output a codeword c. The modulator 60 receives the codeword c from the LDPC encoder 50 and wirelessly modulates the codeword c. The radio-modulated codeword is transmitted to the receiving apparatus 80 via the antenna. The receiving apparatus 80 includes a demodulator 90 and an LDPC decoding apparatus 100. The demodulator 90 receives the radio-modulated codeword through an antenna, and demodulates it into a codeword c. LDPC decoding apparatus 100 receives codeword c and decodes codeword c to output data m.

이와 같이, 도 1에 도시한 무선 통신 시스템(10)은 LDPC 부호화 장치(50)를 사용하여 데이터(m)를 부호어(c)로 부호화하고, LDPC 복호화 장치(100)를 사용하여 부호어(c)를 데이터(m)로 복호화함으로써, 데이터(m)를 안정적으로 송수신한다. LDPC 복호화 장치(100)는 예를 들어 아래의 수학식 1에 따라, 패리티 검사 행렬(H)을 이용하여 부호어(c)에 오류가 있는지 여부를 판단할 수 있다. 여기서, 패리티 검사 행렬은 LDPC 복호화 장치(100)에 수신된 부호어(c)에 오류가 포함되는지를 검사하기 위한 행렬을 의미한다. 1 wirelessly encodes the data m into codewords c using the LDPC encoder 50 and encodes the codeword c using the LDPC encoder 100 using the LDPC encoder 100. [ c to the data m to stably transmit and receive the data m. The LDPC decoding apparatus 100 can determine whether there is an error in the codeword c 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)에 오류가 있는 것으로 판단한다.If the matrix operation value between the codeword c and the parity check matrix is '0', it is determined that there is no error in the codeword c, and if it is not '0', the codeword c is in error .

도 2는 패리티 검사 행렬을 예시적으로 나타낸 도면이다. 도 2에 도시된 바와 같이, 후술되는 준순환(quasi-cyclic) LDPC 부호에서 사용되는 패리티 검사 행렬(H)은 복수의 서브 행렬을 포함할 것이다. 각각의 서브행렬은 정사각 행렬이며, 단위 행렬의 순환 행렬이거나 영행렬이다. 패리티 검사 행렬(H)은 아래의 수학식 2와 같이 제1 행렬(H1)과 제2 행렬(H2)로 구분될 수 있다. 이때, 제2 행렬(H2)은 역행렬을 갖는 정사각 행렬이다.2 is a diagram illustrating a parity check matrix. 2, a parity check matrix H used in a quasi-cyclic LDPC code to be described later will include a plurality of sub-matrices. Each sub-matrix is a square matrix, either a circulant matrix of the identity matrix or a zero matrix. The parity check matrix H can be divided into a first matrix H1 and a second matrix H2 as shown in Equation (2) below. At this time, 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 encoder 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 one column and p (p = l-n) rows. The first matrix H1 includes p rows and n columns and includes a plurality of sub-matrices. The second matrix H2 consists of p (p = l-n) rows and p columns.

앞서 언급된 수학식 1 내지 3은 아래의 수학식 4를 유도할 수 있다.The above-mentioned equations (1) to (3) can derive Equation (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 = - H 1 -1 H 1 m T

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

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

준순환 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 can be expressed by Equation (5) below.

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

Figure 112013005294716-pat00001
Figure 112013005294716-pat00001

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

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

Figure 112013005294716-pat00002
Figure 112013005294716-pat00002

도 3은 위 수학식 6에 나타낸 행렬을 이분 그래프(bipartite graph) 형태로 나타낸 도면이다. 도 3에 도시된 바와 같이, 이분 그래프는 왼쪽의 비트 노드와 오른쪽의 검사 노드로 구성될 수 있다. 비트 노드의 개수는 패리티 검사 행렬에서 열의 개수와 동일하고, 검사 노드의 개수는 패리티 검사 행렬에서 행의 개수와 동일하다.FIG. 3 is a diagram showing the matrix shown in Equation (6) in the form of a bipartite graph. As shown in FIG. 3, the bipartite graph may be composed of a left bit node and a right check node. 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), the element " 1 " represents an edge connecting the bit node and the check node corresponding to each other in the half graph. For example, since the element (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 to the 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 encoded according to the parity check matrix is performed by a message passing algorithm. The message passing algorithm is a process of decoding a codeword while exchanging soft information between a bit node connected to an edge and a check node. In general, since the soft information is repeatedly exchanged, the decoding process is performed through a plurality of 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 sign 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,. ..., xN ]). The transmission symbol x is received by the receiving end through an additive white Gaussian noise (AWGN) channel, and the received symbol sequence is called "y = [y 1 , y 2 , ..., y N ] .

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

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

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

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

Figure 112013005294716-pat00007
Figure 112013005294716-pat00007

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

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

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

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

Figure 112013005294716-pat00009
Figure 112013005294716-pat00009

Figure 112013005294716-pat00010
Figure 112013005294716-pat00010

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

Figure 112013005294716-pat00011
는 예를 들어 아래의 수학식 9와 같다.Bit node operation, soft information generated for j = 1, 2, ..., N (where N is the length of a sign bit)
Figure 112013005294716-pat00011
For example, the following equation (9).

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

Figure 112013005294716-pat00012
Figure 112013005294716-pat00012

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

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

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

Figure 112013005294716-pat00015
Figure 112013005294716-pat00015

수학식 10에서,

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

LDPC 복호화 장치(100)는 복호된 부호어(c)가 앞서 언급된 수학식 1의 조건을 만족하면 정확하게 복호된 부호어라고 판단하며, 부호어 중에서 정보 비트를 추출한다. 만약, 복호된 부호어(c)가 수학식 1의 조건을 만족하지 않으면 다시 반복(iteration)을 수행한다.The LDPC decoding apparatus 100 determines that the decoded codeword c satisfies the condition of Equation (1) mentioned above and decides it to be a correctly decoded codeword, and extracts information bits from the codeword. If the decoded codeword c does not satisfy the condition of Equation (1), it iterates 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, Information is transmitted.

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

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

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

Figure 112013005294716-pat00017
Figure 112013005294716-pat00017

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

앞서 언급된 수학식 9 역시 아래의 수학식 12와 같이 변경될 수 있다.The above-mentioned Equation 9 can also be modified as shown in Equation 12 below.

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

Figure 112013005294716-pat00018
Figure 112013005294716-pat00018

검사 노드와 마찬가지로, 비트 노드 역시 여러 개의 검사 노드들로 전송되는 정보를 동일한 값으로 바꿈에 따라서 비트 노드에서 검사 노드로 연결되는 인터커넥션 장치의 복잡도를 감소할 수 있다. 하지만, 이 경우에도 원래 전송되어야 하는 수학식 9의 비트 노드의 정보를 비트 노드가 아닌 검사 노드에서 생성해야 하므로, 검사 노드의 복잡도가 증가할 수 있다.As in the case of the check node, the bit node can also reduce the complexity of the interconnection device connected to the check node from the bit 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) to be originally transmitted must be generated at the check node instead of the bit node, the complexity of the check node may increase.

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

Figure 112013005294716-pat00019
의 크기를 다양하게 정의하여 다양한 부호 길이를 지원할 수 있다. 따라서, 다양한 부호 길이 및 부호율을 지원하기 위하여, LDPC 복호화 장치는 다양한 패리티 검사 행렬에 대하여 유동적으로 동작할 수 있어야 한다. 이하에서 설명되는 본 발명의 실시 예는 다양한 패리티 검사 행렬, 즉 다양한 lp의 값을 가지며 다양한 서브 행렬
Figure 112013005294716-pat00020
를 갖는 패리티 검사 행렬에 대응하여 유연하게 동작할 수 있는 LDPC 복호화 장치를 제시한다.Various parity check matrices may be defined to support various code rates and code lengths. For example, in the case of a semi-circulating LDPC code, a parity check matrix can be expressed as Equation 5. In order to support various code rates, l and p can have various values. Also, the sub-matrix of the parity check matrix of Equation (5)
Figure 112013005294716-pat00019
Can be variously defined to support various code lengths. Therefore, in order to support various code lengths and coding rates, the LDPC decoding apparatus must be able to operate flexibly with respect to various parity check matrices. The embodiment of the present invention described below has various parity check matrices, i.e., various l and p values, and various sub-matrices
Figure 112013005294716-pat00020
The LDPC decoding apparatus according to the present invention is an LDPC decoding apparatus that can flexibly operate in response to a parity check matrix having a parity check matrix.

도 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 includes an integrated node processor 110, a variable interconnection network 120, a circulating units 130, a parity check matrix storage unit 140, And an LDPC decoding control unit 150 for controlling the LDPC code.

통합 노드 프로세서(combined check and variable node process)(110)는 검사 노드와 비트 노드를 프로세싱하여 출력한다. 가변 인터커넥션 네트워크(flexible interconnect network)(120)는 통합 노드 프로세서(110)로부터의 프로세싱 결과를 입력받고, LDPC 복호 제어부(150)의 제어에 의해 패리티 검사 행렬 저장부(140)에 저장된 패리티 검사 행렬의 부호율 또는 부호 길이에 대응하여 가변될 수 있다. 패리티 검사 행렬 저장부(140)은 다양한 부호율 또는 부호 길이에 대응하는 패리티 검사 행렬들을 저장할 수 있다. 순환 이동부들(130)은 가변 인터커넥션 네트워크(120)의 출력을 순환 쉬프트(cyclic shift)한다.A combined check and variable node process 110 processes and outputs check nodes and bit nodes. The flexible interconnect network 120 receives the processing result from the integrated node processor 110 and controls the parity check matrix stored in the parity check matrix storage unit 140 under the control of the LDPC decoding control unit 150. [ 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 circulating units 130 cyclic-shift the output of the variable interconnection network 120. [

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

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

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

따라서, 브로드캐스팅 기법이 적용된 SPA를 이용하는 LDPC 복호의 경우에 있어, 비트 노드와 검사 노드의 하드웨어의 복잡도가 증가하게 된다. 이에, 브로드캐스팅 기법이 적용되면서 증가한 하드웨어의 복잡도를 낮출 수 있도록, 본 발명의 실시 예에 따른 LDPC 복호화 장치(100)의 통합 노드 프로세서(110)는 각각의 그룹 내에 비트 노드와 검사 노드를 통합시킨 병합된 검사 및 체크 노드 프로세서(combined variable and check node processor)로써 구현될 수 있다.Therefore, in the case of the LDPC decoding using the SPA with the broadcasting technique, the hardware complexity of the bit node and the check node increases. Accordingly, in order to reduce the complexity of the hardware while 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 And can 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 through 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 required.

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

또한, 수학식 5의 패리티 검사 행렬을 보면 p개의 서브 행렬과 l개의 서브 행렬을 통하여 패리티 검사 행렬의 열과 행이 정의된다. 이때 p개의 서브 행렬이 패리티 검사 행렬의 부호어의 길이를 결정한다. 또한, p개 서브 행렬이 결정되었을 때, l이 부호율을 결정하게 된다. 따라서 p개의 서브 행렬을 갖는 패리티 검사 행렬을 지원하기 위하여, 다시 말해 p개의 서브 행렬을 갖는 패리티 검사 행렬에 의해 생성된 부호어를 복호하기 위하여 p개의 CVP 그룹이 필요하다.In the parity check matrix of Equation (5), columns and rows of a parity check matrix are defined through p sub-matrices and l sub-matrices. At this time, p sub-matrices determine the codeword length of the parity check matrix. Also, when p sub-matrices 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 need 24 CVP groups, and if p is 20, you need 20 CVP groups. Therefore, the number of the CVP groups can be determined according to the parity check matrix having the largest value of p among the parity check matrixes to be supported. In the example mentioned, the number of CVP groups is determined to be 24. If a parity check matrix with p = 20 is decoded, only 20 CVP groups may be used, and the remaining four may not be used. In this way, decoding can be performed corresponding to various codeword lengths.

비트 노드와 검사 노드가 따로 구현되는 경우, 하드웨어의 복잡도가 두 배 정도로 증가한다. 본 발명의 실시 예를 구성하는 통합 노드 프로세서(110)는 브로드캐스팅이 적용된 경우에 있어서, 검사 노드와 비트 노드에서 사용되는 로직의 종류가 대부분 비슷함을 이용하여 하나의 프로세서를 이용하여 메시지 패싱 알고리즘을 구현할 수 있다.If the bit node and the check node are separately implemented, the complexity of the hardware increases to about twice. In the case where broadcasting is applied, the integrated node processor 110 constituting the embodiment of the present invention uses a single processor to perform a message passing algorithm 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 that configures an LDPC decoding apparatus according to an embodiment of the present invention. 5, the integrated node processor 110 includes bit node registers 111, check node registers 112, a first logic 113, an adder 114, a second logic 115, . Each bit node register 1111 corresponds to one of the N bit nodes, and each check node register 1121 corresponds to one of M bit nodes. According to the parity check matrix, one bit node or check node is connected to 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 from N check nodes or bit nodes are input to the first logic 113. The process of generating broadcasting output data from broadcasting input data is as follows. The first logic 113 generates SPA data according to the same method as that of the existing SPA using the multiplexer 1131 and the mapping unit 1132 and outputs the generated SPA data to the adder 114. The mapping unit 1132 can detect the mapping data corresponding to the input using, for example, a look-up table (LUT). The adder 114 adds all of the SPA data through an addition operation to generate a broadcasting output.

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

이 과정이 끝나면 기존의 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 from the existing SPA. The result computed in the second logic 115 is stored in corresponding registers 111 and 112 depending on whether it is a bit node operation or a check node operation. Thereafter, each node generates a broadcast output again and delivers it to the connected node, and the broadcast output is used in the operation of the clock cycle.

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

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

이에, 본 발명의 실시 예에 따른 LDPC 복호화 장치(100)를 구성하는 가변 인터커넥션 네트워크(120)는 다양한 패리티 검사 행렬을 지원할 수 있도록 제공된다. 가변 인터커넥션 네트워크(120)는 패리티 검사 행렬에 따라 재구성 가능(reconfigurable)한 유동적 인터커넥션 네트워크로써 구현된다.Accordingly, the variable interconnection network 120 constituting the LDPC decoding apparatus 100 according to the embodiment of the present invention is provided to support various parity check matrices. The variable interconnection network 120 is implemented as a reconfigurable interconnection network 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 configuration diagram of an interconnection switch unit of a variable interconnection network constituting an LDPC decoding apparatus according to an embodiment of the present invention. Referring to FIG. 4 and FIG. 6, an interconnection switch unit 121 of a flexible interconnection network 120 is included. Each interconnection switch unit 121 has a one-to-one correspondence to one check and bit node processor CVP of the unified node processor 110, and outputs a broadcasting output via an input port to a corresponding check and bit node And receives input from the processor. In order to support various parity check matrices, broadcasting output data from one CVP can be connected to a maximum of 24 CVP groups according to a parity check matrix.

하나의 CVP 그룹의 24개의 CVP 그룹에 각각 연결하게 되면, 인터커넥션 네트워크의 복잡도가 커지게 된다. 본 발명의 실시 예에 있어서, 가변 인터커넥션 네트워크(120)는 여러 개의 CVP 그룹을 하나의 큰 그룹(group)으로 묶어서 인터커넥션을 수행할 수 있다. 도 6에는 4개의 CVP 그룹을 하나의 큰 그룹으로 묶은 예가 도시되어 있다.Connecting each of the 24 CVP groups of one CVP group increases the complexity of the interconnection network. In the embodiment of the present invention, the variable interconnection network 120 can perform interconnection by grouping several CVP groups into one large group. FIG. 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 can perform the interconnection using the switches 1211 to 1215 receiving the two control signals CTRL0 and CTRL1. Each of the switches 1211 to 1215 includes two transfer gates TG1 and TG2. The two transfer gates TG1 and TG2 generate two outputs (output 0 and output 1) in accordance with the control signals CTRL0 and CTRL1 corresponding to a common input. For example, if there is no need to connect CVP groups (groups 1 to 4) for a check node or a bit node, control signals may be adjusted so that CVP groups 1 to 4 do not send broadcast output data, 8 < / RTI >

다른 예로, CVP 그룹 1~8으로 연결할 필요가 없는 경우에는, CVP 그룹 1~8까지는 데이터를 보내지 않도록 컨트롤 신호를 조절할 수 있다. 이러한 컨트롤 신호는 패리티 검사 행렬에 따라 다르게 생성될 수 있다. 따라서, 패리티 검사 행렬에 따라 스위치들(1211~1215)을 제어하여 가변적으로 CVP 그룹으로 연결 또는 차단을 구현할 수 있으며, 다양한 패리티 검사 행렬을 지원할 수 있다.As another example, if there is no need to connect to CVP groups 1 through 8, CVP groups 1 through 8 can control the control signal to not send data. These control signals may be generated differently depending on the parity check matrix. Accordingly, it is possible to control the switches 1211 to 1215 according to the parity check matrix to variably connect or block the CVP group, and to 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 is composed of four rows and twenty columns, and the second matrix H2 is composed of four rows and four columns. In addition, each sub-matrix is implemented as a recursive matrix or a zero matrix of the identity matrix. One square represents a sub-matrix. 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 in each sub-matrix represent the magnitude of cyclic shift of the identity matrix. The number '13' in the first column of the first row of the parity check matrix, ie, the (1,1) sub-matrix, has interconnection between 1 to 81 bit nodes and 1 to 81 check nodes, 13 'cyclic shift to connect the bit node and the check node. That is, the first bit node is connected to the check node 14, the second bit node is connected to the check node 15, and the 81 bit node is connected to the check node 13 in the same manner. At this time, the clic shifter, . '-' represents a zero matrix, meaning there is no interconnection.

순환 이동부(130)는 도 4에 도시된 바와 같이 가변 인터커넥션 네트워크(120)의 출력과 연결된다. 도 7에 도시한 패리티 검사 행렬을 예로 들면, 첫 번째 비트 노드 그룹에서 가변 인터커넥션 네트워크(120)의 인터커넥션 스위치부(121)로 데이터를 내보내면, 인터커넥션 스위치부(121)를 통하여 첫 번째에서 네 번째 검사 노드 그룹으로 데이터가 전송된다.The cyclic shifter 130 is connected to the output of the variable interconnection network 120 as shown in FIG. 7, when data is sent from the first bit node group to the interconnection switch unit 121 of the variable interconnection network 120, data is transmitted through the interconnection switch unit 121 to the first bit node group 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 shown in FIG. 7, the interconnection switch unit 121 will transmit data only to the CVP groups 1 to 4 because it is outside the fourth check node group. The cyclic shifter 130 cyclically shifts the transmitted data by values of '13', '69', '51', and '16', and transmits the cyclic shift to each CVP group. That is, the cyclic shifter 130 generates four cyclic shift outputs corresponding to one input.

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

도 7에 도시한 패리티 검사 행렬의 첫 번째 열을 보면 순환 쉬프트 값(cyclic shift value)이 '13', '69', '51', '16'으로 그 크기가 다양함을 알 수 있다. 이것을 동시에 지원하기 위해서는 네 개의 순환 쉬프터(cyclic shifter)가 필요한데, 단순히 네 개의 순환 쉬프터(cyclic shifter)를 병렬로 연결하여 순환 이동을 구현할 경우, 복잡도가 증가할 수 있다.In the first column of the parity check matrix shown in FIG. 7, it can be seen that the cyclic shift values vary in size by '13', '69', '51' and '16'. In order to support this simultaneously, four cyclic shifters are required. If cyclic shifters are connected by simply connecting four cyclic shifters, the 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 performs a cyclic shift operation in a predetermined range to output the output to the second cyclic shifters 132. The second cyclic shifters 132 perform a cyclic shift by an amount insufficient 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 broadcast data is connected in units of four CVP groups in the variable interconnection network 120, one cyclic shifter can support four different cyclic shift sizes do. Accordingly, the second cyclic shifters 132 are arranged in a parallel cyclic shifter structure to perform parallel processing.

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

제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 the data to the second cyclic shifters 132. When the length of the data is one of 27, 54, and 81, the cyclic shift circuit 1311 can be divided into 27 (16 + 11) three regions and can be implemented to support all cases through the selection of a multiplexer have. Although the multiplexer exists in the first cyclic shifter 131, since the cyclic shift unit is basically one unit of 16, the complexity of the logic is not high.

제1 순환 쉬프터(131)의 순환 쉬프트 단위가 '16'인 경우를 예로 들면, 도 7에 도시한 패리티 검사 행렬의 첫 번째 열에서, 첫 번째 순환 쉬프트 값(cyclic shift value)은 '13'이므로, 제1 순환 쉬프터(131)는 입력을 쉬프트(shift) 시키지 않고 바로 제2 순환 쉬프터들(132)로 보낸다. 이후, 제2 순환 쉬프터들(132)에 의해 13번의 순환 쉬프트가 수행된다.In the case where the cyclic shift unit of the first cyclic shifter 131 is '16', for example, in the first column of the parity check matrix shown in FIG. 7, the first cyclic shift value is '13' , The first cyclic shifter 131 directly sends the second cyclic shifter 132 without shifting the input. Thereafter, 13 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 cyclically shifts to '64' ), And sends it to the second cyclic shifters 131. Accordingly, the second cyclic shifters 132 may perform only five 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)은 동작하지 않고 바로 출력으로 내보낼 수 있다.Since the third cyclic shift value is '51' in the first column of the parity check matrix shown in FIG. 7, the first cyclic shifter 131 cyclically shifts '48' ), And sends it to the second cyclic shifters 131. Accordingly, the second cyclic shifters 132 need only perform three cycles of cyclic shift. 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. At this time, the second cyclic shifters 132 do not operate and can be directly outputted to the output.

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

제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 on the basis of the result of cyclic shifting in the first cyclic shifter 131, the second cyclic shifter 1321 shifts the size of the cyclic shift Is smaller than a cyclic shift unit (for example, 16) of the first cyclic shifter 131. If the first cyclic shifter 131 is not provided, the second cyclic shifter 1321 must support all the cyclic shifts from 1 to 80. However, in the embodiment of the present invention, the second cyclic shifter 1321 Only the cyclic shift from 1 to 15 can be supported, so that the complexity of the circulating 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 one-step cyclic shift. Two cycles in the second circuit 1321b, four cycles in the third circuit 1321c, and eight cycles in the fourth circuit 1321d. The second cyclic shifter 1321 may be divided into three parts in the same manner as the first cyclic shifter 131 in order to support both cyclic shifts 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', cyclic shift can be performed only in the first and third stages. In this case, in the second and fourth steps, the data can be transferred to the next step without cyclic shift. According to the embodiment of the present invention, since the cyclic shifting is performed in a specific unit (for example, 16 units) in the first cyclic shifter 131, the cyclic shift, which should be performed in the second cyclic shifter 1321, Is limited to 15 or less. Therefore, the overall complexity of the circulator 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 with a low complexity, which is suitable for parallel operation processing of a circular movement unit required in the message passing process of the sub-circulating LDPC code. Accordingly, 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 the throughput of several Gbps in the case of the full duplex processing.

이상의 실시예들은 본 발명의 이해를 돕기 위하여 제시된 것으로, 본 발명의 범위를 제한하지 않으며, 이로부터 다양한 변형 가능한 실시예들도 본 발명의 범위에 속할 수 있음을 이해하여야 한다. 예를 들어, 본 발명의 실시예에 도시된 각 구성 요소는 분산되어 실시될 수도 있으며, 반대로 여러 개로 분산된 구성 요소들은 결합되어 실시될 수 있다. 따라서, 본 발명의 기술적 보호범위는 특허청구범위의 기술적 사상에 의해 정해져야 할 것이며, 본 발명의 기술적 보호범위는 특허청구범위의 문언적 기재 그 자체로 한정되는 것이 아니라 실질적으로는 기술적 가치가 균등한 범주의 발명에 대하여까지 미치는 것임을 이해하여야 한다.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 apparatus 110: Integrated node processor
120: variable interconnection network 130:
140: Parity check matrix storage unit 150: LDPC decoding control unit

Claims (15)

패리티 검사 행렬에 대응하는 검사 노드와 비트 노드의 그룹들을 포함하며, 상기 검사 노드와 상기 비트 노드에 대한 소프트 정보를 생성하는 통합 노드 프로세서;
상기 통합 노드 프로세서로부터 상기 소프트 정보를 입력받는 가변 인터커넥션 네트워크; 그리고
상기 패리티 검사 행렬에 따라 상기 가변 인터커넥션 네트워크로부터 출력되는 소프트 정보를 순환 이동하여 상기 통합 노드 프로세서로 출력하는 복수의 순환 이동부를 포함하고,
상기 가변 인터커넥션 네트워크는, 상기 복수의 순환 이동부와의 인터커넥션을 상기 패리티 검사 행렬에 따라 가변적으로 설정하는 복호화 장치.
An integrated node processor including a check node and groups of bit nodes corresponding to a parity check matrix and generating soft information for the check node and the bit node;
A variable interconnection network for receiving the soft information from the integrated node processor; And
And a plurality of cyclic shifters for cyclically shifting soft information output from the variable interconnection network according to the parity check matrix and outputting the soft information to the integrated node processor,
Wherein the variable interconnection network variably sets interconnection with the plurality of cyclic shifters according to the parity check matrix.
제1 항에 있어서,
복수 개의 부호율 또는 복수 개의 부호 길이에 대응하는 복수 개의 패리티 검사 행렬을 저장하는 패리티 검사 행렬 저장부를 더 포함하며,
상기 가변 인터커넥션 네트워크는,
상기 복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 복수의 순환 이동부와의 인터커넥션을 설정하는 복호화 장치.
The method according to claim 1,
And 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 comprising:
And sets an interconnection with the plurality of cyclic shifters according to the parity check matrix corresponding to a predetermined code rate or a predetermined code length among the plurality of parity check matrixes.
제1 항에 있어서,
상기 통합 노드 프로세서의 각 그룹은 상기 패리티 검사 행렬의 서브 행렬의 크기에 대응하는 검사 노드들의 제1 레지스터들과 비트 노드들의 제2 레지스터들을 포함하며,
상기 제1 레지스터들 및 상기 제2 레지스터들은 비트 노드들 또는 검사 노드들로부터 전송받은 브로드 캐스팅(broadcasting) 입력으로부터 합-곱 알고리즘(Sum-Product Algorithm)에 따라 생성되는 상기 소프트 정보를 저장하고,
상기 서브 행렬은 상기 패리티 검사 행렬 중의 일부인 부분 행렬이고, 정사각 행렬인 복호화 장치.
The method according to claim 1,
Wherein each group of the integrated node processors includes first registers of check nodes and second registers of bit nodes corresponding to a size of a sub-matrix of the parity check matrix,
The first registers and the second registers store the soft information generated according to a Sum-Product Algorithm from a broadcasting input received from bit nodes or check nodes,
Wherein the sub-matrix is a partial matrix that is a part of the parity check matrix and is a square matrix.
제3 항에 있어서,
상기 통합 노드 프로세서는 상기 검사 노드 및 상기 비트 노드로 동작 가능한 검사 및 비트 노드 프로세서들을 포함하고,
상기 가변 인터커넥션 네트워크는 상기 패리티 검사 행렬에 따라 상기 복수의 순환 이동부 중 대응하는 하나 이상의 순환 이동부와 상기 인터커넥션을 설정하는 인터커넥션 스위치들을 포함하고,
상기 인터커넥션 스위치들은 상기 검사 및 비트 노드 프로세서들과 일대일 대응되도록 연결되는 복호화 장치.
The method of claim 3,
Wherein the unified node processor comprises check and bit node processors operable with the check node and the bit node,
Wherein the variable interconnection network includes interconnection switches for setting the interconnection with the corresponding one or more of the plurality of cyclic shifters according to the parity check matrix,
Wherein the interconnection switches are connected in a one-to-one correspondence with the inspection and bit node processors.
제4 항에 있어서,
상기 인터커넥션 스위치들은 상기 패리티 검사 행렬 중 상기 검사 노드와 상기 비트 노드가 연결되는 서브 행렬들의 정보에 기초하여, 상기 하나 이상의 순환 이동부와 상기 인터커넥션을 설정하고,
상기 서브 행렬들은 각각 상기 패리티 검사 행렬 중의 일부인 부분 행렬로서, 정사각 행렬인 복호화 장치.
5. The method of claim 4,
Wherein the interconnection switches establish the interconnection with the at least one cyclic shifter based on the information of the submatrices to which the check node and the bit node are connected among the parity check matrix,
Wherein each of the sub-matrices is a partial matrix that is a part of the parity check matrix, and is a square matrix.
제5 항에 있어서,
각각의 인터커넥션 스위치는,
상기 통합 노드 프로세서로부터의 입력을 상기 하나 이상의 순환 이동부로 동시에 전송하는 복호화 장치.
6. The method of claim 5,
Each of the interconnection switches,
And simultaneously transmits the input from the integrated node processor to the at least one cyclic shifter.
제1 항에 있어서,
상기 복수의 순환 이동부는 각각,
상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 가변 인터커넥션 네트워크로부터의 입력을 제1 사이클 단위로 순환 이동하는 제1 순환 쉬프터; 그리고
상기 순환 정보에 따라 상기 제1 순환 쉬프터의 출력을 제2 사이클만큼 순환 이동하는 제2 순환 쉬프터들을 포함하고,
상기 서브 행렬은 상기 패리티 검사 행렬 중의 일부인 부분 행렬로서, 정사각 행렬인 동시에, 단위 행렬의 순환 행렬 또는 영행렬이고, 상기 순환 정보는 상기 순환 행렬의 순환 이동 크기인 복호화 장치.
The method according to claim 1,
Wherein each of the plurality of circular movement units comprises:
A first cyclic shifter for circulating input from the variable interconnection network in a first cycle unit according to cyclic information of a sub-matrix of the parity check matrix; And
And second cyclic shifters for cyclically shifting the output of the first cyclic shifter by a second cycle according to the cyclic information,
Wherein the sub-matrix is a partial matrix that is a part of the parity check matrix and is a square matrix, a cyclic matrix or a zero matrix of an identity matrix, and the cyclic information is a cyclic shift size of the cyclic matrix.
제7 항에 있어서,
상기 제2 사이클은 상기 제1 사이클 단위보다 작은 값을 갖는 복호화 장치.
8. The method of claim 7,
And the second cycle has a smaller value than the first cycle unit.
제8 항에 있어서,
상기 제1 순환 쉬프터는 상기 가변 인터커넥션 네트워크로부터의 입력을 상기 제1 사이클 단위로 순환 이동하는 복수 개의 순환 쉬프트 회로들을 포함하며, 상기 복수 개의 순환 쉬프트 회로들의 출력을 선택하여 상기 제2 순환 쉬프터들로 출력하는 복호화 장치.
9. The method of claim 8,
Wherein the first cyclic shifter includes a plurality of cyclic shift circuits for cyclically shifting an input from the variable interconnection network in the first cycle unit and selecting an output of the plurality of cyclic shift circuits, .
패리티 검사 행렬을 이용하여 데이터로부터 부호어를 생성하는 LDPC 부호화 장치를 포함하는 송신 장치; 그리고
상기 패리티 검사 행렬을 이용하여 상기 부호어를 복호화하여 상기 데이터를 복원하는 LDPC 복호화 장치를 포함하는 수신 장치를 포함하며,
상기 LDPC 복호화 장치는,
패리티 검사 행렬에 대응하는 검사 노드와 비트 노드의 그룹들을 포함하며, 상기 검사 노드와 상기 비트 노드에 대한 소프트 정보를 생성하는 통합 노드 프로세서;
상기 통합 노드 프로세서로부터 상기 소프트 정보를 입력받는 가변 인터커넥션 네트워크; 그리고
상기 패리티 검사 행렬에 따라 상기 가변 인터커넥션 네트워크로부터 출력되는 소프트 정보를 순환 이동하여 상기 통합 노드 프로세서로 출력하는 복수의 순환 이동부를 포함하고,
상기 가변 인터커넥션 네트워크는, 상기 복수의 순환 이동부와의 인터커넥션을 상기 패리티 검사 행렬에 따라 가변적으로 설정하는 무선 통신 시스템.
A transmitting apparatus including an LDPC encoding apparatus for generating a codeword from data using a parity check matrix; And
And an LDPC decoder for decoding the codeword using the parity check matrix to recover the data,
The LDPC decoding apparatus includes:
An integrated node processor including a check node and groups of bit nodes corresponding to a parity check matrix and generating soft information for the check node and the bit node;
A variable interconnection network for receiving the soft information from the integrated node processor; And
And a plurality of cyclic shifters for cyclically shifting soft information output from the variable interconnection network according to the parity check matrix and outputting the soft information to the integrated node processor,
Wherein the variable interconnection network variably sets an interconnection with the plurality of cyclic shifters according to the parity check matrix.
제10 항에 있어서,
상기 LDPC 복호화 장치는 복수 개의 부호율 또는 복수 개의 부호 길이에 대응하는 복수 개의 패리티 검사 행렬을 저장하는 패리티 검사 행렬 저장부를 더 포함하며,
상기 가변 인터커넥션 네트워크는,
상기 복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 복수의 순환 이동부와의 인터커넥션을 설정하는 무선 통신 시스템.
11. The method of claim 10,
Wherein the LDPC decoding apparatus further comprises 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 comprising:
And establishes an interconnection with the plurality of cyclic shifters according to the parity check matrix corresponding to a predetermined code rate or a predetermined code length among the plurality of parity check matrixes.
제10 항에 있어서,
상기 복수의 순환 이동부는 각각,
상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 가변 인터커넥션 네트워크로부터의 입력을 제1 사이클 단위로 순환 이동하는 제1 순환 쉬프터; 그리고
상기 순환 정보에 따라 상기 제1 순환 쉬프터의 출력을 제2 사이클만큼 순환 이동하는 제2 순환 쉬프터들을 포함하고,
상기 서브 행렬은 상기 패리티 검사 행렬 중의 일부인 부분 행렬로서, 정사각 행렬인 동시에, 단위 행렬의 순환 행렬 또는 영행렬이고, 상기 순환 정보는 상기 순환 행렬의 순환 이동 크기인 무선 통신 시스템.
11. The method of claim 10,
Wherein each of the plurality of circular movement units comprises:
A first cyclic shifter for circulating input from the variable interconnection network in a first cycle unit according to cyclic information of a sub-matrix of the parity check matrix; And
And second cyclic shifters for cyclically shifting the output of the first cyclic shifter by a second cycle according to the cyclic information,
Wherein the sub-matrix is a partial matrix that is a part of the parity check matrix and is a square matrix and a circulation matrix or a zero matrix of an identity matrix, and the circulation information is a circular movement size of the circulation matrix.
통합 노드 프로세서에 의해, 패리티 검사 행렬에 대응하는 검사 노드와 비트 노드에 대한 소프트 정보를 생성하는 단계;
가변 인터커넥션 네트워크에 의해, 상기 패리티 검사 행렬에 따라 복수의 순환 이동부와의 인터커넥션을 가변적으로 설정하는 단계; 그리고
상기 복수의 순환 이동부에 의해, 상기 가변 인터커넥션 네트워크로부터 입력되는 신호를 상기 패리티 검사 행렬에 따라 순환 이동하여 상기 통합 노드 프로세서로 출력하는 단계를 포함하고,
상기 인터커넥션을 가변적으로 설정하는 단계는, 상기 가변 인터커넥션 네트워크와 상기 복수의 순환 이동부 간의 인터커넥션을 상기 패리티 검사 행렬에 따라 가변적으로 설정하는 복호화 방법.
Generating soft information for a check node and a bit node corresponding to a parity check matrix by an integrated node processor;
Varying an interconnection with a plurality of cyclic shifters according to the parity check matrix by a variable interconnection network; And
And cyclically shifting a signal input from the variable interconnection network according to the parity check matrix by the plurality of cyclic shifters and outputting the cyclic shifter to the integrated node processor,
Wherein the step of variably setting the interconnection comprises variably setting interconnection between the variable interconnection network and the plurality of cyclic shifters according to the parity check matrix.
제13 항에 있어서,
상기 인터커넥션을 가변적으로 설정하는 단계는,
복수 개의 패리티 검사 행렬 중 소정의 부호율 또는 소정의 부호 길이에 대응하는 상기 패리티 검사 행렬에 따라 상기 가변 인터커넥션 네트워크와 상기 복수의 순환 이동부 간의 상기 인터커넥션을 설정하는 복호화 방법.
14. The method of claim 13,
Wherein the step of variably setting the interconnection comprises:
And setting the interconnection between the variable interconnection network and the plurality of circular movement units according to the parity check matrix corresponding to a predetermined code rate or a predetermined code length among the plurality of parity check matrixes.
제13 항에 있어서,
상기 통합 노드 프로세서로 출력하는 단계는,
상기 복수의 순환 이동부에 의해, 상기 패리티 검사 행렬의 서브 행렬의 순환 정보에 따라 상기 가변 인터커넥션 네트워크로부터 입력되는 신호를 제1 사이클 단위로 순환 이동하는 단계; 그리고
상기 복수의 순환 이동부에 의해, 상기 순환 정보에 따라 상기 제1 사이클 단위로 순환된 신호를 제2 사이클만큼 순환 이동하는 단계를 포함하고,
상기 서브 행렬은 상기 패리티 검사 행렬 중의 일부인 부분 행렬로서, 정사각 행렬인 동시에, 단위 행렬의 순환 행렬 또는 영행렬이고, 상기 순환 정보는 상기 순환 행렬의 순환 이동 크기인 복호화 방법.
14. The method of claim 13,
Wherein the step of outputting to the integrated node processor comprises:
Cyclically moving a signal input from the variable interconnection network in units of a first cycle according to cyclic information of a sub-matrix of the parity check matrix by the plurality of cyclic shifting units; And
And cyclically moving, by the plurality of cyclic shifters, a signal cyclically cyclic in the first cycle according to the cyclic information by a second cycle,
Wherein the sub-matrix is a partial matrix that is a part of the parity check matrix and is a square matrix, a cyclic matrix of a unit matrix or a zero matrix, and the cyclic information is a cyclic shift size of the cyclic matrix.
KR1020130006039A 2012-02-10 2013-01-18 Decoder and decoding method KR102000268B1 (en)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
KR20130092441A KR20130092441A (en) 2013-08-20
KR102000268B1 true 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)

Families Citing this family (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

Also Published As

Publication number Publication date
KR20130092441A (en) 2013-08-20

Similar Documents

Publication Publication Date Title
KR101042747B1 (en) Apparatus and method for transmitting and receiving data in a communication system using structured low density parity check
KR100975547B1 (en) Distributed processing LDPCLow Density Parity Check decoder
US9009560B1 (en) Apparatus for encoding and decoding using sparse matrices
US7530002B2 (en) Sub-matrix-based implementation of LDPC (Low Density Parity Check) decoder
KR101227264B1 (en) Method and apparatus for block and rate independent decoding of ldpc codes
US8612823B2 (en) Encoding of LDPC codes using sub-matrices of a low density parity check matrix
US8433971B2 (en) Communication device architecture for in-place constructed LDPC (low density parity check) code
US20040093549A1 (en) Encoding method using a low density parity check code with a column weight of two
KR100941680B1 (en) Apparatus and method for generating of quasi-cyclic low density parity check codes
US9973212B2 (en) Decoding algorithm with enhanced parity check matrix and re-encoding scheme for LDPC code
US8713399B1 (en) Reconfigurable barrel shifter and rotator
KR101622956B1 (en) Contention-free parallel processing multimode ldpc decoder
US8145986B2 (en) Multi-CSI (Cyclic Shifted Identity) sub-matrix based LDPC (Low Density Parity Check) codes
KR20070107520A (en) Apparatus and method for transmitting/receiving signal in a communication system
US9595977B2 (en) LDPC decoder with efficient circular shifters
EP3001585A1 (en) Optical coherent receiver with forward error correction and parallel decoding
KR101216075B1 (en) Apparatus and method for decoding using channel code
US20220045785A1 (en) Method and apparatus for channel encoding/decoding in communication or broadcast system
US20070127387A1 (en) Partial-parallel implementation of LDPC (low density parity check) decoders
KR102000268B1 (en) Decoder and decoding method
KR102635532B1 (en) Method and apparatus for transmitting and receiving a signal using polar coding in a communication system
WO2008114969A1 (en) Method of generating a parity check matrix for ldpc encoding and decoding
US10608771B2 (en) Apparatus and method for encoding and decoding using short-length block code in wireless communication system
US8126022B2 (en) Electronic multimode data shift device, in particular for coding/decoding with an LDPC code
CN110463045B (en) Apparatus and method for channel encoding/decoding in communication or broadcasting 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