电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 存储/缓存技术 > 详细信息
存储/缓存技术:FAT文件系统在NAND Flash存储器上的改进设计
来源:   时间: 2007-11-15 6:50:21    
  嵌入式系统的大量数据都存储在其F1ash芯片上。根据Flash器件的固有特性,构建一个适合管理NAND Flash存储器的FAT文件系统,并阐述具体的设计思想。该系统改进了FAT表和FRT表的存储方式,延长了存储器的使用寿命,提高了稳定性。

       NAND Flash存储器是一种数据正确性非理想的器件,容易出现位反转现象,同时在使用中可能会有坏损单元。数据写入必须在李白的区块或者擦除后的区块巾进行,其底层技术要求以块为单位进行擦除(将“Oxff”写入到要擦除的存储块中),再按页写入。Flash存储器的擦除次数是有限的,一般是100000次。当某块执行过度的擦除操作后,这一块的存储空间将会变为“只读”状态,不能再写入数据。根据以上特点,为了避免某些块的过度操作,而导致存储卡使用寿命降低,设计专门针对Flash存储器的文件系统是必要的。

       1 NAND FIash存储器的特点
   

       NAND Flash存储器的读取操作与普通SRAM存储器类似,可以随机读取,读出的速度也很快。芯片生产厂商规定存储空间的第1块必须是有效块,装载了出厂标识、系统配置等信息;而其他块可能在使用前就足坏块,需要在初次使用时进行坏块检测并标记,禁止数据写入,由于存储器每一块的内部结构都是相互独立的,坏块并不影响系统的操作。
   

       在设计NAND Flash文件系统前,首先要了解其内部结构。目前市面上的NAND Flash芯片单片容量已高达lGB,存储器容量最高达4GB(由4片1GB的芯片封装而成)。知名的NAND Flash制造商有Samsung、Tashiba等公司。下面以Samsung公司的K9wAG08UlM为例,说明大容量NAND Flash芯片的组织结构。在K9WAG08U1M中,页(page)是最基本的组织单位。每页有2048+64=2112字节,64页构成一个块。(block),每块的容量是(2048+64)×64=(128KB+4KB),芯片共8192块,总存储容量为(128KB+4KB)×8192=lGB+32MB。存储器每页带有64字节的冗余字节。整个芯片共计32 MB的冗余空间,用于存放块信息和ECC校验码等。

       2 FIash文件系统的应用特点
   

       目前嵌入式设备的Flash文件系统主要有3种:M-Systems公司的TrueFFS、JFFSx以及唯一专门针对NAND F1ash设计的YAFFS。这3种Flash文件系统都引入了日志结构的思想,其巾JFFSx和YAFFS是代码开源的。
   

       现在大多数嵌入式手持设备上的操作系统采用FAT文件系统,而DOS下通用的FAT文件系统并不适合直接移植到Flash存储器中.主要有以下3个原因:第l,嵌入式系统的应用条件恶劣,电源电压不稳定,突发性断电以及非法插拔都将对Flash的存储造成灾难性的影响;通用文件系统对于可靠性的设计考虑不足。

       第2,通用文件系统的记录信息需要被多次改写(如FAT表),而记录信息放在固定的区块中,将导致该区块的频繁使用,影响整个Flash器件的使用寿命。第3,Flash存储器读取速度比磁盘驱动器快,存储的内容很多是多媒体数据资料。这些数据允许一定程度的误码率,未必需要像通用文件系统那样严格保证存储的正确性。如果通过灵活的校验机制与坏损管理,则可以达到更高效的存储空间利用率。这对成本敏感的嵌入式系统来说是更加需要考虑的。
   

        针对上述情况,本设计构建了一个适合NAND Flash存储器的FAT文件系统。针对其存储特点,对FAT表和FRT表的存储方式进行了改进,延长了使用寿命,增强了可靠性,使之更有利于Flash存储器的应用。

       3 FAT文件系统的结构
   

       FAT文件系统技术成熟、结构简单、系统资源开销小,易于在嵌入式系统的硬件平台上实现。
   

       文件系统由以下4部分组成:
   

       O——系统记录区(System Record Region);
       1——FAT表区(FAT Region);
       2——文件登记表区(File Register Table Region);
       3——数据区(Data Region)。
   

       ①系统记录区(System Record Region,SR)存放最重要的文件系统信息,如Flash存储器的类型、容量、版本信息、数据区域的位置和大小,还包括分区表和主引导程序。主引导程序的任务是检查分区表是否正确,自动读取
FAT表和FRT表,将其复制到控制终端的内存中。
   

       ②文件分配表(File Allocation Table,FAT)存放Flash存储器上所有区块的占用与空闲情况以及每个文件的存储连接结构。FAT文件系统中有12位、1 6位、32位3种不同的格式。不同格式的文件系统管理存储单元的个数不同,如FATl6文件系统采用16位字长的分配表,最多可以管理2的16次方(65536)的基本存储单元。
   

        ③文件登记表(File Register Table,FRT)紧跟在FAT表之后.存放F1ash文件系统中每一个文件的代号、长度、属性、目录、生成或最后修改的时间,以及该文件的存储链在文件分配表中的入口。
   

       ④数据区域(Data Region)用于存放数据。本Flash文件系统中,数据分配的最小单位是Flash存储器的一个基本擦除单元,即一个物理区块(block)。
   

       考虑到文件系统在嵌入式设备上实现的方便性并权衡Flash存储器的应用规模.选择、建立FATl6文件系统。

       4 FAT文件系统的改进设计
   

       当文件系统工作时,发生变化的只有FAT表和紧跟在其后的FRT表,因此,只用跟踪记录FAT表和FRT表就能知道文件操作的具体情况,这也是文件系统的核心;但Flash存储器结构与硬盘不同,不能直接改写其内容。直接移植的FAT文件系统、FAT表和FRT表始终存放在同一个区块中,将会导致该区块的使用寿命明显比其他的区块短。如果这一重要区域失效,那么将影响整个存储器的使用,因此必须改进两个表的存储方式。
   

       Flash生产厂商设定的存储空间的第l区块必定是有效块。在改进的设计中,将第1个区块(128KB+4KB)作为存储器的系统记录区,同时在此区块中建立一个100KB(50页)的空白区域,用于记录FAT表在Flash中的起始地址(FRT表紧跟FAT表之后,不必再单独记录其首地址)。按照写入操作以页为单位的规则,100 KB的空间,可以加入FAT表的起始地址50次。
   

       FIash第1块的分配信息区结构如图1所示。

        改进设计的文件系统把FAT表和FRT表作为可移动的数据放在某一个区块内,在Flash的系统信息区中记录着FAT表的首地址,并用指针指向它。每次FAT表存储的位置发生变化时,只需将新位置的首地址添加到系统信息区的空白区域中,再调整指针的指向。这样避免了FAT表和FRT表始终在一个区块中反复擦写,导致该区块被过度使用,缩短存储器的寿命。文件系统的操作原理框网如图2所示。

      图2中,主引导区程序首先读出存储在系统信息区中FAT表的首地址,找到FAT表和FRT表,再将其复制到控制终端的内存中进行操作(内存中可以按位修改,避免Flash不能按位修改的问题)。由于FAT文件系统是索引的链式结构,在内存中修改FAT表和FRT表的同时,也将两个表的改写情况以链式的方式紧跟在Flash存储器中两个表后面的空白区域里。这样在任何时候发生突然掉电或非法插拔而导致内存中FAT表和FRT表丢失的情况下,也能根据Flash中改写的内容恢复两个表,提高文件系统的可靠性。
   

       在全部操作完成后,先把内存中的FAT表和FRT表写到存储器的转存区块中,擦除原来表所在的区块,再将转存区块中的内容复制到擦除后的原区块中。最后,擦除转存区块,完成整个一次操作。
   

       同时,为了避免表存储区块的过度使用,当其擦除操作次数到了一个阈值(如500000次)时,先将FAT表和FRT表移动到其他空白区块,新区块作为表的存储区块。再把其中FAT表的首地址,写到FIash存储器的系统信息区的预留空白区域中,通过变化指针,程序在下次操作时将读取新地址。原先存放FAT表和FRT表的区块被标志为无效,最后通过Flash的垃圾回收策略,回收此区块。这样可达到将FAT表和FRT表作为移动数据存储的目的,延长了使用寿命,如图3所示。

      上面的设计中,存储器第l区块作为信息记录区块。其中的预留空白空间可以记录50个地址,可以满足FAT表和FRT表移动5O次。表存储区块的使片j寿命提高了5O倍。
   

       经过上面的改进,文件系统不仅避免了FAT表和FRT表始终在一个块中被过度使用的现象,也避免了在任何时候,发生掉电或非法插拔的情况。仍然可以根据Flash中修改过的内容重新建立新的FAT表和FRT表,使文件系统不至于遭到致命的破坏。这样虽然占用了一些Flash资源,但确保了文件系统的安全性和可靠性。通过这样的没计,即使出现了操作异常的情况,错误也只涉及当时被操作的文件,不会扩散给F1ash存储器中的其他文件,更不会因此彻底损坏FAT表和FRT表,造成整个文件系统的瘫痪。

       结语
   

       根据嵌入式系统中Flash存储器的特点没计的FAT文件系统,对FAT表和FRT表的存储方式进行了改进,使其使用寿命和可靠性都有了较大的提高。即使在嵌入式设备操作异常频发的恶劣工作条件下,文件系统也能够保证安全地工作。此文件系统出于可靠性的考虑,较通常的文件系统只多占用1个D(块(转存区块)的资源,而对于嵌入式上使用的NANE)Flash存储器,这样的耗费完全是可以接受的。

相关信息
发表评论
打印本页 关闭本页
用电附件过载引发汽车电源设计新思考
  随着汽车电子功能的爆炸式增长,越来越豪华的汽车是否会危及乘客安全呢?这就是汽车过电气化问题的起源,设计工程师要采取什么举措才能避免潜在的危险呢? 回忆过去(不那么遥远以前),驾驶着你爸的老爷车,AM/FM收音机、磁带录放机和汽车空调标志着那个时代豪华汽车的最高水平了。如今,许多人难以想象,全家人的公路之旅几乎都配备了卫星导航GPS、每一个乘客单独的DVD播放机、车内气候...
>>详细内容
AT88SC102 卡特性简介
  AT88SC102 卡为 1024 位逻辑加密卡,存在读写操作、擦除操作、密码操作、控制位操作及个人化操作。 ★ 电气特性 ▲ 带保密逻辑的 1024 位串行 EEPROM ▲ 存在两个应用分区 ▲ 双字节擦除特性 ▲ 熔断后整区擦除特性 ▲ 支持 ISO/IEC 同步通讯协议 ▲ 存在密码保存和验证过程 ▲ 密码错误计数器 ▲ 提供传输密码 ▲ 采用低功耗 CMOS 技术 ▲ 内部自升压电路编程 ...
>>详细内容
单片机在全自动洗衣机中的应用实例
  全自动洗衣机由洗衣系统和控制电路组成。其控制电路分为机械和电脑型,电脑型控制电路是以单片机作为控制电路的核心。图1给出单片机Z86C09组成的全自动洗衣机的控制电路。 Ⅰ.自动洗衣机的洗衣程序 洗衣机面板上有4个按钮K1、K2、K5和K6。K1用于水流选择,分两档:普通水流和柔和水流; K2用于洗衣周期选择,可以选择洗涤、漂洗和脱水三个过程;K5是暂停开关;K6是洗衣程序选择键。洗...
>>详细内容
Holtek 发布八位LCD型微控制器
  继HT49RU80后,盛群半导体(Holtek)再度推出HT49CU80MaskMCU版本,HT49CU80与HT49RU80在功能、特性、封装接脚安排上是完全兼容的。具有16K程序内存、576Bytes的一般数据存储器、31个I/O、LCD最多可驱动188点、16层堆栈缓存器、一个8位Timer及两个16位Timer、一个TimeBase定时器,并提供两个外部中断Pin。在省电计时方面,有一组RTC振荡器,使得系统可在极省电的情形下进行计时动作并仍能...
>>详细内容
TI 提供MSP430F47x4 MCU样片
  日前,德州仪器(TI)宣布开始提供16MHzMSP430F47x4超低功耗MCU样片。F47x4集成了多达四个独立16位Σ-ΔADC、一个32x32位硬件乘法器、一个支持对比度控制的160段LCD驱动器、最大存储量为60KB的闪存以及实时时钟(RTC),该产品将系统组件数量减少了五分之四。TI计量设备产品系列还包括针对水气表计量应用的器件,以及针对自动仪表读取(AMR)的电力线通信(PLC)与射频(RF)接口。 采用这些新器件...
>>详细内容
HOLTEK 推出内建128Bytes EEPROM MCU
  HOLTEK继USBMCU产品HT82M9AE/HT82M9BE又开发出HT82M9AEE/HT82M9BEEUSBOTPMCUwithEEPROM产品,使得产品更加完整。对于PC外围厂商所需USB相关产品设计,可说是一应俱全,方便设计,价位又有竞争力。 HT82M9AEE/HT82M9BEE---LowSpeedUSBOTPMCU产品符合USBHID1.1规格兼容产品内建128bytesEEPROM 具USB、PS/2硬件自动判断辅助接口,适用于USB+PS/2产品开发. HT82M9AEE有4Kx15ROMsize、224x8RA...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com