KR101539002B1 - 1-비트용 에러 정정 장치 및 그 방법 - Google Patents

1-비트용 에러 정정 장치 및 그 방법 Download PDF

Info

Publication number
KR101539002B1
KR101539002B1 KR1020090000099A KR20090000099A KR101539002B1 KR 101539002 B1 KR101539002 B1 KR 101539002B1 KR 1020090000099 A KR1020090000099 A KR 1020090000099A KR 20090000099 A KR20090000099 A KR 20090000099A KR 101539002 B1 KR101539002 B1 KR 101539002B1
Authority
KR
South Korea
Prior art keywords
variable
error
check
node
nodes
Prior art date
Application number
KR1020090000099A
Other languages
English (en)
Other versions
KR20100080691A (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 KR1020090000099A priority Critical patent/KR101539002B1/ko
Priority to US12/651,586 priority patent/US8413011B2/en
Publication of KR20100080691A publication Critical patent/KR20100080691A/ko
Application granted granted Critical
Publication of KR101539002B1 publication Critical patent/KR101539002B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/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/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping

Abstract

1-비트의 에러를 정정하기 위한 방법 및 장치가 개시된다. 본 발명의 실시예에 따른 1-비트용 에러 정정 방법은, 각 변수 노드에 연결된 체크 노드 중 패리티 조건을 만족시키지 않는 체크 노드의 개수에 기초하여 에러가 발생한 변수 노드를 추정할 수 있고, 추정된 변수 노드에 상응하는 비트의 에러를 용이하게 정정할 수 있다.
ECC, 변수 노드, 체크 노드, 비트 플리핑, 에러 디코딩

Description

1-비트용 에러 정정 장치 및 그 방법{Device and method for 1-bit error correction}
본 발명에 따른 실시예는 반도체 메모리 장치에 관한 것으로서, 보다 구체적으로 ECC를 기반으로 하는 에러 디코딩에서 하나의 비트만이 에러가 발생한 경우에 이를 신속하게 찾아내어 에러를 정정할 수 있도록 하는 1-비트 에러 정정 방법 및 그 장치에 관한 것이다.
반도체 메모리 장치의 메모리 용량이 증가함에 따라 결함 메모리 셀의 에러를 복구할 수 있는 에러 정정 회로를 사용하는 것이 필요하다. 상기 에러 정정 회로는 크게 리던던시 메모리 셀 방식의 에러 정정 회로와 ECC(error correcting code) 방식의 에러 정정 회로로 분류될 수 있다.
리던던시 메모리 셀 방식의 에러 정정 회로를 포함하는 반도체 메모리 장치는 정상 메모리 셀 및 리던던시 메모리 셀을 포함할 수 있다. 이 방식을 사용하는 반도체 메모리 장치는 에러가 존재하는 메모리 셀을 리던던시 메모리 셀로 대체하여 데이터를 기입 또는 독출할 수 있다. 이러한 방식은 DRAM(dynamic random access memory)에서 사용될 수 있다.
ECC 방식의 에러 정정 회로를 포함하는 반도체 메모리 장치는 데이터 비트들 이외에서 패리티 데이터(또는 신드롬 데이터)를 생성하여 저장할 수 있고, 이후 패리티 데이터를 이용하여 에러 발생 여부를 판단하여 발생된 에러를 정정할 수 있다. 상기 ECC 방식의 에러 정정 방법은 ROM 방식의 메모리 장치에 흔히 사용될 수 있으며, 특히 전기적으로 소거 및 프로그램 가능한 메모리 셀들(예컨대, EEPROM)을 포함하는 플래시 메모리 장치에 사용될 수 있다.
하지만, 데이터의 에러가 매우 적은 경우에도 상기 ECC를 이용하여 에러를 정정할 경우에 에러 정정을 위한 연산량이 많아지고 하드웨어의 복잡도가 불필요하게 증가할 수 있다. 특히, 각 셀의 차지 손실(charge loss)이 거의 없어 저항 산포가 쉬프트되지 않고 그 값을 거의 유지하는 경우에는 비트 에러가 발생할 확률이 상당히 낮을 수 있다.
즉, 이러한 경우에는 에러가 발생한 셀이 거의 없거나 또는 1 비트의 에러만이 존재할 뿐이기 때문에, 에러가 발생한 비트가 상당수 존재한다고 가정하고 있는 종래의 ECC 에러 정정 방법을 적용시키는 것은 매우 비효율적이다.
본 발명은 상기의 문제점을 해결하고자 안출된 것으로서, 본 발명에 따른 실시예의 목적은 연산량이 적고 간단한 소프트웨어로서 구현할 수 있는 1-비트용 에러 정정 방법 및 그 장치를 제공하는 것이다.
상기의 과제를 해결하기 위한 1-비트용 에러 정정 방법은 각 변수 노드에 연결된 체크 노드 중 패리티 조건을 만족시키지 않는 체크 노드의 개수를 산출하는 단계; 상기 각 변수 노드에 연결된 체크 노드 중 패리티 조건을 만족시키지 않는 체크 노드의 최대 개수가 기설정된 값을 초과하는지 판단하는 단계; 및 판단 결과 상기 최대 개수가 상기 기설정된 값을 초과하면 상기 최대 개수를 갖는 변수 노드에 상응하는 비트를 에러 디코딩하는 단계를 포함할 수 있다.
상기 에러 디코딩하는 단계는 상기 최대 개수를 갖는 변수 노드에 상응하는 비트를 비트 플리핑(bit flipping)하는 단계일 수 있다.
상기 1-비트용 에러 정정 방법은, 상기 판단 결과, 상기 최대 개수가 상기 기설정된 값을 초과하지 않으면, 패리티 조건을 만족시키지 않는 체크 노드와 연결된 변수 노드 중에서 최초 또는 최후에 존재하는 변수 노드의 위치를 판단하는 단계를 더 포함할 수 있다.
상기 1-비트용 에러 정정 방법은, 상기 패리티 조건을 만족시키지 않는 체크 노드와 연결된 변수 노드 중에서 상기 최초에 존재하는 변수 노드로부터 k개 이후의 변수 노드에서 에러가 발생한 것으로 판단하거나, 상기 패리티 조건을 만족시키지 않는 체크 노드와 연결된 변수 노드 중에서 상기 최후에 존재하는 변수 노드로부터 k개 이전의 변수 노드에서 에러가 발생한 것으로 판단하는 단계를 더 포함하고, 여기서 k는 패리티 체크 매트릭스에서의 메시지 크기일 수 있다.
상기 1-비트용 에러 정정 방법은, 상기 에러가 발생한 것으로 판단된 상기 변수 노드에 상응하는 비트를 에러 디코딩하는 단계를 더 포함할 수 있다.
상기의 과제를 해결하기 위한 1-비트용 에러 정정 장치는, 각 변수 노드에 연결된 체크 노드 중 패리티 조건을 만족시키지 않는 체크 노드의 개수를 산출하기 위한 연산부; 상기 연산부에 의해 산출된 패리티 조건을 만족시키지 않는 체크 노드의 최대 개수가 기설정된 값을 초과하는지를 판단하기 위한 제어부; 및 상기 최대 개수가 기설정된 값을 초과하는 변수 노드에 상응하는 비트에 대해 에러 정정을 수행하기 위한 에러 정정부를 포함할 수 있다.
상기 제어부는, 상기 최대 개수가 상기 기설정된 값을 초과하지 않을 경우 상기 패리티 조건을 만족시키지 않는 체크 노드와 연결된 변수 노드 중에서 최초 또는 최후에 존재하는 변수 노드의 위치를 판단하고, 상기 에러 정정부는 판단된 최초 또는 판단된 최후에 존재하는 변수 노드의 위치에 기초하여 에러 정정을 수행할 수 있다.
상기 에러 정정부는, 상기 패리티 조건을 만족시키지 않는 체크 노드와 연결된 변수 노드 중에서 상기 최초에 존재하는 변수 노드로부터 k개 이후의 변수 노드에 상응하는 비트의 에러를 정정하거나, 상기 패리티 조건을 만족시키지 않는 체크 노드와 연결된 변수 노드 중에서 상기 최후에 존재하는 변수 노드로부터 k개 이전의 변수 노드에 상응하는 비트의 에러를 정정하고, 여기서 k는 패리티 체크 매트릭스에서의 메시지 크기일 수 있다.
상기 에러 정정부는, 에러가 발생한 변수 노드에 상응하는 비트를 비트 플리핑(bit flipping)할 수 있다.
본 발명의 실시예에 따른 에러 정정 방법은, 적은 연산량으로도 1-비트의 에러를 용이하게 정정할 수 있다.
또한, 본 발명의 실시예에 따른 에러 정정 장치는, 복잡도가 낮아서 구현하기가 매우 용이하다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들 을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1a는 본 발명의 실시예에 따른 순회 코드(cyclic code)의 패리티 체크 행렬(H)의 예시도이다. 본 발명의 실시예에 따른 순회 코드는 BCH 코드(Bose-Chaudhuri-Hocquenghem code), RS 코드(Reed-Solomon code), 및 해밍 코드(Hamming code) 등을 포함할 수 있다.
상기 패리티 체크 행렬(parity check matrix, H)은 선형 코드(linear code)의 패리티 체크를 나타내는 행렬로서, 상기 패리티 체크 행렬을 구성하는 각 원소들(hk ∼ h0)은 오류 정정 부호화(ECC, error correction code)의 특성에 기초한 값들일 수 있다.
상기 패리티 체크 행렬(H)과 함께 에러의 발생 및 정정을 수행하기 위한 코드워드 벡터(codeword vector)는, 적어도 하나의 메시지 정보(message information)와 적어도 하나의 패리티 비트(parity bit)를 포함할 수 있다.
또한, 상기 코드워드 벡터를 c라고 할 때, 'H·c T = 0'의 조건을 만족하는 경우에 에러가 발생하지 않은 것으로 판단되고, 상기의 조건을 만족하기 않는 경우에는 에러가 발생한 것으로 판단될 수 있다.
예컨대, 코드워드에 에러가 발생하여 수신된 코드워드(r)는 'r = c + e'로서 표현할 수 있으며, 'H·r T = H·(c + e)T = H·e T ≠ 0'의 식에서 알 수 있는 바와 같이 에러가 발생한 경우에는 체크 노드(check node)의 값이 0이 아닐 수 있다. 여기서 T는 전치(transpose)를 나타낼 수 있다.
또한, 상기 패리티 체크 행렬(H)의 각 행 벡터들(예컨대, {hk, hk -1... h1, h0, 0, ... 0}, {0, hk, hk -1, ... h1, h0, 0, ... 0}, ... {0, ... 0, hk, hk -1, ... h1, h0} 등)은 서로 선형 독립(linearly independent)일 수 있다.
도 1a에 도시된 순회 코드의 패리티 체크 행렬(H)에서, n은 코드워드의 크기를 의미할 수 있고 k는 메시지의 크기를 의미할 수 있다. 또한, 임의의 메시지 벡터와 곱해져서 코드워드 벡터를 생성할 수 있도록 하는 행렬을 제네레이터 행렬(generator matrix)라고 하며, 상기 제네레이터 행렬에 상응하는 다항식을 제네레이터 다항식(예컨대, g(x))이라고 할 수 있다.
상기 제네레이터 다항식(generator polynomial)이 결정되면 다음으로 패리티 체크 다항식(parity-check polynomial)이 결정될 수 있다. 보다 구체적으로, 상기 제네레이터 다항식과 패리티 체크 다항식의 곱이 'xn + 1'이 되는 패리티 체크 다항식이 결정될 수 있으며, 이를 h(x)라고 부를 수 있다.
예컨대, h(x)를 'h0 + h1x + h2x2 + ... + hkxk'로 나타낼 수 있으며 각 차수의 계수가 상기 패리티 체크 행렬을 구성하는 각 행의 요소가 될 수 있다. 여기서 각 차수의 계수들(예컨대, h0, h1, ... hk)은 0 또는 1의 값을 가질 수 있으며, 이때 h(x)의 최고차 항의 계수(예컨대, hk) 및 상수항(예컨대, h0)은 항상 '1'일 수 있다.
도 1a에 도시된 바와 같이, 순회 코드에서의 패리티 체크 행렬은 [hk ∼ h0]의 요소들이 각 행에 1칸씩 쉬프트되어 배열될 수 있고, 나머지의 행렬 요소는 모두 '0'으로 채워질 수 있다.
또한, 순회 부호에서의 패리티 체크 행렬은 조밀 행렬(dense matrix)의 특징을 가지고 있기 때문에, [hk ∼ h0]에서의 0의 개수와 1의 개수는 거의 동일할 수 있다. 또한, 상술한 바와 같이 h0과 hk의 값은 1일 수 있다. 이러한 특징들을 기초하여 ECC에서 1-비트에만 에러가 발생한 경우에 발생된 에러가 용이하게 추정되어 정정될 수 있다.
도 1b는 본 발명의 실시예에 따른 순회 코드에서의 변수 노드(variable node)와 체크 노드(check node)를 설명하기 위한 예시도이다.
도 1a 및 도 1b를 참고하면, 도 1b에 도시된 패리티 체크 행렬은 n=7, k=4이고 [hk ∼ h0] = [1 1 1 0 1]인 경우를 예시한다. 이는 패리티 체크 다항식 'h(x) = x4 + x3 + x2 + 1'로 나타낼 수 있다. 따라서, 7개의 변수 노드들(V0, V1, ... V6) 및 3개의 체크 노드들(C0, C1, 및 C2)이 존재할 수 있다. 상기 체크 노드는 에러가 발생한 변수 노드를 추정하기 위해 이용될 수 있으며, 패리티 체크 행렬(H)이 결정되면 (n-k)개의 체크 노드들이 정의될 수 있다.
예컨대, 도 1b의 예에서 변수 노드 V0에 에러가 발생한 경우에 패리티 조건을 만족시키지 않는 체크 노드는 1개(C0)이다. 유사하게, 변수 노드 V1에 에러가 발생한 경우에 패리티 조건을 만족시키지 않는 체크 노드는 2개(C0 및 C1)이며, 변수 노드 V2에 에러가 발생한 경우에 패리티 조건을 만족시키지 않는 체크 노드는 3개(C0, C1, C2)이다.
도 2는 본 발명의 실시예에 따른 1-비트용 에러 정정 장치(10)의 개략적인 블록도이다.
본 발명의 실시예에 따른 1-비트용 에러 정정 장치(10)는, 연산부(computation unit, 11), 제어부(control unit), 및 에러 정정부(error correction unit)을 포함할 수 있다.
상기 연산부(11)는 각 변수 노드에 연결된 체크 노드 중 패리티 조건을 만족시키지 않는, 즉 0의 값을 갖지 않는 체크 노드의 개수를 산출할 수 있다. 수신된 코드 워드의 에러 성분은 상기 체크 노드의 값을 패리티 조건을 만족시키지 않는 값으로 만들 수 있고, 본 발명의 실시예에 따른 에러 정정 방법은 하나의 비트에만 에러가 발생한 경우를 가정하기 때문에, 상기 연산부(11)의 연산량이 종래의 방법에 비해 상당히 감소될 수 있다.
상기 제어부(12)는 상기 연산부(11)에 의해 산출된 패리티 조건을 만족시키지 않는 체크 노드의 최대 개수가 기설정된 값을 초과하는지를 판단할 수 있다. 즉, 상기 연산부(11)에 의해 각 변수 노드에 연결된 체크 노드 중 패리티 조건을 만족시키지 않는 체크 노드의 개수를 각각 산출할 수 있고, 상기 제어부(12)는 산출된 각 개수 중에서 최대 개수(피크 값)를 산출할 수 있다. 각 변수 노드에 연결된 체크 노드 중 패리티 조건을 만족시키지 않는 체크 노드의 개수 중 피크 값에 기초하여 에러가 발생한 변수 노드의 위치를 추정하는 방법에 대해서는 도 3 내지 도 5에서 상술하기로 한다.
실시예에 따라, 상기 기설정된 값은 코드워드의 크기, 메시지의 크기, 또는 어플리케이션 등에 기초하여 설정될 수 있다.
상기 에러 정정부(13)는, 상기 제어부(12)에 의해 에러가 발생한 것으로 추정된 비트에 대해서 에러 정정을 수행할 수 있다. 예컨대, 상기 에러 정정부(13)는 해당 변수 노드에 상응하는 비트에 대해 비트 플리핑(bit flipping)을 수행할 수 있다. 상기 비트 플리핑(bit flipping)은 비트 정보를 역으로 변경하는 것으로서, 예컨대 '0'을 '1'로, '1'을 '0'으로 변경시키는 것이다. 비트 플리핑에 대한 구체적인 설명은 생략하도록 한다.
도 3은 본 발명의 실시예에 따른 패리티 체크 행렬에서 에러 발생 가능 구간을 설명하기 위한 개략도이다.
도 1 내지 도 3을 참조하면, 도 3에 도시된 바와 같이, 본 발명의 실시예에 따른 패리티 체크 행렬에서의 에러 발생 구간은 A, B, 및 C의 세 구간으로 분류할 수 있다. B 구간은 [hk ∼ h0]의 요소들로만 구성된 영역이며, A 및 C 구간 각각은 일부만이 [hk ∼ h0]의 요소로 구성된 영역이다.
먼저, B 구간에서 1-비트 에러가 발생한 경우에 대해 기술하기로 한다. 상기한 바와 같이, 순회 코드에서의 패리티 체크 행렬은 조밀 행렬의 특징을 갖기 때문에, [hk ∼ h0]에서 0의 개수와 1의 개수가 거의 동일할 수 있다. 따라서, B 구간 내의 임의의 비트에서 에러가 발생한 경우 에러가 발생한 변수 노드에 연결된 체크 노드의 개수는 약 (n-k)/2 개일 수 있다. 이 중에서 해당 변수 노드에 연결되고 패리티 조건을 만족시키지 않는 체크 노드의 개수 역시 약 (n-k)/2 개일 수 있다.
또한, 에러가 발생하지 않은 변수 노드에 상응하는 열에는 0과 1이 위치할 확률이 각각 ½씩 존재하기 때문에, 에러가 발생한 변수 노드 이외의 변수 노드에 연결되고 패리티 조건을 만족시키지 않는 체크 노드의 개수는 약 (n-k)/4(=(n-k)/2 ×½) 개일 수 있다. 따라서, B 구간에서 에러가 발생한 경우에, 에러가 발생한 변 수 노드와 연결되고 패리티 조건을 만족시키지 않는 체크 노드의 개수가 피크 값을 가질 수 있다.
이때, 상기 제어부(12)는 상기 피크 값이 기설정된 값을 초과하는지를 판단하고, 상기 에러 정정부(13)는 상기 피크 값이 기설정된 값을 초과할 경우에 해당 변수 노드에 상응하는 비트의 에러를 정정할 수 있다. 예컨대, 에러 정정 방법은 비트 플리핑(bit flippling)일 수 있다.
상기 기설정된 값(예컨대, δ)은 실시예에 따라 상이할 수 있다. 예컨대, 피크 값을 갖는 체크 노드의 개수(예컨대, 약 (n-k)/2)를 피크 값을 갖지 않는 체크 노드의 개수(예컨대, 약 (n-k)/4)와 판별하기 위해서, 상기 기설정된 값의 크기는 '(n-k)/4 < δ < (n-k)/2'의 범위를 가질 수 있다.
도 4a 및 도 4b는 구간 A와 C에서 에러가 발생하였을 경우에 에러가 발생한 변수 노드의 위치를 추정하기 위한 개략도이다.
패리티 조건을 만족시키지 않는 체크 노드의 최대 개수가 상기 기설정된 값(예컨대, δ)을 초과하지 않는 경우에는, 1-비트 에러가 A 구간 또는 C 구간에서 발생한 것으로 추정할 수 있다.
도 4a는 1-비트 에러가 A 구간에서 발생한 경우에 에러가 발생한 변수 노드를 추정하는 방법을 설명하기 위한 도면이고, 도 4b는 1-비트 에러가 C 구간에서 발생한 경우에 에러가 발생한 변수 노드를 추정하는 방법을 설명하기 위한 도면이다.
도 1 내지 도 4a를 참고하여, A 구간에서 1-비트 에러가 발생한 경우에서의 에러 정정 방법을 상술하기로 한다. 도 4a에 도시된 바와 같이, i번째 변수 노드(Vi)에서 에러가 발생한 경우에, 상기 제어부(12)는 패리티 조건을 만족하지 않는 체크 노드(Ci)와 연결된 변수 노드 중에서 최후에 존재하는 변수 노드(Vi +k)의 인덱스(index)를 추출할 수 있고, 추출된 변수 노드로부터 k개 이전에 위치한 변수 노드에서 에러가 발생한 것으로 추정할 수 있다.
보다 구체적으로, 패리티 조건을 만족하지 않는 체크 노드와 연결된 변수 노드 중에서 최후에 존재하는 변수 노드의 위치가 k보다 크고 a(δ에 의해 결정)보다 작으면 A 구간에서 1-비트 에러가 발생한 것으로 추정할 수 있고, 따라서 상술한 에러 정정 동작이 수행될 수 있다.
이러한 방법은 본 발명의 실시예에 따른 패리티 체크 행렬에서 반복적으로 배열되는 [hk ∼ h0]에서, h0과 hk가 항상 '1'의 값을 갖는 특징을 이용한 것이다.
또한, 도 1 내지 도 4b를 참고하여, C 구간에서 1-비트 에러가 발생한 경우에서의 에러 정정 방법을 상술하기로 한다. 도 4b에 도시된 바와 같이, j번째 변수 노드(Vj)에서 에러가 발생한 경우에, 상기 제어부(12)는 패리티 조건을 만족하지 않는 체크 노드(Cj)와 연결된 변수 노드 중에서 최초에 존재하는 변수 노드(Vj -k)의 인덱스를 추출할 수 있고, 추출된 변수 노드로부터 k개 이후에 위치한 변수 노드에서 에러가 발생한 것으로 추정할 수 있다.
보다 구체적으로, 패리티 조건을 만족하지 않는 체크 노드와 연결된 변수 노 드 중에서 최초에 존재하는 변수 노드의 위치가 b(δ에 의해 결정)보다 크고 (n-k)보다 작은면 C 구간에서 1-비트 에러가 발생한 것으로 추정할 수 있고, 따라서 상술한 에러 정정 동작이 수행될 수 있다.
이러한 방법 역시 본 발명의 실시예에 다른 패리티 체크 행렬에서 반복적으로 배열되는 [hk ∼ h0]에서, h0과 hk가 항상 '1'의 값을 갖는 특징을 이용한 것이다.
상기한 바와 같이, 상기 a, b의 크기는 δ의 값에 의해 결정될 수 있고, 따라서 코드워드의 크기, 메시지의 크기, 또는 어플리케이션 등에 기초하여 가변될 수 있다.
도 5는 본 발명의 실시예에 따라 각 변수 노드별 패리티 조건을 만족시키지 않는 체크 노드의 개수를 시뮬레이션을 통해 나타낸 그래프이다.
도 5는 n=255, k=155, δ=41, t=13인 경우를 예시한다. 여기서 t는 ECC 디코더의 에러 정정 능력(error correction capability)을 의미할 수 있다. 도 5에 도시된 바와 같이, 변수 노드에 연결되고 패리티 조건을 만족시키지 않는 체크 노드의 최대 개수가 기설정된 값(δ)을 초과하는 경우(예컨대, V120 및 V150)에는 B 구간에서 1-비트 에러가 발생한 것으로 추정될 수 있으며, 따라서 해당 변수 노드에 상응하는 비트에 대해 에러 정정 동작이 수행될 수 있다.
상기한 바와 같이, 변수 노드에 연결되고 패리티 조건을 만족시키지 않는 체크 노드의 최대 개수가 기설정된 값(δ)을 초과하지 않는 경우(예컨대, V50 및 V200) 에는 도 4a 및 도 4b에서 상술한 에러 정정 방법이 적용될 수 있다.
도 6은 본 발명의 실시예에 따른 1-비트용 에러 정정 방법을 설명하기 위한 순서도이다.
도 2 내지 도 6을 참조하면, 상기 연산부(11)는 각 변수 노드에 연결된 패리티 조건을 만족시키지 않는 체크 노드의 개수를 산출할 수 있다(S610). 각 변수 노드별 체크 노드의 개수가 산출되면, 상기 제어부(12)는 그 최대 개수가 기설정된 값을 초과하는지 판단할 수 있다(S620).
판단 결과, 최대 개수가 기설정된 값을 초과하는 경우에 B 구간에서 에러가 발생한 것으로 추정할 수 있으며, 따라서 상기 에러 정정부(13)는 해당 변수 노드에 상응하는 비트를 에러 디코딩할 수 있다(S630).
판단 결과, 최대 개수가 기설정된 값을 초과하지 않는 경우에 A 또는 C 구간에서 에러가 발생한 것으로 추정할 수 있으며, 따라서 상기 제어부(12)는 패리티 조건을 만족시키지 않는 체크 노드와 연결된 노드 변수 중에서 최초 또는 최후에 존재하는 변수 노드의 인덱스를 산출할 수 있다(S640). 그리고, 상기 에러 정정부(13)는 산출된 변수 노드의 인덱스에서 k번째 이전 또는 k번째 이후의 변수 노드에 상응하는 비트를 에러 디코딩할 수 있다(S650).
도 7은 본 발명의 실시예에 따른 메모리 시스템(1)의 개략적인 블록도이다.
도 7을 참조하면, 본 발명의 실시예에 따른 데이터 메모리 시스템(1)은 시스템 버스(system bus, 110)에 접속된 메모리 장치(100)와 프로세서(processor, 120)를 포함할 수 있다.
상기 메모리 장치(100)는 본 발명의 실시예에 따른 1-비트용 에러 정정 장치를 포함하거나 또는 1-비트용 에러 정정 방법을 이용하여 비트 에러를 정정할 수 있다.
상기 프로세서(120)는 상기 메모리 장치(100)의 프로그램 동작(또는 기입 동작), 독출 동작, 또는 검증 동작을 제어하기 위한 제어 신호들을 생성할 수 있다. 따라서, 상기 메모리 장치(100)의 제어 블록(미도시)은 상기 프로세서(120)로부터 출력된 제어 신호에 응답하여 프로그램 동작(또는 기입 동작), 독출 동작, 또는 검증 동작 등을 수행할 수 있다.
본 발명의 실시예에 따른 1-비트 에러 정정 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), PRAM, RRAM, FRAM, 플래시(Flash) 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명에 따른 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
실시예에 따라, 본 발명의 실시예에 따른 데이터 메모리 시스템(1)이 휴대용 어플리케이션(portalble application)으로 구현되는 경우에, 본 발명의 실시예에 따른 데이터 메모리 시스템(1)은 상기 메모리 장치(100)와 상기 프로세서(120)로 동작 전원을 공급하기 위한 배터리(battery, 150)를 더 포함할 수 있다.
상기 휴대용 어플리케이션은, 휴대용 컴퓨터(portable computer), 디지털 카메라(digital camera), PDA(personal digital assistance), 휴대 전화기(cellular telephone), MP3 플레이어, PMP(portable multimedia player), 차량자동항법장치(automotive navigation system), 메모리 카드(memory card), 시스템 카드(system card), 게임기, 전자 사전, 또는 솔리드 스테이트 디스크(solid state disk)를 포함할 수 있다.
본 발명의 실시예에 따른 데이터 메모리 시스템(1)은 외부의 데이터 처리 장치와 데이터를 주고 받을 수 있도록 하는 인터페이스, 예컨대 입/출력 장치(130)를 더 포함할 수 있다.
본 발명의 실시예에 따른 데이터 메모리 시스템(1)이 무선 시스템인 경우, 본 발명의 실시예에 따른 데이터 메모리 시스템(1)은 무선 인터페이스(140)를 더 포함할 수 있다. 이 경우 무선 인터페이스(140)는 프로세서(120)에 접속되고 시스템 버스(110)를 통하여 무선으로 외부 무선 장치와 데이터를 송수신할 수 있다.
상기 무선 시스템은 PDA, 휴대용 컴퓨터, 무선 전화기, 페이저(pager), 디지털 카메라와 같은 무선 장치, RFID 리더, 또는 RFID 시스템일 수 있다. 또한, 상기 무선 시스템은 WLAN(Wireless Local Area Network) 시스템 또는 WPAN(Wireless Personal Area Network) 시스템일 수 있다. 또한, 상기 무선 시스템은 이동 전화 네트워크(Cellular Network)일 수 있다.
본 발명의 실시예에 따른 데이터 메모리 시스템(1)이 이미지 촬상 장치(image pick-up device)인 경우, 본 발명의 실시예에 따른 데이터 메모리 시스템(1)은 광학 신호를 전기 신호로 변환할 수 있는 이미지 센서(image sensor, 160)를 더 포함할 수 있다. 상기 이미지 센서(160)는 전자 결합 소자(CCD; charge-coupled device)를 이용한 이미지 센서일 수 있고, 또는 CMOS(complementary metal-oxide semiconductor) 이미지 센서일 수 있다. 이 경우 본 발명의 실시예에 따른 데이터 메모리 시스템(1)은 디지털 카메라 또는 디지털 카메라가 부착된 이동 전화기일 수 있다. 또한, 본 발명의 실시예에 따른 데이터 메모리 시스템(1)은 카메라가 부착된 인공 위성 시스템(satellite system)일 수 있다.
본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 것을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 제공되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1a는 본 발명의 실시예에 따른 순회 코드의 패리티 체크 행렬의 예시도.
도 1b는 본 발명의 실시예에 따른 순회 코드에서의 변수 노드와 체크 노드를 설명하기 위한 예시도.
도 2는 본 발명의 실시예에 따른 1-비트용 에러 정정 장치의 개략적인 블록도.
도 3은 본 발명의 실시예에 따른 패리티 체크 행렬에서 에러 발생 가능 구간을 설명하기 위한 개략도.
도 4a 및 도 4b는 구간 A와 C에서 에러가 발생하였을 경우에 에러가 발생한 변수 노드의 위치를 추정하기 위한 개략도.
도 5는 본 발명의 실시예에 따라 각 변수 노드별 패리티 조건을 만족시키지 않는 체크 노드의 개수를 나타낸 그래프.
도 6은 본 발명의 실시예에 따른 1-비트용 에러 정정 방법을 설명하기 위한 순서도.
도 7은 본 발명의 실시예에 따른 메모리 시스템의 개략적인 블록도.

Claims (9)

  1. 각 변수 노드에 연결된 체크 노드 중에서 패리티 조건을 만족시키지 않는 체크 노드의 개수를 산출하는 단계;
    상기 각 변수 노드에 연결된 체크 노드 중에서 패리티 조건을 만족시키지 않는 체크 노드의 최대 개수가 기설정된 값을 초과하는지 판단하는 단계;
    판단 결과, 상기 최대 개수가 상기 기설정된 값을 초과하면 상기 최대 개수를 갖는 변수 노드에 상응하는 비트를 에러 디코딩하는 단계;
    상기 판단 결과, 상기 체크 노드의 최대 개수가 상기 기설정된 값을 초과하지 않으면, 상기 패리티 조건을 만족시키지 않는 체크 노드와 연결된 변수 노드 중에서 최초 또는 최후에 존재하는 변수 노드의 위치를 판단하는 단계; 및
    상기 패리티 조건을 만족시키지 않는 체크 노드와 연결된 변수 노드 중에서 상기 최초에 존재하는 변수 노드로부터 k개 이후의 변수 노드에서 에러가 발생한 것으로 추정하거나 상기 패리티 조건을 만족시키지 않는 체크 노드와 연결된 변수 노드 중에서 상기 최후에 존재하는 변수 노드로부터 k개 이전의 변수 노드에서 에러가 발생한 것으로 추정하는 단계를 포함하고,
    여기서 k는 패리티 체크 행렬에서의 메시지 크기인 1-비트용 에러 정정 방법.
  2. 제1항에 있어서, 상기 최대 개수를 갖는 변수 노드에 상응하는 비트를 에러 디코딩하는 단계는,
    상기 최대 개수를 갖는 변수 노드에 상응하는 비트를 비트 플리핑(bit flipping)하는 단계인 1-비트용 에러 정정 방법.
  3. 제1항에 있어서, 상기 1-비트 에러 정정 방법은,
    에러가 발생한 것으로 추정된 변수 노드에 상응하는 비트를 에러 디코딩하는 단계를 더 포함하는 1-비트용 에러 정정 방법.
  4. 각 변수 노드에 연결된 체크 노드 중에서 패리티 조건을 만족시키지 않는 체크 노드의 개수를 산출하기 위한 연산부;
    상기 연산부에 의해 산출된 패리티 조건을 만족시키지 않는 체크 노드의 최대 개수가 기설정된 값을 초과하는지를 판단하기 위한 제어부; 및
    상기 패리티 조건을 만족시키지 않는 체크 노드의 최대 개수가 기설정된 값을 초과하는 변수 노드에 상응하는 비트에 대해 에러 정정을 수행하기 위한 에러 정정부를 포함하고,
    상기 제어부는, 상기 최대 개수가 상기 기설정된 값을 초과하지 않을 경우 상기 패리티 조건을 만족시키지 않는 체크 노드와 연결된 변수 노드 중에서 최초 또는 최후에 존재하는 변수 노드의 위치를 판단하고,
    상기 에러 정정부는 판단된 최초 또는 판단된 최후에 존재하는 변수 노드의 위치에 기초하여 에러 정정을 수행하고,
    상기 에러 정정부는 상기 패리티 조건을 만족시키지 않는 체크 노드와 연결된 변수 노드 중에서 상기 최초에 존재하는 변수 노드로부터 k개 이후의 변수 노드에 상응하는 비트의 에러를 정정하거나, 상기 패리티 조건을 만족시키지 않는 체크 노드와 연결된 변수 노드 중에서 상기 최후에 존재하는 변수 노드로부터 k개 이전의 변수 노드에 상응하는 비트의 에러를 정정하고,
    여기서 k는 패리티 체크 매트릭스에서의 메시지 크기인 1-비트용 에러 정정 장치.
  5. 제4항에 있어서, 상기 에러 정정부는,
    에러가 발생한 변수 노드에 상응하는 비트를 비트 플리핑(bit flipping)하는 1-비트용 에러 정정 장치.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
