一种串行闪存数据保护方法和装置与流程

文档序号:11774408阅读:236来源:国知局

本发明涉及一种串行闪存数据保护方法和装置,属于计算机领域。



背景技术:

串行falsh存储器因接口简单、容量巨大,广泛应用于单片机产品开发环境。但其读写速度相对缓慢的特点,导致其在进行数据写入操作阶段,意外发生掉电情况时会极高概率出现文件丢失,甚至导致整个文件系统崩溃现象。

现有阶段解决此问题的方法通常:在硬件方面进行弥补,比如掉电保护电路等策略;此方法很大程度上解决了意外掉电带来数据丢失的问题,但涉及的技术环节过多,并且同样需要软件方面配合,因此无法100%保证其可靠性。最大不足就是保护电路会极大地提升了产品开发成本(硬件成本)。



技术实现要素:

为了解决上述问题,本发明提供一种串行闪存数据保护方法和装置。

本发明采用的技术方案一方面为一种串行闪存数据保护方法,包括以下步骤:基于逻辑地址划分串行闪存为缓存区和实际区;建立缓存区与实际区之间的页面映射;将待写入数据逐区写入缓存区的映射扇区,当缓存区的剩余的映射扇区的空间不足或者数据需要转换扇区时,将映射扇区的数据写入实际区,当数据写入完成时,擦拭缓存区对应的映射扇区并拆除页面映射关系。

优选地,还包括以下步骤:获取需要写入数据的实际区的绝对地址,查询该绝对地址是否在缓存区存在对应的映射扇区,如果不存在,则确定一个映射扇区并建立与所述绝对地址的页面映射;如果存在,则读取该映射扇区的数据并存入ram,所述ram用于存储待写入实际区的数据。

优选地,当缓存区的剩余的映射扇区的空间不足时,ram从已写入数据的映射扇区读取数据,基于页面映射将数据写入实际区,当数据写入完成时,擦拭缓存区对应的映射扇区并拆除页面映射关系。

优选地,当需要转换扇区时,ram从对应的映射扇区读取数据,基于页面映射将数据写入实际区,当数据写入完成时,擦拭缓存区对应的映射扇区并拆除页面映射关系。

本发明采用的技术方案另一方面为一种串行闪存数据保护装置,包括以下模块:

划分模块,用于基于逻辑地址划分串行闪存为缓存区和实际区;映射模块,用于建立缓存区与实际区之间的页面映射;数据处理模块,用于将待写入数据逐区写入缓存区的映射扇区,当缓存区的剩余的映射扇区的空间不足或者数据需要转换扇区时,将映射扇区的数据写入实际区,当数据写入完成时,擦拭缓存区对应的映射扇区并拆除页面映射关系。

优选地,所述映射模块还用于获取需要写入数据的实际区的绝对地址,查询该绝对地址是否在缓存区存在对应的映射扇区,如果不存在,则确定一个映射扇区并建立与所述绝对地址的页面映射;如果存在,则读取该映射扇区的数据并存入ram,所述ram用于存储待写入实际区的数据。

优选地,所述数据处理模块,还用于当缓存区的剩余的映射扇区的空间不足时,ram从已写入数据的映射扇区读取数据,基于页面映射将数据写入实际区,当数据写入完成时,擦拭缓存区对应的映射扇区并拆除页面映射关系。

优选地,所述数据处理模块,还用于当需要转换扇区时,ram从对应的映射扇区读取数据,基于页面映射将数据写入实际区,当数据写入完成时,擦拭缓存区对应的映射扇区并拆除页面映射关系。

本发明的有益效果为通过设定缓存区和实际区,通过页映射进行数据之间的转移,当缓存区溢出或者需要特定的数据转移的时候进行数据的转移,只有当数据被完整的转移之后才进行数据的清除,能够确保数据在断电的情况下仍能进行数据的保存。

附图说明

图1所示为基于本发明实施例的一种串行闪存数据保护方法的示意图。

具体实施方式

以下结合实施例对本发明进行说明。

基于发明的实施例1,如图1所示一种串行闪存数据保护方法,包括以下步骤:基于逻辑地址划分串行闪存为缓存区和实际区;建立缓存区与实际区之间的页面映射;将待写入数据逐区写入缓存区的映射扇区,当缓存区的剩余的映射扇区的空间不足或者数据需要转换扇区时,将映射扇区的数据写入实际区,当数据写入完成时,擦拭缓存区对应的映射扇区并拆除页面映射关系。

使用程序(基于逻辑地址划分)将闪存划分为缓存区和实际区,所述实际区是最终用来存储数据的空间,通过页式存储的形式将缓存区和实际区进行存储单元的分配,通过建立两者之间的页面映射,即页与页之间对应(同时将映射的记录做成映射表,包括扇区号,对应的物理地址和逻辑地址等信息);而数据写入的步骤,第一步是外部的待写入数据首先会被按页(即映射扇区)存入缓存区,由于缓存区的设定是由程序控制的,因此根据映射扇区的扇区号的使用记录就可以知道扇区的使用情况,当缓存区没有多余的映射扇区或者需要将缓存区的数据存入实际区的时候,根据映射扇区之间的页面映射关系,进行数据的移动,当数据写入完成的时候,擦拭缓存区的对应的映射扇区的数据并拆除页面映射关系。

基于发明的实施例1的一种串行闪存数据保护方法,还包括以下步骤:获取需要写入数据的实际区的绝对地址,查询该绝对地址是否在缓存区存在对应的映射扇区,如果不存在,则确定一个映射扇区并建立与所述绝对地址的页面映射;如果存在,则读取该映射扇区的数据并存入ram,所述ram用于存储待写入实际区的数据。

当数据需要写入实际区的某个绝对地址时,通过查询建立页面映射的映射表,可以知道是否已经有设定好的映射关系,如果存在的话,就不用重新进行映射关系的建立,就可以直接通过内存进行数据的转移,如果不存在的话,那么在缓存区内确定一个映射扇区(可以是本来没有写入数据的部分,也可以是经过擦拭后获得的部分);获取该映射扇区的数据并存入ram。

基于发明的实施例1的一种串行闪存数据保护方法,当缓存区的剩余的映射扇区的空间不足时,ram从已写入数据的映射扇区读取数据,基于页面映射将数据写入实际区,当数据写入完成时,擦拭缓存区对应的映射扇区并拆除页面映射关系。

通过数据写入或者擦拭记录,很容易知道闪存空间的使用情况,当缓存区的剩余的映射扇区(即没有存储有数据的扇区)数量或者扇区空间不足的时候,获取已写入数据的扇区的资料,选择其中的若干扇区进行数据转移(可以随机选择扇区或者按照数据写入时间的顺序选最老的扇区),当数据写入完成的时候,则擦拭缓存区的对应的扇区并拆除页面映射关系。

基于发明的实施例1的一种串行闪存数据保护方法,当需要转换扇区时,ram从对应的映射扇区读取数据,基于页面映射将数据写入实际区,当数据写入完成时,擦拭缓存区对应的映射扇区并拆除页面映射关系。

由于需要将特定的数据进行转移,因此,会从特定的扇区进行数据的转移,通过ram从特定的映射扇区读取数据,然后基于页面映射的关系将数据写入实际区对应的扇区/页,当数据写入完成的时候,则擦拭缓存区的对应的扇区并拆除页面映射关系。

基于本发明的实施例2,一种串行闪存数据保护装置,包括以下模块:

划分模块,用于基于逻辑地址划分串行闪存为缓存区和实际区;映射模块,用于建立缓存区与实际区之间的页面映射;数据处理模块,用于将待写入数据逐区写入缓存区的映射扇区,当缓存区的剩余的映射扇区的空间不足或者数据需要转换扇区时,将映射扇区的数据写入实际区,当数据写入完成时,擦拭缓存区对应的映射扇区并拆除页面映射关系。

基于本发明的实施例2的一种串行闪存数据保护装置,所述映射模块还用于获取需要写入数据的实际区的绝对地址,查询该绝对地址是否在缓存区存在对应的映射扇区,如果不存在,则确定一个映射扇区并建立与所述绝对地址的页面映射;如果存在,则读取该映射扇区的数据并存入ram,所述ram用于存储待写入实际区的数据。

基于本发明的实施例2的一种串行闪存数据保护装置,所述数据处理模块,还用于当缓存区的剩余的映射扇区的空间不足时,ram从已写入数据的映射扇区读取数据,基于页面映射将数据写入实际区,当数据写入完成时,擦拭缓存区对应的映射扇区并拆除页面映射关系。

基于本发明的实施例2的一种串行闪存数据保护装置,所述数据处理模块,还用于当需要转换扇区时,ram从对应的映射扇区读取数据,基于页面映射将数据写入实际区,当数据写入完成时,擦拭缓存区对应的映射扇区并拆除页面映射关系。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1