CN106407050B - 一种数据存储方法 - Google Patents

一种数据存储方法 Download PDF

Info

Publication number
CN106407050B
CN106407050B CN201610910741.2A CN201610910741A CN106407050B CN 106407050 B CN106407050 B CN 106407050B CN 201610910741 A CN201610910741 A CN 201610910741A CN 106407050 B CN106407050 B CN 106407050B
Authority
CN
China
Prior art keywords
data
storage area
area
backup
storage
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
Application number
CN201610910741.2A
Other languages
English (en)
Other versions
CN106407050A (zh
Inventor
徐晓翔
洪金追
柳龙杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kehua Data Co Ltd
Xiamen Kehua Digital Energy Tech Co Ltd
Original Assignee
Xiamen Kehua Hengsheng Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Kehua Hengsheng Co Ltd filed Critical Xiamen Kehua Hengsheng Co Ltd
Priority to CN201610910741.2A priority Critical patent/CN106407050B/zh
Publication of CN106407050A publication Critical patent/CN106407050A/zh
Application granted granted Critical
Publication of CN106407050B publication Critical patent/CN106407050B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种数据存储方法,提供主存储区、备份存储区、索引区、数据暂存区、时间暂存区、主校验区以及备份校验区;包括如下方式:擦除主存储区以及备份存储区,在时间暂存区写入当前的时间信息,并在索引区中当前的索引单元写入起始偏移量;将获取的待存储数据写入数据暂存区;计算当前的时间信息对应的存储偏移量;计算所述待存储数据在所述主存储区存储的写入地址,并将待存储数据写入所述主存储区中:计算写入地址映射在备份存储区存储的备份地址,并将待存储数据按照该备份地址写入备份存储区。本发明所提出的一种数据存数方法,实现了数据量大的数据存储、实时更新以及定期存储。

Description

一种数据存储方法
技术领域
本发明涉及一种电数字数据处理领域,特别是一种数据存储方法。
背景技术
在工业生产中,经常需要对各种参数进行连续记录存储,产生连续的历史数据,为技术和管理人员提供分析研究的一手资料。但是,很多工况环境不佳,存储器在存储过程中不可避免的出现意外掉电的情况,导致数据存储过程被中断,特别是对于采用flash存储器作为存储介质的,意外掉电可能导致已存储的历史数据错误。flash存储器是一种常用的存储介质,具有可掉电存储、存储空间大、成本低的特点。对flash存储器的重复写入操作的步骤一般为:首先获取目的地址所在扇区的数据,然后把整个扇区中目的地址的数据用待写的数据替换,这样就整合了老数据和待写的数据,最后把整合的数据再写入到flash存储器中。由于flash存储器的读写速度较慢,而且是进行先擦后写的操作,因此如果在写的过程中发生意外掉电等异常情况,可能破坏原来的数据。另外,flash存储器的擦除寿命有限,随着擦除次数的增加,会有一些存储块逐渐变得不稳定或存储失败,当数据需要实时存储时,flash存储器受到使用寿命的限制。为实现数据的实时存储,一般采用写入速度快、擦写次数不限制的铁电存储器进行数据存储,但该存储器的成本较高,当需要存储大量数据时,成本将大大增加。
工业应用中,很多时候不需要记录并保留全部实时数据,会以一定的采样周期对参数进行采样记录。有的参数虽然实时采样但存储的数据却是将一定周期内的采样数据进行处理后再行存储。比如光伏并网逆变器,相比实时发电量的变化情况,更多时候关心的是日发电量,因此需要实时采样、统计发电量,并在每日结束时对统计的日发电量进行存储。光伏并网逆变器基本需要保证20~25年的数据量,其数据量也不小。本发明提出一种适用于需要实时更新、定期存储且数据量大的数据存储装置和数据存储方法。
发明内容
本发明的目的在于提供一种数据存储方法,以克服现有技术中存在的缺陷。
为实现上述目的,本发明的技术方案是:一种数据存储方法,提供一包括多个存储块的主存储区、一用于备份所述主存储区数据的备份存储区、一包括至少一个索引单元的索引区、一用于暂存待存储数据的数据暂存区;按照如下步骤实现:
步骤S12:获取待存储数据,并将其写入所述数据暂存区;
步骤S13:计算当前的时间信息对应的存储偏移量;
步骤S14:按照如下方式计算所述待存储数据在所述主存储区存储的写入地址,并将所述待存储数据按照该写入地址写入所述主存储区中:
写入地址=主存储区的起始地址+当前索引单元存储的起始偏移量+存储偏移量;
步骤S15:按照如下方式计算所述写入地址映射在所述备份存储区的备份地址,并将所述待存储数据按照该备份地址写入所述备份存储区:
备份地址=备份存储区的起始地址+当前索引单元存储的起始偏移量+存储偏移量;
其中,所述索引单元用于存储所述存储块的起始偏移量,所述当前的时间信息包括用于标记存储周期的存储标记以及用于标记所述待存储数据对应的采样时间序列号的时间标记。
进一步的,初次上电进行数据存储前,按照如下步骤S110至S113进行初始化:
步骤S110:擦除所述主存储区以及所述备份存储区;
步骤S111:读取所述主存储区一未写入数据的存储块的起始地址,将当前时间信息的存储标记写入该起始地址;
步骤S112:计算所述主存储区当前的存储块的起始地址相对于所述主存储区起始地址的起始偏移量,将该起始偏移量写入当前索引单元;
步骤S113:按照如下方式计算所述主存储区当前的存储块的起始地址映射在所述备份存储区的备份地址,并将该存储标记写入该备份地址:
备份地址=备份存储区的起始地址+当前索引单元存储的起始偏移量。
进一步的,还提供一用于存储时间信息的时间暂存区,所述步骤S110还包括:
获取当前的时间信息,并将其写入时间暂存区;
所述步骤S15之后,还包括如下步骤:
步骤S16:获取所述当前的时间信息,并将其写入时间暂存区。
进一步的,所述步骤S12具体包括如下步骤S121至S122:
步骤S121:判断当前的时间信息的存储标记与所述时间暂存区中存储的时间信息的存储标记是否一致,若一致,则执行步骤S122,否则跳转执行所述步骤S13至步骤S16,步骤S16之后执行所述步骤S111至步骤S113;
步骤S122:判断当前的时间信息的时间标记与所述时间暂存区中存储的时间信息的时间标记是否一致,若一致,则获取待存储数据,并将其写入所述数据暂存区,并重复执行所述步骤S122;否则跳转执行所述步骤S13至步骤S16。
进一步的,还提供一用于存储主存储区校验码的主校验区以及一用于存储备份存储区校验码的备份校验区;
在所述步骤S14中,将所述待存储数据写入所述写入地址,或在所述步骤S111中,将当前的存储标记写入所述起始地址,还包括计算所述主存储区的校验码;若检验正确,则将所述校验码写入所述主校验区,否则擦除所述主存储区与所述主校验区,将所述备份存储区存储的数据写入所述主存储区的相应地址,并将所述备份校验区的校验码写入主校验区;
在所述步骤S15中,将所述待存储数据写入备份地址,或在所述步骤S113中,将当前的存储标记写入备份地址,还包括计算所述备份存储区的校验码;若检验正确,则将所述校验码写入备份校验区,否则擦除备份存储区和备份校验区,将主存储区存储的数据写入备份存储区的相应地址,将主校验区的校验码写入备份校验区。
进一步的,所述索引单元采用环形循环方式指向下一索引单元。
进一步的,在所述步骤S13中,当前的时间信息对应的存储偏移量的计算方法如下:存储偏移量=n1+n2*(时间标记-1)+1,其中,n1为存储标记的字节长度,n2为待存储数据的字节长度,且n1、n2均为正整数。
进一步的,所述时间信息包括年份、月份以及日期,所述存储标记为年份,所述时间标记=月份*31+日期。
进一步的,所述主存储区和所述备份存储区采用nor flash存储器,所述索引区、所述数据暂存区、所述时间暂存区采用铁电存储器;所述主校验区和所述备份校验区均采用铁电存储器。
进一步的,当存储过程中意外中断后,重新上电后的数据存储方法按照以下步骤S21至S24实现:
步骤S21:读取所述主存储区存储的数据,并重新计算主存储区的校验码;
步骤S22:判断重新计算的校验码与所述主校验区存储的校验码是否一致,若一致,则擦除所述备份存储区和所述备份校验区,将所述主存储区存储的数据写入所述备份存储区的相应地址,将所述主校验区的校验码写入备份校验区,并跳转执行所述步骤S12,继续存储数据;若不一致,则执行步骤S23;
步骤S23:读取所述备份存储区存储的数据,并重新计算备份存储区的校验码;
步骤S24:判断重新计算的校验码与所述备份校验区存储的校验码是否一致,若一致,则擦除所述主存储区和所述主校验区,将所述备份存储区存储的数据写入所述主存储区的相应地址,将是备份校验区的校验码写入所述主校验区,跳转执行所述步骤S12,继续存储数据;若不一致,无法恢复数据,依照初次上电存储时的步骤进行初始化。
相较于现有技术,本发明具有以下有益效果:
(1)数据在主存储区或备份存储区的存储地址与该数据的采样时间密切相关,可根据存储偏移量的计算规则,反推可获取任一存储单元存储的数据对应的采样时间,写入的数据未包含具体的采样时间,节约存储空间,同时不影响数据的读取与还原。以包括年份、月份、日期的时间信息为例,以年份为存储标记将一年内的全部数据存储于同一存储块中,并将年份信息写入该存储块中;根据当前的时间的月份和日期将隔天的数据转存至主存储区或备份存储区相应的存储地址,某一天在主存储区/备份存储区对应的存储地址是固定的,在读取该年份数据时,在主存储区中读取该年份对应的存储块,根据某一数据的存储地址可还原该数据对应的月份和日期,不需要写入具体的月份和日期,节约存储空间且不影响后期的数据还原。
(2)本发明采用主存储区和备份存储区两个相同但独立的扇区对数据进行分时存储,先在主存储区中存储,再写入备份存储区,主存储区和备份存储区形成相同、互为备份的存储数据,在扇区进行擦写过程中任何时候掉电,保证至少主存储区或备份存储区存储的数据是有效的,可利用其一存储区对另一存储区进行数据恢复,重新建立主存储区和备份存储区互为备份的数据结构。
(3)本发明同时采用铁电存储器和Nor Flash存储器,利用铁电存储器擦写不限次数且可掉电存储的特性进行实时存储,弥补Nor Flash存储器擦写次数受限的不足,利用Nor Flash存储器存储空间大、成本低的特性进行大数据量存储,弥补Nor Flash存储器成本高的不足,二者互补,可同时满足实时存储和大数据量存储的需求。
(4)对主存储区和备份存储区分别配置一校验区,每一写入主存储区或备份存储区时都进行校验,保证每一写入数据都正确,同时可利用校验区存储的校验码判断主存储区或备份存储区存储的数据是否出错。
附图说明
图1为本发明中数据存储装置的原理图。
图2为本发明中数据存数方法的流程图。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
在本实施例中,以存储光伏***的日发电量为例,对本发明所提出的数据存储装置和存储方法进行详细说明,以便本领域技术人员更加清楚、明白的理解本发明的发明构思。
本发明提供一种数据存储方法,还提供一种数据存储装置,如图1所示,包括主存储区、备份存储区、索引区、数据暂存区、时间暂存区、主校验区和备份校验区。其中,主存储区和备份存储区采用nor flash存储器,用于存储传感器或其他方式采集到的需要长期存储的数据。本实施例中,即为光伏***的日发电量;索引区、数据暂存区、时间暂存区、主校验区和备份校验区采用铁电存储器,用于存储在整个数据采集周期内,需要不断更新、重复擦写的数据。
进一步的,在本实施例中,主存储区包括多个地址长度相同的存储块,备份存储区与主存储区形成完成相同的存储块结构,存储块用于存储一个存储周期内的待存储数据。本实施例中,每一存储块用于存储以年为时间周期的采样数据,每一存储块的地址长度大于一年内待存储数据需要的最大的地址长度,使得数据块不被覆盖,能完整的再现该年份的全部数据。
进一步的,在本实施例中,索引区则包括至少一个索引单元,索引单元用于存储主存储区的其一存储块起始地址相对于主存储区起始地址的起始偏移量,索引单元采用环形循环方式指向下一索引单元;本实施例中,设置有20个索引单元,分别用于写入主存储区的其中20个存储块的起始地址,并且可覆盖写入不同存储块的起始地址。
进一步的,在本实施例中,数据暂存区用于暂存待存储数据。本实施例中,待存储数据即为当前时间累计的日发电量。
进一步的,在本实施例中,时间暂存区用于存储待存储数据对应的采样时间的时间信息。应说明的是,采样时间可以根据实际需要包含年份、月份、日期、时、分、秒等信息,甚至更小的时间单位,该时间暂存区存储的时间信息包括用于标记一个存储周期的存储标记和用于标记当前的待存储数据的采样时间序列号的时间标记。本实施例中,存储周期为一年,存储标记即为对应的年份,采样周期为1天,时间标记即为月份和日期,更具体的可以是当前的日期对应在该年份中的天数。该采样时间序列号表示当前的待存储数据对应的采样周期在储存周期中的序号,也即表示该当前的待存储数据为第几次采样的数据。
进一步的,在本实施例中,主校验区、备份校验区,分别用于存储主存储区的校验码、备份存储区的校验码。
进一步的,在本实施例中,索引区、数据暂存区、时间暂存区、主校验区和备份校验区等需要重复擦写的存储单元采用铁电存储器,主存储区和备份存储区用于存储大量数据存储单元采用Nor Flash存储器,利用铁电存储器擦写不限次数且可掉电存储的特性进行实时存储,弥补Nor Flash存储器擦写次数受限的不足,利用Nor Flash存储器存储空间大、成本低的特性进行大数据量存储,弥补Nor Flash存储器成本高的不足,结合二者的优点,互补不足,同时满足实时存储和大数据量存储的前提下,控制成本。
进一步的,在本实施例中,本发明所提出的一种数据存储方法,如图2所示,具体包括以下步骤:
需要说明的是,以下时间信息包括存储标记和时间标记,本实施例中,以光伏***的日发电量为存储对象,时间信息包括年份、月份、日期,其中年份即为存储标记,时间标记则包括月份和日期,如当前日期为2016年9月20日,其中存储标记为2016,时间标记为月份*31+日期,具体为9*31+20=299。应说明的是,默认月份按每个月31日计算,以简化计算并且保证每一个采样时间均有对应的存储单元,保证数据完整。
初次上电进行数据存储前,按照如下步骤S110至S113进行初始化:
步骤S110:擦除主存储区以及备份存储区;获取当前的时间信息,并将其写入时间暂存区;
步骤S111:读取主存储区一未写入数据的存储块的起始地址,将当前的存储标记即当前的年份写入该起始地址;假定该存储块即为主存储区的第一个数据块,该存储块的起始地址为Ox0000,也即为主存储区的起始地址,则将当前的年份写入地址为Ox0000的存储单元中;
步骤S112:计算主存储区当前的存储块的起始地址相对于主存储区起始地址的起始偏移量,将该起始偏移量写入当前索引单元;基于步骤S111,计算的起始偏移量为0;
步骤S113: 主存储区当前的存储块的起始地址映射在备份存储区的备份地址,备份地址=备份存储区的起始地址+当前索引单元存储的起始偏移量,将该存储标记写入该备份地址;假定该备份存储区的起始地址为Ox8000,则该备份地址则为Ox8000;
以上完成了初次上电的初始化过程。
步骤S12:获取待存储数据,并将其写入数据暂存区;
步骤S12具体包括如下步骤S121至S122:
步骤S121:判断当前的时间信息的存储标记与时间暂存区中存储的时间信息的存储标记是否一致,若一致,执行步骤S122,即重新获取待存储数据写入数据暂存区并获取对应的时间信息;否则跳转执行步骤S13至步骤S16,完成待存储数据的存储,步骤S16之后跳转执行步骤S111至步骤S113,即重新读取主存储区其一未写入数据的存储块,并完成存储标记在主存储区和备份存储区的存储,以及下一索引单元中写入起始偏移量,准备向新的存储块写入待存储数据。
步骤S122:判断当前的时间信息的时间标记与时间暂存区中存储的时间信息的时间标记是否一致,若一致,则说明还未到下一采样时间,本实施例中即为一天还未结束,则获取待存储数据,并将其写入数据暂存区,并重复执行步骤S122;否则跳转执行步骤S13。
如上步骤S111至S113中,实现了将存储标记写入主存储区/备份存储区的其一存储块的起始地址,而S121至S122中确保将具有同一存储标记的数据存储在同一存储块中,便于数据的读取与还原。
步骤S13:计算当前的时间信息对应的存储偏移量;优选的,存储偏移量=n1+n2*(月份*31+日期-1)+1,其中,n1为存储标记的字节长度,n2为待存储数据的字节长度,n1、n2均为正整数。
数据在主存储区或备份存储区的存储地址与该数据的采样时间有关,可根据存储偏移量的计算规则,反推可获取任一存储单元存储的数据对应的采样时间,写入的数据未包含具体的采样时间,节约存储空间,同时不影响数据的读取与还原。以包括年份、月份、日期的时间信息为例,年份即为存储标记,月份和日期作为时间标记,将同一年内的全部数据存储于同一存储块中,且该存储块仅存储一年的数据,并将年份信息写入该存储块中;以月份和日期作为时间标记,将隔天的数据转存至主存储区或备份存储区,每一数据在主存储区的写入地址与其对应的月份和日期有关,一年中某一天在主存储区/备份存储区对应的存储地址是固定的,在读取该年份数据时,在主存储区中读取该年份对应的存储块,根据某一数据的存储地址可还原该数据对应的月份和日期,不需要写入具体的月份和日期,节约存储空间且不影响后期的数据还原。
步骤S14:计算当前的待存储数据在主存储区存储的写入地址,写入地址=主存储区的起始地址+当前索引单元存储的起始偏移量+存储偏移量,并将待存储数据写入该写入地址;
步骤S15:计算当前的待存储数据在备份存储区存储的备份地址,备份地址=备份存储区的起始地址+当前索引单元存储的起始偏移量+存储偏移量,并将待存储数据写入该备份地址;
步骤S16:获取当前的时间信息,将当前的时间信息写入时间暂存区,并擦除数据暂存区,跳转执行步骤S12,开始存储下一个待存储数据。
如上S11至S16,实现了将数据写入主存储区进行存储,同时将该数据写入其在备份存储区的备份地址进行数据备份存储。数据存储之前,主存储区和备份存储区是存储块结构完全相同的、内容均为空的两个存储区,数据存储之后,主存储区和备份存储区会形成存储数据内容也相同的两个存储区。
如上S14中将待存储数据写入该写入地址或S111中将当前的存储标记写入该起始地址,还包括计算主存储区的校验码,若检验正确,则将校验码写入主校验区,否则擦除主存储区与主校验区,将备份存储区存储的数据内容写入主存储区相应地址,使得主存储区形成与备份存储区完全一致的数据内容,将备份校验区存储的校验码写入主校验区。如上备份存储区存储的数据内容在主存储区相应地址的具体对应关系如下:主存储区相应地址=备份存储区的备份地址-(备份存储区的起始地址-主存储区的起始地址)。
如上S15中将待存储数据写入该备份地址或S113中将当前的存储标记写入该备份地址,还包括计算备份存储区的校验码,若检验正确,则将校验码写入备份校验区,否则擦除备份存储区和备份校验区,将主存储区存储的数据内容写入备份存储区相应地址,使得备份存储区形成与主存储区完全一致的数据结构,将主校验区存储的校验码写入备份校验区。如上主存储区存储的数据内容在备份存储区相应地址的具体对应关系如下:备份存储区相应地址=主存储区的备份地址+(备份存储区的起始地址-主存储区的起始地址)。
在主存储区/备份存储区写入数据时,每次均对写入的数据进行校验,保证每一写入数据都正确。本实施例中,采用计算主存储区或备份存储区的数据的和校验码的方式进行校验。以待存储数据写入主存储区的写入地址为例,校验方式如下:待存储数据写入之前,先将校验区中的校验码取出,与待存储数据计算出一个原始校验码备用将待存储数据写入之后,将主存储区中数据读出计算出新校验码;若两个校验码一致,则校验正确将校验码写入校验区,否则校验有误,即数据写入过程出错。在备份存储区写入数据时的校验方式同如上校验方式。
当存储过程中意外中断后,重新上电后的数据存储方法按照以下步骤S21至S24实现:
步骤S21:读取主存储区存储的数据,并重新计算主存储区的校验码;计算校验码的方法与写入数据时校验码的计算方法一致
步骤S22:判断重新计算的校验码与主校验区存储的校验码是否一致,若一致,则说明主存储区存储的数据有效无误,擦除备份存储区和备份校验区,将主存储区存储的数据写入备份存储区的相应地址,将主校验区的校验码写入备份校验区,并跳转执行步骤S12,继续存储数据;若不一致,则说明主存储区的数据有误不可取,则执行步骤S23;
步骤S23:读取备份存储区存储的数据,并重新计算备份存储区的校验码;
步骤S24:判断重新计算的校验码与备份校验区存储的校验码是否一致,若一致,则说明主存储区存储的数据有效无误,擦除主存储区和主校验区,将备份存储区存储的数据写入主存储区相应地址,将是备份校验区的校验码写入主校验区,跳转执行步骤S12,继续存储数据;若不一致,则说明主存储区和备份存储区的数据均被破坏,采用软件方式以无法恢复数据,但这种情况出现概率极低;若出现该情况,则可依照初次上电存储时的步骤进行初始化。
在本实施例中,重新上电后,首先采用与数据写入主存储区或备份存储区时相同的校验方式重新计算校验码,并将其与主校验区或备份校验区内存储的校验码进行比较,验证存储中断是否造成数据破坏,并根据另一存储区的数据进行该存储区的数据恢复,重新建立两个数据完成相同的存储区。确保主存储区和备份存储区的数据一致后再行存储新数据。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,例如将上述隔天存储数据修改为1小时或2天或其他时间周期存储一次,或将上述一个存储块用于存储一年的数据,修改为其他时间周期,或将本发明的数据存储装置或数据存储方法用于其他领域存储其他参数,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

Claims (9)

1.一种数据存储方法,其特征在于,提供一包括多个存储块的主存储区、一用于备份所述主存储区数据的备份存储区、一包括至少一个索引单元的索引区、一用于暂存待存储数据的数据暂存区,所述主存储区和备份存储区为两个相同但独立的扇区,所述主存储区的存储块和备份存储区的存储块完全相同且一一对应;按照如下步骤实现:
步骤S12:获取待存储数据,并将其写入所述数据暂存区;
步骤S13:计算当前的时间信息对应的存储偏移量;
步骤S14:按照如下方式计算所述待存储数据在所述主存储区存储的写入地址,并将所述待存储数据按照该写入地址写入所述主存储区中:
写入地址=主存储区的起始地址+当前索引单元存储的起始偏移量+存储偏移量;
步骤S15:按照如下方式计算所述写入地址映射在所述备份存储区的备份地址,并将所述待存储数据按照该备份地址写入所述备份存储区:
备份地址=备份存储区的起始地址+当前索引单元存储的起始偏移量+存储偏移量;
其中,所述索引单元用于存储所述存储块的起始偏移量,所述当前的时间信息包括用于标记存储周期的存储标记以及用于标记所述待存储数据对应的采样时间序列号的时间标记;
索引区、数据暂存区、时间暂存区、主校验区和备份校验区采用不限次数且可掉电存储的存储器,主存储区和备份存储区采用存储空间大、成本低的存储器;
在所述步骤S13中,当前的时间信息对应的存储偏移量的计算方法如下:存储偏移量=n1+n2*(时间标记-1)+1,其中,n1为存储标记的字节长度,n2为待存储数据的字节长度,且n1、n2均为正整数。
2.根据权利要求1所述的一种数据存储方法,其特征在于,初次上电进行数据存储前,按照如下步骤进行初始化:
步骤S110:擦除所述主存储区以及所述备份存储区;
步骤S111:读取所述主存储区一未写入数据的存储块的起始地址,将当前时间信息的存储标记写入该起始地址;
步骤S112:计算所述主存储区当前的存储块的起始地址相对于所述主存储区起始地址的起始偏移量,将该起始偏移量写入当前索引单元;
步骤S113:按照如下方式计算所述主存储区当前的存储块的起始地址映射在所述备份存储区的备份地址,并将该存储标记写入该备份地址:
备份地址=备份存储区的起始地址+当前索引单元存储的起始偏移量。
3.根据权利要求2所述的一种数据存储方法,其特征在于,还提供一用于存储时间信息的时间暂存区,所述步骤S110还包括:
获取当前的时间信息,并将其写入时间暂存区;
所述步骤S15之后,还包括如下步骤:
步骤S16:获取所述当前的时间信息,并将其写入时间暂存区。
4.根据权利要求3所述的一种数据存储方法,其特征在于,所述步骤S12具体包括如下步骤:
步骤S121:判断当前的时间信息的存储标记与所述时间暂存区中存储的时间信息的存储标记是否一致,若一致,则执行步骤S122,否则跳转执行所述步骤S13至步骤S16,步骤S16之后执行所述步骤S111至步骤S113;
步骤S122:判断当前的时间信息的时间标记与所述时间暂存区中存储的时间信息的时间标记是否一致,若一致,则获取待存储数据,并将其写入所述数据暂存区,并重复执行所述步骤S122;否则跳转执行所述步骤S13至步骤S16。
5.根据权利要求2或3或4所述的一种数据存储方法,其特征在于,还提供一用于存储主存储区校验码的主校验区以及一用于存储备份存储区校验码的备份校验区;
在所述步骤S14中,将所述待存储数据写入所述写入地址,或在所述步骤S111中,将当前的存储标记写入所述起始地址,还包括计算所述主存储区的校验码;若检验正确,则将所述校验码写入所述主校验区,否则擦除所述主存储区与所述主校验区,将所述备份存储区存储的数据写入所述主存储区的相应地址,并将所述备份校验区的校验码写入主校验区;
在所述步骤S15中,将所述待存储数据写入备份地址,或在所述步骤S113中,将当前的存储标记写入备份地址,还包括计算所述备份存储区的校验码;若检验正确,则将所述校验码写入备份校验区,否则擦除备份存储区和备份校验区,将主存储区存储的数据写入备份存储区的相应地址,将主校验区的校验码写入备份校验区。
6.根据权利要求1所述的一种数据存储方法,其特征在于,所述索引单元采用环形循环方式指向下一索引单元。
7.根据权利要求6所述的一种数据存储方法,其特征在于,所述时间信息包括年份、月份以及日期,所述存储标记为年份,所述时间标记=月份*31+日期。
8.根据权利要求5所述的一种数据存储方法,其特征在于,所述主存储区和所述备份存储区采用nor flash存储器,所述索引区、所述数据暂存区、所述时间暂存区采用铁电存储器;所述主校验区和所述备份校验区均采用铁电存储器。
9.根据权利要求5所述的一种数据存储方法,其特征在于:存储过程中意外中断后,重新上电后的数据存储方法如下:
步骤S21:读取所述主存储区存储的数据,并重新计算主存储区的校验码;
步骤S22:判断重新计算的校验码与所述主校验区存储的校验码是否一致,若一致,则擦除所述备份存储区和所述备份校验区,将所述主存储区存储的数据写入所述备份存储区的相应地址,将所述主校验区的校验码写入备份校验区,并跳转执行所述步骤S12,继续存储数据;若不一致,则执行步骤S23;
步骤S23:读取所述备份存储区存储的数据,并重新计算备份存储区的校验码;
步骤S24:判断重新计算的校验码与所述备份校验区存储的校验码是否一致,若一致,则擦除所述主存储区和所述主校验区,将所述备份存储区存储的数据写入所述主存储区的相应地址,将是备份校验区的校验码写入所述主校验区,跳转执行所述步骤S12,继续存储数据;若不一致,无法恢复数据,依照初次上电存储时的步骤进行初始化。
CN201610910741.2A 2016-10-20 2016-10-20 一种数据存储方法 Active CN106407050B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610910741.2A CN106407050B (zh) 2016-10-20 2016-10-20 一种数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610910741.2A CN106407050B (zh) 2016-10-20 2016-10-20 一种数据存储方法

Publications (2)

Publication Number Publication Date
CN106407050A CN106407050A (zh) 2017-02-15
CN106407050B true CN106407050B (zh) 2020-11-10

Family

ID=58012769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610910741.2A Active CN106407050B (zh) 2016-10-20 2016-10-20 一种数据存储方法

Country Status (1)

Country Link
CN (1) CN106407050B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109521960A (zh) * 2018-11-02 2019-03-26 格力电器(合肥)有限公司 数据读写方法、装置和***
CN109542350A (zh) * 2018-11-20 2019-03-29 大连理工大学 一种基于时间索引的sd卡快速存取方法
CN109918228B (zh) * 2019-01-28 2021-01-12 浙江中控技术股份有限公司 一种数据掉电保持方法及***
CN111367844B (zh) 2019-03-13 2020-12-15 苏州库瀚信息科技有限公司 有多个异构网络接口端口的存储控制器的***、方法和装置
CN110162573B (zh) * 2019-05-05 2021-04-30 中国银行股份有限公司 一种分布式序列生成方法、装置及***
CN110515544B (zh) * 2019-08-06 2022-10-21 科华数据股份有限公司 数据存储的方法及终端设备
CN110764695A (zh) * 2019-09-23 2020-02-07 合肥富煌君达高科信息技术有限公司 一种基于高速采集的存储方法和***
CN110781026A (zh) * 2019-10-25 2020-02-11 宁波三星医疗电气股份有限公司 嵌入式设备数据存储与修复方法、装置和嵌入式设备
CN110941394A (zh) * 2019-11-13 2020-03-31 通号城市轨道交通技术有限公司 列车自动控制***数据读写方法及装置
CN111143240B (zh) * 2019-12-31 2022-07-05 科华恒盛股份有限公司 图像存储方法、***及终端设备
CN111666046B (zh) * 2020-05-20 2023-07-25 西安奥卡云数据科技有限公司 一种数据存储方法、装置及设备
CN112307017A (zh) * 2020-09-16 2021-02-02 北京沃东天骏信息技术有限公司 数据存储方法、查询方法及相关设备、存储介质
CN112326684B (zh) * 2020-10-21 2022-05-24 阳光电源股份有限公司 一种光伏组件积尘检测方法、装置、设备及存储介质
CN113885795B (zh) * 2021-09-23 2024-01-19 惠州Tcl移动通信有限公司 一种数据存储方法、装置、终端设备及存储介质
CN114661722A (zh) * 2022-03-23 2022-06-24 天津同阳科技发展有限公司 数据存储方法、数据索引方法及装置
CN114647534B (zh) * 2022-05-24 2022-09-20 国网山东省电力公司营销服务中心(计量中心) 一种基于数字化控制设备的数据存储方法及装置
CN115086168B (zh) * 2022-08-19 2022-11-22 北京全路通信信号研究设计院集团有限公司 一种车载设备通信参数更新存储方法、***
CN117312043A (zh) * 2023-09-28 2023-12-29 杭州长川科技股份有限公司 校准参数读取、校准参数写入方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216790A (zh) * 2008-01-17 2008-07-09 四川大学 一种与源结构无关的备份数据共享存储方法
CN102508782A (zh) * 2011-09-29 2012-06-20 北京星网锐捷网络技术有限公司 数据读写方法、装置、存储体及网络设备
CN103914393A (zh) * 2014-04-11 2014-07-09 四川华拓光通信股份有限公司 一种基于mcu的flash不丢失更新存储方法
CN104268225A (zh) * 2014-09-26 2015-01-07 山西达鑫核科技有限公司 一种多维自由度寻址的文件***架构及其生成和访问方式
US20150154086A1 (en) * 2013-12-03 2015-06-04 Samsung Electronics Co., Ltd. Method and apparatus for updating firmware

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662852B (zh) * 2012-03-20 2015-05-27 山东省科学院自动化研究所 一种利用MCU内部数据Flash存储非易失性数据的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216790A (zh) * 2008-01-17 2008-07-09 四川大学 一种与源结构无关的备份数据共享存储方法
CN102508782A (zh) * 2011-09-29 2012-06-20 北京星网锐捷网络技术有限公司 数据读写方法、装置、存储体及网络设备
US20150154086A1 (en) * 2013-12-03 2015-06-04 Samsung Electronics Co., Ltd. Method and apparatus for updating firmware
CN103914393A (zh) * 2014-04-11 2014-07-09 四川华拓光通信股份有限公司 一种基于mcu的flash不丢失更新存储方法
CN104268225A (zh) * 2014-09-26 2015-01-07 山西达鑫核科技有限公司 一种多维自由度寻址的文件***架构及其生成和访问方式

Also Published As

Publication number Publication date
CN106407050A (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
CN106407050B (zh) 一种数据存储方法
TWI546666B (zh) 資料儲存裝置以及快閃記憶體控制方法
US7065608B2 (en) Apparatus for recording data and method for writing data to flash memory
JP4339244B2 (ja) 計測データを格納するためフラッシュメモリを使用する方法
JPH09330273A (ja) メモリカードおよびメモリカードにおける誤り訂正方法
CN103577121A (zh) 一种基于nand flash的高可靠线性文件存取方法
US10635527B2 (en) Method for processing data stored in a memory device and a data storage device utilizing the same
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
TW201428757A (zh) 揮發性及快閃記憶體間資料的備份與復原
CN110795044B (zh) NAND Flash存储器的坏块管理方法和***
US9465538B2 (en) Flash memory control chip and data storage device and flash memory control method
CN107992268B (zh) 一种坏块标记的方法及相关装置
CN103176920A (zh) Nor flash掉电保护方法及装置
CN105204958A (zh) 一种延长NAND Flash数据可靠存储时间的编码方法
US20130219244A1 (en) Storage device
CN103425546A (zh) 一种通用高效高可靠的Nor Flash数据存储管理方法
JP2011103077A (ja) 記憶装置
CN102789813B (zh) 一种控制存储设备内非最低有效位页使用的方法及装置
CN117742588A (zh) 使用Flash模拟EEPROM的数据存储方法及***
CN102063342A (zh) 一种闪存存储设备数据的管理方法及***
CN113434086B (zh) 数据存储方法、装置、非易失性存储器件和存储器
CN113625947B (zh) 一种数据纠错方法、装置、设备及计算机可读存储介质
CN112416246B (zh) 一种高分辨率的存储电能数据的方法
CN103716693A (zh) 一种mac地址的设置方法及智能电视
CN111258498B (zh) 一种flash存储器管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 361006 torch garden, torch high tech Zone, Xiamen, Fujian 457

Applicant after: XIAMEN KEHUAHENGSHENG LIMITED BY SHARE Ltd.

Address before: 361006 torch garden, torch high tech Zone, Xiamen, Fujian 457

Applicant before: XIAMEN KEHUA HENGSHENG Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 361006 torch garden, torch high tech Zone, Xiamen, Fujian 457

Patentee after: Kehua Data Co.,Ltd.

Address before: 361006 torch garden, torch high tech Zone, Xiamen, Fujian 457

Patentee before: XIAMEN KEHUAHENGSHENG LIMITED BY SHARE Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231206

Address after: Room 208-38, Hengye Building, No. 100 Xiangxing Road, Xiang'an Industrial Zone, Xiamen Torch High tech Zone, Xiamen, Fujian Province, 361000

Patentee after: Xiamen Kehua shuneng Technology Co.,Ltd.

Address before: 361006 torch garden, torch high tech Zone, Xiamen, Fujian 457

Patentee before: Kehua Data Co.,Ltd.