本發明專利技術公開了一種數據的存儲與更新方法及裝置,規劃三個相同大小的存儲區并分別存儲更新前的相同數據;依次對三個存儲區進行數據更新的過程中發生意外事件,導致數據更新中斷;重新對三個存儲區上電,依次讀取存儲區S1與存儲區S2內存儲的數據,如果存儲區S1的數據與存儲區S2的數據相同,則以存儲區S1的數據為有效數據VD,并對存儲區S3內的數據進行一致性更新,否則以存儲區S3的數據為有效數據VD,并對存儲區S1、存儲區S2內的數據進行一致性更新。采用上述方案,利用三個存儲區的冗余數據備份,通過簡單的判斷識別數據的有效性,即使在操作過程中發生意外事件(如掉電或復位),也不會出現丟失數據的現象。
【技術實現步驟摘要】
本專利技術涉及一種計算機數據的處理方法及裝置,特別涉及一種數據的存儲與更新方法及裝置。
技術介紹
計算機系統由于其系統的復雜性,一些對于系統很關鍵的核心數據是不允許丟失的,對于嵌入式系統更是如此。這些核心數據的丟失,對系統的破壞是致命的。 目前,對于系統數據的存儲方式,一般是有以下幾種情況其一,對數據進行一次性存儲;其二,對數據進行二次存儲并進行比對;其三,增加復雜的校驗算法及糾錯算法。對于前兩種方式,對于一些如在操作過程中突然掉電等意外情況,存儲數據出現瑕疵無法進行鑒別恢復。對于第三種方式,在運行復雜的校驗算法及糾錯算法時,需要占用系統大量的運算時間、降低計算機系統及其硬件的數據有效處理能力。
技術實現思路
為解決現有技術中存在的技術問題,本專利技術提供了一種在出現意外情況下數據更新中斷后,重新上電可以快速并可靠地對數據進行更新的存儲與更新方法及裝置。本專利技術解決上述技術問題,所采用的技術方案是提供一種數據的存儲與更新方法,包括以下步驟,步驟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 本文檔來自技高網...
【技術保護點】
一種數據的存儲與更新方法,其特征在于,包括以下步驟,步驟10,規劃三個相同大小的存儲區并分別存儲更新前的相同數據,三個存儲區依次是存儲區S1、存儲區S2與存儲區S3;步驟20,依次對三個存儲區進行數據更新的過程中發生意外事件,導致數據更新中斷;步驟30,重新對三個存儲區上電,依次讀取存儲區S1與存儲區S2內存儲的數據,如果存儲區S1的數據與存儲區S2的數據相同,則以存儲區S1的數據為有效數據VD,并對存儲區S3內的數據進行一致性更新,否則以存儲區S3的數據為有效數據VD,并對存儲區S1、存儲區S2內的數據進行一致性更新。
【技術特征摘要】
【專利技術屬性】
技術研發人員:李松濤,徐越,李林,陳永坤,
申請(專利權)人:漳州科能電器有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。