KR101009545B1 - 쓰기 가능 추적 저장 장치 유닛의 에러 관리 - Google Patents

쓰기 가능 추적 저장 장치 유닛의 에러 관리 Download PDF

Info

Publication number
KR101009545B1
KR101009545B1 KR1020047006361A KR20047006361A KR101009545B1 KR 101009545 B1 KR101009545 B1 KR 101009545B1 KR 1020047006361 A KR1020047006361 A KR 1020047006361A KR 20047006361 A KR20047006361 A KR 20047006361A KR 101009545 B1 KR101009545 B1 KR 101009545B1
Authority
KR
South Korea
Prior art keywords
storage units
levels
data
data storage
quality
Prior art date
Application number
KR1020047006361A
Other languages
English (en)
Other versions
KR20040074979A (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 KR20040074979A publication Critical patent/KR20040074979A/ko
Application granted granted Critical
Publication of KR101009545B1 publication Critical patent/KR101009545B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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
    • 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
    • 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
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/14Dummy cell management; Sense reference voltage generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Measurement Of Current Or Voltage (AREA)
  • Electrotherapy Devices (AREA)

Abstract

데이터 저장장치를 제공하는 데이터 저장장치 유닛들을 위한 로직 레벨의 구별에 있어 사용되는 저장된 레벨들(예를 들어, 참조 레벨들)을 위한 에러 관리를 지닌 메모리 시스템(예를 들어, 메모리 카드)에 관한 설명이다. 상기 저장된 레벨들은 메모리 시스템에서 미리 지정된 저장장치 유닛들(예를 들어, 쓰기 가능 추적 저장장치 유닛들)내에 저장될 수 있다. 상기 메모리 시스템은 특히 이진 또는 다중-상태 데이터 저장장치를 제공하는 비-휘발성 메모리 상품이다.

Description

쓰기 가능 추적 저장 장치 유닛의 에러 관리{ERROR MANAGEMENT FOR WRITABLE TRACKING STORAGE UNITS}
당해 발명은 비-휘발성 데이터 저장을 위한 메모리 시스템에 관한 발명으로서, 특히, 멀티-상태 포맷으로 저장된 데이터를 읽기 위해 참조 레벨(reference levels)들을 이용하는 메모리 시스템에 관한 발명이다.
* 참고: 본 명세서에서 메모리의 동작과 관련하여 'reading'은 '읽기' 또는 '독출', 'writing'은 '쓰기' 또는 '기입', 'erasing'은 '지우기' 또는 '소거'로 표현하였다.
메모리 카드들은 일반적으로 다양한 상품들(예를 들어, 전기 제품들)과 함께 사용을 위한 디지털 데이터를 저장하는 데 이용된다. 메모리 카드들의 예들은 상기 데이터를 저장하기 위한 플래쉬 타입 또는 EEPROM 타입 메모리를 이용하는 플래쉬 카드들이다. 플래쉬 카드들은 상대적으로 작은 형식 요소를 지니고 그리고 카메라, 핸드-헬드 컴퓨터, 셋-탑 박스, 핸드-헬드 또는 다른 작은 오디오 플레이어들/레코더들(예를 들어, MP3 장치) 그리고 의학 모니터들과 같은 상품들을 위한 디지털 데이터를 저장하기 위해 사용되어 왔다. 플래쉬 카드의 주된 공급자는 미국, 캘리포니아주, Sunnyvale에 소재한 SanDisk Corporation 이다.
이러한 메모리 카드들은 더 큰 데이터의 양을 저장하기 위해 계속적으로 요구되고 있다. 결과적으로, 이러한 메모리 카드들 내의 개별적인 저장 장치 요소들은 효율적으로 다수의 데이터 비트들을 저장하기 위해 멀티 레벨들을 지원하도록 개발되어 왔다. 기존의 저장장치 요소들은 단지 두개의 상태만을 저장했으나, 다중 레벨 또는 고밀도 저장장치 요소들은 세개 이상의 상태(예를 들어, 네 상태)를 저장할 수 있다. 예를 들어, 오늘날의 다중 레벨 메모리 카드 내의 개별적 저장장치 요소들은 4개의 레벨들을 저장할 수 있어서, 단일 저장장치 요소로 하여금 2비트의 데이터로 역할하게 하고 있다. 데이터의 두 비트들과 같이 역할하는 것을 가능하게 한다. 이러한 다중 레벨들이 메모리 배열이 크기나 가격 면에서 대응하는 증가 없이 더 많은 데이터의 양을 실질적으로 저장하는 것을 허용하는 동안, 상기 메모리 배열로부터 저장된 데이터를 읽어 내는 것은 더 어려운 일이다.
비-휘발성 메모리들이 매우 인기가 있고 이용하기 좋다. 왜냐하면, 파워-오프 이후에도 데이터를 보유하기 때문이다. 그러나 비-휘발성 메모리들의 전하 보유는 완전하지 않다. 결과적으로, 메모리 셀을 프로그래밍한 후에, 상기 메모리 셀의 전압은 인가된 바이어스 전압, 메모리 장치 내에서 발생한 전자기장, 그리고 메모리 장치의 유전체 내에 갇힌 전하 등과 같은 다양한 영향에 기초하여 올라가거나 또는 떨어질 수 있다.
비-휘발성 메모리들이 각 저장장치 요소에서 다중-상태들을 지원 할 때, 다중-상태 메모리라 불린다. 메모리 셀들로부터 데이터를 읽을 때 상기 상태들 간을 구별하는 것을 돕기 위해 참조 레벨들이 필요하다. 관례적으로, 참조 셀들은 공장에서 프로그램 될 수 있는 글로벌 참조 전압을 저장하기 위해 메모리 장치 이내에서 사용되거나 또는 사용자 셀과 함께 또는 그 전에 쓰여 졌다. 그러나, 기입된 추적 저장 유닛 간의 임계 전압/전류 분배로 인해 정확하게 이러한 참조 전압들을 불러들이는 것이 용이하지 않다. 이러한 분배는 초기에 기입된 임계전압/전류, 전압 변동, 환경적 민감도에 의한 변화에 의해 초래되는 물리적 변화들, 그리고 빌트-인(built-in) 전기장/자기장으로부터의 전하 손실에 기인한다. 어떠한 경우이던지, 그 결과는 읽기 동작 중 에러 발생 확률의 증가로 나타난다.
따라서 메모리 장치의 수명에 비추어 다중 상태 메모리 셀들의 상태(로직 레벨)들을 신뢰성있게 불러들일 수 있도록, 참조 레벨들을 신뢰성있게 저장하고 획득하기 위한 개선된 접근법이 필요하다.
넓게 말하자면, 당해 발명은 데이터 저장장치를 제공하는 데이터 저장장치 유닛들을 위한 논리 레벨들의 구별에 사용되는 저장된 레벨들(예를 들어, 참조 레벨들)에 대한 에러 관리를 지닌 메모리 시스템(예를 들어, 메모리 카드)에 관한 것이다. 상기 저장된 레벨들은 상기 메모리 시스템 이내의 미리 지정된 저장장치 유닛들(예를 들어, 쓰기 가능 추적 유닛들) 내에 저장될 수 있다. 상기 메모리 시스템은 통상적으로 이진의(binary) 또는 다중-상태의 데이터 저장장치를 제공하는 비-휘발성 메모리 상품 또는 장치이다.
당해 발명은 다양한 방식으로 구현될 수 있다. 예를 들어, 당해 발명은 시스템, 장치 또는 방법의 형태로 구현될 수 있다. 다양한 실시예들이 아래에 설명된다.
메모리 상품의 저장장치 유닛의 상태를 위한 구별 레벨들을 결정하기 위한 방법으로서, 당해 발명의 한 실시예는, 다수의 미리 지정된 저장장치 유닛들로부터 저장된 레벨들을 읽는 단계, 상기 저장된 레벨들이 이탈되는지를 결정하는 단계, 상기 결정 단계가 이탈이 되는지를 결정하는 저장된 레벨 중의 하나 이상을 교정(correction)하는 단계, 그리고 상기 저장된 레벨들에 기초한 하나 이상의 구별 레벨들을 결정하는 단계들 이상을 포함한다.
메모리 장치에서 데이터 저장장치 유닛들과 사용되는 추적 저장장치 유닛들과 관련된 에러들을 관리하기 위한 방법으로서, 상기 방법의 한 실시예는, 다수의 추적 저장장치 유닛들로부터 참조 레벨들을 읽는 단계, 상기 참조 레벨들의 각각을 위한 퀄리티를 계산 하는 단계, 참조 레벨들 중의 어느 것을 위한 퀄리티가 수용가능한지를 결정하는 단계, 상기 결정 단계에서 수용할 수 없다고 결정한 참조 레벨들 중의 하나 이상을 교정하는 단계, 그리고 상기 참조 레벨들에 기초한 추적 저장장치 유닛들과 관련된 데이터 저장장치 유닛들을 위한 구별 레벨들을 결정하는 단계들 이상을 포함한다.
데이터 저장장치 유닛들과 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법으로서, 당해 발명의 한 실시예는, 특정 데이터 저장장치 유닛들과 특정 데이터 저장장치 유닛들과 관련된 추적 저장장치 유닛들로부터 참조 레벨들로부터 데이터 레벨들을 실질적으로 동시에 읽는 단계, 상기 참조 레벨들로부터 한개의 대표 참조 레벨을 연산하는 단계, 연산처리된 한개의 대표 참조 레벨에 기초한 상태 구별 레벨들을 결정하는 단계, 리퀘스터(requestor)를 위한 읽기 데이터를 요구하기 위해 상태 구별 레벨에 기초한 특정 데이터 저장장치 유닛들로부터 상기 데이터 레벨들의 상태들을 구별하는 단계, 상기 구별 단계와 실질적으로 동시에 발생하는 상기 참조 레벨들의 퀄리티 평가 단계, 상기 참조 레벨들의 퀄리티가 수용가능한지를 결정하는 단계, 상기 읽기 데이터를 상기 결정 단계가 상기 참조 레벨의 퀄리티가 수용가능하다고 결정하는 때에 리퀘스터로 향하는 단계, 그리고 상기 결정 단계가 상기 참조 레벨들의 퀄리티가 수용가능하지 않다고 결정할 때 참조 레벨들 중의 하나 이상을 교정하는 단계들 이상의 단계를 포함한다.
데이터 저장장치 유닛들과 관련된 추적 저장장치 유닛들로부터 데이터를 읽기 위한 방법으로서, 당해 발명의 또 다른 실시예는, 특정 데이터 저장장치 유닛들과 상기 특정 데이터 저장장치 유닛들과 관련된 추적 저장장치 유닛들로부터 데이터 레벨들을 실질적으로 동시에 읽는 단계, 상기 참조 레벨로부터 한개의 대표 참조 레벨을 연산하는 단계, 연산처리된 한개의 대표 참조 레벨에 기초하여 상태 결정 레벨들을 결정하는 단계, 리퀘스터를 위한 읽기 데이터를 획득하기 위한 상기 상태 구별 레벨들에 기초한 특정 데이터 저장장치 유닛들로부터 상기 데이터 레벨의 상태들을 구별하는 단계, 상기 참조 레벨들의 퀄리티를 계산하는 단계, 상기 참조 레벨들의 퀄리티가 수용가능한지를 결정하는 단계, 상기 결정 단계가 상기 참조 레벨들의 퀄리티가 수용가능한지를 결정할 때 보내는 것을 멈추는 단계, 그리고 상기 결정 단계가 상기 참조 레벨의 퀄리티가 수용가능하지 않은 것을 결정할 때 상기 참조 레벨들 중의 하나 이상을 교정하는 단계들 이상을 포함한다.
데이터 저장장치 유닛들과 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법으로, 당해 발명의 또 다른 실시예는, 특정 데이터 저장장치 유닛들과 상기 특정 데이터 저장장치 유닛들과 관련된 추적 저장장치 유닛들로부터 참조 레벨들로부터 데이터 레벨들을 실질적으로 동시에 읽는 단계, 상기 참조 레벨로부터 한개의 대표 참조 레벨을 연산하는 단계, 연산처리된 한개의 대표 참조 레벨에 기초하여 상태 구별 레벨들을 결정하는 단계, 리퀘스터를 위한 읽기 데이터를 획득하기 위한 상태 구별 레벨들에 기초한 특정 데이터 저장장치 유닛들로부터 데이터 레벨의 상태들을 구별하는 단계, 상기 참조 레벨들의 퀄리티를 평가하는 단계, 상기 참조 레벨들의 퀄리티가 수용가능한지를 결정하는 단계, 상기 읽기 데이터를 상기 결정 단계가 상기 참조 레벨의 퀄리티가 수용가능하다고 결정할 때 상기 리퀘스터에 의해 수신되어온 읽기 데이터를 취소하는 단계, 그리고 상기 결정 단계가 상기 참조 레벨의 퀄리티가 수용가능하지 않다고 결정할 때 상기 참조 레벨들 중의 하나 이상을 교정하는 단계 들을 포함한다.
데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법으로, 당해 발명의 또 다른 실시예는, 카운트를 초기화 하는 단계, 상기 특정 데이터 저장장치 유닛들과 관련된 추적 저장장치 유닛들로부터 참조 레벨들과 특정 데이터 저장장치 유닛들로부터 데이터 레벨들을 읽는 단계, 상기 참조 레벨들로부터 한개의 대표 참조 레벨을 연산하는 단계, 연산처리된 한개의 대표 참조 레벨에 기초하여 상태 구별 레벨들을 결정하는 단계, 리퀘스터를 위한 읽기 데이터를 획득하기 위해 상태 구별 레벨들에 기초한 특정 데이터 저장장치 유닛들로부터 데이터 레벨들의 상태들을 구별하는 단계, 상기 참조 레벨들의 퀄리티를 평가하는 단계, 상기 참조 레벨들의 퀄리티가 수용가능한지를 결정하는 단계, 카운트 제한과 함께 카운트를 비교하는 단계, 상기 참조 레벨들의 퀄리티가 수용가능하지 않고, 상기 카운트가 상기 카운트 제한을 초과하지 않음이 결정될 때 상기 참조 레벨들 중의 하나 이상을 교정하는 단계, 사기 카운트를 업데이트 하는 단계, 상기 참조 레벨들의 퀄리티가 수용가능하지 않고 그리고 상기 카운트가 상기 카운트 제한을 초과하지 않음이 결정 될 때 한 번 이상의 횟수들의 활동들의 비교를 통해 연산하는 것을 반복하는 단계, 그리고 상기 참조 레벨의 퀄리티가 수용가능하거나 또는 상기 카운트가 상기 카운트 제한을 초과하지 않음이 결정 될 때 상기 리퀘스터로 읽기 데이터를 향하는 단계들 이상을 포함 한다.
메모리 시스템으로서, 당해 발명의 한 실시예는, 비-휘발성 방법 내의 다중-상태 데이터 저장장치를 제공하는 다수의 데이터 저장장치 유닛들, 비-휘발성 방법 내의 참조 레벨들을 위한 저장장치를 제공하는 다수의 추적 저장장치 유닛들, 상기 참조 레벨들의 퀄리티를 평가하는 참조 레벨 에러 관리자, 그리고 상기 데이터 저장장치 유닛들과 상기 추적 저장장치 유닛들과 관련된 읽기, 쓰기 그리고 지우기 작동들을 제어하는 메모리 제어기 이상을 포함한다. 상기 메모리 제어기는 상태 구별 레벨들을 상기 데이터 저장장치 요소들이 읽히고 있는지를 결정하기 위해 이용한다. 상기 메모리 시스템은 또한 다수의 상기 참조 레벨들에 기초한 상기 메모리 제어기에 의해 이용을 위해 상태 구별 레벨들을 결정하기 위해 상태 구별 레벨 회로를 포함한다.
당해 발명의 다른 측면들과 이점들은 당해 발명의 원리들을, 실시예를 통해 설명하는 첨부하는 도면과 일치하는 상세한 설명을 통해 명백해질 것이다.
도 1 은 당해 발명의 한 실시예에 일치하는 메모리 시스템의 기능적 블락 다이어그램이다.
도 1B 는 당해 발명의 한 실시예에 일치하는 구별 레벨 프로세싱의 플로우 다이어그램이다.
도 2A 는 당해 발명의 한 실시예에 따른 읽기 요청 프로세싱의 플로우 다이어그램이다.
도 2B 는 당해 발명의 또 다른 실시예에 따른 읽기 요청 프로세싱의 플로우 다이어그램이다.
도 2C 는 당해 발명의 여전히 또 다른 실시예에 따른 읽기 요청 프로세싱 270의 플로우 다이어그램이다.
도 3 은 당해 발명의 또 다른 실시예에 따른 읽기 요청 프로세싱의 플로우 다이어그램이다.
당해 발명은 데이터 저장장치를 제공하는 데이터 저장장치를 위한 논리 레벨의 구별에 사용되는 저장된 레벨들(예를 들어, 참조 레벨들)에 대한 에러 관리를 지닌 메모리 시스템(예를 들어, 메모리 카드)에 관한 것이다. 상기 저장된 레벨들은 메모리 시스템 내의 미리 지정된 저장장치 유닛들(예를 들어, 쓰기 가능 추적 저장장치 유닛들) 내에 저장될 수 있다. 상기 메모리 시스템은 통상적으로 비-휘발성 메모리 상품이거나 또는 이진의 또는, 다중-상태의 데이터 저장장치를 제공하는 장치이다.
상기 메모리 시스템은, 예를 들어, 메모리 카드(플러그-인 카드와 같은), 메모리 스틱, 또는 일부 다른 반도체 메모리 상품과 관련될 수 있다. 메모리 카드들의 실시예들은 PC 카드(이전의 PCMCIA 장치), 플래쉬 카드, 플래쉬 디스크, 멀티미디어 카드, 그리고 ATA 카드를 포함한다.
당해 발명의 이 측면의 실시예들이 도 1A 내지 3과 관련하여 아래에 설명되었다. 그러나 당업자들은 이러한 도면들과 관련된 여기서 주어진 상세한 설명을 이미 이해하고 있을 것이다.
도 1A 는 당해 발명의 한 실시예에 따른 메모리 시스템(10)의 기능적 블락 다이어그램이다. 상기 메모리 시스템(10)은 다중-상태 저장장치를 이용하는 고밀도 데이터 저장장치를 제공한다. 상기 메모리 시스템(10)은 메모리 시스템(10)을 위한 작동들(예를 들어, 읽기, 지우기, 프로그램)을 제어하는 메모리 제어기(12)를 포함하고, 메모리 제어기(12)는 데이터 버스(13)를 통해 호스트와 통신한다. 상기 메모리 시스템(10)은 또한 비-휘발성 방식으로 메모리 시스템(10)을 위한 데이터를 저장하는 다중-상태 데이터 저장장치 유닛들(14)(예를 들어, 메모리 셀들)을 포함한다. 상기 다중-상태 데이터 저장장치 유닛들(14)은 데이터를 위한 고밀도 저장장치를 제공하며, 이때, 각 데이터 저장장치 유닛(데이터 저장장치 요소)은 세개 이상의 상태를 저장할 수 있다. 다시 말해서, 각 데이터 저장장치 유닛(예를 들어, 메모리 셀)은 한 비트보다 큰 데이터를 저장할 수 있는 능력이 있다. 상기 다중-상태 데이터 저장장치 유닛들(14)은 특히 블락들 내에 배열되고, 이는 한 실시예에서 가장 작은 쓰기 유닛을 표현한다.
상기 메모리 시스템(10)은 또한 비-휘발성 방식으로 참조 레벨을 저장하는 추적 저장장치 유닛들(16), 참조 레벨 에러 관리자(18) 그리고 상태 구별 레벨 회로(20)를 포함한다. 상기 추적 저장장치 유닛들(16)은 다중-상태 데이터 저장장치 유닛들(14)과 연계된다. 특히, 다수의 추적 저장장치 유닛들(16)은 다중-상태 데이터 저장장치 유닛들(14) 내의 각 메모리 블락과 연계된다. 기입되고 있는 데이터 블락과 관련된 이 블록에 연계된 다중 상태 데이터 저장장치 유닛(14)들이 기입될 때마다 참조 레벨을 이용하여 재-프로그래밍된다. 일반적으로, 상기 추적 저장장치 유닛들(16)은 고정된, 글로벌 참조 레벨들을 이용하여 프로그래밍되고, 이와 동시에, 다중-상태 데이터 저장장치 유닛들(14)이 참조 레벨들을 이용하여 재-프로그래밍된다. 추적 저장장치 유닛들(16) 내의 저장된 참조 레벨들은 상기 데이터 저장장치 유닛들(14) 그리고 상기 추적 저장장치 유닛들(16) 양자에 의한 상태(로직 레벨) 구별에 사용되는 임계 레벨들(예를 들어, 임계 전압)을 설정하는데 사용된다. 추적 저장장치 유닛들에 저장된 참조 레벨들은 데이터 저장장치 유닛들(14)이 독출될 때마다 독출된다. 그리고 이러한 참조 레벨들(예를 들어, 임계 전압들)은 데이터 저장장치 유닛들(14)의 저장된 논리 레벨을 결정하는데 이용된다.
비-휘발성 메모리 셀들은 수행되는 프로그램/소거 사이클의 수의 함수로 변하는 전하 보존 특징들을 지닌다. 관련 데이터 저장장치 유닛(14)들이 프로그래밍될 때마다 추적 저장장치 유닛(16)들을 재-프로그래밍함으로써, 추적 저장장치 유닛들(16)등이 관련 데이터 저장장치 유닛(14)들과 동일한 히스토리를, 따라서, 동일한 전하 보존 특징들을 발전시킨다. 다른 말로, 대응하는 데이터 저장장치 유닛(14)들과 동일한 횟수로 검색 저장장치 유닛(16)들이 소거되고 재-프로그래밍됨으로써, 전하 보존에 대한 사이클링 의존성이 설명되며, 따라서, 데이터 저장장치 유닛(14)들에 저장된 로직 레벨들을 구별하기 위한 유효 임계 마진을 유지할 수 있게 된다. 결과적으로, 전하 손실에 따른 상기 데이터 저장장치 유닛들(14)의 유효 임계 마진 저하가 적어진다. 따라서, 데이터 저장장치 유닛들(14)에 대한 저장된 논리 레벨들의 결정은 메모리 장치의 수명에 비추어 신뢰성있게 수행될 수 있다.
당해 발명의 한 실시예에 따르면, 다수의 추적 저장장치 유닛들(16)은 관련 데이터 저장장치 유닛(14)들이 기입될 때마다 지정 상태로 기입된다. 관련 데이터 저장장치 유닛(14)들이 독출될 때, 이에 관련된 복수의 검색 저장장치 유닛(16)들로부터 참조 레벨들이 독출되며, 상태 구별 레벨 회로(20)에 의해 이용되어 구별 포인트(상태 구별 레벨)을 결정하게 된다. 상기 구별 포인트들이 결정되면, 메모리 제어기(12)(또는 데이터 저장장치 유닛들 그 자체)는 데이터 저장장치 유닛들(14) 내의 저장된 논리 레벨들을 결정할 수 있다. 이러한 구별 포인트들이 결정되고 있을 때 또는 데이터 저장장치 유닛(14)에 저장된 로직 레벨들이 구별 포인트를 이용하여 결정되고 있을 때, 참조 레벨들(가령, 전압 또는 전류)의 퀄리티가 참조 레벨 에러 관리자(18)에 의해 검사될 수 있다. 수용불가한 퀄리티를 지녔다고 결정된 추적 저장장치 유닛(16)으로부터의 참조 레벨들 중의 어느 것도 교정될 수 있다(예를 들어, 버려지거나 또는 대체될 수 있다). 그 이후, 수용가능한 퀄리티를 지닌 추적 저장장치 유닛들(14)로부터의 참조 레벨들을 이용하여 상태 구별 레벨 회로(20)에 의해 새로운 구별 포인트들이 결정된다. 상기 새로운 구별 포인트들은 그 후 데이터 저장장치 유닛들(16)로부터 저장장치 로직 레벨들을 추출하는데 사용된다.
상기 참조 레벨 에러 관리자(18)와 상기 상태 구별 레벨 회로(20)가 분리된 성분들로 보임에도 불구하고, 이러한 성분들을 위한 회로가 함께 결합될 수도 있고, 또는, 메모리 제어기(12)에 결합될 수 있다. 일반적으로, 상기 메모리 시스템(10)은 고밀도와 비-휘발성 데이터 저장장치를 제공하고 다양한 방식으로 구현될 수 있다. 예를 들어, 상기 메모리 시스템(10)은 메모리 카드(예를 들어, 플러그-인 카드), 메모리 스틱, 또는 일부의 다른 반도체 메모리 상품으로서 구성될 수 있다.
도 1B는 당해 발명의 한 실시예에 따른 구별 레벨 프로세싱(100)의 플로우 다이어그램이다. 상기 구별 레벨 프로세싱(100)은, 예를 들어, 다중-상태 저장장치(예를 들어, 메모리 시스템(10))를 제공하는 메모리 시스템에 의해 수행된다. 다중-상태 저장장치를 이용함으로서 데이터에 대해 더 고밀도의 저장장치 용량을 얻을 수 있다. 왜냐하면, 각각의 데이터 저장장치 유닛(데이터 저장장치 요소)이 두 상태보다 더 많은 상태를 저장할 수 있기 때문이다. 다른 말로, 각 데이터 저장장치 유닛(예를 들어, 메모리 셀)이 한 비트보다 큰 데이터 비트를 저장할 수 있다. 그러므로 이러한 데이터 저장장치 유닛들을 "다중-상태 데이터 저장장치 유닛"이라 언급할 수 있다.
상기 구별 레벨 프로세싱(100)은 먼저, 추적 저장장치 유닛들로부터 참조 레벨들을 독출한다(102). 상기 추적 저장장치 유닛들은 다중-상태 저장장치에 의해 지원되는 다양한 상태들 간을 구별하는 데 사용되는 구별 레벨들을 결정함에 있어 사용되는 참조 레벨들을 제공하기 위해 상기 메모리 시스템 내에 제공된다. 참조 레벨들을 상기 추적 저장장치 유닛들로부터 읽은(102) 후에, 상기 참조 레벨들의 퀄리티가 평가된다(104). 여기서, 상기 참조 레벨의 퀄리티라 함은, 이러한 참조 레벨들이 다양한 영향들에 의해 저하되거나 파괴될 수 있기 때문에, 참조 레벨들을 얼마나 신뢰할 수 있는가의 척도를 의미한다.
다음으로, 참조 레벨의 퀄리티가 수용가능한지를 결정한다(106). 이 결정 단계(106)에서 상기 참조 레벨들의 퀄리티가 수용가능하지 않다고 결정될 때, 상기 구별 레벨 프로세싱(100)은 수용불가한 참조 레벨의 퀄리티를 교정하도록(110) 작동한다. 한 실시예에서, 상기 교정(110)은 수용불가한 퀄리티를 지닌 하나 이상의 참조 레벨들을 변경하거나 또는 폐기하도록 작동할 수 있다.
또 다른 방법으로, 상기 결정 단계(106)에서 참조 레벨들의 퀄리티가 수용가능하다고 결정할 때(또는 수용가능하지 않는 퀄리티를 지닌 참조 레벨을 교정(110)한 다음에), 상기 참조 레벨들은 그의 작동 내의 메모리 시스템에 의해 이용될 수 있다. 즉, 상기 결정(106)이 상기 참조 레벨의 퀄리티가 수용가능하다고 결정한 후에(또는 상기 참조 레벨의 퀄리티가 수용가능하지 않을 때 교정(110)한 후에), 상태 구별 레벨들이 결정된다(108). 여기서, 상기 추적 저장장치로부터 획득된 상기 참조 레벨들은 상태 구별 레벨들을 결정하기 위해 사용된다. 이러한 상태 구별 레벨들은 그 후 다중-상태 데이터 저장장치 유닛들에 저장될 수 있는 여러가지 상태 들 간을 구별하기 위해 메모리 시스템에 의해 이용된다. 상기 메모리 시스템의 각 데이터 저장장치 유닛(예를 들어, 메모리 셀)은 세개 이상의 상태들 중 한 상태씩에 대응하는 한개의 전하량을 저장할 수 있다. 그러므로 상기 상태 구별 레벨들은 상기 메모리 시스템 또는 다른 회로가 주어진 데이터 저장장치 유닛이 존재하는 특정 상태를 결정하는 것을 허용하는 전류 또는 전압 레벨들을 제공할 수 있다. 작동(108)에 이어, 상기 구별 레벨 프로세싱(100)은 완전해지고 끝난다.
도 2A 는 당해 발명의 한 실시예에 따른 읽기 요청 프로세싱(200)의 플로우 다이어그램이다. 상기 읽기 요청 프로세싱(200)은, 예를 들어, 리퀘스터가 상기 메모리 시스템 이내의 저장장치 위치들로부터 데이터를 읽기위해 요청해올 때 다중-상태 데이터 저장장치 유닛들을 지닌 메모리 시스템에 의해 수행된다.
상기 읽기 요청 프로세싱(200)은 데이터 저장장치 유닛들로부터 데이터 레벨들을, 그리고, 추적 저장장치 유닛들로부터 참조 레벨들을 읽는다. 여기서, 읽혀지고 있는 상기 데이터 레벨들을 지닌 데이터 저장장치 유닛들에 연계된 추적 저장장치 유닛들로부터 상기 참조 레벨들이 읽혀진다. 게다가, 상기 참조 레벨들은 상기 데이터 레벨들이 읽히는 것과 실질적으로 같은 시간에 읽혀진다. 상기 참조 레벨들은 하나 이상의 레벨들에 속할 수 있다. 한 실시예에서, 다수의 추적 저장장치 유닛들은 개선된 신뢰도를 위해 동일한 참조 레벨을 저장한다. 한 실시예에서, 예를 들어, 두 개 이상(예를 들어, 16)의 추적 저장장치 유닛들은 동일한 참조 레벨을 저장하기 위해 사용된다. 관련된 데이터 저장장치 유닛들에 기입/소거/독출이 이루어질 때, 그래서, 관련 데이터 저장 유닛들의 이용을 추적할 때, 상기 추적 저장장치 유닛들에 기입/소거/독출이 이루어진다. 결과적으로, 상기 추적 저장장치 유닛들은 상기 데이터 저장장치 유닛들과 동일한 히스토리, 따라서, 동일한 전하 보유 특징들을 발전시킨다. 게다가, 상기 추적 저장장치 유닛들은 상태 감지에 영향을 미칠 수 있는 전압 그리고 온도와 같은 동일한 조작상의 조건을 맞이한다. 결과적으로, 상기 데이터 저장장치 유닛들 내에 저장된 상기 데이터 레벨들의 구별이 더욱 신뢰할 수 있도록 만들어진다.
다음으로, 한개의 평균 참조 레벨(통틀어서 '대표 참조 레벨'이라고 함)이 연산된다(204). 여기서, 읽혀지는(202) 참조 레벨들은 한개의 평균 참조 레벨을 생성하기 위해 평균될 수 있다. 상기 평균 참조 레벨이 연산된 후(204), 상태 구별 레벨들이 상기 한개의 평균 참조 레벨에 기초하여 결정된다(206). 위에서 살펴본 바와 같이, 상태 구별 레벨들은 다중-상태 데이터 저장장치 유닛들에 의해 지원되는 다양한 상태들 간을 구별하기 위해 메모리 시스템에 의해 이용된다.
일단 상기 상태 구별 레벨들이 결정되면(206), 데이터 저장장치 유닛들의 상태는 읽기 데이터를 얻기 위해 상기 추적 저장장치로부터 상기 상태 구별 레벨들과 상기 데이터 저장장치 유닛들로부터 상기 데이터 레벨들을 이용하도록 구별 될 수 있다. 여기서, 이전의 읽기 데이터 레벨들(작동 202)은 상기 상태 구별 레벨들의 이용에 의해 데이터 저장장치 유닛들을 위해 상태를 구별하기 위해 검사될 수 있다. 상기 상태들의 구별(208)은, 효율적으로, 메모리 시스템이 읽기 요청 프로세싱(200)에 의해 읽혀지는 상기 읽기 데이터를 획득하는 것을 허용한다. 실질적으로, 상기 구별 (208)과 동시에, 상기 읽기 요청 프로세싱(200)은 또한 상기 참조 레벨들의 퀄리티를 평가한다. 한 실시예에서, 참조 레벨들의 퀄리티의 평가는 특히 상기 참조 레벨들의 각각에서 수행된다. 그러나 다른 실시예에서, 상기 참조 레벨들의 퀄리티는 그룹과 같이 두 개 이상의 참조 레벨에 기초하여 대신 수행될 수 있었다.
작동 (208과 210)에 뒤이어, 상기 결정(212)은 상기 참조 레벨의 퀄리티가 수용가능한지를 결정한다. 상기 결정(212)이 상기 퀄리티가 수용가능하지 않다고 결정하면, 상기 읽기 요청 프로세싱(200)은 낮은 퀄리티를 지닌 참조 레벨을 교정하기(214) 위해 작동한다. 여기서, 상기 교정(214)은 낮은 퀄리티를 지닌 하나 이상의 참조 레벨들을 다른 방법으로 폐기, 대체 또는 변경하기 위해 작동할 수 있다. 상기 작동(214)이후, 읽기 요청 프로세싱(200)은 상기 작동(204)과 연속하는 작동들을 반복하기 위해 되돌아가고, 그 결과 상기 상태 구별 레벨들은 교정(214)이후의 상기 참조 레벨들에 기초하여 재-결정되거나 이용될 수 있다. 대안적으로, 상기 결정(212)이 상기 퀄리티가 수용가능하다고 결정하면, 그 때는 상기 읽기 데이터는 읽기 작동을 위해 리퀘스터로 보내질 수 있다. 특히, 상기 리퀘스터는 메모리 시스템을 이용하는 호스트 장치이다. 상기 작동(216)이후에, 상기 읽기 요청 프로세싱(200)은 완전해지고 끝난다.
실질적으로 동시에 평가(210)와 구별(208)을 수행함으로써, 상기 참조 레벨의 퀄리티의 평가(210)는 상기 읽기 추적 셀 퀄리티가 수용가능하다고 간주될 때마다 상기 읽기 요청 프로세싱(200)에 대한 수행 페널티 없이 수행될 수 있다. 최적으로 디자인 되고 그리고 제조된 메모리 시스템과 함께, 상기 참조 레벨들은, 대부분의 경우, 처음의 읽기와 같이 수용가능한 퀄리티를 지닌다. 따라서 상기 참조 레벨의 퀄리티의 평가가 메모리 시스템의 수행(즉, 읽기 수행)에 상당한 영향을 끼치지 못할 것이다. 드문 경우에서, 하나 이상의 참조 레벨들이 수용가능하지 않는 퀄리티를 지닐 때, 수행 영향은 상기 참조 레벨들이 교정되어야만 하고(214) 그리고 그 후 작동들(204~208)은 다시 수행되어야만하기 때문에 부가될 것이다. 그러나 그것의 희소성 때문에, 상기 수행 영향은 최소화 된다.
도 2B는 당해 발명의 또 다른 실시예에 따른 읽기 요청 프로세싱(250)의 플로우 다이어그램이다. 상기 읽기 요청 프로세싱(250)은 일반적으로 작동들(202-210)의 다양한 작동에 대해 도 2A에서 표시된 읽기 요청 프로세싱(200)과 유사하다. 그러나 상기 읽기 요청 프로세싱(250)은 평가(210)가 끝나기 전에 상기 구별(208)을 끝내는 때에 또 다른 실시예에 속한다. 그러므로 이 실시예에서, 상기 읽기 데이터는 상기 평가가 진행하는 것으로 유지되는 동안 상기 리퀘스터로 송신되어지고 있는 것을 시작할 수 있다. 여기서, 필요하다면, 상기 평가(210)는 또한 상기 리퀘스터로 읽기 데이터의 보내짐의 일부 부분과 동시에 수행될 수 있다. 보다 바람직하게는, 상기 데이터 저장장치 유닛들의 상태의 구별(208)에 뒤따라, 결정(252)은 상기 참조 레벨들의 퀄리티가 수용가능한지를 결정한다. 상기 결정(252)이 상기 참조 레벨들의 퀄리티가 수용 할 수 없다고 결정할 때, 리퀘스터로 이미 보내진 읽기 데이터 중의 어느 것이던지 취소된다(254). 여기서, 상기 평가(210)가 상기 구별(210)이 다 수행될 때 수행되지 않기 때문에, 상기 읽기 데이터는 리퀘스터로 그의 전송을 시작할 수 있다. 만일 상기 구별(208) 상태들을 결정함에 있어 사용되는 상기 참조 레벨들의 퀄리티가 수용가능하지 않다고 판명되면, 이런 관점에서 보내어진 상기 읽기 데이터는 취소된다(254). 다음으로, 상기 읽기 요청 프로세싱(250)은 낮은 퀄리티를 가진 참조 레벨을 교정한다(256). 다시, 상기 교정(256)은 낮은 퀄리티를 지닌 상기 하나 이상의 참조 레벨들을 조정하거나 또는 폐기하는 것에 속할 수 있다. 상기 작동(256)이후에, 상기 읽기 요청 프로세싱(250)은 상기 결정 그리고 연속되는 작동들을 반복하기 위해 되돌아오고 그 결과 상기 참조 레벨들은, 교정된 것과 마찬가지로, 상기 상태 구별과 그리고 상기 다중-상태 데이터 저장장치 유닛들로부터 읽기 데이터를 재-결정함에 있어 이용될 수 있다.
반면, 상기 결정(252)이 참조 레벨의 퀄리티가 수용가능하다고(처음부터 그렇다고 가정하면) 결정할 때, 상기 읽기 데이터는 상기 리퀘스터 쪽으로 보내는 것을 시작할 수 있다. 이 지점에서, 상기 다중-데이터 저장장치 유닛들의 상태는 작동(208)에서 설립되어왔고, 따라서 상기 읽기 데이터의 보냄은 진행 될 수 있다. 일반적으로, 상기 결정(252)은 상기 데이터의 전송(258)과 함께 비동기적으로 수행된다. 상기 작동(258) 이후에, 결정(260)은 상기 읽기 데이터의 전송이 완성되었는지를 결정한다. 상기 결정(260)이 상기 읽기 데이터가 상기 리퀘스터로 완전히 보내지지 않았다고 결정할 때에, 상기 읽기 요청 프로세싱(250)은 상기 결정(252)과 연속하는 작동들을 반복하기 위해 되돌아오고 그 결과 상기 읽기 데이터의 전송(258)은 작동(254)에서 취소되든지 또는 상기 결정(260)에서 완성될 때까지 계속 될 수 있다. 일단 상기 읽기 데이터의 전송이 완성된 후에는(취소됨 없이), 상기 읽기 요청 프로세싱(250)은 상기 읽기 요청이 완전히 진행된 것과 같이 완전해 지고 끝난다.
도 2C는 당해 발명의 또 다른 실시예에 따른 읽기 요청 프로세싱(270)의 플로우 다이어그램이다. 상기 읽기 요청 프로세싱(270)은 일반적으로 다양한 작동들, 즉, 작동들(202-216)과 관련하여 도 2A에 표시된 읽기 요청 프로세싱(200)과 유사하다. 그러나 상기 읽기 요청 프로세싱(270)은 또한 루프 제어 특징을 포함한다. 상기 루프 제어 특징은 작동들(204-212)이 반복될 수 있는 횟수를 제어한다. 다른 말로, 수행 이유를 위해, 충분한 퀄리티를 획득하기 위한 시도에서 소비 될 수 있는 시간을 제한하는 것이 바람직하다. 읽기 요청 프로세싱(270)에 따라, 상기 프로세싱의 시작에 기초하여, 카운트는 미리 지정된 값(예를 들어, "0")까지 초기화 된다(272). 그 후, 작동들(208 그리고 210) 그 후에, 결정(274)은 카운트(예를 들어, 루프 카운트)가 루프 제한(예를 들어, "1")보다 더 큰가를 결정한다. 상기 카운트가 상기 루프 제한보다 크지 않으면, 작동(212)은 수행될 수 있다. 상기 결정(212)이 상기 퀄리티가 수용가능하지 않다고 결정할 때, 상기 작동(214)은 수행될 수 있다. 작동(214)에 뒤이어, 작동(204)로 루프가 되돌아가기 전에, 상기 카운트는 증가된다(276). 따라서 상기 루프 제한은 읽기 요청 프로세싱(270)을 상기 퀄리티가 수용가능하다고 여겨지지 않는 경우까지도 리퀘스터(또는 읽기 요청 프로세싱(270)을 끝낸다)로 읽기 데이터를 보내기 위해 읽기 요청 프로세싱(270)을 일으킬 수 있다. 상기 루프 제어 특징은 또한 도 2B의 읽기 요청 프로세싱(250)과 함께 사용될 수 있다.
더우기, 도 2A, 2B, 그리고 2C에 언급된 상기 읽기 요청 프로세싱(200,250 그리고 270)이 작동(204)에서 한개의 평균 참조 레벨의 연산을 표시하지만, 이러한 연산이 평균화만으로 제한되는 것은 아니다. 보다 일반적으로, 상기 참조 레벨들에 대한 한개의 대표 참조 레벨 연산은, 예를 들어, 최소값, 최대값, 평균 제곱근(RMS), 피크값, 평균값, 메디안, 모듈로스 그리고/또는 선형 회귀 분석(linear regression)과 같은 다양한 방법으로 수학적으로 연산처리될 수 있다(예를 들어, 통계적으로 연산처리된다). 참조 레벨들에 대해 수행되는 각종의 수학적 연산처리와 관계없이, 상기 상태 구별 레벨들은 연산처리되는 한개의 대표 참조 레벨에 기초하여 결정된다. 위에서 살펴본 바와 같이, 상기 상태 구별 레벨들은 상기 다중-상태 데이터 저장장치 유닛들에 의해 지원되는 다양한 상태들 간을 구별하기 위해 메모리 시스템에 의해 이용될 수 있다.
도 2A, 2B 그리고 2C에 표시된 상기 읽기 요청 프로세싱(200, 250 그리고 270)은 각각, 일반적으로 동일한 레벨을 효율적으로 저장하는 다수의 참조 레벨들로부터 획득된 단일 참조 레벨의 이용을 언급한다. 그러나 반드시 명심할 것은 상기 읽기 요청 프로세싱은 상기 다중-상태 메모리에 의해 이용되는 다수의 상태 구별 레벨들을 결정하기 위해 두 개 이상의 참조 레벨들을 이용한다. 이런 관점에서, 설립된 상기 참조 레벨들을 각각을 위한, 동일한 참조 레벨을 저장하는 다수의 추적 저장장치 유닛들이 사용된다. 예를 들어, 상기 추적 저장장치 유닛들로부터 상기 참조 레벨을 읽을 때, 제 1 다수의 추적 저장장치 유닛들은 제 1 다수의 참조 레벨에 대응하고 그리고 만일 둘 이상의 평균 참조 레벨들이 이용된다면 제 2 다수의 추적 저장장치 유닛들은 제 2 참조 레벨에 속하게 되는 등이다. 상기 상태 구별 레벨들의 구별은 그 이후 하나 이상의 참조 레벨들을 이용할 수 있다. 대안적으로, 참조 레벨들의 범위를 확장하기 위한 상기 추적 저장장치 유닛들 세트의 전체 모집단은, 예를 들어, 선형 회귀 방법론을 이용하여, 앙상블로서 통계적으로 연산처리될 수 있다.
당해 발명의 또 다른 실시예에 따르면, 메모리 시스템은 데이터를 읽을 때 또한 에러 수집 코드(ECC)들을 이용할 수 있다. ECC는 잘 알려져 있고 그리고 종종 증가된 신뢰성과 함께 데이터를 읽는 것을 가능하게 하도록 사용된다. ECC는 얼마나 자주 상기 퀄리티 평가 그리고/또는 참조 레벨들이 교정될 필요가 있는지를 최소화 하도록 사용된다. 상기 퀄리티 평가 그리고/또는 교정 프로세싱이 연산적 자원들과 시간을 요구하기 때문에, 그들의 이용을 최소화 하는 것은 상기 프로세싱에 의해 일어나는 수행 강하하는 것을 줄인다.
도 3은 당해 발명의 또 다른 실시예에 따른 읽기 요청 프로세싱(300)의 플로우 다이어그램이다. 상기 읽기 요청 프로세싱(300)은, 예를 들어, 상기 리퀘스터(예를 들어, 호스트)가 상기 메모리 시스템 이내의 저장장치 위치들로부터 데이터를 읽기 위해 요청되는 때에 다중-상태 데이터 저장장치 유닛들을 지니는 메모리 시스템에 의해 수행된다.
상기 읽기 요청 프로세싱(300)은 데이터 저장장치 유닛들로부터 데이터 레벨들과 마찬가지로 추적 저장장치 유닛들로부터 참조 레벨들을 처음으로 읽는다(202). 여기서, 상기 참조 레벨들은 읽혀지고 있는 상기 데이터 레벨들을 붙잡는 상기 데이터 저장장치 유닛들과 관련된 상기 추적 저장장치 유닛들로부터 읽혀진다. 게다가, 상기 참조 레벨들은 상기 데이터 레벨들이 읽혀지는 것과 실질적으로 동일한 시간에 읽혀진다. 상기 참조 레벨들은 하나 이상의 레벨들에 속할 수 있다. 한 실시예에서, 다수의 추적 저장장치 유닛들은 개선된 신뢰도를 위해 동일한 참조 레벨을 저장한다. 상기 추적 저장장치 유닛들이 그들과 관련된 데이터 저장장치가 쓰이고, 삭제되거나 또는 읽혀질 때 쓰이고, 삭제되며 읽혀지며, 따라서, 상기 관련된 데이터 저장장치 유닛들의 이용이 "추적"된다. 결과적으로, 상기 추적 저장장치 유닛들은 동일한 작동 조건들, 예를 들어, 상태 감지에 영향을 미칠 수 있는 전압과 온도 같은, 을 경험한다. 결과적으로, 상기 데이터 저장장치 유닛들 내에 저장된 상기 데이터 레벨들 구별의 신뢰도가 증가한다.
다음으로, 한개의 대표 참조 레벨이 연산된다(304). 여기서, 읽혀지는(302) 참조 레벨들을 연산처리하여, 연산처리된 한개의 대표 참조 레벨을 생성한다. 연산처리된 한개의 대표 참조 레벨을 생성하기 위한 참조 레벨들에 대한 상기 연산(204)이, 예를 들어, 최소값, 최대값, 평균 제곱근, 피크, 평균, 메디안, 모듈로스 그리고/또는 선형 회귀 분석(linear regression)와 같은 연산을 통해 다양한 방법으로 획득될 수 있다. 한개의 대표 참조 레벨이 연산된(304) 이후에, 상태 구별 레벨들이 상기 연산처리된 한개의 대표 참조 레벨에 기초하여 결정된다(306). 위에서 설명한 바와 같이, 상기 상태 구별 레벨들은 다중-상태 데이터 저장장치 유닛에 의해 지원되는 다양한 상태들 간을 구별하기 위해 메모리 시스템에 의해 이용된다.
일단 상기 상태 구별 레벨들이 결정되면(306), 상기 읽기 데이터는 상기 구별 레벨들과 에러 조건 코드들을 이용하여 상기 데이터 레벨들로부터 결정될 수 있 다(308). 여기서, 이전의 읽기 데이터 레벨들(작동 302)은 상태 구별 레벨의 이용에 의해 상기 데이터 저장장치 유닛들을 위한 상태를 결정하기 위해 검사된다. 부가적으로, 메모리 시스템에 의해 또한 지원되는 ECC는 더 많은 신뢰도가 상기 읽기 데이터를 결정하도록(308) 사용된다.
다음으로, 상기 ECC를 이용하여, 결정(310)은 데이터 에러가 상기 읽기 데이터를 결정함(308)에 있어 식별되는지를 결정한다. 특히, 상기 ECC가 상기 읽기 데이터를 실질적으로 설립하지 못할 때, 상기 ECC는 데이터 에로가 존재하는지를 표시한다. 상기 결정(310)이 데이터 에러가 존재하지 않는다고 결정하면, 상기 읽기 데이터는 리퀘스터로 보내진다(312). 반면, 상기 결정(310)이 데이터 에러가 존재한다고 결정하면, 상기 참조 레벨에 대한 퀄리티 평가 그리고/또는 교정은 상기 데이터 에러를 극복하기 위한 노력 내에서 수행될 수 있다. 보다 바람직하게, 상기 결정(310)이 데이터 에러가 존재한다고 결정할 때, 상기 참조 레벨들의 퀄리티가 평가된다(314). 한 실시예에서, 상기 참조 레벨들의 퀄리티의 평가는 특히 개별적으로 상기 참조 레벨들 각각에 대해 수행된다. 그러나 다른 실시예에서, 상기 참조 레벨들의 퀄리티는 대신 그룹으로서 두 개 이상의 상기 참조 레벨에 기초하여 수행될 수 있다. 결정(316)은 그 때 상기 참조 레벨의 퀄리티가 수용할 수 있는지를 결정한다. 상기 결정(316)이 퀄리티가 수용할 수 없다고 결정하면, 상기 읽기 요청 프로세싱(300)은 낮은 퀄리티를 지닌 상기 참조 레벨을 교정하기(318)위해 작동한다. 여기서, 상기 교정(318)은 낮은 퀄리티를 지닌 하나 이상의 참조 레벨들을 변경하거나 또는 폐기하기 위해 작동할 수 있다. 상기 작동(318)에 뒤이어, 상기 읽기 요청 프로세싱(300)은 작동(304)과 연속하는 작동들을 반복하기 위해 되돌아가고 그 결과 상기 상태 구별 레벨들은 상기 교정(318)에 뒤따르는 참조 레벨들에 기초한 상기 읽기 데이터를 재-결정하고 이용할 수 있다. 대안적으로, 상기 결정이 상기 퀄리티가 수용가능하다고 결정할 때, 상기 읽기 데이터는 잘못된 것이며 따라서 데이터 읽기 에러는 상기 리퀘스터로 전송된다(320). 특히, 상기 리퀘스터는 메모리 시스템을 이용하는 호스트 장치이다. 작동들(312 또는 320)에 뒤이어, 상기 읽기 요청 프로세싱(300)은 완전하고 끝이 난다. 도 2C에 보이는 루프 제어 특징은 또한 읽기 요청 프로세싱(300)과 함께 사용될 수 있다.
상기 읽기 요청 프로세싱(300)의 작동들(314-318)은 상기 ECC 신호들이 데이터를 읽음에 있어 실패할 때에만 수행된다. 결과적으로, 최적으로 디자인 된 시스템과 함께, 상기 작동들(314-318)은 드문 환경에서만 수행된다. 그 때 단지 드문 환경에서만 상기 읽기 프로세싱 수행은 퀄리티 평가의 수행 그리고/또는 작동들(314-318)의 교정 프로세싱에 따라 느려지거나 또는 강하된다.
위에서 제공된 당해 발명의 상당한 부분이 다중-상태 장치들에 속함에도 불구하고, 명심할 것은 당해 발명은 또한 이진의 저장장치들에도 적용할 수 있다. 다중-상태 장치들은 이를 행하나, 이진 저장 장치들보다 더 큰 저장 밀도를 제공한다.
당해 발명은 또한 위에서 설명한 메모리 시스템을 포함하는 전자 시스템에 속할 수 있다. 메모리 시스템들(예를 들어, 메모리 카드들)은 다양한 전자 상품들에서 사용을 위한 디지털 데이터의 저장을 위해 일반적으로 사용된다. 종종, 상기 메모리 시스템은 상기 전자 시스템으로부터 제거할 수 있고, 그 결과 상기 저장된 데이터는 운반 가능하다. 당해 발명에 따른 메모리 시스템들은 상대적으로 작은 형태 요소를 지닐 수 있고 그리고 카메라, 핸드-헬드 또는 다른 작은 오디오 플레이어들/레코더들(예를 들어, MP3 장치들), 그리고 의료 모니터들과 같은 전자 상품들을 위한 디지털 데이터를 저장하기 위해 사용된다.
당해 발명의 이점들은 다양하다. 다른 실시예들 또는 구현들은 하나 이상의 이점들을 산출한다. 당해 발명의 한 이점은 참조 레벨들을 위한 에러 관리가 제공된다는 점이다. 당해 발명의 또 다른 이점은 참조 레벨들을 위한 에러 관리가 상당한 수행 페널티 없이 수행될 수 있는 점이다. 당해 발명의 또 다른 이점은, 신뢰할 수 있고 높은 수행 메모리 시스템들이 획득될 수 있다는 점이다.

Claims (40)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법으로서, 상기 방법은,
    (a) 특정 데이터 저장장치 유닛들로부터 데이터 레벨들을, 그리고, 상기 특정 데이터 저장장치 유닛들과 관련된 추적 저장장치 유닛들로부터 참조 레벨들을 동시에 읽고,
    (b) 상기 참조 레벨들로부터 한개의 대표 참조 레벨을 연산하며,
    (c) 상기 한개의 대표 참조 레벨에 기초하여 상태 구별 레벨들을 결정하고,
    (d) 리퀘스터를 위한 독출 데이터를 획득하기 위해 상기 상태 구별 레벨들에 기초하여 상기 특정 데이터 저장장치 유닛들로부터 상기 데이터 레벨들의 상태를 구별하며,
    (e) 상기 참조 레벨들의 퀄리티를 평가하고,
    (f) 상기 참조 레벨들의 퀄리티가 수용가능한지를 결정하며,
    (g) 상기 참조 레벨들의 퀄리티가 수용가능하다고 상기 결정 단계(f)가 결정할 때, 상기 리퀘스터에게 독출 데이터를 전송하고, 그리고,
    (h) 상기 참조 레벨의 퀄리티가 수용불가하다고 상기 결정 단계(f)에서 결정될 경우, 상기 전송 단계(g)를 멈추고 참조 레벨들 중 한개 이상을 교정하며, 또는, 참조 레벨들의 퀄리티가 수용불가능하다고 상기 결정 단계(f)에서 결정될 경우, 리퀘스터 측에서 수신한 독출 데이터를 취소시키고 참조 레벨들 중 한개 이상을 교정하는
    단계를 포함하는 것을 특징으로 하는 데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법.
  19. 제 18 항에 있어서, 상기 방법은,
    (i) 상기 교정단계(h)에 뒤이어, 상기 결정 단계(f)가 상기 참조 레벨의 퀄리티가 수용불가하다고 결정할 때, 상기 연산 단계(b)부터 상기 교정 단계(h)까지를 한 번 이상 반복하는
    단계를 포함하는 것을 특징으로 하는 데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법.
  20. 제 18 항 또는 19 항에 있어서, 상기 방법은, 상기 멈춤 과정(h)은 상기 멈춤 과정(h)에 앞서 상기 리퀘스터가 수신해온 독출 데이터를 취소하는 과정을 포함하는 것을 특징으로 하는 데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법.
  21. 삭제
  22. 삭제
  23. 제 18 항에 있어서, 상기 참조 레벨들의 퀄리티가 수용가능한지에 대한 상기 결정 단계(f)는
    - 각각의 참조 레벨을 상기 한개의 대표 참조 레벨과 비교하는
    단계를 포함하는 것을 특징으로 하는 데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법.
  24. 제 18 항에 있어서,
    독출 단계(a)에서 독출되는 참조 레벨들은 제 1 참조 레벨과 제 2 참조 레벨에 속하고,
    상기 연산 단계(b)는 상기 제 1 참조 레벨에 속한 참조 레벨들로부터 한개의 제 1 대표 참조 레벨을 연산하고, 그리고 상기 제 2 참조 레벨에 속한 참조 레벨들로부터 한개의 제 2 대표 참조 레벨을 연산하며, 그리고,
    상기 결정 단계(c)는 제 1 대표 참조 레벨과 제 2 대표 참조 레벨에 기초하여 상태 구별 레벨들을 결정하는
    단계를 포함하는 것을 특징으로 하는 데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법.
  25. 제 24 항에 있어서, 상기 참조 레벨들의 퀄리티가 수용가능한지를 결정하는 상기 단계(f)는,
    - 제 1 참조 레벨에 속한 참조 레벨들 각각을 상기 제 1 대표 참조 레벨과 비교하고, 그리고,
    - 제 2 참조 레벨에 속한 참조 레벨들 각각을 상기 제 2 대표 참조 레벨과 비교하는
    단계를 포함하는 것을 특징으로 하는 데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법.
  26. 제 25 항에 있어서, 상기 메모리 장치는 비-휘발성, 다중-상태 데이터 저장장치를 제공하는 메모리 카드인 것을 특징으로 하는 데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법.
  27. 제 25 항에 있어서, 상기 연산 단계(b)는 대표 참조 레벨을 연산하기 위해 참조 레벨들을 평균하도록 작동하는 것을 특징으로 하는 데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법.
  28. 제 25 항에 있어서, 상기 연산 단계(b)는 대표 참조 레벨을 연산함에 있어 참조 레벨들과 관련된 최소값, 최대값, 평균 제곱근(RMS), 피크, 평균, 미디안, 모듈로스, 그리고 선형 회귀 분석(linear regression) 중 하나 이상을 수행하는 것을 특징으로 하는 데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법.
  29. 제 18 항에 있어서,
    독출 데이터를 획득하기 위한 상기 구별 단계(d)는 에러 교정 코드 프로세싱을 이용하여 수행되며,
    상기 방법은,
    데이터 에러가 상기 에러 코드 프로세싱에 의해 표시되는지를 결정하고, 그리고,
    상기 데이터 에러를 감지할 때, 수용불가한 퀄리티를 지닌 상기 참조 레벨들 중의 하나 이상을 교정하는
    단계를 포함하는 것을 특징으로 하는 데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법.
  30. 제 29 항에 있어서, 상기 방법은,
    참조 레벨들 중 하나 이상을 교정하는 단계 이후에 상기 연산 단계(b), 상기 결정 단계(c) 그리고 상기 결정 단계(d)를 반복하는
    단계를 포함하는 것을 특징으로 하는 데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법.
  31. 제 18 항에 있어서,
    (i) 독출 단계(a) 이전에 카운트를 초기화하고,
    (j) 카운트를 카운티 임계치와 비교하며,
    (k) 상기 결정 단계(g)가 상기 참조 레벨들의 퀄리티가 수용가능하지 않음을 결정할 때 그리고 상기 비교 단계(j)에서 상기 카운트가 상기 카운트 임계치를 초과하지 않는다고 결정될 때, 상기 참조 레벨들 중 한개 이상을 교정하고,
    (l) 상기 카운트를 증분(increment)시키며,
    (m) 상기 결정 단계(g)에서 상기 참조 레벨의 상기 퀄리티가 수용불가함을 결정하고, 그리고 상기 비교 단계(h)에서 상기 카운트가 상기 카운트 임계치를 초과하지 않는다고 결정할 때, 상기 연산 단계(b)부터 상기 비교 단계(j)까지를 한 번 이상 반복하고, 그리고,
    (n) 상기 결정 단계(g)에서 상기 참조 레벨의 퀄리티가 수용가능하다고 결정 할 때, 또는 상기 비교 단계(h)에서 상기 카운트가 상기 카운트 임계치를 넘지 않는다고 결정할 때 상기 리퀘스터에게 상기 독출 데이터를 전송하는
    단계를 포함하는 것을 특징으로 하는 데이터 저장장치 유닛들 그리고 관련된 추적 저장장치 유닛들을 지니는 메모리 장치로부터 데이터를 읽기 위한 방법.
  32. 메모리 시스템으로서,
    - 비-휘발성 방식으로 다중-상태 데이터 저장장치를 제공하는 각각의 데이터 저장장치 유닛들로 구성되는 다수의 데이터 저장장치 유닛들,
    - 비-휘발성 방식으로 참조 레벨들을 위한 저장장치를 제공하는 각각의 추적 저장장치 유닛들로 구성되는 다수의 추적 저장장치 유닛들,
    - 상기 추적 저장장치 유닛들로부터 상기 참조 레벨들을 수신하도록 연결된 참조 레벨 에러 관리자로서, 상기 참조 레벨 에러 관리자는 상기 참조 레벨들의 퀄리티를 평가하는, 상기 참조 레벨 에러 관리자, 그리고,
    - 상기 데이터 저장장치 유닛들 및 상기 추적 저장장치 유닛들에 연결된 메모리 제어기로서, 상기 메모리 제어기는 상기 데이터 저장장치 유닛들 및 상기 추적 저장장치 유닛들과 관련된 독출, 기입 그리고 소거 작동들을 제어하도록 작동하며, 상기 메모리 제어기는 독출되고 있는 상기 데이터 저장장치 요소들의 상태를 결정하기 위해 상태 구별 레벨들을 이용하는, 상기 메모리 제어기
    를 포함하며, 상기 메모리 시스템은,
    상기 참조 레벨들의 퀄리티가 수용가능한지를 결정하며,
    상기 참조 레벨들의 퀄리티가 수용가능하다고 결정되면, 리퀘스터에게 독출 데이터를 전송하고, 그리고,
    상기 참조 레벨의 퀄리티가 수용불가하다고 결정될 경우, 독출 데이터의 전송을 멈추고 참조 레벨들 중 한개 이상을 교정하며, 또는, 참조 레벨들의 퀄리티가 수용불가능하다고 결정될 경우, 리퀘스터 측에서 수신한 독출 데이터를 취소시키고 참조 레벨들 중 한개 이상을 교정하도록
    동작하는 것을 특징으로 하는 메모리 시스템.
  33. 제 32 항에 있어서, 상기 메모리 시스템은,
    - 상기 추적 저장장치 유닛들, 상기 참조 레벨 에러 관리자, 그리고 상기 메모리 제어기에 연결된 상태 구별 레벨 회로로서, 상기 상태 구별 레벨 회로는 다수의 참조 레벨들에 기초하여 상기 메모리 제어기에 의한 사용을 위해 상태 구별 레벨들을 결정하기 위해 작동하는, 상기 상태 구별 레벨 회로
    를 포함하는 것을 특징으로 하는 메모리 시스템.
  34. 제 32 항 또는 33항에 있어서, 상기 참조 레벨 에러 관리자는 수용불가한 퀄리티를 지닌 하나 이상의 참조 레벨들을 교정하는 것을 특징으로 하는 메모리 시스템.
  35. 제 32 항 또는 33항에 있어서, 상기 메모리 시스템은 메모리 카드인 것을 특징으로 하는 메모리 시스템.
  36. 제 35 항에 있어서, 상기 참조 레벨 에러 관리자와 상태 구별 레벨 회로가, 또는 그 중 하나가 상기 메모리 제어기 내에 제공되는 것을 특징으로 하는 메모리 시스템.
  37. 삭제
  38. 제 36 항에 있어서,
    상기 메모리 제어기는 데이터를 상기 데이터 저장장치 유닛들의 블락에 기입하게 하고, 그리고,
    상기 데이터 저장장치 유닛들의 상기 블락과 관련된 상기 추적 저장장치 유닛들의 세트는 상기 데이터 저장장치 유닛들의 상기 블락이 기입될 때마다 지정된 참조 레벨들을 이용하여 기입되는 것을 특징으로 하는 메모리 시스템.
  39. 제 38 항에 있어서, 상기 추적 저장장치 유닛들의 상기 세트는 상기 데이터 저장장치 유닛들의 블락이 독출될 때마다 독출되는 것을 특징으로 하는 메모리 시스템.
  40. 제 39 항에 있어서, 상기 메모리 시스템은,
    - 독출되고 있는 상기 데이터 저장장치 요소의 상태 결정을 돕는 에러 교정 유닛
    을 추가로 포함하는 것을 특징으로 하는 메모리 시스템.
KR1020047006361A 2001-11-02 2002-10-30 쓰기 가능 추적 저장 장치 유닛의 에러 관리 KR101009545B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/053,339 2001-11-02
US10/053,339 US6678192B2 (en) 2001-11-02 2001-11-02 Error management for writable tracking storage units
PCT/US2002/034942 WO2003041083A1 (en) 2001-11-02 2002-10-30 Error management for writable tracking storage units storing reference values

Publications (2)

Publication Number Publication Date
KR20040074979A KR20040074979A (ko) 2004-08-26
KR101009545B1 true KR101009545B1 (ko) 2011-01-18

Family

ID=21983519

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047006361A KR101009545B1 (ko) 2001-11-02 2002-10-30 쓰기 가능 추적 저장 장치 유닛의 에러 관리

Country Status (9)

Country Link
US (1) US6678192B2 (ko)
EP (1) EP1440447B1 (ko)
JP (1) JP4398249B2 (ko)
KR (1) KR101009545B1 (ko)
CN (1) CN1578988B (ko)
AT (1) ATE383648T1 (ko)
DE (1) DE60224552T2 (ko)
TW (1) TWI285807B (ko)
WO (1) WO2003041083A1 (ko)

Families Citing this family (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US6992932B2 (en) * 2002-10-29 2006-01-31 Saifun Semiconductors Ltd Method circuit and system for read error detection in a non-volatile memory array
US6963505B2 (en) * 2002-10-29 2005-11-08 Aifun Semiconductors Ltd. Method circuit and system for determining a reference voltage
US7237074B2 (en) * 2003-06-13 2007-06-26 Sandisk Corporation Tracking cells for a memory system
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7257025B2 (en) * 2004-12-09 2007-08-14 Saifun Semiconductors Ltd Method for reading non-volatile memory cells
KR100707200B1 (ko) * 2005-07-22 2007-04-13 삼성전자주식회사 핀-타입 채널 영역을 갖는 비휘발성 메모리 소자 및 그제조 방법
US7546515B2 (en) * 2005-12-27 2009-06-09 Sandisk Corporation Method of storing downloadable firmware on bulk media
US7536627B2 (en) * 2005-12-27 2009-05-19 Sandisk Corporation Storing downloadable firmware on bulk media
US8725929B1 (en) 2006-11-06 2014-05-13 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
US8645793B2 (en) 2008-06-03 2014-02-04 Marvell International Ltd. Statistical tracking for flash memory
WO2007132452A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Reducing programming error in memory devices
WO2007132456A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
WO2007132457A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
US7852690B2 (en) * 2006-05-15 2010-12-14 Apple Inc. Multi-chip package for a flash memory
US7568135B2 (en) * 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
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
US7511646B2 (en) * 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
US7551486B2 (en) 2006-05-15 2009-06-23 Apple Inc. Iterative memory cell charging based on reference cell value
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
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
US7911834B2 (en) * 2006-05-15 2011-03-22 Apple Inc. Analog interface for a flash memory die
US7613043B2 (en) * 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US7716538B2 (en) 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
WO2008039692A2 (en) * 2006-09-27 2008-04-03 Sandisk Corporation Memory with cell population distribution assisted read margining
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
KR100826500B1 (ko) * 2006-10-23 2008-05-02 삼성전자주식회사 비휘발성 반도체 메모리 장치 및 상기 비휘발성 반도체메모리 장치의 데이터 복구 방법
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
WO2008053473A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Memory cell readout using successive approximation
US7941590B2 (en) * 2006-11-06 2011-05-10 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
US7564716B2 (en) * 2006-11-16 2009-07-21 Freescale Semiconductor, Inc. Memory device with retained indicator of read reference level
US7865797B2 (en) * 2006-11-16 2011-01-04 Freescale Semiconductor, Inc. Memory device with adjustable read reference based on ECC and method thereof
US7545681B2 (en) * 2006-11-27 2009-06-09 Sandisk Corporation Segmented bitscan for verification of programming
US7440319B2 (en) * 2006-11-27 2008-10-21 Sandisk Corporation Apparatus with segmented bitscan for verification of programming
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) * 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
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
WO2008111058A2 (en) * 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
US7808834B1 (en) 2007-04-13 2010-10-05 Marvell International Ltd. Incremental memory refresh
US8001320B2 (en) * 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8234545B2 (en) * 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
KR100882841B1 (ko) * 2007-06-19 2009-02-10 삼성전자주식회사 읽기 디스터번스로 인한 비트 에러를 검출할 수 있는메모리 시스템 및 그것의 읽기 방법
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
US8031526B1 (en) 2007-08-23 2011-10-04 Marvell International Ltd. Write pre-compensation for nonvolatile memory
US8189381B1 (en) 2007-08-28 2012-05-29 Marvell International Ltd. System and method for reading flash memory cells
US8085605B2 (en) 2007-08-29 2011-12-27 Marvell World Trade Ltd. Sequence detection for flash memory with inter-cell interference
US8174905B2 (en) * 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
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
US8527819B2 (en) * 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8270246B2 (en) * 2007-11-13 2012-09-18 Apple Inc. Optimized selection of memory chips in multi-chips memory devices
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
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
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
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
KR101423052B1 (ko) 2008-06-12 2014-07-25 삼성전자주식회사 메모리 장치 및 읽기 레벨 제어 방법
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
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
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
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
US8248831B2 (en) * 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
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
US8199576B2 (en) * 2009-04-08 2012-06-12 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a double-global-bit-line architecture
US8351236B2 (en) 2009-04-08 2013-01-08 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a single-sided word line architecture
US7983065B2 (en) * 2009-04-08 2011-07-19 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines
EP2417598B1 (en) 2009-04-08 2017-03-29 SanDisk Technologies LLC Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a double-global-bit-line architecture
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
TWI412036B (zh) * 2009-07-22 2013-10-11 Silicon Motion Inc 資料讀取的方法及資料儲存裝置
KR101603099B1 (ko) * 2009-10-01 2016-03-28 삼성전자주식회사 불안정 메모리 셀 산포를 검출하는 메모리 시스템 및 상기 불안정 메모리 셀 산포 검출방법
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
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
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8526237B2 (en) 2010-06-08 2013-09-03 Sandisk 3D Llc Non-volatile memory having 3D array of read/write elements and read/write circuits and method thereof
US20110297912A1 (en) 2010-06-08 2011-12-08 George Samachisa Non-Volatile Memory Having 3d Array of Read/Write Elements with Vertical Bit Lines and Laterally Aligned Active Elements and Methods Thereof
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines 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
US8625322B2 (en) 2010-12-14 2014-01-07 Sandisk 3D Llc Non-volatile memory having 3D array of read/write elements with low current structures and methods thereof
US9227456B2 (en) 2010-12-14 2016-01-05 Sandisk 3D Llc Memories with cylindrical read/write stacks
US8885381B2 (en) 2010-12-14 2014-11-11 Sandisk 3D Llc Three dimensional non-volatile storage with dual gated vertical select devices
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US9269425B2 (en) 2011-12-30 2016-02-23 Sandisk 3D Llc Low forming voltage non-volatile storage device
US9171584B2 (en) 2012-05-15 2015-10-27 Sandisk 3D Llc Three dimensional non-volatile storage with interleaved vertical select devices above and below vertical bit lines
US9281029B2 (en) 2012-06-15 2016-03-08 Sandisk 3D Llc Non-volatile memory having 3D array architecture with bit line voltage control and methods thereof
US9147439B2 (en) 2012-06-15 2015-09-29 Sandisk 3D Llc Non-volatile memory having 3D array architecture with staircase word lines and vertical bit lines and methods thereof
CN103578532B (zh) * 2012-08-01 2016-08-10 旺宏电子股份有限公司 存储装置的操作方法与存储器阵列及其操作方法
WO2014138124A1 (en) 2013-03-04 2014-09-12 Sandisk 3D Llc Vertical bit line non-volatile memory systems and methods of fabrication
US9064547B2 (en) 2013-03-05 2015-06-23 Sandisk 3D Llc 3D non-volatile memory having low-current cells and methods
US9165933B2 (en) 2013-03-07 2015-10-20 Sandisk 3D Llc Vertical bit line TFT decoder for high voltage operation
US9105468B2 (en) 2013-09-06 2015-08-11 Sandisk 3D Llc Vertical bit line wide band gap TFT decoder
US9362338B2 (en) 2014-03-03 2016-06-07 Sandisk Technologies Inc. Vertical thin film transistors in non-volatile storage systems
US9379246B2 (en) 2014-03-05 2016-06-28 Sandisk Technologies Inc. Vertical thin film transistor selection devices and methods of fabrication
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US9123392B1 (en) 2014-03-28 2015-09-01 Sandisk 3D Llc Non-volatile 3D memory with cell-selectable word line decoding
US9627009B2 (en) 2014-07-25 2017-04-18 Sandisk Technologies Llc Interleaved grouped word lines for three dimensional non-volatile storage
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US9978456B2 (en) 2014-11-17 2018-05-22 Sandisk Technologies Llc Techniques for reducing read disturb in partially written blocks of non-volatile memory
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
US9449700B2 (en) 2015-02-13 2016-09-20 Sandisk Technologies Llc Boundary word line search and open block read methods with reduced read disturb
US9450023B1 (en) 2015-04-08 2016-09-20 Sandisk Technologies Llc Vertical bit line non-volatile memory with recessed word lines
US9653154B2 (en) 2015-09-21 2017-05-16 Sandisk Technologies Llc Write abort detection for multi-state memories
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275419B1 (en) * 1992-01-14 2001-08-14 Sandisk Corporation Multi-state memory

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0617363B1 (en) 1989-04-13 2000-01-26 SanDisk Corporation Defective cell substitution in EEprom array
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US5272669A (en) 1991-02-20 1993-12-21 Sundisk Corporation Method and structure for programming floating gate memory cells
JP2856621B2 (ja) 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5828601A (en) 1993-12-01 1998-10-27 Advanced Micro Devices, Inc. Programmed reference
US5712179A (en) 1995-10-31 1998-01-27 Sandisk Corporation Method of making triple polysilicon flash EEPROM arrays having a separate erase gate for each row of floating gates
US5717632A (en) 1996-11-27 1998-02-10 Advanced Micro Devices, Inc. Apparatus and method for multiple-level storage in non-volatile memories
US6282145B1 (en) 1999-01-14 2001-08-28 Silicon Storage Technology, Inc. Array architecture and operating methods for digital multilevel nonvolatile memory integrated circuit system
US6103573A (en) 1999-06-30 2000-08-15 Sandisk Corporation Processing techniques for making a dual floating gate EEPROM cell array
US6538922B1 (en) 2000-09-27 2003-03-25 Sandisk Corporation Writable tracking cells

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275419B1 (en) * 1992-01-14 2001-08-14 Sandisk Corporation Multi-state memory

Also Published As

Publication number Publication date
KR20040074979A (ko) 2004-08-26
ATE383648T1 (de) 2008-01-15
TW200300227A (en) 2003-05-16
JP4398249B2 (ja) 2010-01-13
EP1440447A1 (en) 2004-07-28
CN1578988B (zh) 2010-04-28
CN1578988A (zh) 2005-02-09
TWI285807B (en) 2007-08-21
WO2003041083A1 (en) 2003-05-15
US6678192B2 (en) 2004-01-13
DE60224552T2 (de) 2009-01-08
DE60224552D1 (de) 2008-02-21
US20030086293A1 (en) 2003-05-08
JP2005509226A (ja) 2005-04-07
EP1440447B1 (en) 2008-01-09

Similar Documents

Publication Publication Date Title
KR101009545B1 (ko) 쓰기 가능 추적 저장 장치 유닛의 에러 관리
US8125833B2 (en) Adaptive dynamic reading of flash memories
US6643187B2 (en) Compressed event counting technique and application to a flash memory system
US9367389B2 (en) Recovery strategy that reduces errors misidentified as reliable
JP4723504B2 (ja) フラッシュメモリのデータ修正およびスクラブ技術
US8453022B2 (en) Apparatus and methods for generating row-specific reading thresholds in flash memory
US8799563B2 (en) Methods for adaptively programming flash memory devices and flash memory systems incorporating same
KR101979734B1 (ko) 메모리 장치의 독출 전압 제어 방법 및 이를 이용한 데이터 독출 방법
US11587624B2 (en) Coarse calibration based on signal and noise characteristics of memory cells collected in prior calibration operations
CN110870014A (zh) 具有动态编程校准的存储器装置
US9542258B1 (en) System and method for error-minimizing voltage threshold selection
US11532364B2 (en) Controller and operation method thereof
US11295819B2 (en) Dual sense bin balancing in NAND flash
US20200183616A1 (en) Trigger margin based dynamic program step characteristic adjustment

Legal Events

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

Payment date: 20131218

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 9