KR20140093227A - 디폴트 판독 임계값의 대체물을 생성하는 시스템 및 방법 - Google Patents

디폴트 판독 임계값의 대체물을 생성하는 시스템 및 방법 Download PDF

Info

Publication number
KR20140093227A
KR20140093227A KR1020147012342A KR20147012342A KR20140093227A KR 20140093227 A KR20140093227 A KR 20140093227A KR 1020147012342 A KR1020147012342 A KR 1020147012342A KR 20147012342 A KR20147012342 A KR 20147012342A KR 20140093227 A KR20140093227 A KR 20140093227A
Authority
KR
South Korea
Prior art keywords
read threshold
memory
default
threshold
read
Prior art date
Application number
KR1020147012342A
Other languages
English (en)
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 KR20140093227A publication Critical patent/KR20140093227A/ko

Links

Images

Classifications

    • 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
    • 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

Abstract

본 발명에 따른 방법은, 디폴트 판독 임계값과 업데이트된 판독 임계값에 적어도 일부 기초하여 디폴트 판독 임계값의 대체물을 생성하는 단계를 포함한다. 또한, 상기 방법은 디폴트 판독 임계값의 대체물을 메모리로 전송하는 단계를 포함한다.

Description

디폴트 판독 임계값의 대체물을 생성하는 시스템 및 방법{SYSTEMS AND METHODS OF GENERATING A REPLACEMENT DEFAULT READ THRESHOLD}
일반적으로, 본 발명은 메모리 시스템에서 디폴트 판독 임계값들을 업데이트하는 것에 관한 발명이다.
가령, 범용 직렬 버스(USB) 플래시 메모리 디바이스들 혹은 착탈가능한 저장 카드들 등과 같은 비휘발성 메모리 디바이스들은 데이터 및 소프트웨어 어플리케이션들의 휴대성을 증가시켜 왔다. 플래시 메모리 디바이스들은 각각의 플래시 메모리 셀에 다중 비트들을 저장함으로써 데이터 저장 밀도를 증가시킬 수 있다. 예를 들면, 다중-레벨 셀(MLC) 플래시 메모리 디바이스는 셀 당 3 비트, 셀 당 4 비트, 혹은 그 이상을 저장함으로써, 증가된 저장 밀도를 제공한다.
다중 비트들의 정보를 하나의 플래시 메모리 셀에 저장하는 것은 통상적으로, 플래시 메모리 셀의 상태들에 대한 비트들의 맵핑 시퀀스들을 포함한다. 예를 들면, 비트들 "110"의 제 1 시퀀스는 플래시 메모리 셀의 제 1 상태에 대응할 수 있으며, 그리고 비트들 "010"의 제 2 시퀀스는 플래시 메모리 셀의 제 2 상태에 대응할 수 있다. 비트들의 시퀀스가 특정한 플래시 메모리 셀에 저장될 것을 결정한 이후, 플래시 메모리 셀은 비트들의 상기 시퀀스에 대응하는 상태로 프로그래밍될 수 있다.
메모리 디바이스의 메모리 셀들이 프로그래밍되면, 셀 임계전압들과 하나 이상의 판독 임계값들을 비교하여 메모리 셀들의 프로그래밍 상태를 감지함으로써, 메모리 셀로부터 데이터가 판독될 수 있다. 하지만, 감지된 프로그래밍 상태들은 때때로 기입된 프로그래밍 상태들로부터 변동될 수도 있다(가령, 데이터 보유 및 프로그램 방해 조건들 등과 같은 하나 이상의 팩터들로 인하여). 기입된 프로그래밍 상태들에 매칭되지 않는 감지된 프로그래밍 상태로부터 야기되는 다수의 데이터 에러들을 감소시키기 위하여 판독 임계값들이 업데이트될 수 있다. 하지만, 메모리의 일부분에서의 에러들을 감소시키기 위하여 선택된 판독 임계값들은, 메모리의 다른 부분으로부터 데이터를 판독할 때 에러들을 증가시킬 수도 있다.
디폴트 판독 임계값 및 업데이트된 판독 임계값에 적어도 일부 기초하여 디폴트 판독 임계값의 대체물을 생성하는 것은, 다중-레벨-셀(MLC) 낸드 플래시 메모리 시스템의 에러 정정 능력을 강화시킬 수 있다. 예를 들면, 디폴트 판독 임계값과 업데이트된 판독 임계값의 가중된(weighted) 평균에 기초하여 디폴트 판독 임계값의 대체물을 생성함으로써, 업데이트된 판독 임계값 만을 사용하는 경우에 비하여, 개선된 에러 정정 능력이 얻어질 수 있다.
도1은 메모리의 디폴트 판독 임계값의 대체물을 생성하는 시스템의 제 1 실시예에 대한 블록도이다.
도2는 도1의 메모리에 의해서 보여질 수 있는 판독 임계값들 및 판독 전압 분포들의 일례를 예시한 도면이다.
도3은 디폴트 판독 임계값의 대체물을 생성하는 시스템의 제 2 실시예에 대한 블록도이다.
도4는 디폴트 판독 임계값을 이용하여 메모리로부터 데이터를 판독하고, 그리고 디폴트 판독 임계값을 이용하여 메모리로부터 판독된 데이터에 관한 에러 정정 코딩 동작의 실패를 경험하는 것에 응답하여, 업데이트된 판독 임계값을 이용하여 메모리로부터 데이터를 판독한 이후에 대체 판독 임계값을 이용하여 메모리에 대한 후속 판독을 수행하는 일례를 예시한 블록도이다.
도5는 디폴트 판독 임계값의 대체물을 생성하는 방법의 특정 실시예를 예시한 순서도이다.
도6은 디폴트 판독 임계값, 업데이트된 판독 임계값, 및 디폴트 판독 임계값의 대체물을 이용하여 메모리로부터 데이터를 판독하는 방법의 특정 실시예를 예시한 순서도이다.
데이터 저장 디바이스의 치수들이 감소하고 저장 밀도가 증가함에 따라, 메모리가 노화되어 전체 메모리에 저장된 데이터의 전반적인 액세스 에러들을 감소시키기 위하여 업데이트된 판독 임계값들을 제공하는 디코딩 기법들은 성능을 개선시킬 수 있다. 디폴트 판독 임계값과 업데이트된 판독 임계값에 적어도 일부분 기초하여 디폴트 판독 임계값의 대체물을 생성하는 것은, 업데이트된 판독 임계값만을 이용하는 경우에 비하여, 다중-레벨-셀(MLC) 낸드(NAND) 플래시 메모리 시스템의 에러 정정 능력을 향상시킬 수 있다.
디폴트 판독 임계값의 대체물을 생성하는 시스템들 및 방법들은 디폴트 판독 임계값을 이용하여 저장 디바이스 내의 메모리로부터 데이터를 판독한다. 디폴트 판독 임계값을 이용하여 메모리로부터 판독된 데이터에 관련된 에러 정정 코딩 동작의 실패를 경험하는 것에 응답하여, 상기 데이터는 업데이트된 판독 임계값을 이용하여 메모리로부터 판독된다. 디폴트 판독 임계값과 업데이트된 판독 임계값에 적어도 일부 기초하는 디폴트 판독 임계값의 대체물이 생성된다. 디폴트 판독 임계값의 대체물은 후속 판독 동작에서 사용을 위해 메모리로 전송된다.
도1을 참조하면, 디폴트 판독 임계값의 대체물을 생성하는 시스템에 대한 소정의 예시적인 실시예가 도시되어 있으며, 통상적으로 도면부호 100으로 표기된다. 시스템(100)은 호스트 디바이스(130)에 접속된 데이터 저장 디바이스(102)를 포함한다. 데이터 저장 디바이스(102)는 버스(150)를 통해 메모리(104)에 접속되는 제어기(106)를 포함한다. 예를 들어, 상기 버스(150)는 시큐어 디지털(Secure Digital : SD) 버스가 될 수 있다.
데이터 저장 디바이스(102)는 가령, 시큐어 디지털 SD® 카드, 마이크로SD® 카드, 미니 SD™ 카드( 델라웨어 윌밍톤에 있는 SD-3C LLC 회사의 상표), 멀티디디어 카드™ (MMC.TM) 카드(버지니아 알링톤의 JEDEC 솔리드 스테이트 기술 연합의 상표), 혹은 콤팩플래시®(CompactFlash: CF) 카드(캘리포니아 밀티파스에 있는 샌크디스크 회사의 상표) 등의 메모리 카드가 될 수 있다. 다른 일례로서, 데이터 저장 디바이스(102)는 가령, eMMC®(버지니아 알링톤의 JEDEC 솔리드 스테이트 기술 연합의 상표) 및 eSD 메모리 등과 같은 호스트 디바이스(130) 내의 내장 메모리가 될 수도 있다.
제어기(106)는 디폴트 판독 임계값(116)을 이용하여 메모리(104)의 저장소자들(110)의 그룹으로부터 데이터를 판독하도록 구성된다. 저장소자들(110)의 그룹으로부터 판독된 데이터 있는 에러들의 개수가 임계값을 초과한다라고 결정되면, 제어기(106)는, 디폴트 판독 임계값(116)과 업데이트 판독 임계값(118)에 적어도 일부 기초하여 디폴트 판독 임계값의 대체물(120)을 생성하도록 구성된다. 디폴트 판독 임계값(116)과 업데이트 판독 임계값(118)에 기초하여 디폴트 판독 임계값의 대체물(120)을 생성함으로써, 가령, 도2를 참조하여 설명된 바와 같이, 메모리(104)로부터 판독된 데이터에 있는 전체 에러 개수를 감소시키는 값으로 수렴하는 임계전압에 따라 메모리(104)로부터의 후속 데이터 판독들이 수행될 수 있다.
제어기(106)는 판독 임계값 생성기(112)와 판독 임계값 업데이터(114)를 포함한다. 판독 임계값 생성기(112)는 가령, 판독 데이터를 디코딩하는 동안의 에러 정정 코딩(ECC) 동작의 실패 등과 같은, 저장소자들(110)의 대표 그룹에 대응하는 판독 데이터에서 너무 많은 에러들을 검출하는 것에 응답하여, 업데이트 판독 임계값(118)을 생성하도록 구성된다. 판독 임계값 생성기(112)는 저장소자들(110)의 그룹으로부터 판독된 데이터의 에러들을 감소시키기 위해서 업데이트 판독 임계값(118)을 생성할 수 있다. 하지만, 업데이트 판독 임계값(118)은 메모리(104)의 저장소자들의 다른 그룹들의 특성들을 고려함이 없이 생성될 수도 있다. 그 결과, 업데이트 판독 임계값(118)은, 저장소자들(110)의 예시된 그룹으로부터 판독된 데이터의 에러들을 감소시키기 위한 판독 임계 전압들의 최적 세트 혹은 최적-근방의 세트가 될 수 있다. 하지만, 업데이트 판독 임계값(118)은 메모리(104)의 다른 부분들로부터 판독된 데이터에 추가 에러들이 유입되게 할 수도 있다.
판독 임계값 업데이터(114)는 업데이트 판독 임계값(118)과 디폴트 판독 임계값(116)을 수신하고 그리고 디폴트 판독 임계값의 대체물(120)을 결정하기 위한 하나 이상의 동작들을 수행하도록 구성된다. 예를 들어, 판독 임계값 업데이터(114)는 업데이트 판독 임계값(118)과 디폴트 판독 임계값(116)의 가중된 평균값에 따라 디폴트 판독 임계값의 대체물(120)을 생성할 수도 있다. 도2를 참조하여 더욱 상세히 설명되는 바와 같이, 메모리(104)가 노화됨에 따라, 메모리(104)로부터의 데이터 판독 동안에 발생하는 에러들의 총 개수를 감소시킬 수 있는 판독 임계값은, 개별적인 판독 특성들을 갖는 저장소자들(110)의 각각의 그룹에 따라 평균 전압(mean voltage)으로 수렴할 수 있다. 업데이트 판독 임계값(118)과 디폴트 판독 임계값(116)의 조합을 이용하여 디폴트 판독 임계값의 대체물(120)을 생성함으로써, 판독 임계값 업데이터(114)는 전체 메모리(104)를 판독하는데 이용되는 때에 가장 적은 전체 에러들을 야기할 수 있는 장기 평균 임계전압(long-term average threshold voltage)에 접근하기 위한 디폴트 판독 임계값의 대체물(120)을 생성할 수 있다.
메모리(104)는 낸드(NAND) 플래시 디바이스, 노어(NOR) 플래시 디바이스, 혹은 임의의 다른 유형의 플래시 디바이스 등과 같은 플래시 디바이스의 비휘발성 메모리 어레이가 될 수 있다. 예를 들어, 저장소자들(110)의 그룹은 낸드 플래시 메모리 디바이스의 워드라인이 될 수 있다. 예시적으로, 저장소자들(110)의 그룹은 가령, 플래시 메모리 디바이스의 워드라인의 대표 저장소자들(142, 144, 146)과 같은 다수의 저장소자들을 포함할 수 있다. 각각의 저장소자(142-146)는 저장소자(142-146)에 저장된 데이터의 상태에 대응하는 임계전압을 가질 수 있다. 예를 들어, 각각의 저장소자(142-146)는 다수의 기정의된 상태들 중 하나를 갖도록 프로그래밍될 수 있다. 기정의된 상태들 각각은, 특정한 비트 값에 매핑될 수 있다. 저장소자(142-146)에 저장된 데이터는 임계전압을 디폴트 판독 임계값(116)과 비교함으로써 판독될 수 있다. 메모리(104)로부터 판독된 데이터는 버스(150)를 통해 제어기(106)로 전송될 수 있다.
호스트 디바이스(130)는 메모리(104)에 저장될 데이터를 제공하도록 구성될 수 있으며 혹은, 메모리(104)로부터 판독될 데이터를 요청하도록 구성될 수 있다. 예를 들어, 호스트 디바이스(130)는 이동 전화, 음악 혹은 비디오 재생기, 게임 콘솔, 전자책 리더기, 개인용 휴대정보 단말기(PDA), 랩탑 컴퓨터 등과 같은 컴퓨터, 노트북 컴퓨터 혹은 태블릿, 혹은 임의의 다른 전자 디바이스 혹은 이들의 조합을 포함할 수 있다.
동작 동안, 호스트 디바이스(130)는 메모리(104)로부터 저장소자들(110)(가령, 저장소자들 142-146)의 그룹에 대응하는 데이터를 검색하도록 제어기(106)에게 지시할 수 있다. 제어기(106)는 데이터를 판독하기 위하여 메모리(104)에 의해서 디폴트 판독 임계값(116)이 사용될 것임을 메모리(104)에게 알려줄 수 있다. 저장소자들(142-146)로부터 판독된 데이터에 있는 에러들의 수가 임계값을 넘는다고 결정하는 것에 응답하여, 제어기(106)는 저장소자들(110)의 특성에 기초하여 업데이트 판독 임계값(118)을 생성할 수 있으며 따라서, 업데이트 판독 임계값(118)을 이용하여 저장소자들(110)의 그룹을 판독하는 것은, 디폴트 판독 임계값(116)을 이용하여 저장소자들(110)의 그룹을 판독하는 것 보다 더 적은 수의 에러를 생성할 것이다. 제어기(106)는 또한, 디폴트 판독 임계값(116) 및 업데이트 판독 임계값(118)에 적어도 일부 기초하여 디폴트 판독 임계값의 대체물(120)을 생성할 수 있다. 예를 들어, 판독 임계값 생성기(112)는 업데이트 판독 임계값(118)을 생성할 수 있다. 판독 임계값 업데이터(114)는 업데이트 판독 임계값(118) 및 디폴트 판독 임계값(116)을 수신할 수 있으며 그리고 디폴트 판독 임계값의 대체물(120)의 생성하기 위한 가령, 업데이트 판독 임계값(118)과 디폴트 판독 임계값(116)의 가중된 합산 등과 같은 하나 이상의 연산들을 수행할 수 있다.
디폴트 판독 임계값(116)과 업데이트 판독 임계값(118)에 기초하여 디폴트 판독 임계값의 대체물(120)을 생성함으로써, 메모리(104)로부터 데이터의 후속 판독들이 임계전압에 따라 수행될 수 있는바, 상기 임계전압은, 업데이트 판독 임계값(118)의 외부 값들(outlying value)의 결과로서 수렴 값으로부터 실질적으로 벗어남이 없이, 메모리(104)로부터 판독된 데이터의 에러들의 전체 개수를 감소시키는 값으로 수렴할 수 있다.
이제 도2를 참조하면, 도1의 메모리(104)에 의해서 보여질 수 있는 판독 전압 분포들의 일례가 도시되며, 이는 도면부호 200으로 표기된다. 예시된 바와 같이, 메모리(104)는 하나 이상의 다이들 가령, 제 1 다이(210), 제 2 다이(212), 및 제 3 다이(214)를 포함한다. 상기 하나 이상의 다이들(210-214) 각각은 복수의 블록들(가령, 대표 블록 216)을 포함할 수 있다. 예를 들어, 각각의 블록은 낸드 플랫 메모리의 소거 블록이 될 수 있다. 각각의 블록은 가령, 대표 워드 라인 218 등의 하나 이상의 워드라인들을 포함할 수 있다. 각각의 워드라인은 가령, 대표 페이지 220 등의 하나 이상의 페이지들을 포함할 수 있다. 페이지(220)는 메모리(104)에 데이터를 기입할 수 있는 가장 작은 단위를 나타낼 수도 있다. 챠트(240)는 기입/소거 사이클(W/E 사이클)의 분량 혹은 횟수에 기초하는 판독 전압 분포들을 예시한다. 예를 들어, 제 1 판독 전압 분포(252)는, 수평 액세스 상의 임계전압을 수직 액세스 상의 그 임계전압에 대응하는 여러 워드라인들에 관련시킨다. 제 1 판독 전압 분포(252)는 메모리(104)의 워드라인들(218) 각각의 "최적의" 판독 임계값들의 분포를 나타낼 수도 있다. 예를 들면, 제 1 판독 전압 분포(252)는 V0 라는 전압에서 피크값을 갖는다. 그 결과, 전압 V0를 판독 전압으로 이용함으로써, 메모리(104)의 가장 많은 수의 워드라인들이 그들의 최적 판독 전압에서 판독될 수 있다. 이와 유사하게, 전압이 V0로부터 증가하거나 혹은 감소함에 따라, 최적의 판독 전압으로서 그 전압에 대응하는 워드라인들의 개수가 감소한다. 서로 다른 판독 전압들을 이용하여 메모리(104)의 각 세그먼트(가령, 각각의 워드라인 218)에 대한 다수의 판독들을 수행하고, 그리고 각각의 판독 전압들을 따라 메모리(104)의 각 세그먼트로부터 판독된 데이터의 가장 적은 개수의 검출된 에러들을 결정함으로써, 판독 전압이 "최적"이라고 결정될 수 있다. 개별 워드라인을 판독할 시에 가장 적은 개수의 검출된 에러들을 야기하는 전압은, 그 워드라인에 대한 "최적의" 판독 전압으로 간주될 수 있다.
예시된 바와 같이, 제 1 판독 전압 분포(252)는, 제 2 판독 전압 분포(254), 제 3 판독 전압 분포(256), 및 제 4 판독 전압 분포(258)에 비하여 상대적으로 좁다. 판독 전압 분포들(252-258)은 메모리(104)의 기입/소거 사이클들의 횟수에 따른, 메모리의 대표적인 노화(aging)를 예시한다. 예를 들어, 제 1 판독 전압 분포(252)에 대한 기입/소거 사이클들의 숫자 N은 가령, 10번의 기입/소거 사이클 등과 같은 숫자 N1이 될 수 있는 반면에, 제 2 판독 전압 분포(254)는 가령, 500번의 기입/소거 사이클들 등과 같은 더 큰 숫자의 기입/소거 사이클들(N2)에 해당할 수 있다. 제 3 판독 전압 분포(256)는 N2 보다 큰 제 3 숫자의 기입/소거 사이클 N3 에 해당할 수 있으며, 그리고 제 4 판독 전압 분포(258)는 N3 보다 큰 제 4 숫자의 기입/소거 사이클 N4 에 해당할 수 있다. 기입/소거 사이클의 카운트가 증가함에 따라, 각 분포들(252-258)의 평균이 V0로부터 감소하며 그리고 Vmean 이라고 표기된 값에 접근한다. 더 나아가, N 이 증가함에 다라, 판독 전압 분포들(252-258)의 폭이 증가한다.
그래프(240)에서 예시된 거동의 결과로서, "최적의" 판독 전압들의 분포에 대해서 다음과 같은 점을 알 수 있는바, 분포의 평균은 N 이 작은 경우(예컨대, N=0) N의 작은 증분에도 상대적으로 급격하게 감소하며, 그리고 가령, 500번의 기입/소거 사이클 등과 같은 상대적으로 적은 숫자의 기입/소거 사이클들 이후에 Vmean 값으로 수렴한다. 따라서, 상대적으로 젊은 메모리들(즉, 적은 숫자의 기입/소거 사이클들)에 대한 판독 임계값들의 변화들은, V0 으로부터 Vmean 으로 향하는 "최적" 평균 전압의 시프트에 의해서 주로 야기된다. 하지만, 기입/소거 사이클들의 카운트가 N2에 도달하거나 이를 초과한 이후에는, 최고값에서 최저값까지 분포의 폭이 넓어지는 것(broadening)이, 증가하는 N에 대한 "최적" 평균의 상대적으로 적은 움직임에 비하여 더 많은 에러들을 유발할 수 있다.
신규 혹은 업데이트된 판독 임계값이 필요한 경우(즉, 판독 데이터에서 너무 많은 에러들이 검출되는 것에 응답하여), 판독 임계값 생성기(112)는, 업데이트된 판독 전압들을 모델링된 CVD에 기초하여 찾아내기 위해 셀 전압 분포(cell voltage distribution:CVD)를 모델링함으로써, 혹은 가장 적은 에러들을 야기하는 판독 전압을 결정하기 위해 서로 다른 판독 전압들에서 다수의 판독 동작들을 수행하는 동적 판독을 개시함으로써, 업데이트된 판독 임계값을 생성할 수 있다. 셀들의 기정의된 그룹 내에서의 후속 판독 동작들에 대해서, 업데이트된 판독 임계값을 재사용하기 위하여, 상기 업데이트된 판독 임계값이 저장된다. 메모리(104)의 하나의 워드라인(218) 내의 에러들을 검출하는 것에 응답하여 판독 임계값 생성기(112)가 업데이트된 판독 임계값을 생성할 수 있기 때문에, 판독 임계값 생성기(112)는 판독 전압 분포의 외부 값(outlying value)을 나타내는 값을 생성할 수 있으며, 이는 분포의 평균값(mean value)으로부터 떨어져 있을 수 있다. 예를 들면, 비록, 전체 메모리(104)에 걸쳐서 감소된 에러들을 위한 가장 적절한 값을 분포의 중앙이 나타내지만, 업데이트 값은 중앙이 아니라 분포의 "꼬리 부분"에 있을 수도 있다. 예시적으로, 판독 임계값 생성기(112)의 동작 동안, 업데이트된 판독 임계값은 제 4 판독 전압 분포(258)의 우측 에지 쪽에 있다(즉, V0 보다 큰 전압)라고 판별될 수도 있다. 하지만, 이러한 판독 임계전압이 전체 메모리(104)를 위한 디폴트 판독 임계 전압으로 이용된다면, 이러한 판독 임계전압은 메모리(104)의 대부분에 대하여 최적 보다 못한 성능(sub-optimal performance)을 야기할 것이며 그리고 제 4 판독 전압 분포(258)의 좌측 에지에 대응하는 워드라인들(즉, V2 보다 작은 최적 전압들을 구비한 워드라인들)에 대해서는 최적의 판독 전압으로부터 상당한 편차(deviation)를 나타낼 수도 있다. 이러한 경우, V0 보다 큰 전압을 갖는 메모리에 대해서 디폴트 판독 전압을 업데이트한 이후에, 제 4 판독 전압 분포(258)의 먼 좌측에 위치한 워드라인은, 많은 수의 에러들을 경험할 가능성이 있으며(업데이트된 판독 전압으로부터 가장 멀리 떨어진 최적 판독 전압을 갖기 때문에) 그리고, 임계값을 초과하는 개수의 에러들을 갖는다고 검출되는 다음 워드라인이 될 수도 있다. 판독 임계값 생성기(112)는 제 4 판독 전압 분포(258)의 제일 왼쪽의 전압에 대응하는 워드라인에 기초하여, 다음번 업데이트된 판독 임계값을 생성할 수 있다. 그 결과, 판독 임계값 생성기(112)에 의해서 생성된 업데이트된 판독 임계값들은 핑-퐁 거동(ping-pong behavior)을 경험할 수 있는바, 이는 주어진 분포의 제일 왼쪽(혹은, 제일 오른쪽)의 워드라인들에 대한 최적 전압들에 기초하여 판독 임계전압들이 생성되므로 주어진 분포의 제일 오른쪽(혹은, 제일 왼쪽) 워드라인들에 대해서는 에러의 증가가 야기되기 때문이다.
판독 임계값 생성기(112)의 이러한 "핑-퐁" 효과에 대응하기 위하여, 판독 임계값 업데이터(114)는 전체 메모리(104)에 대한 디폴트 판독 임계값이 전압 Vmean 으로 수렴하게 하는 필터링 매커니즘을 적용할 수 있다. 예를 들어, 판독 임계값 업데이터(114)는 디폴트 판독 임계값과 판독 임계값 생성기(112)에 의해서 생성되는 가장 최근의 업데이트된 판독 임계값과의 가중된 합산을 적용할 수 있다. 판독 임계값 생성기(112)가 V0 로 예시된 제 1 시퀀셜 업데이트 판독 임계값, V1 로 예시된 제 2 시퀀셜 업데이트 판독 임계값, 및 V2 로 예시된 제 3 시퀀셜 업데이트 판독 임계값을 생성함에 따라, 판독 임계값 업데이터(114)는 업데이트 판독 임계값에 주어진 가중치를 감소시킬 수 있는데, 이는 업데이트 판독 임계값이 V0 에서 V2 로 증가하여 Vmean으로 수렴을 야기하기 때문이다. 그 결과, 메모리(104)로부터의 후속 데이터 판독은 소정 값으로 수렴할 수 있는 임계전압을 따라 수행될 수 있으며, 상기 소정 값은, 업데이트 판독 임계값(118)의 외부 값들(outlying value)의 결과로서 수렴 값으로부터 실질적으로 벗어남이 없이, 메모리(104)로부터 판독된 데이터의 에러들의 전체 개수를 감소시킨다.
예를 들면, 판독 임계값 업데이터(114)는 가중된 합산을 적용하여 다음의 식을 따라 디폴트 판독 임계값의 대체물을 계산할 수 있다.
(T * 신규 임계값) + N * (1-T) * 디폴트 임계값 / (N+1)
혹은 (T * 신규 임계값) + (1-T) * 디폴트 임계값
여기서,
디폴트 임계값 = "디폴트 판독 임계값" (예컨대, 116)
신규 임계값 = "업데이트 판독 임계값" (예컨대, 118)
N = 디폴트 판독 임계값에 대한 이전 업데이트들의 카운트
T = 스케일링 팩터, 여기서 0 ≤ T ≤ 1
가중된 합산은 디폴트 판독 임계값(116)에 대한 이전 업데이트들의 카운트에 적어도 부분적으로 기초할 수 있다. 예를 들어, 가중된 합산은 디폴트 판독 임계값(116)에 대한 이전 업데이트들의 카운트 N에 적어도 부분적으로 기초할 수 있다. 또 다른 일례로서, 가중된 합산은 이동 평균(moving average)에 적어도 일부 기초할 수 있는바, 여기서 이동 평균은 디폴트 판독 임계값(116)에 대한 이전 업데이트들에 기초한다. 예를 들어, 디폴트 판독 임계값들의 히스토리는 상기 이동 평균을 결정하는데 이용될 수 있다. 다른 일례로서, 가중된 합산은 제 1 스케일링 팩터에 의해서 스케일링된 업데이트된 판독 임계값(118) 및 제 2 스케일링 팩터에 의해서 스케일링된 디폴트 판독 임계값(116)에 적어도 일부 기초할 수도 있다. 예를 들어, 제 1 스케일링 팩터는 스케일링 팩터 "T"가 될 수 있으며, 그리고 제 2 스케일링 팩터는 스케일링 팩터 "(1-T)"가 될 수 있다. 제 1 스케일링 팩터와 제 2 스케일링 팩터의 합산은 1 이 될 수 있다. 스케일링 팩터 T 는 실험 데이터 혹은 측정치, 메모리의 사이클링 정보, 다이들 간의 차이들, 논리적 그룹들의 차이들(즉, 페이지, 워드라인, 기타 등등) 혹은 다른 팩터들에 기초할 수 있다.
다른 실시예에서, 판독 임계값 업데이터(114)는, 디폴트 판독 임계값(116)과 업데이트 판독 임계값(118)의 다른 조합들에 따라 디폴트 판독 임계값(116)과 업데이트 판독 임계값(118)에 기초하는 디폴트 판독 임계값의 대체물(120)을 생성할 수 있다. 예를 들어, 디폴트 판독 임계값의 대체물(120)은 기하 평균(geometric mean), 가중된 평균, 혹은 디폴트 판독 임계값(116)과 업데이트 판독 임계값(118)의 하나 이상의 다른 조합들에 기초하여 생성될 수 있다.
도3을 참조하면, 디폴트 판독 임계값의 대체물을 생성하는 시스템의 예시적인 제 2 실시예가 도시되며, 통상적으로 300으로 표기된다. 시스템(300)은 호스트 디바이스(130)에 연결된 데이터 저장 디바이스(102)를 포함한다. 데이터 저장 디바이스(102)는 버스(150)를 통해 메모리(104)에 연결된 제어기(106)를 포함한다. 데이터 저장 디바이스(102)의 출력은 데이터 저장 디바이스(102)가 호스트 디바이스(130)에 연결되어 동작하는 동안 호스트 디바이스(130)에 제공될 수 있다.
제어기(106)는 디폴트 판독 임계값(116)을 이용하여 메모리(104)의 저장소자들(110)의 그룹으로부터 데이터를 판독하도록 구성된다. 저장소자들(110)의 그룹으로부터 판독된 데이터에 있는 에러들의 개수가 임계값을 초과한다고 결정하면, 제어기(106)는 디폴트 판독 임계값(116)과 업데이트된 판독 임계값(118)에 적어도 일부 기초하여 디폴트 판독 임계값의 대체물(120)을 생성하도록 구성된다.
제어기(106)는 판독 임계값 생성기(112)와 판독 임계값 업데이터(114)를 포함한다. 판독 임계값 생성기(112)는, 가령 판독 데이터를 디코딩하는 동안의 에러 정정 코딩(ECC) 동작의 실패 등과 같은, 저장소자들(110)의 대표 그룹에 대응하는 판독 데이터에서 너무 많은 에러들을 검출하는 것에 응답하여, 업데이트 판독 임계값(118)을 생성한다. 예를 들어, ECC 엔진(330)은 저장소자들(110)의 대표 그룹에 대응하는 판독 데이터의 에러들을 검출하도록 구성될 수 있다. 제어기(106)는 판독 데이터를 ECC 엔진(330)에 제공하도록 구성될 수 있다. ECC 엔진(330)은, ECC 엔진(330)에서의 ECC 프로세싱으로부터 생성된 디코딩된 데이터에 기초하여 에러 표시(332)를 판독 임계값 생성기(112)에 제공할 수 있다. 판독 임계값 생성기(112)는 업데이트 판독 임계값(118)을 생성하여, 저장소자들(110)의 그룹으로부터 판독된 데이터의 에러들을 감소시키기 위한 개선된 판독 임계 전압들을 제공할 수 있다.
판독 임계값 업데이터(114)는 업데이트 판독 임계값(118)과 디폴트 판독 임계값(116)을 수신할 수 있으며 그리고 디폴트 판독 임계값의 대체물(120)을 생성하도록, 업데이트 판독 임계값(118)와 디폴트 판독 임계값(116)의 가중된 합산 등과 같은 하나 이상의 연산들을 수행할 수 있다.
제어기(106)는 랜덤 액세스 메모리(RAM)(340)를 포함할 수 있다. RAM(340)은 디폴트 판독 임계값(116), 업데이트 판독 임계값(118), 디폴트 판독 임계값의 대체물(120), 혹은 이들의 임의의 조합을 저장하도록 구성될 수 있다. 대안적으로, 혹은 추가적으로, 메모리(104)는 디폴트 판독 임계값(116), 업데이트 판독 임계값(118), 디폴트 판독 임계값의 대체물(120), 혹은 이들의 임의의 조합을 저장할 수 있다
메모리(104)는 저장소자들(110)의 그룹, 이전 업데이트들(310)의 카운트, 및 이력 디폴트 판독 임계값들(historic default read thresholds)(320)을 포함할 수 있다. 이전 업데이트들(310)의 카운트는 디폴트 판독 임계값(116)에 적용되었던 이전 업데이트들의 카운트를 포함할 수 있다. 이력 디폴트 판독 임계값들(320)은 디폴트 판독 임계값(116)의 이전 값들을 포함할 수 있다. 디폴트 판독 임계값(116)에 대한 이전 업데이트들의 수와 디폴트 판독 임계값(116)의 이전 값들을 판독함으로써, 디폴트 판독 임계값(116)의 이동 평균이 결정될 수 있다.
동작 동안, 호스트 디바이스(130)는 저장소자들(110)의 그룹에 대응하는 데이터를 검색하도록 제어기(106)에게 지시할 수 있다. 제어기(106)는 데이터를 판독하기 위하여 메모리(104)에 의해서 이용될 디폴트 판독 임계값(116)을 메모리(104)에 표시할 수 있다. ECC 엔진(330)은 저장소자들(110)의 대표 그룹에 대응하는 판독 데이터에 있는 에러들을 검출할 수 있다. ECC 엔진(330)은, ECC 엔진(330)에서의 ECC 프로세싱으로부터 생성된 디코딩된 데이터에 기초하여 에러 표시(332)를 판독 임계값 생성기(112)에 제공할 수 있다. 판독 임계값 생성기(112)는 업데이트 판독 임계값(118)을 생성하여, 저장소자들(110)의 그룹으로부터 판독된 데이터의 에러들을 감소시키기 위한 개선된 판독 임계 전압들을 제공할 수 있다. 저장소자들(110)의 그룹으로부터 판독된 데이터에 있는 에러들의 개수가 임계값을 초과한다라고 결정하는 것에 응답하여, 제어기(106)는 디폴트 판독 임계값(116)과 업데이트된 판독 임계값(118)에 적어도 일부 기초하여 디폴트 판독 임계값의 대체물(120)을 생성할 수 있다.
예를 들어, 판독 임계값 생성기(112)는 업데이트 판독 임계값(118)을 생성할 수 있다. 판독 임계값 업데이터(114)는 업데이트 판독 임계값(118) 및 디폴트 판독 임계값(116)을 수신할 수 있으며 그리고 디폴트 판독 임계값의 대체물(120)을 생성하도록, 업데이트 판독 임계값(118)와 디폴트 판독 임계값(116)의 가중된 합산 등과 같은 하나 이상의 연산들을 수행할 수 있다. 일례로서, 가중된 합산은 디폴트 판독 임계값에 대한 이전 업데이트들(310)의 카운트에 적어도 일부 기초할 수 있다. 다른 일례로서, 가중된 합산은, 이동 평균에 적어도 일부 기초할 수 있으며, 여기서 상기 이동 평균은 디폴트 판독 임계값에 대한 이전 업데이트들에 기초한다. 예를 들어, 디폴트 판독 임계값에 대한 이전 업데이트들은 이력 디폴트 판독 임계값들(320)로부터 검색될 수 있다. 메모리(104)로부터 데이터를 후속으로 판독하는 것은, 메모리(104)로부터 판독된 데이터의 에러들의 전체 개수를 감소시키는 소정 값으로 수렴하는 임계전압에 따라 수행될 수 있다.
도4를 참조하면, 디폴트 판독 임계값을 이용하여 메모리로부터 데이터를 판독하고, 그리고 디폴트 판독 임계값을 이용하여 메모리로부터 판독된 데이터에 관련된 에러 정정 코딩 동작의 실패를 경험하는 것에 응답하여, 업데이트된 판독 임계값을 이용하여 메모리로부터 데이터를 판독한 이후에 판독 임계값의 대체물을 이용하여 메모리에 대한 후속 판독을 수행하는 일례가 도시되며, 그리고 통상적으로 400으로 표기된다. 도시된 바와 같이, 메모리(가령, 메모리 104)의 대표 워드라인들(402, 404, 406, 408)로부터의 데이터는, 다양한 판독 임계값들(403, 405, 407, 409)을 이용하여 판독될 수 있다. 예를 들어, 제 1 워드라인(402)은 디폴트 판독 임계값(403)을 이용하여 판독될 수 있으며, 그리고 제 2 워드라인(404)은 디폴트 판독 임계값(403)을 이용하여 판독될 수 있다. 예시적으로, 제어기(106)는, 제 1 워드라인(402) 및 제 2 워드라인(404)의 데이터를 판독하기 위해 메모리(104)에 의해서 이용될 디폴트 판독 임계값(403)을 메모리(104)에게 나타낼 수 있다.
제 2 워드라인(404)에 대응하는 에러 정정 코딩(ECC) 동작의 실패를 경험하는 것에 응답하여, 여기서, ECC 동작 실패는 디폴트 판독 임계값(403)을 이용하여 제 2 워드라인(404)으로부터 판독된 데이터에 관한 것이며(즉, 판독 데이터에 너무 많은 에러들이 있는 경우), 제 2 워드라인(404)은 업데이트된 판독 임계값(405)을 이용하여 판독될 수 있다. 예를 들어, 판독 임계값 생성기(112)는 제 2 워드라인(404)을 판독하는데 이용되는 업데이트된 판독 임계값(405)을 생성할 수 있다.
업데이트된 판독 임계값(405)을 이용하여 제 2 워드라인(404)을 판독한 이후, 메모리(104)로부터 데이터를 후속으로 판독하는 것은, 메모리(104)로부터 판독된 데이터에 있는 에러들의 전체 개수를 감소시키는 소정 값을 향해 수렴하는 임계전압을 따라 수행될 수 있다. 예시적으로, 제 3 워드라인(406)은 디폴트 판독 임계값의 대체물(407)을 이용하여 판독될 수 있다. 디폴트 판독 임계값의 대체물(407)은, 판독 임계값 업데이터(114)에 의해서 생성될 수 있는바, 판독 임계값 업데이터(114)는 업데이트된 판독 임계값(405)과 디폴트 판독 임계값(403)을 수신할 수 있으며 그리고 업데이트된 판독 임계값(405)과 디폴트 판독 임계값(403)의 가중된 평균 등과 같은, 하나 이상의 연산들(디폴트 판독 임계값의 대체물 407 을 생성하기 위한)을 수행할 수 있다. 메모리(104)로부터의 데이터의 후속 판독들은 디폴트 판독 임계값의 대체물(407)을 이용하여 수행될 수 있다(제 2의 ECC 동작 실패가 발생할 때까지).
예를 들어, 제 4 워드라인(408)은 디폴트 판독 임계값의 대체물(407)을 이용하여 판독될 수 있다. 제 2의 ECC 동작 실패를 경험하는 것에 응답하여, 여기서, 제 2의 ECC 동작 실패는 디폴트 판독 임계값의 대체물(407)을 이용하여 제 4 워드라인(408)으로부터 판독된 데이터에 관한 것이며, 제 4 워드라인(408)은 또 다른 업데이트된 판독 임계값(409)을 이용하여 판독될 수 있다. 메모리(104)로부터의 데이터의 후속 판독들은, 평균 값(mean value)(가령, 도2의 Vmean)으로 수렴하도록 생성되는 디폴트 판독 임계값들의 대체물을 이용하여 수행될 수 있다.
도5를 참조하면, 디폴트 판독 임계값의 대체물을 생성하는 방법의 일실시예에 대한 순서도가 예시되며 도면부호 500으로 표기된다. 상기 방법(500)은 데이터 저장 디바이스의 제어기에 의해서 수행될 수 있다. 데이터 저장 디바이스는 메모리를 포함할 수 있다. 예를 들어, 상기 방법은 도1 및 도3의 데이터 저장 디바이스(102)에서 수행될 수 있다.
단계 502에서, 디폴트 판독 임계값을 이용하여 데이터 저장 디바이스의 메모리로부터 데이터가 판독된다. 예를 들어, 제어기(106)는 디폴트 판독 임계값(116)을 이용하여 메모리(104)의 저장소자들(110)의 그룹으로부터 데이터를 판독하도록 구성될 수 있다.
디폴트 판독 임계값을 이용하여 메모리로부터 판독된 데이터에 관련된 에러 정정 코딩 동작의 실패를 경험하는 것에 응답하여, 상기 데이터는 업데이트된 판독 임계값을 이용하여 메모리로부터 판독된다(단계 504). 예를 들면, 저장소자들(110)의 대표 그룹에 대응하는 판독 데이터에서 너무 많은 에러들을 검출하는 것(가령, 판독 데이터를 디코딩하는 동안의 ECC 동작 실패)에 응답하여, 판독 임계값 생성기(112)는 업데이트 판독 임계값(118)을 생성할 수 있다.
디폴트 판독 임계값과 업데이트된 판독 임계값에 적어도 일부 기초하는 디폴트 판독 임계값의 대체물이 단계 506에서 생성된다. 예를 들어, 판독 임계값 업데이터(114)는 업데이트 판독 임계값(118)과 디폴트 판독 임계값(116)을 수신할 수 있으며 그리고 디폴트 판독 임계값의 대체물(120)을 결정하기 위한 하나 이상의 연산들을 수행할 수 있다. 예를 들면, 판독 임계값 업데이터(114)는 업데이트 판독 임계값(118)과 디폴트 판독 임계값(116)의 가중된 평균에 따라 디폴트 판독 임계값의 대체물(120)을 생성할 수 있다.
단계 508에서, 디폴트 판독 임계값의 대체물이 메모리로 전송된다. 업데이트된 판독 임계값을 이용하여 메모리로부터 데이터를 판독한 이후, 디폴트 판독 임계값의 대체물을 이용하여 메모리에 대한 후속 판독이 수행된다(단계 510). 메모리(104) 로부터의 데이터의 후속 판독들은 디폴트 판독 임계값들의 대체물들(120)을 이용하여 수행될 수 있으며, 이들 대체물들은 평균 값(가령, 도2의 Vmean)으로 수렴되도록 생성된다.
도6을 참조하면, 디폴트 판독 임계값, 업데이트된 판독 임계값, 및 디폴트 판독 임계값의 대체물을 이용하여 메모리로부터 데이터를 판독하는 방법의 실시예에 대한 순서도가 도시되며, 통상적으로 도면부호 600으로 표기된다. 상기 방법(600)은 데이터 저장 디바이스의 제어기에서 수행될 수 있다. 데이터 저장 디바이스는 메모리를 포함할 수 있다. 예를 들어, 상기 방법은 도1 및 도3의 데이터 저장 디바이스(102)에서 수행될 수 있다.
디폴트 판독 임계값을 이용하여 메모리 내의 데이터를 판독하기 위하여, 제 1 커맨드가 데이터 저장 디바이스 내의 메모리로 전송될 수 있다. 예를 들면, 디폴트 판독 임계값(116)을 이용하여 메모리(104)의 저장소자들(110)의 그룹 내의 특정 워드라인으로부터 데이터를 판독하기 위하여, 제어기(106)는 제 1 커맨드를 메모리(104)로 전송할 수 있다.
메모리의 특정 워드라인에 대응하는 에러 정정 코딩(ECC) 동작의 실패가 발생할 수 있는바, 여기서 상기 ECC 동작의 실패는 단계 604에서 디폴트 판독 임계값을 이용하여 메모리로부터 판독된 데이터에 관련된 것이다. 예를 들면, ECC 엔진(330)은, 디폴트 판독 임계값(116)을 이용하여 판독된 저장소자들(110)의 그룹 내의 특정 워드라인에 대응하는 판독 데이터의 에러들을 검출할 수 있다. ECC 엔진(330)에서의 ECC 프로세싱으로부터 생성된 디코딩된 데이터에 기초하여, ECC 엔진(330)은 에러 표시(332)를 판독 임계값 생성기(112)에 제공할 수 있다.
업데이트된 판독 임계값을 이용하여 메모리의 특정 워드라인을 판독하기 위하여, 제 2 커맨드가 메모리로 전송될 수 있다(단계 606). 예를 들면, 제어기(106)는, 판독 임계값 생성기(112)에 의해서 생성된 업데이트 판독 임계값(118)을 이용하여 저장소자들(110)의 그룹 내의 특정 워드라인으로부터 데이터를 판독하기 위하여 제 2 커맨드를 메모리(104)로 전송할 수 있다.
디폴트 판독 임계값의 대체물을 이용하여 메모리의 또 다른 워드라인을 판독하기 위하여 제 3 커맨드가 메모리로 전송될 수 있는바, 여기서 디폴트 판독 임계값의 대체물은 디폴트 판독 임계값과 업데이트된 판독 임계값 사이의 값을 갖는다(단계 608). 예를 들면, 업데이트 판독 임계값(118)을 이용하여 저장소자들(110)의 그룹 내의 특정 워드라인을 판독한 이후, 메모리(104)로부터의 데이터의 후속 판독은 임계전압을 따라 수행될 수 있는바, 상기 임계전압은, 메모리(104)로부터 판독된 데이터의 전체 에러들의 개수를 감소시키는 값으로 수렴할 수 있다. 예시적으로, 저장소자들(110)의 그룹 내의 다른 워드라인은 디폴트 판독 임계값의 대체물(120)에 의해서 판독될 수 있다. 디폴트 판독 임계값의 대체물(120)은 판독 임계값 업데이터(114)에 의해서 생성될 수 있으며, 판독 임계값 업데이터(114)는 업데이트 판독 임계값(118)과 디폴트 판독 임계값(116)을 수신할 수 있으며 그리고 디폴트 판독 임계값의 대체물(120)을 생성하도록, 업데이트 판독 임계값(118)와 디폴트 판독 임계값(116)의 가중된 평균 등과 같은 하나 이상의 연산들을 수행할 수 있다. 디폴트 판독 임계값의 대체물(120)은 디폴트 판독 임계값(116)과 업데이트 판독 임계값(118) 사이의 값을 가질 수 있다. 메모리(104)로부터의 데이터의 후속 판독들은 임계전압을 따라 수행될 수 있는바, 상기 임계전압은, 메모리(104)로부터 판독된 데이터의 전체 에러들의 개수를 감소시키는 값으로 수렴할 수 있다.
비록, 도시된 다양한 구성요소들이 블록 구성요소들로 설명되어 있으며 일반적인 용어들로 서술되고 있지만, 이러한 구성요소들은 도1 및 도3의 데이터 저장 디바이스(102)와 같은 데이터 저장 디바이스로 하여금 이러한 구성요소들에 부여된 특정 기능들 혹은 이들의 임의의 조합을 수행하게 하는 마이크로프로세서들, 상태 머신들, 혹은 다른 회로들을 포함할 수도 있다. 예를 들어, 도1 및 도3의 판독 임계값 업데이터(114)는 디폴트 판독 임계값의 대체물(120)을 생성하는 콘트롤러, 프로세서, 상태 머신, 로직 회로, 혹은 다른 구조들 등과 같은 물리적 구성요소들을 나타낼 수도 있다.
판독 임계값 업데이터(114)는, 예컨대, 디폴트 판독 임계값(116)과 업데이트 판독 임계값(118)의 가중된 합산을 이용하여 디폴트 판독 임계값의 대체물(120)을 생성하도록 프로그래밍된 마이크로프로세서 혹은 마이크로콘트롤러를 이용하여 구현될 수도 있다. 특정 실시예에서, 제어기(106)는 메모리(104)에 저장된 명령들을 실행하는 프로세서를 포함한다. 대안적으로, 혹은 추가적으로, 프로세서에 의해서 실행되는 실행가능한 명령들은 가령, 판독-전용 메모리(ROM)(미도시) 등과 같은, 메모리(104)의 일부가 아닌 별도의 메모리 위치에 저장될 수도 있다.
특정 실시예에서, 데이터 저장 디바이스(102)는 하나 이상의 외부 디바이스들에 선택적으로 연결되는 휴대용 디바이스가 될 수도 있다. 하지만, 다른 실시예에서, 데이터 저장 디바이스(102)는 하나 이상의 호스트 디바이스들에 부착 혹은 매립될 수도 있다(가령, 휴대용 통신 디바이스의 하우징 내에). 예를 들어, 데이터 저장 디바이스(102)는 가령, 무선 전화, 개인 휴대용 정보 단말기(PDA), 게이밍 디바이스 혹은 콘솔, 휴대용 네비게이션 디바이스, 컴퓨터, 혹은 내부의 비휘발성 메모리를 이용하는 다른 디바이스들 등과 같은 패키지된 장치 내에 존재할 수도 있다. 특정 실시예에서, 데이터 저장 디바이스(102)는 비휘발성 메모리, 예컨대, NAND, NOR, 다중-레벨 셀(MLC), 분리된 비트라인 NOR(DINOR), AND, 고 용량성 커플링 비율(high capacitive coupling ratio: HiCR), 비대칭 무접촉 트랜지스터(asymmetrical contactless transistor:ACT), 혹은 다른 플래시 메모리들 등과 같은 플래시 메모리, 소거 및 프로그래밍가능한 판독전용 메모리(EPROM), 전기적으로 소거 및 프로그래밍가능한 판독 전용 메모리(EEPROM), 판독 전용 메모리(ROM), 1회용 프로그래밍가능한 메모리(OTP), 혹은 다른 유형의 메모리를 포함할 수 있다.
본 명세서에 서술된 실시예들에 대한 설명들은 다양한 실시예들에 대한 일반적인 이해를 제공하도록 의도된 것이다. 본 발명의 범위를 벗어남이 없이도 구조적 및 논리적인 대체물 및 변경들이 가해질 수도 있도록 본 개시 내용으로부터 다른 실시예들이 활용되거나 파생될 수도 있다. 본 개시 내용은 다양한 실시예들의 모든 후속 변경들 혹은 변형예들을 커버하도록 의도된다.
앞서 설명된 본 발명의 내요은 제한적인 것이 아니라 예시적인 것으로 간주되어야 하며, 그리고 첨부된 청구범위는 본 발명의 범위에 속하는 이러한 모든 변형예들, 증강예들, 및 다른 실시예들을 커버하도록 의도된 것이다. 따라서, 법에 의해서 최대한으로 허용되는 한, 본 발명의 범위는 다음의 청구항들 및 그들의 등가물들에 대한 허용가능한 가장 넓은 해석에 의해서 결정되어야 하며, 그리고 앞서 설명된 상세한 설명에 의해서 한정 혹은 제한되지 않아야 한다.

Claims (26)

  1. 방법으로서,
    메모리를 포함하는 데이터 저장 디바이스의 제어기에서 수행되는,
    디폴트 판독 임계값과 업데이트된 판독 임계값에 적어도 일부 기초하여 디폴트 판독 임계값의 대체물을 생성하는 단계; 및
    상기 디폴트 판독 임계값의 대체물을 상기 메모리로 전송하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 디폴트 판독 임계값의 대체물을 생성하는 단계는,
    상기 업데이트된 판독 임계값과 디폴트 판독 임계값의 가중된 합산(weighted sum)를 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 가중된 합산은 상기 디폴트 판독 임계값에 대한 이전(prior) 업데이트들의 카운트에 적어도 일부 기초하는 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    상기 가중된 합산은 이동 평균에 적어도 일부 기초하며, 상기 이동 평균은 상기 디폴트 판독 임계값에 대한 이전 업데이트들에 기초하는 것을 특징으로 하는 방법.
  5. 제2항에 있어서,
    상기 가중된 합산은, 제 1 스케일링 팩터에 의해서 스케일링된 업데이트된 판독 임계값 및 제 2 스케일링 팩터에 의해서 스케일링된 디폴트 판독 임계값에 적어도 일부 기초하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 제 1 스케일링 팩터와 상기 제 2 스케일링 팩터의 합은 1 인 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 업데이트된 판독 임계값은, 상기 디폴트 판독 임계값을 이용하여 상기 메모리로부터 판독된 데이터에 대한 에러 정정 코딩의 실패에 응답하여 생성되는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 디폴트 판독 임계값을 이용하여 상기 메모리로부터 데이터를 판독하는 단계;
    상기 디폴트 판독 임계값을 이용하여 상기 메모리로부터 판독된 데이터에 관련된 에러 정정 코딩 동작의 실패를 경험하는 것에 응답하여, 상기 업데이트된 판독 임계값을 이용하여 상기 메모리로부터 데이터를 판독하는 단계; 및
    상기 업데이트된 판독 임계값을 이용하여 상기 메모리로부터 데이터를 판독한 이후, 상기 디폴트 판독 임계값의 대체물을 이용하여 상기 메모리에 대한 후속 판독을 수행하는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 메모리는 플래시 메모리를 포함하는 것을 특징으로 하는 방법.
  10. 방법으로서,
    메모리를 포함하는 데이터 저장 디바이스의 제어기에서 수행되는,
    디폴트 판독 임계값을 이용하여 데이터를 판독하도록 상기 메모리에 제 1 커맨드를 전송하는 단계;
    상기 메모리의 특정 워드라인에 대한 에러 정정 코딩(ECC) 동작의 실패를 경험하는 단계 -상기 ECC 동작의 실패는 디폴트 판독 임계값을 이용하여 상기 메모리로부터 판독된 데이터에 관련되며- ;
    업데이트된 판독 임계값을 이용하여 상기 메모리의 상기 특정 워드라인을 판독하도록 상기 메모리에 제 2 커맨드를 전송하는 단계; 및
    디폴트 판독 임계값의 대체물을 이용하여 상기 메모리의 다른 워드라인을 판독하도록 상기 메모리에 제 3 커맨드를 전송하는 단계
    를 포함하며,
    상기 디폴트 판독 임계값의 대체물은 상기 디폴트 판독 임계값과 상기 업데이트된 판독 임계값 사이의 값을 갖는 것을 특징으로 하는 방법.
  11. 제10항에 있어서,
    상기 디폴트 판독 임계값의 대체물은 상기 디폴트 판독 임계값과 상기 업데이트된 판독 임계값의 가중된 합산에 해당하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서,
    상기 가중된 합산은 상기 디폴트 판독 임계값에 대한 이전 업데이트들의 카운트에 적어도 일부 기초하는 것을 특징으로 하는 방법.
  13. 제11항에 있어서,
    상기 가중된 합산은 이동 평균에 적어도 일부 기초하며, 상기 이동 평균은 상기 디폴트 판독 임계값에 대한 이전 업데이트들에 기초하는 것을 특징으로 하는 방법.
  14. 제11항에 있어서,
    상기 가중된 합산은, 제 1 스케일링 팩터에 의해서 스케일링된 업데이트된 판독 임계값 및 제 2 스케일링 팩터에 의해서 스케일링된 디폴트 판독 임계값에 적어도 일부 기초하는 것을 특징으로 하는 방법.
  15. 데이터 저장 디바이스로서,
    메모리; 및
    제어기를 포함하며, 상기 제어기는,
    디폴트 판독 임계값과 업데이트된 판독 임계값에 적어도 일부 기초하여 디폴트 판독 임계값의 대체물을 생성하고; 및
    상기 디폴트 판독 임계값의 대체물을 상기 메모리로 전송하도록 된 것을 특징으로 하는 데이터 저장 디바이스.
  16. 제15항에 있어서,
    상기 제어기는, 상기 디폴트 판독 임계값의 대체물을 생성하도록 상기 업데이트된 판독 임계값과 디폴트 판독 임계값의 가중된 합산을 수행하는 것을 특징으로 하는 데이터 저장 디바이스.
  17. 제16항에 있어서,
    상기 가중된 합산은 상기 디폴트 판독 임계값에 대한 이전 업데이트들의 카운트에 적어도 일부 기초하는 것을 특징으로 하는 데이터 저장 디바이스.
  18. 제16항에 있어서,
    상기 가중된 합산은 이동 평균에 적어도 일부 기초하며, 상기 이동 평균은 상기 디폴트 판독 임계값에 대한 이전 업데이트들에 기초하는 것을 특징으로 하는 데이터 저장 디바이스.
  19. 제16항에 있어서,
    상기 가중된 합산은, 제 1 스케일링 팩터에 의해서 스케일링된 업데이트된 판독 임계값 및 제 2 스케일링 팩터에 의해서 스케일링된 디폴트 판독 임계값에 적어도 일부 기초하는 것을 특징으로 하는 데이터 저장 디바이스.
  20. 제15항에 있어서,
    에러 정정 코딩(ECC) 엔진을 더 포함하며,
    상기 제어기는 상기 메모리로부터 판독된 데이터를 상기 ECC 엔진에 제공하도록 된 것을 특징으로 하는 데이터 저장 디바이스.
  21. 제20항에 있어서,
    상기 데이터를 디코딩하는 동안의 ECC 동작의 실패에 응답하여, 업데이트된 판독 임계값을 생성하도록 된 판독 임계값 생성기를 더 포함하는 것을 특징으로 하는 데이터 저장 디바이스.
  22. 데이터 저장 디바이스로서,
    복수의 워드라인들을 구비한 메모리; 및
    제어기를 포함하며, 상기 제어기는,
    상기 메모리로 하여금 디폴트 판독 임계값을 이용하여 데이터를 판독하게 하고;
    상기 메모리로 하여금, 상기 메모리의 특정 워드라인에 대한 에러 정정 코딩(ECC) 동작의 실패에 응답하여, 업데이트된 판독 임계값을 이용하여 상기 메모리의 상기 특정 워드라인을 판독하게 하며 -상기 ECC 동작은 상기 디폴트 판독 임계값을 이용하여 상기 메모리로부터 판독된 데이터에 관련되며- ; 그리고
    상기 메모리로 하여금 상기 디폴트 판독 임계값의 대체물을 이용하여 상기 메모리의 다른 워드라인을 판독하게 하고,
    상기 디폴트 판독 임계값의 대체물은 상기 디폴트 판독 임계값과 상기 업데이트된 판독 임계값 사이의 값을 갖는 것을 특징으로 하는 데이터 저장 디바이스.
  23. 제22항에 있어서,
    상기 디폴트 판독 임계값의 대체물은, 상기 디폴트 판독 임계값과 상기 업데이트된 판독 임계값의 가중된 합산에 해당하는 것을 특징으로 하는 데이터 저장 디바이스.
  24. 제23항에 있어서,
    상기 가중된 합산은 상기 디폴트 판독 임계값에 대한 이전(prior) 업데이트들의 카운트에 적어도 일부 기초하는 것을 특징으로 하는 데이터 저장 디바이스.
  25. 제23항에 있어서,
    상기 가중된 합산은 이동 평균에 적어도 일부 기초하며, 상기 이동 평균은 상기 디폴트 판독 임계값에 대한 이전 업데이트들에 기초하는 것을 특징으로 하는 데이터 저장 디바이스.
  26. 제23항에 있어서,
    상기 가중된 합산은, 제 1 스케일링 팩터에 의해서 스케일링된 업데이트된 판독 임계값 및 제 2 스케일링 팩터에 의해서 스케일링된 디폴트 판독 임계값에 적어도 일부 기초하는 것을 특징으로 하는 데이터 저장 디바이스.
KR1020147012342A 2011-11-02 2012-10-25 디폴트 판독 임계값의 대체물을 생성하는 시스템 및 방법 KR20140093227A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/287,299 2011-11-02
US13/287,299 US8683297B2 (en) 2011-11-02 2011-11-02 Systems and methods of generating a replacement default read threshold
PCT/US2012/061811 WO2013066703A1 (en) 2011-11-02 2012-10-25 Systems and methods of generating a replacement default read threshold

Publications (1)

Publication Number Publication Date
KR20140093227A true KR20140093227A (ko) 2014-07-25

Family

ID=47146720

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147012342A KR20140093227A (ko) 2011-11-02 2012-10-25 디폴트 판독 임계값의 대체물을 생성하는 시스템 및 방법

Country Status (5)

Country Link
US (1) US8683297B2 (ko)
KR (1) KR20140093227A (ko)
CN (1) CN103975391A (ko)
TW (1) TWI584293B (ko)
WO (1) WO2013066703A1 (ko)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751755B2 (en) 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US8792281B2 (en) 2012-08-21 2014-07-29 Apple Inc. Read threshold estimation in analog memory cells using simultaneous multi-voltage sense
KR102081581B1 (ko) * 2012-11-02 2020-02-26 삼성전자 주식회사 메모리 장치 구동 방법
KR102081584B1 (ko) * 2012-11-02 2020-02-26 삼성전자 주식회사 메모리 장치 구동 방법 및 메모리 시스템
KR102002385B1 (ko) * 2012-11-14 2019-07-23 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
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
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9530515B2 (en) 2013-03-13 2016-12-27 Sandisk Technologies Llc Determining read voltages for reading memory
US9870830B1 (en) * 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
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
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US10475523B2 (en) * 2013-05-31 2019-11-12 Western Digital Technologies, Inc. Updating read voltages triggered by the rate of temperature change
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
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
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
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
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9818488B2 (en) * 2015-10-30 2017-11-14 Seagate Technology Llc Read threshold voltage adaptation using bit error rates based on decoded data
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
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
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
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
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
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
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
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
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
US9417797B2 (en) 2014-06-09 2016-08-16 Seagate Technology Llc Estimating read reference voltage based on disparity and derivative metrics
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
KR20160096435A (ko) * 2015-02-05 2016-08-16 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
CN110377538B (zh) * 2018-04-13 2021-03-02 深圳大心电子科技有限公司 存储器管理方法以及存储控制器
US10811091B2 (en) 2018-10-12 2020-10-20 Western Digital Technologies, Inc. Adaptive processing for read threshold voltage calibration

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7903468B2 (en) * 2007-04-23 2011-03-08 Ramot At Telaviv University Ltd. Adaptive dynamic reading of flash memories
US7849383B2 (en) * 2007-06-25 2010-12-07 Sandisk Corporation Systems and methods for reading nonvolatile memory using multiple reading schemes
US7630240B2 (en) * 2007-11-20 2009-12-08 Micron Technology, Inc. Read method for MLC
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7957187B2 (en) * 2008-05-09 2011-06-07 Sandisk Corporation Dynamic and adaptive optimization of read compare levels based on memory cell threshold voltage distribution
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
US8374026B2 (en) * 2009-01-30 2013-02-12 Sandisk Il Ltd. System and method of reading data using a reliability measure
US8259506B1 (en) * 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8370719B2 (en) 2010-05-21 2013-02-05 Intel Corporation Persistent moving read reference

Also Published As

Publication number Publication date
TWI584293B (zh) 2017-05-21
US8683297B2 (en) 2014-03-25
CN103975391A (zh) 2014-08-06
WO2013066703A1 (en) 2013-05-10
TW201333962A (zh) 2013-08-16
US20130111279A1 (en) 2013-05-02

Similar Documents

Publication Publication Date Title
US8683297B2 (en) Systems and methods of generating a replacement default read threshold
KR101891378B1 (ko) 메모리 블록에 대한 프로그래밍 단계 사이즈를 조정하는 시스템 및 방법
US9153331B2 (en) Tracking cell erase counts of non-volatile memory
US8605502B1 (en) Systems and methods of updating read voltages
US9025374B2 (en) System and method to update read voltages in a non-volatile memory in response to tracking data
US8874992B2 (en) Systems and methods to initiate updating of reference voltages
US8811081B2 (en) Systems and methods of updating read voltages in a memory
US9362003B2 (en) System and method to decode data subject to a disturb condition
US9135105B2 (en) Probability-based remedial action for read disturb effects
US20140029336A1 (en) Systems and methods of updating read voltages
US9129689B2 (en) Tracking erase pulses for non-volatile memory
WO2015047688A1 (en) Updating read voltages
WO2014193703A1 (en) Updating read voltages
US8737130B2 (en) System and method of determining a programming step size for a word line of a memory
EP2847767A1 (en) Reading data from a multi - level cell memory
WO2014110183A1 (en) Systems and methods to update reference voltages in response to data retention in non-volatile memory
US9117533B2 (en) Tracking erase operations to regions of non-volatile memory

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
AMND Amendment
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
E902 Notification of reason for refusal
X701 Decision to grant (after re-examination)
NORF Unpaid initial registration fee