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

一种数据存储方法 Download PDF

Info

Publication number
CN101470666A
CN101470666A CNA2007101610599A CN200710161059A CN101470666A CN 101470666 A CN101470666 A CN 101470666A CN A2007101610599 A CNA2007101610599 A CN A2007101610599A CN 200710161059 A CN200710161059 A CN 200710161059A CN 101470666 A CN101470666 A CN 101470666A
Authority
CN
China
Prior art keywords
data
memory block
verification
trust
memory
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.)
Granted
Application number
CNA2007101610599A
Other languages
English (en)
Other versions
CN101470666B (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.)
BYD Co Ltd
Original Assignee
BYD 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 BYD Co Ltd filed Critical BYD Co Ltd
Priority to CN2007101610599A priority Critical patent/CN101470666B/zh
Publication of CN101470666A publication Critical patent/CN101470666A/zh
Application granted granted Critical
Publication of CN101470666B publication Critical patent/CN101470666B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据存储方法,该方法包括以下步骤:(a)将待存储的数据分割成多个分割数据;(b)生成与所述多个分割数据相对应的校验数据,该校验数据包括所述多个分割数据的校验和以及所述多个分割数据与所述校验和的按位异或结果;以及(c)将所述多个分割数据与所生成的校验数据存储到存储区中。使用本发明提供的数据存储方法进行数据存储时,由于本发明的方法所使用的校验数据比现有技术中的校验数据多一层校验,从而更能确保数据被准确无误地存储到存储区中。

Description

