CN110287059B - 一种spi flash的多备份方法 - Google Patents

一种spi flash的多备份方法 Download PDF

Info

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
Application number
CN201910423552.6A
Other languages
English (en)
Other versions
CN110287059A (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.)
Guangdong Unionman Technology Co Ltd
Original Assignee
Guangdong Unionman Technology 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 Guangdong Unionman Technology Co Ltd filed Critical Guangdong Unionman Technology Co Ltd
Priority to CN201910423552.6A priority Critical patent/CN110287059B/zh
Publication of CN110287059A publication Critical patent/CN110287059A/zh
Application granted granted Critical
Publication of CN110287059B publication Critical patent/CN110287059B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding 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
    • 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

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的使用寿命问题(不能写入正常数据),一旦主分区不能正常擦写,会让这些备份机制失效,并丢失重要数据。
发明内容
本发明提供一种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后再读出数据与写入前的数据作比较,若一致则表示能正常写入,若不一致则表示不能正常写入。
CN201910423552.6A 2019-05-21 2019-05-21 一种spi flash的多备份方法 Active CN110287059B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111444040B (zh) * 2020-01-20 2022-05-27 新华三大数据技术有限公司 一种元数据备份方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
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 上海未来宽带技术股份有限公司 配置数据分区保存方法及系统、配置数据校验方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
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