KR20170039057A - 메모리 시스템 및 메모리 에러 정정 방법 - Google Patents

메모리 시스템 및 메모리 에러 정정 방법 Download PDF

Info

Publication number
KR20170039057A
KR20170039057A KR1020150138269A KR20150138269A KR20170039057A KR 20170039057 A KR20170039057 A KR 20170039057A KR 1020150138269 A KR1020150138269 A KR 1020150138269A KR 20150138269 A KR20150138269 A KR 20150138269A KR 20170039057 A KR20170039057 A KR 20170039057A
Authority
KR
South Korea
Prior art keywords
bit
data
memory
error correction
error
Prior art date
Application number
KR1020150138269A
Other languages
English (en)
Other versions
KR101860809B1 (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 KR1020150138269A priority Critical patent/KR101860809B1/ko
Priority to US15/059,102 priority patent/US9886340B2/en
Publication of KR20170039057A publication Critical patent/KR20170039057A/ko
Application granted granted Critical
Publication of KR101860809B1 publication Critical patent/KR101860809B1/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/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
    • G06F11/1024Identification of the 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/44Indication or identification of errors, e.g. for repair
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • 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/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/783Masking faults in memories by using spares or by reconfiguring using programmable devices with refresh of replacement cells, e.g. in DRAMs
    • 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
    • H03M13/2909Product 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/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
    • H03M13/2927Decoding strategies
    • 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/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

본 발명은 메모리 시스템 및 메모리 에러 정정 방법에 관한 것으로, 메모리 시스템은 적어도 하나의 메모리 칩을 포함하고, 상기 적어도 하나의 메모리 칩은, 복수의 제1 메모리 셀을 포함하는 데이터 비트 어레이, 복수의 제2 메모리 셀을 포함하고, 상기 데이터 비트 어레이 내 상기 제1 메모리 셀 중 불량 셀을 구제하는 제1 패리티 비트들을 상기 복수의 제2 메모리 셀에 저장하는 제1 패리티 어레이를 포함하는 뱅크(bank), 복수의 제3 메모리 셀을 포함하고, 상기 데이터 비트 어레이 내 상기 복수의 제1 메모리 셀들 중 불량 셀에 대한 위치 정보인 포지션 비트들을 저장하는 포지션 비트 어레이를 포함하는 포지션 비트 영역 및 상기 데이터 비트 어레이로부터 독출된 복수의 데이터 버스트를 포함하는 청크에 대하여 외부로부터 인가되는 주소와 상기 포지션 비트 영역로부터 독출된 포지션 비트를 비교하고, 상기 청크에 포함된 상기 복수의 데이터 버스트 중 하나의 오류 데이터 버스트를 검출하여 상기 검출된 데이터 버스트에 대한 제1 오류 정정을 수행하는 제1 ECC 엔진부를 포함할 수 있다.

Description

메모리 시스템 및 메모리 에러 정정 방법{MEMORY SYSTEM AND ERROR CORRECTION METHOD THEREOF}
본 발명은 메모리 시스템 및 메모리 에러 정정 방법에 관한 것으로, 보다 상세하게는 메모리 시스템의 신뢰성 및 성능을 향상시킬 수 있는 메모리 시스템 및 메모리 에러 정정 방법에 관한 것이다.
최근 들어 DRAM(Dynamic Random Access Memory)의 공정 스케일링(scaling)이 지속적으로 높아짐에 따라 메모리 셀에 오류가 발생하는 경향이 증가하고 있다. 또한, DRAM은 유한 데이터 리텐션(finite data retention) 특성을 갖는 메모리로서, DRAM의 공정 스케일링이 증가함으로써, 메모리 셀에 저장된 데이터의 신뢰성이 저하되고 있다.
또한, 셀 오류율이 증가하게 됨에 따라, 예비 리페어(repair)자원을 추가하는 것과 에러 정정 코드(ECC)에 의존하는 것과 같은 종래의 해결책은 높은 면적 오버헤드, 데이터 코딩의 대기시간 불이익 및 in-DRAM ECC(DRAM 칩 내의 ECC)와 rank-level ECC(DRAM 칩 간의 ECC)간의 충돌이 발생하는 문제점이 있다.
따라서 상술된 문제점을 해결하기 위한 기술이 필요하게 되었다.
한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명의 일실시예는 in-DRAM ECC와 rank-level ECC간 발생하는 상호충돌현상을 해결하는 데에 목적이 있다.
본 발명의 일실시예는 ECC가 적용되는 메모리 칩의 면적(area) 오버헤드(overhead)를 줄이는 데에 목적이 있다.
또한, 본 발명의 일실시예는 메모리의 신뢰성을 향상시킬 수 있는 메모리 시스템을 제공하는 데에 목적이 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따르면 적어도 하나의 메모리 칩을 포함하는 메모리 시스템에 있어서, 상기 적어도 하나의 메모리 칩은, 복수의 제1 메모리 셀을 포함하는 데이터 비트 어레이 및 복수의 제2 메모리 셀을 포함하고, 상기 데이터 비트 어레이 내 상기 제1 메모리 셀 중 불량 셀을 구제하는 제1 패리티 비트들을 상기 복수의 제2 메모리 셀에 저장하는 제1 패리티 어레이를 포함하는 뱅크(bank), 복수의 제3 메모리 셀을 포함하고, 상기 데이터 비트 어레이 내 상기 복수의 제1 메모리 셀들 중 불량 셀에 대한 위치 정보인 포지션 비트들을 저장하는 포지션 비트 어레이를 포함하는 포지션 비트 영역 및 상기 데이터 비트 어레이로부터 독출된 복수의 데이터 버스트를 포함하는 청크에 대하여 외부로부터 인가되는 주소와 상기 포지션 비트 영역로부터 독출된 포지션 비트를 비교하고, 상기 청크에 포함된 상기 복수의 데이터 버스트 중 하나의 오류 데이터 버스트를 검출하여 상기 검출된 데이터 버스트에 대한 제1 오류 정정을 수행하는 제1 ECC 엔진부를 포함할 수 있다.
본 발명의 제 2 측면에 따르면, 복수의 메모리 칩을 포함하는 메모리 시스템에 의해 수행되는 메모리 에러 정정 방법은, 상기 복수의 메모리 칩 각각으로부터 복수의 데이터 버스트를 포함하는 청크, 제1패리티 비트 및 포지션 비트를 상기 복수의 메모리 칩 각각에 포함된 제1 ECC 엔진부로 독출하는 단계, 상기 제1 ECC 엔진부가 상기 포지션 비트를 이용하여 상기 복수의 데이터 버스트 중 오류를 갖는 하나의 데이터 버스트를 추출하는 단계 및 상기 제1 ECC 엔진부가 상기 추출된 오류 데이터 버스트에 대응되는 제1 패리티 비트를 이용하여 제 1오류 정정을 수행하는 단계를 포함할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, in-DRAM ECC와 rank-level ECC간 발생하는 상호충돌현상을 해결할 수 있다.
또한, 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 포지션 비트를 이용하여 ECC를 수행함으로써, 메모리 칩의 면적오버헤드를 줄일 수 있다.
또한, 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 메모리의 신뢰성을 향상시킬 수 있는 메모리 시스템을 제공할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일실시예에 따른 메모리 시스템을 도시한 블록도이다.
도 2 내지 도 3은 본 발명의 일실시예에 따른 메모리 칩을 도시한 블록도이다.
도 4는 본 발명의 일실시예에 따른 메모리 에러 정정 방법을 설명하기 위한 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
다만, 이를 설명하기에 앞서, 아래에서 사용되는 용어들의 의미를 먼저 정의한다.
도 1은 본 발명의 일실시예에 따른 메모리 시스템(10)을 도시한 블록도이다.
본 발명의 일실시예에 따른 메모리 시스템(10)은 메모리 모듈(100), 제2 ECC엔진부(300), 메모리 컨트롤러(400)를 포함할 수 있다. 메모리 모듈(100)은 적어도 하나의 메모리 칩(1000)을 포함할 수 있다.
메모리 컨트롤러(memory controller)(400)는 메모리 시스템(memory system)(100)의 동작을 전반적으로 제어하며, 메모리 칩(1000)들과 인터페이싱할 수 있다. 예컨대, 메모리 컨트롤러(400)는 메모리 칩(1000)들을 제어하여 데이터를 독출(read)하거나 데이터를 기입(write)한다.
또한, 메모리 컨트롤러(400)는 메모리 칩(1000)들을 제어하기 위한 각종 신호들, 예를 들어, 명령 및 주소를 인가하여 메모리 칩(1000)들의 동작을 제어할 수 있다.
또한, 메모리 컨트롤러(400)는 메모리 모듈(100)과 통신하여 데이터 신호를 메모리 칩(1000)으로 제공하거나 데이터 신호를 메모리 칩(1000)으로부터 수신할 수 있다.
메모리 모듈(100)은 적어도 하나의 랭크(200)를 포함할 수 있고, 랭크(200)는 복수의 메모리 칩(1000)을 포함할 수 있다. 예를 들어, 각각의 랭크(200)는 9개의 메모리 칩(1000)을 포함할 수 있다. 따라서, 메모리 모듈(100)은 모듈 보드(module board) 상에 장착되는 적어도 하나의 메모리 칩(1000)을 구비할 수 있다.
메모리 칩(1000)은 메모리 셀이 어레이 형태로 배치되는 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 다수 개의 영역으로 구분될 수 있다. 예를 들어, 메모리 셀 어레이는 적어도 하나의 뱅크(Bank)를 포함할 수 있다. 따라서, 랭크(200)는 다수의 뱅크로 분할될 수 있으며, 뱅크는 적어도 하나의 어레이로 분할될 수 있다. 또한, 각각의 뱅크(1110)는 다수 개의 페이지(page)를 포함할 수 있다. 페이지는 메모리 컨트롤러(400)로부터 한 번의 액티브 명령(activate command: ACT)이 인가되었을 때 뱅크(1110)로부터 센스 앰프(1160)로 이동되는 데이터를 저장하는 단위로 정의될 수 있다.
메모리 칩(1000)은 DDR SDRAM (Double Data Rate Synchronous Dynamic Ramdom Access Memory), GDDR (Graphics Double Data Rate) SDRAM, LPDDR (Low Power Double Data Rate) SDRAM, RDRAM(Rambus Dynamic Ramdom Access Memory) 등과 같은 동적 랜덤 액세스 메모리 (Dynamic Ramdom Access Memory, DRAM)가 될 수 있다.
각각의 메모리 칩(1000)은 데이터 비트, 제1패리티 비트, 포지션 비트, 제2 패리티 비트를 저장하는데 사용될 수 있다.
여기서 데이터 비트란, 메모리 칩(1000)에 저장되는 데이터를 의미할 수 있다. 또한, 제1 패리티 비트란, 데이터 비트의 제1 에러 정정을 수행하기 위한 정보일 수 있다. 또한, 여기서 포지션 비트란 복수의 데이터 버스트를 포함하는 청크 중 오류를 갖는 하나의 데이터 버스트를 추출하도록 하는 위치 정보를 갖고, 오류를 갖는 하나의 데이터 버스의 위치에 대한 정보를 포함한다. 따라서 포지션 비트는, 제1 패리티 비트가 어떤 데이터 버스트에 적용되어야 하는지 결정할 수 있는 정보를 의미할 수 있다. 또한, 제2 패리티 비트는 포지션 비트의 에러 정정을 수행하기 위한 정보일 수 있다. 여기서 데이터 버스트는 DRAM 버스트(DRAM burst)를 의미할 수 있다.
또한, 예를 들어, 8개의 메모리 칩(1000)이 데이터를 위해 사용되고 9번째 메모리 칩(2000)이 제3 패리티를 저장하여 제2 에러 정정을 위해 사용될 수 있다. 이 경우 제2 오류 정정은 제2 ECC 엔진부(300)에 의해 수행될 수 있다.
예를 들어, 9번째 메모리 칩(2000)은 적어도 하나의 메모리 칩(1000)으로부터 독출되는 데이터에 대한 에러를 정정하기 위한 제3패리티 비트를 저장할 수 있다. 따라서 메모리 시스템(10)은 제3 패리티 저장부(2000)를 더 포함할 수 있다.
또한, 제2 ECC 엔진부(300)는 적어도 하나의 메모리 칩(1000)으로부터 독출되는 데이터 및 독출되는 데이터에 대응되는 제3 패리티 비트를 이용하여 제2 오류 정정을 수행할 수 있다. 여기서 제2 ECC 엔진부(300)에서 수행되는 제2 오류 정정은 적어도 하나의 메모리 칩(1000)들을 포함하는 랭크에 대해 수행된다는 점에서 “rank-level ECC”로 볼 수 있다.
본 발명의 일실시예에 따른 메모리 시스템(10)은 데스크탑, 노트북, 모바일 장치와 같은 시스템에 적용될 수 있으나, 이에 한정되지 않는다.
도 2 내지 도 3은 본 발명의 일실시예에 따른 메모리 칩(1000)을 도시한 블록도이다.
본 발명의 일실시예에 따른 메모리 칩(100)은 적어도 하나의 메모리 셀 어레이(1100)를 포함할 수 있다.
또한, 메모리 셀 어레이(1100)는 복수개의 메모리 셀들이 행들 및 열들로 배열되는 적어도 하나의 뱅크(1100)를 포함할 수 있다. 뱅크(1100) 각각에는 메모리 셀들과 연결되는 워드라인들과 비트라인들을 선택하는 로우 디코더(1140)와 컬럼 디코더(1150)가 연결될 수 있다.
또한, 본 발명의 일실시예에 따른 뱅크(1100)는 데이터 비트 어레이(1111) 및 제1 패리티 어레이(1112)를 포함할 수 있다.
한편, 데이터 비트 어레이(1111)는 데이터를 저장하는 어레이로서, 복수의 제1 메모리 셀을 포함할 수 있다. 제1 패리티 어레이(1112)는 데이터 비트 어레이로부터 독출된 데이터의 에러 정정을 위한 패리티 비트를 저장하는 어레이로서, 복수의 제2 메모리 셀을 포함할 수 있다.
본 발명의 일실시예에 따른 제1 패리티 어레이(1112)는 데이터 비트 어레이(1111) 내의 제1 메모리 셀 중 불량 셀을 구제하는 제1 패리티 비트들을 복수의 제2 메모리 셀에 저장할 수 있다. 불량 셀은 제조상의 문제로 인해 영구적으로 완전히 동작하지 않는 셀 뿐 아니라 특정 전압 조건, 특정 동작 타이밍에서 동작하지 않는 셀 등을 포함하는 셀을 의미할 수 있다.
한편, 메모리 셀 어레이(1100)는 포지션 비트 영역(1120)을 포함할 수 있다. 포지션 비트 영역(1120)은 포지션 비트를 저장하기 위한 어레이로서, 뱅크(1100)와 별도의 독립적인 어레이로 구성될 수 있다.
포지션 비트 영역(1120)은 메모리 셀들과 연결되는 워드라인들과 비트라인들을 선택하는 로우 디코더(1140)와 컬럼 디코더(1150)가 연결될 수 있다.
포지션 비트 영역(1120)은 복수의 제3 메모리 셀을 포함하고, 데이터 비트 어레이(1111) 내 복수의 제1 메모리 셀들 중 불량 셀에 대한 위치 정보인 포지션 비트들을 저장하는 포지션 비트 어레이(1121)를 포함할 수 있다.
예를 들어 포지션 비트는 복수의 제1 메모리 셀들 중 불량 셀에 대한 위치 정보를 메모리 시스템(10)이 작동하는 경우에 포지션 비트 어레이(1121)에 저장될 수 있다. 이 경우 포지션 비트 어레이(1121)는 제1 메모리 셀들 중 불량 셀에 대한 위치 정보인 포지션 비트를 저장하는 비휘발성 메모리(미도시)로부터 수신한 포지션 비트를 저장할 수 있다.
여기서 포지션 비트 어레이(1121)는 뱅크(1101)의 사이즈보다 작을 수 있다. 따라서 메모리 셀 어레이(1100)에 대한 읽기 시간이 감소할 수 있다.
또한, 포지션 비트 영역(1120)은 복수의 제4 메모리 셀을 포함하고, 포지션 비트 어레이(1121) 내 제3 메모리 셀들 중 불량 셀을 구제하는 제2패리티 비트들을 저장하는 제2 패리티 어레이(1122)를 포함할 수 있다.
한편, 본 발명의 일실시예에 따른 로우 디코더(1140) 및 컬럼 디코더(1150)는 뱅크(1100) 및 포지션 비트 영역(1120)에 의해 공유될 수 있다. 예를 들어, 포지션 비트 영역(1120)을 뱅크(1100)에 인접하게 위치 시키고, 액티브 명령(activate command: ACT)에 의해 뱅크가 액티브되는 경우 포지션 비트가 뱅크의 컬럼 디코더(1150)에 래치(latch)되도록 할 수 있다.
한편, 본 발명의 일실시예에 따른 메모리 칩(1000)은 적어도 하나의 센스 앰프(1160)을 포함할 수 있다. 센스 앰프(1160)는 글로벌 데이터라인 센스 앰프(global dataline sense amplifier: GDSA)일 수 있다. 센스 앰프(1160)는 메모리 셀 어레이로부터 독출된 데이터 비트, 제1패리티 비트, 포지션 비트, 제2 패리티 비트들을 감지 증폭할 수 있다.
한편, 본 발명의 일실시예에 따른 메모리 칩(1000)은 제1 ECC 엔진부(1200)을 포함할 수 있다. 제1 ECC 엔진부(1200)는 에러의 검출/정정을 하는 과정에서 제1 패리티 비트들을 이용하는 ECC 동작을 수행할 수 있다. 여기서 제1 ECC 엔진부(1200)에서 수행되는 ECC 동작은 메모리 칩(1000) 내부에서 수행될 수 있다는 점에서 “in-DRAM ECC”로 볼 수 있다.
또한, 제1 ECC 엔진부(1200)는 데이터 비트 어레이(1111)로부터 독출된 복수의 데이터 버스트를 포함하는 청크에 대하여 메모리 컨트롤러(400)로부터 인가되는 주소와 포지션 비트 영역으로부터 독출된 포지션 비트를 비교하고, 청크에 포함된 복수의 데이터 버스트 중 하나의 오류 데이터 버스트를 검출하여 검출된 데이터 버스트에 대한 제1 오류 정정을 수행할 수 있다.
예를 들어, 제1 ECC 엔진부(1200)에 데이터 비트 어레이(1111)로부터 복수의 데이터 버스트가 독출될 수 있다. 이때 제1 ECC 엔진부(1200)는 복수의 데이터 버스트를 하나의 청크로 그룹핑 할 수 있다.
또한, 제1 ECC 엔진부(1200)에 제1 패리티 어레이(1112)로부터 오류가 있는 데이터 버스트에 대하여 오류 정정을 수행하기 위한 패리티 비트가 독출될 수 있다.
또한, 제1 ECC 엔진부(1200)에 포지션 비트 어레이(1121)로부터 포지션 비트들이 독출될 수 있다.
여기서 제1 ECC 엔진부(1200)는 외부로부터 인가된 주소와 포지션 비트를 비교하여 청크 중 오류를 갖는 하나의 데이터 버스트를 특정할 수 있다. 즉, 포지션 비트는 제1 패리티 비트가 데이터 버스트에 적용되어야 하는지를 결정하기 위해 주소와 비교될 수 있다. 이에 따라 제1 ECC 엔진부(1200)는 오직 하나의 데이터 버스트, 패리티 비트 및 포지션 비트를 이용하여 제1 오류 정정을 수행할 수 있다.
이에 따라 메모리 컨트롤러(400)의 관점에서 데이터 명령과 주소를 인가하는 경우 특정 위치에 대해서는 오류 정정을 위한 인코딩 및 디코딩 레이턴시(encoding/decoding latency: coding latency)를 가지게 하고, 제1 ECC 엔진부(1200)는 포지션 비트에 의해 결정된 패리티 비트가 적용되어야 하는 데이터 버스트가 특정 위치와 대응되는 경우 리맵핑(remaping)시켜 오류 정정을 위한 인코딩 및 디코딩 레이턴시를 가져갈 수 있다.
예를 들어 메모리 컨트롤러(400)가 in-DRAM ECC를 위한 여분의 코딩 레이턴시가 필요한 데이터 버스트를 아는 경우 해당 버스트에 대해서 여분의 액세스 대기시간을 제공할 수 있다. 만일 메모리 컨트롤러(400)가 여분의 액세스 대기시간을 제공할 데이터 버스트에 대한 위치를 고정하여 고정위치를 가지는 버스트 접근 시 여분의 액세스 대기시간을 제공하고, 제1 ECC엔진부(1200)는 포지션 비트에 의해 결정된 패리티 비트가 적용되어야 할 데이터 버스트에 대해서는 상기 고정위치를 가지는 버스트에 대한 접근으로 매칭시켜 여분의 코딩 레이턴시를 확보할 수 있다.
또한, 제1 ECC 엔진부(1200)는 이중 오류 검출(single error correction, double error detection: SECDED) 해밍 코드들에 기초하여 제1 오류 정정을 수행할 수 있다. 여기서 청크의 사이즈는 뱅크의 사이즈만큼 클 수 있지만, 액티브 명령에 따라 로우가 액티브된 후에 데이터 버스트 및 패리티 비트가 비트 라인 센스 앰프(Bit Line Sense Amplifier: BLSA)에 준비되도록 청크의 사이즈를 데이터 비트 어레이(1111)의 로우 사이즈로 제한할 수 도 있다.
또한, 제1 ECC 엔진부(1200)는 더블 에러 정정(double error correction: DEC)을 적용하여 제1오류 정정을 수행할 수 있다. 따라서 청크 중 포지션 비트에 의해 특정되는 데이터 버스트에서 에러가 정정될 수 있고, 만일 나머지 버스트에서도 싱글 비트 에러가 발생하는 경우 제2 ECC 엔진부(300)가 에러를 정정할 수 있다.
한편, 본 발명의 일실시예에 따른 메모리 칩(1000)은 입출력 패드(1300)를 포함할 수 있다. 따라서, 각각의 메모리 셀들에 저장된 데이터는 해당되는 입출력 패드를 통하여 입출력될 수 있다.
한편, 본 발명의 일실시예에 따른 메모리 칩(1000)은 캐시(1400)를 포함할 수 있다. 캐시(1400)는 복수의 메모리 셀들 중 불량 셀의 주소를 저장하고, 불량 셀의 주소에 대응되는 데이터를 저장할 수 있다.
캐시(1400)는 복수의 메모리 셀들 중 불량 셀에 대한 주소를 저장하는 캐시 태그 어레이(미도시)를 포함할 수 있다. 또한, 캐시(1400)는 제1메모리 셀들 중 불량 셀에 대한 주소에 저장되는 데이터를 저장하는 캐시 데이터 어레이(미도시)를 포함할 수 있다.
따라서, 캐시(1400)는 메모리 컨트롤러(400)로부터 주소를 수신하고, 수신한 주소가 캐시 태그 어레이에 저장된 불량 셀에 대한 주소와 일치하여 에러 데이터를 포함하는 데이터 버스트의 주소에 접근하는 경우 캐시 데이터 어레이에 저장된 불량 셀의 주소에 대응되는 데이터를 출력할 수 있다. 이로 인해 캐시(1400) 및 뱅크(1100)가 병렬로 액세스될 수 있기 때문에 DRAM 동작의 대기시간을 증가시키지 않을 수 있다.
또한, 캐시(1400)는 뱅크(1100)보다 입출력 패드(1300)에 인접하여 위치할 수 있다.
한편, 본 발명의 일실시예에 따른 메모리 칩(1000)은 블룸 필터(1600)를 포함할 수 있다. 블룸 필터(1600)는 메모리 컨트롤러(400)로부터 인가되는 주소가 불량 셀에 대한 주소에 속하는지 식별하는데 사용될 수 있다.
예를 들어, 블룸 필터(1600)는 입력되는 수를 한정된 범위(R) 내의 다른 숫자로 변화하는 N개의 독립 해시 함수를 이용할 수 있다. 또한, R개의 비트로 구성되는 SRAM(static random access memory) 저장소(미도시)를 가질 수 있으며, 각각의 비트는 처음에 0으로 설정되어 클리어링 되어 있을 수 있다. 그 후 블룸 필터(1600)는 미리 파악된 불량 셀을 포함하는 주소에 대해 해시 함수를 실행하고 해시 값에 상응하는 SRAM 저장소(미도시) 내의 위치의 비트를1로 설정할 수 있다. 따라서 블룸 필터(1600)는 인가되는 주소에 해시 함수를 적용하고 해시 값에 상응하는 위치를 점검하여 해당 위치의 비트 값이 0을 가지면 불량 셀을 포함하는 주소가 아님을 판단할 수 있고, 만일 해당 위치의 비트 값이 1이면 인가되는 주소가 불량 셀을 포함하는 주소일 수도 있다는 것을 판단할 수 있다.
반면, 도 4에 도시된 실시예에 따른 메모리 에러 정정 방법은 도 1 내지 3에 도시된 메모리 시스템(10)에서 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하에서 생략된 내용이라고 하더라도 도 1 내지 도 3에 도시된 메모리 시스템(10)에 관하여 이상에서 기술한 내용은 도 3에 도시된 실시예에 따른 메모리 에러 정정 방법에도 적용될 수 있다.
본 발명의 일실시예에 따른 메모리 시스템(10)은 복수의 메모리 칩 각각으로부터 복수의 데이터 버스트를 포함하는 청크, 제1 패리티 비트 및 포지션 비트를 독출할 수 있다(S100).
예를 들어, 데이터 비트 어레이(1111), 제1패리티 비트 어레이(1112), 포지션 비트 어레이(1121) 및 제2 패리티 비트 어레이(1122)는 로우 디코더(1140) 및 컬럼 디코더(1150)를 공유할 수 있다. 따라서, 메모리 컨트롤러(400)로부터 액티브 명령 및 주소를 수신하여 해당 로우 주소에 대응되는 뱅크(1100)가 액티브되는 경우 수신한 주소에 대응되는 포지션 비트가 컬럼 디코터(1150)에 래치(latch)되도록 하고, 그 후 독출 명령(read: RD) 또는 기입 명령(write: WR)을 위해 포지션 비트가 사용되도록 할 수 있다.
또한, 메모리 시스템(10)은 복수의 메모리 칩(1000) 각각으로부터 복수의 데이터 버스트를 포함하는 청크, 제1패리티 비트 및 포지션 비트가 복수의 메모리 칩(1000) 각각에 포함된 제1 ECC엔진부(1200)로 독출되도록 할 수 있다
한편, 본 발명의 일실시예에 따른 메모리 시스템(10)에 포함되는 제1 ECC 엔진부(1200)가 외부로부터 인가된 주소와 독출한 포지션 비트를 비교하여 복수의 데이터 버스트를 포함하는 청크 중 오류를 가지는 하나의 데이터 버스트를 추출할 수 있다(S101).
한편, 본 발명의 일실시예에 따른 메모리 시스템(10)에 포함되는 제1 ECC엔진부(1200)는 추출된 데이터 버스트에 대해서 대응되는 제1 패리티 비트를 이용하여 제1오류 정정을 수행할 수 있다(S102).
예를 들어, 제1 오류 정정은 더블-비트 에러 정정(double-bit error correction: DEC) 또는 이중 오류 검출(single-bit error correction, double-bit error detection: SECDED)를 이용하여 수행할 수 있다.
만일 제1 오류 정정 수행시 싱글 비트 에러 정정(single-bit error correction: SEC)코드에 기초하는 경우에는 후에 제2 ECC 엔진부(300)에 의해 수행되는 제2 오류 정정시 오류를 정정하지 못하고, 오류를 검출하지도 못하는 상황이 발생할 수 있다. 즉, in-DRAM ECC 와 rank-level ECC 간에 상호 충돌 현상이 발생할 수 있다.
예를 들어, 데이터 버스트 내에 2 비트 오류가 발생한 경우에 만일 해밍 거리가 3인 SEC 코드에 기초하여 제1오류 정정을 수행하는 경우 제1 ECC 엔진부(1200)는 1비트 오류를 갖는 코드워드로서 인식하고 오류 정정을 수행할 수 있다. 따라서, 오류가 없는 비트를 오류가 있는 비트로 정정될 수 있고, 결과적으로 3비트의 오류를 가질 수 있다. 따라서 제2 ECC 엔진부(300)는 오류를 정정할 수 없을 뿐만 아니라 오류를 검출하지도 못하는 상황이 발생할 수 있다.
따라서, 본 발명의 일실시예에 따른 메모리 시스템(10)은 오류를 갖는 데이터 버스트를 추출한 후 추출된 데이터가 싱글 비트 에러인지를 판단할 수 있다(S103). 예를 들어 제1 ECC 엔진부(1200)가 이중 오류 검출(SECDED) 해밍 코드에 기초하여 오류 정정을 수행하는 경우에 싱글 비트 에러인지 여부를 판단할 수 있다.
또한, 본 발명의 일실시예에 따른 메모리 시스템(10)에 포함된 제1 ECC 엔진부(1200)는 추출된 데이터 버스트가 싱글 비트 에러인 경우 싱글 비트 정정을 수행할 수 있다(S104).
또한, 본 발명의 일실시예에 따른 메모리 시스템(10)에 포함된 제1 ECC 엔진부(1200)는 추출된 데이터 버스트가 더블 비트 에러인 경우 싱글-비트 에러 정정(SEC)을 수행하지 않고, 더블-비트 에러 검출(double-bit error detection: DED)을 하여 제1 오류 정정을 수행할 수 있다(S105). 따라서, 더블-비트 에러 검출(DED)에 따라 버블 비트 에러가 검출되는 경우 싱글-비트 에러 정정을 수행하지 않음으로써 정상 비트를 잘못 정정하는 것을 방지할 수 있으며, 제2 ECC 엔진부(300)도 더블-비트 에러 검출을 수행함에 따라서 더블 비트 에러를 발견하지 못하는 상황을 방지할 수 있다. 이에 따라 in-DRAM ECC 와 rank-level ECC 간의 충돌을 방지할 수 있다.
한편, 본 발명의 일실시예에 따른 메모리 시스템(10)에 포함된 제2 ECC엔진부(300)는 메모리 시스템(10)에 포함된 복수의 메모리 칩(1000) 각각이 제1 오류 정정을 거친 데이터를 수신하고, 수신한 데이터 및 제3 패리티 비트에 기초하여 제2 오류 정정을 수행할 수 있다(S106).
예를 들어, 복수의 메모리 칩(1000) 각각이 제1 오류 정정을 거친 데이터를 출력하고, 제2 ECC 엔진부(300)가 출력된 데이터 및 제3 패리티 저장부로부터 출력된 제3 패리티 비트에 기초하여 제2 오류 정정을 수행할 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 메모리 시스템 100: 메모리 모듈
200: 랭크 300: 제2 ECC 엔진부
400: 메모리 컨트롤러 1000: 메모리 칩

Claims (18)

  1. 적어도 하나의 메모리 칩을 포함하는 메모리 시스템에 있어서,
    상기 적어도 하나의 메모리 칩은,
    복수의 제1 메모리 셀을 포함하는 데이터 비트 어레이; 및
    복수의 제2 메모리 셀을 포함하고, 상기 데이터 비트 어레이 내 상기 제1 메모리 셀 중 불량 셀을 구제하는 제1 패리티 비트들을 상기 복수의 제2 메모리 셀에 저장하는 제1 패리티 어레이를 포함하는 뱅크(bank);
    복수의 제3 메모리 셀을 포함하고, 상기 데이터 비트 어레이 내 상기 복수의 제1 메모리 셀들 중 불량 셀에 대한 위치 정보인 포지션 비트들을 저장하는 포지션 비트 어레이를 포함하는 포지션 비트 영역; 및
    상기 데이터 비트 어레이로부터 독출된 복수의 데이터 버스트를 포함하는 청크에 대하여 외부로부터 인가되는 주소와 상기 포지션 비트 영역로부터 독출된 포지션 비트를 비교하고, 상기 청크에 포함된 상기 복수의 데이터 버스트 중 하나의 오류 데이터 버스트를 검출하여 상기 검출된 데이터 버스트에 대한 제1 오류 정정을 수행하는 제1 ECC 엔진부를 포함하는 것을 특징으로 하는, 메모리 시스템.
  2. 제1항에 있어서,
    상기 포지션 비트 영역는,
    복수의 제4 메모리 셀을 포함하고, 상기 포지션 비트 어레이 내 상기 복수의 제3 메모리 셀들 중 불량 셀을 구제하는 제2 패리티 비트를 상기 복수의 제4 메모리 셀에 저장하는 제2 패리티 어레이를 포함하고,
    상기 제1 ECC 엔진부는,
    상기 제2 패리티 비트를 이용하여 상기 포지션 비트의 에러를 구제하는 동작을 수행하는 것을 특징으로 하는, 메모리 시스템.
  3. 제1항에 있어서,
    상기 제1 ECC 엔진부는,
    상기 청크의 사이즈 및 상기 제1 패리티 비트들의 사이즈를 변경하여 상기 제1 오류 정정을 수행하는 것을 특징으로 하는, 메모리 시스템.
  4. 제1항에 있어서,
    상기 청크의 사이즈는 상기 데이터 비트 어레이의 로우 사이즈인 것을 특징으로 하는, 메모리 시스템.
  5. 제1항에 있어서,
    상기 포지션 비트 어레이는 상기 뱅크의 사이즈보다 작은 것을 특징으로 하는, 메모리 시스템.
  6. 제1항에 있어서,
    상기 적어도 하나의 메모리 칩은,
    상기 뱅크 및 상기 포지션 비트 영역에 의해 공유되는 로우(row) 디코더 및 컬럼 디코더를 더 포함하는, 메모리 시스템.
  7. 제6항에 있어서,
    상기 포지션 비트는,
    액티브 명령(activate command)에 의해 상기 뱅크가 액티브되는 경우, 상기 컬럼 디코더에 래치(latch)되는 것을 특징으로 하는, 메모리 시스템.
  8. 제1항에 있어서,
    상기 메모리 시스템은,
    상기 제1 메모리 셀들 중 불량 셀에 대한 위치 정보인 포지션 비트를 저장하는 비휘발성 메모리를 더 포함하고,
    상기 포지션 비트 어레이는,
    상기 비휘발성 메모리에 기 저장된 포지션 비트를 저장하는 것을 특징으로 하는, 메모리 시스템.
  9. 제1항에 있어서,
    상기 제1 ECC 엔진부는,
    이중 오류 검출(SECDED) 해밍 코드들에 기초하여 상기 제1 오류 정정을 수행하는 메모리 시스템.
  10. 제1항에 있어서,
    상기 메모리 시스템은,
    상기 적어도 하나의 메모리 칩으로부터 독출되는 데이터를 위한 제3 패리티 비트를 저장하는 제3 패리티 저장부; 및
    상기 독출되는 데이터 및 상기 독출되는 데이터에 대응되는 상기 제3 패리티 비트를 이용하여 제2 오류 정정을 수행하는 제2 ECC엔진부를 포함하는, 메모리 시스템.
  11. 제10항에 있어서,
    상기 제2 ECC 엔진부는,
    이중 오류 검출(SECDED) 해밍 코드들에 기초하여 상기 제2 오류 정정을 수행하는, 메모리 시스템.
  12. 제1항에 있어서,
    상기 메모리 칩은,
    복수의 메모리 셀 중 불량 셀의 주소를 저장하고, 상기 불량 셀의 주소에 대응되는 데이터를 저장하는 캐시를 더 포함하는, 메모리 시스템.
  13. 제10항에 있어서,
    상기 메모리 칩은,
    인가되는 주소에 해시 함수를 적용하고 해시 값에 상응하는 위치를 점검하여 상기 해시 값에 상응하는 위치의 비트 값에 기초하여 상기 인가되는 주소가 불량 셀을 포함하는 주소인지 여부를 판단하는 블룸 필터를 더 포함하는, 메모리 시스템.
  14. 복수의 메모리 칩을 포함하는 메모리 시스템에 의해 수행되고,
    상기 복수의 메모리 칩 각각으로부터 복수의 데이터 버스트를 포함하는 청크, 제1패리티 비트 및 포지션 비트를 상기 복수의 메모리 칩 각각에 포함된 제1 ECC 엔진부로 독출하는 단계;
    상기 제1 ECC 엔진부가 상기 포지션 비트를 이용하여 상기 복수의 데이터 버스트 중 오류를 갖는 하나의 데이터 버스트를 추출하는 단계; 및
    상기 제1 ECC 엔진부가 상기 추출된 오류 데이터 버스트에 대응되는 제1 패리티 비트를 이용하여 제 1오류 정정을 수행하는 단계를 포함하는, 메모리 에러 정정 방법.
  15. 제14항에 있어서,
    상기 제1 ECC 엔진부가 상기 포지션 비트를 이용하여 상기 복수의 데이터 버스트 중 오류를 갖는 하나의 데이터 버스트를 추출하는 단계는,
    상기 제1 ECC 엔진부가 외부로부터 인가된 주소와 상기 포지션 비트를 비교하여 상기 복수의 데이터 버스트 중 오류를 가지는 하나의 데이터 버스트를 추출하는 단계를 포함하는, 메모리 에러 정정 방법.
  16. 제14항에 있어서,
    상기 제1 오류 정정을 수행하는 단계는,
    상기 추출된 데이터 버스트가 싱글 비트 에러인 경우 싱글-비트 에러 정정(SEC)을 수행하는 것을 특징으로 하는, 메모리 에러 정정 방법.
  17. 제14항에 있어서,
    상기 제1 오류 정정을 수행하는 단계는,
    상기 추출된 데이터 버스트가 더블 비트 에러인 경우 싱글-비트 에러 정정(SEC)을 수행하지 않고, 더블-비트 에러 검출(DED)을 수행하는 것을 특징으로 하는, 메모리 에러 정정 방법.
  18. 제 14항에 있어서,
    상기 복수의 메모리 칩 각각이 제1 오류 정정을 거친 데이터를 출력하는 단계; 및
    상기 출력된 데이터 및 제3 패리티 비트에 기초하여 제2 오류 정정을 수행하는 단계를 더 포함하는, 메모리 에러 정정 방법.
KR1020150138269A 2015-09-30 2015-09-30 메모리 시스템 및 메모리 에러 정정 방법 KR101860809B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150138269A KR101860809B1 (ko) 2015-09-30 2015-09-30 메모리 시스템 및 메모리 에러 정정 방법
US15/059,102 US9886340B2 (en) 2015-09-30 2016-03-02 Memory system and method for error correction of memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150138269A KR101860809B1 (ko) 2015-09-30 2015-09-30 메모리 시스템 및 메모리 에러 정정 방법

Publications (2)

Publication Number Publication Date
KR20170039057A true KR20170039057A (ko) 2017-04-10
KR101860809B1 KR101860809B1 (ko) 2018-07-06

Family

ID=58409494

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150138269A KR101860809B1 (ko) 2015-09-30 2015-09-30 메모리 시스템 및 메모리 에러 정정 방법

Country Status (2)

Country Link
US (1) US9886340B2 (ko)
KR (1) KR101860809B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190017223A (ko) * 2017-08-10 2019-02-20 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 컨트롤러를 포함하는 어플리케이션 프로세서
KR20190097657A (ko) * 2018-02-13 2019-08-21 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
US10936409B2 (en) 2018-04-09 2021-03-02 SK Hynix Inc. Memory system and operating method of the memory system

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10409676B1 (en) * 2018-02-20 2019-09-10 Western Digital Technologies, Inc. SRAM bit-flip protection with reduced overhead
US11003375B2 (en) * 2018-05-15 2021-05-11 Micron Technology, Inc. Code word format and structure
US10831653B2 (en) 2018-05-15 2020-11-10 Micron Technology, Inc. Forwarding code word address
US11061771B2 (en) 2019-03-01 2021-07-13 Micron Technology, Inc. Extended error detection for a memory device
KR20210122455A (ko) 2020-04-01 2021-10-12 삼성전자주식회사 반도체 메모리 장치
KR20210154277A (ko) 2020-06-11 2021-12-21 삼성전자주식회사 메모리 모듈 및 그의 동작 방법
US11461170B2 (en) * 2020-08-14 2022-10-04 Micron Technology, Inc. Error caching techniques for improved error correction in a memory device
US11605441B1 (en) 2021-08-30 2023-03-14 Samsung Electronics Co., Ltd. Memory systems having memory devices therein with enhanced error correction capability and methods of operating same
KR102387463B1 (ko) 2021-10-21 2022-04-15 삼성전자주식회사 메모리 장치, 전자 장치 및 메모리 장치의 동작 방법
US11704027B2 (en) * 2021-11-12 2023-07-18 Western Digital Technologies, Inc. Optimizing recovery of recurrent blocks using bloom filter
US12014797B2 (en) 2022-04-27 2024-06-18 Micron Technology, Inc. Apparatuses, systems, and methods for managing metadata storage at a memory
US20240170088A1 (en) * 2022-11-15 2024-05-23 Micron Technology, Inc. Apparatuses and methods for configurable ecc modes
CN116841795B (zh) * 2023-08-29 2024-01-12 苏州浪潮智能科技有限公司 一种内存设备控制方法、装置、电子设备及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5381036A (en) * 1976-12-27 1978-07-18 Hitachi Ltd Error correction-detection system
US4335459A (en) 1980-05-20 1982-06-15 Miller Richard L Single chip random access memory with increased yield and reliability
US4868829A (en) 1987-09-29 1989-09-19 Hewlett-Packard Company Apparatus useful for correction of single bit errors in the transmission of data
US5233614A (en) * 1991-01-07 1993-08-03 International Business Machines Corporation Fault mapping apparatus for memory
US5438573A (en) 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
US5883903A (en) 1993-09-20 1999-03-16 Fujitsu Limited Semiconductor memory of XN type having parity corresponding to n×m bits
JP3937214B2 (ja) * 1999-09-17 2007-06-27 株式会社ルネサステクノロジ エラー訂正回数を記録する記憶装置
JP2006179101A (ja) 2004-12-22 2006-07-06 Fujitsu Ltd 半導体記憶装置
US7519894B2 (en) 2005-06-14 2009-04-14 Infineon Technologies Ag Memory device with error correction code module
US20090132876A1 (en) * 2007-11-19 2009-05-21 Ronald Ernest Freking Maintaining Error Statistics Concurrently Across Multiple Memory Ranks
US8086913B2 (en) * 2008-09-11 2011-12-27 Micron Technology, Inc. Methods, apparatus, and systems to repair memory
TWI397080B (zh) * 2009-03-12 2013-05-21 Realtek Semiconductor Corp 記憶體裝置及其相關測試方法
US8307261B2 (en) 2009-05-04 2012-11-06 National Tsing Hua University Non-volatile memory management method
US8495467B1 (en) * 2009-06-30 2013-07-23 Micron Technology, Inc. Switchable on-die memory error correcting engine
US8321753B2 (en) * 2010-04-13 2012-11-27 Juniper Networks, Inc. Optimization of packet buffer memory utilization
JP5764392B2 (ja) * 2011-06-13 2015-08-19 株式会社メガチップス メモリコントローラ
KR102083498B1 (ko) 2012-07-03 2020-04-14 삼성전자 주식회사 선택적 ecc 동작을 수행하는 메모리 장치
KR101862379B1 (ko) 2013-04-19 2018-07-05 삼성전자주식회사 Ecc 동작과 리던던시 리페어 동작을 공유하는 메모리 장치
US20150270015A1 (en) * 2014-03-19 2015-09-24 Micron Technology, Inc. Memory mapping

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190017223A (ko) * 2017-08-10 2019-02-20 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 컨트롤러를 포함하는 어플리케이션 프로세서
KR20190097657A (ko) * 2018-02-13 2019-08-21 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
US10936409B2 (en) 2018-04-09 2021-03-02 SK Hynix Inc. Memory system and operating method of the memory system

Also Published As

Publication number Publication date
US9886340B2 (en) 2018-02-06
US20170091025A1 (en) 2017-03-30
KR101860809B1 (ko) 2018-07-06

Similar Documents

Publication Publication Date Title
KR101860809B1 (ko) 메모리 시스템 및 메모리 에러 정정 방법
CN110120243B (zh) 半导体存储器装置、操作其的方法以及存储器***
CN110377453B (zh) 半导体存储器装置和包括半导体存储器装置的存储器***
US9990251B2 (en) Semiconductor system with a column control circuit
US8874979B2 (en) Three dimensional(3D) memory device sparing
US9015558B2 (en) Systems and methods for error detection and correction in a memory module which includes a memory buffer
KR101203764B1 (ko) 메모리 셀프-리프레시 전력을 절약하기 위한 시스템들, 방법들 및 장치들
US10614906B2 (en) Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices
US10846171B2 (en) Error correction code decoders, semiconductor memory devices and memory systems
US9442801B2 (en) Platform error correction
US10803971B2 (en) Device for supporting error correction code and test method thereof
CN106683707B (zh) 半导体器件
KR20190090472A (ko) 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
US20180336090A1 (en) Memory with Error Correction Function and an Error Correction Method
CN110942798B (zh) 半导体存储器件、存储***及操作半导体存储器件的方法
KR20200142213A (ko) 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템
CN110046056B (zh) 检测并校正数据错误的存储器件及其操作方法
US20150248327A1 (en) Memory module with dedicated repair devices
US10437692B2 (en) Memory module, memory system including the same and operation method thereof
KR20180134120A (ko) 반도체시스템
KR102589913B1 (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US11947810B2 (en) Semiconductor memory device and memory system including the same
KR20180027655A (ko) 테스트방법 및 이를 이용한 반도체시스템
US11494260B2 (en) Memory with an error correction function and related memory system
KR20170143084A (ko) 반도체장치 및 반도체시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant