一种基于具有页原子性FLASH芯片的镜像保护方法和数据结构技术

技术编号:28836909 阅读:56 留言:0更新日期:2021-06-11 23:34
本发明专利技术公开一种基于具有页原子性FLASH芯片的镜像保护方法和数据结构,通过芯片的页原子性以及软件基于cache的镜像保护方法,确保擦写FLASH遇到断电时,能够使得镜像保护的数据具有原子性,同时提升镜像保护的性能。本发明专利技术提供的方法为:基于cache的FLASH擦写,利用cache缓存目标地址页的数据和事务log数据,当cache不足或事务提交时,对目标地址的原始数据进行备份,将更新的数据写入目标地址。

【技术实现步骤摘要】
一种基于具有页原子性FLASH芯片的镜像保护方法和数据结构
本专利技术涉及智能卡
,是一种基于具有页原子性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结束。本文档来自技高网...

【技术保护点】
1.一种基于具有页原子性FLASH芯片的数据结构,其特征在于,cache数据结构包含两种,页cache和事务备份cache,cache基于RAM介质存储数据,页cache容量为N个FLASH页,即N块cache,每块cache与待写入数据的目标地址之间映射规则采用页对齐的方式;事务备份cache为1个FLASH页,用于缓存事务备份block;事务备份block数据结构包含事务备份标识、事务备份log的总长度、校验值、多个事务备份log;校验值是事务备份log的总长度和所有事务备份log一起计算出来的;事务备份log包含擦写数据的数据长度、擦写数据的目标地址、擦写数据的目标地址原始数据内容;通过cache提高事务性能;通过事务备份,确保擦写数据的原子性。/n

【技术特征摘要】
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数据整页写入对应目标地址,其特征在于,主要包括步骤:
步骤一、启动擦...

【专利技术属性】
技术研发人员:高景阳
申请(专利权)人:北京中电华大电子设计有限责任公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1