KR100762619B1 - 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법 - Google Patents

저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법 Download PDF

Info

Publication number
KR100762619B1
KR100762619B1 KR1020040036415A KR20040036415A KR100762619B1 KR 100762619 B1 KR100762619 B1 KR 100762619B1 KR 1020040036415 A KR1020040036415 A KR 1020040036415A KR 20040036415 A KR20040036415 A KR 20040036415A KR 100762619 B1 KR100762619 B1 KR 100762619B1
Authority
KR
South Korea
Prior art keywords
memory
check
decoding
unit
parity check
Prior art date
Application number
KR1020040036415A
Other languages
English (en)
Other versions
KR20050111201A (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 KR1020040036415A priority Critical patent/KR100762619B1/ko
Priority to US11/133,287 priority patent/US7631241B2/en
Publication of KR20050111201A publication Critical patent/KR20050111201A/ko
Application granted granted Critical
Publication of KR100762619B1 publication Critical patent/KR100762619B1/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/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B02CRUSHING, PULVERISING, OR DISINTEGRATING; PREPARATORY TREATMENT OF GRAIN FOR MILLING
    • B02CCRUSHING, PULVERISING, OR DISINTEGRATING IN GENERAL; MILLING GRAIN
    • B02C4/00Crushing or disintegrating by roller mills
    • B02C4/10Crushing or disintegrating by roller mills with a roller co-operating with a stationary member
    • B02C4/18Crushing or disintegrating by roller mills with a roller co-operating with a stationary member in the form of a bar
    • B02C4/24Crushing or disintegrating by roller mills with a roller co-operating with a stationary member in the form of a bar specially adapted for milling grain
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B02CRUSHING, PULVERISING, OR DISINTEGRATING; PREPARATORY TREATMENT OF GRAIN FOR MILLING
    • B02CCRUSHING, PULVERISING, OR DISINTEGRATING IN GENERAL; MILLING GRAIN
    • B02C4/00Crushing or disintegrating by roller mills
    • B02C4/10Crushing or disintegrating by roller mills with a roller co-operating with a stationary member
    • B02C4/12Crushing or disintegrating by roller mills with a roller co-operating with a stationary member in the form of a plate
    • B02C4/16Crushing or disintegrating by roller mills with a roller co-operating with a stationary member in the form of a plate specially adapted for milling grain
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B02CRUSHING, PULVERISING, OR DISINTEGRATING; PREPARATORY TREATMENT OF GRAIN FOR MILLING
    • B02CCRUSHING, PULVERISING, OR DISINTEGRATING IN GENERAL; MILLING GRAIN
    • B02C4/00Crushing or disintegrating by roller mills
    • B02C4/28Details
    • B02C4/30Shape or construction of rollers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B02CRUSHING, PULVERISING, OR DISINTEGRATING; PREPARATORY TREATMENT OF GRAIN FOR MILLING
    • B02CCRUSHING, PULVERISING, OR DISINTEGRATING IN GENERAL; MILLING GRAIN
    • B02C4/00Crushing or disintegrating by roller mills
    • B02C4/28Details
    • B02C4/42Driving mechanisms; Roller speed control
    • 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
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel

Abstract

본 발명은 통신 시스템에서 복호화 장치 및 방법에 관한 것으로, 본 발명의 실시 예에 따른 저밀도 패리티 체크 코드 복호장치는, 메모리부에 저장된 데이터를 열의 방향으로 독출하여 가변노드에 대한 확률을 연산하여 다시 열의 방향으로 상기 메모리부에 저장하는 복수의 가변 노드 프로세서들과, 상기 메모리부에 저장된 데이터를 행의 방향으로 독출하여 체크노드에 대한 확률을 연산하여 다시 행의 방향으로 상기 메모리부에 저장하는 복수의 체크 노드 프로세서들과, 상기 체크 노드 프로세서들과 연결되어 상기 체크 노드 프로세서로부터 출력된 데이터를 입력받아 복호 성공 여부를 검사하는 패리티 체크부와, 상기 체크 노드 프로세서의 연산 후에 하드 디시젼(Hard Decision)비트와 소프트 메트릭(llR)값을 동일한 메모리의 주소로 저장하며, 상기 가변 노드 프로세서들과 상기 체크 노드 프로세서들이 각각 접속할 수 있는 다수의 단위 메모리로 구성되어 있는 메모리부와, 상기 가변 노드 프로세서의 연산 후 상기 하드 디시전 비트와 상기 소프트 메트릭(llR)값을 저장하기 위한 인에이블(Enable)신호와 메모리 주소 신호를 생성하는 메모리 액세스 제어기를 포함한다.
LDPC, check node, variable node

Description

저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법{Apparatus and Method for decoding symbol with Low Density Parity Check Code}
도 1은 종래 기술에 따른 신뢰 전파 복호 방식을 설명하기 위한 도면,
도 2는 종래 기술에 따른 타너 그래프를 도시한 도면,
도 3은 본 발명의 바람직한 실시 예에 따른 저밀도 패리티 검사 코드 복호 장치의 구성 블록도,
도 4는 본 발명의 바람직한 실시 예에 따른 메모리와 노드 프로세서의 상세 구성을 도시한 도면,
도 5는 본 발명의 바람직한 실시 예에 따른 단위 메모리의 억세스를 위한 구성을 도시한 도면,
도 6a 내지 도 6d는 단위 메모리 억세스 방향을 설명하기 위한 도면,
도 7은 본 발명의 바람직한 실시 예에 따른 저밀도 패리티 검사 복호 방법을 설명하기 위한 신호 흐름도,
도 8은 본 발명의 바람직한 실시 예에 따른 단위 메모리의 내부 구성을 도시한 도면,
도 9는 본 발명의 바람직한 다른 실시 예에 따른 저밀도 패리티 검사 복호 방법을 설명하기 위한 신호 흐름도.
본 발명은 통신 시스템에서 복호화 장치 및 방법에 관한 것으로, 특히 통신 시스템에서 저밀도 패리티 검사(Low Density Parity Check : LDPC)코드의 복호화 장치 및 방법에 관한 것이다.
통상적으로 통신 시스템에서는 전송할 데이터를 가공하지 않은 정보 그대로를 전송하지 않고, 부호화를 수행한 이후에 이를 전송하게 된다. 이러한 부호화 방법으로는 반복 부호화 기법과, 길쌈(convolution) 부호화 기법과, 터보(Turbo) 부호화 기법 및 저밀도 패리티 부호화 기법 등이 있다. 상기한 각 부호화 기법들은 각각의 특성에 따라 사용될 수 있으며, 차세대 이동통신 시스템에서 사용하기 위해 저밀도 패리티 비트 부호화 기법에 대하여 활발한 개발이 진행되고 있다.
저밀도 패리티 부호화 방법은 정보 비트들을 전송하기 전에 부호화를 위한 행렬을 사용하여 부호화하는 블록 부호화의 일종이다. 이러한 블록 부호화를 수행할 때 사용되는 행렬에 "1"의 원소가 매우 작은 즉, 대부분의 원소가 "0"의 값을 가지는 부호화 행렬을 사용하는 방법을 저밀도 패리티 부호화 방법이라 말한다. 이와 같이 저밀도 패리티 부호화 방법은 아주 적은(sparse) 양의 "1" 값을 가지는 행(row)과 열(column)로 구성된 패리티 검사 행렬을 사용한다. 이러한 열과 행들은 각각 체크 노드(check node)와 가변 노드(variable node)로 대응시킨 펙터 그래프(factor graph)를 이용하여 코드(code)의 구조를 표현할 수 있다.
한편, LDPC 코드는 블록의 크기(block size)가 증가할수록 터보 코드(turbo code)에 비해 큰 최소 거리(minimum distance)를 갖게 되므로, 터보 코드(turbo code)에 비해 낮은 프레임 에러율(frame error rate)을 갖는다. 또한 비교적 높은 신호대 잡음비(SNR : Signal to Noise Ratio)에서도 오류 마루(error floor)를 보이지 않는 것이 일반적이다. 그리고, 코드워드(codeword)와 패리티 검사 행렬(parity check matrix)의 직교성(orthogonality)을 이용하여 CRC(Cyclic Redundancy Check)없이도 복호된 코드워드(codeword)에 대한 오류 검출과 효율적인 복호 정지가 가능하다.
이러한 LDPC 코드는 차세대 이동 통신 시스템에서 터보 코드를 대체할 수 있는 강력한 대안으로 거론되고 있다. 즉, 이는 LDPC 코드가 갖고 있는 디코더 구현상의 병렬 구조(parallel structure)와 저 복잡도(low complexity), 그리고 성능상의 로우 에러 플로어(low error floor), 굳 프레임 에러 레이트(good frame error rate)등의 요인 때문이며, 앞으로도 많은 연구가 진행되면 보다 우수한 특성들을 갖는 LDPC 코드들이 등장할 것으로 생각된다.
특히, 플라이온(Flarion)사는 LDPC 코드의 설계 및 H/W 구현 등을 주도하면서 비교적 짧은 길이의 LDPC 코드에 대해서도 터보 코드보다 우수한 프레임 에러 레이트를 갖고, 병렬 디코더의 구현이 가능한 멀티 에지 타입 벡터(multi-edge type vector) LDPC 코드를 제안한 바 있다. LDCP 디코더를 구현함에 있어서 중점이 되는 것이 효율적인 메모리의 설계와 디코딩 속도의 향상이다.
도 1은 섬 프로덕트 알고리즘의 일종인 신뢰 전파 디코딩(belief propagation decoding)을 설명하기 위한 도면이다.
도 1a를 참조하면, 하나의 체크 노드 프로세서에 다수의 가변 노드 프로세서가 연결되어 있다. 각 가변 노드(variable node) 프로세서와 체크 노드(check node) 프로세서의 연결은 패리티 체크 매트릭스(parity check matrix)의 구조를 가지게 된다. 상기 가변 노드(variable node) 프로세서는 초기 수신 심볼이 입력되는 노드이다.
수신된 심볼들이 제일 먼저 가변 노드 프로세서(variable node processor)의 입력과 연결된 메모리에 저장된다. 체크 노드 프로세서(check node processor)가 상기 가변 노드 프로세서로부터 출력되어 메모리에 저장된 확률 값을 읽어서 주변 값들의 확률 값들로부터 현재 노드의 심볼에 대한 확률을 구한다. 그리고 체크 노드 프로세서로부터 계산된 심볼에 대한 확률 계산된 값을 다시 메모리로 오버라이트(overwrite)한다.
가변 노드 프로세서(variable node processor)는 메모리로부터 확률 값을 읽어들여서 최종 소프트 메트릭(llr)을 계산하고 메모리에 저장한다. 상기의 체크노드 프로세서와 가변 노드 프로세서 사이의 연산 과정을 반복하여 신뢰도를 높인다. 여기서, 가변 노드 프로세서(variable node processor), 체크 노드 프로세서(check node processor)는 각각 패리티 체크 매트릭스(parity check matrix)의 컬럼(column), 로우(row)에서 1의 위치에 해당하는 메모리 블록(memory block)으로부터 값을 읽어들여 계산한 후 저장하게 된다. 반면, 도 1b를 참조하면, 하나의 가변 노드 프로세서에 다수의 체크 노드 프로세서가 연결되어 있다. 각 체크 노드(check node) 프로세서와 가변 노드(variable node)프로세서의 연결은 패리티 체크 매트릭스(parity check matrix)의 구조를 가지게 된다.
여기서 1의 위치의 의미는 노드가 연결되어 있는지 연결되어 있지 않는지를 나타낸다. 메모리 블록은 각 노드들이 가지는 심볼에 대한 신뢰도를 저장하는 메모리를 하드웨어 구성을 쉽도록 블록의 형태로 모아놓은 것이다. 상기 도 1에서 도시된 각 숫자는 각기 다른 노드들을 의미하며, 화살표 방향은 신뢰도를 계산한 확률 값의 흐름을 의미한다.
도 2는 타너 그래프(tanner graph)와 패리티 체크 매트릭스(parity check matrix)를 보여주고 있다.
일반적인 블록 코드에 대한 패리티 체크 매트릭스(parity check matrix)인 행렬 H는 다수의 1로 구성된다. 이러한 구조는 1의 개수가 많기 때문에 높은 신뢰도를 가지고 복호가 가능하며, 반복 복호 구조를 가질 경우 적은 회수의 반복 복호만으로 원하는 성능을 얻을 수 있다. 여기서, 상기 “1”의 의미는 노드의 연결을 의미한다. 따라서, “1”이 많음으로 인해 참조할 수 있는 정보들이 많은 것이고 그만큼 정확하게 심볼이 어떤 값인지를 판단할 수 있다. 심볼이 “0”인지 “1”인지 여부를 판단하는 데에는 노드의 숫자가 많을수록 정확한 확률이 계산되기 때문이다.
도 2를 참조하면, 하나의 체크 노드 프로세서에 여섯 개의 가변 노드 프로세서가 연결되어 있다. 그러나, 노드수가 증가함에 따라 하드웨어가 증가하므로, 이동 통신과 같은 제한된 환경에서 구현하기 힘들 정도로 높은 복잡도를 가지게 된다.
LDPC는 각 노드 프로세서(node processor)를 병렬화하지 않은 경우, 복잡도는 터보 복호기에 비해서 크지 않다. 하지만 이러한 경우 복호 속도가 느려지게 된다. 하나의 체크 노드 프로세서(check node processor), 가변 노드 프로세서(variable node processor)로 모든 수신 심볼의 확률을 구해야 하므로 많은 시간이 걸린다. 반면 각 노드 프로세서를 병렬화하여 한번에 모든 계산을 끝내도록 설계하게 되면 복잡도는 아주 크게 증가하게 된다. 그러므로 실제 구현하여 특정 시스템에 적용하기 위해서는 어느 정도의 절충이 필요하게 된다. 즉, 노드 프로세서(node processor)의 적절한 병렬화를 통해서 복잡도를 감소하고 어느 정도 복호 속도의 저하를 감수해야 한다. LDPC가 전체 병렬화를 하지 않고 부분 병렬화를 사용하여 설계하는 경우 메모리 블록에 대한 제어가 복잡해지게 된다. 이러한 하드웨어 성능과 구현 복잡도 간의 절충 과정에서 효율적인 메모리 제어가 필요하게 되었다.
따라서, 상기한 바와 같은 문제점을 해결하기 위한 본 발명의 목적은 저밀도 패리티 체크 설계를 위해, 동작 속도 및 복잡도를 개선하는 메모리 구조를 갖는 복호화 장치 및 방법을 제공함에 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 장치는 메모리부에 저장된 데이터를 열의 방향으로 독출하여 가변노드에 대한 확률을 연산하여 다시 열의 방향으로 상기 메모리부에 저장하는 복수의 가변 노드 프로세서들과, 상기 메모리부에 저장된 데이터를 행의 방향으로 독출하여 체크노드에 대한 확률을 연산하여 다시 행의 방향으로 상기 메모리부에 저장하는 복수의 체크 노드 프로세서들과, 상기 체크 노드 프로세서들과 연결되어 상기 체크 노드 프로세서로부터 출력된 데이터를 입력받아 복호 성공 여부를 검사하는 패리티 체크부와, 상기 체크 노드 프로세서의 연산 후에 하드 디시젼(Hard Decision)비트와 소프트 메트릭(llR)값을 동일한 메모리의 주소로 저장하며, 상기 가변 노드 프로세서들과 상기 체크 노드 프로세서들이 각각 접속할 수 있는 다수의 단위 메모리로 구성되어 있는 메모리부와, 상기 가변 노드 프로세서의 연산 후 상기 하드 디시전 비트와 상기 소프트 메트릭(llR)값을 저장하기 위한 인에이블(Enable)신호와 메모리 주소 신호를 생성하는 메모리 액세스 제어기를 포함한다.
상기와 같은 목적을 달성하기 위한 본 발명의 방법은 메모리 및 레지스터들을 “0”으로 초기화하는 과정과, 수신된 심볼들을 상기 초기화된 메모리에 저장하는 과정과, 적어도 하나의 체크 노드 프로세서가 행의 방향으로 연산을 수행하여 하드 디시젼 비트와 소프트 메트릭 값을 동일한 메모리 주소에 저장하는 과정과, 상기 하드 디시젼 비트를 사용하여 패리티 체크하여 복호가 성공했는지 검사하는 과정과, 상기 복호가 성공했을 경우, 적어도 하나의 가변 노드 프로세서가 연산을 수행하는 과정을 포함한다.
이하 첨부된 도면을 참조하여 본 발명의 상세 동작 및 구조에 대하여 상세히 설명한다. 도면들 중 참조번호들 및 동일한 구성요소들에 대해서는 비록 다른 도면 상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
본 발명은 저밀도 패리티 체크 코드(Low Density Parity Check Code : LDPC)방식의 복호 장치 및 방법에 있어, 노드 프로세서를 병렬화하여 복호 동작 속도를 증가시키되 하드웨어의 복잡도를 감소시키기 위해 메모리를 효율적으로 제어하는 기술을 제안한다.
상술한 바와 같은 본 발명이 제안하는 바를 구현하기 위한 저밀도 패리티 검사 코드 장치의 구성을 도 3을 참조하여 살펴보기로 한다. 이하 본 명세서 전반에 걸쳐 사용되는 데이터(Data)라는 용어는 수신된 심볼 및 복호되는 값들의 확률을 의미한다.
도 3을 참조하여 본 발명의 실시 예에 따른 LDPC 복호장치의 구성을 살펴보면, 메모리부(310)는 코드워드에 대한 확률 값인 신뢰도(Reliability)를 저장하며 메모리 억세스 제어부(340)의 제어에 의해 체크 노드 프로세서(check node processor)(330) 및 가변 노드 프로세서(variable node processor)(320)로부터 입력되는 데이터를 저장하고, 상기 체크 노드 프로세서(330) 및 가변 노드 프로세서(340)로부터의 요청에 따라 저장되어 있는 데이터를 출력한다.
상기 가변 노드 프로세서(320)는 상기 메모리부(310)에 저장된 데이터를 독출하여 가변 노드에 대한 각각 노드들의 확률을 연산하여 다시 메모리부(310)에 기록한다. 여기서, 상기 가변 노드는 확률을 의미하고, 상기 가변 노드의 확률 값이 메모리에 저장된다. 또한, 상기 가변 노드 프로세서는 연결된 노드들로부터 확률 값을 읽어들여 다시 새로운 확률 값을 연산하는 블록이다.
상기 체크 노드 프로세서(340)는 상기 메모리부(310)로부터 노드에 대한 확률 데이터를 읽어들여, 체크 노드에 대한 연산을 수행하고, 상기 연산 결과를 상기 메모리부(310)에 기록한다.
본 발명에서는 LDPC의 복호기가 병렬화되어 있어서 전체 메모리부가 단위 메모리로 분리되는 구조를 가진다. 이는 각 프로세서가 독출 및 기록 동작을 수행할 때, 메모리 주소값들이 제각기 다르므로, 체크 노드 프로세서(check node processor)나 가변 노드 프로세서(variable node processor)의 개수만큼 열과 행으로 메모리가 분할되어 고속의 연산 수행이 가능해진다. 상술한 바와 같이 병렬 연산을 수행하기 위한 메모리부(310)와 노드 프로세서들의 상세 구성이 도 4에 도시되어 있다.
도 4를 참조하면, M으로 표시된 다수개의 단위 메모리들(410)과, 상기 다수의 단위 메모리들(410)과 억세스하는 다수의 노드 프로세서들(420, 430)이 도시되어 있다.
상술한 바와 같은 구성을 갖게 되면, 상기 노드 프로세서(Node processor)들(420, 430)의 개수가 증가함에 따라 복호의 속도가 증가한다는 장점이 있는 반면, 다수의 노드 프로세서들(420, 430)로 인해 하드웨어의 복잡도 또한 증가하게 된다는 단점이 있다. 따라서, 상술한 바와 같이 본 발명에서는 노드 프로세서(node processor)들(420, 430)의 개수를 미리 정해진 값으로 제한하여, 노드 프로세서(node processor)들(420, 430)이 다른 메모리들의 연산을 수행하도록 한다. 그 이유는 노드 프로세서의 숫자가 노드의 확률을 저장하는 메모리의 숫자보다 작기 때문에 모든 메모리에 있는 내용을 한번에 계산할 수 없기 때문이다. 그래서 노드 프로세서가 여러 번에 걸쳐서 모든 메모리에 있는 내용들을 불러들여서 연산을 수행하고 다시 메모리에 저장해야 한다. 즉, 요구되는 노드 프로세서의 개수가 15개이고, 사용 가능한 노드 프로세서의 개수가 5개일 경우, 상기 노드 프로세서가 세 번의 반복(Iteration) 연산을 수행하게 된다.
상술한 바와 같이 각각의 메모리와 상기 프로세서가 1 대 1로 매핑이 고정되어있지 않기 때문에, 상기 소정 개수로 한정된 노드 프로세서들이 모든 메모리들의 연산을 수행하기 위해서는 상기 한정된 프로세서가 억세스할 메모리가 선택되어야 한다.
이를 위해 도 3에 도시된 메모리 억세스 제어기(340)는 상기 단위 메모리를 억세스할 노드 프로세서를 결정해주는 어드레스 인덱스 생성부(address index generator block)(530)와, 도 4와 도 5에 도시된 다수의 단위 메모리(410)들 중 사용할 단위 메모리의 인에이블을 제어하는 기록 인에이블 제어부(write enable controller)(540)를 구비하게 된다. 즉, 동시에 복수개의 값들을 메모리로부터 읽어들여야 하기 때문에 각 메모리 블록의 어드레스 입력이 독립적으로 존재하며, 기록 인에이블 신호 또한 독립적이다. 그래서 몇 개의 노드 프로세서를 공유하여 모든 노드에 대한 연산을 수행하기 위해서 기록 인에이블 제어기가 필요하다.
프로세서가 한정되어 있을 때, 메모리 억세스 제어기(340)와 단위 메모리의 구조(410)를 도 5를 참조하여 좀 더 상세히 살펴보기로 한다.
도 5를 참조하면, 단위 메모리(500)에는 멀티플렉서/디멀티플렉서(mux/demux)(510, 520)가 연결되어 선택적으로 입출력이 가능하다.
상기 멀티플렉서(510)에는 체크 노드 프로세서의 출력, 가변 노드 프로세서의 출력, 수신 심볼의 입력이 연결되어있으며, 데이터 입출력 모드의 설정에 따라 출력 데이터를 선택하게 된다.
상기 데이터 입출력 모드가 '0'으로 설정되면, 체크 노드 프로세서(420)의 데이터가 단위 메모리(500)로 출력하게 된다. 상기 체크 노드 프로세서(420)의 업데이트 방향은 도 6b에 도시된 바와 같다.
상기 데이터 입출력 모드가 '1'로 설정되면, 가변 노드 프로세서로부터 입력되는 데이터를 단위 메모리(500)로 출력하게 되는데, 상기 가변 노드 프로세서의 업데이트 방향을 도 6c에 도시된 바와 같다. 상기 데이터 입출력 모드가 '2'로 설정되면, 수신기에 저장된 수신 심볼을 메모리로 출력하는데, 도 6a에 도시된 바와 같이 수신 심볼은 가변 노드 프로세서의 데이터가 업데이트되는 방향으로 입력된다. 상기 수신 심볼이 가변 노드 프로세서의 데이터가 업데이트되는 방향으로 입력되는 이유는 행렬을 계산할 때 행렬의 행과 열의 순서에 맞춰서 상기 수신 심볼이 입력되어야 행렬 계산이 제대로 되기 때문이다. 여기서 행렬을 parity check 행렬과, 그 역행렬을 의미한다.
상기 단위 메모리(500)로부터 디멀티플렉서(520)로 입력되는 신호는 체크 노드 프로세서, 가변 노드 프로세서로 출력되는데, 데이터 입출력 모드의 설정에 따라 출력 노드를 선택하게 된다. 상기 데이터 입출력 모드가 '0'으로 설정되면, 단위 메모리(500)로부터 출력되는 데이터를 체크 노드 프로세서(420)로 출력하게 된다. 상기 데이터 입출력 모드가 '1'로 설정되면, 단위 메모리(500)로부터 출력되는 수신된 raw 데이터를 가변 노드 프로세서(430)로 출력하게 된다.
상기 어드레스 인덱스 생성부(530)는 단위 메모리(500)의 어드레스를 생성해주는데, 어드레스 모드가 '0'으로 설정되어 있을 경우, 체크 노드 프로세(420)서와 대응하는 주소를 생성하여 출력하고, 상기 어드레스 모드가 '1'로 설정되어 있을 경우, 가변 노드 프로세서(430)와 대응하는 주소를 생성하여 출력한다. 여기서 상기 어드레스 인덱스 생성부(530)는 단위 메모리(500)로 각각의 노드 프로세서에 대응되는 주소를 출력한다.
한편, 반복 복호 구조를 가진 LDPC가 복호 연산을 수행할 때에는 패리티 체크 과정을 반복 과정 중에 항상 수행하도록 되어있다. 그래서, 패리티 체크 결과, 에러가 없다고 판단될 때 복호 과정을 중지하게 된다.
도 3을 참조하면, 상기 체크 노드 프로세서(330)에는 에러가 모두 정정되었는지를 검사하고, 반복 복호할지를 결정하는 패리티 체크부(parity check block)(350)이 연결되어 있다. 따라서, 패리티 체크를 수행하는 시점이 체크 노드 프로세서(check node processor)(300)가 동작하는 시점과 일치한다. 도 6d은 상기 체크 노드 프로세서(330)가 연산을 수행할 때, 패리티 체크부(350)가 동시에 동작함을 보여주는 도면이다.
도 7은 상술한 바와 같은 본 발명의 바람직한 실시 예에 따른 저밀도 패리티 체크 코드를 이용한 복호 동작을 설명하기 위한 신호 흐름도이다.
도 7을 참조하면, 710 단계에서 복호 동작 시작 요청 신호에 따라, 메모리 및 레지스터들은 '0' 값으로 초기화된다. 720 단계에서 수신된 심볼들은 상기 초기화된 메모리에 저장된다. 이 때, 상기 도 5의 멀티플렉서의 데이터 입/출력 모드는 수신 신호 입력 모드인 '2'로 설정되어, 수신 신호가 단위 메모리로 출력된다. 상기 어드레스 인덱스 생성부(530)의 어드레스 모드는 가변 노드 모드인 '1'로 설정되는데, 이는 도 6a에 도시된 바와 같이 상기 수신 신호가 가변 노드 메시지가 업데이트되는 방향, 즉 열의 방향으로 입력되기 때문인데 이는 전송하려고 하는 정보와 행렬의 순서에 의해서 디코더도 그 열의 방향으로 입력되기 때문이다.
730단계에서 체크 노드 프로세서(420)가 행의 방향으로 연산에 필요한 각 노드의 심볼 확률 값을 상기 단위 메모리부(500)로부터 독출하여 연산을 수행하게 된다. 이때, 디멀티플렉서(520)의 입/출력 모드는 체크 노드 모드인 '0'으로 설정되어, 상기 단위 메모리(500)에 저장된 메시지가 체크 노드 프로세서(420)로 출력된다. 또한, 멀티플렉서(510)의 데이터 입/출력 모드는 체크 노드 프로세서(420) 입력 모드인 '0'으로 설정되어, 동일한 행의 방향으로 체크 노드 프로세서(420)가 연산한 결과 값을 단위 메모리(500)에 저장되고, 상기 어드레스 인덱스 생성부의 어드레스 모드는 체크 노드 모드인 '0'으로 설정된다.
이 때, 상기 체크 노드 프로세서로 출력된 데이터는 패리티 체크부(350)로 출력되어 740 단계에서 패리티 체크 동작이 수행되고, 750 단계에서 상기 패리티 체크부(350)는 복호 성공 여부를 판단하게 된다. 상기 750 단계의 판단 결과, 복호가 성공하지 않았을 경우, 760 단계에서 가변 노드 프로세서(430)의 연산이 수행되어 하드 디시젼 값과 소프트 메트릭 값이 구해져, 730 단계로 궤환된다. 이 때, 760 단계의 연산을 수행하기 위해 디멀티플렉서(520)의 입/출력 모드는 가변 노드 모드인 '1'로 설정되어, 단위 메모리(500)의 데이터가 열의 방향으로 가변 노드 프로세서(430)로 출력된다. 상기 연산 동작이 수행된후, 멀티플렉서(510)의 데이터 입/출력 모드는 가변 노드 프로세서(430) 입력 모드인 '1'로 설정되어, 가변 노드 프로세서(430)로부터 출력되는 데이터가 단위 메모리(500)로 출력되고, 상기 어드레스 인덱스 생성부(530)의 어드레스 모드는 가변 노드 모드인 '1'로 설정된다.
한편, 상기 750 단계의 판단 결과, 복호가 성공하였을 경우, 770 단계에서 상기 760 단계에서와 같은 가변 노드 프로세서(430)의 연산이 수행되고, 가변 노드 프로세서(430)가 하드 디시젼 된 정보를 출력한 후 복호 동작이 종료된다. 상기 하드 디시전된 정보를 먹스로 출력한다. 복호 성공유무와 상관없이 가변 노드 프로세서 연산을 하는 이유는 복호 성공유무가 나오는 시점이 늦기 때문이다. 어차피 가변 노드 프로세서가 연산을 종료하는 시점에 복호 성공 유무가 나오게 됨으로 복호 실패를 했을 때 다시 한번 더 복호를 수행하는 데 시간을 단축시키게된다.
다음으로 본 발명은 상기 단위 메모리(500)의 내부 구조에 따라 LDPC 복호 방법의 다른 실시 예를 살펴보기로 한다.
그러면, 우선 도 8을 참조하여 단위 메모리(500)의 내부 구조를 살펴보기로 한다.
도 8을 참조하면, 단위 메모리 블록은 Ns개의 워드로 구성되며, W 크기의 비트 폭(bit width)을 갖는 메모리이다. 하나의 워드 구성을 살펴보면, 최상위 비트가 하드 디지젼 비트(hard decision bit)(802)이고, 나머지 비트들이 소프트 메트릭(soft metric(llr))(804)값을 갖도록 구성되어 있다.
상술한 바와 같이 반복 복호 구조를 가진 LDPC가 복호 연산을 수행할 때에는 패리티 체크 과정을 반복 과정 중에 항상 수행하도록 되어있다. 이때 패리티 체크를 수행하는 시점이 체크 노드 프로세서(check node processor)(420)가 동작하는 시점과 일치하고, 하드 디시젼(hard decision)값(802)이 저장되는 시점은 가변 노드 프로세서(variable node processor)가 동작하는 시점과 일치한다.
상술한 도 7의 첫 번째 반복 단계인 730 단계를 수행하고 난 후, 메모리(500)에는 체크 노드 프로세서(420)의 메시지만이 저장되어 있으므로, 하드 디시젼(hard decision)에 대한 정보를 가질 수 없다. 그 이유는 첫 번째 반복 중에 패리티 체크를 수행하는 시점은 체크 노드 프로세서(420)가 동작하는 시점이지만, 완전한 하드 디시젼 정보가 획득되는 시점은 체크 노드 프로세서(420)가 모두 동작을 끝내고 가변 노드 프로세서(430)가 동작을 수행한 이후가 되기 때문이다. 상기 도 7에서는 복호를 시작하는 시점에서 반복단계를 거치지 않고 730단계인 체크 노드 프로세서 연산을 하면서 parity check하는 구조이며, 도 9에서는 930단계와 940단계의 반복단계를 거친 후 parity check를 하지 않는 구조에 대한 그림이다.
따라서, 도 9에 도시된 바와 같이, 930 단계와 940 단계가 부가되어, 패리티 체크를 하지 않는 첫 번째 반복 동작을 수행한 후, 상기 950 단계인 두번째 반복으로부터 패리티 체크가 동작을 수행하게 된다.
940 단계가 수행되고 난 후에는, 가변 노드 프로세서가 하드 디시젼(hard decision)에 대한 정보를 획득하여 소프트 메트릭(llr)값이 저장된 주소와 같은 주소로 메모리에 저장을 해 놓는 것이 편하며, 가변노드 프로세서가 llr값과 함께 하드 디시젼 값을 계산하고 그것을 llr과 붙여서 메모리에 저장한다. 950 단계에서 체크 노드 프로세싱 과정을 수행할 때 자연스럽게 패리티 체크를 수행할 수 있다. 즉 패리티 체크을 위한 하드 디시젼 비트(hard decision bit)(802)들의 어드레스(address)위치와 체크 노드 프로세서(check node processor)(420)가 읽어들일 데이터의 어드레스(address)위치가 동일하여 읽어들인 메모리의 최상위 비트는 패리티 체크 부(parity check block)(350)으로 나머지는 체크 노드 프로세서(check node processor)(420)로 입력시켜 주면 된다. 상기에서 하드 디시전 비트와 소프트 메트릭 bits를 합쳐서 메모리에 저장하는 것이 읽고 쓸 때 편리하므로 최상위 비트는 패리티 체크 부로 입력되고, 나머지는 체크 노드 프로세서로 입력하도록 메모리 워드(Word)를 구성한 것이다.
상기 도 7에서와는 달리 상기 도 9에서는 체크 노드 프로세서 연산을 수행하는 950단계 이전에 930단계 내지 940단계의 반복 복호를 더 수행하더라도 본 발명을 구현하는데 아무런 문제가 없다는 것을 보여주고 있다.
이상에서 상술한 바와 같이 본 발명은 효율적인 메모리 제어를 통하여 복호속도를 향상시키고 회로의 복잡도를 최소화할 수 있다는 장점이 있다.

Claims (14)

  1. 저밀도 패리티 체크 코드 복호 장치에 있어서,
    메모리부에 저장된 데이터를 열의 방향으로 독출하여 가변노드에 대한 확률을 연산하여 다시 열의 방향으로 상기 메모리부에 저장하는 복수의 가변 노드 프로세서들과,
    상기 메모리부에 저장된 데이터를 행의 방향으로 독출하여 체크노드에 대한 확률을 연산하여 다시 행의 방향으로 상기 메모리부에 저장하는 복수의 체크 노드 프로세서들과,
    상기 체크 노드 프로세서들과 연결되어 상기 체크 노드 프로세서로부터 출력된 데이터를 입력받아 복호 성공 여부를 검사하는 패리티 체크부와,
    상기 체크 노드 프로세서의 연산 후에 하드 디시젼(Hard Decision)비트와 소프트 메트릭(llR)값을 동일한 메모리의 주소로 저장하며, 상기 가변 노드 프로세서들과 상기 체크 노드 프로세서들이 각각 접속할 수 있는 다수의 단위 메모리로 구성되어 있는 메모리부와,
    상기 가변 노드 프로세서의 연산 후 상기 하드 디시전 비트와 상기 소프트 메트릭(llR)값을 저장하기 위한 인에이블(Enable)신호와 메모리 주소 신호를 생성하는 메모리 액세스 제어기를 포함함을 특징으로 하는 저밀도 패리티 검사 코드를 이용한 복호화 장치.
  2. 제 1항에 있어서,
    상기 메모리 억세스 제어기는,
    상기 인에이블 신호를 생성하는 기록 인에이블 제어부와,
    상기 메모리 주소 신호를 생성하는 어드레스 인덱스 생성부를 포함함을 특징으로 하는 저밀도 패리티 검사 코드를 이용한 복호화 장치.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제 1항에 있어서,
    상기 메모리 액세스 제어기는,
    상기 단위 메모리로 각각의 노드 프로세서에 대응되는 주소를 출력하는 어드레스 인덱스 생성부와,
    상기 다수의 단위 메모리들 중 사용할 단위 메모리에 대한 연산을 수행하기 위해 인에이블을 제어하는 기록 인에이블 제어부를 포함함을 특징으로 하는 저밀도 패리티 검사 코드를 이용한 복호화 장치.
  7. 제 1항에 있어서,
    상기 단위 메모리에는,
    멀티플렉서와 디멀티플렉서가 연결되어 선택적으로 입출력이 가능함을 특징으로하는 저밀도 패리티 검사 코드를 이용한 복호화 장치.
  8. 제 1항에 있어서,
    상기 저밀도 패리티 체크 코드 복호 장치는,
    저 밀도 패리티 체크 복호기를 포함함을 특징으로 하는 저밀도 패리티 검사 코드를 이용한 복호화 장치.
  9. 제 8항에 있어서,
    상기 저 밀도 패리티 체크 복호기는 병렬 구조로 수행됨을 특징으로 하는 저밀도 패리티 검사 코드를 이용한 복호화 장치.
  10. 제 1항에 있어서,
    상기 다수의 체크 노드 프로세서들은 에러가 모두 정정되었는지를 검사함을 특징으로 하는 저밀도 패리티 검사 코드를 이용한 복호화 장치.
  11. 제 1항에 있어서,
    상기 패리티 체크부는 반복 복호함을 특징으로 하는 저밀도 패리티 검사 코드를 이용한 복호화 장치.
  12. 저밀도 패리티 체크 복호 방법에 있어서,
    메모리 및 레지스터들을 “0”으로 초기화하는 과정과,
    수신된 심볼들을 상기 초기화된 메모리에 저장하는 과정과,
    적어도 하나의 체크 노드 프로세서가 행의 방향으로 연산을 수행하여 하드 디시젼 비트와 소프트 메트릭 값을 동일한 메모리 주소에 저장하는 과정과,
    상기 하드 디시젼 비트를 사용하여 패리티 체크하여 복호가 성공했는지 검사하는 과정과,
    상기 복호가 성공했을 경우, 적어도 하나의 가변 노드 프로세서가 연산을 수행하는 과정을 포함함을 특징으로 하는 저밀도 패리티 검사 코드를 이용한 복호화 방법.
  13. 제 12항에 있어서,
    상기 복호가 실패했을 경우, 상기 적어도 하나의 가변 노드 프로세서가 연산을 수행하여 반복 연산이 수행되는 과정을 포함함을 특징으로 하는 저밀도 패리티 검사 코드를 이용한 복호화 방법.
  14. 제 13항에 있어서,
    상기 적어도 하나의 체크 노드 프로세서 연산 전에 반복 복호가 수행되는 과정을 더 포함함을 특징으로 하는 저밀도 패리티 검사 코드를 이용한 복호화 방법.
    Figure 112006053295228-pat00013
KR1020040036415A 2004-05-21 2004-05-21 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법 KR100762619B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040036415A KR100762619B1 (ko) 2004-05-21 2004-05-21 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법
US11/133,287 US7631241B2 (en) 2004-05-21 2005-05-20 Apparatus and method for decoding low density parity check codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040036415A KR100762619B1 (ko) 2004-05-21 2004-05-21 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050111201A KR20050111201A (ko) 2005-11-24
KR100762619B1 true KR100762619B1 (ko) 2007-10-01

Family

ID=35376636

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040036415A KR100762619B1 (ko) 2004-05-21 2004-05-21 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법

Country Status (2)

Country Link
US (1) US7631241B2 (ko)
KR (1) KR100762619B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100919779B1 (ko) * 2007-03-06 2009-10-01 재단법인서울대학교산학협력재단 저밀도 패리티 검사 부호를 위한 복호화기 및 복호화 방법
US8448050B2 (en) 2009-09-18 2013-05-21 Kabushiki Kaisha Toshiba Memory system and control method for the same

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2871976B1 (fr) * 2004-06-22 2006-08-11 St Microelectronics Sa Decodeur ldpc
KR100703271B1 (ko) * 2004-11-23 2007-04-03 삼성전자주식회사 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치
US8078933B2 (en) * 2005-05-18 2011-12-13 The Governors Of The University Of Alberta Decoder for low-density parity-check convolutional codes
US7958424B2 (en) * 2005-06-22 2011-06-07 Trident Microsystems (Far East) Ltd. Multi-channel LDPC decoder architecture
US20070089016A1 (en) * 2005-10-18 2007-04-19 Nokia Corporation Block serial pipelined layered decoding architecture for structured low-density parity-check (LDPC) codes
US20070089019A1 (en) * 2005-10-18 2007-04-19 Nokia Corporation Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including calculating check-to-variable messages
US7661055B2 (en) * 2005-12-05 2010-02-09 Broadcom Corporation Partial-parallel implementation of LDPC (Low Density Parity Check) decoders
FR2894738A1 (fr) * 2005-12-09 2007-06-15 Interface Sarl R Methode et appareil de reduction de complexite de decodage parallele des codes ldpc (low density parity check code)
JP4807063B2 (ja) * 2005-12-20 2011-11-02 ソニー株式会社 復号装置、制御方法、およびプログラム
US7617433B2 (en) * 2006-01-03 2009-11-10 Broadcom Corporation Implementation of LDPC (low density parity check) decoder by sweeping through sub-matrices
US7530002B2 (en) * 2006-01-03 2009-05-05 Broadcom Corporation Sub-matrix-based implementation of LDPC (Low Density Parity Check) decoder
US7941737B2 (en) * 2006-04-19 2011-05-10 Tata Consultancy Services Limited Low density parity check code decoder
US8010881B2 (en) * 2007-07-02 2011-08-30 Broadcom Corporation Multi-code LDPC (low density parity check) decoder
US7958429B2 (en) * 2007-07-02 2011-06-07 Broadcom Corporation Distributed processing LDPC (low density parity check) decoder
TWI407703B (zh) * 2007-08-06 2013-09-01 Broadcom Corp 解碼器
JP5544773B2 (ja) * 2009-07-22 2014-07-09 ソニー株式会社 エラー訂正装置、エラー訂正装置のメモリの制御方法および光ディスク記録再生装置
TWI425519B (zh) * 2009-12-09 2014-02-01 Nat Chip Implementation Ct Nat Applied Res Lab 低複雜度低密度同位元檢查碼解碼器之記憶體配置方法及其解碼器結構
KR101212759B1 (ko) 2010-10-29 2012-12-14 에스케이하이닉스 주식회사 데이터 오류 검사 기능을 이용한 데이터 전송 방법, 데이터 오류 검사 기능을 이용한 반도체 메모리 및 메모리 시스템
US8726122B2 (en) * 2011-05-11 2014-05-13 Samsung Electronics Co., Ltd. High throughput LDPC decoder
KR101840252B1 (ko) * 2012-03-12 2018-03-20 에스케이하이닉스 주식회사 저밀도 패리티 검사 부호용 장치
EP2858249A1 (en) * 2013-10-07 2015-04-08 Electronics and Telecommunications Research Institute Low density parity check encoder
CN103746709B (zh) * 2013-12-17 2017-01-25 记忆科技(深圳)有限公司 准循环低密度奇偶校验的装置
US9276610B2 (en) 2014-01-27 2016-03-01 Tensorcom, Inc. Method and apparatus of a fully-pipelined layered LDPC decoder
US9391817B2 (en) 2014-03-24 2016-07-12 Tensorcom, Inc. Method and apparatus of an architecture to switch equalization based on signal delay spread
CA2864635C (en) * 2014-08-14 2017-06-27 Sung-Ik Park Low density parity check encoder having length of 16200 and code rate of 3/15, and low density parity check encoding method using the same
JP6290057B2 (ja) * 2014-09-22 2018-03-07 株式会社東芝 復号装置、復号方法およびメモリシステム
JP2016144052A (ja) * 2015-02-02 2016-08-08 株式会社東芝 復号装置および復号方法
KR20180009558A (ko) * 2016-07-19 2018-01-29 삼성전자주식회사 저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러
CN110444245B (zh) 2018-05-03 2023-07-18 爱思开海力士有限公司 具有混合迭代解码能力的存储器系统及其操作方法
KR20200022136A (ko) * 2018-08-22 2020-03-03 에스케이하이닉스 주식회사 에러 정정 장치 및 그것을 포함하는 전자 장치
CN110535476B (zh) * 2019-09-30 2023-06-06 深圳忆联信息系统有限公司 Ldpc软译码器软信息存储优化方法、装置、计算机设备及存储介质
CN110743658A (zh) * 2019-10-28 2020-02-04 徐州佳禾农业科技有限公司 一种小麦研磨装置
US20240022262A1 (en) * 2022-07-13 2024-01-18 Apple Inc. Scheduling of iterative decoding depending on soft inputs

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037298A1 (en) 2001-07-11 2003-02-20 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
KR20030095144A (ko) * 2002-06-11 2003-12-18 삼성전자주식회사 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
KR20040036460A (ko) * 2002-10-26 2004-04-30 삼성전자주식회사 Ldpc 복호화 장치 및 그 방법
KR20040056972A (ko) * 2002-12-24 2004-07-01 한국전자통신연구원 계산이 간단한 저밀도 패리티 검사 부호를 위한 메시지 전달 복호기

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044438A (en) * 1997-07-10 2000-03-28 International Business Machiness Corporation Memory controller for controlling memory accesses across networks in distributed shared memory processing systems
US6938196B2 (en) * 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
JP4221168B2 (ja) * 2001-08-08 2009-02-12 富士通マイクロエレクトロニクス株式会社 スキャン・チェーン・リオーダ情報の取得方法
WO2003021440A1 (en) * 2001-09-01 2003-03-13 Bermai, Inc. Decoding architecture for low density parity check codes
US6842872B2 (en) * 2001-10-01 2005-01-11 Mitsubishi Electric Research Laboratories, Inc. Evaluating and optimizing error-correcting codes using projective analysis
US6957375B2 (en) * 2003-02-26 2005-10-18 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
US7231557B2 (en) * 2003-04-02 2007-06-12 Qualcomm Incorporated Methods and apparatus for interleaving in a block-coherent communication system
KR100703271B1 (ko) * 2004-11-23 2007-04-03 삼성전자주식회사 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037298A1 (en) 2001-07-11 2003-02-20 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
KR20030095144A (ko) * 2002-06-11 2003-12-18 삼성전자주식회사 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
KR20040036460A (ko) * 2002-10-26 2004-04-30 삼성전자주식회사 Ldpc 복호화 장치 및 그 방법
KR20040056972A (ko) * 2002-12-24 2004-07-01 한국전자통신연구원 계산이 간단한 저밀도 패리티 검사 부호를 위한 메시지 전달 복호기

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100919779B1 (ko) * 2007-03-06 2009-10-01 재단법인서울대학교산학협력재단 저밀도 패리티 검사 부호를 위한 복호화기 및 복호화 방법
US8448050B2 (en) 2009-09-18 2013-05-21 Kabushiki Kaisha Toshiba Memory system and control method for the same

Also Published As

Publication number Publication date
US7631241B2 (en) 2009-12-08
US20050262420A1 (en) 2005-11-24
KR20050111201A (ko) 2005-11-24

Similar Documents

Publication Publication Date Title
KR100762619B1 (ko) 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법
US11451247B2 (en) Decoding signals by guessing noise
KR101995609B1 (ko) 복수의 패리티 세그먼트를 갖는 코드워드를 디코딩하기 위한 시스템, 방법 및 장치들
KR101795123B1 (ko) 메모리에 특정한 패리티-체크 행렬을 사용한 데이터 엔코더 및 디코더
KR101854954B1 (ko) 치환 소행렬의 합을 사용하는 체크섬
US20070198895A1 (en) Iterative decoding of a frame of data encoded using a block coding algorithm
WO2018142391A1 (en) Device, system and method of implementing product error correction codes for fast encoding and decoding
CN113032178B (zh) 存储器控制器及快闪存储器的存取方法
US9141467B2 (en) Semiconductor memory system including Reed-Solomon low density parity check decoder and read method thereof
WO2018045788A1 (en) Partial sum computation for polar code decoding
KR20060032464A (ko) 효율적인 저밀도 패리티 검사 코드 복호 방법 및 장치
CN103873069A (zh) 具有误纠处理的低密度奇偶校验解码器
TW200841606A (en) Lazy scheduling for LDPC decoding
US10205469B2 (en) Low latency soft decoder architecture for generalized product codes
KR20200099438A (ko) 메모리 컨트롤러
US9116825B2 (en) Memory controller
US8832525B2 (en) Memory controller with low density parity check code decoding capability and relevant memory controlling method
US20200091933A1 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
KR20200122064A (ko) 오류 정정 회로 및 이를 포함하는 메모리 컨트롤러
ES2225647T3 (es) Turbo descodificador con comparacion de codigo de firma para redundancia circular.
KR102058499B1 (ko) 리드-솔로몬 저밀도 패리티 검사 디코더를 포함하는 반도체 메모리 시스템 및 그것의 읽기 방법
CN110113058B (zh) 编译码方法、装置、设备及计算机可读存储介质
RU2743784C1 (ru) Способ кодирования данных на основе LDPC кода
CN112134572B (zh) Ldpc译码方法、ldpc译码器、芯片以及设备
JP7419113B2 (ja) メモリシステム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120830

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130829

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140828

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150828

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160830

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee