KR20110087268A - 디코딩 회로 및 인코딩 회로 - Google Patents

디코딩 회로 및 인코딩 회로 Download PDF

Info

Publication number
KR20110087268A
KR20110087268A KR1020117009434A KR20117009434A KR20110087268A KR 20110087268 A KR20110087268 A KR 20110087268A KR 1020117009434 A KR1020117009434 A KR 1020117009434A KR 20117009434 A KR20117009434 A KR 20117009434A KR 20110087268 A KR20110087268 A KR 20110087268A
Authority
KR
South Korea
Prior art keywords
decoding
parameter
encoding
inputs
circuit
Prior art date
Application number
KR1020117009434A
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 KR20110087268A publication Critical patent/KR20110087268A/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
    • 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/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules

Landscapes

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

Abstract

데이터 버퍼를 포함하는 디코딩 회로는 데이터 기호를 저장하기 위한 복수의 저장 요소, 복수의 입력 및 출력을 포함하는 처리 회로를 포함하며, 여기서 처리 회로는 복수의 입력 및 출력을 통해 수신된 데이터 기호를 처리하도록 구성된다. 제1 및 제2 디코딩 파라미터는 디코딩 규칙에 의해 결정되며, 여기서 제1 및 제2 디코딩 파라키터는 디코딩 처리 동안 변경되지 않는다.

Description

디코딩 회로 및 인코딩 회로{DECODING CIRCUIT AND ENCODING CIRCUIT}
본 발명의 실시형태는 일반적으로 디코딩 회로 및 인코딩 회로에 관한 것이다.
저밀도 패러티 체크(LDPC, Low-density parity-check) 코드는 선형 블록 코드의 클래스이다. “저밀도”는, LDPC 패리티 체크 매트릭스가 O의 양에 비하여 적은 1을 포함한다는 특징을 나타낸다. LDPC 코드는 많은 상이한 채널에 대한 채널 용량에 매우 근접한 성능을 제공하며, 디코딩에 대하여 선형 시간 복잡계 알고리즘(linear time complex algorithms)을 가능하게 한다. 나아가, LDPC 코드는 대규모의 병렬방식을 사용하는 구현에 적합하다.
LDPC 코드는 패러티 체크 매트릭스(H)에 의해 정의된다. 어떤 패러티 체크 매트릭스(H)에 대해서도, 태너(Tanner) 그래프라고 불리는 대응하는 이분(bipartite) 그래프가 존재하며, 이는 가변 노드(V)의 세트 및 체크 노드(C)의 세트를 포함한다. (인덱스 i를 갖는) 체크 노드(C)는, 패러티 체크 매트릭스(H)의 성분(hij)이 1인 경우에 태너 그래프에서 (인덱스 j를 갖는) 가변 노드(V)에 연결된다.
데이터 송신의 맥락의 디코딩에서, 패러티 체크 매트릭스(H)의 컬럼의 개수(N)는, 통신 채널을 통해 송신되는 코드워드의 코드워드 비트의 개수에 대응한다. 통신 채널을 통해 송신되는 코드워드는 K개의 정보 비트 및 M개의 패러티 체크 비트를 포함한다. 패러티 체크 매트릭스(H)의 로우(row)의 개수는 패러티 체크 비트의 개수(M)에 대응한다. 대응하는 태너 그래프는, M=N-K 개의 체크 노드(C)(여기서 각각의 체크 노드는 매트릭스(H)의 하나의 로우에 의해 주어지는 체크 방정식에 대응함) 및 N개의 가변 노드를 포함하며, 하나가 수신된 코드워드의 각 비트에 대응한다.
종래의 LDPC 디코더가 도 1 및 도 2에 도시된다.
도 1은 LDPC 디코더(100)를 나타낸다.
LDPC 디코더(100)는 블록 로우 시퀀스 제어기(101), 저장 메모리(102), 패러티 체크 업데이트 블록(103), 패러티 체크 기능 블록(104), 라우터 회로(105), 비트 업데이트 블록(106) 및 역 라우터 회로(107)를 포함한다.
예를 들면, ROM(read only memory)이, 예를 들어 블록 로우 시퀀스 제어기(101)의 일부로서, 태너 그래프를 저장하기 위해 사용될 수 있다. 전형적으로, 복잡한 제어 논리 또는 상태 머신이 태너 그래프에 따른 제어를 위해 필요할 수 있다.
나아가, 가변 노드 및 체크 노드 프로세서를 연결하는 라우팅/역 라우팅 네트워크는 많은 양의 멀티플렉서의 뱅크를 전형적으로 포함할 수 있다.
도 2는 LDPC 디코더(200)를 나타낸다.
LDPC 디코더(200)는 태너 그래프를 저장하기 위한 ROM 그래프 메모리(201)를 포함한다. LDPC 디코더(200)는 또한 (선험적인 추정치 또는 우도 비율(log-likelihood radios)로 초기화된) 체크 노드로 전송될 데이터를 저장하기 위한 제1 RAM(random access memory)(202), 스위치(203), 체크 노드 프로세서 블록(204), 체크 노드 프로세서 출력(Rev) 메시지를 저장하기 위한 제2 RAM(205), 그리고 패러티 체크 기능 블록(206)을 포함한다.
또한 이 LDPC 디코더에 대해서, 스위치(203)는 전형적으로 많은 양의 멀티플렉서 뱅크를 포함한다.
실시형태가 기초하는 것으로 보일 수 있는 목적은, 알려진 LDPC 인코더 및 디코더보다 더 효율적이고/이거나 덜 복잡한 (LDPC) 인코더 및 (LDPC) 디코더를 제공하는 것이다.
이러한 목적은 독립 청구항에 따른 특징들을 갖는 디코딩 회로 및 인코딩 회로에 의해 해결된다.
일 실시형태에서, 복수의 입력 및 복수의 출력을 포함하는 처리 회로 및 데이터 기호를 저장하기 위한 복수의 저장 요소를 포함하는 데이터 버퍼를 포함하는 디코딩 회로가 제공된다. 처리 회로는 복수의 입력을 통해 수신되는 데이터 기호를 처리하고 복수의 출력을 통해 처리된 데이터 기호를 출력하도록 구성된다. 복수의 저장 요소의 각 저장 요소는 복수의 입력의 관련 입력에 연결되며, 여기서 복수의 입력과 복수의 저장 요소의 관련은 제1 디코딩 파라미터에 의해 결정된다. 복수의 저장 요소의 각 저장 요소는 복수의 출력의 관련 출력에 연결되며, 여기서 복수의 출력과 복수의 저장 요소와의 관련은 제2 디코딩 파라미터에 의해 결정된다. 제1 디코딩 파라미터 및 제2 디코딩 파라미터는 디코딩 규칙에 의해 결정되며 제1 디코딩 파라미터 및 제2 디코딩 파라미터는 디코딩 처리 동안 변경되지 않는다.
또 다른 실시형태에서, 복수의 입력 및 복수의 출력을 포함하는 처리 회로 및 데이터 기호를 저장하기 위한 복수의 저장 요소를 포함하는 데이터 버퍼를 포함하는 인코딩 회로가 제공된다. 처리 회로는 복수의 입력을 통해 수신되는 데이터 기호를 처리하고 복수의 출력을 통해 처리된 데이터 기호를 출력하도록 구성된다. 복수의 저장 요소의 각 저장 요소는 복수의 입력의 관련 입력에 연결되며, 여기서 복수의 입력과 복수의 저장 요소의 관련은 제1 인코딩 파라미터에 의해 결정된다. 복수의 저장 요소의 각 저장 요소는 복수의 출력의 관련 출력에 연결되며, 여기서 복수의 출력과 복수의 저장 요소와의 관련은 제2 인코딩 파라미터에 의해 결정되며. 여기서 제1 인코딩 파라미터 및 제2 인코딩 파라미터는 인코딩 규칙에 의해 결정되며 제1 인코딩 파라미터 및 제2 인코딩 파라미터는 인코딩 처리 동안 변경되지 않는다.
본 발명의 예시적인 실시형태가 도면을 참조하여 이하에서 설명된다. 디코딩 회로의 맥락 속에서 설명되는 실시형태는 인코딩 회로에 대해서도 유사하게 유효할 수 있다.
도 1은 종래의 LDPC 디코더를 나타낸다.
도 2는 종래의 LDPC 디코더를 나타낸다.
도 3은 실시형태에 따른 통신 시스템을 나타낸다.
도 4는 제1 패러티 체크 매트릭스, 제2 패러티 체크 매트릭스, 및 제3 패러티 체크 매트릭스를 나타낸다.
도 5는 실시형태에 따른 디코딩 회로를 나타낸다.
도 6은 실시형태에 따른 인코딩 회로를 나타낸다.
도 7은 실시형태에 따른 디코딩 회로를 나타낸다.
도 8은 실시형태에 따른 디코더를 나타낸다.
더 9는 실시형태에 따른 VN-CNP 및 CNP-VN 상호 연결을 나타낸다.
도 10a 및 도 10b는 실시형태에 따른 하나의 VN 뱅크에 대한 VN-CNP 및 CNP-VN 상호연결을 도시한다.
도 11은 실시형태에 따른 VN-CNP 상호연결을 도시한다.
도 12는 실시형태에 따른 체크 노드 프로세서를 나타낸다.
도 13은 2-입력 순서(order) 모듈 및 4-입력 순서 모듈에 대한 회로 디자인을 도시한다.
도 14는 실시형태에 따른 Rev 업데이트 모듈을 나타낸다.
도 15는 실시형태에 따른 디코더를 나타낸다.
도 16은 실시형태에 따른 인코더를 나타낸다.
도 17은 실시형태에 따른 인코더를 나타낸다.
도 18은 실시형태에 따른 체크 노드 프로세서를 나타낸다.
도 19는 실시형태에 따른 체크 노드 프로세서를 나타낸다.
도 20은 실시형태에 따른 인코더를 나타낸다.
도 21은 실시형태에 따른 인코더를 나타낸다.
도 22a 및 22b는 실시형태에 따른 CNP를 나타낸다.
도 23은 실시형태에 따른 패러티 체크 매트릭스를 나타낸다.
도 24는 실시형태에 따른 체크 노드 프로세서를 나타낸다.
도 25는 종래의 LDPC 인코더 아키텍처를 나타낸다.
인코딩 회로의 맥락으로 이하 설명되는 실시형태는 디코딩 회로에 대해서도 유사하게 유효하며 그 반대도 마찬가지이다.
LDPC(저밀도 패러티 체크) 코드는, 예를 들면, 도 3에 도시된 바와 같이, 전송장치로부터 수신 장치로의 데이터 송신을 위해 이용될 수 있다.
도 3은 실시형태에 따른 통신 시스템(300)을 나타낸다.
통신 시스템(300)은, 통신 채널(303)을 통해서 수신기(302)로 송신되는 데이터(304)를 송신하는 송신기(301)를 포함한다.
송신되는 데이터(304)는 인코더(305)에 의해 복수의 코드 워드로 인코딩된다. 인코더(305)는, 통신 채널(303)을 통해 수신기(302)로 인코딩된 데이터(306)를 전송하는 전송 회로(307)(예를 들면, 변조기, 송신 안테나 등을 포함함)로 인코딩된 데이터(306)를 공급한다.
인코딩된 데이터(306)는 수신 회로(308)(예를 들면, 복조기, 수신 안테나 등을 포함함)에 의해 수신 데이터(309)로서 수신된다. 코드 워드는 송신에서의 통신 채널(303)의 노이즈에 의해 영향을 받기 때문에, 수신 회로(308)는 코드 워드를 정확하게 재구성하지 않으나, 수신된 코드 워드 비트에 대한 우도 비율(LLR, Log-liklihood ratio)(309)을 생성한다. 이는 송신된 코드 워드를 재구성하는 디코더(310)로 공급된다.
인코더(305) 및 디코더(310)는, 예를 들면 LDPC에 따라, 예를 들면 에러 교정 코드에 따라 구성된다.
LDPC 코드는 그 패러티 체크 매트릭스(H)에 의해 정의된다. 어떤 패러티 체크 매트릭스(H)에 대해서도, 태너 그래프라고 불리는 대응하는 이분 그래프가 존재하며, 이는 가변 노드(V)의 세트 및 체크 노드(C)의 세트를 포함한다. (인덱스 i를 갖는) 체크 노드(C)는, 패러티 체크 매트릭스(H)의 성분(hij)이 1인 경우에 태너 그래프에서 (인덱스 j를 갖는) 가변 노드(V)에 접속된다.
패러티 체크 매트릭스(H)의 컬럼의 개수(N)는, 송신되는 코드워드의 코드워드 비트의 개수에 대응한다. 각 코드워드는 정보 비트의 개수(K) 및 패러티 체크 비트의 개수(M)를 포함한다. 패러티 체크 매트릭스(H)의 로우(row)의 개수는 패러티 체크 비트의 개수(M)에 대응한다. 대응하는 태너 그래프는, M=N-K 개의 체크 노드(C)(여기서 각각의 체크 노드는 매트릭스(H)의 하나의 로우에 의해 주어지는 체크 방정식에 대응함) 및 N개의 가변 노드를 포함하며, 하나가 수신된 코드워드의 각 비트에 대응한다.
블록 기반 LDPC 코드에서 패러티 체크 매트릭스는, z × z 크기의 정사각 서브 블록(서브 매트릭스)으로 구획될 수 있다. 서브 매트릭스는 단위 매트릭스(Iz)의 순환 순열(cyclic permutation)(Pi)이거나 널 서브 매트릭스이다.
순환 순열 매트릭스(Pi)는, 단위 행렬의 컬럼을 오른쪽으로 i 성분만큼 순환 이동시킴으로써, z × z 단위 매트릭스로부터 획득된다. 매트릭스(P0)은 z × z 단위 매트릭스이다.
예를 들면, z=8에 대해서,
Figure pct00001
이다.
매트릭스(P1 및 P2)는 단위 매트릭스(Iz=P0)의 컬럼을 오른쪽으로 각각 1 및 2 위치씩 순환적으로 이동시킴으로써 생성된다.
이 구조는, 병렬 방식으로 적어도 Z개의 메시지의 처리를 가능하게 한다.
블록-LDPC 코드 패러티 체크 매트리스(H)의 예가 도 4에 나타난다.
도 4는 제1 패러티 체크 매트릭스(401), 제2 패러티 체크 매트릭스(402), 및 제3 패러티 체크 매트릭스(403)를 나타낸다.
각 패러티 체크 매트릭스는 (1에서 32로 숫자 부여된) 32개의 블록 컬럼을 포함한다. 제1 패러티 체크 매트릭스(401)는 (1에서 16으로 표기된) 16개의 블록 로우를 포함하며, 제2 패러티 체크 매트릭스(402)는 (1에서 8로 표기된) 8개의 블록 로우를 포함하고, 제3 패러티 체크 매트릭스(403)는 (1에서 4로 표기된) 4개의 블록 로우를 포함한다.
이 예에서, z=21이고, 코드워드 길이는 672(32개의 블록 컬럼 곱하기 21개의 블록 컬럼 당 서브 블록 컬럼)으로, 즉, 대응하는 코드는 길이 672의 LDPC 코드이다. 패러티 체크 매트릭스(401, 402, 403)에 대응하는 코드는, 부상하고 있는 IEEE 802.15.3c 고속 무선 개인 접속망(WPANs) 표준으로 제안되었다.
제3 패러티 체크 매트릭스(403)로부터 볼 수 있는 바와 같이, 매트릭스의 성분은 매우 규칙적이다: 각 블록 로우는 상위 블록 로우의 (4 길이만큼의) 순환 이동이다. 이하 설명되는 실시형태는, 이러한 고도로 구조화된 LDPC 코드의 형태에 근거하여 보여질 수 있다.
도 5는 실시형태에 따른 디코딩 회로(500)를 나타낸다.
디코딩 회로(500)는, 데이터 기호(symbol)를 저장하기 위한 복수의 저장 요소(502)를 포함하는 데이터 버퍼(501)를 포함한다.
디코딩 회로(500)는, 복수의 입력(504) 및 복수의 출력(505)을 포함하는 처리 회로(503)를 더 포함한다. 처리 회로(503)는 복수의 입력(504)을 통해 수신된 데이터 기호를 처리하고 복수의 출력(505)을 통해 처리된 데이터 기호를 출력하도록 구성된다. 복수의 저장 요소(502)의 각 저장 요소는 복수의 입력(504)의 관련 입력과 연결되며, 여기서 복수의 입력과 복수의 저장 요소와의 관련은 제1 디코딩 파라미터에 의해 결정된다.
복수의 저장 요소(502)의 각 저장 요소는 복수의 출력(505)의 관련 출력에 연결되며, 여기서 복수의 출력과 복수의 저장 요소와의 관련은 제2 디코딩 파라미터에 의해 결정된다.
제1 디코딩 파라미터 및 제2 디코딩 파라미터는 디코딩 규칙에 따라 결정되며, 여기서 제1 디코딩 파라미터 및 제2 디코딩 파라미터는 디코딩 처리 동안 변경되지 않는다.
예시적으로, 디코딩(인코딩) 회로에서의 저장 요소 및 처리 회로 사이의 연결은 디코딩 또는 인코딩 처리 동안 일정하게 유지되며, 즉, 디코딩 또는 인코딩 프로세스를 특징짓는 하나 이상의 파라미터와 독립적으로 선택되며, 예를 들면 파라미터는, 예를 들면 패러티 체크 매트릭스의 속성에 의해 주어진 것과 같이 속성 코드에 의해 특정되는 것처럼, 예를 들면 디코딩 또는 인코딩 스킴에 의해 주어진다.
일 실시형태에서, 제1 디코딩 파라미터 및 제2 디코딩 파라미터는 음수가 아닌 정수이다.
일 실시형태에서, 제1 디코딩 파라미터 및 제2 디코딩 파라미터는 각각 복수의 입력 및 복수의 출력에 관한 데이터 기호의 블록의 이동을 특정한다.
일 실시형태에서, 디코딩 규칙은 에러 교정 코드에 의해 주어진다.
일 실시형태에서, 에러 교정 코드는 패러티 체크 코드이다.
일 실시형태에서, 에러 교정 코드는 저밀도 패러티 체크 코드이다.
일 실시형태에서, 데이터 기호는 통신 채널을 통해 수신된 송신 기호에 대응한다.
일 실시형태에서, 데이터 기호는 송신 기호에 대한 우도 비율이다.
일 실시형태에서, 처리 회로는 미리 결정된 기준이 만족하는지 여부를 데이터 기호에 근거하여 체크하도록 구성된다.
일 실시형태에서, 미리 결정된 기준은 데이터 기호의 패러티 체크에 근거한다.
일 실시형태에서, 각 저장 요소는 그 관련 입력으로의 그 저장된 데이터 기호를 출력하도록 구성된다.
일 실시형태에서, 각 저장 요소는, 그 저장된 데이터 기호를 그 관련 입력으로 출력한 후에, 그 관련 입력으로부터 다른 데이터 기호를 수신하고, 다른 데이터 기호를 저장하고, 다른 데이터를 그 관련 입력으로 출력하도록 구성된다.
일 실시형태에서, 각 저장 요소의 그 관련 입력으로의 연결은 하드와이어드(hard-wired)이다.
일 실시형태에서, 각 저장 요소의 그 관련 출력으로의 연결은 하드와이어드이다.
일 실시형태에서, 디코딩 회로는 인코딩 및 디코딩 모두를 위한 회로이다.
이는 일 실시형태에서, 인코더 및 디코더 사이에 공유하는 리소스가 있음을 의미한다.
일 실시형태에서, 복수의 입력을 통해 수신된 데이터 기호를 처리하고 복수의 출력을 통해 처리된 데이터 기호를 출력하도록 구성된 처리 회로의 복수의 입력의 관련 입력으로 데이터 기호를 저장하기 위한 복수의 저장 요소의 각 저장 요소를 연결하는 단계로서, 복수의 입력과 복수의 저장 요소와의 관련은 제1 디코딩 파라미터에 의해 결정되는 연결단계와, 복수의 저장 요소의 각 저장 요소를 복수의 출력의 관련 출력으로 연결하는 단계로서, 복수의 출력과 복수의 저장 요소의 관련은 제2 디코딩 파라미터에 의해 결정되는 연결단계를 포함하는 디코딩 방법이 제공되며, 여기서 제1 디코딩 파라미터 및 제2 디코딩 파라미터는 디코딩 규칙에 의해 결정되며 제1 디코딩 파라미터 및 제2 디코딩 파라미터는 디코딩 처리 동안 변경되지 않는다.
예를 들면, 제1 디코딩 파라미터 및 제2 디코딩 파라미터에 따른 연결은 디코딩 처리 동안 변경되지 않는다.
일 실시형태에서, 복수의 입력을 통해 수신된 데이터 기호를 처리하고 복수의 출력을 통해 처리된 데이터 기호를 출력하도록 구성된 처리 회로의 복수의 입력의 관련 입력으로 데이터 기호를 저장하기 위한 복수의 저장 요소의 각 저장 요소를 연결하는 단계로서, 복수의 입력과 복수의 저장 요소와의 관련은 제1 인코딩 파라미터에 의해 결정되는 연결단계와, 복수의 저장 요소의 각 저장 요소를 복수의 출력의 관련 출력으로 연결하는 단계로서, 복수의 출력과 복수의 저장 요소의 관련은 제2 인코딩 파라미터에 의해 결정되는 연결단계를 포함하는 인코딩 방법으로서, 여기서 제1 인코딩 파라미터 및 제2 인코딩 파라미터는 인코딩 규칙에 의해 결정되며 제1 인코딩 파라미터 및 제2 인코딩 파라미터는 디코딩 처리 동안 변경되지 않는, 인코딩 방법이 제공된다.
예를 들면, 제1 인코딩 파라미터 및 제2 인코딩 파라미터에 따른 연결은 디코딩 처리 동안 변경되지 않는다.
처리 회로는 예를 들면 복수의 입력을 통해 수신된 데이터 기호를 복수의 출력으로 통과시키도록 구성되어 있다(처리될 수 있음).
데이터 버퍼는 예를 들면 M 그룹의 저장 유닛을 가지며, 각 그룹은 K*R 뱅크의 저장 유닛을 포함하고, 각 뱅크는 N 개의 저장 유닛을 포함한다.
처리 회로는 예를 들면 N개의 패러티 체크 유닛(예를 들면 체크 노드 프로세서)을 포함하며, 각 패러티 체크 유닛은 M*K*R 개의 입력을 포함하며, 상기 M*K*R 개의 뱅크의 저장 유닛의 각각으로부터 하나의 입력을 가지며, 각 패러티 체크 유닛은 M*K*R 개의 출력을 포함한다.
일 실시형태에서, p번째 그룹의 q번째 뱅크의 저장 유닛의 N개의 출력은 상기 N개의 패러티 체크 유닛의 각각의 ((p-1)*K*R+q)번째 입력과 관련된다.
예를 들면, N개의 패러티 체크 유닛 각각의 ((r-1)*K*R+s)번째 출력은 r번째 그룹의 u번째 뱅크의 저장 유닛의 N개의 입력과 관련되며, s는 u와 다르다.
일 실시형태에서, 처리 회로는 N/D 개의 패러티 체크 유닛을 포함하며, D는 정수이고, N/D는 정수이며, 각 패러티 체크 유닛은 M*K*R 개의 입력을 포함하며, 저장 유닛의 상기 M*K*R 개의 뱅크 각각에 관련된 하나의 입력을 가지며, 각 패러티 체크 유닛은 M*K*R 개의 출력을 포함한다.
예를 들면, p번째 그룹의 q번째 뱅크의 저장 유닛의 선택된 N/D 개의 출력은 N/D 개의 패러티 체크 유닛 각각의 ((p-1)*K*R+q)번째 입력에 관련되고, 뒤이어 p번째 그룹의 q번째 뱅크의 저장 유닛의 다른 선택된 N/D 개의 출력이, 상기 N/D 개의 패러티 체크 유닛 각각의 동일한 ((p-1)*K*R+q)번째 입력에 관련되어, p번째 그룹의 q번째 뱅크의 저장 유닛의 모든 N개의 출력이, D라운드에서, 상기 N/D 개의 패러티 체크 유닛 각각의 동일한 ((p-1)*K*R+q)번째 입력에 관련된다.
일 실시형태에서, N/D 개의 패러티 체크 유닛 각각의 ((r-1)*K*R+s)번째 출력은 r번째 그룹의 u번째 뱅크의 저장 유닛의 선택된 N/D개의 입력과 관련되고, s는 u와 다르며, 뒤이어 N/D 개의 패러티 체크 유닛 각각의 동일한 ((r-1)*K*R+s)번째 출력이 r번째 그룹의 u번째 뱅크의 저장 유닛의 또다른 선택된 N/D개의 입력에 관련되어, N/D 개의 패러티 체크 유닛 각각의 동일한 ((r-1)*K*R+s)번째 출력이, D 라운드에서, r번째 그룹의 u번째 뱅크의 저장 유닛의 모든 N개의 입력과 관련된다.
일 실시형태에서, 처리 회로는, 인코딩하는 동안, 데이터 버퍼 및 자기 자신 사이에서 R번 통과된 후에 데이터 기호를 처리한다.
일 실시형태에서, 체크 노드의 하나의 '매크로 레이어'는, 체크 노드 가중치와는 독립적으로, 하나의 순환에서 업데이트된다. 인코더에 대해서, 인코딩 레이턴시는, 패러티 체크 매트릭스의 '매크로' 레이어의 개수만큼 작을 수 있다. 실시형태는 하나의 클락 순환에서 패러티 체크 비트의 (적어도) 하나의 뱅크를 생성할 수 있다.
일 실시형태에서, 저밀도 패러티 체크(LDPC) 코드에 따라 인코딩된 수신된 데이터 스트림을 디코딩하기 위한 디코더 회로가 제공되며, 여기서 회로는, 초기 확률값 및 이후에 업데이트되는 확률값을 저장하기 위한 가변 노드 메모리, 확률값을 업데이트하고 체크 노드값을 생성하기 위한 패러티 체크 업데이트 유닛, 상기 가변 노드 메모리의 출력으로부터 상기 패러티 체크 업데이트 유닛(예를 들면, 패러티 체크 유닛)의 세트로 상기 확률값을 라우팅하기 위한 하드와이어드 상호연결, 및 상기 패러티 체크 업데이트 유닛의 세트로부터 가변 노드 메모리로 상기 업데이트된 확률값을 링크하는 하드와이어드 상호링크를 포함한다.
일 실시형태에서, 패러티 체크 유닛은, 상이한 가변 노드 메모리 및 상이한 패러티 체크 업데이트 유닛 사이에서 B*R번(B는 정수) 통과된 후에, 이후의 업데이트된 확률값을 처리한다.
일 실시형태에서, 하드와이어드 상호링크는 r번째 그룹의 u번째 저장 유닛의 N/D개의 선택된 입력으로 각각의 N/D개의 패러티 체크 업데이트의 ((r-1)*K*R+s)번째 출력을 라우트하며, s는 u와 다르며, 이어서, N/D개의 패러티 체크 업데이트 유닛 각각의 동일한 ((r-1)*K*R+s)번째 출력이 r번째 그룹의 u번째 뱅크의 저장 유닛의 또다른 N/D개의 선택된 입력으로 라우트되어, N/D개의 패러티 체크 업데이트 유닛 각각의 동일한 ((r-1)*K*R+s)번째 출력이 r번째 그룹의 u번째 뱅크의 저장 유닛의 모든 N개의 입력으로 라우트된다.
실시형태에서 사용되는 메모리는, 예를 들면 DRAM(Dynamic Random Access Memory)와 같은 휘발성 메모리, 또는 예를 들면 PROM(Programmable Read Only Memory), EPROM(Erasable PROM), EEPROM(Electrically Erasable PROM)과 같은 비휘발성 메모리, 또는 예를 들면, 부유 게이트(floating gate) 메모리, 차지 트래핑(charge trapping) 메모리, MRAM(Magnetoresistive Random Access Memory)과 같은 플래시 메모리, 또는 PCRAM(Phase Change Random Access Memory)일 수 있다.
실시형태에서, “회로”는, 특별한 목적의 회로 또는 메모리, 펌웨어 또는 이의 어떠한 조합에 저장된 소프트웨어를 실행하는 프로세스일 수 있는, 어떤 종류의 논리 구현 엔티티로서 이해될 수 있다. 따라서, 실시형태에서, “회로”는 프로그램 가능한 프로세서, 예를 들면 마이크로프로세서(예를 들면, CISC(Complex Instruction Set Computer) 프로세서 또는 RISC(Reduced Instruction Set Computer) 프로세서)와 같은 프로그램 가능한 논리 회로 또는 하드와이어드 논리 회로일 수 있다. “회로”는 프로세서 실행 소프트웨어, 예를 들면, 어떤 종류의 컴퓨터 프로그램, 예를 들면 자바(Java)와 같은 가상 머신 코드를 사용하는 컴퓨터 프로그램일 수 있다. 이하에서 보다 상세하게 설명될 또 다른 종류의 개별적인 기능의 구현이, 대안적 실시형태에 따른 “회로”로서 이해될 수 있다. “블록”은 예를 들면 회로로 이해될 수 있다.
도 6은 실시형태에 따른 인코딩 회로(600)를 나타낸다.
인코딩 회로(600)는 데이터 기호를 저장하기 위한 복수의 저장 요소(602)를 포함하는 데이터 버퍼를 포함한다. 인코딩 회로(600)는, 복수의 입력(604) 및 복수의 출력(605)을 포함하는 처리 회로(603)를 더 포함한다. 처리 회로(603)는 복수의 입력(604)을 통해 수신된 데이터 기호를 처리하고 복수의 출력(605)을 통해 처리된 데이터 기호를 출력하도록 구성된다. 복수의 저장 요소(602)의 각 저장 요소는 복수의 입력(604)의 관련 입력과 연결되며, 여기서 복수의 입력(604)과 복수의 저장 요소의 관계는 제1 인코딩 파라미터에 의해 결정된다.
나아가, 복수의 저장 요소(602)의 각 저장 요소는 복수의 출력(605)의 관련된 출력에 연결되며, 여기서 복수의 출력(602)과 복수의 저장 요소의 관련은 제2 인코딩 파라미터에 의해 결정된다.
제1 인코딩 파라미터 및 제2 인코딩 파라미터는 인코딩 규칙에 따라 결정되며, 여기서 제1 인코딩 파라미터 및 제2 인코딩 파라미터는 인코딩 처리 동안 변경되지 않는다.
데이터 기호는 예를 들면 (적어도 부분적으로) 인코딩될 정보 비트이다. 인코더는 예를 들면 정보 비트에 대한 패러티 체크 비트를 생성한다.
일 실시형태에서, 처리 회로는, 디코딩 동안, 데이터 버퍼 및 자기 자신 사이에서 B*R번(B는 정수) 통과된 후에, 이후의 업데이트된 확률값을 처리한다.
처리 회로는 인코딩 및 디코딩 모두에 사용될 수 있으며, 즉, 회로(500 및 600)가 하나의 회로로 결합될 수 있다.
일 실시형태에서, 상술한 바와 같은 디코딩 회로를 갖는 수신기 및 상술한 바와 같은 인코딩 회로를 갖는 송신기를 포함하는 통신 시스템이 제공된다.
일 실시형태에 따른 고효율(high throughput) LDPC 디코더 아키텍처에 대한 일례가 도 7을 참조하여 후술된다.
도 7은 실시형태에 따른 디코딩 회로(700)를 나타낸다.
일 실시형태에서, 동시계속중이고 공통으로 출원된, 2004년 3월 23일 출원되고, 미국특허공개공보 US 2005/0204271 A1으로 공개된, 출원번호 10/806,879 출원이 참조로서 편입되며, 여기에서 설명된 레이어드 디코딩이 더 나은 융합을 위하여 사용된다. 도 7에서, 입력/출력 버퍼링 레지스터는 단순화를 위하여 도시되지 않는다.
디코딩 회로(700)는 수신된 코드워드에 대한 우도 비율(LLR)을 저장하는 메모리(703)를 포함한다(즉, 일 실시형태에서 수신된 코드워드에 대한 선험적인 추정 또는 수신된 코드워드에 대한 우도 비율로 초기화됨).
메모리(703)는 제1 상호연결(701) 및 제2 상호연결(702)를 사용하여 체크 노드 프로세서 어레이(704)과 귀납적인(a posteriori) LLR(Qv) 메시지를 상호교환한다. 예를 들면, 메모리(703)에 저장된 데이터 기호는 귀납적인 추정(Qv)에 대한 각 반복으로 업데이트된다(수신 회로(310)에 의해 공급된 수신된 코드워드에 대한 LLR로부터 시작함).
일 실시형태에서, 종래의 디코더와는 다르게, 메모리(703) 및 체크 노드 프로세서 어레이(703) 사이의 상호연결(701, 702)은 멀티플렉서의 뱅크 및 복잡한 제어 논리 없이 하드와이어드된다. 나아가, 일 실시형태에서, 디코딩 회로(700)는 패러티 체크 매트릭스를 저장하기 위한 메모리를 포함하지 않는다.
일 실시형태에 따른 LDPC 레이어드 디코더의 더 자세한 구조의 예시가 도 8에 도시된다.
도 8은 실시형태에 따른 디코더(800)를 나타낸다.
이 예에서, 메모리(703)는 복수의 메모리 뱅크(801-805)(1에서 32까지 숫자표기됨)를 포함하는 가변 노드(VN) 어레이이며, 체크 노드 프로세서 어레이는 복수의 체크 노드 프로세서(806-809)를 포함한다.
이 예에서, 메모리 뱅크의 개수(32) 및 체크 노드 프로세서의 개수(21), 메모리 뱅크 및 체크 노드 프로세서 사이의 상호연결(상호연결(701,702)에 대응)뿐만 아니라 각 체크 노드 프로세서의 입력 및 출력의 개수(32)가, 도 4에 도시된 패러티 체크 매트릭스(401, 402, 403)에 주어진 바와 같이, IEEE 802.15.3c 드래프트에 정의된 LDPC 코드에 대응한다.
가변 노드(VN) 어레이(801-805)는 가변 노드 메모리이다. 어레이(801-805)는 채널(LLR)로, 즉, 수신 회로(308)에 의해 공급되는 현재 코드워드(즉, 현재 디코딩될 코드워드)에 대한 우도 비율로 초기화될 수 있다.
어레이(801-805)의 길이는 코드워드 길이 672이다. 뱅크(801-805)는 M=8 그룹으로 그룹화된다. 각 뱅크(801-805)는 N=21개의 저장 유닛을 포함한다. 각 뱅크(801-805)의 21개의 저장 유닛은 21개의 체크 노드 프로세서(806-809)의 입력에 연결되며, 여기서 각 저장 유닛은 정확히 하나의 체크 노드 프로세서(806-809)의 입력에 연결된다.
디코딩 회로(800)는 패러티 체크 기능 블록(801)을 포함하여, 디코딩 처리의 집중을 테스트하고 (예를 들면 복수의 반복을 포함함) 디코더에 대한 내재된 조기 정지 메커니즘을 제공한다.
도 7에 도시된 바와 같이, 두 가지 형태의 라우팅 네트워크, 즉 VN-CNP 네트워크 및 CNP-VN 네트워크로 보일 수 있는 두 개의 상호연결(701, 702)이 있다. 일 실시형태에서, 이 네트워크는 하드와이어드이다.
VN 어레이(801-805)의 출력(즉, 뱅크(801-805)의 저장 요소) 및 CNP 어레이(806-809)의 입력 사이의 연결은, 제1 디코딩 파라미터, 즉 순환 이동 방식에서의 제3 패러티 체크 매트릭스(403)의 제1 블록-로우에 의해 주어지는 것으로 보일 수 있다.
예를 들면, H(1,1)=0이기 때문에(H는 여기서 4×32 매트릭스의 서브 매트릭스로서 해석되며, 따라서 엔트리(i)는 순환 매트릭스(pi)를 나타냄), 제1 VN 뱅크(801)는, 즉 제1 VN 뱅크(801)의 제1 저장 요소가 제1 CNP(806)의 제1 입력에 연결되고, 제1 VN 뱅크(801)의 제2 저장 요소가 제2 CNP(807)의 제1 입력에 연결되는 등으로, 순환 없이 1대1 방식으로 각 CNP의 제1 입력에 연결된다.
VN-CNP 상호연결의 이러한 부분은 도 8에서의 제1 뱅크 연결(811 및 812)로서 도시된다.
H(1,2)=18이기 때문에, 제 2 VN 뱅크(802)는, VN2(19) -> CNP1, VN2(20) -> CNP2, …, VN2(2) -> CNP5, VN2(1) -> CNP4, 여기서 VN2(i) -> CNPj는 제2 뱅크(802)의 i번째 저장 요소가 j번째 CNP의 (제2) 입력과 연결되는 방식으로, 각 CNP의 제2 입력에 연결된다.
VN-CNP 상호연결의 이 부분은 도 8에서의 제2 뱅크 연결(813 및 814)로서 도시된다.
CNP-VN 상호연결, 즉, CNP 어레이(806-809)의 출력 및 VN 어레이(801-805)의 입력 사이의 연결은 제2 디코딩 파라미터, 즉 제3 패러티 체크 매트릭스(403)의 4-순환 구조에 의해 주어지는 것으로 보일 수 있다. 예를 들면, 제3 패러티 매트릭스(403)의 제1 블록-로우에서의 첫번째 네 개 엔트리(404, 405, 406, 및 407)의 순서(좌에서 우로)는. 제4 엔트리(407), 제1 엔트리(404), 제2 엔트리(405), 및 제3 엔트리(406)의 순서로, 즉 제1 로우에 비해 일 순환 오른쪽으로 이동함에 따라, 제3 패러티 체크 매트릭스(403)의 제2 블록-로우에서 발생할 수 있다.
이 정규 코드 구조에 대응하는 CNP-VN 상호연결, 즉 CNP(806-809)에서 VN 어레이(801-805)로의 라우팅 네트워크는 도 8에서 제1 그룹 연결(815에서 818)로서 도시된다. 뱅크(801-805)가, 각각이 이 순환 CNP-VN 상호연결 구조에 따르는 네 개의 뱅크의 M=8 그룹을 형성하는 것으로 고려될 수 있음을 주의한다.
제1 그룹 연결(815에서 818)은, 도 4에서의 제3 패러티 체크 매트릭스(403)에 의해 주어진 코드의 순환 구조에 따른다. CNP 어레이의 제2 출력(즉, 모든 CNP(806-809)의 제2 출력)은 연결(816)을 통해 제1 VN 뱅크(801)에 연결되며, CNP 어레이의 제3 출력은 연결(817)을 통해 VN 뱅크(802)에 연결되며, CNP 어레이의 제4 출력은 연결(818)을 통해 제3 VN 뱅크(803)에 연결되며, CNP 어레이의 제1 출력은 연결(815)을 통해 제4 뱅크(804)에 연결된다.
이러한 방식의 VN-CNP 상호연결은 하나의 순환에서의 하나의 블록 로우에서 메시지를 업데이트하고, 다음 순환에서 다음 블록 로우의 메시지를 처리하는 것을 시작하는 디코딩 프로세스를 용이하게 할 수 있다. 이 아키텍처로, 디코딩 프로세스의 하나의 반복에 대해서 네 개의 순환만이 필요하다. 이하에서 보다 자세히 설명될 바와 같이, 이는 제3 패러티 체크 매트릭스(403)에 대응하는 코드에 대해서뿐만 아니라, 제1 패러티 체크 매트릭스(401) 및 제2 패러티 체크 매트릭스(402)에 대응하는 코드에 대해서도 적용된다.
직접적인 하드와이어드 VN-CNP 및 CNP-VN 상호연결로, 도 8에 도시된 예시적인 아키텍쳐는, 패러티 체크 매트릭스(401, 402, 및 403)에 대응하는 LDPC 코드에 특히 적합할 수 있다.
일 실시형태에 따른 뱅크(뱅크 801-804)의 제1 그룹의 VN-CNP 및 CNP-VN 상호연결이 도 9에 도시된다.
도 9는 실시형태에 따른 VN-CNP 및 CNP-VN 상호연결을 나타낸다.
CNP 어레이(900)는 CNP 어레이(806-809)에 대응한다.
제1 뱅크(901), 제2 뱅크(902), 제3 뱅크(903), 및 제4 뱅크(904)는 뱅크(801-804)의 제1 그룹에 대응한다. 도 9에 도시된 상호연결은 따라서 제3 패러티 체크 매트릭스(403)의 첫번째 네 개의 엔트리에 따른 연결을 도시한다.
특히, 제1 순환 이동 블록(905-908)은 제3 패러티 체크 매트릭스(403)의 첫번째 네 개의 엔트리에 대응하며 각각의 제1 순환 이동 블록(905-908)은 제3 패러티 체크 매트릭스(403)의 대응하는 엔트리(즉, 대응하는 순환 매트릭스)에 따른 대응하는 뱅크(901-904)에 저장된 데이터 기호의 순환 이동을 수행한다.
다음 순환에 대해 적절한 순서가 되기 위하여, CNP 어레이(900)의 출력은, 제1 순환 이동 블록(905-908)에 의해 수행되는 순환 이동으로의 역으로의 순환 이동을 수행하는 제2 순환 이동 블록(909-912)에 의해 순환적으로 이동된다. 특히, 순환 이동 0은 순환 이동 0에 의해 역으로 되며, 순환 이동 18은 순환 이동 3에 의해 역으로 되고(각 뱅크(901-904)의 길이가 21이기 때문에, 0에 대응하는 합계 21이 되기 위함), 순환 이동 6은 순환 이동 15에 의해 역으로 되며(합계 21이 되기 위함), 순환 이동 5는 순환 이동 16에 의해 역으로 된다(합계 21이 되기 위함).
순환 이동 블록(901-904, 909-912)으로 나타나는 순환 이동은, 일 실시형태에서, 도 8에 나타난 바와 같이, 각각 입력으로의 저장 요소 및 저장 요소로의 출력의 대응하는 와이어링(wiring)에 의해 실현된다.
평면도로, 도 10a에 제1 VN 뱅크(901)의 입력/출력 와이어링이 도시되며, 도 10b에 제2 VN 뱅크(902)의 입력/출력 와이어링이 도시된다.
도 10a 및 10b는 실시형태에 따라 하나의 VN 뱅크에 대한 VN-CNP 및 CNP-VN 상호연결을 도시한다.
CNP 어레이(1003, 1008)는 CNP 어레이(900)에 대응한다. 제1 뱅크(1001)는 제1 뱅크(901)에 대응하며 제2 뱅크(1006)는 제2 뱅크(902)에 대응한다. 제1 순환 이동 블록(1002, 1007)은 각각 제1 순환 이동 블록(905, 906)에 대응하며, 제2 순환 이동 블록(1004, 1009)은 각각 제2 순환 이동 블록(909, 910)에 대응한다.
제1 뱅크(1001)의 출력은 0-이동 제1 순환 이동 유닛(1002)을 통해 CNP 어레이(1003)의 제1 입력으로 직접 연결한다. 제1 뱅크(1001)의 입력은, 패러티 체크 매트릭스(403)의 4순환 순환 구조에 의해 특정된 바와 같이, CNP 어레이(1003)의 제2 출력으로부터 온다. CNP-VN 상호연결 순환 이동(순환 이동 블록(1004)으로써 도시됨)은, CNP 어레이(1008)(순환 이동 3)의 제2 입력으로의 제2 VN 뱅크(1006)의 VN-CNP 상호연결(순환 이동 블록(1007)으로써 도시됨)의 순환 이동의 역으로의 이동이다.
제1 복수 연결(1005)은 (제1 뱅크) 제2 순환 이동 블록(1004) 및 제1 뱅크(1001) 사이의 1대1 연결이다. 순환 이동 블록(1004)의 순환 이동은 대응하는 와이어링에 의해 실현될 수 있음을 유의한다.
제2 뱅크(1006)의 출력은, H(1,2)=18이기 때문에 순환 이동 18을 구현하는 (제2 뱅크) 제1 순환 이동 블록(1007)을 통해, CNP 어레이(1008)의 제2 입력에 연결된다.
CNP-VN 상호연결의 순환이동(순환 이동 블록(1009)으로써 도시됨)은, CNP 어레이(900)의 제3 입력으로의 제3 VN 뱅크(903)의 VN-CNP 상호연결의 순환 이동의 역이다. 제2 복수 연결(1010)은, 제2 순환 이동 블록(1009) 및 제2 뱅크(1006) 사이의 직접적인 1대1 연결이다.
CNP 어레이(806-809)를 갖는 VN 뱅크(801-805)의 입력/출력 와이어링이 도11에 "정면도"로 도시된다.
도 11은 실시형태에 따른 VN-CNP 상호연결을 도시한다.
도 11에 나타난 VN-CNP 상호연결의 도시는, 제3 패러티 체크 매트릭스(403)에 대응하는 코드의 4-순환 구조에 대한 VN-CNP 상호연결의 대응을 나타낸다.
제1 그룹 연결(815에서 818)에 대응하는 제1 그룹 연결(1101)은, 제3 패러티 체크 매트릭스(403)에 의해 주어진 코드의 순환 구조에 따른다: 제1 그룹 연결(1101)은 CNP2 -> VN1로 연결되며, 즉 CNP 어레이의 제2 출력이 제1 그룹 연결(1101)을 통해 VN1으로 지정된 제1 VN 뱅크에 연결된다.
유사하게, 제1 그룹 연결(1101)은 CNP3 -> VN2, CNP4 -> VN3, 및 CNP1 -> VN4로 연결한다. 제1 그룹 연결(1101)의 연결은 제3 패러티 체크 매트릭스의 블록 컬럼(1에서 4)의 4-순환 구조에 대응한다(즉, 첫번째 네 개의 블록 컬럼(1-4)에서 블록-로우에서 블록 로우로 하나씩 오른쪽으로의 순환 이동).
나아가, 유사하게, 제3 패러티 체크 매트릭스의 4-순환 구조에 대응하여 제2 그룹 연결(1102)은 CNP6 -> VN6, CNP7 -> VN6, CNP8 -> VN7 및 CNP5 -> VN8로 연결한다. 제2 그룹 연결(1102)의 연결은, 패러티 체크 매트릭스(403)의 블록 컬럼(5에서 8)의 4-순환 구조에 대응한다(즉, 두번째 네 개의 블록 컬럼(5-8)에서 블록-로우로부터 블록 로우로 하나씩 오른쪽 순환 이동).
다른 여섯 개의 뱅크 그룹에 대하여 VN-CNP 상호연결(VN-CNP 네트워크)은, 제3 패러티 체크 매트릭스(403)의 각각의 블록 컬럼의 4 순환 구조를 고려하는 유사한 그룹 연결을 포함한다.
패러티 체크 매트릭스의 블록-로우가 처리되는 특정 시퀀스가 디코딩 성능에 영향을 미칠 수 있다는 사실이 알려져 왔다. 도 8에 도시되고 상술된 본래의 시퀀스는 단지 도시를 위한 목적이다. 다른 실시형태에서, 블록-로우 디코딩 시퀀스의 재순서화에 의해 더 나은 에러율 성능이 획득될 수 있다. 이를 위해, 도 8에 도시된 상호연결이 다시 와이어될(rewired) 수 있다.
테이블 1은 도 1에 도시된 아키텍쳐, 도 2에 도시된 아키텍쳐 및 예를 들면 도 8을 참조하여 상술된 것과 유사한, 실시형태의 아키텍쳐 사이의 비교를 보여준다.
<테이블 1>
Figure pct00002
실시형태에 따른 체크 노드 프로세서의 아키텍쳐가 도 12에 도시된다.
도 12는 실시형태에 따른 체크 노드 프로세서(1200)를 나타낸다.
체크 노드 프로세서(1200)는, 상술된 바와 같이 VN 뱅크(801에서 805)의 출력에 연결된 복수의 입력(1201)을 포함한다.
체크 노드 프로세서(1200)는, 상술된 바와 같이 VN 뱅크(801에서 805)의 입력에 연결된 복수의 출력(1202)을 더 포함한다.
도 8에 도시된 예에 대응하여, 체크 노드 프로세서는 32개의 입력(1201) 및 32개의 출력(1202)을 포함한다.
각 입력을 통해, 체크 노드 프로세서(1200)는 귀납적인 추정치(Qv)를 수신하고 업데이트 된 귀납적 추정치(Qv)를 각각의 출력을 통해 출력한다.
하나의 블록-레이어를 단지 일 순환에 디코드하기 위해, CNP의 데이터 경로는, 일 실시형태에서, 순전히 조합적(combinational)이다.
Rcv 업데이트 모듈(1203)은 확률값(Rcv)의 업데이트를 수행한다.
Rcv 업데이트 모듈(1203)에 의해 출력된 업데이트된 Rcv 값은, 업데이트된 Rcv 값이 생성된 Qv 값과 동일한 VN 뱅크에 대응하는 각각의 메모리(1204)로 피드백된다.
각 메모리(1204)는 선입선출(FIFO) 방식으로 동작되며, 예를 들면 이동 레지스터 또는 RAM으로 구현되고, 네 개의 값을 저장하도록 구성된다. 각 순환에서 하나의 Rcv 값이 생성되고 메모리(1204)로 공급되기 때문에, 업데이트된 Rcv 값은 네 개의 순환(다음 반복에서) 후에 메모리(1204)에 의해 출력될 것이며 따라서 업데이트된 Rcv 값은 적절한 Qv, 즉 Rcv 값이 생성된 Qv 값에 대응하는(업데이트인) Qv가 입력되는 경우 순환에서 메모리(1204)에 의해 출력될 것이다. 이는 Qv 값이 네 개의 순환 구조를 따르고(예를 들면, 도 11에 도시됨) 매 네 순환마다 VN 뱅크를 재방문하고(가능하게는 업데이트됨) 따라서 매 네 순환마다 입력(1201)을 통해 재입력(가능하게는 업데이트)되기 때문이다.
메모리(1204)에 의해 출력된 Rcv 값은 감산기(1205)에 의해 대응 입력(1201)에 의해 수신된 Qv 값으로부터 감산된다. 이 결과는 Rcv 업데이트 모듈(1203) 및 Rcv 값에 가산되는 가산기(1205)에 공급되어 업데이트된 Qv 값을 생성한다.
실시형태에 따른 Rcv 업데이트 모듈(1203)의 아키텍쳐가 도 13 및 14를 참조하여 이하 설명된다. 이 실시형태에서, NMS(normalized min-sum) 알고리즘이 도시를 위해 적용되었다.
도 13은 2-입력 순서 모듈(1301) 및 4-입력 순서 모듈(1302)에 대해 설계된 회로를 도시한다.
2-입력 순서 모듈(1301)은 두 개의 진폭 입력을 비교하고 이들을 정렬된 방식으로 (최소값은 더 상위의 출력을 통하고 두 값의 최소값은 더 하위의 출력을 통해서) 출력한다. 4-입력 순서 모듈(1302)은 두 그룹의 미리 순서화된 진폭 입력을 취하며(즉, 각 그룹은 그룹의 최소값 및 최대값으로 순서화됨), 최소값 및 두번째 최소값을 출력한다(즉, 네 개의 입력값(x1에서 x4) 중 최저 두 개의 값을 출력함). 도시된 바와 같이, 4-입력 순서 모듈(1302)로의 입력을 미리 순서화하는 것은, 4-입력 순서 모듈(1302)의 전면에 연결된 두 개의 2-입력 순서 모듈(1301)에 의해 달성된다. 제2 최소값을 결정하기 위하여, 3-입력 최소값 모듈(1303)(즉, 세 개의 입력 값 중 최소값을 출력하는 모듈)이 4-입력 순서 모듈에 의해 사용될 수 있다.
최소값의 인덱싱은 단순화를 위하여 도 13에는 도시되지 않는다.
2-입력 모듈(1301) 및 4-입력 모듈(1302)에 근거한 Rcv 업데이트 모듈이 도 14에 도시된다.
도 14는 실시형태에 따른 Rcv 업데이트 모듈(1400)을 나타낸다.
도 8에 도시된 예에서의 VN 뱅크의 수에 대응하여, Rcv 업데이트 모듈(1400)은 32-입력 Rcv 업데이트 모듈이다. Rcv 업데이트 모듈(1400)은 순전히 조합적이다.
Rcv 업데이트 모듈(1400)은 8-입력 모듈(1403)을 포함하며, 여기서 8-입력 모듈(1403)의 구조는, 예로서 최상위(uppermost) 8-입력 모듈(1403)에 대해 도시된다.
8-입력 모듈(1403)은, 그 입력 각각에 대해, 입력을 통해 수신된 값에 대해 이 값을 그 신호(sign)(분할 유닛(1404)의 더 상위의 출력으로부터의 출력)와 그 진폭(분할 유닛(1404)의 더 하위의 출력으로부터의 출력)으로 분할하는 분할 유닛(1404)을 포함한다.
1에서 32로 숫자 부여된 32개의 입력 값의 신호는 8개 신호의 네 그룹으로 그룹화된다. 이 네 그룹은 Rcv 업데이트 모듈(1400)의 일부일 수 있는 신호 결정 회로(1430)로 입력되나, 도 14에서는 더 나은 개관을 위하여 분리하여 도시된다.
신호의 각 그룹에 대한 신호는 제1 XOR 요소(1413-1416)에 의해 XOR된다. 제1 XOR 요소(1413-1416)의 출력은 나아가 짝을 이루어 제2 XOR 요소(1417, 1418)에 의해 XOR된다. 제2 XOR 요소(1417, 1418)의 출력은 그 출력으로서 글로벌 신호를 생성하는 제3 XOR 요소(1419)에 의해 XOR된다.
각 8-입력 모듈(1403)은 마지막 단계로서 4-입력 모듈(1402)을 포함하며, 따라서(도 13 비교) 두 개의 값을 출력한다. 각 8-입력 모듈(1403)에 대해, 8-입력 모듈(1403)에 의해 출력되는 두 개의 값은, 출력 값(1406-1409)의 개별적으로 스케일(scale)된 쌍을 생성하는 스케일링 모듈(1405)에 의해 동일한 상수로 스케일된다.
신호 동작과 유사하게, 이러한 출력 값(1406-14090 쌍은 더 짝을 이루어, 출력 값(1412)의 최종 쌍을 생성하는 4-입력 모듈(1432)로 다시 공급되는 값(1410, 1411)의 쌍을 출력하는 두 개의 4-입력 모듈(1431)로서 이용된다.
이러한 모든 로컬/글로벌 진폭/신호, 즉 값(1406에서 1412)의 쌍 및 XOR 요소에 의해 출력되는 신호는 선택 모듈(1420)로 입력된다.
선택 모듈(1420)은 Rcv 업데이트 모듈(1400)의 일부일 수 있으나, 도 14에서는 더 나은 개관을 위하여 별도로 도시된다.
선택 모듈(1420)의 동작은 코딩 레이트(coding rate)에 따라 제어될 수 있다.
선택 모듈(1420)은 특정 코딩 레이트, 즉, 이 예에서는 1/2, 3/4, 또는 7/8에 따라 네 그룹의 희망 신호 및 진폭(1421에서 1424)을 생성한다.
각 그룹(1421에서 1424)은 최소값, 제2 최소값, 신호 및 최소값의 인덱스를 포함하는 그룹이다.
각 그룹(1421에서 1424)은 멀티플렉서의 네 그룹 중 하나의 그룹(1425)을 제어하여 각 그룹에 대한 적절한 진폭을 얻도록 한다. 멀티플렉서의 각 그룹은, 더 나은 개관을 위해 도 14에서 별도로 도시된 출력 단계 모듈(1433)의 일부이다.
각 출력 단계 모듈(1433)에서 진폭은 조합기(1426)에 의해 신호와 조합되어, Rcv 업데이트 모듈(1400)의 32개의 출력을 형성하는 업데이트된 Rcv 값을 얻는다.
패러티 체크 매트릭스의 신중한 설계로, 도 7에 도시된 것과 같은 실시형태가 동일한 길이 및 상이한 레이트로 다수의 LDPC 코드를 지원할 수 있다. 일 실시형태에서, 이를 지원하기 위하여, 이러한 패러티 체크 매트릭스는 하나의 '마더(mother)' 코드로부터 도출된다. 일 실시형태에서, '마더' 코드로서, 제3 패러티 체크 매트릭스(403)에 대응하는 코드가 사용된다. 이것은 코딩 레이트 R=7/8로 4개의 레이어를 갖는다.
이 코드로부터, 제2 패러티 체크 매트릭스(402)에 의해 주어진 레이트 3/4의 코드 및 제1 패러티 체크 매트릭스(401)에 의해 주어진 1/2 레이트 코드는, 4-순환 순환 속성이 유지되는 방식으로 구성될 수 있다.
이는 '마더' 패러티 체크 매트릭스, 즉 제3 패러티 체크 매트릭스(403)의 컬럼 방향 확장을 통해 이루어질 수 있다. 예를 들면, 제2 패러티 체크 매트릭스(402)를 고려한다. 제2 패러티 체크 매트릭스(402)의 두 개의 블록-로우는 제3 패러티 체크 매트릭스(403)의 하나의 블록-로우의 확장에 의해 생성될 수 있다. 이는 제2 패러티 체크 매트릭스(402)에 대응하는 코드는 확장 인자 2를 갖는다고 말할 수 있다.
도 4에서 제2 패러티 체크 매트릭스(402)의 엔트리(408-411)에 의해 도시된 바와 같이, 4-순환 순환 속성은 두 개의 블록-로우 그룹에 대해 유지될 수 있다. 이 두 블록-로우에 대해서 업데이트될 에지(edge)가 단 하나만 있고 따라서 아무런 충돌이 존재하지 않기 때문에, 이 확장된 두 개의 블록-로우는 동시에 처리될 수 있다. 제1 패러티 체크 매트릭스($01)는 확장 인자 4를 가지며, 동시에 처리되는 네 개의 블록-로우 그룹과 유사한 방식으로 디코드될 수 있으며, 단지 4개의 순환만이 한 번의 반복에 대해 필요하다.
도 7을 참조한 상술한 실시형태는 상호연결 네트워크의 변경 없이 이러한 모든 코드를 지원한다. 도 14에 도시된 예시적인 Rcv 제어 모듈(1420)이, 소정의 단순한 제어 논리 및 멀티플렉서를 갖는 특정 코딩 레이트에 따라 Rcv 업데이트를 제어할 수 있다. 도 8에 도시된 실시형태는 최대 4의 확장 인자를 갖는 코드를 지원할 수 있지만, 아키텍쳐는 확장 인자 없이도 어떤 세트의 코드에도 적용될 수 있다.
도 8을 참조한 상술한 실시형태는 도 7에 나타난 LDPC 디코더의 완전한 병렬 구현을 도시한다. 하지만 실시형태는 준병렬(semi-parallel) 구현으로도 구성될 수 있음을 유의하여야 한다. 예를 들면, CNP를 시간 분배(time sharing)에 의한 저-복잡도 적용을 위하여 CNP(704)의 수(도 7에서)는 삼분의 일로 감소될 수 있다. 리소스 분배를 지원하기 위하여, 도 7에 나타난 직접 상호 연결(701 및 702)는 예를 들면 멀티플렉서의 뱅크를 삽입함으로써 수정될 수 있다. 이는 도 15에 도시된다.
도 15는 실시형태에 따른 디코더(1500)를 나타낸다.
디코더(1500)의 아키텍쳐는 디코더(800)의 아키텍쳐와 유사하여, 디코더(1500)는 도 8을 참조하여 설명된 디코더(800)와 유사한 구성요소를 갖는다.
차이점은 디코더(1500)에서는 단지 1/3의 체크 노드 프로세서만이 예시될 수 있다는 점이다(CNP1-CNP21 대신 CNP1-CNP7). 이에 대해서, VN-CNP 네트워크에 멀티플렉서(1501)의 뱅크 및 CNP-VN 네트워크에서, 즉 도 7에 도시된 디코더의 상호연결(701, 702)에 대응하는 상호연결에서, 디멀티플렉서(1502)의 뱅크가 있다.
이는, VN 뱅크의 상이한 저장 요소에 저장된 구성요소를 동일한 CNP로(특정 처리 시간 분배에 대해 하나의 구성요소) 멀티플렉싱하고 출력을 정확한 저장 요소로 멀티플렉싱함으로써 VN 뱅크에 저장된 상이한 데이터 기호를 CNP가 처리할 수 있도록 한다(상이한 시간, 즉 상이한 처리 시간 분배에서).
이러한 방식으로 설계된 LDPC 디코더는 더 낮은 효율을 갖지만 실리콘 크기는 감소된다.
일 실시형태에 따르면, LDPC 인코더 아키텍쳐는 도 16에 도시된 바와 같이 이용된다.
도 16은 실시형태에 따른 인코더(1600)를 나타낸다.
도 7에서 도시된 디코더(700)의 아키텍쳐와 비교해서, 인코더(1600)는 디코더(700)의 구성요소(701-704)와 유사한 구성요소(1601-1604)를 포함한다.
인코더(1600)는, Rcv 메모리(705) 및 패러티 체크 기능(706)이 인코더(1600)에서 제거되었다는 점에서 디코더(700)와 상이하다. 나아가, 인코더(1600)는, 비트 폭이 일 비트이고 코드워드를 버퍼하기 위해 이용되는 메모리(1603)를 포함하며, 반면에 장치(703)는 채널로부터의(즉, 수신된 신호에 대해 생성됨) 소프트 LLR 값을 저장하도록 되어 있다.
인코더(1600)는, 실시형태에 따라, 도 14에서 도시된 바와 같이, CNP 어레이(704)의 예시적인 구현보다 덜 복잡한 CNP 어레이(1604)를 더 포함한다.
요약하면, 일 실시형태에서, 상호연결(1601 및 1602), 메모리(1603) 및 CNP 어레이(1604)는 각각 도 7에 나타난 디코더(700)의 구성요소(701에서 704)의 서브셋으로 간주될 수 있다.
실시형태에 따른 예시적인 LDPC 인코더가 도 17에 나타난다.
도 17은 실시형태에 따른 인코더(1700)를 나타낸다.
인코더(1700)의 아키텍쳐는 도 8을 참조하여 상술된 레이어드 디코더(800)와 유사하다.
인코더(1700)는, Qv 어레이(즉, VN 뱅크)가 인코딩될 정보 비트로 초기화된다는 점에서 디코더(800)와 상이하며, 인코더(17)에서의 상호연결 라인(1711에서 1718)에 의해 교환되는 모든 메시지(즉, 기호)는 1비트의 비트 폭이다. 나아가, 일 실시형태에서, CNP(1706-1709)는 인코더(800)의 CNP(806-809)보다 더 적은 복잡도로(더 단순하게) 구현된다.
도 18은 실시형태에 따른 체크 노드 프로세서(1800)를 나타낸다.
CNP(1800)는 인코더(1700)의 CNP(1706-1709)에 대한 예시이다.
CNP(1800)는 그룹핑/역그룹핑 모듈(1801 및 1802), 및 3-단계 XOR 모듈(1803-1805)과 같이, Rcv 업데이트 모듈(1400)과 유사한 구성요소를 가진다.
따라서, 값(1806-1812)은, 도 14의 값(1406-1412)과 유사한 처리 과정에서 생성된다.
CNP(1800)의 유일한 오버헤드(overhead)는, 대응하는 포트(즉, 출력)로의 적절한 패러티 체크 비트를 선택하는 관련 제어 논리 및 멀티플렉서(1813)에서 볼 수 있다.
체크 노드 프로세서(1800)에 대한 도 18에 나타난 예시적인 회로는, 일 실시형태에 따르면, 도 4에 나타난 패러티 체크 매트릭스에 대응하는 모든 코드 레이트를 지원할 수 있다.
제3 패러티 체크 매트릭스(403)에 대응하는 코드에 대해 사용 가능한 더 적은 복잡도를 갖는 예시적인 인코더 CNP 회로가 도 19에 도시된다.
도 19는 실시형태에 따른 체크 노드 프로세서(1900)를 나타낸다.
하나의 '매크로' 레이어가 이 코드에 대해 하나의 블록-레이어이기 때문에, 이 코드에 대해 그룹핑/역그룹핑 모듈(1801, 1802)이 필수적인 것은 아니다.
디코더(1600)의 메모리(1603)(Qv 어레이)는 들어오는 정보 비트 스트림으로부터의 28-비트 정보 비트 워드를 갖고 초기화된다. Qv 어레이의 패러티 체크 뱅크(즉, 패러티 비트에 대응하는 Qv의 29번째 뱅크에서 32번째 뱅크)는 (초기에) 0으로 채워진다.
32-입력 XOR 게이트(1901)는 상이한 레이어에 대해 패러티 체크 비트를 계산한다. XOR된 비트는 그리고 나서 29번째 출력 포트로 출력된다(멀티플렉서(1902)를 통해). 제1 인코딩 순환에서 29번째 패러티 체크 비트가 생성되고 CNP-VN 네트워크(예를 들면 도 11을 참조하여 상술된 바와 같이 구성됨)를 통해 Qv 어레이의 32번째 뱅크로 순환적으로 이동된다.
제2 인코딩 순환에서 모든 28개의 입력(즉, 정보 비트) 더하기 새로 생성된 29번째 패러티 체크 비트(입력 포트 32에서)로부터 30번째 패러티 비트가 생성되고 29번째 출력 포트로 다시 출력된다. 이러한 방식으로, 도 4에 도시된 제3 패러티 체크 매트릭스(403)에 대응하는 코드에 대한 네 개의 패러티 체크 뱅크를 채우도록 네 개의 순환이 이용된다.
도 18 및 도 19에 도시된 예시적인 CNP 회로는 예를 들면 도 17에 도시된 아키텍처에 대해 사용될 수 있다.
이 아키텍쳐는 도 8에 도시된 예시적인 디코딩 아키텍쳐와 유사하다. 따라서, 일 실시형태에 따라, 인코딩 프로세스가 디코딩 프로세스의 리소스를 공유할 수 있는 반이중(half-duplex) 응용에 대한 인코딩 및 디코딩 모두에 대해서 이 아키텍쳐가 이용된다.
LDPC 인코더 및 디코더 모두의 명시적인 인스턴스화가 필수적인 전이중(full-duplex), 심플렉스 및 방송 응용에 대해서, 일 실시형태에 따라 조금 더 단순한 인코더 아키텍쳐가 사용된다. 이는 도 20에 도시된다.
도 20은 실시형태에 따른 인코더(2000)를 나타낸다.
인코더(2000)는 정보 비트 뱅크(2001-2004), 패러티 비트 뱅크(2005), 및 21개의 체크 노드 프로세서(2006-2009)를 갖는 CNP 어레이를 포함한다.
이 예에서, 정보 비트 뱅크(2001-2004)는 상호 로컬로 연결되며, CNP(2006-2009)는 패러티 체크 비트만을 출력한다.
도 8에 나타난 디코더(800)와 유사하게, 인코더(2000)는 제1 뱅크 연결(2011 및 2012) 및 제2 뱅크 연결(2013 및 2014)을 포함한다.
인코더(2000)의 예시적인 아키텍쳐의 평면도가 도 21에 주어진다.
도 21은 실시형태에 따른 인코더(2100)를 나타낸다.
인코더(2100)는 인코더(2000)에 대응하며, 정보 비트 뱅크(2101), 패러티 체크 비트 뱅크(2102), 및 CNP(2105)를 포함한다.
정보 비트 뱅크(2101)는 인코딩될 정보 비트로 초기화되며, 패러티 뱅크(2102)는 모두 0으로 초기화된다. 정보 비트 뱅크(2101)에 대하여(정보 비트로 초기화됨), 매 순환에서 모든 정보 비트 뱅크(2101)가 다른 정보 비트 뱅크(2101) 중 하나에 이미 저장된 값을 수신하는 로컬 순환 연결(2103)이 사용된다. 패러티 체크 뱅크(2002)에 저장된 값은, 대조적으로, CNP-VN 연결(2104) (도 20의 패러티 뱅크에 대한 CNP-VN 연결(2015-2018)에 대응)을 통해 각각의 CNP 출력에 의해 업데이트된다. 인코더(2100)의 VN-CNP 연결 및 CNP-VN 연결은 도 9를 참조하여 상술된 바와 같이 순환 이동을 구현함에 유의하여야 한다. 예를 들면, 패러티 비트 뱅크(2102)에 대하여 VN-CNP 연결 및 CNP-VN 연결에 대한 순환 이동은, 제3 패러티 체크 매트릭스(403)의 29에서 32로 숫자 부여된 마지막 네 개의 블록 컬럼에 의해 주어진다.
CNP(2006-2009)의 아키텍쳐에 대한 예시가 도 22a 및 22b에서 나타난다.
도 22a 및 22b는 실시형태에 따른 CNP(2201, 2202)를 나타낸다.
도 22a에 나타난 CNP(2201)는 패러티 체크 매트릭스(401-403)에 대응하는 모든 코드에 대하여, 즉 모든 코드 레이트에 대하여 이용될 수 있다.
CNP(2201)는 도 8을 참조하여 상술된, 1에서 16으로 표기된 출력이 없는 CNP(1800)와 유사하다.
CNP(2022)는 제3 패러티 체크 매트릭스(403)에 대응하는 코드를 이용할 수 있다. 이는 도 19를 참조하여 상술된 CNP(1900)와 유사하나 29번째 출력만을 포함한다.
상기 예시들이 IEEE 802.15.3c 드래프트 표준에 정의된 LDPC 코드를 참조하여 설명되었으나, IEEE 802.15.3c 무선 네트워크에 대해 의도된 LDPC 인코딩 외의 다른 코드에 대해서도 실시형태가 사용될 수 있다. 예를 들면, 도 16을 참조하여 설명된 실시형태는 도 23에 도시된 바와 같이 부상하는 WiMedia 표준에 제안되는 LDPC 코드에 대해서도 사용될 수 있다.
도 23은 실시형태에 따른 패러티 체크 매트릭스(2301, 2302)를 나타낸다.
제1 패러티 체크 매트릭스(2301)에 대응하는 코드는 레이트 0.6의 LDPC 코드이며, 제2 패러티 체크 매트릭스(2302)에 대응하는 코드는 코드 레이트 0.8을 갖는 코드이다. 표기된 엔트리(2303-2306)로부터 볼 수 있듯이, 제2 패러티 체크 매트릭스(2302)의 4-순환 순환 구조는 도 2에 나타난 패러티 체크 매트릭스(401-403)에서와 같다.
이 코드를 지원하기 위하여, 도 17 및 도 20 양쪽에서 도시된 예시적인 아키텍쳐가 사용될 수 있다. 제2 패러티 체크 매트릭스(2302)에 대응하는 코드에 대해 사용되는 CNP에 대한 예시적인 회로가 도 24에 도시된다.
도 24는 실시형태에 따른 체크 노드 프로세서(2400)를 나타낸다.
제3 패러티 체크 매트릭스(403)에 대응하는 코드에 대한 CNP(1900)과 비교하여, XOR 게이트(2401)는 40-입력 XOR 게이트로 변경되며, 멀티플렉서(2402)에 더하여, 추가적인 멀티플렉서(2403)가 출력 포트에 추가된다. 이는, 패러티 체크 매트릭스의 패러티 체크 부분에 대해 유사한 블록 방향의 삼각형을 이루기 때문이다. 도 23의 제1 패러티 체크 매트릭스(2301)에 대응하는 코드에 대하여 유사한 회로가 사용될 수 있다.
일 실시형태에서, 예를 들면 하드와이어드 상호연결로만 구현된 LDPC 코덱은 이하의 효과를 갖는다:
·이것은 패러티 체크 매트릭스 저장을 위한 리소스 및 라우팅 네트워크를 위한 복잡한 제어 논리를 절약한다.
·이것은 H 로우 가중치에 독립적인 몇 번의 순환만으로 한번의 반복으로 완료될 수 있으며, 따라서 고효율/저레이턴시 응용에 적합하다. 반면에 레이어드 디코딩이 사용되기 때문에 빠른 융합/성능이 보장된다.
·다수의 LDPC 코드가 하나의 '마더' 코드로부터 도출되기 때문에 고정된 하드와이어드 상호연결만이 사용된다. 이는 H 매트릭스를 저장하기 위한 ROM의 필요성을 제거하며, IC 설계 / 배치 및 라우트에서의 상호연결의 라우팅 혼잡을 크게 감소시킨다. 이 모든 코드에 대하여 디코딩 레이턴시는 동일하다.
·이것은 하드웨어 복잡도 및 처리 레이턴시 사이의 유연한 트레이드오프를 제공한다.
·인코더는 사소한 하드웨어 오버헤드로 디코더 리소스의 충분한 이용을 가능하게 한다.
·인코더 및 디코더 모두 매우 낮은 레이턴시를 갖는다.
비교를 위하여, 종래의 LDPC 인코더(2500)가 도 25에 도시된다. 이는 Hc 디컴포저(decomposer)(2501), u 계산기(2502), 및 p 계산기(2503)를 포함한다. u를 계산하기 위하여, 패러티 체크 매트릭스를 저장하고 복잡한 어드레스/제어 논리를 이용하여야 한다. 더 중요하게는, 종래의 LDPC 인코더에서는 디코딩 아키텍쳐에 대한 고려가 전혀 없다. 반대로, 실시형태에 따른 LDPC 인코더는 LDPC 디코더의 리소스를 충분히 사용하며 사소한 오버헤드를 요구한다.

Claims (19)

  1. 데이터 기호를 저장하기 위한 복수의 저장 요소를 포함하는 데이터 버퍼와,
    복수의 입력 및 복수의 출력을 포함하는 처리 회로로서, 상기 복수의 입력을 통해 수신된 데이터 기호를 처리하고, 상기 복수의 출력을 통해 상기 처리된 데이터 기호를 출력하도록 구성된, 상기 처리 회로
    를 포함하는 디코딩 회로로서,
    상기 복수의 저장 요소의 각 저장 요소는 상기 복수의 입력의 관련된 입력에 연결되고, 상기 복수의 입력과 상기 복수의 저장 요소의 상기 관련은 제1 디코딩 파라미터에 의해 결정되며,
    상기 복수의 저장 요소의 각 저장 요소는 상기 복수의 출력의 관련된 출력에 연결되고, 상기 복수의 출력과 상기 복수의 저장 요소의 상기 관련은 제2 디코딩 파라미터에 의해 결정되며,
    상기 제1 디코딩 파라미터 및 상기 제2 디코딩 파라미터는 디코딩 규칙에 의해 결정되고, 상기 제1 디코딩 파라미터 및 상기 제2 디코딩 파라미터는 상기 디코딩 처리 동안 변경되지 않는
    디코딩 회로.
  2. 제 1 항에 있어서,
    상기 제1 디코딩 파라미터 및 상기 제2 디코딩 파라미터는 음수가 아닌 정수인
    디코딩 회로.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 제1 디코딩 파라미터 및 상기 제2 디코딩 파라미터는 각각 상기 복수의 입력 및 상기 복수의 출력에 관한 데이터 기호의 블록의 이동(shift)을 명시하는
    디코딩 회로.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 디코딩 규칙은 에러 교정 코드에 의해 주어지는
    디코딩 회로.
  5. 제 4 항에 있어서,
    상기 에러 교정 코드는 패러티 체크 코드인
    디코딩 회로.
  6. 제 5 항에 있어서,
    상기 에러 교정 코드는 저밀도 패러티 체크 코드인
    디코딩 회로.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 데이터 기호는 통신 채널을 통해 수신되는 송신 기호에 대응하는
    디코딩 회로.
  8. 제 7 항에 있어서,
    상기 데이터 기호는 상기 송신 기호에 대한 우도 비율(Log-Likelihood Ratios)인
    디코딩 회로.
  9. 제 1 항에 있어서,
    상기 처리 회로는 미리 결정된 기준이 만족하는지 여부를 상기 데이터 기호에 근거하여 체크하도록 구성된
    디코딩 회로.
  10. 제 9 항에 있어서,
    상기 미리 결정된 기준은 상기 데이터 기호의 패러티 체크에 근거하는
    디코딩 회로.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    각 저장 요소는 저장된 데이터 기호를 관련된 입력으로 출력하도록 구성된
    디코딩 회로.
  12. 제 11 항에 있어서,
    각 저장 요소는, 저장된 데이터 기호를 관련된 입력으로 출력한 후에, 관련된 출력으로부터 또 다른 데이터 기호를 수신하고, 상기 다른 데이터 기호를 저장하고 상기 다른 데이터 기호를 관련된 입력으로 출력하도록 구성된
    디코딩 회로.
  13. 제 1 항 내지 제 12 항 중 어느 한 항에 있어서,
    각 저장 요소의 관련 입력으로의 상기 연결은 하드와이어드(hard-wired)인
    디코딩 회로.
  14. 제 1 항 내지 제 13 항 중 어느 한 항에 있어서,
    각 저장 요소의 관련 출력으로의 상기 연결은 하드와이어드인
    디코딩 회로.
  15. 제 1 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 디코딩 회로는 인코딩 및 디코딩 모두에 대한 것인
    디코딩 회로.
  16. 데이터 기호를 저장하기 위한 복수의 저장 요소를 포함하는 데이터 버퍼와,
    복수의 입력 및 복수의 출력을 포함하는 처리 회로로서, 상기 복수의 입력을 통해 수신된 데이터 기호를 처리하고, 상기 복수의 출력을 통해 상기 처리된 데이터 기호를 출력하도록 구성된, 상기 처리 회로
    를 포함하는 인코딩 회로로서,
    상기 복수의 저장 요소의 각 저장 요소는 상기 복수의 입력의 관련된 입력에 연결되고, 상기 복수의 입력과 상기 복수의 저장 요소의 상기 관련은 제1 인코딩 파라미터에 의해 결정되며,
    상기 복수의 저장 요소의 각 저장 요소는 상기 복수의 출력의 관련된 출력에 연결되고, 상기 복수의 출력과 상기 복수의 저장 요소의 상기 관련은 제2 인코딩 파라미터에 의해 결정되며, 상기 제1 인코딩 파라미터 및 상기 제2 인코딩 파라미터는 인코딩 규칙에 의해 결정되고,
    상기 제1 인코딩 파라미터 및 상기 제2 인코딩 파라미터는 상기 인코딩 처리 동안 변경되지 않는
    인코딩 회로.
  17. 제 1 항 내지 제 15 항 중 어느 한 항에 따른 디코딩 회로를 갖는 수신기 및 제 16 항에 따른 인코딩 회로를 갖는 송신기를 포함하는 통신 시스템.
  18. 데이터 기호를 저장하기 위한 복수의 저장 요소의 각 저장 요소를, 상기 복수의 입력을 통해 수신된 데이터 기호를 처리하고 복수의 출력을 통해 상기 처리된 데이터 기호를 출력하도록 구성된 처리 회로의 복수의 입력의 관련된 입력으로 연결하는 단계로서, 상기 복수의 입력과 상기 복수의 저장 요소와의 상기 관련은 제1 디코딩 파라미터에 의해 결정되는, 연결 단계와,
    상기 복수의 저장 요소의 각 저장 요소를 상기 복수의 출력의 관련된 출력으로 연결하는 단계로서, 상기 복수의 출력과 상기 복수의 저장 요소의 상기 관련은 제2 디코딩 파라미터에 의해 결정되는, 연결 단계
    를 포함하는 디코딩 방법으로서,
    상기 제1 디코딩 파라미터 및 상기 제2 디코딩 파라미터는 디코딩 규칙에 의해 결정되고, 상기 제1 디코딩 파라미터 및 상기 제2 디코딩 파라미터는 상기 디코딩 처리 동안 변경되지 않는
    디코딩 방법.
  19. 데이터 기호를 저장하기 위한 복수의 저장 요소의 각 저장 요소를, 복수의 입력을 통해 수신된 데이터 기호를 처리하고 복수의 출력을 통해 상기 처리된 데이터 기호를 출력하도록 구성된 처리 회로의 상기 복수의 입력의 관련된 입력으로 연결하는 단계로서, 상기 복수의 입력과 상기 복수의 저장 요소의 상기 관련은 제1 인코딩 파라미터에 의해 결정되는, 연결 단계와,
    상기 복수의 저장 요소의 각 저장 요소를 상기 복수의 출력의 관련된 출력으로 연결하는 단계로서, 상기 복수의 출력과 상기 복수의 저장 요소의 상기 관련은 제2 인코딩 파라미터에 의해 결정되는, 연결 단계
    를 포함하는 인코딩 방법으로서,
    상기 제1 인코딩 파라미터 및 상기 제2 인코딩 파라미터는 인코딩 규칙에 의해 결정되고, 상기 제1 인코딩 파라미터 및 상기 제2 인코딩 파라미터는 상기 디코딩 처리 동안 변경되지 않는
    인코딩 방법.
KR1020117009434A 2008-09-26 2009-09-15 디코딩 회로 및 인코딩 회로 KR20110087268A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10028008P 2008-09-26 2008-09-26
US61/100,280 2008-09-26
US10550008P 2008-10-15 2008-10-15
US61/105,500 2008-10-15

Publications (1)

Publication Number Publication Date
KR20110087268A true KR20110087268A (ko) 2011-08-02

Family

ID=42059965

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117009434A KR20110087268A (ko) 2008-09-26 2009-09-15 디코딩 회로 및 인코딩 회로

Country Status (7)

Country Link
US (1) US8762806B2 (ko)
JP (1) JP5542140B2 (ko)
KR (1) KR20110087268A (ko)
CN (1) CN102217200B (ko)
IL (1) IL211884A (ko)
TW (1) TW201014202A (ko)
WO (1) WO2010036209A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101975435A (zh) * 2010-10-19 2011-02-16 三通(常州)电子科技有限公司 空调除霜自动控制系统
US8739008B2 (en) * 2012-02-22 2014-05-27 Silicon Motion, Inc. Method for determining parity check matrix utilized in flash memory system and related flash memory system thereof
US9459956B2 (en) * 2013-07-19 2016-10-04 Seagate Technology Llc Data decoder with trapping set flip bit mapper
US9317361B2 (en) 2013-11-27 2016-04-19 Seagate Technology Llc Bit-line defect detection using unsatisfied parity code checks
US9798622B2 (en) * 2014-12-01 2017-10-24 Intel Corporation Apparatus and method for increasing resilience to raw bit error rate
EP3419180B1 (en) * 2017-06-19 2022-11-02 Universite De Bretagne Sud Simplified, presorted, syndrome-based, extended min-sum (ems) decoding of non-binary ldpc codes
CN110442321B (zh) * 2019-07-19 2021-05-11 南京芯驰半导体科技有限公司 一种预取fifo电路及方法
KR20210061504A (ko) * 2019-11-19 2021-05-28 삼성전자주식회사 에러 정정 회로, 및 그것을 동작하는 방법
CN111294061B (zh) * 2020-02-11 2021-01-05 上海威固信息技术股份有限公司 一种原始比特错误率感知的译码软判决延迟降低方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3264307B2 (ja) * 1995-03-20 2002-03-11 日本電信電話株式会社 誤り訂正符号処理回路及びその構成方法
US7072417B1 (en) 2000-06-28 2006-07-04 Marvell International Ltd. LDPC encoder and method thereof
JP4062435B2 (ja) * 2002-12-03 2008-03-19 日本電気株式会社 誤り訂正符号復号装置
US7139959B2 (en) 2003-03-24 2006-11-21 Texas Instruments Incorporated Layered low density parity check decoding for digital communications
JP4224777B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号方法および復号装置、並びにプログラム
US7484158B2 (en) 2003-12-03 2009-01-27 Infineon Technologies Ag Method for decoding a low-density parity check (LDPC) codeword
US7243287B2 (en) 2004-05-03 2007-07-10 Broadcom Corporation Decoding LDPC (Low Density Parity Check) code and graphs using multiplication (or addition in log-domain) on both sides of bipartite graph
CN100472972C (zh) 2004-05-03 2009-03-25 美国博通公司 可操作地将ldpc编码信号解码的解码器
WO2006062351A1 (en) 2004-12-08 2006-06-15 Electronics And Telecommunications Research Institute Ldpc encoder and decoder and ldpc encoding and decoding methods
US7530002B2 (en) * 2006-01-03 2009-05-05 Broadcom Corporation Sub-matrix-based implementation of LDPC (Low Density Parity Check) decoder
JP2007328894A (ja) * 2006-06-09 2007-12-20 Matsushita Electric Ind Co Ltd 半導体記憶装置、および半導体記憶装置の検査方法
CN101242188B (zh) 2008-03-10 2011-05-11 清华大学 基于哈密尔顿图的低密度奇偶校验码的纠错编码方法
EP2181504A4 (en) * 2008-08-15 2010-07-28 Lsi Corp DECODING LIST OF CODED WORDS CLOSE IN A ROM MEMORY

Also Published As

Publication number Publication date
JP2012503927A (ja) 2012-02-09
WO2010036209A1 (en) 2010-04-01
IL211884A (en) 2014-04-30
US20110264986A1 (en) 2011-10-27
TW201014202A (en) 2010-04-01
US8762806B2 (en) 2014-06-24
CN102217200B (zh) 2014-08-27
JP5542140B2 (ja) 2014-07-09
IL211884A0 (en) 2011-06-30
CN102217200A (zh) 2011-10-12

Similar Documents

Publication Publication Date Title
KR20110087268A (ko) 디코딩 회로 및 인코딩 회로
Zhang et al. A 54 mbps (3, 6)-regular FPGA LDPC decoder
US6961888B2 (en) Methods and apparatus for encoding LDPC codes
US7343548B2 (en) Method and apparatus for encoding and decoding data
Kim et al. A reduced-complexity architecture for LDPC layered decoding schemes
US7716553B2 (en) System and method for designing RS-based LDPC code decoder
US20040187129A1 (en) Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
WO2019028072A1 (en) VERTICAL LAYER FINAL ALPHABET ICE DECODING
US7607075B2 (en) Method and apparatus for encoding and decoding data
Moussa et al. Binary de Bruijn on-chip network for a flexible multiprocessor LDPC decoder
WO2004019268A1 (en) Methods and apparatus for encoding ldpc codes
US8996965B2 (en) Error correcting decoding device and error correcting decoding method
CN105680877B (zh) 一种cc-qc-ldpc码的构建方法及译码装置
KR20110124659A (ko) 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법
CA2516716C (en) Method and apparatus for performing low-density parity-check (ldpc) code operations using a multi-level permutation
WO2007034870A1 (ja) 復号装置および受信装置
Wang et al. Processing-task arrangement for a low-complexity full-mode WiMAX LDPC codec
Tang et al. Reconfigurable shuffle network design in LDPC decoders
CN111384970B (zh) 一种译码方法、装置及通信设备
Zhao et al. DVB-T2 LDPC decoder with perfect conflict resolution
WO2019110721A1 (en) Parallel encoding method and system for protograph-based ldpc codes with hierarchical lifting stages
KR101073636B1 (ko) 저밀도 패리티 검사 부호를 이용한 복호화 장치
CN113612582B (zh) 类Turbo变序列消息传递并行的LDPC译码器
Khan et al. A real time programmable encoder for low density parity check code as specified in the IEEE P802. 16E/D7 standard and its efficient implementation on a DSP processor
KR100678521B1 (ko) 비균일 저밀도 패리티 검사 부호의 부호화 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application