KR102170785B1 - 병렬 sc 복호기의 멀티비트 부분합 네트워크 장치 - Google Patents
병렬 sc 복호기의 멀티비트 부분합 네트워크 장치 Download PDFInfo
- Publication number
- KR102170785B1 KR102170785B1 KR1020190077704A KR20190077704A KR102170785B1 KR 102170785 B1 KR102170785 B1 KR 102170785B1 KR 1020190077704 A KR1020190077704 A KR 1020190077704A KR 20190077704 A KR20190077704 A KR 20190077704A KR 102170785 B1 KR102170785 B1 KR 102170785B1
- Authority
- KR
- South Korea
- Prior art keywords
- subtotal
- bit
- multiplexer
- stage
- parallel
- 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- 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/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
본 발명은 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치에 관한 것으로, 이전 복호 결과를 이용하여 매트릭스를 생성하는 매트릭스 생성 유닛과, 매트릭스 생성 유닛의 매트릭스를 연산하여 부분합을 연산하는 부분합 연산 유닛과, 부분합 연산 유닛의 연산결과들 중 일부를 선택하여 프로세싱 엘리먼트로 제공하는 연결 멀티플랙서를 포함하는 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치에 있어서, 상기 매트릭스 생성 유닛은, 최대 생성 비트의 수를 상기 프로세싱 엘리먼트의 수와 동수로 한정하고, 잔여 스테이지들 각각의 멀티플랙서의 입력수를 상기 최대 생성 비트의 마지막 스테이지의 멀티플랙서의 입력수와 동수로 제한된다.
Description
본 발명은 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치 및 방법에 관한 것으로, 특히 하드웨어 구성을 단순화할 수 있는 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치에 관한 것이다.
4G 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G 통신 시스템 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후 (Beyond 4G Network) 통신 시스템 또는 LTE 시스템 이후 (Post LTE) 이후의 시스템이라 불리어지고 있다. 높은 데이터 전송률을 달성하기 위해, 5G 통신 시스템은 초고주파(mmWave) 대역 (예를 들어, 60기가(60GHz) 대역과 같은)에서의 구현이 고려되고 있다. 초고주파 대역에서의 전파의 경로 손실 완화 및 전파의 전달 거리를 증가시키기 위해, 5G 통신 시스템에서는 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO), 전차원 다중입출력(Full Dimensional MIMO: FD-MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 및 대규모 안테나 (large scale antenna) 기술들이 논의되고 있다.
또한, 시스템의 네트워크 개선을 위해, 5G 통신 시스템에서는 진화된 소형 셀, 개선된 소형 셀(advanced small cell), 클라우드 무선 액세스 네트워크 (cloud radio access network: cloud RAN), 초고밀도 네트워크 (ultra-dense network), 기기 간 통신 (Device to Device communication: D2D), 무선 백홀 (wireless backhaul), 이동 네트워크 (moving network), 협력 통신 (cooperative communication), CoMP (Coordinated Multi-Points), 및 수신 간섭제거 (interference cancellation) 등의 기술 개발이 이루어지고 있다. 이 밖에도, 5G 시스템에서는 진보된 코딩 변조(Advanced Coding Modulation: ACM) 방식인 FQAM (Hybrid FSK and QAM Modulation) 및 SWSC (Sliding Window Superposition Coding)과, 진보된 접속 기술인 FBMC(Filter Bank Multi Carrier), NOMA(non orthogonal multiple access), 및 SCMA(sparse code multiple access) 등이 개발되고 있다.
한편, 인터넷은 인간이 정보를 생성하고 소비하는 인간 중심의 연결 망에서, 사물 등 분산된 구성 요소들 간에 정보를 주고 받아 처리하는 IoT(Internet of Things, 사물인터넷) 망으로 진화하고 있다. 클라우드 서버 등과의 연결을 통한 빅데이터(Big data) 처리 기술 등이 IoT 기술에 결합된 IoE (Internet of Everything) 기술도 대두되고 있다. IoT를 구현하기 위해서, 센싱 기술, 유무선 통신 및 네트워크 인프라, 서비스 인터페이스 기술 및 보안 기술과 같은 기술 요소 들이 요구되어, 최근에는 사물간의 연결을 위한 센서 네트워크(sensor network), 사물 통신(Machine to Machine, M2M), MTC(Machine Type Communication)등의 기술이 연구되고 있다.
IoT 환경에서는 연결된 사물들에서 생성된 데이터를 수집, 분석하여 인간의 삶에 새로운 가치를 창출하는 지능형 IT(Internet Technology) 서비스가 제공될 수 있다. IoT는 기존의 IT(information technology)기술과 다양한 산업 간의 융합 및 복합을 통하여 스마트홈, 스마트 빌딩, 스마트 시티, 스마트 카 혹은 커넥티드 카, 스마트 그리드, 헬스 케어, 스마트 가전, 첨단의료서비스 등의 분야에 응용될 수 있다.
이에, 5G 통신 시스템을 IoT 망에 적용하기 위한 다양한 시도들이 이루어지고 있다. 예를 들어, 센서 네트워크(sensor network), 사물 통신(Machine to Machine, M2M), MTC(Machine Type Communication)등의 기술이 5G 통신 기술인 빔 포밍, MIMO, 및 어레이 안테나 등의 기법에 의해 구현되고 있는 것이다. 앞서 설명한 빅데이터 처리 기술로써 클라우드 무선 액세스 네트워크(cloud RAN)가 적용되는 것도 5G 기술과 IoT 기술 융합의 일 예라고 할 수 있을 것이다.
일반적으로 통신 시스템에서 송신기와 수신기 사이에 데이터를 송신 및 수신하는 경우 통신 채널에 존재하는 잡음으로 인해 데이터 오류가 발생할 수 있다. 이처럼 통신 채널에 의해 발생된 오류를 수신기에서 정정할 수 있도록 설계된 부호화 방식으로 오류 정정 부호 방식이 존재한다. 이러한 오류 정정 부호는 채널 부호화(channel coding)라고도 한다. 오류 정정 부호 기법은 전송하고자 하는 데이터에 추가적인 비트(redundancy bit)를 추가하여 송신하도록 하는 기법이다.
오류 정정 부호 기법에는 다양한 방식들이 존재한다. 예컨대, 길쌈 부호(convolutional coding), 터보 부호(Turbo coding), 저밀도 패리티 검사 부호(LDPC coding) 및 극부호(Polar coding) 방식 등이 존재한다. 이러한 오류 정정 부호 기법들 중 중 극부호(polar code) 기법은 채널 양극화 현상(channel polarization)을 이용하여 점대점 채널 용량을 달성함이 이론적으로 증명된 최초의 부호이다. 극부호는 밀도 진화(density evolution), RCA(Reciprocal Channel Approximation) 등으로 각 채널 또는 부호율(code rate)에 최적화된 부호 설계가 가능하다. 그러나 실제 통신 시스템에서의 극부호 기법을 적용하기 위해서는 각 부호율에 최적화된 인덱스 시퀀스(index sequence, polar code sequence)를 미리 가지고 있어야 한다.
한편, 최근 차세대 이동통신 시스템으로 제안이 이루어지고 있는 5세대(5G) 이동통신 기술에서는 크게 아래의 3가지 시나리오들에 대하여 언급하고 있다. 첫째 eMBB(Enhanced Mobile Broadband), 둘째 URLLC(Ultra-Reliable and Low Latency Communication), 셋째 mMTC(Massive Machine Type Communication) 시나리오이다. 이처럼 다양한 방식을 지원하기 위한 오류 정정 부호는 다양한 부호율을 안정된 성능으로 지원해야 한다.
폴라 복부호화 시스템은 표준화기관인 3GPP에 의해 5G 무선 통신 콘트롤 채널의 오류정정부호 시스템으로 채택되었다.
폴라 복부호화 시스템은 SC(Successive Cancellation), SSC(Simplified Successive Cancellation), SCL(Successive Cancellation List), Fast-SSCL-SPC(Fast-simplified SCL-SPC) 방식 등이 있다.
SC 복호를 위한 복호기(decoder)의 구성은 통상 수신 비트를 저장하는 메모리, 메모리의 수신 비트의 노드에 따라 F 연산 또는 G 연산을 수행하는 프로세싱 엘리먼트(Processing Element, PE), 프루닝을 수행하여 복호화된 정보 비트를 출력하는 메트릭 연산 유닛(Metric Computing Unit), 부분합을 연산하는 부분합 네트워크(Partial Sum Network) 장치를 포함하여 구성된다.
부분합 네트워크 장치의 부분합 출력은 상기 PE로 제공되며, PE에서 G연산의 결과를 부분합에 따라 선택적으로 출력할 수 있도록 한다.
통상 부분합 네트워크 장치는 매트릭스 발생부와 부분합 연산부로 구성되어 있으며, 부분합(partial sum)은 이전 복호 결과이며, 이전 복호 결과를 이용하여 다음의 연산값을 결정한다.
관련 선행기술 문헌인 'Dongyun Kam and Youngjoo Lee “Ultra-Low-Latency Parallel SC Polar Decoding Architecture for 5G Wireless Communications”, IEEE International Symposium on Circuit and Systems (ISCAS), 2019'(선행문헌1)에는 폴라 코드에서 8- 병렬처리 기반의 SC 복호화 알고리즘에 대하여 기재되어 있다.
이와 같은 병렬화 기법은 SC 극부호(폴라 코드) 복호의 지연시간을 더 줄일 수 있으며, 이때 각 병렬 극부호 복호 트리는 독자적인 부분합을 필요로하며, 프루닝 기술이 적용되어 동시에 여러 비트의 결과를 얻어내야 하기 때문에 효율적인 부분합 업데이트 로직이 요구된다.
선행문헌1에서는 여러 비트를 한 번에 부분합 레지스터에 업데이트하는 방식을 사용하고 있다.
도 1은 종래 부분합 네트워크 장치의 구성도이다.
도 1의 부분합 네트워크 장치는 'Fan, Y., and Tsui, C. Y.. "An efficient partial-sum network architecture for semi-parallel polar codes decoder implementation." IEEE Transactions on Signal Processing 62.12 (2014): 3165-3179.'(선행문헌2)에 도시된 것으로서, 매트릭스 생성 유닛(Matrix Generation Unit)과 부분합 연산 유닛(Partial Sum Computation Unit)으로 구성된다.
선행문헌2에서 제시한 부분합 네트워크 장치는 하드웨어 비용이 코드 길이에 무관하도록 구성한 것으로, 효율적인 부분합 네트워크 장치를 제안한다. 하지만, 동시에 만들어 내는 비트가 하나라는 것을 가정하기 때문에 프루닝과 병렬 디코딩이 적용된 SC 극부호 복호에는 적합하지 않다는 문제점이 있다.
또한, 복호기에 사용되는 PE의 개수를 M이라고 가정할 때, 폴딩 기법이 적용된 부분합 네트워크에서 최대 (M/2)-to-1 멀티플랙서가 사용되어야 한다. 즉, M이 64인 경우 32-to-1 mux가 사용되어야 한다. 32-to-1의 의미는 32개의 입력 중 하나를 선택 출력하는 것으로 이해될 수 있다.
이처럼 종래에는 부분합 네트워크 장치와 PE의 사이에 위치하는 멀티플랙서의 크기가 상대적으로 큰 문제점이 있었다. 멀티플랙서의 크기가 클 때의 문제점은 멀티플랙서의 선택신호 생성이 복잡하게 되며, 지연시간이 증가하게 되는 문제점이 있다.
'Han, J., and Wang, R.. "Simplified multi-bit SC list decoding for polar codes." IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2016.'(선행문헌3)에는 해당 문헌에서 제안하는 복호방법에 특화된 멀티비트 부분합 알고리즘에 대한 내용이 기재되어 있다.
선행문헌3은 동시에 만들어 내는 비트에 제한이 없다는 것을 가정하기 때문에 도 1의 매트릭스 생성 유닛에서 멀티플랙서(mux)의 수가 증가하며, 하드웨어 복잡도가 증가하는 문제점이 있었다.
또한, 선행문헌3의 멀티비트 부분합 알고리즘은 선행문헌2의 부분합 구조를 기반으로 하기 때문에, 부분합 네트워크 장치와 PE사이에 배치되는 멀티플랙서의 크기가 커서, 지연시간이 증가하는 문제점이 있다.
상기와 같은 문제점을 고려한 본 발명이 해결하고자 하는 기술적 과제는, 부분합 네트워크 장치의 복잡도를 줄이고, 하드웨어 구성을 단순화할 수 있는 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치를 제공함에 있다.
또한, 본 발명은 부분합 네트워크 장치와 PE 사이에 배치되는 멀티플랙서의 크기를 줄일 수 있는 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치를 제공함에 있다.
상기와 같은 과제를 해결하기 위한 본 발명 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치는, 현재 복호 결과를 업데이트할 레지스터 위치를 연산하는 매트릭스 생성 유닛과, 매트릭스 생성 유닛의 연산 결과 값과 현재 복호 결과 및 이전 복호 결과를 이용하여 부분 합을 연산하는 부분합 연산 유닛과, 부분합 연산 유닛의 연산결과들 중 일부를 선택하여 프로세싱 엘리먼트로 제공하는 연결 멀티플랙서를 포함하는 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치에 있어서, 상기 매트릭스 생성 유닛은, 최대 생성 비트의 수를 상기 프로세싱 엘리먼트의 수와 동수로 한정하고, 잔여 스테이지들 각각의 멀티플랙서의 입력수를 상기 최대 생성 비트의 마지막 스테이지의 멀티플랙서의 입력수와 동수로 제한된다.
본 발명의 실시예에서, 상기 마지막 스테이지의 차수는 아래의 수학식 1로 정의될 수 있다.
[수학식 1]
log2(2M/P)
M은 프로세싱 엘리먼트의 수, P는 병렬 수
본 발명의 실시예에서, 상기 잔여 스테이지의 멀티플랙서의 수와 각 멀티플랙서의 입력수는 아래의 수학식 2로 정의될 수 있다.
[수학식 2]
((N/4P)-(4M/P))(멀티플랙서의 수) X (log2(2M/P)(입력 수)-to-1(출력 수))(멀티플랙서의 종류) = ((N/4P)-(4M/P)) X (log(M/P))(2-to-1 멀티플랙서 수)
본 발명의 실시예에서, 상기 부분합 연산 유닛은, 부분합 차수 연산부에 스테이지 레지스터부를 더 포함하여 구성되며, 상기 스테이지 레지스터부는 상기 프로세싱 엘리먼트에서 요구하는 부분합의 수에 따라 결정된 스테이지 전용의 적어도 하나 이상의 레지스터로 이루어진 것일 수 있다.
본 발명의 실시예에서, 상기 프로세싱 엘리먼트에서 요구하는 부분합의 수가 1, 2 또는 4인 경우, 상기 스테이지 레지스터부는 스테이지 0, 스테이지 1, 스테이지 2에 상기 스테이지 전용 레지스터를 포함할 수 있다.
본 발명 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치는, 매트릭스 생성 유닛의 최대 프루닝 비트를 PE의 수로 제한함으로써, 멀티플랙서의 수를 줄여 복잡도를 개선하고, 하드웨어 비용을 줄일 수 있는 효과가 있다.
또한, 본 발명에 적용되는 병렬 복호기들은 하나의 매트릭스 생성 유닛을 공유함으로써, 매트릭스 생성 유닛의 하드웨어 코스트를 최소화할 수 있다.
또한, 본 발명은 부분합 연산 유닛의 특정 스테이지에 전용 레지스터를 부가하여 PE와의 연결을 위한 연결 멀티플랙서의 크기를 줄임으로써, 연결 멀티플랙서의 선택신호 생성의 복잡도를 줄임과 아울러 지연시간을 최소화할 수 있는 효과가 있다.
도 1은 종래 멀티비트 부분합 네트워크 장치의 블록 구성도이다.
도 2는 본 발명의 바람직한 실시예에 따른 멀티비트 부분합 네트워크 장치의 블록 구성도이다.
도 3은 본 발명에 적용되는 매트릭스 생성 유닛의 블록 구성도이다.
도 4는 본 발명에 적용되는 부분합 생성 유닛의 블록 구성도이다.
도 5는 매트릭스 생성 유닛이 공유됨을 나타내는 블록 구성도이다.
도 6은 종래 PE의 수 M을 16으로 가정한 상태에서 PE_0에서 요구되는 부분합 레지스터인 r의 위치를 나타낸 도면이다.
도 7은 본 발명에서 스테이지 전용 레지스터의 추가시 생략할 수 있는 레지스터를 나타낸 도면이다.
도 8은 종래 연결 멀티플랙서의 입력 수를 나타낸 예시도이다.
도 9는 본 발명의 연결 멀티플랙서의 입력 수를 나타낸 예시도이다.
도 2는 본 발명의 바람직한 실시예에 따른 멀티비트 부분합 네트워크 장치의 블록 구성도이다.
도 3은 본 발명에 적용되는 매트릭스 생성 유닛의 블록 구성도이다.
도 4는 본 발명에 적용되는 부분합 생성 유닛의 블록 구성도이다.
도 5는 매트릭스 생성 유닛이 공유됨을 나타내는 블록 구성도이다.
도 6은 종래 PE의 수 M을 16으로 가정한 상태에서 PE_0에서 요구되는 부분합 레지스터인 r의 위치를 나타낸 도면이다.
도 7은 본 발명에서 스테이지 전용 레지스터의 추가시 생략할 수 있는 레지스터를 나타낸 도면이다.
도 8은 종래 연결 멀티플랙서의 입력 수를 나타낸 예시도이다.
도 9는 본 발명의 연결 멀티플랙서의 입력 수를 나타낸 예시도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 다양한 실시 예들을 상세히 설명한다. 이때, 첨부된 도면들에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 또한, 이하에 첨부된 본 발명의 도면은 본 발명의 이해를 돕기 위해 제공되는 것으로, 본 발명의 도면에 예시된 형태 또는 배치 등에 본 발명이 제한되지 않음에 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 하기의 설명에서는 본 발명의 다양한 실시 예들에 따른 동작을 이해하는데 필요한 부분만이 설명되며, 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다.
뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
극부호(Polar code)는 오류 정정 부호로 낮은 부호화 성능 및 낮은 복잡도를 가지면서 일정 수준 이상의 성능을 가질 수 있다. 또한 극부호의 경우 모든 binary discrete memoryless channels 에서 데이터 전송 한계인 채널 용량 (channel capacity) 을 달성할 수 있는 코드이다. 또한 폴라 코드는 다른 채널 용량 근접 부호인 터보 코드(Turbo code), LDPC (low-density parity-check) code와 유사한 성능을 가지며, 폴라 코드의 경우 상기 다른 부호들 대비 짧은 길이의 부호를 전송할 때 성능 이점을 가질 수 있다. 따라서 통신 시스템 전반에서 폴라 코드를 적용한 신호 송수신을 수행할 수 있으며, 보다 구체적으로 일정 길이 이하의 제어 정보를 전송하는 용도로 폴라 코드를 사용을 고려할 수 있다.
또한, 폴라 코드는 binary discrete memoryless channel (B-DMC) 가정 하에 채널양극화(channel polarization)이라는 현상을 기반으로 정의될 수 있는 오류 정정 부호이다. 이와 같은 폴라 코드를 적용할 경우 각 비트는 독립적이고 통계적으로 동일한 특성을 갖는 채널 W를 할 수 있다. 이 때 각 채널의 채널 용량을 0≤C(W)≤1 라고 하면, 이는 어떤 한 비트를 채널을 통해 전송했을 때 이론적으로 C(W) 비트만큼 정보 전달이 가능하다. 아무런 동작 없이 N개의 비트를 B-DMC를 통해 전송하는 경우, 각 비트가 전송되는 채널은 모두 C(W) 의 채널 용량을 가지며, 총 N×C(W) 비트만큼의 정보가 이론적으로는 전달될 수 있다. Channel polarization의 기본적인 개념은 N 개의 비트가 통과하는 채널들을 결합하고 (channel combining), 분리하는 (channel splitting) 동작을 수행하여 특정 비율의 비트가 겪는 결과적인 채널 (effective channel) 의 채널 용량은 1에 가까운 값이 되고, 남은 비트가 겪는 결과적인 채널의 채널 용량은 0에 가까운 값이 되도록 조절할 수 있다. 이와 같이 Polar code를 간단하게 개념적으로 설명하면, channel polarization 후 채널 용량이 높은 채널로 정보 비트를 전송하고 채널 용량이 낮은 채널에는 정보 비트를 싣지 않고 특정 값으로 고정하는 방법으로 전송 효과를 최대화할 수 있다.
도 2는 본 발명의 바람직한 실시예에 따른 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치의 블록 구성도이고, 도 3은 도 2에서 매트릭스 생성 유닛(10)의 블록 구성도이며, 도 4는 부분합 연산 유닛(20)의 블록 구성도이다.
도 2 내지 도 4를 각각 참조하면, 본 발명 멀티비트 부분합 네트워크 장치는 매트릭스 생성 유닛(10), 부분합 연산 유닛(20)과, 부분합 연산 유닛(20)의 부분합 출력들 중 하나를 선택하여 PE로 제공하는 연결 멀티플랙서(30)를 포함하여 구성된다.
매트릭스 생성 유닛(10)은 입력 비트의 이용하여 매트릭스 G를 생성하기 위한 것으로, 멀티플랙서, 가산기를 이용하여 입력 비트를 매트릭스 G로 변환한다. 도 3에서 P는 스테이지의 병렬 수이며, M은 PE의 수, N은 코드길이를 나타낸다.
매트릭스 생성 유닛(10)은 병렬 부분합 연산 유닛(20)의 부분합 레지스터들에 공유된다.
도 5에 매트릭스 생성 유닛(10)이 각 부분합 레지스터들에 공유되는 것을 도시하였다.
첫 번째 스테이지(0-th)에서는 멀티플랙서의 사용 없이 매트릭스의 생성이 가능하다, 스테이지가 증가할수록 멀티플랙서의 수는 계속 증가하게 된다.
본 발명에서는 최대 프루닝 비트를 PE의 수와 동일하게 되도록 제한한다.
예를 들어 PE의 수 M이 64인 경우 최대 프루닝 비트도 64로 제한한다. 종래에는 동시에 만들어 내는 비트에 제한이 없다는 것을 가정한 것이기 때문에 프루닝 비트의 최대값에 대한 제한이 없었으며, 필요한 비트 이외에 잔여(remainder) 스테이지의 멀티플랙서들도 스테이지의 차수가 증가하면서 계속 증가하는 구성이었다.
본 발명에서는 최대 프루닝 비트의 산출에 사용되는 스테이지 이후의 잔여 스테이지의 멀티플랙서의 입력수를 최대 프루닝 비트 산출의 마지막 스테이지(log2(2M/P)-th)와 동일한 입력수(log2(2M/P)-th)로 구성한다.
최대 프루닝 비트의 수를 64개인 PE의 수인 M과 동수로 정의하고, 병렬 복호화 구조의 수가 8개라고 하면, 각 병렬 복호화기는 최대 8bit를 푸루닝 하는 것으로, 종래의 직렬 복호화 구조의 64bit를 처리하는 것과 동일한 처리가 가능하게 된다.
이는 종래 직렬 복호화 구조에서는 64bit의 인덱스를 건너뛰어 업데이트 로직을 만들어야 했지만, 본 발명에서는 최대 8bit의 인덱스를 건너뛰어 매트릭스 G를 만들기 때문에 멀티플랙서의 수를 대폭 감소시킬 수 있다.
또한 잔여 스테이지의 멀티플랙서의 수와 각 멀티플랙서의 입력수는 아래의 식으로 정의할 수 있다.
((N/4P)-(4M/P))(멀티플랙서의 수) X (log2(2M/P)(입력 수)-to-1(출력 수))(멀티플랙서의 종류) = ((N/4P)-(4M/P)) X (log(M/P))(2-to-1 멀티플랙서 수)
K-to-1 멀티플랙서는 K-1개의 2-to-1 멀티플랙서로 구성할 수 있다. 아래의 표 1에서 모든 멀티플랙서를 2-to-1 멀티플랙서로 구현했을 때, 종래 매트릭스 생성 유닛에 사용되는 2-to-1 멀티플랙서 수와 본 발명에 사용되는 2-to-1 멀티플랙서의 수를 비교하였다.
즉, 멀티플랙서의 종류는 입력의 수에 따라 결정된다.
즉, 멀티플랙서의 종류는 입력의 수에 따라 결정된다.
종래기술 | 본 발명 | |
MGU의 2-to-1 MUX 수 | 1793 | 113 |
위의 표에서와 같이 본 발명의 종래기술의 멀티플랙서 사용량의 1/15 이하의 멀티플랙서를 사용하여 매트릭스 G를 생성할 수 있으며, 따라서 하드웨어 구성을 단순화하여 비용을 줄일 수 있는 특징이 있다.
상기 매트릭스 생성 유닛(10)에서 생성된 M/P 개의 값(u)들은 부분합 연산 유닛(20)으로 입력된다.
부분합 연산 유닛(20)은 종래 부분합 연산 유닛과 같이 부분합의 각 차수를 연산하기 위하여 N/2개의 병렬연산 레지스터(PS REG)를 사용한다. 이에 더하여 선택된 스테이지마다 전용 레지스터를 사용한다.
도 4를 참조하면 부분합 연산 유닛(20)은, 부분합 차수 연산부(21)와, 스테이지 레지스터부(22)로 구성될 수 있다. 부분합 차수 연산부(21)는 앞서 언급한 바와 같이 도 1의 구성 예와 같이 N개의 코드에 대한 부분합을 구하기 위하여 N/2 개의 레지스터를 포함하고 있다.
본 발명에서는 스테이지 레지스터부(22)를 더 추가하여 PE에서 요구하는 부분합의 수에 따라 특정한 스테이지에 전용 레지스터를 추가한 것이다.
도 4에는 PE에서 요구하는 부분합의 수가 1, 2 또는 4일 때의 예를 도시하였다. 스테이지 0에 하나의 스테이지 레지스터, 스테이지 1에 두 개의 스테이지 레지스터, 스테이지 2에 4개의 레지스터를 추가하여 PE에서 요구하는 부분합의 수를 충족할 수 있다.
따라서 상기 연결 멀티플랙서(30)의 입력 수를 줄일 수 있다.
앞서 가정한 바와 같이 코드길이 N을 1024, PE의 수 M이 64라고 가정하면, 종래 연결 멀티플랙서는 최대 32-to-1 멀티플랙서가 요구되며, 본 발명과 같이 스테이지 0, 1, 2에 대한 레지스터를 추가하여 최대 6-to-1 멀티플랙서를 사용할 수 있다.
따라서 연결 멀티플랙서(30)의 입력 수를 획기적으로 줄여, 선택 신호의 복잡성을 줄일 수 있으며, 지연시간도 단축할 수 있다.
이와 같이 연결 멀티플랙서(30)의 입력 수를 줄일 수 있는 구체적인 내용을 좀 더 상세히 설명하면 다음과 같다.
도 6은 종래 PE의 수 M을 16으로 가정한 상태에서 PE_0에서 요구되는 부분합 레지스터인 r의 위치를 나타낸 도면이다. 이때 N이 64인 트리를 위한 PSN의 예이다.
도 6을 참조하면, 각 열에 있는 1 또는 0의 값은 각 매트릭스 생성 유닛에서 생성된 값(ui) 각각이 복호화되어 얻어졌을 때 각 부분합 레지스터에 ui를 업데이트할 것인지를 판단하는 값들이다.
즉, 해당 열의 값은 해당 타이밍에 매트릭스 생성 유닛(10)에서 만들어지는 값이다.
도 6에서 원으로 표시된 열의 값들(1 또는 0)은 PE0가 디코딩 과정에서 요구하는 부분합의 값이며 예를 들어 가장 위에 위치하는 원으로 표시된 1은 u0가 r0에 업데이트 되어 있는 경우, u1을 디코딩하는 과정에서 r0에 저장된 값이 PE0의 연산에 필요하다는 의미이다.
따라서 원으로 표시된 값들에 해당하는 레지스터들은 PE0에 연결되어 멀티플랙싱 과정이 필요하게 된다.
이때 필요한 연결 멀티플랙서(30)의 크기는 PE의 수를 M이라 할 때 M/2-to-1이 된다.
이는 동일 스테이지에서 요구되는 값들이 서로 다른 레지스터에 흩어져 있다는 것을 뜻하며 본 발명에서는 이를 해결하기 위해 스테이지 전용의 레지스터를 추가하고, PE의 특정 스테이지에서 선택하는 레지스터의 위치를 최소화하여 연결 멀티플랙서(30)의 입력 수를 줄일 수 있다.
구체적으로 스테이지 0을 위한 레지스터를 추가하여 r2, r4, r6, r10, r12, r14의 연결을 하나의 스테이지 0 레지스터로 대체할 수 있어, 입력 수를 줄일 수 있게 된다.
도 7에는 본 발명에서 레지스터를 사용하여 각 스테이지의 전용 레지스터를 사용하여 레지스터를 줄이는 과정을 나타내었다.
도 8은 종래 부분합 네트워크의 예를 나타낸 블록도이고, 도 9는 본 발명에 적용되는 부분합 네트워크의 예를 나타낸 블록도이다.
도 8과 도 9를 비교하면 본 발명은 스테이지 전용 레지스터를 사용하여 각 스테이지에서의 연결 멀티플랙서(30)의 입력 수를 줄일 수 있다.
도 8의 종래의 예에서는 스테이지 전용 레지스터를 사용하지 않고, PE0의 스테이지마다 필요한 레지스터 값을 선택적으로 출력하기 위하여 연결 멀티플랙서(30)의 입력이 9개가 필요하지만, 본 발명의 구성인 도 9의 예에서는 3개의 스테이지 전용 레지스터를 사용하여 연결 멀티플랙서(30)의 입력을 5개로 줄일 수 있는 것을 보여준다.
이처럼 본 발명은 매트릭스 생성 유닛(10)의 최대 생성 비트의 수를 PE의 수와 동수로 한정하고, 잔여 스테이지를 이루는 구성을 최대 생성 비트 수에 해당하는 스테이지의 구성과 동일한 수의 멀티플랙서로 구성함으로써, 멀티플랙서의 사용 수를 대폭 줄일 수 있으며, PE에서 요구하는 부분합의 수에 따라 부분합 연산 유닛(20)의 특정 스테이지에 전용 레지스터를 부가하여 부분합 네트워크 장치와 PE를 연결하는 연결 멀티플랙서(30)의 입력 수를 획기적으로 줄일 수 있게 된다.
본 발명은 상기 실시예에 한정되지 않고 본 발명의 기술적 요지를 벗어나지 아니하는 범위 내에서 다양하게 수정, 변형되어 실시될 수 있음은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어서 자명한 것이다.
10:매트릭스 생성 유닛 20:부분합 연산 유닛
21:부분합 차수 연산부 22:스테이지 레지스터부
30:연결 멀티플랙서
21:부분합 차수 연산부 22:스테이지 레지스터부
30:연결 멀티플랙서
Claims (5)
- 현재 복호 결과를 업데이트할 레지스터 위치를 연산하는 매트릭스 생성 유닛과, 매트릭스 생성 유닛의 연산 결과 값과 현재 복호 결과 및 이전 복호 결과를 이용하여 부분 합을 연산하는 부분합 연산 유닛과, 부분합 연산 유닛의 연산결과들 중 일부를 선택하여 프로세싱 엘리먼트로 제공하는 연결 멀티플랙서를 포함하는 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치에 있어서,
상기 매트릭스 생성 유닛은,
최대 프루닝 비트를 상기 프로세싱 엘리먼트의 수와 동수로 한정하고,
최대 프루닝 비트의 산출에 사용되는 스테이지 이후의 잔여 스테이지들 각각에 구비된 멀티플랙서의 입력수를 상기 최대 프루닝 비트를 생성한 마지막 스테이지의 멀티플랙서의 입력수와 동수로 제한한 것을 특징으로 하는 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치.
- 제1항에 있어서,
상기 최대 프루닝 비트를 생성한 마지막 스테이지의 차수는 아래의 수학식 1로 정의되는 것을 특징으로 하는 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치.
[수학식 1]
log2(2M/P)
M은 프로세싱 엘리먼트의 수, P는 스테이지의 병렬 수
- 제2항에 있어서,
상기 최대 프루닝 비트를 생성한 마지막 스테이지에 포함된 멀티플랙서의 수와 각 멀티플랙서의 입력수는 아래의 수학식 2로 정의되는 것을 특징으로 하는 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치.
[수학식 2]
((N/4P)-(4M/P))(멀티플랙서의 수) X (log2(2M/P)(입력 수)-to-1(출력 수))(멀티플랙서의 종류) = ((N/4P)-(4M/P)) X (log(M/P))(2-to-1 멀티플랙서 수)
N은 코드길이, 멀티플랙서의 종류는 멀티플랙서의 입력 수에 따른 값
- 제1항에 있어서,
상기 부분합 연산 유닛은,
부분합 차수 연산부에 스테이지 레지스터부를 더 포함하여 구성되며,
상기 스테이지 레지스터부는 상기 프로세싱 엘리먼트에서 요구하는 부분합의 수에 따라 결정된 스테이지 전용의 적어도 하나 이상의 레지스터로 이루어진 것을 특징으로 하는 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치.
- 제4항에 있어서,
상기 프로세싱 엘리먼트에서 요구하는 부분합의 수가 1, 2 또는 4인 경우,
상기 스테이지 레지스터부는 스테이지 0, 스테이지 1, 스테이지 2에 상기 스테이지 전용 레지스터를 포함하는 병렬 SC 복호기의 멀티비트 부분합 네트워크 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190077704A KR102170785B1 (ko) | 2019-06-28 | 2019-06-28 | 병렬 sc 복호기의 멀티비트 부분합 네트워크 장치 |
PCT/KR2019/017108 WO2020262777A1 (ko) | 2019-06-28 | 2019-12-05 | 병렬 sc 복호기의 멀티비트 부분합 네트워크 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190077704A KR102170785B1 (ko) | 2019-06-28 | 2019-06-28 | 병렬 sc 복호기의 멀티비트 부분합 네트워크 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102170785B1 true KR102170785B1 (ko) | 2020-10-27 |
Family
ID=73136131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190077704A KR102170785B1 (ko) | 2019-06-28 | 2019-06-28 | 병렬 sc 복호기의 멀티비트 부분합 네트워크 장치 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102170785B1 (ko) |
WO (1) | WO2020262777A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220141044A (ko) * | 2021-04-12 | 2022-10-19 | 아주대학교산학협력단 | 극 부호 연속 제거 비트 반전 복호 장치 및 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150122757A (ko) * | 2013-03-07 | 2015-11-02 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 폴라 코드 디코딩 방법 및 디코더 |
KR20160098474A (ko) * | 2013-12-24 | 2016-08-18 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 폴라 코드 디코딩 방법 및 디코딩 장치 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10461779B2 (en) * | 2015-08-12 | 2019-10-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Rate-compatible polar codes |
KR102433645B1 (ko) * | 2015-11-09 | 2022-08-18 | 삼성전자주식회사 | 무선 통신 시스템에서 복호화 방법 및 장치 |
-
2019
- 2019-06-28 KR KR1020190077704A patent/KR102170785B1/ko active IP Right Grant
- 2019-12-05 WO PCT/KR2019/017108 patent/WO2020262777A1/ko active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150122757A (ko) * | 2013-03-07 | 2015-11-02 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 폴라 코드 디코딩 방법 및 디코더 |
KR20160098474A (ko) * | 2013-12-24 | 2016-08-18 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 폴라 코드 디코딩 방법 및 디코딩 장치 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220141044A (ko) * | 2021-04-12 | 2022-10-19 | 아주대학교산학협력단 | 극 부호 연속 제거 비트 반전 복호 장치 및 방법 |
KR102511779B1 (ko) | 2021-04-12 | 2023-03-17 | 아주대학교산학협력단 | 극 부호 연속 제거 비트 반전 복호 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2020262777A1 (ko) | 2020-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107124188B (zh) | 极化码的编码方法、译码方法、编码设备和译码设备 | |
CN109314524B (zh) | 使用通用极化码时通过异构内核进行速率匹配的系统和方法 | |
US10931400B2 (en) | Decoding method and apparatus in wireless communication system | |
KR102338508B1 (ko) | 고차 변조를 사용하는 통신 또는 방송 시스템에서 부호화/복호화 방법 및 장치 | |
JP7279779B2 (ja) | Polar符号の構築のための方法および装置 | |
KR20180138101A (ko) | 통신 및 방송 시스템을 위한 부호율-조정 방법 및 장치 | |
KR102529800B1 (ko) | 폴라 코드의 부호율 조정 방법 및 장치 | |
KR20170102173A (ko) | 데이터 전송 방법 및 디바이스 | |
US10548158B2 (en) | Message passing algorithm decoder and methods | |
CN111247743A (zh) | 在crc制码之前对包括已知位的nr pbch有效载荷进行交织以增强极化码性能 | |
CN111446969A (zh) | 一种级联crc码的极化码编码方法及装置 | |
CN110506395A (zh) | 极化码解码中的连续消除顺序的改变 | |
KR102170785B1 (ko) | 병렬 sc 복호기의 멀티비트 부분합 네트워크 장치 | |
US10944506B2 (en) | Method and apparatus for transmitting and receiving signal by using polar coding | |
CN108809485B (zh) | 一种编码的方法和装置 | |
KR20190013374A (ko) | 통신 또는 방송 시스템에서 극부호 부호화/복호화 방법 및 장치 | |
CN114079530A (zh) | 编码方法及装置 | |
KR102115216B1 (ko) | 극부호 복호 장치 및 방법 | |
CN112889221A (zh) | 用于非二进制码的消息传递解码的校验节点处理单元中的偏移值确定 | |
WO2018060976A1 (en) | Soft output decoding of polar codes | |
CN111525980B (zh) | 译码方法及装置 | |
Lewandowsky et al. | Design and evaluation of information bottleneck LDPC decoders for software defined radios | |
Huilgol | Channel coding techniques for 5G using polar codes | |
CN111600613B (zh) | 一种校验方法、装置、译码器、接收机及计算机存储介质 | |
US12107604B2 (en) | Network node and method performed therein for handling received signal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |