CN115713956A - 用于动态补偿非易失性存储器存储装置中多个干扰源的***和方法 - Google Patents
用于动态补偿非易失性存储器存储装置中多个干扰源的***和方法 Download PDFInfo
- Publication number
- CN115713956A CN115713956A CN202210995812.9A CN202210995812A CN115713956A CN 115713956 A CN115713956 A CN 115713956A CN 202210995812 A CN202210995812 A CN 202210995812A CN 115713956 A CN115713956 A CN 115713956A
- Authority
- CN
- China
- Prior art keywords
- interference
- ici
- states
- threshold
- histogram
- 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/08—Address circuits; Decoders; Word-line control 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/5642—Sensing or reading circuits; Data output 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/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- 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/26—Sensing or reading circuits; Data output 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/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- 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/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及用于动态补偿非易失性存储器存储装置中多个干扰源的***和方法。一种动态估计存储器页的干扰补偿阈值的方法,包括:基于干扰源的多个干扰状态,计算柱状图和对应阈值;对多个干扰状态进行聚类以确定有效数量的干扰状态;以及基于柱状图,估计读取阈值以动态补偿与目标行的有效数量的干扰状态中的每个干扰状态相关联的干扰噪声。
Description
技术领域
本布置一般地涉及存储器装置,更具体地涉及通过减轻相邻基元(cell)的干扰来获得非易失性存储器存储装置的提高的耐用性和平均读取性能。
背景技术
随着计算设备的数量和类型不断扩大,对此类设备所用存储器的需求也在不断增加。存储器包括易失性存储器(例如RAM)和非易失性存储器(例如闪速存储器或NAND型闪速存储器)。非易失性存储器阵列包括基元的行和列(串)。基元可以包括晶体管并且与单个位(bit)相关联。
在读取操作期间,可以读取非易失性存储器阵列的整行/整页。这可以通过向非正读取的所有行施加偏置电压并向应被读取的行施加参考阈值电压来实现。偏置电压可允许非易失性存储器阵列的晶体管完全导通。如果阈值电压足够高以克服浮置栅极中的俘获电荷,则位于正在读取的行上的基元将导通。感测放大器可以连接到每个串,其测量通过串的电流,并根据电流是否通过特定阈值而输出“1”或“0”。
随着非易失性存储器基元尺寸变小,存储器基元尺寸的按比例缩小可能会导致存储器块中邻近基元(浮栅晶体管)之间的寄生电容耦合增加。这种被称为“基元间干扰”(ICI)的现象可能会导致存储器中的错误,从而导致非易失性存储器存储装置的耐用性和读取性能下降。
非易失性存储器存储装置可实施快速编程方法,该方法可在对邻近行编程期间引发高水平的干扰,因为邻近行与目标编程行的隔离程度较低。
发明内容
本布置涉及通过减轻相邻基元的干扰获得非易失性装置的更高耐用性和更高平均读取性能的方法。
根据某些方面,一种动态估计存储器页的干扰补偿阈值的方法,包括:基于干扰源的多个干扰状态,计算柱状图(histogram)和对应阈值;对所述多个干扰状态进行聚类(cluster)以确定有效数量的干扰状态;以及基于所述柱状图,估计读取阈值以动态补偿与目标行的所述有效数量的干扰状态中的每个干扰状态相关联的干扰噪声。
根据其他方面,一种存储器***,包括:具有多个行的存储器页;以及用于执行所述存储器页的操作的电路,所述电路被配置为:基于干扰源的多个干扰状态,计算柱状图和对应阈值;对所述多个干扰状态进行聚类以确定有效数量的干扰状态;以及基于所述柱状图,估计读取阈值以动态补偿与目标行的所述有效数量的干扰状态中的每个干扰状态相关联的干扰噪声。
根据另外一些方面,一种包含处理器可读指令的非暂时性处理器可读介质,使得当由一个或多个处理器执行时,通过以下方式执行用于动态估计存储器页的干扰补偿阈值的方法:基于干扰源的多个干扰状态,计算柱状图和对应阈值;基于所述柱状图,识别应力条件;对所述多个干扰状态进行聚类以确定有效数量的干扰状态;以及基于所述柱状图,估计读取阈值以动态补偿与目标行的所述有效数量的干扰状态中的每个干扰状态相关联的干扰噪声。
附图说明
专利或申请文件包含至少一个彩色绘图。专利局将根据请求和必要费用的支付提供具有彩色附图的本专利或专利申请公开的副本。
当结合附图阅读以下对具体布置的描述时,本布置的这些和其他方面和特征对于本领域普通技术人员将变得显而易见,其中:
图1是示出根据一些布置的非易失性存储装置的框图。
图2是根据一些布置的具有4位/基元(bpc)非易失性存储器存储装置的VT分布的柱状图的图表。
图3是根据一些布置的具有非易失性存储器存储装置的每个编程状态的VT分布的柱状图的图表。
图4是根据一些布置的具有非易失性存储器存储装置的每个编程状态(例如,四个ICI状态)的VT分布的柱状图的图表。
图5是根据一些布置的使用固定ICI补偿阈值的读取流程的流程图。
图6是根据一些布置的使用应力条件分类以在当前应力条件下通过目标页的调整后的(adapted)读取阈值执行动态ICI补偿的读取流程的流程图。
图7是根据一些布置的对具有非易失性存储器存储装置的VT分布的柱状图执行的多次读取操作的图。
图8示出了根据一些布置的将ICI状态对聚类成组以改进ICI补偿阈值移位估计的示例。
图9A-9B示出了16个ICI状态和为校正与ICI状态对应的干扰而执行的移位的关系。
图10A-10B示出了64个ICI状态和为校正与ICI状态对应的干扰而执行的移位的关系。
图11是来自非易失性存储器存储装置和两个干扰源的BER分布的示例。
图12是根据一些布置的多层感知器网络的框图。
图13是根据一些布置的使用监督学习的示例机器学习模型的框图。
图14是根据一些布置的利用用于多个ICI读取的固定ICI补偿来确定ICI补偿的读取阈值的软位解码读取流程。
图15是根据一些布置的利用用于每个ICI状态的多次读取的动态ICI补偿来确定ICI补偿的读取阈值的软位解码读取流程。
图16是根据一些布置的利用用于每个ICI状态的多次读取的动态ICI补偿来确定ICI补偿的读取阈值的软位解码读取流程,其中利用了用于计算ICI补偿的多项式系数的估计。
具体实施方式
根据某些方面,本公开中的布置涉及用于在给定多个相邻干扰基元的情况下估计目标页的最佳(或改进的)补偿读取阈值的技术。多个邻近行可能在目标行上引起多个干扰状态。通过确定每个物理行的ICI补偿阈值,可以最小化(或降低)目标页读出误码率(biterror rate,BER)。对各种应力条件进行分类可以进一步降低BER,这是因为应力条件会在目标行上引起不同干扰水平。
非易失性存储器基元之间的固有耦合噪声可能发生在平面或三维(3D)非易失性存储器存储装置内。在平面非易失性存储器装置中,(1)同一行上的邻近基元和(2)相邻行的同一列上的邻近基元可能是ICI的主要贡献者。因此,可以通过估计邻近基元的状态来获得硬/软输入的可靠性增益。
主要干扰源可能是编程方案。例如,如果在对下一行编程之前对一行完全编程,则主要干扰源可能是编程方案。例如,在三电平基元(TLC)编程期间,对一行的编程可能会影响已编程的附近或相邻行。被编程到最高电平的基元可能是(比被编程到低于最高电平的电平的那些基元)更强干扰的来源,这可能导致相邻基元的非故意编程。
然而,对非易失性存储器装置(例如NAND存储器,包括四电平基元(QLC)和五电平基元(PLC))进行密集编程可能包括将编程分解为多个步骤。例如,可以将数据编程到过程(初始)设置中的给定行。然后在目标行在精细编程阶段被编程为最终电压值之前,可以对相邻(相关)行粗略地编程。这种编程方法可能需要更多的数据缓冲,并且可能具有较低的编程性能,但它可以提供较低的BER编程结果,同时减少相关基元之间的干扰。
例如,在3D TLC NAND装置中,相邻字线上可能发现ICI耦合。此外,在3D NAND装置(或其他非易失性存储器存储装置)中,诸如保持或跨温度编程(cross-temperatureprogramming)和读取的应力条件可能对目标行具有不同水平的干扰。因此,动态地估计干扰水平和最佳补偿可以有效地解耦ICI。
提供了用于通过减轻相邻基元的干扰(即,ICI)来获得非易失性存储器存储装置的改进的耐用性和平均读取性能的***和方法。改进的耐用性和平均读取性能可以通过提高装置可靠性和效率来延长非易失性存储器存储装置的使用。在一些实施例中,可以在不识别应力条件的情况下执行动态ICI估计。在其他实施例中(例如,取决于装置和ICI特性),可以估计应力条件并将其用于确定是否应该执行ICI补偿。
在一些布置中,可以估计ICI补偿的读取阈值。读取阈值可用于每个ICI状态的特定阈值附近的一组位。可以执行读取操作或模拟读取(mock-read)操作以估计ICI补偿的读取阈值。可能需要使用不同阈值对干扰执行多个读取操作以确定多个ICI状态信息。读取操作增加了开销和延迟。增加的延迟可能超过硬解码定时要求。
因此,在一些布置中,可采用软采样。执行软采样可以比硬采样更有利,因为软采样可以包含比硬采样更高数量的额外读取。软采样包含执行多次读取,其中每个读取操作使用不同的一个读取阈值。使用软采样估计ICI补偿的读取阈值通过提高估计准确度而提高了软采样的服务质量。与基于模拟读取阈值的估计相比,执行软采样来估计ICI补偿的读取阈值可以更准确,因为软采样使用每个目标阈值周围的更多信息。还可以通过估计每个ICI状态的最佳补偿阈值来提高软采样的估计准确度。
软信息(例如,软标签)的可靠性可以是从硬读取值和干扰值映射的对数似然比(LLR)值。例如,位b的有条件LLR值取决于干扰状态I,如式1所示:
本公开中的***和方法可在软采样后应用ICI补偿,以修改软采样的标签,而不必须使用针对多个干扰状态的估计结果对软输入重新采样。软采样和解码可在Avi Steiner和Hanan Weingarten于2020年4月8日提交的名称为“DECODING SCHEME FOR ERRORCORRECTION CODE STRUCTURE IN DATA STORAGE DEVICES(数据存储装置中纠错码结构的解码方案)”的美国申请No.16/843774,以及Avi Steiner于2018年9月13日提交的名称为“SYSTEM AND METHOD FOR HIGH PERFORMANCE SEQUENTIAL READ BY DECOUPLING OFINTER-CELL INTERFERENCE FOR NON-VOLATILE MEMORIES(通过非易失性存储器的基元间干扰的解耦实现高性能顺序读取的***和方法)”的美国专利No.10,614,897中进行了更详细的描述,这二者的全部内容通过引用并入本文中。通过引用并入的申请公开了用于干扰补偿的方法。然而,如本文所公开的,通过动态估计来自多个干扰源的多个干扰状态的动态补偿来改进干扰补偿。
在一些布置中,本公开中描述的用于减轻相邻基元的干扰的***和方法可以在非易失性存储器存储控制器(例如,图1中的存储器控制器102)上实现。在一些布置中,本公开中描述的用于减轻相邻基元的干扰的信号处理操作可以通过在非易失性存储器存储控制器(例如,图1中的存储器控制器102)上运行的软件或硬件来实现。在非易失性存储器存储控制器硬件(或固件)上实现信号处理操作可以导致低复杂度处理。在一些布置中,本公开中描述的用于减轻相邻基元的干扰的信号处理操作可用于在存储控制器(例如固态驱动器(SSD)控制器、通用闪速存储器(UFS)控制器、安全数字(SD)装置等)中实现。
图1是示出根据一些布置的非易失性存储装置100的框图。在一些布置中,非易失性存储装置可以是可以执行本公开中描述的任何方法的闪速存储器***。装置100的示例包括但不限于固态驱动器(SSD)、非易失性双列直插式存储器模块(NVDIMM)、通用闪速存储器(UFS)、安全数字(SD)装置等等。
在一些布置中,不同的装置(未示出)可以通过合适的有线或无线通信链路与装置100通信,以执行本文描述的一些或所有方法。装置100可以包括用于执行多个基元的操作的存储器控制器102以及存储器模块或存储器装置104。
存储器控制器102可以包括读取电路110、编程电路(例如,程序DSP)120和编程参数适配器130。在一些布置中,读取电路110可以包括ICI估计器111、ECC解码器112和/或软信息生成器113。在一些布置中,编程电路120可以包括ECC编码器124和编程参数122。在一些布置中,编程参数适配器130可以包括编程/擦除周期计数器132。存储器控制器102的示例包括但不限于SSD控制器(例如,客户端SSD控制器、数据中心SSD控制器、企业SSD控制器等)、UFS控制器或SD控制器等。存储器控制器102的布置可以包括附加的或更少的部件,例如图1所示的部件。
存储器控制器102可以组合多个存储器块106中的原始数据存储,使得存储器块106用作单个存储器。存储器控制器102可以包括微控制器、缓冲器、纠错***、闪速存储器转换层(FTL)和闪速存储器接口模块。这些功能可以在硬件、软件和固件或其任何组合中实现。在一些布置中,控制器110的软件/固件可以存储在存储器模块104或任何其他合适的计算机可读存储介质中。
存储器控制器102包括用于执行本文描述的功能以及其他功能的合适的处理和存储能力。如所描述的,存储器控制器102管理存储器模块104中的存储器块106的各种特征,包括但不限于I/O处理、读取、写入/编程、擦除、监视、日志记录、错误处理、垃圾回收、磨损均衡、逻辑到物理地址映射、数据保护(加密/解密)等。
在一些布置中,读取电路110的ICI估计器111可被配置为基于对多个基元中的第一基元(即,目标基元)的第一邻近基元的读取操作的结果来估计干扰状态。在一些布置中,可以对主要干扰源及其影响的统计相关性建模进行表征。例如,ICI估计器111可以被配置为执行干扰源及其影响的统计相关性建模。
在一些布置中,可以离线表征主要干扰源及其影响的统计相关性建模。例如,当不同非易失性存储器存储装置的不同编程方案增加在线执行统计相关性建模的难度时,可以离线执行统计相关性模型。例如,一代非易失性存储器存储装置的编程方案可能不同于另一代非易失性存储器存储装置的编程方案。
在一些布置中,ICI估计器111可以离线执行干扰源及其影响的统计相关性建模。在一些布置中,为了对目标非易失性存储器存储装置离线执行这种统计相关性建模,ICI估计器111或计算***可以在存储器中(例如,在连接到I/O(USB、IEEE1394、小型计算机***接口(SCSI)、串行高级技术附件(SATA)、串行连接SCSI(SAS)、PCI Express(PCIe)等的大容量存储装置中),至少存储关于目标非易失性存储器存储装置的编程方案的信息,以便其能够准确地对目标非易发性存储器存储装置中的干扰源及其影响进行建模。
在估计干扰状态时,ICI估计器111可进一步被配置为估计第一邻近基元被编程的电平。例如,ICI估计器111可以基于对第一邻近基元的读取操作的结果,估计第一邻近基元被编程的电平。ICI估计器111然后可以基于所估计的第一邻近基元的编程电平来估计第一邻近基元的干扰状态。在一些布置中,邻近基元的干扰状态是所估计的该邻近基元的编程电平。
在估计干扰状态时,ICI估计器111可进一步被配置为通过预取(pre-fetch)下一页读取或通过保存先前读取结果来获得对第一邻近基元的读取操作的结果。例如,在估计目标页中目标基元的干扰状态时,ICI估计器111可以通过预取在目标页之后紧接着要读取的下一页的读取结果,获得下一页中(目标基元的)邻近基元的读取结果。在一些布置中,ICI估计器111可以通过保存和再次使用在目标页之前已读取的前一页的读取结果来获得前一页中(目标基元的)邻近基元的读取结果。以这种方式,在一些布置中,ICI估计器111可以被配置为通过顺序地且仅一次读取多个基元的行来估计干扰状态,以解码对多个基元的读取操作的结果。在一些布置中,ICI估计器111可以根据在邻近基元中编程的状态(或电平)分布来估计邻近基元的干扰状态。
在一些布置中,ICI估计器111可以根据与目标基元相邻的一个或多个基元来对目标基元的干扰状态进行分析和建模。在一些布置中,为了分析每个邻近基元的干扰的贡献,可以执行单个邻近行状态估计。例如,ICI估计器111可以根据解码前的硬读取来估计邻近行的干扰状态。在一些布置中,ICI估计器111可以将解码后的邻近行的干扰状态估计为真实数据。
在一些布置中,一旦对干扰源及其影响进行建模或识别,即可执行简单的信号处理操作,以补偿或解耦干扰。例如,可以对目标页的采样结果进行后处理,以补偿或解耦干扰。在一些布置中,可以提供用于读取或解码目标页的可靠性信息。例如,读取电路110的软信息生成器113可以被配置为生成可靠性信息(例如,计算错误概率)并基于可靠性信息提供软信息。在一些布置中,读取电路110的软信息生成器113可以被配置为基于所估计的干扰状态和来自第一基元的读取值来生成软信息。本文参考图12至图14进一步描述生成软信息和使用软信息生成器113的布置。
ECC解码器112可被配置为解码作为对基元的读取操作的结果的软信息。附加地或替代地,ECC解码器112可以纠正错误,提高非易失性存储器存储控制器的准确度和应力消除。
存储器控制器102还可以包括编程电路120。编程电路可以包括ECC编码器124和编程参数122。例如,ECC编码器124可以从软样本确定软标签。存储器控制器102还可以包括编程参数适配器130。适配器130可以调整编程电路120中的编程参数122。在此示例中,适配器130可包括编程/擦除(P/E)周期计数器132。尽管为了便于说明而单独示出,但是适配器130中的一些或全部可以并入编程电路120中。
存储器模块104可以是存储器块106的阵列。存储器块可包括非易失性存储器,例如NAND闪速存储器、动态随机存取存储器(DRAM)、磁随机存取存储器(MRAM)、相变存储器(PCM)、铁电RAM(FeRAM)等。在一些布置中,存储器模块104可以具有多个基元。在一些布置中,每个存储器块106可以具有多个基元。在一些布置中,基元存储器(例如,存储器模块104或存储器块106)可以包括多个基元的行和列。在一些布置中,存储器块106可包括多个页(未示出),并且一页可被定义为与同一字线链接的基元,其对应于一行基元。在一些布置中,目标基元的邻近基元是与目标基元相邻的基元。例如,(第一基元的)第一邻近基元和第二邻近基元中的每一者可以位于与第一基元的列相同的列处和与第一基元的行相邻的行处。附加地或替代地,模块104可以包括多个管芯或使用多个管芯实现,每个管芯包含多个块106。
图2是根据一些布置的具有4位/基元(bpc)非易失性存储器存储装置(例如,闪速存储器装置,诸如具有16个可编程状态的QLC)的VT分布的柱状图200的图表。示出了16个波瓣(lobe)(分布或柱状图),其对应于由基元的电荷状态表示的4个位的16种不同的位组合。下部页(lower page)读取需要使用阈值T1 201、T3 203、T6 206和T12 212将柱状图分为LSB为0的柱状图和LSB为1的柱状图。读取阈值T2 202、T8 208、T11 211和T13 213用于将柱状图分为用于读取中部页(middle page)的LSB为0的柱状图和LSB为1的柱状图,读取阈值T4204、T10 210和T14 214用于将柱状图分为用于读取上部页(upper page)的LSB为0的柱状图和LSB为1的柱状图,读取阈值T5 205、T7 207、T9 209和T15 215用于将柱状图分为用于读取顶部页(top page)的LSB为0的柱状图和LSB为1的柱状图。较低的柱状图200可以被认为是擦除电平。
如本文所述,当对目标行执行读取操作时,会引起干扰。在一些实施方式中,可以将固定ICI补偿添加到读取阈值。然而,固定补偿无法有效改善BER,因为根据ICI状态、装置的应力条件和读取阈值,添加的ICI补偿程度会有所不同。例如,虽然引起的ICI状态的影响可能是已知的(例如,将阈值移位到高于或低于与无ICI状态阈值相关联的理想/最佳ICI补偿阈值),但方向上的移位程度是未知的.
图3是根据一些布置的具有非易失性存储器存储装置(例如,TLC NAND行)的每个编程状态的VT分布的柱状图的图表300。VT分布(柱状图)是有条件信息状态。柱状图可以是在具有一个主干扰源(例如,在编程期间引入的干扰)的一次编程的情况下确定的柱状图和VT分布的示例。使用单个阈值的单次读取(例如,单次状态读取)是可以被添加以获得读取流中干扰信息的最小开销。
图3可以离线表征,然而,如本文进一步所述,没有用于补偿的单个移位值将在给定干扰信息的情况下提供最佳ICI补偿。因此,每个ICI补偿阈值从理想读取阈值(例如,不受ICI影响的读取阈值)偏移一独特电压。
柱状图302标识要读取的目标行。黑色虚线阈值303和313中的每一者识别最佳读取阈值(例如理想读取阈值),其在没有ICI信息时(例如,理想柱状图)提供每个阈值的最小输出BER。邻近干扰行的单次读取导致同一目标行的两个诱导柱状图(例如柱状图304和柱状图306)。柱状图304和柱状图306是有条件柱状图。柱状图304和柱状图306之和产生柱状图302。
柱状图304对应于ICI状态0。柱状图304可以通过计算与邻近的干扰行上的读取结果“0”相对应的目标行的基元的VT分布来获得。由于柱状图304与邻近行的高编程干扰相关联,因此柱状图304被移位到较高电压(例如从无ICI状态柱状图302向右移位)。
柱状图306对应于ICI状态1。柱状图306可以通过计算与邻近的干扰行上的读取结果“1”相对应的目标行的基元的电压阈值分布来获得。由于柱状图306与来自邻近行的较低编程干扰相关联,因此柱状图306被移位到较低电压(例如从无ICI状态柱状图302向左移位)。
下面的式2表明,与有条件柱状图相关联的BER之和求和成与无任何ICI相关联的BER。两个有条件柱状图(例如柱状图304和柱状图306)总和为与无ICI状态相关联的柱状图(例如,柱状图302),使得具有ICI补偿的总BER低于无ICI状态BER。
BERnoICI>BERICI_0+BERICI_1 (2)
BERnoICI表示与无ICI状态(例如柱状图302)相关联的读出BER,BERICI_0表示与ICI状态0(例如柱状图304)相关联的读出BER,并且BERICI_1表示与ICI状态1(例如柱状图306)相关联的读出BER。
相比与无ICI状态相关联的最佳读取阈值(例如,阈值303)而言,每个ICI状态和关联的柱状图与不同的最佳阈值相关联。因此,与每个ICI状态相关联的固定ICI补偿在降低BER方面可能不是有效的。
为了展示不同ICI状态需要不同的ICI补偿,请注意与每个ICI状态相关联的阈值。蓝色虚线阈值305(和阈值315)与ICI状态0相关联,红色虚线阈值307与ICI状况1相关联。如图所示,ICI的效应是沿已知方向移位。然而,有条件ICI分布(例如柱状图304和柱状图306)的阈值相对于没有ICI信息的原始行的最佳阈值(例如柱状图302)具有变化的位移。
例如,蓝色虚线阈值305和315二者均与ICI状态1相关联。两个阈值分别从阈值303和313(该阈值表示没有ICI状态的最佳阈值)向左移位。然而,移位的程度不同,导致阈值305不同于阈值315。
如图所示,可以对目标行执行读取操作以促进最佳ICI补偿阈值的计算。三次页读取获得TLC的八种状态(例如,S0到S7)。模拟读取在一组VT分布(柱状图)上叠加。模拟读取308用于感测目标行的柱状图(例如,与无ICI状态相关联的柱状图302、与ICI状态0相关联的柱状图304、以及与ICI状态1相关联的柱状图305)以促进最佳ICI补偿阈值。
图4是根据一些布置的具有示例非易失性存储器存储装置(例如,QLC NAND行)的每个编程状态(例如,四个ICI状态)的VT分布的柱状图的图表400。图4中指示的行可以是要读取的目标行。如图所示,在410处,存在对邻近的N个干扰行的单次读取。对于同一目标行,可以存在2n个引发的柱状图。
阈值405可以是最佳读取阈值(例如,没有ICI信息的理想读取阈值)的示例。当没有ICI信息可用时,阈值405提供每个阈值的最小输出BER。阈值412和416可以相对于阈值415偏移。例如,阈值412和416可以是基于数模转换器(DAC)的固定步长的阈值415的值偏移。
图5是根据一些布置的使用固定ICI补偿阈值的读取流程500的流程图。读取流程500针对所有应力条件应用固定ICI补偿。读取流程500使用干扰信息来提供示例读取操作,执行这些操作以确定固定ICI补偿阈值。图5中描述的读取流程的最大读取操作次数为9。
在框502,可以对目标行执行单个读取命令。读取类型可以是整页读取。可以使用目标行的默认阈值执行读取命令,这通常在目标页/块上具有最少(或没有)先前信息时执行的。如果有先前信息可用,则第一读取阈值可以基于历史和/或跟踪信息而不是默认值。例如,读取阈值可以是与先前读取命令相关联的读取阈值。在一些布置中,如果与读取命令相关联的时间小于70微秒,则读取命令可以使用最后一个阈值。在一些布置中,可以对读取结果执行硬解码尝试。
在框504,可以确定对目标页的读取结果的硬解码是否成功。如果硬解码失败(例如,由于高错误率),则过程可以前进到框506。例如,解码的BER可能不满足阈值(例如,准确度阈值)。如果硬解码成功,则过程可以在框511处结束。
在框506,可以执行快速训练(QT)。如本文所讨论的,可以使用线性估计器来执行QT。QT操作可以使用模拟阈值执行一组读取操作(例如,五次单电平基元(SLC)读取)。可以计算柱状图,以便估计下一读取的读取阈值。如本文进一步讨论的,所计算的柱状图还可用于估计应力条件。在一些非易失性存储器存储装置(例如,QLC NAND)中,可能不需要针对应力条件进行ICI补偿。
在框508,可以使用来自框506的估计阈值来执行单个整页读取命令。可以尝试对目标页上的读取结果进行硬位解码。框510与框504类似。在框510,可以确定对目标页的读取结果的硬解码是否成功。如果硬解码失败,则过程可以前进到框512。如果硬解码成功,则过程可以在框511处结束。
在框512,可以执行两次额外的整页读取(或其他读取)以获得软位信息,从而可以执行软位解码(例如,图4中的软解码读取流程1400可以使用图1的软信息生成器113)。例如,可以执行两个读取操作,并且可以使用相对于来自框506的估计阈值的固定移位来补偿两个ICI。软位信息可以与来自框508的读取信息相结合,以为解码器(例如,图1中的ECC解码器112)提供标签。
图6是根据一些布置的读取流程600的流程图,该读取流程600使用应力条件分类以在当前应力条件下对目标页通过调整后的读取阈值执行动态ICI补偿。如本文所述,使用动态阈值估计和动态应力分类估计的益处包括降低BER和降低必须执行软解码的概率。此外,执行应力条件估计会增加最少读取量。例如,与读取流程500的流程图相比,四次读取被添加到读取流程600的流程图中。
框602类似于图5中的框502。在框602,可以对目标行执行单个读取命令。读取类型可以是整页读取。可以使用目标行的默认阈值执行读取命令,这通常在目标页/块上具有最少(或没有)先前信息时执行。如果有先前信息可用,则第一读取阈值可以基于历史和/或跟踪信息而不是默认值。例如,读取阈值可以是与先前读取命令相关联的读取阈值。在一些布置中,如果与读取命令相关联的时间小于70微秒,则读取命令可以使用最后一个阈值。在一些布置中,可以对读取结果执行硬解码尝试。
框604类似于图5中的框504。在框604,可以确定对目标页的读取结果的硬解码是否成功。如果硬解码失败(例如,由于高错误率),则过程可以前进到框606。例如,解码的BER可能不满足阈值(例如,准确度阈值)。如果硬解码成功,则过程可以在框611处结束。
随着时间的推移,硬解码更有可能成功(并因此前进到框611处结束),因为默认阈值(或先前阈值)跟踪应力条件和/或非易失性存储器存储装置的其他变化。应力条件可以根据温度和/或时间而动态变化。然而,在某些情况下,温度可能会缓慢变化,使得可以跟踪应力条件和相关联的补偿阈值,从而产生理想的BER。
例如,在时间t=0处,硬解码可能失败并且ICI补偿阈值如本文所述进行调整。在时间t=1处,硬解码很可能成功,因为从第一次执行框602-618确定的调整后阈值在时间t=1处可能仍然是相关的/更新的。因此,可以基于非易失性存储器存储装置的自调整过程提高服务质量。软解码的概率降低(例如,到达框618的概率),这是因为先前更新的阈值跟踪非易失性存储器存储装置的状况,使得硬位解码更有可能更频繁地成功。更新阈值使得硬位解码更有可能成功(例如,在框604、610和616处)释放了非易失性存储器存储装置的处理能力和资源。因此,由于第一次读取(例如,在框602处执行的读取)和相关联的读取阈值很可能在稍后时间相关,因此由执行读取导致的总延迟减少。
在框606,可以执行QT。QT操作可以使用模拟阈值执行一组读取操作(例如,五次单层基元(SLC)读取)。可以计算柱状图以估计下一读取的读取阈值。使用模拟阈值执行的读取可以保存在缓冲区上,以便稍后在读取流程中使用它们。
所计算的柱状图还可用于估计应力条件。在执行动态ICI补偿之前,可以执行应力条件的分类。没有应力条件动态估计的ICI补偿可能对延迟尾分布产生不可忽略的影响,因此可以避免。确定应力条件可以改善计算资源的分配,这是因为在给定某些应力条件的情况下确定动态ICI补偿与改进BER之间的权衡在给定执行ICI补偿的成本(例如时间、计算资源等)的情况下可能不是有利的。在某些情况下,执行ICI补偿可降低BER。例如,如本文所讨论的,对非易失性存储器存储装置(例如,QLC装置)的密集编程可以采用增量编程,使得存在较少的编程干扰(但是,例如由于保持(retention),仍可能存在干扰)。因此,应用干扰补偿阈值的效率不高,并且干扰补偿阈值可能导致BER增加。在其他情况下,动态ICI补偿可以取决于分类的应力条件。可以在读取流程中的第一跟踪操作期间执行应力条件检测。检测应力条件时,不会导致额外的开销。
例如,当执行有条件ICI操作时,分类和识别应力条件(例如,保持应力和跨温度应力)可能要求需要基于应力条件的动态ICI补偿。动态ICI补偿遵循在QT期间执行的应力条件估计,其中应力条件估计结果用于决定是否在解码之前应用ICI补偿。
应力条件可以使用诸如支持向量机和/或神经网络的分类器来分类。例如,各种支持向量机(SVW)可以使用来自所计算的柱状图的信息来对应力条件进行分类。例如,输入信息可以包括目标行的干扰状态、特征和对应的应力条件。该特征可以是在目标行的读取操作期间获得的信息(例如,物理行号(physical row number)、编程/擦除周期计数、无ICI通常估计的阈值(例如,无基元间干扰阈值))。
在一些布置中,每个应力条件可以有一个SVM(例如,一个对所有分类)。每个SVM可以对输入到SVM中的柱状图数据是否对应于与该SVM相关联的特定应力等级做出二进制确定(binary determination)。
输入柱状图数据可以被变换到更高维度(例如,将数据映射到新维度,采用使用sigmoid核、多项式核、径向基函数核等的“核技巧”),使得数据可线性分离。可以基于输入数据的维度确定决策边界。决策边界可以学习通过优化决策边界来将输入分成不同的类别。可以通过采用成本函数(例如合页损失函数)的梯度来优化决策边界,以最大化决策边界相对于SVM类别的边距(margin)。可以使用每个柱状图数据和应力条件数据来训练SVM,以便随时间调整决策边界。将参考图12和图13描述采用神经网络的布置。
如果识别出相关应力条件(例如,由SVM或神经网络识别的保持应力和/或跨温度应力),则在给定多个干扰源的情况下执行动态ICI补偿可能是有益的(例如,降低BER,降低软解码的概率)。执行动态ICI补偿可以包括将ICI状态的数量减少到ICI状态的有效数量以及对有效ICI状态的ICI补偿移位进行平均。如果未识别出相关应力条件(例如,相关应力条件与目标行不相关),则可以将固定ICI补偿(或无ICI补偿)应用于目标行。例如,可以基于计算的柱状图、模拟读取、读取操作等从预定的表中选择固定ICI补偿。附加地或替代地,可以对目标行执行软解码。
如本文所讨论的,可以使用模拟读取和关联的柱状图来针对k个ICI状态集群(cluster)中的每一个估计动态ICI补偿阈值。对状态进行聚类(如图8的示例中所述)有益地减少了用于模拟阈值估计的有效状态的数量。
ICI状态可以使用诸如k均值聚类的顺序聚类算法来聚类(或以其他方式关联)。ICI状态(例如,有效的ICI状态)的每个集群可以表示相似的ICI状态的集合。ICI状态可以基于涉及ICI状态与质心(centroid)的距离的相似性确定来分组。例如,质心可以是随机生成的。与k个质心相关联的ICI状态的每个集群可以被确定为第k个ICI有效状态。ICI状态可以基于ICI状态(使用柱状图数据确定)和质心之间的相对距离进行聚类。基于最小化与质心相关联的每个ICI状态的平均距离,质心可以移动到新的相对位置。每次质心移动时,可以重新计算质心和ICI状态之间的距离。质心可以迭代地移动靠近ICI状态,直到满足停止标准(例如,ICI状态不改变集群,距离总和最小化,达到最大迭代次数)。在一些配置中,ICI状态和质心之间的距离可使用欧几里得距离来确定。在其他配置中,ICI状态和质心之间的距离可以基于ICI状态的相关特征(例如,导致ICI状态的柱状图特征)的相似性。
附加地或替代地,每个ICI状态可以被确定为质心。例如,可以基于质心ICI状态到其他ICI状态的距离对ICI状态进行聚类。距离度量可以包括例如到其他ICI状态的最小的最大距离、到其他ICI状态的最小的平均距离、以及到其他ICI状态的最小平方和距离。聚类的ICI状态是相似的,使得聚类的ICI状态中的每一个具有相似的从无ICI状态的平均移位。因此,ICI补偿可以根据分组/聚类的状态来确定。
附加地或替代地,ICI状态可以基于在目标行上引起的相似效应来聚类。例如,可能存在对上一字线和下一字线执行单次读取操作的情况。因此,可能存在如下面的式3所示的四种状态:
LP,Lm,Hp,Hm, (3)
在式3中,L表示“低状态”,H表示“高状态”。每个状态可以与上一字线(p)和下一字线(m)相关联。这四种状态可以聚类为如下所示的三种状态:
集群1 | (L<sub>P</sub>,H<sub>m</sub>)(L<sub>m</sub>,H<sub>P</sub>) |
集群2 | (L<sub>P</sub>,L<sub>m</sub>) |
集群3 | (H<sub>m</sub>,H<sub>p</sub>) |
在示例中,可以基于高(H)和低(L)干扰对状态进行聚类。例如,可以基于目标行是否具有来自下一字线的干扰源(其为高)以及与上一字线相关联的干扰源(其为低)(或来自下一字线的干扰源为高,与上一字线相关联的干扰源处于为低)来确定集群1。目标行上的移位(例如,从H到L或从L到H)是相同的。因此,这两个状态可以合并到单个集群中。
可以基于合并ICI移位来创建集群2,该合并基于来自上一字线和下一字线的为低的干扰源。类似地,可以基于合并ICI移位来创建集群3,该合并基于来自上一字线和下一字线的为高的干扰源。因此,ICI状态的数量可以减少。
在示例中,16种干扰状态由从三次读取下一字线和三次读取上一字线引起的四个ICI状态导致。类似的ICI状态可以被分组/聚类成更小的ICI状态集,以将ICI状态的数量减少到ICI状态的有效数量。参考图7描述读取下一字线和上一字线并确定ICI状态。
在不同的相关行(例如,邻近的行)的ICI状态已经被聚类并且ICI状态的数量已经有效减少之后,可以对目标行执行模拟读取。执行模拟读取可以包括使用一组固定的(或预定的)模拟阈值来读取目标行。模拟读取可以是具有预定义阈值的读取,这些预定义阈值是仅用于感测目标行的柱状图分布的读取。
如本文所述,模拟读取阈值可用于促进估计每个柱状图的最佳补偿。可以根据以下标准中的一个或多个标准来优化模拟读取阈值的选择:(1)在满足可靠性规范的同时最小化读取流程开销。因此,可以选择最小的一组所需模拟阈值(或缩减的一组模拟阈值)来计算具有ICI信息的柱状图;(2)最小化因ICI补偿而增加的BER的MMSE;(3)最小化所有应力条件下增加的BER的尾部分布(例如,加权的MMSE)。
在一些布置中,可以执行多个ICI状态的固定排序以替换聚类的ICI状态和每个ICI状态的补偿移位。将ICI补偿建模为函数可以避免在ICI状态被聚类时可能发生的信息丢失。因此,可以使用具有参数/系数的模型函数来确定每个ICI状态的补偿。如果对于ICI状态存在固定的静态排序,则可以执行用模型函数替换聚类的ICI状态。例如,在程序干扰应力和保持应力条件下,干扰的影响与ICI状态顺序一致。例如,16个ICI状态的ICI状态排序在图9A-9B中示出,64个ICI状态的ICI状态排序在图10A-10B中示出。
模型函数可以被优化以将ICI补偿移位用参数描述为给定多个ICI状态情况下的ICI状态的函数。ICI状态的非均匀网格映射(例如,x轴映射,如图9-10所示)可以被离线优化。
例如,n次多项式可以描述补偿移位函数,其中补偿移位函数可以被建模为式4所示:
其中,对于k个ICI状态,i=1,…,k,xi是第i个ICI状态的x轴网格值,并且a0,…,an是多项式系数。系数可以按阈值、按行和/或按应力条件而被动态估计。
为了估计每个ICI状态的装置读取阈值,可以使用式5中描述的线性估计器来估计系数:
一组M个模拟阈值可以与创建k个ICI状态的ICI多次读取联合使用。在式5中,是包含每个阈值的多项式系数的估计结果的(n+1)Dx1向量,并且D表示D+1个编程状态的阈值数量。柱状图向量HK(M+1)可以反映M+1个柱状图柱(bin)、M个模拟读取阈值的柱状图大小。柱的数量与k个ICI状态相乘。因此,线性估计器采用基于用于动态补偿目标行的有效数量干扰状态中的干扰状态的读取阈值的向量,基于柱状图的值的线性估计器的向量,以及基于系数的线性估计器的矩阵。
在示例中,非易失性存储器存储装置(例如,TLC装置)可以具有两组七个阈值,每个阈值对应于一个ICI状态。在不同的示例中,QLC装置可以具有D=15个估计阈值。
附加地或替代地,可以使用DNN按阈值估计描述最佳ICI补偿函数的系数。将参考图12和图13描述采用深度神经网络的布置。
ICI状态可以在x轴上表示(例如,使用非线性网格映射,如图9-10所示),并且阈值移位可以在y轴上表示。例如,在给定描述聚类的ICI状态和ICI补偿阈值移位之间关系的图形表示的情况下,图形表示的两个参数可以是确定阈值移位的准确机制。附加地或替代地,聚类的ICI状态和ICI补偿阈值移位之间的关系可以由n次多项式来指示。
对聚类的ICI状态和ICI补偿阈值移位之间的关系进行建模减少了读取次数。在示例中,可以对下一字线执行三次ICI读取,并且可以对上一字线执行三次ICI读取,从而导致每条字线总共四个ICI状态,并导致总共16个ICI状态。通常,可以针对每个ICI状态确定估计的ICI补偿阈值。然而,在给定有限长度的码字,并且必须估计16个状态的每个阈值的情况下,用于每个状态的资源(时间、计算处理能力等)都有效地减少了。也就是说,计算每个状态的阈值减少了可用于使用资源估计不同状态和/或完成其他估计/任务的资源,使得估计每个状态的准确度可能降低。
因此,ICI补偿移位可以相对于不同阈值的零移位来描述。也就是说,ICI补偿可以是响应于针对无ICI的诸如理想阈值的最佳阈值的移位。ICI补偿移位可以描述为ICI状态的函数,因为例如当存在保持时,ICI补偿作为应力影响的持续时间或保持的函数而增加。如本文所述,ICI补偿移位和ICI状态的关系可以通过使用线性估计器和/或线性估计器估计线性曲线的至少两个参数或n次多项式的n个参数来确定。
框608类似于图5中的框508。在框608,可以使用来自框606的估计阈值来执行单个读取命令。读取可以保存在缓冲区中,因此它们可以稍后在读取流程中使用。可以尝试对目标页上的读取结果进行硬位解码。框610类似于框604。在框610,可以确定对目标页的读取结果的硬解码是否成功。如果硬解码失败,则过程可以前进到框612。如果硬解码成功,则过程可以在框611处结束。
在框612,可以执行对下一字线行的单次读取操作和对上一字线行(或任何其他主干扰行)的单次读取操作。如果从框606中确定的应力条件不指示保持条件和/或跨温度应力条件,则基于应力条件动态补偿ICI状态可能是不是有益的,并且该过程可以前进到软解码(例如,图15或图16)。如果从框606中确定的应力条件指示保持应力和/或跨温度应力,则可以计算具有ICI状态和模拟读取的柱状图以确定每个ICI状态的动态ICI移位阈值。可以使用在框602中确定的单次读取、在框606中确定的有效ICI状态和在框606中确定的柱状图,使用DAC转换器针对每个ICI阈值确定移位。
集群1的阈值(包括状态(LP,Hm)(Lm,HP))可能是先前从目标行估计的(如果先前估计的阈值可用)。否则,集群1的阈值是没有ICI信息的阈值。
为了计算与集群2和3的ICI状态相关联的DAC移位阈值,可以使用线性估计器或DNN。将参考图12和图13描述采用神经网络的布置。
线性估计器可用于通过ICI估计计算集群2和3的读取阈值(例如,QT的示例)。线性估计器可以根据式6获得:
其中是包含阈值估计结果的Ax1向量,其中这些阈值对应于不同的干扰状态(例如,与集群2相关联的状态和与3相关联的状态)。在本文描述的示例中,A=30(例如,两组15个阈值)。向量HBx1包含从下一字线和上一字线的模拟读取和ICI单次读取获得的柱状图值。最后,矩阵XAxB是线性估计器系数矩阵,其可以在包含受支持应力条件的样本的VT分布的数据库上离线训练。
在示例中,数据库可以配置有具有针对数据库中每一行的下一字线和上一字线的状态读取的VT分布和预定的(固定的)模拟读取阈值。对于数据库中N行中的每一行,可以使用与每行的最佳阈值对应的标签来计算一组N个柱状图。
最小化阈值估计均方误差(MMSE)的一个示例线性估计器在式7中示出:
其中HBxN是柱状图矩阵,VAxN是最佳阈值矩阵。与估计次优阈值相关联的BER可能与相对于最佳阈值的阈值误差不成比例。为了评估BER对估计的阈值的影响,可以将误差函数从阈值误差转换为附加BER对(vs.)阈值误差的函数。
这可以通过例如使用加权最小二乘算法来实现,该算法通过向每个柱状图样本提供与来自先前MMSE迭代的阈值相对应的权重来迭代求解阈值MMSE。也就是说,其中wi表示将阈值误差转换为BER所需的归一化权重,求解加权MMSE的式(7)的下一迭代由XAxB(iter)=VAxN·Witer·HT(H·Witer·HT)-1给出,其中Witer是在其对角线上具有权重wi的NxN对角矩阵。每次迭代更新权重,直到加权MSE损失最小化。在其他实施方式中,可以使用其他多项式函数来计算作为阈值误差的函数的附加BER,并执行随机梯度下降以最小化损失。
每个干扰状态的估计读取阈值可以使用与被组合成K个ICI状态的ICI信息的多次读取联合的一组M个模拟阈值来计算。例如,每个ICI状态的估计读取阈值可由式8给出:
其中是包含D+1个可能编程状态的D个阈值的估计结果的KDx1向量。在TLC装置的情况下,D=7并且可以存在两组七个阈值,其中每个阈值对应于一个ICI状态。在QLC装置的情况下,D=15可以是估计阈值的数量。在式8中,K(M+1)的柱状图向量可以反映柱状图大小。例如,当使用M个模拟读取阈值时,有M+1个柱状图,乘以k个ICI状态。
在框614,可以执行手动硬位操作。手动硬位操作可以包括根据每个阈值的应力条件集群(例如,在框606中确定的集群2和3)应用补偿偏移值。可以使用固定的阈值移位来执行两个额外的完整读取。通过根据读取结果中的ICI状态信息选择各个部分,可以形成单个输入硬位码字。在一些布置中,可以对读取结果执行硬解码尝试。
框616可以类似于框604和610。在框616,可以确定目标页的读取结果的硬解码是否成功。如果硬解码失败,则过程可以前进到框618。如果硬解码成功,则过程可以在框611处结束。
在框618,可以执行两个额外的整页读取(或其他读取)以获得软位信息,从而可以执行软位解码(例如,使用图1的软信息生成器113)。例如,可以执行两次读取操作,并且可以使用相对于来自框606的估计阈值的固定移位来补偿两个ICI。如果应力条件被识别为包括保持和/或跨温度,则可以将软位信息与来自框614的读取信息进行组合以提供解码器(例如,图1中的ECC解码器112)的标签。如果应力条件被识别为不包括保持和/或跨温度,则可以组合软位信息与来自框608的读取信息。如本文所述,软位解码读取流程参考图15和16来描述。
图7是根据一些布置的对具有4bpc非易失性存储器存储装置(例如,闪速存储器装置,诸如具有16个可编程状态的QLC)的VT分布的柱状图执行多次读取操作的图表。如图所示,来自两个不同行的六次单个状态读取(例如,每行三次读取)用于获得ICI信息。阈值706、708和730用于从下一行和上一行(例如,下一字线和上一字线)读取ICI信息,其中Sm(i),i=1,…,4和Sp(i),i=1,…,4指示从读取获得的信息。每对(Sm(i),Sp(i))是ICI状态,i=1,...,4。16个ICI状态可引起用于估计的补偿阈值,这会导致使用有限大小的行信息进行不准确的估计。ICI状态对(Sm(i),Sp(i))中的每一个可以被聚类成组,以改进ICI补偿阈值移位估计。
图8示出了根据一些布置的将ICI状态对聚类成组以改进ICI补偿阈值移位估计的示例800。对ICI状态对进行聚类将状态数量减少为有效状态数量。如图所示,ICI状态可以聚类成五个集群,其中五个集群中的每一个集群在大小上几乎相等。因此,ICI状态数量从16个状态减少到有效的5个状态,便于更稳健的补偿阈值估计。
图9A-9B和10A-10B示出了ICI和在由与ICI状态对应的干扰引发时执行的移位的关系。对于每个阈值,将各自的平均波瓣移位计算为有序ICI状态指数的函数。如图所示,相对于零移位,每个ICI状态可有不同的移位。图9A-9B和10A-10B示出了已根据数据库中的样本分组的ICI状态。图9A-9B示出了16个状态中的每个ICI状态的示例平均移位,而图10A-10B示出了64个状态中的每个ICI状态的示例平均移位。图10A-10B中的64个状态例如可以通过对一个干扰行执行具有七个阈值的读取并且对另一干扰行执行具有附加的七个阈值的读取来获得。因此,每行中有八个区域,可以映射到64个ICI状态。图9A和10A表示由一年的保持应力引起的ICI,而图9B和10B表示编程干扰应力引起的ICI。
图9A-9B和10A-10B中的x轴是可以通过评估数据库中的样本来对ICI状态和移位的关系建模而估计的非均匀网格。也就是说,为排序的(sorted)ICI状态指数分配非均匀网格。如图所示,所产生的作为ICI状态指数的函数的移位函数对应于线性曲线。可以使用线性估计器对关系进行建模,以估计数据库中的模型参数。例如,如图9A所示,估计的关系902可以基于针对每个阈值移位来估计斜率和偏差(bias)。如图所示,估计的每个ICI状态902的移位和有序状态之间的误差很小。y轴表示引起的DAC移位,但例如是以毫伏为单位的电压移位。
图11是来自非易失性存储器存储装置和两个干扰源的BER分布的示例1100。如图所示,非易失性存储器存储装置是QLC装置。图表1104指示下部页的BER分布,图表1106指示中部页的BER分布,图表1108指示上部页的BER分布,图表1110指示顶部页的BER分布。图表的x轴指示BER,y轴指示互补累积分布函数(CCDF)。
示例1100示出了ICI补偿对改进BER的影响。如图所示,没有ICI读取的下部页1104BER分布是线1114。线1114表示使用最佳阈值(例如,没有任何ICI补偿)测量的BER。使用下一字线和上一字线的两次ICI SLC读取来确定三个状态的下部页1104 BER分布由线1124(“QICI1”)指示。最佳补偿按行/阈值估计。使用下一字线和上一字线的六次ICI SLC读取来确定五个ICI状态的下部页1104 BER分布由线1134(“ICI3”)指示。最佳补偿按行/阈值估计,并且最佳阈值用于读取ICI3后补偿(例如,通过QT和/或PST)。使用下一字线和上一字线的六次ICI SLC读取来确定16个ICI状态的下部页1104 BER分布由线1144(“ICI3线性”)指示(例如,使用通过估计的多项式函数确定的线性曲线估计)。补偿可以跟随每个ICI状态的波瓣移位的计算,并且可以确定线性曲线系数。此外,最佳阈值可用于读取ICI3后补偿。使用下一字线和上一字线的六次ICI SLC读取来确定16个状态的下部页1104 BER分布由线1154(“ICI3界限”)指示。最佳移位按行/阈值应用于每个ICI状态,并且最佳读取阈值可用于BER计算。应用于每个ICI状态的最佳移位可以是ICI补偿上的界限(bound)。
图12是根据一些布置的多层感知器网络1200的框图。如图所示,网络1200是全连接网络。神经网络1200可以在非易失性存储装置100内实现。例如,网络1200可以在控制器本身内实现,作为经由嵌入式CPU运行的固件软件实现或作为硬件实现,具体取决于固件存储器和延迟性能规格。
神经网络模型1200可以包括不同层(竖直取向)的堆叠,这些层将输入层1213所摄取的可变数量的输入1209转换为输出层1219处的输出1208。网络1200可以在训练数据集上进行训练,该训练数据集包括特征、基于模拟和ICI的柱状图向量、以及对应的读取阈值、应力条件和/或多项式系数。例如,可以在训练数据集中使用目标行的干扰状态、特征、以及对应的读取阈值、应力条件和/或多项式系数。
如本文所讨论的,网络1200可用于使用模拟读取、ICI读取结果和附加特征以及输入层1213和一个或多个隐藏层1218中的一者或多者来估计动态ICI补偿阈值、应力条件和/或多项式系数。在其他布置中,网络1200可以不包括任何隐藏层1218。输入1209可以作为向量被输入层1213接收。
在一些布置中,网络1200可以是神经网络链,使得可以估计动态补偿ICI的应力条件、多项式系数和/或阈值。被训练为估计各种输出1208(例如,ICI补偿阈值、应力条件和/或多项式系数)的网络的架构可以各自不同。例如,网络的架构可具有不同数量的隐藏层1218或不同的模型(例如,随机森林、SVM)。附加地或替代地,网络的架构可以是相同的(例如,相同数量的隐藏层、相同类型的网络(卷积神经网络))。
模拟读取(或来自软样本的柱状图)和到网络1200的一个或多个ICI读取输入1209可以是源自模拟读取和ICI读取的所计算的柱状图向量。特征输入1209可以包括应力分类评分(例如,从用于确定应力分类的不同网络接收)、物理行号、编程/擦除周期计数、无ICI通常估计的阈值和在读取操作期间获得的其他信息。某些特征(例如,无ICI通常估计的阈值)可以取决于读取流程实现。在一些布置中,具有ICI信息的读取可以遵循获取目标行的没有ICI的阈值的阈值跟踪状态。
除柱状图向量信息(例如,来自模拟和ICI读取)之外还使用特征允许网络1200学习并受益于基元特征之间的相互作用。例如,训练网络1200以利用特征数据预测/估计补偿的ICI阈值可以改进所估计的补偿的ICI阈值。例如,特征信息可以传达(convey)有关基元环境(例如,应力条件)的信息,该信息允许网络1200更好地学习所估计的补偿的ICI阈值(输出1208)与模拟读取和ICI读取输入1209之间的关系。
输入层1213包括连接到隐藏层1218的每个神经元1215的神经元1211。隐藏层1218中的神经元1215连接到输出层1219中的神经元1221。取决于网络1200被训练做什么,如果网络被用于估计ICI补偿阈值,则输出层1219可以生成指示估计的读取阈值(例如,ICI补偿阈值)的向量1208。如果网络被用于估计多项式系数,则还可以训练网络1200以生成多项式系数的输出向量1208。
附加地或替代地,输出层1219可以是softmax分类器,使用softmax函数(例如,归一化指数函数)将实数的输入转换成预测输出类上的归一化概率分布。也就是说,如果使用网络1200来确定应力分类,则输出层1219可以生成每个应力条件的评分,使得最高评分对应于最可能估计的应力条件。网络1200可以包括位于输入层1213和输出层1219之间的多个隐藏层1218。
通常,神经元(1211、1215和1221)执行特定计算,并互连到相邻层的神经元。神经元1211、1215和1221中的每一个对来自相邻神经元的值进行求和并应用激活函数,从而允许网络1200学习非线性模式。网络使用非线性模式来学习输入(例如,与特征、模拟读取和ICI读取结果相关联的信息)与输出(例如,估计的ICI补偿阈值、应力条件、多项式系数等)之间的非线性关系。
神经元1211、1215和1221中的每一个通过算法权重1217-1、1217-2、1217-3、1217-4、1217-5、1217-6(统称为权重1217)互连。在训练期间调整权重1217以调整神经元的强度。神经元强度的调整有助于网络1200学习非线性关系的能力。在训练期间优化算法权重,使得网络1200能够学习估计的补偿阈值。
可以使用监督学习来训练网络1200。图13是根据一些布置的使用监督学习的示例1300机器学习模型(例如,图12中的网络1200)的框图。监督学习是一种在给定输入-输出对的情况下训练机器学习模型的方法。输入-输出对是具有关联的已知输出(例如,预期输出)的输入。
机器学习模型1304可以在已知的输入-输出对上进行训练,使得机器学习模型1304可以学习如何在给定已知输入的情况下预测已知输出。一旦机器学习模型1304已经学会了如何预测已知的输入-输出对,机器学习模型1304就可以对未知输入进行操作以预测输出。
训练输入1302和实际输出1310可被提供给机器学习模型1304。训练输入1302可以包括模拟读取(或软样本)、ICI读取结果、以及特征。实际输出1310可以包括最佳ICI补偿阈值、应力条件或多项式系数。
在一种布置中,可以使用训练输入1302(例如,模拟读取、ICI读取和其他特征)训练机器学习模型1304,以通过将机器学习模型1304的当前状态应用于训练输入1302来预测输出1306(例如,估计的最佳ICI补偿阈值)。比较器1308可以将预测输出1306与实际输出1310(例如,实际测量和/或计算的最佳ICI补偿阈值)进行比较,以确定误差量或差异量。例如,估计/预测的最佳ICI补偿阈值(例如,预测的输出1306)将与实际/测量的最佳ICI补偿阈值(例如,实际输出1310)进行比较。
附加地或替代地,可以使用训练输入1302(例如,软样本和其他特征)来训练机器学习模型1304,以通过将机器学习模型1304的当前状态应用到训练输入1302来预测输出1306(例如,估计的最佳ICI补偿阈值)。比较器1308可以将预测的输出1306与实际输出1310(例如,实际测量和/或计算的最佳ICI补偿阈值)进行比较以确定误差量或差异量。例如,估计/预测的最佳ICI补偿阈值(例如,预测的输出1306)将与实际/测量的最佳ICI补偿阈值(例如,实际输出1310)进行比较。
附加地或替代地,可以使用训练输入1302(例如,模拟读取、ICI读取和其他特征)来训练机器学习模型1304,以通过将机器学习模型1304的当前状态应用到训练输入1302来预测输出1306(例如,应力条件)。比较器1308可以将预测的输出1306与实际输出1310(例如,识别的应力条件)进行比较以确定误差或差异。例如,应力条件的估计/预测的概率(例如,预测的输出1306)将与实际应力条件(例如,实际输出1310)进行比较。
附加地或替代地,可以使用训练输入1302(例如,模拟读取、ICI读取和其他特征)来训练机器学习模型1304,以通过将机器学习模型1304的当前状态应用到训练输入1302来预测输出1306(例如,多项式系数)。比较器1308可以将预测的输出1306与实际输出1310(例如,使用不同方法确定的多项式系数)进行比较以确定误差或差异。例如,多项式系数的值(例如,预测的输出1306)将与不同的测量系数值(例如,实际输出1310)进行比较。
在训练期间,由比较器1308确定的误差(由误差信号1312表示)可用于调整机器学***方误差函数、均方根误差函数和/或交叉熵误差函数。
可以调整机器学习模型1304的加权系数以减小误差量,从而最小化预测的输出1306与实际输出1310之间的差异(或以其他方式收敛预测的输出1306与实际输出1310)。可以训练机器学习模型1304,直到在比较器1308处确定的误差在某个阈值内(或已达到阈值数量的批次、代或迭代)。随后可以存储经过训练的机器学习模型1304和相关联的加权系数,使得可在未知数据(例如,非训练输入1302)上采用机器学习模型1304。一旦经过训练和验证,机器学习模型1304就可以在测试(或推断阶段)期间被使用。例如,在测试期间,机器学习模型1304可以摄取未知数据以预测/估计最佳ICI补偿阈值、应力条件和/或多项式系数。使用本文描述的***和方法,非易失性存储装置100可以具有用于估计最佳ICI补偿阈值、应力条件和/或多项式系数的形式化方法(formalized approach)。
图14是根据一些布置的软位解码读取流程1400,其利用用于多个ICI读取的固定ICI补偿来确定ICI补偿的读取阈值。软读取流程1400使用目标行的软位采样。在一个示例中,读取流程1400中的读取次数为40。软位采样可用于估计用于ICI补偿的读取阈值,以提高服务质量和估计准确度。在一些布置中,当硬解码失败时(例如,在图5中的读取流程500失败之后)执行读取流程1400。
在该示例中,过程开始于框1402,其中软采样被执行并与ICI采样组合。在一个示例中,在阈值(例如,从图5的框506的用于硬位解码的固定ICI补偿的读取流程500估计的QT阈值)附近执行五位分辨率软采样。在某些配置中,针对软采样执行的整页读取次数可以是31。
在框1404,可以执行组读取。组信息读取可用于区分每个目标阈值附近的基元。例如,可以执行三次SLC读取以分离柱状图的波瓣区域。
在框1406,如果在QT期间估计了保持应力,则可选地执行ICI读取和重新标记。例如,可以使用六次SLC读取(例如,下一字线的三次读取和上一字线的三次读取)来确定16个ICI状态。然后,可以对每个ICI状态应用软样本上的固定移位。例如,可以应用固定的(或预定的)标签来重新标记ICI补偿阈值。软样本上的移位是初始软LLR到不同的软LLR的重新映射操作,具体取决于每个状态的移位。如果在QT期间没有估计保持应力,则过程可以前进到框1408。
在框1408,可以执行预软跟踪(PST)。PST可以是使用软标签来确定最佳阈值的算法。PST算法的一个简单示例包括计算特定阈值附近的软采样输入的柱状图,并通过柱状图最小值的位置确定最小BER阈值。当ICI状态可用时,可以使用每个ICI状态的柱状图的最小值来确定ICI补偿的最佳(动态)阈值。PST可以在对软样本进行软解码之前执行。作为执行PST的结果,可以更新软位解码标签。PST可用于在对每组的每个目标页阈值进行ICI补偿后找到最佳阈值。也就是说,可以在使用软采样和重新标记的ICI补偿之后调整每组的硬解码决策阈值(decision threshold)。可以针对每个ICI状态应用PST。
如果没有ICI信息,则可以使用每个目标阈值附近的柱状图的最小搜索和/或模型拟合(例如,拉普拉斯分布)来计算软样本VT分布的柱状图。可以估计最佳阈值,并且可以将软样本映射到LLR。
当多状态ICI信息可用时,也可以应用PST跟踪。对于每个ICI状态,可以估计相应的最佳阈值,并且可以将LLR分配给每个ICI状态,以在ICI补偿LLR输入后提供解码器(例如,图1的ECC解码器112)。附加地或替代地,可以采用神经网络(例如,神经网络700)来找到最佳阈值。
在框1410,可以执行软位解码。例如,软解码器(例如,图1的ECC解码器112)可用于解码。在框1412,可以确定目标页的软解码是否成功。如果软解码成功,则过程可以在框1411处结束。如果软解码失败,则过程可以前进到框1414。在一个示例中,如果解码的BER不满足阈值(例如,准确度阈值),则过程可以前进到框1414。
在框1414,可以更新软位标签。例如,可以对软标签执行LLR映射。附加地或替代地,可以执行动态LLR估计。例如,软解码器(图1的EEC解码器112)可以通过监视或检查解码尝试(例如,框1410中的软解码尝试)的结果来生成临时误差向量。软解码器可以基于在先前的软解码尝试失败时生成的临时误差向量获得调整后的LLR映射或LLR值。动态LLR估计在Avi Steiner和Hanan Weingarten于2019年9月12日提交的名称为“SYSTEM AND METHODFOR DECODER ASSISTED DYNAMIC LOG-LIKELIHOOD RATIO ESTIMATION FOR NON-VOLATILEMEMORIES(用于非易失性存储器的解码器辅助的动态对数似然比估计的***和方法)”的美国专利No.10,963,338中进行了更详细的描述,其全部内容通过引用并入本文中。
图15是根据一些布置的利用用于每个ICI状态的多次读取的动态ICI补偿来确定ICI补偿的读取阈值的软位解码读取流程1500。如本文所讨论的,虽然执行干扰行的多次读取可以增加干扰信息的分辨率,但是执行多次读取也可能引发ICI状态。ICI状态可以被分组成具有相似干扰效应的少量组,并且可以针对每个组估计单个ICI补偿移位。
读取流程1500的最大读取操作次数与图14中的读取流程1400的最大读取操作次数相同(例如,40次读取)。尽管执行相同数量的读取操作,但是读取流程1500是图14中描述的读取流程1400的改进。使用动态ICI补偿来确定目标页的调整后的读取阈值而不是使用固定ICI补偿,这可以改进BER和解码速度。与图14中的读取流程1400相比,读取流程1500利用ICI补偿的动态估计而没有任何额外的延迟开销。
框1502可以类似于图14中的框1402。在框1502,软采样被执行并与ICI采样组合。在一个示例中,在阈值(例如,从使用图6的框606的用于硬位解码的应力条件分类的动态ICI补偿的读取流程600估计的QT阈值)附近执行五位分辨率软采样。在一些配置中,针对软采样执行的读取次数可以是31。
框1504可以类似于框1404。在框1504,可以执行组读取。组信息读取可用于区分每个目标阈值附近的基元。例如,可以执行三次状态读取以分离柱状图的波瓣区域。在一个示例中,TLC NAND可以使用三次单个状态读取来分离四个阈值(例如,图2)。
框1506可以类似于图14中的框1406。在框1506,可以执行ICI读取和重新标记。例如,可以使用下一字线的三次读取和上一字线的三次读取来确定16个ICI状态。在一些布置中,可以将多个ICI状态分组成具有相似干扰影响的状态(如图8中所述)。例如,可以使用三个缓冲区将16个ICI状态分组为五个有效状态。
在框1507,可以执行QT。如果从硬解码读取流程保存了QT模拟读取(例如,读取流程600中,特别是图6的框606中的模拟读取阈值确定),则可以执行QT。可以使用先前的模拟读取阈值(如所讨论的)和每个基元的有效ICI状态来执行QT操作,以便计算每个有效ICI状态的ICI补偿。例如,通过使用每位的有效ICI状态和模拟读取,可以计算柱状图并且可以估计有效的每状态ICI补偿阈值。估计的阈值移位可以应用于每个有效的ICI状态。软样本上的移位是根据每个状态的移位将初始软LLR重新映射到不同的软LLR的操作。
如果在框1507中执行了QT,则框1508可以类似于图14中的框1408。在框1508,可以使用PST在ICI补偿之后找到用于每组的每个目标页阈值的最佳阈值。也就是说,可以在使用软采样和重新标记的ICI补偿之后调整每组的硬解码决策阈值。PST可以应用于每个ICI状态。
如果未执行框1507(例如,未保存来自硬解码读取流程的模拟读取),则框1508可能不同于框1408。例如,在框1508,可以使用PST操作计算每个状态的有效ICI补偿。通过使用每位的有效ICI状态和软样本,可以使用ICI状态计算柱状图。可以使用每个有效状态的PST来估计补偿阈值(例如,使用线性估计器或DNN)。可以重新标记每个组和状态。
框1510可以类似于框1410。在框1510,可以执行软位解码。例如,软解码器(例如,图1的ECC解码器112)可用于解码。在框1512,可以确定目标页的软解码是否成功。如果软解码成功,则过程可以在框1511处结束。如果软解码失败,则过程可以前进到框1514。
框1514可以类似于图14中的框1414。在框1514,可以更新软标签。例如,可以对软标签执行LLR映射(或动态LLR估计)。
图16是根据一些布置的借助于用于计算ICI补偿的多项式系数的估计,利用用于每个ICI状态的多次读取的动态ICI补偿来确定ICI补偿的读取阈值的软位解码读取流程1600。如本文所讨论的,虽然执行干扰行的多次读取可以增加干扰信息的分辨率,但是执行多次读取也可能引发ICI状态。可以对ICI状态进行建模,从而可以确定每个状态的动态ICI补偿。
读取流程1600的最大读取操作次数与图14中的读取流程1400和图15中的读取流程1500的最大读取次数相同(例如,40次读取)。尽管执行相同数量的读取操作,但是读取流程1600是图14中描述的读取流程1400的改进。使用动态ICI补偿来确定目标页的调整后的读取阈值而不是使用固定ICI补偿,这可以改进BER和解码速度。与图14中的读取流程1400相比,读取流程1600利用ICI补偿的动态估计而没有任何额外的延迟开销。
读取流程1600不同于读取流程1500,因为读取流程1500将ICI状态分组为有效ICI状态并确定每个ICI状态的有效移位。与此形成对比,读取流程1600不对ICI状态进行分组。因此,与1500中的读取流程的准确性相比,读取流程1600的准确性得到提高,这是因为读取流程1600对总ICI状态而不是平均有效ICI状态进行建模。
框1602可以类似于图15中的框1502。在框1602,软采样被执行并与ICI采样组合。在一个示例中,在阈值(例如,从来自图6的框606中用于硬位解码的动态ICI补偿的读取流程600估计的QT阈值)附近执行五位分辨率软采样。在一些配置中,针对软采样执行的读取次数可以是31。
框1604可以类似于框1504。在框1604,可以执行组读取。组信息读取可用于区分每个目标阈值附近的基元。例如,可以执行三次状态读取以分离柱状图的波瓣区域。在一个示例中,TLC NAND可以使用三次单个状态读取来分离四个阈值(例如,图2)。
在框1606,可以执行ICI读取和重新标记。例如,可以使用下一字线的三次读取和上一字线的三次读取来确定16个ICI状态。重新标记操作可以利用所有可用的ICI信息将六次读取映射到16-ICI状态的四个位中。可以根据每个基元的ICI状态和软样本计算每个ICI状态的柱状图。
在框1608,可以估计多项式系数向量(例如,使用将ICI状态映射到补偿移位的模型函数)。柱状图(从框1606中确定)可用于根据每个ICI状态和阈值的有序ICI状态来计算补偿移位。
在框1610,可以执行标记,以便将估计的阈值移位应用于每个ICI状态。标记操作可能会导致在ICI补偿之后确定的软标签。
在框1612,可以执行PST。在一些布置中,在ICI补偿之后,软解码标签可以被更新,并且可以调整每组的硬解码决策阈值。
框1614可以类似于图15中的框1510。在框1614,可以执行软位解码。例如,软解码器(例如,图1的ECC解码器112)可用于解码。在框1616,可以确定目标页的软解码是否成功。如果软解码成功,则过程可以在框1611处结束。如果软解码失败,则过程可以前进到框1618。
框1618可以类似于图15中的框1514。在框1618,可以更新软标签。例如,可以对软标签执行LLR映射(或动态LLR估计)。
提供前面的描述以使本领域的任何技术人员能够实践本文描述的各个方面。对这些方面的各种修改对于本领域技术人员来说将是显而易见的,并且本文定义的一般原理可以应用于其他方面。因此,权利要求不旨在限于本文所示的方面,而是要符合与语言权利要求一致的全部范围,其中对单数元素的引用并不旨在意味着“一个且仅一个”,除非如此特别说明,而是指“一个或多个”。除非另有特别说明,否则术语“一些”是指一个或多个。本领域普通技术人员已知的或以后将知道的、贯穿先前描述的各个方面的元素的所有结构和功能等价物均通过引用明确并入本文,并旨在被权利要求所涵盖。此外,本文所公开的任何内容均不旨在专用于公众,无论此类公开是否在权利要求中明确记载。任何权利要求元素不被解释为装置加功能,除非使用短语“用于……的装置”明确引用该元素。
应当理解,所公开的过程中的步骤的特定顺序或层次是说明性方法的示例。基于设计偏好,应当理解,过程中的步骤的特定顺序或层次在保持在之前描述的范围内的情况下能重新排列。所附方法权利要求以示例顺序呈现了各个步骤的元素,并且不意味着限于所呈现的特定顺序或层次。
提供所公开实施方式的先前描述以使得所属领域的技术人员能够制作或使用所公开的主题。对这些实施方式的各种修改对于所属领域的技术人员将容易显而易见,且本文中界定的一般原理能在不脱离先前描述的精神或范围的情况下可以应用于其它实施方式。因此,先前描述不希望限于本文所示的实施方式,而是应被赋予与本文公开的原理和新颖特征一致的最广范围。
所说明和描述的各种示例仅作为示例提供以说明权利要求的各种特征。然而,关于任何给定示例示出和描述的特征不一定限于相关联的示例,并且可以与示出和描述的其它示例一起使用或组合。此外,权利要求并不旨在受任何一个示例限制。
前述方法描述和过程流程图仅作为说明性示例而提供,且不希望要求或暗示必须以所呈现的次序执行各种示例的步骤。如本领域技术人员将理解的,前述示例中的步骤的顺序可以以任何顺序执行。诸如“其后”、“然后”、“接下来”等词语不旨在限制步骤的顺序;这些词语仅用于引导读者通读对方法的描述。此外,任何对单数形式的权利要求元素的引用,例如使用冠词“一”、“一个”或“该”不应被解释为将该元素限制为单数。
结合本文所公开的示例而描述的各种说明性逻辑块、模块、电路和算法步骤能实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的此可互换性,上文已大体上在其功能性方面描述了各种说明性组件、块、模块、电路和步骤。将此功能性实施为硬件还是软件取决于特定应用和强加于整个***的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为导致脱离本发明的范围。
用于实施结合本文所公开的示例而描述的各种说明性逻辑器件、逻辑块、模块和电路的硬件可用经设计以执行本文所描述的功能的通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑电路、离散硬件组件或其任何组合来实施或执行。通用处理器可以是微处理器,但是,在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以被实施为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合、或者任何其它此种配置。或者,一些步骤或方法可由特定于给定功能的电路执行。
在一些示例性示例中,所描述的功能可以以硬件、软件、固件或其任意组合来实施。如果以软件实施,所述功能可作为一个或一个以上指令或代码存储于非暂时性计算机可读存储介质或非暂时性处理器可读存储介质上。本文所公开的方法或算法的步骤可以体现在处理器可执行软件模块中,该处理器可执行软件模块可以驻存在非暂时性计算机可读或处理器可读存储介质上。非暂时性计算机可读或处理器可读存储介质能够为能由计算机或处理器存取的任意存储介质。作为示例而非限制,此非暂时性计算机可读或处理器可读存储介质能包括RAM、ROM、EEPROM、闪速存储器、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储装置、或可被用于存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它介质。如本文中所使用,磁盘和光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘使用激光以光学方式再现数据。上述各项的组合也包括在非暂时性计算机可读和处理器可读介质的范围内。另外,方法或算法的操作可作为代码和/或指令中的一者或任何组合或集合而驻存在可并入到计算机程序产品中的非暂时性处理器可读存储介质和/或计算机可读存储介质上。
提供所公开示例的先前描述以使所属领域的技术人员能够制作或使用本公开。所属领域的技术人员将容易明白对这些示例的各种修改、且在不脱离本公开的精神或范围的情况下,本文所界定的一般原理可应用于一些示例。因此,本公开无意限于本文中所展示的示例,而是应被赋予与所附权利要求书以及本文中所公开的原理和新颖的特征一致的最大范围。
Claims (20)
1.一种动态估计存储器页的干扰补偿阈值的方法,包括:
基于干扰源的多个干扰状态,计算柱状图和对应阈值;
对所述多个干扰状态进行聚类以确定有效数量的干扰状态;以及
基于所述柱状图,估计读取阈值以动态补偿与目标行的所述有效数量的干扰状态中的每个干扰状态相关联的干扰噪声。
2.根据权利要求1所述的方法,还包括:基于所述柱状图识别应力条件,其中,所述应力条件是保持应力或跨温度应力中的至少一种。
3.根据权利要求2所述的方法,其中,基于所述柱状图识别所述应力条件包括:将所述柱状图应用于使用训练数据集训练的支持向量机,所述训练数据集包括目标行的多个干扰状态、特征和对应的应力条件,其中,所述特征包括物理行号、编程周期计数、擦除周期计数或无基元间干扰阈值中的至少一者。
4.根据权利要求2所述的方法,其中,基于所述柱状图识别所述应力条件包括:将所述柱状图应用于使用训练数据集训练的机器学习模型,所述训练数据集包括目标行的多个干扰状态、特征和对应的应力条件,其中,所述特征包括物理行号、编程周期计数、擦除周期计数或无基元间干扰阈值中的至少一者。
5.根据权利要求1所述的方法,其中,对所述多个干扰状态进行聚类以确定所述有效数量的干扰状态包括使用k均值聚类。
6.根据权利要求1所述的方法,其中,对所述多个干扰状态进行聚类以确定所述有效数量的干扰状态包括:基于在目标行上引起的相似效应,对所述干扰源的所述多个干扰状态进行聚类。
7.根据权利要求1所述的方法,其中,估计所述读取阈值包括使用线性估计器,其中,所述线性估计器的向量包含所述读取阈值以动态补偿所述目标行的所述有效数量的干扰状态中的所述干扰状态,所述线性估计器的向量包含所述柱状图的值,并且所述线性估计器的矩阵包含系数。
8.根据权利要求1所述的方法,其中,估计所述读取阈值包括利用使用训练数据集训练的神经网络,所述训练数据集包括目标行的多个干扰状态、第二干扰源的第二多个干扰状态、特征和对应的读取阈值,其中所述特征包括物理行号、编程周期计数、擦除周期计数和无基元间干扰阈值中的至少一者。
9.根据权利要求1所述的方法,还包括:
基于第二干扰源的第二多个干扰状态,计算第二柱状图和第二对应阈值;
基于所述第二柱状图,识别第二应力条件;
使用多项式对所述第二多个干扰进行建模以确定对所述第二干扰源的所述第二多个干扰状态中的每个干扰状态的补偿。
10.根据权利要求9所述的方法,其中,所述多项式的系数使用线性估计器来估计,其中所述线性估计器的向量包含所述读取阈值以动态补偿所述第二干扰源的所述第二多个干扰状态的所述干扰噪声,所述线性估计器的向量包含所述第二柱状图的值,并且所述线性估计器的矩阵包含系数。
11.根据权利要求9所述的方法,其中,所述多项式的系数使用在训练数据集上训练的神经网络来估计,所述训练数据集包括第三目标行的第三多个干扰状态、第三干扰源的第三多个干扰状态、特征和对应的多项式系数,其中,所述特征包括应力分类评分、物理行号、编程周期计数、擦除周期计数和无基元间干扰阈值中的至少一者。
12.根据权利要求1所述的方法,还包括:
基于第二干扰源的第二多个干扰状态,计算第二柱状图和第二对应阈值;
基于所述第二柱状图,确定所述第二干扰源不与第二应力条件相关联;以及
应用预定阈值来补偿所述目标行的干扰噪声。
13.根据权利要求1所述的方法,其中,所述读取阈值相对于理想读取阈值偏移独特的电压。
14.一种存储器***,包括:
具有多个行的存储器页;以及
用于执行所述存储器页的操作的电路,所述电路被配置为:
基于干扰源的多个干扰状态,计算柱状图和对应阈值;
对所述多个干扰状态进行聚类以确定有效数量的干扰状态;以及
基于所述柱状图,估计读取阈值以动态补偿与目标行的所述有效数量的干扰状态中的每个干扰状态相关联的干扰噪声。
15.根据权利要求13所述的存储器***,还包括:基于所述柱状图识别应力条件,其中,识别所述应力条件包括将所述柱状图应用于使用训练数据集训练的支持向量机,所述训练数据集包括目标行的多个干扰状态、特征和对应的应力条件,其中,所述特征包括物理行号、编程周期计数、擦除周期计数或无基元间干扰阈值中的至少一者。
16.根据权利要求13所述的存储器***,还包括:基于所述柱状图识别应力条件,其中,识别所述应力条件包括将所述柱状图应用于使用训练数据集训练的机器学习模型,所述训练数据集包括目标行的多个干扰状态、特征和对应的应力条件,其中,所述特征包括物理行号、编程周期计数、擦除周期计数或无基元间干扰阈值中的至少一者。
17.根据权利要求13所述的存储器***,其中,对所述多个干扰状态进行聚类以确定所述有效数量的干扰状态包括使用k均值聚类。
18.根据权利要求13所述的存储器***,其中,对所述多个干扰状态进行聚类以确定所述有效数量的干扰状态包括:基于在目标行上引起的相似效应,对所述干扰源的所述多个干扰状态进行聚类。
19.根据权利要求13所述的存储器***,其中,估计所述读取阈值包括使用线性估计器,其中,所述线性估计器的向量包含所述读取阈值以动态补偿所述目标行的所述有效数量的干扰状态中的所述干扰状态,所述线性估计器的向量包含所述柱状图的值,并且所述线性估计器的矩阵包含系数。
20.一种包含处理器可读指令的非暂时性处理器可读介质,使得当由一个或多个处理器执行时,通过以下方式执行动态估计存储器页的干扰补偿阈值的方法:
基于干扰源的多个干扰状态,计算柱状图和对应阈值;
对所述多个干扰状态进行聚类以确定有效数量的干扰状态;以及
基于所述柱状图,估计读取阈值以动态补偿与目标行的所述有效数量的干扰状态中的每个干扰状态相关联的干扰噪声。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/407096 | 2021-08-19 | ||
US17/407,096 US11854631B2 (en) | 2021-08-19 | 2021-08-19 | System and method for dynamic compensation for multiple interference sources in non-volatile memory storage devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115713956A true CN115713956A (zh) | 2023-02-24 |
Family
ID=85229131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210995812.9A Pending CN115713956A (zh) | 2021-08-19 | 2022-08-18 | 用于动态补偿非易失性存储器存储装置中多个干扰源的***和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11854631B2 (zh) |
CN (1) | CN115713956A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118169649A (zh) * | 2024-05-14 | 2024-06-11 | 成都玖锦科技有限公司 | 一种自适应高灵敏度实时信号检测新方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7751237B2 (en) | 2007-09-25 | 2010-07-06 | Sandisk Il, Ltd. | Post-facto correction for cross coupling in a flash memory |
US7916533B2 (en) | 2009-06-24 | 2011-03-29 | Sandisk Corporation | Forecasting program disturb in memory by detecting natural threshold voltage distribution |
US9349477B2 (en) | 2014-06-16 | 2016-05-24 | Seagate Technology Llc | Inter-cell interference estimation based on a pattern dependent histogram |
CN106205720B (zh) | 2016-07-06 | 2019-07-09 | 记忆科技(深圳)有限公司 | 一种恢复Nand Flash错误数据的方法 |
US9847141B1 (en) | 2016-08-02 | 2017-12-19 | Apple Inc. | Classifying memory cells to multiple impairment profiles based on readout bit-flip counts |
US10614897B1 (en) * | 2018-09-13 | 2020-04-07 | Toshiba Memory Corporation | System and method for high performance sequential read by decoupling of inter-cell interference for NAND flash memories |
US10607709B1 (en) * | 2018-09-13 | 2020-03-31 | Toshiba Memory Corporation | System and method for efficient read-flow by inter-cell interference decoupling for NAND flash memories |
-
2021
- 2021-08-19 US US17/407,096 patent/US11854631B2/en active Active
-
2022
- 2022-08-18 CN CN202210995812.9A patent/CN115713956A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230055823A1 (en) | 2023-02-23 |
TW202322134A (zh) | 2023-06-01 |
US11854631B2 (en) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111538458B (zh) | 使用深度学习的存储装置性能优化 | |
CN113344021B (zh) | 从存储器单元检索的数据的错误率的分类中的复合特征生成 | |
TWI501241B (zh) | 在快閃記憶體中用於軟性解映射及單元間干擾抑制的方法及裝置 | |
US11783185B2 (en) | Analysis of memory sub-systems based on threshold distributions | |
US11704178B2 (en) | Estimating a bit error rate of data stored by a memory subsystem using machine learning | |
CN113344020B (zh) | 从存储器单元检索的数据的错误率的分类的装置、方法和*** | |
US11749354B2 (en) | Systems and methods for non-parametric PV-level modeling and read threshold voltage estimation | |
US11769556B2 (en) | Systems and methods for modeless read threshold voltage estimation | |
US20230036490A1 (en) | Read threshold voltage estimation systems and methods for parametric pv-level modeling | |
US11960989B2 (en) | Read threshold estimation systems and methods using deep learning | |
US11393539B2 (en) | Systems and methods for determining change of read threshold voltage | |
CN114792546A (zh) | 存储器装置的基于深度学习的编程验证建模和电压估计 | |
KR20210135418A (ko) | 모바일 데이터 스토리지 | |
KR102356126B1 (ko) | 뉴럴 네트워크를 이용한 플래시 메모리의 읽기 기준 전압 추정 방법 및 그 장치 | |
CN115713956A (zh) | 用于动态补偿非易失性存储器存储装置中多个干扰源的***和方法 | |
US10607709B1 (en) | System and method for efficient read-flow by inter-cell interference decoupling for NAND flash memories | |
US10614897B1 (en) | System and method for high performance sequential read by decoupling of inter-cell interference for NAND flash memories | |
CN115708157A (zh) | 非易失性存储器存储装置中动态基元间干扰补偿的***和方法 | |
TWI842048B (zh) | 非揮發性記憶體儲存裝置中用於動態細胞間干擾補償的系統和方法 | |
US20230326526A1 (en) | Dynamic interference compensation for soft decoding in non-volatile memory storage devices | |
CN115145476A (zh) | 基于紧凑工作负载表示的存储器控制器及其方法 | |
US20240086149A1 (en) | Constrained clustering algorithm for efficient hardware implementation of a deep neural network engine | |
US20230298674A1 (en) | Programming by self adjusting program voltage targets compensating for cell-to-cell interference and pe cycles | |
CN116246683A (zh) | 使用深度神经网络在存储器装置中读取阈值预测 |
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 |