在嵌入式系统中,由于闪存成本低、容量大、非易失、访问速度高和机械故障少的优势已逐渐成为最流行的存储大量数据的存储器。然而,闪存常见的用法是简单的流模式,它没有提供文件的存储和管理功能。解决问题的方法是建立一个管理存储空间和数据信息的文件系统。目前,商用闪存文件系统(FFS)通常是与DOS兼容,这将产生一个复杂的文件目录[1],这种系统不实用且浪费资源。
由于嵌入式系统软硬件的限制,在应用于通用计算机系统的标准文件系统(例如用于Win32/DOS的FAT和用于Linux的EXT)时,必须进行相应修改以适应嵌入式环境。在通用的文件系统趋向于简单化和专业化的进程中,研究主要集中在以下几个方面[2,3]:在一个小的高速存储器上实现嵌入式系统处理速度和有限资源的平衡;实现特定性能,如用于满足不同的嵌入式应用环境的数据加密和运行的可靠性的功能;提高嵌入式系统的实时性能。事实上,不少嵌入式系统是根据客户的特殊要求定做的。针对这种情况,开发了具有高可靠性的简化嵌入式闪存文件系统,与复杂的商用文件系统相比,这个嵌入式计算机数值控制系统更实用。
1 FFS存储结构和框架 嵌入式系统中闪存有以下特点:(1)闪存以扇区为单位执行,如果修改扇区内1 B的数据,则整个扇区的数据都将被重写;(2)通常任一扇区可重写大约0.1~1万次;(3)损坏扇区难免。在计算机数控系统中应用了闪存特性和局部处理程序访问特征,在逻辑上非结构化的
数据流模式被应用到FFS,在物理上存储空间以扇区为基础分成不同的块[4]。闪存文件系统(FFS)不仅提供了根据文件名查找和访问文件,使得有限的存储空间得到合理和充分利用,而且还提供基于存储内容的擦写策略损坏扇区的适应性管理,因此,在某种程度上FFS的可靠性有所提高。
为了使闪存文件系统在不同的平台上更易于进行维护、升级和移植,基于Madnick分层模型设计了一个文件系统分层结构。图1所示的文件系统包括2个主要部分:文件管理单元和存储空间管理单元。较低层为上层部分提供服务。每一层仅涉及接口,而不是更低或上层内部结构。
2 存储空间管理
作为嵌入式系统的一部分,闪存存储管理的主要功能包括提高使用效率、加快执行速度和根据其物理特性使用特殊算法管理闪存内存单元的使用频率[5]。存储空间管理单元在逻辑上由3个层次组成:文件物理层、存储设备分配层和闪存驱动层[6]。闪存驱动层为上层提供最基本的驱动程序,如下:
[1] [2] [3] [4] 下一页