KR102380614B1 - 동적 프로그래밍 교정을 이용하는 메모리 디바이스 - Google Patents

동적 프로그래밍 교정을 이용하는 메모리 디바이스 Download PDF

Info

Publication number
KR102380614B1
KR102380614B1 KR1020197038163A KR20197038163A KR102380614B1 KR 102380614 B1 KR102380614 B1 KR 102380614B1 KR 1020197038163 A KR1020197038163 A KR 1020197038163A KR 20197038163 A KR20197038163 A KR 20197038163A KR 102380614 B1 KR102380614 B1 KR 102380614B1
Authority
KR
South Korea
Prior art keywords
memory
trigger
target
memory system
level
Prior art date
Application number
KR1020197038163A
Other languages
English (en)
Other versions
KR20200000482A (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 마이크론 테크놀로지, 인크
Priority to KR1020227009917A priority Critical patent/KR20220043243A/ko
Publication of KR20200000482A publication Critical patent/KR20200000482A/ko
Application granted granted Critical
Publication of KR102380614B1 publication Critical patent/KR102380614B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • 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
    • 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/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • 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

Landscapes

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

Abstract

메모리 시스템은 복수의 메모리 셀을 포함하는 메모리 어레이, 및 상기 메모리 어레이에 연결되는 제어기를 포함하고, 상기 제어기는 프로그래밍 스텝과 연관된 배경 레코드를 결정하며 - 상기 배경 레코드는 이전 데이터 동작을 나타내기 위한 것임 - , 배경 레코드를 기초로 트리거 측정치를 계산하고 - 트리거 측정치는 에러 복구 메커니즘의 구현을 추정하기 위한 것임 - , 트리거 측정치를 기초로 조절된 스텝을 생성하도록 구성된다.

Description

동적 프로그래밍 교정을 이용하는 메모리 디바이스
관련 출원(들)
본 출원은 Bruce A.Liikanen 및 Larry J.Koudele에 의해 함께 출원된 미국 특허 출원, 발명의 명칭 "MEMORY DEVICE WITH DYNAMIC TARGET CALIBRATION"와 관련된 주제 사항을 포함한다. 관련 출원은 Micron Technology, Inc.에게 양도되었고 도켓 넘버 10829-9200.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는 본 발명의 실시예에 따르는 메모리 디바이스를 포함하는 시스템 개략도이다.
이하에서 더 상세히 기재된 바와 같이, 본 명세서에 개시된 기법은 메모리 디바이스, 메모리 디바이스를 갖는 시스템, 및 메모리 디바이스에 대한 프로그래밍 스텝(programming step)을 동적으로 교정하기 위한 관련 방법과 관련된다. 메모리 디바이스는 프로그래밍 스텝, 가령, 희망 전하량에 도달하기 위해 메모리 셀에 반복적으로 저장되는 증분 전하량을 동적으로 교정하기 위한 교정 메커니즘을 이용할 수 있다. 메모리 디바이스는 메모리 디바이스가 사용되는 동안(가령, 동작 중에) 프로그래밍 스텝을 동적으로 교정하도록 구성될 수 있다.
프로그래밍 스텝을 교정하기 위해, 메모리 디바이스는 에러 복구와 연관된 이벤트에 대한 추정 또는 예측을 계산할 수 있다. 추정 또는 예측은 메모리 디바이스의 다양한 양태를 교정하는 동안 또는 메모리 디바이스가 사용되는 동안 복수의 샘플 또는 결과, 가령, 데이터 카운트 또는 에러 율을 수집하는 것에 기초할 수 있다. 메모리 디바이스는 읽기-윈도 버짓(RWB: read-window budget)을 활용하고 메모리 디바이스에 대한 프로그래밍 시간을 감소시키기 위해 프로그래밍 스텝을 동적으로 교정할 수 있다. RWB는 임계 전압 및 인접 로직 상태에 대응하는 전압 간 간격을 나타내고 또한 데이터를 쓰기 위해 허용되는 정확도 또는 허용 공차의 정도에 대응할 수 있다. 메모리 디바이스는 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항에 있어서, 제어기는 메모리 디바이스의 동작 동안 프로세싱 레벨을 반복적으로 교정하기 위한 프로세싱-레벨 교정 메커니즘의 구현을 기초로 조절된 스텝을 생성하도록 더 구성되는, 메모리 디바이스.
  6. 제1항에 있어서, 제어기는 메모리 디바이스의 동작 동안 타깃 프로파일을 교정하기 위한 타깃 교정 메커니즘의 구현을 기초로 조절된 스텝을 생성하도록 더 구성되는, 메모리 디바이스.
  7. 제6항에 있어서, 제어기는 조절된 스텝을 생성하기 위한 스텝 교정 메커니즘을 구현하도록 더 구성되며, 상기 스텝 교정 메커니즘은 상기 타깃 교정 메커니즘을 구현하는 것보다 덜 빈번하게 구현되는, 메모리 디바이스.
  8. 삭제
  9. 제1항에 있어서, 제어기는 프로그래밍 시간과 메모리 어레이에 데이터를 프로그래밍하는 것과 연관된 에러 측정치의 균형을 맞추기 위해 조절된 스텝을 생성하도록 더 구성되는, 메모리 디바이스.
  10. 제1항에 있어서, 제어기는 트리거 측정치를 타깃 값 범위로 또는 상기 범위 내로 유지하기 위해 조절된 스텝을 생성하도록 더 구성되는, 메모리 디바이스.
  11. 제1항에 있어서, 제어기는 프로그래밍 스텝과 연관된 프로그래밍 시간을 증가 또는 감소시키기 위해 조절된 스텝을 생성하도록 더 구성되는, 메모리 디바이스.
  12. 삭제
  13. 삭제
  14. 제1항에 있어서, 제어기는 에러 카운트로부터 트리거 측정치를 직접 계산하도록 더 구성되는, 메모리 디바이스.
  15. 제1항에 있어서, 제어기는
    코드-워드와 연관된 에러 카운트 및 프로그래밍 스텝을 추적하는 것에 기초하여 배경 레코드를 결정하고,
    프로그래밍 스텝을 교정할 때의 임계치를 나타내기 위한 트리거 제어 프로파일을 결정하며,
    트리거 제어 프로파일과 트리거 측정치의 비교에 기초하여 조절된 스텝을 생성 - 조절된 스텝은 프로그래밍 스텝의 교정된 값을 제공하기 위한 것임 - 하도록 더 구성되는, 메모리 디바이스.
  16. 제15항에 있어서, 제어기는
    배경 레코드를 정규화하기 위해 배경 레코드를 기초로 누적 분포 함수를 생성하며,
    누적 분포 함수 또는 누적 분포 함수의 프로세싱 결과를 기초로 트리거 측정치를 계산하도록 더 구성되는, 메모리 디바이스.
  17. 제16항에 있어서, 제어기는 스텝 교정 메커니즘의 각각의 반복 또는 구현에 대해 누적 분포 함수를 생성하여 프로그래밍 스텝을 교정하거나 누적 분포 함수를 반복적으로 업데이트하는 것에 기초하도록 더 구성되는, 메모리 디바이스.
  18. 제어기 및 메모리 셀을 포함하는 메모리 디바이스를 동작시키는 방법으로서, 상기 방법은
    프로그래밍 스텝과 연관된 배경 레코드를 결정하는 단계 - 상기 배경 레코드는 이전 데이터 동작을 나타내기 위한 것임 - ,
    배경 레코드를 정규화하기 위한 배경 레코드를 기초로 누적 분포 함수를 생성하는 단계,
    배경 레코드를 기초로 트리거 측정치를 계산하는 단계 - 트리거 측정치는 에러 복구 메커니즘의 구현을 추정하기 위한 것이며, 트리거 측정치를 계산하는 단계는 누적 분포 함수 또는 누적 분포 함수의 프로세싱 결과를 기초로 트리거 측정치를 계산하는 단계를 포함함 - , 및
    제어기를 이용해, 트리거 측정치를 기초로 조절된 스텝을 생성하는 단계,
    를 포함하는, 메모리 디바이스를 동작시키는 방법.
  19. 제18항에 있어서, 배경 레코드를 결정하는 단계는 메모리 어레이의 동작에 걸쳐 에러 측정치를 저장하는 단계를 포함하는, 메모리 디바이스를 동작시키는 방법.
  20. 제18항에 있어서,
    트리거 측정치를 계산하는 단계는 에러 복구 메커니즘을 구현하는 빈도를 추정하기 위한 트리거 율을 계산하는 단계를 포함하고,
    조절된 스텝을 생성하는 단계는 트리거 율을 기초로 조절된 스텝을 생성하는 단계를 포함하는, 메모리 디바이스를 동작시키는 방법.
  21. 제18항에 있어서,
    트리거 측정치를 계산하는 단계는 시스템 트리거 조건과 에러 카운트 간 관계를 나타내기 위한 트리거 마진을 계산하는 단계를 포함하고,
    조절된 스텝을 생성하는 단계는 트리거 마진을 기초로 조절된 스텝을 생성하는 단계를 포함하는, 메모리 디바이스를 동작시키는 방법.
  22. 제18항에 있어서, 조절된 스텝을 생성하는 단계는 트리거 측정치를 타깃 값의 범위로 또는 상기 범위 내로 유지하기 위한 조절된 스텝을 생성하는 단계를 포함하는, 메모리 디바이스를 동작시키는 방법.
  23. 삭제
  24. 삭제
  25. 제18항에 있어서, 누적 분포 함수를 생성하는 단계는 프로그래밍 스텝의 반복 또는 교정 각각에 대해 누적 분포 함수를 반복적으로 업데이트하는 단계를 포함하는, 메모리 디바이스를 동작시키는 방법.
KR1020197038163A 2017-05-25 2018-05-22 동적 프로그래밍 교정을 이용하는 메모리 디바이스 KR102380614B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227009917A KR20220043243A (ko) 2017-05-25 2018-05-22 동적 프로그래밍 교정을 이용하는 메모리 디바이스

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/605,853 2017-05-25
US15/605,853 US10402272B2 (en) 2017-05-25 2017-05-25 Memory device with dynamic programming calibration
PCT/US2018/033873 WO2018217737A2 (en) 2017-05-25 2018-05-22 Memory device with dynamic programming calibration

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227009917A Division KR20220043243A (ko) 2017-05-25 2018-05-22 동적 프로그래밍 교정을 이용하는 메모리 디바이스

Publications (2)

Publication Number Publication Date
KR20200000482A KR20200000482A (ko) 2020-01-02
KR102380614B1 true KR102380614B1 (ko) 2022-03-30

Family

ID=64396993

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197038163A KR102380614B1 (ko) 2017-05-25 2018-05-22 동적 프로그래밍 교정을 이용하는 메모리 디바이스
KR1020227009917A KR20220043243A (ko) 2017-05-25 2018-05-22 동적 프로그래밍 교정을 이용하는 메모리 디바이스

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227009917A KR20220043243A (ko) 2017-05-25 2018-05-22 동적 프로그래밍 교정을 이용하는 메모리 디바이스

Country Status (6)

Country Link
US (1) US10402272B2 (ko)
EP (1) EP3631804A4 (ko)
KR (2) KR102380614B1 (ko)
CN (1) CN110870014B (ko)
TW (1) TWI693605B (ko)
WO (1) WO2018217737A2 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452480B2 (en) 2017-05-25 2019-10-22 Micron Technology, Inc. Memory device with dynamic processing level calibration
US10140040B1 (en) 2017-05-25 2018-11-27 Micron Technology, Inc. Memory device with dynamic program-verify voltage calibration
US10566063B2 (en) 2018-05-16 2020-02-18 Micron Technology, Inc. Memory system with dynamic calibration using a trim management mechanism
US10664194B2 (en) 2018-05-16 2020-05-26 Micron Technology, Inc. Memory system with dynamic calibration using a variable adjustment mechanism
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
US10629278B2 (en) 2018-09-05 2020-04-21 Micron Technology, Inc. First-pass dynamic program targeting (DPT)
US10658066B2 (en) 2018-09-05 2020-05-19 Micron Technology, Inc. First-pass continuous read level calibration
US10936246B2 (en) 2018-10-10 2021-03-02 Micron Technology, Inc. Dynamic background scan optimization in a memory sub-system
US10970160B2 (en) 2018-12-10 2021-04-06 Micron Technology, Inc. Bit error rate based dynamic program step characteristic adjustment
US11211131B2 (en) 2018-12-10 2021-12-28 Micron Technology, Inc. Adjusting program effective time using program step characteristics
US10754583B2 (en) 2018-12-10 2020-08-25 Micron Technology, Inc. Level width based dynamic program step characteristic adjustment
US10698636B1 (en) 2018-12-10 2020-06-30 Micron Technology, Inc. Trigger margin based dynamic program step characteristic adjustment
US10706935B2 (en) 2018-12-10 2020-07-07 Micron Technology, Inc. Read window budget based dynamic program step characteristic adjustment
TWI691961B (zh) * 2019-01-11 2020-04-21 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
US10748625B1 (en) * 2019-03-07 2020-08-18 Micron Technology, Inc. Dynamic programing of valley margins of a memory cell
US11609706B2 (en) * 2019-07-10 2023-03-21 Micron Technology, Inc. Read sample offset placement
US11119848B2 (en) 2019-07-10 2021-09-14 Micron Technology, Inc. Logic based read sample offset in a memory sub system
US10990475B2 (en) * 2019-07-10 2021-04-27 Micron Technology, Inc. Read level edge find operations in a memory sub-system
US11550737B2 (en) * 2019-07-31 2023-01-10 Micron Technology, Inc. Adjusting characteristic of system based on profile
US11488682B2 (en) 2020-06-24 2022-11-01 Sandisk Technologies Llc Calibration for integrated memory assembly
US20220129154A1 (en) * 2020-10-22 2022-04-28 Micron Technology, Inc. Managing bin placement for block families of a memory device using trigger metric scores
US11810631B2 (en) * 2020-12-16 2023-11-07 Micron Technology, Inc. Data integrity checks based on voltage distribution metrics
US11861178B2 (en) * 2021-08-31 2024-01-02 Micron Technology, Inc. Managing a hybrid error recovery process in a memory sub-system

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 (40)

* 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
KR100963855B1 (ko) * 2003-07-30 2010-06-16 샌디스크 아이엘 엘티디 불휘발성 메모리 디바이스에서 프로그래밍 데이터의 신뢰성및 성능을 최적화하는 방법 및 시스템
US9092361B2 (en) 2005-07-15 2015-07-28 Panasonic Intellectual Property Management Co., Ltd. Nonvolatile storage device, memory controller, and defective region detection method
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 주식회사 하이닉스반도체 불휘발성 메모리 장치의 프로그램 방법
US7889575B2 (en) 2008-09-22 2011-02-15 Sandisk Corporation On-chip bias voltage temperature coefficient self-calibration mechanism
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
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
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
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
US8874994B2 (en) 2011-07-22 2014-10-28 Sandisk Technologies Inc. Systems and methods of storing data
KR20130049543A (ko) 2011-11-04 2013-05-14 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 불휘발성 메모리 장치를 제어하는 제어 방법
US9225356B2 (en) 2012-11-12 2015-12-29 Freescale Semiconductor, Inc. Programming a non-volatile memory (NVM) system having error correction code (ECC)
KR20140072637A (ko) * 2012-12-05 2014-06-13 삼성전자주식회사 비휘발성 메모리 장치 및 메모리 컨트롤러의 동작 방법
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
US9697905B2 (en) 2013-05-31 2017-07-04 Sandisk Technologies Llc Updating read voltages using syndrome weight comparisons
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
US9465486B2 (en) * 2014-07-14 2016-10-11 Hong Kong Applied Science and Technology Research Institute Company Limited Portable interactive whiteboard module
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
US10078546B2 (en) * 2014-10-24 2018-09-18 Micron Technology, Inc. Temperature related error management
US9607710B2 (en) 2014-11-10 2017-03-28 Sk Hynix Memory Solutions Inc. Read-threshold calibration in a solid state storage system
US9576671B2 (en) 2014-11-20 2017-02-21 Western Digital Technologies, Inc. Calibrating optimal read levels
US9946607B2 (en) * 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
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
US10180874B2 (en) 2015-10-28 2019-01-15 Western Digital Technologies, Inc. Storage device operations based on bit error rate (BER) estimate
US9558850B1 (en) 2015-12-01 2017-01-31 International Business Machines Corporation Efficient calibration of a data eye for memory devices
US9761308B1 (en) * 2016-03-11 2017-09-12 Western Digital Technologies, Inc. Systems and methods for adaptive read level adjustment
US10452480B2 (en) 2017-05-25 2019-10-22 Micron Technology, Inc. Memory device with dynamic processing level calibration
US10236070B2 (en) 2017-06-27 2019-03-19 Western Digital Technologies, Inc. Read level tracking and optimization
US10347344B2 (en) 2017-08-29 2019-07-09 Micron Technology, Inc. Read voltage calibration based on host IO operations

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
KR20220043243A (ko) 2022-04-05
US10402272B2 (en) 2019-09-03
CN110870014A (zh) 2020-03-06
WO2018217737A3 (en) 2019-01-17
WO2018217737A2 (en) 2018-11-29
EP3631804A2 (en) 2020-04-08
TW201909189A (zh) 2019-03-01
US20180341552A1 (en) 2018-11-29
EP3631804A4 (en) 2021-06-02
KR20200000482A (ko) 2020-01-02
TWI693605B (zh) 2020-05-11
CN110870014B (zh) 2023-09-19

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
US9299459B2 (en) Method and apparatus of measuring error correction data for memory
US11557345B2 (en) Dynamic memory programming voltage step for strenuous device conditions
US20190354312A1 (en) Memory system with a variable sampling rate mechanism
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