论文部分内容阅读
在嵌入式设备中,闪速存储器(Flash Memory)作为一种快速、安全、廉价的非易失性存储体,具备了体积小、能耗低、抗震性强、容量大、成本低、不易挥发、读写速率快等优点,已经广泛应用于嵌入式平台和移动计算机中。根据物理组织结构的不同,可以将闪存分为NOR型和NAND型。随着嵌入式设备存储容量的增加,性价比较高的NAND型闪存的应用越来越广泛。闪存文件系统是专门用来在闪存上存储和管理文件的文件系统。目前使用较广泛的闪存文件系统有JFFS/JFFS2、YAFFS/YAFFS2、UBIFS等。在这些闪存文件系统中,涉及UBIFS的分析文献较少,而且涉及UBIFS的源码分析文献则更加稀少。鉴于上述原因,本文首先深入分析UBIFS源码,然后在此基础上提出阀值队列(Threshold Queue,TQ)损耗均衡算法和后缀名访问权限(Suffix Name and Access Right,SNAR)内存释放算法。UBIFS是一个开发中的闪存文件系统,同时是被广泛使用的JFFS2的后继者,其一般用于处理NAND型闪存做为MTD设备时所碰到的技术瓶颈。UBIFS已于2008年10月加入到Linux 2.6.27版本内核中,当前被许多智能手机和商用嵌入式系统使用。通过测试表明,UBIFS在挂载时间、损耗均衡、数据读写、坏块管理、内存消耗等方面比其他的闪存文件系统表现得更加出色。本文通过实验对比分析了几种常用的闪存文件系统,阐述了本文选择UBIFS作为研究对象的原因。然后介绍了损耗均衡的必要性和现存的损耗均衡算法分类以及部分具有代表性的损耗均衡方法。损耗均衡算法指的是使闪存中的各个擦除块在整个寿命周期内得到平衡的使用,而不会出现部分擦除块寿命已耗尽而部分擦除块尚未得到充分使用的算法。因为目前UBIFS相关源码文献较少,所以本文借助内核源码的分析,较为详细的介绍了与UBIFS相关的四个模块:VFS、UBIFS、UBI、MTD,此外还详细的介绍了UBIFS闪存文件系统中使用的损耗均衡算法。针对在源码分析中遇到的问题,本文提出了两个优化算法:TQ损耗均衡算法和SNAR内存释放算法,通过编写实验程序证明了这两个算法的有效性。