一种数据的存储与更新方法及装置的制作方法

文档序号:6372860阅读:206来源:国知局
专利名称:一种数据的存储与更新方法及装置的制作方法
技术领域
本发明涉及一种计算机数据的处理方法及装置,特别涉及一种数据的存储与更新方法及装置。
背景技术
计算机系统由于其系统的复杂性,一些对于系统很关键的核心数据是不允许丢失的,对于嵌入式系统更是如此。这些核心数据的丢失,对系统的破坏是致命的。
目前,对于系统数据的存储方式,一般是有以下几种情况其一,对数据进行一次性存储;其二,对数据进行二次存储并进行比对;其三,增加复杂的校验算法及纠错算法。对于前两种方式,对于一些如在操作过程中突然掉电等意外情况,存储数据出现瑕疵无法进行鉴别恢复。对于第三种方式,在运行复杂的校验算法及纠错算法时,需要占用系统大量的运算时间、降低计算机系统及其硬件的数据有效处理能力。

发明内容
为解决现有技术中存在的技术问题,本发明提供了一种在出现意外情况下数据更新中断后,重新上电可以快速并可靠地对数据进行更新的存储与更新方法及装置。本发明解决上述技术问题,所采用的技术方案是提供一种数据的存储与更新方法,包括以下步骤,步骤10,规划三个相同大小的存储区并分别存储更新前的相同数据,三个存储区依次是存储区SI、存储区S2与存储区S3 ;步骤20,依次对三个存储区进行数据更新的过程中发生意外事件,导致数据更新中断;步骤30,重新对三个存储区上电,依次读取存储区SI与存储区S2内存储的数据,如果存储区SI的数据与存储区S2的数据相同,则以存储区SI的数据为有效数据VD,并对存储区S3内的数据进行一致性更新,否则以存储区S3的数据为有效数据VD,并对存储区SI、存储区S2内的数据进行一致性更新。作为本发明的优选方案,所述步骤30进一步包括以下步骤,步骤31,对三个存储区上电,并分别读取存储区SI内的数据Dl与存储区S2内的数据D2 ;步骤32,对数据Dl与数据D2实行比较,如果数据Dl与数据D2相同,则进入步骤33,否则跳至步骤36 ;步骤33,读取存储区S3内的数据D3,并判断数据D3与数据D2是否相同,如果相同,则跳至步骤35 ;如果不同,则进入步骤34 ;步骤34,将数据Dl更新至存储区S3 ;步骤35,返回数据Dl作为有效数据VD,结束;步骤36,读取存储区S3内的数据D3,并判断数据D3与数据D2是否相同,如果相同,则跳至步骤38,否则进入步骤37 ;步骤37,将数据D3更新至存储区S2 ;步骤38,将数据D3更新至存储区SI ;步骤39,返回数据D3作为有效数据VD,结束。本发明解决上述技术问题,所采用的技术方案是提供一种数据的存储与更新装置,包括三个相同大小的存储区SI、存储区S2、存储区S3,且该三个存储区所存储的数据相同;在对上述三个存储区进行数据更新过程中因意外事件而没有更新完成;重新对三个存储区进行上电后,依次读取存储区SI与存储区S2内存储的数据,如果存储区SI的数据与存储区S2的数据相同,则以存储区SI的数据为有效数据VD,并对存储区S3内的数据进行一致性更新,否则以存储区S3的数据为有效数据VD,并对存储区SI、存储区S2内的数据进
行一致性更新。本发明所述技术方案相对于现有技术,取得的有益效果;本发明所述的数据的存储与更新方法及装置,利用三个存储区的冗余数据备份,通过简单的判断识别数据的有效性,即使在操作过程中发生意外事件(如掉电或复位),也不会出现丢失数据的现象。采用上述方案,不仅保证了数据的安全,而且其运算也非常简单,不需要占用大量的CPU(控制器)资源。


此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I是本发明所述的数据的存储与更新方法流程图; 图2是本发明所述的数据的存储与更新方法局部流程图;图3是本发明所述的数据的存储与更新方法过程图;图4是本发明所述的数据的存储与更新装置框图。
具体实施例方式为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。如图I、图3所示,本发明所述的数据的存储与更新方法,其特征在于,包括以下步骤10至步骤30。其中,步骤10,规划三个相同大小的存储区并分别存储更新前的相同数据,三个存储区依次是存储区SI、存储区S2与存储区S3。存储区可以根据需要,在主存储器、辅助存储器、高速缓冲存储器上进行开辟。数据可以是系统核心数据,也可以是对安全级别要求较高的其他数据。步骤20,依次对三个存储区进行数据更新的过程中发生意外事件,导致数据更新中断。意外事件可以是如掉电或复位等原因,并且可以在数据更新过程中的任何时间点发生。步骤30,重新对三个存储区上电,依次读取存储区SI与存储区S2内存储的数据,如果存储区SI的数据与存储区S2的数据相同,则以存储区SI的数据为有效数据VD,并对存储区S3内的数据进行一致性更新,否则以存储区S3的数据为有效数据VD,并对存储区SI、存储区S2内的数据进行一致性更新。对于步骤30,可以进一步包括以下步骤,如图2所示,步骤31,对三个存储区上电,并分别读取存储区SI内的数据Dl与存储区S2内的数据D2 ;步骤32,对数据Dl与数据D2实行比较,如果数据Dl与数据D2相同,则进入步骤33,否则跳至步骤36 ;步骤33,读取存储区S3内的数据D3,并判断数据D3与数据D2是否相同,如果相同,则跳至步骤35 ;如果不同,则进入步骤34 ;步骤34,将数据Dl更新至存储区S3 ;步骤35,返回数据Dl作为有效数据VD,结束;步骤36,读取存储区S3内的数据D3,并判断数据D3与数据D2是否相同,如果相同,则跳至步骤38,否则进入步骤37 ;步骤37,将数据D3更新至存储区S2 ;步骤38,将数据D3更新至存储区SI ;
步骤39,返回数据D3作为有效数据VD,结束。如图3所示,具体来讲,即是,X—写入之前存储区所存储的数据;Y—写入过程中存储区所存储的数据;Z—写入完成时存储区所存储的数据。序号I :在更新前发生意外事件。存储区SI内的数据Dl,存储区S2内的数据D2,存储区S3内的数据D3皆为原始数据X,由于D1=D2=D3=X,因此,重新上电后,存储区S2、存储区S3内的数据依然是X,以存储区SI内的数据X作为有效数据VD返回。序号2,正在写入存储区SI时发生意外事件。此时由于存储区SI内的数据Dl发生变化,Dl=Y,而D2=D3=X。由于存储区SI内的数据Dl没有更新完成,数据失去了完整性。因此,重新上电后,以存储区S3内的数据D3将存储区SI内的数据Y更新为X,以存储区S3内的数据X作为有效数据VD返回。序号3,当正好写完存储区SI时发生意外事件。此时存储区SI内的数据Dl发生变化,D1=Z。虽然此时存储区内的数据Dl更新完成,数据具有完整性,但计算机较难判断或者判断需要花费更多的硬件成本。此时,处理方式如序号2,即是,以存储区S3内的数据D3将存储区SI内的数据Y更新为X,以存储区S3内的数据X作为有效数据VD返回。序号4,正在写入存储区S2时发生意外事件。此时,存储区SI内的数据Dl更新完成,Dl=Z ;而存储区S2内的数据D2没有更新完成,失去数据的完整性,D2=Y ;存储区S3内的数据D3依然是原始数据X。此时,以存储区S3内的数据X依次更新存储区S2与存储区SI内的数据,使D3=D2=D1=X,并以存储区S3内的数据X作为有效数据VD返回。序号5,当正好写完存储区S2时发生意外事件。此时存储区SI内的数据Dl、存储区S2内的数据D2的关系是D1=D2=Z。此时,以存储区SI内的数据Z更新存储区S3内的数据,使D1=D2=D3=Z,并以存储区SI内的数据Z作为有效数据VD返回。序号6,正在写入存储区S3时发生意外事件。此时,存储区SI、存储区S2、存储区S3内的数据关系是D1=D2=Z,D3=Y。此时,以存储区SI内的数据Z更新存储区S3内的数据,使D1=D2=D3=Z,并以存储区SI内的数据Z作为有效数据VD返回。序号7,当正好写完存储区S3时发生意外事件。此时,存储区SI、存储区S2、存储区S3内的数据关系是D1=D2=D3=Z。此时,以存储区SI内的数据Z作为有效数据VD返回。如图4所示,本发明为解决现有技术中存在的技术问题,还提供了一种数据的存储与更新装置,包括三个相同大小的存储区SI、存储区S2、存储区S3,且该三个存储区所存储的数据相同。三个存储区的数据交互需要控制器(CPU)进行控制。在对上述三个存储区进行数据更新过程中因意外事件而更新中断;重新对三个存储区进行上电后,依次读取存储区SI与存储区S2内存储的数据,如果存储区SI的数据与存储区S2的数据相同,则以存储区SI的数据为有效数据VD,并对存储区S3内的数据进行一致性更新,否则以存储区S3的数据为有效数据VD,并对存储区SI、存储区S2内的数据进行一致性更新。存储区SI、存储区S2、存储区S3对数据的处理过程,与所述的数据的存储与更新方法相同,在此不累述。上述说明示出并描述了本发明的优选实施例,如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改 动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
权利要求
1.一种数据的存储与更新方法,其特征在于,包括以下步骤, 步骤10,规划三个相同大小的存储区并分别存储更新前的相同数据,三个存储区依次是存储区SI、存储区S2与存储 区S3 ; 步骤20,依次对三个存储区进行数据更新的过程中发生意外事件,导致数据更新中断; 步骤30,重新对三个存储区上电,依次读取存储区SI与存储区S2内存储的数据,如果存储区SI的数据与存储区S2的数据相同,则以存储区SI的数据为有效数据VD,并对存储区S3内的数据进行一致性更新,否则以存储区S3的数据为有效数据VD,并对存储区SI、存储区S2内的数据进行一致性更新。
2.根据权利要求I所述的数据的存储与更新方法,其特征在于,所述步骤30进一步包括以下步骤, 步骤31,对三个存储区上电,并分别读取存储区SI内的数据Dl与存储区S2内的数据D2 ; 步骤32,对数据Dl与数据D2实行比较,如果数据Dl与数据D2相同,则进入步骤33,否则跳至步骤36 ; 步骤33,读取存储区S3内的数据D3,并判断数据D3与数据D2是否相同,如果相同,则跳至步骤35 ;如果不同,则进入步骤34 ; 步骤34,将数据Dl更新至存储区S3 ; 步骤35,返回数据Dl作为有效数据VD,结束; 步骤36,读取存储区S3内的数据D3,并判断数据D3与数据D2是否相同,如果相同,则跳至步骤38,否则进入步骤37 ; 步骤37,将数据D3更新至存储区S2 ; 步骤38,将数据D3更新至存储区SI ; 步骤39,返回数据D3作为有效数据VD,结束。
3.一种数据的存储与更新装置,其特征在于,包括三个相同大小的存储区SI、存储区S2、存储区S3,且该三个存储区所存储的数据相同;在对上述三个存储区进行数据更新过程中因意外事件而没有更新完成;重新对三个存储区进行上电后,依次读取存储区SI与存储区S2内存储的数据,如果存储区SI的数据与存储区S2的数据相同,则以存储区SI的数据为有效数据VD,并对存储区S3内的数据进行一致性更新,否则以存储区S3的数据为有效数据VD,并对存储区SI、存储区S2内的数据进行一致性更新。
全文摘要
本发明公开了一种数据的存储与更新方法及装置,规划三个相同大小的存储区并分别存储更新前的相同数据;依次对三个存储区进行数据更新的过程中发生意外事件,导致数据更新中断;重新对三个存储区上电,依次读取存储区S1与存储区S2内存储的数据,如果存储区S1的数据与存储区S2的数据相同,则以存储区S1的数据为有效数据VD,并对存储区S3内的数据进行一致性更新,否则以存储区S3的数据为有效数据VD,并对存储区S1、存储区S2内的数据进行一致性更新。采用上述方案,利用三个存储区的冗余数据备份,通过简单的判断识别数据的有效性,即使在操作过程中发生意外事件(如掉电或复位),也不会出现丢失数据的现象。
文档编号G06F11/14GK102890647SQ20121023044
公开日2013年1月23日 申请日期2012年7月4日 优先权日2012年7月4日
发明者李松涛, 徐越, 李林, 陈永坤 申请人:漳州科能电器有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1