KR101065480B1 - 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그방법 - Google Patents
저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그방법 Download PDFInfo
- Publication number
- KR101065480B1 KR101065480B1 KR1020070133822A KR20070133822A KR101065480B1 KR 101065480 B1 KR101065480 B1 KR 101065480B1 KR 1020070133822 A KR1020070133822 A KR 1020070133822A KR 20070133822 A KR20070133822 A KR 20070133822A KR 101065480 B1 KR101065480 B1 KR 101065480B1
- Authority
- KR
- South Korea
- Prior art keywords
- minimum value
- bit
- node
- minimum
- values
- 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
- H03M13/1134—Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
-
- 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
-
- 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/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1117—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
- H03M13/112—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
-
- 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/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1117—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
- H03M13/1122—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/618—Shortening and extension of codes
-
- 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/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6362—Error control coding in combination with rate matching by puncturing
-
- 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/6577—Representation or format of variables, register sizes or word-lengths and quantization
- H03M13/658—Scaling by multiplication or division
-
- 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/6577—Representation or format of variables, register sizes or word-lengths and quantization
- H03M13/6583—Normalization other than scaling, e.g. by subtraction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
Abstract
본 발명은 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그 방법에 관한 것으로, 저밀도 패리티 검사 부호의 검사노드 갱신에 있어서, 입력 비트의 첫 번째 최소값 및 두 번째 최소값을 각 비트별로 산출하고 산출된 첫 번째 최소값 또는 두 번째 최소값을 이용하여 검사노드의 각 차수에 해당하는 최소값을 결정함으로써, 검사노드를 갱신하는 과정을 효율적으로 수행할 수 있게 하는, 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그 방법을 제공하고자 한다.
이를 위하여, 본 발명은 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치에 있어서, 입력 비트의 첫 번째 최소값을 각 비트별로 산출하고, 상기 산출된 첫 번째 최소값을 이용하여 두 번째 최소값을 함께 산출하기 위한 최소값 산출 수단; 상기 산출된 첫 번째 및 두 번째 최소값을 검사노드별로 행분해하여 노드별 첫 번째 및 두 번째 최소값을 산출하기 위한 노드 최소값 산출 수단; 및 상기 산출된 노드별 첫 번째 및 두 번째 최소값 중 어느 하나의 최소값을 상기 입력 비트의 각 차수에 해당하는 최소값으로 결정하기 위한 최소값 결정 수단을 포함한다.
입력 비트, 첫 번째 최소값, 두 번째 최소값, 검사노드 갱신, 행분해, 저밀도 패리티 검사 부호
Description
본 발명은 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 저밀도 패리티 검사 부호의 검사노드 갱신에 있어서, 입력 비트의 첫 번째 최소값 및 두 번째 최소값을 각 비트별로 산출하고 산출된 첫 번째 최소값 또는 두 번째 최소값을 이용하여 검사노드의 각 차수에 해당하는 최소값을 결정함으로써, 검사노드를 갱신하는 과정을 효율적으로 수행할 수 있게 하는, 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-002-02, 과제명: 3Gbps급 4G 무선 LAN 시스템 개발].
유/무선 통신시스템상의 전송 신호(Transmitted Signal)는 전송 채 널(Transmission Channel) 상의 잡음(Noise), 간섭(Interference) 및 감쇠(Fading) 등을 겪게 된다. 이로 인하여 수신 단이 상기 전송 신호를 복조할 수 없는 경우가 발생한다.
오류정정 부호 기법은 이러한 유/무선 통신시스템상에서 빠른 전송 속도로 인해 높아진 오류 발생률을 줄이기 위한 여러 가지 기법 중 대표적인 기법이다. 최근에는 거의 모든 무선통신 시스템에 오류정정 부호가 적용되고 있다. 특히, 오류정정 부호 중에서 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호는 우수한 오류정정 성능을 가질 뿐만 아니라 상대적으로 낮은 복잡도로 고속 복호기를 구현할 수 있다. 따라서 저밀도 패리티 검사 부호는 차세대 고용량 무선통신 시스템을 위한 오류정정 부호로서 각광받고 있다.
LDPC 부호는 "Gallager"에 의해 도입된 부호이다. LDPC 부호는 극소수의 원소들이 "1"의 값을 가지며, 나머지인 대부분의 원소들은 "0"의 값을 갖는 패리티 검사행렬로 정의된다.
LDPC 부호는 균일(regular) LDPC 부호와 비균일(irregular) LDPC 부호로 구별된다. 균일 LDPC 부호는 "Gallager"가 제안한 LDPC 부호로서, 패리티 검사행렬 내의 모든 행들은 동일한 개수의 "1"을 원소로 가지며, 모든 열들도 동일한 개수의 "1"을 원소로 갖는다. 이와 달리, 비균일 LDPC 부호의 패리티 검사행렬에는 서로 다른 개수의 "1"을 포함하는 행들이 존재하거나, 서로 다른 개수의 "1"을 포함하는 열들이 존재한다. 여기서, 비균일 LDPC 부호의 오류 정정 성능이 균일 LDPC 부호보다 일반적으로 우수하다고 알려져 있다.
"Fossorier"는 패리티 검사행렬의 원소를 행렬 상의 원소인 "0", "1"이 아니라 순환 이동(Cyclic Shift)된 단위 행렬(Identity Matrix) 및 "0 행렬"로 나타내는 준 순환(Quasi-Cyclic) LDPC 부호를 제안하였다.
한편, 저밀도 패리티 검사 부호를 이용한 복호화 방법은 직렬 또는 부분 병렬 처리 방식을 이용하는 복호화 방법과 병렬 처리 방식을 이용하는 복호화 방법이 있다.
전자의 방법(직렬 또는 부분 병렬 처리 방식)은, 적은 수의 공용의 변수노드(Variable Node) 처리 블록 및 공용의 검사노드(Check Node) 처리 블록을 반복적으로 이용함으로써, 구동하기 위한 하드웨어 크기가 줄어드는 장점이 있다. 하지만, 전자의 방법은 고속 복호를 지원할 수 없다는 단점이 있다.
반면에, 후자의 방법(병렬 처리 방식)은, 각 패리티 검사행렬에 최적화된 변수노드 처리 블록 및 검사노드 처리 블록을 구비하여 병렬 정보 교환을 수행함으로써, 고속 복호를 지원할 수는 있다. 하지만, 후자의 방법은 구동하기 위한 하드웨어 크기가 크며, 다양한 부호 비율을 지원할수록 하드웨어 크기의 증대를 초래한다는 단점이 있다.
이하, 종래의 검사노드 갱신 과정에 대해 살펴보면 다음과 같다.
우선, LDPC 부호의 복호화에 이용되는 합곱 알고리즘(Sum-Product Algorithm)의 변수노드 갱신 과정은 하기의 [수학식 1]에 나타나 있다.
여기서, 은 복조기에서 구한 입력 LLR, 는 변수노드의 차수, 는 변수노드의 번째 입력 LLR(Log Likelihood Ratio), 는 변수노드의 번째 출력 LLR을 나타낸다.
상기 [수학식 1]에 표시된 바와 같이, 변수노드의 갱신 과정은 변수노드의 번째 출력 LLR을 구하는 것이다. 변수노드의 번째 출력 LLR은 입력값의 합으로 표현되기 때문에, 상기 [수학식 1]에 따라 하드웨어 구현 시 간단하게 개의 입력을 더한 후 그 값에서 자신의 값을 빼어주는 방식으로 구현 가능하다.
반면에, 합곱 알고리즘의 검사노드 갱신 과정은 하기의 [수학식 2]에 나타나 있다.
상기의 [수학식 2]에 표시된 바와 같이, 검사노드 갱신 과정은 검사노드의 번째 출력 LLR의 하이퍼볼릭탄젠트 값을 구하는 것이다. 검사노드의 번째 출력 LLR의 하이퍼볼릭탄젠트 값은 하이퍼볼릭탄젠트 값들의 곱으로 표현된다. 따라서 검사노도의 갱신의 입력 LLR값의 하이퍼볼릭탄젠트 값들의 곱을 구하는 방식은 하드웨어 구현이 곤란하다는 문제점이 있다.
따라서 종래의 검사노드 갱신 과정에서 복잡도를 낮추기 위한 여러 가지 방법들이 제시되었다. 그 중 하나의 방법을 살펴보면, 상기 [수학식 2]에 로그를 취하여 상기 [수학식 3]과 같이 표현할 수 있다.
상기 [수학식 3]과 같은 검사노드 갱신 과정에서는 하이퍼볼릭탄젠트 값들의 곱을 합 연산으로 변경할 수 있지만, 상기 [수학식 2]와 같이 룩업 테이블(Look-up Table) 등을 이용하여 값을 계산하여야 한다.
따라서 이와 같은 복잡한 과정을 없애기 위하여, 약간의 성능을 열화시키는 검사노드 갱신 과정이 하기의 [수학식 4], [수학식 5] 및 [수학식 6]에 나타나 있 다.
여기서, sgn은 입력이 양수이면 +1, 음수이면 -1을 출력하는 함수, min은 입력 중에서 최소값을 출력하는 함수를 나타낸다.
상기 [수학식 4]는 "Min-Sum" 알고리즘을 나타낸다. "Min-Sum" 알고리즘은 검사노드의 번째 입력 LLR()의 부호 및 최소값을 이용하여 검사노드의 번째 출력 LLR()을 구한다.
상기 [수학식 5]는 상기 [수학식 4]에 나타나 있는 "Min-Sum" 알고리즘을 정규화시킨 정규화된 "Min-Sum" 알고리즘을 나타낸다.
상기 [수학식 4], [수학식 5] 및 [수학식 6]에서 출력 부호는 배타논리곱(XOR)을 이용하여 구할 수 있다. 또한, 검사노드의 차수() 개의 입력 절대값 중에서 첫 번째 최소값과 두 번째 최소값을 구하는 과정으로 처리할 수 있어서 상대적으로 하드웨어 구현에 용이하다.
하지만, 종래의 검사노드 갱신 과정은 차수가 커짐에 따라 첫 번째 최소값과 두 번째 최소값을 구하는 과정도 하드웨어적으로 구현하기 곤란하며, 이에 따라 복잡도 및 처리 속도가 증가한다는 문제점이 있다.
따라서 상기와 같은 종래 기술은 차수가 커짐에 따라 첫 번째 최소값과 두 번째 최소값을 구하는 과정을 하드웨어적으로 구현하기 곤란하며, 이에 따라 복잡도 및 처리 속도가 기하급수적으로 증가한다는 문제점이 있으며, 이러한 문제점을 해결하고자 하는 것이 본 발명의 과제이다.
따라서 본 발명은 저밀도 패리티 검사 부호의 검사노드 갱신에 있어서, 입력 비트의 첫 번째 최소값 및 두 번째 최소값을 각 비트별로 산출하고 산출된 첫 번째 최소값 또는 두 번째 최소값을 이용하여 검사노드의 각 차수에 해당하는 최소값을 결정함으로써, 검사노드를 갱신하는 과정을 효율적으로 수행할 수 있게 하는, 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 발명은 상기 문제점을 해결하기 위하여, 저밀도 패리티 검사 부호의 검사노드 갱신에 있어서, 입력 비트의 첫 번째 최소값 및 두 번째 최소값을 각 비트별로 산출하고 산출된 첫 번째 최소값 또는 두 번째 최소값을 이용하여 검사노드의 각 차수에 해당하는 최소값을 결정하는 것을 특징으로 한다.
더욱 구체적으로, 본 발명은, 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치에 있어서, 입력 비트의 첫 번째 최소값을 각 비트별로 산출하고, 상기 산 출된 첫 번째 최소값을 이용하여 두 번째 최소값을 함께 산출하기 위한 최소값 산출 수단; 상기 산출된 첫 번째 및 두 번째 최소값을 검사노드별로 행분해하여 노드별 첫 번째 및 두 번째 최소값을 산출하기 위한 노드 최소값 산출 수단; 및 상기 산출된 노드별 첫 번째 및 두 번째 최소값 중 어느 하나의 최소값을 상기 입력 비트의 각 차수에 해당하는 최소값으로 결정하기 위한 최소값 결정 수단을 포함한다.
또한, 본 발명은, 저밀도 패리티 검사 부호의 고속 검사노드 갱신 방법에 있어서, 입력 비트의 첫 번째 최소값을 각 비트별로 산출하고, 상기 산출된 첫 번째 최소값을 이용하여 두 번째 최소값을 함께 산출하는 최소값 산출 단계; 상기 산출된 첫 번째 및 두 번째 최소값을 검사노드별로 행분해하여 행분해 옵션이 적용된 첫 번째 및 두 번째 최소값을 산출하는 노드 최소값 산출 단계; 및 상기 산출된 노드별 첫 번째 및 두 번째 최소값 중 어느 하나의 최소값을 상기 입력 비트의 각 차수에 해당하는 최소값으로 결정하는 최소값 결정 단계를 포함한다.
상기와 같은 본 발명은, 저밀도 패리티 검사 부호의 검사노드 갱신에 있어서, 입력 비트의 첫 번째 최소값 및 두 번째 최소값을 각 비트별로 산출하고 산출된 첫 번째 최소값 또는 두 번째 최소값을 이용하여 검사노드의 각 차수에 해당하는 최소값을 결정함으로써, 검사노드를 갱신하는 과정을 효율적으로 수행할 수 있게 하는 효과가 있다.
즉, 본 발명은, LDPC 복호기의 검사노드 갱신 시 "Min-Sum", 오프셋 "Min- Sum" 및 정규화된 "Min-Sum" 알고리즘을 이용하는 검사노드 갱신 방식에 있어서, 검사노드 차수(degree)가 증가함에 따라 복잡도만 선형적으로 증가시키고 처리속도의 지연 없이 최소값 또는 첫 번째 최소값과 두 번째 최소값을 구할 수 있는 효과가 있으며, 하드웨어적으로 구현 시 기존의 검사노드 갱신 장치에 비해 하드웨어의 복잡도를 줄이면서 초고속의 검사노드 갱신을 처리할 수 있게 하는 효과가 있다. 더 나아가 본 발명은, 저밀도 패리티 검사 부호의 복호 외에도 최소값을 효율적으로 검색하는 분야에서 이용될 수 있는 효과가 있다.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되어 있는 상세한 설명을 통하여 보다 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
LDPC 부호의 복호기를 구현하기 위하여서는 각각의 에지에서 전달되는 LLR값을 양자화(quantization)하여 x비트로 표현하는 것이 필요하다.
양자화 방법과 사용하는 비트 수에 따라 성능과 복잡도에 영향을 준다. 정규화된 "Min-Sum" 방식을 사용하는 경우에는 더불어 정규화 상수(Normalization factor)의 값에 따라 성능에 영향을 준다. 오프셋(Offset) "Min-Sum" 방식을 사용하는 경우에는 더불어 오프셋(offset) 값에 따라 성능에 영향을 준다.
본 발명의 방식은 "Min-Sum", 정규화된 "Min-Sum"과 오프셋 "Min-Sum" 방식에 양자화 및 파라미터 값에 상관없이 적용 가능하지만, 편의상 오프셋 "Min-Sum" 방식에 적용하는 예를 설명하기로 한다. 다른 방식에 유사 확장 적용 및 LDPC 복호기의 검사노드 갱신이 아닌 유사한 기능을 수행하는 블록으로의 변경은 당업자의 입장에서 쉽게 가능하기 때문에 여기서는 더 이상 상세히 설명하지 않기로 한다.
본 발명을 기술하기 위하여 검사노드의 차수가 24인 경우와 이를 행분해하여 검사노드의 차수가 12인 두 가지로 나누어지는 경우를 함께 고려한다. 이 경우에는 행분해한 경우의 패리티 검사행렬의 패리티 비트수가 행분해 전의 패리티 검사행렬의 패리티 비트수보다 2배 많다.
또한, 메시지의 양자화 비트수는 5비트를 사용하는 경우를 고려한다. 이 경우에, 검사 노드의 갱신을 위해서 부호비트(sign bit)로 1비트를, 크기비트(magnitude bit)로 4비트를 사용한다.
도 1 은 일반적인 행분해 옵션을 가진 저밀도 패리티 검사행렬의 팩터 그래프에 대한 예시도이다.
도 1에 도시된 바와 같이, 저밀도 패리티 검사부호의 팩터 그래프에서 검사노드의 차수(101)가 24인 검사노드는 차수 12인 두 개의 검사노드(R1과 R2)(110, 120)로 행분해(Row Split)될 수 있다. 즉, 행분해(Row Split)가 적용되면 검사노드는 차수 12인 두 개의 검사노드(110, 120)로 분해되고, 행분해가 적용되지 않으면 검사노드는 차수가 24인 하나의 검사노드가 된다.
각 검사노드(R1과 R2)(110, 120)의 갱신 과정은 상기 [수학식 6]의 오프셋 "Min-Sum" 알고리즘에 따라 검사노드의 번째 출력 LLR()을 구하는 과정이다. 즉, 각 검사노드(R1과 R2)(110, 120)의 갱신 과정은 오프셋을 이용하여 검사노드의 각 입력 LLR을 보정하고, 번째 검사노드의 입력 LLR을 제외한 나머지 다른 번째 입력 LLR() 중 최소값을 검사노드의 번째 출력 LLR()로 결정한다.
이러한 최소값을 구하는 과정은 검사노드의 차수() 개의 입력 절대값 중에서 첫 번째 최소값과 두 번째 최소값을 구하는 과정으로 처리될 수 있다. 예를 들어, 검사노드(R1)에서 검사노드의 다섯 번째 출력 LLR을 구하는 갱신 과정은 입력 LLR(m[0], m[1], …, m[11]) 중에서 첫 번째 최소값과 두 번째 최소값을 구한다. 그리고 이러한 갱신 과정은 첫 번째 최소값이 다섯 번째 입력 LLR이면 두 번째 최소값을 다섯 번째 출력 LLR로 결정하고, 첫 번째 최소값이 다섯 번째 입력 LLR이 아니면 첫 번째 최소값을 다섯 번째 출력 LLR로 결정한다. 이는 R2 검사노드(120)로 입력되는 입력 LLR(m[12], m[13], …, m[23])에 대해서도 동일하게 적용된다.
도 2 는 일반적인 저밀도 패리티 검사행렬의 검사노드에서 행분해 옵션을 가진 부호비트 산출부의 구성도이다.
도 2에 도시된 바와 같이, 부호비트 산출부(200)는 다수의 배타논리합(XOR) 게이트와 노드 부호 산출부(210)를 포함한다. 여기서, 노드 부호 산출부(210)는 멀티플렉서(211, 212)와 배타논리합(XOR) 게이트(213, 214)를 포함한다. 이때, 부호 비트 산출부(200)에서는 검사노드로 입력되는 입력 LLR을 5비트의 m[i]로 표시하면, 최상위 비트(MSB: Most Significant Bit)인 m[i][4]를 부호비트로 이용하는 것으로 가정한다.
부호비트 산출부(200)는 검사노드의 차수가 24인 검사노드를 차수 12인 두 개의 검사노드 R1(110)과 R2(120)로 행분해하여 각 검사노드(110, 120)에 대한 부호비트(sgn_R1, sgn_R2)를 산출한다.
예를 들어, 부호비트 산출 과정을 설명하면, 첫 번째 단에 있는 배타논리합 게이트(201)는 0 번째 부호비트(m[0][4])와 1 번째 부호비트(m[1][4])를 배타논리합 연산을 하여 부호비트를 구한다. 그리고 동일한 방식으로 배타논리합 게이트(202)는 2 번째 부호비트(m[2][4])와 3 번째 부호비트(m[3][4])를 배타논리합 연산을 하여 부호비트를 구한다. 그리고 배타논리합 게이트(203)는 배타논리합 게이트(201)와 배타논리합 게이트(202)에서 구한 부호비트를 배타논리합 연산을 하여 부호비트를 구한다. 이러한 방식에 따라, 다수의 배타논리합 게이트(201 내지 205)는 m[0][4] 내지 m[11][4]와 각각 배타논리합 연산을 수행하여 부호비트를 구한다.
또한, 다른 다수의 배타논리합 게이트는 m[12][4] 내지 m[23][4]와 각각 배타논리합 연산을 수행하여 부호비트를 구한다.
이때, 행분해 옵션이 적용되지 않으면, 검사노드 R1(110)의 부호비트(sgn_R1)와 검사노드 R2(120)의 부호비트(sgn_R2)는 같은 값을 가지게 된다. 행분해 옵션이 적용되면, 노드 부호 산출부(210)는 각각 배타논리합 연산을 수행하여 구한 부호비트와 행분해 신호를 입력받아 검사노드 R1(110)의 부호비트(sgn_R1)와 검사노드 R2(120)의 부호비트(sgn_R2)를 구한다.
도 3a 및 도 3b 는 종래의 검사노드 갱신 장치에서의 행분해 옵션을 가진 첫 번째 최소값과 두 번째 최소값을 구하는 최소값 산출부의 구성도이다. 여기서, 도 3a의 A 및 B와, 도 3b의 A' 및 B'는 A-A'와 B-B'로 각각 연결되어 있다.
도 3에 도시된 바와 같이, 종래의 최소값 산출부는 제1 최소값 산출부(310), 제2 최소값 산출부(320) 및 노드 최소값 산출부(330)를 포함한다. 종래의 최소값 산출부는 검사노드의 차수가 24인 검사노드를 차수 12인 두 개의 검사노드 R1과 R2로 행분해할 수 있는 옵션을 가진다. m[i]는 5비트 중 부호를 나타내는 최상위 비트를 제외한 크기(Magnitude)를 나타내는 4비트로 나타낸다. 여기서, 제1 최소값 산출부(310)는 제1 최소값 연산기(311), 제2 최소값 연산기(312), 제3 최소값 연산기(313) 및 제4 최소값 연산기(314)를 포함한다.
종래의 최소값 산출부는 상기 [수학식 6]에 따른 오프셋 "Min-Sum" 알고리즘의 오프셋 값을 양자화 스텝 "1"로 이용하고 4 개의 입력 중 첫 번째 및 두 번째 최소값을 반복적으로 구하는 기능을 수행한다.
제1 최소값 산출부(310)는 입력 비트 m[0]와 m[1], m[2]와 m[3], m[4]와 m[5], m[6]와 m[7], m[8]와 m[9], 및 m[10]와 m[11]에 대해서, 다수의 멀티플렉서와 비교기를 이용하여 각각의 첫 번째 최소값과 두 번째 최소값을 구하고, 차례대로 토너먼트 방식으로 m[0]와 m[11]에 대한 첫 번째 및 두 번째 최소값을 구한다.
구체적으로 살펴보면, 제1 최소값 연산기(311)는 입력 비트 m[0]와 m[1] 중 첫 번째 및 두 번째 최소값을 구한다.
그리고 제2 최소값 연산기(312)는 입력 비트 m[2]와 m[3] 중 첫 번째 및 두 번째 최소값을 구하고, 이를 이용하여 m[0] 내지 m[3] 중 첫 번째 및 두 번째 최소값을 구한다.
그리고 제3 최소값 연산기(313)는 입력 비트 m[4] 내지 m[7] 중 첫 번째 및 두 번째 최소값을 구하고, 이를 이용하여 m[0] 내지 m[7] 중 첫 번째 및 두 번째 최소값을 구한다.
그리고 제4 최소값 연산기(314)는 입력 비트 m[8] 내지 m[11] 중 첫 번째 및 두 번째 최소값을 구하고, 이를 이용하여 m[0] 내지 m[11] 중 첫 번째 및 두 번째 최소값을 구한다.
이러한 방식에 따라, 도 3b에 도시된 제2 최소값 산출부(320)는 m[12] 내지 m[23] 중 첫 번째 및 두 번째 최소값을 구한다.
이후, 행분해가 적용되지 않으면 검사노드 R1(110)의 첫 번째 최소값(min1_R1)과 검사노드 R2의 첫 번째 최소값(min1_R2)은 같은 값을 가지고, 검사노드 R1(110)의 두 번째 최소값(min1_R1)과 검사노드 R2의 두 번째 최소값(min1_R2)은 같은 값을 가지게 된다.
반면에, 행분해가 적용되면, 노드 최소값 산출부(330)는 제1 최소값 산출부(310)에서 구한 m[0] 내지 m[11] 중 첫 번째 및 두 번째 최소값과, 제2 최소값 산출부(320)에서 구한 m[12] 내지 m[23] 중 첫 번째 및 두 번째 최소값을 입력받는다. 그리고 노드 최소값 산출부(330)는 입력된 최소값과, 다수의 비교기와 멀티플렉서를 이용하여 행분해하여 검사노드 R1의 첫 번째 및 두 번째 최소값(min1_R1, min2_R1)과 검사노드 R2의 첫 번째 및 두 번째 최소값(min1_R2, min2_R2)을 산출한다. 여기서, min1_R1는 m[0] 내지 m[11]와 각각 비교하여 같을 때 min2_R1가 출력 크기로 결정되고, 다를 때는 min1_R1가 출력 크기로 결정된다. 또한, min1_R2는 m[12] 내지 m[23]과 각각 비교하여 같을 때 min2_R2가 출력 크기로 결정되고, 다를 때는 min1_R2가 출력 크기로 결정된다.
도 3a 및 도 3b에 도시된 종래의 최소값 산출부는 입력 개수가 증가함에 따라 비교 연산의 개수가 기하급수적으로 증가한다. 예를 들면, 종래의 최소값 산출부는 12개의 입력 비트(m[0] 내지 m[11]에 대해서, 16 개의 4비트 비교기가 시간상으로 7단계에 걸쳐서 수행해야 한다. 특히, 부호율이 증가함에 따라 저밀도 패리티 검사부호의 행 차수가 더욱 증가하기 때문에, 이러한 최소값 산출 연산이 좀 더 효율적으로 처리되어야 한다.
도 4 는 본 발명에 따른 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치의 일실시예 구성도이다.
도 4에 도시된 바와 같이, 본 발명에 따른 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치는, 최소값 산출부(410), 노드 최소값 산출부(420) 및 최소값 결정부(430)를 포함한다. 여기서, 최소값 산출부(410)는 제1 최소값 산출부(411) 및 제2 최소값 산출부(412)를 포함한다. 또한, 노드 최소값 산출부(420)는 제3 최소값 산출부(421)와 제4 최소값 산출부(422), 및 다수의 멀티플렉서와 감산기를 포함한다. 또한, 최소값 결정부(430)는 다수의 멀티플렉서를 포함한다.
이하, 본 발명에 따른 고속 검사노드 갱신 장치의 구성요소 각각에 대하여 살펴보기로 한다.
최소값 산출부(410)는 제1 및 제2 최소값 산출부(411, 412)를 통해 입력 비트의 첫 번째 최소값(min1_Q1, min1_Q2)을 각 비트별로 산출한다. 그리고 최소값 산출부(410)는 산출된 첫 번째 최소값(min1_Q1, min1_Q2)을 이용하여 두 번째 최소값(min2_Q1, min2_Q2)을 함께 산출한다. 즉, 최소값 산출부(410)는 검사노드의 차수가 24인 검사노드를 차수 12인 두 개의 검사노드 R1과 R2로 행분해할 수 있는 옵션을 가진 저밀도 패리티 검사부호의 검사노드에 대해서, 첫 번째 최소값(min1_Q1, min1_Q2)을 산출하고 이를 이용하여 두 번째 최소값(min2_Q1, min2_Q1)을 산출한다. 여기서, m[i]는 5비트 중 부호를 나타내는 최상위 비트(MSB)를 제외한 크기(Magnitude)를 나타내는 4비트를 나타낸 것으로 가정한다.
그리고 노드 최소값 산출부(420)는 최소값 산출부(410)에서 산출된 첫 번째 최소값(min1_Q1, min1_Q2)과 두 번째 최소값(min2_Q1, min2_Q1) 및 행분해 신호(Row Split)를 입력받아 행분해 옵션이 적용된 검사 노드 R1에 대한 첫 번째 및 두 번째 최소값(min1_P1, min2_P1)과, 검사노드 R2에 대한 첫 번째 및 두 번째 최소값(min1_P2, min2_P2)을 구한다. 그리고 노드 최소값 산출부(420)는 그 최소값에 오프셋을 적용하여 검사노드 R1과 R2 별로 첫 번째 최소값(min1_R1, min1_R2)과 두 번째 최소값(min2_R1, min2_R2)을 각각 산출한다. 여기서, 행분해 옵션이 적용되지 않으면, 검사노드 R1과 R2 별로 첫 번째 최소값(min1_R1, min1_R2)은 같은 값을 가지고, 두 번째 최소값(min2_R1, min2_R2)도 같은 값을 가지게 된다.
그리고 최소값 결정부(430)는 검사노드 R1과 R2 별로 산출된 첫 번째 최소 값(min1_R1, min1_R2)과 두 번째 최소값(min2_R1, min2_R2) 중 어느 하나의 최소값을 각 차수에 해당하는 최소값으로 결정하여 검사노드 출력값을 구한다. 즉, 최소값 결정부(430)는 각 입력 비트(m[i])가 행분해 옵션이 적용된 검사노드 별로 첫 번째 최소값(min1_P1, min1_P2)과 일치하면 첫 번째 최소값(min1_R1, min1_R2)을 해당 차수에 해당하는 최소값으로 결정하고, 일치하지 않으면 두 번째 최소값(min2_R1, min2_R2)을 해당 차수에 해당하는 최소값으로 결정한다.
도 5 는 본 발명에 따른 도 4의 제1 최소값 산출부의 일실시예 상세구성도이다.
도 5에 도시된 바와 같이, 본 발명에 따른 도 4의 제1 최소값 산출부(411)는, 첫 번째 최소값 산출부(510)와 두 번째 최소값 산출부(520)를 포함한다. 여기서, 첫 번째 최소값 산출부(510)는 제1 비트 처리부(511), 제2 비트 처리부(512), 제3 비트 처리부(513) 및 제4 비트 처리부(514)를 포함한다. 제1 내지 제4 비트 처리부(511 내지 514)는 다수의 XOR 게이트와 멀티플렉서 및 AND 게이트를 포함한다.
첫 번째 최소값 산출부(510)는 검사노드 R1에 대해서 12개의 입력 비트(m[0] 내지 m[11])를 입력받는다. 그리고 첫 번째 최소값 산출부(510)는 각 입력 비트의 최상위 비트(MSB)들을 이용하여 첫 번째 최소값의 최상위 비트를 산출한다. 그리고 첫 번째 최소값 산출부(510)는 그 산출된 첫 번째 최소값의 최상위 비트를 이용하여 그 다음 상위 비트부터 순차적으로 최하위 비트(LSB)까지 첫 번째 최소값을 각 비트별로 산출한다.
구체적으로 살펴보면, 제1 비트 처리부(511)는 12개의 입력 비트의 최상위 비트(m[0][3]~m[11][3])값들을 AND 연산을 수행하여 첫 번째 최소값의 최상위 비트(min1_Q1[3])를 구한다.
그리고 제2 비트 처리부(512)는 제1 비트 처리부(511)에서 구한 첫 번째 최소값의 최상위 비트(min1_Q1[3])값들을 다수의 제1 연산 블록(5121)을 이용하여 각 입력 비트(m[i])가 최소값의 제1 후보군 비트(a[i])인지를 판단한다. 그리고 제2 비트 처리부(512)는 판단된 제1 후보군 비트(a[i])의 두 번째 비트(a[i][2])를 AND 연산을 수행하여 첫 번째 최소값의 두 번째 비트(min_Q[2])를 구한다. 여기서, 연산 블록(5121)은 XOR 게이트와 멀티플렉서를 포함한다.
제1 후보군 판단 과정을 살펴보면, 제2 비트 처리부(512)는 XOR 게이트와 멀티플렉서를 이용하여, 첫 번째 최소값의 최상위 비트(min1_Q1[3])와 각 입력 비트의 최상위 비트(m[i][3])가 같으면 제1 후보군으로 판단하여 각 입력 비트(m[i])를 그대로 제1 후보군 비트(a[i])로 통과시킨다. 반면에, 제2 비트 처리부(512)는 첫 번째 최소값의 최상위 비트(min1_Q1[3])와 각 입력 비트의 최상위 비트(m[i][3])가 다르면 제1 최대 비트(aa[i])(예를 들어, 7)로 변경하여 제3 비트 처리부(513)로 전달한다.
그리고 제3 비트 처리부(513)는 제2 비트 처리부(512)로부터 각 입력 비트에 대한 제1 후보군 비트(a[i])와 제1 최대 비트(aa[i])를 입력받아 다수의 제1 연산 블록(5121)과 다수의 제2 연산 블록(5131)을 이용하여, 각 제1 후보군 비트(a[i])가 최소값의 제2 후보군 비트(b[i])인지를 판단한다. 그리고 제3 비트 처리부(513)는 판단된 제2 후보군 비트(b[i])의 세 번째 비트(b[i][1])를 AND 연산을 수행하여 첫 번째 최소값의 세 번째 비트(min_Q[1])를 구한다.
그리고 제4 비트 처리부(514)는 제3 비트 처리부(513)로부터 각 입력 비트에 대한 제2 후보군 비트(b[i])와 제2 최대 비트(bb[i])를 입력받고 다수의 연산 블록(5121)과 다수의 제2 연산 블록(5131)을 이용하여 각 제2 후보군 비트(b[i])가 최소값의 제3 후보군 비트(c[i])인지를 판단한다. 그리고 제4 비트 처리부(514)는 판단된 제3 후보군 비트(c[i])의 네 번째 비트(c[i][1])를 AND 연산을 이용하여 첫 번째 최소값의 네 번째 비트(min_Q[0])를 구한다.
한편, 두 번째 최소값 산출부(520)는 첫 번째 최소값 산출부(510)에서 산출된 첫 번째 최소값(min1_Q1)에 해당하는 입력 비트(m[i])를 최대값으로 설정한 후, 다시 최소값 산출 과정을 통해 두 번째 최소값(min2_Q1)을 최상위 비트(MSB)부터 최하위 비트(LSB)까지 구한다. 즉, 두 번째 최소값 산출부(520)는 첫 번째 최소값 산출부(510)에서 최상위 비트(MSB)부터 최하위 비트(LSB)까지 순차적으로 산출된 입력 비트들의 합을 입력 비트의 개수보다 하나 작은 개수(예를 들면, 11)와 비교함으로써, 두 번째 최소값을 최상위 비트부터 순차적으로 산출한다.
두 번째 최소값 산출 과정을 구체적으로 살펴보면, 두 번째 최소값 산출부(520)는 입력 비트(m[i])의 최상위 비트(m[i][3])들을 합 연산한 제1 결과값(s0), 제1 후보군 비트(a[i])의 두 번째 비트(a[i][2])들을 합 연산한 제2 결과값(s1), 제2 후보군 비트(b[i])의 세 번째 비트(b[i][2])들을 합 연산한 제3 결과값(s2), 및 제3 후보군 비트(c[i])의 네 번째 비트(c[i][2])들을 합 연산한 제4 결과값(s3)을 구한다.
그리고 두 번째 최소값 산출부(520)는 제1 결과값(s0)이 입력 비트의 개수인 "12"보다 하나 작은 "11"과 비교한다. 그리고 두 번째 최소값 산출부(520)는 "11"과 다르면 첫 번째 최소값의 최상위 비트(min1_Q1[3])를 두 번째 최소값의 최상위 비트(min2_Q1[3])로 결정하고, "11"과 같으면 "1"을 두 번째 최소값의 최상위 비트(min2_Q[3])로 결정한다.
그리고 두 번째 최소값 산출부(520)는 제1 결과값(s0)과 제2 결과값(s1)을 "11"과 비교한다. 그리고 두 번째 최소값 산출부(520)는 첫 번째 최소값의 두 번째 비트(min1_Q[2])와, 제1 최대 비트(aa[i]) 최소값의 두 번째 비트(min[2]), 또는 "1" 중 어느 하나를 두 번째 최소값의 두 번째 비트(min2_Q[2])로 결정한다.
그리고 두 번째 최소값 산출부(520)는 제1 내지 제3 결과값(s0 내지 s2)을 "11"과 비교한다. 그리고 두 번째 최소값 산출부(520)는 첫 번째 최소값의 세 번째 비트(min1_Q[1])와, 제2 최대 비트(bb[i]) 최소값의 세 번째 비트(min[1]), 또는 "1" 중 어느 하나를 두 번째 최소값의 세 번째 비트(min2_Q[1])로 결정한다.
그리고 두 번째 최소값 산출부(520)는 제1 내지 제4 결과값(s0 내지 s3)을 "11"과 비교한다. 그리고 두 번째 최소값 산출부(520)는 첫 번째 최소값의 네 번째 비트(min1_Q[0])와, 제3 최대 비트(cc[i])의 최소값의 두 번째 비트(min[0]), 또는 "1" 중 어느 하나를 두 번째 최소값의 네 번째 비트(min2_Q[0])로 결정한다.
도 5에는 검사노드 R1에 대한 과정만 도시되어 있으나, 제2 최소값 산출부(412)는 검사노드 R2에 대하여 입력 비트(m[12] 내지 m[23])을 입력받아 첫 번째 최소값(min1_Q2)과 두 번째 최소값(min2_Q2)을 함께 구할 수 있다.
따라서 최소값 산출부(410)는 최소값을 구하는 과정을 고속으로 처리할 수 있으며, 특히 입력 비트가 작은 경우에는 더욱 효과적일 수 있다. 저밀도 패리티 검사부호의 경우는 균일 양자화의 경우에는 4비트 정보, 비균일 양자화의 경우에는 3비트 정도를 크기 비트로 사용하여도 좋은 성능을 보이게 된다.
도 6 은 본 발명에 따른 도 4의 제3 최소값 산출부의 일실시예 상세구성도이다.
도 6에 도시된 바와 같이, 도 4의 제3 최소값 산출부(421)는 제1 비트 산출부(4211), 제2 비트 산출부(4212), 제3 비트 산출부(4213) 및 제4 비트 산출부(4214)를 포함한다. 여기서, 제1 내지 제4 비트 산출부(4211 내지 4214)는 다수의 AND 게이트 및 NOT 게이트와 다수의 연산 블록(4215)들을 포함한다. 여기서, 다수의 연산 블록(4215)은 도 5에 도시된 연산 블록(5131)과 동일한 구조를 가진다.
제3 최소값 산출부(421)는 4 개의 비트(min2_Q1와 min1_Q1s 및 min1_Q2와 min2_Q2s)를 입력받아, 각 비트의 최상위 비트(MSB)들을 이용하여 첫 번째 및 두 번째 최소값의 최상위 비트(min1_P1[3], min2_P1[3])를 산출한다. 그리고 제3 최소값 산출부(421)는 순차적으로 첫 번째 및 두 번째 최소값의 최하위 비트(min2_P1[3])를 산출한다.
구체적으로 살펴보면, 제1 비트 산출부(4211)는 AND 게이트 및 NOT 게이트를 이용하여 입력받은 4 개의 비트(min2_Q1와 min1_Q1s 및 min1_Q2와 min2_Q2s) 중 첫 번째 최소값과 두 번째 최소값의 최상위 비트(min1_P1[3], min2_P1[3])를 산출한다.
그리고 제2 비트 산출부(4212)는 제1 비트 산출부(4211)에서 구한 첫 번째 및 두 번째 최소값의 최상위 비트(min1_P1[3], min2_P1[3])를 다수의 연산 블록(4215)과 AND 게이트에 적용하여, 첫 번째 및 두 번째 최소값의 두 번째 비트(min1_P1[2], min2_P1[2])를 구한다.
그리고 제3 비트 산출부(4213)는 제2 비트 산출부(4212)에서 구한 첫 번째 및 두 번째 최소값의 두 번째 비트(min1_P1[2], min2_P1[2])를 다수의 연산 블록(4215)과 AND 게이트에 적용하여, 첫 번째 및 두 번째 최소값의 세 번째 비트(min1_P1[1], min2_P1[1])를 구한다.
그리고 제4 비트 산출부(4214)는 제3 비트 산출부(4213)에서 구한 첫 번째 및 두 번째 최소값의 세 번째 비트(min1_P1[1], min2_P1[1])를 다수의 연산 블록(4215)과 AND 게이트에 적용하여, 첫 번째 및 두 번째 최소값의 네 번째 비트(min1_P1[0], min2_P1[0])를 구한다.
여기서, 제4 최소값 산출부(422)는 전술된 제3 최소값 산출부(421)와 동일한 구조를 가지며, 검사노드 R2에 대해서 첫 번째 및 두 번째 최소값(min1_P2, min2_P2)를 구한다.
도 7 는 본 발명에 따른 저밀도 패리티 검사 부호의 고속 검사노드 갱신 방법에 대한 일실시예 흐름도이다.
먼저, 최소값 산출부(410)는 제1 및 제2 최소값 산출부(411, 412)를 통해 입력 비트의 첫 번째 최소값(min1_Q1, min1_Q2)을 각 비트별로 산출하고, 산출된 첫 번째 최소값(min1_Q1, min1_Q2)을 이용하여 두 번째 최소값(min2_Q1, min2_Q2)을 함께 산출한다(702). 여기서, m[i]는 5비트 중 부호를 나타내는 최상위 비트(MSB)를 제외한 크기(Magnitude)를 나타내는 4비트를 나타내는 것으로 가정한다.
"702" 과정을 구체적으로 살펴보면, 제1 및 제2 최소값 산출부(411, 412)는 입력 비트의 최상위 비트(MSB)들을 이용하여 첫 번째 최소값의 최상위 비트를 산출하고, 그 산출된 첫 번째 최소값의 최상위 비트를 이용하여 순차적으로 첫 번째 최소값의 최하위 비트(LSB)까지 각 비트별로 산출한다. 즉, 제1 및 제2 최소값 산출부(411, 412)는 입력 비트의 최상위 비트(MSB)들을 AND 연산하여 첫 번째 최소값의 최상위 비트(MSB)를 산출하고, 각 입력 비트가 최소값의 후보군에 포함되는지 여부에 따라 산출된 첫 번째 최소값의 최상위 비트를 이용하여 순차적으로 첫 번째 최소값의 최하위 비트(LSB)까지 각 비트별로 산출한다.
여기서, 제1 및 제2 최소값 산출부(411, 412)는 산출된 첫 번째 최소값에 해당하는 입력 비트를 최대값으로 설정한 후, 최소값 산출 과정을 통해 두 번째 최소값을 최상위 비트부터 최하위 비트까지 순차적으로 산출할 수 있다. 또한, 제1 및 제2 최소값 산출부(411, 412)는 그 산출된 첫 번째 최소값의 최상위 비트부터 최하위 비트까지 각 비트별 합을 구하고, 그 합이 입력 비트의 개수보다 하나 작은 개수와 비교하여 두 번째 최소값을 최상위 비트부터 최하위 비트까지 순차적으로 산출할 수 있다.
한편, 노드 최소값 산출부(420)는 최소값 산출부(410)에서 산출된 첫 번째 최소값(min1_Q1, min1_Q2)과 두 번째 최소값(min2_Q1, min2_Q1)을 검사노드별로 행분해하여 행분해 옵션이 적용된 첫 번째 및 두 번째 최소값(min1_P1, min2_P1, min1_P2, min2_P2)를 산출한다(704). 여기서, 노드 최소값 산출부(420)는 행분해 신호(Row Split)를 입력받아 행분해 옵션을 적용한다.
그리고 노드 최소값 산출부(420)는 행분해 옵션이 적용된 최소값에 오프셋을 적용하여 검사노드 R1과 R2 별로 첫 번째 최소값(min1_R1, min1_R2)과 두 번째 최소값(min2_R1, min2_R2)을 각각 산출한다(706). 여기서, 행분해 옵션이 적용되지 않으면, 검사노드 R1과 R2 별로 첫 번째 최소값(min1_R1, min1_R2)은 같은 값을 가지고, 두 번째 최소값(min2_R1, min2_R2)도 같은 값을 가지게 된다.
그리고 최소값 결정부(430)는 입력 비트의 각 차수에 해당하는 최소값을, 노드 최소값 산출부(420)에서 산출된 노드별 첫 번째 및 두 번째 최소값(min1_R1, min1_R2, 및 min2_R1, min2_R2) 중 어느 하나의 최소값으로 결정하여 검사노드 출력값을 구한다(708). 즉, 최소값 결정부(430)는 각 입력 비트(m[i])가 행분해 옵션이 적용된 검사노드 R1과 R2 별로 첫 번째 최소값(min1_P1, min1_P2)과 일치하면 첫 번째 최소값(min1_R1, min1_R2)을 해당 차수에 해당하는 최소값으로 결정하고, 일치하지 않으면 두 번째 최소값(min2_R1, min2_R2)을 해당 차수에 해당하는 최소값으로 결정한다.
한편, 전술한 바와 같은 본 발명의 방법은 컴퓨터 프로그램으로 작성이 가능하다. 그리고 상기 프로그램을 구성하는 코드 및 코드 세그먼트는 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 작성된 프로그램은 컴퓨터가 읽을 수 있는 기록매체(정보저장매체)에 저장되고, 컴퓨터에 의하여 판독되고 실행됨으로써 본 발명의 방법을 구현한다. 그리고 상기 기록매체는 컴퓨 터가 판독할 수 있는 모든 형태의 기록매체를 포함한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
도 1 은 일반적인 행분해 옵션을 가진 저밀도 패리티 검사행렬의 팩터 그래프에 대한 예시도,
도 2 는 일반적인 저밀도 패리티 검사행렬의 검사노드에서 행분해 옵션을 가진 부호비트 산출부의 구성도,
도 3a 및 도 3b 는 종래의 검사노드 갱신 장치에서의 행분해 옵션을 가진 첫 번째 최소값과 두 번째 최소값을 구하는 최소값 산출부의 구성도,
도 4 는 본 발명에 따른 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치의 일실시예 구성도,
도 5 는 본 발명에 따른 도 4의 제1 최소값 산출부의 일실시예 상세구성도,
도 6 은 본 발명에 따른 도 4의 제3 최소값 산출부의 일실시예 상세구성도,
도 7 는 본 발명에 따른 저밀도 패리티 검사 부호의 고속 검사노드 갱신 방법에 대한 일실시예 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명
410: 최소값 산출부 411: 제1 최소값 산출부
412: 제2 최소값 산출부 420: 노드 최소값 산출부
421: 제3 최소값 산출부 422: 제4 최소값 산출부
430: 최소값 결정부 510: 첫 번째 최소값 산출부
520: 두 번째 최소값 산출부
Claims (12)
- 저밀도 패리티 검사 부호를 Min-Sum 방식을 이용하여 복호하기 위한 검사노드 갱신 장치에 있어서,미리 결정된 비트의 수를 갖는 복수의 입력 메시지들을 최상위 비트(MSB)부터 최하위 비트(LSB)까지 입력받아 각 입력 메시지들을 첫 번째 비트부터 마지막 비트까지 순차적으로 비교하여 최소값 후보군에서 제외함으로써 첫 번째 최소값을 산출하는 첫 번째 최소값 산출수단;상기 복수의 입력 메시지들 중 상기 첫 번째 최소값을 제외한 메시지들의 최상위 비트부터 최하위 비트까지 순차적으로 입력받아 상기 각 메시지들의 최상위 비트 값의 합을 미리 결정된 값과 비교하여 미리 결정된 값과 같은 경우 두 번째 최소값을 결정하고, 다른 경우 첫 번째 최소값의 최상위 비트를 이용하여 산출하기 위한 두 번째 최소값 산출수단을 포함하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치.
- 제 1 항에 있어서,행분해 옵션 적용 시상기 메시지 값들을 미리 결정된 행분해 방식에 의거하여 2개의 행으로 행분해 하여 입력하며,상기 첫 번째 최소값 산출수단과 상기 두 번째 최소값 산출수단은 상기 분해된 각 행에 대응하여 구비되고,각 행에 대응하는 각각의 첫 번째 최소값 산출수단과 상기 두 번째 최소값 산출수단들은 각 행의 입력값에서 각각 첫 번째 최소값 및 두 번째 최소값을 계산함을 특징으로 하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치.
- 제 2 항에 있어서,상기 행분해 신호와 상기 분해된 각각의 상기 첫 번째 최소값 산출 수단들 및 두 번째 최소값 산출 수단들의 출력 값들을 수신하여 오프셋을 적용하여 상기 행 분해된 각 행별 첫 번째 최소값들 및 두 번째 최소값들을 출력하는 최소값 산출부를 더 포함하는 것을 특징으로 하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치.
- 제 3 항에 있어서,상기 각 행별 첫 번째 최소값들 및 두 번째 최소값들을 수신하여 상기 검사 노드의 첫 번째 최소값 및 두 번째 최소값을 결정하는 최소값 결정부를 더 포함하는 것을 특징으로 하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치.
- 삭제
- 삭제
- 저밀도 패리티 검사 부호를 Min-Sum 방식을 이용하여 복호하기 위한 검사노드 갱신 방법에 있어서,미리 결정된 비트의 수를 갖는 복수의 입력 메시지들을 최상위 비트(MSB)부터 최하위 비트(LSB)까지 입력받아 각 입력 메시지들을 첫 번째 비트부터 마지막 비트까지 순차적으로 비교하여 최소값 후보군에서 제외함으로써 첫 번째 최소값을 산출하는 첫 번째 최소값 산출 단계;상기 복수의 입력 메시지들 중 상기 첫 번째 최소값을 제외한 메시지들의 최상위 비트부터 최하위 비트까지 순차적으로 입력받아 상기 각 메시지들의 최상위 비트 값의 합을 미리 결정된 값과 비교하여 미리 결정된 값과 같은 경우 두 번째 최소값을 결정하고, 다른 경우 첫 번째 최소값의 최상위 비트를 이용하여 산출하기 위한 두 번째 최소값 산출 단계를 포함하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 방법.
- 제 7 항에 있어서,행분해 옵션 적용 시 상기 메시지 값들을 미리 결정된 행분해 방식에 의거하여 2개의 행으로 행분해 하는 행 분해 단계를 더 포함하고,상기 분해 단계 이후에 상기 행 분해된 메시지들을 각각 상기 첫 번째 최소값 산출 단계 및 상기 두 번째 최소값 산출 단계에서 처리하도록 하는 것을 특징으로 하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 방법.
- 제 8 항에 있어서,상기 행 분해되어 계산된 각각의 상기 첫 번째 최소값들 및 두 번째 최소값들에 오프셋을 적용하여 상기 행 분해된 각 행렬 첫 번째 최소값들 및 두 번째 최소값들을 출력하는 최소값 산출 단계를 더 포함하는 것을 특징으로 하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 방법.
- 제 9 항에 있어서,상기 각 행별 첫 번째 최소값들 및 두 번째 최소값들을 수신하여 상기 검사 노드의 첫 번째 최소값 및 두 번째 최소값을 결정하는 최소값 결정 단계를 더 포함하는 것을 특징으로 하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 방법.
- 삭제
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070133822A KR101065480B1 (ko) | 2007-12-19 | 2007-12-19 | 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그방법 |
US12/146,195 US20090164540A1 (en) | 2007-12-19 | 2008-06-25 | Apparatus and method for updating check node of low density parity check code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070133822A KR101065480B1 (ko) | 2007-12-19 | 2007-12-19 | 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090066336A KR20090066336A (ko) | 2009-06-24 |
KR101065480B1 true KR101065480B1 (ko) | 2011-09-19 |
Family
ID=40789902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070133822A KR101065480B1 (ko) | 2007-12-19 | 2007-12-19 | 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090164540A1 (ko) |
KR (1) | KR101065480B1 (ko) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8234320B1 (en) | 2007-10-25 | 2012-07-31 | Marvell International Ltd. | Bitwise comparator for selecting two smallest numbers from a set of numbers |
US20110099448A1 (en) * | 2009-10-23 | 2011-04-28 | Tinoosh Mohsenin | Split-row decoding of ldpc codes |
KR101926608B1 (ko) | 2012-08-27 | 2018-12-07 | 삼성전자 주식회사 | 경 판정 디코딩 방법 및 이를 이용한 저밀도 패리티 체크 디코더 |
US9612903B2 (en) | 2012-10-11 | 2017-04-04 | Micron Technology, Inc. | Updating reliability data with a variable node and check nodes |
US9281841B2 (en) * | 2012-10-31 | 2016-03-08 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Load balanced decoding of low-density parity-check codes |
US8930790B1 (en) * | 2013-09-13 | 2015-01-06 | U-Blox Ag | Method and apparatus for identifying selected values from among a set of values |
CN104009762A (zh) * | 2014-04-15 | 2014-08-27 | 东华大学 | 寻找最小值与次小值的一套低复杂度算法及硬件结构 |
KR101618854B1 (ko) * | 2014-04-22 | 2016-05-10 | 아주대학교 산학협력단 | 비트-직렬 방식의 복호기 및 그 최소값 탐색 방법 |
KR102189440B1 (ko) * | 2014-08-25 | 2020-12-14 | 삼성전자주식회사 | 에러 정정 디코더를 포함하는 스토리지 장치 및 에러 정정 디코더의 동작 방법 |
TWI537817B (zh) * | 2014-09-18 | 2016-06-11 | 國立清華大學 | 找小値方法以及找小値器 |
KR101627113B1 (ko) * | 2014-12-15 | 2016-06-03 | 한국과학기술원 | 최솟값 계산기 |
CA3203973A1 (en) | 2015-03-02 | 2016-09-09 | Samsung Electronics Co., Ltd. | Transmitting apparatus and transmitting method thereof |
TWI682636B (zh) * | 2018-06-13 | 2020-01-11 | 財團法人資訊工業策進會 | 通訊系統之低密度奇偶檢查碼的解碼方法及應用其之通訊裝置 |
US11309915B1 (en) * | 2019-07-11 | 2022-04-19 | Arrowhead Center, Inc. | Efficient implementation of a threshold modified min-sum algorithm for low-density parity-check decoders |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060242533A1 (en) * | 2005-04-21 | 2006-10-26 | Chen-Yi Lee | Method for updating check-node of low-density parity-check (LDPC) codes decoder and device using the same |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3603770A (en) * | 1969-01-06 | 1971-09-07 | Trans Controls Inc | Tape buffer system for incremental plotter |
JPS5329417B2 (ko) * | 1973-02-26 | 1978-08-21 | ||
US7266005B2 (en) * | 2004-12-29 | 2007-09-04 | Stmicroelectronics Pvt. Ltd. | Efficient content addressable memory array for classless inter-domain routing |
US7290074B2 (en) * | 2005-04-06 | 2007-10-30 | Kabushiki Kaisha Toshiba | Back-off timing mechanism |
US7912808B2 (en) * | 2006-12-08 | 2011-03-22 | Pandya Ashish A | 100Gbps security and search architecture using programmable intelligent search memory that uses a power down mode |
-
2007
- 2007-12-19 KR KR1020070133822A patent/KR101065480B1/ko not_active IP Right Cessation
-
2008
- 2008-06-25 US US12/146,195 patent/US20090164540A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060242533A1 (en) * | 2005-04-21 | 2006-10-26 | Chen-Yi Lee | Method for updating check-node of low-density parity-check (LDPC) codes decoder and device using the same |
Non-Patent Citations (1)
Title |
---|
T.Mohsenin et. al, "Split-Row: A Reduced Complexity, High Throughput LDPC Decoder Architecture," IEEE International Conf. on Computer Design 2006, San Jose, USA, 1-4 Oct. 2007.* |
Also Published As
Publication number | Publication date |
---|---|
US20090164540A1 (en) | 2009-06-25 |
KR20090066336A (ko) | 2009-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101065480B1 (ko) | 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그방법 | |
KR102223968B1 (ko) | 극 부호의 병렬화된 연속 제거 디코딩 및 연속 제거 리스트 디코딩을 위한 장치 및 방법 | |
CN1953336B (zh) | 在低密度奇偶校验解码器中更新校验节点的方法 | |
US20050204272A1 (en) | Decoding apparatus and method and information processing apparatus and method | |
KR100846869B1 (ko) | 저 복잡도 ldpc복호 장치 및 그 방법 | |
US10425107B2 (en) | Partial sum computation for polar code decoding | |
CN110771047B (zh) | 具有f功能和g功能的llr域计算的极性解码器 | |
KR20100005231A (ko) | 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들 | |
JP2006121686A (ja) | 低密度パリティ検査コードを効率的に復号する方法及び装置 | |
US20100325514A1 (en) | Decoding method and decoding device | |
WO2007034870A1 (ja) | 復号装置および受信装置 | |
US10892783B2 (en) | Apparatus and method for decoding polar codes | |
US20200091933A1 (en) | Iterative decoding with early termination criterion that permits errors in redundancy part | |
KR100864838B1 (ko) | 저밀도 패리티 검사 부호의 검사노드를 갱신하는 방법 및장치 | |
Winkelbauer et al. | On quantization of log-likelihood ratios for maximum mutual information | |
KR102092634B1 (ko) | Ldpc 부호 복호기 및 복호 방법 | |
US20080263123A1 (en) | Method and system for determining a minimum number and a penultimate minimum number in a set of numbers | |
US7437657B2 (en) | High speed add-compare-select processing | |
US20230053844A1 (en) | Improved Quality Value Compression Framework in Aligned Sequencing Data Based on Novel Contexts | |
KR100491338B1 (ko) | 근사화 함수를 사용하는 오류정정부호의 복호 방법 | |
CN110708077B (zh) | Ldpc码大数逻辑译码方法、装置和译码器 | |
JP2006340016A (ja) | 誤り訂正符号復号装置及びそれを用いた復号方法 | |
JP2010535459A (ja) | 線形計画法復号のための座標上昇法 | |
Xu et al. | Successive cancellation decoders of polar codes based on stochastic computation | |
CN112470405A (zh) | 非二进制码的消息传递解码的可变节点处理方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140827 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |