KR100976989B1 - 플래시 메모리에서의 오류 복구 방법 - Google Patents

플래시 메모리에서의 오류 복구 방법 Download PDF

Info

Publication number
KR100976989B1
KR100976989B1 KR1020087012350A KR20087012350A KR100976989B1 KR 100976989 B1 KR100976989 B1 KR 100976989B1 KR 1020087012350 A KR1020087012350 A KR 1020087012350A KR 20087012350 A KR20087012350 A KR 20087012350A KR 100976989 B1 KR100976989 B1 KR 100976989B1
Authority
KR
South Korea
Prior art keywords
read
flash memory
data bits
reference voltage
memory cells
Prior art date
Application number
KR1020087012350A
Other languages
English (en)
Other versions
KR20080059461A (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 KR20080059461A publication Critical patent/KR20080059461A/ko
Application granted granted Critical
Publication of KR100976989B1 publication Critical patent/KR100976989B1/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
    • 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/1072Adding 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 multilevel memories
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • 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
    • 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/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells

Landscapes

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

Abstract

하나 이상의 플래시 메모리 셀로부터 데이터를 판독하고, 판독 오류를 복구하기 위한 방법, 디바이스, 및 컴퓨터 판독가능 코드가 기술된다. 일부 실시예에서, 오듀 검지 및 보정 모듈에 의한 오류 보정의 실패의 경우, 플래시 메모리 셀은 예를 들면 성공적인 오류 보정이 수행될 때까지 하나 이상의 변조된 기준 전압을 이용하여 적어도 한번 재판독된다. 일부 실시예에서, 성공적인 오류 보정후에, 후속하는 판독 요청이 중간에 플래시 메모리 셀에 데이터(예를 들면 판독된 데이터의 신뢰할 수 있는 값)를 재기록하지 않으면서 핸들링된다. 일부 실시예에서, 오류가 보정되는 판독과 연관된 기준 전압이 메모리에 저장되고, 후속하는 판독 요청에 응답시에 검색된다. 일부 실시예에서, 변조된 기준 전압은 미리 정해진 기준 전압이다. 대안으로, 또는 추가하여, 이들 변조된 기준 전압은 예를 들면 오류 검지 및 보정 모듈에 의해 제공된 정보에 따라 또는 랜덤하게 생성된 값을 이용하여 필요할 때 결정된다. 오류 보정 실패가 없는 상황에 대한 판독 데이터용 방법, 디바이스 및 컴퓨터 판독가능한 코드가 또한 제공된다.
플래시 메모리 셀, 오류 검지 및 보정 모듈, 데이터, 데이터 비트, 오류 보정, 기준 전압, 재판독, 최초 판독, 제 1 판독 요청

Description

플래시 메모리에서의 오류 복구 방법{A METHOD FOR RECOVERING FROM ERRORS IN FLASH MEMORY}
본 발명은 오류 판독이 발생하는 시스템의 플래시 메모리로부터의 데이터 판독에 관한 것이다.
단일 비트 및 멀티-비트 플래시 메모리 셀
플래시 메모리 디바이스가 다년간 알려져 왔다. 일반적으로 플래시 메모리 디바이스 내의 각 메모리 셀은 1 비트의 정보를 저장한다. 플래시 메모리 셀에 비트를 저장하는 일반적인 방법은 메모리 셀의 2 개의 상태를 지원함으로써 이루어진다. 하나의 상태는 논리적 "0"을 나타내고, 다른 상태는 논리적 "1"을 나타낸다.
플래시 메모리 셀에서, 2 개의 상태는 상기 셀의 채널(상기 셀의 트랜지스터의 소스 및 드레인 엘리먼트를 연결하는 영역) 상에 놓인 플로팅 게이트를 가지고, 상기 플로팅 게이트내에 저장된 전하의 양에 대한 2 개의 유효한 상태를 가짐으로써 구현된다. 일반적으로, 하나의 상태는 플로팅 게이트에서 0의 전하를 가지고, 삭제된 후에(일반적으로 "1"의 상태로 나타내도록 정의됨) 상기 셀의 초기의 기록되지 않은 상태가 되며, 다른 상태는 상기 플로팅 게이트에 일정한 양의 네거티브 전하를 가진다("0"의 상태로 나타내도록 정의됨). 상기 게이트에 네거티브 전하를 가지도록 하는 것은 상기 셀의 트랜지스터의 임계 전압(즉, 트랜지스터를 도전하도록 하기 위해 트랜지스터의 제어 게이트에 인가되어야 하는 전압)이 증가하도록 한다. 상기 셀의 임계전압을 체크함으로써 저장된 비트를 판독할 수 있는데, 임계 전압이 더 높은 상태에 있으면 비트 값은 "0"이 되고, 임계전압이 더 낮은 상태에 있으면 비트 값은 "1"이 된다. 실질적으로 셀의 임계전압을 정확하게 판독할 필요는 없으며, 필요한 모든 것은 셀의 2 가지 상태 중 어디에 셀이 현재 위치되었는 지를 정확하게 식별하는 것이다. 이러한 목적을 위해, 2 개의 상태 사이의 중간에 있는 기준 전압 값에 대해 비교하고, 그 결과 상기 셀의 임계 전압이 상기 기준값 이하 또는 이상인 지를 판정하는 것으로 충분하다.
도 1A는 이것이 어떻게 동작하는지 그래픽으로 도시한다. 특히, 도 1A는 커다란 셀집단의 임계전압의 분포를 도시한다. 플래시 디바이스에서의 셀은 그것들의 특성 및 동작과 정확하게 일치하지 않기 때문에(예를 들면, 불순물 농도에서의 작은 변화량, 또는 실리콘 구조에서의 결함에 기인한다.), 모든 셀에 대해 동일한 프로그래밍 동작을 적용하는 것이 모든 셀이 정확하게 동일한 임계전압을 가지도록 하는 것을 아니다(역사적 이유에 대해, 데이터를 플래시 메모리에 기록하는 것은 일반적으로 플래시 메모리를 "프로그래밍"하는 것으로 나타낸다는 것에 유의하라.) 대신에 상기 임계 전압은 도 1A에 도시된 것과 유사한 방식으로 분포된다. "1"의 값을 저장하는 셀은 일반적으로 네거티브 임계전압을 가져서, 상기 셀의 대부분은, 더 작은 또는 더 큰 임계전압을 가지는 일부의 더 작은 수의 셀로, 도 1A의 좌측 피크에 의해 도시되는 값에 근접하는 임계전압을 가진다. 유사하게, "0"의 값을 저장하는 셀은 일반적으로 포지티브 전압을 가져서, 대부분의 셀이 더 작은 또는 더 큰 임계전압을 가지는 일부의 더 작은 수의 셀로, 도 1A의 우측 피크에 의해 도시되는 값에 근접하는 임계전압을 가지도록 한다.
근래에, 종래에 "멀티 레벨 셀" 또는 줄여서 MLC라고 불리우는 기술을 이용한, 새로운 유형의 플래시 디바이스가 시장에 출현하고 있다.(이러한 명명법은 상술한 바와 같이 이전의 유형의 플래시 셀 또한, 2개의 레벨을 가지는 등의 하나 이상의 레벨을 가지기 때문에, 오해를 가져온다.) 따라서, 상기 2 종류의 플래시 셀을 본문에서는 "단일 비트셀"(SBC) 및 "멀티-비트 셀"(MBC)라고 한다. 상기 MBC 플래시에 의해 가져온 개선은 각 셀에 2 비트를 저장하는 것이었다. (이론상으로는 MBC는 또한 셀당 2 비트 이상의 스토리지를 포함하고, 이러한 셀들은 현재시점에 아직 출시되지 않았다. 설명을 간략화시키기 위해, 상기 2 비트의 경우가 본문에서 강조된다. 그러나 본 발명은 셀 당 임의의 수의 비트를 지원하는 플래시 메모리 디바이스에 동일하게 적용가능하다는 것이 이해되어야 한다.) 단일 셀이 2 비트 정보를 저장하도록 하기 위해, 상기 셀은 4개의 상이한 상태중 하나에 있을 수 있어야 한다. 셀의 "상태"가 그의 임계전압에 의해 나타내기 때문에, MBC 셀은 자신의 임계 전압에 대한 4 개의 상이한 유효 범위를 지원해야한다. 도 1B는 일반적인 MBC 셀을 위한 임계전압 분포를 도시한다. 예상되는 바와 같이, 도 1B는 각각의 것이 하나의 상태에 대응하는 4개의 피크를 가진다. SBC의 경우, 각 상태는 실제로는 일정한 범위이고 단일한 수가 아니다. 셀의 컨텐츠를 판독할 때, 보장되어야할 모든 것은 상기 셀의 임계전압이 놓일 범위가 정확하게 식별되는 것이다. MBC 플래시 디바이스의 종래 기술의 예에 대해서는, 본문에 그 전체가 참조의 목적으로 참조에 의해 통합된 Harari의 미국 특허번호 제 5,434,825를 참조하라.
4 가지 상태로 MBC 셀에서 2 비트를 인코딩할 때, "1"의 값을 가지는 양 비트의 경우를 나타내는 도 1B에서의 가장 좌측의 상태(일반적으로 네거티브 임계전압을 가짐)를 가지는 것이 일반적이다. (하기 논의에서, 하기의 표기가 사용되는데, 셀의 2 비트는 "하위 비트" 및 "상위 비트"라고 한다. 상기 비트의 양의 값은 하위 비트 값이 우측에 놓이는 ["상위 비트" "하위 비트"]의 형태로 기록된다. 하위 비트가 "0"이고 상위 비트가 "1"인 경우 "10"으로 기록된다. 이러한 용어 및 표기의 선택은 임의적이고, 다른 명칭과 인코딩이 가능함을 이해해야한다.) 이러한 표기를 사용하여, 가장 좌측의 상태는 "11"의 경우를 표시한다. 다른 3 개의 상태는 일반적으로 좌측에서 우측으로 "10", "00", "01"의 순서로 할당된다. 본 문에 설명의 목적으로 참조에 의해 그 전체가 통합된, Chen의 미국 특허번호 제 6,522,580에 기술된 것과 같은 인코딩을 이용하는 MBC NAND 플래시 디바이스의 구현의 예를 볼 수 있다. 특히 Chen의 특허의 도 8을 참조하라. 상기 상태들의 이러한 할당에 대한 제한이 없을지라도 기타 다른 순서가 사용될 수 있다는 것에 유의해야한다. MBC 셀의 컨텐츠를 판독할 때, 셀의 임계 전압이 놓이는 범위는 정확하게 식별되어야 하고; 이러한 경우에만 상기의 것이 하나의 기준 전압에 대해 비교함으로써 항상 달성될 수 있는 것은 아니고; 다수의 비교가 필요하다. 예를 들면, 도 1B에 도시된 경우, 하위 비트를 판독하는 한가지 방법은 먼저 상기 셀의 임 계 전압을 기준 전압 V1과 비교하고, 그런 다음 상기 비교의 결과에 따라, 상기 셀의 임계전압을 제로 기준 비교 전압 또는 기준 비교 전압 V2과 비교한다. 하위 비트를 판독하는 또다른 방법은 셀의 임계 전압을 무조건 제로 기준 전압과 V2와 비교하는 것이다. 어느 경우에건, 2 개의 비교가 필요하다.
MBC 디바이스는 하나가 아닌 2 비트를 저장하는 동일한 크기의 셀을 이용하는, 커다란 비용에서의 효익을 제공한다. 그러나, 또한 MBC 플래시를 사용하는 데에는 일부 결점이 있는데, MBC 메모리의 평균 판독 및 기록 시간이 SBC 메모리보다 더 길어서, 더 낮은 성능을 가져오는 것이다. 또한, MBC의 신뢰성은 SBC보다 더 낮다. 이것은 MBC에서의 임계전압 범위 사이의 차이가 SBC에서 보다 훨씬 더 작은 것으로부터 이해될 수 있다. 따라서, 2 개 상태 사이의 커다란 갭때문에 SBC에서 알려지지 않았던 임계전압에서의 외란(예를 들면, 임계전압 드리프트를 일으키는 저장된 전하의 누설, 이웃한 셀에 대한 동작으로부터의 간섭 등)은 MBC 셀을 하나의 상태에서 다른 상태로 이동시켜 오류 비트를 야기한다. 그 끝의 결과는 데이터 유지시간 또는 다수의 기록/삭제 사이클에 대한 디바이스의 내구성의 측면에서의 MBC 셀의 더 낮은 품질의 규격이다. 따라서 애플리케이션 요구조건에 따라 MBC 셀과 SBC 셀 모두를 사용하는 이점을 가지게 된다.
상기 설명이 플로팅-게이트 플래시 메모리 셀에 관한 것이지만, 다른 유형의 플래시 메모리 기술도 있다. 예를 들면 NROM 플래시 메모리 기술에서, 도전성 플로팅 게이트는 없지만 상기 전기 전하를 트래핑하는 절연 층은 있다. 본 발명은 상기 설명이 플로팅-게이트 기술의 측면에서 주어진다고 하더라고 모든 플래시 메모리 유형에 동일하게 적용가능하다.
플래시 셀로부터 데이터 판독시의 오류 보정
상술한 바와 같이, 플래시 셀, 특히 MBC 플래시 셀은 자신들의 임계 전압이 자신들의 초기값으로부터 멀리 드리프트되는 경우에 잘못 판독될 수 있다. 임계 전압 드리프트의 크기가 충분히 크다면, 상기 판독 프로세스는 셀이 상기 셀의 2 가지 상태 사이의 경계선으로 사용되는 판독 기준 전압의 부정확 사이드에 있는 것을 발견하게 될 것이다. 플래시 메모리로부터 판독된 데이터에서의 오류를 보정하기 위해 오류 보정 코드(ECC)를 채용하는 것이 일반적인 것이라고 할지라도, 상기 보정 용량은 일반적으로 판독된 데이터 페이지 내의 일부 고정된 수의 오류에 한정되는 것이고, 결과적으로 축적된 수의 오류가 상기 ECC 메커니즘의 보정 용량을 초과하게 된다.
Auclair 등의 "SOFT ERRORS HANDLING IN EEPROM DEVICES" 제하의 미국 특허 5,657,332(이하 "Auclair")는 임계전압 드리프팅에 의해 유발되는 플래시 메모리 오류의 문제를 다룬다. 상기 특허는 그 전체가 본문에 기술되는 목적으로 참조에 의해 통합된다. Auclair는 상기 오류 문제에 대한 2 가지 해결안을 제시한다. 첫번째는 상기 경계선을 교차하는 것에 근접하는 셀을 검지함으로써 오류의 생성을 제거하고, 자신들의 메모리로 컨텐츠를 다시 재기록함으로써 그것들을 "조정"하고, 그 결과 상기 임계 전압을 자신들의 정확한 초기값으로 "리셋"한다. Auclair의 2 번째 해결안은 주어진 사실로서 드리프팅이 있을 수 있음을 수용하고, 오류가 이미 발생한 후에 메모리 시스템의 강건성을 개선한다. 이러한 2 번째 해결안은 Auclair의 칼럼 13의 14줄~27줄에 논의된다.
플래시 메모리에서 데이터를 판독하기 위한 Auclair의 방법은 먼저 판독 기준 전압(또는 MBC 플래시 메모리의 경우에는 다수의 판독 기준 전압)의 디폴트 값을 이용하여 정상적인 판독의 수행을 시도한다. 이러한 제 1 판독 시도가 매우 다수의 오류를 야기하여 ECC 메커니즘이 그것들을 보정하는 데에 실패한다면, Auclair는 다음의 2 개 스테이지의 복구 계획을 채용한다:
A. 판독 기준 전압은 자신의 디폴트 값에서 미리 정해진 값의 다른 세트로 변화되고, 판독은 새로운 세트의 미리 정해진 기준 값을 이용하여 시도된다. 일반적으로 상기 새로운 값은 상기 디폴트 값보다 다소 더 작다. 드리프팅이 플로팅 게이트로부터의 전하 누설의 결과이기 때문에, 상기 셀의 임계 전압이 시간에 따라 더 작은 값으로 드리프트하는 것을 예측하는 것이 논리적이다(즉, 도 1A 및 1B에서 좌측으로 이동). 따라서, 좌측의 비교의 "경계"의 이동은 드리프트된 상태를 서로 이격시키기 위한 좋은 기회를 가진다. 보정된 기준 값을 가진 판독의 결과에 여전히 오류가 있다면, 그것들은 ECC 메커니즘에 의해 처리된다. 보정할 오류가 아직도 너무 많다면, 상기 프로세스는, 미리정해진 판독 기준 값의 다른 세트가 선택되고 또다른 판독 및 보정이 수행되는 것을 반복한다. 다행히도, 이러한 반복된 프로세스는 성공적으로 보정되고 오류를 가지지 않았다고 가정할 수 있는 데이터를 가지고 종료한다. 우리가 이러한 포인트에 도달하면, 제 2 스테이지로 이동한다.
B. 상기 제 1 스테이지로부터 얻은 데이터는 다시 셀에 기록되어, 그 다음에는 디폴트 판독 기준 값을 이용하여 판독되도록 하고, 현재 판독의 경우에서와 같이 매우 다수의 오류를 제공하지는 않는다.
도 2는 Auclair에서 기술된 종래 기술에 따라 컨트롤러 및 플래시 메모리(즉, 플래시 메모리셀을 구비하는)를 가지는 플래시 디바이스에 의한 판독 요청을 핸들링하는 것을 기술하는 플로우 차트를 제공한다. 판독 요청의 수신후, 플래시 컨트롤러는 디폴트 기준 전압을 이용하여 플래시 메모리(212)로부터 데이터 비트를 판독한다(112A). 시도(114)는 상기 ECC를 이용하여 판독된 데이터 비트의 보정을 유효화시키도록 이루어진다. 오류 보정이 성공적이라면(116), 상기 디바이스는 보정된 판독 데이터를 전송함으로써 상기 판독 요청에 응답한다(118)(예를 들면, 상기 데이터를 호스트 디바이스로 전송함으로써). 상기 판독 요청에 응답후(118), 상기 디바이스는 또다른 판독 요청을 핸들링하도록 준비한다.
오류 보정이 성공적이지 못하다면(116), 상기 디바이스는 적어도 하나의 미리정해진 변조된 기준 전압을 포함하는 기준 전압의 세트를 이용하여(119) 플래시 메모리로부터 데이터 비트를 재 판독한다(112B). 하나 이상의 "새로운" 미리 정의된 기준 전압으로(즉, 적어도 미리 정의된 변조된 기준 전압(119)을 이용하여) 데이터 비트를 재 판독한 후(112B), 또다른 오류 보정이 시도된다(114). 또다른 오류 보정(116)이 실패하는 경우, 상이한 미리 변조된(119) 기준 전압을 이용하고 데이터 비트를 재판독(112B)하는 이러한 프로세스는 상기 ECC가 성공적으로 상기 데이터 비트의 오류 보정을 수행(116)할 때까지 반복된다.
이때, 상기 메모리 셀은 상기 셀이 실질적으로 판독될 때(자신의 "적절한" 디폴트 기준 전압으로) 오류 보정 실패의 가능성을 감소시키기 위해 "복구"된다. 이것은 성공적인 오류 보정 후에 사실을 이용하여 수행되고, 적절한 데이터가 가용하게 되고, 메모리 셀로 재기록될 수도 있다(124). 따라서, Auclair의 교안에 따라, 데이터 재기록 후에, 다음번에는 디폴트 판독 기준 값을 이용하여 판독되고(112A)(즉, 다른 판독 요청후(110)), 상기 플래시 메모리 셀은 더 작은 오류를 가진 데이터를 제공할 수 있게되고(즉 기준 전압 "드리프트"가 보정되기 때문에), ECC로 보정되는 판독 데이터를 제공하게 된다.
상술한 Auclair 복구 방법이 커다란 단점을 가짐에 유의해야한다. 복구 프로세스가 채용될 때마다, 데이터는 다시 기록된다. 플래시 메모리에서, 상기 기록 동작은 판독 동작보다 매우 더 느리다. 예를 들면, SBC NAND 플래시 메모리에서, 데이터의 페이지의 기록은 약 200 마이크로초가 걸리는 반면, 데이터 페이지의 판독은 약 15 마이크로초가 걸린다. 상기 상황은 MBC NAND 플래시 메모리에서는 더 악화되어, 페이지의 기록은 800 마이크로초가 걸리는 반면 페이지의 판독은 30 마이크로초가 걸린다. 이러한 사실은 데이터 페이지를 복구하기 위해 Auclair 방법을 채용하는 것은 매우 느린 동작이라는 것을 의미한다. 일반적으로 판독 요청을 초기화하고 상기 데이터에 대해 대기하는 소프트웨어 애플리케이션은 데이터가 10 마이크로 초 이내에서 가용할 것을 기대하지만, 실제로는 더 긴 기간을 대기해야만 한다. 실시간 소프트웨어 애플리케이션에 대해서는, 이것은 수용될 수 없다. Auclair의 기록 스테이지가 보다 이후의 시간으로 지연되어, 상기 소프트웨어 애플 리케이션이 상기 복구 프로세스가 완료되는 것을 대기하지 않고 가용하게 되자마자 데이터를 수신하도록 한다고 하더라도, 여전히 가외 기록 동작에 기인한 스토리지 시스템의 쓰루풋에서의 열화가 있다.
따라서, 오류 발생시 플래시 메모리로부터 데이터를 복구하는 반면, 상대적으로 짧은 시간에 상기 복구를 달성하는 방법에 대한 필요성이 제기된다.
상술한 요구사항 중 일부 또는 모두와, 기타 요구사항이 본 발명의 다수의 측면에 의해 만족된다.
복수의 플래시 메모리 셀과 오류 검지 및 보정 모듈을 구비한 시스템에서 데이터를 판독하는 방법이 먼저 기술된다. 본 기술된 방법은 (a) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계; (b) 상기 오류 검지 및 보정 모듈을 이용하여 판독된 데이터 비트의 오류를 보정하려고 시도하는 단계; (c) 오류 검지 및 보정 모듈에 의한 오류 보정 실패의 경우, 상기 모듈이 상기 오류를 성공적으로 보정할 때까지 적어도 하나의 변조된 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 적어도 한 번 재판독하는 단계; 및 (d) 중간(즉, 적어도 하나의 변조된 기준 전압을 가지는 단계 (c)의 성공적인 오류 보정 이후와 단계 (a)의 판독 이전 사이)에 상기 메모리 셀로 데이터 비트를 재기록하지 않으면서 상기 데이터 비트에 대해 단계 (a), (b), (c)를 반복하는 단계를 포함한다.
일부 실시예에 따라, 상기 반복전에 최초 판독은 제 1 판독 요청에 대한 응답이고, 상기 반복에 연관된 후속하는 판독은 후속하는 판독 요청에 대한 응답이다.
복수의 플래시 메모리 셀과 오류 검지 및 보정 모듈을 구비한 시스템에서 데이터를 판독하는 방법이 먼저 기술된다. 본 기술된 방법은 (a) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계; (b) 상기 오류 검지 및 보정 모듈을 이용하여 판독된 데이터 비트의 오류를 보정하려고 시도하는 단계; (c) 오류 검지 및 보정 모듈에 의한 오류 보정 실패의 경우, 상기 모듈이 상기 오류를 성공적으로 보정할 때까지 적어도 하나의 변조된 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 적어도 한 번 재판독하는 단계; 및 (d) 상기 보정에 후속하여, 상기 모듈이 성공적으로 오류를 보정한 적어도 하나의 판독 기준 전압을 저장하는 단계; 및 (e) 상기 저장에 후속하여, 상기 저장된 적어도 하나의 판독 기준 전압을 검색하는 단계; 및 (g) 상기 검색에 후속하여, 상기 검색된 적어도 하나의 판독 기준 전압을 이용하여 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계를 포함한다.
상기 적어도 하나의 판독된 기준 전압은 휘발성 및/또는 비휘발성 메모리의 조합에 저장된다.
일부 실시예에 따르면, 적어도 하나의 판독 기준 전압은 하나 이상의 플래시 메모리 셀에 저장된다.
일부 실시예에 따르면, 상기 판독된 데이터 비트는 플래시 컨트롤러를 이용하여 판독되고, 적어도 하나의 판독된 기준 전압은 플래시 컨트롤러(즉, 플래시 컨트롤러의 휘발성 및/또는 비휘발성 플래시 메모리의 조합)에 저장된다.
일부 실시예에 따르면, 저장하기 전에 최초 판독은 제 1 판독 요청에 대한 응답이고, 검색된 적어도 하나의 판독 기준 전압을 이용하는 후속 판독은 후속하는 판독 요청에 대한 응답이다.
복수의 플래시 메모리 셀과 오류 검지 및 보정 모듈을 구비한 시스템에서 데이터를 판독하는 방법이 먼저 기술된다. 본 기술된 방법은 (a) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계; (b) 상기 오류 검지 및 보정 모듈을 이용하여 판독된 데이터 비트의 오류를 보정하려고 시도하는 단계; (c) 오류 검지 및 보정 모듈에 의한 오류 보정 실패의 경우와 상기 판독에 후속하여, 적어도 하나의 새로운 판독된 기준 전압을 도출하는 단계; 및 (d) 상기 도출된 적어도 하나의 새로운 판독된 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계를 포함한다.
일부 실시예에 따르면, 상기 도출된 적어도 하나의 새로운 전압은 상기 오류 검지 및 보정 모듈에 의해 제공된 정보에 따라 적어도 부분적으로 결정된다.
일부 실시예에 따르면, 상기 도출된 적어도 하나의 새로운 전압은 적어도 부분적으로는 랜덤하게 결정된다.
복수의 플래시 메모리 셀과 오류 검지 및 보정 모듈을 구비한 시스템에서 데이터를 판독하는 방법이 먼저 기술된다. 본 기술된 방법은 (a) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계; (b) 상기 오류 검지 및 보정 모듈을 이용하여 판독된 데이터 비트의 오류를 보정하는 단계; 및 (c) 상기 보정에 후속하여, 적어도 하나의 변조된 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계를 포함한다.
일부 실시예에 따르면, 적어도 하나의 변조된 기준 전압을 이용하여 후속하는 데이터 비트를 판독하는 단계는 중간(즉, 적어도 하나의 변조된 기준 전압으로 재판독하기 이전과 단계 (a)의 데이터 비트의 판독 이후 사이)에 상기 오류 검지 및 보정 모듈에 의한 오류 보정 실패가 없더라도 수행된다.
일부 실시예에 따르면, 상기 복수의 메모리 셀은 상기 보정 후와 상기 적어도 하나의 변조된 기준 전압을 이용하는 판독 이전에 기록되지 않는다.
일부 실시예에 따르면, 적어도 하나의 변조된 기준 전압이 상기 오류 검지 및 보정 모듈에 의해 제공된 정보(예를 들면 오류의 수를 지시하는 정보)에 따라 적어도 부분적으로 도출된다.
일부 실시예에 따르면, 상기 보정 전의 최초 판독은 제 1 판독 요청에 대한 응답이고, 상기 보정 이후의 후속하는 판독은 후속하는 판독 요청에 대한 응답이다.
먼저 데이터 저장을 위한 플래시 메모리 디바이스로서, (a) 데이터 비트 저장을 위한 복수의 플래시 메모리 셀; (b) 데이터 비트의 오류를 검지 및 보정하기 위한 오류 검지 및 보정 모듈; (c) 메모리 셀로부터 데이터 비트를 판독하는 컨트롤러로서, (i) 상기 컨트롤러는 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독함으로써 제 1 판독 요청에 응답하고, 오류 검지 및 보정 모듈이 데이터 비트를 보정하는 데에 실패하면 상기 모듈이 상기 오류를 성공적으로 보정할 때까지 적어도 하나의 변조된 기준 전압을 이용하여 데이터 비트를 재판독하도록 동작하고, (ⅱ) 상기 컨트롤러는 중간(즉, 상기 제 1 판독 요청에 대한 데이터 비트의 재판독에 연관된 성공적인 오류 보정 이후와, 제 1의 후속하는 판독 요청에 연관된 데이터 비트의 제 1 판독 이전에)에 상기 메모리 셀로 데이터 비트의 재기록하지않고 후속하는 판독 요청에 대한 응답을 반복하도록 더 동작하는, 컨트롤러를 포함하는 플래시 메모리 디바이스를 기술한다.
먼저 데이터 저장을 위한 플래시 메모리 디바이스로서, (a) 데이터 비트 저장을 위한 복수의 플래시 메모리 셀; (b) 데이터 비트의 오류를 검지 및 보정하기 위한 오류 검지 및 보정 모듈; (c) 메모리 셀로부터 데이터 비트를 판독하는 컨트롤러로서, (Ⅰ) 상기 컨트롤러는: ⅰ) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고; ⅱ) 오류 검지 및 보정 모듈을 이용하여 판독된 데이터 비트의 오류를 보정하도록 시도하고; ⅲ) 상기 오류 검지 및 보정 모듈이 오류 보정에 실패하면, 상기 모듈이 상기 오류를 성공적으로 보정할 때까지 적어도 하나의 변조된 기준 전압을 이용하여 복수의 플래시 메모리 셀로부터 적어도 한번 데이터 비트를 재판독하고; ⅳ) 상기 보정에 후속하여, (예를 들면 컨트롤러의 보조 메모리, 또는 기타 메모리에) 상기 모듈이 성공적으로 상기 오류를 보정한 적어도 하나의 판독된 기준 전압을 저장함으로써; 제 1 판독 요청에 응답하도록 동작하고, 상기 저장에 후속하여, (Ⅱ) 상기 컨트롤러는: ⅰ) 상기 저장된 적어도 하나의 판독된 기준 전압을 검색하고; ⅱ) 상기 검색에 후속하여, 상기 검색된 적어도 하나의 판독된 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독함으로써; 후속하는 판독 요청에 응답하도록 동작하는, 컨트롤러를 포함하는 플래시 메모리 디바이스를 기술한다.
일부 실시예에 따르면, 상기 컨트롤러는 휘발성 메모리에 적어도 하나의 판독된 기준 전압을 저장하도록 동작한다.
일부 실시예에 따르면, 상기 컨트롤러는 비휘발성 메모리에 적어도 하나의 판독된 기준 전압을 저장하도록 동작한다.
일부 실시예에 따르면, 상기 컨트롤러는 하나 이상의 플래시 메모리 셀에 적어도 하나의 판독된 기준 전압을 저장하도록 동작한다.
일부 실시예에 따르면, 상기 컨트롤러는 상기 컨트롤러(예를 들면 플래시 컨트롤러의 휘발성 및/또는 비휘발성 메모리)에 적어도 하나의 판독된 기준 전압을 저장하도록 동작한다.
먼저 데이터 저장을 위한 플래시 메모리 디바이스로서, (a) 데이터 비트 저장을 위한 복수의 플래시 메모리 셀; (b) 데이터 비트의 오류를 검지하기 위한 오류 검지 및 보정 모듈; 및 (c) 플래시 메모리 셀로부터 데이터 비트를 판독하는 컨트롤러로서, 상기 컨트롤러는: ⅰ) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고, ⅱ) 오류 검지 및 보정 모듈을 이용하여 판독된 데이터 비트의 오류를 보정하도록 시도하고, ⅲ) 상기 오류 검지 및 보정 모듈이 오류 보정에 실패하는 경우, 적어도 하나의 새로운 판독된 기준 전압을 도출하고, ⅳ) 상기 도출된 적어도 하나의 새로운 판독된 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독함으로써 판독 요청에 응답하도록 동작하는, 컨트롤러를 포함하는 플래시 메모리 디바이스를 기술한다.
일부 실시예에 따르면, 상기 컨트롤러는 상기 오류 검지 및 보정 모듈에 의해 제공된 정보에 따라 적어도 부분적으로 적어도 하나의 새로운 전압을 도출하도록 동작한다.
일부 실시예에 따르면, 상기 컨트롤러는 적어도 부분적으로 랜덤하게 적어도 하나의 새로운 전압을 도출하도록 동작한다.
먼저 데이터 저장을 위한 플래시 메모리 디바이스로서, (a) 데이터 비트 저장을 위한 복수의 플래시 메모리 셀; (b) 데이터 비트의 오류를 검지하기 위한 오류 검지 및 보정 모듈; (c) 플래시 메모리 셀로부터 데이터 비트를 판독하는 컨트롤러로서, (Ⅰ) 상기 컨트롤러는: ⅰ) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고; ⅱ) 오류 검지 및 보정 모듈을 이용하여 판독된 데이터 비트의 오류를 보정함으로써; 제 1 판독 요청에 응답하도록 동작하고, (Ⅱ) 상기 컨트롤러는: ⅲ) 적어도 하나의 변조된 기준 전압을 이용하여 복수의 플래시 메모리 셀로부터 데이터 비트를 판독함으로써; 후속하는 판독 요청에 응답하도록 더 동작하는, 컨트롤러를 포함하는 플래시 메모리 디바이스를 기술한다.
일부 실시예에 따르면, 상기 컨트롤러는 상기 보정 후와 상기 적어도 하나의 변조된 기준 전압을 이용하는 판독 이전에 상기 복수의 메모리 셀로 기록하지 않으면서, 상기 제 1 및 후속하는 판독 요청에 응답하도록 동작한다.
일부 실시예에 따르면, 상기 컨트롤러는 상기 오류 검지 및 보정 모듈에 의해 제공된 정보에 적어도 부분적으로 따라서 적어도 하나의 변조된 기준 전압을 도출하도록 동작한다.
컴퓨터 판독가능 저장 매체에서 구현되는 컴퓨터 판독가능 코드를 가지는 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터 판독가능 코드는 복수의 플래시 메모리 셀 및 오류 검지 및 보정 모듈을 구비하는 시스템에서 데이터를 판독하는 명령어를 구비하고, 상기 명령어는: a) 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고; b) 오류 검지 및 보정 모듈을 이용하여 판독 데이터 비트의 오류를 보정하려고 시도하고; c) 상기 오류 검지 및 보정 모듈에 의한 오류 보정이 실패하는 경우, 상기 모듈이 성공적으로 상기 오류를 보정할 때까지 적어도 하나의 변조된 기준 전압을 이용하여 복수의 플래시 메모리 셀로부터 적어도 한번 데이터 비트를 재판독하고; 및 d) 기록없이, 중간(즉, 적어도 하나의 변조된 기준 전압으로 단계(c)의 성공적인 오류 보정후 및, 상기 단계(a)의 판독 이전에)에 상기 메모리 셀로 상기 데이터 비트를 재기록;하는 명령어들을 포함한다.
컴퓨터 판독가능 저장 매체에서 구현되는 컴퓨터 판독가능 코드를 가지는 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터 판독가능 코드는 복수의 플래시 메모리 셀 및 오류 검지 및 보정 모듈을 구비하는 시스템에서 데이터를 판독하는 명령어를 구비하고, 상기 명령어는: a) 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고; b) 오류 검지 및 보정 모듈을 이용하여 판독 데이터 비트의 오류를 보정하려고 시도하고; c) 상기 오류 검지 및 보정 모듈에 의한 오류 보정이 실패하는 경우, 상기 모듈이 성공적으로 상기 오류를 보정할 때까지 적어도 하나의 변조된 기준 전압을 이용하여 복수의 플래시 메모리 셀로부터 적어도 한번 데이터 비트를 재판독하고; 및 d) 상기 보정에 후속하여, 상기 모듈이 상기 오류를 성공적으로 보정한 적어도 하나의 판독된 기준 전압을 저장하고; e) 상기 저장에 후속하여, 저장된 적어도 하나의 판독된 기준 전압을 검색하고; g) 상기 검색에 후속하여, 상기 검색된 적어도 하나의 판독된 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독;하는 명령어들을 포함하는 컴퓨터 판독가능 저장 매체가 기술된다.
컴퓨터 판독가능 저장 매체에서 구현되는 컴퓨터 판독가능 코드를 가지는 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터 판독가능 코드는 복수의 플래시 메모리 셀 및 오류 검지 및 보정 모듈을 구비하는 시스템에서 데이터를 판독하는 명령어를 구비하고, 상기 명령어는: a) 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고; b) 오류 검지 및 보정 모듈을 이용하여 판독 데이터 비트의 오류를 보정하려고 시도하고; c) 상기 오류 검지 및 보정 모듈에 의한 오류 보정이 실패하고 상기 판독에 후속하여, 적어도 하나의 새로운 판독 기준 전압을 도출하고; d) 상기 도출된 적어도 하나의 새로운 판독 기준 전압을 이용하여 복수의 플래시 메모리 셀로부터 데이터 비트를 판독;하는 명령어들을 포함하는 컴퓨터 판독가능 저장 매체가 기술된다.
컴퓨터 판독가능 저장 매체에서 구현되는 컴퓨터 판독가능 코드를 가지는 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터 판독가능 코드는 복수의 플래시 메모리 셀 및 오류 검지 및 보정 모듈을 구비하는 시스템에서 데이터를 판독하는 명령어를 구비하고, 상기 명령어는: a) 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고; b) 오류 검지 및 보정 모듈을 이용하여 판독 데이터 비트의 오류를 보정하고; c) 상기 보정에 후속하여, 적어도 하나의 변조된 기준 전압을 이용하여 복수의 플래시 메모리 셀로부터 데이터 비트를 판독;하는 명령어들을 포함하는 컴퓨터 판독가능 저장 매체가 기술된다.
상기 및 또다른 실시예가 하기의 상세한 설명 및 예시로부터 명확해진다.
도 1A-1B는 메모리 셀의 커다란 집단의 임계전압의 분포의 그래픽적인 예시를 제공한다(종래기술).
도 2는 종래 기술의 오류 복구 설계로서 기술된 플로우 차트를 제공한다.
도 3은 본 발명의 예시적인 실시예에 따라 플래시 메모리 디바이스의 블록도를 제공한다.
도 4-7은 본 발명의 일부 실시예에 따라 플래시 디바이스에 의한 하나 이상의 판독 요청의 핸들링을 기술하는 플로우 차트를 각각 제공한다.
본 발명은 특정한, 예시적인 실시예에 대해 하기에 기술될 것이다. 본 발명은 기술된 예시적인 실시예에 한정되지 않는다는 것을 이해해야한다. 또한 현재 기술된 플래시 메모리에서 오류를 복구하기 위한 방법, 디바이스, 및 컴퓨터 판독가능 코드의 모든 특징이 첨부된 청구범위의 특정한 하나에서 청구되는 발명에서 구현할 필요는 없다는 것이 또한 이해되어야 한다. 디바이스의 다양한 엘리먼트 및 특징이 본 발명을 완전히 이네이블하게 하도록 기술된다. 프로세스 또는 방법 이 도시 또는 기술되는 본 명세서 전체에서, 상기 방법의 단계들은 한 단계가 먼저 수행된 다른 단계에 따르는 것이 명확하지 않다면, 임의의 순서 또는 동시에 수행될 수도 있다는 것이 이해될 것이다.
도 3의 플래시 메모리 디바이스
도 3은 본 발명의 예시적인 실시예에 따라 플래시 메모리 디바이스(50)의 블록도를 제공한다. 상기 플래시 메모리 디바이스(50)는 복수의 플래시 메모리 셀, 및 플래시 컨트롤러(10)를 가지는 플래시 메모리(30)를 포함한다. 상기 플래시 컨트롤러(10)는 플래시 메모리 셀(30)로부터 데이터를 판독하도록 동작하고, 선택적으로 또한 상기 플래시 메모리 셀(30)로 데이터를 기록하도록 동작한다. 상기 플래시 디바이스(50)는 또한 플래시 컨트롤러(10)(도 3에 도시된)의 일부이거나 또는 개별적인 오류 검지 및 보정 회로(20)를 포함한다. 상기 플래시 컨트롤러(10)는 플래시 디바이스(50)의 외부, 예를 들면 호스트 디바이스(도시되지 않음)로부터 수신된 명령에 따라 상기 플래시 메모리(30)에 액세스한다.
도 4의 설명
도 4는 본 발명의 일부 실시예에 따라 플래시 디바이스(50)에 의한 하나 이상의 판독 요청의 핸들링을 기술한 플로우 차트를 제공한다. 판독 요청을 수신한 후, 상기 플래시 컨트롤러(10)는 기준 전압의 세트(예를 들면, 디폴트 기준 전압, 또는 기전 전압의 다른 세트, 따라서, 각 메모리 셀은 각각의 기준 전압을 사용하 여 판독됨)를 이용하여 플래시 메모리(30)로부터 데이터 비트를 판독한다(112C). ECC를 이용하여 판독된 데이터 비트를 보정하고자 하는 시도가 이루어진다(114). 상기 오류 보정이 성공한다면(116), 상기 컨트롤러(10)는 보정된 데이터를(예를 들면 호스트 디바이스로) 전송함으로써 상기 판독 요청에 응답한다(118). 상기 판독 요청에 대한 응답(118)후에, 상기 디바이스(50)는 또다른 판독 요청을 핸들링할 준비가 된다.
오류 보정이 성공하지 못하면(116), 상기 컨트롤러(10)는 적어도 하나의 변조된(120) 기준 전압(즉, 적어도 하나의 각각의 전압이 이전에 판독된 것과 상이한(112C))을 이용하여 플래시 메모리로부터 데이터 비트를 재판독할수 있다(112B). 상기 재판독후(112B), 추가적인 오류 보정이 다시 시도된다(114). 이러한 오류 보정이 성공하지 못하면(116), 상기 컨트롤러(10)는 적어도 하나의 변조된 기준 전압(즉, 적어도 하나의 각각의 전압이 상기 이전의 판독에 사용된 것과는 상이함(112B))을 이용하여 다시 상기 메모리 셀(30)로부터 데이터 비트를 판독한다(112B). 변조된 전압으로 수행하는 상기 재판독(112B)과 시도된 오류 보정(114)은 성공적인 오류 보정(116)이 있을 때까지 반복된다.
이때, 응답(118)이 상기 판독 요청으로 전송되고, 컨트롤러가 또다른 판독 요청에 응답하도록 준비된다(110). 도 4에 기술된 실시예에 따라 성공적인 오류 보정후에 데이터는 상기 플래시 메모리 셀로 재기록되지 않는다는 것에 유의하라.
도 4에서, 오류 복구 프로세스는 적어도 한번 변조된(120) 기준 전압을 이용하여 플래시 메모리 셀을 재판독하는 단계(112B)를 포함한다. 도 4에서 요구되지 않더라도, 일부 실시예에서, 변조된 기준 전압의 시퀀스는 미리 정해지고, 각 반복에 대해, 미리 정해진 기준 전압의 상이한 세트가 사용된다. 또는, 하나 이상의 변조된 기준 전압이 예를 들면 플래시 컨트롤러(10)의 마이크로프로세서를 이용하여 연산된다.
도 4에 연관된 논의
상기 데이터가 재기록되지 않기 때문에, 제 1 판독 요청을 핸들링할 때 마주치게되는 동일한 데이터 오류가, 후속하는 판독 요청 핸들링시에 다시 나타나게될 수도 있다(즉, 메모리 셀이 디폴트 전압을 이용할 때 오류 보정 실패의 가능성을 감소시키기 위해 재기록 데이터로 복구되지 않기 때문이다.). 따라서, 상기 디바이스는, 상기 후속하는 판독 요청을 핸들링하는 동안, 오류 복구 프로시저, 예를 들면 도 4에 기술된 프로시저를 다시 한번 가져올 필요도 있다.
본 발명자는 먼저, 다수의 상황에서, 데이터를 플래시 메모리에 재기록하는시간 소모적인 단계(도 2를 참조)를 제거하는 것에 연관된 상기 속도 효익의 이득이(즉, 보다 빠른 복구 프로시저를 사용함으로써), 다수의 판독 반복에 유효하게 연관된 손실과, 판독 오류로부터의 보다 빈번한 복구에 대한 필요성을 과대 평가한다고 기술하였다. 따라서, 본 발명은 도 4의 프로시저가 평균적으로 도 2의 것 보다 더 빠른 다수의 상황이 있다는 것을 기술한다.
도 5의 설명
도 5는 본 발명의 일부 실시예에 따라 플래시 디바이스(50)에 의한 하나 이상의 판독 요청의 핸들링을 기술하는 플로우 차트를 제공한다. 판독요청 수신(110)후에, 플래시 컨트롤러(10)는 일 세트의 기준 전압(예를 들면, 디폴트 전압, 또는 기타 세트의 기준 전압, 따라서 각각의 메모리 셀은 각각의 기준 전압을 이용하여 판독됨)을 이용하여 플래시 메모리(30)로부터 데이터 비트를 판독한다(112C). ECC를 이용하여 판독 데이터 비트의 보정을 위한 시도가 이루어진다(114). 오류 보정이 성공적이라면(116), 컨트롤러(10)는 보정된 데이터를(예를 들면 호스트 디바이스로) 전송함으로써 판독요청에 응답한다(118). 상기 판독 요청에 대한 응답후(118), 상기 디바이스(50)는 또다른 판독 요청을 핸들링할 준비가 된다.
오류 보정이 성공적이지 못하면(116), 상기 컨트롤러(10)는 적어도 하나의 변조된 기준 전압(즉, 적어도 하나의 각각의 전압이 이전의 판독에서 사용된 것과 상이한(112C))을 이용하여 플래시 메모리로부터 데이터 비트를 재판독한다(112B). 재판독(112B)후에, 추가적인 오류 보정이 다시한번 시도된다(114). 이러한 오류 보정이 성공하지 못하면(116), 상기 컨트롤러(10)는 적어도 하나의 변조된 기준 전압(즉, 적어도 하나의 각각의 전압이 이전의 판독에서 사용된 것과 상이한(112B))을 이용하여 다시 상기 메모리 셀(30)로부터 데이터 비트를 판독한다(112B). 변조된 전압으로 재판독하고(112B) 시도된 오류 보정(114)은 성공적인 오류 보정(116)이 있을 때까지 반복된다.
이때, 응답이 상기 판독 요청으로 전송된다(118).
도 5에 도시된 실시예에 따라, 성공적인 오류 보정(116)후(즉 성공적인 복구후)에, 하나 이상의 "성공적인" 기준 전압(130)이 추후의 사용을 위해 메모리에 저장된다.
후속하는 판독 요청(110)의 수신시, 하나이상의 이러한 저장된 기준 전압(즉, 이전의 판독된 요청의 핸들링시 성공적인 복구후에 저장된)이 검색되고(132), 후속하는 판독 요청을 핸들링하기 위해 플래시 메모리 판독시(112D) 사용된다.
도 5에 명시적으로 기재되지 않고 한정되지 않았지만, 일부 실시예에서, 도 4에서와 같이 상기 플래시 셀로부터 검색된 실제 데이터는 플래시 셀로 재기록될 필요가 없다는 것이 이해될 것이다.
도 5의 논의
한정은 아닐지라도, 도 5는 도 4를 기술할 때 상술한 것에 대한 "개선"으로 간주된다. 도 4의 기술에서, 데이터가 플래시 메모리 셀에 재기록되지 않기 때문에(즉, 시간소모적인 플래기 기록 동작을 방지하기 위해), 동일한 오류는 후속하는 판독 요청을 핸들링할 때 마주치게 된다(즉, 상기 메모리 셀은 재기록된 데이터로 복구되지않아 디폴트 전압의 사용시 오류 보정 실패의 가능성을 감소시키기 때문에)는 것에 유의하라.
도 5의 프로시저는 오류 복구후 후속하는 판독 요청에 응답시 요구되는 판독 반복의 횟수를 감소시키는 데에 유용하다. 보다 특정지어서, 다수의 상황에, 저장된 성공한 기준 전압(즉 이전의 판독 요청으로부터)은 후속하는 판독 요청에서의 적절한 기준 전압의 양호한 제 1 근사치를 제공한다. 따라서, 오류 복구후에 이러한 기준 전압을 저장하고 이러한 전압을 추후에 검색함으로써, 속도에서의 또다른 총 이득이 달성가능하다.
예를 들면, SBC 플래시에서(오직 하나의 판독된 기준 값이 있는) 하나의 특정한 플래시 셀에 대한 판독된 기준이 각 연속한 반복시 25 밀리볼트로 변조된다고(즉, 단계 120) 가정해보자. 셀의 임계 전압이 드리프트되는 실제 드리프트가 100 밀리볼트라면, 데이터 판독을 위한 제 1 시도(즉, 단계(112C))는 5 개의 판독 반복후에 성공할 것이다(단순하게 디폴트 판독 기준 값이 안전한 마진 없이 분포의 에지에 근접하고, 이것은 일반적으로 플래시 메모리 디바이스의 경우가 아니라고 가정하면). 상기 성공적인 판독에 후속하여, 100 밀리볼트의 값이 추후의 사용을 위해 저장된다.
후속하는 판독 요청을 수신한 후에, 그 데이터가 다시 판독될 때(112D), 상기 저장된 100 밀리볼트의 값이 검색되고 사용된다. 일 실시예에 따라(즉, 도 5에 도시된 바와 같이), 디폴트 판독이 스킵되고, 판독은 디폴트 값과 차이가 나는 100 밀리볼트인 기준으로 시작한다. 또는, 후속하는 판독 요청 수신시, 디폴트 기준 전압을 사용하는 최초 판독이 시도되고, 데이터 보정을 실패할 때에만, 설정된 값만큼 100 밀리볼트 시프트된 판독이 시도된다. 오직 하나 또는 2 번의 반복만을 포함하는 이러한 방식이 5 대신에 발생된다.
플래시 메모리의 다양한 페이지(판독 청크)에 대한 성공적인 기준 값이 휘발성 메모리, 비휘발성 메모리, 또는 그의 임의의 조합에 저장된다(130)는 것에 유의 하라. 예를 들면, 상기 성공적인 기준값은 플래시 컨트롤러 또는 플래시 디바이스 내부의 RAM의 테이블에 저장된다(130). RAM에 저장하는 것을 빠르고 효율적이어서, 프로세스의 속도를 높이는 데에 기여한다. 상기의 단점은 전원이 한번 셧다운되면, 저장된 기준이 상실된다는 것이다. 그러나, 이것은 상기 저장된 값이 메모리 시스템 동작에 필수적인 것이 아니기 때문에 수용할 수 있다. 데이터 청크의 저장된 기준값이 상실되면, 다음 데이터 청크의 판독시, 보다 느린 전체 반복 프로세스가 최초에 사용되지만(예를 들면 도 4에 기술된 바와 같이), 데이터는 여전히 정확하게 검색된다.
도 6의 설명 및 논의
도 4에서, 기준 전압이 어떻게 변조되는지에 대한 제한은 없다는 것에 유의하라(120). 도 6에서, 적어도 하나의 전압이 도출되거나(140), 또는 일정한 방식으로(예를 들면, 플래시 컨트롤러(10)의 마이크로프로세서를 이용하여) 연산되는 것이 기술된다는 것에 유의하라. 본 섹션에서, 하나 이상의 기준 전압을 도출 또는 연산하기 위한(140) 2 개의 예시적인 프로시저가 기술된다. 제 1 프로시저는 ECC 모듈에 의해 제공되는 정보에 따라 기준 전압을 연산하는 것(140)에 연관되고, 제 2 프로시저는 랜덤하게 선택된 전압을 이용하여 기준 전압을 도출하는 것(140)에 연관된다. 도 5 또는 6에 명시적으로 기록되지는 않았지만, 일반적으로 데이터 복구후에 데이터가 플래시 메모리 셀로 재기록되지 않는다는 것에 유의하라.
기준 전압 도출(140)을 위한 제 1 프로시저
일부 실시예에서(그리고 도 6에 도시된 바와 같이), 데이터 보정에 실패할 때 ECC 모듈에 의해 제공된 정보를 이용하도록 사용하는 것이 가능하다. 예를 들면, 일부 ECC 방법은 보정하는 데에 실패한 데이터의 오류의 심각성을 나타내도록 구성될 수 있다. 본 문에서 오류의 심각성은 데이터에서의 오류의 수를 의미한다. 따라서 정확한 오류가 ECC 모듈에 알려지지 않더라도(그리고, 그들의 정확한 수가 알려지지 않더라도), 오류의 수가 높거나 작은지를 지시하는 정보가 있다. 이러한 정보를 제공하는 ECC 모듈을 활용할 때, 이것은 판독 반복의 수를 감소시키는 데에 사용될 수 있다. 커다란 수의 오류가 상기 임계전압의 커다란 드리프트와 상호 연관되어 있고, 반면, 보다 작은 수의 오류는 더 작은 수의 드리프트에 상호연관되는 것으로 논리적으로 예측된다.
가장 간단한 형태로, 바이너리 "다수/소수의 오류"를 지시하는 것만이 ECC 모듈에 의해 제공될 때, 이러한 실시예는 하기와 같이 동작한다. 제 1 디폴트 값 기반 판독이 실패할 때, 상기 ECC 모듈은 오류의 심각성에 대해 쿼리된다. 그런다음, 다음 순서의 판독 시도가 상기 심각함에 기초하여 결정된 기준값을 이용하여 수행된다. 다수의 오류가 있다면 기준 값의 커다란 시프트가 사용될 수 있고, 오류가 있다면 더 작은 시프트가 사용될 수 있다. 이러한 방식으로, 다음번 판독 시도가 성공하고 판독 동작당 판독 반복의 평균 수가 감소될 가능성이 더 높아진다.
각 반복에 사용되는 기준 전압을 도출함으로써(예를 들면, ECC 모듈에 의해 제공되는 정보에 따라), 기준 전압이 미리 정해지지않은 오류 복구 설계가 ㅡ제공 된다는 것에 유의하라. 따라서, 기준 전압의 시퀀스는 상이한 데이터 페이지에 대해 상이하고, 다수는 동일한 페이지의 2 개의 판독 동작에 대해서도 상이하다.
명백히, 우리가 예상한 기준 전압이 실패하는 것으로 판명되면, 도 4 또는 도 5에 기술된 설계, 또는 기타 다른 설계로 항상 복귀할 수 있다.
기준 전압 도출(140)을 위한 제 2 프로시저
미리 정해진 값을 사용하는 것이 아니라, 오류 복구동안 적어도 하나의 기준 전압을 랜덤하게 도출하는 것(140)이 바람직한 다수의 경우가 있다. 예를 들면, ECC 모듈이 오류의 심각성에 대한 정보를 제공할 수 없다면, BCH 또는 해밍 코드와 같은 다수의 간단한 ECC 설계의 경우처럼, 상기 데이터 비트로부터 도출된 정보에 따라 판독된 기준 전압을 선택하는 것이 불가능하다. 따라서, 랜덤하게 값을 사용하는 것이 바람직하다. 랜덤한 선택은 상이한 페이지 사이의 가능한 드리프트 양에서의 커다란 편차가 있을 때 미리 정해진 선택에 대해 이점을 가진다. 랜덤한 선택을 이용하면, 판독 동작당 판독 반복의 수의 평균화를 제공하고, 그 결과 시스템에 장착된 특정 플래시 디바이스에 보다 덜 의존적인 보다 안정된 성능을 제공한다.
도 7의 설명 및 논의
데이터 셀이 변조된 전압(즉, 미리 정해진 변조된 전압, 또는 "새롭게" 연산된 전압 중 어느 하나)을 이용하여 재판독되는 오류 복구 프로시저가 기술된다.
그럼에도 불구하고, 본 발명은 또한 데이터의 최초 판독이 성공적인 상황에서 조차 플래시 메모리 셀로부터 데이터를 판독하는 프로시저를 제공한다는 것에 유의하라.
도 7을 참조하면, 제 1 판독 요청(110A) 수신후에, 플래시 데이터 셀이 주어진 세트의 기준 전압(예를 들면, 디폴트 기준 전압)을 이용하여 판독된다(112C). 상기 판독된 데이터는 ECC를 이용하여 성공적으로 보정되고(150), 그 응답은 제 1 판독 요청에 대해 제공된다(118).
데이터가 제 1 판독 요청(110A)에 대해 성공적으로 판독되고 보정된다고 하더라도(즉, 오류 복구 루틴이 필요 없더라도), 그럼에도 불구하고 제 2 판독 요청(110B)에 대해 변조된 기준 전압이 존재한다.
일반적으로, 기준 전압이 1 판독 요청의 판독 데이터 보정 후에 ECC에 의해 제공된 정보에 따라 변조되지만, 이것은 한정은 아니다. 특히, 대부분의 ECC 설계는, 데이터 보정에 성공한다면, 보정된 오류의 수에 대한 정보를 제공할 수 있다. 따라서, 보정이 실패되지 않은 "성공한 오류 보정"의 경우에 그 심각성이 그다지 높지 않다고 하더라도 보정된 오류의 심각성을 지시하는 것이 가능하다. 이러한 지시에 기초하여, 상기 심각성이 동일한 데이터의 다음번 판독 요청에 대한 시작 포인트가 되는 판독된 기준 전압의 조정을 판정하기에 충분히 높은지 여부가 판정된다. 조정된 값으로부터 시작되면 다음번 판독시에는 하나 이상의 판독 반복이 절감될 수 있다. 도 5에 도시된 실시예에서와 같이, 다양한 데이터 페이지에 사용되는 기준 전압은 추후의 사용을 위해, 휘발성(RAM과 같은) 및/또는 비휘발성(플래 시 메모리와 같은)의 임의의 조합에 저장된다.
따라서, 변조된 기준 전압(112B)를 이용하는 판독은, 최초의 데이터 비트 판독(112C)후에 오류 검지 및 보정 모듈에 의한 오류 보정이 실패한다고 하더라도, 수행될 수 있다는 것에 유의해야한다.
예시적인 실시예의 일반적인 논의
본 발명의 실시예는 상술한 바와 같이 플래시 메모리 디바이스로부터 데이터를 판독하는 방법에 관한 것이다. 일부 실시예는 본문에 기술된 방법에 따라 플래시 메모리 셀의 어레이로부터 판독하도록 동작하는 플래시 메모리 컨트롤러를 제공한다. 본 발명의 일부 실시예는 현재 기술된 방법에 따르는 어레이로부터 판독하는 플래시 메모리 컨트롤러와 플래시 메모리 셀의 어레이를 조합하는 플래시 메모리 디바이스를 제공한다.
본 발명은 SBC 및 MBC 플래시 메모리 모두에 동일하게 적용가능하다는 것이 이해되어야 한다. SBC 셀에서, 오직 하나의 판독 기준 전압이 있는 반면, MBC 셀에서는, 다수의 판독 기준 전압이 있다. 현재 기술된 플래시 메모리 셀 판독을 위한 프로시저는 MBC 경우에 기준의 시프팅이 각 기준 전압과 병렬로 또는 개별적으로 적용되는 2 가지 경우 모두에 적용한다.
오류 보정 실패의 논의
일부 실시예에서, "ECC 실패" 이벤트는 디바이스가 ECC 실패를 지시하는 때 (예를 들면, 주어진 크기의 데이터 청크 당 미리 정해진 수의 오류를 초과하는 오류가 있는 경우)에 발생한다. 그럼에도 불구하고, 이것은 본 발명의 제한이 아니다. 예를 들면, 상기 ECC 모듈이 성공적인 오류 보정을 지시할 때조차 "오류 보정 실패" 이벤트는 데이터의 판독된 청크에서의 오류의 수 및/또는 종류에 연관된 대안의 미리정해진 "오류 보정 실패" 기준에 따라 실제로 발생하는 것으로 판정된다.
따라서, 본 발명의 실시예(그리고 특히, 도 3-6을 참조하여 기술된 실시예)는 ECC 모듈의 것과는 상이한 "오류 보정 실패 이벤트"라고 정의하는 미리정해진 기준이 플래시 메모리 컨트롤러(10)에 의해 사용되는 경우에 관한 것이다.
일 예에 따르면, ECC 모듈이 자신의 최대 오류 보정 용량에 근접하여 동작한다면 상기 ECC 모듈에 의존하는 것은 바람직하지 못하다. 예를 들면, ECC 모듈이 플래시 메모리로부터 판독되는 데이터 청크에서 4개의 오류까지 보정할 수 있다고 가정해보자. 본 예에 따르면, 3 개 이하를 보정하는 것이 매우 신뢰성 있는 반면, 4 개의 오류를 보정하는 것은 신뢰성이 떨어진다고 가정될 수 있다(즉, 이것은 오류 보정 실패 이벤트에 대한 "미리정해진 기준"의 일예이고, 데이터 청크 당 오류의 수는 미리 정해진 값을 초과한다). 이것은 4개의 오류가 있을 때 실제 데이터가 ECC 모듈이 리턴시킨 것이 아니고 상이하게될 가능성이 0이 아니기 때문이다. 따라서 ECC가 실제로 보정을 제시할 수 있더라도, 보다 신뢰성있는 판독을 얻기 위해 보정 실패로서 4개의 오류를 다루고, 본 발명의 일부 실시예에 의해 제공되는 오류 복구 기술(예를 들면 도 4-6에 기술된 것과 같은)을 채용하도록 선택할 수 있다. 따라서, 상기 예시적인 경우는 본 문에 기술된 임의의 실시예에 적용하고, " 오류 보정에 실패"라는 의미는 또한 "오류 보정에 실패하거나 또는 보정이 다른 미리정해진 오류 기준에 따라 신뢰할 수 없다고 간주됨"을 포함한다는 것이 이해되어야 한다.
본 출원의 설명 및 청구범위에서, "구비한다", "포함한다", "가진다"라는 각각의 동사와 그의 활용형은 상기 동사의 목적어 또는 목적어들이 상기 동사의 주어 또는 주어들의 멤버, 컴포넌트, 엘리먼트 또는 일부를 완벽하게 나열할 필요는 없다는 것을 지시하는 데에 사용된다.
본 문에 인용된 모든 참조문헌은 그 전체가 참조에 의해 통합된다. 참조문헌의 인용은 상기 참조문헌이 종래기술이라고 인정하는 것을 구성하는 것은 아니다.
"a"와 "an"은 본문에서는 문단의 문법적 객체의 하나 이상(즉, 적어도 하나)을 참조하도록 본문에 사용된다. 예시의 방식으로, "an element"는 하나 또는 하나 이상의 엘리먼트를 의미한다.
"포함하는"이라는 단어는 "포함하지만 한정하지 않는다"는 구를 본문에서 의미하고 그와 상호 교환가능하게 사용된다.
"또는"의 의미는 명시적으로 다르게 지시하지 않는다면, "및/또는"을 의미하며 그와 상호교환가능하게 사용된다.
"이와 같은"이라는 단어는 "이와 같지만 그에 한정되는 것은 아니다"라는 의미하며, 그와 상호교환가능하게 사용된다.
본 발명은 예시의 방식에 의해 제공되고 발명의 범위를 한정할 것을 의도하 지 않는 실시예의 상세한 설명을 이용하여 기술된다. 기술된 실시예는 상이한 특징을 구비하지만, 본 발명의 모든 실시예에서 그 모두가 필요한 것은 아니다. 본 발명의 일부 실시예는 일부의 특징, 또는 그의 가능한 조합만을 활용한다. 기술된 실시예에서 언급된 특징들의 상이한 조합을 구비하는 본 발명의 실시예와 기술된 본 발명의 실시예의 변형이 당업자에게는 자명할 것이다.

Claims (31)

  1. 복수의 플래시 메모리 셀과 오류 검지 및 보정 회로를 구비한 시스템에서 데이터를 판독하는 방법으로서,
    (a) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계;
    (b) 상기 오류 검지 및 보정 회로를 이용하여 판독된 데이터 비트의 오류를 보정하려고 시도하는 단계;
    (c) 오류 검지 및 보정 회로에 의한 오류 보정 실패의 경우, 상기 회로가 상기 오류를 성공적으로 보정할 때까지 적어도 하나의 변조된 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 적어도 한 번 재판독하는 단계; 및
    (d) 중간에 상기 메모리 셀로 상기 데이터 비트를 재기록하지 않으면서 상기 데이터 비트에 대해 단계 (a), (b), (c)를 반복하는 단계를 포함하는 것을 특징으로 하는 데이터 판독 방법.
  2. 제 1 항에 있어서,
    상기 반복 이전의 최초 판독은 제 1 판독 요청에 대한 응답이고, 상기 반복에 연관된 후속하는 판독은 후속하는 판독 요청에 대한 응답인 것을 특징으로 하는 데이터 판독 방법.
  3. 복수의 플래시 메모리 셀과 오류 검지 및 보정 회로를 구비한 시스템에서 데이터를 판독하는 방법으로서,
    (a) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계;
    (b) 상기 오류 검지 및 보정 회로를 이용하여 판독된 데이터 비트의 오류를 보정하려고 시도하는 단계;
    (c) 오류 검지 및 보정 회로에 의한 오류 보정 실패의 경우, 상기 회로가 상기 오류를 성공적으로 보정할 때까지 적어도 하나의 변조된 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 상기 데이터 비트를 적어도 한번 재판독하는 단계;
    (d) 상기 보정에 후속하여, 상기 회로가 성공적으로 오류를 보정한 적어도 하나의 판독 기준 전압을 저장하는 단계;
    (e) 상기 저장에 후속하여, 상기 저장된 적어도 하나의 판독 기준 전압을 검색하는 단계; 및
    (g) 상기 검색에 후속하여, 상기 검색된 적어도 하나의 판독 기준 전압을 이용하여 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계를 포함하는 것을 특징으로 하는 데이터 판독 방법.
  4. 제 3 항에 있어서,
    상기 적어도 하나의 판독된 기준 전압은 휘발성 메모리에 저장되는 것을 특징으로 하는 데이터 판독 방법.
  5. 제 3 항에 있어서,
    상기 적어도 하나의 판독 기준 전압은 비휘발성 메모리에 저장되는 것을 특징으로 하는 데이터 판독 방법.
  6. 제 3 항에 있어서,
    상기 적어도 하나의 판독 기준 전압은 하나 이상의 플래시 메모리 셀에 저장되는 것을 특징으로 하는 데이터 판독 방법.
  7. 제 3 항에 있어서,
    상기 판독된 데이터 비트는 플래시 컨트롤러를 이용하여 판독되고, 상기 적어도 하나의 판독 기준 전압은 상기 플래시 컨트롤러에 저장되는 것을 특징으로 하는 데이터 판독 방법.
  8. 제 3 항에 있어서,
    상기 저장하는 단계 이전의 최초 판독은 제 1 판독 요청에 대한 응답이고, 상기 검색된 적어도 하나의 판독 기준 전압을 이용하는 후속하는 판독은 후속하는 판독 요청에 대한 응답인 것을 특징으로 하는 데이터 판독 방법.
  9. 복수의 플래시 메모리 셀과 오류 검지 및 보정 회로를 구비한 시스템에서 데이터를 판독하는 방법으로서,
    (a) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계;
    (b) 상기 오류 검지 및 보정 회로를 이용하여 상기 판독된 데이터 비트의 오류를 보정하려고 시도하는 단계;
    (c) 오류 검지 및 보정 회로에 의한 오류 보정 실패의 경우와 상기 판독에 후속하여, 적어도 하나의 새로운 판독된 기준 전압을 도출하는 단계; 및
    (d) 상기 도출된 적어도 하나의 새로운 판독 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계를 포함하는 것을 특징으로 하는 데이터 판독 방법.
  10. 제 9 항에 있어서,
    상기 도출된 적어도 하나의 새로운 전압은 상기 오류 검지 및 보정 회로에 의해 제공된 정보에 따라 적어도 부분적으로 결정되는 것을 특징으로 하는 데이터 판독 방법.
  11. 제 9 항에 있어서,
    상기 도출된 적어도 하나의 새로운 전압은 적어도 부분적으로는 랜덤하게 결정되는 것을 특징으로 하는 데이터 판독 방법.
  12. 복수의 플래시 메모리 셀과 오류 검지 및 보정 회로를 구비한 시스템에서 데이터를 판독하는 방법으로서,
    (a) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계;
    (b) 상기 오류 검지 및 보정 회로를 이용하여 상기 판독 데이터 비트의 오류를 보정하는 단계; 및
    (c) 상기 보정에 후속하여, 적어도 하나의 변조된 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는 단계를 포함하는 것을 특징으로 하는 데이터 판독 방법.
  13. 제 12 항에 있어서,
    상기 복수의 메모리 셀은 상기 보정 후와 상기 적어도 하나의 변조된 기준 전압을 이용하는 상기 판독 이전에는 기록되지 않는 것을 특징으로 하는 데이터 판독 방법.
  14. 제 12 항에 있어서,
    적어도 하나의 상기 변조된 기준 전압은 상기 오류 검지 및 보정 회로에 의해 제공된 정보에 따라 적어도 부분적으로 도출되는 것을 특징으로 하는 데이터 판독 방법.
  15. 제 12 항에 있어서,
    상기 보정 이전의 최초 판독은 제 1 판독 요청에 대한 응답이고, 상기 보정 이후의 후속하는 판독은 후속하는 판독 요청에 대한 응답인 것을 특징으로 하는 데이터 판독 방법.
  16. 데이터 저장을 위한 플래시 메모리 디바이스에 있어서,
    (a) 데이터 비트 저장을 위한 복수의 플래시 메모리 셀;
    (b) 데이터 비트의 오류를 검지 및 보정하기 위한 오류 검지 및 보정 회로;
    (c) 상기 메모리 셀로부터 데이터 비트를 판독하는 컨트롤러를 포함하고,
    (i) 상기 컨트롤러는 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독함으로써 제 1 판독 요청에 응답하고, 상기 오류 검지 및 보정 회로가 데이터 비트를 보정하는 데에 실패하면 상기 회로가 상기 오류를 성공적으로 보정할 때까지 적어도 하나의 변조된 기준 전압을 이용하여 데이터 비트를 재판독하도록 동작하고,
    (ⅱ) 상기 컨트롤러는 중간에 상기 메모리 셀로의 상기 데이터 비트의 재기록없이 후속하는 판독 요청에 대한 상기 응답을 반복하도록 더 동작하는 것을 특징으로 하는 플래시 메모리 디바이스.
  17. 데이터 저장을 위한 플래시 메모리 디바이스에 있어서,
    (a) 데이터 비트 저장을 위한 복수의 플래시 메모리 셀;
    (b) 상기 데이터 비트의 오류를 검지 및 보정하기 위한 오류 검지 및 보정 회로; 및
    (c) 상기 플래시 메모리 셀로부터 데이터 비트를 판독하는 컨트롤러를 포함하고,
    상기 컨트롤러는:
    ⅰ) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고;
    ⅱ) 상기 오류 검지 및 보정 회로를 이용하여 판독된 데이터 비트의 오류를 보정하도록 시도하고;
    ⅲ) 상기 오류 검지 및 보정 회로가 오류 보정에 실패하는 경우, 상기 회로가 상기 오류를 성공적으로 보정할 때까지 적어도 하나의 변조된 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 적어도 한번 데이터 비트를 재판독하고;
    ⅳ) 상기 보정에 후속하여, 상기 회로가 성공적으로 상기 오류를 보정한 적어도 하나의 판독 기준 전압을 저장함으로써; 제 1 판독 요청에 응답하도록 동작하고,
    상기 저장에 후속하여, 상기 컨트롤러는:
    ⅰ) 상기 저장된 적어도 하나의 판독된 기준 전압을 검색하고;
    ⅱ) 상기 검색에 후속하여, 상기 검색된 적어도 하나의 판독 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독함으로써; 후속하는 판독 요청에 응답하도록 더 동작하는 것을 특징으로 하는 플래시 메모리 디바이스.
  18. 제 17 항에 있어서,
    상기 컨트롤러는 휘발성 메모리에 적어도 하나의 상기 판독 기준 전압을 저장하도록 동작하는 것을 특징으로 하는 플래시 메모리 디바이스.
  19. 제 17 항에 있어서,
    상기 컨트롤러는 비휘발성 메모리에 적어도 하나의 상기 판독 기준 전압을 저장하도록 동작하는 것을 특징으로 하는 플래시 메모리 디바이스.
  20. 제 17 항에 있어서,
    상기 컨트롤러는 하나 이상의 플래시 메모리 셀에 적어도 하나의 상기 판독 기준 전압을 저장하도록 동작하는 것을 특징으로 하는 플래시 메모리 디바이스.
  21. 제 17 항에 있어서,
    상기 컨트롤러는 상기 컨트롤러에 적어도 하나의 상기 판독 기준 전압을 저장하도록 동작하는 것을 특징으로 하는 플래시 메모리 디바이스.
  22. 데이터 저장을 위한 플래시 메모리 디바이스에 있어서,
    (a) 데이터 비트 저장을 위한 복수의 플래시 메모리 셀;
    (b) 상기 데이터 비트의 오류를 검지하기 위한 오류 검지 및 보정 회로; 및
    (c) 상기 플래시 메모리 셀로부터 상기 데이터 비트를 판독하는 컨트롤러를 포함하고,
    상기 컨트롤러는:
    ⅰ) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고,
    ⅱ) 오류 검지 및 보정 회로를 이용하여 판독된 데이터 비트의 오류를 보정하도록 시도하고,
    ⅲ) 상기 오류 검지 및 보정 회로가 오류 보정에 실패하는 경우와 상기 판독에 후속하여, 적어도 하나의 새로운 판독된 기준 전압을 도출하고,
    ⅳ) 상기 도출된 적어도 하나의 새로운 판독된 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독함으로써, 판독 요청에 응답하도록 동작하는 것을 특징으로 하는 플래시 메모리 디바이스.
  23. 제 22 항에 있어서,
    상기 컨트롤러는 상기 오류 검지 및 보정 회로에 의해 제공된 정보에 따라 적어도 부분적으로 적어도 하나의 새로운 전압을 도출하도록 동작하는 것을 특징으로 하는 플래시 메모리 디바이스.
  24. 제 22 항에 있어서,
    상기 컨트롤러는 적어도 부분적으로 랜덤하게 적어도 하나의 새로운 전압을 도출하도록 동작하는 것을 특징으로 하는 플래시 메모리 디바이스.
  25. 데이터 저장을 위한 플래시 메모리 디바이스에 있어서,
    (a) 데이터 비트 저장을 위한 복수의 플래시 메모리 셀;
    (b) 상기 데이터 비트의 오류를 검지하기 위한 오류 검지 및 보정 회로;
    (c) 상기 플래시 메모리 셀로부터 상기 데이터 비트를 판독하는 컨트롤러를 포함하고,
    상기 컨트롤러는:
    ⅰ) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고;
    ⅱ) 상기 오류 검지 및 보정 회로를 이용하여 상기 판독된 데이터 비트의 오류를 보정함으로써; 제 1 판독 요청에 응답하도록 동작하고,
    상기 컨트롤러는:
    ⅲ) 적어도 하나의 변조된 기준 전압을 이용하여 복수의 플래시 메모리 셀로부터 데이터 비트를 판독함으로써; 후속하는 판독 요청에 응답하도록 더 동작하는 것을 특징으로 하는 플래시 메모리 디바이스.
  26. 제 25 항에 있어서,
    상기 컨트롤러는 상기 보정 후와 상기 적어도 하나의 변조된 기준 전압을 이용하는 상기 판독 이전에 상기 복수의 메모리 셀로 기록하지 않으면서, 상기 제 1 및 후속하는 판독 요청에 응답하도록 동작하는 것을 특징으로 하는 플래시 메모리 디바이스.
  27. 제 25 항에 있어서,
    상기 컨트롤러는 상기 오류 검지 및 보정 회로에 의해 제공된 정보에 따라 적어도 부분적으로 적어도 하나의 상기 변조된 기준 전압을 도출하도록 동작하는 것을 특징으로 하는 플래시 메모리 디바이스.
  28. 컴퓨터 판독가능 저장 매체에서 구현되는 컴퓨터 판독가능 코드를 가지는 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터 판독가능 코드는 복수의 플래시 메모리 셀 및 오류 검지 및 보정 회로를 구비하는 시스템에서 데이터를 판독하는 명령어를 구비하고, 상기 명령어는:
    a) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고;
    b) 상기 오류 검지 및 보정 회로를 이용하여 상기 판독된 데이터 비트의 오류를 보정하려고 시도하고;
    c) 상기 오류 검지 및 보정 회로에 의한 오류 보정이 실패하는 경우, 상기 회로가 성공적으로 상기 오류를 보정할 때까지 적어도 하나의 변조된 기준 전압을 이용하여 복수의 플래시 메모리 셀로부터 적어도 한번 상기 데이터 비트를 재판독하고; 및
    d) 중간에 상기 메모리 셀로 재기록한 상기 데이터 비트를 기록하지 않으면서 단계 (a), (b), (c)를 반복하는; 명령어들을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 코드를 가지는 컴퓨터 판독가능 저장 매체.
  29. 컴퓨터 판독가능 저장 매체에서 구현되는 컴퓨터 판독가능 코드를 가지는 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터 판독가능 코드는 복수의 플래시 메모리 셀 및 오류 검지 및 보정 회로를 구비하는 시스템에서 데이터를 판독하는 명령어를 구비하고, 상기 명령어는:
    a) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고;
    b) 상기 오류 검지 및 보정 회로를 이용하여 상기 판독된 데이터 비트의 오류를 보정하려고 시도하고;
    c) 상기 오류 검지 및 보정 회로에 의한 오류 보정이 실패하는 경우, 상기 회로가 성공적으로 상기 오류를 보정할 때까지 적어도 하나의 변조된 기준 전압을 이용하여 복수의 플래시 메모리 셀로부터 상기 데이터 비트를 적어도 한번 재판독하고; 및
    d) 상기 보정에 후속하여, 상기 회로가 상기 오류를 성공적으로 보정한 적어도 하나의 판독된 기준 전압을 저장하고;
    e) 상기 저장에 후속하여, 상기 저장된 적어도 하나의 판독 기준 전압을 검색하고;
    g) 상기 검색에 후속하여, 상기 검색된 적어도 하나의 판독 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하는; 명령어들을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 코드를 가지는 컴퓨터 판독가능 저장 매체.
  30. 컴퓨터 판독가능 저장 매체에서 구현되는 컴퓨터 판독가능 코드를 가지는 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터 판독가능 코드는 복수의 플래시 메모리 셀 및 오류 검지 및 보정 회로를 구비하는 시스템에서 데이터를 판독하는 명령어를 구비하고, 상기 명령어는:
    a) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고;
    b) 상기 오류 검지 및 보정 회로를 이용하여 상기 판독된 데이터 비트의 오류를 보정하려고 시도하고;
    c) 상기 오류 검지 및 보정 회로에 의한 오류 보정이 실패하는 경우와 상기 판독에 후속하여, 적어도 하나의 새로운 판독 기준 전압을 도출하고;
    d) 상기 도출된 적어도 하나의 새로운 판독 기준 전압을 이용하여 상기 복수의 플래시 메모리 셀로부터 상기 데이터 비트를 판독하는; 명령어들을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 코드를 가지는 컴퓨터 판독가능 저장 매체.
  31. 컴퓨터 판독가능 저장 매체에서 구현되는 컴퓨터 판독가능 코드를 가지는 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터 판독가능 코드는 복수의 플래시 메모리 셀 및 오류 검지 및 보정 회로를 구비하는 시스템에서 데이터를 판독하는 명령어를 구비하고, 상기 명령어는:
    a) 상기 복수의 플래시 메모리 셀로부터 데이터 비트를 판독하고;
    b) 상기 오류 검지 및 보정 회로를 이용하여 상기 판독된 데이터 비트의 오류를 보정하고;
    c) 상기 보정에 후속하여, 적어도 하나의 변조된 기준 전압을 이용하여 복수의 플래시 메모리 셀로부터 상기 데이터 비트를 판독하는; 명령어들을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 코드를 가지는 컴퓨터 판독가능 저장 매체.
KR1020087012350A 2005-10-25 2006-10-24 플래시 메모리에서의 오류 복구 방법 KR100976989B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US72960805P 2005-10-25 2005-10-25
US60/729,608 2005-10-25
US11/397,609 US7954037B2 (en) 2005-10-25 2006-04-05 Method for recovering from errors in flash memory
US11/397,609 2006-04-05

Publications (2)

Publication Number Publication Date
KR20080059461A KR20080059461A (ko) 2008-06-27
KR100976989B1 true KR100976989B1 (ko) 2010-08-19

Family

ID=37968211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087012350A KR100976989B1 (ko) 2005-10-25 2006-10-24 플래시 메모리에서의 오류 복구 방법

Country Status (6)

Country Link
US (2) US7954037B2 (ko)
EP (1) EP1946210A2 (ko)
JP (1) JP5123196B2 (ko)
KR (1) KR100976989B1 (ko)
CN (1) CN101529522B (ko)
WO (1) WO2007049272A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140112968A (ko) * 2013-03-15 2014-09-24 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법, 비휘발성 메모리 장치, 및 메모리 시스템의 구동 방법
KR20150006615A (ko) * 2013-07-09 2015-01-19 에스케이하이닉스 주식회사 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
KR20150029404A (ko) * 2013-09-10 2015-03-18 에스케이하이닉스 주식회사 반도체 장치, 메모리 시스템 및 이의 동작 방법

Families Citing this family (269)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080043366A1 (en) * 2003-06-26 2008-02-21 Spectra Logic Corporation Tape cartridge auxiliary memeory based library
WO2007132452A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Reducing programming error in memory devices
US8239735B2 (en) * 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
KR101202537B1 (ko) 2006-05-12 2012-11-19 애플 인크. 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
KR101375955B1 (ko) 2006-05-12 2014-03-18 애플 인크. 메모리 디바이스 내의 왜곡 추정 및 상쇄
US7568135B2 (en) * 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
US7852690B2 (en) * 2006-05-15 2010-12-14 Apple Inc. Multi-chip package for a flash memory
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7551486B2 (en) * 2006-05-15 2009-06-23 Apple Inc. Iterative memory cell charging based on reference cell value
US8000134B2 (en) 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
US7639531B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Dynamic cell bit resolution
US7613043B2 (en) * 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7511646B2 (en) * 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
US7911834B2 (en) * 2006-05-15 2011-03-22 Apple Inc. Analog interface for a flash memory die
US7701797B2 (en) * 2006-05-15 2010-04-20 Apple Inc. Two levels of voltage regulation supplied for logic and data programming voltage of a memory device
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
WO2008053473A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Memory cell readout using successive approximation
US7975192B2 (en) * 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
WO2008068747A2 (en) 2006-12-03 2008-06-12 Anobit Technologies Ltd. Automatic defect management in memory devices
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
KR100799018B1 (ko) * 2006-12-27 2008-01-28 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 자기 보상 방법
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
KR100871700B1 (ko) * 2007-02-13 2008-12-08 삼성전자주식회사 불휘발성 메모리 장치에서 전하 손실에 기인한 오류 데이터정정 방법
KR100865830B1 (ko) * 2007-02-22 2008-10-28 주식회사 하이닉스반도체 메모리 소자의 독출 방법
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
US7971127B2 (en) * 2007-03-31 2011-06-28 Sandisk Technologies Inc. Guided simulated annealing in non-volatile memory 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
US7966546B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Non-volatile memory with soft bit data transmission for error correction control
US7975209B2 (en) * 2007-03-31 2011-07-05 Sandisk Technologies Inc. Non-volatile memory with guided simulated annealing error correction control
US8001320B2 (en) * 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US7903468B2 (en) * 2007-04-23 2011-03-08 Ramot At Telaviv University Ltd. Adaptive dynamic reading of flash memories
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US8234545B2 (en) * 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US7849383B2 (en) 2007-06-25 2010-12-07 Sandisk Corporation Systems and methods for reading nonvolatile memory using multiple reading schemes
WO2009002940A2 (en) * 2007-06-25 2008-12-31 Sandisk Corporation Systems and methods of reading nonvolatile memory
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7751237B2 (en) * 2007-09-25 2010-07-06 Sandisk Il, Ltd. Post-facto correction for cross coupling in a flash memory
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
KR101379820B1 (ko) * 2007-10-17 2014-04-01 삼성전자주식회사 멀티-비트 프로그래밍 장치와 메모리 데이터 검출 장치
US8527819B2 (en) * 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8068360B2 (en) * 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US7853841B2 (en) * 2007-10-29 2010-12-14 Micron Technology, Inc. Memory cell programming
KR101509836B1 (ko) 2007-11-13 2015-04-06 애플 인크. 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) * 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8245101B2 (en) 2007-12-27 2012-08-14 Sandisk Enterprise Ip Llc Patrol function used in flash storage controller to detect data errors
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) * 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
KR101515122B1 (ko) 2008-02-15 2015-04-27 삼성전자주식회사 저장된 데이터의 오류에 기반하여 기준 전압을 제어하는 방법과 메모리 데이터 검출 장치
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
KR101378365B1 (ko) * 2008-03-12 2014-03-28 삼성전자주식회사 하이브리드 메모리 데이터 검출 장치 및 방법
KR101414494B1 (ko) * 2008-03-17 2014-07-04 삼성전자주식회사 메모리 장치 및 메모리 데이터 읽기 방법
US8059457B2 (en) * 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
KR101506655B1 (ko) 2008-05-15 2015-03-30 삼성전자주식회사 메모리 장치 및 메모리 데이터 오류 관리 방법
KR101423052B1 (ko) * 2008-06-12 2014-07-25 삼성전자주식회사 메모리 장치 및 읽기 레벨 제어 방법
US8464131B2 (en) * 2008-06-23 2013-06-11 Ramot At Tel Aviv University Ltd. Reading a flash memory by constrained decoding
US8458563B2 (en) * 2008-06-23 2013-06-04 Ramot At Tel Aviv University Ltd. Reading a flash memory by joint decoding and cell voltage distribution tracking
US7808831B2 (en) * 2008-06-30 2010-10-05 Sandisk Corporation Read disturb mitigation in non-volatile memory
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
CN102203876B (zh) * 2008-09-30 2015-07-15 Lsi公司 用于存储器器件的软数据生成的方法和装置
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
KR101486980B1 (ko) * 2008-10-27 2015-01-30 삼성전자주식회사 불휘발성 메모리의 문턱 전압 산포의 분석 방법
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
CN101740123B (zh) * 2008-11-10 2012-04-04 扬智科技股份有限公司 存储器的数据保护方法
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
KR101642465B1 (ko) * 2008-12-12 2016-07-25 삼성전자주식회사 불휘발성 메모리 장치의 액세스 방법
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
KR101588293B1 (ko) 2009-02-17 2016-01-26 삼성전자주식회사 비휘발성 메모리 장치의 읽기 방법
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8102705B2 (en) 2009-06-05 2012-01-24 Sandisk Technologies Inc. Structure and method for shuffling data within non-volatile memory devices
US8027195B2 (en) * 2009-06-05 2011-09-27 SanDisk Technologies, Inc. Folding data stored in binary format into multi-state format within non-volatile memory devices
KR101626528B1 (ko) * 2009-06-19 2016-06-01 삼성전자주식회사 플래시 메모리 장치 및 이의 데이터 독출 방법
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8407564B2 (en) * 2009-07-15 2013-03-26 Intel Corporation Prediction and cancellation of systematic noise sources in non-volatile memory
US8077515B2 (en) * 2009-08-25 2011-12-13 Micron Technology, Inc. Methods, devices, and systems for dealing with threshold voltage change in memory devices
KR101678909B1 (ko) * 2009-09-17 2016-11-23 삼성전자주식회사 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법
US8243525B1 (en) 2009-09-30 2012-08-14 Western Digital Technologies, Inc. Refreshing non-volatile semiconductor memory by reading without rewriting
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US20110153912A1 (en) 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8468294B2 (en) 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8631304B2 (en) 2010-01-28 2014-01-14 Sandisk Il Ltd. Overlapping error correction operations
US8365041B2 (en) * 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
TWI455142B (zh) * 2010-04-08 2014-10-01 Silicon Motion Inc 快閃記憶體之資料讀取的方法以及資料儲存裝置
US9570162B2 (en) * 2010-04-08 2017-02-14 Silicon Motion, Inc. Data read method for flash memory
US8576625B1 (en) 2010-04-20 2013-11-05 Marvell International Ltd. Decoder parameter estimation using multiple memory reads
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8451664B2 (en) * 2010-05-12 2013-05-28 Micron Technology, Inc. Determining and using soft data in memory devices and systems
US8370719B2 (en) * 2010-05-21 2013-02-05 Intel Corporation Persistent moving read reference
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8417876B2 (en) 2010-06-23 2013-04-09 Sandisk Technologies Inc. Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems
US8868852B2 (en) 2010-07-07 2014-10-21 Marvell World Trade Ltd. Interface management control systems and methods for non-volatile semiconductor memory
US9141538B2 (en) 2010-07-07 2015-09-22 Marvell World Trade Ltd. Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive
US9135168B2 (en) 2010-07-07 2015-09-15 Marvell World Trade Ltd. Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9069688B2 (en) 2011-04-15 2015-06-30 Sandisk Technologies Inc. Dynamic optimization of back-end memory system interface
CN107093464A (zh) 2010-07-13 2017-08-25 桑迪士克科技有限责任公司 后台存储器***接口的动态优化
US8464135B2 (en) 2010-07-13 2013-06-11 Sandisk Technologies Inc. Adaptive flash interface
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
KR101727704B1 (ko) 2010-10-04 2017-04-18 삼성전자주식회사 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들
US8358542B2 (en) * 2011-01-14 2013-01-22 Micron Technology, Inc. Methods, devices, and systems for adjusting sensing voltages in devices
US8665650B2 (en) 2011-02-18 2014-03-04 Marvell World Trade Ltd. Reliability metrics management for soft decoding
US8472274B2 (en) * 2011-03-02 2013-06-25 Apple Inc. Using temperature sensors with a memory device
US8631288B2 (en) 2011-03-14 2014-01-14 Micron Technology, Inc. Methods, devices, and systems for data sensing in a memory system
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
US8510636B2 (en) * 2011-04-01 2013-08-13 Intel Corporation Dynamic read channel calibration for non-volatile memory devices
US8713380B2 (en) * 2011-05-03 2014-04-29 SanDisk Technologies, Inc. Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
US20130006896A1 (en) * 2011-06-28 2013-01-03 Seagate Technology Llc Training Datasets for Memory Devices
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US9047210B2 (en) 2011-09-15 2015-06-02 Sandisk Technologies Inc. Data storage device and method to correct bit values using multiple read voltages
US8938658B2 (en) 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
KR101892038B1 (ko) 2012-01-30 2018-08-27 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법
US9299455B2 (en) 2012-03-06 2016-03-29 Hitachi, Ltd. Semiconductor storage device having nonvolatile semiconductor memory
US8842473B2 (en) 2012-03-15 2014-09-23 Sandisk Technologies Inc. Techniques for accessing column selecting shift register with skipped entries in non-volatile memories
WO2013147803A1 (en) * 2012-03-29 2013-10-03 Intel Corporation Adaptive moving read references for memory cells
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US8514646B1 (en) * 2012-05-09 2013-08-20 Storart Technology Co. Ltd. Method for improving performance when flash memory storage device works in wide temperature range
KR101939234B1 (ko) 2012-07-23 2019-01-16 삼성전자 주식회사 메모리 장치, 메모리 시스템 및 상기 메모리 장치의 독출 전압의 제어 방법
CN102831026A (zh) * 2012-08-13 2012-12-19 忆正科技(武汉)有限公司 多层单元闪存及其软信息位读取电压阈值动态调整方法
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US8793558B2 (en) * 2012-08-27 2014-07-29 Freescale Semiconductor, Inc. Adaptive error correction for non-volatile memories
KR20140029582A (ko) * 2012-08-28 2014-03-11 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
KR101961318B1 (ko) 2012-09-07 2019-07-17 삼성전자주식회사 중앙처리장치에서의 점유시간을 최소화하는 방어코드 운영 방법 및 그에 따른 메모리 시스템
EP2709041B1 (en) * 2012-09-17 2014-11-12 Nxp B.V. Method and System for Monitoring the State of Health of an Electronic Data Carrier
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
KR20140045168A (ko) * 2012-10-08 2014-04-16 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 불휘발성 메모리 장치의 동작방법
US9225356B2 (en) * 2012-11-12 2015-12-29 Freescale Semiconductor, Inc. Programming a non-volatile memory (NVM) system having error correction code (ECC)
US9466382B2 (en) 2012-11-14 2016-10-11 Sandisk Technologies Llc Compensation for sub-block erase
KR102002385B1 (ko) * 2012-11-14 2019-07-23 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
US9021339B2 (en) * 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9257203B2 (en) 2012-12-06 2016-02-09 Micron Technology, Inc. Setting a default read signal based on error correction
US9032271B2 (en) * 2012-12-07 2015-05-12 Western Digital Technologies, Inc. System and method for lower page data recovery in a solid state drive
US9104591B2 (en) 2012-12-11 2015-08-11 Sandisk Technologies Inc. Data recovery on cluster failures and ECC enhancements with code word interleaving
US8988941B2 (en) 2012-12-18 2015-03-24 SanDisk Tehcnologies Inc. Select transistor tuning
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
KR102123946B1 (ko) 2012-12-28 2020-06-17 삼성전자주식회사 멀티 레벨 셀 메모리 장치 및 그것의 동작방법
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9349489B2 (en) 2013-01-11 2016-05-24 Sandisk Technologies Inc. Systems and methods to update reference voltages in response to data retention in non-volatile memory
US9070479B2 (en) 2013-01-21 2015-06-30 Sandisk Technologies Inc. Systems and methods of updating read voltages
US9318215B2 (en) * 2013-02-14 2016-04-19 Sandisk Technologies Inc. Systems and methods to update reference voltages of non-volatile memory
US9195587B2 (en) * 2013-03-07 2015-11-24 Sandisk Technologies Inc. Enhanced dynamic read process with single-level cell segmentation
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9367391B2 (en) * 2013-03-15 2016-06-14 Micron Technology, Inc. Error correction operations in a memory device
US9367246B2 (en) * 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
WO2014144043A1 (en) * 2013-03-15 2014-09-18 Marvell World Trade Ltd. Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9728263B2 (en) 2013-05-31 2017-08-08 Sandisk Technologies Llc Method and device for iteratively updating read voltages
US9697905B2 (en) 2013-05-31 2017-07-04 Sandisk Technologies Llc Updating read voltages using syndrome weight comparisons
CN104217761B (zh) * 2013-05-31 2018-12-14 慧荣科技股份有限公司 数据储存装置及其错误校正方法
US10475523B2 (en) 2013-05-31 2019-11-12 Western Digital Technologies, Inc. Updating read voltages triggered by the rate of temperature change
US9218890B2 (en) 2013-06-03 2015-12-22 Sandisk Technologies Inc. Adaptive operation of three dimensional memory
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9142324B2 (en) 2013-09-03 2015-09-22 Sandisk Technologies Inc. Bad block reconfiguration in nonvolatile memory
JP2015056198A (ja) 2013-09-13 2015-03-23 株式会社東芝 メモリチップ、記憶装置および読み出し方法
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9218886B2 (en) 2013-12-10 2015-12-22 SanDisk Technologies, Inc. String dependent parameter setup
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9430328B2 (en) 2014-01-24 2016-08-30 Stmicroelectronics S.R.L. Error correction in memory devices by multiple readings with different references
US9349490B2 (en) 2014-01-24 2016-05-24 Stmicroelectronics S.R.L. Error correction in differential memory devices with reading in single-ended mode in addition to reading in differential mode
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9898201B2 (en) 2014-03-24 2018-02-20 Hitachi, Ltd. Non-volatile memory device, and storage apparatus to reduce a read retry occurrence frequency and prevent read performance from lowering
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9384128B2 (en) 2014-04-18 2016-07-05 SanDisk Technologies, Inc. Multi-level redundancy code for non-volatile memory controller
KR102174030B1 (ko) 2014-05-13 2020-11-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
TWI562158B (en) 2014-10-13 2016-12-11 Silicon Motion Inc Non-volatile memory device and controller
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
US9558065B2 (en) * 2015-02-02 2017-01-31 Kabushiki Kaisha Toshiba Memory system including cache
US9959067B2 (en) 2015-02-04 2018-05-01 Sandisk Technologies Llc Memory block allocation by block health
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9928138B2 (en) * 2015-02-17 2018-03-27 Toshiba Memory Corporation Memory system
US10055267B2 (en) 2015-03-04 2018-08-21 Sandisk Technologies Llc Block management scheme to handle cluster failures in non-volatile memory
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US9502123B2 (en) 2015-04-21 2016-11-22 Sandisk Technologies Llc Adaptive block parameters
US9691473B2 (en) 2015-09-22 2017-06-27 Sandisk Technologies Llc Adaptive operation of 3D memory
US9401216B1 (en) 2015-09-22 2016-07-26 Sandisk Technologies Llc Adaptive operation of 3D NAND memory
US10284232B2 (en) * 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
CN107153507A (zh) * 2016-03-03 2017-09-12 北京兆易创新科技股份有限公司 一种基于NAND Flash的数据读取装置和方法
US9691492B1 (en) * 2016-09-29 2017-06-27 Intel Corporation Determination of demarcation voltage for managing drift in non-volatile memory devices
US10418097B2 (en) 2017-11-27 2019-09-17 Western Digital Technologies, Inc. Non-volatile storage system with read calibration
US11068186B2 (en) 2018-02-09 2021-07-20 Micron Technology, Inc. Providing recovered data to a new memory cell at a memory sub-system based on an unsuccessful error correction operation
CN108717385B (zh) * 2018-05-23 2020-09-29 中国科学院微电子研究所 一种用于闪存的数据恢复方法及***
US10811091B2 (en) 2018-10-12 2020-10-20 Western Digital Technologies, Inc. Adaptive processing for read threshold voltage calibration
US10553290B1 (en) 2018-10-30 2020-02-04 Micron Technology, Inc. Read disturb scan consolidation
CN111243654A (zh) * 2018-11-28 2020-06-05 北京知存科技有限公司 一种闪存芯片及其校准方法和装置
US11204828B2 (en) 2018-12-10 2021-12-21 Micron Technology, Inc. Management of corruptive read in memory systems
CN113316770B (zh) * 2019-01-25 2023-08-22 华为技术有限公司 数据修复方法和装置
CN112289365B (zh) * 2019-07-24 2024-02-23 华邦电子股份有限公司 半导体存储器装置
TWI766462B (zh) 2019-12-23 2022-06-01 美商美光科技公司 在記憶體裝置中基於計數器之讀取
CN113129993B (zh) * 2020-01-16 2024-06-11 华邦电子股份有限公司 内存装置及其数据读取方法
CN113517018B (zh) * 2020-04-10 2024-04-12 华邦电子股份有限公司 存储器装置的测试方法
US10991444B1 (en) * 2020-05-28 2021-04-27 Western Digital Technologies, Inc. Tiered read reference calibration
US11488682B2 (en) 2020-06-24 2022-11-01 Sandisk Technologies Llc Calibration for integrated memory assembly
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
CN114360628B (zh) * 2022-03-07 2022-08-16 阿里巴巴(中国)有限公司 闪存的检测方法以及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434825A (en) 1988-06-08 1995-07-18 Harari; Eliyahou Flash EEPROM system cell array with more than two storage states per memory cell
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US20030110361A1 (en) 2001-10-31 2003-06-12 Hitachi, Ltd. Nonvolatile memory

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04337857A (ja) 1991-05-15 1992-11-25 Yokogawa Electric Corp マイクロプロセッサ装置
JPH07122087A (ja) * 1993-10-25 1995-05-12 Hitachi Ltd Eepromエラーチェック方式
JPH09244961A (ja) * 1996-03-08 1997-09-19 Mitsubishi Electric Corp フラッシュata−pcカード
US7031214B2 (en) * 1999-01-14 2006-04-18 Silicon Storage Technology, Inc. Digital multilevel memory system having multistage autozero sensing
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
JP2003248631A (ja) 2002-02-26 2003-09-05 Nec Microsystems Ltd メモリ制御回路及びメモリ制御方法
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
US7399043B2 (en) * 2002-12-02 2008-07-15 Silverbrook Research Pty Ltd Compensation for uneven printhead module lengths in a multi-module printhead
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
JP4408696B2 (ja) 2003-12-26 2010-02-03 パナソニック株式会社 不揮発性半導体記憶装置
US7590918B2 (en) * 2004-09-10 2009-09-15 Ovonyx, Inc. Using a phase change memory as a high volume memory
US7581154B2 (en) * 2005-06-30 2009-08-25 Intel Corporation Method and apparatus to lower operating voltages for memory arrays using error correcting codes
US7975192B2 (en) * 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434825A (en) 1988-06-08 1995-07-18 Harari; Eliyahou Flash EEPROM system cell array with more than two storage states per memory cell
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US20030110361A1 (en) 2001-10-31 2003-06-12 Hitachi, Ltd. Nonvolatile memory

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140112968A (ko) * 2013-03-15 2014-09-24 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법, 비휘발성 메모리 장치, 및 메모리 시스템의 구동 방법
KR102131802B1 (ko) * 2013-03-15 2020-07-08 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법, 비휘발성 메모리 장치, 및 메모리 시스템의 구동 방법
KR20150006615A (ko) * 2013-07-09 2015-01-19 에스케이하이닉스 주식회사 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
KR102076231B1 (ko) * 2013-07-09 2020-02-12 에스케이하이닉스 주식회사 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
KR20150029404A (ko) * 2013-09-10 2015-03-18 에스케이하이닉스 주식회사 반도체 장치, 메모리 시스템 및 이의 동작 방법
KR102192910B1 (ko) * 2013-09-10 2020-12-18 에스케이하이닉스 주식회사 반도체 장치, 메모리 시스템 및 이의 동작 방법

Also Published As

Publication number Publication date
CN101529522B (zh) 2012-08-29
US20070091677A1 (en) 2007-04-26
WO2007049272A2 (en) 2007-05-03
JP2009515281A (ja) 2009-04-09
JP5123196B2 (ja) 2013-01-16
WO2007049272A3 (en) 2009-04-09
CN101529522A (zh) 2009-09-09
US20110231740A1 (en) 2011-09-22
US7954037B2 (en) 2011-05-31
EP1946210A2 (en) 2008-07-23
KR20080059461A (ko) 2008-06-27

Similar Documents

Publication Publication Date Title
KR100976989B1 (ko) 플래시 메모리에서의 오류 복구 방법
US10332607B2 (en) Methods of operating a nonvolatile memory device and the nonvolatile memory device thereof
US7945825B2 (en) Recovery while programming non-volatile memory (NVM)
US10153048B2 (en) Method and apparatus for reading data stored in flash memory by referring to binary digit distribution characteristics of bit sequences read from flash memory
US7924628B2 (en) Operation of a non-volatile memory array
US7751238B2 (en) Memory system protected from errors due to read disturbance and reading method thereof
KR100845526B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 프로그램방법
KR100882841B1 (ko) 읽기 디스터번스로 인한 비트 에러를 검출할 수 있는메모리 시스템 및 그것의 읽기 방법
US8332726B2 (en) Non-volatile semiconductor memory device
KR101633048B1 (ko) 메모리 시스템 및 그것의 데이터 처리 방법
US7594157B2 (en) Memory system with backup circuit and programming method
US9026757B2 (en) Non-volatile memory programming data preservation
US9471418B2 (en) Memory system that detects bit errors due to read disturbance and methods thereof
US8913428B2 (en) Programming non-volatile storage system with multiple memory die
JP2011238346A (ja) フラッシュメモリ内のエラーから復旧するための方法
JP6115740B1 (ja) 半導体記憶装置
US9490024B1 (en) Solid state storage device and reading control method thereof

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
FPAY Annual fee payment

Payment date: 20130723

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140721

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150716

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160720

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 9