CN112433884B - 防写时掉电数据破坏的双备份交叉存储方法 - Google Patents
防写时掉电数据破坏的双备份交叉存储方法 Download PDFInfo
- Publication number
- CN112433884B CN112433884B CN202011262787.0A CN202011262787A CN112433884B CN 112433884 B CN112433884 B CN 112433884B CN 202011262787 A CN202011262787 A CN 202011262787A CN 112433884 B CN112433884 B CN 112433884B
- Authority
- CN
- China
- Prior art keywords
- chain
- pointer
- node
- tail pointer
- writing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/08—Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
- G07C5/0841—Registering performance data
- G07C5/085—Registering performance data using electronic data carriers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明揭示了防写时掉电数据破坏的双备份交叉存储方法,构建环状链式存储结构,环状链式存储结构包括节点1至节点n的环状存储链、及进行写的链尾指针,链尾指针包括对应写入节点n的链尾指针a和对应写入节点n‑1的链尾指针b,链尾指针a和链尾指针b在环状存储链上进行交替数据覆盖更新。本发明仅需要构建环状链式存储结构即可满足可靠的掉电存储保护,降低了硬件成本。具备交叉更替的断点续存功能,能实现数据追溯,在突发性掉电过程中能起到链尾修复,有效防止数据破坏。
Description
技术领域
本发明涉及防写时掉电数据破坏的双备份交叉存储方法,属于写数据保护的技术领域。
背景技术
飞行器类的控制器通常要求长期连续记录自身或关联设备的参数、状态、或故障等重要现场数据信息,用于故障定位或责任追踪。前述数据信息的记录一般是对非易失性存储器进行操作。非易失性存储器的写操作发生在掉电时,存在数据写入不完整或存储错误的风险,致使重要的数据丢失,数据无法续存的问题。解决这个问题,方法一般包括:软关机功能,在彻底断电之前先保存数据;其次,硬件设计上增加储能电路,断电之后,留存足够的供电时间供保存数据使用。通常情况下,前述控制器产品一般不具有软关机的功能,产品的断电操作具有突发性和随机性的特点。而硬件解决方法造成产品成本增加和可靠性的下降。
发明内容
本发明的目的是解决上述现有技术的不足,针对传统突发性掉电导致存储数据不完整的问题,提出防写时掉电数据破坏的双备份交叉存储方法。
为了达到上述目的,本发明所采用的技术方案为:
防写时掉电数据破坏的双备份交叉存储方法,包括:构建环状链式存储结构,所述环状链式存储结构包括节点1至节点n的环状存储链、及进行写的链尾指针,
所述链尾指针包括对应写入节点n的链尾指针a和对应写入节点n-1的链尾指针b,所述链尾指针a和链尾指针b在环状存储链上进行交替数据覆盖更新。
优选地,所述链尾指针包括指针标志FLAG‘T’、指向全局编码GUID、指向节点位置编码POS、及校验码CHECKCODE,
所述环状链式存储结构的节点包括节点标志字符FLAG‘F’和‘L’、节点全局编码GUID、位置编码POS、节点信息CONTEXT。
优选地,在断电复位时,
读取链尾指针a和链尾指针b数据进行完整性判断,
如果链尾指针a完整而链尾指针b损坏,则使用链尾指针a修复链尾指针b,并将链尾指针a确认为最新;
如果链尾指针b完整而链尾指针a损坏,则使用链尾指针b修复链尾指针a,并将链尾指针b确认为最新;
如果链尾指针a完整且链尾指针b完整,则比较链尾指针a和链尾指针b的指向全局编码GUID,较大者所属链尾指针确认为最新;
如果链尾指针a损坏且链尾指针b损坏,则重置链尾指针a和链尾指针b,默认链尾指针a为最新。
本发明的有益效果主要体现在:
1.仅需要构建环状链式存储结构即可满足可靠的掉电存储保护,降低了硬件成本。
2.具备交叉更替的断点续存功能,能实现数据追溯,在突发性掉电过程中能起到链尾修复,有效防止数据破坏。
附图说明
图1是本发明双备份交叉存储方法中环状链式存储结构的结构示意图。
图2是本发明中链尾指针数据结构图。
图3是本发明中节点数据结构图。
图4是链尾指针判断示意图。
具体实施方式
本发明提供防写时掉电数据破坏的双备份交叉存储方法。以下结合附图对本发明技术方案进行详细描述,以使其更易于理解和掌握。
本发明设计一种环状链式存储结构,如图1所示,用于存储节点数据。从上到下,依次是,节点n,节点n-1、······节点2和节点1。节点1下面是,链尾指针a和链尾指针b,其存储在固定的位置。链的尾部节点位置采用双备份指针:分别存储链尾节点(n)和链尾次新节点(n-1)的位置。
写入下一个节点(n+1)成功后,更新存储原链尾次1。新节点位置的链尾指针b,使b指向节点(n+1),此时链尾指针a和链尾指针b分别存储链尾次新节点(n)和新节点的位置。下次写入新的节点,则更新a,如此交替进行。写时如发生突发性掉电导致a或b失败,则总能保证a和b其一的完整性,进而达到链式断点续存的目的。
同时,如写入节点如达到最大许可,则从节点1处覆盖。链尾指针a和链尾指针b的完整性在上电时完成检查,并修复受破坏的指针。
采用环状链式存储结构,连续存储节点数据;采用双备份链尾指针交替存储链尾信息。
环状链式存储结构保障有限存储资源下,可记录连续一段时间内数据。链式节点记录数据信息,包含节点标志字符(FLAG‘F’和‘L’)、节点全局编码(GUID)、其在非易失性存储器的位置编码(POS)、以及节点信息(CONTEXT)。
链尾指针存储在非易失性存储器的独立的固定的位置,其采用双备份交替存储,可避免写时断电致使破坏的情况。链尾指针包括:指针标志(FLAG‘T’)、指向全局编码(GUID)、指向节点的位置编码(POS)以及校验码(CHECKCODE)。
参阅图2,其是链尾指针数据结构图,其FLAG为固定字符‘T’,代表“Tail”,使用一个字节存储;GUID,用于统计从投入始至今,存储的节点个数,其实为32位数据,占4个字节空间,总共可用于记录4294967296个节点,其也用于链尾指针(a/b)的比较,判断其中哪一个指向新节点(n),哪一个次新节点(n-1),该GUID每次记录数据有效,则递加更新。POS记录了所指节点在存储器中的位置。CHECKCODE用于结合FLAG,校验链尾指针的完整性(完整/损坏)。
参阅图3,其是链式节点数据结构图,其FLAG为固定字符“FL”,代表“FLASH”。GUID为其独一无二的身份确认,同链尾指针GUID;POS记录其在存储器中的位置;全局身份标识ID、以及校验字KEY。标识字符固定为:‘T’,为“Tail”首字母;位置POS包含其描述数据信息的存储位置;CONTEXT为自定义节点数据。
参阅图4,其是链尾指针判断示意图。软件复位之后,从固定位置处读取链尾指针(a和b),判断a和b的完整性。如果a完整而b损坏,则使用a指针修复b,并将a确认为最新;如果b完整而a损坏,则使用b指针a,并将b确认为最新;如果a完整且b完整,则比较链尾a和b的GUID,较大者所属指针确认为最新;如果a损坏且b损坏,则重置链尾a和b,默认a为新。
对交替数据覆盖更新进行说明。其为周期性操作,开始获取当前最新的链尾指针,从其中获取GUID和POS,设置待写节点的GUID和POS,并写入到POS存储位置。如果成功,则更新GUID和POS到原次新链尾指针。如果失败,则不更新。如果更新次新链尾指针成功,则设置其为当前最新的链尾指针,反之则不。
本专利提出的交叉存储方式和数据结构设计,能够解决突发性掉电导致的数据信息存储不完整,无法断点继续存储的问题。且实现起来简单可靠。可直接应用到控制器类的数据信息存储功能的需求解决方案中。
通过以上描述可以发现,本发明防写时掉电数据破坏的双备份交叉存储方法,仅需要构建环状链式存储结构即可满足可靠的掉电存储保护,降低了硬件成本。具备交叉更替的断点续存功能,能实现数据追溯,在突发性掉电过程中能起到链尾修复,有效防止数据破坏。
以上对本发明的技术方案进行了充分描述,需要说明的是,本发明的具体实施方式并不受上述描述的限制,本领域的普通技术人员依据本发明的精神实质在结构、方法或功能等方面采用等同变换或者等效变换而形成的所有技术方案,均落在本发明的保护范围之内。
Claims (2)
1.防写时掉电数据破坏的双备份交叉存储方法,其特征在于包括:
构建环状链式存储结构,所述环状链式存储结构包括节点1至节点n的环状存储链、及进行写的链尾指针,
所述链尾指针包括对应写入节点n的链尾指针a和对应写入节点n-1的链尾指针b,所述链尾指针a和链尾指针b在环状存储链上进行交替数据覆盖更新,
在断电复位时,
读取链尾指针a和链尾指针b数据进行完整性判断,
如果链尾指针a完整而链尾指针b损坏,则使用链尾指针a修复链尾指针b,并将链尾指针a确认为最新;
如果链尾指针b完整而链尾指针a损坏,则使用链尾指针b修复链尾指针a,并将链尾指针b确认为最新;
如果链尾指针a完整且链尾指针b完整,则比较链尾指针a和链尾指针b的指向全局编码GUID,较大者所属链尾指针确认为最新;
如果链尾指针a损坏且链尾指针b损坏,则重置链尾指针a和链尾指针b,默认链尾指针a为最新。
2.根据权利要求1所述防写时掉电数据破坏的双备份交叉存储方法,其特征在于:
所述链尾指针包括指针标志FLAG‘T’、指向全局编码GUID、指向节点位置编码POS、及校验码CHECKCODE,
所述环状链式存储结构的节点包括节点标志字符FLAG‘F’和‘L’、节点全局编码GUID、位置编码POS、节点信息CONTEXT。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011262787.0A CN112433884B (zh) | 2020-11-12 | 2020-11-12 | 防写时掉电数据破坏的双备份交叉存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011262787.0A CN112433884B (zh) | 2020-11-12 | 2020-11-12 | 防写时掉电数据破坏的双备份交叉存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112433884A CN112433884A (zh) | 2021-03-02 |
CN112433884B true CN112433884B (zh) | 2022-10-21 |
Family
ID=74700697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011262787.0A Active CN112433884B (zh) | 2020-11-12 | 2020-11-12 | 防写时掉电数据破坏的双备份交叉存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112433884B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648982A (zh) * | 2016-12-15 | 2017-05-10 | 宁波迦南智能电气股份有限公司 | 一种电能表掉电保护数据存贮方法 |
CN109246036A (zh) * | 2017-07-10 | 2019-01-18 | 深圳市中兴微电子技术有限公司 | 一种处理分片报文的方法和装置 |
-
2020
- 2020-11-12 CN CN202011262787.0A patent/CN112433884B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648982A (zh) * | 2016-12-15 | 2017-05-10 | 宁波迦南智能电气股份有限公司 | 一种电能表掉电保护数据存贮方法 |
CN109246036A (zh) * | 2017-07-10 | 2019-01-18 | 深圳市中兴微电子技术有限公司 | 一种处理分片报文的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112433884A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106407050B (zh) | 一种数据存储方法 | |
US8793530B2 (en) | Controlling a solid state disk (SSD) device | |
CN106227680B (zh) | 一种数据处理及防掉电数据保护方法 | |
CN102033814B (zh) | 存取一闪存的方法以及相关的记忆装置 | |
CN103455386A (zh) | 一种修复出错数据的方法和设备 | |
CN101789269A (zh) | 固态存储器装置中的数据恢复 | |
CN106021002B (zh) | 一种嵌入式设备数据读写方法及装置 | |
CN104282342A (zh) | 闪存装置、存储器控制器及闪存的控制方法 | |
CN103594120A (zh) | 以读代写的存储器纠错方法 | |
CN111522684A (zh) | 一种同时纠正相变存储器软硬错误的方法及装置 | |
CN101923896A (zh) | 电子存储装置及其纠错方法 | |
CN105538917A (zh) | 一种防出错耗材芯片和控制方法 | |
CN112433884B (zh) | 防写时掉电数据破坏的双备份交叉存储方法 | |
CN116880781B (zh) | 一种存储设备及其控制方法 | |
CN117591335A (zh) | 闪存编程处理方法、装置、电子设备及存储介质 | |
CN106528342A (zh) | 一种具有云服务器备份的磁盘阵列容错装置 | |
JP2018136735A (ja) | メモリ制御装置及びメモリ制御方法 | |
CN113157490B (zh) | 一种芯片内嵌的Flash存储器和存储控制方法 | |
CN113884976B (zh) | 一种基于云平台的智能电表数据保护方法、系统 | |
CN113434086B (zh) | 数据存储方法、装置、非易失性存储器件和存储器 | |
CN115167761A (zh) | 一种智慧水务终端数据保护方法及系统 | |
CN112416246B (zh) | 一种高分辨率的存储电能数据的方法 | |
CN114860164A (zh) | 一种嵌入式系统数据存储结构及掉电数据恢复方法 | |
CN112835745B (zh) | 一种嵌入式系统高可靠存储方法 | |
CN108053861A (zh) | 智能型存储器装置中固件自我修复方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |