KR101154561B1 - 컨볼루션, 터보 및 ldpc 코드용 통합 디코더 - Google Patents

컨볼루션, 터보 및 ldpc 코드용 통합 디코더 Download PDF

Info

Publication number
KR101154561B1
KR101154561B1 KR1020097026092A KR20097026092A KR101154561B1 KR 101154561 B1 KR101154561 B1 KR 101154561B1 KR 1020097026092 A KR1020097026092 A KR 1020097026092A KR 20097026092 A KR20097026092 A KR 20097026092A KR 101154561 B1 KR101154561 B1 KR 101154561B1
Authority
KR
South Korea
Prior art keywords
trellis
metric
alpha
processors
code decoding
Prior art date
Application number
KR1020097026092A
Other languages
English (en)
Other versions
KR20100020962A (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 KR20100020962A publication Critical patent/KR20100020962A/ko
Application granted granted Critical
Publication of KR101154561B1 publication Critical patent/KR101154561B1/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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and 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/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
    • 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/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3927Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6511Support of multiple decoding rules, e.g. combined MAP and Viterbi 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6513Support of multiple code types, e.g. unified decoder for LDPC and turbo 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction

Landscapes

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

Abstract

통합 디코더(10)는 컨볼루션 코드들, 터보 코드들 및 LDPC 코드들을 이용하여 인코딩된 데이터를 디코딩할 수 있다. 디코더는 컨볼루션 코드들의 디코딩 동안에 경로 메트릭을 계산하고, 터보 및 LDPC 코드들의 디코딩 동안에 알파 및 베타 메트릭을 계산하기 위한 트렐리스 프로세서들의 제1 세트(20, ..., 24) 및 제2 세트(26, ..., 30)를 포함한다. 디코더는 메트릭 정규화를 위한 정규화 유닛(46), 신뢰성 값 계산기의 세트, 트레이스 백 유닛(32), 및 메트릭을 트렐리스 프로세서에 재분배하기 위한 2개의 알파-베타 스왑 유닛들(38, 40)을 포함한다. 적어도 일 실시예에서 통합 디코더는 다중 표준 무선 디바이스 내에서 구현된다.
Figure R1020097026092
통합 디코더, 컨볼루션 코드, 터보 코드, LDPC 코드, 트렐리스 프로세서, 경로 메트릭, 알파 메트릭, 베타 메트릭, 스왑 유닛

Description

컨볼루션, 터보 및 LDPC 코드용 통합 디코더{UNIFIED DECODER FOR CONVOLUTIONAL, TURBO, AND LDPC CODES}
본 발명은 일반적으로 디지털 디코딩에 관한 것으로, 특히 다수의 유형들의 FEC 코드를 디코딩할 수 있는 통합 디코더를 구현하는 기법들에 관한 것이다.
다수의 전자 디바이스들은 다중 무선 표준들을 지원하는 무선 회로를 구비하고 있다. 예를 들어, 랩톱 컴퓨터는 무선 LAN(local area network) 표준, 무선 WAN(wide area network) 표준 및 3GPP 셀룰러 전화 표준을 지원하는 회로를 구비할 수 있다. 다수의 경우들에서, 각각의 무선 표준을 지원하기 위하여 독립적 회로가 제공될 수 있다. 그러나, 지원되고 있는 다양한 무선 표준들 사이에서 하나 이상의 회로 컴포넌트들이 공유될 수 있다면 더욱 효율적일 것이며, 비용 절감을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 예시적인 통합 디코더를 도시하는 블록도.
도 2는 본 발명의 실시예에 따른 예시적인 메트릭(metric) 연산 유닛을 도시하는 블록도.
도 3은 본 발명의 실시예에 따른 예시적인 트렐리스(trellis) 프로세서를 도 시하는 블록도.
도 4는 본 발명의 실시예에 따른 트렐리스 프로세서의 LLR2Lp 블록 내의 예시적인 회로를 도시하는 블록도.
도 5는 본 발명의 실시예에 따른 트렐리스 프로세서의 감마 계산기 내의 예시적인 회로를 도시하는 블록도.
도 6은 본 발명의 실시예에 따른 메트릭 정규화 유닛 내의 예시적인 회로를 도시하는 블록도.
도 7은 본 발명의 실시예에 따른 LLR 계산기 내의 예시적인 회로를 도시하는 블록도.
도 8은 본 발명의 실시예에 따른 컨볼루션 코드 디코딩 동안에 통합 디코더를 동작시키는데 이용되는 예시적인 방법을 설명하는 플로우차트.
도 9는 본 발명의 실시예에 따른 터보 및 LDPC 코드 디코딩 동안에 통합 디코더를 동작시키는데 이용되는 예시적인 방법을 설명하는 플로우차트.
이하의 상세한 설명에서, 본 발명이 실시될 수 있는 특정 실시예들을 예로써 도시하는 첨부 도면들을 참조한다. 이들 실시예들은 본 기술분야의 당업자가 본 발명을 실시할 수 있도록 충분히 상세하게 설명된다. 본 발명의 다양한 실시예들은 비록 상이하지만 반드시 서로 배타적인 것은 아님이 이해될 것이다. 예를 들어, 일 실시예와 관련하여 본 명세서에서 설명되는 특정한 특징, 구조 또는 특성은 본 발명의 사상 및 범주로부터 벗어나지 않고 다른 실시예들 내에서 구현될 수 있 다. 또한, 개시된 각각의 실시예 내의 개별적인 구성 요소들의 위치 또는 배치는 본 발명의 사상 및 범주로부터 벗어나지 않고 변경될 수 있음이 이해될 것이다. 따라서, 이하의 상세한 설명은 한정적 의미로 받아들여서는 아니 되며, 본 발명의 범주는 특허청구범위가 부여될 수 있는 등가물들이 전체 범위와 함께 적절하게 해석된, 첨부된 특허청구범위에 의해서만 정의된다. 도면들에서, 유사한 숫자들은 몇몇 뷰들(views)에 걸쳐 동일하거나 유사한 기능성을 지칭한다.
본 발명은 컨볼루션, 터보 및 LDPC(low density parity check) 코드들을 이용하여 인코딩된 데이터를 디코딩할 수 있는 통합 디코더에 관한 것이다. 예를 들어, 통합 디코더는 다중 표준 지원을 제공하는 무선 디바이스에서 이용될 수 있다. 적어도 일 구현에서, 통합 디코더는 디바이스에 의해 지원되고 있는 다양한 표준들에 의해 공유될 수 있는 단일의 디코더 칩으로서 실현된다. 단일의 디코더 칩을 공유하면, 지원되고 있는 각각의 무선 표준에 대해 독립적인 디코더 칩들을 사용하는 설계들에 비해 회로 구현 비용이 상당히 절감될 수 있다. 단일의 디코더 칩은 또한 다수의 칩들이 차지하는 것보다 회로 기판상의 공간을 상당히 적게 차지한다.
도 1은 본 발명의 실시예에 따른 예시적인 통합 디코더(10)를 도시하는 블록도이다. 더 상세히 설명되는 바와 같이, 통합 디코더(10)는 컨볼루션 코드들, 터보 코드들 및 LDPC 코드들을 이용하여 인코딩된 데이터를 디코딩하는데 이용될 수 있다. 이들 코드 유형들 모두는 트렐리스 기반 디코딩 접근법을 이용하여 디코딩될 수 있다. 통합 디코더(10)는 상이한 유형들의 FEC 코드들을 이용하여 작동하도록 신속하게 재구성될 수 있는 동적으로 구성가능한 트렐리스 디코딩 회로를 이용 한다. 컨볼루션 코드들의 경우, 통합 디코더는 비터비(Viterbi) 디코딩을 수행하도록 구성될 수 있다. 터보 및 LDPC 코드들의 경우, 통합 디코더는 BCJR(Bahl, Cocke, Jelinik, and Raviv) 디코딩을 수행하도록 구성될 수 있다. 적어도 일 실시예에서, 통합 디코더는 다중 표준 무선 통신 디바이스 내에 구현되며, 여기서 통합 디코더는, 디바이스 내에서 현재 활성상태인 무선 표준에 기초하여 가동 중에 재구성될 수 있다. 도 1에 도시된 바와 같이, 통합 디코더(10)는 IEEE 802.16e 무선 네트워킹 표준, 제안된 IEEE 802.11n 무선 네트워킹 표준 및 3GPP TS25.212 무선 셀룰러 표준에 의해 규정된 FEC 코드 모두와 함께 이용할 수 있다. 그외의 실시예들에서는 그외의 무선 표준들이 지원될 수 있다.
도 1을 참조하면, 예시된 실시예에서, 통합 디코더(10)는 SUM 블록(12); RELS 블록(14); 제1 및 제2 배럴 시프터들(barrel shifters)(16, 18); 복수의 메트릭 연산 유닛들(20, 22, 24, 26, 28, 30); 백 트랙(back track) 유닛(32); 알파 메모리(스택)(34); 베타 메모리(스택)(36); 제1 및 제2 알파-베타 스왑(swap) 유닛들(38, 40); 제1 및 제2 지연 유닛들(42, 44); 정규화 유닛(46); 및 출력 버퍼(48)를 포함한다. SUM 블록(12)은 통합 디코더(10)에 의해 처리될 입력 신뢰성 값들을 수신하는 메모리이다. 입력 신뢰성 값들은, 예를 들어, 디코더(10)를 갖고 있는 무선 디바이스의 수신기 내의 복조기로부터 수신될 수 있다. RELS 블록(14)은 디코딩 프로세스를 여러 번 반복하는 동안에 생성되는 중간 신뢰성 값들을 저장하는 메모리이다. 독립적인 메모리들로 예시되어 있지만, 2가지 목적들을 위해 단일의 메모리 구조가 이용될 수 있음을 이해해야 한다. 배럴 시프터들(16, 18)은 SUM과 RELS 블록(12, 14)으로부터 판독된 신뢰성 값을 메트릭 연산 유닛들(20, 22, 24, 26, 28, 30) 내에서의 처리를 위해 재정렬하는데 이용된다. 더욱 자세하게 설명되는 바와 같이, 메트릭 연산 유닛들(20, 22, 24, 26, 28, 30)은 비터비 및 BCJR 디코딩 프로세스들 동안에 이용되는 메트릭들과 신뢰성 값들을 계산하도록 동작한다. 예를 들어, 비터비 디코딩 동안에, 메트릭 연산 유닛들(20, 22, 24, 26, 28, 30)은 상태 메트릭(SM)을 생성할 수 있다. BCJR 디코딩 동안에, 메트릭 연산 유닛들(20, 22, 24, 26, 28, 30)은 알파 (포워드) 메트릭들, 베타 (백워드) 메트릭들 및 중간 신뢰성(예를 들어, LLR) 값들을 생성할 수 있다. 공지된 바와 같이 비터비 및 BCJR 디코딩 프로세스들은 반복 기법이다.
정규화 유닛(46)은 디코딩 프로세스 동안에 생성된 메트릭을 정규화하도록 동작한다. 디코딩 프로세스가 진행됨에 따라서, 생성된 메트릭들은 통상적으로 더욱 더 커진다. 정규화는 이와 같이 메트릭들이 점차적으로 증가되어도 오버플로우가 생성하지 않도록 하기 위해 수행된다. 알파 및 베타 메모리들(스택들)(34, 36)은 BCJR 디코딩 동안에 추가적인 사용을 위해 정규화된 알파 및 베타 메트릭을 저장하는데 이용된다. 비터비 디코딩 동안에, 알파 및 베타 메모리들(34, 36)은 최우도 코드워드(the most likely codeword)를 재구성하기 위해 백 트랙 유닛(32)에 의해 최종적으로 이용되는 경로 메트릭을 저장하는데 이용된다. 백 트랙 유닛(32)은 선택된 경로를 따라 트렐리스를 통해 트레이스 백 동작을 수행하여, 원래 인코딩되었던 최우도 데이터 스트링을 판정한다. 백 트랙 유닛(32)은 BCJR 디코딩 동안에 이용되지 않는다. 적어도 일 실시예에서, 백 트랙 유닛(32)은 BCJR 디코딩 동안에는 파워 다운(power down)된다. 지연 블록들(42, 44)은 이전의 트렐리스 단으로부터의 정규화된 메트릭을 트렐리스 처리의 다음 반복/단에서 이용하기 위해 지연/저장하는데 이용되는 저장 유닛이다. 알파-베타 스왑 유닛들(38, 40)은 이전의 트렐리스 단으로부터의 (지연 블록들(42, 44)에 저장된) 메트릭 및/또는 알파 및 베타 메모리들(34, 36)로부터의 메트릭들을 메트릭 연산 유닛들(20, 22, 24, 26, 28, 30)에서의 후속하는 처리를 위하여 제어가능하게 분배하는데 이용된다. 알파-베타 스왑 유닛들(38, 40)과, 메트릭 연산 유닛들(20, 22, 24, 26, 28, 30) 내의 다른 회로는 현재 이용되고 있는 FEC 코드에 기초하여 디코더 동작 동안에 컨트롤러에 의해 재구성될 수 있다. 출력 버퍼(OBUFF)(48)는 디코딩 동작들 동안에 생성된 경판정(hard decision)을 저장하고, 출력하도록 동작한다. 비터비 디코딩 동안에, 출력된 경판정들은 백 트랙 유닛(32)으로부터 수신된다. BCJR 디코딩 동안에(즉, 터보 및 LDPC 코드들을 디코딩하기 위하여), 경판정들은 메트릭 연산 유닛들(20, 22, 24, 26, 28, 30)에 의해 생성된다.
도 2는 본 발명의 실시예에 따른 예시적인 메트릭 연산 유닛(50)을 도시하는 블록도이다. 메트릭 연산 유닛(50)은, 예를 들어, 도 1의 통합 디코더(10) 내에서 이용될 수 있다. 통합 디코더 내에서 이용되는 메트릭 연산 유닛들(50)의 수는 이용되고 있는 특정 코드들에 의존할 것이다. 예시된 실시예에서, 32개의 메트릭 연산 유닛들이 이용된다. 예시된 바와 같이, 메트릭 연산 유닛(50)은 트렐리스 프로세서(TP)(52), LLR(log likelihood ratio) 계산기(54), 멀티플렉서(56), 스케일링 블록(58) 및 가산기(60)를 포함한다. TP(52)는 (터보 및 LDPC 코드들에 대한) BCJR 디코딩 동안에 알파 및 베타 메트릭들을 계산하고 (컨볼루션 코드들에 대한), 비터비 디코딩 동안에 경로 메트릭들을 계산하는데 이용된다. 생성된 메트릭들은 정규화를 위해 TP(52)로부터 정규화 유닛(예를 들어, 도 1의 정규화 블록(46))으로 전달될 수 있다. 예시된 실시예에서, 각각의 TP(52)는 대응하는 트렐리스의 8개 상태까지 처리할 수 있다. 예를 들어, 비터비 디코딩 동안에, 특정 TP(52)는 비터비 트렐리스의 대응하는 상태들에 대한 경로 메트릭들을 계산하기 위해 8개의(또는 그보다 적은) 가산-비교-선택(ACS) 유닛들로서 동시에 수행할 수 있다. 일반적으로, 임의의 수의 상태들을 갖는 트렐리스가 구현될 수 있다. 그외의 실시예들에서, 상이한 수의 상태들이 각각의 TP(52)에 의해 처리될 수 있다.
LLR 계산기(54)는 알파 및 베타 메트릭들에 기초하여 BCJR 디코딩 동안에 출력 신뢰성 값들을 계산한다. LLR 계산기(54)는 비터비 디코딩 동안에 이용되지 않는다. 적어도 일 실시예에서, LLR 계산기(54)는 비터비 디코딩 동작들 동안에 파워 다운된다. 도 1에 도시된 바와 같이, LLR 계산기(54)에 의해 생성된 출력된 LLR 값들은 후속하는 디코딩 반복들에 이용하기 위하여 RELS 메모리(14)에 전달될 수 있다. 스케일링 블록(58)은 LLR 계산기(54)로부터 수신된 신뢰성 값(예를 들어, LLR 값들)에 통상적으로 1보다 작은 (예를 들어, 적어도 일 실시예에서 0.75인) 스케일링 계수를 곱한다. 일부 경우들에서, 그러한 스케일링 계수를 이용함으로써 향상된 디코딩 결과가 달성될 수 있다. 멀티플렉서(56)는, SUM 메모리(12)(도 1 참조)에의 저장을 위해, LLR 계산기에 의해 출력된 신뢰성 값 또는 스케일링 블록(58)에 의해 출력된 스케일링된 신뢰성 값 중 어느 하나를 선택한다.
전술한 바와 같이, 도 1의 통합 디코더는 컨볼루션 코드들, 터보 코드들 및 LDPC 코드들을 이용하여 인코딩된 데이터를 디코딩하는데 이용될 수 있다. 적어도 일 실시예에서 통합 디코더는 IEEE 802.16e 표준, 제안된 IEEE 802.11n 표준 및 3GPP TS25.212 표준에 규정된 모든 FEC 코드을 이용하여 동작하도록 설계된다. IEEE 802.16e 표준은 컨볼루션 코드들, 터보 코드들 및 LDPC 코드들의 이용을 허용한다. 제안된 IEEE 802.11n 표준은 LDPC 코드들 및 컨볼루션 코드들의 이용을 규정한다. 3GPP TS25.212 표준은 컨볼루션 코드들 및 터보 코드들의 이용을 허용한다. 이하의 표 1 내지 3은 일 실시예에서의 다양한 포함된 코드들에 대한 코드 파라미터들, 요구되는 처리량 및 트렐리스 파라미터들을 규정한다. 표 1은 LDPC 코드들에 대응하고, 표 2는 컨볼루션 코드들에 대응하고, 표 3은 터보 코드들에 대응한다. 전술한 바와 같이, 도 1의 실시예에서, 각각의 트렐리스 프로세서는 단일의 클록 사이클에서 8개의 트렐리스 상태들까지 처리할 수 있다. 표 3에 나타낸 바와 같이, 이것은 지원된 터보 코드들 각각과 연관된 트렐리스 상태들의 수와 일치한다. 이 수는 또한 표 1의 지원된 LDPC 코드들 각각에서의 상태들의 수로 분할가능하다. 따라서, 예시된 실시예에서, 트렐리스 프로세서는 지원된 터보들 및 LDPC 코드들 대부분에 대해 단일의 클록 사이클 내에서 단일의 트렐리스 단을 처리할 수 있다.
Figure 112009077190254-pct00001
Figure 112009077190254-pct00002
표 2를 참조하면, IEEE 802.16e 표준(및 IEEE 802.11n 표준)에 규정된 지원된 컨볼루션 코드들 각각은 64의 트렐리스폭을 갖는 트렐리스를 이용한다. 따라서, 트렐리스의 하나의 단은 도시된 실시예에서 단일 클록 사이클 내에서 8개의 트렐리스 프로세서들에 의해 처리될 수 있다. 3GPP TS25.212 표준과 연관된 컨볼루션 코드들에 대해서, 트렐리스폭은 256이다. 따라서, 트렐리스의 하나의 단은 도시된 실시예에서 단일 클록 사이클 내에서 32개의 트렐리스 프로세서들 모두에 의해 처리될 수 있다. 지원된 표준들에 의해 규정된 처리량을 달성하기 위해서(표 1 내지 3 참조), 32개의 트렐리스 프로세서들이 병렬로 동작하도록 요구된다.
Figure 112009077190254-pct00003
도 3은 본 발명의 실시예에 따른 예시적인 트렐리스 프로세서(70)를 도시하는 블록도이다. 트렐리스 프로세서(70)는, 예를 들어, 도 2의 메트릭 연산 유닛(50) 내에서 이용될 수 있다. 트렐리스 프로세서(70)는 이전의 트렐리스 단(alpha 0_in 내지 alpha 15_in)로부터 입력 신뢰성 값들(lambda 0_in 내지 lambda 3_in) 및 메트릭들을 수신하고 이들을 이용하여 현재의 트렐리스 단(alpha 0_ou 내지 alpha 7_ou)에 대한 갱신된 메트릭들을 생성한다. 도 3에 도시된 바와 같이 트렐리스 프로세서(70)는 복수의 LLR2Lp 블록(72, 74, 76, 78); 감마 계산기(80); 감마 스왑 유닛(82); 복수의 ADD 블록(84); 알파(또는 베타) 스왑 유닛(86); 및 복수의 CMAX 블록들(88)을 포함한다. 예시된 실시예에서, 입력 신뢰성값들(lambda 0_in, lambda 1_in, lambda 2_in, lambda 3_in)은 통합 디코더 내의 배럴 시프터(예를 들어, 도 1에서의 배럴 시프터(16))로부터 LLR2Lp 블록들(72, 74, 76, 78)에 의해 수신된다. 그리고 나서, LLR2Lp 블록들(72, 74, 76, 78)과 감마 계산기(80)는 입력 신뢰성 값들을 이용하여 트렐리스 에지들 상의 모든 가능한 에지 메트릭들을 계산한다.
각각의 ADD 블록(84)은 디코딩 트렐리스에서의 하나의 상태에 대응한다. 전술한 바와 같이, 각각의 트렐리스 프로세서는 예시된 실시예에서 8개의 트렐리스 상태들을 처리하며, 따라서, 8개의 ADD 블록들(84)이 존재한다. 그외의 실시예들에서, 상이한 수의 상태들이 각각의 트렐리스 프로세서에 의해 처리될 수 있다. 각각의 ADD 블록(84)은 대응하는 상태로 들어오는 에지들에 대한 에지 메트릭들을, 에지들을 지나가는 경로들에 대한 대응하는 경로 메트릭들에 가산한다. 감마 스왑 유닛(82) 및 알파 스왑 유닛(86)은 적절한 에지 메트릭들과 경로 메트릭들을 ADD 블록들(84)에 제어가능하게 분배하는데 이용된다. 각각의 ADD 블록(84)은, 트렐리스에서의 계속되는 처리를 위해, 대응하는 트렐리스 상태에 대한 갱신된 경로 메트릭들을 수신하고, 그 상태에 대한 최상의 메트릭((alpha 0_ou 내지 alpha 7_ou)을 선택하는 대응하는 CMAX 블록(88)을 갖는다. 그리고 나서, 이러한 최상의 메트릭은 트렐리스 프로세서로부터 (예를 들어, 정규화 유닛으로) 출력된다. 각각의 트렐리스 상태에 대한 출력 메트릭들은 대응하는 LLR 계산 블록으로 출력되어 BCJR 디코딩 동안에 트렐리스를 통한 백원드 통과(backward passage)에 대한 신뢰성 값들을 계산하는데 이용될 수 있다.
도 4는 본 발명의 실시예에 따른 트렐리스 프로세서의 LLR2Lp 블록(예를 들어, 도 3의 LLRLp 블록(72)) 내의 예시적인 회로(90)를 도시하는 블록도이다. 도시된 바와 같이, 회로(90)는 인버터(92); 단항의 마이너스(unary minus)(94); 및 제1 및 제2 AND 게이트들(96, 98)을 포함할 수 있다. 회로(90)는 주어진 신뢰성값(lambda_in)을 갖는 비트가 1일 확률의 근사치(Lp1은 그러한 신뢰성 값의 로그의 근사치를 나타냄)와 주어진 비트가 0일 확률의 근사치(Lp0)를 연산한다.
도 5는 본 발명의 실시예에 따른 트렐리스 프로세서의 감마 계산기(예를 들어, 도 3의 감마 계산기(90)) 내의 예시적인 회로(110)를 도시하는 블록도이다. 도시된 바와 같이, 회로(110)는 복수의 가산기(112)와 복수의 멀티플렉서(114)를 포함할 수 있다. 회로(110)는 에지 메트릭(비터비 디코딩을 위한 경로 메트릭의 일부 또는 현재의 트렐리스 섹션에만 대응하는, BCJR 디코딩을 위한 알파 또는 베타 메트릭의 일부)의 모든 가능한 값들을 연산한다. 트렐리스의 주어진 에지에 대한 에지 메트릭 값들은 입력 신뢰성 값들과, 주어진 트렐리스 에지에 대응하는 메시지 및 패리티 비트의 값들에 기초하여 연산된다. 비트들의 모든 조합들은 하나의 트렐리스 섹션 내의 에지들에 대해 존재한다. 트렐리스 구조에 따라서, 일부(또는 모든) 조합들이 하나보다 많은 에지에 대해 반복된다. 에지 메트릭은 회로(110)의 디코더에서 연산된 다음에, 각각의 트렐리스 프로세서가 필요한 에지 메트릭들을 수신하도록 감마 스왑에서 재정렬된다.
도 6은 본 발명의 실시예에 따른 메트릭 정규화 유닛(예를 들어, 도 1의 정규화 블록(46)) 내의 예시적인 회로(130)를 도시하는 블록도이다. 도시된 바와 같이, 회로(130)는, 예를 들어, 최소값 유닛(132), 복수의 멀티플렉서(134) 및 복수의 가산기(136)를 포함할 수 있다. 정규화 프로세스는 다음과 같이 동작할 수 있다. 예를 들어, LDPC 코드들에 대해서, (SM_IN을 통해 수신된) 입력 메트릭 값들의 각각의 쌍에 대해서, 최소값이 구해지고, 각각의 입력 메트릭 값으로부터 감산된다. (트렐리스 폭에 따른) 터보 및 컨볼루션 코드들에 대해서는, 8, 64 또는 256 메트릭들의 각각의 그룹에 대해 최소값(256가지 경우에 대한 하나의 값)이 구해지고, 각각의 그룹 내의 각각의 메트릭 값으로부터 감산된다. 따라서, 최소값 유닛(132)은 모든 가능한 최소값들을 연산하고, 멀티플렉서(134)는 현재 동작 모드에 따라서 요구되는 최소값들을 선택하는데 이용되고, 가산기들(136)은 정규화된 메트릭값들을 획득하기 위해 입력 메트릭 값들로부터 최소값들을 감산하는데 이용된다.
도 7은 본 발명의 실시예에 따른 LLR 계산기(예를 들어, 도 2의 LLR 계산기(54)) 내의 예시적인 회로(150)를 도시하는 블록도이다. 도시된 바와 같이, 회로(150)는 복수의 가산기(152), 람다(lambda) 스왑 유닛(154), 복수의 최소값 유닛(156) 및 복수의 감산기(158)를 포함할 수 있다. 회로(150)에서 출력 신뢰성 값들을 연산하기 위하여 이하의 단계들이 수행된다. 먼저, 트렐리스의 각각의 에지에 대해서 알파 메트릭, 에지 메트릭 및 베타 메트릭의 합이 (예를 들어, 가산기들(152)을 이용하여) 구해진다. 다음으로, 결과적인 합들은 (트렐리스 에지에 대해 1개의 메시지 비트를 갖는 트렐리스들에 대한) 2개의 세트들 또는 (트렐리스 에지(예를 들어, IEEE 802.16e 터보 코드)에 대해 2개의 메시지 비트들을 갖는 트렐리스들에 대한) 4개의 세트들로 그룹화된다. 2개의 세트들로 그룹화되는 경우, 제1 세트는 트렐리스의 에지에 대한 메시지 비트값이 0인 에지들의 세트이고, 제2 세트는 트렐리스의 에지에 대한 메시지 비트값이 1인 에지들의 세트이다. 4개의 세트들로 그룹화되는 경우, 제1 세트는 메시지 비트 1이 0이고(비트 2는 문제되지 않음), 제2 세트는 메시지 비트 1이 1이며, 제3 세트는 메시지 비트 2가 0이며, 제4 세트는 메시지 비트 2가 1인 에지들의 세트이다. 다음으로, 각각의 세트에 대해 (예를 들어, 최소값 유닛들(156)을 이용하여) 최소 메트릭 값이 구해진다. 그리고 나서, 각각의 메시지 비트에 대해, 비트가 0인 세트의 최소 메트릭 값은 비트가 1인 세트의 최소 메트릭 값으로부터 (예를 들어, 감산기들(158)을 이용하여) 감산되어야 한다. 감산의 결과는 갱신된 신뢰성 값(lambdaxxxx)으로서 출력된다.
도 8은 본 발명의 실시예에 따른 컨볼루션 코드 디코딩 동안에 통합 디코더를 동작시키는데 이용되는 예시적인 방법(170)을 설명하는 흐름도이다. 도시된 바와 같이, 먼저 신뢰성 값들이 메모리(예를 들어, 도 1의 SUM 메모리(12))로부터 검색되고, 통합 디코더의 다양한 트렐리스 프로세서들에 전달된다(블록 172). 코드 레이트(code rate) 1/2을 갖는 컨볼루션 코드에 대하여 각각의 트렐리스 프로세서에 2개의 신뢰성 값들이 전달된다. 코드 레이트 1/3을 갖는 컨볼루션 코드에 대하여 각각의 트렐리스 프로세서에 3개의 신뢰성 값들이 전달된다. 그리고 나서, 각각의 트렐리스 프로세서는 수신된 신뢰성 값들을 이용하여 현재 트렐리스 단의 대응하는 단들에 대한 새로운 경로 메트릭들을 계산한다(블록 174). 그리고 나서, 새로운 경로 메트릭들은 정규화 유닛으로 전달되어 정규화된다(블록 176).
그리고 나서, 정규화된 경로 메트릭들은 나중에 이용하기 위해 알파 및 베타 메모리들에 저장된다(블록 178). 또한 정규화된 경로 메트릭들은 지연 블록들에 전달된다(블록 180). 정규화된 경로 메트릭들은 지연 블록들로부터 후속하는 트렐리스 단를 위한 경로 메트릭들의 계산을 위해 적절한 트렐리스 프로세서들로 전달된다(블록 182). 알파-베타 스왑 유닛들은 정규화된 경로 메트릭들을 지연 유닛들로부터 트렐리스 프로세서들로 적절하게 보내는데 이용된다. 그리고 나서, 이 프로세스는 트렐리스의 끝에 도달할 때까지 반복된다(블록 184). 이 시점에서, 최상의 총체적인 메트릭(통상적으로 최저 메트릭)을 갖는 트렐리스를 통한 단일 경로가 선택된다(블록 186). 그리고 나서, 백 트랙 유닛은 선택된 경로를 따라 트렐리스를 통해 트레이스 백(trace back)하여 디코딩된 경판정을 생성하는데 이용된다(블록 188), 그리고 나서, 디코딩된 경판정은 출력 버퍼에 전달될 수 있다(블록 190). 전술한 바와 같이, 통합 디코더는 컨볼루션 코드 디코딩 동안에 메트릭 연산 유닛들 내의 LLR 계산기들을 이용하지 않는다. 적어도 일 실시예에서, LLR 계산기들은 컨볼루션 코드 디코딩 동안에 파워 다운되어 에너지를 보존한다.
도 9는 본 발명의 실시예에 따른 터보 및 LDPC 코드 디코딩 동안에 통합 디코더를 동작시키는데 이용되는 예시적인 방법(200)을 설명하는 흐름도이다. 적어도 일 실시예에서, 인코딩된 데이터가 컨볼루션 코드, 터보 코드 또는 LDPC 코드를 이용하여 인코딩되었는지의 여부에 대해 판정이 우선 이루어질 수 있다. 데이터가 컨볼루션 코드를 이용하여 인코딩되었다면, 도 8의 방법(170)과 같은 절차가 후속할 수 있다. 데이터가 터보 코드나 LDPC 코드를 이용하여 인코딩되었다면, 도 9의 방법(200)과 같은 절차가 후속할 수 있다. 전과 같이, 신뢰성 값들이 메모리(예를 들어, 도 1의 SUM 메모리(12))로부터 우선 검색되고, 통합 디코더의 다양한 트렐리스 프로세서들에 전달된다(블록 202). 3GPP TS25.212 표준의 터보 코드들이 이용되고 있는 경우, 3개의 신뢰성 값들(2개는 진성(intrisic), 한 개는 외인성(extrinsic))과 하나의 쓰기 값(외인성)이 트렐리스 프로세서에 대해 검색된다. IEEE 802.16e 표준의 터보 코드들이 이용되고 있는 경우, 6개의 신뢰성 값들(4개는 진성, 2개는 외인성)과 2개의 쓰기 값들(외인성)이 트렐리스 프로세서에 대해 검색된다. LDPC 코드들이 이용되고 있는 경우, 8개의 신뢰성 값들(4개는 외인성, 4개는 합계(sum))과 8개의 쓰기 값들(4개는 외인성, 4개는 합계)이 트렐리스 프로세서에 대해 검색된다. BCJR 디코딩을 수행하기 위하여, 트렐리스 프로세서들이 2개의 그룹들로 분할된다. 통합 디코더의 좌측 상의 트렐리스 프로세서들은 알파 (포워드) 메트릭들을 계산하는데 이용되고(블록 204), 우측 상의 트렐리스 프로세서들은 베타 (백워드) 메트릭을 계산하는데 이용된다(블록 206). 적어도 일 실시예에서, 각각의 그룹에 16개의 트렐리스 프로세서들이 존재한다. 트렐리스 프로세서를 분할하는 그외의 구성들이 대안적으로 이용될 수 있다. 알파 및 베타 메트릭들은 일단 생성되면 정규화되기 위해 정규화 유닛으로 전달된다(블록 208).
그리고 나서, 정규화 유닛에 의해 출력된 정규화된 알파 및 베타 메트릭들은 알파 및 베타 메모리들에 저장된다(블록 210). 정규화된 알파 및 베타 메트릭들은 또한 지연 블록들에 전달될 수 있다(블록 212). 정규화된 알파 및 베타 메트릭들은 지연 블록들로부터 다음번 트렐리스 단에 대한 메트릭들을 계산하는 적절한 트렐리스 프로세서들로 전달된다(블록 214). 알파-베타 스왑 유닛들은 정규화된 알파 및 베타 메트릭들을 트렐리스 프로세서들에 적절하게 분배하는데 이용될 수 있다. 그리고 나서, LLR 계산기들에서의 출력 신뢰성 값들의 계산이 알파 및 베타 메모리들로부터 검색된 메트릭들을 이용하여 개시된다(블록 216). 그리고 나서, 상기 프로세스는 적당한 반복 횟수에 도달하거나 이를 초과할 때까지 반복된다(블록 218). 적어도 일 실시예에서, 블록들(202 내지 218)로 나타낸 프로세스는 LDPC 코드들에 대하여 대략 10회 내지 15회, 터보 코드들에 대하여 4회 내지 8회 반복된다. LLR 계산기들에서 생성된 경판정들은 출력 버퍼에 전달된다(블록 220). 전술한 바와 같이, 통합 디코더는 터보 및 LDPC 기반 디코딩 동안에 백 트랙 유닛(32)을 이용하지 않는다. 적어도 일 실시예에서, 백 트랙 유닛(32)은 터보 및 LDPC 코드 디코딩 동안에 파워 다운되어 에너지를 보존한다.
전술한 바와 같이, 도 1의 통합 디코더(10)는 상이한 FEC 코드들을 이용하여 동작하도록 가동 중에 재구성될 수 있다. 디코더(10)를 재구성하기 위해서, 제어 신호들이 트렐리스 프로세서들 내의 좌측 알파-베타 스왑 유닛(38), 우측 알파-베타 스왑 유닛(40) 및 알파, 베타 및 감마 스왑 유닛에 전달될 수 있다(도 3 참조). 이들 스왑 유닛들은, 예를 들어, 크로스바(crossbar) 스위치들로서 구현될 수 있다. 적어도 일 실시예에서, 다양한 지원된 코드들과 연관된 동작 모드들을 식별하기 위하여 모드 번호들이 할당된다. 모드 번호들은 다양한 스왑 유닛들을 제어하는 방법을 결정하는데 이용될 수 있다. 일 실시예에서, 모드 번호들은 다음과 같이 할당된다.
FEC 코드 모드 번호
IEEE 802.16e, 컨볼루션 코드 1
IEEE 802.16e, 터보 코드 2
3GPP TS25,212, 컨볼루션 코드, R=1/2 3
3GPP TS25,212, 컨볼루션 코드, R=1/3 4
3GPP TS25,212, 터보 코드 5
IEEE 802.11n, 컨볼루션 코드 6
이하의 표 4 내지 9는 본 발명의 일 실시예에 따른 다양한 동작 모드들에 대해 알파-베타 스왑 유닛들 및 알파, 베타 및 감마 스왑 유닛들이 제어되는 방법을 예시한다. 이 표들에서, 제1 열(column)은 각각의 행이 대응하는 모드 번호를 나타낸다. 도시된 바와 같이, 모드 번호들 1 내지 6이 나타나 있다. MN으로 시작하는 행들은 각각 연관된 스왑 유닛의 특정 입력들의 특정 세트를 나열하고 있고, 각각의 MN 행에 후속하는 행들은 대응하는 동작 모드에 대해 이들 입력들이 연결될, 연관된 스왑 유닛의 출력들을 식별한다. 표 4는 좌측 알파-베타 스왑 유닛에 대한 스케줄이다. 표 5는 우측 알파-베타 스왑 유닛에 대한 스케줄이다. 표 6은 알파 메트릭들을 생성하는 트렐리스 프로세서들 내의 알파 스왑 유닛들(예시된 실시예에서는 좌측)에 대한 스케줄이다. 표 7은 베타 메트릭을 생성하는 트렐리스 프로세서들 내의 베타 스왑 유닛들(예시된 실시예에서는 우측)에 대한 스케줄이다. 표 8은 알파 메트릭을 생성하는 트렐리스 프로세서들 내의 감마 스왑 유닛들(좌측)에 대한 스케줄이다. 표 9는 베타 메트릭을 생성하는 트렐리스 프로세서들 내의 감마 스왑 유닛들(우측)에 대한 스케줄이다.
표 4 내지 9에서, 지원된 LDPC 코드들에 대해서는 스왑 스케줄들이 주어져 있지 않다. 이것은 이들 코드들에 대한 스왑 스케줄들은 매우 간단하기 때문이다. 예를 들어, 트렐리스 프로세서 내의 알파, 베타 및 감마 스왑 유닛들에 대하여, i번째 입력은 단순히 LDPC 코드에 대한 i번째 출력에 연결된다. 좌측 및 우측 알파-베타 스왑 유닛들에 대하여, i번째 입력이 (i mod 128) 번째 출력에 연결된다.
Figure 112009077190254-pct00004
Figure 112009077190254-pct00005
Figure 112009077190254-pct00006
Figure 112009077190254-pct00007
Figure 112009077190254-pct00008
Figure 112009077190254-pct00009
Figure 112009077190254-pct00010
Figure 112009077190254-pct00011
Figure 112009077190254-pct00012
Figure 112009077190254-pct00013
본 발명의 기법들과 구조들은 각종의 상이한 형태들 중 임의의 것으로 구현될 수 있다. 통합 디코더는 예를 들어, 독립형 컴포넌트(예를 들어, 디코더 칩 등)으로 구현될 수 있다. 디코더는 무선 통신 디바이스와 같은 더 큰 시스템의 일부로서 구현될 수도 있다. 예를 들어, 본 발명의 특징들은 무선 기능을 갖는 랩톱, 팜톱, 데스크톱 및 태블릿 컴퓨터; 무선 기능을 갖는 PDA들(personal digitla assistants); 셀룰러 전화기들 및 그외의 핸드헬드 무선 통신기들; 페이저들(pagers); 위성 통신기들; 무선 기능을 갖는 카메라; 무선 기능을 갖는 오디오/비디오 디바이스들; 네트워크 인터페이스 카드(NIC)들 및 기타 다른 네트워크 인터페이스 구조들; 기지국들; 무선 액세스 포인트들; 및/또는 기타 다른 형태들로 실시될 수 있다.
전술한 상세한 설명에서, 본 발명의 다양한 특징들은, 개시내용의 간소화를 위해 하나 이상의 개별적인 실시예들로 함께 그룹화되어 있다. 개시내용의 이러한 방법은, 청구된 발명이 각각의 청구항에 명시적으로 기재된 것보다 많은 특징들을 요구한다는 의도를 반영하는 것으로 해석되지 않아야 한다. 그보다는, 이하의 특허청구범위가 반영하는 바와 같이, 본 발명의 양태들은 각각의 개시된 실시예의 모든 특징들 내에 있을 수 있다.
본 발명은 특정 실시예와 관련하여 설명하였지만 본 기술분야의 당업자라면 잘 이해하듯이 본 발명의 사상 및 범주로부터 벗어나지 않고 변경들 및 변형들이 가해질 수 있음은 물론이다. 그러한 변경들 및 변형들은 본 발명 및 첨부된 특허청구범위의 영역 및 범주 내에 있는 것으로 간주된다.

Claims (16)

  1. 통합 디코더(unified decoder)로서,
    메트릭 연산 유닛들의 제1 그룹 ― 각각의 메트릭 연산 유닛은 트렐리스(trellis) 프로세서 및 신뢰성 값(reliabilities) 계산기를 포함하고, 상기 트렐리스 프로세서에 의해 생성된 경로 메트릭(metrics)은 상기 신뢰성 값 계산기에 직접 연결됨 ―;
    메트릭 연산 유닛들의 제2 그룹 ― 각각의 메트릭 연산 유닛은 트렐리스 프로세서 및 신뢰성 값 계산기를 포함하고, 상기 트렐리스 프로세서에 의해 생성된 경로 메트릭은 상기 신뢰성 값 계산기에 직접 연결됨 ―;
    디코딩 트렐리스의 상태들과 연관된 처리를 수행하는, 메트릭 연산 유닛들의 상기 제1 그룹 내의, 트렐리스 프로세서들의 제1 그룹 ― 상기 트렐리스 프로세서들의 제1 그룹은, 상기 통합 디코더가 컨볼루션 코드 디코딩을 수행하고 있는 경우, 경로 메트릭을 계산하고, 상기 통합 디코더가 터보 코드 디코딩과 LDPC(low density parity check) 코드 디코딩을 수행하고 있는 경우, 알파 (포워드) 메트릭을 계산함 ―;
    디코딩 트렐리스의 상태들과 연관된 처리를 수행하는, 메트릭 연산 유닛들의 상기 제2 그룹 내의, 트렐리스 프로세서들의 제2 그룹 ― 상기 트렐리스 프로세서들의 제2 그룹은, 상기 통합 디코더가 컨볼루션 코드 디코딩을 수행하고 있는 경우, 경로 메트릭을 계산하고, 상기 통합 디코더가 터보 코드 디코딩과 LDPC 코드 디코딩을 수행하고 있는 경우, 베타 (백워드) 메트릭을 계산함 ―;
    상기 통합 디코더가 터보 코드 디코딩과 LDPC 코드 디코딩을 수행하고 있는 경우, 알파 및 베타 메트릭을 이용하여 출력 신뢰성 값들을 계산하는, 메트릭 연산 유닛들의 상기 제1 및 제2 그룹 내의, 다수의 신뢰성 값 계산기;
    상기 트렐리스 프로세서들에 의해 생성된 메트릭을 정규화하는 정규화 유닛;
    정규화된 메트릭을, 다음 트렐리스 단을 처리하는데 이용하는 상기 제1 그룹 내의 트렐리스 프로세서들에 제어가능하게 분배하는 제1 알파-베타 스왑(swap) 유닛; 및
    정규화된 메트릭을, 다음 트렐리스 단을 처리하는데 이용하는 상기 제2 그룹 내의 트렐리스 프로세서들에 제어가능하게 분배하는 제2 알파-베타 스왑 유닛을 포함하고,
    각각의 메트릭 연산 유닛은 멀티플렉서, 스케일링 블록, 및 가산기를 포함하고, 상기 가산기는 상기 신뢰성 값 계산기로부터의 신뢰성 값 출력을 배럴 시프터로부터의 입력 신뢰성 값에 가산하여 가산기 출력을 형성하고, 상기 스케일링 블록은 상기 가산기의 출력에 스케일링 계수를 곱하여 스케일링된 신뢰성 값 출력을 형성하고, 상기 스케일링된 신뢰성 값 출력 및 상기 신뢰성 값 계산기로부터의 신뢰성 값 출력들은 상기 멀티플렉서의 입력들이며, 상기 멀티플렉서는 입력 신뢰성 값 메모리에 대하여 상기 스케일링된 신뢰성 값 출력 또는 상기 신뢰성 값 계산기로부터의 신뢰성 값 출력들 중 하나를 선택하는, 통합 디코더.
  2. 제1항에 있어서,
    트렐리스 프로세서들의 상기 제1 그룹과 트렐리스 프로세서들의 상기 제2 그룹은 동일한 수의 트렐리스 프로세서들을 포함하는 통합 디코더.
  3. 제2항에 있어서,
    트렐리스 프로세서들의 상기 제1 그룹과 트렐리스 프로세서들의 상기 제2 그룹은 각각 16개의 트렐리스 프로세서들을 포함하는 통합 디코더.
  4. 제1항에 있어서,
    트렐리스 프로세서들의 상기 제1 및 제2 그룹의 트렐리스 프로세서들은 각각 8개의 트렐리스 상태들을 동시에 처리할 수 있는 통합 디코더.
  5. 제1항에 있어서,
    상기 통합 디코더가 컨볼루션 코드 디코딩을 수행하고 있는 경우에 경로 메트릭을 저장하고, 상기 통합 디코더가 터보 코드 디코딩과 LDPC 코드 디코딩을 수행하고 있는 경우에 알파 메트릭을 저장하는 알파 메모리; 및
    상기 통합 디코더가 컨볼루션 코드 디코딩을 수행하고 있는 경우에 경로 메트릭을 저장하고, 상기 통합 디코더가 터보 코드 디코딩과 LDPC 코드 디코딩을 수행하고 있는 경우에 베타 메트릭을 저장하는 베타 메모리
    를 더 포함하는 통합 디코더.
  6. 제5항에 있어서,
    상기 알파 및 베타 메모리들은 상기 제1 및 제2 알파-베타 스왑 유닛들에 연결되어, 상기 통합 디코더가 터보 코드 디코딩 및 LDPC 코드 디코딩을 수행하고 있는 경우 출력 신뢰성 값들을 계산하는데 이용되는 상기 신뢰성값 계산기들에 알파 및 베타 메트릭을 분배하는 통합 디코더.
  7. 제5항에 있어서,
    상기 알파 및 베타 메모리들에 연결되어, 상기 통합 디코더가 컨볼루션 코드 디코딩을 수행하고 있는 경우에, 선택된 경로를 따라 트렐리스를 통해 역방향으로 트레이스하여 경판정(hard decision) 데이터를 생성하는 백 트랙(back track) 유닛을 더 포함하는 통합 디코더.
  8. 제7항에 있어서,
    상기 통합 디코더가 터보 코드 디코딩 및 LDPC 코드 디코딩을 수행하고 있는 경우에 상기 백 트랙 유닛은 파워 다운되는 통합 디코더.
  9. 제1항에 있어서,
    상기 제1 및 제2 알파-베타 스왑 유닛들에 대한 정규화된 메트릭의 입력을 지연시키기 위한, 상기 정규화 유닛과 상기 제1 및 제2 알파-베타 스왑 유닛들의 입력들 사이의 제1 지연 유닛; 및
    상기 제1 및 제2 알파-베타 스왑 유닛들에 대한 정규화된 메트릭의 입력을 지연시키기 위한, 상기 정규화 유닛과 상기 제1 및 제2 알파-베타 스왑 유닛들의 그외의 입력들 사이의 제2 지연 유닛
    을 더 포함하는 통합 디코더.
  10. 제1항에 있어서,
    상기 통합 디코더가 컨볼루션 코드 디코딩을 수행하고 있는 경우 상기 신뢰성 값 계산기들은 파워 다운되는 통합 디코더.
  11. 삭제
  12. 제1항에 있어서,
    각각의 메트릭 연산 유닛은, 컨볼루션 코드 디코딩 중에 상태 메트릭을 생성하고 터보 코드 디코딩과 LDPC 코드 디코딩 중에 경판정 및 중간 신뢰성 값을 생성하기 위해, 입력 신뢰성 값들, 이전 트렐리스 단으로부터의 알파 메트릭, 및 베타 메트릭을 수신하도록 구성되는 통합 디코더.
  13. 제1항에 있어서,
    트렐리스 프로세서들의 상기 제1 그룹 및 트렐리스 프로세서들의 상기 제2 그룹의 각각의 트렐리스 프로세서는 트렐리스 에지들 상의 에지 메트릭의 값을 계산하기 위한 감마 계산기를 포함하는 통합 디코더.
  14. 제1항에 있어서,
    복수의 가산 블록에 적절한 에지 메트릭과 경로 메트릭을 제어가능하게 분배하기 위해, 트렐리스 프로세서들의 상기 제1 그룹의 각각의 트렐리스 프로세서는 감마 스왑 유닛 및 알파 스왑 유닛을 포함하고, 트렐리스 프로세서들의 상기 제2 그룹의 각각의 트렐리스 프로세서는 감마 스왑 유닛 및 베타 스왑 유닛을 포함하는 통합 디코더.
  15. 제14항에 있어서,
    각각의 알파 스왑 유닛, 베타 스왑 유닛, 및 감마 스왑 유닛은 컨볼루션 코드 디코딩, 터보 코드 디코딩, 또는 LDPC 코드 디코딩을 수행하기 위해 상기 통합 디코더를 재구성하기 위한 복수의 동작 모드를 포함하는 통합 디코더.
  16. 제1항에 있어서,
    트렐리스 프로세서들의 상기 제1 그룹 및 트렐리스 프로세서들의 상기 제2 그룹의 각각의 트렐리스 프로세서의 출력들의 일부가 신뢰성 값 계산기의 입력들에 직접 연결되는 통합 디코더.
KR1020097026092A 2007-06-14 2007-06-14 컨볼루션, 터보 및 ldpc 코드용 통합 디코더 KR101154561B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2007/000328 WO2008153436A1 (en) 2007-06-14 2007-06-14 Unified decoder for convolutional, turbo, and ldpc codes

Publications (2)

Publication Number Publication Date
KR20100020962A KR20100020962A (ko) 2010-02-23
KR101154561B1 true KR101154561B1 (ko) 2012-06-11

Family

ID=39319633

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097026092A KR101154561B1 (ko) 2007-06-14 2007-06-14 컨볼루션, 터보 및 ldpc 코드용 통합 디코더

Country Status (5)

Country Link
US (1) US8127214B2 (ko)
EP (1) EP2158682A1 (ko)
KR (1) KR101154561B1 (ko)
CN (1) CN101682336B (ko)
WO (1) WO2008153436A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150096340A (ko) * 2014-02-14 2015-08-24 삼성전자주식회사 터보 코드들과 컨볼루셔널 코드들의 로그 복잡도 리스트 디코딩을 위한 시스템 및 방법들

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8286048B1 (en) 2008-12-30 2012-10-09 Qualcomm Atheros, Inc. Dynamically scaled LLR for an LDPC decoder
US8190962B1 (en) 2008-12-30 2012-05-29 Qualcomm Atheros, Inc. System and method for dynamic maximal iteration
US8683119B2 (en) * 2010-03-15 2014-03-25 Cleversafe, Inc. Access control in a dispersed storage network
WO2012032371A1 (en) 2010-09-08 2012-03-15 Agence Spatiale Europeenne Flexible channel decoder.
US9513989B2 (en) * 2013-03-26 2016-12-06 Seagate Technology Llc Priori information based post-processing in low-density parity-check code decoders
US9281840B2 (en) * 2013-12-30 2016-03-08 Saankhya Labs Private Limited System and method for multi standard programmable LDPC decoder
TWI565246B (zh) * 2015-01-12 2017-01-01 晨星半導體股份有限公司 迴旋編碼的解碼方法
WO2017023028A1 (ko) * 2015-07-31 2017-02-09 고려대학교 산학협력단 터보 복호기 및 ldpc 복호기를 위한 다중 복호 방법 및 그 장치
US10084486B1 (en) * 2017-09-29 2018-09-25 Intel Corporation High speed turbo decoder
TWI730582B (zh) * 2020-01-07 2021-06-11 瑞昱半導體股份有限公司 具有多模式的資料移位運算裝置及方法
CN117296252A (zh) * 2021-02-25 2023-12-26 华为技术有限公司 共模解码电路、数字基带、射频收发机和解码方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0120421A2 (de) * 1983-03-24 1984-10-03 Henkel Kommanditgesellschaft auf Aktien Verwendung eines pastösen Reinigungsmittels in Geschirrspülmaschinen
US20060294446A1 (en) * 2005-06-24 2006-12-28 Chun Anthony L Techniques for reconfigurable decoder for a wireless system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189126B1 (en) * 1998-11-05 2001-02-13 Qualcomm Incorporated Efficient trellis state metric normalization
US6304996B1 (en) * 1999-03-08 2001-10-16 General Electric Company High-speed turbo decoder
US6539367B1 (en) * 2000-05-26 2003-03-25 Agere Systems Inc. Methods and apparatus for decoding of general codes on probability dependency graphs
US6865710B2 (en) * 2000-09-18 2005-03-08 Lucent Technologies Inc. Butterfly processor for telecommunications
US6865711B2 (en) * 2000-12-15 2005-03-08 Conexant Systems, Inc. System of and method for decoding trellis codes
EP1398881A1 (en) 2002-09-05 2004-03-17 STMicroelectronics N.V. Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
KR20050042869A (ko) * 2003-11-04 2005-05-11 삼성전자주식회사 구현이 간단한 map디코더 및 그의 디코딩 방법
US7246298B2 (en) 2003-11-24 2007-07-17 Via Technologies, Inc. Unified viterbi/turbo decoder for mobile communication systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0120421A2 (de) * 1983-03-24 1984-10-03 Henkel Kommanditgesellschaft auf Aktien Verwendung eines pastösen Reinigungsmittels in Geschirrspülmaschinen
US20060294446A1 (en) * 2005-06-24 2006-12-28 Chun Anthony L Techniques for reconfigurable decoder for a wireless system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150096340A (ko) * 2014-02-14 2015-08-24 삼성전자주식회사 터보 코드들과 컨볼루셔널 코드들의 로그 복잡도 리스트 디코딩을 위한 시스템 및 방법들
KR102286100B1 (ko) 2014-02-14 2021-08-06 삼성전자주식회사 터보 코드들과 컨볼루셔널 코드들의 로그 복잡도 리스트 디코딩을 위한 시스템 및 방법들

Also Published As

Publication number Publication date
CN101682336A (zh) 2010-03-24
WO2008153436A1 (en) 2008-12-18
KR20100020962A (ko) 2010-02-23
EP2158682A1 (en) 2010-03-03
CN101682336B (zh) 2013-04-24
US8127214B2 (en) 2012-02-28
US20100146360A1 (en) 2010-06-10

Similar Documents

Publication Publication Date Title
KR101154561B1 (ko) 컨볼루션, 터보 및 ldpc 코드용 통합 디코더
US7895497B2 (en) Apparatus and method using reduced memory for channel decoding in a software-defined radio system
US7571369B2 (en) Turbo decoder architecture for use in software-defined radio systems
Tsatsaragkos et al. A reconfigurable LDPC decoder optimized for 802.11 n/ac applications
US7984368B2 (en) Method and system for increasing decoder throughput
Li et al. 1.5 Gbit/s FPGA implementation of a fully-parallel turbo decoder designed for mission-critical machine-type communication applications
JP2001024521A (ja) ターボデコーダ
US7802170B2 (en) Unified stopping criteria for binary and duobinary turbo decoding in a software-defined radio system
Parhi An improved pipelined MSB-first add-compare select unit structure for Viterbi decoders
US20070124656A1 (en) Generic maximum aposteriori probability decoder for use in software-defined radio systems
US6868518B2 (en) Look-up table addressing scheme
Wong et al. Turbo decoder using contention-free interleaver and parallel architecture
US20030091129A1 (en) Look-up table index value generation in a turbo decoder
US6886127B2 (en) Implementation of a turbo decoder
Shr et al. A 6.6 pj/bit/iter radix-16 modified log-MAP decoder using two-stage ACS architecture
US8775914B2 (en) Radix-4 viterbi forward error correction decoding
Tsai et al. A memory-reduced log-MAP kernel for turbo decoder
US8699396B2 (en) Branch metrics calculation for multiple communications standards
Al-Khayat et al. Area and throughput optimized ASIP for multi-standard turbo decoding
Song et al. The implementation of turbo decoder on DSP in W-CDMA system
Zhang et al. Reduced-memory forward-backward check node processing architecture for non-binary LDPC decoding
Zhan et al. A memory reduced decoding scheme for double binary convolutional turbo code based on forward recalculation
Hashemipour-Nazari et al. Pipelined Architecture for Soft-Decision Iterative Projection Aggregation Decoding for RM Codes
Chen et al. High-throughput dual-mode single/double binary MAP processor design for wireless WAN
Jackuline et al. A new architecture for the generation of picture based CAPTCHA: Double binary convolutional turbo decoder using low power memory reduced traceback MAP decoding

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150529

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160527

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee