一种SSD内实现的闪存寿命预测方法与流程

文档序号:17440922发布日期:2019-04-17 04:45阅读:194来源:国知局
一种SSD内实现的闪存寿命预测方法与流程

本发明属于闪存芯片寿命预测技术领域,更具体地,涉及一种ssd内实现的闪存寿命预测方法。



背景技术:

随着云技术的兴起,大数据时代已经来临。传统的机械硬盘很明显无法满足大数据时代的高速、低功耗、便捷、高性能、成本低等要求,因此ssd(固态硬盘)应运而生。ssd以闪存作为存储介质,而随着闪存技术的发展,其单位bit的价格也越来越低,而最新的ssd传输结构——pcie-nvme接口的速度更是达到了gbps量级,而ssd的体积小,抗干扰能强等各种优点已经逐渐取代传统的机械硬盘作为主要的存储媒体。

然而由于ssd是以闪存作为存储介质,因此闪存的各种缺陷也注定也给ssd带来各种缺陷,而随着闪存技术的发展,虽然单位容量的价格飞速下降,但是其可靠性也不断下降,最直接的体现就是闪存寿命的减少。所谓闪存寿命,即随着对闪存的擦除/编程次数增加,导致闪存的存储单元产生缺陷并最终失效,失去存储电荷的能力。闪存存储单元失去了存储电荷的能力,也就意味着存储数据失效,这对于ssd来说是致命的。虽然ssd的固件做了坏块管理、损耗均衡等各种算法来延长ssd的整体寿命,但对于可靠性要求比较高的环境,这同样是一个很大的缺陷。

现有的关于闪存的寿命预测方案都不完善,而且对于ssd内的闪存寿命预测更是没有。因为ssd内有固件层的存在,用户没办法直接和闪存芯片直接对接,所能提取参数有限,能做预测的方案更是没有。



技术实现要素:

针对现有技术的缺陷,本发明提出了一种ssd内实现闪存寿命预测的办法,该方法能实时预测ssd内闪存的剩余寿命,保证了ssd的可靠性。

本发明提供了一种ssd内实现的闪存寿命预测方法,包括下述步骤:

(1)获取待测闪存芯片的特征量,所述特征量包括闪存的编程时间、读取时间、擦除时间、电流、芯片功耗、阈值电压分布、存储块编号、存储页号、闪存当前经历过的编程/擦除周期数、条件错误页数、条件错误块数、错误比特数和错误率;

(2)对所述特征量中的一种或几种进行运算操作,得到运算处理值,将所述特征量及所述运算处理值构成集合,取集合中的子集输入到预测模型中获得数据处理结果;

(3)根据所述数据处理结果对所述预测模型进行训练,从而实现对所述预测模型的更新;

(4)根据所述数据处理结果以及更新后的预测模型对闪存芯片的寿命进行预测,获得所述闪存芯片的寿命预测值。

更进一步地,步骤(1)中获取待测闪存芯片的特征量具体为:

(1.1)在ssd每次执行擦除或编程时,记录目标芯片的编程/擦除次数;

(1.2)在ssd执行编程操作时,记录目标芯片各个页面的编程时间以及编程时的电流;

(1.3)在ssd执行读操作时,记录目标芯片各个页面的读时间、读电流以及阈值电压分布,并且将读出的数据做ecc比较后记录错误比特数;

(1.4)在ssd执行擦除操作时,记录目标芯片的擦除时间和擦除电流。

更进一步地,阈值电压获取方式为:通过逐次改变发送read_retry命令的等级,将读取出来的数据进行比较,从而获得阈值电压分布。

更进一步地,对所述特征量中的一种或几种进行运算操作,至少包括以下运算方法中的一种或多种:特征量的线性运算、特征量的非线性运算、不同特征量间的线性运算、不同特征量间的非线性运算、计算不同存储页面特征量的最大值、计算不同存储页面特征量的最小值、不同存储页面特征量之间的线性运算、不同存储页面特征量之间的非线性运算、不同存储块特征量之间的线性运算、不同存储块特征量之间的非线性运算、计算不同存储块特征量的最大值和计算不同存储块特征量的最小值。

更进一步地,所述预测模型包括:闪存寿命预测模块和模型训练模块,所述闪存寿命预测模块用于对特征量的一种或者几种组合进行处理并输出闪存寿命预测值;所述模型训练模块用于根据数据处理结果来矫正闪存寿命预测模块从而实现更新。

更进一步地,采用基因编程算法执行所述模型训练模块的模型训练的具体步骤为:

(1)初始化闪存芯片寿命预测函数集合,设置寿命预测函数筛选方程;

(2)将采集到的特征量代入寿命预测函数集合中的每个函数;计算函数结果,即闪存芯片寿命预测值;将计算得到的闪存芯片寿命预测值与采集到的闪存芯片编程/擦除周期数代入适应度方程,根据适应度方程计算结果筛选寿命预测函数;

(3)在经过筛选的寿命预测函数集合的基础上,使用基因编程操作生成新的函数集合;

(4)对新的函数集合重复执行步骤(2)和步骤(3)的操作,基因编程代数达到200时终止操作;

(5)从集合中选择预测值与实际闪存芯片编程/擦除周期数匹配度最佳的函数,基因编程算法输出函数。

更进一步地,所述预测闪存寿命的函数或模型的参数及结构为可修改的参数及结构,即对于同一个函数或模型对多个闪存进行寿命预测时,其参数和结构可调整。

更进一步地,闪存寿命预测模块进行寿命预测的规则为:以错误率达到纠错码上限时的编程/擦除周期数为闪存芯片的寿命值上限。

更进一步地,根据所述闪存寿命预测模块对闪存芯片的剩余寿命进行预测的具体步骤为:当ssd内目标闪存芯片达到寿命极限时,无法继续使用,由主控或者固件记录。

更进一步地,所述预测模型在ssd生产时已固化在控制器或者固件或者在整个ssd上除主控的其它芯片中。

因此,本发明具有如下优点:

(1)根据ssd使用情况去预测ssd内闪存的剩余寿命,,比起一般的单独给出一个绝对的寿命界限作为ssd寿命的参考,更加具有实时性提高了ssd的可靠性;

(2)将每次或多次的操作作为预测模型的矫正数据,与固定的预测模型相比,更加贴合的实际情况中ssd内每颗闪存芯片的实际情况,增加了预测的准确性;

(3)本发明提出的测试方法是将测试模型放在ssd主控内或者与ssd固件相结合,能够得到更多的特征量,从而使模型的预测结果更加具有可信性。

附图说明

图1为本发明实施例提供的预测ssd内闪存芯片剩余寿命方法的流程示意图;

图2为本发明实施例提供的闪存寿命预测函数训练流程图;

图3为本发明实施例提供的闪存寿命预测函数初始化流程图;

图4为本发明实施例提供的闪存寿命预测实现流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明中,通过测量闪存芯片的一种特征量或几种特征量的组合,对所有特征量或组合中部分特征量进行数学运算后的值及测量得到的特征量的取值按一定规则计算或判断,通过计算或判断结果预测闪存芯片的剩余使用寿命。闪存特征量包括但不限于:闪存的编程时间、读取时间、擦除时间、电流、芯片功耗、阈值电压分布、存储块编号、存储页号、闪存当前经历过的编程/擦除周期数、条件错误页数、条件错误块数、错误比特数和错误率。闪存特征量的运算操作可以为但不限于:特征量的线性运算、特征量的非线性运算、不同特征量间的线性运算、不同特征量间的非线性运算、计算不同存储页面特征量的最大值、计算不同存储页面特征量的最小值、不同存储页面特征量之间的线性运算、不同存储页面特征量之间的非线性运算、不同存储块特征量之间的线性运算、不同存储块特征量之间的非线性运算、计算不同存储块特征量的最大值和计算不同存储块特征量的最小值。

本发明提供的ssd内实现的闪存寿命预测方法的具体步骤包括:

