KR101065480B1 - 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그방법 - Google Patents

저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그방법 Download PDF

Info

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
Application number
KR1020070133822A
Other languages
English (en)
Other versions
KR20090066336A (ko
Inventor
오종의
정민호
이일구
이석규
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020070133822A priority Critical patent/KR101065480B1/ko
Priority to US12/146,195 priority patent/US20090164540A1/en
Publication of KR20090066336A publication Critical patent/KR20090066336A/ko
Application granted granted Critical
Publication of KR101065480B1 publication Critical patent/KR101065480B1/ko

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
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-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/112Soft-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
    • 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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-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/1122Soft-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
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes
    • 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received

Abstract

본 발명은 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그 방법에 관한 것으로, 저밀도 패리티 검사 부호의 검사노드 갱신에 있어서, 입력 비트의 첫 번째 최소값 및 두 번째 최소값을 각 비트별로 산출하고 산출된 첫 번째 최소값 또는 두 번째 최소값을 이용하여 검사노드의 각 차수에 해당하는 최소값을 결정함으로써, 검사노드를 갱신하는 과정을 효율적으로 수행할 수 있게 하는, 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그 방법을 제공하고자 한다.
이를 위하여, 본 발명은 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치에 있어서, 입력 비트의 첫 번째 최소값을 각 비트별로 산출하고, 상기 산출된 첫 번째 최소값을 이용하여 두 번째 최소값을 함께 산출하기 위한 최소값 산출 수단; 상기 산출된 첫 번째 및 두 번째 최소값을 검사노드별로 행분해하여 노드별 첫 번째 및 두 번째 최소값을 산출하기 위한 노드 최소값 산출 수단; 및 상기 산출된 노드별 첫 번째 및 두 번째 최소값 중 어느 하나의 최소값을 상기 입력 비트의 각 차수에 해당하는 최소값으로 결정하기 위한 최소값 결정 수단을 포함한다.
Figure R1020070133822
입력 비트, 첫 번째 최소값, 두 번째 최소값, 검사노드 갱신, 행분해, 저밀도 패리티 검사 부호

Description

저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그 방법{APPARATUS AND METHOD FOR UPDATING THE CHECK NODE OF LOW DENSITY PARITY CHECK CODES}
본 발명은 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 저밀도 패리티 검사 부호의 검사노드 갱신에 있어서, 입력 비트의 첫 번째 최소값 및 두 번째 최소값을 각 비트별로 산출하고 산출된 첫 번째 최소값 또는 두 번째 최소값을 이용하여 검사노드의 각 차수에 해당하는 최소값을 결정함으로써, 검사노드를 갱신하는 과정을 효율적으로 수행할 수 있게 하는, 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 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]에 나타나 있다.
Figure 112007091247071-pat00001
여기서,
Figure 112007091247071-pat00002
은 복조기에서 구한 입력 LLR,
Figure 112007091247071-pat00003
는 변수노드의 차수,
Figure 112007091247071-pat00004
는 변수노드의
Figure 112007091247071-pat00005
번째 입력 LLR(Log Likelihood Ratio),
Figure 112007091247071-pat00006
는 변수노드의
Figure 112007091247071-pat00007
번째 출력 LLR을 나타낸다.
상기 [수학식 1]에 표시된 바와 같이, 변수노드의 갱신 과정은 변수노드의
Figure 112007091247071-pat00008
번째 출력 LLR을 구하는 것이다. 변수노드의
Figure 112007091247071-pat00009
번째 출력 LLR은 입력값의 합으로 표현되기 때문에, 상기 [수학식 1]에 따라 하드웨어 구현 시 간단하게
Figure 112007091247071-pat00010
개의 입력을 더한 후 그 값에서 자신의 값을 빼어주는 방식으로 구현 가능하다.
반면에, 합곱 알고리즘의 검사노드 갱신 과정은 하기의 [수학식 2]에 나타나 있다.
Figure 112007091247071-pat00011
여기서,
Figure 112007091247071-pat00012
는 검사노드의 차수,
Figure 112007091247071-pat00013
는 검사노드의
Figure 112007091247071-pat00014
번째 입력 LLR,
Figure 112007091247071-pat00015
는 검사노드의
Figure 112007091247071-pat00016
번째 출력 LLR을 나타낸다.
상기의 [수학식 2]에 표시된 바와 같이, 검사노드 갱신 과정은 검사노드의
Figure 112007091247071-pat00017
번째 출력 LLR의 하이퍼볼릭탄젠트 값을 구하는 것이다. 검사노드의
Figure 112007091247071-pat00018
번째 출력 LLR의 하이퍼볼릭탄젠트 값은 하이퍼볼릭탄젠트 값들의 곱으로 표현된다. 따라서 검사노도의 갱신의 입력 LLR값의 하이퍼볼릭탄젠트 값들의 곱을 구하는 방식은 하드웨어 구현이 곤란하다는 문제점이 있다.
따라서 종래의 검사노드 갱신 과정에서 복잡도를 낮추기 위한 여러 가지 방법들이 제시되었다. 그 중 하나의 방법을 살펴보면, 상기 [수학식 2]에 로그를 취하여 상기 [수학식 3]과 같이 표현할 수 있다.
Figure 112007091247071-pat00019
여기서,
Figure 112007091247071-pat00020
는 검사노드의 차수,
Figure 112007091247071-pat00021
는 검사노드의
Figure 112007091247071-pat00022
번째 입력 LLR,
Figure 112007091247071-pat00023
는 검사노드의
Figure 112007091247071-pat00024
번째 출력 LLR을 나타낸다.
상기 [수학식 3]과 같은 검사노드 갱신 과정에서는 하이퍼볼릭탄젠트 값들의 곱을 합 연산으로 변경할 수 있지만, 상기 [수학식 2]와 같이 룩업 테이블(Look-up Table) 등을 이용하여 값을 계산하여야 한다.
따라서 이와 같은 복잡한 과정을 없애기 위하여, 약간의 성능을 열화시키는 검사노드 갱신 과정이 하기의 [수학식 4], [수학식 5] 및 [수학식 6]에 나타나 있 다.
Figure 112007091247071-pat00025
여기서, sgn은 입력이 양수이면 +1, 음수이면 -1을 출력하는 함수, min은 입력 중에서 최소값을 출력하는 함수를 나타낸다.
상기 [수학식 4]는 "Min-Sum" 알고리즘을 나타낸다. "Min-Sum" 알고리즘은 검사노드의
Figure 112007091247071-pat00026
번째 입력 LLR(
Figure 112007091247071-pat00027
)의 부호 및 최소값을 이용하여 검사노드의
Figure 112007091247071-pat00028
번째 출력 LLR(
Figure 112007091247071-pat00029
)을 구한다.
Figure 112007091247071-pat00030
여기서,
Figure 112007091247071-pat00031
는 정규화(normalization) 값을 나타낸다.
상기 [수학식 5]는 상기 [수학식 4]에 나타나 있는 "Min-Sum" 알고리즘을 정규화시킨 정규화된 "Min-Sum" 알고리즘을 나타낸다.
Figure 112007091247071-pat00032
여기서,
Figure 112007091247071-pat00033
는 오프셋(offset) 값을 나타낸다.
상기 [수학식 5]는 상기 [수학식 4]에 나타나 있는 "Min-Sum" 알고리즘에서 오프셋(offset) 값(
Figure 112007091247071-pat00034
)을 이용한 오프셋 "Min-Sum" 알고리즘을 나타낸다.
상기 [수학식 4], [수학식 5] 및 [수학식 6]에서 출력 부호는 배타논리곱(XOR)을 이용하여 구할 수 있다. 또한, 검사노드의 차수(
Figure 112007091247071-pat00035
) 개의 입력 절대값 중에서 첫 번째 최소값과 두 번째 최소값을 구하는 과정으로 처리할 수 있어서 상대적으로 하드웨어 구현에 용이하다.
하지만, 종래의 검사노드 갱신 과정은 차수가 커짐에 따라 첫 번째 최소값과 두 번째 최소값을 구하는 과정도 하드웨어적으로 구현하기 곤란하며, 이에 따라 복잡도 및 처리 속도가 증가한다는 문제점이 있다.
따라서 상기와 같은 종래 기술은 차수가 커짐에 따라 첫 번째 최소값과 두 번째 최소값을 구하는 과정을 하드웨어적으로 구현하기 곤란하며, 이에 따라 복잡도 및 처리 속도가 기하급수적으로 증가한다는 문제점이 있으며, 이러한 문제점을 해결하고자 하는 것이 본 발명의 과제이다.
따라서 본 발명은 저밀도 패리티 검사 부호의 검사노드 갱신에 있어서, 입력 비트의 첫 번째 최소값 및 두 번째 최소값을 각 비트별로 산출하고 산출된 첫 번째 최소값 또는 두 번째 최소값을 이용하여 검사노드의 각 차수에 해당하는 최소값을 결정함으로써, 검사노드를 갱신하는 과정을 효율적으로 수행할 수 있게 하는, 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 발명은 상기 문제점을 해결하기 위하여, 저밀도 패리티 검사 부호의 검사노드 갱신에 있어서, 입력 비트의 첫 번째 최소값 및 두 번째 최소값을 각 비트별로 산출하고 산출된 첫 번째 최소값 또는 두 번째 최소값을 이용하여 검사노드의 각 차수에 해당하는 최소값을 결정하는 것을 특징으로 한다.
더욱 구체적으로, 본 발명은, 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치에 있어서, 입력 비트의 첫 번째 최소값을 각 비트별로 산출하고, 상기 산 출된 첫 번째 최소값을 이용하여 두 번째 최소값을 함께 산출하기 위한 최소값 산출 수단; 상기 산출된 첫 번째 및 두 번째 최소값을 검사노드별로 행분해하여 노드별 첫 번째 및 두 번째 최소값을 산출하기 위한 노드 최소값 산출 수단; 및 상기 산출된 노드별 첫 번째 및 두 번째 최소값 중 어느 하나의 최소값을 상기 입력 비트의 각 차수에 해당하는 최소값으로 결정하기 위한 최소값 결정 수단을 포함한다.
또한, 본 발명은, 저밀도 패리티 검사 부호의 고속 검사노드 갱신 방법에 있어서, 입력 비트의 첫 번째 최소값을 각 비트별로 산출하고, 상기 산출된 첫 번째 최소값을 이용하여 두 번째 최소값을 함께 산출하는 최소값 산출 단계; 상기 산출된 첫 번째 및 두 번째 최소값을 검사노드별로 행분해하여 행분해 옵션이 적용된 첫 번째 및 두 번째 최소값을 산출하는 노드 최소값 산출 단계; 및 상기 산출된 노드별 첫 번째 및 두 번째 최소값 중 어느 하나의 최소값을 상기 입력 비트의 각 차수에 해당하는 최소값으로 결정하는 최소값 결정 단계를 포함한다.
상기와 같은 본 발명은, 저밀도 패리티 검사 부호의 검사노드 갱신에 있어서, 입력 비트의 첫 번째 최소값 및 두 번째 최소값을 각 비트별로 산출하고 산출된 첫 번째 최소값 또는 두 번째 최소값을 이용하여 검사노드의 각 차수에 해당하는 최소값을 결정함으로써, 검사노드를 갱신하는 과정을 효율적으로 수행할 수 있게 하는 효과가 있다.
즉, 본 발명은, 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" 알고리즘에 따라 검사노드의
Figure 112007091247071-pat00036
번째 출력 LLR(
Figure 112007091247071-pat00037
)을 구하는 과정이다. 즉, 각 검사노드(R1과 R2)(110, 120)의 갱신 과정은 오프셋을 이용하여 검사노드의 각 입력 LLR을 보정하고,
Figure 112007091247071-pat00038
번째 검사노드의 입력 LLR을 제외한 나머지 다른
Figure 112007091247071-pat00039
번째 입력 LLR(
Figure 112007091247071-pat00040
) 중 최소값을 검사노드의
Figure 112007091247071-pat00041
번째 출력 LLR(
Figure 112007091247071-pat00042
)로 결정한다.
이러한 최소값을 구하는 과정은 검사노드의 차수(
Figure 112007091247071-pat00043
) 개의 입력 절대값 중에서 첫 번째 최소값과 두 번째 최소값을 구하는 과정으로 처리될 수 있다. 예를 들어, 검사노드(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)

  1. 저밀도 패리티 검사 부호를 Min-Sum 방식을 이용하여 복호하기 위한 검사노드 갱신 장치에 있어서,
    미리 결정된 비트의 수를 갖는 복수의 입력 메시지들을 최상위 비트(MSB)부터 최하위 비트(LSB)까지 입력받아 각 입력 메시지들을 첫 번째 비트부터 마지막 비트까지 순차적으로 비교하여 최소값 후보군에서 제외함으로써 첫 번째 최소값을 산출하는 첫 번째 최소값 산출수단;
    상기 복수의 입력 메시지들 중 상기 첫 번째 최소값을 제외한 메시지들의 최상위 비트부터 최하위 비트까지 순차적으로 입력받아 상기 각 메시지들의 최상위 비트 값의 합을 미리 결정된 값과 비교하여 미리 결정된 값과 같은 경우 두 번째 최소값을 결정하고, 다른 경우 첫 번째 최소값의 최상위 비트를 이용하여 산출하기 위한 두 번째 최소값 산출수단
    을 포함하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치.
  2. 제 1 항에 있어서,
    행분해 옵션 적용 시
    상기 메시지 값들을 미리 결정된 행분해 방식에 의거하여 2개의 행으로 행분해 하여 입력하며,
    상기 첫 번째 최소값 산출수단과 상기 두 번째 최소값 산출수단은 상기 분해된 각 행에 대응하여 구비되고,
    각 행에 대응하는 각각의 첫 번째 최소값 산출수단과 상기 두 번째 최소값 산출수단들은 각 행의 입력값에서 각각 첫 번째 최소값 및 두 번째 최소값을 계산함을 특징으로 하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치.
  3. 제 2 항에 있어서,
    상기 행분해 신호와 상기 분해된 각각의 상기 첫 번째 최소값 산출 수단들 및 두 번째 최소값 산출 수단들의 출력 값들을 수신하여 오프셋을 적용하여 상기 행 분해된 각 행별 첫 번째 최소값들 및 두 번째 최소값들을 출력하는 최소값 산출부를 더 포함하는 것을 특징으로 하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치.
  4. 제 3 항에 있어서,
    상기 각 행별 첫 번째 최소값들 및 두 번째 최소값들을 수신하여 상기 검사 노드의 첫 번째 최소값 및 두 번째 최소값을 결정하는 최소값 결정부를 더 포함하는 것을 특징으로 하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치.
  5. 삭제
  6. 삭제
  7. 저밀도 패리티 검사 부호를 Min-Sum 방식을 이용하여 복호하기 위한 검사노드 갱신 방법에 있어서,
    미리 결정된 비트의 수를 갖는 복수의 입력 메시지들을 최상위 비트(MSB)부터 최하위 비트(LSB)까지 입력받아 각 입력 메시지들을 첫 번째 비트부터 마지막 비트까지 순차적으로 비교하여 최소값 후보군에서 제외함으로써 첫 번째 최소값을 산출하는 첫 번째 최소값 산출 단계;
    상기 복수의 입력 메시지들 중 상기 첫 번째 최소값을 제외한 메시지들의 최상위 비트부터 최하위 비트까지 순차적으로 입력받아 상기 각 메시지들의 최상위 비트 값의 합을 미리 결정된 값과 비교하여 미리 결정된 값과 같은 경우 두 번째 최소값을 결정하고, 다른 경우 첫 번째 최소값의 최상위 비트를 이용하여 산출하기 위한 두 번째 최소값 산출 단계
    를 포함하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 방법.
  8. 제 7 항에 있어서,
    행분해 옵션 적용 시 상기 메시지 값들을 미리 결정된 행분해 방식에 의거하여 2개의 행으로 행분해 하는 행 분해 단계를 더 포함하고,
    상기 분해 단계 이후에 상기 행 분해된 메시지들을 각각 상기 첫 번째 최소값 산출 단계 및 상기 두 번째 최소값 산출 단계에서 처리하도록 하는 것을 특징으로 하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 방법.
  9. 제 8 항에 있어서,
    상기 행 분해되어 계산된 각각의 상기 첫 번째 최소값들 및 두 번째 최소값들에 오프셋을 적용하여 상기 행 분해된 각 행렬 첫 번째 최소값들 및 두 번째 최소값들을 출력하는 최소값 산출 단계를 더 포함하는 것을 특징으로 하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 방법.
  10. 제 9 항에 있어서,
    상기 각 행별 첫 번째 최소값들 및 두 번째 최소값들을 수신하여 상기 검사 노드의 첫 번째 최소값 및 두 번째 최소값을 결정하는 최소값 결정 단계를 더 포함하는 것을 특징으로 하는 저밀도 패리티 검사 부호의 고속 검사노드 갱신 방법.
  11. 삭제
  12. 삭제
KR1020070133822A 2007-12-19 2007-12-19 저밀도 패리티 검사 부호의 고속 검사노드 갱신 장치 및 그방법 KR101065480B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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