一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种实现掉电保持的数据存储方法、系统、设备以及介质与流程

2022-04-30 13:49:13 来源:中国专利 TAG:


1.本发明涉及数据存储技术领域,尤其涉及一种实现掉电保持的数据存储方法、系统、设备以及介质。


背景技术:

2.应用程序向硬件设备中写入数据时,如果遇到突发掉电,往往会导致内存数据异常,例如缺失、乱序等。重启程序后,载入异常数据会带来各种问题,轻则导致运行逻辑混乱,重则导致程序卡死、甚至崩溃。因此如何保证写时掉电硬件内存数据的正确性,具有重要意义。
3.目前掉电保持的主要处理手段有两种:一种是应用程序增加日志文件,通过日志文件来分析掉电时数据是否已经写入成功;另一种则是增加备用电源,当主供电模块掉电时,备用电源临时供电,保证写数据操作进行下去。但是,目前现有技术存在如下缺陷:检测条件苛刻,无法实现自动化,操作不方便;数据不可恢复,无法保证应用程序总是能够获取有效数据。


技术实现要素:

4.(一)要解决的技术问题
5.鉴于现有技术的上述缺点、不足,本发明提供一种实现掉电保持的数据存储方法、系统、设备以及介质,其解决了现有技术检测条件苛刻,无法实现自动化,操作不方便;以及数据不可恢复,无法保证应用程序总是能够获取有效数据的技术问题。
6.(二)技术方案
7.为了达到上述目的,本发明采用的主要技术方案包括:
8.第一方面,本发明实施例提供一种实现掉电保持的数据存储方法,包括:
9.在向硬件设备内存写入数据时,先通过控制头将数据写入a数据区,再通过所述控制头将数据同步到b数据区;
10.通过所述控制头判断a、b数据区的写入数据是否有效:
11.若a、b数据区的写入数据均有效,则在掉电后取a数据区的数据保存;
12.若a、b数据区的写入数据仅一个有效,则在掉电后取有效数据区的数据保存;
13.其中,所述硬件设备内存包括控制头、a数据区以及b数据区。
14.可选地,所述控制头存储有:a、b数据区的容量、实际有效数据长度以及写标志位。
15.可选地,所述a数据区和b数据区的容量均一致。
16.可选地,在向硬件设备内存写入数据时,先通过控制头将数据写入a数据区,包括:
17.在向硬件设备内存写入数据时,先将所述控制头中a数据区的写标志置位,将数据写入a数据区;
18.待写入操作完成再将a数据区的写标志复位,并在所述控制头中更新a数据区的实际有效数据长度。
19.可选地,再通过所述控制头将数据同步到b数据区包括:
20.先将所述控制头中b数据区的写标志置位,将a数据区的数据同步写入至b数据区;
21.待写入操作完成再将b数据区的写标志复位,并更新b数据区的有效数据长度。
22.可选地,通过所述控制头判断a、b数据区的写入数据是否有效包括:
23.读取所述控制头中a数据区的写标志;
24.若读取结果为false,说明上次a数据区的写入操作完成,则判断a数据区的数据有效;
25.若读取结果为true,说明上次a数据区的写入操作被掉电打断,则判断a数据区的数据无效,并读取所述控制头中b数据区的写标志;
26.在b数据区的写标志读取结果为false时,判断b数据区的数据有效。
27.可选地,每完成一次写入操作,均将所述控制头中的a数据区/b数据区的写标志复位,并将a数据区/b数据区的实际有效长度更新。
28.第二方面,本发明实施例提供一种实现掉电保持的数据存储系统,包括:
29.数据写入模块,用于在向硬件设备内存写入数据时,先通过控制头将数据写入a数据区,再通过所述控制头将数据同步到b数据区;
30.有效性判断模块,用于通过所述控制头判断a、b数据区的写入数据是否有效:
31.掉电取用模块,用于在a、b数据区的写入数据均有效时,则在掉电后取a数据区数据保存;在a、b数据区的写入数据仅一个有效时,则在掉电后取有效数据区的数据保存;
32.其中,所述硬件设备内存包括控制头、a数据区以及b数据区。
33.第三方面,本发明实施例提供一种实现掉电保持的数据存储设备,包括:
34.至少一个应用程序数据库;
35.以及与所述至少一个应用程序数据库通信连接的硬件设备内存;
36.其中,所述应用程序数据库存储有可被所述至少一个硬件设备内存执行的指令,所述指令被所述至少一个硬件设备内存执行,以使所述至少一个硬件设备内存能够执行如上所述的一种实现掉电保持的数据存储方法。
37.第四方面,本发明实施例提供一种计算机可读介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如上所述的一种实现掉电保持的数据存储方法。
38.(三)有益效果
39.本发明的有益效果是:应用本发明的方案,在应用程序载入硬件内存数据时,可自动检测数据是否有效,无需人工干预;即使写时掉电导致内存数据异常,也能保证应用程序能获取到有效的数据;掉电导致内存数据异常时,无需手动格式化内存,可由应用程序自动管控;本发明的方案无需备用电源支持,省去备用电源带来的额外开销,性价比高于现有技术,具备较大的推广意义。
附图说明
40.图1为本发明实施例提出的一种实现掉电保持的数据存储方法的流程示意图;
41.图2为本发明实施例提出的一种实现掉电保持的数据存储方法的硬件设备内存的组成示意图;
42.图3为本发明实施例提出的一种实现掉电保持的数据存储方法的步骤s1的一部分
具体流程示意图;
43.图4为本发明实施例提出的一种实现掉电保持的数据存储方法的步骤s1的另一部分具体流程示意图;
44.图5为本发明实施例提出的一种实现掉电保持的数据存储方法的步骤s2的具体流程示意图;
45.图6为本发明实施例提出的一种实现掉电保持的数据存储方法的数据写入流程示意图;
46.图7为本发明实施例提出的一种实现掉电保持的数据存储系统的的组成示意图;
47.图8为本发明实施例提供的一种实现掉电保持的数据存储设备的计算机系统的结构示意图。
48.【附图标记说明】
49.100:实现掉电保持的数据存储系统;110:数据写入模块;120:有效性判断模块;130:掉电取用模块;
50.200:计算机系统;201:cpu;202:rom;203:ram;202:第一总线;205:i/o接口;206:输入部分;207:输出部分;208:存储部分;209:通信部分;210:驱动器;211:可拆卸介质。
具体实施方式
51.为了更好地解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
52.如图1所示,本发明实施例提出的一种实现掉电保持的数据存储方法,包括:首先,在向硬件设备内存写入数据时,先通过控制头将数据写入a数据区,再通过控制头将数据同步到b数据区;其次,通过控制头判断a、b数据区的写入数据是否有效:若a、b数据区的写入数据均有效,则在掉电后取a数据区数据保存;若a、b数据区的写入数据仅一个有效,则在掉电后取有效数据区的数据保存;其中,如图2所示,硬件设备内存划分为三个区:头部、a数据区和b数据区,控制头记录a、b数据区的容量、实际有效数据长度、写入标志位等信息,a、b是两块大小相等的数据存储区,结构上互为冗余。
53.由此,本发明实现了如下优点:应用本发明的方案,在应用程序载入硬件内存数据时,可自动检测数据是否有效,无需人工干预;即使写时掉电导致内存数据异常,也能保证应用程序能获取到有效的数据;掉电导致内存数据异常时,无需手动格式化内存,可由应用程序自动管控;本发明的方案无需备用电源支持,省去备用电源带来的额外开销,性价比高于现有技术,具备较大的推广意义。
54.为了更好地理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更清楚、透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
55.具体地,本发明提供一种实现掉电保持的数据存储方法,其包括:
56.s1、在向硬件设备内存写入数据时,先通过控制头将数据写入a数据区,再通过控制头将数据同步到b数据区。
57.如图3和图4所示,步骤s1包括:
58.s11、在向硬件设备内存写入数据时,先将控制头中a数据区的写标志置位,将数据写入a数据区。
59.s12、待写入操作完成再将a数据区的写标志复位,并在控制头中更新a数据区的实际有效数据长度。
60.s13、先将控制头中b数据区的写标志置位,将a数据区的数据同步写入至b数据区。
61.s14、待写入操作完成再将b数据区的写标志复位,并更新b数据区的有效数据长度。
62.s2、通过控制头判断a、b数据区的写入数据是否有效。
63.如图5所示,步骤s2包括:
64.s21、读取控制头中a数据区的写标志;
65.s22a、若读取结果为false,说明上次a数据区的写入操作完成,则判断a数据区的数据有效;
66.s22b、若读取结果为true,说明上次a数据区的写入操作被掉电打断,则判断a数据区的数据无效,并读取控制头中b数据区的写标志;
67.s23、在b数据区的写标志读取结果为false时,判断b数据区的数据有效。
68.s3a、若a、b数据区的写入数据均有效,则在掉电后取a数据区数据保存。
69.s3b、若a、b数据区的写入数据仅一个有效,则在掉电后取有效数据区的数据保存。
70.如图6所示,在具体实施例中,写入数据时,应用程序先将头部中a数据区的写标志置位,待数据写入完成,再将该写标志复位,更新a数据区实际有效数据长度,然后将b数据区的写标志置位,数据写入完成将标志复位,更新b数据区的有效数据长度。应用程序载入数据时,首先读取控制控制头中a数据区的写标志,如果为false,说明上次写入操作完成,a数据区数据有效,程序使用a数据区的数据,如果a数据区的写标志为true,说明上次写操作被掉电打断,a数据区的数据无效,由于b数据区写值操作逻辑上位于a数据区写值之后,因此b数据区还未进行写值,其数据为原始数据,仍有效,应用程序使用b数据区的数据,这样就能保证应用程序总是能够从硬件设备内存中获取有效数据。
71.较佳地,每完成一次写入操作,均将控制头中的a数据区/b数据区的写标志复位,并将a数据区/b数据区的实际有效长度更新。应用程序将有效区域的数据拷贝到无效数据区域,实现数据同步,同时将控制头中的写标志复位,将有效长度等信息更新,为下一次的写值做好准备。
72.其中,硬件设备内存包括控制头、a数据区以及b数据区。控制头存储有:a、b数据区的容量、实际有效数据长度以及写标志位。a数据区和b数据区的容量均一致,且不仅容量一致,a数据区和b数据区的数据类型、大小、偏移量、结构性、相关性、连续性也均一致。
73.如图7所示,本发明提供的一种实现掉电保持的数据存储系统100,包括:
74.数据写入模块110,用于在向硬件设备内存写入数据时,先通过控制头将数据写入a数据区,再通过控制头将数据同步到b数据区。
75.有效性判断模块120,用于通过控制头判断a、b数据区的写入数据是否有效。
76.掉电取用模块130,用于在a、b数据区的写入数据均有效时,则在掉电后取a数据区数据保存;在a、b数据区的写入数据仅一个有效时,则在掉电后取有效数据区的数据保存。
77.由于本发明上述实施例所描述的系统/装置,为实施本发明上述实施例的方法所
采用的系统/装置,故而基于本发明上述实施例所描述的方法,本领域所属技术人员能够了解该系统/装置的具体结构及变形,因而在此不再赘述。凡是本发明上述实施例的方法所采用的系统/装置都属于本发明所欲保护的范围。
78.此外,本发明实施例还提供一种实现掉电保持的数据存储设备,包括:至少一个应用程序数据库;以及与至少一个应用程序数据库通信连接的硬件设备内存;其中,应用程序数据库存储有可被至少一个硬件设备内存执行的指令,指令被至少一个硬件设备内存执行,以使至少一个硬件设备内存能够执行如上所述的一种实现掉电保持的数据存储方法。
79.图8为本发明实施例提供的一种实现掉电保持的数据存储设备的计算机系统的结构示意图,参见图8,其示出了适于用来实现本技术一实施例的一种实现掉电保持的数据存储设备的计算机系统200的结构示意图。图8示出的实现掉电保持的数据存储设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
80.如图8所示,计算机系统200包括中央处理单元(cpu)201,其可以根据存储在只读存储器(rom)202中的程序或者从存储部分208加载到随机访问存储器(ram)203中的程序而执行各种适当的动作和处理。在ram 203中,还存储有计算机系统200操作所需的各种程序和数据。cpu 201、rom 202以及ram 203通过总线204彼此相连。输入/输出接口(i/o接口)205也连接至总线204。
81.以下部件连接至i/o接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至i/o接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。
82.特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(cpu)201执行时,执行本技术的系统中限定的上述功能。
83.以及,本发明提供一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括以下方法步骤:
84.s1、在向硬件设备内存写入数据时,先通过控制头将数据写入a数据区,再通过控制头将数据同步到b数据区。
85.s2、通过控制头判断a、b数据区的写入数据是否有效。
86.s3、若a、b数据区的写入数据均有效,则在掉电后取a数据区数据保存。
87.s4、若a、b数据区的写入数据仅一个有效,则在掉电后取有效数据区的数据保存。
88.在一具体应用工业场景内,控制器内使用pid算法对现场设备进行调整,pid算法需要根据现场数据的反馈值对p、i、d三个输入值进行适当调整,反复计算累积最终将设备
趋于稳定达到控制效果。若现场设备突然断电,则pid算法中间过程数据将会丢弃,pid算法将重新开始计算,慢慢累积现场设备的反馈值重新校验pid的数据,运算到足够周期之后才能再次趋于稳定。因此一种掉电保持的数据存储方法应用到现场之后,若设备突然断电,中间数据仍得以保留,控制器可以快速将现场设备稳定下来。
89.综上所述,本发明提出一种实现掉电保持的数据存储方法、系统、设备以及介质,预先将硬件设备内存划分为三个存储区域,即控制头、大小一致的a、b数据区,控制头包含了a、b数据区当前数据大小、是否有效等信息。应用程序写入某一数据时,由控制头协助,先修改控制头的信息,然后将数据写入a数据区,再修改控制头将数据同步到b数据区。应用程序可通过控制头来判断,a、b数据区数据是否合法:a、b数据区均有效,则取a数据区数据,若a、b数据区的数据仅一个有效,则取有效数据区的数据,防止掉电造成的时序数据文件异常。
90.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例,或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
91.本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。
92.应当注意的是,在权利要求中,不应将位于括号之间的任何附图标记理解成对权利要求的限制。词语“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的词语“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的权利要求中,这些装置中的若干个可以是通过同一个硬件来具体体现。词语第一、第二、第三等的使用,仅是为了表述方便,而不表示任何顺序。可将这些词语理解为部件名称的一部分。
93.此外,需要说明的是,在本说明书的描述中,术语“一个实施例”、“一些实施例”、“实施例”、“示例”、“具体示例”或“一些示例”等的描述,是指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
94.尽管已描述了本发明的优选实施例,但本领域的技术人员在得知了基本创造性概念后,则可对这些实施例作出另外的变更和修改。所以,权利要求应该解释为包括优选实施例以及落入本发明范围的所有变更和修改。
95.显然,本领域的技术人员可以对本发明进行各种修改和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也应该包含这些修改和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献