KR20200058048A - 반도체 메모리 장치 및 이를 구비하는 메모리 시스템 - Google Patents

반도체 메모리 장치 및 이를 구비하는 메모리 시스템 Download PDF

Info

Publication number
KR20200058048A
KR20200058048A KR1020180142547A KR20180142547A KR20200058048A KR 20200058048 A KR20200058048 A KR 20200058048A KR 1020180142547 A KR1020180142547 A KR 1020180142547A KR 20180142547 A KR20180142547 A KR 20180142547A KR 20200058048 A KR20200058048 A KR 20200058048A
Authority
KR
South Korea
Prior art keywords
predetermined bit
parity
bit
syndrome
matrix
Prior art date
Application number
KR1020180142547A
Other languages
English (en)
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 KR1020180142547A priority Critical patent/KR20200058048A/ko
Priority to US16/377,183 priority patent/US10802912B2/en
Priority to CN201910603254.5A priority patent/CN111198779B/zh
Publication of KR20200058048A publication Critical patent/KR20200058048A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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
    • 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
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

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

Description

반도체 메모리 장치 및 이를 구비하는 메모리 시스템{SEMICONDUCTOR MEMORY DEVICE AND MEMORY SYSTEM HAVING THE SAME}
본 발명은 반도체 메모리 장치 및 이를 구비하는 메모리 시스템에 관한 것이다.
메모리 시스템은 반도체 메모리 장치 및 제어 장치를 포함할 수 있다. 일반적으로, 반도체 메모리 장치 및 제어 장치는 각각 정해진 하나의 에러 정정 코드(Error Correcting Code) 디코딩 동작을 수행할 수 있다. 예를 들면, 반도체 메모리 장치는 1비트 에러 검출 및 1비트 에러 정정 동작을 수행하고, 제어 장치는 3비트 에러 검출 동작만 수행하거나 1비트 에러 정정 및 2비트 에러 검출 동작만 수행할 수 있다. 따라서, 이를 해결하기 위한 다양한 기술들이 개발되고 있다.
본 개시에 따른 실시예들의 과제는 에러 정정 코드(Error Correcting Code) 디코딩 동작 시에 에러의 형태에 따른 디코딩 상태 플래그를 빠르게 발생할 수 있는 반도체 메모리 장치 및 이를 구비하는 메모리 시스템을 제공하는데 있다.
본 개시에 따른 실시예들의 과제는 이상에서 언급한 과제에 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 개시에 따른 실시예들의 반도체 메모리 장치는 로우 어드레스를 디코딩하여 복수개의 워드 라인 선택신호들을 발생하는 로우 디코더; 컬럼 어드레스를 디코딩하여 복수개의 컬럼 선택신호들을 발생하는 컬럼 디코더; 복수개의 메모리 셀들을 포함하고, 상기 복수개의 메모리 셀들이 상기 복수개의 워드 라인 선택신호들 및 상기 복수개의 컬럼 선택신호들에 응답하여 선택되는 메모리 셀 어레이; 및 리드 동작 시에 상기 메모리 셀 어레이의 선택된 메모리 셀들로부터 출력되는 복수 비트 데이터 및 상기 복수 비트 데이터에 대한 제1 소정 비트 제1 패리티를 입력하고, H 매트릭스와 상기 복수 비트 데이터를 이용하여 상기 복수 비트 데이터에 대한 제1 소정 비트 제2 패리티를 생성하고, 상기 제1 소정 비트 제1 패리티 및 상기 제1 소정 비트 제2 패리티를 비교하여 제1 소정 비트 신드롬을 생성하고, 상기 제1 소정 비트 신드롬이 포함하는 "0" 또는"1"의 개수에 기초하여 서로 다른 상태를 가지는 디코딩 상태 플래그를 생성하는 에러 정정 코드(Error Correcting Code: ECC) 디코더를 포함할 수 있다.
본 개시에 따른 실시예들의 반도체 메모리 장치는 로우 어드레스를 디코딩하여 복수개의 워드 라인 선택신호들을 발생하는 로우 디코더; 컬럼 어드레스를 디코딩하여 복수개의 컬럼 선택신호들을 발생하는 컬럼 디코더; 복수개의 메모리 셀들을 포함하고, 상기 복수개의 메모리 셀들이 상기 복수개의 워드 라인 선택신호들 및 상기 복수개의 컬럼 선택신호들에 응답하여 선택되는 메모리 셀 어레이; 및 리드 동작 시에 상기 메모리 셀 어레이의 선택된 메모리 셀들로부터 출력되는 복수 비트 데이터 및 상기 복수 비트 데이터에 대한 제1 소정 비트 제1 패리티를 입력하고, H 매트릭스 및 상기 복수 비트 데이터를 이용하여 상기 복수 비트 데이터에 대한 제1 소정 비트 제2 패리티를 생성하고, 상기 제1 소정 비트 제1 패리티 및 상기 제1 소정 비트 제2 패리티를 비교하여 제1 소정 비트 신드롬을 생성하고, 상기 제1 소정 비트 신드롬의 인접한 2비트들을 비교하여 간략화된 제2 소정 비트(=제1 소정 비트/2) 신드롬을 발생하고, 상기 제2 소정 비트 신드롬과 간략화된 H 매트릭스를 이용하여 서로 다른 상태를 가지는 디코딩 상태 플래그를 생성하는 에러 정정 코드(Error Correcting Code: ECC) 디코더를 구비하고, 상기 H 매트릭스의 열 벡터들의 값들은 인접한 2비트들에 대한 배타 논리합 연산을 수행함에 의해서 생성되는 상기 간략화된 H 매트릭스의 열 벡터들의 값들에 포함될 수 있다.
본 개시에 따른 실시예들의 메모리 시스템은 복수개의 워드 라인 선택신호들 및 복수개의 컬럼 선택신호들에 응답하여 선택되는 복수개의 메모리 셀들을 포함하는 메모리 셀 어레이, 및 리드 동작 시에 상기 메모리 셀 어레이의 선택된 메모리 셀들로부터 출력되는 복수 비트 데이터 및 상기 복수 비트 데이터에 대한 제1 소정 비트 제1 패리티를 입력하고, H 매트릭스와 상기 복수 비트 데이터를 이용하여 상기 복수 비트 데이터에 대한 제1 소정 비트 제2 패리티를 생성하고, 상기 제1 소정 비트 제1 패리티 및 상기 제1 소정 비트 제2 패리티를 비교하여 제1 소정 비트 신드롬을 생성하고, 상기 제1 소정 비트 신드롬이 나타내는 에러의 형태에 기초하여 디코딩 상태 플래그를 생성하는 에러 정정 코드(Error Correcting Code: ECC) 디코더를 구비하는 반도체 메모리 장치; 및 상기 반도체 메모리 장치로부터 인가되는 상기 디코딩 상태 플래그 신호에 응답하여 상기 반도체 메모리 장치로부터 인가되는 상기 복수 비트 데이터에 대한 서로 다른 ECC 디코딩 동작을 수행하는 제2 ECC 디코더를 구비하는 제어 장치를 포함할 수 있다.
본 개시에 따른 실시예들에 따르면, 반도체 메모리 장치는 에러의 형태에 따른 디코딩 상태 플래그를 빠르게 발생할 수 있다. 따라서, 메모리 시스템은 디코딩 상태 플래그에 따라 에러 정정 코드(Error Correcting Code) 디코딩 동작을 선택적으로 효율적으로 수행할 수 있다.
도 1은 본 개시에 따른 실시예의 반도체 메모리 장치의 블록도이다.
도 2는 본 개시에 따른 실시예의 ECC 엔코더를 나타내는 도면이다.
도 3은 본 개시에 따른 실시예의 ECC 디코더의 구성을 나타내는 도면이다.
도 4는 본 개시에 따른 실시예의 제2 패리티 발생기의 패리티 연산을 설명하기 위한 도면이다.
도 5는 본 개시에 따른 실시예의 제1 H 매트릭스의 값들을 나타내는 도면이다.
도 6은 본 개시에 따른 실시예의 제1 에러 검출기의 구성을 나타내는 블록도이다.
도 7은 본 개시에 따른 실시예의 ECC 디코더를 나타내는 블록도이다.
도 8은 본 개시에 따른 실시예의 제3 패리티 발생기의 패리티 연산을 설명하기 위한 도면이다.
도 9는 본 개시에 따른 실시예의 제2 H 매트릭스의 값들을 나타내는 도면이다.
도 10은 본 개시에 따른 실시예의 제2 H 매트릭스의 간략화된 제2 H 매트릭스의 값들을 나타내는 도면이다
도 11은 본 개시에 따른 실시예의 메모리 시스템을 나타내는 블록도이다.
이하, 첨부된 도면을 참고로 하여 본 개시에 따른 실시예들의 반도체 메모리 장치 및 이를 구비하는 메모리 시스템을 설명하면 다음과 같다.
도 1은 본 개시에 따른 실시예의 반도체 메모리 장치의 블록도로서, 반도체 메모리 장치(100)는 명령 및 어드레스 발생기(10), 로우 어드레스 발생기(12), 컬럼 어드레스 발생기(14), 로우 디코더(16), 컬럼 디코더(18), 메모리 셀 어레이(20), 에러 정정 코드(Error Correcting Code: ECC) 엔코더(22), 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)에 의해서 선택된 메모리 셀들로 데이터 및 데이터의 제1 패리티(di)를 저장하고, 리드 명령(RD)에 응답하여 리드 동작 시에 선택된 메모리 셀들로부터 데이터 및 데이터의 제1 패리티(do)를 출력할 수 있다. 예를 들면, 메모리 셀 어레이(20)는 16n비트 데이터와 j비트 제1 패리티(di)를 저장하고, 16n비트 데이터와 j비트 제1 패리티(do)를 출력할 수 있다.
ECC 엔코더(22)는 데이터(DI)를 입력하여 데이터의 제1 패리티를 생성하고 데이터 및 데이터의 제1 패리티(di)를 출력할 수 있다. 예를 들면, ECC 엔코더(22)는 16n비트 데이터 및 16n비트 데이터에 대한 j비트 제1 패리티(di)를 발생할 수 있다.
ECC 디코더(24)는 데이터 및 데이터의 제1 패리티(do)에 포함된 데이터를 입력하여 제2 패리티를 생성하고, 데이터 및 데이터의 제1 패리티(do)에 포함된 제1 패리티와 제2 패리티를 비교하여 신드롬을 생성하고, 신드롬을 이용하여 에러의 형태에 기초하여 디코딩 상태 플래그(Decoding Status Flag: DSF)를 생성할 수 있다. 여기에서, 에러의 형태에는 논-에러(Non-Error: NE), 정정가능한 에러(Correctable Error: CE), 또는 정정불가능한 에러(Uncorrectable Error: UE)가 있을 수 있다. 예를 들면, ECC 디코더(24)는 논-에러(NE) 또는 정정가능한 에러(CE)이면 DSF를 “0”으로, 정정불가능한 에러(UE)이면 DSF를 “1”로 설정하여 DSF를 발생할 수 있다. 예를 들면, ECC 디코더(24)는 16n비트 데이터 및 j비트 제1 패리티(do)에 포함된 16n비트 데이터에 대한 j비트 제2 패리티를 발생할 수 있다. ECC 디코더(24)는 16n비트 데이터 및 1비트 DSF를 직렬 또는 병렬로 발생할 수 있다. ECC 디코더(24)는 정정가능한 에러(CE)이면, 예를 들면, 1비트 에러이면, 16n비트 데이터 및 j비트 제1 패리티(do)에 포함된 16n비트 데이터의 에러를 정정하여 정정된 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는 본 개시에 따른 실시예의 ECC 엔코더(22)를 나타내는 도면으로, ECC 엔코더(22)는 제1 패리티 발생기(32)를 포함할 수 있다.
도 2를 참조하면, 제1 패리티 발생기(32)는 데이터 라이트 경로부(26)로부터 인가되는 데이터(DI)를 입력하여 데이터 및 데이터의 제1 패리티(di)를 발생할 수 있다.
도 3은 본 개시에 따른 실시예의 ECC 디코더(24)의 구성을 나타내는 도면으로, ECC 디코더(24)는 제2 패리티 발생기(24-2), 제1 신드롬 발생기(24-4), 제1 에러 검출기(24-6), 디코딩 상태 플래그(DSF) 발생기(24-8), 제1 에러 위치 검출기(24-10), 제1 에러 정정기(24-12), 및 제1 스위치(SW1)를 포함할 수 있다.
도 3에 도시된 블록들 각각의 기능을 설명하면 다음과 같다.
제2 패리티 발생기(24-2)는 메모리 셀 어레이(20)로부터 출력되는 16n비트 데이터를 입력하여 16n비트 데이터에 대한 j비트 제2 패리티를 발생할 수 있다. 예를 들면, 패리티 발생기(32)는 제1 H 매트릭스(H)와 16n비트 데이터를 이용하여 j비트 제2 패리티를 발생할 수 있다.
도 4는 본 개시에 따른 실시예의 제2 패리티 발생기(24-2)의 패리티 연산을 설명하기 위한 도면으로, n, j가 각각 8인 경우의 패리티 연산을 설명하기 위한 것이다. 도 5는 본 개시에 따른 실시예의 제1 H 매트릭스(H)의 값들을 나타내는 도면이다.
도 4 및 5를 참조하면, 제1 H 매트릭스(H)는 8×136 매트릭스이고, 128비트 데이터 및 8비트 제2 패리티의 매트릭스(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)는 136개의 열 벡터들(C1 ~ C136)의 값들(h11 ~ h81, h12 ~ h82, ..., h1128 ~ h8128, 10...0, 01...0, ..., 및 00...1) 각각의 "1"의 개수가 4개 이하일 수 있다. 제1 H 매트릭스(H)는 행 벡터들(R1 ~ R8)의 값들(h11 ~ h1128, h21 ~ h2128, ..., h81 ~ h8128)을 포함하여 총 2128개의 서로 다른 값들이 생성될 수 있으며, 총 2128개의 코드워드들 각각에 대하여 동일하거나 서로 다른 8비트 제2 패리티가 생성될 수 있다. 이 경우, 총 2128개의 서로 다른 136비트 코드워드들 중 임의의 2개의 코드워드들 사이의 최소 해밍 거리(dmin)는 3 이상일 수 있다. 도 5에서, 하얀색으로 표시된 부분들은 "0"을 나타내고, 빗금으로 표시된 부분들은 "1"을 나타낼 수 있다. 제1 H 매트릭스(H)의 열 벡터들(C1 ~ C128)의 값들(h11 ~ h81, h12 ~ h82, ..., 및 h1128 ~ h8128) 각각은 "1"의 개수가 2, 3, 또는 4이고, 제1 H 매트릭스(H)의 열 벡터들(C129 ~ C136)의 값들은 "1"의 개수가 1개일 수 있다.
도 3, 4 및 5를 참조하면, 제2 패리티 발생기(24-2)는 제1 H 매트릭스(H)의 행 벡터들(R1 ~ R8)에 포함된 값들(h11 ~ h1128, h21 ~ h2128, ..., 및 h81 ~ h8128) 각각과 136×1 매트릭스의 128비트 데이터(r1 ~ r128)의 배타 논리합(XOR) 연산을 수행한 후, 모듈로(Modulo) 2 연산을 수행하여 8비트 제2 패리티(P21 ~ P28)를 발생할 수 있다.
즉, 8비트 제2 패리티(P21 ~ P28)는 아래의 식으로 표현될 수 있다.
P21 = h11^r1 + h12^r2 + ... + h1128^r128
P22 = h21^r1 + h22^r2 + ... + h2128^r128
...
P28 = h81^r1 + h82^r2 + ... + h8128^r128
상기 식에서, "^"는 XOR 연산자를 나타내고, "+"는 모듈로 2 연산자를 나타낼 수 있다.
이 경우, 도 2를 참조하면, 제1 패리티 발생기(32)는 제1 H 매트릭스(H)의 열 벡터들(C1 ~ C128)의 값들과 128비트 데이터를 이용하여 8비트 제1 패리티를 발생할 수 있다. 도시하지는 않았지만, 8비트 제1 패리티는 P11 ~ P18로 나타낼 수 있다.
도 2 내지 5를 참조하면, 제1 신드롬 발생기(24-4)는 j비트 제2 패리티와 메모리 셀 어레이(20)로부터 출력되는 j비트 제1 패리티를 비교하여 j비트 신드롬을 발생할 수 있다. 예를 들면, 제1 신드롬 발생기(24-4)는 8비트 제2 패리티(P21 ~ P28)와 메모리 셀 어레이(20)로부터 출력되는 8비트 제1 패리티(P11 ~ P18)를 비교하여 8비트 신드롬(S1 ~ S8)을 발생할 수 있다. 제1 신드롬 발생기(24-4)는 8비트 제2 패리티(P21 ~ P28)와 8비트 제1 패리티(P11 ~ P18)의 해당 비트의 데이터에 대한 배타 논리합 연산(즉, S1=P21^P11, S2=P22^P12, …, S8=P28^P18)을 수행하여 8비트 신드롬(S1 ~ S8)을 발생할 수 있다. 즉, 제1 신드롬 발생기(24-4)는 8비트 제2 패리티(P21 ~ P28)와 8비트 제1 패리티(P11 ~ P18)의 해당 비트의 데이터가 서로 동일하면 “0”을 발생하고, 서로 다르면 “1”을 발생할 수 있다.
도 2 내지 5를 참조하면, 제1 에러 검출기(24-6)는 j비트 신드롬이 모두 “0”이면 논-에러(NE)임을 나타내는 논-에러 신호(ne)를 발생하거나, j비트 신드롬의 “1”의 개수가 제1 H 매트릭스(H)의 열 벡터들의 값들의 최대 “1”의 개수 이하이면 제1 H 매트릭스(H)의 열 벡터들의 값들 내에 포함되어 있는 것으로 판단하고 정정가능한 에러(CE)임을 나타내는 정정가능 에러 신호(ce)를 발생하거나, j비트 신드롬의 “1”의 개수가 제1 H 매트릭스(H)의 열 벡터들의 값들의 최대 “1”의 개수를 초과하면 제1 H 매트릭스(H)의 열 벡터들의 값들 내에 포함되지 않는 것으로 판단하고 정정불가능한 에러(UE)임을 나타내는 정정불가능 에러 신호(ue)를 발생할 수 있다. 예를 들면, 제1 에러 검출기(24-6)는 8비트 신드롬(S1 ~ S8)이 모두 “0”이면 논-에러 신호(ne)를 발생하거나, 8비트 신드롬(S1 ~ S8)의 “1”의 개수가 4개 이하이면 제1 H 매트릭스(H)의 136개의 열 벡터들(C1 ~ C136)의 값들(h11 ~ h81, h12 ~ h82, ..., h1128 ~ h8128, 10...0, 01...0, ..., 및 00...1) 내에 포함되어 있는 것으로 판단하고 1비트 에러로서 정정가능한 에러(CE)임을 나타내는 정정가능 에러 신호(ce)를 발생하거나, 8비트 신드롬(S1 ~ S8)의 “1”의 개수가 4개를 초과하면, 즉, 5개 이상이면, 제1 H 매트릭스(H)의 136개의 열 벡터들(C1 ~ C136)의 값들(h11 ~ h81, h12 ~ h82, ..., h1128 ~ h8128, 10...0, 01...0, ..., 및 00...1) 내에 포함되지 않는 것으로 판단하고 정정불가능한 에러(UE)임을 나타내는 정정불가능 에러 신호(ue)를 발생할 수 있다.
도 3 내지 5를 참조하면, DSF 발생기(24-8)는 논-에러 신호(ne) 또는 정정가능 에러 신호(ce)가 발생되는 경우와 정정불가능 에러 신호(ue)가 발생되는 경우에 서로 다른 상태를 가지는 DSF를 발생할 수 있다. 예를 들면, DSF 발생기(24-8)는 논-에러 신호(ne) 또는 정정가능 에러 신호(ce)가 발생되면 제1 상태, 예를 들면, “0”의 DSF를 발생하고, 정정불가능 에러 신호(ue)가 발생되면, 제2 상태, 예를 들면, “1”의 DSF를 발생할 수 있다. 또는, DSF 발생기(24-8)는 논-에러 신호(ne)가 발생되는 경우, 정정가능 에러 신호(ce)가 발생되는 경우, 및 정정불가능 에러 신호(ue)가 발생되는 경우에 각각에 대해서 서로 다른 상태를 가지는 DSF를 발생할 수 있다.
도 3 내지 5를 참조하면, 제1 에러 위치 검출기(24-10)는 정정가능 에러 신호(ce)에 응답하여 j비트 신드롬이 제1 H 매트릭스(H)의 열 벡터들의 값들 중 몇번째 열 벡터의 값과 일치하는지를 파악하여 에러 위치를 검출하여 에러 위치 정보를 발생할 수 있다. 예를 들면, 제1 에러 위치 검출기(24-10)는 8비트 신드롬(S1 ~ S8)이 128개의 열 벡터들(C1 ~ C128)의 값들(h11 ~ h81, h12 ~ h82, ..., 및 h1128 ~ h8128) 중 몇번째 열 벡터의 값과 일치하는지를 파악하여 에러 위치를 검출하여 에러 위치 정보를 발생할 수 있다. 제1 에러 위치 검출기(24-10)는 8비트 신드롬(S1 ~ S8)이 제1 H 매트릭스(H)의 첫번째 열 벡터(C1)의 값(h11 ~ h81)과 일치하면 첫번째 위치에 에러가 있음을 나타내는 에러 위치 정보를 발생할 수 있다.
도 3 내지 5를 참조하면, 제1 에러 정정기(24-12)는 에러 위치 정보에 기초하여 16n비트 데이터의 에러를 정정할 수 있다. 예를 들면, 제1 에러 정정기(24-12)는 에러 위치 정보가 첫번째 위치임을 나타내면, 128비트 데이터(r1 ~ r128)의 첫번째 비트(도 4에 도시된 r1)를 반전함으로써 에러를 정정할 수 있다. 제1 에러 정정기(24-12)는 정정된 128비트 데이터를 데이터(DO)로 발생할 수 있다.
도 3 내지 5를 참조하면, 제1 스위치(SW1)는 논-에러 신호(ne)(또는 정정불가능 에러 신호(ue))에 응답하여 온되어 16n비트 데이터를 데이터(DO)로 발생할 수 있다.
도 6은 본 개시에 따른 실시예의 제1 에러 검출기(24-6)의 구성을 나타내는 블록도로서, 제1 에러 검출기(24-6)는 논-에러 검출기(24-62), 정정가능 에러 검출기(24-64), 및 정정불가능 에러 검출기(24-66)를 포함할 수 있다.
도 6에 나타낸 블록들 각각의 기능을 설명하면 다음과 같다.
논-에러 검출기(24-62)는 j비트 신드롬을 입력하여 j비트들이 모두 “0”이면 논-에러(N2)임을 나타내는 논-에러 신호(ne)를 활성화할 수 있다.
정정가능 에러 검출기(24-64)는 논-에러 신호(ne)가 활성화되지 않고, j비트 신드롬에 포함된 “1”의 개수가 제1 H 매트릭스(H)의 열 벡터들의 값들의 최대 “1”의 개수 이하이면 정정가능 신호(ce)를 활성화할 수 있다. 즉, 도 4에 도시된 제1 H 매트릭스(H)의 136개의 열 벡터들(C1 ~ C136)의 값들(h11 ~ h81, h12 ~ h82, ..., h1128 ~ h8128, 10...0, 01..0, ..., 및 00...1)이 모두 "0"인 값을 제외한 "0"과 "1"을 포함하는 서로 다른 값들을 가지고, 4개 이하의 “1”의 개수를 가지므로, 정정가능 에러 검출기(24-64)는 논-에러 신호(ne)가 활성화되지 않고, 8비트 신드롬(S1 ~ S8)에 포함된 “1”의 개수가 4개 이하이면 제1 H 매트릭스(H)의 136개의 열 벡터들(C1 ~ C136)의 값들(h11 ~ h81, h12 ~ h82, ..., h1128 ~ h8128, 10...0, 01..0, ..., 및 00...1) 중 하나에 해당하는 것으로 판단하여 정정가능 에러 신호(ce)를 발생할 수 있다.
정정불가능 에러 검출기(24-66)는 논-에러 신호(ne)가 활성화되지 않고 j비트 신드롬에 포함된 “1”의 개수가 제1 H 매트릭스(H)의 열 벡터들의 값들의 최대 “1”의 개수를 초과하면 정정 불가능 신호(ue)를 활성화할 수 있다. 즉, 도 4에 도시된 제1 H 매트릭스(H)의 136개의 열 벡터들(C1 ~ C136)의 값들(h11 ~ h81, h12 ~ h82, .., h1128 ~ h8128, 10..0, 01...0, ..., 및 00...1)이 모두 "0"인 값을 제외한 "0"과 "1"을 포함하는 서로 다른 값들을 가지고, 4개 이하의 “1”의 개수를 가지므로, 정정가능 에러 검출기(24-64)는 논-에러 신호(ne)가 활성화되지 않고, 8비트 신드롬(S1 ~ S8)에 포함된 “1”의 개수가 4개를 초과하면 제1 H 매트릭스(H)의 136개의 열 벡터들(C1 ~ C136)의 값들(h11 ~ h81, h12 ~ h82, ..., h1128 ~ h8128, 10...0, 01...0, ..., 및 00...1) 내에 포함되지 않는 것으로 판단하여 정정불가능 에러 신호(ue)를 발생할 수 있다.
상술한 본 개시에 따른 실시예의 ECC 디코더(24)는 제1 H 매트릭스(H)의 136개의 열 벡터들(C1 ~ C136)의 값들(h11 ~ h81, h12 ~ h82, ..., h1128 ~ h8128, 10...0, 01...0, ..., 및 00...1)이 모두 "0"인 값을 제외한 "0"과 "1"을 포함하는 서로 다른 값들을 가지고, 4개 이하의 “1”의 개수를 가지므로, 8비트 신드롬에 포함된 “1”의 개수를 파악하여 정정가능 에러인지 정정불가능 에러인지를 판단할 수 있다. 따라서, 8비트 신드롬(S1 ~ S8)과 제1 H 매트릭스(H)의 136개의 열 벡터들(C1 ~ C136)의 값들(h11 ~ h81, h12 ~ h82, ..., h1128 ~ h8128, 10...0, 01...0, ..., 및 00...1) 각각과 비교 동작을 수행하지 않아도 되기 때문에, 상술한 본 개시에 따른 실시예의 ECC 디코더(24)는 논-에러인지, 정정가능한 에러인지, 또는 정정불가능한 에러인지를 판단하는 시간을 단축할 수 있다.
도 7은 본 개시에 따른 실시예의 ECC 디코더(24')를 나타내는 블록도로서, ECC 디코더(24')는 제3 패리티 발생기(24-2'), 제2 신드롬 발생기(24-4'), 비교기(24-5), 제2 에러 검출기(24-6'), DSF 발생기(24-8'), 제2 에러 위치 검출기(24-10'), 제2 에러 검출기(24-12'), 및 제2 스위치(SW2)를 포함할 수 있다.
도 7에 나타낸 블록들 각각의 기능을 설명하면 다음과 같다.
제3 패리티 발생기(24-2')는 메모리 셀 어레이(20)로부터 출력되는 16n비트 데이터를 입력하여 16n비트 데이터에 대한 j비트 제3 패리티를 발생할 수 있다. 예를 들면, 제3 패리티 발생기(24-2')는 제2 H 매트릭스(H')와 16n비트 데이터를 이용하여 j비트 제3 패리티를 발생할 수 있다.
도 8은 본 개시에 따른 실시예의 제3 패리티 발생기(24-2')의 패리티 연산을 설명하기 위한 도면으로, n, j가 각각 8인 경우의 패리티 연산을 설명하기 위한 것이다. 도 9는 본 개시에 따른 실시예의 제2 H 매트릭스(H')의 값들을 나타내는 도면이고, 도 10은 본 개시에 따른 실시예의 제2 H 매트릭스(H')의 간략화된 제2 H 매트릭스(H”)의 값들을 나타내는 도면이다.
도 8 및 9를 참조하면, 제2 H 매트릭스(H')는 8×136 매트릭스이고, 128비트 데이터 및 8비트 제3 패리티의 매트릭스(R')는 136×1 매트릭스일 수 있다. 제2 H 매트릭스(H')는 136개의 열 벡터들(C1' ~ C136')의 값들(h11' ~ h81', h12' ~ h82', ..., h1128' ~ h8128', 10...0, 01...0, ?, 00...1)은 모두 "0"인 값을 제외한 "0"과 "1"을 포함하는 서로 다른 값들을 가질 수 있다. 제2 H 매트릭스(H')는 행 벡터들(R1' ~ R8') 각각의 값들(h11' ~ h1128', h21' ~ h2128', ..., h81' ~ h8128')을 포함하여 총 2128개의 서로 다른 코드워드들이 생성될 수 있으며, 총 2128개의 코드워드들 각각에 대하여 동일하거나 서로 다른 8비트 제3 패리티가 생성될 수 있다. 이 경우, 총 2128개의 서로 다른 136비트 코드워드들 중 임의의 2개의 코드워드들 사이의 최소 해밍 거리(dmin)는 3 이상일 수 있다. 도 9에서, 하얀색으로 표시된 부분들은 "0"을 나타내고, 빗금으로 표시된 부분들은 "1"을 나타낼 수 있다. 도 9 및 10을 참조하면, 도 9에 도시된 제2 H 매트릭스(H')의 128개의 열 벡터들(C1' ~ C128')의 값들(h11' ~ h81', h12' ~ h82', ?, h1128' ~ h8128')의 인접한 2비트들에 대한 배타 논리합 연산들을 수행하면, 도 9에 도시된 간략화된 제2 H 매트릭스(H") 내의 8개의 열 벡터들(C1" ~ C8")의 값들 중 하나에 포함될 수 있다.
일 예로서, 도 9를 참조하면, 제2 H 매트릭스(H')의 첫번째 열 벡터(C1')의 값(h11' ~ h81')은 "11000101"이며, 인접한 2비트씩들에 대한 배타 논리합 연산들(즉, 1^1, 0^0, 0^1, 0^1)을 수행하면, "0011"이 얻어질 수 있다. 도 10을 참조하면, "0011"은 간략화된 제2 H 매트릭스(H")의 첫번째 열 벡터(C1")의 값이다. 다른 예로서, 도 9를 참조하면, 제2 H 매트릭스(H')의 서른 세번째 열 벡터(C33')의 값(h133'~ h833')은 "10010001"이며, 인접한 2비트들에 대한 배타 논리합 연산들(즉, 1^0, 0^1, 0^0, 0^1)을 수행하면, "1101"이 얻어질 수 있다. 도 10을 참조하면, "1101"은 간략화된 제2 H 매트릭스(H")의 두번째 열 벡터(C2")의 값이다.
도 7 내지 10을 참조하면, 제3 패리티 발생기(24-2')는 제2 H 매트릭스(H')의 행 벡터들(R1' ~ R8')에 포함된 값들(h11' ~ h1128', h21' ~ h2128', ..., 및 h81' ~ h8128') 각각과 136×1 매트릭스의 128비트 데이터(r1' ~ r128')의 배타 논리합 연산을 수행한 후, 모듈로(Modulo) 2 연산을 수행하여 8비트 제3 패리티(P31 ~ P38)를 발생할 수 있다.
즉, 8비트 제3 패리티(P31 ~ P38)는 아래의 식으로 표현될 수 있다.
P31 = h11'^r1' + h12'^r2' + ... + h1128'^r128'
P32 = h21'^r1' + h22'^r2' + ... + h2128'^r128'
...
P38 = h81'^r1' + h82'^r2' + ... + h8128'^r128'
상기 식에서, "^"는 XOR 연산자를 나타내고, "+"는 모듈로 2 연산자를 나타낼 수 있다.
이 경우, 도 2를 참조하면, 제1 패리티 발생기(32)는 제2 H 매트릭스(H')의 열 벡터들(C1' ~ C128')의 값들과 128비트 데이터를 이용하여 8비트 제1 패리티(P11 ~ P18)를 발생할 수 있다.
도 7 내지 10을 참조하면, 제2 신드롬 발생기(24-4')는 j비트 제3 패리티와 메모리 셀 어레이(20)로부터 출력되는 j비트 제1 패리티를 비교하여 j비트 신드롬을 발생할 수 있다. 예를 들면, 제2 신드롬 발생기(24-4')는 8비트 제3 패리티(P31 ~ P38)와 8비트 제1 패리티(P11 ~ P18)의 해당 비트의 데이터에 대한 배타 논리합 연산들을 수행하여 8비트 신드롬(S1' ~ S8')을 발생할 수 있다. 즉, 8비트 제3 패리티(P31 ~ P38)와 8비트 제1 패리티(P11 ~ P18)의 해당 비트의 데이터가 서로 동일하면 “0”을 발생하고, 서로 다르면 “1”을 발생할 수 있다.
도 7 내지 10을 참조하면, 비교기(24-5)는 j비트 신드롬의 인접한 2비트들에 대한 배타 논리합 연산을 수행하여 간략화된 j/2비트 신드롬을 발생할 수 있다. 비교기(24-5)는 8비트 신드롬(S1' ~ S8')의 인접한 2비트들에 대한 배타 논리합 연산들(S1”=S1'^S2', S2”=S3'^S4', S3”=S5'^S6', S4”=S7'^S8')을 수행하여 간략화된 4비트 신드롬(S1” ~ S4”)을 발생할 수 있다.
도 7 내지 10을 참조하면, 제2 에러 검출기(24-6')는 j/2비트 신드롬이 모두 “0”이면 논-에러(NE)임을 나타내는 논-에러 신호(ne)를 발생하거나, j/2비트 신드롬이 간략화된 제2 H 매트릭스(H”) 내의 j개의 열 벡터들의 값들 내에 포함되어 있으면 1비트 에러로서 정정가능한 에러(CE)임을 나타내는 정정가능 에러 신호(ce)를 발생하거나, j/2비트 신드롬이 간략화된 제2 H 매트릭스(H”) 내의 j개의 열 벡터들의 값들 내에 포함되어 있지 않으면 정정불가능한 에러(UE)임을 나타내는 정정불가능 에러 신호(ue)를 발생할 수 있다. 예를 들면, 제2 에러 검출기(24-6')는 4비트 신드롬(S1” ~ S4”)이 모두 “1”이면 논-에러 신호(ne)를 발생하고, 4비트 신드롬(S1” ~ S4”)이 간략화된 제2 H 매트릭스(H”) 내의 8개의 열 벡터들(C1” ~ C8”)의 값들 내에 포함되어 있으면 정정가능 에러 신호(ce)를 발생하고, 4비트 신드롬(S1” ~ S4”)이 간략화된 제2 H 매트릭스(H”) 내의 8개의 열 벡터들(C1” ~ C8”)의 값들 내에 포함되어 있지 않으면 정정불가능 에러 신호(ue)를 발생할 수 있다.
도 7 내지 10을 참조하면, DSF 발생기(24-8')는 상술한 도 3에 도시된 DSF 발생기(24-8)과 동일한 기능을 수행할 수 있다.
도 7 내지 10을 참조하면, 제2 에러 위치 검출기(24-10')는 정정가능 에러 신호(ce)에 응답하여 j비트 신드롬이 제2 H 매트릭스(H')의 열 벡터들의 값들 중 몇번째 열 벡터의 값과 일치하는지를 파악하여 에러 위치를 검출하여 에러 위치 정보를 발생할 수 있다. 예를 들면, 제2 에러 위치 검출기(24-10')는 8비트 신드롬(S1' ~ S8')이 제2 H 매트릭스(H')의 128개의 열 벡터들(C1' ~ C128')의 값들 중 첫번째 열 벡터(C1')의 값과 일치하면 첫번째 위치에 에러가 있음을 나타내는 에러 위치 정보를 발생할 수 있다.
도 7 내지 10을 참조하면, 제2 에러 정정기(24-12')는 에러 위치 정보에 기초하여 16n비트 데이터의 에러를 정정할 수 있다. 예를 들면, 제2 에러 정정기(24-12')는 에러 위치 정보가 첫번째 위치임을 나타내면, 136×1 매트릭스의 128비트 데이터(r1' ~ r128')의 첫번째 비트(도 8에 도시된 r1')를 반전함으로써 에러를 정정할 수 있다. 제2 에러 정정기(24-12')는 정정된 16n비트 데이터를 데이터(DO)로 발생할 수 있다.
도 7 내지 10을 참조하면, 제2 스위치(SW2)는 논-에러 신호(ne)(또는 정정불가능 에러 신호(ue))에 응답하여 온되어 16n비트 데이터를 데이터(DO)로 발생할 수 있다.
도 11은 본 개시에 따른 실시예의 메모리 시스템을 나타내는 블록도로서, 메모리 시스템(200)은 반도체 메모리 장치(100) 및 제어 장치(110)를 포함할 수 있다. 제어 장치(110)는 ECC 엔코더(112), ECC 디코더(114), 및 데이터 처리부(116)을 포함할 수 있다.
도 11에 나타낸 블록들 각각의 기능을 설명하면 다음과 같다.
반도체 메모리 장치(100)는 명령 및 어드레스(CA) 및 데이터(DQ)를 수신하고, 데이터(DQ) 및 DSF를 출력할 수 있다. 도시된 것과 달리, DSF는 별도의 단자가 아니라, 데이터(DQ)가 전송되는 데이터 단자들(미도시) 중의 하나의 단자를 통하여 데이터(DQ)가 전송되기 전, 후, 또는 사이에 전송될 수도 있다.
제어 장치(110)는 명령 및 어드레스(CA) 및 데이터(DQ)를 출력하고, 데이터(DQ) 및 DSF를 수신할 수 있다.
ECC 엔코더(112)는 x비트 데이터(DO)를 입력하고 x비트 데이터(DO)의 y비트 패리티를 생성하여 16n(=x+y)비트 데이터를 발생할 수 있다. 즉, 16n비트 데이터는 x비트 데이터(DO) 및 y비트 패리티를 포함할 수 있다.
ECC 디코더(114)는 데이터(DQ) 및 DSF를 수신하고, DSF에 기초하여 데이터(DQ)를 수신하여 제1 ECC 디코딩 동작을 수행하거나 제2 ECC 디코딩 동작을 수행하여 데이터(DI) 및 에러 신호(E)를 발생할 수 있다. 예를 들면, 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)에 대한 데이터 처리 동작을 수행할 수 있다.
상술한 실시예들에서, DSF가 “1”의 개수에 기초하여 발생되는 것으로 설명하였으나, “0”의 개수에 기초하여 발생될 수도 있다.
이상, 첨부된 도면을 참조하여 본 발명의 기술적 사상에 따른 실시 예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해하여야 한다.
100: 반도체 메모리 장치 10: 명령 및 어드레스 발생기
12: 로우 어드레스 발생기 14: 컬럼 어드레스 발생기
16: 로우 디코더 18: 컬럼 디코더
20: 메모리 셀 어레이 22: ECC 엔코더
24, 24': ECC 디코더 26: 데이터 라이트 경로부
28: 데이터 리드 경로부 32: 제1 패리티 발생기
24-2: 제2 패리티 발생기 24-4: 제1 신드롬 발생기
24-6: 제1 에러 검출기 24-8: DSF 발생기
24-10: 제1 에러 위치 검출기 24-12: 제1 에러 정정기
24-62: 논=에러 검출기 24-64: 정정가능 에러 검출기
24-66: 정정불가능 에러 검출기 24-2': 제3 패리티 발생기
24-4': 제2 신드롬 발생기 24-5: 비교기
24-6': 제2 에러 검출기 24-8': DSF 발생기
24-10': 제2 에러 위치 검출기 24-12': 제2 에러 정정기
112: ECC 엔코더 114: ECC 디코더
116: 데이터 처리부

Claims (10)

  1. 로우 어드레스를 디코딩하여 복수개의 워드 라인 선택신호들을 발생하는 로우 디코더;
    컬럼 어드레스를 디코딩하여 복수개의 컬럼 선택신호들을 발생하는 컬럼 디코더;
    복수개의 메모리 셀들을 포함하고, 상기 복수개의 메모리 셀들이 상기 복수개의 워드 라인 선택신호들 및 상기 복수개의 컬럼 선택신호들에 응답하여 선택되는 메모리 셀 어레이; 및
    리드 동작 시에 상기 메모리 셀 어레이의 선택된 메모리 셀들로부터 출력되는 복수 비트 데이터 및 상기 복수 비트 데이터에 대한 제1 소정 비트 제1 패리티를 입력하고, H 매트릭스와 상기 복수 비트 데이터를 이용하여 상기 복수 비트 데이터에 대한 제1 소정 비트 제2 패리티를 생성하고, 상기 제1 소정 비트 제1 패리티 및 상기 제1 소정 비트 제2 패리티를 비교하여 제1 소정 비트 신드롬을 생성하고, 상기 제1 소정 비트 신드롬이 나타내는 에러의 형태에 기초하여 디코딩 상태 플래그를 생성하는 에러 정정 코드(Error Correcting Code: ECC) 디코더를 구비하는 반도체 메모리 장치.
  2. 제1 항에 있어서, 상기 H 매트릭스의 열 벡터들의 값들은 모두 "0"이 아닌 "0"과 "1"을 포함하는 서로 다른 값들을 가지고, 제2 소정 개수 이하의 "1"을 포함하고, 상기 H 매트릭스의 코드워드들의 최소 해밍 거리가 3 이상인 반도체 메모리 장치.
  3. 제2 항에 있어서, 상기 ECC 디코더는
    상기 제1 소정 비트 신드롬이 "1"을 포함하지 않으면, 논-에러 신호를 활성화하고, 상기 제1 소정 비트 신드롬에 포함된 "1"의 개수가 상기 제2 소정 개수 이하이면 정정가능 에러 신호를 활성화하고, 상기 제1 소정 비트 신드롬에 포함된 "1"의 개수가 상기 제2 소정 개수를 초과하면 정정불가능 에러 신호를 활성화하는 반도체 메모리 장치.
  4. 제3 항에 있어서, 상기 ECC 디코더는
    상기 복수 비트 데이터에 대한 상기 제1 소정 비트 제2 패리티를 발생하는 제2 패리티 발생기를 포함하고,
    상기 제2 패리티 발생기는
    상기 H 매트릭스의 행 벡터들의 값들 각각과 상기 복수 비트 데이터에 대한 배타 논리합 연산을 수행한 후, 모듈로 2 연산을 수행함에 의해서 상기 제1 소정 비트 제2 패리티를 발생하는 반도체 메모리 장치.
  5. 제4 항에 있어서, 상기 ECC 디코더는
    상기 제1 소정 비트 제1 패리티 및 상기 제1 소정 비트 제2 패리티에 대한 배타 논리합 연산을 수행하여 상기 제1 소정 비트 신드롬을 발생하는 신드롬 발생기;
    상기 제1 소정 비트 신드롬이 "1"을 포함하지 않으면 논-에러 신호, 상기 제1 소정 비트 신드롬에 포함된 "1"의 개수가 상기 제2 소정 개수 이하이면 정정가능 에러 신호, 상기 제1 소정 비트 신드롬에 포함된 "1"의 개수가 상기 제2 소정 개수를 초과하면 정정불가능 에러 신호를 활성화하는 에러 검출기;
    상기 정정가능 에러 신호가 활성화되면, 상기 제1 소정 비트 신드롬이 상기 H 매트릭스의 상기 열 벡터들의 값들 중 몇번째 열 벡터의 값과 일치하는지를 검출하여 에러 위치 정보를 발생하는 에러 위치 검출기;
    상기 정정가능 에러 신호가 활성화되면, 상기 에러 위치 정보에 기초하여 상기 복수 비트 데이터의 해당 위치의 에러를 정정하는 에러 정정기; 및
    상기 논-에러 신호 또는 상기 정정가능 에러 신호가 활성화되는 경우와 상기 정정불가능 에러 신호가 활성화되는 경우에 서로 다른 상태를 가지는 상기 디코딩 상태 플래그를 생성하는 디코딩 상태 플래그 발생기를 추가적으로 포함하는 반도체 메모리 장치.
  6. 제1 항에 있어서, 상기 ECC 디코더는
    상기 제1 소정 비트 신드롬의 인접한 2비트들을 비교하여 간략화된 제2 소정 비트(=제1 소정 비트/2) 신드롬을 발생하고, 상기 제2 소정 비트 신드롬과 간략화된 H 매트릭스를 이용하여 서로 다른 상태를 가지는 디코딩 상태 플래그를 생성하고,
    상기 H 매트릭스의 열 벡터들의 값들은 인접한 2비트들에 대한 배타 논리합 연산을 수행함에 의해서 생성되는 상기 간략화된 H 매트릭스의 열 벡터들의 값들에 포함되는 반도체 메모리 장치.
  7. 제6 항에 있어서, 상기 H 매트릭스의 열 벡터들의 값들은 모두 "0"이 아닌 "0"과 "1"을 포함하는 서로 다른 값들을 가지고, 상기 H 매트릭스의 코드워드들의 최소 해밍 거리가 3 이상인 반도체 메모리 장치.
  8. 제7 항에 있어서, 상기 ECC 디코더는
    상기 제2 소정 비트 신드롬이 "1"을 포함하지 않으면, 논-에러 신호를 활성화하고, 상기 제2 소정 비트 신드롬이 상기 간략화된 H 매트릭스의 상기 열 벡터들의 값들에 존재하면 정정가능 에러 신호를 활성화하고, 상기 제2 소정 비트 신드롬이 상기 간략화된 H 매트릭스의 상기 열 벡터들의 값들에 존재하지 않으면 정정불가능 에러 신호를 활성화하는 반도체 메모리 장치.
  9. 제8 항에 있어서, 상기 ECC 디코더는
    상기 복수 비트 데이터에 대한 상기 제1 소정 비트 제2 패리티를 발생하는 제2 패리티 발생기를 포함하고,
    상기 제2 패리티 발생기는
    상기 H 매트릭스 행 벡터들의 값들 각각과 상기 복수 비트 데이터에 대한 배타 논리합 연산을 수행한 후, 모듈로 2 연산을 수행함에 의해서 상기 제1 소정 비트 제2 패리티를 발생하는 반도체 메모리 장치.
  10. 제9 항에 있어서, 상기 ECC 디코더는
    상기 제1 소정 비트 제1 패리티 및 상기 제1 소정 비트 제2 패리티에 대한 배타 논리합 연산을 수행하여 제1 소정 비트 신드롬을 발생하는 신드롬 발생기;
    상기 제1 소정 비트 신드롬의 인접한 2비트들에 대한 배타 논리합 연산을 수행하여 간략화된 제2 소정 비트 신드롬을 발생하는 비교기;
    상기 제2 소정 비트 신드롬이"1"을 포함하지 않으면 논-에러 신호, 상기 제2 소정 비트 신드롬이 상기 간략화된 H 매트릭스의 열 벡터들의 값들에 존재하면 정정가능 에러 신호, 상기 제2 소정 비트 신드롬이 상기 간략화된 H 매트릭스의 열 벡터들의 값들에 존재하지 않으면 정정불가능 에러 신호를 활성화하는 에러 검출기;
    상기 정정가능 에러 신호가 활성화되면, 상기 제1 소정 비트 신드롬이 상기 H 매트릭스의 열 벡터들의 값들 중 몇번째 열 벡터의 값과 일치하는지를 검출하여 에러 위치 정보를 발생하는 에러 위치 검출기;
    상기 정정가능 에러 신호가 활성화되면, 상기 에러 위치 정보에 기초하여 상기 복수 비트 데이터의 해당 위치의 에러를 정정하는 에러 정정기; 및
    상기 논-에러 신호 또는 상기 정정가능 에러 신호가 활성화되는 경우와 상기 정정불가능 에러 신호가 활성화되는 경우에 서로 다른 상태를 가지는 디코딩 상태 플래그를 생성하는 디코딩 상태 플래그 발생기를 추가적으로 포함하는 반도체 메모리 장치.
KR1020180142547A 2018-11-19 2018-11-19 반도체 메모리 장치 및 이를 구비하는 메모리 시스템 KR20200058048A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180142547A KR20200058048A (ko) 2018-11-19 2018-11-19 반도체 메모리 장치 및 이를 구비하는 메모리 시스템
US16/377,183 US10802912B2 (en) 2018-11-19 2019-04-06 Semiconductor memory device and memory system having the same
CN201910603254.5A CN111198779B (zh) 2018-11-19 2019-07-05 半导体存储器装置和存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180142547A KR20200058048A (ko) 2018-11-19 2018-11-19 반도체 메모리 장치 및 이를 구비하는 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20200058048A true KR20200058048A (ko) 2020-05-27

Family

ID=70727669

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180142547A KR20200058048A (ko) 2018-11-19 2018-11-19 반도체 메모리 장치 및 이를 구비하는 메모리 시스템

Country Status (3)

Country Link
US (1) US10802912B2 (ko)
KR (1) KR20200058048A (ko)
CN (1) CN111198779B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10824507B2 (en) * 2018-10-24 2020-11-03 Samsung Electronics Co., Ltd. Semiconductor memory device, controller, and memory system
KR102629457B1 (ko) 2018-10-24 2024-01-26 삼성전자주식회사 반도체 메모리 장치, 제어 장치, 및 메모리 시스템
KR20220081644A (ko) 2020-12-09 2022-06-16 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
JP2023005919A (ja) * 2021-06-29 2023-01-18 ルネサスエレクトロニクス株式会社 半導体装置および誤り検出方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3755779A (en) 1971-12-14 1973-08-28 Ibm Error correction system for single-error correction, related-double-error correction and unrelated-double-error detection
JPH01171199A (ja) * 1987-12-25 1989-07-06 Mitsubishi Electric Corp 半導体メモリ
JP3860436B2 (ja) * 2001-07-09 2006-12-20 富士通株式会社 半導体記憶装置
CN1713530A (zh) * 2004-06-22 2005-12-28 印芬龙科技股份有限公司 解码低密度奇偶校验(ldpc)码字的ldpc解码器
US7325183B2 (en) 2004-07-21 2008-01-29 Hewlett-Packard Development Company, L.P. Error correction code generation method and apparatus
KR101208547B1 (ko) * 2004-09-17 2012-12-05 엘지전자 주식회사 Ldpc 코드를 이용한 부호화 및 복호화 방법
JP2007149222A (ja) * 2005-11-28 2007-06-14 Toshiba Lsi System Support Kk 半導体メモリおよびメモリシステム
US7721178B2 (en) 2006-06-01 2010-05-18 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code
US7962837B2 (en) 2007-09-13 2011-06-14 United Memories, Inc. Technique for reducing parity bit-widths for check bit and syndrome generation for data blocks through the use of additional check bits to increase the number of minimum weighted codes in the hamming code H-matrix
TW200947882A (en) 2008-05-13 2009-11-16 Univ Ishou Decoding method of cyclic code weight decoder
US8359515B2 (en) 2009-12-02 2013-01-22 Lsi Corporation Forward substitution for error-correction encoding and the like
KR101304570B1 (ko) * 2012-01-30 2013-09-05 연세대학교 산학협력단 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치
US9235466B2 (en) * 2012-07-03 2016-01-12 Samsung Electronics Co., Ltd. Memory devices with selective error correction code
JP6018508B2 (ja) * 2013-01-09 2016-11-02 エスアイアイ・セミコンダクタ株式会社 不揮発性半導体記憶装置及びそのテスト方法
JP6212396B2 (ja) * 2014-01-08 2017-10-11 ルネサスエレクトロニクス株式会社 データ処理装置
KR102210327B1 (ko) 2014-08-21 2021-02-01 삼성전자주식회사 에러 알림 기능이 있는 메모리 장치
KR102178137B1 (ko) * 2014-08-26 2020-11-12 삼성전자주식회사 반도체 메모리 장치, 이의 에러 정정 방법 및 이를 포함하는 메모리 시스템
US9811420B2 (en) 2015-03-27 2017-11-07 Intel Corporation Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC)
KR20170035103A (ko) * 2015-09-22 2017-03-30 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR102258140B1 (ko) * 2017-07-06 2021-05-28 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템

Also Published As

Publication number Publication date
US10802912B2 (en) 2020-10-13
CN111198779B (zh) 2024-06-04
CN111198779A (zh) 2020-05-26
US20200159617A1 (en) 2020-05-21

Similar Documents

Publication Publication Date Title
KR101750662B1 (ko) 데이터 에러 교정용 회로, 장치, 및 방법
US10802912B2 (en) Semiconductor memory device and memory system having the same
KR100266748B1 (ko) 반도체 메모리 장치 및 그 장치의 에러 정정 방법
US6976194B2 (en) Memory/Transmission medium failure handling controller and method
US8132086B2 (en) Semiconductor memory device for byte-based masking operation and method of generating parity data
KR20210089016A (ko) 메모리 컨트롤러 및 메모리 시스템
US10824507B2 (en) Semiconductor memory device, controller, and memory system
US10795763B2 (en) Memory system and error correcting method thereof
KR20180089104A (ko) 메모리 모듈, 이를 포함하는 메모리 시스템 및 이의 에러 정정 방법
JPH0529935B2 (ko)
US5761221A (en) Memory implemented error detection and correction code using memory modules
CN115705265A (zh) 存储器设备及其操作方法
JP2017022651A (ja) 誤り訂正装置、半導体記憶装置、および誤り訂正方法
US7075851B2 (en) Semiconductor memory device inputting/outputting data and parity data in burst operation
US11200117B2 (en) Semiconductor memory device, controller, memory system, and operation method thereof
US11194653B2 (en) Semiconductor memory device, and memory system having the same
US11126500B2 (en) Error detection and correction with integrity checking
US20210119647A1 (en) Parity generation circuits for a plurality of error correction levels, memory controllers, and memory modules including the parity generation circuits
JP2005011386A (ja) 誤り訂正装置
US20240096437A1 (en) Memory device including error correction device
KR20180052154A (ko) 메모리 시스템
US20240022263A1 (en) Memory, memory module, memory system, and operation method of memory system
CN112017724B (zh) 存储系统和在存储系统中纠正错误的方法
TWI703572B (zh) 記憶體儲存裝置及其記憶體測試方法
JP2001202793A (ja) 半導体記憶装置におけるエラー訂正符号化方法および半導体記憶装置

Legal Events

Date Code Title Description
A201 Request for examination