一种数据存储方法
技术领域
本发明涉及一种数据存储方法。
背景技术
数据存储在各个领域都有着广泛的应用,一般都是将需要存储的数据根据存储单元的大小来分割成多个分割数据,然后将所述多个分割数据存储在存储器中。
然而,对于某些需要较高的安全性和可靠性的数据,则需要根据所述多个分割数据来计算一个校验数据,并将该校验数据与所述多个分割数据一起存储到存储器中,从而当某个分割数据损坏时,可以根据所述校验数据和其他未损坏的分割数据来恢复所述损坏的分割数据。
现有技术中的校验数据通常为所述多个分割数据的按位异或结果或者校验和,此种校验数据虽然能够在某个分割数据损坏时恢复该损坏的分割数据,但当多个分割数据均发生损坏时,该校验数据则显得无能为力。因此,此种数据存储方法安全性较低。
发明内容
本发明的目的是为了克服现有技术中的数据存储方法安全性较低的缺陷,提供了一种存储方法简单、数据可靠性高的数据存储方法。
本发明提供的数据存储方法包括以下步骤:(a)将待存储的数据分割成多个分割数据;(b)生成与所述多个分割数据相对应的校验数据,该校验数据包括所述多个分割数据的校验和以及所述多个分割数据与所述校验和的按位异或结果;以及(c)将所述多个分割数据与所生成的校验数据存储到存储区中。
使用本发明提供的数据存储方法进行数据存储时,由于所生成的校验数据包括了多个分割数据的校验和以及所述多个分割数据与所述校验和的按位异或结果,因此,当所述多个分割数据中的某两个分割数据被损坏时,可以根据其他正确的数据、所述校验和以及按位异或结果来恢复所述被损坏的两个分割数据,相比于现有技术中只能恢复一个分割数据,本发明可以恢复两个分割数据,数据安全性和可靠性得到了很大的提高。
附图说明
图1为本发明的数据存储方法的流程图;
图2为本发明的实施方式中的数据存储方法的流程图;
图3为本发明的数据更新方法的流程图;
图4为本发明的数据更新方法中的一个步骤的流程图。
具体实施方式
下面结合附图详细描述本发明。
如图1所示,本发明提供了一种数据存储方法,该方法包括以下步骤:(a)将待存储的数据分割成多个分割数据;(b)生成与所述多个分割数据相对应的校验数据,该校验数据包括所述多个分割数据的校验和、以及所述多个分割数据与所述校验和的按位异或结果;以及(c)将所述多个分割数据与所生成的校验数据存储到存储区中。
其中,可以根据存储单元的大小来分割需要存储的数据。例如,一般情况下,存储单元的大小为8个比特,即一个字节,因此可以将数据以字节为单位来进行分割。
其中所述步骤(c)中的存储区的个数为多个,将所述多个分割数据与所生成的校验数据分别存储到每个存储区中。这样相同的数据被存储到多个存储区中,即使某一个存储区中的数据损坏,还可以使用其他存储区中的数据进行恢复,从而提高了数据的安全性。
如图2所示,在将所述分割数据和校验数据存储到多个存储区之后,所述方法还包括:(d)在步骤(c)后,从所述多个存储区中读取数据,并对所读取的数据进行解校验,比较解校验通过的存储区中的数据,确定在解校验通过的存储区中的数据中单独占有最大比例的一类数据作为可信数据,并使用该可信数据覆盖其他存储区中与该可信数据不相同的数据。
其中,在步骤(d)中,如果存在至少两类占有最大比例的数据,则显示存取失败的信息。
下面详细描述该步骤的具体实施方式。
从所述多个存储区中读取数据,并对所读取的数据进行解校验,
(1)如果所述多个存储区中的数据均通过解校验,则比较所述多个存储区中的数据并使用在所述多个存储区中单独占有最大比例的一类数据作为可信数据,并使用该可信数据覆盖其他存储区中与该可信数据不相同的数据,若无法得出所述可信数据,则将所述多个存储区中的数据都丢弃,并显示存取失败的信息;
(2)如果所述多个存储区中的部分存储区中的数据未通过解校验,则将该部分存储区中的数据丢弃,比较校验通过的各个存储区中的数据并使用在该解校验通过的存储区中单独占有最大比例的一类数据作为可信数据,并使用该可信数据覆盖其他存储区中与该可信数据不相同的数据,若无法得出所述可信数据,则将所述多个存储区中的数据都丢弃,并显示存取失败的信息;
(3)如果所有存储区的数据均未通过解校验,则将所述多个存储区的数据都丢弃,并显示存取失败的信息。
所述解校验的过程实际上就是根据所存储的多个分割数据来重新计算校验数据,并将计算得到的校验数据与所存储的校验数据进行比较,如果两者相同,则表示所存储的数据通过解校验。
下面通过所述存储区的个数为3个的例子来对上述存储完数据后进行解校验、比较解校验通过的存储区中的数据、并根据比较结果来更正存储数据的步骤进行示例性说明。
分别从3个存储区中读取数据,并对所读取的数据进行解校验,
(1)三个存储区中的数据均通过解校验,
A、如果三个存储区中的数据均相同,则不进行任何操作;
B、如果三个存储区中有两个存储区中的数据相同,则丢弃不相同的那个存储区中的数据,在所述两个相同数据中任取一个来覆盖所述被丢弃的数据;
C、如果三个存储区中的数据均不相同,则全部丢弃,并显示存取失败的信息。
(2)如果三个存储区中仅有两个存储区中的数据通过解校验,则将未通过解校验的数据丢弃,再分以下两种情况进行处理,
A、如果所述解校验通过的两个存储区中的数据相同,则在该相同的两个数据中任取一个来覆盖所述被丢弃的数据;
B、如果所述解校验通过的两个存储区中的数据不相同,则将该两个存储区中的数据都丢弃,并显示存取失败的信息。
(3)如果三个存储区中仅有一个存储区中的数据通过解校验,则以该存储区中的数据来覆盖其他两个未通过解校验的存储区中的数据。
(4)如果三个存储区中的数据均未通过解校验,则将他们全部丢弃,并显示存取失败的信息。
其中,如图3所示,所述方法还包括:(e)在步骤(d)后,当对存储在所述多个存储区中的数据以新数据进行更新时,从所述多个存储区中读取数据,并对所读取的数据进行解校验,比较解校验通过的存储区中的数据,确定在解校验通过的存储区中单独占有最大比例的一类可信数据,判断该可信数据与将更新成的新数据之间是否满足更新条件,如果满足,则将新数据覆盖所述多个存储区中的数据;否则,显示更新失败的信息。
其中,在步骤(e)中,如果存在至少两类占有最大比例的数据,则显示更新失败的信息。
下面以存储区的个数为3个、可信数据为G、将更新的新数据为K、更新条件为K=G+1的例子对数据更新步骤进行详细说明。
分别从3个存储区中读取数据,并对所读取的数据进行解校验,
(1)三个存储区中的数据均通过解校验,
A、如果三个存储区中的数据均相同,则从该三个存储区中任取一个数据作为可信数据G;
B、如果三个存储区中有两个存储区中的数据相同,则在所述两个相同数据中任取一个作为可信数据G;
C、如果三个存储区中的数据均不相同,则显示更新失败的信息。
(2)如果三个存储区中仅有两个存储区中的数据通过解校验,则分以下两种情况进行处理,
A、如果所述解校验通过的两个存储区中的数据相同,则在该相同的两个数据中任取一个作为可信数据G;
B、如果所述通过解校验的两个存储区中的数据不相同,则将显示更新失败的信息。
(3)如果三个存储区中仅有一个存储区中的数据通过解校验,则以该存储区中的数据作为可信数据G。
(4)如果三个存储区中的数据均未解校验,则显示更新失败的信息。
将根据上述步骤获取的可信数据G与将更新的新数据K进行比对,判断是否满足更新条件K=G+1,如果满足更新条件,则将新数据K覆盖三个存储区中与该新数据不相同的数据,否则,丢弃新数据K并显示更新失败的信息。
为了确保新数据被正确地存储,其中,如图4所示,所述方法还包括:(f)在步骤(e)后,从所述多个存储区中读取数据,并对所读取的数据进行解校验,比较解校验通过的存储区中的数据,再次确定在解校验通过的存储区中单独占有最大比例的一类可信数据并使用该可信数据覆盖其他存储区中与该可信数据不相同的数据,并且在能够确定可信数据的情况下将该可信数据与步骤(e)中的用于更新的新数据进行比较,如果两者不相同或者在无法确定可信数据的情况下,则使用所述步骤(e)中的用于更新的新数据覆盖其他存储区中与该新数据不相同的数据。此过程与上述存储完数据后进行解校验、比较解校验通过的存储区中的数据、并根据比较结果来更正存储数据的步骤比较类似,这里不再举例描述。
其中,所述存储区可以由非易失性铁电存储器来提供。该铁电存储器基本没有写入等待延迟,其写入速度比普通的存储器快500倍左右,从而即使是立即断电,也有足够的时间来将数据完整无误地存储到该存储器中,避免了数据丢失。而且该铁电存储器的可擦写次数为一亿亿次,极大地增强了该存储器的使用寿命,从而也保证存储在该存储器中的数据的安全性。同时,该铁电存储器的抗干扰能力也很强,从而大大减小了数据在存取过程中由于干扰造成的数据错误,增强了数据的可靠性。
使用本发明提供的数据存储方法进行数据存储时,由于本发明所使用的校验数据比现有技术中的校验数据多一层校验,从而更能确保数据被准确无误地存储到存储区中,而在将数据存储到存储区之后,还进行一次读取解校验处理,这也在一定程度上保证了所存储的数据的正确性。在对所存储的数据进行更新时,首先通过解校验处理获取可信数据,然后进行更新条件的判断,接着将更新的新数据覆盖存储区中与该新数据不相同的数据,最后再次对覆盖到存储区中的新数据进行解校验以及与更新时的新数据进行比对的处理。这些步骤针对在更新过程中可能出现错误的各个环节均采取了严密地防错措施,确保了数据的正确更新。因此,本发明的数据存储方法使得数据安全性和可靠性得到了很大的提高。

