用于识别待用于闪存存储器设备的读取中的阈值电压的回归神经网络的制作方法


用于识别待用于闪存存储器设备的读取中的阈值电压的回归神经网络
1.相关申请的交叉引用
2.本技术要求于2020年7月27日提交的美国临时专利申请序列号63/057,278以及2020年11月5日提交的美国非临时专利申请序列号17/089,891的优先权,每个专利申请的内容全文以引用方式并入本文。


背景技术:



3.表征闪存存储器设备的过程是昂贵且耗时的。另外,闪存存储器设备的特性在闪存存储器设备的使用寿命期间会改变,从而难以进行准确的表征。
4.标准读取指令(例如,读取或读取页指令)在限定存储器单元的位所需的每个阈值电压区域内以默认阈值电压执行存储器单元的读取。单级单元(slc)闪存存储器设备在每个单元中存储单位信息,并且仅需要在单个阈值电压区域中读取(阈值电压区域是在1的电压分布的中心和0的电压分布的中心之间延伸的区域)以识别位的值(无论该单元是否存储1还是0)。多级单元(mlc)闪存存储器设备在每个单元中存储两位信息,三级单元(tlc)闪存存储器设备在每个单元中存储三位信息,并且四级单元(qlc)闪存存储器设备在每个单元中存储四位信息。mlc、tlc和qlc闪存存储器设备需要在多于一个阈值电压处的读数以识别特定位的值。
5.一些固态驱动器(ssd)使用阈值电压偏移读取来读取闪存存储器设备,以获得客户端和企业ssd所需的低水平的不可校正比特误码率(uber)。通过向要读取的闪存存储器设备发送阈值电压偏移读取指令来执行阈值电压偏移读取。一个或多个阈值-电压-偏移补偿(tvso)值与阈值电压偏移读取指令一同发送。tvso值指示用于执行读取的阈值电压与由闪存存储器设备的制造商指定的对应默认阈值电压的补偿的量。mlc、tlc和qlc闪存存储器设备的阈值电压偏移读取指令包括两个或更多个tvso值,一个tvso值用于识别正被读取的特定位所需的每个阈值电压区。
6.对于使用阈值电压偏移读取指令来读取闪存存储器设备的系统,需要识别在闪存存储器设备的每个读取中使用的tvso值,以便在ssd的使用寿命期间将uber维持在可接受水平内。


技术实现要素:



7.公开了一种用于读取闪存存储器设备的方法,该方法包括将回归神经网络(rnn)推断模型存储在联接到所述闪存存储器设备的闪存控制器上,所述rnn推断模型被配置为识别至少一个阈值电压偏移读取误差(tvs-re)曲线,每个tvs-re曲线识别取决于tvso值的误差数量。监测闪存存储器设备的操作以识别闪存存储器设备的一个或多个使用特性值。使用特性值是指示闪存存储器设备随时间的年龄和/或物理退化的值和指示闪存存储器设备的当前暂时性特性或闪存存储器设备的特定结构(例如,字线或块)的值。在一个示例中,闪存存储器设备的编程和擦除循环的数量(p/e循环)或闪存存储器设备的特定结构(例如,
字线或块)的p/e循环的数量被用作指示闪存存储器设备随时间的年龄和/或物理退化的使用特性值。
8.执行所存储的rnn推断模型的神经网络操作以生成对应于所识别的使用特性值的tvs-re曲线。用于神经网络操作的输入包括识别的一个或多个使用特性值和识别要读取的页面的一个或多个值。然后识别tvso值对应于所生成的tvs-re曲线的最小值。使用所识别的tvso值处的阈值电压偏移读取来执行闪存存储器设备的读取。
9.公开了一种ssd,其包括闪存控制器和多个闪存存储器设备。所述闪存控制器包括写入电路、被配置成使用阈值电压偏移读取操作来执行闪存存储器设备的读取的读取电路,以及被配置成对所述读取的结果进行解码的解码器。闪存控制器包括用于监测闪存存储器设备的操作的状态电路,以识别闪存存储器设备的一个或多个使用特性值和被配置为存储rnn推断模型的数据存储装置。rnn推断模型被配置成识别至少一个tvs-re曲线。每个tvs-re曲线识别取决于tvso值的误差数量。
10.闪存控制器进一步包括联接到数据存储装置的神经处理模块。神经处理模块被配置成执行所存储的rnn推断模型的神经网络操作,以生成对应于所识别的使用特性值的tvs-re曲线。用于神经网络操作的输入包括识别的一个或多个使用特性值和识别要读取的页面的一个或多个值。识别要读取的页面的值可以是识别要读取的字线、块、平面和设备中的一者或多者的数值(即,其指示要读取的闪存存储器设备的物理结构)。
11.闪存控制器包括联接到神经处理模块的最小功能模块。最小功能模块被配置成确定生成的tvs-re曲线的最小值,并且识别对应于所确定的最小值的tvso值。阈值电压偏移读取操作使用所识别的tvso值来执行读取。
12.本发明的方法和装置对影响uber的多个因素进行建模并在闪存控制器上生成tvs-re曲线,所述tvs-re曲线准确地反映要读取的位置的物理特性、要读取的位置的结构特性(例如,要读取的字线和块)、要读取的位置的当前年龄/物理退化(例如,p/e循环的数量)和要读取的位置的当前暂时性特性(例如,闭合块读取干扰和闭合块保留时间)。因为所生成的tvs-re曲线准确地表示影响uber的因素,所以对应于tvs-re曲线的最小值所生成的tvso值将是用于执行读取的适当的tvso值(对应于在设备表征期间提供最小误差数量的tvso值)。使用适当的tvso值来执行读取导致闪存控制器处的读取误差数量减少。在ssd的使用寿命期间,本发明的方法和装置的读取误差数量减少在可接受水平内有效地维持uber。
附图说明
13.本文包括附图以提供对本发明的进一步理解,并且附图被并入本说明书中并且构成本说明书的一部分。附图例示说明本发明的实施方案,并且与说明书一起用于解释本发明的原理。
14.图1是示出根据本发明的一个实施方案的ssd的框图。
15.图2是示出根据本发明的一个实施方案的闪存控制器和示例性nand闪存存储器设备的图表,并且示出了闪存控制器与闪存存储器设备之间的通信。
16.图3是示出根据本发明的一个实施方案的用于读取闪存存储器设备的方法的框图。
17.图4a是示出根据本发明的一个实施方案的包括多个编程和擦除循环作为输入并且可以在闪存存储器设备的整个使用寿命中使用的rnn推断模型的图表。
18.图4b是示出根据本发明的一个实施方案的rnn推断模型的图表,其中输出神经元包括用于每个tvso值的输出神经元。
19.图5是示出根据本发明的一个实施方案的示例性闪存存储器设备的使用寿命中的时间周期的图表。
20.图6是示出根据本发明的一个实施方案的闪存存储器设备的使用寿命中的特定时间周期的rnn推断模型的图表。
21.图7是示出根据本发明的一个实施方案的测试和模型生成系统的图表。
22.图8是示出根据本发明的一个实施方案的用于生成神经网络模型的方法的框图。
23.图9是一个曲线图,示出根据本发明的一个实施方案的水平轴上的误差数量,以及示出在读取示例性闪存存储器设备中的误差的水平轴上的阈值电压偏移补偿。
24.图10是示出根据本发明的一个实施方案的由示例性阈值电压偏移读取训练数据集生成的示例性阈值电压偏移读取误差曲线的曲线图。
25.图11是示出根据本发明的一个实施方案的由示例性平滑阈值电压偏移读取训练数据集生成的示例性平滑阈值电压偏移读取误差曲线的曲线图。
26.图12a至12j是示出根据本发明的一个实施方案的示例性rnn推断模型的框图。
具体实施方式
27.图1中示出了ssd 10,其包含联接到用于存储数据的多个闪存存储器设备9的闪存控制器3。在本实施方案中,闪存存储器设备9是nand设备,并且ssd 10包括一个或多个电路板,所述电路板上附接有主机连接器插座14、闪存控制器3和闪存存储器设备9。ssd 10还可以包含一个或多个存储器设备13(诸如动态随机存取存储器(dram)),其可以是附接到电路板上的独立集成电路器件,所述电路板上安装有闪存控制器3,并且直接电联接到闪存控制器3。
28.闪存控制器3被配置成通过主机连接器插座14从主机计算机接收读取和写入指令,并且对闪存存储器设备9的存储器单元执行编程操作、擦除操作和读取操作,以完成来自主机计算机的指令。例如,在经由主机连接器插座14从主机接收到写入指令时,闪存控制器3可操作以通过执行编程操作(以及当需要时,擦除操作)将码字编程到一个或多个闪存存储器设备9以存储数据在ssd 10中。
29.闪存控制器3包括写入电路8、读取电路6、解码器7、状态电路5和数据存储装置4。闪存控制器3还包括联接到数据存储装置4的神经处理模块11和联接到神经处理模块11的最小功能模块2。闪存控制器3可以任选地包括联接到最小功能模块2的一个或多个表15、15a,任选地包括在数据存储装置4内。读取电路6联接到解码器7、状态电路5、最小功能模块2、数据存储装置4和神经处理模块11。状态电路5联接到写入电路8、最小功能模块2、神经处理模块11和数据存储装置4。一个或多个回归神经网络(rnn)推断模型12包含在数据存储装置4内。
30.每个闪存存储器设备9可以是封装的半导体管芯或

