CN112948172A - 一种基于具有页原子性flash芯片的镜像保护方法和数据结构 - Google Patents
一种基于具有页原子性flash芯片的镜像保护方法和数据结构 Download PDFInfo
- Publication number
- CN112948172A CN112948172A CN202110135370.6A CN202110135370A CN112948172A CN 112948172 A CN112948172 A CN 112948172A CN 202110135370 A CN202110135370 A CN 202110135370A CN 112948172 A CN112948172 A CN 112948172A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- page
- transaction
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开一种基于具有页原子性FLASH芯片的镜像保护方法和数据结构,通过芯片的页原子性以及软件基于cache的镜像保护方法,确保擦写FLASH遇到断电时,能够使得镜像保护的数据具有原子性,同时提升镜像保护的性能。本发明提供的方法为:基于cache的FLASH擦写,利用cache缓存目标地址页的数据和事务log数据,当cache不足或事务提交时,对目标地址的原始数据进行备份,将更新的数据写入目标地址。
Description
技术领域
本发明涉及智能卡技术领域,是一种基于具有页原子性FLASH芯片的镜像保护方法。
背景技术
根据智能卡芯片FLASH擦写特性,对FLASH页进行擦写期间芯片断电后,无法保证单个或多个FLASH页数据的原子性,会造成智能卡数据异常,存在很大的安全风险。
目前智能卡中为了应对FLASH擦写掉电问题,通常以传统镜像保护方法为主。一般传统方法每次FLASH擦写时,为了解决无页原子性的FLASH芯片擦写期间断电出现数据无法预知的问题,需要将备份区标识和备份区数据分成两个FLASH页存放,先擦写备份区数据,然后擦写备份区有效标识为有效,然后再写目标数据。在事务中反复对同一页FLASH进行擦写,性能较差。
目前智能卡FLASH擦写次数直接影响智能卡的整体性能,在很多智能卡应用领域,交易性能是获取行业准入资格的硬性指标和行业竞争的关键指标。
发明内容
针对目前智能卡传统镜像保护方法中的缺陷,本发明提供一种基于具有页原子性FLASH芯片的高性能的智能卡镜像保护方法,可以显著减少FLASH擦写次数,提升智能卡产品的整体性能。
该发明在FLASH擦写时,将多次FLASH的擦写缓存在cache中,在无空闲cache缓存数据时,将擦写数据的目标地址原始数据进行备份,之后将cache数据一次写入对应
目标地址,主要步骤:
步骤一、启动擦写;
步骤二、判断事务cache是否足够;
步骤三、如果事务cache不足,将事务cache中所有事务log组织成事务block写入事务备份区,写入时,如果事务block的数据长度超过事务备份区当前所在页的范围,则先进行事务备份区下一页的数据备份,再进行事务备份区当前所在页备份,当前所在页
备份时,包含事务备份标识的备份数据,只擦写一次;
步骤四、如果事务cache足够,判断目标地址和数据长度的范围是否已经在事务cache中或事务备份区中,如果在,则不进行缓存,如果不在,在事务cache中将原始数
据组织成事务log;
步骤五、判断页cache是否足够;
步骤六、如果页cache足够,判断目标地址页是否已经在页cache中,如果已经在,将新数据写入页cache中,如果不在,将目标页数据拷贝至cache中后,将数据写入页cache中;
步骤七、如果页cache不足,首先按照步骤三,将事务cache中数据写入备份区,然后将页cache中数据写入目标页,写入时,判断每块页cache中的数据与目标地址原始数据是否有变化,如果有,擦写整个FLASH目标页,如果没有,则不擦写。将新值写入页cache中。
附图说明
图1为本发明页cache数据结构图。
图2为本发明事务block和事务log数据结构图。
图3为本发明FLASH擦写流程图。
具体实施方式
以下结合附图和实例对本发明所提供的一种基于具有页原子性FLASH芯片的镜像保护方法进一步说明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一、一种基于具有页原子性FLASH芯片的镜像保护方法页cache数据结构图,如附图1所示,FLASH页大小为512Bytes,页cache为4个FLASH页大小容量的RAM,即4块cache,每块cache与待写入数据的目标地址之间映射规则采用页对齐的方式。
二、一种基于具有页原子性FLASH芯片的镜像保护方法事务block数据结构图和事务log数据结构图,如附图2所示,block数据结构包含事务备份标识、事务备份log的总长度、校验值、事务备份log1、事务备份log2、事务备份logN,事务备份标识值为0xA55A5AA5时表示标识有效,校验值为事务备份log的总长度和所有事务log数据一起计算的CRC16;log数据结构包含擦写数据的数据长度、擦写数据的目标地址、擦写数据的目标地址原始数据内容。
三、一种基于具有页原子性FLASH芯片的镜像保护方法擦写流程,如附图3所示,该方法步骤包括:
S2001启动擦写;
S2002判断事务cache是否足够。如果事务备份区已经存在事务log数据加上本次
事务log数据超过事务cache范围,则无法继续cache;
S2003如果事务cache不足,将事务cache中所有事务log组织成事务block写入事务备份区,写入时,如果事务block的数据长度超过事务备份区当前所在页的范围,则先进行事务备份区下一页的数据备份,再进行事务备份区当前所在页备份,当前所在页备
份时,包含事务备份标识的备份数据,只擦写一次;
S2004如果事务cache足够,遍历检查事务cache和事务备份区,如果目标地址和
数据长度在其中某个log的范围内,则无需进行备份;
S2005如果不在,在事务cache中将目标地址原始数据按照数据长度、数据地址和
数据内容组织成事务log;
S2006判断页cache是否足够。如果已经使用的页cache数量小于四或目标页地址
已经在页cache中,则表示cache足够;
S2007如果页cache足够,判断目标地址页是否已经在页cache中;
S2008如果已经在,将新数据写入页cache中;
S2009如果不在,将目标页数据拷贝至cache中后,将数据写入页cache中;
S2010如果页cache不足,先将事务cache中数据写入备份区;
S2011遍历检查四个页cache,每个页cache从页起始地址开始,依次与目标地址页每个Byte进行比较,如果有任意一个Byte不同,则表示需要更新目标页数据;
S2012擦写整个FLASH页;
S2013结束。
Claims (2)
1.一种基于具有页原子性FLASH芯片的数据结构,其特征在于,cache数据结构包含两种,页cache和事务备份cache,cache基于RAM介质存储数据,页cache容量为N个FLASH页,即N块cache,每块cache与待写入数据的目标地址之间映射规则采用页对齐的方式;事务备份cache为1个FLASH页,用于缓存事务备份block;事务备份block数据结构包含事务备份标识、事务备份log的总长度、校验值、多个事务备份log;校验值是事务备份log的总长度和所有事务备份log一起计算出来的;事务备份log包含擦写数据的数据长度、擦写数据的目标地址、擦写数据的目标地址原始数据内容;通过cache提高事务性能;通过事务备份,确保擦写数据的原子性。
2.一种基于具有页原子性FLASH芯片的镜像保护方法,基于权利要求1所述的数据结构,基于具有页原子性FLASH芯片,在FLASH擦写时,将多次的FLASH的擦写缓存在cache中,在无空闲cache缓存数据或事务提交时,将擦写数据的目标地址原始数据进行备份,之后将每个页cache数据整页写入对应目标地址,其特征在于,主要包括步骤:
步骤一、启动擦写;
步骤二、判断事务cache是否足够;
步骤三、如果事务cache不足,将事务cache中所有事务log组织成事务block写入事务备份区,写入时,如果事务block的数据长度超过事务备份区当前所在页的范围,则先进行事务备份区下一页的数据备份,再进行事务备份区当前所在页备份,当前所在页备份时,包含事务备份标识的备份数据,只擦写一次;
步骤四、如果事务cache足够,判断目标地址和数据长度的范围是否已经在事务cache中或事务备份区中,如果在,则不进行缓存,如果不在,在事务cache中将原始数据组织成事务log;
步骤五、判断页cache是否足够;
步骤六、如果页cache足够,判断目标地址页是否已经在页cache中,如果已经在,将新数据写入页cache中,如果不在,将目标页数据拷贝至cache中后,将数据写入页cache中;
步骤七、如果页cache不足,首先按照步骤三,将事务cache中数据写入备份区,然后将页cache中数据写入目标页,写入时,判断每块页cache中的数据与目标地址原始数据是否有变化,如果有,擦写整个FLASH目标页,如果没有,则不擦写,将新值写入页cache中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110135370.6A CN112948172B (zh) | 2021-02-01 | 2021-02-01 | 一种基于具有页原子性flash芯片的镜像保护方法和数据结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110135370.6A CN112948172B (zh) | 2021-02-01 | 2021-02-01 | 一种基于具有页原子性flash芯片的镜像保护方法和数据结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112948172A true CN112948172A (zh) | 2021-06-11 |
CN112948172B CN112948172B (zh) | 2023-01-20 |
Family
ID=76240539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110135370.6A Active CN112948172B (zh) | 2021-02-01 | 2021-02-01 | 一种基于具有页原子性flash芯片的镜像保护方法和数据结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948172B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040064635A1 (en) * | 2002-10-01 | 2004-04-01 | Im-Young Jung | Method of storing data in a non-volatile memory and apparatus therefor |
CN102063384A (zh) * | 2009-11-13 | 2011-05-18 | 恒宝股份有限公司 | 一种java卡利用缓存对编程只读存储器进行读写操作的方法 |
CN102073544A (zh) * | 2011-01-28 | 2011-05-25 | 武汉天喻信息产业股份有限公司 | 一种基于页操作的EEPROM cache方法 |
CN104978154A (zh) * | 2015-07-27 | 2015-10-14 | 武汉天喻信息产业股份有限公司 | 一种基于缓存操作的flash快速读写方法及系统 |
CN110427285A (zh) * | 2019-08-06 | 2019-11-08 | 北京中电华大电子设计有限责任公司 | 一种高性能的智能卡镜像保护方法和数据结构 |
CN111104253A (zh) * | 2019-11-22 | 2020-05-05 | 江苏恒宝智能系统技术有限公司 | 一种掉电保护智能卡及其工作方法 |
CN111427726A (zh) * | 2020-03-27 | 2020-07-17 | 江苏恒宝智能系统技术有限公司 | Ic卡及其防掉电数据备份方法或数据恢复方法 |
-
2021
- 2021-02-01 CN CN202110135370.6A patent/CN112948172B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040064635A1 (en) * | 2002-10-01 | 2004-04-01 | Im-Young Jung | Method of storing data in a non-volatile memory and apparatus therefor |
CN102063384A (zh) * | 2009-11-13 | 2011-05-18 | 恒宝股份有限公司 | 一种java卡利用缓存对编程只读存储器进行读写操作的方法 |
CN102073544A (zh) * | 2011-01-28 | 2011-05-25 | 武汉天喻信息产业股份有限公司 | 一种基于页操作的EEPROM cache方法 |
CN104978154A (zh) * | 2015-07-27 | 2015-10-14 | 武汉天喻信息产业股份有限公司 | 一种基于缓存操作的flash快速读写方法及系统 |
CN110427285A (zh) * | 2019-08-06 | 2019-11-08 | 北京中电华大电子设计有限责任公司 | 一种高性能的智能卡镜像保护方法和数据结构 |
CN111104253A (zh) * | 2019-11-22 | 2020-05-05 | 江苏恒宝智能系统技术有限公司 | 一种掉电保护智能卡及其工作方法 |
CN111427726A (zh) * | 2020-03-27 | 2020-07-17 | 江苏恒宝智能系统技术有限公司 | Ic卡及其防掉电数据备份方法或数据恢复方法 |
Non-Patent Citations (1)
Title |
---|
吴俊军等: "基于缓存的JCVM性能优化方法研究", 《计算机工程与科学》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112948172B (zh) | 2023-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI639917B (zh) | 資料儲存裝置及映射表重建方法 | |
CN103488583B (zh) | 一种高性能高可靠的固态盘实现方法 | |
US6581142B1 (en) | Computer program product and method for partial paging and eviction of microprocessor instructions in an embedded computer | |
KR100706242B1 (ko) | 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법 | |
CN1900919B (zh) | 包括多个块的闪速存储器 | |
US10877898B2 (en) | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements | |
US9727245B2 (en) | Method and apparatus for de-duplication for solid state disks (SSDs) | |
CN101645043B (zh) | 写数据的方法、读数据的方法及存储设备 | |
JPS61117638A (ja) | 要求ペ−ジ仮想アドレス空間におけるメモリ・ブロツク圧縮方法 | |
CN110018790B (zh) | 一种保证持久性内存中数据崩溃一致性的方法及系统 | |
CN108733306A (zh) | 一种文件合并方法及装置 | |
CN112860594B (zh) | 一种固态盘地址重映射方法、设备及固态盘 | |
CN112084032B (zh) | 一种写优化的持久性内存堆管理方法 | |
CN112306974A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US20150269082A1 (en) | Cache system using solid state drive | |
CN111984651A (zh) | 一种基于持久性内存的列式存储方法、装置及设备 | |
US5276878A (en) | Method and system for task memory management in a multi-tasking data processing system | |
WO2012052567A1 (en) | Improving storage lifetime using data swapping | |
CN112948172B (zh) | 一种基于具有页原子性flash芯片的镜像保护方法和数据结构 | |
KR102321346B1 (ko) | 대용량 ssd 장치를 위한 데이터 저널링 방법 | |
CN113190470A (zh) | 一种flash芯片存储区及其高性能防掉电读写方法 | |
CN111143238A (zh) | 基于eFlash存储芯片的数据擦写方法及系统 | |
CN115878033A (zh) | 一种固态硬盘及其映射表管理方法 | |
CN111190834B (zh) | 一种非对称读延迟感知的数据放置方法 | |
CN106897315B (zh) | Kv项有效性获取方法以及装置 |
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 |