KR102398957B1 - 동적 타깃 교정을 이용하는 메모리 디바이스 - Google Patents

동적 타깃 교정을 이용하는 메모리 디바이스 Download PDF

Info

Publication number
KR102398957B1
KR102398957B1 KR1020197038164A KR20197038164A KR102398957B1 KR 102398957 B1 KR102398957 B1 KR 102398957B1 KR 1020197038164 A KR1020197038164 A KR 1020197038164A KR 20197038164 A KR20197038164 A KR 20197038164A KR 102398957 B1 KR102398957 B1 KR 102398957B1
Authority
KR
South Korea
Prior art keywords
target
memory
level
memory system
error
Prior art date
Application number
KR1020197038164A
Other languages
English (en)
Other versions
KR20200003240A (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 KR20200003240A publication Critical patent/KR20200003240A/ko
Application granted granted Critical
Publication of KR102398957B1 publication Critical patent/KR102398957B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)

Abstract

메모리 시스템은 복수의 메모리 셀을 포함하는 메모리 어레이, 및 상기 메모리 어레이에 연결되는 제어기를 포함하며, 상기 제어기는 분포 타깃을 포함하는 타깃 프로파일을 결정하며 - 각각의 분포 타깃은 메모리 셀에 대한 로직 값에 대응하는 프로그램-검증 타깃을 나타냄 - , 데이터를 프로세싱하기 위한 프로세싱 레벨을 구현하는 것에 기초하여 피드백 측정치를 결정하고, 피드백 측정치에 따라 프로그램-검증 타깃을 조절하는 것에 기초하여 업데이트된 타깃을 동적으로 생성하도록 구성된다.

Description

