一种Flash存储空间的动态恢复方法及装置的制造方法

文档序号:9506080阅读:299来源:国知局
一种Flash存储空间的动态恢复方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据储存系统与方法,特别有关于智能卡芯片中Flash储存空间的动态恢复方法及其装置。
【背景技术】
[0002]随着移动技术的快速发展,智能卡深入到生活的各个领域,非易失性存储器在智能卡中用于存储代码和数据。非易失性存储器指掉电后在相当长时间内依然能有效保存数据的存储器,如EEPROM,EPROM,Flash等。闪存区别于其它存储介质的特性主要有以下几个:
[0003](1) Flash存储器的使用寿命是有限的。具体来说,其使用寿命是由擦写块的最大可擦写次数来决定的。超过了最大可擦写次数,这个擦写块就成为坏块了。因此为了避免某个擦写块被过度擦写,以至于它先于其他的擦写块达到最大可擦写次数,我们应该在尽量小的影响性能的前提下,使擦写操作均匀的分布在每个擦写块上,减少由擦写给块带来的摩损;
[0004]⑵在对卡片的非易失性存储器进行操作时,如果发生异常,例如卡突然掉电、电压异常或者写异常等,都可能会导致对卡片中的非易失性存储器更新不成功,并且丢失原有数据。
[0005]现有技术中实现利用Flash存储器进行数据操作时突然掉电的数据保存方法一般有两种对策:一是用后备电源维持单片机持续工作,称为硬保护;另一种是在电源完全失效前保护现场数据,上电后再恢复工作,称为软保护。现有技术中的硬保护电路较为烦琐,电路设计复杂,且不易集成。而现有技术中已有的软保护方法:目前运行在闪存上文件系统要改写一个块设备的扇区时,通常是将这个扇区所在的擦写块的数据读到内存中,放在缓存中,然后将缓存中与这个扇区对应的内容用新的内容替换掉,再对该擦写块执行擦写操作,最后将缓冲中的数据写回该擦写块。这种实现方式的缺点是很明显的:效率低,对一个扇区的更新要重写整个擦写块上的数据,也造成内存空间很大的浪费;没有提供磨损平衡,那些被频繁更新的数据所在擦写块将首先变成坏块。

【发明内容】

[0006]为了解决在对智能卡的非易失性存储器进行操作时,发生异常而导致的非易失性存储器更新不成功,并且丢失非易失性存储器原有数据的技术问题,同时兼顾了由于对非易失性存储器的频繁操作而导致的磨损问题。本申请公开了一种Flash储存空间的动态恢复方法,所述方法包括:
[0007]步骤1,判断是否需要更新非易失性存储器的数据区,如果需要继续步骤2,否则继续监测;
[0008]步骤2:写备份区中标志页面中的标志位;
[0009]步骤3:将要操作的数据的地址,记为原有地址,将需要操作的数据,记为原有数据;
[0010]步骤4:将数据区中的原有数据备份到备份区;
[0011]步骤5:将原有地址存储到备份区中的地址页面中;
[0012]步骤6:更新数据区,如果发生异常,则将备份区数据页面中存放的备份数据恢复到原有地址;
[0013]步骤7:更改标志页面中的标志位。
[0014]在本申请一具体实施例中,在步骤1之前包括:将所述Flash存储空间分成了三个区域:代码区、数据区和备份区;
[0015]其中数据区中存储有地址链表,可用于找到将要操作的数据;
[0016]备份区用来存储备份数据,备份区中包含标志页面、地址页面和备份区数据页面。
[0017]在另一实施例中,本申请又公开了一种Flash储存空间的动态恢复方法,所述方法包括:
[0018]步骤1,判断是否需要更新非易失性存储器的数据区,如果需要继续步骤2,否则继续监测;
[0019]步骤2,动态划分备份区;
[0020]步骤3,写备份区中标志页面中的标志位;
[0021]步骤4,将要操作的数据的地址,记为原有地址,将需要操作的数据,记为原有数据;
[0022]步骤5,将数据区中的原有数据备份到备份区,并记录该备份数据所在的地址,记为备份地址;
[0023]步骤6,将备份地址存储到数据区的地址链表中;
[0024]步骤7,更新数据区,如果发生异常,则读取数据区的地址链表中存储的备份地址和原有地址,将备份区数据页面中存放的备份数据恢复到原有地址;
[0025]步骤8,将标志页中的标志更改为无备份数据。
[0026]在本申请一具体实施例中,所述步骤1具体为:当监测到对数据区有写操作请求时,就可以判断需要更新非易失性存储器的数据区2 ;所述写操作请求中包含待更新数据包、待更新的目的地址以及待更新数据包的大小。
[0027]在本申请一具体实施例中,所述动态划分备份区具体为:计算所述Flash存储空间的剩余存储空间,并根据所述写操作请求中待更新数据包的大小来在所述剩余存储空间中预留所述更新操作所需要的存储空间,将所述剩余存储空间中未预留给所述更新操作的存储空间作为备份区。
[0028]在本申请一具体实施例中,所述标志页面包含有标志位,用于标记备份区中有无备份数据。
[0029]同时,本申请公开一种Flash储存空间的动态恢复装置,其特征在于,所述装置包括三个区域:
[0030]代码区,存储Flash运行时所必须的代码;
[0031]数据区,其中存储地址链表,用于找到将要操作的数据;
[0032]备份区,用来存储备份数据;
[0033]所述备份区中包含:
[0034]标志页面,包含标志位,用于标记备份区中是否有备份数据;
[0035]地址页面,其中记录将要操作的数据的地址;
[0036]备份区数据页面,用于存储备份的将要操作的数据,当发生异常时,将所述备份的数据恢复至所述将要操作的数据的地址。
[0037]在本申请一具体实施例中,所述代码区、数据区和备份区是固定的,当需要更新非易失性存储器的数据区时,写备份区中标志页面中的标志位;将要操作的数据的地址,记为原有地址,将需要操作的数据,记为原有数据;将数据区中的原有数据备份到备份区;将原有地址存储到备份区中的地址页面中;更新数据区,如果发生异常,则将备份区数据页面中存放的备份数据恢复到原有地址;更改标志页面中的标志位。
[0038]在本申请一具体实施例中,所述代码区、数据区是固定的,所述备份区是动态划分的;当接收到对所述数据区的写操作请求时,则判定为需要更新所述数据区时;动态划分备份区;写备份区中标志页面中的标志位;将要操作的数据的地址,记为原有地址,将需要操作的数据,记为原有数据;将数据区中的原有数据备份到备份区,并记录该备份数据所在的地址,记为备份地址;将备份地址存储到数据区的地址链表中;更新数据区,如果发生异常,则读取数据区的地址链表中存储的备份地址和原有地址,将备份区数据页面中存放的备份数据恢复到原有地址;将标志页中的标志更改为无备份数据。
[0039]在本申请一具体实施例中,所述写操作请求包含待更新数据包、待更新的目的地址以及待更新数据包的大小;所述动态划分备份区为,计算所述Flash存储空间的剩余存储空间,并根据所述写操作请求中待更新数据包的大小来在所述剩余存储空间中预留所述更新操作所需要的存储空间,将所述剩余存储空间中未预留给所述更新操作的存储空间作为备份区。
[0040]本申请中提供的Flash存储空间的动态恢复方法及其装置,增强了非易失性存储器的鲁棒性,即使对非易失性存储器的更新没有成功,原始数据仍可恢复的技术效果,以及通过备份区的动态设置而带来的延长非易失性存储器的使用寿命的技术效果。
【附图说明】
[0041]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0042]图1是本申请中实施例一中Flash存储空间的划分示意图;
[0043]图2是本申请中实施例一中备份区中标志页面结
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1