CN104007939A - 用于小文件频繁写入的嵌入式fat文件系统及方法 - Google Patents
用于小文件频繁写入的嵌入式fat文件系统及方法 Download PDFInfo
- Publication number
- CN104007939A CN104007939A CN201410281980.7A CN201410281980A CN104007939A CN 104007939 A CN104007939 A CN 104007939A CN 201410281980 A CN201410281980 A CN 201410281980A CN 104007939 A CN104007939 A CN 104007939A
- Authority
- CN
- China
- Prior art keywords
- flash
- file system
- data
- write
- small documents
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种用于小文件频繁写入的嵌入式FAT文件系统及方法,所述FAT文件系统的引导扇区、FAT区、文件目录区采用铁电存储器作为的存储器件,其文件的数据区采用FLASH作为的存储器件;其中,所述FAT12文件系统的存储器驱动程序分为铁电驱动程序和FLASH驱动程序;所述铁电驱动程序用于对所述铁电存储器进行读或写操作,所述FLASH驱动程序用于对所述FLASH进行读或写操作。本发明的用于小文件频繁写入的嵌入式FAT文件系统,在增加铁电存储器并改写驱动程序后,既降低了数据处理的难度,又避免了嵌入式系统中小数据的频繁擦除/写入造成的FLASH寿命过低的问题。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种用于小文件频繁写入的嵌入式FAT文件系统及方法。
背景技术
FLASH芯片是由内部成千上万个存储单元组成的,每个单元存储一个bit。存储单元的读写是以页和块为单位来进行,一页包含若干字节,若干页则组成储存块,存储块大小为 8 到 32KB 。
FLASH闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何FLASH器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。
FLASH的写入/擦除是有寿命的限制的,一般为10万次-100万次。
如图1所示:FAT文件系统有引导扇区、FAT区(其中FAT2是FAT1的备份)、文件目录区、数据区组成。
引导扇区:由FAT系统决定,其数据只在初始化时改变,正常工作时保持不变状态。
FAT区:它是分区信息的映射表,指示簇是如何存储的。每个簇的大小不同,典型的值为512字节的倍数。
文件目录区:它是在根目录中存储文件和目录信息的目录表,当一个文件的大小发生改变时,此文件的文件目录区的内容也会改变。
数据区:用来存储文件中的数据。
FAT文件系统分为FAT12、FAT16、FAT32等,其中FAT12文件系统,其引导扇区、FAT区(其中FAT2是FAT1的备份)、文件目录区的位置是固定的。不能通过改变其位置来使不同的FLASH块来平均分担。
在自身硬件资源有限,没有配备外置RAM的嵌入式系统使用FAT文件系统时,如果使用的存储器是FLASH,并且存在小数据(每次几个字节或者几十个字节)频繁写入的情况时(例如:每分钟写入一次),根据以上所述的FLASH的特点,每次存储这些小数据时数据区由于是添加数据,不必每次都擦除再改写,文件目录区则是改写数据每次都需要先擦除再写入, FLASH的擦除是有寿命限制的,以10万次-100万次计算,则在70天-700天的时间内寿命被使用完,这样短的使用寿命显然是不能满足需求的。
现在的计算机技术普遍采用缓存技术来避免硬盘、SD卡、FLASH的小数据频繁写入,擦除,但是在硬件资源缺乏的嵌入式系统中,无法提供额外的缓存。
如果不采用文件系统,而是直接存储数据,数据可以顺序保存,不存在反复擦写的状况。但是当文件和数据数量较多时,数据的处理会异常复杂,凭空增加了产品的开发难度。
因此嵌入式系统使用FAT文件系统,遇到小数据频繁写入情况会导致FLASH寿命不足的缺点亟待解决。
发明内容
为解决上述技术问题,本发明一种用于小文件频繁写入的嵌入式FAT文件系统,所述FAT文件系统的引导扇区、FAT区、文件目录区采用铁电存储器作为的存储器件,其文件的数据区采用FLASH作为的存储器件;
其中,所述FAT12文件系统的存储器驱动程序分为铁电驱动程序和FLASH驱动程序;所述铁电驱动程序用于对所述铁电存储器进行读或写操作,所述FLASH驱动程序用于对所述FLASH进行读或写操作。
相应的,本发明还提供一种在嵌入式FAT文件系统中频繁写入小文件的方法,其在前述的用于小文件频繁写入的嵌入式FAT文件系统中实现,包括:
将待写入小文件的文件名与所述铁电存储器中文件目录区中的目录表中的文件名相比较,当二者一致时即找到所述待写入小文件的目录表;
在找到所述数据的目录表后,根据所述目录表中的存储的该小文件上一次在所述FLASH写入数据时的位置信息,在FLASH存储的最后写入的数据的后面写入本次数据;
本次数据写入FLSAH完毕后,更新所述铁电存储器中文件目录区中的目录表中该小文件的在所述FLASH写入数据时的位置信息。
实施本发明,具有如下有益效果:
本发明的用于小文件频繁写入的嵌入式FAT文件系统,在增加铁电存储器并改写驱动程序后,既降低了数据处理的难度,又避免了嵌入式系统中小数据的频繁擦除/写入造成的FLASH寿命过低的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术的FAT文件系统的组成示意图;
图2为本发明的一种用于小文件频繁写入的嵌入式FAT文件系统的示意图;
图3为本发明的一种在嵌入式FAT文件系统中频繁写入小文件的方法的流程示意图;
图4为本发明的一种用于小文件频繁写入的嵌入式FAT文件系统的一个实际应用示意图;
图5为本发明的一种用于小文件频繁写入的嵌入式FAT文件系统的又一实际应用示意图。
具体实施方式
参见图2,为本发明的一种用于小文件频繁写入的嵌入式FAT文件系统的示意图。
所述FAT文件系统的引导扇区、FAT区、文件目录区采用铁电存储器作为的存储器件,其文件的数据区采用FLASH作为的存储器件;
其中,所述FAT12文件系统的存储器驱动程序分为铁电驱动程序和FLASH驱动程序;所述铁电驱动程序用于对所述铁电存储器进行读或写操作,所述FLASH驱动程序用于对所述FLASH进行读或写操作。
参见图3,为本发明的一种在嵌入式FAT文件系统中频繁写入小文件的方法的流程示意图。
本发明提供的方法其在前述的用于小文件频繁写入的嵌入式FAT文件系统中实现,包括:
步骤100,将待写入小文件的文件名与所述铁电存储器中文件目录区中的目录表中的文件名相比较,当二者一致时即找到所述待写入小文件的目录表;
步骤101,在找到所述数据的目录表后,根据所述目录表中的存储的该小文件上一次在所述FLASH写入数据时的位置信息,在FLASH存储的最后写入的数据的后面写入本次数据;
步骤102,本次数据写入FLSAH完毕后,更新所述铁电存储器中文件目录区中的目录表中该小文件的在所述FLASH写入数据时的位置信息。
参见图4和图5,为本发明的一个实际应用示意图。
说明本发明的用于小文件频繁写入的嵌入式FAT文件系统。
以16K字节大小的铁电存储器和8M字节的FLASH组成一个FAT12的文件系统为例,其引导扇区、FAT区(其中FAT2是FAT1的备份)、文件目录区、数据区的分配见图4和图5,引导扇区的大小为512字节,FAT1和FAT2的大小都是3*512字节,文件目录区共25*512字节,以上共16K字节使用的是铁电存储器,数据区大小为(8M-16K)字节。
引导扇区为初始化时确定的,后续写入或读出数据时不做改变。
作为数据区的FLASH被分为64K一个块,每一个块都有一个编号,编号存在FAT区里面;
当一个新文件建立时就会在文件目录区建立一个大小为32字节的目录条目,其内容为文件名、文件使用的数据区的块的编号、文件大小、文件最后数据的位置等。
实施本发明,具有如下有益效果:
本发明的用于小文件频繁写入的嵌入式FAT文件系统,在增加铁电存储器并改写驱动程序后,既降低了数据处理的难度,又避免了嵌入式系统中小数据的频繁擦除/写入造成的FLASH寿命过低的问题。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (2)
1.一种用于小文件频繁写入的嵌入式FAT文件系统,其特征在于,所述FAT文件系统的引导扇区、FAT区、文件目录区采用铁电存储器作为的存储器件,其文件的数据区采用FLASH作为的存储器件;
其中,所述FAT12文件系统的存储器驱动程序分为铁电驱动程序和FLASH驱动程序;所述铁电驱动程序用于对所述铁电存储器进行读或写操作,所述FLASH驱动程序用于对所述FLASH进行读或写操作。
2.一种在嵌入式FAT文件系统中频繁写入小文件的方法,其特征在于,所述方法在如权利要求1所述的用于小文件频繁写入的嵌入式FAT文件系统中实现,包括:
将待写入小文件的文件名与所述铁电存储器中文件目录区中的目录表中的文件名相比较,当二者一致时即找到所述待写入小文件的目录表;
在找到所述数据的目录表后,根据所述目录表中的存储的该小文件上一次在所述FLASH写入数据时的位置信息,在FLASH存储的最后写入的数据的后面写入本次数据;
本次数据写入FLSAH完毕后,更新所述铁电存储器中文件目录区中的目录表中该小文件的在所述FLASH写入数据时的位置信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410281980.7A CN104007939A (zh) | 2014-06-23 | 2014-06-23 | 用于小文件频繁写入的嵌入式fat文件系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410281980.7A CN104007939A (zh) | 2014-06-23 | 2014-06-23 | 用于小文件频繁写入的嵌入式fat文件系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104007939A true CN104007939A (zh) | 2014-08-27 |
Family
ID=51368610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410281980.7A Pending CN104007939A (zh) | 2014-06-23 | 2014-06-23 | 用于小文件频繁写入的嵌入式fat文件系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104007939A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630410A (zh) * | 2015-12-03 | 2016-06-01 | 上海磁宇信息科技有限公司 | 使用非易失随机读写存储芯片动态管理文件存储区的方法 |
CN107590285A (zh) * | 2017-09-30 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种异构系统数据一致性的方法 |
CN107608636A (zh) * | 2017-09-28 | 2018-01-19 | 江苏沁恒股份有限公司 | 一种基于fat文件系统的设计方法及其应用的数据采集装置 |
CN107908364A (zh) * | 2017-11-13 | 2018-04-13 | 中国电子科技集团公司第三十研究所 | 一种基于norflash的嵌入式文件系统 |
CN113760195A (zh) * | 2021-09-14 | 2021-12-07 | 恒宝股份有限公司 | 一种基于嵌入式的fatfs文件系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100241677A1 (en) * | 2007-09-06 | 2010-09-23 | Kabushiki Kaisha Toshiba | Memory device and file system |
CN102426586A (zh) * | 2011-10-25 | 2012-04-25 | 厦门雅迅网络股份有限公司 | 一种嵌入式系统中的fat文件存储方法 |
CN102867019A (zh) * | 2012-07-30 | 2013-01-09 | 利尔达科技有限公司 | 分离式文件系统及其管理方法 |
-
2014
- 2014-06-23 CN CN201410281980.7A patent/CN104007939A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100241677A1 (en) * | 2007-09-06 | 2010-09-23 | Kabushiki Kaisha Toshiba | Memory device and file system |
CN102426586A (zh) * | 2011-10-25 | 2012-04-25 | 厦门雅迅网络股份有限公司 | 一种嵌入式系统中的fat文件存储方法 |
CN102867019A (zh) * | 2012-07-30 | 2013-01-09 | 利尔达科技有限公司 | 分离式文件系统及其管理方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630410A (zh) * | 2015-12-03 | 2016-06-01 | 上海磁宇信息科技有限公司 | 使用非易失随机读写存储芯片动态管理文件存储区的方法 |
CN105630410B (zh) * | 2015-12-03 | 2018-08-07 | 上海磁宇信息科技有限公司 | 使用非易失随机读写存储芯片动态管理文件存储区的方法 |
CN107608636A (zh) * | 2017-09-28 | 2018-01-19 | 江苏沁恒股份有限公司 | 一种基于fat文件系统的设计方法及其应用的数据采集装置 |
CN107590285A (zh) * | 2017-09-30 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种异构系统数据一致性的方法 |
CN107908364A (zh) * | 2017-11-13 | 2018-04-13 | 中国电子科技集团公司第三十研究所 | 一种基于norflash的嵌入式文件系统 |
CN107908364B (zh) * | 2017-11-13 | 2020-10-23 | 中国电子科技集团公司第三十研究所 | 一种基于norflash的嵌入式文件系统 |
CN113760195A (zh) * | 2021-09-14 | 2021-12-07 | 恒宝股份有限公司 | 一种基于嵌入式的fatfs文件系统 |
CN113760195B (zh) * | 2021-09-14 | 2024-05-07 | 恒宝股份有限公司 | 一种基于嵌入式的fatfs文件系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11640353B2 (en) | Memory system, data storage device, user device and data management method thereof | |
US11593259B2 (en) | Directed sanitization of memory | |
US10642729B2 (en) | Data storage device and operating method thereof wherein update to physical-to-logical mapping of destination block is restarted when closing active block | |
US9645894B2 (en) | Data storage device and flash memory control method | |
US9164895B2 (en) | Virtualization of solid state drive and mass storage drive devices with hot and cold application monitoring | |
KR101982251B1 (ko) | 저장 디바이스들이 낮은 과도 공급으로 낮은 기입 증폭을 달성하기 위한 방법 | |
US8909986B2 (en) | Data storing method for solid state drive to preserve data integrity after power failure | |
US9367451B2 (en) | Storage device management device and method for managing storage device | |
US7814263B2 (en) | Erase history-based flash writing method | |
CN110908925B (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
US9940040B2 (en) | Systems, solid-state mass storage devices, and methods for host-assisted garbage collection | |
CN105718530B (zh) | 文件存储系统及其文件存储控制方法 | |
US9864529B1 (en) | Host compatibility for host managed storage media | |
US20110099323A1 (en) | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping | |
US20150186259A1 (en) | Method and apparatus for storing data in non-volatile memory | |
CN104461397A (zh) | 一种固态硬盘及其读写方法 | |
US9507523B1 (en) | Methods, devices and systems for variable size logical page management in a solid state drive | |
US20180150390A1 (en) | Data Storage Device and Operating Method Therefor | |
CN104007939A (zh) | 用于小文件频繁写入的嵌入式fat文件系统及方法 | |
US10324661B2 (en) | Storage device and operating method thereof | |
US9183127B2 (en) | Sequential block allocation in a memory | |
CN103294607A (zh) | 一种存储管理方法 | |
CN103365786A (zh) | 数据存储方法、装置和系统 | |
CN101324899B (zh) | 一种快速写nand型flash的方法 | |
CN114327240A (zh) | 计算机可读存储介质、闪存存储器的数据存储方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140827 |