CN104268035A - 一种存储数据的恢复方法 - Google Patents
一种存储数据的恢复方法 Download PDFInfo
- Publication number
- CN104268035A CN104268035A CN201410530833.9A CN201410530833A CN104268035A CN 104268035 A CN104268035 A CN 104268035A CN 201410530833 A CN201410530833 A CN 201410530833A CN 104268035 A CN104268035 A CN 104268035A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- backup units
- storage unit
- backup
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种存储数据的恢复方法。所述方法包括:将设定的存储数据写入原存储单元,将所述存储数据的两备份数据分别写入预先分配的两个备份单元,所述原存储单元、所述两个备份单元三者地址不连续;读取所述存储数据时,检测所述原存储单元、所述两个备份单元的三个数据是否一致;若所述三个数据不一致,且其中有两个数据相同,则根据两个相同的数据对另一个数据进行修正。通过本发明的技术方案,能够在存储数据被破坏后的下一次读取时自动进行恢复。
Description
技术领域
本发明涉及数据存储领域,尤其涉及一种存储数据的恢复方法。
背景技术
在2.4G/5G蓝牙等电子设备中,配对的ID以及一些配置信息会使用EEPROM、FLASH等存储设备进行保存,从而使得用户在后续使用设备时,不用再重新输入配对新或者其他配置信息。
目前市场上的同类外设产品中,相关配置信息都存储在产品芯片内部的可重复擦写的存储空间单元或芯片外部的可重复擦写的存储器中,存储方式相对简单,如果程序运行错误很容易对存储空间单元中的数据进行改写或者破坏,并且此类数据破坏是无法恢复的,严重时可能给用户造成极大的负面影响,使得用户认为产品质量不良,退换货情况频繁发生。
发明内容
本发明的目的在于提出一种存储数据的恢复方法,能够在存储数据被破坏后的下一次读取时进行修正恢复。
为达此目的,本发明采用以下技术方案:
一种存储数据的恢复方法,包括:
将设定的存储数据写入原存储单元,将所述存储数据的两备份数据分别写入预先分配的两个备份单元,所述原存储单元、所述两个备份单元三者地址不连续;
读取所述存储数据时,检测所述原存储单元、所述两个备份单元的三个数据是否一致;
若所述三个数据不一致,且其中有两个数据相同,则根据两个相同的数据对另一个数据进行修正。
其中,所述检测所述原存储单元、所述两个备份单元的三个数据是否一致,包括:
读取所述原存储单元、所述两个备份单元的三个存储数据并分别保存到预设的三个缓存空间;
对比所述三个缓存空间的三个缓存数据是否一致;
所述若所述三个数据不一致,且其中有两个数据相同,则根据两个相同的数据对另一个数据进行修正,包括:
若所述三个缓存空间的三个缓存数据不一致,且其中有两个缓存空间的缓存数据相同,则用两个相同的缓存数据对另一个缓存数据进行修正;
将修正后的缓存数据写入对应的原存储单元或备份单元,以替换对应的存储数据。
其中,所述读取所述原存储单元、所述两个备份单元的三个存储数据并分别保存到预设的三个缓存空间之前,还包括:
获取所述存储数据的长度,创建三个与所述存储数据的长度对应的缓存空间。
其中,所述将修正后的缓存数据写入对应的原存储单元或备份单元之后,还包括:
释放所述三个缓存空间。
其中,所述将所述存储数据的两备份数据分别写入预先分配的两个备份单元之前,还包括:
获取所述存储数据的长度和存储格式,从存储空间中分配出两个与所述存储数据的长度和存储格式对应的备份单元。
其中,所述原存储单元、所述两个备份单元三者的大小相同。
其中,所述从存储空间中分配出两个与所述存储数据的长度和存储格式对应的备份单元之前,还包括:
确定存储空间的可用空间大小大于2倍所述存储数据的长度。
实施本发明实施例,具有如下有益效果:
本发明实施例通过将设定的存储数据写入原存储单元,将所述存储数据的两备份数据分别写入预先分配的两个备份单元,所述原存储单元、所述两个备份单元三者地址不连续;读取所述存储数据时,检测所述原存储单元、所述两个备份单元的三个数据是否一致;若所述三个数据不一致,且其中有两个数据相同,则根据两个相同的数据对另一个数据进行修正。由于所述存储数据的原存储单元、两个备份单元三者地址不连续,异常情况下通常只是破坏其中一个存储空间的数据,因此在下一次读取数据时,可通过备份存储空间的数据对破坏的数据进行修正,有效保证了设定的存储数据的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种存储数据的恢复方法的流程示意图。
图2是本发明实施例中写入存储数据的具体流程示意图。
图3是本发明实施例中恢复存储数据的具体流程示意图。
具体实施方式
下面结合本发明的附图对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
结合图1对本发明的第一实施例进行说明。
图1是本发明第一实施例的一种存储数据的恢复方法流程图,详述如下:
步骤S101,将设定的存储数据写入原存储单元,将所述存储数据的两备份数据分别写入预先分配的两个备份单元。在本实施例中,所述存储数据的原存储单元、所述两个备份单元三者地址不连续。
在本实施例中,预先设定需要进行恢复的数据为少量的重要存储数据,例如蓝牙相关外设的配对ID信息和其他用户配置信息。获取该存储数据,额外为这些存储数据分配另外两个相同长度、并且地址不在同一连续范围的存储单元。这时需确定存储空间中剩余空闲存储空间大小,确定存储空间中剩余空闲存储空间大小满足大于2倍所述数据长度。基于此,首次写入规划的重要数据时,先将该数据先后写入对应的原存储单元,在将该数据的两备份数据写入其他两个存储单元(即备份单元),以对该数据进行两份备份。
较佳的,本实施例中所述存储数据对应的原存储单元和两个用于备份单元的大小相同,数据存储的格式也相同。
步骤S102,读取所述存储数据时,检测所述原存储单元、所述两个备份单元的三个数据是否一致。
本实施例中,读出所述存储数据时,先分配三段缓存空间,读取所述原存储单元、所述两个备份单元的数据并分别保存到这三个缓存空间,对比检测这三个缓存空间的数据是否一致。
需要说明的是,本实施例中需注意缓存空间的分配和释放,以保证缓存空间的利用率。
步骤S103,若所述三个数据不一致,且其中有两个数据相同,则根据两个相同的数据对另一个数据进行修正。
本实施例中,若所述三个缓存空间的三个缓存数据不一致,且其中有两个缓存空间的缓存数据相同,另一个缓存空间的数据不同,则用两个相同的缓存数据对另一个缓存数据进行修正,然后将修正后的缓冲数据写入对应的原存储单元或备份单元。当存储数据有被破坏或者丢失时,通过该方法可以对被破坏的存储数据进行修正恢复。
需要说明的是,如果所述三个存储单元的数据一致,则确定为数据未被破坏或者丢失,不做修正。本实施例通过在读取规划好的存储数据时,通过与该存储数据的备份数据进行对比校验,如果一致则不做修正,否则对存储数据损坏或丢失部分的进行修正。
如图2所示,本实施例中备份存储数据的具体流程如下:
步骤S201,获取需要写入存储空间的数据。
这里的数据可能既包括设定的需要恢复的存储数据,如产品的配对ID信息以及相关用户配置信息,还可以包括其他不重要的数据。
步骤S202,将该数据写入对应的原存储单元。
本实施例中,将配对ID信息以及相关用户配置信息写入到存储单元A0中,其他数据存储在A0之外的其他存储单元。
步骤S203,获取A0中的存储数据。
步骤S204,获取A0中的存储数据的长度和存储格式,确定当前存储空间的可用空间大小为大于2倍所述存储数据的长度。
步骤S205,分配两个与A0中的存储数据的长度和存储格式对应的备份单元A1、A2。
本实施例中,需先获取A0中的存储数据的长度和存储格式,检测存储空间的空闲可用空间大小是否大于2*所述存储数据的长度。若是,这为该存储数据再分配两个与A0相同大小的备份单元A1、A2,并且,A0、A1、A2的数据存储格式相同,且在存储空间中的地址不连续。
步骤S206,将所述存储数据写入两备份单元A1、A2。
本实施例中,先将A0中的存储数据写入A1,再将A0中的存储数据写入A2;当然,也可以先写入A2,再写入A1,或者同时写入A1、A2。
对设定的存储数据备份存储之后,如图3所示,再次读取该存储数据时,检测及恢复过程如下:
步骤S301,创建与欲读取的存储数据的长度对应的缓存空间B0、B1、B2。
本实施例中,即确定出的A0中数据的长度,临时创建三个与A0中数据的长度对应的缓存空间B0、B1、B2。
需要说明的是,缓存空间B0、B1、B2的大小可以与A0、A1、A2不相同。
步骤S302,读取A0、A1、A2中的存储数据并分别保存到B0、B1、B2。
本实施例中,读取所述原存储单元A0、两个备份单元A1、A2的三个存储数据。将A0中的数据保存到缓存空间B0,将A1中的数据保存到缓存空间B1,将A2中的数据保存到缓存空间B2。
步骤S303,对比校验B0、B1、B2的三个缓存数据是否一致,若一致,转入步骤S305。
步骤S304,若不一致,且其中有两个缓存数据相同,则用两个相同的缓存数据对另一个缓存数据进行修正,并对对存储数据进行修正。转入步骤S306。
本实施例中,若(B0,B1)相等,(B0,B2)不相等,则将B0->B2,并将B2中修改后的缓存数据重新写入A2,以对A2中的存储数据进行覆盖恢复;
若(B0,B1)不相等,(B0,B2)相等,则将B0->B1,并将B1中修改后的缓存数据重新写入A1,以对A1中的存储数据进行覆盖恢复;
若(B0,B1)不相等,(B0,B2)不相等,(B1,B2)相等,则将B1->B0,并将B0中修改后的缓存数据重新写入A0,以对A0中的存储数据进行覆盖恢复。
步骤S305,若一致,则不做修正,转入步骤S306。
本实施例中,若(B0,B1)相等,(B0,B2)相等,则确定为数据未被破坏,不做修正。
步骤S306,释放缓存空间B0、B1、B2。
本实施例中,即释放缓存空间B0、B1、B2,及时清除系统垃圾,提高缓存利用率。
通过本发明实施例,通过将所述存储数据的两备份数据分别写入预先分配的两个备份单元,所述存储数据的原存储单元、所述两个备份单元三者地址不连续;读取所述存储数据时,检测所述原存储单元、所述两个备份单元的三个数据是否一致;若所述三个数据不一致,且其中有两个数据相同,则根据两个相同的数据对另一个数据进行修正。由于所述存储数据的原存储单元、两个备份单元三者地址不连续,通常情况只是破坏其中一个存储空间的数据,因此在下一次读取数据时,可通过其它存储空间的数据对破坏的数据进行修正,有效保证了设定的存储数据的准确性。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利要求范围,因此,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,仍属本发明所涵盖的范围。
Claims (7)
1.一种存储数据的恢复方法,其特征在于,包括:
将设定的存储数据写入原存储单元,将所述存储数据的两备份数据分别写入预先分配的两个备份单元,所述原存储单元、所述两个备份单元三者地址不连续;
读取所述存储数据时,检测所述原存储单元、所述两个备份单元的三个数据是否一致;
若所述三个数据不一致,且其中有两个数据相同,则根据两个相同的数据对另一个数据进行修正。
2.根据权利要求1所述的存储数据的恢复方法,其特征在于,所述检测所述原存储单元、所述两个备份单元的三个数据是否一致,包括:
读取所述原存储单元、所述两个备份单元的三个存储数据并分别保存到预设的三个缓存空间;
对比所述三个缓存空间的三个缓存数据是否一致;
所述若所述三个数据不一致,且其中有两个数据相同,则根据两个相同的数据对另一个数据进行修正,包括:
若所述三个缓存空间的三个缓存数据不一致,且其中有两个缓存空间的缓存数据相同,则用两个相同的缓存数据对另一个缓存数据进行修正;
将修正后的缓存数据写入对应的原存储单元或备份单元,以替换对应的存储数据。
3.根据权利要求2所述的存储数据的恢复方法,其特征在于,所述读取所述原存储单元、所述两个备份单元的三个存储数据并分别保存到预设的三个缓存空间之前,还包括:
获取所述存储数据的长度,创建三个与所述存储数据的长度对应的缓存空间。
4.根据权利要求3所述的存储数据的恢复方法,其特征在于,所述将修正后的缓存数据写入对应的原存储单元或备份单元之后,还包括:
释放所述三个缓存空间。
5.根据权利要求1所述的存储数据的恢复方法,其特征在于,所述将所述存储数据的两备份数据分别写入预先分配的两个备份单元之前,还包括:
获取所述存储数据的长度和存储格式,从存储空间中分配出两个与所述存储数据的长度和存储格式对应的备份单元。
6.根据权利要求5所述的存储数据的恢复方法,其特征在于,所述原存储单元、所述两个备份单元三者的大小相同。
7.根据权利要求5所述的存储数据的恢复方法,其特征在于,所述从存储空间中分配出两个与所述存储数据的长度和存储格式对应的备份单元之前,还包括:
确定存储空间的可用空间大小大于2倍所述存储数据的长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410530833.9A CN104268035A (zh) | 2014-10-10 | 2014-10-10 | 一种存储数据的恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410530833.9A CN104268035A (zh) | 2014-10-10 | 2014-10-10 | 一种存储数据的恢复方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104268035A true CN104268035A (zh) | 2015-01-07 |
Family
ID=52159558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410530833.9A Pending CN104268035A (zh) | 2014-10-10 | 2014-10-10 | 一种存储数据的恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104268035A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664362A (zh) * | 2017-03-31 | 2018-10-16 | 龙芯中科技术有限公司 | 内存镜像的处理方法、内存控制器及用户设备 |
CN111553473A (zh) * | 2017-07-05 | 2020-08-18 | 上海寒武纪信息科技有限公司 | 数据冗余方法及执行数据冗余方法的神经网络处理器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1419196A (zh) * | 2001-11-12 | 2003-05-21 | 联想(北京)有限公司 | 硬盘数据备份与恢复方法 |
CN101634958A (zh) * | 2008-07-23 | 2010-01-27 | 佛山市顺德区顺达电脑厂有限公司 | 二级备份机制的flash存储器 |
US20120233406A1 (en) * | 2011-03-07 | 2012-09-13 | Fujitsu Limited | Storage apparatus, and control method and control apparatus therefor |
CN102932621A (zh) * | 2011-08-08 | 2013-02-13 | 杭州海康威视数字技术股份有限公司 | 一种存储数据的方法及装置 |
-
2014
- 2014-10-10 CN CN201410530833.9A patent/CN104268035A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1419196A (zh) * | 2001-11-12 | 2003-05-21 | 联想(北京)有限公司 | 硬盘数据备份与恢复方法 |
CN101634958A (zh) * | 2008-07-23 | 2010-01-27 | 佛山市顺德区顺达电脑厂有限公司 | 二级备份机制的flash存储器 |
US20120233406A1 (en) * | 2011-03-07 | 2012-09-13 | Fujitsu Limited | Storage apparatus, and control method and control apparatus therefor |
CN102932621A (zh) * | 2011-08-08 | 2013-02-13 | 杭州海康威视数字技术股份有限公司 | 一种存储数据的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664362A (zh) * | 2017-03-31 | 2018-10-16 | 龙芯中科技术有限公司 | 内存镜像的处理方法、内存控制器及用户设备 |
CN111553473A (zh) * | 2017-07-05 | 2020-08-18 | 上海寒武纪信息科技有限公司 | 数据冗余方法及执行数据冗余方法的神经网络处理器 |
CN111553473B (zh) * | 2017-07-05 | 2023-10-13 | 上海寒武纪信息科技有限公司 | 数据冗余方法及执行数据冗余方法的神经网络处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11068391B2 (en) | Mapping table updating method for data storage device | |
US10592410B2 (en) | Backup mechanism of writing sequential data to single-level cell buffer and multi-level cell buffer | |
US9645894B2 (en) | Data storage device and flash memory control method | |
CN106407050B (zh) | 一种数据存储方法 | |
CN102831072B (zh) | 闪存设备及其管理方法、数据读写方法及读写装置 | |
CN103164342B (zh) | 数据可用性的挂载时协调 | |
TWI492051B (zh) | 資料儲存裝置與快閃記憶體控制方法 | |
US20130326121A1 (en) | Data-storage device and flash memory control method | |
JP5990430B2 (ja) | Ssd(ソリッドステートドライブ)装置 | |
WO2005036401A3 (en) | Flash memory data correction and scrub techniques | |
TW200733112A (en) | Corrected data storage and handling methods | |
CN103092662A (zh) | 一种基于嵌入式操作系统的终端设备的软件模块升级方法 | |
JP2018013837A (ja) | データ書き換え装置、データ書き換えプログラム | |
CN102722455B (zh) | 一种闪存设备中数据存储的方法及装置 | |
TW201928685A (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
US20190095276A1 (en) | Method for Processing Data Stored in a Memory Device and a Data Storage Device Utilizing the Same | |
CN108255630A (zh) | 一种降低固态硬盘异常掉电处理时间的方法 | |
TWI544487B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
CN102200937A (zh) | 一种与非闪存中数据读取的方法、装置及电视机系统 | |
CN109669889B (zh) | 一种轻量型Nor Flash闪存控制方法和装置 | |
CN103984506A (zh) | 闪存存储设备数据写的方法和系统 | |
CN108614744B (zh) | 基于NAND flash的掉电保护方法和装置 | |
CN114036004B (zh) | 数据备份方法、恢复方法及装置 | |
US20130219244A1 (en) | Storage device | |
CN109815166B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150107 |