KR20160002946A - 10gbase-t 시스템에서 ldpc 인코더의 방법 및 장치 - Google Patents

10gbase-t 시스템에서 ldpc 인코더의 방법 및 장치 Download PDF

Info

Publication number
KR20160002946A
KR20160002946A KR1020157032847A KR20157032847A KR20160002946A KR 20160002946 A KR20160002946 A KR 20160002946A KR 1020157032847 A KR1020157032847 A KR 1020157032847A KR 20157032847 A KR20157032847 A KR 20157032847A KR 20160002946 A KR20160002946 A KR 20160002946A
Authority
KR
South Korea
Prior art keywords
parity
bit
parity bits
remaining
bits
Prior art date
Application number
KR1020157032847A
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 KR20160002946A publication Critical patent/KR20160002946A/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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1174Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC 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
    • 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/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

데이터 인코딩 방법이 기재된다. 통신 디바이스는, 코드워드(c)로 인코딩될 정보 비트들의 세트를 수신하며, 코드워드는, 정보 비트들의 세트 및 패리티 비트들의 세트를 포함한다. 패리티 비트들의 세트 내의 제 1 패리티 비트에 제 1 비트 값이 할당된다. 그 후, 제 1 패리티 비트에 할당된 제 1 비트 값에 적어도 부분적으로 기초하여 나머지 패리티 비트들이 인코딩된다. 디바이스는, 정보 비트들의 세트, 및 저밀도 패리티 체크(LDPC) 코드에 대한 패리티 체크 매트릭스(H)를 사용하여 나머지 패리티 비트들을 인코딩할 수도 있다. 디바이스는 또한, 패리티 체크 매트릭스 H의 선형 독립 행들에 기초하여 새로운 패리티 체크 매트릭스(H0)를 생성하고, 방정식 H0c = 0에 기초하여 나머지 패리티 비트들 각각을 반복적으로 평가할 수도 있다. 그 후, 디바이스는, 인코딩된 코드워드 c가 주어진 LDPC 코드에 대해 유효 코드워드인지가 결정되고, c가 유효 코드워드가 아니면, 코드워드의 하나 또는 그 초과의 비트 값들을 변경할 수도 있다.

Description

