一种面向NandFlash的可靠型静态规划文件系统技术方案

技术编号:17970283 阅读:22 留言:0更新日期:2018-05-16 11:14
一种面向NandFlash的可靠型静态规划文件系统,包括有标准文件操作接口模块、文件项目静态可配置模块、数据备份模块、错误可感知模块、读/写缓存支持模块;结构上划分为文件层和文件服务支持层,文件层和文件服务支持层在各自的语义层面完成其对外宣传的接口的功能,具体有,文件层面向使用本文件系统的用户,提供相应的文件操作功能,管理着文件在不同Section上的切换以及部分备份文件失效的繁殖策略;文件服务层包含文件细胞、文件缓存两部分,为文件层提供基于Flash和基于RAM的存储/获取服务;具有数据的正确、可靠性存储,便于嵌入式项目移植等特点。

【技术实现步骤摘要】
一种面向NandFlash的可靠型静态规划文件系统
本专利技术属于嵌入式操作系统的文件存储和文件管理
,具体为一种面向NandFlash的可靠型静态规划文件系统。
技术介绍
NandFlash具有大容量、低成本、擦写寿命长等优点,同时存在易用性差、易发生位反转等缺点。目前嵌入式软件行业内大多选择Nandflash来存储数据,嵌入式产品运行的可靠性是衡量设备性能的一个重要指标,为了保证存储数据的正确性,很多嵌入式产品中都使用文件系统存储和管理文件。而在实际运行过程中,很多文件系统容易发生用户数据无法被正确的读、写从而引发设备异常的致命问题,随着对不同文件系统的深入调查,发现有些文件系统还存在着不能充分利用设备存储区域、文件关键信息存储方式单一易丢失等一系列问题,这些潜在的风险将在产品的维护周期内随着时间的推移无征兆性的爆发,引发不可恢复的产品失效问题。基于以上背景,需要一个能够全面管理NandFlash设备的、充分发挥其优点的文件系统,来替换已经无法满足目前应用需求的文件系统,至此,本文所描述的面向Flash的可靠型静态规划文件系统诞生了。
技术实现思路
为克服上述现有技术的不足,本专利技术的目的是提供一种面向NandFlash的可靠型静态规划文件系统,该文件系统具有如下的特点:1)对外提供打开文件、获取文件长度、写文件、读文件、关闭文件等标准的文件操作以及文件系统创建接口;2)文件项目静态配置,表现为文件名、文件的相对地址、文件所使用块数目、数据备份次数、是否支持缓存等信息静态可配置;3)高可靠的数据存储;4)错误可感知;5)支持读/写缓存;6)数据断电恢复;7)文件版本回滚可配置;8)便于在其他嵌入式项目移植。为实现上述目的,本专利技术采用的技术方案是:一种面向NandFlash的可靠型静态规划文件系统,其特征在于,包括有标准文件操作接口模块、文件项目静态可配置模块、数据备份模块、错误可感知模块、读/写缓存支持模块;所述的标准文件接口,用于给用户提供标准的文件操作接口,其接口包括文件系统创建接口、文件写接口、文件读接口、文件打开接口、文件关闭接口;所述的文件静态配置模块,用于配置文件数目、配置文件使用Flash块数目、配置文件备份次数、配置Cache开关和配置文件系统使用的总Flash块号;所述的数据备份模块,采用数据双重备份机制,根据静态文件配置表中的备份次数配置信息进行文件分区内的多次备份,同时根据细胞繁殖策略,进行不同文件分区的多次备份;采用双重备份机制可以使在Flash设备部分失效的状态下,可在Flash设备上正常工作的区域获取正确有效的数据信息;所述的错误可感知模块,用于感知Flash设备存储块失效和Flash设备存储数据错误,分别通过读取MetaInfo和CRC校验信息实现;所述的支持读/写缓存模块,给用户文件数据提供功能可靠的读/写缓存支持,执行Flash的读/写操作前,判断是否存在缓存,如果有则只需操作缓存数据,只有在没有缓存时才操作Flash,避免频繁操作Flash。所述的错误感知中的错误感知是本文件系统对Flash设备存储块失效和存储数据错误的感知能力,具体有:①在某块Flash失效的情况下,将引发用户对该区域的写操作失败,本文件系统标记该区域对应的原生信息块为坏块,后续针对此区域的操作将被检测出来并切换至下一个可用的文件分区,同样地,存储原生信息的块失效,也会以这样的方式被感知;②本文件系统对待返回给用户的数据进行CRC校验来感知数据的错误,CRC算法根据数据位及数据长度计算出CRC值,与Flash上存储的CRC值比较,以此判断读出数据的正确性。所述的文件系统创建接口用于,检查静态文件分配表正确性,获得静态文件配置表中文件分配信息,在静态文件配置表中定义文件分区的个数和每个分区中文件个数;遍历所有文件分区和分区内所有文件,获得每个文件的MetaInfo、最大文件版本号对应的CurFileSectionNO、BakFileSectionNO信息,这些信息将构成FRT的元素。所述的文件打开接口用于,遍历文件列表中文件名以查找待操作的文件,待操作的文件不存在则返回文件不存在的错误;若当前操作模式为文件写模式,则备份和更新当前FRT,备份FRT的目的是写失败时能将文件数据恢复至最后一次正常操作的版本,避免出现用户获取不到数据的情形;然后将文件版本、备份次数、文件使用块数和文件起始地址等信息绑定到当前文件细胞,以赋予文件细胞操作Nandflash的能力;最终生成并返回文件句柄,本文件系统约定,读/写、关闭等接口的第一个入参必须是有效的文件句柄。所述的文件读接口用于,文件存在缓存则执行读缓存操作,读缓存成功则直接给用户返回数据;读缓存失败才执行文件细胞的读操作,然后拷贝数据至缓存并给用户返回数据;不存在缓存则执行文件细胞的读操作;文件细胞读失败且存在BakFileSectionNo则切换当前FRT到备份文件区域,并将BakFileSectionNo绑定到当前文件细胞,执行文件细胞读操作,文件细胞的读逻辑中,尝试N次的读操作,直至读成功或者达到尝试次数为止,期间的读失败次数将作为细胞繁殖的必要条件被记录下来。所述的文件写接口用于:有缓存则写数据到缓存,接着执行文件细胞的写操作,文件细胞写数据失败则返回错误码给文件层,文件层对文件的写操作失败进行处理;写失败的处理逻辑是:无缓存则设置文件的状态为错误状态并报错,有缓存则以缓存的数据为源数据,切换文件分区到下一个文件分区执行文件细胞写操作,细胞写失败则继续切换文件分区,直到待切换的文件分区是当前文件分区为止。所述的文件关闭接口依据文件状态和文件的操作模式做相应的处理,若文件状态是错误态,并且文件的操作模式是写操作则恢复FRT至文件打开操作前的状态,关闭公共资源;若文件状态正常则直接调用文件细胞的关闭方法,关闭公共资源,公共资源关闭的处理逻辑是:存在Cache则清除Cache中的数据,反绑定文件细胞,设置文件状态为关闭状态。所述的BakFileSectionNo默认为-1,BakFileSectionNo大于0表示当前版本的文件存在备份存储区域。所述的细胞写失败的判断依据是指定文件在其存储区域的写失败次数和备份次数相等。本专利技术的有益效果是:1)为Nandflash数据的可靠存储提供了切实可行的方案。2)针对重要的文件,可通过修改文件配置表中的备份次数的方式,以达成对该文件的备份写,最大可能的确保数据的正确性。3)通过SCHAFS所辖Nandflash起始块号、使用NandFlash总块号、文件数目、文件备份次数静态规划,最大化且合理的利用了flash的资源,SCHAFS对外提供标准的文件访问接口,也便于其他嵌入式项目的移植。所述的高可靠的数据存储,表现为文件原生信息和文件数据的分布式存储和数据的双重备份机制,具体有:①文件原生信息包括标识Flash设备好坏状态的魔术字,实际写入的数据长度,以及文件版本。本文件系统约定,用户的写操作必须先写文件数据,然后写文件原生信息,而完成写文件原生信息的动作则标识着本次文件的写操作结束,文件原生信息单独存储,也保证了文件关键信息的高可靠性;②依据静态文件配置表中的数据备份次数信息,达成同一个文件在相同文件分区本文档来自技高网...
一种面向NandFlash的可靠型静态规划文件系统

