KR101840252B1 - 저밀도 패리티 검사 부호용 장치 - Google Patents

저밀도 패리티 검사 부호용 장치 Download PDF

Info

Publication number
KR101840252B1
KR101840252B1 KR1020120024917A KR20120024917A KR101840252B1 KR 101840252 B1 KR101840252 B1 KR 101840252B1 KR 1020120024917 A KR1020120024917 A KR 1020120024917A KR 20120024917 A KR20120024917 A KR 20120024917A KR 101840252 B1 KR101840252 B1 KR 101840252B1
Authority
KR
South Korea
Prior art keywords
addresses
address
banks
variable node
block
Prior art date
Application number
KR1020120024917A
Other languages
English (en)
Other versions
KR20130103910A (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 KR1020120024917A priority Critical patent/KR101840252B1/ko
Publication of KR20130103910A publication Critical patent/KR20130103910A/ko
Application granted granted Critical
Publication of KR101840252B1 publication Critical patent/KR101840252B1/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
    • H03M13/6505Memory efficient implementations
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/65253GPP LTE including E-UTRA
    • 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

Landscapes

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

Abstract

본 발명은 체크 노드의 연산 수행 결과를 복수의 블록 열에 대한 가변 노드 연산에서 공유함으로써 지연 시간을 절감할 수 있고, 메모리 읽기 동작의 횟수를 경감할 수 있는 저밀도 패리티 검사 부호용 장치를 제공한다.
본원의 제1 발명에 따른 저밀도 패리티 검사 부호용 장치는, 체크 노드 유닛, 가변 노드 유닛, 제어 유닛 및 메모리를 포함하는 저밀도 패리티 검사 부호용 장치에 있어서, 상기 가변 노드 유닛이 상기 메모리 내 체크 노드 결과값을 읽어들여 가상의 복수의 블록 열에 대하여 가변 노드 연산을 동시에 수행할 때, 상기 메모리 내 하나의 뱅크에서 서로 다른 어드레스의 데이터를 동시에 읽는 경우, 상기 제어 유닛은 상기 서로 다른 어드레스 중 어느 하나를 소정 간격 쉬프트 시켜 상기 서로 다른 어드레스를 상호 일치시킨다.

Description

저밀도 패리티 검사 부호용 장치{APPARATUS FOR LOW DENSITY PARITY CHECK CODE}
본 발명은 패리티 검사 부호에 관한 것으로, 더욱 상세하게는 저밀도 패리티 검사(Low Density Parity Check, 이하, 'LDPC'라 한다) 부호용 장치에 관한 것이다.
최근, LDPC 부호는 쉐넌 리미트(Shannon limit)에 가까운 강력한 에러 보정 능력을 가지는 오류 정정 부호로서 차세대 무선 통신 기술에서 폭 넓게 상용화될 것으로 각광받고 있다. 즉, DVB, WLAN, WiMAX등의 통신 표준뿐 아니라 4세대 통신 표준인 LTE에서도 주된 화두의 하나로 포함되어 논의되고 있다.
일반적으로, LDPC 부호는 '(N, K) LDPC 부호'와 같은 방식으로 표기하는데 여기서 K는 통신 모듈의 송신부에서 부호화하는 비트들의 수이고, N은 부호화의 결과로 생성된 블록의 비트 수이다. 부호화의 결과로 생성된 N 비트는 부호화하는 K 비트를 그대로 포함하면서 (N-K) 비트가 추가적으로 덧붙여진 것이다. 여기서 추가적으로 덧붙여진 (N-K) 비트는 K 비트에 오류가 발생하였을 경우, 이를 정정하는데 결정적인 역할을 한다.
통신의 수신부에서는 송신부에서 전송된 LDPC 부호를 수신한 후, 복호기를 통해 N 비트의 LDPC 부호를 K 비트로 복원하는 과정을 수행하는데, 이 과정에서 핵심 기반이 되는 것이 '이진 패리티 체크 행렬'이라 할 수 있다. 이진 패리티 체크 행렬은 (N-K)행 N열의 크기를 가지며, LDPC 복호 과정의 핵심 연산과 직결되는 구조를 포함하고 있다. LDPC 복호과정은 이분 그래프로 표현할 수 있는데, 이 이분 그래프의 두 개 유형의 노드 중 체크 노드는 이진 패리티 체크 행렬의 (N-K) 행에 각각 대응되어 (N-K)개 존재하며, 또 다른 유형의 노드인 비트 노드는 이진 패리티 체크 행렬의 N열에 각각 대응하여 N개 존재한다. 이분 그래프의 에지는 서로 다른 유형의 노드 간에만 연결되고, 이진 패리티 체크 행렬의 m행 n열의 성분을 H(m,n)이라 하면(여기서 0≤m<M, 0≤n<N), 이 성분이 1일 경우에만 m행에 대응하는 체크노드와 n행에 대응하는 가변 노드가변 노드 연결된다. 이러한 방식에 의해 이진 패리티 체크 행렬의 모든 성분을 살펴 (N-K)개의 체크 노드와 N개의 가변 노드 간의 에지 연결을 완료하면, LDPC 핵심 복호과정이 모두 이분 그래프로 표현되게 된다.
또한 완성된 이분 그래프는 LDPC 복호기의 구조와 매우 유사해진다. 체크 노드는 복호기의 체크 노드 프로세서에 대응되고, 가변 노드는 복호기의 가변 노드 프로세서에 대응된다.
두 핵심 프로세서는 복호기 내부에서 번갈아 동작하며 연산을 수행한다. 즉, 체크 노드 프로세서가 입력되는 가변 노드에 대하여 연산을 수행하여 체크 노드 연산을 완료하면, 완료된 체크 노드를 바탕으로 가변 노드 프로세서는 입력되는 체크 노드에 대하여 가변 노드 연산을 수행한다. 가변 노드 연산 수행 후에는 그 결과 값을 활용하여 복호를 시도하여 이에 성공하면 연산을 멈추고, 실패하면 다시 순환적으로 다음 번 체크 노드 연산과 이에 이은 가변 노드 연산을 수행하는 것이 LDPC 복호기가 수행하는 연산의 개요라고 할 수 있다.
종래 기술에 따르면, LDPC 장치의 하드웨어 구조를 3가지로 구분할 수 있다. 구체적으로, 1) 첫번째, 모든 체크 노드와 가변 노드가 개개의 하드웨어에 대응되는 완전 병렬 구조, 2) 두번째, 단지 하나의 체크 노드 프로세서와 가변 노드 프로세서가 모든 복호 연산을 수행하기 위해 반복적으로 재사용되는 완전 직렬 구조, 그리고, 3) 세번째, 완전 병렬 구조와 완전 직렬 구조를 절충한 부분 병렬 구조이다.
일반적으로, 완전 병렬 구조는 하드웨어 구현의 복잡도가 매우 높아 잘 채택되지 않으며, 완전 직렬 구조의 경우, 복호 지연 시간이 너무 길어 잘 채택되지 않는다. 따라서 하드웨어 복잡도와 복호 지연 시간을 절충한 부분 병렬 구조가 많이 채택되고 있는 추세이며 LDPC 블록 부호와 같은 이진 패리티 체크 행렬이 정의되어 부분 병렬 구조를 이용한 구현의 적합도를 높이고 있다.
부분 병렬 구조가 하드웨어 복잡도와 복호 지연 시간 양면에서 이득을 가지는 것은 사실이지만, 모든 체크 노드 및 가변 노드의 연산을 동시에 수행하지 않기 때문에 체크 노드 연산의 결과가 임베디드 SRAM에 저장되어 수차례에 걸쳐 반복적으로 수행하는 가변 노드 프로세서 연산을 대비하여야 한다. 이러한 임베디드 SRAM 사용상의 특성으로 인해 추가적인 지연 시간이 발생하고 있다. 하지만 아직까지 임베디드 SRAM 사용으로 인해 추가 지연 시간을 대폭 절감하기 위한 접근법이 아직 효과적으로 제시되지 않고 있다.
도 1은 종래기술에 따른 부분 병렬 구조의 LDPC 복호기의 기반이 되는 이진 패리티 체크 행렬이다.
이 행렬은 행이 6개의 블록, 열이 12개의 블록으로 구성되어 있으므로 총 72개의 블록으로 구성되어 있으며, 각 블록은 80행 80열로 구성되어 있다. 따라서 총 480행 960열의 이진 패리티 행렬을 나타낸다. 여기서, 검은색으로 표기된 블록은 영행렬을 의미하고, 나머지 인덱스는 인덱스의 수만큼 오른쪽으로 Cyclic shift된 Identity 행렬을 의미한다.
도 1의 QC-LDPC 블록 부호를 기반으로 부분 병렬 복호기를 구현할 때, 복호 연산의 기본 단위는 단위 블록 행렬이라고 할 수 있다. 이때, 복호 연산 과정에서 우선적으로 각 블록 행렬에 대한 체크 노드 프로세서 연산을 완료하면, 단일 블록 행 내부에 있는 행에 대한 체크 노드 프로세서의 연산 수행 결과는 동일한 SRAM 메모리 뱅크의 서로 다른 주소에 기록된다.
이와 같은 SRAM 기록 과정은 체크 노드 프로세서의 연산 수행 결과가 여러 열에 대한 가변 노드 프로세서의 연산 수행이 필요하기 때문이다. 예를 들면, 블록 4행에 대한 체크 노드 프로세서의 연산 수행 결과는 가변 노드 프로세서의 연산 수행 중 블록 1열, 3열, 9열, 10열, 16열, 17열에 대해 모두 필요하게 된다. 하지만 일반적인 1포트 혹은 2포트 SRAM 메모리는 읽기 동작을 할 때, 단일 주소로 밖에 접근할 수 없으므로 같은 메모리의 서로 다른 주소에 있는 값을 요구하는 이들 연산을 동시에 수행할 수 없다.
이러한 이유로 기존의 복호 연산은 복수 개의 블록 열에 대한 가변 노드 연산을 시행하고자 할 경우에 동일한 블록 행 내의 서로 다른 단일 행에 대한 체크 노드 프로세서 연산 결과가 필요하다면, 서로 다른 가변 노드 프로세서의 연산이 동시에 수행될 수 없기 때문에 복호 지연 시간이 매우 길어질 수밖에 없다.
본 발명은 체크 노드의 연산 수행 결과를 복수의 블록 열에 대한 가변 노드 연산에서 공유함으로써 지연 시간을 절감할 수 있는 저밀도 패리티 검사 부호용 장치를 제공한다.
또한, 본 발명은 메모리 읽기 동작의 횟수를 경감할 수 있는 저밀도 패리티 검사 부호용 장치를 제공한다.
본원의 제1 발명에 따른 저밀도 패리티 검사 부호용 장치는, 체크 노드 유닛, 가변 노드 유닛, 제어 유닛 및 메모리를 포함하는 저밀도 패리티 검사 부호용 장치에 있어서, 상기 가변 노드 유닛이 상기 메모리 내 체크 노드 결과값을 읽어들여 가상의 복수의 블록 열에 대하여 가변 노드 연산을 동시에 수행할 때, 상기 메모리 내 하나의 뱅크에서 서로 다른 어드레스의 데이터를 동시에 읽는 경우, 상기 제어 유닛은 상기 서로 다른 어드레스 중 어느 하나를 소정 간격 쉬프트 시켜 상기 서로 다른 어드레스를 상호 일치시킨다.
또한, 본원의 제2 발명에 따른 저밀도 패리티 검사 부호용 장치는 저밀도 패리티 검사 부호에 의해 부호화된 신호가 전송됨에 따라, 상기 저밀도 패리티 검사 부호를 위한 검사 행렬에 포함된 가변 노드에 대하여 초기화부; 각 체크 노드에 연결된 모든 다른 가변 노드로부터의 정보를 바탕으로 가변 노드의 신뢰를 갱신하는 체크 노드 유닛; 상기 가변 노드의 연산을 수행하는 가변 노드 유닛; 상기 가변 노드 유닛이 연산한 결과값의 부호를 이용하여 상기 결과값의 부호에 따라 이진으로 판정하는 판정 유닛; 및 상기 가변 노드 유닛이 메모리 내 체크 노드 결과값을 읽어들여 가상의 복수의 블록 열에 대하여 상기 가변 노드의 연산을 동시에 수행할 때, 상기 메모리 내 하나의 뱅크에서 서로 다른 어드레스의 데이터를 동시에 읽는 경우, 상기 서로 다른 어드레스 중 어느 하나를 소정 간격 쉬프트 시켜 상기 서로 다른 어드레스를 상호 일치시키는 제어 유닛을 포함한다.
또한, 본원의 제3 발명에 따른 저밀도 패리티 검사 부호용 장치는, 체크 노드 유닛, 가변 노드 유닛, 제어 유닛 및 메모리를 포함하는 저밀도 패리티 검사 부호용 장치에 있어서, 상기 가변 노드 유닛이 상기 메모리 내 체크 노드 결과값을 읽어들여 가상의 복수의 블록 열에 대하여 가변 노드 연산을 동시에 수행할 때, 상기 메모리 내 복수 뱅크에서 서로 다른 어드레스의 데이터를 동시에 읽는 경우, 상기 제어 유닛은 상기 복수 뱅크 중 어느 하나의 뱅크에 대하여 서로 다른 어드레스 중 어느 하나의 어드레스를 소정 간격 쉬프트 시켜 상호 일치시킨다.
또한, 본원의 제4 발명에 따른 저밀도 패리티 검사 부호용 장치는, 저밀도 패리티 검사 부호에 의해 부호화된 신호가 전송됨에 따라, 상기 저밀도 패리티 검사 부호를 위한 검사 행렬에 포함된 가변 노드에 대하여 초기화부; 각 체크 노드에 연결된 모든 다른 가변 노드로부터의 정보를 바탕으로 가변 노드의 신뢰를 갱신하는 체크 노드 유닛; 상기 가변 노드의 연산을 수행하는 가변 노드 유닛; 상기 가변 노드 유닛이 연산한 결과값의 부호를 이용하여 상기 결과값의 부호에 따라 이진으로 판정하는 판정 유닛; 및 상기 가변 노드 유닛이 메모리 내 체크 노드 결과값을 읽어들여 가상의 복수의 블록 열에 대하여 가변 노드 연산을 동시에 수행할 때, 상기 메모리 내 복수 뱅크에서 서로 다른 어드레스의 데이터를 동시에 읽는 경우, 상기 복수 뱅크 중 어느 하나의 뱅크에 대하여 서로 다른 어드레스 중 어느 하나의 어드레스를 소정 간격 쉬프트 시켜 상호 일치시키는 제어 유닛을 포함한다.
본 발명의 저밀도 패리티 검사 부호용 장치에 따르면, 체크 노드의 연산 수행 결과를 여러 개의 블록 열에 대한 가변 노드 연산에서 공유할 수 있고, 메모리 읽기 동작의 횟수를 경감할 수 있는 효과가 있다.
도 1은 일반적인 QC-LDPC 블록 부호,
도 2는 본 발명의 일실시예에 따른 LDPC 부호용 장치의 블럭 구성도,
도 3(a)은 동일 뱅크 내 서로 다른 주소의 데이터가 충돌하는 상황에 대한 설명도,
도 3(b)은 본 발명의 일실시예에 따른 단일 뱅크 내 어드레스 충돌을 회피하기 위한 어드레스 쉬프트 기법을 설명하기 위한 도면,
도 4(a)는 복수개의 뱅크 내에서 복수의 어드레스들이 충돌하는 상황에 대한 설명도,
도 4(b)는 본 발명의 다른 실시예에 따른 복수 뱅크 내 어드레스 충돌을 회피하기 위한 어드레스 쉬프트 기법을 설명하기 위한 도면,
도 5(a)(b)(c)는 본 발명의 일 실시예에 따른 레지스터 내 데이터 갱신 패턴 설명도, 및
도 6은 도 5(a)(b)(c)를 구현하기 위한 주요 구성에 대한 블럭도이다.
이하, 본 발명의 바람직한 실시예(들)에 대하여 첨부도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호로 표기되었음에 유의하여야 한다. 또한, 하기의 설명에서는 많은 특정사항들이 도시되어 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들 없이도 본 발명이 실시될 수 있음은 이 기술분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다.
도 2는 본 발명의 일실시예에 따른 LDPC 부호용 장치의 블럭 구성도이다.
본 발명의 일실시예에 따른 LDPC 부호용 장치는 초기화부(210), 체크 노드 유닛(220), 가변 노드 유닛(230), 제어 유닛(240), 메모리(250), 및 판정 유닛(260)을 포함한다.
초기화부(210)는 가변 노드 각각(v=0, … , n-1)에 대하여 수학식1을 적용하여 초기화를 수행한다.
Figure 112018010623791-pat00001
여기에서, qcv는 가변 노드 v에서 체크 노드 c로 전달하는 확률 정보를 의미하고, L(qcv)는 가변 노드v가 체크 노드c로 전달하는 확률이 0인 경우 대한 가변 노드v가 체크 노드c로 전달하는 확률이 1인 경우의 로그 우도 비율(Log likelihood ratio)를 의미한다. 그리고 σ2은 잡음 분산을 의미하며, yv는 가변노드로 입력되는 신호를 나타낸다. 즉, 가변 노드v가 체크 노드c로 전달하는 확률이 0인 경우에 대한 가변 노드v가 체크 노드c로 전달하는 확률이 1인 경우의 로그 우도 비율을 산출하는 것이다.
체크 노드 유닛(220)은 체크 노드(c=0, ..., m-1)에 대하여 수학식 2를 이용하여 모든 L(qcv)를 수집하고, 각 체크 노드에 연결된 모든 다른 가변 노드로부터의 정보를 바탕으로 가변 노드의 신뢰를 갱신한다.
Figure 112018010623791-pat00002
가변 노드 유닛(230)은 v=0, ..., n-1에 대하여 수학식3을 이용하여 가변노드의 연산을 수행한다.
Figure 112018010623791-pat00003
판정 유닛(260)은 가변 노드 유닛(230)이 연산한 수학식4의 결과값의 부호를 이용하여, 결과값의 부호가 음수이면 대응하는 가변 노드를 1로 판정하고, 양수이면 0으로 판정한다.
Figure 112018010623791-pat00004
그리고, 판정 유닛(260)은 판정한 코드 워드(
Figure 112018010623791-pat00005
)와 패리티 비트 행렬(H)의 행렬 곱 연산을 수행하여 영행렬이면 복호화를 종료하고, 그렇지 않으면 체크 노드 유닛(220)에서의 연산으로 복귀하여 전체 과정을 반복한다.
그런데, LDPC 장치가 복수열의 가변 노드 유닛(230)에서의 동시 연산을 수행하고자 하는 경우, 메모리(250) 내 동일 뱅크에 대하여 서로 다른 주소의 데이터가 충돌하는 상황이 발생할 수 있다.
도 3(a)은 동일 뱅크 내 서로 다른 주소의 데이터가 충돌하는 상황에 대한 설명도이다.
가변 노드 유닛(230)이 메모리(250) 내 체크 노드 결과값을 독출하여 가상의 블록 열C1과 블록 열C6에 대한 가변 노드 연산을 동시에 수행하는 경우, 동일 뱅크R4 내 address25의 데이터와 address0의 데이터를 동시에 독출해야 하나, 동시에 동일 뱅크 내 서로 다른 번지에서 데이터를 독출하는 것은 불가능하다.
이때에는, 도 3(b)와 같이, 데이터가 포함된 어드레스를 쉬프트 시켜 처리한다.
도 3(b)은 본 발명의 일실시예에 따른 단일 뱅크 내 어드레스 충돌을 회피하기 위한 어드레스 쉬프트 기법을 설명하기 위한 도면이다.
도 3(b)에 따르면, 블록 열C1의 address25에 대응하는 블록 열C6의 address0를 address25로 쉬프트 시켜 일치시키고, 블록 열C6의 나머지 address29, 및 address4에 대해서도 동일한 간격으로 쉬프트 시킨다. 즉, 블록 열 C6의 address29, 및 address4를 각각 25 만큼 쉬프트 시킨 address54, 및 address29로 변경한다.
이를 위하여 본 발명의 일실시예에 따른 제어 유닛(240)은, 가변 노드 유닛(230)과 메모리(250)를 연결하는 네트웍(241)과, 가변 노드 유닛(230)이 메모리(250) 내 체크 노드 결과값을 읽어들여 가상의 복수의 블록 열에 대하여 가변 노드 연산을 동시에 수행할 때, 단일 뱅크 내에서 서로 다른 어드레스의 데이터를 동시에 읽으면, 서로 다른 어드레스 중 어느 하나를 소정 간격 쉬프트 시켜 서로 다른 어드레스를 상호 일치시키는 서브 컨트롤러(242)를 포함할 수 있다.
결과적으로, 본 발명에 따른 어드레스 쉬프트 기법을 활용하면, 가변 노드 유닛(230)이 다수의 블록 열에 대하여 동시에 연산을 수행할 수 있다.
도 4(a)는 복수개의 뱅크 내에서 복수의 어드레스들이 충돌하는 상황에 대한 설명도이다.
가변 노드 유닛(230)이 메모리(250) 내 체크 노드 결과값을 독출하여 가상의 블록 열C2와 블록 열C5에 대한 가변 노드 연산을 동시에 수행하는 경우, 동일 뱅크 R1 내 address1의 데이터와 address0의 데이터, 동일 뱅크 R2 내 address13의 데이터와 address16의 데이터, 그리고, 동일 뱅크 R5 내 address25의 데이터와 address20의 데이터를 동시에 독출해야 하나, 동시에 동일 뱅크 내 서로 다른 번지에서 데이터를 독출하는 것이 불가능하다.
이때에는, 도 4(B)와 같이, 데이터가 포함된 어드레스를 쉬프트 시키고, 추가적으로 소량의 레지스터를 추가하여 처리한다.
도 4(b)는 본 발명의 다른 실시예에 따른 복수 뱅크 내 어드레스 충돌을 회피하기 위한 어드레스 쉬프트 기법을 설명하기 위한 도면이고, 도 5(a)(b)(c)는 본 발명의 일 실시예에 따른 레지스터 내 데이터 갱신 패턴 설명도이다.
우선, 뱅크 R1을 기준으로 하여, 어드레스를 일치시키고, 나머지 어드레스들에 대하여 해당하는 크기 만큼 쉬프트 시킨다.
이때, 어드레스를 쉬프트 시켰으나, 불일치하면서 충돌하는 뱅크R2 및 R5 내 어드레스들의 데이터들은 상호 불일치하는 어드레스의 차에 해당하는 만큼의 레지스터를 마련하여 데이터를 저장한다.
마련된 레지스터를 이용하여 데이터를 공급하는 과정을 구체적으로 설명하면 다음과 같다.
(R2, C2')의 어드레스가 12이고, (R2, C5)의 어드레스가 16이므로, 두 위치간의 어드레스 차이는 4이다. 따라서, 도 5에 도시된 바와 같이, 레지스터 내 데이터를 저장하기 위한 필요 공간은 4개가 필요하다. 도 5(a)는 초기에 레지스터 내에 저장되는 데이터 어드레스이고, 도 5(b)는 1 싸이클 후 레지스터 내에 갱신되어 저장되는 데이터 어드레스이며, 도 5(c)는 2 싸이클 후 레지스터 내에 갱신되어 저장되는 데이터 어드레스이다.
도 6은 도 5(a)(b)(c)를 구현하기 위한 주요 구성에 대한 블럭도이다.
본 발명의 다른 실시예에 따른 제어 유닛(640)은 가변 노드 유닛(630)과 메모리(650)를 연결하는 네트웍(641), 복수 뱅크 내에서 불일치하는 어드레스 차이를 보상하기 위한 레지스터 어레이(642), 및 레지스터 어레이의 갱신되는 데이터를 가변 노드 유닛에 공급하는 서브 컨트롤러(643)를 포함한다.
서브 컨트롤러(643)는 메모리(650) 내 해당 어드레스의 데이터를 읽어들여 레지스터 어레이 내 최후 데이터를 갱신함과 아울러, 레지스터 어레이 내 최선 데이터를 가변 노드 유닛(630)으로 출력한다.
본 발명에 따르면, LDPC 부호용 장치는 저장된 값들을 여러 번에 걸쳐 다른 순서로 독출할 필요가 있는 병렬 프로세서가 포함된 구조에서 적용 가능하다. 예컨대, 복호화기 등에 적용 가능하다.
이와 같이, 본 발명의 상세한 설명에서는 구체적인 실시예(들)에 관해 설명하였으나, 본 발명의 범주에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예(들)에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위 뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
210: 초기화부 220: 체크 노드 유닛
230: 가변 노드 유닛 240: 제어 유닛
250: 메모리 260: 판정 유닛

Claims (9)

  1. 체크 노드 유닛, 가변 노드 유닛, 제어 유닛 및 메모리를 포함하고, 상기 메모리는 복수의 뱅크로 이루어진 저밀도 패리티 검사 부호용 장치에 있어서,
    상기 메모리 내 상기 복수의 뱅크 중 어느 하나의 뱅크 - 상기 뱅크는 다수의 블록열을 포함하고, 상기 블록열 각각은 다수의 어드레스를 저장함 - 에서 상기 다수의 블록열 중 어느 하나의 블록열 내 어느 하나의 어드레스의 데이터와, 상기 다수의 블록열 중 다른 하나의 블록열 내 어느 하나의 어드레스의 데이터를 동시에 읽는 경우, 상기 어느 하나의 블록열 내 어느 하나의 어드레스가 상기 다른 하나의 블록열 내 어느 하나의 어드레스와 불일치하면, 상기 제어 유닛은 상기 어느 하나의 블록열 내 어느 하나의 어드레스가 상기 다른 하나의 블록열 내 어느 하나의 어드레스와 상호 일치하도록 상기 어느 하나의 블록열 내 어느 하나의 어드레스를 소정 간격 쉬프트 시키고, 이후 상기 가변 노드 유닛이 상기 메모리 내 체크 노드 결과값을 읽어들여 가변 노드 연산을 동시에 수행하는 것을 특징으로 하는 저밀도 패리티 검사 부호용 장치.
  2. 복수의 뱅크로 이루어진 메모리를 포함하는 저밀도 패리티 검사 부호용 장치에 있어서,
    저밀도 패리티 검사 부호에 의해 부호화된 신호가 전송됨에 따라, 상기 저밀도 패리티 검사 부호를 위한 검사 행렬에 포함된 가변 노드를 초기화시키는 초기화부;
    각 체크 노드에 연결된 모든 다른 가변 노드로부터의 정보를 바탕으로 가변 노드의 신뢰를 갱신하는 체크 노드 유닛;
    상기 가변 노드의 연산을 수행하는 가변 노드 유닛;
    상기 가변 노드 유닛이 연산한 결과값의 부호를 이용하여 상기 결과값의 부호에 따라 이진으로 판정하는 판정 유닛; 및
    상기 복수의 뱅크 중 어느 하나의 뱅크 - 상기 뱅크는 다수의 블록열을 포함하고, 상기 블록열 각각은 다수의 어드레스를 저장함 - 에서 상기 다수의 블록열 중 어느 하나의 블록열 내 어느 하나의 어드레스의 데이터와, 상기 다수의 블록열 중 다른 하나의 블록열 내 어느 하나의 어드레스의 데이터를 동시에 읽는 경우, 상기 어느 하나의 블록열 내 어느 하나의 어드레스가 상기 다른 하나의 블록열 내 어느 하나의 어드레스와 불일치하면, 상기 어느 하나의 블록열 내 어느 하나의 어드레스가 상기 다른 하나의 블록열 내 어느 하나의 어드레스와 상호 일치하도록 상기 어느 하나의 블록열 내 어느 하나의 어드레스를 소정 간격 쉬프트 시키는 제어 유닛
    을 포함하는 저밀도 패리티 검사 부호용 장치.
  3. 제1항 또는 제2항에 있어서, 상기 제어 유닛은,
    상기 가변 노드 유닛과 상기 메모리를 연결하는 네트웍; 및
    상기 다수의 블록열 중 어느 하나의 블록열 내 어느 하나의 어드레스의 데이터와, 상기 다수의 블록열 중 다른 하나의 블록열 내 어느 하나의 어드레스의 데이터를 동시에 읽는 경우, 상기 어느 하나의 블록열 내 어느 하나의 어드레스가 상기 다른 하나의 블록열 내 어느 하나의 어드레스와 불일치하면, 상기 어느 하나의 블록열 내 어느 하나의 어드레스가 상기 다른 하나의 블록열 내 어느 하나의 어드레스와 상호 일치하도록 상기 어느 하나의 블록열 내 어느 하나의 어드레스를 소정 간격 쉬프트 시키는 서브 컨트롤러
    를 포함하는 저밀도 패리티 검사 부호용 장치.
  4. 제1항 또는 제2항에 있어서, 상기 제어 유닛은,
    상기 복수의 뱅크 중 상기 어느 하나의 뱅크를 제외한 나머지 뱅크 내 다수의 어드레스를 상기 소정 간격 쉬프트 시키는 것을 특징으로 하는 저밀도 패리티 검사 부호용 장치.
  5. 제3항에 있어서,
    상기 복수의 뱅크 중 상기 어느 하나의 뱅크를 제외한 나머지 뱅크에서의 어드레스 간에는 충돌이 없는 것을 특징으로 하는 저밀도 패리티 검사 부호용 장치.
  6. 체크 노드 유닛, 가변 노드 유닛, 제어 유닛 및 메모리를 포함하고, 상기 메모리는 복수의 뱅크로 이루어진 저밀도 패리티 검사 부호용 장치에 있어서,
    상기 복수의 뱅크 - 상기 복수의 뱅크는 각각 다수의 블록열을 포함하고, 상기 다수의 블록열은 각각 다수의 어드레스를 저장함 - 에서 상기 복수의 뱅크 중 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스의 데이터와, 상기 복수의 뱅크 중 다른 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스의 데이터를 동시에 읽는 경우, 상기 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스와, 상기 다른 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스가 불일치하면, 상기 제어 유닛은 상기 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스와, 상기 다른 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스가 상호 일치하도록 상기 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스를 소정 간격 쉬프트 시키고, 이후 상기 가변 노드 유닛이 상기 메모리 내 체크 노드 결과값을 읽어들여 가변 노드 연산을 동시에 수행하는 것을 특징으로 하는 저밀도 패리티 검사 부호용 장치.
  7. 복수의 뱅크로 이루어진 메모리를 포함하는 저밀도 패리티 검사 부호용 장치에 있어서,
    저밀도 패리티 검사 부호에 의해 부호화된 신호가 전송됨에 따라, 상기 저밀도 패리티 검사 부호를 위한 검사 행렬에 포함된 가변 노드를 초기화시키는 초기화부;
    각 체크 노드에 연결된 모든 다른 가변 노드로부터의 정보를 바탕으로 가변 노드의 신뢰를 갱신하는 체크 노드 유닛;
    상기 가변 노드의 연산을 수행하는 가변 노드 유닛;
    상기 가변 노드 유닛이 연산한 결과값의 부호를 이용하여 상기 결과값의 부호에 따라 이진으로 판정하는 판정 유닛; 및
    상기 복수의 뱅크 - 상기 복수의 뱅크는 각각 다수의 블록열을 포함하고, 상기 다수의 블록열은 각각 다수의 어드레스를 저장함 - 에서 상기 복수의 뱅크 중 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스의 데이터와, 상기 복수의 뱅크 중 다른 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스의 데이터를 동시에 읽는 경우, 상기 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스와, 상기 다른 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스가 불일치하면, 상기 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스와, 상기 다른 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스가 상호 일치하도록 상기 어느 하나의 뱅크 내 어느 하나의 블록열에 속한 어느 하나의 어드레스를 소정 간격 쉬프트 시키는 제어 유닛
    을 포함하는 저밀도 패리티 검사 부호용 장치.
  8. 제6항 또는 제7항에 있어서,
    상기 제어 유닛은,
    상기 가변 노드 유닛과 상기 메모리를 연결하는 네트웍;
    상기 복수의 뱅크 중 어느 하나의 뱅크를 제외한 나머지 뱅크에 대하여 상기 쉬프트 후 불일치하는 어드레스 차이를 보상하기 위한 레지스터 어레이; 및
    상기 레지스터 어레이의 갱신되는 데이터를 가변 노드 유닛에 공급하는 서브 컨트롤러
    를 포함하는 저밀도 패리티 검사 부호용 장치.
  9. 제8항에 있어서,
    상기 서브 컨트롤러는, 상기 메모리 내 해당 어드레스의 데이터를 읽어들여 상기 레지스터 어레이 내 최후 데이터를 갱신하고, 상기 레지스터 어레이 내 최선 데이터를 상기 가변 노드 유닛으로 출력하는 것을 특징으로 하는 저밀도 패리티 검사 부호용 장치.
KR1020120024917A 2012-03-12 2012-03-12 저밀도 패리티 검사 부호용 장치 KR101840252B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120024917A KR101840252B1 (ko) 2012-03-12 2012-03-12 저밀도 패리티 검사 부호용 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120024917A KR101840252B1 (ko) 2012-03-12 2012-03-12 저밀도 패리티 검사 부호용 장치

Publications (2)

Publication Number Publication Date
KR20130103910A KR20130103910A (ko) 2013-09-25
KR101840252B1 true KR101840252B1 (ko) 2018-03-20

Family

ID=49452846

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120024917A KR101840252B1 (ko) 2012-03-12 2012-03-12 저밀도 패리티 검사 부호용 장치

Country Status (1)

Country Link
KR (1) KR101840252B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050111201A (ko) * 2004-05-21 2005-11-24 삼성전자주식회사 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법
KR20060125947A (ko) * 2005-06-01 2006-12-07 삼성전자주식회사 저밀도채리티체크 채널 디코딩 방법 및 장치
KR20070037643A (ko) * 2004-07-21 2007-04-05 퀄컴 플래리온 테크놀러지스, 인크. Ldpc 인코딩 방법 및 장치
KR101058324B1 (ko) * 2003-02-26 2011-08-22 콸콤 인코포레이티드 멀티-레벨 퍼뮤테이션을 사용한 저밀도 패리티 검사(ldpc)코드 동작들을 수행하는 방법 및 장치
EP2365639A2 (en) * 2010-02-18 2011-09-14 Hughes Network Systems, LLC Method and system for providing low density parity check (LDPC) encoding and decoding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101058324B1 (ko) * 2003-02-26 2011-08-22 콸콤 인코포레이티드 멀티-레벨 퍼뮤테이션을 사용한 저밀도 패리티 검사(ldpc)코드 동작들을 수행하는 방법 및 장치
KR20050111201A (ko) * 2004-05-21 2005-11-24 삼성전자주식회사 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법
KR20070037643A (ko) * 2004-07-21 2007-04-05 퀄컴 플래리온 테크놀러지스, 인크. Ldpc 인코딩 방법 및 장치
KR20060125947A (ko) * 2005-06-01 2006-12-07 삼성전자주식회사 저밀도채리티체크 채널 디코딩 방법 및 장치
EP2365639A2 (en) * 2010-02-18 2011-09-14 Hughes Network Systems, LLC Method and system for providing low density parity check (LDPC) encoding and decoding

Also Published As

Publication number Publication date
KR20130103910A (ko) 2013-09-25

Similar Documents

Publication Publication Date Title
Ye et al. Explicit constructions of optimal-access MDS codes with nearly optimal sub-packetization
US10536169B2 (en) Encoder and decoder for LDPC code
CN103155421B (zh) Ldpc多解码器架构
US7730377B2 (en) Layered decoding of low density parity check (LDPC) codes
US20050262420A1 (en) Apparatus and method for decoding low density parity check codes
US10848182B2 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
CN106936444B (zh) 一种集合译码方法和集合译码器
US8438448B2 (en) Decoding method and device for low density generator matrix codes
KR102019893B1 (ko) 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법
CN109495115A (zh) 一种基于fpga的ldpc译码器及译码方法
KR100975695B1 (ko) 통신 시스템에서 신호 수신 장치 및 방법
US9116825B2 (en) Memory controller
US20160049962A1 (en) Method and apparatus of ldpc encoder in 10gbase-t system
US11575389B2 (en) Multi-standard low-density parity check decoder
US20100185913A1 (en) Method for decoding ldpc code and the circuit thereof
JP7429223B2 (ja) ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体
KR20160116980A (ko) Ldpc 복호기의 vss 알고리즘을 위한 h 행렬의 스케줄링 장치 및 그 방법
CN102594369B (zh) 基于fpga的准循环低密度校验码译码器及译码方法
KR101840252B1 (ko) 저밀도 패리티 검사 부호용 장치
US10727869B1 (en) Efficient method for packing low-density parity-check (LDPC) decode operations
US11323139B2 (en) Apparatuses and methods for mapping frozen sets between polar codes and product codes
WO2014002043A1 (en) Determining control bits of butterfly networks for parallel turbo decoding
CN117375636B (zh) 提高qc-ldpc译码器吞吐率的方法、装置及设备
CN116662063B (zh) 一种闪存的纠错配置方法、纠错方法、***、设备及介质
CN111106837B (zh) 一种ldpc译码方法、译码装置及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right