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

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

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



背景技术:

nandflash是一种非易失性随机访问存储介质,基于浮栅(floatinggate)晶体管设计,通过浮栅来锁存电荷,电荷被储存在浮栅中,它们在无电源供应的情况下仍然可以保持。dataretention(数据保存力)是用于衡量写入nandflash的数据能够不失真保时间的可靠性指标,一般定义为在一定的温度条件下,数据在使用ecc纠错之后不失真保存在nandflash中的时间,温度越高,数据保持力越短。

目前,为了避免数据超出数据保持力时间导致数据丢失,业界一般都会在其数据的数据保持力时间到达前,直接将数据搬移到一个新的存储区域(block,区块),从而相当于对数据进行了refresh(刷新)操作,从而使得数据的数据保持时间也进行了刷新。由于固态硬盘的工作温度对数据保持力时间的影响较大,例如,nandflash可以保证环境温度40℃保持3个月,70℃下,数据保持力仅为2.5天,这样固态盘必须2.5天内做数据搬移,因此retention时间是一个随时间推移温度变化而动态变化的曲线数值。

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

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



技术实现要素:

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

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

在所述闪存nand的区块内新存入数据后,记录新存入数据的区块的当前剩余保持时间为预设数据保持力时间;

区块进入开启状态后,记录区块的持续开启时间,当处于开启状态的区块满足关闭条件时,令满足关闭条件的区块的剩余保持时间减去所述持续开启时间与特定加速因子的乘积,得到所述满足关闭条件的区块的当前剩余保持时间;

每隔预设周期采集nand的温度值,并确定当前温度值对应的加速因子;

计算所述加速因子与所述预设周期的乘积值,令各个处于关闭状态的区块的当前剩余保持时间减去所述乘积值,得到各个处于关闭状态的区块更新后的当前剩余保持时间;

判断各个处于关闭状态的区块更新后的当前剩余保持时间是否达到0,若达到,将当前剩余保持时间达到0的区块内的数据搬移至其他区块内;若未达到,继续采集下一周期内的nand的温度值,重复上述过程。

优选的,所述当处于开启状态的区块满足关闭条件时,令满足关闭条件的区块的剩余保持时间减去所述持续开启时间与特定加速因子的乘积,得到所述满足关闭条件的区块的当前剩余保持时间之后,还包括:

判断所述满足关闭条件的区块的当前剩余保持时间是否达到0,若达到,将该区块内的数据搬移至其他区块内。

优选的,所述特定加速因子为所述nand对应的最大加速因子值。

优选的,判断处于开启状态的区块的持续开启时间是否满足关闭条件的过程为:

判断处于开启状态的区块的持续开启时间是否达到预设开启时间阈值,若达到,则所述处于开启状态的区块满足关闭条件;若未达到,判断所述处于开启状态的区块最后一次数据写入的时刻与当前时刻的时间差是否达到预设时间差阈值,若达到所述预设时间差阈值,则所述处于开启状态的区块满足关闭条件,并令该区块的持续开启时间等于所述预设开启时间阈值;若未达到所述预设时间差阈值,则处于开启状态的区块的持续开启时间不满足关闭条件。

优选的,所述每隔预设周期采集nand的温度值的过程具体为:

实时采集所述nand的温度值;

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

优选的,所述加速因子与温度值的关系式为:

t=90d/af,af=exp{(ea/k)*(1/tu-1/ts))}

其中,af为加速因子;ea为激活能;k为玻尔兹曼常数;tu为所述nand正常使用下的开尔文温度;ts为所述nand速寿命测试时的环境应力温度。

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

初始值设置模块,用于在所述nand的区块内新存入数据后,记录新存入数据的区块的当前剩余保持时间为预设数据保持力时间;

开启时间处理模块,用于在区块进入开启状态后,记录区块的持续开启时间,当处于开启状态的区块满足关闭条件时,令满足关闭条件的区块的剩余保持时间减去所述持续开启时间与特定加速因子的乘积,得到所述满足关闭条件的区块的当前剩余保持时间;

温度采集模块,用于每隔预设周期采集nand的温度值,并确定当前温度值对应的加速因子;

关闭时间处理模块,用于计算所述加速因子与所述预设周期的乘积值,令各个处于关闭状态的区块的当前剩余保持时间减去所述乘积值,得到各个处于关闭状态的区块更新后的当前剩余保持时间;判断各个处于关闭状态的区块更新后的当前剩余保持时间是否达到0,若达到,将当前剩余保持时间达到0的区块内的数据搬移至其他区块内;若未达到,触发所述温度采集模块继续采集下一周期内的nand的温度值。