【技术保护点】
一种面向NandFlash的可靠型静态规划文件系统,其特征在于,包括有标准文件操作接口模块、文件项目静态可配置模块、数据备份模块、错误可感知模块、读/写缓存支持模块;所述的标准文件接口,用于给用户提供标准的文件操作接口,其接口包括文件系统创建接口、文件写接口、文件读接口、文件打开接口、文件关闭接口;所述的文件静态配置模块,用于配置文件数目、配置文件使用Flash块数目、配置文件备份次数、配置Cache开关和配置文件系统使用的总Flash块号;所述的数据备份模块,采用数据双重备份机制,根据静态文件配置表中的备份次数配置信息进行文件分区内的多次备份,同时根据细胞繁殖策略,进行不同文件分区的多次备份;采用双重备份机制可以使在Flash设备部分失效的状态下,可在Flash设备上正常工作的区域获取正确有效的数据信息;所述的错误可感知模块,用于感知Flash设备存储块失效和Flash设备存储数据错误,分别通过读取MetaInfo和CRC校验信息实现;所述的支持读/写缓存模块,给用户文件数据提供功能可靠的读/写缓存支持,执行Flash的读/写操作前,判断是否存在缓存,如果有则只需操作缓存数据,只有在没有缓存时才操作Flash,避免频繁操作Flash。...

【技术特征摘要】
1.一种面向NandFlash的可靠型静态规划文件系统,其特征在于,包括有标准文件操作接口模块、文件项目静态可配置模块、数据备份模块、错误可感知模块、读/写缓存支持模块;所述的标准文件接口,用于给用户提供标准的文件操作接口,其接口包括文件系统创建接口、文件写接口、文件读接口、文件打开接口、文件关闭接口;所述的文件静态配置模块,用于配置文件数目、配置文件使用Flash块数目、配置文件备份次数、配置Cache开关和配置文件系统使用的总Flash块号;所述的数据备份模块,采用数据双重备份机制,根据静态文件配置表中的备份次数配置信息进行文件分区内的多次备份,同时根据细胞繁殖策略,进行不同文件分区的多次备份;采用双重备份机制可以使在Flash设备部分失效的状态下,可在Flash设备上正常工作的区域获取正确有效的数据信息;所述的错误可感知模块,用于感知Flash设备存储块失效和Flash设备存储数据错误,分别通过读取MetaInfo和CRC校验信息实现;所述的支持读/写缓存模块,给用户文件数据提供功能可靠的读/写缓存支持,执行Flash的读/写操作前,判断是否存在缓存,如果有则只需操作缓存数据,只有在没有缓存时才操作Flash,避免频繁操作Flash。2.根据权利要求1所述的一种面向NandFlash的可靠型静态规划文件系统,其特征在于,所述的错误感知中的错误感知是本文件系统对Flash设备存储块失效和存储数据错误的感知能力,具体有:①在某块Flash失效的情况下,将引发用户对该区域的写操作失败,本文件系统标记该区域对应的原生信息块为坏块,后续针对此区域的操作将被检测出来并切换至下一个可用的文件分区,同样地,存储原生信息的块失效,也会以这样的方式被感知;②本文件系统对待返回给用户的数据进行CRC校验来感知数据的错误,CRC算法根据数据位及数据长度计算出CRC值,与Flash上存储的CRC值比较,以此判断读出数据的正确性。3.根据权利要求1所述的一种面向NandFlash的可靠型静态规划文件系统,其特征在于,所述的文件系统创建接口用于,检查静态文件分配表正确性,获得静态文件配置表中文件分配信息,在静态文件配置表中定义文件分区的个数和每个分区中文件个数;遍历所有文件分区和分区内所有文件,获得每个文件的MetaInfo、最大文件版本号对应的CurFileSectionNO、BakFileSectionNO信息,这些信息将构成FRT的元素。4.根据权利要求1所述的一种面向NandFlash的可靠型静态规划文件系统,其特征在于,所述的文件打开接口用于,遍历文件列表中文件名以查找待操作的文件...

【专利技术属性】
技术研发人员:张盛全李宇李立川
申请(专利权)人:西安锐益达风电技术有限公司
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1