汉语大全>计算机理论>基于flash存储器的嵌入式文件管理器设计

基于flash存储器的嵌入式文件管理器设计

详细内容

1 Flash存储器的操作特点Flash存储器在读取数据方面与普通的SRAM存储器类似,一般可以实现完全随机的读取。Flash存储器在操作方面与SRAM存储器最大的不同在于写操作。Flash存储器的写操作需要经过“擦除—写入”两个操作过程。当希望对Flash存储器的某一个单元进行写入时,首先必须对这个存储单元所在的区块(block)执行擦除操作,将整个区块的数据内容清空(一般被设置成0XFF);然后对目的单元所在的页面(page)执行写入操作,需要一次写入整个页面的全部数据内容(也有一些Flash存储器支持部分页的写入,这样可以分多次写完一个页面),操作成功后还要进行数据正确性的校验。数据一旦写入,就不能随意更改,需要时只能重复上面的过程。
  一个区块(block)可包含一个或多个页面(page),一个页面包含多个数据存储单元(字节或字)。由于Flash存储器写入时间瓶颈并不在于数据传递,而在于Flash存储器内部的擦除和写操作等待;同时Flash存储器读出速度和微处理器处理数据速度都很快,因此将读、写的基本单位扩大到页面,其额外增加的操作时间是很短的。例如:CF卡中一个区块(block),或称为页面(page),它包括512个字节,作为基本的存储和操作单位,即一次读、写就是512个字节(在嵌入式文件管理器中,我们将它作为一个扇区)。
  2 文件管理器目前,PC机上应用的文件系统很多,如DOS下的FAT文件系统、Windows NT下的NTFS文件系统及Unix文件系统等。另外,WindowsCE、Palm OS等用于掌上型电脑(PDA)的操作系统也有各自的文件系统。这些文件系统都很成熟,但并不适合直接应用到嵌入式系统中。
  1)嵌入式系统的作业环境远比PC机恶劣,电源电压的不稳定以及突发性断电将对Flash的数据存储造成灾难性的影响,通用文件系统对于可靠性的设计考虑不足。
  2)通用文件系统是针对系统资源非常丰富的计算机平台并基于速度较慢的磁盘驱动器,它们常常大量使用缓存技术,以耗费较多的系统资源来换取文件系统的效率和速度。这与嵌入式系统中系统资源有限,Flash存储器又相对于磁盘驱动器较快的应用情况不同。
  3)如果嵌入式系统中存储于Flash上的内容是允许有一定程度误码损伤的数据(如某些多媒体数据),则不需要象通用文件系统那样严格保证存储的正确性。通过灵活的校验机制与坏损管理,达到更优化的存储速度与更高效的存储空间利用,这对成本敏感的嵌入式系统来说尤其重要。针对上述情况,我们基于CF卡,设计了一个嵌入式文件管理器,采取了类似于MS-DOS FAT的文件系统构架,对CF卡中的数据进行基于文件代号的存储管理,同时对于CF卡的坏损单元自动进行应用透明的坏损管理。下面,以我们的设计为例,探讨嵌入式文件管理器的实现。
  3 嵌入式文件管理器的结构设计MS-DOS FAT文件系统技术成熟、结构相对简单、清晰,易于在嵌入式系统的硬件平台上实现。依据应用目的和需求,嵌入式文件管理器的基本结构设计,可以采用两种不同的设计思路:
  1)结构上兼容MS-DOS FAT文件系统。这种结构较为复杂,占用系统资源较多,单纯从嵌入式系统来说并不是理想的方案。但采取这种方式,Flash存储器上的数据文件就可以被MS-DOS或Windows的FAT文件系统(FAT16或FAT32)向下兼容。具体地说,其它系统可以通过相应的硬件接口,直接识别、调用、处理数据文件。如PC机上配有CF卡适配器,则存储的数据就不必通过串口上传到PC机中进行后处理,而可以将CF卡直接接入PC机的适配器中,然后如同用磁盘拷文件一样简单轻松、方便快捷。
  这使得作为嵌入式系统存储设备的CF卡具备了小型活动硬盘或大容量磁盘的特性,一些诸如删除文件、磁盘格式化等工作都可在脱机状态下完成,极大地提高了系统的效率。如果不具备这种功能,则只有通过串口通信完成相应的任务,不仅效率低下,而且十分不便。交通与计算机这样的特点对于一些特殊应用是很重要的。不仅使数据文件的上载速度、效率有了数量级的差别,而且数据文件转储的方式及其灵活性、可靠性都发生了质的飞跃。所以,牺牲一些存储空间和结构上的简化也是必要的。
  2)适用于嵌入式系统的文件系统结构。事实上,作为嵌入式文件管理器,在其结构上可以也应该比MS-DOS FAT文件系统更简化,更灵活,以提高整个系统的存储效率。例如,整个主引导区的隐藏部分完全可以不要,引导扇区、FAT区、根目录区的结构也可以进行简化,或根据系统需求修改。结构上的简化不仅有效地节省了存储空间,也大大提高了存储效率。特别适用于实时性要求较高的系统。基于上述两种模式的优缺点,我们设计的嵌入式文件管理器,其基本结构类似于MS-DOSFAT文件系统,既可与MS-DOS FAT文件系统完全兼容,也做了相应的修改,以提高嵌入式存储系统的效率和可靠性。