동적 타깃 교정을 이용하는 메모리 디바이스
관련 출원(들)
본 출원은 Bruce A.Liikanen 및 Larry J.Koudele에 의해 함께 출원된 미국 특허 출원, 발명의 명칭 "MEMORY DEVICE WITH PROGRAMMING CALIBRATION"와 관련된 주제 사항을 포함한다. 관련 출원은 Micron Technology, Inc.에게 양도되었고 도켓 넘버 10829-9199.US00로 식별된다. 이의 주제 사항은 본 명세서에 참조로서 포함된다.
본 출원은 Bruce A.Liikanen 및 Larry J.Koudele에 의해 함께 출원된 미국 특허 출원, 발명의 명칭 "MEMORY DEVICE WITH DYNAMIC PROCESSING LEVEL CALIBRATION"와 관련된 주제 사항을 포함한다. 관련 출원은 Micron Technology, Inc.에게 양도되었고 도켓 넘버 10829-9201.US00로 식별된다. 이의 주제 사항은 본 명세서에 참조로서 포함된다.
기술 분야
개시된 실시예는 메모리 디바이스와 관련되고, 구체적으로 프로그램-검증 타깃의 동적 교정을 위한 수단을 갖는 메모리 디바이스와 관련된다.
메모리 시스템은 정보를 저장 및 액세스하기 위해 메모리 디바이스를 이용할 수 있다. 메모리 디바이스는 휘발성 메모리 디바이스, 비-휘발성 메모리 디바이스, 또는 조합 디바이스를 포함할 수 있다. 비-휘발성 메모리 디바이스는 "NAND" 기법 또는 로직 게이트, "NOR" 기법 또는 로직 게이트, 또는 이들의 조합을 채용하는 플래시 메모리를 포함할 수 있다.
메모리 디바이스, 가령, 플래시 메모리는 대응하는 임계 레벨 또는 프로세싱 전압 레벨과 함께 전기 에너지를 이용하여 데이터를 저장 및 액세스할 수 있다. 그러나 플래시 메모리 디바이스의 성능 또는 특성이 시간이 흐름에 따라 또는 사용됨에 따라 변하거나 열화된다. 성능 또는 특성의 변화는 시간의 흐름에 따라 임계치 또는 프로세싱 전압 레벨과 충돌하여, 오류 및 그 밖의 다른 성능 문제를 초래할 수 있다.
따라서 동적 타깃 교정 메커니즘을 갖는 메모리 디바이스가 필요하다. 소비자의 기대 증가와 시장에서 제품을 차별화하려는 욕구와 함께 점점 증가하는 상업적 경쟁 압력을 고려할 때 이러한 문제에 대한 해답을 찾는 것이 점점 더 바람직해지고 있다. 또한 비용을 절감하고 효율성과 성능을 향상시키며 경쟁 압력을 충족시켜야 하는 필요성으로 인해 이러한 문제에 대한 해답을 찾아야 하는 압력이 점점 더 커진다.
도면의 간단한 설명
도 1은 본 발명의 실시예에 따라 구성되는 동적 프로그래밍 교정 메커니즘을 갖는 메모리 시스템의 블록도이다.
도 2는 증분 프로그래밍 연산의 다양한 상태에서의 메모리 셀의 전하 저장 구조체 상에 저장되는 전하를 도시한다.
도 3a, 3b 및 3c는 도 1의 프로세싱-레벨 교정 메커니즘에 대한 진행 예시를 도시한다.
도 4a, 4b 및 4c는 도 1의 타깃 교정 메커니즘에 대한 진행 예시를 도시한다.
도 5a 및 5b는 도 1의 타깃 교정 메커니즘에 대한 진행 예시를 도시한다.
도 6은 본 발명의 실시예에 따라 도 1의 메모리 시스템을 동작시키는 예시적 방법을 도시하는 흐름도이다.
도 7은 본 발명의 실시예에 따라 도 1의 메모리 시스템을 동작시키는 또 다른 예시적 방법을 도시하는 흐름도이다.
도 8은 본 발명의 하나의 실시예에 따라 도 1의 메모리 시스템을 동작시키는 또 다른 예시적 방법을 도시하는 흐름도이다.
도 9는 본 발명의 실시예에 따르는 메모리 디바이스를 포함하는 시스템 개략도이다.
이하에서 더 상세히 기재된 바와 같이, 본 명세서에 개시된 기법은 메모리 디바이스, 메모리 디바이스를 갖는 시스템, 및 메모리 디바이스에 대한 프로그램-검증 타깃을 동적으로 교정하기 위한 관련 방법과 관련된다. 메모리 디바이스는 교정 메커니즘을 이용해, 메모리 디바이스의 초기 제조 또는 구성 후 하나 이상의 페이지 유형에 대한 하나 이상의 분포 타깃을 동적으로 교정할 수 있다. 메모리 디바이스는 메모리 디바이스가 사용되는 동안(가령, 동작 중에) 프로그램-검증 타깃을 동적으로 교정하도록 구성될 수 있다.
프로그램-검증 타깃을 교정하기 위해, 메모리 디바이스는 메모리 디바이스의 다양한 양태의 교정 동안 또는 메모리 디바이스가 사용되는 동안 복수의 샘플 또는 결과, 가령, 데이터 카운트 또는 에러 율을 수집할 수 있다. 메모리 디바이스는 샘플 또는 결과를 이용해 프로그램-검증 타깃을 교정할 때 피드백 측정치(가령, 샘플을 수집하는 데 사용되는 상이한 읽기-레벨 전압에 대응하는 에러 율 또는 에러 카운트의 차이)를 계산할 수 있다. 피드백을 이용해, 메모리 디바이스는 상이한 페이지 유형들 간에 임계 전압과 인접한 로직 상태에 대응하는 전압(읽기-윈도 버짓 즉, RWB라고 지칭됨) 간 간격을 갖고 에러 율의 균형을 맞추기 위해 프로그램 검증 타깃을 동적으로 조절할 수 있다.
다음의 실시예는 해당 분야의 통상의 기술자가 실시예를 제작 및 이용하기에 충분히 상세히 기재되어 있다. 그러나 해당 분야의 통상의 기술자라면, 기법이 추가 실시예를 가질 수 있으며, 기법은 도 1-8을 참조하여 아래에서 기재되는 실시예의 세부사항 중 일부 없이 실시될 수 있음을 이해할 것이다.
이하에서 도시된 실시예에서, 메모리 디바이스는 NAND-기반 비-휘발성 저장 매체(가령, NAND 플래시)를 포함하는 디바이스의 맥락에서 기재된다. 그러나 본 기법의 그 밖의 다른 실시예에 따라 구성되는 메모리 디바이스는 NAND-기반 저장 매체에 추가로, 또는 이를 대신하여 다른 유형의 적절한 저장 매체, 가령, NOR-기반 저장 매체, 자기 저장 매체, 상-변화 저장 매체, 강자성 저장 매체 등을 포함할 수 있다.
용어 "프로세싱"은 본 명세서에서 사용될 때 신호 및 데이터를 조작하는 것, 가령, 쓰기 및 프로그램, 읽기, 소거, 재생, 값 조절 또는 변경, 결과 계산, 명령 실행, 어셈블링, 전송, 및/또는 데이터 구조의 조작을 포함한다. 용어 데이터 구조는 비트, 워드 또는 코드-워드, 블록, 파일, 입력 데이터, 시스템 생성 데이터, 가령, 계산되거나 생성된 데이터 및 프로그램 데이터로 배열된 정보를 포함한다. 또한, 본 명세서에서 사용되는 용어 "동적"은 해당 디바이스, 시스템 또는 실시예의 작동, 사용 또는 배치 동안, 및 제조업체 또는 타사 펌웨어를 실행한 후 또는 실행하는 동안 발생하는 프로세스, 기능, 동작 또는 구현을 설명한다. 동적으로 발생하는 프로세스, 기능, 동작 또는 구현은 설계, 제조, 및 초기 테스팅, 셋업 또는 구성 후에 또는 이어서 발생할 수 있다.
도 1은 본 기법의 실시예에 따라 구성되는 동적 프로세싱 레벨 교정 메커니즘을 갖는 메모리 시스템(100)의 블록도이다. 메모리 시스템(100)은 메모리 디바이스(102)를 포함한다. 도시된 바와 같이, 메모리 디바이스(102)는 메모리 어레이(104)(가령, NAND 플래시) 및 제어기(106)를 포함한다. 메모리 디바이스(102)는 메모리 어레이(104)를 호스트 디바이스(108)(가령, 업스트림 중앙 처리기(CPU))로 동작 가능하게 연결할 수 있다. 메모리 어레이(104)는 메모리 어레이(104)에 데이터를 저장하고 메모리 어레이(104) 내 데이터로의 액세스를 제공하도록 구성된 회로를 포함할 수 있다. 메모리 어레이(104)는 컴퓨터 또는 그 밖의 다른 전자 디바이스내 반도체, 집적 회로 및/또는 외부 탈착식 디바이스로서 제공될 수 있다. 메모리 어레이(104)는 복수의 메모리 영역, 또는 메모리 유닛(120)을 포함한다. 메모리 유닛(120)은 개별 메모리 다이, 단일 메모리 다이 내 메모리 평면, TSV(through-silicon via)를 통해 수직으로 연결된 메모리 다이의 스택 등일 수 있다. 하나의 실시예에서, 메모리 유닛(120) 각각은 반도체 다이로부터 형성되고 단일 디바이스 패키지(도시되지 않음) 내에 다른 메모리 유닛 다이와 함께 배열될 수 있다. 또 다른 실시예에서, 메모리 유닛(120) 중 하나 이상이 단일 다이 상에 함께 위치하거나 및/또는 복수의 디바이스 패키지에 걸쳐 분산될 수 있다. 메모리 디바이스(102) 및/또는 개별 메모리 유닛(120)이 데이터 및 그 밖의 다른 기능을 액세스 및/또는 프로그램(가령, 쓰기)하기 위한, 가령, 정보를 프로세싱 및/또는 제어기(106)와 통신하기 위한 그 밖의 다른 회로 구성요소(도시되지 않음), 가령, 멀티플렉서, 디코더, 버퍼, 읽기/쓰기 드라이버, 어드레스 레지스터, 데이터 출력/데이터 입력 레지스터 등을 더 포함할 수 있다.
메모리 유닛(120) 각각은 전하 저장 구조체에 각각 데이터를 저장하는 메모리 셀(122)의 어레이를 포함한다. 메모리 셀(122)은 예를 들어 부동 게이트, 전하 트랩, 상 변화, 강유전성, 자기 저항 및/또는 데이터를 영속적으로 또는 반영속적으로(semi-persistently) 저장하도록 구성된 그 밖의 다른 적절한 저장 소자를 포함할 수 있다. 메모리 셀(122)은 정보를 표현하기 위해 타깃 상태로 프로그래밍 될 수 있는 1-트랜지스터 메모리 셀일 수 있다. 예를 들어, 전하는 메모리 셀(122)의 전하 저장 구조체(예를 들어, 전하 트랩 또는 부동 게이트) 상에 배치되거나 제거되어 셀을 특정 데이터 상태로 프로그래밍할 수 있다. 메모리 셀(122)의 전하 저장 구조체에 저장된 전하는 셀의 임계 전압 (Vt)을 나타낼 수 있다. 예를 들어, 싱글 레벨 셀(SLC: single level cell)은 두 개의 상이한 데이터 상태 중 타깃된 하나로 프로그램될 수 있는데, 이는 이진 단위 1 또는 0으로 표현될 수 있다.
일부 플래시 메모리 셀은 셋 이상의 데이터 상태 중 타깃된 하나로 프로그램 될 수 있다. 예를 들어, 네 개의 상태(예를 들어, 이진 00, 01, 10, 11로 표시됨) 중 임의의 하나로 프로그램될 수 있는 플래시 메모리 셀은 2비트의 데이터를 저장하는데 사용될 수 있으며, 멀티 레벨 셀(MLC: multilevel cell)이라고 지칭될 수 있다. 또 다른 플래시 메모리 셀은 여덟 개의 데이터 상태(예를 들어, 000, 001, 010, 011, 100, 101, 110, 111) 중 어느 하나로 프로그램될 수 있어, 단일 셀에 3비트의 데이터를 저장하게 할 수 있다. 이러한 셀은 트리플 레벨 셀(TLC: triple level cell)로 지칭 될 수 있다. 4비트의 데이터를 저장하기 위해 16개의 데이터 상태(가령, 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111) 중 어느 하나로 프로그램될 수 있는 쿼드 레벨 셀(QLC: quad level cell)에서 발견되는 것과 같은 더 많은 수의 데이터 상태가 가능하다. 더 많은 수의 데이터 상태를 저장할 수 있는 메모리 셀(122)은 각 셀이 둘 이상의 디지트(예를 들어, 둘 이상의의 비트)를 나타낼 수 있기 때문에 메모리 셀의 수를 증가시키지 않고 더 높은 밀도의 메모리를 제공할 수 있다.
메모리 셀(122)은 로우(가령, 각각이 워드 라인(143)에 대응) 및 컬럼(가령, 각각이 비트 라인에 대응)으로 배열될 수 있다. 각각의 워드 라인(143)은 해당 워드 라인(143)의 메모리 셀(122)이 저장하도록 구성된 데이터 상태의 수에 따라, 하나 이상의 메모리 페이지(124)를 포함할 수 있다. 예를 들어, 두 개의 데이터 상태 중 하나를 각각 저장하도록 구성된 메모리 셀(122)(가령, 1비트를 각각 저장하도록 구성된 SLC 메모리 셀)의 단일 워드 라인이 단일 메모리 페이지(124)를 포함할 수 있다. 대안으로, 네 개의 데이터 상태 중 하나를 저장하도록 각각 구성된 메모리 셀(122)(가령, 2비트를 각각 저장하도록 구성된 MLC 메모리 셀)의 단일 워드 라인(143)이 두 개의 메모리 페이지(124)를 포함할 수 있다. 또한, 워드 라인(143) 내에서, 두 개의 데이터 상태 중 하나씩을 각각 저장하도록 구성된 메모리 셀(122)(가령, SLC 메모리 셀)의 워드 라인(143)이 "짝수-홀수 비트 라인 아키텍처"로 두 개의 페이지를 포함할 수 있도록 페이지(124)는 인터리빙될 수 있다(가령, 단일 워드 라인(143)의 홀수-번호 컬럼의 모든 메모리 셀(122)이 제1 페이지로서 그룹화되고, 동일한 워드 라인(143)의 짝수-번호 컬럼의 모든 메모리 셀(122)이 제2 페이지로 그룹화된다). 짝수-홀수 비트 라인 아키텍처가 더 많은 수의 데이터 상태를 각각 저장하도록 구성된 메모리 셀(122)(가령, MLC, TLC, QLC 등으로 구성된 메모리 셀)의 워드 라인(143)에서 사용될 때, 워드 라인(143)당 페이지의 수는 더 높을 수 있다(가령, 4, 6, 8 등). 각각의 컬럼은 공통 소스에 연결된 직렬-연결된 메모리 셀(122)의 스트링을 포함할 수 있다. 각각의 스트링의 메모리 셀(122)은 소스 선택 트랜지스터(가령, 전계 효과 트랜지스터)와 드레인 선택 트랜지스터(가령, 전계 효과 트랜지스터) 사이에 직렬로 연결될 수 있다. 소스 선택 트랜지스터는 소스 선택 라인에 공통으로 연결될 수 있고, 드레인 선택 트랜지스터는 드레인 선택 라인에 공통으로 연결될 수 있다.
메모리 디바이스(102)는 메모리 셀(122)의 상이한 그룹화를 이용해 데이터를 프로세싱할 수 있다. 예를 들어, 메모리 셀(122)의 메모리 페이지(124)는 메모리 블록(126)으로 그룹화될 수 있다. 동작 중에, 데이터는, 가령, 페이지(124)의 그룹 및/또는 메모리 블록(126)에 써짐으로써, 메모리 디바이스(102)의 다양한 메모리 영역에 관련하여 써지거나 그 밖의 다른 방식으로 프로그램(가령, 소거)될 수 있다. NAND-기반 메모리에서, 쓰기 동작은 종종, 선택된 메모리 페이지(124)에서 특정 데이터 값(가령, 로직 0 또는 로직 1의 값을 갖는 데이터 비트의 스트링)으로 메모리 셀(122)을 프로그램하는 것을 포함한다. 소거 동작은 전체 메모리 블록(126) 또는 복수의 메모리 블록(126)을 동일한 데이터 상태(가령, 로직 0)로 재-프로그램하는 것을 제외하고, 소거 동작은 쓰기 동작과 유사하다.
또 다른 실시예에서, 메모리 셀(122)은 도시된 실시예에서 도시된 것과 상이한 유형의 그룹 및/또는 계층구조로 배열될 수 있다. 또한, 설명 목적으로 특정 개수의 메모리 셀, 로우, 컬럼, 블록 및 메모리 유닛을 갖는 도시된 실시예에서 나타난 바와 같이, 또 다른 실시예에서, 메모리 셀, 로우, 컬럼, 블록 및 메모리 유닛의 개수가 달라질 수 있으며 도시된 예시에서 나타난 바보다 규모면에서 크거나 작을 수 있다. 예를 들어, 일부 실시예에서, 메모리 디바이스(100)는 단 하나의 메모리 유닛(120)을 포함할 수 있다. 대안으로, 메모리 디바이스(100)는 둘, 셋, 넷, 여덟, 열 개 이상의(가령, 16, 32, 64 이상의) 메모리 유닛(120)을 포함할 수 있다. 메모리 유닛(120)이 도 1에서 각각 두 개의 메모리 블록(126)을 포함하는 것으로 도시되어 있지만, 또 다른 실시예에서, 각각의 메모리 유닛(120)은 하나, 셋, 네 여덟 개 이상의 메모리 블록(가령, 16, 32, 64, 100, 128, 256개 이상의 메모리 블록)을 포함할 수 있다. 일부 실시예에서, 각각의 메모리 블록(123)은, 가령, 215개의 메모리 페이지를 포함할 수 있으며, 블록 내 각각의 메모리 페이지는, 가령, 212개의 메모리 셀(122)(가령, "4k" 페이지)를 포함할 수 있다.
제어기(106)는 마이크로제어기, 특수 로직 회로(가령, FPGA(field programmable gate array), ASIC(application specific integrated circuit) 등), 또는 그 밖의 다른 적절한 프로세서일 수 있다. 제어기(106)는 메모리에 저장된 명령을 실행하도록 구성된 프로세서(130)를 포함할 수 있다. 도시된 예시에서, 제어기(106)의 메모리가 메모리 시스템(100)의 동작을 제어하기 위한 다양한 프로세스, 로직 흐름, 및 루틴, 가령, 메모리 디바이스(102)를 관리하고 메모리 디바이스(102)와 호스트 디바이스(108) 간 통신을 핸들링하는 것을 수행하도록 구성된 내장 메모리(132)를 포함한다. 일부 실시예에서, 내장된 메모리(132)는 가령, 메모리 포인터, 인출된 데이터 등을 저장하는 메모리 레지스터를 포함할 수 있다. 내장된 메모리(132)는 마이크로-코드를 저장하기 위한 리드-온리 메모리(ROM)를 더 포함할 수 있다. 도 1에 도시된 예시적 메모리 디바이스(102)가 제어기(106)를 포함하는 것으로 도시되지만, 본 기법의 또 다른 실시예에서, 메모리 디바이스는 제어기를 포함하지 않을 수 있으며, 대신 (가령, 외부 호스트에 의해 제공되는, 또는 메모리 디바이스로부터 분리된 프로세서 또는 제어기에 의해 제공되는) 외부 제어를 이용할 수 있다.
도시된 예시에서, 메모리 어레이(104)의 추가 구성 또는 세부사항이 페이지 맵(142)을 이용해 나타내어진다. 페이지 맵(142)은 메모리 블록(126) 각각에 대한 메모리 페이지(124)에 대해 그룹화, 어드레스, 유형, 또는 이들의 조합을 나타낼 수 있다. 예를 들어, 메모리 블록(126) 각각은 워드-라인 그룹(144)에 대응하는 메모리 페이지(124)를 포함할 수 있다. 또한 예시로서, 메모리 페이지(124)는 로직 페이지 유형(146), 가령, 하부 페이지(LP)(148), 상부 페이지(UP)(150), 또는 여분 페이지(EP)(152)에 더 대응할 수 있다.
워드-라인 그룹(144)은 프로세싱 기능, 가령, 데이터에 대한 읽기 또는 쓰기를 구현하는 데 사용되는 하나 이상의 워드 라인(143)에 대응하는 메모리 페이지(124)의 그룹을 포함할 수 있다. 워드-라인 그룹(144)은 워드 라인(143)을 위한 또는 이에 연결된 메모리 페이지(124)의 그룹일 수 있다. 워드 라인(143)은 메모리 셀(122)의 물리적 레이아웃 또는 아키텍처에 대응할 수 있다.
페이지 유형(146), 가령, 상부 페이지(150), 하부 페이지(148), 및 여분 페이지(152)에 대한 페이지 유형이 메모리 페이지(124)에 대한 특정 순서로 비트의 그룹을 나타낼 수 있다. 페이지의 유형은 메모리 셀(122)에 대한 논리적 레이아웃, 아키텍처, 또는 값에 대응할 수 있다. 예를 들어, 하부 페이지(148)는 메모리 페이지(124)에 또는 그 내부의 메모리 셀(122)에 저장된 제1 정보 비트를 나타낼 수 있다. 하부 페이지(148)는 SLC 유형의 셀, MLC 유형의 셀, TLC 유형의 셀, 또는 이들의 조합에 대한 것일 수 있다. 또한 예를 들면, 상부 페이지(150)는 메모리 페이지(124) 또는 그 내부의 메모리 셀(122)에 저장된 제2 정보 비트에 대응하거나 이를 나타낼 수 있다. 상부 페이지(150)는 TLC 또는 MLC 유형의 메모리 셀(122)에 대한 것일 수 있다. 또한 예를 들어, 여분 페이지(152)는 메모리 페이지(124) 또는 그 내부의 메모리 셀(122)에 저장된 제3 정보 비트, 가령, 최상위 비트 또는 최하위 비트를 나타낼 수 있다. 여분 페이지(152)는 TLC 유형의 메모리 셀(122)에 대한 것일 수 있다.
메모리 디바이스(102)는 데이터를 저장 또는 액세스하기 위한 프로세싱 레벨(154)을 이용할 수 있다. 프로세싱 레벨(154)은 전압 또는 전류에 대한 임계치 또는 동작 레벨을 포함할 수 있다. 프로세싱 레벨(154)은 임계 전압(156), 읽기 레벨 전압(158), 프로그래밍 레벨 전압(160), 프로그래밍 스텝(162), 또는 이들의 조합을 포함할 수 있다. 임계 전압(156)은 메모리 셀(122)에 대한 회로가 전도성이 되고 전류가 측정될 수 있는 제어 게이트에 인가되는 전압일 수 있다. 임계 전압(156)은 메모리 셀(122)의 부동 게이트 또는 전하 트랩에 보유되는 전하량을 제어함으로써 영향 받고 제어될 수 있다. 메모리 디바이스(102)는 대응하는 데이터 값을 나타내기 위한 프로그래밍 레벨 전압(160)을 기초로 하는 전하량을 메모리 셀(122)로 저장할 수 있다. 메모리 디바이스(102)는 프로그래밍 레벨 전압(160)을 제어 게이트 또는 워드 라인에 인가하여 부동 게이트 또는 전하 트랩을 충전할 수 있다. 부동 게이트 또는 전하 트랩은 전기적으로 절연될 수 있으며, 이로써 메모리 셀이 전하를 저장하고 보유할 수 있다.
메모리 디바이스(102)는 저장된 전하를 이용해 데이터를 나타낼 수 있다. 예를 들어, 부동 게이트 또는 전하 트랩 상에 전하를 저장하는 것은 SLC 유형 셀에 대해 0의 비트 값을 저장하기 위한 것일 수 있다. 1의 비트 값은 SLC에 대해 어떠한 전하도 저장되어 있지 않은 부동 게이트 또는 전하 트랩에 대응할 수 있다. 또 다른 유형의 셀에서, 가령, MLC, TLC, 또는 QLC 셀에서, 메모리 디바이스(102)는 부동 게이트 또는 전하 트랩 상에 특정한 양의 전하를 저장하여, 상이한 비트 값을 나타낼 수 있다. 셀의 MLC 유형은 네 개의 상이한 전하 상태를 가질 수 있고, TLC는 여덟 개의 상이한 전하 상태를 가질 수 있으며, QLC는 16개의 상이한 전하 상태를 가질 수 있다. 각각의 전하 상태는 앞서 언급된 바와 같이 고유 이진 값에 대응할 수 있다.
메모리 디바이스(102)는 데이터 값에 대응하는 읽기 레벨 전압(158)을 이용해 메모리 셀(122)에 저장된 데이터 값을 읽거나 결정할 수 있다. 메모리 디바이스(102)는 읽기 레벨 전압(158)을 제어 게이트로 적용하고 메모리 셀을 가로지르는 전류 또는 전압을 측정하여 셀에 저장된 데이터를 읽을 수 있다. 부동 게이트 또는 전하 트랩에 저장된 전하는, 저장된 데이터를 읽거나 액세스하기 위해 제어 게이트 상에 위치하는 전하량을 차단하거나 상쇄시킬 수 있다. 따라서 읽기 레벨 전압(158)이 인가될 때, 메모리 셀에서 측정된 전류 또는 전압이 부동 게이트 또는 전하 트랩에 저장된 전하량에 대응할 것이다.
메모리 디바이스(102)의 동작 동안, 디바이스의 전기 특성(즉, 전하 보유 능력)이 반복적인 데이터 쓰기, 소거 및/또는 읽기 때문에 변할 수 있다. 반복적인 데이터 동작은 부동 게이트 또는 전하 트랩을 전기적으로 절연시키는 구조물(가령, 옥사이드 층)의 파괴나 마모를 야기할 수 있다. 메모리 셀(122)의 변하는 전기적 특성을 설명할 때, 메모리 디바이스(102)는 읽기 레벨 전압(158)을 이동시키거나 교정할 수 있다.
프로그래밍 레벨 전압(160)이 읽기 레벨 전압(158) 및 임계 전압(156)과 연관된다. 프로그래밍 레벨 전압(160), 읽기 레벨 전압(158), 임계 전압(156) 또는 이들의 조합이 메모리 셀(122)에 저장된 비트 수, 메모리 셀(122)에 저장된 데이터의 특정 내용 값, 또는 이들의 조합에 대응할 수 있다.
예를 들어, 두 개의 가능한 상태 중 하나로 전하를 저장하도록 구성된 메모리 셀(122)(가령, SLC 메모리 셀)이 네 개의 가능한 상태 중 하나로 전하를 저장하도록 구성된 메모리 셀(122)(가령, MLC 메모리 셀) 또는 여덟 개의 가능한 상태 중 하나로 전하를 저장하도록 구성된 메모리 셀(122))(가령, TLC 메모리 셀)에서 사용되는 것과 상이한 연관된 프로그래밍 레벨, 읽기 레벨 및 임계 전압을 가질 수 있다. 각각의 유형의 메모리 셀(가령, SLC, MLC, TLC, QLC 등)에 대해, 프로그래밍 레벨 전압(160), 읽기 레벨 전압(158), 임계 전압(156), 또는 이들의 조합의 특정 값이 가능한 데이터 값 각각과 연관될 수 있다.
메모리 디바이스(102)는 쓰기 또는 프로그램 동작을 위해, 가령, ISPP( incremental step pulse programming)을 위해 메모리 셀(122)에 전하를 반복적으로 저장할 수 있다. 프로그래밍 스텝(programming step)(162)은 각각의 반복구간에서 저장된 전하를 증가시키기 위한 증분 또는 전압 값을 포함할 수 있다. 메모리 디바이스(102)는 각각, 프로그래밍 스텝(162)에 대응하는 전하량을 증분 저장 또는 증가시킴으로써 프로그래밍 레벨 전압(160)에 도달할 수 있다.
예를 들어, 도 2는 이러한 하나의 증분 프로그래밍 동작의 다양한 상태에서의 메모리 셀의 전하 저장 구조체 상에 저장되는 전하를 도시한다. 증분 프로그래밍 동작이 시작할 때 시점(210)에서 메모리 셀에 저장된 전하량(211)은 희망 타깃 상태(250) 이하이다. 메모리 셀을 희망 타깃 상태(250)로 프로그램하기 위해, 일련의 프로그래밍 스텝(162)이 시점(220, 230 및 240) 각각에서 사용되어, 셀의 전하 저장 구조체 상에 저장된 전하를 전하량(222, 232 및 242)까지 증가시킬 수 있다. 각각의 프로그래밍 스텝(162) 후, 전하 저장 구조체 상에 저장된 전하량이 희망 타깃 상태(250)에 도달했는지 여부를 결정하도록 검증될 수 있다. 시점(240)에서, 전하량(241)은 희망 타깃 상태(250)를 증가시켰기 때문에, 프로그래밍 동작은 완료된다.
하위 비트(less significant bit)로 이미 프로그램된 상위 비트(more significant bit)를 셀에 프로그램하기 위해, 프로그램 동작에서 사용되는 프로그램 스텝(162)(및 검증 스텝)의 수가 더 클 수 있어서(가령, 각각의 프로그램 펄스를 갖는 더 작은 전하 증분의 추가 때문에), 상위 비트를 셀에 프로그램하는 것은 하위 비트를 프로그램하는 것보다 더 많은 시간 및 에너지를 필요로 할 수 있다.
프로세싱 레벨(154)이 메모리 디바이스(102), 호스트 디바이스(108), 또는 이들의 조합에 저장될 수 있다. 예를 들어, 메모리 디바이스(102)는 제어기(106), 메모리 어레이(104), 메모리 디바이스(102)의 또 다른 메모리 위치, 또는 프로세싱 레벨(154)을 저장하기 위한 이들의 조합 상의 하나 이상의 레벨 레지스터(164)를 포함할 수 있다. 레벨 레지스터(164)는 임계 전압(156), 읽기 레벨 전압(158), 프로그래밍 레벨 전압(160), 프로그래밍 스텝(162), 또는 이들의 조합을 저장할 수 있다. 메모리 시스템(100), 제어기(106) 및/또는 호스트(108)가 레벨 레지스터(164)를 액세스하고, 레벨 레지스터(164) 내 값을 쓰거나 조절하거나, 이들의 조합을 할 수 있다. 마찬가지로, 프로세싱 레벨(154)은 제어기(106)의 내장 메모리, 메모리 어레이(104), 메모리 디바이스(102)의 또 다른 메모리 위치, 또는 이들의 조합에 저장될 수 있다.
메모리 디바이스(102)는 데이터의 저장 또는 액세스와 연관된 에러를 더 프로세싱할 수 있다. 에러는 소거, 프로그램 또는 쓰기, 또는 읽기 동작 동안 도입될 수 있는 비트 또는 비트 단위, 가령, 코드-워드, 페이지, 또는 블록을 위한 비트 단위에 대응할 수 있다. 데이터 프로세싱에 추가로, 데이터 보유가 보유 에러를 더 발생시킬 수 있다. 그 밖의 다른 에러의 원인은 프로세스 변화, 결함, 전기적 결합 또는 기생 커패시턴스-결합, 회로 또는 회로 구성요소의 특성 또는 능력의 변화, 또는 이들의 조합을 포함할 수 있다.
메모리 디바이스(102)는 에러 측정치(166)를 추적할 수 있다. 에러 측정치(166)는 에러의 정도, 빈도, 양 또는 크기(magnitude), 크기(size) 또는 개수, 프로세싱 도출, 또는 에러를 설명하는 이들의 조합을 나타낼 수 있다. 예를 들어, 에러 측정치(166)는 에러 카운트(168), 에러 율(170), 또는 이들의 조합을 포함할 수 있다. 에러 카운트(168)는 에러를 설명하는 양 또는 크기, 정도, 크기 또는 개수, 또는 이들의 조합을 나타낼 수 있다. 예를 들어, 에러 카운트(168)는 비트 에러 카운트(BEC: bit error count)일 수 있다. 에러 율(170)은 에러의 등장 빈도 또는 확률, 에러의 비례 양 또는 퍼센티지, 또는 이들의 조합을 나타낼 수 있다. 예를 들어, 에러 율(170)은 비트 에러 율(BER: bit error rate)을 포함할 수 있다. 에러 측정치(166)는 메모리 어레이(104) 내 하나 이상의 유닛 또는 그룹에 대응할 수 있다. 예를 들어, 에러 측정치(166)는 메모리 페이지(124), 메모리 셀(122), 워드-라인 그룹(144), 다이, 또는 이들의 조합 중 하나 이상에 대한 것일 수 있다. 또한 예를 들어, 에러 측정치(166)는 페이지 유형(146), 가령, 하부 페이지(148), 상부 페이지(150), 또는 여분 페이지(152)에 대한 것에 대응할 수 있다. 에러 측정치(166)는 호스트 디바이스(108), 제어기(106) 또는 이들의 조합에 의해 계산되거나 추적될 수 있다. 에러 측정치(166)는 호스트 디바이스(108), 제어기(106)의 내장 메모리, 메모리 어레이(104), 메모리 디바이스(102)의 또 다른 메모리 위치, 또는 이들의 조합에 저장될 수 있다.
메모리 시스템(100)은 에러 복구 메커니즘(172)을 이용하여 에러를 검출 및/또는 보정할 수 있다. 메모리 시스템(100)은 호스트 디바이스(108), 제어기(106), 메모리 어레이(104), 또는 이들의 조합을 이용해 에러 복구 메커니즘(172)을 구현할 수 있다. 에러 복구 메커니즘(172)은 저장되거나 액세스되는 데이터의 에러를 검출하고, 또한 에러를 보정하며 본래 의도된 데이터를 복구하기 위한 프로세스, 기능, 회로, 또는 이들의 조합을 포함할 수 있다. 가령, 하나 이상의 코드-워드를 기초로 하는 인-라인 보정 및 전체 데이터 복구가 에러 복구 메커니즘(172)의 예시일 수 있다. 또한 예를 들면, 에러 복구 메커니즘(172)이 코드-워드에 대한 에러 보정 코드(ECC: error correcting code), 가령, 해밍 코드(Hamming code), 저밀도 패리티-체크(LDPC: low-density parity-check) 코드 또는 보스-셔더리-호??겜(BCH: Bose-Chauduri-Hocquenghem) 코드를 이용해, 에러를 검출 및/또는 보정할 수 있다.
메모리 시스템(100)은 배경 레코드(174)를 더 생성 및 유지할 수 있다. 배경 레코드(174)는 메모리 디바이스(102)에 대한 히스토리를 기술하는 정보를 포함할 수 있다. 예를 들어, 배경 레코드(174)는 에러, 에러 율(170), 에러 복구 메커니즘(172)의 사용 또는 구현, 대응하는 설명 또는 맥락 데이터, 프로세싱 결과 또는 이의 표현, 또는 이들의 조합을 추적할 수 있다. 또한 예를 들어, 배경 레코드(174)는 메모리 디바이스(102)의 다양한 양태 또는 동작에 대한 동적 교정과 연관된 프로세싱 결과, 가령, 데이터, 레벨, 결과, 이의 통계적 표현, 또는 이들의 조합을 추적할 수 있다. 배경 레코드(174)는 제어기(106), 호스트 디바이스(108) 또는 이들의 조합을 이용해 추적될 수 있다. 배경 레코드(174)는 메모리 어레이(104), 제어기(106)의 내장 메모리, 메모리 디바이스(102)의 또 다른 메모리 위치, 호스트 디바이스(108), 또는 이들의 조합에 저장될 수 있다.
메모리 시스템(100)은 피드백 정보를 기초로 프로세싱 레벨(154)을 동적으로 계산 또는 조절할 수 있다. 예를 들어, 메모리 시스템(100)은 프로세싱-레벨 교정 메커니즘(176)을 이용해 읽기 레벨 전압(158)을 지속적으로 업데이트할 수 있다. 또한 예를 들어, 메모리 시스템(100)은 스텝 교정 메커니즘(180)을 이용해 프로그래밍 스텝(162)을 동적으로 업데이트 또는 조절할 수 있다. 또한, 메모리 시스템(100)은 특정된 로직 값에 대응하는 특정 측정 값(가령, 임계 전압 레벨)을 갖는 메모리 셀의 개수를 보여주는 히스토그램을 나타내는 분포 타깃을 동적으로 생성 또는 조절할 수 있다. 측정 값은 옥사이드 층의 파괴 때문에 이동(shift)될 수 있다. 메모리 시스템(100)은 타깃 교정 메커니즘(178)을 이용해 피드백 데이터를 기초로 분포 타깃을 동적으로 조절하여, 측정 값의 이동에 대해 조절될 수 있다. 프로세싱-레벨 교정 메커니즘(176), 타깃 교정 메커니즘(178), 및 스텝 교정 메커니즘(180) 각각이, 상기 언급된 교정을 수행하기 위한 고유 프로세스, 방법, 기능, 회로, 구성, 또는 이들의 조합일 수 있다. 프로세싱-레벨 교정 메커니즘(176), 타깃 교정 메커니즘(178), 및 스텝 교정 메커니즘(180)에 대한 세부사항이 이하에서 논의된다.
도 3a, 3b, 및 3c가 메모리 페이지의 에러 카운트(Y-축을 따라 나타남)를 셀로부터의 데이터를 읽기 위해 사용되는 읽기 전압(X-축을 따라 나타남)과 상관시키는 차트를 보여준다. 도 3a, 3b 및 3c는 프로세싱-레벨 교정 메커니즘(176)(도 1)에 대한 진행을 보여준다. 프로세싱-레벨 교정 메커니즘(176)은 도 3a 내지 도 3c에 도시된 에러 카운트(168)를 감소시키기 위해 읽기 레벨 전압(158)을 조절할 수 있다. 도면이 교정 메커니즘이 읽기 레벨 전압을 교정하기 위해 측정 에러 카운트를 이용하는 실시예를 도시하지만, 또 다른 실시예에서 본 기법은 또 다른 측정 특성(비트 에러 율 등)의 관점에서 다른 프로세싱 레벨(가령, 프로그램 전압, 임계 레벨 등)을 교정하기 위해 유사하게 사용될 수 있다.
설명 목적으로, 프로세싱-레벨 교정 메커니즘(176)은 읽기 레벨 전압(158)을 이용해 이하에서 기재된다. 그러나 프로세싱-레벨 교정 메커니즘(176)은 임계 전압(156)(도 1), 프로그래밍 레벨 전압(160)(도 1), 프로그래밍 스텝(162)(도 1), 또는 이들의 조합에 대해 구현될 수 있음이 자명하다.
도 3a 내지 3c가 프로세싱-레벨 교정 메커니즘(176)이 구현될 때 읽기 레벨 전압(158)의 순차적 변화, 조절, 또는 교정 및 이에 대응하는 샘플 및 결과를 보여준다. 메모리 시스템(100)(도 1)은 프로세싱-레벨 교정 메커니즘(176), 가령, 읽기 레벨 전압(158)의 반복적인 변화, 조절, 또는 교정을 구현할 수 있다. 메모리 시스템(100)은 또한 한 지속시간 동안 프로세싱-레벨 교정 메커니즘(176)을 복수 번 구현하여 읽기 레벨 전압(158)을 반복적으로 조절할 수 있다.
도 3a는 프로세싱-레벨 교정 메커니즘(176)을 구현하기 전 즉 이의 구현이 없는 예시적 거동을 보여준다. 프로세싱-레벨 교정 메커니즘(176)을 개시 또는 구현할 때, 메모리 시스템(100)은 이의 구성요소 중 하나 이상을 이용해 데이터를 샘플링하고 테스트 측정 세트를 생성 또는 업데이트할 수 있다. 테스트 측정 세트가 중앙 결과(304), 제1 오프셋 결과(306), 제2 오프셋 결과(308), 그 밖의 다른 결과, 또는 이들의 조합을 포함할 수 있다. 메모리 시스템(100)은 읽기 레벨 전압(158)을 이용하거나 읽기 레벨 전압(158)으로부터 오프셋된 전압을 이용해 읽기 동작의 세트에 대응하는 결과의 결정을 기초로 테스트 측정 세트를 생성 또는 업데이트할 수 있다.
예를 들어, 메모리 시스템(100)은 메모리 페이지(124)(도 1)의 한 인스턴스의 특정 페이지 유형에 대한 읽기 레벨 전압(158)을 이용해 읽히거나 액세스되는 데이터에 대응하는 에러 카운트(168) 결정을 기초로 중앙 결과(304)를 결정할 수 있다. 읽기 레벨 전압(158)의 본래의, 조절되지 않은, 또는 교정되지 않은 인스턴스에 대응하는 중앙 결과(304)는 도 3a에서 "O"으로 표현된다.
메모리 시스템(100)은 유사하게, 제1 오프셋 레벨(316)을 이용해 읽히거나 액세스된 데이터에 대응하는 에러 카운트(168) 결정을 기초로 제1 오프셋 결과(306)를 결정할 수 있다. 마찬가지로 메모리 시스템(100)은 제2 오프셋 레벨(318)을 이용해 읽히거나 액세스되는 데이터에 대응하는 에러 카운트(168) 결정을 기초로 제2 오프셋 결과(308)를 결정할 수 있다. 제1 오프셋 레벨(316)은 x-축에서부터 플롯까지 연결된 수직 점선으로 지시된다. 플롯의 대응하는 위치가 도 3a에서 중앙 결과(304) 오른쪽 위에 위치하는 삼각형으로 나타난다. 제2 오프셋 레벨(318)은 x-축에서부터 플롯까지 연결된 수직 점선으로 지시되며, 이때 플롯 상의 대응하는 위치가 도 3a의 중앙 결과(304) 왼쪽 아래에 위치한다.
제1 오프셋 레벨(316) 및 제2 오프셋 레벨(318) 각각은 메모리 셀(122)(도 1)의 대응한 인스턴스에 저장된 데이터를 읽거나 액세스하기 위한 전압 레벨일 수 있다. 제1 오프셋 레벨(316) 및 제2 오프셋 레벨(318)은 서로 상이하고 읽기 레벨 전압(158)과 상이한 값일 수 있다. 예를 들어, 제1 오프셋 레벨(316)은 읽기 레벨 전압(158)보다 클 수 있다. 또한 예를 들어, 제2 오프셋 레벨(318)은 읽기 레벨 전압(158)보다 작을 수 있다.
또한 예를 들어, 제1 오프셋 레벨(316), 제2 오프셋 레벨(318), 또는 이의 조합은 읽기 레벨 전압(158)보다 오프셋 측정치(320)만큼 오프셋될 수 있다. 오프셋 측정치(320)는 오프셋 레벨 중 하나 이상에 대한 읽기 레벨 전압(158)로부터의 분리 또는 오프셋된 크기를 나타낼 수 있다. 오프셋 측정치(320)는 분리 또는 오프셋에 대해 방향 또는 부호, 정도 또는 크기, 또는 이들의 조합을 더 나타낼 수 있다.
프로세싱-레벨 교정 메커니즘(176)을 구현하는 메모리 시스템(100)은 다이, 메모리 블록, 메모리 페이지, 트림(trim) 또는 페이지에 대한 하나의 페이지 유형에 대응하는 읽기 레벨 전압(158), 또는 이들의 조합을 선택할 수 있다. 선택은 랜덤일 수 있다. 또한 선택은 반복적 프로세스의 일부로서 발생할 수 있다. 선택에 대한 세부사항이 이하에서 언급된다. 선택 후, 메모리 시스템(100)은 적어도 테스트 측정 세트에 대해 중앙 결과(304), 제1 오프셋 결과(306) 및 제2 오프셋 결과(308)를 샘플링할 수 있다. 메모리 시스템(100)은 읽기 레벨 전압(158)으로부터 반대 방향으로 오프셋 측정치(320) 만큼 오프셋된 제1 오프셋 레벨(316) 및 제2 오프셋 레벨(318)을 이용할 수 있다. 메모리 시스템(100)은 중앙 결과(304), 제1 오프셋 결과(306) 및 제2 오프셋 결과(308)를 이용해 읽기 레벨 전압(158)을 조절 또는 교정할 수 있다.
메모리 시스템(100)은, 다양한 결과를 비교 또는 균형을 맞추는 것을 기초로 읽기 레벨 전압(158)을 조절, 업데이트, 또는 교정할 수 있다. 메모리 시스템(100)은 오프셋 측정치(320)를 조절 또는 업데이트하는 것을 기초로 읽기 레벨 전압(158)을 더 교정할 수 있다. 메모리 시스템(100)은 읽기 레벨 전압(158)을 동적으로 더 교정할 수 있다. 메모리 시스템(100)은, 이의 의도된 배치나 사용 전에, 메모리 디바이스(102)(도 1)의 제조, 구성, 또는 셋 업 동안 또는 이의 일부로서 프로세싱-레벨 교정 메커니즘(176)을 이용해 읽기 레벨 전압(158)을 더 교정할 수 있다. 프로세싱-레벨 교정 메커니즘(176)에 대한 세부사항이 이하에서 논의된다.
도 3b는 도 3a에 도시된 읽기 레벨 전압(158)과 비교하여 조절 또는 교정된 읽기 레벨 전압(158)을 도시한다. 도 3b는 읽기 레벨 전압(158)이 플롯을 따라 안착 또는 센터링되기 전, 프로세싱-레벨 교정 메커니즘(176)의 구현 또는 프로세싱-레벨 교정 메커니즘(176)의 구현 동안의 반복을 나타낼 수 있다. 도 3b에 도시된 읽기 레벨 전압(158)이 도 3a의 것보다 낮거나 더 왼쪽에 있다. 그러나 읽기 레벨 전압(158)은 임의의 방향으로 그리고 임의의 증분 또는 값만큼 조절될 수 있음이 자명하다. 프로세싱-레벨 교정 메커니즘(176)은, 가령, 메모리 셀(122)의 현재 상태 또는 특성에 따라, 대응하는 메모리 셀(122)에 대해 에러 율 또는 카운트를 감소시키도록 읽기 레벨 전압(158)을 조절할 수 있다.
읽기 레벨 전압(158)은 다양한 방식으로 교정될 수 있다. 예를 들어, 읽기 레벨 전압(158)은 다양한 결과의 비교 또는 균형화를 기초로 지정 양 또는 증분만큼 증분되거나 이동될 수 있다. 또한 예를 들어, 읽기 레벨 전압(158)은 샘플링 프로세스 중 하나 이상의 결과에 대응하는 지정 값을 할당 받을 수 있다. 또한 예를 들어, 읽기 레벨 전압(158)은 결과 중 하나 이상을 기초로 하는 제1 오프셋 레벨(316) 또는 제2 오프셋 레벨(318)로 대체될 수 있다. 읽기 레벨 전압(158)에 대한 세부사항이 이하에서 논의된다.
읽기 레벨 전압(158)이 교정되면, 메모리 시스템(100)은 프로세스를 반복할 수 있다. 예를 들어, 메모리 시스템(100)은 프로세싱-레벨 교정 메커니즘(176)의 차후 반복 또는 구현을 위한 새로운 오프셋 레벨(3 3)을 계산하기 위해 읽기 레벨 전압(158)의 업데이트된, 조절된 또는 교정된 인스턴스, 또는 이들의 조합을 이용할 수 있다. 결과가 프로세싱될 수 있고, 이에 따라 읽기 레벨 전압(158)이 더 교정될 수 있다. 프로세스는 읽기 레벨 전압(158) 및 이에 대응하는 결과가 종료 또는 멈춤 조건을 만족할 때까지 반복될 수 있다. 예를 들어, 프로세스는 읽기 레벨 전압(158)이 도 3a 내지 도 3c에 도시된 에러 카운트를 읽기 레벨에 상관시키는 플롯을 따르는 최소 포인트 또는 중앙 포인트에 대응하는, 에러 카운트(168)의 추정된 최소 인스턴스에 대응할 때 중단될 수 있다.
도 3c는 프로세싱-레벨 교정 메커니즘(176)의 구현 후의 또는 프로세싱-레벨 교정 메커니즘(176)의 차후 구현을 위한 예시적 거동을 도시할 수 있다. 도시된 바와 같이, 프로세싱-레벨 교정 메커니즘(176)의 구현은 에러 카운트를 읽기 레벨에 상관시키는 플롯의 하부 또는 최소치로부터 임계 거리 내에 위치하도록 읽기 레벨 전압(158)을 조절 또는 교정할 수 있다. 읽기 레벨 전압(158)에 대응하는 중앙 결과(304) 및 각자의 결과에 대응하는 하나 이상의 오프셋 결과를 이용하는 프로세싱-레벨 교정 메커니즘(176)은 읽기에 의해 도입되는 에러를 감소시키는 이점을 제공한다. 프로세싱-레벨 교정 메커니즘(176)은 읽기 레벨 전압(158)의 상이한 가능한 값들을 반복적으로 테스트하는 것을 기초로 읽기 에러를 감소시키는 읽기 레벨 전압(158)을 찾고 대응하는 에러 카운트를 비교할 수 있다.
메모리 시스템(100)은 에러-차이 특정치(322)를 더 계산할 수 있다. 에러-차이 측정치(322)는 중앙 결과(304)와 하나 이상의 오프셋 결과 간 비교이다. 에러-차이 측정치(322)는 중앙 결과(304)를 포함하는 결과의 조합, 제1 오프셋 결과(306), 및 제2 오프셋 결과(308) 간 에러 카운트(168)의 간격 또는 차이일 수 있다. 예를 들어, 메모리 시스템(100)은 에러-차이 특정치(322)를 중앙 결과(304)와 제1 오프셋 결과(306) 및 제2 오프셋 결과(308)의 평균 값 간 차이로서 계산할 수 있다. 또한 예를 들어, 메모리 시스템(100)은 에러-차이 특정치(322)를 중앙 결과(304)와 제1 오프셋 결과(306), 제2 오프셋 결과(308), 또는 이들의 조합 간 차이의 측정치를 기초로 계산할 수 있다. 에러-차이 측정치(322)는 하나 이상의 메커니즘에 대한 피드백 측정치일 수 있다. 예를 들어, 레벨-교정 피드백 측정치(302)(즉, 프로세싱 레벨(154) 중 하나 이상을 교정하기 위한 입력으로서 더 사용되는 값, 결과, 메트릭, 또는 이들의 조합)가 에러-차이 측정치(322)를 포함할 수 있다. 또한 예를 들어, 에러-차이 측정치(322)는 타깃 교정 메커니즘(178)(도 1), 스텝 교정 메커니즘(180)(도 1), 또는 이들의 조합을 구현하기 위한 피드백 측정치일 수 있다. 에러-차이 측정치(322)에 대한 세부사항이 이하에서 논의된다.
도 4a, 4b 및 4c는 타깃 교정 메커니즘(178)(도 1)에 대한 진행을 보여준다. 타깃 교정 메커니즘(178)은 메모리 셀의 현재 거동에 따라 프로그램-검증 레벨의 희망 분포를 조절할 수 있다. 도 4a, 4b 및 4c는 하부 페이지(148), 상부 페이지(150), 및 여분 페이지(152)(모두 도 1에 도시됨)를 포함하거나 이에 대응하는 TLC 페이지에 대응한다. 예시적 도시는 수직 방향 또는 축을 따르는 특정 트림 레벨에 대한 등장 횟수를 나타낸다. 예시적 도시는 수평 방향 또는 축을 따르는 전압 레벨을 나타낸다.
도 4a는 메모리 시스템(100)(도 1)에 대한 타깃 프로파일(402)의 예시를 보여준다. 타깃 프로파일(402)은 메모리 셀(122)(도 1)의 특정 세트, 가령, 페이지, 로직 또는 저장된 값, 워드-라인 그룹, 워드 라인, 다이, 또는 이들의 조합에 대한 세트에 대한 프로세싱 레벨(154), 가령, 임계 전압(156) 또는 읽기 레벨 전압(158)(모두 도 1)의 등장 횟수에 대한 목적 또는 희망 결과이다. 예를 들어, 타깃 프로파일(402)은 프로그램-검증(PV) 타깃, 희망 그레이 코드 분포, 희망 쓰기 분포, 또는 이들의 조합을 포함할 수 있다.
메모리 시스템(100)은 메모리 디바이스(102)(도 1)의 거동, 동작, 또는 프로세스를 제어하기 위해 타깃 프로파일(402)을 이용할 수 있다. 타깃 프로파일(402)은 전압 레벨, 페이지 유형(146)(도 1), 또는 이들의 조합에 대응하는 프로세싱 레벨(154)(도 1)의 희망 또는 타깃 양 또는 수량을 특정할 수 있다. 메모리 시스템(100)은 타깃 교정 메커니즘(178)(도 1)을 이용해 타깃 프로파일(402)을 더 조절 또는 교정할 수 있다. 타깃 프로파일(402)은 각각의 로직 값 또는 대응하는 전압 레벨에 대한 분포 타깃(404)을 포함할 수 있다. 분포 타깃(404)은 특정 내용 값, 페이지 유형(146), 또는 이들의 조합에 대응하는 프로세싱 레벨(154)의 희망 수량 또는 등장에 세트에 대응할 수 있다. 분포 타깃(404)의 각각의 인스턴스가 가능한 내용 값의 하나씩의 고유 인스턴스에 대응할 수 있다. 분포 타깃(404)에 대응하는 전압 레벨이 대응하는 데이터 값에 대한 프로세싱 레벨(154)에 대한 만족스러운 또는 희망 범위를 나타낼 수 있다.
가령, 도 4a-4c에 예시로 든 TLC 페이지의 경우, 메모리 셀(122) 각각이 세 개의 비트를 저장할 수 있다. 세 개의 비트의 저장은 0-7의 여덟 가지 가능한 내용 값 또는 "000", "001", "010", "011", "100", "101", "110", 및 "111"의 비트 값과 동일시될 수 있다. 각각의 가능한 내용 값이 도 4a-4c에서의 레벨 식별자, 가령, L0-L1로 식별된다. 특정 전압 범위로의 비트 값의 할당이 메모리 시스템(100), 개발자 또는 제조업자, 표준 또는 템플릿, 또는 이들의 조합에 의해 지정될 수 있다. 타깃 프로파일(402)은 분포 밸리(distribution valley)(406)를 더 포함하거나 나타낼 수 있다. 분포 밸리(406)는 인접 분포 타깃들 간 관계의 표현이다. 분포 밸리(406)는 두 개의 인접한 분포 타깃들 간 교차, 분리, 오버랩, 또는 이들의 조합을 나타낼 수 있다. 분포 밸리(406) 각각은 분포 타깃(404)의 두 개의 인접한 인스턴스 간 경계 또는 이들 사이에, 또는 그 조합으로 위치할 수 있다. 분포 밸리(406)는 분포 타깃(404) 중 하나 이상이 임계 레벨 또는 수량과 교차하는 곳일 수 있으며, 여기서, 복수의 타깃 레벨이 만나거나, 겹치거나, 이들의 조합이다.
가령, 도 4a-4c에 예시로 든 TLC 페이지의 경우, 8개의 밸리가 존재할 수 있다. 분포 밸리(406) 각각은 도 4a-3b(도 4c에는 도시되지 않음)에서 밸리 식별자, 가령, v1-v7로 식별된다. 각각의 밸리는 대응하는 셀에 저장된 내용을 결정하는 데 사용될 수 있는 하부 페이지(148), 상부 페이지(150), 및 여분 페이지(152)에 대한 고유 분할 또는 임계치에 대응할 수 있다. 분포 밸리(406) 각각은 하부 페이지(148), 상부 페이지(150), 여분 페이지(152), 대응하는 위치에서의 비트 값, 또는 이들의 조합을 결정하기 위한 것일 수 있다. 분포 밸리(406)와 고유 값 및/또는 페이지 유형(146) 간 할당 또는 상관이 다양한 비트 값 할당을 위한 지정 순서, 시퀀스, 배열, 또는 이들의 조합을 기초로 할 수 있다.
메모리 시스템(100)은 에지 타깃(edge target)(408)을 기준 점으로서 이용하고 중간 타깃(409)을 동적으로 조절할 수 있다. 에지 타깃(408)은 최하위 및 최상위 전압 레벨에 대응하는 분포 타깃(404)의 인스턴스를 나타낸다. 중간 타깃(409)은 에지 타깃(408)들 간 분포 타깃(404)의 인스턴스를 포함한다. 메모리 시스템(100)은 타깃 교정 메커니즘(178)을 구현하여, 중간 타깃(409) 또는 대응하는 분포 밸리(406)를 조절 또는 균형화할 수 있다.
도 4b는 레벨 분포 프로파일(410)을 보여준다. 레벨 분포 프로파일(410)은 특정 특정 값(가령, 도 1의 임계 전압(156))을 갖는 메모리 셀(122)의 개수를 보여주는 히스토그램일 수 있다. 레벨 분포 프로파일(410)은 메모리 셀(122)의 실제 카운트 또는 현재 상태를 나타낼 수 있다. 타깃 프로파일(402)은 레벨 분포 프로파일(410)을 제어 또는 관리하기 위해 프로세스 또는 레벨을 제어하거나 조절하기 위한 것일 수 있다. 예를 들어, 레벨 분포 프로파일(410)은 실제 프로그램-검증 상태, 실제 그레이 코드 분포, 실제 쓰기 분포, 또는 이들의 조합을 포함할 수 있다. 메모리 시스템(100)은 레벨 분포 프로파일(410)에 대한 다양한 정보를 결정 및 추적할 수 있다. 레벨 분포 프로파일(410)은 시간 및 사용에 따라 변할 수 있다. 레벨 분포 프로파일(410)은 프로세싱 레벨(154)에 대한 업데이트 또는 변경 또는 이들의 조합에 대응하는 변화 때문에, 타깃 프로파일(402)로부터 더 벗어날 수 있다. 메모리 시스템(100)은 타깃 교정 메커니즘(178)에 따라 타깃 프로파일(402)을 조절 또는 교정할 수 있다.
도 4c는 타깃 프로파일(402)의 조절, 업데이트, 또는 교정을 도시한다. 타깃 교정 메커니즘(178)을 구현하는 메모리 시스템(100)은 이전 타깃을 대체하기 위한 하나 이상의 조절된 타깃(420)을 생성할 수 있다. 도 4c에서, 이전 타깃, 가령, 도 4a에 먼저 도시된 것은 점선을 이용해 나타나고, 조절된 타깃(420)은 파선으로 나타난다. 메모리 시스템(100)은 하나 이상의 이전 타깃을 더 높거나 낮은 전압 레벨로, 가령, 도 4a-4c에 도시된 바와 왼쪽 또는 오른쪽으로 이동시키는 것을 기초로 조절된 타깃(420)을 생성할 수 있다. 메모리 시스템(100)은 타깃 조절 값(422)을 기초로 조절된 타깃(420)을 생성할 수 있다. 타깃 조절 값(422)은 대응하는 분포 타깃(404)에 대한 전압 레벨의 변화에 대한 방향, 양 또는 크기, 또는 이들의 조합을 나타낼 수 있다. 타깃 조절 값(422)은 대응하는 분포 밸리(406)에 대한 깊이, 크기, 정도 또는 양, 또는 이들의 조합에 더 대응할 수 있다. 메모리 시스템(100)은 타깃 교정 메커니즘(178)을 구현하고 타깃 프로파일(402)을 조절하여 분포 타깃(404), 분포 밸리(406), 또는 이들의 조합의 균형을 다양한 비트 값에 걸쳐 이룰 수 있다. 에러-차이 측정치(322) 및 타깃 교정 메커니즘(178)에 대한 세부사항이 이하에서 논의된다.
에러-차이 측정치(322)가 분포 밸리(406)에 대한 깊이 또는 크기의 정량화된 표현 및 이에 대응하는 RWB를 제공한다. 분포 타깃(404)의 하나 이상의 인스턴스를 조절 또는 균형화하기 위해 피드백 측정치로서 에러-차이 측정치(322)를 이용하는 타깃 교정 메커니즘(178)이 메모리 디바이스(102)의 사용 및 마모에 대한 이점을 제공하며, 이로써 메모리 셀(122)의 수명이 확장될 수 있다.
도 5a 및 5b는 스텝 교정 메커니즘(180)(도 1)에 대한 진행의 예시이다. 예시적 도시는 수직 방향 또는 축을 따르는 메모리 셀에 저장된 전하량을 나타낸다. 예시적 도시는 수평 방향 또는 축을 따르는 시간을 나타낸다.
도 5a는 스텝 교정 메커니즘(180)(도 1)을 구현하기 전 메모리 셀에 대한 프로그래밍 동작을 도시한다. 메모리 시스템(100)(도 1)은 메모리 셀 내 타깃 전하량을 저장함으로써 프로그램 또는 쓰기할 수 있고, 이때, 타깃된 크기 또는 레벨은 특정 내용 또는 비트 값을 나타낸다. 메모리 시스템(100)은 전하량을 저장함으로써 프로그램 레벨 전압(160)(도 1)을 프로그램 또는 쓰기할 수 있다. 메모리 시스템(100)은, 가령, ISPP에 대해 반복 프로세스로 전하량 증분을 메모리 셀에 저장함으로써 프로그램 또는 쓰기할 수 있다. 예를 들어, 메모리 시스템(100)은 메모리 셀에 저장된 전하를 증가시키기 위해 복수의 펄스를 반복적으로 적용할 수 있다. 메모리 시스템(100)은 프로그램 스텝(162)을 이용하여, 저장된 크기 또는 레벨이 프로그래밍 레벨 전압(160)에 매칭될 때까지 저장된 전하를 증분적으로 증가시킬 수 있다. 메모리 시스템(100)은 각각의 펄스 또는 반복에 대해 프로그램 및 검증할 수 있다. 반복은 도 5a에서 'I1', 'I2' 및 'I3'로 도시된다.
프로그래밍 시간(502)은 프로그래밍 레벨 전압(160)에 도달하는 것과 연관된 지속시간이다. 프로그래밍 시간(502)은 프로그래밍 레벨 전압(160), 각각의 반복에 대해 사용되는 프로그래밍 스텝(162), 또는 이들의 조합에 도달하는 데 필요한 반복 횟수와 연관될 수 있다. 메모리 시스템(100)은 프로그래밍 스텝(162)을 동적으로 조절 또는 교정하기 위한 스텝 교정 메커니즘(180)을 구현할 수 있다. 메모리 시스템(100)은 프로그래밍 스텝(162)을 동적으로 증가 또는 감소시킬 수 있고, 이는 프로그래밍 시간(502)을 대응하여 증가 또는 감소시킬 것이다. 스텝 교정 메커니즘(180)에 대한 세부사항이 이하에서 논의된다.
도 5b는 스텝 교정 메커니즘(180)(도 1)을 구현한 후 프로그래밍 동작을 도시한다. 비교를 위해, 이전 레벨 및 스텝, 가령 도 5a의 것이 점선으로 도시된다. 스텝 교정 메커니즘(180)이 조절된 스텝(504)을 생성할 수 있다. 조절된 스텝(504)은 프로그래밍 스텝(162)을 대체하기 위한 프로그래밍 스텝(162)의 교정 또는 변경된 인스턴스이다. 조절된 스텝(504)은 프로그래밍 스텝(162)보다 크거나 작을 수 있다.
조절된 스텝(504)을 동적으로 생성하여 프로그래밍 스텝(162)을 증가시키는 것이 감소된 프로그래밍 시간(502)의 이점을 제공한다. 프로그래밍 스텝(162)의 증가가 프로그래밍 레벨 전압(160)에 도달하는 데 필요한 펄스 수 또는 반복 횟수를 감소시킬 수 있으며, 이로써 대응하는 시간이 감소된다. 따라서 프로그래밍 스텝(162)의 동적 교정 및 조절이 메모리 시스템(100)에 대한 전체 효율을 개선한다.
덧붙여, 조절된 스텝(504)은 에러 복구 메커니즘(172)(도 1)에 대한 트리거 또는 구현을 나타내는 피드백 측정치, 또는 이의 프로세싱 결과를 기초로 생성될 수 있다. 조절된 스텝(504)을 생성할 때 에러 복구 메커니즘(172)을 트리거하는 것을 고려하는 것이 에러 측정치(166)(도 1)를 증가시키지 않고 프로그래밍 시간(502)의 감소를 제공한다. 스텝 교정 메커니즘(180)에 대한 세부사항이 이하에서 논의된다.
도 6은 본 기법의 실시예에 따르는 메모리 시스템(100)(도 1)에 대한 동작의 예시적 방법(600)을 나타내는 흐름도이다. 방법(600)은 프로세싱-레벨 교정 메커니즘(176)(도 1)의 구현을 포함할 수 있다. 프로세싱-레벨 교정 메커니즘(176)은 예를 들어 메모리 디바이스(102) 또는 호스트 디바이스(108)에 대한 프로세싱 회로, 가령, 제어기(106), 메모리 어레이(104), 호스트 디바이스(108)에 대한 프로세서, 그 내부의 일부분 또는 이들의 조합(모두 도 1)에 의해 실행 또는 구현될 수 있다. 프로세싱-레벨 교정 메커니즘(176)은 제어기(106), 메모리 어레이(104), 호스트 디바이스(108) 또는 이들의 조합의 구성을 포함할 수 있다. 프로세싱-레벨 교정 메커니즘(176)은 제어기(106), 메모리 어레이(104), 호스트 디바이스(108) 또는 이들의 조합에 저장되거나 이를 이용해 액세스되는 하나 이상의 방법, 프로세스, 단계 또는 명령, 정보, 또는 이들의 조합을 더 포함할 수 있다.
프로세싱-레벨 교정 메커니즘(176)은 프로세싱 레벨(154)(도 1), 가령, 읽기 레벨 전압(158)(도 1)에 대한 것을 조절하도록 사용 또는 구현될 수 있다. 프로세싱-레벨 교정 메커니즘(176)은 샘플링 트리거(620)를 결정 또는 식별하는 것을 기초로 시작될 수 있다. 샘플링 트리거(620)는 프로세싱-레벨 교정 메커니즘(176)을 큐(cue) 또는 시작하는 데 이용되는 상태, 신호, 구성, 또는 결과를 나타낼 수 있다. 예를 들어, 샘플링 트리거(620)는 호스트 디바이스(108)(도 1)로부터의 신호 또는 명령어, 가령, 인터럽트 서비스 루틴을 포함할 수 있다. 또한 예를 들어, 샘플링 트리거(620)는 메모리 디바이스(102), 메모리 시스템(100), 또는 이들의 조합의 특정 상태, 가령, 파워 온 또는 오프를 포함할 수 있다. 또한 예를 들면, 샘플링 트리거(620)는 특정 개수의 동작 또는 프로세스, 딜레이 시간, 또는 이들의 조합을 포함할 수 있다.
블록(602)에서, 프로세싱-레벨 교정 메커니즘(176)은 메모리 셀(122)(도 1)의 그룹을 위한 메모리 페이지(124)(도 1) 중 전체-프로그램된 것을 프로세싱되도록 선택할 수 있다. 선택된 페이지는 셀의 유형, 가령, SLC, MLC, 및 TLC을 기초로 하는 하나 이상의 페이지 유형에 대응할 수 있다. 선택된 페이지는 워드-라인 그룹(144) 및 워드 라인 중 하나에 더 대응할 수 있다. 선택은 랜덤, 반복, 또는 이들의 조합으로 이뤄질 수 있다. 결국, 페이지 선택이 각각의 외부 반복에 대한 각각의 다이 내 메모리 블록(126)(도 1) 중 하나를 랜덤하게 선택하는 것을 기초로 랜덤일 수 있다. 또한, 메모리 시스템(100)은 전체적으로 프로그램된 메모리 블록(126) 중 하나를 선택할 수 있다. 메모리 셀(122)의 그룹의 선택이 다양한 방식으로 이뤄질 수 있다.
예를 들어, 메모리 시스템(100)은 메모리 페이지를 포함하는 메모리 블록(126) 중 하나를 랜덤하게 선택하는 것을 기초로 메모리 페이지(124) 중 하나를 랜덤하게 선택할 수 있다. 메모리 시스템(100)은 대응하는 워드-라인 그룹에 대해 이용 가능한 하부 페이지(148)(도 1), 상부 페이지(150)(도 1), 여분 페이지(152)(도 1), 또는 이들의 조합에 대응하는 읽기 레벨 전압(158)으로 선택된 페이지(124)를 반복적으로 샘플링할 수 있다. 메모리 시스템(100)은 각각의 워드-라인 그룹에 대한 모든 페이지 유형의 모든 트림 또는 프로세싱 레벨(154)이 동일한 페이지에 대해 샘플링될 수 있도록 선택할 수 있다. 또한 예를 들어, 메모리 시스템(100)은 선택된 페이지를 포함하는 메모리 블록(126) 중 하나를 랜덤하게 선택하는 것을 기초로 페이지를 랜덤하게 선택할 수 있다. 블록이 선택되면, 페이지가 각각의 샘플링 프로세스에 대해 랜덤하게 선택될 수 있다. 다시 말하면, 프로세싱-레벨 교정 메커니즘(176)은 각각의 워드-라인 그룹의 상이한 페이지 유형의 트림이 랜덤 페이지에 대해 샘플링될 수 있도록 선택할 수 있다.
블록(604)에서, 프로세싱-레벨 교정 메커니즘(176)은 메모리 페이지(124)에 대응하는 프로세싱 레벨(154) 중 하나 이상을 트림하거나 결정할 수 있다. 예를 들어, 제어기(106), 호스트 디바이스(108) 또는 이들의 조합이 레벨 레지스터(164)(도 1)를 액세스하여 프로세싱 레벨(154) 중 하나 이상을 트림 또는 결정할 수 있다. 더 구체적인 예시를 들면, 제어기(106)는 선택된 페이지에 따라 저장된 정보를 액세스하기 위한 하부 페이지(148), 상부 페이지(150), 여분 페이지(152), 또는 이들의 조합에 대응하는 읽기 레벨 전압(158)을 결정할 수 있다.
블록(606)에서, 프로세싱-레벨 교정 메커니즘(176)은 하나 이상의 오프셋 프로세싱 값을 제공할 수 있다. 또한 예를 들어, 제어기(106), 호스트 디바이스(108), 또는 이들의 조합이 읽기 레벨 전압(158) 및 오프셋 측정치(320)(도 3)를 기초로 제1 오프셋 레벨(316)(도 3), 제2 오프셋 레벨(318)(도 3), 또는 이들의 조합을 계산할 수 있다. 더 구체적인 예를 들면, 제어기(106)는 여기에 내장된 메모리에 저장된, 호스트로부터 수신된, 메모리 어레이(104) 상에 저장된, 또는 이들의 조합으로 존재하는 오프셋 측정치(320)를 액세스할 수 있다. 제어기(106)는 오프셋 측정치(320)를 읽기 레벨 전압(158)으로 더하는 것을 기초로, 또는 읽기 레벨 전압(158)으로부터의 오프셋 측정치(320)에 따라 하나의 방향으로 이동시키는 것을 기초로 제1 오프셋 레벨(316)을 계산할 수 있다. 제어기(106)는 오프셋 측정치(320)를 읽기 레벨 전압(158)에서 빼는 것을 기초로, 또는 읽기 레벨 전압(158)으로부터의 오프셋 측정치(320)에 따라 반대 방향으로 이동시키는 것을 기초로 제2 오프셋 레벨(318)을 계산할 수 있다.
블록(608)에서, 프로세싱-레벨 교정 메커니즘(176)은 하나 이상의 레벨에 따라 샘플링할 수 있다. 예를 들어, 제어기(106), 호스트 디바이스(108), 또는 이들의 조합은 프로세싱 레벨(154) 중 하나 이상 또는 이의 오프셋에 대응하는 하나 이상의 결과, 가령, 제1 오프셋 레벨(316), 제2 오프셋 레벨(318) 또는 이들의 조합과 함께 읽기 레벨 전압(158)를 결정할 수 있다.
더 구체적인 예시를 들면, 제어기(106), 호스트 디바이스(108), 또는 이들의 조합이 선택된 페이지의 메모리 셀(122)에 대응하는 데이터를 프로세싱하기 위한 읽기 레벨 전압(158)을 이용해 중앙 결과(304)(도 3)를 결정할 수 있다. 메모리 시스템(100)은 중앙 결과(304)를 이용해 저장된 데이터를 읽을 수 있다. 메모리 시스템(100)은 읽기 레벨 전압(158)에 대응하는 임의의 에러를 프로세싱하기 위해 ECC를 이용해 액세스되는 데이터에 대해 에러 보정/검출 메커니즘을 구현할 수 있다. 메모리 시스템(100)은 읽기 레벨 전압(158)에 대응하는 에러 카운트(168)(도 1)를 결정하여 중앙 결과(304)를 결정할 수 있다.
계속 예시를 들면, 메모리 시스템(100)은 마찬가지로 제1 오프셋 레벨(316), 제2 오프셋 레벨(318), 또는 이들의 조합에 대응하는 에러 카운트(168)를 계산할 수 있다. 메모리 시스템(100)은 제1 오프셋 결과(306)(도 3)를 제1 오프셋 레벨(316)을 이용해 액세스되는 데이터로부터 도출된 에러 카운트(168)로서 결정할 수 있다. 메모리 시스템(100)은 제2 오프셋 결과(308)(도 3)를 제2 오프셋 레벨(318)을 이용해 액세스되는 데이터로부터 도출된 에러 카운트(168)로서 결정할 수 있다. 메모리 시스템(100)은 동일한 읽기 임계 밸리 또는 동일한 MLBi 트림 레지스터로부터 4번의 읽기를 수행할 수 있다.
메모리 시스템(100)은 하나 이상의 에러 카운트 또는 결과, 대응하는 레벨, 또는 이들의 조합을 저장할 수 있다. 메모리 시스템(100)은 중앙 결과(304), 제1 오프셋 결과(306), 제2 오프셋 결과(308), 대응하는 프로세싱 레벨, 또는 이들의 조합을 제어기(106)의 내장 메모리, 메모리 어레이(104), 호스트 디바이스(108) 또는 이들의 조합에 저장할 수 있다.
블록(610)에서, 프로세싱-레벨 교정 메커니즘(176)은 결과를 평가하여 프로세싱 레벨(154)을 조절 또는 교정할 수 있다. 예를 들어, 메모리 시스템(100)은 중앙 결과(304), 제1 오프셋 결과(306), 제2 오프셋 결과(308) 또는 이들의 조합을 기초로 레벨-교정 피드백 측정치(302)(도 3)를 계산함으로써 결과를 평가할 수 있다. 메모리 시스템(100)은 레벨 조정 측정치(622), 에러-차이 측정치(322)(도 3) 또는 이들의 조합을 포함하는 레벨-교정 피드백 측정치(302)를 계산할 수 있다. 레벨-교정 피드백 측정치(302)는 제1 오프셋 결과(306)와 제2 오프셋 결과(308) 중 더 큰 값, 제1 오프셋 결과(306)와 제2 오프셋 결과(308)의 차이 값과 중앙 결과(304) 중 더 큰 값, 또는 이들의 조합을 나타낼 수 있다.
더 구체적인 예를 들면, 메모리 시스템(100)은 중앙 결과(304), 제1 오프셋 결과(306), 제2 오프셋 결과(308) 또는 이들의 조합의 비교의 지시자 또는 이를 기초로 하는 결과로서 레벨 조절 측정치(622)를 결정할 수 있다. 더 구체적인 예를 들면, 메모리 시스템(100)은 제1 오프셋 결과(306)와 제2 오프셋 결과(308) 간 차이로서, 또는 제1 오프셋 결과(306)와 제2 오프셋 결과(308) 중 어느 것이 더 큰지에 대한 지시자로서, 레벨 조절 측정치(622)를 결정할 수 있다.
더 구체적인 예를 들면, 메모리 시스템(100)은 중앙 결과(304), 제1 오프셋 결과(306) 및 제2 오프셋 결과(308) 중 둘 이상의 조합을 기초로 에러-차이 측정치(322)를 계산할 수 있다. 더 구체적인 예시로서, 메모리 시스템(100)은 제1 오프셋 결과(306)와 중앙 결과 간 차이, 제2 오프셋 결과(308)와 중앙 결과(304) 간 차이, 또는 이들의 조합으로서 에러-차이 측정치(322)를 계산할 수 있다.
예를 계속 들면, 메모리 시스템(100)은 중앙 결과(304)와 제1 오프셋 결과(306)와 제2 오프셋 결과(308)의 조합, 가령, 이들의 수학적 미분, 로직 조합, 또는 통계적 표현 또는 평균 간 차이로서, 에러-차이 측정치(322)를 더 계산할 수 있다. 프로세싱-레벨 교정 메커니즘(176)은 블록(608)에서 표현되는 샘플링 단계로부터 도출되는 에러 카운트에 따라 에러-차이 측정치(322)를 계산하도록 구성된 방법, 수학식, 프로세스, 회로, 또는 이들의 조합을 포함할 수 있다.
블록(612)에서, 프로세싱-레벨 교정 메커니즘(176)은 프로세싱 레벨(154)에 대한 업데이트를 결정할 수 있다. 메모리 시스템(100)은 다양한 결과를 기초로 업데이트된 레벨(624)을 생성할 수 있다. 업데이트된 레벨(624)은 읽기 레벨 전압(158)에 대한 새로운 조절 또는 교정된 값이다. 업데이트된 레벨(624)은 읽기 레벨 전압(158)의 이전에 사용된 인스턴스를 대체할 수 있다. 메모리 시스템(100)은 다양한 방식으로 업데이트된 레벨(624)을 생성할 수 있다. 예를 들어, 제어기(106), 호스트 디바이스(108), 또는 이들의 조합은 다양한 결과를 기초로 업데이트된 레벨(624)을 생성할 수 있다. 더 구체적인 예시에서, 메모리 시스템(100)은 업데이트된 레벨(624)을, 에러 카운트(168)의 최하위 인스턴스에 대응하는 읽기 레벨 전압(158), 제1 오프셋 레벨(316) 또는 제2 오프셋 레벨(318)로서 생성할 수 있다. 또한 더 구체적인 예시로서, 메모리 시스템(100)은 읽기 레벨 전압(158), 제1 오프셋 레벨(316) 및 제2 오프셋 레벨(318)의 가중 평균의 결과로서 업데이트된 레벨(624)을 생성할 수 있다. 각각의 가중 평균은 에러 카운트(168) 또는 결과의 대응하는 인스턴스를 기초로 한다.
또한 예를 들어, 테스트 레벨 중 둘 이상이 동일한 비트 에러 율을 도출할 때, 메모리 시스템(100)은 업데이트된 레벨(624)로서 하위 임계 값을 선택할 수 있다. 더 구체적인 예를 들면, 읽기 레벨 전압(158) 및 하위 오프셋 레벨 모두가 동일한 에러 율에 대응하는 경우, 메모리 시스템(100)은 하위 오프셋 레벨을 업데이트된 레벨(624)이도록 선택할 수 있다.
또한 예를 들어, 제어기(106), 호스트 디바이스(108), 또는 이들의 조합은 다양한 결과에 따라 프로세싱 레벨(154)의 조절을 기초로 업데이트된 레벨(624)을 생성할 수 있다. 메모리 시스템(100)은, 가령, 조절 측정치(622)에 따라 읽기 레벨 전압(158)을 이동시키거나 증분시킴으로써, 샘플을 생성하도록 사용되는 레벨 조절 측정치(622) 및 읽기 레벨 전압(158)을 기초로 업데이트된 레벨(624)을 생성할 수 있다.
또한 예를 들어, 제어기(106), 호스트 디바이스(108) 또는 이들의 조합은, 에러-차이 측정치(322)를 기초로, 가령, 업데이트된 레벨(624)을 다양한 읽기 레벨 및 대응하는 에러 카운트, 이들의 과거 또는 이전 인스턴스 또는 이들의 조합을 기초로 하위 추정된 에러 카운트에 대응하는 레벨의 투사 또는 추정으로서 계산함으로써, 업데이트된 레벨(624)을 생성할 수 있다. 더 구체적인 예시를 들면, 메모리 시스템(100)은 곡선 맞춤(curve fitting) 또는 추정 함수, 기울기 계산, 또는 이들의 조합을 이용해 최소 에러 카운트에 대응하는 레벨을 추정할 수 있다.
메모리 시스템(100)은 업데이트된 레벨(624)을 생성하여 메모리 페이지(124)에 대한 데이터를 차후에 프로세싱할 수 있다. 메모리 시스템(100)은 제1 오프셋 결과(306)와 제2 오프셋 결과(308)의 균형을 이루기 위해 업데이트된 레벨(624)을 더 생성할 수 있다. 메모리 시스템(100)은 제1 오프셋 결과(306)와 제2 오프셋 결과(308)의 대응하는 인스턴스의 크기가 유사하거나 서로 임계 범위 내에 있도록 도 4b에 도시된 바와 같이 읽기 레벨 전압(158)을 최소 에러 카운트로 센터링하려 하는 업데이트된 레벨(624)을 생성할 수 있다.
메모리 시스템(100)은 샘플링 프로세스를 위해 사용되는 프로세싱 레벨(154)이 센터링되는지 여부를 결정할 수 있다. 예를 들어, 메모리 시스템(100)은 읽기 레벨 전압(158)의 추세, 패턴 또는 거동을 기초로 센터링된 상태(626)를 생성할 수 있다. 센터링된 상태(626)는 읽기 레벨 전압(158) 또는 읽기 레벨 전압(158)에 대한 조절 또는 업데이트가 도 3c에 도시된 바와 같이 최소 에러 카운트에 있거나 그 근처에 있음을 가리키는 결정 또는 결과이다.
메모리 시스템(100)은 다양한 방식으로 센터링된 상태(626)을 생성할 수 있다. 예를 들어, 센터링된 상태(626)는 업데이트된 레벨(624)이 읽기 레벨 전압(158)과 동일하거나 임계 크기만큼 차이나는 경우 이용되는 읽기 레벨 전압(158)이 센터링됨을 가리킬 수 있다. 또한 예를 들면, 센터링된 상태(626)는 현재 반복구간 및 이전 또는 반복구간의 에러 카운트 또는 결과의 비교를 기초로 현재 반복구간 이전의 읽기 레벨 전압(158)이 최하위임을 가리킬 수 있다. 센터링된 상태(626)는 읽기 레벨 전압(158), 업데이트된 레벨(624), 또는 이들의 조합이 프로세싱 레벨(154)의 타깃된 또는 희망 인스턴스에 있는 것이다.
또한 예를 들면, 메모리 시스템(100)은 이전 변경 방향(628) 및 현재 변경 방향(630)을 기초로 센터링된 상태(626)를 생성할 수 있다. 이전 변경 방향(628)은 읽기 레벨 전압(158)의 이전 인스턴스에 대한 패턴, 추세, 거동, 또는 이들의 조합이다. 이전 변경 방향(628)은 현재 반복구간 전에 읽기 레벨 전압(158)의 하나 이상의 인스턴스에 대한 기울기 또는 부호를 포함할 수 있다. 메모리 시스템(100)은 프로세싱 레벨(154)의 적어도 하나의 이전 인스턴스 및 프로세싱 레벨(154)의 현재 인스턴스를 기초로 이전 변경 방향(628)을 계산할 수 있다.
현재 변경 방향(630)은 읽기 레벨 전압(158), 업데이트된 레벨(624), 또는 이들의 조합의 현재 인스턴스에 대한 패턴, 추세, 거동, 또는 이들의 조합이다. 이전 변경 방향(628)은 읽기 레벨 전압(158)의 이전 인스턴스에 대한 읽기 레벨 전압(158), 또는 읽기 레벨 전압(158)과 업데이트된 레벨(624) 간 기울기 또는 부호를 포함할 수 있다. 메모리 시스템(100)은 현재 읽기 레벨 전압(158) 및 업데이트된 레벨(624)을 기초로 현재 변경 방향(630)을 계산할 수 있다.
메모리 시스템(100)은 현재 변경 방향(630)과 이전 변경 방향(628)의 비교를 기초로 센터링된 상태(626)를 생성할 수 있다. 메모리 시스템(100)은 현재 변경 방향(630) 및 이전 변경 방향(628)이 반복구간에 걸친 에러 카운트(168)에 대한 패턴 또는 거동의 변경을 가리킬 때 센터링된 상태(626)를 생성할 수 있다. 예를 들어, 메모리 시스템(100)은 현재 변경 방향(630)과 이전 변경 방향(628)이 상이할 때, 가령, 샘플링 결과가 도 3c에 도시된 최소 점 근방 또는 이를 통과할 때, 센터링된 상태(626)를 생성할 수 있다.
메모리 시스템(100)은 센터링된 상태(626)를 생성하기 위해 다른 파라미터를 더 사용할 수 있다. 예를 들어, 메모리 시스템(100)은 중앙 결과(304)와 제1 결과(306) 간, 중앙 결과(304)와 제2 결과(308) 간, 제1 결과(306)와 제2 결과(308) 간 하나 이상의 기울기, 또는 이들의 조합을 기초로 센터링된 상태(626)를 생성할 수 있다. 또한 예를 들어, 메모리 시스템(100)은 시간의 흐름에 따르는 조절 또는 교정에 대응하는 다양한 기울기 또는 결과의 패턴 또는 추세를 기초로 센터링된 상태(626)를 생성할 수 있다. 메모리 시스템(100)은 센터링된 상태(626)를 오프셋 계산, 샘플링, 평가, 및 업데이트 단계로부터의 빠져 나오기(break)위한 플래그로서 이용할 수 있다. 대신, 메모리 시스템(100)은 최종 업데이트된 레벨(624)을 평가된 메모리 페이지(124)에 대응하는 레벨 레지스터(164)에 저장할 수 있다.
프로세싱-레벨 교정 메커니즘(176)의 차후 구현에서, 메모리 시스템(100)이 읽기 레벨 전압(158)과 업데이트된 레벨(624)의 초기 비교를 기초로 센터링된 상태(626)를 이동시킬 수 있다. 읽기 레벨 전압(158)과 업데이트된 레벨(624)이 동일하거나 지정 임계치 내에 있을 때 메모리 시스템(100)은 센터링된 상태(626)를 유지한다. 메모리 시스템(100)은 읽기 레벨 전압(158)과 업데이트된 레벨(624)이 상이하거나 서로 지정 임계치만큼만 차이날 때 센터링된 상태(626)를 취소 또는 제거할 수 있다.
메모리 시스템(100)은 업데이트된 레벨(624), 센터링된 상태(626), 또는 이들의 조합을 이용해 프로세싱 레벨(154) 또는 임계치 각각을 센터링되게 유지할 수 있다. 업데이트된 레벨(624)은 메모리 시스템(100)의 동작 동안 비트 에러 율을 최소화한다는 개선된 성능 이점을 제공한다. 업데이트된 레벨(624) 및 프로세싱-레벨 교정 메커니즘(176)은 읽기 레벨 전압(158)을 동적으로 업데이트하여 메모리 디바이스(102)의 제작, 초기 구성, 및 배치 후 의도된 사용 동안 임의의 변화 또는 마모에 대해 조절 및 교정할 수 있다.
블록(614)에서, 프로세싱-레벨 교정 메커니즘(176)은 이득 제어(632)를 계산할 수 있다. 이득 제어(632)는 읽기 레벨 전압(158)과 제1 오프셋 레벨(316), 제2 오프셋 레벨(318), 또는 이들의 조합 간 간격을 나타내는 오프셋 측정치(320)를 동적으로 조절하도록 구성된 파라미터이다. 이득 제어(632)는 오프셋 측정치(320)를 제어함으로써 중앙 샘플과 낮은/높은 샘플 간 공간 또는 간격을 효과적으로 넓히거나 좁히기 위해 프로세싱-레벨 교정 메커니즘(176)에 의해 사용될 수 있다. 최적이 아닌 전압에 설정된 읽기 레벨 전압(158)으로부터 이탈 또는 오프셋이 에러 카운트(168)를 증가시킬 수 있다. 따라서, 이득 제어(632)는 복구 한계(634)를 기초로 계산되어, 제1 오프셋 결과(306)와 제2 오프셋 결과(308)가 복구 한계(634) 미만으로 유지되도록 할 것이다.
제어기(106), 호스트 디바이스(108) 또는 이들의 조합은 피드백 측정치(302), 가령, 에러-차이 측정치(322)를 기초로 이득 제어(632)를 계산할 수 있다. 메모리 시스템(100)은 다양한 방식으로 이득 제어(632)을 계산할 수 있다. 예를 들어, 메모리 시스템(100)은 지정 임계 값 또는 범위에 대한 에러-차이 측정치(322)의 비교를 기초로 반복구간 당 하나의 증분을 증분적으로 증가 또는 감소시키는 것을 기초로, 이득 제어(632)를 계산할 수 있다. 또한 예를 들어, 메모리 시스템(100)은 에러-차이 측정치(322)의 대응하는 값에 따라 이득 제어(632)에 대한 다양한 가능한 값을 포함하는 지정 리스트 또는 표에 따라 이득 제어(632)를 계산할 수 있다. 또한 예를 들어, 메모리 시스템(100)은 에러-차이 측정치(322)를 이용하는 지정 수식을 이득 제어(632)를 계산하기 위한 입력으로서 이용할 수 있다.
더 구체적 예를 들면, 메모리 시스템(100)은 에러-차이 측정치(322)가 지정 임계치를 초과 또는 충족하는 판독의 횟수를 결정할 수 있다. 메모리 디바이스(100)는, 가령, 다이에 대한 에러-차이 측정치(322)의 수학적 조합, 통계적 조합, 또는 로직 조합을 기초로, 다이에 대한 에러-차이 측정치(322)를 조합 또는 집성할 수 있다. 조합 또는 집성된 측정치가 이득 제어(632)를 계산하기 위한 지정 임계치, 리스트 또는 테이블, 또는 수식의 입력으로서 사용될 수 있다.
이득 제어(632)는 타깃 프로파일(402)(도 4)에 따라 계산될 수 있다. 이득 제어(632)는 반복적으로 더 계산될 수 있다. 이득 제어(632)는 지정 수식, 테이블, 리스트, 임계치 또는 범위, 메커니즘 또는 이들의 조합에 의해 나타내어지는 이득 제어(632)와 레벨 분포 프로파일(410)(도 4) 간 관계에 따라 계산될 수 있다. 이득 제어(632)는, 지정 수식, 테이블, 리스트, 임계치 또는 범위, 메커니즘, 또는 이의 조합으로 나타내어지는 샘플링된 데이터와의 관계에 따라 분포 밸리(406)(도 4)에 영향을 미치도록 계산될 수 있다. 이득 제어(632)는 에러-차이 측정치(322)에 대해 최소 값과 최대 값 간 샘플을 갖도록 계산될 수 있다. 또한, 이득 제어(632)는 복구 한계(634)를 기초로 계산될 수 있다. 보원 한계(634)는 에러 복구 메커니즘(172)(도 1)에 대한 데이터의 복구성에 대한 제약이다. 복구 한계(634)는 ECC를 기초로 할 수 있다. 복구 한계(634)는 메모리 시스템(100)이 핸들링 또는 보정할 수 있는 에러의 수를 기술할 수 있다.
메모리 시스템(100)은 이득 제어(632)를 기초로 오프셋 측정치(320)를 계산할 수 있다. 메모리 시스템(100)은 이득 제어(632)에 따라 오프셋 측정치를 이득 제어(632)와 조합하거나 이를 조절하는 것을 기초로 오프셋 측정치(320)를 조절 또는 업데이트할 수 있다. 예를 들어, 메모리 시스템(100)은 이득 제어(632)를 오프셋 크기 또는 계수로 이용할 수 있다. 또한 예를 들어, 메모리 시스템(100)은 이득 제어(632)에 의해 특정된 증분 또는 방향의 수에 따라 오프셋 측정치(320)를 증가 또는 감소시킬 수 있다. 또한 예를 들어, 메모리 시스템(100)은 이득 제어(632)를 오프셋 측정치(320)를 계산하기 위한 지정된 테이블 또는 수식의 입력으로서 이용할 수 있다.
오프셋 측정치(320), 이득 제어(632), 또는 이의 조합의 계산, 조절, 또는 업데이트가 센터링된 상태(626)를 기초로 할 수 있다. 다이의 모든 트림이 교정될 때, 최소 개수 또는 임계 개수의 샘플이 취해졌을 때, 또는 이의 조합에서, 오프셋 측정치(320), 이득 제어(632), 또는 이들의 조합의 계산, 조절, 또는 업데이트가 발생할 수 있다. 샘플링 결과, 업데이트된 레벨(624), 센터링된 상태(626), 이득 제어(632), 레벨-교정 피드백 측정치(302), 이의 프로세싱 또는 통계적 결과, 또는 이들의 조합이 메모리 디바이스(102), 호스트 디바이스(108), 또는 이들의 조합에 저장될 수 있다. 저장된 정보는 프로세싱-레벨 교정 메커니즘(176)의 반복구간 또는 구현에 걸쳐 액세스될 수 있다.
예를 들어, 프로세싱-레벨 교정 메커니즘(176)이 하나 이상의 루프를 이용할 수 있다. 더 구체적인 예시를 들면, 반복구간이 프로세싱-레벨 교정 메커니즘(176)과 연관된 모든 다이의 모든 읽기 레벨 트림의 하나의 샘플에 대응할 수 있다. 읽기 레벨 전압(158)의 업데이트 또는 조절이 지정 임계치에 도달하는 반복구간 카운트를 기초로 발생할 수 있다. 각각의 트림이 지정 횟수로 샘플링된 후 업데이트를 얻을 수 있다. 각각의 다이 또는 메모리 어레이(104)의 전체 세트에 따라 반복구간이 더 반복될 수 있다.
도 6은 예를 들어 외부 루프 및 내부 루프를 보여준다. 메모리 시스템(100)은 외부 루프에 대한 다이 또는 메모리 페이지를 선택할 수 있다. 내부 루프는, 선택된 트림 또는 페이지 유형에 대해 읽기 레벨 전압(158)을 샘플링하고, 결과를 평가하며, 업데이트를 결정할 수 있다. 외부 루프는 한 지속시간 동안 복수의 상이한 블록으로부터의 내부 루프로부터의 결과를 비닝(bin)할 수 있다. 충분한 내부 루프 측정이 완료되면, 외부 루프는 읽기 레벨 전압(158)을 조절, 또는 교정할 수 있다. 내부 루프, 외부 루프, 또는 둘 모두가 함께 작업하는 것이, 선택된 페이지 또는 다이 상의 각각의 페이지 유형(146)에 대해 센터링된 상태(626) 까지 읽기 레벨 전압(158)을 반복적으로 조절할 수 있다.
또한 예를 들어, 프로세싱-레벨 교정 메커니즘(176)이 한 지속시간 동안 복수 회 구현될 수 있다. 프로세싱-레벨 교정 메커니즘(176)의 구현 각각이 임의의 개별 내부 반복 프로세스와 함께 또는 없이, 반복될 수 있다. 메모리 시스템(100)은 프로세싱-레벨 교정 메커니즘(176)의 구현 각각에 대한 또는 이로부터 도출된 정보를 저장할 수 있다.
메모리 시스템(100)은 그 밖의 다른 메커니즘, 가령, 타깃 교정 메커니즘(178)(도 1), 스텝 교정 메커니즘(180)(도 1), 또는 이들의 조합에 의해, 반복구간에 걸친 또는 액세스되기 위한 다양한 정보를 저장할 수 있다. 예를 들어, 메모리 시스템(100)은 샘플링 페이지 동안 또는 센터링된 상태(626) 후, 또는 이들의 조합에서, 각각의 워드-라인 그룹(144)의 각각의 페이지 유형(146)에 대해 에러 카운트(168) 또는 프로세싱 결과 또는 이의 표현을 저장할 수 있다. 또한 예를 들어, 메모리 시스템(100)은 이득 제어(632), 에러-차이 측정치(322), 또는 이들의 조합을 저장할 수 있다. 메모리 시스템(100)은 프로세싱-레벨 교정 메커니즘(176) 또는 이의 부분 또는 반복구간 후 또는 이를 기초로, 타깃 교정 메커니즘(178), 스텝 교정 메커니즘(180), 또는 이들의 조합을 구현할 수 있다.
메모리 시스템(100)은 프로세싱-레벨 교정 메커니즘(176)을 이용하여 프로세싱 레벨(154)을 초기화하거나, 프로세싱 레벨(154)을 동적으로 교정하거나, 이들의 조합을 할 수 있다. 메모리 시스템(100)은, 메모리 디바이스(102)의 배치나 의도된 사용 전에, 메모리 디바이스(102)의 제조 또는 구성의 일부로서 프로세싱-레벨 교정 메커니즘(176)을 구현할 수 있다. 메모리 시스템(100)은 또한 메모리 디바이스(102)의 배치 또는 의도된 사용 동안 그리고 메모리 디바이스(102)의 제조 또는 구성 후, 프로세싱-레벨 교정 메커니즘(176)을 동적으로 구현하고 프로세싱 레벨(154)을 동적으로 업데이트할 수 있다.
예를 들어, 메모리 시스템(100)은 제조 레벨(640) 너머로 읽기 레벨 전압(158)을 초기화하고 조절할 수 있다. 제조 레벨(640)은 메모리 디바이스(102)의 제조를 위해 초기에 제공되거나 구성된 프로세싱 레벨(154)의 하나의 인스턴스, 가령, 읽기 레벨 전압(158)일 수 있다. 제조 레벨(640)은 실제 거동 또는 특성 대신 메모리 셀(122)의 이상적인 또는 추정 거동 또는 특성을 설명하는 공장 디폴트(factory default) 또는 구성 디폴트(configuration default)일 수 있다.
메모리 시스템(100)은 방법(600)을 이용하여, 메모리 디바이스(102)의 각각의 인스턴스에 대해 제조 레벨(640)을 최적 읽기 레벨 전압(158)까지 조절할 수 있다. 메모리 시스템(100)은 제조 레벨 (640)부터 시작하여, 트림과 관련된 보완 레벨을 선택하고, 트림하고, 계산하고, 결과를 평가하고, 앞서 기재된 바와 같이 업데이트를 결정할 수 있다. 센터링된 상태(626)에 대응하는 레벨이 배치, 판매, 배송, 또는 의도된 사용을 위한 읽기 레벨 전압(158)의 초기화된 인스턴스일 수 있다.
초기화를 위해, 메모리 시스템(100)은 메모리 어레이(104)의 제조 동안 초기에 결정된 프로세싱 레벨(154)을 나타내기 위한 제조 레벨(640)을 식별할 수 있다. 메모리 시스템(100)은 제조 레벨(640)의 식별을 앞서 기재된 단계들을 구현하기 위한 샘플링 트리거(620)로서 이용할 수 있다.
메모리 시스템(100)은 메모리 어레이(104)의 사용 또는 배치 전 그리고 업데이트된 레벨(624)을 동적으로 생성하기 전에 프로세싱 레벨(154)을 초기에 교정할 수 있다. 메모리 시스템(100)은 선택된 메모리 셀(122)에 대해 제조 레벨(640)을 이용해 중앙 결과(304)를 초기에 결정할 수 있다. 메모리 시스템(100)은 제조 레벨(640)과 상이한 오프셋 레벨을 이용해 오프셋 결과를 초기에 결정할 수 있다. 메모리 시스템(100)은 중앙 결과(304) 및 오프셋 결과에 따른 제조 레벨(640)의 조정을 기초로 프로세싱 레벨(154)을 생성하고, 메모리 어레이(104)의 배치 또는 의도된 사용을 위해 제조 레벨(640)을 대체할 수 있다. 메모리 시스템(100)은 배치 후 구현을 위해 설계된 속도보다 빠른 속도로 앞서 기술된 동작들을 구현하는 것에 기초하여 초기화할 수 있다.
초기화 및 배치 후, 및 의도된 사용 동안, 메모리 시스템(100)은 프로세싱 레벨(154)을 동적으로 교정 및 최적화하기 위해 프로세싱-레벨 교정 메커니즘(176)을 더 구현할 수 있다. 메모리 시스템(100)은 메모리 디바이스(102), 프로세싱-레벨 교정 메커니즘(176) 또는 이들의 조합과 연관된 다양한 데이터 및 통계치를 계속 추적할 수 있다. 메모리 시스템(100)은 프로세싱 레벨(154)을 지속적으로 교정하기 위해 추적된 데이터를 이용할 수 있다.
읽기 레벨 전압(158)의 동적 교정이 메모리 디바이스(102)에 대한 전체 BER을 개선하는 이점을 제공한다. 프로세싱-레벨 교정 메커니즘(176)에 의해 개시되는 각각의 샘플이 특정 다이 및 특정 페이지 유형 임계치에 대한 데이터를 반환할 수 있다. 반환된 정보가 이들 동작 중 다수에 대한 폐쇄 루프 시스템에서 집성되고 피드백될 수 있다.
읽기 레벨 전압(158)의 동적 교정이 많은 수의 다이 또는 트림의 주기적인 읽기 레벨 교정을 감소시키는 이점을 제공한다. 이는 교정 시, 메모리 디바이스(102)의 성능의 갑작스러운 또는 급격한 감소를 제거 또는 줄일 것으로 기대된다.
읽기 레벨 전압(158)의 동적 교정 및 읽기 레벨 전압(158)을 센터링된 값으로 유지하는 것이 다른 경우라면 인-라인-하드를 이용하는 보통의 ECC가 데이터를 보정할 수 없을 에러 복구 메커니즘(172)에 대한 트리거 이벤트를 감소시키는 이점을 제공한다. 트리거 이벤트의 감소는 메모리 디바이스(102)의 성능도 전반적으로 더 개선할 수 있다.
이득 제어(632)는 읽기 레벨 전압(158)을 센터링하는 데 추가 정확도를 제공한다. 이득 제어(632)는 오프셋 측정치(320)를 정확히 설정하여, 오프셋 레벨과 읽기 레벨 전압(158) 간 공간(spacing)을 개선시킬 수 있도록 사용될 수 있다. 개선된 공간은 복구 한계(634) 내에 있으면서 에러 카운트의 추적을 개선할 수 있다.
설명 목적으로, 도 6에 도시된 흐름도가 앞서 예시로 든 시퀀스와 프로세스를 이용해 기재되었다. 그러나 방법(600)은 상이할 수 있음이 자명하다. 예를 들어, 블록(614)에서 나타난 이득 제어의 계산이 반복 프로세스일 수 있다. 또한 예시로서, 이득 제어는 블록(610)에서 나타나는 바와 같이 결과 평가 전 또는 결과 평가의 일부로서 계산될 수 있다. 또한 예를 들어, 방법(600)은 블록(612)에서 프로세싱 레벨 업데이트, 블록(614)에서의 이득 제어의 계산, 또는 이들의 조합을 트리거하기 위한 투표 시스템을 더 포함할 수 있다.
도 7은 본 기법의 실시예에 따르는 메모리 시스템(100)(도 1)에 대한 동작의 또 다른 예시적 방법(700)을 나타내는 흐름도이다. 방법(700)은 타깃 교정 메커니즘(178)(도 1)의 구현을 포함할 수 있다. 타깃 교정 메커니즘(178)은 프로그램 검증(PV) 타깃 위치를 지속적으로 수정할 수 있다.
타깃 교정 메커니즘(178)은 예를 들어 메모리 디바이스(102) 또는 호스트 디바이스(108)에 대한 프로세싱 회로, 가령, 제어기(106), 메모리 어레이(104)(가령, 다이 또는 셀), 호스트 디바이스(108)에 대한 프로세서, 또는 이들의 조합(모두 도 1)에 의해 실행 또는 구현될 수 있다. 타깃 교정 메커니즘(178)은 제어기(106), 메모리 어레이(104), 호스트 디바이스(108) 또는 이들의 조합의 구성을 포함할 수 있다. 타깃 교정 메커니즘(178)은 제어기(106), 메모리 어레이(104), 호스트 디바이스(108) 또는 이들의 조합에 저장되거나 이를 이용해 액세스되는 하나 이상의 방법, 프로세스, 단계 또는 명령, 정보, 또는 이들의 조합을 더 포함할 수 있다.
타깃 교정 메커니즘(178)은, 가령, 분포 타깃(404) 중 하나 이상, 분포 밸리(406) 중 하나 이상, 또는 이들의 조합(모두 도 4)에 대해 타깃 프로파일(402)을 조절하도록 사용 또는 구현될 수 있다. 타깃 교정 메커니즘(178) 또는 이의 일부는 타깃 프로세싱 주기(712)를 기초로 트리거 또는 개시될 수 있다. 타깃 프로세싱 주기(712)는 타깃 교정 메커니즘(178)을 구현하기 위한 지속시간 또는 특정 시간 세트 또는 반복구간 또는 이의 일부이다. 타깃 프로세싱 주기(712)는 메모리 디바이스(102)에 대한 상태, 신호, 구성, 또는 프로세싱 값 또는 결과를 기초로 할 수 있다. 예를 들어, 타깃 프로세싱 주기(712)는 드라이브 충전 간격(drive fill interval)을 포함하거나 이를 기초로 할 수 있다.
타깃 교정 메커니즘(178) 또는 이의 일부는 프로세싱-레벨 교정 메커니즘(176)(도 1) 또는 블록(702)에서 나타난 바와 같은 방법(600)(도 6)을 기초로 트리거 또는 개시될 수 있다. 타깃 교정 메커니즘(178)은, 프로세싱-레벨 교정 메커니즘(176) 또는 하나 이상의 이의 반복을 기초로, 또는 이의 구현 또는 완료 후에, 구현될 수 있다. 예를 들어, 타깃 교정 메커니즘(178) 또는 이의 일부는 프로세싱-레벨 교정 메커니즘(176)으로부터 도출된 센터링된 상태(626)(도 6)를 기초로 시작할 수 있다. 타깃 교정 메커니즘(178)은 프로세싱 레벨(154)(도 1) 또는 이의 프로세싱 결과를 지속적으로 교정하는 프로세싱-레벨 교정 메커니즘(176)의 결과 또는 부산물, 가령, 레벨-교정 피드백 측정치(302)(도 3) 또는 에러 측정치(166)(도 1)을 피드백 메트릭으로서 이용할 수 있다.
예를 들어, 타깃 교정 메커니즘(178) 또는 이의 일부의 구현 또는 완료는 프로세싱-레벨 교정 메커니즘(176)을 다시 트리거 또는 개시할 수 있다. 타깃 교정 메커니즘(178)은 프로세싱 레벨(154)(도 1)을 재교정하는 데 사용될 수 있는 타깃 프로파일(402)을 동적으로 업데이트할 수 있다. 예를 들어, 메모리 시스템(100)은 타깃 교정 메커니즘(178)의 구현을 기초로 센터링된 상태(626)를 재설정하거나, 비우거나, 제거할 수 있다. 또한 예를 들어, 프로세싱-레벨 교정 메커니즘(176)은 타깃 교정 메커니즘(178)으로부터의 어떠한 초기화와도 관계 없이, 또는 이러한 초기화 없이도, 구현될 수 있다.
블록(702)에서, 타깃 교정 메커니즘(178)은 메모리 셀(122)(도 1)의 그룹을 위한 타깃 프로파일(402)을 얻을 수 있다. 메모리 셀(122)은, 예를 들어, 다양한 방식으로 타깃 교정 메커니즘(178)에 대해 선택될 수 있다. 하나의 실시예에서, 메모리 시스템(100)은 다이에 대응하는 메모리 셀(122)을 선택할 수 있다. 또한 예를 들어, 타깃 교정 메커니즘(178)은 다이 내에 또는 다이에 의해 구현될 수 있다. 또한 예를 들어, 타깃 교정 메커니즘(178)은, 페이지 맵(142)(도 1)과 무관하게, 워드-라인 그룹(144)(도 1) 각각 내에 독립적으로 구현될 수 있다.
메모리 셀(122)의 선택된 그룹에 대해, 메모리 시스템(100)은, 액세스 또는 읽기에 의해, 제어기(106)의 내장 메모리, 메모리 어레이(104), 호스트 디바이스(108) 또는 이들의 조합에 저장된 타깃 프로파일(402)의 현재 대응하는 인스턴스를 결정할 수 있다. 메모리 시스템(100)은 필수 정보를 포함하는 배경 레코드(174)(도 1)를 기초로 더 결정할 수 있다.
메모리 시스템(100)은 메모리 셀(122)에 대한 프로세싱 레벨(154)과 연관된 거동 또는 상태를 나타내는 분포 타깃(404), 가령, 중간 타깃(409)(도 4) 및 에지 타깃(408)(도 4), 분포 밸리(406), 또는 이들의 조합을 포함하는 타깃 프로파일(402)을 결정할 수 있다. 분포 타깃(404) 각각은 메모리 셀(122)에 대한 페이지 유형(146)(도 1)의 특정 인스턴스, 특정 내용 또는 비트 값, 또는 이들의 조합에 대응할 수 있다.
분포 밸리(406)는 분포 타깃(404)의 인접한 인스턴스들 간 간격을 나타낼 수 있다. 분포 밸리(406)는 페이지 유형(146)의 인접 인스턴스들 간, 특정 내용 또는 비트 값의 인스턴스들 간, 또는 이들의 조합에서의 간 프로세싱 레벨(154)의 간격을 더 나타낼 수 있다.
블록(704)에서, 타깃 교정 메커니즘(178)은 피드백 메트릭을 기초로 분포 타깃(404)을 프로세싱할 수 있다. 예를 들어, 메모리 시스템(100)은 피드백 메트릭에 따라 분포 타깃(404) 또는 이의 표현을 정렬할 수 있다. 하나의 실시예에서, 메모리 시스템(100)은 메모리 셀(122)에 대응하는 피드백 파라미터를, 액세스하거나 읽음으로써, 결정할 수 있다. 메모리 시스템(100)은 프로세싱 레벨(154)의 이용 또는 프로세싱-레벨 교정 메커니즘(176)의 구현을 기초로 도출되거나 계산된 피드백 파라미터를 결정할 수 있다. 예를 들어, 메모리 시스템(100)은, 앞서 언급된 바와 같이, 프로세싱 레벨(154)의 안정성 또는 최적화를 반영하는 센터링된 상태(626)를 기초로 피드백 파라미터를 결정하고 타깃 교정 메커니즘(178)를 구현할 수 있다.
또 다른 실시예에서, 메모리 시스템(100)은 메모리 셀(122)에 대한 프로세싱 레벨(154)을 동적으로 교정하는 것과 연관된 피드백 파라미터, 가령, 에러 측정치(166), 레벨-교정 피드백 측정치(302), 또는 이들의 조합을 결정할 수 있다. 예를 들어, 메모리 시스템(100)은 에러 카운트(168)(도 1), 중앙 결과(304)(도 3), 에러-차이 측정치(322)(도 3), 레벨 분포 프로파일(410)(도 4), 또는 이들의 조합을 읽거나 액세스할 수 있다.
또한 예를 들면, 메모리 시스템(100)은 피드백 파라미터, 가령, 메모리 셀(122)에 대한 프로세싱 레벨(154)에 대응하는 에러 측정치(166)를 기초로, 가령, 프로세싱-레벨 교정 메커니즘(176) 또는 이의 수정의 구현을 기초로 계산된 에러-차이 측정치(322)를 결정할 수 있다. 메모리 시스템(100)은 중앙과 오프셋 샘플과 연관된 평균 값, 페이지 또는 셀에 걸친 이의 평균, 또는 이들의 조합 간 에러 측정치(166)의 차이를 기초로 계산된 에러-차이 측정치(322)를 읽거나 액세스할 수 있다. 메모리 시스템(100)은 분포 타깃(404) 각각에 대응하는 에러-차이 측정치(322) 또는 이의 평균을 결정할 수 있다.
에러-차이 측정치(322)는 분포 밸리(406) 또는 이의 특성, RWB, 또는 이의 조합에 대응할 수 있다. 메모리 시스템(100)은 에러-차이 측정치(322) 또는 이의 도함수를 밸리 깊이(valley depth)(714)의 표현으로서 결정할 수 있다. 밸리 깊이(714)는 분포 밸리(406) 각각과 연관된 크기 또는 정도를 나타낸다. 밸리 깊이(714)는 분포 타깃(404)들 간 간격의 크기 또는 정도를 정량적으로 나타낼 수 있다. 밸리 깊이(714)는 프로세싱 레벨(154) 또는 분포 타깃(404) 각각에 대한 RWB를 더 표현 또는 이에 대응할 수 있다.
메모리 시스템(100)은 타깃 프로파일(402)을 더 프로세싱할 수 있다. 하나의 실시예에서, 메모리 시스템(100)은 레벨-교정 피드백 측정치(302)를 기초로, 가령, 에러-차이 측정치(322), 에러 측정치(166) 또는 중앙 결과(304) 또는 이들의 조합을 기초로 타깃 프로파일(402)을 프로세싱한다.
메모리 시스템(100)은 분포 타깃(404), 분포 밸리(406) 또는 이의 조합의 상대적 특성 또는 설명을 나타내는 타깃-성능 프로파일(716)을 결정할 수 있다. 예를 들어, 메모리 시스템(100)은 레벨-교정 피드백 측정치(302)에 따라 분포 타깃(404), 분포 밸리(406), 또는 이의 조합의 순위 또는 정렬된 리스팅으로서 타깃-성능 프로파일(716)을 결정할 수 있다.
블록(706)에서, 타깃 교정 메커니즘(178)은 분포 타깃(404)을 조절하기 위한 특정 페이지를 식별할 수 있다. 메모리 시스템(100)은 고성능 페이지(718) 및 저성능 페이지(720)를 식별할 수 있다. 메모리 시스템(100)은 타깃-성능 프로파일(716)을 기초로 고성능 페이지(718) 및 저성능 페이지(720)를 식별할 수 있다. 메모리 시스템(100)은 분포 타깃(404), 분포 밸리(406), 또는 이들의 조합에 대응하는 에러-차이 측정치(322), 에러 측정치(166), 또는 이들의 조합, 가령, 타깃-성능 프로파일(716)에 대응하는 것의 비교를 기초로 고성능 페이지(718) 및 저성능 페이지(720)를 식별할 수 있다. 메모리 시스템(100)은 레벨-교정 피드백 측정치(302)의 최상위 또는 최하위 인스턴스에 대응하는 페이지 유형(146)의 각각의 인스턴스, 특정 비트 또는 내용 값, 분포 타깃(404)의 특정 인스턴스 또는 중간 타깃(409), 또는 이들의 조합으로서, 고성능 페이지(718) 및 저성능 페이지(720)를 식별할 수 있다.
특정 예시에서, 고성능 페이지(718)는 에러-차이 측정치(322)에 대한 최하위 값, 에러 카운트(168) 또는 중앙 결과(304)에 대한 최하위 값, 또는 이들의 조합에 대응하는 분포 타깃(404) 중 하나 이상을 포함할 수 있다. 저성능 페이지(720)는 에러-차이 측정치(322)에 대한 최상위 값, 에러 카운트(168) 또는 중앙 결과(304)에 대한 최상위 값, 또는 이들의 조합에 대응하는 분포 타깃(404)일 수 있다.
고성능 페이지(718)는 "덜 빈곤(less-needy)"한 특정 로직 페이지를 나타내고, 저성능 페이지(720)는 "더 빈곤(more-needy)"한 특정 로직 페이지를 나타낼 수 있다. 고성능 페이지(718) 및 저성능 페이지(720)는 워드-라인 그룹(144) 내 동일한 페이지 유형의 분포 밸리(406)의 상대적 RWB를 기초로 할 수 있다. 페이지 유형에 대한 가장 빈곤한 밸리는 에러 카운트(168)를 지배하거나 다른 나머지 밸리보다 더 많은 BER 손실을 야기하는 중인 밸리일 수 있다. 메모리 시스템(100)은 에러-차이 측정치(322)를 이용해 더-빈곤한 밸리와 덜-빈곤한 밸리를 타깃-성능 프로파일(716)에 의해 나타내어지는 빈곤성의 순서로 결정할 수 있다.
레벨-교정 피드백 측정치(302)를 이용해 식별된 고성능 페이지(718) 및 저성능 페이지(720)가 상이한 페이지 유형들 간 BER의 균형의 정확도를 개선하는 이점을 제공한다. 에러-차이 측정치(322)의 크기는 분포 밸리(406)의 폭 또는 밸리 깊이(714)를 신뢰할만하게 특징짓고 따라서 RWB를 신뢰할만하게 특징짓는다. 예를 들어, 에러-차이 측정치(322)의 높은 값일수록 좁은 밸리와 작은 RWB에 대응한다.
동적으로 교정된 읽기 레벨로부터 도출된 세 개의 샘플을 기초로 계산되고 이득 제어(632)(도 6)에 의해 제어된 에러-차이 측정치(322)를 이용하는 것이 상이한 페이지 유형에 걸친 BER의 균형의 정확도의 개선이라는 이점을 제공한다. 이득 제어(632)는 얕은 밸리와 깊은 밸리 간 측정치가 구별되기 더 쉽도록 에러-차이 측정치(322)를 효과적으로 교정할 수 있다. 이득 제어(632)는 해상도를 개선하기 위해 중앙 샘플과 낮은 및 높은 샘플 간 거리를 유지할 수 있다. 이득 제어(632)는 샘플 델타가 너무 낮아져, 차이가 구별되기 어렵게 하는 것을 막음으로써 그리고 샘플 델타가 너무 높아져, 에러 복구 메커니즘(172)(도 1)의 전체 인스턴스가 트리거되고 피드백 값이 무의미해지는 것을 막음으로써, 에러-차이 측정치(322)에 대한 효과적인 값을 제공할 수 있다.
블록(708)에서, 타깃 교정 메커니즘(178)은 타깃 프로파일(402)에 의해 나타내어지는 PV 타깃을 조절할 수 있다. 메모리 시스템(100)은 분포 타깃(404) 중 하나 이상, 분포 밸리(406) 중 하나 이상, 또는 이들의 조합을 조절함으로써 타깃 프로파일(402)을 조절 또는 교정할 수 있다.
메모리 시스템(100)은 분포 타깃(404) 중 하나 이상을 대체하고 분포 타깃(404)을 효과적으로 이동시키기 위한 하나 이상의 조절된 타깃(420)을 생성할 수 있다. 조절된 타깃(420)은 대응하는 분포 타깃(404)과 상이한 전압 레벨을 갖는 페이지 유형, 비트, 또는 내용 값, 또는 이들의 조합에 대해 연관된 희망 수량 또는 등장의 세트이다. 조절된 타깃(420)은 변경되거나 조절된 분포 양 또는 형태, 대응하는 전압 레벨, 또는 이들의 조합을 갖는 분포 타깃(404)의 인스턴스를 포함할 수 있다.
메모리 시스템(100)은 업데이트된 레벨(624)(도 6)을 동적으로 생성하고 프로세싱 레벨(154)을 동적으로 교정하기 위한 프로세싱-레벨 교정 메커니즘(176)의 구현을 기초로 하는 조절된 타깃(420)(도 4c)을 생성할 수 있다. 메모리 시스템(100)은 에러-차이 측정치(322)를 기초로 하거나 이에 따라 조절된 타깃(420)을 생성할 수 있다.
메모리 시스템(100)은 에러-차이 특정치(322)에 따라 분포 타깃(404), 분포 밸리(406), 또는 이들의 조합의 하나 이상의 인스턴스를 변경 또는 이동시키는 것을 기초로 조절된 타깃(420)을 생성할 수 있다. 예를 들어, 메모리 시스템(100)은 고성능 페이지(718), 저성능 페이지(720), 또는 이들의 조합의 타깃에 대응하거나 상기 타깃을 대체하는 조절된 타깃(420)을 생성할 수 있다. 또한 예를 들어, 메모리 시스템(100)은 고성능 페이지(718), 저성능 페이지(720), 또는 이들의 조합에 대응하는 분포 밸리(406), 밸리 깊이(714) 또는 이들의 조합을 제어하거나 균형화하기 위한 조절된 타깃(420)을 생성할 수 있다.
메모리 시스템(100)은 앞서 언급된 바와 같이, 메모리 셀(122)에 대한 조절된 타깃(420)을 생성할 수 있다. 메모리 시스템(100)은 다이 내에, 워드-라인 그룹(144) 내에, 또는 페이지 맵(142)에 무관하게, 또는 이들의 조합으로, 조절된 타깃(420)을 생성할 수 있다.
메모리 시스템(100)은 다양한 방식으로 조절된 타깃(420)을 생성할 수 있다. 메모리 시스템(100)은 에지 타깃(408)을 기준 점으로서 이용하고 에지 타깃(408)을 조절하지 않고 중간 타깃(409)을 조절할 수 있다.
메모리 시스템(100)은 데드-대역 존(722)을 기초로 조절된 타깃(420)을 또한 생성할 수 있다. 데드-대역 존(722)은 분포 타깃(404)에 대한 프로세싱 레벨(154)에 대응하는 에러 측정치(166)에 대한 임계 범위를 나타낼 수 있다. 메모리 시스템(100)은 에러 측정치(166)에 데드-대역 존(722)을 비교하는 것을 기초로 조절된 타깃(420)을 생성할 수 있다.
예를 들어, 메모리 시스템(100)은 중간 타깃(409), 고성능 페이지(718), 저성능 페이지(720), 또는 이들의 조합에 대응하거나 이를 교정하기 위한 조절된 타깃(420)을 생성할 수 있다. 또 다른 특정 예시를 들면, 메모리 시스템(100)은 대응하는 분포 타깃(404)이 데드-대역 존(722) 밖에서 BER 을 포함할 때 조절된 타깃(420)을 생성할 수 있다.
메모리 시스템(100)은 또한 메모리 셀(122)에 대한 페이지 유형(146)에 걸쳐 에러 측정치(166)들의 균형을 이루는 것을 기초로 조절된 타깃(420)을 생성할 수 있다. 메모리 시스템(100)은 메모리 셀(122)의 페이지 유형(146)들에 걸쳐 유사한 레벨의 BER, 에러 카운트, 밸리 깊이(714), 또는 이들의 조합을 균형화하거나 성취할 조절된 타깃(420)을 생성할 수 있다.
메모리 시스템(100)은 타깃 조절 값(422)(도 4)에 따라 분포 타깃(404)을 이동시키는 것을 기초로 조절된 타깃(420)을 더 생성할 수 있다. 또 다른 예를 들면, 메모리 시스템(100)은 타깃 조절 값(422)만큼 대응하는 전압 레벨 및 임계치를 증가 또는 감소시킴으로써 고성능 페이지(718) 및 저성능 페이지(720)를 이동시킬 수 있다.
메모리 시스템(100)은 지정 증분 또는 입도(granularity)를 기초로 타깃 조절 값(422)을 계산할 수 있다. 메모리 시스템(100)은 고성능 페이지(718)와 저성능 페이지(720) 간 밸리 깊이(714)의 조합에 대응하는 전압의 크기 또는 양을 결정하는 것을 기초로 타깃 조절 값(422)을 더 계산할 수 있다. 메모리 시스템(100)은 고성능 페이지(718)와 저성능 페이지(720) 간 밸리 깊이(714) 또는 RWB를 균형화하도록 추정된 조절 양으로서, 타깃 조절 값(422)을 계산할 수 있다.
메모리 시스템(100)은 타깃 프로파일(402)에 대한 타깃 조절 값(422)을 순-0 합(net-zero sum)이도록 더 계산할 수 있다. 고성능 페이지(718) 및 저성능 페이지(720)에 대한 타깃 조절 값(422)은 상보적일 수 있으며, 이때 이들의 합은 0이다. 예를 들어, 타깃 조절 값(422)은 고성능 페이지(718)로부터 감소 또는 취해지거나 저성능 페이지(720)에 주어지거나 더해진 간격 또는 밸리의 양 또는 크기를 나타낼 수 있다. 고성능 페이지(718) 및 이와 연관된 RWB에 대응하는 밸리가 감소될 수 있고, 동일한 감소 분이, 저성능 페이지(720) 및 이와 연관된 RWB에 대응하는 밸리를 증가시키는 데 사용될 수 있다.
따라서, 메모리 시스템(100)은 메모리 셀(122)에 대한 상이한 페이지 유형(146)에 걸쳐 에러 측정치(166), 밸리 깊이(714), 또는 이들의 조합을 균형화하기 위한 타깃 조절 값(422)에 대응하는 조절된 타깃(420)을 생성할 수 있다. TLC에 대해, 메모리 시스템(100)은 LP(148)(도 1), UP(150)(도 1) 및 EP(152)(도 1) 간 BER을 균형화하고 고르게 하기 위한 타깃 조절 값(422)에 대응하는 조절된 타깃(420)을 생성할 수 있다.
메모리 시스템(100)은 조절된 타깃(420)을 생성하여 에러 카운트(168) 및 RWB 매칭을 더 기초로 하여 BER 레벨링을 수행할 수 있다. 메모리 시스템(100)은 분포 타깃(404)에 걸친 중앙 샘플, 가령, 중앙 결과(304)에 대한 에러 카운트(168) 매칭을 기초로 조절된 타깃(420)을 생성할 수 있다. 메모리 시스템(100)은 분포 타깃(404)에 걸친 에러-차이 측정치(322)의 매칭을 기초로 조절된 타깃(420)을 더 생성할 수 있다.
예를 들어, 중앙-샘플은 PV 타깃을 이동시킴으로써 LP/UP/XP 에러 율을 등화하기 위한 피드백 메트릭으로서 사용될 수 있다. 또한, 중앙-샘플에 추가로, 밸리 깊이가 각각의 페이지 유형에 대해 매칭될 수 있다. 타깃 교정 메커니즘(178)을 구현하는 메모리 시스템(100)은 RWB에 대해 읽기 임계 레벨들을 등화하고 BER에 대해 페이지 유형들을 균형화할 수 있다.
메모리 시스템(100)은 일정한 RWB를 유지하지만, 개선된 BER 및 페이지 유형 BER 매칭에 대한 조절을 관리할 수 있다. 메모리 시스템(100)은 에지 타깃(408)에 대한 PV 타깃, 가령, 도 4a에서 L1 및 L7 PV 타깃으로 라벨링된 타깃을 고정으로 가질 수 있다. 중간 타깃(409)에 대한 PV 타깃, 가령, 도 4a의 L2-L6로 라벨링된 타깃에 대한 조절이, 페이지 유형 BER이 지속적으로 매칭되도록 관리될 수 있다.
예시를 계속 들면, 메모리 시스템(100)은 기준 페이지 유형(724)을 설정하고 다른 페이지 유형과 반복적으로 매칭할 수 있다. TLC를 예로 들면, 기준 페이지 유형(724)이 LP(148), UP(150) 또는 EP(152)일 수 있다.
타깃 프로세싱 주기(712)의 하나의 인스턴스에 대해, 메모리 시스템(100)은 기준 페이지 유형(724)을 기준 페이지 유형(724)과 상이한 제1 페이지 유형(726)과 매칭시킬 수 있다. 따라서, 메모리 시스템(100)은 기준 페이지 유형(724) 및 제1 페이지 유형(726)에 대응하는 조절된 타깃(420)을 생성할 수 있다.
타깃 프로세싱 주기(712)의 또 다른 인스턴스에 대해, 메모리 시스템(100)은 기준 페이지 유형(724)을 기준 페이지 유형(724)과 제1 페이지 유형(726) 모두와 상이한 제2 페이지 유형(728)과 매칭시킬 수 있다. 따라서, 메모리 시스템(100)은 기준 페이지 유형(724) 및 제2 페이지 유형(728)에 대응하는 조절된 타깃(420)을 생성할 수 있다.
예를 들어, 메모리 시스템(100)은 BER의 최악 인스턴스에 대한 저성능 페이지(720)에 대응하는 페이지 유형(146)을 결정하는 것을 기초로 조절된 타깃(420)을 생성할 수 있다. 최악 경우(worst case) BER이 데드-대역 존(722) 밖에 있을 때, 메모리 시스템(100)은 순-0 PV 타깃 변화를 구현하도록 조절된 타깃(420)을 생성할 수 있다.
기준 페이지 유형(724)이 제1 페이지 유형(726)보다 낮은 에러 카운트(168)에 대응할 때, 기준 페이지 유형(724) 또는 이와 연관된 밸리가 PV 마진(PV margin)을 포기하거나 타깃 조절 값(422)만큼 감소시킬 수 있다. 제1 페이지 유형(726)의 저성능 페이지(720) 또는 이와 연관된 밸리가 PV 마진을 수용하거나 타깃 조절 값(422)만큼 증가시킬 수 있다. 타깃 조절 값(422)은 두 개의 페이지 유형 간 PV 마진을 평균 내도록 동적으로 계산된 지정 증분 또는 값 중 하나 이상일 수 있다.
하나의 실시예에서, 메모리 시스템(100)은 도 4a에 도시된 L3/L4에 대해 기준 페이지 유형(724)에 대응하는 분포 타깃(404)을 대체하기 위한 조절된 타깃(420)을 생성할 수 있다. 조절된 타깃(420)은 L3/L4의 분포 타깃(404)에 대한 PV 마진을 하나의 스텝 또는 증분만큼 감소시킴으로써, 대응하는 밸리 v4를 감소시키는 것을 기초로 할 수 있다. 조절된 타깃(420)은 또한 도 4a에 도시된 바와 같이 L1/L2 또는 L5/L6에 대한 제1 페이지 유형(726)에 대응하는 분포 타깃(404)을 대체하기 위한 것일 수 있다. 조절된 타깃(420)은 L1/L2 또는 L5/L6의 분포 타깃(404)에 대한 PV 마진을 하나의 스텝 또는 증분만큼 증가시킴으로써, 대응하는 밸리 v2 또는 v6를 증가시키는 것을 기초로 할 수 있다.
L3/L4가 L1/L2에 줄 때, L2 및 L3의 분포 타깃(404)은 도 4a-4c의 예시와 관련하여, 값이 증가하고 오른쪽으로 이동할 수 있다. L3/L4가 L5/L6에 줄 때, L4 및 L5의 분포 타깃(404)은 도 4a-4c의 예시와 관련하여 값이 감소하고 왼쪽으로 이동할 수 있다.
기준 페이지 유형(724)이 제1 페이지 유형 (726)보다 높은 에러 카운트(168)에 대응할 때, 기준 페이지 유형 (724) 또는 이와 연관된 밸리는 PV 마진을 얻거나 타깃 조정 값 (422)만큼 증가시킬 수 있다. 제1 페이지 유형(726) 또는 이와 연관된 밸리의 고성능 페이지(718)는 PV 마진을 포기하거나 타깃 조정 값(422)만큼 감소시킬 수 있다.
하나의 실시예에서, 메모리 시스템(100)은 L3/L4의 분포 타깃(404)에 대한 PV 마진을 하나의 스텝 또는 증분만큼 증가시키는 것을 기초로 조정된 타깃(420)을 의해 생성하고, 이로써 대응하는 밸리 v4를 증가시킬 수 있다. 조정된 타깃(420)은 L1/L2 또는 L5/L6의 분포 타깃(404)에 대한 PV 마진을 하나의 스텝 또는 증분만큼 감소시킴으로써, 대응하는 밸리 v2 또는 v6을 감소시키는 것을 더 기초로 할 수 있다.
L3/L4가 L1/L2로부터 취할 때, L2 및 L3의 분포 타깃(404)은 도 4a-4c의 예시와 관련하여 값이 감소하고 왼쪽으로 이동할 수 있다. L3/L4가 L5/L6로부터 취할 때, L4 및 L5의 분포 타깃(404)은 4a-4c의 예시와 관련하여 값이 증가하고 오른쪽으로 이동할 수 있다.
하나의 실시예에서, 메모리 시스템(100)은 BER의 최악의 인스턴스에 대한 저성능 페이지(720)에 대응하는 페이지 유형(146)을 결정하는 것에 기초하여 조정된 타깃(420)을 유사하게 생성할 수 있다. 최악 경우 BER이 데드-대역 존(722) 밖에 있을 때, 메모리 시스템(100)은 중간 타깃(409)에 대한 순-0 PV 타깃 변경을 구현하기 위해 조절된 타깃(420)을 생성할 수 있다. 메모리 시스템(100)은 에러-차이 측정치(322)의 평균에 기초하는 타깃-성능 프로파일(716)에 더 기초하여 조절된 타깃(420)을 생성할 수 있다.
기준 페이지 유형(724)이 제2 페이지 유형(728)보다 낮은 에러 카운트(168) 또는 에러-차이 측정치(322)에 대응할 때, 기준 페이지 유형(724) 또는 이와 연관된 밸리가 PV 마진(PV margin)을 포기하거나 타깃 조절 값(422)만큼 감소시킬 수 있다. 제2 페이지 유형(728) 또는 이와 연관된 밸리의 저성능 페이지(720)가 PV 마진을 수용하거나 타깃 조절 값(422)만큼 증가시킬 수 있다.
하나의 실시예에서, 메모리 시스템(100)은 L3/L4에 대해 기준 페이지 유형(724)에 대응하는 분포 타깃(404)을 대체하기 위한 조절된 타깃(420)을 생성할 수 있다. 조절된 타깃(420)은 L3/L4의 분포 타깃(404)에 대한 PV 마진을 하나의 스텝 또는 증분만큼 감소시킴으로써, 대응하는 밸리 v4를 감소시키는 것을 기초로 할 수 있다. 조절된 타깃(420)은 L2/L3, L4/L5 또는 L6/L7에 대한 제2 페이지 유형(728)에 대응하는 분포 타깃(404)을 대체하기 위한 것일 수 있다. 조절된 타깃(420)은 L2/L3, L4/L5 또는 L6/L7의 분포 타깃(404)에 대한 PV 마진을 1 스텝 또는 증분만큼 증가시킴으로써, 대응하는 밸리 v3, v5 또는 v7를 증가시키는 것을 기초로 할 수 있다.
L3/L4가 L2/L3에 줄 때, L3의 분포 타깃(404)은 도 4a-4c의 예시와 관련하여, 값이 증가하고 오른쪽으로 이동할 수 있다. L3/L4가 L4/L5에 줄 때, L4의 분포 타깃(404)은 값이 감소하고 왼쪽으로 이동할 수 있다. L3/L4가 L6/L7에 줄 때, L4, L5 및 L6에 대한 분포 타깃(404)은 값이 감소하고 왼쪽으로 이동할 수 있다.
기준 페이지 유형(724)이 제2 페이지 유형(728)보다 높은 에러 카운트(168) 또는 에러-차이 측정치(322)에 대응할 때, 기준 페이지 유형(724) 또는 이와 연관된 밸리는 PV 마진을 얻거나 타깃 조정 값(422)만큼 증가시킬 수 있다. 제2 페이지 유형(728) 또는 이와 연관된 밸리의 고성능 페이지(718)는 PV 마진을 포기하거나 타깃 조정 값(422), 가령, 두 페이지 유형들 간 PV 마진을 평균내기 위해 계산된 하나 이상의 증분 또는 값만큼 감소시킬 수 있다.
하나의 실시예에서, 메모리 시스템(100)은 L3/L4의 분포 타깃(404)에 대한 PV 마진을 하나의 스텝 또는 증분만큼 증가시키는 것을 기초로 조정된 타깃(420)을 의해 생성하고, 이로써 대응하는 밸리 v4를 증가시킬 수 있다. 조절된 타깃(420)은 L2/L3, L4/L5 또는 L6/L7의 분포 타깃(404)에 대한 PV 마진을 하나의 스텝 또는 증분만큼 감소시킴으로써, 대응하는 밸리 v3, v5 또는 v7를 증가시키는 것을 더 기초로 할 수 있다.
L3/L4가 L2/L3로부터 취할 때, L3의 분포 타깃(404)은 도 4a-4c의 예시와 관련하여 값이 감소하고 왼쪽으로 이동할 수 있다. L3/L4가 L4/L5로부터 취할 때, L4의 분포 타깃(404)은 값이 증가하고 오른쪽으로 이동할 수 있다. L3/L4가 L6/L7로부터 취할 때, L4, L5 및 L6의 분포 타깃(404)은 값이 증가하고 오른쪽으로 이동할 수 있다.
메모리 시스템(100)은 타깃 교정 메커니즘(178)을 이용하여 타깃 프로파일(402)을 초기화하거나, 타깃 프로파일(402)을 동적으로 교정하거나, 이들의 조합을 할 수 있다. 메모리 시스템(100)은, 메모리 디바이스(102)의 배치나 의도된 사용 전에, 메모리 디바이스(102)의 제조 또는 구성의 일부로서 타깃 교정 메커니즘(178)을 이행할 수 있다. 메모리 시스템(100)은 또한 메모리 디바이스(102)의 배치 또는 의도된 사용 동안 그리고 메모리 디바이스(102)의 제조 또는 구성 후에, 타깃 교정 메커니즘(178)을 동적으로 이행하고 조절된 타깃(420)을 동적으로 생성하며 타깃 프로파일(402)을 동적으로 업데이트할 수 있다.
예를 들어, 메모리 시스템(100)은 PV 타깃 각각을 NAND 공장 셋팅 또는 제조 타깃(730)에서 정의된 디폴트 상태로 시작할 수 있다. 제조 타깃(730)은 메모리 디바이스(102)의 제조를 위해 초기에 제공되거나 구성된 타깃 프로파일(402)의 인스턴스일 수 있다. 제조 타깃(730)은 실제 거동 또는 특성 대신 메모리 셀(122)의 이상적인 또는 추정 거동 또는 특성을 설명하는 공장 디폴트(factory default) 또는 구성 디폴트(configuration default)일 수 있다. 공장 타깃은 워드-라인 그룹(144)의 각각의 인스턴스에 대해 상이할 수 있다.
메모리 시스템(100)은 방법(700)을 이용하여, 메모리 디바이스(102)의 각각의 인스턴스에 대한 타깃 프로파일(402) 최적치로 제조 타깃(730)을 조절할 수 있다. 메모리 시스템(100)은 제조 타깃(730)으로 시작하여, 앞서 기재된 바와 같이, 타깃을 얻고, 타깃을 프로세싱하며, 관련 페이지 또는 밸리를 식별하고, 타깃을 조절할 수 있다. 타깃 교정 메커니즘(178)의 초기 구현의 종료에서의 타깃은 배치, 판매, 배송 또는 의도된 사용을 위한 타깃 프로파일(402)의 초기화된 인스턴스일 수 있다. 그 후 메모리 시스템(100)은 또한 타깃 교정 메커니즘(178)을 계속 동적으로 이행할 수 있다.
초기화를 위해, 메모리 시스템(100)은 메모리 어레이(104)의 제조 동안 초기에 결정된 타깃 프로파일(402)을 나타내기 위한 제조 타깃(730)을 식별할 수 있다. 메모리 시스템(100)은 제조 타깃(730)의 식별을 앞서 기재된 단계들을 구현하기 위한 트리거로서 이용할 수 있다.
메모리 시스템(100)은 메모리 어레이(104)의 사용 또는 배치 전 그리고 조절된 타깃(420)을 동적으로 생성하기 전에 타깃 프로파일(402)을 초기에 교정할 수 있다. 메모리 시스템(100)은 중앙 결과(304) 및 오프셋 결과에 따라, 가령, 프로세싱-레벨 교정 메커니즘(176)을 구현함으로써, 읽기 레벨 전압(158)을 초기에 조절할 수 있다. 메모리 시스템(100)은 초기 조절 후 읽기 레벨 전압(158)을 구현하는 것을 기초로 레벨-교정 피드백 측정치(302)를 초기에 결정할 수 있다. 메모리 시스템(100)은 앞서 언급된 바와 같이 피드백 측정치에 따라 제조 타깃(730)의 분포 타깃(404)을 변경하는 것을 기초로 타깃 프로파일(402)을 생성할 수 있다.
메모리 시스템(100)은 배치 후 구현을 위해 설계된 속도보다 빠른 속도로 앞서 기술된 동작들을 구현하는 것에 기초하여 초기화할 수 있다. 메모리 시스템(100)은 공장에서 짧은 시간 동안 빠른 속도로 프로세싱-레벨 교정 메커니즘(176), 타깃 교정 메커니즘(178), 스텝 교정 메커니즘(180)(도 1) 또는 이들의 조합을 이행함으로써, 워드-라인 그룹(144)이 고객 펌웨어를 실행하기 전에 개선되고 수렴된 읽기 임계치를 가질 것이다.
조정 된 타깃(420)이 대응하는 분포 타깃(404)을 대체한, 타깃 프로파일(402)의 조정 또는 교정된 인스턴스는 프로세싱-레벨 교정 메커니즘(176)을 더 트리거하기 위해 사용될 수 있다. 예를 들어, 타깃 교정 메커니즘(178)은 외부 루프로서 기능할 수 있고, 프로세싱-레벨 교정 메커니즘(176)은 외부 루프로서 기능할 수 있다. 프로세싱-레벨 교정 메커니즘(176)은 타깃 프로파일(402)의 동적 업데이트 또는 교정에 따라 또는 이에 응답하여 프로세싱 레벨(154)을 더 업데이트할 수 있다.
타깃 교정 메커니즘(178)을 이용하여 PV 타깃 변경을 가능하게 하는 것은 다이내의 대부분의 블록이 동일한 PV 타깃으로 프로그램될 것을 필요로 할 수 있다. 따라서 블록 프로그래밍의 거의 완전한 재생(refresh)이 필요할 수 있다. 따라서 메모리 시스템 (100)은 두 개의 상이한 PV 타깃 프로그램 된 블록 그룹의 최소 세트를 유지할 수 있다. 메모리 시스템 (100)은 프로세싱-레벨 교정 메커니즘(176)이 BER 다이버시티를 최소화하면서 적절하게 동작하기 위해 읽기 임계값의 단일 세트를 더 사용할 수 있다.
메모리 시스템 (100)은 반복에 걸쳐 또는 다른 메커니즘, 가령, 프로세싱-레벨 교정 메커니즘(176), 스텝 교정 메커니즘(180)(도 1) 또는 이들의 조합에 의한 액세스를 위해 다양한 정보를 저장할 수 있다. 예를 들어, 메모리 시스템 (100)은 각각의 워드-라인 그룹(144)의 각각의 페이지 유형(146)에 대한 타깃 프로파일(402) 또는 그 임계 값을 저장할 수 있다. 또한 예를 들어, 메모리 시스템 (100)은 타깃-성능 프로파일(716)을 저장할 수 있다.
타깃 교정 메커니즘(178)을 구현하는 것에 기초하여, 메모리 시스템(100)은 스텝 교정 메커니즘(180)을 구현할 수 있다. 예를 들어, 메모리 시스템 (100)은 메모리 셀(122)을 프로그램할 때 프로그래밍 스텝(162)(도 1)를 동적으로 조절하기 위해 페이지 유형에 걸친 RWB 및 BER 등화를 활용할 수 있다. 스텝 교정 메커니즘(180)에 대한 세부사항이 이하에서 논의된다.
에러 측정치(166), 에러-차이 측정치(322) 또는 이들의 조합에 기초하여 타깃 프로파일(402)을 동적으로 교정하기 위해 조절된 타깃(420)을 생성하는 것은 시스템 제품 내 NAND 다이 각각에 대해 내구성(보다 전반적으로는 프로그램/삭제 사이클)의 증가라는 이점을 제공한다. 동적 밸런싱(dynamic balancing)은 과도한 트리거 율 테일(trigger rate tail) 거동으로 나타나는, 어떤 페이지 유형도 수명 종료 기준을 지배하지 않을 것임을 보장할 수 있다. 각각 페이지 유형의 BER은 시스템 제품 수명 동안 거의 동일하게 유지 될 수 있으며 BER 시그마를 더욱 최소화할 수 있다.
에러 측정치(166)와 연관된 피드백 메트릭을 기초로 타깃 프로파일(402)을 동적으로 업데이트하기 위해 조절된 타깃(420)을 생성하는 것은 페이지 유형 BER의 균형을 맞춘다는 이점을 제공한다. 메모리 시스템(100)은 프로세싱-레벨 교정 메커니즘(176)으로부터 발생하는 에러 측정치(166)를 피드백 측정치로서 이용할 수 있으며, 이는 BER의 균형을 동적으로 맞추기 위한 프로세싱 메트릭으로 기능할 수 있다. 또한, 프로세싱-레벨 교정 메커니즘(176)으로부터의 프로세싱 결과의 재사용에 의해 타깃 교정 메커니즘(178)이 매우 적은 양의 추가 펌웨어 오버 헤드만으로 구현 될 수 있다.
예시적인 목적으로, 흐름도가 상기에서 예로 든 시퀀스 및 프로세스로 기재되었다. 그러나, 방법 (700)은 상이할 수 있음이 자명하다. 예를 들어, 블록 (702-608)은 블록(708)에서 블록(702)까지의 피드백 루프를 갖는 반복 프로세스일 수 있다. 또한, 예를 들어, 방법 (700)은 하나의 드라이브 충전에 대해 기준 페이지 유형 (724)을 제1 페이지 유형(726)에 매칭하고, 다음 드라이브 충전에 대해 기준 페이지 유형(724)을 제2 페이지 유형(728)에 매칭하는 상보적인 프로세스 쌍을 포함할 수 있다.
도 8은 본 기법의 실시예에 따르는 메모리 시스템(100)(도 1)에 대한 동작의 또 다른 예시적 방법(800)을 나타내는 흐름도이다. 방법(800)은 스텝 교정 메커니즘(180)(도 1)의 구현을 포함할 수 있다. 스텝 교정 메커니즘(180)은 메모리 디바이스(102)(도 1)의 동작과 연관된 피드백 메트릭에 기초하여 프로그래밍 스텝(162)(도 1)을 연속적으로 수정할 수 있다. 스텝 교정 메커니즘(180)은 메모리 디바이스(102)의 수명 동안 NAND 페이지 프로그래밍 시간(502)(도 5)을 연속적으로 조정 또는 교정할 수 있다.
스텝 교정 메커니즘(180)은 예를 들어, 메모리 디바이스(102) 또는 호스트 장치(108)에 대한 프로세싱 회로, 예를 들어 제어기(106), 메모리 어레이(104), 예컨대 다이 또는 셀, 호스트 디바이스(108)에 대한 프로세서, 또는 이들의 일부분, 또는 이의 조합(모두 도 1)에 의해 실행되거나 구현될 수 있다. 스텝 교정 메커니즘(180)은 제어기(106), 메모리 어레이(104), 호스트 디바이스(108) 또는 이들의 조합의 구성을 포함할 수 있다. 스텝 교정 메커니즘(180)은 제어기(106), 메모리 어레이(104), 호스트 디바이스(108) 또는 이들의 조합에 저장되거나 이를 이용해 액세스되는 하나 이상의 방법, 프로세스, 단계 또는 명령, 정보, 또는 이들의 조합을 더 포함할 수 있다. 스텝 교정 메커니즘(180)은 ISPP에 기초하여 메모리 셀(122)(도 1)을 프로그래밍하기 위해 프로그래밍 스텝(162)을 조정하기 위해 이용되거나 구현 될 수 있다. 메모리 시스템(100)은 스텝 교정 메커니즘(180)에 대한 배경 레코드(174)(도 1)를 결정하고 이용할 수 있다. 스텝 교정 메커니즘(180)을 구현하는 메모리 시스템(100)은 배경 레코드(174), 가령, 배경 스캔 데이터 또는 이의 도함수를 기초로 프로그래밍 스텝(162)을 피드백 메트릭으로서 교정할 수 있다.
메모리 시스템(100)은 블록(802)에 도시 된 바와 같이, 메모리 디바이스(102)의 동작 동안 배경 레코드(174)를 결정할 수 있다. 메모리 시스템(100)은 다양한 방식으로 배경 레코드(174)를 결정할 수 있다. 예를 들어, 메모리 시스템(100)은 메모리 디바이스(102)의 동작 동안 데이터의 프로세싱과 연관된 정보, 성능 또는 상태의 저장 또는 추적에 기초하여 배경 레코드(174)를 결정할 수 있다. 메모리 시스템(100)은 메모리 어레이(104)의 동작 동안 프로그래밍 스텝(162)을 이용하는 것과 연관된 또는 이로부터 도출된 에러 측정치(166)(도 1), 가령, 에러 카운트(168)(도 1) 또는 에러 율(170)(도 1) 또는 이의 프로세싱 결과를 저장하거나 추적할 수 있다.
메모리 시스템(100)은 하나 이상의 코드-워드(820)와 연관된 에러 측정치(166)를 추적할 수 있으며, 프로그래밍 스텝(162)은 데이터를 쓰는 데 이용된다. 프로그래밍 스텝(162)의 증가는 BER의 증가로 이어질 수 있다. 배경 스캔은 "불량 데이터"에 대한 검색에서 코드-워드(820)를 읽을 수 있다. 다수의 비트 에러와 같은 에러 측정치(166)가 결정되고 추적될 수 있다. 메모리 시스템(100)은 또한 다양한 수의 에러에 대한 빈을 이용하여 에러 측정치(166)를 추적할 수 있다. 또한 더 구체적인 예로서, 메모리 시스템(100)은 히스토그램 유형의 포맷을 사용하여 에러 측정치(166)를 추적할 수 있다.
메모리 시스템(100)은 각각의 다이의 메모리 셀(122)에 의해, 또는 메모리 셀마다, 또는 메모리 셀 내에서 스텝 교정 메커니즘(180)을 구현할 수 있다. 예를 들어, 메모리 시스템(100)은 스텝 교정 메커니즘(180)을 구현하기 위해 프로세싱 회로 제어를 각각의 다이 내에서 이용할 수 있다. 또한 예를 들어, 메모리 시스템(100)은 스텝 교정 메커니즘(180)을 워드-라인 그룹(144)(도 1)에 한정되지 않거나, 워드-라인 그룹에 의한 조절 없이, 또는 워드-라인 그룹에 따라, 더 구현할 수 있다. 스텝 교정 메커니즘(180)은 타깃 교정 메커니즘(178)(도 1)과 대조적으로 워드-라인 그룹(144)에 의한 조절 없이 다이 프로그램 스텝 크기 조절에 의해 수행될 수 있다.
스텝 교정 메커니즘(180) 또는 그 일부는 스텝 프로세싱 주기(822)에 기초하여 트리거되거나 개시될 수 있다. 타깃 교정 메커니즘(178)을 구현하는 메모리 시스템(100)은 스텝 프로세싱 주기(822) 동안 또는 이에 대하여 프로그래밍 스텝(162)을 조정할 수 있다. 스텝 프로세싱 주기(822)는 스텝 교정 메커니즘(180)을 구현하기 위한 지속시간 또는 특정 시간 세트 또는 반복구간 또는 이의 일부분이다. 스텝 프로세싱 주기(822)는 메모리 디바이스(102)에 대한 상태, 신호, 구성, 또는 프로세싱 값 또는 결과에 기초할 수 있다. 예를 들어, 스텝 프로세싱 주기(822)는 드라이브 충전 간격을 포함하거나 이를 기초로 할 수 있다. 또한, 예를 들어, 스텝 프로세싱 주기(822)은 목표 프로세싱 주기(712)(도 7)와 비교하여 동일한 유형이거나 동시에 또는 어긋나거나, 이들의 조합일 수 있다.
스텝 교정 메커니즘(180) 또는 이의 일부는 프로세싱-레벨 교정 메커니즘(176)(도 1) 또는 연속 프로세싱 레벨 교정을 위한 블록(804)으로 나타나는 방법(600)(도 6), 타깃 교정 메커니즘(178)(도 1) 또는 연속 PV 타깃 검증을 위한 블록(806)으로 나타나는 방법(700)(도 7), 또는 이들의 조합을 기초로 더 트리거 또는 개시될 수 있다. 예를 들어, 스텝 교정 메커니즘(180)은 읽기 레벨 전압(158)(도 1)을 포함하는 프로세싱 레벨(154)(도 1)을 동적으로 교정하기 위해 프로세싱-레벨 교정 메커니즘(176)을 구현하는 것에 기초하여 구현될 수 있다. 스텝 교정 메커니즘(180)은 읽기 레벨 전압(158)에 대한 센터링된 상태(626)(도 6)에 기초하여 구현될 수 있다.
또한, 예를 들어, 스텝 교정 메커니즘(180)은 타깃 프로파일(402)(도 4)을 동적으로 교정하기 위해 타깃 교정 메커니즘(178)을 구현하는 것에 기초하여 구현될 수 있다. 스텝 교정 메커니즘(180)은 모든 관련 트림이 읽기 레벨 전압(158)에 대한 센터링된 상태(626) 또는 다이에 대한 이들의 조합에 의해 지시 된 바와 같이 센터링될 때, 지정된 임계 횟수보다 많이 타깃 교정 메커니즘(178)을 구현하는 것에 기초하여 구현 될 수 있다.
또한, 스텝 교정 메커니즘(180)은 타깃 교정 메커니즘(178)보다 덜 빈번하게 구현 될 수 있다. 스텝 교정 메커니즘(180)의 딜레이된 율 또는 구현은 프로세싱 레벨(154)이 그 밖의 다른 방식으로 안정함으로 보장할 수 있으며, 읽기 레벨 전압(158), PV 타깃, 또는 이들의 조합의 동적 교정에 이어 배경 레코드(174)에 대해 충분한 데이터 포인트가 수집되었음을 더 보장할 수 있다.
블록(808)에서, 스텝 교정 메커니즘(180)은 프로그래밍 스텝(162)을 교정하기 위해 배경 레코드(174)를 프로세싱할 수 있다. 메모리 시스템(100)은 데이터를 구조적으로, 논리적으로, 수학적으로 또는 이들의 조합으로 조작하는 것과 같이 배경 레코드(174)를 프로세싱할 수 있다. 예를 들어, 메모리 시스템(100)은 배경 레코드(174)의 프로세싱에 기초하여 누적 분포 함수(CDF)(824)를 생성할 수 있다. CDF(824)는 에러 측정치(166)와 관련된 통계적 확률을 나타낼 수 있다. CDF(824)는 에러 측정치(166)가 특정 값 이하일 확률을 나타낼 수 있다. CDF(824)는 배경 레코드(174)를 정규하는 것을 기초로 또는 이를 위해 생성될 수 있다.
메모리 시스템(100)은 다양한 방식으로 CDF(824)를 생성할 수 있다. 예를 들어, 메모리 시스템(100)은 CDF(824)를 반복적으로 업데이트하고 CDF(824)를 영속적으로 유지할 수 있다. 메모리 시스템(100)은 배경 레코드(174)가 연속적으로 결정됨에 따라 CDF(824)를 업데이트할 수 있다. 또한, 예를 들어, 메모리 시스템(100)은 CDF(824)를 반복적으로 업데이트하는 대신 그리고 CDF(824)를 영속적으로 유지하지 않고 프로그래밍 스텝(162)을 교정하기 위해 스텝 교정 메커니즘(180)의 각 반복 또는 구현에 대해 CDF(824)를 생성할 수 있다.
또한, 예를 들면, 메모리 시스템(100)은 CDF(824)를 추가로 프로세싱하는 것을 기초로 조절된 함수 결과(828)를 더 생성할 수 있다. 조절된 함수 결과(828)는, 가령, CDF(824) 또는 배경 레코드(174)의 이동, 논리적 또는 수학적 연산, 재구성 또는 포맷팅에 의해, CDF(824) 또는 배경 레코드(174)의 추가 조작 또는 프로세싱으로부터의 프로세싱 결과를 나타낼 수 있다.
조절된 함수 결과(828)는 CDF(824) 또는 배경 레코드(174)의 폭포 구조(waterfall organization) 또는 포맷을 포함할 수 있다. 또한, 조절된 함수 결과(828)는 CDF(824) 또는 배경 레코드(174)와 조합된 하나 이상의 지정 값, 가령, 곱셈 계수 또는 덧셈 오프셋을 포함할 수 있다.
블록(810)에서, 스텝 교정 메커니즘(180)은 프로그래밍 스텝(162)을 업데이트 또는 교정하기 위한 트리거를 계산할 수 있다. 메모리 시스템(100)은 배경 스캔 데이터에 대한 것과 같은 피드백 데이터의 프로세싱에 기초하여 트리거를 도출할 수 있다. 메모리 시스템(100)은 트리거 측정치(830)의 계산에 기초하여 트리거를 도출할 수 있다.
트리거 측정치(830)는 에러 복구 메커니즘(172)(도 1) 및 프로그래밍 스텝(162)에 대한 메모리 셀(122)의 현재 동작 상태의 표현이다. 트리거 측정치(830)는 에러 복구 메커니즘(172)의 구현, 가령, 이의 가능도(likelihood)에 대한 것을 추정할 수 있다. 트리거 측정치(830)는 에러 복구 메커니즘(172)을 구현하기 위한 오버헤드 또는 간격을 더 나타낼 수 있다. 트리거 측정치(830)는 배경 레코드(174) 또는 그 프로세싱 결과, 가령, CDF(824) 또는 조절된 함수 결과(828)에 기초하여 계산될 수 있다.
메모리 시스템(100)은 다양한 방식으로 트리거 측정치(830)를 계산할 수 있다. 예를 들어, 트리거 측정치(830)는 트리거 율(trigger rate)(832), 트리거 마진(trigger margin)(834) 또는 이들의 조합을 포함할 수 있다.
트리거 율(832)은 에러 복구 메커니즘(172)을 구현하는 빈도 또는 가능도의 추정치이다. 트리거 율(832)는 다양한 조건 또는 상황에 대한 에러 측정치(166), 예컨대, 프로그래밍 스텝(162)의 변화에 기초하는 것의 투영을 추가로 추정할 수 있다. 트리거 율(832)는 BER의 투영을 나타낼 수 있다. 예를 들어, 트리거 율(832)는 수정 불가 비트 에러 율(UBER)와 연관될 수 있다. 또한, 예를 들어, 트리거 율(832)는 에러 복구 메커니즘(172)과 연관된 에러의 ECC 비트, 코드-워드(820)에 대한 율 또는 측정치, 또는 이들의 조합에 기초할 수 있다.
메모리 시스템(100)은 추정 메커니즘(836)을 사용하여 트리거 율(832)을 계산할 수 있다. 추정 메커니즘(836)은 주어진 데이터 세트를 기초로 하는 추가 거동 또는 패턴을 투영하기 위한 프로세스, 방법, 회로, 구성, 기능, 또는 이들의 조합을 포함할 수 있다. 예를 들어, 추정 메커니즘(836)은 라인 적합화 알고리즘(line fitting algorithm)을 구현하기 위한, 가령, 선형 또는 대수 패턴, 통계적 가능도 계산 또는 이들의 조합에 대한 프로세스, 방법, 회로, 구성, 기능, 또는 이들의 조합을 포함할 수 있다.
메모리 시스템(100)은 배경 레코드(174) 또는 이의 도함수, 가령, CDF(824) 또는 조절된 함수 결과(828)를 추정 메커니즘(836)에 대한 입력으로 이용하는 것에 기초하여, 트리거 율(832)을 계산할 수 있다. 메모리 시스템(100)은 배경 레코드(174)의 패턴 또는 추세에 따라 에러 복구 메커니즘(172)을 구현할 빈도 또는 가능도, 에러 카운트(168)의 투영, 또는 이들의 조합을 투영 또는 추정할 수 있다.
트리거 마진(834)은 에러 복구 메커니즘(172)과 프로그래밍 스텝(162)에 대응하는 에러 측정치(166)의 구현 간 관계의 표현이다. 예를 들어, 트리거 마진(834)은 에러 복구 메커니즘(172)을 구현하기 위한 시스템 트리거 조건(838)과 에러 카운트(168) 간 간격을 나타낼 수 있다. 시스템 트리거 조건(838)은 에러 복구 메커니즘(172)을 개시하기 위한 지정 조건, 가령, 에러 비트 수 또는 코드-워드(820)의 불량 또는 잘못된 인스턴스의 수를 포함할 수 있다. 프로그래밍 시간(502)과 연관된 개선된 성능은 트리거 마진(834)에 의해 제한될 수 있으며, 이는 시스템 제품 ECC 복구 속도의 척도일 수 있다.
메모리 시스템(100)은 시스템 트리거 조건(838) 및 에러 측정치(166)에 기초하여 트리거 마진(834)을 계산할 수 있다. 예를 들어, 메모리 시스템(100)은 값들 간, 시스템 트리거 조건(838)과 에러 카운트(168) 간 비 또는 차이 같은 관계 또는 간격을 기초로 트리거 마진(834)을 계산할 수 있다. 에러 카운트(168)는 프로그래밍 스텝(162)의 변경을 개시하기 위해 지정된 임계값에서의 비트 에러 수를 나타낼 수 있다. 또한 예를 들면, 메모리 시스템(100)은 시스템 트리거 조건(838) 및 에러 카운트(168)의 대수 표현에 기초하여 트리거 마진(834)을 계산할 수 있다.
메모리 시스템(100)은 에러 카운트(168)로부터 직접 트리거 측정(830)을 계산할 수 있다. 트리거 측정치(830)에 대해, 예컨대 트리거 율(832)과 비교해서, 메모리 시스템(100)은 라인 적합화를 수행하고 수집된 데이터의 양을 넘어 투영하는 대신에 이용 가능한 데이터를 사용할 수 있다.
블록(812)에서, 스텝 교정 메커니즘(180)은 트리거 측정치(830)를 평가하기 위한 하나 이상의 임계 값을 결정할 수 있다. 메모리 시스템(100)은 트리거 제어 프로파일(840)의 결정에 기초하여 임계 값을 결정할 수 있다.
트리거 제어 프로파일(840)은 트리거 측정치(830)를 평가하고 교정을 위한 프로그래밍 스텝(162)을 업데이트 또는 변경하기 위한 지정 임계치 또는 범위이다. 트리거 제어 프로파일(840)은 트리거 율(832), 트리거 마진(834) 또는 이들의 조합에 대한 한계, 임계치 또는 범위를 포함할 수 있다. 예를 들어, 트리거 제어 프로파일(840)은 프로그래밍 스텝(162)의 업데이트를 개시하기 위한 에러의 확률, 율 또는 크기, 또는 이들의 조합을 포함할 수 있다.
메모리 시스템(100)은 트리거 측정치(830)와 트리거 제어 프로파일(840)의 비교에 기초하여 프로그래밍 스텝(162)의 값을 변경할 수 있다. 트리거 제어 프로파일(840)은 개발자 또는 설계자, 제조업자, 사용자, 메모리 시스템(100), 또는 이들의 조합에 의한 스텝 프로세싱 주기(822) 밖에서 지정될 수 있다.
메모리 시스템(100)은 호스트 디바이스(108) 또는 메모리 디바이스(102)에 저장된 트리거 제어 프로파일(840)을 액세스함으로써 트리거 제어 프로파일(840)을 결정할 수 있다. 메모리 시스템(100)은 히스테리시스 파라미터(842)에 따르는 값의 조절을 기초로 트리거 제어 프로파일(840)을 더 결정할 수 있다. 히스테리시스 파라미터(842)는 프로그래밍 스텝(162)의 업데이트 시 반복적인 패턴을 제어하기 위한 파라미터이다. 히스테리시스 파라미터(842)는 프로그래밍 스텝(162)을 반대 방향으로 연속적으로 변화시키는 디더(dither)를 최소화하도록 구성 될 수 있다. 히스테리시스 파라미터(842)는 조건이 경계선 또는 한계 근처에 있을 때 프로그래밍 스텝(162)을 유지하는 데 사용될 수 있다. 히스테리시스 파라미터(842)는 어떠한 업데이트도 수행되지 않는 데드 대역을 생성할 수 있다. 히스테리시스 파라미터(842)는 트리거 제어 프로파일(840)과 연관된 값, 가령, 트리거 제어 프로파일(840)과의 계수, 오프셋 또는 이들의 조합을 사용하는 수학적 도함수에 기초한 것일 수 있다. 히스테리시스 파라미터(842)는 트리거 제어 프로파일(840)과 유사하게, 스텝 프로세싱 주기(822) 밖에서 지정될 수 있다.
메모리 시스템(100)은 히스테리시스 파라미터(842)에 기초하여 트리거 제어 프로파일(840)을 조절할 수 있다. 예를 들어, 메모리 시스템(100)은 트리거 제어 프로파일(840)의 지정된 값을 히스테리시스 파라미터(842)와 결합하여 트리거 제어 프로파일(840)을 조절 또는 더 결정할 수 있다. 트리거 제어 프로파일(840)의 지정된 값은 임계 값일 수 있다. 히스테리시스 파라미터(842)가 설정되거나 존재할 때, 트리거 제어 프로파일(840)은 히스테리시스 파라미터(842)에 기초한 범위 크기를 갖는 초기 임계 값을 중심으로 하는 범위일 수 있다. 범위는 히스테리시스 파라미터(842)에 따르는 초기 임계 값의 증가 또는 감소 모두를 기초로, 가령, 초기 임계 값에 대한 히스테리시스 파라미터(842)의 곱셈/나눗셈 또는 덧셈/뺄셈에 의해 또는 이의 도함수에 의해, 계산될 수 있다.
블록(814)에서, 스텝 교정 메커니즘(180)은 프로그래밍 스텝(162)을 교정할 수 있다. 메모리 시스템(100)은 기존 값을 대체하기 위한 프로그래밍 스텝(162)의 새로운 값 또는 인스턴스로서 조절된 스텝(844)을 생성하는 것을 기초로 프로그래밍 스텝(162)을 교정할 수 있다. 조절된 스텝(844)은 프로그래밍 스텝(162)의 교정된 값을 제공하기 위한 것일 수 있다. 메모리 시스템(100)은 트리거 율(832) 또는 트리거 마진(834)과 같은 트리거 제어 프로파일(840) 및 트리거 측정치(830)에 기초하여 프로그래밍 스텝(162)을 교정할 수 있다. 메모리 시스템(100)은 트리거 제어 프로파일(840)과 트리거 측정치(830)의 비교에 기초하여 프로그래밍 스텝(162)을 교정하기 위한 조절된 스텝(844)을 생성할 수 있다. 예를 들어, 트리거 율(832)이 트리거 제어 프로파일(840)보다 작을 때 메모리 시스템(100)은 프로그래밍 스텝(162)을 증가시키기 위해 조절된 스텝(844)을 생성할 수 있다. 트리거 율(832)이 트리거 제어 프로파일(840)보다 클 때 메모리 시스템(100)은 프로그래밍 스텝(162)을 감소시키기 위해 조절된 스텝(844)을 생성할 수 있다. 트리거 율(832)이 트리거 제어 프로파일(840)과 동일하거나 히스테리시스 파라미터(842)를 기초로 하는 트리거 제어 프로파일(840)의 범위 내에 있을 때 메모리 시스템(100)은 프로그래밍 스텝(162)을 유지할 수 있다.
또한, 예를 들어, 트리거 마진(834)이 트리거 제어 프로파일(840)보다 클 때 메모리 시스템(100)은 프로그래밍 스텝(162)을 증가시키기 위한 조절된 스텝(844)을 생성할 수 있다. 트리거 마진(834)이 트리거 제어 프로파일(840)보다 작을 때 메모리 시스템(100)은 프로그래밍 스텝(162)을 감소시키기 위한 조절된 스텝(844)을 생성할 수 있다. 트리거 율(832)이 트리거 제어 프로파일(840)과 동일하거나 히스테리시스 파라미터(842)를 기초로 하는 트리거 제어 프로파일(840)의 범위 내에 있을 때 메모리 시스템(100)은 프로그래밍 스텝(162)을 유지할 수 있다.
메모리 시스템(100)은 프로그래밍 스텝(162)을 조정하기 위한 하나 이상의 지정 증분의 양의 또는 음의 값으로서 조절된 스텝(844)을 생성할 수 있다. 메모리 시스템(100)은 트리거 제어 프로파일(840) 및 트리거 측정치(830)의 조합, 가령, 차이, 비, 평균을 기초로 조절된 스텝(844)을 더 생성할 수 있다. 메모리 시스템(100)은 프로그래밍 스텝(162)와 연관된 프로그래밍 시간(502)을 증가 또는 감소시키기 위해 조절된 스텝(844)을 더 생성할 수 있다. 메모리 시스템(100)은 프로그래밍 스텝(162)을 증가시킴으로써 프로그래밍 시간(502)을 감소시키고, 프로그래밍 스텝(162)을 감소시킴으로써 프로그래밍 시간(502)을 증가시킬 수 있다. 또한, 메모리 시스템(100)은 프로그래밍 스텝(162)과 연관된 에러 측정치(166)를 증가 또는 감소시키기 위해 조절된 스텝(844)을 더 생성할 수 있다. 메모리 시스템(100)은 프로그래밍 스텝(162)을 감소시켜 에러 측정치(166)를 감소시키고, 에러 측정치(166)의 증가를 대가로 프로그래밍 스텝(162)을 증가시킬 수 있다.
메모리 시스템(100)은 프로그래밍 시간(502)과 데이터를 메모리 어레이(104)에 프로그래밍하는 것과 연관된 에러 측정치(166) 간 균형을 맞추기 위해 조절된 스텝(844)을 생성할 수 있다. 메모리 시스템(100)은 트리거 제어 프로파일(840)에 의해 나타내어지는 수용 가능 에러 레벨을 유지하면서 프로그래밍 시간(502)을 개선하기 위해 조절된 스텝(844)을 생성할 수 있다. 메모리 시스템(100)은 메모리 어레이(104)의 동작 또는 사용 동안 트리거 측정치(830), 가령, 트리거 제어 프로파일(840)에 의해 나타나는 고정된 에러 율 또는 고정된 에러 마진을 유지하면서 프로그래밍 시간(502)을 개선하기 위한 조절된 스텝(844)을 생성할 수 있다.
메모리 시스템(100)은 스텝 교정 메커니즘(180)을 사용하여 프로그래밍 스텝(162)을 초기화하고, 프로그래밍 스텝(162) 또는 이들의 조합을 동적으로 교정할 수 있다. 메모리 시스템(100)은 메모리 디바이스(102)의 배치 또는 의도된 사용 전에 메모리 디바이스(102)의 제조 또는 구성의 일부로서 스텝 교정 메커니즘(180)을 구현할 수 있다. 메모리 시스템(100)은 또한 메모리 디바이스(102)의 배치 또는 의도된 사용 동안 그리고 메모리 디바이스(102)의 제조 또는 구성 후에, 스텝 교정 메커니즘(180)을 동적으로 구현하고 조절된 스텝(844)을 동적으로 생성하며 프로그래밍 스텝(162)을 동적으로 업데이트할 수 있다.
예를 들어, 메모리 시스템(100)은 프로그래밍 스텝 각각을 NAND 공장 셋팅 또는 제조 스텝(846)에서 정의된 디폴트 상태로 시작할 수 있다. 제조 스텝(846)은 메모리 디바이스(102)의 제조를 위해 초기에 제공되거나 구성된 프로그래밍 스텝(162)의 인스턴스일 수 있다. 제조 스텝(846)은 실제 거동 또는 특성 대신에 메모리 셀(122)의 이상적이거나 추정된 거동 또는 특성을 설명하는 공장 디폴트 또는 구성 디폴트일 수 있다.
메모리 시스템(100)은 메모리 디바이스(102)의 각 인스턴스에 대한 에러와 프로그래밍 시간의 균형을 맞추기 위해 제조 스텝(846)을 프로그래밍 스텝(162)으로 조정하기 위해 방법(800)을 이용할 수 있다. 메모리 시스템(100)은 앞서 기재된 제조 스텝(846)으로 시작하는 동작을 구현할 수 있다. 스텝 교정 메커니즘(180)의 초기 구현의 종료에서의 프로그래밍 스텝 값은 배치, 판매, 배송, 또는 의도된 사용을 위한 프로그래밍 스텝(162)의 초기화된 인스턴스일 수 있다. 초기화를 위해, 메모리 시스템(100)은 메모리 어레이(104)의 제조 동안 초기에 결정된 프로그래밍 스텝(162)을 나타내는 제조 스텝(846)을 식별할 수 있다. 메모리 시스템(100)은 제조 스텝(846)의 식별을 앞서 기재된 단계들을 구현하기 위한 트리거로서 이용할 수 있다.
메모리 시스템(100)은 메모리 어레이(104)의 사용 또는 배치 전에 그리고 조절된 스텝(844)을 동적으로 생성하기 전에 프로그래밍 스텝(162)을 초기에 교정할 수 있다. 메모리 시스템(100)은 중앙 결과(304)(도 3) 및 오프셋 결과에 따라, 가령, 프로세싱-레벨 교정 메커니즘(176)을 구현함으로써 읽기 레벨 전압(158)을 초기 조정할 수 있다. 메모리 시스템(100)은 예컨대 타깃 교정 메커니즘(178)을 구현함으로써 PV 타깃을 추가로 초기에 조정할 수 있다. 제조 스텝(846)을 사용하는 프로세스 동안 데이터가 메모리 회로에 로딩 또는 써질 수 있다.
메모리 시스템(100)은 초기에 제조 스텝(846)과 연관된 배경 레코드(174)를 초기 결정하고 배경 레코드(174)에 기초하여 트리거 측정치(830)를 계산할 수 있다. 메모리 시스템(100)은 앞서 기재된 바와 같이 제조 스텝(846)을 업데이트 및 대체하기 위해 트리거 측정치(830)에 따라 프로그래밍 스텝(162)을 생성할 수 있다.
메모리 시스템(100)은 배치 후 구현을 위해 설계된 속도보다 빠른 속도로 앞서 기술된 동작들을 구현하는 것에 기초하여 초기화할 수 있다. 메모리 시스템(100)은 공장에서 짧은 시간 동안 빠른 속도로 프로세싱-레벨 교정 메커니즘(176), 타깃 교정 메커니즘(178), 스텝 교정 메커니즘(180)(도 1) 또는 이들의 조합을 이행함으로써, 메모리 셀(122)이 고객 펌웨어를 실행하기 전에 개선되고 수렴된 프로그래밍 스텝을 가질 것이다.
그 후 메모리 시스템(100)은 또한 스텝 교정 메커니즘(180)을 계속 동적으로 이행할 수 있다. 메모리 시스템(100)은 프로그래밍 스텝(162)에 대한 최소 임계 값으로서 제조 스텝(846)을 더 사용할 수 있다. 메모리 시스템(100)은 메모리 디바이스(102)의 제조 후에 초기에 프로그래밍 스텝(162)을 증가시킬 가능성이 있다. 메모리 시스템(100)은 메모리 어레이(104)의 물리적 마모 또는 열화에 대해 조절하기 위해 메모리 디바이스(102)의 수명 또는 사용 내내 프로그래밍 스텝(162)을 감소시킬 가능성이 있다. 메모리 시스템(100)은 제조 스텝(846)을 동적 교정을 위한 프로그래밍 스텝(162)의 하한 또는 최소 인스턴스로서 이용할 수 있다. 메모리 시스템(100)은 프로그래밍 스텝(162)을 제조 스텝(846) 이상으로 유지하기 위해 조절된 스텝(844)을 동적으로 생성할 수 있다.
조절된 스텝(844)이 프로그래밍 스텝(162)의 이전 인스턴스 또는 값을 대치한 프로그래밍 스텝(162)의 조절된 또는 교정된 인스턴스는, 프로세싱-레벨 교정 메커니즘(176), 타깃 교정 메커니즘(178), 또는 이들의 조합을 더 트리거하는 데 사용될 수 있다. 예를 들어, 메모리 시스템(100)은 새로운 프로그래밍 스텝(162)에 따라 읽기 레벨 전압(158)을 재조절할 수 있다. 또한, 메모리 시스템(100)은 새로운 프로그래밍 스텝(162)에 따라 타깃 프로파일(402)을 재조절할 수 있다. 메모리 시스템(100)은 프로그래밍 스텝(162)을 교정하기 위해 페이지들 간 에러 율과 RWB의 균형 이룸을 더 이용할 수 있다.
메모리 시스템 (100)은 반복에 걸쳐 또는 다른 메커니즘, 가령, 프로세싱-레벨 교정 메커니즘(176), 타깃 교정 메커니즘(178) 또는 이들의 조합에 의한 액세스를 위해 다양한 정보를 저장할 수 있다. 예를 들어, 메모리 시스템(100)은 누적 분포 함수, 트리거 측정치(830), 조절된 스텝(844) 또는 이들의 조합을 저장할 수 있다. 배경 레코드(174)에 기초하여 조절된 함수 결과(828)를 사용하여 프로세싱된 트리거 측정치(830)는 프로그래밍 스텝(162)을 동적으로 교정할 수 있는 기능을 제공한다. 메모리 셀(122)의 수명에 걸쳐 프로그래밍 스텝(162)의 동적 및 연속적인 교정은 해당 분야의 통상의 기술자가 현재 알고 있거나 예상하는 어떤 것과는 다르다. 프로그래밍 스텝(162)의 동적 및 연속적인 교정은 더 짧은 프로그래밍 시간(502)을 얻기 위해 불필요한 성능 또는 과다 성능을 상쇄함으로써 시스템 성능을 향상시킬 수 있다.
프로그래밍 스텝(162)을 동적으로 교정하기 위해 조절된 스텝(844)을 생성하는 것은 메모리 어레이(104)의 수명 동안 시스템 제품 성능을 향상시킨다는 이점을 제공한다. 프로그래밍 스텝(162)의 조절은 특히 메모리 어레이(104)의 실시간 실제 조건 또는 상태에 대한 프로그래밍 시간(502)을 개선한다. 배경 레코드(174)를 기초로 조절된 함수 결과(828)를 이용해 처리된 트리거 측정치(830)를 이용해 동적으로 생성된 조절된 스텝(844)은 메모리 어레이(104)의 실시간 실제 조건 또는 상태를 나타냄에 있어 정확도가 증가된다는 이점을 제공한다. 트리거 측정치(830)의 정확한 표현이 사용되어 수용 가능한 에러 레벨을 유지하면서 프로그래밍 시간(502)을 업데이트할 수 있다.
예시적인 목적으로, 흐름도가 상기에서 예로 든 시퀀스 및 프로세스로 기재되었다. 그러나, 방법(800)은 상이할 수 있음이 자명하다. 예를 들어, 블록(808-714)은 블록(814)에서부터 블록(808)까지의 피드백 루프(도시되지 않음)를 갖는 반복 프로세스일 수 있다. 또한, 예를 들어, 블록(812 및 814)은 하나의 단계로 조합될 수 있다.
도 9는 본 발명의 실시예에 따르는 메모리 디바이스를 포함하는 시스템 개략도이다. 도 1-7을 참조하여 앞서 기재된 메모리 디바이스들 중 임의의 하나가 무수한 더 큰 및/또는 더 복잡한 시스템들 중 임의의 것에 포함될 수 있으며, 대표적인 예가 도 9에 개략적으로 도시 된 시스템(980)이다. 시스템(980)은 메모리 디바이스(900), 전원(982), 드라이버(984), 프로세서(986) 및/또는 그 밖의 다른 서브시스템 또는 구성요소(988)를 포함할 수 있다. 메모리 디바이스(900)는 도 1-7를 참조하여 앞서 기재된 메모리 디바이스의 것과 일반적으로 유사한 특징을 포함할 수 있으며, 따라서 호스트 디바이스로부터의 직접 읽기 요청을 수행하기 위한 다양한 특징을 포함할 수 있다. 최종적인 시스템(980)은 다양한 함수, 가령, 메모리 저장, 데이터 프로세싱 및/또는 그 밖의 다른 적절한 기능 중 임의의 것을 수행할 수 있다. 따라서 대표적 시스템(980)은, 비제한적으로, 핸드-헬드 디바이스(가령, 모바일 전화기, 태블릿, 디지털 판독기, 및 디지털 오디오 플레이어), 컴퓨터, 차량, 가전기기 및 그 밖의 다른 제품을 포함할 수 있다. 시스템(980)의 구성요소는 단일 유닛에 하우징되거나 복수의 상호연결된 유닛에 걸쳐 (가령, 통신 네트워크를 통해) 분산될 수 있다. 시스템(980)의 구성요소는 또한 원격 디바이스 및 다양한 컴퓨터 판독형 매체 중 임의의 것을 포함할 수 있다.
상기의 내용으로부터, 본 기술의 특정 실시예가 예시의 목적으로 본 명세서에서 설명되었지만, 본 개시를 벗어나지 않는 다양한 변형이 이루어질 수 있음이 이해될 것이다. 또한, 특정 실시예의 맥락에서 기재된 새로운 기법의 특정 양태가 다른 실시예에서 조합되거나 제거될 수도 있다. 또한, 새로운 기술의 특정 실시예와 연관된 이점이 이들 실시예와 관련하여 설명되었지만, 그 밖의 다른 실시예가 또한 이러한 이점을 나타낼 수 있고, 모든 실시예가 반드시 기술의 범위 내에 있도록 이러한 이점을 나타내야 하는 것은 아니다. 따라서, 본 개시 및 관련 기술은 본 명세서에 명시적으로 도시되거나 설명되지 않은 다른 실시예들을 포함할 수 있다.

