KR20210093243A - 연속 제거 리스트 디코더를 위한 하드웨어 복잡성 감소 기술 - Google Patents
연속 제거 리스트 디코더를 위한 하드웨어 복잡성 감소 기술 Download PDFInfo
- Publication number
- KR20210093243A KR20210093243A KR1020217013512A KR20217013512A KR20210093243A KR 20210093243 A KR20210093243 A KR 20210093243A KR 1020217013512 A KR1020217013512 A KR 1020217013512A KR 20217013512 A KR20217013512 A KR 20217013512A KR 20210093243 A KR20210093243 A KR 20210093243A
- Authority
- KR
- South Korea
- Prior art keywords
- path
- paths
- candidate
- surviving
- candidate paths
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명은 연속 제거 리스트 디코더(SCL; successive cancellation list decoders)를 위한 하드웨어 복잡도 감소 방법을 개시한다. SCL 디코딩의 경로 프루닝 단계에서, 2L개의 후보 경로들 중 가장 작은 경로 메트릭들을 가진 L개의 경로들은 기존 SCL 알고리즘에서와 같이 생존 후보 경로로 선택된다. 또한, L 개의 생존 후보 경로들의 경로 인덱스들은 정렬기 모듈의 출력에서 인덱스들에 따라 정렬된 방식으로 제공된다. 경로 프루닝 후 L-투-1 멀티플렉서 대신 L(L/2+1)-투-1 멀티플렉서가 배포되어 경로의 전용 레지스터에 저장된 모든 필수 요소의 복사 동작들을 수행한다.
Description
본 발명은 통신 분야 및 특히 폴라 코드(polar code)에 대한 디코더의 아키텍처에 관한 것이다.
폴라 코딩(Polar coding)은 Erdal Arkan에 의해 대칭 바이너리-입력 디스크리트 메모리리스 채널(B-DMC; binary-input discrete memoryless channel)에 대해 Shannon의 채널 용량을 달성하는 것으로 입증된 선형 블록 코딩(linear block coding) 방법입니다.
폴라 코드의 블록 길이는 N = 2n으로 표시되며 여기서 n은 양의 정수이다. 길이가 N 인 코딩되지 않은 비트 벡터(uncoded bit vector)는 정보 비트와 고정 비트로 구성된다. 정보 비트 수는 K로 표시된다. 고정된 비트(frozen bit) 수는 N-K로 제공된다. 코드율(code rate)은 R=K/N으로 표시된다.
일반 N의 경우, 폴라 코드들의 인코딩 동작(encoding operation)은 다음과 같이 벡터-메트릭스 곱셈 형식(vector-matrix multiplication form)으로 작성할 수 있다.
x = uGN
생성기 메트릭스(generator matrix), GN은 GN = BNFⓧm으로 정의된다. 여기서
그리고, Fⓧm은 커널 메트릭스(kernel matrix) F의 m 번째 크로네커 파워(Kronecker power)이다. 메트릭스 BN 은 길이가 N 인 벡터에 대한 비트-리버설 메트릭스(bit-reversal matrix)이다. 정수 k ∈ {0,. . . , N-1}는 (i0, . . . , in-1)으로 표시되며, 길이 N의 벡터 a와 b의 요소는 a = bBN이면 a(i0,...,in-1) = b(in-1,...,i0)의 관계를 가진다. 폴라 코드는 비트-리버설 동작(bit-reversal operation) 유무에 관계없이 정의할 수 있다.
폴라 코드 구성의 경우 비트 채널들의 신뢰성이 결정된다. 가장 신뢰할 수 있는 K 채널들은 K 정보 비트들을 위해 예약되어 있다. 알려진 비트 값들은 나머지 N-K 고정 비트 채널(frozen bit channel)들에 할당된다. 코딩되지 않은 비트 벡터(uncoded bit vector)의 정보 비트 위치(Information bit location)들은 집합 A의 요소이다. 코딩되지 않은 비트 벡터의 고정된 비트 위치(Frozen bit location)들은 집합 Ac의 요소이다.
폴라 코드들을 디코딩하기 위해 여러 디코딩 방법을 사용할 수 있다. 디코딩 방법의 예는 연속 제거(SC; Successive Cancellation) 및 연속 제거 리스트(SCL; Successive Cancellation List) 디코딩이다.
SC는 비트들이 한 번에 하나씩 순차적으로 디코딩되는 저 복잡도 알고리즘이다. SC 디코더는 채널 관찰 및 고정된 비트 위치들을 입력으로 사용하고 비트 추정치(bit estimate)들을 계산한다. 채널 관찰들은 하드 결정(hard decision)(비트들)들 또는 소프트 결정(soft decision)들에서 취할 수 있다. 예시적인 실시 예에서, 소프트 결정 형태는 로그 우도비(LLR; log-likelihood ratio)이며, 다음과 같이 정의된다.
SC 디코딩에서 비트 결정(bit decision)들은 다음 의사 코드(pseudocode)에 따라 이루어진다.
for i=0 to N-1 do
else
end
end
여기서, 는 i 번째 코딩되지 않은 비트(uncoded bit)를 나타내고, 는 디코더 출력에서 에 대한 비트 추정을 나타내고, 는 편광된 i 번째 비트 채널(polarized i-th bit channel)의 조건부 채널 전환 확률(conditional channel transition probability)이다. 우도 함수(likelihood function) 들은 SC 디코딩에서 순차적으로 계산된다.
SC 디코더는 복잡성 순서(complexity order) O(Nlog2N)를 갖는다. SC 디코더의 완전한 병렬 구현은 2N-2의 레이턴시(latency)를 갖는다.
SCL 디코딩 알고리즘은 SC 디코딩 알고리즘을 기초한다. SCL 디코더는 SC 디코더보다 더 나은 오류 성능을 달성하면서 SC 디코더보다 더 복잡하다.
SCL 디코더 구현의 스토리지 요소(Storage element)들은 L개의 경로들 각각에 대한 중간 LLR 값(intermediate LLR value)들, 디코된 비트(decoded bit)들 및 부분 합계(partial-sum)들을 저장하는 데 사용될 수 있다. 스토리지 요소는 하드웨어 아키텍처에 따라 레지스터들 또는 RAM 블록들 일 수 있다. 예를 들어, 중간 LLR 값은 저장될 비트들의 양이 많기 때문에 일반적으로 RAM 블록들에 저장된다. 디코딩된 비트들 및 부분 합계 비트들은 중간 LLR 값들만큼 많은 비트가 필요하지 않으므로 아키텍처에 따라 레지스터 또는 RAM 블록들에 저장될 수 있다.
SCL 디코더를 구현하려면 경로 프루닝(pruning) 단계 후에 각 경로의 스토리지 요소(storage element)들의 컨텐츠(content)들을 복사해야 한다. L-투-1 멀티플렉서는 각 L 경로들에 사용된다. 멀티플렉서(multiplexer)들의 입력 너비(Input width)는 스토리지 요소들의 너비와 같다. 예를 들어, 디코딩된 비트들이 N-비트 레지스터들에 저장되는 하드웨어 설계에서 입력 너비가 N 비트 인 L-투-1 멀티플렉서는 L개의 경로들 각각의 레지스터들을 복사하는 데 사용된다. RAM 블록들이 저장에 사용되는 경우, 디코딩 중에 정확한 RAM 블록들의 컨텐츠들에 액세스하기 위해 포인터 레지스터(pointer register)들을 유지하는 방법이 사용될 수 있다. 이 경우 포인터 레지스터들의 너비와 입력 너비들이 동일한 L-투-1 멀티플렉서가 각 L개의 경로에 필요하다.
SCL 디코더 실시에서 하드웨어 복잡성의 중요한 부분은 멀티플렉서 블록들에서 나타난다. 설명된 멀티플렉싱 동작(multiplexing operation)의 복잡성을 줄이면 전체 SCL 디코더 아키텍처의 복잡성이 감소할 것으로 예상된다.
종래 기술에서, 특허 문헌 번호 KR101600759B1은 SCL 폴라 디코더들을 위한 병합 처리 요소(merged processing element)를 단순화하는 방법 및 장치를 개시한다. 상기 장치는 XOR 계산을 이용하여 멀티플렉서의 선택 신호를 검색하는 제1 병합 처리 계산 부분(SM-PE1; first merged processing calculation part)와 디코딩을 수행하는 마지막 단계에서만 사인 비트(sign bit)를 사용하여 계산을 수행하는 제2 병합 처리 계산 부분(SM-PE2; second merged processing calculation part)이 포함된다. 이 문서에서는 멀티플렉서들로 인한 하드웨어 복잡성은 공개하지 않는다.
US2016056843A1 번호가 매겨진 특허 출원 문서는 폴라 코드 디코더의 하드웨어 복잡성을 감소시키는 방법 및 시스템을 개시한다. 이 문서는 필요한 처리 요소의 수뿐만 아니라 코드 워드를 디코딩하는 데 필요한 단계의 수와 메모리 요소의 수 측면에서 폴라 코드 디코더의 복잡성을 줄이기 위한 아키텍처 및 디코딩 프로세스를 다룬다. 그러나, 위의 문서와 유사하게, 이 문서는 멀티플렉서에 대한 하드웨어 복잡성 감소 기술도 공개하지 않는다.
본 발명은 SCL 디코더를 위한 하드웨어 복잡도 감소 방법을 제안한다. 이 방법은 복사 동작(copying operation)들에 사용되는 L개의 멀티플렉서들의 입력 수를 줄이는 것을 제안한다. SCL 디코딩의 경로 프루닝 단계에서 2L개의 후보 경로(candidate path)들 중 가장 작은 경로 메트릭(path metric)들을 가진 L개의 경로가 생존 후보 경로들로 선택된다. 또한, L 개의 생존 후보 경로의 경로 인덱스들은 정렬기 모듈의 출력에 있는 인덱스들에 따라 정렬된 방식으로 제공된다. 경로 프루닝 후, 기존 SCL 디코더에서 사용되는 L-투-1 멀티플렉서 대신, (L/2+1)-투-1 멀티플렉서는 계속(continuing) 및/또는 복제(duplicated) 경로들의 레지스터에 저장된 모든 필수 요소(equired element)들의 복사 동작(copying operation)을 수행해야 한다.
도 1은 기존 SCL 디코딩에서 의사 결정 절차의 흐름도를 도시한다.
도 2는 기존 SCL 디코딩을 위한 경로 관리 방법의 흐름도를 도시한다.
도 3은 기존 SCL 디코더에 배치된 정렬기의 개략도를 도시한다.
도 4는 기존 SCL 디코더에 배치된 추출기의 개략도를 도시한다.
도 5는 기존 SCL 디코더에 배치된 멀티플렉서 뱅크의 개략도를 도시한다.
도 6은 본 발명에서 제안된 정렬기 모듈의 개략도를 도시한다.
도 7은 본 발명에서 제안된 멀티플렉서 뱅크의 개략도를 도시한다.
도 2는 기존 SCL 디코딩을 위한 경로 관리 방법의 흐름도를 도시한다.
도 3은 기존 SCL 디코더에 배치된 정렬기의 개략도를 도시한다.
도 4는 기존 SCL 디코더에 배치된 추출기의 개략도를 도시한다.
도 5는 기존 SCL 디코더에 배치된 멀티플렉서 뱅크의 개략도를 도시한다.
도 6은 본 발명에서 제안된 정렬기 모듈의 개략도를 도시한다.
도 7은 본 발명에서 제안된 멀티플렉서 뱅크의 개략도를 도시한다.
이하, 본 발명의 실시 예를 첨부된 도면과 함께 상세히 설명한다.
SCL 디코더는 오류 성능을 개선하기 위해 디코딩 중에 L개의 경로를 유지한다. 경로들은 SC 디코딩의 의사 결정(decision-making) 단계에서 형성되며, 여기서 SC 디코더는 어려운 결정을 내리고 SCL 디코더는 대체 결정 경로들로 분할된다. SCL 디코딩의 의사 결정 절차(decision making procedure)는 도 1에 나와 있다.
제1 단계에서 기존 경로(existing path)는 2개의 후보 경로(candidate path)들로 분할(split)된다. 분할은 정보 비트가 디코딩 될 때 수행된다. 분할은 두 후보 경로에 대한 비트 결정으로 '0'과 '1'의 두 비트 값들을 모두 고려하여 수행된다.
제2 단계에서는 각 후보 경로에 대한 경로 메트릭(path metric)들이 계산된다. 후보 경로들의 경로 메트릭들은 후보 경로들이 형성되는 기존 경로들의 경로 메트릭들에서 계산된다.
마지막 단계에서 후보 경로들의 서브셋(subset)은 추가 계산(further calculation)을 위해 생존 후보 경로(surviving candidate path)로 선택된다. 최대 경로의 수는 L로 정의된다. 후보 경로들의 수가 L보다 작으면, 모든 후보 경로들은 생존(survive)한다. 후보 경로들의 수가 L을 초과하면, SCL 디코더가 경로 프루닝(pruning)을 수행한다. 경로 프루닝에서는 경로 메트릭들이 가장 작은 L개의 경로들이 생존 후보 경로들로 선택된다.
SCL 디코더(SCL decoder)의 각 기존 경로에는 경로 메트릭(path metric)이 있다. SCL 디코더의 각 후보 경로에도 경로 메트릭이 있다. 후보 경로의 경로 메트릭들은 후보 경로들이 형성된 기존 경로들의 경로 메트릭들에서 계산된다.
SCL 디코더의 각 기존 경로(existing path)에는 중간 LLR 값(intermediate LLR value)들이 있다. SCL 디코더의 각 후보 경로에는 중간 LLR 값들도 있다. 후보 경로의 중간 LLR 값들은 후보 경로가 형성되는 기존 값과 동일하다.
SCL 디코더의 각 기존 경로에는 디코딩된 비트(decoded bit)들이 있다. SCL 디코더의 각 후보 경로에는 디코딩된 비트들도 있다. 후보 경로들의 디코딩된 비트들은 가장 최근에 디코딩된 비트를 제외하고 후보 경로들이 형성되는 기존 경로들의 비트들과 동일하다.
SCL 디코더의 각 기존 경로에는 부분 합계(partial-sum) 비트들이 있다. SCL 디코더의 각 후보 경로에는 부분 합계 비트들도 있다. 후보 경로들의 부분 합계 비트들은 후보 경로들이 형성되는 기존 경로들의 비트들로부터 계산된다.
경로 푸르닝(pruning) 때문에, 기존 경로들에서 새 경로들이 형성된다. 경로 프루닝 후, 도 2와 같이 기존 경로는 종료(terminated)되거나 복제(duplicated)되거나 계속 존재한다. 기존 경로에서 생존 후보 경로들이 형성되지 않으면 기존 경로가 종료된다. 기존 경로에서 형성된 두 후보 경로가 모두 생존하면 기존 경로가 복제된다. 기존 경로에서 형성된 후보 경로가 하나만 남아 있으면 기존 경로가 계속된다.
기존 경로가 종료되면, 중간 LLR 값(intermediate LLR value)들, 디코딩된 비트(decoded bit)들 및 부분 합계 비트(partial-sum bit)들이 삭제된다. 기존 경로가 복제되면, 중간 LLR 값들, 디코딩된 비트들 및 부분 합계 비트들이 이 경로에서 형성된 두 개의 생존 후보 경로들에 복제된다. 기존 경로가 계속되면, 중간 LLR 값들, 디코딩된 비트들 및 부분 합계 비트들이 이 경로에서 형성된 생존 후보 경로의 값에 복사된다.
종래의 SCL 디코더의 예시적인 하드웨어 실시에서, 경로 프루닝에서, 정렬기 모듈(100)은 오름차순(ascending order)으로 2L개의 후보 경로의 경로 메트릭들을 정렬한다(도 3). 정렬기 모듈(100)의 출력에서 첫번째 L개의 경로 메트릭들인 경로 메트릭들을 가진 L개의 후보 경로들이 생존 후보 경로들로 선택된다. L개의 생존 후보 경로 인덱스(path index)들은 경로 메트릭들의 오름차순으로 정렬된다.
종래의 SCL 디코더의 또 다른 예시적인 하드웨어 실시에서, 경로 프루닝에서, 추출기 모듈(200)은 2L개의 경로 메트릭들 중에서 L개의 가장 작은 경로 메트릭들을 추출한다(도 4). 추출기 모듈의 출력에서 첫 번째 L개의 경로 메트릭들인 경로 메트릭들이 있는 L개의 후보 경로들이 생존 후보 경로로 선택된다. L개의 생존 후보 경로 인덱스들은 경로 메트릭들의 오름차순으로 정렬되지 않는다.
종래의 SCL 디코더의 예시적인 하드웨어 실시에서, 각 경로는 전용 스토리지 및 처리 요소들을 가진다. 경로 프루닝 후 하나 또는 두 개의 생존 경로들이 형성되는 기존 경로의 중간 LLR 값들, 부분 합계들 및 디코딩된 비트들을 전용 스토리지 요소들에서 특정 생존 경로에 할당된 전용 스토리지 요소들로 복사해야 한다. 경로 프루닝 후 복사 동작은 생존 후보 경로들의 순서에 따라 수행된다. 여기서, 순서는 생존 후보 경로를 결정하기 위해 정렬기 또는 추출기 모듈을 사용하는지 여부에 따라 달라진다.
정렬기 모듈(100)이 사용되는 종래의 SCL 디코더의 예시적인 하드웨어 실시에서, 경로 프루닝 후, 중간 LLR 값들, 부분 합계들 및 기존 경로들의 디코딩된 비트들은, 자신들의 전용 스토리지 요소(dedicated storage element)들로부터, 오름차순으로 정렬된 L개의 생존 후보 경로에 할당된 전용 스토리지 요소들로 복사된다. 상기 기존 경로들로부터 하나 이상의 생존 경로가 형성된다.
추출기 모듈(200)이 사용되는 종래의 SCL 디코더의 다른 예시적인 하드웨어 실시에서, 경로 프루닝 후, 중간 LLR 값들, 부분 합계들 및 기존 경로들의 디코딩된 비트들은, 자신들의 전용 스토리지 요소들로부터, 추출기 모듈(200)의 출력에서의 순서에 따라 정렬된 L개의 생존 후보 경로들에 할당된 전용 스토리지 요소들로 복사된다. 상기 기존 경로들로부터 하나 이상의 생존 경로가 형성된다.
종래의 SCL 디코더의 하드웨어 실시에서, L개의 L-투-1 멀티플렉서(L-to-1 multiplexer)총 수를 갖는 적어도 하나의 멀티플렉서 뱅크(multiplexer bank)(300)가 배치되어 L개의 생존 후보 경로들의 정렬된 경로 인덱스들에 따라 경로 프루닝 후 각 경로의 스토리지 요소들을 복사한다(그림 5).
종래의 SCL 디코더의 예시적인 하드웨어 실시에서, L개의 L-투-1 멀티플렉서의 총 수를 갖는 멀티플렉서 뱅크(300)는 기존 경로들의 중간 LLR 값들을 복사하는 데 필요하다. 예시적인 하드웨어 실시에서, 이러한 L-투-1 멀티플렉서의 입력 너비는 NQ 비트이다. 여기서, Q는 중간 LLR 값들에 대한 양자화 비트 수(quantization bit number)를 나타낸다.
종래의 SCL 디코더의 다른 예시적인 하드웨어 실시에서, 포인터 레지스터(pointer register)들은 중간 LLR RAM 블록(intermediate LLR RAM block)들을 경로에 매핑하기 위해 사용된다. L개의 L-투-1 멀티플렉서의 총 수를 갖는 멀티플렉서 뱅크(300)는 기존 경로들의 포인터 레지스터들을 복사하기 위해 배치된다. 예시적인 하드웨어 실시에서, 이러한 L-투-1 멀티플렉서의 입력 너비는 log2L(log2N-1) 비트이다.
종래의 SCL 디코더의 또 다른 예시적인 하드웨어 실시에서, L개의 L-투-1 멀티플렉서의 총 수를 갖는 멀티플렉서 뱅크(300)가 배치되어 기존 경로들의 부분 합계 비트들을 복사한다. 예시적인 하드웨어 실시에서, 이러한 L-투-1 멀티플렉서의 입력은 N 비트이다. 다른 예시적인 하드웨어 실시에서, 이러한 L-투-1 멀티플렉서의 입력 너비는 N/2 비트이다.
종래의 SCL 디코더의 다른 예시적인 하드웨어 실시에서, 부분 합계 RAM 블록들을 경로들에 매핑하기 위해 포인터들이 사용된다. 포인터들은 레지스터들에 저장된다. L개의 L-투-1 멀티플렉서의 총 수를 갖는 멀티플렉서 뱅크(300)는 기존 경로들의 LLR 포인터들을 복사하기 위해 배치(deployed)된다. 예시적인 하드웨어 실시에서, 이러한 L-투-1 멀티플렉서의 입력 너비는 log2L(log2N-1) 비트이다.
종래의 SCL 디코더의 예시적인 하드웨어 실시에서, L개의 L-투-1 멀티플렉서의 총 수를 갖는 멀티플렉서 뱅크(300)가 기존 경로들의 디코딩된 비트들을 복사하기 위해 배치된다. 예시적인 하드웨어 실시에서, 이러한 L-투-1 멀티플렉서의 입력 너비는 N 비트이다. 다른 하드웨어 예시 실시에서, 이러한 L-투-1 멀티플렉서의 입력 너비는 K 비트이다.
종래의 SCL 디코더의 예시적인 하드웨어 실시에서, 각 경로의 중간 LLR 값들은 RAM 블록들에 저장된다. LLR 포인터들, 디코딩된 비트들 및 각 경로의 부분 합계들이 레지스터들에 저장된다. LLR 포인터들은 log2L(log2N-1) 비트의 L개의 레지스터에 저장된다. 디코딩된 비트들은 N 비트의 L개의 레지스터에 저장된다. 부분 합계들은 N/2 비트의 L개의 레지스터에 저장된다. 입력 너비가 log2L (log2N-1) 비트인 L개의 L-투-1 멀티플렉서의 총 수는 LLR 포인터들을 복사하는 데 사용된다. N 비트의 입력 너비를 가진 L개의 L-투-1 멀티플렉서의 총 수가 디코딩된 비트들을 복사하는 데 사용된다. N/2 비트의 입력너비를 가진 L개의 L-투-1 멀티플렉서의 총 수는 부분 합계 비트들을 복사하는 데 사용된다.
본 발명에서는 경로 프루닝에서 2L개의 후보 경로들 중 가장 작은 경로 메트릭들을 갖는 L개의 경로를 생존 후보 경로들로 선택한다. 도 6에 도시된 바와 같이, L 개의 생존 후보 경로들의 경로 인덱스들은 정렬기 모듈(sorter module)(400)의 출력에서 인덱스들에 따라 정렬된 방식으로 제공된다. L개의 생존 후보 경로들의 경로 인덱스 정렬(Path index sorting)은 오름차순 또는 내림차순(descending order) 일 수 있다.
본 발명에서는 경로 프루닝 후에 L-투-1 멀티플렉서 대신에 (L/2+1)-투-1 멀티플렉서를 배치하여 경로들의 전용 레지스터들에 저장된 모든 필수 요소들의 복사 동작(copying operation)을 수행한다. 경로 프루닝 후 복사 동작은 도 7과 같이 멀티플렉서 뱅크(multiplexer bank)(500)에 의해 수행될 수 있다. 멀티플렉서 입력의 감소는 생존 후보 경로 인덱스들을 정렬하여 경로 프루닝 후 특정 경로에 복사할 수 있는 경로들을 제한하여 얻을 수 있다.
예시적인 실시예에서, L은 4와 같다. 후보 경로 2i-1 및 2i는 결정 단계(decision stage)에서 기존 경로 i로부터 분할된다(1 ≤ i ≤ 4). 경로 1에 대한 복사 동작이 고려된다. 생존 후보 경로 인덱스(Surviving candidate path index)들은 오름차순(ascending order)으로 정렬된다. 생존 후보 경로가 인덱스 5, 6, 7 및 8이 있는 후보 경로들인 경우 인덱스 3 및 4가 있는 기존 경로들에서 복사 동작이 수행된다. 따라서, 경로 1, 2, 3 및 4에 대한 복사 동작은 각각 경로 3, 3, 4 및 4에서 수행된다. 다른 경우에는, 경로 1에 복사할 기존 경로 인덱스들은 3보다 작다. 이것은 어떤 경우에도 경로 4에서 경로 1 로의 복사 동작을 수행할 수 없음을 의미한다. 따라서, 경로 1에 대한 복사 동작들은 어떤 경우에도 경로 1, 2 및 3에서만 수행할 수 있다.
다른 예시적인 실시예에서, L은 4와 같다. 후보 경로 2i-1 및 2i는 결정 단계에서 기존 경로 i로부터 분할된다(1 ≤ i ≤ 4). 경로 1에 대한 복사 동작이 고려된다. 생존 후보 경로 인덱스들은 내림차순(descending order)으로 정렬된다. 생존 후보 경로가 인덱스 4, 3, 2 및 1이있는 후보 경로들인 경우 인덱스 1 및 2가있는 기존 경로들에서 복사 동작이 수행된다. 따라서, 경로 1, 2, 3 및 4에 대한 복사 동작은 각각 경로 2, 2, 1 및 1에서 수행된다. 다른 경우에는, 경로 1에 복사할 기존 경로 인덱스들은 2보다 크다. 이것은 어떤 경우에도 경로 1에서 경로 1 로의 복사 동작을 수행할 수 없음을 의미한다. 따라서, 경로 1에 대한 복사 동작들은 어떤 경우에도 경로 2, 3 및 4에서만 수행할 수 있다.
예시적인 실시예에서, L은 8과 같다. 후보 경로 2i-1 및 2i는 결정 단계에서 기존 경로 i로부터 분할된다(1 ≤ i ≤ 8). 경로 1에 대한 복사 동작이 고려된다. 생존 후보 경로 인덱스들은 오름차순으로 정렬된다. 생존 후보 경로들이 인덱스 9, 10, 11, 12, 13, 14, 15 및 16 인 후보 경로들인 경우 인덱스 5, 6, 7 및 8 인 기존 경로들에서 복사 동작이 수행된다. 따라서, 경로 1, 2, 3, 4, 5, 6, 7 및 8에 대한 복사 동작은 각각 디코딩 경로 5, 5, 6, 6, 7, 7, 8 및 8에서 수행된다. 다른 경우, 경로 1에 복사할 기존 경로 인덱스들은 5보다 작다. 이것은 어떤 경우에도 경로 6, 7 및 8에서 경로 1 로의 복사 동작을 수행할 수 없음을 의미한다. 따라서, 경로 1에 대한 복사 동작은 어떤 경우에도 경로 1, 2, 3, 4 및 5에서만 수행할 수 있다.
다른 예시적인 실시예에서, L은 8과 같다. 후보 경로 2i-1 및 2i는 결정 단계에서 기존 경로 i로부터 분할된다(1 ≤ i ≤ 8). 경로 1에 대한 복사 동작이 고려된다. 생존 후보 경로 인덱스들은 내림차순으로 정렬된다. 생존 후보 경로가 인덱스 8, 7, 6, 5, 4, 3, 2 및 1 인 후보 경로들인 경우 인덱스 1, 2, 3 및 4 인 기존 경로들에서 복사 동작이 수행된다. 따라서, 경로 1, 2, 3, 4, 5, 6, 7 및 8에 대한 복사 동작은 각각 디코딩 경로 4, 4, 3, 3, 2, 2, 1 및 1에서 수행된다. 다른 경우에는 경로 1에 복사할 기존 경로 인덱스들은 4보다 크다. 이것은 어떤 경우에도 경로 1, 2 및 3에서 경로 1 로의 복사 동작을 수행할 수 없음을 의미한다. 따라서 경로 1에 대한 복사 동작은 어떤 경우에도 경로 4, 5, 6, 7 및 8에서만 수행할 수 있다.
위의 예에서, 특정 경로로 복사가 가능한 경로 인덱스들은 특정 경로의 인덱스에 따라 다르다. 따라서, L-투-1 멀티플렉서를 사용하는 대신에 (L/2+1)-투-1 멀티플렉서를 성능 손실없이 배치할 수 있다.
본 발명을 검증하기 위한 예시적인 실시에서, SCL 디코더는 P=32 처리 요소들을 갖는 세미-병렬 아키텍처(semi-parallel architecture)로 구현된다. LLR 포인터들, 부분 합계들 및 디코딩된 비트들은 레지스터들에 저장된다. LLR 포인터들은 log2L(log2N-1) 비트의 L개의 레지스터들에 저장되고 디코딩된 비트들은 N 비트의 L개의 레지스터들에 저장되고 부분 합계들은 N/2 비트의 L개의 레지스터들에 저장된다. 정렬 동작(sorting operation)은 2L개 입력들에 대한 바이토닉 추출기(bitonic extractor)에 의해 수행되며 L개의 입력들에 대해 다른 바이토닉 정렬기(bitonic sorter)와 직렬로 연결된다. 바이토닉 추출기는 2L 후보 경로들 중 가장 작은 경로 메트릭들로 L개의 생존 후보 경로들을 추출하는 데 사용된다. 2L개의 입력들에 대한 제1 바이토닉 추출기의 출력들은 L개의 생존 후보 경로들의 경로 인덱스들 및 경로 메트릭들이며, L개의 입력들에 대한 제2 바이토닉 정렬기의 입력이기도 하다. 제2 바이토닉 정렬기는 경로 인덱스들에 따라 L개의 생존 후보 경로를 정렬하는데 사용된다. 실시결과는 아래 표에 나와 있다.
구현 결과(Xilinx Zynq XC7Z100FFG900-2)
100. 정렬기 모듈(Sorter module)
200. 추출기 모듈(Extractor module)
300. 멀티플렉서 뱅크(Multiplexer bank)
400. 정렬기 모듈(Sorter module)
500. 멀티플렉서 뱅크(Multiplexer bank)
200. 추출기 모듈(Extractor module)
300. 멀티플렉서 뱅크(Multiplexer bank)
400. 정렬기 모듈(Sorter module)
500. 멀티플렉서 뱅크(Multiplexer bank)
Claims (11)
- 연속 제거 리스트 디코딩(successive cancellation list decoding) 방법에 있어서,
- 정보 비트(information bit)가 디코딩될 때 각 경로를 2개의 후보 경로(candidate path)들로 분할(split)하는 단계;
- 각 후보 경로에 대한 경로 메트릭(path metric)들을 계산하는 단계; 및
- 추가 계산(further calculation)을 위해 후보 경로들의 서브셋(subset)을 생존 후보 경로(surviving candidate path)들로 선택하는 단계
를 포함하고,
상기 후보 경로들의 수가 L보다 작으면, 모든 후보 경로들이 생존하고,
상기 후보 경로들의 수가 L을 초과하면, SCL 디코더가 가장 작은 경로 메트릭들을 가진 L개의 경로를 생존 후보 경로(surviving candidate path)들로 선택하는 경로 프루닝(path pruning)을 수행하고,
상기 방법은,
L개의 생존 후보 경로들이 자신들의 경로 인덱스(path index)들에 따라 정렬되도록 2L개의 후보 경로 메트릭(candidate path metric)들을 정렬(sorting)하는 단계; 및
L개의 생존 후보 경로들의 정렬된 경로 인덱스들에 따라 경로 프루닝 후에 각 경로의 스토리지 요소(storage element)들을 복사하는 단계
를 더 포함하는 연속 제거 리스트 디코딩 방법.
- 제1항에 있어서,
상기 정렬 동작(sorting operation)은,
오름차순(ascending order)으로 이루어지는
연속 제거 리스트 디코딩 방법.
- 제1항에 있어서,
상기 정렬 동작은,
내림차순(descending order)으로 이루어지는
연속 제거 리스트 디코딩 방법.
- 제1항에 있어서,
상기 경로 프루닝 프로세스는,
경로에 적어도 하나의 생존 경로가 없으면 상기 경로를 종료하는 단계;
경로에 정확히 2개의 생존 경로들이 있으면, 상기 경로를 복제(duplicating)하는 단계;
경로에 정확히 하나의 생존 경로가 있으면, 상기 경로를 계속하는 단계
를 포함하는 연속 제거 리스트 디코딩 방법.
- 연속 제거 리스트 디코더에 있어서,
L개의 생존 후보 경로들이 자신들의 경로 인덱스들에 따라 정렬되도록 2L개의 후보 경로 메트릭들에 대한 정렬 동작(sorting operation)을 수행하도록 구성된 정렬기 모듈(sorter module)(400);
복수의 L(L/2+1)-투-1 멀티플렉서(L(L/2+1)-to-1 multiplexer)가 배치(deployed)되고, L개의 생존 후보 경로들의 정렬된 경로 인덱스들에 따라 경로 프루닝 후에 각 경로의 스토리지 요소(storage element)들을 복사하도록 구성된 적어도 하나의 멀티플렉서 뱅크(multiplexer bank)(500)
를 포함하는 연속 제거 리스트 디코더.
- 제5항에 있어서,
상기 정렬기 모듈(400)은,
오름차순(ascending order)으로 정렬 동작을 수행하는
연속 제거 리스트 디코더.
- 제5항에 있어서,
상기 정렬기 모듈(400)은,
내림차순(descending order)으로 정렬 동작을 수행하는
연속 제거 리스트 디코더.
- 제5항에 있어서,
상기 적어도 하나의 멀티플렉서 뱅크(500)는,
기존 경로(existing path)들의 중간 LLR 값(intermediate LLR value)들을 복사하도록 구성된 복수의 L(L/2+1)투-1 멀티플렉서
를 포함하는 연속 제거 리스트 디코더.
- 제5항에 있어서,
상기 적어도 하나의 멀티플렉서 뱅크(500)는,
기존 경로들의 포인트 레지스터(pointer register)들을 복사하도록 구성된 복수의 L(L/2+1)-투-1 멀티플렉서
를 포함하는 연속 제거 리스트 디코더.
- 제5항에 있어서,
상기 적어도 하나의 멀티플렉서 뱅크(500)는,
기존 경로들의 부분 합계 비트(partial sum bit)들을 복사하도록 구성된 복수의 L(L/2+1)-투-1 멀티플렉서
를 포함하는 연속 제거 리스트 디코더.
- 제5항에 있어서,
상기 적어도 하나의 멀티플렉서 뱅크(500)는,
기존 경로들의 디코딩된 비트(decoded bit)들을 위해 구성된 복수의 L(L/2+1)-투-1 멀티플렉서
를 포함하는 연속 제거 리스트 디코더.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/TR2018/050718 WO2020106230A1 (en) | 2018-11-23 | 2018-11-23 | Hardware complexity reduction technique for successive cancellation list decoders |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210093243A true KR20210093243A (ko) | 2021-07-27 |
KR102543346B1 KR102543346B1 (ko) | 2023-06-14 |
Family
ID=64902362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217013512A KR102543346B1 (ko) | 2018-11-23 | 2018-11-23 | 연속 제거 리스트 디코더를 위한 하드웨어 복잡성 감소 기술 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11374593B2 (ko) |
EP (1) | EP3884581A1 (ko) |
JP (1) | JP7210729B2 (ko) |
KR (1) | KR102543346B1 (ko) |
WO (1) | WO2020106230A1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170149531A1 (en) * | 2015-11-24 | 2017-05-25 | Coherent Logix, Incorporated | Memory Management and Path Sort Techniques in a Polar Code Successive Cancellation List Decoder |
US20170366204A1 (en) * | 2016-06-17 | 2017-12-21 | Huawei Technologies Co., Ltd. | Multiple-symbol combination based decoding for general polar codes |
KR20180031555A (ko) * | 2016-09-20 | 2018-03-28 | 삼성전자주식회사 | 극 부호의 병렬화된 연속 제거 디코딩 및 연속 제거 리스트 디코딩을 위한 장치 및 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9176927B2 (en) | 2011-11-08 | 2015-11-03 | The Royal Institution For The Advancement Of Learning/Mcgill University | Methods and systems for decoding polar codes |
US9503126B2 (en) | 2012-07-11 | 2016-11-22 | The Regents Of The University Of California | ECC polar coding and list decoding methods and codecs |
KR101600759B1 (ko) | 2015-09-01 | 2016-03-07 | 인하대학교 산학협력단 | 연속 제거 극 부호 복호기를 위한 간단한 병합 처리 연산 방법 및 장치 |
US10601450B2 (en) * | 2017-03-29 | 2020-03-24 | Qualcomm Incorporated | List management for parallel operations of polar codes |
KR102632560B1 (ko) * | 2018-10-19 | 2024-02-02 | 삼성전자주식회사 | 경로 메트릭을 이용하여 입력 데이터를 디코딩하는 장치 및 이를 이용하는 디코딩 방법 |
-
2018
- 2018-11-23 JP JP2021529062A patent/JP7210729B2/ja active Active
- 2018-11-23 US US17/287,534 patent/US11374593B2/en active Active
- 2018-11-23 EP EP18829521.6A patent/EP3884581A1/en not_active Withdrawn
- 2018-11-23 KR KR1020217013512A patent/KR102543346B1/ko active IP Right Grant
- 2018-11-23 WO PCT/TR2018/050718 patent/WO2020106230A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170149531A1 (en) * | 2015-11-24 | 2017-05-25 | Coherent Logix, Incorporated | Memory Management and Path Sort Techniques in a Polar Code Successive Cancellation List Decoder |
US20170366204A1 (en) * | 2016-06-17 | 2017-12-21 | Huawei Technologies Co., Ltd. | Multiple-symbol combination based decoding for general polar codes |
KR20180031555A (ko) * | 2016-09-20 | 2018-03-28 | 삼성전자주식회사 | 극 부호의 병렬화된 연속 제거 디코딩 및 연속 제거 리스트 디코딩을 위한 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP2022511752A (ja) | 2022-02-01 |
EP3884581A1 (en) | 2021-09-29 |
US20210399741A1 (en) | 2021-12-23 |
JP7210729B2 (ja) | 2023-01-23 |
US11374593B2 (en) | 2022-06-28 |
KR102543346B1 (ko) | 2023-06-14 |
WO2020106230A1 (en) | 2020-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ramabadran et al. | A tutorial on CRC computations | |
CN108768403B (zh) | 基于lzw的无损数据压缩、解压方法及lzw编码器、解码器 | |
US5371499A (en) | Data compression using hashing | |
KR100702428B1 (ko) | 데이터 압축 방법 및 회로 | |
CN106888026B (zh) | 基于lsc-crc译码的分段极化码编译码方法及系统 | |
CN107017892B (zh) | 一种校验级联极化码编码方法及系统 | |
US20050258984A1 (en) | LDPC architecture | |
CN101946230A (zh) | 用于检测和校正所接收的符号串中的定相突发差错、删除、符号差错和位差错的方法和系统 | |
CN104242957B (zh) | 译码处理方法及译码器 | |
CN101779379A (zh) | 使用通用级联码(gcc)进行编码和解码 | |
CN111384972B (zh) | 多进制ldpc解码算法的优化方法、装置及解码器 | |
CN108429553B (zh) | 极化码的编码方法、编码装置及设备 | |
KR102543346B1 (ko) | 연속 제거 리스트 디코더를 위한 하드웨어 복잡성 감소 기술 | |
US6980138B2 (en) | Method and a system for variable-length decoding, and a device for the localization of codewords | |
Le Gal et al. | Low-latency sorter architecture for polar codes successive-cancellation-list decoding | |
Yuan et al. | Reduced-latency LLR-based SC list decoder for polar codes | |
KR100466455B1 (ko) | 부호변환기와가변길이부호복호장치및복호방법 | |
US20030052802A1 (en) | Method and apparatus for huffman decoding technique | |
Wang et al. | Optimized sorting network for successive cancellation list decoding of polar codes | |
Rosnes et al. | On maximum length convolutional codes under a trellis complexity constraint | |
US5329536A (en) | Method and apparatus for sequentially decoding a digital stream encoded by a convolution type error-correcting code | |
KR100702453B1 (ko) | 데이터 압축용 회로 및 방법 | |
CN112640314A (zh) | 用于在乘积码和分量极化码之间映射冻结集的装置和方法 | |
CN112534724A (zh) | 用于解码极化码和乘积码的解码器和方法 | |
JPH05152971A (ja) | データ圧縮・復元方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |