一种闪存阈值电压分布的确定方法与流程-k8凯发

文档序号:36560716发布日期:2023-12-30 06:27阅读:19来源:国知局
一种闪存阈值电压分布的确定方法与流程
一种闪存阈值电压分布的确定方法、装置、设备及介质
技术领域
1.本发明涉及存储技术领域,特别涉及一种闪存阈值电压分布的确定方法、装置、设备及介质。


背景技术:

2.3d nand(即not and)一种非易失性存储技术(non-volatile memory,nvm),属于存储器的一种。3d nand的发展趋势是存储容量与密度的不断增长,一方面主要在多阶存储单元技术,在存储单元内划分更多的存储电平以存储更多的比特,从而提升闪存单元存储密度;另一方面,
3d堆叠的层数在不断增加,这都会给存储的可靠性带来挑战。
其中,多阶存储单元由于具有更多的存储状态,导致每个阈值电压窗口在不断缩小,并且更多层数的堆叠使得不同层中出现差异和干扰加剧,随着闪存的使用,数据保持时间(data retention)和擦写(program/erase,pe)次数的增加,读写干扰加剧,层间的干扰更加严重。
这些干扰使得原本的阈值电压发生偏移,从而阈值电压窗口交叉重叠,并且不断变化。
闪存中错误的增加需要更强大的纠错码(error correcting code,即ecc)来保护,然而ecc的设计需要不同情况下的阈值电压分布信息。
具体来说,读参考电压影响读取数据的rber(raw bit error rate,原始比特误码率),对数似然比(log-likelihood-ratio,llr)作为ecc译码器的输入,直接影响译码结果和性能。
使用单一的读参考电压配置和
llr初始配置,会使得数据读取速度误码率升高,译码速度变慢,该现象尤其在闪存的寿命后期情况严重。
3.采用数学模型来标识阈值电压的分布称为拟合过程,阈值电压的分布受数据保持时间、pe次数、读写干扰等多方面的影响。
如图1所示,多种因素共同作用在闪存上使得阈值电压分布出现状态内的不对称性,即左尾和右尾不对称,以及状态间的不对称性,即关于原始读电压轴不对称,这些变化无法直观的量化出来。
传统的技术通常基于测试结果,用高斯分布来拟合实际分布,并进行相关计算配置译码器参数,但没有考虑实际物理因素带来的阈值电压分布的非对称性特性。
可见,确定阈值电压分布的关键在于拟合模型的设置,为了阈值电压模型的精确度,考虑到物理因素导致的肥尾和不对称性,已有的研究工作中结果最好的是采用gamma-拉普拉斯分布及分段的学生-t分布,但这两种分布均采用了分段的思想,位置参数多,计算复杂度过高。
4.综上,如何有效拟合闪存实际中的阈值电压,以提高阈值电压拟合模型的精确度,并减少数据测量规模和降低计算复杂度是目前有待解决的问题。


技术实现要素:

5.有鉴于此,本发明的目的在于提供一种闪存阈值电压分布的确定方法、装置、设备及介质,能够有效拟合闪存实际中的阈值电压,以提高阈值电压拟合模型的精确度,并减少数据测量规模和降低计算复杂度。
其具体方案如下:
6.第一方面,本技术公开了一种闪存阈值电压分布的确定方法,包括:
7.针对闪存中电压轴的每一参考电压,按照预设区间偏移步长在所述参考电压的左
右两侧逐步执行区间偏移操作,并在每次执行完所述区间偏移操作后计算相应偏移区间对应的曲线斜率;
8.在所述曲线斜率满足预设斜率阈值时停止执行对应侧的区间偏移操作,并在左右两侧均停止执行所述区间偏移操作后,基于左右两侧当前距离所述参考电压最远的目标偏移区间确定左侧截断点和右侧截断点;
9.计算所述左侧截断点和所述右侧截断点之间各偏移区间对应的数据写入概率,并基于预设拟合分布函数获取与各所述偏移区间对应的数据分布概率;
10.在基于所述左侧截断点和所述右侧截断点确定的拟合范围内,利用预设距离函数、所述数据写入概率和所述数据分布概率计算对应的目标距离,并在所述目标距离取得最小值时输出闪存阈值电压分布的拟合模型。
11.可选的,所述在每次执行完所述区间偏移操作后计算相应偏移区间对应的曲线斜率,包括:
12.在每次执行完所述区间偏移操作后统计当前偏移区间中读取结果为1的存储单元个数;所述存储单元个数包括写入0读取1的第一存储单元个数和写入1读取1的第二存储单元个数;
13.基于所述第一存储单元个数计算所述当前偏移区间内的第一曲线斜率,并基于所述第二存储单元个数计算所述当前偏移区间内的第二曲线斜率;
14.将所述第一曲线斜率和所述第二曲线斜率中的最大值确定为与所述当前偏移区间对应的曲线斜率。
15.可选的,所述统计当前偏移区间中读取结果为1的存储单元个数,包括:
16.测量所述参考电压到所述当前偏移区间内所有读取结果为1的存储单元的第一总数,并获取上一次测量得到的所述参考电压到上一偏移区间内所有读取结果为1的存储单元的第二总数;
17.将所述第一总数与所述第二总数的差值作为当前偏移区间中读取结果为1的存储单元个数。
18.可选的,所述数据写入概率包括写入数据0的第一写入概率和写入数据1的第二写入概率;
19.相应的,所述计算所述左侧截断点和所述右侧截断点之间各偏移区间对应的数据写入概率,包括:
20.统计所述左侧截断点和所述右侧截断点之间的所有偏移区间中读取结果为1的存储单元总数;所述存储单元总数包括写入0读取1的第一存储单元总数和写入1读取1的第二存储单元总数;
21.确定每一偏移区间中的所述第一存储单元个数与所述第一存储单元总数的第一比值,并将所述第一比值确定为所述偏移区间写入数据0的第一写入概率;
22.确定每一偏移区间中的所述第二存储单元个数与所述第二存储单元总数的第二比值,并将所述第二比值确定为所述偏移区间写入数据1的第二写入概率。
23.可选的,所述第一写入概率的计算表达式为:
24.25.其中,p0[bin[
±j]]为偏移区间bin[
±j]中写入数据0的第一写入概率,cnt0bin[
±j]为偏移区间bin[
±j]中的第一存储单元个数,
∑jcnt0bin[
±j]为所有偏移区间的第一存储单元总数;j表示偏移次数;
[0026]所述第二写入概率的计算表达式为:
[0027][0028]其中,p1[bin[
±j]]为偏移区间bin[
±j]中写入数据1的第二写入概率,cnt1bin[
±j]为偏移区间bin[
±j]中的第二存储单元个数,
∑jcnt1bin[
±j]为所有偏移区间的第二存储单元总数;j表示偏移次数。
[0029]可选的,所述在所述曲线斜率满足预设斜率阈值时停止执行对应侧的区间偏移操作,包括:
[0030]获取预设斜率阈值,并在所述曲线斜率小于所述预设斜率阈值时,停止对应侧的区间偏移操作;其中,若左右两侧中存在任意一侧的曲线斜率小于所述预设斜率阈值,则停止执行该侧的区间偏移操作,并继续执行另一侧区间偏移操作。
[0031]可选的,所述预设拟合分布函数为学生t分布函数;
[0032]相应的,所述基于预设拟合分布函数获取与各所述偏移区间对应的数据分布概率,包括:
[0033]获取预先存储的与所述学生t分布函数对应的分布函数表;
[0034]从所述分布函数表中获取与各所述偏移区间对应的数据分布概率。
[0035]可选的,所述在所述目标距离取得最小值时输出闪存阈值电压分布的拟合模型之后,还包括:
[0036]基于所述闪存阈值电压分布的拟合模型确定读取操作的目标电压轴;所述目标电压轴用于控制读取数据的原始比特误码率为最小值;
[0037]基于所述闪存阈值电压分布的拟合模型确定软判决译码中参考电压的偏移电压轴;所述偏移电压轴包括左偏移电压轴和右偏移电压轴;
[0038]基于所述闪存阈值电压分布的拟合模型、所述目标电压轴、所述偏移电压轴确定所述软判决译码的对数似然比表;所述对数似然比表用于记录每个目标区间的对数似然比,所述目标区间为基于所述目标电压轴和所述偏移电压轴划分的区间;
[0039]将所述目标电压轴、所述偏移电压轴和所述对数似然比表发送至固态硬盘中的主控芯片,以便所述主控芯片对所述固态硬盘中与读取操作对应的当前配置参数进行修正;
[0040]其中,所述当前配置参数包括读取操作的当前电压轴以及所述软判决译码的当前偏移电压轴和当前对数似然比表。
[0041]第二方面,本技术公开了一种闪存阈值电压分布的确定装置,包括:
[0042]区间偏移模块,用于针对闪存中电压轴的每一参考电压,按照预设区间偏移步长在所述参考电压的左右两侧逐步执行区间偏移操作;
[0043]曲线斜率计算模块,用于在每次执行完所述区间偏移操作后计算相应偏移区间对应的曲线斜率;
[0044]截断点确定模块,用于在所述曲线斜率满足预设斜率阈值时停止执行对应侧的区间偏移操作,并在左右两侧均停止执行所述区间偏移操作后,基于左右两侧当前距离所述
参考电压最远的目标偏移区间确定左侧截断点和右侧截断点;
[0045]概率获取模块,用于计算所述左侧截断点和所述右侧截断点之间各偏移区间对应的数据写入概率,并基于预设拟合分布函数获取与各所述偏移区间对应的数据分布概率;
[0046]距离计算模块,用于在基于所述左侧截断点和所述右侧截断点确定的拟合范围内,利用预设距离函数、所述数据写入概率和所述数据分布概率计算对应的目标距离,并在所述目标距离取得最小值时输出闪存阈值电压分布的拟合模型。
[0047]第三方面,本技术公开了一种电子设备,包括:
[0048]存储器,用于保存计算机程序;
[0049]处理器,用于执行所述计算机程序,以实现前述公开的闪存阈值电压分布的确定方法的步骤。
[0050]第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的闪存阈值电压分布的确定方法的步骤。
[0051]可见,本技术针对闪存中电压轴的每一参考电压,按照预设区间偏移步长在所述参考电压的左右两侧逐步执行区间偏移操作,并在每次执行完所述区间偏移操作后计算相应偏移区间对应的曲线斜率;在所述曲线斜率满足预设斜率阈值时停止执行对应侧的区间偏移操作,并在左右两侧均停止执行所述区间偏移操作后,基于左右两侧当前距离所述参考电压最远的目标偏移区间确定左侧截断点和右侧截断点;计算所述左侧截断点和所述右侧截断点之间各偏移区间对应的数据写入概率,并基于预设拟合分布函数获取与各所述偏移区间对应的数据分布概率;在基于所述左侧截断点和所述右侧截断点确定的拟合范围内,利用预设距离函数、所述数据写入概率和所述数据分布概率计算对应的目标距离,并在所述目标距离取得最小值时输出闪存阈值电压分布的拟合模型。
[0052]由此可见,本技术针对闪存中电压轴的每一个参考电压,按照预设区间偏移步长在参考电压的左右两侧逐步执行区间偏移操作,并且每执行完一次区间偏移操作后都会计算相应偏移区间对应的曲线斜率,一旦曲线斜率满足预设斜率阈值就会停止该侧的区间偏移,因此从而得到该侧的截断点,由于每执行一次区间偏移,对应的偏移区间则距离参考电压的位置会更远,因此该侧截断点是基于该侧距离参考电压最远的目标偏移区间所确定的,那么当左右两侧均停止区间偏移操作后,则得到对应的左侧截断点和右侧截断点。
进一步的,计算左侧截断点和右侧截断点之间各偏移区间对应的数据写入概率,并基于预设拟合分布函数获取与各偏移区间对应的数据分布概率,最后在基于左侧截断点和右侧截断点确定的拟合范围内,利用预设距离函数、数据写入概率和数据分布概率计算对应的目标距离,并在目标距离取得最小值时输出闪存阈值电压分布的拟合模型。
也即本技术在模型拟合过程中,不再考虑整体的阈值电压分布特性,仅考虑对实际结果影响大的尾部,即左侧截断点与右侧截断点之间的范围,考虑到受物理因素影响带来的不对称性,左右尾部存在非对称性,单一模型无法完全拟合,为了保持低复杂度,仅考虑拟合靠近参考电压一侧的尾部,即左侧阈值电压分布的右尾和右侧阈值电压分布的左尾,由于仅拟合整体分布的单尾,无需对所有区间的数据进行测量,使得测试数据量大大减少,拟合过程中的计算复杂度也大大降低。
此外,上述方案通过采用区间曲线斜率确定单边尾部的截断点的策略,能够对阈值电压分布的单边尾部进行拟合,从而精确的获得参考电压左右两侧的分布特性。
因此,本方案能够有效拟合闪存实际中的阈值电压,提高了阈值电压拟合模型的精确度。
附图说明
[0053]为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0054]图1为本技术公开的一种干扰造成阈值电压分布不对称的示意图;
[0055]图2为本技术公开的一种闪存阈值电压分布的确定方法流程图;
[0056]图3为本技术公开的一种具体的闪存阈值电压分布的确定方法流程图;
[0057]图4为本技术公开的一种具体的nand闪存阈值电压数据测试流程图;
[0058]图5为本技术公开的一种阈值电压分布偏移区间示意图;
[0059]图6为本技术公开的一种具体的拟合结果图;
[0060]图7为本技术公开的一种闪存阈值电压分布的确定装置结构示意图;
[0061]图8为本技术公开的一种电子设备结构图。
具体实施方式
[0062]下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0063]采用数学模型来标识阈值电压的分布称为拟合过程,阈值电压的分布受数据保持时间、pe次数、读写干扰等多方面的影响。
传统的技术通常基于测试结果,用高斯分布来拟合实际分布,并进行相关计算配置译码器参数,但没有考虑实际物理因素带来的阈值电压分布的非对称性特性。
可见,确定阈值电压分布的关键在于拟合模型的设置,为了阈值电压模型的精确度,考虑到物理因素导致的肥尾和不对称性,已有的研究工作中结果最好的是采用gamma-拉普拉斯分布及分段的学生-t分布,但这两种分布均采用了分段的思想,位置参数多,计算复杂度过高。
为此,本技术实施例公开了一种闪存阈值电压分布的确定方法、装置、设备及介质,能够有效拟合闪存实际中的阈值电压,以提高阈值电压拟合模型的精确度,并减少数据测量规模和降低计算复杂度。
[0064]参见图2所示,本技术实施例公开了一种闪存阈值电压分布的确定方法,该方法包括:
[0065]步骤s11:针对闪存中电压轴的每一参考电压,按照预设区间偏移步长在所述参考电压的左右两侧逐步执行区间偏移操作,并在每次执行完所述区间偏移操作后计算相应偏移区间对应的曲线斜率。
[0066]本实施例中,针对闪存中电压轴的每一参考电压rli,
1≤i≤7,分别按照预设区间偏移步长
δv向左右两侧逐步进行区间偏移操作,并且每执行完一次区间偏移操作后都会计算相应偏移区间对应的曲线斜率。
其中,
δv和rli一般由nand厂商给定。
[0067]步骤s12:在所述曲线斜率满足预设斜率阈值时停止执行对应侧的区间偏移操作,并在左右两侧均停止执行所述区间偏移操作后,基于左右两侧当前距离所述参考电压最远的目标偏移区间确定左侧截断点和右侧截断点。
[0068]本实施例中,一旦曲线斜率满足预设斜率阈值就会停止该侧的区间偏移操作,因此从而得到该侧的截断点,由于每执行一次区间偏移,对应的偏移区间则距离参考电压的位置会更远,因此该侧截断点是基于该侧距离参考电压最远的目标偏移区间所确定的,那么当左右两侧均停止区间偏移操作后,则得到对应的左侧截断点和右侧截断点。
[0069]进一步的,上述在所述曲线斜率满足预设斜率阈值时停止执行对应侧的区间偏移操作,包括:获取预设斜率阈值,并在所述曲线斜率小于所述预设斜率阈值时,停止对应侧的区间偏移操作;其中,若左右两侧中存在任意一侧的曲线斜率小于所述预设斜率阈值,则停止执行该侧的区间偏移操作,并继续执行另一侧区间偏移操作。
也即,在曲线斜率小于预设斜率阈值时,停止对应侧的区间偏移操作,而另一侧若不满足曲线斜率小于预设斜率阈值这个条件,则继续执行区间偏移操作。
也就是说,参考电压两侧的截断点不要求对称,哪一测的曲线斜率满足小于预设斜率阈值这个要求,则该侧区间偏移操作停止,另一侧继续进行,直到两侧的斜率都满足阈值要求,则停止所有的数据测量。
然后基于左右两侧当前距离参考电压最远的目标偏移区间确定左侧截断点和右侧截断点。
[0070]步骤s13:计算所述左侧截断点和所述右侧截断点之间各偏移区间对应的数据写入概率,并基于预设拟合分布函数获取与各所述偏移区间对应的数据分布概率。
[0071]本实施例中,计算左侧截断点和右侧截断点之间各偏移区间对应的数据写入概率,并基于预设拟合分布函数获取与各偏移区间对应的数据分布概率。
[0072]在具体实施方式中,上述预设拟合分布函数为学生t分布函数;相应的,所述基于预设拟合分布函数获取与各所述偏移区间对应的数据分布概率,包括:获取预先存储的与所述学生t分布函数对应的分布函数表;从所述分布函数表中获取与各所述偏移区间对应的数据分布概率。
可以理解的是,由于nand闪存在使用中由于不同物理因素的影响,阈值电压的分布会出现平移和展宽的现象,拖尾会带来肥尾的现象,使用高斯分布无法高效的拟合这种现象,而学生t(即student-t)分布具有对称、肥尾的特性,相比高斯分布额外使用自由度参数n来控制尾部的扩展,可以很好的拟合肥尾现象。
因此,本技术实施例选择student-t分布作为基础分布。student-t分布同高斯分布类似,计算简单,分布概率可以通过预先存储分布函数表,通过查表直接获得。
[0073]步骤s14:在基于所述左侧截断点和所述右侧截断点确定的拟合范围内,利用预设距离函数、所述数据写入概率和所述数据分布概率计算对应的目标距离,并在所述目标距离取得最小值时输出闪存阈值电压分布的拟合模型。
[0074]本实施例中,在基于左侧截断点和右侧截断点确定的拟合范围内,利用预设距离函数、数据写入概率和数据分布概率计算对应的目标距离,并在目标距离取得最小值时输出闪存阈值电压分布的拟合模型。
[0075]进一步的,上述在所述目标距离取得最小值时输出闪存阈值电压分布的拟合模型之后,还包括:基于所述闪存阈值电压分布的拟合模型确定读取操作的目标电压轴;所述目标电压轴用于控制读取数据的原始比特误码率为最小值;基于所述闪存阈值电压分布的拟合模型确定软判决译码中参考电压的偏移电压轴;所述偏移电压轴包括左偏移电压轴和右偏移电压轴;基于所述闪存阈值电压分布的拟合模型、所述目标电压轴、所述偏移电压轴确定所述软判决译码的对数似然比表;所述对数似然比表用于记录每个目标区间的对数似然比,所述目标区间为基于所述目标电压轴和所述偏移电压轴划分的区间;将所述目标电压
轴、所述偏移电压轴和所述对数似然比表发送至固态硬盘中的主控芯片,以便所述主控芯片对所述固态硬盘中与读取操作对应的当前配置参数进行修正;其中,所述当前配置参数包括读取操作的当前电压轴以及所述软判决译码的当前偏移电压轴和当前对数似然比表。
本实施例中,基于闪存阈值电压分布的拟合模型,可以计算用于控制读取数据的原始比特误码率为最小值的目标电压轴、软判决译码中参考电压的偏移电压轴以及对应的对数似然比表,再用计算出的这些结果更新固态硬盘(solid state disk,
即ssd)中相应配置,可以有效提升读取操作的正确性和ecc的纠错能力。
[0076]具体的,根据拟合模型更新读取操作的目标电压轴:目标电压轴是使得读取的rber最小的读电压,用转移概率p(0|1)表示写入1读取为0的概率,p(1|0)表示写入0读取为1的概率,则:
[0077]rber(vth)=p(0|1) p(1|0)=p0(x《vth) p1(x》vth)[0078]=f0(vth) (1-f1(vth));
[0079]其中,vth表示电压轴,因此,目标电压轴vthopt=argminvth(rber(vth))。
[0080]进一步的,根据拟合模型更新软判决译码中参考电压的偏移电压轴,设置软判决译码中rli的左右偏移电压轴分别为sbl
=rli-δ
li,sbr=rli
δri,sbl
和sbr分别由下式确定:
[0081]p(x《sbl)=f0(sbl)=threrr;
[0082]p(x》sbr)=
1-f1(sbr)=threrr。
[0083]利用查表法确定sbl
和sbr,从而确定rli在软判决译码中的所需要的左右偏移参考电压
δ
li和
δri。
一般ssd设置在错误概率小于
1e-4的情况下进入软判决译码,因此threrr建议设置为
1e-5,该参数可以根据实际需求进行调整。
[0084]然后基于目标电压轴vthopt及偏移电压轴sbl
和sbr,以及获取的拟合模型,可以计算软判决译码中使用的
llr表。llr值表示每个区间的对数似然比,这里的区间表示的是由vthopt、sbl
和sbr划分的区间。
举例来说,区间
[sbl,vthopt]的
llr值可以通过下式计算:
[0085][0086]最后利用目标电压轴、偏移电压轴和对数似然比表对固态硬盘中与读取操作对应的当前配置参数进行修正。
另外,需要指出的是,修正处理操作可以设置在主机中或者ssd的主控芯片中,可在ssd空闲时触发。
[0087]由此可见,本技术针对闪存中电压轴的每一个参考电压,按照预设区间偏移步长在参考电压的左右两侧逐步执行区间偏移操作,并且每执行完一次区间偏移操作后都会计算相应偏移区间对应的曲线斜率,一旦曲线斜率满足预设斜率阈值就会停止该侧的区间偏移,因此从而得到该侧的截断点,由于每执行一次区间偏移,对应的偏移区间则距离参考电压的位置会更远,因此该侧截断点是基于该侧距离参考电压最远的目标偏移区间所确定的,那么当左右两侧均停止区间偏移操作后,则得到对应的左侧截断点和右侧截断点。
进一步的,计算左侧截断点和右侧截断点之间各偏移区间对应的数据写入概率,并基于预设拟合分布函数获取与各偏移区间对应的数据分布概率,最后在基于左侧截断点和右侧截断点确定的拟合范围内,利用预设距离函数、数据写入概率和数据分布概率计算对应的目标距
离,并在目标距离取得最小值时输出闪存阈值电压分布的拟合模型。
也即本技术在模型拟合过程中,不再考虑整体的阈值电压分布特性,仅考虑对实际结果影响大的尾部,即左侧截断点与右侧截断点之间的范围,考虑到受物理因素影响带来的不对称性,左右尾部存在非对称性,单一模型无法完全拟合,为了保持低复杂度,仅考虑拟合靠近参考电压一侧的尾部,即左侧阈值电压分布的右尾和右侧阈值电压分布的左尾,由于仅拟合整体分布的单尾,无需对所有区间的数据进行测量,使得测试数据量大大减少,拟合过程中的计算复杂度也大大降低。
此外,上述方案通过采用区间曲线斜率确定单边尾部的截断点的策略,能够对阈值电压分布的单边尾部进行拟合,从而精确的获得参考电压左右两侧的分布特性。
因此,本方案能够有效拟合闪存实际中的阈值电压,提高了阈值电压拟合模型的精确度。
[0088]参见图3所示,本技术实施例公开了一种具体的闪存阈值电压分布的确定方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
具体包括:
[0089]步骤s21:针对闪存中电压轴的每一参考电压,按照预设区间偏移步长在所述参考电压的左右两侧逐步执行区间偏移操作,并在每次执行完所述区间偏移操作后,统计当前偏移区间中读取结果为1的存储单元个数;所述存储单元个数包括写入0读取1的第一存储单元个数和写入1读取1的第二存储单元个数。
[0090]本实施例中,按照预设区间偏移步长在参考电压的左右两侧逐步执行区间偏移操作,并在每次执行完区间偏移操作后,统计当前偏移区间中读取结果为1的存储单元个数。
存储单元个数包括在rli的读电压下,写入0读取1的第一存储单元个数cnt0rli和写入1读取1的第二存储单元个数cnt1rli。
需要指出的是,对于nand闪存写入1,就是控制充电,使得存储的电荷够多,超过电压阈值,就表示
1。
而对于写入0,就是将其放电,电荷降低到小于阈值,就表示
0。
在具体的区间偏移操作中,预设区间偏移步长为
δv,左右两侧进行第一次区间偏移操作后,得到偏移区间(rli-δv,rli)和(rli,rli
δv),分别记录电压轴变化后的cnt0rli-δv、cnt1rli-δv和cnt0rli
δv、cnt1rli
δv的值。
并记(rli-δv,rli)为bin[-1],(rli,rli
δv)区间为bin[ 1]。
随后以
δv为步长进行多次电压偏移进行统计,如偏移j次后,有bin[-j]和bin[j],分别对应区间(rli-j×
δv,rli)和(rli j×
δv,rli)。
[0091]在具体实施方式中,上述统计当前偏移区间中读取结果为1的存储单元个数,包括:测量所述参考电压到所述当前偏移区间内所有读取结果为1的存储单元的第一总数,并获取上一次测量得到的所述参考电压到上一偏移区间内所有读取结果为1的存储单元的第二总数;将所述第一总数与所述第二总数的差值作为当前偏移区间中读取结果为1的存储单元个数。
也即,在统计当前第j个偏移区间中读取结果为1的存储单元个数时,需要先测量参考电压到当前偏移区间内所有读取结果为1的存储单元的第一总数,以及获取上一次测量得到的参考电压到上一偏移区间内所有读取结果为1的存储单元的第二总数,第一总数与第二总数之间的差值则为当前偏移区间中读取结果为1的存储单元个数。
具体公式如下:
[0092]cnt0bin[
±j]=
|cnt0rli±j×
δv-cnt0rli±(j-1)×
δv|

