一种基于支持向量回归的闪存寿命预测方法与流程

文档序号:17423395发布日期:2019-04-17 02:32阅读:165来源:国知局
一种基于支持向量回归的闪存寿命预测方法与流程

本发明属于闪存寿命预测技术领域,更具体地,涉及一种基于支持向量回归的闪存寿命预测方法。



背景技术:

在现代电子信息产业中,存储器作为电子设备中存储数据的载体一直有着非常重要的地位。目前,市场上的存储器主要分为:易失性存储器和非易失性存储器。闪存是一种非易失性存储器,它能够在掉电后长时间保存数据,并且有着数据传输速度快、生产成本低、存储容量大等优点,所以被广泛应用于电子设备之中。

目前,由于半导体制造工艺的不断进步,存储单元间距离的减小以及氧化层厚度的降低使闪存中固有的错误越来越严重,传统的纠错码方法已无法满足闪存的可靠性需求,闪存的可靠性问题已经成为当前存储器研究领域的重要课题。闪存的使用寿命代表闪存在失效前的能够执行的编程/擦除循环操作次数,是闪存最重要的参数指标。



技术实现要素:

针对现有技术的缺陷,本发明的目的在于提供一种基于支持向量回归的闪存寿命预测方法,旨在解决现有技术中由于不同闪存之间寿命差异及特征量差异导致无法通过单一和常规的方法预测闪存寿命的问题。

本发明提供了一种基于支持向量回归的闪存寿命预测方法,包括下述步骤:

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

(2)对所述特征量进行处理后获得运算结果;

(3)将所述特征量与所述运算结果组成集合,并将所述集合中的子集作为支持向量回归模型的输入进行支持向量回归运算后获得与所述特征量对应的闪存的寿命预测值.。

更进一步地,步骤(1)具体为:

(1.1)初始化计数器m,令m的值为0。

(1.2)数据采集装置记录当前状态下目标闪存所经历的编程/擦除循环周期次数,并令计数器m的值加一。

(1.3)闪存控制器对闪存执行擦除数据操作。

(1.4)操作时间采集模块统计闪存各个页面的擦除时间,处理器对擦除时间标记对应的存储块号及存储页号后,发送给数据存储模块;电流采集模块采集擦除数据时的电流,ad转换模块将模拟信号转换成数字信号,并发送给数据存储模块;功率测量模块测量闪存功率,功率信息由处理器运算处理后发送给数据存储模块;数据存储模块保存数据。

(1.5)执行完擦除数据操作之后,闪存控制器对闪存执行编程数据操作,并在编程数据操作后,保持一定的数据保持时间tr(tr≥0)。

(1.6)操作时间采集模块统计闪存各个页面的编程时间,处理器对编程时间标记对应的存储块号及存储页号后,发送给数据存储模块;电流采集模块采集编程时的电流,ad转换模块将模拟信号转换成数字信号,并发送给数据存储模块;功率测量模块测量闪存功率,功率信息由处理器运算处理后发送给数据存储模块;数据存储模块保存从各个模块接收到的数据。

(1.7)执行完编程数据操作并保持一定的数据保持时间tr(tr≥0)之后,判断计数器m的值是否满足要求a。要求a随闪存种类的不同而存在差异。若未满足要求a,则持续循环执行步骤(1.2)~(1.6),直至计数器m的值满足要求a。

(1.8)计数器m的值满足要求a后,闪存控制器对闪存执行读取数据操作。

(1.9)若步骤(1.7)中满足要求并执行步骤(1.8)读取数据操作,则:装置中的阈值电压分布统计模块通过对闪存执行read-retry操作所需的指令集来采集闪存的存储单元阈值电压分布,将阈值电压分布信息发送给数据存储模块;操作时间采集模块统计闪存各个页面的读取时间,处理器对读取时间标记对应的存储块号及存储页号后,发送给数据存储模块;电流采集模块采集读取操作时的电流,ad转换模块将模拟信号转换成数字信号,并发送给数据存储模块;功率测量模块测量闪存功率,功率信息由处理器运算处理后发送给数据存储模块;处理器将读取的数据与编程的数据相比较,计算错误率、错误比特数等特征量,同时对数据标记对应的存储块号及存储页号后,将数据发送给数据存储模块;数据存储模块保存数据。

(1.10)执行完读取数据操作后,判断计数器m的值是否满足一定要求b。要求b随闪存种类的不同而存在差异。若未满足要求b,则持续循环执行步骤(1.2)~(1.9),直至计数器m的值满足要求b。

其中,所述要求a、要求b均为一正整数集合,且要求b中的集合为要求a中的集合的子集。集合内正整数元素取值由闪存种类来确定。一般情况下,集合a中正整数元素为某一正整数z的整数倍。正整数z与待测闪存标称寿命存在一定程度上的正相关关系。特殊地,要求a、要求b中的集合可以是单元素集合。

在本发明实施例中,对特征量进行处理的方式包括:特征量的线性运算、特征量的非线性运算、特征量间的线性运算、特征量间的非线性运算、不同存储页面特征量之间的线性运算、不同存储页面特征量之间的非线性运算、不同存储块特征量之间的线性运算或不同存储块特征量之间的非线性运算。

其中,当特征量为编程时间时,计算单次编程操作中存储块中所有页面编程时间的平均值。

其中,当特征量为错误比特数时,计算单次读取操作中存储块中不同页面错误比特数的方差,或者计算存储块中所有页面错误比特数之和后取其自然对数。

在本发明实施例中,构建所述支持向量回归模型的具体步骤为:

(3.11)将数据集合分为训练集、验证集和测试集;

(3.12)初始化支持向量回归模型,并设置训练终止条件;

(3.13)用训练集训练支持向量回归模型,构建支持向量回归函数;

(3.14)调整支持向量回归模型参数;

(3.15)验证集输入步骤(3.13)中调整完参数的支持向量回归函数,计算误差指标函数的值;若验证集误差指标函数的值大于训练集误差指标函数的值,则重复步骤(3.14);

(3.16)测试集和训练集分别输入步骤(3.15)中调整完参数的支持向量回归函数,计算测试集对应的误差指标函数的值;

(3.17)检查测试集误差、训练集误差取值是否满足训练终止条件,若满足终止训练并保存支持向量回归模型;若不满足则返回步骤(3.14)。

作为本发明的一个实施例,构建所述支持向量回归模型需要进行的样本闪存寿命测试方法为:

(3.01)从闪存集合中随机抽取样本芯片,将样本闪存与数据采集装置连接;

(3.02)向闪存发送测试数据集合,对闪存执行写入数据操作,数据采集装置记录样本闪存的编程时间;

(3.03)发送完测试数据后,数据采集装置对闪存执行读取数据操作并记录读取操作时间,装置将读出数据与发送的测试数据进行比较,数据采集装置计算并保存错误比特数;

(3.04)保存完错误比特数后,数据采集装置对闪存执行擦除数据操作,并记录擦除操作时间;

(3.05)记录当前样本闪存经历的编程/擦除操作周期数;

(3.06)重复步骤(3.02)到步骤(3.05),直到闪存到达寿命极限。

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

(1)本发明以目前计算机领域前沿的支持向量回归技术为基础提出一种闪存寿命预测方法,与目前的技术相比,该方法的先进性在于具有学习数据间非线性关系的能力,能够更加有效地提取闪存参数的变化特征。

(2)本发明将多种可靠性参数作为支持向量回归的输入,与仅以一种参数为依据的寿命预测模型相比预测寿命值的准确度更高。

(3)本发明提出的基于支持向量回归的闪存寿命预测方法中的支持向量回归模型具有动态调整参数的能力,能够通过输入新的数据或改变训练方法等方式实时地调整并优化自身的预测能力,与一般预测方法相比灵活度更高。

附图说明

图1为本发明实施例提供的一种基于支持向量回归的闪存寿命预测方法的流程示意图。

图2为本发明实施例提供的一种数据采集装置结构示例图。

图3为本发明实施例提供的一种采集待测闪存特征量的流程示意图。

图4为本发明实施例中支持向量回归偏差间隔带示例图。

图5为本发明实施例中支持向量回归升维映射操作示例图。

图6为本发明实施例提供的一种构建闪存寿命预测支持向量回归模型的流程示意图。

图7为本发明实施例提供的一种样本闪存寿命测试方法的流程示意图。

具体实施方式

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

预测闪存的剩余使用寿命,可以让闪存存储设备使用者在使用设备期间了解存储器的损耗状态,避免因存储器单元失效而造成的数据流失。同时,存储器用户还可根据预测得到的闪存剩余寿命信息,改变存储数据策略有效利用闪存保存数据。

本发明中,通过测量闪存的一种或几种特征量的组合,对所有特征量或组合中部分特征量进行数学运算,将运算结果及原始特征量进行组合,并输入到支持向量回归模型中,由支持向量回归算法计算得到闪存寿命的预测值。所述闪存特征量包括但不限于:闪存的编程时间、读取时间、擦除时间、电流、功耗、阈值电压分布、存储块编号、存储页号、闪存当前经历过的编程/擦除周期数、条件错误页数、条件错误块数、错误比特数和错误率。

本发明提供的基于支持向量回归的闪存寿命预测方法具体包括如下步骤:

步骤1,由数据采集装置对需要进行寿命预测的闪存的特征量进行测量,保存测量所得的闪存特征量。

步骤2,对测量得到的特征量中的一种或几种特征量进行数学运算,并保存运算结果。所述闪存特征量的数学运算包括但不限于:特征量的线性运算、特征量的非线性运算、特征量间的线性运算、特征量间的非线性运算、不同存储页面特征量之间的线性运算、不同存储页面特征量之间的非线性运算、不同存储块特征量之间的线性运算和不同存储块特征量之间的非线性运算。

步骤3,将步骤1中测量得到的特征量及步骤2中特征量的运算结果构成集合,取集合中的子集作为支持向量回归的输入,进行支持向量回归运算,由支持向量回归算法计算得到特征量对应的闪存的寿命预测值。

作为本发明的一个实施例,预测结果表示方式可以是:闪存由当前至超过一定错误率前能够经历的编程/擦除周期数的预测值,闪存由当前至超过一定错误率前能够经历的编程/擦除周期数占闪存总编程/擦除周期百分比的预测值。

其中,条件错误页数为:阈值电压分布、编程时间、读取时间、擦除时间、错误数、错误率中的一个或几个特征量满足一定取值条件的存储页的数量。其中,条件错误块数为:阈值电压分布、编程时间、读取时间、擦除时间、错误数、错误率等特征量中的一个或几个特征量满足一定取值条件时存储块的数量。

在本发明实施例中,步骤1中,特征量采集的具体步骤包括:

步骤1.1,数据采集装置记录当前状态下目标闪存所经历的编程/擦除周期次数。

步骤1.2,数据采集装置向闪存发送测试数据集合,对闪存执行编程数据操作,同时数据采集装置记录闪存编程时的电流、编程时的功耗、各个页面的编程时间以及编程时间对应的存储块号和存储页号。

步骤1.3,执行完编程数据操作并保持一定的数据保持时间tr(tr≥0)之后,对闪存执行读取数据操作,由数据采集装置测量闪存的存储单元阈值电压分布、读取操作时的电流、读取操作时的功耗以及各个页面的读取时间,同时将读取数据操作中获得的数据与步骤4.2中的测试数据进行比较,计算错误比特数、错误率、条件错误页数及条件错误块数;装置记录错误比特数、错误率、条件错误页数、条件错误块数、阈值电压分布、读取时间、读取操作时的功耗以及读取操作时的电流。其中,数据采集装置对特征量标记错误比特数、错误率、条件错误页数、条件错误块数、阈值电压分布、读取时间所对应的存储页号及存储块号。闪存存储单元阈值电压分布的获取方式为:测试系统对闪存执行read-retry操作所需的命令集,使得闪存的读取数据操作参考电压产生偏移,然后根据read-retry操作所得的数据进行数学分析与运算,获得对应的闪存存储单元阈值电压分布。

步骤1.4,执行完读取数据操作之后,对目标闪存执行擦除数据操作,由装置采集闪存擦除操作时的电流、擦除操作时的功耗以及各个存储块的擦除时间,装置记录获取的擦除操作时的电流、擦除操作时的功耗、擦除时间以及擦除时间对应的存储块号和存储页号。

在本发明实施例中,步骤3的支持向量回归是根据闪存特征量变化规律训练调整参数后生成的支持向量回归函数。

其中,在对目标闪存进行预测时,所述步骤3的支持向量回归的参数维持不变,或根据新的输入训练数据集、验证数据集以及测试数据集,并实时地对参数进行优化。

在本发明实施例中,生成支持向量回归函数的具体步骤包括:

步骤5.1,初始化支持向量回归模型。其中,初始化的支持向量回归模型可以为:按照一定规则生成的支持向量回归模型或随机生成的支持向量回归模型或按照闪存特征量变化规律训练好的支持向量回归模型。

步骤5.2,输入训练数据集、验证数据集以及测试数据集,开始训练支持向量回归模型,由训练算法根据数据集对支持向量回归参数进行调整和优化。其中,进行支持向量回归过程中所使用的训练数据集、验证数据集以及测试数据集的内容可根据实际预测需求进行更改,不为确定不变的数据集合。

步骤5.3,当支持向量回归的训练误差和测试误差达到一定要求时,终止训练,其中,用于预测闪存寿命的支持向量回归函数。其中,在对目标闪存进行预测时,支持向量回归的训练终止条件可维持不变或根据实际预测需求进行更改。

下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。

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

本实施例中,将某制造工艺下的3d多级单元nand闪存(mlcnandflash)产品作为测量对象和寿命预测对象,如图1所示。

步骤s01,由数据采集装置测量预测目标闪存寿命所需的特征量数据,获取的数据由数据采集装置保存在存储空间。所述闪存特征量包括但不限于:闪存的编程时间、读取时间、擦除时间、电流、芯片功耗、阈值电压分布、存储块编号、存储页号、闪存当前经历过的编程/擦除周期数、条件错误页数、条件错误块数、错误比特数和错误率。

步骤s01中,数据采集装置的结构如图2所示。数据采集装置包括了以下模块:处理器、闪存控制器、电流采集模块、功率测量模块、ad转换模块、操作时间采集模块、阈值电压分布统计模块、数据存储模块等。

上述数据采集装置中的处理器为arm处理器,闪存控制器、操作时间采集模块及阈值电压分布统计模块通过fpga实现,电流电压采集模块通过max44284电流检测放大器实现,功率测量模块通过ade7755芯片实现,ad转换模块通过adc芯片实现,数据存储模块通过dram存储器实现。

步骤s01的实施流程如图3所示,装置采集并保存数据的具体操作为:

(1)初始化计数器m,m的初始值为0。

(2)数据采集装置记录当前状态下目标闪存所经历的编程/擦除循环周期次数,并令计数器m的值加一。

(3)闪存控制器对闪存执行擦除数据操作。

(4)操作时间采集模块统计闪存各个页面的擦除时间,处理器对擦除时间标记对应的存储块号及存储页号后,发送给数据存储模块;电流采集模块采集擦除数据时的电流,ad转换模块将模拟信号转换成数字信号,并发送给数据存储模块;功率测量模块测量闪存功率,功率信息由处理器运算处理后发送给数据存储模块;数据存储模块保存数据。

(5)执行完擦除数据操作之后,闪存控制器对闪存执行编程数据操作,并在编程数据操作后,保持一定的数据保持时间tr(tr≥0)。

(6)操作时间采集模块统计闪存各个页面的编程时间,处理器对编程时间标记对应的存储块号及存储页号后,发送给数据存储模块;电流采集模块采集编程时的电流,ad转换模块将模拟信号转换成数字信号,并发送给数据存储模块;功率测量模块测量闪存功率,功率信息由处理器运算处理后发送给数据存储模块;数据存储模块保存从各个模块接收到的数据。

(7)执行完编程数据操作并保持一定的数据保持时间tr(tr≥0)之后,判断计数器m的值是否满足要求a。要求a具体为:计数器m的值为正整数集合{1、50、100}中的元素。若未满足要求a,则持续循环执行步骤(2)~(6),直至计数器m的值满足要求a。

(8)计数器m的值满足要求a后,闪存控制器对闪存执行读取数据操作。

(9)若步骤(7)中满足要求并执行步骤(8)读取数据操作,则:装置中的阈值电压分布统计模块通过对闪存执行read-retry操作所需的指令集来采集闪存的存储单元阈值电压分布,将阈值电压分布信息发送给数据存储模块;操作时间采集模块统计闪存各个页面的读取时间,处理器对读取时间标记对应的存储块号及存储页号后,发送给数据存储模块;电流采集模块采集读取操作时的电流,ad转换模块将模拟信号转换成数字信号,并发送给数据存储模块;功率测量模块测量闪存功率,功率信息由处理器运算处理后发送给数据存储模块;处理器将读取的数据与编程的数据相比较,计算错误率、错误比特数等特征量,同时对数据标记对应的存储块号及存储页号后,将数据发送给数据存储模块;数据存储模块保存数据。

(10)执行完读取数据操作后,判断计数器m的值是否满足一定要求b。要求b具体为:计数器m的值为正整数100。若未满足要求b,则持续循环执行步骤(2)~(9),直至计数器m的值满足要求b,循环结束,测试完成。

步骤s02,对测量得到的一种或几种特征量进行数学运算,保存特征量数学运算结果。本实施例中选取编程时间、错误比特数进行运算。本实施例步骤s02对上述特征量的运算操作为:

(1)计算单次编程操作中存储块中所有页面编程时间的平均值,记为pte;

(2)计算单次读取操作中存储块中不同页面错误比特数的方差,记为erv;

(3)计算存储块中所有页面错误比特数之和,并取其自然对数,记为es1。

