KR102629457B1 - 반도체 메모리 장치, 제어 장치, 및 메모리 시스템 - Google Patents

반도체 메모리 장치, 제어 장치, 및 메모리 시스템 Download PDF

Info

Publication number
KR102629457B1
KR102629457B1 KR1020180134888A KR20180134888A KR102629457B1 KR 102629457 B1 KR102629457 B1 KR 102629457B1 KR 1020180134888 A KR1020180134888 A KR 1020180134888A KR 20180134888 A KR20180134888 A KR 20180134888A KR 102629457 B1 KR102629457 B1 KR 102629457B1
Authority
KR
South Korea
Prior art keywords
error
syndrome
bit
plural
bit data
Prior art date
Application number
KR1020180134888A
Other languages
English (en)
Other versions
KR20200047244A (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 US16/372,047 priority Critical patent/US10824507B2/en
Priority to SG10201904708RA priority patent/SG10201904708RA/en
Priority to CN201910481581.8A priority patent/CN111092620B/zh
Publication of KR20200047244A publication Critical patent/KR20200047244A/ko
Priority to US17/029,912 priority patent/US11200117B2/en
Application granted granted Critical
Publication of KR102629457B1 publication Critical patent/KR102629457B1/ko

Links

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
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • 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
    • 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
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • 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
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • 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

반도체 메모리 장치, 제어 장치, 및 메모리 시스템이 개시된다. 반도체 메모리 장치는 로우 어드레스를 디코딩하여 복수개의 워드 라인 선택신호들을 발생하는 로우 디코더, 컬럼 어드레스를 디코딩하여 복수개의 컬럼 선택신호들을 발생하는 컬럼 디코더, 복수개의 메모리 셀들을 포함하고, 복수개의 메모리 셀들이 복수개의 워드 라인 선택신호들 및 복수개의 컬럼 선택신호들에 응답하여 선택되는 메모리 셀 어레이, 및 리드 동작 시에 메모리 셀 어레이의 선택된 메모리 셀들로부터 출력되는 복수 비트 데이터 및 복수 비트 데이터에 대한 소정 비트 패리티를 입력하여 신드롬을 생성하고, 신드롬이 나타내는 에러의 형태에 기초하여 디코딩 상태 플래그를 생성하는 에러 정정 코드 디코더를 포함한다.

Description

반도체 메모리 장치, 제어 장치, 및 메모리 시스템{SEMICONDUCTOR MEMORY DEVICE, CONTROL UNIT, AND MEMORY SYSTEM}
본 발명은 반도체 메모리 장치, 제어 장치, 및 메모리 시스템에 관한 것이다.
메모리 시스템은 반도체 메모리 장치 및 제어 장치를 포함할 수 있다. 일반적으로, 반도체 메모리 장치 및 제어 장치는 각각 정해진 하나의 에러 정정 코드(Error Correcting Code) 디코딩 동작을 수행할 수 있다. 예를 들면, 반도체 메모리 장치는 1비트 에러 검출 및 1비트 에러 정정 동작을 수행하고, 제어 장치는 3비트 에러 검출 동작만 수행하거나 1비트 에러 정정 및 2비트 에러 검출 동작만 수행할 수 있다.
본 개시에 따른 실시예들의 과제는 에러의 형태에 따른 디코딩 상태 플래그를 발생하고, 디코딩 상태 플래그에 기초하여 서로 다른 에러 정정 코드 디코딩 동작을 선택적으로 수행할 수 있는 반도체 메모리 장치, 제어 장치, 및 메모리 시스템을 제공하는데 있다.
본 개시에 따른 실시예들의 과제는 이상에서 언급한 과제에 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 개시에 따른 실시예들의 반도체 메모리 장치는 로우 어드레스를 디코딩하여 복수개의 워드 라인 선택신호들을 발생하는 로우 디코더; 컬럼 어드레스를 디코딩하여 복수개의 컬럼 선택신호들을 발생하는 컬럼 디코더; 복수개의 메모리 셀들을 포함하고, 상기 복수개의 메모리 셀들이 상기 복수개의 워드 라인 선택신호들 및 상기 복수개의 컬럼 선택신호들에 응답하여 선택되는 메모리 셀 어레이; 및 리드 동작 시에 상기 메모리 셀 어레이의 선택된 메모리 셀들로부터 출력되는 복수 비트 데이터 및 상기 복수 비트 데이터에 대한 소정 비트 패리티를 입력하여 신드롬을 생성하고, 상기 신드롬이 나타내는 에러의 형태에 기초하여 디코딩 상태 플래그를 생성하는 에러 정정 코드(Error Correcting Code: ECC) 디코더를 구비할 수 있다.
본 개시에 따른 실시예들의 제어 장치는 외부로부터 인가되는 디코딩 상태 플래그 신호에 응답하여 외부로부터 인가되는 복수 비트 데이터에 대한 제1 에러 정정 코드(Error Correcting Code: ECC) 디코딩 동작을 수행하거나, 제2 ECC 디코딩 동작을 수행하여 상기 복수 비트 데이터 및 상기 복수 비트 데이터에 대한 에러 신호를 발생하는 ECC 디코더; 및 상기 복수 비트 데이터 및 상기 에러 신호를 수신하고, 상기 복수 비트 데이터에 대한 데이터 처리 동작을 수행하는 데이터 처리부를 구비할 수 있다.
본 개시에 따른 실시예들의 메모리 시스템은 복수개의 메모리 셀들을 포함하고, 상기 복수개의 메모리 셀들이 복수개의 워드 라인 선택신호들 및 복수개의 컬럼 선택신호들에 응답하여 선택되는 메모리 셀 어레이, 및 리드 동작 시에 상기 메모리 셀 어레이의 선택된 메모리 셀들로부터 출력되는 복수 비트 데이터 및 상기 복수 비트 데이터에 대한 소정 비트 패리티를 입력하여 신드롬을 생성하고, 상기 신드롬이 나타내는 에러의 형태에 기초하여 디코딩 상태 플래그를 생성하는 제1 ECC(Error Correcting Code: ECC) 디코더를 구비하는 반도체 메모리 장치; 및 상기 반도체 메모리 장치로부터 인가되는 상기 디코딩 상태 플래그 신호에 응답하여 상기 반도체 메모리 장치로부터 인가되는 상기 복수 비트 데이터에 대한 제1 ECC 디코딩 동작 또는 제2 ECC 디코딩 동작을 수행하는 제2 ECC 디코더를 구비하는 제어 장치를 구비할 수 있다.
본 개시에 따른 실시예들에 따르면, 반도체 메모리 장치는 에러의 형태에 따른 디코딩 상태 플래그를 발생하고, 제어 장치는 디코딩 상태 플래그에 기초하여 서로 다른 에러 정정 코드(Error Correcting Code) 디코딩 동작을 수행할 수 있다. 따라서, 메모리 시스템은 ECC 디코딩 동작을 효율적으로 수행할 수 있으며, 신뢰성이 향상될 수 있다.
도 1은 본 개시에 따른 실시예의 반도체 메모리 장치의 블록도이다.
도 2는 본 개시에 따른 실시예의 에러 정정 코드(Error Correcting Code: ECC) 엔코더를 나타내는 도면이다.
도 3은 본 개시에 따른 실시예의 제1 패리티 발생기의 패리티 연산을 설명하기 위한 도면이다.
도 4는 본 개시에 따른 실시예의 ECC 디코더의 구성을 나타내는 도면이다.
도 5는 본 개시에 따른 실시예의 제1 신드롬 발생기의 신드롬 연산을 설명하기 위한 도면이다.
도 6은 본 개시에 따른 실시예의 메모리 시스템을 나타내는 블록도이다.
도 7은 본 개시에 따른 실시예의 ECC 디코더의 구성을 나타내는 블록도이다.
도 8은 본 개시에 따른 실시예의 제1 ECC 디코딩부를 나타내는 도면이다.
도 9는 본 개시에 따른 실시예의 제2 신드롬 발생기의 신드롬 연산을 설명하기 위한 도면이다.
도 10은 본 개시에 따른 실시예의 제2 ECC 디코딩부를 나타내는 도면이다.
도 11은 본 개시에 따른 실시예의 ECC 디코더의 구성을 나타내는 블록도이다.
이하, 첨부된 도면을 참고로 하여 본 개시에 따른 실시예들의 반도체 메모리 장치, 제어 장치, 및 메모리 시스템을 설명하면 다음과 같다.
도 1은 본 개시에 따른 실시예의 반도체 메모리 장치의 블록도로서, 반도체 메모리 장치(100)는 명령 및 어드레스 발생기(10), 로우 어드레스 발생기(12), 컬럼 어드레스 발생기(14), 로우 디코더(16), 컬럼 디코더(18), 메모리 셀 어레이(20), 제1 에러 정정 코드(Error Correcting Code: ECC) 엔코더(22), 제1 ECC 디코더(24), 데이터 라이트 경로부(26), 및 데이터 리드 경로부(28)를 포함할 수 있다.
도 1에 나타낸 블록들 각각의 기능을 설명하면 다음과 같다.
명령 및 어드레스 발생기(10)는 명령 및 어드레스(CA)에 포함된 명령 신호를 디코딩하여 액티브 명령(ACT), 라이트 명령(WR), 또는 리드 명령(RD)을 발생하고, 명령 및 어드레스(CA)에 포함된 어드레스 신호를 로우 어드레스(RADD), 또는 컬럼 어드레스(CADD)로 발생할 수 있다. 액티브 명령(ACT)과 함께 로우 어드레스(RADD)가 발생되고, 라이트 명령(WR) 또는 리드 명령(RD)과 함께 컬럼 어드레스(CADD)가 발생될 수 있다.
로우 어드레스 발생기(12)는 로우 어드레스(RADD)를 입력하여 로우 어드레스 신호(ra)를 발생할 수 있다.
컬럼 어드레스 발생기(14)는 컬럼 어드레스(CADD)를 입력하여 컬럼 어드레스 신호(ca)를 발생할 수 있다.
로우 디코더(16)는 로우 어드레스 신호(ra)를 디코딩하여 복수개의 워드라인 선택신호들(wl)을 발생할 수 있다.
컬럼 디코더(18)는 컬럼 어드레스 신호(ca)를 디코딩하여 복수개의 컬럼 선택신호들(csl)을 발생할 수 있다.
메모리 셀 어레이(20)는 복수개의 메모리 셀들(미도시)을 포함하고, 라이트 명령(WR)에 응답하여 라이트 동작 시에 복수개의 워드라인 선택신호들(wl) 및 복수개의 컬럼 선택신호들(csl)에 의해서 선택된 메모리 셀들로 데이터 및 데이터의 패리티(di)를 저장하고, 리드 명령(RD)에 응답하여 리드 동작 시에 선택된 메모리 셀들로부터 데이터 및 데이터의 패리티(do)를 출력할 수 있다. 예를 들면, 메모리 셀 어레이(20)는 16n비트 데이터와 j비트 패리티(do)를 저장하거나 출력할 수 있다.
제1 ECC 엔코더(22)는 데이터(DI)를 입력하여 데이터의 패리티를 생성하고 데이터 및 데이터의 패리티(di)를 출력할 수 있다. 예를 들면, 제1 ECC 엔코더(22)는 16n비트 데이터 및 16n비트 데이터에 대한 j비트 패리티(di)를 발생할 수 있다.
제2 ECC 디코더(24)는 데이터 및 데이터의 패리티(do)를 입력하여 신드롬을 생성하고, 신드롬을 이용하여 에러의 형태에 기초하여 디코딩 상태 플래그(Decoding Status Flag: DSF)를 생성할 수 있다. 여기에서, 에러의 형태에는 논-에러(Non-Error: NE), 정정가능한 에러(Correctable Error: CE), 또는 정정불가능한 에러(Uncorrectable Error: UE)가 있을 수 있다. 예를 들면, ECC 디코더(24)는 논-에러(NE) 또는 정정가능한 에러(CE)이면 DSF를 “0”으로, 정정불가능한 에러(UE)이면 DSF를 “1”로 설정하여 DSF를 발생할 수 있다. 제2 ECC 디코더(24)는 16n비트 데이터 및 1비트 DSF를 직렬 또는 병렬로 발생할 수 있다. 제2 ECC 디코더(24)는 정정가능한 에러(CE)이면, 예를 들면, 1비트 에러이면, 16n비트 데이터 및 j비트 패리티(do)에 포함된 에러를 정정하고 16n비트 데이터 및 “0”의 DSF를 발생할 수 있다.
데이터 라이트 경로부(26)는 데이터(DQ)를 순차적으로 직렬로 입력하여 병렬로 출력할 수 있다. 예를 들면, 데이터 라이트 경로부(26)는 n비트 데이터를 16회 직렬로 입력하여 16n비트 데이터를 발생할 수 있다.
데이터 리드 경로부(28)는 데이터(DO)를 입력하여 순차적으로 직렬로 출력할 수 있다. 예를 들면, 데이터 리드 경로부(28)는 16n비트 데이터를 병렬로 입력하여 n비트 데이터를 16회 직렬로 출력할 수 있다. 또한, 데이터 리드 경로부(28)는 1비트 DSF를 n비트 데이터를 전송하는 데이터 단자들(미도시) 중 하나의 단자를 통하여 직렬로 전송하거나, 별도의 단자(미도시)를 통하여 n비트 데이터와 병렬로 전송할 수 있다.
도시하지는 않았지만, 본 개시에 따른 실시예의 반도체 메모리 장치(100)는 버스트 길이(burst length: BL)가 16으로 설정되어, n비트 데이터를 n개의 데이터 단자들(미도시)을 통하여 16회 순차적으로 직렬로 입출력할 수 있다.
도 2는 본 개시에 따른 실시예의 제1 ECC 엔코더(22)를 나타내는 도면으로, 제1 ECC 엔코더(22)는 제1 패리티 발생기(32)를 포함할 수 있다.
도 2를 참조하면, 제1 패리티 발생기(32)는 데이터 라이트 경로부(26)로부터 인가되는 데이터(DI)를 입력하여 데이터 및 데이터의 패리티(di)를 발생할 수 있다. 예를 들면, 제1 패리티 발생기(32)는 제1 H 매트릭스와 16n비트 데이터를 이용하여 j비트 패리티를 발생할 수 있다.
도 3은 본 개시에 따른 실시예의 제1 패리티 발생기(32)의 패리티 연산을 설명하기 위한 도면으로, n, j가 각각 8인 경우의 패리티 연산을 설명하기 위한 것이다.
도 3을 참조하면, 제1 H 매트릭스(H)는 8×136 매트릭스이고, 128비트 데이터 및 8비트 제1 패리티의 매트릭스(R)는 136×1 매트릭스일 수 있다. 제1 H 매트릭스(H)는 136개의 열 벡터들(C1 ~ C136)의 코드들(h11 ~ h81, h12 ~ h82, ?, h1128 ~ h8128, 10...0, 01...0, 및 00...1)은 모두 "0"인 코드를 제외한 "0"과 "1"을 포함하는 서로 다른 코드들을 가질 수 있다. 또한, 제1 H 매트릭스(H)는 행 벡터들(R1 ~ R8)의 코드들(h11 ~ h1128, h21 ~ h2128, ..., h81 ~ h8128)을 포함하여 총 2128개의 서로 다른 코드들이 생성될 수 있으며, 총 2128개의 코드들 각각에 대하여 동일하거나 서로 다른 8비트 제2 패리티가 생성될 수 있다. 이 경우, 총 2128개의 서로 다른 136비트 코드들 중 임의의 2개의 코드들 사이의 최소 해밍 거리(dmin)는 3일 수 있다.
도 2 및 3을 참조하면, 제1 패리티 발생기(32)는 제1 H 매트릭스(H)의 행 벡터들(R1 ~ R8)에 포함된 코드들(h11 ~ h1128, h21 ~ h2128, ..., 및 h81 ~ h8128) 각각과 136×1 매트릭스의 128비트 데이터(r1 ~ r128)의 배타 논리합(XOR) 연산을 수행한 후, 모듈로(Modulo) 2 연산을 수행하여 8비트 패리티(P1 ~ P8)를 발생할 수 있다.
즉, 8비트 패리티(P1 ~ P8)는 아래의 식으로 표현될 수 있다.
P1 = h11^r1 + h12^r2 + ? + h1128^r128
P2 = h21^r1 + h22^r2 + ? + h2128^r128
?
P8 = h81^r1 + h82^r2 + ? + h8128^r128
상기 식에서, "^"는 XOR 연산자를 나타내고, "+"는 모듈로 2 연산자를 나타낼 수 있다.
도 4는 본 개시에 따른 실시예의 제1 ECC 디코더(24)의 구성을 나타내는 도면으로, 제1 ECC 디코더(24)는 제1 신드롬 발생기(24-2), 제1 에러 검출기(24-3), 디코딩 상태 플래그(DSF) 발생기(24-4), 제1 에러 위치 검출기(24-5), 제1 에러 정정기(24-6), 및 제1 스위치(SW1)를 포함할 수 있다.
도 4에 도시된 블록들 각각의 기능을 설명하면 다음과 같다.
제1 신드롬 발생기(24-2)는 메모리 셀 어레이(20)로부터 출력되는 16n비트 데이터와 j비트 패리티(do)를 입력하여 j비트 신드롬을 발생할 수 있다. n, j는 각각 8일 수 있으며, 제1 신드롬 발생기(24-2)는 제2 H 매트릭스, 즉, 8×136 매트릭스의 행 벡터들 각각과 136비트 데이터의 136×1 매트릭스의 배타 논리합(XOR) 연산을 수행한 후 모듈로 2 연산을 수행함에 의해서 8비트 신드롬을 발생할 수 있다.
도 5는 본 개시에 따른 실시예의 제1 신드롬 발생기(24-2)의 신드롬 연산을 설명하기 위한 도면으로, n, j가 각각 8인 경우의 신드롬 연산을 설명하기 위한 것이다.
도 5를 참조하면, 제2 H 매트릭스(H')는 8×136 매트릭스이고, 128비트 데이터 및 8비트 패리티(do)의 매트릭스(R')는 136×1 매트릭스일 수 있다. 136개의 열 벡터들(C1' ~ C136')의 코드들(h11' ~ h81', h12' ~ h82', ?, 및 h1136' ~ h8136')은 모두 "0"인 코드를 제외한 "0"과 "1"을 포함하는 서로 다른 코드들을 가질 수 있다. 제2 H 매트릭스(H')는 행 벡터들(R1' ~ R8')의 코드들(h11' ~ h1128', h21' ~ h2128', ..., h81' ~ h8128')을 포함하여 총 2128개의 서로 다른 코드들이 생성될 수 있으며, 총 2128개의 코드들 각각에 대하여 동일하거나 서로 다른 8비트 제2 패리티가 생성될 수 있다. 이 경우, 총 2128개의 서로 다른 136비트 코드들 중 임의의 2개의 코드들 사이의 최소 해밍 거리(dmin)는 3일 수 있다. 따라서, 도 1에 도시된 제1 ECC 디코더(24)는 1비트 에러 정정 및 1비트 에러 검출 동작을 수행할 수 있다.
도 4 및 5를 참조하면, 제1 신드롬 발생기(24-2)는 제2 H 매트릭스(H')의 행 벡터들(R1' ~ R8')의 코드들(h11' ~ h1136', h21 ~ h2136', ?, 및 h81 ~ h8136') 각각과 136×1 매트릭스의 코드(r1' ~ r128'P1'P2'...P8')의 배타 논리합(XOR) 연산을 수행한 후 모듈로(Modulo) 2 연산을 수행하여 8비트 신드롬(S1 ~ S8)를 발생할 수 있다.
즉, 8비트 신드롬(S1 ~ S8)은 아래의 식으로 표현될 수 있다.
S1 = h11'^r1' + h12'^r2' + ... + h1128'^r128'+ ... + h1136'^P8
S2 = h21'^r1' + h22'^r2' + ... + h2128'^r128'+ ... + h2136'^P8
?
S8 = h81'^r1' + h82'^r2' + ... + h8128'^r128' + ... + h8136'^P8
상기 식에서, "^"는 XOR 연산자를 나타내고, "+"는 모듈로 2 연산자를 나타낼 수 있다.
도 4를 참조하면, 제1 에러 검출기(24-3)는 8비트 신드롬(S1 ~ S8)이 모두 “0”이면 논-에러(NE)임을 나타내는 논-에러 신호(ne)를 발생하거나, 8비트 신드롬(S1 ~ S8)이 제2 H 매트릭스(H')의 136개의 열 벡터들(C1' ~ C136')의 코드들 내에 포함되어 있으면 1비트 에러로서 정정가능한 에러(CE)임을 나타내는 정정가능 에러 신호(ce)를 발생하거나, 8비트 신드롬(S1 ~ S8)이 제2 H 매트릭스(H')의 136개의 열 벡터들(C1' ~ C136')의 코드들 내에 존재하지 않으면 정정불가능한 에러(UE)임을 나타내는 정정불가능 에러 신호(ue)를 발생할 수 있다.
도 4를 참조하면, DSF 발생기(24-4)는 논-에러 신호(ne) 또는 정정가능 에러 신호(ce)가 발생되면 제1 상태, 예를 들면, “0”의 DSF를 발생하고, 정정불가능 에러 신호(ue)가 발생되면, 제2 상태, 예를 들면, “1”의 DSF를 발생할 수 있다.
도 4를 참조하면, 제1 에러 위치 검출기(24-5)는 정정가능 에러 신호(ce)에 응답하여 8비트 신드롬(S1 ~ S8)이 제2 H 매트릭스(H')의 136개의 열 벡터들(C1' ~ C136')의 코드들 중 몇번째 열 벡터의 코드와 일치하는지를 파악하여 에러 위치를 검출하여 에러 위치 정보를 발생할 수 있다. 예를 들면, 제1 에러 위치 검출기(24-5)는 8비트 신드롬(S1 ~ S8)이 제2 H 매트릭스(H')의 첫번째 열 벡터의 코드와 일치하면 첫번째 위치에 에러가 있음을 나타내는 에러 위치 정보를 발생할 수 있다.
도 4를 참조하면, 에러 정정기(24-6)는 에러 위치 정보에 기초하여 16n+j비트 데이터의 에러를 정정할 수 있다. 예를 들면, 에러 정정기(24-6)는 에러 위치 정보가 첫번째 위치임을 나타내면, 136×1 매트릭스의 코드(r1' ~ r128'P1'P2'... P8')의 첫번째 비트(도 5에 도시된 r1')를 반전함으로써 에러를 정정할 수 있다. 에러 정정기(24-6)는 정정된 16n+j비트 데이터(do)에 포함된 j비트 패리티를 제외한 16n비트 데이터를 데이터(DO)로 발생할 수 있다.
도 4를 참조하면, 제1 스위치(SW1)는 논-에러 신호(ne)(또는 정정불가능 에러 신호(ue))에 응답하여 온되어 16n비트 데이터를 데이터(DO)로 발생할 수 있다.
도 6은 본 개시에 따른 실시예의 메모리 시스템을 나타내는 블록도로서, 메모리 시스템(200)은 반도체 메모리 장치(100) 및 제어 장치(110)를 포함할 수 있다. 제어 장치(110)는 제2 ECC 엔코더(112), 제2 ECC 디코더(114), 및 데이터 처리부(116)를 포함할 수 있다.
도 6에 나타낸 블록들 각각의 기능을 설명하면 다음과 같다.
반도체 메모리 장치(100)는 명령 및 어드레스(CA) 및 데이터(DQ)를 수신하고, 데이터(DQ) 및 DSF를 출력할 수 있다. 도시된 것과 달리, DSF는 별도의 단자가 아니라, 데이터(DQ)가 전송되는 데이터 단자들(미도시) 중의 하나의 단자를 통하여 데이터(DQ)가 전송되기 전, 후, 또는 사이에 전송될 수도 있다.
제어 장치(110)는 명령 및 어드레스(CA) 및 데이터(DQ)를 출력하고, 데이터(DQ) 및 DSF를 수신할 수 있다.
제2 ECC 엔코더(112)는 x비트 데이터(DO)를 입력하고 x비트 데이터(DO)의 y비트 패리티를 생성하여 16n(=x+y)비트 데이터를 발생할 수 있다. 즉, 16n비트 데이터는 x비트 데이터(DO) 및 y비트 패리티를 포함할 수 있다. 예를 들면, x는 120이고, y는 8일 수 있다.
제2 ECC 디코더(114)는 데이터(DQ) 및 DSF를 수신하고, DSF에 기초하여 데이터(DQ)를 수신하여 제1 ECC 디코딩 동작을 수행하거나 제2 ECC 디코딩 동작을 수행하여 데이터(DI) 및 에러 신호(E)를 발생할 수 있다. 예를 들면, 제2 ECC 디코더(114)는 DSF가 “0”이면 제1 ECC 디코딩 동작을 수행하고, DSF가 “1”이면 제2 ECC 디코딩 동작을 수행할 수 있다. 제1 ECC 디코딩 동작은 3비트 에러 검출 동작이고, 제2 ECC 디코딩 동작은 1비트 에러 정정 및 2비트 에러 검출 동작일 수 있다.
데이터 처리부(116)는 x비트 데이터(DO)를 발생하고, x비트 데이터(DI) 및 에러 신호(E)를 수신하여 x비트 데이터(DI)에 대한 데이터 처리 동작을 수행할 수 있다.
도 4에 도시된 제1 에러 검출기(24-3)가 1비트 에러로서 판단하여 정정가능 에러 신호(ce)를 발생할 때, 실질적으로 1비트 에러가 발생한 것일 수도 있으나, 경우에 따라서는 실질적으로 1비트 에러가 발생한 것이 아니라 2비트 에러가 발생한 것일 수 있다. 예를 들면, j비트 신드롬이 제2 H 매트릭스(H')의 열 벡터들(C1' ~ C136') 중 하나의 열 벡터, 예를 들면, 첫번째 열 벡터의 코드와 일치하여 1비트 에러로 판단하였으나, 실질적으로는 8비트 신드롬(S1 ~ S8)이 서로 다른 2개의 열 벡터들의 코드들의 배타 논리합 연산에 의해서 발생한 것으로 2비트 에러일 수 있다. 도 4에 도시된 제1 에러 정정기(24-6)가 16n비트 데이터의 첫번째 비트(도 5에 도시된 r1')를 반전하여 에러를 정정하게 되는 잘못된 정정(miscorrection)이 수행될 수 있다. 결과적으로, 16n비트 데이터의 3비트에 에러가 발생되어 전송될 수 있다. 도 4에 도시된 DSF 발생기(24-4)는 “0”의 DSF를 전송할 수 있다. 이 경우, 도 6에 도시된 제2 ECC 디코더(114)는 3비트 에러 검출 동작을 수행하여 잘못된 정정을 검출할 수 있다. 따라서, 제2 ECC 디코더(114)는 논-에러(NE) 또는 정정가능한 에러(CE)이면, 3비트 에러 검출 동작을 수행하여 잘못된 정정을 검출하고, 정정불가능 에러(UE)이면, 1비트 에러 정정 및 2비트 에러 검출 동작을 수행하여, 1비트 에러는 정정함으로써, ECC 디코딩 동작을 선택적으로 효율적으로 수행할 수 있다.
도 7은 본 개시에 따른 실시예의 제2 ECC 디코더(114)의 구성을 나타내는 블록도로서, 제2 ECC 디코더(114)는 제1 선택기(114-2), 제1 ECC 디코딩부(114-4), 제2 ECC 디코딩부(114-6), 및 제2 선택기(114-8)를 포함할 수 있다.
도 7에 도시된 블록들 각각의 기능을 설명하면 다음과 같다.
제1 선택기(114-2)는 DSF에 응답하여 데이터(DQ)를 수신하여 제1 ECC 디코딩부(114-4) 또는 제2 ECC 디코딩부(114-6)로 출력할 수 있다. 예를 들면, DSF가 “0”이면, 16n비트 데이터를 제1 ECC 디코딩부(114-4)로 출력하고, DSF가 “1”이면, 16n비트 데이터를 제2 ECC 디코딩부(114-6)로 출력할 수 있다.
제1 ECC 디코딩부(114-4)는 16n비트 데이터를 수신하여 3비트 에러 검출 동작을 수행하여 x비트 제1 데이터(D1) 및 제1 에러 신호(E1)를 발생할 수 있다.
제2 ECC 디코딩부(114-6)는 16n비트 데이터를 수신하여 1비트 에러 정정 및 2비트 에러 검출 동작을 수행하여 x비트 제2 데이터(D2) 및 제2 에러 신호(E2)를 발생할 수 있다.
제2 선택기(114-8)는 DSF에 응답하여 제1 ECC 디코딩부(114-4) 또는 제2 ECC 디코딩부(114-6)로부터 전송되는 x비트 제1 데이터(D1) 및 제1 에러 신호(E1) 또는 x비트 제2 데이터(D2) 또는 제2 에러 신호(E2)를 선택하여 x비트 데이터(DI) 및 에러 신호(E)로 출력할 수 있다. 예를 들면, 제2 선택기(114-8)는 DSF가 “0”이면 x비트 제1 데이터(D1) 및 제1 에러 신호(E1)를 선택하고, DSF가 “1”이면 x비트 제2 데이터(D2) 및 제2 에러 신호(E2)를 선택하여 전송할 수 있다.
도 8은 본 개시에 따른 실시예의 제1 ECC 디코딩부(114-4)를 나타내는 도면으로, 제1 ECC 디코딩부(114-4)는 제2 신드롬 발생기(114-42), 제2 에러 검출기(114-44), 및 제2 스위치(SW2)를 포함할 수 있다.
도 8에 도시된 블록들 각각의 기능을 설명하면 다음과 같다.
제2 신드롬 발생기(114-42)는 16n비트 데이터(DQ)를 수신하여 16n비트 데이터(DQ)에 대한 j비트 신드롬을 발생할 수 있다. n, j는 각각 8일 수 있으며, 제2 신드롬 발생기(114-42)는 제3 H 매트릭스, 즉, 8×128 매트릭스의 행 벡터들 각각과 128비트 데이터의 128×1 매트릭스의 배타 논리합(XOR) 연산을 수행한 후 모듈로 2 연산을 수행함에 의해서 8비트 신드롬을 발생할 수 있다.
도 9는 본 개시에 따른 실시예의 제2 신드롬 발생기(114-42)의 신드롬 연산을 설명하기 위한 도면으로, n, j각 각각 8인 경우의 신드롬 연산을 설명하기 위한 것이다.
제3 H 매트릭스(H”)는 8×128 매트릭스이고, 16n비트 데이터(DQ)의 매트릭스(R")는 128×1 매트릭스일 수 있다. 136개의 열 벡터들(C1" ~ C128")의 코드들(h11" ~ h81", h12" ~ h82", ..., 또는 h1128" ~ h8128")은 모두 "0"인 코드를 제외한 "0"과 "1"을 포함하는 서로 다른 코드들을 가질 수 있다. 제3 H 매트릭스(H")의 행 벡터들(R1" ~ R8") 중 마지막 행 벡터(R8")의 코드(h81" ~ h8128")는 모두 "1"인 코드일 수 있다. 또한, 제3 H 매트릭스(H")는 행 벡터들(R1" ~ R8")의 코드들 중 8비트 패리티를 제외한 120비트 데이터에 해당하는 코드들을 포함하여 총 2120개의 서로 다른 코드들이 생성될 수 있으며, 총 2120개의 코드들 각각에 대하여 동일하거나 서로 다른 8비트 패리티가 생성될 수 있다. 이 경우, 총 2120개의 서로 다른 128비트 코드들 중 임의의 2개의 코드들 사이의 최소 해밍 거리(dmin)는 4일 수 있다.
도 8 및 9를 참조하면, 제2 신드롬 발생기(114-42)는 제3 H 매트릭스(H")의 행 벡터들(R1" ~ R8")의 코드들(h11" ~ h1128", h21" ~ h2128", ..., 및 h81" ~ h8128") 각각과 128×1 매트릭스의 코드(r1" ~ r128")의 배타 논리합(XOR) 연산을 수행한 후, 모듈로(Modulo) 2 연산을 수행하여 8비트 신드롬(S1" ~ S8")를 발생할 수 있다.
즉, 8비트 신드롬(S1" ~ S8")는 아래의 식으로 표현될 수 있다.
S1" = h11"^r1" + h12"^r2" + ... + h1128"^r128"
S2" = h21"^r1" + h22"^r2" + ... + h2128"^r128"
...
S8" = h81"^r1" + h82"^r2" + ... + h8128"^r128"
상기 식에서, "^"는 XOR 연산자를 나타내고, "+"는 모듈로 2 연산자를 나타낼 수 있다.
도 8을 참조하면, 제2 에러 검출기(114-44)는 8비트 신드롬(S1” ~ S8”)이 모두 “0”이면 논-에러(NE)임을 나타내는 논-에러 신호(ne)를 발생하거나, 8비트 신드롬(S1” ~ S8”)이 제3 H 매트릭스(H”)의 128개의 열 벡터들(C1” ~ C128”)의 코드들 내에 포함되어 있으면 1비트 에러, 2비트 에러, 또는 3비트 에러를 포함하는 3비트 이하의 에러를 검출하여 제1 에러 신호(E1)를 발생할 수 있다.
도 8을 참조하면, 제2 스위치(SW2)는 논-에러 신호(ne)에 응답하여 온되어 16n비트 데이터(DQ)에 포함된 y비트 패리티를 제외한 x비트 데이터를 제1 데이터(D1)로 발생할 수 있다. 도시하지는 않았지만, 제1 에러 신호(E1)가 발생되면 x비트 데이터(DQ)를 전송하지 않도록 구성하거나, 전송하도록 구성할 수도 있다.
도 10은 본 개시에 따른 실시예의 제2 ECC 디코딩부(114-6)를 나타내는 도면으로, 제2 ECC 디코딩부(114-6)는 제3 신드롬 발생기(114-62), 제3 에러 검출기(114-64), 제2 에러 위치 검출기(114-66), 제2 에러 정정기(114-68), 및 제3 스위치(SW3)를 포함할 수 있다.
도 10에 도시된 블록들 각각의 기능을 설명하면 다음과 같다.
제3 신드롬 발생기(114-62)는 도 8에 도시된 제2 신드롬 발생기(114-42)와 동일한 동작을 수행하여 16n비트 데이터(DQ)의 j비트 신드롬을 발생할 수 있다.
제3 에러 검출기(114-64)는 8비트 신드롬(S1” ~ S8”)이 모두 “0”이면 논-에러(NE)을 나타내는 논-에러 신호(ne)를 발생하거나, 8비트 신드롬(S1” ~ S8”)이 제3 H 매트릭스(H”)의 128개의 열 벡터들(C1” ~ C128”)의 코드들 내에 포함되어 있으면 1비트 에러 또는 2비트 에러를 포함하는 2비트 이하의 에러를 검출하여 제2 에러 신호(E2)를 발생할 수 있다.
제2 에러 위치 검출기(114-66)는 제2 에러 신호(E2)에 응답하여 8비트 신드롬(S1” ~ S8”)이 제3 H 매트릭스(H”)의 열 벡터들(C1” ~ C128”)의 코드들 중 몇번째 열 벡터의 코드와 일치하는지를 파악하여 에러 위치를 검출하여 에러 위치 정보를 발생할 수 있다. 예를 들면, 제2 에러 위치 검출기(114-66)는 8비트 신드롬(S1” ~ S8”)이 제3 H 매트릭스(H”)의 첫번째 열 벡터(C1”)의 코드와 일치하면, 첫번째 위치에 에러가 존재하는 것을 나타내는 에러 위치 정보를 발생할 수 있다.
제2 에러 정정기(114-68)는 에러 위치 정보에 기초하여 16n비트 데이터의 에러를 정정하여 제2 데이터(D2)를 발생할 수 있다. 예를 들면, 제2 에러 정정기(114-68)는 에러 위치 정보가 첫번째 위치임을 나타내면, 16n비트 데이터(D1)의 첫번째 비트(도 9에 도시된 r1”)를 반전함으로써 에러를 정정할 수 있으며, 16n비트 데이터(DQ)에 포함된 y비트 패리티를 제외한 x비트 데이터를 제2 데이터(D2)로 발생할 수 있다.
제3 스위치(SW3)는 논-에러 신호(ne)에 응답하여 온되어 16n비트 데이터(DQ)에 포함된 y비트 패리티를 제외한 x비트 데이터를 제2 데이터(D2)로 전송할 수 있다.
도 11은 본 개시에 따른 실시예의 제2 ECC 디코더(114)의 구성을 나타내는 블록도로서, 제2 ECC 디코더(114)는 제4 신드롬 발생기(114-82), 제4 에러 검출기(114-84), 제3 에러 위치 검출기(114-86), 제3 에러 정정기(114-88), 제4 스위치(SW4), 및 제5 스위치(SW5)를 포함할 수 있다.
도 11에 도시된 블록들 각각의 기능을 설명하면 다음과 같다.
제4 신드롬 발생기(114-82) 및 제4 에러 검출기(114-84)는 도 8에 도시된 제2 신드롬 발생기(114-42) 및 제2 에러 검출기(114-44)와 각각 동일한 동작을 수행할 수 있다.
제4 스위치(SW4)는 DSF가 “1”이면 온되어 에러 신호(E)를 전송할 수 있다.
제3 에러 위치 검출기(114-86)는 제4 스위치(SW4)를 통하여 전송되는 에러 신호(E)에 응답하여 도 10에 도시된 제2 에러 위치 검출기(114-46)과 동일한 동작을 수행할 수 있다.
제3 에러 정정기(114-88)는 제4 스위치(SW4)를 통하여 전송되는 에러 신호(E)에 응답하여 도 10에 도시된 제2 에러 정정기(114-68)와 동일한 동작을 수행할 수 있다.
제5 스위치(SW5)는 논-에러 신호(ne)에 응답하여 온되어 16n비트 데이터(DQ)에 포함된 y비트 패리티를 제외한 x비트 데이터를 데이터(DI)로 발생할 수 있다.
도 7에 도시된 제2 ECC 디코더(114)와 달리, 도 11에 도시된 제2 ECC 디코더(114)는 DSF가 “0” 인 경우 및 DSF가 “1”인 경우에 제4 신드롬 발생기(114-62) 및 제4 에러 검출기(114-64)가 공통적으로 동작을 수행할 수 있다. 따라서, 도 11에 도시된 제2 ECC 디코더(114)는 도 7, 8, 및 10에 도시된 제2 ECC 디코더(114)에 비해서 회로 구성이 단순화될 수 있다.
상술한 실시예들에서, 16n비트는 m비트로 표현될 수 있다. 또한, 상술한 실시예들에서, 도 4에 도시된 DSF 발생기(24-4)는 논-에러 신호(ne) 또는 정정가능 에러 신호(ce)가 발생되는 경우에 “0”의 DSF를 발생하고, 정정불가능 에러 신호(ue)가 발생되는 경우에 “1”의 DSF를 발생하는 것으로 설명하였다. 그러나, 다른 예로서, DSF 발생기(24-4)는 논-에러 신호(ne)가 발생되는 경우에 “0”의 DSF를 발생하고, 정정가능 에러 신호(ce) 또는 정정불가능 에러 신호(ue)가 발생되는 경우에 “1”의 DSF를 발생할 수 있다. 이 경우, DSF 발생기(24-2)는 “1”의 DSF 대신에 “0”의 DSF를 발생하고, “0”의 DSF 대신에 “1”의 DSF를 발생할 수도 있다. 또 다른 예로서, DSF 플래그는 1비트가 아닌 2비트일 수 있다. 이 경우, 도 4에 도시된 DSF 발생기(24-4)는 논-에러 신호(ne), 정정가능 에러 신호(ce), 정정불가능 에러 신호(ue)가 발생되는 경우에 “00”, “01”, “10”, “11” 중 서로 다른 3개의 2비트 DSF 플래그를 각각 발생할 수 있다.
이상, 첨부된 도면을 참조하여 본 발명의 기술적 사상에 따른 실시 예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해하여야 한다.
100: 반도체 메모리 장치 10: 명령 및 어드레스 발생기
12: 로우 어드레스 발생기 14: 컬럼 어드레스 발생기
16: 로우 디코더 18: 컬럼 디코더
20: 메모리 셀 어레이 22: 제1 ECC 엔코더
24: 제1 ECC 디코더 26: 데이터 라이트 경로부
28: 데이터 리드 경로부 32: 제1 패리티 발생기
24-2: 제1 신드롬 발생기 24-3: 제1 에러 검출기
24-4: DSF 발생기 24-5: 제1 에러 위치 검출기
24-6: 제1 에러 정정기 110: 제어 장치
112: 제2 ECC 엔코더 114: 제2 ECC 디코더
114-2: 제1 선택기 114-4: 제1 ECC 디코딩부
114-6: 제2 ECC 디코딩부 114-8: 제2 선택기
114-42: 제2 신드롬 발생기 114-44: 제2 에러 검출기
114-62: 제3 신드롬 발생기 114-64: 제3 에러 검출기
114-66: 제2 에러 위치 검출기 114-68: 제2 에러 정정기
114-82: 제4 신드롬 발생기 114-84: 제4 에러 검출기
114-86: 제3 에러 위치 검출기 114-88: 제3 에러 정정기

Claims (20)

  1. 로우 어드레스를 디코딩하여 복수개의 워드 라인 선택신호들을 발생하는 로우 디코더;
    컬럼 어드레스를 디코딩하여 복수개의 컬럼 선택신호들을 발생하는 컬럼 디코더;
    복수개의 메모리 셀들을 포함하고, 상기 복수개의 메모리 셀들이 상기 복수개의 워드 라인 선택신호들 및 상기 복수개의 컬럼 선택신호들에 응답하여 선택되는 메모리 셀 어레이; 및
    리드 동작 시에 상기 메모리 셀 어레이의 선택된 메모리 셀들로부터 출력되는 복수 비트 데이터 및 상기 복수 비트 데이터에 대한 소정 비트 패리티를 입력하여 신드롬을 생성하고, 상기 신드롬이 나타내는 에러의 형태에 기초하여, 상기 복수 비트 데이터에 대한 제1 ECC 디코딩 동작 또는 제2 ECC 디코딩 동작을 수행할 것을 지시하는 디코딩 상태 플래그를 출력하는 에러 정정 코드(Error Correcting Code: ECC) 디코더를 구비하는 반도체 메모리 장치.
  2. 제1 항에 있어서, 상기 반도체 메모리 장치는
    라이트 동작 시에 상기 복수 비트 데이터를 입력하고 상기 소정 비트 패리티를 생성하여 상기 선택된 메모리 셀들로 출력하는 ECC 엔코더를 추가적으로 구비하는 반도체 메모리 장치.
  3. 제2 항에 있어서, 상기 ECC 엔코더는
    제1 H 매트릭스의 행 벡터들 각각과 상기 복수 비트 데이터의 배타 논리합 연산을 수행한 후, 모듈로 2 연산을 수행함에 의해서 상기 소정 비트 패리티를 발생하는 패리티 발생기이고,
    상기 제1 H 매트릭스의 열 벡터들의 코드들은 모두 "0"이 아닌 "0"과 "1"을 포함하는 서로 다른 코드들을 가지고, 상기 제1 H 매트릭스의 코드들의 최소 해밍 거리는 3인 반도체 메모리 장치.
  4. 제1 항에 있어서, 상기 ECC 디코더는
    상기 신드롬이 논-에러임을 나타내면 상기 복수 비트 데이터를 출력하고, 정정가능한 에러임을 나타내면 상기 복수 비트 데이터 및 상기 소정 비트 패리티의 해당 비트를 정정한 후 정정된 복수 비트 데이터를 출력하고, 상기 신드롬이 상기 논-에러 또는 상기 정정가능한 에러임을 나타내는 경우와 정정불가능한 에러임을 나타내는 경우에 서로 다른 상태를 가지는 디코딩 상태 플래그를 생성하는 반도체 메모리 장치.
  5. 제4 항에 있어서, 상기 반도체 메모리 장치는
    상기 리드 동작 시에 상기 복수 비트 데이터 및 상기 디코딩 상태 플래그를 외부로 직렬로 출력하거나, 병렬로 출력하는 반도체 메모리 장치.
  6. 제5 항에 있어서, 상기 ECC 디코더는
    제2 H 매트릭스의 행 벡터들 각각과 상기 복수 비트 데이터와 상기 소정 비트 패리티의 배타 논리합 연산을 수행한 후, 모듈로 2 연산을 수행함에 의해서 상기 소정 비트 신드롬을 발생하는 신드롬 발생기;
    상기 소정 비트 신드롬을 이용하여 상기 논-에러, 상기 정정가능한 에러, 또는 상기 정정불가능한 에러를 검출하는 에러 검출기;
    상기 정정가능한 에러가 검출되면 상기 소정 비트 신드롬이 존재하는 상기 제2 H 매트릭스의 컬럼 벡터의 위치를 검출하여 에러 위치 정보를 발생하는 에러 위치 검출기;
    상기 정정가능한 에러가 검출되면 상기 에러 위치 정보에 기초하여 상기 복수 비트 데이터 및 상기 소정 비트 패리티의 에러를 정정하는 에러 정정기; 및
    상기 논-에러 또는 상기 정정가능한 에러가 검출되면, 제1 상태의 상기 디코딩 상태 플래그를 발생하고, 상기 정정불가능한 에러가 검출되면, 제2 상태의 상기 디코딩 상태 플래그를 발생하는 디코딩 상태 플래그 발생기를 포함하는 반도체 메모리 장치.
  7. 제6 항에 있어서, 상기 제2 H 매트릭스의 열 벡터들의 코드들은 모두 "0"이 아닌 "0"과 "1"을 포함하는 서로 다른 코드들을 가지고, 상기 제2 H 매트릭스의 코드들의 최소 해밍 거리는 3인 반도체 메모리 장치.
  8. 외부로부터 인가되는 디코딩 상태 플래그 신호에 응답하여 외부로부터 인가되는 복수 비트 데이터에 대한 제1 에러 정정 코드(Error Correcting Code: ECC) 디코딩 동작을 수행하거나, 제2 ECC 디코딩 동작을 수행하여 상기 복수 비트 데이터 및 상기 복수 비트 데이터에 대한 에러 신호를 발생하는 ECC 디코더; 및
    상기 복수 비트 데이터 및 상기 에러 신호를 수신하고, 상기 복수 비트 데이터에 대한 데이터 처리 동작을 수행하는 데이터 처리부를 구비하는 제어 장치.
  9. 제8 항에 있어서, 상기 ECC 디코더는
    제1 상태의 상기 디코딩 상태 플래그에 응답하여 제1 ECC 디코딩 동작을 수행하는 제1 ECC 디코딩부; 및
    제2 상태의 상기 디코딩 상태 플래그에 응답하여 제2 ECC 디코딩 동작을 수행하는 제2 ECC 디코딩부를 구비하고,
    상기 제1 ECC 디코딩 동작은 에러 검출 동작이고, 상기 제2 ECC 디코딩 동작은 에러 정정 및 검출 동작인 제어 장치.
  10. 제9 항에 있어서, 상기 제1 ECC 디코딩부는
    상기 복수 비트 데이터를 입력하여 제1 소정 비트 제1 신드롬을 생성하고 상기 제1 소정 비트 제1 신드롬이 논-에러, 또는 3비트 이하의 에러를 나타내는지를 검출하고,
    상기 제2 ECC 디코딩부는
    상기 복수 비트 데이터를 입력하여 제1 소정 비트 제2 신드롬을 생성하고 상기 제1 소정 비트 제2 신드롬이 논-에러, 또는 2비트 이하의 에러인지를 검출하고, 상기 제1 소정 비트 제2 신드롬이 상기 논-에러임을 나타내면 상기 복수 비트 데이터에 포함된 제2 소정 비트 패리티를 제외한 데이터를 전송하고, 상기 제1 소정 비트 제2 신드롬이 2비트 에러 이하의 에러임을 나타내면 상기 제1 소정 비트 제2 신드롬을 이용하여 상기 복수 비트 데이터의 에러 위치를 검출하여 에러 위치 정보를 생성하고, 상기 에러 위치 정보를 이용하여 상기 복수 비트의 데이터의 에러를 정정한 후 정정된 복수 비트의 데이터에 포함된 상기 제2 소정 비트 패리티를 제외한 데이터를 전송하는 제어 장치.
  11. 제10 항에 있어서, 상기 제1 ECC 디코딩부는
    제1 H 매트릭스의 행 벡터들 각각과 상기 복수 비트 데이터의 배타 논리합 연산을 수행한 후, 모듈로 2 연산을 수행함에 의해서 상기 제1 소정 비트 제1 신드롬을 발생하는 제1 신드롬 발생기; 및
    상기 제1 소정 비트 제1 신드롬을 이용하여 상기 논-에러 또는 상기 3비트 이하의 에러인지를 검출하는 제1 에러 검출기를 구비하는 제어 장치.
  12. 제11 항에 있어서, 상기 제2 ECC 디코딩부는
    제2 H 매트릭스의 행 벡터들 각각과 상기 복수 비트 데이터의 배타 논리합 연산을 수행한 후, 모듈로 2 연산을 수행함에 의해서 상기 제1 소정 비트 제2 신드롬을 발생하는 제2 신드롬 발생기;
    상기 제1 소정 비트 제2 신드롬을 이용하여 상기 논-에러, 또는 상기 2비트 이하의 에러를 검출하는 제2 에러 검출기;
    상기 2비트 이하의 에러가 검출되면, 상기 제1 소정 비트 제2 신드롬이 존재하는 상기 제2 H 매트릭스의 컬럼 벡터의 위치를 검출하여 상기 에러 위치 정보를 발생하는 에러 위치 검출기; 및
    상기 2비트 이하의 에러가 검출되면, 상기 에러 위치 정보에 기초하여 상기 복수 비트 데이터의 에러를 정정하는 에러 정정기를 구비하는 제어 장치.
  13. 제12 항에 있어서, 상기 제1 H 매트릭스 및 상기 제2 H 매트릭스의 열 벡터들의 코드들은 모두 "0"이 아닌 "0"과 "1"을 포함하는 서로 다른 코드들을 가지고, 상기 제1 H 매트릭스의 코드들의 최소 해밍 거리 및 상기 제2 H 매트릭스의 코드들의 최소 해밍 거리가 4인 제어 장치.
  14. 제8 항에 있어서, 상기 ECC 디코더는
    H 매트릭스의 행 벡터들 각각과 상기 복수 비트 데이터의 배타 논리합 연산을 수행한 후, 모듈로 2 연산을 수행함에 의해서 소정 비트 신드롬을 발생하는 신드롬 발생기;
    상기 소정 비트 신드롬을 이용하여 논-에러, 또는 3비트 이하의 에러인지를 검출하는 에러 검출기;
    상기 디코딩 상태 플래그에 응답하여 상기 3비트 이하의 에러가 검출되면 상기 소정 비트 신드롬이 존재하는 상기 H 매트릭스의 컬럼 벡터의 위치를 검출하여 에러 위치 정보를 발생하는 에러 위치 검출기; 및
    상기 디코딩 상태 플래그에 응답하여 상기 3비트 이하의 에러가 검출되면 상기 에러 위치 정보에 기초하여 상기 복수 비트 데이터의 에러를 정정하는 에러 정정기를 구비하는 제어 장치.
  15. 제14 항에 있어서, 상기 H 매트릭스의 열 벡터들의 코드들은 모두 "0"이 아닌 "0"과 "1"을 포함하는 서로 다른 코드들을 가지고, 상기 H 매트릭스의 코드들의 최소 해밍 거리가 4인 제어 장치.
  16. 복수개의 메모리 셀들을 포함하고, 상기 복수개의 메모리 셀들이 복수개의 워드 라인 선택신호들 및 복수개의 컬럼 선택신호들에 응답하여 선택되는 메모리 셀 어레이, 및
    리드 동작 시에 상기 메모리 셀 어레이의 선택된 메모리 셀들로부터 출력되는 복수 비트 데이터 및 상기 복수 비트 데이터에 대한 소정 비트 패리티를 입력하여 신드롬을 생성하고, 상기 신드롬이 나타내는 에러의 형태에 기초하여 디코딩 상태 플래그를 생성하는 제1 ECC(Error Correcting Code: ECC) 디코더를 구비하는 반도체 메모리 장치; 및
    상기 반도체 메모리 장치로부터 인가되는 상기 디코딩 상태 플래그 신호에 응답하여 상기 반도체 메모리 장치로부터 인가되는 상기 복수 비트 데이터에 대한 제1 ECC 디코딩 동작 또는 제2 ECC 디코딩 동작을 수행하는 제2 ECC 디코더를 구비하는 제어 장치를 구비하는 메모리 시스템.
  17. 제16 항에 있어서, 상기 제1 ECC 디코더는
    상기 신드롬이 논-에러임을 나타내면 상기 복수 비트 데이터를 출력하고, 정정가능한 에러임을 나타내면 상기 복수 비트 데이터 및 상기 소정 비트 패리티의 해당 비트를 정정한 후 정정된 복수 비트 데이터를 출력하고, 상기 신드롬이 상기 논-에러 또는 상기 정정가능한 에러인 경우와 정정불가능한 에러인 경우에 서로 다른 상태를 가지는 상기 디코딩 상태 플래그를 생성하는 메모리 시스템.
  18. 제17 항에 있어서, 상기 반도체 메모리 장치는
    상기 리드 동작 시에 상기 복수 비트 데이터 및 상기 디코딩 상태 플래그를 상기 제어 장치로 직렬로 출력하거나, 병렬로 출력하는 메모리 시스템.
  19. 제18 항에 있어서, 상기 제2 ECC 디코더는
    제1 상태의 상기 디코딩 상태 플래그에 응답하여 제1 에러 정정 코드 디코딩 동작을 수행하는 제1 ECC 디코딩부; 및
    제2 상태의 상기 디코딩 상태 플래그에 응답하여 제2 에러 정정 코드 디코딩 동작을 수행하는 제2 ECC 디코딩부를 포함하고,
    상기 제1 ECC 디코딩 동작은 에러 검출 동작이고,
    상기 제2 ECC 디코딩 동작은 에러 정정 및 검출 동작인 메모리 시스템.
  20. 제18 항에 있어서,
    상기 제2 ECC 디코더는
    H 매트릭스의 행 벡터들 각각과 상기 복수 비트 데이터의 배타 논리합 연산을 수행한 후, 모듈로 2 연산을 수행함에 의해서 상기 소정 비트 신드롬을 발생하는 신드롬 발생기;
    상기 소정 비트 신드롬을 이용하여 상기 논-에러 또는 3비트 이하의 에러인지를 검출하는 에러 검출기;
    상기 디코딩 상태 플래그에 응답하여 상기 3비트 이하의 에러가 검출되면 상기 소정 비트 신드롬이 존재하는 상기 H 매트릭스의 컬럼 벡터의 위치를 검출하여 에러 위치 정보를 발생하는 에러 위치 검출기; 및
    상기 디코딩 상태 플래그에 응답하여 상기 3비트 이하의 에러가 검출되면 상기 에러 위치 정보에 기초하여 상기 복수 비트 데이터의 에러를 정정하는 에러 정정기를 구비하고,
    상기 H 매트릭스의 열 벡터들의 코드들은 모두 "0"이 아닌 "0"과 "1"을 포함하는 서로 다른 코드들을 가지고, 상기 H 매트릭스의 코드들의 최소 해밍 거리는 3인 메모리 시스템.
KR1020180134888A 2018-10-24 2018-11-06 반도체 메모리 장치, 제어 장치, 및 메모리 시스템 KR102629457B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US16/372,047 US10824507B2 (en) 2018-10-24 2019-04-01 Semiconductor memory device, controller, and memory system
SG10201904708RA SG10201904708RA (en) 2018-10-24 2019-05-24 Semiconductor memory device, controller, and memory system
CN201910481581.8A CN111092620B (zh) 2018-10-24 2019-06-04 半导体存储器装置、控制器和存储器系统
US17/029,912 US11200117B2 (en) 2018-10-24 2020-09-23 Semiconductor memory device, controller, memory system, and operation method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180127276 2018-10-24
KR1020180127276 2018-10-24

Publications (2)

Publication Number Publication Date
KR20200047244A KR20200047244A (ko) 2020-05-07
KR102629457B1 true KR102629457B1 (ko) 2024-01-26

Family

ID=70734054

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180134888A KR102629457B1 (ko) 2018-10-24 2018-11-06 반도체 메모리 장치, 제어 장치, 및 메모리 시스템

Country Status (3)

Country Link
US (1) US11200117B2 (ko)
KR (1) KR102629457B1 (ko)
SG (1) SG10201904708RA (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023005919A (ja) * 2021-06-29 2023-01-18 ルネサスエレクトロニクス株式会社 半導体装置および誤り検出方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011598A1 (en) * 2005-06-15 2007-01-11 Hitachi Global Storage Technologies Netherlands B.V. Error detection and correction for encoded data
US20100293436A1 (en) * 2008-01-31 2010-11-18 International Business Machines Corporation System for Error Control Coding for Memories of Different Types and Associated Methods
US20120198308A1 (en) 2011-01-31 2012-08-02 Nedeljko Varnica Methods and systems for efficient decoding of concatenated error correction codes
US20130145229A1 (en) 2011-11-18 2013-06-06 Jack Edward Frayer Systems, Methods and Devices for Multi-Tiered Error Correction
US20130262957A1 (en) * 2012-03-30 2013-10-03 Wei Wu Method Of Correcting Adjacent Errors By Using BCH-Based Error Correction Coding
US20160041762A1 (en) 2014-08-08 2016-02-11 Kabushiki Kaisha Toshiba Memory system, host device and information processing system
US20180248563A1 (en) 2017-02-24 2018-08-30 Realtek Semiconductor Corp. Device and Method of Controlling an Iterative Decoder

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0783275A (ja) 1993-09-20 1995-03-28 Kurashiki Kako Co Ltd 液体封入式エンジンマウント
JP3154607B2 (ja) * 1993-12-28 2001-04-09 三菱電機株式会社 誤り訂正復号装置及び誤り訂正復号方法
DE10206689B4 (de) 2002-02-18 2004-03-18 Infineon Technologies Ag Integrierter Speicher und Verfahren zum Betrieb eines integrierten Speichers
JP4191100B2 (ja) 2004-06-18 2008-12-03 エルピーダメモリ株式会社 半導体記憶装置
WO2009011059A1 (ja) 2007-07-19 2009-01-22 Pioneer Corporation 誤り訂正復号装置および再生装置
US8386868B2 (en) 2008-04-16 2013-02-26 Sandisk Il, Ltd. Using programming-time information to support error correction
US8739004B2 (en) 2012-05-10 2014-05-27 Lsi Corporation Symbol flipping LDPC decoding system
US9235466B2 (en) * 2012-07-03 2016-01-12 Samsung Electronics Co., Ltd. Memory devices with selective error correction code
KR102210327B1 (ko) * 2014-08-21 2021-02-01 삼성전자주식회사 에러 알림 기능이 있는 메모리 장치
KR102178137B1 (ko) * 2014-08-26 2020-11-12 삼성전자주식회사 반도체 메모리 장치, 이의 에러 정정 방법 및 이를 포함하는 메모리 시스템
US9755665B1 (en) * 2014-09-23 2017-09-05 Marvell International Ltd. Systems and methods for an iterative decoding scheme
KR20170000108A (ko) * 2015-06-23 2017-01-02 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
KR20170028160A (ko) 2015-09-03 2017-03-13 에스케이하이닉스 주식회사 에러 정정기를 포함하는 메모리 시스템 및 그것의 동작 방법
KR20170035103A (ko) * 2015-09-22 2017-03-30 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR102608908B1 (ko) * 2016-06-23 2023-12-04 에스케이하이닉스 주식회사 데이터의 오류를 정정하는 방법 및 이를 이용하는 반도체장치
KR20200058048A (ko) 2018-11-19 2020-05-27 삼성전자주식회사 반도체 메모리 장치 및 이를 구비하는 메모리 시스템

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011598A1 (en) * 2005-06-15 2007-01-11 Hitachi Global Storage Technologies Netherlands B.V. Error detection and correction for encoded data
US20100293436A1 (en) * 2008-01-31 2010-11-18 International Business Machines Corporation System for Error Control Coding for Memories of Different Types and Associated Methods
US20120198308A1 (en) 2011-01-31 2012-08-02 Nedeljko Varnica Methods and systems for efficient decoding of concatenated error correction codes
US20130145229A1 (en) 2011-11-18 2013-06-06 Jack Edward Frayer Systems, Methods and Devices for Multi-Tiered Error Correction
US20130262957A1 (en) * 2012-03-30 2013-10-03 Wei Wu Method Of Correcting Adjacent Errors By Using BCH-Based Error Correction Coding
US20160041762A1 (en) 2014-08-08 2016-02-11 Kabushiki Kaisha Toshiba Memory system, host device and information processing system
US20180248563A1 (en) 2017-02-24 2018-08-30 Realtek Semiconductor Corp. Device and Method of Controlling an Iterative Decoder

Also Published As

Publication number Publication date
KR20200047244A (ko) 2020-05-07
US11200117B2 (en) 2021-12-14
SG10201904708RA (en) 2020-05-28
US20210004289A1 (en) 2021-01-07

Similar Documents

Publication Publication Date Title
KR101750662B1 (ko) 데이터 에러 교정용 회로, 장치, 및 방법
KR100266748B1 (ko) 반도체 메모리 장치 및 그 장치의 에러 정정 방법
US8132086B2 (en) Semiconductor memory device for byte-based masking operation and method of generating parity data
US10803971B2 (en) Device for supporting error correction code and test method thereof
US10467091B2 (en) Memory module, memory system including the same, and error correcting method thereof
US10802912B2 (en) Semiconductor memory device and memory system having the same
US10769012B2 (en) Memory with error correction function and an error correction method
US10761930B2 (en) Memory with error correction function that is compatible with different data length and an error correction method
CN111092620B (zh) 半导体存储器装置、控制器和存储器系统
US10795763B2 (en) Memory system and error correcting method thereof
KR102504178B1 (ko) 반도체장치
US10514980B2 (en) Encoding method and memory storage apparatus using the same
KR20180000593A (ko) 데이터의 오류를 정정하는 방법 및 이를 이용하는 반도체장치
KR102629457B1 (ko) 반도체 메모리 장치, 제어 장치, 및 메모리 시스템
US10665297B2 (en) Memory systems for memory devices and methods of operating the memory systems
KR20200117129A (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US20200371872A1 (en) Error detection and correction with integrity checking
US11424765B2 (en) ECC decoders having low latency
US20240096437A1 (en) Memory device including error correction device
JPS6133221B2 (ko)

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