一种基于深度学习的闪存寿命预测方法、系统及计算机可读
存取介质
技术领域
本发明涉及闪存寿命预测技术,尤其是涉及一种基于深度学习的闪存寿命预测方法、系统及计算机可读存取介质。
背景技术
在电子设备中,存储器作为存储数据的载体一直是非常重要的组成部分。目前,应用在电子设备中的存储器主要分为两类:易失性存储器和非易失性存储器。闪存作为一种非易失性存储器以其存储容量高、制造成本低等优点,在通信、消费、计算机、工业控制、军事等领域已成为当前发展最快的存储器产品,并在非易失性存储器市场中占有绝对重要的地位。
在闪存使用过程中,其存储单元的介质会随着闪存编程/擦除周期次数的增加而产生缺陷并最终导致存储单元失效,若闪存在运行时产生了无法纠正的错误将影响整个存储系统的正常使用。目前,随着半导体制造工艺的进步,闪存氧化层厚度的降低以及存储单元间距离的减小使闪存的可靠性不断降低,闪存的可靠性降低问题逐渐成为当前存储器研究领域所要克服的首要课题。预测闪存的剩余使用寿命,能够让使用者获得闪存的可靠性信息,在闪存寿命达到上限前进行数据迁移,避免因闪存突然失效而导致的数据流失。
现有的闪存寿命预测技术均通过常规算法建立寿命预测模型,泛化性能差,即训练误差小,测试误差大;传统神经网络搭建的模型在解决闪存寿命预测这样复杂的问题时处理参数较多,计算量大,模型复杂,且未考虑序列关系。在不同结构、不同批次的闪存寿命预测上准确度差异较大。
发明内容
本发明针对现有技术中存在的技术问题,提供一种基于深度学习的闪存寿命预测方法、系统及计算机可读存取介质,测量闪存的一种特征量或几种特征量的组合,对所有特征量或组合部分特征量进行数学运算,将运算结果或测量结果或运算结果和测量结果的组合输入到深度学习模型中,通过合适的模型计算得到闪存寿命的预测值。深度学习的方法通过卷积神经网络更加接近真实的神经元,使用权值共享网络结构减少了训练参数和计算复杂度,提高了泛化性能,循环卷积神经网络还能处理序列数据,更好的预测闪存寿命。
本发明解决上述技术问题的技术方案如下:
作为本发明的第一方面,提供一种基于深度学习的闪存寿命预测方法,该方法具体包括以下步骤:
采集待预测闪存的特征量;
将所述特征量输入基于深度学习的闪存寿命预测模型,计算得到闪存的寿命预测值。
进一步地,在所述的采集待预测闪存的特征量之前,该方法还包括建立基于深度学习的闪存寿命预测模型,具体包括以下步骤:
获取样本数据,从同一制造工艺下相同类型不同批次的闪存产品集合中随机选取预定数量的闪存芯片作为测试样本;
对样本闪存进行相应的闪存操作,收集建立闪存寿命预测模型所需的闪存特征量与闪存寿命信息;
通过深度学习方法构建闪存寿命预测模型,将测量得到的特征量或特征量的运算处理值或测量得到的特征量和特征量的运算处理值的组合构成得数据集作为深度学习模型的输入,闪存寿命预测值作为输出,设置核函数。
进一步地,所述的对样本闪存进行相应的闪存操作,收集建立闪存寿命预测模型所需的闪存特征量与闪存寿命信息,包括:
步骤301,确定要测试的闪存具体块号;
步骤302,擦除整个块;
步骤303,对闪存存储块执行写入数据操作;
步骤304,根据设置的保持时间保持闪存存储块中存储的数据一段时间t后执行下一步,如果保持时间为0则立即执行下一步;
步骤305,读取数据,将读取数据与写入数据进行比较;
步骤306,重复执行步骤302到步骤305的操作,当操作次数达到设定值时记录闪存特征量与闪存寿命信息;
步骤307,重复执行步骤306的操作,直到闪存达到寿命极限。
进一步地,所述闪存特征量至少包括闪存从开始使用到无法正常使用期间内闪存存储块的编程时间、擦除时间、阈值电压分布和错误率在编程/擦除周期增加条件下变化的数据信息中的一种或多种。
进一步地,所述闪存存储块的编程时间的获取方式为:在闪存开始写入数据操作的同时记录经过的时钟周期在收到闪存返回数据编程完成标志后停止记录时钟周期数;编程时间值为时钟周期持续时间乘以编程时钟周期数;
所述闪存存储块擦除时间的获取方式与编程时间获取方式同理,记录擦除操作持续的时钟周期数,擦除时间值为时钟周期持续时间乘以擦除时钟周期数;
所述闪存存储块的阈值电压分布的获取方式为:向闪存发送READ-RETRY命令集逐步改变闪存的读参考电压同时读出数据根据读数据值统计阈值电压分布;
所述闪存存储块的错误率的获取方式为:测试系统对闪存执行读数据操作从闪存中读出数据,测试系统将读出的数据与写入的测试数据进行对比统计错误数据个数,错误率为错误个数除以总的数据个数。
进一步地,所述的特征量的运算处理值的运算方法至少包括:特征量的线性运算、特征量的非线性运算、不同特征量间的线性运算、不同特征量间的非线性运算、计算不同存储页面特征量的最大值、计算不同存储页面特征量的最小值、不同存储页面特征量之间的线性运算、不同存储页面特征量之间的非线性运算、不同存储块特征量之间的线性运算、不同存储块特征量之间的非线性运算、计算不同存储块特征量的最大值、计算不同存储块特征量的最小值中的一种或多种。
进一步地,所述的基于深度学习的闪存寿命预测模型是根据闪存特征量关系,通过数据集学习训练调整参数后生成的CNN或RNN;所述CNN或RNN的生成具体步骤包括:
步骤701,初始化CNN或RNN;
步骤702,将数据集作为输入导入模型,输入核函数、隐藏单元卷积和矩阵计算后得到输出结果,即闪存寿命预测值;
步骤703,对得到的闪存寿命预测值与真实测量的寿命值计算误差并反向传递误差修正网络不同部分的权值得到优化后的网络模型;
步骤704,重复执行步骤702和步骤703,训练误差和测试误差达到要求后终止操作,得到最佳的基于深度学习的闪存寿命预测模型。
进一步地,所述基于深度学习的闪存寿命预测模型的神经元的核函数包括:Sigmoid函数、Tanh函数或Relu函数。
本发明具有如下优点:1.本发明以目前计算机领域前沿的深度学习技术为基础提出一种闪存寿命预测方法,与目前的技术相比,该方法的先进性在于使用卷积运算、权值共享网络结构减小训练开销,线性和非线性学习能力强,可以处理序列数据,能够更加有效地拟合闪存参数的变化特征。2.本发明将多种可靠性参数作为CNN或RNN的输入,与仅以一种参数为依据的寿命预测模型相比预测寿命值的准确度更高。3.本发明提出的基于深度学习的闪存寿命预测方法中的CNN或RNN模型具有动态调整参数的能力,能够通过输入新的数据或改变训练方法等方式优化自身的预测能力,与一般预测方法相比灵活度更高。
作为本发明的第二方面,还提供一种基于深度学习的闪存寿命预测系统,包括:
数据采集装置,用于对需要进行寿命预测的闪存的特征量进行测量,保存测量所得的特征量;
预测装置,用于将所述特征量输入基于深度学习的闪存寿命预测模型,计算得到闪存的寿命预测值。
作为本发明的第三方面,还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有用于实现上述的方法的计算机软件程序。
附图说明
图1为本发明实施例一种基于深度学习的闪存寿命预测方法的流程示意图。
图2为本发明实施例一种闪存操作和数据采集方法的流程示意图。
图3为本发明实施例中RNN闪存寿命预测模型的流程示意图。
图4为本发明实施例中RNN结构图。
图5为本发明实施例中RNN结构展开图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例:
图1为采用本发明提供的一种基于深度学习的闪存寿命预测方法预测闪存寿命的流程示意图,图中所示闪存寿命预测流程适用于所有闪存类型,下面以一种闪存产品为实施例对图1进行详细的解释说明。
本实施例中,将某制造工艺下的3D多极单元NAND闪存(MLC NAND flash)产品作为测试对象和寿命预测对象。如图1所示:
步骤S01,从所述闪存产品集合中按照以下规则抽取样本:样本闪存必须为同一制造工艺下相同类型的闪存;从不同批次的芯片中随机抽取相同数量的芯片样本,以确保样本的多样性。其中,抽样的批次为随机选取,样本数量可以为被抽样批次闪存总量的百分之一。
步骤S02,对样本闪存进行相应的闪存操作,收集建立闪存寿命预测模型所需的闪存特征信息与闪存寿命信息。
所述闪存特征信息包括但不限于:闪存的编程时间、读取时间、擦除时间、电流、芯片功耗、阈值电压分布、存储块编号、存储页号、闪存当前经历过的编程/擦除周期数、条件错误页数、条件错误块数、错误比特数和错误率。
所述条件错误页数为:阈值电压分布、编程时间、读取时间、擦除时间、错误数、错误率中的一个特征量或几个特征量满足一定取值条件的存储页的数量。
所述条件错误块数为:阈值电压分布、编程时间、读取时间、擦除时间、错误数、错误率中的一个特征量或几个特征量满足一定取值条件的存储块的数量。
在本实施例中,所述闪存特征信息包括:闪存从开始使用到无法正常使用期间内闪存存储芯片中块的编程时间、擦除时间、阈值电压分布和错误率在编程/擦除周期增加条件下变化的数据信息(阈值电压分布为可选物理信息)。
闪存存储块编程时间的获取方式为:在闪存测试系统中设置编程时间记录模块;编程时间记录模块在闪存开始写入数据操作的同时记录经过的时钟周期在收到闪存返回数据编程完成标志后停止记录时钟周期数;编程时间值为时钟周期持续时间乘以编程时钟周期数。
闪存存储块擦除时间的获取方式与编程时间获取方式同理,由测试系统中的擦除时间记录模块记录擦除操作持续的时钟周期数,擦除时间值为时钟周期持续时间乘以擦除时钟周期数。
闪存存储单元阈值电压分布的获取方式为:测试系统向闪存发送READ-RETRY命令集逐步改变闪存的读参考电压同时读出数据根据读数据值统计阈值电压分布。
闪存存储块错误率的获取方式为:测试系统对闪存执行读数据操作从闪存中读出数据,测试系统将读出的数据与写入的测试数据进行对比统计错误数据个数,错误率为错误个数除以总的数据个数。
步骤S02中采用的闪存测试方法,其流程如图2所示。根据图2,闪存测试的具体步骤为:
(201)确定要测试的闪存具体块号。
(202)擦除整个块。
(203)对闪存存储块执行写入数据操作。
(204)根据设置的保持时间保持闪存存储块中存储的数据一段时间,如果保持时间为0则立即执行下一步。
(205)读取数据,将读取数据与写入数据进行比较。
(206)重复执行步骤(202)到步骤(205)的操作,当操作次数达到设定值时记录编程时间、擦除时间、读取时间、电流、错误比特数、存储编号、P/E周期数等特征量信息。
(207)重复执行步骤(206)的操作,直到闪存达到寿命极限。
步骤S03,通过深度学习方法构建闪存寿命预测模型,将测量得到的特征量或特征量的运算处理值或测量得到的特征量和特征量的运算处理值的组合构成得数据集作为深度学习模型的输入,闪存寿命预测值作为输出,设置核函数;本实施例中以RNN作为模型结构,Relu函数为核函数,本发明中所述的深度学习方法或结构不限于该方法。闪存寿命值指的是闪存产品在失效之前可以执行的编程/擦除周期数。
本实施例步骤S03中,使用RNN建立闪存寿命预测模型的流程如图3所示。根据图3,建立闪存寿命预测模型的具体步骤为:
(301)初始化RNN,包括学习模型深度、核函数、池化、反馈方法等参数。
依据RNN的定义,所述的RNN结构如图4所示。其特点是使用卷积计算减少计算复杂度,上一阶段的输入为下一阶段的输出适用于序列数据。RNN结构展开图如图5所示。
(302)将数据集作为输入导入模型,输入核函数、隐藏单元卷积和矩阵计算后得到输出结果,即闪存寿命预测值。
所述输入数据集为编程时间、擦除时间、阈值电压分布和错误率几种测试数据集合(阈值电压分布为可选输入变量);一种所述测试数据集合代表一个输入变量,函数所包含的输入变量个数可根据预测需求设置。隐藏单元是前一个P/E周期的真实寿命值。
根据RNN算法原理,输入集标记为{x0,x1……,xt,xt+1…},输出单元的输出集被标记为{y0,y1,……,yt,yt+1…},隐藏单元标记为{h0,h1……ht,ht+1…},核函数标记为f(W)。他们之间的表达式关系为:ht=fw(ht-1,xt)。其中ht表示新状态,ht-1表示前一个状态,xt表示该阶段的输入向量。
(303)得到的闪存寿命预测值与真实测量的寿命值计算误差并反向传递误差修正网络不同部分的权值得到优化后的网络模型。所述的反向传播通过从输出层开始计算残差逐层传递残差修正各层权值。通过数据集的迭代学习得到权值最优化的RNN寿命预测模型。
(304)重复执行步骤(302)和步骤(303)的操作,训练误差和测试误差达到要求后终止操作,得到闪存寿命预测模型。
建立闪存寿命预测模型所需要的数据处理操作均通过计算机程序实现,所使用的计算机语言不限定于某一种计算机语言。
在本发明中,将实验数据分成两组:训练数据集合和验证数据集合。本发明采用交叉验证的方法训练数学模型,将实验数据分成5组。其中4组用于训练,1组用于验证。每个子实验数据集合都将被验证一次。
步骤S04,使用验证数据集合测试寿命预测模型。本发明中,通过计算均方根误差测试闪存寿命预测模型:其中,RMSE为均方根误差代表符号;n为样本总数;Xobs,i为第i个闪存寿命测量值;Xmodel,i第i个闪存寿命预测模型预测值。
步骤S05,使用步骤S02中的闪存测试平台测量少量待预测闪存的编程时间和擦除时间等物理信息,将测量得到的物理信息作为寿命预测模型的输入变量,计算寿命预测模型的输出值预测目标闪存产品的剩余寿命值。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。