步骤1,由ssd主控提取一次或多次操作的目标闪存芯片的编程时间、读取时间、擦除时间、电流、芯片功耗、阈值电压分布、存储块编号、存储页号、条件错误页数和错误率,并记录芯片的编程/擦除次数。将上述的特征量存储在主控或通过固件存在存储介质中;

步骤2,读取步骤1得到的特征量,将实时获取的特征量输入到预测模型中,执行ssd内闪存寿命预测操作进行数据处理,完成数据处理后,保存数据处理结果。

步骤3,ssd内闪存寿命预测操作读取步骤2得到的数据处理结果,执行模型训练操作,执行完成后,更新预测模型;

步骤4,ssd内闪存寿命预测模块读取步骤2得到的数据处理结果,执行ssd内闪存寿命预测操作,处理完成后得出寿命预测值并输出结果;

作为优选,所述具体步骤中,执行步骤2、步骤3、步骤4时,步骤1的数据获取与保存操作将继续执行,步骤1执行的停止条件为闪存芯片达到寿命极限。

作为优选,所述步骤1中,ssd主控需提供提取特征量的功能,所述特征量包括:闪存芯片的编程时间、读取时间、擦除时间、电流、芯片功耗、阈值电压分布、存储块编号、存储页号、条件错误页数和错误率。

作为优选,所述步骤1中,目标芯片为ssd执行操作时,该操作指向的芯片。

作为优选,所述步骤1中,在提取目标闪存芯片特征量数据以及闪存芯片所经历的编程/擦除周期次数的具体步骤包括:

步骤1.1:在ssd每次执行擦除或编程时,由固件记录目标芯片的编程/擦除次数。

步骤1.2:在ssd执行编程操作时,由固件记录目标芯片各个页面的编程时间以及编程时的电流。

步骤1.3:在ssd执行读操作时,由固件记录目标芯片各个页面的读时间、读电流以及阈值电压分布,并且将读出的数据做ecc比较后记录错误比特数。其中,阈值电压获取方式为:通过逐次改变发送read_retry命令的等级,将读取出来的数据进行比较,从而获得阈值电压分布。

步骤1.4:在ssd执行擦除操作时,由固件记录目标芯片的擦除时间和擦除电流。

作为本发明的一个实施例,步骤2中,预测模型在ssd生产时已固化在控制器或者固件或者在整个ssd上除主控的其它芯片中。

其中,预测模型包括ssd内闪存寿命预测模块和模型训练模块。

步骤2中,ssd内闪存测试功能部分的输入为:从第一次执行步骤1开始到完成步骤4时,执行步骤1所保存的全部数据。数据包括:根据ssd操作所提取到的特征参数以及擦除/编程次数的集合。

步骤2的ssd内闪存寿命预测模块将步骤1提取的特征量的一种或几种组合以及编程/擦除周期作为输入,将闪存预测寿命作为输出。步骤2中ssd内闪存寿命预测模块功能为通过步骤1中提取的特征量来预测ssd内闪存的剩余寿命,实现ssd闪存寿命预测模块所用的算法不限于某种特定算法。闪存芯片寿命值指的是闪存产品在失效或到达纠错码上限之前可以执行的编程/擦除周期数。

作为本发明的一个实施例,步骤4中,模型训练模块功能为将步骤2得到的数据作为输入,矫正步骤3的ssd内闪存寿命预测模块。

为了使本发明的上述目的、特征和优点能够更加清晰,下面将结合附图和具体实施例作详细的说明。

图1为本发明实现在ssd内闪存寿命预测的流程示意图,图中所示ssd内闪存寿命预测流程适用于所有ssd产品,下面以一种ssd产品为实施例对图1进行详细的解释说明。

本实施例中,将某种ssd产品作为ssd内闪存寿命预测方法的对象。如图1所示步骤s01,由ssd主控获取特征量,并存储在主控或通过固件存在存储介质中。所述闪存芯片特征量包括:闪存芯片的编程时间、读取时间、擦除时间、电流、芯片功耗、阈值电压分布、存储块编号、存储页号、条件错误页数和错误率,以及目标ssd内闪存芯片所经历的总编程/擦除周期次数。其中,ssd主控获取特征量的方式包括但不限于:ssd执行读操作;ssd执行编程操作;ssd执行擦除操作。