10GBASE-T 시스템에서 LDPC 인코더의 방법 및 장치{METHOD AND APPARATUS OF LDPC ENCODER IN 10GBASE-T SYSTEM}
[0001] 본 실시예들은 일반적으로 데이터 통신들에서의 에러 검출에 관한 것으로, 구체적으로는, 저밀도 패리티 체크(low density parity check)(LDPC) 인코딩에 기초하는 에러 검출 및/또는 정정에 관한 것이다.
[0002] 많은 통신 시스템들은 에러-정정 코드들을 사용한다. 구체적으로, 에러 정정 코드들은, 데이터 스트림 내에 리던던시(redundancy)를 도입함으로써 이러한 시스템들에서 정보 전달의 고유한 불확실성(unreliability)를 보상할 수도 있다. 저밀도 패리티 체크(LDPC) 코드들은, 반복(iterative) 코딩 시스템을 사용하는 특정한 타입의 에러 정정 코드들이다. LDPC 코드들은, 이분(bipartite) 그래프들(종종 "태너(Tanner) 그래프들"로 지칭됨)에 의해 표현될 수 있으며, 여기서, 변수 노드들의 세트는 코드워드의 정보 비트들에 대응하고, 체크 노드들의 세트는 코드를 정의하는 패리티-체크 제약들을 표현한다. 변수 노드 및 체크 노드는, 그들이 그래프에서 엣지(edge)에 의해 접속되는 경우, "이웃(neighbor)들"로 고려된다. 변수 노드 시퀀스와 일-대-일 연관을 갖는 비트 시퀀스는, 각각의 체크 노드에 대해, 모든 이웃하는 변수 노드들과 연관된 비트들의 합이 0 모듈로(modulo) 2가 되는 경우에만 유효 코드워드이다(즉, 그들은 짝수 개의 1들을 포함함).
[0003] 예를 들어, 도 1a는 예시적인 LDPC 코드를 표현하는 이분 그래프(100)를 도시한다. 이분 그래프(100)는 4개의 체크 노드들(120)(정사각형들로 표현됨)에 접속되는 5개의 변수 노드들(110)(원형들로 표현됨)의 세트를 포함한다. 그래프(100) 내의 엣지들은 변수 노드들(110)을 체크 노드들(120)에 접속시킨다. 도 1b는 이분 그래프(100)의 매트릭스 표현(150)을 도시한다. 매트릭스 표현(150)은 패리티 체크 매트릭스 H 및 코드워드 벡터 x를 포함하고, 여기서 x1-x5는 코드워드 x의 비트들을 나타낸다. 더 구체적으로, 코드워드 벡터 x는, Hx = 0인 경우에만 유효 코드워드를 표현한다.
[0004] 수신된 LDPC 코드워드는 오리지널 코드워드의 재구성된 버전을 생성하도록 디코딩될 수 있다. 에러들의 부재 시에 또는 정정가능한 에러들의 경우에, 디코딩은 인코딩된 오리지널 데이터 유닛을 복원하는데 사용될 수 있다. 예를 들어, LDPC 디코더는, 엣지들을 따라 이분 그래프(100) 내에서 메시지들을 교환하고, 인입하는(incoming) 메시지들에 기초하여 노드들에서 계산들을 수행함으로써 이러한 메시지들을 업데이트함으로써 동작할 수도 있다. 그래프(100) 내의 각각의 변수 노드(110)는, 통신 채널로부터의 관측들에 의해 결정된 연관된 비트의 값의 추정치를 나타내는 "소프트 비트(soft bit)"(예를 들어, 코드워드의 수신된 비트를 표현함)를 처음에 제공받을 수도 있다. LDPC 디코더들은, 대응하는 LDPC 코드의 패리티 체크 제약들에 기초하여, 메모리로부터 소프트 비트들을 반복적으로 판독하고 소프트 비트들을 다시 메모리에 기입함으로써 소프트 비트들을 업데이트할 수도 있다.
[0005] LDPC 코드워드를 디코딩하기 위해 사용되는 패리티 체크 매트릭스 H는 희박(sparse)하다(즉, 매트릭스 H는 0들보다 현저히 더 적은 1들을 포함함). 예를 들어, IEEE 802.3an 이더넷 표준에 의해 채택된 LDPC 코드는 32의 행 가중치(row weight) 및 6의 열 가중치(column weight)를 갖는 384×2048 매트릭스이다. 즉, H의 각각의 행은 32개의 1들을 갖고, H의 각각의 열은 6개의 1들을 갖는다. H의 희박성은 수신된 코드워드들의 효율적인 디코딩을 가능하게 한다. 대조적으로, 통상적으로 LDPC 코드워드들을 인코딩하기 위해 사용되는 생성 매트릭스(generator matrix)(G)는 희박하지 않다(예를 들어, GHT = 0). 따라서, 그러한 높은 인코딩 복잡도로 인해, 생성 매트릭스 G를 구현하는 LDPC 인코더들은 종종, 매우 복잡하고 그리고/또는 비효율적이다.
[0006] 본 개요는, 상세한 설명에서 추가로 후술되는 개념들의 선택을 단순화된 형태로 안내하기 위해 제공된다. 본 개요는, 청구된 요지의 핵심 특성들 또는 본질적인 특성들을 식별하도록 의도되거나 청구된 요지의 범위를 제한하도록 의도되지는 않는다.
[0007] 다른 디바이스에 송신될 데이터의 인코딩을 보조할 수도 있는 디바이스 및 동작 방법이 기재된다. 몇몇 실시예들에 대해, 디바이스는, 코드워드(c)로 인코딩될 정보의 세트를 저장하기 위한 메모리 엘리먼트를 포함할 수도 있으며, 여기서, 코드워드는, 정보 비트들의 세트 및 패리티 비트들의 세트; 및 (i) 제 1 비트 값을 패리티 비트들의 세트 내의 제 1 패리티 비트에 할당하고, 그리고 (ii) 제 1 패리티 비트에 할당된 제 1 비트 값에 적어도 부분적으로 기초하여 패리티 비트들의 세트 내의 나머지 패리티 비트들을 인코딩하기 위한 하나 또는 그 초과의 프로세서들을 포함한다. 하나 또는 그 초과의 프로세서들은, 저밀도 패리티 체크(LDPC) 코드에 대한 패리티 체크 매트릭스(H) 및 정보 비트들의 세트를 사용하여 나머지 패리티 비트들을 인코딩할 수도 있다. 하나 또는 그 초과의 프로세서들은 또한, 인코딩된 코드워드가 주어진 LDPC 코드에 대해 유효 코드워드인지 여부를 결정할 수도 있고, 유효 코드워드가 아닌 경우, 코드워드의 하나 또는 그 초과의 비트 값들을 변경할 수도 있다.
[0008] 몇몇 실시예들에 대해, 패리티 체크 매트릭스 H의 선형 독립 행(lineary independent row)들에 기초하여 새로운 패리티 체크 매트릭스(H0)가 생성될 수도 있다. 그 후, 방정식 H0c = 0에 기초하여 나머지 패리티 비트들 각각이 반복적으로 평가될 수도 있다. 구체적으로, 나머지 패리티 비트들은, 하나 또는 그 초과의 벡터 방정식(vector equation)을 반복적으로 해결(solve)함으로써 평가될 수도 있다.
[0009] 몇몇 실시예들에 대해, 코드워드가 유효 코드워드가 아닌 경우, 제 1 패리티 비트는 제 2 비트 값을 할당받을 수도 있다. 그 후, 하나 또는 그 초과의 프로세서들은, 존재한다면, 나머지 패리티 비트들 중 어느 패리티 비트들이 제 1 패리티 비트에 의해 영향을 받는지를 결정하고, 영향을 받는 패리티 비트들의 비트 값들을 변경할 수도 있다. 예를 들어, 하나 또는 그 초과의 프로세서들은 검색(lookup) 테이블에서 영향을 받는 패리티 비트들을 검색할 수도 있다.
[0010] (예를 들어, 생성 매트릭스 G를 사용하기 보다는) 패리티 체크 매트릭스 H를 사용하는 인코딩 LDPC 코드워드들은, H의 희박성으로 인해 인코딩 동작들의 복잡도를 실질적으로 감소시킨다. 더욱이, 제 1 패리티 비트에 대한 비트 값을 가정하고, 그러한 가정에 기초하여 나머지 패리티 비트들을 반복적으로 평가하는 것은, LDPC 인코딩 동작들이 실질적으로 선형 방식으로 신속하게 수행되는 것을 가능하게 한다. 또한, 오직 유한한 개수의 나머지 패리티 비트들만이 제 1 패리티 비트의 값에 대한 부정확한 가정에 의해 영향을 받을 수도 있기 때문에, 부정확한 가정에 기초하여 생성된 코드워드는 후속하여, (예를 들어, 영향을 받는 패리티 비트들의 비트 값들을 변경함으로써) 단일 단계에서 정정된다.
[0011] 본 실시예들은 예로서 예시되며, 첨부된 도면들의 도해들에 의해 제한되도록 의도되지 않는다.
[0012] 도 1a-1b는 예시적인 LDPC 코드의 그래픽 표현들 및 매트릭스 표현들을 도시한다.
[0013] 도 2는 몇몇 실시예들에 따른 통신 시스템을 도시한다.
[0014] 도 3은 몇몇 실시예들에 따른 데이터 인코딩 동작을 도시하는 예시적인 흐름도이다.
[0015] 도 4는 몇몇 실시예들에 따른 LDPC 프로세싱 디바이스의 블록도이다.
[0016] 도 5는 몇몇 실시예들에 따른, 코드워드의 패리티 비트들을 평가하는 방법을 도시하는 예시적인 흐름도이다.
[0017] 도 6은 몇몇 실시예들에 따른 다른 데이터 인코딩 동작을 도시하는 예시적인 흐름도이다.
[0018] 도 7은 몇몇 실시예들에 따른 인코더의 블록도이다.
[0019] 다음의 설명에서, 특정한 컴포넌트들, 회로들, 및 프로세스들의 예들과 같은 다수의 특정한 세부사항들이 본 개시의 철저한 이해를 제공하기 위해 기재된다. 본 명세서에 사용되는 바와 같이, 용어 "커플링된"은, 직접 접속되거나 하나 또는 그 초과의 개재(intervening) 컴포넌트들 또는 회로들을 통해 접속됨을 의미한다. 또한, 다음의 설명에서, 그리고 설명의 목적들을 위하여, 특정한 명명법(nomenclature)이 본 실시예들의 철저한 이해를 제공하기 위해 기재된다. 그러나, 이들 특정한 세부사항들이 본 실시예들을 실시하는데 요구되지 않을 수도 있음이 당업자들에 명백할 것이다. 다른 예시들에서, 잘-알려진 회로들 및 디바이스들은, 본 개시를 불명료하게 하는 것을 회피하기 위해 블록도 형태로 도시된다. 본 명세서에 설명된 다양한 버스들을 통해 제공되는 신호들 중 임의의 신호는, 다른 신호들과 시간-멀티플렉싱(time-multiplex)될 수도 있고, 하나 또는 그 초과의 공통 버스들을 통해 제공될 수도 있다. 부가적으로, 회로 엘리먼트들 또는 소프트웨어 블록들 사이의 상호접속은, 버스들로서 도시되거나 단일 신호 라인들로서 도시될 수도 있다. 대안적으로, 버스들 각각은 단일 신호 라인일 수도 있고, 대안적으로, 단일 신호 라인들 각각은 버스들일 수도 있으며, 단일 라인 또는 버스는, 컴포넌트들 사이의 통신을 위한 무수한 물리적 또는 로직 메커니즘들 중 임의의 하나 또는 그 초과의 메커니즘을 표현할 수도 있다. 본 실시예들은, 본 명세서에 설명된 특정한 예들로 제한되는 것으로서 해석되어서는 안되며, 오히려, 첨부된 청구항들에 의해 정의되는 모든 실시예들을 그들의 범위 내에 포함하는 것으로 해석되어야 한다.
[0020] 도 2는 몇몇 실시예들에 따른 통신 시스템(200)을 도시한다. 송신기(210)는 신호를 채널(220) 상에서 송신하고, 수신기(230)는 채널(220)로부터 신호를 수신한다. 송신기(210) 및 수신기(230)는, 예를 들어, 컴퓨터들, 스위치들, 라우터들, 허브들, 게이트웨이들, 및/또는 유사한 디바이스들일 수도 있다. 몇몇 실시예들에 대해, 통신 시스템은 IEEE 802.3an 이더넷 표준에 기초한 10GBASE-T 이더넷 시스템이지만(예를 들어, 채널(220)은 유선 링크임), 다른 유선 통신 표준들이 시스템(200)에 의해 이용될 수도 있다. 다른 실시예들에서, 채널(220)은 무선일 수도 있다.
[0021] 통신 시스템(200) 내의 다양한 컴포넌트들의 결함들은 신호 손상의 소스들이 되고, 그에 따라 신호 열화(degradation)를 야기할 수도 있다. 예를 들어, 채널(220)에서의 결함들은, 선형 왜곡, 다중-경로 효과들 및/또는 AWGN(Additive White Gaussian Noise)을 포함할 수도 있는 채널 왜곡을 유발할 수도 있다. 잠재적인 신호 열화에 대처(combat)하기 위해, 송신기(210) 및 수신기(230)는 각각 LDPC 인코더들 및 디코더들을 포함할 수도 있다. 구체적으로, 송신기(210)는, 오리지널 데이터를 복원하기 위해, (예를 들어, LDPC 디코딩 동작을 통해) 수신기(230)에 의해 후속하여 디코딩될 수 있는 코드워드를 생성하도록, 인출(outgoing)되는 데이터에 대해 LDPC 인코딩을 수행할 수도 있다. 몇몇 실시예들에 대해, 송신기(210)는, 송신기(210) 및 수신기(230) 둘 모두에 의해 사용되는 LDPC 코드와 연관된 패리티 체크 매트릭스(H)에 기초하여 코드워드를 생성할 수도 있다. 추가로, 몇몇 실시예들에 대해, 송신기(210)는, 제 1 패리티 비트에 대한 초기 비트 값을 가정하고 제 1 패리티 비트의 초기 비트 값에 기초하여 나머지 패리티 비트들을 반복적으로 평가함으로써, 코드워드에 대한 패리티 비트들의 세트를 생성할 수도 있다.
[0022] 도 3은 몇몇 실시예들에 따른 데이터 인코딩 동작(300)을 도시하는 예시적인 흐름도이다. 예를 들어, 도 2를 참조하면, 송신기(210)는 먼저, 인코딩되어 송신될 정보 비트들의 세트를 수신한다(310). 몇몇 실시예들에 대해, 정보 비트들은, 송신기(210)와 수신기(230) 사이에 공유된 LDPC 코드에 기초하여 LDPC 코드워드들(c)로 인코딩될 수도 있다. 각각의 코드워드 c는, 오리지널 정보 비트들(cs) 뿐만 아니라, 패리티 체크들을 수행하고 그리고/또는 오리지널 정보 비트들 cs를 복원하기 위해 사용될 수도 있는 패리티 비트들(cp)의 세트를 포함할 수도 있다. 몇몇 실시예들에 대해, LDPC 코드는, 802.3an 이더넷 표준(예를 들어, 10GBASE-T)에 기초하는 (2048, 1723) 정규 LDPC 코드에 대응할 수도 있다. 구체적으로, 802.3an 이더넷 표준 하에서, 1723개의 정보 비트들은 325개의 패리티 비트들과 결합되어 2048-비트 코드워드를 형성한다.
[0023] 그 후, 송신기(210)는 초기 비트 값(b0)을 코드워드 c의 제 1 패리티 비트(cp[0])에 할당한다(320). 아래에서 더 상세히 설명될 바와 같이, 초기 비트 값 b0는 제 1 패리티 비트 cp[0]의 실제의 비트 값에 대한 "가정"이다. 따라서, 몇몇 실시예들에 대해, 초기 비트 값 b0는, 후속하여 가정이 부정확한 것으로 결정되면 변경되거나 정정될 수도 있는 임의의 값(예를 들어, 0 또는 1 중 어느 하나)일 수도 있다. 본 실시예들에서, 가정은, 단지 단순화를 위해서 "제 1" 패리티 비트(즉, cp[0])에 관해 이루어짐이 유의되어야 한다. 다른 실시예들에 대해, 초기 비트 값 b0는 패리티 비트들 cp[0]-cp[n] 중 임의의 패리티 비트에 대해 가정될 수도 있다.
[0024] 마지막으로, 송신기(210)는, 제 1 패리티 비트 cp[0]에 할당된 초기 비트 값 b0에 부분적으로 기초하여 나머지 패리티 비트들(cp[1]-cp[n])을 인코딩한다(330). 몇몇 실시예들에 대해, 나머지 패리티 비트들(cp[1]-cp[n])은, 예를 들어, Hc = 0 (mod 2)을 해결함으로써, 패리티 체크 매트릭스 H에 기초하여 평가될 수도 있다. 추가로, 몇몇 실시예들에 대해, 송신기(210)는, 예를 들어, 최종 코드워드 c가 주어진 LDPC 코드에 대해 유효 코드워드인지 여부를 결정함으로써 패리티 비트들 cp[0]-cp[n]이 적절히 인코딩되었는지 여부를 검증할 수도 있다. 코드워드 c가, 유효 LDPC 코드워드를 표현하지 않으면, 송신기(210)는, 제 1 패리티 비트 cp[0], 및 초기 비트 값 b0에 기초하여 부정확하게 인코딩되었을 수도 있는 임의의 나머지 패리티 비트들 cp[1]-cp[n]의 비트 값들을 "플립(flip)" 또는 변경할 수도 있다.
[0025] 도 4는 몇몇 실시예들에 따른 LDPC 프로세싱 디바이스(400)의 블록도이다. LDPC 프로세싱 디바이스(400)는, 인코더(410), 디코더(420), 및 통신 채널(예를 들어, 도 2의 채널(220))을 통해 LDPC-인코딩된 코드워드들을 송신 및/또는 수신하는 트랜시버(430)를 포함한다. 몇몇 실시예들에 대해, 통신 채널은 (다른 통신 매체들이 사용될 수도 있지만) 10GBASE-T 이더넷 채널에 대응할 수도 있다. 몇몇 실시예들에 대해, LDPC 코드는 802.3an 이더넷 표준(예를 들어, 10GBASE-T)에 기초한 정규(2048, 1723) LDPC 코드일 수도 있다. 따라서, 각각의 LDPC 코드워드는, 길이가 (1723개의 정보 비트들 및 325개의 패리티 비트들을 포함하는) 2048 비트일 수도 있다.
[0026] 인코더(410)는 메모리(412), LDPC 인코더(414), 및 코드워드 검증 및 정정(CVC) 프로세서(416)를 포함한다. 구체적으로, 메모리(412)는 LDPC 인코더(414)에 의해 인코딩될 정보 비트들을 저장할 수도 있다. LDPC 인코더(414)는, LDPC 코드에 기초하여, 다른 디바이스에 송신될 코드워드들 c를 생성함으로써, 메모리(412)에 저장된 정보 비트들을 프로세싱한다. 몇몇 실시예들에 대해, LDPC 인코더(414)는, 예를 들어, 제 1 패리티 비트 cp[0]에 대해 초기 비트 값 b0를 가정하고 방정식 Hc = 0에 기초하여 나머지 패리티 비트들 cp[1]-cp[n]을 평가함으로써, LDPC 코드와 연관된 패리티 체크 매트릭스 H에 기초하여 코드워드들 c를 생성할 수도 있다. CVC 프로세서(416)는, LDPC 인코더(414)에 의해 생성된 코드워드들 c가 주어진 LDPC 코드에 대해 유효 코드워드들인지 여부를 결정한다. 몇몇 실시예들에 대해, CVC 프로세서(416)는, Hc = 0을 검증함으로써 코드워드 c의 유효성을 결정할 수도 있다. c가 유효 코드워드가 아니면, CVC 프로세서(416)는, 제 1 패리티 비트 cp[0] 및 제 1 패리티 비트 cp[0]의 비트 값에 의해 영향을 받는 임의의 나머지 패리티 비트들 cp[1]-cp[n]의 비트 값들을 플립함으로써 코드워드 c를 수정할 수도 있다.
[0027] 디코더(420)는 메모리(422) 및 LDPC 디코더(424)를 포함한다. 메모리(422)는, LDPC 디코더(424)에 의해 디코딩될 (트랜시버(430)를 통해 수신된) 코드워드들을 저장할 수도 있다. LDPC 디코더(424)는, LDPC 코드에 기초하여 패리티 체크 동작들을 수행함으로써, 메모리(422)에 저장된 코드워드들을 프로세싱한다(LDPC 디코더(424)는, 코드워드들 c를 생성하기 위해 LDPC 인코더(414)에 의해 사용되는 동일한 패리티 체크 매트릭스 H를 사용하여 패리티 체크 동작들을 수행할 수도 있음을 유의함). 더 구체적으로는, LDPC 디코더(424)는, 수신된 코드워드들의 비트들의 유효성을 검증하고 그리고/또는 에러로 수신되었을 수도 있는 임의의 비트들을 패리티 체크 동작들을 통해 정정하려 시도할 수도 있다. 예를 들어, 각각의 패리티 체크 동작은, 메모리(422)로부터 대응하는 소프트 비트 값을 판독하는 것, 소프트 비트 값을 특정한 체크 노드(예를 들어, 패리티 체크 제약)와 연관된 다른 소프트 비트 값들과 결합시키는 것, 및 체크 노드 동작으로부터 초래하는 비트 값을 다시 메모리(422)에 기입하는 것을 수반할 수도 있다. 몇몇 실시예들에 대해, LDPC 디코더(424)는, 패리티 체크 동작들을 병렬로 수행하기 위해, 복수의 프로세싱 엘리먼트들을 포함할 수도 있다. 수신된 코드워드 내의 하나 또는 그 초과의 비트 에러들을 LDPC 디코더(424)가 정정할 수 없으면(따라서, 디코딩 에러를 초래함), 디코더(424)는 디코딩 에러 메시지를 생성할 수도 있다.
[0028] 생성 매트릭스 G 대신 패리티 체크 매트릭스 H를 사용함으로써, 인코더(410)는, (예를 들어, H의 희박성으로 인해) 비교적 낮은 복잡도로 인코딩 동작들을 수행하여 LDPC 코드워드들을 생성할 수도 있다. 더욱이, 제 1 패리티 비트 cp[0]에 대한 비트 값을 가정하고 그 가정에 기초하여 나머지 패리티 비트들 cp[1]-cp[n]을 반복적으로 평가하는 것은, 인코더(410)가 코드워드들을 고속으로 그리고 실질적으로 선형 방식으로 생성하는 것을 가능하게 한다.
[0029] 도 5는 몇몇 실시예들에 따른, 코드워드의 패리티 비트들을 평가하는 방법(500)을 도시하는 예시적인 흐름도이다. 패리티 체크 매트릭스 H의 선형 독립 행들로부터 새로운 패리티 체크 매트릭스 H0가 구성된다(510). 예를 들어, 802.3an 이더넷 표준 LDPC 코드에 대한 패리티 체크 매트릭스 H는 랭크 325를 갖는 384×2048 매트릭스이다. 따라서, H의 384개의 행들 중 오직 325개만이 선형 독립적이다(즉, 다른 행들의 선형 결합으로 표현될 수 없음). 구체적으로, 325개의 선형 독립 행들은 다음과 같다.
0, 5, 6, 7, 9, 12, 18, 26, 28, 33, 35, 37, 39, 42, 44, 49, 55, 68, 76, 78, 92, 93, 95, 97, 99, 103, 104, 108, 110, 112, 115, 127, 129, 140, 143, 145, 155, 157, 158, 160, 175, 176, 177, 184, 187, 191, 197, 198, 200, 210, 214, 215, 217, 218, 220, 223, 224, 227, 236, 238, 246, 248, 257, 268, 270, 272, 276, 281, 284, 287, 288, 292, 293, 294, 305, 315, 319, 324, 325, 329, 339, 344, 347, 360, 380, 382, 13, 14, 17, 23, 24, 30, 41, 45, 50, 56, 57, 61, 70, 75, 82, 100, 111, 113, 114, 121, 126, 128, 130, 131, 138, 144, 147, 148, 149, 152, 153, 179, 181, 182, 189, 192, 194, 196, 199, 204, 211, 219, 231, 234, 237, 240, 242, 245, 247, 251, 252, 253, 262, 264, 267, 285, 286, 291, 297, 298, 303, 304, 309, 327, 346, 365, 20, 25, 34, 46, 74, 139, 161, 166, 188, 195, 201, 202, 216, 235, 239, 261, 269, 275, 300, 320, 323, 330, 335, 342, 343, 349, 352, 375, 377, 381, 43, 84, 96, 137, 141, 249, 299, 311, 383, 38, 164, 302, 348, 208, 301, 73, 83, 162, 359, 90, 254, 280, 378, 58, 150, 183, 186, 250, 21, 27, 54, 171, 206, 209, 307, 338, 3, 94, 173, 212, 221, 241, 271, 278, 367, 11, 133, 136, 258, 283, 296, 328, 337, 358, 373, 15, 31, 106, 125, 225, 232, 310, 314, 322, 336, 376, 60, 81, 117, 119, 124, 169, 178, 255, 65, 326, 340, 341, 379, 118, 259, 159, 123, 295, 29, 122, 40, 331, 64, 174, 1, 256, 289, 362, 51, 86, 101, 142, 228, 230, 266, 2, 72, 120, 135, 163, 317, 321, 345, 354, 355, 59, 62, 66, 67, 69, 80, 134, 180, 279, 306, 351, 353, 32, 36, 77, 79, 89, 91, 116, 185, 213, 8, 71, 88, 98, 109, 167, 205, 226, 105, 107, 371
802.3an 이더넷 표준 LDPC 코드에 대한 결과적인 새로운 패리티 체크 매트릭스 H0는, 오리지널 패리티 체크 매트릭스 H의 (위에 열거된) 325개의 독립 행들을 포함하는 325×2048 매트릭스이다.
[0030] 그 후, 새로운 패리티 체크 매트릭스 H0는 2개의 서브-매트릭스들 Hs 및 HP로 세분화된다(520). 구체적으로, N×M 패리티 체크 매트릭스 H0는 다음과 같이 표현될 수도 있다.
Figure pct00001
여기서, Hs는 N×K 서브-매트릭스(K는 각각의 코드워드 내의 정보 비트들의 개수에 대응함)이고, Hp는 N×(M-K) 서브 매트릭스(M-K는 각각의 코드워드 내의 패리티 비트들의 개수에 대응함)이다. 상술된 바와 같이, 802.3an 이더넷 표준은 1723개의 정보 비트들(즉, K = 1723) 및 325개의 패리티 비트들을 포함하는 2048-비트 LDPC 코드워드를 명시한다. 따라서, 325×2048 패리티 체크 매트릭스 H0는 325×1723 서브-매트릭스 Hs 및 325×325 서브 매트릭스 Hp의 관점으로 표현될 수도 있다.
[0031] 1×M 벡터로서 표현되는 코드워드 c는 성분 벡터(constituent vector)들 cs 및 cp로 세분화된다(530). 더 구체적으로는, M-비트 코드워드 c는 다음과 같이 표현될 수도 있다.
Figure pct00002
여기서, cs는 인코딩될 K개의 정보 비트들을 표현하고, cp는 M-K개의 패리티 비트들을 표현한다. 예를 들어, 802.3an 이더넷 표준에 관하여, 2048-비트 코드워드 c는 1723개의 정보 비트들 cs 및 325개의 패리티 비트들 cp의 관점으로 표현될 수도 있다.
[0032] 마지막으로, 패리티 비트들 cp는 벡터 방정식 HsCs = Hpcp를 해결함으로써 평가될 수도 있다(540). 예를 들어, 상술된 바와 같이, 패리티 체크 매트릭스 H는 임의의 유효 코드워드 c에 대해 Hc = 0이도록 정의된다. H0은 H의 독립 행들을 포함하기 때문에, 결과적으로, 임의의 유효 코드워드 c에 대해 H0c = 0이다. H0을 Hs 및 Hp로, 그리고 c를 cs 및 cp로 치환하여 다음의 방정식이 생성된다.
Figure pct00003
바이너리 필드(binary field) 인코딩에서, 위의 방정식은 다음과 같이 다시 쓰여질 수 있다.
Figure pct00004
여기서, s는 패리티 체크 서브-매트릭스 Hs와 정보 비트들 cs를 곱함으로써 획득되는 솔루션 벡터(solution vector)을 표현한다. 더 구체적으로는, 정보 비트들 cs가 알려져 있고(즉, 그들은 인코딩될 실제의 데이터 비트들임), 서브-매트릭스 Hs의 엘리먼트들이 또한 알려져 있기 때문에(즉, 그들은 패리티 체크 매트릭스 H의 엘리먼트들에 대응함), HsCs의 곱은 솔루션 벡터 s에 의해 표현될 수 있다. 따라서, 패리티 비트들 cp는 다음의 벡터 방정식으로부터 결정될 수도 있다.
Figure pct00005
[0033] cp는 상당한 개수의 알려지지 않은 비트 값들을 포함할 수도 있음이 유의되어야 한다(예를 들어, 802.3an 이더넷 표준 하에서 모든 각각의 코드워드에 대해 325개의 패리티 비트들이 존재함). 따라서, 브루트 포스(brute force)로 위의 방정식을 해결하는 것은, 높은 레벨의 인코딩 복잡도를 수반할 수도 있다. 그러나, 패리티 비트들 중 하나에 대한 비트 값을 먼저 가정함으로써, 나머지 패리티 비트들은 실질적으로 선형 방식으로 신속하게 결정될 수 있다.
[0034] 생성 매트릭스 G 대신 패리티 체크 매트릭스 H를 사용하여 LDPC 코드워드들을 인코딩함으로써, 방법(500)은, H의 희박성으로 인해 인코딩 동작들의 복잡도를 실질적으로 감소시킬 수도 있다. 방법(500)은 추가로, 인코딩을 위해 (오직 오리지널 패리티 체크 매트릭스 H의 선형 독립 행들만을 포함하는) 새로운 패리티 체크 매트릭스 H0을 사용함으로써 인코딩 복잡도를 감소시킨다.
[0035] 도 6은 몇몇 실시예들에 따른 다른 데이터 인코딩 동작(600)을 도시하는 예시적인 흐름도이다. 상술된 바와 같이, 본 실시예들은, 패리티 체크 매트릭스 H(또는 H0)에 기초하여 그리고 패리티 비트들 cp 중 적어도 하나에 대한 초기 비트 값을 가정함으로써, LDPC 코드워드들 c를 생성할 수도 있다. 도 4를 또한 참조하면, 동작(600)에서, LDPC 프로세싱 디바이스(400)는 먼저, 인코딩될 정보 비트들 cs의 세트를 수신한다(610). 예를 들어, 정보 비트들 cs는, LDPC 프로세싱 디바이스(400)가 또한 상주하는 통신 디바이스의 중앙 프로세싱 유닛(CPU)으로부터 수신될 수도 있다.
[0036] LDPC 프로세싱 디바이스(400)는, 인코딩될 모든 각각의 정보 비트들 cs의 세트에 대한 패리티 비트들 cp의 세트를 결정함으로써 LDPC 코드워드들 c를 생성한다(예를 들어, 여기서, c = [cscp]). 도 5를 참조하여 상술된 바와 같이, 패리티 비트들 cp는 방정식 Hpcp = Hscs = s에 기초하여 평가될 수 있다. 몇몇 실시예들에 대해, LDPC 코드워드들 c는 LDPC 프로세싱 디바이스(400)의 인코더(410)에 의해 생성된다.
[0037] LDPC 인코더(414)는, 코드워드 c의 제 1 패리티 비트 cp[0]을 0으로 셋팅한다(620). 상술된 바와 같이, 제 1 패리티 비트 cp[0]에 할당된 0 비트 값은 실제 비트 값에 대한 가정이다. 예를 들어, 이러한 가정은, 비교적 낮은 인코딩 복잡도로, 나머지 패리티 비트들 cp[1]-cp[n]이 실질적으로 선형 방식으로 평가되게 한다.
[0038] 그 후, LDPC 인코더(414)는, 제 1 패리티 비트 cp[0]에 기초하여 나머지 패리티 비트들 cp[1]-cp[n]을 반복적으로 평가한다(630). 몇몇 실시예들에서, 각각의 반복에 대해, 알려진 패리티 비트 값들은, 최대 하나의 알려지지 않은 패리티 비트를 수반하는 (예를 들어, H0c = 0으로부터 초래하는) 하나 또는 그 초과의 벡터 방정식들로 치환될 수도 있다. 예를 들어, 제 1 반복 동안, 제 1 패리티 비트 cp[0]은, 최대 하나의 부가적인 알려지지 않은 패리티 비트(예를 들어, cp[1])를 수반하는 임의의 벡터 방정식(들)에서 자신의 가정된 값(예를 들어, cp[0] = 0)으로 치환될 수도 있다. 특정한 벡터 방정식 내의 유일한 알려지지 않은 패리티 비트이기 때문에, cp[1]의 값은 용이하게 결정될 수도 있다. 다음 반복에서, 최대 하나의 부가적인 알려지지 않은 패리티 비트(예를 들어, cp[2])를 수반하는 하나 또는 그 초과의 다른 벡터 방정식들에서 2개의 알려진 패리티 비트들 cp[0] 및 cp[1]이 치환될 수도 있다. 이러한 프로세스는, 나머지 패리티 비트들(예를 들어, cp[3]-cp[n]) 전부가 평가될 때까지 반복될 수도 있다.
[0039] 패리티 비트들 cp[0]-cp[n] 전부가 비트 값을 할당받은 후에, CVC 프로세서(416)는 코드워드 c의 유효성을 체크한다(640). 예를 들어, 유효 코드워드 c는 방정식들 Hc = 0 및/또는 H0c = 0을 충족해야 한다. 벡터 곱이 0을 산출하면 c는 유효 코드워드이고; 벡터 곱이 1을 산출하면 c는 유효 코드워드가 아니다. CVC 프로세서(416)가 c가 유효 코드워드인지 여부를 결정하기 위해 모든 각각의 Hc(또는 H0c)의 행-곱(row-product)을 평가할 필요는 없음이 유의되어야 한다. 몇몇 실시예들에 대해, CVC 프로세서(416)는, 코드워드 c가 무효일 때는 언제나 1을 산출하는 것으로 알려져 있는 패리티 체크 매트릭스 H0의 행과 코드워드 c를 곱함으로써, 코드워드 c의 유효성을 간단히 검증할 수도 있다. 예를 들어, 802.3an 이더넷 표준 하에서, CVC 프로세서(416)는, 패리티 체크 매트릭스 H0의 마지막 행(예를 들어, 802.3an 표준 LDPC 코드에 대한 매트릭스 H의 행 371에 대응하는 매트릭스 H0의 행 325)과 코드워드 c를 곱함으로써, 이러한 방식으로 생성된 코드워드들의 유효성을 검증할 수 있다.
[0040] CVC 프로세서(416)가 c가 유효 코드워드라고 결정하면(640), 코드워드 c를 최종 "인코딩된" 코드워드로서 출력하는 것으로 진행된다(670). 예를 들어, 코드워드 c는 트랜시버(430)에 포워딩(forward)될 수도 있고, 그 후, 트랜시버(430)는 코드워드 c를 네트워크 내의 다른 디바이스에 송신할 수도 있다. 그러나, CVC 프로세서(416)가 c가 유효 코드워드가 아니라고 결정하면(640), 그것은 제 1 패리티 비트 cp[0]에 대한 가정이 부정확(예를 들어, cp[0] ≠ 0)하기 때문이다.
[0041] 따라서, c가 유효 코드워드가 아니면(640), CVC 프로세서(416)는 제 1 패리티 비트 cp[0]을 1로 셋팅할 수도 있다(650). cp[0]이 처음에 0인 것으로 가정되었고(620), 나머지 패리티 비트들 cp[1]-cp[n]이 그 가정에 기초하여 평가되었음을 상기한다. 제 1 패리티 비트 cp[0]에 관한 가정이 부정확하면, 결과적으로, 그 부정확한 가정에 의존하는 임의의 나머지 패리티 비트들도 또한 잘못된 비트 값을 가질 것이다. 따라서, CVC 프로세서(416)는, 제 1 패리티 비트 cp[0]에 할당된 초기 비트 값에 의해 영향을 받을 수도 있는 임의의 그러한 나머지 패리티 비트들 cp[1]-cp[n]의 비트 값들을 플립할 수도 있다(660). 몇몇 실시예들에 대해, LDPC 인코더(414)는, 제 1 패리티 비트 cp[0]에 할당된 새로운 비트 값에 기초하여 다른 패리티 비트들 cp[1]-cp[n]을 재평가할 수도 있다(660).
[0042] 나머지 패리티 비트들 cp[1]-cp[n] 전부가 cp[0]에 할당된 비트 값에 의해 영향을 받는 것은 아닐 수도 있음을 유의한다. 즉, 몇몇 패리티 비트들은 cp[0] = 0 또는 1인지에 관계없이 동일한 비트 값으로 평가될 수도 있다. 또한, 영향을 받는 패리티 비트들은, 오직 패리티 체크 매트릭스 H0(또는 H)에만 의존하며, 그에 따라, 인코딩에 앞서 결정될 수도 있다. 따라서, 몇몇 실시예들에 대해, 제 1 패리티 비트 cp[0]의 비트 값을 변경한 이후(650), CVC 프로세서(416)는, 나머지 패리티 비트들 cp[1]-cp[n] 중에서 영향을 받는 임의의 패리티 비트들의 비트 값들을 간단히 플립할 수도 있다(660).
[0043] 예를 들어, 802.3an 표준 LDPC 코드를 참조하면, 정확히 제 1 패리티 비트 cp[0]의 비트 값에 의존하는(또는 그에 의해 영향을 받는) 55개의 패리티 비트들 cp가 존재한다. 이들 55개의 패리티 비트들은 다음과 같다.
97, 106, 181, 188, 197, 198, 201, 204, 207, 215, 225, 228, 229, 231, 232, 235, 237, 240, 243, 246, 247, 249, 253, 258, 260, 262, 267, 268, 269, 274, 276, 279, 280, 281, 284, 289, 293, 295, 296, 301, 303, 304, 306, 307, 309, 310, 311, 312, 313, 314, 316, 318, 319, 320, 322
위의 예에서, (예를 들어, cp[0] = 0이라는 가정 하에서) c가 유효 코드워드가 아니면, CVC 프로세서(416)는, cp[0] = 1을 셋팅하고(650), 위에 열거된 나머지 55개의 패리티 비트들의 비트 값들을 (예를 들어, 0들을 1들로 변경하고, 그 반대로 또한 변경함으로써) 비트 값들을 플립할 수도 있다(660).
[0044] 제 1 패리티 비트 cp[0] 및 나머지 패리티 비트들 cp[1]-cp[n] 중 영향을 받는 임의의 패리티 비트들이 플립된 이후(650-660), 결과적인 코드워드 c는 유효 코드워드일 것이다. 따라서, CVC 프로세서(416)는 이러한 "정정된" 코드워드 c를 최종 인코딩된 코드워드로서 출력할 수도 있다(670).
[0045] 제 1 패리티 비트 cp[0]에 대한 비트 값을 가정하고 그 가정에 기초하여 나머지 패리티 비트들 cp[1]-cp[n]을 반복적으로 평가하는 것은, 데이터 인코딩 동작(600)이 고속으로 그리고 실질적으로 선형 방식으로 수행되는 것을 가능하게 한다. 오직 고정된 패리티 비트들의 세트만이 제 1 패리티 비트 cp[0]의 비트 값에 의해 영향을 받기 때문에, 그리고 영향을 받는 패리티 비트들이 미리결정될 수 있기 때문에, 부정확한 가정(예를 들어, cp[0] ≠ 0)에 기초하여 생성된 코드워드 c는 (예를 들어, 영향을 받는 패리티 비트들을 플립함으로써) 단일 단계에서 정정될 수 있다.
[0046] 도 7은 몇몇 실시예들에 따른 인코더(700)의 블록도이다. 인코더(700)는 인코더 인터페이스(710), 프로세서(720), 및 메모리(730)를 포함한다. 인코더 인터페이스(710)는, 인코더(700)에 그리고/또는 그로부터 데이터를 통신하기 위해 사용될 수도 있다. 예를 들어, 인코더 인터페이스(710)는, 하나 또는 그 초과의 코드워드들로 인코딩될 정보 비트들을 (예를 들어, CPU로부터) 수신할 수도 있다. 인코더 인터페이스(710)는 또한, 인코더(700)에 의해 생성된 코드워드들을 (예를 들어, 트랜시버로) 출력할 수도 있다.
[0047] 메모리(730)는, 수신된 정보 비트들을 저장하기 위한 로컬 캐시로서 사용될 수도 있는 정보 비트 데이터베이스(731), 및 하나 또는 그 초과의 영향을 받는 패리티 비트들을 식별하는 정보를 저장하기 위해 사용될 수도 있는 비트 정정 검색 테이블(732)을 포함할 수도 있다. 상술된 바와 같이, 영향을 받는 패리티 비트들은, 제 1 패리티 비트(예를 들어, cp[0])의 비트 값에 의해 영향을 받을 수도 있는 코드워드 c의 하나 또는 그 초과의 패리티 비트들 cp와 대응한다.
[0048] 더욱이, 메모리(730)는 또한, 다음의 소프트웨어 모듈들 중 하나 또는 그 초과를 저장할 수 있는 비-일시적인 컴퓨터-판독가능 저장 매체(예를 들어, EPROM, EEPROM, 플래시 메모리, 하드 드라이브 등과 같은 하나 또는 그 초과의 비휘발성 메모리 엘리먼트들)를 포함할 수도 있다.
· 각각의 코드워드의 제 1 패리티 비트에 초기 비트 값을 할당함으로써, LDPC 코드와 연관된 패리티 체크 매트릭스 H를 사용하여 LDPC 코드워드들을 생성하기 위한 반복 인코딩 모듈(733);
· 반복 인코딩 모듈(733)에 의해 생성된 각각의 코드워드가 주어진 LDPC 코드에 대해 유효 코드워드를 표현하는지 여부를 검증하기 위한 코드워드(CW) 검증 모듈(734); 및
· 무효인 것으로 결정된 코드워드의 하나 또는 그 초과의 패리티 비트들을 플립(즉, 변경)하기 위한 CW 정정 모듈(735).
각각의 소프트웨어 모듈은, 프로세서(720)에 의해 실행되는 경우 인코더(700)로 하여금 대응하는 기능을 수행하게 할 수도 있는 명령들을 포함할 수도 있다. 따라서, 메모리(730)의 비-일시적인 컴퓨터-판독가능 저장 매체는, 도 5-6에 관하여 설명된 동작들 전부 또는 부분을 수행하기 위한 명령들을 포함할 수도 있다.
[0049] 인코더 인터페이스(710)와 메모리(730) 사이에 커플링되는 프로세서(720)는, 디코더(700)에(예를 들어, 메모리(730) 내에) 저장된 하나 또는 그 초과의 소프트웨어 프로그램들의 명령들의 스크립트(script)들을 실행하는 것이 가능한 임의의 적절한 프로세서일 수도 있다. 예를 들어, 프로세서(720)는, 반복 인코딩 모듈(733), CW 검증 모듈(734), 및/또는 CW 정정 모듈(735)을 실행할 수 있다.
[0050] 반복 인코딩 모듈(733)은, LDPC 코드워드들 c를 생성함으로써 정보 비트 데이터베이스(731)에 저장된 정보 비트들을 프로세싱하기 위해 프로세서(720)에 의해 실행될 수도 있다. 예를 들어, 반복 인코딩 모듈(733)은, 프로세서(720)에 의해 실행되는 경우, 인코딩될 정보 비트들 cs, 및 LDPC 코드와 연관된 패리티 체크 매트릭스 H에 기초하여 코드워드 c에 대한 패리티 비트들 cp의 세트를 결정할 수도 있다. 몇몇 실시예들에 대해, 프로세서(720)는, (예를 들어, 도 5-6을 참조하여 상술된 바와 같이) 코드워드 c의 제 1 패리티 비트 cp[0]에 대해 초기 비트 값 b0를 가정하고 방정식 Hpcp = Hscs에 기초하여 나머지 패리티 비트들 cp[1]-cp[n]을 반복적으로 평가함으로써, 코드워드 c를 생성할 수도 있다.
[0051] CW 검증 모듈(734)은, 반복 인코딩 모듈(733)에 의해 생성된 코드워드들 c가 주어진 LDPC 코드에 대해 유효 코드워드들을 표현하는지 여부를 결정하기 위해 프로세서(720)에 의해 실행될 수도 있다. 예를 들어, CW 검증 모듈(734)은, 프로세서(720)에 의해 실행되는 경우, Hc = 0을 검증함으로써 코드워드 c의 유효성을 결정할 수도 있다. 몇몇 실시예들에 대해, 프로세서(720)는, CW 검증 모듈(734)을 실행할 시, (예를 들어, 도 5를 참조하여 상술된 바와 같이) 코드워드 c가 무효일 때는 언제나 1을 산출하는 것으로 알려져 있는 패리티 체크 매트릭스 H의 단일 행과 코드워드 c를 곱함으로써, 코드워드 c의 유효성을 검증할 수도 있다. c가 유효 코드워드이면, 프로세서(720)는, 예를 들어, 트랜시버에 출력되도록, 코드워드 c를 인코더 인터페이스(710)로 포워딩할 수도 있다. 그러나, c가 유효 코드워드가 아니면, 프로세서(720)는 대신 CW 정정 모듈(735)을 실행할 수도 있다.
[0052] CW 정정 모듈(735)은, 프로세서(720)에 의해 실행되는 경우, CW 검증 모듈(734)에 의해 무효인 것으로 결정된 코드워드 c를 정정 또는 수정할 수도 있다. 예를 들어, 프로세서(720)는, CW 정정 모듈(735)을 실행할 시, 제 1 패리티 비트 cp[0]에 대해 가정된 초기 비트 값에 의해 영향을 받는 하나 또는 그 초과의 패리티 비트들 cp[1]-cp[n]에 대한 비트 값들을 플립할 수도 있다. 몇몇 실시예들에 대해, 프로세서(720)는, 제 1 패리티 비트 cp[0]의 값을 플립하고 후속하여 나머지 패리티 비트들 cp[1]-cp[n]을 재평가함으로써, 코드워드 c를 정정할 수도 있다. 다른 실시예들에 대해, 프로세서(720)는, 비트 정정 검색 테이블(732)에서 영향을 받는 패리티 비트들을 검색하고 오직 영향을 받는 패리티 비트들(예를 들어, 제 1 패리티 비트 cp[0], 및 제 1 패리티 비트 cp[0]에 의해 영향을 받는 임의의 다른 패리티 비트들 cp[1]-cp[n]을 포함함)의 비트 값들만을 플립함으로써, 코드워드 c를 정정할 수도 있다.
[0053] 전술된 명세서에서, 본 실시예들은 그들의 특정한 예시적인 실시예들을 참조하여 설명되었다. 그러나, 다양한 변형들 및 변경들이 첨부된 청구항들에서 기재된 바와 같은 본 개시의 광범위한 범위를 벗어나지 않으면서 그 실시예들에 대해 행해질 수도 있음이 명백할 것이다. 따라서, 본 명세서 및 도면들은 제한적인 의미보다는 예시적인 의미로 고려되어야 한다. 예를 들어, 도 3, 5, 및 6의 흐름도들에 도시된 방법 단계들은 다른 적절한 순서들로 수행될 수도 있고, 다수의 단계들이 단일 단계로 결합될 수도 있고, 그리고/또는 몇몇 단계들이 생략될 수도 있다.

