KR100856129B1 - 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치 - Google Patents

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

Info

Publication number
KR100856129B1
KR100856129B1 KR1020060137919A KR20060137919A KR100856129B1 KR 100856129 B1 KR100856129 B1 KR 100856129B1 KR 1020060137919 A KR1020060137919 A KR 1020060137919A KR 20060137919 A KR20060137919 A KR 20060137919A KR 100856129 B1 KR100856129 B1 KR 100856129B1
Authority
KR
South Korea
Prior art keywords
data
error
calculating
bit
ecc
Prior art date
Application number
KR1020060137919A
Other languages
English (en)
Other versions
KR20080062306A (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 KR1020060137919A priority Critical patent/KR100856129B1/ko
Priority to US11/834,844 priority patent/US8091010B2/en
Priority to DE102007058828A priority patent/DE102007058828A1/de
Priority to CNA2007101962579A priority patent/CN101211667A/zh
Priority to JP2007340739A priority patent/JP2008165808A/ja
Publication of KR20080062306A publication Critical patent/KR20080062306A/ko
Application granted granted Critical
Publication of KR100856129B1 publication Critical patent/KR100856129B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning
    • 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • 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

Abstract

오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체 메모리 장치가 개시된다. 본 발명에 따른 에러정정회로는, ECC 인코더 및 ECC 디코더를 구비한다. ECC 인코더는 정보 데이터 및 생성 다항식에 기초하여, h(2이상의 정수) 비트 에러 정정이 가능한 신드롬 데이터를 발생한다. ECC 디코더는 상기 정보 데이터와 상기 신드롬 데이터를 포함하는 부호 데이터에 기초하여, 상기 정보 데이터에서 최대 (h-j)비트들의 오류 위치를 산출하는 단일 모드로 동작할 수 있다. ECC디코더는 상기 정보 데이터와 상기 신드롬 데이터를 포함하는 부호 데이터에 기초하여, 상기 정보 데이터에서 최대 h 비트들의 오류 위치를 산출하는 제1 동작 모드 또는 상기 정보 데이터에서 최대 (h-j) 비트들의 오류 위치를 산출하는 제2 동작 모드로 동작할 수 있다. 본 발명에 의하면, 오정정(miscorrection) 확률이 줄어들어, 데이터의 신뢰성이 향상되는 효과가 있다.

Description

오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체 메모리 장치{Error correction circuit for reducing miscorrection probability, method there-of and semiconductor memory device including the circuit}
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 종래 기술에 따른 오정정 감소를 위한 인코딩 과정을 개략적으로 나타내는 도면이다.
도 2는 종래 기술에 따른 인코딩된 코드의 일 구성예를 나타내는 도면이다.
도 3은 종래 기술에 따른 디코딩 과정을 개략적으로 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 반도체 메모리 장치의 개략적인 구성 블록도이다.
도 5는 본 발명의 다른 일 실시예에 따른 반도체 메모리 장치의 개략적인 구성 블록도이다.
도 6은 본 발명의 실시예에 따른 인코딩 전의 데이터와 인코딩된 데이터의 일 예를 나타내는 도면이다.
도 7은 본 발명의 다른 일 실시예에 따른 반도체 메모리 장치의 구성 블록도 이다.
도 8은 본 발명의 다른 일 실시예에 따른 반도체 메모리 장치의 구성 블록도이다.
도 9는 본 발명의 실시예에 따른 ECC 인코더의 일 구현예를 나타내는 블록도이다.
본 발명은 반도체 메모리 장치에 관한 것으로, 보다 상세하게는 에러 정정 회로(ECC: Error Check/Correction Circuit), 에러 정정 방법 및 상기 에러 정정 회로를 구비하는 반도체 메모리 장치에 관한 것이다.
반도체 메모리 장치의 메모리 용량의 증가에 따라, 결함 메모리 셀의 에러를 복구할 수 있는 에러 정정 회로를 사용하는 것이 필요하다. 통상의 에러 정정 회로는 크게 리던던시 메모리셀 방식의 에러 정정 회로와 ECC 방식의 에러 정정 회로로 나뉠 수 있다.
리던던시 메모리셀 방식의 에러 정정 회로를 갖는 반도체 메모리 장치는 노말(정상) 메모리 셀 및 리던던시(예비) 메모리 셀을 갖는다. 이 방식을 사용하는 반도체 메모리 장치는 결함(에러)이 존재하는 메모리셀을 리던던시 메모리셀로 대체하여 데이터를 기입/독출한다. 이 방식은 DRAM(Dynamic Random Access Memory)에 흔히 사용된다.
한편, ECC 방식 에러 정정 회로를 갖는 반도체 메모리 장치는 데이터 비트들 외에 리던던시 데이터(패리티 데이터 혹은 신드롬 데이터라 함)를 생성하여 저장하고, 추후 패리티 비트들을 이용하여 에러 발생 여부를 판단하여 에러를 정정한다.
ECC 방식 에러 정정 회로는 읽기 전용 메모리 (ROM) 방식 반도체 메모리 장치에 흔히 사용된다. 특히, 전기적으로 소거 및 프로그램이 가능한 메모리셀들(EEPROM cells)을 가지는 플래시 메모리 장치에 많이 사용된다.
그러나, ECC방식의 에러 정정회로는 그 특성상 정정 가능한 범위를 벗어나는 오류가 발생했을 때 오류를 잘못 정정할 경우(오정정, miscorrection이라 함)가 발생할 수 있다. 528바이트 정보 데이터에 대한 5-비트 오류 검출 및 4-비트 오류 정정 ECC(이하 5-bit EDC/4-bit ECC)의 경우를 예로 들면, 6-비트 이상의 오류가 발생할 확률을 P6이라 했을 때, 오정정(miscorrection) 확률은 약 P6×0.0015 정도가 된다. 대부분의 경우 이 정도의 오류정정 능력이면 시스템의 동작에 문제가 없지만, 반도체 메모리 장치의 급격한 열화에 의한 대량의 오류 발생, 전원 불량(power failure)에 의한 다중 버스트 에러(multiple burst error)의 발생 등의 특정한 상황에서는 오정정의 확률은 시스템의 안정성에 아주 중요한 요인으로 작용한다. 따라서 오정정 가능성을 감소시키는 방안이 요구된다.
종래의 기술에서는 오정정 확률을 감소시키기 위해 일반적으로 CRC 데이터를 더 첨가하고 ECC의 오정정을 CRC 데이터로 검출하는 방법을 채택한다.
도 1은 종래 기술에 따른 오정정 감소를 위한 인코딩 과정을 개략적으로 나 타내는 도면이다.
도 1을 참조하면, 종래 기술에 따른 반도체 메모리 장치는 정보 데이터의 인코딩을 위해 CRC 인코더(12) 및 ECC 인코더(14)를 구비한다.
CRC 인코더(12)는 본래의 ECC의 대상이 되는 데이터, 즉 메모리(미도시)에 저장되기 위해 호스트로부터 수신되는 데이터(host write data)의 CRC 데이터(CRC parity)를 구하여 이를 정보 데이터에 추가한다. CRC 데이터(CRC parity)는 도 2에 도시된 바와 같이 16 비트 데이터일 수 있다.
ECC 인코더(14)는 CRC 데이터가 추가된 데이터, 즉 'host write data + CRC parity'에 대해 ECC를 위한 ECC 패리티 데이터(ECC parity, 혹은 신드롬 데이터라 함)를 구한다. ECC 인코더(14)가 4-비트 ECC 인코더인 경우, ECC 패리티 데이터(ECC parity)는 52비트 데이터일 수 있고, 만약 1비트의 이븐 패리티 비트(even parity bit) 혹은 오드 패리티 비트(odd parity bit)가 추가된다면 ECC 패리티 데이터(ECC parity)는 도 2에 도시된 바와 같이 53비트 데이터일 수 있다.
도 2는 종래 기술에 따른 인코딩된 코드의 일 구성예를 나타내는 도면이다. 이를 참조하면, CRC 인코더(12)를 거친 후의 데이터는 '호스트로부터 수신된 데이터(host write data) + CRC 데이터(CRC parity)' 이다. ECC 인코더(14)까지 거친 후의 데이터는 '호스트로부터 수신된 데이터(host write data) + CRC 데이터(CRC parity) + ECC 패리티 데이터(ECC parity)' 이며, 이 데이터가 메모리(미도시)에 저장된다.
도 3은 종래 기술에 따른 디코딩 과정을 개략적으로 나타내는 도면이다.
이를 참조하면, 종래 기술에 따른 반도체 메모리 장치는 데이터의 디코딩을 위해 ECC 디코더(22), CRC 디코더(24) 및 선택기(26)를 구비한다.
종래 기술에 따른 반도체 메모리 장치는 인코딩 과정의 역순, 즉, 메모리로부터 독출된 데이터에 대해 ECC 디코딩을 한 후 CRC 디코딩을 수행한다.
ECC 디코더(22)는 메모리로부터 독출된 데이터에 대해 ECC 디코딩을 수행하여 오류 위치를 검출하고, 검출된 오류 위치에 따라 에러가 발생한 비트를 정정한다. CRC 디코더(24)는 ECC 디코더(22)에 의해 에러 정정된 데이터(corrected data)를 수신하여 CRC 인코더(12)와 동일한 방법으로 CRC 데이터를 생성하고, 생성된 CRC 데이터와 메모리로부터 독출된 CRC 데이터가 동일한지를 비교하여 에러 발생 여부를 판단한다. CRC 디코더(24)는 상기 판단 결과에 따라 패스/페일(pass/fail) 신호를 출력한다.
선택기(26)는 패스/페일(pass/fail) 신호에 응답하여 ECC 디코더(22)로부터 출력되는 에러 정정된 데이터(corrected data)와 미리 설정된 정정불가 에러 데이터(uncorrectable error data) 중 어느 하나를 선택하여, 독출 데이터(host read data)로서 호스트로 출력한다.
상술한 종래 기술에 따른 CRC와 ECC를 결합한 에러 정정 방식의 경우, 5-bit EDC/4-bit ECC의 오정정 확률은 CRC 회로를 사용하지 않은 경우에 비해 P6×0.0015×2-16 수준으로 감소하게 된다. 하지만, 여분의 CRC 회로의 추가로 인해 CRC 코덱(인코더+디코더)의 추가뿐만 아니라 이를 제어하기 위한 제어 로직의 추가가 필연 적으로 뒤따른다. 또한, 인코딩과 디코딩 과정에서 CRC를 수행해야 하므로 이에 따른 여분의 시간(즉, 클럭 싸이클)을 추가로 필요로 한다.
따라서, 하드웨어의 추가 및 에러 정정 시간의 증가를 최소화 하면서 효과적으로 ECC의 오정정 확률을 감소시킬 수 있는 방안이 요구된다.
따라서, 본 발명의 기술적 과제는 상기 하드웨어 추가 및 에러 정정 시간의증가를 줄이고 에러를 잘못 정정하는 오정정(miscorrection) 확률을 줄임으로써 데이터의 신뢰성을 향상시킬 수 있는 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체 메모리 장치를 제공하는 것이다.
상기와 같은 목적을 달성하기 위한 본 발명의 바람직한 일 측면에 따른 에러정정회로는, 정보 데이터 및 생성 다항식에 기초하여, h(2이상의 정수) 비트 에러 정정이 가능한 신드롬 데이터를 발생하는 ECC 인코더 및 상기 정보 데이터와 상기 신드롬 데이터를 포함하는 부호 데이터에 기초하여, 상기 정보 데이터에서 최대 (h-j)비트들의 오류 위치를 산출하는 ECC디코더를 구비한다. 상기 j는 1이상 h 미만의 정수이다.
상기 ECC 디코더는, 상기 부호 데이터를 이용하여 둘 이상의 부분 신드롬들(partial syndroms)을 산출하는 부분 신드롬 생성기, 상기 둘 이상의 부분 신드롬들을 이용하여 오류 위치 방정식의 계수들을 산출하는 계수 산출기, 상기 계수들에 기초하여 상기 오류 위치를 검출하는 에러 위치 검출기, 및 상기 검출된 오류 위치에 기초하여, 상기 부호 데이터를 정정하는 에러 정정기를 구비할 수 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 바람직한 다른 일 측면에 따른 에러정정회로는, 정보 데이터 및 생성 다항식에 기초하여, h(2이상의 정수) 비트 에러 정정이 가능한 신드롬 데이터를 발생하는 ECC 인코더; 및 상기 정보 데이터와 상기 신드롬 데이터를 포함하는 부호 데이터에 기초하여,상기 정보 데이터에서 최대 h 비트들의 오류 위치를 산출하는 제1 동작 모드 또는 상기 정보 데이터에서 최대 (h-j) 비트들의 오류 위치를 산출하는 제2 동작 모드로 동작하는 ECC디코더를 구비한다. 상기 j는 1이상 h 미만의 정수이고, 상기 ECC 디코더는 호스트로부터의 동작 모드 신호에 응답하여 상기 제1 동작 모드 또는 상기 제2 동작 모드로 동작한다.
상기 ECC 디코더는, 상기 동작 모드 신호에 응답하여 동작 모드를 설정하고 제어 신호를 발생하는 모드 설정부; 상기 부호 데이터를 이용하여 둘 이상의 부분 신드롬들(partial syndroms)을 산출하는 부분 신드롬 생성기; 상기 제어 신호에 기초하여, 상기 둘 이상의 부분 신드롬들을 이용하여 제1오류 위치 방정식의 계수들을 산출하거나 또는 제2 오류 위치 방정식의 계수들을 산출하는 계수 산출기; 상기 계수 산출기에서 출력되는 계수들에 기초하여 상기 오류 위치를 검출하는 에러 위치 검출기; 및 상기 검출된 오류 위치에 기초하여, 상기 부호 데이터를 정정하는 에러 정정기를 구비할 수 있다.
본 발명의 바람직한 다른 일 측면에 따른 반도체 메모리 장치는 상기 에러 정정 회로; 및 상기 부호 데이터를 저장하는 메모리 코아를 구비한다. 상기 메모리 코아는 전기적으로 소거 및 프로그램이 가능한 메모리셀들(EEPROM cells)을 포함할 수 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 바람직한 일 측면에 따른 에러정정 방법은, 정보 데이터 및 생성 다항식에 기초하여, h(2이상의 정수) 비트 에러 정정이 가능한 신드롬 데이터를 발생하는 단계; 상기 정보 데이터와 상기 신드롬 데이터를 포함하는 부호 데이터를 메모리에 저장하는 단계; 상기 부호 데이터를 상기 메모리로부터 독출하는 단계; 상기 부호 데이터에 기초하여, 상기 정보 데이터에서 최대 (h-j)비트들의 오류 위치를 검출하는 단계; 및 상기 검출된 오류 위치에 기초하여 상기 부호 데이터를 정정하는 단계를 구비한다. 상기 j는 1이상 h 미만의 정수이다.
상기 오류 위치를 산출하는 단계는, 상기 부호 데이터를 이용하여 둘 이상의 부분 신드롬들(partial syndroms)을 산출하는 단계; 상기 둘 이상의 부분 신드롬들을 이용하여 오류 위치 방정식의 계수들을 산출하는 단계; 및 상기 계수들에 기초하여 상기 오류 위치를 검출하는 단계를 구비할 수 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 바람직한 다른 일 측면에 따른 에러정정 방법은, 정보 데이터 및 생성 다항식에 기초하여, h(2이상의 정수) 비트 에러 정정이 가능한 신드롬 데이터를 발생하는 단계; 상기 정보 데이터와 상기 신드롬 데이터를 포함하는 부호 데이터를 메모리에 저장하는 단계; 상기 부호 데이터를 상기 메모리로부터 독출하는 단계; 설정된 동작 모드에 기초하여, 상기 부호 데이터를 이용하여 상기 정보 데이터에서 최대 (h-j)비트들의 오류 위치(제1 오류 위치라 함)를 산출하거나 상기 정보 데이터에서 최대 h 비트들의 오류 위치(제2 오류 위치라 함)를 산출하는 오류 위치 산출 단계; 및 산출된 상기 제1 오류 위치 또는 상기 제2 오류 위치에 기초하여 상기 부호 데이터를 정정하는 단계를 구비한다. 상기 j는 1이상 h 미만의 정수이다.
상기 오류 위치 산출 단계는, 상기 부호 데이터를 이용하여 둘 이상의 부분 신드롬들(partial syndroms)을 산출하는 단계; 제어 신호에 기초하여, 상기 둘 이상의 부분 신드롬들을 이용하여 제1오류 위치 방정식의 계수들을 산출하거나 또는 제2 오류 위치 방정식의 계수들을 산출하는 단계; 및 상기 제1오류 위치 방정식의 계수들을 이용하여 상기 제1 오류 위치를 산출하거나 상기 제2 오류 위치 방정식의 계수들을 이용하여 상기 제2 오류 위치를 산출하는 단계를 구비할 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 4는 본 발명의 일 실시예에 따른 반도체 메모리 장치의 개략적인 구성 블록도이다.
이를 참조하면, 본 발명의 일실시예에 따른 반도체 메모리 장치(300)는 메모리 코아(310) 및 ECC 회로(420, 430)를 구비한다. ECC 회로(420, 430)는 ECC 인코더(420) 및 ECC 디코더(430)를 포함한다.
ECC 인코더(420)는 호스트(미도시)로부터 수신되는 정보 데이터(WR_DATA) 및 생성 다항식에 기초하여, h(2이상의 정수) 비트 에러 정정이 가능한 신드롬 데이터를 발생한다. 즉, ECC 인코더(420)는 h-비트 ECC 생성 다항식을 사용하여 정보 데이터(WR_DATA)를 인코딩한다. 생성 다항식에 대해서는 후술하기로 한다.
따라서, 정보 데이터 및 신드롬 데이터를 포함하는 인코딩된 데이터가 메모리 코아(310)에 저장된다.
도 6은 본 발명의 실시예에 따른 인코딩 전의 데이터와 인코딩된 데이터의 일 예를 나타내는 도면이다. 이를 참조하면, 인코딩 전의 데이터는 정보 데이터를 의미하고, 인코딩된 데이터는 정보 데이터에 신드롬 데이터가 추가된 데이터로서, 이를 부호 데이터 혹은 ECC 워드라 한다.
메모리 코아(310)는 데이터를 저장하기 위한 메모리셀 어레이를 구비하는 블록이다. 메모리셀 어레이는 플로팅 게이트(floating gate)를 가지는 전기적으로 소거 및 프로그램이 가능한 메모리셀들(EEPROM cells)로 구성될 수 있지만, 이에 한정되는 것은 아니다.
ECC 디코더(430)는 메모리 코아(310)로부터 독출된 부호 데이터를 이용하여오류 위치를 산출한다. 오류 위치란 에러 발생한 비트의 위치를 말한다. ECC 디코더(430)는 또한 산출된 오류 위치에 따라, 에러가 발생한 비트(들)을 정정할 수도 있다. 이 때, ECC 디코더(430)는 최대 (h-j)비트까지 오류 정정을 수행하는 (h-j) 비트 ECC 디코더이다. ECC 디코더(430)는 (h-j+1)비트의 에러를 검출(detection)할 수 있는 디코더일 수 있다. 즉, ECC 디코더(430)는 (h-j)비트 ECC/(h-j+1) 비트 EDC(error detection code) 디코더일 수 있다. 여기서, (h-j)는 1 이상의 정수이고, j는 1이상 h미만의 정수이다. ECC 디코더(430)에 의해 에러 정정된 데이터(RD_DATA)가 호스트(미도시)로 출력된다.
상술한 바와 같이, 본 발명의 일 실시예에 따른 에러 정정회로(420, 430)는 인코딩 시는 h-비트(예컨대, 5-bit) ECC 생성다항식을 사용하여 인코딩을 수행하므로 코드간 거리, 즉 해밍 거리(hamming distance)가 커진 반면, 디코딩을 통한 오류정정은 h 비트보다 적은 비트(예컨대, 4-bit)까지만 수행하므로 오류정정 반경은 줄어든다. 따라서 오정정이 발생할 확률 또한 줄어들게 되며, 이 확률을 구해 보면 5-비트 ECC 인코딩과 4-비트 ECC 디코딩을 사용한 경우, 약 P6×0.0015×2-13 수준이 된다.
도 5는 본 발명의 다른 일 실시예에 따른 반도체 메모리 장치의 개략적인 구성 블록도이다.
이를 참조하면, 본 발명의 다른 일실시예에 따른 반도체 메모리 장치(500)는 메모리 코아(310) 및 ECC 회로(420, 530)를 구비한다. ECC 회로(420, 530)는 ECC 인코더(420) 및 ECC 디코더(530)를 포함한다.
메모리 코아(310) 및 ECC 인코더(420)는 도 4를 참조하여 상술한 바와 동일하므로, 이에 대한 상세한 설명은 생략한다.
ECC 디코더(530)는 호스트로부터 수신되는 동작 모드 신호(MODE)에 응답하여 제1 동작 모드 또는 제2 동작 모드로 동작한다. 제1 동작 모드에서는, ECC 디코더(530)는 메모리 코아(310)로부터 독출된 부호 데이터를 이용하여 최대 h 비트까지의 오류 위치를 산출하고, 산출된 오류 위치에 따라 에러가 발생한 비트(들)을 정정한다. 제2 동작 모드에서는, ECC 디코더(530)는 메모리 코아(310)로부터 독출된 부호 데이터를 이용하여 최대 (h-j) 비트까지의 오류 위치를 산출하고, 산출된 오류 위치에 따라 에러가 발생한 비트(들)을 정정한다. 여기서, (h-j)는 1이상의 정수이고 j는 1 이상 h 미만의 정수이다. 즉, ECC 디코더(530)는 동작 모드 신호(MODE)에 기초하여, h-비트 ECC 디코더 또는 (h-j)-비트 ECC 디코더로 동작한다. ECC 디코더(530)가 (h-j) 비트 ECC 디코더로 동작하는 경우, ECC 디코더(530)의 기능은 상술한 ECC 디코더(430)와 동일하다. ECC 디코더(530)가 h-비트 ECC 디코더로 동작하는 경우, ECC 디코더(530)는 (h+1)비트의 에러를 검출(detection)할 수 있는 디코더일 수 있다. 즉, h-비트 ECC/(h+1)-비트 EDC 디코더일 수 있다.
ECC 디코더(530)에 의해 에러 정정된 데이터(RD_DATA)가 호스트(미도시)로 출력된다.
도 7은 본 발명의 다른 실시예에 따른 반도체 메모리 장치의 구성 블록도이다.
반도체 메모리 장치(500)는 메모리 코아(310), ECC 회로(520), 호스트 인터페이스 및 로직부(330)를 구비한다.
호스트 인터페이스 및 로직부(330)는 호스트(200, 예컨대, 모바일 기기의 컨트롤러, 컴퓨터 장치의 컨트롤러 등)와 메모리 코아 간(310)의 인터페이스를 위한 제어 및 버퍼링 역할을 수행한다.
호스트 인터페이스 및 로직부(330)는 SRAM(Static Random Access Memory, 미 도시)와 같은 메모리를 구비할 수 있다. 이 경우에는, 호스트(200)가 SRAM에 데이터를 기입하면 그 데이터는 ECC 회로(520)에 의해 부호화되어 메모리 코아(310, 예컨대, 플래시 메모리 코아)에 기록되고, 메모리 코아(310)부터 독출된 데이터는 ECC회로(520)에 의해 에러가 검출되고 정정되어 SRAM(미도시)에 저장되고, 호스트(200)는 SRAM(미도시)에 저장된 에러 정정된 데이터를 독출할 수 있다.
호스트 인터페이스 및 로직부(330)는 호스트(200)와 d(2이상의 정수) 비트의 병렬 데이터를 송수신할 수 있다.
ECC 회로(520)는 ECC 래퍼(410), ECC 인코더(420) 및 ECC 디코더(530)를 구비한다.
ECC 래퍼(ECC wrapper, 410)는 호스트 인터페이스 및 로직부(330)를 통해 수신되는 k(2이상의 정수, 예컨대, 4096)비트 정보 데이터에 각 비트가 소정 로직값(예컨대 "0"을 가지는 n-k(1 이상의 정수, 예컨대, 66) 비트의 더미 데이터를 추가하여, 총 n(예컨대, 4096+66=4162) 비트 데이터를 직렬 또는 병렬로 출력한다.
n비트 데이터는 ECC 인코더(420)로 입력된다.
ECC 인코더(420)의 일 구현예가 도 9에 도시된다.
도 9를 참조하면, 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)로 나눈 몫이다.
본 실시예에서는 ECC 인코더(420)가 5-비트 ECC 인코더이고, ECC 디코더(530)는 5-비트 ECC/4-비트 ECC 디코더인 것으로 가정한다. 즉, h는 5이고, j는 1인 경우를 가정한다. 이 경우, (n-k)는 66 이고, G(x)는 66차 다항식, S(x)는 65차 다항식이다.
n비트 부호 데이터는 메모리 코아(310)로 입력된다. 메모리 코아(310)의 셀 어레이 영역은 정보 데이터를 저장하기 위한 영역과, 신드롬 데이터를 저장하기 위한 영역으로 구분될 수도 있다. 또는 정보 데이터 영역과 신드롬 데이터 영역의 구분없이, n비트 부호 데이터가 메모리 셀 어레이에 저장될 수도 있다.
메모리 코아(310)에 저장된 부호 데이터를 외부로 출력하는 경우에는, 메모리 코아(310)로부터 k비트 정보 데이터 및 (n-k)비트 패리터 데이터를 포함하는 n 비트 부호 데이터가 독출되어 ECC 래퍼(410)로 입력된다. 이 때, ECC 래퍼(410)는 n 비트 부호 데이터를 버퍼링하는 역할을 한다.
ECC 디코더(530)는 제1 내지 제5 부분 신드롬 생성기들(partial syndrome generator, 431, 433, 435, 437, 439), 계수 계산기(541), 모드 설정부(551), 에러 위치 검출기(552), 에러 정정기(443)를 구비한다.
ECC 디코더(530)는 또한 도 7에 도시된 바와 같이, 패리티 체커(444)를 더 구비할 수 있다. 패리티 체커(444)는 짝수 패리티 체커(even parity checker)일 수도 있고, 홀수 패리티 체커(odd parity checker)일 수도 있다. ECC 디코더(530)가 패리티 체커(444)를 구비하는 경우에는 ECC 인코더(420)는 부호 데이터에 대한 이븐 패리티 비트(even parity bit) 혹은 오드 패리티 비트(odd parity bit)(이하, 제1 패리티 비트라 함)를 생성하는 패리티 비트 생성기(미도시)를 더 구비한다. 패리티 체커(444)는 메모리 코아(310)로부터 독출되는 부호 데이터에 대하여 이븐 패리티 비트 혹은 오드 패리티 비트(이하, 제2 패리티 비트라 함)를 생성하여 제1 패리티 비트와 비교함으로써, 부호 데이터에 에러가 발생하였는지를 판단할 수 있다.
제1 내지 제5 부분 신드롬 생성기들(431, 433, 435, 437, 439)은 메모리 코아(310)로부터 출력된 n비트 부호 데이터를 각각 자신의 특정 데이터로 나누어 부분 신드롬(S1, S3, S5, S7, S9)을 생성한다.
메모리 코아(310)로부터 출력된 n비트 부호 데이터를 R(x)라 하고, 각 부분 신드롬 생성기(431, 433, 435, 437, 439)의 특정 데이터, 즉 부분 생성 다항식을 각각 m1(x), m3(x), m5(x), m7(x), m9(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)
S9(x) = R(x) % m9(x)
여기서, S1(x), S3(x), S5(x), S7(x) 및 S9(x)는 각각 제1 내지 제5 부분 신드롬 생성기들(431, 433, 435, 437, 439)로부터 생성되는 부분 신드롬(S1, S3, S5, S7, S9)이고, % 는 모듈로(modulo) 연산을 의미한다.
생성 다항식(G(x))과 제1 내지 제5 부분 신드롬 생성기들(431, 433, 435, 437, 439)의 부분 생성 다항식들(m1(x), m3(x), m5(x), m7(x), m9(x))의 관계는 다음의 수학식 3과 같이 결정될 수 있다.
G(x) = m1(x) * m3(x)* m5(x)* m7(x)* m9(x)
여기서, *는 갈로아체 곱셈을 의미한다.
제1 내지 제5 부분 신드롬(S1, S3, S5, S7, S9)이 모두 0이면 부호 데이터에 에러가 없는 것이다. 그렇지 않은 경우, 즉, 제1 내지 제5 부분 신드롬(S1, S3, S5, S7, S9)중 어느 하나라도 0이 아니면 부호 데이터 중 적어도 하나의 비트에 에러가 발생한 것이다.
에러가 발생한 경우에는, 계수 계산기(coefficient calculator, 541)는 모드설정부(551)의 제어 신호(CON)에 응답하여 제1 내지 제5 부분 신드롬(S1, S3, S5, S7, S9)의 전부 혹은 일부를 이용하여 오류 위치 방정식의 계수를 산출한다.
모드 설정부(551)는 호스트로부터 수신되는 동작 모드 신호(MODE)에 응답하여 동작 모드를 설정하고 제어 신호(CON)를 발생한다. 예컨대, 설정된 동작 모드가 제1 동작 모드인 경우, 계수 계산기(541)는 제1 내지 제5 부분 신드롬(S1, S3, S5, S7, S9)을 이용하여 제1 오류 위치 방정식의 계수를 산출한다.
설정된 동작 모드가 제2 동작 모드인 경우, 계수 계산기(541)는 제1 내지 제 4 부분 신드롬(S1, S3, S5, S7)을 이용하여 제2 오류 위치 방정식의 계수를 산출한다.
오류 위치 방정식은 에러 비트의 역수를 근으로 하는 방정식이다.
오류 위치 방정식의 계수들(s1, s2, s3, s4, s5)과 부분 신드롬들(S1, S3, S5, S7, S9)과의 관계는 다양한 알고리즘을 통해 구해질 수 있으며 다음의 수학식 4 내지 5는 그 구해진 관계식의 일 예를 나타낸 것이다.
먼저, 1비트 에러 정정을 위한 오류 위치 방정식의 일 예는 다음의 수학식 4와 같다.
s1x+ 1 = 0
여기서, s1 = S1 이고, 수학식 4의 1차 방정식을 만족하는 근의 역수가 1비트 에러 위치를 나타낸다.
2비트 에러 정정을 위한 오류 위치 방정식의 일 예는 다음의 수학식 5와 같다.
s2x2 + s1x + 1 = 0
여기서, s1 = S1, s2 = (S1 3 + S3)/ S1 이고, 수학식 5의 2차 방정식을 만족하 는 근의 역수가 2비트 에러 위치를 나타낸다.
3비트 이상의 에러 정정의 경우에도, 상술한 바와 유사하게 오류 위치 방정식의 계수들이 산출될 수 있다.
본 실시예에서는, 계수 계산기(541)는 제1 동작 모드에서는 최대 5비트 에러를 정정할 수 있는 제1 오류 위치 방정식에 따른 계수들(s1, s2, s3, s4, s5)을 산출하고, 제2 동작 모드에서는 최대 4비트 에러를 정정할 수 있는 제2 오류 위치 방정식에 따른 계수들(s1, s2, s3, s4)을 산출한다.
에러 위치 검출기(552)는, 계수 계산기(541)에서 산출된 계수들(s1, s2, s3, s4 또는 s1, s2, s3, s4, s5)을 이용하여, 에러 비트들의 위치를 검출한다. 오류 위치는 오류 위치 방정식의 근을 구하면 알 수 있으므로, 각 오류의 개수에 따라 i(예를 들어, i=1, 2, 3, 4, 또는 5)차 오류 위치 방정식을 풀어야 한다.
4차 혹은 5차 오류 위치 방정식의 일반 해를 구하기는 어려우므로, 통상적으로 Chien Search 알고리즘이 많이 사용된다.
Chien Search 알고리즘은 각 비트에 오류가 있는지를 알기 위해 갈로아체의 원소들인 a0, a1, a2, a3, ..., aj (j는 에러가 발생한 비트)에 대해, a-j를 오류 위치 방정식에 대입한 결과가 0이면 해당 비트에 오류가 있는 것으로 0이 아니면 해당 비트에 오류가 없는 것으로 판단하며, 전체 부호 비트들에 대해 위 과정을 차례로 반복하여 해를 구하는 알고리즘이다.
에러 정정기(443)는 에러 위치 검출기(552)의 검출결과(오류 위치)에 기초하여 에러 비트를 정정한다. 에러 정정기(443)는 에러 위치 검출기(552)에서 출력된 오류 위치 정보에 기초하여 부호 데이터(혹은 정보 데이터) 중 에러가 발생한 비트의 로직값을 반전시켜 에러를 정정할 수 있다. 이 때, 에러 정정기(443)는 에러 여부 및 에러 위치의 보다 정확한 판단을 위하여, 패리티 체커(444)의 출력 신호 및 모드 설정부(551)의 출력 신호를 참조할 수 있다.
에러 정정기(443)에 의하여 에러 정정된 데이터는 호스트 인터페이스 및 로직부(330)를 통하여 호스트(200)로 제공된다.
반도체 메모리 장치(500)의 일반적인 동작 환경에서는 90% 이상의 오류들이 1 비트 오류들이고 나머지가 2-비트 이상의 오류들임을 실험적으로 알 수 있다. 따라서, 정상동작 상태에서는 복수의 비트(예컨대, 6-bit) 이상의 오류가 발생할 확률이 지극히 낮으므로 5-bit 에러 정정회로에 의한 오정정은 거의 발생하지 않는다. 따라서, 이러한 정상 동작 상태에서는 호스트(200)는 반도체 메모리 장치(500)를 제1 동작 모드로 동작시키기 위한 동작 모드 신호(MODE)를 발생할 수 있다. 제1 동작 모드에서는, 도 1 내지 도 3에 도시된 종래의 '5-bit EDC/4-bit ECC + CRC-16'의 에러 정정회로 보다 적은 하드웨어의 사용으로도 5-bit 오류정정이 가능하므로 보다 효율적이다.
반면, 반도체 메모리 장치(500)의 열화나 전원 불량(power failure)과 같은 비정상적인 종료로 인한 대량의 오류가 발생할 확률이 의미있는 수준으로 커질 경우 5-bit 오류정정 능력에 의한 오정정 확률 또한 커지게 된다. 이와 같이 비정상적인 동작 환경에서는, 호스트(200)는 반도체 메모리 장치(500)를 제2 동작 모드로 동작시키기 위한 동작 모드 신호(MODE)를 발생할 수 있다. 제2 동작 모드에서는, 5-bit 오류정정은 디스에이블되고 4-bit 오류 정정만 수행된다.
따라서 제2 동작 모드에서는, 상술한 본 발명의 일 실시예와 마찬가지로, 본 발명의 다른 일 실시예에 따른 에러 정정회로(420, 530) 역시 인코딩 시는 h-비트(예컨대, 5-bit) ECC 생성다항식을 사용하여 인코딩을 수행하므로 코드간 거리, 즉 해밍 거리가 커진 반면, 디코딩을 통한 오류정정은 h 비트보다 적은 비트(예컨대, 4-bit)까지만 수행하므로 오류정정 반경은 줄어든다. 따라서 오정정이 발생할 확률 또한 줄어들게 된다.
따라서, 본 발명을 이용하면 종래의 '5-bit EDC/4-bit ECC + CRC-16' 에러정정회로에 비해 적은 하드웨어를 사용하고도 같은 오류정정 능력과 비슷한 수준의 오정정 확률을 가지므로 보다 효율적인 ECC가 가능하다. 더구나, 도 1 내지 도 3에 도시된 종래의 '5-bit EDC/4-bit ECC + CRC-16 '의 에러 정정회로는 리던던시 데이터(CRC parity+ECC parity)가 69비트(16+53)인데 비하여, 본 발명의 실시예에 따른 에러 정정회로는 비슷한 조건에서 리던던시 데이터가 66비트로서 종래 대비 적다.
도 8은 본 발명의 다른 일 실시예에 따른 반도체 메모리 장치의 구성 블록도이다.
반도체 메모리 장치(300)는 메모리 코아(310), ECC 회로(320), 호스트 인터페이스 및 로직부(330)를 구비한다.
ECC 회로(320)는 ECC 래퍼(410), ECC 인코더(420) 및 ECC 디코더(430)를 구 비한다. 메모리 코아(310), 호스트 인터페이스 및 로직부(330), ECC 래퍼(410) 및 ECC 인코더(420)는 도 7을 참조하여 상술한 바와 동일하므로, 이에 대한 상세한 설명은 생략한다.
ECC 디코더(430)는 제1 내지 제4 부분 신드롬 생성기들(431, 433, 435, 437), 계수 계산기(441), 에러 위치 검출기(452) 및 에러 정정기(443)를 구비한다. 도 7에 도시된 ECC 디코더(530)와 비교하면, ECC 디코더(430)는 4비트 ECC 디코더로 동작하므로 제5 부분 신드롬 생성기(439) 및 모드 설정부(551)를 구비할 필요가 없다.
ECC 디코더(530)의 동작은 ECC 디코더(430)가 제2 동작 모드로 동작하는 경우와 유사하므로 이에 대한 상세한 설명은 생략한다.
상술한 실시예들에서는 에러 정정기(443)가 ECC 디코더(430 또는 530) 내에 구비되는 것으로 기술되었으나, 호스트 인터페이스 및 로직부(330)가 ECC 디코더(430 또는 530)에서 제공된 오류 위치 정보에 기초하여 부호 데이터 중 에러가 발생한 비트의 로직값을 반전시켜 에러를 정정할 수 있다. 또는 호스트 인터페이스 및 로직부(330)는 ECC 디코더(430 또는 530)에서 제공된 오류 위치 정보를 메모리 코아(310)에서 독출된 n비트 부호 데이터(혹은 k비트 정보 데이터만)와 함께 호스트(200)로 전송할 수 있다. 이 경우, 에러 정정은 호스트(200)에서 이루어질 수 있다. 즉, 호스트(200)가 ECC 디코더(430 또는 530)에서 제공된 오류 위치 정보에 기초하여 부호 데이터(혹은 정보 데이터) 중 에러가 발생한 비트의 로직값을 반전시켜 에러를 정정할 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능함을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 보호범위는 첨부된 특허청구범위에 의해서만 정해져야 할 것이다.
상술한 바와 같이, 본 발명에 의하면, 하드웨어 추가 및 에러 정정 시간의 증가를 최소화하면서 에러를 잘못 정정하는 오정정(miscorrection) 확률을 줄일 수 있다. 따라서, 데이터의 신뢰성이 향상되는 효과가 있다.

Claims (19)

  1. 정보 데이터 및 생성 다항식에 기초하여, h(2이상의 정수) 비트 에러 정정이 가능한 신드롬 데이터를 발생하는 ECC 인코더; 및
    상기 정보 데이터와 상기 신드롬 데이터를 포함하는 부호 데이터에 기초하여,상기 정보 데이터에서 최대 (h-j)비트들의 오류 위치를 산출하는 ECC 디코더를 구비하며,
    상기 j는 1이상의 h미만의 정수인 에러 정정 회로.
  2. 제 1 항에 있어서,
    상기 j는 1인 것을 특징으로 하는 에러 정정 회로.
  3. 제 2 항에 있어서, 상기 ECC 디코더는
    상기 부호 데이터를 이용하여 둘 이상의 부분 신드롬들(partial syndroms)을 산출하는 부분 신드롬 생성기;
    상기 둘 이상의 부분 신드롬들을 이용하여 오류 위치 방정식의 계수들을 산출하는 계수 산출기; 및
    상기 계수들에 기초하여 상기 오류 위치를 검출하는 에러 위치 검출기를 구비하는 에러 정정 회로.
  4. 제 3 항에 있어서, 상기 ECC 디코더는
    상기 검출된 오류 위치에 기초하여, 상기 부호 데이터를 정정하는 에러 정정기를 더 구비하는 에러 정정 회로.
  5. 제 3 항에 있어서,
    상기 ECC 인코더는
    상기 부호 데이터에 대한 제1 패리티 비트를 생성하는 패리티 비트 생성기를 더 구비하며,
    상기 ECC 디코더는
    상기 부호 데이터를 이용하여 제2 패리티 비트를 생성하고, 상기 제1 패리티 비트와 비교하는 패리티 체커를 더 구비하며,
    상기 제1 및 제2 패리티 비트는 각각 이븐 패리티 비트 또는 오드 패리티 비트인 것을 특징으로 하는 에러 정정 회로.
  6. 제 2 항의 에러 정정 회로; 및
    상기 부호 데이터를 저장하는 메모리 코아를 구비하는 반도체 메모리 장치.
  7. 제 6 항에 있어서, 상기 메모리 코아는
    전기적으로 소거 및 프로그램이 가능한 메모리셀들(EEPROM cells)을 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  8. 제 7 항에 있어서, 상기 반도체 메모리 장치는
    상기 메모리 코아로부터 독출된 상기 부호 데이터 및 상기 오류 위치에 대한 데이터를 호스트로 전송하는 호스트 인터페이스 및 로직부를 더 구비하며,
    상기 호스트는 상기 산출된 오류 위치에 기초하여 상기 부호 데이터를 정정하는 것을 특징으로 하는 반도체 메모리 장치.
  9. 정보 데이터 및 생성 다항식에 기초하여, h(2이상의 정수) 비트 에러 정정이 가능한 신드롬 데이터를 발생하는 ECC 인코더; 및
    상기 정보 데이터와 상기 신드롬 데이터를 포함하는 부호 데이터에 기초하여,상기 정보 데이터에서 최대 h 비트들의 오류 위치를 산출하는 제1 동작 모드 또는 상기 정보 데이터에서 최대 (h-j) 비트들의 오류 위치를 산출하는 제2 동작 모드로 동작하는 ECC디코더를 구비하며,
    상기 j는 1이상 h 미만의 정수이고,
    상기 ECC 디코더는 호스트로부터의 동작 모드 신호에 응답하여 상기 제1 동작 모드 또는 상기 제2 동작 모드로 동작하는 에러 정정 회로.
  10. 제 9 항에 있어서,
    상기 j는 1인 것을 특징으로 하는 에러 정정 회로.
  11. 제 10 항에 있어서, 상기 ECC 디코더는
    상기 동작 모드 신호에 응답하여 동작 모드를 설정하고 제어 신호를 발생하는 모드 설정부;
    상기 부호 데이터를 이용하여 둘 이상의 부분 신드롬들(partial syndroms)을 산출하는 부분 신드롬 생성기;
    상기 제어 신호에 기초하여, 상기 둘 이상의 부분 신드롬들을 이용하여 제1오류 위치 방정식의 계수들을 산출하거나 또는 제2 오류 위치 방정식의 계수들을 산출하는 계수 산출기; 및
    상기 계수 산출기에서 출력되는 계수들에 기초하여 상기 오류 위치를 검출하는 에러 위치 검출기를 구비하는 에러 정정 회로.
  12. 제 11 항에 있어서, 상기 ECC 디코더는
    상기 검출된 오류 위치에 기초하여, 상기 부호 데이터를 정정하는 에러 정정기를 더 구비하는 에러 정정 회로.
  13. 제 10 항의 에러 정정 회로; 및
    상기 부호 데이터를 저장하는 메모리 코아를 구비하는 반도체 메모리 장치.
  14. 제 13 항에 있어서, 상기 메모리 코아는
    전기적으로 소거 및 프로그램이 가능한 메모리셀들(EEPROM cells)을 포함하 는 것을 특징으로 하는 반도체 메모리 장치.
  15. 정보 데이터 및 생성 다항식에 기초하여, h(2이상의 정수) 비트 에러 정정이 가능한 신드롬 데이터를 발생하는 단계;
    상기 정보 데이터와 상기 신드롬 데이터를 포함하는 부호 데이터를 메모리에 저장하는 단계;
    상기 부호 데이터를 상기 메모리로부터 독출하는 단계;
    상기 부호 데이터에 기초하여, 상기 정보 데이터에서 최대 (h-j)비트들의 오류 위치를 검출하는 단계; 및
    상기 검출된 오류 위치에 기초하여 상기 부호 데이터를 정정하는 단계를 구비하며,
    상기 j는 1이상 h 미만의 정수인 에러 정정 방법.
  16. 제 15 항에 있어서, 상기 오류 위치를 산출하는 단계는
    상기 부호 데이터를 이용하여 둘 이상의 부분 신드롬들(partial syndroms)을 산출하는 단계;
    상기 둘 이상의 부분 신드롬들을 이용하여 오류 위치 방정식의 계수들을 산출하는 단계; 및
    상기 계수들에 기초하여 상기 오류 위치를 검출하는 단계를 구비하는 에러 정정 방법.
  17. 정보 데이터 및 생성 다항식에 기초하여, h(2이상의 정수) 비트 에러 정정이 가능한 신드롬 데이터를 발생하는 단계;
    상기 정보 데이터와 상기 신드롬 데이터를 포함하는 부호 데이터를 메모리에 저장하는 단계;
    상기 부호 데이터를 상기 메모리로부터 독출하는 단계;
    설정된 동작 모드에 기초하여, 상기 부호 데이터를 이용하여 상기 정보 데이터에서 최대 (h-j)비트들의 오류 위치(제1 오류 위치라 함)를 산출하거나 상기 정보 데이터에서 최대 h 비트들의 오류 위치(제2 오류 위치라 함)를 산출하는 오류 위치 산출 단계; 및
    산출된 상기 제1 오류 위치 또는 상기 제2 오류 위치에 기초하여 상기 부호 데이터를 정정하는 단계를 구비하며,
    상기 j는 1이상 h 미만의 정수인 에러 정정 방법.
  18. 제 17 항에 있어서, 상기 오류 위치 산출 단계는
    상기 부호 데이터를 이용하여 둘 이상의 부분 신드롬들(partial syndroms)을 산출하는 단계;
    제어 신호에 기초하여, 상기 둘 이상의 부분 신드롬들을 이용하여 제1오류 위치 방정식의 계수들을 산출하거나 또는 제2 오류 위치 방정식의 계수들을 산출하는 단계; 및
    상기 제1오류 위치 방정식의 계수들을 이용하여 상기 제1 오류 위치를 산출하거나 상기 제2 오류 위치 방정식의 계수들을 이용하여 상기 제2 오류 위치를 산출하는 단계를 구비하는 에러 정정 방법.
  19. 제 18 항에 있어서, 상기 오류 위치 산출 단계는
    호스트로부터의 동작 모드 신호에 응답하여 상기 동작 모드를 설정하고, 상기 제어 신호를 발생하는 단계를 더 구비하는 에러 정정 방법.
KR1020060137919A 2006-12-29 2006-12-29 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치 KR100856129B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020060137919A KR100856129B1 (ko) 2006-12-29 2006-12-29 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치
US11/834,844 US8091010B2 (en) 2006-12-29 2007-08-07 Error correction circuit and method for reducing miscorrection probability and semiconductor memory device including the circuit
DE102007058828A DE102007058828A1 (de) 2006-12-29 2007-11-28 Speicherbauelement und Fehlerkorrekturverfahren
CNA2007101962579A CN101211667A (zh) 2006-12-29 2007-11-30 降低误纠概率的纠错电路和方法和包括该电路的存储设备
JP2007340739A JP2008165808A (ja) 2006-12-29 2007-12-28 誤り訂正確率を減らすエラー訂正回路、その方法及び前記回路を備える半導体メモリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060137919A KR100856129B1 (ko) 2006-12-29 2006-12-29 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치

Publications (2)

Publication Number Publication Date
KR20080062306A KR20080062306A (ko) 2008-07-03
KR100856129B1 true KR100856129B1 (ko) 2008-09-03

Family

ID=39465957

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060137919A KR100856129B1 (ko) 2006-12-29 2006-12-29 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치

Country Status (5)

Country Link
US (1) US8091010B2 (ko)
JP (1) JP2008165808A (ko)
KR (1) KR100856129B1 (ko)
CN (1) CN101211667A (ko)
DE (1) DE102007058828A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106205663A (zh) * 2015-06-01 2016-12-07 三星电子株式会社 半导体存储器设备、存储器系统及错误校正的方法

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005012069A1 (de) * 2005-03-16 2006-09-21 Robert Bosch Gmbh Verfahren zur Fehlerbehandlung
KR101437396B1 (ko) * 2008-02-27 2014-09-05 삼성전자주식회사 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법
JP4672743B2 (ja) * 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
US8458536B2 (en) 2008-07-17 2013-06-04 Marvell World Trade Ltd. Data recovery in solid state memory devices
TWI396202B (zh) * 2008-11-14 2013-05-11 Phison Electronics Corp 錯誤校正控制器及其快閃記憶體晶片系統與錯誤校正方法
US8468417B2 (en) 2009-02-18 2013-06-18 Micron Technology, Inc. Data integrity in memory controllers and methods
JP5303325B2 (ja) * 2009-03-18 2013-10-02 ルネサスエレクトロニクス株式会社 データ処理装置
KR20100104623A (ko) * 2009-03-18 2010-09-29 삼성전자주식회사 데이터 처리 시스템 및 그것의 부호율 제어 스킴
CN101794623B (zh) * 2009-06-01 2013-11-06 深圳市朗科科技股份有限公司 存储设备的纠错装置及方法
KR101062755B1 (ko) * 2009-07-29 2011-09-06 주식회사 하이닉스반도체 Ecc 회로를 포함하는 반도체 메모리 시스템 및 그 제어 방법
US8413015B2 (en) * 2009-09-21 2013-04-02 Sandisk Technologies Inc. Nonvolatile memory controller with scalable pipelined error correction
KR101678404B1 (ko) * 2010-02-25 2016-11-23 삼성전자주식회사 사전 확률 정보를 사용하는 메모리 시스템 및 그것의 데이터 처리 방법
CN102682826A (zh) * 2011-03-10 2012-09-19 中国科学院微电子研究所 复用编码器的编译码存储装置及方法
JP2013029882A (ja) * 2011-07-26 2013-02-07 Toshiba Corp メモリコントローラ、半導体記憶装置および復号方法
US20140136931A1 (en) * 2011-08-24 2014-05-15 Mitsubishi Electric Corporation Error-correcting decoder
US8924815B2 (en) * 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
KR101307792B1 (ko) * 2011-12-27 2013-09-12 한국과학기술원 다중-쓰레드 비씨에이치 인코더, 비씨에이치 디코더, 이를 포함하는 스토리지 디바이스 및 스토리지 시스템
US8996960B1 (en) * 2012-06-26 2015-03-31 Inphi Corporation Vertical error correction code for DRAM memory
JP2014082574A (ja) * 2012-10-15 2014-05-08 Samsung Electronics Co Ltd 誤り検出訂正回路、及びメモリ装置
US9300329B2 (en) 2012-11-08 2016-03-29 Sk Hynix Memory Solutions Inc. Turbo-product codes (TPC) with interleaving
US8996966B2 (en) 2013-02-27 2015-03-31 Kabushiki Kaisha Toshiba Error correction device and error correction method
CN105190766A (zh) 2013-03-25 2015-12-23 惠普发展公司,有限责任合伙企业 具有错误纠正逻辑的存储器设备
US9559727B1 (en) 2014-07-17 2017-01-31 Sk Hynix Memory Solutions Inc. Stopping rules for turbo product codes
CN104616698A (zh) * 2015-01-28 2015-05-13 山东华翼微电子技术股份有限公司 一种充分利用存储器冗余单元的方法
US9690517B2 (en) * 2015-05-22 2017-06-27 Texas Instruments Incorporated Dual-mode error-correction code/write-once memory codec
US10522237B2 (en) 2015-08-07 2019-12-31 Mentor Graphics Corporation Low power VLSI designs using circuit failure in sequential cells as low voltage check for limit of operation
CN105161137B (zh) * 2015-08-27 2019-04-19 大唐微电子技术有限公司 一种MLC架构中Nand Flash控制器电路实现装置
KR102281751B1 (ko) * 2015-10-01 2021-07-27 에스케이하이닉스 주식회사 플래시 메모리 시스템 동작 방법
US10848271B2 (en) * 2016-08-01 2020-11-24 Sony Semiconductor Solutions Corporation Communication unit and communication system
US9966125B2 (en) 2016-09-15 2018-05-08 Toshiba Memory Corporation Memory device
US10169126B2 (en) * 2016-10-12 2019-01-01 Samsung Electronics Co., Ltd. Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation
US10312944B2 (en) * 2017-03-17 2019-06-04 Micron Technology, Inc. Error correction code (ECC) operations in memory for providing redundant error correction
US10236913B2 (en) * 2017-05-11 2019-03-19 Winbond Electronics Corp. Error checking and correcting decoder
TWI625620B (zh) * 2017-05-12 2018-06-01 威盛電子股份有限公司 非揮發性記憶體裝置及其讀取方法
KR102258140B1 (ko) 2017-07-06 2021-05-28 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템
US10417086B2 (en) * 2017-08-11 2019-09-17 Winbond Electronics Corp. Data write method and memory storage device using the same
US10908995B2 (en) 2017-09-29 2021-02-02 Nvidia Corporation Securing against errors in an error correcting code (ECC) implemented in an automotive system
DE102018123761A1 (de) * 2017-09-29 2019-04-04 Nvidia Corporation Sicherung gegen fehler in einem fehlerkorrekturcode (ecc), der in einem kraftfahrzeugsystem implementiert ist
JP6861611B2 (ja) * 2017-11-07 2021-04-21 ルネサスエレクトロニクス株式会社 半導体装置及びそれを備えた半導体システム
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US11315654B2 (en) * 2018-10-03 2022-04-26 Arm Limited Memory testing techniques
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US10839935B2 (en) 2019-02-05 2020-11-17 International Business Machines Corporation Dynamic redundancy for memory
JP2020150515A (ja) 2019-03-15 2020-09-17 キオクシア株式会社 誤り訂正回路及びメモリシステム
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
EP3835960A3 (en) * 2019-12-11 2021-09-01 Samsung Electronics Co., Ltd. Storage controller for correcting error, storage device including the same, and operating method thereof
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11379447B2 (en) 2020-02-06 2022-07-05 Alibaba Group Holding Limited Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller
US11200114B2 (en) * 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11449386B2 (en) 2020-03-20 2022-09-20 Alibaba Group Holding Limited Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory
CN111510158B (zh) * 2020-04-15 2021-10-15 腾讯科技(深圳)有限公司 量子电路的容错纠错解码方法、装置及芯片
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11301173B2 (en) 2020-04-20 2022-04-12 Alibaba Group Holding Limited Method and system for facilitating evaluation of data access frequency and allocation of storage device resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
CN114203228B (zh) * 2020-09-18 2023-09-15 长鑫存储技术有限公司 存储器
US11327836B1 (en) 2020-09-29 2022-05-10 Xilinx, Inc. Protection of data on a data path in a memory system
CN112564858B (zh) * 2020-11-05 2022-08-09 山东中科泰岳电子科技有限公司 卫星导航用crc纠错方法及系统
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0142277B1 (ko) * 1993-12-28 1998-07-01 사또 후미오 메모리 시스템
KR100202654B1 (ko) 1996-03-29 1999-06-15 구본준 플레쉬 셀 메모리 디바이스 장치
KR19990078064A (ko) * 1998-03-19 1999-10-25 가네코 히사시 에러정정 코드 발생회로, 메모리 회로, 전환회로, 에러검출 플래그 레지스터, 테스트 모드 레지스터

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62194745A (ja) * 1986-02-20 1987-08-27 Nec Corp 誤り訂正回路
JPH02112032A (ja) * 1988-10-21 1990-04-24 Alpine Electron Inc Cd−romのエラー訂正方法
JP2721099B2 (ja) 1991-12-18 1998-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション エラーバースト修正のための試行錯誤方法及びマルチバイトエラーの修正方法
FR2751810B1 (fr) * 1996-07-23 1998-10-23 Sgs Thomson Microelectronics Systeme de correction d'erreurs dans des trames de donnees ayant des codes de parite horizontaux et verticaux
US6216247B1 (en) * 1998-05-29 2001-04-10 Intel Corporation 32-bit mode for a 64-bit ECC capable memory subsystem
JP2000261326A (ja) 1999-03-11 2000-09-22 Mitsubishi Electric Corp 符号誤り訂正方法
JP3975245B2 (ja) * 1999-12-16 2007-09-12 株式会社ルネサステクノロジ 記録再生装置および半導体メモリ
CN100557984C (zh) * 2001-05-16 2009-11-04 皇家菲利浦电子有限公司 编码和解码事前部分地已知的信息
JP2005242797A (ja) 2004-02-27 2005-09-08 Oki Electric Ind Co Ltd エラー訂正回路
KR100842680B1 (ko) * 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0142277B1 (ko) * 1993-12-28 1998-07-01 사또 후미오 메모리 시스템
KR100202654B1 (ko) 1996-03-29 1999-06-15 구본준 플레쉬 셀 메모리 디바이스 장치
KR19990078064A (ko) * 1998-03-19 1999-10-25 가네코 히사시 에러정정 코드 발생회로, 메모리 회로, 전환회로, 에러검출 플래그 레지스터, 테스트 모드 레지스터

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106205663A (zh) * 2015-06-01 2016-12-07 三星电子株式会社 半导体存储器设备、存储器系统及错误校正的方法
CN106205663B (zh) * 2015-06-01 2020-12-15 三星电子株式会社 半导体存储器设备、存储器系统及错误校正的方法

Also Published As

Publication number Publication date
KR20080062306A (ko) 2008-07-03
US20080163033A1 (en) 2008-07-03
US8091010B2 (en) 2012-01-03
DE102007058828A1 (de) 2008-07-03
JP2008165808A (ja) 2008-07-17
CN101211667A (zh) 2008-07-02

Similar Documents

Publication Publication Date Title
KR100856129B1 (ko) 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치
KR100833600B1 (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
KR100921263B1 (ko) 반도체 기억 장치 및 디코드 방법
US11740960B2 (en) Detection and correction of data bit errors using error correction codes
US8713407B2 (en) Semiconductor memory system having ECC circuit and controlling method thereof
US10635528B2 (en) Memory controller and method of controlling memory controller
US20100299575A1 (en) Method and system for detection and correction of phased-burst errors, erasures, symbol errors, and bit errors in a received symbol string
US20130318423A1 (en) Mis-correction and no-correction rates for error control
US10243588B2 (en) Error correction code (ECC) decoders sharing logic operations, memory controllers including the error correction code decoders, and methods of decoding error correction codes
JP4790790B2 (ja) 誤り検出訂正回路及び半導体メモリ
JPS6349245B2 (ko)
US10514980B2 (en) Encoding method and memory storage apparatus using the same
US20230274787A1 (en) Method to increase the usable word width of a memory providing an error correction scheme
TWI698881B (zh) 編碼方法及使用所述編碼方法的記憶體儲存裝置
CN110908827A (zh) 用于NAND Flash闪存纠错的并行BCH解码方法
US9160370B2 (en) Single component correcting ECC using a reducible polynomial with GF(2) coefficients
CN116054842A (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: 20110729

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee