KR101073636B1 - 저밀도 패리티 검사 부호를 이용한 복호화 장치 - Google Patents

저밀도 패리티 검사 부호를 이용한 복호화 장치 Download PDF

Info

Publication number
KR101073636B1
KR101073636B1 KR1020090064030A KR20090064030A KR101073636B1 KR 101073636 B1 KR101073636 B1 KR 101073636B1 KR 1020090064030 A KR1020090064030 A KR 1020090064030A KR 20090064030 A KR20090064030 A KR 20090064030A KR 101073636 B1 KR101073636 B1 KR 101073636B1
Authority
KR
South Korea
Prior art keywords
message
calculator
node
controller
memory bank
Prior art date
Application number
KR1020090064030A
Other languages
English (en)
Other versions
KR20110006409A (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 광운대학교 산학협력단
Priority to KR1020090064030A priority Critical patent/KR101073636B1/ko
Publication of KR20110006409A publication Critical patent/KR20110006409A/ko
Application granted granted Critical
Publication of KR101073636B1 publication Critical patent/KR101073636B1/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
    • 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/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/6566Implementations concerning memory access contentions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 LDPC 부호를 이용한 복호화 장치에 관한 것이다. 상기 복호화 장치는 비트 노드 계산기와 검사 노드 계산기를 통합하여 노드 선택 계산기를 구현하고, 비트 노드 계산기의 가산기와 검사 노드 계산기의 가산기를 공통으로 사용함으로써, 전체 면적을 최소화시킨다. 또한, 상기 복호화 장치는 메모리 뱅크의 구조를 변형하여 하나의 메모리 뱅크가 단일 클럭 사이클동안 2개의 메시지를 처리할 수 있도록 하고, 변형된 메모리 뱅크로 정확하게 액세스할 수 있도록 하는 데이터 정렬기를 더 구비한다. 이러한 구성에 의해, 본 발명에 따른 복호화 장치는 작은 면적으로 높은 처리량을 구현할 수 있게 된다.
Low-density parity check codes, LDPC, Message-passing decoder, Partially parallel decoder, Log-likelihood ratio, Irregular repeat-accumulate, Node function module

Description

저밀도 패리티 검사 부호를 이용한 복호화 장치{Decoder using Low Density Parity Check code}
본 발명은 통신 시스템에서의 복호화 장치에 관한 것으로서, 더욱 구체적으로는 저밀도 패리티 검사 (Low Density Parity Check; 이하 'LDPC'라 한다) 부호를 이용한 복호기 장치에 관한 것이다.
최근 증가하고 있는 고품질의 디지털 방송 서비스를 제공하기 위하여 영상, 음성, 데이터가 서비스 요청자에게 고속으로 전송된다. 전송된 방대한 양의 데이터 신호의 오류를 수정하기 위해서는 전송채널의 특성과 데이터의 종류에 따라 가장 효율적인 부호화 기법의 적용이 반드시 필요하다. 샤논 (Shannon)이 제시한 채널 용량에 가장 근접한 부호로서 현재 터보 부호 (Turbo code)가 통신 시스템에 많이 사용되고 있다. 터보 부호와 같이 반복 복호 기법을 이용하여 오류 수정 가능성을 높이고 병렬 복호가 가능하여 빠르게 전송 신호의 오류를 수정할 수 있는 부호가 LDPC 부호이다. LDPC 부호는 유럽 전기통신 표준화기구 ETSI (European Telecommunications Standards Institute)의 디지털 위성 방송 2세대 표준인 DVB-S2 (Digital Video Broadcasting-Satellite 2)에 사용되는 부호이다. LDPC 부호가 적용된 시스템의 하드웨어 구현 시, LDPC 복호기는 복잡도가 낮으므로 구현이 쉽고 고성능의 오류 수정 기능을 적은 면적에 구현할 수 있다. LDPC 복호기가 갖는 높은 오류 수정 능력과 빠른 복호 시간은 이동통신 시스템 및 고품질의 디지털 방송 시스템 등에 적합하다.
LDPC 부호는 Gallager가 제안한 선형 블록 부호로써, Tanner 그래프로 표현할 수 있는 패리티 검사 행렬 (Parity-Check Matrix) H로 정의된다. Tanner 그래프는 LDPC 부호를 일반화하여 표현한 이분 그래프 (Bipartite graph)이며, 비트 노드, 체크 노드 및 에지로 이루어진다. Tanner 그래프는 이진 원소로 구성된 패리티 검사 행렬 H의 구성에 따라 비트 노드와 검사 노드가 이분 그래프상의 에지로 연결되고, 반복적인 복호 과정에서 비트 노드 연산과 검사 노드 연산 시 각 노드에 연결된 상대 노드의 메시지 값을 이용하여 계산 결과를 산출하게 된다.
한편, LDPC 복호기 구조는 크게 직렬 복호 구조, 병렬 복호 구조, 부분 병렬 구조로 구분할 수 있다. 직렬 복호 구조는 다른 복호기 구조들에 비하여 면적이 작지만 단위 시간당 처리량이 적은 문제가 있다. 병렬 복호 구조는 빠른 처리량의 장점이 있지만 면적이 다른 복호기 구조들에 비하여 매우 큰 단점을 갖는다. 예를 들어 한번의 반복 복호 과정에서 계산해야 할 비트 노드의 수가 64,800개이고 검사 노드의 수가 32,400개인 경우, 복호기를 전체 병렬 방식의 하드웨어를 구현하면 비트 노드 계산기 64,800개, 검사 노드 계산기 32,400개가 필요하게 된다. 하드웨어 면적을 고려하여 부분 병렬 방식으로 복호기를 구현하더라도 비트 노드 계산기와 검사 노드 계산기가 300개 정도 필요하게 되며, 이 경우 비트 노드 계산기와 검사 노드 계산기의 면적이 전체 복호기에서 메모리 뱅크 다음으로 큰 면적을 차지한다. 고품질의 디지털 방송과 같이 고속의 데이터 처리가 필요한 시스템 구성을 위해서는 처리량을 높이기 위하여 노드 계산기의 수를 증가시켜야 하는데, 그 수가 증가하면 복호기 전체의 면적이 증가하게 되어 사용 면적의 효율성이 떨어지게 된다. 부분 병렬 복호기 구현시 한 클럭 사이클에 메모리 뱅크 당 하나의 메시지만을 입력 및 출력하게 되면 메모리 뱅크에 연결된 노드 계산기의 입력, 출력 메시지의 개수가 한정되어 복호기 처리량 증가에 걸림돌이 된다. 전술한 문제점들을 해결하기 위하여, 한 클럭 사이클에 다수의 메시지의 입력, 출력이 가능한 다중 포트 메모리를 사용할 수 있다. 이 경우 복호기의 메모리 뱅크의 면적이 크게 증가하게 되고, 그 결과 복호기의 전체 면적이 크게 증가하는 문제점이 발생한다.
일반적으로 복호기를 부분 병렬 구조로 구현하게 되는데 선형 부호화 시간을 갖는 LDPC-IRA 부호를 사용하면 빠른 시간 내에 LDPC 부호의 부호화와 복호화를 가능하게 하고, 복호 과정에서 발생하는 메시지를 패리티 검사 행렬 H(100)내의 일정한 형태를 갖는 부 행렬의 형식에 맞추어 할당된 메모리 뱅크에 저장하여 메모리 충돌없는 메시지 출력을 가능하게 한다. LDPC 복호기의 처리량은 노드 계산기의 메시지 처리량에 비례하여 증가한다. 증가된 노드 계산기의 개수에 맞는 메시지의 입력이 지원되어야 전체적인 복호기 처리량의 증가가 가능하다.
전술한 문제점을 해결하기 위한 본 발명의 목적은 비트 노드 계산기와 검사 노드 계산기를 통합하여 공유되도록 함으로써, 전체 면적을 감소시키면서 높은 처리량을 갖는 LDPC 부호를 이용한 복호화 장치를 제공하는 것이다.
본 발명의 다른 목적은 비트 노드 계산기와 검사 노드 계산기를 통합함과 동시에, 부분 병렬 복호 과정에서 발생하는 메시지의 저장을 위한 메모리 뱅크의 구조를 변경하고, 변경된 메모리 뱅크에 접근시 정확한 위치의 메시지 접근을 위한 데이터 정렬기를 부가함으로써, 적은 면적에서도 높은 처리량을 갖는 LDPC 부호를 이용한 복호기를 제공하는 것이다.
전술한 기술적 과제를 달성하기 위한 본 발명의 제1 특징에 따른 복호화 장치는 다음과 같다. 전체 동작을 제어하는 제어기; 복호화될 메시지들이 저장되는 다수 개의 메모리 뱅크; 상기 제어기의 제어 신호에 따라 상기 메모리 뱅크를 초기화하거나 액세스해야되는 메모리 뱅크의 주소값을 제공하는 메시지 메모리 제어기; 상기 제어기로부터 제공되는 동작 모드 신호에 따라 상기 메모리 뱅크로부터 출력되는 메시지를 특정 노드 선택 계산기로 제공하는 역다중화기; 상기 제어기로부터 제공되는 동작 모드 신호에 따라 비트 노드 계산기 및 검사 노드 계산기 중 어느 하나로 동작되는 다수 개의 노드 선택 계산기; 상기 노드 선택 계산기로부터 출력되는 결과 메시지를 상기 메모리 뱅크들 중 지정된 메모리 뱅크로 라우팅하는 셔플 네트워크를 구비한다. 상기 제어기는 각 클럭 사이클마다 노드 선택 계산기의 동작 모드를 결정하여 결정된 동작 모드에 따라 노드 선택 계산기 및 메시지 메모리 제어기로 동작 모드 신호를 제공하고, 메시지 메모리 제어기는 동작 모드 신호에 따라 액세스해야되는 메모리 뱅크의 주소값을 계산한다.
본 발명의 제2 특징에 따른 복호화 장치는 다음과 같다. 전체 동작을 제어하는 제어기; 복호화될 메시지들이 저장되며, 각각 2개 이상의 가상 메모리 뱅크들로 구성되는 다수 개의 메모리 뱅크; 상기 제어기의 제어 신호에 따라 상기 메모리 뱅크를 초기화하거나 액세스해야되는 메모리 뱅크의 주소값을 제공하는 메시지 메모리 제어기; 상기 제어기로부터 제공되는 동작 모드 신호에 따라 상기 메모리 뱅크로부터 출력되는 메시지를 특정 노드 선택 계산기로 제공하는 역다중화기; 상기 제어기로부터 제공되는 동작 모드 신호에 따라 비트 노드 계산기 및 검사 노드 계산기 중 어느 하나로 동작되는 다수 개의 노드 선택 계산기; 상기 노드 선택 계산기로부터 출력되는 결과 메시지를 상기 메모리 뱅크들 중 지정된 메모리 뱅크로 라우팅하는 셔플 네트워크; 상기 셔플 네트워크로부터 출력되는 메시지들의 오프셋 값에 따라 상기 메모리 뱅크로 입력되는 메시지들의 순서를 정렬하는 데이터 정렬기를 구비한다. 상기 제어기는 각 클럭 사이클마다 노드 선택 계산기의 동작 모드를 결정하여 결정된 동작 모드에 따라 노드 선택 계산기 및 메시지 메모리 제어기로 동작 모드 신호를 제공하고, 메시지 메모리 제어기는 동작 모드 신호에 따라 액세스해야되는 메모리 뱅크의 주소값을 계산한다.
전술한 제1 및 제2 특징에 따른 복호화 장치의 노드 선택 계산기는 다음과 같다. 비트 노드로부터 받은 메시지에 대한 정보가 입력되는 제1 입력부; 상기 제1 입력부로부터 입력된 메시지를 부호화된 크기로 변환하는 부호 크기 변환부; 제1 룩업테이블을 이용하여 상기 부호화된 크기로 변환된 메시지에 대한 매핑 데이터를 검출하여 출력하는 제1 매핑부; 검사 노드로부터 받은 메시지에 대한 정보가 입력되는 제2 입력부; 상기 제1 매핑부 및 제2 입력부로부터 메시지가 입력되고, 상기 제어기로부터의 제어 신호에 따라 상기 입력된 메시지 중 어느 하나가 선택되어 출력되는 다중화기; 상기 다중화기로부터 입력되는 메시지들을 합산하여 출력하는 가산기; 상기 가산기로부터 출력되는 메시지를 출력하는 제2 출력부; 제2 룩업테이블을 이용하여 상기 가산기로부터 출력되는 메시지에 대한 매핑 데이터를 검출하여 출력하는 제2 매핑부; 상기 제1 입력부로부터 입력된 메시지의 부호를 계산하여 출력하는 부호 계산기; 상기 부호 계산부로부터 입력되는 부호를 이용하여 상기 제2 매핑부로부터 입력되는 메시지를 2의 보수로 변환하여 출력하는 보수 변환부; 상기 보수 변환부로부터 출력되는 메시지를 출력하는 제1 출력부를 구비한다. 비트 노드 계산기와 검사 노드 계산기로 이루어지며, 상기 비트 노드 계산기와 검사 노드 계산기는 가산기를 공통으로 사용하는 것이 바람직하고, 상기 노드 선택 계산기의 다중화기는 비트 노드의 에지수와 검사 노드의 에지 수 중 큰 수만큼 구비되는 것이 바람직하다.
제2 특징에 따른 복호화 장치의 메모리 뱅크는 하나의 주소값에 해당하는 워드 길이를 메시지의 길이의 정수 배가 되도록 하는 것이 바람직하다.
제2 특징에 따른 복호화 장치의 데이터 정렬기는 다음과 같다. 데이터 정렬 기의 동작을 제어하는 제어기; 상기 제어기로부터 제공된 제어 신호에 따라 메시지의 위치를 서로 바꾸어 출력하는 크로스바 스위치; 상기 크로스바 스위치로부터 출력되는 메시지를 저장하는 제1 및 제2 레지스터; 상기 제어기로부터 제공된 제어 신호에 따라 상기 크로스바 스위치로부터 출력되는 메시지들의 경로를 선택하는 역다중화기 및 다중화기를 구비한다. 상기 데이터 정렬기의 제어기는 입력된 메시지의 주소값의 차이인 오프셋 값이 홀수인 경우, 상기 크로스바 스위치로 제어 신호를 제공하여 메시지의 위치를 서로 바꾸도록 한다.
전술한 제1 및 제2 특징에 따른 상기 복호화 장치는 LDPC 부호를 이용한 메시지의 복호화에 적용될 수 있으며, 제2 특징에 따른 복호화 장치는 LDPC-IRA 부호를 이용한 메시지의 복호화에 적용될 수 있다.
본 발명에 따른 복호화 장치는 비트 노드 계산기와 검사 노드 계산기를 통합해서 사용함으로써, 종래의 비트 노드 계산과 검사 노드 계산을 위해 각각 별도의 계산기를 사용하는 것에 비해, 노드 계산기의 전체 면적이 상당히 축소된다. 한편, 복호기의 전체 구조에서 노드 계산기가 차지하는 면적이 크므로, 본 발명에 의해 복호기의 전체 면적도 상당히 감소하게 된다. 따라서, 본 발명에 따른 복호화 장치는 비트 노드 계산기와 검사 노드 계산기에 모두 존재하는 가산기 (Adder Tree)를 공유하여 노드 계산기를 통합하여 노드 선택 계산기로 구현함으로써, 처리량 향상을 위해 노드 계산기의 수를 증가시켜도 전체적인 면적의 증가를 최소화시킬 수 있게 된다.
또한, 본 발명에 따른 복호화 장치는 노드 선택 계산기의 수를 증가시키면서, 단일 포트 메모리에서 다중의 메시지 읽기, 쓰기가 가능하도록 메모리 뱅크의 구조를 변경하고, 변경된 메모리 뱅크의 구조에 의해 발생하는 오프셋 값에 따른 메모리 접근 문제 해결을 위한 데이터 정렬기를 사용함으로써, 매우 적은 면적이 증가됨에도 불구하고 복호화 장치의 처리량을 크게 증가시킬 수 있게 된다.
본 발명의 제1 실시예에 따른 복호화 장치의 노드 선택 계산기는 모든 LDPC (Low Density Parity Check) 복호기에 적용할 수 있고, 본 발명의 제2 실시예에 따른 복호화 장치의 변형된 메모리 뱅크의 구조와 데이터 정렬기는 LDPC-IRA (LDPC-Irregular Repeat-Accumulate)와 같이 일정한 형식의 패리티 검사 행렬을 갖는 LDPC 부호의 복호기에 적용할 수 있다.
본 발명은 복호화 장치의 전체 면적을 최소화시키면서 성능은 향상시키기 위하여, 비트 노드 계산기와 검사 노드 계산기를 통합하여 공유함으로써 면적을 감소시킬 수 있는 특징을 갖는다. 즉, 비트 노드 계산기와 검사 노드 계산기 내에 모두 존재하는 가산기 (Adder Tree)을 공유하는 통합된 노드 선택 계산기를 구현하여 동일한 성능을 갖는 작은 면적의 LDPC 복호화 장치를 구현할 수 있다. 또한 메모리 뱅크 구조를 변형시키고 변형된 구조의 메모리 뱅크에 접근 시 정확한 위치의 메시지 접근을 위하여 데이터 정렬기를 삽입하여 높은 처리량 (High-throughput)의 LDPC 복호기 구현을 작은 면적에 가능하게 한 것을 특징으로 한다.
이하, LDPC 복호화 과정에 대해 개략적으로 설명한다. 도 1은 LDPC 부호를 구성하는 패리티 검사 행렬 H를 제시한 도면이며, 도 2는 도 1의 패리티 검사 행렬 H를 태너 그래프로 표현한 도면이다. 도 1을 참조하면, LDPC 부호는 패리티 검사 행렬 H(100)에 의해 정의될 수 있다. 패리티 검사 행렬의 정규 형식은 전송 채널을 통해 전송된 부호어의 정보 비트에서 패리티 검사 비트를 생성하는 A 행렬(110)과 채널 전송 전 송신기에서 생성한 패리티 검사 비트를 추출하는 B 행렬(120)로 나눌 수 있다. A 행렬(110)은 (K x (N-K)) 이고, B 행렬(120)은 ((N-K) x (N-K)) 로서 단위(Identity) 행렬이다.
패리티 검사 행렬 H(100)로부터 정의된 이분 그래프인 태너 그래프(200)를 형성하여 해당 그래프의 노드 그룹 간 메시지 전파 방법을 적용하여 입력 신호를 복호한다. 도 2를 참조하면, 태너 그래프(200)는 노드(210)(220)(230)와 에지(240)로 구성되며 노드는 비트 노드(210)(220)와 검사 노드(230)로 나누어진다. 비트 노드(210)(220)는 다시 정보 비트 노드(210)와 패리티 비트 노드(220)로 나눌 수 있고, 패리티 비트 노드(220)는 패리티 검사 행렬 H(100)의 행의 개수와 같다. 태너 그래프(200)의 각 노드는 패리티 검사 행렬 H(100)의 행과 열을 순서대로 나열한 형태이고, 패리티 검사 행렬 H(100)의 각 행과 열이 접하는 부분의 원소가 1인 경우에 비트 노드(210)(220)와 검사 노드(230)를 에지(240)로 연결한다. 이와 같이 정의된 태너 그래프(200)를 이용하여 입력신호의 복호를 수행한다. 반복 복호 시 정보 전달 (Message passing)의 효율성을 위해 대수 우도 비 (Log Likelihood Ratio) 값을 사용한다. 전송 채널을 통과한 부호어의 각 비트를 y i 라고 할 때 해당 비트 값의 확률을 P로 표시하고 해당 비트 값이 0일 확률 대비 1일 확률 값의 대수 우도 비를 수학식 1을 통해 계산한다.
Figure 112009042742361-pat00001
수학식 1을 이용하여 계산 한 초기 대수 우도 비를 이용하여 비트 노드(210)의 메시지 계산을 수행할 수 있다. 수학식 2를 통해 i번째 비트 노드의 j번째 검사 노드에 대한 메시지를 계산한다. 초기 계산 수행 시 해당 비트 노드(210)에 에지로 연결된 검사 노드(230)의 메시지 값이 존재하지 않으므로
Figure 112009042742361-pat00002
으로 설정한다. k는 노드 계산의 반복 횟수를 의미한다.
Figure 112009042742361-pat00003
수학식 3을 통해 j번째 검사 노드의 i번째 비트 노드에 대한 메시지 값을 계산한다.
Figure 112009042742361-pat00004
수학식 3의 계산을 위해서 수학식 4의 함수 정의가 필요하다.
Figure 112009042742361-pat00005
수학식 2의 계산 결과인 비트 노드 메시지 값을 이용하여 수학식 3에 따라 검사 노드 메시지 값을 계산한다. 계산한 검사 노드 메시지 값은 다시 비트 노드 메시지 값 계산을 위해 수학식 2의 입력이 되고 이와 같은 계산 과정을 정해진 k 횟수만큼 반복한다. k번 반복 복호 계산이 완료되면 수학식 5을 통해 비트 노드 메시지 값을 구하고, 수학식 6에 따라 해당 비트의 최종 복호 값을 결정한다.
Figure 112009042742361-pat00006
Figure 112009042742361-pat00007
상기의 계산 과정을 위한 하드웨어 구현 시 수학식 2의 비트 노드 계산을 위한 비트 노드 계산기와 수학식 3의 검사 노드 계산을 위한 검사 노드 계산기가 필요하다. 노드 계산기는 초기 전송 채널로부터 연판정 입력(soft decision input) 값을 받아서 정해진 반복 횟수만큼 각 노드의 메시지 값을 계산하게 된다. 각 노드의 경판정 출력(hard decision output)인 최종 복호 값의 출력 전까지는 연판정 입력 값을 받아 연판정 출력을 발생하는데, 비트 노드 계산기와 검사 노드 계산기 모 두 상대 노드의 우도 대수 비 값을 받아서 더하는 과정이 포함되므로 연판정 입력을 받아서 계산할 수 있는 가산기가 필요하다. 전술한 복호화 과정을 하드웨어로 구현한 것이 본 발명에 따른 복호화 장치이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 LDPC 부호를 이용한 복호화 장치의 구성 및 동작에 대하여 구체적으로 설명한다.
<제1 실시예>
이하, 도 4 내지 도 6을 참조하여 본 발명의 제1 실시예에 따른 복호화 장치의 구조 및 동작을 구체적으로 설명한다. 제1 실시예에 따른 복호화 장치는 검사 노드 계산기와 비트 노드 계산기를 통합하여 노드 선택 계산기로 구현하고, 각 클럭 사이클마다 제어기로부터 제공되는 동작 모드 신호에 따라 노드 선택 계산기의동작을 제어하는 것을 특징으로 한다.
도 4는 본 발명의 제1 실시예에 따른 LDPC 부호를 이용한 복호화 장치의 내부 구조를 전체적으로 도시한 블록도이다. 도 4를 참조하면, 본 발명에 따른 복호화 장치(700)는 전체 동작을 제어하는 제어기(702), 메시지들이 저장되는 메모리 뱅크(720), 메시지 메모리 제어기(706), LLR 메모리 제어기(704), 다수 개의 노드 선택 계산기(710), 셔플 네트워크(760), 역다중화기(740)를 구비한다. 상기 제어기(702), 메시지 메모리 제어기(706), LLR 메모리 제어기(704) 및 셔플 네트워크(760)는 1개씩 구비된다.
상기 메시지 메모리 제어기(706)는 상기 제어기의 제어 신호에 따라 상기 메 모리 뱅크를 초기화하거나 액세스해야되는 메모리 뱅크의 주소값을 제공한다. 메모리 뱅크(720)는 상기 메시지 메모리 제어기로부터 제공된 주소값에 저장된 메시지를 판독하여 출력한다.
상기 역다중화기(740)는 상기 메모리 뱅크로부터 입력되는 메시지를 노드 선택 계산기로 제공하는데, 노드 선택 계산기의 동작 모드에 따라 메시지를 출력할 노드 선택 계산기를 결정하고, 상기 결정된 노드 선택 계산기로 메시지를 제공하게 된다.
상기 노드 선택 계산기(710)는 상기 제어기로부터 각 클럭 사이클마다 제공되는 동작 모드 신호에 따라 비트 노드 계산기 및 검사 노드 계산기 중 어느 하나로 동작하여, 상기 역다중화기(740)로부터 입력되는 메시지를 계산하여 상기 셔플 네트워크로 출력한다. 상기 노드 선택 계산기(710)는 단일의 가산기를 구비하고, 상기 비트 노드 계산기와 검사 노드 계산기가 상기 가산기를 공통으로 사용하도록 함으로써, 노드 선택 계산기의 면적을 최소화시킬 수 있게 된다. 상기 노드 선택 계산기(710)의 세부 구조 및 동작에 대한 설명은 후술한다.
상기 셔플 네트워크(760)는 상기 노드 선택 계산기로부터 입력된 메시지를 정확한 메모리 뱅크에 저장되도록 라우팅하여, 상기 입력된 메시지에 대한 노드가 에지로 연결된 노드의 노드 선택 계산기로 전달될 수 있도록 한다. 즉, 상기 셔플 네트워크는 상기 노드 선택 계산기로부터 출력된 메시지가 태너 그래프상에서 에지로 연결된 노드에 대한 노드 선택 계산기와 연결된 메모리 뱅크에 저장될 수 있도록 메시지의 경로를 결정한다.
한편, 상기 제어기(702)는 처음 복호화 동작을 시작할 때 메시지 메모리 제어기를 통해 메모리 뱅크들을 초기화시킨다. 또한, 상기 제어기는 노드 선택 계산기의 동작 모드를 결정하고, 메시지 메모리 제어기(706), 셔플 네트워크(760), 역 다중화기(740) 및 노드 선택 계산기(710)로 동작 모드 신호를 전송한다. 이와 같이, 제어기로부터 제공된 동작 모드 신호에 따라, 메시지 메모리 제어기는 액세스해야 되는 메모리 뱅크의 주소값을 설정하며 셔플 네트워크는 메시지의 라우팅 방향을 결정하게 된다.
전술한 구성을 갖는 본 발명의 제1 실시예에 따른 복호화 장치는 비트 노드 계산기와 검사 노드 계산기를 단일의 노드 선택 계산기로 변경시킴으로써, 전체 면적을 감소시킬 수 있게 된다.
본 발명에서는 수학식 2의 비트 노드 계산을 위한 비트 노드 계산기와 수학식 3의 검사 노드 계산을 위한 검사 노드 계산기에 모두 포함되어 있는 가산기를 공유하는 노드 선택 계산기를 제안한다. 비트 노드 계산기는 전체 기능 부분이 가산기로 구성되어 있고 검사 노드 계산기는 가산기와 다른 기능 부분으로 구성되는데, 가산기 부분의 면적이 전체 검사 노드 계산기에서 차지하는 비중이 매우 높다. 따라서 비트 노드 계산 시와 검사 노드 계산 시에 가산기를 함께 사용할 수 있도록 구현한 하나의 노드 선택 계산기(710)의 면적이 비트 노드 계산기와 검사 노드 계산기의 면적의 합보다 작아진다. LDPC 부호의 종류에 따라 비트 노드와 검사 노드에 연결된 에지(240)의 수가 다르고, 특정 패리티 검사 비트 H(100)로 구성된 LDPC 부호에서도 비트 노드와 검사 노드에 연결된 에지(240)의 수가 다르기 때문에 비트 노드 계산 시와 검사 노드 계산 시에 가산기의 입력 메시지, 출력 메시지의 수가 다르다. 하나의 가산기를 통해 비트 노드 계산과 검사 노드 계산을 하기 위하여 다중화기들(multiplexers)을 비트 노드(210)의 에지 수(240)와 검사 노드(220)의 에지(240) 수 중 큰 수만큼 가산기의 입력 앞에 연결한다. 각 다중화기는 비트 노드 계산 시의 입력과 검사 노드 계산 시의 입력을 받게 되어 있다. 비트 노드 계산 시와 검사 노드 계산 시 메모리 뱅크로부터 입력받는 메시지의 경로는 메모리 뱅크와 노드 선택 계산기 사이에서 각 계산 과정에 맞게 분리되어 다중화기로 입력되므로 각 노드 계산 시 데이터의 충돌은 발생하지 않는다. LDPC 복호기의 처리량을 증가시키기 위해서는 노드 계산기의 수를 증가시켜야 하는데 전체 복호기에서 메모리 뱅크와 함께 노드 계산기가 가장 큰 면적을 차지하므로 노드 계산기의 증가는 전제 복호기의 면적을 크게 증가시킨다. 비트 노드 계산기와 검사 노드 계산기 내의 가산기(410) 공유를 통한 노드 선택 계산기로의 통합은 전체 복호기의 면적 증가를 최소화하여 하드웨어 비용을 절약할 수 있다.
이하, 도 5를 참조하여 제1 실시예에 따른 복호화 장치의 노드 선택 계산기의 구조 및 동작을 구체적으로 설명한다. 도 5는 본 발명의 제1 실시예에 따른 복호화 장치의 노드 선택 계산기(710)의 구조를 도시한 블록도이다. 도 5를 참조하면, 노드 선택 계산기(710)는 검사 노드를 계산하기 위한 검사 노드 계산기와 비트 노드를 계산하기 위한 비트 노드 계산기로 이루어진다. 검사 노드를 계산하기 위한 검사 노드 계산기는 순차적으로 연결되는 제1 입력부(430), 부호 크기 변환부(432), 제1 매핑부(434), 다중화기(436), 가산기(410), 제2 매핑부(437), 보수 변환부(438) 및 제1 출력부(439)를 구비하고, 부호 계산기(440)를 상기 제1 입력부(430)와 상기 보수 변환부(438)의 사이에 구비한다. 비트 노드를 계산하기 위한 비트 노드 계산기는 순차적으로 연결되는 제2 입력부(450), 다중화기(436), 가산기(410) 및 제2 출력부(452)를 구비한다. 상기 가산기(410)는 검사 노드 계산기 및 비트 노드 계산기에 공통적으로 사용되며, 상기 다중화기(436)는 비트 노드 계산기의 메시지 및 체크 노드 검사기의 메시지를 모두 입력받고, 제어기로부터 제공되는 동작 모드 신호에 따라 입력된 2개의 메시지 중 하나를 가산기(410)로 출력하게 된다. 이하, 전술한 각 구성 요소들의 동작들에 대하여 구체적으로 설명한다.
먼저, 검사 노드 계산기의 구조에 대하여 설명한다. 제1 입력부(430)는 비트 노드로부터 받은 메시지(LLR(qij))에 대한 정보가 입력되며, 입력된 메시지는 부호 크기 변환부(432) 및 부호 계산기(440)로 출력된다. 부호 크기 변환부(432)는 상기 제1 입력부로부터 입력된 2의 보수 형태로 이루어지는 메시지를 부호화된 크기로 변환하여 제1 매핑부로 출력한다. 제1 매핑부(434)는 제1 룩업테이블을 이용하여 상기 부호화된 크기로 변환된 메시지에 대한 매핑 데이터를 검출하여 다중화기(436)로 출력한다. 가산기(410)는 다중화기(436)로부터 메시지가 입력되고, 입력된 메시지를 계산하여 출력한다. 도 6은 웨이트가 8인 비트 노드 또는 검사 노드를 계산하기 위한 가산기(410)의 내부 구조를 예시적으로 도시한 구성도이다. 도 6에 도시된 바와 같이, 가산기(410)는 입력된 메시지에 대한 정보들을 모두 더하여 다음 단계로 전달할 메시지를 계산하여 제2 매핑부로 출력한다. 제2 매핑부(437)는 제2 룩업테이블을 이용하여 상기 가산기로부터 출력되는 메시지에 대한 매핑 데이터를 검출하여 보수 변환부(438)로 출력한다. 부호 계산기(440)는 상기 제1 입력부(430)로부터 입력된 메시지의 부호를 계산하여 보수 변환부(438)로 출력한다. 보수 변환부(438)는 상기 부호계산기(440) 및 제2 매핑부(437)로부터 각각 부호 및 메시지를 입력받고, 입력된 부호 및 메시지를 2의 보수로 변환시켜 제1 출력부(439)로 출력한다.
다음, 비트 노드 계산기의 구조에 대하여 설명한다. 제2 입력부(450)는 검사 노드로부터 받은 메시지(LLR(rji))에 대한 정보가 입력되며, 입력된 메시지는 다중화기(436)로 출력된다. 다중화기(436)는 제1 매핑부 및 제2 입력부로부터 각각 메시지를 입력받고, 제어기로부터 제공되는 동작 모드 신호에 따라 입력된 메시지들 중 하나를 선택하여 가산기(410)로 출력한다. 상기 가산기(410)는 입력된 모든 메시지를 더하여 다음 검사 노드로 전달할 메시지를 계산하여 제2 출력부(452)로 출력한다.
<제2 실시예>
이하, 도 7 내지 도 10을 참조하여 본 발명의 제2 실시예에 따른 LDPC 부호를 이용한 복호화 장치의 구조 및 동작을 구체적으로 설명한다. 본 발명의 제2 실시예에 따른 복호화 장치는 비트 노드 계산기와 검사 노드 계산기를 통합하여 구현한 노드 선택 계산기를 구비하고, 메모리 뱅크의 구조를 변형하여 단일의 메모리 뱅크에서 2개의 메시지를 읽을 수 있도록 하고, 이렇게 변형된 메모리 뱅크의 구조에 맞게 메시지의 순서를 정렬하여 메모리 뱅크로 제공하는 데이터 정렬기를 구비함으로써, 극히 적은 면적의 증가를 통해 처리량은 월등히 향상시킨 복호화 장치를 제공하게 된다.
도 7은 본 발명의 제2 실시예에 따른 LDPC 부호를 이용한 복호화 장치를 전체적으로 도시한 블록도이며, 도 8은 도 7의 설명의 편의상 단일의 메시지의 처리 경로만을 분리하여 도시한 일부 블록도이며, 도 9는 제2 실시예에 따른 복호화 장치의 메모리 뱅크를 도시한 구조도이며, 도 10은 제2 실시예에 따른 복호화 장치의 데이터 정렬기를 도시한 구조도이다.
도 7을 참조하면, 본 발명의 제2 실시예에 따른 복호화 장치는 전체 동작을 제어하는 제어기(802), 데이터 정렬기(830), 메시지들이 저장되는 메모리 뱅크(820), 메시지 메모리 제어기(806), LLR 메모리 제어기(804), 노드 선택 계산기(810), 셔플 네트워크(860), 역다중화기(840)를 구비한다. 제2 실시예에 따른 복호화 장치는 데이터 정렬기(830) 및 메모리 뱅크(820)를 더 구비하는 점에서 제1 실시예에 따른 복호화 장치와 차이가 있으며, 상기 데이터 정렬기 및 메모리 뱅크, 이들의 동작을 제어하는 제어기(802) 및 메시지 메모리 제어기(806)를 제외한 다른 구성 요소들은 제1 실시예의 그것들과 동일하므로, 반복되는 설명은 생략한다.
전술한 구성을 갖는 제2 실시예에 따른 복호화 장치는 하나의 메모리 뱅크(820)에서 2개의 메시지를 읽을 수 있도록 구조를 변형하고, 메모리 뱅크의 구조를 변형함에 따라 비트 노드 계산과 검사 노드 계산 과정의 사이에 오프셋이 맞지 않는 것을 보정하는 데이터 정렬기(830)를 더 구비하는 것을 특징으로 한다.
메모리 뱅크(820)는 하나의 주소값에 해당하는 워드 길이를 메시지의 길이의 정수 배가 되도록 구성함으로써, 하나의 메모리 뱅크를 다수 개의 가상 메모리 뱅크로 나누어진 것과 같이 동작되도록 하여 처리량을 향상시킨다. 본 실시예에서는 각 메모리 뱅크의 워드 길이를 메시지의 길이의 2배가 되도록 함으로써, 하나의 메모리 뱅크를 2개의 가상 메모리 뱅크로 나누어진 것과 같이 동작되도록 한다.
IRA 부호와 같이 일정한 형식이 반복되는 패리티 검사 행렬 H(300)를 갖는 LDPC 부호의 병렬 복호 구조에서는 반복 복호 과정 중간에 발생하는 메시지 값을 저장하기 위하여 메모리 뱅크를 사용하게 되고 다음 단계의 연판정 출력의 계산을 위해 메모리 뱅크에 저장된 메시지 값이 각 노드 계산 시 노드 선택 계산기에 순차적으로 입력된다. 복호기의 처리량을 증가를 위하여 노드 선택 계산기(810)의 수를 2배로 증가시키면 동일한 시간에 하나의 메모리 뱅크에서 2개의 메시지가 노드 선택 계산기로 입력되어야 하므로 다중 포트 메모리의 사용을 고려할 수 있다. 하지만 다중 포트 메모리의 면적이 단일 포트 메모리에 비하여 훨씬 큰 단점이 있고 복호 과정 간에 메모리 뱅크에 메시지가 순차적으로 쓰이고 읽히는 특성이 있으므로 본 실시예에 따른 메모리 뱅크 구조를 사용함으로써 단일 포트 메모리의 면적과 거의 동일한 면적의 메모리를 사용하면서 다중 메시지의 접근이 가능하게 할 수 있다. 높은 처리량의 복호기 구조 구현 시 메모리 면적 증가를 억제하여 전체 복호기의 면적 증가를 최소화 할 수 있다. 메모리 뱅크의 하나의 주소 값에 해당하는 워드 길이를 메시지의 길이의 정수 배가 되게 하여 하나의 메모리 뱅크가 다수의 가 상 메모리 뱅크로 나누어진 것과 같이 기능하여 처리량을 높인다. 상기 메모리 뱅크의 워드 길이는 복호화 장치에 구성되는 노드 선택 계산기의 개수에 따라 조정될 수 있다.
본 발명에 따른 복호화 장치는 총 메모리 뱅크의 면적을 줄이기 위하여 비트 노드 계산 시와 검사 노드 계산 시에 동일한 메모리 뱅크를 사용한다. 하지만, LDPC-IRA 부호와 같이 일정한 형식을 갖는 패리티 검사 행렬(300) H의 구성에 의해 노드 선택 계산기별로 메모리 뱅크를 배치하게 되면 각 메모리 뱅크마다 비트 노드 계산 시와 검사 노드 계산 시에 읽어 들여야 하는 메시지 값이 저장된 주소 값의 차이가 존재한다. 이러한 주소 값의 차이인 오프셋 값이 짝수인 경우 비트 노드(210), 체크 노드(220) 간의 계산 단계가 바뀌면 기존 단일 포트 메모리 사용 시의 오프셋 값을 상기 제안된 메모리 뱅크(820)의 가상 메모리 뱅크 수로 나누어 메모리 뱅크 접근 시 적용하면 되므로 문제가 없다. 하지만 단일 포트 메모리 사용 시 오프셋 값이 홀수였다면 새로 계산된 메모리 주소 부여만으로 상기 제안된 메모리 뱅크(820)에 저장된 메시지를 원하는 값부터 순차적으로 읽어 들이는 것이 불가능하다. 본 실시예에 따른 데이터 정렬기(810)는 전술한 문제를 해결하기 위해 메시지 저장 전에 메시지의 저장 위치, 저장될 시간을 조정한다.
도 10을 참조하면, 본 실시예에 따른 복호화 장치의 데이터 정렬기(830)는, 제어기(640), 크로스바 스위치(610), 역다중화기(612), 레지스터(620, 630), 다중화기(650)를 구비한다.
크로스바 스위치(610)는 메모리 뱅크(820)에 저장하기 위한 메시지들이 입력 되며, 입력된 메시지들의 오프셋 값이 홀수인 경우 상기 제어기(640)로부터의 제어 신호에 따라 메시지들의 위치를 서로 바꾸어 출력함으로써, 다음 노드 계산 시 원하는 메시지부터 노드 선택 계산기가 읽을 수 있도록 한다. 메시지의 입력 순서에 따라 메시지에 번호를 부여하면, 1번 메시지는 우측 레지스터(630)에, 2번 메시지는 좌측 레지스터(620)에 초기에 저장되고 다음 클럭 사이클부터 메모리 뱅크에 메시지가 저장되는데 메모리 뱅크의 좌측 가상 메모리(510)에는 초기 좌측 레지스터에 저장되었던 2번 메시지가 저장되고 우측 가상 메모리(520)에는 크로스바 스위치(610)를 통해 위치가 바뀐 3번 메시지가 레지스터(630)를 우회하여 저장된다. 동일한 과정이 메모리 뱅크의 주소 값만큼 반복되고 다시 초기의 메모리 주소로 돌아오면 이전 클럭 사이클에서 위치 변경되어 좌측 레지스터(620)에 저장되어 있던 마지막 메시지가 좌측 가상 메모리(510)에 저장되고, 초기에 우측 레지스터(630)에 저장되었던 1번 메시지가 우측 가상 메모리(520)에 저장되어 모든 메모리 뱅크의 주소에 메시지 값 저장을 완료한다. 크로스바 스위치(610)의 위치 변경, 역다중화기(demultiplexer)와 다중화기의 경로 선택, 레지스터의 데이터 저장과 출력의 제어는 제어기(640)에서 총괄한다. 본 실시예에 따른 복호화 장치가 변형된 구조의 메모리 뱅크(820)와 함께 데이터 정렬기(830)를 사용하면 극히 적은 면적의 증가를 통해 매우 큰 LDPC 복호기 처리량의 증가를 이룰 수 있다.
이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이 상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다.
그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명에 따른 복호화 장치는 LDPC 부호를 사용하는 신호에 대한 복호기에 적용할 수 있으며, 특히 제2 실시예에 따른 복호화 장치는 LDPC-IRA와 같이 일정한 형식의 패리티 검사 행렬을 갖는 복호기에 적용할 수 있다.
도 1은 LDPC 부호를 구성하는 패리티 검사 행렬 H를 제시한 도면이다.
도 2는 패리티 검사 행렬 H를 태너(Tanner) 그래프로 표현한 도면이다.
도 3은 IRA 부호를 구성하는 패리티 검사 행렬 H를 제시한 도면이다.
도 4는 본 발명의 제1 실시예에 따른 복호화 장치의 전체 구조를 개략적으로 도시한 블록도이다.
도 5는 본 발명의 제1 실시예에 따른 복호화 장치의 노드 선택 계산기의 구조를 도시한 블록도이다.
도 6은 본 발명의 제1 실시예에 따른 복호화 장치의 노드 선택 계산기의 가산기의 구조를 예시적으로 도시한 블록도이다.
도 7은 본 발명의 제2 실시예에 따른 LDPC 부호를 이용한 복호화 장치를 전체적으로 도시한 블록도이다.
도 8은 도 7의 설명의 편의상 단일의 메시지의 처리 경로만을 분리하여 도시한 일부 블록도이다.
도 9는 제2 실시예에 따른 복호화 장치의 메모리 뱅크를 도시한 구조도이며, 도 10은 제2 실시예에 따른 복호화 장치의 데이터 정렬기를 도시한 구조도이다.
<도면의 주요 부분에 대한 부호의 설명>
700, 800 : 복호화 장치
702, 802 : 제어기
720, 820 : 메모리 뱅크
706, 806 : 메시지 메모리 제어기
704, 804 : LLR 메모리 제어기
710, 810 : 노드 선택 계산기
760, 860 : 셔플 네트워크
740, 840 : 역다중화기
830 : 데이터 정렬기

Claims (9)

  1. 전체 동작을 제어하는 제어기;
    복호화될 메시지들이 저장되는 다수 개의 메모리 뱅크;
    상기 제어기의 제어 신호에 따라 상기 메모리 뱅크를 초기화하거나 액세스해야되는 메모리 뱅크의 주소값을 제공하는 메시지 메모리 제어기;
    상기 제어기로부터 제공되는 동작 모드 신호에 따라 상기 메모리 뱅크로부터 출력되는 메시지를 특정 노드 선택 계산기로 제공하는 역다중화기;
    상기 제어기로부터 제공되는 동작 모드 신호에 따라 비트 노드 계산기 및 검사 노드 계산기 중 어느 하나로 동작되는 다수 개의 노드 선택 계산기;
    상기 노드 선택 계산기로부터 출력되는 결과 메시지를 상기 메모리 뱅크들 중 지정된 메모리 뱅크로 라우팅하는 셔플 네트워크;
    를 구비하고, 상기 제어기는 각 클럭 사이클마다 노드 선택 계산기의 동작 모드를 결정하고, 결정된 동작 모드에 따라 노드 선택 계산기 및 메시지 메모리 제어기로 동작 모드 신호를 제공하고, 메시지 메모리 제어기는 동작 모드 신호에 따라 액세스해야되는 메모리 뱅크의 주소값을 계산하는 것을 특징으로 하는 복호화 장치.
  2. 전체 동작을 제어하는 제어기;
    복호화될 메시지들이 저장되며, 각각 2개 이상의 가상 메모리 뱅크들로 구성 되는 다수 개의 메모리 뱅크;
    상기 제어기의 제어 신호에 따라 상기 메모리 뱅크를 초기화하거나 액세스해야되는 메모리 뱅크의 주소값을 제공하는 메시지 메모리 제어기;
    상기 제어기로부터 제공되는 동작 모드 신호에 따라 상기 메모리 뱅크로부터 출력되는 메시지를 특정 노드 선택 계산기로 제공하는 역다중화기;
    상기 제어기로부터 제공되는 동작 모드 신호에 따라 비트 노드 계산기 및 검사 노드 계산기 중 어느 하나로 동작되는 다수 개의 노드 선택 계산기;
    상기 노드 선택 계산기로부터 출력되는 결과 메시지를 상기 메모리 뱅크들 중 지정된 메모리 뱅크로 라우팅하는 셔플 네트워크;
    상기 셔플 네트워크로부터 출력되는 메시지들의 오프셋 값에 따라 상기 메모리 뱅크로 입력되는 메시지들의 순서를 정렬하는 데이터 정렬기;
    를 구비하고, 상기 제어기는 각 클럭 사이클마다 노드 선택 계산기의 동작 모드를 결정하고, 결정된 동작 모드에 따라 노드 선택 계산기 및 메시지 메모리 제어기로 동작 모드 신호를 제공하고, 메시지 메모리 제어기는 동작 모드 신호에 따라 액세스해야되는 메모리 뱅크의 주소값을 계산하는 것을 특징으로 하는 복호화 장치.
  3. 제1항 내지 제2항 중 어느 한 항에 있어서, 상기 노드 선택 계산기는
    비트 노드로부터 받은 메시지에 대한 정보가 입력되는 제1 입력부;
    상기 제1 입력부로부터 입력된 메시지를 부호화된 크기로 변환하는 부호 크 기 변환부;
    제1 룩업테이블을 이용하여 상기 부호화된 크기로 변환된 메시지에 대한 매핑 데이터를 검출하여 출력하는 제1 매핑부;
    검사 노드로부터 받은 메시지에 대한 정보가 입력되는 제2 입력부;
    상기 제1 매핑부 및 제2 입력부로부터 메시지가 입력되고, 상기 제어기로부터의 제어 신호에 따라 상기 입력된 메시지 중 어느 하나가 선택되어 출력되는 다중화기;
    상기 다중화기로부터 입력되는 메시지들을 합산하여 출력하는 가산기;
    상기 가산기로부터 출력되는 메시지를 출력하는 제2 출력부;
    제2 룩업테이블을 이용하여 상기 가산기로부터 출력되는 메시지에 대한 매핑 데이터를 검출하여 출력하는 제2 매핑부;
    상기 제1 입력부로부터 입력된 메시지의 부호를 계산하여 출력하는 부호 계산기;
    상기 부호 계산부로부터 입력되는 부호를 이용하여 상기 제2 매핑부로부터 입력되는 메시지를 2의 보수로 변환하여 출력하는 보수 변환부;
    상기 보수 변환부로부터 출력되는 메시지를 출력하는 제1 출력부;
    를 구비하여, 비트 노드 계산기와 검사 노드 계산기로 이루어지며, 상기 비트 노드 계산기와 검사 노드 계산기는 가산기를 공통으로 사용하는 것을 특징으로 하는 복호화 장치.
  4. 제3항에 있어서, 상기 노드 선택 계산기의 다중화기는 비트 노드의 에지수와 검사 노드의 에지수 중 큰 수만큼 구비되는 것을 특징으로 복호화 장치.
  5. 제2항에 있어서, 상기 메모리 뱅크는 하나의 주소값에 해당하는 워드 길이를 메시지의 길이의 정수 배가 되도록 하는 것을 특징으로 하는 복호화 장치.
  6. 제2항에 있어서, 상기 데이터 정렬기는
    데이터 정렬기의 동작을 제어하는 제어기;
    상기 제어기로부터 제공된 제어 신호에 따라 메시지의 위치를 서로 바꾸어 출력하는 크로스바 스위치;
    상기 크로스바 스위치로부터 출력되는 메시지를 저장하는 제1 및 제2 레지스터;
    상기 제어기로부터 제공된 제어 신호에 따라 상기 크로스바 스위치로부터 출력되는 메시지들의 경로를 선택하는 역다중화기 및 다중화기;
    를 구비하는 것을 특징으로 하는 복호화 장치.
  7. 제6항에 있어서, 상기 데이터 정렬기의 제어기는 입력된 메시지의 주소값의 차이인 오프셋 값이 홀수인 경우, 상기 크로스바 스위치로 제어 신호를 제공하여 메시지의 위치를 서로 바꾸도록 하는 것을 특징으로 하는 복호화 장치.
  8. 제1항 내지 제2항 중 어느 한 항에 있어서, 상기 복호화 장치는 LDPC 부호를 이용한 메시지의 복호화에 적용되는 것을 특징으로 하는 복호화 장치.
  9. 제2항에 있어서, 상기 복호화 장치는 LDPC-IRA 부호를 이용한 메시지의 복호화에 적용되는 것을 특징으로 하는 복호화 장치.
KR1020090064030A 2009-07-14 2009-07-14 저밀도 패리티 검사 부호를 이용한 복호화 장치 KR101073636B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090064030A KR101073636B1 (ko) 2009-07-14 2009-07-14 저밀도 패리티 검사 부호를 이용한 복호화 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090064030A KR101073636B1 (ko) 2009-07-14 2009-07-14 저밀도 패리티 검사 부호를 이용한 복호화 장치

Publications (2)

Publication Number Publication Date
KR20110006409A KR20110006409A (ko) 2011-01-20
KR101073636B1 true KR101073636B1 (ko) 2011-10-14

Family

ID=43613253

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090064030A KR101073636B1 (ko) 2009-07-14 2009-07-14 저밀도 패리티 검사 부호를 이용한 복호화 장치

Country Status (1)

Country Link
KR (1) KR101073636B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113361687B (zh) * 2021-05-31 2023-03-24 天津大学 适用于卷积神经网络训练加速器的可配置加法树

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703271B1 (ko) 2004-11-23 2007-04-03 삼성전자주식회사 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703271B1 (ko) 2004-11-23 2007-04-03 삼성전자주식회사 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치

Also Published As

Publication number Publication date
KR20110006409A (ko) 2011-01-20

Similar Documents

Publication Publication Date Title
US7631241B2 (en) Apparatus and method for decoding low density parity check codes
US7343548B2 (en) Method and apparatus for encoding and decoding data
US6961888B2 (en) Methods and apparatus for encoding LDPC codes
KR100808664B1 (ko) 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
US8266493B1 (en) Low-density parity check decoding using combined check node and variable node
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US7454693B2 (en) LDPC decoder
US20080065956A1 (en) Method and apparatus for encoding and decoding data
US8762806B2 (en) Decoding circuit and encoding circuit
WO2004019268A1 (en) Methods and apparatus for encoding ldpc codes
US9825650B2 (en) Decoder architecture for cyclically-coupled quasi-cyclic low-density parity-check codes
EP1597828B1 (en) Method and apparatus for performing low-density parity-check (ldpc) code operations using a multi-level permutation
JP2007215089A (ja) 復号装置及び復号方法
KR20030063376A (ko) 연결코드 디코딩을 위한 고속 모듈, 장치 및 방법
CN109347486B (zh) 低复杂度高吞吐率的5g ldpc编码器和编码方法
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
WO2008069231A1 (ja) 復号装置、復号方法
KR102058499B1 (ko) 리드-솔로몬 저밀도 패리티 검사 디코더를 포함하는 반도체 메모리 시스템 및 그것의 읽기 방법
JP5488472B2 (ja) 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置
WO2007082626A2 (en) Method and apparatus for error correction decoding
KR101073636B1 (ko) 저밀도 패리티 검사 부호를 이용한 복호화 장치
GB2463252A (en) A message passing LDPC matrix decoder with parallel sub-decoders scheduled to avoid memory contention problems
US11411583B2 (en) Deinterleaving method and deinterleaving system performing the same
KR101766812B1 (ko) Ldpc 부호의 복호화 장치
CN108540138B (zh) 一种csraa编码电路及编码器

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141008

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150923

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee