CN104461770B - 一种Flash芯片的断电保护方法 - Google Patents
一种Flash芯片的断电保护方法 Download PDFInfo
- Publication number
- CN104461770B CN104461770B CN201410605751.6A CN201410605751A CN104461770B CN 104461770 B CN104461770 B CN 104461770B CN 201410605751 A CN201410605751 A CN 201410605751A CN 104461770 B CN104461770 B CN 104461770B
- Authority
- CN
- China
- Prior art keywords
- page
- backup
- backup units
- data
- units
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种Flash芯片的断电保护方法,其在芯片的可操作页备份单元区更新页备份单元、更新备份页数据以及更新不定长字节备份单元。通过有效的更新页备份单元,把更新页备份数据成功恢复,同时通过更新不定长字节备份单元,恢复更新前指定长度的旧数据。本发明提供的方案能够针对Flash芯片提供安全高效的断电保护,提高了断电保护的效率,极大的缩短指令执行时间。
Description
技术领域
本发明涉及智能卡技术,具体设计智能卡的断电保护技术。
背景技术
芯片技术的发展突飞猛进,成本的竞争也日益激烈。非易失性存储介质EEPROM的芯片市场价格明显高出Flash芯片的价格。在能实现产品功能的前提下,很多厂商选择了成本更低的Flash芯片,这也促成市场上各种特色Flash芯片的产生和应用。常见的Flash芯片的一般特性为只支持以页为单位,整页擦除,整页写入,必须先擦后写,写前必擦;同时Flash芯片还具有相应的断电保护方案。
断电保护属于智能卡行业的核心技术,安全性必须保证,效率也需挖掘芯片特性尽力提高。在实际开发中,断电保护数据的备份必然会延长系统指令的执行时间。在市场上,往往有的项目应用对时间的要求很苛刻,这对于芯片的断电保护设计就提出更高的要求。
由此可见,如何提高Flash芯片的断电保护的效率,以缩短指令执行的时间,是本领域亟需要解决的技术问题。
发明内容
针对现有Flash芯片的断电保护机制的安全和效率方面所存在的问题,本发明提供一种Flash芯片的特殊断电保护方法,本方案能够实现Flash芯片在擦好的页内在极短时间内对不同的地址可进行多次写操作,提高了断电保护的效率,极大的缩短指令执行时间。
为了达到上述目的,本发明采用如下的技术方案:
一种Flash芯片的断电保护方法,所述断电保护方法在芯片的可操作页建立页备份数据,再针对该页备份数据建立有效的页备份单元,在进行断电保护时,通过有效的页备份单元恢复对应的页备份数据。
在本方法的优选方案中,所述断电保护方法针对离散数据,建立不定长字节备份单元,通过该单元恢复更新前指定长度的旧数据。
进一步的,上述的页备份单元的格式如下:
Tag1(A3A3A3A3) | ADDRESS | Tag2(55555555) |
其中,Tag1表示该页备份单元有效;
ADDRESS表示页备份数据的首地址;
Tag2表示该页备份单元有效。
再者,上述的页备份单元的生成过程如下:
(1)在建立页备份数据后,首先写入页备份单元中的ADDRESS项;
(2)接着写入Tag1项,表示页备份单元有效;
(3)在更新ADDRESS指定页的数据后写入Tag2项,表示页备份单元无效。
针对芯片任一可操作页建立的页备份单元,在任意时候只有一个页备份单元有效。
进一步的,上述的不定长字节备份单元的格式如下:
Tag3(3A3A3A3A) | Len | Value | ADDRESS |
其中,Tag3表示该不定长字节单元有效;
Len表示备份旧数据的长度;
Value表示备份的数据内容;
ADDRESS表示备份数据的起始地址。
再进一步的,所述不定长字节备份单元的生成过程如下:
(1)根据建立的页备份数据,形成对应的Len、Value、ADDRESS项,并一次写入更新不定长字节备份单元;
(2)写入Tag3,表示更新不定长字节备份单元有效。
上述的断电保护方法中,每条指令执行之前,都要初始化擦空页备份单元区和不定长字节备份单元区,以保证指令执行过程中可以分步建立正确的页备份单元和不定长字节备份单元。
或者,在断电保护方法中,在依据页备份单元进行恢复完成后,立即让唯一有效的页备份单元失效;在依据不定长字节备份单元进行恢复完成后,擦除不定长字节备份单元区和页备份单元区。
本发明提供的方案能够针对Flash芯片提供安全高效的断电保护,提高了断电保护的效率,极大的缩短指令执行时间。
同时基于不定长字节备份单元还能够在指令的执行过程中实时的备份保护不确定的离散数据。
本方案相对比现有技术,还具有如下优点:
1.初始化擦空备份项区后分多次写入,节省80%以上擦写时间。
2.备份项分步写入,优化了备份项结构,不需要备份项有效性校验信息。
附图说明
以下结合附图和具体实施方式来进一步说明本发明。
图1为本发明实例中目标地址的初始数据的示意图;
图2为本发明实例中初始化不定长字节备份单元区的示意图;
图3为本发明实例中初始化页备份单元区的示意图;
图4为本发明实例中页备份数据区的示意图;
图5为本发明实例中写入不定长字节备份单元的示意图;
图6为本发明实例中不定长字节备份单元写入数据的示意图;
图7为本发明实例中擦空页备份数据区的示意图;
图8为本发明实例中备份0x800000页的数据的示意图;
图9为本发明实例中页备份单元写入当前更新页首地址的示意图;
图10为本发明实例中页备份单元写入Tag1项的示意图;
图11为本发明实例中擦空目标地址页数据示意图;
图12为本发明实例中目标地址的数据示意图;
图13为本发明实例中页备份单元写入Tag2项的示意图;
图14为本发明实例中擦空更新页备份数据区示意图;
图15为本发明实例中备份0x800800页的数据示意图;
图16为本发明实例中页备份单元写入当前更新页首地址的示意图;
图17为本发明实例中页备份单元写入Tag1项的示意图;
图18为本发明实例中擦空目标地址页数据示意图;
图19为本发明实例中更新目标地址的数据示意图;
图20为本发明实例中页备份单元写入Tag2项的示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
断电保护分为备份和恢复。备份就是在修改数据之前,保存原来的数据;恢复就是查找是否有有效的备份单元,如果有就依据相关的地址,长度和保存数据予以恢复。
针对Flash芯片,本发明提供的安全高效的断电保护解决方案,该断电保护方案主要基于页备份单元、页备份数据以及不定长字节备份单元来实现。
本发明先依据页备份单元进行恢复(完成后立即让唯一有效的页备份单元失效),再依据不定长字节备份单元进行恢复(完成后,擦除不定长字节备份单元区和页备份单元区)。
具体的,本发明提供的断电保护方案,首先针对芯片的可操作页建立页备份数据,再针对该页备份数据建立有效的页备份单元,在进行断电保护时,通过有效的页备份单元恢复对应的页备份数据。
同时,针对离散数据,建立不定长字节备份单元,通过该单元恢复更新前指定长度的旧数据。
在具体实现时,本发明引入的页备份单元的格式如下:
Tag1(A3A3A3A3) | ADDRESS | Tag2(55555555) |
如上所示,页备份单元有三部分组成:
Tag1表示该页备份单元有效;
ADDRESS表示页备份数据的首地址;
Tag2表示该页备份单元有效。
该结构的页备份单元的生成顺序为:
(1)在建立页备份数据后,首先写入页备份单元中的ADDRESS项;
(2)接着写入Tag1项,表示页备份单元有效;
(3)在更新ADDRESS指定页的数据后写入Tag2项,表示页备份单元无效。
该页备份单元中,只有ADDRESS项建立,该页备份单元无效;如Tag1项建立而Tag2项没有建立,页备份单元有效;Tag2项一旦出现,该页备份单元失效。在任意时刻,只有一个页备份单元有效。
页备份数据:表示有效页备份单元ADDRESS地址开始的整页大小的备份数据。否则,页备份项数据无效。
据此,基于上述的页备份单元和页备份数据更新某一页(如xx页)数据的内容的过程如下:
1、首先要建立页备份数据;
2、之后根据建立的备份数据建立有效的页备份单元(即页备份单元的前两项ADDRESS项和Tag1项);
3、再后更新该页(即上述的xx页)数据为新的数据;
4、最后让页备份单元失效(即追加页备份单元的Tag2)。
如此,如果步骤3执行时发生断电,可以依据有效(具有Tag1项)页备份单元中的ADDRESS项对应的页备份数据恢复该页中的旧数据,发挥掉电保护的作用。步骤3之前,xx页数据没有更新;步骤4之后,xx页数据更新完成,数据均不需要恢复。
由此来完成页备份单元的数据更新。
在具体实现时,本发明引入的不定长字节备份单元的格式如下:
Tag3(3A3A3A3A) | Len | Value | ADDRESS |
由上格式可知,不定长字节备份单元由4部分组成:
Tag3表示该不定长字节单元有效;
Len表示备份旧数据的长度;
Value表示备份的数据内容;
ADDRESS表示备份数据的起始地址。
由此格式的不定长字节备份单元,其生成顺序为:
(1)首先根据建立的页备份数据,形成对应的Len、Value、ADDRESS项,并一次写入更新不定长字节备份单元;
(2)写入Tag3,表示更新不定长字节备份单元有效。
由此建立的不定长字节备份单元,主要为实现不定长字节备份单元的数据更新。
其中,不定长字节备份单元的数据更新的特点:更新数据长度不确定;更新数据内容较少,更新数据有跨页的可能。
据此,上述各式的不定长字节备份单元进行不定长字节备份单元的数据更新的过程如下:
如果要更新2字节的数据,发现一字节位于xx页,另一字节位于yy页。
首先,根据上述方案生成对应的有效的不定长字节备份单元;
其次,要通过页备份单元的数据更新的方法更新xx页的数据;
再次,要通过页备份单元的数据更新的方法更新yy页的数据;
最后,如果不需要更新其它数据,擦除整个不定长字节备份单元区和页备份单元区,否则继续通过生成不定长字节备份单元的方式更新数据。
由上可知,断电保护的备份机制会留下失效的页备份单元和多个有效不定长字节备份单元,如果一条命令执行完成没有发生断电,在指令完成后需要擦除不定长字节备份单元区和页备份单元区,以便下一条命令保存新的备份单元,并避免失效数据的积累。
由此在具体实现时,该断电保护解决方案在运行时,需要初始化擦空更新页备份单元区和更新不定长字节备份单元区,具体如下:
每条指令执行之前,都要擦空页备份单元区和不定长字节备份单元区,以保证指令执行过程中可以分部建立正确的更新页备份单元和更新不定长字节备份单元。
以下通过一具体应用实例来进一步说明该安全高效的断电保护解决方案进行断电保护的过程:
假设芯片可操作页的大小为2K(0x800),现配置更新不定长字节备份单元区为首地址0x900000开始的2K空间,配置更新页备份单元为首地址0x900800开始的2K空间,配置更新页备份数据区为首地址为0x901000的2K空间,目标是把地址为0x8007FF开始的两个字节0xAA和0xBB修改为00。各个区域的初始值内容以及相应内容的变化如图1所示。
参见图2和3,整个方案运行时,首先擦好的不定长字节备份单元区的初始数据和页备份单元区的初始数据。
参见图4,其所示为引入的页备份数据区,其中XX表示不确定的初始数据。
参见图5,在完成更新不定长字节备份单元区和更新页备份单元区的初始化后,一次写入更新不定长字节备份单元。
参见图6,针对更新不定长字节备份单元写入Tag3(3A3A3A3A),以表示更新不定长字节备份单元有效,至此,不定长字节备份单元区添加一个有效不定长字节备份单元。
参见图7,接着擦空页备份数据区。
参见图8,页备份数据区备份0x800000页旧数据。
参见图9,针对页备份单元,在其ADDRESS项中写入当前更新页首地址。
参见图10,针对页备份单元,写入Tag1项(即A3A3A3A3),表示页备份单元有效,至此,页备份单元区添加一个有效页备份单元。
参见图11,在完成上述步骤后,擦空目标地址页数据,即用户区0x800000页数据清空。
参见图12,更新目标地址的数据,即用户区0x800000页数据更新,如图中的00。
参见图13,接着针对页备份单元写入备份单元失效标志:Tag2项(即55555555),以表示该页备份单元无效。
参见图14,接着擦空页备份数据区。
参见图15,页备份数据区备份0x800800页旧数据。
参见图16,针对页备份单元,在其ADDRESS项中写入当前更新页首地址。
参见图17,针对页备份单元,写入Tag1项(即A3A3A3A3),表示页备份单元有效,至此,页备份单元区添加一个新的有效页备份单元。
参见图18,用户区0x800800页数据擦空。
参见图19,更新目标地址的数据,即用户区0x800800页数据更新,如图中00。
参见图20,接着针对页备份单元写入页备份单元失效标志:Tag2项(即55555555),以表示该更新页备份单元无效。
至此,一个完整的数据更新过程完成。如果不需要更新其他数据,不定长字节备份单元区和页备份单元区数据清空,如图2和图3所示。如果需要修改其他用户数据,重复上述方法的数据更新过程。
作为进一步举例,基于上述实例内容,如页大小为2K,需要把用户数据0x8007FF和0x800800地址的旧数据0xAA、0xBB修改为0x00、0x00。
由此页备份单元区、不定长字节备份单元区、页备份数据区以及用户数据区的数据变化过程如下:
0x800000:用户数据区地址(页1)
0x800800:用户数据区地址(页2)
0x900000:不定长字节备份单元区首地址,区域初始数据为全0xFF
0x900800:页备份单元区首地址,区域初始数据为全0xFF
0x900800:页备份数据区首地址,区域初始数据无要求。
其整个数据更新过程采用上述的页备份单元的数据更新的过程,此处不加以赘述。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (8)
1.一种Flash芯片的断电保护方法,其特征在于,所述断电保护方法在芯片的可操作页建立页备份数据,再针对该页备份数据建立有效的页备份单元,在进行断电保护时,通过有效的页备份单元恢复对应的页备份数据;
所述页备份单元的格式如下:
其中,Tag1表示该页备份单元有效;
ADDRESS表示页备份数据的首地址;
Tag2表示该页备份单元有效。
2.根据权利要求1所述的一种Flash芯片的断电保护方法,其特征在于,所述断电保护方法针对离散数据,建立不定长字节备份单元,通过该不定长字节备份单元恢复更新前指定长度的旧数据。
3.根据权利要求1所述的一种Flash芯片的断电保护方法,其特征在于,所述页备份单元的生成过程如下:
(1)在建立页备份数据后,首先写入页备份单元中的ADDRESS项;
(2)接着写入Tag1项,表示页备份单元有效;
(3)在更新ADDRESS指定页的数据后写入Tag2项,表示页备份单元无效。
4.根据权利要求1或3所述的一种Flash芯片的断电保护方法,其特征在于,针对芯片任一可操作页建立的页备份单元,在任意时候只有一个页备份单元有效。
5.根据权利要求2所述的一种Flash芯片的断电保护方法,其特征在于,所述不定长字节备份单元的格式如下:
其中,Tag3表示该不定长字节单元有效;
Len表示备份旧数据的长度;
Value表示备份的数据内容;
ADDRESS表示备份数据的起始地址。
6.根据权利要求5所述的一种Flash芯片的断电保护方法,其特征在于,所述不定长字节备份单元的生成过程如下:
(1)根据建立的页备份数据,形成对应的Len、Value、ADDRESS项,并一次写入更新不定长字节备份单元;
(2)写入Tag3,表示更新不定长字节备份单元有效。
7.根据权利要求2所述的一种Flash芯片的断电保护方法,其特征在于,所述断电保护方法中,每条指令执行之前,都要初始化擦空页备份单元区和不定长字节备份单元区,以保证指令执行过程中可以分步建立正确的页备份单元和不定长字节备份单元。
8.根据权利要求2所述的一种Flash芯片的断电保护方法,其特征在于,所述断电保护方法中,在依据页备份单元进行恢复完成后,立即让唯一有效的页备份单元失效;在依据不定长字节备份单元进行恢复完成后,擦除不定长字节备份单元区和页备份单元区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410605751.6A CN104461770B (zh) | 2014-10-31 | 2014-10-31 | 一种Flash芯片的断电保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410605751.6A CN104461770B (zh) | 2014-10-31 | 2014-10-31 | 一种Flash芯片的断电保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461770A CN104461770A (zh) | 2015-03-25 |
CN104461770B true CN104461770B (zh) | 2017-12-15 |
Family
ID=52907866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410605751.6A Active CN104461770B (zh) | 2014-10-31 | 2014-10-31 | 一种Flash芯片的断电保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461770B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354669B (zh) * | 2015-07-13 | 2021-03-26 | 国民技术股份有限公司 | 一种具有分级结构的存储器 |
CN106878399B (zh) * | 2017-01-22 | 2021-05-07 | 新华三技术有限公司 | 一种数据发送方法及装置 |
CN109685190B (zh) * | 2018-12-28 | 2022-04-12 | 江苏恒宝智能系统技术有限公司 | 一种ic卡掉电保护方法及装置 |
KR20200089939A (ko) * | 2019-01-18 | 2020-07-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
CN111737058B (zh) * | 2020-06-29 | 2024-05-28 | 江苏恒宝智能系统技术有限公司 | Ic卡及其防掉电数据备份方法或数据恢复方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1845082A (zh) * | 2006-04-29 | 2006-10-11 | 北京飞天诚信科技有限公司 | 闪存的安全写入方法 |
CN101699476A (zh) * | 2009-10-29 | 2010-04-28 | 北京握奇数据系统有限公司 | 智能卡的数据处理方法及装置 |
CN103617101A (zh) * | 2013-12-12 | 2014-03-05 | 北京旋极信息技术股份有限公司 | 一种掉电保护方法及装置 |
CN103914393A (zh) * | 2014-04-11 | 2014-07-09 | 四川华拓光通信股份有限公司 | 一种基于mcu的flash不丢失更新存储方法 |
-
2014
- 2014-10-31 CN CN201410605751.6A patent/CN104461770B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1845082A (zh) * | 2006-04-29 | 2006-10-11 | 北京飞天诚信科技有限公司 | 闪存的安全写入方法 |
CN101699476A (zh) * | 2009-10-29 | 2010-04-28 | 北京握奇数据系统有限公司 | 智能卡的数据处理方法及装置 |
CN103617101A (zh) * | 2013-12-12 | 2014-03-05 | 北京旋极信息技术股份有限公司 | 一种掉电保护方法及装置 |
CN103914393A (zh) * | 2014-04-11 | 2014-07-09 | 四川华拓光通信股份有限公司 | 一种基于mcu的flash不丢失更新存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104461770A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461770B (zh) | 一种Flash芯片的断电保护方法 | |
CN104750625A (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN101650972B (zh) | 智能卡的非易失性存储器数据更新方法 | |
CN106227680B (zh) | 一种数据处理及防掉电数据保护方法 | |
CN103514212B (zh) | 数据写入方法及系统 | |
CN106155915B (zh) | 数据存储的处理方法及装置 | |
CN103914407B (zh) | 一种sd卡掉电保护、恢复方法以及带有掉电保护的sd卡 | |
CN102023908A (zh) | 一种引导程序备份方法及装置 | |
CN103677947A (zh) | 基于linux的设备双系统保护及升级方法 | |
CN103778964B (zh) | 一种NAND Flash烧写数据的处理、使用方法及装置、系统 | |
CN104516959A (zh) | 一种管理数据库日志的方法及装置 | |
CN103996412A (zh) | 一种用于智能卡非易失性存储器的掉电保护方法 | |
CN103617101A (zh) | 一种掉电保护方法及装置 | |
CN102622190B (zh) | 产品识别信息在线写入方法及电子产品 | |
CN104636165A (zh) | 移动设备启动方法及装置 | |
CN103135941A (zh) | 嵌入式存储器的管理方法、嵌入式存储器及电子设备 | |
CN104978154A (zh) | 一种基于缓存操作的flash快速读写方法及系统 | |
CN102890655A (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN105094780A (zh) | 一种信息关联的方法和装置 | |
CN103049298A (zh) | 一种Nandflash烧写方法 | |
CN104536841A (zh) | 一种Android系统Data分区自修复方法及系统 | |
CN103593301B (zh) | 坏块管理方法及系统 | |
CN103064948A (zh) | 基于散列链表的内容寻址方法及相应的存储器电路 | |
CN103514063A (zh) | 一种flash数据处理方法以及装置 | |
CN104484289A (zh) | 一种基于扇区的嵌入式系统写保护的装置以及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |