CN101763426A - 一种实现文件分配表文件系统可靠性的方法和装置 - Google Patents

一种实现文件分配表文件系统可靠性的方法和装置 Download PDF

Info

Publication number
CN101763426A
CN101763426A CN201010002921A CN201010002921A CN101763426A CN 101763426 A CN101763426 A CN 101763426A CN 201010002921 A CN201010002921 A CN 201010002921A CN 201010002921 A CN201010002921 A CN 201010002921A CN 101763426 A CN101763426 A CN 101763426A
Authority
CN
China
Prior art keywords
fat
file system
ram
flash
file
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.)
Granted
Application number
CN201010002921A
Other languages
English (en)
Other versions
CN101763426B (zh
Inventor
李德文
王为民
曹煜泓
谢东凯
何伟挺
黄文君
施一明
潘再生
张伟宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZHEJIANG SUPCON RESEARCH Co Ltd
ZHONGKONG SCIENCE AND TECHNOLOGY GROUP Co Ltd
Zhejiang University ZJU
Supcon Group Co Ltd
Original Assignee
ZHEJIANG SUPCON RESEARCH Co Ltd
ZHONGKONG SCIENCE AND TECHNOLOGY GROUP Co Ltd
Zhejiang University ZJU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZHEJIANG SUPCON RESEARCH Co Ltd, ZHONGKONG SCIENCE AND TECHNOLOGY GROUP Co Ltd, Zhejiang University ZJU filed Critical ZHEJIANG SUPCON RESEARCH Co Ltd
Priority to CN2010100029213A priority Critical patent/CN101763426B/zh
Publication of CN101763426A publication Critical patent/CN101763426A/zh
Application granted granted Critical
Publication of CN101763426B publication Critical patent/CN101763426B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种实现FAT文件系统可靠性的方法,将所述FAT文件系统中的FAT表和目录区缓存于随机存取存储器RAM中,将所述FAT表和所述目录区缓存的日志存储于NOR FLASH中之后,包括:对所述FAT文件系统或所述FAT文件系统中的文件进行操作,根据所述操作结果更新所述RAM中和/或所述NOR FLASH中的数据信息。本发明实施例还提供了一阵难过实现FAT文件系统可靠性的装置。本发明实施例所提供的技术方案,使得FAT表区和目录区频繁改变时,不影响NAND FLASH的使用寿命,且由于FAT表和目录区缓存的日志均保存于NOR FLASH中,相应也提高了FAT文件的可靠性。

Description

一种实现文件分配表文件系统可靠性的方法和装置
技术领域
本发明涉及计数机数据存储领域,更具体地说,涉及一种实现文件分配表文件系统可靠性的方法和装置。
背景技术
NAND FLASH是非易失存储器,采用这种结构存储器能提供极高的单元密度,可以达到高存储密度,并且写入和擦出的速度也很快,因此,被大量应用在嵌入式设备和可移动设备中,用于存放数据。
而FAT文件系统是目前应用最广泛的文件系统,它以结构简单、占用内存少等优点被广泛应用于嵌入式设备中,作为NAND型海量存储器的文件系统,FAT文件系统属于集中索引类文件系统,它采用链接方式分配空间,通过简单而有效的文件分配表管理各个簇的使用和组织整个文件系统。FAT文件系统的存储区域可分为启动参数快、FAT表1、冗余的FAT表2、根目录扇区以及数据区。启动参数块主要包括引导扇区和文件系统信息扇区,其中,引导扇区内保存着文件系统的配置信息,文件系统信息扇区内保存着空扇区数、下一个空扇区等信息。FAT表1的前几个字节为文件系统非法操作标识位,其余部分用于管理以簇为单位的数据区。FAT表2是FAT表1的备份。数据区内文件对应的目录记录了文件的文件名、起始簇、大小、修改日期和属性。除根目录外其余目录均以文件的形式保存在目录文件中。文件的信息被分散地保存在FAT表区、目录文件区以及数据区,任何一部分区域的数据不一致都将造成用户数据的丢失甚至会破坏整个文件系统。因此要实现FAT文件系统的可靠性,必须保持这三个区域的数据一致,但由于这三个区域中FAT表区和目录区的信息密度要远大于数据区,FAT表区和目录区的更新频率会远大于数据区,因此造成了NAND FLASH磨损的不均衡,减少了NAND FLASH的使用寿命和文件系统的稳定性。
发明内容
有鉴于此,本发明实施例提供一种实现文件分配表文件系统可靠性的方法和装置,以提高NAND FLASH的使用寿命和文件系统的稳定性。
本发明实施例是这样实现的:
本发明实施例提供了一种实现文件分配表文件系统可靠性的方法,将所述FAT文件系统中的FAT表和目录区缓存于随机存取存储器RAM中,将所述FAT表和所述目录区缓存的日志存储于NOR FLASH中之后,包括:
对所述FAT文件系统或所述FAT文件系统中的文件进行操作,根据所述操作结果更新所述RAM中和/或所述NOR FLASH中的数据信息。
所述将FAT文件系统中的FAT表缓存于RAM中,包括:
将所述FAT表缓存划分为多个块,每个块分别缓存FAT表中一个扇区的数据信息。
所述将FAT表的日志存储于NOR FLASH中,包括:
将所述FAT表操作日志分为多条,每条对应一个扇区FAT表的日志。
所述将FAT文件系统中的目录区缓存于RAM中,包括:
将所述目录区缓存划分为多个块,每个块分别缓存一个目录文件扇区的数据信息。
所述将目录区缓存的日志存储于NORFLASH中,包括:
将所述目录区缓存操作日志分为多条,每条对应一个扇区目录区缓存日志。
所述对所述FAT文件系统进行操作包括:对所述FAT文件系统进行加载。
根据所述操作结果更新所述RAM中和/或所述NORFLASH中的数据信息,包括:
当所述FAT文件系统上次正常卸载时,根据所加载的新的FAT文件系统更新所述NORFLASH中的引导信息;
当所述FAT文件系统上次未正常卸载时,将所述NORFLASH中对应扇区的FAT表日志和目录缓存日志设置为无效,并根据所加载的新的FAT文件系统更新所述NORFLASH中的引导信息。
还包括:当所述FAT文件系统上次未正常卸载时,将所述NORFLASH中的日志将所述NANDFLASH的数据恢复至卸载前。
所述对所述FAT文件系统中的文件进行操作包括:对所述FAT文件系统中的文件进行提取。
所述根据所述操作结果更新所述RAM中和/或所述NORFLASH中的数据信息,包括:
将所要提取的文件缓存至所述RAM中,更新NORFLASH中所述文件所占用RAM中对应缓存块的目录区缓存日志。
所述对所述FAT文件系统中的文件进行操作包括:对所述FAT文件系统中的文件进行读写。
所述根据所述操作结果更新所述RAM中和/或所述NORFLASH中的数据信息,包括:
将所要读取的文件所对应的FAT表扇区可拷贝至RAM中,更新NORFLASH中所要读取的文件所对应的FAT表占用RAM中对应缓存块的FAT表日志。
本发明实施例提供了一种实现文件分配表文件系统可靠性的装置,该装置包括:
RAM写入单元、NORFLASH写入单元、操作单元和更新单元,其中,
所述RAM写入单元,用于将所述FAT文件系统中的FAT表和目录区缓存于随机存取存储器RAM中
所述NORFLASH写入单元,用于将所述FAT表和所述目录区缓存的日志存储于NORFLASH中;
所述操作单元,用于对所述FAT文件系统或所述FAT文件系统中的文件进行操作;
所述更新单元,用于根据所述操作结果更新所述RAM中和/或所述NORFLASH中的数据信息。
与现有技术相比,本发明实施例提供的技术方案具有以下优点和特点:本发明实施例所提供技术方案,通过将FAT文件系统中的FAT表和目录区缓存于可无限次擦除RAM中,和将FAT表和目录区缓存的日志存储于可编程的NORFLASH中,使得FAT表区和目录区频繁改变时,不影响NANDFLASH的使用寿命,且由于FAT表和目录区缓存的日志均保存于NORFLASH中,相应也提高了FAT文件的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所涉及的一种实现FAT文件系统可靠性的方法流程图;
图2为本发明实施例所涉及的另一种实现FAT文件系统可靠性的装置结构示意图;
图3为本发明实施例所涉及的另一种实现FAT文件系统可靠性的装置结构示意图;
图4为本发明实施例所涉及的一种FAT文件系统相关数据存储流程示意图;
图5为本发明实施例所涉及的一种RAM存储结构示意图;
图6为本发明实施例所提供的一种FAT表缓存块存储结构示意图;
图7为本发明实施例所提供的一种NOR FLASH存储结构示意图;
图8为本发明实施例所提供的一种引导信息区存储结构示意图;
图9为本发明实施例所提供的一种FAT表日志区存储结构示意图;
图10为本发明实施例所提供的一种FAT文件系统加载流程示意图;
图11为本发明实施例所提供的一种FAT文件系统中文件提取流程图;
图12为本发明实施例所提供的一种FAT文件系统中文件读取流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种实现FAT文件系统可靠性的方法,该方法包括如图1所示步骤:
步骤101:将所述FAT文件系统中的FAT表和目录区缓存于随机存取存储器RAM中;
步骤102:将所述FAT表和所述目录区缓存的日志存储于NORFLASH中;
步骤103:对所述FAT文件系统或所述FAT文件系统中的文件进行操作,根据所述操作结果更新所述RAM中和/或所述NOR FLASH中的数据信息。
本发明实施例所提供的一种实现FAT文件系统可靠性的方法,通过将FAT文件系统中的FAT表和目录区缓存于可无限次擦除RAM中,和将FAT表和目录区缓存的日志存储于可编程的NORFLASH中,使得FAT表区和目录区频繁改变时,不影响NANDFLASH的使用寿命,且由于FAT表和目录区缓存的日志均保存于NORFLASH中,相应也提高了FAT文件的可靠性。
相应地,本发明实施例还提供了一种实现FAT文件系统可靠性的装置,该装置包括如图2所示结构:RAM写入单元201、NORFLASH写入单元202、操作单元203和更新单元204,其中:
RAM写入单元201,用于将所述FAT文件系统中的FAT表和目录区缓存于随机存取存储器RAM中
NORFLASH写入单元202,用于将所述FAT表和所述目录区缓存的日志存储于NORFLASH中;
操作单元203,用于对所述FAT文件系统或所述FAT文件系统中的文件进行操作;
更新单元204,用于根据所述操作结果更新所述RAM中和/或所述NORFLASH中的数据信息。
本发明实施例所提供的一种实现FAT文件系统可靠性的装置,通过将FAT文件系统中的FAT表和目录区缓存于可无限次擦除RAM中,和将FAT表和目录区缓存的日志存储于可编程的NORFLASH中,使得FAT表区和目录区频繁改变时,不影响NANDFLASH的使用寿命,且由于FAT表和目录区缓存的日志均保存于NORFLASH中,相应也提高了FAT文件的可靠性。
本发明实施例提供了一种实现FAT文件系统可靠性的方法,在本实施例中,利用RAM、NORFLASH将NANDFLASH上相关数据信息进行存储,基于此,将RAM、NORFLASH和NANDFLASH组成一个整体存储器,其结构如图3所示,当以此结构为基础执行本发明所提供的技术方案时,可首先执行如图4所示流程,包括:
步骤401:将NANDFLASH中FAT文件系统的相关数据信息读至RAM中;
在步骤401中,可将用于存储NANDFLASH中FAT文件系统的相关数据信息的RAM划分为5个区域,其中,在本实施例中,该5个区域分别为:引导扇区缓存、文件系统信息扇区缓存、FAT表缓存、目录文件缓存以及文件缓存,具体结构可如图5所示。
在上述5个区域中,引导扇区缓存和文件系统信息扇区缓存,用户保存FAT文件系统中引导扇区和文件系统信息扇区的部分数据。其中,包括:FAT文件系统各数据区的起始地址、各个簇的大小、各个扇区的大小、FLASH容量以及根目录的簇地址等。这些数据为文件的搜索、簇地址到物理地址的转换提供了重要的信息。另外需要说明的是,上述数据信息在FAT文件系统的使用过程中可以一直缓存在该RAM中,以提高文件系统的文件操作效率。
FAT表缓存,该部分可以根据实际应用情况分为多个块,例如根据FAT文件系统中FAT表的扇区个数进行块的划分。其中,每个块又可按照图6所示结构进行划分,包括:当前扇区号、修改标志、扇区数据、其对应的日志偏移地址、被加载时间、使用次数等。其中,当前扇区号所存储内容为缓冲的扇区在NANDFLASH中的扇区地址,修改标记所存储的内容可以表示该扇区从NANDFLASH拷贝到RAM后扇区内的数据是否发生变化,在本实施例中,可以通过“0”或“1”来表示数据是否发生变化,例如,当修改标记为“0”时,可以表示该扇区从NANDFLASH拷贝到RAM后扇区内的数据未发生变化,而当修改标记为“1”时,可以表示该扇区从NANDFLASH拷贝到RAM后扇区内的数据发生了变化。根据该标记,系统可以决定当该扇区被解除命中后,是否需要将数据写回NANDFLASH中,当修改标记表示该扇区的数据未发生变化时,无需将该扇区内的数据写入NANDFLASH中,而当修改标记表示该扇区的数据发生了变化时,将该扇区内的数据写回NANDFLASH中。需要说明的是,通常情况下,FAT表缓存中所划分的块的数量要远小于FAT表的扇区数,这样,当系统需要缓存新的FAT表的扇区,而FAT表缓存已全部被使用时,系统可以根据各块被加载的时间和被使用的次数将相应缓存块进行置换,例如,可以根据各块被加载的时间和被使用的次数,查找到最近最少使用的缓存块,将所要缓存的新的FAT表的扇区保存至该缓存块中。
目录文件缓存,该部分同FAT表缓存一样,可以被划分为多个块,并且每块用于维护一个目录文件扇区,其中,在进行块的结构的划分时,可以采用与FAT表缓存相一致的结构,包括:当前扇区号、修改标志、扇区数据、其对应的日志偏移地址、被加载时间、使用次数等。其中,当前扇区号所存储内容为缓冲的扇区在NANDFLASH中的扇区地址,修改标记所存储的内可以表示该扇区从NANDFLASH拷贝到RAM后扇区内的数据是否发生变化,在本实施例中,同样可以“0”或“1”来表示数据是否发生变化,例如,当修改标记为“0”时,可以表示该扇区从NANDFLASH拷贝到RAM后扇区内的数据未发生变化,而当修改标记为“1”时,可以表示该扇区从NANDFLASH拷贝到RAM后扇区内的数据发生了变化。根据该标记,系统可以决定当该扇区被解除命中后,是否需要将数据写回NANDFLASH中。需要说明的是,在目录文件缓存中,同样存在所划分的块的数量远小于目录文件扇区数,在这种情况下,同样可以采用将最近最少使用的块进行置换的方法来将新的目录文件进行缓存。
步骤402:将NANDFLASH中FAT文件系统的相关数据信息读至NORFLASH中;
在步骤402中,可将用于存储NANDFLASH中FAT文件系统的相关数据信息的NORFLASH划分为3个区域,其中,在本实施例中,该3个区域可分别为:引导信息区、FAT表日志区和目录日志区,具体结构如图7所示。
按照上述划分结果,在本实施例中,引导信息区保存着多条与NORFLASH存储结构相关的引导信息,具体结构如图8所示,每条引导信息包括版本号、FAT表日志区起始地址、FAT表日志区容量、FAT表有效日志的存放起始地址、目录日志区起始地址、目录日志区容量和目录日志区有效日志的存放起始地址等。其中,版本号可以用于表示引导信息的新旧程度,并且整个引导信息区可以采用循环队列的形式进行管理,也就是说,新的引导信息插入到旧的引导信息之后,另外,版本号可以采用一个循环序列来表示。
FAT表日志区,该区域用于保存多条FAT表的修改日志,其中,每条修改日志可以包括如图9所示结构的内容:日志序号、扇区号、同一扇区上一个日志的偏移地址、修改起始位置在扇区中的偏移、数据长度、数据内容、日志有效标志和日志结束标志等。其中,日志序号用于表示日志更新的次数,例如可以采用每更新一次,日志序号增加1的方式来进行表示,因此,日志序号越大表示日志越新。扇区号用于表示该日志所属的扇区在NANDFLASH中的扇区号,并可根据实际NANDFLASH的扇区个数来进行扇区号长度的设定,例如,可将扇区号的长度设置为4个字节。同一个扇区上一个日志的偏移地址,用于指向属于同一个扇区上的一个有效日志,例如可占用4个字节来表示该项。修改起始位置在扇区中的偏移,用于表示日志中的数据在NANDFLASH中该扇区的偏移地址,并且根据对应的扇区号和偏移地址,用户可以获知NANDFLASH中数据被修改的位置。另外,数据长度,用于表示被修改的数据的长度,通常情况下,由于NANDFLASH中一次被修改的数据量是有限的,因此数据内容的长度可以根据实际的应用设置一个上限,例如20个字节等。日志有效标识,用于表示该条日志是否有效,其中,当该日志处于未编程状态时,例如该项标为0xFF时,表示该条日志有效,而当该日志处于编程状态时,例如该项标为0xAA55时,表示该条日志无效。日志结束标志,可以用于表示该条日志在记录时是否发生异常,导致日志不完整,从而造成该条日志无效,在本实施例中,当日志结束标识标为0xAA55时,可以表示进行该条日志的记录时发生了异常。
目录日志区,该区域用于保存多条目录扇区的修改日志。每条日志可以包括:日志序号、扇区号、统一上去上日志的偏移地址、修改起始位置在扇区中的偏移、数据长度、数据内容、日志有效标志以及日志结束标志等。其中,目录日志区同FAT表日志区相类似,其中的日志序号表示该目录日志更新的次数,例如可以采用每更新一次,日志序号增加1的方式来进行表示,因此,日志序号越大表示日志越新。扇区号用于表示该日志所属的扇区在NANDFLASH中的扇区号,并可根据实际NANDFLASH的扇区个数来进行扇区号长度的设定,例如,可将扇区号的长度设置为4个字节。同一个扇区上一个日志的偏移地址,用于指向属于同一个扇区打上的一个有效日志,例如可占用4个字节来表示该项。修改起始位置在扇区中的偏移,用于表示日志中的数据在NANDFLASH中该扇区的偏移地址,并且根据对应的扇区号和偏移地址,用户可以获知NANDFLASH中数据被修改的位置。另外,数据长度,用于表示被修改的数据的长度,通常情况下,由于NANDFLASH中一次被修改的数据量是有限的,因此数据内容的长度可以根据实际的应用设置一个上限,例如20个字节等。日志有效标识,用于表示该条日志是否有效,其中,当该日志处于未编程状态时,例如该项标为0xFF时,表示该条日志有效,而当该日志处于编程状态时,例如该项标为0xAA55时,表示该条日志无效。日志结束标志,可以用于表示该条日志在记录时是否发生异常,导致日志不完整,从而造成该条日志无效,在本实施例中,当日志结束标识标为0xAA55时,可以表示进行该条日志的记录时发生了异常。
需要说明的是,步骤401和步骤402之间并没有严格的先后顺序,两者有可能是在同时进行,本实施例对该点不做任何限制。
在完成对NANDFLASH中相关数据的存储工作之后,可进行FAT文件系统的相关操作。
例如,当FAT文件系统被加载时,可采用如图10所示步骤来进行:
步骤1001:加载FAT文件系统;
步骤1002:判断FAT文件系统上次是否被正常卸载;
在步骤1002中,当FAT文件系统被加载时,将FAT表1中1号簇的非正常卸载标志置上,而FAT文件系统被卸载时,可以将该标志位置回,因此,系统可以FAT表1中的1号簇位置判断文件系统上次是否被正常卸载。如果该文件系统被正常卸载,则执行步骤1003;否则,执行步骤1005。
步骤1003:系统搜索引导信息区找到最新的引导信息,并根据该引导信息找出FAT表日志区和目录日志区的尾部;
在步骤1003中需要说明的是,如果FAT表日志区和目录日志区中各条日志全部完整,则可以根据各条日志的数据长度找到日志的尾部,而如果其中可能存在不完整的日志时,则可以通过假设日志的长度的方法来找到日志的尾部。
步骤1004:系统根据以上信息生成新的引导信息;
步骤1005:系统搜索引导信息区,找出最新的引导信息。
步骤1006:系统根据该信息找出NORFLASH所有有效且完整的日志。并根据该日志中所记录的扇区号,将NANDFLASH中相应的扇区读取到RAM中,并将属于同一扇区的日志按照一定的顺序修改加载的扇区,使该扇区的数据恢复到断电前一次成功的写操作的状态。同时,系统将这些日志置为无效。
步骤1007:系统在引导信息区生成新的引导信息。
当用户需要提取文件时,可采用如图11所示步骤来进行:
步骤1101:系统根据用户输入的文件路径搜索出路径中该文件所在的扇区;
步骤1102:将所搜索到的文件拷贝到RAM中目录文件缓存中的一个块。
在步骤1101中,如果目录文件缓存已满,则可以采用前面所述的置换算法,将目录文件缓存中的一个块进行置换,用于进行该扇区的缓存。在进行目录文件缓存块的置换时,需要注意的是,由于被置换的缓存块要缓存入新的扇区,因此该缓存块中原有的数据需要进行相应处理:由前面描述可以得知,当原有的数据在进行缓存后发生了变化,则系统将该缓存块的数据写回到NANDFLASH中对应的扇区内,并将NORFLASH中该缓存块所对应的目录区缓存日志设置为无效,之后系统将新扇区的数据缓存至该缓存块中,并修改该缓存块的目录区缓存日志;而当原有的数据在进行缓存后未发生变化,则系统直接将新扇区中的数据缓存至该缓存块中,并修改该缓存块的目录区缓存日志。
当用户需要执行文件的读写操作时,可按照图12所示步骤来进行:
步骤1201:系统根据文件指针及其偏移找出被操作区域的扇区以及该扇区所对应的FAT表扇区。
步骤1202:系统将对应的FAT表扇区拷贝至FAT表缓存中的一个缓存块中;
在步骤1202中,如果FAT表缓存已满,则可采用前面所述的置换算法,将FAT表缓存中的一个块进行置换,用于进行该扇区的缓存。在进行FAT表缓存块的置换时,需要注意的是,由于被置换的缓存块要缓存入新的扇区,因此该缓存块中原有的数据需要进行相应处理:由前面描述可以得知,当原有的数据在进行缓存后发生了变化,则系统将该缓存块的数据写回到NANDFLASH中对应的扇区内,并将NORFLASH中该缓存块所对应的FAT表日志设置为无效,之后系统将新扇区的数据缓存至该缓存块中,并修改该缓存块的FAT表日志;而当原有的数据在进行缓存后未发生变化,则系统直接将新扇区中的数据缓存至该缓存块中,并修改该缓存块的FAT表日志。
步骤1203:用户在RAM缓存中对相关数据进行读写操作。
由于被操作扇区的数据都拷贝到文件缓存中,因此用户的所有读写操作都可在RAM缓存中进行。
另外,需要注意的是,当文件缓存中的数据量达到一定数量时,或者用户更改被操作区域时,系统根据FAT表的簇分配规则,为文件缓存中的数据分配相应的簇,并将该数据写回执NANDFLASH中。完成此操作后,系统修改该FAT缓存中的FAT表和目录缓存中的目录。并在NORFLASH中进行相应记录。如果该数据写回已分配有簇的扇区中,则只修改目录中的文件大小,并对该操作进行记录。
需要说明的是,用户完成对文件的操作后,系统释放文件缓存中的数据。而由于FAT表和目录文件的信息密度比较大,这些数据很有可能会被下一文件使用,因此系统并不释放FAT缓存和目录文件缓存中的块。
另外,在低负荷情况下,如果NORFLASH中某个扇区内都是无效日志,则可以对该扇区进行擦除。或者,当RAM缓存中超过一定驻留时间和在较长一段时间内未使用的数据写回至NANDFLASH中,此时还需要将NORFLASH中对应的日志设置为无效,以提高FAT扇区和目录扇区缓存的效率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM(Read-Only Memory,只读存储记忆体)、RAM(RandomAccess Memory,随机存储记忆体)、磁碟或者光盘等各种可以存储程序代码的介质。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (13)

1.一种实现文件分配表FAT文件系统可靠性的方法,其特征在于,将所述FAT文件系统中的FAT表和目录区缓存于随机存取存储器RAM中,将所述FAT表和所述目录区缓存的日志存储于NOR FLASH中之后,包括:
对所述FAT文件系统或所述FAT文件系统中的文件进行操作,根据所述操作结果更新所述RAM中和/或所述NOR FLASH中的数据信息。
2.根据权利要求1所述的方法,其特征在于,所述将FAT文件系统中的FAT表缓存于RAM中,包括:
将所述FAT表缓存划分为多个块,每个块分别缓存FAT表中一个扇区的数据信息。
3.根据权利要求2所述的方法,其特征在于,所述将FAT表的日志存储于NOR FLASH中,包括:
将所述FAT表操作日志分为多条,每条对应一个扇区FAT表的日志。
4.根据权利要求1所述的方法,其特征在于,所述将FAT文件系统中的目录区缓存于RAM中,包括:
将所述目录区缓存划分为多个块,每个块分别缓存一个目录文件扇区的数据信息。
5.根据权利要求4所述的方法,其特征在于,所述将目录区缓存的日志存储于NOR FLASH中,包括:
将所述目录区缓存操作日志分为多条,每条对应一个扇区目录区缓存日志。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述对所述FAT文件系统进行操作包括:对所述FAT文件系统进行加载。
7.根据权利要求6所述的方法,其特征在于,根据所述操作结果更新所述RAM中和/或所述NOR FLASH中的数据信息,包括:
当所述FAT文件系统上次正常卸载时,根据所加载的新的FAT文件系统更新所述NOR FLASH中的引导信息;
当所述FAT文件系统上次未正常卸载时,将所述NOR FLASH中对应扇区的FAT表日志和目录缓存日志设置为无效,并根据所加载的新的FAT文件系统更新所述NOR FLASH中的引导信息。
8.根据权利要求7所述的方法,其特征在于,还包括:当所述FAT文件系统上次未正常卸载时,将所述NOR FLASH中的日志将所述NAND FLASH的数据恢复至卸载前。
9.根据权利要求1至5中任一项所述的方法,其特征在于,所述对所述FAT文件系统中的文件进行操作包括:对所述FAT文件系统中的文件进行提取。
10.根据权利要求9所述的方法,其特征在于,所述根据所述操作结果更新所述RAM中和/或所述NOR FLASH中的数据信息,包括:
将所要提取的文件缓存至所述RAM中,更新NOR FLASH中所述文件所占用RAM中对应缓存块的目录区缓存日志。
11.根据权利要求1至5中任一项所述的方法,其特征在于,所述对所述FAT文件系统中的文件进行操作包括:对所述FAT文件系统中的文件进行读写。
12.根据权利要求11所述的方法,其特征在于,所述根据所述操作结果更新所述RAM中和/或所述NOR FLASH中的数据信息,包括:
将所要读取的文件所对应的FAT表扇区可拷贝至RAM中,更新NORFLASH中所要读取的文件所对应的FAT表占用RAM中对应缓存块的FAT表日志。
13.一种实现FAT文件系统可靠性的装置,其特征在于,包括RAM写入单元、NOR FLASH写入单元、操作单元和更新单元,其中,
所述RAM写入单元,用于将所述FAT文件系统中的FAT表和目录区缓存于随机存取存储器RAM中
所述NOR FLASH写入单元,用于将所述FAT表和所述目录区缓存的日志存储于NOR FLASH中;
所述操作单元,用于对所述FAT文件系统或所述FAT文件系统中的文件进行操作;
所述更新单元,用于根据所述操作结果更新所述RAM中和/或所述NORFLASH中的数据信息。
CN2010100029213A 2010-01-08 2010-01-08 一种实现文件分配表文件系统可靠性的方法和装置 Expired - Fee Related CN101763426B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010100029213A CN101763426B (zh) 2010-01-08 2010-01-08 一种实现文件分配表文件系统可靠性的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010100029213A CN101763426B (zh) 2010-01-08 2010-01-08 一种实现文件分配表文件系统可靠性的方法和装置

Publications (2)

Publication Number Publication Date
CN101763426A true CN101763426A (zh) 2010-06-30
CN101763426B CN101763426B (zh) 2011-12-28

Family

ID=42494590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010100029213A Expired - Fee Related CN101763426B (zh) 2010-01-08 2010-01-08 一种实现文件分配表文件系统可靠性的方法和装置

Country Status (1)

Country Link
CN (1) CN101763426B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102254048A (zh) * 2011-08-24 2011-11-23 深圳市万兴软件有限公司 数据恢复方法和系统
CN102541969A (zh) * 2011-03-29 2012-07-04 深圳市江波龙电子有限公司 基于fat文件系统的文件保护方法、系统及存储器
CN107608636A (zh) * 2017-09-28 2018-01-19 江苏沁恒股份有限公司 一种基于fat文件系统的设计方法及其应用的数据采集装置
CN109976678A (zh) * 2019-04-08 2019-07-05 武汉海阔科技有限公司 存储方法及设备
CN110286859A (zh) * 2019-06-28 2019-09-27 中国海洋大学 基于fat文件系统的数据存储方法及装置
CN111367474A (zh) * 2020-03-02 2020-07-03 湖南师范大学 面向嵌入式存储器的fat文件系统后分配方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029125A (en) * 1989-03-07 1991-07-02 Drexler Technology Corporation Method of reading and writing files on nonerasable storage media
CN100454343C (zh) * 2006-01-18 2009-01-21 成都前锋电子电器集团股份有限公司 税控收款机数据存储系统
CN101526922B (zh) * 2009-04-03 2011-09-07 深圳市宝捷信科技有限公司 一种闪存的数据存取方法及装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541969A (zh) * 2011-03-29 2012-07-04 深圳市江波龙电子有限公司 基于fat文件系统的文件保护方法、系统及存储器
CN102541969B (zh) * 2011-03-29 2015-04-29 深圳市江波龙电子有限公司 基于fat文件系统的文件保护方法、系统及存储器
CN102254048A (zh) * 2011-08-24 2011-11-23 深圳市万兴软件有限公司 数据恢复方法和系统
CN102254048B (zh) * 2011-08-24 2012-10-03 深圳市万兴软件有限公司 数据恢复方法和系统
CN107608636A (zh) * 2017-09-28 2018-01-19 江苏沁恒股份有限公司 一种基于fat文件系统的设计方法及其应用的数据采集装置
CN109976678A (zh) * 2019-04-08 2019-07-05 武汉海阔科技有限公司 存储方法及设备
CN109976678B (zh) * 2019-04-08 2022-05-13 武汉海阔科技有限公司 存储方法及设备
CN110286859A (zh) * 2019-06-28 2019-09-27 中国海洋大学 基于fat文件系统的数据存储方法及装置
CN110286859B (zh) * 2019-06-28 2020-04-14 中国海洋大学 基于fat文件系统的数据存储方法及装置
CN111367474A (zh) * 2020-03-02 2020-07-03 湖南师范大学 面向嵌入式存储器的fat文件系统后分配方法及系统

Also Published As

Publication number Publication date
CN101763426B (zh) 2011-12-28

Similar Documents

Publication Publication Date Title
CN107656875B (zh) 作为系统盘的固态硬盘缩短上电时间的方法及系统
CN103080910B (zh) 存储系统
CN101763426B (zh) 一种实现文件分配表文件系统可靠性的方法和装置
CN102693184B (zh) 处理具有非易失性存储器的系统的动态和静态数据
EP1739535B1 (en) File system storing transaction records in flash-like media
CN100419714C (zh) 闪存存取方法、闪存文件系统的块替换方法及其管理装置
KR100484147B1 (ko) 플래시 메모리 관리 방법
JP4836217B2 (ja) フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム
US8612719B2 (en) Methods for optimizing data movement in solid state devices
US8499013B2 (en) FAT directory structure for use in transaction safe file system
US8959125B2 (en) File system having inverted hierarchical structure
CN101382918B (zh) 一种基于数据交换区的NAND Flash闪存优化管理方法
CN100501868C (zh) 基于NAND Flash存储器文件系统的实现方法
CN102999431A (zh) 用于非易失性存储器系统的编织序列计数器
US20040193564A1 (en) Robust, self-maintaining file system
CN101853275A (zh) 一种fat文件系统的数据管理方法和系统
KR20070003578A (ko) 데이터 무결성의 검증을 지연시킨 파일 시스템
CN101488153A (zh) 嵌入式Linux下大容量闪存文件系统的实现方法
CN102135942A (zh) 一种存储设备中实现损耗均衡的方法及存储设备
KR20070096429A (ko) 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템
CN103996412A (zh) 一种用于智能卡非易失性存储器的掉电保护方法
CN100454302C (zh) 一种文件管理系统及管理方法
CN104516959A (zh) 一种管理数据库日志的方法及装置
CN105069002A (zh) 采用不同类型的存储介质的闪存文件系统及其数据存储方法
CN105045850A (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111228

Termination date: 20190108