KR20090014251A - 효율적 재사용 공통연산기 구조를 갖는 엘디피씨 복호기 - Google Patents

효율적 재사용 공통연산기 구조를 갖는 엘디피씨 복호기 Download PDF

Info

Publication number
KR20090014251A
KR20090014251A KR1020070078325A KR20070078325A KR20090014251A KR 20090014251 A KR20090014251 A KR 20090014251A KR 1020070078325 A KR1020070078325 A KR 1020070078325A KR 20070078325 A KR20070078325 A KR 20070078325A KR 20090014251 A KR20090014251 A KR 20090014251A
Authority
KR
South Korea
Prior art keywords
ldpc
vnu
common
lut
cnu
Prior art date
Application number
KR1020070078325A
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 김정기
Priority to KR1020070078325A priority Critical patent/KR20090014251A/ko
Publication of KR20090014251A publication Critical patent/KR20090014251A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • 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/6502Reduction of hardware complexity or efficient processing
    • 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/6569Implementation on processors, e.g. DSPs, or software implementations

Landscapes

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

Abstract

본 발명은 Low-Density Parity-Check Code(LDPC) 부호의 복호과정에서 check노드의 연산기와 varible노드의 연산기를 공통으로 사용하는 복호기 설계 방법을 개발하였고 그 결과를 확인한다. 본 발명은 복호과정에서 사용되는 연산기를 공통으로 재사용하여 하드웨어의 크기를 효과적으로 줄일 수 있는 방법이다.
엘디피씨 복호기, LDPC decoder, 재사용구조, 공통 연산기, 효율적 크기

Description