芯片

,其通过联接每个闪存存储器设备9和闪存控制器3之间的指令、数据和其他信息的导电路径联接到闪存控制器3。
在图2所示的实施方案中,每个闪存存储器设备9(例如,nand设备)包含寄存器31、微控制器32和存储器阵列33,并且通过芯片启用信号线(ce#)、命令锁存器启用信号线(cle)、读取启用信号线(re#)、地址锁存器启用信号线(ale)、写入启用信号线(we#)、读取/忙碌信号线(r/b)和输入和输出信号线(dq)联接到闪存控制器3。在接收到来自主机计算机的写入指令时,写入电路8可操作以将接收到的数据编码为码字,所述码字与对应的编程指令一起被发送到寄存器31。微控制器32可操作以执行所请求的写入指令并从寄存器31检索码字并且通过编程存储器阵列33的单元(例如,作为逻辑页面)将码字存储在存储器阵列33中。
31.在一个示例中,每个闪存存储器设备9包含被组织成块和页面的nand存储器单元,其中每个块由共享相同组字线的nand串构成。每个逻辑页面由属于同一字线的单元构成。每个逻辑块内的逻辑页面的数目通常是16(例如64、128)的多个。在本实施方案中,逻辑页面是用于读取和写入每个闪存存储器设备9的nand存储器单元的最小可寻址单元,并且逻辑块是最小可擦除单元。然而,应当理解,在本发明的实施方案中,小于整个逻辑页面的编程可以是可能的,这取决于nand阵列的结构。尽管闪存存储器设备9被示出为nand设备,但是应当理解,闪存存储器设备9可以是使用阈值电压来读取闪存存储器设备9的存储器单元的任何类型的存储器存储设备。
32.响应于接收到来自主机计算机的读取指令,读取电路6被配置成使用阈值电压偏移读取操作来执行相应闪存存储器设备9的读取。更具体地,读取电路6可操作以将阈值电压偏移读取指令34发送到闪存存储器设备9。微控制器32响应于阈值电压偏移读取指令而读取相应存储器阵列33,并在寄存器31处输出读取结果。读取结果被发送到解码器7,所述解码器可操作以解码所读取结果以获得所存储的码字。
33.闪存存储器设备9可以是slc、mlc、tlc或qlc nand设备。在本实施方案中,闪存存储器设备9能够执行宽范围的阈值电压偏移读取,包括由整个数字补偿值(诸如-n...-2、-1、0、+1、+2、...n)指定的读取而不限制。
34.闪存存储器设备9的擦除块可以被称为

自由块

。当数据被编程到已被擦除的块中时,该块被称为

开放块

,直到块的所有页面已被编程为止。一旦块的所有页面已被编程,该块就被称为

闭合块

,直到再次擦除。
35.图3中示出了用于读取闪存存储器设备的方法100。在以下讨论中,参考图1的闪存控制器3来讨论方法100。方法100包括生成(101)rnn推断模型。rnn推断模型被配置成识别至少一个tvs-re曲线,其中每个tvs-re曲线识别取决于tvso值的误差数量。优选地在销售和使用ssd 10之前以及在将闪存控制器3递送到用于制造ssd 10的客户之前,执行rnn推断模型的生成(步骤101)。取决于闪存控制器的计算能力,rnn推断模型的生成可以在ssd 10上执行或使用测试和模型生成系统(诸如图7所示的测试和模型生成系统70)来执行,如将在下文更详细地论述并且存储在ssd 10的数据存储装置4中。当使用测试和模型生成系统70执行rnn推断模型的生成时,它专门在测试和模型生成系统70上执行,并且在ssd 10上不执行。
36.rnn推断模型被存储(102)在联接到闪存存储器设备的闪存控制器上或在直接联接到闪存控制器的存储器设备上。在一个示例中,一个或多个rnn推断模型12存储在闪存控制器3的数据存储装置4中,优选地在将闪存控制器3递送到客户之前。rnn推断模型12也可以存储在存储器设备13中。每个rnn推断模型12被配置成识别至少一个tvs-re曲线,其中每
个tvs-re曲线识别取决于tvso值的误差数量。
37.监测闪存存储器设备的操作(103)以识别闪存存储器设备的一个或多个使用特性值。在一个示例中,状态电路5可操作以监测每个闪存存储器设备9的操作,以识别闪存存储器设备9的一个或多个使用特性值。确定的使用特性值可以存储在闪存控制器3的寄存器中,在闪存存储器设备9或存储器设备13中的数据存储装置4中。如本发明中所使用的术语

使用特性值

是在使用可能影响阈值电压分布的闪存存储器设备期间确定的值,例如指示要读取的位置的当前年龄/物理退化的值(例如,p/e循环的数量或误码率(ber))或指示要读取的位置的当前暂时性特性(例如,闭合块读取干扰和闭合块保留时间)。
38.使用特性值可以包括读取干扰值。在一个示例中,每当块被关闭时,状态电路5可操作以在块关闭时计数块的读取的数目,并且将在块关闭时块的读取的数目存储为读取干扰值。当块被擦除时,所擦除块的读取干扰值被重置为零。
39.使用特性值可以包括闭合块保留时间。在一个示例中,每次闭合块时,状态电路5可操作以启动定时器来确定自块被关闭以来所经过的时间量。在任何时间点由定时器确定的经过时间被定义为闭合块保留时间值。当块被擦除时,该块的定时器停止,并且已擦除块的闭合块保留时间值被重置为零。
40.使用特性值可以包括指示每个块的编程和擦除操作的数目的数字。在一个示例中,状态电路5可操作用于在闪存存储器设备的整个使用寿命期间对闪存存储器设备的每个块的编程和擦除循环的数量进行计数并且将计数存储在数据存储装置4或dram 13中。
41.使用特性值还可以包括块或一组块的ber。在一个示例中,状态电路5可操作以周期性地确定每个块的ber,并且每个块的ber被存储为ber值。在一个示例中,每次计算ber值时,其被存储在数据存储装置4或dram 13中,以便覆盖特定块的先前存储的ber值。
42.任选地,当生成并存储多于一个rnn推断模型时,方法100包括选择(104)所存储的rnn推断模型中的一个。在一个示例中,选择对应于闪存存储器设备的使用寿命中的当前周期的所存储rnn推断模型中的一个。
43.执行所存储的rnn推断模型的神经网络操作(105)以生成对应于所识别的使用特性值的tvs-re曲线。用于神经网络操作的输入包括识别的一个或多个使用特性值和识别要读取的页面的一个或多个值(例如,识别要读取的页面的物理位置的值,举例说,诸如识别要读取的字线、块、平面或闪存存储器设备中的一者或多者的值)。在一个示例中,神经处理模块11被配置成执行所存储的rnn推断模型12的神经网络操作以生成对应于所识别的使用特性值的tvs-re曲线,其中用于神经网络操作的输入包括识别的一个或多个使用特性值和识别要读取的页面的一个或多个值。在一个示例中,神经处理模块11包括被特别配置为执行神经网络操作的特化的硬件模块(例如,特化的可配置加速器),并且该特化的硬件模块在下文中也可称为

神经网络引擎

。在一个实施方案中,响应于从主计算机接收到读取命令(例如,每次接收到读取命令时)执行步骤105,其中识别要读取的页面的值是指示与读取指令包括的读取地址相对应的闪存存储器设备9中的物理位置的值。步骤105还可以在内部控制器事件(诸如通过定时器或计数器)或由闪存控制器3(例如,背景读取)的事件上执行,以监测闪存存储器设备9的可靠性状态。
44.识别对应于所生成的tvs-re曲线的最小值的tvso值(106)。在一个示例中,最小功能模块2被配置成确定所生成的tvs-re曲线的最小值,并且识别对应于所确定的最小值的
tvso值。最小功能模块2可以包括用于接收生成的tvs-re曲线的系数的软件、硬件和/或固件,识别曲线的最小点并且输出对应于曲线的所识别最小点的tvso值。
45.然后使用在步骤106中识别的tvso值处的阈值电压偏移读取来执行闪存存储器设备的读取(107)。每次从主机计算机接收到读取指令时,执行步骤105的神经网络操作。更具体地,响应于在主机连接器插座14接收读取指令,步骤103、任选地步骤104和步骤105至步骤106被执行以便识别tvso值,并且读取电路6使用在步骤106中识别的tvso值来执行读取。
46.在另一示例中,周期性地执行步骤105至步骤106,并且结果(tvso值)存储在表中(例如,包括使用特性的可任选表15a和可以被称为

tvso表

的对应tvso值)。在该示例中,当将执行步骤107的读取时,使用步骤103中识别的使用特性来查在步骤107的读取中使用的对应tvso值。
47.实施例1,存储的单个rnn推断模型
48.在一个示例中,在步骤102中存储单个rnn推断模型,所述步骤在闪存存储器设备的使用寿命中预测不同点的tvs-re曲线,步骤103包括监测闪存存储器设备的操作以确定闪存存储器设备的使用寿命中的当前点,并且用于神经网络操作的输入包括识别闪存存储器设备的使用寿命中所确定的当前点的值。在一个示例中,识别闪存存储器设备的使用寿命中的当前点的值是多个编程和擦除循环。另选地,识别闪存存储器设备的使用寿命中的当前点的值是要读取的页面的块的ber。
49.图4a示出了包括多个输入神经元41、多个输出神经元45a和隐藏神经元的层42至层44的示例性rnn推断模型40a的图表。用于rnn推断模型的输入包括参考值(参考值),所述参考值识别要阅读的闪存存储器设备的一个或多个特性,诸如例如但不限于制造商、零件号和/或制造批号。通过包括识别闪存存储器设备类型的参考值,可以使用可以识别用于不同类型的闪存存储器设备的tvs-re曲线的rnn推断模型。
50.输入包括识别要读取的页面的一个或多个值,在该示例中,该值包括识别要在步骤107中读取的页面的块的块值和指示要读取的页面的字线的字线值。在ssd 10包括128个闪存存储器设备9的一个示例性实施方案中,每个闪存存储器设备包括2048个块,可以为块分配编号,从0至262,143,其中块值是在步骤107中要读取的页面的块编号。
51.在该示例中,步骤103包括对多个闭合块读取进行计数,并且用于神经网络操作的输入包括指示包含要读取的页面的块的闭合块读取的数目的值(即,读取干扰值)。步骤103还包括确定闭合块保留时间,用于神经网络操作的输入包括指示包含要读取的页面的块的闭合块保留时间的值(即保留时间值)。另外,步骤103包括对闪存存储器设备的每个块的编程和擦除循环的数目进行计数,并且闪存存储器设备的使用寿命中的当前点被确定为包含要读取的页面的块的编程和擦除循环的当前数目(即,编程/擦除值)。
52.在该示例中,步骤103识别以下使用特性值:保留时间值、读取干扰值、编程/擦除值和可以是可以影响阈值电压分布的任何测量值的示例性其他使用特性值,诸如,例如但不限于温度值。用于神经网络操作的输入包括使用特性值保留时间值、读取干扰值、编程/擦除值和其他使用特性值。
53.输出神经元45a以指数值的形式生成限定tvs-re曲线的输出。rnn推断模型40a的示例性输出被示出为包括六个指数,示出为第一指数、第二指数、第三指数、第四指数、第五指数和第六指数。应当理解,rnn推断模型40a可以具有任何数量的指数,并且指数的数目可
以被改变以实现处理时间与准确度之间的平衡。
54.在图4b所示的示例中,输出神经元45b生成指示对应于tvso值的位置处的误差数量的值。在该示例中,输出神经元45b包括用于每个tvso值的输出神经元(对于n tvso值),诸如,例如,使用第一tvso值预测误差的输出神经元(pred-err tvso1)、使用第二tvso值预测误差的输出神经元(pred-err tvso2)、使用第三tvso值预测误差的输出神经元(pred-err tvso3)、使用第四tvso值预测误差的输出神经元(pred-err tvso4)、使用第五tvso值预测误差的输出神经元(pred-err tvso5)等等,一直到使用第n个tvso值预测误差的输出神经元(pred-err tvson)。在一个具体示例中,使用来自-32...0...+32的tvso值,并且当使用-32的tvso时,pred-err tvso1是预测的误差,当使用-31的tvso时,pred-err tvso2是预测的误差,当使用-30的tvso时,pred-err tvso3是预测的误差,当使用-29的tvso时,pred-err tvso4是预测的误差,当使用-28的tvso时,pred-err tvso5是预测的误差,并且当使用+32的tvso时,pred-err tvson是预测的误差。
55.当输出是指示如图4b所示的tvso值的位置处的误差数量的量值的值时,在步骤106中,最小测定仪程序83需要仅识别哪个输出产生最低误差,以确定对应于tvse曲线的最小值的tvso值,因为已知tvso值对应于每个输出神经元。然而,当输出神经元以指数形式产生输出时,最小测定仪程序83包括用于识别最小值是在哪里(例如,在x轴上的位置)的算法,并且识别对应于曲线上所识别的最小点的tvso值(例如,与曲线上所识别的最小点最接近的整数tvso值)。
56.实施例2,存储的对应于周期的多个rnn推断模型
57.在该示例性步骤102中,进一步包括存储多个rnn推断模型12,所述多个rnn推断模型12中的每一个在闪存存储器设备9的使用寿命中针对不同周期识别tvs-re曲线。
58.图5示出了在示例性闪存存储器设备9的使用寿命期间的示例性周期p1至p9,开始于闪存存储器设备9的初始时间t0,并结束于闪存存储器设备9寿命的结束时间tn。在该示例中,每个周期p1至p9由多个编程和擦除循环表示(pe1至pe8)。例如,示例性周期p2开始于多个编程和擦除循环,显示为pe1并在多个编程和擦除循环中结束pe2。当闪存存储器设备9年老时,可能需要更短的周期来确保最小化读取误差的数量。尽管公开了在闪存存储器设备9的整个使用寿命期间使用的阈值电压偏移读取操作,但是应当理解,可以在闪存存储器设备9的使用寿命早期使用诸如读取页面指令等常规读取指令,因为在默认阈值电压处的读取不可能导致在闪存存储器设备9的使用寿命期间早期读取误差。
59.在一个示例中,在步骤102中存储多个rnn推断模型,每个对应于图5中所示的示例性周期p1至p9中的一个。因此,将存储对应于p1的第一rnn推断模型,将存储对应于p2的第二rnn模型,等等。
60.在该示例中,步骤103包括监测闪存存储器设备9的操作以确定闪存存储器设备9的使用寿命中的当前周期,并且在步骤104中选择对应于闪存存储器设备的使用寿命中的当前周期的多个rnn推断模型12中的一个。在该示例中,步骤103可以包括计数闪存存储器设备9的每个块的编程和擦除循环的数目,并且将闪存存储器设备9的使用寿命中的当前周期确定为对应于包含要读取的页面的块的编程和擦除循环的当前数目的周期(例如,周期p1至p9中的一个)。在一个示例中,状态电路5可操作以确定包含要读取的页面的块的编程和擦除循环的当前数目,并且识别在使用所识别的编程和擦除循环的当前数目被读取的闪速
存储器设备的使用寿命中的当前周期(例如,通过存储指示周期和对应数量的编程和擦除循环的表,并且使用针对包含要读取的页面的块的编程和擦除循环的当前数目在所述表上执行查操作)。
61.在一个示例中,神经处理模块11在接收到来自状态电路5的输入时可操作,识别当前周期以选择对应的rnn推断模型12并执行(105)所选rnn推断模型的神经网络操作以生成tvs-re曲线。图6示出了可以根据本实施例使用的示例性rnn推断模型50的图表。rnn推断模型50包括多个输入神经元51、多个输出神经元55和隐藏神经元的层52至层54。可以看出,rnn推断模型50不包含用于接收多个编程和擦除循环(编程/擦除值)的神经元,如rnn推断模型40a至40b所做的。在该示例中,编程和擦除循环的数量不需要作为输入,因为与闪存存储器设备的使用/年龄相关的误差特性是所选择的rnn推断模型50的特征。尽管rnn推断模型50示出了生成tvso曲线系数的输出神经元55,但是输出神经元55还可以指示如图4b所示的不同tvso值处的误差量。
62.实施例3,生成神经网络模型(步骤101)
63.图7示出了根据本发明的一个实施方案的可以用于生成rnn推断模型的示例性测试和模型生成系统70。该系统包括输入71、输出72、处理器74、数据存储装置79和经由网络80联接在一起的最小测定仪程序83。最小测定仪程序83是可在处理器74上操作的软件程序,并且因此可以表示电子可读指令,其可以与由图1中所示的最小功能模块2使用的程序相同,所述程序可操作以识别函数的最小值。测试和模型生成系统70包括工作台测试程序82,所述工作台测试程序可以表示电子可读指令,其可以在处理器74上操作以用于以识别作为代表性闪存存储器设备73年龄发生的误差数量的方式测试代表性闪存存储器设备73。代表性闪存存储器设备73可以插入到与测试和模型生成系统70联接的一个或多个测试固定装置中。代表性闪存存储器设备73是与闪存存储器设备9类似或相同的设备,并且可以是由与闪存存储器设备9相同的制造商制造的相同类型的设备(例如相同类型的nand设备)。机器学习模块81可以表示电子可读指令,其可以在处理器74上操作以生成神经网络,诸如例如图4a、图4b和图6中所示的神经网络40a、40b或50,并且可以包括可在处理器74上操作的计算机程序。
64.在图8中示出的一个实施方案中,公开了用于生成rnn推断模型的方法200,该方法包括在代表性闪存存储器设备73上执行闪存表征测试(201)以获得一个或多个阈值电压偏移读取测试结果集。在图7所示的一个示例中,在不同条件下测试许多代表性闪存存储器设备73以获得可以存储在数据存储装置79中的一个或多个阈值电压偏移读取测试结果集83。测试结果集表示所表征闪存存储器设备的使用寿命中的不同特征点或周期,和所表征闪存存储器设备的不同操作条件,因为在闪存存储器设备73的测试期间应用了不同测试条件。
65.在一个示例步骤201中包括对代表性闪存存储器设备73执行测试,其识别正被测试的相应代表性闪存存储器设备73的多个识别特征中的每一个的误差数量和测试特征值,诸如,例如正在测试的相应代表性闪存存储器设备73的参考值、标识在测试中读取的页面的块的块值、指示在测试中读取的页面的字线的字线值、指示包含在测试中读取的页面的块的闭合块读取的数目的读取干扰值、指示包含在测试中读取的页面的块的闭合块保留时间的保留时间值和包含在测试中读取的页面的块的编程/擦除值。
66.图9示出了表示示例性存储器单元的示例性闪存表征测试的曲线图,所述示例性
闪存表征测试示出x轴上的不同tvso值和y轴上的误差数量。此过程的结果,即不同vt偏移值(点91)处的误差数量的集合是曲线,其中曲线的一部分被成形为

波谷

。本发明的rnn推断模型78生成曲线,所述曲线包括在步骤201的测试期间模拟的每个条件的该波谷。
67.定义初始rnn推断模型的一个或多个配置文件被接收为输入(202)。在一个示例中,通过输入71接收一个或多个配置文件并暂时存储在数据存储装置79中。当启动机器学习模块81的操作时,在步骤202中接收的配置文件定义初始rnn推断模型的架构(例如,输入神经元、隐藏神经元和输出神经元的数量以及神经元之间的连接)以及在步骤202至步骤215的过程期间控制和定义机器学习模块81的操作所需的输入。在一个示例中,在步骤202中接收的一个或多个配置文件定义初始rnn推断模型的特征(例如,参考编号、块、字线、闭合块读取的数量、闭合块保留时间和编程/擦除值),并且包括初始参数集和超参数。在一个示例中,初始参数集包括初始rnn模型中每个神经元的初始权重和偏置值(例如,初始权重和偏置值可以全部设置为零或随机数)。
68.作为输入接收一个或多个阈值电压偏移读取测试结果集(203)。在一个示例中,在步骤201中创建的阈值电压偏移读取测试结果83中的一个或多个集被输入到机器学习模块81中。
69.方法200进一步包括创建(204)阈值电压偏移读取训练数据集、阈值电压偏移读取验证数据集和阈值电压偏移读取测试数据集。在一个示例中,机器学习模块81可操作以将阈值电压偏移读取测试结果83分离(例如,通过随机过程)到训练数据库75中,所述训练数据库包括阈值电压偏移读取训练数据集、验证数据库76,所述验证数据库包括阈值电压偏移读取验证数据集和测试数据库77,所述测试数据库包括阈值电压偏移读取测试数据集。
70.使用阈值电压偏移读取训练数据集来训练(206)初始rnn推断模型以获得经训练的rnn模型。在一个示例中,机器学习模块81可操作以执行初始rnn推断模型的训练以生成可以存储在数据存储装置79中的rnn推断模型78。在一个示例中,每个测试的tvso值处的误差数量被装载到输入神经元中,来自测试的特征值被输入到对应的神经元中,并且执行反向传播算法以识别用于rnn模型的新的参数集。重复此过程,直到已经处理了阈值电压偏移读取训练数据集中的所有记录。经训练的rnn推断模型结合了所测试的代表性闪存存储器设备73的字线到字线和块到块的变异性,以识别反映字线到字线和块到块变异性以及对应于使用特性的变异性的tvs-re曲线。图10示出了从示例性阈值电压偏移读取训练数据集生成的tvs-re曲线的示例。更具体地,误差的数量在y轴上示出,并且tvso在x轴上示出。如在图10中可以看出,由于nand闪存读取电路的性质,在每个波谷的误差数量中存在波动(噪声)。这种噪声对rnn推断模型的学习过程产生负面影响,这可能影响波谷的最小值的实际位置并导致计算不正确的tvso值。为了避免这个问题,如步骤205所示,在步骤206中在训练rnn之前,诸如移动平均值或多多项式插值的平滑算法任选地应用于训练数据集,以生成平滑阈值电压偏移读取训练数据集(其中由目标数据集表示的波谷的形状被整平滑)。图11示出了从示例性平滑阈值电压偏移读取训练数据集生成的tvs-re曲线的示例。因此,由于在训练(206)之前执行了平滑函数(205),因此不训练rnn推断模型以预测对应于在设备的表征步骤(在步骤201中执行并在步骤203中输入)期间测量的误差的确切数量的tvs-re曲线,而是训练rnn推断模型以预测对应于平滑的阈值电压偏移读取训练数据集的tvs-re曲线。
71.将经训练的rnn推断模型与预定训练标准进行比较(207)。如果经训练的rnn推断
模型不满足预定训练标准,则更新初始rnn推断模型(213),并且重复训练过程以生成新的经训练的rnn推断模型(206)。步骤213可以包括添加附加参数、超参数和/或神经元。另外,步骤213还可以包括将额外阈值电压偏移读取测试数据添加到阈值电压偏移读取训练数据集。
72.如果经训练的rnn推断模型满足预定训练标准,则使用阈值电压偏移读取验证数据集来验证rnn推断模型(208)。在一个示例中,机器学习模块81可操作以使用阈值电压偏移读取验证数据集来执行验证,以生成可以临时存储在数据存储装置79中的经训练的和经验证的rnn推断模型。将经训练和经验证的rnn推断模型与预定验证标准进行比较(209)。如果经训练和经验证的rnn推断模型不满足预定验证标准,则更新初始rnn模型(214),并且重复训练(206)、测试(207)和验证(208)等过程。步骤214可以包括添加附加参数、超参数和/或神经元。另外,步骤214还可以包括将额外阈值电压偏移读取测试数据添加到阈值电压偏移读取训练数据集。
73.如果经训练和经验证的rnn推断模型满足预定验证标准,则使用阈值电压偏移读取测试数据集来测试rnn推断模型(210)。将经训练、经验证和经测试的rnn推断模型与预定测试标准进行比较(211)。如果测试失败(215),则该过程已结束并且必须用新的初始rnn模型重新启动。
74.如果经训练的、经验证的和测试的rnn推断模型满足步骤211的测试标准,则通过去除不必要的元件来修整经训练、经验证和经测试的rnn模型(212),以获得可以存储在数据存储装置79中的rnn推断模型78。在一个示例步骤212中包括移除与方法200的训练/测试和验证阶段有关的配置文件的那些部分,并将rnn模型的剩余元素转换为不同的数据格式以加速所得最终rnn推断模型的推断时间。在本示例步骤212中包括将rnn模型的剩余元素从浮点转换为固定点,例如40位固定点。在一个示例中,步骤212产生图1所示的tvs-re推断模型12。从浮点到固定点的转换使得神经处理模块11能够具有较低的门计数并减少延迟。
75.步骤207、步骤209和步骤211中使用的标准可以是确定训练过程的

对度

的成本函数。在一个示例中,使用了均方误差(mse)函数,目的是具有尽可能低的总体mse。因此,mse在207处计算以识别通过使用阈值电压偏移读取训练数据集进行训练实现的mse。为了通过到步骤208,使用阈值电压偏移读取训练数据集计算的mse必须低于预定阈值。在209处计算mse以识别使用阈值电压偏移读取验证数据集实现的mse。为了通过到步骤210,使用阈值电压偏移读取验证数据集计算的mse必须低于预定阈值,并且必须接近使用阈值电压偏移读取训练数据集计算的mse(例如,在预定公差内)。因此,在步骤211处计算mse以识别使用阈值电压偏移读取测试数据集实现的mse。为了通过到步骤212,使用阈值电压偏移读取测试数据集计算的mse必须低于预定阈值,并且必须接近使用阈值电压偏移读取训练数据集计算的mse和使用阈值电压偏移读取验证数据集计算的mse(例如,在预定公差内)。
76.在一个示例中,在步骤201的表征之后计算可以称为

金vt-opt不值的最佳阈值电压偏移值(并且与步骤202至步骤209中的任一个分开)。金vt-opt值是在不使用由方法200生成的rnn推断模型的情况下计算的最佳阈值电压偏移值。在一个实施方案中,通过使用测试工作台程序82和使用最小测定仪程序83生成误差曲线来计算金vt-opt值以识别各种测试样品的金vt-opt值。
77.在该示例中,步骤211包括操作经训练和经验证的rnn推断模型(例如,在处理器74
上)以识别示例性tvs-re曲线的系数,并且将所识别的系数输入到最小测定仪程序83中以识别预测的最小tvso值(例如,通过在整个训练数据集上运行rnn推断模型并在结果上运行最小测定仪程序83以计算预测的最小tvso值)。然后将预测的最小tvso值与对应的金vt-opt值进行比较,并且当使用rnn推断模型计算的预测tvso值处于对应的金vt-opt值的范围内(例如,在预定公差内)时,该方法通过到步骤212。
78.当要生成要用于闪存存储器设备的使用寿命的单个rnn推断模型(例如,以上实施例1中使用的rnn推断模型)时,rnn推断模型使用指示闪存存储器设备的使用寿命中的当前点的值(例如,pe循环的数目)来生成表示闪存存储器设备的使用和年龄的输出。在闪存存储器的使用寿命内使用的单个rnn推断模型的生成是有利的,因为不需要存储和操纵多个rnn推断模型。然而,训练和验证更广泛且耗时,因为必须使用表示闪存存储器设备的完整使用寿命的测试数据。
79.当生成多个rnn推断模型以表示特定闪存存储器设备时,可以准确地建模影响阈值电压的更多因素,从而导致准确度增加。然而,将不同模型中的每一个加载到神经处理模块11所需的时间可能导致系统延迟。
80.分组实施例
81.可在步骤101中创建多个rnn推断模型并且存储在图1的步骤102中,其中多个rnn推断模型中的每一个识别对应于影响阈值电压的因素的一个或多个分组的阈值电压偏移读取误差曲线。影响阈值电压的因素的一个或多个分组可以是闪存存储器设备的一组字线、闪存存储器设备的一组块、时间周期、一组读取干扰和一组保留时间,但不限于此。
82.在以下示例中,针对单个类型的闪存存储器设备执行表征,使得rnn干扰模型中的每一个针对单个类型的闪存存储器设备。因此,不需要参考值作为输入,因为将仅使用与联接到闪存控制器3的单个类型的闪存存储器设备相关的测试数据来训练rnn干扰模型。以下分组是示例性的,并且应当理解,根据本发明的一个实施方案,还可以使用许多其他分组组合。在以下示例中,针对每个块确定保留时间、读取干扰以及编程和擦除循环的数目以识别一个或多个使用特性值。然而,应当理解,也可以在字线基础上确定保留时间、读取干扰以及编程和擦除循环的数目。
83.a.周期分组
84.在一个示例中,闪存存储器设备的使用寿命基于编程和擦除循环的数目被分组为周期,并且针对闪存存储器设备的使用寿命中的多个周期中的每一个生成rnn推断模型(可以被称为

p/e分类的rnn推断模型

)。在该示例中,p/e分类的rnn推断模型中的每一个被存储在步骤102中在闪存控制器3上,并且在步骤104中,对应于当前时间周期来选择p/e分类的rnn推断模型。例如,分组表15可以存储在数据存储装置4中,所述数据存储装置包括编程/擦除值和对应值,或指针,识别要使用的特定p/e分类的rnn推断模型。在步骤104中,使用在步骤107中要读取的字线或块的编程和擦除循环的当前数目(或基于用于闪存存储器设备的当前编程和擦除循环的总数)在分组表15上执行查操作,以识别要用的p/e分类的rnn推断模型。图12a中示出了p/e分类的rnn推断模型60a。由于p/e分类的rnn推断模型60a对应于特定时间周期,因此其不具有作为输入神经元61a的输入的编程/擦除值。
85.在一个示例中,闪存存储器设备的使用寿命中的周期被划分为七个不同的周期,第一个1,000个p/e循环为第一周期,第二周期是1,001p/e循环至2,000个p/e循环,第三周
期是2,001p/e循环至3,000个p/e循环,第四周期是3,001p/e循环至4,000个p/e循环,第五周期是4,001p/e循环至5,000个p/e循环,第六周期是5,001p/e循环至6,000个p/e循环,第七周期是6,001p/e循环至7,000个p/e循环(到此寿命结束),使得7个p/e分类的rnn推断模型被存储在步骤102中。
86.b.字线分组
87.在一个示例中,对字线分组并针对多个字线组的每一个生成rnn推断模型(其可以被称为

w分类的rnn推断模型

)。在该示例中,在步骤102中,将w分类的rnn推断模型中的每一个存储在闪存控制器上,并且在步骤104中,对应于在步骤107中要读取的字线来选择w分类的rnn推断模型。例如,分组表15可以存储在数据存储装置4中,所述数据存储装置包括字线值和标识要使用的特定w分类的rnn推断模型的对应值或指针。在步骤104中,使用在步骤107中要读取的字线在字线表上执行查操作,以识别要使用的w分类的rnn模型。图12b中示出了w分类的rnn推断模型60b。由于w分类的rnn推断模型60b对应于特定字线组,因此它不包括作为输入神经元61b的输入的字线值。
88.在一个示例中,字线被其在芯片上的物理位置分组(例如,第一n层的字线是第一类别,并且下一个n层的字线是第二类别,以此类推),其中字线被划分为十个不同的字线类别,使得在步骤102中存储10个w分类的rnn推断模型。
89.c.字线和周期分组
90.在一个示例中,将字线分组并基于编程和擦除循环的数目将闪存存储器设备的使用寿命分组为周期,并且针对多组字线的每一个和在闪存存储器设备的使用寿命中的多个周期中的每一个生成rnn推断模型(其可以被称为

w-p/e分类的rnn推断模型

)。在该示例中,在步骤102中,将w-p/e分类的rnn推断模型中的每一个存储在闪存控制器上,并且在步骤104中,对应于在步骤107中要读取的字线和当前时间周期来选择w-p/e分类的rnn推断模型。例如,分组表15可以存储在数据存储装置4中,所述数据存储装置包括字线值、编程/擦除值和识别要使用的特定w-p/e分类的rnn推断模型的对应值。在步骤104中,使用在步骤107中要读取的字线和对应于针对在步骤107中要读取的块的编程/擦除循环的当前数目的编程/擦除值在w-p/e表上执行查操作,以识别要使用的w-p/e分类的rnn推断模型。图12c中示出了w-p/e分类的rnn推断模型60c。由于w-p/e分类的rnn推断模型60c对应于特定字线组和特定时间周期,因此其不包括作为输入神经元61c的输入的字线值或编程/擦除值。
91.在一个示例中,字线被其在芯片上的物理位置分组成十个不同的字线类别,如上文示例b中所论述,并且闪存存储器设备的使用寿命被划分为七个不同的周期,如上文示例a中所论述,使得在步骤102中存储70个w/p/e分类的rnn推断模型。
92.d.块分组
93.在一个示例中,将块分组并且针对多个块组中的每一个生成rnn推断模型(其可以被称为

b分类的rnn推断模型

)。在该示例中,在步骤102中,b分类的rnn推断模型中的每一个存储在闪存控制器上,并且在步骤104中,对应于在步骤107中要读取的块的块值来选择b分类的rnn推断模型。例如,分组表15可以存储在数据存储装置4中,所述数据存储装置包括块值和识别要使用的特定b分类的rnn推断模型的对应值或指针。在步骤104中,使用在步骤107中要读取的块的块值在块表上执行查操作,以识别要使用的b类rnn推断模型。图12d中示出了b分类的rnn推断模型60d。由于b分类的rnn推断模型60d对应于特定块组,因此其
不具有作为输入神经元61d的输入的块值。
94.在一个示例中,块类别通过其在芯片上的物理位置对块进行分组(例如,n个邻接块是第一类别,然后下一个n个邻接块是第二类别,以此类推),其中块被划分为十个不同块组,使得在步骤102中存储10个b类rnn推断模型。
95.e.块和周期分组
96.在一个示例中,将块分组并基于编程和擦除循环的数目将闪存存储器设备的使用寿命分组为周期,并且针对多组块的每一个和在闪存存储器设备的使用寿命中的多个周期中的每一个生成rnn推断模型(其可以被称为

b-p/e分类的rnn推断模型

)。在该示例中,在步骤102中,将b-p/e分类的rnn推断模型中的每一个存储在闪存控制器上,并且在步骤104中,对应于在步骤107中要读取的块的块值和当前时间周期来选择b-p/e分类的rnn推断模型。例如,分组表15可以存储在数据存储装置4中,所述数据存储装置包括块值、编程/擦除值和识别要使用的特定bp/e分类的rnn推断模型的对应值。在步骤104中,使用在步骤107中要读取的块的块值和针对在步骤107中要读取的块的编程/擦除值在bp-e表上执行查操作,以识别要使用的b-p/e分类的rnn干扰模型。图12e中示出了b-p/e分类的rnn推断模型60e。由于b-p/e分类的rnn推断模型60e对应于特定块组和特定时间周期,因此其不包括作为输入神经元61e的输入的块值或编程/擦除值。
97.在一个示例中,块类别通过其在芯片上的物理位置将块分组成十个不同的块组,如上文示例b中所论述,并且闪存存储器设备的使用寿命被划分为七个不同的周期,如上文示例a中所论述,使得在步骤102中存储70个b-p/e分类的rnn推断模型。
98.f.块和字线和周期分组
99.在一个示例中,块和字线被分组;并且基于编程和擦除循环的数目将闪存存储器设备的使用寿命分组为周期;并且针对多组块中的每一个、针对多组字线的每一个和针对闪存存储器设备的使用寿命中的多个周期中的每一个来生成rnn推断模型(其可以被称为

b-w-p/e分类的rnn推断模型

)。在该示例中,在步骤102中,将b-p/e分类的rnn推断模型中的每一个存储在闪存控制器上,并且在步骤104中,对应于在步骤107中要读取的块的块值、在步骤107中要读取的字线和当前时间周期来选择b-w-p/e分类的rnn推断模型。例如,分组表15可以存储在数据存储装置4中,所述数据存储装置包括块值、字线值、编程/擦除值和识别要使用的特定b-w-p/e分类的rnn推断模型的对应值。在步骤104中,使用在步骤107中要读取的块的块值、在步骤107中要读取的字线和针对在步骤107中要读取的块的p/e循环的当前数目在b-w-p/e表上执行查操作,以识别要使用的b-w-p/e分类的rnn推断模型。图12f中示出了b-w-p/e分类的rnn推断模型60f。由于b-w-p/e分类的rnn推断模型60f对应于特定块组、特定字线组和特定时间周期,因此b-w-p/e分类的rnn推断模型60f将不具有作为输入神经元61f的输入的块值、字线值或编程/擦除值。
100.在一个示例中,字线被其在芯片上的物理位置分组成十个不同的字线组,如上文在示例b中所讨论的,块被其在芯片上的物理位置分组为十个组,如上文示例d中所论述,并且闪存存储器设备的使用寿命被划分为七个不同的周期,如上文示例a中所论述,使得在步骤102中存储700个b-w-p/e分类的rnn推断模型。
101.g.保留时间分组
102.在一个示例中,将保留时间分组并且针对多个保留时间组中的每一个生成rnn推
断模型(其可以被称为

rt分类的rnn推断模型

)。在该示例中,在步骤102中,rt分类的rnn推断模型中的每一个存储在闪存控制器上,并且在步骤104中,对应于在步骤107中要读取的块的闭合块保留时间来选择rt分类的rnn推断模型。例如,保留时间(rt)表可以存储在数据存储装置4中,所述数据存储装置包括闭合块保留时间值和识别要使用的特定rt分类的rnn推断模型的对应值。在步骤104中,使用用于在步骤107中要读取的块的当前闭合块保留时间在保留时间表上执行查操作,以识别要使用的rt分类的rnn推断模型。图12g中示出了rt分类的rnn推断模型60g。由于rt分类的rnn推断模型60g对应于特定保留时间组,因此其不具有作为输入神经元61g的输入的保留时间值。
103.在一个示例中,将保留时间基于闭合块保留时间分组为不同的周期,其中一些或所有周期具有相同的持续时间。在一个示例中,保留时间被分组为50个周期,其中每个周期具有40小时的持续时间(例如,第一组具有小于或等于40小时的闭合块保留时间,第二组具有大于40小时且小于或等于80小时的闭合块保留时间,第三组具有大于80小时且小于或等于120小时的闭合块保留时间,以此类推),使得在步骤102中存储50个rt分类的rnn推断模型。
104.h.保留时间和周期分组
105.在一个示例中,基于编程和擦除循环的数目将将保留时间和闪存存储器设备的使用寿命分组为周期,并且针对多组保留时间的每一个和在闪存存储器设备的使用寿命中的多个周期中的每一个生成rnn推断模型(其可以被称为

rt-p/e分类的rnn推断模型

)。在该示例中,在步骤102中,将rt-p/e分类的rnn推断模型中的每一个存储在闪存控制器上,并且在步骤104中,对应于在步骤107中要读取的块的闭合块保留时间和当前时间周期来选择rt-p/e分类的rnn推断模型。例如,分组表15可以存储在数据存储装置4中,所述数据存储装置包括保留时间值、编程/擦除值和识别要使用的特定rt-p/e分类的rnn推断模型的对应值或指针。在步骤104中,使用在步骤107中要读取的块的当前闭合块保留时间和在步骤107中要读取的块的编程和擦除循环的当前数目在分组表15上执行查操作,以识别要使用的rt-p/e分类的rnn模型。图12h中示出了rt-p/e分类的rnn推断模型60h。由于rt-p/e分类的rnn推断模型60h对应于特定保留时间组和特定时间周期,因此其不具有作为输入神经元61h的输入的保留时间或编程/擦除值的数目。
106.在一个示例中,如上示例g所讨论的,基于闭合块保留时间将保留时间分组为50个不同的周期,并且闪存存储器设备的使用寿命被划分为七个不同的周期,如上文示例a中所论述,使得在步骤102中存储350个rt-p/e分类的rnn推断模型。
107.i.读取干扰分组
108.在一个示例中,将读取干扰分组并且针对多个读取干扰组中的每一个生成rnn推断模型(其可以被称为

rd分类的rnn推断模型

)。在该示例中,在步骤102中,rd分类的rnn推断模型中的每一个存储在闪存控制器上,并且在步骤104中,对应于在步骤107中要读取的块的读取干扰的当前数目来选择rd分类的rnn推断模型。例如,分组表15可以存储在数据存储装置4中,所述数据存储装置包括读取干扰值和识别要使用的特定rd分类的rnn推断模型的对应值或指针。在步骤104中,使用在步骤107中要读取的块的闭合块读取的当前数目在分组表15上执行查操作,以识别要使用的rd分类的rnn推断模型。图12i中示出了rd分类的rnn推断模型60i。由于rd分类的rnn推断模型60i对应于特定读取干扰组,因此其不具
有作为输入神经元61i的输入的读取干扰值。
109.在一个示例中,基于步骤107中要读取的块的闭合块读取的数目来分类读取干扰,其中第一类别包括0至100,000个闭合块读取、第二类别包括100,001至200,000个闭合块读取,第三类别包括200,001至300,000个闭合块读取,第四类别超过300,001个闭合块读取,使得在步骤102中存储4个rd分类的rnn推断模型。
110.j.读取干扰和周期分组
111.在一个示例中,读取干扰被分组;基于编程和擦除循环的数目将闪存存储器设备的使用寿命分组为周期;并且针对多个读取干扰组的每一个和闪存存储器设备的使用寿命的多个周期中的每一个来生成rnn推断模型(其可以被称为

rd-p/e分类的rnn推断模型

)。在该示例中,在步骤102中,将rd-p/e分类的rnn推断模型中的每一个存储在闪存控制器上,并且在步骤104中,对应于在步骤107中要读取的块的闭合块读取的当前数目和当前时间周期来选择rd-p/e分类的rnn推断模型。例如,分组表15可以存储在数据存储装置4中,所述数据存储装置包括读取干扰值、编程/擦除值和识别要使用的特定rd-p/e分类的rnn推断模型的对应值或指针。在步骤104中,使用在步骤107中要读取的块的当前闭合块读取的当前数目和对应于在步骤107中要读取的块的编程和擦除循环的当前数目的编程/擦除值在分组表15上执行查操作,以识别要使用的rd-p/e分类的rnn推断模型。图12j中示出了rd-p/e分类的rnn推断模型60j。由于rd-p/e分类的rnn推断模型60j对应于特定读取干扰组和特定的时间周期,因此rd-p/e分类的rnn推断模型将不具有作为输入神经元61jj的输入的读取干扰值或编程/擦除值。
112.在一个示例中,读取干扰被分组为4个不同的组,如上文示例i中所论述,并且闪存存储器设备的使用寿命被划分为七个不同的周期,如上文示例a中所论述,使得在步骤102中存储28个rd-p/e分类的rnn推断模型。
113.k.保留时间和读取干扰分组
114.在一个示例中,将保留时间和读取干扰分组并且针对多个保留时间组中的每一个和针对多个读取干扰组中的每一个来生成rnn推断模型(其可以被称为

rt-rd分类的rnn推断模型

)。
115.在一个示例中,保留时间被分组为50个组,并且如示例g中所论述,并且读取干扰被分组为4个不同的组,如示例i中所论述,使得在步骤102中存储200个rt-rd-分类的rnn推断模型。
116.l.保留时间、块和读取干扰分组
117.在一个示例中,对保留时间、块和读取干扰进行分组,并且针对多个保留时间组中的每一个,针对多个块组中的每一个,并且针对多个读取干扰组中的每一个来生成rnn推断模型(其可以被称为

rt-b-rd分类的rnn推断模型

)。
118.在一个示例中,保留时间被分组为50个组,并且如示例g中所论述,块被分组为10个组,如示例d中所论述,并且读取干扰被分组为4个不同的组,如示例i中所论述,使得在步骤102中存储2000个rt-b-rd分类的rnn推断模型。
119.m.保留时间、字线和读取干扰分组
120.在一个示例中,对保留时间、字线和读取干扰进行分组,并且针对多个保留时间组中的每一个,针对多个字线组中的每一个,并且针对多个读取干扰组中的每一个来生成rnn
推断模型(其可以被称为

rt-w-rd分类的rnn推断模型

)。
121.在一个示例中,保留时间被分组为50个组,并且如示例g中所论述,字线被分组为10个组,如示例b中所论述,并且读取干扰被分组为4个不同的组,如示例i中所论述,使得在步骤102中存储2000个rt-w-rd分类的rnn推断模型。
122.n.保留时间、字线、读取干扰和周期分组
123.在一个示例中,将保留时间、字线、读取干扰进行分组;基于编程和擦除循环的数目将闪存存储器设备的使用寿命分组为周期;并且针对多个保留时间组中的每一个、针对多个字线组中的每一个、针对多个读取干扰组中的每一个和针对闪存存储器设备的使用寿命中的多个周期中的每一个来生成rnn推断模型(其可以被称为

rt-w-p/e分类的rnn推断模型

)。
124.在一个示例中,保留时间被分组为50个组,并且如示例g中所论述,字线被分组为10个组,如示例b中所论述,并且读取干扰被分组为4个不同的组,如示例i中所论述,并且p/e循环被划分为7个周期,如示例a中所论述,使得在步骤102中存储14,000个rt-w-rd-p/e分类的rnn推断模型。
125.尽管上文将以上示例a至示例n和图12a至图12j描述为以tvs-re曲线的系数形式生成输出,但是另选地,输出神经元生成指示如图4b所示的不同tvso值处的误差量的输出值。
126.本发明的方法和装置对影响uber的多个因素进行建模并在闪存控制器上生成tvs-re曲线,所述tvs-re曲线准确地反映要读取的位置的物理特性、要读取的位置的结构特性(例如,要读取的字线和块)、要读取的位置的当前年龄/物理退化(例如,p/e循环的数量)和要读取的位置的当前暂时性特性(例如,闭合块读取干扰和闭合块保留时间)。因为所生成的tvs-re曲线准确地表示影响uber的因素,所以对应于tvs-re曲线的最小值所生成的tvso值将是用于执行读取的适当的tvso值(对应于在设备表征期间提供最小误差数量的tvso值)。使用tvso值来执行读取导致闪存控制器处的读取误差数量减少。在ssd的使用寿命期间,本发明的方法和装置的读取误差数量减少在可接受水平内有效地维持uber。
127.此外,在本说明书中,为了进行解释,阐述了许多具体细节以便提供对本发明的透彻理解。然而,对于本领域普通技术人员显而易见的是,可以在没有这些具体细节的情况下实践本发明。在一些情况下,为了避免模糊本发明,以框图形式而不是详细地示出熟知的结构和设备。充分详细地描述了这些实施方案以使得本领域普通技术人员能够实践本发明,并且应当理解,在不脱离本发明的范围的情况下,可以利用其他实施方案,并且可以作出逻辑、机械、电气和其他改变。

技术特征:


1.一种用于读取闪存存储器设备的方法,包括:将回归神经网络(rnn)推断模型存储在联接到所述闪存存储器设备的闪存控制器上或在联接到所述闪存控制器的存储器设备上,所述rnn推断模型被配置用于识别至少一个阈值电压偏移读取误差曲线,每个阈值电压偏移读取误差曲线识别取决于阈值电压偏移补偿值的误差数量;监测所述闪存存储器设备的操作以识别所述闪存存储器设备的一个或多个使用特性值;执行所存储的rnn推断模型的神经网络操作,以生成对应于所识别的使用特性值的阈值电压偏移读取误差曲线,用于所述神经网络操作的输入包括所识别的一个或多个使用特性值;识别对应于所生成的阈值电压偏移读取误差曲线的最小值的阈值电压偏移补偿值;以及使用所识别的阈值电压偏移补偿值处的阈值电压偏移读取来执行所述闪存存储器设备的读取。2.根据权利要求1所述的方法,其中用于所述神经网络操作的所述输入包括识别要读取的页面的一个或多个值。3.根据权利要求1所述的方法,其中所存储的rnn推断模型是单个rnn推断模型,所述单个rnn推断模型针对所述闪存存储器设备的使用寿命中的不同点预测阈值电压偏移读取误差曲线。4.根据权利要求1所述的方法,其中所存储的rnn推断模型是单个rnn推断模型,所述单个rnn推断模型针对所述闪存存储器设备的所述使用寿命中的不同点预测阈值电压偏移读取误差曲线,并且其中所述监测闪存存储器设备的所述操作进一步包括监测所述闪存存储器设备的所述操作以确定所述闪存存储器设备的所述使用寿命中的当前点;并且其中用于所述神经网络操作的所述输入包括识别所述闪存存储器设备的所述使用寿命中所确定的当前点的值。5.根据权利要求4所述的方法,其中识别所述闪存存储器设备的所述使用寿命中的所述当前点的所述值是多个编程和擦除循环。6.根据权利要求1所述的方法,其中所述将所述rnn推断模型存储在所述闪存控制器上包括存储多个rnn推断模型,所述多个rnn推断模型中的每一个针对所述闪存存储器设备的所述使用寿命中的不同周期来识别阈值电压偏移读取误差曲线,并且其中所述监测所述闪存存储器设备的所述操作包括监测所述闪存存储器设备的所述操作以确定所述闪存存储器设备的所述使用寿命中的当前周期,所述方法进一步包括:选择对应于所述闪存存储器设备的所述使用寿命中的所确定的当前周期的所述多个rnn推断模型中的一个,并且其中所述执行所述神经网络操作使用所述多个rnn推断模型中的所选择的一个。7.根据权利要求6所述的方法,其中所述监测所述闪存存储器设备的所述操作进一步包括对所述闪存存储器设备的每个块的编程和擦除循环的数目进行计数,所述闪存存储器设备的所述使用寿命中的所确定的当前周期包括包含要读取页面的所述块的编程和擦除
循环的所计数的数目。8.根据权利要求1所述的方法,其中所述监测所述闪存存储器设备的所述操作进一步包括对闭合块读取的数目进行计数,用于所述神经网络操作的所述输入包括指示包含要读取页面的所述块的闭合块读取的所计数的数目的值。9.根据权利要求1所述的方法,其中所述监测所述闪存存储器设备的所述操作进一步包括确定闭合块保留时间,用于所述神经网络操作的所述输入包括指示包含要读取页面的所述块的所确定的闭合块保留时间的值。10.根据权利要求1所述的方法,进一步包括:生成所述rnn推断模型,所述rnn推断模型被配置用于执行回归以识别所述至少一个阈值电压偏移读取误差曲线的系数。11.根据权利要求10所述的方法,其中所述生成所述rnn推断模型进一步包括:接收定义初始rnn推断模型的一个或多个配置文件作为输入;接收一个或多个阈值电压偏移读取测试结果集作为输入;根据所接收到的作为输入一个或多个阈值电压偏移读取测试结果集来创建阈值电压偏移读取训练数据集、阈值电压偏移读取验证数据集和阈值电压偏移读取测试数据集;在所述阈值电压偏移读取训练数据集上执行平滑函数以获得平滑的阈值电压偏移读取训练数据集;使用所述平滑的阈值电压偏移读取训练数据集来训练所述初始rnn推断模型以获得经训练的rnn推断模型;使用所述阈值电压偏移读取验证数据集来验证所述经训练的rnn推断模型,以及使用所述阈值电压偏移读取测试数据集来测试所述经训练的和经验证的rnn推断模型。12.根据权利要求1所述的方法,其中所述将所述rnn推断模型存储在所述闪存控制器上包括存储多个rnn推断模型,所述多个rnn推断模型中的每一个识别对应于影响阈值电压的因素的一个或多个分组的阈值电压偏移读取误差曲线,其中影响阈值电压的所述因素的所述一个或多个分组选自由以下组成的组:所述闪存存储器设备的一组字线、所述闪存存储器设备的一组块、时间周期、一组读取干扰和一组保留时间。13.一种闪存控制器,所述闪存控制器包括写入电路、被配置成使用阈值电压偏移读取操作来执行闪存存储器设备的读取的读取电路、以及被配置成解码所述读取的结果的解码器,所述闪存控制器包括:状态电路,所述状态电路用于监测所述闪存存储器设备的操作以识别一个或多个使用特性值;数据存储装置,所述数据存储装置被配置用于存储回归神经网络(rnn)推断模型,所述回归神经网络推断模型被配置成识别至少一个阈值电压偏移读取误差曲线,每个阈值电压偏移读取误差曲线识别取决于阈值电压偏移补偿值的误差数量;神经处理模块,所述神经处理模块联接到所述数据存储装置的神经处理模块,所述神经处理模块被配置成执行所存储rnn推断模型的神经网络操作,以生成对应于所识别的使用特性值的阈值电压偏移读取误差曲线,用于所述神经网络操作的所述输入包括所识别的一个或多个使用特性值;以及
最小功能模块,所述最小功能模块联接到所述神经处理模块,所述最小功能模块被配置成确定用于所生成的阈值电压偏移读取误差曲线的最小值,并且识别对应于所确定的最小值的阈值电压偏移补偿值;并且其中所述阈值电压偏移读取操作使用所识别的阈值电压偏移补偿值来执行所述读取。14.根据权利要求13所述的闪存控制器,其中用于所述神经网络操作的所述输入包括识别要读取的页面的一个或多个值。15.根据权利要求13所述的闪存控制器,其中所述数据存储装置被配置成存储多个rnn推断模型,所述多个rnn推断模型中的每一个对应于影响阈值电压的因素的一个或多个分组,其中影响阈值电压的所述因素的一个或多个分组选自由以下组成的组:所述闪存存储器设备的一组字线、所述闪存存储器设备的一组块、时间周期、一组读取干扰和一组保留时间。16.根据权利要求13所述的闪存控制器,其中所述数据存储装置被配置成存储多个rnn推断模型,所述多个rnn推断模型中的每一个识别针对所述闪存存储器设备的字线组的阈值电压偏移读取误差曲线,其中所述神经处理模块被配置成对应于要执行的所述读取的所述字线来选择所述多个rnn推断模型中的所述一个并且在所述多个rnn推断模型中的所选择的一个上执行所述神经网络操作。17.根据权利要求13所述的闪存控制器,其中所述数据存储装置被配置成存储多个rnn推断模型,所述多个rnn推断模型中的每一个识别针对所述闪存存储器设备的块组的阈值电压偏移读取误差曲线,其中所述神经处理模块被配置成对应于要执行的所述读取的所述块来选择所述多个rnn推断模型中的所述一个并且在所述多个rnn推断模型中的所选择的一个上执行所述神经网络操作。18.根据权利要求13所述的闪存控制器,其中所述数据存储装置被配置成存储多个rnn推断模型,所述多个rnn推断模型中的每一个识别针对所述闪存存储器设备的读取干扰组的阈值电压偏移读取误差曲线,其中所述神经处理模块被配置成对应于要读取的页面的所述块的多个闭合块读取来选择所述多个rnn推断模型中的所述一个,并且在所述多个rnn推断模型中的所选择的一个上执行所述神经网络操作。19.根据权利要求13所述的闪存控制器,其中所述数据存储装置被配置成存储多个rnn推断模型,所述多个rnn推断模型中的每一个针对所述闪存存储器设备的一组字线中的一个或多个字线、所述闪存存储器设备的一组块、时间周期、一组读取干扰、一组保留时间来识别阈值电压偏移读取误差曲线。20.一种固态驱动器(ssd),包括:多个闪存存储器设备;闪存控制器,所述闪存控制器联接到所述闪存存储器设备,所述闪存控制器包括:写入电路,所述写入电路被配置成将码字编程到所述闪存存储器设备中的每一个中;读取电路,所述读取电路被配置成使用阈值电压偏移读取操作来执行所述闪存存储器设备的读取;
解码器,所述解码器联接到所述读取电路并且被配置成对所述读取的结果进行解码;状态电路,所述状态电路用于监测所述闪存存储器设备的操作以针对每个闪存存储器设备识别一个或多个使用特性值;数据存储装置,所述数据存储装置被配置用于存储回归神经网络(rnn)推断模型,所述rnn推断模型被配置成识别至少一个阈值电压偏移读取误差曲线,每个阈值电压偏移读取误差曲线识别取决于阈值电压偏移补偿值的误差数量;神经处理模块,所述神经处理模块联接到所述数据存储装置,所述神经处理模块被配置成执行所存储rnn推断模型的神经网络操作,以生成对应于所识别的使用特性值的阈值电压偏移读取误差曲线,用于所述神经网络操作的所述输入包括所识别的一个或多个使用特性值;以及最小功能模块,所述最小功能模块联接到所述神经处理模块,所述最小功能模块被配置成确定用于所生成的阈值电压偏移读取误差曲线的最小值,并且识别对应于所确定的最小值的阈值电压偏移补偿值;并且其中所述阈值电压偏移读取操作使用所识别的阈值电压偏移补偿值来执行所述读取。

技术总结


公开了一种用于读取闪存存储器设备的方法和装置。回归神经网络(RNN)推断模型存储在闪存控制器上。RNN推断模型被配置用于识别至少一个阈值电压偏移读取误差(TVS-RE)曲线,该曲线识别取决于阈值电压偏移补偿(TVSO)值的误差数量。监测闪存存储器设备的操作以识别使用特性值。执行RNN推断模型的神经网络操作以生成对应于使用特性值的TVS-RE曲线。用于神经网络操作的输入包括使用特性值。对应于TVS-RE曲线的最小值来标识TVSO值。使用TVSO值处的阈值电压偏移读取来执行闪存存储器设备的读取。值电压偏移读取来执行闪存存储器设备的读取。值电压偏移读取来执行闪存存储器设备的读取。


技术研发人员:

L

受保护的技术使用者:

微芯片技术股份有限公司

技术研发日:

2021.01.04

技术公布日:

2023/2/3

本文发布于:2024-09-22 05:34:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/61616.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:闪存   推断   存储器   所述
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议