KR20160008786A - 메모리 데이터의 에러 보정 장치 및 방법 - Google Patents

메모리 데이터의 에러 보정 장치 및 방법 Download PDF

Info

Publication number
KR20160008786A
KR20160008786A KR1020140088927A KR20140088927A KR20160008786A KR 20160008786 A KR20160008786 A KR 20160008786A KR 1020140088927 A KR1020140088927 A KR 1020140088927A KR 20140088927 A KR20140088927 A KR 20140088927A KR 20160008786 A KR20160008786 A KR 20160008786A
Authority
KR
South Korea
Prior art keywords
parity
data
error
memory
bit error
Prior art date
Application number
KR1020140088927A
Other languages
English (en)
Other versions
KR101999288B1 (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 KR1020140088927A priority Critical patent/KR101999288B1/ko
Publication of KR20160008786A publication Critical patent/KR20160008786A/ko
Application granted granted Critical
Publication of KR101999288B1 publication Critical patent/KR101999288B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 메모리 데이터의 더블 비트 에러를 보정하는 장치 및 방법에 관한 것이다. 본 발명의 에러 보정 장치는, 복수개의 보정 그룹들로 분할된 메모리 장치에 연결되며, 상기 각 보정 그룹에 저장된 다수의 워드들을 포함하는 데이터에서 상기 다수의 워드들 중 더블 비트 에러를 갖는 워드를 포함하는 에러 데이터를 검출하는 ECC 회로; 상기 각 보정 그룹에 저장된 데이터의 패리티들을 저장하는 패리티 메모리; 및 상기 에러 데이터를 수신하고, 상기 패리티들 중 상기 에러 데이터에 대응하는 패리티를 수신하며, 상기 에러 데이터와 상기 패리티의 배타적 논리합 연산을 수행하여 상기 더블 비트 에러를 갖는 워드 내에서 상기 더블 비트 에러의 위치를 검출하여 상기 ECC 회로로 전송하는 로직 회로를 구비하고, 상기 ECC 회로는 상기 로직 회로에서 검출한 더블 비트 에러를 보정한다.

Description

메모리 데이터의 에러 보정 장치 및 방법 {Error correcting Device and method for memory data}
본 발명은 메모리 장치에 관한 것으로, 특히 메모리 장치에 저장된 데이터의 에러를 보정하는 장치 및 방법에 관한 것이다.
메모리 장치에 발생하는 에러를 정정하기 위하여, 종래에는 SECDED (single-error correction and double-error detection) 기법을 사용하고 있다. 특히, 플래시 메모리 장치(flash memory device)나 DRAM (Dynamic Random Access Memory)에서 처리하는 데이터에서 발생하는 오류를 정정하기 위하여 SECDED 기법을 채용하는 장치를 ECC(Error Check and Correction) DRAM 이라 한다.
ECC DRAM에서 메모리에 저장된 데이터가 에러 검출 회로를 거친 결과 해당 워드(word)에 있는 비트 에러가 1개보다 많으면 DRAM 내에서 비트 에러들을 정정하는 것이 불가능하여 하위의 메모리나 저장장치에서 데이터를 읽어오도록 요청을 보낸다. 또한, ECC DRAM에서는 데이터를 메모리에 기입(write)하는 과정에서 SECDED를 위한 코드(code)를 데이터 저장시에 추가로 저장해야 한다. 이 기술의 문제점은 한 개의 코드워드(codeword)에서 2개 이상의 비트 에러가 발생하는 경우, 에러가 발생한 사실은 인지할 수 있지만, 에러가 발생된 데이터는 정정할 수 없기 때문에, 하위 레벨의 메모리 혹은 저장장치에 대한 접근이 반드시 필요하다.
이를 위해, 참증 특허(한국공개특허 1998-0048943)에서는 더블 비트 에러를 정정하는 방법을 개시하고 있으나, 여기서는 패리티를 사용하지 않으므로, 계산 과정이 복잡하여 래이턴시(latency)가 길어지게 된다.
본 발명은 메모리 장치에 저장되는 데이터에 더블 비트 에러가 발생할 경우, 상기 더블 비트 에러를 정정할 수 있는 에러 보정 장치 및 방법을 제공하기 위한 것이다.
상기 과제를 해결하기 위하여 본 발명은,
복수개의 보정 그룹들로 분할된 메모리 장치에 연결되며, 상기 각 보정 그룹에 저장된 다수의 워드들을 포함하는 데이터에서 상기 다수의 워드들 중 더블 비트 에러를 갖는 워드를 포함하는 에러 데이터를 검출하는 ECC 회로; 상기 각 보정 그룹에 저장된 데이터의 패리티들을 저장하는 패리티 메모리; 및 상기 에러 데이터를 수신하고, 상기 패리티들 중 상기 에러 데이터에 대응하는 패리티를 수신하며, 상기 에러 데이터와 상기 패리티의 배타적 논리합 연산을 수행하여 상기 더블 비트 에러를 갖는 워드 내에서 상기 더블 비트 에러의 위치를 검출하여 상기 ECC 회로로 전송하는 로직 회로를 구비하고, 상기 ECC 회로는 상기 로직 회로에서 검출한 더블 비트 에러를 보정하는 에러 보정 장치를 제공한다.
상기 메모리 장치의 각 보정 그룹에 저장되어있는 데이터의 패리티를 산출하여 상기 상기 패리티 메모리에 저장하며, 외부로부터 상기 메모리 장치에 기입될 데이터의 패리티를 미리 산출하여 상기 패리티 메모리에 저장된 패리티 중 대응되는 패리티를 업데이트시키는 캐시 메모리를 더 구비할 수 있다.
상기 과제를 해결하기 위하여 본 발명은 또한,
복수개의 보정 그룹들로 분할되며 각 보정 그룹에 다수의 워드들을 포함하는 데이터가 저장되는 메모리 장치, 상기 데이터의 패리티가 저장되는 패리티 메모리를 구비하여 상기 데이터의 에러를 보정하는 방법에 있어서, (a) 상기 각 보정 그룹에 저장된 데이터를 리드하는 단계; (b) 상기 데이터에 대한 SECDED(Single Error Correction Double Error Detection) 코드워드를 디코딩하는 단계; (c) 상기 디코딩 결과, 상기 데이터에 더블 비트 에러를 갖는 워드가 존재할 경우에, 상기 더블 비트 에러를 갖는 워드를 포함하는 에러 데이터를 검출하는 단계; (d) 상기 에러 데이터와 상기 패리티 메모리에 저장된 패리티를 배타적 논리합(Exclusive OR) 연산하여 상기 더블 비트 에러를 갖는 워드 내에서 상기 더블 비트 에러의 위치를 검출하는 단계; 및 (e) 상기 더블 비트 에러를 보정하는 단계를 포함하는 에러 보정 방법을 제공한다.
상기 패리티 메모리에 저장된 패리티를 업데이트하는 단계는, 상기 메모리 장치의 특정 보정 그룹에 저장되어있는 데이터 중 소정의 블록에 저장되어 있는 데이터인 올드(old) 데이터의 파셜 패리티(partial parity)를 산출하는 단계; 상기 패리티 메모리로부터 상기 특정 보정 그룹의 패리티를 리드하는 단계; 상기 올드 데이터의 파셜 패리티와 상기 특정 보정 그룹의 패리티 및 상기 메모리 장치에 기입될 새로운 데이터의 파셜 패리티를 배타적 논리합 연산하는 단계; 및 상기 배타적 논리합 연산의 결과로 생성된 패리티를 상기 패리티 메모리에 저장하여 상기 패리티 메모리에 저장된 패리티를 업데이트하는 단계를 구비할 수 있다.
상술한 바와 같이 본 발명에 따르면, 제조 비용에 민감한 메모리 장치, 예컨대, DRAM에 발생하는 더블 비트 에러를 비교적 간단한 방법으로 정정할 수 있다. 따라서, 메모리 장치의 더블 비트 에러 정정 비용이 큰 폭으로 감소된다.
그 결과, 메모리 장치를 사용하는 시스템의 전반적인 성능이 안정적으로 유지될 수 있다.
도 1은 메모리 장치에 연결된 본 발명의 제1 실시예에 따른 에러 보정 장치의 블록도이다.
도 2는 메모리 장치에 연결된 본 발명의 제2 실시예에 따른 에러 보정 장치의 블록도이다.
도 3은 도 2에 도시된 캐시 메모리의 상세한 블록도이다.
도 4는 본 발명에 따른 에러 보정 방법을 도시한 흐름도이다.
도 5는 도 4에 도시된 에러 보정 방법을 보다 상세히 설명하기 위한 흐름도이다.
도 6은 도 4 및 도 5의 배타적 논리합 연산을 설명하기 위한 도면이다.
도 7은 도 4의 패리티를 업데이트하는 방법을 도시한 흐름도이다.
도 8a는 도 7의 파셜 패리티를 산출하는 방법을 도시한 흐름도이다.
도 8b는 도 7의 파셜 패리티를 산출하는 다른 방법을 도시한 흐름도이다.
도 9a 및 도 9b는 각각 도 8a 및 도 8b에 도시된 파셜 패리티 처리 과정에 따른 캐시 메모리의 동작을 설명하기 위한 도면들이다.
이하, 첨부한 도면들을 참고하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예에 대하여 상세히 설명하기로 한다. 각 도면에 제시된 참조부호들 중 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 메모리 장치에 연결된 본 발명의 제1 실시예에 따른 에러 보정 장치의 블록도이다. 도 1을 참조하면, 에러 보정 장치(101)는 ECC(Error Check and Correction) 회로(111), 로직(logic) 회로(121) 및 패리티 메모리(parity memory)(131)를 구비하며, 메모리 장치(105)에 연결된다.
메모리 장치(105)는 데이터가 저장되는 부분을 복수개의 보정 그룹(correction group)(도 6의 CG)들로 분할하고, 각 보정 그룹에는 다수의 워드들을 포함하는 데이터가 저장된다. 상기 데이터는 소정의 블록 단위, 예컨대, 64바이트(byte) 크기로 기입(write)되거나 리드(read)된다. 또한, 보정 그룹당 1개의 패리티가 설정되어 패리티 메모리(131)에 저장된다. 예컨대, 1개의 보정 그룹의 크기가 8∼16 [KB] (킬로바이트) 일 때, 패리티의 크기는 8 [B] (바이트)로 설정될 수 있다. 따라서, 8 [GB]의 DRAM (DIMM)일 때, 패리티는 8 [MB]의 크기로 설정되고, 이 때, 보정 그룹의 크기가 8 [KB]로 설정되면, 패리티는 8 [B]로 설정될 수 있다.
ECC 회로(111)는 메모리 장치(105), 예컨대, DRAM (Dynamic Random Access Memory) 반도체 장치에 연결된다. ECC 회로(111)는 메모리 장치(105)에 저장된 데이터를 리드하고, 상기 리드된 데이터에서 상기 다수의 워드들 중 더블 비트 에러를 갖는 워드를 포함하는 에러 데이터를 검출 및 상기 더블 비트 에러를 보정한다. 즉, ECC 회로(111)는 SECDED (Single Error Correction Double Error Detection) 기법을 이용하여 즉, SECDED 코드워드를 디코딩하여 메모리 장치(105)에 저장된 데이터의 에러를 검출하고 보정한다. 이 때, 메모리 장치(105)의 특정 보정 그룹에 저장된 데이터를 구성하는 다수의 워드들 중 1개의 워드에 싱글 비트 에러(single bit error)가 있으면, ECC 회로(111)는 상기 싱글 비트 에러를 검출하여 보정한다. 그러나, 상기 특정 보정 그룹에 저장된 데이터를 구성하는 다수의 워드들 중 1개의 워드에 더블 비트 에러(double bit error)가 있으면, ECC 회로(111)는 상기 더블 비트 에러를 갖는 워드를 포함하는 에러 데이터를 검출하여 로직 회로(121)에 통지한다. 그러면, 로직 회로(121)는 상기 더블 비트 에러를 갖는 에러 데이터와 상기 에러 데이터에 대한 패리티를 배타적 논리합 (exclusive OR) 연산하여 상기 워드 내의 더블 비트 에러의 위치를 검출하여 ECC 회로(111)에 통지한다. 그에 따라, ECC 회로(111)는 상기 더블 비트 에러를 나타내는 비트들을 반전(예컨대, "0"을 "1"로, 또는 "1"을 "0"으로 반전)시켜서 상기 더블 비트 에러를 보정한다. 더블 비트 에러의 위치를 검출하고 보정하는 방법에 대해서는 도 4 및 도 5에 도시된 에러 보정 방법을 통하여 상세히 설명하기로 한다. ECC 회로(111)는 도 1에 도시된 바와 같이, 에러 보정 장치(101)에 구비되어 메모리 장치(105)에 전기적으로 연결될 수도 있고, 메모리 장치(105)의 내부에 구비될 수도 있다. 이 때, ECC 회로(111)의 기능은 동일하게 수행된다.
패리티 메모리(131)는 로직 회로(121)에 연결되며, 메모리 장치(105)에 저장된 데이터의 패리티를 저장한다. 패리티 메모리(131)는 메모리 장치(105)의 보정 그룹의 수에 해당하는 패리티들을 저장한다. 따라서, 상기 보정 그룹의 수가 많을수록 패리티의 수가 많아져서 패리티 메모리(131)의 용량은 커지게 되고, 상기 보정 그룹의 수가 작을수록 패리티의 수가 작아져서 패리티 메모리(131)의 용량은 작아지게 된다. 이와 같이, 패리티 메모리(131)에는 복수개의 패리티들이 저장되기 때문에, 패리티 메모리(131)에 저장된 패리티들을 리드(read)하기 위하여 상기 패리티의 주소를 지정하기 위한 신호가 사용된다. 즉, 패리티 메모리(131)는 외부에서 입력되는 어드레스 신호에 응답하여 저장된 패리티를 로직 회로(121)로 전송한다. 패리티 메모리(131)는 메모리 장치(105)가 DIMM (Dual In-line Memory Module) 형태로 구비될 경우에 상기 메모리 장치(105)를 제어하는 콘트롤러, 예컨대 CPU (Central Processing Unit)의 내부 또는 상기 데이터를 버퍼링하는 버퍼 칩 (buffer chip)에 구비될 수 있고, 메모리 장치(105)가 3D (Dimension) stacked DRAM의 경우에는 메모리 장치(105)에 입출력되는 데이터의 로직 연산을 수행하는 로직 회로(121)가 형성되는 로직 칩에 구비될 수 있다.
로직 회로(121)는 ECC 회로(111)와 패리티 메모리(131)에 연결된다. 로직 회로(121)는 ECC 회로(111)로부터 전송되는 데이터 즉, 메모리 장치(105)의 복수개의 보정 그룹들 중 특정한 보정 그룹으로부터 리드된 에러 데이터와 패리티 메모리(131)에 저장된 패리티들 중 상기 에러 데이터에 대응하는 패리티를 로직(logic) 연산, 예컨대 배타적 논리합 (Exclusive OR) 연산하여 더블 비트 에러를 갖는 워드 내에서 상기 더블 비트 에러 의 위치를 검출한다. 로직 회로(121)는 상기 검출된 더블 비트 에러의 위치를 ECC 회로(111)에 알려주며, 그에 따라 ECC 회로(111)는 상기 더블 비트 에러를 보정한다.
로직 회로(121)는 또한, 메모리 장치(105)에 데이터가 기입될 때마다 패리티 메모리(131)의 패리티를 업데이트한다. 패리티 메모리(131)의 패리티를 업데이트하는 방법에 대해서는 도 7 내지 도 8b를 통하여 상세히 설명하기로 한다.
이와 같이, 본 발명에 따른 에러 보정 장치(101)는 메모리 장치(105)의 메모리를 복수개의 보정 그룹들로 분할하고, 상기 보정 그룹당 1개의 패리티를 생성하며, 상기 패리티를 이용하여 메모리 장치(105)에 저장된 데이터에 발생하는 더블 비트 에러를 보정한다. 따라서, 에러 보정 장치(101)의 구조가 간단하여 에러 보정 장치(101)의 제조 비용이 감소된다.
도 2는 메모리 장치(105)에 연결된 본 발명의 제2 실시예에 따른 에러 보정 장치의 블록도이다. 도 2를 참조하면, 에러 보정 장치(201)는 ECC 회로(211), 패리티 메모리(231), 로직 회로(221), 및 캐시 메모리(241)를 구비하며, 메모리 장치(105)에 연결된다.
ECC 회로(211), 패리티 메모리(231), 및 로직 회로(221)의 구조 및 기능은 도 1에 도시된 ECC 회로(111), 패리티 메모리(131), 및 로직 회로(121)와 유사함으로 이에 대한 중복 설명은 생략하고, 차이점에 대해서만 설명하기로 한다. 캐시 메모리(241)는 ECC 회로(211)와 로직 회로(221)에 연결된다. 캐시 메모리(241)는 데이터를 일시 저장한다. 즉, 캐시 메모리(241)는 메모리 장치(105)에 저장되어있는 데이터를 소정의 블록 단위로 리드하여 저장하고, 상기 리드된 데이터의 패리티를 산출하여 로직 회로(221)를 통해서 패리티 메모리(231)에 저장한다. 캐시 메모리(241)는 또한, 외부로부터 메모리 장치(105)에 기입될 데이터를 수신하고, 상기 기입될 데이터의 패리티를 미리 산출하여 패리티 메모리(231)에 저장된 패리티 중 대응되는 패리티를 업데이트시킨다. 캐시 메모리(241)는 메모리의 동작을 제어하는 컨트롤러(memory controller), 예컨대 CPU에 구비될 수 있으며, 라스트 레벨 로직 회로(221)인 것이 바람직하다.
도 3은 도 2에 도시된 캐시 메모리(241)의 상세한 블록도이다. 도 3을 참조하면, 캐시 메모리(241)는 복수개의 데이터 블록들(321∼324)과 복수개의 패리티 블록들(331,332)을 구비한다.복수개의 데이터 블록들(321∼324)은 메모리 장치(105)에 기입 및 리드되는 데이터를 일시 저장하는 기능을 갖는다. 각 데이터 블록에는 메모리 장치(105)의 각 보정 그룹에 기입되거나 리드되는 소정 블록 단위의 데이터가 저장된다. 즉, 메모리 장치(105)의 각 보정 그룹은 복수개의 블록들로 구분되고, 상기 보정 그룹에 기입되거나 리드되는 데이터는 상기 소정 블록 단위, 예컨대 64 바이트의 크기로 구성된다. 도 3에는 데이터 블록들(321∼324)이 4개만 도시되어 있으나, 이는 예시적인 것이며, 그 이상의 개수로 확장될 수 있다.
복수개의 패리티 블록들(331,332)은 각각 데이터의 파셜 패리티(partial parity)를 저장한다. 여기서, 파셜 패리티는 상기 소정 블록 단위의 데이터의 패리티를 지칭한다. 복수개의 패리티 블록들(331,332)은 복수개의 데이터 블록들(321∼324)보다 적은 개수로 구성된다. 예컨대, 도 3에 도시된 바와 같이, 메모리 블록들(321∼324)은 4개이고, 패리티 블록들(331,332)은 그보다 적은 2개로 구성될 수 있다. 도 3에는 패리티 블록들(331,332)이 2개만 도시되어 있으나, 이는 예시적인 것이며, 그 이상의 개수로 확장될 수 있다.
이와 같이, 패리티 블록들(331,332)의 개수를 데이터 블록들(321∼324)의 개수보다 적게 구성함으로써, 캐시 메모리(241)의 용량을 작게 구성하고, 그에 따라 캐시 메모리(241)의 면적 비용 즉, 제조 비용이 감소되고, 처리 속도도 향상된다.
도 4는 본 발명에 따른 에러 보정 방법을 도시한 흐름도이다. 도 1을 참조하여 도 4에 도시된 에러 보정 방법을 설명하기로 한다. 본 발명에 따른 에러 보정 방법은 제1 내지 제5 단계(411∼451)를 포함한다.
제1 단계(411)로써, ECC 회로(111)는 메모리 장치(105)에 구비된 복수개의 보정 그룹들 중 1개의 보정 그룹에 저장된 데이터를 리드한다.
제2 단계(421)로써, ECC 회로(111)는 SECDED 코드워드를 디코딩하여 상기 리드된 데이터에 에러가 있는지 여부를 확인한다. ECC 회로(111)는, 상기 리드된 데이터에 싱글 비트 에러가 있으면 상기 싱글 비트 에러를 검출하여 보정하고(435), 상기 리드된 데이터에 더블 비트 에러가 있으면 이하의 제3 단계(431)를 진행하며, 상기 리드된 데이터에 더블 비트 에러보다 많은 에러가 있으면 상기 리드된 데이터는 사용할 수 없으므로 하위 메모리로부터 데이터를 다시 리드하여 이를 대체함으로써 에러를 보정한다(435).
제3 단계(431)로써, ECC 회로(111)는 상기 리드된 데이터에 더블 비트 에러를 갖는 워드가 존재할 경우, 상기 더블 비트 에러를 갖는 워드를 포함하는 에러 데이터를 검출한다.
제4 단계(441)로써, 로직 회로(121)는 ECC 회로(111)로부터 상기 더블 비트 에러가 있는 에러 데이터를 수신하고, 패리티 메모리(131)에 저장된 패리티들 중 상기 에러 데이터에 대응되는 패리티를 수신한 후, 상기 에러 데이터와 상기 패리티를 배타적 논리합(Exclusive OR) 연산한다. 예컨대, 도 6을 참조하면, 상기 데이터는 4개의 제1 내지 제4 워드들(D0∼D3)을 포함하고, 각 워드는 8비트들로 구성되며, 패리티는 8비트로 구성된 1개의 워드(P)를 포함한다. 상기 데이터의 제1 내지 제4 워드들(D0∼D3)과 패리티의 워드(P)는 세로로 정렬되고, 로직 회로(121)는 상기 제1 내지 제4 워드들(D0∼D3)에 포함된 비트들과 상기 패리티의 워드(P)의 비트들을 세로 방향으로 각각 배타적 논리합 연산하여 그에 따른 값들을 연산 워드 (DXOR)로써 생성한다. 로직 회로(121)는 상기 연산 워드(DXOR)를 이용하여 상기 더블 비트 에러를 갖는 워드에 포함된 더블 비트 에러의 위치를 검출한다. 예컨대, 연산 워드(DXOR)는 "0"과 "1"의 조합으로 구성되며, 이 때, "0"은 에러가 없음을 나타내고, "1"은 에러가 있음을 나타낸다. 즉, 도 6의 좌측에 도시된 바와 같이, 데이터에 에러가 없는 경우, 연산 워드(DXOR)의 비트들은 모두 "0"으로 구성된다. 그러나, 상기 데이터에 더블 비트 에러가 있는 경우(오른쪽 D2의 옅은 흑색 표시 부분), 도 6의 우측에 도시된 바와 같이, 연산 워드(DXOR)는 "0"과 "1"의 조합으로 구성된다. 구체적으로, 연산 워드(DXOR)의 좌측에서 3번째 비트와 7번째 비트가 "1"로 나타나 있다. 이것은 상기 더블 비트 에러가 있는 제3 워드(오른쪽 D2)에서 좌측에서 3번째 비트와 7번째 비트가 에러 비트들임을 나타낸다. 이와 같이, 로직 회로(121)는 상기 에러 데이터와 그에 대응되는 패리티의 배타적 논리합 연산을 이용하여 상기 더블 비트 에러를 갖는 워드 내에서 상기 더블 비트 에러의 위치를 검출할 수 있으며, 이것을 ECC 회로(111)로 전송한다.
제5 단계(451)로써, ECC 회로(111)는 상기 더블 비트 에러를 나타내는 비트들을 반전시켜서 상기 더블 비트 에러를 보정한다. 즉, 원래의 데이터가 복원된다. ECC 회로(111)는 상기 더블 비트 에러가 보정된 데이터를 원래의 보정 그룹에 저장한다.
상술한 바와 같이, 본 발명의 에러 보정 방법에 따르면, 상기 1개의 보정 그룹에 저장된 메모리 데이터의 복수개의 워드들 중 1개의 워드가 더블 비트 에러를 가지고 있을 때, 로직 회로(121)는 상기 데이터와 패리티의 배타적 논리합 연산을 수행하여 상기 더블 비트 에러를 갖는 워드의 더블 비트 에러의 위치를 정확하게 검출한다. 상기 더블 비트 에러의 위치가 정확하게 검출되면, ECC 회로(111)에 의해 상기 더블 비트 에러가 보정된다. 이와 같이, 본 발명의 에러 보정 방법에 따르면, 간단한 처리 과정을 통해 더블 비트 에러가 보정되기 때문에 에러 보정 장치(101)의 더블 비트 에러 정정 비용이 큰 폭으로 감소된다.
도 5는 도 4에 도시된 에러 보정 방법을 보다 상세히 설명하기 위한 흐름도이다. 도 1을 참조하여 도 5에 도시된 에러 보정 방법을 설명하기로 한다.
제1 단계(511)로써, ECC 회로(111)는 메모리 장치(105)에 구비된 복수개의 보정 그룹들 중 1개의 보정 그룹에 저장된 데이터를 리드한다.
제2 단계(521)로써, ECC 회로(111)는 SECDED 코드워드를 디코딩하여 상기 리드된 데이터에 에러가 있는지 여부를 확인한다. ECC 회로(111)는, 상기 리드된 데이터에 싱글 비트 에러가 있으면 상기 싱글 비트 에러를 검출하여 보정하고(531), 상기 리드된 데이터에 싱글 비트 에러보다 많은 에러가 있으면 이하의 제3 단계(535)를 진행한다.
제3 단계(535)로써, ECC 회로(111)는 제1 단계(511)의 보정 그룹과 동일한 보정 그룹의 데이터를 리드한다(535).
제4 단계(541)로써, ECC 회로(111)는 상기 리드된 데이터의 SECDED 코드워드를 디코딩하여 상기 리드된 데이터에 에러가 있는지 여부를 확인한다. 이 때, ECC 회로(111)는, 상기 리드된 데이터에 더블 비트 에러가 있으면 이하의 제5 단계(551)를 진행하고, 상기 리드된 데이터에 더블 비트 에러보다 많은 에러가 있으면 상기 리드된 데이터는 사용할 수 없으므로 하위 메모리로부터 데이터를 다시 리드하여 이를 대체함으로써 에러를 보정한다(555).
제5 단계(551)로써, ECC 회로(111)는 상기 리드된 데이터에 더블 비트 에러가 있을 경우, 상기 더블 비트 에러를 갖는 워드를 검출한다.
제6 단계(561)로써, 로직 회로(121)는 ECC 회로(111)로부터 상기 더블 비트 에러가 있는 데이터를 수신하고, 패리티 메모리(131)로부터 상기 데이터의 패리티를 수신한 후, 상기 더블 비트 에러가 있는 데이터와 상기 패리티를 배타적 논리합 연산한다. 배타적 논리합 연산을 수행하는 방법은 도 4를 통하여 설명된 바와 동일함으로 이에 대한 중복 설명은 생략하기로 한다.
제7 단계(571)로써, ECC 회로(111)는 상기 더블 비트 에러를 나타내는 비트들을 반전시켜서 상기 더블 비트 에러를 보정한다. 즉, 원래의 데이터가 복원된다. ECC 회로(111)는 상기 더블 비트 에러가 보정된 데이터를 원래의 보정 그룹에 저장한다.
도 7은 도 4의 패리티를 업데이트하는 방법을 도시한 흐름도이다. 도 2 및 도 3을 참조하여 도 7에 도시된 패리티 업데이트 방법을 설명하기로 한다. 도 7을 참조하면, 패리티 업데이트 방법은 제1 내지 제6 단계(711∼761)를 포함한다.
제1 단계(711)로써, 캐시 메모리(241)는 메모리 장치(105)에 기입될 새로운 데이터의 파셜 패리티(partial parity)를 산출한다. 메모리 장치(105)에 기입되거나 메모리 장치(105)로부터 리드되는 데이터는 보정 그룹 내의 소정의 블록 단위, 예컨대 64 바이트의 블록 단위로 구성된다. 캐시 메모리(241)는 메모리 장치(105)에 데이터가 기입되는 것을 알리는 데이터 기입 요청 신호를 받아서 제1 단계(711)를 진행하는 것이 바람직하다.
제2 단계(721)로써, 로직 회로(221)는 패리티 메모리(231)의 특정 보정 그룹의 패리티를 리드한다. 이 때, 로직 회로(221)는 상기 특정 보정 그룹의 소정의 블록에 저장되어 있는 데이터인 올드 데이터의 파셜 패리티를 가지고 있으면, 제5 단계(751)를 진행하고, 상기 올드 데이터의 파셜 페리티를 가지고 있지 않으면 제3 단계(731)를 진행한다. 상기 올드 데이터는 상기 새로운 데이터가 기입될 메모리 장치(105)의 소정의 블록에 기 저장되어 있는 데이터를 나타낸다.
제3 단계(731)로써, ECC 회로(211)는 메모리 장치(105)로부터 상기 올드 데이터를 리드하여 캐시 메모리(241)로 전송한다.
제4 단계(741)로써, 캐시 메모리(241)는 상기 올드 데이터의 파셜 패리티를 산출한다.
제5 단계(751)로써, 로직 회로(221)는 캐시 메모리(241)로부터 상기 올드 데이터의 파셜 패리티와 상기 새로운 데이터의 파셜 패리티를 수신하고, 상기 올드 데이터의 파셜 패리티와 상기 특정 보정 그룹의 패리티 및 상기 새로운 데이터의 파셜 패리티를 로직 연산, 예컨대 배타적 논리합 연산한다. 제5 단계(751)를 수학식으로 표현하면 다음과 같다.
[수학식 1]
Pnew = Pold XOR PPold XOR PPnew
여기서, Pnew는 상기 새로운 데이터의 패리티로써 패리티 메모리(231)에 업데이트되는 패리티이고, Pold는 패리티 메모리(231)에 기 저장된 상기 특정 보정 그룹의 패리티이고, PPold는 메모리 장치(105)의 소정 블록으로부터 리드된 메모리 데이터의 파셜 패리티이고, PPnew는 메모리 장치(105)의 상기 소정 블록에 기입될 데이터의 파셜 패리티를 나타낸다.
제6 단계(761)로써, 로직 회로(221)는 상기 배타적 논리합 연산의 결과로 생성된 패리티를 패리티 메모리(231)에 저장한다. 따라서, 패리티 메모리(231)에 저장된 패리티가 업데이트된다.
캐시 메모리(241)는 아이들(idle) 타임 동안에 상기 제3 단계(731) 및 제4 단계(741)를 수행한다.
이와 같이, 캐시 메모리(241)를 이용할 경우에, 아이들 타임 동안에 제3 단계(731) 및 제4 단계(741)가 수행되며, 그에 따라, 데이터 기입 요청 신호가 에러 보정 장치(201)에 입력될 때마다 메모리 장치(105)에 저장된 데이터를 리드할 필요가 없어진다. 따라서, 패리티 업데이트 과정이 보다 간단해지고, 시간도 단축되어 에러 보정 장치(201)의 성능이 향상된다.
도 8a는 도 7의 파셜 패리티를 산출하는 방법을 도시한 흐름도이다. 도 9a를 참조하여 도 8a에 도시된 파셜 패리티 산출 방법을 설명하기로 한다. 도 8a를 참조하면, 파셜 패리티 산출 방법은 제1 내지 제4 단계(811∼825)를 포함한다.
제1 단계(811)로써, 메모리 장치(105)에 기입될 새로운 데이터가 외부로부터 캐시 메모리(241)로 기입된다. 이 때, 캐시 메모리(241)의 복수개의 데이터 블록들(321∼324) 중 가용한 데이터 블록에 저장된 올드 데이터가 클린인 경우 제2 단계(815)를 진행하고, 클린이 아닌 경우 제4 단계(825)를 진행한다.
제2 단계(815)로써, 캐시 메모리(241)는 상기 올드 데이터의 파셜 패리티를 산출한다.
제3 단계(821)로써, 캐시 메모리(241)는 상기 산출된 올드 데이터의 파셜 패리티를 캐시 메모리(241) 내의 가용한 패리티 블록에 저장한다.
제4 단계(825)로써, 캐시 메모리(241)는 상기 새로운 데이터를 상기 올드 데이터를 오버라이트(overwrite)한다.
도 8b는 도 7의 파셜 패리티를 산출하는 다른 방법을 도시한 흐름도이다. 도 9b를 참조하여 도 8b에 도시된 파셜 패리티 산출 방법을 설명하기로 한다. 도 8b를 참조하면, 파셜 패리티 산출 방법은 제1 내지 제4 단계(831∼845)를 포함한다.
제1 단계(831)로써, 캐시 메모리(241)는 메모리 장치(105)에 기입될 새로운 데이터의 파셜 패리티가 외부로부터 캐시 메모리(241)로 기입된다. 이 때, 캐시 메모리(241)의 복수개의 패리티 블록들(331,332)이 모두 가득차 있으면, 제2 단계(835)를 진행하고, 가득차있지 않으면 제4 단계(845)를 진행한다.
제2 단계(835)로써, 캐시 메모리(241)는 상기 새로운 데이터가 저장될 데이터 블록에 기 저장되어있는 데이터를 캐시 메모리(241)에 구비된 기입 버퍼(311)로 전송하고, 패리티 블록들(331,332) 중 가용한 패리티 블록에 저장된 파셜 패리티를 기입 버퍼(311)로 전송한다. 데이터가 출력되는 블록들은 우선 순위가 가장 낮게 설정된 것들이다. 즉, 우선순위가 가장 낮은 패리티 블록이 패리티 리소스(resource)를 반납한다.
제3 단계(841)로써, 캐시 메모리(241)는 데이터가 비워진 상기 데이터 블록과 상기 패리티 블록의 상태를 변경한다. 즉, 상기 데이터 블록은 "더티(dirty)"에서 "클린"으로 변경하고, 상기 패리티 블록은 "밸리드(valid)"에서 "인벌리드(invalid)"로 변경한다.
제4 단계(845)로써, 캐시 메모리(241)는 상기 새로운 데이터의 파셜 패리티를 상기 가용 패리티 블록에 저장한다.
본 발명은 도면들에 도시된 실시예들을 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이들로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (14)

  1. 복수개의 보정 그룹들로 분할된 메모리 장치에 연결되며, 상기 각 보정 그룹에 저장된 다수의 워드들을 포함하는 데이터에서 상기 다수의 워드들 중 더블 비트 에러를 갖는 워드를 포함하는 에러 데이터를 검출하는 ECC 회로;
    상기 각 보정 그룹에 저장된 데이터의 패리티들을 저장하는 패리티 메모리; 및
    상기 에러 데이터를 수신하고, 상기 패리티들 중 상기 에러 데이터에 대응하는 패리티를 수신하며, 상기 에러 데이터와 상기 패리티의 배타적 논리합 연산을 수행하여 상기 더블 비트 에러를 갖는 워드 내에서 상기 더블 비트 에러의 위치를 검출하여 상기 ECC 회로로 전송하는 로직 회로를 구비하고,
    상기 ECC 회로는 상기 로직 회로에서 검출한 더블 비트 에러를 보정하는 것을 특징으로 하는 에러 보정 장치.
  2. 제1항에 있어서, 상기 ECC 회로는 상기 더블 비트 에러를 나타내는 비트들을 반전시켜서 상기 더블 비트 에러를 보정하는 것을 특징으로 하는 에러 보정 장치.
  3. 제1항에 있어서,
    상기 메모리 장치의 각 보정 그룹에 저장되어있는 데이터의 패리티를 산출하여 상기 패리티 메모리에 저장하며, 외부로부터 상기 메모리 장치에 기입될 데이터의 패리티를 미리 산출하여 상기 패리티 메모리에 저장된 패리티들 중 대응되는 패리티를 업데이트시키는 캐시 메모리를 더 구비하는 것을 특징으로 하는 에러 보정 장치.
  4. 제3항에 있어서,
    상기 캐시 메모리는 라스트 레벨 캐시 메모리인 것을 특징으로 하는 에러 보정 장치.
  5. 제3항에 있어서,
    상기 캐시 메모리는 상기 데이터를 저장하는 복수개의 데이터 블록들, 및 상기 데이터의 패리티를 저장하기 위하여 상기 데이터 블록들보다 적은 개수로 구성되는 복수개의 패리티 블록들을 구비하는 것을 특징으로 하는 에러 보정 장치.
  6. 복수개의 보정 그룹들로 분할되며 각 보정 그룹에 다수의 워드들을 포함하는 데이터가 저장되는 메모리 장치, 상기 데이터의 패리티가 저장되는 패리티 메모리를 구비하여 상기 데이터의 에러를 보정하는 방법에 있어서,
    (a) 상기 각 보정 그룹에 저장된 데이터를 리드하는 단계;
    (b) 상기 데이터에 대한 SECDED(Single Error Correction Double Error Detection) 코드워드를 디코딩하는 단계;
    (c) 상기 디코딩 결과, 상기 데이터에 더블 비트 에러를 갖는 워드가 존재할 경우에, 상기 더블 비트 에러를 갖는 워드를 포함하는 에러 데이터를 검출하는 단계;
    (d) 상기 에러 데이터와 상기 패리티 메모리에 저장된 패리티들 중 상기 에러 데이터에 대응되는 패리티를 배타적 논리합(Exclusive OR) 연산하여 상기 더블 비트 에러를 갖는 워드 내에서 상기 더블 비트 에러의 위치를 검출하는 단계; 및
    (e) 상기 더블 비트 에러를 보정하는 단계를 포함하는 것을 특징으로 하는 에러 보정 방법.
  7. 제6항에 있어서,
    상기 SECDED 코드워드를 디코딩한 결과 상기 데이터에 싱글 비트 에러(single bit error)가 존재할 경우에, 상기 싱글 비트 에러를 보정하는 것을 특징으로 하는 에러 보정 방법.
  8. 제6항에 있어서,
    상기 (d) 단계의 상기 에러 데이터의 워드들과 상기 패리티의 워드를 세로로 정렬시키고, 상기 에러 데이터의 워드들과 상기 패리티의 워드에 포함된 비트들을 각각 세로 방향으로 배타적 논리합 연산하는 것을 특징으로 하는 에러 보정 방법.
  9. 제6항에 있어서, 상기 패리티 메모리에 저장된 패리티를 업데이트하기 위하여,
    상기 메모리 장치에 기입될 새로운 데이터의 파셜 패리티를 산출하는 단계;
    상기 패리티 메모리에 저장된 패리티 중 상기 특정 보정 그룹의 패리티를 리드하는 단계;
    상기 특정 보정 그룹의 소정의 블록에 저장되어 있는 올드 데이터의 파셜 패리티가 존재할 경우에, 상기 올드 데이터의 파셜 패리티와 상기 특정 보정 그룹의 패리티 및 상기 메모리 장치에 기입될 새로운 데이터의 파셜 패리티를 배타적 논리합 연산하는 단계; 및
    상기 배타적 논리합 연산의 결과로 생성된 패리티를 상기 패리티 메모리에 저장하여 상기 패리티 메모리에 저장된 패리티를 업데이트하는 단계를 구비하는 것을 특징으로 하는 에러 보정 방법.
  10. 제9항에 있어서,
    상기 소정의 블록에 올드 데이터의 파셜 패리티가 존재하지 않을 경우에,
    상기 메모리 장치로부터 상기 소정의 블록에 저장된 올드 데이터를 리드하는 단계; 및
    상기 올드 데이터의 파셜 패리티를 산출하는 단계를 더 진행한 후에,
    상기 올드 데이터의 파셜 패리티와 상기 특정 보정 그룹의 패리티 및 상기 메모리 장치에 기입될 새로운 데이터의 파셜 패리티를 배타적 논리합 연산하는 단계를 진행하는 것을 특징으로 하는 에러 보정 방법.
  11. 제9항에 있어서, 캐시 메모리를 이용하여 상기 파셜 패리티를 산출하기 위하여,
    상기 메모리 장치에 기입될 새로운 데이터를 상기 캐시 메모리에 기입하는 단계; 및
    상기 캐시 메모리에서 상기 올드 데이터가 클린(비어있는 상태)이 아닐 경우에 상기 새로운 데이터를 상기 올드 데이터에 오버라이트하는 단계를 구비하는 것을 특징으로 하는 에러 보정 방법.
  12. 제11항에 있어서, 상기 캐시 메모리에서 상기 올드 데이터가 클린일 경우,
    상기 올드 데이터의 파셜 패리티를 산출하는 단계; 및
    상기 산출된 올드 데이터의 파셜 패리티를 상기 캐시 메모리 내의 패리티 블록에 저장하는 단계를 더 구비하는 것을 특징으로 하는 에러 보정 방법.
  13. 제11항에 있어서, 상기 캐시 메모리는 데이터를 저장하는 복수개의 데이터 블록들과 상기 데이터 블록보다 적은 개수로 구성되어 상기 파셜 패리티를 저장하는 패리티 블록들로 구성된 경우에,
    새로운 파셜 패리티가 상기 패리티 블록에 기입되는 단계;
    상기 패리티 블록들이 모두 가득차 있을 경우에 상기 데이터 블록들에 저장되어 있는 데이터 중 하나와 상기 패리티 블록들에 저장되어 있는 파셜 패리티들 중 하나를 캐시 메모리 내에 구비된 기입 버퍼로 전송하는 단계;
    상기 비워진 데이터 블록과 패리티 블록의 상태를 변경하는 단계; 및
    상기 새로운 파셜 패리티를 상기 비워진 패리티 블록에 기입하는 단계를 구비하는 것을 특징으로 하는 에러 보정 방법.
  14. 제13항에 있어서,
    상기 비워진 데이터 블록의 상태는 더티(dirty)에서 클린(clean)으로 변경하고, 상기 비워진 패리티 블록은 밸리드(valid)에서 인벌리드(invalid)로 변경하는 것을 특징으로 하는 에러 보정 방법.
KR1020140088927A 2014-07-15 2014-07-15 메모리 데이터의 에러 보정 장치 및 방법 KR101999288B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140088927A KR101999288B1 (ko) 2014-07-15 2014-07-15 메모리 데이터의 에러 보정 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140088927A KR101999288B1 (ko) 2014-07-15 2014-07-15 메모리 데이터의 에러 보정 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20160008786A true KR20160008786A (ko) 2016-01-25
KR101999288B1 KR101999288B1 (ko) 2019-07-11

Family

ID=55306759

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140088927A KR101999288B1 (ko) 2014-07-15 2014-07-15 메모리 데이터의 에러 보정 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101999288B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10698763B2 (en) 2018-01-25 2020-06-30 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices
US10990476B2 (en) 2019-06-18 2021-04-27 SK Hynix Inc. Memory controller and method of operating the same
US11256563B2 (en) 2019-08-23 2022-02-22 Samsung Electronics Co., Ltd. Memory controller with high data reliability, a memory system having the same, and an operation method of the memory controller

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230013558A (ko) 2021-07-19 2023-01-26 에스케이하이닉스 주식회사 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 컴퓨팅 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030087474A (ko) * 2002-05-10 2003-11-14 한국전자통신연구원 디지털 티브이용 영상변환과 오류자동보정 장치 및 방법
US20110225475A1 (en) * 2010-03-12 2011-09-15 Texas Instruments Incorporated Low overhead and timing improved architecture for performing error checking and correction for memories and buses in system-on-chips, and other circuits, systems and processes
KR20140079850A (ko) * 2011-12-16 2014-06-27 인텔 코오퍼레이션 패리티 및 리던던트 행들을 이용한 동적 에러 핸들링

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030087474A (ko) * 2002-05-10 2003-11-14 한국전자통신연구원 디지털 티브이용 영상변환과 오류자동보정 장치 및 방법
US20110225475A1 (en) * 2010-03-12 2011-09-15 Texas Instruments Incorporated Low overhead and timing improved architecture for performing error checking and correction for memories and buses in system-on-chips, and other circuits, systems and processes
KR20140079850A (ko) * 2011-12-16 2014-06-27 인텔 코오퍼레이션 패리티 및 리던던트 행들을 이용한 동적 에러 핸들링

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10698763B2 (en) 2018-01-25 2020-06-30 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices
US11385960B2 (en) 2018-01-25 2022-07-12 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices
US10990476B2 (en) 2019-06-18 2021-04-27 SK Hynix Inc. Memory controller and method of operating the same
US11256563B2 (en) 2019-08-23 2022-02-22 Samsung Electronics Co., Ltd. Memory controller with high data reliability, a memory system having the same, and an operation method of the memory controller

Also Published As

Publication number Publication date
KR101999288B1 (ko) 2019-07-11

Similar Documents

Publication Publication Date Title
US9377960B2 (en) System and method of using stripes for recovering data in a flash storage system
KR101659888B1 (ko) 플래시 메모리 제어 방법, 제어기 및 전자 장치
US8707122B1 (en) Nonvolatile memory controller with two-stage error correction technique for enhanced reliability
KR101730510B1 (ko) 메타데이터 태그를 통한 불규칙적인 패리티 분포 검출
US8438454B2 (en) Semiconductor memory device and controlling method
US8132086B2 (en) Semiconductor memory device for byte-based masking operation and method of generating parity data
US9274888B2 (en) Method and apparatus for multiple-bit DRAM error recovery
US20140115422A1 (en) Non-volatile memory error correction
US8910018B2 (en) Memory with dynamic error detection and correction
KR20090028507A (ko) 비휘발성 메모리 에러 보정 시스템 및 방법
TW201545167A (zh) 在非揮發性記憶體中處理錯誤更正碼的方法及其非揮發性儲存裝置
JP2012118979A (ja) Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム
US10248497B2 (en) Error detection and correction utilizing locally stored parity information
KR101999288B1 (ko) 메모리 데이터의 에러 보정 장치 및 방법
US20100162055A1 (en) Memory system, transfer controller, and memory control method
US11218165B2 (en) Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US9396064B2 (en) Error correction with secondary memory
CN103531246A (zh) 快速以读代写的存储器纠错方法
US9690649B2 (en) Memory device error history bit
US9106260B2 (en) Parity data management for a memory architecture
US20190296774A1 (en) Memory system and control method
KR102023121B1 (ko) 에러를 보정하는 메모리 장치 및 그의 에러 보정 방법
US10642683B2 (en) Inner and outer code generator for volatile memory
US11704055B2 (en) Storage device, controller and method for operating thereof
US7904789B1 (en) Techniques for detecting and correcting errors in a memory device

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