CN112992235A - 具有位错误率的动态程序擦除目标设定 - Google Patents
具有位错误率的动态程序擦除目标设定 Download PDFInfo
- Publication number
- CN112992235A CN112992235A CN202011502162.7A CN202011502162A CN112992235A CN 112992235 A CN112992235 A CN 112992235A CN 202011502162 A CN202011502162 A CN 202011502162A CN 112992235 A CN112992235 A CN 112992235A
- Authority
- CN
- China
- Prior art keywords
- program
- ber
- valley
- memory
- logical page
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
- G11C11/5635—Erasing circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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 the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/12—Programming voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5671—Digital 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 trapping in an insulator
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
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)
Abstract
本申请案涉及具有位错误率的动态程序擦除目标设定。一种系统包含具有存储器单元的存储器阵列及耦合到其的处理装置。所述处理装置执行编程目标设定操作,所述编程目标设定操作包含:确定对应于所述存储器阵列的编程分布的一组差异错误计数;基于所述一组差异错误计数的比较,识别对应于所述编程分布的谷值裕度;基于所述谷值裕度的值,从规则集合中选择编程目标设定规则;基于所述编程目标设定规则,执行编程目标设定操作,以调整与所述存储器阵列的擦除分布相关联的电压电平;确定所述存储器阵列的位错误率BER;响应于所述BER满足BER控制值,将所述电压电平降低某一电压阶跃;以及响应于所述BER不满足所述BER控制值,将所述电压电平增大所述电压阶跃。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及具有位错误率的动态程序擦除目标设定。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据和从存储器装置检索数据。
发明内容
在一个方面,本申请案提供一种系统,其包括:存储器阵列,其包含多个存储器单元;以及处理装置,其耦合到所述存储器阵列且对所述存储器阵列执行编程目标设定操作,其中为了执行所述编程目标设定操作,所述处理装置:确定对应于所述存储器阵列的多个编程分布的一组差异错误计数;基于所述一组差异错误计数的比较,识别对应于所述多个编程分布的多个谷值裕度;基于所述多个谷值裕度的值,从规则集合中选择编程目标设定规则;基于所述编程目标设定规则,执行程序擦除目标设定操作,以调整与所述存储器阵列的擦除分布相关联的电压电平;确定所述存储器阵列的位错误率BER;响应于所述BER满足BER控制值,将所述电压电平降低某一电压阶跃;以及响应于所述BER不满足所述BER控制值,将所述电压电平增大所述电压阶跃。
在另一方面,本申请案进一步提供一种方法,其包括:通过处理装置将存储器阵列的擦除分布的电压电平预设为高于默认值,所述存储器阵列包括第一逻辑页类型和第二逻辑页类型的多个存储器单元;以及通过所述处理装置执行编程目标设定操作,所述编程目标设定操作包括:确定对应于所述第一逻辑页类型的多个编程分布的一组差异错误计数;基于所述一组差异错误计数的比较,识别对应于所述多个编程分布的多个谷值裕度;多次调整所述多个谷值裕度中的至少一些的值,以均衡所述第一逻辑页类型的相对谷值裕度,使得所述第一逻辑页类型的谷值的读取窗口预算RWB为大致相同的RWB;确定所述存储器阵列的位错误率BER;以及响应于所述BER不满足BER控制值,将所述电压电平增大某一电压阶跃。
在又一方面,本申请案提供进一步提供一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时致使所述处理装置执行编程目标设定操作,所述编程目标设定操作包括:确定对应于存储器阵列的多个编程分布的一组差异错误计数,所述存储器阵列包括多个存储器单元;基于所述一组差异错误计数的比较,识别对应于所述多个编程分布的多个谷值裕度;基于所述多个谷值裕度的值,从规则集合中选择编程目标设定规则;基于所述编程目标设定规则,执行程序擦除目标设定操作,以调整与所述存储器阵列的擦除分布相关联的电压电平;确定所述存储器阵列的位错误率BER;响应于所述BER满足BER控制值,将所述电压电平降低某一电压阶跃;以及响应于所述BER不满足所述BER控制值,将所述电压电平增大所述电压阶跃。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。
图1A说明根据一些实施例的包含存储器子系统的实例计算系统。
图1B是具有根据各种实施例配置的动态编程校准机构的存储器子系统的框图。
图2是说明根据一实施例的程序验证电压电平目标的擦除分布以及第一和第二遍编程的一组曲线图。
图3A-3B是说明根据一些实施例的两个邻近编程分布之间的两个读取层级阈值的差异错误计数的一组曲线图。
图4是说明根据一些实施例的八个编程分布的曲线图,包含在根据编程目标设定(PT)操作调整程序验证目标中的至少两者之后的两个编程分布。
图5A说明根据各种实施例的对应于调整擦除编程分布的电压和锁定最后编程分布的程序验证目标的实例规则集合。
图5B说明根据各种实施例的对应于调整擦除编程分布的最后编程分布的电压的实例规则集合。
图5C说明根据各种实施例的对应于调整擦除编程分布的电压、调整最后编程分布的程序验证目标以及锁定邻近于初始编程分布的编程分布的程序验证目标的实例规则集合。
图6是根据各种实施例的用于以位错误率(BER)执行动态程序擦除目标设定的实例方法的流程图。
图7是根据额外实施例的用于使用一或多个读取电压电平执行存储器质量测试的实例方法的流程图。
图8是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的各方面针对于存储器子系统中的读取电压辅助的制造测试。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1A-1B描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可以提供数据以存储在存储器子系统处并且可以请求从存储器子系统检索数据。
存储器子系统可包含多个存储器装置,所述存储器装置又包含存储器单元的存储器阵列,其可根据多种编程分布来存储来自主机系统的数据。连续读取层级校准(cRLC)操作连续对编程分布之间的裕度进行取样,也称为读取阈值谷值,或更简单地称为谷值。此谷值裕度可指邻近编程分布对之间的相对宽度。谷值裕度可与读取窗口预算(RWB)相关。谷值的读取窗口预算可指两个邻近编程分布之间的绝对测量值,以伏特(例如,毫伏(mV))为单位。
常规存储器子系统会经历耗损,这会导致逻辑页类型之间的位错误率(BER)的不平衡。可从错误校正码(ECC)码字中检测到的位错误的数目除以码字中的位的总数目来计算BER。所计算的BER可包含单个码字的位错误计数、许多码字的平均值(均值或中值),或可仅包含特定页或页类型的码字。页类型之间BER的不平衡会导致每一裸片寿命期间平均错误校正触发率增大,包含由于逻辑页类型占主导地位而带来寿命终止(EOL)条件。此外,BER不平衡可导致每种逻辑页类型的谷值具有不同的RWB,从而致使存储器子系统中每一裸片的耐久性降低(例如,较少的总编程/擦除周期)。
本公开的各方面通过执行与各种类型的编程目标设定操作(在本文中也称为动态编程目标设定(DPT)操作)一起使用的cRLC测量来解决以上和其它缺陷。编程目标设定(PT)操作控制程序验证(PV)目标(例如,阈值电压(Vt))放置,使得将编程分布放置在有利的布置中。PV目标可指用于在给定电压电平下对存储器单元进行编程的电压值或修整值。PV目标可设定存储器单元的阈值电压(Vt),例如,存储器单元接通或导电的最小电压。可通过调整擦除的电压(也称为“维拉”)以调整擦除分布与第一编程分布(即,L1分布)之间的谷值裕度来控制(例如,向右或向左移动)擦除编程分布的位置(即,L0)。擦除编程分布也更简单地称为擦除分布。
在各种实施例中,通过质量反馈度量来控制擦除分布,所述质量反馈度量在一个实例中可为例如可在存储器阵列层级测试的存储器子系统的位错误率(BER)。在所公开的实施例中,基于BER(或DPET_BER)的动态程序擦除目标设定(DPET)经配置以响应于较高的BER信号而降低擦除分配电压电平,且响应于较低的BER信号而增大擦除分配电压电平。可通过将特定BER控制值与存储器阵列的当前BER相比较来驱动此反馈控制,以便一次调整电压阶跃(更高或更低)。在将擦除分布的电压电平调整到平衡之后,控制系统可在后续的DPET_BER调整循环中以加或减去一个电压阶跃来使电压电平抖动。在一个实施例中,将BER控制值设定为高于存储器子系统的基线BER的百分比,其中基线BER是基于工厂默认修整值。
本公开的优点包含但不限于控制PV目标放置和擦除编程分布的电压以改善与存储器子系统相关联的测量的BER、触发率、触发率裕度和读取窗口预算(RWB)。根据实施例,最低编程分布和最高分布与擦除分布一起移动,以使得能够利用全部可用的RWB(例如,跨越所有谷值)。此外,允许所有编程分布以受控方式移动导致将总RWB从擦除分布调整为最高编程分布,以利用裸片间变化来获得最佳放置,而不是常规存储器子系统的固定窗口放置。
进一步有利的是,将擦除分布移动到较高电压可提高耐久能力。而且,将擦除分布移动到较低电压可提高读取错误、温度、编程干扰、读取干扰和缺陷的裕度。另外,可编程控制点(例如,BER控制值)允许将相同产品中的不同裸片设定为具有不同特性,例如,可将一些裸片设定为用于提高耐久性,而将其它裸片设定为用于提高裕度。系统产品制造中的可编程控制点可允许以不同的耐用性和裕度特性来制造相同产品,例如,在客户A需要高耐用性产品而客户B需要高裕度产品的情况下。
图1A说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或其组合。
存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、安全数字(SD)卡、通用快闪存储(UFS)驱动器,和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)和非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1A说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文所使用,“耦合到”或“与...耦合”通常是指组件或装置之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件或装置),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等的连接。
主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,例如,将数据写入到存储器子系统110以及从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可用以在主机系统120和存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可以进一步利用NVM快速(NVMe)接口存取存储器组件(例如存储器装置130)。物理主机接口可提供接口以用于在存储器子系统110与主机系统120之间传递控制、地址、数据以及其它信号。
存储器装置可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单电平单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多电平单元(MLC)、三电平单元(TLC)和四电平单元(QLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,页可指用以存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。
尽管描述了例如3D交叉点型和NAND的非易失性存储器组件,但存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电随机存取存储器(FeRAM)、磁性随机存取存储器(MRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(为简单起见,控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,以及其它这类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可包含处理器117(例如,处理装置),其经配置以执行存储在本地存储器119中的指令。在所说明的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程的指令,包含处置存储器子系统110与主机系统120之间的通信。
在一些实施例中,本地存储器119可包含存储器寄存器,其存储存储器指针、获取的数据等。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1A中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。
通常存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)和物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以通过物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可以包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址并解码所述地址以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其与存储器子系统控制器115结合操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
在一些实施例中,控制器115包含错误校正码(ECC)编码器/解码器111和编程目标设定组件113。ECC编码器/解码器111可对写入存储器装置130的数据执行ECC编码,且对从存储器装置130读取的数据执行ECC解码。可执行ECC解码以对ECC码字进行解码以校正原始读取数据中的错误,且在许多情况下还报告原始读取数据中的位错误的数目。
在各种实施例中,存储器子系统110包含编程目标设定组件113,所述编程目标设定组件执行如本文(包括包含参考图1B)所描述的操作。在一些实施例中,编程目标设定组件113可为主机系统120、控制器115、存储器装置130或140、操作系统或应用程序的一部分。编程目标设定组件113可对一或多个编程分布(例如,第二程序分布、最后程序分布或两者)的PV目标进行编程。举例来说,控制器115可包含处理器117(处理装置),其配置成执行存储在本地存储器119中的指令以用于进行本文中所描述的操作。
在一些实施例中,控制器115包含编程目标设定组件113的至少一部分。另外,控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的指令以执行本文所述的操作。在一些实施例中,编程目标设定组件113是主机系统120、应用程序或操作系统的一部分。
图1B是具有根据各种实施例配置的动态编程校准机构的存储器子系统110(图1A)的框图。如图所示,存储器子系统110可包含存储器阵列104(例如,NAND闪存或其它存储器类型的存储器装置130和/或140)和控制器115。存储器子系统110可以可操作地将存储器阵列104耦合到主机系统120(例如,上游中央处理器(CPU))。存储器阵列104可包含经配置以将数据存储在存储器阵列104中且提供对存储器阵列104中的数据的存取的电路系统。
在各种实施例中,存储器阵列104可被提供为计算机或其它电子装置中的半导体、集成电路和/或外部可移除式装置。存储器阵列104包含多个存储器区或存储器单元118。存储器单元118可为个别存储器裸片、单个存储器裸片中的存储器平面、与硅穿孔(TSV)竖直地连接的存储器裸片的堆叠等等。在一个实施例中,存储器单元118中的每一者可由半导体裸片形成,且与其它存储器单元裸片布置在单个装置封装(未示出)中。在其它实施例中,存储器单元118中的一或多者可共置在单个裸片上和/或分布在多个装置封装中。存储器子系统110和/或个别存储器单元118还可包含用于存取和/或编程(例如,写入)数据和其它功能性,例如用于处理信息和/或与控制器115通信的其它电路组件(未示出),例如多路复用器、解码器、缓冲器、读取/写入驱动器、地址寄存器、数据输出/数据输入寄存器等。
存储器单元118中的每一者包含各自将数据存储在电荷存储结构中的存储器单元122的阵列。存储器单元122可包含例如经配置以持续地或半持续地存储数据的浮动栅极、电荷俘获、相位改变、电容式、铁电、磁阻和/或其它合适的存储元件。存储器单元122可为可编程到目标状态以表示信息的单晶体管存储器单元。例如,可将电荷放置在存储器单元122的电荷存储结构(例如,电荷阱或浮动栅极)上或从中移除以将单元编程为特定数据状态。存储器单元122的电荷存储结构上存储的电荷可指示单元的阈值电压(Vt)。举例来说,单层级单元(SLC)可被编程为可由二进制单位1或0表示的两个不同的数据状态中的一个目标数据状态。
可将一些存储器单元编程为两个以上数据状态中的一个目标状态。举例来说,可被编程为四种状态中的任何一种(例如,由二进制00、01、10、11表示)的存储器单元可用于存储两位数据,且可被称为多层级单元(MLC)。还可将其它快闪存储器单元编程为八个数据状态(例如000、001、010、011、100、101、110、111)中的任一者,从而准许在单个单元中存储三位数据。此类单元可称为三层级单元(TLC)。甚至可能有更高数目的数据状态,例如在四层级单元(QLC)中发现的数据状态,可将其编程为16种数据状态中中的任一者(例如0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110、1111)以存储四位数据。能够存储较高数目个数据状态的存储器单元122可在不增大存储器单元数目的情况下提供较高密度的存储器,因为每一单元可表示多于一个数字(例如,多于一个位)。
存储器单元122可以行(例如,每一行对应于字线143)和列(例如,每一列对应于位线)布置。每一字线143可取决于所述字线143的存储器单元122被配置成存储的数据状态的数目而包含一或多个存储器页124。举例来说,各自经配置以存储两个数据状态中的一者的存储器单元122(例如,经配置以各自存储一位的SLC存储器单元)的单个字线可包含单个存储器页124。或者,各自经配置以存储四个数据状态中的一者的存储器单元122(例如,经配置以各自存储两个位的MLC存储器单元)的单个字线143可包含两个存储器页124。此外,在字线143内,页124可交插以使得各自经配置以存储两个数据状态中的一者的存储器单元122(例如,SLC存储器单元)的字线143可以“偶数-奇数位线架构”包含两个页(例如,其中单个字线143的奇数编号列中的所有存储器单元122被分组为第一页,且同一字线143的偶数编号列中的所有存储器单元122被分组为第二页)。当偶数-奇数位线架构用于各自经配置以存储较大数目的数据状态的存储器单元122(例如,配置为MLC、TLC、QLC等的存储器单元)的字线143中时,每一字线143的页的数目可能甚至更高(例如,4、6、8等)。每一列可包含一串耦合到共同源极的经串联连接存储器单元122。每一串的存储器单元122可串联连接于源极选择晶体管(例如,场效应晶体管)和漏极选择晶体管(例如,场效应晶体管)之间。源极选择晶体管可共同耦合到源极选择线,且漏极选择晶体管可共同耦合到漏极选择线。
存储器子系统110可使用存储器单元122的不同分组来处理数据。举例来说,存储器单元122的存储器页124可被分组为存储器块126。在操作中,数据可关于存储器子系统110的各个存储器区被写入或以其它方式编程(例如擦除),例如通过写入到页124和/或存储器块126的群组。在基于NAND的存储器中,写入操作通常包含用特定数据值(例如,一串具有逻辑0或逻辑1的值的数据位)编程所选存储器页124中的存储器单元122。擦除操作类似于写入操作,不同之处在于擦除操作将整个存储器块126或多个存储器块126重新编程到相同数据状态(例如,逻辑0)。
在其它实施例中,相比于所说明的实施例中所展示,存储器单元122可以不同类型的群组和/或层次结构来布置。另外,尽管出于说明的目的所说明的实施例中展示某一数目的存储器单元、行、列、块和存储器单元,但出于说明的目的,在其它实施例中,存储器单元、行、列、块和存储器单元的数目可变化,且相比于所说明的实例中所展示,在比例上可更大或更小。举例来说,在一些实施例中,存储器子系统110可包含仅一个存储器单元118。或者,存储器子系统110可包含两个、三个、四个、八个、十个或更多(例如,16个、32个、64个或更多)存储器单元118。尽管存储器单元118在图1B中展示为各自包含两个存储器块126,但在其它实施例中,每一存储器单元118可包含一个、三个、四个、八个或更多(例如,16、32、64、100、128、256或更多个存储器块)。在一些实施例中,每一存储器块123可包含例如215个存储器页,且块内的每一存储器页可包含例如212个存储器单元122(例如,“4k”页)。
在所说明的实例中,存储器阵列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中的第一信息位。下部页148可用于SLC类型的单元、MLC类型的单元、TLC类型的单元或其组合。而且,例如,上部页150可对应于或表示存储在存储器页124或其中的存储器单元122中的第二信息位。上部页150可用于TLC或MLC类型的存储器单元122。而且,例如,额外页152可表示存储在存储器页124或其中的存储器单元122中的第三信息位,例如用于最高有效位或最低有效位。额外页152可用于TLC类型的存储器单元122。
存储器子系统110可使用处理层级154来存储或存取数据。处理层级154可包含电压或电流的阈值或操作层级。处理层级154可包含阈值电压156、读取层级电压158、编程层级电压160、编程电压阶跃162(为了便于参考,也称为电压阶跃)或其组合。电压阶跃也可称为电压修整层级。阈值电压156可为施加到控制栅极的电压,在所述控制栅极上用于存储器单元122的电路系统导电且可测量电流。阈值电压156可通过控制存储器单元122的浮动栅极或电荷阱中保持的电荷量来影响和控制。存储器子系统110可基于编程层级电压160将一定量的电荷存储到存储器单元122中以表示对应数据值。存储器子系统110将编程层级电压160施加到控制栅极或字线以给浮动栅极或电荷阱充电。浮动栅极或电荷阱可被电隔离,这可使存储器单元能够存储和保持电荷。
存储器子系统110可使用所存储的电荷来表示数据。举例来说,在浮动栅极或电荷阱上存储电荷可用于存储SLC类型单元的位值0。位值1可对应于浮动栅极或电荷阱对于SLC不具有所存储的电荷。在例如用于MLC、TLC或QLC的其它类型的单元中,存储器子系统110可在浮动栅极或电荷阱上存储特定量的电荷以表示不同的位值。MLC类型的单元可具有四个不同的充电状态,TLC可具有八个不同的充电状态,而QLC可具有16个不同的充电状态。如上所述,电荷状态中的每一者可对应于唯一的二进制值。
存储器子系统110可使用对应于数据值的读取层级电压158来读取或确定存储在存储器单元122中的数据值。存储器子系统110可将读取层级电压158施加到控制栅极,且测量跨存储器单元的电流或电压以读取存储在所述单元中的数据。存储在浮动栅极或电荷阱中的电荷可屏蔽或抵消放置在控制栅上的电荷量,以读取或存取所存储的数据。由此,在施加读取层级电压158的情况下,所测量的电流或跨存储器单元的电压将对应于存储在浮动栅极或电荷阱中的电荷量。
在存储器子系统110的操作期间,由于重复的数据写入、擦除和/或读取,装置的电特性(即电荷保持能力)可能改变。重复的数据操作可能导致电隔离浮动栅极或电荷阱(例如氧化物层)的结构的损坏或磨损。考虑到存储器单元122的变化的电特性,存储器子系统110可移位或校准读取层级电压158。
编程层级电压160与读取层级电压158和阈值电压156相关联。编程层级电压160、读取层级电压158、阈值电压156或其组合可对应于存储在存储器单元122中的位数、存储在存储器单元122中的数据的特定内容值或其组合。
举例来说,经配置而以两种可能状态中的一者存储电荷的存储器单元122(例如,SLC存储器单元)可具有与经配置而以四个可能状态中的一者存储电荷的存储器单元122(例如MLC存储器单元)或经配置而以八个可能状态中的一者存储电荷的存储器单元122(例如TLC存储器单元)所使用者不同的相关联编程层级、读取层级和阈值电压。对于每种类型的存储器单元(例如,SLC、MLC、TLC、QLC等),编程层级电压160、读取层级电压158、阈值电压156或其组合的特定值可与可能数据值中的每一者相关联。
存储器子系统110可迭代地将电荷存储在存储器单元122中,以用于写或编程操作,例如用于增量阶跃脉冲编程(ISPP)。编程阶跃162(例如,电压阶跃)可包含用于在每次迭代中增大所存储电荷的增量或电压值。存储器子系统110可通过递增地存储或增大对应于编程阶跃162的电荷量来达到编程层级电压160。
图2是说明根据一实施例的程序验证(PV)电压电平目标的擦除分布202、第一遍次编程分布204和第二遍次编程分布206的一组曲线图。在实施例中,存储器子系统110从主机系统120接收请求以执行编程操作以将数据存储在QLC存储器(或具有存储两个或更多个位的存储器单元的其它存储器装置)处。存储器子系统110可首先擦除存储器阵列104的目标存储器单元,而将擦除分布202(或维拉)保留在电压单元内。
在一个实施例中,存储器子系统110可在擦除操作之后执行单遍次编程,例如,通过一次编程(或将数据存储在)多个(例如16个)层级中。在另一实施例中,在擦除操作之后,存储器子系统110可通过执行对存储器单元处的数据进行编程或存储的多遍次编程(例如,两个或更多个编程遍次)来存储数据。多遍次编程可在编程的每一遍次中编程两个、八个或16个层级。第一编程遍次可在特定时间在存储器单元处对数据进行编程。在稍后的时间,可对存储器单元执行第二编程遍次,以在存储器单元处存储额外数据。第二编程遍次使用存储在第一编程遍次中的信息。在同一存储器单元上,在存储器子系统执行第一编程遍次与第二编程遍次之间可能经过特定时间量。在两遍次编程操作的第一编程遍次期间,可将一或多个电压电平施加到存储器单元以对第一组位(例如,3个逻辑页中的3个位)进行编程。在两遍次编程操作的第二编程遍次期间,可将一或多个电压电平施加到存储器单元,以将额外位编程到第一组位(例如,4个逻辑页中的4个位)。在第二编程遍次中将存储器单元编程为的层级可基于存储器单元的最后逻辑页以及在第一编程遍次中编程在存储器单元处的先前逻辑页。
连续读取层级校准(cRLC)操作在编程分布之间连续取样谷值裕度。谷值裕度可指邻近编程分布对之间的相对宽度(在本文中也称为“裕度”)。举例来说,与特定逻辑页类型关联的谷值裕度可指示与特定逻辑页类型相关联的编程分布对之间的相对宽度。举例来说,上部逻辑页的谷值裕度(例如,第二分布(L1)与第三分布(L2)之间的谷值2)大于上部逻辑页的谷值裕度(例如,第六分布(L5)与第七分布(L6)之间的谷值6)可指示谷值2大于谷值3,但并不明确说明两个谷值的绝对宽度或大小。
谷值裕度可与读取窗口预算(RWB)相关。谷值的RWB可指两个邻近编程分布之间的绝对测量值,以伏特(例如,毫伏(mV))为单位。举例来说,用于第一谷值的RWB可为270mV,且用于第二谷值的RWB可为250mV。举例来说,如果第一谷值裕度大于第二谷值裕度,则可得出第一谷值裕度的RWB大于第二谷值裕度的RWB的相关。
在一些情况下,RWB的值不容易测量。可容易地测量(例如,通过cRLC操作)差异错误计数(Diff-EC),且可将其与特定逻辑页类型的谷值裕度和谷值的相对RWB相关。Diff-EC是从在两个邻近编程分布之间的谷值处获得的测量值得出的度量,且将参考图3A-3B更详细地论述。在一些实施例中,Diff-EC与谷值裕度成反比。举例来说,具有相同Diff-EC值的特定逻辑页类型的两个谷值具有大致相同的谷值裕度。由于两个谷值具有相同的谷值裕度,因此即使未测量绝对RWB,也可推断出两个谷值具有大致相同的RWB。如果第一逻辑页类型的第一谷值具有比第一逻辑页类型的第二谷值高的Diff-EC,则可推断出第一谷值具有比第二谷值小的谷值裕度,且第一谷值具有比第二谷值小的RWB。
cRLC操作为读取层级校准,可对所有读取操作期间使用的多个读取层级阈值寄存器中的每一者进行读取层级校准。读取层级阈值寄存器可存储一个值,所述值指示特定谷值的读取层级阈值电压。可执行cRLC操作以使每一读取层级阈值居中,以使得存储器装置可实现可能的最佳总体位错误率(BER)。cRLC操作称为连续操作,因为所述操作以离散间隔连续且动态地取样。举例来说,取决于要求,可每1到30秒以大约1次取样操作进行一次取样,所述取样可为三个读数的集合。由cRLC操作起始的每一样本返回特定裸片和特定逻辑页类型的数据,以便在许多此类操作中将信息汇总且反馈到闭环系统中,使得每一裸片或读取层级阈值保持校准(例如,读取层级阈值居中)。在一个实施方案中,样本是来自相同读取阈值谷值(例如,在本文中也称为“谷值”或“Vt分布谷值”)的三个读数。
在各种实施例中,存储器装置的读取层级阈值可以制造默认读取层级阈值开始。可在测试模式期间运行cRLC操作,以便校准存储器系统中所有裸片的所有字线群组(WLG)的所有读取层级偏移修整(在本文中也称为“收敛”)。由cRLC校准或收敛的存储器单元(或WLG或存储器装置等)的中心值对应于居中于读取阈值谷值中或处于读取阈值谷值中的最低点的读取层级阈值(或读取层级修整)。由cRLC校准或收敛的存储器单元(或WLG或存储器装置等)的中心值导致最低的位错误率(BER)。BER可指数据向量的位错误数除以给定数据向量的总位数。BER可对应于特定的逻辑页类型。举例来说,特定的逻辑页类型具有特定的BER,而另一逻辑页类型具有另一BER。修整可指用于电路(例如寄存器)的数字值,所述数字值转换为模拟电压值。举例来说,读取层级阈值修整可被编程到修整寄存器中,所述修整寄存器产生用于从存储器单元读取数据的读取层级阈值电压。
cRLC操作测量且收集有关谷值裕度的信息,例如中心位错误计数(CenterEC)和Diff-EC测量值。CenterEC是指示每一修整(例如,每一读取层级阈值)的中心样本的平均错误计数的度量。平均CenterEC可指特定逻辑页类型的所有读取层级阈值的平均错误计数。特定页逻辑类型的平均CenterEC可指示所述逻辑页类型相对于其它逻辑页类型的相对BER。举例来说,第一逻辑页类型与大于第二逻辑页类型的平均CenterEC的平均CenterEC相关联。由于第一逻辑页类型具有比第二逻辑页类型大的平均CenterEC,因此可推断出第一逻辑页类型的BER高于第二逻辑页类型的BER。cRLC测量值也可用于各种类型的编程目标设定操作(在本文中也称为“动态编程目标设定(DPT)操作”)。
编程目标设定(PT)操作控制程序验证(PV)目标放置,使得编程分布以有利的方式放置。PV目标可指用于以给定电平对存储器单元进行编程的电压值或修整值。PV目标可设定存储器单元的阈值电压(Vt)(例如,存储器单元接通或导电的最小电压)。PV目标与特定编程分布关联。举例来说,在特定PV目标处被编程的多个存储器单元可具有在对应编程分布内的阈值电压。编程分布可说明针对在特定PV目标处被编程的存储器单元的阈值电压的范围(例如,阈值电压的正态分布)。PT操作是可针对每一PV目标执行的PV目标设定校准。PT操作可视为调整或校准PV目标放置的一或多个操作的集合。PT操作校准多种逻辑页类型,使得每一逻辑页类型的BER在存储器系统的寿命和所有操作环境中大致相同(例如,使BER最小化)。另外,PT操作校准每一特定逻辑页类型以均衡每一特定逻辑页类型的谷值的宽度,使得每一特定逻辑页类型的谷值的RWB大致相同。举例来说,PT操作可调整三种TLC逻辑页类型,即下部逻辑页(LP)、上部逻辑页(UP)和额外逻辑页(XP),使得这三种逻辑页类型中的每一种的BER大致相同(即平衡)。在闭环反馈系统中,PT操作将cRLC用作反馈度量。PT操作除了平衡逻辑页类型BER外,还通过动态地在块编程期间(例如在对块的多遍次编程操作的第一编程遍次与第二编程遍次之间)执行PT操作而使每种逻辑页类型的BER保持平衡。平衡BER可降低每一裸片寿命(包含寿命终止(EOL)条件)中的平均错误校正触发率。通过调整PV目标,PT有效地沿已调整PV目标的方向移动编程分布。PT校准(例如,调整PV目标)可导致特定逻辑页类型的谷值裕度均衡,使得谷值裕度收敛在特定收敛值,且特定页类型的谷值裕度大致相等。PT校准还可包含平衡每一逻辑页类型的BER,以使得与特定逻辑页关联的每一谷值具有大致类似的RWB。
PT操作可增大存储器系统中每一裸片的耐久性(即,增大总的编程/擦除周期)。在一个实施例中,使用PT操作避免了一种逻辑页类型主导寿命终止标准。可针对每一字线群组独立地执行PT操作。存储器装置的PV目标可从制造默认PV目标开始。PT操作可在测试模式期间运行,以使得存储器系统中所有裸片的所有字线群组(WLG)的所有PV目标都已平衡(即,当逻辑页类型的BER大致相同时)。在测试模式中,cRLC和PT操作可在制造过程中短时间以加速速率运行,以使得每一WLG在部署之前将优化且收敛cRLC读取层级阈值。cRLC和PT操作可以交插或同时的方法执行,以使得在存储器子系统的整个寿命中,将存储器子系统连续保持在其最佳且受控的谷值裕度。
在操作模式中(例如,在现场操作时),可动态运行cRLC和PT操作以延长存储器子系统的存储器装置的使用寿命。如本文中所使用,术语“动态”可指在对应装置、系统、存储器子系统或实施例的操作、使用或部署期间以及在运行制造商或第三方的固件之后或同时发生的过程、功能、操作或实施方案。动态发生的过程、功能、操作或实施方案可在设计、制造以及初始测试、设定或配置之后或后续发生(例如,在测试模式之后)。在一些常规的存储器子系统中,使用制造默认PV目标来设定存储器装置的PV目标,且在存储器装置的寿命期间的任何时候都不会改变默认PV目标。在其它常规的存储器子系统中,存储器装置的一些PV目标在现场被动态改变。然而,与初始编程分布和最后编程分布邻近的编程分布(在本文中也称为“第二编程分布”)的PV目标不是允许改变或调整的PV目标群组的一部分。
初始编程分布(L0)(即,擦除分布)对干扰影响敏感,例如编程干扰和读取干扰。举例来说,读取干扰是其中一行存储器单元的读取影响相同块的不同行中的未读取存储器单元的阈值电压。当在靠近一或多个存储器单元的其它存储器单元上的编程操作期间改变一或多个不希望被编程的存储器单元(例如,位表示被改变)时,发生编程干扰错误。干扰效应可能致使初始编程分布(L0)向上移动朝向邻近编程分布(例如,第二编程分布(L1)),使得初始编程分布(L0)与第二编程分布(L1)重叠,这会导致位错误且降低存储器装置的可靠性。
用于校准存储器单元的其它可用裕度或RWB可对存储器单元的耐久性产生积极影响,且因此提高存储器装置的耐久性。理论上,可用裕度或RWB可用于在一个方向或另一方向上调整编程分布,且使编程分布之间的裕度更宽(或更窄)。具有额外的可用裕度提高了存储器子系统调整编程分布(例如,移动编程分布)的PV目标的能力,使得即使考虑到移位或扩展编程分布的耗损效应,也可在存储器单元的整个寿命中保持编程分布之间的裕度。耐久性可指存储器单元在存储器单元的使用寿命内能够执行的编程和擦除周期数。
例如,通过允许调整初始编程分布和最后编程分布的电压,初始编程分布与第二编程分布之间的默认裕度可初始设定为小于初始编程分布和第二编程分布是保护带的情况下的距离。随着存储器单元随着时间的推移开始耗损,初始编程分布(L0)可能会漂移得较高。校准存储器单元的PT操作可通过将编程分布的一或多个PV目标从L1移动到最后编程分布相同的幅度(例如,以“类似手风琴”的方式)来补偿耗损。PT操作可在存储器装置的寿命内继续进行校准。随时间推移,可执行类似手风琴的校准操作,直到最后编程分布的PV目标达到上限(例如,在超过最高电压电平限制之前),最后编程分布的PV目标不允许超过在所述上限。PT操作可通过从另一逻辑页类型的谷值中获取裕度,且将裕度提供给初始编程分布与第二编程分布之间的谷值裕度(V1)来继续校准存储器单元。通过允许在存储器装置的寿命内调整初始编程分布和最后编程分布的位置,以在初始编程分布与第二编程分布之间的谷值被识别为最需要时(例如,在多个编程分布之间的谷值中具有最低的相对宽度)进行调整。因此,所述存储器装置能够更好地补偿其存储器单元的耗损,这提高了存储器装置的耐久性。
本公开的各方面通过执行编程目标设定操作以校准与存储器单元的编程分布相关联的一或多个PV目标来解决上述挑战。在一些实施例中,PT操作确定一或多个Diff-EC,这些Diff-EC指示位于存储器装置的存储器单元的编程分布之间的谷值的相对宽度。可从cRLC操作中接收Diff-EC。处理装置对存储器单元执行编程目标设定操作,以校准与编程分布相关联的一或多个程序验证(PV)目标。为了执行编程目标设定操作,处理装置基于一或多个Diff-EC从规则集合中选择一个规则。所述规则集合对应于对擦除分布的电压(即,维拉)、最后编程分布的PV目标或两者的调整。
在一些实施例中,PT操作实施规则集合以平衡逻辑页类型,使得不同逻辑页类型的BER大致相同。在从规则集合中选择一个规则时,PT操作识别两种逻辑页类型。所述逻辑页类型中的每一者可具有BER,可由平均CenterEC来为逻辑页类型中的每一者推断出BER。如果第一逻辑页类型的BER小于第二逻辑页类型的BER,则从规则集合中识别规则的第一子集。规则的第一子集包含的规则各自为第二逻辑页类型赋予裕度,且从第一逻辑页类型获取裕度。如果第一逻辑页类型的BER大于第二逻辑页类型的BER,则从规则集合中识别规则的第二子集。规则的第二子集包含的规则各自为第一逻辑页类型赋予裕度,且从第二逻辑页类型获取裕度。使用PT操作,可从具有较低BER的逻辑页类型获得具有较高BER的逻辑页类型的裕度,以便随着时间推移,PT操作可使BER在逻辑页类型之间平衡。
为了从规则的第一子集中选择特定规则,PT操作识别具有最小裕度的第二逻辑页类型的谷值。具有最小裕度的第二逻辑页类型的谷值是具有最高Diff-EC的第二逻辑页类型的谷值(也称为“最需要”的谷值裕度)。PT操作进一步识别具有最大裕度的第一逻辑页类型的谷值。具有最大裕度的第一逻辑页类型的谷值是具有最低Diff-EC的第一逻辑页类型的谷值(也称为“最不需要”的谷值裕度)。PT操作可从规则的第一子集中识别一个规则,所述规则为具有第二逻辑页类型的任何谷值的最小裕度的第二逻辑页类型的谷值赋予裕度,且从具有第一逻辑页类型的任何谷值的最大裕度的第一逻辑页类型的谷值获取裕度。选择的规则可识别要调整的PV目标以及要调整PV目标的幅度和方向以执行上述操作。由此,随时间推移,PT操作平衡了逻辑页类型之间的BER,且使特定逻辑页类型的谷值的相对宽度相等。
为了从规则的第二子集中选择特定规则,PT操作识别具有最小裕度的第一逻辑页类型的谷值。具有最小裕度的第一逻辑页类型的谷值是具有最高Diff-EC的第一逻辑页类型的谷值。PT操作进一步识别具有最大裕度的第二逻辑页类型的谷值。具有最大裕度的第二逻辑页类型的谷值是具有最低Diff-EC的第二逻辑页类型的谷值。PT操作可从规则的第二子集中识别一个规则,所述规则为具有第一逻辑页类型的任何谷值的最小裕度的第一逻辑页类型的谷值赋予裕度,且从具有第二逻辑页类型的任何谷值的最大裕度的第二逻辑页类型的谷值获取裕度。选择的规则可识别要调整的PV目标以及要调整PV目标的幅度和方向以执行上述PT操作。如上文所指出,随时间推移,PT操作平衡了逻辑页类型之间的BER,且使特定逻辑页类型的谷值的相对宽度相等。
能够从默认PV目标调整第二编程分布和最后编程分布的PV目标允许PT操作增大在存储器单元的寿命内用于校准存储器单元的可用裕度或RWB的量。通过增大可用于PT操作的裕度或RWB的量,PT操作可执行额外PV目标调整(例如,如本文所述的规则集合中所述)。包含对第二编程分布、最后编程分布或两者的PV目标的调整的额外PV目标调整允许存储器装置在存储器装置的寿命内更好地补偿其存储器单元的耗损,从而提高存储器装置的耐久性。
在实施例中,为了说明而非限制,如上所述,PT操作被描述为平衡逻辑页类型且均衡特定逻辑页类型的谷值。可注意到,在其它实施例中,PT操作可用于使用缩放因子来将每一逻辑页类型的BER控制为不同。PT操作还可用于使用缩放因子将特定逻辑页类型的谷值裕度控制为不同。尽管本文描述了PT操作平衡逻辑页类型且均衡特定逻辑页类型的谷值,但可在PT操作使用缩放因子控制特定逻辑页类型的谷值裕度或逻辑页类型之间的BER的情况下使用本公开的各方面。另外,为了说明而非限制,相对于QLC存储器描述了本公开的方面。可注意到,本公开的方面可应用于任何多位存储器,例如TLC或其它多位存储器。
图3A-3B说明根据本公开的一些实施例的两个邻近编程分布之间的两个读取层级阈值的差异错误计数。曲线图300展示一对邻近编程分布308A和308B之间的谷值310A。曲线图309展示一对邻近编程分布308C和308D之间的谷值310B。谷值310A-B可指两个邻近分布之间的区。谷值裕度306A-B可指邻近编程分布对之间的相对宽度或相对裕度。编程分布308A-308D中的一或多者通常在本文中被称为“编程分布308”。谷值裕度306A-306B中的一或多者通常在本文中称为“谷值裕度306”。谷值310A-310B中的一或多者通常在本文中称为“谷值310”。
cRLC操作对每一WLG中的每一逻辑页类型进行取样。每一样本可包含3个读数:低样本301(在本文中也称为“负偏移值”)、中心样本302(在本文中也称为“中心值”)和高样本303(在本文中也称为“正偏移值”)。如上文所指出,cRLC操作通过获取对于特定逻辑页类型导致最低位错误率(BER)的中心值来进行校准或收敛。收敛是指读取层级修整的值返回最少的页或码字错误数。这就是所谓的校准值或居中值,且产生最佳BER。除了找到谷值310的中心之外,cRLC操作还通过平衡侧取样(低样本301和高样本303)以使得低样本301与高样本303对于特定谷值和与特定逻辑页类型相关联的其它谷值的幅度相等。在一些实施例中,对于所有逻辑页类型(或对于多个逻辑页类型)的所有谷值,低样本301与高样本303在幅度上相等。在一些实施例中,对于特定逻辑页类型的至少一些谷值,低样本301与高样本303在幅度上相等。曲线图300和曲线图309展示校准后的谷值的实例,其中中心样本302在侧样本之间是平衡的(例如,曲线图300和309两者中的4个侧样本的幅度大致相等)。曲线图309展现宽谷值行为,而曲线图309展现窄谷值行为。在cRLC取样和更新期间,当读取层级修整(例如调整寄存器)居中时,调整值将开始“抖动”。任何时候当cRLC读取层级调整改变方向(增大调整值,然后降低调整值,反之亦然)时皆视为抖动。抖动的此动作指示修整居中。当修整发生抖动时,将设定中心值。
中心样本302被PT用作反馈度量,以通过稍微移动PV目标来均衡LP/UP/XP错误率。举例来说,cRLC操作还通过平均每一修整的中心样本的错误计数(例如,读取层级阈值)来获得中心位错误计数(CenterEC)。但是,中心样本302足以在逻辑页类型(LP/UP/XP)之间均衡BER。对于每一逻辑页类型,谷值裕度也可具有合理的匹配。默认的PV目标可确定编程分布308之间的谷值310的深度,所述深度与每一谷值310的谷值裕度306有关。
在各种实施例中,为了确定编程分布308的谷值裕度306,cRLC操作确定度量的值,所述度量的值指示邻近编程分布308对之间的宽度(或深度)。在一些实施例中,所述度量为差异错误,且所述度量的值是Diff-EC(在本文中也称为“Diff-EC测量值”)。差异错误可与谷值裕度成反比。举例来说,如所说明,曲线图300的Diff-EC小于曲线图309的Diff-EC,且曲线图300的谷值裕度306A大于曲线图309的谷值裕度306B。cRLC操作可确定Diff-EC测量值304。Diff-EC测量值304可用于识别相对谷值裕度。Diff-EC测量值304可为两个侧样本301、303的均值减去中心值302。PT操作可通过移动PV目标以不仅匹配逻辑页类型之间的错误计数(例如,平衡),还匹配每一逻辑页类型(或所有逻辑页类型)内的谷值裕度(例如,均衡)来执行BER均衡。还应注意,谷值裕度可与谷值深度相关,例如,在编程分布之间从峰到谷。举例来说,与和较宽谷值裕度相关的浅谷值(例如,较深的谷值)相比,深谷值可与较窄谷值裕度相关。
在一些实施例中,当与逻辑页相关联的多个谷值被测量时(UP和XP),中心样本302的EC相匹配。在各个实施例中,中心取样位EC(也称为“中心位错误计数”或“CenterEC”)可为中心取样302的错误计数(例如,曲线图300和309的竖轴)。尽管中心样本EC匹配,但即使在不同逻辑页类型(UP和XP)的谷值内,谷值裕度(或深度)也可能有很大不同。为了确定哪个谷值具有最大谷值裕度或最小谷值裕度,可以可靠地使用Diff-EC的量度。Diff-EC测量值304越高,谷值裕度越窄(或RWB越小)。为了比较的目的,针对不同的Diff-EC测量值304,低样本301、中心样本302和高样本303之间的偏移相等。在一些实施例中,cRLC操作可保持每一裸片的每一cRLC修整的多个样本(例如16个样本)。一旦所有cRLC调整居中,就可存储中心样本302(和对应CenterEC)和Diff-EC测量值304,以用于后续执行PT操作。
如所说明,图3A的实例具有的Diff-EC测量值304比图3B的实例低,这意味着编程分布具有更大的谷值裕度且较不需要。术语“较为需要”和“较不需要”是指适用于WLG内相同逻辑页类型的谷值的相对谷值裕度。换句话说,逻辑页类型的最需要的谷值将是主导错误计数或导致比其它任何谷值更多的BER损失的谷值。Diff-EC测量值可用于确定较为需要与较不需要的谷值,包含需要的顺序(最需要到最不需要)。举例来说,对于特定逻辑页类型,具有最大Diff-EC的谷值是特定逻辑页类型的谷值中最需要的谷值(具有最小的谷值裕度)。在另一个实例中,对于特定逻辑页类型,具有最小Diff-EC的谷值是特定逻辑页类型的谷值中最不需要的谷值(具有最大的谷值裕度)。当TLC页堆栈页BER平衡时,LP(L3/L4)将具有最低RWB,UP(L1/L2和L5/L6)将为较高位,且应大致相等,且XP(L2/L3、L4/L5和L6/L7)将是最高的RWB。因此,LP的谷值将具有最低谷值裕度,UP的谷值将具有较高谷值裕度,而XP的谷值将具有最高谷值裕度。在各种实施例中,平衡的BER致使RWB趋向于(例如,均衡)为特定逻辑页类型的谷值的RWB大致相同的值,其会作为PT操作的自然副产物而出现。
图4说明根据本公开的一些实施例的八个分布,包含在根据PT操作调整电压之后的擦除分布。如图4所说明,每一块中的大多数数据都存储为TLC信息,每一单元包含三位。这使用擦除分布420和七个编程分布422-434来实现。用一个读取层级阈值436(例如,大致在编程分布426与428之间的中心)来界定下部逻辑页(LP)。用两个读取层级阈值438A和438B(在本文中通常称为“读取层级阈值438”)界定上部逻辑页(UP)。用第四读取层级阈值440A-440D(在本文中通常称为“读取层级阈值440”)界定额外逻辑页(XP)。擦除分布和编程分布420-434各自对应于层级(L0:L7),每一层级对应于一个代码(000:111)。
在各种实施例中,在八个编程分布420-434的每对之间存在一个谷值,总共七个谷值(v1:v7)。每一编程分布420-434的中心或峰值对应于相应编程分布420-432的PV目标。对于3位表示,总共可存在八个PV目标。在一些实施例中,对应于层级L0的擦除分布420具有可调整的电压,以在谷值v1被识别为最需要的谷值时增大谷值v1的谷值裕度。在一些实施例中,对应于层级L7的最后编程分布434可具有固定的PV目标,且擦除分布420具有可调整的PV目标,如图5A中所示。在一些实施例中,对应于层级L7的擦除分布420和最后编程分布434两者皆具有可调整的位置,如图5B中所示。在一些实施例中,对应于第二层级L1的第二编程分布422具有固定的PV目标,且对应于层级L7的最后编程分布434具有可调整的PV目标,如图5C中所示。
当邻近于擦除分布的编程分布(例如,编程分布422)之间的谷值被识别为最需要的谷值(例如,谷值V1具有最小谷值宽度、最高DiffEC和最高BER)时,本公开的方面允许调整擦除分布420的电压。使用PT操作,可调整擦除分布的电压,且在一些情况下,可调整对应于层级L1-L7的额外编程分布的PV目标。在图4中,编程分布420具有最低电压电平且与最低PV目标相关联,且编程分布422具有第二最低电压电平和第二最低PV目标。编程分布434具有最高电压电平和最高PV目标。
在所描绘的实施例中,PT操作开始于每一PV目标处于工厂设定所界定的默认状态。在一些情况下,可调整与擦除分布相关联的电压以产生经调整擦除分布420A(由图4中的虚线表示)。在一些实施例中,第二编程分布(L1)的第二PV目标和最后编程分布(L7)的最后PV目标可为固定的,从而允许调整中间PV目标。举例来说,使用(L0-L7的)八个PV目标,L7PV目标可固定,而其它PV目标L1至L6可接收特征化的起始值,从而实现更快的cRLC和PT操作转换。或者,L1 PV目标可固定,而可调整其它PV目标L2-L7。PV目标和读取层级阈值的这些工厂设定可能会在cRLC和PT操作之前产生不合需要的BER结果。
在一些实施例中,PT操作被定义为净零PV目标调整机构。净零调整为存储器单元保持恒定的RWB。多位存储器单元的存储器单元的总RWB是恒定的,但可通过改变PV目标来调整编程分布之间的RWB。净零调整管理PV目标调整,以实现最佳BER和逻辑页类型BER匹配。PT操作执行PV目标调整,以便在存储器装置或存储器系统的整个寿命中连续地平衡逻辑页类型BER,以提高BER求和值。如本文所述,PT操作可在多遍次编程操作的编程遍次之间执行,例如在第一编程遍次或第二编程遍次之后。执行cRLC校准以便执行后续PT操作。cRLC测量且收集页堆栈上的中心位错误计数(CenterEC)和Diff-EC信息,且将所述信息传递给后续的PT操作。cRLC和PT两者皆可在块被程序时执行,而非在块完全编程后执行。
在实施例中,在对用于PT的所选块的编程期间,编程序列被中断以执行cRLC。编程中断发生在每一逻辑页堆栈(被选择为cRLC逻辑页堆栈中的一者)上。逻辑页堆栈可指特定多位存储器单元的所有逻辑页类型。当第一遍次分布已经完全侵犯来自其相邻者耦合的浮动栅极时,编程中断就在第二遍次编程之前发生。在块编程期间,字线群组中的每一者中的cRLC页堆栈中的每一者被中断,且执行cRLC,直到页堆栈的所有读取层级阈值都居中。来自每一谷值、CenterEC和Diff-EC的cRLC信息传递到PT操作,以用于根据PT规则确定PV目标调整。PV目标调整将应用到已编程的下一个块,且中断此过程,且cRLC/PT会随着PT收敛而继续且最终抖动,且接着跟踪NAND行为。如上所述,通过调整PV目标,PT有效地将编程分布沿调整后的PV目标的方向移动。PT校准(例如,调整PV目标)可导致特定逻辑页类型的谷值裕度在特定会聚值处收敛,以使得特定逻辑页类型的谷值裕度大致相同。PT校准可包含平衡每一逻辑页类型的BER,以使得每一逻辑页类型具有大致类似的BER。在PT PV目标调整期间,当PV修整的值开始“抖动”时(任何时候PV修整改变方向(增大修整值,接着减小微调值,反之亦然)时都被认为是抖动),相应编程分布的PT操作已经收敛。
编程目标偏移量定义为PV分布相对于默认起始值的位置差。举例来说,L2和L3的PV目标首先向右倾斜一定量(例如,约130mv),且接着停止倾斜且开始抖动,这是稳定化(或已校准)。L3之后的谷值是L3/L4谷值(v4),其中心值为读取层级阈值436(对应于LP读取层级)。此移动是通过相对于其它逻辑页均衡LP页的BER引起的。在许多P/E周期(例如约40P/E周期)之后,所有PV目标都可稳定下来。由于操作会在LP/UP和LP/XP调整之间交替,最大移动1次点击(例如10mv),因此可能需要一些时间来稳定PV目标。有可能在许多裸片中表征这些偏移量,从而产生一组开端偏移量,从而在零时提供BER均衡。
如本文所述,可将BER平衡作为净零调整来执行。如图4中所说明,将一个电压阶跃(例如10mv或某个其它电压阶跃)给予一个层级(例如,标记为+1),且从另一层级(例如,标记为-1)获得一个电压阶跃(10mv)。在图4所示的实例中,从擦除分布层级(L0)获取一个电压阶跃,且向第二编程层级(L1)422A赋予一个电压阶跃以将L0和L1之间的裕度增大两个电压阶跃(例如20mv或另一电压阶跃的某一其它倍数)。根据实施例,移位不必是基于整数的,使得如果PT操作的期望结果是要维持L0与L1之间的裕度为1,则L0可被移动-0.5且L1可被移动+0.5。PT操作可相对于LP调整UP和XP(以及QLC存储器中的TP),从而导致所有三种TLC逻辑页类型(或QLC存储器中的所有四种逻辑页类型)的BER平衡和RWB均衡。在各种实施例中,如果不合需要的NAND行为(例如,保留)需要的话,可将更多的RWB分配给较高分布。
图5A说明根据本公开的实施例的实例规则集合,其对应于擦除分布(L0)的电压的调整和最后编程分布(L15)的PV目标的锁定。图500说明QLC存储器的擦除分布(L0)和编程分布(L1-L15)。每一块中的数据存储为QLC信息,每一单元包含4个位。这使用十六个编程分布501A至501P(通常称为“编程分布501”)来实现。用一个读取层级阈值502(例如,大致在编程分布501H与501I之间的中心)来界定下部逻辑页(LP)。用两个读取层级阈值503A和503B(在本文中通常称为“读取层级阈值”503)界定上部逻辑页(UP)。用四个读取层级阈值504A-504D(在本文中通常称为“读取层级阈值”504)界定额外逻辑页(XP)。用八个读取层级阈值505A-505H(在本文中通常称为“读取层级阈值505”)界定最高逻辑页(TP)。十六个编程分布501A-501P各自对应于一个层级(L0:L15),每一层级对应于一个代码(0001:1111)。
在一些实施例中,所述代码表示格雷码(gray code)。格雷码是指二进制数字系统,其中两个连续的谷值仅相差一位(例如,二进制数字)。应当注意,在其它实施例中,可使用不同的格雷码。在每对十六个编程分布501A-501P之间是一个谷值,总共有十五个谷值(V1:V15)。谷值(V0:V15)位中的每一者于两个邻近的编程分布之间。举例来说,谷值1(V1)位于编程分布501A和501B之间,谷值十五(V15)位于编程分布501O和501P之间。读取层级阈值中的每一者居中于对应谷值(V1:V15)中。举例来说,读取层级阈值502居中于谷值八(V8)中,读取层级阈值505A居中于谷值一(V1)中,依此类推。每一编程分布501A-501P的中心或峰值对应于相应编程分布501A-501P的PV目标。对于4位表示,总共可存在十六个PV目标。在一些实施例中,对应于第一层级L0的第一编程分布501A具有固定的PV目标。对应于第二层级L1的第二编程分布501B具有固定的PV目标,且对应于第十六层级L15的最后编程分布501P具有可调整的PV目标。在一些实施例中,对应于第十六层级L15的最后编程分布501P可具有固定的PV目标,且对应于第二层级L1的第二编程分布501B具有可调整的PV目标。在一些实施例中,对应于第二层级L1的第二编程分布501B和对应于第十六层级L15的最后编程分布501P两者皆具有可调整的PV目标。
如本文中所描述,本公开的方面允许使用规则集合来调整擦除分布(L0)的电压。使用PT操作,可调整对应于层级L1-L15的中间编程分布的PV目标。图500说明从左到右的增大的电压电平。举例来说,邻近于对应于最低PV目标的擦除分布的编程分布在本文中也称为“第二编程分布”。对应于最高PV目标的编程分布(例如,编程分布501P)在本文中也称为“最后编程分布”。
规则集合510说明的规则允许擦除分布的电压移动、允许第二编程分布(L1)移动,且最后编程分布(L15)被锁定。可理解,擦除分布的电压的移动和与特定编程分布相关联的PV目标的移动有效地使擦除和编程分布在以与电压和PV目标的移动相同的方向上且以相同的幅度移动。规则集合510说明用于执行编程目标操作(例如,PT校准)的规则。规则集合510允许编程目标设定操作移动擦除分布的电压且识别要移动的PV目标(如果存在)以及移动所识别的PV目标的方向和幅度。如上文所指出,编程目标设定操作实施规则集合以平衡逻辑页类型,使得对于不同的逻辑页类型,位错误率(BER)为大致相同的BER,且均衡特定逻辑页类型的谷值的相对宽度,使得特定逻辑页类型的谷值的读取窗口预算(RWB)为大致相同的RWB。
BER均衡可作为净零调整来执行。编程目标设定操作可相对于LP调整UP、XP和TP,从而实现所有四种QLC逻辑页类型的均衡。举例来说,LP的谷值裕度可减小一个电压阶跃(例如-10mV),而XP的谷值裕度可增大一个电压阶跃(+10mV)(反之亦然),使得执行净零调整。列511说明用于TP-LP调整的规则集合,使得如上所述,以净零调整相对于LP调整TP。规则集合510包含由情况1-16说明的十六个规则。注意,规则和情况在本文中可互换地使用。在QLC存储器中,TP页对应于第二编程分布和最后编程分布,在规则集合510的情况1-16中解决其PV目标调整问题。可注意到,对于TLC存储器,XP对应于第二编程分布和最后编程分布。可根据本公开的各方面来实施用于TLC存储器中的XP-LP的规则集合,所述规则集合调整对应于TLC存储器的XP的第二编程分布和最后编程分布。在所公开的实施例中,出于说明而非限制的目的描述了QLC存储器。本公开的方面也可应用于不同的多位存储器单元,例如TLC存储器等。
在一些实施例中,为了执行编程目标设定操作以校准与存储器单元的编程分布501相关联的一或多个PV目标,可从规则集合510中选择一个规则。所述规则可确定要调整的PV目标以及调整的幅度和方向(例如±10mV)。可注意到,相对于图5A描述的操作可由如图1A中所说明的编程目标设定组件113执行。在一些实施例中,为了从规则集合中选择一个规则,编程目标设定组件113识别出L0与L1之间的谷值是最需要的(根据列512),且调整擦除分布(L0)的电压,如表510中的-1所表示。
在表510的情况编号1所示的实例中,编程目标设定组件113可识别出TP的谷值与其它谷值相比具有最高的Diff-EC(例如,V1)。此外,编程目标设定组件113还可确定具有最低Diff-EC的LP的谷值(V8)(例如,注意,LP仅与一个谷值相关联,这可认为LP的谷值具有最高或最低Diff-EC)。可从规则集合510中识别通过增大擦除分布(L0)的电压同时锁定L8的PV目标来增大V1的谷值裕度的规则。所选规则可识别要调整的PV目标和幅度以及调整的方向,且编程目标设定组件113可根据所识别的规则来调整PV目标。
在一些实施例中,为了从规则集合510中选择一个规则,编程目标设定组件113识别第一逻辑页类型和第二逻辑页类型。举例来说,在QLC存储器中,编程目标设定组件113可识别TP和LP。在一些实施例中,对于QLC存储器,编程目标设定组件113可将两种逻辑页类型识别为以下中的一者:TP-LP、XP-LP和UP-LP。可注意到,在一些实施例中,两个逻辑页类型的选择可基于特定次序。举例来说,编程目标设定组件113可调整TP-LP,然后调整XP-LP,然后调整UP-LP,等等。还应注意,不同的规则集合可用于XP-LP和UP-LP。
在一些实施例中,为了从规则集合510中选择一个规则,编程目标设定组件113确定用于第一逻辑页类型(例如,LP)的BER是否小于或大于用于第二逻辑页类型的BER(例如TP)。在一些实施例中,为了确定第一逻辑页类型的BER是否小于或大于第二逻辑页类型的BER,编程目标设定组件113比较第一逻辑页的第一平均中心位错误计数(CenterEC)与第二逻辑页类型的第二平均中心位错误计数(CenterEC)。特定页类型的平均CenterEC指示特定逻辑页类型的BER。在一个实例中,可将LP的平均CenterEC与TP的平均CenterEC进行比较。如果第一平均CenterEC小于第二平均CenterEC,则第一逻辑页类型(例如,LP)的BER小于第二逻辑页类型(TP)的BER。如果第一中心位错误计数(例如,平均CenterEC)大于第二中心位错误,则第一逻辑页类型(例如LP)的BER大于第二逻辑页类型(例如TP)的BER计数(例如CenterEC)。
在一些实施例中,响应于确定第一逻辑页类型(例如,LP)的BER小于第二逻辑页类型(例如,TP)的BER,编程目标设定组件113识别规则集合510的第一子集(例如,LP<TP)。所选规则来自规则的第一子集。举例来说,列“平均CenterEC”说明当LP的BER(例如,较低平均CenterEC)小于TP的BER(例如,较高平均CenterEC)时要应用的规则(例如,情况1-8)的第一子集。
在一些实施例中,响应于确定第一逻辑页类型(例如,LP)的BER大于第二逻辑页类型(例如,TP)的BER,编程目标设定组件113识别规则集合510中的第二子集(例如,TP<LP)。所选规则来自规则的第二子集。举例来说,列“平均CenterEC”说明当LP的BER(例如,较高平均CenterEC)大于TP的BER(例如,较低平均CenterEC)时要应用的规则的第二子集(例如,情况9-16)。
在一些实施例中,在识别出规则子集之后,编程目标设定组件113可从所识别的规则子集中选择规则。在一些实施例中,为了从规则的第一子集(例如,情况1-16)中识别规则,编程目标设定组件113基于对于第一逻辑页类型(例如,LP)具有最大裕度的谷值(V8)和对于第二逻辑页类型(例如,TP)具有最小裕度的谷值从规则的第一子集中识别规则。在一些实施例中,一或多个差异错误计数用于确定对于第一逻辑页类型(例如,LP)具有最大裕度的谷值和对于第二逻辑页类型(例如,TP)具有最小裕度的谷值。
在一些实施例中,为了从规则的第二子集(例如,情况21-28)中识别规则,编程目标设定组件113基于对于第二逻辑页类型(例如,TP)具有最大裕度的谷值和对于第一逻辑页类型(例如,LP)具有最小裕度的谷值从规则的第二子集中识别规则。在一些实施例中,一或多个差异错误计数用于确定对于第二逻辑页类型(例如,TP)具有最大裕度的谷值和对于第一逻辑页类型(例如,LP)具有最小裕度的谷值。
规则集合510的列512和列513说明特定逻辑页类型的谷值的“需要性”。需要性是基于Diff-EC测量值。对于逻辑页类型的特定谷值而言,较低的Diff-EC测量值意味着特定谷值具有较大的谷值裕度,且与具有较高Diff-EC测量值的相同逻辑页类型的另一谷值相比较不需要。术语“较为需要”和“较不需要”是指相同逻辑页类型的谷值的相对谷值裕度。换句话说,逻辑页类型最需要的谷值将是主导错误计数(CenterEC)或比相同逻辑页类型的任何其它谷值导致更多的BER损失的谷值。Diff-EC测量值可用于确定较为需要与较不需要的谷值,包含需要性的次序(最需要到最不需要)。举例来说,对于特定逻辑页类型,具有最大Diff-EC的谷值是所述特定逻辑页类型的谷值中的最需要的谷值(例如,具有最小谷值裕度)。在另一实例中,对于特定逻辑页类型,具有最小Diff-EC的谷值是所述特定逻辑页类型的谷值中最不需要的谷值(例如,具有最大谷值裕度)。
如上文所指出,编程目标设定操作通过平衡逻辑页类型以使BER在逻辑页类型之间大致相同来校准存储器单元。为了平衡BER,将具有较低BER的逻辑页类型的RWB中的一些赋予给具有较高BER的其它逻辑页类型。在图5A所示的情况1实例中,将以净零调整来增大被降低以增大具有较高BER(例如,L1)的逻辑页类型的最需要的谷值的裕度的擦除分布的电压。可注意到,由于LP的BER小于TP的BER,所以规则集合的第一子集包含以净零调整将RWB赋予TP且从LP获取RWB的规则。在LP的BER大于TP的BER的情况下,规则的第二子集包含以净零调整将RWB赋予LP且从TP获取RWB的规则。
在一实例中,编程目标设定组件113将LP和TP识别为被执行编程目标设定操作的两种逻辑页类型。编程目标设定组件113识别规则集合510,其适用于对LP和TP逻辑页类型执行编程目标设定操作(例如,LP-TP更新)。编程目标设定组件113确定用于LP的BER小于用于TP的BER。为了做出上述确定,编程目标设定组件113确定LP的平均CenterEC小于TP的平均CenterEC。LP的平均CenterEC小于LP的平均CenterEC指示LP的BER小于TP的BER。通过确定LP的平均CenterEC小于TP的平均CenterEC,编程目标设定组件113识别在LP的BER小于TP的BER的情况下适用的规则集合510的第一子集(例如LP<TP,其识别情况1-8)。为了从情况9-20识别特定规则,编程目标设定组件113识别TP的最需要的谷值和LP的最不需要的谷值。TP最需要的谷值是TP的所有谷值中具有最小相对宽度(例如,最小裕度)和最高Diff-EC的谷值。LP最不需要的谷值是LP的所有谷值中具有最大相对宽度(例如,最大裕度)和最低Diff-EC的谷值。在特定情况下,TP的谷值一(V1)在TP的所有谷值中具有最高的Diff-EC,且是最需要的谷值,而LP的谷值八(V8)在LP的所有谷值中具有最低Diff-EC,且为最不需要的谷值。在上述条件下,可将列513识别为要应用的规则集合510的第一子集中的规则(例如,参见指示最需要的谷值和最不需要的谷值的组合的列512和513)。
在规则集合510的情况1中,从擦除分布(标记为-1)获取一个电压阶跃(例如10mv),且将一个电压阶跃(例如10mv)赋予给编程分布L1:L7的PV目标(例如,标记为+1)。编程分布L1:L7以手风琴的方式移动,使得编程分布(L1:L7)的所有PV目标在相同的方向上且以相同的幅度移动。可注意到,在情况1中,随着编程分布L1的PV目标向右移动且擦除分布向左移动,对TP的谷值1(V1)赋予了RWB。谷值V2:V7的相对宽度(或RWB)不变,因为用于编程分布L1:L7的所有PV目标以相同的幅度和方向向右偏移(例如向右偏移+10mV)。对应谷值V2:V7向右移动对应量,但相对宽度不变。当编程分布L7的PV目标向右移动且编程分布L8的PV目标保持固定时,从LP的谷值8(V8)获取RWB。挤压LP的谷值8(V8),以净零调整为TP的谷值1(V1)赋予裕度。
在一个实施例中,规则集合510的情况9与情况1相反。在情况9中,LP的BER大于TP的BER。LP的最需要的谷值是LP的谷值8(V8),而TP的最不需要的谷值是谷值1(V1)。在情况9中,从擦除分布取以及编程分布L1:L7的PV目标(例如,标记为-1)获取一个电压阶跃(例如,10mv)。编程分布L1:L7以类似手风琴的方式移动,使得擦除分布(L0)和编程分布(L1:L7)的PV目标在相同方向上且以相同幅度移动。可注意到,在情况9中,随着编程分布L1的PV目标向左移动,从TP的谷值1(V1)获取RWB。谷值V2:V7的相对宽度(或RWB)不变,因为擦除分布和编程分布L1:L7的PV目标以相同方向和相同幅度移动(例如左移-10mV)。对应谷值V2:V7只是向左移动对应量,但相对宽度不变。当编程分布L7的PV目标向左移动(例如10mV)且编程分布L8的PV目标保持固定时,将RWB赋予LP的谷值8(V8)。TP的谷值1(V1)减小,从而以净零调整向LP的谷值8(V8)赋予裕度。
在一实施例中,规则集合510是其中编程分布L15被锁定以使得编程分布L15的PV目标不通过编程目标设定操作来调整的规则。放置在由“L15”指定的列中的空白空间用于说明在根据规则集合510进行编程目标设定操作期间不允许调整编程分布L15的PV目标。
图5B说明根据本公开的实施例的规则集合,其对应于对最后编程分布的PV目标的调整以及邻近于初始编程分布的编程分布的PV目标的锁定。提供图5A的图500以帮助说明图5B。除非另外描述,否则规则集合520可与规则集合510类似地实施。规则集合520说明可移动擦除分布的位置且允许调整第二分布(L1)和最后分布(L15)的PV目标的规则集合。在实施例中,规则集合520可实施为情况1-16的其它规则集合的替代,如本文所述。下文描述规则集合520的几个规则(即,情况)以帮助说明使用规则集合520的实施方案。
在规则集合520的情况1中,LP的BER小于TP的BER。TP的最需要的谷值512是谷值v1,且LP的最需要的谷值513是谷值v8。擦除分布的电压获取一个电压阶跃(例如-10mv),以为最需要的谷值v1提供额外裕度。编程分布L1:L7以类似手风琴的方式移动,使得编程分布(L1:L7)的所有PV目标以相同方向和相同幅度移动。
在一实施例中,在情况8中,RWB不赋予任何谷值,但向编程分布(L15)赋予远离顶部电压电平限制的额外裕度。将编程分布L15向左移动(-10mV)在编程分布L15与最高电压电平限制之间赋予额外裕度。谷值V9:V15的相对宽度(或RWB)不变,因为用于编程分布L8:L15的所有PV目标向左偏移相同的幅度和方向(例如向左移动-10mV)。对应谷值V9:V15向左移动对应量,但相对宽度不变。当编程分布L8的PV目标向左移动且编程分布L7的PV目标保持固定时,从LP的谷值8(V8)获取RWB。LP的谷值8(V8)减小,从而以净零调整在TP的最后编程分布与最高电压电平限制之间赋予裕度。
在图5B中,可注意到,规则集合520的情况16与情况8相反。在情况16中,LP的BER大于TP的BER。LP最需要的谷值是8(V8),而TP的最不需要的谷值是谷值15(V15)。在情况16中,将一个电压阶跃(例如+10mv)赋予编程分布L8:L15的PV目标(例如,标记为+1)。编程分布L8:L15以类似手风琴的方式移动,使得编程分布L8:L15的所有PV目标以相同方向和相同幅度移动。可注意到,在情况16中,随着编程分布L15的PV目标向右移动,从编程分布L15与最高电压电平极限之间的裕度获取RWB。谷值V9:V15的相对宽度(或RWB)不变,因为编程分布L8:L15的所有PV目标在相同方向上且以相同幅度移动(例如,右移+10mV)。当编程分布L8的PV目标向右移动(例如,+10mV)且编程分布L7的PV目标保持固定时,将RWB赋予LP的谷值8(V8)。挤压TP的编程分布L15与最高电压电平限制之间的裕度,从而以净零调整向LP的谷值8(V8)赋予裕度。
在图5B中,还可注意到,规则集合520包含未锁定编程分布L1和L15,但对擦除分布的位置进行了调整以向最需要的谷值(例如,情况1中的谷值v1和情况9中的谷值v8)提供额外裕度的规则(例如,对于情况1和9)。表520的各个列中的空白空间用于说明在编程目标设定操作期间未调整对应编程分布的PV目标。
图5C说明根据本公开的实施例的规则集合,其对应于擦除分布的电压和最后编程分布的PV目标是可调整而第二编程分布(L1)的PV目标被锁定的情况。提供图5A的图500以帮助说明图5C。除非另外描述,否则规则集合530可与规则集合510或规则集合520类似地实施。规则集合530展示其中锁定第二分布(L1)的PV目标且允许调整擦除分布的电压和最后分布(L15)的PV目标的规则集合。下文描述规则集合530的几个规则(即,情况)以帮助说明使用规则集合530的实施方案。根据规则1,基于确定谷值v1是最需要的,减小擦除分布的电压(如表530中的-1所表示)以增大谷值v1的谷值裕度。类似地,在情况9中,基于确定谷值v8是最需要的谷值且谷值v1是最不需要的谷值,减小擦除分布的电压。
图6是根据各种实施例的用于以位错误率(BER)执行动态程序擦除目标设定的实例方法600的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专门逻辑、可编程逻辑、微码、装置的硬件、集成电路,等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法600由图1A的控制器115(例如,编程目标设定组件113)且视情况由存储器子系统110的其它逻辑执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改所述处理程序的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。另外,在各种实施例中可以省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它处理流程是可能的。
在方法600开始之前,例如,作为初始预操作,处理逻辑可执行擦除、编程、cRLC操作以及具有工厂默认修整值的读取。处理逻辑可接着测量BER,以便建立基线BER,所述基线BER可用于确定用于比较未来BER测量值的BER控制值。
在操作610,处理逻辑确定对应于存储器阵列的多个编程分布的一组差异错误计数(例如,Diff-EC)(610)。在一些实施例中,为了确定差异错误的一或多个差异错误计数,处理逻辑对存储器单元执行cRLC操作以校准编程分布之间的读取层级阈值。
在操作620,处理逻辑基于一组差异错误计数的比较来识别对应于编程分布的谷值裕度。在一实施例中,基于对应于相应编程分布的差异错误计数的比较,将邻近于擦除分布的编程分布(即,如图4所示的第二编程分布或L1)识别为最需要的(即,具有最低的相对谷值裕度)。在一实施例中,基于对应于相应编程分布的差异错误计数的比较,将与下部页(LP)相关联的谷值识别为具有最低谷值裕度(即,最需要的谷值),例如编程分布L7与编程分布L8之间的谷值。在一实施例中,处理装置确定擦除分布(L0)与第二编程分布(L1)之间的谷值(即谷值v1)具有最高的相对差异错误计数,且结果表示最需要的谷值。
在操作630,处理逻辑基于谷值裕度的值从规则集合中选择编程目标设定规则。在一些实施例中,为了基于谷值裕度的值从规则集合中选择规则,处理装置从规则集合中选择识别描述调整的至少两个程序验证(PV)目标的规则,所述调整使得对于第一逻辑页类型具有谷值的最低差异错误计数(Diff-EC)的谷值的相对宽度减小,且对于第二逻辑页类型具有谷值的最高Diff-EC的谷值的相对宽度类型增大。相对于图7和图5A到图5C进一步描述从规则集合中选择一个规则。
在操作640,处理逻辑基于编程目标设定规则来执行程序擦除目标设定操作,以调整与存储器阵列的擦除分布相关联的电压电平。在一实施例中,编程擦除目标设定操作通过调整擦除分布的电压电平以及与其它编程分布(例如,L1-L15)相关联的一或多个PV目标的电压电平来校准存储器阵列的存储器单元,如参考图3A到图5C所论述。在一实施例中,执行程序擦除目标设定操作包含降低与擦除分布相关联的电压电平,以增大擦除分布与邻近于擦除分布的编程分布之间的谷值的裕度。在另一实施例中,执行程序擦除目标设定操作包含增大与擦除分布相关联的电压电平,以减小擦除分布与邻近于擦除分布的编程分布之间的谷值的裕度。在各种实施例中,可在每次对其它编程分布(例如,L1-L15)的一或多个PV目标执行某数目个调整时执行一次擦除分布电压电平的调整,例如,对此类PV目标执行10、20、25次调整时执行一次。
在操作650,处理逻辑确定存储器阵列的位错误率(BER)。可从错误校正码(ECC)码字中检测到的位错误数除以码字中的位总数来计算BER。计算出的BER可包含单个码字的位错误计数、多个码字的均值或中值,或可仅包含特定页或页类型的码字。
在操作660,处理逻辑确定BER是否满足BER控制值。在一个实施例中,在将系统投入操作之前,处理逻辑还基于工厂默认修整值确定基线BER,将BER控制值设定为高于基线BER某一百分比。在不同的实施例中,BER控制值可由客户或制造商设定,且可在以后的时间被重新编程以依据不同的BER控制值驱动图6的控制循环中的可接受的BER。
在操作665,响应于BER满足BER控制值,处理逻辑将擦除分布的电压电平降低某一电压阶跃。满足BER控制值可包含大于BER控制值。相比之下,在操作670,响应于BER不满足BER控制值,处理逻辑将电压电平增大所述电压阶跃。在实施例中,不满足BER包含小于或等于BER控制值。
在操作675,处理逻辑确定擦除分布的电压电平是否已经达到平衡。当电压水平在一个方向上移动一段时间(例如,增大),且接着开始向相反方向移动(例如,降低),或开始在电压水平范围内围绕电压水平波动时,可检测到平衡。如果电压电平尚未达到平衡,则处理逻辑可继续重复由编程目标设定操作610至660界定的控制循环。此控制循环(返回到方法600的编程目标设定操作)可包含在对存储器单元执行数十至数百个之间的编程/擦除周期之后执行每一循环。
在操作680,如果擦除分布的电压电平已经达到平衡,则处理逻辑可在达到电压电平的平衡之后在每一后续循环期间使电压电平抖动以在加减一个电压阶跃之间改变。为了清楚起见,以虚线说明后续循环(在达到平衡之后),其中在使电压电平在加减一个电压阶跃之间抖动之间重复操作610至640。以此方式,保持擦除分布的电压电平的平衡,同时对编程分布的一或多个谷值裕度执行额外编程目标设定更新。
图7是根据各种实施例的用于使用一或多个读取电压电平执行存储器质量测试的实例方法700的流程图。方法700可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专门逻辑、可编程逻辑、微码、装置的硬件、集成电路,等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法700由控制器115(例如,图1A的编程目标设定组件113)且视情况由存储器子系统110的其它逻辑执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改所述处理程序的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。另外,在各种实施例中可以省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它处理流程是可能的。
在方法700开始之前,例如,作为初始预操作,处理逻辑可执行擦除、编程、cRLC操作以及具有工厂默认修整值的读取。处理逻辑可接着测量BER,以便建立基线BER,所述基线BER可用于确定用于比较未来BER测量值的BER控制值。
在操作710,处理逻辑将存储器阵列的擦除分布的电压电平预设为高于默认值。存储器阵列包含例如第一逻辑页类型和第二逻辑页类型的存储器单元。在一实例中,第一逻辑页类型与第二逻辑页类型是不同的逻辑页类型。举例来说,在QLC存储器中,第一逻辑页类型可为LP,且第二逻辑页类型可为TP,或反之亦然。将擦除分布的电压电平预设为较高的电压将致使擦除分布与层级一(L1)分布之间的第一谷值(V1)裕度减小(参见图2、4)。较高的电压反过来导致包含此谷值的页类型的较高BER,且通常导致方法700通过操作770而不是操作765分支,如下文更详细地论述。
在操作720,处理逻辑确定对应于第一逻辑页类型的多个编程分布的一组差异错误计数。在一个实施例中,操作720与操作610(图6)相同或相似。操作720也可被视为控制循环的多个编程目标设定操作中的第一操作,如将更详细地论述。
在操作730,处理逻辑基于所述一组差异错误计数的比较来识别对应于编程分布的多个谷值裕度。在一个实施例中,操作730与操作620(图6)相同或相似。
在操作740,处理逻辑多次调整谷值裕度中的至少一些的值以均衡第一逻辑页类型的相对谷值裕度,使得第一逻辑页类型的谷值的读取窗口预算(RWB)为大致相同的RWB。多次可为预设数目的DPT更新,例如三次、五次、六次等。尽管操作740着重于均衡第一逻辑页类型的谷值的RWB,但操作740也可或替代地包含均衡第二逻辑页类型的谷值的RWB。参考图2至图5C详细论述了经由调整谷值裕度的宽度来均衡谷值的RWB。此外,虽然操作740着重于均衡第一逻辑页类型的谷值的RWB,但操作740还可或替代地包含使BER在第一逻辑页类型与第二逻辑页类型之间平衡,使得这些逻辑页类型中的每一者的BER大致相同。还参考图2至图5C详细论述了使BER在逻辑页类型之间平衡。
在操作750,处理逻辑确定存储器阵列的位错误率(BER)。可从错误校正码(ECC)码字中检测到的位错误数除以码字中的位总数来计算BER。计算出的BER可包含单个码字的位错误计数、多个码字的均值或中值,或可仅包含特定页或页类型的码字。
在操作760,处理逻辑确定BER是否满足BER控制值。在一个实施例中,在将系统投入操作之前,处理逻辑还基于工厂默认修整值确定基线BER,将BER控制值设定为高于基线BER某一百分比。在不同的实施例中,BER控制值可由客户或制造商设定,且可在以后的时间被重新编程以根据不同的BER控制值驱动图7的控制循环中的可接受的BER。
在操作765,响应于BER满足BER控制值,处理逻辑将电压电平降低某一电压阶跃。满足BER控制值可包含大于BER控制值。相比之下,在操作770,响应于BER不满足BER控制值,处理逻辑将电压电平增大所述电压阶跃。在实施例中,不满足BER包含小于或等于BER控制值。
在操作775,处理逻辑确定擦除分布的电压电平是否已经达到平衡。当电压水平在一个方向上移动一段时间(例如,增大),且接着开始向相反方向移动(例如,降低),或开始在电压水平范围内围绕电压水平波动时,可检测到平衡。如果电压电平尚未达到平衡,则处理逻辑可继续重复由编程目标设定操作720至770界定的控制循环(假定,在一个实施例中,跳过操作765,因为每一循环中的BER不满足BER控制值)。此控制循环(返回到方法700的编程目标设定操作)可包含在对存储器单元执行数十至数百个之间的编程/擦除周期之后执行每一循环。
在一些实施例中,此控制循环的重复(操作720至770)可进一步参考第二逻辑页类型来执行,且在一些实施例中,可进一步包含平衡多次调整谷值裕度中的每一次、第一逻辑页类型与第二逻辑页类型之间的BER。
在操作780,如果擦除分布的电压电平已经达到平衡,则处理逻辑可在达到电压电平的平衡之后在每一后续循环期间使电压电平抖动以在加减一个电压阶跃之间改变。为了清楚起见,以虚线说明后续循环(在达到平衡之后),其中在使电压电平在加减一个电压阶跃之间抖动之间重复操作720至740。以此方式,保持擦除分布的电压电平的平衡,同时对编程分布的一或多个谷值裕度执行额外编程目标设定更新。
图8说明计算机系统800的实例机器,在所述实例机器内可执行指令集以用于致使机器执行本文所论述的任何一或多个方法。在一些实施例中,计算机系统800可对应于主机系统(例如,图1A-1B的主机系统120),所述主机系统包含、耦合至或利用存储器子系统(例如,图1A-1B的存储器子系统110)或可用于执行控制器115的操作(例如,执行操作系统以执行对应于图1A的编程目标设定组件113的操作)。在替代实施例中,机器可以连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、开关或桥接器、汽车或能够(依序或以其它方式)执行指定由机器采取的动作的一组指令的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多个)指令集以进行本文中所论述的方法中的任何一或多种。
实例计算机系统800包含处理装置802、主存储器804(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器806(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统818,它们通过总线830彼此通信。
处理装置802表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置802也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置802经配置以执行用于执行本文中所论述的操作和步骤的指令826。计算机系统800可进一步包含网络接口装置808以在网络820上通信。
数据存储系统818可包含机器可读存储媒体824(也称为计算机可读媒体),其上存储有体现本文所描述的任何一或多个方法或功能的一或多组指令826或软件。指令826还可在其由计算机系统800执行期间全部或至少部分地驻存在主存储器804内和/或处理装置802内,主存储器804和处理装置802也构成机器可读存储媒体。机器可读存储媒体824、数据存储系统818和/或主存储器804可对应于图1A-1B的存储器子系统110。
在一个实施例中,指令826包含实施对应于错误确定组件(例如,图1A的编程目标设定组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体824展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里并且通常被认为是产生期望的结果的操作的自洽序列。操作是要求对物理量进行物理控制的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。此外,并不参考任何特定编程语言来描述本公开。应了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读介质。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。
在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
Claims (20)
1.一种系统,其包括:
存储器阵列,其包含多个存储器单元;以及
处理装置,其耦合到所述存储器阵列且对所述存储器阵列执行编程目标设定操作,其中为了执行所述编程目标设定操作,所述处理装置:
确定对应于所述存储器阵列的多个编程分布的一组差异错误计数;
基于所述一组差异错误计数的比较,识别对应于所述多个编程分布的多个谷值裕度;
基于所述多个谷值裕度的值,从规则集合中选择编程目标设定规则;
基于所述编程目标设定规则,执行程序擦除目标设定操作,以调整与所述存储器阵列的擦除分布相关联的电压电平;
确定所述存储器阵列的位错误率BER;
响应于所述BER满足BER控制值,将所述电压电平降低某一电压阶跃;以及
响应于所述BER不满足所述BER控制值,将所述电压电平增大所述电压阶跃。
2.根据权利要求1所述的系统,其中所述处理装置进一步在使所述系统投入操作之前,基于工厂默认修整值确定基线BER,其中所述处理装置进一步将所述BER控制值设定为高于所述基线BER某一百分比。
3.根据权利要求1所述的系统,其中所述处理装置进一步:
作为循环,重复所述编程目标设定操作,直到达到所述电压水平的平衡为止;以及
在达到所述电压电平的所述平衡之后,在每一后续循环期间,使所述电压电平抖动以在加减一个电压阶跃之间改变。
4.根据权利要求3所述的系统,其中所述处理装置在对所述多个存储器单元执行数十至数百个之间的编程/擦除循环之后执行每一循环。
5.根据权利要求1所述的系统,其中所述BER是基于单个码字或多个码字的均值或中值中的一者。
6.根据权利要求1所述的系统,其中所述编程目标设定规则包括锁定对应于最高程序验证PV目标的编程分布的PV目标。
7.根据权利要求1所述的系统,其中所述处理装置进一步基于所述编程目标设定规则来调整所述多个编程分布中的一或多者的一或多个程序验证PV目标。
8.根据权利要求1所述的系统,其中所述程序擦除目标设定操作是实施所述编程目标设定规则以进一步平衡逻辑页类型,使得对于不同的逻辑页类型,所述BER是大致相同的BER,且均衡特定逻辑页类型的相对谷值裕度,使得所述特定逻辑页类型的谷值的读取窗口预算RWB为大致相同的RWB。
9.一种方法,其包括:
通过处理装置将存储器阵列的擦除分布的电压电平预设为高于默认值,所述存储器阵列包括第一逻辑页类型和第二逻辑页类型的多个存储器单元;以及
通过所述处理装置执行编程目标设定操作,所述编程目标设定操作包括:
确定对应于所述第一逻辑页类型的多个编程分布的一组差异错误计数;
基于所述一组差异错误计数的比较,识别对应于所述多个编程分布的多个谷值裕度;
多次调整所述多个谷值裕度中的至少一些的值,以均衡所述第一逻辑页类型的相对谷值裕度,使得所述第一逻辑页类型的谷值的读取窗口预算RWB为大致相同的RWB;
确定所述存储器阵列的位错误率BER;以及
响应于所述BER不满足BER控制值,将所述电压电平增大某一电压阶跃。
10.根据权利要求9所述的方法,其进一步包括:
在使包括所述存储器阵列的存储器装置投入操作之前,基于工厂默认修整值确定基线BER;以及
将所述BER控制值设定为高于所述基线BER某一百分比。
11.根据权利要求9所述的方法,其中所述多次包括预设数目的更新,所述方法进一步包括:
作为循环,重复所述编程目标设定操作,直到达到所述电压水平的平衡为止;
在任何给定循环期间,响应于所述BER满足所述BER控制值,将所述电压电平降低所述电压阶跃;以及
在达到所述电压电平的所述平衡之后,在每一后续循环期间,使所述电压电平抖动以在加减一个电压阶跃之间改变。
12.根据权利要求11所述的系统,其中作为循环重复所述编程目标设定操作包括在对所述多个存储器单元执行数十至数百个之间的编程/擦除循环之后执行每一循环。
13.根据权利要求9所述的方法,其进一步包括:在执行v)和vi)之前:
对于所述多次中的每一次,重复对所述第二逻辑页类型的所述编程目标设定操作;以及
对于所述多次中的每一次,使所述BER在所述第一逻辑页类型与所述第二逻辑页类型之间平衡。
14.根据权利要求13所述的方法,其进一步包括:
作为循环,重复所述编程目标设定操作,直到达到所述电压水平的平衡为止;
在任何给定循环期间,响应于所述BER满足所述BER控制值,将所述电压电平降低所述电压阶跃;以及
在达到所述电压电平的所述平衡之后,在每一后续循环期间,使所述电压电平抖动以在加减一个电压阶跃之间改变。
15.一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时致使所述处理装置执行编程目标设定操作,所述编程目标设定操作包括:
确定对应于存储器阵列的多个编程分布的一组差异错误计数,所述存储器阵列包括多个存储器单元;
基于所述一组差异错误计数的比较,识别对应于所述多个编程分布的多个谷值裕度;
基于所述多个谷值裕度的值,从规则集合中选择编程目标设定规则;
基于所述编程目标设定规则,执行程序擦除目标设定操作,以调整与所述存储器阵列的擦除分布相关联的电压电平;
确定所述存储器阵列的位错误率BER;
响应于所述BER满足BER控制值,将所述电压电平降低某一电压阶跃;以及
响应于所述BER不满足所述BER控制值,将所述电压电平增大所述电压阶跃。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述编程目标设定操作进一步包括:
在使包括所述存储器阵列的存储器装置投入操作之前,基于工厂默认修整值确定基线BER;以及
将所述BER控制值设定为高于所述基线BER某一百分比。
17.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述编程目标设定操作进一步包括:
作为循环,重复所述编程目标设定操作,直到达到所述电压水平的平衡为止;以及
在达到所述电压电平的所述平衡之后,在每一后续循环期间,使所述电压电平抖动以在加减一个电压阶跃之间改变。
18.根据权利要求17所述的非暂时性计算机可读存储媒体,其中作为循环重复所述编程目标设定操作包括在对所述多个存储器单元执行数十至数百个之间的编程/擦除循环之后执行每一循环。
19.根据权利要求15所述的非暂时性计算机可读存储媒体,其中具有所述多个谷值裕度中的最低谷值裕度的谷值位于所述擦除分布与邻近于所述擦除分布的编程分布之间,且其中执行所述程序擦除目标设定操作包括降低与所述擦除分布相关联的所述电压电平,以增大所述擦除分布与邻近于所述擦除分布的所述编程分布之间的所述谷值的裕度。
20.根据权利要求15所述的非暂时性计算机可读存储媒体,其中具有所述多个谷值裕度中的最低谷值裕度的谷值位于所述擦除分布与邻近于所述擦除分布的编程分布之间,且其中所述编程目标设定操作进一步包括确定具有所述最低谷值裕度的所述谷值与所述一组差异错误计数中的最高差异错误计数相关联。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/719,745 US11361825B2 (en) | 2019-12-18 | 2019-12-18 | Dynamic program erase targeting with bit error rate |
US16/719,745 | 2019-12-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112992235A true CN112992235A (zh) | 2021-06-18 |
Family
ID=76345048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011502162.7A Pending CN112992235A (zh) | 2019-12-18 | 2020-12-18 | 具有位错误率的动态程序擦除目标设定 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11361825B2 (zh) |
CN (1) | CN112992235A (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11211123B2 (en) * | 2017-12-11 | 2021-12-28 | Sony Semiconductor Solutions Corporation | Semiconductor device |
US11309052B2 (en) | 2020-08-25 | 2022-04-19 | Micron Technology, Inc. | Read voltage calibration for copyback operation |
US11495309B2 (en) * | 2020-12-16 | 2022-11-08 | Micron Technology, Inc. | Initiating media management operation using voltage distribution metrics in memory system |
US11854624B2 (en) * | 2021-11-18 | 2023-12-26 | Winbond Electronics Corp. | Non-volatile memory device and erasing operation method thereof |
US11994942B2 (en) | 2021-12-21 | 2024-05-28 | Micron Technology, Inc. | Raw bit error rate based trim level adjustments for memory |
US20240319875A1 (en) * | 2023-03-21 | 2024-09-26 | Kioxia Corporation | Tracking and updating read command voltage thresholds in solid-state drives |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7339846B2 (en) * | 2006-07-14 | 2008-03-04 | Macronix International Co., Ltd. | Method and apparatus for reading data from nonvolatile memory |
US8321727B2 (en) * | 2009-06-29 | 2012-11-27 | Sandisk Technologies Inc. | System and method responsive to a rate of change of a performance parameter of a memory |
US9324440B2 (en) * | 2010-02-09 | 2016-04-26 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices, operating methods thereof and memory systems including the same |
US8737136B2 (en) * | 2010-07-09 | 2014-05-27 | Stec, Inc. | Apparatus and method for determining a read level of a memory cell based on cycle information |
KR101710089B1 (ko) * | 2010-08-26 | 2017-02-24 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8499227B2 (en) | 2010-09-23 | 2013-07-30 | Micron Technology, Inc. | Memory quality monitor based compensation method and apparatus |
KR101212387B1 (ko) * | 2011-01-03 | 2012-12-13 | 에스케이하이닉스 주식회사 | 반도체 메모리 소자의 독출 방법 |
KR20120121167A (ko) * | 2011-04-26 | 2012-11-05 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이를 이용한 소거 방법 |
KR20130034919A (ko) * | 2011-09-29 | 2013-04-08 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
US9240240B2 (en) * | 2011-11-29 | 2016-01-19 | Micron Technology, Inc. | Apparatus having indications of memory cell density and methods of their determination and use |
US8760921B2 (en) * | 2012-08-28 | 2014-06-24 | Kabushiki Kaisha Toshiba | Storage device and control method of nonvolatile memory |
KR101988434B1 (ko) * | 2012-08-31 | 2019-06-12 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 서브-블록 관리 방법 |
US9361167B2 (en) * | 2012-10-24 | 2016-06-07 | SanDisk Technologies, Inc. | Bit error rate estimation for wear leveling and for block selection based on data type |
US9123445B2 (en) * | 2013-01-22 | 2015-09-01 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9128858B1 (en) * | 2013-01-29 | 2015-09-08 | Pmc-Sierra Us, Inc. | Apparatus and method for adjusting a correctable raw bit error rate limit in a memory system using strong log-likelihood (LLR) values |
US9543025B2 (en) * | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
US9478292B2 (en) * | 2013-10-27 | 2016-10-25 | Sandisk Technologies Llc | Read operation for a non-volatile memory |
US9329932B2 (en) * | 2014-04-25 | 2016-05-03 | Freescale Semiconductor, Inc. | Imminent read failure detection based upon unacceptable wear for NVM cells |
US20160041760A1 (en) * | 2014-08-08 | 2016-02-11 | International Business Machines Corporation | Multi-Level Cell Flash Memory Control Mechanisms |
US9411669B2 (en) * | 2014-09-11 | 2016-08-09 | Sandisk Technologies Llc | Selective sampling of data stored in nonvolatile memory |
US9251909B1 (en) * | 2014-09-29 | 2016-02-02 | International Business Machines Corporation | Background threshold voltage shifting using base and delta threshold voltage shift values in flash memory |
US9378809B1 (en) * | 2015-08-05 | 2016-06-28 | Apple Inc. | Relaxing verification conditions in memory programming and erasure operations |
US9620201B1 (en) * | 2016-04-26 | 2017-04-11 | Sandisk Technologies Llc | Storage system and method for using hybrid blocks with sub-block erase operations |
US10140040B1 (en) | 2017-05-25 | 2018-11-27 | Micron Technology, Inc. | Memory device with dynamic program-verify voltage calibration |
US10824352B2 (en) * | 2017-12-06 | 2020-11-03 | International Business Machines Corporation | Reducing unnecessary calibration of a memory unit for which the error count margin has been exceeded |
KR102579824B1 (ko) * | 2018-02-27 | 2023-09-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US11016693B2 (en) * | 2018-06-21 | 2021-05-25 | International Business Machines Corporation | Block health estimation for wear leveling in non-volatile memories |
US10629278B2 (en) * | 2018-09-05 | 2020-04-21 | Micron Technology, Inc. | First-pass dynamic program targeting (DPT) |
US11557345B2 (en) * | 2018-12-20 | 2023-01-17 | Micron Technology, Inc. | Dynamic memory programming voltage step for strenuous device conditions |
US10936392B2 (en) * | 2018-12-27 | 2021-03-02 | Micron Technology, Inc. | Read window size |
DE102020134945A1 (de) * | 2020-02-27 | 2021-09-02 | Taiwan Semiconductor Manufacturing Co., Ltd. | Dynamische fehlerüberwachung und -reparatur |
US11735254B2 (en) * | 2021-03-30 | 2023-08-22 | Micron Technology, Inc. | Error avoidance based on voltage distribution parameters of blocks |
US11556420B2 (en) * | 2021-04-06 | 2023-01-17 | Macronix International Co., Ltd. | Managing error correction coding in memory systems |
US20230083193A1 (en) * | 2021-04-07 | 2023-03-16 | Intel Corporation | Uncorrectable memory error prediction |
KR20220144481A (ko) * | 2021-04-20 | 2022-10-27 | 삼성전자주식회사 | 직교 에러 정정 회로 및 이를 포함하는 반도체 메모리 장치 |
US11592996B2 (en) * | 2021-07-23 | 2023-02-28 | EMC IP Holding Company LLC | Online error recovery |
-
2019
- 2019-12-18 US US16/719,745 patent/US11361825B2/en active Active
-
2020
- 2020-12-18 CN CN202011502162.7A patent/CN112992235A/zh active Pending
-
2022
- 2022-05-27 US US17/826,775 patent/US11742027B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210193229A1 (en) | 2021-06-24 |
US20220284967A1 (en) | 2022-09-08 |
US11361825B2 (en) | 2022-06-14 |
US11742027B2 (en) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11726719B2 (en) | Compound feature generation in classification of error rate of data retrieved from memory cells | |
CN112992235A (zh) | 具有位错误率的动态程序擦除目标设定 | |
US11669380B2 (en) | Dynamic programming of page margins | |
US12009034B2 (en) | Classification of error rate of data retrieved from memory cells | |
US11651828B2 (en) | First-pass dynamic program targeting (DPT) | |
US11373712B2 (en) | Dynamic programming of valley margins | |
CN112242170B (zh) | 使用数据结构来估计读取电平阈值 | |
US12040026B2 (en) | Adjustment of program verify targets corresponding to a last programming distribution and a programming distribution adjacent to an initial programming distribution | |
US11908536B2 (en) | First-pass continuous read level calibration | |
US11600333B2 (en) | Adjustment of a voltage corresponding to a programming distribution based on a program targeting rule | |
US11210154B2 (en) | Data-structure based dynamic program targeting control | |
US20210011657A1 (en) | Read sample offset placement | |
US11309020B2 (en) | Dragging first pass read level thresholds based on changes in second pass read level thresholds |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |