一种固态硬盘数据保持时间巡检方法、装置及设备与流程

文档序号:18162691发布日期:2019-07-13 09:24阅读:203来源:国知局
一种固态硬盘数据保持时间巡检方法、装置及设备与流程

本发明涉及固态硬盘数据保持技术领域,特别是涉及一种固态硬盘数据保持时间巡检方法、装置、设备及计算机可读存储介质。



背景技术:

在固态硬盘的存储nandflash的存储周期内,有很多因素会引起存储数据的丢失,目前通常采用ecc纠错功能来纠正错误的数据。但是由于nandflash是基于浮栅(floatinggate)晶体管设计,通过浮栅来锁存电荷,电荷被储存在浮栅中,它们在无电源供应的情况下仍然可以保持,这种情况下,相对于通过磁道存储二进制信息的磁盘而言,ssd存储的信息具有不稳定性,随着时间的推移,存储于ssd内的信息会弱化并逐渐达到ecc不可纠正进而丢失。这种数据丢失称为超出retention数据保持力导致的数据错误。

dataretention(数据保持力)是用于衡量写入nandflash的数据能够不失真保时间的可靠性指标,一般定义为在一定的温度条件下,数据在使用ecc纠错之后不失真保存在nandflash中的时间,温度越高,数据保持力越短。

目前,为了避免数据超出数据保持力时间导致数据丢失,业界一般都会在其数据的数据保持力时间到达前,直接将数据搬移到一个新的存储区域(block,区块),从而相当于对数据进行了refresh(刷新)操作,从而使得数据的数据保持时间也进行了刷新。

由于固态硬盘的工作温度对数据保持力时间的影响较大,例如:70℃时,retention时间为五天,50℃时retention时间为20天,40℃时retention时间为100天。因此retention时间是一个随时间推移温度变化而动态变化的曲线数值。

但是现有在依据retention时间进行数据搬移时,大部分会按照温度最高的情况下,即retention时间最短的情况作为标准进行数据搬移,例如按照70℃时的5天,在5天到来之前执行数据搬移操作。但是,虽然这样能有效避免数据错误的发生,但是,由于通常情况下固态硬盘并不会始终工作在最高温度下,而是大部分时候工作在较低的温度下,因此,始终按照最短的retention时间进行数据搬移,数据搬移操作频繁,增加了系统的负担。

因此,如何提供一种能够降低系统负担的固态硬盘数据保持时间巡检方法是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种固态硬盘数据保持时间巡检方法,能够根据固态硬盘的温度调整数据搬移的频率,提高固态硬盘的使用寿命,减少性能抖动的频率;本发明的另一目的是提供一种基于上述方法的装置、设备及计算机可读存储介质。

为解决上述技术问题,本发明提供了一种固态硬盘数据保持时间巡检方法,包括:

每隔预设周期采集固态硬盘的温度值;

确定当前温度值对应的加速因子;

计算所述加速因子与所述预设周期的乘积值,将所述乘积值与所述区块的之前保存的时间累积值求和,得到所述区块当前的时间累积值;所述固态硬盘的区块内新存入数据后的初始时间累积值为0;

判断所述当前的时间累积值是否达到预设搬移时间阈值,若达到,将所述区块内的数据搬移至其他区块内,并令所述区块的时间累积值归零;若未达到,保存所述当前的时间累积值,并继续采集下一周期内的固态硬盘的温度值,重复上述过程。

优选地,所述判断所述当前的时间累积值是否达到预设搬移时间阈值之前,还包括:

判断所述当前的时间累积值是否达到预设仿真时间阈值;

若达到所述预设仿真时间阈值,触发读参考电压仿真操作,并判断所述当前的时间累积值是否达到所述预设搬移时间阈值;

若未达到所述预设仿真时间阈值,保存所述当前的时间累积值,并继续采集下一周期内的固态硬盘的温度值,重复上述过程。

优选地,所述每隔预设周期采集固态硬盘的温度值的过程具体为:

实时采集所述固态硬盘的温度值;

每隔所述预设周期,选取本周期内的最高温度值作为所述当前温度值。

优选地,所述计算所述加速因子与所述预设周期的乘积值,将所述乘积值与所述区块的之前保存的时间累积值求和,得到所述区块当前的时间累积值的过程包括:

依据所述加速因子与当前周期对应的时间范围,对所述区块保存的加速曲线进行补充,得到所述区块当前的加速曲线;所述加速曲线的横坐标为时间值,纵坐标为加速因子值;

