基于NAND Flash的YAFFS文件系统研究与实现

来源 :桂林电子科技大学 | 被引量 : 0次 | 上传用户:xiongmao_yang
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着嵌入式系统在消费电子、信息多媒体、汽车电子、网络通信、工业控制等各个领域的广泛应用,对嵌入式系统中的数据存储器在容量和掉电保护方面提出了更高要求,因Flash存储器在性能上具有容量大、掉电不丢失数据等优点而成为嵌入式系统中使用最广泛的数据存储器。为实现对Flash存储器中大量数据存储和读写擦除操作的管理,在Flash存储器上建立文件系统具有非常重要的现实意义。  目前使用在NAND Flash存储器上的文件系统主要有两种类型:一种是常用于硬磁盘存储器的集中索引文件系统;另一种是日志闪存文件系统如YAFFS(Yet Another Flash File System)。YAFFS因具有更高存取访问速度和有更强的易移植性等诸多优点,使YAFFS成为管理NAND Flash存储器最可行的文件系统。  本文针对YAFFS文件系统的实现原理和管理机制,进行了深入研究和相关算法的改进,具体所做工作和取得成果如下:  1)为掌握YAFFS文件系统实现原理,在阅读YAFFS文件系统核心算法基础上,对YAFFS文件系统使用的最主要数据结构进行了研究;并对YAFFS在系统内存的组织方式和YAFFS块的坏块管理机制进行了研究。  2)为实现YAFFS文件系统通过访问Linux内核提供的MTD(Memory Technology Device)的驱动程序,去完成对NAND Flash的读写等操作,在阅读分析与NAND驱动有关的源代码基础上,对Linux内核操作系统中的MTD和基于MTD系统上实现NAND Flash设备驱动机制进行了深入研究。  3)针对YAFFS垃圾收集机制(Garbage Collection)因使用贪婪算法而出现的Flash磨损不均衡问题,依据KimLim算法将Flash中的block区域分为“cold”和“hot”区域方法,实现对Flash存储器中的块擦除进行计数,并将擦除计数值应用到改进的损耗均衡算法中,很好解决原垃圾收集算法出现的损耗不均衡问题。  4)针对YAFFS文件系统进行垃圾回收时,因脏块中有效页数目多于文件系统中的可使用块而出现的“死锁”而造成文件系统写数据慢的问题,设计出根据nEraseBlocks(YAFFS可使用的空块)的阀值把nReserveBlocks(专为垃圾收集而预保留的块)设置为动态可变(tuneable)的改进算法,改进的算法在保障文件系统稳定性基础上,在写数据方面有了很大提高,并很好的缓解出现的“死锁”问题。  5)为验证改进算法的有效性,搭建了测试平台。在SBC-2410目标开发板上完成了YAFFS文件系统在Linux内核操作系统上的移植工作。  6)在搭建好的测试平台上,对改进的YAFFS垃圾回收算法和擦写性能进行了相关测试,并根据其测试结果对改进算法的有效性做出了客观评价。
其他文献
嵌入式技术是目前电子产品设计领域最为热门的技术之一,应用嵌入式操作系统的嵌入式系统设计已成为当前研究的热点,嵌入式系统在工业控制、消费电子等领域的应用范围不断扩大,使