KR101248352B1 - 비휘발성 메모리 내의 데이터 에러 복구를 위한 장치, 방법 및 물품 - Google Patents

비휘발성 메모리 내의 데이터 에러 복구를 위한 장치, 방법 및 물품 Download PDF

Info

Publication number
KR101248352B1
KR101248352B1 KR1020117007710A KR20117007710A KR101248352B1 KR 101248352 B1 KR101248352 B1 KR 101248352B1 KR 1020117007710 A KR1020117007710 A KR 1020117007710A KR 20117007710 A KR20117007710 A KR 20117007710A KR 101248352 B1 KR101248352 B1 KR 101248352B1
Authority
KR
South Korea
Prior art keywords
memory
data
error
specified range
memory cell
Prior art date
Application number
KR1020117007710A
Other languages
English (en)
Other versions
KR20110065497A (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 인텔 코포레이션
Publication of KR20110065497A publication Critical patent/KR20110065497A/ko
Application granted granted Critical
Publication of KR101248352B1 publication Critical patent/KR101248352B1/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

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

Abstract

에러 정정 코드(ECC) 유닛이 고체 상태 비휘발성 메모리 디바이스 내에 정정 불가능한 에러를 발견할 때, 프로세스는 에러를 위치 확인하고 정정하기 위한 시도시에 사용될 수 있다. 이 프로세스는 에러를 포함할 가능성이 높은 '저신뢰성' 메모리 셀을 먼저 식별할 수 있고, 이어서 다양한 기준에 기초하여 이들 셀 내에 어느 데이터가 정정될 가능성이 높은지를 판정할 수 있다. 새로운 데이터가 이어서 임의의 잔류 에러를 정정하기 위해 ECC 유닛에 대해 충분히 정확한지를 검증하기 위해 ECC 유닛에 의해 점검될 수 있다.

Description

비휘발성 메모리 내의 데이터 에러 복구를 위한 장치, 방법 및 물품{DATA ERROR RECOVERY IN NON-VOLATILE MEMORY}
플래시 메모리와 같은 몇몇 유형의 고체 상태 비휘발성 메모리는 메모리 셀 내에 특정량의 전하를 저장함으로써 2진 데이터를 기록한다. 데이터가 이들 전하 기반 비휘발성 메모리 중 하나로부터 판독될 때, 저장된 전하의 전압 레벨이 기준 전압에 비교된다. 이 셀로부터 판독된 데이터의 2진값은 저장된 전하의 전압이 기준 전압보다 높은지 또는 낮은지의 여부에 의존한다. 그러나, 저장된 전하는 아날로그 현상이기 때문에, 그 실제값은 정확하게 의도된 것이 아닐 수 있고, 데이터가 판독될 때 에러가 발생할 수 있다. 에러 정정 코드(ECC) 유닛이 이들 에러의 일부를 검출하여 정정하는데 사용될 수 있지만, 종종 에러는 이 방식으로 모두 정정되기에는 너무 많다. 이러한 것이 발생할 때, 데이터는 영구적으로 손실될 수 있다.
본 발명의 몇몇 실시예가 이하의 상세한 설명 및 본 발명의 실시예를 도시하는데 사용된 첨부 도면을 참조하여 이해될 수 있다.
도 1은 본 발명의 실시예에 따른 고체 상태 비휘발성 메모리를 포함하는 시스템을 도시하는 도면.
도 2는 본 발명의 실시예에 따른 비휘발성 메모리 어레이의 부분을 도시하는 도면.
도 3은 본 발명의 실시예에 따른 메모리 내의 에러 정정 방법의 흐름도.
도 4는 본 발명의 실시예에 따른 타겟 셀에 영향을 미칠 수 있는 예시적인 전하 패턴을 도시하는 도면.
도 5는 본 발명의 실시예에 따른 NV 메모리 어레이 내의 저신뢰성 셀을 식별하기 위한 패턴 정합 방법의 흐름도.
도 6은 본 발명의 실시예에 따른 NV 메모리 어레이 내의 저신뢰성 셀을 식별하기 위한 방법으로서 기준 전압에 대한 근접도를 사용하는 방법의 흐름도.
도 7은 본 발명의 실시예에 따른 아날로그 전하값의 조정을 통한 NV 메모리 내의 데이터의 정정 방법의 흐름도.
이하의 설명에서, 다수의 특정 상세가 설명된다. 그러나, 본 발명의 실시예는 이들 상세 없이도 실시될 수 있다는 것이 이해된다. 다른 경우에, 공지의 회로, 구조체 및 기술이 본 명세서의 이해를 불명료하게 하지 않기 위해 상세히 도시되지 않는다.
"일 실시예", "실시예", "예시적인 실시예", "다양한 실시예 등의 언급은 이와 같이 설명된 본 발명의 실시예(들)가 특정한 특징부, 구조 또는 특징을 포함할 수 있지만, 모든 실시예가 반드시 특정 특징부, 구조 또는 특징을 포함해야 하는 것은 아니라는 것을 지시한다. 또한, 몇몇 실시예는 다른 실시예에 대해 설명된 특징의 일부, 전체를 갖거나 이 특징을 전혀 갖지 않을 수도 있다.
이하의 상세한 설명 및 청구범위에서, 용어 "결합된" 및 "연결된"이 이들의 파생어와 함께 사용될 수 있다. 이들 용어는 서로 동의어로서 의도되는 것은 아니라는 것이 이해되어야 한다. 오히려, 특정 실시예에서, "연결된"은 2개 이상의 요소가 서로 직접적인 물리적 또는 전기적 접촉을 하고 있는 것을 지시하는데 사용된다. "결합된"은 2개 이상의 요소가 서로 협동하거나 상호 작용하지만, 이들이 직접적인 물리적 또는 전기적 접촉을 하거나 하지 않을 수도 있다는 것을 지시하는데 사용된다.
청구범위에 사용될 때, 달리 지시되지 않으면, 공통의 요소를 설명하기 위한 순서 형용사 "제 1", "제 2", "제 3" 등의 사용은 단지 유사한 요소의 상이한 사례를 칭하는 것이고, 이와 같이 설명된 요소가 시간적으로, 공간적으로, 서열적으로, 또는 임의의 다른 방식으로 주어진 순서에 있어야 하는 것을 암시하도록 의도된 것은 아니다.
본 발명의 다양한 실시예는 하드웨어, 소프트웨어 및 소프트웨어 중 하나 또는 임의의 조합으로 구현될 수 있다. 본 발명은 또한 본 명세서에 설명된 동작의 수행을 가능하게 하는 하나 이상의 프로세서에 의해 판독되어 실행될 수 있는 컴퓨터 판독 가능 매체 내에 또는 상에 포함된 명령으로서 구현될 수 있다. 컴퓨터 판독 가능 매체는 하나 이상의 컴퓨터에 의해 판독 가능한 형태의 정보를 저장하고, 전송하고, 그리고/또는 수신하기 위한 임의의 메커니즘을 포함할 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 이들에 한정되는 것은 아니지만, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 디바이스 등과 같은 유형 저장 매체를 포함할 수 있다. 컴퓨터 판독 가능 매체는 또한 이들에 한정되는 것은 아니지만 전자기, 광학 또는 음향 반송파 신호와 같은 명령을 인코딩하기 위해 변조되어 있는 전파된 신호를 포함할 수 있다.
다양한 실시예에서, 전하 기반 비휘발성 메모리의 부분으로부터 데이터를 판독할 때 정정 불가능한 에러가 발견되면, 프로세스는 데이터를 정정하는 것을 시도하도록 이어질 수 있다. 불량 데이터의 정확한 위치는 인지될 수 없기 때문에, 이 프로세스는 1) 메모리의 해당 부분 내의 '저신뢰성'(LC) 저장 셀(즉, 에어를 포함할 가능성이 다른 셀보다 높은 셀)을 식별하는 것과, 2) 이들 셀 내의 어느 데이터가 정확할 가능성이 높은지를 판정하는 것과, 3) 새로운 데이터가 정확한지를 검증하는 것을 포함할 수 있다. 저신뢰성 셀을 식별하는 것은 2개의 방식, 즉 1) 그 아날로그 전하 전압이 기준 전압에 근접한 셀을 발견하고, 또는 2) 타겟 셀 내의 데이터 손상을 발생시키는 것으로 알려진 주위 셀 내의 전하 레벨의 특정 패턴을 조사하여 수행될 수 있다. 저신뢰성 셀 내에 정확할 가능성이 높은 새로운 데이터를 판정하는 것은 2개의 방식, 즉 1) 가장 양호한 것으로 보이는 방향 및 양으로 이들 셀 내의 아날로그 전하값을 조정하고, 또는 2) LC 셀 내의 데이터의 랜덤 값을 시도하여 수행될 수 있다. 새로운 데이터가 정확한지를 검증하는 것은 임의의 적합한 방식으로 수행될 수 있지만, 통상적으로 에러 점검 및 정정(ECC) 알고리즘을 사용하여 수행될 수 있는데, 이것이 에러의 수가 특정 임계치 미만이기만 하면 유효 데이터를 생성할 수 있기 때문이다. 일단, 데이터의 정확한 값이 결정되면, 데이터는 다른 위치에 재기록될 수 있고, 여기서 유망하게는 데이터 손상의 동일한 문제를 경험하지 않게 될 것이다. 계산 집약적이지만, 이 프로세스는 중요한 데이터 내에 치명적인 에러를 포함하는 고체 상태 디스크(SSD) 내에 데이터와 같이 다른 방식으로 복구되는 것이 비실용적인 데이터의 복구에 유용할 수 있다.
도 1은 본 발명의 실시예에 따른 고체 상태 비휘발성 메모리를 포함하는 시스템을 도시한다. 도시된 시스템(100)은 프로세서(100), 메인 메모리(120), 입력-출력 로직(130) 및 비휘발성(NV) 메모리(140)를 포함한다. 이 특정 구현예에서, NV 메모리는 I/O 디바이스(이에 한정되는 것은 아니지만, 고체 상태 디스크)로서 부착되지만, 다른 실시예는 이들에 한정되는 것은 아니지만, 메인 메모리 자체의 부분, 하드 디스크 드라이브와 협동하여 동작하는 캐시 메모리와 같은 시스템의 다른 장소에 NV 메모리를 배치할 수도 있다. 본 발명의 다양한 실시예는 이들 용례 및 부분이 본 명세서에 구체적으로 설명되건 설명되지 않건간에 다양한 용례에서 그리고 시스템의 상이한 부분에 사용 가능할 수 있다.
NV 메모리는 데이터를 저장하기 위해 저장된 전하를 사용하고 판독 동작을 위해 하나 이상의 기준 전압을 사용하는 임의의 실행 가능한 유형의 NV 저장 기술을 이용할 수 있다. 단일 판독 명령으로 개별 바이트 또는 워드를 판독하기보다는, 단일 판독 명령으로 순차적인 메모리 위치의 전체 범위를 판독하는(이에 한정되는 것은 아니지만, NAND 플래시 메모리 어레이로부터의 메모리의 페이지의 판독과 같은) 것이 NV 메모리에서 특히 유용할 수 있다.
도 1에 도시된 실시예에서, NV 메모리(140)는 저장 어레이(148)와, 판독, 기록, 삭제 및 기준 전압의 조정과 같은 어레이에 의한 동작을 제어하기 위한 제어기(142)를 포함할 수 있다. 제어기(142)는 에러 점검 및 정정(ECC) 유닛(143), 에러 분석 유닛(144) 및 기준 전압 제어 유닛(145)과 같은 다른 기능 유닛으로 더 분리될 수 있다. 기준 전압 제어 유닛(145)은 어레이 내의 메모리 셀로부터 데이터를 판독할 때 사용된 하나 이상의 기준 전압의 각각을 제공할 수 있다. 기준 전압 제어 유닛(145)은 또한 본 명세서에 설명된 동작을 수행하기 위해 요구되는 바와 같이 이들 기준 전압을 상승 및/또는 하강 조정할 수 있다. NV 메모리(140) 내의 다양한 유닛이 개별 기능 유닛으로서 도시되어 있지만, 이들 중 2개 이상은 공통 회로 및/또는 코드를 공유할 수 있다.
제어기(142)가 프로세서(110) 또는 다른 디바이스로부터 판독 요청을 수신할 때마다, 제어기(142)는 메모리 어레이 내의 다수의 순차적인 위치로부터 데이터를 판독하는 동작을 개시할 수 있다. 위치의 시작 어드레스는 판독 요구에 의해 지시될 수 있고, 위치의 수는 요구시에 지정될 수 있거나 소정의 다른 방식으로 사전 규정될 수 있다. 데이터가 판독되어 버퍼 내에 배치될 때, ECC 유닛은 데이터 내의 에러를 검출하고, 이들 에러를 추적하고, 그 에러 정정 알고리즘을 통해 정정할 수 있는 에러를 정정할 수 있다. 정정 불가능한 에러(즉, ECC 유닛에 의해 정정 불가능함)가 이 방식으로 검출될 때, 순차적인 어드레스의 전체 범위(예를 들어, 메모리의 페이지 또는 섹터)로부터의 데이터는 부정확한 것으로 지정될 수 있는데, 이는 해당 범위 내의 정정 불가능한 에러의 양 및 위치가 인지되지 않기 때문이다.
도 2는 본 발명의 실시예에 따른 비휘발성 메모리 어레이의 부분을 도시한다. 도시된 예는 게이트에 인접한 저장된 전하의 양이 해당 셀 내에 저장된 데이터를 표현하는 메모리 셀을 각각의 트랜지스터가 표현하는 플래시 메모리 어레이의 공통의 표현을 도시한다. 플래시 메모리 이외의 메모리의 유형 및 도시된 것 이외의 회로가 또한 본 발명의 다양한 실시예에 포함될 수 있다. 도시된 특정 예에서, 각각의 수평 라인은 해당 열에서의 다수의 행(row)(이 예에서, 대략 32000개의 셀, 그러나 이 수는 다른 실시예에서는 상이할 수 있음)의 게이트를 연결하는 워드 라인을 표현하고, 각각의 비트 라인 열(column)은 해당 열의 인접한 셀의 각각에 연결된다. 셀은 단일 레벨 셀(SLC) 또는 멀티레벨 셀(MLC) 기술을 표현할 수 있다. 이들 용어가 이 문서에서 사용될 때, SLC는 셀당 단지 1비트만을 저장하는 기술을 칭하고, MLC는 셀당 2개 이상의 비트를 저장하는 기술을 칭한다. 도시된 어레이는 4-레벨 MLC 기술을 표현하는데, 여기서 가능한 전하의 범위는 L0 내지 L3으로 표기된 4개의 서브범위로 분할되고, 각각의 서브범위는 상이한 2-비트 조합(예를 들어, 11, 10, 00 또는 01)을 표현한다. 특정 셀 내의 전하가 이들 4개의 서브범위 중 하나 내에 있으면, 셀은 대응하는 2-비트 2진값을 저장하는 것으로 고려된다. 15개의 셀에 대한 예시적인 값이 16번째 셀 상에 인지되지 않은 전하(Vt)를 갖고 제공되어 있다.
이하의 설명에서, ECC 및 다른 유형의 에러 검출 및 정정 알고리즘이 사용되지만, 이는 순차적인 메모리 어드레스의 주어진 범위 내의 모든 에러를 정정할 수 없는 것으로 가정된다. 이러한 경우에, 에러는 이 범위 내에 포함되는 것으로 인지되지만, 어느 어드레스(및 따라서 어느 셀)가 에러를 포함하는지를 정확히 인지하지 않는다. 다수의 경우에, 에러의 수가 이들 모두를 정정하기 위한 ECC의 능력을 초과하는지를 제외하고는, 얼마나 많은 에러가 존재하는지를 인지하지 못한다. 이 설명을 위해, 전체 페이지는 ECC 유닛이 이 페이지 내의 모든 에러를 정정할 수 없기 때문에 '실패된' 것으로 고려되지만, ECC 코드 블록 크기가 페이지와는 상이한 크기를 실패된 유닛에 제공하면 페이지 이외의 유닛(예를 들어, 섹터)이 또한 이 방식으로 검사될 수 있다. 이하의 정의가 이 명세서에서 사용된다.
1) 아날로그 전하값 - 특정 셀 내에 저장된 전하에 대한 전압을 표현하는 값. 이 값은 프로세싱을 위해 이산 디지털 또는 2진수로서 표현될 수 있지만, 아날로그 전하값을 표현하고 따라서 아날로그 값이라 표기된다.
2) 전하 레벨값 - 각각의 서브범위가 상이한 2진 데이터값을 표현하는 셀 내의 전하 레벨의 서브범위 중 하나를 표현하는 값. 예를 들어, 4-레벨 MLC에서, 0의 전하 레벨값은 최저 서브범위(전하의 최소량)를 표현할 수 있고, 1은 다음의 높은 서브범위를 표현하고, 2는 다음의 높은 서브범위를 표현하고, 3은 최고 서브범위(전하의 최대량)를 표현할 수 있다.
3) 2진 데이터 값 - 셀 내에 저장되는 데이터의 2진값. 예를 들어, 4-레벨 MLC에서, 2진수 11은 0의 전하 레벨값으로 표현될 수 있고, 2진수 10은 1의 전하 레벨값으로 표현될 수 있고, 2진수 00은 2의 전하 레벨값으로 표현될 수 있고, 2진수 01은 3의 전하 레벨값으로 표현될 수 있다. 이들 특정 변환값은 하나의 전하 레벨로부터 다음의 전하 레벨로의 전이가 단지 등가의 2진값의 하나의 비트만을 변경하여 단지 2개의 가능성을 판독하는 경계선의 불확실성을 감소시키기 때문에 유리할 수 있다. 그러나, 다른 변환값이 또한 사용될 수 있다.
도 3은 본 발명의 실시예에 따른 메모리 내의 에러 정정 방법의 흐름도를 도시한다. 흐름도(300)에서, 동작 310, 314, 318 및 동작 311, 315는 실패된 것으로 고려되는 데이터의 페이지 내의 저신뢰성(LC) 셀을 식별하기 위한 2개의 상이한 방식을 표현한다. 동작 320, 324, 328 및 동작 321은 이들 LC 셀 내의 데이터를 정정하기 위한 시도를 위한 2개의 상이한 방식을 표현한다. 330에서의 검증 동작은 어떠한 식별 및 정정 프로세스의 조합이 사용되는지에 무관하게 동일할 수 있다.
패턴 정합을 통한 식별
이 프로세스는 도 3의 동작 310, 314, 318에 대응한다. 메모리 어레이에 사용된 더 소형의 기하학적 형상에 의해, 각각의 셀 내에 저장된 전하의 양은 주위 셀 내에 저장된 전하의 양에 의해 영향을 받을 수 있어, 전하를 의도된 것으로부터 위 또는 아래로 끌어당긴다. 예로서 도 2를 재차 참조하면, Vt의 전하 레벨을 갖는 셀은 Vt에 대한 주위 셀의 가능한 영향을 검사함으로써 조사되는 '타겟' 셀이다. 화살표는 그 전하 레벨이 타겟 셀에 대한 이들의 물리적 근접도 또는 전기 접속에 기인하여 전하(Vt)에 영향을 미칠 수 있는 가능한 셀의 예를 지시한다. 이 영향의 정확한 성질 및 이를 발생할 수 있는 특정 셀은 셀의 물리적 근접도, 셀 구조체, 사용된 반도체 재료, 주위 셀의 각각 및 타겟 셀 내의 실제 전하 레벨 등과 같은 어레이의 특성에 의존할 수 있다. 이러한 상호 관계는 각각의 유형의 어레이에 대해, 그리고 셀 내의 전하 분포의 각각의 패턴에 대해 결정될 수 있다.
도 4는 본 발명의 실시예에 따른 타겟에 영향을 미칠 수 있는 예시적인 전하 패턴을 도시한다. 본 명세서에 있어서, '패턴'은 사전 규정된 물리적 배열을 갖고, 서로에 대한 사전 규정된 전기 접속부를 갖고, 이들 셀 내의 사전 규정된 전하 레벨을 갖는 셀의 그룹이다. 타겟 셀은 물리적 배열 내의 사전 규정된 장소를 점유하는 셀이고, 또한 그 위의 패턴에서 다른 셀의 가능한 효과를 결정하도록 검사되는 셀이다. 특정 패턴은 타겟 셀 내의 전하 레벨을 포함하는 패턴 내의 모든 셀 내의 전하 레벨에 기초하여 규정될 수 있다. 예를 들어, 도 4에서, 타겟 셀의 양 측에서의 셀(동일한 워드 라인 상의 인접한 셀)은 L3의 전하 레벨을 갖고, 반면 타겟 셀의 바로 위 및 아래의 셀(동일한 비트 라인 상의 인접한 셀)은 L2의 전하 레벨을 갖는다. 타겟 셀 내의 정확한 전하 레벨이 L0인 것으로 추정되면, 이들 주위 셀은 L1 레벨(도시된 바와 같이)로 타겟 셀 내의 해당 전하를 끌어당길 수 있고, 따라서 타겟 셀 내의 L1의 전하를 갖는 것이 이 패턴의 부분이다. 다른 한편으로, 타겟 셀 내의 전하 레벨이 L2 또는 L3인 것으로 추정되면, 주위 셀 내의 전하는 이에 영향을 거의 미치지 않는 점에서 그 레벨에 충분히 근접될 수 있고, 배열은 탐색될 사전 규정된 패턴으로 고려되지 않을 것이다. 몇몇 실시예에서, 패턴 내의 임의의 소정의 셀에 대한 전하 레벨은 하나 초과의 레벨을 커버할 수 있다. 예로서 도 4의 패턴을 사용하면, 타겟 셀에 인접한 4개의 셀 중 임의의 것은 L2 또는 L3의 전하 레벨을 갖도록 허용될 수 있고, 이는 패턴을 정합하는 것으로서 여전히 고려될 수 있다.
이 예는 특정 전하 분포를 갖는 간단한 5-셀 패턴(동일한 워드 라인 및 비트 라인 상의 타겟 셀 및 인접 셀)을 나타내지만, 다른 패턴은 타겟 셀 주위의 셀의 상이한 배열 및/또는 셀의 상이한 양 및/또는 셀 내의 상이한 전하 분포를 포함할 수 있다. 동일한 패턴의 세트가 어레이의 큰 부분에 적용되는 것으로 예측될 수 있지만, 몇몇 패턴은 어레이의 특정 부분에만 적용 가능할 수 있다(예를 들어, 어레이의 에지에서의 타겟 셀은 일 측에서 인접한 셀을 갖지 않고, 따라서 패턴의 상이한 세트가 에지에서 셀에 대해 사용될 수 있음). 각각의 셀은 이 패턴 정합 기술로 개별적으로 검사될 수 있기 때문에, 소정의 셀은 일 경우에 타겟 셀로 고려될 수 있지만, 다른 셀이 타겟될 때에는 주위 셀 중 하나로 고려될 수 있다.
도 5는 본 발명의 실시예에 따른 NV 메모리 어레이 내의 저신뢰성 셀을 식별하기 위한 패턴 정합의 방법의 흐름도를 도시한다. 설명된 방법에서, 메모리 내의 데이터의 특정 데이터가 ECC 유닛에 의해 정정 불가능한 하나 이상의 에러를 갖고 이들 에러는 전술된 전하 분포 효과의 유형에 의해 적어도 부분적으로 발생되는 것으로 가정되어, 정확한 데이터가 이 전하 분포를 분석함으로써 결정될 수 있게 된다. 이 설명을 위해, 전체 페이지는 ECC 유닛이 해당 페이지 내의 모든 에러를 정정할 수 없기 때문에 실패된 것으로 가정되지만 ECC 코드 블록 크기가 페이지와는 상이한 크기를 실패된 유닛에 제공하면 페이지 이외의 유닛(예를 들어, 섹터)이 또한 이 방식으로 검사될 수 있다.
도시된 흐름도(500)에서, 510에서 실패된 페이지를 포함하는 전체 삭제 블록 내의 2진 데이터가 판독될 수 있다. 전체 페이지가 '실패된' 것으로 고려되지만(에러를 갖는 것으로 인지되지만 페이지 내의 에러의 위치가 인지되지 않기 때문에), 데이터의 일부가 부정확할 수 있음에도 불구하고 페이지 내의 모든 셀로부터 데이터를 여전히 판독할 수 있다. NV 메모리가 통상적으로 레이아웃되는 방식에 기인하여, 실패된 페이지보다는 전체 삭제 블록을 판독하는 것이 바람직할 수 있는데, 이는 삭제 블록 내의 정확하게 판독된 페이지 내의 셀이 동일한 삭제 블록 내의 실패된 페이지 내의 셀에 영향을 미치도록 한다.
520에서, 삭제 블록으로부터 판독된 2진 데이터는 전하 레벨값으로 변환될 수 있다. 이 변환의 정확한 방식은 얼마나 많은 전하 레벨(및 따라서, 얼마나 많은 2진 데이터의 비트)이 각각의 셀 내에 포함되는지와, 어떻게 각각의 이들 레벨이 특정 2진 데이터값을 지시하는지에 의존할 수 있다. 이 변환의 결과는 삭제 블록 내의 각각의 셀에 대한 전하 레벨값을 포함하는 전하 레벨 맵 내에 배치될 수 있다. 맵은 또한 어떻게 이들 셀이 물리적으로 및/또는 전기적으로 서로 관련되어, 이들이 후속의 패턴 정합 프로세스를 위해 의미 있는 그룹으로 함께 그룹화될 수 있게 되는지를 지시할 수 있다(예를 들어, 맵의 편성을 통해). 하나의 이러한 편성 방법은, 단지 방식만은 아니지만, 삭제 블록 내의 셀의 행 및 열 전기 레이아웃을 반영하는 2차원 어레이로 맵을 편성하는 것이다.
530에서, 실제 패턴 정합 프로세스가 수행될 수 있다. 도 4의 이전의 설명은 이 패턴 정합 프로세스의 일 예를 제공한다. 정합된 패턴 내의 타겟 셀인 각각의 셀은 540에서 저신뢰성 셀로 나타낼 수 있다. 삭제 블록 내의 모든 셀이 타겟 셀로서 셀을 갖는 패턴에 대해 검사될 필요가 있는 것은 아니다. 단지 타겟 셀이 실패된 페이지 내에 있는 셀의 그룹만이 패턴 정합을 위해 검사될 필요가 있다. 페이지는 교대하는 비트 라인에 빈번히 할당되기 때문에, 이는 패턴 정합 프로세스를 간단화할 수 있다. 도 4를 참조하면, 중심 비트 라인은 실패된 페이지 내에 있지만, 좌측 및 우측의 비트 라인은 ECC가 정확한 데이터를 포함하는 것으로 나타낸 다른 페이지 내에 있다. 따라서, 패턴 정합은 타겟 셀이 실패된 페이지 내에 있는 셀의 그룹에 적용될 필요가 있는 것은 아니다. 이는 또한 이 예에서 단지 타겟 셀과 동일한 비트 라인 상의 이들 셀만이 실패된 페이지 내에 있기 때문에, 패턴 내의 다른 셀(타겟 셀 이외의)이 부정확한 데이터를 포함하는 기회를 감소시킨다.
기준 전압 근접도를 통한 식별
이 프로세스는 도 3의 동작 311, 315에 대응한다. 셀 내에 저장된 전하의 아날로그 값이 해당 셀을 판독할 때 사용된 기준 전압에 매우 근접할 때, 전하의 전압이 그 기준 전압의 오류측에서 종료되고 부정확한 판독을 생성하기가 매우 쉽다. 도 6의 프로세스는 이 현상의 장점을 취한다.
도 6은 본 발명의 실시예에 따른 NV 메모리 어레이 내의 저신뢰성 셀을 식별하기 위한 방식으로서 기준 전압으로의 근접도를 사용하는 방법의 흐름도를 도시한다. 흐름도(600)에서, 본 명세서에서 '이동 판독 기준'(MRR)이라 칭하는 프로세스가 각각의 셀 내의 아날로그 전하값을 측정하는데 사용될 수 있다. 610에서, 각각의 판독 기준 전압은 값의 범위를 통해 증분될 수 있다. 이 증분 프로세스는 620에서 결정된 바와 같이, MRR 프로세스가 완료될 때까지 동작 610 내지 650을 통해 반복적으로 순환될 수 있다. 임의의 실행 가능한 기술이 기준 전압(들)을 증분하는데 사용될 수 있다. 다수의 기준 전압이 존재하는 멀티 레벨 셀 기술에서, 몇몇 실시예에는 각각의 새로운 사이클에 대해 단일의 기준 전압만을 증분시킬 수 있고, 반면 다른 실시예는 각각의 새로운 사이클에 대해 다수의 기준 전압을 증분시킬 수 있다. 몇몇 실시예는 각각의 새로운 사이클에 대해 모든 기준 전압을 증분시킬 수도 있다. 몇몇 실시예는 상이한 사이클에 대해 이들 대안 사이에서 스위칭할 수도 있다.
각각의 증분 후에, 실패된 페이지 내의 각각의 셀에 저장된 데이터의 2진값이 630에서 판독될 수 있다. 소정의 셀로부터 판독된 데이터가 이전의 패스에서 있었던 것과 상이하면, 640에 지시된 바와 같이, 이는 증분된 기준 전압이 아날로그 전하값을 막 넘은 것이고 아날로그 전하값이 기준 전압에 매우 근접한(일 증분의 범위 이내) 것일 수 있다는 것을 지시한다. 이 값은 이어서 650에서 아날로그 전하값의 맵에 기록될 수 있다. 이는 이전의 패스로부터 변경된 데이터를 나타내는 모든 셀에 대해 수행될 수 있다. 다수의 기준 전압을 갖는 MLC 메모리에서, 특정 전후 2진값은 기준 전압이 넘었는지를 판정하기 위해 검사될 필요가 있을 수 있고, 따라서 적절한 기준 전압이 기록될 수 있다. 610 내지 650의 프로세스는 실패된 페이지 내의 모든 셀에 대한 아날로그 전하값이 기록될 때까지 반복될 수 있다.
기준 전압의 모든 증분된 값이 시도되고 페이지 내의 모든 셀이 이들의 아날로그 전하에 대해 기록된 값을 갖는 것은 아니면, 기록되지 않은 셀은 시험된 범위의 외부에 있는 아날로그 전하값을 가질 수 있고(이 경우에, 범위는 추가의 시험을 위해 확장될 수 있음) 또는 셀은 완전히 실패된다(이 경우, 여기세 설명되지 않은 다른 정정 동작이 취해질 수 있음). 모든 셀이 기록된 값을 갖는 것으로 가정하면, 프로세스는 동작 620으로부터 동작 660으로 이동할 수 있고, 여기서 기준 전압이 이들의 원래값으로 복원될 수 있어 정상 판독 동작이 실시될 수 있게 된다.
이 시점에, 각각의 셀에 대해 기록되어 있는 아날로그 전하값은 670에서 복원된 기준 전압에 비교될 수 있다. (기준 전압의 복원된 값이 기록되고 기록된 값이 이 비교에 사용되어, 실제 셀로의 추가의 액세스가 필요하지 않을 수 있다.) 임의의 셀이 복원된 기준 전압에 근접한 아날로그 전하값을 가지면, 그 셀은 680에서 저신뢰성 셀로서 식별될 수 있다. '저신뢰성'인 것으로 고려되기 전에 아날로그 전하값이 기준 전압에 얼마나 근접할 필요가 있는지는 다양한 팩터에 의존할 수 있다. 몇몇 실시예에서, 기준 전압에 '근접한' 것으로 고려되는 아날로그 전하값의 범위 및/또는 이 범위의 중심점은 프로세싱 중에 변경될 수 있다. 예를 들어, 매우 좁은 전압의 범위가 먼저 사용될 수 있다. 이것이 만족스러운 결과를 생성하지 않으면, 범위는 '저신뢰성' 카테고리 내에 더 많은 셀을 포함하려는 시도시에 확장될 수 있다. 이들 변경의 다수의 반복이 만족스러운 결과가 얻어지기 전에 이루어질 수 있다.
전하 조정을 통한 정정
이 프로세스는 도 3의 동작 320, 324, 328에 대응한다. 일반적으로, 이는 셀로부터 정확한 데이터를 얻는 가능성을 향상시키기 위해 계획된 방식으로 저신뢰성 셀의 아날로그 전하값을 조정하는 것을 포함한다.
도 7은 본 발명의 실시예에 따른 아날로그 전하값의 조정을 통한 NV 메모리 내의 데이터 정정 방법의 흐름도를 도시한다. 실패된 페이지의 저신뢰성 셀에 대한 아날로그 전하값을 조정하기 위해, 이들 아날로그 전하값의 시작값이 인지되어야 한다. 도 6의 동작 610 내지 655의 MRR 프로세스가 저신뢰성 셀을 식별하기 위해 미리 수행되어 있으면, 이들 시작값은 이미 인지되어 있다. 만일 그렇지 않으면, MRR 프로세스는 흐름도(700)의 방법을 시작하기 전에 수행될 수 있다.
각각의 저신뢰성 셀에서, 710에서 셀로의 계획된 조정의 양(전하의 양의 변경, 이는 아날로그 전하값을 변경함) 및 방향(전하의 가산 또는 감산)이 결정될 수 있다. 임의의 실행 가능한 방법은 이 조정의 방향 및 양을 결정하는데 사용될 수 있다. 720에서, 이 조정은 아날로그 전하값으로 이루어질 수 있다. 물리적 셀 내에 존재하는 실제 전하를 변경하기보다는, 이 프로세스는 실패된 페이지에 대해 이전에 구성된 아날로그 전하 맵 내의 기록된 아날로그 전하값에 수학적으로 수행될 수 있다.
검증을 수행하기 전에 이 방식으로 조정될 저신뢰성 셀의 수는 다수의 팩터에 의존할 수 있다. 모든 저신뢰성 셀(또는 적어도 다수의 셀)을 조정하는 것은 이전의 정확한 데이터를 불량 데이터로 변경하는 위험을 발생하여, 가능하게는 문제점을 악화시킨다. 검증 전에 적은 수의 셀을 조정하는 것은 검증 중에 유효 ECC 결과를 얻기 위해 불량 셀을 충분히 변경하지 않는 위험을 발생시키고, 따라서 변경이 정확한지 아닌지를 인지하지 못한다. 그러나, 730에서 결정된 바와 같이, 이 셀의 수가 변경된 후에 변경될 셀의 수가 결정될 수 있고, 프로세스는 저신뢰성 셀에 대한 새로운 아날로그 전하값이 이들의 등가의 2진 데이터로 변환되는 740으로 이동할 수 있다.
랜덤 데이터 치환을 통한 정정
이 프로세스는 도 3의 동작 321에 대응한다. 일반적으로, 이는 ECC 프로세스에 의해서와 같이 다른 수단을 통해 에러가 정정될 수 있는 매우 적은 에러를 갖는 페이지를 생성하는 조합이 발견될 때까지 저신뢰성 셀 내의 랜덤 데이터를 시도하는 것을 포함한다. 도 7의 프로세스에 대해 설명된 바와 같이, 검증을 시도하기 전에 이 방식으로 변경하기 위한 셀의 수는 다양할 수 있다. 몇몇 실시예에서, 변경을 위한 셀의 바람직한 수는 이들에 한정되는 것은 아니지만, 1) 어느 정정 기술이 사용되는지, 2) 실패된 어드레스 범위 내에 포함된 셀의 수, 3) 기타 등등과 같은 다양한 팩터에 의존할 수 있다.
검증
검증은 도 3의 동작 330에 대응한다. 페이지 내에서의 데이터의 검증은 이들에 한정되는 것은 아니지만, 에러의 양이 ECC의 정정 능력을 넘으면, 잔류 에러를 정정할 수 있는 ECC 프로세스를 통해 2진 데이터의 페이지를 프로세싱하는 것과 같은 임의의 실행 가능한 방식을 통해 수행될 수 있다. 정정된 데이터가 이 방식으로 검증되면, 정정된 데이터는 이것이 사용될 수 있는 저장 위치에 기록될 수 있다. 이는 가능하게는 그 물리적 저장 위치 내의 결함이 우선적으로 에러를 발생시킬 수 있기 때문에, 원래 실패된 동일한 삭제 블록 내의 동일한 페이지는 아닐 것이다. 다른 한편으로, 데이터의 새로운 페이지가 여전히 정정 불가능한 에러를 가지면, 이들에 한정되는 것은 아니지만, 1) 페이지 내의 데이터가 손실된 것으로 가정하고 데이터를 폐기하고, 2) 새로운 또는 원본 데이터에 이전의 동작을 재실행하지만 데이터를 정정하기 위해 상이한 파라미터를 사용하고, 3) 상이한 저신뢰성 셀에 이전의 동작을 재실행하고, 4) 저신뢰성 셀을 결정하기 위해 상이한 검출 동작을 실행하고, 5) 기타 등등 중 하나 이상과 같은 다양한 절차가 이어질 수 있다.
몇몇 실시예에서, 이들 동작은 NV 메모리의 제어기 내에서 수행될 수 있다[예를 들어, 도 1의 에러 분석 유닛(144)에 의해]. 다른 실시예에서, 이들 동작은 NV 메모리의 외부에서 수행될 수 있다(예를 들어, 컴퓨터 시스템 내의 하나 이상의 메인 프로세서에 의해). 또 다른 실시예에서, 이들 동작은 다수의 이러한 디바이스에 의해 수행될 수 있다[예를 들어, NV 메모리 제어기 내에서 일부 동작, 메인 프로세서(들)에 의해 일부 동작]. 이들은 단지 동작이 수행될 수 있는 몇몇 방식일 뿐이다.
상기 설명은 한정적이 아니라 예시적인 것으로 의도된다. 변경이 당 기술 분야의 숙련자들에게 실시될 수 있다. 이들 변경은 이하의 청구범위의 범주에 의해서만 한정되는 본 발명의 다양한 실시예에 포함되는 것으로 의도된다.
110: 프로세서 120: 메인 메모리
130: I/O 로직 140: NV 메모리
142: 제어기 143: ECC 유닛
144: 에러 분석 유닛 145: 기준 전압 제어 유닛
148: 어레이

