SSD数据恢复前沿:Flash磨损均衡技术解析
近年来,固态存储技术得到了长足的发展,随着大容量Flash芯片的成本不断降低,越来越多的电脑用上了固态硬盘。目前,固态盘在计算机中主要用来安装操作系统,以提高电脑的开关机速度和运行速度。从大的趋势看,固态盘和机械硬盘会长期并存,并会逐步蚕食机械硬盘的市场。因此,达思科技作为数据恢复行业的领先品牌,经常要与硬盘打交道的数据恢复公司,必须要高度关注固态硬盘的技术发展,跟踪技术前沿。
固态盘、U盘、存储卡等都使用Flash存储芯片,而Flash本身由若干个块-Block组成,每个块又分为若干个物理页-Page。块是擦除操作的最小单位 ,而读和写都是以页为单位。下图为Flash的存储结构。
图1 Flash存储结构示意图
Flash采取异地更新的策略 ,更新的数据会被放到别的物理页上,而不是覆盖原来的数据。包含新版本数据的页被称为有效页,新版本数据被称为有效数据。包含旧版本数据的页被称为无效页,或称为脏页,脏页经过擦除操作后成为空闲页,才可以重新写入数据。因为Flash是以块为单位执行擦除的,因此需要将脏页所在块上的所有物理页都擦除,在擦除之前需要检查此块上是否存在有效页,如果存在就必须先转移到其他块上。因为每个Flash块的擦除次数有限,一般是在 10 万次到100 万次之间,只要有块的擦除次数达到了上限,Flash数据存储的性能将下降。所以必须想办法,使擦除操作平均作用在每个Flash块上,这种方法就是磨损均衡(wear-leveling)算法。
我们在应用Flash时,实际上访问的是Flash的逻辑地址,在逻辑地址和物理地址之间,存在着映射关系,如下图所示。
图2 Flash存储映射表
数据更新后只需改变映射表中物理页的地址,并将原版本数据所在的物理页标为无效。对于经常被更新的数据块,我们称之为“热”数据块,对长期得不到更新的数据块,称之为“冷”数据块。数据块经常更新的话,就会经常被擦除,而长期不更行的数据块,不会出现脏页而被擦除,其擦除次数会明显少于存放着经常被更新数据的块。如何实现“冷热”数据存放位置的交换是磨损均衡处理中需要考虑的问题。
目前常用的磨损均衡算法大致分为两类,一类是随机性算法,一类是确定性算法。对于随机性算法,其原理为:在每次写或擦除操作后,按照某一概率来触发磨损均衡处理。按照均匀分布的概率,随机选择某个块执行擦除操作。不论块上放的是“冷”数据还是“热”数据,让每个块得到相等的擦除机会。最后将选中块上的有效数据复制到空块后擦除此块。将数据移动到哪个空闲块上,也是随机选择,因为没有记录块的擦除情况,存在将“冷”数据又移动到一个“冷”块上的情况, 结果此块并没有增加擦除次数 , 这种情况尤其会发生在有大量“冷”数据的系统里。
对于确定性算法,又分为周期性和全局性两种,其中周期性算法的原理为:将Flash的寿命看做是一个接一个的磨损均衡周期组成的。在一个处理周期中,达到规定的擦除次数的块在这一轮周期中将不会被选中,这样可使各个块都达到相同的擦除次数,再开始下一个擦除周期。通过调整Flash块的规定擦除次数,可以使整个Flash能够达到理想的磨损均衡。全局性算法的原理为:不划分处理周期,在一个全局范围内控制块的磨损均衡。当任何两个块的擦除次数之差超过一个给定的阈值时,或者当某块的擦除次数超过了所有块的平均擦除次数时,启动磨损均衡处理,将擦除次数少的块上的数据和擦除次数多的块上的数据进行交换。如果块上存放的是“冷”数据,即数据很少被更新,则该块上的数据不易变脏,很少得到擦除的机会。相反,如果该块上存放的是“热”数据,则该块上的数据经常被更新,经常得到擦除脏数据的机会。根据这个原理来交换“冷热”数据,从而实现磨损均衡。
对比两类磨损均衡算法,可以看出:随机性算法的效果受随机因素影响较大,在擦除前,并不知道各个块被擦除的情况,同时对逻辑页的随机性请求并不能做到完全等概率,所以虽然随机性算法是等概率地选择处理页,但每个块的擦除次数并不能达到等概率分布,不能达到很好的磨损均衡效果。确定性算法因记录了物理块的擦除次数,故在处理中可根据这些信息来作出调整决策,各块基本达到了相近的擦除次数,磨损均衡的效果明显好于随机性算法。但这是在消耗大量内存开销的基础上实现的。
根据以上讨论的情况,可以看出,必须结合两类算法的优势,来实现效果较好的磨损均衡处理,才能既保证Flash的读写速度,又能保证Flash的使用寿命,这将是决定固态存储能否全面战胜机械硬盘的关键之战。
关于达思科技
达思科技,国家级高新技术企业,天津市国家保密局涉密载体数据恢复唯一协作单位,数据恢复行业著名品牌,在国内乃至全亚洲数据恢复技术领先!
达思科技中国数据恢复与取证真专家!热线:4007000017
更多数据恢复与取证前沿技术请关注微信公众账号:woocs
微信号:woocs
长按识别二维码关注
专注数据恢复与取证技术、互联网
电话咨询:400-700-0017
投稿:woocs@qq.com
达思北京数据恢复中心(全国总部)
数据恢复服务咨询:400-700-0017
数据恢复培训咨询:010-62672127
达思数据恢复软件:010-62670586
达思软件技术支持:010-62670165
达思总部
数据恢复实验室: 010-62672127
数据恢复实训室: 010-62672381
电子取证实验室: 13522681842
软件销售QQ:
151208
远程协助QQ:
12869803
邮件联系:sos@dstchina.cn
邮件支持:support@dstchina.cn
24小时免费电话:400-700-0017
24小时监督电话:13671390603