KR102315294B1 - 솔리드-스테이트 스토리지 디바이스들에서의 판독 전압 계산 - Google Patents

솔리드-스테이트 스토리지 디바이스들에서의 판독 전압 계산 Download PDF

Info

Publication number
KR102315294B1
KR102315294B1 KR1020157036833A KR20157036833A KR102315294B1 KR 102315294 B1 KR102315294 B1 KR 102315294B1 KR 1020157036833 A KR1020157036833 A KR 1020157036833A KR 20157036833 A KR20157036833 A KR 20157036833A KR 102315294 B1 KR102315294 B1 KR 102315294B1
Authority
KR
South Korea
Prior art keywords
read voltage
voltage level
page
solid
voltage levels
Prior art date
Application number
KR1020157036833A
Other languages
English (en)
Other versions
KR20160014030A (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 KR20160014030A publication Critical patent/KR20160014030A/ko
Application granted granted Critical
Publication of KR102315294B1 publication Critical patent/KR102315294B1/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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/14Dummy cell management; Sense reference voltage generators

Landscapes

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

Abstract

데이터 스토리지 디바이스를 위한 에러 관리 시스템은 조정된 판독 전압 레벨 계산 기능을 포함한다. 조정된 판독 전압 레벨 계산은, 드라이브의 데이터 보유 특성들이 대응하는 판독 전압 레벨들을 찾기 위해 사용되는 인덱스의 생성 및 사용에 기초할 수도 있다. 특정 실시형태들에서, 판독 전압 레벨 계산은 커브-피팅 절차들/알고리즘들에 적어도 부분적으로 기초하고, 커브들은 비트 에러 레이트 데이터 포인트들 또는 누적 메모리 셀 분포들에 대해 피팅되고, 최적의 판독 전압 레벨들을 결정하기 위한 하나 이상의 알고리즘들에 따라 해결된다.

Description

솔리드-스테이트 스토리지 디바이스들에서의 판독 전압 계산{READING VOLTAGE CALCULATION IN SOLID-STATE STORAGE DEVICES}
이 개시물은 데이터 스토리지 시스템들에 관한 것이다. 보다 상세하게는, 본 개시물은 솔리드-스테이트 스토리지 디바이스들에서 판독 전압 레벨들을 계산하기 위한 시스템들 및 방법들에 관한 것이다.
플래시 드라이브들과 같은 특정 솔리드-스테이트 메모리 디바이스들은 플로팅 게이트 트랜지스터들로 구성된 메모리 셀들의 어레이에 정보를 저장한다. 단일-레벨 셀 (single-level cell; SLC) 플래시 디바이스들에서, 각 셀은 단일 비트의 정보를 저장한다. 다중-레벨 셀 (multi-level cell; MLC) 디바이스들에서, 각 셀은 2 이상의 비트들의 정보를 저장한다. 판독 동작이 수행될 때, 개별 셀들의 상태를 결정하기 위해 셀들의 전하 레벨들은 하나 이상의 전압 기준 (reference) 값들 (또한 "판독 전압 레벨 (reading voltage level)" 또는 "전압 임계치 (voltage threshold)" 라고도 불린다) 에 대해 비교된다. SLC 디바이스들에서, 셀은 단일 전압 기준 값을 이용하여 판독될 수 있다. MLC 디바이스들에서, 셀은 다수의 전압 기준 값들을 이용하여 판독된다. 특정 솔리드-스테이트 디바이스들은 메모리 제어기로 하여금 판독 전압 레벨들을 설정하는 것을 허용한다.
다양한 팩터들이 솔리드-스테이트 메모리 디바이스들에서의 데이터 판독 에러들에 기여할 수 있다. 이들 팩터들은 시간에 걸친 전하 손실 또는 누설, 및 사용에 의해 야기되는 디바이스 마모를 포함한다. 판독 동작에서의 비트 에러들의 수가 스토리지 서브시스템의 ECC (error correction code) 정정 능력을 초과할 때, 판독 동작은 실패한다. 판독 전압 레벨들은 데이터를 디코딩하기 위한 디바이스의 성능에 기여할 수 있다.
다양한 실시형태들이 예시적인 목적들을 위해 첨부 도면들에서 나타내어지고, 어떤 식으로든 본 발명들의 범위를 제한하는 것으로서 해석되어서는 아니된다. 또한, 상이한 개시된 실시형태들의 다양한 특징들은 추가적인 실시형태들을 형성하기 위해 결합될 수 있고, 이들 추가적인 실시형태들도 이 개시의 일부이다. 도면들 전체에 걸쳐, 참조 부호들은 참조 엘리먼트들 사이의 대응성을 나타내기 위해 재사용될 수도 있다.
도 1 은 에러 관리 모듈을 포함하는 솔리드-스테이트 스토리지 디바이스의 일 실시형태를 나타내는 블록도이다.
도 2 는 일 실시형태에 따른 비-휘발성 솔리드-스테이트 메모리 어레이에서 셀들의 확률 분포를 나타내는 그래프이다.
도 3 은 일 실시형태에 따른 확률 분포의 스테이트 크로스 포인트를 나타내는 그래프이다.
도 4 는 예시적인 솔리드-스테이트 스토리지 디바이스에서 비트 에러 레이트 대 시간 관계 데이터를 나타내는 그래프이다.
도 5 는 일 실시형태에 따라 판독 전압 레벨 값들을 계산하기 위한 프로세스를 나타내는 플로우차트이다.
도 6a 는 데이터 보유 인덱스를 생성하기 위한 프로세스의 일 실시형태를 나타내는 흐름도이다.
도 6b 는 데이터 보유 인덱스를 이용하기 위한 프로세스의 일 실시형태를 나타내는 흐름도이다.
도 7 은 일 실시형태에서의, 판독 전압 레벨 시프트 대 비트 에러 카운트 관계 데이터를 보여주는 그래프이다.
도 8 은 일 실시형태에서의, 판독 전압 레벨 시프트 데이터를 보여주는 그래프이다.
도 9 및 도 10 은 하나 이상의 실시형태들에서의, 비트 에러 카운트 데이터를 그래픽적으로 나타낸다.
도 11 은 일 실시형태에서의, 비트 에러 카운트 데이터를 보여주는 그래프이다.
도 12a 는 일 실시형태에 따른, 비트 에러 카운트 데이터를 포함하는 테이블이다.
도 12b 는 일 실시형태에서의, 비트 에러 카운트 데이터를 보여주는 그래프이다.
도 13 은 다항식 피팅을 이용하여 판독 전압 레벨들을 계산하기 위한 프로세스의 일 실시형태를 나타내는 흐름도이다.
도 14 는 일 실시형태에서의, 누적 스테이트 분포 정보를 보여주는 그래프이다.
도 15 는 일 실시형태에서의, 누적 스테이트 분포 정보를 보여주는 그래프이다.
도 16 은 다항식 피팅을 이용하여 판독 전압 레벨들을 계산하기 위한 프로세스의 일 실시형태를 나타내는 흐름도이다.
특정 실시형태들이 설명되었지만, 이들 실시형태들은 오직 예시적인 방식으로 제시된 것이고, 보호의 범위를 제한하려는 의도는 아니다. 사실, 본 명세서에 기술된 창의적인 방법들 및 시스템들은 다양한 다른 형태들로 구현될 수도 있다. 또한, 본 명세서에 기술된 방법들 및 시스템들의 형태에서의 다양한 생략들, 치환들 및 변경들이 보호의 범위로부터 벗어남이 없이 이루어질 수도 있다.
개관
셀-당-다수-레벨 (MLC) 플래시 메모리와 같은 솔리드-스테이트 메모리에서의 데이터 저장 셀들은, 상이한 메모리 스테이트들 (states) 에 대응하는, 구분되는 임계 전압 분포 (Vt) 레벨들을 가질 수도 있다. 예를 들어, MLC 구현에서, 솔리드-스테이트 메모리에서의 상이한 메모리 스테이트들은 판독 전압 (reading voltage; VR) 레벨들 사이의 범위에 있는 전압 레벨들의 분포 (distribution) 에 대응할 수도 있고; 메모리 셀의 전하가 특정 범위 내에 속할 때, 페이지 (page) 의 하나 이상의 판독치들 (reads) 은 셀의 대응하는 메모리 상태를 나타낼 수도 있다. "판독 (read)" 이라는 용어는 본 명세서에서 그것의 넓은 그리고 통상적인 의미에 따라 솔리드-스테이트 메모리의 전압 판독들에 대해 사용되고, 복수의 셀들 (예컨대, 수천개의 셀들) 을 포함하는 페이지에 대한 판독 동작들을 지칭할 수도 있고, 또는, 단일 메모리 셀의 전압 충전 레벨에 대해 사용될 수도 있다.
판독 전압 레벨들은 유리하게는 메모리 스테이트들 사이의 마진들 (margins) 에서의 값들로 설정될 수 있다. 그들의 전하 레벨에 따라, 메모리 셀들은 사용자 데이터를 나타내는 상이한 바이너리 (binary) 데이터를 저장한다. 예를 들어, 그것의 전하 레벨에 기초하여, 각 셀은, 연관된 데이터 비트들에 의해 표현되는, 메모리 스테이트들 중 하나의 스테이트 내에 일반적으로 속한다.
시간에 걸쳐서, 그리고 다양한 물리적 조건들 및 반복되는 프로그램/소거 (program/erase; P/E) 사이클들로부터의 마모 (wear) 의 결과로서, 다양한 분포 레벨들 사이의 마진들은 감소될 수도 있어, 전압 분포들은 어느 정도 중첩된다. 판독 마진에서의 이러한 감소는, 플래시 셀 산화물 열화로 인한 전하의 손실, 불규칙한 프로그램 스텝들에 의해 야기되는 오버-프로그램, 셀의 국부에서의 과중한 판독들 및 기록들로 인한 인접하는 소거된 셀들의 프로그램 (또는 기록 교란들 (write disturbs)), 및/또는 기타 팩터들과 같은 다수의 팩터들에 기인할 수도 있고, 이들 모두는 솔리드-스테이트 스토리지 디바이스에서의 판독 실패 (read failure) 에 기여할 수도 있다.
데이터 손상 (data corruption) 에 추가하여, 판독 실패는 디바이스 내부의 메모리 셀들의 전압 분포 시프트들 (shifts) 에 적응되지 않는 고정된 판독 전압 레벨들의 사용으로부터 초래될 수 있다. 비록 디바이스들은 고정된 (fixed) 제조자-결정된 판독 전압 레벨들로 프로그램될 수도 있지만, 특정 실시형태들은 이러한 디폴트 (default) 제조자 판독 레벨들의 오버라이딩 (overriding) 을 제공할 수도 있다. 본 명세서에서 개시된 특정 실시형태들은, 향상된 데이터 복원 (recovery) 을 제공할 수도 있는 조정된/최적화된 (adjusted/optimized) 전압 레벨들에서 메모리 셀들을 판독하기 위한 시스템들 및 방법들을 제공한다. 특히, 조정된/최적의 판독 전압 레벨들을 결정하기 위한 3 가지 기술들이 이하 설명되고, 이는 일반적인 또는 사전-교정된 (pre-calibrated) 솔리드-스테이트 메모리들에 적용가능할 수도 있다.
용어
본 명세서에서 사용된 "페이지 (page)" 또는 "E-페이지 (E-page)" 라는 용어는 본 명세서에서 개시된 실시형태들의 데이터 정정의 단위를 지칭할 수도 있다. 예를 들어, 에러 정정/교정 (correction/calibration) 동작들은 페이지 별로 수행될 수도 있다. 데이터의 페이지는 임의의 적합한 사이즈의 것일 수도 있다. 예를 들어, 페이지는 1k, 2k, 4k, 또는 그보다 많은 바이트들의 데이터일 수도 있다. 또한, "로케이션 (location)" 또는 "메모리 로케이션 (memory location)" 이라는 용어는 그것의 넓은 그리고 통상적인 의미에 따라서 본 명세서에서 사용되고, 하나 이상의 데이터 스토리지 디바이스들 내의 메모리 셀들의 임의의 적합한 파티션 (partition) 을 지칭할 수도 있다. 메모리 로케이션은 메모리 셀들 또는 어드레스들의 연속적인 어레이 (예컨대, 페이지) 를 포함할 수도 있다.
이 출원에서 사용된 바와 같이, "비-휘발성 솔리드-스테이트 메모리 (non-volatile solid-state memory)" 는 NAND 플래시와 같은 솔리드-스테이트 메모리를 지칭할 수도 있다. 하지만, 이 개시의 시스템들 및 방법들은 보다 종래의 하드 드라이브들 및 솔리드-스테이트 및 하드 드라이브 컴포넌트들 양자를 포함하는 하이브리드 드라이브들에서 또한 유용할 수도 있다. 솔리드-스테이트 메모리는, 집적 회로, 상 변화 메모리 (PC-RAM 또는 PRAM), 프로그래머블 메탈라이제이션 셀 RAM (PMC-RAM 또는 PMCm), OUM (Ovonic Unified Memory), 저항 RAM (RRAM), NAND 메모리, NOR 메모리, EEPROM, 강유전체 메모리 (FeRAM), MRAM, 또는 다른 이산 NVM (비-휘발성 솔리드-스테이트 메모리) 칩들과 같은 아주 다양한 기술들을 포함할 수도 있다. 비-휘발성 솔리드-스테이트 메모리 어레이들 또는 스토리지 디바이스들은, 당해 기술분야에서 알려진 바와 같이, 평면들 (planes), 블록들 (blocks), 페이지들 (pages), 및 섹터들 (sectors) 로 물리적으로 나누어질 수도 있다. 다른 형태들의 스토리지 (예컨대, 배터리 백업되는 휘발성 DRAM 또는 SRAM 디바이스들, 자기 디스크 드라이브들 등) 가 추가적으로 또는 대안적으로 사용될 수도 있다.
데이터 스토리지 시스템
도 1 은 에러 관리 기능을 통합하는 솔리드-스테이트 스토리지 디바이스 (120) 의 일 실시형태를 나타내는 블록도이다. 도시된 바와 같이, 솔리드-스테이트 스토리지 디바이스 (120) (예컨대, 하이브리드 하드 드라이브, 솔리드-스테이트 드라이브, 솔리드-스테이트 메모리를 이용하는 임의의 저장 디바이스 등) 는 제어기 (130) 를 포함하고, 이 제어기는 다시 에러 관리 모듈 (140) 을 포함한다. 특정 실시형태들에서, 에러 관리 모듈 (140) 은, 복수의 플래시 페이지들을 각각 포함하는 하나 이상의 블록들의 스토리지를 포함할 수도 있는, 하나 이상의 비-휘발성 솔리드-스테이트 메모리 어레이들 (150) 의 소정 종류들의 내부 데이터 손상을 검출 및 정정하도록 구성된다. 제어기 (130) 는, 하나 이상의 안정적인 메모리 타입들의 것일 수도 있는 내부 메모리 (미도시) 를 더 포함할 수 있다. 일부 실시형태들에서, 제어기 (130) 는 이하 더 자세히 설명되는 바와 같이 판독 전압 레벨 조정을 수행하도록 구성된다.
에러 관리 모듈 (140) 은 비-휘발성 메모리 어레이(들) (150) 로/로부터 전송된 데이터를 인코딩 및 디코딩하기 위한 에러 정정 모듈 (144) 을 포함한다. 또한, 에러 관리 모듈 (140) 은, 메모리 어레이(들)에 저장된 데이터를 디코딩하기 위한 에러 정정 모듈의 능력을 증가시키기 위해 본 명세서에서 개시된 하나 이상의 실시형태들에 따라 에러 정정 모듈 (144) 에 최적의 데이터를 제공하기 위해 조정된/최적의 판독 전압 레벨들을 계산하기 위한 최적의 VR 계산 모듈 (142) 을 포함한다.
특정 실시형태들에서, 제어기 (130) 는 호스트 시스템 (110) 에 상주하는 스토리지 인터페이스 (예컨대, 디바이스 드라이버) (112) 로부터 메모리 액세스 명령들을 수신하도록 구성된다. 제어기 (130) 는 비-휘발성 솔리드-스테이트 메모리 어레이들 (150) 에서 이러한 호스트-발행된 메모리 명령들에 응답하여 명령들을 실행하도록 구성된다. 스토리지 인터페이스 (112) 에 의해 통신되는 스토리지 액세스 명령들은 호스트 시스템 (110) 에 의해 발행되는 기록 (write) 및 판독 (read) 명령들을 포함할 수 있다. 이 명령들은 솔리드-스테이트 스토리지 디바이스 (120) 에서의 블록 어드레스를 명시할 수 있고, 제어기 (130) 는 비-휘발성 솔리드-스테이트 메모리 어레이 (150) 에서, 수신된 명령들을 실행할 수 있다. 데이터는 이러한 명령들에 기초하여 액세스/전송될 수도 있다. 일 실시형태에서, 솔리드-스테이트 스토리지 디바이스 (120) 는 자기 메모리 스토리지 (미도시) 를 추가적으로 포함하는 하이브리드 디스크 드라이브일 수도 있다. 이러한 경우에, 하나 이상의 제어기들 (130) 은 자기 메모리 스토리지 및 비-휘발성 솔리드-스테이트 메모리 어레이(들) (150) 을 제어할 수도 있다.
솔리드-스테이트 스토리지 디바이스 (120) 는 호스트 시스템 (110) 으로부터 수신된 데이터를 저장할 수 있어, 솔리드-스테이트 스토리지 디바이스 (120) 는 호스트 시스템 (110) 에 대해 메모리 스토리지로서 작용할 수 있다. 이 기능을 용이하게 하기 위해, 제어기 (130) 는 논리적 인터페이스를 구현할 수 있다. 논리적 인터페이스는, 데이터가 저장될 수 있는 논리적 어드레스들의 셋트 (예컨대, 연속적인 어드레스) 로서 호스트 시스템 (110) 스토리지 시스템 메모리에 제시할 수 있다. 내부적으로, 제어기 (130) 는 비-휘발성 솔리드-스테이트 메모리 어레이 (150) 및/또는 다른 메모리 모듈(들)에서 다양한 물리적 메모리 어드레스들에 논리적 어드레스들을 맵핑할 수 있다.
솔리드-스테이트 메모리에서의 메모리 셀 분포
도 2 는 일 실시형태에 따른 비-휘발성 솔리드-스테이트 메모리 어레이에서 셀들의 확률 분포를 나타내는 그래프이다. 다중-레벨 셀 (MLC) NAND 플래시 메모리와 같은 플래시 메모리는 셀 당 2 이상의 비트들의 정보를 저장할 수도 있다. 본 명세서에서 개시된 특정 실시형태들은 MLC 들의 맥락에서 기술되지만, 본 명세서에서 개시된 개념들은 단일 레벨 셀 (SLC), 3-레벨 셀 (TLC) 기술 (MLC NAND 의 일 유형), 및/또는 다른 유형들의 기술과 양립가능할 수도 있다는 것을 이해하여야 한다. 데이터는 일반적으로 바이너리 포맷으로 MLC NAND 플래시 메모리에 저장된다. 예를 들어, 셀-당-2-비트 메모리 셀들은 4 개의 구분 프로그램 전압 레벨들을 가질 수 있고, 셀-당-3-비트 메모리 셀들은 8 개의 구분 프로그램 전압 레벨들을 가질 수 있는 등이다. 따라서, 개별 메모리 셀들은 거기에 저장된 전하의 양에 따라 상이한 바이너리 비트들을 저장할 수 있다.
도 2 에 묘사된 수평 축은 셀 전압 레벨을 나타낸다. 수직 축은 대응하는 전압 값들을 가지는 셀들의 수를 나타낸다. 따라서, 4 개의 분포 커브들 (curves) 은 대응하는 전압 값들을 갖는 4 개의 분포들에 의해 쪼개진 셀들의 수를 나타낸다. 도시된 바와 같이, 메모리 셀들의 전압 분포는 복수의 구분 레벨들, 또는 스테이트들 (예컨대, 도시된 바와 같이 이 예의 셀-당-2-비트 MLC 구성에서 스테이트들 0-3) 을 포함할 수도 있다. 판독 기준 값들 (즉, 전압 임계 레벨들 R1-R3) 은 이들 레벨들 사이에 놓일 수도 있다. 특정 실시형태들에서, 판독 전압 값들 (R1, R2, 및 R3) 은 디바이스 제조자에 의해 사전설정될 수도 있다. 예를 들어, NAND 플래시 디바이스에 대해, 판독 전압 레벨들 (R1, R2, 및 R3) 은 NAND 제조자에 의해 사전-교정될 수도 있고, NAND 플래시 칩 ROM 레지스터들에 저장될 수도 있다. NAND 제조자들은 일반적으로-적용가능한 디바이스 특성들 (characteristics) 에 기초하여 NAND 에 저장된 데이터의 성공적인 독출 (readout) 을 제공하기 위해 이들 VR 들을 최적화할 수도 있다. 하지만, VR 들의 사전-정의된, 정적 셋트들은, 적용들에서 종종 직면되는 플래시 메모리 노후화 (aging) 및 데이터 보유 영향들을 포함할 수도 있는 다양한 동작 상황들에 대해 적당하지 않을 수도 있다.
특정 실시형태들에서 판독 전압 기준들이 유리하게는 위치될 수도 있는 레벨들 사이의 갭 (즉, 프로그램된 스테이트들 사이의 마진) 은 "판독 마진 (read margin)" 으로서 지칭될 수도 있다. 시간에 걸쳐서, 그리고 다양한 물리적 조건들 및 예를 들어 반복되는 P/E 사이클들을 겪는 것으로부터의 마모의 결과로서, 다양한 분포 레벨들 사이의 판독 마진들이 감소될 수도 있고, 데이터 보유 문제들 및 소정의 제한들을 넘는 보다 높은 판독 에러들 양자를 초래하게 된다. 판독 마진에서의 이러한 감소는 플래시 셀 산화물 열화로 인한 전하의 손실, 불규칙한 프로그램 스텝들에 의해 야기되는 오버-프로그램, 셀의 국부에서의 과중한 판독들 및 기록들로 인한 인접하는 소거된 셀들의 프로그램 (또는 기록 교란들), 및/또는 기타 팩터들과 같은 다수의 팩터들에 기인할 수도 있다. 판독 마진들이 줄어들거나 사라짐에 따라, R1, R2, 및 R3 와 같은 고정된 판독 전압 레벨들은 덜 신뢰가능한 것으로 드러나게 될 수도 있다. 따라서, 특정 실시형태들에서 하나 이상의 판독 전압 레벨들의 조정은 디코딩 신뢰성을 향상시킬 수 있다.
도 2 의 도면은 셀-당-2-비트 플래시 메모리들에 대한 분포를 도시하고 있지만, 본 명세서에서 개시된 실시형태들 및 특징들은 다른 유형들의 코딩 방식들에 적용가능할 수도 있다. 도 2 의 실시형태에 대해, 스테이트들 0-3 에 대한 코딩은 예를 들어 '11, '01', '00', 및 '10' 또는 임의의 다른 코딩일 수 있다. 각 셀은 예시된 스테이트들 중 하나에 일반적으로 속할 수도 있고, 대응하여 2 비트들을 나타낸다. NAND 어레이에서 수천개의 셀들에 접속될 수 있는 하나의 워드 라인 (word line; WL) 에 대해, 셀들의 하위 디지트 (lower digit) 는 "하위 페이지 (lower page)" 로서 지칭될 수도 있고, 상위 디지트 (upper digit) 는 "상위 페이지 (upper page)" 로서 지칭될 수도 있다. 셀-당-3-비트 플래시 메모리들에 대해, "중간 페이지들 (middle pages)" 로서 지칭될 수도 있는 중간 디지트들이 또한 존재할 수도 있다. 판독 전압 레벨들 및 동작들은 이들 스테이트들의 코딩에 의존적이다. 예를 들어, 셀-당-2-비트 플래시 메모리들에 대해 도 2 에서 도시된 바와 같은 코딩에 대해, R2 에서의 하나의 판독은 하위 페이지를 판독해낼 필요가 있을 수도 있고, R1 및 R3 양자에서의 2 개의 판독들은 상위 페이지를 판독해낼 필요가 있을 수도 있다. 도 2 의 분포에서 도시된 바와 같이, 이들 판독 전압들은, 상이한 스테이트들에 대한 분포들이 그들 사이에 중첩이 존재하지 않도록 좁은 경우에, 스테이트 분포들 사이에 선택될 수도 있다.
도 3 은 일 실시형태에 따른 확률 분포의 스테이트 크로스 포인트 시프트 (state cross point shift) 를 나타내는 그래프이다. 이 그래프는 솔리드-스테이트 메모리에 대한 3 개의 프로그램 상태들과 대응하는 3 개의 분포 봉우리들 (humps) 을 보여준다. 각 분포는 복수의 커브들에 의해 표현되고, 각 커브는 상이한 데이터 보유 스테이트에 대응하며, 데이터 보유 시간은 좌에서 우로 갈수록 일반적으로 증가한다. 그래프에서 나타난 화살표들은 시간에 걸쳐 각각의 분포들 사이의 크로스 포인트들에서의 시프트를 나타낸다.
X-축을 따른 'R2' 및 'R3' 로 라벨링된 수직 라인들은 2-비트 프로그램 방식에서 3 개의 판독 전압들 중 2 개에 대한 사전설정된 제조자의 설정들을 나타낸다. 제 3 판독 전압 (R1) 은 0V 에 비교적 가깝게 설정될 수도 있고, 편의상 본 논의에서 일반적으로 무시된다. 이들 사전설정된 레벨들은, 초기에 그들이 최적의 판독 레벨의 좌측에 배치될 수도 있도록 설정될 수도 있고, 시간에 걸쳐, 최적의 판독 레벨은 좌측으로 이동하여 그 사전설정된 레벨을 통과한다. 언급된 바와 같이, 화살표들은, 일 실시형태에서 스테이트 크로스 포인트들이 데이터 보유 (data retention; DR) 시간 (초기 기록과 현재의 판독 동작 사이의 시간) 으로 어떻게 시프트할 수도 있는지를 나타낸다. 독출로부터의 에러들을 최소화하기 위해, 이러한 판독 전압들은 스테이트 크로스 포인트들에서 또는 그 부근에서 설정될 수도 있다. 크로스 포인트들은 시프트할 수도 있기 때문에, 특정 실시형태들에서, 판독 전압들은 또한 디코딩을 향상시키기 위해 시프트할 수도 있다. 도 3 의 그래프에서 예시된 바와 같이, 판독 전압 레벨들이 디폴트 레벨들에서 고정되는 경우에, 도시된 화살표들의 끝에서 분포 커브들에 의해 표현되는 메모리 셀들에 대해서와 같이 소정의 데이터 보유 상황들에 대해 상당한 양의 판독 에러들이 초래될 수도 있다.
도 3 에서 예시된 바와 같이, 프로그램 분포들은 시간에 걸쳐 확산되어 나갈 수도 있고, 디코딩 동안 레지스터링된 비트 에러들에서의 증가들을 초래한다. 도 4 는 예시적인 솔리드-스테이트 스토리지 디바이스에서 비트 에러 레이트 대 시간 관계 데이터를 나타내는 그래프이다. 도 4 의 그래프는, 제조자 디폴트 판독 전압 레벨들이 그래프에서 예시된 타임라인 전체에 걸쳐 사용되는 솔리드-스테이트 스토리지 디바이스에 대응한다. 예시된 실시형태에서, 데이터 보유 (DR) 시간 = 114 시간에 대해 계산된 로 (raw) 또는 잔여 비트 에러 레이트 (residual bit error rate; RBER) 이 일 실시형태에서 대략 0.0245 이다. 이러한 RBER 값은 (예컨대, 로그 x 축 상에 나타난, 대략 DR 시간 = 2 시간 및 5 시간에서 취해진 데이터 포인트들에 의해 나타낸 바와 같이) 도 4 에서 언급되는 디바이스에 의해 경험되는 최소 RBER 의 대략 10 배를 나타낼 수도 있고, 여기서, 디폴트 VR 들은 스테이트 크로스 포인트들에 비교적 가까울 수도 있다.
솔리드-스테이트 스토리지 디바이스의 독출이 제조자-제공된 VR 들에서의 판독에 의해 실패하는 경우에도, 연관된 데이터는 반드시 손실되지는 않을 수도 있다. 여러 번 데이터는 제조자의 설정들로부터 멀어져 보다 최적의 전압 레벨 (예컨대, 도 3 에서 도시된 스테이트 크로스-포인트들) 로 VR 들을 시프팅함으로써 쉽게 복원가능하다. 예를 들어, 디폴트 VR 들에서 판독될 때 대략적으로 2.45×10-2 의 RBER 값을 갖는 도 4 에서 나타낸 DR 시간 = 114 시간의 경우에 대해, RBER 은 스테이트 크로스 포인트들에 따라 VR 들을 조정함으로써 특정 실시형태들에서 대략적으로 2.51×10-3 으로 낮춰질 수도 있다. 즉, 특정 실시형태들에서, RBER 에서 1 차의 크기 향상은 판독 전압 레벨들을 시프팅시킴으로써 획득가능할 수도 있다. 따라서, 제조자의 사전설정된 디폴트 VR 들에서 대신에 조정된/최적의 VR 들에서의 판독은 기록된 데이터를 성공적으로 판독해내고 RBER 을 억제하기 위해 바람직할 수도 있다. 연판정 (soft-decision) LDPC 에 대한 LLR 생성과 같은 많은 애플리케이션들은 최적의 판독 전압들의 정보로부터 또한 혜택을 받을 수도 있다. 조정된/최적의 VR 들을 계산하기 위한 다양한 방법들 및 구현형태들이 이하 논의된다.
최적의 VR 계산
도 5 는 솔리드-스테이트 메모리에 대한 판독 전압 레벨들을 계산하기 위한 프로세스 (400) 의 실시형태에서 예시하는 흐름도이다. 프로세스 (400) 는, 임의의 바람직한 방식으로 결정될 수도 있는, 알려진 (known) 프로그램/소거 (P/E) 조건에 기초하여 메모리를 교정하는 것을 포함할 수도 있다 (블록 402). 특정 실시형태들에서, 최적의 VR 계산은, 성공적인 데이터 독출을 제공하는 (즉, 비트 에러들은 에러 정정의 능력 내에서 정정가능하다) (알려진 데이터를 포함할 수도 있는) 패싱 참조 페이지들에 대해 블록 404 에서 수행되고, 그 후에, 블록 408 에서, 계산된 최적의 VR 들은 참조 페이지들과 연관된 타겟 (target) 페이지들에 적용된다. 블록 406 에서, 프로세서 (400) 는 또한, 타겟 페이지들 중 하나일 수도 있는 실패한 페이지에 대해 최적의 VR 계산을 수행할 수 있다.
일 실시형태에서, 타겟 페이지들은 유사한 특성들을 갖는 하나 이상의 참조 페이지(들)와 연관될 수도 있다. 예를 들어, 블록에서의 패싱 페이지 (passing page) 는, 동일 블록 내의 페이지들은 동일한 수의 P/E 사이클들을 경험한 것으로 가정되기 때문에, 동일 블록에서의 모든 페이지들에 대해 참조 페이지 (reference page) 로서 지정될 수도 있다. 다른 예에서, 타겟 페이지와 동일 블록 내의 임의의 패싱 페이지는 타겟 페이지에 대해 참조 페이지로서 고려될 수 있을 것이다. 또 다른 예에서, 타겟 페이지가 위치하는 블록에 이웃하는 (neighboring) 블록들의 지정된 범위 내의 임의의 패싱 페이지는 참조 페이지로서 고려될 수도 있다. 다른 한편으로, 패싱 페이지들이 이용가능하지 않은 경우와 같은 특정 실시형태들에서, 실패한 페이지들에 대한 최적의 VR 들의 직접적인 발견이 또한 수행될 수도 있다. 실패한 페이지들로부터의 직접적 계산을 수반하는 특정 방법들은 패싱 참조 페이지들의 이용을 필요로 하는 방법들보다 더 많이 복잡해질 수도 있다.
솔리드-스테이트 스토리지 디바이스들에서, 주어진 블록에 대한 P/E 사이클 수는 알려져 있을 수도 있다. P/E 조건에 따라 메모리를 예비적으로 교정하는 것은 P/E 사이클링에 따라 데이터 보유 정보를 제공할 수도 있고, 이에 의해 최적의 VR 계산을 단순화한다. 교정-기반 및 비-교정 기술들 양자를 포함하는, 솔리드-스테이트 스토리지 디바이스들에서 조정된 VR 들을 계산하기 위한 3 가지 방법들이 이하 개시된다. 또한, 이하 설명되는 방법들은 패싱 및 실패 페이지들 양자에 기초한 VR 계산을 구현한다. 프로세스 (400) 는, 적어도 부분적으로, 도 1 에 관해 상기 설명된 제어기 (130), 최적의 VR 계산 모듈 (142), 및/또는 에러 정정 모듈 (144) 에 의해 수행될 수도 있다.
데이터 보유 인덱스 방법
도 6a 는 데이터 보유 인덱스를 생성하기 위한 프로세스 (600A) 의 일 실시형태를 나타내는 흐름도이다. 도 6a 에서 예시된 이 프로세스는 패싱 페이지들 또는 블록들에 대해 이용될 수도 있고, 여기서, P/E 사이클 수는 알려진다. 프로세스 (600A) 는, 블록 610 에서, VR 시프트와 데이터 보유 사이의 관계를 결정하기 위해 알려진 P/E 조건에 따라 솔리드-스테이트 스토리지 디바이스를 교정하는 것을 포함한다. 본 명세서에서 논의된 바와 같이, 최적의 판독 전압 레벨은 P/E 사이클들, 및 시간, 온도 등을 포함하는 데이터 보유 이력과 같은 다양한 팩터들에 의존할 수도 있다. 유사한 판매자 유래 및/또는 기술 노드를 갖는 솔리드-스테이트 메모리는 유사한 특성들을 가질 수도 있다. 따라서, 유사한 P/E 사이클들을 경험한 특정 메모리 블록들은 유사한 데이터 보유 특성들을 가질 수도 있고; 이러한 드라이브들은 유사한 저장 환경들을 겪을 때 유사한 VR 시프트를 가질 수도 있다. 알려진 P/E 수들을 이용한 페이지들 또는 블록들의 예비적 교정은, 솔리드-스테이트 스토리지 디바이스들에서 P/E 수가 종종 이용가능하기 때문에, VR 시프트와 데이터 보유 특성들 사이의 관계의 지식을 획득하기 위해 실시될 수도 있다. 특정 실시형태들에서, 교정은 다양한 P/E 조건들에 대해 스토리지 디바이스의 데이터 보유 특성들을 측정하는 것을 수반한다. 예를 들어, 비교적 높은 P/E 수들은, 그들이 심각한 마모를 나타내고 판독 에러들의 더 큰 가능성으로 이끌기 때문에 특별한 관심사일 수도 있다. 특정 실시형태들에서, 교정은 유한 셋트의 P/E 수들의 샘플링을 수반한다. 측정된 셋트에 있지 않은 P/E 수들과 연관된 정보는 내삽 또는 외삽을 이용하여 추정될 수도 있다.
데이터 보유 시간 및 다른 팩터들은 획득하기 어려울 수 있기 때문에, 모든 DR 영향들을 통합하는 정보는 최적의 VR 시프트를 추정함에 있어서 도움이 될 수 있다. 일단 VR 시프트와 데이터 보유 사이의 관계가 알려지면, 블록 610 에서 프로세스 (600A) 는 플립된-비트 카운트들 (flipped-bit counts) 을 최적의 전압 시프트에 관련시키는 인덱스 (index) 를 생성한다. 이러한 인덱스 데이터는, 온도, 타임 스탬프 등을 포함하는 데이터 저장 이력의 상세한 지식의 필요 없이 프로그램 분포들이 어떻게 및/또는 어느 정도 시프트되었는지의 표시를 제공할 수도 있다. 따라서, 이러한 인덱스 데이터는 판독에 있어서 비트 에러 레이트를 최소화하기 위해 판독 전압들을 조정하기 위해 이용될 수도 있다. 특정 실시형태들에서, 프로세스 (600A) 는, 블록 620 에서, 생성된 인덱스 데이터를 솔리드-스테이트 스토리지 디바이스에 저장하고, 여기서, 솔리드-스테이트 스토리지 디바이스는 정상 동작 동안 그 인덱스 데이터를 액세스할 수도 있다. 예를 들어, 인덱스 데이터는 솔리드-스테이트 스토리지 디바이스의 예약된 부분 (예컨대, 예약 테이블) 에 저장될 수도 있다.
도 6b 는 데이터 보유 인덱스를 이용하기 위한 프로세스 (600B) 의 일 실시형태를 나타내는 흐름도이다. 프로세스 (600B) 는, 블록 640 에서, 플립된-비트 카운트 데이터와 같은, 알려진 참조 페이지의 데이터 보유 특성들을 결정하는 것을 포함한다. 데이터 보유 정보는, 블록 660 에서 조정된 VR 레벨들을 찾기 위해 드라이브에 저장된 데이터 보유 인덱스 데이터를 블록 650 에서 액세스할 때 이용될 수도 있다. 예를 들어, 인덱스는 룩-업 테이블 (look-up table) 일 수도 있고, 여기서, 비트-플립 (bit-flip) 데이터는 인덱스에서의 VR 시프트 데이터와 연관될 수도 있다. 일단 VR 시프트 데이터가 인덱스를 이용하여 획득되면, 블록 670 에서 시프트된 판독 레벨을 이용하여 타겟 페이지가 판독될 수도 있고, 이에 의해, 데이터 디코딩 성능을 향상시킨다. 프로세스들 (600A, 600B) 은 적어도 부분적으로, 도 1 에 관해 상기 설명된 제어기 (130), 최적의 VR 계산 모듈 (142), 및/또는 에러 정정 모듈 (144) 에 의해 수행될 수도 있다.
데이터 보유 특성들을 변경하는 것에 응답하여 최적의 VR 시프트를 고려하면, 솔리드-스테이트 스토리지 디바이스가 제조자 디폴트 VR 들을 이용하여 계속적으로 판독되는 경우에 에러 비트 카운트는 데이터 보유 특성들이 변경됨에 따라 변화할 수도 있다. 테이블 A 는 에러 비트 카운트 정보 대 데이터 보유 조건의 일 예를 제공하고, 여기서, 솔리드-스테이트 스토리지 디바이스의 일 실시형태의 블록에 대해 R2 에 대해 디폴트 VR 에서 판독할 때, 데이터 보유 조건을 변동시키는 것은 경과된 시간에 기초한다:
테이블 A
DR 시간 (40℃ 에서) 1->0 log(1->0) R2
0 시간 174084 5.240759 2.28
1 일 98952 4.995425 2.1
2 일 85064 4.929746 2.06
1 주 58364 4.766145 1.94
1 개월 38728 4.588025 1.8
3 개월 27430 4.438226 1.68
6 개월 21518 4.332802 1.6
1 년 16886 4.227527 1.52
2 년 13529 4.131266 1.46
테이블 A 의 제 3 열은 하위 페이지 1->0 플립 비트 카운트들의 로그 값을 나타내는 데이터를 포함한다. 도 7 은 일 실시형태에서 판독 전압 레벨 시프트 대 비트 에러 카운트 관계 데이터를 보여주는 그래프이다. 도 7 의 그래프에서 보여지는 바와 같이, VR 시프트는 특정 실시형태들에서 플립된 비트 카운트 데이터와 선형의 관계를 가질 수도 있다.
데이터 보유 교정은 VR 시프트와 연관된 소정의 정보를 제공할 수도 있다. 예를 들어, 테이블 B 는 유도된 변화하는 데이터 보유 조건들 (테이블 B 에서 나타낸 바와 같이 다양한 시간 주기들에 대해 소정 온도에서 메모리를 베이킹하는 것을 통해 유도된 솔리드-스테이트 스토리지 디바이스의 증가하는 연령) 에 대해 차트된 R2 및 R3 시프트 데이터를 제공한다. 테이블 B 에서 예시된 전압 시프트 값들은 R2 = 1.82 V 및 R3 = 3.36 V 의 디폴트 값들 (또는 제조자 설정들) 에 대해 결정된다.
테이블 B
베이크 시간 최적의 R2 최적의 R3 R2 시프트 R3 시프트
0 2.19 3.74 0.37 0.38
1 2.02 3.56 0.2 0.2
2 1.93 3.46 0.11 0.1
5 1.85 3.38 0.03 0.02
10 1.78 3.3 -0.04 -0.06
25 1.68 3.2 -0.14 -0.16
50 1.61 3.12 -0.21 -0.24
114 1.5 3.02 -0.32 -0.34
도 8 은 일 실시형태에서 테이블 B 에 포함된 R2 및 R3 양자에 대한 판독 전압 레벨 시프트 데이터를 보여주는 그래프이다. 도 8 의 그래프는, 특정 실시형태들에 대해, R2 시프트와 R3 시프트 사이에 실질적으로 선형의 관계가 존재하는 것을 보여준다. 따라서, R2 또는 R3 중의 하나에 대해, 다른 것의 지식에 적어도 부분적으로 기초하여 전압 시프트를 도출하는 것이 가능할 수도 있다. R2 와 R3 시프트들 사이에 관계가 존재하는 경우에, 상위 페이지 거동을 예측하기 위해 하위 페이지 정보가 이용될 수도 있다. 특정 실시형태들에서, 이러한 관계 정보의 이용은 시스템 자원을 절약하는 것을 도울 수도 있다.
RBER 다항식 피팅 방법
본 명세서에서 개시된 특정 실시형태들은 다항식 피팅 (polynomial fitting) 기법들을 이용하여 VR 시프트를 계산하기 위한 방법들을 제공한다. 일 실시형태에서, VR 시프트는 패싱 참조 페이지들 또는 블록들에 대해 다항식 피팅을 이용하여 계산될 수도 있다. P/E 사이클 조건의 지식이 필요할 수도 있다. 도 9 및 도 10 은, 로 비트 에러 레이트 카운트 데이터의 다항식 피팅이 어떻게 VR 시프트를 계산하기 위해 이용될 수도 있는지를 나타내는데 유용할 수도 있다. 도 9 및 도 10 은 솔리드-스테이트 스토리지 디바이스들의 하나 이상의 실시형태들에 대한 그래픽적 비트 에러 카운트 데이터를 보여주고, 여기서, 로 비트 에러 카운트들은 MLC 방식에서 하나의 VR 을 고정된 다른 VR 로 스캐닝하는 것으로부터 초래되는 것으로 나타난다. 도면들에서 나타난 바와 같이, 특정 실시형태들에서, 로 비트 에러 카운트 데이터는 포물선과 같은 다항식 함수에 의해 대략적으로 피팅될 수 있다. 따라서, 비트 에러 레이트 데이터를 모델링하는 것은, VR 들의 범위에 걸친 비트 에러 레이트의 수학적 표현의 생성을 허용할 수 있고, 이 수학적 표현은 최저 비트 에러 카운트의 포인트를 결정하기 위해 풀릴수도 있다. 예를 들어, 2-차 다항식 (즉, 포물선) 방정식의 도함수는, 비트 에러 로우 포인트에 대응할 수도 있는 커브의 제로-기울기 포인트를 발견하기 위해 해결될 수 있다. 도 9 의 예에서, 최저 비트 에러는 R3 레벨에 대해 대략적으로 3.82V 에서 발견되고, 도 10 의 예에서, 비트 최저 에러는 R2 레벨에 대해 대략적으로 2.18V 에서 발견된다.
도 11 은 일 실시형태에서 비트 에러 카운트 데이터를 보여주는 그래프이다. 특정 실시형태들에서, 3 개 이상의 비트 에러 카운트 데이터 포인트들이 참조 페이지 또는 블록에 대해 판독 전압 레벨들의 범위에 걸쳐 결정된다. MLC 방식에 대해, 하나의 VR (R2) 은 고정될 수도 있는 한편, 제 2 VR (R3) 은 다수의 데이터 포인트들을 획득하기 위해 시프트된다. 예를 들어, 도 11 의 그래프에서 나타낸 바와 같이, R3 는 판독들 사이에서 대략적으로 0.2V 만큼 시프트될 수도 있다. 3 개 이상의 판독들이 모두 제조자의 디폴트 판독 레벨의 미리결정된 범위 내에서 취해질 수도 있다. 특정 실시형태들에서, 로 비트 에러 카운트는 전압에 대해 플로팅되고, 3-차 커브에 대해 3 개 이상의 데이터 포인트들을 피팅하기 위해 포물선 피팅이 사용된다. 도 11 의 실시형태에서, 최적의 판독 전압 레벨 (R3) 은 도시된 바와 같이 대략적으로 3.13V 일 수도 있고, 이는 3-차 커브의 도함수가 0 과 동일한 포인트에 대해 해결 (solving) 하는 것에 의해 결정될 수도 있다. 커브를 피팅하기 위해 적어도 하나의 데이터 포인트가 로컬 (local) 최소치들의 각 사이드에 있을 필요가 있을 수도 있다. 도 12a 및 도 12b 는 R3 주위에서 비트 에러 데이터의 테이블 및 그 데이터에 대한 3-차 다항식 피팅의 그래픽적 표현을 각각 제공한다.
테이블 C 에 나타낸 것은 일 실시형태에서 메모리의 블록에 대해 P/E 사이클 카운트들의 범위에 대해 다항식 피팅 및 로 비트 에러 카운트 향상 데이터를 이용하여 발견된 최적의 VR 들이다. 나타낸 바와 같이, 포물선 피팅을 이용하여 VR 을 조정하는 것은 특정 실시형태들에서 1k 보다 더 큰 P/E 수들에 대해 3 이상의 팩터 (factor) 만큼 비트 에러 감소를 제공할 수도 있다. 아래의 테이블 C 에서, R1(V), R2(V), 및 R3(V) 로 라벨링된 행들은 개별 P/E 레벨들에서 최적의 판독들에서 이용되는 VR 들을 나타낸다.
테이블 C
P/E No. ('000) 0 1 2 3 4 5 6 7 8
R1 (V) 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18
R2 (V) 1.88
2.02 1.94 2.00 2.02 2.06 2.06 2.08 2.12
R3 (V) 3.40 3.54 3.56 3.60 3.62 3.66 3.64 3.66 3.70
로 비트 에러 카운트 (디폴트) 153 6493 19593 37349 59511 87853 117851 147123 182587
로 비트 에러 카운트 (최적) 151 2137 5930 10025 15802 22708 31922 40237 50762
향상 팩터 1.01 3.04 3.30 3.73 3.77 3.87 3.69 3.66 3.60
도 13 은 상기 설명된 다항식 피팅 방법을 이용하여 판독 전압 레벨들을 계산하기 위한 프로세스 (1300) 의 일 실시형태를 나타내는 흐름도이다. 프로세스 (1300) 는 판독 전압 레벨들의 범위 내에서 3 개 이상의 포인트들에서 VR 에 대해 로 비트 에러 카운트들을 결정하는 것을 포함한다 (블록 1302). 프로세스 (1300) 는 비트 에러 카운트 대 RV 데이터 포인트들을 포물선에 대해 피팅하는 것을 더 포함한다 (블록 1304). 일단 포물선 방정식이 비트 에러 데이터에 대해 피팅하도록 생성되면, 그 식은, 함수의 도함수를 0 으로 설정하고, 대응하는 VR 값을 발견하기 위해 푸는 등에 의해, 포물선의 로컬 최소치를 결정하기 위해 풀린다 (블록 1306). 하나 이상의 타겟 페이지들이 VR 값에 대해 풀린 것을 이용하여 후속하여 디코딩될 수도 있고, 이에 의해, 디코딩 결과들을 향상시킨다 (블록 1308). 프로세스 (1300) 는, 적어도 부분적으로, 도 1 에 대해 상기 설명된 제어기 (130), 최적의 VR 계산 모듈 (142), 및/또는 에러 정정 모듈 (144) 에 의해, 수행될 수도 있다.
누적 분포 다항식 피팅 방법
상기 논의된 최적 VR 계산의 2 가지 방법들은 패싱 블록들 또는 페이지들에 대해 작용하고, 여기서, ECC 디코딩은 그 블록들 또는 페이지들로부터의 데이터를 성공적으로 디코딩한다. 때로는, 실패한 페이지들 또는 블록들의 내부 전압 레벨들은 패싱 페이지들 또는 블록들의 것들로부터 실질적으로 변화할 수도 있어, 패싱 페이지들로부터 획득된 조정된 판독 전압 레벨들을 적용하는 것은 이러한 실패한 페이지들/블록들에서 데이터를 적당하게 복원하기에는 불충분하다. 따라서, 실패한 타겟 페이지로부터 직접 최적의 VR 들을 발견하는 것이 가능한 것은, 예를 들어, 상기 방법들 중 하나로부터 계산된 조정된 VR 들이, 에러 정정이 타겟 페이지로부터 데이터를 복원할 수 있도록, 에러 비트들의 수를 충분하게 감소시키지 못하는 경우와 같이, 특정 상황들에서 바람직할 수도 있다. 본 명세서에서 개시된 특정 실시형태들은 누적 비트 카운트 분포 정보를 이용하여 실패 페이지들로부터의 최적의 VR 계산을 제공한다.
도 14 는 솔리드-스테이트 디바이스의 일 실시형태에 대해 누적 스테이트 분포 정보를 보여주는 그래프이다. 분포 그래프는 3 개의 프로그램 스테이트들 (커브들 1402, 1404, 및 1406) 에 대한 분포들을 보여준다. 그래프는 x-축 상의 관련 전압 포인트에서의 또는 그보다 더 낮은 전압 충전 레벨을 갖는 셀들의 누적 수를 나타내는 커브를 더 보여준다. 더 상세하게는, 도 14 의 이산 (discrete) 스테이트 분포들은 3 개의 구분되는 피크 커브들에 의해 나타난다. (마름모꼴 형상의 데이터 포인트들을 포함하고 전체 도시된 전압 영역을 가로지르는) 커브 (1408) 는, R2 가 좌에서 우로 시프트될 때 값 '1' 을 갖는 비트들의 카운트를 나타낼 수도 있고 (단순함을 위해 커브에서 생략된, 데이터에 부착된 상수가 존재할 수도 있다), 누적 분포로 불린다. 도시된 바와 같이, 누적 분포 커브 (1408) 에 대한 가장 가파른 기울기들은 3 개의 피크들에 대응하고, 거기서, 값 '1' 을 갖는 비트들의 카운트는 가장 빠른 레이트 (rate) 로 증가한다. 각 피크에서, 피크의 좌측은 그 프로그램 스테이트에 대해 값 '1' 과 연관된다. 커브에 대한 가장 평평한 기울기들은 스테이트들 사이의 중첩되는 구역들에 대응할 수도 있다. 최적의 VR 들은 통상적으로 이들 중첩 구역들에서 발견되기 때문에, 일 실시형태는, 커브 (1408) 와 같은 누적 분포 커브를 획득하는 것 및 그 누적 분포 커브 상의 가장 평평한 기울기들의 로케이션들을 결정하는 것에 의해 최적의 VR 들을 결정한다. 이러한 프로세스는 이하 더 자세히 설명된다.
도 15 는 일 실시형태에서의 누적 스테이트 분포 정보를 나타내는 그래프이다. 예시된 커브는 도 14 에서 도시된 누적 분포 커브 (1408) 에 대응할 수도 있다. 특정 실시형태에서, 도시된 바와 같이 4 개 이상의 비트 카운트 데이터 포인트들이 누적 분포에 대해 결정된다 (도 15 의 예에서 상이한 전압 레벨들에서의 5 개의 판독치들 (1502, 1504, 1506, 1508, 및 1510) 이 도시된다). 예를 들어, 비트 카운트 판독들은 제조자 디폴트 VR 의 미리결정된 범위 내에서 수행될 수도 있다. 4 개 이상의 판독들은 2 개의 프로그램 스테이트들 사이의 중첩 구역을 포함하도록 가정되거나 알려진 범위에 걸쳐 취해질 수도 있다. 생성된 4 개 이상의 데이터 포인트들은 3-차 또는 보다 높은 차수의 다항식에 대해 피팅될 수도 있다. 도 15 의 실시형태에서 나타낸 바와 같이, 5 개의 판독치들은 다음과 같은 식을 갖는 4-차 다항식에 대해 피팅된다:
y(x) = -2496.5x 4 + 39418x 3 - 223407x 2 + 547103x - 476805 (1)
특정 실시형태들에서, (도 14 에서 도시된 누적 분포 커브에 대응할 수도 있는) 피팅된 다항식이 관심 범위에 걸쳐 최소 기울기를 갖는 포인트가 각각의 프로그램 간격에 대해 최적의 판독 전압을 추정하기 위해 이용될 수도 있다.
데이터 포인트들의 범위에 걸쳐 가장 평평한 기울기를 갖는 함수의 포인트는 변수 'x' 에 대해 식 y''(x) = 0 을 풂으로써 결정될 수도 있고, 이는 결정된 최적의 VR 을 나타낸다. 예를 들어, y''(x) = 0 을 푸는 것은 대략적으로 3.13V 의 최적의 VR 값을 낳을 수도 있다. 도 14 에서 도시된 대응하는 스테이트 크로스 포인트에 비해, 이 값은 그래프의 우측에 2 개의 분포들의 스테이트 크로스 포인트에 가까운 것으로 보인다. 본 명세서에서의 누적 분포 커브-피팅 기법들의 논의는 MLC 방식에서 3 개 또는 4 개의 프로그램 스테이트 분포들 사이의 VR 값들에 초점을 맞추었지만, 개시된 원리들은 다른 중첩 구역들에도 역시 적용가능할 수도 있다.
도 16 은 다항식 피팅을 이용하여 판독 전압 판독치를 계산하기 위한 프로세스 (1600) 의 일 실시형태를 나타내는 흐름도이다. 프로세스 (1600) 는 블록 1602 에서 판독 전압 판독의 범위에 걸쳐 다수의 누적 분포 판독치들을 취하는 것 및 블록 1604 에서 그 다수의 판독치들을 다항식에 피팅하는 것을 수반한다. 예를 들어, 4 개 이상의 판독치들이 취해져 3-차, 4-차, 또는 더 높은 차수의 다항식에 대한 데이터를 제공할 수도 있다. 블록 1606 에서, 프로세스 (1600) 는, 다항식이 전압 값들의 범위 내에서 최소 기울기를 갖는 포인트를 결정하는 것을 수반한다. 블록 1608 에서 판독 전압 레벨은 그 후에 그 결정된 최소-기울기의 포인트로 설정되고 페이지를 디코딩하기 위해 사용될 수도 있다. 도 16 의 프로세스 (1600) 는 유리하게는 실패 페이지로부터 최적의 VR 레벨의 직접적인 계산을 제공할 수도 있다. 따라서, 프로세스 (1600) 는 패싱 페이지 또는 유사한 특성들을 갖는 패싱 페이지를 발견하는 것이 어려운 곳에 대해 적합하거나 바람직할 수도 있다. 프로세스 (1600) 는, 적어도 부분적으로, 도 1 에 대해 상기 설명된 제어기 (130), 최적의 VR 계산 모듈 (142), 및/또는 에러 정정 모듈 (144) 에 의해 수행될 수도 있다.
대안적인 실시형태들
본 명세서에서 기술된 전압 레벨 분포들과 연관된 판독 레벨들, 스테이트들, 및 코딩 방식들, 및 그것을 나타내기 위해 사용되는 변수들 및 표시들은 오직 편의를 위해 사용된다. 이 애플리케이션에서 사용된 바와 같이, "비-휘발성 솔리드-스테이트 메모리 (non-volatile solid-state memory) 는 통상적으로 NAND 플래시 메모리와 같은 솔리드-스테이트 메모리를 지칭하고, 하지만 이에 한정되는 것은 아니다. 하지만, 이 개시의 시스템들 및 방법들은 또한 보다 종래의 하드 드라이브들 및 솔리드-스테이트 및 하드 드라이브 컴포넌트들 양자를 포함하는 하이브리드 하드 드라이브들에서도 유용할 수도 있다. 솔리드-스테이트 스토리지 디바이스들 (예컨대, 다이들) 은 당해 기술분야에서 알려진 바와 같이, 평면들, 블록들, 페이지들, 및 섹터들로 물리적으로 나누어질 수도 있다. 다른 형태들의 스토리지 (예컨대, 배터리-백업 휘발성 DRAM 또는 SRAM 디바이스들, 자기 디스크 드라이브들 등) 가 추가적으로 또는 대안적으로 사용될 수도 있다.
당해 기술분야에서 통상의 지식을 가진 자 (이하, '통상의 기술자' 라 함) 는, 일부 실시형태들에서, 다른 유형들의 데이터 스토리지 디바이스들 및/또는 데이터 보유 모니터링이 구현될 수도 있음을 이해할 것이다. 또한, 도 5, 6a, 6b, 13, 및 16 에서 나타낸 프로세스들에서 취해지는 실제 단계들은 도면들에서 나타낸 것들과는 상이할 수도 있다. 실시형태에 따라, 상기 기술된 단계들의 어떤 것은 제거될 수도 있고, 다른 것들이 부가될 수도 있다.
특정 실시형태들이 기술되었지만, 이들 실시형태들은 오직 예시적인 방식으로 제시되었고, 보호의 범위를 제한하려는 의도는 아니다. 사실, 본 명세서에서 기술된 창의적인 방법들 및 시스템들은 다양한 다른 형태들로 구현될 수도 있다. 또한, 본 명세서에서 기술된 방법들 및 시스템들의 형태에서 다양한 생략들, 치환들 및 변경들이 이루어질 수도 있다. 첨부된 청구항들 및 그들의 균등물들은, 보호의 사상 및 범위 내에 속할 이러한 형태들 및 변형들을 커버하도록 의도된다. 예를 들어, 도면들에서 나타낸 다양한 컴포넌트들은 프로세서, ASIC/FPGA, 또는 전용 하드웨어 상에서 소프트웨어 및/또는 펌웨어로서 구현될 수도 있다. 또한, 상기 개시된 특정 실시형태들의 특징들 및 속성들은 추가적인 실시형태들을 형성하기 위해 상이한 방식들로 결합될 수도 있고, 이들 모두는 본 개시의 범위 내에 속한다. 비록 본 개시는 소정의 선호되는 실시형태들 및 애플리케이션들을 제공하지만, 본 명세서에서 전개된 특징들 및 이점들의 모두를 제공하지 않는 실시형태들을 포함하는, 통상의 기술자에게 있어 명백한 다른 실시형태들 또한 이 개시의 범위 내에 있다. 따라서, 본 개시의 범위는 오직 첨부된 청구항들을 참조하여서만 정의되는 것으로 의도된다.

Claims (23)

  1. 하나 이상의 솔리드-스테이트 스토리지 디바이스를 교정하는 방법으로서,
    알려진 프로그램/소거(program/erase) 사이클 카운트 특성들을 갖는 제 1 솔리드-스테이트 드라이브에 대해, 판독 전압 레벨 시프트와 플립된-비트 카운트 사이의 관계와 하위 페이지 판독 전압 레벨들과 상위 페이지 판독 전압 레벨들 사이의 관계를 결정하는 단계;
    상기 결정된 관계에 적어도 부분적으로 기초하여 플립된-비트 카운트를 판독 전압 레벨 시프트에 관련시키는 인덱스 데이터를 생성하는 단계; 및
    상기 인덱스 데이터를, 상기 제 1 솔리드-스테이트 드라이브 또는 적어도 제 2 솔리드-스테이트 드라이브의 메모리에 저장하는 단계를 포함하는, 하나 이상의 솔리드-스테이트 스토리지 디바이스를 교정하는 방법.
  2. 제 1 항에 있어서,
    상기 판독 전압 레벨 시프트와 플립된-비트 카운트 사이의 관계는 상기 플립된-비트 카운트들의 로그 값들과 판독 전압 레벨 사이에 선형의 관계인, 하나 이상의 솔리드-스테이트 스토리지 디바이스를 교정하는 방법.
  3. 제 1 항에 있어서,
    상기 판독 전압 레벨 시프트와 플립된-비트 카운트 사이의 관계를 결정하는 것은, 상기 제 1 솔리드-스테이트 드라이브를 온도 조건들의 범위에 두는 것을 포함하는, 하나 이상의 솔리드-스테이트 스토리지 디바이스를 교정하는 방법.
  4. 제 1 항에 있어서,
    상기 판독 전압 레벨 시프트와 플립된-비트 카운트 사이의 관계를 결정하는 것은, 상기 제 1 솔리드-스테이트 드라이브의 복수의 데이터 보유 시간들에 대응하는 이산 시간 주기들에서 플립된-비트 카운트들을 계산하는 것을 포함하는, 하나 이상의 솔리드-스테이트 스토리지 디바이스를 교정하는 방법.
  5. 제 1 항에 있어서,
    상기 판독 전압 레벨 시프트와 플립된-비트 카운트 사이의 관계를 결정하는 것은, 디폴트 판독 전압 레벨을 이용하여 변화하는 데이터 보유 조건들 하에서 상기 제 1 솔리드-스테이트 드라이브의 메모리의 하나 이상의 페이지를 판독하는 것을 포함하는, 하나 이상의 솔리드-스테이트 스토리지 디바이스를 교정하는 방법.
  6. 솔리드-스테이트 스토리지 디바이스로서,
    데이터를 저장하도록 구성된 복수의 비-휘발성 메모리 디바이스들을 포함하는 비-휘발성 솔리드-스테이트 메모리 어레이; 및
    제어기를 포함하고,
    상기 제어기는, 적어도,
    상기 메모리 어레이의 참조 비트 스트림과 연관된 플립된-비트 카운트 데이터를 결정하는 것;
    플립된-비트 카운트를 판독 전압 레벨에서의 시프트에 관련시키는, 상기 솔리드-스테이트 스토리지 디바이스에 저장된 인덱스 데이터를 액세스하는 것;
    상기 참조 비트 스트림과 연관된 상기 플립된-비트 카운트 데이터 및 상기 인덱스 데이터에 적어도 부분적으로 기초하여, 조정된 판독 전압 레벨을 결정하는 것; 및
    상기 조정된 판독 전압 레벨을 이용하여 상기 메모리 어레이의 타겟 비트 스트림을 판독하는 것
    에 의해, 상기 복수의 비-휘발성 메모리 디바이스들의 메모리 셀들에 대한 최적의 판독 전압 레벨들을 결정하도록 구성되고,
    상기 제어기는 또한, 상기 조정된 판독 전압 레벨을 이용하여 상기 타겟 비트 스트림과 연관된 메모리 셀들에 의해 인코딩된 하위 페이지를 디코딩하고, 하위 페이지 판독 전압 레벨들과 상위 페이지 판독 전압 레벨들 사이의 결정된 관계에 적어도 부분적으로 기초하여 상기 메모리 셀들에 의해 인코딩된 상위 페이지를 디코딩하도록 구성되는, 솔리드-스테이트 스토리지 디바이스.
  7. 제 6 항에 있어서,
    상기 참조 비트 스트림은 상기 인덱스 데이터와 연관된 프로그램/소거(program/erase; P/E) 사이클 특성들을 갖는, 솔리드-스테이트 스토리지 디바이스.
  8. 삭제
  9. 제 6 항에 있어서,
    상기 인덱스는 룩-업 테이블을 포함하는, 솔리드-스테이트 스토리지 디바이스.
  10. 솔리드-스테이트 스토리지 디바이스로서,
    데이터를 저장하도록 구성된 복수의 비-휘발성 메모리 디바이스들을 포함하는 비-휘발성 솔리드-스테이트 메모리 어레이; 및
    제어기를 포함하고,
    상기 제어기는, 적어도,
    제 1, 제 2, 및 제 3 판독 전압 레벨들에서의 판독들을 포함하는, 참조 페이지의 3 개 이상의 판독들의 각각과 연관된 비트 에러 카운트들을 결정하는 것;
    상기 제 1, 제 2, 및 제 3 판독 전압 레벨들과 연관된 상기 비트 에러 카운트들을 비트 에러 카운트 대 판독 전압 레벨의 포물선 함수에 피팅하는 것;
    상기 포물선 함수의 로컬 최소치들을 계산하는 것; 및
    상기 포물선 함수의 상기 로컬 최소치들과 연관된 조정된 판독 전압 레벨에서 타겟 페이지를 판독하는 것
    에 의해, 상기 복수의 비-휘발성 메모리 디바이스들에 대한 최적의 판독 전압 레벨들을 결정하도록 구성되고,
    상기 제어기는 또한,
    하위 페이지가 필요한 경우에, 상기 조정된 판독 전압 레벨을 이용하여 상기 타겟 페이지와 연관된 메모리 셀의 하위 페이지를 디코딩하고; 그리고
    상위 페이지가 필요한 경우에, 하위 페이지 판독 전압 레벨들과 상위 페이지 판독 전압 레벨들 사이의 결정된 관계에 적어도 부분적으로 기초하여 상기 메모리 셀을 디코딩하도록 구성되는, 솔리드-스테이트 스토리지 디바이스.
  11. 제 10 항에 있어서,
    상기 제 1, 제 2, 및 제 3 판독 전압 레벨들은 디폴트 판독 전압 레벨의 미리결정된 범위 내에 있는, 솔리드-스테이트 스토리지 디바이스.
  12. 삭제
  13. 제 10 항에 있어서,
    상기 하위 페이지 판독 전압 레벨들과 상위 페이지 판독 전압 레벨들 사이의 관계는 선형인, 솔리드-스테이트 스토리지 디바이스.
  14. 솔리드-스테이트 스토리지 디바이스로서,
    데이터를 저장하도록 구성된 복수의 비-휘발성 메모리 디바이스들을 포함하는 비-휘발성 솔리드-스테이트 메모리 어레이; 및
    제어기를 포함하고,
    상기 제어기는, 적어도,
    제 1, 제 2, 및 제 3 판독 전압 레벨들에서의 판독들을 포함하는, 참조 페이지의 3 개 이상의 판독들의 각각과 연관된 비트 에러 카운트들을 결정하는 것;
    상기 제 1, 제 2, 및 제 3 판독 전압 레벨들과 연관된 상기 비트 에러 카운트들을 비트 에러 카운트 대 판독 전압 레벨의 포물선 함수에 피팅하는 것;
    상기 포물선 함수의 로컬 최소치들을 계산하는 것; 및
    상기 포물선 함수의 상기 로컬 최소치들과 연관된 조정된 판독 전압 레벨에서 타겟 페이지를 판독하는 것
    에 의해, 상기 복수의 비-휘발성 메모리 디바이스들에 대한 최적의 판독 전압 레벨들을 결정하도록 구성되고,
    상기 제어기는, 상기 참조 페이지의 상기 3 개 이상의 판독들의 각각과 결합하여, 고정된 하위 페이지 판독 전압 판독을 이용하여 상기 비트 에러 카운트들을 결정하도록 구성되는, 솔리드-스테이트 스토리지 디바이스.
  15. 솔리드-스테이트 스토리지 디바이스로서,
    데이터를 저장하도록 구성된 복수의 비-휘발성 메모리 디바이스들을 포함하는 비-휘발성 솔리드-스테이트 메모리 어레이; 및
    제어기를 포함하고,
    상기 제어기는, 적어도,
    제 1, 제 2, 및 제 3 판독 전압 레벨들에서의 판독들을 포함하는, 참조 페이지의 3 개 이상의 판독들의 각각과 연관된 비트 에러 카운트들을 결정하는 것;
    상기 제 1, 제 2, 및 제 3 판독 전압 레벨들과 연관된 상기 비트 에러 카운트들을 비트 에러 카운트 대 판독 전압 레벨의 포물선 함수에 피팅하는 것;
    상기 포물선 함수의 로컬 최소치들을 계산하는 것; 및
    상기 포물선 함수의 상기 로컬 최소치들과 연관된 조정된 판독 전압 레벨에서 타겟 페이지를 판독하는 것
    에 의해, 상기 복수의 비-휘발성 메모리 디바이스들에 대한 최적의 판독 전압 레벨들을 결정하도록 구성되고,
    상기 조정된 판독 전압 레벨에서 타겟 페이지를 판독하는 것은, 디폴트 판독 전압 레벨에서 상기 타겟 페이지를 판독하는 것에 비해 3 이상의 팩터만큼 비트 에러 카운트들을 감소시키고, 상기 타겟 페이지는 1,000 보다 큰 프로그램/소거(program/erase; P/E) 사이클 카운트를 갖는, 솔리드-스테이트 스토리지 디바이스.
  16. 솔리드-스테이트 스토리지 디바이스로서,
    데이터를 저장하도록 구성된 복수의 비-휘발성 메모리 디바이스들을 포함하는 비-휘발성 솔리드-스테이트 메모리 어레이; 및
    제어기를 포함하고,
    상기 제어기는, 적어도,
    상이한 판독 전압 레벨들에서 페이지의 4 개 이상의 판독들의 각각과 연관된 누적 '1' 또는 '0' 카운트들을 결정하는 것;
    상기 누적 '1' 또는 '0' 카운트들을, 누적 비트 카운트 대 전압 레벨의 3-차 이상의 다항식 함수에 피팅하는 것;
    전압들의 범위에 걸쳐 최저 기울기 값을 갖는 상기 다항식 함수의 포인트와 연관된 조정된 판독 전압 레벨을 결정하는 것; 및
    상기 조정된 판독 전압 레벨에서 상기 페이지를 판독하는 것
    에 의해, 상기 복수의 비-휘발성 메모리 디바이스들에 대한 최적의 판독 전압 레벨들을 결정하도록 구성되고,
    상기 제어기는 또한,
    하위 페이지가 필요한 경우에, 상기 조정된 판독 전압 레벨을 이용하여 상기 페이지와 연관된 메모리 셀의 하위 페이지를 디코딩하고; 그리고
    상위 페이지가 필요한 경우에, 하위 페이지 판독 전압 레벨들과 상위 페이지 판독 전압 레벨들 사이의 결정된 관계에 적어도 부분적으로 기초하여 상기 메모리 셀을 디코딩하도록 구성되는, 솔리드-스테이트 스토리지 디바이스.
  17. 제 16 항에 있어서,
    상기 제어기는 또한, 알려진 참조 데이터 값들 또는 프로그램/소거(program/erase; P/E) 사이클 정보를 참조함이 없이 상기 조정된 판독 전압 레벨을 결정하도록 구성되는, 솔리드-스테이트 스토리지 디바이스.
  18. 제 16 항에 있어서,
    상기 상이한 판독 전압 레벨들에서의 4 개 이상의 판독들은 디폴트 판독 전압 레벨의 미리결정된 범위 내에 있는, 솔리드-스테이트 스토리지 디바이스.
  19. 제 18 항에 있어서,
    상기 미리결정된 범위는 상기 디폴트 판독 전압 레벨의 500 mV 내에 있는, 솔리드-스테이트 스토리지 디바이스.
  20. 삭제
  21. 솔리드-스테이트 스토리지 디바이스로서,
    데이터를 저장하도록 구성된 복수의 비-휘발성 메모리 디바이스들을 포함하는 비-휘발성 솔리드-스테이트 메모리 어레이; 및
    제어기를 포함하고,
    상기 제어기는, 적어도,
    상이한 판독 전압 레벨들에서 페이지의 4 개 이상의 판독들의 각각과 연관된 누적 '1' 또는 '0' 카운트들을 결정하는 것;
    상기 누적 '1' 또는 '0' 카운트들을, 누적 비트 카운트 대 전압 레벨의 3-차 이상의 다항식 함수에 피팅하는 것;
    전압들의 범위에 걸쳐 최저 기울기 값을 갖는 상기 다항식 함수의 포인트와 연관된 조정된 판독 전압 레벨을 결정하는 것; 및
    상기 조정된 판독 전압 레벨에서 상기 페이지를 판독하는 것
    에 의해, 상기 복수의 비-휘발성 메모리 디바이스들에 대한 최적의 판독 전압 레벨들을 결정하도록 구성되고,
    상기 조정된 판독 전압 레벨을 결정하는 것은, 상기 다항식 함수의 변곡점을 계산하는 것을 포함하는, 솔리드-스테이트 스토리지 디바이스.
  22. 솔리드-스테이트 스토리지 디바이스로서,
    데이터를 저장하도록 구성된 복수의 비-휘발성 메모리 디바이스들을 포함하는 비-휘발성 솔리드-스테이트 메모리 어레이; 및
    제어기를 포함하고,
    상기 제어기는, 적어도,
    상이한 판독 전압 레벨들에서 페이지의 4 개 이상의 판독들의 각각과 연관된 누적 '1' 또는 '0' 카운트들을 결정하는 것;
    상기 누적 '1' 또는 '0' 카운트들을, 누적 비트 카운트 대 전압 레벨의 3-차 이상의 다항식 함수에 피팅하는 것;
    전압들의 범위에 걸쳐 최저 기울기 값을 갖는 상기 다항식 함수의 포인트와 연관된 조정된 판독 전압 레벨을 결정하는 것; 및
    상기 조정된 판독 전압 레벨에서 상기 페이지를 판독하는 것
    에 의해, 상기 복수의 비-휘발성 메모리 디바이스들에 대한 최적의 판독 전압 레벨들을 결정하도록 구성되고,
    상기 조정된 판독 전압 레벨을 결정하는 것은, 0 과 동일한 상기 다항식 함수의 2 차 도함수와 연관된 전압 레벨을 계산하는 것을 포함하는, 솔리드-스테이트 스토리지 디바이스.
  23. 제 16 항에 있어서,
    상기 조정된 판독 전압 레벨은 하위 페이지 판독과 연관되고,
    상기 제어기는 또한, 상위 페이지 판독과 연관된 하나 이상의 추가적인 조정된 판독 전압 레벨들을 결정하고, 상기 하나 이상의 추가적인 조정된 판독 전압 레벨들에서 상기 페이지를 판독하도록 구성되는, 솔리드-스테이트 스토리지 디바이스.
KR1020157036833A 2013-05-31 2014-05-29 솔리드-스테이트 스토리지 디바이스들에서의 판독 전압 계산 KR102315294B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361829955P 2013-05-31 2013-05-31
US61/829,955 2013-05-31
US13/917,518 2013-06-13
US13/917,518 US20140359202A1 (en) 2013-05-31 2013-06-13 Reading voltage calculation in solid-state storage devices
PCT/US2014/040092 WO2014194141A1 (en) 2013-05-31 2014-05-29 Reading voltage calculation in solid-state storage devices

Publications (2)

Publication Number Publication Date
KR20160014030A KR20160014030A (ko) 2016-02-05
KR102315294B1 true KR102315294B1 (ko) 2021-10-19

Family

ID=51986492

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157036833A KR102315294B1 (ko) 2013-05-31 2014-05-29 솔리드-스테이트 스토리지 디바이스들에서의 판독 전압 계산

Country Status (7)

Country Link
US (1) US20140359202A1 (ko)
KR (1) KR102315294B1 (ko)
CN (1) CN105324819A (ko)
DE (1) DE112014002632T5 (ko)
GB (1) GB2529584B (ko)
HK (1) HK1220283A1 (ko)
WO (1) WO2014194141A1 (ko)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US9542258B1 (en) * 2013-03-15 2017-01-10 Western Digital Technologies, Inc. System and method for error-minimizing voltage threshold selection
US9812193B2 (en) * 2013-11-08 2017-11-07 SK Hynix Inc. Threshold estimation using bit flip counts and minimums
US9514848B2 (en) * 2014-04-03 2016-12-06 Lite-On Electronics (Guangzhou) Limited Solid state drive and associated error check and correction method
TWI562158B (en) * 2014-10-13 2016-12-11 Silicon Motion Inc Non-volatile memory device and controller
KR102263046B1 (ko) 2014-10-29 2021-06-09 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
KR102287760B1 (ko) 2014-10-29 2021-08-09 삼성전자주식회사 메모리 시스템 및 상기 메모리 시스템의 동작 방법
KR102252378B1 (ko) * 2014-10-29 2021-05-14 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
US9576671B2 (en) 2014-11-20 2017-02-21 Western Digital Technologies, Inc. Calibrating optimal read levels
US9905302B2 (en) 2014-11-20 2018-02-27 Western Digital Technologies, Inc. Read level grouping algorithms for increased flash performance
US9720754B2 (en) * 2014-11-20 2017-08-01 Western Digital Technologies, Inc. Read level grouping for increased flash performance
KR20160073834A (ko) * 2014-12-17 2016-06-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템 동작 방법
US10339048B2 (en) * 2014-12-23 2019-07-02 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
GB2537484B (en) * 2015-03-20 2019-07-03 HGST Netherlands BV Read level grouping for increased flash performance
US10389999B2 (en) * 2016-02-17 2019-08-20 Qualcomm Incorporated Storage of virtual reality video in media files
KR102500616B1 (ko) * 2016-02-26 2023-02-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9761308B1 (en) 2016-03-11 2017-09-12 Western Digital Technologies, Inc. Systems and methods for adaptive read level adjustment
US10120585B2 (en) * 2016-08-10 2018-11-06 SK Hynix Inc. Memory system of optimal read reference voltage and operating method thereof
JP6725375B2 (ja) * 2016-09-14 2020-07-15 キオクシア株式会社 メモリシステムおよび方法
CN106448737B (zh) * 2016-09-30 2020-12-01 厦门旌存半导体技术有限公司 读取闪存数据的方法、装置以及固态驱动器
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10095417B1 (en) 2016-12-13 2018-10-09 EMC IP Holding Company LLC Method and system for improving flash storage read performance in partially programmed blocks
WO2018119900A1 (zh) * 2016-12-29 2018-07-05 华为技术有限公司 数据读取方法及闪存设备
US11069418B1 (en) 2016-12-30 2021-07-20 EMC IP Holding Company LLC Method and system for offline program/erase count estimation
US10289550B1 (en) 2016-12-30 2019-05-14 EMC IP Holding Company LLC Method and system for dynamic write-back cache sizing in solid state memory storage
US10338983B2 (en) 2016-12-30 2019-07-02 EMC IP Holding Company LLC Method and system for online program/erase count estimation
WO2018136094A1 (en) * 2017-01-23 2018-07-26 Micron Technology, Inc. Partially written block treatment
CN109065092B (zh) * 2017-02-21 2022-06-17 北京忆恒创源科技股份有限公司 Nvm芯片的读阈值设置方法及其装置
KR102302187B1 (ko) 2017-03-13 2021-09-14 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치
US10403366B1 (en) 2017-04-28 2019-09-03 EMC IP Holding Company LLC Method and system for adapting solid state memory write parameters to satisfy performance goals based on degree of read errors
US10290331B1 (en) 2017-04-28 2019-05-14 EMC IP Holding Company LLC Method and system for modulating read operations to support error correction in solid state memory
CN107329881B (zh) * 2017-06-02 2021-12-03 腾讯科技(深圳)有限公司 应用系统性能测试方法及装置、计算机设备及存储介质
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10236067B2 (en) * 2017-08-02 2019-03-19 International Business Machines Corporation State-dependent read voltage threshold adaptation for nonvolatile memory
US10366763B2 (en) * 2017-10-31 2019-07-30 Micron Technology, Inc. Block read count voltage adjustment
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
TWI799488B (zh) * 2018-03-21 2023-04-21 韓商愛思開海力士有限公司 記憶體控制器、具有該記憶體控制器的記憶體系統及其操作方法
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
KR102070307B1 (ko) * 2018-05-28 2020-01-23 에센코어 리미티드 저장 장치의 구동 방법
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10490288B1 (en) * 2018-09-27 2019-11-26 Seagate Technology Llc Page-level reference voltage parameterization for solid statesolid state storage devices
CN109741783A (zh) * 2018-12-19 2019-05-10 山东华芯半导体有限公司 一种选择最佳NAND Flash读操作电平的方法
CN109871594B (zh) * 2019-01-28 2023-02-03 山东华芯半导体有限公司 一种NAND Flash特性模型建立方法
TWI690929B (zh) * 2019-04-11 2020-04-11 點序科技股份有限公司 記憶體裝置及其讀取參考電壓的調整方法
CN110209517B (zh) * 2019-04-25 2024-01-23 深圳市金泰克半导体有限公司 一种固态硬盘工作方法、系统、电子设备及存储介质
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11609706B2 (en) * 2019-07-10 2023-03-21 Micron Technology, Inc. Read sample offset placement
US11003383B2 (en) 2019-07-17 2021-05-11 Micron Technology, Inc. Estimation of read level thresholds using a data structure
US11250926B2 (en) 2019-10-16 2022-02-15 Sandisk Technologies Llc Positive feedback and parallel searching enhanced optimal read method for non-volatile memory
US10957407B1 (en) * 2019-10-30 2021-03-23 International Business Machines Corporation Calculating corrective read voltage offsets in non-volatile random access memory
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11049582B1 (en) 2020-05-07 2021-06-29 Micron Technology, Inc. Detection of an incorrectly located read voltage
US11024401B1 (en) * 2020-05-07 2021-06-01 Micron Technology, Inc. Compute an optimized read voltage
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11289172B2 (en) 2020-08-13 2022-03-29 Western Digital Technologies, Inc. Soft bit reference level calibration
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
KR20220077312A (ko) 2020-12-01 2022-06-09 삼성전자주식회사 불휘발성 메모리 장치를 제어하도록 구성된 컨트롤러의 동작 방법 및 스토리지 장치의 동작 방법
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
CN112735502B (zh) * 2020-12-31 2022-08-23 中国科学院微电子研究所 一种用于闪存的阈值分布拟合方法、装置及系统
CN112685213B (zh) * 2021-01-06 2022-04-29 长江存储科技有限责任公司 非易失性存储器及其电压校准方法
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11538534B1 (en) 2021-06-08 2022-12-27 Western Digital Technologies, Inc. Soft bit reference level calibration using decoded data
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
CN114296645B (zh) * 2021-12-17 2024-01-02 合肥大唐存储科技有限公司 一种Nand闪存中重读方法和固态硬盘
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus
US11915772B1 (en) 2022-09-02 2024-02-27 Western Digital Technologies, Inc. Data storage device and method for power on reset and read error handling

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012075826A1 (en) * 2010-12-07 2012-06-14 Silicon Motion Inc. Method and memory controller for reading data stored in flash memory by referring to binary digit distribution characteristics of bit sequences read from flash memory

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) * 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US6567304B1 (en) * 2002-05-09 2003-05-20 Matrix Semiconductor, Inc Memory device and method for reliably reading multi-bit data from a write-many memory cell
US7339834B2 (en) * 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
JP2007110024A (ja) * 2005-10-17 2007-04-26 Sharp Corp 半導体記憶装置
US7545716B2 (en) * 2005-12-30 2009-06-09 Mediatek Inc. Optical disc drive and related method of determining optimum write power for writing data to optical disc
CN100508073C (zh) * 2006-06-02 2009-07-01 北京中星微电子有限公司 一种闪烁存储器数据存取方法
KR100851853B1 (ko) * 2006-11-22 2008-08-13 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 및 프로그램 검증방법
DE102007044471A1 (de) * 2007-09-18 2009-04-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zur abschnittsweisen Bestimmung eines parameterabhängigen Korrekturwertnäherungsverlaufs und Sensoranordnung
KR100953047B1 (ko) * 2007-12-28 2010-04-14 주식회사 하이닉스반도체 불휘발성 메모리 소자의 동작 방법
KR101483190B1 (ko) * 2008-09-05 2015-01-19 삼성전자주식회사 메모리 시스템 및 그것의 데이터 처리 방법
US8077515B2 (en) * 2009-08-25 2011-12-13 Micron Technology, Inc. Methods, devices, and systems for dealing with threshold voltage change in memory devices
US8661184B2 (en) * 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
US8248850B2 (en) * 2010-01-28 2012-08-21 Sandisk Technologies Inc. Data recovery for non-volatile memory based on count of data state-specific fails
US8213255B2 (en) * 2010-02-19 2012-07-03 Sandisk Technologies Inc. Non-volatile storage with temperature compensation based on neighbor state information
KR20120011642A (ko) * 2010-07-29 2012-02-08 삼성전자주식회사 기준 셀을 포함하는 불휘발성 메모리 장치 및 그것의 기준 전류 설정 방법
TWI462104B (zh) * 2010-08-04 2014-11-21 Silicon Motion Inc 資料寫入方法及資料儲存裝置
US8456911B2 (en) * 2011-06-07 2013-06-04 Sandisk Technologies Inc. Intelligent shifting of read pass voltages for non-volatile storage
EP2549482B1 (en) * 2011-07-22 2018-05-23 SanDisk Technologies LLC Apparatus, system and method for determining a configuration parameter for solid-state storage media
US9036416B2 (en) * 2011-11-18 2015-05-19 Sandisk Technologies Inc. Non-volatile storage with broken word line screen and data recovery
KR20140045168A (ko) * 2012-10-08 2014-04-16 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 불휘발성 메모리 장치의 동작방법
CN103811077B (zh) * 2012-11-12 2017-03-29 光宝电子(广州)有限公司 闪存中的资料补偿方法
US9135109B2 (en) * 2013-03-11 2015-09-15 Seagate Technology Llc Determination of optimum threshold voltage to read data values in memory cells
US9021331B2 (en) * 2013-03-14 2015-04-28 Seagate Technology Llc Method and apparatus for generation of soft decision error correction code information

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012075826A1 (en) * 2010-12-07 2012-06-14 Silicon Motion Inc. Method and memory controller for reading data stored in flash memory by referring to binary digit distribution characteristics of bit sequences read from flash memory

Also Published As

Publication number Publication date
DE112014002632T5 (de) 2016-02-18
US20140359202A1 (en) 2014-12-04
GB2529584B (en) 2020-07-15
CN105324819A (zh) 2016-02-10
GB201520353D0 (en) 2015-12-30
KR20160014030A (ko) 2016-02-05
GB2529584A (en) 2016-02-24
WO2014194141A1 (en) 2014-12-04
HK1220283A1 (zh) 2017-04-28

Similar Documents

Publication Publication Date Title
KR102315294B1 (ko) 솔리드-스테이트 스토리지 디바이스들에서의 판독 전압 계산
US9535620B2 (en) Flash memory system and method controlling same
US9397701B1 (en) System and method for lifetime specific LDPC decoding
US9013920B2 (en) Systems and methods of write precompensation to extend life of a solid-state memory
US10545819B1 (en) Soft-decision input generation for data storage systems
US9007854B1 (en) Method and system for optimized soft decoding in a data storage device
US9235467B2 (en) System and method with reference voltage partitioning for low density parity check decoding
US8484519B2 (en) Optimal programming levels for LDPC
US9647695B2 (en) Memory controllers and flash memory reading methods
US9032271B2 (en) System and method for lower page data recovery in a solid state drive
US8819503B2 (en) Apparatus and method for determining an operating condition of a memory cell based on cycle information
US10043575B2 (en) Memory system with read threshold estimation and operating method thereof
US20140169102A1 (en) Log-likelihood ratio and lumped log-likelihood ratio generation for data storage systems
US9270296B1 (en) Method and system for soft decoding through single read
US9214963B1 (en) Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system
GB2537484A (en) Read level grouping for increased flash performance
US9594615B2 (en) Estimating flash quality using selective error emphasis
US11630722B2 (en) Method and system for decoding data based on association of first memory location and second memory location
US20150161001A1 (en) Misprogramming prevention in solid-state memory
CN112562772B (zh) 自适应低密度奇偶校验硬解码器

Legal Events

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