CN115421657A - 数据存储方法、装置、电子设备及存储介质 - Google Patents
数据存储方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115421657A CN115421657A CN202211058967.6A CN202211058967A CN115421657A CN 115421657 A CN115421657 A CN 115421657A CN 202211058967 A CN202211058967 A CN 202211058967A CN 115421657 A CN115421657 A CN 115421657A
- Authority
- CN
- China
- Prior art keywords
- storage area
- storage
- data
- stored
- total number
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据存储方法、装置、电子设备及存储介质。该方法包括:当产生待存储的预设类型的数据时,先将数据存储在存储设备的第一存储区,然后将数据存储在存储设备的第二存储区,再将与第一存储区和/或第二存储区当前存储状态相对应的参数信息存储在存储设备的第三存储区;当存储设备进入掉电触发的数据校验处理时,根据第一存储区的当前校验结果、第二存储区的当前校验结果以及第三存储区最后存储的参数信息,生成第一存储区、第二存储区、第三存储区是否异常的判断结果,以对异常的存储区执行与判断结果相对应的预设数据处理。采用本发明能够解决核电等领域的存储设备意外掉电导致的数据存储异常的问题,提高存储设备的存储可靠性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据存储方法、装置、电子设备及存储介质。
背景技术
当今社会已步入数据时代,在数据时代,无论是工农业生产运行,还是人们的日常生活,都离不开各类数据以及相应的数据存储设备。
以设备运行为例,通常需要对设备运行过程中的数据进行连续记录,如光伏并网逆变器要求可对发电量数据进行实时统计,核电设备要求对每时每刻的事件信息进行记录。然而,当设备工况环境不佳时,数据存储设备在存储过程中不可避免的会出现意外掉电的情况,这导致数据存储过程被中断,出现数据存储异常的问题。
发明内容
本发明实施例提供了一种数据存储方法、装置、电子设备及存储介质,以解决数据存储设备意外掉电时产生的数据存储异常的问题。
第一方面,本发明实施例提供了一种数据存储方法,包括:
当产生待存储的预设类型的数据时,先将数据存储在存储设备的第一存储区,然后将数据存储在存储设备的第二存储区,再将与第一存储区和/或第二存储区当前存储状态相对应的参数信息存储在存储设备的第三存储区;
在存储设备进入掉电触发的数据校验处理的情况下,根据第一存储区的当前校验结果、第二存储区的当前校验结果以及第三存储区最后存储的参数信息,生成第一存储区、第二存储区、第三存储区是否异常的判断结果;
根据判断结果,对异常的存储区执行与判断结果相对应的预设数据处理;其中,预设数据处理包括根据第一存储区更新第二存储区、根据第二存储区更新第一存储区、根据第一存储区或第二存储区更新第三存储区。
第二方面,本发明实施例提供了一种数据存储方法装置,包括:
存储模块,用于当产生待存储的预设类型的数据时,先将数据存储在存储设备的第一存储区,然后将数据存储在存储设备的第二存储区,再将与第一存储区和/或第二存储区当前存储状态相对应的参数信息存储在存储设备的第三存储区;
异常判断模块,用于在存储设备进入掉电触发的数据校验处理的情况下,根据第一存储区的当前校验结果、第二存储区的当前校验结果以及第三存储区最后存储的参数信息,生成第一存储区、第二存储区、第三存储区是否异常的判断结果;
异常处理模块,用于根据判断结果,对异常的存储区执行与判断结果相对应的预设数据处理;其中,预设数据处理包括根据第一存储区更新第二存储区、根据第二存储区更新第一存储区、根据第一存储区或第二存储区更新第三存储区。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上第一方面或第一方面的任一种可能的实现方式所述方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面或第一方面的任一种可能的实现方式所述方法的步骤。
本发明实施例提供一种数据存储方法、装置、电子设备及存储介质,为了解决存储设备意外掉电导致的数据存储异常的问题,采用划分为三个存储区域的存储设备进行数据存储,并且在存储数据时,按照特定的存储顺序进行,即先存第一存储区,然后存第二存储区,最后存第三存储区。由于第一存储区和第二存储区互为备份,第三存储区存储的参数信息是表征存储状态的历史记录和用户日志的关键信息,因此,当出现意外掉电导致的数据存储异常的问题时,可以根据第一存储区的当前校验结果、第二存储区的当前校验结果以及第三存储区最后存储的参数信息,生成第一存储区、第二存储区、第三存储区是否异常的判断结果,进而针对不同的判断结果,执行相应的数据恢复处理,如此,可以利用存储正常的存储区域存储的数据,对存储异常的存储区域进行数据恢复,解决了存储设备意外掉电导致的数据存储异常的问题,大大提高了存储设备的存储可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据存储方法的实现流程图;
图2是本发明实施例提供的存储顺序示意图;
图3是本发明实施例提供的另一种数据存储方法的实现流程图;
图4是本发明实施例提供的一种存储处理效果示意图;
图5是本发明实施例提供的另一种存储处理效果示意图;
图6是本发明实施例提供的又一种存储处理效果示意图;
图7是本发明实施例提供的数据存储装置的结构示意图;
图8是本发明实施例提供的电子设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图通过具体实施例来进行说明。
为了解决现有技术问题,本发明实施例提供了一种数据存储方法、装置、电子设备及存储介质。下面首先对本发明实施例所提供的数据存储方法进行介绍。
数据存储方法的执行主体,可以是数据存储装置,例如各类存储器,如FLASH芯片、EEPROM(Electrically Erasable Programmable ROM,电可擦除存储器)芯片等,本发明实施例不作具体限定。
图1为本发明实施例提供的一种数据存储方法的实现流程图,详述如下:
步骤110,当产生待存储的预设类型的数据时,先将数据存储在存储设备的第一存储区,然后将数据存储在存储设备的第二存储区,再将与第一存储区和/或第二存储区当前存储状态相对应的参数信息存储在存储设备的第三存储区。
为了解决存储设备意外掉电导致的数据存储异常的问题,本发明实施例采用预先划分为三个存储区域的存储设备进行数据存储,即用于存储预设类型的数据的第一存储区和第二存储区,以及存储与第一存储区和/或第二存储区当前存储状态相对应的参数信息的第三存储区,其中,第一存储区和第二存储区互为备份,参数信息可以是表征存储状态的历史记录和用户日志的关键信息,如第一存储区或第二存储区当前实时存储的数据的总条数,该参数信息用于在存储设备掉电后判断各存储区域是否异常的依据之一。在存储数据时,按照特定的存储顺序进行,即先存第一存储区,然后存第二存储区,最后存第三存储区。如此,当出现意外掉电导致的数据存储异常的问题时,可以利用存储正常的存储区域存储的数据,对存储异常的存储区域进行数据恢复。
在一些实施例中,当产生待存储的预设类型的数据时,可以按照预设的数据存储顺序,对该数据进行存储。具体的,该数据存储顺序可以是,先将数据存储在第一存储区,待第一存储区存储成功后,再将数据存储在第二存储区,待第二存储区存储成功后,再将与第一存储区和/或第二存储区当前存储状态相对应的参数信息存储在第三存储区。
在一些实施例中,预设类型的数据可以是设备运行时产生的一条一条的事件记录类型的数据。以核电设备运行时产生的数据为例,如表一所示,每条数据的大小可以为16Words(字),其可以包括事件记录时间、数据类型码、数据编号、数据值等信息及其所对应的字序号。
表一
步骤120,在存储设备进入掉电触发的数据校验处理的情况下,根据第一存储区的当前校验结果、第二存储区的当前校验结果以及第三存储区最后存储的参数信息,生成第一存储区、第二存储区、第三存储区是否异常的判断结果。
如图2所示,其示出了本发明实施例所采用的特定的存储顺序,因此,在该存储时序中,共有3个存储过程,如图2中序号a-c所示,并且,每个存储过程都可能出现存储设备掉电,具体情况如下:
存储过程a发生掉电:第一存储区数据异常,第二存储区数据正常,第三存储区正常;
存储过程b发生掉电:第一存储区数据正常,第二存储区数据异常,第三存储区正常;
存储过程c发生掉电:第一存储区数据正常,第二存储区数据正常,第三存储区异常。
对此,可以根据第一存储区的当前校验结果、第二存储区的当前校验结果以及第三存储区最后存储的参数信息,生成第一存储区、第二存储区、第三存储区是否异常的判断结果。
在一些实施例中,参数信息可以包括第一存储区或第二存储区当前存储的数据的总条数X,相应的,步骤120的具体处理可以如下:获取第一存储区当前存储的数据的第一总条数,以及第一存储区中用于存储第X+1条数据的存储单元的第一数据校验结果;获取第二存储区当前存储的数据的第二总条数,以及第二存储区中用于存储第X+1条数据的存储单元的第二数据校验结果;根据X、第一总条数和第二总条数,以及第一数据校验结果和第二数据校验结果,生成第一存储区、第二存储区、第三存储区是否异常的判断结果。
需要说明的是,由于存储参数信息是上述数据存储的最后一个步骤,且可能在执行完第一存储区存储或第二存储区存储时发生掉电,因此,第一存储区和第二存储区中数据的总条数可能比参数信息中数据的总条数X多1。此外,还可能出现存储区域在存储过程中突发掉电,如某条数据仅存了一半,对此,可以对第一存储区和第二存储区中存储第X+1条数据的存储单元进行数据校验,如进行CRC校验,然后结合校验结果与各存储区域存储的数据的总条数,对各存储区域是否异常进行判断。如果某存储区中的第X+1条数据异常,则表明该存储区对应的存储过程出现了掉电或者受到了掉电影响,如此可以判断该存储区存储异常;如果某存储区中的第X+1条数据正常,则表明该存储区对应的存储过程未出现掉电或者未受到掉电影响,如此可以判断该存储区存储正常。
具体的,判断过程可以如下:
在第一总条数=X+1、第一数据校验结果为校验通过、第二总条数=X+1、第二数据校验结果为校验通过的情况下,生成第一存储区存储正常、第二存储区存储正常、第三存储区存储异常的判断结果;
或者,在第一总条数=X+1、第一数据校验结果为校验通过、第二总条数=X、第二数据校验结果为未存入数据的情况下,生成第一存储区存储正常、第二存储区存储异常、第三存储区存储异常的判断结果;
或者,在第一总条数=X+1、第一数据校验结果为校验通过、第二总条数=X、第二数据校验结果为已存入数据的情况下,生成第一存储区存储正常、第二存储区存储异常、第三存储区存储异常的判断结果;
或者,在第一总条数=X、第一数据校验结果为未存入数据、第二总条数=X+1、第二数据校验结果为校验通过的情况下,生成第一存储区存储异常、第二存储区存储异常、第三存储区存储异常的判断结果;
或者,在第一总条数=X、第一数据校验结果为未存入数据、第二总条数=X、第二数据校验结果为未存入数据的情况下,生成第一存储区存储正常、第二存储区存储正常、第三存储区存储正常的判断结果;
或者,在第一总条数=X、第一数据校验结果为未存入数据、第二总条数=X、第二数据校验结果为已存入数据的情况下,生成第一存储区存储正常、第二存储区存储异常、第三存储区存储正常的判断结果;
或者,在第一总条数=X、第一数据校验结果为已存入数据、第二总条数=X+1、第二数据校验结果为校验通过的情况下,生成第一存储区存储异常、第二存储区存储异常、第三存储区存储异常的判断结果;
或者,在第一总条数=X、第一数据校验结果为已存入数据、第二总条数=X、第二数据校验结果为未存入数据的情况下,生成第一存储区存储异常、第二存储区存储正常、第三存储区存储正常的判断结果;
或者,在第一总条数=X、第一数据校验结果为已存入数据、第二总条数=X、第二数据校验结果为已存入数据的情况下,生成第一存储区存储异常、第二存储区存储异常、第三存储区存储异常的判断结果。
为了便于理解,如表二所示,其示出了上述判断过程的多种判断情况。
表二
步骤130,根据判断结果,对异常的存储区执行与判断结果相对应的预设数据处理。
在一些实施例中,预设数据处理可以包括根据第一存储区更新第二存储区、根据第二存储区更新第一存储区、根据第一存储区或第二存储区更新第三存储区。
具体的,在判断结果为第一存储区存储正常、第二存储区存储正常、第三存储区存储异常的情况下,根据第一存储区或第二存储区更新第三存储区。在判断结果为第一存储区存储正常、第二存储区存储异常、第三存储区存储异常的情况下,根据第一存储区更新第二存储区,并根据第一存储区更新第三存储区。在判断结果为第一存储区存储正常、第二存储区存储异常、第三存储区存储正常的情况下,根据第一存储区更新第二存储区。在判断结果为第一存储区存储异常、第二存储区存储正常、第三存储区存储正常的情况下,根据第二存储区更新第一存储区。
在一些实施例中,对于互为备份的第一存储区和第二存储区,可以采用完全覆盖的备份恢复方式,以恢复存储异常的存储区域。如此,根据第一存储区更新第二存储区,是指擦除第二存储区中的数据,并将第一存储区存储的数据备份存储至第二存储区。根据第二存储区更新第一存储区,是指擦除第一存储区中的数据,并将第二存储区存储的数据备份存储至第一存储区。根据第一存储区或第二存储区更新第三存储区,是指将第一存储区当前存储的数据的第一总条数或第二存储区当前存储的数据的第二总条数存储在第三存储区。
在一些实施例中,可以将扇区作为备份恢复单元,以恢复存储异常的存储区域。对此,第一存储区和第二存储区可以采用如下存储方式,即第一存储区和第二存储区均包括第一预设数目个扇区。相应的,第三存储区存储的参数信息,还可以包括第一存储区最后存储的数据所对应的第一扇区标识,以及第二存储区最后存储的数据所对应的第二扇区标识。
如此,根据第一存储区更新第二存储区,是指擦除第二存储区中与第二扇区标识相对应的扇区,并将第一存储区中与第一扇区标识相对应的扇区所存储的数据,备份存储至第二存储区中与第二扇区标识相对应的扇区。根据第二存储区更新第一存储区,是指擦除第一存储区中与第一扇区标识相对应的扇区,并将第二存储区中与第二扇区标识相对应的扇区所存储的数据,备份存储至第一存储区中与第一扇区标识相对应的扇区。根据第一存储区或第二存储区更新第三存储区,是指将第一存储区当前存储的数据的第一总条数或第二存储区当前存储的数据的第二总条数存储在第三存储区。
为了更好地理解本发明实施例提供的数据存储方法,各存储区域是否异常的判断处理以及对异常的存储区域的恢复处理,可以参见图3所示的流程图,同时,结合图2,给出几种典型情况。
当存储过程a发生掉电时,此时第二存储区数据正常,第一存储区数据异常,即第一存储区最新一条数据为错误数据,可以通过图3中的分支c,将第二存储区数据写入第一存储区,即剔除第一存储区中最新的一条未完整存入的事件记录,处理效果如图4所示。
当存储过程b发生掉电时,此时第一存储区数据正常,第二存储区数据异常,即第二存储区最新一条数据为错误数据,可以通过图3中的分支a,将第一存储区数据写入第二存储区,即保留最新的一条仅在第一存储区中完整保存的事件记录,并更新参数信息条数数量,触发参数信息存储,处理效果如图5所示。
当存储过程c发生掉电时,此时第一存储区与第二存储区数据均正常,可以通过图3中的分支b,更新参数信息条数数量,触发参数信息存储,处理效果如图6所示。
在一些实施例中,为了增加存储设备的存储空间,第三存储区可以采用循环存储的方式。具体的,第三存储区可以采用如下存储方式,即第三存储区包括第二预设数目个扇区,如32个扇区,每个扇区存储一条参数信息以及扇区循环识别码。如此,可以根据第二预设数目个扇区各自的扇区循环识别码,定位出第三存储区最后存储的参数信息所在的扇区。
下面给出一种循环存储方式。与上述表一相对应,如表三所示,每条参数信息的大小可以为16Words,其可以包括第一存储区或第二存储区当前存储的数据的总条数、扇区循环识别码及其所对应的字序号等信息。
表三
对此,给出一种定位出第三存储区最后存储的参数信息所在的扇区的方式。由于循环识别码在每存满32个扇区后改变一次,因此判断前后扇区的循环识别码是否一致,即可定位出最后存储的参数信息所在的扇区,也称为最新的存储扇区。具体的,可以分为以下几种情况:
(1)32个扇区循环识别码相同,且为0xFFFF。
说明存储参数信息的所有扇区均处于初始化状态,还未完整存入过一条参数信息,因此所有扇区的循环识别码都为0xFFFF,其原因可能是未存入任何事件记录或未完整存入第一条事件记录,此时,可以认为第0个扇区为最新的存储扇区。
(2)32个扇区循环识别码相同,且不为0xFFFF。
说明刚好存储完32个扇区,且最后一个扇区为最新的存储扇区,此时,可以认为第32个扇区为最新的存储扇区。
(3)32个扇区中其中两个连续扇区的循环识别码不同,可分为以下几种情况:
①前一个扇区为1,后一个扇区为0。可以认为前一个扇区为最新的存储扇区。
②前一个扇区为0,后一个扇区为1。可以认为前一个扇区为最新的存储扇区。
③前一个扇区为0,后一个扇区为0xFFFF。由于循环识别码的初始值为0,因此后一个扇区为0xFFFF,可能是因为还存在处于初始化状态的扇区,或者是在擦除下一个扇区后但还未来得及写入数据就出现掉电,对此,可以认为前一个扇区为最新的存储扇区。
④前一个扇区为1,后一个扇区为0xFFFF。由于循环识别码的初始值为0,因此前一个扇区为1,后一个扇区为0xFFFF不会在未存满32个扇区时出现,仅可能在擦除下一个扇区但还未来得及写入就出现掉电时出现,对此,可以认为前一个扇区为最新的存储扇区。
在本发明实施例中,为了解决存储设备意外掉电导致的数据存储异常的问题,采用划分为三个存储区域的存储设备进行数据存储,并且在存储数据时,按照特定的存储顺序进行,即先存第一存储区,然后存第二存储区,最后存第三存储区。由于第一存储区和第二存储区互为备份,第三存储区存储的参数信息是表征存储状态的历史记录和用户日志的关键信息,因此,当出现意外掉电导致的数据存储异常的问题时,可以根据第一存储区的当前校验结果、第二存储区的当前校验结果以及第三存储区最后存储的参数信息,生成第一存储区、第二存储区、第三存储区是否异常的判断结果,进而针对不同的判断结果,执行相应的数据恢复处理,如此,可以利用存储正常的存储区域存储的数据,对存储异常的存储区域进行数据恢复,解决了存储设备意外掉电导致的数据存储异常的问题,大大提高了存储设备的存储可靠性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
以下为本发明的装置实施例,对于其中未详尽描述的细节,可以参考上述对应的方法实施例。
图7示出了本发明实施例提供的数据存储装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
如图7所示,数据存储装置包括:
存储模块710,用于当产生待存储的预设类型的数据时,先将数据存储在存储设备的第一存储区,然后将数据存储在存储设备的第二存储区,再将与第一存储区和/或第二存储区当前存储状态相对应的参数信息存储在存储设备的第三存储区;
异常判断模块720,用于在存储设备进入掉电触发的数据校验处理的情况下,根据第一存储区的当前校验结果、第二存储区的当前校验结果以及第三存储区最后存储的参数信息,生成第一存储区、第二存储区、第三存储区是否异常的判断结果;
异常处理模块730,用于根据判断结果,对异常的存储区执行与判断结果相对应的预设数据处理;其中,预设数据处理包括根据第一存储区更新第二存储区、根据第二存储区更新第一存储区、根据第一存储区或第二存储区更新第三存储区。
在一种可能的实现方式,参数信息包括第一存储区或第二存储区当前存储的数据的总条数X;
相应的,异常判断模块还用于:
获取第一存储区当前存储的数据的第一总条数,以及第一存储区中用于存储第X+1条数据的存储单元的第一数据校验结果;
获取第二存储区当前存储的数据的第二总条数,以及第二存储区中用于存储第X+1条数据的存储单元的第二数据校验结果;
根据X、第一总条数和第二总条数,以及第一数据校验结果和第二数据校验结果,生成第一存储区、第二存储区、第三存储区是否异常的判断结果。
在一种可能的实现方式,异常判断模块还用于:
在第一总条数=X+1、第一数据校验结果为校验通过、第二总条数=X+1、第二数据校验结果为校验通过的情况下,生成第一存储区存储正常、第二存储区存储正常、第三存储区存储异常的判断结果;
或者,在第一总条数=X+1、第一数据校验结果为校验通过、第二总条数=X、第二数据校验结果为未存入数据的情况下,生成第一存储区存储正常、第二存储区存储异常、第三存储区存储异常的判断结果;
或者,在第一总条数=X+1、第一数据校验结果为校验通过、第二总条数=X、第二数据校验结果为已存入数据的情况下,生成第一存储区存储正常、第二存储区存储异常、第三存储区存储异常的判断结果;
或者,在第一总条数=X、第一数据校验结果为未存入数据、第二总条数=X+1、第二数据校验结果为校验通过的情况下,生成第一存储区存储异常、第二存储区存储异常、第三存储区存储异常的判断结果;
或者,在第一总条数=X、第一数据校验结果为未存入数据、第二总条数=X、第二数据校验结果为未存入数据的情况下,生成第一存储区存储正常、第二存储区存储正常、第三存储区存储正常的判断结果;
或者,在第一总条数=X、第一数据校验结果为未存入数据、第二总条数=X、第二数据校验结果为已存入数据的情况下,生成第一存储区存储正常、第二存储区存储异常、第三存储区存储正常的判断结果;
或者,在第一总条数=X、第一数据校验结果为已存入数据、第二总条数=X+1、第二数据校验结果为校验通过的情况下,生成第一存储区存储异常、第二存储区存储异常、第三存储区存储异常的判断结果;
或者,在第一总条数=X、第一数据校验结果为已存入数据、第二总条数=X、第二数据校验结果为未存入数据的情况下,生成第一存储区存储异常、第二存储区存储正常、第三存储区存储正常的判断结果;
或者,在第一总条数=X、第一数据校验结果为已存入数据、第二总条数=X、第二数据校验结果为已存入数据的情况下,生成第一存储区存储异常、第二存储区存储异常、第三存储区存储异常的判断结果。
在一种可能的实现方式,异常处理模块还用于:
在判断结果为第一存储区存储正常、第二存储区存储正常、第三存储区存储异常的情况下,根据第一存储区或第二存储区更新第三存储区;
在判断结果为第一存储区存储正常、第二存储区存储异常、第三存储区存储异常的情况下,根据第一存储区更新第二存储区,并根据第一存储区更新第三存储区;
在判断结果为第一存储区存储正常、第二存储区存储异常、第三存储区存储正常的情况下,根据第一存储区更新第二存储区;
在判断结果为第一存储区存储异常、第二存储区存储正常、第三存储区存储正常的情况下,根据第二存储区更新第一存储区。
在一种可能的实现方式,根据第一存储区更新第二存储区,是指擦除第二存储区中的数据,并将第一存储区存储的数据备份存储至第二存储区;根据第二存储区更新第一存储区,是指擦除第一存储区中的数据,并将第二存储区存储的数据备份存储至第一存储区;根据第一存储区或第二存储区更新第三存储区,是指将第一存储区当前存储的数据的第一总条数或第二存储区当前存储的数据的第二总条数存储在第三存储区。
在一种可能的实现方式,第一存储区和第二存储区均包括第一预设数目个扇区;参数信息还包括第一存储区最后存储的数据所对应的第一扇区标识,以及第二存储区最后存储的数据所对应的第二扇区标识;
相应的,根据第一存储区更新第二存储区,是指擦除第二存储区中与第二扇区标识相对应的扇区,并将第一存储区中与第一扇区标识相对应的扇区所存储的数据,备份存储至第二存储区中与第二扇区标识相对应的扇区;根据第二存储区更新第一存储区,是指擦除第一存储区中与第一扇区标识相对应的扇区,并将第二存储区中与第二扇区标识相对应的扇区所存储的数据,备份存储至第一存储区中与第一扇区标识相对应的扇区;根据第一存储区或第二存储区更新第三存储区,是指将第一存储区当前存储的数据的第一总条数或第二存储区当前存储的数据的第二总条数存储在第三存储区。
在一种可能的实现方式第三存储区包括第二预设数目个扇区,每个扇区存储一条参数信息以及扇区循环识别码;
相应的,数据存储装置还包括;
获取模块,用于根据第二预设数目个扇区各自的扇区循环识别码,获取第三存储区最后存储的参数信息。
在本发明实施例中,可以利用存储正常的存储区域存储的数据,对存储异常的存储区域进行数据恢复,解决了存储设备意外掉电导致的数据存储异常的问题,大大提高了存储设备的存储可靠性。
图8是本发明实施例提供的电子设备的示意图。如图8所示,该实施例的电子设备8包括:处理器80、存储器81以及存储在存储器81中并可在处理器80上运行的计算机程序82。处理器80执行计算机程序82时实现上述各个数据存储方法实施例中的步骤,例如图1所示的步骤110至步骤130。或者,处理器80执行计算机程序82时实现上述各装置实施例中各模块/单元的功能,例如图7所示模块710至730的功能。
示例性的,计算机程序82可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器81中,并由处理器80执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序82在电子设备8中的执行过程。例如,计算机程序82可以被分割成图7所示模块710至730。
电子设备8可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是电子设备8的示例,并不构成对电子设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器81可以是所述电子设备8的内部存储单元,例如电子设备8的硬盘或内存。所述存储器81也可以是所述电子设备8的外部存储设备,例如所述电子设备8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器81还可以既包括所述电子设备8的内部存储单元也包括外部存储设备。所述存储器81用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个数据存储方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据存储方法,其特征在于,所述方法包括:
当产生待存储的预设类型的数据时,先将所述数据存储在存储设备的第一存储区,然后将所述数据存储在所述存储设备的第二存储区,再将与第一存储区和/或第二存储区当前存储状态相对应的参数信息存储在所述存储设备的第三存储区;
在所述存储设备进入掉电触发的数据校验处理的情况下,根据第一存储区的当前校验结果、第二存储区的当前校验结果以及第三存储区最后存储的参数信息,生成第一存储区、第二存储区、第三存储区是否异常的判断结果;
根据所述判断结果,对异常的存储区执行与所述判断结果相对应的预设数据处理;其中,所述预设数据处理包括根据第一存储区更新第二存储区、根据第二存储区更新第一存储区、根据第一存储区或第二存储区更新第三存储区。
2.根据权利要求1所述的数据存储方法,其特征在于,所述参数信息包括第一存储区或第二存储区当前存储的数据的总条数X;
所述根据第一存储区的当前校验结果、第二存储区的当前校验结果以及第三存储区最后存储的参数信息,生成第一存储区、第二存储区、第三存储区是否异常的判断结果,包括:
获取第一存储区当前存储的数据的第一总条数,以及第一存储区中用于存储第X+1条数据的存储单元的第一数据校验结果;
获取第二存储区当前存储的数据的第二总条数,以及第二存储区中用于存储第X+1条数据的存储单元的第二数据校验结果;
根据X、第一总条数和第二总条数,以及所述第一数据校验结果和所述第二数据校验结果,生成第一存储区、第二存储区、第三存储区是否异常的判断结果。
3.根据权利要求2所述的数据存储方法,其特征在于,所述根据X、第一总条数和第二总条数,以及所述第一数据校验结果和所述第二数据校验结果,生成第一存储区、第二存储区、第三存储区是否异常的判断结果,包括:
在第一总条数=X+1、第一数据校验结果为校验通过、第二总条数=X+1、第二数据校验结果为校验通过的情况下,生成第一存储区存储正常、第二存储区存储正常、第三存储区存储异常的判断结果;
或者,在第一总条数=X+1、第一数据校验结果为校验通过、第二总条数=X、第二数据校验结果为未存入数据的情况下,生成第一存储区存储正常、第二存储区存储异常、第三存储区存储异常的判断结果;
或者,在第一总条数=X+1、第一数据校验结果为校验通过、第二总条数=X、第二数据校验结果为已存入数据的情况下,生成第一存储区存储正常、第二存储区存储异常、第三存储区存储异常的判断结果;
或者,在第一总条数=X、第一数据校验结果为未存入数据、第二总条数=X+1、第二数据校验结果为校验通过的情况下,生成第一存储区存储异常、第二存储区存储异常、第三存储区存储异常的判断结果;
或者,在第一总条数=X、第一数据校验结果为未存入数据、第二总条数=X、第二数据校验结果为未存入数据的情况下,生成第一存储区存储正常、第二存储区存储正常、第三存储区存储正常的判断结果;
或者,在第一总条数=X、第一数据校验结果为未存入数据、第二总条数=X、第二数据校验结果为已存入数据的情况下,生成第一存储区存储正常、第二存储区存储异常、第三存储区存储正常的判断结果;
或者,在第一总条数=X、第一数据校验结果为已存入数据、第二总条数=X+1、第二数据校验结果为校验通过的情况下,生成第一存储区存储异常、第二存储区存储异常、第三存储区存储异常的判断结果;
或者,在第一总条数=X、第一数据校验结果为已存入数据、第二总条数=X、第二数据校验结果为未存入数据的情况下,生成第一存储区存储异常、第二存储区存储正常、第三存储区存储正常的判断结果;
或者,在第一总条数=X、第一数据校验结果为已存入数据、第二总条数=X、第二数据校验结果为已存入数据的情况下,生成第一存储区存储异常、第二存储区存储异常、第三存储区存储异常的判断结果。
4.根据权利要求2所述的数据存储方法,其特征在于,所述根据所述判断结果,对异常的存储区执行与所述判断结果相对应的预设数据处理,包括:
在所述判断结果为第一存储区存储正常、第二存储区存储正常、第三存储区存储异常的情况下,根据第一存储区或第二存储区更新第三存储区;
在所述判断结果为第一存储区存储正常、第二存储区存储异常、第三存储区存储异常的情况下,根据第一存储区更新第二存储区,并根据第一存储区更新第三存储区;
在所述判断结果为第一存储区存储正常、第二存储区存储异常、第三存储区存储正常的情况下,根据第一存储区更新第二存储区;
在所述判断结果为第一存储区存储异常、第二存储区存储正常、第三存储区存储正常的情况下,根据第二存储区更新第一存储区。
5.根据权利要求2或4所述的数据存储方法,其特征在于:
所述根据第一存储区更新第二存储区,是指擦除第二存储区中的数据,并将第一存储区存储的数据备份存储至第二存储区;
所述根据第二存储区更新第一存储区,是指擦除第一存储区中的数据,并将第二存储区存储的数据备份存储至第一存储区;
所述根据第一存储区或第二存储区更新第三存储区,是指将第一存储区当前存储的数据的第一总条数或第二存储区当前存储的数据的第二总条数存储在第三存储区。
6.根据权利要求2或4所述的数据存储方法,其特征在于,所述第一存储区和所述第二存储区均包括第一预设数目个扇区;所述参数信息还包括第一存储区最后存储的数据所对应的第一扇区标识,以及第二存储区最后存储的数据所对应的第二扇区标识;
所述根据第一存储区更新第二存储区,是指擦除第二存储区中与所述第二扇区标识相对应的扇区,并将第一存储区中与所述第一扇区标识相对应的扇区所存储的数据,备份存储至第二存储区中与所述第二扇区标识相对应的扇区;
所述根据第二存储区更新第一存储区,是指擦除第一存储区中与所述第一扇区标识相对应的扇区,并将第二存储区中与所述第二扇区标识相对应的扇区所存储的数据,备份存储至第一存储区中与所述第一扇区标识相对应的扇区;
所述根据第一存储区或第二存储区更新第三存储区,是指将第一存储区当前存储的数据的第一总条数或第二存储区当前存储的数据的第二总条数存储在第三存储区。
7.根据权利要求1所述的数据存储方法,其特征在于,所述第三存储区包括第二预设数目个扇区,每个扇区存储一条所述参数信息以及扇区循环识别码;
在所述根据第一存储区的当前校验结果、第二存储区的当前校验结果以及第三存储区最后存储的参数信息,生成第一存储区、第二存储区、第三存储区是否异常的判断结果之前,所述方法还包括;
根据所述第二预设数目个扇区各自的扇区循环识别码,获取第三存储区最后存储的参数信息。
8.一种数据存储装置,其特征在于,包括:
存储模块,用于当产生待存储的预设类型的数据时,先将所述数据存储在存储设备的第一存储区,然后将所述数据存储在所述存储设备的第二存储区,再将与第一存储区和/或第二存储区当前存储状态相对应的参数信息存储在所述存储设备的第三存储区;
异常判断模块,用于在所述存储设备进入掉电触发的数据校验处理的情况下,根据第一存储区的当前校验结果、第二存储区的当前校验结果以及第三存储区最后存储的参数信息,生成第一存储区、第二存储区、第三存储区是否异常的判断结果;
异常处理模块,用于根据所述判断结果,对异常的存储区执行与所述判断结果相对应的预设数据处理;其中,所述预设数据处理包括根据第一存储区更新第二存储区、根据第二存储区更新第一存储区、根据第一存储区或第二存储区更新第三存储区。
9.一种电子设备,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上的权利要求1至7中任一项所述的数据存储方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上的权利要求1至7中任一项所述的数据存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058967.6A CN115421657A (zh) | 2022-08-30 | 2022-08-30 | 数据存储方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058967.6A CN115421657A (zh) | 2022-08-30 | 2022-08-30 | 数据存储方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115421657A true CN115421657A (zh) | 2022-12-02 |
Family
ID=84201219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211058967.6A Pending CN115421657A (zh) | 2022-08-30 | 2022-08-30 | 数据存储方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115421657A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116149577A (zh) * | 2023-04-24 | 2023-05-23 | 杭州炬华科技股份有限公司 | 基于轮转池的数据处理方法、系统和可读存储介质 |
-
2022
- 2022-08-30 CN CN202211058967.6A patent/CN115421657A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116149577A (zh) * | 2023-04-24 | 2023-05-23 | 杭州炬华科技股份有限公司 | 基于轮转池的数据处理方法、系统和可读存储介质 |
CN116149577B (zh) * | 2023-04-24 | 2023-07-07 | 杭州炬华科技股份有限公司 | 基于轮转池的数据处理方法、系统和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115421657A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN111813753A (zh) | 保存文件的方法、恢复文件的方法、装置及终端设备 | |
CN110209529A (zh) | 射频参数的保护方法及电子设备 | |
CN110515544B (zh) | 数据存储的方法及终端设备 | |
CN116974813B (zh) | 寄存器数据管理方法、装置、寄存器模块、计算机设备 | |
CN106610849A (zh) | 一种复杂可编程逻辑器件的升级处理方法 | |
US12038808B2 (en) | Memory integrity check | |
CN113884976B (zh) | 一种基于云平台的智能电表数据保护方法、系统 | |
CN114442953B (zh) | 一种数据校验的方法、系统、芯片和电子设备 | |
CN116244111A (zh) | 数据恢复方法、存储方法、医疗设备、装置及电子设备 | |
CN112542208B (zh) | Sd nand测试方法、装置、存储介质和终端 | |
CN115167761A (zh) | 一种智慧水务终端数据保护方法及系统 | |
CN111813600B (zh) | 一种控制器的恢复方法、装置、终端和介质 | |
CN110968456A (zh) | 分布式存储系统中故障磁盘的处理方法及装置 | |
CN115309435A (zh) | 设备固件升级方法、装置及电子设备 | |
CN114625317A (zh) | 一种调整码率的方法、装置、电子设备及可读存储介质 | |
CN114816832A (zh) | 一种单片机的数据管理方法、装置以及系统 | |
CN113448776A (zh) | 一种文件系统的处理方法、系统、智能设备及存储介质 | |
CN109960611B (zh) | 数据恢复的方法、装置、电子设备及机器可读存储介质 | |
CN114003172A (zh) | 存储容量校正方法、装置、计算机设备以及存储介质 | |
CN112463042A (zh) | 一种数据卷导入数据校验方法、装置、终端及存储介质 | |
CN114637626B (zh) | 减少eeprom数据读写出错的方法、装置、设备及可读存储介质 | |
CN116301607A (zh) | 一种存储区域的擦除方法、擦除装置及终端设备 | |
CN112286464B (zh) | 片内crc检查数据完整性方法、装置、存储介质和终端 | |
CN114201320B (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 |