효율적 재사용 공통연산기 구조를 갖는 엘디피씨 복호기 {An efficient Construction for LDPC decoder}
도 1은 message passing 알고리즘,
도 2는 기존의 Check노드 연산기,
*도 2의 도면의 주요부분에 대한 부호의 설명
10 : LUT(Look Up Table)
11 : 부호연산
20 : Check 노드 연산기의 자기 자신의 데이터를 제외한 합들을 계산하는 과정
도 3은 기존의 Variable노드 연산기,
*도 3의 도면의 주요부분에 대한 부호의 설명
30 : variable 노드 연산기의 자기 자신의 데이터를 제외한 합들을 계산하는 과정
도 4는 개발한 공통 연산기(Common operation Unit),
*도 4의 도면의 주요부분에 대한 부호의 설명
10 : LUT(Look Up Table)
11 : 부호연산
40 : 2 to 1 멀티플렉서
41 : 제어신호
도 5는 개발한 복호 과정과 기존의 복호 과정의 비교도,
도 6은 발명한 공통 연산기의 제어신호(41)에 따른 흐름도.
Gallager에 의하여 제안된 Low density parity check(LDPC) 부호는 Shannon한계에 근접하는 우수한 복호 성능을 보인다. 또한, 패리티 검사 행렬의 저밀도성에 기인한 확률 기반 반복 복호의 구현이 하드웨어 기술의 발전으로 인하여 쉬워지면서 LDPC 부호는 채널코딩 분야의 중요한 연구 주제로 주목받아왔다. 현재 LDPC 부호에 관련된 연구는 크게 효율적인 부호화의 방법에 대한 연구와 복잡도 감소 및 하드웨어의 크기를 줄이기 위한 복호기 설계로 대표될 수 있다. 대표적인 LDPC 부호의 복호 방법으로는 message passing반복 복호 알고리즘이 있다. 하지만, 위의 알고리즘에 의한 복호기 구현에 있어서도 복호를 위해서는 계산 복잡도가 높고 많은 메모리 및 하드웨어 크기를 요구하게 되므로 구현상 제한 요인이 될 수 있다. 그러므로 복호 과정에서 계산의 복잡도와 크기를 감소시킬 수 있다는 의미에서 하드웨어의 크기를 개선하는 더 나은 하드웨어적 방법이 필요하다. 본 발명에서는 LDPC부호의 check 노드 연산 과 variable 노드 연산과정의 구조적인 공통부분을 재사용하는 복호 기술을 개발하였다. message passing알고리즘은 도 1에 표현된 것과 같은 수학적 연산과정이다. 이를 하드웨어적으로 구현하였을 때의 대표적 연산기는 check 노드 연산기와 variable 노드 연산기, 이 두가지 종류로 대표된다. 이 두 가지의 연산기는 일종의 구조적인 유사점을 가지고 있는데 이는 한 부분의 입력데이터 중에 자기 자신의 값을 제외한 합들을 출력시키는 연산이다.
상기와 같이 본 발명은 message passing알고리즘을 이용한 LDPC 복호 과정에 있어서 check노드 연산과 veaiable노드 연산의 구조적인 공통점을 이용하여 연산기를 재사용하는 방법을 적용함으로써 전체적인 하드웨어의 크기를 감소시킬 수 있는 장점을 제공한다.
본 발명은 LDPC 복호 과정에서 연산기를 공통으로 재사용하는 방법으로 하드웨어의 크기를 효과적으로 감소시키는 것이다. 이를 위해서 연산기에서 공통적인 부분을 재사용할 수 있도록 기존의 연산기를 약간 변형시키는 것이 필요하다. 이러한 약간의 변형을 좀 더 쉽게 설명하기 위해서 (3,6)regular LDPC인 경우를 예를 들어 자세한 설명을 계속하도록 한다. 좀더 용이한 설명을 위해서 용어를 정리하면, LDPC의 check노드 연산기를 CNU(check node operation unit)로, variable노드 연산기를 VNU(variable node operation unit)로 그리고 발명한 공통 연산기를 CU(common operation unit)으로 간략히 용어를 정의하여 설명하도록 하겠다. (3,6)regular LDPC의 경우에서 괄호 안의 숫자 6은 CNU의 입력 데이터의 개수를, 3은 VNU의 입력 데이터의 개수라고 말할 수 있다. 기존의 (3,6)regular LDPC의 CNU와 VNU는 각각 도 2와 도 3과 같다. 도 2 및 도 3에서와 같이 CNU에서의 과정 중 LUT(10)을 통과한 데이터들은 자기 자신의 데이터를 제외한 합들을 계산하는 과정(20)을 거친다. 또한 VNU에서도 자기 자신의 데이터를 제외한 합들을 계산하는 과정(30)을 계산한다. 그러므로 본 발명은 이 두 가지의 과정을 동시에 하나의 CU로 공통적인 연산을 대체하여 VNU의 연산기를 사용하지 않도록 구성하고 하드웨어의 크기를 감소시킬 수 있다. 그러나 이와 같이 공통적인 부분을 제외하면 CNU에는 LUT(10)과 부호연산(11)이 VNU에는 존재하지 않고 또한 입력 데이터의 수도 다르다. 이러한 문제점을 해결하기 위해서 도 4에서와 같이 개발한 공통 연산기에서는 기존의 CNU에 2 to 1 멀티플렉서(40)를 삽입하여 제어신호(41)에 따라 공통 연산기를 CNU와 VNU로 선택하여 동작하도록 하였다. 여기서 LUT(10)은 도 1에서 나타낸 LDPC복호과정의 Check 노드 연산에서 함수
Figure 112007056822194-PAT00001
의 값들을 미리 램에 저장을 시켜놓은 것이다. LUT를 사용하는 주된 이유는 함수
Figure 112007056822194-PAT00002
의 계산이 복잡하기 때문에 동 작시간을 줄이고 하드웨어를 간단하게 구현하기 위함이다. 또한 일반적으로 LDPC의 H행렬은 CNU의 입력이 VNU의 입력보다 더 많다. 때문에 VNU의 입력 데이터 수만큼의 CNU의 입력 데이터 개수를 일치하도록 CNU안에 VNU를 구성할 수 있다. 그러므로 (3,6)regular LDPC의 경우 1개의 CNU안에 2개의 VNU가 포함되도록 공통 연산기(Common Unit)를 구성할 수 있다. 도 4에서 한 개의 CNU에 2개의 VNU가 포함됨을 확인할 수 있다. 공통 연산기 내에 추가로 삽입된 멀티플렉서(40)은 LUT(10)와 자기 자신의 데이터를 제외한 합들을 계산하는 과정(20)사이에 위치하여 만약 제어신호(41)이 1이면 LUT(10)을 통과한 신호를 선택하여 한 개의 CNU로 동작하고, 제어신호(41)이 0이면 LUT(10)를 통과하지 않은 신호를 선택하여 (3,6)regular LDPC의 경우 2개의 VNU로 동작하도록 구성하였다. 그리하여 전체의 LDPC복호기의 복호과정은 도 5와 같은 과정을 거친다. 기존의 복호과정은 초기화된 값이 CNU에서 계산되고 메모리에 저장된 후, VNU의 과정을 거쳐 다시 메모리에 저장되고 VNU에서 일부의 값은 결과 값으로 출력된다. 이와 비해서 개발한 구조는 초기화된 값을 공통 연산기에서 계산하고 메모리에 저장한 후, 다시 공통 연산기의 연산과정을 거친 다음 메모리에 저장되고 이때 일부의 공통 연산기의 결과 값이 복호기의 출력이 된다. 그러므로, 발명한 방식은 VNU를 따로 만들지 않아도 공통 연산기에서 재사용하므로써 VNU만큼의 하드웨어 크기의 이득을 얻을 수 있다. 도 6은 제안한 공통 연산기의 동작 흐름도이다. 도 6에서 (3,6)regular LDPC의 경우 공통 연산기에서 제어신호(41)가 1이면 한 개의 CNU로 제어신호(41)가 0이면 두 개의 VNU로 동작함을 확인할 수 있다. 표1은 발명한 복호 방식과 기존의 복호 방식에 따른 FPGA의 합성 결 과(Synthesis)이다. 합성은 Xilinx 사의 Vertex-4, device는 XC4VLX60을 사용하였고, 하드웨어 기술 언어는 verilog를 사용하였다. LDPC의 H행렬은 (3,6)regular LDPC이고, 부호율은 1/2, 총 부호어의 길이는 1536비트, 각각의 정수표현은 총 6비트 정규화 단계로써 총 6비트 중, 1비트는 부호를, 3비트는 정수를, 나머지 2비트는 소수를 표현하도록 하였다. 표1로부터 기존의 방식(VNU와 CNU가 따로 존재하는 방식)과 발명한 방식을 비교해 보면, CNU에서는 기존의 CNU내에 2 to 1 멀티플렉서(40)의 삽입으로 공통 연산기(Common Unit)으로 만드는 것으로 인하여 9%정도의 큰 크기를 가지지만, VNU는 발명한 구조에서는 공통 연산기로 재사용으로 인하여 하나도 사용하지 않았고, 전체적으로는 10%정도의 크기의 감소 효과를 가져 올 수 있었다. 참고적으로 표1에 나타낸 Slice와 4-input LUT는 xilinx사의 FPGA에서의 크기를 표현하는 일종의 단위이다.
구조 Slice 감소율 4-input LUT 감소율 Block RAM
초기화 기존의 구조 71 0% 109 0% 6
발명한 구조 71 109 6
CNU 기존의 구조 202 -10.4% 421 -8.8% ·
발명한 구조 223 458 ·
VNU 기존의 구조 36 100% 72 100% ·
발명한 구조 0(재사용) 0(재사용) ·
전체 LDPC 복호기 기존의 구조 1563 13.4% 3126 16.2% 96
발명한 구조 1353 2620 96
본 발명은 기존의 CNU와 VNU의 구조적인 공통점을 이용하여 개발한 공통 연산기로 VNU때의 연산을 재사용을 하도록 함으로써 VNU만큼의 하드웨어 크기를 절약할 수 있는 것으로써 기존의 복호 방법보다 좀 더 효율적인 크기를 갖는다. 그러므로 발명한 구조는 크기에 대한 요구가 높은 여러 통신 시스템에서 유용한 대안이 될 수 있다.

Claims (2)

  1. 엘디피씨 복호 방법에 있어서 체크 노드 연산과 베리어블 노드 연산을 공통으로 수행할 수 있는 공통 연산기 구조를 이용하여 엘디피씨 부호를 복호하는 방법.
  2. 제 1 항에 있어서, 공통 연산기 구조를 엘디피씨의 여러 부호율 및 regular와 irreguler 엘디피씨에 적용한 경우.
KR1020070078325A 2007-08-04 2007-08-04 효율적 재사용 공통연산기 구조를 갖는 엘디피씨 복호기 KR20090014251A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070078325A KR20090014251A (ko) 2007-08-04 2007-08-04 효율적 재사용 공통연산기 구조를 갖는 엘디피씨 복호기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070078325A KR20090014251A (ko) 2007-08-04 2007-08-04 효율적 재사용 공통연산기 구조를 갖는 엘디피씨 복호기

Publications (1)

Publication Number Publication Date
KR20090014251A true KR20090014251A (ko) 2009-02-09

Family

ID=40684307

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070078325A KR20090014251A (ko) 2007-08-04 2007-08-04 효율적 재사용 공통연산기 구조를 갖는 엘디피씨 복호기

Country Status (1)

Country Link
KR (1) KR20090014251A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150038477A (ko) 2012-10-10 2015-04-08 미쓰비시덴키 가부시키가이샤 스위치 기어
CN112234998A (zh) * 2020-08-17 2021-01-15 西安电子科技大学 一种使用滑动窗口译码空间耦合ldpc码的方法及装置
CN114584259A (zh) * 2022-02-18 2022-06-03 阿里巴巴(中国)有限公司 译码方法、装置、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150038477A (ko) 2012-10-10 2015-04-08 미쓰비시덴키 가부시키가이샤 스위치 기어
CN112234998A (zh) * 2020-08-17 2021-01-15 西安电子科技大学 一种使用滑动窗口译码空间耦合ldpc码的方法及装置
CN114584259A (zh) * 2022-02-18 2022-06-03 阿里巴巴(中国)有限公司 译码方法、装置、设备及存储介质
CN114584259B (zh) * 2022-02-18 2024-02-09 阿里巴巴(中国)有限公司 译码方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
Yuan et al. Architecture optimizations for BP polar decoders
JP4595650B2 (ja) 復号装置および復号方法
US8166363B2 (en) Decoding device and method
Shin et al. Design of length-compatible polar codes based on the reduction of polarizing matrices
Sarkis et al. Stochastic decoding of LDPC codes over GF (q)
DE102017130591A1 (de) Verfahren und Vorrichtung zur Fehlerkorrekturkodierung auf Basis einer Datenkomprimierung
JP2006508577A (ja) ランニングミニマム・メッセージパッシングldpc復号化
CN106998208B (zh) 一种可变长Polar码的码字构造方法
EP1443656A3 (en) Method of generating parity data based on a low-density parity check (LDPC) matrix and apparatus therefor
JP2006339799A (ja) イレギュラー低密度パリティチェック符号復号器及び方法
US20160105199A1 (en) Fast mapping method for layered min-sum decoding of ldpc codes,
KR101481431B1 (ko) 저밀도 패리티 검사 행렬 재배열 방법 및 이를 이용하는 장치
KR20090014251A (ko) 효율적 재사용 공통연산기 구조를 갖는 엘디피씨 복호기
US20160149590A1 (en) Length and rate compatible ldpc encoder and decoder
KR101657912B1 (ko) 비이진 저밀도 패리티 검사 코드의 복호화 방법
Sun et al. Low complexity polar decoder for 5G eMBB control channel
Huang et al. Simplified successive cancellation decoding of polar codes with medium-dimensional binary kernels
Jiang et al. Large girth quasi-cyclic LDPC codes based on the Chinese remainder theorem
KR102659349B1 (ko) 데이터 압축 장치 및 방법
CN107733441B (zh) 编码方法及装置、译码方法及装置
KR101908389B1 (ko) 에러 정정 코딩 및 디코딩
Fenwick Burrows–Wheeler compression: Principles and reflections
KR20040087066A (ko) 이동통신에서 오류정정부호의 복잡도 감소 방법
JP2009290657A (ja) 誤り訂正装置
Kim Improved trellis-based decoder for non-binary LDPC codes

Legal Events

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