CN101526927B - Flash文件***的数据处理方法及数据处理装置 - Google Patents

Flash文件***的数据处理方法及数据处理装置 Download PDF

Info

Publication number
CN101526927B
CN101526927B CN2008101015352A CN200810101535A CN101526927B CN 101526927 B CN101526927 B CN 101526927B CN 2008101015352 A CN2008101015352 A CN 2008101015352A CN 200810101535 A CN200810101535 A CN 200810101535A CN 101526927 B CN101526927 B CN 101526927B
Authority
CN
China
Prior art keywords
block
flash file
mapping
map addresses
file system
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.)
Active
Application number
CN2008101015352A
Other languages
English (en)
Other versions
CN101526927A (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.)
BEIJING HUAHONG INTEGRATED CIRCUIT DESIGN Co Ltd
Original Assignee
BEIJING HUAHONG INTEGRATED CIRCUIT DESIGN Co Ltd
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 BEIJING HUAHONG INTEGRATED CIRCUIT DESIGN Co Ltd filed Critical BEIJING HUAHONG INTEGRATED CIRCUIT DESIGN Co Ltd
Priority to CN2008101015352A priority Critical patent/CN101526927B/zh
Publication of CN101526927A publication Critical patent/CN101526927A/zh
Application granted granted Critical
Publication of CN101526927B publication Critical patent/CN101526927B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供了一种Flash文件***的数据处理方法,所述Flash文件***包括地址映射块,所述地址映射块记录有Flash文件中所有逻辑块与物理块的映射关系,所述方法包括:依据Flash文件的更新请求,在Flash文件***的物理块中查找第一空闲块,在所述第一空闲块中写入更新的Flash文件;在所述Flash文件***的物理块中继续查找第二空闲块,在所述第二空闲块中写入更新的地址映射块,第二空闲块具体为Flash文件***中第二个空闲的物理块。本发明可以在掉电保护的基础上,以较低的***开销实现Flash的磨损均衡的功能。

Description

Flash文件***的数据处理方法及数据处理装置 
技术领域
本发明涉及Flash文件***的数据处理领域,特别是涉及一种Flash文件***的数据处理方法及一种Flash文件***的数据处理装置。 
背景技术
Flash文件***(Flash File System,FFS)是采用Flash作为外存储器实现的文件***。Flash是非易失存储器,目前正逐步取代其它半导体存储器件而广泛应用于移动电话、PDA以及数码相机等移动电子产品中。其作为存储数据和应用程序的存储体,可以将大量数据方便、快捷地移动和交换。 
Flash内部分为多个存储单元块(block),每个存储单元块又由多个页(page)组成。存储单元块是可擦除的最小单位,页是数据处理数据的最小单位。Flash存储器读取数据与一般的存储器类似,可以实现随机读取。而Flash存储器的写操作则和一般的存储器有所不同,Flash的写操作必须先按存储单元块擦除(例如,数据处理0xff到要擦除的存储单元块中),再按页的顺序数据处理。例如,假设一个存储单元块上保存着512字节的数据,现在需要修改该存储单元块的第1个字节,过程如下: 
1)擦除该存储单元块; 
例如,将所述存储单元块上所有的字节都更改为0xff。 
2)在该存储单元块的第1字节中写入新数据,并在向该存储单元块的其它511个字节中写入旧数据。 
这个过程需要一定的时间来完成,如果在这个过程中突然掉电,则会出现数据丢失的问题,所以,解决掉电后数据恢复,即掉电保护的问题是Flash的关键技术之一。 
再者,由于Flash有一定的使用寿命,一般存储单元块的可擦除次数为10~100万次,所以随着使用次数的增加,会有一些块逐渐变得不稳定或失败。因此,要尽量避免频繁地对同一块操作,以免造成Flash的提 前损坏,即解决磨损均衡的问题是Flash的关键技术之二。 
现有技术中,出于以上掉电保护和磨损均衡的需要,对Flash的某一块进行修改时,通常不会直接对该块进行擦写操作,而是另外找一块没有使用的空闲块,将新数据数据处理该空闲块中;然后将旧块标记为无效,对上级的链接项进行修改,使其指向新块。然而,在这种情况下,对于本来只想修改一块的内容,却不得不逐级向上修改很多块的内容,不仅增加了时间成本,还过多占用***资源,造成较大的***开销。 
如授权公告号为CN1266614C的中国专利文件就公开了一种在Flash文件***中加快逻辑块映射速度的方法,用于提高查找数据块的速度。具体技术方案为:在数据块的状态表项区中保存逻辑块与数据块的映射信息,数据块的数据区中保存与其映射的逻辑块的内容。包括: 
建立一个由表项组成的反向映射表,一个表项对应一个逻辑块; 
在***初始化过程中,将数据块状态表项区中记录的映射信息,按逻辑块号与表项间的对应关系读取到各表项中; 
读取某逻辑块时,以其逻辑块号作为表项索引查找反向映射表,定位到表项,根据表项中记录的映射信息,在Flash存储器件中查找到数据块; 
写入某逻辑块时,将更新数据写入一新数据块的空白数据区中和将该逻辑块与新数据块间的映射信息写入状态表项区中,同时更新反向映射表相应表项的映射信息。 
可以看出,该方案通过将逻辑块号和物理块号的映射关系分散存储到每个块中,开机后需要对全片范围进行扫描,然后才能在内存中构建完整的逻辑块号和物理块号的映射表,需要付出较大的***开销,并且会导致开机启动时间过长,内存占用较多的问题。 
总之,目前需要本领域技术人员迫切解决的一个技术问题就是:如何能够创新的提出一种Flash文件***的数据处理机制,用以在掉电保护的基础上,以较低的***开销实现Flash的磨损均衡的功能。 
发明内容
本发明所要解决的技术问题是提供一种Flash文件***的数据处理方法,以在掉电保护的基础上,以较低的***开销实现Flash的磨损均衡的功能。 
本发明的另一个目的是将上述构思应用于具体的应用环境中,提供一种Flash文件***的数据处理装置,从而保证该方法的实现和应用。 
为解决上述技术问题,本发明实施例提供了一种Flash文件***的数据处理方法,所述Flash文件***包括地址映射块,所述地址映射块记录有Flash文件中所有逻辑块与物理块的映射关系,所述方法包括: 
依据Flash文件的更新请求,在Flash文件***的物理块中查找第一空闲块,在所述第一空闲块中写入更新的Flash文件; 
在所述Flash文件***的物理块中继续查找第二空闲块,在所述第二空闲块中写入更新的地址映射块,第二空闲块具体为Flash文件***中第二个空闲的物理块。 
优选的,所述地址映射块还记录有版本信息、写入完成标识和有效标识信息,所述写入更新地址映射块的步骤包括: 
生成所述更新地址映射块的版本信息; 
写入所述更新Flash文件中相应的逻辑块与第一空闲块的映射关系; 
写入原始地址映射块中未更新的逻辑块与物理块的映射关系; 
对所述更新地址映射块标记写入完成标识; 
在所述更新地址映射块中记录有效标识,以及,在所述原始地址映射块中记录无效标识。 
优选的,所述的方法,还包括: 
依据当前具有有效标识的地址映射块的数量,判断是否发生了意外掉电。 
优选的,通过以下步骤判断是否发生意外掉电: 
若当前仅有一个具有有效标识的地址映射块,则判断未发生意外掉电; 
若当前有两个具有有效标识的地址映射块,则判断发生了意外掉电。 
优选的,所述的方法,还包括: 
如果发生意外掉电,则在复位后搜索所述更新地址映射块的写入完成标识,若有,则依据所述更新的地址映射块恢复新数据;若没有,则 依据所述原始地址映射块恢复旧数据。 
优选的,在依据所述原始地址映射块恢复旧数据时,所述的方法还包括: 
擦除所述更新地址映射块。 
优选的,通过以下步骤查找空闲块:依据所述地址映射块中记录的逻辑块与物理块的映射关系查找空闲块。 
本发明实施例还公开了一种Flash文件***的数据处理装置,所述Flash文件***包括地址映射块,所述地址映射块记录有Flash文件中所有逻辑块与物理块的映射关系,所述装置包括: 
第一空块查找模块,用于依据Flash文件的更新请求,在Flash文件***的物理块中查找第一空闲块; 
第一写入模块,用于在所述第一空闲块中写入更新的Flash文件; 
第二空块查找模块,用于在所述Flash文件***的物理块中继续查找第二空闲块,第二空闲块具体为Flash文件***中第二个空闲的物理块; 
第二写入模块,用于在所述第二空闲块中写入更新的地址映射块。 
优选的,所述地址映射块还记录有版本信息、写入完成标识和有效标识信息,所述第二写入模块包括: 
版本更新子模块,用于生成所述更新地址映射块的版本信息; 
映射更新子模块,用于写入所述更新Flash文件中相应的逻辑块与第一空闲块的映射关系; 
映射保留子模块,用于写入原始地址映射块中未更新的逻辑块与物理块的映射关系; 
完成标识子模块,用于对所述更新地址映射块标记写入完成标识; 
有效标识子模块,用于在所述更新地址映射块中记录有效标识,以及,在所述原始地址映射块中记录无效标识。 
优选的,所述的装置,还包括: 
掉电判断模块,用于依据当前具有有效标识的地址映射块的数量,判断是否发生意外掉电。 
优选的,所述的装置,还包括: 
复位搜索模块,用于在掉电复位后搜索所述更新地址映射块的写入完成标识,若有,则触发新数据恢复模块;若没有,则触发旧数据恢复模块; 
新数据恢复模块,用于依据所述更新的地址映射块恢复新数据; 
旧数据恢复模块,用于依据所述原始地址映射块恢复旧数据。 
优选的,所述的装置,还包括: 
擦除模块,用于在依据所述原始地址映射块恢复旧数据时,擦除所述更新地址映射块。 
与现有技术相比,本发明具有以下优点: 
首先,本发明基于记录有Flash文件中所有逻辑块与物理块的映射关系的地址映射块,在所述Flash文件***的整个物理块中循环处理数据,具体为,在更新文件的某块数据时,不对其物理块进行修改,而通过查找另外的空闲块,在该空闲块中写入更新文件,然后再依据该块数据的新的地址映射关系来生成新的地址映射块。处理后,旧数据所在的物理块从使用中的物理块变成了空闲块,而新数据所在的物理块从空闲块变成了使用中的物理块,可以看出,这种数据处理方法不会使某个物理块存在特别的、多于其它物理块的擦写次数,因而很好地实现了整个Flash的磨损均衡功能。 
再者,本发明通过在地址映射块中进一步记录版本信息、写入完成标识和有效标识信息,结合以上数据处理方法,来监控掉电的情况以及进行掉电复位后的数据恢复操作,即可进一步保证在掉电保护的基础上,以非常小的***开销来实现Flash的磨损均衡功能。 
附图说明
图1是本发明的一种Flash文件***的数据处理方法实施例1的流程图; 
图2是本发明的一种Flash文件***的数据处理方法实施例2的流程图; 
图3是本发明的一种Flash文件***的数据处理方法实施例3的流程图; 
图4是一个具体实例中数据处理初始状态的示意图; 
图5是一个具体实例中数据处理过程中执行完第1步的示意图; 
图6是一个具体实例中数据处理过程中执行完第2步的示意图; 
图7是一个具体实例中数据处理过程中执行完第3步的示意图; 
图8是一个具体实例中数据处理过程中执行完第4步的示意图; 
图9是本发明的一种Flash文件***的数据处理装置实施例的结构框图; 
图10是应用图9所示的优选实施例进行Flash文件***的数据处理的方法流程图。 
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。 
一般来说,整个Flash文件***可以分为两个层次,第一层用于直接和物理硬件接触,管理Flash物理存储器;第二层用于在基层之上,实现文件管理,如实现FAT。本发明实施例主要涉及Flash文件***第一层的相关内容。 
本发明实施例的核心构思之一在于,创建记录有Flash文件中所有逻辑块与物理块的映射关系的地址映射块,在所述Flash文件***的整个物理块中循环处理数据,具体为,在更新文件的某块数据时,不对其物理块进行修改,而通过查找另外的空闲块,在该空闲块中写入更新文件,然后再依据该块数据的新的地址映射关系来生成新的地址映射块。并进一步地,在地址映射块中记录版本信息、写入完成标识和有效标识信息,用以监控掉电情况并进行复位后的数据恢复操作,从而使本发明能在掉电保护的基础上,以较低的***开销实现Flash的磨损均衡的功能。 
参考图1,示出了本发明的一种Flash文件***的数据处理方法实施例1的流程图,所述Flash文件***包括地址映射块,所述地址映射块记录有Flash文件中所有逻辑块与物理块的映射关系,本实施例可以包括以下步骤: 
步骤101、依据Flash文件的更新请求,在Flash文件***的物理块中查找第一空闲块; 
步骤102、在所述第一空闲块中写入更新的Flash文件; 
步骤103、在所述Flash文件***的物理块中继续查找第二空闲块; 
步骤104、在所述第二空闲块中写入更新的地址映射块。 
可以看出,本发明的逻辑块可用于保存Flash文件的特定数据,为实现磨损均衡的功能,逻辑块与Flash文件***的物理块存在动态的映射关系,优选的,所述逻辑块与物理块的映射关系可以通过逻辑块号与物理块号的映射表来表示。在实际中,根据Flash的大小,所述地址映射块可以为多个。 
在本实施例中,所述空闲块可以依据所述地址映射块中记录的逻辑块与物理块的映射关系查找空闲块。 
例如,维护一个查找起始的物理块号n,开机后,将n初始化为0,查找第一空闲块的过程为: 
1)读出物理块号为n的逻辑块的第一个字节,假设为m; 
2)如果m等于0xff,则确定该块为第一空闲块; 
其中,0xff是现有技术中空闲块的状态标识。 
3)如果m不等于0xff,则在地址映射块中查找逻辑块号m对应的物理块号,假设为1; 
4)如果1不等于n,则确定该块为第一空闲块;否则,执行下一步; 
5)将n加1; 
6)如果n等于FLASH中物理块的数量,则n=0; 
7)返回步骤1)。 
在找到第一空闲块之后,保留n的值,下一次查找第二空闲块时则可以依据该n的值进行。 
当然,以上查找空闲块的过程仅仅作为一种示例,在实际中,本领域技术人员采用任一种查找空闲块的方法都是可行的,例如,在预置空闲块队列中按顺序选取相应的空闲块等,本发明对此无需作出限制。 
参考图2,示出了本发明的一种Flash文件***的数据处理方法实施例2的流程图,所述Flash文件***包括地址映射块,所述地址映射块记录有Flash文件中所有逻辑块与物理块的映射关系、版本信息、写入完成标识和有效标识信息,本实施例可以包括以下步骤: 
步骤201、依据Flash文件的更新请求,在Flash文件***的物理块 中查找第一空闲块; 
步骤202、在所述第一空闲块中写入更新的Flash文件; 
步骤203、在所述Flash文件***的物理块中继续查找第二空闲块; 
步骤204、在所述第二空闲块中写入更新的地址映射块。 
具体地,本步骤可以包括以下子步骤: 
子步骤2041、生成所述更新地址映射块的版本信息; 
子步骤2042、写入所述更新Flash文件中相应的逻辑块与第一空闲块的映射关系; 
子步骤2043、写入原始地址映射块中未更新的逻辑块与物理块的映射关系; 
子步骤2044、对所述更新地址映射块标记写入完成标识; 
子步骤2045、在所述更新地址映射块中记录有效标识,以及,在所述原始地址映射块中记录无效标识。 
例如,假设地址映射块的大小为512B,则某个地址映射块记录的内容可以参考下表: 
  字节   内容
  1   逻辑块号
  2   当前地址映射块标识
  3   版本信息
  4   映射表项1
  ......   ......
  510   映射表项507
  511   写入完成标识
  512   有效标识信息
其中,当前地址映射块标识是为了将地址映射块与其它块,如***信息块等区分开来而设置的,在具有多个地址映射块的情况下,所述当前地址映射块标识还可以包括区分不同地址映射块的序号信息。所述映射表项为逻辑块号与物理块号的映射表,即记录所述逻辑块与物理块的映射关系表;所述写入完成标识可以由本领域技术人员根据实际需要或经验任意设置,例如,设置0x00为写入完成标识;所述有效标识信息也 可任意设置,例如,设置0xFF为有效标识,其它值为无效标识等,本发明对此不作限制。 
以下以一个简单示例进一步说明本实施例。 
假设要修改逻辑块ln中的数据,对应物理块为pn,数据处理过程为: 
a)查找到物理块号为pm的空闲块; 
b)将修改后的新数据写入pm; 
c)查找到物理块号为p1的空闲块,在pl中写入更新的地址映射块Nmap。 
更新的地址映射块Nmap包括以下内容: 
c1)读取原始物理块pn的版本信息,依据该旧版本信息生成新版本信息,写入Nmap; 
c2)将需要修改的映射项,即,将原来ln-pn的映射项,修改为ln-pm的映射项,写入Nmap; 
c3)将原始地址映射块中其它的映射项写入Nmap; 
假设ln-pn的映射项对应上表的映射表项1,如果当前仅对该映射表项1进行了修改,则还要将其它未作修改的映射表项2-映射表项507写入新的地址映射块中。 
C4)将原始地址映射块的逻辑块号和当前地址映射块标识写入Nmap; 
C5)将Nmap的写入完成标识置为0x00; 
C6)将原始地址映射块的有效标识信息置为0x00,即无效标识。 
参考图3,示出了本发明的一种Flash文件***的数据处理方法实施例3的流程图,所述Flash文件***包括地址映射块,所述地址映射块记录有Flash文件中所有逻辑块与物理块的映射关系、版本信息、写入完成标识和有效标识信息,本实施例可以包括以下步骤: 
步骤301、依据Flash文件的更新请求,在Flash文件***的物理块中查找第一空闲块; 
步骤302、在所述第一空闲块中写入更新的Flash文件; 
步骤303、在所述Flash文件***的物理块中继续查找第二空闲块; 
步骤304、在所述第二空闲块中写入更新的地址映射块。 
优选的,本步骤可以包括以下子步骤: 
子步骤3041、生成所述更新地址映射块的版本信息; 
子步骤3042、写入所述更新Flash文件中相应的逻辑块与第一空闲块的映射关系; 
子步骤3043、写入原始地址映射块中未更新的逻辑块与物理块的映射关系; 
子步骤3044、对所述更新地址映射块标记写入完成标识; 
子步骤3045、在所述更新地址映射块中记录有效标识,以及,在所述原始地址映射块中记录无效标识。 
步骤305、依据当前具有有效标识的地址映射块的数量,判断是否发生意外掉电; 
优选的,可以通过以下子步骤判断是否发生意外掉电: 
子步骤3051、若当前仅有一个具有有效标识的地址映射块,则判断未发生意外掉电; 
子步骤3052、若当前有两个具有有效标识的地址映射块,则判断发生了意外掉电,触发步骤306; 
步骤306、在复位后搜索所述更新地址映射块的写入完成标识,若有,则执行步骤307;若没有,则执行步骤308; 
步骤307、依据所述更新的地址映射块恢复新数据; 
步骤308、依据所述原始地址映射块恢复旧数据,并擦除所述更新地址映射块。 
以下以一个简单示例进一步说明本实施例复位后的操作。 
应用本实施例,复位后将首先搜索整个FLASH文件***中所有的块,在所有的块中根据逻辑块号、地址映射块标识、有效标识信息来判断每个块是否为有效的地址映射块。在这种情况下, 
a、如果搜索到1个有效的地址映射块则认为没有发生意外掉电; 
b、如果搜索到2个有效的地址映射块则认为发生了意外掉电,则可以进行如下操作: 
b1)如果新地址映射块的写入完成标识为0x00(表示写入完成),则 接受新地址映射块,将旧地址映射块写为无效; 
b2)如果新地址映射块的写完成标识为其它(表示写入未完成),则接受旧地址映射块,擦除新地址映射块。 
在这种情况下,对于搜索到其它数量的有效地址映射块可以认为尚未构建文件***。 
需要说明的是,上述通过1个有效地址映射块判定没发生掉电,而通过2个有效地址判定发生掉电仅仅是一种示例,在实际中,根据地址映射块的数量,可能对应其它不同个数的情形,本发明对此不需要做出限定。 
以下结合上述方法实施例2和3的简单示例,简单说明掉电保护的实现原理: 
如果在实施例2的简单示例中的c4步骤完成之前意外掉电,复位搜索将搜索到1个地址映射块,此时将接受旧数据,即对旧数据进行恢复;如果在c4步骤完成之前意外掉电,复位搜索将搜索到2个地址映射块,由于新地址映射块尚未完成写入,此时仍将接受旧数据,即对旧数据进行恢复;如果在c6步骤完成之前意外掉电,复位搜索将搜索到2个地址映射块,此时新版本的地址映射块已经写入完成,将接受新数据,即对新数据进行恢复。 
以下通过一个具体例子对本发明进一步说明。 
参考图4所示的Flash文件***初始状态示意图,假设一个Flash文件***包括5个物理块,其初始状态为,第1块为地址映射块Map;第2块保存着文件1的数据,标记为File1;第3块保存着文件2的数据标记为File2;第4块和第5块为空闲块。 
在未更新之前,初始的地址映射块Map记录File1的映射关系可以为,L1-P2,即逻辑块1与物理块2对应;记录File2的映射关系可以为,L2-P32,即逻辑块2与物理块3对应。 
1、如果要更新修改File1,则第一步找到新的空闲块(即第4块),将File1的新数据NewFile1写入第4块;此时第2块上,File1的旧数据仍然在第2块。本步骤处理的示意图如图5所示。 
可以理解的是,经过步骤1的处理,File1对应的逻辑块与物理块的映射关系发生了改变,即从原来的L1-P2,变成了现在的L1-P4。在这种情况下,则需要生成一个新的地址映射块来记录更新的映射关系。 
2、再找一个空闲块(即第5块),写入更新的地址映射块NewMap;此时第1块上,旧的地址映射块Map依然存在。本步骤处理的示意图如图6所示。 
3、公知的是,Flash存储器中“写入”是将对应单元由“1”变“0”,“擦除”是由“0”变为“1”。此时,新的文件NewFile1和新的映射关系NewMap都已经存在文件***中,那么旧的文件File1和旧的映射关系Map映射关系就擦除了。本步骤处理后的示意图如图7所示。 
4、如果需要进一步更新File2,则可以依据上述过程查找到第一空闲块(第1块)写入NewFile2,查找到第二空闲块(第2块)写入NewMap,即处理后的示意图可以如图8所示,本发明对此不作赘述。 
在上例的处理过程中,一旦发生掉电,复位之后将在整个物理空间中,搜索地址映射块。对于恢复数据处理的具体情形可以为: 
(1)如果在第2步开始前,发生了意外掉电,由于此时Flash文件***中,新地址映射块尚未形成,只有图6中旧的数据File1(第2块)和地址映射块Map(第1块),所以***将恢复旧数据。 
(2)如果在第2步结束前,发生了意外掉电,由于此时Flash中,新地址映射块已经开始创建了,但是尚未完成。地址映射块的修改过程中,哪些字节先写,哪些字节后写,是有一定的顺序的,该顺序保证了在第2步彻底结束前,新地址映射块都不会具备一个地址映射块的特征。所以,复位之后,还是只会搜索到旧地址映射块,还是会恢复旧数据。 
(3)如果在第3步完成前发生了掉电,此时***中可能存在新旧两个File1,和新旧两个地址映射块。那么复位后,会搜索到两个地址映射块,此时通过比较地址映射块的版本(记录在地址映射块中)可以知道,哪个新,哪个旧。然后恢复新数据即可。 
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时 进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。 
上述实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。 
参考图9,示出了本发明的一种Flash文件***的数据处理装置实施例的结构框图,所述Flash文件***包括地址映射块,所述地址映射块记录有Flash文件中所有逻辑块与物理块的映射关系,所述装置可以包括以下模块: 
第一空块查找模块901,用于依据Flash文件的更新请求,在Flash文件***的物理块中查找第一空闲块; 
第一写入模块902,用于在所述第一空闲块中写入更新的Flash文件; 
第二空块查找模块903,用于在所述Flash文件***的物理块中继续查找第二空闲块; 
第二写入模块904,用于在所述第二空闲块中写入更新的地址映射块。 
优选的,所述地址映射块还记录有版本信息、写入完成标识和有效标识信息,所述第二写入模块可以包括以下子模块: 
版本更新子模块,用于生成所述更新地址映射块的版本信息; 
映射更新子模块,用于写入所述更新Flash文件中相应的逻辑块与第一空闲块的映射关系; 
映射保留子模块,用于写入原始地址映射块中未更新的逻辑块与物理块的映射关系; 
完成标识子模块,用于对所述更新地址映射块标记写入完成标识; 
有效标识子模块,用于在所述更新地址映射块中记录有效标识,以及,在所述原始地址映射块中记录无效标识。 
优选的,本实施例还可以包括: 
掉电判断模块,用于依据当前具有有效标识的地址映射块的数量,判断是否发生意外掉电。 
优选的,本实施例还可以包括: 
复位搜索模块,用于在掉电复位后搜索所述更新地址映射块的写入完成标识,若有,则触发新数据恢复模块;若没有,则触发旧数据恢复模块; 
新数据恢复模块,用于依据所述更新的地址映射块恢复新数据; 
旧数据恢复模块,用于依据所述原始地址映射块恢复旧数据。 
优选的,本实施例还可以包括: 
擦除模块,用于在依据所述原始地址映射块恢复旧数据时,擦除所述更新地址映射块。 
参考图10,示出了应用图9所示的优选实施例进行Flash文件***的数据处理的流程图,可以包括以下步骤: 
步骤1001、第一空块查找模块依据Flash文件的更新请求,在Flash文件***的物理块中查找第一空闲块; 
步骤1002、第一写入模块在所述第一空闲块中写入更新的Flash文件; 
步骤1003、第二空块查找模块在所述Flash文件***的物理块中继续查找第二空闲块; 
步骤1004、第二写入模块在所述第二空闲块中写入更新的地址映射块; 
优选的,本步骤可以包括以下子步骤: 
子步骤S1、版本更新子模块生成所述更新地址映射块的版本信息; 
子步骤S2、映射更新子模块写入所述更新Flash文件中相应的逻辑块与第一空闲块的映射关系; 
子步骤S3、映射保留子模块写入原始地址映射块中未更新的逻辑块与物理块的映射关系; 
子步骤S4、完成标识子模块对所述更新地址映射块标记写入完成标识; 
子步骤S5、有效标识子模块在所述更新地址映射块中记录有效标识,以及,在所述原始地址映射块中记录无效标识。 
步骤1005、掉电判断模块依据当前具有有效标识的地址映射块的数 量,判断是否发生意外掉电; 
优选的,可以通过以下子步骤判断是否发生意外掉电: 
子步骤Q1、若当前仅有一个具有有效标识的地址映射块,则判断未发生意外掉电; 
子步骤Q2、若当前有两个具有有效标识的地址映射块,则判断发生了意外掉电,触发复位搜索模块; 
步骤1006、复位搜索模块在复位后搜索所述更新地址映射块的写入完成标识,若有,则执行步骤1007;若没有,则执行步骤1008; 
步骤1007、新数据恢复模块依据所述更新的地址映射块恢复新数据; 
步骤1008、旧数据恢复模块依据所述原始地址映射块恢复旧数据,并通过擦除模块擦除所述更新地址映射块。 
随着嵌入式***越来越广泛的应用,嵌入式***中有大量的数据需要存储和管理。Flash存储器具有容量大、体积小、功耗小、成本低、掉电后数据不丢失、读访问速度高、抗震性好等一系列的优点,已经成为嵌入式***中广泛应用的存储器件。但是随着***复杂性的增加和存储器容量的加大,如何高效地存储和管理数据成为一个重要的课题。引入嵌入式Flash文件***,正是解决这个问题的好办法。由于嵌入式***中有不少地方需要事务处理,即连续多个写操作,要么同时失败,要么同时成功。考虑到嵌入式***的资源非常紧张,事务处理可以由Flash文件***来支持。这样做效率更高,应用更简单。应用本发明数据处理装置的事务处理过程为:在启动了一个事务之后,第一次写操作中的地址映射块修改过程只执行前述子步骤S1和S2;后续写操作中的地址映射块修改过程,只执行子步骤S2(在实际中,大多数情况下是这样,但如果新修改的数据块是事务中前面写操作已经修改过的,则需要重新执行前述子步骤S1和S2);结束事务的时候,再执行子步骤S1——S5;事务进行中,由文件***维护旧地址映射块和新地址映射块的相关信息。事物进行中,读操作返回最新的数据。由此,通过地址映射块则实现了多次写操作的同步。 
对于装置实施例而言,由于其基本相应于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。 
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。 
本发明可用于众多通用或专用的计算***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、包括以上任何***或设备的分布式计算环境等等。 
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。 
以上对本发明所提供的一种Flash文件***的数据处理方法、一种Flash文件***的数据处理装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。 

Claims (12)

1.一种Flash文件***的数据处理方法,其特征在于,所述Flash文件***包括地址映射块,所述地址映射块记录有Flash文件中所有逻辑块与物理块的映射关系,所述方法包括:
依据Flash文件的更新请求,在Flash文件***的物理块中查找第一空闲块,在所述第一空闲块中写入更新的Flash文件;
在所述Flash文件***的物理块中继续查找第二空闲块,在所述第二空闲块中写入更新的地址映射块,第二空闲块具体为Flash文件***中第二个空闲的物理块。
2.如权利要求1所述的方法,其特征在于,所述地址映射块还记录有版本信息、写入完成标识和有效标识信息,所述写入更新地址映射块的步骤包括:
生成所述更新地址映射块的版本信息;
写入所述更新Flash文件中相应的逻辑块与第一空闲块的映射关系;
写入原始地址映射块中未更新的逻辑块与物理块的映射关系;
对所述更新地址映射块标记写入完成标识;
在所述更新地址映射块中记录有效标识,以及,在所述原始地址映射块中记录无效标识。
3.如权利要求2所述的方法,其特征在于,还包括:
依据当前具有有效标识的地址映射块的数量,判断是否发生了意外掉电。
4.如权利要求3所述的方法,其特征在于,通过以下步骤判断是否发生意外掉电:
若当前仅有一个具有有效标识的地址映射块,则判断未发生意外掉电;
若当前有两个具有有效标识的地址映射块,则判断发生了意外掉电。
5.如权利要求4所述的方法,其特征在于,还包括:
如果发生意外掉电,则在复位后搜索所述更新地址映射块的写入完成标识,若有,则依据所述更新的地址映射块恢复新数据;若没有,则依据所述原始地址映射块恢复旧数据。
6.如权利要求5所述的方法,其特征在于,在依据所述原始地址映射块恢复旧数据时,还包括:
擦除所述更新地址映射块。
7.如前述任一项权利要求所述的方法,其特征在于,通过以下步骤查找空闲块:
依据所述地址映射块中记录的逻辑块与物理块的映射关系查找空闲块。
8.一种Flash文件***的数据处理装置,其特征在于,所述Flash文件***包括地址映射块,所述地址映射块记录有Flash文件中所有逻辑块与物理块的映射关系,所述装置包括:
第一空块查找模块,用于依据Flash文件的更新请求,在Flash文件***的物理块中查找第一空闲块;
第一写入模块,用于在所述第一空闲块中写入更新的Flash文件;
第二空块查找模块,用于在所述Flash文件***的物理块中继续查找第二空闲块,第二空闲块具体为Flash文件***中第二个空闲的物理块;
第二写入模块,用于在所述第二空闲块中写入更新的地址映射块。
9.如权利要求8所述的装置,其特征在于,所述地址映射块还记录有版本信息、写入完成标识和有效标识信息,所述第二写入模块包括:
版本更新子模块,用于生成所述更新地址映射块的版本信息;
映射更新子模块,用于写入所述更新Flash文件中相应的逻辑块与第一空闲块的映射关系;
映射保留子模块,用于写入原始地址映射块中未更新的逻辑块与物理块的映射关系;
完成标识子模块,用于对所述更新地址映射块标记写入完成标识;
有效标识子模块,用于在所述更新地址映射块中记录有效标识,以及,在所述原始地址映射块中记录无效标识。
10.如权利要求9所述的装置,其特征在于,还包括:
掉电判断模块,用于依据当前具有有效标识的地址映射块的数量,判断是否发生意外掉电。
11.如权利要求10所述的装置,其特征在于,还包括:
复位搜索模块,用于在掉电复位后搜索所述更新地址映射块的写入完成标识,若有,则触发新数据恢复模块;若没有,则触发旧数据恢复模块;
新数据恢复模块,用于依据所述更新的地址映射块恢复新数据;
旧数据恢复模块,用于依据所述原始地址映射块恢复旧数据。
12.如权利要求11所述的装置,其特征在于,还包括:
擦除模块,用于在依据所述原始地址映射块恢复旧数据时,擦除所述更新地址映射块。
CN2008101015352A 2008-03-07 2008-03-07 Flash文件***的数据处理方法及数据处理装置 Active CN101526927B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101015352A CN101526927B (zh) 2008-03-07 2008-03-07 Flash文件***的数据处理方法及数据处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101015352A CN101526927B (zh) 2008-03-07 2008-03-07 Flash文件***的数据处理方法及数据处理装置

Publications (2)

Publication Number Publication Date
CN101526927A CN101526927A (zh) 2009-09-09
CN101526927B true CN101526927B (zh) 2011-02-02

Family

ID=41094796

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101015352A Active CN101526927B (zh) 2008-03-07 2008-03-07 Flash文件***的数据处理方法及数据处理装置

Country Status (1)

Country Link
CN (1) CN101526927B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101902556A (zh) * 2010-08-03 2010-12-01 福建新大陆通信科技股份有限公司 一种数字电视机顶盒的数据块分区定位方法
CN101980177B (zh) * 2010-10-21 2013-07-31 北京握奇数据***有限公司 一种操作Flash的方法和装置
CN102098561B (zh) * 2010-12-14 2012-12-19 福建新大陆通信科技股份有限公司 一种机顶盒flash存储器各区域块分布配置的方法
CN103678141B (zh) * 2012-09-05 2017-11-28 努比亚技术有限公司 闪存的管理方法和管理***
CN103645990B (zh) * 2013-12-24 2016-05-25 飞天诚信科技股份有限公司 一种基于大页面Flash的数据更新和读取方法
CN104317732A (zh) * 2014-10-27 2015-01-28 上海动联信息技术股份有限公司 一种大容量Flash芯片的空间管理方法
CN105760313A (zh) * 2015-08-07 2016-07-13 深圳市证通金信科技有限公司 基于SPI-Flash的文件***的数据处理方法及装置
CN106649129A (zh) * 2016-09-28 2017-05-10 深圳市金泰克半导体有限公司 一种基于ftl的具有版本管理功能的固态硬盘及其实现方法
CN106599699B (zh) * 2016-11-01 2020-06-09 惠州Tcl移动通信有限公司 一种移动终端内实现数据安全删除的方法及***
CN106844583B (zh) * 2017-01-10 2022-03-25 厦门雅迅网络股份有限公司 一种在NOR Flash上建立FAT文件***的优化方法
CN109656481A (zh) * 2018-12-14 2019-04-19 成都三零嘉微电子有限公司 一种提高智能卡文件***flash写入寿命的方法
CN109960611B (zh) * 2019-03-07 2021-06-29 杭州迪普科技股份有限公司 数据恢复的方法、装置、电子设备及机器可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1393781A (zh) * 2001-07-03 2003-01-29 联想(北京)有限公司 闪存文件的管理方法
CN1447243A (zh) * 2002-03-25 2003-10-08 太和科技股份有限公司 快闪存储器中快速且能防止不正常断电的演算法及其控制***
CN1518000A (zh) * 2003-01-26 2004-08-04 深圳市朗科科技有限公司 闪存介质中的数据管理方法
CN1851672A (zh) * 2006-04-05 2006-10-25 北京飞天诚信科技有限公司 一种闪存的安全读写方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1393781A (zh) * 2001-07-03 2003-01-29 联想(北京)有限公司 闪存文件的管理方法
CN1447243A (zh) * 2002-03-25 2003-10-08 太和科技股份有限公司 快闪存储器中快速且能防止不正常断电的演算法及其控制***
CN1518000A (zh) * 2003-01-26 2004-08-04 深圳市朗科科技有限公司 闪存介质中的数据管理方法
CN1851672A (zh) * 2006-04-05 2006-10-25 北京飞天诚信科技有限公司 一种闪存的安全读写方法

Also Published As

Publication number Publication date
CN101526927A (zh) 2009-09-09

Similar Documents

Publication Publication Date Title
CN101526927B (zh) Flash文件***的数据处理方法及数据处理装置
US8037112B2 (en) Efficient access of flash databases
CN101515276B (zh) 一种文件数据写操作的方法、文件数据恢复方法及***
CN101169751B (zh) 具有闪存设备的***及其数据恢复方法
CN101425041B (zh) 在nand flash存储器上建立fat文件***的优化方法
CN103425600B (zh) 一种固态盘闪存转换层中的地址映射方法
CN103164490B (zh) 一种不固定长度数据的高效存储实现方法和装置
CN105930500A (zh) 数据库***中事务恢复的方法与数据库管理***
CN100595757C (zh) 文件***的安全管理方法及装置
CN103176916B (zh) 闪存及闪存的地址转换方法
CN103136116A (zh) 存储器存储***及其中控装置、管理方法与断电恢复方法
CN103996412A (zh) 一种用于智能卡非易失性存储器的掉电保护方法
CN104346290A (zh) 存储装置、计算机***及其操作方法
CN101986649B (zh) 应用于电信行业计费***的共享数据中心
CN101419571A (zh) 基于Hash算法的在NOR FLASH中存储配置参数的方法
CN103458023A (zh) 分布式闪存存储***
CN108710578A (zh) 基于闪存的数据存储方法和装置
CN102508788A (zh) Ssd及ssd垃圾回收方法和装置
CN102135942A (zh) 一种存储设备中实现损耗均衡的方法及存储设备
CN104572920A (zh) 一种数据整理方法和装置
CN103544110A (zh) 一种基于固态盘的块级连续数据保护方法
CN111414342A (zh) 存储设备及其数据处理方法
CN1936853B (zh) 嵌入式设备的数据掉电保护和修复方法
CN106445832A (zh) 闪存存储***的地址映射方法及装置
CN103617097A (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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 100089 Floor 12 1506, Building A 1, 66 Zhongguancun East Road, Haidian District, Beijing

Patentee after: Beijing Huahong Integrated Circuit Design Co., Ltd.

Address before: 100083 quantum Ginza 23, Zhichun Road, Beijing, Haidian District 709

Patentee before: Beijing Huahong Integrated Circuit Design Co., Ltd.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Liu Ben

Inventor after: Sun Chungui

Inventor after: Fu Yuchen

Inventor before: Liu Ben

Inventor before: Fu Yuchen