CN103531234A - 一种NandFlash存储器写操作过程掉电防护方法 - Google Patents
一种NandFlash存储器写操作过程掉电防护方法 Download PDFInfo
- Publication number
- CN103531234A CN103531234A CN201210232679.8A CN201210232679A CN103531234A CN 103531234 A CN103531234 A CN 103531234A CN 201210232679 A CN201210232679 A CN 201210232679A CN 103531234 A CN103531234 A CN 103531234A
- Authority
- CN
- China
- Prior art keywords
- data
- former
- block
- swap
- write operation
- 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
Links
Images
Abstract
一种NandFlash存储器写操作过程掉电防护方法,在NandFlash存储器中定义一个交换块和一个标志块;其中,交换块用来备份原块数据,标志块用来表示原块地址、原块数据有效性和交换块数据有效性;在NandFlash存储器写操作过程中出现掉电,则重新上电时,首先判断交换块数据有效性;若交换块数据无效,则表明交换块中没有有效的可供恢复的数据,则直接跳出掉电保护操作,执行在线编程器正常操作;若交换块数据有效,则需进一步判断原块数据有效性;若原块数据有效,则直接跳出掉电保护操作,执行在线编程器正常操作;若原块数据无效,则将交换块中的数据回写到原块,同时将标志块中的原块数据有效性标识置为有效标志。
Description
技术领域
本发明涉及一种NandFlash存储器写操作过程掉电防护实现方法。
背景技术
由于NandFlash的按页读写/按块擦除的属性,即页编程操作之前需要对整块擦除。若在擦除操作过程出现掉电,则极有可能出现该块中原有效数据被擦除,而待写入的数据未被写入的状况,以FAT32文件系统为例,若该块存储数据为文件数据区,则影响相对较小,若该块存储数据为FAT表或文件目录区,则会导致整个FAT32文件系统崩溃,显然这种状况不是被允许的。
CN200610066985.3专利中的备份区,主要是用来作冗余用,目的是为了提高可靠性,就是用多个地方来存储同样的数据。该专利重点是两个方面:A:平衡存储以提高存储器的使用寿命;B:使用备份区提到可靠性,如有三个备份区,即使1个区数据被破坏,还有两个区数据有效,类似于N/M表决系统。故没有解决掉电保护的问题。
发明内容
本发明的目的是提供一种在NandFlash存储器写操作过程中出现掉电的防护方法。
为实现上述目的,本发明采用以下技术方案:
一种NandFlash存储器写操作过程掉电防护方法,在NandFlash存储器中定义一个交换块和一个标志块;其中,交换块用来备份原块数据,标志块用来表示原块地址、原块数据有效性和交换块数据有效性;在NandFlash存储器写操作过程中出现掉电,则重新上电时,首先判断交换块数据有效性;若交换块数据无效,则表明交换块中没有有效的可供恢复的数据,则直接跳出掉电保护操作,执行在线编程器正常操作;若交换块数据有效,则需进一步判断原块数据有效性;若原块数据有效,则直接跳出掉电保护操作,执行在线编程器正常操作;若原块数据无效,则将交换块中的数据回写到原块,同时将标志块中的原块数据有效性标识置为有效标志。
所述的交换块数据有效性标识是这样定义的:
(1)在NandFlash存储器写操作开始时,先将上一次写操作时记录的标志块信息擦除,为本次写操作提供初始的标志块信息;
(2)标志块信息擦除后,擦除交换块,为本次备份操作提供无数据信息的交换块;
(3)将本次操作涉及的原块地址信息写入标志块中的对应位置,用于后续数据恢复时提供目标块地址;
(4)开始进行数据备份,将原块中的数据备份至交换块中;
(5)最后,将原块备份完成标识写入标志块的对应位置,此时表明交换块中数据可供数据恢复使用;所述的原块备份完成标识即为交换块数据有效性标识。
所述的原块数据有效性标识是这样定义的:
(6)在执行完步骤(5)之后,开始执行对原块擦除操作;
(7)原块擦除操作完成后,将交换块中首地址数据回写至原块对应位置;
(8)再将待写入数据写入原块指定位置;
(9)将交换块中尾地址数据回写至原块对应位置,直至待数据及备份数据写入完毕;
(10)当整块写入完毕之后,则将原块写操作完成标识写入标志块的对应位置,此时表明一次写操作完成;所述的原块写操作完成标识即为原块数据有效性标识。
采用上述技术方案的本发明,对任何块进行擦除前,先将该块数据复制到交换块中,同时建立原块与交换块的数据有效标识,这样即可实现某一块原数据至少有一份正确(原块或交换块),其正确性通过原块与交换块的数据有效标识来识别。当出现写操作时掉电,则下一次上电会通过对数据有效标识进行判别,若原块数据无效,则可将交换块中的数据还原到原块,若原块数据有效,则不用任何处理。这样可保证即使新数据未被成功写入,但不会出现原有效数据丢失。
综上,本发明实现了:(1)即使掉电,也能保证原块与交换块一定有一份数据正确,保证了下次上电时可恢复的数据来源;(2)标志块中的两个有效性标识,用来表示原块与交换块中哪一块数据可用于恢复;(3)只有在一种状况下需要恢复,即原块备份完成标识有效,且原块写操作完成标识无效,其他情况无须进行恢复。
附图说明
图1为本发明中存储结构图。
图2为本发明NandFlash存储器写操作流程图。
图3为本发明掉电后数据恢复流程图。
具体实施方式
如图1所示,本发明在NandFlash存储器中定义一个交换块102和一个标志块103,交换块用来备份原块101的数据,标志块用来表示原块地址、原块数据有效性及交换块数据有效性。
本发明NandFlash存储器写操作流程,如图2所示,整个流程采用顺序流程,以保证上一步骤未完成时,不会执行下一步骤,将该流程分成两个阶段,现对其中的关键流程进行说明:
(一)阶段一:本阶段特征为原块数据有效,即使掉电,只会导致本次操作未完成,而不会导致原数据丢失。
(1)在写操作开始,先将上一次写操作时记录的标志块信息擦除,为本次写操作提供初始的标志块信息;
(2)在步骤1执行完之后,擦除交换块,为本次备份操作提供无数据信息的交换块;
(3)在步骤2执行之后,将本次操作涉及的原块块地址信息写入标志块中的对应位置,用于后续数据恢复时提供目标块地址;
(4)此时开始进行数据备份,将原块中的数据备份至交换块中;
(5)在步骤4执行完之后,将原块备份完成标识写入标志块的对应位置,此时表明交换块中数据可供数据恢复使用。
(二)阶段二:本阶段特征为交换块块数据有效,若原块写操作未完,则可进行数据恢复。
(6)在执行完步骤5之后,开始执行对原块擦除操作,即步骤6;
(7)由于写操作的目标地址可能是该块中的某几个页,所以当原块擦除操作完成后,需要将交换块中原首数据回写至原块对应位置,即步骤7;
(8)步骤8,将待写入数据写入原块指定位置;
(9)步骤9,将交换块中原尾数据回写至原块对应位置,直至待数据及备份数据写入完毕;
(10)步骤10,当整块写入完毕之后,则将原块写操作完成标识写入标志块的对应位置,此时表明一次写操作完成。
若在如上所述的写操作过程中出现掉电,则需要根据出现掉电的阶段来考虑是否需要恢复数据,判断的依据为写入标志块中的两个标识,即本发明掉电后数据恢复流程如图3所示:现对其关键流程进行说明:
(1)上电初始化之后,通过读取标志块中的原块备份完成标志来判断标志块中原块备份完成标识是否有效,如表1所示;若无效,则表明交换块中没有有效的可供恢复的数据,则直接跳出掉电保护操作,执行在线编程器正常操作;若有效,则表明交换块中有有效的可供恢复的数据,但是否需要恢复,还需进一步通过读取标志块中的原块写操作完成标志来判断原块数据有效性,如表1所示;
(2)若原块写操作完成标识有效,则直接跳出掉电保护操作,执行在线编程器正常操作;
(3)若原块写操作完成标识无效,则表明掉电时原块写操作未完成,此时需要进行原块数据恢复,即将交换块中的数据回写到原块,同时将标志块中的原块写操作标识置为有效标识;
标识 | 状态1 | 状态2 | 状态3 | 状态4 |
原块备份完成标志 | 无效 | 有效 | 有效 | 无效 |
原块写操作完成标志 | 无效 | 无效 | 有效 | 有效 |
工作状态 | 第一次使用或擦标志块完毕 | 原块数据已备份至交换块完毕,但原块未回写完毕 | 原块数据已备份至交换块完毕,且原块回写完毕 | 标志块未擦完 |
执行操作 | 无 | 执行恢复 | 无 | 无 |
表1
(4)操作完成后转向其他初始化操作。
需要说明的是,本发明中的标志块相当于把256个扇区ECC校验来判断数据有效性的操作,精简为1次置标志的操作。这样做虽然不知道是哪个扇区数据有效性,但能知道是该扇区所在块的数据有效性,而我们写操作的擦除是按块进行的,知道块的数据有效性就可以决定是否执行还原操作。
虽然本发明已结合优选实施例进行说明,但要理解到,根据上述描述的许多替换、修改和变化对本专业技术人员而言是显而易见的,因此,预期已包含所有所述权利要求的精神以及范围内的替换、修改与变化。在这里提出的和在附图中所表示的所有内容,应该被解释为是说明性的和非限制性的。
Claims (3)
1.一种NandFlash存储器写操作过程掉电防护方法,其特征在于:在NandFlash存储器中定义一个交换块和一个标志块;其中,交换块用来备份原块数据,标志块用来表示原块地址、原块数据有效性和交换块数据有效性;
在NandFlash存储器写操作过程中出现掉电,则重新上电时,首先判断交换块数据有效性;若交换块数据无效,则表明交换块中没有有效的可供恢复的数据,则直接跳出掉电保护操作,执行在线编程器正常操作;若交换块数据有效,则需进一步判断原块数据有效性;若原块数据有效,则直接跳出掉电保护操作,执行在线编程器正常操作;若原块数据无效,则将交换块中的数据回写到原块,同时将标志块中的原块数据有效性标识置为有效标志。
2.根据权利要求1所述的NandFlash存储器写操作过程掉电防护方法,其特征在于,所述的交换块数据有效性标识是这样定义的:
(1)在NandFlash存储器写操作开始时,先将上一次写操作时记录的标志块信息擦除,为本次写操作提供初始的标志块信息;
(2)标志块信息擦除后,擦除交换块,为本次备份操作提供无数据信息的交换块;
(3)将本次操作涉及的原块地址信息写入标志块中的对应位置,用于后续数据恢复时提供目标块地址;
(4)开始进行数据备份,将原块中的数据备份至交换块中;
(5)最后,将原块备份完成标识写入标志块的对应位置,此时表明交换块中数据可供数据恢复使用;所述的原块备份完成标识即为交换块数据有效性标识。
3.根据权利要求2所述的NandFlash存储器写操作过程掉电防护方法,其特征在于,所述的原块数据有效性标识是这样定义的:
(6)在执行完步骤(5)之后,开始执行对原块擦除操作;
(7)原块擦除操作完成后,将交换块中首地址数据回写至原块对应位置;
(8)再将待写入数据写入原块指定位置;
(9)将交换块中尾地址数据回写至原块对应位置,直至待数据及备份数据写入完毕;
(10)当整块写入完毕之后,则将原块写操作完成标识写入标志块的对应位置,此时表明一次写操作完成;所述的原块写操作完成标识即为原块数据有效性标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210232679.8A CN103531234B (zh) | 2012-07-06 | 2012-07-06 | 一种NandFlash存储器写操作过程掉电防护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210232679.8A CN103531234B (zh) | 2012-07-06 | 2012-07-06 | 一种NandFlash存储器写操作过程掉电防护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103531234A true CN103531234A (zh) | 2014-01-22 |
CN103531234B CN103531234B (zh) | 2017-02-08 |
Family
ID=49933180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210232679.8A Active CN103531234B (zh) | 2012-07-06 | 2012-07-06 | 一种NandFlash存储器写操作过程掉电防护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103531234B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260270A (zh) * | 2015-11-11 | 2016-01-20 | 恒宝股份有限公司 | 一种Flash存储空间的动态恢复方法及装置 |
CN107316659A (zh) * | 2017-06-28 | 2017-11-03 | 东信和平科技股份有限公司 | 存储器掉电时间段定位方法及系统掉电保护方法 |
CN108459930A (zh) * | 2018-04-02 | 2018-08-28 | 深圳臻迪信息技术有限公司 | 数据备份方法、装置和存储介质 |
CN109086165A (zh) * | 2018-07-06 | 2018-12-25 | 广东梯云科技有限公司 | 一种基于单片机Flash的数据备份方法、装置及存储介质 |
CN109918228A (zh) * | 2019-01-28 | 2019-06-21 | 浙江中控技术股份有限公司 | 一种数据掉电保持方法及系统 |
CN109960611A (zh) * | 2019-03-07 | 2019-07-02 | 杭州迪普科技股份有限公司 | 数据恢复的方法、装置、电子设备及机器可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030167A (zh) * | 2007-01-17 | 2007-09-05 | 忆正存储技术(深圳)有限公司 | 闪存的区块管理方法 |
CN101079010A (zh) * | 2006-05-25 | 2007-11-28 | 中兴通讯股份有限公司 | 一种实现flash芯片数据安全的方法 |
-
2012
- 2012-07-06 CN CN201210232679.8A patent/CN103531234B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079010A (zh) * | 2006-05-25 | 2007-11-28 | 中兴通讯股份有限公司 | 一种实现flash芯片数据安全的方法 |
CN101030167A (zh) * | 2007-01-17 | 2007-09-05 | 忆正存储技术(深圳)有限公司 | 闪存的区块管理方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260270A (zh) * | 2015-11-11 | 2016-01-20 | 恒宝股份有限公司 | 一种Flash存储空间的动态恢复方法及装置 |
CN105260270B (zh) * | 2015-11-11 | 2018-12-11 | 恒宝股份有限公司 | 一种Flash存储空间的动态恢复方法及装置 |
CN107316659A (zh) * | 2017-06-28 | 2017-11-03 | 东信和平科技股份有限公司 | 存储器掉电时间段定位方法及系统掉电保护方法 |
CN108459930A (zh) * | 2018-04-02 | 2018-08-28 | 深圳臻迪信息技术有限公司 | 数据备份方法、装置和存储介质 |
CN108459930B (zh) * | 2018-04-02 | 2020-09-11 | 深圳臻迪信息技术有限公司 | 数据备份方法、装置和存储介质 |
CN109086165A (zh) * | 2018-07-06 | 2018-12-25 | 广东梯云科技有限公司 | 一种基于单片机Flash的数据备份方法、装置及存储介质 |
CN109918228A (zh) * | 2019-01-28 | 2019-06-21 | 浙江中控技术股份有限公司 | 一种数据掉电保持方法及系统 |
CN109960611A (zh) * | 2019-03-07 | 2019-07-02 | 杭州迪普科技股份有限公司 | 数据恢复的方法、装置、电子设备及机器可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103531234B (zh) | 2017-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103531234A (zh) | 一种NandFlash存储器写操作过程掉电防护方法 | |
CN102866956B (zh) | 基于固态存储介质的数据实时跟踪存储系统及方法 | |
CN101944386B (zh) | 识别闪速存储器中错误数据的控制电路及存储系统与方法 | |
CN102999564B (zh) | 写入数据的方法、装置和设备 | |
CN103914407B (zh) | 一种sd卡掉电保护、恢复方法以及带有掉电保护的sd卡 | |
CN101321341B (zh) | 智能卡断电保护方法 | |
CN100377119C (zh) | 闪存介质中数据保护方法 | |
CN101231617B (zh) | 闪存设备的数据处理方法 | |
CN103617101A (zh) | 一种掉电保护方法及装置 | |
CN103530242B (zh) | NandFlash存储器写操作过程掉电防护方法 | |
CN104091617A (zh) | 一种闪存存储设备检测的方法及装置 | |
CN103019888A (zh) | 备份方法与装置 | |
CN103996412A (zh) | 一种用于智能卡非易失性存储器的掉电保护方法 | |
CN103268294A (zh) | 一种存取数据的操作方法和数据处理设备 | |
CN102567146A (zh) | 一种实现日志备份的方法及其装置、智能卡 | |
CN103064760A (zh) | 备份方法和备份装置 | |
CN101699476A (zh) | 智能卡的数据处理方法及装置 | |
CN102207905A (zh) | 系统恢复方法、存储媒体控制器及存储系统 | |
TWI404071B (zh) | 能識別快閃記憶體中錯誤資料的控制電路及儲存系統與方法 | |
CN105302665A (zh) | 一种改进的写时拷贝快照方法及系统 | |
CN103593301B (zh) | 坏块管理方法及系统 | |
CN111045870A (zh) | 一种保存与恢复元数据的方法、装置和介质 | |
CN103514101A (zh) | 存取闪存的方法以及相关的记忆装置 | |
CN102789404A (zh) | 一种用于ic卡更新数据时防掉电数据存储的方法 | |
CN104268097A (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 |