一种优化的闪存固态盘加热方法及闪存固态盘转让专利

申请号 : CN202010205061.7

文献号 : CN111459409B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 崔金华刘伟光刘俊伟杨天若

申请人 : 华中科技大学

摘要 :

本发明公开了一种优化的闪存固态盘加热方法及闪存固态盘,属于闪存存储设备领域。包括:记录闪存固态盘中各闪存块寿命末期的平均驻留时间DTavg,根据闪存块平均驻留时间,计算闪存块实际可靠性RBER;比较各闪存块的RBER和CBER的大小,按照DTavg值的大小顺序加入对应列表中的合适位置;当闪存固态盘到达使用寿命终点时,只对短驻留时间的闪存块列表中的闪存块进行加热操作,对长驻留时间的闪存块列表中的闪存块不进行加热操作。本发明通过考虑闪存块的平均驻留时间对闪存可靠性恢复的影响,能够在不影响固态硬盘的可靠性的情况下,减少了一部分不必要的高延迟、高能耗的加热操作,提升了固态硬盘加热的效率。

权利要求 :

1.一种优化的闪存固态盘加热方法,其特征在于,该方法包括以下步骤:S1.记录闪存固态盘中各闪存块的平均驻留时间DTavg,并根据闪存块的平均驻留时间,计算闪存块的实际可靠性RBER,包括以下子步骤;

S11.跟踪健康闪存块列表中的闪存块的当前擦写次数PEcurrent,获取闪存块的擦写次数上限PElimit,其中,PElimit初始化为厂商设定的擦写次数上限PEinit,当某一个闪存块的* *

PEcurrent=PElimit‑PE时,PE是能够影响到闪存块的可靠性恢复的擦写次数,进入步骤S12;

* *

S12.记录该闪存块在PElimit‑PE和PElimit‑PE+1的两次擦写次数之间的驻留时间DTPE*;

S13.在该闪存块的擦写次数到达PElimit前,循环记录连续的两次擦写次数之间的驻留时间DTPE*‑1,......,DT1,当该闪存块的PEcurrent=PElimit时,进入步骤S14;

S14.根据闪存块已记录的多个驻留时间,计算该闪存块的平均驻留时间DTavg;

S15.根据闪存块的平均驻留时间DTavg,计算闪存块的实际可靠性RBER;

RBER=RBERinit+a*(PEcurrent+b)*ln(1+RTmax/(c+d*DTavg))其中,RBERinit是数据编程完成时的原始比特误码率,PEcurrent是当前擦写次数,RTmax是厂商要求的数据编程后需要维持的时间,DTavg是闪存块的平均驻留时间,a,b,c,d是四个公式相关系数;

S2.比较各闪存块的实际可靠性RBER和闪存固态盘内置纠错码的可修正比特误码率CBER的大小,当RBER

S3.当闪存固态盘到达使用寿命终点时,只对短驻留时间的闪存块列表中的闪存块进行加热操作,对长驻留时间的闪存块列表中的闪存块不进行加热操作。

*

2.如权利要求1所述的方法,其特征在于,PE为20。

3.如权利要求1或2所述的方法,其特征在于,步骤S3包括以下子步骤:S31.当闪存固态盘到达使用寿命终点时,进入步骤S32;

S32.判断SDT中是否存在闪存块,若是,从短驻留时间的闪存块列表中选择具有最短驻留时间的闪存块,进入步骤S33,否则,结束;

S33.对该闪存块执行一次加热操作,然后将该闪存块从SDT中删除并且放入健康闪存块列表中,进入步骤S32。

4.一种闪存固态盘,其特征在于,该闪存固态盘包括控制模块,该控制模块采用如权利要求1至3任一项所述的优化的闪存固态盘加热方法,加热失效的闪存块。

5.如权利要求4所述的闪存固态盘,其特征在于,所述闪存固态盘的数据分配包括以下步骤:

(1)如果闪存固态盘中存在健康的闪存块,选择一个具有最少加热次数的闪存块作为活跃闪存块,将新到达的数据放入活跃闪存块存储;否则,进入步骤(2);

(2)如果闪存固态盘中存在长驻留时间的闪存块列表LDT,从该列表上选择具有最长驻留时间的闪存块作为活跃闪存块,这时,该闪存块的擦写循环次数上限PElimit将增加PE(DTavg),其中,PE(DTavg)表示在驻留时间为DTavg情况下增加的擦写循环次数,将新到达的数据放入活跃闪存块存储;否则,进入步骤(3);

(3)如果闪存固态盘中存在短驻留时间的闪存块列表SDT,从该列表上选择具有最短驻留时间的闪存块作为活跃闪存块,当该闪存块的RBER≥CBER时,需要先执行一次加热操作,将新到达的数据放入活跃闪存块存储。

说明书 :

一种优化的闪存固态盘加热方法及闪存固态盘

技术领域

[0001] 本发明属于闪存存储设备领域,更具体地,涉及一种优化的闪存固态盘加热方法及闪存固态盘。

背景技术

[0002] 闪存固态盘是一种采用闪存作为存储介质的非易失性存储设备,被广泛用于计算机存储系统中。与机械硬盘相比,闪存固态盘具有许多不同的固有特性。例如,读写速度不
对称、数据异地更新、闪存芯片具有固定的擦写次数(P/E)等。当闪存固态盘中的闪存芯片
的擦写次数到达厂商给定的预设阈值时,闪存固态盘将不能保证存储的数据信息的有效
性,因此到达了闪存固态盘的寿命。
[0003] 为延长闪存固态盘的寿命,在闪存固态盘中可以增加内置加热装置来实现自加热恢复技术。通过内置加热板的闪存芯片结构,这种闪存固态盘可以通过加热的方法能够一
定程度上恢复其中闪存芯片的存储能力,延长闪存固态盘的寿命。在厂商预设的P/E阈值
时,闪存固态盘到达使用寿命,这时对失效的闪存块进行加热操作,可以增加额外数量的擦
写次数。
[0004] 由于加热操作比较耗时,例如接近一秒钟,每次执行加热时将负面影响正常执行的I/O读写操作,对闪存固态盘的性能造成波动。此外,在这些芯片结构中执行加热操作需
要一段持续的电耗和能耗。其中尤其是某个时间段内执行大量的加热操作时,将引起极大
的性能波动和增大能耗,从而不能实现稳定的闪存固态盘。

发明内容

[0005] 针对现有技术加热方法的高延迟、高能耗的问题,本发明提供了一种优化的闪存固态盘加热方法及闪存固态盘,其目的在于降低不必要的加热操作,提升了固态硬盘加热
的效率。
[0006] 为实现上述目的,按照本发明的第一方面,提供了一种优化的闪存固态盘加热方法,该方法包括以下步骤:
[0007] S1.记录闪存固态盘中各闪存块寿命末期的平均驻留时间DTavg,并根据闪存块的平均驻留时间,计算闪存块的实际可靠性RBER;
[0008] S2.比较各闪存块的实际可靠性RBER和闪存固态盘内置纠错码的可修正比特误码率CBER的大小,当RBER<CBER时,将该闪存块加入长驻留时间的闪存块列表LDT;否则,加入
短驻留时间的闪存块列表SDT;在加入列表时,按照DTavg值的大小顺序地加入对应列表中的
合适位置;
[0009] S3.当闪存固态盘到达使用寿命终点时,只对短驻留时间的闪存块列表中的闪存块进行加热操作,对长驻留时间的闪存块列表中的闪存块不进行加热操作。
[0010] 优选地,步骤S1包括以下子步骤:
[0011] S11.跟踪健康闪存块列表中的闪存块的当前擦写次数PEcurrent,获取闪存块的擦写次数上限PElimit,其中,PElimit初始化为厂商设定的擦写次数上限PEinit,当某一个闪存块
* *
的PEcurrent=PElimit‑PE 时,PE 是能够影响到闪存块的可靠性恢复的擦写次数,进入步骤
S12;
[0012] S12.记录该闪存块在PElimit‑PE*和PElimit‑PE*+1的两次擦写次数之间的驻留时间
[0013] S13.在该闪存块的擦写次数到达PElimit前,循环记录连续的两次擦写次数之间的驻留时间 当该闪存块的PEcurrent=PElimit时,进入步骤S14;
[0014] S14.根据闪存块已记录的多个驻留时间,计算该闪存块的平均驻留时间DTavg;
[0015] S15.根据闪存块的平均驻留时间DTavg,计算闪存块的实际可靠性RBER。
[0016] 优选地,闪存块的实际可靠性RBER的计算公式为:
[0017] RBER=RBERinit+a*(PEcurrent+b)*ln(1+RTmax/(c+d*DTavg))
[0018] 其中,RBERinit是数据编程完成时的原始比特误码率,PEcurrent是当前擦写次数,RTmax是厂商要求的数据编程后需要维持的时间,DTavg是闪存块的平均驻留时间,a,b,c,d是
四个公式相关系数。
[0019] 优选地,PE*为20。
[0020] 优选地,步骤S3包括以下子步骤:
[0021] S31.当闪存固态盘到达使用寿命终点时,进入步骤S32;
[0022] S32.判断SDT中是否存在闪存块,若是,从短驻留时间的闪存块列表中选择具有最短驻留时间的闪存块,进入步骤S33,否则,结束;
[0023] S33.对该闪存块执行一次加热操作,然后将该闪存块从SDT中删除并且放入健康闪存块列表中,进入步骤S32。
[0024] 为实现上述目的,按照本发明的第二方面,提供了一种闪存固态盘,该闪存固态盘包括控制模块,该控制模块采用如第一方面所述的优化的闪存固态盘加热方法,加热失效
的闪存块。
[0025] 优选地,所述闪存固态盘的数据分配包括以下步骤:
[0026] (1)如果闪存固态盘中存在健康的闪存块,选择一个具有最少加热次数的闪存块作为活跃闪存块,将新到达的数据放入活跃闪存块存储;否则,进入步骤(2);
[0027] (2)如果闪存固态盘中存在长驻留时间的闪存块列表LDT,优先从该列表上选择具有最长驻留时间的闪存块作为活跃闪存块,这时,该闪存块的擦写循环次数上限PElimit将增
加PE(DTavg),其中,PE(DTavg)表示在驻留时间为DTavg情况下增加的擦写循环次数,将新到达
的数据放入活跃闪存块存储;否则,进入步骤(3);
[0028] (3)如果闪存固态盘中存在短驻留时间的闪存块列表SDT,优先从该列表上选择具有最短驻留时间的闪存块作为活跃闪存块,当该闪存块的RBER≥CBER时,需要先执行一次
加热操作,将新到达的数据放入活跃闪存块存储。
[0029] 总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
[0030] (1)针对传统加热方法在闪存固态盘失效时会在短时间内进行大量的闪存块加热操作,过多加热操作导致加热耗时久,并且能耗高的问题,本发明通过在闪存固态盘到达使
用寿命终点时,优先对短驻留时间的闪存块列表中的闪存块进行加热操作,对长驻留时间
的闪存块列表中的闪存块不进行加热操作,考虑闪存块的平均驻留时间对闪存可靠性恢复
的影响,能够在不影响固态硬盘的可靠性的情况下,减少了一部分不必要的高延迟、高能耗
的加热操作,提升了固态硬盘加热的效率。
[0031] (2)针对传统数据分配策略没有考虑那些不需要执行加热操作的闪存块问题,本发明通过增强数据分配时的分配闪存块的优先级,解决了优化的闪存固态盘加热方法后的
数据分配问题。

附图说明

[0032] 图1是本发明实施例提供的一种优化的闪存固态盘加热方法流程图;
[0033] 图2是本发明实施例提供的改进的数据分配示意图。

具体实施方式