Claims (20)

  1. 비휘발성 메모리 내의 데이터 에러 복구를 위한 방법에 있어서,
    전하 기반 비휘발성(NV) 메모리 내의 순차적인 메모리 위치의 지정된 범위로부터 판독된 2진 데이터가 상기 NV 메모리와 관련된 에러 정정 코드(ECC) 유닛에 의해 정정되지 않은 에러를 포함하는 것을 판정하는 단계와,
    상기 지정된 범위 내의 어느 메모리 셀이 에러가 있을 가능성이 있는 데이터를 생성했는지를 식별하는 단계와,
    상기 데이터에 에러가 있을 가능성이 있는 메모리 셀의 적어도 일부에 대해 상기 데이터를 변경하는 단계와,
    상기 변경된 데이터가 상기 ECC 유닛이 상기 순차적 메모리 위치의 지정된 범위 내의 상기 정정되지 않은 에러를 정정하는 것을 가능하게 하는지 여부를 검증하는 단계를 포함하며,
    상기 에러가 있을 가능성이 있는 데이터를 생성한 메모리 셀을 식별하는 단계는
    판독 기준 전압을 전압의 범위에 걸쳐 증분하는 단계와,
    각각의 증분에 대해, 상기 순차적인 메모리 위치의 지정된 범위로부터 2진 데이터를 판독하는 단계와,
    어느 메모리 셀이 이전의 증분에 비해 현재 증분에서 상이한 2진 데이터를 생성하는지를 식별하여 상기 상이한 2진 데이터를 생성한 상기 메모리 셀의 아날로그 전하값을 판정하는 단계와,
    상기 증분된 판독 기준 전압을 복원하고 상기 복원된 판독 기준 전압을 상기 상이한 2진 데이터를 생성한 상기 메모리 셀의 상기 아날로그 전하값과 비교하여 상기 지정된 범위 내의 메모리 셀 중 어느 것이 에러가 있을 가능성이 있는지를 식별하는 단계를 포함하는,
    비휘발성 메모리 내의 데이터 에러 복구 방법.
  2. 제 1 항에 있어서,
    상기 식별 단계는,
    적어도 상기 지정된 범위 내의 상기 메모리 셀에 대해 전하 레벨값의 맵을 생성하는 단계와,
    상기 맵 내의 메모리 셀의 그룹 내의 상기 전하 레벨값을 사전 규정된 전하 레벨의 패턴과 비교하여, 상기 메모리 셀 중 어느 것이 에러가 있을 가능성이 있는 2진 데이터를 생성했는지를 식별하는 단계를 포함하는
    비휘발성 메모리 내의 데이터 에러 복구 방법.
  3. 제 1 항에 있어서,
    상기 식별 단계는,
    상기 지정된 범위 내의 메모리 셀에 대한 아날로그 전하값을 결정하는 단계와,
    지정된 범위 내의 어느 메모리 셀이 상기 NV 메모리에 대한 판독 기준 전압의 사전 결정된 전압량 이내의 아날로그 전하값을 갖는지를 판정하는 단계를 포함하는
    비휘발성 메모리 내의 데이터 에러 복구 방법.
  4. 제 1 항에 있어서,
    상기 변경 단계는 에러가 있을 가능성이 있는 것으로서 식별된 메모리 셀에 대한 아날로그 전하값을 조정하는 단계를 포함하는
    비휘발성 메모리 내의 데이터 에러 복구 방법.
  5. 제 1 항에 있어서,
    상기 변경 단계는 에러가 있을 가능성이 있는 것으로서 식별된 메모리 셀로부터의 데이터를 랜덤 2진 데이터로 치환하는 단계를 포함하는
    비휘발성 메모리 내의 데이터 에러 복구 방법.
  6. 삭제
  7. 제 1 항에 있어서,
    상기 순차적 메모리 위치의 지정된 범위는 메모리의 페이지인
    비휘발성 메모리 내의 데이터 에러 복구 방법.
  8. 비휘발성 메모리 내의 데이터 에러 복구를 위한 장치로서,
    프로세서 및 전하 기반 비휘발성(NV) 메모리를 포함하는 컴퓨터 시스템을 포함하되,
    상기 컴퓨터 시스템은,
    상기 NV 메모리 내의 순차적인 메모리 위치의 지정된 범위로부터 판독된 2진 데이터가 상기 NV 메모리와 관련된 에러 정정 코드(ECC) 유닛에 의해 정정되지 않은 에러를 포함하는 것을 판정하고,
    상기 지정된 범위 내의 어느 메모리 셀이 에러가 있을 가능성이 있는 데이터를 생성했는지를 식별하고,
    상기 데이터에 에러가 있을 가능성이 있는 메모리 셀의 적어도 일부에 대해 상기 데이터를 변경하고,
    상기 변경된 데이터가 상기 ECC 유닛이 순차적 메모리 위치의 상기 지정된 범위 내의 상기 정정되지 않은 에러를 정정하는 것을 가능하게 하는지 여부를 검증하는 것을 수행하며,
    상기 에러가 있을 가능성이 있는 데이터를 생성한 메모리 셀의 식별은, 전압의 범위를 통해 판독 기준 전압을 증분하는 것과, 각각의 증분에 대해, 상기 순차적인 메모리 위치의 지정된 범위 내로부터 2진 데이터를 판독하는 것과, 어느 메모리 셀이 이전의 증분과는 상이한 현재 증분의 2진 데이터를 생성하는지를 식별하여 상기 상이한 2진 데이터를 생성한 상기 메모리 셀의 아날로그 전하값을 판정하는 것과, 상기 증분된 판독 기준 전압을 복원하고 상기 복원된 판독 기준 전압을 상기 상이한 2진 데이터를 생성한 상기 메모리 셀의 상기 아날로그 전하값과 비교하여 상기 지정된 범위 내의 메모리 셀 중 어느 것이 에러가 있을 가능성이 있는지를 식별하는 것을 통하여 이루어지는,
    비휘발성 메모리 내의 데이터 에러 복구 장치.
  9. 제 8 항에 있어서,
    상기 식별하는 것은,
    적어도 상기 지정된 범위 내의 메모리 셀에 대해 전하 레벨값의 맵을 생성하는 것과,
    상기 맵 내의 메모리 셀의 그룹 내의 상기 전하 레벨값을 사전 규정된 전하 레벨의 패턴과 비교하여, 상기 메모리 셀 중 어느 것이 에러가 있을 가능성이 있는 2진 데이터를 생성했는지를 식별하는 것을 포함하는
    비휘발성 메모리 내의 데이터 에러 복구 장치.
  10. 제 8 항에 있어서,
    상기 식별하는 것은,
    상기 지정된 범위 내의 메모리 셀에 대한 아날로그 전하값을 결정하는 것과,
    상기 지정된 범위 내의 어느 메모리 셀이 상기 NV 메모리에 대한 판독 기준 전압의 사전 결정된 전압량 이내의 아날로그 전하값을 갖는지를 판정하는 것을 포함하는
    비휘발성 메모리 내의 데이터 에러 복구 장치.
  11. 제 8 항에 있어서,
    상기 변경하는 것은 에러가 있을 가능성이 있는 것으로서 식별된 메모리 셀에 대한 아날로그 전하값을 조정하는 것을 포함하는
    비휘발성 메모리 내의 데이터 에러 복구 장치.
  12. 제 8 항에 있어서,
    상기 변경은 에러가 있을 가능성이 있는 것으로서 식별된 메모리 셀로부터의 데이터를 랜덤 2진 데이터로 치환하는 것을 포함하는
    비휘발성 메모리 내의 데이터 에러 복구 장치.
  13. 삭제
  14. 비휘발성 메모리 내의 데이터 에러 복구를 위한 물품으로서,
    하나 이상의 프로세서에 의해 실행될 때 이하의 동작들을 수행하게 하는 명령을 포함하는 유형의 컴퓨터 판독 가능 매체를 포함하되,
    상기 동작들은,
    전하 기반 비휘발성(NV) 메모리 내의 순차적인 메모리 위치의 지정된 범위로부터 판독된 2진 데이터가 상기 NV 메모리와 관련된 에러 정정 코드(ECC) 유닛에 의해 정정되지 않은 에러를 포함하는 것을 판정하는 동작과,
    상기 지정된 범위 내의 어느 메모리 셀이 에러가 있을 가능성이 있는 데이터를 생성했는지를 식별하는 동작과,
    상기 데이터에 에러가 있을 가능성이 있는 메모리 셀의 적어도 일부에 대해 상기 데이터를 변경하는 동작과,
    상기 변경된 데이터가 상기 ECC 유닛이 순차적 메모리 위치의 상기 지정된 범위 내의 상기 정정되지 않은 에러를 정정하게 하는 것을 가능하게 하는지 여부를 검증하는 동작을 포함하며,
    상기 에러가 있을 가능성이 있는 데이터를 생성한 메모리 셀을 식별하는 동작은
    판독 기준 전압을 전압의 범위에 걸쳐 증분하는 동작과,
    각각의 증분에 대해, 상기 순차적인 메모리 위치의 지정된 범위로부터 2진 데이터를 판독하는 동작과,
    어느 메모리 셀이 이전의 증분에 비해 현재 증분에서 상이한 2진 데이터를 생성하는지를 식별하여 상기 상이한 2진 데이터를 생성한 상기 메모리 셀의 아날로그 전하값을 판정하는 동작와,
    상기 증분된 판독 기준 전압을 복원하고 상기 복원된 판독 기준 전압을 상기 상이한 2진 데이터를 생성한 상기 메모리 셀의 상기 아날로그 전하값과 비교하여 상기 지정된 범위 내의 메모리 셀 중 어느 것이 에러가 있을 가능성이 있는지를 식별하는 동작을 포함하는
    비휘발성 메모리 내의 데이터 에러 복구 물품.
  15. 제 14 항에 있어서,
    상기 식별 동작은,
    적어도 상기 지정된 범위 내의 메모리 셀에 대해 전하 레벨값의 맵을 생성하는 동작과,
    상기 맵 내의 메모리 셀의 그룹 내의 전하 레벨값을 사전 규정된 전하 레벨의 패턴과 비교하여, 상기 메모리 셀 중 어느 것이 에러가 있을 가능성이 있는 2진 데이터를 생성했는지를 식별하는 동작을 포함하는
    비휘발성 메모리 내의 데이터 에러 복구 물품.
  16. 제 14 항에 있어서,
    상기 식별 동작은,
    상기 지정된 범위 내의 메모리 셀에 대한 아날로그 전하값을 결정하는 동작과,
    상기 지정된 범위 내의 어느 메모리 셀이 상기 NV 메모리에 대한 판독 기준 전압의 사전 결정된 전압량 이내의 아날로그 전하값을 갖는지를 판정하는 동작을 포함하는
    비휘발성 메모리 내의 데이터 에러 복구 물품.
  17. 제 14 항에 있어서,
    상기 변경 동작은 에러가 있을 가능성이 있는 것으로서 식별된 메모리 셀에 대한 아날로그 전하값을 조정하는 동작을 포함하는
    비휘발성 메모리 내의 데이터 에러 복구 물품.
  18. 제 14 항에 있어서,
    상기 변경 동작은 에러가 있을 가능성이 있는 것으로서 식별된 메모리 셀로부터의 데이터를 랜덤 2진 데이터로 치환하는 동작을 포함하는
    비휘발성 메모리 내의 데이터 에러 복구 물품.
  19. 삭제
  20. 제 14 항에 있어서,
    상기 순차적 메모리 위치의 지정된 범위는 메모리의 페이지인
    비휘발성 메모리 내의 데이터 에러 복구 물품.