[0093]cnt1bin[
±j]=
|cnt1rli±j×
δv-cnt1rli±(j-1)×
δv|。
[0094]其中,cnt1bin[
±j]和cnt1bin[
±j]分别为当前偏移区间bin[-j]和bin[j]写入0读取1的存储单元个数和写入1读取1的存储单元个数;cnt0rli±j×
δv和cnt1rli±j×
δv的和值为参考电压到当前偏移区间内所有读取结果为1的存储单元的总数,cnt0rli±(j-1)×
δv和cnt1rli±(j-1)×
δv的和值为参考电压到上一偏移区间内所有读取结果为1的存储单元的总数。
[0095]步骤s22:基于所述第一存储单元个数计算所述当前偏移区间内的第一曲线斜率,并基于所述第二存储单元个数计算所述当前偏移区间内的第二曲线斜率。
[0096]本实施例中,基于第一存储单元个数计算当前偏移区间内的第一曲线斜率k0,并基于第二存储单元个数计算当前偏移区间内的第二曲线斜率k1。
斜率绝对值的计算公式如下:
[0097][0098][0099]其中,cnt0bin[
±(j 1)]和cnt1bin[
±(j 1)]分别表示偏移区间bin[
±(j 1)]中写入0读取1,和写入1读取1的存储单元个数,cnt0bin[
±j]和cnt1bin[
±j]分别表示当前偏移区间bin[
±j]中的第一存储单元个数和第二存储单元个数。
[0100]也即,本实施例将每个区间的斜率定义为相邻两个区间测量数据的变化率,具体nand闪存阈值电压数据测试流程如图4中所示,为了简化说明,流程图中用cnt0(j)和cnt1(j)分别表示cnt0rli±j×
δv和cnt1rli±j×
δv。
[0101]步骤s23:将所述第一曲线斜率和所述第二曲线斜率中的最大值确定为与所述当前偏移区间对应的曲线斜率。
[0102]本实施例中,将第一曲线斜率和所述第二曲线斜率中的最大值确定为与所述当前偏移区间对应的曲线斜率k,公式如下:
[0103]k[bin[
±j]]=max{k0,k1}。
[0104]步骤s24:在所述曲线斜率满足预设斜率阈值时停止执行对应侧的区间偏移操作,并在左右两侧均停止执行所述区间偏移操作后,基于左右两侧当前距离所述参考电压最远的目标偏移区间确定左侧截断点和右侧截断点。
[0105]本实施例中,预设斜率阈值记为
α,若曲线斜率小于预设斜率阈值,则停止执行对应侧的区间偏移操作,并记当前偏移区间为截断点。
在左右两侧均停止执行区间偏移操作后,分别记录电压轴vth左右两侧分布的截断点为bin[-j]=a,bin[ j]=b,需要指出的是,预设斜率阈值设置越小,截断点越接近峰值点。
也即,本实施例设置了斜率的阈值,当斜率小于设定的阈值时,则达到该截断点,阈值电压分布的拟合就在两个截断点之间进行。
[0106]本实施例中的截断点a和b利用曲线斜率进行计算。
曲线斜率的绝对值从读电压vth处向两侧呈现递减的趋势,在峰值点达到
0。
设置曲线斜率小于预设值
α
时为截断点,斜率的计算可以由区间的统计的存储单元个数的变化率确定。
以tlc(triple-level cell,三阶存储单元)中7个读参考电压为例:对于每个参考电压rli,
1≤i≤7,进行区间偏移,每个电压区间大小为
δv,阈值电压分布偏移区间示意图如图5所示。
[0107]步骤s25:计算所述左侧截断点和所述右侧截断点之间各偏移区间对应的数据写入概率,并基于预设拟合分布函数获取与各所述偏移区间对应的数据分布概率。
[0108]本实施例中,上述数据写入概率包括写入数据0的第一写入概率和写入数据1的第二写入概率;相应的,所述计算所述左侧截断点和所述右侧截断点之间各偏移区间对应的数据写入概率,包括:统计所述左侧截断点和所述右侧截断点之间的所有偏移区间中读取
结果为1的存储单元总数;所述存储单元总数包括写入0读取1的第一存储单元总数和写入1读取1的第二存储单元总数;确定每一偏移区间中的所述第一存储单元个数与所述第一存储单元总数的第一比值,并将所述第一比值确定为所述偏移区间写入数据0的第一写入概率;确定每一偏移区间中的所述第二存储单元个数与所述第二存储单元总数的第二比值,并将所述第二比值确定为所述偏移区间写入数据1的第二写入概率。
也即,数据写入概率包括写入数据0的第一写入概率p0
和写入数据1的第二写入概率p1,本实施例首先通过统计左侧截断点和右侧截断点之间的所有偏移区间中读取结果为1的存储单元总数,即写入0读取1的第一存储单元总数和写入1读取1的第二存储单元总数,每一偏移区间中的第一存储单元个数与第一存储单元总数的第一比值则为偏移区间写入数据0的第一写入概率,每一偏移区间中的第二存储单元个数与第二存储单元总数的第二比值则为偏移区间写入数据1的第二写入概率。
具体公式如下:
[0109]第一写入概率的计算表达式为:
[0110][0111]其中,p0[bin[
±j]]为偏移区间bin[
±j]中写入数据0的第一写入概率,cnt0bin[
±j]为偏移区间bin[
±j]中的第一存储单元个数,
∑jcnt0bin[
±j]为所有偏移区间的第一存储单元总数;j表示偏移次数;
[0112]第二写入概率的计算表达式为:
[0113][0114]其中,p1[bin[
±j]]为偏移区间bin[
±j]中写入数据1的第二写入概率,cnt1bin[
±j]为偏移区间bin[
±j]中的第二存储单元个数,
∑jcnt1bin[
±j]为所有偏移区间的第二存储单元总数;j表示偏移次数。
[0115]步骤s26:在基于所述左侧截断点和所述右侧截断点确定的拟合范围内,利用预设距离函数、所述数据写入概率和所述数据分布概率计算对应的目标距离,并在所述目标距离取得最小值时输出闪存阈值电压分布的拟合模型。
[0116]本实施例中,阈值电压分布在后续计算应用中主要使用到原始读电压轴附近的重叠区域来估计变化后的目标电压轴、rber、llr等计算,因此对于所有的测量的区间,靠近原始读电压轴附近的模型精确度直接影响计算结果,阈值电压峰值区域几乎不影响读写错误。
目前的研究方案都依据kl
散度(kullback-leibler divergence)进行计算,kl
散度表征了两个概率分布的相似性,公式如下:
[0117][0118]其中,q(xj)表示该分布在xj的概率,即q(xj)=p(x=xj),相应的有两个分布q0
和q1。xj对应了统计中的每个bin[
±j]。
拟合分布就是通过算法查找合适的q分布使得上述kl_dev(p,q)的值最小;
[0119]但由于概率的存在,阈值电压分布中心峰顶的分布在整个距离函数中占更大的比
重,具体来说,在公式中,对于任意标识了两个分布之间的距离,p(xj)相当于权重,越靠近分布中心峰值点,概率越大,在kl
散度中的权重越大,这和实际需求不相符。
[0120]因此本实施例首先修正模型,具体来说,如图5所示,左侧阈值电压分布的右尾,和右侧阈值电压分布的左尾的拟合精确度对于后续计算中影响更大,实际过程中可以仅考虑这两部分的拟合。
在此基础上,由于仅拟合整体分布的单尾,无需对所有区间的数据进行测量,测试数据量大大减少。
[0121]在此基础上,选择新的距离函数。
定义预设距离函数:
[0122][0123](minbnd,maxbnd)表示拟合范围,其中,minbnd=a,maxbnd=b。
[0124]进一步的,本技术实施例设置两个初始的student-t分布,其分布函数可以用f0
和f1来表示。
对于每个区间的bin[
±j],利用两个分布函数,通过查表法可以计算出在该区间的概率q0[bin[
±j]]和q1[bin[
±j]]。
因此可以利用预设距离函数公式计算出两个距离dev(p0,q0)和dev(p1,q1)。
对两个student-t分布不断调整的参数,使得距离函数dev(p0,q0)和dev(p1,q1)分别达到最小,即获得了最终闪存阈值电压分布的拟合模型。
[0125]为了说明本发明中提出的方案的有效性,以tlc中rl3(c read)和rl4(d read)为例,对同组测量数据进行拟合分析,图6给出了拟合结果图。
左侧曲线表示分段student-t方案中全局优化的结果,右侧曲线表示本发明中采用的修正模型的拟合结果,斜率阈值选择选择了
α