优选的,所述开启时间处理模块还用于:判断所述满足关闭条件的区块的当前剩余保持时间是否达到0,若达到,将该区块内的数据搬移至其他区块内。

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

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

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

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

本发明还提供了一种nand数据保持时间巡检方法,每个区块新存入数据后,会记录区块的当前剩余保持时间为预设数据保持力时间,在nand工作过程中,对于进入开启状态的区块,会记录区块的持续开启时间,区块的持续开启时间满足关闭条件时,则令该满足关闭条件的区块的剩余保持时间减去一个持续开启时间与特定加速因子的乘积;除此之外,每隔预设周期即会采集nand的温度值,并确定当前温度值对应的加速因子并计算加速因子和预设周期的乘积值,之后,对于各个处于关闭状态的区块,令其剩余保持时间减去该乘积值。可见,本发明中的区块最初的剩余保持时间为预设数据保持力时间,即该区块中的数据能够不失真保持的时间。因此,当剩余保持时间减到零时。则需要将该区块中的数据进行搬移。本发明在区块开启和关闭状态时分别对剩余保持时间进行减法的过程中,并非是直接减去实际所经历的真实时间,而是将加速因子作为权值,减去真实时间与加速因子加权之后的时间值。

可以理解的是,加速因子是与nand的温度值成正比的参数,因此,温度越高,加速因子越大,即每周期的乘积值越大,而固态硬盘的区块在温度越高的情况下,数据保持力时间越短;故本发明中,在温度较高的情况下,区块的剩余保持时间会越快的减到0,即数据搬移频率较高;而在温度较低的情况下,区块的剩余保持时间会较慢的减到0,即数据搬移频率较低。可见,本发明能够根据nand温度的情况,自适应的调整数据搬移的频率,而不是始终按照最高的数据搬移频率进行,从而减少了数据搬移次数,提高了nand的使用寿命,减少了性能抖动的频率。本发明还提供了一种基于上述方法的装置、设备及计算机可读存储介质。

附图说明

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

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

图2为本发明提供的一种nand数据保持时间巡检装置的结构示意图。

具体实施方式

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

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

本发明提供了一种nand数据保持时间巡检方法,该方法包括:

步骤s1:在闪存nand的区块内新存入数据后,记录新存入数据的区块的当前剩余保持时间为预设数据保持力时间;

这里的预设数据保持力时间并不是在温度最高状态下的retention时间,而是需要设置为低于最高状态时的温度值的retention时间,通常设置为nand通常保持的温度值对应的retention时间。这是因为本发明的目的是为了解决目前在进行数据搬移时,仅按照温度值最大时对应的数据保持力retention时间进行数据搬移,导致的数据搬移过于频繁的情况。因此,将区块的实际时间与加速因子加权后的累积时间达到预设数据保持力时间作为搬移条件,使数据搬移的频率能够依据温度情况进行自适应的调整,从而减缓数据搬移的频率。

步骤s2:区块进入开启状态后,记录区块的持续开启时间,当处于开启状态的区块满足关闭条件时,令满足关闭条件的区块的剩余保持时间减去持续开启时间与特定加速因子的乘积,得到满足关闭条件的区块的当前剩余保持时间;

需要注意的是,每个区块会有一个持续开启时间上限,即区块的开启时间不能超出该持续开启时间上限,当其满足关闭条件时,则将该区块进行关闭,而从开启状态进入关闭状态后的区块,则不会再次开启。因此,可以视为每个区块持续开启的时间为一个定值,在令剩余保持时间减去实际时间的加权值时,令剩余保持时间减去持续开启时间(即前面提到的定值)与特定加速因子的乘积,从而使更新后的剩余保持时间减去了区块开启状态时的时间加权值。

步骤s3:每隔预设周期采集nand的温度值,并确定当前温度值对应的加速因子;

步骤s4:计算加速因子与预设周期的乘积值,令各个处于关闭状态的区块的当前剩余保持时间减去乘积值,得到各个处于关闭状态的区块更新后的当前剩余保持时间;

本发明在每个时间周期内,将与温度成正比的加速因子作为权值与时间周期相乘,之后令每周期的剩余保持时间减去当前周期的乘积值。即假设预设周期为10s的话,则每个周期实际经历的时间为10s,但是若此时温度较高的话,该周期内的乘积值则为10s乘以一个较大的加速因子,因此,加快了最终时间剩余保持时间减到0的速度,反之,温度较低时,则减缓了最终剩余保持时间减到0的速度。即温度越高,数据保持力时间越短,而本发明会较快的进行数据搬移;温度越低,数据保持力时间越长,而本发明会较慢的进行数据搬移。故本发明的方案中,数据搬移的频率能够尽可能贴合其数据保持力时间,从而尽可能减少了数据搬移次数,减缓了固态硬盘的寿命消耗。

步骤s5:判断各个处于关闭状态的区块更新后的当前剩余保持时间是否达到0,若达到,进入步骤s6;若未达到,返回步骤s3;

需要注意的是,处于开启状态的区块由于其内部数据正在被使用,因此若进行数据搬移的话,会影响业务的正常工作,故仅能对处于关闭状态的区块进行数据搬移。

步骤s6:将当前剩余保持时间达到0的区块内的数据搬移至其他区块内。

需要注意的是,本发明中,步骤s1的操作是在一个空白区块内新存入数据后进行的,该步骤的操作和步骤s3中周期性采集nand的温度值的操作互不影响。另外,步骤s2的操作和步骤s3~s6的操作属于不同的进程,两者之间没有先后顺序之分。即若有区块进入开启状态,则会单独对该区块进行步骤s2的操作,若有区块处于关闭状态,则对这些区块进行步骤s4~s6的操作,而步骤s3是对整个nand进行的,并不受其他步骤的影响。因此步骤s2的操作和步骤s3~s6的操作彼此相互独立运行。举例来说,若区块一存入数据,即立即进入开启状态,则执行顺序为步骤s1-步骤s2,之后步骤s4中依据步骤s2和步骤s3的输出结果;参见图1所示,图1为本发明提供的一种nand数据保持时间巡检方法过程的流程图。若区块存入数据后,并未立即进入开启状态,而是处于关闭状态,则此时区块的执行顺序为步骤s4中依据步骤s1和步骤s3的输出结果,后续当区块进入开启状态后,步骤s2中使用的当前剩余保持时间为步骤s4的输出结果。

本发明还提供了一种nand数据保持时间巡检方法,每个区块新存入数据后,会记录区块的当前剩余保持时间为预设数据保持力时间,在nand工作过程中,对于进入开启状态的区块,会记录区块的持续开启时间,区块的持续开启时间满足关闭条件时,则令该满足关闭条件的区块的剩余保持时间减去一个持续开启时间与特定加速因子的乘积;除此之外,每隔预设周期即会采集nand的温度值,并确定当前温度值对应的加速因子并计算加速因子和预设周期的乘积值,之后,对于各个处于关闭状态的区块,令其剩余保持时间减去该乘积值。可见,本发明中的区块最初的剩余保持时间为预设数据保持力时间,即该区块中的数据能够不失真保持的时间。因此,当剩余保持时间减到零时。则需要将该区块中的数据进行搬移。本发明在区块开启和关闭状态时分别对剩余保持时间进行减法的过程中,并非是直接减去实际所经历的真实时间,而是将加速因子作为权值,减去真实时间与加速因子加权之后的时间值。

可以理解的是,加速因子是与nand的温度值成正比的参数,因此,温度越高,加速因子越大,即每周期的乘积值越大,而固态硬盘的区块在温度越高的情况下,数据保持力时间越短;故本发明中,在温度较高的情况下,区块的剩余保持时间会越快的减到0,即数据搬移频率较高;而在温度较低的情况下,区块的剩余保持时间会较慢的减到0,即数据搬移频率较低。可见,本发明能够根据nand温度的情况,自适应的调整数据搬移的频率,而不是始终按照最高的数据搬移频率进行,从而减少了数据搬移次数,提高了nand的使用寿命,减少了性能抖动的频率。

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

作为优选的,步骤s2之后,还包括:

判断满足关闭条件的区块的当前剩余保持时间是否达到0,若达到,将该区块内的数据搬移至其他区块内。若未达到,则不作任何处理。

可以理解的是,由于在区块满足关闭条件后,会对其剩余保持时间进行减法,并关闭该区块,因此,此时该区块满足数据搬移的前提条件,可以开始验证是否进行数据搬移。本实施例相比仅在步骤s5进行数据验证的方式,数据搬移的敏感性更高,处理更为精确。

