用于小文件频繁写入的嵌入式fat文件系统及方法

文档序号:6550405阅读:1654来源:国知局
用于小文件频繁写入的嵌入式fat文件系统及方法
【专利摘要】本发明提供一种用于小文件频繁写入的嵌入式FAT文件系统及方法,所述FAT文件系统的引导扇区、FAT区、文件目录区采用铁电存储器作为的存储器件,其文件的数据区采用FLASH作为的存储器件;其中,所述FAT12文件系统的存储器驱动程序分为铁电驱动程序和FLASH驱动程序;所述铁电驱动程序用于对所述铁电存储器进行读或写操作,所述FLASH驱动程序用于对所述FLASH进行读或写操作。本发明的用于小文件频繁写入的嵌入式FAT文件系统,在增加铁电存储器并改写驱动程序后,既降低了数据处理的难度,又避免了嵌入式系统中小数据的频繁擦除/写入造成的FLASH寿命过低的问题。
【专利说明】用于小文件频繁写入的嵌入式FAT文件系统及方法
【技术领域】
[0001]本发明涉及数据处理领域,尤其涉及一种用于小文件频繁写入的嵌入式FAT文件系统及方法。
【背景技术】
[0002]FLASH芯片是由内部成千上万个存储单元组成的,每个单元存储一个bit。存储单元的读写是以页和块为单位来进行,一页包含若干字节,若干页则组成储存块,存储块大小为8到32KB。
[0003]FLASH闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何FLASH器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。
[0004]FLASH的写入/擦除是有寿命的限制的,一般为10万次-100万次。
[0005]如图1所示:FAT文件系统有引导扇区、FAT区(其中FAT2是FATl的备份)、文件目录区、数据区组成。
[0006]引导扇区:由FAT系统决定,其数据只在初始化时改变,正常工作时保持不变状态。
[0007]FAT区:它是分区信息的映射表,指示簇是如何存储的。每个簇的大小不同,典型的值为512字节的倍数。
[0008]文件目录区:它是在根目录中存储文件和目录信息的目录表,当一个文件的大小发生改变时,此文件的文件目录区的内容也会改变。
[0009]数据区:用来存储文件中的数据。
[0010]FAT文件系统分为FAT12、FAT16、FAT32等,其中FAT12文件系统,其引导扇区、FAT区(其中FAT2是FATl的备份)、文件目录区的位置是固定的。不能通过改变其位置来使不同的FLASH块来平均分担。
[0011]在自身硬件资源有限,没有配备外置RAM的嵌入式系统使用FAT文件系统时,如果使用的存储器是FLASH,并且存在小数据(每次几个字节或者几十个字节)频繁写入的情况时(例如:每分钟写入一次),根据以上所述的FLASH的特点,每次存储这些小数据时数据区由于是添加数据,不必每次都擦除再改写,文件目录区则是改写数据每次都需要先擦除再写入,FLASH的擦除是有寿命限制的,以10万次-100万次计算,则在70天-700天的时间内寿命被使用完,这样短的使用寿命显然是不能满足需求的。
[0012]现在的计算机技术普遍采用缓存技术来避免硬盘、SD卡、FLASH的小数据频繁写入,擦除,但是在硬件资源缺乏的嵌入式系统中,无法提供额外的缓存。
[0013]如果不采用文件系统,而是直接存储数据,数据可以顺序保存,不存在反复擦写的状况。但是当文件和数据数量较多时,数据的处理会异常复杂,凭空增加了产品的开发难度。
[0014]因此嵌入式系统使用FAT文件系统,遇到小数据频繁写入情况会导致FLASH寿命不足的缺点亟待解决。

【发明内容】

[0015]为解决上述技术问题,本发明一种用于小文件频繁写入的嵌入式FAT文件系统,所述FAT文件系统的引导扇区、FAT区、文件目录区采用铁电存储器作为的存储器件,其文件的数据区采用FLASH作为的存储器件;
其中,所述FAT12文件系统的存储器驱动程序分为铁电驱动程序和FLASH驱动程序;所述铁电驱动程序用于对所述铁电存储器进行读或写操作,所述FLASH驱动程序用于对所述FLASH进行读或写操作。
[0016]相应的,本发明还提供一种在嵌入式FAT文件系统中频繁写入小文件的方法,其在前述的用于小文件频繁写入的嵌入式FAT文件系统中实现,包括:
将待写入小文件的文件名与所述铁电存储器中文件目录区中的目录表中的文件名相比较,当二者一致时即找到所述待写入小文件的目录表;
在找到所述数据的目录表后,根据所述目录表中的存储的该小文件上一次在所述FLASH写入数据时的位置信息,在FLASH存储的最后写入的数据的后面写入本次数据;本次数据写入FLSAH完毕后,更新所述铁电存储器中文件目录区中的目录表中该小文件的在所述FLASH写入数据时的位置信息。
[0017]实施本发明,具有如下有益效果:
本发明的用于小文件频繁写入的嵌入式FAT文件系统,在增加铁电存储器并改写驱动程序后,既降低了数据处理的难度,又避免了嵌入式系统中小数据的频繁擦除/写入造成的FLASH寿命过低的问题。
【专利附图】

【附图说明】
[0018]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为现有技术的FAT文件系统的组成示意图;
图2为本发明的一种用于小文件频繁写入的嵌入式FAT文件系统的示意图;
图3为本发明的一种在嵌入式FAT文件系统中频繁写入小文件的方法的流程示意图; 图4为本发明的一种用于小文件频繁写入的嵌入式FAT文件系统的一个实际应用示意
图;
图5为本发明的一种用于小文件频繁写入的嵌入式FAT文件系统的又一实际应用示意图。
【具体实施方式】
[0020]参见图2,为本发明的一种用于小文件频繁写入的嵌入式FAT文件系统的示意图。
[0021]所述FAT文件系统的引导扇区、FAT区、文件目录区采用铁电存储器作为的存储器件,其文件的数据区采用FLASH作为的存储器件; 其中,所述FAT12文件系统的存储器驱动程序分为铁电驱动程序和FLASH驱动程序;所述铁电驱动程序用于对所述铁电存储器进行读或写操作,所述FLASH驱动程序用于对所述FLASH进行读或写操作。
[0022]参见图3,为本发明的一种在嵌入式FAT文件系统中频繁写入小文件的方法的流程不意图。
[0023]本发明提供的方法其在前述的用于小文件频繁写入的嵌入式FAT文件系统中实现,包括:
步骤100,将待写入小文件的文件名与所述铁电存储器中文件目录区中的目录表中的文件名相比较,当二者一致时即找到所述待写入小文件的目录表;
步骤101,在找到所述数据的目录表后,根据所述目录表中的存储的该小文件上一次在所述FLASH写入数据时的位置信息,在FLASH存储的最后写入的数据的后面写入本次数据;
步骤102,本次数据写入FLSAH完毕后,更新所述铁电存储器中文件目录区中的目录表中该小文件的在所述FLASH写入数据时的位置信息。
[0024]参见图4和图5,为本发明的一个实际应用示意图。
[0025]说明本发明的用于小文件频繁写入的嵌入式FAT文件系统。
[0026]以16K字节大小的铁电存储器和8M字节的FLASH组成一个FAT12的文件系统为例,其引导扇区、FAT区(其中FAT2是FATl的备份)、文件目录区、数据区的分配见图4和图5,引导扇区的大小为512字节,FATl和FAT2的大小都是3*512字节,文件目录区共25*512字节,以上共16K字节使用的是铁电存储器,数据区大小为(8M-16K)字节。
[0027]引导扇区为初始化时确定的,后续写入或读出数据时不做改变。
[0028]作为数据区的FLASH被分为64K —个块,每一个块都有一个编号,编号存在FAT区里面;
当一个新文件建立时就会在文件目录区建立一个大小为32字节的目录条目,其内容为文件名、文件使用的数据区的块的编号、文件大小、文件最后数据的位置等。
[0029]实施本发明,具有如下有益效果:
本发明的用于小文件频繁写入的嵌入式FAT文件系统,在增加铁电存储器并改写驱动程序后,既降低了数据处理的难度,又避免了嵌入式系统中小数据的频繁擦除/写入造成的FLASH寿命过低的问题。
[0030]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0031]以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属【技术领域】的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
【权利要求】
1.一种用于小文件频繁写入的嵌入式FAT文件系统,其特征在于,所述FAT文件系统的引导扇区、FAT区、文件目录区采用铁电存储器作为的存储器件,其文件的数据区采用FLASH作为的存储器件; 其中,所述FAT12文件系统的存储器驱动程序分为铁电驱动程序和FLASH驱动程序;所述铁电驱动程序用于对所述铁电存储器进行读或写操作,所述FLASH驱动程序用于对所述FLASH进行读或写操作。
2.一种在嵌入式FAT文件系统中频繁写入小文件的方法,其特征在于,所述方法在如权利要求1所述的用于小文件频繁写入的嵌入式FAT文件系统中实现,包括: 将待写入小文件的文件名与所述铁电存储器中文件目录区中的目录表中的文件名相比较,当二者一致时即找到所述待写入小文件的目录表; 在找到所述数据的目录表后,根据所述目录表中的存储的该小文件上一次在所述FLASH写入数据时的位置信息,在FLASH存储的最后写入的数据的后面写入本次数据; 本次数据写入FLSAH完毕后,更新所述铁电存储器中文件目录区中的目录表中该小文件的在所述FLASH写入数据时的位置信息。
【文档编号】G06F3/06GK104007939SQ201410281980
【公开日】2014年8月27日 申请日期:2014年6月23日 优先权日:2014年6月23日
【发明者】唐会东, 牛文楠, 张金平, 杜学军, 沈海彬, 谢立明 申请人:深圳供电局有限公司, 深圳市康贝电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1