● 摘要
在当前数字信息技术和网络技术高速发展的后PC(Post-PC)时代,嵌入式设备已经广泛渗透到科学研究、工程设计、各类产业、商业、娱乐业以及人们的日常生活等方方面面中。随着嵌入式设备应用领域的扩大和功能需求的增强,嵌入式系统中的数据存储和数据管理已经成为一个重要的课题摆在设计人员面前,于是嵌入式文件系统的概念被引入。由于嵌入式设备存储介质的特殊性、电源供给的不稳定性和移动存储的安全性要求,对嵌入式文件的设计和实现提出了更高的要求。Flash存储器是一种功耗低、体积小、可重复编程的存储器,目前它在移动设备、数码产品中得到广泛的应用。但是与传统磁盘相比,它存在一些独特的硬件特性,这些硬件编程特性给上层应用软件的开发早成了很多困难,大大增加了上层软件开发和维护成本。本文研究了Flash存储器自身的一些编程特性。同时对当前存在的几种主流文件系统和嵌入式文件系统的原理进行了研究和分析。在进行了以上理论研究之后,本文基于一个以Flash为存储介质的手机平台,针对Flash存储器的硬件编程特性,提出了一套完整的Flash存储系统解决方案:首先,在Flash驱动层与应用层之间开发一个中间层——逻辑磁盘系统(Logical Disk System, LDS)。LDS通过物理地址到逻辑地址的映射机制,屏蔽了Flash的硬件特性;同时在LDS设计过程中间接实现了Flash的擦写平衡;相应的垃圾回收机制保证了系统对Flash读写性能的需求。另外,FAT作为一种较为成熟的文件系统被Windows操作系统所支持,所以本文阐述了如何在LDS之上实现FAT文件系统,从而实现Flash存储系统与普通磁盘系统的无差别性。最后,为了以后的可扩展性,以Linux文件系统为参考,在FAT之上实现了一个简易虚拟文件系统层VFS,这样如果再开发其他类型的文件系统,上层应用接口就不必改变。VFS实现了物理文件系统接口对上层应用的“透明”。本文最后设计了一个简单的测试用例,对以上的Flash文件系统进行了性能测试,测试结果可以保证满足手机系统中文件的读写速度。
相关内容
相关标签