0.1。
从图中可以看出,本发明提出的方案针对读电压附近的结果拟合有效,精确度更高,在后续计算中更准确。
且需要测量数据量小,计算复杂度低。
[0126]可见,本技术提出的方案可以有效的拟合闪存实际中的阈值电压分布,通过放弃部分数据的分布特性,仅拟合单边尾部的方式,可以极大程度的减少数据测量规模和计算的复杂度,并且放弃的该部分数据分布不参与后续的一般计算中,因此保持了在nand闪存中应用的有效性。
并且本技术基于该简化操作重新设计了距离函数,该函数的设置消除了一般拟合方案中采用kl-散度作为拟合函数的峰值高权重特性,以使得阈值电压分布的拟合模型结果更符合nand闪存中相关计算精确度的需求。
另外,本技术采用区间斜率进行判定的单边尾部的截断点的确定策略,该方案使得需要测试的数据量大大减小,拟合过程的计算复杂度降低,且实际参与后续计算的单边尾部拟合精度增强。
进一步的,本技术可以利用拟合模型更新nand闪存读取中的关键读操作的参考电压和
llr配置,对于nand生命后期,有效的降低读操作出错的概率,精确的
llr配置可以有效提高ecc的能力,延长nand使用寿命。
[0127]参见图7所示,本技术实施例公开了一种闪存阈值电压分布的确定装置,该装置包括:
[0128]区间偏移模块
11,用于针对闪存中电压轴的每一参考电压,按照预设区间偏移步长在所述参考电压的左右两侧逐步执行区间偏移操作;
[0129]曲线斜率计算模块
12,用于在每次执行完所述区间偏移操作后计算相应偏移区间对应的曲线斜率;
[0130]截断点确定模块
13,用于在所述曲线斜率满足预设斜率阈值时停止执行对应侧的区间偏移操作,并在左右两侧均停止执行所述区间偏移操作后,基于左右两侧当前距离所述参考电压最远的目标偏移区间确定左侧截断点和右侧截断点;
[0131]概率获取模块
14,用于计算所述左侧截断点和所述右侧截断点之间各偏移区间对应的数据写入概率,并基于预设拟合分布函数获取与各所述偏移区间对应的数据分布概率;
[0132]距离计算模块
15,用于在基于所述左侧截断点和所述右侧截断点确定的拟合范围内,利用预设距离函数、所述数据写入概率和所述数据分布概率计算对应的目标距离,并在所述目标距离取得最小值时输出闪存阈值电压分布的拟合模型。
[0133]由此可见,本技术针对闪存中电压轴的每一个参考电压,按照预设区间偏移步长在参考电压的左右两侧逐步执行区间偏移操作,并且每执行完一次区间偏移操作后都会计算相应偏移区间对应的曲线斜率,一旦曲线斜率满足预设斜率阈值就会停止该侧的区间偏移,因此从而得到该侧的截断点,由于每执行一次区间偏移,对应的偏移区间则距离参考电压的位置会更远,因此该侧截断点是基于该侧距离参考电压最远的目标偏移区间所确定的,那么当左右两侧均停止区间偏移操作后,则得到对应的左侧截断点和右侧截断点。
进一步的,计算左侧截断点和右侧截断点之间各偏移区间对应的数据写入概率,并基于预设拟合分布函数获取与各偏移区间对应的数据分布概率,最后在基于左侧截断点和右侧截断点确定的拟合范围内,利用预设距离函数、数据写入概率和数据分布概率计算对应的目标距离,并在目标距离取得最小值时输出闪存阈值电压分布的拟合模型。
也即本技术在模型拟合过程中,不再考虑整体的阈值电压分布特性,仅考虑对实际结果影响大的尾部,即左侧截断点与右侧截断点之间的范围,考虑到受物理因素影响带来的不对称性,左右尾部存在非对称性,单一模型无法完全拟合,为了保持低复杂度,仅考虑拟合靠近参考电压一侧的尾部,即左侧阈值电压分布的右尾和右侧阈值电压分布的左尾,由于仅拟合整体分布的单尾,无需对所有区间的数据进行测量,使得测试数据量大大减少,拟合过程中的计算复杂度也大大降低。
此外,上述方案通过采用区间曲线斜率确定单边尾部的截断点的策略,能够对阈值电压分布的单边尾部进行拟合,从而精确的获得参考电压左右两侧的分布特性。
因此,本方案能够有效拟合闪存实际中的阈值电压,提高了阈值电压拟合模型的精确度。
[0134]在一些具体实施例中,所述曲线斜率计算模块
12,具体包括:
[0135]第一统计单元,在每次执行完所述区间偏移操作后用于统计当前偏移区间中读取结果为1的存储单元个数;所述存储单元个数包括写入0读取1的第一存储单元个数和写入1读取1的第二存储单元个数;
[0136]计算单元,用于基于所述第一存储单元个数计算所述当前偏移区间内的第一曲线斜率,并基于所述第二存储单元个数计算所述当前偏移区间内的第二曲线斜率;
[0137]确定单元,用于将所述第一曲线斜率和所述第二曲线斜率中的最大值确定为与所述当前偏移区间对应的曲线斜率。
[0138]在一些具体实施例中,所述第一统计单元,具体可以包括:
[0139]测量单元,用于测量所述参考电压到所述当前偏移区间内所有读取结果为1的存储单元的第一总数,并获取上一次测量得到的所述参考电压到上一偏移区间内所有读取结果为1的存储单元的第二总数;
[0140]差值计算单元,用于将所述第一总数与所述第二总数的差值作为当前偏移区间中读取结果为1的存储单元个数。
[0141]在一些具体实施例中,所述数据写入概率包括写入数据0的第一写入概率和写入数据1的第二写入概率;
[0142]相应的,所述概率获取模块
14,具体可以包括:
[0143]第二统计单元,用于统计所述左侧截断点和所述右侧截断点之间的所有偏移区间中读取结果为1的存储单元总数;所述存储单元总数包括写入0读取1的第一存储单元总数和写入1读取1的第二存储单元总数;
[0144]第一比值计算单元,用于确定每一偏移区间中的所述第一存储单元个数与所述第一存储单元总数的第一比值,并将所述第一比值确定为所述偏移区间写入数据0的第一写入概率;
[0145]第二比值计算单元,确定每一偏移区间中的所述第二存储单元个数与所述第二存储单元总数的第二比值,并将所述第二比值确定为所述偏移区间写入数据1的第二写入概率。
[0146]在一些具体实施例中,所述第一写入概率的计算表达式为:
[0147][0148]其中,p0[bin[
±j]]为偏移区间bin[
±j]中写入数据0的第一写入概率,cnt0bin[
±j]为偏移区间bin[
±j]中的第一存储单元个数,
∑jcnt0bin[
±j]为所有偏移区间的第一存储单元总数;j表示偏移次数;
[0149]所述第二写入概率的计算表达式为:
[0150][0151]其中,p1[bin[
±j]]为偏移区间bin[
±j]中写入数据1的第二写入概率,cnt1bin[
±j]为偏移区间bin[
±j]中的第二存储单元个数,
∑jcnt1bin[
±j]为所有偏移区间的第二存储单元总数;j表示偏移次数。
[0152]在一些具体实施例中,所述截断点确定模块
13,具体可以用于获取预设斜率阈值,并在所述曲线斜率小于所述预设斜率阈值时,停止对应侧的区间偏移操作;其中,若左右两侧中存在任意一侧的曲线斜率小于所述预设斜率阈值,则停止执行该侧的区间偏移操作,并继续执行另一侧区间偏移操作。
[0153]在一些具体实施例中,所述预设拟合分布函数为学生t分布函数;
[0154]相应的,所述概率获取模块
14,具体可以包括:
[0155]分布函数表获取单元,用于获取预先存储的与所述学生t分布函数对应的分布函数表;
[0156]分布概率获取单元,用于从所述分布函数表中获取与各所述偏移区间对应的数据分布概率。
[0157]在一些具体实施例中,所述距离计算模块
15之后,还包括:
[0158]电压轴确定单元,用于基于所述闪存阈值电压分布的拟合模型确定读取操作的目
标电压轴;所述目标电压轴用于控制读取数据的原始比特误码率为最小值;
[0159]偏移电压轴确定单元,用于基于所述闪存阈值电压分布的拟合模型确定软判决译码中参考电压的偏移电压轴;所述偏移电压轴包括左偏移电压轴和右偏移电压轴;
[0160]对数似然比表确定单元,用于基于所述闪存阈值电压分布的拟合模型、所述目标电压轴、所述偏移电压轴确定所述软判决译码的对数似然比表;所述对数似然比表用于记录每个目标区间的对数似然比,所述目标区间为基于所述目标电压轴和所述偏移电压轴划分的区间;
[0161]修正单元,用于将所述目标电压轴、所述偏移电压轴和所述对数似然比表发送至固态硬盘中的主控芯片,以便所述主控芯片对所述固态硬盘中与读取操作对应的当前配置参数进行修正;
[0162]其中,所述当前配置参数包括读取操作的当前电压轴以及所述软判决译码的当前偏移电压轴和当前对数似然比表。
[0163]图8为本技术实施例提供的一种电子设备的结构示意图。
具体可以包括:至少一个处理器
21、至少一个存储器
22、电源
23、通信接口
24、输入输出接口
25和通信总线
26。
其中,所述存储器
22用于存储计算机程序,所述计算机程序由所述处理器
21加载并执行,以实现前述任一实施例公开的由电子设备执行的闪存阈值电压分布的确定方法中的相关步骤。
[0164]本实施例中,电源
23用于为电子设备
20
上的各硬件设备提供工作电压;通信接口
24能够为电子设备
20
创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口
25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
[0165]其中,处理器
21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。
处理器
21可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。
处理器
21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。
在一些实施例中,处理器
21可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。
一些实施例中,处理器
21还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0166]另外,存储器
22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统
221、计算机程序
222及数据
223等,存储方式可以是短暂存储或者永久存储。
[0167]其中,操作系统
221用于管理与控制电子设备
20
上的各硬件设备以及计算机程序
222,以实现处理器
21对存储器
22中海量数据
223的运算与处理,其可以是windows、unix、linux等。
计算机程序
222除了包括能够用于完成前述任一实施例公开的由电子设备
20
执行的闪存阈值电压分布的确定方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
数据
223除了可以包括电子设备接收到的由外部设备传输进来的
数据,也可以包括由自身输入输出接口
25采集到的数据等。
[0168]进一步的,本技术实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的闪存阈值电压分布的确定方法步骤。
[0169]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0170]本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。
这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0171]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。
软件模块可以置于随机存储器(random access memory,即ram)、内存、只读存储器(read-only memory,即rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、只读光盘(compact disc read-only memory,即cd-rom)、或技术领域内所公知的任意其它形式的存储介质中。
[0172]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0173]以上对本发明所提供的一种闪存阈值电压分布的确定方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1  
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
网站地图