KR1020090000099A 2009-01-02 2009-01-02 1-비트용 에러 정정 장치 및 그 방법 KR101539002B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090000099A KR101539002B1 (ko) 2009-01-02 2009-01-02 1-비트용 에러 정정 장치 및 그 방법
US12/651,586 US8413011B2 (en) 2009-01-02 2010-01-04 Device and method providing 1-bit error correction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090000099A KR101539002B1 (ko) 2009-01-02 2009-01-02 1-비트용 에러 정정 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20100080691A KR20100080691A (ko) 2010-07-12
KR101539002B1 true KR101539002B1 (ko) 2015-07-24

Family

ID=42312498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090000099A KR101539002B1 (ko) 2009-01-02 2009-01-02 1-비트용 에러 정정 장치 및 그 방법

Country Status (2)

Country Link
US (1) US8413011B2 (ko)
KR (1) KR101539002B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161366B2 (en) * 2007-12-03 2012-04-17 International Business Machines Corporation Finite state machine error recovery
KR102068030B1 (ko) * 2012-12-11 2020-01-20 삼성전자 주식회사 메모리 컨트롤러 및 그 동작방법
KR102050896B1 (ko) 2013-02-19 2019-12-02 삼성전자주식회사 메모리 컨트롤러 및 그것의 동작 방법
KR102475805B1 (ko) * 2018-08-20 2022-12-09 에스케이하이닉스 주식회사 디코더, 그것의 동작 방법 및 메모리 시스템
KR102598093B1 (ko) 2022-01-04 2023-11-06 숭실대학교 산학협력단 비트 플리핑 장치, 방법 및 이를 위한 컴퓨터 판독가능 프로그램

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990060758A (ko) * 1997-12-31 1999-07-26 윤종용 반도체 메모리 장치 및 그 장치의 에러 정정 방법
KR100694407B1 (ko) * 2005-04-21 2007-03-12 주식회사 하이닉스반도체 불량 셀 교정 회로를 포함하는 불휘발성 강유전체 메모리장치
US20080052594A1 (en) * 2006-07-28 2008-02-28 Yedidia Jonathan S Method and system for replica group-shuffled iterative decoding of quasi-cyclic low-density parity check codes
KR100852191B1 (ko) * 2007-02-16 2008-08-13 삼성전자주식회사 에러 정정 기능을 가지는 반도체 메모리 장치 및 에러 정정방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7441178B2 (en) * 2005-02-24 2008-10-21 Keyeye Communications Low complexity decoding of low density parity check codes
US7398453B2 (en) * 2005-10-03 2008-07-08 Motorola, Inc. Method and apparatus for a low-density parity-check decoder
KR20070084951A (ko) * 2006-02-22 2007-08-27 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
JP2008167357A (ja) 2007-01-04 2008-07-17 Kddi Corp 低密度パリティ検査符号データを復号する復号方法、装置及びプログラム
EP2181504A4 (en) * 2008-08-15 2010-07-28 Lsi Corp DECODING LIST OF CODED WORDS CLOSE IN A ROM MEMORY
US8352827B2 (en) * 2009-06-25 2013-01-08 Nec Laboratories America, Inc. LDPC hard decision decoder for high-speed wireless data communications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990060758A (ko) * 1997-12-31 1999-07-26 윤종용 반도체 메모리 장치 및 그 장치의 에러 정정 방법
KR100694407B1 (ko) * 2005-04-21 2007-03-12 주식회사 하이닉스반도체 불량 셀 교정 회로를 포함하는 불휘발성 강유전체 메모리장치
US20080052594A1 (en) * 2006-07-28 2008-02-28 Yedidia Jonathan S Method and system for replica group-shuffled iterative decoding of quasi-cyclic low-density parity check codes
KR100852191B1 (ko) * 2007-02-16 2008-08-13 삼성전자주식회사 에러 정정 기능을 가지는 반도체 메모리 장치 및 에러 정정방법