KR1020117007710A 2008-12-18 2009-12-03 비휘발성 메모리 내의 데이터 에러 복구를 위한 장치, 방법 및 물품 KR101248352B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/316,986 US8291297B2 (en) 2008-12-18 2008-12-18 Data error recovery in non-volatile memory
US12/316,986 2008-12-18
PCT/US2009/066612 WO2010080257A2 (en) 2008-12-18 2009-12-03 Data error recovery in non-volatile memory

Publications (2)

Publication Number Publication Date
KR20110065497A KR20110065497A (ko) 2011-06-15
KR101248352B1 true KR101248352B1 (ko) 2013-04-01

Family

ID=42267898

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117007710A KR101248352B1 (ko) 2008-12-18 2009-12-03 비휘발성 메모리 내의 데이터 에러 복구를 위한 장치, 방법 및 물품

Country Status (7)

Country Link
US (1) US8291297B2 (ko)
EP (1) EP2368186B1 (ko)
JP (1) JP5367835B2 (ko)
KR (1) KR101248352B1 (ko)
CN (1) CN102171659B (ko)
TW (1) TWI455145B (ko)
WO (1) WO2010080257A2 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291297B2 (en) 2008-12-18 2012-10-16 Intel Corporation Data error recovery in non-volatile memory
US8407564B2 (en) * 2009-07-15 2013-03-26 Intel Corporation Prediction and cancellation of systematic noise sources in non-volatile memory
US8190974B2 (en) * 2009-09-28 2012-05-29 Nvidia Corporation Error detection and correction for external DRAM
US8301980B2 (en) * 2009-09-28 2012-10-30 Nvidia Corporation Error detection and correction for external DRAM
US8638602B1 (en) 2010-09-10 2014-01-28 Western Digital Technologies, Inc. Background selection of voltage reference values for performing memory read operations
KR101736384B1 (ko) 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템
US8649215B2 (en) 2010-12-22 2014-02-11 HGST Netherlands B.V. Data management in flash memory using probability of charge disturbances
US8422296B2 (en) 2010-12-22 2013-04-16 HGST Netherlands B.V. Early detection of degradation in NAND flash memory
US8369143B2 (en) 2010-12-22 2013-02-05 HGST Netherlands B.V. Early detection of degradation in NOR flash memory
US8422303B2 (en) 2010-12-22 2013-04-16 HGST Netherlands B.V. Early degradation detection in flash memory using test cells
US8599609B2 (en) 2010-12-22 2013-12-03 HGST Netherlands B.V. Data management in flash memory using probability of charge disturbances
KR101739878B1 (ko) 2011-02-22 2017-05-26 삼성전자주식회사 컨트롤러, 이의 동작방법, 및 상기 컨트롤러를 포함한 메모리 시스템
US8503237B1 (en) 2011-05-18 2013-08-06 Western Digital Technologies, Inc. System and method for data recovery in a solid state storage device
KR101835605B1 (ko) * 2011-11-24 2018-03-08 삼성전자 주식회사 플래시 메모리 시스템 및 플래시 메모리 시스템의 리드 방법
US9112537B2 (en) * 2011-12-22 2015-08-18 Intel Corporation Content-aware caches for reliability
US9208022B2 (en) * 2012-03-29 2015-12-08 Intel Corporation Techniques for adaptive moving read references for memory cell read error recovery
KR101625000B1 (ko) * 2012-03-29 2016-05-27 인텔 코포레이션 메모리 셀을 위한 적응적 판독 기준 이동
US8793558B2 (en) * 2012-08-27 2014-07-29 Freescale Semiconductor, Inc. Adaptive error correction for non-volatile memories
US8869008B2 (en) * 2013-01-17 2014-10-21 Apple Inc. Adaptation of analog memory cell read thresholds using partial ECC syndromes
US10114912B1 (en) * 2014-03-26 2018-10-30 Cadence Design Systems, Inc. System and method for monitoring address traffic in an electronic design
KR102292167B1 (ko) * 2014-04-04 2021-08-25 삼성전자주식회사 배드 블록 관리 방법 및 메모리 시스템
US9389973B2 (en) 2014-05-30 2016-07-12 Oracle International Corporation Memory error propagation for faster error recovery
US9558069B2 (en) * 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
CN104317525B (zh) * 2014-09-23 2017-08-11 天津国芯科技有限公司 一种随机存储器的扩展方法及装置
US9728278B2 (en) * 2014-10-24 2017-08-08 Micron Technology, Inc. Threshold voltage margin analysis
KR20160073834A (ko) * 2014-12-17 2016-06-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템 동작 방법
US9679661B1 (en) 2016-06-28 2017-06-13 Sandisk Technologies Llc Non-volatile storage system with self-test for read performance enhancement feature setup
US9672940B1 (en) 2016-08-18 2017-06-06 Sandisk Technologies Llc Non-volatile memory with fast read process
KR20210132784A (ko) 2020-04-27 2021-11-05 삼성전자주식회사 메모리 장치 및 메모리 장치로부터 데이터를 읽는 방법
US11409601B1 (en) 2021-01-26 2022-08-09 Micron Technology, Inc. Memory device protection

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070277060A1 (en) * 2006-05-15 2007-11-29 Apple Inc. Use of Alternative Value in Cell Detection

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5859858A (en) * 1996-10-25 1999-01-12 Intel Corporation Method and apparatus for correcting a multilevel cell memory by using error locating codes
JP2001332096A (ja) * 2000-05-16 2001-11-30 Hitachi Ltd 不揮発性半導体メモリおよび不揮発性半導体メモリを用いた記録再生装置
JP4323707B2 (ja) * 2000-10-25 2009-09-02 富士通マイクロエレクトロニクス株式会社 フラッシュメモリの欠陥管理方法
EP1211812B1 (en) * 2000-10-31 2006-11-15 STMicroelectronics S.r.l. A/D conversion method in high density multilevel non-volatile memory devices and corresponding converter device
US6542407B1 (en) * 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
US6751766B2 (en) * 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
JP3914839B2 (ja) * 2002-07-11 2007-05-16 エルピーダメモリ株式会社 半導体記憶装置
US7231585B2 (en) * 2002-12-11 2007-06-12 Nvidia Corporation Error correction for flash memory
JP4158526B2 (ja) * 2003-01-09 2008-10-01 松下電器産業株式会社 メモリカード及びメモリへのデータ書き込み方法
US6944063B2 (en) * 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
JP4256198B2 (ja) * 2003-04-22 2009-04-22 株式会社東芝 データ記憶システム
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7437653B2 (en) * 2004-12-22 2008-10-14 Sandisk Corporation Erased sector detection mechanisms
JP4332132B2 (ja) 2005-05-11 2009-09-16 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4575288B2 (ja) * 2005-12-05 2010-11-04 株式会社東芝 記憶媒体、記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
US7844879B2 (en) * 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
US8055979B2 (en) * 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
WO2007132453A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Distortion estimation and cancellation in memory devices
JP4999921B2 (ja) * 2006-05-12 2012-08-15 アノビット テクノロジーズ リミテッド メモリ素子用の歪み推定と誤り訂正符号化の組み合せ
JP5047288B2 (ja) * 2006-08-05 2012-10-10 ベンホフ ゲーエムベーハー エルエルシー 固体記憶素子及び方法
US8046660B2 (en) * 2006-08-07 2011-10-25 Marvell World Trade Ltd. System and method for correcting errors in non-volatile memory using product codes
US7369434B2 (en) * 2006-08-14 2008-05-06 Micron Technology, Inc. Flash memory with multi-bit read
US7567461B2 (en) * 2006-08-18 2009-07-28 Micron Technology, Inc. Method and system for minimizing number of programming pulses used to program rows of non-volatile memory cells
JP2008090451A (ja) * 2006-09-29 2008-04-17 Toshiba Corp 記憶装置
US7904788B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of varying read threshold voltage in nonvolatile memory
KR100871700B1 (ko) * 2007-02-13 2008-12-08 삼성전자주식회사 불휘발성 메모리 장치에서 전하 손실에 기인한 오류 데이터정정 방법
US7619930B2 (en) * 2007-02-20 2009-11-17 Sandisk Corporation Dynamic verify based on threshold voltage distribution
KR100865830B1 (ko) * 2007-02-22 2008-10-28 주식회사 하이닉스반도체 메모리 소자의 독출 방법
US7904793B2 (en) * 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
US7966546B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Non-volatile memory with soft bit data transmission for error correction control
US7966550B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Soft bit data transmission for error correction control in non-volatile memory
US7903468B2 (en) * 2007-04-23 2011-03-08 Ramot At Telaviv University Ltd. Adaptive dynamic reading of flash memories
US7971123B2 (en) * 2007-07-02 2011-06-28 International Business Machines Corporation Multi-bit error correction scheme in multi-level memory storage system
KR101425958B1 (ko) * 2007-09-06 2014-08-04 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템 및 그것의읽기 방법
KR101515122B1 (ko) * 2008-02-15 2015-04-27 삼성전자주식회사 저장된 데이터의 오류에 기반하여 기준 전압을 제어하는 방법과 메모리 데이터 검출 장치
KR101466698B1 (ko) * 2008-02-19 2014-11-28 삼성전자주식회사 메모리 장치 및 메모리 데이터 읽기 방법
US8291297B2 (en) 2008-12-18 2012-10-16 Intel Corporation Data error recovery in non-volatile memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070277060A1 (en) * 2006-05-15 2007-11-29 Apple Inc. Use of Alternative Value in Cell Detection

