1.本布置一般地涉及存储器装置,更具体地涉及通过减轻相邻基元(cell)的
干扰来获得非易失性存储器存储装置的提高的耐用性和平均读取性能。
背景技术:
2.随着计算设备的数量和类型不断扩大,对此类设备所用存储器的需求也在不断增加。存储器包括易失性存储器(例如ram)和非易失性存储器(例如闪速存储器或nand型闪速存储器)。非易失性存储器阵列包括基元的行和列(串)。基元可以包括晶体管并且与单个位(bit)相关联。
3.在读取操作期间,可以读取非易失性存储器阵列的整行/整页。这可以通过向非正读取的所有行施加偏置电压并向应被读取的行施加参考
阈值电压来实现。偏置电压可允许非易失性存储器阵列的晶体管完全导通。如果阈值电压足够高以克服浮置栅极中的俘获电荷,则正在读取的行上的基元将导通。感测放大器可以连接到每个串,其测量通过串的电流,并根据电流是否通过特定阈值而输出“1”或“0”。
4.随着非易失性存储器基元尺寸变小,存储器基元尺寸的按比例缩小可能会导致存储器块中邻近基元(浮栅晶体管)之间的寄生电容耦合增加。这种被称为“基元间干扰”(ici)的现象可能会导致存储器中的错误,从而导致非易失性存储器存储装置的耐用性和读取性能下降。
5.非易失性存储器存储装置可实施快速编程方法,该方法可在对邻近行编程期间引发高水平的干扰,因为邻近行与目标编程行的隔离程度较低。此外,在各种应力条件下,相关行可能会遭受水平升高的ici。例如,在装置上出现保留应力后,ici水平可能会增加,这意味着用于ici补偿的最佳读取阈值可能会改变。
技术实现要素:
6.本布置涉及通过减轻相邻基元的干扰来获得非易失性装置的提高的耐用性和提高的平均读取性能的方法。
7.根据某些方面,一种动态估计闪速存储器页的干扰补偿阈值的方法,包括:使用模拟(mock)读取阈值对目标行执行模拟读取;对干扰源执行读取操作,并读取
所述干扰源的干扰
状态;基于所述模拟读取阈值和所述干扰源的所述干扰状态,计算柱状图(histogram)和对应阈值;以及基于所述柱状图,估计用于动态补偿所述目标行的所述干扰状态的读取阈值。
8.根据其他方面,一种使用软信息动态估计存储器页的干扰补偿阈值的方法,包括:基于干扰采样,基于目标位组的干扰状态限定(define)所述目标位组;确定柱状图和对应阈值;以及估计所述目标位组的读取阈值。
9.根据其他方面,一种存储器系统,包括:具有多个行的闪速存储器页;以及用于执
行所述闪速存储器页的操作的电路,所述电路被配置为:使用模拟读取阈值对目标行执行模拟读取;对干扰源执行读取操作,并读取所述干扰源的干扰状态;基于所述模拟读取阈值和所述干扰源的所述干扰状态计算柱状图和对应阈值;以及基于所述柱状图估计用于动态补偿所述目标行的所述干扰状态的读取阈值。
10.根据其他方面,一种包含处理器可读指令的非暂时性处理器可读介质,使得当由一个或多个处理器执行时,通过以下方式执行用于动态估计存储器页的干扰补偿阈值的方法:使用模拟读取阈值对目标行执行模拟读取;对干扰源执行读取操作,并读取所述干扰源的干扰状态;基于所述模拟读取阈值和所述干扰源的所述干扰状态,计算柱状图和对应阈值;以及基于所述柱状图,估计用于动态补偿所述目标行的干扰噪声的读取阈值。
11.根据其他方面,一种存储器系统,包括:具有多个行的存储器页;以及用于执行所述存储器页的操作的电路,所述电路被配置为:基于干扰采样基于目标位组的干扰状态限定所述目标位组;确定柱状图和对应阈值;以及估计所述目标位组的读取阈值。
12.根据其他方面,一种包含处理器可读指令的非暂时性处理器可读介质,使得当由一个或多个处理器执行时,通过以下方式执行使用软信息动态估计存储器页的干扰补偿阈值的方法:基于干扰采样,基于目标位组的干扰状态限定所述目标位组;确定柱状图和对应阈值;以及估计所述目标位组的读取阈值。
附图说明
13.专利或申请文件包含至少一个彩附图。专利局将根据请求和必要费用的支付提供具有彩附图的本专利或专利申请公开的副本。
14.当结合附图阅读以下对具体布置的描述时,本布置的这些和其他方面和特征对于本领域普通技术人员将变得显而易见,其中:
15.图1是示出根据一些布置的非易失性存储装置的框图。
16.图2是根据一些布置的没有任何ici信息的3位/基元闪速存储器器件的八种可能的vt分布的叠加的图表。
17.图3是根据一些布置的具有针对tlc nand行的每个编程状态的vt分布的柱状图的图表。
18.图4是根据一些布置使用固定ici补偿阈值的读取流的流程图。
19.图5是根据一些布置动态估计最佳ici补偿阈值的方法。
20.图6是根据一布置叠加在一组柱状图上的模拟读取阈值的图表。
21.图7是根据一些布置的多层感知器网络的框图。
22.图8是根据一些布置使用监督学习的机器学习模型的框图。
23.图9是根据一些布置使用动态ici补偿阈值的读取流的流程图。
24.图10是根据一些布置的针对tlc nand行的每个编程状态使用示例vt分布正读取的目标行的柱状图的图表。
25.图11是随应力条件分类变化的ici补偿的图表。
26.图12是根据一些布置的软位解码读取流,用于利用针对多个ici读取的固定ici补偿来确定ici补偿的读取阈值。
27.图13是根据一些布置动态估计最佳ici补偿阈值的方法。
28.图14是根据一些布置利用针对多个ici读取的ici补偿的动态估计的软位解码读取流。
29.图15是根据一布置的来自tlc nand的ber分布的示例。
具体实施方式
30.根据某些方面,本公开中的布置涉及用于读取成为干扰的原因之一的行,以及使用干扰基元的侧信息(side information)动态估计目标页的最佳(或改进的)补偿读取阈值的技术,干扰基元根据干扰水平而变化。通过确定每个物理行的ici补偿阈值,可以最小化(或降低)目标页读出误码率(bit error rate,ber)。动态估计ici补偿阈值以用于使用补偿ici进行读取降低了ber。对各种应力条件进行分类并在ici补偿阈值分析中使用应力条件可以进一步降低ber,这是因为应力条件可能在目标行上引起不同的干扰水平。
31.非易失性存储器基元之间的固有耦合噪声可能发生在平面或三维(3d)非易失性存储器存储装置内。在平面非易失性存储器装置中,(1)同一行上的邻近基元和(2)相邻行的同一列上的邻近基元可能是ici的主要贡献者。因此,可以通过估计邻近基元的状态来获得硬/软输入的可靠性增益。
32.主要干扰源可能是编程方案。例如,如果在对下一行编程之前对一行完全编程,则主要干扰源可能是编程方案。例如,在三电平基元(tlc)编程期间,对一行的编程可能会影响已编程的附近或相邻行。被编程到最高电平的基元可能是(比被编程到低于最高电平的电平的那些基元)更强干扰的来源,这可能导致相邻基元的非故意编程。
33.然而,对非易失性存储器装置(例如nand存储器,包括四电平基元(qlc)和五电平基元(plc))进行密集编程可能包括将编程分解为多个步骤。例如,可以将数据编程到过程(初始)设置中的给定行。然后在目标行在精细编程阶段被编程为最终电压值之前,可以对相邻(相关)行粗略地编程。这种编程方法可能需要更多的数据缓冲,并且可能具有较低的编程性能,但它可以提供较低的ber编程结果,同时减少相关基元之间的干扰。
34.例如,在3d tlc nand装置中,相邻字线上可能发现ici耦合。此外,在3d nand装置(或其他非易失性存储器存储装置)中,诸如保持或交叉温度编程(cross-temperature programming)和读取的应力条件可能对目标行具有不同水平的干扰。因此,动态地估计干扰水平和最佳补偿可以有效地解耦ici。
35.可以执行一个或多个模拟读取以进行应力条件分类。传统上,可以根据应力条件类别对ici补偿阈值应用固定补偿。在本公开中,针对各种应力条件的动态ici补偿阈值可以使用从应力条件下非易失性存储器存储装置上的电压阈值扫描(vt扫描)生成的数据库来确定。可以为vt扫描中提供的所有干扰状态生成用于阈值估计的数据库。
36.一般而言,本公开中的布置确定最佳(或改进的)动态ici补偿阈值,而无需向读取流添加额外读取。在估计动态ici补偿阈值时最小化模拟阈值读取和ici读取的数量通过降低ber和提高解码速度来提高服务质量。在一些布置中,可以估计共同的一组阈值。在其他布置中,针对每个ici状态可以有单独的模拟阈值和补偿阈值。
37.提供了用于通过减轻相邻基元的干扰(即ici)来获得非易失性存储器存储装置的提高的耐用性和平均读取性能的系统和方法。提高的耐用性和平均读取性能可以通过在各种应力条件下提高装置效率和可靠性来扩展非易失性存储器存储的用途。在一些布置中,
可以通过读取成为干扰的原因之一的行来执行感测。可以使用干扰基元的侧信息基于干扰状态动态地估计针对目标页的最佳(或改进的)补偿读取阈值。
38.在一些布置中,基元干扰侧信息可能是由于邻近基元的干扰状态导致的vt分布的左侧(例如,左lob尾)或右侧(例如,右lob尾)。在一些布置中,基元干扰侧信息可以从下一页读取的预取(pre-fetch)中获得,或者通过保存先前读取结果来获得,具体取决于干扰特性。使用侧信息估计干扰状态在由avi steiner于2018年9月13日提交的名称为“system and method for high performance sequential read by decoupling of inter-cell interference for non-volatile memories(通过非易失性存储器的基元间干扰的解耦进行高性能顺序读取的系统和方法)”的美国专利no.10,614,897(897专利)和由avi steiner于2018年9月13日提交的名称为“system and method for efficient read-flow by inter-cell interference decoupling for non-volatile memories(通过非易失性存储器的基元间干扰解耦实现高效读取流的系统和方法)”的美国专利no.10,607,709中进行了描述,这两项专利的全文通过引用并入本文中。通过引用并入的申请公开了用于干扰补偿的方法。然而,如本文所公开的,通过针对每个干扰状态动态地估计动态补偿来改进干扰补偿。
39.在一些布置中,可以估计用于ici补偿的读取阈值。读取阈值可用于针对每个ici状态的特定阈值周围的位组。可以执行读取操作或模拟读取操作以估计用于ici补偿的读取阈值。可能需要对干扰行执行使用不同阈值的若干读取操作,以确定多个ici状态信息。读取操作增加了开销,增加了延迟。增加的延迟可能超过硬解码定时要求。
40.因此,在一些布置中,可采用软采样。执行软采样可以比硬采样更有利,因为软采样可能涉及比硬采样更高数量的额外读取。软采样涉及执行多个读取,其中每个读取操作使用不同的一个读取阈值。使用软采样估计用于ici补偿的读取阈值通过提高估计准确度而提高了软采样的服务质量。与基于模拟读取阈值的估计相比,执行软采样以估计用于ici补偿的读取阈值可以更准确,因为软采样使用每个目标阈值周围的更多信息。还可以通过估计针对每个ici状态的最佳补偿阈值来提高软采样的估计准确度。
41.软信息(例如,软标签)的可靠性可以是从硬读取值和干扰值映射的对数似然比(llr)值。例如,位b的有条件llr值取决于干扰状态i,如式1所示:
[0042][0043]
本公开中的系统和方法可在软采样后应用ici补偿,以修改软采样的标签,而不必须使用针对多个干扰状态的估计结果对软输入重新采样。软采样和解码可在由avi steiner和hanan weingarten于2020年4月8日提交的名称为“decoding scheme for error correction code structure in data storage devices(数据存储装置中纠错码结构的解码方案)”的美国申请no.16/843774和897专利中进行更详细的描述,这二者的全文通过引用并入本文中。
[0044]
在一些布置中,本公开中描述的用于减轻相邻基元的干扰的系统和方法可以在非易失性存储器存储控制器(例如,图1中的存储器控制器102)上实现。在一些布置中,如本公开中所述的用于减轻相邻基元的干扰的信号处理操作可以通过在非易失性存储器存储控制器(例如,图1中的存储器控制器102)上运行的软件或硬件来实现。在非易失性存储器存
储控制器硬件(或固件)上实现信号处理操作可导致低复杂度处理。在一些布置中,如本公开所述的用于减轻相邻基元的干扰的信号处理操作可用于存储控制器(例如固态驱动器(ssd)控制器、通用闪速存储器(ufs)控制器、安全数字(sd)控制器等)中的实现。
[0045]
图1是示出根据一些布置的非易失性存储装置100的框图。在一些实施例中,非易失性存储装置可以是闪速存储器系统,其可以执行本公开中描述的任何方法。装置100的示例包括但不限于固态驱动器(ssd)、非易失性双列直插式存储器模块(nvdimm)、通用闪速存储器(ufs)、安全数字(sd)装置等。
[0046]
在一些布置中,不同的装置(未示出)可以通过适当的有线或无线通信链路与装置100通信,以执行本文所述的一些或所有方法。装置100可以包括存储器模块或存储器装置104以及用于执行多个基元的操作的存储器控制器102。
[0047]
存储器控制器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所示的部件。
[0048]
存储器控制器102可以组合多个存储器块106中的原始数据存储,使得存储器块106用作单个存储器。存储器控制器102可以包括微控制器、缓冲器、纠错系统、闪存转换层(ftl)和闪存接口模块。这些功能可以在硬件、软件和固件或其任何组合中实现。在一些布置中,控制器110的软件/固件可以存储在存储器模块104或任何其他合适的计算机可读存储介质中。
[0049]
除其他功能外,存储器控制器102包括用于执行本文所述功能的适当处理和存储器功能。如上所述,存储器控制器102管理存储器模块104中的存储器块106的各种特征,包括但不限于i/o处理、读取、写入/编程、擦除、监视、日志记录、错误处理、垃圾回收、损耗均衡、逻辑到物理地址映射、数据保护(加密/解密)等。
[0050]
在一些布置中,读取电路110的ici估计器111可被配置为基于对多个基元中的第一基元(即,目标基元)的第一邻近基元的读取操作的结果来估计干扰状态。在一些布置中,可以对主要干扰源及其影响的统计相关性建模进行表征。例如,ici估计器111可以被配置为执行干扰源及其影响的统计相关性建模。
[0051]
在一些布置中,可以离线表征主要干扰源及其影响的统计相关性建模。例如,当不同非易失性存储器存储装置的不同编程方案增加在线执行统计相关性建模的难度时,可以离线执行统计相关性模型。例如,一代非易失性存储器存储装置的编程方案可能不同于另一代非易失性存储器存储装置的编程方案。
[0052]
在一些布置中,ici估计器111可以离线执行干扰源及其影响的统计相关性建模。在一些布置中,为了对目标非易失性存储器存储装置离线执行这种统计相关性建模,ici估计器111或计算系统可以在存储器中(例如,在连接到i/o(usb、ieee1394、小型计算机系统接口(scsi)、串行高级技术附件(sata)、串行连接scsi(sas)、pci express(pcie)等的大容量存储装置中),至少存储关于目标非易失性存储器存储装置的编程方案的信息,以便其能
够准确地对目标非易发性存储器存储装置中的干扰源及其影响进行建模。
[0053]
在估计干扰状态时,ici估计器111可进一步被配置为估计第一邻近基元被编程的电平。例如,ici估计器111可以基于对第一邻近基元的读取操作的结果,估计第一邻近基元被编程的电平。ici估计器111然后可以基于所估计的第一邻近基元的编程电平来估计第一邻近基元的干扰状态。在一些布置中,邻近基元的干扰状态是所估计的该邻近基元的编程电平。
[0054]
在估计干扰状态时,ici估计器111可进一步被配置为通过预取下一页读取或通过保存先前读取结果来获得对第一邻近基元的读取操作的结果。例如,在估计目标页中目标基元的干扰状态时,ici估计器111可以通过预取在目标页之后紧接着要读取的下一页的读取结果,获得下一页中(目标基元的)邻近基元的读取结果。在一些布置中,ici估计器111可以通过保存和再次使用在目标页之前已读取的前一页的读取结果来获得前一页中(目标基元的)邻近基元的读取结果。以这种方式,在一些布置中,ici估计器111可以被配置为通过顺序地且仅一次读取多个基元的行来估计干扰状态,以解码对多个基元的读取操作的结果。在一些布置中,ici估计器111可以根据在邻近基元中编程的状态(或电平)分布来估计邻近基元的干扰状态。
[0055]
在一些布置中,ici估计器111可以根据与目标基元相邻的一个或多个基元来对目标基元的干扰状态进行分析和建模。在一些布置中,为了分析每个邻近基元的干扰的贡献,可以执行单个邻近行状态估计。例如,ici估计器111可以在解码之前从硬读取估计邻近行的干扰状态。在一些布置中,ici估计器111可以在解码后将邻近行的干扰状态估计为真实数据。
[0056]
在一些布置中,一旦对干扰源及其影响进行建模或识别,即可执行简单的信号处理操作,以补偿或解耦干扰。例如,可以对目标页的采样结果进行后处理,以补偿或解耦干扰。在一些布置中,可以提供用于读取或解码目标页的可靠性信息。例如,读取电路110的软信息生成器113可以被配置为生成可靠性信息(例如,计算错误概率)并基于可靠性信息提供软信息。在一些布置中,读取电路110的软信息生成器113可以被配置为基于所估计的干扰状态和来自第一基元的读取值来生成软信息。本文参考图12至图14进一步描述生成软信息和使用软信息生成器113的布置。
[0057]
ecc解码器112可被配置为解码作为对基元的读取操作的结果的软信息。附加地或替代地,ecc解码器112可以纠正错误,提高非易失性存储器存储控制器的准确度和应力消除。
[0058]
存储器控制器102还可以包括编程电路120。编程电路可以包括ecc编码器124和编程参数122。例如,ecc编码器124可以从软样本确定软标签。存储器控制器102还可以包括编程参数适配器130。适配器130可以调整编程电路120中的编程参数122。在此示例中,适配器130可包括编程/擦除(p/e)周期计数器132。尽管为了便于说明而单独示出,但是适配器130中的一些或全部可以并入编程电路120中。
[0059]
存储器模块104可以是存储器块106的阵列。存储器块可包括非易失性存储器,例如nand闪速存储器、动态随机存取存储器(dram)、磁随机存取存储器(mram)、相变存储器(pcm)、铁电ram(feram)等。在一些布置中,存储器模块104可以具有多个基元。在一些布置中,每个存储器块106可以具有多个基元。在一些布置中,基元存储器(例如,存储器模块104
或存储器块106)可以包括多个基元的行和列。在一些布置中,存储器块106可包括多个页(未示出),并且一页可被定义为与同一字线链接的基元,其对应于一行基元。在一些布置中,目标基元的邻近基元是与目标基元相邻的基元。例如,(第一基元的)第一邻近基元和第二邻近基元中的每一者可以位于与第一基元的列相同的列处,并且位于与第一基元的行相邻的行处。附加地或替代地,模块104可以包括多个管芯或使用多个管芯实现,每个管芯包含多个块106。
[0060]
现在将参考图2描述估计干扰状态的布置。图2是根据一些布置的没有任何ici信息的三位/基元(3bpc)存储器装置的八种可能的vt分布200的叠加的图表。所描绘的是与由基元的电荷状态表示的三个位的八种不同位组合对应的八个波瓣(分布或柱状图)。下部页读取需要使用阈值t
3 203将柱状图分成lsb为0的柱状图和lsb为1的柱状图。读取阈值t
0 200、t
2 202和t
5 205用于将柱状图分成lsb为0的柱状图和lsb为1的柱状图以读取中间页,读取阈值t
1 201、t
4 204和t
6 206用于将柱状图分成lsb为零的柱状图和lsb为1的柱状图以读取上部页。较低柱状图207可被视为擦除电平。
[0061]
图3是根据一些布置的非易失性存储器存储装置(例如tlc nand行)的每个编程状态的具有vt分布300的柱状图的图表。vt分布300是有条件信息状态。vt分布300可以是在具有一个主要干扰源(例如在编程期间引入的干扰)的单次编程的情况下确定的柱状图和vt分布的示例。使用单个阈值的单个读取(例如,单个状态读取)是可以被添加以获得读取流中的干扰信息的最小开销。如图所示,单个读取识别两个ici状态,每个柱状图存在各种估计的vt。
[0062]
图3可以离线表征,然而,如本文进一步描述的,给定干扰信息,没有用于补偿的单个移位值将提供最佳ici补偿。因此,每个ici补偿阈值从理想读取阈值(例如,不受ici影响的读取阈值)偏移一独特电压。
[0063]
柱状图302标识要读取的目标行。黑虚线阈值303和313中的每一者识别最佳读取阈值(例如理想读取阈值),其在没有ici信息时(例如,理想柱状图)提供每阈值的最小输出ber。邻近干扰行的单次读取导致同一目标行的两个诱导柱状图(例如柱状图304和柱状图306)。柱状图304和柱状图306是有条件柱状图。柱状图304和柱状图306之和产生柱状图302。
[0064]
柱状图304对应于ici状态0。柱状图304可以通过计算与邻近的干扰行上的读取结果“0”相对应的目标行的基元的vt分布来获得。由于柱状图304与邻近行的高编程干扰相关联,因此柱状图304被移位到较高电压(例如从无ici状态柱状图302向右移位)。
[0065]
柱状图306对应于ici状态1。柱状图306可以通过计算与邻近的干扰行上的读取结果“1”相对应的目标行的基元的电压阈值分布来获得。由于柱状图306与来自邻近行的较低编程干扰相关联,因此柱状图306被移位到较低电压(例如从无ici状态柱状图302向左移位)。
[0066]
下面的式2表明,与有条件柱状图相关联的ber之和相加为与无任何ici相关联的ber。两个有条件柱状图(例如柱状图304和柱状图306)相加为与无ici状态相关联的柱状图(例如,柱状图302),使得具有ici补偿的总ber低于无ici状态ber。
[0067]
bernoici》berici_0+berici_1
ꢀꢀꢀ
(2)
[0068]
bernoici表示与无ici状态(例如柱状图302)相关联的读出ber,berici_0表示与
ici状态0(例如柱状图304)相关联的读出ber,并且berici_1表示与ici状态1(例如柱状图306)相关联的读出ber。
[0069]
与无ici状态相关联的最佳读取阈值(例如,阈值303)相比,每个ici状态和关联柱状图与不同的最佳阈值相关联。因此,与每个ici状态相关联的固定ici补偿在降低ber方面可能不是有效的。
[0070]
为了证明不同ici状态需要不同的ici补偿,请注意与每个ici状态相关联的阈值。蓝虚线阈值305(和阈值315)与ici状态0相关联,红虚线阈值307与ici状况1相关联。如图所示,ici的效果是沿已知方向移位。然而,有条件ici分布(例如柱状图304和柱状图306)的阈值相对于没有ici信息的原始行的最佳阈值(例如柱状图302)具有变化的位移。
[0071]
例如,蓝虚线阈值305和315二者均与ici状态1相关联。两个阈值分别从阈值303和313(该阈值表示没有ici状态的最佳阈值)向左移位。然而,偏移的程度不同,导致阈值305不同于阈值315。
[0072]
图4是根据一些布置使用固定ici补偿阈值的读取流程400的流程图。例如,可以执行读取流程400以确定图3中描述的固定补偿阈值(例如,与阈值303和313相关联的柱状图302、与阈值305和315相关联的柱状图304以及与阈值307相关联的柱状图306)。读取流程400使用可被执行以确定固定ici补偿阈值的干扰信息提供示例读取操作。图4中描述的读取流程的最大读取操作次数是八。
[0073]
在读取流程400中,过程开始于框402,通过执行单个读取命令来读取目标行。可以以随机方式或在任意时间接收单个读取命令。在一些布置中,读取命令可以使用默认阈值读取。可以使用针对目标行的默认阈值执行读取命令,这通常是在目标页/块上有最小(或没有)先前信息时执行的。如果有先前信息可用,则第一读取阈值可以基于历史和/或跟踪信息而不是默认值。例如,读取阈值可以是与先前读取命令相关联的读取阈值。在一些布置中,如果与读取命令相关联的时间小于70微秒,则读取命令可以使用最后的阈值。在一些布置中,可以对读取结果执行硬解码尝试。
[0074]
在框404中,可以确定目标页的读取结果的硬解码是否成功。如果硬解码失败(例如,由于高错误率),则过程可前进到框406。例如,解码的ber可能不满足阈值(例如准确度阈值)。如果硬解码成功,则过程可在框411处结束。
[0075]
在框406中,执行快速训练(qt)。如本文所讨论的,qt可以使用线性估计器来执行。qt操作可以使用模拟阈值执行一组读取操作(例如三次全页读取)。可以从全页读取计算柱状图,并且可以估计目标页的读取阈值。例如,对于两个ici状态和三次读取,可以确定八个状态的七个阈值和三个位柱状图(例如,图3的vt分布300)。柱状图可用于计算快速训练阈值(例如,用于读取的新阈值)。
[0076]
在框408中,可以使用从框406中估计的阈值执行单次读取命令。可以尝试对目标页上的读取结果进行硬位解码。框410可以类似于框404。在框410中,可以确定目标页的读取结果的硬解码是否成功。如果硬解码失败,则过程可前进到框412。如果硬解码成功,则过程可在框411处结束。
[0077]
在框412中,可以执行主干扰行(例如,下一(next)字线行)的单次读取以获得ici信息。
[0078]
在框414中,可以执行手动硬位操作。手动硬位操作可以包括应用固定补偿阈值,
该固定补偿阈值基于快速训练阈值(例如在框406中确定)使用固定移位值根据每个阈值的ici状态(例如ici状态0或ici状态1)来估计。可以使用阈值的固定移位来执行两次附加读取。可以通过根据来自两个读取结果的ici状态信息选择部分来形成单个输入硬位码字。在一些布置中,可以对读取结果执行硬解码尝试。
[0079]
框416可以类似于框404和410。在框416中,可以确定目标页的读取结果的硬解码是否成功。如果硬解码失败,则过程可前进到框418。如果硬解码成功,则过程可在框411处结束。
[0080]
在框418中,可执行两次附加读取(或其他读取)以获得软位信息,从而可执行软位解码(例如,使用图1的软信息生成器113)。如本文所述,参考图12和图14描述软位解码读取流程。
[0081]
图5是根据一些布置动态地估计最佳(或改进的)ici补偿阈值的方法500。用于每个ici状态的读取阈值的动态估计允许以与应力条件和当前正在读取的实际物理目标行匹配的方式确定ici补偿。从执行方法500确定的估计结果可用于允许对输入进行硬解码,其中由于动态干扰减少而使错误率降低。例如,估计结果可用于使用来自方法500的估计阈值执行两次从目标行读取。
[0082]
在本示例中,过程开始于框502,其中对目标行执行模拟读取。模拟读取可以是具有预定义阈值的读取,预定义阈值是仅用于感测目标行的ici的读取。模拟读取可用于估计目标行的干扰状态。执行模拟读取可包括使用固定(或预定)模拟阈值集来读取目标行。
[0083]
模拟读取阈值可用于使每个柱状图的最佳(或改进的)补偿的估计更容易,如本文所述。模拟读取阈值的选择可以根据以下标准中的一个或多个而被优化:(1)在满足可靠性规范的同时最小化读取流程开销,以便可以选择用于计算具有ici信息的柱状图的所需模拟阈值的最小集合(或模拟阈值的缩减集合);(2)最小化由于ici补偿而增加的ber的mmse;(3)最小化在所有应力条件(例如,加权mmse)上增加的ber的尾部分布。如本文所述,柱状图上模拟读取阈值的示例在图6中示出。
[0084]
在框504中,可以读取干扰源的ici信息,其中干扰源可以是引入干扰的下一字线行。如果执行单个读取(例如下一字线的读取),则可以识别两个ici状态。例如,可能存在与高干扰状态相对应的一组阈值和与低干扰状态相对应该的另一组阈值。
[0085]
在框506中,可以计算使用干扰信息的联合(joint)柱状图。干扰状态的确定(例如来自框504)允许将目标行划分为多个柱状图。当与使用模拟读取测量创建的柱状图相比时,联合柱状图可以是更高分辨率的柱状图。例如,可以计算四位柱状图,其中三位对应于模拟读取阈值位置s0-s7,第四位对应于干扰状态(例如状态0或状态1)。
[0086]
在框508中,可以使用例如线性估计器或人工智能(例如深度神经网络)来估计目标行和每个干扰状态的读取阈值,以减少干扰。
[0087]
可以从框506中确定的四位柱状图计算每个干扰状态的估计的读取阈值。估计的阈值允许通过最佳地补偿干扰噪声以降低的ber读取所选页(例如该页的基元)。在一些布置中,线性估计器可用于计算具有(例如,在qt期间执行的)ici补偿的读取阈值。式3中显示了示例线性估计器:
[0088]
[0089]
是包含阈值估计结果的ax1向量,其中阈值对应于不同的干扰状态(例如,状态0和状态1)。向量h
bx1
包含从模拟读取和ici单次读取获得的柱状图值。最后,矩阵x
axb
是线性估计系数矩阵,其可以在包含所支持的应力条件的样本的vt分布数据库上离线训练。
[0090]
在一个示例中,数据库可以被配置有vt扫描和预定(固定)模拟读取阈值。对于数据库n行的单个ici读取,可以创建一组n个柱状图。柱状图矩阵可被视为h
bxn
,其中n对应于数据库中总共n行,且具有的标签对应于每行的最佳阈值。每个柱状图的最佳阈值可以由v
axn
指示。
[0091]
使阈值估计均方误差(mmse)最小化的一个示例线性估计器如式4所示:
[0092][0093]
其中h
bxn
是柱状图矩阵,v
axn
是最佳阈值矩阵。与估计次优阈值相关联的ber可能与相对于最佳阈值的阈值误差不成比例。为了评估ber对估计的阈值的影响,可以将误差函数从阈值误差转换为附加ber与(vs.)阈值误差的函数。这可以通过例如使用加权最小二乘算法来实现,该算法通过向每个柱状图样本提供与来自先前mmse迭代的阈值相对应的权重来迭代求解阈值mmse。也就是说,其中wi表示将阈值误差转换为ber所需的归一化权重,求解加权mmse的式(4)的下一迭代由x
axb
(iter)=v
axn
·witer
·ht
(h
·witer
·ht
)-1
给出,其中w
iter
是在其对角线上具有权重wi的nxn对角矩阵。每次迭代更新权重,直到加权mse损失最小化。在其他实施方式中,可以使用其他多项式函数来计算作为阈值误差的函数的附加ber,并执行随机梯度下降以最小化损失。
[0094]
每个干扰状态的估计的读取阈值可以使用一组m个模拟阈值(例如,在框502中描述)与ici信息的单个读取一起计算。例如,估计的读取阈值可以由式5给出:
[0095][0096]
其中是2dx1向量,包含d+1个可能编程状态的估计结果。在tlc装置的情况下,d=7,并且可能存在两组七个阈值,其中每个阈值对应于ici状态。在qlc装置的情况下,d=15可以是估计的阈值的数目。在式5中,柱状图向量2(m+1)可以反映柱状图大小。例如,当使用m个模拟读取阈值时,存在m+1个柱状图。对于两个ici状态,柱状图大小可以加倍。
[0097]
在一些布置中,一组m个模拟阈值可与ici信息的多次读取联合使用。因此,可能存在j个ici状态。每个ici状态的读取阈值可以在式6中示出:
[0098][0099]
其中是j
·
dx1向量,其包含可能的d+1个可能编程状态的估计结果。在tlc装置的情况下,d=7,可能有两组七个阈值,其中每个阈值对应于ici状态。在qlc装置的情况下,d=15可以是估计阈值的数目。在上面的式6中,j
·
(m+1)的柱状图向量可以反映柱状图大小。例如,当使用m个模拟读取阈值时,可能有m+1个柱状图区间(bin)乘以ici状态数j。
[0100]
在其他布置中,其他信息可用于估计最佳补偿(或改进的补偿)。例如,可以使用单个模拟阈值来估计应力条件(例如,保持条件、交叉温度编程)。因此,将针对应力分类优化
ici补偿阈值。ici补偿可以基于估计的应力条件的函数来应用,其中ici补偿可相对于其他读取阈值(例如,在图9的框906中确定的快速训练阈值)。将参考图11描述根据应力条件确定ici补偿的布置。
[0101]
在其他布置中,可以使用机器学习计算每个干扰状态的估计的读取阈值。例如,可以采用深度神经网络。将参考图7和图8描述采用深度神经网络的布置。
[0102]
仍然参考图5,在框510中,可以使用动态补偿的ici阈值对目标行执行读取操作。在一些实施例中,可以使用估计的阈值对(例如,从框508估计的阈值)执行两个读取操作。读取操作可以组合成单个硬输入,以使用用于分离的干扰读取结果进行硬解码。可以使用读取结果执行硬解码。
[0103]
参考图6,根据一些布置,示出了叠加在一组柱状图600上的模拟读取阈值的图表。读取可以是对非易失性存储器存储装置(例如tlc装置)的三页读取,从而识别tlc的八种状态的信息(例如s0至s7)。如本文所述,模拟读取阈值606用于感测目标行的柱状图(例如,与无ici状态相关联的柱状图602、与ici状态0相关联的柱状图604和与ici状况1相关联的柱状图606),以便于确定以干扰状态为条件的最佳ici补偿阈值。
[0104]
参考图7,示出了根据一些布置的多层感知器网络700的框图。如图所示,网络700是完全连接的网络。神经网络700可以在非易失性存储装置100内实现。例如,根据固件存储器和延迟性能规范,网络700可以在控制器本身内实现为通过嵌入式cpu运行的固件软件实现或硬件实现。
[0105]
神经网络模型700可以包括不同的层(竖直定向)的堆叠,这些层将输入层713所摄取的可变数量的输入709转换为输出层719处的输出708。可以在训练数据集上训练网络700,该训练数据集包括目标行的干扰状态、干扰源的干扰状态、特征以及对应读取阈值,以动态地补偿目标行的干扰状态。神经网络可用于使用模拟读取、ici读取结果、以及使用输入层713和一个或多个隐藏层718的附加特征中的一者或更者精确地估计阈值。在其他布置中,网络700可以不包括任何隐藏层718。输入709可以由输入层713接收作为向量。
[0106]
本文中的布置描述了正在针对模拟读取、ici读取结果和特征输入709训练的网络700。然而,这些布置不限于使用网络700来学习给定这些输入集合的估计的ici补偿阈值。例如,网络700可用于使用来自软样本、多个ici读取结果和附加特征的柱状图来估计ici补偿阈值。在一些布置中,使用相同的网络700来估计ici补偿阈值,但网络被不同地训练(例如,在输入709和输出708的不同集合上,导致不同的权重717)。在其他布置中,使用不同的网络来估计ici补偿阈值(例如,不同数量的隐藏层718或不同的网络700架构(例如,支持向量机、随机森林))。
[0107]
模拟读取(或来自软样本的柱状图)和到网络700的一个或多个ici读取输入709可以是来自模拟读取和ici读取的计算柱状图向量。特征输入709可以包括物理行数、编程/擦除周期计数、无ici通常估计的阈值以及在读取操作期间获得的其他信息。一些特征,如无ici通常估计的阈值,可能取决于读取流程实现。在一些布置中,具有ici信息的读取可以遵循阈值跟踪状态,该状态为目标行获取没有ici的阈值。
[0108]
除了柱状图向量信息(例如,来自模拟和ici读取)之外还使用特征数据允许网络700学习,并受益于页特征之间的相互作用。例如,训练网络700以利用特征数据预测/估计补偿的ici阈值可导致改进的所估计的补偿的ici阈值。例如,特征信息可以传达(convey)
关于页环境(例如,应力条件)的信息,该信息允许网络700更好地学习所估计的补偿的ici阈值(输出708)与模拟读取和ici读取输入709之间的关系。
[0109]
输入层713包括连接到隐藏层718的每个神经元715的神经元711。隐藏层718中的神经元715连接到输出层719中的神经元721。输出层719生成指示估计的读取阈值(例如,ici补偿阈值)的向量708。网络700可以包括输入层713和输出层719之间的多个隐藏层718。
[0110]
通常,神经元(711、715和721)执行特定计算,并与相邻层的神经元互连。神经元711、715和721中的每一个对来自相邻神经元的值求和并应用激活函数,从而允许网络700学习非线性模式。网络使用非线性模式来学习输入(例如,与特征、模拟读取和ici读取结果相关联的信息)与输出(例如,估计的ici补偿阈值)之间的非线性关系。
[0111]
神经元711、715和721中的每一个都通过算法权重717-1、717-2、717-3、717-4、717-5和717-6(统称为权重717)互连。在训练期间调整权重717以调整神经元的强度。神经元强度的调整促进了网络700学习非线性关系的能力。在训练期间优化算法权重,使得网络700学习估计的补偿阈值。
[0112]
可以使用监督学习来训练网络700。图8是根据一些布置的使用监督学习的示例800机器学习模型(例如图7中的网络700)的框图。监督学习是一种在给定输入-输出对的情况下训练机器学习模型的方法。输入-输出对是具有关联已知输出(例如预期输出)的输入。
[0113]
机器学习模型804可以在已知输入-输出对上进行训练,使得机器学习模型801可以学习如何预测给定已知输入的已知输出。一旦机器学习模型804已经学会如何预测已知输入-输出对,机器学习模型801就可以对未知输入进行操作以预测输出。
[0114]
训练输入802和实际输出810可被提供给机器学习模型804。训练输入802可以包括模拟读取、ici读取结果和特征。实际输出810可以包括最佳ici补偿阈值。最佳ici补偿阈值可以使用本文所述的估计最佳ici赔偿阈值的不同方法(例如,使用线性估计器估计最佳阈值)来测量和/或确定。
[0115]
在一种布置中,可以使用训练输入802(例如,模拟读取、ici读取和其他特征)训练机器学习模型804,以通过将机器学习模型801的当前状态应用于训练输入802来预测输出806(例如,估计的最佳ici补偿阈值)。比较器808可将预测输出806与实际输出810(例如实际测量和/或计算的最佳ici补偿阈值)进行比较以确定误差量或差异量。例如,将估计/预测的最佳ici补偿阈值(例如,预测的输出806)与实际/测量的最佳ici补偿阈值(例如,实际输出810)进行比较。
[0116]
在训练期间,由比较器808确定的误差(由误差信号812表示)可用于调整机器学习模型804中的权重,以使机器学习模型801随时间学习。机器学习模型804可以使用例如反向传播算法来训练。反向传播算法通过将误差信号812传播通过机器学习模型804中的权重(例如图7中的权重717)来操作。误差信号812可以在每个迭代(例如,每对训练输入802和相关联的实际输出810)、批次和/或代(epoch)中被计算,并传播通过机器学习模型804中的权重,使得算法权重基于误差量进行调整。使用损失函数将误差最小化。损失函数的非限制性示例可包括平方误差函数、均方根误差函数和/或交叉熵误差函数。
[0117]
可以调整机器学习模型804的加权系数以减小误差量,从而最小化预测输出806与实际输出810之间的差异(或以其他方式收敛预测输出806与实际输出810)。可以训练机器学习模型804,直到在比较器808处确定的误差在某个阈值内(或者已经达到阈值数量的批、
代或迭代)。可随后存储经训练的机器学习模型804和相关联的加权系数,以使得可在未知数据(例如,非训练输入802)上采用机器学习模型804。一旦被训练和验证,机器学习模型804可以在测试(或推理阶段)期间被使用。在测试期间,机器学习模型804可摄取未知数据以预测/估计8个最佳ici补偿阈值。使用本文描述的系统和方法,存储器系统100可以具有用于估计最佳ici补偿阈值的形式化方法(formalized approach)。
[0118]
图9是根据一些布置使用动态ici补偿阈值的读取流程900的流程图。读取流程900是为实现动态地估计ici补偿阈值的方法500而执行的读取操作的示例。可以使用干扰行的单个ici读取来确定动态ici补偿。与图4中读取流程400的最大读取操作数类似,图9中读取流程900的最大读取操作数为8。与图4中的读取流程400相比,读取流程900利用动态估计进行ici补偿而没有任何额外的延迟开销。虽然执行相同数量的读取操作,但图9中描述的读取流程900是图4中描述的读取流程400的改进。使用动态ici补偿来确定目标页的适配读取阈值,而不是使用固定ici补偿,这可以改进ber和解码速度。
[0119]
框902可以类似于图4中的框402。在框902中,执行单个读取命令以读取目标行。可以以随机方式或在任意时间接收单个读取命令。在一些布置中,读取命令可以使用默认阈值读取。可以使用目标行的默认阈值执行读取命令,这通常是在目标页/块上有最小(或没有)先前信息时执行的。如果先前信息可用,则第一读取阈值可以基于历史和/或跟踪信息而不是默认值。例如,读取阈值可以是与先前读取命令相关联的读取阈值。在一些布置中,如果与先前读取命令相关联的时间小于70微秒,则读取命令可以使用最后阈值。读取可以保存在缓冲器上,因此它们可以稍后在读取流程900中使用。在一些布置中,可以对读取结果执行硬解码尝试。
[0120]
框904可以类似于图4中的框404。在框904中,可以确定目标页的读取结果的硬解码是否成功。如果硬解码失败(例如,由于高错误率),则过程可前进到框906。如果硬解码成功,则过程可在框911处结束。
[0121]
随着时间的推移,硬解码可能更容易成功(因此前进到框911处结束),因为默认阈值(或先前阈值)跟踪非易失性存储器存储装置的应力条件和/或其他变化。应力条件可根据温度和/或时间而动态变化。然而,在某些情况下,温度可能会缓慢变化,从而应力条件和相关联的补偿阈值可能会跟踪,导致理想的ber。
[0122]
例如,在时间t=0时,硬解码可能失败,ici补偿阈值可按本文所述进行调整。在时间t=1时,硬解码可能会成功,因为从框902-918的第一次执行确定的调整阈值在时间t=1时仍然相关/更新。因此,可以基于非易失性存储器存储装置的自调整过程来提高服务质量。由于先前更新的阈值跟踪非易失性存储器存储装置的条件使得硬位解码更大可能更频繁地成功,因此软解码的概率降低(例如,到达框918的概率)。更新阈值以使得硬位解码更大可能成功(例如,在框904、910和916处)释放了非易失性存储器存储装置的处理能力和资源。因此,由于第一次读取(例如,在框902处执行)和相关联的读取阈值可能在稍后时间相关,因此由执行读取导致的总延迟减少。
[0123]
框906可以类似于图4中的框406。在框906中,可以执行快速训练(qt)操作。qt操作可以使用模拟阈值来从下一字线使用三次全页读取。可以从全页读取计算柱状图,并且可以估计目标页的读取阈值。例如,对于两个ici状态和三次读取,可以确定八个状态的七个阈值和三位柱状图。柱状图可用于计算快速训练阈值(例如,用于读取的新阈值)。
[0124]
框908可以类似于图4中的框408。在框908中,可以使用来自框906的估计的阈值执行单个读取命令。读取可以保存在缓冲区中,因此读取可以稍后在读取流程中使用。可以尝试对目标页上的读取结果进行硬位解码。框910可以类似于框904。在框910中,可以确定目标页的读取结果的硬解码是否成功。如果硬解码失败,则过程可前进到框912。如果硬解码成功,则过程可在框911处结束。
[0125]
在框912中,可以执行主要干扰行(例如,下一字线行)的单次读取。然后可以执行qt ici,其中可以计算具有ici读取和模拟读取的柱状图。来自干扰行的ici信息和模拟读取(例如,在框906期间执行的读取)可以在ici补偿估计期间使用柱状图来计算每个ici状态的动态ici移位阈值而被使用。可以使用dnn或线性估计器生成与ici状态相对应的ici补偿阈值,如本文所述(例如,图7和图8)。例如,可以为两个ici状态生成两组ici补偿阈值。
[0126]
类似于图4中的框414,在框914中,可以执行手动硬位操作。手动硬位操作可包括根据每个阈值的ici状态(例如ici状态0或ici状态1)应用来自框912的qt ici阈值。
[0127]
可以使用qt ici阈值执行两次附加读取。可以执行标记(labeling),其中通过根据来自两个读取结果的ici状态信息而选择部分来形成单个输入硬位码字。在一些布置中,可以对读取结果执行硬解码尝试。
[0128]
框916可以类似于图4中的框416。在框916中,可以确定目标页的读取结果的硬解码是否成功。如果硬解码失败,则过程可前进到框918。如果硬解码成功,则过程可在框911处结束。
[0129]
框918可以类似于图4中的框418。在框918中,可以执行两个附加读取(或其他读取)以获得软位信息,从而可以执行软位解码(例如,使用图1的软信息生成器113)。如本文所述,参考图12和图14描述软位解码读取流程。
[0130]
图10是根据一些布置的针对非易失性存储器存储装置(例如tlc nand行)的每个编程状态以示例vt分布读取的目标行的柱状图的示例1000的图表。在图10中,已经执行了下一字线的三个阈值读取(例如,ici读取阈值1012),导致4个ici干扰状态和四个独特柱状图(例如,无ici状态柱状图1002、ici状态0柱状图1004、ici状态1柱状图1006、ici状态2柱状图1010和ici状态3柱状图1008)。通过计算与邻近干扰行上对应ici状态的读取结果相对应的目标行的基元的vt分布来获得每个柱状图。
[0131]
在示例1000中,与无ici状态柱状图1002相关联的阈值1022是最佳读取阈值,当没有ici信息时,该最佳读取阈值提供每个阈值的最小输出ber。即,阈值1016是与无ici状态柱状图1002相关联的阈值。
[0132]
如本文参考变化的从最佳补偿阈值的偏移的电压移位所讨论的,每个ici状态具有从最佳阈值1022偏移的独特补偿阈值(例如,与ici状态0柱状图1004相关联的阈值1024、与ici状态1柱状图1006相关联的阈1026、与ici状态3柱状图508相关联的阈值528以及与ici状态2柱状图510相关联的阀值530)。如本文所述,虽然每个ici状态对最佳读取阈值具有独特的影响(例如,分别从与需要更低或更高电压相关联的最佳读取阈值向左或向右移位),但偏移对于每个有条件ici分布都是不同的。例如,与最佳阈值1022和1032相比,与ici状态1相关联的读取阈值的移动分别从阈值1036到阈值1026变化。
[0133]
参考图5、图9、图10和图11,可以动态地确定ici补偿阈值以改善ber。图10描述了四个ici状态场景,图11(在此进一步描述)描述了两个ici状态场景。例如,可以执行图5中
的方法500以确定每个ici状态的动态ici补偿阈值。读取流程900是执行图5中方法500的一个示例读取流程。在框902中,可以使用预定默认阈值对目标行执行读取命令。在图10的示例1000中,将假设硬位解码未成功(例如,图9中的框904)。返回参考图9中的读取流程900,在框906中,可以执行快速训练,以确定两个最佳读取阈值。参考图10中的示例1000,如图所示,使用阈值1012执行来自干扰行的下一字线的三个全页读取操作,以获得四个ici状态。类似地,参考图11中的示例1100,使用阈值1112执行来自干扰行的下一字线的三个全页读取操作,以获得两个ici状态。返回参考图10,可以计算五位柱状图,其中三位对应于使用模拟读取阈值1014的模拟读取阈值位置s0-s7,位四和位五对应于干扰状态(例如,ici状态3、ici状态2ici状态1或ici状态0)。
[0134]
在该示例中,使用线性估计器来使用模拟读取阈值和ici信息的单个读取来计算读取阈值。线性估计可以通过获得,其中是28x1向量,其包含四组七个阈值的估计结果。每组七个阈值对应于不同的干扰状态(例如干扰状态0-3)。向量h
32x1
包含从模拟读取(例如在图9的框902处执行的读取)和三个单个ici读取(例如图9的框906中的快速训练的结果)获得的柱状图值。矩阵x
28x32
是线性系数矩阵。
[0135]
使阈值估计mmse最小化的线性估计器的一个示例是mse最小化的线性估计器的一个示例是其中h
32xn
指示n个柱状图矩阵,v
28xn
指示与n个柱状图矩阵相关联的最佳阈值。
[0136]
返回参考图9中的读取流程900,在框908中,可以使用来自框906的估计阈值执行单个读取命令(例如,与图10中的无ici状态柱状图1002相关联的阈值1032、与ici状态0柱状图1004相关联的阈1024、与ici状态1柱状图1006相关联的阈值1026、与ici状态3柱状图1008相关联的阀值1028以及与ici状态2柱状图1010相关联的阈值1030)。可以在没有ici的情况下对目标行执行单个读取操作。在该示例中,将假设使用估计的阈值的硬位解码未成功(例如,框910)。在框912中,可以执行下一字线行的单个读取以获得ici信息。即,可以获得ici状态0和ici状态1。可以执行快速训练ici以计算具有ici读取和模拟读取的柱状图。柱状图可以是用于计算用于最佳动态ici补偿的两组阈值的四位柱状图。如果存在四个ici状态,则可以使用五位柱状图来动态地计算每个ici状态的ici移位阈值。在框914中,使用ici状态组合两个读取以向解码器提供硬输入。
[0137]
图11是根据一些布置的ici补偿随应力条件分类变化的示例1100的图表。基于应力条件分类对应力条件进行分类并确定ici补偿,这将ici补偿阈值跟踪至应力条件(例如,如果存在更多应力,将修改ici补偿阈值,以使阈值跟踪应力条件,改善误码率)。如图所示,单个模拟读取阈值1108可用于对应力条件进行分类。模拟读取阈值的结果可用于更新快速训练阈值1110(例如在图9的框906中)。还可以使用来自应力分类的结果来更新其他ici补偿阈值。补偿阈值可取决于应力条件分类。
[0138]
在一个示例中,四种应力条件可由s={编程干扰(pd)、读取干扰(rd)、数据保持(dr)、叉温应力(ct)}表示。编程干扰应力条件(也称为耐久应力)可以是由多个编程擦除操作的应用/执行产生的应力。读取干扰应力条件可以是由对特定块的各种读取操作产生的噪声引起的应力。数据保持可能是与由编程产生的时间(例如,长时间)和温度(例如,高温)
相关的应力条件,直到尝试读取为止。交叉温度应力条件可以是与在一个温度(例如-40c)下进行编程和在不同温度(例如+85c)下执行读取相关联的应力。
[0139]
每个ici状态(例如ici状态0和ici状态1)的读取阈值可以是如式7所示的快速训练阈值:
[0140][0141][0142]
其中是估计的读取阈值(例如,来自图9中的框902的读取阈值)的向量,是估计的应力等级,(对于i=0,1)可以分别是ici状态0和ici状态1的读取阈值,并且(对于i=0,1)可以是补偿位移函数,分别取决于每个ici状态0和ici状态1的应力等级。
[0143]
图12是根据一些布置的软位解码读取流程1200,其使用用于多个ici读取的固定ici补偿来确定用于ici补偿的读取阈值。软读取流程1200使用目标行的软位采样。在一个示例中,读取流程1200中的读取次数为36。软位采样可用于估计ici补偿的读取阈值,以提高服务质量和估计准确度。在一些布置中,当硬解码失败时(例如,在图4中的读取流程400失败之后),执行读取流程1200。
[0144]
在该示例中,该过程处于框1202,其中软采样被执行并与ici采样相结合。在一个示例中,围绕阈值执行五位分辨率软采样(例如,从图4中框406的硬位解码的固定ici补偿的读取流程400估计的qt阈值)。在一些配置中,为软采样执行的读取次数可以是31。
[0145]
在框1204中,可以执行组读取。组信息读取可用于区分每个目标阈值周围的基元。例如,可以执行两次读取以分离柱状图的波瓣区域。在一个示例中,tlc nand可以使用两次单个状态读取来分离三个阈值(例如,图2)。
[0146]
在框1206中,可以执行ici读取和重新标记(relabel)。例如,可以使用对下一字线的三次读取来确定四个ici状态。然后,对每个ici状态应用软样本上的固定移位。例如,可以应用固定(或预定)标签来重新标记ici补偿阈值。软样本上的移位是根据每个状态的移位将初始软llr重新映射到不同的软llr的操作。
[0147]
在框1208中,可以执行预软跟踪(pst)。pst可以是使用软标签来确定最佳阈值的算法。pst算法的一个简单示例包括计算特定阈值周围的软采样输入的柱状图,并通过柱状图最小值的位置确定最小ber阈值。当ici状态可用时,可以使用每个ici状态的柱状图的最小值来确定ici补偿的最佳(动态)阈值。
[0148]
pst可以在对软样本进行软解码之前执行。作为执行pst的结果,可以更新软位解码标签。pst可用于在针对每个组的每个目标页阈值的ici补偿之后到最佳阈值。即,可以在使用软采样和重新标记的ici补偿之后调整每组的硬解码决定阈值。可以针对每个ici状态应用pst。
[0149]
如果没有ici信息,可以使用每个目标阈值周围的柱状图的最小搜索和/或模型拟合(例如拉普拉斯分布)来计算软样本vt分布的柱状图。可以估计最佳阈值,并且可以将软样本映射到llr。
[0150]
当多状态ici信息可用时,也可以应用pst跟踪。对于每个ici状态,可以估计对应的最佳阈值,并且可以将llr分配给每个ici状态,以提供解码器(例如,图1的ecc解码器
112)ici补偿后llr输入。附加地或替代地,可以使用神经网络(例如神经网络700)来到最佳阈值。
[0151]
在框1210中,可以执行软位解码。例如,软解码器(例如图1的ecc解码器112)可用于解码。在框1212中,可以确定目标页的软解码是否成功。如果软解码成功,则该过程可在框1211处结束。如果软解码失败,则过程可前进至框1214。在一个示例中,如果解码的ber不满足阈值(例如,准确度阈值),则过程可前进至框1214。
[0152]
在框1214中,可以更新软位标签。例如,可以对软标签执行llr映射。附加地或替代地,可以执行动态llr估计。例如,软解码器(图1的eec解码器112)可以通过监视或检查解码尝试(例如,框1210中的软解码尝试)的结果来生成临时误差向量。软解码器可基于在先前软解码尝试失败时生成的临时误差向量获得调整后的llr映射或llr值。动态llr估计在由avi steiner和hanan weingarten于2019年9月12日提交的名称为“system and method for decoder assisted dynamic log-likelihood ratio estimation for non-volatile memories(用于非易失性存储器的解码器辅助的动态对数似然比估计的系统和方法)”的美国专利no.10,963,338中有更详细的描述,其全文通过引用并入本文。
[0153]
图13是根据一些布置动态地估计最佳(或改进的)ici补偿阈值的方法1300。可以对软信息执行方法1300。方法1300应用于每个干扰状态的软标签。
[0154]
在该示例中,过程开始于框1302,其中基于给定ici状态限定目标软页(或基元、位组和/或码字)。可以基于来自邻近行的读取结果来选择目标软页(例如页位)。也就是,在一些实施方式中,用于阈值搜索的目标软基元可以是对应于给定ici状态的相同基元。
[0155]
在框1304中,可以围绕用于给定ici状态的标签上的阈值计算柱状图。例如,qt运算和/或pst操作可用于计算柱状图。本文参考图14描述使用qt操作和/或pst操作计算柱状图的布置。
[0156]
在框1306中,可以确定用于每个柱状图的最佳阈值。例如,可以使用归一化柱状图的模型来执行对最佳阈值的搜索。该模型可以是例如高斯分布或拉普拉斯分布的概率密度函数(pdf)。给定计算的柱状图,可以估计pdf模型参数,并且可以根据从pdf模型函数获得的最小误差的位置来计算最佳阈值。在一些布置中,与基于模拟读取阈值的估计相比,阈值估计方法可能更准确,这是因为使用pst到最佳阈值使用了更多关于目标阈值的信息(因为使用了软信息)。
[0157]
在框1308中,可以执行重新标记。例如,可以重新标记估计的ici补偿阈值,以反映给定ici状态的更新后的(或最佳的、改进的、跟踪的)ici补偿。
[0158]
图14是根据一些布置利用针对多个ici读取的ici补偿的动态估计的软位解码读取流程1400。读取流程1400是为实现动态估计ici补偿阈值的方法1300而执行的读取操作的示例。读取流程1400的最大读取操作次数与图12中读取流程1200的最大读取次数相同(例如36次读取)。虽然执行相同数量的读取操作,但读取流程1400是图12中描述的读取流程1200的改进。使用动态ici补偿来确定目标页的调整后的读取阈值而不使用固定ici补偿,这可以改进ber和解码速度。与图12中的读取流程1200相比,读取流程1400利用动态估计进行ici补偿而没有任何额外的延迟开销。
[0159]
框1402可以类似于图12中的框1202。在框1402中,软采样被执行并与ici采样相结合。在一个示例中,围绕阈值执行五位分辨率软采样(例如,从图9中框912的硬位解码的动
态ici补偿的读取流程900估计的qt阈值)。在一些配置中,为软采样执行的读取次数可以是31。
[0160]
框1404可以类似于框1204。在框1404中,可以执行组读取。组信息读取可用于区分每个目标阈值周围的基元。例如,可以执行两次读取以分离柱状图的波瓣区域。在一个示例中,tlc nand可以使用两次单个状态读取来分离三个阈值(例如,图2)。
[0161]
框1406可以类似于图12中的框1206。在框1406中,可以执行ici读取和重新标记。例如,可以使用对下一字线的三次读取来确定四个ici状态。
[0162]
在框1407中,可以执行qt。如果qt模拟读取是从硬解码读取流程保存的(例如读取流程900中的模拟读取阈值确定,特别是在图9的框906中),则可以执行qt。可以使用先前的模拟读取阈值(如所讨论的)和ici读取来执行qt操作,以便计算每个ici状态的ici补偿。例如,使用每位的ici状态和模拟读取,可以计算柱状图,并且可以估计每状态的ici补偿阈值。可以将估计的阈值移位应用于每个ici状态。软样本上的移位是根据每状态的移位将初始软llr重新映射到不同的软llr的操作。
[0163]
如果在框1407中执行了qt,则框1408可以类似于图12中的框1208。在框1408中,可以使用pst为每组的目标页阈值中的每一个寻ici补偿后的最佳阈值。即,可以在使用软采样和重新标记的ici补偿之后调整每组的硬解码决定阈值。pst可以应用于每个ici状态。
[0164]
如果未执行框1407(例如,未保存来自硬解码读取流程的模拟读取),则框1408可能不同于框1208。例如,在框1408中,可以使用pst操作计算每状态的ici补偿。使用每位的ici状态和软样本,可以使用ici状态计算柱状图。可以使用每状态的pst来估计补偿阈值(例如,使用线性估计器或dnn)。可以重新标记每个组和状态。
[0165]
框1410可以类似于框1210。在框1410中,可以执行软位解码。例如,软解码器(例如,图1的ecc解码器112)可用于解码。在框1412中,可以确定目标页的软解码是否成功。如果软解码成功,则该过程可在框1411处结束。如果软解码失败,则过程可前进到1414。
[0166]
框1414可以类似于图12中的框1214。在框1414中,可以更新软标签。例如,可以对软标签执行llr映射(或动态llr估计)。
[0167]
图15是根据一种布置的来自诸如tlc nand的非易失性存储器存储装置的ber分布的示例1500。曲线图1502和1503对应于每页的ber分布。例如,曲线图1504和1505表示下部页的ber分布,曲线图1506和1507表示中间页的ber分布,曲线图1508和1509表示上部页的ber分布。曲线图1502和1503的x轴表示ber,曲线图1502与1503的y轴表示互补累积分布函数(ccdf)。
[0168]
如示例1500所示,没有ici读取的下部页1504ber分布为线1514。具有单ici读取(例如,图4中的读取流程400)的具有固定补偿的下部页1504 ber分布为线1524。补偿后给定调整后最佳阈值的具有单ici读取的下部页1504 ber分布为线1534。然而,补偿后调整最佳阈值可能不是有效的,因为该调整涉及由阈值跟踪产生的额外开销。具有单ici读取(例如,图9中的读取流程900)的具有动态补偿的下部页1504 ber分布是线1544。
[0169]
如示例1500所示,没有ici读取的下部页1505 ber分布为线1515。具有固定补偿三读取ici(例如,图4中的读取流程400)的下部页1505 ber分布为线1525。补偿后给定调整后最佳阈值的具有固定补偿三读取ici的下部页1505 ber分布为线1535。然而,补偿后调整最佳阈值可能不是有效的,因为该调整涉及由阈值跟踪产生的额外开销。具有三读取ici(例
如,图9中的读取流程900)的具有动态补偿的下部页1505 ber分布是线1545。
[0170]
提供前述描述是为了使本领域任何技术人员能够实践本文所述的各个方面。对这些方面的各种修改对于本领域技术人员来说将是显而易见的,并且本文定义的一般原理可以应用于其他方面。因此,权利要求不旨在限于本文所示的方面,而是符合与权利要求语言一致的全部范围,其中对单数元素的引用并不旨在意味着“一个且仅一个”,除非如此特别说明,而是意味着“一个或多个”。除非另有特别说明,否则术语“一些”是指一个或多个。本领域普通技术人员已知或以后知道的、贯穿先前描述的各个方面的元素的所有结构和功能等价物均通过引用明确并入本文,并旨在被权利要求所包含。此外,本文所公开的任何内容均不旨在奉献给公众,无论在权利要求中是否明确叙述了此类披露。任何权利要求元素不被解释为装置加功能,除非该要素使用短语“用于
……
的装置”明确陈述。
[0171]
应当理解,所公开的过程中的步骤的特定顺序或层次是说明性方法的示例。基于设计偏好,应当理解,过程中的步骤的特定顺序或层次在保持在之前描述的范围内的情况下能重新排列。所附方法权利要求以示例顺序呈现了各个步骤的元素,并且不意味着限于所呈现的特定顺序或层次。
[0172]
提供所公开实施方式的先前描述以使得所属领域的技术人员能够制作或使用所公开的主题。对这些实施方式的各种修改对于所属领域的技术人员将容易显而易见,且本文中界定的一般原理能在不脱离先前描述的精神或范围的情况下可以应用于其它实施方式。因此,先前描述不希望限于本文所示的实施方式,而是应被赋予与本文公开的原理和新颖特征一致的最广范围。
[0173]
所说明和描述的各种示例仅作为示例提供以说明权利要求的各种特征。然而,关于任何给定示例示出和描述的特征不一定限于相关联的示例,并且可以与示出和描述的其它示例一起使用或组合。此外,权利要求并不旨在受任何一个示例限制。
[0174]
前述方法描述和过程流程图仅作为说明性示例而提供,且不希望要求或暗示必须以所呈现的次序执行各种示例的步骤。如本领域技术人员将理解的,前述示例中的步骤的顺序可以以任何顺序执行。诸如“其后”、“然后”、“接下来”等词语不旨在限制步骤的顺序;这些词语仅用于引导读者通读对方法的描述。此外,任何对单数形式的权利要求元素的引用,例如使用冠词“一”、“一个”或“该”不应被解释为将该元素限制为单数。
[0175]
结合本文所公开的示例而描述的各种说明性逻辑块、模块、电路和算法步骤能实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的此可互换性,上文已大体上在其功能性方面描述了各种说明性组件、块、模块、电路和步骤。将此功能性实施为硬件还是软件取决于特定应用和强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为导致脱离本发明的范围。
[0176]
用于实施结合本文所公开的示例而描述的各种说明性逻辑器件、逻辑块、模块和电路的硬件可用经设计以执行本文所描述的功能的通用处理器、dsp、asic、fpga或其它可编程逻辑装置、离散门或晶体管逻辑电路、离散硬件组件或其任何组合来实施或执行。通用处理器可以是微处理器,但是,在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以被实施为计算设备的组合,例如dsp和微处理器的组合、多个微处理器、一个或多个微处理器与dsp内核的结合、或者任何其它此种配置。或者,一些步骤
或方法可由特定于给定功能的电路执行。
[0177]
在一些示例性示例中,所描述的功能可以以硬件、软件、固件或其任意组合来实施。如果以软件实施,所述功能可作为一个或一个以上指令或代码存储于非暂时性计算机可读存储介质或非暂时性处理器可读存储介质上。本文所公开的方法或算法的步骤可以体现在处理器可执行软件模块中,该处理器可执行软件模块可以驻存在非暂时性计算机可读或处理器可读存储介质上。非暂时性计算机可读或处理器可读存储介质能够为能由计算机或处理器存取的任意存储介质。作为示例而非限制,此非暂时性计算机可读或处理器可读存储介质能包括ram、rom、eeprom、闪速存储器、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁存储装置、或可被用于存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它介质。如本文中所使用,磁盘和光盘包括压缩光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘使用激光以光学方式再现数据。上述各项的组合也包括在非暂时性计算机可读和处理器可读介质的范围内。另外,方法或算法的操作可作为代码和/或指令中的一者或任何组合或集合而驻存在可并入到计算机程序产品中的非暂时性处理器可读存储介质和/或计算机可读存储介质上。
[0178]
提供所公开示例的先前描述以使所属领域的技术人员能够制作或使用本公开。所属领域的技术人员将容易明白对这些示例的各种修改、且在不脱离本公开的精神或范围的情况下,本文所界定的一般原理可应用于一些示例。因此,本公开无意限于本文中所展示的示例,而是应被赋予与所附权利要求书以及本文中所公开的原理和新颖的特征一致的最大范围。
技术特征:
1.一种动态估计存储器页的干扰补偿阈值的方法,包括:使用模拟读取阈值对目标行执行模拟读取;对干扰源执行读取操作,并读取所述干扰源的干扰状态;基于所述模拟读取阈值和所述干扰源的所述干扰状态,计算柱状图和对应阈值;以及基于所述柱状图,估计用于动态补偿所述目标行的干扰噪声的读取阈值。2.根据权利要求1所述的方法,其中,所述干扰源是下一字线行。3.根据权利要求1所述的方法,其中,估计所述读取阈值包括使用线性估计器,其中,所述线性估计器的向量包含用于动态补偿所述目标行的所述干扰状态的所述读取阈值,所述线性估计器的向量包含所述柱状图的值,并且所述线性估计器的矩阵包含系数。4.根据权利要求1所述的方法,其中,估计所述读取阈值包括使用神经网络,所述神经网络使用训练数据集训练,所述训练数据集包括第二目标行的第二干扰状态、第二干扰源的第二干扰状态、特征和对应读取阈值,以动态补偿所述第二目标行的所述干扰状态。5.根据权利要求4所述的方法,其中,所述特征包括物理行数、编程周期计数、擦除周期计数或无基元间干扰阈值中的至少一者。6.根据权利要求1所述的方法,还包括:对所述目标行执行感测操作以对应力条件进行分类:以及基于所述应力条件更新与所述柱状图对应的所述阈值。7.根据权利要求1所述的方法,其中,用于动态补偿所述目标行的所述干扰噪声的所述读取阈值从理想读取阈值偏移独特的电压。8.一种使用软信息动态估计存储器页的干扰补偿阈值的方法,包括:基于干扰采样,基于目标位组的干扰状态限定所述目标位组;确定柱状图和对应阈值;以及估计所述目标位组的读取阈值。9.根据权利要求8所述的方法,其中,确定所述柱状图和所述对应阈值包括:检索与读取操作相关联的干扰源的干扰阈值和对应干扰状态:以及基于所述干扰源的所述干扰阈值和所述对应干扰状态,计算所述柱状图和所述对应阈值。10.根据权利要求8所述的方法,还包括:基于重新标记操作,调整所述目标位组的所述读取阈值以动态补偿所述目标位组的干扰噪声。11.根据权利要求8所述的方法,其中,确定所述柱状图和所述对应阈值包括:基于对所述干扰源的位进行采样,确定干扰源的干扰状态;计算采样的位的可靠性:以及使用所述采样的位的所述可靠性和基于所述采样的位的干扰状态,计算所述柱状图和所述对应阈值。12.根据权利要求11所述的方法,还包括:基于对数似然比估计,重新标记所述采样的位的所述可靠性。13.根据权利要求8所述的方法,还包括:确定使用所估计的读取阈值的读取操作是否满足误码率准确度。
14.一种存储器系统,包括:具有多个行的存储器页;以及用于执行所述存储器页的操作的电路,所述电路被配置为:使用模拟读取阈值对目标行执行模拟读取;对干扰源执行读取操作,并读取所述干扰源的干扰状态;基于所述模拟读取阈值和所述干扰源的所述干扰状态,计算柱状图和对应阈值;以及基于所述柱状图,估计用于动态补偿所述目标行的干扰噪声的读取阈值。15.根据权利要求14所述的存储器系统,其中,所述干扰源是所述存储器页上的下一字线行。16.根据权利要求14所述的存储器系统,其中,在估计所述读取阈值时,所述电路进一步被配置为使用线性估计器,其中,所述线性估计器的向量包含用于动态补偿所述目标行的所述干扰状态的所述读取阈值,所述线性估计器的向量包含所述柱状图的值,并且所述线性估计器的矩阵包含系数。17.根据权利要求14所述的存储器系统,其中,在估计所述读取阈值时,所述电路进一步被配置为使用神经网络,所述神经网络使用训练数据集训练,所述训练数据集包括第二目标行的第二干扰状态、第二干扰源的第二干扰状态、特征和对应读取阈值,以动态补偿所述第二目标行的所述干扰状态。18.根据权利要求17所述的存储器系统,其中,所述特征包括物理行数、编程周期计数、擦除周期计数或无基元间干扰阈值中的至少一者。19.根据权利要求14所述的存储器系统,其中,所述电路进一步被配置为:对所述目标行执行感测操作以对应力条件进行分类:以及基于所述应力条件更新与所述柱状图对应的所述阈值。20.根据权利要求14所述的存储器系统,其中,所述读取阈值从理想读取阈值偏移独特的电压。21.一种包含处理器可读指令的非暂时性处理器可读介质,使得当由一个或多个处理器执行时,通过以下方式执行用于动态估计存储器页的干扰补偿阈值的方法:使用模拟读取阈值对目标行执行模拟读取;对干扰源执行读取操作,并读取所述干扰源的干扰状态;基于所述模拟读取阈值和所述干扰源的所述干扰状态,计算柱状图和对应阈值;以及基于所述柱状图,估计用于动态补偿所述目标行的干扰噪声的读取阈值。22.一种存储器系统,包括:具有多个行的存储器页;以及用于执行所述存储器页的操作的电路,所述电路被配置为:基于干扰采样,基于目标位组的干扰状态限定所述目标位组;确定柱状图和对应阈值;以及估计所述目标位组的读取阈值。23.一种包含处理器可读指令的非暂时性处理器可读介质,使得当由一个或多个处理器执行时,通过以下方式执行使用软信息动态估计存储器页的干扰补偿阈值的方法:基于干扰采样,基于目标位组的干扰状态限定所述目标位组;
确定柱状图和对应阈值;以及估计所述目标位组的读取阈值。
技术总结
本公开涉及非易失性存储器存储装置中动态基元间干扰补偿的系统和方法。一种动态估计存储器页的干扰补偿阈值的方法包括:使用模拟读取阈值对目标行执行模拟读取;对干扰源执行读取操作,并读取干扰源的干扰状态;基于模拟读取阈值和干扰源的干扰状态,计算柱状图和对应阈值;以及基于柱状图,估计用于动态补偿目标行的干扰状态的读取阈值。标行的干扰状态的读取阈值。标行的干扰状态的读取阈值。
技术研发人员:
A
受保护的技术使用者:
铠侠股份有限公司
技术研发日:
2022.08.16
技术公布日:
2023/2/20