KR20070058477A - 메모리 효율적인 ldpc 디코딩 방법 및 장치 - Google Patents

메모리 효율적인 ldpc 디코딩 방법 및 장치 Download PDF

Info

Publication number
KR20070058477A
KR20070058477A KR1020077004979A KR20077004979A KR20070058477A KR 20070058477 A KR20070058477 A KR 20070058477A KR 1020077004979 A KR1020077004979 A KR 1020077004979A KR 20077004979 A KR20077004979 A KR 20077004979A KR 20070058477 A KR20070058477 A KR 20070058477A
Authority
KR
South Korea
Prior art keywords
check node
node
check
message
variable
Prior art date
Application number
KR1020077004979A
Other languages
English (en)
Other versions
KR100888096B1 (ko
Inventor
톰 리차드슨
블라디미르 노비치코브
Original Assignee
콸콤 플라리온 테크놀로지스, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 콸콤 플라리온 테크놀로지스, 인코포레이티드 filed Critical 콸콤 플라리온 테크놀로지스, 인코포레이티드
Publication of KR20070058477A publication Critical patent/KR20070058477A/ko
Application granted granted Critical
Publication of KR100888096B1 publication Critical patent/KR100888096B1/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • 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
    • 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
    • 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/1114Merged schedule message passing algorithm with storage of sums of check-to-bit node messages or sums of bit-to-check node messages, e.g. in order to increase the memory efficiency
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/1122Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

메모리 효율적인 LDPC 디코드를 구현하기 위한 방법 및 장치가 설명된다. 본 발명에 따르면, 메시지 정보는 검사 노드 처리 동작을 위해 압축된 상태로 저장된다. 검사 노드에 대한 상태는 완전히 업데이팅되며, 검사 노드 내지 가변 노드 메시지들을 생성하기 위해서 추출 처리가 이루어진다. 가변 노드들로부터 수신되는 메시지들의 부호들은 메시지 추출에서 사용하기 위해 본 발명의 검사 노드 프로세서 모듈에 의해 저장될 수 있다. 검사 노드 프로세서는 가변 노드 순서에 따라 메시지들을 처리하고, 그럼으로써 가변 노드 프로세서 및 검사 노드 프로세서가 그 검사 노드 및 가변 노드 사이에 통과되는 메시지들을 버퍼 및/또는 재순서화할 필요성을 감소시키거나 제거하는 동일한 순서로 메시지들에 대해 동작할 수 있게 한다. 앞선 그래프 반복이 완료되기 이전에 한 그래프 반복에 대한 검사 노드 처리가 진행되도록 하는 그래프 구조들이 또한 설명된다.

Description

메모리 효율적인 LDPC 디코딩 방법 및 장치{MEMORY EFFICIENT LDPC DECODING METHODS AND APPARATUS}
본 발명은 메모리 효율적인 방식으로 LDPC 디코딩 동작들을 수행하기 위한 방법들 및 장치에 관한 것이다.
거의 모든 형태의 전자 통신 및 저장 시스템들은 에러-정정 코드들을 사용한다. 에러 정정 코드들은 중복성을 데이터 스트림에 도입함으로써 이러한 시스템들에서 고유의 정보 전송 신뢰도를 보상한다. 수학적인 에러 정정 기초가 Shannon에 의해서 설정되었다. Shannon은 통신 시스템들의 신호 왜곡이 랜덤한 처리로서 모델링되는 채널의 수학적인 개념을 개발하였다. 가장 기본적인 Shannon의 결과는 Noisy 채널 원리인데, 이는 채널에 대해서 용량, 즉, 그 채널을 통해 정보가 신뢰적으로 전달될 수 있는 최대 속도를 규정하는 수량을 정의한다. 용량에 근접하는 속도의 신뢰적인 전송은 에러 정정 코드들의 사용을 필요로 한다. 따라서, 에러-정정 코드들이 충분한 신뢰도를 달성하는 동시에 가능한 용량에 근접하도록 설계된다. 에러 정정 코드를 구현하는데 있어서의 복잡성은 에러 정정 코드들의 실질적인 적용에 있어 영향을 미치는 추가적인 요인이다. 터보 코드들의 발명과 LDPC(low-density parity-check) 코드들의 후속적인 재발견 및 개발로 인하여 생긴 에러 정정 코딩 시스템들에서의 최근 진보는 Shannon의 용량에 상당히 근접하는 실행가능한 복잡도를 갖는 코딩 시스템들을 제공한다.
LDPC 코드들은 도 1에 도시된 그래프(100)와 같이 종종 Tanner 그래프들로 지칭되는 이분 그래프들에 의해서 잘 도시되었다. 한 세트의 노드들의 Tanner 그래프들에서 가변 노드들(102)은 코드워드의 비트에 상응하고, 다른 세트의 노드들에서 검사 노드들로 종종 지칭되는 구속 노드들(106)은 코드를 정의하는 패리티-검사 구속 세트에 상응한다. 그래프에서 에지들(104)은 가변 노드들을 구속 노드들에 연결한다. 가변 노드들 및 구속 노드는 만약 그들이 그래프에서 에지에 의해 연결된다면 이웃들로 지칭된다. 통상적으로는 노드 쌍이 기껏해야 하나의 에지에 의해서 연결된다는 것이 가정된다. LDPC 코드들은 패리티 검사 행렬(202)을 사용하여 등가적으로 표현될 수 있다. 도 2는 표시된 벡터(x)(208)가 Hx=0인 경우에 한해 코드워드들인 경우 패리티 행렬 표현의 예를 나타낸다.
각각의 가변 노드에는 코드워드의 1 비트가 연관된다. 일부 경우에는, 이들 비트들 중 일부가 펑처링될 수도 있다. 펑처링된 비트들은 특정 코드 구조들에서는 유리할 수 있으며, 전송되는 코드워드로부터 배제된다.
가변 노드 시퀀스와 일-대-일로 연관된 비트 시퀀스는, 각각이 구속 노드에 대해서 구속에 이웃하는 비트들의(그들의 가변 노드들과의 연관성을 통해) 합이 제로 모듈로 2인 경우, 즉, 그들이 짝수개의 1들을 포함하는 경우에 한 해서, 코드의 코드워드이다.
LDPC 코드워드들을 디코딩하기 위해서 사용되는 디코더 및 디코딩 알고리즘 들은 에지들을 따라 그래프에서 메시지들을 교환함으로써 그리고 인입 메시지들에 기초하여 노드들에서 계산들을 수행하여 이러한 메시지들을 업데이팅함으로써 동작한다. 이러한 알고리즘들은 메시지 통과 알고리즘들로서 일반적으로 지칭될 것이다. 그래프에서 각각의 가변 노드는 수신 값으로 지칭되는 소프트 비트가 초기에 제공되는데, 상기 수신 값은 예컨대 통신 채널로부터의 관측에 의해서 결정되는 바와 같은 연관된 비트의 값의 추정치를 나타낸다. 이상적으로는, 각각이 비트들에 대한 추정치들은 통계적으로 독립적이다. 이러한 관념은 실제로는 불가능할 수 있거나 종종 불가능하다. 수신되는 값들이 수집은 수신된 워드를 구성한다. 이러한 응용을 위해서, 예컨대 통신 시스템에서 수신기에 의해서 관측되는 신호가 수신된 코드워드를 통해 식별될 수 있다.
노드, 즉 가변 노드 또는 구속 노드에 부여되는 에지들의 수는 노드의 등급(degree)으로 지칭된다. 규칙적인 그래프 또는 코드는 모든 가변 노드들이 동일한 등급(j)을 갖고 또한 모든 구속 노드들이 동일한 등급(k)을 갖는 것이다. 이 경우에는, 코드가 (j,k) 규칙 코드라고 언급된다. 이들은 Gallager(1961)에 의해서 본래 고려되는 코드들이다. "규칙적인" 코드와는 대조적으로, 불규칙적인 코드는 상이한 등급들의 구속 노드들 및/또는 가변 노드들을 갖는다. 예컨대, 일부 가변적인 노드들은 등급 4일 수 있고, 다른 가변 노드들은 등급 3일 수 있으며, 또 다른 가변적인 노드들은 등급 2일 수 있다.
비록 불규칙적인 코드들이 표현 및/또는 구현하는데 더욱 복잡할 수 있지만, 불규칙적인 LDPC 코드들은 규칙적인 LDPC 코드들에 비교했을 때 우수한 에러 정정/ 검출 성능을 제공할 수 있다는 것이 확인되었다.
LDPC 코딩과 연계하여 생성되는 수신된 워드들은 그에 대해 LDPC 디코딩 동작들, 예컨대 에러 정정 및 검출 동작들을 수행함으로써 처리될 수 있고, 그로 인해 본래 코드워드의 재구성된 버전을 생성한다는 것을 알게 될 것이다. 다음으로, 재구성된 코드워드는 코딩된 본래 데이터를 복구하기 위해서 데이터 디코딩이 이루어질 수 있다. 데이터 디코딩 처리는 예컨대 재구성된 코드워드로부터 비트들의 특정 서브세트를 간단히 선택하는 것일 수 있다.
위에서 설명된 바와 같이, LDPC 디코딩 동작들은 일반적으로 메시지 통과 알고리즘들을 포함한다. 여기에는 많은 잠재적으로 유용한 메시지 통과 알고리즘들이 존재하며, 그러한 알고리즘들의 사용이 LDPC 디코딩으로 제한되지는 않는다.
아래에서 논의되는 발명의 이해를 용이하게 하기 위해서, 이제는 신뢰 전파(belief propagation)의 간단한 수학적인 설명이 제공될 것이다.
(이진) LDPC 코드들에 대한 신뢰적인 전파는 아래에서와 같이 표현될 수 있다. 그래프의 에지들을 따라 전송되는 메시지들은 가변 노드에 연관된 비트에 대해서 로그-가능성
Figure 112007017463260-PCT00001
로 해석된다. 여기서, (p0, p1)은 연관된 비트에 대한 조건부 확률 분포를 나타내고, px는 비트가 값(x)을 취하는 확률을 나타낸다. 수신기에 의해서 디코더에 제공되는 소프트 비트들이 로그-가능성의 형태로 또한 제공된다. 따라서, 수신되는 값들, 즉, 수신되는 워드의 엘리먼트들이 통신 채널에 의해서 제공되는 비트들의 관측 시에 조정되는 연관된 비트들의 로그-가능성들이다. 일반적 으로, 메시지(m)는 로그-가능성(m)을 나타내고, 수신되는 값(y)은 로그-가능성(y)을 나타낸다. 펑처링된 비트들에 대해서, 로그-가능성 수신 값(y)은 0으로 설정되어 p0=p1=1/2를 나타낸다.
신뢰 전파의 메시지-통과 규칙들을 고려하기로 하자. 검사 노드들로부터 가변 노드들로의 메시지들에 대해서는 메시지가 mC2V로 표현되고, 가변 노드들로부터 검사 노드들로의 메시지에 대해서는 메시지가 mV2C로 표현된다. d개의 에지들을 갖는 가변 노드를 고려하자. 각각의 에지 j=1,...,d에 대해서, mC2V(i)가 에지(i)에서의 인입 메시지를 나타낸다고 하자. 디코딩 처리의 초기화에서, 모든 에지에 대해 mC2V=0으로 설정하자. 일반적으로, 가변 노드들로부터의 출력 메시지들은 다음과 같이 제공된다:
Figure 112007017463260-PCT00002
이러한 연산에 상응하는 노드로부터의 출력 디코딩 소프트 값(에지 메시지가 아님)은
Figure 112007017463260-PCT00003
에 의해 제공된다. 이러한 출력과 연관된 출력 하드 결정이 xout의 부호로부터 획득된다.
검사 노드들에서는, 메시지들의 '부호' 및 크기들을 사용하여 상기 메시지들을 나타내는 것이 때로는 더욱 편리하다. 따라서, 메시지(m)에 대해서는
Figure 112007017463260-PCT00004
이 메시지의 '패리티'를 나타낸다고 하자, 즉, m≥0인 경우에는 mp=0이고 m<0인 경우에는 mp=1이라고 하자. 추가적으로
Figure 112007017463260-PCT00005
이 m의 크기를 나타낸다고 하자. 따라서,
Figure 112007017463260-PCT00006
을 갖는다. 검사 노드에서는, mp 및 mr에 대한 업데이트가 구별된다. 등급(d)의 검사 노드에 대해서,
Figure 112007017463260-PCT00007
이고,
여기서, 모든 덧셈은 GF[2] 위이고,
Figure 112007017463260-PCT00008
이고,
여기서, 덧셈은 판독되고, 우리는 F(x):=ln coth (x/2)를 정의한다. F는 고유 인버스, 즉, F-1(x)=F(x)라는 것을 주시하자.
LDPC 문헌에서 종종 언급되는 알고리즘은 소위 MIN-SUM 알고리즘이다. 이 알고리즘에서는, 검사 노드에서의 업데이트 동작이 다음과 같이 수학적으로 표현될 수 있다:
Figure 112007017463260-PCT00009
따라서, C2V 메시지의 신뢰도는 다른 에지들을 따라 인입하는 V2C 메시지들의 최소 신뢰도와 동일하다. 이러한 알고리즘을 구현하는데 있어서는, 가장 작은 신뢰도 및 두 번째로 가장 작은 신뢰도(그것들은 적어도 두 인입 메시지들에 대해 값이 발생하는 경우 그 값과 동일할 수 있음)와 가장 적은 신뢰도의 인입 메시지를 제공하는 에지의 신원을 검사 노드에서 절감하는 것으로 충분하다. 가장 덜 신뢰적인 인입 메시지를 발생시키는 에지에서 출력 C2V 메시지의 신뢰도는 두 번째로 가장 작 은 인입 신뢰도와 동일하고, 모든 다른 에지들에서 출력 C2V 메시지의 신뢰도는 가장 작은 신뢰도와 동일하다.
US 특허 6,633,856에는 LDPC 디코더 구조가 개시되어 있다. 그 구조에서는, 검사 노드들로부터 가변 노드들로 전송되는 메시지들이 메모리에 저장되었다. 만약 메시지들이 예컨대 5 비트들을 포함하고 검사 노드가 등급(K)을 갖는다면, 이러한 메시지들을 위해 사용되는 저장은 5K 비트이다.
구현 및 비용 관점에서는, 구성하기에 비교적 간단하면서 비교적 적은 양의 하드웨어를 필요로 하는 방식으로 LDPC 디코더를 구현하는 것이 일반적으로 유리하다. 메모리는 많은 디코더 설계들에서 주요 성분이다. 만약 디코더를 구현하기 위해 필요한 메모리의 양이 하드웨어 비용을 줄이기 위해서 적은 양 또는 최소 양으로 유지될 수 있다면 유리할 것이다.
비록 사용되는 메모리의 양을 감소시키는데 있어서 메모리 감소가 중요하지만, 하나 이상의 실제 디코딩 시간 구속들(real world decoding time constraints)을 충족시키는데 있어 실패를 초래할 수도 있는 용인불가능한 처리 지연들을 부과할 설계를 회피하는 것이 종종 필요하다.
위에 논의로부터, LDPC 디코더들의 구현을 단순화하고 및/또는 비교적 적은 양의 메모리를 통해 디코딩 동작들을 수행할 수 있는 LDPC 디코더를 생성하기 위해서 사용될 수 있는 메모리 효율적인 방법들 및 장치가 바람직할 것이라는 사실이 자명하다. 또한, 메모리 효율적인 디코더 구현을 사용하는 LDPC 디코딩 처리에 광대한 지연들이 발생하는 것을 막기 위한 수단이 바람직하며 유리할 것이다.
본 발명은 메모리 효율적인 방식으로 LDPC 디코딩 동작들을 수행하기 위한 방법들 및 장치에 관한 것이다. 본 발명의 여러 특징들은 예컨대 하나 이상의 메시지 정보 압축 및/또는 압축해제 기술들을 사용하여 메모리 효율적인 방식으로 구현되는 검사 노드 처리 방법들 및 장치에 관련된다. 본 발명의 추가적인 특징들은 디코딩 처리에서 상당한 지연들이 발생하는 것을 막는 코드 구조를 구비한 LDPC 코드들을 사용함으로써 메모리 효율적인 LDPC 디코더들, 예컨대 본 출원에서 설명되는 타입의 디코더에서 지연들을 막고 및/또는 감소시키는 것에 관련된다.
본 출원의 발명자는, LDPC 디코더들에서의 검사 노드 계산은 출력 신뢰도들이 단지 두 개의 값들을 취하는데 그 값들 중 하나는 단지 하나의 에지만을 따라 보내지는(go out) 특성을 갖고 또한 이러한 특성은 검사 노드 메시지 정보를 효율적으로 저장하고 또한 검사 노드 프로세서 모듈을 효율적으로 구현하기 위해 사용될 수 있다는 것을 알았다. 이러한 특성을 사용함으로써, 각각이 에지를 위한 풀 메시지는 검사 노드 처리 동안에 저장될 필요가 없고, 그 저장은 노드에 상응하는 검사 노드 처리과정이 완료될 때 출력 메시지들을 구성하기 위한 처리 동안에 필요하게 될 양까지 감소된다. 메시지 압축을 사용함으로써, 검사 노드 프로세서 모듈을 위해 필요한 저장부는 대부분의 경우에, 메시지 압축이 본 발명에 따라 사용되지 않는 구현에 비해서 상당히 감소될 수 있다.
본 발명의 여러 특징들은 검사 노드 처리 모듈들에 관련된다. 처리 모듈들은 각각의 검사 노드와 연관된 메시지에 상응하는 메시지 정보를 압축 형태로 저장한다. 이를 위해서, 예컨대 검사 노드마다 하나의 엔트리를 포함하는 검사 노드 상태 메모리가 사용된다. 검사 노드에 대한 상태 정보는 검사 노드에 대한 완전한 메시지들 세트보다는 오히려 그 특정 검사 노드에 대한 입력 메시지로부터 생성되는 정보를 포함한다. 따라서, 그 상태 정보는 압축된 메시지 정보 세트를 나타낸다. 각각의 검사 노드에 상응하는 압축된 정보는 각각의 입력 메시지, 예컨대 검사 노드 메시지에 대한 가변 노드가 수신될 때 업데이팅된다. 입력 메시지들은 각각의 개별적인 검사 노드에 대한 입력 메시지들이 연속해서 수신되어 처리될 필요가 없는 것과 같은 임의의 순서로 수신된다. 따라서, 본 발명에 따르면, 다른 검사 노드에 대한 모든 입력 메시지를 수신할 필요없이, 하나의 검사 노드에 상응하는 입력 메시지가 처리될 수 있고, 이어서 다른 검사 노드에 상응하는 입력 메시지가 처리될 수 있다. 이는 에지들이 LDPC 그래프의 검사 노드 측에서 나타나는 순서와 반대인 가변 노드 에지 순서대로 가변 내지 검사 노드 메시지가 수신되어 처리될 수 있게 한다. 따라서, 가변 노드 순서대로 가변 노드 처리 엘리먼트에서 메시지들의 처리를 가정하면, 본 발명의 검사 노드 처리 모듈에서 처리에 앞서 생성된 메시지를 재순서화하는 것이 불필요하다.
개별적인 검사 노드에 상응하는 검사 노드 메시지들에 대한 풀 세트의 가변 노드가 처리된 이후에는, 검사 노드와 연관된 풀 세트의 메시지에 상응하는 압축된 메시지 정보가 액세스되어 처리되는데, 예컨대 여기서 추출 처리들로도 지칭되는 압축해제 처리가 이루어진다. 추출 처리는 예컨대 구현되는 특정 코드 구조 및 그 코드 구조 내의 개별적인 검사 노드의 위치에 의해서 지시되는 개별적인 검사 노드에 의해서 생성될 가변 노드 메시지들에 대한 풀 세트 검사 노드를 생성한다.
일부 실시예들에서는, 각각의 검사 노드에 대한 저장된 상태가 두 개의 값들, 예컨대 제 1 및 제 2 값들을 포함한다. 이러한 값들은 메시지 크기 값들일 수 있다. 그 상태는 또한 그 값들 중 하나와 연관된 에지 위치 정보를 포함한다. 이러한 정보는 특정 검사 노드에 의해서 생성되는 출력 메시지의 크기 부분을 생성하기 위해서 사용되는 상태를 나타낸다. 신뢰도 정보를 나타내는 메시지 크기 정보 이외에도, 각각의 검사 노드에 대해서 누산된 부호 비트 값이 저장된다. 누산된 부호 비트는 각각의 출력 메시지에 대한 부호 비트를 생성하기 위해 마지막으로 생성된 누산된 부호 비트 값을 통해 처리되는 검사 노드에 대한 각 입력 메시지의 부호 비트를 XOR함으로써 생성된다.
하나의 특정 실시예에서는, 검사 노드에 상응하는 수신된 각각의 입력 메시지에 대해서 추가적인 부호 비트 정보가 저장된다. 그러한 실시예에서는, 검사 노드 에지에서 수신되는 각각의 메시지로부터의 입력 부호 비트가 저장된다. 따라서, 그러한 실시예에서는, 각각의 검사 노드에 대한 누산된 부호 비트 이외에도, 각각의 검사 노드 에지에 대한 입력 부호 비트가 저장되는데, 여기 각각의 에지는 상이한 입력 메시지에 상응한다.
개별적인 검사 노드에 상응하는 풀 세트의 입력 메시지들은 검사 노드들이 디코딩 처리 동안에 훨씬 나중에 처리될 입력 메시지들을 가변 노드들로부터 수신하지 않는 경우에 코드 구조를 사용함으로써 특정의 개별적인 검사 노드로부터의 출력 메시지가 생성되기에 앞서 처리될 필요가 있지만, 적어도 일부 검사 노드들에 대한 출력 메시지들은 구현되는 그래프 구조에서 존재하는 풀 세트의 가변 노드들로부터의 메시지들을 처리할 필요없이 생성될 수 있다. 그래프의 일부분에서 발생하는 검사 노드들의 처리를 수행하는 이점을 고려하는 코드를 사용하여 그 코드들이 훨씬 나중에 처리될 가변 노드들로부터의 메시지들에 의존하지 않도록 함으로써, 검사 노드 출력 메시지 생성과 연관된 시간 지연들이 감소되거나 및/또는 최소화될 수 있다.
일단 풀 세트의 입력 메시지들, 예컨대 각각의 검사 노드 에지에 대한 하나의 입력 메시지가 처리되면, 검사 노드에 대한 검사 노드 출력 메시지가 생성될 수 있다. 가변 노드에 대한 입력 메시지로부터 기능하는 검사 노드 출력 메시지를 생성하기 위해서, 본 발명의 검사 노드 처리 모듈은 검사 노드와 연관되는 검사 노드 상태에 대한 출력 메시지를 판독한다. 저장된 크기 상태 정보, 예컨대 첫 번째 크기 값 및 두 번째 크기 값과 에지 식별자로부터, 검사 노드 처리 모듈은 가변 노드 메시지에 대해서 하나의 에지, 예컨대 검사 노드에 대한 완전한 출력 메시지를 추출, 예컨대 생성하기 위해서 그 상태를 처리한다. 그 처리는 풀 세트의 출력 메시지가 생성될 때까지 검사 노드의 각 에지에 대해 반복될 것이다. 검사 노드 상태 정보의 처리는 사실상 압축해제 동작이다.
일부 실시예들에서는, 압축된 상태로 검사 노드 메시지 크기(신뢰도) 정보를 저장하기 위해서 최소 합 알고리즘이 사용된다. 그러한 실시예에서는, 각각의 검사 노드에 대해서 최소 메시지 크기 값, 두 번째 최소 메시지 크기 값 및 그 최소 메시지 크기 값이 상응하는 에지를 나타낸 정보가 저장된다. 이러한 정보는 누산된 부호 비트 정보에 추가된다. 이러한 정보는 특정 검사 노드에 대한 입력 메시지들 각각이 처리될 때까지는 정보가 상응하는 특정 검사 노드에 상응한 입력 메시지가 수신될 때마다 업데이팅된다.
에지에 상응하는 출력 메시지의 크기 부분을 생성하기 위해서, 그 에지는 최소 메시지 값이 수신된 에지를 나타내는 저장된 에지 식별자와 비교된다. 만약 출력 메시지가 생성되어진 에지가 저장된 에지 식별자와 일치하지 않는다면, 최소 메시지 값이 출력 메시지의 크기로서 사용된다. 만약 저장된 에지 식별자가 출력 메시지가 생성되는 에지와 일치한다면, 두 번째 최소 값이 출력 메시지 값으로서 사용된다. 따라서, 검사 노드에 의해서 생성되는 출력 메시지의 크기들은 최소 값이나 두 번째 최소 값을 갖지 않을 것이며, 상기 두 번째 최소 값은 검사 노드에 의해 수신되어진 최소 크기 값을 공급한 단일 에지에서의 출력이다.
계산적으로, 이는 두 개의 가능한 신뢰도들(A 및 B) 사이에서 멀티플렉싱(선택) 동작을 수행하는 것이 되는데, 여기서 A 및 B는 두 개의 가능한 출력 크기 값들, 예컨대 특정 검사 노드에 의해서 수신되는 최소 또는 두 번째 최소 수신된 메시지 크기이다. 에지(가변 내지 검사 노드 접속)가 크기 값(A)(최소 값)이 수신된 에지를 나타내는 저장된 에지 인덱스와 일치한다면, 출력 메시지의 크기 부분에 대해서 제 2 출력 크기 값(B)이 선택된다. 그렇지 않다면, 최소 크기 값(A)이 출력된다.
출력 메시지의 부호 비트가 다양한 방식으로 생성될 수 있다. 하나의 특정한 예시적인 실시예에서는, 검사 노드에 상응하는 누산된 부호 비트 값이 저장 메시지가 에지에 대한 출력 메시지의 부호 비트 값을 생성하기 위해서 생성되고 있는 상기 에지에 상응하는 저장되어 있는 수신된 부호 비트 값과 결합, 예컨대 XOR된다. 이러한 처리는 출력 메시지가 생성되는 각각의 에지에 대한 출력 메시지 생성 처리의 크기 생성 부분과 같이 반복된다.
구현의 관점에서, 본 발명의 검사 노드 처리 방법은 메시지 압축을 사용함으로써 검사 노드 처리를 구현하는데 필요한 메모리의 양을 감소시키는 장점을 갖는다. 구현 관점에서, 이는 검사 노드들이 오늘날 사용되고 또한 장래에 사용될 수 있는 많은 강한 LDPC 코드들을 흔히 갖는 매우 많은 수의 에지들일 수 있는 경우에 특히 중요할 수 있다.
일예에서는 1 부호 비트 및 4 크기 비트들을 포함하는 5 비트 메시지들의 경우를 고려하자. 위의 가정 하에서는, 검사 노드로부터의 출력 정보가 거의 K+8+log2K 비트들까지 압축될 수 있고, 여기서 K는 인입 및 출력 메시지들의 수이다. 5비트 메시지 예에서는, K 저장 비트들이 K 입력 메시지들 각각에 상응하는 부호 비트들을 저장하기 위해서 사용되고, 8 비트들이 출력 메시지가 가정할 수 있는 두 개의 가능한 크기 값들 각각, 예컨대 최소 입력 메시지 크기 값 및 그 다음으로 가장 작은 입력 메시지 크기 값을 저장하기 위해 사용될 것이며, 제 2 신뢰도를 수신할 에지(메시지)를 나타내기 위해서 사용되는 반면에, log2K 비트들이 다른 에지들이 최소 입력 메시지 크기 값을 수신할 것이다. 만약 K가 크다면(이는 고속 LDPC 코드들에 대한 경우일 것임), 이러한 메시지 정보 저장 기술의 사용은 출력 메시지들을 생성하는 과정의 일부로서 각각의 수신된 메시지에 상응하는 풀 세트의 비트들을 저장하는 구현에 비교해서 상당한 절감을 유도한다.
비록 일부 추가적인 처리가 완전한 메시지들이 저장되는 실시예들에 비해서, 저장된 상태로부터 출력 메시지, 예컨대 최소 메시지 크기, 두 번째 최소 메시지 크기, 그 최소 메시지 크기에 상응하는 에지 위치, 및 그 에지 각각에 상응하는 저장된 부호 비트들을 생성하기 위해 필요할 지라도, 그 대신에 상당한 메모리 절감이 있을 수 있다.
본 발명의 검사 노드 처리 모듈은 검사 노드 처리 모듈로의 입력으로서 기능하는 가변 내지 검사 노드 메시지들이 특정한 메시지 처리 순서에 상관없이 수신되어 처리될 수 있다는 추가적인 장점을 갖는다. 출력 메시지들이 검사 노드에 대한 입력 메시지들 각각이 처리된 이후에 생성된다.
본 발명의 많은 추가적인 특징들 및 장점들이 다음의 상세한 설명으로부터 자명해질 것이다.
도 1은 10개의 가변적인 노드들 및 5개의 검사 노드들을 포함하는 예시적인 LDPC 코드를 도시하는 그래프.
도 2는 도 1에 도시된 그래프에 대한 대안으로서 행렬 표현의 사용을 통해 코드를 나타내는 도 1의 LDPC 코드에 대한 대안적인 도면.
도 3은 본 발명에 따라 구현되는 구속 노드 처리 모듈을 나타내는 도면.
도 4는 본 발명에 따라 구현되는 LDPC 디코더를 나타내는 도면.
도 5는 본 발명에 따른 N 병렬 구속 노드 및 가변 노드 처리 엘리먼트들을 사용하여 구현되는 다른 LDPC 디코더를 나타내는 도면.
도 6은 예컨대 도 4의 디코더에서 디코딩을 제어하는데 사용될 수 있는 예시적인 LDPC 코드 구조를 나타내는 도면.
도 7은 본 발명에 따른 예컨대 도 4의 예시적인 디코더에서 디코딩을 제어하는데 사용될 수 있는 다른 예시적인 LDPC 코드 구조를 나타내는 도면.
도 8은 도 4의 디코더 및 도 7에 도시된 LDPC 코드 구조를 사용하여 한 세트의 입력 값들에 대한 디코딩 동작을 수행한 결과들을 나타내는 도면.
다음의 3개의 관련된 출원들이 본 출원의 참조문헌으로서 특별히 포함되며, 고려될 것이다: 2001년 10월 10일에 출원된 미국 특허 출원 09/975,331 "METHODS AND APPARATUS FOR DECODING LDPC CODES", 2002년4월 4일에 출원된 미국 특허 출원된 10/117,264 "NODE PROCESSORS FOR USE IN PARITY CHECK DECODERS", 및 2003년 7월 11일에 출원된 미국 특허 출원 "METHODS AND APPARATUS FOR ENCODING LDPC CODES".
본 발명의 여러 실시예들은 LDPC 디코더 구조의 간단한 구현, 예컨대 낮은 하드웨어 복잡성을 갖는 구현을 제공하는 방법들 및 장치에 관한 것이다. 본 발명의 방법들 및 장치는, 일부 알고리즘들의 경우에 검사 노드로부터 전송된 신뢰도들이 두 가지 가능한 값들 중 하나를 취하고 그 값들 중 하나는 하나의 메시지 에지만을 따라 전송된다는 관측을 이용한다. 이는 예컨대 최소-합 알고리즘에 대한 경 우이다. 검사 노드로부터 전송되는 신뢰도들이 단지 두 가지의 가능한 값들을 취하고 그 값들 중 하나가 검사 노드에 첨부된 단지 하나의 메시지 에지를 따라 전송되는 특성을 최소-합 알고리즘을 통해 공유하는 압축된 형태, 예컨대 알고리즘들로 LDPC 메시지 정보를 저장하기 위해서 사용될 수 있는 다른 알고리즘들에 대해 동일한 상황들이 존재할 수 있다.
본 발명에 따르면, 디코딩을 제어하는데 사용되는 LDPC 코드 구조의 각각의 검사 노드가 상태(S)와 연관된다. 그 상태는 출력 메시지들을 생성하기 위해 사용될 현재 디코딩 반복에서 인입 메시지들의 신뢰도(메시지 크기) 정보를 포함할 것이다. SK가 메시지들(m1,...,mk)이 포함되었다고 가정한 상태를 나타낸다고 하자. 다음으로, 상태 업데이트 함수(G)가 제공되면, 검사 노드에 상응하는 수신된 가변 내지 검사 노드 메시지를 처리한 이후에 발생하는 정해진 검사 노드에 대한 업데이팅된 상태가 다음과 같이 표현될 수 있다:
SK+1=G(mK +1,SK)
본 발명의 여러 실시예들에 따르면, 상태 업데이트 동작이 압축된 형태로 검사 노드에 상응하는 다수의 메시지들의 크기 부분을 나타내는 상태에 대해서 수행된다. 따라서, 상태 업데이트 동작은 인입 메시지들을 압축한다.
압축된 형태로 메시지 정보를 저장하기 위해서 MINSUM 알고리즘을 사용하는 구현의 경우에는, 저장된 메시지 상태가 예컨대 (mA, mB, A, s)의 형태일 수 있다. 여기서, mA는 상태가 상응하는 검사 노드에 의해서 지금까지 확인된 최소 인입 신뢰 도(메시지 크기)이고, mB는 지금까지 확인된 두 번째로 가장 작은 신뢰도이며, A는 신뢰도(mA)의 인입 메시지를 운반한 에지를 나타내어 어떤 메시지 에지가 최소 값(mA)을 공급하였는지를 나타내며, s는 상태 정보가 상응하는 검사 노드에 상응한 인입 메시지들의 부호들의 XOR이다.
함수(G)를 사용하여 검사 노드들에 상응하는 상태 정보에 대한 업데이트들을 수행함으로써, 그리고 개별적인 검사 노드에 상응하는 상태가 메시지가 보내지는 검사 노드에 따라 인입 메시지들을 통한 업데이팅을 위해서 저장되고 검색되는 디코더 구현을 제공함으로써, 검사 노드 프로세서에 결합하는 메시지들의 순서가 본질적으로 임의적으로 될 수 있다. 따라서, 본 발명에 따르면, 가변 내지 검사 노드 메시지들은 자신들이 수신되는 순서대로 처리되는 검사 노드 프로세서 모듈에 가변 노드 순서대로 도달할 수 있다. 이는 양 측(가변 노드 및 검사 노드)이 가변 노드 및 검사 노드 프로세서들로서 구현되는 본 발명에 따라 구현되는 도 4 및 도 5에 구현된 디코더들(400 및 450)과 같은 LDPC 디코더들이 가변 노드 순서대로 각각 업데이팅될 수 있게 한다. 게다가, 가변 노드 및 검사 노드 처리 엘리먼트들 모두는 일부 실시예들에서는 병렬로, 예컨대 동시에 동작할 수 있고 또한 그렇게 동작한다.
본 발명의 그러한 디코더 구현들은 가변 노드 처리가 가변 노드 메시지 순서대로 수행되고 검사 노드 처리가 검사 노드 메시지 순서대로 수행되며 메모리가 검사 노드와 가변 노드 프로세서들 사이에 통과되는 메시지의 레코딩을 저장하고 가 능하게 하기 위해 사용되는 디코더 구현들에 비교해서 요구되는 메모리의 상당한 절감을 가능하게 한다.
본 발명의 LDPC 디코더 설계의 기본적인 원리들 및 장점들 중 일부를 설명함으로써, 본 발명의 하나 이상의 특징들을 구현하는 여러 예시적인 모듈들 및 LDPC 디코더들이 이제 설명될 것이다.
도 3은 본 발명에 따라 구현되는 구속 노드 처리 모듈로서도 공지된 검사 노드 처리 모듈(300)을 도시한다. 모듈(300)은 입력(302)을 통해 가변 내지 검사 노드(V2C) 메시지를 수신하고, 제어 신호 입력(324)을 통해 제어 정보를 수신하며, 출력(322)을 통해 출력되는 가변 노드(C2V) 메시지에 대한 검사 노드를 생성한다. 검사 노드 처리 모듈(300)은 가변 노드 메시지들에 대한 검사 노드를 생성하기 위해 사용될 수 있는 메시지 정보를 압축 형태로 저장한다.
검사 노드 처리 모듈(300)은 도 3에 도시된 바와 같이 서로 연결되는 검사 노드 상태 메모리 모듈(310), 제어 모듈(309), 검사 노드 프로세서 엘리먼트(308), 메시지 부호 메모리(312), 검사 노드 상태 버퍼 메모리(314) 및 검사 노드 추출기(316)를 포함한다. 도시된 실시예에서, 각각의 수신된 V2C 메시지에 대한 부호 값은 크기 값과 분류된다. 크기 메시지 값은 입력(304)을 통해서 검사 노드 프로세서(308)에 공급되는 반면에, 각각의 수신된 메시지에 상응하는 부호 값은 검사 노드 프로세서 엘리먼트(308)에 공급되며 또한 저장된 상태(321, 323)로부터 출력 C2V 메시지들을 생성하는데 있어 나중에 사용될 부호 비트를 저장하는 메시지 부호 메모리(312)에 저장된다.
검사 노드 상태 메모리(310)는 디코딩을 제어하는데 사용되고 있는 코드 구조의 각 검사 노드에 대해서, 메모리 엘리먼트가 상응하는 특정 검사 노드에 대한 상태를 저장하는데 사용되는 단일 상태 메모리 엘리먼트(321, 323)를 포함한다. 각각의 검사 노드 상태 메모리(321, 323)는 디코딩을 제어하는데 사용되는 LDPC 그래프 구조에 상응하는 하나의 검사 노드에 상응한 상태 정보를 저장한다.
도 3에서는, 상대가 위에서 설명된 최소 합 알고리즘에 상응하는 압축된 표현으로 저장된다. 엔트리는 디코딩을 제어하기 위해 사용되고 있는 LDPC 그래프의 하나의 완전한 표현에 포함되어진 에지 메시지들에 상응하는 각각의 처리 반복에 대한 엔트리에 상응하여 검사 노드 처리의 초기에 리셋된다. 그래프의 한 반복으로부터 다른 반복으로의 검사 노드들의 처리는 첫 번째 반복이 완료되기 이전에 발생할 수 있는데, 예컨대 일단 그래프에서 하나의 검사 노드에 상응하는 풀 세트의 가변 노드들이 완료되면 발생할 수 있다. 이러한 경우에는, 모든 세트들의 검사 노드 상태 정보(321, 323)를 리셋하는 것이 동시에 발생하지 않을 것이다. 오히려, 검사 노드에 상응하는 검사 노드 상태가 완전히 업데이팅될 것이며, 이어서 C2V 메시지들을 생성하는데 있어 사용하기 위해 검사 노드 상태 버퍼 메모리에 저장되어진 이후에 리셋된다.
각각의 상태 엔트리(321, 323)는 디코딩을 제어하기 위해 사용되는 그래프 구조에서 하나의 검사 노드에 상응한다. 각각의 상태 엔트리(321, 323)는 상기 엔트리가 상응하는 검사 노드에 보내진 각각의 수신된 V2C 메시지에 상응하는 부호 비트들의 XOR인 1 비트 값(S), 특정 검사 노드에 상응하는 수신된 최소 메시지 크 기를 나타내는 최소 값(mA), 특정 검사 노드에 상응하는 두 번째로 가장 작은 메시지 크기 값(mB), 및 가장 낮은 최소 값(mA)이 수신된 메시지 에지를 나타내는 인덱스(IA)를 포함한다.
제어 신호 입력(324)은 디코딩을 제어하기 위해 사용되는 코드 구조에 따라, 예컨대 그래프 에지들의 수 및 가변 및 검사 노드 처리 엘리먼트들 사이에 통과될 메시지들에 따라 검사 노드 처리 모듈의 동작을 제어하기 위해서 사용되는 제어 신호를 수신한다. 제어 신호(324)는 어떤 에지가 그리고 그에 따라 어떤 V2C 메시지가 특정 시간에 입력(302)에서 수신되고 있는지를 나타내는 정보를 포함한다. 이러한 동일 신호가, V2C 입력 메시지 시간 및 일반적으로 발생할 바람직한 C2V 출력 메시지 시간 사이의 정해지거나 공지된 관계가 존재하는 경우들에 C2V 메시지 생성을 유도하기 위해서 사용될 수 있다. 제어 신호(324)가 제어 모듈(309), 메시지 부호 메모리(312) 및 검사 노드 판독 프로세서(추출기)(316)에 공급된다. 제어 모듈(309)은 수신된 V2C 메시지가 어떤 검사 노드에 상응하는지를 결정하기 위해서 수신된 제어 신호를 사용한다. 수신된 제어 정보에 기초하여, 제어 모듈은 업데이팅을 위해서 검사 노드 상태 메모리(310)로부터 어떤 세트의 검사 노드 상태 정보(321, 323)가 판독될 지를 결정한다. 따라서, 제어 모듈은 에지 정보에 기초하여 수신 메시지가 상응하는 검사 노드를 결정한다. 일단 검사 노드 프로세서가 아래에 설명될 바와 같이 수신된 메시지 정보를 사용하여 검색된 상태 정보를 업데이팅하면, 업데이팅될 상태가 검색되어진 검색 노드 상태 엔트리(321, 323)에 업데이팅 된 상태가 다시 기록된다. 이러한 처리는 특정 검사 노드에 대한 검사 노드 상태가 특정 처리 반복 동안에 그 검사 노드에 전달되는 마지막 V2C 메시지를 사용하여 완전히 업데팅되었다는 것을 제어 모듈(309)이 검사 노드 프로세서 엘리먼트(308)에 시그널링할 때까지 계속할 것이다. 완전히 업데이팅되는 검사 노드에 대한 상태를 통해서, 검사 노드 프로세서는 검사 노드 상태에 디폴트 값들을 기록함으로써 검사 노드 상태의 값들을 리셋할 것이며, 메시지 추출에서 사용될 검사 노드 상태 버퍼(314)에 상기 완전히 업데이팅된 검사 노드 상태를 출력한다. 검사 노드 상태 버퍼 메모리(314)는 동일한 컨텐트를 엔트리들(321, 323)로서 갖지만 검사 노드에 대한 완전히 업데이팅된 상태 세트에 상응하는 값들을 갖는 하나 이상의 검사 노드들에 대한 상태 엔트리들을 포함한다. 검사 노드 상태 버퍼 메모리(314)는 입력(324)으로부터 획득되는 제어 신호에 기초하여 상기 완전히 업데이팅된 검사 노드 정보를 저장할 엔트리를 알고 있다.
검사 노드 상태 메모리(310)는 저장될 상태 정보를 수신하기 위한 업데이팅된 검사 노드 상태 메시지 입력(327)과, 어떤 세트의 검사 노드 상태 정보(321, 323)가 액세스될 것인지 및 업데이팅된 상태 정보가 저장되거나 또는 표시된 세트의 검사 노드 상태 정보로부터 판독될지를 나타내는 제어 신호를 수신하기 위한 제어 입력(327)을 포함한다. 검사 노드 상태 메모리로부터 판독되는 검사 노드 상태 정보(321 또는 323)는 출력(329)을 통해 출력되며, 그것이 상태 업데이트 동작에서 사용되는 검사 노드 프로세서 엘리먼트(308)의 상태 입력에 공급된다.
수신된 V2C 메시지에 포함되는 정보에 따라 메모리로부터 검색되는 상태 정 보 세트에서 검사 노드 프로세서(308)에 의해 수행되는 상태 업데이트 동작은 다음과 같다: 수신되는 C2V 메시지의 크기(mr)가 수신되는 메시지가 전송될 검사 노드에 상응하는 검색된 상태 정보에서의 최소 크기(mA)에 비교된다.
만약 mr이 mA보다 작다면, mB는 업데이팅된 mB를 생성하기 위해 mA와 동일하게 설정되고 mA는 mr과 동일하게 설정되며, 그럼으로써 mr은 업데이팅된 최소 값이 되고, 이전의 최소 값은 검사 노드에 대한 현재의 두 번째 최소 값이 된다. 또한, 메시지가 처리되고 있는 메시지 에지, 예컨대 메시지가 업데이팅된 최소 크기 값을 제공하는 메시지 에지를 나타내기 위해서 최소 값(mA)에 상응하는 메시지 에지를 나타내는 인덱스(I)가 수신되었다.
만약 mr이 mB보다 작지만 mA보다는 크다면, mB는 mA 또는 I를 변경하지 않고 m과 동일하게 설정된다.
만약 mr이 mb와 동일하거나 그보다 크다면, 메모리로부터 판독되는 mA, mb 및 I는 변경되지 않고, 업데이팅된 상태가 메모리로부터 판독되어진 그러한 엘리먼트들에 대한 값들을 포함할 것이다.
수신되는 메시지 값 및 저장된 최소 값들의 상대적인 크기에 상관없이, 검사 노드에 대한 누산된 신호 비트(S)가 저장된 검사 노드 상태 엔트리로부터 판독되는 부호 비트를 통해 수신된 메시지의 부호 비트에 XOR을 수행함으로써 각각의 수신된 메시지를 통해 업데이팅될 것이다. XOR 연산의 결과는 완전히 업데이팅되지 않은 검사 노드의 경우에는 메모리에 다시 기록되거나 또는 완전히 업데이팅된 검사 노드 엔트리의 경우에는 검사 노드 상태 메모리 버퍼(314)에 공급되는 검사 노드에 대한 업데이팅된 엔트리의 부호 S 비트가 된다. 위에서 설명된 바와 같이, 완전히 업데이팅 검사 노드 엔트리의 경우에는, 디폴트 값들이 검사 노드 상태가 판독된 검사 노드의 엔트리(321, 323)에 기록될 것이고, 그로 인해 그래프 처리의 다른 반복을 위한 정보를 리셋할 것이다. 최소 값(mA) 및 두 번째 최소 값(mB)이 일반적으로 이러한 엘리먼트들이 가정할 수 있는 최소 값들일 것이다.
위에서 설명된 검사 노드 처리 및 상태 업데이트 기술이 제공된다면, 검사 노드 프로세서 엘리먼트(308)가 예컨대 검사 노드 에지 순서와 반대로 가변 노드에서 임의적인 순서대로 가변 내지 검사 노드 메시지들을 처리할 수 있다는 것이 자명해질 것이다. 이는, 가변 노드 프로세서들이 일반적으로 가변 노드 에지 순서대로 동작하는 경우에, V2C 메시지들이 가변 노드 프로세서 동작의 결과로서 자연적으로 생성되는 순서대로 검사 노드 프로세서 엘리먼트(308)가 상기 V2C 메시지들을 처리할 수 있게 한다.
검사 노드에 대한 완전히 업데이팅된 상태 정보가 C2V 출력 메시지를 생성하기 위해서 필요한 정보의 압축 형태 표현이기 때문에, 출력(322)을 통해 출력되는 실제 C2V 메시지들을 구성하기 위해서 추가적인 처리과정이 사용된다. 검사 노드 판독 프로세서, 예컨대 추출기(316)는 검사 노드 상태 메모리(314)에 저장된 완전히 업데이팅된 상태 및 메모리(312)에 저장된 부호 값들로부터 완전한 C2V 메시지 들을 생성하는데, 각각의 수신된 V2C 메시지에 대한 하나의 부호 값(313, 315)이 저장된다.
따라서, "판독"을 위해서는, C2V 메시지가 만약 압축된 저장 형태가 사용되지 않은 경우 필요 없게 될 압축해제를 수행하기 위해서 메시지들이 압축된 형태로 저장되지 않는 구현들과 비교했을 때 추가적인 처리과정을 필요로 한다. 저장되는 인입 메시지 부호 값들(313, 315)이 부호 메모리로부터 직접 판독된다. 메모리(312)로부터 판독되는 각각의 부호 값은 출력 C2V 메시지와 연관된 메시지 에지에 상응하는 출력 부호를 얻기 위해서 검사 노드에 상응하는 완전히 업데이팅된 합(S)과 XOR된다. 따라서, 메시지 에지에 대한 출력 부호가 그 메시지 에지로부터 수신되는 메시지 부호와, 그 메시지 부호가 LDPC 그래프에서 첨부되는 검사 노드에 상응하는 풀 세트의 메시지들의 XOR에 상응하는 누산된 부호 값(S)으로부터 생성된다. 신뢰도, 예컨대 메시지 크기 부분이 검사 노드에 대한 저장된 상태에 포함되어 있는 최소 값, 두 번째 최소 값 및 메시지 인덱스 값으로부터 추출된다. 만약 판독되는 에지의 인덱스가 A와 일치한다면, 신뢰도(mA)가 출력되고, 그렇지 않다면 신뢰도(mB)가 출력된다. 메시지 에지 식별자로서 기능하는 인덱스(A)를 나타내기 위한 많은 가능성들이 존재한다. 비록 간단한 에지 수가 인덱스(A)를 나타내는 한 가지 가능한 방법이지만, 다른 수를 갖는 방식들 및/또는 인덱싱 방법들이 또한 사용될 수 있다.
메시지 추출기(316)에 의해서 생성되는 메시지 크기가 크기 출력(318)을 통 해서 출력되는 반면에, 출력 메시지 부호는 출력(322)을 통해서 완전한 메시지 출력을 형성하도록 결합되는 출력(320)을 통해 출력된다.
본 발명의 창의적인 검사 노드 처리 모듈(300)이 도 3과 관련하여 설명되었고, 본 발명에 따른 예시적인 LDPC 디코더 구현에서의 모듈 사용이 이제 도 4를 참조하여 설명될 것이다.
도 4는 도 3에 도시된 검사 노드 처리 모듈(300)을 사용하여 구현되는 예시적인 LPDC 디코더(400)를 도시한다. 디코더(400)는 가변 노드 에지 순대로 가변 노드 처리 및 검사 노드 처리 모두를 수행한다. 디코더(400)는 검사 노드 처리 모듈(300) 외에도, 디코더 제어 모듈(402), 가변 노드 처리 엘리먼트(404), 소프트 입력 버퍼(406), 소프트/하드 출력 버퍼(412), 구속 검사 모듈(408) 및 반복 제어 로직 회로(410)를 포함한다.
디코딩될 입력 값들은 가변 노드 처리 엘리먼트(404)로의 로딩에 앞서 소프트 입력 버퍼(406)에 공급된다. 디코더 제어 모듈(402)은 디코딩 동작들을 제어하는데 사용될 LDPC 그래프 구조에 상응하는 저장된 디코딩 제어 정보에 따라서 디코더 제어 신호들을 생성하는 것을 책임진다. 디코더 제어 모듈은 도 3과 관련하여 위에서 설명된 검사 노드 처리 모듈 동작뿐만 아니라 가변 노드 처리 엘리먼트 동작을 제어하기 위해 사용되는 제어 신호를 생성한다. 디코더 제어 모듈의 제어 하에서, 가변 노드 처리 엘리먼트는 처리될 입력 데이터의 일부분, 예컨대 크기 정보 및 부호 비트를 포함하는 수신된 메시지 값이 순차적으로 로딩된다. 최초 반복 동안에는, 가변 노드(PE 404)에 의해 처리될 어떠한 기존의 구속 메시지들도 존재하 지 않고, V2C 메시지들이 입력 데이터를 처리함으로써 생성된다. V2C 메시지들이 생성되며, 가변 노드 메시지 에지 순서대로 입력 데이터로부터 출력된다. 크기 및 부호 값을 포함하고 있는 생성된 V2C 메시지들이 검사 노드 처리 모듈(300)의 V2C 입력(302)에 공급된다. 그 메시지는 또한 구속 검사 모듈(408)에 공급되는 반면, 소프트/하드 출력 핑퐁 버퍼는 각각의 생성된 V2C 메시지와 연관된 부호 비트를 수신한다. 구속 검사 모듈(408)은 디코더 그래프의 한 반복에 상응하는 수신된 메시지 부호 값들이 미리 결정된 디코딩 구속, 예컨대 패리티 검사를 충족하는지를 결정하기 위해 검사한다. 만약 메시지 처리 반복의 종료 후에 한 풀 세트의 V2C 및 C2V 메시지들이 생성되었다면, 구속 검사 모듈(408)은 패리티 검사가 충족되는지 여부를 결정한다. 모듈(408)은, 만약 현재 메시지 통과 디코딩 반복이 성공적인 디코딩을 유도하였다는 것을 검출하면 디코딩 완료 신호를 생성하나, 만약 디코딩이 성공적인 것으로 결정되지 않았다면 반복 완료 신호를 생성한다. 구속 검사 모듈(408)에 의해서 생성되는 신호는 반복 제어 로직(410)에 공급된다. 각각의 반복 종료 후에는, 그래프의 에지들에 상응하는 저장된 부호 값들은 구속 검사가 충족되지 않았다는 가정에서는 소프트 결정들로서 그리고 구속 검사가 충족되는 경우에는 하드 결정들로서 출력 버퍼(412)로부터 출력될 수 있다.
반복 제어 로직(410)은 패리티 검사 신호가 충족된다는 결과를 산출하지 않은 미리 선택된 수의 메시지 통과 반복들 이후에는 타임아웃 신호로서 실패된 디코딩을 시그널링할 것이고, 또는 패리티 검사가 타임아웃 이전에 충족된다면 성공적인 디코딩을 시그널링할 것이다. 따라서, 제어 로직(410)은 디코딩이 미리 선택된 수의 디코딩 반복들 내에 성공적으로 완료되지 않는 경우에는 디코딩을 종료할 타임아웃 기능을 포함한다.
LDPC 디코더(400)는 가변 및 검사 노드 처리 동작들 모두를 가변 노드 에지 순서에 따라 수행함으로써, 검사 노드 처리가 검사 노드 에지 순서대로 수행되고 또한 가변 노드 처리가 가변 노드 에지 순서대로 수행되는 다른 시스템들에 비해서 가변 노드 및 검사 노드 처리 엘리먼트들(308, 404) 사이의 메시지 저장 필요성을 감소시키거나 제거한다. 또한, 아래에서 논의될 바와 같이, LDPC 그래프 구조의 주의깊은 선택에 의해서, 풀 세트의 이중 구속 노드 상태 메모리 엔트리들(321, 323)을 제공할 필요없이 LDPC 그래프 구조의 각각의 반복 처리에 있어 오버랩이 존재할 수 있다.
디코더(400)를 사용한 디코딩 반복이 다음과 같이 진행될 수 있다. 가변 노드들은 한번에 하나가 업데이팅된다. 메시지들이 검사 노드 출력 상태 메모리 및 부호 메모리로터 판독되고, 출력 검사 노드 메시지들이 생성된다. 이러한 메시지들은 표준 가변 노드 처리 다음에 가변 노드들에서 합산되고 이어서 그 합산으로부터 감산된다. 출력 메시지들이 생성되었을 때, 그 출력 메시지들은 검사 노드 프로세서에 직접 전송되고, 상기 검사 노드 프로세서는 또한 상응하는 부분 상태를 메모리로부터 또한 검색한다. 그 상태는 업데이팅되어 부분 상태 메모리에 반환된다. 만약 V2C 메시지가 현지 반복에서 그 구속을 위한 마지막 메시지라면, 그 상태가 출력 상태 메모리에 기록될 수 있고, 부분 상태 메모리가 리셋된다.
도 4에 도시된 일반 LDPC 디코더 시스템 및 본 발명의 검사 노드 처리 모듈 (300)은 배치되어 동시에 작동하는 여러 구속 노드 및 가변 노드 처리 엘리먼트들의 사용을 지원하도록 본 발명에 따라 쉽게 적응될 수 있다. 도 5에서는, 디코더(500)가 N 구속 노드를 사용하여 구속 상태 추출 회로들, 및 가변 노드 처리 엘리먼트들을 동시에 동작시킨다. 도 5에서는, 구속 검사 모듈(308'), 반복 제어 로직(310'), 및 버퍼들(312' 및 306')이 도 4와 유사한 번호의 엘리먼트들을 통해 설명되는 바와 같이 동일하거나 유사한 방식으로 동작한다. 검사 노드 처리 모듈(300')의 다른 엘리먼트들이 또한 도 4와 유사한 번호를 갖는 엘리먼트들을 통해 설명되는 바와 같이 동일하거나 유사한 방식으로 동작한다. 그러나, 도 5의 실시예에서는, 엘리먼트(308')가 병렬로 배치된 N 구속 프로세서들(308)을 포함하는 반면에, 구속 노드 상태 메모리(324)는 또한 N 배의 많은 세트의 검사 노드를 통해 동작하도록 설계되며, 구속 상태 추출 모듈(316')이 N개의 메시지 추출 회로들을 포함한다. 한번에 N 세트의 상태 정보의 액세스를 지원하는 메모리(310')는 도 4의 실시예와 비교하여 어떠한 추가적인 상태 엔트리들로 포함하지 않아야 하는데, 그 이유는 상태 엔트리들의 수가 그래프에서 검사 노드들의 수에 의해 결정될 뿐 얼마나 많은 노드들이 병렬로 구현되는지는 결정되지 않기 때문이다.
도 5의 실시예는 디코딩을 제어하기 위한 더 큰 그래프를 생성하기 위해 작은 그래프를 변경하는 방법에 대해서 작은 그래프 설명 및 제어 정보를 사용하는 것에 기초하여 N개의 광범위한 디코딩 동작들을 지원하도록 설계되는 디코더 제어 모듈(502)을 포함한다. 작은 그래프에 대한 변경들은 예컨대 N 메시지들의 세트들이 동시에 통과되는 가변 및 검사 노드 처리 엘리먼트들 사이에 통과되는 메시지들 의 재순서화, 예컨대 회전으로서 구현될 수 있다. 특히, 도 5의 실시예에서는, 메시지들이 디코더(500)의 여러 엘리먼트들 사이에 통과될 때 스위치들(530, 526, 528)이 그 메시지들의 재순서화를 제어하기 위해서 사용된다. 재순서화는 제어 로직(518)에 저장된 그래프 설명 정보와, 그 제어 로직(518)에 의해 구동되는 컬럼 카운터(520)의 기능에 따라서 순열 맵(522)에 의해 생성되는 회전 신호들의 함수이다. 검사 노드 처리 모듈(300')에 공급되는 메시지들의 재순서화를 제어하는데 사용되는 회전 제어 신호들이 지연 라인(524)을 사용하여 지연시킴으로써 생성되는데, 회전 신호들 중 일부는 가변 처리 엘리먼트들(504)의 입력에 공급되는 메시지들의 재순서화를 가변적으로 제어하는데 사용된다.
본 발명에 따라 구현되는 검사 노드 프로세서 모듈(300)과 여러 LDPC 디코더들(400 및 500)이 설명되었지만, 그래프 설계, LDPC 코드 구조에 관한 여러 특징들 및 본 발명을 구현하는 디코더에서 특정 그래프 구조를 사용한 디코딩 구현들이 이제 논의될 것이다.
고속 응용을 위해 도 5에 도시된 바와 같은 디코더를 구현할 때, 프로젝트된 그래프로 종종 지칭되는 저장된 그래프 설명 정보에 의해서 설명되어진 작은 그래프는 통상적으로 매우 작을 것인데, 즉, 그것은 적은 수의 가변 노드들을 가질 것이다. 설명된 바와 같이, 그 구조는 각각의 클록 사이클 동안에 N개의 메시지들을 처리하는 것에 상응하는 클록 사이클당 하나의 프로젝트된 에지 업데이트를 수행한다. 만약 그 다음 그래프 반복이 시작하기 이전에 완전한 그래프 반복의 디코딩이 종료해야 한다면, 디코딩 시스템에 지연들이 도입될 것이다. 이는 긴 파이프라인 지연의 경우에, 예컨대 큰 그래프들의 경우에 비효율성을 포함할 수 있다. 파이프라인 지연은 각각의 에지가 처리를 개시한 이후에 에지들 각각에 대한 디코딩 동작을 완료하기 위해 필요한 추가 클록 사이클들이다. 만약 파이프라인 지연이 프로젝트된 그래프 크기에 비해 크다면, 이러한 추가 지연은 디코더를 상당히 느려지게 할 수 있다.
그러나, 적절한 그래프 설계에 의해서, 우리는 디코더(400)나 병렬 디코더(500)에서 발생하는 지연 문제를 개선할 수 있다.
프로젝트된 가변 노드들 세트(V)가 여러 세트들, 예컨대 적어도 세트들(SV1 및 SV2)로 분할될 수 있고, 여기서 SV1은 SV2에 앞서고, 프로젝트된 검사 노드들(C)의 세트가 적어도 수 세트들(SC1 및 SC2)로 분할될 수 있음으로써 SC1의 검사 노드들이 그래프의 에지들에 의해서 SV1의 가변 노드들에 접속할 수 있다는 것을 가정하자. 다음으로, 만약 처리가 가변 노드 순서대로 수행된다면, 가변 노드(V1)에 상응하는 메시지들이 제일 먼저 처리될 것이고, 이어서 가변 노드(V2)에 상응하는 메시지들이 처리될 것이며, 다음으로 가변 노드(V3)로부터의 메시지들이 처리될 것이며, 계속해서 이러한 방식으로 처리될 것이다. 이러한 경우에, 제 1 세트의 검사 노드들(SC1)에 상응하는 메시지들의 처리는 SV1의 마지막 가변 노드에 상응하는 마지막 메시지가 처리되었을 때마다 또는 SC1의 마지막 검사 노드가 SV2의 마지막 가변 노드의 마지막 에지에 접속되지 않은 경우에는 그 이전에 완료될 것이다. 세트(SC1)에서 검사 노드들에 상응하는 최종적인 완전히 완료된 상태가 V2C 메시지들을 생성하는데 있어 사용하기 위해 검사 노드 상태 메모리에 저장될 수 있는 반 면에, 그 다음 그래프 반복을 위한 가변 노드(V1)로부터의 V2C 메시지들에 대한 처리가 시작된다. 따라서, 구속 노드 처리 모듈(300)이 그래프 처리의 완료되지 않은 반복에 상응하는 V2C 메시지들을 여전히 처리하고 있는 동안에 그래프 처리의 그 다음 반복이 시작될 수 있다.
그 이유는 가변 노드들 세트(SV2)가 반복 n+1에서 시작할 때 C1에서의 구속들이 반복 n에서 이미 완전히 업데이팅되었기 때문이다. 이러한 타입의 분할을 갖도록 그래프를 구속하는 것은 후속하는 반복들이 시간적으로 오버랩할 수 있게 하고, 파이프라인 지연으로 인한 결함을 효과적으로 감소시키거나 및/또는 제거할 수 있다.
LDPC 코드 및 그러한 특성들을 갖는 상응하는 그래프 구조(600)가 도 6에 도시되어 있다. 도 6에서는, 그래프가 C1 내지 C8로 식별되는 8개의 검사 노드들(602) 및 V1 내지 V16으로 식별되는 16개의 가변 노드들(604)을 포함한다. 가변 노드 세트(SV1)에 포함된 가변 노드들(V1 내지 V16)로부터의 메시지들이 구속 노드 프로세서 모듈(300)에 의해 처리될 때마다, 첫 번째 4개의 구속 노드들(C1 내지 C4)에 상응하는 상태가 완전히 업데이팅될 것이다. 이러한 완전히 업데이팅된 상태는 그래프 처리의 그 다음 반복에서 사용될 구속 노드들(C1 내지 C4)에 상응하는 구속 노드 엔트리들을 자유롭게 하는 구속 노드 버퍼 메모리(314)에 전송될 수 있다. 따라서, 세트(SC2)의 구속 노드들, 즉, 구속 노드들(C5, C6, C7 및 C8)에 관한 처리 가 한 반복 동안에 계속될 때, 세트(SC1)의 노드에 상응하는 그 반복에 대한 C2V 메시지들이 생성될 것이고, 동시에 그 다음 반복에 대한 구속 노드 처리가 현재 반복과 연관된 진행중인 처리를 오버랩함으로써 시작될 수 있다.
본 발명의 LDPC 디코더 방법들 및 장치는 검사 노드들의 수가 그래프에서 에지들의 수보다 종종 상당히 작은 경우에 고속 코드들에 특별히 매우 적합하다. 이러한 경우에는, 본 발명에 따른 사용되는 상태 메모리가 그렇지 않으면 완전한 메시지가 구속 노드 처리용으로 저장된 경우에 필요하게 될 에지 메모리보다 상당히 작기 쉬울 것이다.
도 7은 디코더 처리, 예컨대 도 4의 디코더(400)가 그래프의 첫 번째 처리 반복 동안에 가변 노드들에 로딩되는 메시지 값들(0, -1, 5 및 4)을 갖는 예시적인 입력 데이터 세트를 디코딩하는데 사용될 때 발생하는 처리를 설명하기 위해서 사용되어질 비교적 간단한 그래프를 도시한다.
도 7에서는, 그래프(700)가 0 내지 8의 가변 노드 순서대로 9개의 에지들에 의해 서로 연결되는 4개의 가변 노드들(706) 및 총 3개의 검사 노드들(702)을 포함한다. 에지들이 검사 노드 측으로부터 번호가 정해졌다면 그 에지들은 가변 노드들보다는 검사 노드들에서 상이한 순서대로 나타날 것이기 때문에 상이한 번호 시퀀스를 가질 것이다. 메시지들은 도시된 에지들을 따라 가변 노드들(706)과 검사 노드들(702) 사이에 앞뒤로 전송된다. 검사 노드들(702)은 제 1 내지 제 3 검사 노드들(710, 712, 714)을 포함하는 반면에, 가변 노드들(706)은 제 1 내지 제 4 가변 노드들(720, 722, 724, 726)을 포함한다.
디코더(400) 및 도 7에 도시된 코드 구조를 사용함으로 인한 여러 최종 값들이 도 8에 도시되어 있다. 도 8은 수신된 메시지들(0, -1, 5 및 4)을 디코더(400)에 로딩하는데 사용되는 초기 반복에 후속하고 처음으로 메시지들을 처리하는 두 번의 풀(full) 디코딩 처리 반복들의 결과들을 도시한다. 음(negative)은 메시지와 연관되는 등가적으로 1 비트인 음 부호 비트를 나타내기 위해 제 2 입력 값 앞에 사용되는 반면, 음이 아닌 부호는 등가적으로 0 비트인 양(positive) 부호 비트를 나타낸다. 따라서, 제 2 메시지(-1)는 음 부호 비트를 갖는 반면에, 제 1, 제 3 및 제 4 입력 메시지들은 양 부호 비트를 갖는다. 첫 번째 처리 반복의 종류 후에는, 검사 노드들(C1, C2 및 C3)에 상응하는 상태 메모리 엔트리들이 상태 메모리 엔트리 값들 세트(802)에서 도 8의 상단에 도시된 값을 포함한다.
반복은 V2C 메시지의 추출을 통해 시작된다. 최초 반복에서는, 추출된 C2V 메시지들이 0으로서 설정된다. 이러한 메시지들은 현재 반복의 일부로서 가변 노드들에서 합산되고, V2C가 생성된다. 이러한 메시지들은 현재 반복과 연관된 검사 노드 상태를 업데이팅하는 검사 노드 프로세서에 의해 수신된다. 그 반복은 모든 검사 노드 상태들이 업데이팅되었을 때 완료된다.
상태 메모리 엔트리 값들 세트(802) 아래의 차트에서, 각각의 로우(row)는 상이한 메시지 에지들과 연관된 처리, 예컨대 C2V 메시지의 추출, 지시된 에지를 따라 전송될 V2C 메시지의 생성 및 정해진 에지에 연관된 검사 노드 상태의 업데이트와 연관된 처리에 상응한다. 그래프의 각각의 반복은 도 7 그래프의 에지마다 하나의 C2V 메시지를 생성하고 처리하는 것과 각각의 에지에 대해 하나의 V2C 메시 지를 생성하여 처리하는 것을 수반한다.
일반적으로, 컬럼들(810, 812, 816, 818 및 820)은 앞서 디코더 반복에서 발생된 처리 결과들을 사용한 C2V 메시지 추출을 도시한다. 컬럼(822)은 가변 노드에 대한 모든 인입 메시지들과 가변 노드에 연관된 수신되는 값의 합들인 가변 노드 합들을 나타낸다.
컬럼(824)은 이 반복에서 상응하는 에지를 따라 생성될 V2C 메시지를 도시한다. 그것은 가변 노드 합과 인입 C2V 메시지의 감산과 동일하다. 이러한 C2V 메시지들은 구속 노드 프로세서에 의해 수신될 것이며, 컬럼들(826, 828, 830)에 도시된 바와 같은 상태 정보를 업데이팅하기 위해 사용된다. 컬럼들(826, 828, 830)은 컬럼(824)에 도시된 각각의 V2C 메시지를 수신하는 것에 응하여 현재 처리 반복 동안에 검사 노드 프로세서 상태가 어떻게 업데이팅되는 지를 나타낸다.
정보(810)는 C2V 메시지들을 생성하기 위해서 구속 노드 버퍼 상태 메모리(314)로부터 판독되는 선행하는 그래프 처리 반복 동안에 생성된 검사 노드 상태를 도시한다. 앞선 처리 반복 동안에 생성되는 각각의 검사 노드에 상응하는 이러한 완전히 업데이팅된 상태는 V2C 메시지를 생성하기 위해 현재 그래프 반복에서 가변 노드 프로세서(304)에 의해 처리되어지는 C2V 메시지들을 생성하는데 사용된다. 컬럼(812)은 현재 처리 반복의 C2V 메시지를 구성하기 위해서 부호 비트 메모리(312)로부터 검색되는 에지를 따라 앞선 반복으로부터 V2C 메시지에 상응하는 부호 비트를 도시하는데, 상기 V2C 메시지는 현재 처리 반복 동안에 V2C 메시지를 생성하는 가변 노드 프로세서로의 입력일 것이다. 컬럼(814)은 앞선 반복으로부터 생 성되고 또한 C2V 메시지와 연관된 메시지 에지가 상응하는 검사 노드(C1, C2 또는 C3)에 상응하는 상태로부터 획득되는 저장되어진 누산된 부호 비트(S)를, 앞서 수신된 V2C 메시지로부터의 저장된 부호 비트(812)와 XOR함으로써 추출되는 구속 상태에 의해 생성된 업데이팅된 부호 비트를 도시한다. 컬럼(816)은, 첫 번째 최소 값(mA) 또는 두 번째 최소 값(mB)이 앞선 처리 반복 동안에 출력되어야 하는지를 결정하기 위해서 구속 상태 추출기에 의해 수행된 검사 결과를 나타낸다. 그 검사는 저장된 첫 번째 최소 값에 상응하는 에지 인덱스(I)와 생성되는 C2V 메시지의 에지 인덱스를 비교하는 것을 수반한다. 여기서, "Y"는 "예"를 나타내며, 에지 인덱스가 앞선 반복에서 최소 크기를 전송한 에지에 상응한다는 것을 의미하고, "N"는 "아니오"를 나타내며, 에지 인덱스가 앞선 반복에서 최소 크기를 전송한 에지에 상응하지 않는다는 것을 의미한다. 컬럼(812)은 출력 C2V 메시지의 크기로서 사용될 mA 또는 mB를 선택한 결과를 나타낸다. 컬럼(820)은 현재 반복 동안에 가변 노드 프로세서(304)에 의해 사용하기 위한 지시된 에지에서 전송되어질 실제 C2V 메시지를 나타낸다. 가변 노드 프로세서(304)는 처리 반복 동안에 수신되는 C2V 메시지들의 합을 생성한다. 다음으로, 컬럼(822)에 도시된 최종 V 노드 합이 예컨대 현재 반복 동안에 구속 노드 처리를 위해서 메시지 에지를 따라 구속 프로세서 모듈(300)에 공급될 V2C 메시지를 생성하는데 사용된다.
구속 노드 처리 모듈 관점에서, 컬럼들(810, 812, 814, 816, 818, 820 및 822)에 도시된 정보는 앞선 그래프 처리 반복에서 계산된 결과로부터 유도하는 연 산들을 나타낸다. 위에서 논의된 바와 같이, 주의 깊은 그래프 설계가 이루어진다면, 이러한 연산들이 한 그래프 처리 반복 동안에 발생할 때 및 구속 노드 처리의 그 다음 반복이 발생할 때 어느 정도의 오버랩이 존재할 수 있다.
컬럼(824)은 도 7에 도시된 그래프 구조를 사용하여 예시적인 입력을 처리하는 것에 상응하는 두 번째 및 세 번째 구속 노드 처리 모듈 반복들 동안에 수신되고 처리될 V2C 메시지를 도시한다. 각각의 그래프 반복은 에지들(E0 내지 E8)을 통해 통과되는 메시지들에 상응하는 9개의 V2C 메시지들에 대한 처리를 수반한다. 구속 처리 모듈(300)에 의한 메시지들의 처리는 가변 노드 에지 순서대로 발생한다. 처리의 처음에는, 검사 노드들에 상응하는 구속 메모리가 재초기화될 것이다. 처리 반복들에서 어떠한 오버랩도 없다고 가정하며, 검사 노드들(C1, C2 및 C3) 각각에 대한 상태가 에지(EO)에 상응하는 제 1 V2C 메시지의 수신에 앞서 재초기화될 것이다. 컬럼들(826, 828, 830) 각각은, 상이한 V2C 메시지의 처리에 상응하는 각각의 로우를 갖는 수신된 V2C 메시지에 의해 업데이팅되어지는 검사 노드들(C1, C2, C3) 중 하나에 상응하는 저장된 상태를 도시한다. 특정 메시지, 예컨대 로우가 상응하는 에지를 통해 통신되는 메시지에 대한 응답으로 업데이팅된 상태 컨텐츠들이 굵게 도시되어 있다. X들은 초기 값으로 설정된 값들을 나타내기 위해 컬럼들(826, 828, 830)에서 사용된다. 이러한 값들은 생성된 C2V 출력 메시지에서 사용되지 않을 것이기 때문에 "don't care" 값들이다.
두 번째 반복이 종료한 이후에는 완전히 업데이팅된 메시지 상태(C1, C2, C3)가 C1(mA=0, mB=4, I=2, S=0); C2(mA=1, mB=3, I=1, S=1); 및 C3(mA=1, mB=3, I=3, S=1)에 대한 값들로 업데이팅될 것이라는 것을 주시하자. 세 번째 반복이 종료한 이후에는 완전히 업데이팅된 메시지 상태(C1, C2, C3)가 C1(mA=1, mB=3, I=2, S=0); C2(mA=0, mB=3, I=1, S=0); 및 C3(mA=3, mB=3, I=3, S=0)에 대한 값들로 업데이팅될 것이다.
비록 상태가 검사 노드에 상응하는 메시지의 처리가 완료된 이후에 클리어되는 것으로 도시되어 있지 않지만, 그래프 처리 반복들 사이에 오버랩이 존재하는 실시예들에서는, 완전히 업데이팅된 구속 노드에 상응하는 상태의 리셋이 구속 노드 상태 버퍼 메모리(324)에 저장될 것이고 또한 상대 정보 리셋이 구속 상태 메모리에 저장될 것이다. 도 8에 도시된 예에서는, 이러한 리셋팅이 구속 상태 업데이트 시퀀스의 이해를 용이하게 하고 또한 완전한 업데이팅 상태 세트가 완전한 그래프 반복과 연관된 처리 동안에 어떻게 생성되는 지에 대한 이해를 용이하게 하기 위해서 미도시되어 있다.
본 발명의 디코더 및 디코딩 방법들이 사용될 수 있는 여러 코드 구조들이 제공된다면, 처리 반복들 사이에 발생할 수 있는 오버랩의 양에 관한 많은 융통성이 가능하다. 상이한 디코더 반복들에 상응하는 검사 노드 처리를 수행하는 것에 관한 디코딩 지연 오버랩들을 줄이기 위해서, 코드 구조는 그래프 처리 반복들에서 10%, 20%, 30%, 40% 또는 그 이상의 오버랩을 가능하게 하도록 선택될 수 있다.
여러 예시적인 디코딩 방법 구현들 및 예시적인 변형들이 이제 설명될 것이 다.
Low Density Parity Check Decoding 동작을 수행하는 한 특정의 예시적인 방법은, 다수의 검사 노드들에 의해서 수신되는 메시지에 상응하는 메시지 상태 정보를 메모리에 저장하는 단계; 상기 다수의 검사 노드들 중 하나에 전달되는 검사 노드 입력 메시지를 수신하는 단계; 상기 수신되는 메시지가 전달될 검사 노드에 기초하여, 상태 업데이트 동작에서 사용될 다수의 상태 정보 세트들 중 하나를 선택하는 단계; 선택된 메시지 상태 정보 세트를 상기 메모리로부터 검색하는 단계; 및 상기 수신되는 메시지에 따라 선택된 메시지 상태 정보 세트를 업데이팅하는 단계를 포함한다. 상기 방법은 또한 상기 메시지 상태 정보가 검색되어진 메모리 위치에 상기 업데이팅된 메시지 상태 정보 세트를 기록하고, 상기 수신되는 메시지들에 상응하는 에지가 LDPC 코드를 나타내는 그래프에서 가변 처리 노드들에 첨부된 순서에 상응하는 제 1 시퀀스에 따라 수신되는 다수의 메시지들 각각에 대해서 상기 수신단계, 선택 단계, 검색 단계 및 업데이팅 단계를 반복하는 단계를 포함한다. 일부 구현들에서는, 상기 수신되는 메시지들에 상응하는 에지들이 상기 LDPC 코드를 나타내는 그래프에서 가변 처리 노드들에 첨부되는 순서에 상응하는 시퀀스가 상기 수신되는 메시지들에 상응하는 에지들이 상기 LDPC 코드를 나타내는 그래프에서 구속 처리 노드들에 첨부되는 제 2 시퀀스와 다르다. 상기 예시적인 방법은 또한 풀 세트의 가변 내지 검사 노드 메시지들이 수신되어진 검사 노드에 상응하는 적어도 하나의 상태 정보 세트에서 검사 노드 내지 가변 노드 메시지 추출 동작을 수행하는 단계를 포함하는데, 상기 추출 동작은 가변 노드 메시지들에 대한 다수의 검사 노드를 생성하기 위해서 여러 번 수행되고, 상기 다수의 가변 노드들 각각에 전달되는 검사 노드 내지 가변 노드 메시지들이 상기 다수의 가변 노드들 각각에 전달되는 가변 노드 메시지들에 대한 검사 노드 시퀀스를 생성하기 위해 연속적으로 생성된다.
예시적인 방법에서는, 완전히 업데이팅된 상태가 자신이 C2V 메시지 추출 처리에서 사용하기 위해 버퍼 메모리에 저장되기에 앞서 각각의 검사 노드에 대해 생성된다. 완전히 업데이팅된 상태는 그 상태가 상응하는 검사 노드에 상응하는 풀 세트의 V2C 메시지들에 의해서 업데이팅된 상태이다. 여러 상태 세트들이 전체 그래프에 상응하는 처리 동안에 업데이팅될 것이다. 그래프에 상응하는 여러 번의 디코딩 반복들이 일반적으로 디코딩을 제어하는데 사용되는 LDPC 코드를 나타내기 위해 사용되는 그래프에서 하나의 풀 세트의 메시지들을 처리하는 것에 상응하는 각각의 반복을 통해 수행된다. 검사 노드 상태는 후속하는 반복에 대한 검사 노드 상태가 앞선 반복 동안에 이미 완전히 업데이팅되었다는 것을 가정한 경우에 동일한 시간 기간 동안에 상이한 그래프 처리 반복들에 상응하여 업데이팅될 수 있다.
따라서, 일부 구현에 있어서, 방법은 디코더 처리의 첫 번째 반복 동안에 적어도 하나의 다른 검사 노드, 예컨대 그래프에서 마지막 검사 노드의 상태 업데이트를 완전히 완료하기 이전에, 검사 노드 메시지 처리에 대한 가변 내지 검사 노드 메시지 처리의 두 번째 반복의 일부로서 제 1 검사 노드에 상응하는 다른 상태 세트를 업데이팅시키는 단계를 포함한다.
그래프 처리 반복들의 오버랩을 용이하게 하기 위한 디코딩 방법의 일부로 서, 일부 실시예들에서는, 상기 방법이 또한 제 1 검사 노드에 상응하는 완전히 업데이팅된 상태를 버퍼링하는 단계; 및 상기 버퍼링되어진 완전히 업데이팅된 상태로부터 검사 노드 내지 가변 노드 메시지들을 추출하는 단계를 포함한다. 상기 버퍼링되어진 완전히 업데이팅된 상태로부터 검사 노드 내지 가변 노드 메시지들을 추출하는 상기 단계는, 일부 구현들에서는, 완전히 업데이팅된 상태와, 상기 완전히 업데이팅된 상태를 생성하기 위해서 사용되는 다수의 가변 노드 내지 검사 노드 메시지들에 상응하는 저장된 부호 정보로부터 다수의 출력 메시지들을 생성하는 단계를 포함한다.
일부 예시적인 디코딩 방법들은 제 2의 다수의 검사 노드들에 상응하는 상태 업데이트들을 완료하기에 앞서 제 1의 다수의 검사 노드들에 대한 상태 업데이트를 완전히 완료하는 단계를 포함하고, 검사 노드에 대한 상태 업데이트는 검사 노드에 대한 상태가 상기 검사 노드에 상응하는 다수의 메시지 에지들 각각에 대해 한 번 업데이팅되었을 때 완전히 완료된다. 일부 구현에서는, 제 1 및 제 2의 다수의 검사 노드들 각각이 디코딩을 제어하기 위해 사용되는 구현된 LDPC 코드 구조를 나타내는 LDPC 그래프에서 총 검사 노드들 수의 적어도 20%를 포함한다.
상태 업데이트 동작은 제 1 검사 노드들 세트에 상응하는 업데이팅 상태의 일부로서 수행될 수 있다. 일부 구현에서는, 제 1 검사 노드들 세트의 업데이팅이 제 1 세트의 가변 내지 검사 노드 메시지들을 사용하여 제 1 시간 기간 동안에 수행되고, 상기 방법은 또한 제 2 시간 기간 동안에 제 2 검사 노드 세트에 상응하는 상태 정보를 업데이팅시키는 단계를 포함하고, 상기 제 2 검사 노드 세트는 제 1 검사 노드 세트에 포함되지 않은 검사 노드들만을 포함하고, 상기 제 2 시간 기간은 상기 제 1 시간 기간에 후속한다. 이러한 구현들에서는, 검사 노드 정보가 상이한 시간들에 추출될 수 있다. 한 구현에 있어서는, 방법이 제 2 시간 기간 동안에 제 1 검사 노드들 세트에 상응하는 업데이팅된 상태 정보로부터 검사 노드 내지 가변 노드 메시지들을 추출하는 단계를 포함한다. 이러한 타이밍 특징을 구현하는 일부 구현들에서는, 제 1 및 제 2 시간 기간들이 길이에 있어 동일하다. 제 1 및 제 2 시간 기간들은 제 3 검사 노드들 세트에 상응하는 상태가 업데이팅되는 제 3 시간 기간에 의해서 분류될 수 있거나 종종 분류된다. 이는 종종 많은 노드들을 포함하는 큰 그래프들이 사용되는 경우이다. 일부 구현들에서는, 제 1 및 제 2 검사 노드 세트들 각각이 디코딩을 제어하기 위해 사용되는 LDPC 코드에 상응하는 그래프의 검사 노드들의 적어도 10%를 포함한다. 다른 구현들에서는, 제 1 및 제 2 검사 노드 세트들 각각이 디코딩을 제어하는데 사용되는 LDPC 코드에 상응하는 그래프의 검사 노드들의 적어도 20%를 포함한다. 일부 구현들에서는, 제 1 시간 기간이 N개의 가변 내지 검사 노드 메시지들을 처리하는데 필요한 시간의 40% 미만이고, 여기서 N은 디코딩을 제어하는데 사용되는 LDPC 코드에 상응하는 그래프의 메시지 에지들의 총 수와 동일하다.
위에 설명된 방법들 및 장치들에 대한 매우 많은 변경들이 본 발명의 범위 내에서 가능하다. 예컨대 메시지들에 대한 압축된 상태를 사용하지만, C2V 메시지들에 대한 부호 정보가 본 발명의 범위 내에서 상술된 것과 약간 다른 방식으로 생성될 수 있다. 대안적인 구현은 하나의 메모리가 상태 메모리를 위해 사용되는 핑 -퐁 구조를 사용하지만, 다른 구현은 앞선 반복으로부터 완전한 상태들을 획득하고, 반복이 종료한 이후에는 버퍼들의 역할이 바뀐다. 이러한 실시예에서는, 부호 비트들이 다음과 같이 처리될 것이다. V2C 메시지들의 부호들이 저장된다. 신뢰도 정보 이외에 인입 신호 비트들의 XOR이 상태의 일부로서 또한 유지된다. C2V 메시지들이 추출될 때, 저장된 V2C 부호는 C2V 메시지 부호 비트를 산출하기 위해 상태에서 누산 XOR을 통해 XORED된다. 일단 그것이 판독되면, V2C 부호 비트는 더 이상 필요하지 않게 되고, 따라서 가변 노드 프로세서에 의해 곧 생성될 V2C 부호 비트가 후속해서 그것에 겹침기록될 수 있다.
위에 설명된 방법들은 메모리, CPU 및 그에 연결되는 하나 이상의 입력 및/또는 출력 장치를 포함하는 컴퓨터 시스템들에서 구현될 수 있다. 이러한 실시예에서, 메모리는 본 발명에 따라 구현되는 루틴을 포함한다. 실행될 때, 루틴은 CPU로 하여금 본 발명에 따라 데이터를 수신하고, 처리하고, 예컨대 디코딩하고, 또한 출력한다. 대안적으로, 본 발명의 단계들은 전용 하드웨어, 예컨대 회로들 및/또는 하드웨어와 소프트웨어의 결합을 사용하여 구현될 수 있다.

Claims (36)

  1. LDPC(Low Density Parity Check) 디코딩 동작들을 수행하기 위한 장치로서,
    검사 노드 프로세서 모듈이,
    ⅰ) 다수의 검사 노드들을 위한 다수의 메시지 상태 메모리 저장 엘리먼트들을 포함하는 검사 노드 상태 메모리 - 각각의 검사 노드 상태 저장 엘리먼트는 단일 검사 노드에 상응하며, 또한 상기 검사 노드 상태 메모리가 상응하는 검사 노드에 전송되는 메시지에 상응하는 제 1 및 제 2 메시지 크기 값들을 저장하기 위한 제 1 및 제 2 위치를 포함하고, 각각의 노드 상태 저장 엘리먼트는 또한 검사 노드 상태 저장 엘리먼트가 상응하는 검사 노드에 상응하는 누산된 부호 값을 저장하기 위한 부호 메모리 위치를 포함함 -,
    ⅱ) 수신되는 가변 노드 내지 검사 노드 상태 메시지의 컨텐트에 기초하여 상기 검사 노드 상태 메모리에 저장된 상태를 업데이팅하기 위한 검사 노드 프로세서 엘리먼트, 및
    ⅲ) 처리될 가변 내지 검사 노드 메시지와 동일한 검사 노드에 상응하는, 검사 노드 상태를 출력하기 위해서 상기 검사 노드 상태 메모리를 제어할 목적으로 상기 검사 노드 상태 메모리에 연결되는 제어 모듈을 포함하고,
    상기 검사 노드 상태는 처리될 상기 가변 내지 검사 노드 메시지와 동일한 노드에 상응하는 상기 검사 노드 상태 저장 엘리먼트들 중 하나로부터 출력되는,
    LDPC 디코딩 동작 수행 장치.
  2. 제 1항에 있어서, 검사 노드 내지 가변 노드 메시지들을 생성하는데 있어 사용하기 위한 검사 노드에 상응하는 각각의 수신된 메시지에 포함된 부호 비트를 저장하기 위한 메시지 부호 메모리를 더 포함하는, LDPC 디코딩 동작 수행 장치.
  3. 제 2항에 있어서, 적어도 하나의 검사 노드에 상응하는 완전히 업데이팅된 검사 노드 상태 정보를 저장하기 위한 검사 노드 상태 버퍼 메모리를 더 포함하는, LDPC 디코딩 동작 수행 장치.
  4. 제 3항에 있어서, 적어도 하나의 검사 노드에 상응하는 완전히 업데이팅된 검사 노드 상태 정보는 M개의 가변 노드 내지 검사 노드 메시지들 각각으로부터 생성되어진 상태 정보이고, 상기 M은 상기 적어도 하나의 검사 노드에 상응하는 에지들의 수인, LDPC 디코딩 동작 수행 장치.
  5. 제 3항에 있어서,
    상기 적어도 하나의 검사 노드에 상응하는 상기 완전히 업데이팅된 검사 노드 상태 정보로부터 및 상기 적어도 하나의 검사 노드에 상응하는 저장된 부호 메시지 정보로부터 검사 노드 내지 가변 노드 메시지들을 생성하기 위한 상기 메시지 부호 메모리와 상기 검사 노드 상태 버퍼 메모리에 연결되는 검사 노드 내지 가변 노드 메시지 추출기를 더 포함하고,
    하나의 검사 노드 내지 가변 노드 메시지가 상기 적어도 하나의 검사 노드에 상응하는 수신된 각각의 수신되어진 검사 노드 내지 가변 노드 메시지에 대해 생성되는, LDPC 디코딩 동작 수행 장치.
  6. 제 5항에 있어서, 상기 제어 모듈은 검사 노드에 상응하는 상태 정보가 판독된 동일한 메시지 상태 메모리 저장 엘리먼트에 검사 노드에 상응하는 업데이팅된 상태를 저장하기 위해서 상기 검사 노드 상태 메모리를 제어하는, LDPC 디코딩 동작 수행 장치.
  7. 제 1항에 있어서, 상기 검사 노드 상태 메모리는 디코딩을 제어하는데 사용되는 LDPC 그래프 구조에 포함된 각각의 검사 노드를 위한 하나의 검사 노드 상태 메모리 저장 엘리먼트를 포함하는, LDPC 디코딩 동작 수행 장치.
  8. 제 1항에 있어서, 상기 검사 노드 상태 메모리는 디코딩을 제어하는데 사용되는 LDPC 그래프 구조에 포함된 각각의 검사 노드를 위한 하나의 검사 노드 상태 메모리 저장 엘리먼트를 포함하는, LDPC 디코딩 동작 수행 장치.
  9. 제 2항에 있어서, 상기 메시지 부호 메모리는 디코딩을 제어하는데 사용되는 LDPC 그래프 구조에 포함된 각각의 메시지 에지를 위한 하나의 부호 비트 저장 위치를 포함하는, LDPC 디코딩 동작 수행 장치.
  10. 제 9항에 있어서,
    상기 검사 노드 처리 모듈에 연결되는 가변 노드 프로세서를 더 포함하고,
    상기 가변 모드 프로세서 모듈은 상기 검사 노드 처리 모듈로부터 검사 노드 내지 가변 노드 메시지들을 수신하며, 상기 검사 노드 처리 모듈에 공급된 가변 노드 내지 검사 노드 메시지들을 생성하는, LDPC 디코딩 동작 수행 장치.
  11. 제 10항에 있어서,
    상기 검사 노드 처리 모듈 및 상기 가변 노드 프로세서 모듈에 연결되는 디코더 제어 모듈을 더 포함하고,
    상기 디코더 제어 모듈은 가변 노드 순서대로 메시지들을 처리하기 위해서 상기 검사 노드 처리 모듈 및 상기 가변 노드 프로세서 모듈 모두를 제어하는, LDPC 디코딩 동작 수행 장치.
  12. 제 11항에 있어서, 상기 가변 노드 프로세서는 병렬로 배치된 다수의 가변 노드 처리 엘리먼트들을 포함하는, LDPC 디코딩 동작 수행 장치.
  13. 제 12항에 있어서, 상기 검사 노드 프로세서 모듈은 병렬로 배치된 다수의 검사 노드 처리 엘리먼트들을 포함하는, LDPC 디코딩 동작 수행 장치.
  14. 제 13항에 있어서, 상기 가변 모듈 프로세서 및 상기 검사 노드 프로세서 사이에 동시에 통과되는 메시지들을 재순서화하기 위해서 상기 검사 노드 프로세서 모듈과 상기 가변 노드 프로세서 모듈 사이에 적어도 하나의 메시지 재순서 엘리먼트가 배치되는, LDPC 디코딩 동작 수행 장치.
  15. 제 14항에 있어서, 상기 디코더 제어 모듈은 저장된 메시지 재순서 정보에 따라 메시지 재순서 엘리먼트들을 제어하기 위한 제어 로직을 포함하는, LDPC 디코딩 동작 수행 장치.
  16. LDPC(Low Density Parity Check) 디코딩 동작들을 수행하기 위한 방법으로서,
    다수의 검사 노드들에 의해서 수신되는 메시지들에 상응하는 메시지 상태 정보를 메모리에 저장하는 단계;
    상기 다수의 검사 노드들 중 하나에 전달되는 검사 노드 입력 메시지를 수신하는 단계;
    상기 수신되는 메시지가 전달될 검사 노드에 기초하여, 상태 업데이트 동작에서 사용될 다수의 상태 정보 세트들 중 하나를 선택하는 단계;
    선택된 메시지 상태 정보 세트를 상기 메모리로부터 검색하는 단계; 및
    선택된 메시지 상태 정보 세트를 상기 수신되는 메시지에 따라 업데이팅하는 단계를 포함하는,
    LDPC 디코딩 동작 수행 방법.
  17. 제 16항에 있어서, 상기 메시지 상태 정보가 검색된 메모리 위치에 상기 업데이팅된 메시지 상태 정보 세트를 기록하는 단계를 더 포함하는, LDPC 디코딩 동작 수행 방법.
  18. 제 17항에 있어서, 상기 수신되는 메시지들에 상응하는 에지들이 LDPC 코드를 나타내는 그래프에서 가변 처리 노드들에 첨부된 순서에 상응하는 제 1 시퀀스에 따라 수신되는 다수의 메시지들 각각에 대해서 상기 수신단계, 상기 선택 단계, 상기 검색 단계 및 상기 업데이팅 단계를 반복하는 단계를 더 포함하는, LDPC 디코딩 동작 수행 방법.
  19. 제 18항에 있어서, 상기 수신되는 메시지들에 상응하는 에지들이 상기 LDPC 코드를 나타내는 그래프에서 가변 처리 노드들에 첨부되는 순서에 상응하는 시퀀스가 상기 수신되는 메시지들에 상응하는 에지들이 상기 LDPC 코드를 나타내는 그래프에서 구속 처리 노드들(constraint processing nodes)에 첨부되는 제 2 시퀀스와 다른, LDPC 디코딩 동작 수행 방법.
  20. 제 18항에 있어서, 풀 세트의 가변 내지 검사 노드 메시지들이 수신되어진 검사 노드에 상응하는 적어도 하나의 상태 정보 세트에서 검사 노드 내지 가변 노 드 메시지 추출 동작을 수행하는 단계를 더 포함하는, LDPC 디코딩 동작 수행 방법.
  21. 제 20항에 있어서,
    다수의 검사 노드 내지 가변 노드 메시지들을 생성하기 위해 상기 추출 동작을 수행하는 단계를 더 포함하고,
    상기 다수의 가변 노드들 각각에 전달되는 검사 노드 내지 가변 노드 메시지들이 상기 다수의 가변 노드들 각각에 전달되는 검사 노드 내지 가변 노드 메시지들 시퀀스를 생성하기 위해 연속적으로 생성되는, LDPC 디코딩 동작 수행 방법.
  22. 제 16항에 있어서,
    적어도 하나의 다른 검사 노드의 상태 업데이트를 완료하기에 앞서, 제 1 검사 노드의 완전히 업데이팅된 상태 세트를 생성하기 위해 상기 제 1 검사 노드에 상응하는 상태 업데이트를 완전히 완료하는 단계를 더 포함하고,
    검사 노드에 대한 상태 업데이트는 상기 검사 노드에 대한 상태가 상기 검사 노드에 상응하는 다수의 메시지 에지들 각각에 대해 한번 업데이팅될 때 완전히 완료되는, LDPC 디코딩 동작 수행 방법.
  23. 제 16항에 있어서, 상기 적어도 하나의 다른 검사 노드의 상태 업데이트를 완전히 완료하기에 앞서, 가변 내지 검사 노드 메시지 처리의 두 번째 반복의 일부 로서 상기 제 1 검사 노드에 상응하는 다른 상태 세트를 업데이팅하는 단계를 더 포함하는, LDPC 디코딩 동작 수행 방법.
  24. 제 23항에 있어서,
    상기 제 1 검사 노드에 상응하는 완전히 업데이팅된 상태를 버퍼링하는 단계; 및
    상기 버퍼링되어진 완전히 업데이팅된 상태로부터 검사 노드 내지 가변 노드 메시지들을 추출하는 단계를 더 포함하는, LDPC 디코딩 동작 수행 방법.
  25. 제 24항에 있어서, 상기 버퍼링되어진 완전히 업데이팅된 상태로부터 검사 노드 내지 가변 노드 메시지들을 추출하는 상기 단계는,
    완전히 업데이팅된 상태와, 상기 완전히 업데이팅된 상태를 생성하기 위해서 사용되는 다수의 가변 노드 내지 검사 노드 메시지들에 상응하는 저장된 부호 정보로부터 다수의 출력 메시지들을 생성하는 단계를 포함하는, LDPC 디코딩 동작 수행 방법.
  26. 제 16항에 있어서,
    제 2의 다수의 검사 노드들에 상응하는 상태 업데이트들을 완료하기에 앞서 제 1의 다수의 검사 노드들에 대한 상태 업데이트를 완전히 완료하는 단계를 더 포함하고,
    검사 노드에 대한 상태 업데이트는 검사 노드에 대한 상태가 상기 검사 노드에 상응하는 다수의 메시지 에지들 각각에 대해 한 번 업데이팅되었을 때 완전히 완료되는, LDPC 디코딩 동작 수행 방법.
  27. 제 26항에 있어서, 제 1 및 제 2의 다수의 검사 노드들 각각이 디코딩을 제어하기 위해 사용되는 구현된 LDPC 코드 구조를 나타내는 LDPC 그래프의 총 검사 노드들 수의 적어도 20%를 포함하는, LDPC 디코딩 동작 수행 방법.
  28. 제 16항에 있어서, 상기 업데이팅 동작은 제 1 검사 노드 세트들에 상응하는 업데이팅 상태 정보의 일부로서 수행되는, LDPC 디코딩 동작 수행 방법.
  29. 제 28항에 있어서,
    제 1 검사 노드들 세트의 업데이팅이 제 1 세트의 가변 내지 검사 노드 메시지들을 사용하여 제 1 시간 기간 동안에 수행되고,
    상기 방법은 제 2 시간 기간 동안에 제 2 검사 노드 세트에 상응하는 상태 정보를 업데이팅시키는 단계를 더 포함하고,
    상기 제 2 검사 노드 세트는 제 1 검사 노드 세트에 포함되지 않은 검사 노드들만을 포함하고,
    상기 제 2 시간 기간은 상기 제 1 시간 기간에 후속하는, LDPC 디코딩 동작 수행 방법.
  30. 제 29항에 있어서, 제 2 시간 기간 동안에 제 1 검사 노드들 세트에 상응하는 업데이팅된 상태 정보로부터 검사 노드 내지 가변 노드 메시지들을 추출하는 단계를 더 포함하는, LDPC 디코딩 동작 수행 방법.
  31. 제 30항에 있어서, 상기 제 1 및 제 2 시간 기간들이 길이에 있어 동일한, LDPC 디코딩 동작 수행 방법.
  32. 제 30항에 있어서, 상기 제 1 및 제 2 시간 기간들은 제 3 검사 노드들 세트에 상응하는 상태가 업데이팅되는 제 3 시간 기간 동안에 분류되는, LDPC 디코딩 동작 수행 방법.
  33. 제 30항에 있어서, 상기 제 1 및 제 2 검사 노드 세트들 각각이 디코딩을 제어하는데 사용되는 LDPC 코드에 상응하는 그래프의 검사 노드들의 적어도 10%를 포함하는, LDPC 디코딩 동작 수행 방법.
  34. 제 30항에 있어서, 상기 제 1 및 제 2 검사 노드 세트들 각각이 디코딩을 제어하는데 사용되는 LDPC 코드에 상응하는 그래프의 검사 노드들의 적어도 20%를 포함하는, LDPC 디코딩 동작 수행 방법.
  35. 제 30항에 있어서, 상기 제 1 시간 기간이 N개의 가변 내지 검사 노드 메시지들을 처리하는데 필요한 시간의 40% 미만이고, N은 디코딩을 제어하는데 사용되는 LDPC 코드에 상응하는 그래프의 메시지 에지들의 총 수와 동일한, LDPC 디코딩 동작 수행 방법.
  36. 제 30항에 있어서, 상기 제 1 시간 기간이 N개의 가변 내지 검사 노드 메시지를 처리하는데 필요한 시간의 20% 미만이고, N은 디코딩을 제어하는 데 사용되는 LDPC 코드에 상응하는 그래프의 메시지 에지들의 총 수와 동일한, LDPC 디코딩 동작 수행 방법.
KR1020077004979A 2004-08-02 2005-08-01 메모리 효율적인 ldpc 디코딩 방법 및 장치 KR100888096B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/909,753 2004-08-02
US10/909,753 US7127659B2 (en) 2004-08-02 2004-08-02 Memory efficient LDPC decoding methods and apparatus
PCT/US2005/027526 WO2006017555A2 (en) 2004-08-02 2005-08-01 Memory efficient ldpc decoding methods and apparatus

Publications (2)

Publication Number Publication Date
KR20070058477A true KR20070058477A (ko) 2007-06-08
KR100888096B1 KR100888096B1 (ko) 2009-03-11

Family

ID=35733811

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077004979A KR100888096B1 (ko) 2004-08-02 2005-08-01 메모리 효율적인 ldpc 디코딩 방법 및 장치

Country Status (11)

Country Link
US (2) US7127659B2 (ko)
EP (2) EP1782541A4 (ko)
JP (1) JP4567734B2 (ko)
KR (1) KR100888096B1 (ko)
CN (1) CN101044688B (ko)
AU (1) AU2005271540A1 (ko)
CA (1) CA2575953C (ko)
NO (1) NO20071133L (ko)
UA (1) UA86987C2 (ko)
WO (1) WO2006017555A2 (ko)
ZA (1) ZA200701825B (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100919779B1 (ko) * 2007-03-06 2009-10-01 재단법인서울대학교산학협력재단 저밀도 패리티 검사 부호를 위한 복호화기 및 복호화 방법
KR20140032524A (ko) * 2012-08-27 2014-03-17 삼성전자주식회사 경 판정 디코딩 방법 및 이를 이용한 저밀도 패리티 체크 디코더
KR20170140871A (ko) * 2016-06-14 2017-12-22 삼성전자주식회사 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법
KR20180054518A (ko) * 2015-10-13 2018-05-24 후아웨이 테크놀러지 컴퍼니 리미티드 디코딩 장치 및 방법과 신호 전송 시스템

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4138700B2 (ja) * 2004-05-31 2008-08-27 株式会社東芝 復号装置および復号回路
US7617432B2 (en) * 2004-11-10 2009-11-10 Qualcomm Incorporated Hierarchical design and layout optimizations for high throughput parallel LDPC decoders
US7594154B2 (en) * 2004-11-17 2009-09-22 Ramakrishna Vedantham Encoding and decoding modules with forward error correction
US7441178B2 (en) * 2005-02-24 2008-10-21 Keyeye Communications Low complexity decoding of low density parity check codes
TWI291290B (en) * 2005-04-21 2007-12-11 Univ Nat Chiao Tung Method for updating check-node of low-density parity-check (LDPC) codes decoder and device using the same
US7571372B1 (en) 2005-06-23 2009-08-04 Marvell International Ltd. Methods and algorithms for joint channel-code decoding of linear block codes
US7761768B2 (en) * 2005-06-24 2010-07-20 Intel Corporation Techniques for reconfigurable decoder for a wireless system
US7818649B1 (en) * 2005-11-30 2010-10-19 Aquantia Corporation Efficient message passing scheme of iterative error correcting decoders
US7509528B2 (en) * 2006-03-10 2009-03-24 Alcatel Lucent Transaction bundling for improved redundancy
US20070245217A1 (en) * 2006-03-28 2007-10-18 Stmicroelectronics S.R.L. Low-density parity check decoding
EP1841073A1 (en) * 2006-03-29 2007-10-03 STMicroelectronics N.V. Fast convergence LDPC decoding using BCJR algorithm at the check nodes
US8028216B1 (en) 2006-06-02 2011-09-27 Marvell International Ltd. Embedded parity coding for data storage
US7644339B2 (en) * 2006-10-02 2010-01-05 Broadcom Corporation Overlapping sub-matrix based LDPC (low density parity check) decoder
US8457005B2 (en) 2006-11-08 2013-06-04 Trellisware Technologies, Inc. Method and system for establishing cooperative routing in wireless networks
US8588126B2 (en) 2006-11-08 2013-11-19 Trellisware Technologies, Inc. Methods and apparatus for network communication via barrage relay onto an independent medium allocation
KR100864838B1 (ko) * 2006-12-05 2008-10-23 한국전자통신연구원 저밀도 패리티 검사 부호의 검사노드를 갱신하는 방법 및장치
WO2008069567A1 (en) * 2006-12-05 2008-06-12 Electronics And Telecommunications Research Institute Apparatus and method for updating check node of low-density parity check codes
US8504890B2 (en) * 2006-12-17 2013-08-06 Ramot At Tel Aviv University Ltd. Scheduling for LDPC decoding
KR100938068B1 (ko) * 2007-01-30 2010-01-21 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
TW200838160A (en) * 2007-03-09 2008-09-16 Univ Nat Chiao Tung Cyclic comparison method of low density parity check decoder
US8359522B2 (en) 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
US8151171B2 (en) * 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
US20090013239A1 (en) * 2007-07-02 2009-01-08 Broadcom Corporation LDPC (Low Density Parity Check) decoder employing distributed check and/or variable node architecture
CN101106381B (zh) * 2007-08-09 2010-04-07 上海交通大学 分层的低密度校验码译码器及译码处理方法
US8181083B2 (en) * 2007-08-27 2012-05-15 Stmicroelectronics S.R.L. Methods and architectures for layered decoding of LDPC codes with minimum latency
US8576946B2 (en) * 2007-10-19 2013-11-05 Trellisware Technologies, Inc. Method and system for cooperative communications with minimal coordination
US8181081B1 (en) 2007-11-30 2012-05-15 Marvell International Ltd. System and method for decoding correlated data
CN101188426B (zh) * 2007-12-05 2011-06-22 深圳国微技术有限公司 用于对准循环结构的ldpc码进行并行处理的译码器及方法
US8005990B2 (en) * 2008-02-29 2011-08-23 Newport Media, Inc. Efficient decoding of mobile multimedia multicast system non real-time service files
US8156409B2 (en) * 2008-02-29 2012-04-10 Seagate Technology Llc Selectively applied hybrid min-sum approximation for constraint node updates of LDPC decoders
CN101854178B (zh) * 2009-04-01 2013-01-30 中国科学院微电子研究所 一种低功耗的ldpc译码器
CN101562456B (zh) * 2009-06-03 2012-08-22 华北电力大学(保定) 基于低密度奇偶校验码译码软信息的码辅助帧同步方法
US8516352B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US9397699B2 (en) * 2009-07-21 2016-07-19 Ramot At Tel Aviv University Ltd. Compact decoding of punctured codes
US8516351B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8375278B2 (en) * 2009-07-21 2013-02-12 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US9032067B2 (en) * 2010-03-12 2015-05-12 Fujitsu Limited Determining differences in an event-driven application accessed in different client-tier environments
KR20110124659A (ko) 2010-05-11 2011-11-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법
CN101944993A (zh) * 2010-09-29 2011-01-12 北京邮电大学 基于ldpc码的加密方案中移位矩阵生成方法
US8880588B2 (en) 2010-10-29 2014-11-04 Fujitsu Limited Technique for stateless distributed parallel crawling of interactive client-server applications
US8832065B2 (en) 2010-10-29 2014-09-09 Fujitsu Limited Technique for coordinating the distributed, parallel crawling of interactive client-server applications
US9400962B2 (en) 2010-10-29 2016-07-26 Fujitsu Limited Architecture for distributed, parallel crawling of interactive client-server applications
US9208054B2 (en) 2011-02-14 2015-12-08 Fujitsu Limited Web service for automated cross-browser compatibility checking of web applications
US8879640B2 (en) 2011-02-15 2014-11-04 Hong Kong Applied Science and Technology Research Institute Company Limited Memory efficient implementation of LDPC decoder
US8843812B1 (en) 2011-03-23 2014-09-23 Sk Hynix Memory Solutions Inc. Buffer management in a turbo equalization system
US9143166B1 (en) * 2011-03-23 2015-09-22 Sk Hynix Memory Solutions Inc. Adaptive scheduling of turbo equalization based on a metric
KR101922990B1 (ko) * 2011-11-11 2018-11-28 삼성전자주식회사 멀티미디어 통신 시스템에서 준순환 저밀도 패리티 검사 부호 송/수신 장치 및 방법
US8989050B2 (en) * 2011-12-01 2015-03-24 Telefonaktiebolaget L M Ericsson (Publ) Graph-based distributed coordination methods for wireless communication networks
US8879428B2 (en) * 2011-12-01 2014-11-04 Telefonaktiebolaget L M Ericsson (Publ) Systems and method for graph-based distributed parameter coordination in a communication network
US8954820B2 (en) 2012-02-10 2015-02-10 Stec, Inc. Reduced complexity non-binary LDPC decoding algorithm
US8880951B2 (en) 2012-04-06 2014-11-04 Fujitsu Limited Detection of dead widgets in software applications
US8972834B2 (en) 2012-08-28 2015-03-03 Hughes Network Systems, Llc System and method for communicating with low density parity check codes
US20140082449A1 (en) * 2012-09-18 2014-03-20 Fan Zhang LDPC Decoder With Variable Node Hardening
CN102970047B (zh) * 2012-12-01 2016-02-24 电子科技大学 基于平均幅度的ldpc码加权梯度下降比特翻转译码算法
RU2522299C1 (ru) * 2013-01-11 2014-07-10 Государственное казенное образовательное учреждение высшего профессионального образования Академия Федеральной службы охраны Российской Федерации (Академия ФСО России) Способ и устройство помехоустойчивого декодирования сигналов, полученных с использованием кода проверки на четность с низкой плотностью
US9094132B1 (en) 2013-01-23 2015-07-28 Viasat, Inc. High data rate optical transport network using 8-PSK
US8930789B1 (en) * 2013-01-23 2015-01-06 Viasat, Inc. High-speed LDPC decoder
US9379738B2 (en) * 2013-03-13 2016-06-28 Marvell World Trade Ltd. Systems and methods for decoding using partial reliability information
KR101698875B1 (ko) 2013-03-14 2017-01-24 한국전자통신연구원 Ldpc 부호의 복호 방법 및 장치
US9513989B2 (en) * 2013-03-26 2016-12-06 Seagate Technology Llc Priori information based post-processing in low-density parity-check code decoders
RU2546070C1 (ru) * 2013-11-12 2015-04-10 Открытое акционерное общество "Калужский научно-исследовательский институт телемеханических устройств" Способ мягкого декодирования помехоустойчивого кода
US9743397B2 (en) 2013-11-14 2017-08-22 Telefonaktiebolaget L M Ericsson (Publ) Reduced-size message pass in factor graphs for wireless communications networks
JP5971670B2 (ja) * 2013-12-09 2016-08-17 三菱電機株式会社 誤り訂正復号装置
TWI551058B (zh) * 2014-05-09 2016-09-21 衡宇科技股份有限公司 最小-總和演算法之低密度奇偶校驗碼解碼器及其解碼方法
US9391647B2 (en) * 2014-07-18 2016-07-12 Storart Technology Co., Ltd. Decoder and decoding method thereof for min-sum algorithm low density parity-check code
KR102189440B1 (ko) 2014-08-25 2020-12-14 삼성전자주식회사 에러 정정 디코더를 포함하는 스토리지 장치 및 에러 정정 디코더의 동작 방법
US20160182083A1 (en) * 2014-12-23 2016-06-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and Methods for Decoder Scheduling With Overlap and/or Switch Limiting
US9935654B2 (en) * 2015-02-06 2018-04-03 Alcatel-Lucent Usa Inc. Low power low-density parity-check decoding
US9590657B2 (en) 2015-02-06 2017-03-07 Alcatel-Lucent Usa Inc. Low power low-density parity-check decoding
CN104852746B (zh) * 2015-05-27 2017-11-03 北京邮电大学 Ldpc码的译码器和译码方法
US10784901B2 (en) 2015-11-12 2020-09-22 Qualcomm Incorporated Puncturing for structured low density parity check (LDPC) codes
US10291354B2 (en) 2016-06-14 2019-05-14 Qualcomm Incorporated High performance, flexible, and compact low-density parity-check (LDPC) code
WO2018084735A1 (en) 2016-11-03 2018-05-11 Huawei Technologies Co., Ltd. Efficiently decodable qc-ldpc code
US10340949B2 (en) 2017-02-06 2019-07-02 Qualcomm Incorporated Multiple low density parity check (LDPC) base graph design
US10312939B2 (en) 2017-06-10 2019-06-04 Qualcomm Incorporated Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code
TWI657669B (zh) * 2017-11-28 2019-04-21 財團法人資訊工業策進會 低密度奇偶檢查碼解碼器及其解碼方法
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
US20210042650A1 (en) 2019-08-06 2021-02-11 Microsoft Technology Licensing, Llc Pipelined hardware decoder for quantum computing devices
CN110535476B (zh) * 2019-09-30 2023-06-06 深圳忆联信息系统有限公司 Ldpc软译码器软信息存储优化方法、装置、计算机设备及存储介质

Family Cites Families (42)

* 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
US4549505A (en) * 1983-10-25 1985-10-29 Nissan Motor Co., Ltd. Cooling system for automotive engine or the like
US5293489A (en) 1985-01-24 1994-03-08 Nec Corporation Circuit arrangement capable of centralizing control of a switching network
US5271042A (en) 1989-10-13 1993-12-14 Motorola, Inc. Soft decision decoding with channel equalization
US5157671A (en) 1990-05-29 1992-10-20 Space Systems/Loral, Inc. Semi-systolic architecture for decoding error-correcting codes
US5313609A (en) 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
US5396518A (en) 1993-05-05 1995-03-07 Gi Corporation Apparatus and method for communicating digital data using trellis coding with punctured convolutional codes
US5457704A (en) 1993-05-21 1995-10-10 At&T Ipm Corp. Post processing method and apparatus for symbol reliability generation
US5526501A (en) 1993-08-12 1996-06-11 Hughes Aircraft Company Variable accuracy indirect addressing scheme for SIMD multi-processors and apparatus implementing same
US5615298A (en) 1994-03-14 1997-03-25 Lucent Technologies Inc. Excitation signal synthesis during frame erasure or packet loss
US5860085A (en) 1994-08-01 1999-01-12 Cypress Semiconductor Corporation Instruction set for a content addressable memory array with read/write circuits and an interface register logic block
US5671221A (en) 1995-06-14 1997-09-23 Sharp Microelectronics Technology, Inc. Receiving method and apparatus for use in a spread-spectrum communication system
US5867538A (en) 1995-08-15 1999-02-02 Hughes Electronics Corporation Computational simplified detection of digitally modulated radio signals providing a detection of probability for each symbol
US5968198A (en) 1996-08-16 1999-10-19 Ericsson, Inc. Decoder utilizing soft information output to minimize error rates
US5935943A (en) * 1996-09-11 1999-08-10 Sankyo Company, Limited Insecticidal composition
US5892962A (en) 1996-11-12 1999-04-06 Lucent Technologies Inc. FPGA-based processor
US5909572A (en) 1996-12-02 1999-06-01 Compaq Computer Corp. System and method for conditionally moving an operand from a source register to a destination register
US6438180B1 (en) 1997-05-09 2002-08-20 Carnegie Mellon University Soft and hard sequence detection in ISI memory channels
GB2326253A (en) 1997-06-10 1998-12-16 Advanced Risc Mach Ltd Coprocessor data access control
US5864703A (en) 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US5933650A (en) 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6073250A (en) 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US6195777B1 (en) 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
US6339834B1 (en) 1998-05-28 2002-01-15 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre Interleaving with golden section increments
EP1118159B1 (en) 1998-09-28 2004-07-07 Comtech Telecommunications Corp. Turbo product code decoder
US6247158B1 (en) 1998-11-30 2001-06-12 Itt Manufacturing Enterprises, Inc. Digital broadcasting system and method
US6397240B1 (en) 1999-02-18 2002-05-28 Agere Systems Guardian Corp. Programmable accelerator for a programmable processor system
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
US6539367B1 (en) * 2000-05-26 2003-03-25 Agere Systems Inc. Methods and apparatus for decoding of general codes on probability dependency graphs
JP4389373B2 (ja) * 2000-10-11 2009-12-24 ソニー株式会社 2元巡回符号を反復型復号するための復号器
US6754804B1 (en) 2000-12-29 2004-06-22 Mips Technologies, Inc. Coprocessor interface transferring multiple instructions simultaneously along with issue path designation and/or issue order designation for the instructions
US6731700B1 (en) 2001-01-04 2004-05-04 Comsys Communication & Signal Processing Ltd. Soft decision output generator
US6938196B2 (en) * 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US6842872B2 (en) * 2001-10-01 2005-01-11 Mitsubishi Electric Research Laboratories, Inc. Evaluating and optimizing error-correcting codes using projective analysis
US6718504B1 (en) 2002-06-05 2004-04-06 Arc International Method and apparatus for implementing a data processor adapted for turbo decoding
US7178080B2 (en) 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
JP4062435B2 (ja) * 2002-12-03 2008-03-19 日本電気株式会社 誤り訂正符号復号装置
US6957375B2 (en) * 2003-02-26 2005-10-18 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
US11079672B2 (en) 2018-10-31 2021-08-03 Taiwan Semiconductor Manufacturing Company Ltd. Method and system for layout enhancement based on inter-cell correlation

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100919779B1 (ko) * 2007-03-06 2009-10-01 재단법인서울대학교산학협력재단 저밀도 패리티 검사 부호를 위한 복호화기 및 복호화 방법
KR20140032524A (ko) * 2012-08-27 2014-03-17 삼성전자주식회사 경 판정 디코딩 방법 및 이를 이용한 저밀도 패리티 체크 디코더
KR20180054518A (ko) * 2015-10-13 2018-05-24 후아웨이 테크놀러지 컴퍼니 리미티드 디코딩 장치 및 방법과 신호 전송 시스템
US10447300B2 (en) 2015-10-13 2019-10-15 Hauwei Technologies Co., Ltd. Decoding device, decoding method, and signal transmission system
KR20170140871A (ko) * 2016-06-14 2017-12-22 삼성전자주식회사 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법

Also Published As

Publication number Publication date
EP1782541A4 (en) 2009-03-18
EP1782541A2 (en) 2007-05-09
AU2005271540A1 (en) 2006-02-16
US20060026486A1 (en) 2006-02-02
US7376885B2 (en) 2008-05-20
US20070168832A1 (en) 2007-07-19
CN101044688B (zh) 2012-06-13
WO2006017555A2 (en) 2006-02-16
CN101044688A (zh) 2007-09-26
EP2683086A3 (en) 2014-01-22
NO20071133L (no) 2007-05-02
UA86987C2 (ru) 2009-06-10
JP4567734B2 (ja) 2010-10-20
KR100888096B1 (ko) 2009-03-11
WO2006017555A3 (en) 2006-11-09
JP2008508835A (ja) 2008-03-21
ZA200701825B (en) 2008-11-26
CA2575953C (en) 2009-08-25
US7127659B2 (en) 2006-10-24
EP2683086A2 (en) 2014-01-08
CA2575953A1 (en) 2006-02-16

Similar Documents

Publication Publication Date Title
KR100888096B1 (ko) 메모리 효율적인 ldpc 디코딩 방법 및 장치
KR100958234B1 (ko) 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들
US7673223B2 (en) Node processors for use in parity check decoders
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US20110131462A1 (en) Matrix-vector multiplication for error-correction encoding and the like
US20050229087A1 (en) Decoding apparatus for low-density parity-check codes using sequential decoding, and method thereof
JP2005506733A5 (ko)
US20050258984A1 (en) LDPC architecture
CN106330203A (zh) 一种ldpc的解码方法
KR20150128750A (ko) 늦은 신뢰도 정보를 사용하여 디코딩하기 위한 시스템 및 방법
CN115296675B (zh) 用于ldpc码的解码的提前收敛
RU2382493C2 (ru) Эффективные по использованию памяти способы декодирования кодов с низкой плотностью контроля по четности (ldpc) и устройства для осуществления этих способов
KR20080068218A (ko) 통신 시스템에서 데이터 수신 방법 및 장치
JP2007281771A (ja) 誤り訂正復号装置および誤り訂正復号方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130227

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 11