提升闪存数据安全性的扫描方法与流程

文档序号:23094345发布日期:2020-11-27 12:52阅读:221来源:国知局
提升闪存数据安全性的扫描方法与流程

本发明涉及计算机数据存储领域,具体涉及了一种提升闪存数据安全性的扫描方法。



背景技术:

随着时间的流逝,存储在nandflash浮栅中的电荷会慢慢流失,当流失的电子数量达到一定程度时,存储单元会发生比特翻转,当比特翻转的数量超过ecc纠错能力时,数据就丢失了,这种现象就是dataretention问题。

读取闪存中的某个闪存页时,其他未选中的闪存页的控制极上都会加一个正电压,以保证未被选中的mos管是导通的。频繁地在一个mos管控制极上加正电压,使得电子被吸入浮栅中,这样就会导致未被选中的闪存页存在一个轻微的编程,最终导致比特翻转。这就是readdisturb现象,特别需要注意的是,readdisturb影响的是同一个存储块的中其他的闪存页而非被读取的闪存页本身。readdisturb对nandflash造成的是非永久性损伤,重新擦除后这个存储块还能正常使用。

针对dataretention问题,一般可以考虑在闪存设备上电运行时对存储空间进行扫描,一旦发现纠错情况超过设定的阈值时,将此存储块中的有效数据搬到新的存储块中。

对于readdisturb问题,除了在闪存设备上电运行时对存储空间进行扫描的方法外,还可以记录每个存储块被读的次数,当被读的次数超过设定的阈值且纠错情况达到一定程度时,将存储块内的有效数据搬到新的存储块内。

记录每个存储块被读的次数,需要消耗一定的内存,每个存储块能够承受的最大的读次数不一致,记录被读次数无法处理dataretention造成的数据丢失问题,故使用起来有一定的限制。对存储空间进行扫描是解决dataretention和readdisturb问题的有效方法,现有的方案中主要有:按存储块顺序全盘扫描所有闪存页,这种方法安全性较高,但是效率低;扫描每个有效存储块的某一个闪存页,这种方案效率高,但是安全性较低。



技术实现要素:

本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了一种提升闪存数据安全性的扫描方法,尽可能在较短的时间内,以较高的准确度,完成全盘范围内的扫描工作,尽可能高效的发现存在不稳定数据的存储块,尽快将数据迁移到安全的地方,保证数据的安全性,较好的解决dataretention和readdisturb问题对nandflash存储的数据造成的影响。

本发明的技术方案包括一种提升闪存数据安全性的扫描方法,其特征在于,该方法包括:s100,创建扫描线程,通过所述扫描线程对设定编号的闪存页进行间隔扫描;s200,每执行一次扫描之后所述扫描线程进入第一设定时间段的休眠,直至完成对设定编号对应的存储块的扫描;s300,完成所有设定编号的闪存页的扫描后,所述扫描线程进入第二设定时间段的休眠。

根据所述的提升闪存数据安全性的扫描方法,其中设定编号被配置为:在每个所述存储块上均匀分布若干个被编号的所述闪存页。

根据所述的提升闪存数据安全性的扫描方法,其中每个所述存储块的闪存页的数量为20。

根据所述的提升闪存数据安全性的扫描方法,其中s100还包括:实时监控闪存设备的上层io请求,当所述io请求数量超过设定值时,则所述扫描线程进入休眠,并在下一个所述第一设定时间段再次启动。

根据所述的提升闪存数据安全性的扫描方法,其中s200包括:按照设定编号的对闪存页进行顺序扫描,以每个闪存页编号作为一轮扫描的对象,每一轮扫描按照所述存储块的先后顺序,扫描每个有效的存储块中对应的闪存页编号,每轮扫描完成对所有存储块的扫描。

根据所述的提升闪存数据安全性的扫描方法,其中s300包括:每执行一轮扫描之后切换至一个设定编号的闪存页开始新一轮的扫描,直至所有设定编号的闪存页都被扫描完毕,所述扫描线程进入第二设定时间段。

根据所述的提升闪存数据安全性的扫描方法,其中第二设定时间段大于第一设定时间段。