步骤s01,ssd执行各种操作。在实际的ssd操作中,需要对ssd执行多次的读、编程、擦除操作。在本实施例中,由操作员给ssd发送各种不同的操作以模拟实际的ssd操作。

步骤s02,ssd主控提取各种特征量作为预测模型的输入,从而预测ssd内闪存的寿命。ssd内闪存芯片的寿命预测规则为:以错误率达到纠错码上限时的编程/擦除周期数为闪存芯片的寿命值上限。在本实施例中,ssd主控在执行步骤s01发送的各项操作时,会提取相应的特征量,具体获取方式为:

闪存芯片的编程时间:在执行编程操作时,主控或固件在检测闪存芯片的r/b信号为低时,开启一个计数器,在r/b信号为高时,结束计时。根绝计数方式不同,换算成绝对的时间间隔,即可得到闪存芯片的编程时间。

闪存芯片读取时间及擦除时间的获取方式与编程时间获取方式同理,主控或固件在接到操作命令后,检测闪存芯片的r/b信号为低时,开启一个计数器,在r/b信号为高时,结束计时。根绝计数方式不同,换算成绝对的时间间隔,即可得到闪存操作的编程时间。

闪存芯片的操作电流:通过电流监测芯片监测闪存芯片的电源接口,并通过ad转换模块将模拟量的电流值转换为数字量的电流值。在执行操作期间,电流的变化量即为操作电流。

闪存芯片存储单元阈值电压分布:ssd控制器通过发送携带不同等级参数的read_retry命令,将读出的数据与相应的写入数据比较,从而得到阈值电压分布。

闪存芯片错误率:在执行读操作时,将读出的数据做ecc校验,即可得到错误比特数,错误率为错误比特数数除以总的数据个数。

步骤s03,将步骤s02得到的特征量作为训练数据,执行模型训练功能,对预测模型进行修正,更新预测模型。本实施例步骤s03中,使用基因编程算法训练闪存寿命预测模型的流程如图2所示。根据图2,根据基因编程算法执行模型训练的具体流程为:

(1)计算机程序初始化闪存芯片寿命预测函数集合,如图3所示;设置寿命预测函数筛选方程。

(2)将采集到的特征量代入寿命预测函数集合中的每个函数;计算函数结果,即闪存芯片寿命预测值;将计算得到的闪存芯片寿命预测值与采集到的闪存芯片编程/擦除周期数代入适应度方程,根据适应度方程计算结果筛选寿命预测函数。

(3)在经过筛选的寿命预测函数集合的基础上,使用基因编程操作生成新的函数集合。

(4)对新的函数集合重复执行步骤(2)和步骤(3)的操作,基因编程代数达到200时终止操作。

(5)从集合中选择预测值与实际闪存芯片编程/擦除周期数匹配度最佳的函数,基因编程算法输出函数。

初始化配置的算法参数包括:基因编程算法的终止条件,函数系数的生成方式,函数运算符集合的组成以及输入输出变量的组成。本实施例中,基因编程算法的终止条件为算法迭代代数大于200,函数系数为计算机程序随机产生的常数,函数运算符集合为{‘+’,‘-’,‘*’,‘%’},输入变量为擦除时间及错误率,算法的输出变量为与擦除时间及错误率对应的闪存芯片的编程/擦除周期数。

步骤s04,在s02的基础上,执行ssd内闪存寿命预测操作,得到目标闪存芯片的剩余寿命。闪存芯片的寿命预测规则为:以错误率达到纠错码上限时的编程/擦除周期数为闪存芯片的寿命值上限。闪存芯片的剩余寿命计算步骤如图4所示。

步骤s05,判断ssd内目标闪存芯片是否达到寿命极限,若没有,则返回步骤s02继续执行,若达到寿命极限,则进入步骤s06。

步骤s06,ssd内目标芯片达到寿命极限,无法继续使用,由主控或者固件记录。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1