Also Published As

Publication number Publication date
US20100174966A1 (en) 2010-07-08
US8413011B2 (en) 2013-04-02
KR20100080691A (ko) 2010-07-12

Similar Documents

Publication Publication Date Title
US8046660B2 (en) System and method for correcting errors in non-volatile memory using product codes
US9298546B2 (en) Semiconductor memory device
CN103888148B (zh) 一种动态阈值比特翻转的ldpc码硬判决译码方法
US9136871B2 (en) High-performance ECC decoder
EP2907033B1 (en) Method and apparatus for error correction using ldpc codes
KR101529880B1 (ko) 에러 추정 방법 및 정정 방법
KR101892319B1 (ko) 저-밀도 패리티 체크 코드를 사용하는 인코딩 및 디코딩 기술
KR101539002B1 (ko) 1-비트용 에러 정정 장치 및 그 방법
US8804421B2 (en) Center read reference voltage determination based on estimated probability density function
US10790855B2 (en) Method and device for error correction coding based on high-rate Generalized Concatenated Codes
US8671325B1 (en) Forward error correcting code decoder method and apparatus
US20120233518A1 (en) Data Processing Systems And Methods Providing Error Correction
US8583982B2 (en) Concatenated decoder and concatenated decoding method
US10498364B2 (en) Error correction circuits and memory controllers including the same
US9698830B2 (en) Single-bit first error correction
US20180198468A1 (en) Error correction code (ecc) decoders sharing logic operations, memory controllers including the error correction code decoders, and methods of decoding error correction codes
US10700708B2 (en) Permutation network designing method, and permutation circuit of QC-LDPC decoder
US6954892B2 (en) Method for calculating syndrome polynomial in decoding error correction codes
KR20140074600A (ko) 비씨에이치 디코더, 이를 포함하는 메모리 시스템 및 디코딩 방법
US20230387942A1 (en) Memory system and method of controlling nonvolatile memory
CN114513213A (zh) 一种基于非对称量子循环突发错误码的错误捕获电路及译码方法
CN112350738A (zh) 基于比特翻转算法加速软译码的联合译码方法及系统

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: 20180629

Year of fee payment: 4