1 / 6
文档名称:

基于固态硬盘的闪存转换层概述.doc

格式:doc   大小:16KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于固态硬盘的闪存转换层概述.doc

上传人:彩霞 2022/5/4 文件大小:16 KB

下载得到文件列表

基于固态硬盘的闪存转换层概述.doc

相关文档

文档介绍

文档介绍:基于固态硬盘的闪存转换层概述
摘要:近年来,基于闪存的固态硬盘SSD(Flash-based Solid State Disk)在存储市场中已占据了主要地位。随着NAND Flash 工艺技术的快速发展,容量不断提升,SSD中逻辑页与物理页是组相联的,逻辑页的数据只能存放在某个物理块特定偏移的物理页中。每个块都有一个映射关系,而一个逻辑块通常包括几十上百多个逻辑页。相对于页级映射,块级映射的映射表较小,其大小通常是页级映射的映射表的几十上百分之一,只占用较小的内存空间,可以都放入到内存,映射关系的查找也较快。但是,为了维护块内映射数据页的偏移量,块级映射在进行垃圾回收过程中需要执行大量的数据块合并操作,需要进行大量的复制和移动,会存在更新冲突的问题,从而触发更多的垃圾回收过程,具有较差的随机小写操作性能。
混合映射是把所有的物理块分成两个日志块和数据块两个部分,日志块采用页级映射策略,数据块采用块级映射策略。在混合映射中,将初次写入的数据请求写到数据块中,可节省映射表空间;当该数据需要更新時,则将更新的页写到日志块,可提高空间的利用率。但是,因为日志块的数量较少,仅占闪存容量的3%。当日志块区满时,将日志块和数据块进行合并,多次的合并操作会降低固态盘的整体性能。

NAND闪存擦除次数一定,对相同的存储单元不断地进行编写和擦除会导致该存储单元受到永久性的物理损害。为了有效避免对固态盘中某一区块的频繁读写造成该区块的老化加速,磨损平衡可以将擦除/写入循环平均地分配到所有存储单元中,使数据平均地分布在整个内存单元中,而不会造成某一区块成为信息读写的热点从而影响到整个SSD的寿命[2]。
针对磨损平衡算法,将固态盘中块单元可以分为数据块和空闲块。数据块是闪存的主要部分,受到磨损平衡算法和数据存储器的影响;空闲块的数目在整个闪存中占百分之二,主要用于缓冲该算法,闪存会根据磨损平衡算法在数据块池和空闲块池相互转换。FTL不仅实现对逻辑地址到物理地址映射的管理,同时对闪存和无效块映射进行擦除计数管理。每个块的擦除次数都会被记录在一个叫做擦除计数表(ECT)的表格中。当块进行一次擦除时,ECT都会将该块的擦除次数自动加1。在做磨损平衡会浏览该计数表,以此来决定哪些块必须从数据块池转移到空闲块池,或者相反。当需要转换操作时,转换表会把逻辑块地址重新分配给物理块地址,同时在新的块组中重新组合块地址和擦除计数值。
磨损平衡算法通常有两种类型:动态磨损平衡和静态磨损平衡。动态磨损平衡只处理动态数据,如数据改写时才会触发数据迁移的动作。静态磨损平衡可以均衡静态数据,当后台任务发现损耗较低的静态数据时,将其迁移到其他的数据块上并将这些快放入空闲池中使用。经典的磨损均衡算法都是整合了动态和静态的功能,双池算法就是将物理块分成了冷区和热区,在最初时采用链表的方式将空闲块组成一个队列完成动态磨损均衡,同时记录下每个块的写入次数,当热区块的最大擦除次数超出冷区块的最小擦除次数一个阈值之后,则将热区的最大擦除次数的那个块放入冷区,并将冷区的块置为空闲。

固态硬盘不具备直接覆盖旧数据的能力[3],如果想让存储无用数据的块写入新数据,就需要先把整个块删除,才可以写入新的数据。所以,当操作系统中删