KR100833600B1 - 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치 - Google Patents

에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치 Download PDF

Info

Publication number
KR100833600B1
KR100833600B1 KR1020060080854A KR20060080854A KR100833600B1 KR 100833600 B1 KR100833600 B1 KR 100833600B1 KR 1020060080854 A KR1020060080854 A KR 1020060080854A KR 20060080854 A KR20060080854 A KR 20060080854A KR 100833600 B1 KR100833600 B1 KR 100833600B1
Authority
KR
South Korea
Prior art keywords
error
data
type
calculating
error position
Prior art date
Application number
KR1020060080854A
Other languages
English (en)
Other versions
KR20080018560A (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 KR1020060080854A priority Critical patent/KR100833600B1/ko
Priority to US11/776,727 priority patent/US8069389B2/en
Priority to DE102007038114A priority patent/DE102007038114A1/de
Priority to CN2007101397390A priority patent/CN101131876B/zh
Priority to JP2007220270A priority patent/JP5043562B2/ja
Publication of KR20080018560A publication Critical patent/KR20080018560A/ko
Application granted granted Critical
Publication of KR100833600B1 publication Critical patent/KR100833600B1/ko
Priority to US13/239,534 priority patent/US20120072810A1/en

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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
    • 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
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/104Embedded memory devices, e.g. memories with a processing device on the same die or ASIC memory designs

Abstract

에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체 메모리 장치가 개시된다. 본 발명의 에러 정정 회로는 부분 신드롬 생성기, 제1 및 제2 에러 위치 검출기, 계수 산출기 및 판단부를 구비한다. 부분 신드롬 생성기는 부호 데이터를 이용하여 둘 이상의 부분 신드롬들(partial syndroms)을 산출하고, 상기 제1 에러 위치 검출기는 상기 부분 신드롬들 중 일부만을 이용하여 제1 오류 위치를 산출하며, 상기 계수 산출기는, 상기 둘 이상의 부분 신드롬들을 이용하여 오류 위치 방정식의 계수들을 산출한다. 상기 판단부는 상기 산출된 계수들에 기초하여, 오류 유형을 판단한다. 그리고, 제2 에러 위치 검출기는, 상기 오류 유형에 기초하여, 선택적으로 제2 오류 위치를 산출한다. 본 발명의 반도체 장치는 상기 에러 정정 회로 외에 상기 부호 데이터를 발생하는 정보 데이터에 기초하여 신드롬 데이터를 발생하고 상기 정보 데이터에 상기 신드롬 데이터를 추가하여 부호 데이터를 생성하는 ECC 인코더, 상기 부호 데이터를 ECC 인코더 및 상기 부호 데이터를 저장하는 메모리 코아를 더 구비한다. 본 발명에 의하면 멀티비트 ECC 성능을 그대로 유지하면서 소정 비트수 이하의 에러(예컨대, 1비트 에러 혹은 2비트 에러)에 대한 ECC는 빠른 시간에 처리할 수 있다.

Description

에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체 메모리 장치{Error correction circuit, method there-of and semiconductor memory device including the circuit}
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 통상의 ECC 회로를 구비하는 메모리 장치의 개략적인 구성 블록도이다.
도 2는 종래 기술에 따른 에러 정정 과정을 개략적으로 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 반도체 메모리 장치의 구성 블록도이다.
도 4는 도 3에 도시된 ECC 인코더의 일 구현예를 나타내는 블록도이다.
도 5는 본 발명의 일 실시예에 따른 에러 정정 방법을 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 에러 정정 과정을 개략적으로 나타내는 도면이다.
본 발명은 반도체 메모리 장치에 관한 것으로, 보다 상세하게는 에러 정정 회로(ECC: Error Check/Correction Circuit), 에러 정정 방법 및 상기 에러 정정 회로를 구비하는 반도체 메모리 장치에 관한 것이다.
반도체 메모리 장치의 메모리 용량의 증가에 따라, 결함 메모리 셀의 에러를 복구할 수 있는 에러 정정 회로를 사용하는 것이 필요하다. 통상의 에러 정정 회로는 크게 리던던시 메모리셀 방식의 에러 정정 회로와 ECC 방식의 에러 정정 회로로 나뉠 수 있다.
리던던시 메모리셀 방식의 에러 정정 회로를 갖는 반도체 메모리 장치는 노말(정상) 메모리 셀 및 리던던시(예비) 메모리 셀을 갖는다. 이 방식을 사용하는 반도체 메모리 장치는 결함(에러)이 존재하는 메모리셀을 리던던시 메모리셀로 대체하여 데이터를 기입/독출한다. 이 방식은 DRAM(Dynamic Random Access Memory)에 흔히 사용된다.
한편, ECC 방식 에러 정정 회로를 갖는 반도체 메모리 장치는 데이터 비트들 외에 리던던시 데이터(패리티 데이터 혹은 신드롬 데이터라 함)를 생성하여 저장하고, 추후 패리티 비트들을 이용하여 에러 발생 여부를 판단하여 에러를 정정한다.
ECC 방식 에러 정정 회로는 읽기 전용 메모리(ROM) 방식 반도체 메모리 장치에 흔히 사용된다. 특히, 전기적으로 소거 및 프로그램이 가능한 메모리셀들(EEPROM cells)을 가지는 플래시 메모리 장치에 많이 사용된다.
도 1은 통상의 ECC 회로를 구비하는 메모리 장치의 개략적인 구성 블록도이다.
도 1을 참조하면, 반도체 메모리 장치(100)는 메모리 코아(110), ECC 회로(120), 호스트 인터페이스 및 로직부(130)를 구비한다.
메모리 코아(110)는 데이터를 저장하기 위한 메모리셀 어레이를 구비하는 블록이다.
ECC 회로(120)는 ECC 인코더(121), ECC 디코더(123)를 구비한다.
호스트 인터페이스 및 로직부(130)는 호스트(200, 예컨대, 모바일 기기의 컨트롤러)와 메모리 코아 간(110)의 데이터 인터페이스를 수행한다. 호스트 인터페이스 및 로직부(130)는 호스트(200)와 d(2이상의 정수) 비트의 병렬 데이터를 송수신할 수 있다.
ECC 인코더(121)는 호스트 인터페이스 및 로직부(130)를 통하여 k비트 데이터를 수신하고, 수신된 k비트 데이터를 이용하여 (n-k) 비트로 구성되는 신드롬 데이터(syndrome data)를 생성하여 k비트 데이터에 추가한다. 따라서, k비트 수신 데이터 및 (n-k)비트 신드롬 데이터로 구성되는 n 비트 부호 데이터(ECC 워드라 칭하기도 함)가 메모리 코아(110)로 입력된다.
메모리 코아(110)에 저장된 데이터를 외부로 출력하는 경우에는, 먼저, 메모리 코아(110)로부터, k 비트 데이터 및 (n-k) 비트 신드롬 데이터를 포함하는 ECC 워드가 독출된다. ECC 디코더(123)는 ECC 워드를 소정 패턴 데이터로 나누어 신드롬 데이터를 발생하고, 신드롬 데이터를 이용하여 에러 발생 여부를 판단한다.
ECC 디코더(123)는 에러가 발생된 경우에는 오류 위치(에러가 발생한 비트의 위치)를 검출하여, 에러 비트를 정정할 수 있도록 한다. 에러 비트의 정정은 메모리 반도체 장치 내부, 예를 들어, 호스트 인터페이스 및 로직부(130)의 에러 정정 기(미도시)에서 이루어질 수도 있고, 호스트(200)에서 이루어질 수도 있다.
도 2는 종래 기술에 따른 에러 정정 과정을 개략적으로 나타내는 도면이다.
도 2를 참조하면, 에러 정정은 데이터 독출 및 신드롬 계산 과정(T0~T1), 계수 산출 과정(T1~T2) 및 오류 위치 계산 과정(T2~T3)을 필요로 한다.
데이터 독출 및 신드롬 계산 과정은 메모리셀 어레이로부터 ECC 워드(정보 데이터 및 신드롬 데이터)를 독출하여 부분 신드롬들(partial syndromes, S0, S1, S2, ... S2n -1)을 계산하는 과정으로서, 소정의 독출 시간(Tt)을 필요로 한다. 다음으로 계수 산출과정은 오류 위치 방정식을 구성하기 위한 계수들(coefficients, σ012, ... σn)를 산출하는 과정으로서, 소정의 계수 산출 시간(Tcoeff)을 필요로 한다. 오류 위치 계산 과정은 오류 위치 방정식을 풀어 오류 위치 방정식의 해를 구함으로써 오류 위치를 찾아내는 과정이다. 이 과정 역시 소정의 오류 위치 계산 시간(Tcse)을 필요로 한다.
따라서, 에러 정정 싸이클(ECC cycle)은 상기 시간들을 모두 합한 시간(Tt+Tcoeff+Tcse)으로서, 에러 비트수에 상관없이 거의 일정하다.
좀 더 구체적으로 설명하면, 종래 기술에 따른 둘 이상의 멀티 비트 에러를 정정할 수 있는 ECC 회로(멀티 비트 ECC 회로)는 정정 가능한 최대 에러 비트수에 의해 ECC 디코더 회로가 정해지고, 1 비트의 에러가 발생하든 2 비트 이상의 에러가 발생하든 거의 동일한 에러 정정 싸이클을 필요로 한다.
에러 정정 싸이클은 호스트가 반도체 메모리 장치(예컨대, 플래시 메모리 장치)로부터 데이터를 읽어오는 시간인 데이터 억세스 시간에 큰 영향을 미친다. 따라서, 에러 정정 싸이클이 증가하면 데이터 억세스 시간이 길어짐에 따라 메모리 장치의 독출 성능(read performance)가 저하된다.
특히, 메모리 장치의 오류 유형이 1 비트 에러가 대부분일 때에는 기존의 멀티 비트 ECC 엔진으로는 메모리 장치의 독출 성능이 상당히 저하되는 문제가 발생할 수 있다.
따라서, 본 발명의 기술적 과제는 멀티 비트 에러 정정이 가능하면서 오류 비트수에 따라 에러 위치 검출 및 정정에 소요되는 시간을 다르게 함으로써, 반도체 메모리 장치의 데이터 독출 시간 및 성능을 개선할 수 있는 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체 메모리 장치를 제공하는 것이다.
상기와 같은 목적을 달성하기 위한 본 발명의 바람직한 일 측면에 따른 에러 정정 회로는 병렬적으로 동작 가능하며, 오류 위치를 산출하는 시간이 서로 다른 적어도 두 개의 에러 위치 검출기들, 오류 유형을 판단하는 판단부; 및 상기 에러 위치 검출기들 중 적어도 하나에 의해 산출된 오류 위치 및 상기 오류 유형에 기초하여 최종 오류 위치를 결정하는 메인 제어부를 구비한다.
본 발명의 에러 정정 회로는 부분 신드롬 생성기, 및 계수 산출기를 더 구비할 수 있다. 상기 에러 위치 검출기들은 제1 및 제2 에러 위치 검출기를 구비할 수 있다.
상기 부분 신드롬 생성기는 에러 정정 코딩된 부호 데이터를 이용하여 둘 이상의 부분 신드롬들(partial syndroms)을 산출한다. 상기 제1 에러 위치 검출기는 상기 부분 신드롬들 중 일부만을 이용하여 제1 오류 위치를 산출한다. 상기 계수 산출기는, 상기 둘 이상의 부분 신드롬들을 이용하여 오류 위치 방정식의 계수들을 산출하고, 상기 판단부는 상기 산출된 계수들에 기초하여, 오류 유형을 판단한다. 그리고, 제2 에러 위치 검출기는, 상기 오류 유형에 기초하여, 선택적으로 제2 오류 위치를 산출한다.
상기 오류 유형은 제1 오류 유형과 제2 오류 유형으로 구분될 수 있다.
본 발명의 일 실시예에서, 상기 제1 에러 위치 검출기는 상기 부분 신드롬들 중 하나의 부분 신드롬만을 이용하여 상기 부호 데이터 중 1 비트 오류 위치를 산출하며, 상기 제2 에러 위치 검출기는 상기 오류 유형이 상기 제2 오류 유형인 경우, 상기 부호 데이터 중 2 비트 이상의 오류 위치들을 산출할 수 있다.
본 발명의 다른 일 실시예에서, 상기 제1 에러 위치 검출기는 상기 부호 데이터 중 2 비트 이하의 오류 위치를 산출하며, 상기 제2 에러 위치 검출기는 상기 오류 유형이 상기 제2 오류 유형인 경우, 상기 부호 데이터 중 3 비트 이상의 오류 위치들을 산출할 수 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 바람직한 일 측면에 따른 반도체 메모리 장치는 상기 에러 정정 회로를 구비하고, 또한, 정보 데이터에 기초하여 신드롬 데이터를 발생하고 상기 정보 데이터에 상기 신드롬 데이터를 추가하여 상 기 부호 데이터를 생성하는 ECC 인코더 및 상기 부호 데이터를 저장하는 메모리 코아를 더 구비한다.
상기 메모리 코아는 전기적으로 소거 및 프로그램이 가능한 메모리셀들(EEPROM cells)을 포함할 수 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 바람직한 일 측면에 따른 에러 정정 방법은, 병렬적으로 동작 가능하며, 오류 위치를 산출하는 시간이 서로 다른 적어도 두 개의 에러 위치 검출기들을 이용하여 적어도 제1 오류 위치를 산출하는 단계; 오류 유형을 판단하는 단계; 및 상기 적어도 제1 오류 위치 및 상기 오류 유형에 기초하여 최종 오류 위치를 결정하는 단계를 구비한다.
본 발명의 에러 정정 방법은 메모리셀 어레이로부터 부호 데이터를 독출하는 단계; 및 상기 부호 데이터를 이용하여 둘 이상의 부분 신드롬들을 산출하는 단계를 더 구비할 수 있다.
상기 적어도 제1 오류 위치를 산출하는 단계는 상기 부분 신드롬들 중 일부만을 이용하여 제1 오류 위치를 산출하는 단계; 상기 둘 이상의 부분 신드롬들을 이용하여 오류 위치 방정식의 계수들을 산출하는 단계; 및 상기 오류 유형에 기초하여, 선택적으로 제2 오류 위치를 산출하는 단계를 구비할 수 있다.
상기 오류 유형은, 제1 오류 유형과 제2 오류 유형으로 구분될 수 있고, 상기 오류 유형의 판단은 상기 산출된 계수들에 기초하여 이루어질 수 있다.
본 발명의 일 실시예에서, 상기 부분 신드롬들 중 일부만을 이용하여 제1 오류 위치를 산출하는 단계는, 상기 부분 신드롬들 중 하나의 부분 신드롬만을 이용 하여 상기 부호 데이터중 1 비트 오류 위치를 산출하는 단계를 포함하고, 상기 오류 유형에 기초하여, 선택적으로 제2 오류 위치를 산출하는 단계는 상기 오류 유형이 상기 제2 오류 유형인 경우, 상기 부호 데이터 중 2 비트 이상의 오류 위치들을 산출하는 단계를 포함할 수 있다.
본 발명의 다른 일 실시예에서, 상기 부분 신드롬들 중 일부만을 이용하여 제1 오류 위치를 산출하는 단계는 상기 부호 데이터 중 2 비트 이하의 오류 위치를 산출하는 단계를 포함하고, 상기 오류 유형에 기초하여, 선택적으로 제2 오류 위치를 산출하는 단계는 상기 오류 유형이 상기 제2 오류 유형인 경우, 상기 부호 데이터 중 3 비트 이상의 오류 위치를 산출하는 단계를 포함할 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 반도체 메모리 장치의 구성 블록도이다.
이를 참조하면, 본 발명의 반도체 메모리 장치(300)는 메모리 코아(310), ECC 회로(320), 호스트 인터페이스 및 로직부(330)를 구비한다.
메모리 코아(310)는 데이터를 저장하기 위한 메모리셀 어레이를 구비하는 블록이다. 메모리셀 어레이는 플로팅 게이트(floating gate)를 가지는 전기적으로 소 거 및 프로그램이 가능한 메모리셀들(EEPROM cells)로 구성될 수 있지만, 이에 한정되는 것은 아니다.
호스트 인터페이스 및 로직부(330)는 호스트(200, 예컨대, 모바일 기기의 컨트롤러, 컴퓨터 장치의 컨트롤러 등)와 메모리 코아 간(110)의 인터페이스를 위한 제어 및 버퍼링 역할을 수행한다. 호스트 인터페이스 및 로직부(330)는 후술되는 ECC 회로(320)의 에러 비트의 오류 검출 결과, 즉 오류 위치 정보에 기초하여, 부호 데이터 중 에러가 발생한 비트의 에러를 정정하는 에러 정정기(미도시)를 포함할 수 있다.
호스트 인터페이스 및 로직부(330)는 SRAM(Static Random Access Memory, 미도시)와 같은 메모리를 구비할 수 있다. 이 경우에는, 호스트(200)가 SRAM에 데이터를 기입하면 그 데이터는 ECC 회로(320)에 의해 부호화되어 메모리 코아(310, 예컨대, 플래시 메모리 코아)에 기록되고, 메모리 코아(310)부터 독출된 데이터는 ECC회로(320)에 의해 에러가 검출되고 정정되어 SRAM(미도시)에 저장되고, 호스트(200)는 SRAM(미도시)에 저장된 에러 정정된 데이터를 독출한다.
호스트 인터페이스 및 로직부(330)는 호스트(200)와 d(2이상의 정수) 비트의 병렬 데이터를 송수신할 수 있다.
ECC 회로(320)는 ECC 래퍼(410), ECC 인코더(420) 및 ECC 디코더(430)를 구비한다.
ECC 래퍼(ECC wrapper, 410)는 호스트 인터페이스 및 로직부(330)를 통해 수신되는 k(2이상의 정수, 예컨대, 4096)비트 정보 데이터에 각 비트가 소정 로직값 (예컨대 "0")을 가지는 n-k(1 이상의 정수, 예컨대, 53) 비트의 더미 데이터를 추가하여, 총 n(예컨대, 4096+53=4149) 비트 데이터를 직렬 또는 병렬로 출력한다.
n비트 데이터는 ECC 인코더(420)로 입력된다.
ECC 인코더(420)의 일 구현예가 도 4에 도시된다.
도 4를 참조하면, ECC 인코더(420)는 신드롬 생성기(421) 및 XOR(exclusive-OR) 연산기(423)를 포함한다.
신드롬 생성기(421)는 ECC 래퍼(410)로부터 n비트 데이터(즉, k비트들 + (n-k) 개의 "0" 비트들)를 수신하고, 수신된 데이터를 특정 데이터로 나누어 n-k 비트의 나머지 데이터(즉, n-k 비트로 구성되는 신드롬 데이터)를 생성한다. 특정 데이터를 통상적으로 생성 다항식(generator polynomial, G(x))이라 한다. (n-k)는 정정 가능한 최대 에러 비트수 및/또는 검출 가능한 최대 에러 비트수에 의해 결정된다.
XOR(exclusive-OR) 연산기(423)는 ECC 래퍼(410)로부터 수신되는 n비트 데이터와 신드롬 데이터를 배타적 논리합(XOR)한다. 즉, XOR(exclusive-OR) 연산기(423)에 의해 (n-k)비트의 더미 데이터가 나머지 데이터로 대체된다.
결국, ECC 인코더(420)는 k비트의 정보 데이터에 n-k 비트의 나머지 데이터(신드롬 데이터)가 추가된 n비트의 부호 데이터를 생성한다. 정보 데이터, 신드롬 데이터 및 부호 데이터를 각각 I(x), S(x), C(x)라 하면, 이들 데이터 간의 관계는 다음의 수학식 1과 같다.
S(x) = x(n-k)I(x) % G(x),
C(x) = x(n-k)I(x) + S(x) = Q(x)G(x)
여기서, x(n-k)I(x)는 k비트의 정보 데이터(I(x))를 (n-k)비트 만큼 MSB(most significant bit) 방향으로 쉬프트시킨 값이고, % G(x)는 모듈로(modulo)-G(x) 연산을 의미하며, Q(x)는 C(x)를 G(x)로 나눈 몫이다. (n-k)가 53인 경우, G(x)는 53차 다항식, S(x)는 52차 다항식이다.
n비트 부호 데이터(이를 ECC 워드라 하기도 함)는 메모리 코아(310)로 입력된다. 메모리 코아(310)의 셀 어레이 영역은 정보 데이터를 저장하기 위한 영역과, 신드롬 데이터를 저장하기 위한 영역으로 구분될 수도 있다. 또는 정보 데이터 영역과 신드롬 데이터 영역의 구분없이, n비트 부호 데이터가 메모리 셀 어레이에 저장될 수도 있다.
메모리 코아(310)에 저장된 부호 데이터를 외부로 출력하는 경우에는, 메모리 코아(310)로부터 k비트 정보 데이터 및 n-k비트 패리터 데이터를 포함하는 n 비트 부호 데이터가 독출되어 ECC 래퍼(410)로 입력된다. 이 때, ECC 래퍼(410)는 n 비트 부호 데이터를 버퍼링하는 역할을 한다.
ECC 디코더(430)는 ECC 래퍼(410)를 통해 수신되는 부호 데이터에 에러 비트가 발생하였는지 여부를 판단하고, 에러 비트가 발생한 경우 오류 위치(에러 비트의 위치)를 검출한다. 또한, ECC 디코더(430)는 산출된 오류 위치에 기초하여 부호 데이터 중 에러 비트를 정정할 수도 있다. 즉 상술한 에러 정정기가 ECC 디코 더(430)내에 포함될 수도 있다.
구체적으로는, ECC 디코더(430)는 제1 내지 제4 부분 신드롬 생성기들(partial syndrome generator, 431, 433, 435, 437), 계수 계산기(441), 1비트 에러 위치 검출기(451), 멀티 비트 에러 위치 검출기(452), 에러 판단부(442) 및 메인 제어부(443)를 구비한다.
ECC 디코더(430)는 또한 도 3에 도시된 바와 같이, 패리티 체커(444)를 구비할 수 있다. 패리티 체커(444)는 짝수 패리티 체커(even parity checker)일 수도 있고, 홀수 패리티 체커(odd parity checker)일 수도 있다.
제1 내지 제4 부분 신드롬 생성기들(431, 433, 435, 437)은 메모리 코아(310)로부터 출력된 n비트 부호 데이터를 각각 자신의 특정 데이터로 나누어 부분 신드롬(S1, S3, S5, S7)을 생성한다.
메모리 코아(310)로부터 출력된 n비트 부호 데이터를 R(x)라 하고, 각 부분 신드롬 생성기(431, 433, 435, 437)의 특정 데이터, 즉 부분 생성 다항식을 각각 m1(x), m3(x), m5(x), m7(x)라 하면, 이들 데이터 간의 관계는 다음의 수학식 2와 같다.
S1(x) = R(x) % m1(x),
S3(x) = R(x) % m3(x),
S5(x) = R(x) % m5(x),
S7(x) = R(x) % m7(x)
여기서, S1(x), S3(x), S5(x) 및 S7(x)는 각각 제1 내지 제4 부분 신드롬 생성기들(431, 433, 435, 437)로부터 생성되는 부분 신드롬(S1, S3, S5, S7)이고, % 는 모듈로(modulo) 연산을 의미한다.
그리고, ECC 인코더(420)의 신드롬 생성기(421)의 생성 다항식(G(x))과 제1 내지 제4 부분 신드롬 생성기들(431, 433, 435, 437)의 부분 생성 다항식들(m1(x), m3(x), m5(x), m7(x))의 관계는 다음의 수학식 3과 같이 결정될 수 있다.
G(x) = m1(x) * m3(x)* m5(x)* m7(x)
여기서, *는 갈로아체 곱셈을 의미한다.
G(x)가 53차 다항식이고 S(x)가 52차 다항식인 경우, m1(x), m3(x), m5(x), m7(x)는 각각 13차 다항식이고, S1(x), S3(x), S5(x) 및 S7(x)는 각각 12차 다항식이다.
제1 내지 제4 부분 신드롬(S1, S3, S5, S7)이 모두 0이면 부호 데이터에 에러가 없는 것이다. 그렇지 않은 경우, 즉, 제1 내지 제4 부분 신드롬(S1, S3, S5, S7) 중 어느 하나라도 0이 아니면 부호 데이터 중 적어도 하나의 비트에 에러가 발생한 것이다.
에러가 발생한 경우에는, 계수 계산기(coefficient calculator, 441)는 부분 신드롬들(S1, S3, S5, S7)을 이용하여 오류 위치 방정식의 계수를 산출한다. 이와 동시에, 1비트 에러 위치 검출기(451)는 부분 신드롬들(S1, S3, S5, S7) 중 일부(예컨대, 제1 부분 신드롬(S1))만을 이용하여 1 비트 에러의 위치를 계산한다. 1비트 에러 위치 검출기(451)는 매우 간단한 회로로 구성되므로 멀티비트 에러 위치 검출기(452)에 비해 훨씬 빠른 속도로 동작하게끔 구현할 수 있다.
오류 위치 방정식은 에러 비트의 역수를 근으로 하는 방정식이다.
오류 위치 방정식의 계수들(σ1234)과 부분 신드롬들(S1, S3, S5, S7)과의 관계는 다양한 알고리즘을 통해 구해질 수 있으며 다음의 수학식 4 내지 5는 그 구해진 관계식의 일 예를 나타낸 것이다.
먼저, 1비트 에러 정정을 위한 오류 위치 방정식의 일 예는 다음의 수학식 4와 같다.
σ1 x+ 1 = 0
여기서, σ1 = S1 이고, 수학식 4의 1차 방정식을 만족하는 근의 역수가 1비트 에러 위치를 나타낸다.
2비트 에러 정정을 위한 오류 위치 방정식의 일 예는 다음의 수학식 5와 같 다.
σ2 x2 + σ1 x + 1 = 0
여기서, σ1 = S1, σ2 = (S1 3 + S3)/ S1 이고, 수학식 5의 2차 방정식을 만족하는 근의 역수가 2비트 에러 위치를 나타낸다.
3비트 이상의 에러 정정의 경우에도, 상술한 바와 유사하게 오류 위치 방정식의 계수들이 산출될 수 있다.
본 실시예에서는, 계수 계산기(441)는 최대 4비트 에러를 정정할 수 있는 오류 위치 방정식에 따른 계수들(σ1234)을 산출한다.
에러 판단부(442)는 계수 산출기(441)에서 산출된 계수들(σ1234)에 기초하여, 오류 유형을 판단한다. 좀 더 구체적으로는, 에러 판단부(442)는 계수들(σ1234)에 기초하여, 1 비트 에러(제1 오류 유형)인지 2 비트 이상의 멀티 비트 에러(제2 오류 유형)인지를 판단한다.
오류 위치 방정식의 계수가 산출되면, 몇 비트 에러가 발생하였는지를 알 수 있다. 예를 들어, 1차 계수(σ1)는 0이 아니고, 나머지 차수의 계수들(σ234)이 모두 0이라면 오류 위치 방정식은 1차 방정식이고, 에러 비트 수는 1이다. 만약, 2차 계수(σ2)가 0이 아니고, 3차 계수(σ3)와 4차 계수(σ4)는 모두 0이라면 오류 위치 방정식은 2차 방정식이고, 에러 비트 수는 2이다.
에러 판단부(442)의 판단 결과, 1비트 에러인 경우에는 1비트 에러 위치 검출기(451)의 결과에 따라 오류 위치, 즉 에러 비트의 위치를 결정할 수 있다. 따라서, 이 경우에는 멀티 비트 에러 위치 검출기(452)는 작동하지 않는 것이 바람직하다. 1비트 에러 위치 검출기(451)에 의해 산출된 1비트 에러 위치를 제1 오류 위치라 한다.
한편, 에러 판단부(442)의 판단 결과, 2비트 이상의 멀티 비트 에러인 경우에는 멀티 비트 에러 위치 검출기(452)의 결과에 따라 에러 비트들의 위치를 결정할 수 있다. 따라서 이 경우에는 멀티 비트 에러 위치 검출기(452)가 작동하여 에러가 발생된 비트들의 위치를 검출하여 출력한다. 멀티 비트 에러 위치 검출기(452)에 의해 산출된 멀티 비트 에러 위치들을 제2 오류 위치라 한다.
1비트 에러 위치 검출기(451)와 멀티 비트 에러 위치 검출기(452)는 오류 위치 방정식에 기초하여, 에러 비트의 위치를 검출한다.
1비트 에러 위치 검출기(451)는 1-비트 ECC에 최적화된 빠른 오류 위치 계산기로서 1 비트 에러 검출 전용 회로이다. 1비트 에러 위치 검출기(451)는 수학식 4의 1차 오류 위치 방정식에 기초하여 n 비트 부호 데이터 중 오류가 발생한 1비트의 위치를 검출한다.
1차 오류 위치 방정식의 계수(σ1)는 제1 부분 신드롬(S1)과 동일하므로, 1차 오류 위치 방정식은 계수 계산기(441)의 계산 결과에 상관없이 제1 부분 신드롬 발생기(431)로부터 제1 부분 신드롬(S1)이 발생되면, 즉시 결정될 수 있다. 따라서, 1비트 에러 위치 검출기(451)는 부분 신드롬 발생 즉시 계수 계산기(441)와 함께 병렬적으로 동작될 수 있다.
멀티 비트 에러 위치 검출기(452)는, 계수 계산기(441)에서 산출된 계수들(σ1234)을 이용하여, 2 비트 이상의 에러 비트들의 위치를 검출한다. 본 실시예에서는, 멀티 비트 에러 위치 검출기(452)는 2 비트 이상 4비트 이하의 에러 비트들의 위치들을 검출할 수 있는 오류 위치 계산기이다.
오류 위치는 오류 위치 방정식의 근을 구하면 알 수 있으므로, 각 오류의 개수에 따라 i(예를 들어, i=1, 2, 3, 또는 4)차 오류 위치 방정식을 풀어야 한다.
4차 오류 위치 방정식의 일반 해를 구하기는 어려우므로, 통상적으로 Chien Search 알고리즘이 많이 사용된다.
Chien Search 알고리즘은 각 비트에 오류가 있는지를 알기 위해 갈로아체의 원소들인 α0, α1, α2, α3, ..., αj (j는 에러가 발생한 비트)에 대해, α-j를 오류 위치 방정식에 대입한 결과가 0이면 해당 비트에 오류가 있는 것으로 0이 아니면 해당 비트에 오류가 없는 것으로 판단하며, 전체 부호 비트들에 대해 위 과정을 차례로 반복하여 해를 구하는 알고리즘이다.
메인 제어부(443)는 1비트 에러 위치 검출기(451)의 검출 결과(제1 오류 위치) 또는 멀티비트 에러 위치 검출기(452)의 검출결과(제2 오류 위치)에 기초하여 최종 에러 비트의 위치를 결정한다. 이 때, 메인 제어부(443)는 에러 판단부(442) 의 판단 결과 제1 오류 유형인 경우에는 제1 오류 위치에 따라 최종 에러 비트의 위치를 결정하고, 제2 오류 유형인 경우에는 1비트 에러 위치 검출기(451)의 검출 결과(제1 오류 위치)는 무시하고 제2 오류 위치에 따라 최종 에러 비트의 위치를 결정할 수 있다.
또한, 메인 제어부(443)는 에러 여부 및 에러 위치의 보다 정확한 판단을 위하여, 패리티 체커(444)의 출력 신호를 더 참조할 수 있다.
메인 제어부(443)에 의하여 에러 비트(들)의 위치가 최종 결정되면, 그 결정된 오류 위치 정보는 호스트 인터페이스 및 로직부(130)로 제공된다. 호스트 인터페이스 및 로직부(130)는 메인 제어부(443)에서 제공된 오류 위치 정보에 기초하여 부호 데이터 중 에러가 발생한 비트의 로직값을 반전시켜 에러를 정정할 수 있다. 또는 호스트 인터페이스 및 로직부(130)는 메인 제어부(443)에서 제공된 오류 위치 정보를 메모리 코아(310)에서 독출된 n비트 부호 데이터(혹은 k비트 정보 데이터만)와 함께 호스트(200)로 전송할 수 있다. 이 경우, 에러 정정은 호스트(200)에서 이루어질 수 있다. 즉, 호스트(200)가 메인 제어부(443)에서 제공된 오류 위치 정보에 기초하여 부호 데이터(혹은 정보 데이터) 중 에러가 발생한 비트의 로직값을 반전시켜 에러를 정정할 수 있다
도 5는 본 발명의 일 실시예에 따른 에러 정정 방법을 나타내는 흐름도이다. 발명의 일 실시예에 따른 에러 정정 방법은 도 3에 도시된 본 발명의 일 실시예에 따른 ECC 회로(320)에 의해 수행될 수 있다.
도 3 내지 도 5를 참조하여, 본 발명의 일 실시예에 따른 에러 정정 방법을 설명하면 다음과 같다.
먼저, 메모리 코아로부터 부호 데이터를 독출하고(610), 독출된 부호 데이터를 이용하여 제1 내지 제4 부분 신드롬(S1, S3, S5, S7)을 생성한다(620). 물론 부호 데이터의 독출(610) 이전에, 메모리 코아(310)에는 정보 데이터에 신드롬을 추가한 부호 데이터가 저장되어 있다.
원 비트 에러 정정(1-bit ECC)의 경우 제1 부분 신드롬(S1)만 있으면 그 오류 위치를 바로 찾아낼 수 있으므로, 제1 부분 신드롬(S1)이 계산된 후 바로 1-비트 ECC에 최적화된 빠른 오류 위치 계산기인 1비트 에러 위치 검출기(451)를 동작시켜 오류 위치를 계산한다(621).
이 때, 2 비트 이상의 에러가 발생한 경우를 대비하여 계수 계산기(441)도 1비트 에러 위치 검출기(451)와 동시에 동작시켜, 오류 위치 방정식의 계수를 산출한다(622).
계수 계산기(441)에 의해 오류 위치 방정식의 계수 계산이 끝나면, 산출된 계수들에 기초하여 오류 유형을 판별할 수 있다(630). 오류 유형을 판단한 결과, 1비트 오류(제1 오류 유형)인 경우에는 1비트 에러 위치 검출기(451)에 의해 이미 계산된 1비트 오류 위치 정보에 기초하여 1비트 오류를 정정한다(640).
오류 유형을 판단한 결과, 2비트 이상의 멀티 비트 오류(제2 오류 유형)인 경우에는 멀티 비트 에러 위치 검출기를 계속 동작시켜 오류 비트들의 위치들을 산출하고(650), 산출된 멀티 비트 오류 위치 정보에 기초하여 멀티비트 오류를 정정 한다(660).
도 6은 본 발명의 일 실시예에 따른 에러 정정 과정을 개략적으로 나타내는 도면이다.
본 발명의 일 실시예에 따른 에러 정정 과정 역시 데이터 독출 및 신드롬 계산 과정, 계수 산출 과정 및 오류 위치 계산 과정을 필요로 한다.
데이터 독출 및 신드롬 계산 과정(T0~T1)은 메모리셀 어레이로부터 ECC 워드(정보 데이터 및 신드롬 데이터)를 독출하여 부분 신드롬들(S0, S1, S2, ... S2n -1)을 계산하는 과정으로서, 종래 기술과 동일하게 소정의 독출 시간(Tt)을 필요로 한다.
그런데, 본 발명의 일 실시예에 따른 오류 정정 방법에서는, 부분 신드롬들(S0, S1, S2, ... S2n -1)이 산출된 시점(T1)에서 계수 산출 과정과 1비트 오류 위치 계산 과정이 동시에 병렬적으로 수행된다.
계수 산출 과정에 의해 산출된 계수들(σ0, σ1, σ2,...σn)에 기초하여 오류 유형을 판단한 결과, 1비트 에러인 경우에는, 2비트 이상의 오류 위치 계산 과정은 생략된다.
따라서, 1비트 에러인 경우에는 T4 시점에 에러 정정 싸이클(ECC cycle)이 종료될 수 있다. 이 때의 에러 정정 싸이클은 데이터 독출 및 신드롬 계산 시간과 1비트 오류 위치 계산 시간을 합한 시간(Tt+Tcs1)으로서, 2 비트 이상의 에러가 발 생한 경우에 비하여 훨씬 짧다.
2 이상의 멀티 비트 에러인 경우의 에러 정정 싸이클(ECC cycle)은 종래 기술과 마찬가지로, (Tt+Tcoeff+Tcse)가 된다.
그러나, 1비트 에러 발생의 경우의 에러 정정 싸이클은 종래 기술에 비하 상당히 감축되므로 평균적인 에러 정정 싸이클 역시 감소한다. 특히, 메모리 장치의 오류 유형이 1 비트 에러가 대부분일 경우에는 에러 정정 싸이클의 감축 정도는 상당하다. 이에 따라, 메모리 장치의 독출 속도가 개선된다.
또한, 종래 기술에 비하여 추가되는 회로는 1비트 에러 위치 검출기(451) 및 에러 판단부(442)에 불과하다. 1-비트 에러 전용 오류 위치 계산기인 1비트 에러 위치 검출기(451)는 매우 간단하게 구현이 가능하므로 면적 증가가 크지 않으며 멀티비트 에러 위치 검출기(451)에 비해 매우 빠른 속도로 동작하게끔 구현할 수 있다.
상술한 본 발명의 일 실시예에서는 1-비트 에러 전용 오류위치 계산기가 추가된 ECC 회로를 중심으로 기술하였다. 즉, 상술한 본 발명의 일 실시예에서는 오류 유형을 1비트 에러와 2비트 이상의 에러로 구분하여 1비트 에러의 경우 1-비트 에러 전용 오류 위치 계산기(451)에 의해 1-비트 에러 위치를 빠르게 검출하고, 2비트 이상 에러의 경우 멀티 비트 에러 위치 검출기(452)에 의해 에러 위치들을 검출한다.
이와 유사하게, 본 발명의 다른 일 실시예에서는 오류 유형을 2 비트 이하 에러(제1 오류 유형)와 3비트 이상의 에러(제2 오류 유형)로 구분하여 2비트 이하 에러의 경우 2-비트 에러 전용 오류 위치 계산기에 의해 2비트 에러 위치를 빠르게 검출하고, 3비트 이상 에러의 경우 멀티 비트 에러 위치 검출기(452)에 의해 에러 위치들을 검출할 수 있다. 이 경우 2-비트 에러 전용 오류 위치 계산기는 수학식 5의 2차 방정식에 기초하여 에러 비트들의 위치를 검출하도록 구현될 수 있다.
본 발명의 또 다른 실시예에서는 오류 유형을 세 가지 이상(예컨대, 제1, 제2 및 제3 오류 유형)으로 구분하고, 각 오류 유형에 대응하는 에러 위치 검출기를 구비하여, 제1 오류 유형에 대해서는 가장 빠르게 오류 위치를 검출하고, 제2 오류 유형에 대해서는 제1 오류 유형으로 다음으로 빠르게 오류 위치를 검출하도록 구현될 수도 있다. 각 오류 유형에 대응하는 에러 위치 검출기는 병렬적으로 동작 가능하고, 오류 위치를 검출하는 시간이 상호 다른 것이 바람직하다.
따라서, 본 발명은 하드웨어 면적과 에러 정정 싸이클의 적절한 조절을 통해 에러 비트수에 따라 오류 위치 검출 및 정정하는데 소요되는 ECC 싸이클을 가변함으로써, 소정 비트수(예컨대, 1비트 또는 2비트)이하의 에러에 대한 빠른 ECC를 구현하는데 적용될 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능함을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 보호범위는 첨부된 특허청구범위에 의해서만 정해져야 할 것이다.
상술한 바와 같이, 본 발명에 의하면, 에러 비스수에 따라 오류 유형을 구분 하고, 오류 유형에 따라 ECC 싸이클을 다르게 할 수 있다. 따라서, 패리티 데이터의 추가 없이도 멀티비트 ECC 성능을 그대로 유지하면서, 소정 비트수 이하의 에러(예컨대, 1비트 에러 혹은 2비트 에러)에 대한 ECC는 빠른 시간에 처리할 수 있다. 따라서, ECC에 소요되는 평균 시간(싸이클 수)가 감소되고, 데이터 독출 시간이 빨라질 수 있다.

Claims (20)

  1. 병렬적으로 동작 가능하며, 오류 위치를 산출하는 시간이 서로 다른 적어도 두 개의 에러 위치 검출기들;
    오류 유형을 판단하는 판단부; 및
    상기 에러 위치 검출기들 중 적어도 하나에서 산출된 오류 위치 및 상기 오류 유형에 기초하여 최종 오류 위치를 결정하는 메인 제어부를 구비하는 에러 정정 회로.
  2. 제 1 항에 있어서, 상기 에러 정정 회로는
    에러 정정 코딩된 부호 데이터를 이용하여 둘 이상의 부분 신드롬들(partial syndroms)을 산출하는 부분 신드롬 생성기; 및
    상기 둘 이상의 부분 신드롬들을 이용하여 오류 위치 방정식의 계수들을 산출하는 계수 산출기를 더 구비하고,
    상기 에러 위치 검출기들은
    상기 부분 신드롬들 중 일부만을 이용하여 제1 오류 위치를 산출하는 제1 에러 위치 검출기; 및
    상기 오류 유형에 기초하여, 선택적으로 제2 오류 위치를 산출하는 제2 에러 위치 검출기를 구비하는 에러 정정 회로.
  3. 제 2 항에 있어서,
    상기 오류 유형은 제1 오류 유형과 제2 오류 유형으로 구분되며,
    상기 판단부는 상기 산출된 계수들에 기초하여, 상기 오류 유형을 판단하는 것을 특징으로 하는 에러 정정 회로.
  4. 제 3 항에 있어서,
    상기 제1 에러 위치 검출기는
    상기 부분 신드롬들 중 하나의 부분 신드롬만을 이용하여 상기 부호 데이터 중 1 비트 오류 위치를 산출하며,
    상기 제2 에러 위치 검출기는
    상기 오류 유형이 상기 제2 오류 유형인 경우, 상기 부호 데이터 중 2 비트 이상의 오류 위치들을 산출하는 것을 특징으로 하는 에러 정정 회로.
  5. 제 3 항에 있어서,
    상기 제1 에러 위치 검출기는
    상기 부호 데이터 중 2 비트 이하의 오류 위치를 산출하며,
    상기 제2 에러 위치 검출기는
    상기 오류 유형이 상기 제2 오류 유형인 경우, 상기 부호 데이터 중 3 비트 이상의 오류 위치들을 산출하는 것을 특징으로 하는 에러 정정 회로.
  6. 제 3 항에 있어서, 상기 에러 정정 회로는
    상기 산출된 제1 오류 위치 또는 상기 산출된 제2 오류 위치에 기초하여, 상기 부호 데이터를 정정하는 에러 정정기를 더 구비하는 것을 특징으로 하는 에러 정정 회로.
  7. 제 3 항에 있어서,
    상기 오류 유형이 상기 제1 오류 유형인 경우,
    상기 제2 에러 위치 검출기는 동작하지 않고, 상기 제1 에러 위치 검출기에서 산출된 제1 오류 위치에 기초하여 상기 부호 데이터가 정정되는 것을 특징으로 하는 에러 정정 회로.
  8. 제 3 항에 있어서,
    상기 오류 유형이 상기 제2 오류 유형인 경우,
    상기 제1 에러 위치 검출기에서 산출된 제1 오류 위치는 무시되고, 상기 제2 에러검출기에서 산출된 제2 오류 위치에 기초하여 상기 부호 데이터가 정정되는 것을 특징으로 하는 에러 정정 회로.
  9. 제 3 항에 있어서, 상기 제1 에러 위치 검출기 및 상기 계수 산출기는
    병렬적으로 동작하는 것을 특징으로 하는 에러 정정 회로.
  10. 제 2 항의 에러 정정 회로를 구비하는 반도체 메모리 장치에 있어서,
    정보 데이터에 기초하여 신드롬 데이터를 발생하고 상기 정보 데이터에 상기 신드롬 데이터를 추가하여 상기 부호 데이터를 생성하는 ECC 인코더; 및
    상기 부호 데이터를 저장하는 메모리 코아를 더 구비하는 반도체 메모리 장치.
  11. 제 10 항에 있어서, 상기 메모리 코아는
    전기적으로 소거 및 프로그램이 가능한 메모리셀들(EEPROM cells)을 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  12. 제 10 항에 있어서, 상기 반도체 메모리 장치는
    상기 메모리 코아로부터 독출된 상기 부호 데이터 및 상기 산출된 제1 오류 위치 또는 상기 산출된 제2 오류 위치에 대한 데이터를 호스트로 전송하는 호스트 인터페이스 및 로직부를 더 구비하며,
    상기 호스트는 상기 산출된 제1 오류 위치 또는 상기 산출된 제2 오류 위치에 기초하여 상기 부호 데이터를 정정하는 것을 특징으로 하는 반도체 메모리 장치.
  13. 병렬적으로 동작 가능하며, 오류 위치를 산출하는 시간이 서로 다른 적어도 두 개의 에러 위치 검출기들을 이용하여 적어도 제1 오류 위치를 산출하는 단계;
    오류 유형을 판단하는 단계; 및
    상기 적어도 제1 오류 위치 및 상기 오류 유형에 기초하여 최종 오류 위치를 결정하는 단계를 구비하는 에러 정정 방법.
  14. 제 13 항에 있어서, 상기 방법은
    메모리셀 어레이로부터 부호 데이터를 독출하는 단계; 및
    상기 부호 데이터를 이용하여 둘 이상의 부분 신드롬들을 산출하는 단계를 더 구비하며,
    상기 적어도 제1 오류 위치를 산출하는 단계는
    상기 부분 신드롬들 중 일부만을 이용하여 상기 제1 오류 위치를 산출하는 단계;
    상기 둘 이상의 부분 신드롬들을 이용하여 오류 위치 방정식의 계수들을 산출하는 단계; 및
    상기 오류 유형에 기초하여, 선택적으로 제2 오류 위치를 산출하는 단계를 구비하는 에러 정정 방법.
  15. 제 14 항에 있어서,
    상기 오류 유형은 제1 오류 유형과 제2 오류 유형으로 구분되며,
    상기 오류 유형의 판단은 상기 산출된 계수들에 기초하는 것을 특징으로 하는 에러 정정 방법.
  16. 제 15 항에 있어서,
    상기 부분 신드롬들 중 일부만을 이용하여 제1 오류 위치를 산출하는 단계는
    상기 부분 신드롬들 중 하나의 부분 신드롬만을 이용하여 상기 부호 데이터중 1 비트 오류 위치를 산출하는 단계를 포함하며,
    상기 오류 유형에 기초하여, 선택적으로 제2 오류 위치를 산출하는 단계는
    상기 오류 유형이 상기 제2 오류 유형인 경우, 상기 부호 데이터 중 2 비트 이상의 오류 위치들을 산출하는 단계를 포함하는 것을 특징으로 하는 에러 정정 방법.
  17. 제 15 항에 있어서,
    상기 부분 신드롬들 중 일부만을 이용하여 제1 오류 위치를 산출하는 단계는
    상기 부호 데이터 중 2 비트 이하의 오류 위치를 산출하는 단계를 포함하며,
    상기 오류 유형에 기초하여, 선택적으로 제2 오류 위치를 산출하는 단계는
    상기 오류 유형이 상기 제2 오류 유형인 경우, 상기 부호 데이터 중 3 비트 이상의 오류 위치를 산출하는 단계를 포함하는 것을 특징으로 하는 에러 정정 방법.
  18. 제 15 항에 있어서, 상기 에러 정정 방법은
    상기 산출된 제1 오류 위치 또는 상기 산출된 제2 오류 위치에 기초하여, 상 기 부호 데이터를 정정하는 단계를 더 구비하는 것을 특징으로 하는 에러 정정 방법.
  19. 삭제
  20. 제 15 항에 있어서,
    상기 부분 신드롬들 중 일부만을 이용하여 제1 오류 위치를 산출하는 단계 및 상기 둘 이상의 부분 신드롬들을 이용하여 오류 위치 방정식의 계수들을 산출하는 단계는 병렬적으로 수행되는 것을 특징으로 하는 에러 정정 방법.
KR1020060080854A 2006-08-25 2006-08-25 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치 KR100833600B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020060080854A KR100833600B1 (ko) 2006-08-25 2006-08-25 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치
US11/776,727 US8069389B2 (en) 2006-08-25 2007-07-12 Error correction circuit and method, and semiconductor memory device including the circuit
DE102007038114A DE102007038114A1 (de) 2006-08-25 2007-07-30 Fehlerkorrekturschaltung, Halbleiterspeicherelement und Fehlerkorrekturverfahren
CN2007101397390A CN101131876B (zh) 2006-08-25 2007-07-30 误差校正电路和方法、包含该电路的半导体存储装置
JP2007220270A JP5043562B2 (ja) 2006-08-25 2007-08-27 エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
US13/239,534 US20120072810A1 (en) 2006-08-25 2011-09-22 Error correction circuit and method, and semiconductor memory device including the circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060080854A KR100833600B1 (ko) 2006-08-25 2006-08-25 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치

Publications (2)

Publication Number Publication Date
KR20080018560A KR20080018560A (ko) 2008-02-28
KR100833600B1 true KR100833600B1 (ko) 2008-05-30

Family

ID=38973457

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060080854A KR100833600B1 (ko) 2006-08-25 2006-08-25 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치

Country Status (5)

Country Link
US (2) US8069389B2 (ko)
JP (1) JP5043562B2 (ko)
KR (1) KR100833600B1 (ko)
CN (1) CN101131876B (ko)
DE (1) DE102007038114A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101425958B1 (ko) * 2007-09-06 2014-08-04 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템 및 그것의읽기 방법
US7945825B2 (en) * 2007-11-25 2011-05-17 Spansion Isreal, Ltd Recovery while programming non-volatile memory (NVM)
KR101437396B1 (ko) * 2008-02-27 2014-09-05 삼성전자주식회사 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법
JP2010097600A (ja) * 2008-09-22 2010-04-30 Panasonic Corp 半導体記録装置
US8615700B2 (en) * 2009-08-18 2013-12-24 Viasat, Inc. Forward error correction with parallel error detection for flash memories
CN102279776B (zh) * 2010-06-11 2015-06-24 无锡中星微电子有限公司 一种错误检查与纠正能力的测试方法及装置
US8739006B2 (en) * 2010-06-30 2014-05-27 International Business Machines Corporation Reduced circuit implementation of encoder and syndrome generator
JP6072449B2 (ja) * 2012-07-09 2017-02-01 ルネサスエレクトロニクス株式会社 半導体記憶回路及びその動作方法
US8640002B1 (en) 2012-07-10 2014-01-28 Micron Technology, Inc. Resolving trapping sets
US8990655B2 (en) * 2012-09-28 2015-03-24 Intel Corporation Techniques associated with error correction for encoded data
US9065483B2 (en) 2013-01-21 2015-06-23 Micron Technology, Inc. Determining soft data using a classification code
KR102143517B1 (ko) 2013-02-26 2020-08-12 삼성전자 주식회사 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
WO2015033180A1 (en) * 2013-09-05 2015-03-12 Freescale Semiconductor, Inc. Safe operating area checking method and apparatus
US10073731B2 (en) * 2013-11-27 2018-09-11 Intel Corporation Error correction in memory
US9306600B2 (en) 2014-01-06 2016-04-05 Micron Technology, Inc. Read threshold calibration for LDPC
CN107918571B (zh) 2016-10-08 2021-04-30 上海宝存信息科技有限公司 测试储存单元的方法以及使用该方法的装置
KR102579014B1 (ko) 2018-11-06 2023-09-15 삼성전자주식회사 에러 정정 코드 디코더, 반도체 메모리 장치 및 메모리 시스템
US11694761B2 (en) 2021-09-17 2023-07-04 Nxp B.V. Method to increase the usable word width of a memory providing an error correction scheme
KR102387463B1 (ko) * 2021-10-21 2022-04-15 삼성전자주식회사 메모리 장치, 전자 장치 및 메모리 장치의 동작 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930002854B1 (ko) * 1990-12-27 1993-04-12 삼성전자 주식회사 오류 정정방법 및 장치
JPH08255111A (ja) * 1995-03-16 1996-10-01 Toshiba Corp 誤り訂正検出回路と半導体記憶装置
KR970049528A (ko) * 1995-12-28 1997-07-29 김광호 에러 정정 방법
KR19980027920A (ko) * 1996-10-18 1998-07-15 김광호 에러 정정 방법 및 장치
JP2000020409A (ja) 1998-07-07 2000-01-21 Seiko Epson Corp 半導体記憶装置
JP2005176244A (ja) 2003-12-15 2005-06-30 Tokyo Institute Of Technology スポッティバイト誤り訂正・検出方法及び装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61338U (ja) * 1984-06-06 1986-01-06 クラリオン株式会社 復号装置
JP2696212B2 (ja) * 1987-05-06 1998-01-14 セイコーエプソン株式会社 誤り訂正装置
US4961192A (en) * 1988-07-29 1990-10-02 International Business Machines Corporation Data error detection and correction
JP3069389B2 (ja) * 1991-05-27 2000-07-24 富士通株式会社 Atmセル誤り処理システム
US5383201A (en) * 1991-12-23 1995-01-17 Amdahl Corporation Method and apparatus for locating source of error in high-speed synchronous systems
JP3154607B2 (ja) * 1993-12-28 2001-04-09 三菱電機株式会社 誤り訂正復号装置及び誤り訂正復号方法
US5577054A (en) * 1994-09-13 1996-11-19 Philips Electronics North America Corporation Device and method for performing error detection on an interleaved signal portion, and a receiver and decoding method employing such error detection
JPH10229343A (ja) * 1997-02-14 1998-08-25 Hitachi Ltd 誤り訂正処理方法
KR100685360B1 (ko) * 2000-01-31 2007-02-22 산요덴키가부시키가이샤 회로 규모를 억제하며 고속의 오류 정정을 행하는 것이 가능한 오류 정정 장치 및 복호 장치
US6691203B1 (en) * 2000-08-30 2004-02-10 Mosel Vitelic Corporation Integrated controller to process both optical reads and optical writes of multiple optical media
JP4112849B2 (ja) * 2001-11-21 2008-07-02 株式会社東芝 半導体記憶装置
JP4154197B2 (ja) * 2002-09-20 2008-09-24 キヤノン株式会社 位置検出方法、位置検出装置及び露光装置
JP4299558B2 (ja) * 2003-03-17 2009-07-22 株式会社ルネサステクノロジ 情報記憶装置および情報処理システム
JP2005011386A (ja) 2003-06-16 2005-01-13 Renesas Technology Corp 誤り訂正装置
US7228490B2 (en) * 2004-02-19 2007-06-05 Quantum Corporation Error correction decoder using cells with partial syndrome generation
JP2005242797A (ja) 2004-02-27 2005-09-08 Oki Electric Ind Co Ltd エラー訂正回路
JP2006179131A (ja) 2004-12-22 2006-07-06 Fujitsu Ltd メモリシステム及び半導体記憶装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930002854B1 (ko) * 1990-12-27 1993-04-12 삼성전자 주식회사 오류 정정방법 및 장치
JPH08255111A (ja) * 1995-03-16 1996-10-01 Toshiba Corp 誤り訂正検出回路と半導体記憶装置
KR970049528A (ko) * 1995-12-28 1997-07-29 김광호 에러 정정 방법
KR19980027920A (ko) * 1996-10-18 1998-07-15 김광호 에러 정정 방법 및 장치
JP2000020409A (ja) 1998-07-07 2000-01-21 Seiko Epson Corp 半導体記憶装置
JP2005176244A (ja) 2003-12-15 2005-06-30 Tokyo Institute Of Technology スポッティバイト誤り訂正・検出方法及び装置

Also Published As

Publication number Publication date
CN101131876B (zh) 2013-10-16
CN101131876A (zh) 2008-02-27
US8069389B2 (en) 2011-11-29
DE102007038114A1 (de) 2008-02-28
US20120072810A1 (en) 2012-03-22
US20080052564A1 (en) 2008-02-28
KR20080018560A (ko) 2008-02-28
JP5043562B2 (ja) 2012-10-10
JP2008052743A (ja) 2008-03-06

Similar Documents

Publication Publication Date Title
KR100833600B1 (ko) 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치
KR100856129B1 (ko) 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치
US8122328B2 (en) Bose-Chaudhuri-Hocquenghem error correction method and circuit for checking error using error correction encoder
US7278085B1 (en) Simple error-correction codes for data buffers
US11740960B2 (en) Detection and correction of data bit errors using error correction codes
US8806295B2 (en) Mis-correction and no-correction rates for error control
WO2011030410A1 (ja) メモリ装置
US8990667B2 (en) Error check and correction circuit, method, and memory device
JP4790790B2 (ja) 誤り検出訂正回路及び半導体メモリ
US9130592B2 (en) Error correction code circuit and memory device including the same
US20170257120A1 (en) Processing a data word
CN110908827A (zh) 用于NAND Flash闪存纠错的并行BCH解码方法
JP5602312B2 (ja) 誤り訂正復号装置
JP2023045450A (ja) シンドローム計算回路、誤り訂正回路およびメモリシステム
KR100397095B1 (ko) 에러 검출 장치 및 그 방법
JP2005011386A (ja) 誤り訂正装置
KR102021560B1 (ko) 오류 위치 탐색 회로, 그리고 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치
US20240126646A1 (en) Error processing circuit, memory and operation method of the memory
KR102064857B1 (ko) 갈로아체 연산 회로 및 메모리 장치
JP2013201503A (ja) チェンサーチ回路、復号器、記憶装置およびチェンサーチ方法
JP2013069377A (ja) 復号方法、復号装置および記憶装置
JP2013201482A (ja) チェンサーチ回路、復号器、記憶装置およびチェンサーチ方法

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160429

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170427

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180430

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 12