本发明的有益效果为:尽可能在较短的时间内,以较高的准确度,完成全盘范围内的扫描工作,尽可能高效的发现存在不稳定数据的存储块,尽快将数据迁移到安全的地方,保证数据的安全性,较好的解决dataretention和readdisturb问题对nandflash存储的数据造成的影响。

附图说明

下面结合附图和实施例对本发明进一步地说明;

图1所示为根据本发明实施方式的总体流程图。

图2所示为根据本发明实施方式的一次完整的扫描流程图。

图3所示为根据本发明实施方式的后台扫描线程的工作流程。

图4所示为根据本发明实施方式的扫描示意图。

具体实施方式

本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。

在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。

在本发明的描述中,对方法步骤的连续标号是为了方便审查和理解,结合本发明的整体技术方案以及各个步骤之间的逻辑关系,调整步骤之间的实施顺序并不会影响本发明技术方案所达到的技术效果。

术语解释:

dataretention(数据保质期)问题:随着时间的流逝,存储在闪存中的数据会消失,原因是浮栅极里面的电子跑出来了。电子跑出来的速度是跟擦除次数成正比的,也就是,闪存擦写次数越多,电子跑得越快,也就是数据消失得越快;

readdisturb(数据干扰):读写闪存的时候,干扰数据的读取及写入。

图1所示为根据本发明实施方式的总体流程图。该流程包括:s100,创建扫描线程,通过扫描线程对设定编号的闪存页进行间隔扫描;s200,每执行一次扫描之后扫描线程进入第一设定时间段的休眠,直至完成对设定编号对应的存储块的扫描;s300,完成所有设定编号的闪存页的扫描后,扫描线程进入第二设定时间段的休眠。

图2所示为根据本发明实施方式的一次完整的扫描流程图。page为闪存页,pageno为闪存页编号,block为存储块。一次完整的扫描流程中,闪存设备并不是连续扫描,需要在尽可能不影响上层io请求的前提下,间歇性扫描,两次启动扫描的时间间隔为ts,即每扫描一个闪存页则线程睡眠ts,其中ts一般为数秒内。后台线程启动后,按照预先设定的闪存页编号,以每个闪存页编号作为一轮扫描的对象,每一轮扫描按照存储块的先后顺序,扫描每个有效的存储块中对应的闪存页(预先选定的闪存页编号),直到所有的存储块都被扫描到,之后切换到下一个设定的闪存页编号开始新一轮的扫描,直到设定的所有闪存页编号都被扫描完毕,一次完整的扫描流程结束。

图3所示为根据本发明实施方式的后台扫描线程的工作流程。后台线程的工作流程如下:系统启动以后,在设定的时刻后台扫描线程启动,开始一次完整的扫描流程,当一次完整的扫描流程结束后,后台线程会根据预先设置的时间进入较长时间的睡眠,即两次完整扫描需要间隔较长时间,避免加深readdisturb影响,这个时间间隔为tl,其中tl优选为10天。

图4所示为根据本发明实施方式的扫描示意图。闪存设备包括存储块b1~bn,每个存储块有对应的多个存储页如pa1~pan、pb1~pnb、…、pz1~pzn,图4中ma1~mz1为闪存设定编号的闪存页,其均匀分布于存储块,每次进行一轮扫描时,从ma1~mz1进行逐个扫描,完成后执行下一轮扫描ma2~mz2,直至完成所有的存储块及闪存页的扫描,图中的设定编号可以根据闪存的性能进行自定义设置。

通过实验获取存储块中容易出错的闪存页的分布,考虑扫描的准确性,需要更全面地扫描存储空间,故所选取的被扫描的若干闪存页(数量较少,每个存储块中选取大约20个闪存页)尽可能分散在整个存储块范围内,这样就可以在尽可能保证扫描准确性的情况下,减少全盘扫描的时间和性能消耗。考虑到有些设备上电运行的时间较短,需要在尽可能短的时间内完成所有存储块的数据检测,故每一轮扫描所有有效存储块的同一闪存页,按照预设的扫描闪存页,从前往后每个闪存页为一轮扫描,直到所有的预设闪存页都被扫描到。在后台启动一个扫描线程,间隔一定的时间启动一次扫描,确保在整个生命周期内都在检测数据的稳定性,需要注意,这个间隔时间不能太短,避免增加readdisturb影响和性能消耗。

上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

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