Claims (8)

1、一种数据存储方法,该方法包括以下步骤:
(a)将待存储的数据分割成多个分割数据;
(b)生成与所述多个分割数据相对应的校验数据,该校验数据包括所述多个分割数据的校验和以及所述多个分割数据与所述校验和的按位异或结果;以及
(c)将所述多个分割数据与所生成的校验数据存储到存储区中。
2、根据权利要求1所述的方法,其中所述步骤(c)中的存储区的个数为多个,将所述多个分割数据与所生成的校验数据分别存储到每个存储区中。
3、根据权利要求2所述的方法,其中,该方法还包括:
(d)在步骤(c)后,从所述多个存储区中读取数据,并对所读取的数据进行解校验,比较解校验通过的存储区中的数据,确定在解校验通过的存储区中的数据中单独占有最大比例的一类数据作为可信数据,并使用该可信数据覆盖其他存储区中与该可信数据不相同的数据。
4、根据权利要求3所述的方法,其中,在步骤(d)中,如果存在至少两类占有最大比例的数据,则显示存取失败的信息。
5、根据权利要求3所述的方法,其中,该方法还包括:
(e)在步骤(d)后,当对存储在所述多个存储区中的数据以新数据进行更新时,从所述多个存储区中读取数据,并对所读取的数据进行解校验,比较解校验通过的存储区中的数据,确定在解校验通过的存储区中单独占有最大比例的一类可信数据,判断该可信数据与将更新成的新数据之间是否满足更新条件,如果满足,则将新数据覆盖所述多个存储区中与该新数据不相同的数据;否则,丢弃新数据并显示更新失败的信息。
6、根据权利要求5所述的方法,其中,在步骤(e)中,如果存在至少两类占有最大比例的数据,则显示更新失败的信息。
7、根据权利要求5所述的方法,其中,该方法还包括:
(f)在步骤(e)后,从所述多个存储区中读取数据,并对所读取的数据进行解校验,比较解校验通过的存储区中的数据,再次确定在解校验通过的存储区中单独占有最大比例的一类可信数据,并使用该可信数据覆盖其他存储区中与该可信数据不相同的数据;并且在能够确定可信数据的情况下将该可信数据与步骤(e)中的用于更新的新数据进行比较,如果两者不相同或者在无法确定可信数据的情况下,则使用所述步骤(e)中的用于更新的新数据覆盖其他存储区中与该新数据不相同的数据。
8、根据权利要求1-7中任意一项所述的方法,其中,所述存储区由非易失性铁电存储器来提供。
CN2007101610599A 2007-12-24 2007-12-24 一种数据存储方法 Active CN101470666B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101610599A CN101470666B (zh) 2007-12-24 2007-12-24 一种数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101610599A CN101470666B (zh) 2007-12-24 2007-12-24 一种数据存储方法