作为优选的,特定加速因子为nand对应的最大加速因子值。

可以理解的是,区块在开启状态下,会持续一段时间,例如1h,在这段时间内区块的温度很有可能发生变化。因此,若加速因子设置较小的话,会导致剩余保持时间减去的开启状态时的持续开启时间和加速因子的乘积值较小。即剩余保持时间减去的时间加权值小于其实际应该减去的时间加权值。由于持续开启时间是一段较长的时间,因此,由于特定加速因子导致的时间加权值的误差可能会较大,这样会使得后续达到数据搬移条件的时间较晚,可能会影响数据搬移的及时性,影响数据保存的可靠性。因此,为了避免上述情况,本实施例中,令特定加速因子等于其所能设置的最大值。这样虽然使得数据搬移可能会较早进行,但是能够尽可能的避免数据搬移不及时的情况,尽可能提高了数据保存的可靠性。

在一种具体实施例中,,判断处于开启状态的区块的持续开启时间是否满足关闭条件的过程为:

判断处于开启状态的区块的持续开启时间是否达到预设开启时间阈值,若达到,则处于开启状态的区块满足关闭条件;若未达到,判断处于开启状态的区块最后一次数据写入的时刻与当前时刻的时间差是否达到预设时间差阈值,若达到预设时间差阈值,则处于开启状态的区块满足关闭条件并令该区块的持续开启时间等于所述预设开启时间阈值,若未达到预设时间差阈值,则处于开启状态的区块的持续开启时间不满足关闭条件。

可以理解的是,区块进入开启状态后,通常会立刻开始进行数据写入。假设预设开启时间阈值为1h,当处于开启状态的区块的持续开启时间达到1h的话,由于区块的开启时间不能超出预设开启时间阈值,因此,确认该区块当前满足关闭条件,令其进入关闭状态。但是有些情况下,区块可能仅写入半个小时后就不再使用了,这种情况下,若令区块始终处于开启状态直至持续开启时间达到1h的话会会引起错误bit数增加。因此,一旦区块停止写入并持续预设时间差阈值的时间长度后,虽然此时区块整体的持续开启时间可能没有达到1h,但是视为其已经达到,因此,令该区块的持续开启时间等于预设开启时间阈值。后续在令剩余保持时间减去持续开启时间长度和特定加速因子的乘积时,所使用的持续开启时间实际上就是预设开启时间阈值。这种方式能够尽可能避免区块长时间处于开启状态但不使用所造成的错误bit数增加的情况。当然,在其他实施例中,也可不判定处于开启状态的区块最后一次数据写入的时刻与当前时刻的时间差是否达到预设时间差阈值,而是仅依据区块的持续开启时间是否达到预设开启时间阈值来判断该区块是否满足关闭条件。具体采用以上哪种方式本发明不做具体限定。

作为优选的,步骤s3中,每隔预设周期采集nand的温度值的过程具体为:

实时采集nand的温度值;

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

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

其中,加速因子与温度值的关系式为:

t=90d/af,af=exp{(ea/k)*(1/tu-1/ts))}

其中,af为加速因子;ea为激活能;k为玻尔兹曼常数;tu为nand正常使用下的开尔文温度;ts为nand速寿命测试时的环境应力温度。

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

初始值设置模块1,用于在nand的区块内新存入数据后,记录新存入数据的区块的当前剩余保持时间为预设数据保持力时间;

开启时间处理模块2,用于在区块进入开启状态后,记录区块的持续开启时间,当处于开启状态的区块满足关闭条件时,令满足关闭条件的区块的剩余保持时间减去持续开启时间与特定加速因子的乘积,得到满足关闭条件的区块的当前剩余保持时间;

温度采集模块3,用于每隔预设周期采集nand的温度值,并确定当前温度值对应的加速因子;

关闭时间处理模块4,用于计算加速因子与预设周期的乘积值,令各个处于关闭状态的区块的当前剩余保持时间减去乘积值,得到各个处于关闭状态的区块更新后的当前剩余保持时间;判断各个处于关闭状态的区块更新后的当前剩余保持时间是否达到0,若达到,将当前剩余保持时间达到0的区块内的数据搬移至其他区块内;若未达到,触发温度采集模块3继续采集下一周期内的nand的温度值。

作为优选的,开启时间处理模块2还用于:判断满足关闭条件的区块的当前剩余保持时间是否达到0,若达到,将该区块内的数据搬移至其他区块内。

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

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

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

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

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

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

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

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