对所述区块当前的加速曲线整体进行积分,得到所述区块当前的时间累积值;

相应的,后续若所述当前的时间累积值达到预设搬移时间阈值,则令所述区块的加速曲线归零;若所述当前的时间累积值未达到所述预设搬移时间阈值,则保存所述当前的加速曲线,并继续采集下一周期内的固态硬盘的温度值,重复上述过程。

为解决上述技术问题,本发明还提供了一种固态硬盘数据保持时间巡检装置,包括:

温度采集模块,用于在所述固态硬盘的区块内新存入数据后,每隔预设周期采集固态硬盘的温度值;

加速因子计算模块,用于确定当前温度值对应的加速因子;

时间计算模块,用于计算所述加速因子与所述预设周期的乘积值,将所述乘积值与所述区块的之前保存的时间累积值求和,得到所述区块当前的时间累积值;所述固态硬盘的区块内新存入数据后的初始时间累积值为0;

判断模块,用于判断所述当前的时间累积值是否达到预设搬移时间阈值,若达到,将所述区块内的数据搬移至其他区块内,并令所述区块的时间累积值归零;若未达到,保存所述当前的时间累积值,并触发所述温度采集模块继续采集下一周期内的固态硬盘的温度值。

优选地,所述判断模块在判断所述当前的时间累积值是否达到预设搬移时间阈值之前,还用于:

判断所述当前的时间累积值是否达到预设仿真时间阈值;若达到所述预设仿真时间阈值,触发读参考电压仿真操作,并判断所述当前的时间累积值是否达到所述预设搬移时间阈值;若未达到所述预设仿真时间阈值,保存所述当前的时间累积值,并触发所述温度采集模块继续采集下一周期内的固态硬盘的温度值。

优选地,所述温度采集模块具体用于:

实时采集所述固态硬盘的温度值;每隔所述预设周期,选取本周期内的最高温度值作为所述当前温度值。

优选地,所述时间计算模块具体包括:

曲线更新单元,用于依据所述加速因子与当前周期对应的时间范围,对所述区块保存的加速曲线进行补充,得到所述区块当前的加速曲线;所述加速曲线的横坐标为时间值,纵坐标为加速因子值;

积分单元,用于对所述区块当前的加速曲线整体进行积分,得到所述区块当前的时间累积值;

相应的,后续判断模块在判断所述当前的时间累积值达到预设搬移时间阈值,则令所述区块对应的所述加速曲线归零;若所述当前的时间累积值未达到所述预设搬移时间阈值,则保存所述当前的加速曲线,并触发所述温度采集模块继续采集下一周期内的固态硬盘的温度值。

为解决上述技术问题,本发明还提供了一种固态硬盘数据保持时间巡检设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如以上任一项所述的固态硬盘数据保持时间巡检方法的步骤。

为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上任一项所述的固态硬盘数据保持时间巡检方法的步骤。

本发明提供了一种固态硬盘数据保持时间巡检方法,在区块内新存入数据后,会设置该区块的时间累积值为0;周期性采集固态硬盘的温度值,确定当前温度值对应的加速因子并计算加速因子和预设周期的乘积值,之后对于每个含有数据的区块,将计算得到的乘积值与其保存的时间累积值进行求和,得到该区块当前的时间累积值;该当前的时间累积值表示的是该区块自写入数据起到当前时刻为止,经历过的各个周期的乘积值累积求和后得到的值;之后判断当前的时间累积值是否满足预设搬移时间阈值,若达到,则进行数据搬移,否则,继续进行时间累积。可以理解的是,加速因子是与固态硬盘的温度值成正比的参数,因此,温度越高,加速因子越大,即每周期的乘积值越大,而固态硬盘的区块在温度越高的情况下,数据保持力时间越短;故本发明中,在温度较高的情况下,区块的时间累积值会越快的达到预设搬移时间阈值,即数据搬移频率较高;而在温度较低的情况下,区块的时间累积值会较慢的达到预设搬移时间阈值,即数据搬移频率较低。可见,本发明能够根据固态硬盘温度的情况,自适应的调整数据搬移的频率,而不是始终按照最高的数据搬移频率进行,从而减少了数据搬移次数,进而减小了对固态硬盘寿命损坏的速度,提高了固态硬盘的使用寿命,减少了性能抖动的频率。本发明还提供了一种基于上述方法的装置、设备及计算机可读存储介质。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种固态硬盘数据保持时间巡检方法的过程的流程图;

图2为本发明提供的另一种固态硬盘数据保持时间巡检方法的过程的流程图;

图3为本发明提供的一种固态硬盘数据保持时间巡检装置的结构示意图。

具体实施方式

本发明的核心是提供一种固态硬盘数据保持时间巡检方法,能够根据固态硬盘的温度调整数据搬移的频率,提高固态硬盘的使用寿命,减少性能抖动的频率;本发明的另一核心是提供一种基于上述方法的装置、设备及计算机可读存储介质。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种固态硬盘数据保持时间巡检方法,参见图1所示,图1为本发明提供的一种固态硬盘数据保持时间巡检方法的过程的流程图;该方法包括:

步骤s1:每隔预设周期采集固态硬盘的温度值;

固态硬盘的温度值会随着使用时间等因素的影响而不断发生变化,因此需要每隔预设周期即采集一次温度值。

步骤s2:确定当前温度值对应的加速因子af(accelerationfactor);

加速因子是与温度值成正比的参数,即温度值越大,加速因子也越大,而数据保持力时间越短;反之,温度值越小,加速因子也越小,而数据保持力时间越长。

步骤s3:计算加速因子与预设周期的乘积值,将乘积值与区块的之前保存的时间累积值求和,得到区块当前的时间累积值;固态硬盘的区块内新存入数据后的初始时间累积值为0;即时间累积值的关系式如下:

其中,time为时间累积值,ts为预设周期,af(ti)为第i周期的加速因子,n表示当前为第n个预设周期。即time等于从第1个预设周期的乘积值到第n个预设周期的乘积值累积求和的结果。

由于目前在进行数据搬移时,仅按照温度值最大时对应的数据保持力retention时间进行数据搬移,而此时的数据保持力retention时间为最小值,即数据搬移按照最频繁的方式进行,由于固态硬盘的数据擦写次数是有限的,因此这种频繁的数据搬移加快了固态硬盘的寿命消耗。故本发明为了解决该问题,在每个时间周期内,将与温度成正比的加速因子作为权值与时间周期相乘,之后累积各个周期的乘积值。即假设预设周期为10s的话,则每个周期实际经历的时间为10s,但是若此时温度较高的话,该周期内的乘积值则为10s乘以一个较大的加速因子,因此,加快了最终时间累积值达到预设搬移时间阈值的速度,反之,温度较低时,则减缓了最终时间累积值达到预设搬移时间阈值的速度。即温度越高,数据保持力时间越短,而本发明会较快的进行数据搬移;温度越低,数据保持力时间越长,而本发明会较慢的进行数据搬移。故本发明的方案中,数据搬移的频率能够尽可能贴合其数据保持力时间,从而尽可能减少了数据搬移次数,减缓了固态硬盘的寿命消耗。

步骤s4:判断当前的时间累积值是否达到预设搬移时间阈值,若达到,进入步骤s5;若未达到,进入步骤s6;

步骤s5:将区块内的数据搬移至其他区块内,并令区块的时间累积值归零;

步骤s6:保存当前的时间累积值,并返回步骤s1。

本发明提供了一种固态硬盘数据保持时间巡检方法,在区块内新存入数据后,会设置该区块的时间累积值为0;周期性采集固态硬盘的温度值,确定当前温度值对应的加速因子并计算加速因子和预设周期的乘积值,之后对于每个含有数据的区块,将计算得到的乘积值与其保存的时间累积值进行求和,得到该区块当前的时间累积值;该当前的时间累积值表示的是该区块自写入数据起到当前时刻为止,经历过的各个周期的乘积值累积求和后得到的值;之后判断当前的时间累积值是否满足预设搬移时间阈值,若达到,则进行数据搬移,否则,继续进行时间累积。可以理解的是,加速因子是与固态硬盘的温度值成正比的参数,因此,温度越高,加速因子越大,即每周期的乘积值越大,而固态硬盘的区块在温度越高的情况下,数据保持力时间越短;故本发明中,通过加速因子作为时间周期的权值进行时间累积,使得在温度较高的情况下,区块的时间累积值会越快的达到预设搬移时间阈值,即数据搬移频率较高;而在温度较低的情况下,区块的时间累积值会较慢的达到预设搬移时间阈值,即数据搬移频率较低。可见,本发明能够根据固态硬盘温度的情况,考虑到温度变化给retention时间带来的影响,精确了时间累计值(即实际的retention实际)的计算,从而能够根据温度变化自适应的调整数据搬移的频率,而不是始终按照最高的数据搬移频率进行,从而减少了数据搬移次数,进而减小了对固态硬盘寿命损坏的速度,提高了固态硬盘的使用寿命,减少了性能抖动的频率,并减小后台操作的系统开销,提高固态硬盘系统的性能。

其中,这里的预设搬移时间阈值可以设置为加速因子af为1时的retention时间,即在没有加速因子加权的情况下,区块的时间累积值达到预设搬移时间阈值的时间等于af=1时retention时间,加速因子af为1时对应的温度值为基准温度。举例来说,假设50℃时retention时间为20天,af(50℃)=1,则在固态硬盘始终保持为50℃时,区块的时间累积值达到预设搬移时间阈值的时间(即满足搬移条件的时间),应该等于50℃对应的retention时间。这种情况下,本发明数据搬移的频率,才能够尽可能贴合对应温度值下理想的retention时间,从而使数据搬移的频率达到其所能达到的最慢的频率。当然,以上仅为优选实施例,预设搬移时间阈值还可以设置为其他数值,例如,处于数据安全的考虑,将预设搬移时间阈值设置为af为2时的retention时间(此时数据搬移的频率会比af为1时的搬移频率较高),本发明不限定预设搬移时间阈值的设置数值。

作为优选地,参见图2所示,图2为本发明提供的另一种固态硬盘数据保持时间巡检方法的过程的流程图;步骤s4之前,还包括:

步骤s41:判断当前的时间累积值是否达到预设仿真时间阈值;若达到预设仿真时间阈值,进入步骤s42;若未达到预设仿真时间阈值,进入步骤s6;

步骤s42:触发读参考电压仿真操作,并进入步骤s4。

可以理解的是,由于固态硬盘的数据在保存过程中,会发生电压偏移的情况,此时,若按照原电压进行读取的话,则读取数据会出现错误,随着电压偏移情况越发严重,读取数据的错误程度越来越大,当读取数据的错误率达到一定阈值时,则必须进行数据搬移。而读参考电压仿真操作,指的是对读取数据这一操作进行仿真模拟,若读取时的数据发生错误,则计算当前的电压偏移值,例如为-2,即原本的参考电压偏移至-2的位置,则之后按照参考电压为-2来进行数据读取,从而减小数据读取的错误率。这种方式下,能够减缓数据读取的错误率达到指定阈值时的时间,从而使得数据可以较慢的进行搬移,因此在存在读参考电压仿真操作的情况下,预设搬移时间阈值可以相比不存在读参考电压仿真操作时设置的值较大,从而进一步减慢数据搬移的频率,提高固态硬盘的使用寿命。

在一种优选实施例中,步骤s1的过程具体为:

实时采集固态硬盘的温度值;每隔预设周期,选取本周期内的最高温度值作为当前温度值。其中,这里的“本周期内的最高温度值”指的是:自当前时刻开始,之前预设周期时间长度内的最高温度值。举例来看,假设预设周期为10s,则每隔10s,会选取当前时刻之前10s内的最高温度值。为了提高时间累积的精度,预设周期不宜设置为较大的数值,当然,本发明不限定预设周期的时间程度。

可以理解的是,本发明虽然进行了周期的划分,但是每个预设周期内的温度值也不一定始终保持不变,很可能会在一个较小的范围内变化。由于本发明中的数据搬移,需要在区块的实际应用时间未达到retention时间时,进行搬移,具体实现方式是在实际时间加权求和得到的时间累积值达到预设搬移时间阈值时进行搬移。因此,若将每个预设周期内较低的温度值作为该周期内的当前温度值的话,会使得本周期对应的加权因子与预设周期的乘积值,小于温度值实时采集时对应的实时加权因子与对应时刻的乘积值累积一个周期后得到的累积乘积值。即此时得到的本周期的乘积值可能会小于实际值,这样容易导致在时间累积值达到预设搬移时间阈值时,实际已经超出了该区块的数据保持力时间,导致数据已经出现了损失,可靠性低。因此为了避免上述情况,本实施例中每个预设周期内,均将最高的温度值作为当前温度值,这样使得每个预设周期对应的加速因子均为其在该周期内的最大值,这样虽然可能会使得最终时间累积值达到预设搬移时间阈值的时间较早,但是能够尽可能避免超出区块的数据保持力时间的情况出现,从而提高数据保持的可靠性。

在另一优选实施例中,步骤s3的过程包括:

依据加速因子与当前周期对应的时间范围,对区块保存的加速曲线进行补充,得到区块当前的加速曲线;加速曲线的横坐标为时间值,纵坐标为加速因子值;

对区块当前的加速曲线整体进行积分,得到区块当前的时间累积值;

相应的,后续若当前的时间累积值达到预设搬移时间阈值,则令区块的加速曲线归零;若当前的时间累积值未达到预设搬移时间阈值,则保存当前的加速曲线,并继续采集下一周期内的固态硬盘的温度值,重复上述过程。

可以理解的是,前述实施例中,虽然采用预设周期进行时间划分,选择每个预设周期内的最大温度值来计算该周期内的加速因子,这种方式受到预设周期的时间长度的影响,使得该周期内的加速因子的精确度达不到实际加速因子的精度,因此最终计算得到时间累积值实际上是偏大的,即达到预设搬移时间阈值的速度会较快。而本实施例中,依据每次采集的温度值和采集时刻,进行了加速曲线的绘制,将离散值近似恢复为了连续曲线,该加速曲线的横坐标为时间值,纵坐标为加速因子值,即加速曲线上的每个点即为该时刻对应的加速因子,或者也可以理解为该时刻对应的加速因子与极短的时间值(δt)的乘积值,因此每次进行温度值采集后,即可将当前周期的时间范围和对应的加速因子补充至之前的加速曲线内,之后对补充完的加速曲线整体进行积分的话,即可得到自开始到当前采集周期的时间累积值。在本实施例中,采用连续曲线进行积分计算,相比采用离散乘积值求和的方式,时间累积值的精确度更高,从而进一步减缓了进行数据搬移的频率,提高了固态硬盘的性能。

本发明还提供了一种固态硬盘数据保持时间巡检装置,参见图3所示,图3为本发明提供的一种固态硬盘数据保持时间巡检装置的结构示意图。该装置包括:

温度采集模块1,用于在固态硬盘的区块内新存入数据后,每隔预设周期采集固态硬盘的温度值;

加速因子计算模块2,用于确定当前温度值对应的加速因子;

时间计算模块3,用于计算加速因子与预设周期的乘积值,将乘积值与区块的之前保存的时间累积值求和,得到区块当前的时间累积值;固态硬盘的区块内新存入数据后的初始时间累积值为0;

判断模块4,用于判断当前的时间累积值是否达到预设搬移时间阈值,若达到,将区块内的数据搬移至其他区块内,并令区块的时间累积值归零;若未达到,保存当前的时间累积值,并触发温度采集模块1继续采集下一周期内的固态硬盘的温度值。

作为优选地,判断模块4在判断当前的时间累积值是否达到预设搬移时间阈值之前,还用于:

判断当前的时间累积值是否达到预设仿真时间阈值;若达到预设仿真时间阈值,触发读参考电压仿真操作,并判断当前的时间累积值是否达到预设搬移时间阈值;若未达到预设仿真时间阈值,保存当前的时间累积值,并触发温度采集模块1继续采集下一周期内的固态硬盘的温度值。

作为优选地,温度采集模块1具体用于:

实时采集固态硬盘的温度值;每隔预设周期,选取本周期内的最高温度值作为当前温度值。

作为优选地,时间计算模块3具体包括:

曲线更新单元,用于依据加速因子与当前周期对应的时间范围,对区块保存的加速曲线进行补充,得到区块当前的加速曲线;加速曲线的横坐标为时间值,纵坐标为加速因子值;

积分单元,用于对区块当前的加速曲线整体进行积分,得到区块当前的时间累积值;

相应的,后续判断模块4在判断当前的时间累积值达到预设搬移时间阈值,则令区块对应的加速曲线归零;若当前的时间累积值未达到预设搬移时间阈值,则保存当前的加速曲线,并触发温度采集模块1继续采集下一周期内的固态硬盘的温度值。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本发明还提供了一种固态硬盘数据保持时间巡检设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如以上任一项的固态硬盘数据保持时间巡检方法的步骤。

本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如以上任一项的固态硬盘数据保持时间巡检方法的步骤。

以上的几种具体实施方式仅是本发明的优选实施方式,以上几种具体实施例可以任意组合,组合后得到的实施例也在本发明的保护范围之内。应当指出,对于本技术领域的普通技术人员来说,相关专业技术人员在不脱离本发明精神和构思前提下推演出的其他改进和变化,均应包含在本发明的保护范围之内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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