KR102387195B1 - 메모리 시스템 및 이의 에러 정정 방법 - Google Patents
메모리 시스템 및 이의 에러 정정 방법 Download PDFInfo
- Publication number
- KR102387195B1 KR102387195B1 KR1020170163395A KR20170163395A KR102387195B1 KR 102387195 B1 KR102387195 B1 KR 102387195B1 KR 1020170163395 A KR1020170163395 A KR 1020170163395A KR 20170163395 A KR20170163395 A KR 20170163395A KR 102387195 B1 KR102387195 B1 KR 102387195B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- address
- error
- error correction
- chip
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2017—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
Abstract
본 발명의 실시예에 따른 메모리 시스템은, 데이터와 에러 정정 코드를 저장하는 다수의 메모리 칩, 상기 다수의 메모리 칩으로부터 리드된 에러 정정 코드를 이용해 상기 다수의 메모리 칩으로부터 리드된 데이터의 에러를 검출 및 정정하는 에러 정정 회로, 상기 리드된 데이터 중에, 상기 에러 정정 회로에 의해 검출된 에러 비트가 제1 개수 이상인 제1 데이터의 어드레스를 저장하는 어드레스 저장 회로, 및 상기 어드레스 저장 회로에 저장된 제1 데이터의 어드레스가 제2 개수 이상이면, 상기 다수의 메모리 칩에 테스트 데이터를 라이트하고, 라이트된 데이터를 다시 리드하여 칩킬이 발생한 페일 칩을 검출하는 페일 칩 검출 회로를 제공할 수 있다.
Description
본 특허 문헌은 반도체 설계 기술에 관한 것으로, 구체적으로 메모리 시스템의 에러 정정 방법에 관한 것이다.
메모리 시스템은 소비자용 또는 산업용 여러 전자 장치들, 예를 들면, 컴퓨터, 휴대폰, PDA(portable digital assistant), 디지털 카메라, 게임기, 항법 장치, 등에 적용되어 주 기억 장치 또는 보조 기억 장치로 사용된다. 메모리 시스템을 구현하는 메모리 장치들은 DRAM(Dynamic Random Access Memory), SRAM(Static RAM), 등과 같은 휘발성 메모리 장치와 ROM(Read Only Memory), MROM(Mask ROM), PROM(Programmable ROM), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), FRAM(Ferroelectric RAM), PRAM(Phase-change RAM), MRAM(Magnetoresistive RAM), RRAM(Resistive RAM), 플래시 메모리, 등과 같은 비휘발성 메모리 장치로 구현될 수 있다.
반도체 메모리 산업 초기에는 반도체 제조 프로세스를 통과한 메모리 칩에서 불량 메모리 셀이 하나도 존재하지 않는 오리지날 굿 다이(original good die)가 웨이퍼(wafer) 상에 다수 분포하였다. 그러나 메모리 장치의 용량이 점차로 증가하면서 불량 메모리 셀이 하나도 존재하지 않는 메모리 장치를 만드는 것이 어려워졌으며, 현재에는 이러한 메모리 장치가 제조될 확률은 없다고 봐도 무방하다.
이러한 상황을 타개하기 위한 하나의 방편으로 메모리 장치의 불량 메모리 셀들을 리던던시 메모리 셀들로 리페어하는 방법이 사용되고 있다. 그리고 또 하나의 방편으로 메모리 시스템에서 에러를 정정하는 에러 정정 회로(ECC 회로)를 사용해 메모리 셀에서 발생하는 에러 및 메모리 시스템의 리드 및 라이트 과정에서 데이터가 전송되면서 발생하는 에러를 정정하고 있다.
본 발명의 실시예들은, 메모리 시스템 및 이의 동작 방법에 있어, 에러 정정의 효율성을 높이는 기술을 제공할 수 있다.
본 발명의 일실시예에 따른 메모리 시스템은, 데이터와 에러 정정 코드를 저장하는 다수의 메모리 칩; 상기 다수의 메모리 칩으로부터 리드된 에러 정정 코드를 이용해 상기 다수의 메모리 칩으로부터 리드된 데이터의 에러를 검출 및 정정하는 에러 정정 회로; 상기 리드된 데이터 중에, 상기 에러 정정 회로에 의해 검출된 에러 비트가 제1 개수 이상인 제1 데이터의 어드레스를 저장하는 어드레스 저장 회로; 및 상기 어드레스 저장 회로에 저장된 제1 데이터의 어드레스가 제2 개수 이상이면, 상기 다수의 메모리 칩에 테스트 데이터를 라이트하고, 라이트된 데이터를 다시 리드하여 칩킬이 발생한 페일 칩을 검출하는 페일 칩 검출 회로를 포함할 수 있다.
본 발명의 일실시예에 따른 메모리 시스템의 에러 정정 방법은, 다수의 메모리 칩으로부터 데이터와 에러 정정 코드를 리드하는 단계; 상기 리드된 에러 정정 코드를 이용해 상기 리드된 데이터의 에러를 검출 및 정정하는 단계; 상기 리드된 데이터 중에, 검출된 에러 비트가 제1 개수 이상인 제1 데이터의 어드레스를 저장하는 단계; 및 상기 저장된 제1 데이터의 어드레스가 제2 개수 이상이면, 상기 다수의 메모리 칩에 테스트 데이터를 라이트하고, 라이트된 데이터를 다시 리드하여 칩킬이 발생한 페일 칩을 검출하는 단계를 포함할 수 있다.
제안된 실시예에 따른 메모리 시스템은 칩킬이 발생한 페일 칩의 위치를 파악할 수 있으므로, 칩킬 이후 랜덤 에러 비트 커버리지를 높일 수 있다. 즉, 메모리 시스템은 동일한 에러 정정 능력을 가지면서도 패리티 비트 수를 줄일 수 있으므로 ECC 회로의 크기 및 ECC 디코딩 레이턴시를 감소시킬 수 있다.
또한, 제안된 실시예에 따른 메모리 시스템은 페일 칩 검출 동작에 의해 다른 성능이 저하되는 것을 방지하기 위해서, 일정 기준을 설정하여 페일 칩 발생을 예측하고 검출 동작을 최소화할 수 있다.
도 1은 에러 검출 및 정정 동작을 수행하는 메모리 시스템의 블록 구성도.
도 2는 본 발명의 일실시예에 따른 메모리 시스템의 블록 구성도.
도 3은 도 2의 어드레스 저장 회로에 저장되는 어드레스 및 에러 비트 정보를 나타내는 도면.
도 4는 본 발명의 일실시예에 따른 메모리 시스템의 에러 정정 방법을 도시한 순서도.
도 2는 본 발명의 일실시예에 따른 메모리 시스템의 블록 구성도.
도 3은 도 2의 어드레스 저장 회로에 저장되는 어드레스 및 에러 비트 정보를 나타내는 도면.
도 4는 본 발명의 일실시예에 따른 메모리 시스템의 에러 정정 방법을 도시한 순서도.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구성될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩뜨리지 않도록 생략될 것이라는 것을 유의하여야 한다.
기존의 메모리 시스템은 에러율이 낮으므로, 메모리 장치에서 랜덤하게 발생하는 랜덤 에러는 메모리 장치에 구비된 ECC 회로로 처리하고, 메모리 컨트롤러에 구비된 ECC 회로는 칩킬의 경우만 고려하여 1-비트 에러는 정정하고, 2-비트 에러는 검출하는 싱글 에러 정정/더블 에러 검출(Single Error Correction/Double Error Detection, SEC/DED) 등의 상대적으로 간단한 형태의 에러 정정만 수행할 수 있다.
하지만, 메모리 장치들이 더 밀집해지고 있음에 따라서 멀티 비트 에러가 발생할 확률이 증가하고 있기 때문에 랜덤 에러가 발생하는 상황이 빈번하게 발생할 수 있다. 따라서, 메모리 컨트롤러에 구비된 ECC 회로가 칩킬 에러와 랜덤 에러도 함께 처리할 수 있다.
도 1은 에러 검출 및 정정 동작을 수행하는 메모리 시스템(100)의 블록 구성도이다. 도 1에서는 메모리 시스템(100)에서 데이터의 전송과 직접적으로 관련된 부분만을 도시했다.
도 1을 참조하면, 메모리 시스템(100)은 메모리 컨트롤러(110)와 메모리 모듈(120)을 포함할 수 있다. 메모리 컨트롤러(110)는 호스트(HOST)의 요청에 따라 메모리 모듈(120)의 리드 및 라이트 등의 동작을 제어할 수 있다.
메모리 컨트롤러(110)는 에러 정정 회로(112)를 포함할 수 있다. 메모리 모듈(120)은 다수 개의 메모리 칩들(121~141)을 포함할 수 있다.
에러 정정 회로(112)는 라이트 동작 시에 호스트로부터 전달된 라이트 데이터(WDATA)를 입력 받아 기설정된 에러 정정 알고리즘을 이용하여 에러를 검출 및 정정하기 위한 에러 정정 코드(ECC)(예를 들어, 패리티 비트(PTY))를 생성하고, 라이트 데이터(WDATA)와 함께 생성된 패리티 비트(PTY)를 메모리 모듈(120)로 전달할 수 있다. 예를 들어, 에러 정정 회로(112)는 리드-솔로몬 코드(Reed-Solomon (RS) code) 방식의 에러 정정 알고리즘을 사용할 수 있다. RS 방식의 에러 정정 알고리즘에서는 심볼 단위로 에러가 정정될 수 있다.
에러 정정 회로(112)는 리드 동작 시에 메모리 모듈(120)로부터 출력된 패리티 비트(PTY)를 이용하여 메모리 모듈(120)로부터 출력된 리드 데이터(RDATA')에 포함된 에러를 검출 및 정정할 수 있다. 그리고, 에러 정정 회로(112)는 에러가 정정된 리드 데이터(RDATA)를 호스트로 전달할 수 있다. 다시 말해, 에러 정정 회로(112)는 라이트 동작 시 ECC 인코딩 과정을 통해 생성된 패리티 비트(PTY)를 이용하여 메모리 모듈(120)로부터 출력된 리드 데이터(RDATA')에 대하여 ECC 디코딩을 수행할 수 있다.
메모리 시스템(100)에서 한번에 처리되는 데이터의 단위가 512 비트이면, 호스트(HOST)로부터 메모리 컨트롤러(110)로 전달되는 라이트 데이터(WDATA)와 메모리 컨트롤러(110)로부터 호스트(HOST)로 전달되는 리드 데이터(RDATA)는 512 비트 단위로 구성될 수 있다. 이 때, RS 알고리즘에서 처리되는 1 심볼(symbol) = 8 비트라고 할 때 라이트 데이터(WDATA)와 리드 데이터(RDATA)는 각각 64 개의 심볼을 포함할 수 있다.
만약 [6 비트의 랜덤 에러 + 하나의 메모리 칩의 칩킬]을 정정할 수 있는 에러 정정 능력이 메모리 시스템(100)에 요구된다면, RS 알고리즘에서는 심볼 단위로 에러를 정정하므로 6 심볼(6 비트의 랜덤 에러가 서로 다른 심볼에 속하는 경우 가정) + 4 심볼(하나의 메모리 칩에 해당하는 32 비트의 데이터 에러)의 총 10 심볼의 에러 정정이 가능해야 한다. RS 알고리즘에서 패리티 비트 수(즉, 에러 정정 코드(ECC)의 크기)는 에러 정정 가능한 심볼의 개수에 따라 결정되는데, 이는 다음의 [수학식 1]과 같다.
[수학식 1]
패리티 비트 = 2 * (위치를 모르는 에러의 정정 가능한 심볼수)
(심볼수는 M(예를 들어, 8) 개의 비트로 구성됨)
수학식 1을 이용해 10심볼의 에러 정정이 가능한 경우 패리티 비트의 크기를 계산해보면, 패리티 비트 = 2 * 10심볼 = 20심볼 = 20*8비트 = 160비트이다. 즉, 메모리 칩들(121-141)에서 발생하는 [6비트의 랜텀 에러 + 하나의 메모리 칩이 칩킬]인 상황까지 커버 가능한 패리티 비트 수는 160비트가 되며, 도 1에서는 이 경우를 도시하고 있다.
메모리 칩들(121~141) 각각은 한번의 라이트 동작 시에 32 비트의 라이트 데이터를 저장하고, 한번의 리드 동작 시에 32 비트의 리드 데이터를 출력할 수 있다(DATA' 32bit 또는 ECC 32bit). 따라서, 16개의 메모리 칩들(121~136)에는 한번에 512 비트의 라이트 데이터(WDATA)가 라이트되거나 512 비트의 리드 데이터(RDATA')가 리드되고, 5개의 메모리 칩들(137~141)에는 160비트의 ECC 용 패리티 비트(PTY)가 라이트 및 리드될 수 있다. 즉, 메모리 모듈(120)은 21 개의 메모리 칩들(121-141)을 포함하도록 구성되어야 한다. 도 1의 메모리 칩들(121~141)에는 각각에 저장되는 정보가 표시되어 있다.
한편, 메모리 칩의 칩킬이 발생할 확률은 매우 낮은데, 이를 대비해야 하기 때문에, 패리티 비트 수가 필요 이상으로 늘어나게 된다. 상기 예시의 경우에도 랜덤 에러만 생각하면 12 심볼이 필요하지만, 하나의 메모리 칩의 칩킬인 상황까지 대비하기 위해 20 심볼이 필요하다. 필요한 패리티 비트가 늘어날수록 패리티 비트를 저장하기 위한 메모리 칩이 더 필요하고, 패리티 비트 및 신드롬 계산을 위한 ECC 회로의 크기가 커지게 된다. 따라서, 메모리 시스템의 면적이 증가하거나, 칩킬이 아닌 상황에서도 ECC 디코딩 레이턴시가 커서 메모리 시스템의 성능이 감소할 수 있다.
이하, 본 발명의 실시예에 따라 칩킬이 발생한 페일 칩의 위치를 검출하고 검출된 페일 칩의 위치를 토대로 패리티 비트 수를 줄이거나 랜덤 에러 비트의 커버리지(coverage)를 늘릴 수 있는 방법에 대해 논의하고자 한다.
도 2는 본 발명의 일실시예에 따른 메모리 시스템(200)의 블록 구성도이다. 도 2에서는 메모리 시스템(200)에서 데이터의 전송과 직접적으로 관련된 부분만을 도시했다.
도 2를 참조하면, 메모리 시스템(200)은 메모리 컨트롤러(210)와 메모리 모듈(220)을 포함할 수 있다. 메모리 컨트롤러(110)는 호스트(HOST)의 요청에 따라 메모리 모듈(220)의 리드 및 라이트 등의 동작을 제어할 수 있다.
메모리 컨트롤러(210)는 에러 정정 회로(212), 어드레스 저장 회로(214), 및 페일 칩 검출 회로(216)를 포함할 수 있다. 메모리 모듈(220)은 다수 개의 메모리 칩들(221~240)을 포함할 수 있다. 메모리 칩들(221~240)은 DRAM, PCRAM(Phase Change Random Access Memory), 플래시 메모리(Flash memory) 등 모든 종류의 메모리 중 하나일 수 있다. 메모리 모듈(220)은 DIMM(Dual In-Line Memory Module) 타입일 수 있다.
에러 정정 회로(212)는 라이트 동작 시에 호스트로부터 전달된 라이트 데이터(WDATA)를 입력 받아 기설정된 에러 정정 알고리즘을 이용하여 에러를 검출 및 정정하기 위한 에러 정정 코드(ECC)(예를 들어, 패리티 비트(PTY))를 생성하고, 라이트 데이터(WDATA)와 함께 생성된 패리티 비트(PTY)를 메모리 모듈(220)로 전달할 수 있다. 예를 들어, 에러 정정 회로(212)는 리드-솔로몬 코드(Reed-Solomon (RS) code) 방식의 에러 정정 알고리즘을 사용할 수 있다. RS 방식의 에러 정정 알고리즘에서는 심볼 단위로 에러가 정정될 수 있다.
에러 정정 회로(212)는 리드 동작 시에 메모리 모듈(120)로부터 출력된 패리티 비트(PTY)를 이용하여 메모리 모듈(120)로부터 출력된 리드 데이터(RDATA')에 포함된 에러를 검출 및 정정할 수 있다. 그리고, 에러 정정 회로(212)는 에러가 정정된 리드 데이터(RDATA)를 호스트로 전달할 수 있다. 다시 말해, 에러 정정 회로(212)는 라이트 동작 시 ECC 인코딩 과정을 통해 생성된 패리티 비트(PTY)를 이용하여 메모리 모듈(220)로부터 출력된 리드 데이터(RDATA')에 대하여 ECC 디코딩을 수행할 수 있다.
본 발명의 일실시예에 따라, 에러 정정 회로(212)는 리드 데이터 데이터(RDATA')의 에러를 검출해서 셋 신호(SET)를 생성할 수 있다. 구체적으로, 에러 정정 회로(212)는 리드 데이터 데이터(RDATA')에서 검출된 에러 비트가 기준 값 이상이면 셋 신호(SET)를 활성화하고, 검출된 에러 비트가 기준 값 미만이면 셋 신호(SET)를 비활성화할 수 있다.
어드레스 저장 회로(214)는 리드 데이터(RDATA') 중에 에러 정정 회로(212)에 의해 검출된 에러 비트가 기준 값 이상인 데이터의 어드레스를 저장할 수 있다. 어드레스 저장 회로(214)는 셋 신호(SET)에 응답해서, 리드 데이터(RDATA')의 어드레스(ADD)를 에러 비트가 기준 값 이상인 데이터의 어드레스로 저장할 수 있다. 셋 신호(SET)가 활성화되면, 어드레스 저장 회로(214)는 리드 데이터(RDATA')의 어드레스(ADD)를 에러 비트가 기준 값 이상인 데이터의 어드레스로 순차적으로 저장할 수 있다. 셋 신호(SET)가 비활성화되면, 어드레스 저장 회로(214)는 순차적으로 저장된 어드레스를 리셋할 수 있다. 어드레스 저장 회로(214)는 저장된 어드레스가 일정 개수 이상이면 검출 신호(DET)를 생성하고, 저장된 어드레스를 리셋할 수 있다.
리드 데이터(RDATA')에서 연속적으로 에러 비트가 기준 값 이상 검출되다가 단 한번이라도 에러 비트가 기준 값 이하로 검출되면, 에러 정정 회로(212)는 셋 신호(SET)를 비활성화하고, 어드레스 저장 회로(214)는 저장된 어드레스를 리셋할 수 있다. 따라서, 일정 개수 이상 연속적으로 리드 데이터(RDATA')에서 에러 비트가 기준 값 이상 검출될 때, 어드레스 저장 회로(214)는 대응하는 어드레스를 순차적으로 저장하여 검출 신호(DET)를 생성할 수 있다.
페일 칩 검출 회로(216)는 어드레스 저장 회로(214)로부터 검출 신호(DET)가 입력되면 다수의 메모리 칩들(221~240)에 테스트 데이터(WDATA_T)을 라이트하고, 라이트된 데이터를 다시 리드하여 칩킬이 발생한 페일 칩을 검출할 수 있다. 페일 칩 검출 회로(216)는 검출된 페일 칩의 어드레스, 즉, 아이디(ID)를 에러 정정 회로(212)로 제공할 수 있다. 이 때, 테스트 데이터(WDATA_T)는, 올-제로(ALL-ZERO) 혹은 올-원(ALL-ONE)으로 구성된 데이터 패턴을 가질 수 있다. 따라서, 페일 칩 검출 회로(216)는 다수의 메모리 칩들(221~240)에 올-제로(ALL-ZERO) 패턴 혹은 올-원(ALL-ONE) 패턴을 입력하고 이를 다시 독출하여 입력된 데이터(WDATA_T)과 리드된 데이터(RDATA_T)을 비교한 결과에 따라 페일 칩을 검출할 수 있다. 페일 칩 검출 회로(216)는 테스트 데이터(WDATA_T)와 리드 데이터(RDATA_T)가 서로 다른 메모리 칩을 페일 칩으로 검출할 수 있다.
더 나아가, 칩킬이 발생한 페일 칩이 검출되면, 에러 정정 회로(212)는 리드 데이터(RDATA') 중 검출된 에러 비트가 정정 가능한 개수를 초과한 데이터의 에러를 정정할 수 있다. 에러 정정 회로(212)가 셋 신호(SET)를 활성화 또는 비활성화하는 기준이 되는 에러 비트 수는 에러 정정 회로(212)가 정정할 수 있는 최대 에러 비트 수보다 작다. 따라서, 어드레스 저장 회로(214)에 의해 어드레스가 저장되는 데이터는 기준 값 이상이고 정정 가능한 개수 이하의 에러 비트가 검출된 데이터와 정정 가능한 개수를 초과하는 에러 비트가 검출된 데이터를 포함할 수 있다. 에러 정정 회로(212)는 셋 신호(SET)와 함께 해당 데이터가 어떤 에러 비트가 검출되었는지를 나타내는 정보(CE/UCE)를 생성하여 어드레스 저장 회로(214)에 제공할 수 있다.
도 3은 도 2의 어드레스 저장 회로(214)에 저장되는 어드레스(ADDRESS_1 내지 ADDRESS_N) 및 에러 비트 정보(UCE 및 CE)를 나타내고 있다. 에러 비트 정보(UCE 및 CE)는 에러 정정 회로(212)로부터 제공되며, 각각 고정 불가능한 에러 비트 및 고정 가능한 에러 비트를 나타내고 있다.
도 3을 참조하면, 제1 내지 제N의 연속된 어드레스(ADDRESS_1 내지 ADDRESS_N)에 해당하는 리드 데이터(RDATA')에서 기준 값 이상의 에러 비트가 검출된 것을 확인할 수 있다. 특히, 제2 및 제4 어드레스(ADDRESS_2 및 ADDRESS_4)는 고정 불가능한 에러 비트 정보(UCE)에 대응하여, 해당 데이터에서 에러 정정 회로(212)에 의해 정정 가능한 개수를 초과하는 에러 비트가 검출된 것을 나타낸다.
페일 칩 아이디(ID)가 입력되면, 에러 정정 회로(212)는 어드레스 저장 회로(214)에 저장된 어드레스 및 에러 비트 정보를 바탕으로 검출된 에러 비트가 정정 가능한 개수를 초과한 데이터를 메모리 칩들(221~240)로부터 리드할 수 있다. 도 3의 예시를 바탕으로 하면, 에러 정정 회로(212)는 제2 및 제4 어드레스(ADDRESS_2 및 ADDRESS_4)의 데이터를 리드할 수 있다. 에러 정정 회로(212)는 데이터와 함께 대응하는 에러 정정 코드를 리드하여, 페일 칩 아이디(ID)를 바탕으로 데이터에 발생된 에러를 다시 정정할 수 있다. 그리고, 에러 정정 회로(212)는 에러가 정정된 데이터를 리드 데이터(RDATA)로 호스트로 전달하고 리드 동작을 완료할 수 있다.
메모리 시스템(200)에서 한번에 처리되는 데이터의 단위가 512 비트이면, 호스트(HOST)로부터 메모리 컨트롤러(210)로 전달되는 라이트 데이터(WDATA)와 메모리 컨트롤러(210)로부터 호스트(HOST)로 전달되는 리드 데이터(RDATA)는 512 비트 단위로 구성될 수 있다. 이 때, RS 알고리즘에서 처리되는 1 심볼(symbol) = 8 비트라고 할 때, 라이트 데이터(WDATA)와 리드 데이터(RDATA)는 각각 64 개의 심볼을 포함할 수 있다.
앞서 살펴본 바와 같이, [6 비트의 랜덤 에러 + 하나의 메모리 칩의 칩킬]을 정정할 수 있는 에러 정정 능력이 메모리 시스템(200)에 요구된다면, 패리티 비트 수는 20 심볼(160 비트)이 되어야 한다. 그런데 만약에 메모리 칩들(221~240) 중 칩킬이 발생한 페일 칩이 무엇인지를 안다면, 즉 칩킬의 위치를 안다면, 패리티 비트 수가 줄어들 수 있다. 위치를 아는 에러와 위치를 모르는 에러가 섞여 있는 경우에 패리티 비트 수(즉 에러 정정 코드(ECC)의 크기)는 다음의 [수학식 2]와 같다.
[수학식 2]
패리티 비트 = 2 * (위치를 모르는 에러의 정정 가능한 심볼수) + (위치를 아는 에러의 정정 가능한 심볼수)
(심볼수는 M(예를 들어, 8) 개의 비트로 구성됨)
수학식 2를 이용해, [6 비트의 랜덤 에러 + 검출된 페일 칩의 에러]를 정정하기 위한 패리티 비트 수를 계산해보면, 패리티 비트 수 = 2 * (6 심볼) + (4 심볼) = 16 심볼 = 128 비트가 된다. 즉, 도 2에서 도시된 바와 같이, 에러 정정 회로(212)는 6 비트의 랜덤 에러와 위치를 하는 1 개의 칩킬을 정정할 수 있도록 128 비트의 패러티 비트(PTY)를 생성해서 메모리 모듈(220)로 전송할 수 있다.
메모리 칩들(221~240) 각각은 한번의 라이트 동작 시에 32 비트의 라이트 데이터를 저장하고, 한번의 리드 동작 시에 32 비트의 리드 데이터를 출력할 수 있다(DATA' 32bit 또는 ECC 32bit). 따라서, 16 개의 메모리 칩들(221~236)에는 한번에 512 비트의 라이트 데이터(WDATA)가 라이트되거나 512 비트의 리드 데이터(RDATA')가 리드되고, 4 개의 메모리 칩들(237~240)만으로 128비트의 ECC 용 패리티 비트(PTY)가 라이트 및 리드될 수 있다.
도 2의 메모리 칩들(221~240)에는 각각에 저장되는 정보가 표시되어 있다. 또한, 메모리 칩들(221~240)을 식별하기 위한 번호를 병기했다. 하지만, 라이트 데이터(WDATA), 리드 데이터(RDATA'), 및 패리티 비트(PTY)가 메모리 칩들(221~240)에 분배되는 패턴이 꼭 도 2 와 동일할 필요는 없다. 라이트 데이터(WDATA), 리드 데이터(RDATA') 및 패리티 비트(PTY)는 메모리 칩들(221~240)에 분배되어 저장되면 된다.
또한, 도 2 에서는 에러 정정 회로(212), 어드레스 저장 회로(214), 및 페일 칩 검출 회로(216)가 메모리 컨트롤러(210)에 포함되는 것을 예시했으나, 이들 중 일부 또는 전부가 메모리 모듈(220)에 포함될 수도 있다. 또한, 메모리 모듈(220)의 개수가 도 2 와 다를 수도 있으며, 라이트 데이터(WDATA), 리드 데이터(RDATA') 및 패리티 비트(PTY)의 비트 수가 도 2 와 다를 수도 있음은 당연하다.
상기와 같이, 본 발명의 실시 예에 따른 메모리 시스템(200)은 도 1 의 메모리 시스템(100) 대비 더 적은 비트 수의 패리티 비트(PTY)를 이용하여 데이터의 에러를 검출 및 정정할 수 있다. 이를 위해, 칩킬이 발생한 페일 칩을 검출하고 메모리 시스템(200)의 랜덤 에러 비트의 커버리지를 늘릴 수 있다.
또한, 검출 동작으로 인해 을 성능이 저하되는 것을 방지하기 위해서, 페일 칩 발생을 예측하고 일정 기준하에서 검출 동작을 최소화할 수 있다. 메모리 시스템(200)은 페일 칩이 검출되고 나면, 검출된 정보를 바탕으로 에러 정정이 되지 않은 데이터의 에러를 추가로 정정할 수 있다.
도 4는 도 2의 메모리 시스템(200)의 에러 정정 방법을 도시한 순서도이다. 이하, 도 2 내지 도 4 를 참조하여, 본 발명의 실시 예에 따른 메모리 시스템의 동작을 설명하기로 한다.
도 4 를 참조하면, 다수의 메모리 칩들(221~240)로부터 리드 데이터(RDATA') 및 에러 정정 코드, 즉, 패리티 비트(PTY)가 리드될 수 있다(S410). 리드 데이터(DATA') 및 패리티 비트(PTY)는 메모리 컨트롤러(210)로 전달될 수 있다.
에러 정정 회로(212)는 패리티 비트(PTY)를 이용해 리드 데이터(RDATA')의 에러를 검출 및 정정할 수 있다(S420). 특히, 에러 정정 회로(212)는 리드 데이터(RDATA')의 검출된 에러 비트가 제1 개수(N1) 이상인지 또는 그 미만인지에 따라 셋 신호(SET)를 활성화 또는 비활성화할 수 있다.
에러 정정 회로(212)에 의해 검출된 에러 비트가 제1 개수(N1) 이상이면('YES', S430), 어드레스 저장 회로(214)는 리드 데이터(RDATA')의 어드레스(ADD)를 저장할 수 있다(S440). 즉, 에러 정정 회로(212)에 의해 셋 신호(SET)가 활성화되면, 어드레스 저장 회로(214)는 리드 데이터(RDATA')의 어드레스(ADD)를 순차적으로 저장할 수 있다.
에러 정정 회로(212)에 의해 검출된 에러 비트가 제1 개수(N1) 미만이면('NO', S430), 어드레스 저장 회로(214)는 순차적으로 저장된 어드레스(ADD)를 리셋할 수 있다(S450). 즉, 에러 정정 회로(212)에 의해 셋 신호(SET)가 비활성화되면, 어드레스 저장 회로(214)는 순차적으로 저장된 어드레스(ADD)를 리셋할 수 있다.
어드레스 저장 회로(214)에 저장된 어드레스(ADD)가 제2 개수(N2) 이상이면('YES', S460), 페일 칩 검출 회로(216)는 다수의 메모리 칩들(221~240) 중에 칩킬이 발생한 페일 칩을 검출할 수 있다(S470). 구체적으로, 어드레스 저장 회로(214)는 저장된 어드레스(ADD)가 제2 개수(N2) 이상이면, 어드레스 저장 회로(214)는 검출 신호(DET)를 생성할 수 있다. 페일 칩 검출 회로(216)는 검출 신호(DET)에 응답해, 다수의 메모리 칩들(221~240)에 테스트 데이터(WDATA_T)를 라이트하고, 라이트된 데이터를 다시 리드할 수 있다. 페일 칩 검출 회로(216)는 테스트 데이터(WDATA_T)와 다시 리드된 데이터(RDATA_T)를 비교하여, 각각이 서로 다른 메모리 칩을 페일 칩으로 검출할 수 있다.
본 발명의 일 실시예에 따라, 리드 데이터(RDATA')의 에러를 검출 및 정정하는 단계(S420)에서, 에러 정정 회로(212)는 검출된 에러 비트가 정정 가능한 개수를 초과하는 데이터를 나타내는 에러 비트 정보(CE/UCE)를 생성할 수 있다. 페일 칩 검출 회로(216)에 의해 페일 칩이 검출되면, 에러 정정 회로(212)는 에러 비트 정보(CE/UCE)를 바탕으로 정정 가능한 개수를 초과하는 에러 비트가 검출된 데이터를 다수의 메모리 칩들(221~240)로부터 다시 리드할 수 있다. 에러 정정 회로(212)는 검출된 페일 칩의 어드레스(ID)를 바탕으로, 리드된 데이터의 에러를 검출하여 정정할 수 있다(S480).
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 이상에서 설명한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 여러 가지 치환, 변형 및 변경으로 다양한 실시예가 가능함을 이해할 수 있을 것이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
200: 메모리 시스템 210: 메모리 컨트롤러
212: 에러 정정 회로 214: 어드레스 저장 회로
216: 페일 칩 검출 회로 220: 메모리 모듈
212: 에러 정정 회로 214: 어드레스 저장 회로
216: 페일 칩 검출 회로 220: 메모리 모듈
Claims (18)
- 데이터와 에러 정정 코드를 저장하는 다수의 메모리 칩;
상기 다수의 메모리 칩으로부터 리드된 에러 정정 코드를 이용해 상기 다수의 메모리 칩으로부터 리드된 데이터의 에러 비트를 검출 및 정정하는 에러 정정 회로;
상기 리드된 데이터 중에, 상기 에러 정정 회로에 의해 검출된 에러 비트가 제1 개수 이상인 제1 데이터가 연속적으로 검출되면 상기 제1 데이터의 어드레스를 저장하는 어드레스 저장 회로; 및
상기 어드레스 저장 회로에 저장된 제1 데이터의 어드레스가 제2 개수 이상이면, 상기 다수의 메모리 칩에 테스트 데이터를 라이트하고, 라이트된 데이터를 다시 리드하여 칩킬이 발생한 페일 칩을 검출하는 페일 칩 검출 회로;를 포함하는,
메모리 시스템.
- ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈제 1 항에 있어서,
상기 에러 정정 회로는 상기 리드된 데이터의 에러 비트를 검출해서 셋 신호를 생성하되, 상기 검출된 에러 비트가 상기 제1 개수 이상인지 또는 그 미만인지에 따라 상기 셋 신호를 활성화 또는 비활성화하는 메모리 시스템.
- ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈제 2 항에 있어서,
상기 셋 신호가 활성화되면, 상기 어드레스 저장 회로는 상기 리드된 데이터의 어드레스를 상기 제1 데이터의 어드레스로 순차적으로 저장하고,
상기 셋 신호가 비활성화되면, 상기 어드레스 저장 회로는 상기 순차적으로 저장된 제1 데이터의 어드레스를 리셋하는 메모리 시스템.
- ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈제 1 항에 있어서,
상기 어드레스 저장 회로에 의해 연속적으로 저장된 제1 데이터의 어드레스가 상기 제2 개수 이상이면, 상기 어드레스 저장 회로는 검출 신호를 생성하는 메모리 시스템.
- ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈제 4 항에 있어서,
상기 검출 신호에 응답해, 상기 페일 칩 검출 회로는 상기 다수의 메모리 칩에 상기 테스트 데이터를 라이트하고, 상기 라이트된 데이터를 다시 리드하여 상기 테스트 데이터와 비교하는 메모리 시스템.
- ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈제 5 항에 있어서,
상기 페일 칩 검출 회로는 상기 테스트 데이터와 상기 다시 리드된 데이터가 서로 다른 메모리 칩의 어드레스를 검출된 페일 칩의 어드레스로 상기 에러 정정 회로로 출력하는 메모리 시스템.
- ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈제 1 항에 있어서,
상기 에러 정정 회로는 상기 제1 데이터 중 상기 검출된 에러 비트가 정정 가능한 개수를 초과하는 제2 데이터를 나타내는 에러 비트 정보를 생성하는 메모리 시스템.
- ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈제 7항 에 있어서,
상기 페일 칩 검출 회로에 의해 검출된 페일 칩의 어드레스와 상기 에러 비트 정보를 바탕으로, 상기 에러 정정 회로는 상기 메모리 칩으로부터 상기 제2 데이터를 리드하여 발생된 에러 비트를 정정하는 메모리 시스템.
- ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈제 1 항에 있어서,
상기 에러 정정 회로, 및 상기 어드레스 저장 회로, 및 상기 페일 칩 검출 회로를 포함하는 메모리 컨트롤러; 및
상기 다수의 메모리 칩을 포함하는 메모리 모듈;을 포함하는 메모리 시스템.
- ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈제 1 항에 있어서,
상기 테스트 데이터는 패턴은 올-제로(ALL-ZERO) 혹은 올-원(ALL-ONE)인 데이터 패턴을 포함하는 메모리 시스템.
- ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈제 1항에 있어서,
상기 에러 정정 코드는 RS(Reed Solomon) 방식의 에러 정정 코드를 포함하는 메모리 시스템.
- 다수의 메모리 칩으로부터 데이터와 에러 정정 코드를 리드하는 단계;
상기 리드된 에러 정정 코드를 이용해 상기 리드된 데이터의 에러 비트를 검출 및 정정하는 단계;
상기 리드된 데이터 중에, 검출된 에러 비트가 제1 개수 이상인 제1 데이터가 연속적으로 검출되면 상기 제1 데이터의 어드레스를 저장하는 단계; 및
상기 저장된 제1 데이터의 어드레스가 제2 개수 이상이면, 상기 다수의 메모리 칩에 테스트 데이터를 라이트하고, 라이트된 데이터를 다시 리드하여 칩킬이 발생한 페일 칩을 검출하는 단계;를 포함하는,
메모리 시스템의 에러 정정 방법.
- ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈제 12항에 있어서,
상기 리드된 데이터의 에러 비트를 검출 및 정정하는 단계는,
상기 검출된 에러 비트가 상기 제1 개수 이상인지 또는 미만인지에 따라 셋 신호를 활성화 또는 비활성화하는 단계를 포함하는 메모리 시스템의 에러 정정 방법.
- ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈제 13항에 있어서,
상기 제1 데이터의 어드레스를 저장하는 단계는,
상기 셋 신호가 활성화되면, 상기 리드된 데이터의 어드레스를 상기 제1 데이터의 어드레스로 순차적으로 저장하는 단계; 및
상기 셋 신호가 비활성화되면, 상기 순차적으로 저장된 제1 데이터의 어드레스를 리셋하는 단계;를 포함하는 메모리 시스템의 에러 정정 방법.
- ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈제 12항에 있어서,
상기 페일 칩을 검출하는 단계는,
상기 저장된 제1 데이터의 어드레스가 상기 제2 개수 이상이면, 검출 신호를 생성하는 단계;
상기 검출 신호에 응답해, 상기 다수의 메모리 칩에 상기 테스트 데이터를 라이트하고, 상기 라이트된 데이터를 다시 리드하는 단계; 및
상기 테스트 데이터와 상기 다시 리드된 데이터를 비교하는 단계;를 포함하는 메모리 시스템의 에러 정정 방법.
- ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈제 15항에 있어서,
상기 페일 칩을 검출하는 단계는,
상기 비교하는 단계 결과, 상기 테스트 데이터와 상기 다시 리드된 데이터가 서로 다른 메모리 칩의 어드레스를 상기 페일 칩의 어드레스로 검출하는 단계를 더 포함하는 메모리 시스템의 에러 정정 방법.
- ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈제 12항에 있어서,
상기 리드된 데이터의 에러 비트를 검출 및 정정하는 단계는,
상기 제1 데이터 중에 상기 검출된 에러 비트가 정정 가능한 개수를 초과하는 제2 데이터를 나타내는 에러 비트 정보를 생성하는 단계를 포함하는 메모리 시스템의 에러 정정 방법.
- ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈제 17항에 있어서,
상기 칩킬이 발생한 페일 칩이 검출되면, 상기 에러 비트 정보를 바탕으로 상기 다수의 메모리 칩으로부터 상기 제2 데이터를 리드하는 단계; 및
상기 검출된 페일 칩의 어드레스를 바탕으로, 상기 리드된 제2 데이터의 에러 비트를 검출 및 정정하는 단계;를 더 포함하는 메모리 시스템의 에러 정정 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170163395A KR102387195B1 (ko) | 2017-11-30 | 2017-11-30 | 메모리 시스템 및 이의 에러 정정 방법 |
US16/203,862 US10795763B2 (en) | 2017-11-30 | 2018-11-29 | Memory system and error correcting method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170163395A KR102387195B1 (ko) | 2017-11-30 | 2017-11-30 | 메모리 시스템 및 이의 에러 정정 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190064100A KR20190064100A (ko) | 2019-06-10 |
KR102387195B1 true KR102387195B1 (ko) | 2022-04-18 |
Family
ID=66632414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170163395A KR102387195B1 (ko) | 2017-11-30 | 2017-11-30 | 메모리 시스템 및 이의 에러 정정 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10795763B2 (ko) |
KR (1) | KR102387195B1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704409A (zh) * | 2019-09-21 | 2020-01-17 | 广东毓秀科技有限公司 | 一种通过数据三棱镜算法进行轨交数据质量优化的方法 |
US10790039B1 (en) * | 2019-09-26 | 2020-09-29 | Micron Technology, Inc. | Semiconductor device having a test circuit |
US10896738B1 (en) | 2019-10-02 | 2021-01-19 | Micron Technology, Inc. | Apparatuses and methods for direct access hybrid testing |
JP6886547B1 (ja) * | 2020-05-13 | 2021-06-16 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置およびecc関連情報の読出し方法 |
JP2023079292A (ja) * | 2021-11-29 | 2023-06-08 | ラピステクノロジー株式会社 | 半導体記憶装置、データ書込方法及び半導体記憶装置の製造方法 |
KR102680956B1 (ko) * | 2022-08-18 | 2024-07-03 | 넷솔 주식회사 | Ecc 회로를 포함하는 반도체 메모리 장치 및 이를 이용한 테스트 방법 |
KR102680953B1 (ko) * | 2022-08-18 | 2024-07-03 | 넷솔 주식회사 | Ecc 회로를 포함하는 반도체 메모리 장치 및 이를 이용한 테스트 방법 |
KR102680970B1 (ko) * | 2022-08-25 | 2024-07-03 | 넷솔 주식회사 | Ecc 회로를 포함하는 반도체 메모리 장치 및 이를 이용한 테스트 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136800A1 (en) * | 2004-12-22 | 2006-06-22 | Fujitsu Limited | Memory system and semiconductor memory device |
US20080195902A1 (en) * | 2007-02-12 | 2008-08-14 | International Business Machines Corporation | Method, Apparatus and Program Product to Concurrently Detect, Repair, Verify and Isolate Memory Failures |
US20100185897A1 (en) * | 2007-03-26 | 2010-07-22 | Cray Inc. | Fault tolerant memory apparatus, methods, and systems |
US20150278017A1 (en) * | 2012-12-21 | 2015-10-01 | Hewlett-Packard Development Company, L.P. | Memory module having error correction logic |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044483A (en) * | 1998-01-29 | 2000-03-28 | International Business Machines Corporation | Error propagation operating mode for error correcting code retrofit apparatus |
JP2006012367A (ja) * | 2004-06-29 | 2006-01-12 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP4664804B2 (ja) * | 2005-04-28 | 2011-04-06 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US20090132876A1 (en) * | 2007-11-19 | 2009-05-21 | Ronald Ernest Freking | Maintaining Error Statistics Concurrently Across Multiple Memory Ranks |
US8171377B2 (en) * | 2008-01-31 | 2012-05-01 | International Business Machines Corporation | System to improve memory reliability and associated methods |
US20100162037A1 (en) * | 2008-12-22 | 2010-06-24 | International Business Machines Corporation | Memory System having Spare Memory Devices Attached to a Local Interface Bus |
US20100169729A1 (en) | 2008-12-30 | 2010-07-01 | Datta Shamanna M | Enabling an integrated memory controller to transparently work with defective memory devices |
US8854898B2 (en) * | 2011-12-14 | 2014-10-07 | Micron Technology, Inc. | Apparatuses and methods for comparing a current representative of a number of failing memory cells |
US9299457B2 (en) | 2014-02-23 | 2016-03-29 | Qualcomm Incorporated | Kernel masking of DRAM defects |
US9772900B2 (en) * | 2014-07-10 | 2017-09-26 | Samsung Electronics Co., Ltd. | Tiered ECC single-chip and double-chip Chipkill scheme |
US10169126B2 (en) * | 2016-10-12 | 2019-01-01 | Samsung Electronics Co., Ltd. | Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation |
-
2017
- 2017-11-30 KR KR1020170163395A patent/KR102387195B1/ko active IP Right Grant
-
2018
- 2018-11-29 US US16/203,862 patent/US10795763B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136800A1 (en) * | 2004-12-22 | 2006-06-22 | Fujitsu Limited | Memory system and semiconductor memory device |
US20080195902A1 (en) * | 2007-02-12 | 2008-08-14 | International Business Machines Corporation | Method, Apparatus and Program Product to Concurrently Detect, Repair, Verify and Isolate Memory Failures |
US20100185897A1 (en) * | 2007-03-26 | 2010-07-22 | Cray Inc. | Fault tolerant memory apparatus, methods, and systems |
US20150278017A1 (en) * | 2012-12-21 | 2015-10-01 | Hewlett-Packard Development Company, L.P. | Memory module having error correction logic |
Also Published As
Publication number | Publication date |
---|---|
US10795763B2 (en) | 2020-10-06 |
US20190163570A1 (en) | 2019-05-30 |
KR20190064100A (ko) | 2019-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102387195B1 (ko) | 메모리 시스템 및 이의 에러 정정 방법 | |
CN108376554B (zh) | 存储器模块、包括其的存储***及其错误校正方法 | |
US9703633B2 (en) | Circuits, apparatuses, and methods for correcting data errors | |
KR102553780B1 (ko) | 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US20190385693A1 (en) | Memory systems performing reconfigurable error correction operation using ecc engine with fixed error correction capability | |
US10333558B2 (en) | Decoding device and decoding method | |
US10319461B2 (en) | Low-overhead mechanism to detect address faults in ECC-protected memories | |
US10353770B2 (en) | Memory system and error correcting method of the same | |
US11030040B2 (en) | Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system | |
US20230049851A1 (en) | Ecc memory chip encoder and decoder | |
US10901842B2 (en) | Memory system and operating method thereof | |
CN115705265A (zh) | 存储器设备及其操作方法 | |
US11265022B2 (en) | Memory system and operating method thereof | |
US10915398B2 (en) | Memory system and operating method thereof | |
TWI697908B (zh) | 使用階層式解碼器之誤差校正 | |
US11949428B2 (en) | Iterative error correction in memory systems | |
US10665297B2 (en) | Memory systems for memory devices and methods of operating the memory systems | |
US20190042360A1 (en) | Error correction circuit and memory system including the same | |
KR20190040613A (ko) | 메모리 장치 및 이의 동작 방법 | |
KR102629457B1 (ko) | 반도체 메모리 장치, 제어 장치, 및 메모리 시스템 | |
TWI789453B (zh) | 記憶體和操作該記憶體的方法 | |
US11809272B2 (en) | Error correction code offload for a serially-attached memory device | |
JP2005011386A (ja) | 誤り訂正装置 | |
KR20180052154A (ko) | 메모리 시스템 | |
US20230386598A1 (en) | Methods for real-time repairing of memory failures caused during operations, memory systems performing repairing methods, and data processing systems including repairing memory systems |
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 |