Claims (25)

  1. 메모리 디바이스로서,
    복수의 메모리 셀을 포함하는 메모리 어레이, 및
    상기 메모리 어레이에 연결된 제어기를 포함하며, 상기 제어기는
    분포 타깃을 포함하는 타깃 프로파일을 결정하며 - 상기 분포 타깃 각각은 로직 값을 위한 대응하는 프로세싱 레벨을 갖는 메모리 셀의 수량의 희망 패턴에 대응하는 프로그램-검증 타깃을 나타냄 - ,
    데이터를 프로세싱하기 위한 프로세싱 레벨을 구현하는 것을 기초로 피드백 측정치를 결정하고 - 상기 피드백 측정치는 인접한 분포들 사이의 간격에 대응하는 읽기-윈도 버짓을 나타냄 -,
    피드백 측정치에 따라 하나 이상의 상기 분포 타깃을 조절하는 것을 기초로 상기 타깃 프로파일을 동적으로 조정하도록 구성되는, 메모리 디바이스.
  2. 제1항에 있어서, 제어기는 읽기 레벨 전압과 연관된 에러 카운트를 기초로 피드백 측정치를 결정하도록 더 구성되는, 메모리 디바이스.
  3. 제1항에 있어서, 제어기는 인접한 프로그램-검증 타깃들 간 간격을 조절하는 것을 기초로 상기 타깃 프로파일을 동적으로 조정하도록 더 구성되는, 메모리 디바이스.
  4. 제1항에 있어서, 제어기는 메모리 셀에 대한 복수의 페이지 유형에 걸쳐 에러 측정치의 균형을 맞추는 상기 타깃 프로파일을 동적으로 조정하도록 더 구성되는, 메모리 디바이스.
  5. 제1항에 있어서, 제어기는 타깃 프로파일에 대한 그리고 프로그램-검증 타깃에 걸친 순-0 변경(net-zero change)을 기초로 상기 타깃 프로파일을 동적으로 조정하도록 더 구성되는, 메모리 디바이스.
  6. 메모리 디바이스로서,
    메모리 페이지에 배열된 복수의 메모리 셀을 포함하는 메모리 어레이, 및
    메모리 어레이에 연결된 제어기를 포함하며, 상기 제어기는
    에지 타깃 및 중간 타깃을 포함하는 타깃 프로파일을 결정하며 - 각각의 타깃이 메모리 셀에 대한 로직 값에 대응하는 프로그램-검증 타깃을 나타냄 - ,
    읽기-레벨 전압에 대응하는 에러를 기초로 피드백 측정치를 결정하고,
    피드백 측정치에 따라 중간 타깃 중 하나 이상을 변경하는 것에 기초하여 상기 타깃 프로파일을 동적으로 조정하여, 메모리 셀에 대한 페이지 유형에 걸쳐 에러 측정치와 밸리 깊이의 균형을 맞추도록 구성되며,
    에러 측정치 각각은 페이지 유형 중 하나와 연관된 읽기 전압 레벨에 대응하고, 밸리 깊이는 인접한 프로그램-검증 타깃들 간 간격을 나타내는, 메모리 디바이스.
  7. 제6항에 있어서, 제어기는 읽기-레벨 전압 및 상이한 읽기-레벨 전압에 대응하는 에러 카운트를 기초로 계산된 에러-차이 측정치를 포함하는 피드백 측정치를 결정하도록 더 구성되는, 메모리 디바이스.
  8. 제7항에 있어서, 에러-차이 측정치는 제1 에러 카운트와 제2 에러 카운트의 차이를 기초로 계산되며, 제1 에러 카운트는 읽기-레벨 전압에 대응하며 제2 에러 카운트는 읽기-레벨 전압으로부터 오프셋된 상이한 읽기-레벨 전압에 대응하는, 메모리 디바이스.
  9. 제6항에 있어서, 제어기는 메모리 셀에 대한 읽기-레벨 전압의 교정 후에 결정된 피드백 측정치를 기초로 하나 이상의 업데이트된 분포 타깃을 생성하도록 더 구성되는, 메모리 디바이스.
  10. 제6항에 있어서, 제어기는 하나 이상의 업데이트된 분포 타깃을 기초로 스텝 교정 메커니즘을 구현하도록 더 구성되며, 스텝 교정 메커니즘은 메모리 셀을 프로그래밍하기 위한 프로그래밍 스텝을 동적으로 조절하기 위한 조절된 스텝을 생성하는, 메모리 디바이스.
  11. 제6항에 있어서, 제어기는 각각의 워드-라인 그룹에 대해 독립적으로 하나 이상의 업데이트된 분포 타깃을 생성하도록 구성되는, 메모리 디바이스.
  12. 삭제
  13. 제6항에 있어서, 제어기는
    메모리 셀의 하나의 페이지 유형을 나타내는 기준 페이지 유형을 결정하고,
    상기 기준 페이지 유형과 상이한 제2 페이지 유형을 결정하며,
    타깃 프로세싱 주기에 대해, 기준 페이지 유형, 제2 페이지 유형, 또는 둘 모두에 대응하는 하나 이상의 업데이트된 분포 타깃을 생성하도록 더 구성되는, 메모리 디바이스.
  14. 제13항에 있어서, 제어기는
    기준 페이지 유형과 제2 페이지 유형 모두와 상이한 제3 페이지 유형을 결정하고,
    다음 프로세싱 주기에 대해, 기준 페이지 유형, 제3 페이지 유형, 또는 둘 모두에 대응하는 추가 업데이트된 분포 타깃을 생성하도록 더 구성되는, 메모리 디바이스.
  15. 제6항에 있어서, 제어기는 대응하는 프로그램-검증 타깃을 타깃 조절 값만큼 이동시키는 것에 기초하여 업데이트된 분포 타깃을 생성하도록 더 구성되며, 타깃 조절 값은 0 합(zero sum)을 갖는 값들의 상보적 세트인, 메모리 디바이스.
  16. 제6항에 있어서, 제어기는
    페이지 유형들 중 최저 에러 등장을 갖는 고성능 페이지를 식별하고,
    페이지 유형들 중 최고 에러 등장을 갖는 저성능 페이지를 식별하며,
    고성능 페이지, 저성능 페이지, 또는 이들의 조합에 대응하는 중간 타깃을 변경하기 위한 하나 이상의 업데이트된 분포 타깃을 생성하도록 더 구성되는, 메모리 디바이스.
  17. 제6항에 있어서, 복수의 메모리 셀은 비휘발성인, 메모리 디바이스.
  18. 제어기 및 메모리 어레이를 포함하는 메모리 디바이스를 동작시키는 방법으로서, 상기 방법은
    에지 타깃 및 중간 타깃을 포함하는 분포 타깃을 갖는 타깃 프로파일을 결정하는 단계 - 분포 타깃 각각은 메모리 셀에 대한 로직 값에 대응하는 프로그램-검증 타깃을 나타내며, 상기 에지 타깃은 최고 전압 레벨 및 최저 전압 레벨에 대응하는 분포 타깃이며 상기 중간 타깃은 상기 에지 타깃들 사이의 분포 타깃임 - ,
    데이터를 프로세싱하기 위한 프로세싱 레벨을 구현하는 것에 기초하여 피드백 측정치를 결정하는 단계 - 상기 피드백 측정치는 읽기-레벨 전압과 연관된 에러에 대응함 -, 및
    제어기를 이용해, 메모리 셀에 대한 복수의 페이지 유형에 걸쳐 에러 측정치의 균형을 맞추기 위해 피드백 측정치에 따라 프로그램-검증 타깃을 조절하는 것에 기초하여 상기 타깃 프로파일을 동적으로 조정하는 단계 - 상기 타깃 프로파일을 동적으로 조정하는 단계는 피드백 측정치에 따라 하나 이상의 중간 타깃을 업데이트하는 단계를 포함함 -;
    를 포함하는, 메모리 디바이스를 동작시키는 방법.
  19. 제18항에 있어서, 스텝 교정 메커니즘을 구현하는 단계를 더 포함하며, 스텝 교정 메커니즘은 메모리 셀을 프로그래밍하기 위한 프로그래밍 스텝을 동적으로 조절하기 위해 조절된 스텝을 생성하는, 메모리 디바이스를 동작시키는 방법.
  20. 제18항에 있어서,
    메모리 셀에 대한 읽기-레벨 전압을 교정하는 단계를 더 포함하며,
    읽기-레벨 전압의 교정 동안 또는 교정 후 피드백 측정치가 교정되는, 메모리 디바이스를 동작시키는 방법.
  21. 삭제
  22. 제18항에 있어서, 제1 에러 카운트와 제2 에러 카운트 간 차이를 기초로 계산된 에러-차이 측정치를 포함하는 피드백 측정치를 결정하는 단계를 더 포함하며, 제1 에러 카운트는 읽기-레벨 전압에 대응하고 제2 에러 카운트는 읽기-레벨 전압으로부터 오프셋된 상이한 읽기-레벨 전압에 대응하는, 메모리 디바이스를 동작시키는 방법.
  23. 제18항에 있어서, 상기 타깃 프로파일을 조정하는 단계는
    메모리 셀의 하나의 페이지 유형을 나타내는 기준 페이지 유형을 결정하는 단계,
    상기 기준 페이지 유형과 상이한 제2 페이지 유형을 결정하는 단계, 및
    타깃 프로세싱 주기에 대해, 기준 페이지 유형, 제2 페이지 유형, 또는 둘 모두에 대응하는 프로그램-검증 타깃 중 하나 이상을 조절하는 것에 기초하여 상기 타깃 프로파일을 조정하는 단계를 포함하는, 메모리 디바이스를 동작시키는 방법.
  24. 제23항에 있어서, 상기 타깃 프로파일을 조정하는 단계는
    기준 페이지 유형 및 제2 페이지 유형 모두와 상이한 제3 페이지 유형을 결정하는 단계, 및
    다음 프로세싱 주기에 대해, 기준 페이지 유형, 제3 페이지 유형, 또는 둘 모두에 대응하는 타깃 프로파일을 추가적으로 조정하는 단계를 포함하는, 메모리 디바이스를 동작시키는 방법.
  25. 제18항에 있어서, 상기 타깃 프로파일을 동적으로 조정하는 단계는 프로그램-검증 타깃의 조절 양이 0으로 합산되는 타깃 프로파일에 대한 순-0 합(net-zero sum)을 기초로 상기 타깃 프로파일을 동적으로 조정하는 단계를 포함하는, 메모리 디바이스를 동작시키는 방법.
KR1020197038164A 2017-05-25 2018-05-22 동적 타깃 교정을 이용하는 메모리 디바이스 KR102398957B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/605,855 2017-05-25
US15/605,855 US10140040B1 (en) 2017-05-25 2017-05-25 Memory device with dynamic program-verify voltage calibration
PCT/US2018/033877 WO2018217740A1 (en) 2017-05-25 2018-05-22 Memory device with dynamic target calibration

Publications (2)

Publication Number Publication Date
KR20200003240A KR20200003240A (ko) 2020-01-08
KR102398957B1 true KR102398957B1 (ko) 2022-05-17

Family

ID=64315455

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197038164A KR102398957B1 (ko) 2017-05-25 2018-05-22 동적 타깃 교정을 이용하는 메모리 디바이스

Country Status (6)

Country Link
US (4) US10140040B1 (ko)
EP (1) EP3631803A4 (ko)
KR (1) KR102398957B1 (ko)
CN (1) CN110832594A (ko)
TW (1) TWI666639B (ko)
WO (1) WO2018217740A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140040B1 (en) 2017-05-25 2018-11-27 Micron Technology, Inc. Memory device with dynamic program-verify voltage calibration
US10452480B2 (en) 2017-05-25 2019-10-22 Micron Technology, Inc. Memory device with dynamic processing level calibration
US10459785B2 (en) * 2017-09-27 2019-10-29 Western Digital Technologies, Inc. Error detection for training non-volatile memories
US10936205B2 (en) 2017-10-05 2021-03-02 International Business Machines Corporation Techniques for retention and read-disturb aware health binning
US10824352B2 (en) 2017-12-06 2020-11-03 International Business Machines Corporation Reducing unnecessary calibration of a memory unit for which the error count margin has been exceeded
US10453537B1 (en) * 2018-05-10 2019-10-22 International Business Machines Corporation Techniques for reducing read voltage threshold calibration in non-volatile memory
US10664194B2 (en) 2018-05-16 2020-05-26 Micron Technology, Inc. Memory system with dynamic calibration using a variable adjustment mechanism
US10566063B2 (en) 2018-05-16 2020-02-18 Micron Technology, Inc. Memory system with dynamic calibration using a trim management mechanism
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
US11113129B2 (en) 2018-07-13 2021-09-07 Micron Technology, Inc. Real time block failure analysis for a memory sub-system
KR20200016606A (ko) * 2018-08-07 2020-02-17 삼성전자주식회사 메모리 컨트롤러, 메모리 컨트롤러의 동작 방법 및 메모리 시스템
US10446241B1 (en) * 2018-08-13 2019-10-15 Micron Technology, Inc. Automatic calibration (autocal) error recovery for a memory sub-system
US10699791B2 (en) 2018-08-24 2020-06-30 International Business Machines Corporation Adaptive read voltage threshold calibration in non-volatile memory
US10658066B2 (en) * 2018-09-05 2020-05-19 Micron Technology, Inc. First-pass continuous read level calibration
US10629278B2 (en) 2018-09-05 2020-04-21 Micron Technology, Inc. First-pass dynamic program targeting (DPT)
US10936246B2 (en) 2018-10-10 2021-03-02 Micron Technology, Inc. Dynamic background scan optimization in a memory sub-system
US10698636B1 (en) 2018-12-10 2020-06-30 Micron Technology, Inc. Trigger margin based dynamic program step characteristic adjustment
US11257552B2 (en) * 2019-02-21 2022-02-22 Macronix International Co., Ltd. Programming a memory device
US10748625B1 (en) * 2019-03-07 2020-08-18 Micron Technology, Inc. Dynamic programing of valley margins of a memory cell
CN110308876B (zh) * 2019-07-01 2024-05-17 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
TWI712886B (zh) * 2019-07-05 2020-12-11 大陸商合肥兆芯電子有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US10990475B2 (en) * 2019-07-10 2021-04-27 Micron Technology, Inc. Read level edge find operations in a memory sub-system
US11119848B2 (en) 2019-07-10 2021-09-14 Micron Technology, Inc. Logic based read sample offset in a memory sub system
US11061752B2 (en) 2019-07-17 2021-07-13 Micron Technology, Inc. Dynamic programming of page margins
US11264103B2 (en) 2019-08-28 2022-03-01 International Business Machines Corporation Hybrid read voltage calibration in non-volatile random access memory
US11361825B2 (en) 2019-12-18 2022-06-14 Micron Technology, Inc. Dynamic program erase targeting with bit error rate
US11385984B2 (en) * 2020-02-24 2022-07-12 Western Digital Technologies, Inc. Variable read scan for solid-state storage device quality of service
US11200956B2 (en) * 2020-04-23 2021-12-14 Micron Technology, Inc. Read level calibration in memory devices using embedded servo cells
US11880571B2 (en) 2020-05-13 2024-01-23 Micron Technology, Inc. Counter-based methods and systems for accessing memory cells
US11500637B2 (en) 2020-06-15 2022-11-15 Micron Technology, Inc. Software instruction set update of memory die using page buffers
US11488682B2 (en) 2020-06-24 2022-11-01 Sandisk Technologies Llc Calibration for integrated memory assembly
US11495309B2 (en) * 2020-12-16 2022-11-08 Micron Technology, Inc. Initiating media management operation using voltage distribution metrics in memory system
US11514983B2 (en) * 2021-04-02 2022-11-29 Micron Technology, Inc. Identify the programming mode of memory cells based on cell statistics obtained during reading of the memory cells
US11861177B2 (en) * 2021-08-06 2024-01-02 Micron Technology, Inc. Configurable verify level for a set of data in a memory device
IT202100024374A1 (it) * 2021-09-22 2023-03-22 St Microelectronics Srl Dispositivo di memoria non-volatile con migliorata ciclatura delle celle e relativo metodo di funzionamento del dispositivo di memoria non-volatile
KR102491655B1 (ko) 2021-10-01 2023-01-27 삼성전자주식회사 에러 카운트를 결정하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법
US11972818B2 (en) 2022-06-15 2024-04-30 Sandisk Technologies, Llc Refresh frequency-dependent system-level trimming of verify level offsets for non-volatile memory
US20230410921A1 (en) * 2022-06-21 2023-12-21 Sandisk Technologies Llc Three-bit-per-cell programming using a four-bit-per-cell programming algorithm

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130227200A1 (en) * 2012-02-23 2013-08-29 Stec, Inc. Determining bias information for offsetting operating variations in memory cells based on wordline address

Family Cites Families (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7082056B2 (en) 2004-03-12 2006-07-25 Super Talent Electronics, Inc. Flash memory device and architecture with multi level cells
US7047548B2 (en) 2001-04-17 2006-05-16 International Business Machines Corporation Recall of previous program channel
GB2383455B (en) 2001-12-21 2004-02-25 Motorola Inc Non-volatile memory and method for operating a non-volatile memory
US7073103B2 (en) * 2002-12-05 2006-07-04 Sandisk Corporation Smart verify for multi-state memories
DE602004023209D1 (de) 2003-07-30 2009-10-29 Sandisk Il Ltd Verfahren und system zur optimierung von zuverlässigkeit und leistungsfähigkeit von programmierdaten in nichtflüchtigen speicherbausteinen
KR101221381B1 (ko) 2005-03-08 2013-01-11 보다폰 그룹 피엘씨 기능 정지 정보 통지 방법 및 이동 통신 단말 장치
US7496789B2 (en) 2005-06-06 2009-02-24 Oracle International Corporation Handling restart attempts for high availability managed resources
JP4950886B2 (ja) 2005-07-15 2012-06-13 パナソニック株式会社 不揮発性記憶装置、メモリコントローラ及び不良領域検出方法
US20070025167A1 (en) 2005-07-27 2007-02-01 Marco Ziegelmayer Method for testing a memory device, test unit for testing a memory device and memory device
JP5011818B2 (ja) 2006-05-19 2012-08-29 富士通セミコンダクター株式会社 半導体記憶装置及びその試験方法
US7643348B2 (en) 2007-04-10 2010-01-05 Sandisk Corporation Predictive programming in non-volatile memory
US8006166B2 (en) 2007-06-12 2011-08-23 Micron Technology, Inc. Programming error correction code into a solid state memory device with varying bits per cell
US7817467B2 (en) 2007-09-07 2010-10-19 Micron Technology, Inc. Memory controller self-calibration for removing systemic influence
KR20090048130A (ko) 2007-11-09 2009-05-13 주식회사 하이닉스반도체 불휘발성 메모리 장치의 프로그램 방법
KR101423052B1 (ko) 2008-06-12 2014-07-25 삼성전자주식회사 메모리 장치 및 읽기 레벨 제어 방법
US7889575B2 (en) 2008-09-22 2011-02-15 Sandisk Corporation On-chip bias voltage temperature coefficient self-calibration mechanism
JP5923309B2 (ja) 2009-01-09 2016-05-24 インターデイジタル パテント ホールディングス インコーポレイテッド データフローモビリティ
US7848175B2 (en) 2009-01-29 2010-12-07 International Business Machines Corporation Calibration of memory driver with offset in a memory controller and memory device interface in a communication bus
US8036044B2 (en) * 2009-07-16 2011-10-11 Sandisk Technologies Inc. Dynamically adjustable erase and program levels for non-volatile memory
JP2011107851A (ja) 2009-11-13 2011-06-02 Toshiba Corp メモリシステム
US8661184B2 (en) * 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
US8576625B1 (en) 2010-04-20 2013-11-05 Marvell International Ltd. Decoder parameter estimation using multiple memory reads
US8560899B2 (en) 2010-07-30 2013-10-15 Infineon Technologies Ag Safe memory storage by internal operation verification
US8499227B2 (en) 2010-09-23 2013-07-30 Micron Technology, Inc. Memory quality monitor based compensation method and apparatus
US8848438B2 (en) 2010-10-05 2014-09-30 Stec, Inc. Asymmetric log-likelihood ratio for MLC flash channel
US8665650B2 (en) 2011-02-18 2014-03-04 Marvell World Trade Ltd. Reliability metrics management for soft decoding
US8441861B2 (en) 2011-03-16 2013-05-14 Micron Technology, Inc. Self-check calibration of program or erase and verify process using memory cell distribution
US8510636B2 (en) 2011-04-01 2013-08-13 Intel Corporation Dynamic read channel calibration for non-volatile memory devices
US8645773B2 (en) 2011-06-30 2014-02-04 Seagate Technology Llc Estimating temporal degradation of non-volatile solid-state memory
US9311969B2 (en) * 2011-07-22 2016-04-12 Sandisk Technologies Inc. Systems and methods of storing data
KR20130019082A (ko) * 2011-08-16 2013-02-26 삼성전자주식회사 비휘발성 메모리 장치의 설계 방법
KR20130049543A (ko) 2011-11-04 2013-05-14 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 불휘발성 메모리 장치를 제어하는 제어 방법
US8645752B2 (en) 2011-11-08 2014-02-04 Micron Technology, Inc. Apparatuses and methods for operating a memory device
US9679664B2 (en) 2012-02-11 2017-06-13 Samsung Electronics Co., Ltd. Method and system for providing a smart memory architecture
US9053808B2 (en) 2012-06-21 2015-06-09 Sandisk Technologies Inc. Flash memory with targeted read scrub algorithm
US20140026003A1 (en) 2012-07-23 2014-01-23 Zhengang Chen Flash memory read error rate reduction
US8914696B2 (en) 2012-08-29 2014-12-16 Seagate Technology Llc Flash memory read scrub and channel tracking
KR102038408B1 (ko) 2012-10-25 2019-10-30 삼성전자주식회사 회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법
US9225356B2 (en) 2012-11-12 2015-12-29 Freescale Semiconductor, Inc. Programming a non-volatile memory (NVM) system having error correction code (ECC)
US9081708B2 (en) 2012-11-16 2015-07-14 Freescale Semiconductor, Inc. Dynamic read scheme for high reliability high performance flash memory
KR20140072637A (ko) * 2012-12-05 2014-06-13 삼성전자주식회사 비휘발성 메모리 장치 및 메모리 컨트롤러의 동작 방법
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9367389B2 (en) * 2013-03-14 2016-06-14 Seagate Technology Llc Recovery strategy that reduces errors misidentified as reliable
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
US9367391B2 (en) 2013-03-15 2016-06-14 Micron Technology, Inc. Error correction operations in a memory device
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US10475523B2 (en) 2013-05-31 2019-11-12 Western Digital Technologies, Inc. Updating read voltages triggered by the rate of temperature change
US9697905B2 (en) * 2013-05-31 2017-07-04 Sandisk Technologies Llc Updating read voltages using syndrome weight comparisons
US9728263B2 (en) 2013-05-31 2017-08-08 Sandisk Technologies Llc Method and device for iteratively updating read voltages
US20170148510A1 (en) 2013-05-31 2017-05-25 Sandisk Technologies Llc Updating read voltages
US9275740B2 (en) 2013-08-05 2016-03-01 CNEXLABS, Inc. Method and apparatus for improving data integrity using threshold voltage recalibration
US9378083B2 (en) 2013-12-04 2016-06-28 Seagate Technology Llc Adaptive read error recovery for memory devices
US20150378415A1 (en) 2014-02-05 2015-12-31 Christopher George Back-up power supply systems and methods for use with solid state storage devices
US9349472B2 (en) 2014-03-25 2016-05-24 Integrated Silicon Solution, Inc. Flash memory device with sense-amplifier-bypassed trim data read
US9329933B2 (en) 2014-04-25 2016-05-03 Freescale Semiconductor, Inc. Imminent read failure detection based upon changes in error voltage windows for NVM cells
US9396080B2 (en) 2014-08-07 2016-07-19 Sandisk Technologies Llc Storage module and method for analysis and disposition of dynamically tracked read error events
US10255304B2 (en) 2014-09-30 2019-04-09 International Business Machines Corporation Removal of garbage data from a database
KR102242561B1 (ko) 2014-10-02 2021-04-20 삼성전자주식회사 저항성 메모리 장치, 저항성 메모리 시스템 및 저항성 메모리 장치의 동작방법
US9583206B2 (en) 2014-10-02 2017-02-28 Sandisk Technologies Llc Data storage device having reflow awareness
US9563373B2 (en) 2014-10-21 2017-02-07 International Business Machines Corporation Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management
US10078546B2 (en) 2014-10-24 2018-09-18 Micron Technology, Inc. Temperature related error management
KR102290974B1 (ko) 2014-11-07 2021-08-19 삼성전자주식회사 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법
US9607710B2 (en) * 2014-11-10 2017-03-28 Sk Hynix Memory Solutions Inc. Read-threshold calibration in a solid state storage system
US9905302B2 (en) 2014-11-20 2018-02-27 Western Digital Technologies, Inc. Read level grouping algorithms for increased flash performance
US9576671B2 (en) 2014-11-20 2017-02-21 Western Digital Technologies, Inc. Calibrating optimal read levels
US9720754B2 (en) 2014-11-20 2017-08-01 Western Digital Technologies, Inc. Read level grouping for increased flash performance
US9558847B2 (en) 2014-11-21 2017-01-31 Sandisk Technologies Llc Defect logging in nonvolatile memory
US20160162185A1 (en) 2014-12-05 2016-06-09 Sandisk Technologies Inc. Data programming for a memory having a three-dimensional memory configuration
US20160179428A1 (en) 2014-12-22 2016-06-23 Sandisk Technologies Inc. Dynamic programming adjustments in memory for non-critical or low power mode tasks
US10339048B2 (en) 2014-12-23 2019-07-02 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
US9558064B2 (en) 2015-01-28 2017-01-31 Micron Technology, Inc. Estimating an error rate associated with memory
US9786356B2 (en) 2015-01-30 2017-10-10 Qualcomm Incorporated Memory device with adaptive voltage scaling based on error information
US9535786B2 (en) 2015-02-09 2017-01-03 HGST Netherlands B.V. Adaptive targeting of read levels in storage devices
US9355735B1 (en) 2015-02-20 2016-05-31 Sandisk Technologies Inc. Data recovery in a 3D memory device with a short circuit between word lines
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
JP2016170583A (ja) 2015-03-12 2016-09-23 株式会社東芝 メモリシステムおよび情報処理システム
GB2537484B (en) 2015-03-20 2019-07-03 HGST Netherlands BV Read level grouping for increased flash performance
US9472298B1 (en) 2015-05-13 2016-10-18 Sandisk Technologies Llc Dynamic read valley search in non-volatile memory
US20170053714A1 (en) 2015-08-19 2017-02-23 Micron Technology, Inc. Read voltage offset
KR102381218B1 (ko) 2015-09-25 2022-04-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20170039795A (ko) 2015-10-01 2017-04-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10284232B2 (en) 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
US10180874B2 (en) 2015-10-28 2019-01-15 Western Digital Technologies, Inc. Storage device operations based on bit error rate (BER) estimate
US20170148525A1 (en) 2015-11-25 2017-05-25 Sandisk Technologies Llc Method and System For Adaptively Adjusting a Verify Voltage to Reduce Storage Raw Bit Error Rate
US9558850B1 (en) 2015-12-01 2017-01-31 International Business Machines Corporation Efficient calibration of a data eye for memory devices
KR20170099157A (ko) 2016-02-23 2017-08-31 삼성전자주식회사 온도 정보를 제공하는 방법 및 이를 지원하는 전자 장치
US9761308B1 (en) 2016-03-11 2017-09-12 Western Digital Technologies, Inc. Systems and methods for adaptive read level adjustment
US10191799B2 (en) 2016-12-29 2019-01-29 Sandisk Technologies Llc BER model evaluation
AU2018216954B2 (en) 2017-02-02 2022-04-14 Janssen Vaccines & Prevention B.V. Piperazine derivatives for influenza virus inhibition
JP2018163709A (ja) 2017-03-24 2018-10-18 東芝メモリ株式会社 メモリシステム
FR3066308B1 (fr) 2017-05-09 2021-07-30 Commissariat Energie Atomique Procede de gestion de l'endurance d'une memoire reinscriptible non volatile et dispositif de programmation d'une telle memoire
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
US10140040B1 (en) * 2017-05-25 2018-11-27 Micron Technology, Inc. Memory device with dynamic program-verify voltage calibration
US10236070B2 (en) 2017-06-27 2019-03-19 Western Digital Technologies, Inc. Read level tracking and optimization
US10236067B2 (en) 2017-08-02 2019-03-19 International Business Machines Corporation State-dependent read voltage threshold adaptation for nonvolatile memory
US10347344B2 (en) 2017-08-29 2019-07-09 Micron Technology, Inc. Read voltage calibration based on host IO operations
US20210191638A1 (en) 2017-09-15 2021-06-24 Pure Storage, Inc. Voltage thresholds in flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10283205B2 (en) 2017-09-30 2019-05-07 Micron Technology, Inc. Preemptive idle time read scans
US10936205B2 (en) 2017-10-05 2021-03-02 International Business Machines Corporation Techniques for retention and read-disturb aware health binning
US10276233B1 (en) 2017-10-31 2019-04-30 Seagate Technology Llc Adaptive read threshold voltage tracking with charge leakage mitigation using threshold voltage offsets
KR102341261B1 (ko) 2017-11-13 2021-12-20 삼성전자주식회사 매스비트 카운터를 포함하는 메모리 장치 및 그의 동작 방법
US10418097B2 (en) 2017-11-27 2019-09-17 Western Digital Technologies, Inc. Non-volatile storage system with read calibration
US10170195B1 (en) 2017-12-06 2019-01-01 International Business Machines Corporation Threshold voltage shifting at a lower bit error rate by intelligently performing dummy configuration reads
US10824352B2 (en) 2017-12-06 2020-11-03 International Business Machines Corporation Reducing unnecessary calibration of a memory unit for which the error count margin has been exceeded
US11126495B2 (en) 2018-03-07 2021-09-21 Micron Technology, Inc. Dynamic error handling in a memory system
US10379739B1 (en) 2018-03-23 2019-08-13 Western Digital Technologies, Inc. Data storage device read threshold adjustment according to environmental parameters
US10664194B2 (en) 2018-05-16 2020-05-26 Micron Technology, Inc. Memory system with dynamic calibration using a variable adjustment mechanism
US10566063B2 (en) 2018-05-16 2020-02-18 Micron Technology, Inc. Memory system with dynamic calibration using a trim management mechanism
US20190354312A1 (en) 2018-05-16 2019-11-21 Micron Technology, Inc. Memory system with a variable sampling rate mechanism
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
US11113129B2 (en) 2018-07-13 2021-09-07 Micron Technology, Inc. Real time block failure analysis for a memory sub-system
US10936246B2 (en) 2018-10-10 2021-03-02 Micron Technology, Inc. Dynamic background scan optimization in a memory sub-system
US10811091B2 (en) 2018-10-12 2020-10-20 Western Digital Technologies, Inc. Adaptive processing for read threshold voltage calibration
US11107550B2 (en) 2019-07-12 2021-08-31 Micron Technology, Inc. Self-adaptive read voltage adjustment using boundary error statistics for memories with time-varying error rates
KR102460717B1 (ko) 2021-08-17 2022-10-31 삼성전자주식회사 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130227200A1 (en) * 2012-02-23 2013-08-29 Stec, Inc. Determining bias information for offsetting operating variations in memory cells based on wordline address

Also Published As

Publication number Publication date
US11934666B2 (en) 2024-03-19
TWI666639B (zh) 2019-07-21
EP3631803A1 (en) 2020-04-08
CN110832594A (zh) 2020-02-21
US10521140B2 (en) 2019-12-31
US20220291847A1 (en) 2022-09-15
US10140040B1 (en) 2018-11-27
US11347405B2 (en) 2022-05-31
US20180341416A1 (en) 2018-11-29
EP3631803A4 (en) 2021-04-07
KR20200003240A (ko) 2020-01-08
US20180341415A1 (en) 2018-11-29
WO2018217740A1 (en) 2018-11-29
TW201909183A (zh) 2019-03-01
US20200004440A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
KR102398957B1 (ko) 동적 타깃 교정을 이용하는 메모리 디바이스
KR102380614B1 (ko) 동적 프로그래밍 교정을 이용하는 메모리 디바이스
US12001286B2 (en) Memory device with dynamic processing level calibration
US11733929B2 (en) Memory system with dynamic calibration using a variable adjustment mechanism
TWI515748B (zh) 測量記憶體錯誤校正資料之方法及儀器
US11557345B2 (en) Dynamic memory programming voltage step for strenuous device conditions
CN113990361A (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