论文部分内容阅读
NAND闪存广泛的应用于手机,媒体播放器,数码相机等嵌入式系统,提供了低成本的存储解决方案。NAND技术的发展由大容量和高效的存储需求驱动,新型的MLC型芯片存储密度更高,故成本低于SLC型。NAND使用上的限制是:以块为单位擦写后才能完成数据位的清除,块的擦写周期有限,介于1万到10万,一旦块被过多擦写,超过其擦写周期,则块不能可靠的存储数据;由可靠性问题决定,要有ECC校验算法来检测并修正使用过程中随机出现的位错误。对SLC型NAND芯片仅使用能完成1位纠错的校验算法,MLC型芯片使用过程中出错概率的增加,要用多位的纠错算法来保证数据的可靠。这种趋势决定了NAND存储系统要有高效的存储结构和算法来支持。有两种方法来解决NAND的限制:一是使用传统的磁盘文件系统加闪存转换层,如FAT+NFTL;第二种更有效的方法是在NAND上直接使用闪存文件系统如JFFS2,YAFFS。本文研究专为NAND设计的YAFFS文件系统,包括数据存储结构,加载速度,损耗平衡,垃圾收集等,并在开发板上,评测其两个版本YAFFS2和YAFFS1的性能。由于NAND芯片容量的增加,文件系统加载速度比原来更重要。YAFFS没有集中索引区,元数据分布在闪存页上,YAFFS1的加载要扫描整个闪存,这个过程耗时较多,YAFFS2使用快照方法,加载时间大大减少,但在掉电的情况下这种方法失效,则要使用原先的扫描方法,并且数据可能处于不一致的状态。本文使用日志记录的方法来解决这个问题,并设计了一种检测掉电的方法。日志记录用来跟踪文件系统的变化,与快照方法相结合,掉电后只要扫描存放日志记录的闪存页完成加载,考虑到损耗平衡的问题,日志记录的存储位置并不固定。由实验结果表明,加载速度较YAFFS1的扫描方法要快,保证了文件系统的可靠性。