论文摘要
由于NAND flash的物理特性,NAND flash面临垃圾收集、损耗均衡和坏块处理三大挑战。因此,NAND flash需要采用不同的存储策略来解决这些问题,而使用专门的flash文件系统是嵌入式系统应用中使用最广泛的一种存储策略,它支持日志结构,并提供掉电保护,崩溃恢复机制和垃圾收集机制等。由于嵌入式系统中存储的数据以静态数据为主,对于频繁更新的数据一般集中在设备的某一区域,这些动态数据将使得flash设备上的擦除次数分布不均匀,包含动态数据的擦除块将比包含静态数据的擦除块具有较多被擦除的机会,从而导致flash设备因为集中被擦写的区域的损耗殆尽而结束寿命,而包含静态数据的区域却还没有得到充分使用。这样将给系统和使用者造成损失,对于嵌入式低成本、低投入的特征也是不允许的。考虑损耗均衡并拥有一个全局范围的损耗均衡机制是解决NAND flash使用寿命问题的一个重要方式,而UBIFS作为一种新型的NAND flash文件系统拥有这样的一种损耗均衡机制,并且完全对用户透明。因此,设计并实现一种针对嵌入式系统中的静态数据特征的UBIFS损耗均衡优化算法,具有现实意义与实用价值。本文首先分析NAND flash的物理特性及其面临的挑战,研究不同的损耗均衡方法和当前几种主流的损耗均衡算法,进而深入剖析UBIFS架构与其损耗均衡机制,为UBIFS损耗均衡优化算法的设计提供参考与借鉴。随后深入研究UBIFS文件系统的源代码和其损耗均衡机制的具体实现,详细分析了UBIFS中的树型组织方式和管理结构,UBI操作以及LEB和PEB之间的映射机制,为UBIFS损耗均衡优化算法的设计和实现打下了基础。‘接着文中提出了优化算法的设计要求和总体设计架构,并且给出了在UBIFS损耗均衡的基础上对损耗均衡中的保护机制作出优化,对受保护的对象收集写请求操作,空间评估功能模块以及对数据搬移功能模块的具体实现。最后设计测试方案和编写测试文件,对UBIFS的损耗均衡性能和挂载时间等进行测试与分析。