CN110287059B - 一种spi flash的多备份方法 - Google Patents
一种spi flash的多备份方法 Download PDFInfo
- Publication number
- CN110287059B CN110287059B CN201910423552.6A CN201910423552A CN110287059B CN 110287059 B CN110287059 B CN 110287059B CN 201910423552 A CN201910423552 A CN 201910423552A CN 110287059 B CN110287059 B CN 110287059B
- Authority
- CN
- China
- Prior art keywords
- backup
- partition
- data
- main
- main partition
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000005192 partition Methods 0.000 claims abstract description 206
- 230000007246 mechanism Effects 0.000 claims abstract description 46
- 230000009191 jumping Effects 0.000 claims description 3
- 230000002035 prolonged effect Effects 0.000 abstract description 3
- 238000013500 data storage Methods 0.000 abstract description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/1448—Management of the data involved in backup or backup restore
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据存储技术领域,尤其涉及一种spi flash的多备份方法,包括步骤:S1.将spi flash划分为n个数据主分区和n个数据备份分区,n为大于等于2的整数;S2.为所述数据主分区和所述数据备份分区设置双分区有序轮询备份机制;S3.spi flash按照所述双分区有序轮询备份机制进行数据备份。本发明提供的一种spi flash的多备份方法,将spi flash划分为2n块数据分区,其中n块为主分区,另外n块为备份分区,并设计了两种模式——开启备份机制、关闭备份机制,实现了双分区有序轮询,有序使用该备份机制,在主分区寿命终结时,也能合理利用分区,能极其有效地使用flash,保护用户数据,延长产品寿命。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种spi flash的多备份方法。
背景技术
spi flash修改值的时候,需要以块为单位先擦写、后写入,如果此过程中突然掉电,就会造成数据丢失,所以需要设置备份机制。
但是,spi flash擦写次数有寿命限制,大概是十万次左右,所以即使是做了备份机制,主备份分区也有可能因为超过寿命而不能写入正常数据,此时的spi flash中,还存在许多没有使用的正常块区域。
目前产品的多备份机制,没有考虑到spi flash的使用寿命问题(不能写入正常数据),一旦主分区不能正常擦写,会让这些备份机制失效,并丢失重要数据。
发明内容
本发明提供一种spi flash的多备份方法,解决的技术问题是,现产品的多备份机制多为成对出现,没有考虑flash的使用寿命,当主分区使用寿命达到时,不能正常擦写数据,备份机制往往会失效,并丢失重要数据。
为解决以上技术问题,本发明提供一种spi flash的多备份方法,包括步骤:
S1.将spi flash划分为n个数据主分区和n个数据备份分区,n为大于等于2的整数;
S2.为所述数据主分区和所述数据备份分区设置双分区有序轮询备份机制;
S3.spi flash按照所述双分区有序轮询备份机制进行数据备份。
进一步地,在所述步骤S1中,所述数据主分区包括主分区1~主分区n,主分区a代表所述主分区1~主分区n中的任意一个;所述数据备份分区包括备份分区1~备份分区n,备份分区b代表所述备份分区1~备份分区n中的任意一个。
进一步地,在所述步骤S2中,所述双分区有序轮询备份机制包括开启备份机制和关闭备份机制。
进一步地,在所述步骤S2后、S3前,还包括步骤:
S23.spi flash开机,将轮询所述数据主分区和所述数据备份分区的初始序号格式化为1。
进一步地,所述开启备份机制具体包括:
A1.校验所述主分区a是否有正常数据,若有则进入A2,若无则跳转到A3;
A2.判断所述备份分区b中是否有正常数据,若有则使用所述主分区a、备份分区b;若无且b<n时,执行b+1操作后再次进入A2;若无且b=n时,使用主分区a,不使用备份分区;
A3.判断所述备份分区b中是否有正常数据,若有进入A4;若无且b<n时,执行b+1操作后再次进入A3;若无且b=n时,执行a+1及b=1操作后返回到步骤A1;
A4.判断所述备份分区b中的正常数据是否能正常写入所述主分区a,若能则使用所述主分区a、备份分区b;若不能且a<n时,执行a+1操作后再次进入A4;若不能且a=n时,进入所述关闭备份机制。
进一步地,所述关闭备份机制具体包括:
B1.校验所述备份分区b中是否有正常数据,若有则使用所述备份分区b,不使用主分区;若无则进入B2;
B2.b<n时,执行b+1操作后再次进入B1;b=n时,主分区1~主分区n及备份分区1~备份分区n则全部损坏,退出对数据的写入。
具体地,所述校验所述主分区a中是否有正常数据,具体为:
对比spi flash中存放的CRC是否与所述主分区a计算出的CRC相等,若是则表示有正常数据,若否则表示无正常数据。
具体地,所述校验所述备份分区b中是否有正常数据,具体为:
对比spi flash中存放的CRC是否与所述备份分区b计算出的CRC相等,若是则表示有正常数据,若否则表示无正常数据。
具体地,所述判断所述备份分区b中的正常数据是否能正常写入所述主分区a,具体为:
将所述备份分区b中的正常数据写入所述主分区a后再读出数据与写入前的数据作比较,若一致则表示能正常写入,若不一致则表示不能正常写入。
本发明提供的一种spi flash的多备份方法,将spi flash划分为2n块数据分区,其中n块为主分区,另外n块为备份分区,并设计了两种模式——开启备份机制、关闭备份机制,实现了双分区有序轮询,有序使用该备份机制,在主分区寿命终结时,也能合理利用分区,能极其有效地使用flash,保护用户数据,延长产品寿命。
附图说明
图1是本发明实施例提供的一种spi flash的多备份方法的步骤流程图。
具体实施方式
下图面结合附具体阐明本发明的实施方式,实施例的给出仅仅是为了说明目的,并不能理解为对本发明的限定,包括附图仅供参考和说明使用,不构成对本发明专利保护范围的限制,因为在不脱离本发明精神和范围基础上,可以对本发明进行许多改变。
如图1所示的步骤流程图,本发明实施例提供的一种spi flash的多备份方法,包括步骤:
S1.将spi flash划分为n个数据主分区和n个数据备份分区,n为大于等于2的整数;
S2.为所述数据主分区和所述数据备份分区设置双分区有序轮询备份机制;
S3.spi flash按照所述双分区有序轮询备份机制进行数据备份。
进一步地,在所述步骤S1中,所述数据主分区包括主分区1~主分区n,主分区a代表所述主分区1~主分区n中的任意一个;所述数据备份分区包括备份分区1~备份分区n,备份分区b代表所述备份分区1~备份分区n中的任意一个。
进一步地,在所述步骤S2中,所述双分区有序轮询备份机制包括开启备份机制和关闭备份机制。
进一步地,在所述步骤S2后、S3前,还包括步骤:
S23.spi flash开机,将轮询所述数据主分区和所述数据备份分区的初始序号格式化为1。spi flash每一次开机,则从主分区1、备份分区1开始进行轮询。
开机后,首先运行所述开启备份机制,具体包括:
A1.校验所述主分区a是否有正常数据,若有则进入A2,若无则跳转到A3;
A2.判断所述备份分区b中是否有正常数据,若有则使用所述主分区a、备份分区b(主分区a中、备份分区b中均有正常数据,则使用主分区a、备份分区b);若无且b<n时,执行b+1操作后再次进入A2(对备份分区进行轮询);若无且b=n时,使用主分区a,不使用备份分区(主分区a中有正常数据,但对备份分区轮询后均没有正常数据,则使用主分区a,不使用备份分区);
A3.判断所述备份分区b中是否有正常数据,若有进入A4;若无且b<n时,执行b+1操作后再次进入A3(轮询直到b=n);若无且b=n时,执行a+1及b=1操作后返回到步骤A1(对下一个主分区进行备份分区的轮询);
A4.判断所述备份分区b中的正常数据是否能正常写入所述主分区a,若能则使用所述主分区a、备份分区b(主分区1~n中没有正常数据,但备份分区b中的正常数据能够写入一主分区a,则使用主分区a和备份分区b);若不能且a<n时,执行a+1操作后再次进入A4;若不能且a=n时,进入所述关闭备份机制(主分区1~n中没有正常数据,备份分区b中有正常数据但是不能写入任意一个主分区,需要进入关闭备份机制)。
进一步地,所述关闭备份机制具体包括:
B1.校验所述备份分区b中是否有正常数据,若有则使用所述备份分区b,不使用主分区(主分区1~n中没有正常数据,备份分区b中有正常数据并且可以写入备份分区b但是不能写入任意一个主分区,则不使用主分区,使用备份分区b);若无则进入B2;
B2.b<n时,执行b+1操作后再次进入B1(对备份分区进行轮询);b=n时,主分区1~主分区n及备份分区1~备份分区n则全部损坏,退出对数据的写入(主分区a中没有正常数据,备份分区b中有正常数据但是不能写入任意一个主分区以及任意一个备份分区,则表示主分区和备份分区全部损坏,则退出对数据的擦写)。
具体地,所述校验所述主分区a中是否有正常数据,具体为:
对比spi flash中存放的CRC是否与所述主分区a计算出的CRC相等,若是则表示有正常数据,若否则表示无正常数据。
具体地,所述校验所述备份分区b中是否有正常数据,具体为:
对比spi flash中存放的CRC是否与所述备份分区b计算出的CRC相等,若是则表示有正常数据,若否则表示无正常数据。
具体地,所述判断所述备份分区b中的正常数据是否能正常写入所述主分区a,具体为:
将所述备份分区b中的正常数据写入所述主分区a后再读出数据与写入前的数据作比较,若一致则表示能正常写入,若不一致则表示不能正常写入。
本发明实施例提供的一种spi flash的多备份方法,将spi flash划分为2n块数据分区,其中n块为主分区,另外n块为备份分区,并设计了两种模式——开启备份机制、关闭备份机制,实现了双分区有序轮询,有序使用该备份机制,在主分区寿命终结时,也能合理利用分区,能极其有效地使用flash,保护用户数据,延长产品寿命。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (5)
1.一种spi flash的多备份方法,其特征在于,包括步骤:
S1.将spi flash划分为n个数据主分区和n个数据备份分区,n为大于等于2的整数;
所述数据主分区包括主分区1~主分区n,主分区a代表所述主分区1~主分区n中的任意一个;所述数据备份分区包括备份分区1~备份分区n,备份分区b代表所述备份分区1~备份分区n中的任意一个;
S2.为所述数据主分区和所述数据备份分区设置双分区有序轮询备份机制;
S23.spi flash开机,将轮询所述数据主分区和所述数据备份分区的初始序号格式化为1;
S3.spi flash按照所述双分区有序轮询备份机制进行数据备份,所述双分区有序轮询备份机制包括开启备份机制和关闭备份机制,具体为:
所述开启备份机制为:若校验到所述主分区a无正常数据,所述备份分区b中有正常数据,但所述备份分区b中的正常数据不能正常写入所述主分区a,且a<n时,执行a+1操作后再次检测所述备份分区b中的正常数据能否正常写入所述主分区a;若不能且a=n时,进入所述关闭备份机制;
所述开启备份机制具体还包括:
A1.校验所述主分区a是否有正常数据,若有则进入A2,若无则跳转到A3;
A2.判断所述备份分区b中是否有正常数据,若有则使用所述主分区a、备份分区b;若无且b<n时,执行b+1操作后再次进入A2;若无且b=n时,使用主分区a,不使用备份分区;
A3.判断所述备份分区b中是否有正常数据,若有进入A4;若无且b<n时,执行b+1操作后再次进入A3;若无且b=n时,执行a+1及b=1操作后返回到步骤A1;
A4.判断所述备份分区b中的正常数据是否能正常写入所述主分区a,若能则使用所述主分区a、备份分区b;
所述关闭备份机制具体为:使用所述备份分区b,不使用主分区。
2.如权利要求1所述的一种spi flash的多备份方法,其特征在于,所述关闭备份机制具体还包括:
B1.校验所述备份分区b中是否有正常数据,若无则进入B2;
B2.b<n时,执行b+1操作后再次进入B1;b=n时,主分区1~主分区n及备份分区1~备份分区n则全部损坏,退出对数据的写入。
3.如权利要求2所述的一种spi flash的多备份方法,其特征在于,所述校验所述主分区a中是否有正常数据,具体为:
对比spi flash中存放的CRC是否与所述主分区a计算出的CRC相等,若是则表示有正常数据,若否则表示无正常数据。
4.如权利要求3所述的一种spi flash的多备份方法,其特征在于,所述校验所述备份分区b中是否有正常数据,具体为:
对比spi flash中存放的CRC是否与所述备份分区b计算出的CRC相等,若是则表示有正常数据,若否则表示无正常数据。
5.如权利要求4所述的一种spi flash的多备份方法,其特征在于,所述判断所述备份分区b中的正常数据是否能正常写入所述主分区a,具体为:
将所述备份分区b中的正常数据写入所述主分区a后再读出数据与写入前的数据作比较,若一致则表示能正常写入,若不一致则表示不能正常写入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910423552.6A CN110287059B (zh) | 2019-05-21 | 2019-05-21 | 一种spi flash的多备份方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910423552.6A CN110287059B (zh) | 2019-05-21 | 2019-05-21 | 一种spi flash的多备份方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110287059A CN110287059A (zh) | 2019-09-27 |
CN110287059B true CN110287059B (zh) | 2023-12-15 |
Family
ID=68002384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910423552.6A Active CN110287059B (zh) | 2019-05-21 | 2019-05-21 | 一种spi flash的多备份方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110287059B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444040B (zh) * | 2020-01-20 | 2022-05-27 | 新华三大数据技术有限公司 | 一种元数据备份方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176859A (zh) * | 2011-12-21 | 2013-06-26 | 北京普源精电科技有限公司 | 一种flash数据备份/恢复方法、设备及信号源 |
CN104717558A (zh) * | 2015-03-05 | 2015-06-17 | 福建新大陆通信科技股份有限公司 | 一种机顶盒数据的备份及还原方法 |
CN106951342A (zh) * | 2017-03-17 | 2017-07-14 | 数据通信科学技术研究所 | 一种TF卡片内Flash的纠错方法 |
WO2018059565A1 (zh) * | 2016-09-29 | 2018-04-05 | 深圳创维数字技术有限公司 | 闪存数据的备份方法及系统 |
CN108228091A (zh) * | 2016-12-22 | 2018-06-29 | 上海未来宽带技术股份有限公司 | 配置数据分区保存方法及系统、配置数据校验方法及系统 |
-
2019
- 2019-05-21 CN CN201910423552.6A patent/CN110287059B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176859A (zh) * | 2011-12-21 | 2013-06-26 | 北京普源精电科技有限公司 | 一种flash数据备份/恢复方法、设备及信号源 |
CN104717558A (zh) * | 2015-03-05 | 2015-06-17 | 福建新大陆通信科技股份有限公司 | 一种机顶盒数据的备份及还原方法 |
WO2018059565A1 (zh) * | 2016-09-29 | 2018-04-05 | 深圳创维数字技术有限公司 | 闪存数据的备份方法及系统 |
CN108228091A (zh) * | 2016-12-22 | 2018-06-29 | 上海未来宽带技术股份有限公司 | 配置数据分区保存方法及系统、配置数据校验方法及系统 |
CN106951342A (zh) * | 2017-03-17 | 2017-07-14 | 数据通信科学技术研究所 | 一种TF卡片内Flash的纠错方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110287059A (zh) | 2019-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552311B2 (en) | Recovery for non-volatile memory after power loss | |
US10061512B2 (en) | Data storage device and data writing method thereof | |
EP2294510B1 (en) | Method and apparatus for error correction according to erase counts of a solid-state memory | |
TWI436369B (zh) | 記憶裝置之使用壽命量測方法及系統內編程碼置換方法、及其資料儲存系統 | |
CN104035843B (zh) | 用于提高锁步核可用性的系统和方法 | |
CN105637591A (zh) | 用于nand闪速存储器的缺陷管理策略 | |
CN108897492B (zh) | 一种数据写入方法和装置 | |
CN102750191A (zh) | 用于启动固态非易失性存储设备内的刷新操作的方法 | |
US20210118519A1 (en) | Managing block retirement for temporary operational conditions | |
CN108829342B (zh) | 一种日志存储方法、系统及存储装置 | |
US10049007B2 (en) | Non-volatile memory device and read method thereof | |
IL276897B2 (en) | A label randomization instruction for a label-reserved memory system | |
US20160357460A1 (en) | Storage system | |
CN110618892A (zh) | 一种固态硬盘的bug定位方法、装置、电子设备及介质 | |
CN109144754B (zh) | 一种可靠性测试方法及装置 | |
US8930318B1 (en) | Systems and methods for handling interruptions while updating of an electronic device | |
CN110287059B (zh) | 一种spi flash的多备份方法 | |
CN107992268B (zh) | 一种坏块标记的方法及相关装置 | |
US10942811B2 (en) | Data processing method for solid state drive | |
EP3176789A1 (en) | Memory control method and apparatus | |
CN107316659B (zh) | 存储器掉电时间段定位方法及系统掉电保护方法 | |
US20070214329A1 (en) | Method and apparatus for writing to a target memory page of a memory | |
CN101470666B (zh) | 一种数据存储方法 | |
CN108874318B (zh) | 固态硬盘的数据恢复方法以及固态硬盘 | |
CN111258498B (zh) | 一种flash存储器管理方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |