嵌入式设备的数据掉电保护和修复方法

文档序号:6531735阅读:447来源:国知局
专利名称:嵌入式设备的数据掉电保护和修复方法
技术领域
本发明涉及一种嵌入式设备的数据存取技术,尤其涉及一种针对嵌入式设备经常发生的掉电情况对数据加以保护和修复的方法。
背景技术
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统,用于实现特定应用功能。常见的采用嵌入式系统的嵌入式产品包括手机、PDA、信息家电等。
嵌入式产品常用的数据存储设备是闪存,与其它存储器相比,闪存的容量和存取速度都很低,而且对运行环境的电压有极高的要求。嵌入式产品在使用过程中经常会发生不可预知的低压或掉电,导致正在读写数据时系统中断。
应用于嵌入式产品的数据存取方式,在功能上要受限于嵌入式产品的特点,特别是针对掉电的发生要有一套保护和修复的方法。
对数据的操作可分为查询和修改,查询是只读动作,只需根据数据的内部组织结构,读取数据存储空间的特定区域内容即可。修改数据的操作通常会分为多个步骤,每个步骤修改一部分数据,这样当操作过程中修改了部分数据时发生掉电,就会导致相关联的数据一部分是旧的一部分是新的,这样产生的数据是无效的,如果是关键数据结构被破坏,整个数据将无法再被访问。
目前的嵌入式设备,大多采用备份的方法来保证掉电后的修复,将数据的存储空间划分为数据区和备份区,采用交替使用备份区或者定期清理备份区的方法来实现对数据的保护。这类方法最明显的问题就是浪费了原本就很紧张的存储空间,这在手机等小容量存储设备上来说会增加产品的成本。

发明内容
本发明所要解决的技术问题在于提供一种不需要额外备份空间,当系统中断重新启动之后,能够快速检查并修复数据的内容,尽可能地提高了存储器的利用率的嵌入式设备的数据掉电保护和修复方法。
为解决上述的一个技术问题,本发明所采用的技术方案是提供一种嵌入式设备的数据掉电保护方法,该保护方法包括将修改数据的操作步骤划分为稳态和暂态,原子操作属于稳态,多步操作的最后一步完成后是稳态,否则其前溯操作属于暂态;对每步数据操作附加一个标记,操作完成后写入该标记;当多步操作的最后一步完成时,将其前溯操作的暂态标记改写为稳态标记;开机访问数据时,扫描所有标记,发现有暂态操作的标记时,废弃未完成的动作,恢复数据之前的状态。
为解决上述的另一技术问题,本发明所采用的技术方案是提供一种嵌入式设备的数据掉电修复方法,其包括以下步骤a.启动嵌入式设备,依次扫描数据块的标记;b.判断是否是暂态标记,若是,则执行步骤c,若否,则执行步骤e;c.删除该数据块;
d.判断是否有相关联的下一块,若有,则返回步骤c,若无,则执行步骤e;e.判断数据块是否扫描完毕,若是,则修复结束,若否,则返回步骤a。
本发明的有益效果是由于本发明对数据的操作步骤添加有特定含义的标记,系统启动时通过检查数据块的标记判断是否有掉电发生,并针对掉电情景进行修复,掉电修复时仅需要判断是否有特定含义的标记,因此修复过程时间短,从而提高了数据的修复速度。另外由于本发明的嵌入式设备不需要额外的备份空间,因此提高了存储器的使用率。


图1至4是写数据时的数据区示意图。
图5是本发明嵌入式设备的数据掉电后修复数据时的方法流程图。
具体实施例方式
本发明的嵌入式设备的数据掉电保护和修复方法不仅适用于建立在文件系统之上的数据存取方法,也适用于直接操作存储设备的数据存取方法,存储设备包括闪存、磁盘、微硬盘、SD/MMC等存储卡。
本发明的嵌入式设备的数据掉电保护方法为将修改数据的操作步骤划分为稳态和暂态,原子操作属于稳态,多步操作的最后一步完成后是稳态,否则其前溯操作属于暂态;对每步数据操作附加一个标记,操作完成后写入该标记;当多步操作的最后一步完成时,将其前溯操作的暂态标记改写为稳态标记;开机访问数据时,扫描所有标记,发现有暂态操作的标记时,废弃未完成的动作,恢复数据之前的状态。
由于对数据的操作步骤添加有特定含义的标记,系统启动时通过检查数据块的标记判断是否有掉电发生,并针对掉电情景进行修复。掉电修复时仅需要判断是否有特定含义的标记,因此修复过程时间短。
请参阅图1至图4,是本发明的一种具体实施方式
写数据时的数据区示意图,其将写数据的过程分为A、B、C三个步骤,C未完成之前A、B是暂态,C完成后A、B、C是稳态。
步骤A写数据时在数据末尾附加一个暂态标记f1,该标记可以是1个字节或2个字节,保证写标记的动作是原子操作。标记内容自行定义,不与其它标记冲突即可,此时数据区示意图为图1;步骤B写数据,将标记写为暂态标记f2,此时数据区示意图为图2;步骤C写数据完成后,其本身标记为稳态标记s3,此时数据区示意图为图3;将f1、f2改写为稳态标记s1、s2,此时数据区示意图为图4。
需要指出的是,具体标记的内容只是表明标记的类别,无论设定为任何内容,都属于本发明范围之内。
请参阅图5,本发明的嵌入式设备的数据掉电修复方法包括以下步骤a.启动嵌入式设备,依次扫描数据块的标记;b.判断是否是暂态标记,若是,则执行步骤c,若否,则执行步骤e;c.删除该数据块;d.判断是否有相关联的下一块,若有,则返回步骤c,若无,则执行步骤e;e.判断数据块是否扫描完毕,若是,则修复结束,若否,则返回步骤a。
举例说明,当写数据时的数据区如图3所示时掉电,则根据图5所示的重启后修复过程可知因为掉电时存在暂态标记f1、f2,所以此次写数据操作不可靠,应删除数据块A、B、C。这样数据恢复到写操作之前的状态,虽然丢失了一次写操作的数据,但整体数据是可用的。
权利要求
1.一种嵌入式设备的数据掉电保护方法,其特征在于该保护方法包括将修改数据的操作步骤划分为稳态和暂态,原子操作属于稳态,多步操作的最后一步完成后是稳态,否则其前溯操作属于暂态;对每步数据操作附加一个标记,操作完成后写入该标记;当多步操作的最后一步完成时,将其前溯操作的暂态标记改写为稳态标记;开机访问数据时,扫描所有标记,发现有暂态操作的标记时,废弃未完成的动作,恢复数据之前的状态。
2.如权利要求1所述的嵌入式设备的数据掉电保护方法,其特征在于该方法适用于建立在文件系统之上的数据存取方法,也适用于直接操作存储设备的数据存取方法。
3.如权利要求2所述的嵌入式设备的数据掉电保护方法,其特征在于该存储设备包括闪存、磁盘、微硬盘或SD/MMC存储卡。
4.如权利要求1所述的嵌入式设备的数据掉电保护方法,其特征在于该标记内容可自行定义,不与其它标记冲突即可。
5.一种嵌入式设备的数据掉电修复方法,其特征在于包括以下步骤a.启动嵌入式设备,依次扫描数据块的标记;b.判断是否是暂态标记,若是,则执行步骤c,若否,则执行步骤e;c.删除该数据块;d.判断是否有相关联的下一块,若有,则返回步骤c,若无,则执行步骤e;e.判断数据块是否扫描完毕,若是,则修复结束,若否,则返回步骤a。
6.如权利要求5所述的嵌入式设备的数据掉电修复方法,其特征在于该方法适用于建立在文件系统之上的数据存取方法,也适用于直接操作存储设备的数据存取方法。
7.如权利要求6所述的嵌入式设备的数据掉电修复方法,其特征在于该存储设备包括闪存、磁盘、微硬盘或SD/MMC存储卡。
8.如权利要求5所述的嵌入式设备的数据掉电修复方法,其特征在于该标记内容可自行定义,不与其它标记冲突即可。
全文摘要
本发明涉及一种嵌入式设备的数据掉电保护和修复方法,该保护方法包括将修改数据的操作步骤划分为稳态和暂态,原子操作属于稳态,多步操作的最后一步完成后是稳态,否则其前溯操作属于暂态;对每步数据操作附加一个标记,操作完成后写入该标记;当多步操作的最后一步完成时,将其前溯操作的暂态标记改写为稳态标记;开机访问数据时,扫描所有标记,发现有暂态操作的标记时,废弃未完成的动作,恢复数据之前的状态。本发明使数据修复过程时间短,从而提高了数据的修复速度。
文档编号G06F11/14GK1936853SQ20051003753
公开日2007年3月28日 申请日期2005年9月22日 优先权日2005年9月22日
发明者李德华 申请人:康佳集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1