Publications (2)

Publication Number Publication Date
CN101470666A true CN101470666A (zh) 2009-07-01
CN101470666B CN101470666B (zh) 2011-03-30

Family

ID=40828147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101610599A Active CN101470666B (zh) 2007-12-24 2007-12-24 一种数据存储方法

Country Status (1)

Country Link
CN (1) CN101470666B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102890647A (zh) * 2012-07-04 2013-01-23 漳州科能电器有限公司 一种数据的存储与更新方法及装置
CN103186875A (zh) * 2011-12-28 2013-07-03 凌群电脑股份有限公司 用于风险控制系统的委托单属性判断方法
CN103295632A (zh) * 2013-05-28 2013-09-11 中国电子科技集团公司第十研究所 防止意外掉电引起线性累计数据突变的方法
CN109344007A (zh) * 2018-09-29 2019-02-15 安徽江淮汽车集团股份有限公司 一种双离合器变速器nvm数据校验方法及模块

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1397950A (zh) * 2002-08-30 2003-02-19 交大铭泰(北京)软件有限公司 全息数据磁盘存储方法及其丢失数据的恢复方法
JP2007122185A (ja) * 2005-10-25 2007-05-17 Fujitsu Ltd データ記憶方法およびデータ記憶装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103186875A (zh) * 2011-12-28 2013-07-03 凌群电脑股份有限公司 用于风险控制系统的委托单属性判断方法
CN102890647A (zh) * 2012-07-04 2013-01-23 漳州科能电器有限公司 一种数据的存储与更新方法及装置
CN102890647B (zh) * 2012-07-04 2015-04-22 漳州科能电器有限公司 一种数据的存储与更新方法及装置
CN103295632A (zh) * 2013-05-28 2013-09-11 中国电子科技集团公司第十研究所 防止意外掉电引起线性累计数据突变的方法
CN109344007A (zh) * 2018-09-29 2019-02-15 安徽江淮汽车集团股份有限公司 一种双离合器变速器nvm数据校验方法及模块
CN109344007B (zh) * 2018-09-29 2022-04-12 安徽江淮汽车集团股份有限公司 一种双离合器变速器nvm数据校验方法及模块

Also Published As

Publication number Publication date
CN101470666B (zh) 2011-03-30

Similar Documents

Publication Publication Date Title
EP2449468B1 (en) System and method of tracking error data within a storage device
US20180321874A1 (en) Flash management optimization for data update with small block sizes for write amplification mitigation and fault tolerance enhancement
US8812910B2 (en) Pilot process method for system boot and associated apparatus
US9372750B2 (en) Method and apparatus for non-volatile RAM error re-mapping
JP4901987B1 (ja) 記憶装置、電子機器及び誤りデータの訂正方法
US20100070686A1 (en) Method and device for reconfiguration of reliability data in flash eeprom storage pages
US7774382B2 (en) Method and apparatus for configuring a control device, and corresponding control device
JP5780174B2 (ja) 不良ビットエラーを処理するシステムおよび方法
US8234539B2 (en) Correction of errors in a memory array
US9727411B2 (en) Method and processor for writing and error tracking in a log subsystem of a file system
CN106021014B (zh) 一种内存管理方法及装置
JP2006134310A (ja) データ信頼性を向上させることができるメモリ管理方法
US8826080B2 (en) Methods and systems for preboot data verification
CN111078459B (zh) 半导体芯片的测试方法、装置及系统
CN102163155A (zh) 存储设备的升级方法及升级控制装置
CN101470666B (zh) 一种数据存储方法
CN104036823A (zh) 用于非易失性存储器系统中的失效管理的对称数据复制
KR20080061044A (ko) 다중화된 에스피디 롬을 가지는 메모리 모듈 시스템 및 그부팅 방법
US8078937B2 (en) Memory-module controller, memory controller and corresponding memory arrangement, and also method for error correction
US20100169572A1 (en) Data storage method, apparatus and system for interrupted write recovery
US11816466B2 (en) Electronic device with firmware, and method of operating thereof
US9672100B2 (en) Device for managing the storage of data
CN109710445B (zh) 内存校正方法和电子设备
CN101853693A (zh) 储存装置以及延长储存装置的使用寿命的方法
CN107017026B (zh) 非易失性存储器装置及其读取方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant