KR20080099191A - 동작 파라미터 적응형 ldpc 디코더 - Google Patents

동작 파라미터 적응형 ldpc 디코더 Download PDF

Info

Publication number
KR20080099191A
KR20080099191A KR1020080042436A KR20080042436A KR20080099191A KR 20080099191 A KR20080099191 A KR 20080099191A KR 1020080042436 A KR1020080042436 A KR 1020080042436A KR 20080042436 A KR20080042436 A KR 20080042436A KR 20080099191 A KR20080099191 A KR 20080099191A
Authority
KR
South Korea
Prior art keywords
check
bit
edge message
message
engine
Prior art date
Application number
KR1020080042436A
Other languages
English (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 KR20080099191A publication Critical patent/KR20080099191A/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/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
    • 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
    • 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
    • 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/6588Compression or short representation of variables
    • 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/6591Truncation, saturation and clamping
    • 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
    • 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/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

본원 발명은 동작 파라미터 적응형 LDPC(Low Density Parity Check; 저밀도 패리티 체크) 디코더에 관한 것이다. 신규한 수단은 LDPC 코딩 신호가 디코딩될 수 있고, 임의의 하나 또는 그 이상의 동작 파라미터들이 디코딩 프로세싱 동안 조정될 수 있는 것에 의해 제공된다. 예를 들면, 수신된 LDPC 코딩 신호(예를 들면, LLR들(log likelihood ratios))로부터 검출되는 원래의 신호는 LDPC 코딩 신호를 디코딩하는 것에 따라 수행되는 반복 디코딩 프로세싱 동안(또는 이전에) 수정될 수 있다. 동작 파라미터의 이러한 수정은 스케일링(scaling), 압축(및 확장/압축 해제), 오프셋 가산 또는 오프셋 감산, 반올림(rouding), 및/또는 동작 파라미터의 일부 다른 수정 중 임의의 하나 또는 조합을 포함할 수 있다. 비트(또는 변수) 에지 메시지들 및/또는 체크 에지 메시지들은 디코딩 프로세싱 동안 수정될 수 있다. 게다가, 동작 파라미터 수정은 선택적이며, 다른 수정은 다른 파라미터들로 및/또는 다른 디코딩 반복들 동안 수행될 수 있다.

Description

동작 파라미터 적응형 LDPC 디코더{Operational parameter adaptable LDPC(Low Density Parity Check) decoder}
본원 발명은 일반적으로 통신 시스템에 관한 것이며, 특히 통신 시스템내에서 LDPC(Low Density Parity Check; 저밀도 패리티 체크) 코딩된 신호의 디코딩에 관한 것이다.
데이터 통신 시스템은 수년동안 계속해서 발전해 왔다. 최근 크게 관심을 받아온 통신 시스템의 한 분야는 반복적 오류 검출 코드를 적용하는 통신 시스템이다. 특히 관심은 LDPC(Low Density Parity Check; 저밀도 패리티 체크) 코드를 적용하는 통신 시스템에 있다. 반복적 코드가 있는 통신 시스템들은 흔히 주어진 SNR(신호 대 잡음비)에 대해 다른 코드들보다 더 낮은 BER(비트 오류율)을 얻을 수 있다.
이 영역의 계속적이고 가장 지배적인 발전은 통신 시스템 내의 주어진 BER 을 얻도록 요구되는 SNR을 낮추도록 계속해서 시도되어 왔다. 이상적인 목표는 통신 채널에서 샤논의 한계(Shannon limit)에 도달하도록 시도하여 왔다. 샤논의 한계는 통신 채널을 통해 오류가 없는 송신을 달성하는 특정 SNR을 갖는 통신 채널에 서 사용되는 데이터 레이트(rate)로서 볼 수 있다. 다른 말로 하면, 샤논 한계는 주어진 변조 및 코드 레이트에 대해 채널 용량에 대한 이론적인 한계이다.
LDPC 코드는 일부 경우에서 샤논 한계에 도달할 수 있는 뛰어난 디코딩 성능을 제공한다는 것이 알려졌다. 예를 들면, 일부 LDPC 디코더들은 이론적인 샤논 한계로부터 0.3 dB(데시벨)이내로 나타난다는 것이 밝혀졌다. 한편 이 예시는 100만 길이의 변칙적인 LDPC 코드를 사용하여 달성되었고, 그럼에도 불구하고 통신 시스템 내에서 LDPC 코드들의 매우 고무적인 응용을 제시한다.
LDPC 코딩 신호의 사용은 다수의 새로운 응용 영역들에서 계속해서 개척되었다. LDPC 코딩 신호를 사용할 수 있는 어떤 예시적인 가용 통신 시스템은 고속 이더넷 응용들(예를 들면, IEEE 802.3an(10GBASE-T) 최신 표준에 따른 10Gbps(초당 기가비트) 이더넷 동작)을 위한 4선 꼬인 쌍 케이블을 사용하는 통신 시스템뿐만 아니라 무선 환경내에서(예를 들면, IEEE 802.11n 최신 표준을 포함하는 IEEE 802.11 환경 공간에서) 동작하는 통신 시스템을 포함한다.
임의의 이들 특정 통신 시스템 응용 영역들에서, 오류 검출 코드를 얻는 근사적 용량은 매우 바람직하다. 종래의 연결된 코드들을 사용하여 포함될 수 있는 잠재적 제한들은 초고속 데이터 레이트 통신 시스템 응용 영역내의 이러한 응용들에서 상기 코드들의 사용을 단순히 배제한다.
일반적으로 말해서, LDPC 코드를 사용하는 통신 시스템들의 배경내에서, 인코더 성능을 가진 통신 채널의 한 끝의 제 1 통신 장치, 및 디코더 성능을 가진 통신 채널의 다른 끝의 제 2 통신 장치가 있다. 많은 경우들에서, 이들 통신 장치들 중 하나 또는 모두는 인코더 및 디코더 성능(예를 들면, 양방향성 통신 시스템)을 가진다. LDPC 코드는 또한 스토리지 매체에 기록하기 전에 데이터가 인코딩되는 데이터 스토리지(예를 들면, 하드 디스크 드라이브(HDD) 응용들 및 다른 메모리 스토리지 장치들)의 어떤 형태를 사용하는 것들을 포함하는 다양한 부가적인 응용들에 적용될 수 있고, 이후에 데이터는 스토리지 매체로부터 판독/검출된 후에 디코딩된다.
이러한 다수의 종래 기술의 통신 장치들에서, LDPC 코딩 신호를 디코딩할 수 있는 통신 장치들 및/또는 효과적인 장치들의 설계의 최대의 난관 및 장애 중 하나는 반복적 디코딩 프로세싱(예를 들면, 체크 엔진과 비트 엔진 사이에서 각각 체크 에지 메시지들 및 비트 에지 메시지들을 전후로 저장하고 전달할 때) 동안 업데이트되고 사용되는 모든 업데이트된 비트 에지 메시지들과 체크 에지 메시지들을 저장하고 관리하는데에 통상적으로 큰 면적과 메모리가 요구된다는 점이다.
종래 기술의 문제점에 따라, 본원 발명은 LDPC 코딩 신호를 디코딩할 때, 모든 업데이트된 비트 에지 메시지들과 체크 에지 메시지들을 저장하고 관리하는데에 통상적으로 큰 면적과 메모리가 요구되는 점을 해결하는 것을 그 과제로 한다.
본원 발명은 아래의 도면, 발명의 상세한 설명, 및 청구항의 다양한 관점들의 요약적 기술에서 더 기재된 동작의 장치들 및 방법들에 관련된다.
본원 발명의 일 측면에 따라, LDPC(Low Density Parity Check; 저밀도 패리티 체크) 코딩 신호를 디코딩하도록 동작가능한 디코더가 제공되며, 상기 디코더는,
제 1 체크 에지 메시지를 업데이트하기 위해 제 1 비트 에지 메시지를 적용하여, 이에 따라 제 2 체크 에지 메시지를 생성하도록 동작가능한 체크 엔진; 및
비트 엔진으로서,
상기 제 2 체크 에지 메시지를 스케일링(scale)하여, 이에 따라 스케일링된 제 2 체크 에지 메시지를 생성하고,
제 2 비트 에지 메시지를 업데이트하기 위해 상기 스케일링된 제 2 체크 에지 메시지를 적용하여, 이에 따라 제 3 비트 에지 메시지를 생성하고,
상기 LDPC 코딩 신호로 인코딩된 정보 비트(information bit)에 대응하는 소 프트 정보(soft information)를 생성하기 위해 상기 제 3 비트 에지 메시지를 적용하도록 동작가능한, 상기 비트 엔진을 포함하고,
상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트에 대응하는 상기 소프트 정보는 상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트의 최적의 추정을 형성하기 위해 사용되는 것을 특징으로 한다.
바람직하게는,
상기 체크 엔진은,
제 4 비트 에지 메시지를 스케일링하여, 이에 따라 스케일링된 제 4 비트 에지 메시지를 생성하고,
제 3 체크 에지 메시지를 업데이트하기 위해 상기 스케일링된 제 4 비트 에지 메시지를 적용하여, 이에 따라 제 4 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
제 1 디코딩 반복 동안, 상기 비트 엔진은 제 1 스케일링 파라미터(scaling parameter)에 따라 상기 제 2 체크 에지 메시지를 스케일링하여, 이에 따라 상기 스케일링된 제 2 체크 에지 메시지를 생성하도록 동작가능하고,
제 2 디코딩 반복 동안, 상기 비트 엔진은 제 2 스케일링 파라미터에 따라 제 3 체크 에지 메시지를 스케일링하여, 이에 따라 스케일링된 제 3 체크 에지 메 시지를 생성하도록 동작 가능한 것을 특징으로 한다.
바람직하게는, 제 1 클럭 주기(clock cycle) 동안, 상기 비트 엔진은 제 1 스케일링 파라미터에 따라 상기 제 2 체크 에지 메시지를 스케일링하여, 이에 따라 상기 스케일링된 제 2 체크 에지 메시지를 생성하도록 동작가능하고,
제 2 클럭 주기 동안, 상기 비트 엔진은 제 2 스케일링 파라미터에 따라 제 3 체크 에지 메시지를 스케일링하여, 이에 따라 스케일링된 제 3 체크 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는, 디코딩 반복의 제 1 하위-반복(sub-iteration) 동안, 상기 체크 엔진은 제 1 스케일링 파라미터에 따라 상기 제 1 비트 에지 메시지를 스케일링하도록 동작가능하고,
상기 디코딩 반복의 제 2 하위-반복 동안, 상기 비트 엔진은 제 2 스케일링 파라미터에 따라 상기 제 2 체크 에지 메시지를 스케일링하여, 이에 따라 상기 스케일링된 제 2 체크 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는, 제 1 디코딩 반복 동안, 상기 체크 엔진은 제 1 스케일링 파라미터에 따라 상기 제 1 비트 에지 메시지를 스케일링하도록 동작가능하고,
제 2 디코딩 반복 동안, 상기 체크 엔진은 제 2 스케일링 파라미터에 따라 상기 제 3 비트 에지 메시지를 스케일링하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 체크 엔진은,
상기 제 1 비트 에지 메시지로부터 값을 감산 또는 상기 값을 가산하여, 이에 따라 수정된 제 1 비트 에지 메시지를 생성하고,
상기 제 1 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 1 비트 에지 메시지를 적용하여, 이에 따라 상기 제 2 체크 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 비트 엔진은,
상기 스케일링된 제 2 에지 메시지로부터 값을 감산 또는 상기 값을 가산하여, 이에 따라 수정된 스케일링된 제 2 에지 메시지를 생성하고,
상기 제 2 비트 에지 메시지를 업데이트하기 위해 상기 수정된 스케일링된 제 2 체크 에지 메시지를 적용하여, 이에 따라 제 3 비트 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 체크 엔진은,
상기 제 1 비트 에지 메시지를 이동 또는 반올림하여, 이에 따라 수정된 제 1 비트 에지 메시지를 생성하고,
상기 제 1 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 1 비트 에지 메시지를 적용하여, 이에 따라 상기 제 2 체크 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 비트 엔진은,
상기 스케일링된 제 2 에지 메시지를 이동 또는 반올림하여, 이에 따라 수정된 스케일링된 제 2 에지 메시지를 생성하고,
상기 제 2 비트 에지 메시지를 업데이트하기 위해 상기 수정된 스케일링된 제 2 체크 에지 메시지를 적용하여, 이에 따라 제 3 비트 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 비트 엔진은,
상기 제 2 에지 메시지로부터 값을 감산 또는 상기 값을 가산하여, 이에 따라 수정된 제 2 에지 메시지를 생성하고,
상기 수정된 제 2 체크 에지 메시지를 스케일링하여, 이에 따라 상기 스케일링된 제 2 체크 에지 메시지를 생성하고,
상기 제 2 비트 에지 메시지를 업데이트하기 위해 상기 스케일링된 제 2 체 크 에지 메시지를 적용하여, 이에 따라 상기 제 3 비트 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 비트 엔진은,
상기 LDPC 코딩 신호로 인코딩된 정보 비트에 대응하는 LLR(log likelihood ratio)을 수신하고,
상기 LLR로부터 값을 가산 또는 상기 값을 감산하고 상기 LLR을 스케일링하는 것에 의해 상기 LLR을 수정하여, 이에 따라 수정된 LLR을 생성하고,
상기 제 2 비트 에지 메시지를 업데이트하기 위해 상기 수정된 LLR을 적용하여, 이에 따라 상기 제 3 비트 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 비트 엔진은,
상기 제 3 비트 에지 메시지로부터 값을 가산 또는 상기 값을 감산, 상기 제 3 비트 에지 메시지를 스케일링, 상기 제 3 비트 에지 메시지를 이동, 및 상기 제 3 비트 에지 메시지를 반올림하는 것 중 적어도 하나에 의해 상기 제 3 비트 에지 메시지를 수정하는 것에 의해 수정된 제 3 비트 에지 메시지를 생성하고,
상기 수정된 제 3 비트 에지 메시지를 상기 체크 엔진으로 전달하도록 동작 가능한 것을 특징으로 한다.
바람직하게는,
상기 비트 엔진은,
상기 제 3 비트 엔진 메시지를 압축하여, 이에 따라 압축된 제 3 비트 에지 메시지를 생성하고,
상기 압축된 제 3 비트 에지 메시지를 상기 체크 엔진으로 전달하도록 동작가능하고, 상기 체크 엔진은 상기 압축된 제 3 비트 에지 메시지를 압축 해제하여, 이에 따라 적어도 하나의 부가적인 체크 에지 메시지의 업데이트에 사용하기 위해 상기 제 3 비트 에지 메시지를 회복하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 체크 엔진은,
압축된 비트 에지 메시지를 수신하고,
상기 압축된 비트 에지 메시지를 압축 해제하여, 이에 따라 상기 제 1 체크 에지 메시지의 업데이트에 사용하기 위해 상기 제 1 비트 에지 메시지를 회복하는 것에 의해 상기 제 2 체크 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 체크 엔진은,
압축된 비트 에지 메시지를 수신하고,
상기 압축된 비트 에지 메시지를 압축 해제하여, 이에 따라 상기 제 1 체크 에지 메시지의 업데이트에 사용하기 위해 상기 제 1 비트 에지 메시지를 회복하는 것에 의해 상기 제 2 체크 에지 메시지를 생성하고,
상기 제 2 체크 에지 메시지를 압축하여, 이에 따라 압축된 제 2 체크 에지 메시지를 생성하고,
상기 압축된 제 2 체크 에지 메시지를 상기 비트 엔진으로 전달하도록 동작가능하고,
상기 비트 엔진은,
상기 압축된 제 2 체크 에지 메시지를 수신하고,
상기 압축된 제 2 체크 에지 메시지를 압축 해제하여, 이에 따라 상기 제 2 체크 에지 메시지를 회복하도록 동작가능한 것을 특징으로 한다.
바람직하게는, 상기 체크 엔진은,
2제곱 함수를 사용하여 상기 제 2 체크 에지 메시지를 압축하여, 이에 따라 압축된 제 2 체크 에지 메시지를 생성하고,
상기 압축된 제 2 체크 에지 메시지를 상기 비트 엔진으로 전달하도록 동작가능하고,
상기 비트 엔진은,
상기 압축된 제 2 체크 에지 메시지를 수신하고,
상기 압축된 제 2 체크 에지 메시지를 압축 해제하여, 이에 따라 상기 제 2 체크 에지 메시지를 회복하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 체크 엔진은,
압축된 비트 에지 메시지를 수신하고,
2제곱 함수를 사용하여 상기 압축된 비트 에지 메시지를 압축 해제하여, 이에 따라 상기 제 1 체크 에지 메시지의 업데이트에 사용하기 위한 상기 제 1 비트 에지 메시지를 회복하여, 상기 제 2 체크 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는, 상기 디코더는 통신 채널로부터 상기 LDPC 코딩 신호를 수신하도록 동작가능한 통신 장치내에 구현되고,
상기 통신 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 및 광섬유 통신 시스템 중 적어도 하나내에 구현되는 것을 특징으로 한다.
본원 발명의 일 측면에 따라, LDPC(Low Density Parity Check; 저밀도 패리티 체크) 코딩 신호를 디코딩하도록 동작가능한 디코더가 제공되며, 상기 디코더는,
체크 엔진으로서,
제 1 체크 에지 메시지를 업데이트하기 위해 제 1 비트 에지 메시지를 적용하여, 이에 따라 제 2 체크 에지 메시지를 생성하고,
상기 제 2 체크 에지 메시지와 값을 가산 또는 상기 제 2 체크 에지 메시지로부터 상기 값을 감산, 상기 제 2 체크 에지 메시지를 스케일링, 상기 제 2 체크 에지 메시지를 이동(shifting), 상기 제 2 체크 에지 메시지를 반올림(rounding), 및 상기 제 2 체크 에지 메시지를 압축(compressing)하는 것 중 적어도 하나를 수행하는 것에 의해 상기 제 2 체크 에지 메시지를 수정하여, 이에 따라 수정된 제 2 체크 에지 메시지를 생성하도록 동작가능한, 상기 체크 엔진, 및
비트 엔진으로서,
상기 수정된 제 2 체크 에지 메시지를 수신하고,
만일 상기 수정된 제 2 체크 에지 메시지가 상기 체크 엔진에 의해 압축되었다면, 상기 수정된 제 2 체크 에지 메시지를 압축 해제(decompress)하여 이에 따라 압축 해제된 수정된 제 2 체크 에지 메시지를 생성하고,
제 2 비트 에지 메시지를 업데이트하기 위해 상기 수정된 제 2 체크 에지 메시지 또는 상기 압축 해제된 수정된 제 2 체크 에지 메시지를 적용하여, 이에 따라 제 3 비트 에지 메시지를 생성하고,
상기 LDPC 코딩 신호로 인코딩된 정보 비트(information bit)에 대응하는 소프트 정보(soft information)를 생성하기 위해 상기 제 3 비트 에지 메시지를 적용하도록 동작가능한, 상기 비트 엔진을 포함하고,
상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트에 대응하는 상기 소프트 정보는 상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트의 최적의 추정을 형성하기 위해 사용되는 것을 특징으로 한다.
바람직하게는, 상기 비트 엔진은,
상기 수정된 제 2 체크 에지 메시지를 수신하고,
상기 수정된 제 2 체크 에지 메시지와 적어도 하나의 추가적인 값을 가산 또는 상기 수정된 제 2 체크 에지 메시지로부터 상기 적어도 하나의 값을 감산, 상기 수정된 제 2 체크 에지 메시지를 스케일링, 및 상기 수정된 제 2 체크 에지 메시지를 압축 해제하는 것 중 적어도 하나를 수행하는 것에 의해 상기 수정된 제 2 체크 에지 메시지를 수정하여, 이에 따라 2회 수정된 제 2 체크 에지 메시지를 생성하고,
상기 제 2 비트 에지 메시지를 업데이트하기 위해 상기 2회 수정된 제 2 체크 에지 메시지를 적용하여, 이에 따라 상기 제 3 비트 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 값은 제 1 값이고,
상기 체크 엔진은,
상기 제 1 비트 에지 메시지와 제 2 값을 가산 또는 상기 제 1 비트 에지 메 시지로부터 상기 제 2 값을 감산, 및 상기 제 1 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 1 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 1 비트 에지 메시지를 생성하고,
상기 제 1 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 1 비트 에지 메시지를 적용하여, 이에 따라 상기 제 2 체크 에지 메시지를 생성하는 것을 특징으로 한다.
바람직하게는,
상기 값은 제 1 값이고,
제 1 디코딩 반복 동안, 상기 체크 엔진은,
제 1 스케일링 파라미터에 따라 상기 제 1 비트 에지 메시지와 제 2 값을 가산 또는 상기 제 1 비트 에지 메시지로부터 상기 제 2 값을 감산, 상기 제 1 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 1 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 1 비트 에지 메시지를 생성하고,
상기 제 1 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 1 비트 에지 메시지를 적용하여, 이에 따라 상기 제 2 체크 에지 메시지를 생성하도록 동작가능하고,
제 2 디코딩 반복 동안, 상기 체크 엔진은,
제 2 스케일링 파라미터에 따라 상기 제 3 비트 에지 메시지로부터 제 3 값을 가산 또는 상기 제 3 비트 에지 메시지로부터 상기 제 3 값을 감산, 및 상기 제 3 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 3 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 3 비트 에지 메시지를 생성하고,
적어도 하나의 추가적인 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 3 비트 에지 메시지를 적용하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 비트 엔진은,
상기 LDPC 코딩 신호로 인코딩되는 상기 정보 비트에 대응하는 LLR을 수신하고,
상기 LLR과 값을 가산 또는 상기 LLR로부터 상기 값을 감산, 및 상기 LLR을 스케일링하는 것 중 적어도 하나에 의해 상기 LLR을 수정하여, 이에 따라 수정된 LLR을 생성하고,
상기 제 2 비트 에지 메시지를 업데이트하기 위해 상기 수정된 LLR을 적용하여, 이에 따라 상기 제 3 비트 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 값은 제 1 값이고,
상기 비트 엔진은,
상기 제 3 비트 에지 메시지와 제 2 값을 가산 또는 상기 제 3 비트 에지 메 시지로부터 상기 제 2 값을 감산, 상기 제 3 비트 에지 메시지를 스케일링, 및 상기 제 3 비트 에지 메시지를 압축하는 것 중 적어도 하나에 의해 상기 제 3 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 3 비트 에지 메시지를 생성하고,
상기 수정된 제 3 비트 에지 메시지를 상기 체크 엔진으로 전달하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 제 2 체크 에지 메시지를 압축하는 것은 2제곱 함수를 사용하여 수행된다.
바람직하게는,
상기 디코더는 통신 채널로부터 상기 LDPC 코딩 신호를 수신하도록 동작가능한 통신 장치내에 구현되고,
상기 통신 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 및 광섬유 통신 시스템 중 적어도 하나내에 구현되는 것을 특징으로 한다.
본원 발명의 일 측면에 따라, LDPC(Low Density Parity Check; 저밀도 패리티 체크) 코딩 신호를 디코딩하도록 동작가능한 디코더가 제공되고, 상기 디코더는,
제 1 체크 에지 메시지를 업데이트하기 위해 제 1 비트 에지 메시지를 적용 하여, 이에 따라 제 2 체크 에지 메시지를 생성하도록 동작가능한 체크 엔진; 및
비트 엔진으로서,
상기 제 2 체크 에지 메시지와 값을 가산 또는 상기 제 2 체크 에지 메시지로부터 상기 값을 감산, 상기 제 2 체크 에지 메시지를 스케일링, 상기 제 2 체크 에지 메시지를 이동(shifting), 상기 제 2 체크 에지 메시지를 반올림(rounding), 및 상기 제 2 체크 에지 메시지를 압축 해제(decompressing)하는 것 중 적어도 하나를 수행하는 것에 의해 상기 제 2 체크 에지 메시지를 수정하여, 이에 따라 수정된 제 2 체크 에지 메시지를 생성하고,
제 2 비트 에지 메시지를 업데이트하기 위해 상기 수정된 제 2 체크 에지 메시지를 적용하여, 이에 따라 제 3 비트 에지 메시지를 생성하고,
상기 LDPC 코딩 신호로 인코딩된 정보 비트(information bit)에 대응하는 소프트 정보(soft information)를 생성하기 위해 상기 제 3 비트 에지 메시지를 적용하도록 동작가능하고,
상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트에 대응하는 상기 소프트 정보는 상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트의 최적의 추정을 형성하기 위해 사용되는 것을 특징으로 한다.
바람직하게는,
상기 값은 제 1 값이고,
상기 체크 엔진은,
상기 제 1 비트 에지 메시지와 제 2 값을 가산 또는 상기 제 1 비트 에지 메시지로부터 상기 제 2 값을 감산, 및 상기 제 1 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 1 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 1 비트 에지 메시지를 생성하고,
상기 제 1 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 1 비트 에지 메시지를 적용하여, 이에 따라 상기 제 2 체크 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 값은 제 1 값이고,
제 1 디코딩 반복 동안, 상기 체크 엔진은,
제 1 스케일링 파라미터에 따라 상기 제 1 비트 에지 메시지와 제 2 값을 가산 또는 상기 제 1 비트 에지 메시지로부터 상기 제 2 값을 감산, 및 상기 제 1 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 1 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 1 비트 에지 메시지를 생성하고,
상기 제 1 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 1 비트 에지 메시지를 적용하여, 이에 따라 상기 제 2 체크 에지 메시지를 생성하도록 동작가능하고,
제 2 디코딩 반복 동안, 상기 체크 엔진은,
제 2 스케일링 파라미터에 따라 상기 제 3 비트 에지 메시지와 제 3 값을 가 산 또는 상기 제 3 비트 에지 메시지로부터 상기 제 3 값을 감산, 및 상기 제 3 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 3 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 3 비트 에지 메시지를 생성하고,
적어도 하나의 추가적인 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 3 비트 에지 메시지를 적용하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 값은 제 1 값이고,
제 1 클럭 주기 동안, 상기 체크 엔진은,
제 1 스케일링 파라미터에 따라 상기 제 1 비트 에지 메시지와 제 2 값을 가산 또는 상기 제 1 비트 에지 메시지로부터 상기 제 2 값을 감산, 및 상기 제 1 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 1 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 1 비트 에지 메시지를 생성하고,
상기 제 1 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 1 비트 에지 메시지를 적용하여, 이에 따라 상기 제 2 체크 에지 메시지를 생성하도록 동작가능하고,
제 2 클럭 주기 동안, 상기 체크 엔진은,
제 2 스케일링 파라미터에 따라 상기 제 3 비트 에지 메시지와 제 3 값을 가산 또는 상기 제 3 비트 에지 메시지로부터 상기 제 3 값을 감산, 및 상기 제 3 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 3 비트 에지 메 시지를 수정하여, 이에 따라 수정된 제 3 비트 에지 메시지를 생성하고,
적어도 하나의 추가적인 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 3 비트 에지 메시지를 적용하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 값은 제 1 값이고,
제 1 하위-반복 동안, 상기 체크 엔진은,
제 1 스케일링 파라미터에 따라 상기 제 1 비트 에지 메시지와 제 2 값을 가산 또는 상기 제 1 비트 에지 메시지로부터 상기 제 2 값을 감산, 및 상기 제 1 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 1 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 1 비트 에지 메시지를 생성하고,
상기 제 1 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 1 비트 에지 메시지를 적용하여, 이에 따라 상기 제 2 체크 에지 메시지를 생성하도록 동작가능하고,
제 2 하위-반복 동안, 상기 체크 엔진은,
제 2 스케일링 파라미터에 따라 상기 제 3 비트 에지 메시지와 제 3 값을 가산 또는 상기 제 3 비트 에지 메시지로부터 상기 제 3 값을 감산, 및 상기 제 3 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 3 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 3 비트 에지 메시지를 생성하고,
적어도 하나의 추가적인 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 3 비트 에지 메시지를 적용하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 비트 엔진은,
상기 LDPC 코딩 신호로 인코딩된 정보 비트에 대응하는 LLR(log likelihood ratio)을 수신하고,
상기 LLR과 값을 가산 또는 상기 LLR로부터 상기 값을 감산, 및 상기 LLR을 스케일링하는 것 중 적어도 하나에 의해 상기 LLR을 수정하여, 이에 따라 수정된 LLR을 생성하고,
상기 제 2 비트 에지 메시지를 업데이트하기 위해 상기 수정된 LLR을 적용하여, 상기 제 3 비트 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 비트 엔진은,
상기 제 3 비트 에지 메시지와 값을 가산 또는 상기 제 3 비트 에지 메시지로부터 상기 값을 감산, 및 상기 제 3 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 3 비트 에지 메시지를 수정하는 것에 의해 수정된 제 3 비트 에지 메시지를 생성하고,
상기 수정된 제 3 비트 에지 메시지를 상기 체크 엔진으로 전달하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 비트 엔진은,
상기 제 3 비트 에지 메시지를 압축하여, 이에 따라 압축된 제 3 비트 에지 메시지를 생성하고,
상기 압축된 제 3 비트 에지 메시지를 상기 체크 엔진으로 전달하도록 동작가능하고,
상기 체크 엔진은,
적어도 하나의 부가적인 체크 에지 메시지의 업데이트에 사용하기 위해 상기 압축된 제 3 비트 에지 메시지를 압축 해제하여, 이에 따라 상기 제 3 비트 에지 메시지를 회복하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 체크 엔진은,
압축된 비트 에지 메시지를 수신하고,
상기 제 1 체크 에지 메시지의 업데이트에 사용하기 위해, 상기 압축된 비트 에지 메시지를 압축 해제하여, 이에 따라 상기 제 1 비트 에지 메시지를 회복하는 것에 의해 상기 제 2 체크 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 체크 엔진은,
압축된 비트 에지 메시지를 수신하고,
상기 제 1 체크 에지 메시지의 업데이트에 사용하기 위해, 2제곱 함수를 사용하여 상기 압축된 비트 에지 메시지를 압축 해제하여, 이에 따라 상기 제 1 비트 에지 메시지를 회복하는 것에 의해 상기 제 2 체크 에지 메시지를 생성하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 체크 엔진은,
압축된 비트 에지 메시지를 수신하고,
상기 제 1 체크 에지 메시지의 업데이트에 사용하기 위해, 상기 압축된 비트 에지 메시지를 압축 해제하여, 이에 따라 상기 제 1 비트 에지 메시지를 회복하는 것에 의해 상기 제 2 체크 에지 메시지를 생성하고,
상기 제 2 체크 에지 메시지를 압축하여, 이에 따라 압축된 제 2 체크 에지 메시지를 생성하고,
상기 압축된 제 2 체크 에지 메시지를 상기 비트 엔진으로 전달하도록 동작가능하고,
상기 비트 엔진은,
상기 압축된 제 2 체크 에지 메시지를 수신하고,
상기 압축된 제 2 체크 에지 메시지를 압축 해제하여, 이에 따라 상기 제 2 체크 에지 메시지를 회복하도록 동작가능한 것을 특징으로 한다.
바람직하게는, 상기 체크 엔진은,
2제곱 함수를 사용하여 상기 제 2 체크 에지 메시지를 압축하여, 이에 따라 압축된 제 2 체크 에지 메시지를 생성하고,
상기 압축된 제 2 체크 에지 메시지를 상기 비트 엔진으로 전달하도록 동작가능한 것을 특징으로 한다.
바람직하게는,
상기 디코더는 통신 채널로부터 상기 LDPC 코딩 신호를 수신하도록 동작가능한 통신 장치내에 구현되고,
상기 통신 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 및 광섬유 통신 시스템 중 적어도 하나내에 구현되는 것을 특징으로 한다.
본원 발명의 일 측면에 따라, LDPC(Low Density Parity Check; 저밀도 패리티 체크) 코딩 신호를 디코딩하는 방법이 제공되고, 상기 방법은,
제 1 체크 에지 메시지를 업데이트하기 위해 제 1 비트 에지 메시지를 적용하는 것에 의해 체크 노드 프로세싱(processing)을 수행하여, 이에 따라 제 2 체크 에지 메시지를 생성하는 단계;
상기 제 2 체크 에지 메시지와 값을 가산 또는 상기 제 2 체크 에지 메시지로부터 상기 값을 감산, 상기 제 2 체크 에지 메시지를 스케일링, 상기 제 2 체크 에지 메시지를 이동(shifting), 상기 제 2 체크 에지 메시지를 반올림(rounding), 및 상기 제 2 체크 에지 메시지를 압축 해제(decompressing)하는 것 중 적어도 하나를 수행하는 것에 의해 상기 제 2 체크 에지 메시지를 수정하여, 이에 따라 수정된 제 2 체크 에지 메시지를 생성하는 단계;
제 2 비트 에지 메시지를 업데이트하기 위해 상기 수정된 제 2 체크 에지 메시지를 적용하는 것에 의해 비트 노드 프로세싱을 수행하여, 이에 따라 제 3 비트 에지 메시지를 생성하는 단계;
상기 LDPC 코딩 신호로 인코딩된 정보 비트(information bit)에 대응하는 소프트 정보(soft information)를 생성하기 위해 상기 제 3 비트 에지 메시지를 적용하는 단계; 및
상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트의 최적의 추정을 형성하기 위해, 상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트에 대응하는 상기 소프트 정보를 사용하는 단계를 포함하는 것을 특징으로 한다.
바람직하게는,
상기 값은 제 1 값이며,
상기 제 1 비트 에지 메시지와 제 2 값을 가산 또는 상기 제 1 비트 에지 메시지로부터 상기 제 2 값을 감산, 및 상기 제 1 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 1 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 1 비트 에지 메시지를 생성하는 단계; 및
상기 제 1 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 1 비트 에지 메시지를 적용하는 것에 의해, 체크 노드 프로세싱을 수행하여, 이에 따라 상기 제 2 체크 에지 메시지를 생성하는 단계를 더 포함하는 것을 특징으로 한다.
바람직하게는,
상기 값은 제 1 값이고,
제 1 디코딩 반복 동안,
제 1 스케일링 파라미터에 따라 상기 제 1 비트 에지 메시지와 제 2 값을 가산 또는 상기 제 1 비트 에지 메시지로부터 상기 제 2 값을 감산, 및 상기 제 1 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 1 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 1 비트 에지 메시지를 생성하는 단계; 및
상기 제 1 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 1 비트 에지 메시지를 적용하는 것에 의해 체크 노드 프로세싱을 수행하여, 이에 따라 상기 제 2 체크 에지 메시지를 생성하는 단계를 더 포함하고,
제 2 디코딩 반복 동안,
제 2 스케일링 파라미터에 따라 상기 제 3 비트 에지 메시지와 제 3 값을 가산 또는 상기 제 3 비트 에지 메시지로부터 상기 제 3 값을 감산, 및 상기 제 3 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 3 비트 에지 메 시지를 수정하여, 이에 따라 수정된 제 3 비트 에지 메시지를 생성하는 단계; 및
적어도 하나의 추가적인 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 3 비트 에지 메시지를 적용하는 것에 의해 체크 노드 프로세싱을 수행하는 단계를 더 포함하는 것을 특징으로 한다.
바람직하게는,
상기 값은 제 1 값이고,
제 1 클럭 주기 동안,
제 1 스케일링 파라미터에 따라 상기 제 1 비트 에지 메시지와 제 2 값을 가산 또는 상기 제 1 비트 에지 메시지로부터 상기 제 2 값을 감산, 및 상기 제 1 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 1 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 1 비트 에지 메시지를 생성하는 단계; 및
상기 제 1 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 1 비트 에지 메시지를 적용하는 것에 의해 체크 노드 프로세싱을 수행하여, 이에 따라 상기 제 2 체크 에지 메시지를 생성하는 단계를 더 포함하고,
제 2 클럭 주기 동안,
제 2 스케일링 파라미터에 따라 상기 제 3 비트 에지 메시지와 제 3 값을 가산 또는 상기 제 3 비트 에지 메시지로부터 상기 제 3 값을 감산, 및 상기 제 3 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 3 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 3 비트 에지 메시지를 생성하는 단계; 및
적어도 하나의 추가적인 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 3 비트 에지 메시지를 적용하는 것에 의해 체크 노드 프로세싱을 수행하는 단계를 더 포함하는 것을 특징으로 한다.
바람직하게는,
상기 값은 제 1 값이고,
제 1 하위-반복 동안,
제 1 스케일링 파라미터에 따라 상기 제 1 비트 에지 메시지와 제 2 값을 가산 또는 상기 제 1 비트 에지 메시지로부터 상기 제 2 값을 감산, 및 상기 제 1 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 1 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 1 비트 에지 메시지를 생성하는 단계; 및
상기 제 1 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 1 비트 에지 메시지를 적용하는 것에 의해 체크 노드 프로세싱을 수행하여, 이에 따라 상기 제 2 체크 에지 메시지를 생성하는 단계를 더 포함하고,
제 2 하위-반복 동안,
제 2 스케일링 파라미터에 따라 상기 제 3 비트 에지 메시지와 제 3 값을 가산 또는 상기 제 3 비트 에지 메시지로부터 상기 제 3 값을 감산, 및 상기 제 3 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 3 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 3 비트 에지 메시지를 생성하는 단계; 및
적어도 하나의 추가적인 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 3 비트 에지 메시지를 적용하는 것에 의해 체크 노드 프로세싱을 수행하는 단계를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 방법은,
상기 LDPC 코딩 신호로 인코딩된 정보 비트에 대응하는 LLR(log likelihood ratio)을 수신하는 단계;
상기 LLR과 값을 가산 또는 상기 LLR로부터 상기 값을 감산, 및 상기 LLR을 스케일링하는 것 중 적어도 하나에 의해 수정된 LLR을 생성하는 것에 의해 상기 LLR을 수정하여, 이에 따라 수정된 LLR을 생성하는 단계; 및
상기 제 2 비트 에지 메시지를 업데이트하기 위해 상기 수정된 LLR을 적용하는 것에 의해 비트 노드 프로세싱을 수행하여, 이에 따라 상기 제 3 비트 에지 메시지를 생성하는 단계를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 방법은,
상기 제 3 비트 에지 메시지에 적어도 하나의 추가적인 값을 가산 또는 상기 제 3 비트 에지 메시지로부터 상기 적어도 하나의 추가적인 값을 감산, 및 상기 제 3 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 3 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 3 비트 에지 메시지를 생성하는 단계를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 방법은,
상기 제 3 비트 에지 메시지를 압축하여, 이에 따라 압축된 제 3 비트 에지 메시지를 생성하는 단계;
체크 노드 프로세싱에 사용하기 위해 상기 압축된 제 3 비트 에지 메시지를 전달하는 단계; 및
적어도 하나의 추가적인 체크 에지 메시지의 업데이트에 사용하기 위해 상기 압축된 제 3 비트 에지 메시지를 압축 해제하여, 이에 따라 상기 제 3 비트 에지 메시지를 회복하는 단계를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 방법은,
압축된 비트 에지 메시지를 수신하는 단계; 및
상기 제 1 체크 에지 메시지의 업데이트에 사용하기 위해 상기 압축된 비트 에지 메시지를 압축 해제하여, 상기 제 1 비트 에지 메시지를 회복하는 것에 의해, 이에 따라 상기 제 2 체크 에지 메시지를 생성하는 단계를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 방법은,
압축된 비트 에지 메시지를 수신하는 단계;
상기 제 1 체크 에지 메시지의 업데이트에 사용하기 위해 상기 압축된 비트 에지 메시지를 압축 해제하여 상기 제 1 비트 에지 메시지를 회복하는 것에 의해, 상기 제 2 체크 에지 메시지를 생성하는 단계;
상기 제 2 체크 에지 메시지를 압축하는 것에 의해, 압축된 제 2 체크 에지 메시지를 생성하는 단계;
비트 노드 프로세싱에 사용하기 위해 상기 압축된 제 2 체크 에지 메시지를 전달하는 단계;
상기 압축된 제 2 체크 에지 메시지를 수신하는 단계; 및
상기 압축된 제 2 체크 에지 메시지를 압축 해제하여, 이에 따라 상기 제 2 체크 에지 메시지를 회복하는 단계를 더 포함하는 것을 특징으로 한다.
바람직하게는,
상기 방법은 디코더에서 수행되고,
상기 디코더는 통신 채널로부터 상기 LDPC 코딩 신호를 수신하도록 동작가능한 통신 장치내에 구현되고,
상기 통신 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 및 광섬유 통신 시스템 중 적어도 하나내에 구현되는 것을 특징으로 한다.
본원 발명에 따라, 종래의 LDPC 디코딩과 달리, 코딩 성능을 희생하지 않고 각각의 메시지들을 표현하기 위해 요구되는 다수의 비트들의 감소가 가능하다. 이에 따라 업데이트된 비트 에지 메시지들과 체크 에지 메시지들을 저장하고 관리하는데에 종래의 기술보다 작은 면적과 작은 메모리가 요구되는 효과가 있다.
LDPC(저밀도 패리티 체크) 코드는 증가하는 다수의 통신 표준들(예를 들면, IEEE 802.3an, IEEE 802.11n, 802.20, DVB-S2)에 채택된 용량 접근 진행형 ECC(error correcting code; 오류 정정 코드)이다. 관련된 응용 영역들은 자기 기록, 무선, 및 구리선 및 광섬유상의 고속 데이터 통신을 포함한다.
일 실시예에서, LDPC 디코딩 프로세싱은 체크 노드 프로세싱 및 비트 노드 프로세싱이 수행될 때 메시지들(예를 들면, 체크 에지 메시지들 및 비트 에지 메시지들)이 전후로 전달되는 반복 디코딩 접근 방식을 사용하여 수행된다. 이는 종종 코드의 그래프 표현(예를 들면, LDPC 2분형 그래프)상에서 동작하는 디코딩 프로세싱을 전달하는 메시지로서 언급된다. 핵심적인 하드웨어 구현 과제 중 하나는 각각의 디코더 반복 동안 교환되어야만 하는 많은 메시지들의 관리이다. 본원에서, 다양한 접근들이 코딩 성능을 희생하지 않고 각각의 메시지들을 표현하기 위해 요구되는 다수의 비트들의 감소를 허용하는 것으로 나타난다. 게다가 동작 파라미터 수정이 LDPC 코딩 신호(예를 들면, 체크 에지 메시지들, 비트 에지 메시지들, LLR들, 소프트(soft) 정보 등)의 디코딩을 수행할 때 적용되는 임의의 하나 또는 그 이상의 다양한 요소들로 수행될 수 있는 새로운 수단이 제공된다.
본원에 기재된 후술하는 실시예들 및 접근들은 개괄적인 LDPC 디코더 구조, 즉 예를 들면 구조/하드웨어 구현에서 전체적으로 병렬, 부분적으로 병렬, 또는 직렬인지와 관계없이 응용가능하다.
디지털 통신 시스템의 목표는 오류 없이, 또는 허용가능하게 낮은 오류율로 한 위치 또는 하부 시스템에서 다른 곳으로 디지털 데이터를 송신하는 것이다. 도 1에 도시된 것 같이, 데이터는 자기 매체, 유선, 무선, 섬유, 구리, 및 그 밖의 유형의 매체들과 같은 다양한 광범위하게 다양한 통신 시스템들의 다양한 통신 채널들상에서 송신될 수 있다.
도 1 및 도 2는 각각 통신 시스템들(100, 200)의 다양한 실시예들을 예시한 것이다.
도 1을 참조하면, 이 실시예의 통신 시스템(100)은 통신 채널(199)을 포함하는데, 상기 통신 채널(199)은, 상기 통신 채널(199)의 한쪽 끝에 위치하게 된 한 통신 장치(110)(인코더(114)를 가지는 송신기(112)와, 디코더(118)를 가지는 수신기(116)를 포함함)를, 상기 통신 채널(199)의 다른 쪽 끝에 위치하게 된 다른 통신 장치(120)(이는 인코더(128)를 가지는 송신기(126)와, 디코더(124)를 가지는 수신기(122)를 포함함)에 통신가능하도록 결합시킨다. 어떤 실시예에서는, 상기 통신 장치들(110, 120)의 각각은 단지 한 송신기 또는 한 수신기만을 포함할 수 있다. 상기 통신 채널(199)을 구현할 수 있는 매체에는 다양한 서로 다른 종류들(예를 들어, 위성 접시들(132, 134)을 이용하는 위성 통신 채널(130), 통신탑들(142, 144)과 국지 안테나들(152, 154)을 이용하는 무선 통신 채널(140), 유선 통신 채널(150), 및 전기 광 인터페이스(electrical to optical(E/O) interface)(162) 및 광 전기 인터페이스(O/E interface)(164)를 이용하는 광섬유 통신 채널(160) 등)이 있다. 추가적으로, 하나 이상의 여러 형태의 매체들이 함께 구현되고, 서로 인터페이싱되어, 통신 채널(199)을 형성할 수도 있다.
통신 시스템 내에서 원치 않게 발생할 수 있는 전송 오류들을 감소시키고자, 오류 정정 및 채널 코딩 방식(error correction and channel coding schemes)이 종종 이용된다. 일반적으로 말해서, 이러한 오류 정정 및 채널 코딩 방식들은 송신기 측에서는 인코더를, 수신기 측에서는 디코더를 사용하는 것을 생각할 수 있다.
도 2의 통신 시스템(200)을 참조하면, 통신 채널(299)의 송신 측에서는, 정보 비트들(information bits)(201)이 송신기(297)에 제공되며, 이때 상기 송신기(297)는 인코더 및 심볼 매퍼(encoder and symbol mapper)(220)(이는 개별적인 기능 블록들(222, 224)로 각각 존재한다고 볼 수 있다)를 이용하여 이러한 정보 비트들(201)을 인코딩하고, 또한 그럼으로써 이산 값을 가지는 변조 심볼들의 열(sequence of discrete-valued modulation symbos)(203)을 생성하는 것을 수행하도록 동작한다. 상기 이산 값을 가지는 변조 심볼들의 열(203)은 송신 구동부(transmit driver)(230)로 제공되는데, 상기 송신 구동부(230)는 연속 시간 송신 신호(continuous-time transmit signal)(204)를 생성하는 DAC(digital to analog converter)(232)와, 상기 통신 채널(299)에 대해 실질적으로 적합한 상태인 필터링된 연속 시간 송신 신호(filtered continuous-time transmit signal)(205)를 생성하는 송신 필터(transmit filter)(234)를 이용한다. 상기 통신 채널(299)의 수신 측에서는 연속 시간 수신 신호(206)가 AFE(analog front end)(260)에 제공되는데, 상기 AFE(260)는 수신 필터(receive filter)(이는 필터링된 연속 시간 수신 신호(filtered continuous-time receive signal)(207)을 생성한다)와, ADC(analog to digital converter)(264)(이는 이산 시간 수신 신호들(discrete-time receive signals)(208)을 생성한다)를 포함한다. 메트릭 생성기(metric generator)(270)는 심볼 메트릭(symbol metric)(209)을 계산하며, 상기 심볼 메트릭(209)은 디코더(280)에 의해, 상기 이산 값을 가지는 변조 심볼들 및 거기에 포함된 인코딩된 정보 비트들에 대한 최적의 추정치들(best estimates of the discrete-valued modulation symbos and information bits encoded therein)(210)을 만들어 내는 데에 이용된다.
위 실시예들 중 어떤 것에 속하는 디코더들이라도 본 발명의 다양한 측면들 및 실시예들을 포함하도록 구현될 수 있다. 또한, 첨부된 도면들 중 몇몇은, 본 발명의 특정 측면들이나 실시예들에 따라 구현된 장치들, 시스템들, 기능 내지 방법들을 뒷받침하는 데에 이용될 수 있는, 특정한 실시예들을(어떤 것들은 더욱 상세하게) 설명하는 것이다. 본 발명의 특정한 측면들 내지 실시예들에 따라 처리되는 어떤 특정한 형태의 신호는 LDPC 코딩된 신호(LDPC coded signal)이다. 더 상세한 내용이 이어서 제공되기 전에, LDPC 코드들의 일반적인 설명을 제공하겠다.
도 3은 저밀도 패리티 체크(LDPC, low density parity check) 코드 이분형(bipartite) 그래프(300)를 예시한 것이다. 본 기술 분야에서, LDPC 이분형 그래프는 또한 태너 그래프(Tanner graph)라고도 불리기도 한다. LDPC 코드는, 어떤 행렬의 거의 모든 행렬 요소들이 0 들의 값인 이진 패리티 체크(binary parity check) 행렬을 가지는(예를 들어, 이진 패리티 체크 행렬은 희소행렬이다), 그런 코드라고 볼 수 있다. 예를 들어,
Figure 112008032602959-PAT00001
은 블록 길이(block length) N을 가지는 LDPC 코드의 패리티 체크 행렬이라고 볼 수 있다.
LDPC 코드들은 선형 블럭 코드들이고, 이에 따라 모든 코드워드들(codewords)
Figure 112008032602959-PAT00002
의 세트는 패리티 체크 행렬 H의 빈 공간을 채운다.
Figure 112008032602959-PAT00003
LDPC 코드들에 대해, H는 m x n 차원의 희소 이진 행렬(sparse binary matrix)이다. H의 각각의 행은 패리티 체크에 대응하고, 세트 요소
Figure 112008032602959-PAT00004
는 데이터 심볼
Figure 112008032602959-PAT00005
가 패리티 체크
Figure 112008032602959-PAT00006
에 참여한다는 것을 나타낸다. H의 각각의 열은 코드워드 심볼에 대응한다.
각각의 코드워드
Figure 112008032602959-PAT00007
에 대해
Figure 112008032602959-PAT00008
개가 패리티 심볼들인
Figure 112008032602959-PAT00009
개 심볼들이 있다. 이에 따라 코드율 r은 다음과 같이 주어진다.
Figure 112008032602959-PAT00010
행 및 열 무게들(weights)은 각각 H의 주어진 행 또는 열의 다수의 세트 요소들로서 정의된다. H의 세트 요소들은 코드의 성능 요구들을 만족시키기 위해 선택된다. 상기 패리티 체크 행렬의 i 번째 열(column)에 있는 1의 개수는
Figure 112008032602959-PAT00011
라고 표시할 수 있으며, 상기 패리티 체크 행렬의 j 번째 행(row)에 있는 1의 개수는
Figure 112008032602959-PAT00012
라고 표시할 수 있다. 만약 모든 i에 대해서
Figure 112008032602959-PAT00013
이고, 모든 j에 대해서
Figure 112008032602959-PAT00014
이라면, 상기 LDPC 코드는
Figure 112008032602959-PAT00015
정규(regular) LDPC 코드라고 불리며, 그렇지 않은 경우에는 상기 LDPC 코드는 비정규(irregular) LDPC 코드라고 불린다.
LDPC 코드는 아래의 참고 문헌[1]에서 R. Gallager에 의해, 그리고 아래의 참고 문헌[2]에서 M. Luby에 의해 소개되었다.
[1] R. Gallager, Low-Density Parity-Check Codes, Cambridge, MA: MIT Press, 1963
[2] M. G. Luby, M. Mitzenmacher, M. A. Shokrollahi, D.A. Spielman, and V .Stemann, "Practical Loss-Resilient Codes", Proc, 29th Symp. on Theory of Computing, 1997, pp. 150-159.
정규 LDPC 코드는 코드 비트들의 변수(variable)를 나타내는 좌측 편의 노드들(또는 LDPC 코딩된 신호들을 디코딩하는 비트 디코딩 방식에서는 달리 표현하면 "변수 노드들(variable nodes)(또는 "비트 노드들(bit nodes)"(310)이라고 함)과, 체크 방정식들(check equations)(또는 달리 표현하면 "체크 노드들(check nodes)(320)이라고 함)을 나타내는 우측 편의 노드들을 가지는 패리티 체크 행렬을 이용하여, 이분형 그래프(300)와 같이 나타낼 수 있다. 행렬 H로 정의되는 LDPC 코드의 이분형 그래프(300)는, N 개의 변수 노드들(예를 들어 N 개의 비트 노드들)과 M 개의 체크 노드들로 정의될 수 있다. N 개의 변수 노드들(310)의 모든 변수 노드는 비트 노드 vi(312)를 하나 또는 그 이상의 체크 노드들(상기 M 개의 체크 노드들 중에서)에 연결시키는 정확히
Figure 112008032602959-PAT00016
개의 에지들(하나의 예시적인 에지를 참조 번호 330을 이용하여 표시됨)을 가진다. 상기 에지(330)는 특히 비트 노드 vi(312)로부터 체크 노드 cj(322)를 연결시키는 것으로 나타나 있다. dv 에지들의 이러한 개수(dv 314로 표시됨)는 변수 노드 i의 차수(degree of a variable node i)라고 명명될 수 있다. 이와 유사하게, M개의 체크 노드들(320)의 모든 체크 노드는 그 노드를 하나 또는 그 이상의 변수 노드들(다시 말해 비트 노드들)에 연결시키는 정확히
Figure 112008032602959-PAT00017
개의 에지들(dc 324로 표시됨)을 가진다. dc 에지들의 이러한 개수는 변수 노드 j의 차수(degree of a variable node j)라고 명명될 수 있다.
변수 노드 vi(또는 비트 노드 bi)(312)와 체크 노드 cj(322) 사이의 에지(330)는 e=(i,j)로서 정의될 수 있다. 그러나, 반면에, 주어진 에지 e=(i,j)에 대해, 상기 에지의 노드들은 위와 다르게 e=(v(e),c(e))(또는 e=(b(e),c(e))와 같이 표현될 수 있다. 대안적으로, 그래프의 에지들은 H의 세트 요소들에 대응하고, 여기서 세트 요소
Figure 112008032602959-PAT00018
는 에지가 패리티 체크 노드
Figure 112008032602959-PAT00019
와 비트(예를 들면 변수) 노드
Figure 112008032602959-PAT00020
를 연결하는 것을 나타낸다.
주어진 변수 노드 vi (또는 비트 노드 bi)에 대해, 상기 노드 vi(또는 비트 노드 bi)에서 발생하는 에지들의 집합을
Figure 112008032602959-PAT00021
(또는
Figure 112008032602959-PAT00022
)라고 정의할 수 있다. 이때, 이들 에지들은 비트 에지(bit
edges)라고 명명될 수 있으며, 이들 비트 에지들에 상응하는 메시지들(messages)을 비트 에지 메시지들(bit edge messages)이라고 할 수 있다.
주어진 체크 노드 cj에 대해, 상기 노드 cj에서 발생하는 에지들의 집합을
Figure 112008032602959-PAT00023
라고 정의할 수 있다. 이들 에지들은 체크 에지들(check edges)이라고 할 수 있으며, 이들 체크 에지들에 상응하는 메시지들을 체크 에지 메시지들(check edge messages)이라고 할 수 있다. 계속하자면, 이로부터 파생되는 결과는
Figure 112008032602959-PAT00024
(또는
Figure 112008032602959-PAT00025
) 및
Figure 112008032602959-PAT00026
가 될 것이다.
일반적으로 말해서, 이분형 그래프를 통해 표현될 수 있는 코드들은 그래프 코드로써 특징을 나타낼 수 있다. 비정규 LDPC 코드도 역시 이분형 그래프를 이용하여 설명될 수 있음을 주목할 필요가 있다. 그렇지만, 비정규 LDPC 코드 내에 있는 각 노드들의 집합의 '차수(degree)'는 어떤 분포(distribution)에 따라 선택될 수 있다. 따라서, 어떤 비정규 LDPC 코드에서 두 개의 서로 다른 변수 노드들
Figure 112008032602959-PAT00027
Figure 112008032602959-PAT00028
에 대해,
Figure 112008032602959-PAT00029
Figure 112008032602959-PAT00030
과 같지 않을 수 있다. 이러한 관계는 또한 어느 두 체크 노드들에 대해서도 유지된다. 비정규 LDPC 코드들의 개념은 원래 위에서 언급한 참고 문헌[2] 내에서 M. Luby 외 다수에 의해 도입되었다.
일반적으로, LDPC 코드의 그래프를 이용하여, 위에서 언급한 M. Luby 외 다수의 참고 문헌[2] 내에서, 그리고 또한 다음의 참고 문헌[3]에서 설명된 바와 같이, LDPC 코드의 파라미터들은 차수 분포(degree of distribution)에 의해 정의될 수 있다.
[3] T.J. Richardson 및 R. L. Urbanke, "The capacity of low-density parity-check code under messagepassing decoding," IEEE Trans. Inform. Theory, Vol. 47, No.2, Feb.2001, pp. 599-618.
이러한 분포는 다음과 같이 설명될 수 있다.
Figure 112008032602959-PAT00031
가 차수 i를 갖는 변수 노드들로부터 발산하는 에지들 중 일부를 나타내고,
Figure 112008032602959-PAT00032
는 차수 i를 갖는 체크 노드들로부터 발산하는 에지들 중 일부를 나타낸다고 하자. 그러다면, 차수 분포 쌍(degree distribution pair)
Figure 112008032602959-PAT00033
은 다음과 같이 정의된다.
Figure 112008032602959-PAT00034
Figure 112008032602959-PAT00035
.
이때,
Figure 112008032602959-PAT00036
Figure 112008032602959-PAT00037
은 각각 변수 노드들 및 체크 노드들의 최대 차수들을 의미한다.
본 명세서에 설명된 예시적인 실시예들의 다수가 정규 LDPC 코드의 예들을 이용하고 있지만, 본 발명의 일정 형태들 및 실시예들은 또한 정규 LDPC 코드들과 비정규 LDPC 코드들 양자 모두를 수용하여 동작할 수 있음을 주목할 필요가 있다.
또한 본원에 기재된 다수의 실시예들은 "비트 노드" 및 "비트 에지 메시지", 또는 이들의 균등물의 기술을 사용한다. 종종 LDPC 디코딩 기술에서, "비트 노드" 및 "비트 에지 메시지"는 다르게는 "변수 노드" 및 "변수 에지 노드"로서 언급되고, 여기서 "비트 값들(또는 변수 값들)은 추정되도록 시도되는 값들이다. 어느 한쪽 기술도 본원 발명의 특정 측면에 따라 적용될 수 있다.
도 4는 LDPC 디코딩 기능(400)의 실시예를 나타낸다. m 비트 신호열을 갖는 LDPC 코딩 신호의 디코딩을 수행하기 위해, 이 도면의 기능이 적용될 수 있다. 일반적으로 말해서, 연속 시간 신호는 도면 부호 401에 의해 도시된 것과 같이 통신 채널로부터 수신된다. 통신 채널은 유선 통신 채널, 무선 통신 채널, 광섬유 통신 채널, HDD의 판독 채널, 또는 LDPC 코드를 사용하여 코딩된 연속 시간 신호를 전달가능한 그밖의 다른 유형의 채널에 제한되지 않지만 포함하는 임의의 종류의 채널일 수 있다.
AFE(analog front-end; 아날로그 전단; 410)는 연속 시간 신호상에서 임의의 초기 프로세싱(예를 들면, 임의의 하나 또는 그 이상의 필터링(아날로그 및/또는 디지털 필터링), 이득 조정 등), 및 디지털 샘플링을 수행하는 것에 따라 이산 시간 신호(411)를 얻도록 동작가능하다. 이 이산 시간 신호(411)는 대안적으로 디지털 신호, 기저대역 신호, 또는 공지 기술의 다른 적절한 것으로 언급될 수 있다. 종종 이산 시간 신호(411)는 신호의 I, Q(In-phase(동위상), Quadrature(직교))값으로 나누어진다.
메트릭 생성기(metric generator; 420)는 이산 시간 신호(411; 예를 들면 I, Q 값을 포함할 수 있는)를 수신하고, 대응하는 비트 메트릭 및/또는 이산 시간 신호(411)내의 수신된 값들에 대응하는 LLR들(log likeligood ratios; 421)을 계산하도록 동작가능하다. 일부 실시예들에서, 이들 비트 메트릭/LLR 심볼 메트릭들(421) 의 계산은 2단계 절차이고, 여기서 첫 번째로 메트릭 생성기(420)는 이산 시간 신호(411)의 심볼들에 대응하는 심볼 메트릭들을 계산하고, 이후에 메트릭 생성기는 두 번째로 이 심볼 메트릭들을 비트 메트릭들/LLR들(421)로 분해하도록 동작가능하다. 이 비트 메트릭들/LLR들(421)은 이후에 LDPC 코딩 신호의 반복적 디코딩 프로세싱(435; 예를 들면 비트 엔진(430) 및 체크 엔진(440)에 의해 수행됨)을 수행할 때 적용되는 비트 에지 메시지들을 초기화하도록(예를 들면, 도면 부호 429에 의해 도시됨) 비트 엔진(430)에 의해 적용되도록 동작가능하다.
대응하는 수신된 심볼
Figure 112008032602959-PAT00038
의 LLR인
Figure 112008032602959-PAT00039
의 값으로 각각의 변수 노드 i에 대한 비트 에지 메시지들의 초기화는 다음과 같이 정의된다.
Figure 112008032602959-PAT00040
또한, 비트 노드들에서, 비트 엔진(430)은 가장 최근에 업데이트된 비트 엔진 메시지들을 사용하여 비트들의 대응하는 소프트 정보(soft information; 예를 들면 432로 도시됨)를 계산하도록 동작가능하다. 그러나, 다중 디코딩 반복들이 수행되는 것이 통상적이며, 따라서 초기화된 비트 에지 메시지들은 체크 엔진(440)으로 전달되고, 여기서 제 1 디코딩 반복 동안 체크 엔진(440)은 체크 에지 메시지들을 업데이트하기 위해 초기화된 비트 에지 메시지들을 적용하도록 동작가능하다.
각각의 체크 노드에서, LDPC 디코딩 프로세싱은 착신 메시지들의 부호상에서 패리티 체크 결과(XOR)를 형성한다. 이것은 패리티 체크 결과를 갖는 대응하는 착신 메시지들의 부호의 XOR로서 각각의 발신 메시지의 부호를 찾는 것에 의해 동작 한다.
디코딩 프로세싱은 이후에 이하 (4)의 식에 따라 체크 노드 j로부터 비트(예를 들면, 변수) 노드 i로 발신 메시지 신뢰도를 계산한다.
Figure 112008032602959-PAT00041
일부의 바람직한 실시예에서, 이 계산은 아래 (5) 식과 같이 곱셈을 합산으로 변환하는 로그 영역에서 수행된다.
Figure 112008032602959-PAT00042
그 후에, 비트 엔진(430)은 체크 엔진(440)으로부터 업데이트된 에지 메시지들(예를 들면, 도시된 체크 에지 메시지들(441))을 수신하고, 비트 에지 메시지들을 업데이트하기 위해 상기 업데이트된 에지 메시지들을 적용하도록 동작가능하다. 또한, 비트 엔진(430)은 LDPC 디코딩에 따라 비트 에지 메시지들의 업데이트를 수행할 때 메트릭 생성기(420)로부터 수신된 비트 메트릭들/LLR들(421)을 적용하도록 동작가능하다. 또한, 이 업데이트된 체크 에지 메시지들은(441) 이후에 비트 노드들로(예를 들면, 비트 엔진(430)으로) 다시 전달되고, 여기서 비트들의 소프트 정보(432)는 비트 메트릭들/LLR들(421) 및 체크 에지 메시지들의 현재 반복 값들을 사용하여 계산된다. 각각의 비트(예를 들면, 변수) 노드에서, 소프트 정보의 계산은 체크 노드로부터의 착신 메시지들(예를 들면, 체크 에지 메시지들(441))과 수신 된 심볼의 LLR의 합을 형성하는 것을 포함한다. 디코딩된 비트
Figure 112008032602959-PAT00043
는 합의 부호에 의해 주어진다. 이후의 디코더 반복을 위해 각각의 발신 메시지는 합에서 대응하는 착신 메시지를 빼는 것에 의해 계산된다. 반복 디코딩 프로세싱(435)을 계속하기 위해, 이 비트 에지 메시지들(431)은 업데이트된 이후에 체크 엔진(440)으로 전달된다.
다른 디코딩 반복이 수행될 수 있고, 체크 노드들에서 체크 엔진(440)은 이후에 비트 노드들로부터 보내진 업데이트된 비트 에지 메시지들(431)을 수신하고, 이에 따라 체크 에지 메시지들을 업데이트하도록 동작가능하다. 업데이트된 체크 에지 메시지들(441)은 이후에 비트 노드들(예를 들면 비트 엔진(430))로 다시 전달되고, 여기서 비트들의 소프트 정보(432)는 비트 메트릭들/LLR들(421), 및 체크 에지 메시지들의 현재 반복 값들을 사용하여 계산된다. 그 후에, 비트들의 바로 계산된 소프트 정보(432)를 이용하여, 비트 엔진(430)은 다시 체크 에지 메시지들의 이전 값들을 (바로 이전 반복으로부터) 사용하여 비트 에지 메시지들을 업데이트하도록 동작가능하다. 반복 프로세싱(435)은 디코딩되는 신호를 인코딩하도록 적용된 LDPC 코드 2분형 그래프에 따라 비트 노드들과 체크 노드들 사이에서 계속된다.
비트 노드 엔진(430)과 체크 노드 엔진(440)에 의해 수행된 반복 디코딩 프로세싱 단계들은 정지 기준이 도면 부호(461)에 의해 도시된 것과 같이 부합될 때까지(예를 들면, 미리 정해지거나 판단된 수의 반복들이 수행되고, 결국 LDPC 코드의 신드롬(syndrome)은 모두 0(예를 들면 모든 패리티 체크들이 만족된다)이거나, 및/또는 다른 정지 기준이 만족된다) 반복된다. LDPC 디코딩이 정지될 수 있는 다 른 가능한 방법은 LDPC 코드워드인
Figure 112008032602959-PAT00044
의 현재 추정이 다음 관계식을 만족할 때이다.
Figure 112008032602959-PAT00045
소프트 정보(432)는 각각의 디코딩 반복 동안 비트 엔진(430)내에서 생성될 수 있다. 이 실시예에서, 이 소프트 정보(432)는 하드 리미터(hard limiter; 450)에 제공될 수 있고, 여기서 경판정(hard decision)들이 만들어질 수 있고, 하드 정보(예를 들면, 하드/최상 추정(451))는 LDPC 코드의 신드롬(syndrome)이 모두 0인지 판단하도록 동작가능한 신드롬 계산기(460)에 제공될 수 있다. 다시 말해서, 신드롬 계산기(460)는 LDPC 코드와 관련된 각각의 신드롬이 LDPC 코드워드의 현재 추정에 기초하여 0인지 판단하도록 동작가능하다.
신드롬들이 0이 아닐 때, 반복 디코딩 프로세싱(435)은 각각의 비트 엔진(430)과 체크 엔진(440) 사이에서 비트 에지 메시지들과 체크 에지 메시지들을 적절히 업데이트 및 전달하는 것에 의해 다시 계속될 수 있다. 결국 이 반복 디코딩 프로세싱 단계들이 수행되고, 그 후에 비트들의 하드/최상 추정들(451)은 소프트 정보(432)에 기초하여 출력된다.
또한, 양호한 디코딩 성능을 위해, 그래프의 주기들의 길이는 가능한 길다는 것이 중요하는 것을 주지해야 한다. 길이 4의 주기와 같은 짧은 주기들은 메시지 전달 디코딩 접근(message passing decoding approach)의 성능을 LDPC 코딩된 신호를 디코딩하는 것으로 저하시킬 수 있다.
메시지 전달 디코딩 접근의 계산은 쌍곡선 및 대수적 함수들(예를 들면, 식 (5)를 참조)을 포함하는 한편, 이 함수들의 하드웨어 구현은 대안적으로 LUT(look-up table)에 의해 근사화(approximated)될 수 있고, 또는 직접적으로 논리 게이트들로 구현된다. 산수적 계산은 덧셈, 뺄셈, 및 XOR 연산들만을 포함한다. 고정 소수점 구현에서 요구되는 비트들의 수는 요구되는 코딩 성능, 디코더 변환 속도, 및 에러 플로어(error floor)가 참조 문헌 [4]에 기재된 것과 같이 억제되어야 하는지 여부에 의해 판단된다.
[4] Zhang, T., Wang, Z., 및 Parhi, K., "On finite precision implementation of low density parity check codes decoder," 오스트레일리아 시드니의 ISCAS 발간 2001년 5월, 202-205 pp.
LDPC 코드들을 디코딩하기 위한 메시지 전달 디코딩 프로세싱을 구현하기 위한 주요 과제들 중 하나는 메시지들의 전달을 관리하는 것이다. 일부 핵심적인 문제들은 교환되어야만 하는 다수의 메시지들과 메시지들의 요구되는 접속 유형을 포함한다.
평균 열 무게(weight)
Figure 112008032602959-PAT00046
가 있는 LDPC 코드의 메시지 대역폭
Figure 112008032602959-PAT00047
는 참조 문헌 [5]에 의해 주어지고, 아래와 같이 기재된다.
[5] Andrew J. Blanksby 및 Chris J. Howland, "A 690-mW 1-Gb/s 1024-b, rate-1/2 low-density parity-check code decoder,", IEEE 저널의 Solid-State Circuits Vol. 37, No. 3, 2002년 3월, pp 404-412.
Figure 112008032602959-PAT00048
여기서 W는 각각의 메시지를 나타내기 위해 사용된 비트들의 수이고, N은 디코더 반복의 수이며, T는 비트/초의 목표 코딩된 처리량이며, 인자 2는 변수 및 체크 메시지들을 모두 포함한다. 메시지 대역폭은 코드 n의 길이에 독립적이라는 것을 주지해야 한다. 예를 들면, 10G Base-T(802.3an) 응용에서 코딩된 비트 처리량은 6.4 Gb/s이고, 평균 열 무게는 6이며, 8 비트 메시지들이고 20번의 디코더 반복을 가정할 때, 요구되는 메시지 대역폭은 12,288 Gbit/s(또는 1536 Gbyte/s)이다.
높은 메시지 대역폭은 필요한 판독/기록 속도를 얻기 위해 요구되는 메모리 구조에서 복잡도로 해석한다. 중간 처리량 응용에서 메모리들의 다중 뱅크들(banks), 및 큰 멀티플렉서들이 참조 문헌 [6]에 기재된 것과 같이 필요한 한편, 높은 처리량의 응용들에서 메모리들은 너무 느리므로, 메시지들은 레지스터들 내에 저장되어야 한다. 높은 메시지 대역폭은 또한 높은 동적 전력 소비에 대응한다.
[6] Yeo., E, Pakzad, P., Nikolic, B., 및 Anantharam, V., "VLSI architectures for iterative decoders in magnetic recording channels,", IEEE의 Transactions on Magnetics, Vol. 37, No.2, 2001, pp 748-755.
양호한 코딩 성능을 얻는 LDPC 코드들을 위해, 코드 구조는 랜덤(random) 또는 복합 순열(complex permutation)에 기초한다. 이는 메시지 접속 유형에 정규성의 부족을 일으킨다. 메모리 기반 구조에서 상호접속된 구조 및 일정은 개선되어야 만 하며 일정 자체를 위한 스토리지 요구사항은 참조 문헌 [7]에 기재된 바와 같이 중요할 수 있다. 메시지들이 유선 및 레지스터들로서 표현되는 병렬 또는 부분적으로 병렬 구조에서, 코드 구조는 상기 인용된 참조 문헌 [5]에 기재된 것과 같이 실질적인 라우팅 복잡도(routing complexity)를 일으킨다.
[7] Shimizu, K., Ishikawa, T., Togawa, N., Ikenage, I., 및 Goto, S., "Partially-parallel LDPC decoder based on high-efficiency message-passing algorithm," 2005 International Conference on Computer Design(ICCD'05) 발행, 2005년, 8페이지.
식 (6)을 보면, 열 무게는 필요한 코딩 성능에 부합하도록 요구되는 코드 구조에 의해 판단되고, 처리량은 기준에 의해 고정된다. 메시지 대역폭을 감소시키기 위해 잠재적으로 변화될 수 있는 단지 2개의 파라미터들은 디코더 반복의 횟수, 및 각각의 메시지를 표현하기 위해 사용된 비트들의 수이다.
디코더 반복의 평균 횟수는 알고리즘이 코드워드를 수정하기 위해 변환되었는지 판단하기 위해 각각의 반복 후에 검사 식 (1)에 의해 감소될 수 있다. 그러나, 만일 코딩 성능에 아무런 손실이 없다면 디코더는 계속해서 최악의 경우를 위해 최대 반복 횟수를 구현하도록 설계되어야만 한다.
각각의 메시지들을 구현하는데 요구되는 비트들의 수를 감소시키기 위한 기술들은 코딩 성능의 임의의 손실을 최소화하고, 디코더 변환 속도를 감소시키지 않고, 참조 문헌 [8]에 기재된 에러 플로어를 도입하지 않아야만 한다. 실제 응용들에서 사용된 대부분의 LDPC 코드들의 상대적으로 짧은 블럭 길이 n은, 짧은 주기들 이 최적 기준에 미달하는 메시지 전달 디코딩 알고리즘을 나타내는 것이 필연적이라는 것을 의미한다. 메시지들이 표현되는 정확도를 감소시키는 것은 이 문제를 더욱 악화시키며, 정확한 코드워드로의 디코더 변환을 방해하며, 대신에 한정된 주기로 갇히게 된다.
[8] Manyun Shen, Huaniug Niu, Hui Liu, 및 J. A. Ritcey, J. A., "Finite Precision Implementation of LDPC coded M-ary modulation over wireless channels,", Conference Record of the Thirty-Seventh Asilomar Conference on Signals, Systems and Computers, 2003, 발행일: 2003년 11월 9-12일, Vol: 1, pp. 114-118, Vol.1 ISSN:ISBN:0-7803-8104-1.
도 5 내지 도 9는 LDPC 디코딩 기능의 적어도 일부의 대안적인 실시예를 나타낸다. 이 실시예들은 도 4의 LDPC 디코딩 기능(400)과 비교할 때 적어도 일부 유사한 형태를 갖는다.
도 5의 LDPC 디코딩 기능(500)을 참조하면, 이 실시예는 또한 통신 채널(501)로부터 연속 시간 신호를 수신한다. 그 후에, AFE(510)는 이산 시간 신호(511)를 생성하도록 동작가능하다.
그러나, 이산 시간 신호(511)를 사용하여 비트 메트릭들/LLR들을 계산할 때, 메트릭 생성기(520)는 수정된 비트 메트릭들/LLR들(521)을 계산하도록 동작가능하다. 이 수정된 비트 메트릭들/LLR들(521)은 이전 실시예의 비트 메트릭들/LLR들(421)과 다르고, 메트릭 생성기(520)는 비트 메트릭들/LLR들을 계산하도록 동작가능하고(예를 들면, 이전 실시예와 유사한 방식으로), 하지만 메트릭 생성기(520) 는 원래의 계산된 비트 메트릭들/LLR들을 수정하도록 동작가능하고, 이에 따라 수정된 비트 메트릭들/LLR들(521)을 생성한다. 이 수정은 임의의 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단을 사용하여 수행될 수 있다.
이 수정된 비트 메트릭들/LLR들(521)은 이후에 비트 엔진(530)에 의해 LDPC 코딩 신호의 반복 디코딩 프로세싱(535; 예를 들면 비트 엔진(530)과 체크 엔진(530)에 의해 수행됨)을 수행할 때 적용되는 비트 에지 메시지들을 초기화(529)하기 위해 비트 엔진(530)에 의해 적용된다.
또한, 비트 노드들에서, 비트 엔진(530)은 가장 최근에 업데이트된 비트 에지 메시지들을 사용하여 비트들의 대응하는 수정된 소프트 정보(532)를 계산하도록 동작가능하다. 이 수정된 소프트 정보(532)는 이전 실시예의 소프트 정보(432)와 다른 것을 볼 수 있고, 여기서 수정된 소프트 정보(532)는 임의의 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단에 따라 일부 수정을 할 수 있다.
다시 이전 실시예와 같이, 다중 디코딩 반복이 수행되는 것이 통상적이며, 따라서 초기화된(및 원하면 수정된) 비트 에지 메시지들은 체크 엔진(540)으로 전달되고, 여기서 첫 번째 디코딩 반복 동안 체크 엔진(540)은 체크 에지 메시지들을 업데이트하기 위해 초기화된(및 때때로 수정된) 비트 에지 메시지들을 적용하도록 동작가능하다. 그 후에, 비트 엔진(530)은 체크 엔진(540)으로부터 수정된 업데이트된 에지 메시지들(예를 들면, 수정된 체크 메시지(541))을 수신하도록 동작가능 하다. 수정된 체크 에지 메시지(541)는 체크 에지 메시지들이 임의의 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단에 따라 일부 수정을 한 후에 생성된다.
또한, 비트 엔진(530)은 LDPC 디코딩에 따라 비트 에지 메시지들의 업데이트를 수행할 때 메트릭 생성기(520)로부터 수신된 수정된 비트 메트릭들/LLR들(521)을 적용하도록 동작가능하다. 또한, 이 업데이트된 수정된 체크 에지 메시지들(541)은 이후에 비트 노드들(예를 들면, 비트 엔진(530))로 다시 전달되고, 여기서 비트들의 수정된 소프트 정보(532)는 수정된 비트 메트릭들/LLR들(521) 및 체크 에지 메시지들의 현재 반복 값을 사용하여 계산된다. 반복 디코딩 프로세싱(535)을 계속하기 위해, 이 수정된 비트 에지 메시지들(531)은 업데이트된 후에 체크 엔진(540)으로 전달된다. 반복 프로세싱(535)은 디코딩되는 신호를 인코딩하도록 적용된 LDPC 코드 2분형 그래프에 따라 비트 노드들과 체크 노드들 사이에서 계속된다.
비트 노드 엔진(530) 및 체크 노드 엔진(540)에 의해 수행된 반복적 디코딩 프로세싱 단계들은 정지 기준이 도면 부호(561)에 의해 도시된 것과 같이 부합될 때까지(예를 들면, 미리 정해지거나 판단된 수의 반복들이 수행되고, 결국 LDPC 코드의 신드롬(syndrome)은 모두 0(예를 들면 모든 패리티 체크들이 만족된다)이거나, 및/또는 다른 정지 기준이 만족된다) 반복된다.
수정된 소프트 정보(532)는 각각의 디코딩 반복 동안 비트 엔진(530)내에서 생성될 수 있다. 이 실시예에서, 수정된 소프트 정보(532)는 하드 리미터(hard limiter; 550)에 제공될 수 있고, 여기서 경판정들이 만들어질 수 있고, 하드 정보(예를 들면, 하드/최상 추정(551))는 LDPC 코드의 신드롬(syndrome)이 모두 0인지 판단하도록 동작가능한 신드롬 계산기(560)에 제공될 수 있다. 다시 말해서, 신드롬 계산기(560)는 LDPC 코드와 관련된 각각의 신드롬이 LDPC 코드워드의 현재 추정에 기초하여 0인지 판단하도록 동작가능하다.
신드롬들이 0이 아닐 때, 반복 디코딩 프로세싱(535)은 각각의 비트 엔진(530)과 체크 엔진(540) 사이에서 비트 에지 메시지들과 체크 에지 메시지들을 적절히 업데이트 및 전달하는 것에 의해 다시 계속될 수 있다. 결국 이 반복 디코딩 프로세싱 단계들이 수행되고, 그 후에 비트들의 하드/최상 추정들(551)은 소프트 정보(532)에 기초하여 출력된다.
도 5의 실시예는 도 4의 실시예와 적어도 여러 엔진들, 프로세싱 모듈등에서 전달되는 정보가 "수정된" 정보라는 점에서 다르다. 반복해서, 이러한 수정은 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단의 임의의 하나 또는 조합일 수 있다.
도 6의 다음 실시예는 도 5의 실시예에 다소 유사하고, 각각의 엔진, 프로세싱 모듈 등에서 계산된 각각의 유형의 정보에 대해 정보(수정은 없음) 또는 정보의 수정된 버전 중 어느 하나가 디코딩 프로세싱에 사용하기 위한 차후의 엔진, 프로세싱 모듈 등에 전달될 수 있다는 차이를 적어도 갖는다. 다시 말해서, 도 6의 실 시예에서 정보 또는 각각의 엔진들, 프로세싱 모듈들 등으로부터 수정된 정보의 선택적 공급이 있다.
도 6의 LDPC 디코딩 기능(600)을 참조하면, 이 실시예는 또한 통신 채널로부터 연속 시간 신호를 수신한다(601). 그 후에 , AFE(610)는 이산 시간 신호(611)를 생성하도록 동작가능하다.
그러나, 이산 시간 신호(611)를 사용하여 비트 메트릭들/LLR들을 계산할 때, 메트릭 생성기(620)는 이전 실시예들 중 하나의 메트릭들/LLR들 및 수정된 비트 메트릭들/LLR들 중 하나 또는 모두를 계산하도록 동작가능하다. 다시, 이 수정 비트 메트릭들/LLR들(621)은 이전 실시예들 중 하나의 비트 메트릭들/LLR들(421)과 다르며, 메트릭 생성기(620)는 비트 메트릭들/LLR들을 계산하도록 동작가능하고(예를 들면, 이전 실시예와 유사한 방식으로), 하지만 메트릭 생성기(620)는 원래의 계산된 비트 메트릭들/LLR들을 수정하도록 동작가능하고, 이에 따라 수정된 비트 메트릭들/LLR들(621)을 생성한다. 이 수정은 임의의 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단을 사용하여 수행될 수 있다.
이후에 비트 메트릭들/LLR들 및/또는 수정된 비트 메트릭들/LLR들(621)은 LDPC 코딩 신호의 반복 디코딩 프로세싱(635; 예를 들면 비트 엔진(630) 및 체크 엔진(640)에 의해 수행됨)을 수행할 때, 적용된 비트 에지 메시지들을 초기화하도록(예를 들면, 629) 비트 엔진(630)에 의해 적용된다. 일부 실시예들에서, 메트릭 생성기(620)는 계산 리소스(resources), 시간, 또는 어떤 다른 시스템 리소스를 줄 이기 위해 단지 하나의 비트 메트릭들/LLR들 또는 수정된 비트 메트릭들/LLR들만(621)(즉, 비트 메트릭들/LLR들만 또는 수정된 비트 메트릭들/LLR들만) 계산하도록 구현될 수 있다.
또한, 비트 노드들에서, 비트 엔진(630)은 가장 최근 업데이트된 비트 에지 메시지들(및/또는 수정된 비트 에지 메시지들)을 사용하여 비트들의 대응하는 소프트 정보 및 수정된 소프트 정보(예를 들면, 632) 중 하나 또는 모두를 계산하도록 동작가능하다.
다시 이전 실시예들과 같이, 다중 디코딩 반복이 수행되는 것이 통상적이며, 따라서 초기화된(및 원하면 수정된) 비트 에지 메시지들은 체크 엔진(640)으로 전달되고, 여기서 첫 번째 디코딩 반복 동안 체크 엔진(640)은 체크 에지 메시지들을 업데이트하기 위해 초기화된(및 때때로 수정된) 비트 에지 메시지들을 적용하도록 동작가능하다. 그 후에, 비트 엔진(630)은 체크 엔진(640)으로부터 수정된 업데이트된 에지 메시지들(예를 들면, 수정된 체크 메시지(641))을 수신하도록 동작가능하다. 수정된 체크 에지 메시지(641)는 체크 에지 메시지들이 임의의 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단에 따라 일부 수정을 한 후에 생성된다.
또한, 비트 엔진(630)은 LDPC 디코딩에 따라 비트 에지 메시지들의 업데이트를 수행할 때 메트릭 생성기(620)로부터 수신된 수정된 비트 메트릭들/LLR들(621) 및/또는 비트 메트릭들/LLR들을 적용하도록 동작가능하다. 또한, 이 업데이트된 수 정된 체크 에지 메시지들(641)은 이후에 비트 노드들(예를 들면, 비트 엔진(630))로 다시 전달되고, 여기서 비트들의 소프트 정보 및/또는 수정된 소프트 정보(632)는 비트 메트릭들/LLR들 및/또는 수정된 비트 메트릭들/LLR들(621) 및 체크 에지 메시지들의 현재 반복 값을 사용하여 계산된다. 반복 디코딩 프로세싱(635)을 계속하기 위해, 이 수정된 비트 에지 메시지들(631)은 업데이트된 후에 체크 엔진(640)으로 전달된다. 반복 프로세싱(635)은 디코딩되는 신호를 인코딩하도록 적용된 LDPC 코드 2분형 그래프에 따라 비트 노드들과 체크 노드들 사이에서 계속된다.
도면부호(661)에 의해 도시된 것과 같이, 비트 노드 엔진(630) 및 체크 노드 엔진(640)에 의해 수행된 반복적 디코딩 프로세싱 단계들은 정지 기준이 부합될 때까지(예를 들면, 미리 정해지거나 판단된 수의 반복들이 수행되고, 결국 LDPC 코드의 신드롬(syndrome)은 모두 0(예를 들면 모든 패리티 체크들이 만족된다)이거나, 및/또는 다른 정지 기준이 만족된다) 반복된다.
소프트 정보 및/또는 수정된 소프트 정보(632)는 각각의 디코딩 반복 동안 비트 엔진(630)내에서 생성될 수 있다. 이 실시예에서, 소프트 정보 및/또는 수정된 소프트 정보(632)는 하드 리미터(hard limiter; 650)에 제공될 수 있고, 여기서 경판정들이 만들어질 수 있고, 하드 정보(예를 들면, 하드/최상 추정(651))는 LDPC 코드의 신드롬(syndrome)이 모두 0인지 판단하도록 동작가능한 신드롬 계산기(660)에 제공될 수 있다. 다시 말해서, 신드롬 계산기(660)는 LDPC 코드와 관련된 각각의 신드롬이 LDPC 코드워드의 현재 추정에 기초하여 0인지 판단하도록 동작가능하다.
신드롬들이 0이 아닐 때, 반복 디코딩 프로세싱(635)은 각각의 비트 엔진(630)과 체크 엔진(640) 사이에서 비트 에지 메시지들과 체크 에지 메시지들을 적절히 업데이트 및 전달하는 것에 의해 다시 계속될 수 있다. 결국 이 반복 디코딩 프로세싱 단계들이 수행되고, 그 후에 비트들의 하드/최상 추정들(651)은 소프트 정보(632)에 기초하여 출력된다.
도 7 내지 도 9의 실시예들과 일부의 이전 실시예들을 비교할 때, AFE, 하드 리미터, 또는 신드롬 계산기가 명시적으로 기재되어있지 않는 한편, 이러한 요소들이 본원 발명의 사상과 범주를 벗어나지 않고 명백히 포함될 수 있다는 것을 주지해야 한다.
도 7의 LDPC 디코딩 기능(700)을 참조할 때, 이 실시예는 또한 통신 채널로부터 연속 시간 신호를 수신할 수 있고, AFE는 비트 메트릭들/LLR들(721)를 계산하도록 동작가능한 메트릭 생성기(720)로 제공되는 이산 시간 신호를 생성하도록 구현될 수 있다. 동작 파라미터 수정 모듈(722)은 비트 메트릭들/LLR들(721)을 처리하고, 원래의 계산된 비트 메트릭들/LLR들(721)을 수정하여, 이에 따라 수정된 비트 메트릭들/LLR들(723)을 생성하도록 구현될 수 있고 동작가능하다. 동작 파라미터 수정 모듈(722)에 의해 수행된 수정은 임의의 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단에 따른 임의의 수정일 수 있다.
수정된 비트 메트릭들/LLR들(723)은 이후에 LDPC 코딩 신호의 반복 디코딩 프로세싱(예를 들면, 비트 엔진(730) 및 체크 엔진(740)에 의해 수행됨)을 수행할 때 적용된 비트 에지 메시지들(예를 들면, 731)을 초기화하도록 비트 엔진(730)에 의해 적용된다.
또한, 비트 노드들에서, 비트 엔진(730)은 가장 최근에 업데이트된 비트 에지 메시지들(및/또는 수정된 비트 에지 메시지들)을 사용하여 비트들의 소프트 정보(예를 들면, 736)를 계산하도록 동작가능하다.
다시 이전 실시예와 같이, 다중 디코딩 반복이 수행되는 것이 통상적이며, 따라서 초기화된 비트 에지 메시지들(731)은 동작 파라미터 수정 모듈(732)로 전달되고, 비트 에지 메시지들(731)을 처리하고, 원래의 계산된 비트 에지 메시지들(731)을 수정하여, 이에 따라 수정된 비트 에지 메시지들(733)을 생성하도록 구현될 수 있고 동작가능하다. 동작 파라미터 수정 모듈(732)에 의해 수행된 수정은 임의의 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단에 따른 임의의 수정일 수 있다.
수정된 비트 에지 메시지들(733)은 체크 엔진(740)으로 전달되고, 여기서 첫 번재 디코딩 반복 동안 체크 엔진(740)은 체크 에지 메시지들을 업데이트하기 위해 초기화되고 수정된 비트 에지 메시지들(733)을 적용하도록 동작가능하다. 이 업데이트된 체크 에지 메시지들(741)은 동작 파라미터 수정 모듈(742)로 전달되고, 체크 에지 메시지들(741)을 처리하고, 원래의 계산된 체크 에지 메시지들(741)을 수정하여, 이에 따라 수정된 비트 에지 메시지들(743)을 생성하도록 구현될 수 있고 동작가능하다. 동작 파라미터 수정 모듈(742)에 의해 수행된 수정은 임의의 스케일 링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단에 따른 임의의 수정일 수 있다.
그 후에, 비트 엔진(730)은 수정된 체크 에지 메시지들(743)을 수신하고, 비트 에지 메시지들을 업데이트하도록 동작가능하다.
또한, 비트 엔진(730)은 LDPC 디코딩에 따라 비트 에지 메시지들의 업데이트를 수행할 때 수정된 비트 메트릭들/LLR들(733)을 적용하도록 동작가능하다. 또한, 이 수정된 체크 에지 메시지들(743)은 이후에 비트들의 소프트 정보(736)가 수정된 비트 메트릭들/LLR들(723) 및 체크 에지 메시지들의 현재 반복 값을 사용하여 계산되는 비트 노드들(예를 들면, 비트 엔진(730))로 다시 전달된다. 반복 프로세싱은 디코딩된 신호를 인코딩하기 위해 적용된 LDPC 코드 2분형 그래프에 따라 비트 노드들 및 체크 노드들 사이에서 계속된다.
비트 노드 엔진(730) 및 체크 노드 엔진(740)에 의해 수행된 반복 디코딩 프로세싱 단계들은 정지 기준이 만족될때까지 반복된다.
소프트 정보(736)는 각각의 디코딩 반복들 동안 비트 엔진(730)내에서 생성될 수 있다. 이 실시예에서, 이 소프트 정보(736)는 하드 리미터(hard limiter)에 제공될 수 있고, 여기서 경판정들이 만들어질 수 있고, 하드 정보는 LDPC 코드의 신드롬(syndrome)이 모두 0인지 판단하도록 동작가능한 신드롬 계산기에 제공될 수 있다.
도 8의 LDPC 디코딩 기능(800)을 참조할 때, 이 실시예는 도 7의 이전 실시예와 다소 유사하고, 임의의 "동작 파라미터 수정 모듈" 이 내장되거나, 일부분, 다른 모듈, 기능 블럭 등인 것에서 적어도 차이가 있다.
도 8의 실시예는 또한 통신 채널로부터 연속 시간 신호를 수신할 수 있고, AFE는 비트 메트릭들/LLR들을 계산하도록 동작가능한 메트릭 생성기(820)로 제공되는 이산 시간 신호를 생성하도록 구현될 수 있다. 동작 파라미터 수정 모듈(822)은 비트 메트릭들/LLR들을 처리하고, 원래의 계산된 비트 메트릭들/LLR들을 수정하여, 이에 따라 수정된 비트 메트릭들/LLR들(823)을 생성하도록 구현될 수 있고 동작가능하다. 동작 파라미터 수정 모듈(822)에 의해 수행된 수정은 임의의 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단에 따른 임의의 수정일 수 있다.
수정된 비트 메트릭들/LLR들(823)은 이후에 비트 에지 메시지들을 초기화하고, LDPC 코딩 신호의 반복 디코딩 프로세싱(예를 들면, 비트 엔진(830) 및 체크 엔진(840)에 의해 수행됨)을 수행할 때 적용된 수정된 비트 에지 메시지들(833; 내장된 동작 파라미터 수정 모듈(832)을 사용함)을 생성하도록 비트 엔진(830)에 의해 적용된다. 다른 실시예들과 같이, 동작 파라미터 수정 모듈(732)에 의해 수행된 수정은 임의의 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단에 따른 임의의 수정일 수 있다.
또한, 비트 노드들에서, 비트 엔진(830)은 가장 최근에 업데이트된 비트 에지 메시지들(및/또는 수정된 비트 에지 메시지들)을 사용하여 비트들의 소프트 정보(예를 들면, 836)를 계산하도록 동작가능하다.
다시 이전 실시예와 같이, 다중 디코딩 반복이 수행되는 것이 통상적이며, 따라서 초기화되고 수정된 비트 에지 메시지들(833)은 체크 엔진(840)으로 전달되고, 여기서 첫 번째 디코딩 반복 동안, 체크 엔진(840)은 체크 에지 메시지들을 업데이트하기 위해 초기화되고 수정된 비트 에지 메시지들(833)을 적용하도록 동작가능하다. 이 업데이트된 체크 에지 메시지들은 동작 파라미터 수정 모듈(842)로 전달되고, 체크 에지 메시지들을 처리하고, 원래의 계산된 체크 에지 메시지들(843)을 수정하여, 이에 따라 수정된 비트 에지 메시지들(843)을 생성하도록 구현될 수 있고 동작가능하다. 동작 파라미터 수정 모듈(842)에 의해 수행된 수정은 임의의 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단에 따른 임의의 수정일 수 있다.
그 후에, 비트 엔진(830)은 수정된 체크 에지 메시지들(843)을 수신하여, 이들을 적용하여 비트 에지 메시지들을 업데이트하도록 동작가능하다.
또한, 비트 엔진(830)은 LDPC 디코딩에 따라 비트 에지 메시지들의 업데이트를 수행할 때 수정된 비트 메트릭들/LLR들(823)을 적용하도록 동작가능하다. 또한, 이 수정된 체크 에지 메시지들(843)은 이후에 비트들의 소프트 정보(836)가 수정된 비트 메트릭들/LLR들(823) 및 체크 에지 메시지들의 현재 반복 값을 사용하여 계산되는 비트 노드들(예를 들면, 비트 엔진(830))로 다시 전달된다. 반복 프로세싱은 디코딩된 신호를 인코딩하기 위해 적용된 LDPC 코드 2분형 그래프에 따라 비트 노드들 및 체크 노드들 사이에서 계속된다.
비트 노드 엔진(830) 및 체크 노드 엔진(840)에 의해 수행된 반복 디코딩 프 로세싱 단계들은 정지 기준이 만족될때까지 반복된다.
소프트 정보(836)는 각각의 디코딩 반복들 동안 비트 엔진(830)내에서 생성될 수 있다. 이 실시예에서, 이 소프트 정보(836)는 하드 리미터(hard limiter)에 제공될 수 있고, 여기서 경판정들이 만들어질 수 있고, 하드 정보는 LDPC 코드의 신드롬(syndrome)이 모두 0인지 판단하도록 동작가능한 신드롬 계산기에 제공될 수 있다.
이하 도 9의 실시예는 이전의 도 8의 실시예와 다소 유사하며, (사용될 수 있는) 착신 정보의 수정 및 (만일 수정이 요구된다면) 발신 정보의 차후 수정이 다를 수 있다는 점에서 적어도 차이를 갖는다. 예를 들면, 정보는 프로세싱 모듈에 의해 수신될 수 있고, 이 정보는 그 모듈 내에서 디코딩 프로세싱의 단계들 또는 적절한 단계들을 수행하기위해 수정된 형태를 사용하기 전에 수정될 수 있고, 만일 원하면 계산된 정보는 프로세싱 모듈로부터 송신하기 전에 수정될 수도 있다.
도 9의 LDPC 디코딩 기능(900)을 참조하면, 이 실시예는 또한 통신 채널로부터 연속 시간 신호를 수신할 수 있고, AFE는 비트 메트릭들/LLR들을 계산하도록 동작가능한 메트릭 생성기(920)로 제공되는 이산 시간 신호를 생성하도록 구현될 수 있다. 동작 파라미터 수정 모듈(922)은 비트 메트릭들/LLR들을 처리하고, 원래의 계산된 비트 메트릭들/LLR들을 수정하여, 이에 따라 수정된 비트 메트릭들/LLR들(923)을 생성하도록 구현될 수 있고 동작가능하다. 동작 파라미터 수정 모듈(922)에 의해 수행된 수정은 임의의 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단에 따른 임의의 수정일 수 있다. 게다가, 동작 파라미터 수정 모듈(922)은 제 1 수단(예를 들면, 착신 수정부(924)를 사용)에 따라 원래의 계산된 비트 메트릭들/LLR들을 계산하기 전에 제 1 수단에 따라 수신된 이산 신호를 최초에 수정할 수 있고, 원래의 계산된 비트 메트릭들/LLR들을 계산한 후에, 동작 파라미터 수정 모듈(922)은 제 2 수단(예를 들면, 발신 수정부(925)를 사용)에 따라 원래의 계산된 비트 메트릭들/LLR들을 수정할 수 있다.
수정된 비트 메트릭들/LLR들(923)은 이후에 비트 에지 메시지들을 초기화하고, LDPC 코딩 신호의 반복 디코딩 프로세싱(예를 들면, 비트 엔진(930) 및 체크 엔진(940)에 의해 수행됨)을 수행할 때 적용된 수정된 비트 에지 메시지들(923)(내장된 동작 파라미터 수정 모듈(932)을 사용함)을 생성하도록 엔진(730)에 의해 적용된다. 다른 실시예들로서, 동작 파라미터 수정 모듈(932)에 의해 수행된 수정은 임의의 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단에 따른 임의의 수정일 수 있다. 게다가, 동작 파라미터 수정 모듈(932)은 비트들의 소프트 정보(예를 들면, 소프트 정보(936)) 또는 다음 업데이트되는 비트 에지 메시지들 또는 수정된 비트 에지 메시지들(933)을 계산하기 전에 제 1(및/또는 제 2)수단에 따라 수신된 수정된 비트 메트릭들/LLR들(923)(및/또는 수신된 수정된 체크 에지 메시지들(943))을 수정할 수 있다. 상기와 다른 모듈로서, 동작 파라미터 수정 모듈(932)은 제 1 수단(예를 들면, 착신 수정부(934)를 사용함)에 따라 임의의 수신된 정보를 수정할 수 있고, 정보를 계산 또는 업데이트한 후에 동작 파라미터 수정 모듈(932)은 제 2 수단(예를 들면, 발신 수정부(935)를 사용함)에 따라 정보를 수정하고 이에 따라 발신 정보를 생성할 수 있다. 비트 엔진(930)은 체크 엔진(940)으로 수정된 비트 에지 메시지들(933)을 제공하도록 동작가능하다.
또한, 비트 노드들에서, 비트 엔진(930)은 가장 최근에 업데이트된 비트 에지 메시지들(및/또는 수정된 비트 에지 메시지들)을 사용하여 비트들의 소프트 정보(예를 들면, 936)를 계산하도록 동작가능하다.
다시 이전 실시예와 같이, 다중 디코딩 반복이 수행되는 것이 통상적이며, 따라서 초기화된 수정된 비트 에지 메시지들(933)은 체크 엔진(940)으로 전달되고, 여기서 제 1 디코딩 반복 동안 체크 엔진(940)은 체크 에지 메시지들을 업데이트하기 위해 초기화된 수정된 비트 에지 메시지들(933)을 적용하도록 동작가능하다. 이 업데이트된 체크 에지 메시지들은 이후에 체크 에지 메시지들을 처리하고 원래의 계산된 체크 에지 메시지들을 수정하여 이에 따라 수정된 체크 에지 메시지들(943)을 생성하도록 내장된 동작 파라미터 수정 모듈(942)에 의해 처리된다. 동작 파라미터 수정 모듈(942)에 의해 수행된 수정은 임의의 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단에 따른 임의로 수정일 수 있다. 상기 기재된 것과 다른 모듈로서, 동작 파라미터 수정 모듈(942)은 제 1 수단(예를 들면, 착신 수정부(944)를 이용함)에 따라 수신된 정보를 수정할 수 있고, 정보를 계산 또는 업데이트한 후에 동작 파라미터 수정 모듈(942)은 제 2 수단(예를 들면, 발신 수정부(945)를 사용함)에 따라 상기 정보를 수정하여 발신 정보를 생성할 수 있다. 체크 엔진(940)은 수정된 체크 에지 메시지들(943)을 비트 엔진(930)으로 제공하도록 동작가능하다. 그 후에, 비트 엔진(930)은 수정된 체크 에지 메시지들(943)을 수신하고 비트 에지 메시지들을 업데이트하기 위해 상기 수정된 체크 에지 메시지들을 적용하도록 동작가능하다.
또한, 비트 엔진(930)은 LDPC 디코딩에 따라 비트 에지 메시지들의 업데이트를 수행할 때 수정된 비트 메트릭들/LLR들(923)을 적용하도록 동작가능하다. 또한, 이 수정된 체크 에지 메시지들(943)은 이후에 비트들의 소프트 정보(936)가 수정된 비트 메트릭들/LLR들(923) 및 체크 에지 메시지들의 현재 반복 값을 사용하여 계산되는 비트 노드들(예를 들면, 비트 엔진(930))로 다시 전달된다. 반복 프로세싱은 디코딩된 신호를 인코딩하기 위해 적용된 LDPC 코드 2분형 그래프에 따라 비트 노드들 및 체크 노드들 사이에서 계속된다.
비트 노드 엔진(930) 및 체크 노드 엔진(940)에 의해 수행된 반복 디코딩 프로세싱 단계들은 정지 기준이 만족될때까지 반복된다.
소프트 정보(936)는 각각의 디코딩 반복들 동안 비트 엔진(930)내에서 생성될 수 있다. 이 실시예에서, 이 소프트 정보(936)는 하드 리미터(hard limiter)에 제공될 수 있고, 여기서 경판정들이 만들어질 수 있고, 하드 정보는 LDPC 코드의 신드롬(syndrome)이 모두 0인지 판단하도록 동작가능한 신드롬 계산기에 제공될 수 있다.
도 10은 LDPC 디코딩 프로세싱을 수행하도록 동작가능한 장치(1000)의 실시예를 나타낸다. 장치(1000)는 프로세싱 모듈(1020), 및 메모리(1010)를 포함한다. 메모리(1010)는 프로세싱 모듈로 연결되고, 메모리(1010)는 다양한 기능을 수행하기 위해 프로세싱 모듈(1020)을 활성화하는 동작 명령들을 저장하도록 동작가능하다. 프로세싱 모듈(1020)은 LDPC 디코딩 프로세싱이 본원에 기재된 임의의 실시예들, 또는 이의 임의의 균등물에 따라 수행되는 방식을 수행 및/또는 지시하도록 동작가능하다.
프로세싱 모듈(1020)은 공유형 프로세싱 장치, 독립형 프로세싱 장치, 또는 복수의 프로세싱 장치를 사용하여 구현될 수 있다.이러한 프로세싱 장치는 마이크로프로세서, 마이크로-제어기, 디지털 신호 프로세서, 마이크로컴퓨터, 중앙 처리 유닛, FPGA(field programmable gate array), PLD(programmable logic device), 상태 기계(state machine), 논리 회로, 아날로그 회로, 디지털 회로, 및/또는 동작 명령들에 기초하여 신호들(아날로그 및/또는 디지털)을 조작하는 임의의 장치일 수 있다. 메모리(1010)는 단일 메모리 장치 또는 복수의 메모리 장치들일 수 있다. 이러한 메모리 장치는 ROM(read-only memory), RAM(random access memory), 휘발성 메모리, 비휘발성 메모리, 정적 메모리, 동적 메모리, 플래시 메모리, 및/또는 디지털 정보를 저장하는 임의의 장치일 수 있다. 프로세싱 모듈(1020)이 상태 기계, 아날로그 회로, 디지털 회로, 및/또는 논리 회로를 통해 하나 또는 그 이상의 기능들을 구현할 때, 대응하는 동작 명령들을 저장하는 메모리는 상태 기계, 아날로그 회로, 디지털 회로, 및/또는 논리 회로를 포함하는 회로로 내장된다.
원한다면 일부 실시예에서, LDPC 디코딩 프로세싱이 수행되는(예를 들면, 동작 파라미터 수정 방법이 수행되고, 동작 파라미터들로 그러한 동작 파라미터 수정 이 수행되고, 다른 동작 파라미터 수정이 다른 디코딩 반복 동안 수행되는 등) 방식은 장치(1000)로부터 원하는 LDPC 코드를 사용하여 LDPC 코딩을 적용하고 수행하도록 동작가능한 통신 시스템(1040)으로 제공될 수 있다. 예를 들면, 사용된 LDPC 코드에 대응하는 정보(예를 들면, LDPC 코드의 패리티 체크 행렬)는 역시 프로세싱 모듈(1020)로부터 통신 시스템(1040)내에 구현된 임의의 다양한 통신 장치들(1030)로 또한 제공될 수 있다. 게다가, 이러한 LDPC 디코딩이 통신 시스템(1040)내에 구현된 임의의 다양한 통신 장치들(1030)로 수행된 방식은 프로세싱 모듈(1020)로부터 제공될 수도 있다.
원한다면, 장치(1020)는 또한 여러 필요들 및/또는 요구들에 따라 LDPC 디코딩을 수행하는 여러 수단을 생성하도록 설계될 수 있다. 일부 실시예들에서, 프로세싱 모듈(1020)은 선택적으로 다른 정보(예를 들면, 다른 LDPC 코드, 다른 동작 파라미터 수정 등에 대응하는 정보)를 다른 통신 장치들 및/또는 통신 시스템들로 제공할 수 있다. 이 방법에서, 다른 통신 장치들 사이의 다른 통신 링크들은 다른 LDPC 코드들 및/또는 LDPC 디코딩을 수행하기 위한 수단을 사용할 수 있다(예를 들면 다른 동작 수정을 사용함). 명백하게, 프로세싱 모듈(1020)은 역시 본원 발명의 사상과 범주를 벗어나지 않는 각각의 다른 통신 장치들 및/또는 통신 시스템들로 동일한 정보를 제공할 수도 있다.
도 11은 LDPC 디코딩 프로세싱을 수행하도록 동작가능한 장치(1100)의 대안적인 실시예를 나타낸다. 장치(1100)는 프로세싱 모듈(1120), 및 메모리(1110)를 포함한다. 메모리(1110)는 프로세싱 모듈로 연결되고, 메모리(1110)는 다양한 기능 들을 수행하기 위해 프로세싱 모듈(1120)을 활성화하는 동작 명령들을 저장하도록 동작가능하다. 프로세싱 모듈(1120)(메모리(1120)에 의해 제공됨)은 본원에 기재된 임의의 다양한 모듈들 및/또는 기능성 블럭들의 임의의 기능을 수행가능한 장치로서 구현될 수 있다. 예를 들면, 프로세싱 모듈(1120)(메모리(1120)에 의해 지원됨)은 LDPC 디코딩 프로세싱이 본원에 기재된 임의의 실시예, 또는 이의 임의의 균등물에 따라 수행되는 방식을 수행 및/또는 지시하도록 동작가능한 장치로서 구현될 수 있다.
프로세싱 모듈(1120)은 공유형 프로세싱 장치, 독립형 프로세싱 장치, 또는 복수의 프로세싱 장치를 사용하여 구현될 수 있다.이러한 프로세싱 장치는 마이크로프로세서, 마이크로-제어기, 디지털 신호 프로세서, 마이크로컴퓨터, 중앙 처리 유닛, FPGA(field programmable gate array), PLD(programmable logic device), 상태 기계(state machine), 논리 회로, 아날로그 회로, 디지털 회로, 및/또는 동작 명령들에 기초하여 신호들(아날로그 및/또는 디지털)을 조작하는 임의의 장치일 수 있다. 메모리(1110)는 단일 메모리 장치 또는 복수의 메모리 장치들일 수 있다. 이러한 메모리 장치는 ROM(read-only memory), RAM(random access memory), 휘발성 메모리, 비휘발성 메모리, 정적 메모리, 동적 메모리, 플래시 메모리, 및/또는 디지털 정보를 저장하는 임의의 장치일 수 있다. 프로세싱 모듈(1120)이 상태 기계, 아날로그 회로, 디지털 회로, 및/또는 논리 회로를 통해 하나 또는 그 이상의 기능들을 구현할 때, 대응하는 동작 명령들을 저장하는 메모리는 상태 기계, 아날로그 회로, 디지털 회로, 및/또는 논리 회로를 포함하는 회로로 내장된다.
원한다면 일부 실시예에서, 장치(1100)는 임의의 다양한 통신 장치들(1130), 또는 임의의 이러한 통신 장치(1130)의 임의의 부품 또는 임의의 부분일 수 있다. 프로세싱 모듈(1120) 및/또는 메모리(1110)를 포함하는 임의의 통신 장치는 또한 임의의 다양한 통신 시스템들(1140)로 구현될 수 있다. 또한 본원에 기재된 LDPC 디코딩 프로세싱에 따른 LDPC 디코딩 프로세싱 및/또는 동작 파라미터 수정, 및 이의 균등물의 다양한 실시예는 다수의 유형의 통신 시스템들 및/또는 통신 장치들에 적용될 수 있다.
도 12는 LDPC 디코딩에 따라 적용될 수 있는 일부의 동작 파라미터들(1200)의 실시예를 나타낸다. 다른 실시예들과 관련하여 상기 언급한 것과 같이, LDPC 디코딩 프로세싱에 따른 임의의 하나 또는 그 이상의 비트 메트릭들/LLR들, 체크 에지 메시지, 비트 에지 메시지, 또는 다른 동작 파라미터들은 LDPC 디코딩 프로세싱 전에, 동안, 및/또는 후에 수정될 수 있다. 예를 들면, 도면 부호 1210으로 도시된 동작 파라미터 조정부는 임의의 하나 또는 그 이상의 비트 메트릭들/LLR들, 체크 에지 메시지, 및/또는 비트 에지 메시지로 적용될 수 있다. 이 수정은 스케일링(1211), 압축(1212), 압축 해제(1213; 예를 들면, 확장), 제 1 값 가산(1214), 제 2 값 감산(1215), 각각 제 1 양에 의해 비트 에지 메시지 이동 및/또는 제 2 양에 의해 체크 에지 메시지 이동(1216), 비트 에지 메시지 및/또는 체크 에지 메시지를 반올림 또는 반내림(1217), 일부 다른 기능(1218; 예를 들면 폐쇄 형태, LUT, 이들의 조합, 또는 일부의 다른 수단을 통해 구현될 수 있는 비선형성 기능들), 및/또는 임의의 다른 수정(1219)을 사용하여 실시될 수 있다.
본원에서 수행되는 다수의 동작들은 (예를 들면 디지털 신호들상에서 동작할 때) 유한 정밀 영역(finite precision domain)에서 수행될 수 있다. 이러한 배경에서, 이동(shifting) 동작은 일부 실시예들에서 주기적 이동을 수행하는 것으로 보일 수 있다(예를 들면, 벡터 1100가 주기적 이동을 겪은 후에 0110이 될 수 있다). 반올림 또는 반내림(1217)은 임의의 원하는 정도의 정밀도로 수행될 수 있다(예를 들면, 1.65는 1.7로 반올림되거나 1.6으로 반내림되거나, 대안적인 실시예에서 1로 반내림될 수 있다). 게다가, 다른 기능(1218)(예를 들면 비선형 기능)은
Figure 112008032602959-PAT00049
(체크 에지 메시지) 및/또는
Figure 112008032602959-PAT00050
(비트 에지 메시지) 중 하나 또는 모두를 수정하기 위한 임의의 다양한 원하는 기능들일 수 있다(예를 들면,
Figure 112008032602959-PAT00051
,
Figure 112008032602959-PAT00052
,
Figure 112008032602959-PAT00053
등).
수정 수단 중 임의의 하나, 또는 이들의 임의의 조합은 LDPC 디코딩 프로세싱에 따라 적용된 임의의 동작 파라미터들에 적용될 수 있다.
도 13은 LDPC 디코딩에 따른 디코딩 반복의 기능으로서 동작 파라미터 수정(1300)의 실시예를 나타낸다. 제 1 반복(1311) 동안, 제 2 동작 파라미터 수정(1321)이 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
제 2 반복(1312) 동안, 제 2 동작 파라미터 수정(1322)이 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
제 3 반복(1313) 동안, LDPC 디코딩 프로세싱에 따라 적용된 임의의 동작 파라미터들에 적용된 동작 파라미터 수정은 없다(1323).
반복 디코딩 프로세싱은 추가적인 디코딩 반복에 대해 계속되고, 제 n 디코딩 반복(1319) 동안, m번째 동작 파라미터 수정(1329)이 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
도 14 내지 도 18은 LDPC 디코딩에 따른 디코딩 동작의 기능으로서 동작 파라미터 수정의 대안적인 실시예를 나타낸다.
도 14의 실시예를 참조하면, 제 1 복수의 디코딩 반복 동안(1411; 예를 들면, 제 1 내지 a 반복), 제 1 동작 파라미터 수정(1421)은 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
제 2 복수의 디코딩 반복 동안(1412; 예를 들면, 제 a+1 내지 b 반복), 제 2 동작 파라미터 수정(1422)은 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
제 3 복수의 디코딩 반복 동안(1413; 예를 들면, 제 b+1 내지 c 반복), LDPC 디코딩 프로세싱에 따라 적용된 임의의 동작 파라미터들에 적용된 동작 파라미터 수정은 없다(1423).
반복 디코딩 프로세싱은 추가적인 디코딩 반복에 대해 계속되고, 최후의 복수의 디코딩 반복 동안(1419; 예를 들면 제 z-y 내지 z 반복), 제 m 동작 파라미터 수정(1429)은 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
도 13 및 도 14의 실시예들이 일반적으로 동작 파라미터 수정이 수행될 수 있는 일부의 가능한 방식들로 기재되는 한편, 이하의 실시예는 독자의 이해를 돕기위해 더 특정된 실시예를 기재한다. 도 15의 실시예의 동작은 각각의 제 1 복수의 디코딩 반복, 제 2 복수의 디코딩 반복뿐만 아니라 본원 발명의 사상과 범주를 벗어나지 않는 것들 동안 동작 파라미터 수정의 다른 형태들을 적용한 실시예들에 또한 적용될 수 있다.
도 15의 실시예(1500)를 참조하면, 제 1 디코딩 반복(1511) 동안, 비트 에지 메시지들은 제 1 스케일링 파라미터를 사용하여 스케일링된다(1521). 또한, LLR은 제 1 값으로 감산된다(1531). 또한, (체크 노드 프로세싱에서 사용하기 위해 전달되기 전에) 비트 에지 메시지들은 압축되고, 체크 노드 프로세싱내에서 비트 에지 메시지들을 회복하기 위해 압축 해제(예를 들면, 확장)된다(1541). 이러한 압축/압축 해제(예를 들면, 확장) 수단은 더 적은 정보가 각각의 비트 에지 메시지에 대해 전달될 필요가 있고 이에 따라 더 적은 메모리 관리 요구 사항들, 프로세싱 소비 등을 지원하는 수단이다.
제 2 디코딩 반복(1512) 동안, 체크 에지 메시지들은 제 2 스케일링 파라미터를 사용하여 스케일링된다(1522). 또한, 비트 에지 메시지들은 (체크 노드 프로세싱에서 사용하기 위해 전달되기 전에) 압축되고, 체크 노드 프로세싱내에서 비트 에지 메시지들을 회복하기 위해 압축 해제(예를 들면, 확장)된다(1542).
제 3 디코딩 반복(1513) 동안, 비트 에지 메시지들이 (체크 노드 프로세싱에서 사용하기 위해 전달되기 전에) 압축되고, 체크 노드 프로세싱내에서 비트 에지 메시지들을 회복하기 위해 압축 해제(예를 들면, 확장)되는 사실(1543)을 제외하면, LDPC 디코딩 프로세싱에 따라 적용되는 임의의 동작 파라미터들에 적용된 동작 파라미터 수정은 없다(1523).
반복 디코딩 프로세싱은 추가적인 디코딩 반복에 대해 계속되고, 제 n 디코딩 반복(1519) 동안, 체크 에지 메시지들은 제 3 스케일링 파라미터를 사용하여 스케일링된다(1529). 또한, 이 반복의 '스케일링된' 체크 에지 메시지들은 이후에 또한 동작 파라미터 수정이되고, 여기서 제 2 값은 '스케일링된' 체크 에지 메시지들에 부가된다(1539). 비트 에지 메시지들은 (체크 노드 프로세싱에서 사용하기 위해 전달되기 전에) 압축되고, 체크 노드 프로세싱내에서 비트 에지 메시지들을 회복하기 위해 압축 해제(예를 들면, 확장)된다(1549).
도 16의 실시예를 참조하면, 동작 파라미터 수정은 클럭 주기 기초(clock cycle basis)상에서 수행된다(예를 들면, 일부 다른 실시예들에서 상기 기재된 것과 같이 디코딩 반복 기초 또는 복수의 디코딩 반복 기초에 대조적임). 제 1 클럭 주기 동안(1611), 제 1 동작 파라미터 수정(1621)은 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
제 2 클럭 주기 동안(1612), 제 2 동작 파라미터 수정(1622)은 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
제 3 클럭 주기 동안(1613), LDPC 디코딩 프로세싱에 따라 적용된 임의의 동작 파라미터들에 적용된 동작 파라미터 수정은 없다(1623).
반복 디코딩 프로세싱은 추가적인 디코딩 반복에 대해 계속되고, 제 n 클럭 주기 동안(1619), 제 m 동작 파라미터 수정(1629)은 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
도 17의 실시예를 참조하면, 동작 파라미터 수정은 복수의 클럭 주기 기초(clock cycle basis)상에서 수행된다(예를 들면, 일부 다른 실시예들에서 상기 기재된 것과 같이 디코딩 반복 기초 또는 복수의 디코딩 반복 기초에 대조적임). 제 1 복수의 클럭 주기 동안(예를 들면, 제 1 내지 a 클럭 주기; 1711), 제 1 동작 파라미터 수정(1721)은 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
제 2 복수의 클럭 주기 동안(예를 들면, 제 a+1 내지 b 클럭 주기; 1712), 제 2 동작 파라미터 수정(1722)은 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
제 3 복수의 클럭 주기 동안(예를 들면, 제 b+1 내지 c 클럭 주기; 1713), LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된 동작 파라미터 수정은 없다(1723).
반복 디코딩 프로세싱은 추가적인 디코딩 반복에 대해 계속되고, 마지막 복수의 클럭 주기 동안(예를 들면, 제 z-y 내지 z 클럭 주기; 1719), 제 m 동작 파라미터 수정(1729)은 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
도 17의 "a, b, c, y, 및 z"로 기재된 변수들과 관련된 "클럭 주기"는 도 14의 "a, b, c, y, 및 z"로 기재된 변수들과 관련된 "반복"과 실제적으로 다른 값들 일 수 있다.
도 18의 실시예(1800)를 참조하면, 동작 파라미터 수정은 하위-반복(sub-iteration) 기초상에서 수행된다. 이 배경에서, 하위-반복은 체크 노드 프로세싱 또는 비트 노드 프로세싱(예를 들면, 변수 노드 프로세싱) 중 어느 하나로서 보일 수 있다. 제 1 하위-반복 동안(예를 들면, 체크 노드 프로세싱 하위-반복; 1811), 제 1 동작 파라미터 수정(1821)은 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
제 2 하위-반복 동안(예를 들면, 비트 노드 프로세싱 하위-반복; 1812), 제 2 동작 파라미터 수정(1822)은 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
제 1 하위-반복(체크 노드 프로세싱(1811)) 및 제 2 하위-반복(비트 노드 프로세싱(1812))은 여기서 하나의 디코딩 반복(1801)을 형성한다는 것을 주지해야 한다.
제 3 하위-반복 동안(예를 들면, 체크 노드 프로세싱 하위-반복; 1813), LDPC 디코딩 프로세싱에 따라 적용된 임의의 동작 파리미터들에 적용된 동작 파라미터 수정은 없다(1823).
반복 디코딩 프로세싱은 추가적인 디코딩 반복에 대해 계속되고, 마지막 하위-반복 동안(예를 들면, 만일 비트 노드 프로세싱 하위-반복이 바로 전에 수행되었다면 체크 노드 프로세싱(또는 만일 체크 노드 프로세싱 하위-반복이 바로 전에 수행되었다면 비트 노드 프로세싱); 1819), 제 m 동작 파라미터 수정(1829)은 LDPC 디코딩 프로세싱에 따라 적용된 하나 또는 그 이상의 동작 파라미터들에 적용된다.
도 19는 동작 파라미터 수정을 포함하는 LDPC 코딩 신호를 처리하기 위한 방법(1900)의 실시예이다. 방법(1900)은 최초에 블럭(1910)으로 도시된 것과 같이, 연속 시간 신호를 수신하는 단계를 포함한다. 연속 시간 신호의 수신하여 프로세싱하는 단계는 또한 제 1 연속 시간 신호의 임의의 필요한 하향 전환(down conversion)을 수행하고 이에 따라 제 2 연속 시간 신호를 생성하는 단계를 포함할 수 있다(1912). 수행될 필요가 있을 수 있는 임의의 주파수 변환은 가능하게는 반송파(carrier) 주파수로부터 기저대역 주파수로의 직접 변환에 의해 수행될 수 있다. 이 주파수 변환은 대안적으로는 IF(Intermediate Frequency)를 통해 수행될 수 있다. 어느 실시예에서나, 수신된 연속 시간 신호는 통상 이 방법을 수행할 때 주파수에서 기저대역 연속 시간 신호로 떨어뜨려진다. 또한, 특정 유형의 이득 조정/이득 제어는 수신된 연속 시간 신호에 적용될 수 있다.
블럭에 의해 도시된 것과 같이(1920), 방법(1900)은 또한 제 1(또는 제 2) 연속 시간 신호를 샘플링하는 단계를 포함하고, 이에 따라 이산 시간 신호를 생성하고 I, Q 요소를 검출하는 단계를 포함한다. 이 샘플링은 적절하게 하향 전환된(및 잠재적으로 또한 필터링되고, 이득 조정되고, 등) 수신된 연속 시간 신호로부터 이산 시간 신호를 생성하도록 ADC(Analog to Digital Converter) 또는 등가의 수단을 사용하여 수행될 수 있다. 이산 시간 신호의 개별적인 샘플들의 I, Q 요소들은 또한 이 단계로 검출된다. 방법(1900)은 이후에 I, Q 요소들을 복조하는 단계 를 포함하고, (콘스텔레이션(constellation) 포인트들의 맵핑을 갖는 콘스텔레이션 형상으로) I, Q 요소들의 심볼 맵핑(mapping)을 수행하는 단계를 포함할 수 있고, 이에 따라 블럭(1930)에 도시된 것과 같이 이산 값의 변조 심볼들의 열(sequence)을 생성한다.
블럭(1940)에 의해 도시된 것과 같이, 방법(1900)의 다음 단계는 정지 조건이 부합될 때까지(예를 들면, 미리 정해진 수의 반복들에 대해, 모든 신드롬들이 0일때까지, 또는 일부의 다른 정지 기준이 만족될때까지) 에지 메시지들의 업데이트를 수행하는 단계를 포함한다. 이 단계는 상기 기재된 임의의 다양한 실시예에 따라 LDPC 디코딩을 수행하는 단계로서 보일 수 있다. 이 LDPC 디코딩은 일반적으로 비트 에지 메시지들(예를 들면, 변수 에지 메시지들)을 업데이트하기위한 비트 엔진 프로세싱(1942)뿐만 아니라 체크 에지 메시지들을 업데이트하기 위한 체크 엔진 프로세싱(1944)을 포함한다. 게다가, 방법(1900)의 LDPC 디코딩은 또한 비트 에지 메시지들, 체크 에지 메시지들, 및/또는 LLR들을 위한 적어도 하나의 동작 파라미터를 수정을 포함한다(1946). 블럭(1946)의 수정은 스케일링(scaling), 첫 번째 오프셋을 가산 및/또는 두 번째 오프셋을 감산, 압축, 확장을 포함하는 다양한 수단, 및/또는 다른 수단의 임의의 하나 에 따른 임의의 수정일 수 있다.
블럭(1950)에 도시된 것과 같이, 정지 기준이 만족된 후에, 방법(1900)은 가장 최근에 업데이트된 비트 에지 메시지들에 대응하는 소프트 정보에 기초하여 경판정들을 만드는 단계를 포함한다. 블럭(1960)에 의해 도시된 것과 같이, 방법(1900)은 최종적으로 수신된 연속 시간 신호로부터 검출된 (정보 비트들을 포함 하는) LDPC 코딩 비트들(LDPC 코드워드, 또는 LDPC 코드 블럭)의 최상의 추정을 출력하는 단계를 포함한다.
이 명세서에서, 한번 저밀도 패리티 체크 행렬 H가 통신 채널의 수신단에서 디코딩 프로세싱에 사용가능하면, LDPC 코드의 대응하는 생성기 행렬 G는 상기 저밀도 패리티 체크 행렬 H로부터 직접 생성될 수 있다. 이러한 정보를 갖는 것은 설계자가 통신 채널의 송신단에서 (LDPC 코드의 생성기 행렬 G를 사용하여) 인코딩 프로세싱을 구현하는 것을 허용하며, 또한 (LDPC 코드의 저밀도 패리티 체크 행렬을 사용하여) 통신 채널의 수신단에서 디코딩 프로세싱을 구현하는 것을 허용한다. 사실, LDPC 코드는 저밀도 패리티 체크 행렬 H로부터 직접 정의되는 것이 종래 기술에서는 통상적이다. 다른 방법으로 기재하여, 저밀도 패리티 체크 행렬 H는 LDPC 코드를 정의하도록 필요한 모든 정보를 포함한다.
도 20 내지 22는 동작 파라미터 수정을 포함하는 LDPC 코딩 신호를 처리하기 위한 방법의 대안적인 실시예이다.
도 20의 방법(2000)을 참조하면, 방법(2000)은 블럭(2010)에 의해 도시된 것과 같이, LLR을 수신하는 것에 의해 동작한다. 그 후에, 방법(2000)은 블럭(2020)에 의해 도시된 것과 같이, LLR을 사용하여 비트 에지 메시지들을 초기화하는 것에 의해 동작한다. 방법(2000)은 블럭(2030)에 의해 도시된 것과 같이, 체크 에지 메시지들을 업데이트하기 위해 초기화된 비트 에지 메시지들을 적용하여 체크 노드 프로세싱을 수행하는 것에 의해 동작한다.
방법(2000)은 블럭(2040)에 도시된 것과 같이, 비트 노드 프로세싱에 사용하 기 위한 수정되고 업데이트된 체크 에지 메시지들을 전달하기 전에 업데이트된 체크 에지 메시지들을 수정하는 것에 의해(예를 들면, 스케일링 압축, 및/또는 제 1 값 가산, 또는 제 2 값 감산등을 사용함) 동작한다.
방법(2000)은 블럭(2050)에 도시된 것과 같이, 비트 에지 메시지들을 업데이트하기위해 수정되고 업데이트된 체크 에지 메시지들을 적용하여 비트 노드 프로세싱을 수행하는 것에 의해 동작한다. 이는 또한 블럭(2052)에 도시된 것과 같이, 비트 에지 메시지들을 업데이트하기 위해 LLR을 적용하여 비트 노드 프로세싱을 수행하는 단계를 포함한다. 게다가, 만일 체크 에지 메시지들이 블럭(2040)의 수정 동안 압축된다면 방법(2000)은 또한 블럭(2054)에 도시된 것과 같이 비트 에지 메시지들을 업데이트하기 위해 상기 압축된 메시지들을 사용하기 전에 체크 에지 메시지들을 압축 해제(예를 들면, 확장)하는 단계를 포함할 수 있다.
방법(2000)은 또한 블럭(2060)에 도시된 것과 같이, 체크 에지 메시지들을 업데이트하기 위해 가장 최근에 업데이트된 비트 에지 메시지들을 적용하여 체크 노드 프로세싱을 수행하는 것에 의해 동작한다.
도 21의 방법(2100)을 참조하면, 방법(2100)은 블럭(2110)에 의해 도시된 것과 같이, LLR을 수신하는 단계에 의해 동작한다. 그 후에, 방법(2100)은 블럭(2120)에 도시된 것과 같이 LLR을 사용하여 비트 에지 메시지들을 초기화하는 단계에 의해 동작한다. 방법(2100)은 블럭(2130)에 도시된 것과 같이, 체크 에지 메시지들을 업데이트하기 위해 초기화된 비트 에지 메시지들을 적용하여 체크 노드 프로세싱을 수행하는 것에 의해 동작한다.
방법(2100)은 또한 블럭(2140)에 도시된 것과 같이, 비트 에지 메시지들을 업데이트하기 위해 업데이트된 체크 에지 메시지들을 적용하여 비트 노드 프로세싱을 수행하는 것에 의해 동작한다. 이는 또한 블럭(2142)에 도시된 것과 같이, 비트 에지 메시지들을 업데이트하기 위해 LLR을 적용하여 비트 노드 프로세싱을 수행하는 단계를 포함할 수도 있다.
방법(2100)은 이 후에 블럭(2150)에 도시된 것과 같이 체크 노드 프로세싱에 사용하기 위한 수정되고 업데이트된 비트 에지 메시지들을 전달하기 전에 업데이트된 비트 에지 미시지들을 수정하는 단계에 의해(예를 들면, 스케일링 압축, 및/또는 제 1 값 가산, 또는 제 2 값 감산등을 사용함) 동작한다.
방법(2100)은 또한 블럭(2160)에 도시된 것과 같이, 체크 에지 메시지들을 업데이트하기 위해, 가장 최근에 수정되고 업데이트된 비트 에지 메시지들을 적용하여 체크 노드 프로세싱을 수행하는 단계에 의해 동작한다.
게다가, 만일 비트 에지 메시지들이 블럭(2150)에서 수정 동안 압축된다면, 방법(2100)은 또한 블럭(2162)에 도시된 것과 같이 체크 에지 메시지들을 업데이트하기 위해 상기 압축된 비트 에지 메시지들을 사용하기 전에 이 비트 에지 메시지들을 압축 해제(예를 들면, 확장)하는 단계를 포함할 수도 있다.
도 22의 방법(2200)을 참조하면, 방법(2200)은 블럭(2210)에 의해 도시된 것과 같이 LLR을 수신하는 단계에 의해 동작한다. 그 후에, 방법(2200)은 블럭(2220)에 의해 도시된 것과 같이 LLR을 사용하여 비트 에지 메시지들을 초기화하는 단계에 의해 동작한다. 방법(2200)은 그 후에 블럭(2230)에 도시된 것과 같이, 체크 노 드 프로세싱에 사용하기 위한 수정된 초기화된 비트 에지 메시지들을 전달하기 전에 초기화된 비트 에지 메시지들을 수정하는 단계에 의해(예를 들면, 스케일링 압축, 및/또는 제 1 값 가산, 또는 제 2 값 감산등을 사용함) 동작한다.
방법(2200)은 블럭(2240)에 도시된 것과 같이, 체크 에지 메시지들을 업데이트하기 위해, 수정된 초기화된 비트 에지 메시지들을 적용하여 체크 노드 프로세싱을 수행하는 단계에 의해 동작한다. 만일 수정된 초기화된 비트 에지 메시지들이 블럭(2230)의 수정 동안 압축된다면, 방법(2200)은 또한 블럭(2242)에 도시된 것과 같이, 체크 에지 메시지들을 업데이트하기위해 상기 압축된 비트 에지 메시지들을 사용하기 전에 상기 수정된 초기화된 비트 에지 메시지들을 압축 해제(예를 들면, 확장)하는 단계를 포함할 수도 있다.
방법(2200)은 블럭(2250)에 의해 도시된 것과 같이, 비트 노드 프로세싱에 사용하기 위한 수정된 업데이트된 체크 에지 메시지들을 전달하기 전에 업데이트된 체크 에지 메시지들을 수정하는 단계(예를 들면, 스케일링 압축, 및/또는 제 1 값 가산, 제 2 값 감산 등)에 의해 동작한다.
방법(2200)은 또한 블럭(2260)에 도시된 것과 같이, 비트 에지 메시지들을 업데이트하기 위해 수정된 업데이트된 체크 에지 메시지들을 적용하여 비트 노드 프로세싱을 수행하는 단계에 의해 동작한다. 이는 또한 블럭(2262)에 도시된 것과 같이 비트 에지 메시지들을 업데이트하기 위해 LLR을 적용하여 비트 노드 프로세싱을 하는 단계를 포함한다. 대안적으로, 이는 또한 블럭(2266)에 도시된 것과 같이, 비트 에지 메시지들을 업데이트하기 위해 비트 노드 프로세싱내에 비트 에지 메시 지들을 적용하기 전에 LLR을 수정하는 단계를 포함한다. 만일 블럭(2250)의 수정을 하는 동안 수정된 체크 에지 메시지들이 압축된다면, 블럭(2264)에 도시된 것과 같이 비트 에지 메시지들을 업데이트하기 위해 상기 압축된 수정된 체크 에지 메시지들을 사용하기 전에 이들 수정된 체크 에지 메시지들을 압축 해제(예를 들면, 확장)하는 단계를 또한 포함한다.
방법(2200)은 또한 블럭(2270)에 도시된 것과 같이, 체크 에지 메시지들을 업데이트하기 위해 가장 최근에 수정된 업데이트된 비트 에지 메시지들을 적용하여 체크 노드 프로세싱을 수행하는 단계에 의해 동작한다.
도 19 내지 도 22의 실시예는 본원 발명의 특정 실시예에 따라 수행될 수 있는 예시적인 일부의 가능한 실시예라는 것을 주지해야 한다. 이들 특정 실시예들은 남김없이 표현된 것이 아니며, 이들 실시예들의 변경은 본원 발명의 사상과 범주를 벗어나지 않고 수행될 수 있다.
도 23 내지 도 27은 LDPC 디코딩에 따라 디코딩 반복의 기능으로서 동작 파라미터 수정을 수행하기 위한 방법의 실시예들이다.
도 23의 방법(2300)을 참조하면, 방법(2300)은 블럭(2310)에 도시된 것과 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 1 동작 파라미터 수정을 사용하여, LLR, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하여 제 1 디코딩 반복 동안 동작한다. 이 후에, 방법(2300)은 블럭(2320)에 의해 도시된 것과 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 2 동작 파라미터 수정을 사용하여 LLR, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하여 제 2 디코딩 반복 동안 동작한다. 방법(2300)은 또한 블럭(2330)에 의해 도시된 것과 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 3 동작 파라미터 수정을 사용하여 LLR들, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하는 것에 의해 제 3 디코딩 반복 동안 동작한다.
도 24의 방법(2400)을 참조하면, 방법(2400)은 블럭(2410)에 의해 도시된 것과 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 1 동작 파라미터 수정을 사용하여 LLR들, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하는 것에 의해 제 1 복수의 디코딩 반복 동안 동작한다. 이 후에, 방법(2400)은 블럭(2420)에 의해 도시된 것과 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 2 동작 파라미터 수정을 사용하여 LLR들, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하는 것에 의해 제 2 복수의 디코딩 반복 동안 동작한다. 이 후에, 방법(2400)은 블럭(2430)에 의해 도시된 것과 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 3 동작 파라미터 수정을 사용하여 LLR들, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하는 것에 의해 제 3 복수의 디코딩 반복 동안 동작한다.
도 25의 방법(2500)을 참조하면, 방법(2500)은 블럭(2510)에 의해 도시된 것과 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 1 동작 파라미터 수정을 사용하여 LLR들, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하는 것에 의해 제 1 클럭 주기 동안 동작한다. 이 후에, 방법(2500)은 블럭(2520)에 의해 도시된 것과 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 2 동작 파라미터 수정을 사용하여 LLR들, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하는 것에 의해 제 2 클럭 주기 동안 동작한다. 이 후에, 방법(2500)은 블럭(2530)에 의해 도시된 것과 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 3 동작 파라미터 수정을 사용하여 LLR들, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하는 것에 의해 제 3 클럭 주기 동안 동작한다.
도 26의 방법(2600)을 참조하면, 방법(2600)은 블럭(2610)에 의해 도시된 것 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 1 동작 파라미터 수정을 사용하여 LLR들, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하는 것에 의해 제 1 복수의 클럭 주기 동안 동작한다. 이 후에, 방법(2600)은 블럭(2620)에 의해 도시된 것과 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 2 동작 파라미터 수정을 사용하여 LLR들, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하는 것에 의해 제 2 복수의 클럭 주기 동안 동작한다. 이 후에, 방법(2600)은 블럭(2630)에 의해 도시된 것과 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 3 동작 파라미터 수정을 사용하여 LLR들, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하는 것에 의해 제 3 복수의 클럭 주기 동안 동작한다.
도 27의 방법(2700)을 참조하면, 방법(2700)은 블럭(2710)에 의해 도시된 것 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 1 동작 파 라미터 수정을 사용하여 LLR들, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하는 것에 의해 제 1 하위-반복(예를 들면, 체크 노드 프로세싱) 동안 동작한다. 이 후에, 방법(2700)은 블럭(2720)에 의해 도시된 것과 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 2 동작 파라미터 수정을 사용하여 LLR들, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하는 것에 의해 제 2 하위-반복(예를 들면, 비트 노드 프로세싱) 동안 동작한다. 이 후에, 방법(2700)은 블럭(2730)에 의해 도시된 것과 같이, (하나 또는 그 이상의 동작 파라미터 수정을 포함할 수 있는) 제 3 동작 파라미터 수정을 사용하여 LLR들, 비트 에지 메시지들, 및/또는 체크 에지 메시지들을 수정하는 것에 의해 제 3 하위-반복(예를 들면, 체크 노드 프로세싱) 동안 동작한다.
이하 실시예들의 일부 기재 수단은 동작 신호 대 잡음비(SNR)들의 넓은 범위 상에서 코딩 성능의 손실 없이 또는 거의 없이 감소되도록(예를 들면, 압축) 메시지를 표현하기위해 요구되는 비트들의 수를 허용한다.
도 28은 LDPC 디코딩에 따라 체크 노드 크기 업데이트 기능의 실시예(2800)를 나타낸다. 이 실시예(2800)는 체크 노드 크기 업데이트 프로세싱에 대해 어느정도의 향상을 제공한다. 이 실시예(2800)에서, 비트 노드들(예를 들면, 변수 노드들)에서 체크 노드들로 보내진 비트 에지 메시지들을 표현하기 위해 사용된 비트들의 수는
Figure 112008032602959-PAT00054
로 지정된다. 각각의 체크 에지 메시지를 표현하기 위해 각각의 체크 노드내부에 사용된 비트들의 수는
Figure 112008032602959-PAT00055
이다. 비트 노드들(예를 들면, 변수 노드들)로 다시 보내진 체크 에지 메시지들을 표현하기 위해 사용된 비트들의 수는
Figure 112008032602959-PAT00056
이다.
체크 입력 기능부는 이하의 문자가 입력 및 출력의 함수를 표현하기 위해 사용된 비트들의 수를 나타내는 다음의 식 (7)을 근사화한다. 입력 메시지 정밀도를 감소시키기 위해,
Figure 112008032602959-PAT00057
로써, 식 (7)을 근사화하는 것이 가능하다.
Figure 112008032602959-PAT00058
체크 출력 기능부는 이하의 식 (8)을 근사화한다. 출력 메시지 정밀도를 감소시키기 위해,
Figure 112008032602959-PAT00059
로써, 식 (8)을 근사화하는 것이 가능하다.
Figure 112008032602959-PAT00060
만일 요구된다면, 식 (7) 및 식 (8)에 대한 근사화는
Figure 112008032602959-PAT00061
와 같이 선택될 수 있다.
체크 입력 및 출력 기능부들은 룩업 테이블에 의해 구현될 수 있고, 또는 논리 게이트로써 직접 구현될 수 있다.
매우 효율적인 논리 게이트 구현을 이끄는 체크 입력 함수 및 출력 함수를 위한 근사화는 본원에 기재된 "2제곱"함수이다. 예를 들면,
Figure 112008032602959-PAT00062
비트이고,
Figure 112008032602959-PAT00063
비트이면, 식 (7)은 이하의 표 1로서 근사화되고, 식 (8)은 이하의 표 2로서 근사화된다.
Figure 112008032602959-PAT00064
표 1. 효율적인 체크 입력 기능부 근사화
Figure 112008032602959-PAT00065
표 2. 효율적인 체크 출력 기능부 근사화
체크 에지 메시지들의 압축은 표 1에 도시된 것과 같이 2제곱 수단을 사용하여 수행될 수 있다(예를 들면, 체크 노드 프로세싱 전에 수행됨). 차후의 업데이트된 체크 에지 메시지들의 압축 해제/확장은 (예를 들면, 체크 노드 프로세싱을 수행한 후에, 및 비트 노드 프로세싱에 사용하기 위해 업데이트된 체크 에지 메시지들을 전달하기 전에) 표 2에 도시된 것과 같이 2제곱 수단을 사용하여 수행될 수 있다.
또한, 상기 기재된 것과 같이 체크 입력 및 출력 기능부의 근사화는 도 29에 도시된다.
도 28은 LDPC 디코딩에 따라 비트(예를 들면, 변수) 노드 크기 업데이트 기능의 실시예(2800)를 나타낸다. 이 실시예(2800)는 비트(예를 들면, 변수) 노드 크기 업데이트 프로세싱에 대해 어느정도의 향상을 제공한다. 이 실시예(2800)에서, 체크 노드들에서 비트 노드들로 보내진 체크 에지 메시지들을 표현하기 위해 사용된 비트들의 수는
Figure 112008032602959-PAT00066
로 지정된다. 각각의 비트 에지 메시지를 표현하기 위해 각각 의 비트 노드내부에 사용된 비트들의 수는
Figure 112008032602959-PAT00067
이다. 체크 노드들로 다시 보내진 비트 에지 메시지들을 표현하기 위해 사용된 비트들의 수는
Figure 112008032602959-PAT00068
이다.
입력 스케일링은 체크 노드들로부터 비트 노드들로 보내진 체크 에지 메시지들을 스케일링하도록 동작가능하다. 게다가, 스케일링은 수신된 값에서 수행된다(예를 들면, LLR은 수신된 신호로부터 계산된다). 출력 스케일링은 비트노드들로부터 체크 노드들로 보내진 업데이트된 비트 에지 메시지를 스케일링하도록 동작가능하다.
도 28과 관련하여 상기 기재된 구현 및 실시예들의 효과 (및 도 29에 의해 도시된 것과 같은 향상된 효율)는 디코더 구현 복잡도를 상당히 감소시키도록 동작가능하지만, 또한 일부 경우에서 디코딩 성능의 손실을 결과할 수 있다.
도 28과 관련하여 상기 기재된 구현 및 실시예들의 효과 (및 도 29에 의해 도시된 것과 같은 향상된 효율)를 갖거나 갖지 않는 추가적인 디코딩 성능 향상을 위해, LDPC 디코딩 프로세싱은 반복하는 것과 같은 동작 파라미터 수정을 수행할 수 있다. 예를 들면, LDPC 디코딩 프로세싱은 이하의 1회의 반복 기초, 복수의 반복 기초, 1회의 클럭 주기 기초, 복수의 클럭 주기 기초, 및/또는 1회의 하위-반복 기초의 모두, 또는 임의의 하나, 또는 이들의 조합에 따라 디코딩 프로세싱에 변할 수 있다.
1. 체크 노드 업데이트에서 체크 입력 함수를 변경
2. 체크 노드 업데이트에서 체크 출력 함수를 변경
3. 변수 노드 업데이트(예를 들면, 비트 노드 업데이트)에서 입력 메시지들 의 스케일링을 변경
4. 변수 노드 업데이트(예를 들면, 비트 노드 업데이트)에서 출력 메시지들의 스케일링을 변경
5. 변수 노드 업데이트(예를 들면, 비트 노드 업데이트)에서 수신된 로그 유사형 값의 스케일링 변경
6. 임의의 체크 또는 변수 노드 메시지들로부터 수를 가산 또는 감산
7. 변수 노드(예를 들면, 비트 노드) 결정 논리 변경
8. 1회의 반복 기초, 복수의 반복 기초, 1회의 클럭 주기 기초, 복수의 클럭 주기 기초, 및/또는 1회의 하위-반복 기초에서 독립적으로 임의의 하나의 동작 파라미터를 수정(예를 들면, 이들 동작 파라미터들은 모두 동일한 방식으로 또는 다르게 수정될 수 있다)
9.a. 다른 변수(예를 들면, 비트) 노드 업데이트를 다르게 수정
9.a. 다른 체크 노드 업데이트를 다르게 수정
본원에 기재된 다양한 모듈들(예를 들면, 인코딩 모듈들, 디코딩 모듈들, 비트 엔진들, 체크 엔진들 등)은 단일 프로세싱 장치 또는 복수의 프로세싱 장치들일 수 있다. 이러한 프로세싱 장치는 마이크로프로세서, 마이크로-제어기, 디지털 신호 프로세서, 마이크로컴퓨터, 중앙 처리 유닛, FPGA(field programmable gate array), PLD(programmable logic device), 상태 기계(state machine), 논리 회로, 아날로그 회로, 디지털 회로, 및/또는 동작 명령들에 기초하여 신호들(아날로그 및/또는 디지털)을 조작하는 임의의 장치일 수 있다. 동작 명령들은 메모리에 저장될 수 있다. 메모리는 단일 메모리 장치 또는 복수의 메모리 장치들일 수 있다. 이러한 메모리 장치는 ROM(read-only memory), RAM(random access memory), 휘발성 메모리, 비휘발성 메모리, 정적 메모리, 동적 메모리, 플래시 메모리, 및/또는 디지털 정보를 저장하는 임의의 장치일 수 있다. 프로세싱 모듈이 상태 기계, 아날로그 회로, 디지털 회로, 및/또는 논리 회로를 통해 하나 또는 그 이상의 기능들을 구현할 때, 대응하는 동작 명령들을 저장하는 메모리는 상태 기계, 아날로그 회로, 디지털 회로, 및/또는 논리 회로를 포함하는 회로로 내장된다. 이러한 실시예에서, 메모리는 본원에 기재된 및/또는 도시된 단계들 및/또는 기능들의 적어도 일부에 대응하는 동작 명령들을 저장하고, 메모리에 연결된 프로세싱 모듈은 본원에 기재된 및/또는 도시된 단계들 및/또는 기능들의 적어도 일부에 대응하는 동작 명령들을 실행한다.
본 발명은 지금까지 특정된 기능들의 수행 및 이들 사이의 관계들을 예시한 방법 단계들을 이용하여 위와 같이 설명되었다. 이러한 기능적인 구성 블록들 및 방법 단계들의 경계 및 순서(boundaries and sequences)는 설명의 편의를 위해 임의적으로 설명되었다. 이러한 특정 기능들 및 이들 사이의 관계들이 적절하게 수행되는 한, 그와 다른 경계 및 순서도 정의될 수 있다. 그러한 어떠한 다른 경계 또는 순서들도 청구 범위에 기재된 발명의 영역 및 사상 내에 포함된다.
본 발명은 또한 몇몇 중요 기능들의 수행을 예시한 기능적인 구성 블록들을 이용하여 위와 같이 설명되었다. 이러한 구성 블록들의 경계는 설명의 편의를 위해 임의적으로 정의되었다. 상기 중요 기능들이 적절히 수행되는한, 이와 다른 경계도 정의될 수 있다. 유사하게, 순서도의 블록들도 역시 중요한 기능(functionality)을 예시하기 위해 정의되었다. 순서도 블록의 경계들 및 순서는 다른 식으로 정의되었어도 여전히 그러한 중요한 기능을 수행할 수 있을 것이다. 기능적인 구성 블록들과 순서도 블록들 및 순서들에 대한 그러한 다른 식의 정의들은 따라서 청구 범위에 기재된 발명의 영역 및 사상 내에 포함된다.
당해 기술 분야의 통상의 기술을 가진 자는 또한 이러한 기능적 구성 블록들 및 이 명세서에 있는 그 밖의 예시적인 블록들, 모듈 및 구성품은, 예시된 대로 구현되거나, 또는 개별 부품, 주문형 집적 회로(application specific integrate circuits, ASIC), 적절한 소프트웨어나 이와 유사한 것을 실행하는 프로세서들, 또는 이들의 조합들에 의해 구현될 수 있다.
더 나아가, 비록 상술한 실시예를 이용하여 간단 명료함 및 이해를 목적으로 상세하게 설명하였지만, 본 발명은 이러한 실시예들에 한정되지 않는다. 본 발명의 사상과 범위가 첨부된 청구 범위의 기재에 의해서만 제한되는 바대로, 당해 기술 분야의 동상의 지식을 가진 자에게 본 발명의 사상과 범위 내에서 다양한 변화와 변경이 실시될 수 있음은 명백할 것이다.
도 1 및 도 2는 통신 시스템의 다양한 실시예를 나타낸다.
도 3은 LDPC 코드 2분형 그래프의 실시예를 나타낸다.
도 4는 LDPC 디코딩 기능의 실시예를 나타낸다.
도 5 내지 도 9는 LDPC 디코딩 기능의 적어도 일부의 대안적인 실시예를 나타낸다.
도 10은 LDPC 디코딩 프로세싱를 수행하도록 동작가능한 장치의 실시예를 나타낸다.
도 11은 LDPC 디코딩 프로세싱을 수행하도록 동작가능한 장치의 대안적인 실시예를 나타낸다.
도 12는 LDPC 디코딩에 따라 적용될 수 있는 동작 파라미터들의 실시예를 나타낸다.
도 13은 LDPC 디코딩에 따라 디코딩 반복의 기능으로서 동작 파라미터의 수정의 실시예를 나타낸다.
도 14 내지 도 18은 LDPC 디코딩에 따라 디코딩 반복의 기능으로서 동작 파라미터 수정의 대안적인 실시예를 나타낸다.
도 19는 동작 파라미터 수정을 포함하는 LDPC 코딩 신호를 프로세싱하는 방법의 실시예를 나타낸다.
도 20 내지 도 22는 동작 파라미터 수정을 포함하는 LDPC 코딩 신호를 프로세싱하는 방법의 대안적인 실시예를 나타낸다.
도 23 내지 도 27은 LDPC 디코딩에 따라 디코딩 반복의 기능으로서 동작 파라미터 수정을 수행하는 방법을 실시예를 나타낸다.
도 28은 LDPC 디코딩에 따라 체크 노드 크기 업데이트 기능의 실시예를 나타낸다.
도 29는 체크 입력 및 출력 기능 근사의 실시예를 나타낸다.
도 30은 LDPC 디코딩에 따라 비트(예를 들면, 변수) 노드 업데이트 기능의 실시예를 나타낸다.

Claims (10)

  1. LDPC(Low Density Parity Check; 저밀도 패리티 체크) 코딩 신호를 디코딩하도록 동작가능한 디코더에 있어서,
    제 1 체크 에지 메시지를 업데이트하기 위해 제 1 비트 에지 메시지를 적용하여, 이에 따라 제 2 체크 에지 메시지를 생성하도록 동작가능한 체크 엔진; 및
    비트 엔진으로서,
    상기 제 2 체크 에지 메시지를 스케일링(scale)하여, 이에 따라 스케일링된 제 2 체크 에지 메시지를 생성하고,
    제 2 비트 에지 메시지를 업데이트하기 위해 상기 스케일링된 제 2 체크 에지 메시지를 적용하여, 이에 따라 제 3 비트 에지 메시지를 생성하고,
    상기 LDPC 코딩 신호로 인코딩된 정보 비트(information bit)에 대응하는 소프트 정보(soft information)를 생성하기 위해 상기 제 3 비트 에지 메시지를 적용하도록 동작가능한, 상기 비트 엔진을 포함하고,
    상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트에 대응하는 상기 소프트 정보는 상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트의 최적의 추정을 형성하기 위해 사용되는 것을 특징으로 하는 디코더.
  2. 청구항 1에 있어서,
    상기 체크 엔진은,
    제 4 비트 에지 메시지를 스케일링하여, 이에 따라 스케일링된 제 4 비트 에지 메시지를 생성하고,
    제 3 체크 에지 메시지를 업데이트하기 위해 상기 스케일링된 제 4 비트 에지 메시지를 적용하여, 이에 따라 제 4 에지 메시지를 생성하도록 동작가능한 것을 특징으로 하는 디코더.
  3. 청구항 1에 있어서,
    제 1 디코딩 반복 동안, 상기 비트 엔진은 제 1 스케일링 파라미터(scaling parameter)에 따라 상기 제 2 체크 에지 메시지를 스케일링하여, 이에 따라 상기 스케일링된 제 2 체크 에지 메시지를 생성하도록 동작가능하고,
    제 2 디코딩 반복 동안, 상기 비트 엔진은 제 2 스케일링 파라미터에 따라 제 3 체크 에지 메시지를 스케일링하여, 이에 따라 스케일링된 제 3 체크 에지 메시지를 생성하도록 동작 가능한 것을 특징으로 하는 디코더.
  4. 청구항 1에 있어서,
    제 1 클럭 주기(clock cycle) 동안, 상기 비트 엔진은 제 1 스케일링 파라미터에 따라 상기 제 2 체크 에지 메시지를 스케일링하여, 이에 따라 상기 스케일링된 제 2 체크 에지 메시지를 생성하도록 동작가능하고,
    제 2 클럭 주기 동안, 상기 비트 엔진은 제 2 스케일링 파라미터에 따라 제 3 체크 에지 메시지를 스케일링하여, 이에 따라 스케일링된 제 3 체크 에지 메시지 를 생성하도록 동작가능한 것을 특징으로 하는 디코더.
  5. 청구항 1에 있어서,
    디코딩 반복의 제 1 하위-반복(sub-iteration) 동안, 상기 체크 엔진은 제 1 스케일링 파라미터에 따라 상기 제 1 비트 에지 메시지를 스케일링하도록 동작가능하고,
    상기 디코딩 반복의 제 2 하위-반복 동안, 상기 비트 엔진은 제 2 스케일링 파라미터에 따라 상기 제 2 체크 에지 메시지를 스케일링하여, 이에 따라 상기 스케일링된 제 2 체크 에지 메시지를 생성하도록 동작가능한 것을 특징으로 하는 디코더.
  6. 청구항 1에 있어서,
    제 1 디코딩 반복 동안, 상기 체크 엔진은 제 1 스케일링 파라미터에 따라 상기 제 1 비트 에지 메시지를 스케일링하도록 동작가능하고,
    제 2 디코딩 반복 동안, 상기 체크 엔진은 제 2 스케일링 파라미터에 따라 상기 제 3 비트 에지 메시지를 스케일링하도록 동작가능한 것을 특징으로 하는 디코더.
  7. LDPC(Low Density Parity Check; 저밀도 패리티 체크) 코딩 신호를 디코딩하도록 동작가능한 디코더에 있어서,
    체크 엔진으로서,
    제 1 체크 에지 메시지를 업데이트하기 위해 제 1 비트 에지 메시지를 적용하여, 이에 따라 제 2 체크 에지 메시지를 생성하고,
    상기 제 2 체크 에지 메시지와 값을 가산 또는 상기 제 2 체크 에지 메시지로부터 상기 값을 감산, 상기 제 2 체크 에지 메시지를 스케일링, 상기 제 2 체크 에지 메시지를 이동(shifting), 상기 제 2 체크 에지 메시지를 반올림(rounding), 및 상기 제 2 체크 에지 메시지를 압축(compressing)하는 것 중 적어도 하나를 수행하는 것에 의해 상기 제 2 체크 에지 메시지를 수정하여, 이에 따라 수정된 제 2 체크 에지 메시지를 생성하도록 동작가능한, 상기 체크 엔진, 및
    비트 엔진으로서,
    상기 수정된 제 2 체크 에지 메시지를 수신하고,
    만일 상기 수정된 제 2 체크 에지 메시지가 상기 체크 엔진에 의해 압축되었다면, 상기 수정된 제 2 체크 에지 메시지를 압축 해제(decompress)하여 이에 따라 압축 해제된 수정된 제 2 체크 에지 메시지를 생성하고,
    제 2 비트 에지 메시지를 업데이트하기 위해 상기 수정된 제 2 체크 에지 메시지 또는 상기 압축 해제된 수정된 제 2 체크 에지 메시지를 적용하여, 이에 따라 제 3 비트 에지 메시지를 생성하고,
    상기 LDPC 코딩 신호로 인코딩된 정보 비트(information bit)에 대응하는 소프트 정보(soft information)를 생성하기 위해 상기 제 3 비트 에지 메시지를 적용하도록 동작가능한, 상기 비트 엔진을 포함하고,
    상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트에 대응하는 상기 소프트 정보는 상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트의 최적의 추정을 형성하기 위해 사용되는 것을 특징으로 하는 디코더.
  8. LDPC(Low Density Parity Check; 저밀도 패리티 체크) 코딩 신호를 디코딩하도록 동작가능한 디코더에 있어서,
    제 1 체크 에지 메시지를 업데이트하기 위해 제 1 비트 에지 메시지를 적용하여, 이에 따라 제 2 체크 에지 메시지를 생성하도록 동작가능한 체크 엔진; 및
    비트 엔진으로서,
    상기 제 2 체크 에지 메시지와 값을 가산 또는 상기 제 2 체크 에지 메시지로부터 상기 값을 감산, 상기 제 2 체크 에지 메시지를 스케일링, 상기 제 2 체크 에지 메시지를 이동(shifting), 상기 제 2 체크 에지 메시지를 반올림(rounding), 및 상기 제 2 체크 에지 메시지를 압축 해제(decompressing)하는 것 중 적어도 하나를 수행하는 것에 의해 상기 제 2 체크 에지 메시지를 수정하여, 이에 따라 수정된 제 2 체크 에지 메시지를 생성하고,
    제 2 비트 에지 메시지를 업데이트하기 위해 상기 수정된 제 2 체크 에지 메시지를 적용하여, 이에 따라 제 3 비트 에지 메시지를 생성하고,
    상기 LDPC 코딩 신호로 인코딩된 정보 비트(information bit)에 대응하는 소프트 정보(soft information)를 생성하기 위해 상기 제 3 비트 에지 메시지를 적용하도록 동작가능하고,
    상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트에 대응하는 상기 소프트 정보는 상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트의 최적의 추정을 형성하기 위해 사용되는 것을 특징으로 하는 디코더.
  9. LDPC(Low Density Parity Check; 저밀도 패리티 체크) 코딩 신호를 디코딩하는 방법에 있어서,
    제 1 체크 에지 메시지를 업데이트하기 위해 제 1 비트 에지 메시지를 적용하는 것에 의해 체크 노드 프로세싱(processing)을 수행하여, 이에 따라 제 2 체크 에지 메시지를 생성하는 단계;
    상기 제 2 체크 에지 메시지와 값을 가산 또는 상기 제 2 체크 에지 메시지로부터 상기 값을 감산, 상기 제 2 체크 에지 메시지를 스케일링, 상기 제 2 체크 에지 메시지를 이동(shifting), 상기 제 2 체크 에지 메시지를 반올림(rounding), 및 상기 제 2 체크 에지 메시지를 압축 해제(decompressing)하는 것 중 적어도 하나를 수행하는 것에 의해 상기 제 2 체크 에지 메시지를 수정하여, 이에 따라 수정된 제 2 체크 에지 메시지를 생성하는 단계;
    제 2 비트 에지 메시지를 업데이트하기 위해 상기 수정된 제 2 체크 에지 메시지를 적용하는 것에 의해 비트 노드 프로세싱을 수행하여, 이에 따라 제 3 비트 에지 메시지를 생성하는 단계;
    상기 LDPC 코딩 신호로 인코딩된 정보 비트(information bit)에 대응하는 소프트 정보(soft information)를 생성하기 위해 상기 제 3 비트 에지 메시지를 적용 하는 단계; 및
    상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트의 최적의 추정을 형성하기 위해, 상기 LDPC 코딩 신호로 인코딩된 상기 정보 비트에 대응하는 상기 소프트 정보를 사용하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 청구항 9에 있어서,
    상기 값은 제 1 값이며,
    상기 제 1 비트 에지 메시지와 제 2 값을 가산 또는 상기 제 1 비트 에지 메시지로부터 상기 제 2 값을 감산, 및 상기 제 1 비트 에지 메시지를 스케일링하는 것 중 적어도 하나에 의해 상기 제 1 비트 에지 메시지를 수정하여, 이에 따라 수정된 제 1 비트 에지 메시지를 생성하는 단계; 및
    상기 제 1 체크 에지 메시지를 업데이트하기 위해 상기 수정된 제 1 비트 에지 메시지를 적용하는 것에 의해, 체크 노드 프로세싱을 수행하여, 이에 따라 상기 제 2 체크 에지 메시지를 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
KR1020080042436A 2007-05-07 2008-05-07 동작 파라미터 적응형 ldpc 디코더 KR20080099191A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US92795607P 2007-05-07 2007-05-07
US60/927,956 2007-05-07
US11/807,885 2007-05-30
US11/807,885 US8151171B2 (en) 2007-05-07 2007-05-30 Operational parameter adaptable LDPC (low density parity check) decoder

Publications (1)

Publication Number Publication Date
KR20080099191A true KR20080099191A (ko) 2008-11-12

Family

ID=39720186

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080042436A KR20080099191A (ko) 2007-05-07 2008-05-07 동작 파라미터 적응형 ldpc 디코더

Country Status (6)

Country Link
US (2) US8151171B2 (ko)
EP (1) EP1990921A3 (ko)
KR (1) KR20080099191A (ko)
CN (2) CN101388746B (ko)
HK (1) HK1158391A1 (ko)
TW (1) TWI400890B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9575833B2 (en) 2015-03-09 2017-02-21 SK Hynix Inc. Controller, semiconductor memory system and operating method thereof
KR20170059018A (ko) * 2012-12-03 2017-05-29 디지털 파워라디오, 엘엘씨 연접 코딩 시스템의 개선된 반복 디코딩 및 채널 추정을 위한 시스템 및 방법

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8151171B2 (en) * 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
TWI390856B (zh) * 2007-11-26 2013-03-21 Sony Corp Data processing device and data processing method
US8219878B1 (en) * 2007-12-03 2012-07-10 Marvell International Ltd. Post-processing decoder of LDPC codes for improved error floors
US8621137B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
US8230312B1 (en) * 2008-01-09 2012-07-24 Marvell International Ltd. Iterative decoder memory arrangement
US8370711B2 (en) 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding
EP2181504A4 (en) * 2008-08-15 2010-07-28 Lsi Corp DECODING LIST OF CODED WORDS CLOSE IN A ROM MEMORY
JP5506828B2 (ja) 2009-03-05 2014-05-28 エルエスアイ コーポレーション 繰り返し復号器のための改良ターボ等化方法
WO2010123493A1 (en) 2009-04-21 2010-10-28 Agere Systems, Inc. Error-floor mitigation of codes using write verification
US8675693B2 (en) * 2009-04-27 2014-03-18 Qualcomm Incorporated Iterative decoding with configurable number of iterations
CN101594152B (zh) * 2009-07-03 2013-05-08 清华大学 实现水平运算和垂直运算同时运行的ldpc码译码方法
US8464142B2 (en) 2010-04-23 2013-06-11 Lsi Corporation Error-correction decoder employing extrinsic message averaging
US8499226B2 (en) 2010-06-29 2013-07-30 Lsi Corporation Multi-mode layered decoding
US8458555B2 (en) 2010-06-30 2013-06-04 Lsi Corporation Breaking trapping sets using targeted bit adjustment
US8504900B2 (en) 2010-07-02 2013-08-06 Lsi Corporation On-line discovery and filtering of trapping sets
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
US8909982B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US9362933B1 (en) 2011-07-12 2016-06-07 Marvell International Ltd. Noise-predictive detector adaptation with corrected data
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US8543891B2 (en) * 2011-09-21 2013-09-24 Apple Inc. Power-optimized decoding of linear codes
US8938658B2 (en) 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
US8768990B2 (en) 2011-11-11 2014-07-01 Lsi Corporation Reconfigurable cyclic shifter arrangement
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US8996952B2 (en) 2012-01-04 2015-03-31 Marvell World Trade Ltd. High-throughput iterative decoding's defect scan in retry mode of storage system channel
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US10797728B1 (en) * 2012-07-25 2020-10-06 Marvell Asia Pte, Ltd. Systems and methods for diversity bit-flipping decoding of low-density parity-check codes
US9064575B2 (en) 2012-08-03 2015-06-23 Micron Technology, Inc. Determining whether a memory cell state is in a valley between adjacent data states
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US8649118B1 (en) 2012-09-25 2014-02-11 Lsi Corporation Pattern-dependent LLR manipulation
RU2012146685A (ru) 2012-11-01 2014-05-10 ЭлЭсАй Корпорейшн База данных наборов-ловушек для декодера на основе разреженного контроля четности
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9231619B2 (en) * 2013-02-04 2016-01-05 SK Hynix Inc. LDPC decoder with a variable node updater which uses a scaling constant
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) * 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9513989B2 (en) 2013-03-26 2016-12-06 Seagate Technology Llc Priori information based post-processing in low-density parity-check code decoders
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
WO2015035550A1 (en) * 2013-09-10 2015-03-19 Qualcomm Incorporated Method and apparatus of 128-dsq de-mapping in 10gbase-t system
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
KR102189440B1 (ko) 2014-08-25 2020-12-14 삼성전자주식회사 에러 정정 디코더를 포함하는 스토리지 장치 및 에러 정정 디코더의 동작 방법
US10284233B2 (en) 2016-12-06 2019-05-07 Western Digital Technologies, Inc. ECC adjustment based on dynamic error information
US10374639B2 (en) 2016-12-06 2019-08-06 Western Digital Technologies, Inc. Adaptive bit-flipping decoder based on dynamic error information
US10158380B2 (en) 2016-12-06 2018-12-18 Sandisk Technologies Llc ECC and read adjustment based on dynamic memory error model estimation
CN109308928B (zh) * 2017-07-28 2020-10-27 华邦电子股份有限公司 存储器装置的行解码器
KR102415974B1 (ko) 2017-12-14 2022-07-04 삼성전자주식회사 에러 정정 장치, 에러 정정 장치의 동작 방법, 그리고 에러 정정 장치를 포함하는 제어기
CN109361403A (zh) * 2018-08-06 2019-02-19 建荣半导体(深圳)有限公司 Ldpc译码方法、ldpc译码器及其存储设备
EP3891897B1 (en) * 2018-12-03 2024-01-24 Universite De Bretagne Sud Iterative decoder for decoding a code composed of at least two constraint nodes
US20230051416A1 (en) * 2021-08-16 2023-02-16 Adobe Inc. Systems for Estimating Terminal Event Likelihood
CN116436474B (zh) * 2023-06-13 2023-11-17 武汉能钠智能装备技术股份有限公司四川省成都市分公司 一种信道编解码方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3542756A (en) * 1968-02-07 1970-11-24 Codex Corp Error correcting
US3665396A (en) * 1968-10-11 1972-05-23 Codex Corp Sequential decoding
US4295218A (en) * 1979-06-25 1981-10-13 Regents Of The University Of California Error-correcting coding system
CN1008316B (zh) * 1985-05-08 1990-06-06 索尼公司 纠错码的译码方法和系统
JPH0895710A (ja) * 1994-09-26 1996-04-12 Fujitsu Ltd Adコンバータの制御装置及び制御方法
US6430233B1 (en) * 1999-08-30 2002-08-06 Hughes Electronics Corporation Single-LNB satellite data receiver
US6473010B1 (en) * 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US6567465B2 (en) * 2001-05-21 2003-05-20 Pc Tel Inc. DSL modem utilizing low density parity check codes
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
WO2003021440A1 (en) * 2001-09-01 2003-03-13 Bermai, Inc. Decoding architecture for low density parity check codes
KR100891782B1 (ko) 2002-06-11 2009-04-07 삼성전자주식회사 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
CN1185796C (zh) * 2002-11-15 2005-01-19 清华大学 改进的非规则低密度奇偶校验码纠错译码方法
KR20040101743A (ko) * 2003-05-26 2004-12-03 삼성전자주식회사 통신 시스템에서 저밀도 패리티 검사 코드의 복호 장치 및방법
US7174495B2 (en) * 2003-12-19 2007-02-06 Emmanuel Boutillon LDPC decoder, corresponding method, system and computer program
US7395495B2 (en) * 2004-01-12 2008-07-01 Intel Corporation Method and apparatus for decoding forward error correction codes
US7281192B2 (en) * 2004-04-05 2007-10-09 Broadcom Corporation LDPC (Low Density Parity Check) coded signal decoding using parallel and simultaneous bit node and check node processing
US7243287B2 (en) * 2004-05-03 2007-07-10 Broadcom Corporation Decoding LDPC (Low Density Parity Check) code and graphs using multiplication (or addition in log-domain) on both sides of bipartite graph
US7395490B2 (en) * 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
US7127659B2 (en) * 2004-08-02 2006-10-24 Qualcomm Incorporated Memory efficient LDPC decoding methods and apparatus
US20060085720A1 (en) * 2004-10-04 2006-04-20 Hau Thien Tran Message passing memory and barrel shifter arrangement in LDPC (Low Density Parity Check) decoder supporting multiple LDPC codes
US7562279B2 (en) * 2005-05-20 2009-07-14 Mitsubishi Electric Research Laboratories, Inc. 2D-normalized min-sum decoding for ECC codes
US8196025B2 (en) * 2005-08-03 2012-06-05 Qualcomm Incorporated Turbo LDPC decoding
US8151171B2 (en) * 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170059018A (ko) * 2012-12-03 2017-05-29 디지털 파워라디오, 엘엘씨 연접 코딩 시스템의 개선된 반복 디코딩 및 채널 추정을 위한 시스템 및 방법
US9575833B2 (en) 2015-03-09 2017-02-21 SK Hynix Inc. Controller, semiconductor memory system and operating method thereof

Also Published As

Publication number Publication date
TWI400890B (zh) 2013-07-01
CN102098060B (zh) 2013-09-04
HK1158391A1 (en) 2012-07-13
US8683303B2 (en) 2014-03-25
US8151171B2 (en) 2012-04-03
TW200913509A (en) 2009-03-16
US20080282129A1 (en) 2008-11-13
US20120198301A1 (en) 2012-08-02
EP1990921A3 (en) 2013-05-22
EP1990921A2 (en) 2008-11-12
CN102098060A (zh) 2011-06-15
CN101388746A (zh) 2009-03-18
CN101388746B (zh) 2012-06-27

Similar Documents

Publication Publication Date Title
KR20080099191A (ko) 동작 파라미터 적응형 ldpc 디코더
KR100975547B1 (ko) 분산형 프로세싱 ldpc 디코더
KR101093313B1 (ko) 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들
US9608666B1 (en) Non-concatenated FEC codes for ultra-high speed optical transport networks
US8601352B1 (en) Efficient LDPC codes
US8341488B2 (en) Accumulating LDPC (low density parity check) decoder
US20220158660A1 (en) Non-Concatenated FEC Codes For Ultra-High Speed Optical Transport Networks
US10103751B2 (en) Non-concatenated FEC codes for ultra-high speed optical transport networks
KR100992048B1 (ko) 다중 코드 저밀도 패리티 체크 디코더
Marchand Implementation of an LDPC decoder for the DVB-S2,-T2 and-C2 standards
US20240120949A1 (en) Decoding fec codewords using ldpc codes defined by a parity check matrix which is defined by rpc and qc constraints
JP4822071B2 (ja) 復号装置および復号方法
Paulissen et al. Reducing the Error Floor of the Sign-Preserving Min-Sum LDPC Decoder via Message Weighting of Low-Degree Variable Nodes

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20100531

Effective date: 20140204