Also Published As

Publication number Publication date
CN102171659A (zh) 2011-08-31
WO2010080257A2 (en) 2010-07-15
EP2368186A2 (en) 2011-09-28
TW201035984A (en) 2010-10-01
JP2012507108A (ja) 2012-03-22
US8291297B2 (en) 2012-10-16
WO2010080257A3 (en) 2010-09-02
KR20110065497A (ko) 2011-06-15
EP2368186A4 (en) 2012-07-18
US20100162084A1 (en) 2010-06-24
TWI455145B (zh) 2014-10-01
EP2368186B1 (en) 2017-07-26
JP5367835B2 (ja) 2013-12-11
CN102171659B (zh) 2013-11-06

Similar Documents

Publication Publication Date Title
KR101248352B1 (ko) 비휘발성 메모리 내의 데이터 에러 복구를 위한 장치, 방법 및 물품
TWI521513B (zh) 讀取電壓設定方法、控制電路與記憶體儲存裝置
US9229644B2 (en) Targeted copy of data relocation
US9588714B2 (en) Method of operating memory controller and data storage device including memory controller
TWI574277B (zh) 記憶體裝置中之錯誤校正操作
JP5693615B2 (ja) 隣接状態情報に基づく温度補償がなされる不揮発性記憶装置
US9158613B2 (en) Word line defect detection and handling for a data storage device
US9501400B2 (en) Identification and operation of sub-prime blocks in nonvolatile memory
US20140254264A1 (en) Defect Or Program Disturb Detection With Full Data Recovery Capability
JP2007510253A (ja) 不揮発性メモリアレイの読み取り誤り検出のための方法、回路、及びシステム
US9514848B2 (en) Solid state drive and associated error check and correction method
CN104282339B (zh) 读取电压设定方法、控制电路与存储器储存装置
US9342401B2 (en) Selective in-situ retouching of data in nonvolatile memory
US10115476B2 (en) Advanced programming verification schemes for memory cells
US20160232053A1 (en) Memory management method, memory control circuit unit and memory storage apparatus
EP2721613A1 (en) Intelligent bit recovery for flash memory
KR20190094968A (ko) 메모리 컨트롤러 및 그 동작 방법
US9490024B1 (en) Solid state storage device and reading control method thereof
CN114765047A (zh) 非易失性存储器装置中的软读取阈值估计的高斯建模
CN109215716B (zh) 提高nand型浮栅存储器可靠性的方法及装置
CN115482866A (zh) 基于存储器装置中先前读取尝试的参数估计
US11621048B2 (en) Positioning read thresholds in a nonvolatile memory based on successful decoding
CN117437963A (zh) 基于表征电压分布的存储器装置发起的度量的存储器读取校准

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160303

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170302

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190227

Year of fee payment: 7