步骤3,将步骤s01中测量得到的特征量及步骤s02中特征量的运算结果构成集合,取集合中的子集作为支持向量回归的输入。子集的选取,随着闪存种类的不同而存在差异,需根据闪存特征量性状表现而定。本实施例中可以选取步骤s01测量得到的特征量擦除时间、读取时间与步骤s02中运算得到的页面编程时间的平均值、页面错误比特数的方差、页面错误比特数之和的自然对数。其中,擦除时间记为et,读取时间记为rt。

步骤s04,将数据et、rt、pte、erv和esl输入支持向量回归模型,由支持向量回归算法计算闪存的寿命预测值。支持向量回归的目的是,通过给定训练样本d={(x1,y1),(x2,y2),...,(xm,ym)},找到一条输出与输入之间的回归模型关系。其中,在建立回归模型过程中,允许容忍f(x)与y之间最多有ε的偏差,如图4所示,若训练样本在以f(x)为中心构建的高度为2ε的间隔带间,则不计算损失。如图5所示,为了将非线性回归问题转化为线性回归问题,需要将样本从原始空间通过x→φ(x)映射到一个更高维的特征空间,就能找到一个合适的超平面函数f(x)。即支持向量回归的目的是,在高维特征空间中,找到f(x)满足:

通过引入拉格朗日乘子并转化为求对偶问题,然后引入核函数,将支持向量回归的解f(x)表示为:

如图6所示,步骤s04中支持向量回归模型的生成步骤如下:

(1)将数据集合分为训练集、验证集和测试集,本实施例中采用随机划分的方式,训练集为整个数据集合的50%,验证集为整个数据集合的25%,测试集为整个数据集合的25%。

(2)初始化支持向量回归模型,设置训练终止条件。令支持向量回归模型参数分别为:核函数类型kemel=rbf,惩罚因子c=le3,核系数gamma=0.01。

(3)用训练集训练支持向量回归模型,构建支持向量回归函数。本实例中支持向量回归函数的输入为特征量与特征量数学运算结果构成的集合的子集所形成的特征向量,输出为闪存块的剩余寿命预测值。计算训练集误差指标函数的值,本实施例中误差指标函数为均方误差(mse)。

(4)调整支持向量回归模型参数,如惩罚因子c,核系数gamma等。

(5)验证集输入步骤(3)中调整完参数的支持向量回归函数,计算误差指标函数的值。若验证集误差指标函数的值大于训练集误差指标函数的值,则重复步骤(4)。

(6)测试集和训练集分别输入步骤(5)中调整完参数的支持向量回归函数,计算测试集对应的误差指标函数的值。

(7)检查测试集误差、训练集误差取值是否满足训练终止条件,若满足终止训练并保存支持向量回归模型;若不满足则返回步骤(4)。

本实施例中,步骤(1)中的数据集合为:步骤s01中闪存同批次的闪存样本经过可靠性测试后获得的特征量测试数据,测试数据经过运算操作后的数据和特征量测试数据对应的样本闪存剩余寿命值组成的集合;其中,运算操作与步骤s02中所述运算操作相同。样本闪存剩余寿命值的计算方法为样本闪存可靠性测试后经历的最大编程/擦除周期数减去测量特征量时样本闪存经历的编程/擦除周期数。特征量包括编程时间、读取时间、擦除时间和错误比特数。

构建上述支持向量回归模型所需进行的样本闪存寿命测试流程如图7所示,具体步骤为:

(1)从闪存集合中随机抽取样本芯片,将样本闪存与数据采集装置连接。

(2)向闪存发送测试数据集合,对闪存执行写入数据操作,数据采集装置记录样本闪存的编程时间。本实施例中的测试数据集合为随机数集合。

(3)发送完测试数据后,数据采集装置对闪存执行读取数据操作并记录读取操作时间,装置将读出数据与发送的测试数据进行比较,数据采集装置计算并保存错误比特数。

(4)保存完错误比特数后,数据采集装置对闪存执行擦除数据操作,并记录擦除操作时间。

(5)记录当前样本闪存经历的编程/擦除操作周期数。

(6)重复步骤(2)到步骤(5),直到闪存到达寿命极限。

在本实施例中,将闪存寿命极限定义为:单次读取数据操作过程中,当闪存块中所有页面错误比特率的最大值达到一定值时,即达到寿命极限。数据采集装置统计样本闪存的总编程/擦除操作周期数。

步骤s05,支持向量回归模型输出闪存寿命预测值。本实施例中,步骤s01到步骤s05的闪存预测操作可应用于闪存的整个使用寿命过程中,且每次步骤s01到步骤s05得到的特征量测量数据、特征量数学运算结果和预测值均可用于调整下一次预测闪存寿命所用的支持向量回归模型的参数。

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

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