[0034] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并
不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要
彼此之间未构成冲突就可以相互组合。
[0035] 首先,对本发明涉及的术语进行如下解释:
[0036] 闪存块的驻留时间:闪存块在连续的两次擦写次数之间的时间。
[0037] 如图1所示,本发明提供了一种优化的闪存固态盘加热方法,该方法包括以下步骤:
[0038] 步骤S1.记录闪存固态盘中各闪存块寿命末期的平均驻留时间DTavg,并根据闪存块的平均驻留时间,计算闪存块的实际可靠性RBER。
[0039] 步骤S1包括以下子步骤:
[0040] S11.跟踪健康闪存块列表中的闪存块的当前擦写次数PEcurrent,获取闪存块的擦写次数上限PElimit,其中,PElimit初始化为厂商设定的擦写次数上限PEinit,当某一个闪存块
* *
的PEcurrent=PElimit‑PE时,PE表示能够影响到闪存块的可靠性恢复的擦写次数,进入步骤
S12。
[0041] 健康闪存块列表中的闪存块初始化为闪存固态盘中所有闪存块,随着处理的进行,一部分闪存块加入长驻留时间的闪存块列表LDT或者短驻留时间的闪存块列表SDT。
[0042] PE*取值范围为1至PEinit,本实施例优选为20。
[0043] S12.记录该闪存块在PElimit‑PE*和PElimit‑PE*+1的两次擦写次数之间的驻留时间
[0044] 当闪存块的PEcurrent=PElimit‑20时,记录闪存固态盘的控制器分配该闪存块作为活跃块存储新到达数据的开始时间T1。当该闪存块的PEcurrent=PElimit‑19时,记录闪存固态
盘的控制器分配该闪存块作为活跃块存储新到达数据的开始时间T2。根据以上两个时间,
计算驻留时间DT20=T2‑T1。
[0045] S13.在该闪存块的擦写次数到达PElimit前,循环记录连续的两次擦写次数之间的驻留时间 当该闪存块的PEcurrent=PElimit时,进入步骤S14。
[0046] 分别计算PElimit‑19和PElimit‑18、PElimit‑18和PElimit‑17......PElimit‑1和PElimit之间的驻留时间DT19、DT18......DT1。
[0047] S14.根据闪存块已记录的多个驻留时间,计算该闪存块的平均驻留时间DTavg。
[0048]
[0049] S15.根据闪存块的平均驻留时间DTavg,计算闪存块的实际可靠性RBER。
[0050] 闪存块的实际可靠性RBER的计算公式为:
[0051] RBER=RBERinit+a*(PEcurrent+b)*ln(1+RTmax/(c+d*DTavg))
[0052] 其中,RBERinit是数据编程完成时的原始比特误码率,PEcurrent是当前擦写次数,RTmax表示厂商要求的数据编程后需要维持的时间,DTavg是闪存块的平均驻留时间,a,b,c,d
是四个公式相关系数。
[0053] 步骤S2.比较各闪存块的实际可靠性RBER和闪存固态盘内置纠错码的可修正比特误码率CBER的大小,当RBER<CBER时,将该闪存块加入长驻留时间的闪存块列表LDT;否则,
加入短驻留时间的闪存块列表SDT;在加入对应的列表时,按照DTavg值的大小顺序地加入对
应列表中的合适位置。
[0054] 越长的驻留时间,闪存的可靠性恢复得越多,因此,本发明重点对短驻留时间的闪存块进行加热恢复。长驻留时间的闪存块列表LDT和短驻留时间的闪存块列表SDT初始化为
空。
[0055] 步骤S3.当闪存固态盘到达使用寿命终点时,只对短驻留时间的闪存块列表中的闪存块进行加热操作,对长驻留时间的闪存块列表中的闪存块不进行加热操作。
[0056] S31.当闪存固态盘到达使用寿命终点时,进入步骤S32。
[0057] 本发明中闪存固态盘到达使用寿命终点的判断标准为80%的闪存块失效。当闪存固态盘到达寿命终点时,因为磨损均衡策略,大部分的闪存块的PEcurrent都到达PElimit。这
时,优先从SDT中选择具有最短驻留时间的闪存块进行判定是否执行加热操作。
[0058] S32.判断SDT中是否存在闪存块,若是,从短驻留时间的闪存块列表中选择具有最短驻留时间的闪存块,进入步骤S33,否则,结束。
[0059] 循环地从SDT中选择下一个具有最短驻留时间的闪存块进行加热判定,直到SDT中所有的闪存块检测完。
[0060] S33.对该闪存块执行一次加热操作,然后将该闪存块从SDT中删除并且放入健康闪存块列表中,进入步骤S32。
[0061] 这时该闪存块的擦写循环次数上限PElimit将增加PEi,其中,PEi表示在第i次加热后增加的擦写循环次数。
[0062] 本发明还提供了一种闪存固态盘,该闪存固态盘包括控制模块,该控制模块采用如上述优化的闪存固态盘加热方法,加热失效的闪存块。
[0063] 如图2所示,所述闪存固态盘的数据分配包括以下步骤:
[0064] (1)如果闪存固态盘中存在“健康”的闪存块,选择一个具有最少加热次数的闪存块作为“活跃”闪存块,将新到达的数据放入活跃闪存块存储;否则,进入步骤(2);
[0065] (2)如果闪存固态盘中存在长驻留时间的闪存块列表LDT,优先从该列表上选择具有最长驻留时间的闪存块作为“活跃”闪存块,这时,该闪存块的擦写循环次数上限PElimit将
增加PE(DTavg),其中,PE(DTavg)表示在驻留时间为DTavg情况下增加的擦写循环次数,将新到
达的数据放入活跃闪存块存储;否则,进入步骤(3);
[0066] (3)如果闪存固态盘中存在短驻留时间的闪存块列表SDT,优先从该列表上选择具有最短驻留时间的闪存块作为“活跃”闪存块,当该闪存块的RBER≥CBER时,需要先执行一
次加热操作,将新到达的数据放入活跃闪存块存储。
[0067] 本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含
在本发明的保护范围之内。