Claims (41)

  1. 데이터 인코딩 방법으로서,
    코드워드(codeword)(c)로 인코딩될 정보 비트들의 세트를 수신하는 단계 ― 상기 코드워드는 상기 정보 비트들의 세트 및 패리티 비트(parity bit)들의 세트를 포함함 ―;
    상기 패리티 비트들의 세트 내의 제 1 패리티 비트에 제 1 비트 값을 할당하는 단계; 및
    상기 제 1 패리티 비트에 할당된 상기 제 1 비트 값에 적어도 부분적으로 기초하여, 상기 패리티 비트들의 세트 내의 나머지 패리티 비트들을 인코딩하는 단계를 포함하는, 데이터 인코딩 방법.
  2. 제 1 항에 있어서,
    상기 나머지 패리티 비트들은, 상기 정보 비트들의 세트, 및 저밀도 패리티 체크(low density parity check)(LDPC) 코드에 대한 패리티 체크 매트릭스(H)를 사용하여 인코딩되는, 데이터 인코딩 방법.
  3. 제 2 항에 있어서,
    상기 패리티 체크 매트릭스의 선형 독립 행들을 사용하여 새로운 패리티 체크 매트릭스(H0)를 생성하는 단계를 더 포함하는, 데이터 인코딩 방법.
  4. 제 3 항에 있어서,
    상기 나머지 패리티 비트들을 인코딩하는 단계는, 방정식 H0c= 0을 사용하여 상기 나머지 패리티 비트들 각각을 반복적으로 평가하는 단계를 포함하는, 데이터 인코딩 방법.
  5. 제 4 항에 있어서,
    상기 나머지 패리티 비트들 각각을 반복적으로 평가하는 단계는, 각각의 반복에 대해, 최대 하나의 알려지지 않은 패리티 비트를 포함하는 하나 또는 그 초과의 벡터 방정식들을 해결(solve)하는 단계를 포함하는, 데이터 인코딩 방법.
  6. 제 1 항에 있어서,
    상기 나머지 패리티 비트들을 인코딩하는 단계는,
    상기 코드워드가, 주어진 LDPC 코드에 대해 유효 코드워드인지 여부를 결정하는 단계; 및
    상기 코드워드가 유효 코드워드가 아니면, 상기 코드워드의 하나 또는 그 초과의 비트 값들을 변경하는 단계를 포함하는, 데이터 인코딩 방법.
  7. 제 6 항에 있어서,
    상기 코드워드의 하나 또는 그 초과의 비트 값들을 변경하는 단계는,
    상기 제 1 패리티 비트에 제 2 비트 값을 할당하는 단계 ― 상기 제 2 비트 값은 상기 제 1 비트 값과 상이함 ―; 및
    상기 제 2 비트 값에 적어도 부분적으로 기초하여 상기 나머지 패리티 비트들의 하나 또는 그 초과의 비트 값들을 변경하는 단계를 포함하는, 데이터 인코딩 방법.
  8. 제 7 항에 있어서,
    상기 나머지 패리티 비트들의 하나 또는 그 초과의 비트 값들을 변경하는 단계는,
    상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들을 식별하는 단계; 및
    상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들 각각의 개별적 비트 값을 변경하는 단계를 포함하는, 데이터 인코딩 방법.
  9. 제 8 항에 있어서,
    상기 주어진 LDPC 코드와 연관된 제 2 패리티 체크 매트릭스의 선형 독립 행들을 사용하여 제 1 패리티 체크 매트릭스를 생성하는 단계를 더 포함하며,
    상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들을 식별하는 단계는, 상기 제 1 패리티 체크 매트릭스에 적어도 부분적으로 기초하여 상기 하나 또는 그 초과의 나머지 패리티 비트들을 식별하는 단계를 포함하는, 데이터 인코딩 방법.
  10. 제 9 항에 있어서,
    상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들을 식별하는 단계는, 검색(lookup) 테이블에서 상기 하나 또는 그 초과의 나머지 패리티 비트들을 검색하는 단계를 포함하는, 데이터 인코딩 방법.
  11. 프로그램 명령들을 포함하는 컴퓨터-판독가능 저장 매체로서,
    상기 프로그램 명령들은, 통신 디바이스 내에 제공되는 프로세서에 의해 실행되는 경우, 상기 디바이스로 하여금,
    코드워드(c)로 인코딩될 정보 비트들의 세트를 수신하게 하고 ― 상기 코드워드는 상기 정보 비트들의 세트 및 패리티 비트들의 세트를 포함함 ―;
    상기 패리티 비트들의 세트 내의 제 1 패리티 비트에 제 1 비트 값을 할당하게 하고; 그리고
    상기 제 1 패리티 비트에 할당된 상기 제 1 비트 값에 적어도 부분적으로 기초하여, 상기 패리티 비트들의 세트 내의 나머지 패리티 비트들을 인코딩하게 하는, 컴퓨터-판독가능 저장 매체.
  12. 제 11 항에 있어서,
    상기 나머지 패리티 비트들은, 상기 정보 비트들의 세트, 및 저밀도 패리티 체크(LDPC) 코드에 대한 패리티 체크 매트릭스(H)를 사용하여 인코딩되는, 컴퓨터-판독가능 저장 매체.
  13. 제 12 항에 있어서,
    상기 디바이스로 하여금, 상기 패리티 체크 매트릭스의 선형 독립 행들을 사용하여 새로운 패리티 체크 매트릭스(H0)를 생성하게 하는 프로그램 명령들을 더 포함하는, 컴퓨터-판독가능 저장 매체.
  14. 제 13 항에 있어서,
    상기 나머지 패리티 비트들을 인코딩하기 위한 프로그램 명령들의 실행은, 상기 디바이스로 하여금, 방정식 H0c= 0을 사용하여 상기 나머지 패리티 비트들 각각을 반복적으로 평가하게 하는, 컴퓨터-판독가능 저장 매체.
  15. 제 14 항에 있어서,
    상기 나머지 패리티 비트들 각각을 반복적으로 평가하기 위한 프로그램 명령들의 실행은, 상기 디바이스로 하여금, 각각의 반복에 대해, 최대 하나의 알려지지 않은 패리티 비트를 포함하는 하나 또는 그 초과의 벡터 방정식들을 해결하게 하는, 컴퓨터-판독가능 저장 매체.
  16. 제 11 항에 있어서,
    상기 나머지 패리티 비트들을 인코딩하기 위한 프로그램 명령들의 실행은, 상기 디바이스로 하여금,
    상기 코드워드가, 주어진 LDPC 코드에 대해 유효 코드워드인지 여부를 결정하게 하고; 그리고
    상기 코드워드가 유효 코드워드가 아니면, 상기 코드워드의 하나 또는 그 초과의 비트 값들을 변경하게 하는, 컴퓨터-판독가능 저장 매체.
  17. 제 16 항에 있어서,
    상기 코드워드의 하나 또는 그 초과의 비트 값들을 변경하기 위한 프로그램 명령들의 실행은, 상기 디바이스로 하여금,
    상기 제 1 패리티 비트에 제 2 비트 값을 할당하게 하고 ― 상기 제 2 비트 값은 상기 제 1 비트 값과 상이함 ―; 그리고
    상기 제 2 비트 값에 적어도 부분적으로 기초하여 상기 나머지 패리티 비트들의 하나 또는 그 초과의 비트 값들을 변경하게 하는, 컴퓨터-판독가능 저장 매체.
  18. 제 17 항에 있어서,
    상기 나머지 패리티 비트들의 하나 또는 그 초과의 비트 값들을 변경하기 위한 프로그램 명령들의 실행은, 상기 디바이스로 하여금,
    상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들을 식별하게 하고; 그리고
    상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들 각각의 개별적 비트 값을 변경하게 하는, 컴퓨터-판독가능 저장 매체.
  19. 제 18 항에 있어서,
    상기 디바이스로 하여금, 상기 주어진 LDPC 코드와 연관된 제 2 패리티 체크 매트릭스의 선형 독립 행들을 사용하여 제 1 패리티 체크 매트릭스를 생성하게 하는 프로그램 명령들을 더 포함하며,
    상기 하나 또는 그 초과의 나머지 패리티 비트들을 식별하기 위한 프로그램 명령들은, 상기 제 1 패리티 체크 매트릭스에 적어도 부분적으로 기초하여 상기 하나 또는 그 초과의 나머지 패리티 비트들을 식별하기 위한 명령들을 포함하는, 컴퓨터-판독가능 저장 매체.
  20. 제 19 항에 있어서,
    상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들을 식별하기 위한 프로그램 명령들의 실행은, 상기 디바이스로 하여금, 검색 테이블에서 상기 하나 또는 그 초과의 나머지 패리티 비트들을 검색하게 하는, 컴퓨터-판독가능 저장 매체.
  21. 통신 디바이스로서,
    코드워드(c)로 인코딩될 정보 비트들의 세트를 저장하기 위한 메모리 엘리먼트 ― 상기 코드워드는 상기 정보 비트들의 세트 및 패리티 비트들의 세트를 포함함 ―; 및
    하나 또는 그 초과의 프로세서들을 포함하며,
    상기 하나 또는 그 초과의 프로세서들은,
    상기 패리티 비트들의 세트 내의 제 1 패리티 비트에 제 1 비트 값을 할당하고; 그리고
    상기 제 1 패리티 비트에 할당된 상기 제 1 비트 값에 적어도 부분적으로 기초하여, 상기 패리티 비트들의 세트 내의 나머지 패리티 비트들을 인코딩
    하기 위한 것인, 통신 디바이스.
  22. 제 21 항에 있어서,
    상기 나머지 패리티 비트들은, 상기 정보 비트들의 세트, 및 저밀도 패리티 체크(LDPC) 코드에 대한 패리티 체크 매트릭스(H)를 사용하여 인코딩되는, 통신 디바이스.
  23. 제 22 항에 있어서,
    상기 하나 또는 그 초과의 프로세서들은 추가로, 상기 패리티 체크 매트릭스의 선형 독립 행들을 사용하여 새로운 패리티 체크 매트릭스(H0)를 생성하기 위한 것인, 통신 디바이스.
  24. 제 23 항에 있어서,
    상기 하나 또는 그 초과의 프로세서들은, 방정식 H0c= 0을 사용하여 상기 나머지 패리티 비트들 각각을 반복적으로 평가함으로써 상기 나머지 패리티 비트들을 인코딩하기 위한 것인, 통신 디바이스.
  25. 제 24 항에 있어서,
    상기 하나 또는 그 초과의 프로세서들은, 각각의 반복에 대해, 최대 하나의 알려지지 않은 패리티 비트를 포함하는 하나 또는 그 초과의 벡터 방정식들을 해결함으로써 상기 나머지 패리티 비트들 각각을 반복적으로 평가하기 위한 것인, 통신 디바이스.
  26. 제 21 항에 있어서,
    상기 하나 또는 그 초과의 프로세서들은,
    상기 코드워드가, 주어진 LDPC 코드에 대해 유효 코드워드인지 여부를 결정하고; 그리고
    상기 코드워드가 유효 코드워드가 아니면, 상기 코드워드의 하나 또는 그 초과의 비트 값들을 변경
    함으로써 상기 나머지 패리티 비트들을 인코딩하기 위한 것인, 통신 디바이스.
  27. 제 26 항에 있어서,
    상기 하나 또는 그 초과의 프로세서들은,
    상기 제 1 패리티 비트에 제 2 비트 값을 할당하고 ― 상기 제 2 비트 값은 상기 제 1 비트 값과 상이함 ―; 그리고
    상기 제 2 비트 값에 적어도 부분적으로 기초하여 상기 나머지 패리티 비트들의 하나 또는 그 초과의 비트 값들을 변경
    함으로써 상기 코드워드의 하나 또는 그 초과의 비트 값들을 변경하기 위한 것인, 통신 디바이스.
  28. 제 27 항에 있어서,
    상기 하나 또는 그 초과의 프로세서들은,
    상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들을 식별하고; 그리고
    상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들 각각의 개별적 비트 값을 변경
    함으로써 상기 나머지 패리티 비트들의 하나 또는 그 초과의 비트 값들을 변경하기 위한 것인, 통신 디바이스.
  29. 제 28 항에 있어서,
    상기 하나 또는 그 초과의 프로세서들은 추가로,
    상기 주어진 LDPC 코드와 연관된 제 2 패리티 체크 매트릭스의 선형 독립 행들을 사용하여 제 1 패리티 체크 매트릭스를 생성하기 위한 것이고; 그리고
    상기 제 1 패리티 체크 매트릭스에 적어도 부분적으로 기초하여 상기 하나 또는 그 초과의 나머지 패리티 비트들을 식별함으로써, 상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들을 식별하기 위한 것인, 통신 디바이스.
  30. 제 29 항에 있어서,
    상기 하나 또는 그 초과의 프로세서들은, 검색 테이블에서 상기 하나 또는 그 초과의 나머지 패리티 비트들을 검색함으로써, 상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들을 식별하기 위한 것인, 통신 디바이스.
  31. 제 21 항에 있어서,
    상기 디바이스는 10GBASE-T 이더넷 시스템의 일부인, 통신 디바이스.
  32. 통신 디바이스로서,
    코드워드(c)로 인코딩될 정보 비트들의 세트를 수신하기 위한 수단 ― 상기 코드워드는 상기 정보 비트들의 세트 및 패리티 비트들의 세트를 포함함 ―;
    상기 패리티 비트들의 세트 내의 제 1 패리티 비트에 제 1 비트 값을 할당하기 위한 수단; 및
    상기 제 1 패리티 비트에 할당된 상기 제 1 비트 값에 적어도 부분적으로 기초하여, 상기 패리티 비트들의 세트 내의 나머지 패리티 비트들을 인코딩하기 위한 수단을 포함하는, 통신 디바이스.
  33. 제 32 항에 있어서,
    상기 나머지 패리티 비트들은, 상기 정보 비트들의 세트, 및 저밀도 패리티 체크(LDPC) 코드에 대한 패리티 체크 매트릭스(H)를 사용하여 인코딩되는, 통신 디바이스.
  34. 제 33 항에 있어서,
    상기 패리티 체크 매트릭스 H의 선형 독립 행들을 사용하여 새로운 패리티 체크 매트릭스(H0)를 생성하기 위한 수단을 더 포함하는, 통신 디바이스.
  35. 제 34 항에 있어서,
    상기 나머지 패리티 비트들을 인코딩하기 위한 수단은, 방정식 H0c= 0을 사용하여 상기 나머지 패리티 비트들 각각을 반복적으로 평가하기 위한 것인, 통신 디바이스.
  36. 제 35 항에 있어서,
    상기 나머지 패리티 비트들 각각을 반복적으로 평가하기 위한 수단은, 각각의 반복에 대해, 최대 하나의 알려지지 않은 패리티 비트를 포함하는 하나 또는 그 초과의 벡터 방정식들을 해결하기 위한 것인, 통신 디바이스.
  37. 제 32 항에 있어서,
    상기 나머지 패리티 비트들을 인코딩하기 위한 수단은,
    상기 코드워드가, 주어진 LDPC 코드에 대해 유효 코드워드인지 여부를 결정하기 위한 것이고; 그리고
    상기 코드워드가 유효 코드워드가 아니면, 상기 코드워드의 하나 또는 그 초과의 비트 값들을 변경하기 위한 것인, 통신 디바이스.
  38. 제 37 항에 있어서,
    상기 나머지 패리티 비트들을 인코딩하기 위한 수단은 추가로,
    상기 제 1 패리티 비트에 제 2 비트 값을 할당하기 위한 것이고 ― 상기 제 2 비트 값은 상기 제 1 비트 값과 상이함 ―; 그리고
    상기 제 2 비트 값에 적어도 부분적으로 기초하여 상기 나머지 패리티 비트들의 하나 또는 그 초과의 비트 값들을 변경하기 위한 것인, 통신 디바이스.
  39. 제 38 항에 있어서,
    상기 나머지 패리티 비트들을 인코딩하기 위한 수단은 추가로,
    상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들을 식별하기 위한 것이고; 그리고
    상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들 각각의 개별적 비트 값을 변경하기 위한 것인, 통신 디바이스.
  40. 제 39 항에 있어서,
    상기 주어진 LDPC 코드와 연관된 제 2 패리티 체크 매트릭스의 선형 독립 행들을 사용하여 제 1 패리티 체크 매트릭스를 생성하기 위한 수단을 더 포함하며,
    상기 제 1 패리티 비트에 의해 영향을 받는 하나 또는 그 초과의 나머지 패리티 비트들을 식별하기 위한 수단은, 상기 제 1 패리티 체크 매트릭스에 적어도 부분적으로 기초하여 상기 하나 또는 그 초과의 나머지 패리티 비트들을 식별하기 위한 수단을 포함하는, 통신 디바이스.
  41. 제 32 항에 있어서,
    상기 디바이스는 10GBASE-T 이더넷 시스템의 일부인, 통신 디바이스.
