论文部分内容阅读
固态硬盘(Solid State Drive)是采用闪存芯片构成的块存储设备,由于没有可以移动的机械部件,它在读写性能、能耗、尺寸大小等方面有着明显的优势。由于大多数的固态硬盘基于NAND的存储构建,写操作需要完成以块为单位的擦除操作,因此固态硬盘读和写的速率差异比较大,效率非对称。为了提升固态硬盘的写效率,需要从写操作的机制入手优化更新过程中的擦除操作。围绕这个议题,可行的做法可分为两类:一类是减少擦除操作过程中有效页面复制的数量;另一类是减少更新过程中擦除操作的次数。基于访问频度的FTL(Flash Translation Layer)固态硬盘聚合算法和基于盘内SRAM的固态硬盘转换层设计分别采用上述两类解决方案。在基于访问频度的FTL聚合算法中,依据每个页面访问的频度建立一个页面标尺——“活跃”度。然后根据不同的活跃度,将所有的更新页面按照活跃度聚合在不同的数据块中。在固态硬盘中基于访问频度的FTL聚合算法预划分一个有限的逻辑存储区域——热区,通过热区的准入门限选择不同活跃块加入热区链表。通过活跃度和热区准入门限对所有的页面完成了两次筛选,确定了热页和热块,同时将热页和非热页进行了满足双峰分布的存储。一旦固态硬盘触发了垃圾回收操作,热区内活跃度最高的块将优先被回收,由于其块内页面失效比较高,因而在擦除的过程中减少了需要复制的有效页面数量。为了实现该算法,将映射信息同样存放在闪存阵列中,算法的映射机制采用三段式,分布存放在基区和链接区。真正需要存放的数据位于闪存阵列中的数据区,通过数学模型的分析和推演,分区数G、区内块数N和映射级数NL之间的约束关系为从仿真实验的结果来分析,参考清除效率的定义得出:清除效率同固态硬盘的整体性能呈反比。这给出了采用该算法的一个约束条件,需要衡量区分和分组页面的开销。在基于盘内SRAM的固态硬盘转换层设计方案中,引入了容量比较大的SRAM作为固态硬盘的写缓存。该设计利用了数据访问的局部性原理缓存最近更新的页面,从而减少在闪存阵列上进行非即位的更新操作。通过这一设计,频繁更新的页面绝大多数在写缓存区完成,由于SRAM更新不需要擦除,提高了固态硬盘写操作的效率。同时,在设计的合并操作中引入了一个更新迁移的优化算法,在一定约束条件下进一步提高了写操作的效率。通过对连续更新操作的模型分析,得到了在更新页增速比大致固定的前提下满足连续更新上限写入模式,合并操作加入更新迁移技术使固态硬盘性能得到优化。最终在仿真器Frey上得到的结果和理论预期是一致的。随着固态硬盘针对性能优化的不断推进,固态硬盘控制器的负担和能耗变得的日益突出,低功耗的要求对性能的优化形成了掣肘,因此固态硬盘的节能优化也成了必须面对的问题。基于汉密尔顿路径重序的节能技术为固态硬盘的能耗降低提供了一种在I/O子系统角度思考的途径。Cjamdralacan等人为这一途径的成功奠定了理论基础,他论证了在固态硬盘中电压间的切换功耗占据总能耗的大部分。而电压的切换往往发生在固态硬盘对多个分片的请求访问过程中。因此,如何减少分片访问的跳变成为节能优化的关键。基于汉密尔顿路径的重序算法将这一问题转换成了一个权重为跳变次数的请求访问无向图,实现了最终确定一条权重最小的汉密尔顿路径。固态硬盘采用基于汉密尔顿路径的重序技术,可以对提交的访问请求进行有效地排序,从而减少访问请求电压跳变的次数,降低固态硬盘总的能耗。