KR20160113051A - 증가된 플래시 성능을 위한 판독 레벨 그룹화 - Google Patents

증가된 플래시 성능을 위한 판독 레벨 그룹화 Download PDF

Info

Publication number
KR20160113051A
KR20160113051A KR1020160032905A KR20160032905A KR20160113051A KR 20160113051 A KR20160113051 A KR 20160113051A KR 1020160032905 A KR1020160032905 A KR 1020160032905A KR 20160032905 A KR20160032905 A KR 20160032905A KR 20160113051 A KR20160113051 A KR 20160113051A
Authority
KR
South Korea
Prior art keywords
word line
read
read level
error
error counts
Prior art date
Application number
KR1020160032905A
Other languages
English (en)
Other versions
KR101831209B1 (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
Priority claimed from US14/664,768 external-priority patent/US9720754B2/en
Application filed by 에이취지에스티 네덜란드 비.브이. filed Critical 에이취지에스티 네덜란드 비.브이.
Publication of KR20160113051A publication Critical patent/KR20160113051A/ko
Application granted granted Critical
Publication of KR101831209B1 publication Critical patent/KR101831209B1/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
    • 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
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G11C16/08Address circuits; Decoders; Word-line control 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/10Programming or data input 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • 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/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • 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
    • 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/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Landscapes

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

Abstract

플래쉬 메모리 디바이스의 워드라인들을 판독하는 것에 기초하여 오류 카운트들의 테이블이 생성되며, 이 테이블은 워드라인들을 판독하는 데에 이용되는 각각의 판독 레벨 전압과 워드라인의 각각의 조합에 대한 오류 카운트를 저장한다. 오류 카운트들의 테이블에 기초하여 복수의 오프셋 워드라인 그룹들이 생성되며, 각각의 그룹은 상이한 판독 레벨 오프셋 전압을 복수의 워드라인 어드레스들과 연관시킨다. 저장 디바이스는 판독될 메모리 셀들의 워드라인 어드레스와 연관이 있는 생성된 오프셋 워드라인 그룹의 판독 레벨 오프셋 전압을 이용하여 메모리 셀들을 판독하도록 구성된다. 각각의 메모리 블록의 라이프 사이클 내의 미리 결정된 지점 이후, 테이블은 재생성되고, 오류 카운트들의 재생성된 테이블에 기초하여 복수의 오프셋 워드라인 그룹들이 재생성된다.

Description

증가된 플래쉬 성능을 위한 판독 레벨 그룹화{READ LEVEL GROUPING FOR INCREASED FLASH PERFORMANCE}
본 출원은 “최적의 판독 레벨을 교정하는 것”이라는 명칭으로 2014년 11월 20일자로 출원된 미국 특허 출원 일련 번호 제 14/549,535호, 및 “증가된 플래시 성능을 위한 판독 레벨 그룹화 알고리즘”이라는 명칭으로 2014년 11월 20일자로 출원된 미국 특허 출원 일련 번호 제 14/549,532호의 부분 계속으로서 35 U.S.C. §120 하에서 우선권의 이익을 주장하며, 상기 개시들이 모든 목적으로 그 전체가 참조로 본원에 포함된다.
본 발명은 고체 상태 드라이브(SSD)와 같은 플래시 메모리 디바이스로부터의 정보의 회수에 관한 것이다. 더 낮은 가격 고체 상태 드라이브(SSD)는 증가된 데이터 용량을 위해 다중 레벨 셀(MLC) 플래시 메모리를 사용하여 전형적으로 제조되지만, MLC 메모리 디바이스는 때때로 단일 레벨 셀(SLC) 플래시 메모리보다 덜 신뢰 가능하다. 컨슈머 SSD 제조자는 특정 웨어 레벨링(wear-leveling) 알고리즘을 채용함으로써 그러한 문제를 경감하였다. MLC의 증가된 데이터 용량으로도, 기업 애플리케이션에서 MLC를 사용하는 것은 플래시를 판독하고, 프로그래밍하고, 소거하는데 필요한, 내구성의 점진적인 저하를 야기하는 증가된(웨어를 야기하는) 응력으로 인한 시간이 지남에 따른 프로그램/소거(P/E) 사이클의 MLC의 불균형적으로 큰 감소 때문에, 더 고가로 된다.
본 기술은 플래시 메모리에 저장되는 정보를 회수하기 위한 방법에 관한 것이다. 다양한 양태에 따르면, 방법은 메모리 블록의 제1 샘플의 워드라인들을 판독하는 단계로서, 제1 샘플의 워드라인들 각각은 워드라인 식별자와 연관되고 워드라인 및 각각의 판독 레벨 전압의 각각의 조합에 대한 에러 카운트를 생성하도록 상이한 판독 레벨 전압들을 사용하여 다수 번 판독되는 단계, 생성된 에러 카운트들에 기반하여 에러 카운트들의 표를 생성하는 단계로서, 에러 카운트들의 표는 상응하는 워드라인 식별자 및 에러 카운트를 생성하는데 사용되는 상이한 판독 레벨 전압들 중 각각의 하나에 의해 각각의 생성된 에러 카운트를 색인화하는 단계, 및 에러 카운트들의 표의 에러 카운트들에 기반하여 선택되는 판독 레벨 전압들을 사용하여 판독 작동들을 수행하도록 저장 디바이스를 구성하는 단계를 포함할 수 있다. 다른 양태들은 컴퓨터-구현 방법의 구현을 위한 상응하는 시스템들, 장치들 및 컴퓨터 프로그램 제품들을 포함한다.
다양한 양태에서, 데이터 저장 디바이스는 각각의 플래시 메모리 디바이스가 복수의 메모리 블록을 포함하는 복수의 플래시 메모리 디바이스 및 복수의 플래시 메모리 디바이스에 결합되는 제어기를 포함할 수 있다. 제어기는 플래시 메모리 디바이스들의 제1 샘플의 워드라인들을 판독하며, 제1 샘플의 워드라인들 각각은 워드라인 식별자와 연관되고 워드라인 및 각각의 판독 레벨 전압의 각각의 조합에 대한 에러 카운트를 생성하도록 상이한 판독 레벨 전압들을 사용하여 다수 번 판독되고, 생성된 에러 카운트들에 기반하여 에러 카운트들의 표를 생성하며, 에러 카운트들의 표는 상응하는 워드라인 식별자 및 상이한 판독 레벨 전압들 중 각각의 하나에 의해 각각의 생성된 에러 카운트를 색인화하고, 에러 카운트들의 표의 에러 카운트들에 기반하여 장래 판독 작동들을 위해 판독 레벨 전압들을 선택하도록 구성될 수 있다.
다양한 양태에서, 방법은 플래시 메모리 디바이스의 제1 샘플의 워드라인들을 판독하는 단계로서, 제1 샘플의 워드라인들 각각은 워드라인 어드레스와 연관되고 워드라인 및 각각의 판독 레벨 전압의 각각의 조합에 대한 에러 카운트를 생성하도록 상이한 판독 레벨 전압들을 사용하여 다수 번 판독되는 단계, 생성된 에러 카운트들에 기반하여 에러 카운트들의 표를 생성하는 단계로서, 에러 카운트들의 표는 상응하는 워드라인 어드레스 및 상이한 판독 레벨 전압들 중 각각의 하나에 의해 각각의 생성된 에러 카운트를 색인화하는 단계, 에러 카운트들의 표에 기반하여 복수의 워드라인 그룹을 형성하는 단계로서, 각각의 그룹은 상이한 판독 레벨 전압들 중 각각의 하나를 복수의 워드라인 어드레스와 연관시키는 단계, 및 판독될 메모리 셀들의 워드라인 어드레스에 상응하는 생성된 워드라인 그룹의 판독 레벨 전압을 사용하여 메모리 셀들을 판독하도록 저장 디바이스를 구성하는 단계를 포함할 수 있다.
본 발명의 다른 구성들이 본 발명의 다양한 구성이 나타내어지고 예시를 통하여 설명되는 이하의 상세한 설명으로부터 당업자에게 손쉽게 명백해질 것인 점이 이해된다. 실현될 것인 바와 같이, 본 발명은 다른 그리고 상이한 구성들이 가능하고 본 발명의 수개의 상세는 본 발명의 범위로부터 벗어나지 않는 범위 내에서 모두 다양한 다른 관점에서 변경이 가능하다. 따라서, 도면들 및 상세한 설명은 제한적인 것이 아닌 본질적으로 예시적인 것으로 간주되어야 한다.
도 1은 다중 레벨 셀(MLC) 플래시 메모리에서의 메모리 셀들의 그룹에 대한 4개의 가능한 셀 임계 전압(VT) 분포 및 상호 보완적인 프로그램 판독 레벨들의 예시적 그래프 도면이다.
도 2a는 3개의 판독 레벨을 사용하는 최하위 비트(LSB) 페이지에 대한 예시적 확률 결정을 도시한다.
도 2b는 3개의 판독 레벨을 사용하는 MLC 플래시 메모리의 최상위 비트(MSB) 페이지에 대한 예시적 확률 결정을 도시한다.
도 3은 메모리 블록의 다수의 워드라인에 대한 예시적 최적의 판독 레벨 전압 변화들을 도시한다.
도 4는 다수의 워드라인에 대한 판독 레벨 오프셋값들의 예시적 범위에 대한 에러 카운트들의 예시적 표를 도시한다.
도 5a 내지 도 5c는 순환되는 메모리 블록들에 대한 예시적 최적의 판독 레벨 오프셋들의 도표들을 도시한다.
도 6은 오프셋 워드라인 그룹들을 생성하기 위한 예시적 알고리즘의 블록도를 도시한다.
도 7은 오프셋 워드라인 그룹들을 생성하기 위한 제1 예시적 프로세스의 흐름도를 도시한다.
도 8은 오프셋 워드라인 그룹들을 생성하기 위한 제2 예시적 프로세스의 흐름도를 도시한다.
도 9는 2진 입력들 및 K-진 출력들을 갖는 별개의 메모리 없는 채널(DMC)로서 모델링되는 예시적 플래시 메모리 채널을 도시한다.
도 10a 내지 도 10c는 예시적 판독 레벨들 및/또는 판독 레벨 오프셋들을 교정하기 위한 예시적 선형 보간법 그래프들을 도시한다.
도 10d 내지 도 10f는 예시적 판독 레벨들 및/또는 판독 레벨 오프셋들을 재교정하기 위한 예시적 선형 보간법 그래프들을 도시한다.
도 11a 및 도 11b는 예시적 판독 레벨 최적화 모드들을 도시한다.
도 12는 저장 디바이스에서 복수의 메모리 셀을 판독하는 판독 레벨들을 교정하기 위한 예시적 프로세스의 흐름도를 도시한다.
도 13은 데이터를 복원하도록 판독 레벨들을 교정하기 위한 예시적 프로세스의 흐름도를 도시한다.
도 14는 에러 카운트들의 표를 재생성하고 재색인화하는 것에 기반하여 복수의 최적의 오프셋 워드라인 그룹을 재생성하기 위한 예시적 프로세스의 흐름도를 도시한다.
도 15는 예시적 데이터 저장 시스템의 구성 요소들을 도시하는 블록도이다.
이하에 제시되는 상세한 설명은 본 발명의 다양한 구성의 설명으로서 의도되고 본 발명이 실행될 수 있는 구성들만을 나타내는 것으로 의도되지 않는다. 첨부 도면들은 본원에 포함되고 상세한 설명의 일부를 구성한다. 상세한 설명은 본 발명의 철저한 이해를 제공하기 위해 구체적 상세들을 포함한다. 그러나, 본 발명이 이러한 구체적 상세들 없이 실행될 수 있다는 점이 당업자에게 명백할 것이다. 일부 경우에서, 구조들 및 구성 요소들은 본 발명의 개념들을 모호하게 하는 것을 피하기 위해 블록도 형태로 도시된다. 유사 구성 요소들은 이해의 용이함을 위해 동일한 요소 번호들이 붙여진다.
예를 들어, NAND 아키텍처를 갖는 플래시 메모리 디바이스에서, 메모리 셀들은 스트링들로 그룹화되며, 각각의 스트링은 (메모리 블록의 각각의 비트 라인에 연결되는) 드레인 선택 트랜지스터와 및 (기준 전압 분포 라인에 연결되는) 소스 선택 트랜지스터 사이에 직렬로 연결되는 트랜지스터들의 세트로 구성된다. 각각의 메모리 셀은 플로팅 게이트 MOS 트랜지스터를 포함한다. 메모리 셀을 프로그래밍할 때, 전자들은 예를 들어, 파울러 노드하임(F-N) 터널링 및/또는 열 전자 주입에 의해 플로팅 게이트로 주입된다. 셀의 비휘발성은 플로팅 게이트 내에 유지되는 전자들로 인한다. 비트들은 저장되는 전기 전하에 비례하는 그것의 임계 전압(셀을 전도하는데 필요한 전압)에 의해 정의되는 논리값을 저장하는 플로팅 게이트(전기적 격리된 전도체) 상에서 전하를 트래핑(trapping)함으로써 저장된다. 메모리 셀이 소거될 때, 셀의 플로팅 게이트에서의 전자들은 플로팅 게이트에서 예를 들어, 소스 및/또는 기판으로의 양자 터널링(터널 전류)에 의해 당겨내어진다.
플래시 메모리가 순환됨에(즉, 반복되어 프로그래밍되고 소거됨에) 따라, 플래시 메모리의 물리적 품질들은 변화한다. 예를 들어, 프로그래밍 및 소거 작동들 동안 플로팅 게이트 상에서 전자들의 반복된 배치 및 제거는 각각 일부 과잉 전자가 디바이스에 트래핑되게 한다. 또한, 하나 또는 다수의 셀이 프로그래밍될 때, 인접한 셀들은 인접한 셀들의 플로팅 게이트들로의 예상되지 않고 원하지 않는 전하 주입을 겪을 수 있으므로, 내부에 저장되는 데이터의 손상을 야기한다. 예를 들어, 전자들은 이웃하는 셀들의 게이트들에서의 전압으로 인한 연장된 응력 후에 이웃하는 셀들로 누설될 수 있다. 이러한 메모리 셀들의 임계 전압들은 결국 예상된 값들과 상이한(더 높거나 더 낮은) 값들을 취할 수 있어, 데이터가 판독될 때, 에러들을 야기한다. 일반적으로, 행해지는 손상은 장의 강도(예를 들어, 전압) 및 지속 기간의 함수가 되며; 즉, 높은 임계 전압 조건들로 플래시 메모리를 프로그래밍하는 것은 플래시 메모리가 더 긴 지속 기간 및/또는 더 높은 적용 필드들을 필요로 하므로, 프로그램 및 소거 프로세스들 둘 다에 기인하는 손상율을 증가시킨다. 예를 들어, 충분한 전자들을 추가하는 것은 셀을 소거된 상태에서 프로그래밍된 상태로 변경할 수 있다.
다양한 구현에서, 메모리 셀들은 열들(비트라인들) 및 행들(워드라인들)의 어레이로 웨이퍼 상에 배열된다. 메모리 셀의 어드레스는 메모리 셀에 상응하는(예를 들어, 메모리 셀을 색인화하는) 비트라인 및 워드라인의 교차 지점을 나타낸다. 플래시 메모리는 각각의 블록이 페이지들로 분할되는 블록들로 추가로 구성될 수 있다. MLC 메모리의 일부 구현에서, 플래시의 셀들의 모든 행은 2개의 페이지: LSB 및 MSB 페이지로 구성된다. 블록이 128개의 페이지를 갖는다면, 그 때 블록은 각각의 행이 2개의 페이지를 갖는 셀들의 64개의 행을 가질 수 있다. 각각의 행은 셀들이 물리적으로 함께 다이(die)에 있을 때, 셀들이 전압들 및 저항들 그리고 제조 프로세스의 일부로서의 다른 특성들의 변화를 겪으므로, 상이하게 작동할 수 있다.
NAND 아키텍처에서, (예를 들어, 비트라인에서) 판독되는 셀들의 스트링에서의 각각의 트랜지스터가 상승된 전압 응력을 수신하므로, (예를 들어, 지정된 워드라인에 상응하는 비트라인의 위치에서) 그러한 스트링의 셀들 모두보다 더 적은 것이 임의의 시간에 판독될 수 있더라도, 저하의 문제가 특히 문제가 있다는 점을 알게 되었다. 저하로 인해, 프로그래밍될 때, 일부 행(워드라인)의 셀들은 다른 것들보다 일부 행(워드라인)의 셀들의 예상된 값들(예를 들어, 상응하는 비트라인에서 측정되는 예상된 전압)에서 더 멀리 있다. 이러한 변화들이 개별 워드라인들와 연관될 수 있다는 것이 관측되었다. 따라서, 본 기술은 이러한 변화들을 측정 가능 값으로서 특성화하고, 런타임에서 변화들을 보상하는 메커니즘을 제공한다. 예를 들어, 워드라인에서의 셀 전압들이 (예를 들어, 특성화 프로세스의 결과로서) 편이하는 것으로 발견되면, 그 때 바이어스(예를 들어, 오프셋 전압)가 프로그래밍된 전압 또는 판독값을 정정하도록 프로그램 또는 이후의 판독 작동 동안에 도입될 수 있다. 이러한 방식으로, 상이한 워드라인들의 셀들 사이의 실제 프로그래밍값들의 비선형성이 감소될 수 있어, 셀들을 판독할 때, 에러들을 감소시킨다.
그러나, 동일한 바이어스가 특정 블록 또는 다이 전체에 걸쳐 판독 관련 에러들을 균일하게 정정하는데 적절하지 않을 수 있다. 게다가, 각각의 워드라인 또는 블록마다 바이어스값들을 저장하는 것은 저장에 유용한 메모리를 빠르게 소모할 수 있고 모든 판독 작동에 정확한 바이어스를 인가하기 위해 많은 룩업을 필요로 함으로써 다루기 힘들게 되고/되거나 수행을 지연시킬 수 있다. 따라서, 본 기술은 바이어스값들이 그룹 내의 워드라인들을 판독하기 위한 최저 가능한 판독 에러율에 최적화되는 바이어스값들을 결정하고 워드라인들의 그룹들과 연관시키는 메커니즘을 제공한다. 본 기술은 메모리 셀들의 수명에 걸쳐 바이어스값들을 최적화하는 메커니즘을 추가로 제공한다. 이러한 방식으로, 바이어스값들은 필요에 따라 효율적으로 저장되고, 호출되고, 정정될 수 있어, 전체 플래시 메모리 셀 아키텍처의 신뢰성 및 내구성을 개선하여, 플래시 메모리를 기업 애플리케이션들에 적절하게 만든다.
도 1은 본 기술의 일 양태에 따른 다중 레벨 셀(MLC) 플래시 메모리에서의 메모리 셀들의 그룹에 대한 4개의 가능한 셀 임계 전압(VT) 분포(401, 410, 420 및 430) 및 상호 보완적인 프로그램 판독 레벨들(L0, L1 및 L2 임계치들)의 예시적 그래프 도면이다. MLC NAND 플래시 메모리는 MLC NAND 플래시 메모리의 셀들의 플로팅 게이트들에 인가되는 전기적 전하의 다수의 레벨(판독 레벨) 사이에서 선택함으로써 셀 당 하나보다 더 많은 비트를 제공하여 각각이 상이한 전압 임계치(VT)에서 발생하는 전도성의 다수의 상태를 달성한다. 도 1에 도시된 바와 같이, MLC NAND 셀은 셀 당 4개의 상태(전하의 레벨) 중 하나를 저장할 수 있어, 셀 당 정보의2개의 논리 비트: 최상위 비트(MSB) 및 최하위 비트(LSB)를 산출한다. 이러한 2개의 비트는 메모리 블록의 상응하는 MSB 및 LSB 페이지들을 구성할 수 있다.
도 1은 데이터 레벨들(L0, L1, L2 및 L3)로 프로그래밍되는 (예를 들어, 블록에서의) 메모리 셀들의 그룹에 대한 확률 밀도 분포 곡선들(400)을 도시한다. 분포들(401, 410, 420 및 430)은 각각 L0, L1, L2 및 L3 데이터 레벨들에 대한 확률 밀도 분포 곡선들에 상응한다. 각각의 데이터 레벨은 각각의 임계 전압 레벨에 의해 분리된다. 도시된 예에서, 임계 전압 레벨들은 L0 임계치, L1 임계치 및 L2 임계치로서 식별된다. 임계 전압 레벨들은 예를 들어, 판독 신호가 분포(401, 410, 420 또는 430)에 있는 것으로 판독될지 여부를 판단하는 “판독 레벨들”로서 (예를 들어, 플래시 메모리 내의) 임계치 검출기에 의해 사용된다. 도 1의 4개의 셀 분포(401, 410, 420 및 430)는 실험실 데이터로부터 얻어질 수 있다.
분포에서의 모든 셀이 전도될 것 보장하기 위해, 분포보다 더 큰 판독 레벨 전압이 인가된다. 본원에 설명하는 다양한 예에서, 제1 판독 레벨(RL1)은 L0 임계 전압에 상응하고, 제2 판독 레벨(RL2)은 L1 임계 전압에 상응하고, 제3 판독 레벨(RL3)은 L2 임계 전압에 상응한다. 이 점에서, RL1 전압은 L0 분포에서의 셀들이 전도되게 할 것이고, RL2 전압은 L1 분포에서의 셀들이 전도되게 할 것이고, RL3 전압은 L2 분포에서의 셀들이 전도되게 할 것인 등이다. 도 1로 도시된 바와 같이, 4개의 상태만이 이용 가능한 경우, RL3 전압은 L3 분포에서의 어떤 셀들로 전도되게 하지 않을 것이다. 일부 구현에서, 이는 그러한 셀들에 대해 LSB의 2진수의 x0를 생성할 것이다. 일반적으로 N개의 분포의 경우, N-1개의 판독 레벨이 있을 것이다. 도시된 예에서, 4개의 분포(상태) 및 3개의 판독 레벨이 있다. 그러나, 본 기술의 범위로부터 벗어나지 않는 범위 내에서 8개, 16개 또는 더 많은 분포가 있을 수 있다는 점이 이해된다.
도 2a는 본 기술의 일 양태에 따른 3개의 판독 레벨(RL1, RL2 및 RL3)을 사용하는 LSB 페이지에 대한 예시적 확률 결정을 도시한다. 도시된 예에서, 제1 판독 레벨(202)(“RL2”)이 LSB 페이지의 메모리 셀들에 대한 추정상의 프로그램 레벨들을 결정하도록 LSB 페이지의 제1 판독에 사용된다. 메모리 셀들이 관측된 추정상의 프로그램 레벨들로 실제로 프로그래밍되었을 확률을 결정하기 위해, 다수의 가벼운 판독이 개시된다.
도시된 예에서, 메모리 셀들은 제1 판독 레벨(202) 아래의 제2 판독 레벨(204) 및 제1 판독 레벨(202) 위의 제3 판독 레벨(206)을 사용하여 판독된다. 제1 프로그램 영역(ß1)은 제1 판독 레벨(202)과 제2 판독 레벨(204) 사이에 프로그래밍된 값을 갖는 하나 이상의 셀을 포함하고, 제2 프로그램 영역(ß2)은 제1 판독 레벨(202)과 제3 판독 레벨(206) 사이에 프로그래밍된 값을 갖는 하나 이상의 셀을 포함한다. 판독 레벨들 사이의 다양한 영역은 본원에 “빈(bin)들”로 지칭될 수 있다. 다양한 양태에서, 신뢰값은 메모리 셀들 중 얼마나 많은 것이 하나 이상의 다른 빈과 비교하여 빈에 있는지에 기반하여 각각의 빈에 대해 계산될 수 있다. 신뢰값은 빈에 대한 분포 곡선 아래의 영역(208)에 기반하여 빈에 대해 결정될 수 있다. 신뢰값은 그 다음 상응하는 빈에서의 각각의 메모리 셀에 할당된다. 추가로 설명할 것이 바와 같이, 신뢰값들은 로그 우도율들을 포함할 수 있다.
도 2b는 3개의 판독 레벨(RL1, RL2 및 RL3)을 사용하는 MLC 플래시 메모리의 MSB 페이지에 대한 예시적 확률 결정을 도시한다. 본 기술의 양태들에 따르면, 초기 판독 레벨(202)은 각각의 메모리 셀에 대한 LSB 값을 얻도록 하나 이상의 메모리 셀에 적용될 수 있다. 도시된 예에서, 판독 레벨(202)은 예상된 비트 에러율(BER)을 최소화하도록 코딩된 비트 1의 분포와 코딩된 비트 0의 분포 사이의 교차 위치로서 선택된다. BER을 최소화하도록 선택되는 판독 레벨들은 최적의 판독 레벨들로 불린다.
LSB 값에 기반하여, 제1 판독 레벨(202)은 MSB에 대한 추정상의 프로그램 레벨을 판독하도록 결정될 수 있다. 제1 판독 레벨(202)이 결정되고 프로그램 레벨이 판독되면, 다수의 이후의 판독은 메모리 셀이 관측된 추정상의 프로그램 레벨로 실제로 프로그래밍되었을 확률을 결정하도록 개시될 수 있다. 따라서, 각각의 셀은 이후의 판독들 중 하나 이상이 적용될 때, 셀이 전도되거나 전도되지 않은 것으로 알려졌던 레벨에 상응하는 프로그램 영역(빈)(α0, α1, α2, α3, α4, α5 및 α6)과 연관될 수 있다.
도 3은 본 기술의 양태들에 따른 메모리 블록의 다수의 워드라인에 대한 예시적 최적의 판독 레벨 전압 변화들을 도시한다. 메모리 블록은 64개까지의 (또는 64개보다 더 많은) 워드라인을 가질 수 있다. 실험실 결과들은 최적의 판독 레벨들(예를 들어, RL1, RL2 또는 RL3)이 워드라인마다 다양할 수 있다는 것을 나타내었다. 도시된 예에서, 3개의 판독 레벨(RL1, RL2 및 RL3)은 데이터 레벨들(L0, L1, L2 및 L3)에 상응하는 확률 밀도 분포 곡선들에서 메모리 셀들을 판독하는 3개의 판독 레벨(RL1, RL2 및 RL3)의 각각의 값들로 최적으로 설정된다. 그러나, 이러한 최적의 판독 레벨들의 값들 또는 전압들은 각각의 워드라인에 대하여 변화되는 것으로 나타내어진다. 예를 들어, 워드라인 1에 대한 최적의 판독 레벨들은 약간 증가된 값을 갖는 우측으로 편이되는 반면에, 워드라인 64는 약간 감소된 값을 갖는 좌측으로 편이된다. 추가로 설명할 것이 바와 같이, 각각의 판독 레벨에 대한 전압들의 이러한 편이들 각각은 각각의 주판독 레벨 전압으로부터의 바이어스값들 또는 판독 레벨 오프셋들로서 나타내어질 수 있다.
도 4는 본 기술의 다양한 양태에 따른 다수의 워드라인에 대한 판독 레벨 오프셋값들의 예시적 범위에 대한 에러 카운트들의 예시적 표(400)를 도시한다. 상술한 바와 같이, 메모리 셀의 특정 상태를 판독하는데 사용되는 최적의 판독 레벨은 워드라인마다 다양할 수 있어, 각각의 워드라인이 서로에 대하여 고유 세트의 특성들을 가질 수 있다는 것을 예시한다. 워드라인들 사이의 최적의 판독 레벨들의 변화들은 또한 본원에 “판독 레벨 오프셋”으로 지칭되는 특정 바이어스에 의해 주판독 레벨을 변경함으로써 나타내어질 수 있다. 판독 레벨 오프셋은 각각의 워드라인 및/또는 각각의 블록 및/또는 각각의 메모리 다이마다 상이할 수 있다. 이 점에서, 다수의 오프셋은: 각각의 워드라인마다 하나, 각각의 블록마다 하나, 그리고/또는 각각의 메모리 다이마다 하나가 적용될 수 있다.
표(400)의 각각의 행은 상이한 워드라인을 나타내는 반면에, 각각의 열은 상이한 판독 레벨 오프셋값을 나타낸다. 블록의 각각의 워드라인이 표에 나타내어질 수 있다. 예시적 표에서 목록으로 나열된 에러 카운트들은 상응하는 오프셋값에서 상응하는 워드라인을 판독할 때 생성되는 에러의 수이다. 에러 카운트들은 워드라인 및 판독 레벨 오프셋값에 의해 색인화될 수 있다. 판독 레벨 오프셋값들은 주판독 레벨 전압으로부터 “틱(tick)”으로 나타내어진다. 일부 구현에서, 모든 2 틱은 25 ㎷의 동등물일 수 있다. 게다가, 각각의 판독 레벨 전압마다 상이한 표가 있을 수 있다. 예를 들어, 도시된 표는 RL1에 대한 것일 수 있는 반면에, 상이한 표가 RL2로 동일한 워드라인들을 판독하는 것에 대한 에러 카운트들을 제공하고, 상이한 표가 RL3으로 동일한 워드라인들을 판독하는 것에 대한 에러 카운트들을 제공한다.
표는 실험실 데이터에 기반하여 초기에 생성될 수 있다. 적어도 일 예에서, 에러 카운트들의 표는 메모리 블록의 워드라인들을 판독하는 것에 기반하여 생성될 수 있으며, 각각의 워드라인은 상이한 오프셋 전압에 의해 각각의 판독마다 변경되는 선택된 판독 레벨 전압을 사용하여 다수 번 판독된다. 따라서, 에러 카운트는 각각의 오프셋 전압마다 생성되고, 표는 워드라인 및 각각의 오프셋 전압들에 의해 에러 카운트들을 색인화하도록 생성된다.
도 5a 내지 도 5c는 본 기술의 다양한 양태에 따른 순환되는 메모리 블록들에 대한 예시적 최적의 판독 레벨 오프셋들의 도표들을 도시한다. 상술한 바와 같이, 메모리 셀들이 순환됨에 따라, 메모리 셀들은 일부 저하를 겪을 수 있다. 따라서, 분포들(L0, L1, L2 및/또는 L3)은 드리프트(drift)하거나 예상된 값들에서 이동할 수 있고, 새로운 최적의 판독 레벨들이 최소 에러들을 갖는 새로운 최적의 판독 레벨들의 새로운 값들로 셀들을 판독하는데 필요하다. 도시된 예들에서, 최적의 판독 레벨 오프셋값들이 주판독 레벨들(RL1, RL2 및 RL3)에 대한 메모리 블록의 128개의 워드라인(0 내지 127)에 대해 도표화된다. 도 5a는 RL1을 사용하는 MSB 페이지들의 예시적 판독들을 나타내고, 판독 레벨 오프셋값들이 더 많은 워드라인 수들에 대해 14 틱으로 정주하기 전에, 18 틱과 12 틱 사이에서 어떻게 달라질 수 있는지를 도시한다. 도 5b는 RL2를 사용하는 LSB 페이지들의 예시적 판독들을 나타낸다. 도 5b는 더 큰 오프셋(즉, 18 틱)이 (예를 들어, 블록의 종료 부분에서의) 더 많은 워드라인 수보다 (예를 들어, 블록의 시작 부분에서의) 더 적은 워드라인 수에서 어떻게 필요한지를 도시한다. RL2에 적용할 판독 레벨 오프셋은 워드라인 0에 대해 18 틱에서, 워드라인 120에 대해 10 틱으로, 그리고 그 다음 마지막으로 워드라인 127에서 4 틱으로 일반적으로 값이 감소하는 것으로 보인다. 도 5c는 유사 패턴을 따른다.
도 6은 본 기술의 다양한 양태에 따른 오프셋 워드라인 그룹들을 생성하기 위한 예시적 알고리즘의 블록도를 도시한다. 알고리즘(602)은 컴퓨터 소프트웨어(예를 들어, 컴퓨팅 디바이스 상에서 실행되는 명령어들), 전자 하드웨어 또는 둘 다의 조합들로서 구현될 수 있다. 예를 들어, 3개의 (또는 더 많은) 상이한 판독 레벨을 사용하는 128개의 워드라인 각각에서 메모리 셀들을 판독하는 최적의 판독 레벨들을 제공하는데 필요한 오프셋값들을 저장하는 것은 다량의 메모리 공간을 제공할 것이다. 따라서, 본 기술은 저장되는데 필요한 오프셋값(또는 판독 레벨)의 양을 감소시키는 반면에, 메모리 판독 작동들의 최적치에 근접한 비트 에러율 감소를 제공하는 판독 레벨 프로파일링 알고리즘(602)을 구현한다. 판독 레벨 프로파일링 알고리즘(602)은 저장되는 판독 레벨 오프셋의 수를 감소시키는 반면에, 심하거나 가벼운 디코딩 고장들을 증가시킬 수 있는 상응하는 판독 작동들에 의해 생성되는 비트 에러율들을 저하시키지 않는다.
예시적 판독 레벨 그룹화 알고리즘(602)은 예를 들어, 블록에 대한 워드라인들의 초기 분할의 형태로 초기 경계 조건들, 및 에러 카운트들의 상술한 표(400)를 입력로서 취한다. 경계 조건들에 의해 한정되는 워드라인들의 각각의 분할은 각각이 연속적인 워드라인 어드레스들로 구성되는 후보 (입력) 워드라인 그룹들의 세트를 형성한다. 예를 들어, 초기 경계 조건들은 워드라인들 0 내지 31로서 그룹 1, 워드라인들 32 내지 63으로서 그룹 2, 워드라인들 64 내지 95로서 그룹 3, 및 워드라인들 96 내지 127로서 그룹 4를 갖는 4개의 후보 그룹을 지정할 수 있다. 이러한 후보 그룹들은 알고리즘(600)이 저장 디바이스의 작동 동안 판독 작동들에 사용되는 최적의 (출력) 오프셋 워드라인 그룹들을 형성하기 위해 에러율들을 분석하고 궁극적으로 최적의 경계 조건들을 생성하는데 사용할 초기 경계 조건들을 설정한다.
예시적 알고리즘(602)은 표(400) 및 초기 경계 조건들을 취하고 최적의 오프셋 워드라인 그룹들을 출력한다. 알고리즘(602)에 의해 출력되는 각각의 최적의 오프셋 워드라인 그룹은 초기 조건들의 일부로서 입력되는 총워드라인들(예를 들어, 128개의 워드라인)의 연속적인 부분을 포함한다. 알고리즘(602)에 의해 출력되는 최적의 오프셋 워드라인 그룹들의 경계들은 초기 경계 조건들과 동일할 수 있거나 동일하지 않을 수 있고, 많은 경우에 상이할 것이다. 각각의 최적의 오프셋 워드라인 그룹은 그룹에 대해 상응하는 최적의 오프셋 전압과 페어링(pairing)되는 연속적으로 그룹화된 워드라인들을 포함한다. 그룹들은 그룹들의 워드라인들에 대하여 연속적으로 순서화될 수 있다.
각각의 각 최적의 오프셋 전압과의 각각의 최적의 오프셋 워드라인 그룹의 각각의 페어링은 오프셋 워드라인 그룹들 각각, 그리고 전체로서의 그룹들에서 워드라인들을 판독하기 위한 전체 최저 가능한 에러 카운트에 대한 알고리즘에 의해 자동적으로 선택된다. 일반적으로, 알고리즘(602)에 의해 생성되는 최적의 오프셋 워드라인 그룹들의 세트는 각각의 출력 그룹에 대해 가장 맞거나, 정규화된 에러 카운트를 결정하기 위해 워드라인 그룹들의 각각의 초기 세트에 대한 워드라인 위치 및 오프셋값들에 기반하여 표(400)를 반복적으로 색인화하는 것에 적어도 부분적으로 기반하여 생성된다. 따라서, 판독 레벨 그룹화 알고리즘(602)은 예를 들어, 입력표(400)에 기반하여 최소 비트 에러율 저하를 제공하는 (예를 들어, 각각의 그룹에 대한 경계들로서) 최적의 오프셋 워드라인 그룹들 및 각각의 그룹에 대한 최적의 판독 레벨 오프셋들 (또는 판독 레벨들)을 출력한다.
도 7은 본 기술의 다양한 양태에 따른 오프셋 워드라인 그룹들을 생성하기 위한 제1 예시적 프로세스(700)의 흐름도를 도시한다. 설명하기 위한 목적으로, 예시적 프로세스(700)의 다양한 블록을 본원에 설명하는 구성 요소들 및/또는 프로세스들을 참조하여 본원에 설명한다. 프로세스(700)의 블록들 중 하나 이상은 예를 들어, 도 15의 제어기(1501)를 포함하는 하나 이상의 프로세서 또는 제어기(1501)의 하나 이상의 구성 요소 또는 프로세서에 의해 예를 들어, 구현될 수 있다. 일부 구현에서, 블록들 중 하나 이상은 다른 블록들과는 별도로, 그리고 하나 이상의 상이한 프로세서 또는 제어기에 의해 구현될 수 있다. 추가로 설명하기 위한 목적으로, 예시적 프로세스(700)의 블록들을 직렬로 또는 선형으로 일어나는 것으로 설명한다. 그러나, 예시적 프로세스(700)의 다수의 블록은 병렬로 일어날 수 있다. 게다가, 예시적 프로세스(700)의 블록들은 도시된 순서로 수행될 필요가 없고/없거나 예시적 프로세스(700)의 블록들 중 하나 이상은 수행될 필요가 없다.
다양한 구현에 따르면, 프로세스(700)의 블록들은 판독 레벨 그룹화 알고리즘(602)에 의해 구현된다. 이 점에서, 프로세스(700)의 블록들, 또는 프로세스(700)의 블록들의 서브세트는 메모리 디바이스에 사용되는 각각의 가능한 판독 레벨에 대해 실행될 수 있다. 예를 들어, 프로세스(700)의 블록들은 표(400) 및 입력 경계 조건들에 기반하여 RL1, RL2 및 RL3에 대한 최적의 오프셋 워드라인 그룹들을 생성하도록 실행될 수 있다. 다양한 양태에서, 상이한 크기들이고/이거나 상이한 오프셋값 페어링들을 갖는 오프셋 워드라인 그룹들이 각각의 상이한 판독 레벨에 대해 생성될 수 있다. 게다가, 프로세스(700)의 블록들은 상이한 블록들 및/또는 다이에 대해 상이한 그룹들을 생성하도록 실행될 수 있다. 프로세스(700)는 저장 디바이스의 구성 동안, 작동 이전에 또는 작동 동안 구현될 수 있다.
일반적으로 각각의 초기 경계 조건의 경우, 프로세스(700)는 상응하는 입력표(400)에 의해 결정되는 바와 같이 최적의 비트 에러율과 비교하여 전체 비트 에러율의 최소 증가를 제공하는 각각의 그룹에 대한 최적의 그룹 경계들 및 상응하는 최적의 판독 레벨 오프셋들을 자동적으로 선택하도록 다수의 반복 단계를 실행한다. 경계 조건들에 의해 한정되는 다수의 후보 그룹의 경우, 알고리즘(600)은 2개의 연속적인 그룹 k 및 k+1을 선택하고, 제1 그룹의 제1 요소에서 시작되어 제2 그룹의 마지막 요소까지, 모든 가능한 2개의 연속적인 분할을 고려할 수 있다.
도시된 예에서, 블록의 워드라인들은 후보 그룹들로 분할된다(702). 128개의 워드라인이 사용되는 일 예에서, 블록은 워드라인들 0 내지 15로서 그룹 1, 워드라인들 16 내지 31로서 그룹 2, 워드라인들 32 내지 63으로서 그룹 3, 워드라인들 64 내지 79로서 그룹 4 등을 갖는 4개의 후보 그룹으로 분할될 수 있다. 상술한 바와 같이, 그룹들의 분할은 그룹들의 경계들로서 나타내어질 수 있다. 프로세스(700)는 그 다음 연속적인 후보 그룹들의 세트를 선택한다(704). 예를 들어, 그룹들 1 및 2가 선택될 수 있어, 0과 31 사이의 워드라인들의 세트를 형성한다. 세트로부터 다수의 연속적인 하위 그룹의 치환들이 고려된다(706). 본원의 다양한 예에서, 2개의 하위 그룹의 치환들이 고려되지만, 더 많은 하위 그룹이 고려될 수 있다. 주어진 예에서, 하위 그룹들이 연속적이고, 그룹 내의 워드라인들이 연속적이므로, n개의 워드라인에 대한 치환의 최대수는 n-1개의 치환일 것이다. 0 내지 31에 걸치는 예시적 세트의 워드라인들의 치환들은 {[0, 1 내지 31], [0 내지 1, 2 내지 31], [0 내지 3, 4 내지 31] . . . [0 내지 30, 31]}을 포함할 수 있다.
예시적 프로세스(700)는 최소-평균 알고리즘으로서 도시된다. 즉, 각각의 가능한 치환의 경우, 평균 에러 카운트는 상응하는 에러표에 기반하여 컴퓨팅되고, 그 다음 치환들 내의 하위 그룹들이 최소 에러 카운트들을 갖는 하위 그룹들을 선택하기 위해 비교된다. 이 점에서, 각각의 하위 그룹에 대한 에러 카운트들은 에러 카운트 표(400)에 기반하여 모든 이용 가능한 판독 레벨 오프셋을 사용하여 컴퓨팅되고, 각각의 치환에 대해 최소 에러 카운트들을 제공하는 판독 레벨들이 결정된다. 도시된 예에서, 프로세스(700)는 제1 치환에서 시작되고 (또는 제1 치환을 선택하고)(708), 그 다음 치환 내의 각각의 하위 그룹에 대해(710), 입력표(400)에 나타내어지는 각각의 오프셋값에 대한 하위 그룹에 상응하는 총에러 카운트를 구한다(712). 총에러 카운트는 예를 들어, 하위 그룹 내의 각각의 워드라인에 대한 에러 카운트들을 결정하도록 표(400)에 나타내어지는 제1 오프셋값 및 제1(i=1) 하위 그룹 내의 각각의 워드라인에 의해 표(400)를 색인화하고, 그 다음 결정된 에러 카운트들을 합계함으로써 구해질 수 있다. 표(400)에 의해 나타내어지는 다른 오프셋값들에 대한 총에러 카운트들이 동일한 방식으로 결정되고, 에러 카운트들의 결과로서 생기는 합들이 하위 그룹에 대한 최소 에러 카운트를 갖는 오프셋값을 식별하도록 비교된다. 식별된 오프셋값이 그 다음 선택되고 하위 그룹과 연관된다(714). 동일한 프로세스가 치환의 다음 하위 그룹에 적용된다.
전술한 프로세스가 반복되어(716), 오프셋값이 각각의 치환의 각각의 하위 그룹과 연관되며, 각각의 하위 그룹이 또한 연관된 오프셋값에 상응하는 총에러 카운트와 연관될 때까지, 블록(708)에서 재시작된다. 이하의 표 1은 2개의 하위 그룹의 3개의 치환에 대한 예시적 오프셋 연관들을 제공한다.
[표 1]
Figure pat00001
<선택된 치환들에 대한 예시적 오프셋 연관들>
오프셋값들이 각각의 치환의 각각의 하위 그룹과 연관되면, 프로세스(700)는 최소 총에러 카운트를 갖는 치환을 선택한다(718). 최소 총에러 카운트는 사용되는 알고리즘의 구현에 따라 치환 내의 하위 그룹들 둘 다, 또는 제1 또는 제2 하위 그룹의 총에러 카운트일 수 있다. 다양한 예에서, 모든 워드라인(하위 그룹들 둘 다)에 걸쳐 합계되는 총에러 카운트는 치환들을 비교하는데 사용된다. 프로세스(700)는 선택된 치환의 제1 하위 그룹 및 제1 하위 그룹의 상응하는 오프셋을 최적의 쌍으로서 선택함으로써 계속된다(720).
프로세스(700)는 제3 후보 그룹을 선택함으로써 계속되고 제2 하위 그룹 및 제3 후보 그룹으로 전술한 단계들에 대해 반복된다. 도시된 예에서, 프로세스(700)는 더 많은 후보 입력 그룹이 있는지 여부를 판단한다(722). 다음 후보 그룹이 존재하면(예를 들어, 위의 예에서 워드라인들 32 내지 47), 블록(718)에서 식별되는 치환의 제2 하위 그룹이 그 다음 선택되고 다음 후보 그룹으로 알고리즘이 재고려된다(724). 위의 예에서, 제1 하위 그룹이 (0 내지 31의 워드라인 경계들을 갖는) 제1 및 제2 후보 그룹들에 기반하여 생성되는 0 내지 22의 워드라인 경계들을 포함하면, 그 때 워드라인들 23 내지 31을 갖는 제2 하위 그룹이 알고리즘으로 입력되는 다음 이후의 후보 그룹과 함께 다음 세트의 후보 그룹들에 사용될 것이다. 그러므로 위의 예에서, 다음 세트의 후보 그룹들은 워드라인들 23 내지 31을 갖는 후보 그룹 및 워드라인들 32 내지 47을 갖는 후보 그룹을 포함할 것이다. 다음 후보 그룹이 존재하지 않으면, 그 때 알고리즘은 블록(718)에서 식별되는 치환의 제2 하위 그룹 및 제2 하위 그룹의 상응하는 오프셋을 최종의 최적의 쌍으로서 선택할 수 있다(726).
프로세스(700)는 출력 그룹 경계들이 하나의 반복에서 다음 반복으로 바뀌지 않거나, 일정 수의 반복이 도달될 때까지, 반복될 수 있다. 각각의 반복은 동일한 초기 경계 조건들, 블록(726)의 종료 부분에서 생성되는 출력 경계 조건들 또는 새로운/상이한 경계 조건들을 사용하여 실행될 수 있다. 무작위 추출이 프로세스(700) 내에 도입될 수도 있다. 예를 들어, 임의의 특정 순서로 있지 않은 하위 그룹들을 포함하는 치환들이 생성될 수 있다. 제1 하위 그룹은 워드라인들 13 내지 31을 포함할 수 있고 제2 하위 그룹은 워드라인들 0 내지 12를 포함할 수 있다.
예시적 프로세스(700)가 최소-평균 알고리즘으로서 도시되지만, 다른 타입들의 알고리즘들이 구현될 수 있다. 예를 들어, 최소-최대 알고리즘이 구현될 수 있다. 이러한 방식으로, 블록(712)은 치환 내의 각각의 하위 그룹에 대해(710), 각각의 오프셋값에 대한 하위 그룹에서의 모든 워드라인의 최대 에러 카운트를 구하도록(712) 변경될 수 있다. 최대 에러 카운트는 예를 들어, 제1 오프셋값에 의해 표(400)를 색인화하고 제1 오프셋값 및 하위 그룹에서의 각각의 워드라인(예를 들어, 치환의 제1 하위 그룹{[0 내지 3], [4 내지 31]}에서의 워드라인들 0, 1, 2 및 3)에 의해 색인화되는 에러 카운트들을 비교함으로써 구해질 수 있다. 각각의 오프셋값들에 대해 구해지는 최대 에러 카운트들이 그 때 비교되고, 모든 최대 에러 카운트의 최소치에 상응하는 오프셋값이 그 다음 선택되고 하위 그룹과 연관된다(714). 동일한 프로세스가 치환의 다음 하위 그룹에 적용될 수 있다. 최소-최대 알고리즘을 구현하는 프로세스(700)의 하나의 이익은 에러들을 정정하기 위해 저장 디바이스에 의해 사용되는 에러 정정 코딩의 최대 용량 미만으로 에러들을 유지하는 것이다.
특정 양태들에서, 본 기술은 예시적 프로세스(700)에 대하여 앞서 논의된 것들과 상이한 블록들 또는 단계들의 구현을 포함할 수 있다. 초기 경계 조건들 및 표(400)를 활용함으로써, 프로세스(700)는 예를 들어, 표(400)의 최적의 값들로부터 각각의 그룹에서의 각각의 워드라인에 대한 최소 비트 에러율 저하를 제공하는 각각의 그룹에 대한 최적의 판독 레벨들을 포함하는 최적의 오프셋 워드라인 그룹들에 대한 경계들을 출력한다.
도 8은 본 기술의 다양한 양태에 따른 오프셋 워드라인 그룹들을 생성하기 위한 제2 예시적 프로세스(800)의 흐름도를 도시한다. 설명하기 위한 목적으로, 예시적 프로세스(800)의 다양한 블록을 본원에 설명하는 구성 요소들 및/또는 프로세스들을 참조하여 본원에 설명한다. 프로세스(800)의 블록들 중 하나 이상은 예를 들어, 도 15의 플래시 메모리 제어기(1501)를 포함하는 하나 이상의 프로세서 또는 제어기(1501)의 하나 이상의 구성 요소 또는 프로세서에 의해 예를 들어, 구현될 수 있다. 일부 구현에서, 블록들 중 하나 이상은 다른 블록들과는 별도로, 그리고 하나 이상의 상이한 프로세서 또는 제어기에 의해 구현될 수 있다. 추가로 설명하기 위한 목적으로, 예시적 프로세스(800)의 블록들을 직렬로 또는 선형으로 일어나는 것으로 설명한다. 그러나, 예시적 프로세스(800)의 다수의 블록은 병렬로 일어날 수 있다. 게다가, 예시적 프로세스(800)의 블록들은 도시된 순서로 수행될 필요가 없고/없거나 예시적 프로세스(800)의 블록들 중 하나 이상은 수행될 필요가 없다.
다양한 구현에 따르면, 프로세스(800)의 블록들은 프로세스(700)의 하나 이상의 블록에 상응하거나 이것들을 보완한다. 이 점에서, 프로세스(800)의 블록들 중 일부는 알고리즘(600)에 의해 실행될 수 있다. 프로세스(800)의 블록들, 또는 프로세스(800)의 블록들의 서브세트는 메모리 디바이스에 사용되는 각각의 가능한 판독 레벨에 대해 실행될 수 있다. 예를 들어, 프로세스(800)의 블록들은 표(400) 및 입력 경계 조건들에 기반하여 RL1, RL2 및 RL3에 대한 최적의 오프셋 워드라인 그룹들을 생성하도록 실행될 수 있다. 다양한 양태에서, 상이한 크기들이고/이거나 상이한 오프셋값 페어링들을 갖는 오프셋 워드라인 그룹들이 각각의 상이한 판독 레벨에 대해 생성될 수 있다. 게다가, 프로세스(800)의 블록들은 상이한 블록들 및/또는 다이에 대해 상이한 그룹들을 생성하도록 실행될 수 있다. 프로세스(800)는 저장 디바이스의 구성 동안, 작동 이전에 또는 작동 동안 구현될 수 있다.
도시된 예에서, 본 기술에 따른 시스템은 미리 결정된 프로그래밍 레벨로 프로그래밍되는 다수의 메모리 셀을 판독하는데 충분한 판독 레벨 전압을 제공한다(802). 일부 구현에서, 각각의 메모리 셀은 4개의 프로그래밍 레벨 중 하나로 프로그래밍되도록 구성되는 다중-레벨 비휘발성 메모리 셀이다. 예를 들어, 제1 및 제4 프로그래밍 레벨들은 (예를 들어, 최상위 비트의 2진수 0 또는 1을 나타내는) 제1 비트값들과 연관될 수 있고 제2 및 제3 프로그래밍 레벨들은 (예를 들어, 최하위 비트의 2진수 0 또는 1을 나타내는) 제2 비트값들과 연관될 수 있다. 상술한 바와 같이, 전압이 셀의 프로그램 레벨에 상응하는 특정 판독 레벨(예를 들어, RL1, RL2, RL3)로 메모리 셀에 인가될 때, 프로그램 레벨을 나타내는 셀이 전도될 것이다.
시스템은 각각의 워드라인 그룹이 복수의 정규화된 판독 레벨 오프셋 중 하나와 연관되는 복수의 최적의 워드라인 그룹으로 복수의 메모리 워드라인을 분할한다(804). 최적의 워드라인 그룹들 각각은 그룹들 중 제1의 것의 워드라인들이 그룹들 중 제2의 것의 워드라인들에 선행하는 메모리 블록의 연속적으로 순서화된 워드라인들로 구성된다. 이 점에서, 각각의 오프셋은 상응하는 워드라인 그룹의 워드라인들을 판독하는 판독 레벨 전압을 갖는 오프셋의 사용에 기인하는 최상의 에러율을 위해 정규화된다. 일부 구현에서, 복수의 워드라인을 최적의 워드라인 그룹들로 분할하는 것은 각각의 치환과 연관되는 총에러 카운트들의 최소치에 기반하여 미리 결정된 세트의 워드라인 후보 그룹들 내로부터 연속적인 워드라인 하위 그룹들의 각각의 치환을 선택하는 것을 포함한다(예를 들어, 도 7의 블록들(702 내지 706)). 이러한 방식으로, 연속적인 워드라인 하위 그룹들 각각은 복수의 가능한 판독 레벨 오프셋과 연관되는 에러 카운트들의 최소치에 상응하는 판독 레벨 오프셋과 연관된다.
일 예로서 도 7을 참조하면, 제1 및 제2 연속적인 워드라인 그룹들은 미리 결정된 세트의 후보 워드라인 그룹들로부터 선택될 수 있다(704). 상술한 바와 같이, 후보 워드라인 그룹들은 초기 경계 조건들에 기반할 수 있다. 복수의 하위 그룹 치환은 그 다음 선택된 제1 및 제2 연속적인 워드라인 그룹들에 제공될 수 있으며(706), 각각의 하위 그룹 치환은 제1 및 제2 연속적인 워드라인 그룹들에 걸치는 워드라인들의 다수의 연속적인 워드라인 하위 그룹을 포함한다. 각각의 하위 그룹 치환의 각각의 워드라인 하위 그룹의 경우, 각각의 판독 레벨 오프셋은 워드라인 하위 그룹에서의 워드라인들을 판독할 판독 레벨 전압으로 사용될 때, 각각의 판독 레벨 오프셋이 워드라인 하위 그룹에 대한 최소수의 에러를 생성하도록 가능한 판독 레벨 오프셋들로부터 선택될 수 있다(714). 하위 그룹 치환에서 연속적인 워드라인 하위 그룹들에 대한 최저 총에러 카운트를 갖는 복수의 하위 그룹 치환이 그 다음 선택될 수 있다(718). 따라서, 복수의 워드라인 그룹은 복수의 하위 그룹 치환 중 선택된 하나에 상응하는 하나 이상의 판독 레벨 오프셋에 적어도 부분적으로 기반할 수 있다.
일부 구현에서, 복수의 워드라인을 복수의 워드라인 그룹으로 분할하는 것은 각각의 치환과 연관되는 최대 에러 카운트들의 최소치에 기반하여 미리 결정된 세트의 워드라인 후보 그룹들 내로부터 연속적인 워드라인 하위 그룹들의 각각의 치환을 선택하는 것을 포함하며, 연속적인 워드라인 하위 그룹들은 각각 복수의 가능한 판독 레벨 오프셋과 연관되는 최대 에러 카운트들의 최소치에 상응하는 판독 레벨 오프셋과 연관된다. 일 예로서 각각의 워드라인 하위 그룹의 경우, 시스템은 가능한 판독 레벨 오프셋들 각각이 워드라인 하위 그룹의 워드라인들을 판독할 판독 레벨 전압으로 사용될 때, 워드라인 하위 그룹에서의 워드라인에 대해 생성되는 최대수의 에러를 결정할 수 있다. 결정된 최대 수들의 최소치에 상응하는 판독 레벨 오프셋은 그 다음 복수의 가능한 판독 레벨 오프셋으로부터 선택될 수 있다. 각각의 하위 그룹 치환의 경우, 하위 그룹 치환의 워드라인 하위 그룹들에 상응하는 선택된 판독 레벨 오프셋들의 최대 에러 카운트가 결정된다. 하위 그룹 치환들에 대해 결정되는 최대 에러 카운트들의 최소치를 갖는 하위 그룹 치환이 그 다음 선택된다(예를 들어, 718 참조).
위의 구현들 중 하나 이상에서, 각각의 치환의 각각의 연속적인 워드라인 하위 그룹은 미리 결정된 세트의 후보 워드라인 그룹들 내의 연속적인 워드라인들의 인터리빙에 기반하여 생성될 수 있다. 인터리빙은 무작위 추출을 도입하는데 사용될 수 있다. 예를 들어, 하위 그룹 치환에서의 제1 워드라인 하위 그룹은 워드라인들 14 내지 31을 포함할 수 있어, 워드라인들 0 내지 13을 포함하는 제2 하위 그룹이 뒤따른다. 3개의 하위 그룹을 포함하는 하위 그룹 치환에서, 치환의 제1 워드라인 하위 그룹은 워드라인들 4 내지 6을 포함할 수 있고, 치환의 제2 워드라인 하위 그룹은 워드라인들 0 내지 3을 포함할 수 있고, 치환의 제3 워드라인 하위 그룹은 워드라인들 7 내지 32를 포함할 수 있다.
게다가, 각각의 각 정규화된 판독 레벨 오프셋은 표에서의 각각의 에러율이 각각의 판독 레벨 오프셋 및 각각의 워드라인에 기반하여 색인화되는 에러율들의 표를 색인화하는 것에 기반하여 (예를 들어, 위의 구현들 중 임의의 것을 사용하여) 생성될 수 있다. 이러한 방식으로, 표는 각각의 연속적인 워드라인에 대한 최저 에러율을 갖고, 단일 식별된 오프셋과 연관될 때, 연속적인 워드라인들의 그룹에 대한 최소 가능 에러율을 갖는 연속적인 워드라인들의 그룹을 결정하는 상응하는 판독 레벨 오프셋들을 식별하도록 복수의 연속적인 워드라인에 의해 색인화될 수 있다.
워드라인 그룹들이 생성되었으면, 복수의 정규화된 판독 레벨 오프셋은 복수의 정규화된 판독 레벨 오프셋의 각각의 최적의 워드라인 그룹과 연관되고 저장 디바이스의 작동 동안 메모리 셀들을 판독하는데의 사용을 위해 저장된다(806). 이 점에서, 전술한 프로세스는 최적의 비트 에러율과 비교하여 전체 비트 에러율의 최소 증가를 제공하는 각각의 그룹에 대한 최적의 그룹 경계들 및 상응하는 최적의 판독 레벨 오프셋들을 자동적으로 선택한다.
예시적 프로세스들(700 및 800)의 상술한 특징들 중 많은 것 그리고 관련된 특징들 및 응용들은 (또한 컴퓨터 판독 가능 매체로 지칭되는) 컴퓨터 판독 가능 저장 매체 상에 기록되는 명령어들의 세트로서 지정되는 소프트웨어 프로세스들로서 구현될 수 있다. 이러한 명령어들이 하나 이상의 처리 장치(예를 들어, 하나 이상의 프로세서, 프로세서들의 코어, 또는 다른 처리 장치)에 의해 실행될 때, 이러한 명령어들은 처리 장치(들)이 명령어들로 지시되는 동작들을 수행하게 한다. 컴퓨터 판독 가능 매체의 예들은 CD-ROM, 플래시 드라이브, RAM 칩, 하드 드라이브, EPROM 등을 포함하지만, 이에 제한되지 않는다. 컴퓨터 판독 가능 매체는 무선으로 또는 유선 연결을 통해 통하는 반송파들 및 전자 신호들을 포함하지 않는다.
저밀도 패리티 체크(LDPC) 응용들에서, LLR은 비트가 "0" 또는 "1"일 확률 사이의 비율의 로그를 포함할 수 있다. LLR은 미리 결정된 범위에 걸칠 수 있다. 예를 들어 일부 구현에서, LLR은 범위 -255 내지 +255에 걸칠 수 있다. 정의 LLR은 메모리 셀로부터 판독되는 신호가 0-비트일 가능성이 있는 것을 일반적으로 나타낼 수 있고, 부의 LLR은 메모리 셀로부터 판독되는 신호가 1-비트일 가능성이 있는 것을 일반적으로 나타낼 수 있다. LLR은 메모리 셀로부터 판독되는 비트값과 연관될 수 있다. 5와 동일한 LLR과 연관되는 비트는 1과 동일한 할당된 LLR을 갖는 비트보다 2진수 제로일 가능성이 더 많을 수 있다. 0과 동일한 할당된 LLR을 갖는 비트는 2진수 1 또는 제로일 가능성이 동등할 수 있다.
일정 판독 레벨에서, 0-비트가 메모리 셀로부터 판독되면, 그 때 정의 LLR이 할당될 수 있다. 1-비트가 판독되면, 그 때 부의 값이 할당될 수 있다. 2개의 비트를 갖는 다중-레벨 메모리 셀에서, 다수의 가능한 셀 분포 레벨(예를 들어, L0, L1, L2 및 L3)이 있다. MSB의 판독에서 2진수 1과 2진수 제로를 구별하는 것은 다수의 판독 레벨 경계에 걸친 판단들이 필요할 수 있다. 도 1의 예에서, 0와 1을 구별하는 것은 셀이 중간 2개의 분포(L1 및 L2) 내에서 전도되는지(예를 들어, 2진수의 0x의 경우), 아니면 종료 분포들(L0 및 L3)에서 전도되는지(예를 들어, 2진수의 1x의 경우) 여부를 판단하는 것을 필요로 한다. 따라서, 다수의 판독 레벨이 그러한 판단을 행하기 위해 포함될 수 있다(예를 들어, RL0 및 RL2).
도 9는 본 기술의 양태들에 따른 2진 입력들 및 K-진 출력들을 갖는 별개의 메모리 없는 채널(DMC)로서 모델링되는 예시적 플래시 메모리 채널(900)을 도시한다. 이러한 예에서, K-진 출력들은 다수의 판독으로 식별될 수 있는 K개의 셀 프로그램 영역(빈)에 상응한다. 채널(900)의 모델은 로그 우도율(LLR)에 대한 정의를 제공한다. 이러한 모델을 사용하여, LLR을 이하로서 정의될 수 있다:
Figure pat00002
일부 구현에서, 모든 입력이 동등하게 가능성이 있다고 가정될 수 있으며; 이에 따라 식(1)의 표현은 이하가 된다:
Figure pat00003
도 2a를 참조하면, 판독되는 LSB 페이지에 대해 K=2이면, K개의 영역은
Figure pat00004
로서 지정되며, 도 2a의 영역(α1)에 대한 LLR은 이하로 주어진다:
Figure pat00005
도 2b를 참조하면, 판독되는 MSB 페이지에 대해 K=7인 경우에, 영역들은 이하로서 지정될 수 있다:
Figure pat00006
판독 레벨은 N 수의 판독 각각 전에 설정될 수 있다. 룩업 표는 얼마나 많은 빈이 메모리 셀들에 대한 LLR 값들을 결정하는데 사용되어야 할 지에 기반하여 판독 레벨 및 판독 레벨들의 값이 몇 개인지를 결정하는데 사용될 수 있다. 플래시 메모리 디바이스는 저장된 판독 레벨들을 사용하여 LSB 또는 MSB 페이지를 판독하도록 지시될 수 있다. 상술한 바와 같이 빈들을 생성하기 위해, 제1 판독 레벨이 셀들의 추정상의 값을 결정하는데 사용되고 그 다음 다수의 판독(예를 들어, 일련의 판독들)이 연관된 LLR 값들을 결정하기 위해 수행된다. 일부 양태에서, 판독 레벨들은 각각의 빈과 연관되는 미리 결정된(예를 들어, 저장된) 오프셋에 의해 제1 판독 레벨을 달리함으로써 결정된다. 이러한 오프셋은 본 기술에 의해 결정되는 오프셋들과 상이할 수 있다.
판독 데이터의 천이들은 어느 영역이 각각의 메모리 셀의 전압 임계치(VT)를 포함하는지를 결정하도록 분석된다. 따라서, 제1 판독 레벨은 (예를 들어, 임시로) 저장될 수 있고, 영역은 메모리 셀로부터 판독되는 (예를 들어, 정의 또는 부의) 2진 값, 및 제1 판독 레벨과 메모리 제어기에 의해 개시되는 이후의 판독 레벨들 사이의 차이들에 기반하여 결정될 수 있다. 판독 레벨들은 미리 결정된 순서로 변경될 수 있거나 변경되지 않을 수 있다. 판독 레벨들이 미리 정해진 순서로 변경되면, 이전 판독 레벨만이 저장될 수 있고 셀 프로그램 영역이 결정된 각각의 이후의 판독 상에서 결정될 수 있다. 모든 판독이 (예를 들어, 한번에) 수행되면, 룩업 표는 수신된 2진 값들에 기반하여 빈들을 결정하는데 사용될 수 있다. 결정되면, 각각의 셀 프로그램 영역에 대한 빈 수가 결정될 수 있다. 빈에 할당되는 LLR은 빈의 범위에 들어가는 모든 셀에 적용될 수 있다. 각각의 메모리 셀의 경우, 빈 수는 룩업 표의 LLR 값으로 매핑된다.
전술한 것에 따르면, 주판독 레벨(예를 들어, RL1, RL2 또는 RL3)의 경우, 빈의 수는 판독의 수 더하기 1과 동일할 것이다. 따라서, LLR 값들에 대해 생성되는 표는 8개의 빈에 상응하는 8개의 열을 가질 수 있다. 이러한 예에서, MSB 페이지는 표 2에 나타내어진 바와 같이 2개의 행을 가질 수 있다:
[표 2]
Figure pat00007
표 2에 대하여 주판독 레벨의 위치는 빈 3과 빈 4 사이이다. LSB 페이지에 대해 생성되는 표는 표 3에 나타내어진 바와 같이 하나의 행만을 필요로 할 수 있다:
[표 3]
Figure pat00008
상술한 바와 같이, 오프셋들 (또는 바이어스값들)은 낮은 비트 에러율을 갖는 최적의 판독 레벨을 얻기 위해 주판독 레벨들(예를 들어, RL1, RL2, RL3)과 관련되어 구현될 수 있다. 오프셋값들은 예를 들어, 다이 또는 블록에 대해, 또는 개별 워드라인 기반 상에서 포괄적으로 설정될 수 있다. 각각의 워드라인은 각각의 워드라인이 판독 작동들 동안 더 많거나 더 적은 에러를 나타내게 하는 상이하고/하거나 고유의 특성들을 가질 수 있다. 따라서, 최상의 에러율 ? 최소 에러율 ? 을 얻도록, 최적의 판독 레벨이 결정되어야 한다. 일부 양태에서, 워드라인에 대한 최적의 판독 레벨들은 실험실 데이터에 의해 결정될 수 있다. 본원에 설명하는 다양한 예에서, 워드라인은 상이한 오프셋들에서 판독될 수 있고 각각의 판독에 대한 에러 카운트는 이후의 비교를 위해 표에 배치될 수 있다. 이러한 실험실 데이터가 메모리의 수명 주기 중 일부에 유용할 수 있지만, 메모리 셀들의 특성들은 시간이 지남에 따라 변화되고 이러한 실험실 데이터는 메모리 셀들의 수명 주기의 기간 후에 최상의 에러율들을 얻는데 유용하지 않을 수 있다.
상이한 표들(400)은 디바이스가 디바이스의 예상된 수명 전체에 걸쳐 거의 최적의 비트 에러율들을 얻을 수 있도록 예를 들어, 각각의 판독 레벨(예를 들어, RL1, RL2 또는 RL3)에 대해 그리고 메모리의 예상된 수명의 다수의 상이한 기간에 대해 메모리에 저장될 수 있다. 그러나, 실험실 데이터는 디바이스의 수명에 걸쳐 개별 워드라인들 또는 메모리 셀들에 의해 겪게 될 수 있는 모든 다이, 모든 블록 또는 심지어 모든 형태의 저하에 적용되지 않을 수 있다. 따라서, 본 기술은 메모리 디바이스의 작동 동안 새로운 최적의 판독 레벨들 및/또는 오프셋들을 추정함으로써 판독 레벨들을 동적으로(예를 들어, 런타임에서) 교정하는 메커니즘을 제공한다.
도 10a 내지 도 10c는 본 기술의 다양한 양태에 따른 예시적 판독 레벨들 및/또는 판독 레벨 오프셋들을 교정하기 위한 예시적 선형 보간법 그래프들을 도시한다. 그래프들은 본 기술의 알고리즘이 판독 작동들에 대한 새로운 교정된 오프셋을 어떻게 결정하는지를 나타낸다. 위의 표 2 및 표 3을 참조하면, 각각의 그래프는 각각의 빈과 연관되는 미리 결정된 오프셋값들에 대하여 계산된 LLR 값을 도표화한다. 따라서, x-축은 교정되지 않은 제로 오프셋(1002)으로부터 부의 그리고 정의 오프셋값들의 범위를 나타낸다. 도시된 예에서, (“0”으로 표시되는) 교정되지 않은 오프셋(1002)은 메모리 셀이 빈들을 생성하는데 사용되는 “추가” 판독 레벨들에 의해 재판독되기 전에, 메모리 셀의 프로그래밍된 레벨을 초기에 결정하는데 사용되는 각각의 “중심” 판독 레벨(예를 들어, RL1, RL2 또는 RL3)에 상응한다.
각각의 빈은 고정량에 따라 x 축 상에서 6 틱에 걸친다. 도시된 예에서, 오프셋들은 균등하게 6 틱 떨어져 이격된다. x-축 상의 오프셋들 0 내지 +6은 빈 4에 상응하고, 오프셋들 +7 내지 +12는 빈 5에 상응하고, 오프셋들 +13 내지 +18은 빈 6에 상응하고, 오프셋들 +19 내지 +24는 빈 7에 상응한다. 마찬가지로, x-축 상의 오프셋들 0 내지 -6은 빈 3에 상응하고, 오프셋들 -7 내지 -12는 빈 2에 상응하고, 오프셋들 -13 내지 -18은 빈 1에 상응하고, 오프셋들 -19 내지 -24는 빈 0에 상응한다. 빈들에 배치되는 상응하는 LLR 값들은 각각 오프셋값들 -21, -15, -9, -3, +3, +9, +15 및 +21에서 도표화된다. 이러한 오프셋값들은 단지 예들로서 제공되고 다른 오프셋값들이 특정 메모리 구현에 따라 사용될 수 있다.
워드라인 또는 블록의 메모리 셀들이 판독되고, LLR들이 결정되면, 본 기술은 위의 표 2 및 표 3에 나타내어진 바와 같이 표의 RL1, RL2 및 RL3 각각에 대한 빈들에 LLR들을 할당한다. 상응하는 빈들(예를 들어, 0 내지 7)에 걸친 LLR 값들의 선형 보간법은 그 다음 나타내어지는 LLR 값들의 제로 교차점(1004)을 결정하는데 사용된다. 이 점에서, 표의 행에서의 LLR 값들은 제로 교차점이 어디에 있는지를 결정하기 위해 스캐닝된다. 도 10a 및 위의 표 1에 대하여, RL1에 대한 제로 교차점(1004)은 빈 5와 빈 6 사이에 있어, 각각 LLR 값들 -38 및 5를 갖는다. 제로 교차점(1004)에 상응하는 x-축을 따른 오프셋값(1006)은 상응하는 판독 레벨(예를 들어, RL1, RL2 또는 RL3)에 대한 교정된 오프셋값으로서 선택된다. 도 10a에서, 교정된 오프셋값은 대략 +14 틱이도록 결정된다(예를 들어, +175 ㎷, 여기서 각각의 틱은 25 ㎷임). 도 10b에서, 교정된 오프셋값은 대략 +12 틱이도록 결정된다. 도 10c에서, 교정된 오프셋값은 대략 +10 틱이도록 결정된다.
교정된 오프셋값은 위에 나타내어진 바와 같이 각각의 판독 레벨(예를 들어, RL1, RL2 또는 RL3)에 대해 결정될 수 있다. 일부 구현에서, 교정된 오프셋값들은 개별 워드라인들에 대한, 또는 포괄적으로 블록 또는 다이(들)에 대한 기존 오프셋값들을 대체하거나 조정하는데 사용될 수 있다. 일부 구현에서, 교정된 오프셋 전압은 예를 들어, 프로세스들(700 및/또는 800)에 의해 결정되는 오프셋 워드라인 그룹과 이전에 연관되는 판독 레벨 오프셋을 대체한다. 일부 양태에서, 이전에 연관된 판독 레벨 오프셋은 교정된 전압에 의해 조정될 것이다.
그러한 경우들에서, 교정된 오프셋 전압들은 블록, 다이 또는 그룹의 모든 메모리 셀에 대한 LLR 값들에 기반하여 결정될 필요가 없고, 오히려 하나 이상의 선택된 워드라인, 워드라인의 부분들, 하나 이상의 코드워드 등의 범위에 기반한 빈들에 할당되는 LLR 값들에 기반하여 결정될 수 있다. 일부 구현에서, 교정된 오프셋값들은 워드라인 그룹에 대해 결정되는 오프셋들에 더하여 저장되고, 이용 가능하다면, 판독 작동의 시간에 워드라인 그룹에 할당되는 오프셋 및 임의의 포괄적 오프셋과 합계될 수 있다.
판독 레벨들은 플래시 디바이스의 예상된 수명의 특정 시점들에서 위의 절차를 사용하여 교정될 수 있다. 예를 들어, 교정 절차는 블록이 미리 결정된 수의 프로그램/소거 사이클을 거치게 될 때, 실행될 수 있다. 교정 절차는 예를 들어, 미리 결정된 임계 수의 에러를 만족시키는 판독 작동과 관련되어 생성되는 에러 카운트에 응하여 “히어로익(heroic) 모드”로 실행될 수 있다. 미리 결정된 임계치는 하나 이상의 코드워드, 워드라인, 블록 또는 이들의 조합에 대하여, 기간을 통한 단일 판독 작동 또는 다수의 판독 작동에 대한 것일 수 있다. 일부 구현에서, 에러들의 미리 결정된 임계치는 판독 작동의 대상인 하나 이상의 메모리 셀을 판독하거나 디코딩하는 것의 실패를 포함할 수 있다. 예를 들어, 생성되는 에러의 수는 플래시 메모리 디바이스와 연관되는 ECC 체계가 처리할 수 있는 것보다 더 많을 수 있다.
(임계치를 만족시키는) 너무 높은 에러 카운트와 연관되는 워드라인을 식별하는 것에 응하여, 본 기술을 구현하는 플래시 제어기 또는 플래시 제어기의 구성 요소는 식별된 워드라인에 인접한 하나 이상의 워드라인에서의 메모리 셀들을 판독하여 각각의 빈들에 대한 LLR 값들을 생성하고, 전술한 LLR 선형 보간법 프로세스를 사용하여 워드라인들을 판독하기 위해 새로운 교정된 오프셋값을 결정할 수 있다. 인접한 워드라인들이 판독되고 성공적으로 디코딩될 수 있으면, 그 때 새로운 교정된 오프셋값이 식별된 워드라인에서의 메모리 셀들의 판독을 복원하려는 시도에 사용될 수 있다. 식별된 워드라인은 그 때 교정된 오프셋값으로 설정된(예를 들어, 교정된 오프셋값에 의해 조정된) 판독 레벨을 사용하여 재판독될 수 있다.
마찬가지로, 판독 작동을 거치는 (예를 들어, 워드라인들, 또는 워드라인의 일부에 걸치는) 코드워드는 에러 임계치를 만족시키는 에러율을 갖는 것으로서 식별될 수 있다. 예를 들어, 코드워드를 디코딩하려는 모든 시도가 실패했을 수 있다. 코드워드를 식별하는 것에 응하여, 본 기술을 구현하는 플래시 제어기 또는 플래시 제어기의 구성 요소는 식별된 코드워드에 인접한 하나 이상의 다른 코드워드에서의 메모리 셀들을 판독하여 LLR 값들을 생성하고, 전술한 LLR 선형 보간법 프로세스를 사용하여 새로운 교정된 오프셋값을 결정할 수 있다. 인접한 코드워드들이 판독되고 성공적으로 디코딩될 수 있으면, 그 때 새로운 교정된 오프셋값이 실패한 코드워드를 복원하려는 시도에 사용될 수 있다. 식별된 코드워드는 그 때 교정된 오프셋값으로 설정된(예를 들어, 교정된 오프셋값에 의해 조정된) 판독 레벨을 사용하여 재판독될 수 있다.
[표 4]
Figure pat00009
위의 표 4는 표 2 및 표 3의 LLR 값들에 상응하는 각각의 판독 레벨 오프셋의 교정 후에 각각의 빈에 대한 업데이트된 LLR 값들을 나타낸다. 표 4로 볼 수 있는 바와 같이, 제로 교차점(1004)은 이제 모든 3개의 판독 레벨에 대해 빈 3과 빈 4 사이에 있다. 도 10d 내지 도 10f는 본 기술의 다양한 양태에 따른 예시적 판독 레벨들 및/또는 판독 레벨 오프셋들을 재교정하기 위한 예시적 선형 보간법 그래프들을 도시한다. 판독 레벨들이 도 10a 내지 도 10c에 대하여 상술한 프로세스에 따라 조정된 후에, 조정된 판독 레벨(들)은 그 다음 동일한 프로세스를 사용하여 교정을 검증하거나 미세 조절하도록 재교정될 수 있다. 결과로서 생기는 LLR 값들은 표 4 및 도 10d 내지 도 10f의 그래프들로 나타내어진 바와 같이 제로 오프셋으로 결국 집중되는 것으로 예상된다.
도 11a 및 도 11b는 본 기술의 다양한 양태에 따른 예시적 판독 레벨 최적화 모드들을 도시한다. 플래시 메모리 아키텍처는 데이터세트가 메모리의 다수의 채널(1102)을 포함하며, 각각의 채널(1102)은 예를 들어, 메모리의 하나 이상의 블록(1104)을 포함하도록 구성될 수 있다. 각각의 채널(1102)에 의해 어드레스싱 가능한 각각의 블록(1104)은 페이지들(1106)에 의해 추가로 어드레스싱 가능하다. 도시된 예들에서, 각각의 채널은 각각의 블록이 256개의 페이지(예를 들어, 페이지들 0 내지 255)를 갖는 메모리의 단일 블록을 어드레싱한다. 상술한 바와 같이, 페이지(1106)는 워드라인에 의해 물리적으로 나타내어질 수 있고 따라서 페이지 및 워드라인이란 용어는 상호 교환 가능하게 사용될 수 있다.
일부 구현에서, 도 11a로 도시된 바와 같이, 오프셋 전압은 메모리 채널들에 의해 어드레스싱 가능한 모든 블록 및 모든 페이지와 포괄적으로 연관될 수 있다(1108). 이러한 구현에서, 동일한 오프셋값은 복수의 메모리 채널과 연관되는 임의의 페이지 또는 블록의 메모리 셀들을 판독할 때, 사용되는 “포괄적” 오프셋이다. 따라서, 포괄적 오프셋은 본원에 설명하는 기법들 중 임의의 것을 사용하여 교정될 수 있다. 일부 구현에서, 도 11b로 도시된 바와 같이, 다수의 오프셋(1110)이 사용될 수 있으며, 예를 들어, 각각의 오프셋값을 페이지 어드레스와 연관시킴으로써 각각의 오프셋값은 각각의 페이지(워드라인)와 연관된다. 페이지 어드레스와 연관되는 동일한 오프셋값이 메모리 채널들 모두에 걸친 각각의 페이지에 대해 사용될 수 있다. 이러한 “페이지 오프셋들”은 포괄적 오프셋이 모든 페이지에 적용될 것이고 (필요에 따라 조정될 것이고), 포괄적 오프셋들이 각각의 페이지가 판독됨에 따라, 상응하는 페이지 오프셋들에 의해 변경될 것인 점에서 포괄적 오프셋들과 관련될 수 있다.
도 12는 본 기술의 다양한 양태에 따른 저장 디바이스에서 복수의 메모리 셀을 판독하는 판독 레벨들을 교정하기 위한 예시적 프로세스(1200)의 흐름도를 도시한다. 설명하기 위한 목적으로, 예시적 프로세스(1200)의 다양한 블록을 본원에 설명하는 구성 요소들 및/또는 프로세스들을 참조하여 본원에 설명한다. 프로세스(1200)의 블록들 중 하나 이상은 예를 들어, 도 15의 플래시 메모리 제어기(1501)를 포함하는 하나 이상의 프로세서 또는 제어기(1501)의 하나 이상의 구성 요소 또는 프로세서에 의해 예를 들어, 구현될 수 있다. 일부 구현에서, 블록들 중 하나 이상은 다른 블록들과는 별도로, 그리고 하나 이상의 상이한 프로세서 또는 제어기에 의해 구현될 수 있다. 추가로 설명하기 위한 목적으로, 예시적 프로세스(1200)의 블록들을 직렬로 또는 선형으로 일어나는 것으로 설명한다. 그러나, 예시적 프로세스(1200)의 다수의 블록은 병렬로 일어날 수 있다. 게다가, 예시적 프로세스(1200)의 블록들은 도시된 순서로 수행될 필요가 없고/없거나 예시적 프로세스(1200)의 블록들 중 하나 이상은 수행될 필요가 없다.
다양한 구현에 따르면, 프로세스(1200)의 블록들은 도 9 및 도 10a 내지 도 10f에 대하여 설명한 프로세스에 상응하거나, 이것을 보완한다. 프로세스(1200)의 블록들, 또는 프로세스(800)의 블록들의 서브세트는 메모리 디바이스에 사용되는 각각의 가능한 판독 레벨에 대해 실행될 수 있다. 예를 들어, 프로세스(1200)의 블록들은 RL1, RL2 및 RL3에 대해 워드라인들 또는 워드라인 그룹들에 대한 오프셋들을 생성하고/하거나, 조정하고/하거나, 교정하도록 실행될 수 있다. 다양한 양태에서, 상이한 크기들이고/이거나 상이한 오프셋값 페어링들을 갖는 오프셋 워드라인 그룹들이 각각의 상이한 판독 레벨에 대해 생성될 수 있다. 게다가, 프로세스(1200)의 블록들은 상이한 블록들 및/또는 다이에 대해 상이한 그룹들에 대한 오프셋들을 생성하고/하거나, 조정하고/하거나, 교정하도록 실행될 수 있다. 프로세스(1200)는 저장 디바이스의 구성 동안, 작동 이전에 또는 작동 동안 구현될 수 있다.
도시된 예에서, 본 기술에 따른 시스템은 미리 결정된 프로그래밍 레벨로 프로그래밍되는 다수의 메모리 셀을 판독하는데 충분한 판독 레벨 전압을 제공한다(1202). 상술한 바와 같이, 메모리 셀들은 4개의 프로그래밍 레벨 중 하나로 프로그래밍되도록 구성되는 단일 레벨 또는 다중-레벨 비휘발성 메모리 셀들일 수 있다. 예를 들어, 제1 및 제4 프로그래밍 레벨들은 (예를 들어, 최상위 비트의 2진수 0 또는 1을 나타내는) 제1 비트값들과 연관될 수 있고 제2 및 제3 프로그래밍 레벨들은 (예를 들어, 최하위 비트의 2진수 0 또는 1을 나타내는) 제2 비트값들과 연관될 수 있다. 상술한 바와 같이, 전압이 셀의 프로그램 레벨에 상응하는 특정 판독 레벨(예를 들어, RL1, RL2, RL3)로 메모리 셀에 인가될 때, 프로그램 레벨을 나타내는 셀이 전도될 것이다.
메모리 디바이스의 수명 주기의 미리 결정된 기간 후에, 메모리 셀들 중 하나 이상의 복수의 판독에 상응하는 신뢰성 값들이 생성된다(1204). 이러한 예에서, 판독들 각각은 판독 레벨 전압의 변형을 사용하고, 각각의 생성된 신뢰성 값은 메모리 셀들의 출력 상태가 미리 결정된 프로그래밍된 상태와 동일할 가능성을 나타내며, 신뢰성 값들의 범위는 부의 그리고 정의 값들에 걸친다. 상술한 바와 같이 복수의 신뢰성 값의 경우, 정의 신뢰성 값은 2진수 0인 상응하는 출력 상태를 나타낼 수 있고, 부의 신뢰성 값은 2진수 1인 상응하는 출력 상태를 나타낼 수 있다.
신뢰성 값들이 생성된 후에, 판독 레벨 전압으로부터 파생되는 오프셋 전압이 식별된다(1206). 도 10a 내지 도 10c의 도시된 예들에서, 오프셋은 (예를 들어, 표 2 및/또는 표 3의) 신뢰성 값들의 범위에서의 제로 교차점(1004)에 상응한다.
오프셋 전압이 (예를 들어, 판독 레벨에 대해) 식별된 후에, 판독 레벨 전압은 오프셋 전압에 기반하여 교정된 전압으로 설정된다(1208). 본 기술의 다양한 양태에 따르면, 판독 레벨 전압을 교정된 전압으로 설정하는 것은 예를 들어, 판독 작동과 관련되어 저장된 위치로부터 식별된 오프셋 전압을 회수하고, 메모리 셀들을 판독하도록 식별된 오프셋 전압에 의해 판독 레벨 전압을 조정하는 것을 포함할 수 있다. 일부 구현에서, 판독 작동은 각각의 채널이 하나 이상의 메모리 블록을 어드레싱하도록 구성되는 복수의 메모리 채널에 걸쳐 메모리 셀들 상에서 수행된다.
도 11a를 참조하면, 식별된 오프셋 전압은 복수의 메모리 채널과 연관되는 임의의 페이지 또는 블록의 메모리 셀들을 판독할 때, 판독 레벨이 식별된 오프셋 전압에 의해 조정되도록 복수의 메모리 채널에 의해 어드레스싱 가능한 모든 블록 및 모든 페이지와 연관될 수 있다. 도 11b를 참조하면, 식별된 오프셋 전압은 복수의 메모리 채널 중 임의의 것을 통하여 페이지 어드레스와 연관되는 메모리 셀들을 판독할 때, 식별된 오프셋 전압에 의해 조정되는 판독 레벨 및 페이지 어드레스와 연관될 수 있으며, 각각의 페이지 어드레스는 상이한 오프셋 전압과 연관되는 복수의 메모리 채널을 통하여 어드레스싱 가능하다.
게다가, 교정의 프로세스는 개별 워드라인들에 대한 오프셋들을 업데이트하거나 최적의 워드라인 그룹들과 연관되는 오프셋들을 업데이트하도록 적용될 수 있다. 예를 들어, 복수의 미리 결정된 판독 레벨 오프셋이 저장될 수 있으며, 각각의 미리 결정된 판독 레벨 오프셋은 그룹에서 메모리 셀들을 판독하는데 각각의 판독 레벨 전압과 사용되는 워드라인들의 그룹과 연관된다. 워드라인들의 각각의 그룹의 경우, 그룹과 이전에 연관된 판독 레벨 오프셋은 식별된 오프셋 전압으로 업데이트될 수 있다. 따라서 판독 작동과 관련되어, 업데이트된 판독 레벨 오프셋은 판독 레벨 전압을 교정된 전압, 및 워드라인들의 각각의 그룹을 판독하는데 사용되는 새롭게 교정된 전압으로 설정하도록 업데이트된 판독 레벨 오프셋의 저장된 위치(예를 들어, 룩업 표)로부터 회수될 수 있다.
도 13은 본 기술의 다양한 양태에 따른 데이터를 복원하도록 판독 레벨들을 교정하기 위한 예시적 프로세스(1300)의 흐름도를 도시한다. 전술한 교정 프로세스(1200)는 판독되거나 디코딩되지 않을 있는 데이터를 복원하도록 추가로 적용될 수 있다. 도 13의 도시된 예시적 구현에서, 판독 작동 동안, 하나 이상의 워드라인 또는 코드워드는 에러 임계치를 만족시키는 에러율과 연관되는 것으로 식별된다(1302). 예를 들어, 워드라인 또는 코드워드를 판독하는 것은 에러 정정 코딩이 처리하기에 너무 많은 데이터 에러를 생성할 수 있다. 이 점에서, 판독 작동은 하나 이상의 식별된 워드라인에서 저장되는 데이터를 판독하는 것이 가능하지 않을 수 있다.
워드라인(들) 또는 코드워드(들)을 식별하는 것에 응하여, 도 12의 프로세스(1200), 또는 도 12의 하나 이상의 블록은 하나 이상의 워드라인으로부터 데이터를 복원하도록 작동될 수 있다. 이 점에서, 식별된 워드라인(들) 또는 코드워드(들)에 인접한 하나 이상의 워드라인 또는 코드워드에서의 메모리 셀들은 도 10a 내지 도 10c에 대하여 상술한 복수의 신뢰성 값을 생성하도록 판독된다(1304). 신뢰성 값들이 생성된 후에, (예를 들어, 신뢰성 값들의 범위에서의 제로 교차점(1004)에 상응하는) 새로운 교정된 오프셋 전압이 식별되고 판독 레벨 전압이 새로운 교정된 오프셋 전압으로 설정된/조정된다(1306). 식별된 워드라인(들) 또는 코드워드(들)은 그 다음 새롭게 교정된 판독 레벨 전압을 사용하여 재판독된다(1308).
도 14는 본 기술의 다양한 양태에 따른 에러 카운트들의 표를 재생성하고 재색인화하는 것에 기반하여 복수의 최적의 오프셋 워드라인 그룹을 재생성하기 위한 예시적 프로세스(1400)의 흐름도를 도시한다. 설명하기 위한 목적으로, 예시적 프로세스(1400)의 다양한 블록을 본원에 설명하는 구성 요소들 및/또는 프로세스들을 참조하여 본원에 설명한다. 프로세스(1400)의 블록들 중 하나 이상은 예를 들어, 도 15의 플래시 메모리 제어기(1501)를 포함하는 하나 이상의 프로세서 또는 제어기(1501)의 하나 이상의 구성 요소 또는 프로세서에 의해 예를 들어, 구현될 수 있다. 일부 구현에서, 블록들 중 하나 이상은 다른 블록들과는 별도로, 그리고 하나 이상의 상이한 프로세서 또는 제어기에 의해 구현될 수 있다. 추가로 설명하기 위한 목적으로, 예시적 프로세스(1400)의 블록들을 직렬로 또는 선형으로 일어나는 것으로 설명한다. 그러나, 예시적 프로세스(1400)의 다수의 블록은 병렬로 일어날 수 있다. 게다가, 예시적 프로세스(1400)의 블록들은 도시된 순서로 수행될 필요가 없고/없거나 예시적 프로세스(1400)의 블록들 중 하나 이상은 수행될 필요가 없다.
다양한 구현에 따르면, 프로세스(1400)의 블록들은 프로세스들(700, 800, 1300 및/또는 1200)의 하나 이상의 블록, 및/또는 도 9 및 도 10a 내지 도 10f에 대하여 설명한 프로세스들에 상응하거나, 이것들을 보완한다. 프로세스(1400)의 블록들, 또는 프로세스(1400)의 블록들의 서브세트는 메모리 디바이스에서의 메모리 셀들을 판독하는데 사용되는 각각의 가능한 판독 레벨에 대해 실행될 수 있다. 이러한 메모리 셀들은 각각의 프로그래밍 레벨이 각각의 판독 레벨 전압에서 메모리 셀들을 판독함으로써 결정되는 복수의 프로그래밍 레벨로 프로그래밍되도록 구성된다. 프로세스(1400)의 블록들은 RL1, RL2 및 RL3에 대해 워드라인들 또는 워드라인 그룹들에 대한 오프셋들을 생성하고/하거나, 조정하고/하거나, 교정하도록 실행될 수 있다. 프로세스(1400)의 블록들 중 일부는 알고리즘(602)에 의해 실행될 수 있다. 다양한 양태에서, 상이한 크기들이고/이거나 상이한 오프셋값 페어링들을 갖는 오프셋 워드라인 그룹들이 각각의 상이한 판독 레벨에 대해 생성될 수 있다. 게다가, 프로세스(1400)의 블록들은 상이한 블록들 및/또는 다이에 대해 상이한 그룹들에 대한 오프셋들을 생성하고/하거나, 조정하고/하거나, 교정하도록 실행될 수 있다. 프로세스(1400)는 저장 디바이스의 구성 동안, 작동 이전에 또는 작동 동안 구현될 수 있다.
도시된 예에서, 본 기술에 따른 시스템은 메모리 블록의 제1 샘플의 워드라인들을 판독하는 것에 기반하여 에러 카운트들의 표를 생성한다(1402). 표(400)는 본 기술에 의해 생성될 수 있는 에러 카운트들의 표의 일 예이다. 상술한 바와 같이 새로운 표를 생성하기 위해, 각각의 워드라인은 워드라인 및 각각의 판독 레벨 전압의 각각의 조합에 대한 에러 카운트를 생성하도록 상이한 오프셋 전압에 의해 변경되는 판독 레벨 전압을 사용하여 다수 번 판독될 수 있다. 각각의 판독은 각각의 오프셋 전압에 대한 에러 카운트를 생성할 수 있다. 표는 표의 행들이 워드라인들에 상응하고 열들이 오프셋값들에 상응하도록 생성된다. 표는 상응하는 워드라인 식별자(예를 들어, 워드라인 어드레스 또는 부분적 워드라인 어드레스) 및 상이한 판독 레벨 전압들 중 각각의 하나(예를 들어, 각각의 오프셋 전압에 의해 변경되는 판독 레벨 또는 오프셋 전압)에 의해 각각의 생성된 에러 카운트를 색인화한다. 생성되는 에러 카운트들은 그 다음 워드라인 및 각각의 판독 레벨 전압들에 의해 색인화될 수 있다.
부가적으로 또는 대안으로, 메모리 블록의 제1 샘플의 워드라인들이 판독될 수 있으며, 각각의 워드라인은 워드라인 및 각각의 판독 레벨 전압의 각각의 조합에 대한 에러 카운트를 생성하도록 상이한 판독 레벨 전압들을 사용하여 다수 번 판독된다. 각각의 워드라인은 워드라인 식별자(예를 들어, 워드라인의 어드레스)와 연관된다. 에러 카운트들의 표는 그 다음 생성된 에러 카운트들에 기반하여 생성될 수 있으며, 에러 카운트들의 표는 상응하는 워드라인 식별자 및 에러 카운트를 생성하는데 사용되는 상이한 판독 레벨 전압들 중 각각의 하나에 의해 각각의 생성된 에러 카운트를 색인화한다.
본 기술을 구현하는 저장 디바이스를 구성하는 것과 관련되어, 복수의 최적의 오프셋 워드라인 그룹은 에러 카운트들의 표 및 복수의 워드라인의 초기 분할에 기반하여 (예를 들어, 알고리즘(602)에 의해) 형성된다(1404). 워드라인 그룹들은 에러 카운트들의 표를 색인화하는데 사용되는 워드라인 식별자들에 기반하여 형성될 수 있으며, 각각의 워드라인 그룹은 상이한 판독 레벨 전압들 중 각각의 하나를 판독 작동들이 수행되어야 할 복수의 워드라인과 연관시킨다. 프로세스들(700 및 800) 및 도 7 및 도 8에 대하여 상술한 바와 같이, 각각의 최적의 오프셋 워드라인 그룹은 상응하는 오프셋 전압과 페어링되는 워드라인들 중 연속적으로 그룹화된 부분을 포함할 수 있으며, 페어링들은 오프셋 워드라인 그룹들 각각에서 워드라인들을 판독하기 위한 전체 최저 가능한 에러 카운트에 대해 선택된다. 이 점에서, 에러 카운트들의 표는 워드라인들 각각에 대해 가능한 최대 및/또는 최소 에러 카운트들을 결정하도록 각각의 워드라인 및 판독 레벨 오프셋 전압에 의해 색인화될 수 있고, 그 다음 워드라인들은 그룹화를 위해 (개별 워드라인들과 비교하여) 최저 가능한 에러 카운트 저하를 제공하는 오프셋값과 각각 페어링되는 연속적인 그룹들로 구조화될 수 있다.
(상응하는 오프셋 전압들을 포함하는) 최적의 워드라인 그룹들이 생성된 후에, 저장 디바이스는 에러 카운트들의 표에서의 에러 카운트들에 기반하여 워드라인 그룹들에 대해 선택되는 판독 레벨 오프셋 전압들을 사용하여 워드라인 그룹들의 각각의 워드라인 상에서 판독 작동들을 수행하도록 구성된다(1406). 따라서, 오프셋 워드라인 그룹의 특정 워드라인의 메모리 셀들을 판독하는 것과 관련되어, 각각의 오프셋 워드라인 그룹과 연관되는 오프셋 전압은 식별될 수 있고 메모리 셀들은 식별된 오프셋 전압을 사용하여 판독될 수 있다. 다양한 구현에서, 식별된 오프셋 전압은 각각의 판독 레벨 전압이 변경되지 않았을 경우보다 더 적은 에러로 메모리 셀들을 판독하기 위해 각각의 판독 레벨 전압을 변경한다.
메모리 블록의 수명 주기의 미리 결정된 시점(예를 들어, 메모리 블록에서의 메모리 셀들이 미리 결정된 임계치를 넘는 비트 에러율을 생성하거나, 미리 결정된 수의 프로그램/소거 사이클을 겪었던 시점) 후에, 최적의 워드라인 그룹들의 연관된 오프셋값들을 포함하는 최적의 워드라인 그룹들은 재교정될 수 있다. 이 점에서, 에러 카운트들의 표는 재생성된다(1408). 에러 카운트들의 표는 에러 카운트들의 표를 색인화하는데 사용되는 워드라인 식별자들에 상응하는 제2 샘플의 워드라인들을 판독하는 것에 기반하여 재생성될 수 있다. 예로서, 에러 카운트들의 표는 예를 들어, 메모리 디바이스의 현재 조건들(예를 들어, 전압 레벨들) 하에서 메모리 블록의 복수의 워드라인을 재판독하는 것에 기반하여 재생성될 수 있다.
일부 구현에서, 에러 카운트들의 표가 재생성되기 전에, 표를 생성하는데 사용되는 판독 레벨들 및/또는 오프셋 전압들이 교정될 수 있다. 도 13 및 프로세스(1300)를 간단히 참조하면, 각각의 판독 레벨 전압에 대한 다수의 판독에 상응하는 신뢰성 값들이 생성될 수 있고, 판독 레벨 전압에 대한 교정된 전압(예를 들어, 기존 판독 레벨들을 교정하는 오프셋 전압)이 식별될 수 있고, 저장 디바이스가 판독 레벨 전압과 관련되는 교정된 전압에 기반하여 메모리 블록의 복수의 워드라인을 재판독하도록 구성될 수 있다. 따라서, 판독들 각각은 판독 레벨 전압의 변형을 사용할 수 있고, 각각의 생성된 신뢰성 값은 메모리 셀들의 출력 상태가 미리 결정된 프로그래밍된 상태와 동일할 가능성(예를 들어, 로그 우도율)을 나타낼 수 있다. 신뢰성 값들의 범위는 부의 그리고 정의 값들에 걸칠 수 있다. 워드라인들을 재판독하는데 사용되는 식별된 업데이트된 오프셋 전압은 신뢰성 값들의 범위에서의 제로 교차점에 상응할 수 있다.
에러 카운트들의 초기 표를 생성하는데 사용되는 상이한 판독 레벨 전압들은 업데이트된 판독 레벨 전압들을 생성하도록 업데이트될 수 있다. 예를 들어, 상이한 판독 레벨 전압들 각각은 교정된 전압에 의해 조정될 수 있다. 이 점에서, 제2 샘플의 워드라인들 각각은 업데이트된 에러 카운트를 생성하도록 업데이트된 판독 레벨 전압들을 사용하여 다수 번 판독된다. 에러 카운트들의 표는 그 다음 생성된 업데이트된 에러 카운트들로부터 재생성될 수 있다. 따라서, 에러 카운트들의 표는 상응하는 워드라인 식별자 및 업데이트된 에러 카운트들을 생성하는데 사용되는 업데이트된 판독 레벨 전압들 중 각각의 하나에 의해 각각의 생성된 업데이트된 에러 카운트를 색인화하도록 업데이트될 수 있다.
에러 카운트들의 표가 재생성되면, 최적의 오프셋 워드라인 그룹들은 워드라인들 및 판독 레벨 오프셋 전압들에 의해 에러 카운트들의 재생성된 표를 색인화하는 것에 기반하여 재생성된다(1410). 최적의 오프셋 워드라인 그룹들은 프로세스(700) 및/또는 프로세스(800)의 하나 이상의 블록에 의해 설명하는 방식으로 재생성될 수 있다.
예시적 프로세스들(1200, 1300 및 1400)의 상술한 특징들 중 많은 것 그리고 관련된 특징들 및 응용들은 (또한 컴퓨터 판독 가능 매체로 지칭되는) 컴퓨터 판독 가능 저장 매체 상에 기록되는 명령어들의 세트로서 지정되는 소프트웨어 프로세스들로서 구현될 수 있다. 이러한 명령어들이 하나 이상의 처리 장치(예를 들어, 하나 이상의 프로세서, 프로세서들의 코어, 또는 다른 처리 장치)에 의해 실행될 때, 이러한 명령어들은 처리 장치(들)이 명령어들로 지시되는 동작들을 수행하게 한다. 컴퓨터 판독 가능 매체의 예들은 CD-ROM, 플래시 드라이브, RAM 칩, 하드 드라이브, EPROM 등을 포함하지만, 이에 제한되지 않는다. 컴퓨터 판독 가능 매체는 무선으로 또는 유선 연결을 통해 통하는 반송파들 및 전자 신호들을 포함하지 않는다.
도 15는 본 기술의 다양한 구현에 따른 예시적 데이터 저장 시스템(1500)(예를 들어, 고체 상태 드라이브)의 구성 요소들을 도시하는 블록도이다. 데이터 저장 시스템(1500)은 데이터 저장 제어기(1501), 저장 매체(1502) 및 플래시 디바이스(1503)를 포함할 수 있다. 제어기(1501)는 데이터 저장 시스템(1500)을 관리하는데 사용되는 데이터 및 정보의 임시 저장을 위한 저장 매체(1502)를 사용할 수 있다. 제어기(1501)는 하나 이상의 프로세서, 읽기 전용 메모리, 플래시 구성 요소 인터페이스(예를 들어, 플래시 디바이스(1503)로의 직렬 연결을 따라 명령어 및 데이터 전송을 관리는 멀티플렉서), I/O 인터페이스, 에러 정정 회로망 등과 같은 수개의 내부 구성 요소(미도시)를 포함할 수 있다. 일부 양태에서, 제어기(1501)의 하나 이상의 요소는 단일 칩으로 통합될 수 있다. 다른 양태들에서, 요소들은 2개 이상의 별개의 구성 요소 상에서 구현될 수 있다.
제어기(1501), 또는 제어기(1501) 내의 하나 이상의 구성 요소는 본원에 설명하는 작동들 및 기능성을 수행하기 위해 코드 또는 명령어들을 실행하도록 구성될 수 있다. 예를 들어, 제어기(1501)는 요청 흐름 및 어드레스 매핑들을 관리하는 작동들을 수행하고, 계산들을 수행하고 커맨드들 생성하도록 구성될 수 있다. 제어기(1501)의 프로세서는 데이터 저장 제어기(1501)의 구성 요소들의 작동을 모니터링하고 제어할 수 있다. 프로세서는 범용 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서(DSP), 응용 주문형 집적 회로(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA), 프로그램 가능 로직 디바이스(PLD), 제어기, 상태 기계, 게이티드 로직, 별개의 하드웨어 구성 요소들 또는 전술한 것의 조합일 수 있다. 명령어들의 하나 이상의 시퀀스는 제어기(1501) 및/또는 제어기(1501)의 프로세서 내의 ROM 상에서 펌웨어로서 저장될 수 있다. 명령어들의 하나 이상의 시퀀스는 저장 매체(1502), 플래시 디바이스(1503)로부터 저장되고 판독되거나, (예를 들어, 호스트 인터페이스를 통하여) 호스트 디바이스(1510)로부터 수신되는 소프트웨어일 수 있다. ROM, 저장 매체(1502) 및 플래시 디바이스(1503)는 제어기(1501) 및/또는 제어기(1501)의 프로세서에 의해 실행 가능한 명령어들/코드가 저장될 수 있는 기계 또는 컴퓨터 판독 가능 매체의 예들을 나타낸다. 기계 또는 컴퓨터 판독 가능 매체는 저장 매체(1502) 또는 제어기(1501) 내의 버퍼들에 사용되는 동적 메모리와 같은 휘발성 매체, 및 전자 매체, 광 매체 및 자기 매체와 같은 비휘발성 매체 둘 다를 포함하는 임의의 유형이고/이거나 비일시적인 매체 또는 제어기(1501) 및/또는 제어기(1501)의 프로세서에 명령어들을 제공하는데 사용되는 매체를 일반적으로 지칭할 수 있다.
따라서, 데이터 저장 시스템(1500)은 호스트 인터페이스(1505)를 더 포함할 수 있다. 호스트 인터페이스(1505)는 호스트 디바이스(1510)에 결합되고, 호스트 디바이스(1510)로부터 데이터를 수신하고 호스트 디바이스(1510)로 데이터를 송신하도록 구성된다. 호스트 인터페이스(1505)는 호스트 디바이스(1510)를 제어기(1501)에 작동 가능하게 결합시키는 전기적 및 물리적 연결들 둘 다를 포함할 수 있다. 호스트 인터페이스(1505)는 호스트 디바이스(1510)와 제어기(1501) 사이에서 데이터, 어드레스들 및 제어 신호들을 전하도록 구성된다. 이러한 방식으로, 제어기(1501)는 호스트 디바이스(1510)로부터의 기록 커맨드에 응하여, 호스트 디바이스(1510)로부터 수신되는 데이터를 플래시 디바이스(1503)에 저장하고, 호스트 디바이스(1510)로부터의 판독 커맨드에 응하여, 플래시 메모리(1503)에 저장되는 데이터를 판독하고 호스트 인터페이스(1505)를 통하여 호스트 디바이스(1510)로 판독 데이터를 전달하도록 구성된다.
호스트 디바이스(1510)는 데이터 저장 시스템(1500)에 결합되고 데이터를 데이터 저장 시스템(1500)에 저장하도록 구성되는 임의의 디바이스를 나타낸다. 호스트 디바이스(1510)는 개인용 컴퓨터, 서버, 워크스테이션, 랩탑 컴퓨터, PDA, 스마트폰 등과 같은 컴퓨팅 시스템일 수 있다. 대안적으로, 호스트 디바이스(1510)는 디지털 카메라, 디지털 오디오 플레이어, 디지털 비디오 레코더 등과 같은 전자 디바이스일 수 있다.
일부 양태에서, 저장 매체(1502)는 데이터 저장 시스템(1500)을 관리하는데 사용되는 데이터 및 정보를 임시로 저장하는데 사용되는 휘발성 메모리를 나타낸다. 본 발명의 일 양태에 따르면, 저장 매체(1502)는 2중 데이터 속도(DDR) RAM과 같은 랜덤 액세스 메모리(RAM)이다. 다른 타입들의 RAM이 저장 매체(1502)를 구현하는데 사용될 수도 있다. 저장 매체(1502)는 단일 RAM 모듈 또는 다수의 RAM 모듈을 사용하여 구현될 수 있다. 저장 매체(1502)가 제어기(1501)와는 별개인 것으로 도시되지만, 당업자는 저장 매체(1502)가 본 발명의 범위로부터 벗어나지 않는 범위 내에서 제어기(1501)로 포함될 수 있다는 점을 인지할 것이다. 대안적으로, 저장 매체(1502)는 자기 디스크, 플래시 메모리, 주변 SSD 등과 같은 비휘발성 메모리일 수 있다.
도 2에 추가로 도시된 바와 같이, 데이터 저장 시스템(1500)은 버스를 포함할 수도 있다. 버스는 직렬 고급 기술 결합(SATA), 고급 기술 결합(ATA), 소형 컴퓨터 시스템 인터페이스(SCSI), 확장 PCI(PCI-X), 파이버 채널, 직렬 부착 SCSI(SAS), 보안 디지털(SD), 내장형 다중 매체 카드(EMMC), 범용 플래시 메모리(UFS) 및 주변 구성 요소 상호 접속 익스프레스(PCIe)를 포함하지만, 이에 제한되지 않는 적절한 인터페이스 표준을 사용할 수 있다.
호스트 디바이스(1510) 및 데이터 저장 시스템(1500)은 유선 또는 무선 연결을 통하여 서로와 통신할 수 있고 서로에 국부적이거나 서로로부터 원거리일 수 있다. 일부 양태에 따르면, 데이터 저장 시스템(1500)은 전기적 및 물리적 연결을 확립하기 위해 호스트 디바이스(1510) 상에서 상응하는 소켓 (또는 핀들)과 맞물리는 핀들 (또는 소켓)을 포함할 수 있다. 하나 이상의 다른 양태에 따르면, 데이터 저장 시스템(1500)은 호스트 디바이스(1510) 및 데이터 저장 시스템(1500)을 서로와 무선 통신하게 배치하는 무선 송수신기를 포함한다.
플래시 디바이스(1503)는 데이터를 저장하는 비휘발성 메모리 디바이스를 나타낸다. 본 발명의 일 양태에 따르면, 플래시 디바이스(1503)는 예를 들어, NAND 플래시 메모리를 포함한다. 플래시 디바이스(1503)는 단일 플래시 메모리 디바이스 또는 칩을 포함할 수 있고, 다수의 채널로 구성되는 다수의 플래시 메모리 디바이스 또는 칩을 포함할 수 있다. 플래시 디바이스(1503)는 임의의 특정 용량 또는 구성에 제한되지 않는다. 예를 들어, 물리적 블록의 수, 물리적 블록 당 물리적 페이지의 수, 물리적 페이지 당 섹터의 수 그리고 섹터들의 크기는 본 발명의 범위 내에서 달라질 수 있다.
플래시 메모리는 표준 인터페이스 사양을 가질 수 있다. 이러한 표준은 다수의 제조자로부터의 칩들이 (적어도 광범위하게) 상호 교환 가능하게 사용될 수 있는 것을 보장한다. 인터페이스는 추가로 플래시 메모리의 내부 작업을 은닉하고 데이터에 대해 내적으로 검출된 비트값들만을 되돌릴 수 있다.
“소프트웨어”란 용어는 적절한 경우, 프로세서에 의한 처리를 위해 메모리로 입력될 수 있는 읽기 전용 메모리에 상주하는 펌웨어 또는 자기 스토리지에 저장되는 애플리케이션들을 포함하는 것으로 의미된다. 또한 일부 구현에서, 본 발명의 다수의 소프트웨어 양태는 본 발명의 별개의 소프트웨어 양태들로 남으면서 더 큰 프로그램의 하위 부분들로서 구현될 수 있다. 일부 구현에서, 다수의 소프트웨어 양태는 별도의 프로그램들로서 구현될 수도 있다. 결국, 여기서 설명하는 소프트웨어 양태를 함께 구현하는 별도의 프로그램들의 임의의 조합은 본 발명의 범위 내에 있다. 일부 구현에서, 소프트웨어 프로그램들은 하나 이상의 전자 시스템 상에서 작동되도록 설치될 때, 소프트웨어 프로그램들의 작동들을 실행하고 수행하는 하나 이상의 특정 기계 구현을 정의한다.
(또한 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로 알려진) 컴퓨터 프로그램은 컴파일되거나 해석된 언어들, 평서문이거나 절차 상의 언어들을 포함하는 프로그래밍 언어의 임의의 형태로 기록될 수 있거나, 독립형 프로그램 또는 모듈, 구성 요소, 서브루틴, 객체 또는 컴퓨팅 환경에서의 사용에 적절한 다른 유닛으로서를 포함하여 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템에서의 파일에 상응할 수 있지만, 상응할 필요는 없다. 프로그램은 다른 프로그램들 또는 데이터를 수용하는 파일의 일부(예를 들어, 마크업 언어 문서에 저장되는 하나 이상의 스크립트)에, 논의가 되고 있는 프로그램에 전용의 단일 파일에, 또는 다수의 조정된 파일(예를 들어, 하나 이상의 모듈, 서브프로그램, 또는 코드의 부분을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 장소에 위치되거나 다수의 장소에 걸쳐 분포되고 통신 네트워크에 의해 상호 연결되는 다수의 컴퓨터 또는 하나의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본원에 설명하는 예시적인 블록들, 모듈들, 요소들, 구성 요소들, 방법들 및 알고리즘들이 전자 하드웨어, 컴퓨터 소프트웨어 또는 둘 다의 조합들로서 구현될 수 있다는 점이 이해된다. 하드웨어 및 소프트웨어의 이러한 상호 교환 가능성을 예시하기 위해, 다양한 예시적인 블록, 모듈, 요소, 구성 요소, 방법 및 알고리즘을 이들의 기능성의 면에서 일반적으로 상술하였다. 그러한 기능성이 하드웨어로서 구현되는지 아니면 소프트웨어로서 구현되는지는 전체 시스템에 부과되는 특정 응용 및 설계 제약들에 따른다. 당업자는 각각의 특정 응용에 대해 여러 방식으로 설명한 기능성을 구현할 수 있다. 다양한 구성 요소 및 블록은 본 발명의 범위로부터 벗어나지 않는 범위 내에서 모두 상이하게 구성될 수 있다(예를 들어, 상이한 순서로 구성되거나, 상이한 방식으로 분할될 수 있다).
개시된 프로세스들의 단계들의 특정 순서 또는 체계가 일부 예시적인 접근법의 예시로서 제공된다는 점이 이해된다. 설계 선호도들 및/또는 다른 고려들에 기반하여, 프로세스들의 단계들의 특정 순서 또는 체계가 재구성될 수 있다는 점이 이해된다. 예를 들어, 일부 구현에서, 단계들 중 일부는 동시에 수행될 수 있다. 따라서, 수반하는 방법은 샘플 순서로 다양한 단계의 본 요소들을 청구하고, 제공되는 특정 순서 또는 체계에 제한되는 것으로 의미되지 않는다.
앞선 설명은 당업자가 본원에 설명하는 다양한 양태를 실행하는 것을 가능하게 하도록 제공된다. 앞선 설명은 본 발명의 다양한 예를 제공하고, 본 발명은 이러한 예들에 제한되지 않는다. 이러한 양태들에 대한 다양한 변경이 당업자에게 손쉽게 명백할 것이고, 본원에 정의되는 포괄적 원리들이 되는 다른 양태들에 적용될 수 있다. 따라서, 청구항들은 본원에 나타내어지는 양태들에 제한되는 것으로 의도되지 않고, 표현 청구항들과 일치하는 전체 범위가 부여될 것이며, 단수형으로의 요소에 대한 언급은 상세하게 그렇게 진술되지 않는다면, “하나 및 단지 하나”를 의미하는 것으로 의도되지 않고, 오히려 “하나 이상”을 의미하는 것으로 의도된다 상세하게 달리 진술되지 않는다면, “일부”란 용어는 하나 이상을 지칭한다. 남성형으로의 대명사들(예를 들어, 그의)은 여성형 및 중성(예를 들어, 그녀의 및 그것의)을 포함하고 그 반대도 그렇다. 주제들 및 부제들은 존재한다면, 편의를 위해서만 사용되고 본 발명을 제한하지 않는다.
“~이도록 구성되는”, “~이도록 작동 가능한” 및 “~이도록 프로그래밍되는”이란 서술하는 단어들은 대상의 임의의 특정한 유형이거나 무형의 변경을 의미하지 않고, 오히려 상호 교환 가능하게 사용되는 것으로 의도된다. 예를 들어, 작동 또는 구성 요소를 모니터링하고 제어하도록 구성되는 프로세서는 작동을 모니터링하고 제어하도록 프로그래밍되는 프로세서 또는 작동을 모니터링하고 제어하도록 작동 가능한 프로세서를 의미할 수도 있다. 마찬가지로, 코드를 실행하도록 구성되는 프로세서는 코드를 실행하도록 프로그래밍되거나 코드를 실행하도록 작동 가능한 프로세서로 해석될 수 있다.
"~와 통신하는" 및 “결합되는”이란 어구들은 본원에 명명되거나 명명되지 않은 하나 이상의 구성 요소(예를 들어, 메모리 카드 리더)를 통하여 ~와 직접적 통신하는 또는 ~와 간접적 통신하는을 의미한다.
일 “양태”와 같은 어구는 그러한 양태가 본 발명에 필수적이거나 그러한 양태가 본 발명의 모든 구성에 적용된다는 것을 의미하지 않는다. 일 양태와 관련하는 개시는 모든 구성, 또는 하나 이상의 구성에 적용될 수 있다. 일 양태는 하나 이상의 예를 제공할 수 있다. 일 양태와 같은 어구는 하나 이상의 양태를 지칭할 수 있고 그 반대도 그렇다. 일 “실시예”와 같은 어구는 그러한 실시예가 본 발명에 필수적이거나 그러한 실시예가 본 발명의 모든 구성에 적용된다는 것을 의미하지 않는다. 구현과 관련하는 개시는 모든 양태, 또는 하나 이상의 양태에 적용될 수 있다. 구현은 하나 이상의 예를 제공할 수 있다. 일 “실시예”와 같은 어구는 하나 이상의 구현을 지칭할 수 있고 그 반대도 그렇다. “구성”과 같은 어구는 그러한 구성이 본 발명에 필수적이거나 그러한 구성이 본 발명의 모든 구성에 적용된다는 것을 의미하지 않는다. 구성과 관련하는 개시는 모든 구성, 또는 하나 이상의 구성에 적용될 수 있다. 구성은 하나 이상의 예를 제공할 수 있다. “구성”과 같은 어구는 하나 이상의 구성을 지칭할 수 있고 그 반대도 그렇다.
“예시적인”이란 단어는 “일 예 또는 예시의 역할을 하는”을 의미하도록 본원에 사용된다. “예시적인”으로서 본원에 설명하는 임의의 양태 또는 설계는 다른 양태들 또는 설계들을 넘어 바람직한 또는 유리한으로 반드시 해석되는 것은 아니어야 한다.

Claims (20)

  1. 메모리 블록의 제1 샘플의 워드라인들을 판독하는 단계로서, 상기 제1 샘플의 워드라인들 각각은 워드라인 식별자와 연관되고 워드라인 및 각각의 판독 레벨 전압의 각각의 조합에 대한 에러 카운트를 생성하도록 상이한 판독 레벨 전압들을 사용하여 다수 번 판독되는 단계;
    상기 생성된 에러 카운트들에 기반하여 에러 카운트들의 표를 생성하는 단계로서, 상기 에러 카운트들의 표는 상응하는 워드라인 식별자 및 상기 에러 카운트를 생성하는데 사용되는 상기 상이한 판독 레벨 전압들 중 각각의 하나에 의해 각각의 생성된 에러 카운트를 색인화하는 단계; 및
    상기 에러 카운트들의 표의 상기 에러 카운트들에 기반하여 선택되는 상기 판독 레벨 전압들을 사용하여 판독 작동들을 수행하도록 저장 디바이스를 구성하는 단계를 포함하는, 컴퓨터-구현 방법.
  2. 제1항에 있어서,
    상기 저장 디바이스를 구성하는 단계는:
    상기 에러 카운트들의 표를 색인화하는데 사용되는 상기 워드라인 식별자들에 기반하여 복수의 워드라인 그룹을 형성하는 단계로서, 각각의 워드라인 그룹은 상기 상이한 판독 레벨 전압들 중 각각의 하나를 상기 판독 작동들이 수행되어야 할 복수의 워드라인과 연관시키는 단계를 포함하며,
    상기 저장 디바이스는 각각의 워드라인에 상응하는 상기 워드라인 그룹의 상기 판독 레벨 전압을 사용하여 각각의 워드라인 상에서 각각의 판독 작동을 수행하도록 구성되는, 컴퓨터-구현 방법.
  3. 제2항에 있어서,
    상기 복수의 워드라인 그룹은 상기 에러 카운트들의 표를 색인화하는데 사용되는 상기 워드라인 식별자들에 상응하는 워드라인들의 초기 분할에 기반하여 생성되고, 각각의 워드라인 그룹은 상응하는 판독 레벨 전압과 페어링되는 상기 상응하는 워드라인들의 연속적으로 그룹화된 부분을 포함하며, 상기 페어링들은 상기 워드라인 그룹들 각각에서 워드라인들을 판독하기 위한 전체 최저 가능한 에러 카운트에 대해 선택되는, 컴퓨터-구현 방법.
  4. 제2항에 있어서,
    상기 저장 디바이스에서의 하나 이상의 메모리 블록의 수명 주기의 미리 결정된 시점 후에, 상기 에러 카운트들의 표를 색인화하는데 사용되는 상기 워드라인 식별자들에 상응하는 제2 샘플의 워드라인들을 판독하는 것에 기반하여 상기 에러 카운트들의 표를 재생성하는 단계; 및
    상기 에러 카운트들의 재생성된 표에 기반하여 상기 복수의 워드라인 그룹을 재생성하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  5. 제4항에 있어서,
    상기 에러 카운트들의 표를 재생성하는 단계는:
    상기 하나 이상의 메모리 블록의 메모리 셀들의 복수의 판독에 상응하는 복수의 신뢰성 값을 생성하는 단계로서, 각각의 판독은 상기 상이한 판독 레벨 전압을 사용하여 수행되며, 상기 신뢰성 값들의 범위는 부의 그리고 정의 값들에 걸치는 단계;
    상기 신뢰성 값들의 상기 범위에서의 제로 교차점에 상응하는 교정된 전압을 식별하는 단계; 및
    상기 교정된 전압에 기반하여 상기 제2 샘플의 워드라인들을 판독하도록 상기 저장 디바이스를 구성하는 단계를 포함하는, 컴퓨터-구현 방법.
  6. 제5항에 있어서,
    상기 에러 카운트들의 표를 재생성하는 단계는:
    상기 교정된 전압에 기반하여 상기 상이한 판독 레벨 전압들을 업데이트하는 단계로서, 상기 제2 샘플의 워드라인들 각각은 업데이트된 에러 카운트를 생성하도록 상기 업데이트된 판독 레벨 전압들을 사용하여 다수 번 판독되는 단계; 및
    상기 생성된 업데이트된 에러 카운트들에 기반하여 상기 에러 카운트들의 표를 재생성하는 단계로서, 상기 에러 카운트들의 표는 상기 상응하는 워드라인 식별자 및 상기 업데이트된 에러 카운트를 생성하는데 사용되는 상기 업데이트된 판독 레벨 전압들 중 각각의 하나에 의해 각각의 생성된 업데이트된 에러 카운트를 색인화하도록 업데이트되는 단계를 더 포함하는, 컴퓨터-구현 방법.
  7. 제5항에 있어서,
    상기 하나 이상의 메모리 블록의 상기 수명 주기의 상기 미리 결정된 시점은 상기 하나 이상의 메모리 블록에서의 상기 메모리 셀들의 하나 이상의 판독이 에러 임계치를 넘는 비트 에러율을 생성하는 상기 수명 주기의 시점을 포함하는, 컴퓨터-구현 방법.
  8. 제5항에 있어서,
    상기 하나 이상의 메모리 블록의 상기 수명 주기의 상기 미리 결정된 시점은 상기 하나 이상의 메모리 블록에서의 상기 메모리 셀들이 미리 결정된 수의 프로그램/소거 사이클을 겪었던 상기 수명 주기의 시점을 포함하는, 컴퓨터-구현 방법.
  9. 복수의 플래시 메모리 디바이스로서, 각각의 플래시 메모리 디바이스는 복수의 메모리 블록을 포함하는 복수의 플래시 메모리 디바이스; 및
    상기 복수의 플래시 메모리 디바이스에 결합되는 제어기를 포함하며, 상기 제어기는 구성 모드 동안:
    상기 플래시 메모리 디바이스들의 제1 샘플의 워드라인들을 판독하며, 상기 제1 샘플의 워드라인들 각각은 워드라인 식별자와 연관되고 워드라인 및 각각의 판독 레벨 전압의 각각의 조합에 대한 에러 카운트를 생성하도록 상이한 판독 레벨 전압들을 사용하여 다수 번 판독되고;
    상기 생성된 에러 카운트들에 기반하여 에러 카운트들의 표를 생성하며, 상기 에러 카운트들의 표는 상응하는 워드라인 식별자 및 상기 상이한 판독 레벨 전압들 중 각각의 하나에 의해 각각의 생성된 에러 카운트를 색인화하고;
    상기 에러 카운트들의 표의 상기 에러 카운트들에 기반하여 장래 판독 작동들을 위해 상기 판독 레벨 전압들을 선택하도록 구성되는, 데이터 저장 시스템.
  10. 제9항에 있어서,
    상기 제어기는 상기 구성 모드 동안:
    상기 에러 카운트들의 표를 색인화하는데 사용되는 상기 워드라인 식별자들에 기반하여 복수의 워드라인 그룹을 형성하며, 각각의 워드라인 그룹은 상기 상이한 판독 레벨 전압들 중 각각의 하나를 상기 판독 작동들이 수행되어야 할 복수의 워드라인과 연관시키고;
    각각의 워드라인에 상응하는 상기 워드라인 그룹의 상기 판독 레벨 전압을 사용하여 각각의 워드라인 상에서 각각의 판독 작동을 수행하도록 상기 데이터 저장 시스템을 구성하도록 추가로 구성되는, 데이터 저장 시스템.
  11. 제10항에 있어서,
    상기 복수의 워드라인 그룹은 상기 에러 카운트들의 표를 색인화하는데 사용되는 상기 워드라인 식별자들에 상응하는 워드라인들의 초기 분할에 기반하여 생성되고, 각각의 워드라인 그룹은 상응하는 판독 레벨 전압과 페어링되는 상기 상응하는 워드라인들의 연속적으로 그룹화된 부분을 포함하며, 상기 페어링들은 상기 워드라인 그룹들 각각에서 워드라인들을 판독하기 위한 전체 최저 가능한 에러 카운트에 대해 선택되는, 데이터 저장 시스템.
  12. 제10항에 있어서,
    상기 판독 레벨 전압을 상기 복수의 워드라인과 연관시키는 것은 상기 판독 레벨 전압을 상기 복수의 워드라인에 상응하는 복수의 워드라인 어드레스와 연관시키는 것을 포함하는, 데이터 저장 시스템.
  13. 제12항에 있어서,
    상기 제어기는:
    각각의 메모리 블록의 수명 주기의 미리 결정된 시점 후에, 상기 에러 카운트들의 표를 색인화하는데 사용되는 상기 워드라인 식별자들에 상응하는 제2 샘플의 워드라인들을 판독하는 것에 기반하여 상기 에러 카운트들의 표를 재생성하고;
    상기 에러 카운트들의 재생성된 표에 기반하여 상기 복수의 워드라인 그룹을 재생성하도록 구성되는, 데이터 저장 시스템.
  14. 제13항에 있어서,
    상기 에러 카운트들의 표를 재생성하는 것은:
    상기 각각의 메모리 블록의 메모리 셀들의 복수의 판독에 상응하는 복수의 신뢰성 값을 생성하며, 각각의 판독은 상기 상이한 판독 레벨 전압을 사용하여 수행되며, 상기 신뢰성 값들의 범위는 부의 그리고 정의 값들에 걸치는 것;
    상기 신뢰성 값들의 상기 범위에서의 제로 교차점에 상응하는 교정된 전압을 식별하는 것; 및
    상기 교정된 전압에 기반하여 상기 각각의 메모리 블록의 상기 워드라인들을 판독하도록 상기 저장 디바이스를 구성하는 것을 포함하는, 데이터 저장 시스템.
  15. 제13항에 있어서,
    상기 하나 이상의 메모리 블록의 상기 수명 주기의 상기 미리 결정된 시점은 상기 하나 이상의 메모리 블록에서의 메모리 셀들의 하나 이상의 판독이 에러 임계치를 넘는 비트 에러율을 생성하는 상기 수명 주기의 시점을 포함하는, 데이터 저장 시스템.
  16. 제13항에 있어서,
    상기 각각의 메모리 블록의 상기 수명 주기의 상기 미리 결정된 시점은 상기 각각의 메모리 블록에서의 메모리 셀들이 미리 결정된 수의 프로그램/소거 사이클을 겪었던 상기 수명 주기의 시점을 포함하는, 데이터 저장 시스템.
  17. 플래시 메모리 디바이스의 제1 샘플의 워드라인들을 판독하는 단계로서, 상기 제1 샘플의 워드라인들 각각은 워드라인 어드레스와 연관되고 워드라인 및 각각의 판독 레벨 전압의 각각의 조합에 대한 에러 카운트를 생성하도록 상이한 판독 레벨 전압들을 사용하여 다수 번 판독되는 단계;
    상기 생성된 에러 카운트들에 기반하여 에러 카운트들의 표를 생성하는 단계로서, 상기 에러 카운트들의 표는 상응하는 워드라인 어드레스 및 상기 상이한 판독 레벨 전압들 중 각각의 하나에 의해 각각의 생성된 에러 카운트를 색인화하는 단계;
    상기 에러 카운트들의 표에 기반하여 복수의 워드라인 그룹을 형성하는 단계로서, 각각의 그룹은 상기 상이한 판독 레벨 전압들 중 각각의 하나를 복수의 워드라인 어드레스와 연관시키는 단계; 및
    판독될 메모리 셀들의 상기 워드라인 어드레스에 상응하는 생성된 워드라인 그룹의 상기 판독 레벨 전압을 사용하여 메모리 셀들을 판독하도록 저장 디바이스를 구성하는 단계를 포함하는, 컴퓨터-구현 방법.
  18. 제17항에 있어서,
    상기 복수의 워드라인 그룹은 상기 에러 카운트들의 표를 색인화하는데 사용되는 상기 워드라인 어드레스에 상응하는 워드라인들의 초기 분할에 기반하여 또한 생성되고, 각각의 워드라인 그룹은 상응하는 판독 레벨 전압과 페어링되는 상기 워드라인 어드레스들의 연속적으로 그룹화된 부분을 포함하며, 상기 페어링들은 상기 워드라인 그룹들 각각에서 워드라인들을 판독하기 위한 전체 최저 가능한 에러 카운트에 대해 선택되는, 컴퓨터-구현 방법.
  19. 제18항에 있어서,
    하나 이상의 메모리 블록의 수명 주기의 미리 결정된 시점 후에, 상기 에러 카운트들의 표를 색인화하는데 사용되는 워드라인 식별자들에 상응하는 제2 샘플의 워드라인들을 판독하는 것에 기반하여 상기 에러 카운트들의 표를 재생성하는 단계; 및
    상기 에러 카운트들의 재생성된 표에 기반하여 상기 복수의 워드라인 그룹을 재생성하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  20. 제19항에 있어서,
    상기 하나 이상의 메모리 블록의 상기 수명 주기의 상기 미리 결정된 시점은 미리 결정된 수의 프로그램/소거 사이클을 겪었던 상기 하나 이상의 메모리 블록에서의 상기 메모리 셀들을 포함하는, 컴퓨터-구현 방법.
KR1020160032905A 2015-03-20 2016-03-18 증가된 플래시 성능을 위한 판독 레벨 그룹화 KR101831209B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/664,768 2015-03-20
US14/664,768 US9720754B2 (en) 2014-11-20 2015-03-20 Read level grouping for increased flash performance

Publications (2)

Publication Number Publication Date
KR20160113051A true KR20160113051A (ko) 2016-09-28
KR101831209B1 KR101831209B1 (ko) 2018-02-23

Family

ID=55952218

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160032905A KR101831209B1 (ko) 2015-03-20 2016-03-18 증가된 플래시 성능을 위한 판독 레벨 그룹화

Country Status (6)

Country Link
JP (1) JP6218195B2 (ko)
KR (1) KR101831209B1 (ko)
CN (1) CN105989891B (ko)
DE (1) DE102016003366B4 (ko)
FR (1) FR3033927B1 (ko)
GB (1) GB2537484B (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200003240A (ko) * 2017-05-25 2020-01-08 마이크론 테크놀로지, 인크 동적 타깃 교정을 이용하는 메모리 디바이스
US10573389B2 (en) 2017-10-17 2020-02-25 Samsung Electronics Co., Ltd. Storage device having parameter calibration function, and operating method thereof
KR20210004936A (ko) * 2017-08-29 2021-01-13 마이크론 테크놀로지, 인크. 호스트 io 동작에 기초하는 판독 전압 교정
KR20220053019A (ko) * 2019-10-30 2022-04-28 인터내셔널 비지네스 머신즈 코포레이션 비-휘발성 랜덤 액세스 메모리의 수정 읽기 전압 오프셋들의 계산

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10229740B2 (en) * 2016-10-17 2019-03-12 SK Hynix Inc. Memory system of 3D NAND flash and operating method thereof
CN108257642B (zh) * 2016-12-29 2021-08-17 北京忆恒创源科技股份有限公司 读阈值设置方法与装置
US10452480B2 (en) 2017-05-25 2019-10-22 Micron Technology, Inc. Memory device with dynamic processing level calibration
US10402272B2 (en) * 2017-05-25 2019-09-03 Micron Technology, Inc. Memory device with dynamic programming calibration
CN110010170B (zh) * 2018-01-05 2021-04-02 旺宏电子股份有限公司 存储装置的操作方法及其存储系统
US10910061B2 (en) * 2018-03-14 2021-02-02 Silicon Storage Technology, Inc. Method and apparatus for programming analog neural memory in a deep learning artificial neural network
US10566063B2 (en) 2018-05-16 2020-02-18 Micron Technology, Inc. Memory system with dynamic calibration using a trim management mechanism
US10664194B2 (en) 2018-05-16 2020-05-26 Micron Technology, Inc. Memory system with dynamic calibration using a variable adjustment mechanism
CN108777156A (zh) * 2018-05-31 2018-11-09 郑州云海信息技术有限公司 一种闪存数据处理方法及装置
US10990466B2 (en) * 2018-06-20 2021-04-27 Micron Technology, Inc. Memory sub-system with dynamic calibration using component-based function(s)
US11188416B2 (en) 2018-07-12 2021-11-30 Micron Technology, Inc. Enhanced block management for a memory sub-system
CN110908825B (zh) * 2018-09-17 2024-03-01 兆易创新科技集团股份有限公司 一种数据读取方法、装置、存储设备及存储介质
US10936246B2 (en) 2018-10-10 2021-03-02 Micron Technology, Inc. Dynamic background scan optimization in a memory sub-system
US11367488B2 (en) * 2018-12-11 2022-06-21 SK Hynix Inc. Memory system and method for read operation based on grouping of word lines
CN110473588A (zh) * 2019-08-15 2019-11-19 山东华芯半导体有限公司 一种SSD中在线校准NAND Flash读参考电压的方法
US11264103B2 (en) * 2019-08-28 2022-03-01 International Business Machines Corporation Hybrid read voltage calibration in non-volatile random access memory
DE102020100541A1 (de) * 2020-01-13 2021-07-15 Infineon Technologies Ag Bestimmung eines resultierenden datenworts beim zugriff auf einen speicher
US11189351B2 (en) 2020-03-27 2021-11-30 Sandisk Technologies Llc Peak and average current reduction for sub block memory operation
CN112216333B (zh) * 2020-09-30 2024-02-06 深圳市宏旺微电子有限公司 芯片测试方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7554853B2 (en) * 2006-12-30 2009-06-30 Sandisk Corporation Non-volatile storage with bias based on selective word line
KR101516577B1 (ko) * 2008-11-10 2015-05-06 삼성전자주식회사 비휘발성 반도체 메모리 장치, 그를 포함하는 메모리 카드와 메모리 시스템 및 그의 리드 전압 추정 방법
US8159881B2 (en) * 2009-06-03 2012-04-17 Marvell World Trade Ltd. Reference voltage optimization for flash memory
US8874825B2 (en) * 2009-06-30 2014-10-28 Sandisk Technologies Inc. Storage device and method using parameters based on physical memory block location
US8072805B2 (en) * 2009-08-18 2011-12-06 Skymedi Corporation Method and system of finding a read voltage for a flash memory
US8427875B2 (en) * 2010-12-07 2013-04-23 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
US9047955B2 (en) * 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
CN102831932B (zh) * 2011-06-14 2015-11-18 群联电子股份有限公司 数据读取方法、存储器控制器及存储器储存装置
US9195586B2 (en) * 2012-02-23 2015-11-24 Hgst Technologies Santa Ana, Inc. Determining bias information for offsetting operating variations in memory cells based on wordline address
US9135106B2 (en) * 2012-05-22 2015-09-15 Hgst Technologies Santa Ana, Inc. Read level adjustment using soft information
KR101984900B1 (ko) * 2012-07-24 2019-05-31 삼성전자 주식회사 메모리 장치 및 상기 메모리 장치의 독출 전압 결정 방법
US8811076B2 (en) * 2012-07-30 2014-08-19 Sandisk Technologies Inc. Systems and methods of updating read voltages
US8879324B2 (en) * 2013-02-01 2014-11-04 Lsi Corporation Compensation loop for read voltage adaptation
US20140359202A1 (en) 2013-05-31 2014-12-04 Western Digital Technologies, Inc. Reading voltage calculation in solid-state storage devices
KR102192910B1 (ko) * 2013-09-10 2020-12-18 에스케이하이닉스 주식회사 반도체 장치, 메모리 시스템 및 이의 동작 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200003240A (ko) * 2017-05-25 2020-01-08 마이크론 테크놀로지, 인크 동적 타깃 교정을 이용하는 메모리 디바이스
KR20210004936A (ko) * 2017-08-29 2021-01-13 마이크론 테크놀로지, 인크. 호스트 io 동작에 기초하는 판독 전압 교정
US11670381B2 (en) 2017-08-29 2023-06-06 Micron Technology, Inc. Read voltage calibration based on host IO operations
US10573389B2 (en) 2017-10-17 2020-02-25 Samsung Electronics Co., Ltd. Storage device having parameter calibration function, and operating method thereof
KR20220053019A (ko) * 2019-10-30 2022-04-28 인터내셔널 비지네스 머신즈 코포레이션 비-휘발성 랜덤 액세스 메모리의 수정 읽기 전압 오프셋들의 계산

Also Published As

Publication number Publication date
FR3033927A1 (ko) 2016-09-23
JP2016177860A (ja) 2016-10-06
GB2537484A (en) 2016-10-19
KR101831209B1 (ko) 2018-02-23
GB2537484B (en) 2019-07-03
GB201604222D0 (en) 2016-04-27
CN105989891A (zh) 2016-10-05
JP6218195B2 (ja) 2017-10-25
FR3033927B1 (fr) 2019-10-11
DE102016003366B4 (de) 2020-10-29
DE102016003366A1 (de) 2016-09-22
CN105989891B (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
KR101831209B1 (ko) 증가된 플래시 성능을 위한 판독 레벨 그룹화
US11488673B2 (en) Calibrating optimal read levels
US9720754B2 (en) Read level grouping for increased flash performance
US9905302B2 (en) Read level grouping algorithms for increased flash performance
KR101931872B1 (ko) 적응식 판독 레벨 조정을 위한 시스템들 및 방법들
US9377962B2 (en) Determining bias information for offsetting operating variations in memory cells
US9639419B2 (en) Read voltage level estimating method, memory storage device and memory control circuit unit
US9047955B2 (en) Adjusting operating parameters for memory cells based on wordline address and cycle information
US9389938B2 (en) Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8819503B2 (en) Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8484519B2 (en) Optimal programming levels for LDPC
US9092350B1 (en) Detection and handling of unbalanced errors in interleaved codewords
US9213601B2 (en) Adaptive data re-compaction after post-write read verification operations
TWI619353B (zh) 在低密度奇偶性校驗(ldpc)解碼器中之對數相似比(llr)抑制
US20190081641A1 (en) Soft Decision LDPC Decoder With Improved LLR From Neighboring Bits
WO2009095902A2 (en) Systems and methods for handling immediate data errors in flash memory
KR20110081822A (ko) 플래시 메모리에서의 적응형 코딩 방법 및 시스템
US10580485B2 (en) System and method for adjusting read levels in a storage device based on bias functions
CN110795270A (zh) 固态储存装置及其读取重试方法
US9697892B1 (en) Generation and application of gray codes
CN114765047A (zh) 非易失性存储器装置中的软读取阈值估计的高斯建模
US9679652B2 (en) Threshold based multi-level cell programming for reliability improvement
CN112562772B (zh) 自适应低密度奇偶校验硬解码器
US9239751B1 (en) Compressing data from multiple reads for error control management in memory systems

Legal Events

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