KR1020157032847A 2013-04-25 2013-04-25 10gbase-t 시스템에서 ldpc 인코더의 방법 및 장치 KR20160002946A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/074713 WO2014172874A1 (en) 2013-04-25 2013-04-25 Method and apparatus of ldpc encoder in 10gbase-t system

Publications (1)

Publication Number Publication Date
KR20160002946A true KR20160002946A (ko) 2016-01-08

Family

ID=51791003

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157032847A KR20160002946A (ko) 2013-04-25 2013-04-25 10gbase-t 시스템에서 ldpc 인코더의 방법 및 장치

Country Status (6)

Country Link
US (1) US20160049962A1 (ko)
EP (1) EP2989720A4 (ko)
JP (1) JP2016521064A (ko)
KR (1) KR20160002946A (ko)
CN (1) CN105164924A (ko)
WO (1) WO2014172874A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10548158B2 (en) * 2016-03-10 2020-01-28 Huawei Technologies Co., Ltd. Message passing algorithm decoder and methods
CN108111251B (zh) * 2016-11-24 2020-11-06 上海交通大学 应用于广播通信系统的信令码编码方法及对应的译码方法
US10680646B2 (en) * 2017-05-12 2020-06-09 Qualcomm Incorporated Row orthogonality in LDPC rate compatible design
CN111066251A (zh) * 2017-08-18 2020-04-24 上海诺基亚贝尔股份有限公司 用于nr的ldpc基础图的使用
US10797727B1 (en) * 2018-09-21 2020-10-06 Xilinx, Inc. Low-density parity-check (LDPC) encode using an LDPC decoder

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271850B2 (en) * 2005-12-29 2012-09-18 Intel Corporation Fast low-density parity-check code encoder
CN101005333B (zh) * 2006-01-17 2010-05-12 华为技术有限公司 低密度奇偶校验码编码方法
US7752529B2 (en) * 2006-07-26 2010-07-06 Broadcom Corporation Combined LDPC (low density parity check) encoder and syndrome checker
US8327215B2 (en) * 2007-12-13 2012-12-04 Electronics And Telecommunications Research Institute Apparatus and method for encoding LDPC code using message passing algorithm
KR100949519B1 (ko) * 2007-12-18 2010-03-24 한국전자통신연구원 낮은 복잡도 및 고속 복호를 위한 패리티 검사행렬 생성방법과, 그를 이용한 저밀도 패리티 검사 부호의 부호화장치 및 그 방법

