CN113434338A - 数据存储的容错方法、装置、设备及存储介质 - Google Patents
数据存储的容错方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113434338A CN113434338A CN202110712138.4A CN202110712138A CN113434338A CN 113434338 A CN113434338 A CN 113434338A CN 202110712138 A CN202110712138 A CN 202110712138A CN 113434338 A CN113434338 A CN 113434338A
- Authority
- CN
- China
- Prior art keywords
- storage space
- data
- embedded system
- powered
- backed
- 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.)
- Pending
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
- G06F11/1469—Backup restoration techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Power Sources (AREA)
Abstract
本申请涉及数据处理领域,尤其涉及一种数据存储的容错方法、装置、设备及存储介质。方法包括:当嵌入式系统上电启动时,判断嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程;若是,将第一存储空间保存的第一备份数据,备份至第二存储空间,以及将第一备份数据恢复至嵌入式系统,其中,第一备份数据为嵌入式系统上次掉电时保存的待备份数据;若否,将第二存储空间保存的第二备份数据,恢复至嵌入式系统,其中,第二备份数据为嵌入式系统上次掉电之前保存的历史待备份数据。本申请用以解决在不增加设备体积的前提下,嵌入式系统掉电时,无法保证备份数据的准确性,进而导致系统上电恢复异常的问题。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种数据存储的容错方法、装置、设备及存储介质。
背景技术
在嵌入式系统中,在系统掉电时,需要将系统运行过程中的一些数据进行存储。当嵌入式系统重新上电时,通过掉电时存储的数据,对系统进行恢复。当嵌入式系统掉电时需要存储的数据量较大时,则所需要的存储时间较长,嵌入式系统主电源掉电后,仍需要运行一段较长的时间来完成数据的存储。
现有技术中,嵌入式系统在进行数据存储的过程时,一种方式是当嵌入式系统断电时,利用嵌入式系统中电容或者电感的残余电量,支撑嵌入式系统保存数据。但是,残余电量的持续的时间非常短暂,很难保证存储数据的完整性。还有一种方式是在嵌入式系统中设置电池,当嵌入式系统掉电时,由电池供电。但是电池的使用寿命较短,容易出现电量不足等情况。当嵌入式系统掉电时需要保存的数据量较大时,上述两种方式很容易造成数据还未保存完,但是电池或者残余电量已经供电结束的情况,导致备份的数据不准确,嵌入式系统再次上电时无法正常恢复。
发明内容
本申请提供了一种数据存储的容错方法、装置、设备及存储介质,用以解决在不增加设备体积的前提下,嵌入式系统掉电时,无法保证备份数据的准确性,进而导致系统上电恢复异常的问题。
第一方面,本申请实施例提供了一种数据存储的容错方法,包括:当嵌入式系统上电启动时,判断所述嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程;若是,将第一存储空间保存的第一备份数据,备份至第二存储空间,以及将所述第一备份数据恢复至所述嵌入式系统,其中,所述第一备份数据为所述嵌入式系统上次掉电时保存的待备份数据;若否,将所述第二存储空间保存的第二备份数据,恢复至所述嵌入式系统,其中,所述第二备份数据为所述嵌入式系统上次掉电之前保存的历史待备份数据。
可选地,所述方法的执行进程,分为至少一个预设的进程步骤,每个所述进程步骤对应一个预设的步骤标识,所述步骤标识用于当对应的进程步骤执行完毕后,被保存至第三存储空间;所述当嵌入式系统上电启动时,判断所述嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程,包括:当所述嵌入式系统上电启动时,获取所述第三存储空间内保存的当前步骤标识,其中,所述当前步骤标识为所述嵌入式系统上次掉电时,最后保存至所述第三存储空间的所述步骤标识;根据所述当前步骤标识,判断所述嵌入式系统上次掉电时是否完成所述待备份数据保存至所述第一存储空间的进程。
可选地,所述将第一存储空间保存的第一备份数据,备份至第二存储空间,包括:将所述第二存储空间中保存的数据删除,使所述第二存储空间进入写数据准备状态;将所述第一存储空间保存的第一备份数据,备份至进入写数据准备状态的所述第二存储空间;所述将所述第一备份数据恢复至所述嵌入式系统之后,还包括:将所述第一存储空间中保存的数据删除,使所述第一存储空间进入写数据准备状态。
可选地,所述判断所述嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程的判断结果为否之后,所述将所述第二存储空间保存的第二备份数据,恢复至所述嵌入式系统之前,包括:确定所述第二存储空间中保存的数据无异常。
可选地,所述将所述第二存储空间保存的第二备份数据,恢复至所述嵌入式系统之后,还包括:将所述第一存储空间中保存的数据删除,使所述第一存储空间进入写数据准备状态。
可选地,所述方法还包括:当所述嵌入式系统掉电时,获取超级电容的当前剩余电量,其中,所述超级电容用于当所述嵌入式系统掉电时提供备用电源;确定所述当前剩余电量大于或等于预设电量阈值后,将所述待备份数据保存至所述第一存储空间,其中,所述预设电量阈值为所述待备份数据保存至所述第一存储空间所需要的电量值。
可选地,所述当所述嵌入式系统掉电时,获取超级电容的当前剩余电量,包括:当所述嵌入式系统掉电时,累计所述嵌入式系统的当前掉电时长;当所述当前掉电时长达到预设时长阈值时,获取超级电容的当前剩余电量。
第二方面,本申请实施例提供了一种数据存储的容错装置,包括:判断模块,用于当嵌入式系统上电启动时,判断所述嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程;第一处理模块,用于若是,将第一存储空间保存的第一备份数据,备份至第二存储空间,以及将所述第一备份数据恢复至所述嵌入式系统,其中,所述第一备份数据为所述嵌入式系统上次掉电时保存的待备份数据;第二处理模块,用于若否,将所述第二存储空间保存的第二备份数据,恢复至所述嵌入式系统,其中,所述第二备份数据为所述嵌入式系统上次掉电之前保存的历史待备份数据。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;所述存储器,用于存储计算机程序;所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的数据存储的容错方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的数据存储的容错方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,当嵌入式系统上电启动时,判断该嵌入式系统上次掉电时,是否完成带备份数据保存至第一存储空间的进程,若是,将第一存储空间保存的第一备份数据,备份至第二存储空间,以及将第一备份数据恢复至嵌入式系统;若否,将第二存储空间保存的第二备份数据,恢复至嵌入式系统。其中,第一备份数据是嵌入式系统上次掉电时保存的待备份数据,第二备份数据是嵌入式系统上次掉电之前保存的历史待备份数据。
本申请提供的数据存储的容错方法,通过第一存储空间中保存的第一备份数据,和第二存储空间中保存的第二备份数据,实现了二次备份,以及数据存储过程的容错功能。也就是说,若上次掉电时已经完成了待备份数据保存至第一存储器的进程,则第一存储器中保存的第一备份数据是完整准确的,那么将第一备份数据恢复至嵌入式系统即可。若上次掉电时未完成待备份数据保存至第一存储器的进程,则第一存储器中保存的第一备份数据存在数据不完整等异常情况,此时,不能将第一备份数据恢复至嵌入式系统,而是将第二存储空间中保存的第二备份数据恢复至嵌入式系统。该过程保证了无论上次掉电时是否完成了保存待备份数据的进程,都能将准确的数据恢复至嵌入式系统,避免了因为掉电时备份的数据不准确,造成嵌入式系统重新上电时出现异常的情况。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中提供的数据存储的容错方法实现的步骤流程示意图;
图2为本申请实施例中提供的处理器分别与第一存储空间、第二存储空间和第三存储空间连接的示意图;
图3为本申请实施例中提供的嵌入式系统突然掉电后,保存待备份数据的步骤流程示意图;
图4为本申请实施例中提供的当嵌入式系统掉电后,重新上电恢复数据的步骤流程示意图;
图5为本申请实施例中提供的数据存储的容错装置结构连接示意图;
图6为本申请实施例中提供的电子设备的结构连接示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中提供的数据存储的容错方法,应用于嵌入式系统。通过在嵌入式系统内部处理器预先设置的程序,在嵌入式系统掉电时,通过第一备份数据或第二备份数据完成系统的恢复,保证嵌入式系统重新上电时能够正常工作。
一个实施例中,如图1所示,一种数据存储的容错方法实现的步骤流程如下:
步骤101,当嵌入式系统上电启动时,判断嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程,若是,执行步骤102,若否,执行步骤103;
步骤102,将第一存储空间保存的第一备份数据,备份至第二存储空间,以及将第一备份数据恢复至嵌入式系统,其中,第一备份数据为嵌入式系统上次掉电时保存的待备份数据;
步骤103,将第二存储空间保存的第二备份数据,恢复至嵌入式系统,其中,第二备份数据为嵌入式系统上次掉电之前保存的历史待备份数据。
本实施例中,嵌入式系统正常工作过程中,当遇到主电源突然断电的情况时,需要将与系统运行相关的数据进行备份。当嵌入式系统重新上电时,需要将备份的数据恢复至嵌入式系统,保证嵌入式系统重新上电时能够正常工作。上述与系统运行相关的数据极为待备份数据。待备份数据是根据需要和实际情况预先设置于嵌入式系统的处理器中的,例如,预先在需要备份的数据集合中增加一个标识,当嵌入式系统掉电时,处理器能够根据该标识自动筛选出需要备份的数据。本申请的保护范围不以待备份数据对应的具体数据内容为限制。
本实施例中,第一存储空间可以为嵌入式系统本身集成的存储空间,也可以为独立于嵌入式系统的存储空间。第一存储空间的实现形式可以根据需要和实际情况确定,例如,第一存储空间可以为闪存(Flash EEPROM Memory,简称Flash)、硬盘存储器、云存储器以及其他类型存储介质中的任意一种,只要第一存储空间能够与嵌入式系统完成数据的交互即可。本申请的保护范围不以第一存储空间的具体实现形式为限制。
同样的,第二存储空间可以为嵌入式系统本身集成的存储空间,也可以为独立于嵌入式系统的存储空间。第二存储空间的实现形式可以根据需要和实际情况确定,例如,第二存储空间可以为闪存(Flash EEPROM Memory,简称Flash)、硬盘存储器、云存储器以及其他类型存储介质中的任意一种,只要第二存储空间能够与嵌入式系统完成数据的交互即可。本申请的保护范围不以第一存储空间的具体实现形式为限制。
此外,第一存储空间和第二存储空间两者,可以为独立的两个存储空间,两者的实现形式可以相同也可以不同,例如,第一存储空间为第一Flash,第二存储空间为第二Flash;或者,第一存储空间为Flash,第二存储空间为云存储器。第一存储空间和第二存储空间还可以为同一个存储介质的两个分区,例如,第一存储空间为嵌入式系统本身集成Flash的第一分区,第二存储空间为嵌入式系统本身集成Flash的第二分区。第一分区和第二分区的存储空间大小可以相同,也可以不同。第一分区和第二分区是根据需要和实际情况预先划分设置的,本申请的保护范围不以第一分区和第二分区的具体划分设置的原则为限制。
本实施例中,在嵌入式系统上电时,若上次掉电时完成了待备份数据保存至第一存储空间的进程,则将第一备份数据备份至第二存储空间,以及将第一备份数据恢复至嵌入式系统。若上次掉电时未完成待备份数据保存至第二存储空间的进程,则将第二备份数据恢复至嵌入式系统。保证无论上次掉电时是否完成了保存待备份数据的进程,都能将准确的数据恢复至嵌入式系统。
一个实施例中,将本数据存储的容错方法的整个执行进程,分为至少一个预设的进程步骤,每个进程步骤对应一个预设的步骤标识,步骤标识用于当对应的进程步骤执行完毕后,被保存至第三存储空间。
当嵌入式系统上电启动时,判断嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程,具体实现过程如下:当嵌入式系统上电启动时,获取第三存储空间内保存的当前步骤标识,其中,当前步骤标识为嵌入式系统上次掉电时,最后保存至第三存储空间的步骤标识;根据当前步骤标识,判断嵌入式系统上次掉电时是否完成待备份数据保存至第一存储空间的进程。
本实施例中,第三存储空间可以为嵌入式系统本身集成的存储空间,也可以为独立于嵌入式系统的存储空间。优选的,第三存储空间为任意一种能够实现快速存储的存储介质。第三存储空间的具体实现形式可以根据需要和实际情况确定,例如,第三存储器可以为带电可擦可编程只读存储器(Electrically Erasable Programmable read onlymemory,简称EEPROM),,或者其他能够实现快速存储且能够实现掉电保持的存储介质中任意一种。本申请的保护范围不以第三存储空间的具体实现形式为限制。
此外,第三存储空间还可以与第一存储空间为同一存储介质的两个不同分区,或者,第三存储空间与第二存储空间为同一个存储介质的两个不同分区,再或者,第三存储空间、第一存储空间和第二存储空间为同一存储介质的三个不同分区。不同分区的存储空间大小可以相同,也可以不同,分区的存储空间大小根据需要和实际情况预先划分设置,本申请的保护范围不以分区的具体划分设置原则为限制。
本实施例中,各个进程步骤是预先设定的,设定的原则可以根据需要和实际情况而定,例如,嵌入式系统掉电时,待备份数据保存至第一存储空间的过程为一个步骤;上电启动后,将第一存储空间保存的第一备份数据,备份至第二存储空间为一个步骤;将第一备份数据恢复至嵌入式系统为一个步骤。申请的保护范围不以进程步骤的具体划分原则为限制。
本实施例中,每个步骤对应的步骤标识,同样可以根据需要和实际情况设定,例如,步骤标识可以为数字标识、字母标识或者数据与字母的组合标识。将每一个步骤标识配置于对应步骤的实现程序,当一个步骤完成时,也就是当该步骤对应的程序执行结束时,处理器自动将该步骤对应的步骤标识保存至第三存储空间。
当下一个步骤完成,新的步骤标识保存至第三存储空间,同时将第三存储空间中已有的步骤标识删除,以保证第三储存空间中保存的步骤标识为当前已完成的最新标识。
当嵌入式系统掉电时,第三存储空间内保存的步骤标识不会消失。嵌入式系统再次上电,则系统的处理器获取第三存储空间内保存的步骤标识,以该步骤标识判断嵌入式系统上次掉电时是否完成待备份数据保存至第一存储空间的进程,以确定如何恢复嵌入式系统。
一个实施例中,嵌入式系统上次掉电时,当已完成待备份数据保存至第一存储空间的进程时,将第一存储空间保存的第一备份数据,备份至第二存储空间的具体过程如下:将第二存储空间中保存的数据删除,使第二存储空间进入写数据准备状态;将第一存储空间保存的第一备份数据,备份至进入写数据准备状态的第二存储空间。当将第一备份数据恢复至嵌入式系统之后,将第一存储空间中保存的数据删除,使第一存储空间进入写数据准备状态。
本实施例中,嵌入式系统上次掉电时,若已完成待备份数据保存至第一存储空间的进程,则当嵌入式系统重新上电时,第一存储空间内保存的第一备份数据是完整准确的,则先通过第一备份数据将第二存储空间内的数据进行更新。第二存储空间先进入写数据准备状态,可以加快第二存储空间内数据更新的速度,并且保证更新前和更新后的数据不会出现混乱的现象,且能够保证第二存储空间内保存的备份数据为可行范围内的最新数据。
将第一备份数据恢复至嵌入式系统之后,预先将第一存储空间内的数据删除,使第一存储空间进入写准备状态。此时,若嵌入式系统掉电,则处理器能够直接将待备份数据写入第一存储空间,不再需要其他中间过程,加快待备份数据的保存过程,缩短保存时间,进一步保证数据存储的完整性。
同时,在第一存储空间内的第一备份数据删除之前,第二存储空间内的第二备份数据已经更新,也就是第一存储空间和第二存储空间中,至少有一个存储空间保存有完整准确的备份数据,可以用于嵌入式系统的恢复,避免嵌入式系统上电时因数据错误导致的恢复故障问题。
一个实施例中,在判断嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程的判断结果为否之后,将第二存储空间保存的第二备份数据,恢复至嵌入式系统之前,需要确定第二存储空间中保存的数据无异常。这样可以避免第二存储空间更新第二备份数据过程中掉电,第二备份数据未更新结束造成数据不完整,进而使用该第二备份数据恢复嵌入式系统造成恢复故障的问题。
一个实施例中,将第二存储空间保存的第二备份数据,恢复至嵌入式系统之后,将第一存储空间中保存的数据删除,使第一存储空间进入写数据准备状态。当嵌入式系统再次发生掉电时,可以直接将待备份数据直接写入第一存储空间,不需要在掉电时再进行第一存储空间内数据的删除动作,加快数据保存的速度,进一步保证待备份数据保存的完整性。
一个实施例中,本申请提供的数据存储的容错方法,通过超级电容为嵌入式系统掉电时提供备用电源,该超级电容的电容值根据需要和实际情况预先配置,例如,当嵌入式系统需要保存的预算数据量加大时,则配置的超级电容的电容值较大。本申请的保护范围不以超级电容的配置原则为限制。
当嵌入式系统处于正常运行状态时,该嵌入式系统的电源同时为超级电容充电,若超级电容被充满,则超级电容保持浮充状态,保证超级电容内有充足的电量。但嵌入式系统掉电时,超级电容释放电量,以为嵌入式系统提供备用电源。
本实施例中,当嵌入式系统掉电时,获取超级电容的当前剩余电量,当确定当前剩余电量大于或等于预设电量阈值后,将待备份数据保存至第一存储空间,其中,预设电量阈值为待备份数据保存至第一存储空间所需要的电量值。
也就是说,使用超级电容的电能保存待备份数据时,先确定超级电容的当前电量是可以保证能够将待备份数据进行全部保存的,避免因为超级电容电量不足,造成备份数据中断,进而导致第一备份数据不完整,造成嵌入式系统重新上电时出现错误。
本实施例中,预设电量阈值为根据经验或需要预先设定的电量阈值,本申请的保护范围不以预设电量阈值的具体设定原则为限制。
一个实施例中,当嵌入式系统掉电时,获取超级电容的当前剩余电量时,可以先统计当前掉电时长,具体的,当嵌入式系统掉电时,累计嵌入式系统的当前掉电时长;当当前掉电时长达到预设时长阈值时,获取超级电容的当前剩余电量。
嵌入式系统运行时,可以因为环境的短暂干扰等原因,造成嵌入式系统出现掉电的假象,但是短暂的干扰消失后,嵌入式系统是可以继续工作的。若每次这种短暂干扰都进行数据备份的过程,则造成不必要的浪费。
当嵌入式系统掉电时,确定累计的当前掉电时长超过预设时长阈值后,再获取超级电容的当前剩余电量,可以避免短暂干扰造成的影响,避免能源浪费。
本实施例中,预设时长阈值可以根据经验或实验结果预先设定,本申请的保护范围不以预设时长阈值的设定原则为限制。
一个实施例中,当嵌入式系统上电启动时,检查超级电容的性能是否正常,若正常,则嵌入式系统判断所述嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程;若不正常,则嵌入式系统进行报警提示,或者超级电容本身进行报警提示。检查超级电容是否正常的过程,可以通过嵌入式系统预先设定的程序完成,当嵌入式系统上电时,该程序自动启动超级电容的检查。
本实施例中,上电时对超级电容进行检查,可以避免超级电容出现故障,进而导致嵌入式系统掉电时无法正常完成待备份数据存储的问题。
一个具体的实施例中,第一存储空间与第二存储空间为同一存储介质的两个分区,第一存储空间和第二存储空间的存储空间大小相同。第三存储空间为可以进行快速存储的存储介质。如图2所示,嵌入式系统的处理器分别与第一存储空间、第二存储空间和第三存储空间连接。嵌入式系统的处理器可以接收外围信号,例如,嵌入式系统的断电信号、上电信号以及代表超级电容电量的信号等。
本实施例中,01、02、03、04、11、12、21、22和31,分别为预设的各个步骤对应的步骤标识,该步骤标识仅为一个示例。
本实施例中,如图3所示,嵌入式系统正常运行过程中,嵌入式系统突然掉电后,保存待备份数据的过程如下:
步骤300,在嵌入式系统正常运行过程中,处理器检测外围信号,通过外围信号判断嵌入式系统是否断电,若否,执行步骤300-1,若是,执行步骤301;
步骤300-1,计时第一预设周期时长,返回步骤300;
步骤301,累计嵌入式系统的当前掉电时长;
步骤302,判断当前掉电时长是否达到预设时长阈值,若是,执行步骤303,若否,嵌入式系统恢复运行,执行步骤300;
步骤303,获取超级电容的当前剩余电量;
步骤304,判断当前剩余电量是否大于或等于预设电量阈值,若否,执行步骤305,若是,执行步骤306;
步骤305,将步骤标识31更新至第三存储空间,执行步骤309;
步骤306,将步骤标识21更新至第三存储空间;
步骤307,将待备份数据保存至第一存储空间,并监控待备份数据保存过程是否出现异常,若是,执行步骤309,若否,待备份数据保存完毕,执行步骤308;
步骤308,将步骤标识22更新至第三存储空间;
步骤309,等待嵌入式系统自由断电。
在上述流程中,超级电容的当前剩余电量小于预设电量阈值时,嵌入式系统不满足存储待备份数据的条件,则第三存储空间中最后保存的步骤标识为31。嵌入式系统重新上电时读取第三存储空间中的步骤标识为31时,则确定嵌入式系统上次掉电时未完成待备份数据保存至第一存储空间的进程,并没有将待备份数据保存至第一存储空间。
当超级电容的当前剩余电量大于或等于预设电量阈值时,嵌入式系统满足存储待备份数据的条件,并且保存待备份数据的过程中未出现异常,正确且完整的保存了待备份数据,则第三存储空间中最后保存的步骤标识为22。嵌入式系统重新上电时读取第三存储空间中的步骤标识为22时,则确定嵌入式系统上次掉电时完成了待备份数据保存至第一存储空间的进程,完成了待备份数据的存储。
当超级电容的当前剩余电量大于或等于预设电量阈值时,嵌入式系统满足存储待备份数据的条件,但是保存待备份数据的过程中出现了异常,例如,数据出错或者超级电容的供电突然终止等,则第三存储空间中最后保存的步骤标识为21。嵌入式系统重新上电时读取第三存储空间中的步骤标识为21时,则确定嵌入式系统上次掉电时未完成待备份数据保存至第一存储空间的进程,并没有将待备份数据完整的保存至第一存储空间。
本实施例中,如图4所示,当嵌入式系统掉电后,重新上电恢复数据的过程具体如下:
步骤400,嵌入式系统的主电源恢复供电后,嵌入式系统进行系统功能的初始化;
步骤401,读取第三存储空间中的步骤标识;
步骤402,根据步骤标识,判断嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程,若是,执行步骤403,若否,执行步骤411;
步骤403,将步骤标识01更新至第三存储空间;
步骤404,将第二存储空间中保存的数据删除,使第二存储空间进入写数据准备状态;
步骤405,将第一存储空间保存的第一备份数据,备份至进入写数据准备状态的第二存储空间;
步骤406,将步骤标识02更新至第三存储空间;
步骤407,读取第一存储空间中保存的第一备份数据,将第一备份数据赋值到对应的寄存器中,完成嵌入式系统的恢复;
步骤408,将步骤标识03更新至第三存储空间;
步骤409,将第一存储空间中保存的数据删除,使第一存储空间进入写准备状态;
步骤410,将步骤标识04更新至第三存储空间,嵌入式系统进入正常运行状态;
步骤411,判断第二存储空间中保存的数据是否异常,若否,执行步骤412,若是,执行步骤416;
步骤412,读取第二存储空间中保存的第二备份数据,将第二备份数据复制到对应的寄存器中,完成嵌入式系统的恢复;
步骤413,将步骤标识11更新至第三存储空间;
步骤414,将第一存储空间中保存的数据删除,使第一存储空间进入写准备状态;
步骤415,将步骤标识12更新至第三存储空间,嵌入式系统进入正常运行状态;
步骤416,提示备份数据错误对应的报警信息。
在上述进程中,备份数据错误对应的报警信息,可以以语音、文字、灯光、声音等形式中的一种或几种,向用户进行提示。本申请的保护范围不以报警信息的具体表现形式为限制。
上述系统功能的初始化,包括但不限于外围信号检测配置初始化、第一存储空间配置初始化、第二存储空间配置初始化以及第三存储空间配置初始化。
上述进程中,当从第三存储空间中读取的步骤标识为01、02、03、22时,则表明上次掉电时,完成了待备份数据保存至第一存储空间的进程,可以将第一存储空间中的第一备份数据恢复至嵌入式系统;若从第三存储空间中读取的步骤标识为04、11、12、21、31,则表明上次掉电时,未完成待备份数据保存至第一存储空间的进程,需要从第二存储空间读取第二备份数据,以完成嵌入式系统的恢复。
当嵌入式第一次上电时,可以预先在第三存储器中保存一个步骤标识,例如,步骤31,使嵌入式系统可以进入步骤411,以执行步骤411及后续相关步骤。
本实施例中,将步骤标识划分的更加详细,能够应对多种情况下嵌入式系统掉电的情况。例如,一种情况是,若处理器确定超级电容的当前剩余电量,无法支撑嵌入式系统将待备份数据保存至第一存储空间的进程,则嵌入式系统会直接断电,另一种情况是,处理器确定超级电容的当前剩余电量能够支撑嵌入式系统将待备份数据保存至第一存储空间的进程,但是由于环境干扰等其他原因,导致待备份数据还没有完全备份至第一存储空间中,嵌入式系统已经断电了,这两种情况最终都会导致第一存储空间中的第一备份数据不完整。在这个过程中,步骤标识随着进程不断更新。当嵌入式系统重新上电时,处理器从第三存储空间读掉电前最后保存的步骤标识,根据步骤标识确定第一备份数据不完整后,则会从第二存储空间读取第二备份数据,以恢复嵌入式系统。
而在恢复过程中具体划分的步骤标识,例如,01、02、03、04、11、12,可以应对嵌入式系统在恢复数据的过程中突然断电的情况。例如,若步骤标识为04,第一存储空间已经进入写准备状态时,嵌入式系统突然完全掉电,则下次上电时从第二存储空间读取第二备份数据,来恢复嵌入式系统;若步骤标识为01,第二存储空间还没有进入写准备状态时,嵌入式系统突然完全掉电,则下次上电时从第一存储空间读取第二备份数据,来恢复嵌入式系统。
本申请提供的数据存储的容错方法,通过第一存储空间中保存的第一备份数据,和第二存储空间中保存的第二备份数据,实现了二次备份,以及数据存储过程的容错功能。也就是说,若上次掉电时已经完成了待备份数据保存至第一存储器的进程,则第一存储器中保存的第一备份数据是完整准确的,那么将第一备份数据恢复至嵌入式系统即可。若上次掉电时未完成待备份数据保存至第一存储器的进程,则第一存储器中保存的第一备份数据存在数据不完整等异常情况,此时,不能将第一备份数据恢复至嵌入式系统,而是将第二存储空间中保存的第二备份数据恢复至嵌入式系统。该过程保证了无论上次掉电时是否完成了保存待备份数据的进程,都能将准确的数据恢复至嵌入式系统,避免了因为掉电时备份的数据不准确,造成嵌入式系统重新上电时出现异常的情况。
实现过程中,在恰当的阶段,预先使第一存储空间和第二存储空间中的数据删除,进入写准备状态,若嵌入式系统掉电,则处理器能够直接将待备份数据写入第一存储空间,不再需要其他中间过程,加快待备份数据的保存过程,缩短保存时间,进一步保证数据存储的完整性。
同时,在第一存储空间内的第一备份数据删除之前,第二存储空间内的第二备份数据已经更新,也就是第一存储空间和第二存储空间中,至少有一个存储空间保存有完整准确的备份数据,可以用于嵌入式系统的恢复,避免嵌入式系统上电时因数据错误导致的恢复故障问题。
基于同一构思,本申请实施例中提供了一种数据存储的容错装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图5所示,该装置主要包括:
判断模块501,用于当嵌入式系统上电启动时,判断嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程;
第一处理模块502,用于若是,将第一存储空间保存的第一备份数据,备份至第二存储空间,以及将第一备份数据恢复至嵌入式系统,其中,第一备份数据为嵌入式系统上次掉电时保存的待备份数据;
第二处理模块503,用于若否,将第二存储空间保存的第二备份数据,恢复至嵌入式系统,其中,第二备份数据为嵌入式系统上次掉电之前保存的历史待备份数据。。
基于同一构思,本申请实施例中还提供了一种电子设备,如图6所示,该电子设备主要包括:处理器601、存储器602和通信总线603,其中,处理器601和存储器602通过通信总线603完成相互间的通信。其中,存储器602中存储有可被处理器601执行的程序,处理器601执行存储器602中存储的程序,实现如下步骤:当嵌入式系统上电启动时,判断嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程;若是,将第一存储空间保存的第一备份数据,备份至第二存储空间,以及将第一备份数据恢复至嵌入式系统,其中,第一备份数据为嵌入式系统上次掉电时保存的待备份数据;若否,将第二存储空间保存的第二备份数据,恢复至嵌入式系统,其中,第二备份数据为嵌入式系统上次掉电之前保存的历史待备份数据。
上述电子设备中提到的通信总线603可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线603可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器602可以包括闪存(Flash EEPROM Memory,简称Flash),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器601的存储装置。
上述的处理器601可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述数据存储的容错方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据存储的容错方法,其特征在于,包括:
当嵌入式系统上电启动时,判断所述嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程;
若是,将第一存储空间保存的第一备份数据,备份至第二存储空间,以及将所述第一备份数据恢复至所述嵌入式系统,其中,所述第一备份数据为所述嵌入式系统上次掉电时保存的待备份数据;
若否,将所述第二存储空间保存的第二备份数据,恢复至所述嵌入式系统,其中,所述第二备份数据为所述嵌入式系统上次掉电之前保存的历史待备份数据。
2.根据权利要求1所述的数据存储的容错方法,其特征在于,所述方法的执行进程,分为至少一个预设的进程步骤,每个所述进程步骤对应一个预设的步骤标识,所述步骤标识用于当对应的进程步骤执行完毕后,被保存至第三存储空间;
所述当嵌入式系统上电启动时,判断所述嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程,包括:
当所述嵌入式系统上电启动时,获取所述第三存储空间内保存的当前步骤标识,其中,所述当前步骤标识为所述嵌入式系统上次掉电时,最后保存至所述第三存储空间的所述步骤标识;
根据所述当前步骤标识,判断所述嵌入式系统上次掉电时是否完成所述待备份数据保存至所述第一存储空间的进程。
3.根据权利要求1所述的数据存储的容错方法,其特征在于,所述将第一存储空间保存的第一备份数据,备份至第二存储空间,包括:
将所述第二存储空间中保存的数据删除,使所述第二存储空间进入写数据准备状态;
将所述第一存储空间保存的第一备份数据,备份至进入写数据准备状态的所述第二存储空间;
所述将所述第一备份数据恢复至所述嵌入式系统之后,还包括:
将所述第一存储空间中保存的数据删除,使所述第一存储空间进入写数据准备状态。
4.根据权利要求1所述的数据存储的容错方法,其特征在于,所述判断所述嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程的判断结果为否之后,所述将所述第二存储空间保存的第二备份数据,恢复至所述嵌入式系统之前,包括:
确定所述第二存储空间中保存的数据无异常。
5.根据权利要求1所述的数据存储的容错方法,其特征在于,所述将所述第二存储空间保存的第二备份数据,恢复至所述嵌入式系统之后,还包括:
将所述第一存储空间中保存的数据删除,使所述第一存储空间进入写数据准备状态。
6.根据权利要求1所述的数据存储的容错方法,其特征在于,所述方法还包括:
当所述嵌入式系统掉电时,获取超级电容的当前剩余电量,其中,所述超级电容用于当所述嵌入式系统掉电时提供备用电源;
确定所述当前剩余电量大于或等于预设电量阈值后,将所述待备份数据保存至所述第一存储空间,其中,所述预设电量阈值为所述待备份数据保存至所述第一存储空间所需要的电量值。
7.根据权利要求6所述的数据存储的容错方法,其特征在于,所述当所述嵌入式系统掉电时,获取超级电容的当前剩余电量,包括:
当所述嵌入式系统掉电时,累计所述嵌入式系统的当前掉电时长;
当所述当前掉电时长达到预设时长阈值时,获取超级电容的当前剩余电量。
8.一种数据存储的容错装置,其特征在于,包括:
判断模块,用于当嵌入式系统上电启动时,判断所述嵌入式系统上次掉电时,是否完成待备份数据保存至第一存储空间的进程;
第一处理模块,用于若是,将第一存储空间保存的第一备份数据,备份至第二存储空间,以及将所述第一备份数据恢复至所述嵌入式系统,其中,所述第一备份数据为所述嵌入式系统上次掉电时保存的待备份数据;
第二处理模块,用于若否,将所述第二存储空间保存的第二备份数据,恢复至所述嵌入式系统,其中,所述第二备份数据为所述嵌入式系统上次掉电之前保存的历史待备份数据。
9.一种电子设备,其特征在于,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1至7任一项所述的数据存储的容错方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的数据存储的容错方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110712138.4A CN113434338A (zh) | 2021-06-25 | 2021-06-25 | 数据存储的容错方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110712138.4A CN113434338A (zh) | 2021-06-25 | 2021-06-25 | 数据存储的容错方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113434338A true CN113434338A (zh) | 2021-09-24 |
Family
ID=77754563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110712138.4A Pending CN113434338A (zh) | 2021-06-25 | 2021-06-25 | 数据存储的容错方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434338A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117193673A (zh) * | 2023-11-07 | 2023-12-08 | 苏州元脑智能科技有限公司 | 数据存储装置及方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783025A (zh) * | 2004-12-03 | 2006-06-07 | 华为技术有限公司 | 嵌入式系统数据备份装置及方法 |
CN101430705A (zh) * | 2008-11-29 | 2009-05-13 | 中兴通讯股份有限公司 | 基于嵌入式数据库的存储方法和装置 |
CN102932621A (zh) * | 2011-08-08 | 2013-02-13 | 杭州海康威视数字技术股份有限公司 | 一种存储数据的方法及装置 |
CN104021093A (zh) * | 2014-06-24 | 2014-09-03 | 浪潮集团有限公司 | 一种基于nvdimm的存储设备的掉电保护方法 |
CN105468544A (zh) * | 2014-09-11 | 2016-04-06 | 深圳市腾讯计算机系统有限公司 | 实现防掉电文件系统的方法、装置以及防掉电文件系统 |
WO2016095372A1 (zh) * | 2014-12-19 | 2016-06-23 | 中兴通讯股份有限公司 | 实现事务日志镜像备份的方法及装置 |
CN109254879A (zh) * | 2018-09-27 | 2019-01-22 | 南方电网科学研究院有限责任公司 | 一种数据处理方法、系统、装置及可读存储介质 |
CN109388221A (zh) * | 2018-10-09 | 2019-02-26 | 郑州云海信息技术有限公司 | 一种存储系统及其备电管理方法、装置和设备 |
CN109918228A (zh) * | 2019-01-28 | 2019-06-21 | 浙江中控技术股份有限公司 | 一种数据掉电保持方法及系统 |
CN110442473A (zh) * | 2019-07-30 | 2019-11-12 | 深圳市元征科技股份有限公司 | 一种非易失性数据存储方法、装置、电子设备及介质 |
CN112527566A (zh) * | 2020-12-24 | 2021-03-19 | 广东芬尼科技股份有限公司 | 设备掉电运行参数读写异常保护方法、系统和存储介质 |
-
2021
- 2021-06-25 CN CN202110712138.4A patent/CN113434338A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783025A (zh) * | 2004-12-03 | 2006-06-07 | 华为技术有限公司 | 嵌入式系统数据备份装置及方法 |
CN101430705A (zh) * | 2008-11-29 | 2009-05-13 | 中兴通讯股份有限公司 | 基于嵌入式数据库的存储方法和装置 |
CN102932621A (zh) * | 2011-08-08 | 2013-02-13 | 杭州海康威视数字技术股份有限公司 | 一种存储数据的方法及装置 |
CN104021093A (zh) * | 2014-06-24 | 2014-09-03 | 浪潮集团有限公司 | 一种基于nvdimm的存储设备的掉电保护方法 |
CN105468544A (zh) * | 2014-09-11 | 2016-04-06 | 深圳市腾讯计算机系统有限公司 | 实现防掉电文件系统的方法、装置以及防掉电文件系统 |
WO2016095372A1 (zh) * | 2014-12-19 | 2016-06-23 | 中兴通讯股份有限公司 | 实现事务日志镜像备份的方法及装置 |
CN109254879A (zh) * | 2018-09-27 | 2019-01-22 | 南方电网科学研究院有限责任公司 | 一种数据处理方法、系统、装置及可读存储介质 |
CN109388221A (zh) * | 2018-10-09 | 2019-02-26 | 郑州云海信息技术有限公司 | 一种存储系统及其备电管理方法、装置和设备 |
CN109918228A (zh) * | 2019-01-28 | 2019-06-21 | 浙江中控技术股份有限公司 | 一种数据掉电保持方法及系统 |
CN110442473A (zh) * | 2019-07-30 | 2019-11-12 | 深圳市元征科技股份有限公司 | 一种非易失性数据存储方法、装置、电子设备及介质 |
CN112527566A (zh) * | 2020-12-24 | 2021-03-19 | 广东芬尼科技股份有限公司 | 设备掉电运行参数读写异常保护方法、系统和存储介质 |
Non-Patent Citations (1)
Title |
---|
张晓红等: "红外遥控通讯中的数据加密技术", 工业控制计算机, vol. 22, no. 7, pages 59 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117193673A (zh) * | 2023-11-07 | 2023-12-08 | 苏州元脑智能科技有限公司 | 数据存储装置及方法 |
CN117193673B (zh) * | 2023-11-07 | 2024-02-09 | 苏州元脑智能科技有限公司 | 数据存储装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102289397B (zh) | 一种机顶盒的嵌入式系统自动恢复方法及装置 | |
US8341386B2 (en) | Method for updating basic input/output system and method for repairing thereof | |
US8468389B2 (en) | Firmware recovery system and method of baseboard management controller of computing device | |
CN110647333A (zh) | 固件升级方法及配置成对其中的固件进行升级的设备 | |
CN104636217A (zh) | 一种根文件系统自动备份和异常恢复方法和分区结构 | |
CN103514015A (zh) | 一种从存储介质中启动操作系统的方法和装置 | |
CN108874582A (zh) | 一种系统恢复方法、装置及终端 | |
CN105607972A (zh) | 一种异常修复的方法及装置 | |
CN108345464A (zh) | 一种安卓系统的启动方法及安卓车机 | |
CN117931091B (zh) | 一种异常掉电处理方法、装置、设备、介质及产品 | |
CN113672306B (zh) | 服务器组件自检异常恢复方法、装置、系统及介质 | |
CN113434338A (zh) | 数据存储的容错方法、装置、设备及存储介质 | |
CN113190256B (zh) | 一种升级方法、装置及设备 | |
CN103744700A (zh) | 一种系统启动方法及电子设备 | |
CN113626262A (zh) | 一种bmc恢复方法、系统、设备以及介质 | |
CN113032183A (zh) | 系统管理方法、装置、计算机设备和存储介质 | |
CN117331760A (zh) | 一种基于usb接口的设备调试方法、装置及存储介质 | |
CN115562900B (zh) | Amd服务器系统安装断电处理方法、装置、设备及介质 | |
CN108873668B (zh) | 时间校准方法、处理器及时间校准系统 | |
CN115421960A (zh) | 一种ue内存故障恢复方法、装置、电子设备及介质 | |
CN110795155B (zh) | 系统启动方法及装置、电子设备、存储介质 | |
CN113672448A (zh) | BootLoader启动流程的监控方法、装置及存储介质 | |
CN110647455A (zh) | 一种存储设备重启记录方法和系统 | |
TW202131170A (zh) | 韌體損壞恢復技術 | |
CN109783150A (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 |