论文部分内容阅读
随着存储技术的发展,NAND Flash(NAND闪存)由于具有存储密度高、I/O性能好、低成本、低功耗等优点被广泛应用于消费电子、汽车工业、航空航天等诸多领域,并可能取代磁盘成为下一代主流存储介质。闪存存储管理技术的发展对充分发挥闪存硬件优势,有效提高系统I/O性能具有至关重要的作用。随着闪存应用领域的进一步扩大,一些新的应用环境对闪存存储管理系统的可靠性、实时性、稳定性等方面提出了更高的要求。本文在深入分析典型闪存文件系统YAFFS2存储原理的基础上,对其在存储管理方面存在的:两级垃圾回收模式导致的I/O性能波动、动态磨损均衡策略的局限性以及元数据同步更新机制引起的性能损失等问题进行了深入研究,对YAFFS2的存储管理性能进行了针对性地优化和加固,以使其可以较好地适应更复杂的应用环境。本文的主要研究工作和学术成果如下:(1)分析了闪存存储管理技术的现状,指出了基于闪存转换层管理机制的不足,通过比较三种闪存文件系统总结了YAFFS2的主要特点和优势。在源代码层面对YAFFS2文件系统的主要存储管理原理进行了细致分析,主要包括:主要数据结构、文件索引结构、基本文件操作、垃圾回收算法,空间分配机制、启动扫描过程等几个方面。指出了YAFFS2在垃圾回收算法和磨损均衡机制等方面的不足。(2)提出了一种基于预搜索的自适应垃圾回收算法。针对闪存空间使用率较高时,YAFFS2两级垃圾模式导致的I/O性能急剧下降的问题,算法采用重叠式的区段搜索方式和动态的有效页阈值加强了对较脏块集中区域的回收,将回收工作主要集中在被动模式中完成;针对在回收过程中兼顾磨损均衡将导致写性能下降的问题,设定两种回收目标块选择策略,根据预搜索确定的最小平均回收开销自适应地选择不同的策略查找合适的脏块进行回收。实验结果表明:算法可有效减少主动模式的回收次数,提高了文件系统的吞吐量,同时对磨损均衡度进行了一定控制。(3)针对文件系统磨损均衡策略存在的局部均衡问题,设计了一种基于块擦除信息的静态磨损均衡算法。算法首先将闪存块从逻辑上划分为空闲块组和非空闲块组,依据当前闪存的磨损不均衡程度,对非空闲块组中的“冷”数据采取迁移操作,对空闲块组中的块采取合理的分配策略,以减缓最大擦除次数的增长速度;利用空闲闪存块擦除次数在物理空间上分布的随机性建立概率模型,简化了数据存储和磨损均衡两种情况下的空闲块分配方法;采用不均衡度阈值作为算法触发条件,确保闪存磨损均衡度维持在一个确定值附近。仿真实验结果表明:算法加强了对静态数据的处理,实现了一定程度的全局均衡,较明显地改善了闪存的磨损均衡度,进而有效延长了闪存的使用寿命。(4)针对YAFFS2元数据同步更新机制导致的闪存上无效元数据过多、闪存空间利用效率不高的问题,设计了一种基于LIRS置换算法的元数据缓存机制。该机制根据元数据的更新信息和后续更新情况,对缓存状态进行划分,并给出了状态转换规则;根据元数据对系统可靠性的影响程度将缓存划分为不同的置换优先级,并结合闪存读写代价不对称的特性提出了LIRS-P置换算法,该算法保留了LIRS算法可以有效捕获被频繁访问的数据的特点,优先置换出对文件系统可靠性影响较大、I/O开销较小的缓存数据,以减少系统的可靠性损失,提高I/O性能。实验结果表明:该机制在保证文件系统一定可靠性的前提下,减少了闪存元数据的更新次数和直接对闪存的写操作次数,提高了元数据缓存的管理效率。