Also Published As

Publication number Publication date
US20160049962A1 (en) 2016-02-18
WO2014172874A1 (en) 2014-10-30
EP2989720A4 (en) 2016-12-07
CN105164924A (zh) 2015-12-16
EP2989720A1 (en) 2016-03-02
JP2016521064A (ja) 2016-07-14

Similar Documents

Publication Publication Date Title
KR102142142B1 (ko) 높은 레이트, 높은 병렬성, 및 낮은 에러 플로어를 위해 준순환 구조들 및 펑처링을 사용하는 ldpc 설계
JP4062435B2 (ja) 誤り訂正符号復号装置
CN103888148B (zh) 一种动态阈值比特翻转的ldpc码硬判决译码方法
CN111628785B (zh) 使用硬选取硬译码模式下的译码器产生软信息的方法
US8984376B1 (en) System and method for avoiding error mechanisms in layered iterative decoding
US8869003B2 (en) Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix
JP2019536341A (ja) Ldpcコードを符号化および復号化するための方法および装置
US9853661B2 (en) On-the-fly evaluation of the number of errors corrected in iterative ECC decoding
CN113612486B (zh) 一种构建pbrl ldpc码的基矩阵方法、系统、装置及存储介质
KR100975695B1 (ko) 통신 시스템에서 신호 수신 장치 및 방법
KR20160002946A (ko) 10gbase-t 시스템에서 ldpc 인코더의 방법 및 장치
US10848182B2 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
US20150372695A1 (en) Method and apparatus of ldpc decoder with lower error floor
JP6446459B2 (ja) 値集合の中から第1の極値および第2の極値を識別するための方法および装置
US8504894B1 (en) Systematic encoding for non-full row rank, quasi-cyclic LDPC parity check matrices
US10128869B2 (en) Efficient convergence in iterative decoding
KR20130012549A (ko) Ldpc 부호화, 복호화 방법 및 그 방법을 이용하는 장치
CN107615666A (zh) Ldpc截短码的译码方法和译码设备
JP6567238B1 (ja) 誤り訂正復号装置および誤り訂正復号方法
WO2019013663A1 (en) GENERAL LOW DENSITY PARITY CHECK CODES (GLDPC)
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
US20170222659A1 (en) Power improvement for ldpc
JP5523064B2 (ja) 復号装置及び方法
Rengaswamy et al. On the burst erasure correctability of spatially coupled LDPC ensembles
US20240106462A1 (en) G-ldpc decoder and g-ldpc decoding method

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid