防写时掉电数据破坏的双备份交叉存储方法技术

技术编号:27532469 阅读:23 留言:0更新日期:2021-03-03 11:12
本发明专利技术揭示了防写时掉电数据破坏的双备份交叉存储方法,构建环状链式存储结构,环状链式存储结构包括节点1至节点n的环状存储链、及进行写的链尾指针,链尾指针包括对应写入节点n的链尾指针a和对应写入节点n

【技术实现步骤摘要】
防写时掉电数据破坏的双备份交叉存储方法


[0001]本专利技术涉及防写时掉电数据破坏的双备份交叉存储方法,属于写数据保护的


技术介绍

[0002]飞行器类的控制器通常要求长期连续记录自身或关联设备的参数、状态、或故障等重要现场数据信息,用于故障定位或责任追踪。前述数据信息的记录一般是对非易失性存储器进行操作。非易失性存储器的写操作发生在掉电时,存在数据写入不完整或存储错误的风险,致使重要的数据丢失,数据无法续存的问题。解决这个问题,方法一般包括:软关机功能,在彻底断电之前先保存数据;其次,硬件设计上增加储能电路,断电之后,留存足够的供电时间供保存数据使用。通常情况下,前述控制器产品一般不具有软关机的功能,产品的断电操作具有突发性和随机性的特点。而硬件解决方法造成产品成本增加和可靠性的下降。

技术实现思路

[0003]本专利技术的目的是解决上述现有技术的不足,针对传统突发性掉电导致存储数据不完整的问题,提出防写时掉电数据破坏的双备份交叉存储方法。
[0004]为了达到上述目的,本专利技术所采用的技术方案为:
[0005]防写时掉电数据破坏的双备份交叉存储方法,包括:构建环状链式存储结构,所述环状链式存储结构包括节点1至节点n的环状存储链、及进行写的链尾指针,
[0006]所述链尾指针包括对应写入节点n的链尾指针a和对应写入节点n-1的链尾指针b,所述链尾指针a和链尾指针b在环状存储链上进行交替数据覆盖更新。
[0007]优选地,所述链尾指针包括指针标志FLAG<br/>‘
T

、指向全局编码GUID、指向节点位置编码POS、及校验码CHECKCODE,
[0008]所述环状链式存储结构的节点包括节点标志字符FLAG

F



L

、节点全局编码GUID、位置编码POS、节点信息CONTEXT。
[0009]优选地,在断电复位时,
[0010]读取链尾指针a和链尾指针b数据进行完整性判断,
[0011]如果链尾指针a完整而链尾指针b损坏,则使用链尾指针a修复链尾指针b,并将链尾指针a确认为最新;
[0012]如果链尾指针b完整而链尾指针a损坏,则使用链尾指针b修复链尾指针a,并将链尾指针b确认为最新;
[0013]如果链尾指针a完整且链尾指针b完整,则比较链尾指针a和链尾指针b的指向全局编码GUID,较大者所属链尾指针确认为最新;
[0014]如果链尾指针a损坏且链尾指针b损坏,则重置链尾指针a和链尾指针b,默认链尾指针a为最新。
[0015]本专利技术的有益效果主要体现在:
[0016]1.仅需要构建环状链式存储结构即可满足可靠的掉电存储保护,降低了硬件成本。
[0017]2.具备交叉更替的断点续存功能,能实现数据追溯,在突发性掉电过程中能起到链尾修复,有效防止数据破坏。
附图说明
[0018]图1是本专利技术双备份交叉存储方法中环状链式存储结构的结构示意图。
[0019]图2是本专利技术中链尾指针数据结构图。
[0020]图3是本专利技术中节点数据结构图。
[0021]图4是链尾指针判断示意图。
具体实施方式
[0022]本专利技术提供防写时掉电数据破坏的双备份交叉存储方法。以下结合附图对本专利技术技术方案进行详细描述,以使其更易于理解和掌握。
[0023]本专利技术设计一种环状链式存储结构,如图1所示,用于存储节点数据。从上到下,依次是,节点n,节点n-1、
······
节点2和节点1。节点1下面是,链尾指针a和链尾指针b,其存储在固定的位置。链的尾部节点位置采用双备份指针:分别存储链尾节点(n)和链尾次新节点(n-1)的位置。
[0024]写入下一个节点(n+1)成功后,更新存储原链尾次1。新节点位置的链尾指针b,使b指向节点(n+1),此时链尾指针a和链尾指针b分别存储链尾次新节点(n)和新节点的位置。下次写入新的节点,则更新a,如此交替进行。写时如发生突发性掉电导致a或b失败,则总能保证a和b其一的完整性,进而达到链式断点续存的目的。
[0025]同时,如写入节点如达到最大许可,则从节点1处覆盖。链尾指针a和链尾指针b的完整性在上电时完成检查,并修复受破坏的指针。
[0026]采用环状链式存储结构,连续存储节点数据;采用双备份链尾指针交替存储链尾信息。
[0027]环状链式存储结构保障有限存储资源下,可记录连续一段时间内数据。链式节点记录数据信息,包含节点标志字符(FLAG

F



L

)、节点全局编码(GUID)、其在非易失性存储器的位置编码(POS)、以及节点信息(CONTEXT)。
[0028]链尾指针存储在非易失性存储器的独立的固定的位置,其采用双备份交替存储,可避免写时断电致使破坏的情况。链尾指针包括:指针标志(FLAG

T

)、指向全局编码(GUID)、指向节点的位置编码(POS)以及校验码(CHECKCODE)。
[0029]参阅图2,其是链尾指针数据结构图,其FLAG为固定字符

T

,代表“Tail”,使用一个字节存储;GUID,用于统计从投入始至今,存储的节点个数,其实为32位数据,占4个字节空间,总共可用于记录4294967296个节点,其也用于链尾指针(a/b)的比较,判断其中哪一个指向新节点(n),哪一个次新节点(n-1),该GUID每次记录数据有效,则递加更新。POS记录了所指节点在存储器中的位置。CHECKCODE用于结合FLAG,校验链尾指针的完整性(完整/损坏)。
[0030]参阅图3,其是链式节点数据结构图,其FLAG为固定字符“FL”,代表“FLASH”。GUID为其独一无二的身份确认,同链尾指针GUID;POS记录其在存储器中的位置;全局身份标识ID、以及校验字KEY。标识字符固定为:

T

,为“Tail”首字母;位置POS包含其描述数据信息的存储位置;CONTEXT为自定义节点数据。
[0031]参阅图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为新。
[0032]对交替数据覆盖更新进行说明。其为周期性操作,开始获取当前最新的链尾指针,从其中获取GUID和POS,设置待写节点的GUID和POS,并写入到POS存储位置。如果成功,则更新GUID和POS到原次新链尾指针。如果失败本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.防写时掉电数据破坏的双备份交叉存储方法,其特征在于包括:构建环状链式存储结构,所述环状链式存储结构包括节点1至节点n的环状存储链、及进行写的链尾指针,所述链尾指针包括对应写入节点n的链尾指针a和对应写入节点n-1的链尾指针b,所述链尾指针a和链尾指针b在环状存储链上进行交替数据覆盖更新。2.根据权利要求1所述防写时掉电数据破坏的双备份交叉存储方法,其特征在于:所述链尾指针包括指针标志FLAG

T

、指向全局编码GUID、指向节点位置编码POS、及校验码CHECKCODE,所述环状链式存储结构的节点包括节点标志字符FLAG

F


【专利技术属性】
技术研发人员:张剑平孔康黄荣
申请(专利权)人:苏州长风航空电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1