CN116830200A - 用于读取闪存存储器设备的方法和装置 - Google Patents
用于读取闪存存储器设备的方法和装置 Download PDFInfo
- Publication number
- CN116830200A CN116830200A CN202180092032.7A CN202180092032A CN116830200A CN 116830200 A CN116830200 A CN 116830200A CN 202180092032 A CN202180092032 A CN 202180092032A CN 116830200 A CN116830200 A CN 116830200A
- Authority
- CN
- China
- Prior art keywords
- reliability
- neural network
- tvso
- reliability state
- flash memory
- 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
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000013528 artificial neural network Methods 0.000 claims abstract description 70
- 238000012545 processing Methods 0.000 claims description 28
- 230000001537 neural effect Effects 0.000 claims description 26
- 238000013500 data storage Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 20
- 239000007787 solid Substances 0.000 claims description 4
- 230000000306 recurrent effect Effects 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims 1
- 210000004205 output neuron Anatomy 0.000 description 34
- 238000012360 testing method Methods 0.000 description 32
- 210000002364 input neuron Anatomy 0.000 description 20
- 238000012549 training Methods 0.000 description 20
- 210000004027 cell Anatomy 0.000 description 14
- 230000014759 maintenance of location Effects 0.000 description 10
- 238000012512 characterization method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 5
- 238000009499 grossing Methods 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 230000002688 persistence Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001373 regressive effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种用于读取闪存存储器设备的方法包括存储可靠性状态分类神经网络(CNN)模型的配置文件和回归神经网络(RNN)推理模型的配置文件,以及存储对应于可靠性状态的可靠性状态标签。识别当前P/E循环次数,并且选择对应于该当前P/E循环次数的可靠性状态CNN模型。执行所选择的可靠性状态CNN模型的神经网络操作以识别预测的可靠性状态。识别对应的可靠性状态标签,并且选择对应的RNN推理模型。使用该可靠性状态标签作为输入,执行所选择的RNN推理模型的神经网络操作,以生成指示阈值电压偏移读取误差(TVS‑RE)曲线的形状的输出。识别对应于该TVS‑RE曲线的最小值的阈值电压偏移补偿(TVSO)值,并且使用所识别的TVSO值处的阈值电压偏移读取来执行读取。
Description
相关申请的交叉引用
本申请要求于2021年2月25日提交的美国临时专利申请序列号63/153,906以及于2021年4月20日提交的美国非临时专利申请序列号17/234,993的优先权,这些专利申请中的每个专利申请的内容全文以引用方式并入本文。
背景技术
一些固态驱动器(SSD)包括闪存控制器,该闪存控制器使用阈值电压偏移读取来读取闪存存储器设备,以获得客户端和企业SSD所需的低水平的不可校正比特误码率(UBER)。通过向要读取的闪存存储器设备发送阈值电压偏移读取指令来执行阈值电压偏移读取。一个或多个阈值电压偏移补偿(TVSO)值与阈值电压偏移读取指令一同发送。TVSO值指示用于执行读取的每个阈值电压与由闪存存储器设备的制造商指定的对应默认阈值电压的补偿的量。多层单元(MLC)闪存存储器设备在每个单元中存储两个信息比特并且针对每次读取需要三个TVSO值;三层单元(TLC)闪存存储器设备在每个单元中存储三个信息比特并且针对每次读取需要七个TVSO值;四层单元(QLC)闪存存储器设备在每个单元中存储四个信息比特并且针对每次读取需要15个TVSO值;并且五层单元(PLC)闪存存储器设备在每个单元中存储五个信息比特并且针对每次读取需要31个TVSO值。
执行闪存表征测试过程以识别用于执行特定闪存存储器设备的读取的最佳TVSO值,通常称为阈值电压偏移补偿最小(TVSOmin)值。TVSOmin值通常为当在对应于特定可靠性状态的测试条件下读取闪存存储器设备时产生最少误差的TVSO值集。可靠性状态是指示各个闪存存储器设备的使用年限和使用情况的条件集。存在用于确定TVSOmin值的许多不同的过程,并且在许多情况下,在闪存表征测试期间识别的TVSOmin值集并非产生最少误差的实际TVSO值,而是满足一个或多个性能度量(诸如例如,特定的原始误码率(RBER))的TVSO值集。
使用阈值电压偏移读取指令来执行读取的闪存控制器通常包括用于监测闪存存储器设备的物理特性的固件,并且使用所监测的物理特性来确定用于执行每个闪存存储器设备的读取的TVSO值。将用于执行读取的TVSO值(在下文中称为“TVSO读取-当前”值或TVSO-RC值)通常是在每次读取之前由闪存控制器基于要读取的物理位置(例如,块/页面)以及如由闪存控制器测量的要读取的闪存存储器设备的当前物理特性通过以下操作来确定的:使用要读取的物理位置和闪存存储器设备的当前物理特性(例如,编程/擦除循环次数、保持时间、读取干扰数量和温度)在查找表中执行查找操作。TVSO-RC值通常为在闪存表征测试中识别的TVSOmin值集中的一个TVSOmin值集。
即使在断电状态期间,也必须维持当前物理特性,以确保正使用正确的TVSO值来读取每个闪存存储器设备。此外,需要复式表来指示用于执行读取的各种物理特性和对应的TVSO-RC值。这些复式表也占用大量存储空间。
因此,需要标识在闪存存储器设备的每次读取中要使用的TVSO值,以便在SSD的寿命期间将UBER维持在可接受的水平内,从而减少物理特性所需的存储和维护量。
发明内容
一种用于读取闪存存储器设备的方法包括存储多个可靠性状态分类神经网络(CNN)模型的配置文件、多个回归神经网络(RNN)推理模型的配置文件以及多个可靠性状态标签集。每个可靠性状态标签集与多个可靠性状态中的一个可靠性状态相关联,并且该可靠性状态CNN模型中的每个可靠性状态CNN模型与编程/擦除(P/E)循环范围相关联。监测该闪存存储器设备的操作以识别该闪存存储器设备的当前编程/擦除(P/E)循环次数。选择与对应于该当前P/E循环次数的P/E循环范围相关联的可靠性状态CNN模型中的一个可靠性状态CNN模型,并且执行所选择的可靠性状态CNN模型的神经网络操作以识别预测的可靠性状态。识别与该预测的可靠性状态相关联的可靠性状态标签集。选择对应于该预测的可靠性状态多个RNN推理模型中的一个RNN推理模型,并且执行所选择的RNN推理模型的神经网络操作,该神经网络操作使用所识别的可靠性状态标签作为输入,以生成指示阈值电压偏移读取误差(TVS-RE)曲线的形状的输出值。识别接近所生成的TVS-RE曲线的最小值的阈值电压偏移补偿(TVSO)值,并且使用所识别的TVSO值处的阈值电压偏移读取来执行该闪存存储器设备的读取。
本发明公开了一种闪存控制器,该闪存控制器包括数据存储模块,该数据存储模块被配置为存储多个可靠性状态CNN模型的配置文件、至少一个RNN推理模型的配置文件以及多个可靠性状态标签集,每个可靠性状态标签集与多个可靠性状态中的一个可靠性状态相关联,并且该可靠性状态CNN模型中的每个可靠性状态CNN模型与编程/擦除(P/E)循环范围相关联。状态模块被配置为识别当前编程/擦除循环次数。神经处理模块耦接到该数据存储模块并耦接到控制模块。该神经处理模块被配置为执行所存储的与对应于该当前P/E循环次数的P/E循环范围相关联的可靠性状态CNN模型中的一个可靠性状态CNN模型的神经网络操作以识别预测的可靠性状态,以及执行对应于该预测的可靠性状态的RNN推理模型的神经网络操作,每个神经网络操作使用与该预测的可靠性状态相关联的可靠性状态标签集作为输入,以生成指示读取该闪存存储器设备所需的所有阈值电压区域的TVS-RE曲线的形状的输出。最小函数模块被配置为识别读取该闪存存储器设备所需的所有阈值电压区域的TVSO值,所识别的TVSO值中的每个TVSO值接近该TVS-RE曲线中的一个TVS-RE曲线的最小值。读取模块被配置为通过向该闪存存储器设备发送包括所识别的TVSO值的阈值电压偏移读取指令来执行该闪存存储器设备的读取。
本发明公开了一种固态驱动器(SSD),该固态驱动器包括闪存存储器设备和耦接到该闪存存储器设备的闪存控制器。该闪存控制器包括数据存储模块,该数据存储模块被配置为存储多个可靠性状态分类神经网络(CNN)模型的配置文件、多个回归神经网络(RNN)推理模型的配置文件以及多个可靠性状态标签集,每个可靠性状态标签集与多个可靠性状态中的一个可靠性状态相关联,并且该可靠性状态CNN模型中的每个可靠性状态CNN模型与编程/擦除(P/E)循环范围相关联。神经处理模块耦接到该数据存储模块并耦接到控制模块。该神经处理模块被配置为执行所存储的与对应于当前P/E循环次数的P/E循环范围相关联的可靠性状态CNN模型的神经网络操作以识别预测的可靠性状态,以及执行对应于该预测的可靠性状态的RNN推理模型的神经网络操作,每个神经网络操作使用与该预测的可靠性状态相关联的可靠性状态标签集作为输入,以生成指示读取该闪存存储器设备所需的所有阈值电压区域的TVS-RE曲线的形状的输出。该闪存控制器包括状态模块,该状态模块被配置为识别当前编程/擦除(P/E)循环次数。该闪存控制器包括神经处理模块,该神经处理模块耦接到该数据存储模块并耦接到该控制模块。该闪存控制器包括最小函数模块和读取模块,该最小函数模块被配置为识别读取该闪存存储器设备所需的所有阈值电压区域的TVSO值,所识别的TVSO值中的每个TVSO值接近该TVS-RE曲线中的一个TVS-RE曲线的最小值,该读取模块被配置为通过向该闪存存储器设备发送包括所识别的TVSO值的阈值电压偏移读取指令来执行该闪存存储器设备的读取。
附图说明
包括附图以提供对本发明的进一步理解,并且该附图被并入本说明书中并构成本说明书的一部分。附图示出各种实施方案。除非特别指明,否则在该简要描述中提及的附图不应被理解为按比例绘制。
图1是示出用于执行闪存存储器设备的读取的方法的示意图。
图2是示出使用来自代表性闪存存储器设备的测试的结果生成的示例性阈值电压偏移读取误差曲线的图表,其中误差数量显示在y轴上,并且TVSO显示在x轴上。
图3是示出使用图2中示出的数据集生成的示例性经平滑的阈值电压偏移读取误差曲线的图表,其中误差数量显示在y轴上,并且TVSO显示在x轴上。
图4A至图4B是示出可靠性状态CNN推理模型的框图。
图5A至图5B是示出RNN推理模型的框图。
图6是示出SSD的框图。
具体实施方式
图1示出了用于读取闪存存储器设备的方法100,该方法包括生成(101)多个可靠性状态CNN模型。如本申请中使用的术语“可靠性状态CNN模型”包括被配置为预测可靠性状态的所有CNN模型。在一个示例中,生成可靠性状态CNN模型,如于2021年3月26日提交的标题为“用于确定闪存存储器设备的实际磨损何时不同于闪存存储器设备的可靠性状态的方法和装置(Method and Apparatus for Determining when Actual Wear of a FlashMemory Device Differs from Reliability States for the Flash Memory Device)”的美国非临时专利申请序列号17/213,675中所示,该专利申请全文以引用方式并入本文。测试代表性闪存存储器设备以识别随着该代表性闪存存储器设备老化而发生的误差的数量。该代表性闪存存储器设备是与将使用方法100读取的闪存存储器设备类似或相同的设备。在一个示例中,将代表性闪存存储器设备插入测试计算机系统的测试夹具中,并且执行测试,以针对多个循环条件中的每个循环条件(其中每个循环条件对应于特定可靠性状态)识别针对每个字线的闪存表征测试误差数量(FCT-ERROR值)。
在以下示例中,使用格式“TVSOn”来指示TVSO值,其中n指示由闪存存储器设备的制造商指定的阈值电压区域。更具体地,第一TVSO区域值(TVSO1)指示用于读取第一阈值电压区域的TVSO值,第二TVSO区域值(TVSO2)指示用于读取第二阈值电压区域的TVSO值,第三TVSO区域值(TVSO3)指示用于读取第三阈值电压区域的TVSO值,第四TVSO区域值(TVSO4)指示用于读取第四阈值电压区域的TVSO值,第五TVSO区域值(TVSO5)指示用于读取由闪存存储器的制造商指定的第五阈值电压区域的TVSO值,第六TVSO区域值(TVSO6)指示用于读取第六阈值电压区域的TVSO值,第七TVSO区域值(TVSO7)指示用于读取第七阈值电压区域的TVSO值,以此类推。在一个示例中,针对每个TVSO区域定义TVSO区域索引,其中TVSO1的TVSO区域索引具有值1,TVSO2的TVSO区域索引具有值2,TVSO3的TVSO区域索引具有值3,以此类推。每个电压区域与读取电压阈值电平相关,并且因此在SLC中仅提供单个区域,而在MLC中提供多个电压区域。
用于执行读取以识别FCT-ERROR值的TVSO值将被称为闪存表征读取阈值电压偏移补偿(FCR-TVSO)值,并且对于SLC非易失性存储器设备的读取可以以FCR-TVSO(TVSO1)的形式表示,对于MLC非易失性存储器设备的读取可以以FCR-TVSO(TVSO1、TVSO2、TVSO3)的形式表示,对于TLC非易失性存储器设备的读取可以以FCR-TVSO(TVSO1、TVSO2、TVSO3、TVSO4、TVSO5、TVSO6、TVSO7)的形式表示;对于TLC非易失性存储器设备的读取可以以FCR-TVSO(TVSO1、TVSO2、TVSO3、TVSO4、TVSO5、……、TVSO15)的形式表示,并且对于PLC非易失性存储器设备的读取可以以FCR-TVSO(TVSO1、TVSO2、TVSO3、TVSO4、TVSO5、……、TVSO31)的形式表示。在一个示例中,对于SLC非易失性存储器设备,通过“扫描操作”执行代表性闪存存储器设备的每个字线的读取,其中在特定代表性闪存存储器设备能够被读取的每个TVSO值处执行读取。在一个示例中,对于非SLC非易失性存储器设备,通过“扫描操作”执行代表性闪存存储器设备的每个字线的读取,其中在特定代表性闪存存储器设备能够被读取的每个TVSO值处执行读取,同时将其他TVSO区域设为零值(例如,在闪存存储器设备能够被读取的最小TVSO值处开始且在每次读取之后递增1)。因此,每个FCR-TVSO值将具有非零的单个TVSOn值,并且其他TVSOn的值将为0。
图2示出了通过扫描具有从-24到+24的TVSO值的代表性闪存存储器设备而生成的阈值电压偏移读取误差(TVS-RE)曲线的示例,每条TVS-RE曲线将误差数量识别为在循环条件对应于可靠性状态中的一个可靠性状态并且对应于读取闪存存储器设备所需的阈值电压区域中的一个阈值电压区域的TVSO值的函数。如图2中可见,由于闪存读取电路的性质,在每条曲线的误差数量中存在波动(噪声)。该噪声在训练神经网络模型时可能对学习过程造成负面影响,这可能导致神经网络结果中存在误差。为了避免此问题,平滑函数(例如,诸如移动平均值或多项式插值算法)可选地应用于测试结果,以生成经平滑的阈值电压偏移读取数据集,其中FCT-ERROR值被调整以获得对应的经平滑的误差值(ERROR)。图3示出了通过对图2的FCT-ERROR值进行平滑以获得ERROR值而生成的TVS-RE曲线的示例。
在一个示例中,测试和平滑生成数据记录,该数据记录针对每个测试指示以下值中的一个或多个值(其中每个测试对应于单次读取):指示被测试的字线的字线索引值(WORDLINE INDEX)、指示正被测试的块的块索引值(BLOCK INDEX)、指示正被测试的页面的页面索引值(PAGE INDEX)、指示正被测试的字线的保持时间的保持时间值(RETENTIONTIME)、指示正被测试的字线的读取干扰数量的读取干扰值(READ DISTURB)、指示正被测试的代表性闪存存储器设备的循环温度的温度值(TEMPERATURE)、指示正被测试的字线(或块)的当前P/E循环次数的P/E循环值(P/E CYCLES)、以及指示读取中的误差数量的误差值(ERROR)(如在平滑操作中所调整的)。
图4A至图4B示出了可在步骤101中生成的可靠性状态CNN模型40a至40b的示例。应当理解,可靠性状态模型40a至40b是示例性的,并且可以使用输入、输出和隐藏层的许多其他组合。可靠性状态CNN模型40a、40b包括输入层41,该输入层包括输入神经元41a-41c和隐藏神经元层42-44。可靠性状态CNN模型40a包括输出层45,该输出层包括指示预测的可靠性状态的单个输出神经元45a。预测的可靠性状态是指当执行可靠性状态CNN模型的神经网络操作时由输出神经元指示的可靠性状态。图4B中的可靠性状态CNN模型40b包括输出层48,该输出层包括用于多个可靠性状态(分别表示为RS1、RS2、RS3、RS4、RS5、……、RSn)中的每个可靠性状态的一个输出神经元48a。在该示例中,输出神经元48a的数量等于可靠性状态的数量,并且每个输出神经元48a指示由特定输出神经元表示的可靠性状态为正确可靠性状态的概率,其中具有最大数值的输出神经元48a指示预测的可靠性状态。在一个示例中,向输出应用激活函数(例如,softmax激活函数),以确保输出层48的相应输出神经元的概率总和为一。
将来自闪存表征测试的数据记录除以f个P/E循环值,并且形成多个可靠性状态CNN模型,每个可靠性状态CNN模型对于特定P/E循环值范围有效并且与其相关联。更具体地,用于训练每个可靠性状态CNN模型的训练数据文件仅包括用于测试的那些训练数据文件,该测试的P/E循环次数在特定可靠性状态CNN模型的P/E循环值范围内。在一个示例中,使用在第一P/E循环值范围(例如,0次至1,000次P/E循环)内执行的测试的训练数据文件进行训练以创建第一可靠性状态CNN模型,使用在第二P/E循环值范围(例如,1001次至2,000次P/E循环)内执行的测试的训练数据文件进行训练以创建第二可靠性状态CNN模型。在一个示例中,生成7个P/E分类可靠性状态CNN模型,包括第三可靠性状态CNN模型(2,001次至3,000次P/E循环)、第四可靠性状态CNN模型(3,001次至4,000次P/E循环)、第五可靠性状态CNN模型(4,001次至5,000次P/E循环)、第六可靠性状态CNN模型(5,001次至6,000次P/E循环)和第七可靠性状态CNN模型(6,001次至7,000次P/E循环),其中7,000次P/E循环被视为寿命结束。
在一个示例中,在训练期间,将WORDLINE INDEX输入到输入神经元41a中,将BLOCKINDEX输入到神经元41b中,并且将PAGE INDEX输入到神经元41c中,以训练相应CNN模型40a或40b来辨识特定可靠性状态。因此,WORDLINE INDEX、BLOCK INDEX和PAGE INDEX是所得的可靠性状态CNN模型40a或40b的特征。在训练之后,测试每个所得的可靠性状态CNN模型,以确定所得的模型是否能够准确预测正确可靠性状态。当模型未能准确预测正确类别时,移除训练数据记录并重复训练。执行移除训练数据记录和重复训练的过程,直到所得的CNN模型一起准确预测所有可靠性状态。
当模型未能准确预测正确可靠性状态时,可以选择与对特定当前物理特性响应较差的TVSO区域扫描相对应的数据记录,以从训练数据集中移除。在TLC的一个示例中,移除对应于读取上部页面(例如,TVSO1、TVSO3、TVSO5和TVSO7)、中间页面(例如,TVSO2和TVSO6)或下部页面(例如,TVSO4)中的一者或多者所需的TVSO值的训练数据记录。例如,如果从闪存表征测试已知上部页面对保持更敏感,并且如果CNN模型未能准确预测其中保留大于零的可靠性状态,则移除在对应于下部页面和中间页面(例如,TVSO2、TVSO4和TVSO6)的阈值电压区域中具有非零TVSO值的记录可以产生更好的结果。由此,移除主要向可靠性状态CNN模型添加噪声的阈值电压区域处的读取的数据记录。
生成(102)多个RNN推理模型。每个RNN推理模型被配置为识别读取闪存存储器设备所需的阈值电压区域中的一个阈值电压区域的TVS-RE曲线的形状,其中每条TVS-RE曲线将误差数量识别为TVSO值的函数。在一个示例中,生成RNN推理模型,如于2021年11月5日提交的标题为“用于识别待用于闪存存储器设备的读取的阈值电压的回归神经网络(Regression Neural Network for Identifying Threshold Voltages to be Used inReads of Flash Memory Devices)”的美国非临时专利申请序列号17/089,891中所示,该专利申请全文以引用方式并入本文。
在步骤102中,对于每个可靠性状态,针对读取闪存存储器设备2所需的每个阈值电压区域生成RNN推理模型。每个RNN推理模型生成指示TVS-RE曲线的形状的输出,该TVS-RE曲线对应于可靠性状态中的一个可靠性状态并且对应于读取每个闪存存储器设备2所需的阈值电压区域中的一个阈值电压区域。
可靠性状态可以使用标识每个可靠性状态的数值来指示,在下文中被称为可靠性状态索引(RSI)。在一个示例中,RSI 1指示第一可靠性状态,RSI 2指示第二可靠性状态,以此类推。
在一个示例中,每个RNN模型与相应的TVSO区域索引相关联,该TVSO区域索引指示特定RNN推理模型所表示的阈值电压区域并且与相应RSI相关联。例如,当闪存存储器设备2是MLC设备时,对于第一可靠性状态,第一RNN推理模型与TVSO区域索引1和RSI 1相关联;第二RNN推理模型与TVSO区域索引2和RSI 1相关联;并且第三RNN推理模型与TVSO区域索引3和RSI 1相关联。
可以使用在步骤101中用于生成可靠性状态CNN模型的相同数据记录来执行训练:然而,除了使用WORDLINE INDEX、BLOCK INDEX和PAGE INDEX作为特征之外,还使用以下附加特征中的一者或多者:RETENTION TIME、READDISTURB、TEMPERATURE和P/ECYCLES。
图5A示出了示例性RNN推理模型50a的示意图,该示例性RNN推理模型包括多个输入神经元51a至51g、多个输出神经元55a和隐藏神经元层52至54。在一个示例中,在训练期间,将WORDLINE INDEX输入到输入神经元51a中,将BLOCK INDEX输入到输入神经元51b中,将PAGE INDEX输入到输入神经元51c中,将RETENTION TIME输入到输入神经元51d中,将READDISTURB输入到输入神经元51e中,将TEMPERATURE输入到输入神经元51f中,并且将P/ECYCLES输入到输入神经元51g中。输出神经元55a以系数值的形式生成输出,该系数值指示特定阈值电压区域的TVS-RE曲线的形状(并由此定义)。RNN推理模型50a的输出被示出为包括六个系数,示出为第一系数、第二系数、第三系数、第四系数、第五系数和第六系数。应当理解,RNN推理模型50a可以具有任何数量的系数,并且可以改变系数的数量以实现处理时间与准确度之间的平衡。
在一个示例中,系数以y=mx+q的形式指示直线,其中m和q是两个系数。在其他示例中,线可以是非线性的,并且系数可以呈y=a+bx+cx2+cx3+dx4+ex5的形式,其中a、b、c、d和e为系数(例如,第一系数、……、第六系数)。
在图5B所示的示例中,输出神经元55b生成指示对应于TVSO值的位置处的误差数量的值。在该示例中,输出神经元55b包括用于每个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)。
图4A至图5B所示的示例性神经网络模型包括用于接收PAGE INDEX的输入神经元,并且PAGE INDEX是用于训练图4A至图5B所示的神经网络模型的特征。另选地,在训练期间不使用PAGE INDEX作为特征,并且图4A至图5B所示的神经网络模型中的每个神经网络模型都不包括输入神经元41c和51c。
图6中示出了SSD 15,其包括耦接到用于存储数据的多个闪存存储器设备2的闪存控制器3。在本实施方案中,闪存存储器设备2为NAND设备,并且SSD 15包括一个或多个电路板,主机连接器插座14、闪存控制器3和闪存存储器设备2附接到该一个或多个电路板上。SSD 15也可以包括一个或多个存储器设备13,诸如动态随机存取存储器(DRAM),该一个或多个存储器设备可以为独立集成电路设备,该独立集成电路设备附接到一个或多个电路板并且电耦接到闪存控制器3。
闪存控制器3被配置为:通过主机连接器插座14从主机计算机接收读取指令和写入指令,并且在闪存存储器设备2的存储器单元上执行编程操作、擦除操作和读取操作,以完成来自主机计算机的指令。例如,在经由主机连接器插座14从主机计算机接收到写入指令时,闪存控制器3能够操作为通过执行编程操作(以及当需要时,擦除操作)将码字编程到一个或多个闪存存储器设备2中来将数据存储在SSD 15中。
闪存控制器3包括数据存储模块4、状态模块5、读取模块6、解码模块7、写入模块8、控制模块9、神经处理模块10和最小函数模块11。控制模块9耦接到数据存储模块4、状态模块5、读取模块6、解码模块7、写入模块8、最小函数模块11和神经处理模块10。解码模块7还耦接到读取模块6和状态模块5。状态模块5还耦接到数据存储模块4、读取模块6、写入模块8和神经处理模块10。读取模块6还耦接到数据存储模块4、神经处理模块10和最小函数模块11。最小函数模块11还耦接到数据存储模块4、状态模块5、控制模块9和神经处理模块10。神经处理模块10还耦接到数据存储模块4。
数据存储模块4存储可靠性状态CNN模型的配置文件21、RNN推理模型的配置文件22、可靠性状态标签23和可选的TVSO-RC选择表27。可选的TVSO-RC选择表27耦接到读取模块6。TVSO-RC选择表27包括将用于执行读取的一个或多个索引以及对应的TVSO值(例如,对应于块、字线和/或页面的索引和对应于P/E循环次数的索引以及针对执行读取所需的每个阈值电压区域的TVSO值)。
下列各项中的一项或多项存储于SSD 15中,或者存储于数据存储模块4、闪存存储器设备2或存储器设备13中:可靠性状态CNN模型的配置文件21、RNN推理模型的配置文件22、可靠性状态标签23、可靠性状态CNN选择表24和RNN选择表25、P/E计数表26以及可选的TVSO-RC选择表27。神经处理模块10耦接到数据存储模块4,使得可以在其上加载可靠性状态CNN模型的配置文件21和RNN推理模型的配置文件22。
在一个示例中,神经处理模块10包括具体地被配置为执行神经网络操作的特化的硬件模块(例如,特化的可配置加速器),有时称为神经网络引擎(例如,可编程逻辑电路)。另选地,神经处理模块10可以包括处理器和用于执行神经网络操作的软件。在一个示例中,闪存控制器3能够操作为通过接收指示来自测试代表性闪存存储器设备的结果的测试数据来执行步骤101至步骤102,并且闪存控制器3能够操作为在步骤101至步骤102中构造神经网络模型和相关联的配置文件。
闪存控制器3为集成电路设备,并且模块5至模块11中的一些或全部模块包括可以为用于执行操作的专用电路的电路,并且模块5至模块11中的一些或全部模块可以为固件,其包括在用于执行闪存控制器3的操作的一个或多个处理器上执行的指令,其中该指令存储于模块5至模块11中的一个或多个模块的寄存器中和/或存储于数据存储模块4或存储器设备13中。模块5至模块11中的一些或全部模块包括用于执行指令的处理器,并且指令在闪存控制器3的操作之前加载到闪存控制器3中(例如,通过主机连接器插座14)。在一个示例中,一个固件映像在闪存控制器3的操作之前被加载到闪存控制器3中(例如,通过主机连接器插座14),该固件映像包括将由模块5至模块11中的一个或多个模块执行的指令。
闪存存储器设备2可以为SLC、MLC、TLC、QLC或PLC NAND设备。在本实施方案中,闪存存储器设备2能够执行宽范围的阈值电压偏移读取,包括且不限制于由整数TVSO值(诸如,-n、……、-2、-1、0、+1、+2、……、n)指定的读取。每个闪存存储器设备2可以是封装的半导体裸片或“芯片”,其通过耦接每个闪存存储器设备2和闪存控制器3之间的指令、数据和其他信息的导电路径来耦接到闪存控制器3。在从主机计算机接收到写入指令时,写入模块8能够操作为将所接收的数据编码为码字,该码字与对应编程指令一起被发送到特定闪存存储器设备2。闪存存储器设备2能够操作为通过编程闪存存储器设备2的单元来执行所请求的编程指令。在一个示例中,每个闪存存储器设备2包括被组织成块和页面的NAND存储器单元,其中每个块由共享相同组字线的NAND串构成。每个逻辑页面由属于同一字线的单元构成。每个逻辑块内的逻辑页面的数量通常是16的倍数(例如,64、128)。在本实施方案中,逻辑页面是用于从每个闪存存储器设备2的NAND存储器单元读取以及向其写入的最小可寻址单元,并且逻辑块是最小可擦除单元。然而,应当理解,小于整个逻辑页面的编程也许是可能的,这取决于NAND阵列的结构。尽管闪存存储器设备2被示出为是NAND设备,但是应当理解,闪存存储器设备2可以是使用阈值电压来读取闪存存储器设备2的存储器单元的任何类型的存储器设备。
重新参考图1,存储(103)可靠性状态CNN模型的配置文件、RNN推理模型的配置文件和对应于每个可靠性状态的标签,这些标签在下文中被称为“可靠性状态标签”。数据存储模块4被配置为存储在步骤101中生成的可靠性状态CNN模型的配置文件21、在步骤102中生成的RNN推理模型的配置文件22以及用于可靠性状态CNN模型21的可靠性状态中的每个可靠性状态的可靠性状态标签23。
可靠性状态CNN模型、RNN推理模型和可靠性状态标签23可使用用于执行代表性半导体设备的测试的相同计算系统来创建,并且随后可在将SSD 15交付给客户之前下载并安装到SSD 15中。另选地,SSD 15能够操作为执行步骤101至步骤102中的一些或全部步骤,以生成可靠性状态CNN模型21和RNN推理模型22的可靠性状态标签23配置文件。
在一个示例中,配置文件21、22和可靠性状态标签23最初存储于存储器设备13中和/或一个或多个闪存存储器设备2上,并且可靠性状态CNN模型的配置文件21、RNN推理模型的配置文件22和可靠性状态标签23在闪存控制器3启动时或在闪存控制器3的操作需要时被加载到数据存储模块4中。
监测(104)闪存存储器设备2的操作以识别闪存存储器设备2的当前P/E循环次数。在一个示例中,状态模块5能够操作为监测每个闪存存储器设备2的操作以识别闪存存储器设备2的P/E循环次数。所确定的P/E循环次数可由状态模块5的计数器识别,并且有时可将该计数器的值存储(例如,作为表)于数据存储模块4、闪存存储器设备2或存储器设备13中(例如,在闪存控制器3和/或SSD 15断电或低功率模式下存储于闪存存储器设备2中,并且在闪存控制器3启动或需要时加载到数据存储模块4和/或存储器设备13中)。在一个示例中,要在步骤112中读取的闪存存储器设备的块的当前P/E循环次数存储于P/E计数表26中。
选择(105)对应于该当前P/E循环次数的可靠性状态CNN模型。在一个示例中,可靠性状态CNN选择表24指示P/E循环次数和用于识别要使用的特定CNN模型的对应值或指针。状态模块5能够操作为确定包含要在步骤112中读取的页面的块的当前P/E循环次数。
所选择的可靠性状态CNN模型是所存储的与包括该当前P/E循环次数的特定P/E循环值范围相关联(并且使用该特定P/E循环值范围来训练)的可靠性状态CNN模型中的一个可靠性状态CNN模型。例如,如果该当前P/E循环次数为500,并且使用对应于第一P/E循环范围(例如,0次至1,000次P/E循环)的示例性闪存存储器设备的测试的训练记录来创建第一可靠性状态CNN模型,则选择该第一可靠性状态CNN模型。在一个示例中,可靠性状态CNN选择表24指示P/E循环次数和识别存储器中存储相应可靠性状态CNN模型的配置文件21的位置的对应索引,并且使用在步骤104中识别的当前P/E循环次数对可靠性状态CNN选择表24执行查找操作以识别存储器中存储所识别的可靠性状态CNN模型的位置。
执行(106)所选择的可靠性状态CNN的神经网络操作以识别预测的可靠性状态。在图6的示例中,控制模块9能够操作为将所选择的可靠性状态CNN模型的配置文件21加载到神经处理模块10中以形成可靠性状态CNN核心。闪存控制器3的控制模块9或其他电路将神经网络操作所需的输入(例如,特征输入向量)耦接到神经处理模块10中的可靠性状态CNN核心,并且由神经处理模块10在该可靠性状态CNN核心上执行神经网络操作。
在图4A所示的示例中,控制模块9能够操作为接收来自输出神经元45a的输出,并且响应于该输出来识别预测的可靠性状态。在一个示例中,由输出神经元45a输出的值1指示第一可靠性状态,由输出神经元45a输出的值2指示第二可靠性状态,以此类推。在图4B中所示的示例中,控制模块9能够操作为从输出神经元48a接收输出,并且通过识别对应于具有最大值的输出神经元48a的可靠性状态来识别预测的可靠性状态。
识别(107)与预测的可靠性状态相关联的标签,其可被称为“可靠性状态标签”。在一个示例中,可靠性状态标签23以单独标签值、逗号分隔的值的形式存储或存储于标签查找表中,该标签查找表包含对应于每个可靠性状态的索引和与特定可靠性状态相关联的可靠性状态标签。当可靠性状态标签23被存储于查找表中时,与预测的可靠性状态相关联的可靠性状态标签可以通过使用对应于预测的可靠性状态的索引(例如,RSI)执行查找操作来识别。例如,如果输出神经元45a的输出是值1,并且如果其对应于具有第一可靠性状态标签集的第一可靠性状态,则在步骤107中识别该第一可靠性状态标签集。所识别的可靠性状态标签23可以耦接到神经处理模块10并且存储于神经处理模块10的输入寄存器中。
可靠性状态标签23指示对应于每个可靠性状态的测试参数。在一个实施方案中,可靠性状态标签包括指示保持时间值的保持时间标签(RTT)、指示读取干扰值的读取干扰标签(RDT)和指示温度值的温度标签(TT)。
在一个示例中,保持时间被分成两个范围:0小时至12小时和12小时至24小时,并且每个可靠性状态的RTT是这两个值之间的中点。读取干扰被分成两个范围:0次至100,000次干扰和100,000次至200,000次干扰,并且每个可靠性状态的RDT是这两个值之间的中点。温度被分成两个范围:25摄氏度至40摄氏度(℃)和40℃至70℃,并且每个可靠性状态的TT是这两个值之间的中点(四舍五入为整数)。在该示例中,将针对第一可靠性状态CNN模型(例如,0次至1,000次P/E循环)存储对应于八个可靠性状态中的第一可靠性状态的以下可靠性状态标签,其中箭头后面的最后一个数字是指示特定可靠性状态的RSI:
RTT=6h,RDT=50k,TT=33C→0
RTT=6h,RDT=50k,TT=55C→1
RTT=6h,RDT=150k,TT=33C→2
RTT=6h,RDT=150k,TT=55C→3
RTT=18h,RDT=50k,TT=33C→4
RTT=18h,RDT=50k,TT=55C→5
RTT=18h,RDT=150k,TT=33C→6
RTT=18h,RDT=150k,TT=55C→7
在该示例中,第二可靠性状态CNN模型(例如,1001次至2,000次P/E循环)被配置为识别八个可靠性状态(例如,RSI 8至RSI 15)中的一个可靠性状态,并且将包括以下八个可靠性状态标签集:
RTT=6h,RDT=50k,TT=33C→8
RTT=6h,RDT=50k,TT=55C→9
RTT=6h,RDT=150k,TT=33C→10
RTT=6h,RDT=50k,TT=55C→11
RTT=18h,RDT=50k,TT=33C→12
RTT=18h,RDT=50k,TT=55C→13
RTT=18h,RDT=150k,TT=33C→14
RTT=18h,RDT=150k,TT=55C→15
继续上述示例:第三可靠性状态CNN模型(例如,2001次至3,000次P/E循环)还被配置为识别八个可靠性状态(例如,RSI 16至RSI 23)中的一个可靠性状态,并且包括八个对应的可靠性状态标签集;第四可靠性状态CNN模型(例如,3001次至4,000次P/E循环)被配置为识别八个可靠性状态(例如,RSI 24至RSI 41)中的一个可靠性状态,并且包括另外八个可靠性状态标签集;第五可靠性状态CNN模型(例如,4001次至5,000次P/E循环)被配置为识别八个可靠性状态(例如,RSI 32至RSI 39)中的一个可靠性状态,并且包括另外八个可靠性状态标签集;第六可靠性状态CNN模型(例如,5001次至6,000次P/E循环)被配置为识别八个可靠性状态(例如,RSI 40至RSI 47)中的一个可靠性状态,并且将包括另外八个可靠性状态标签集;并且第七可靠性状态CNN模型(例如,6001次至7,000次P/E循环)被配置为识别八个可靠性状态(例如,RSI 48至RSI 56)中的一个可靠性状态。
选择(108)RNN推理模型,该RNN推理模型对应于预测的可靠性状态和读取闪存存储器设备2所需的TVSO区域中的一个TVSO区域。在图6中,存储于数据存储模块4中的RNN选择表25包括对应于每个可靠性状态的值、对应于读取每个闪存存储器设备2所需的每个TVSO区域的值(例如,TVSO区域索引)以及用于识别要使用的特定RNN推理模型的对应值或指针。在一个示例中,使用对应于预测的可靠性状态的值和TVSO区域索引“1”来对RNN选择表25执行查找操作,以识别要用于预测第一阈值电压区域(TVSO1)的形状的RNN推理模型。在一个示例中,RNN选择表25包括对应于可靠性状态和TVSO区域索引的值,以及用于识别数据存储模块4中存储每个RNN推理模型的位置的对应索引,并且使用输出神经元45a处的输出和TVSO区域索引作为输入来执行RNN选择表25中的查找操作,以识别存储器中存储对应RNN推理模型的位置。在图4B所示的实施方案中,对应于具有最大值(例如,RSI)的输出神经元48a的值被输入到RNN选择表25中,以识别存储器中存储对应的RNN推理模型的位置。
执行(109)所存储的RNN推理模型的神经网络操作,以生成指示TVS-RE曲线的形状的输出。更具体地,执行在步骤108中选择的RNN推理模型的神经网络操作。该神经网络操作的输入包括所识别的与预测的可靠性状态相关联的可靠性状态标签23。
闪存控制器3的控制模块9或其他电路能够操作为将所选择的RNN推理模型的配置文件22加载到神经处理模块10中以形成RNN推理核心。闪存控制器3的控制模块9或其他电路将神经网络操作所需的输入耦接到神经处理模块10中的该RNN推理核心。可被称为“特征向量”的输入指定要应用于该神经网络操作中的输入神经元的值。在图5A和图5B所示的示例中,RNN推理模型50a的输入(输入特征向量)包括对应于要读取的页面的一个或多个输入,诸如指示要在步骤112中读取的页面的WORDLINE INDEX(其被输入到输入神经元51a中)、指示要在步骤112中读取的块的BLOCK INDEX(其被输入到输入神经元51b中)以及指示要在步骤112中读取的页面的PAGE INDEX(其被输入到输入神经元51c中)。该输入还包括在步骤107中识别的可靠性状态标签,其包括输入到输入神经元51d中的RTT、输入到输入神经元51e中的RDT以及输入到输入神经元51f中的TT。在步骤104中识别的当前P/E循环次数(针对在步骤112中读取的页面)被输入到输入神经元51g中。神经网络操作由神经处理模块10在所加载的RNN推理核心上执行,以指示对应于所识别的当前可靠性状态标签23的TVS-RE曲线的形状。
输出神经元55a以指示TVS-RE曲线的形状的系数值的形式生成输出。RNN推理模型50a的示例性输出被示出为包括六个系数,示出为第一系数、第二系数、第三系数、第四系数、第五系数和第六系数。应当理解,RNN推理模型50a可以具有任何数量的系数,并且可以改变系数的数量以实现处理时间与准确度之间的平衡。在图5B所示的示例中,输出神经元55b生成指示对应于TVSO值的位置处的误差数量的值,由此指示TVS-RE曲线的形状。
识别(110)接近所生成的TVS-RE曲线的最小值的TVSO值。在一个示例中,最小函数模块11被配置为确定所生成的TVS-RE曲线的最小值,以及识别接近所确定的最小值的TVSO值。应当理解,所识别的“最小值”将不是精确的最小值,因为最小函数模块11可能不具有足够的准确度来识别精确的最小值。因此,最小函数模块11将识别接近该最小值的TVSO值。最小函数模块11可以包括软件、硬件和/或固件,该软件、硬件和/或固件用于接收所生成的TVS-RE曲线的系数,识别该曲线的最小点以及输出对应于所识别的该曲线的最小点的TVSO值。当输出神经元55a以系数形式生成输出时,如图5A中所示,最小函数模块11包括用于识别最小值的位置(例如,在x轴上的位置)的算法,并且该算法识别接近所识别的该曲线上的最小点的TVSO值(例如,与所识别的该曲线上的最小点最接近的整数TVSO值)。当使用RNN模型55b时,每个输出神经元55b输出指示对应于TVSO值的位置处的误差数量的大小的值。这指示TVS-RE曲线的形状。无需识别该曲线上的最小点,因为当使用特定TVSO值时,每个输出神经元55b指示预测误差,并且最小函数模块11仅需要识别哪个输出神经元55b生成最小输出(最小预测误差)以确定对应于TVS-RE曲线的最小值的TVSO值,因为已知哪个TVSO值对应于每个输出神经元。
重复(111)步骤108至步骤110的过程以识别读取闪存存储器设备所需的每个TVSO区域的TVSO值,其可以被称为TVSO-RC值。因此,对于读取闪存存储器设备所需的每个TVSO区域,将执行多个神经网络操作(每个神经网络操作使用不同的所选RNN推理模型来执行),其中所有这些神经网络操作使用相同的特征向量(具有要读取的WORDLINE INDEX、BLOCKINDEX和PAGE INDEX以及特定识别的可靠性状态的RTT、RDT和TT的特征向量)。
然后使用在步骤110中识别的所识别的TVSO-RC值处的阈值电压偏移读取来执行(112)闪存存储器设备的读取。在一个示例中,每当从主机计算机接收到读取指令时,响应于接收到该读取指令而执行步骤104至步骤112。更具体地,响应于在主机连接器插座14处接收到读取指令,执行步骤105至步骤111,以便识别TVSO-RC值,并且读取模块6使用在步骤105至步骤111中识别的TVSO-RC值来执行步骤112的读取。在本示例中,在步骤104中识别的P/E循环次数是要在步骤112中读取的特定位置的P/E循环次数,并且可以是包含要在步骤112中读取的字线的块的P/E循环次数。
已发现,可通过以预定TVSO值(TEST-READ-TVSO VALUES)执行(121)读取(闪存测试读取)以及识别该闪存测试读取中的误差(可称为当前读取误差(CR-ERROR))数量(122)来改进步骤112的读取的准确度(以及减少读取误差数量)。在该可选示例中,步骤106的神经网络操作使用CR-ERROR和TEST-READ-TVSO VALUES作为输入。
在一个实施方案中,周期性地执行步骤104至步骤112的过程,以生成存储于可选的TVSO-RC选择表27中的TVSO-RC值集。TVSO-RC选择表27包括与每个TVSO-RC值集相对应的一个或多个索引(其中每个值集包括执行读取所需的TVSO-RC值)。在该示例中,当要执行步骤112的读取时,使用该一个或多个索引来查找要在该读取中使用的对应TVSO值(例如,使用字线索引、块索引、页面索引以及要读取的页面的当前P/E循环次数)。应当理解,除了用于识别要读取的字线/块/页面的值之外,仅需要P/E循环次数,并且闪存存储器设备2的保持时间、读取干扰和温度无需被跟踪或用于查找,因为用于每个神经网络操作的输入向量包括相关联的标签而非如现有技术过程中所使用的实际当前计算值。
由于针对读取干扰、保持时间和循环温度的神经网络模型输入是所存储的可靠性状态标签(例如,可靠性状态标签23),并且所存储的标签值不随着闪存存储器设备2的老化而改变,所以无需对指示每个块或字线的读取次数的持久化表进行计数和维护,无需对指示每个块或字线的保持时间的持久化表进行计数和维护,并且无需对指示每个块或字线的温度循环的持久化表进行识别和维护。
本发明的方法和装置对影响UBER的多个因素进行建模并指示TVS-RE曲线的形状,该TVS-RE曲线准确地反映要读取的位置的物理特性、要读取的位置的结构特性(例如,要读取的字线和块)、要读取的位置的当前年龄/物理退化(例如,P/E循环次数)以及要读取的位置的当前暂时性特性(例如,闭合块读取干扰和闭合块保持时间)。因此,所生成的对应于该TVS-RE曲线的最小值的TVSO值将是用于执行读取的适当TVSO值。
此外,在本说明书中,为了进行解释,阐述了许多具体细节以便提供对本发明的透彻理解。然而,对于本领域普通技术人员显而易见的是,可以在没有这些具体细节的情况下实践本发明。在一些情况下,为了避免模糊本发明,以框图形式而不是详细地示出熟知的结构和设备。充分详细地描述了这些实施方案以使得本领域普通技术人员能够实践本发明,并且应当理解,在不脱离本发明的范围的情况下,可以利用其他实施方案,并且可以作出逻辑、机械、电气和其他改变。
Claims (17)
1.一种用于读取闪存存储器设备的方法,所述方法包括:
存储多个可靠性状态分类神经网络(CNN)模型的配置文件、多个回归神经网络(RNN)推理模型的配置文件以及多个可靠性状态标签集,每个可靠性状态标签集与多个可靠性状态中的一个可靠性状态相关联,并且所述可靠性状态CNN模型中的每个可靠性状态CNN模型与编程/擦除(P/E)循环范围相关联;
监测所述闪存存储器设备的操作以识别所述闪存存储器设备的当前P/E循环次数;
选择与对应于所述当前P/E循环次数的P/E循环范围相关联的所述可靠性状态CNN模型中的一个可靠性状态CNN模型;
执行所选择的可靠性状态CNN模型的神经网络操作以识别预测的可靠性状态;
识别与所述预测的可靠性状态相关联的所述可靠性状态标签集;
选择对应于所述预测的可靠性状态所述多个RNN推理模型中的一个RNN推理模型;
执行所选择的RNN推理模型的神经网络操作,所述神经网络操作使用所识别的可靠性状态标签作为输入,以生成指示阈值电压偏移读取误差(TVS-RE)曲线的形状的输出值;
识别接近所述TVS-RE曲线的最小值的阈值电压偏移补偿(TVSO)值;
重复所述选择所述RNN模型中的一个RNN模型、所述执行所选择的RNN推理模型的所述神经网络操作以及所述识别读取所述闪存存储器设备所需的所有阈值电压区域的TVSO值;以及
使用所识别的TVSO值处的阈值电压偏移读取来执行所述闪存存储器设备的读取。
2.根据权利要求1所述的方法,其中,与所述预测的可靠性状态相关联的所述可靠性状态标签集包括指示保持时间值的保持时间标签、指示读取干扰值的读取干扰标签以及指示温度值的温度标签。
3.根据权利要求1所述的方法,其中,所述执行所识别的可靠性状态CNN模型的神经网络操作以识别预测的可靠性状态使用字线索引和块索引作为所述神经网络操作的输入。
4.根据权利要求1所述的方法,其中,所述执行所识别的可靠性状态CNN模型的神经网络操作使用字线索引、块索引和页面索引作为所述神经网络操作的输入。
5.根据权利要求1所述的方法,其中,所述执行所选择的RNN推理模型的神经网络操作使用字线索引、块索引、页面索引、保持时间标签、读取干扰标签和温度标签作为所述神经网络操作的输入。
6.根据权利要求1所述的方法,其中,指示所述TVS-RE曲线的形状的所述输出包括所述TVS-RE曲线的多个系数,并且其中所述识别接近所生成的TVS-RE曲线的最小值的一个或多个TVSO值包括对所述系数执行最小函数以识别所述TVSO值。
7.根据权利要求1所述的方法,其中,指示所述TVS-RE曲线的形状的所述输出包括指示对应于不同TVSO值的误差的输出值,并且其中所述识别接近所生成的TVS-RE曲线的最小值的TVSO值包括识别具有最小误差的所述输出值。
8.根据权利要求1所述的方法,所述方法还包括:
生成所述多个RNN推理模型,所述RNN推理模型中的每个RNN推理模型被配置为执行回归神经网络操作以识别所述TVS-RE曲线的系数。
9.根据权利要求1所述的方法,所述方法还包括:
生成所述多个可靠性状态CNN推理模型,所述多个可靠性状态CNN模型中的每个可靠性状态CNN模型使用对应于不同P/E循环值范围的数据记录来生成。
10.一种闪存控制器,所述闪存控制器包括:
数据存储模块,所述数据存储模块被配置为存储多个可靠性状态分类神经网络(CNN)模型的配置文件、多个回归神经网络(RNN)推理模型的配置文件以及多个可靠性状态标签集,每个可靠性状态标签集与多个可靠性状态中的一个可靠性状态相关联,并且所述可靠性状态CNN模型中的每个可靠性状态CNN模型与编程/擦除(P/E)循环范围相关联;
状态模块,所述状态模块被配置为识别当前P/E循环次数;
神经处理模块,所述神经处理模块耦接到所述数据存储模块并耦接到控制模块,所述神经处理模块被配置为:
执行所存储的与对应于所述当前P/E循环次数的P/E循环范围相关联的可靠性状态CNN模型中的一个可靠性状态CNN模型的神经网络操作以识别预测的可靠性状态;以及
执行对应于所述预测的可靠性状态的所述RNN推理模型的神经网络操作,每个神经网络操作使用与所述预测的可靠性状态相关联的所述可靠性状态标签集作为输入,以生成指示读取闪存存储器设备所需的所有阈值电压区域的TVS-RE曲线的形状的输出;
最小函数模块,所述最小函数模块被配置为识别读取所述闪存存储器设备所需的所有阈值电压区域的TVSO值,所识别的TVSO值中的每个TVSO值接近所述TVS-RE曲线中的一个TVS-RE曲线的最小值;和
读取模块,所述读取模块被配置为通过向所述闪存存储器设备发送包括所识别的TVSO值的阈值电压偏移读取指令来执行所述闪存存储器设备的读取。
11.根据权利要求10所述的闪存控制器,其中,用于所述可靠性状态CNN的所述神经网络操作的所述输入和用于所存储的RNN推理模型的所述神经网络操作的所述输入包括字线索引和块索引。
12.根据权利要求10所述的闪存控制器,其中,用于所述可靠性状态CNN的所述神经网络操作的所述输入和用于所存储的RNN推理模型的所述神经网络操作的所述输入包括字线索引、块索引和页面索引。
13.根据权利要求10所述的闪存控制器,其中,用于所述RNN推理模型的所述神经网络操作的所述输入包括字线索引、块索引、页面索引、保持时间标签、读取干扰标签和温度标签。
14.一种固态驱动器(SSD),所述固态驱动器包括:
闪存存储器设备;
闪存控制器,所述闪存控制器耦接到所述闪存存储器设备,所述闪存控制器包括:
数据存储模块,所述数据存储模块被配置为存储多个可靠性状态分类神经网络(CNN)模型的配置文件、多个回归神经网络(RNN)推理模型的配置文件以及多个可靠性状态标签集,每个可靠性状态标签集与多个可靠性状态中的一个可靠性状态相关联,并且所述可靠性状态CNN模型中的每个可靠性状态CNN模型与编程/擦除(P/E)循环范围相关联;
状态模块,所述状态模块被配置为识别当前P/E循环次数;
神经处理模块,所述神经处理模块耦接到所述数据存储模块并耦接到控制模块,所述神经处理模块被配置为:
执行所存储的与对应于所述当前P/E循环次数的P/E循环范围相关联的可靠性状态CNN模型中的一个可靠性状态CNN模型的神经网络操作以识别预测的可靠性状态;以及
执行对应于所述预测的可靠性状态的所述RNN推理模型的神经网络操作,每个神经网络操作使用与所述预测的可靠性状态相关联的所述可靠性状态标签集作为输入,以生成指示读取所述闪存存储器设备所需的所有阈值电压区域的TVS-RE曲线的形状的输出;
最小函数模块,所述最小函数模块被配置为识别读取所述闪存存储器设备所需的所有阈值电压区域的TVSO值,所识别的TVSO值中的每个TVSO值接近所述TVS-RE曲线中的一个TVS-RE曲线的最小值;和
读取模块,所述读取模块被配置为通过向所述闪存存储器设备发送包括所识别的TVSO值的阈值电压偏移读取指令来执行所述闪存存储器设备的读取。
15.根据权利要求14所述的SSD,其中,用于所述可靠性状态CNN的所述神经网络操作的所述输入和用于所存储的RNN推理模型的所述神经网络操作的所述输入包括字线索引和块索引。
16.根据权利要求14所述的SSD,其中,用于所述可靠性状态CNN的所述神经网络操作的所述输入和用于所存储的RNN推理模型的所述神经网络操作的所述输入包括字线索引、块索引和页面索引。
17.根据权利要求14所述的SSD,其中,用于所述RNN推理模型的所述神经网络操作的所述输入包括字线索引、块索引、页面索引、保持时间标签、读取干扰标签和温度标签。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/153,906 | 2021-02-25 | ||
US17/234,993 | 2021-04-20 | ||
US17/234,993 US11514992B2 (en) | 2021-02-25 | 2021-04-20 | Method and apparatus for reading a flash memory device |
PCT/US2021/030191 WO2022182374A1 (en) | 2021-02-25 | 2021-04-30 | Method and apparatus for reading a flash memory device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116830200A true CN116830200A (zh) | 2023-09-29 |
Family
ID=88114944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180092032.7A Pending CN116830200A (zh) | 2021-02-25 | 2021-04-30 | 用于读取闪存存储器设备的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116830200A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110010184A (zh) * | 2017-12-27 | 2019-07-12 | 三星电子株式会社 | 读取数据的方法、控制存储控制器的方法以及存贮设备 |
US20200210831A1 (en) * | 2018-12-31 | 2020-07-02 | SK Hynix Inc. | Storage device performance optimization using deep learning |
-
2021
- 2021-04-30 CN CN202180092032.7A patent/CN116830200A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110010184A (zh) * | 2017-12-27 | 2019-07-12 | 三星电子株式会社 | 读取数据的方法、控制存储控制器的方法以及存贮设备 |
US20200210831A1 (en) * | 2018-12-31 | 2020-07-02 | SK Hynix Inc. | Storage device performance optimization using deep learning |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11514992B2 (en) | Method and apparatus for reading a flash memory device | |
US11398291B2 (en) | Method and apparatus for determining when actual wear of a flash memory device differs from reliability states for the flash memory device | |
US9922706B2 (en) | Solid state storage device using state prediction method | |
US20220027083A1 (en) | Regression Neural Network for Identifying Threshold Voltages to be Used in Reads of Flash Memory Devices | |
US20220058488A1 (en) | Partitionable Neural Network for Solid State Drives | |
CN109817267B (zh) | 一种基于深度学习的闪存寿命预测方法、系统及计算机可读存取介质 | |
US20190355426A1 (en) | Memory system with dynamic calibration using a trim management mechanism | |
US20220375532A1 (en) | Method and Apparatus for Performing a Read of a Flash Memory Using Predicted Retention-and-Read-Disturb-Compensated Threshold Voltage Shift Offset Values | |
US11514994B1 (en) | Method and apparatus for outlier management | |
US10108471B2 (en) | System and method for utilizing history information in a memory device | |
US8730724B2 (en) | Common line current for program level determination in flash memory | |
CN108694989A (zh) | 存储设备及其坏块指派方法 | |
CN115295057B (zh) | 一种快速获取nand最优读取数据的方法 | |
CN113076218B (zh) | Nvm芯片读数据错误快速处理方法及其控制器 | |
US11216696B2 (en) | Training data sample selection for use with non-volatile memory and machine learning processor | |
US11216338B2 (en) | Storage device that performs state shaping of data | |
US8762926B2 (en) | Method and apparatus for diagnosing a fault of a memory using interim time after execution of an application | |
CN116830200A (zh) | 用于读取闪存存储器设备的方法和装置 | |
KR102491655B1 (ko) | 에러 카운트를 결정하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법 | |
WO2022182374A1 (en) | Method and apparatus for reading a flash memory device | |
CN115145476A (zh) | 基于紧凑工作负载表示的存储器控制器及其方法 | |
WO2017075747A1 (en) | Methods, systems, and media for programming storage device | |
WO2022250722A1 (en) | Method and apparatus for performing a read of a flash memory using predicted retention-and-read-disturb-compensated threshold voltage shift offset values | |
US20240111438A1 (en) | Reliability assessment for use with power-per-processing event estimations within a data storage device | |
EP3783611B1 (en) | Storage device that performs state shaping of data |
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 |