利用空间冗余减少事务处理过程中对EEPROM页擦写次数的方法技术

技术编号:9295694 阅读:400 留言:0更新日期:2013-10-31 00:19
一种利用空间冗余减少事务处理过程中对EEPROM页擦写次数的方法,在受事务保护的EEPROM空间中每一页在物理上对应影子页,写数据时根据RAM中的页状态信息将新数据写入影子页并设状态位。读数据时根据RAM中的页状态信息返回数据,提交事务数据时,仅通过对状态位的操作和其CRC的判断使影子页地位提升为当前页,而使之前的当前页降为影子页。丢弃事务处理数据时,根据EEPROM保存的状态位“找到”之前的当前页。本发明专利技术在事务处理过程中减少不必要的写EEPROM次数,克服了在事务处理过程中对EEPROM的频繁修改造成的运行速度和对EEPROM寿命的影响,从而提升了事务处理效率。

【技术实现步骤摘要】
利用空间冗余减少事务处理过程中对EEPROM页擦写次数的方法
本专利技术涉及嵌入式系统,尤其涉及一种利用空间冗余减少事务处理过程中对EEPROM(电可擦只读存储器)页擦写次数的方法。
技术介绍
在对敏感信息诸如交易金额、密码的操作过程中发生中断时,关键是如何保证事务处理机制的完善性,即该事务要么更新成功,要么保持原值。因此对于要求高安全性的设备来说,尤其是智能卡,完善的事务处理尤为重要。传统的事务处理方法一般分为两种,保存旧数据方法和保存新数据方法:A.保存旧数据方法:将目标地址的旧值保存在事务处理区里,置事务处理区中数据有效标记,将新数据写入目标地址;清事务处理区中数据有效标记;需要恢复时将旧数据写回,清事务处理区中数据标志有效标记;这种方法在发生主动丢弃事务处理数据(abort处理)逻辑或意外断电后的数据恢复时开销最大(writepenalty);B.保存新数据方法:将目标地址的新值保存在RAM(随机存储器)中,当发生提交事务处理(commit处理)逻辑时将RAM中的新数据集复制到事务处理区里,置事务处理区中数据有效标记;将事务处理区中的新数据复制到目标地址;清事务处理区中数据有效标记;需要恢复时将事务处理中的新数据集写回,清事务处理区中数据标志有效标记;这种方法,新数据被缓存在RAM中,当发生任意EEPROM读操作时,都需要到RAM缓存中进行过滤以不错过其“最新值”(readpenalty);且该方法需要额外的RAM缓存,只适合较小的,应用场景相对固定的环境,否则RAM缓存的大小,任意读操作的缓存搜索过程都会受到挑战。
技术实现思路
本专利技术提供一种利用空间冗余减少事务处理过程中对EEPROM页擦写次数的方法,该方法以空间上的冗余为代价,在事务处理过程中减少不必要的写EEPROM次数,克服了在事务处理过程中对EEPROM的频繁修改造成的运行速度和对EEPROM寿命的影响,从而提升了事务处理效率。为了达到上述目的,本专利技术提供一种利用空间冗余减少事务处理过程中对EEPROM页擦写次数的方法,该方法包含以下步骤:步骤1、使EEPROM中需要受事务处理机制保护的空间中的每一页在物理上对应两个页,其中一页作为当前页PA,另外一页作为影子页PB;步骤2、分别在RAM中开辟页状态区TR_RAM、在EEPROM中开辟当前页状态区TR_EEPROM和页状态影子区TR_EEPROM_SHADOW,用于存放页状态信息;步骤3、当发生EEPROM写操作时,CPU根据TR_RAM中的页状态信息将新数据写入影子页中,并修改页状态区TR_RAM的信息,将低位设置为1,当发生EEPROM读操作时,CPU根据TR_RAM中的页状态信息将“最新”的数据返回;步骤4、判断逻辑是否需要提交所有事务处理数据,若是,转到步骤5,若否,转到步骤12;步骤5、对TR_RAM中的页状态信息做相应变换,并保存在页状态区TR_RAM:步骤6、计算TR_RAM中高字节数据的CRC16值,并将该值写入TR_RAM中低字节开始处;步骤7、将TR_RAM中的数据复制入TR_EEPROM_SHADOW;步骤8、设置一寄存器R用来表征新的TR_EEPROM,使TR_EEPROM与TR_EEPROM_SHADOW的地位互换;步骤9、将TR_RAM中的CRC清零;步骤10、擦除TR_EEPROM_SHADOW中的页数据;步骤11、将TR_EEPROM的高字节信息复制入TR_RAM的高字节,TR_RAM的低字节置零;步骤12、判断逻辑是否需要丢弃所有事务处理数据,若是,转到步骤13;步骤13、将TR_EEPROM的高字节数据复制入TR_RAM,TR_RAM的低字节清零。所述的步骤2中,每个页的状态由对应页状态区TR_RAM中的两位标记,“高位”表示当前页,“低位”表示影子页中是否有被处理的数据:00:当前页为PA,影子页PB中无被处理的“新数据”;01:当前页为PA,影子页PB中有被处理的“新数据”;10:当前页为PB,影子页PA中无被处理的“新数据”;11:当前页为PB,影子页PA中有被处理的“新数据”。所述的步骤5中,对TR_RAM中数据做如下变换:00à00(不变);01à10(置换当前页,并清除“已缓数据”标记);10à10(不变);11à00(置换当前页,并清除“已缓数据”标记)。本方法在任何情况下断电,重上电后,TR_EEPROM与TR_EEPROM_SHADOW中至少有一块的数据与其CRC值匹配:1、若只有一块匹配,则将其在R中指明为TR_EEPROM,另一块就作为影子;2、若两块的数据与其CRC分别都匹配,则可随选一个在寄存器R中标记为当前TR_EEPROM,另一块作为影子。本专利技术在事务处理过程中减少不必要的写EEPROM次数,克服了在事务处理过程中对EEPROM的频繁修改造成的运行速度和对EEPROM寿命的影响,从而提升了事务处理效率。附图说明图1是本专利技术的流程图;图2是TR_RAM、TR_EEPROM、TR_EEPROM_SHADOW、PA、PB等的示意图;图3是TR_RAM在写之前和写之后的状态变化示意图;图4是TR_RAM在提交事务时状态转换变化示意图;图5是计算TR_RAM高64字节的CRC16值并且复制入TR_EEPROM_SHADOW的示意图;图6是表征新TR_EEPROM后,当前页变化的示意图。具体实施方式以下根据图1~图6,具体说明本专利技术的较佳实施例。如图1所示,本专利技术提供一种利用空间冗余减少事务处理过程中对EEPROM页擦写次数的方法,包含以下步骤:步骤1、使EEPROM中需要受事务处理机制保护的空间中的每一页在物理上对应两个页(PA和PB),其中一页作为当前页,另外一页作为影子页;步骤2、分别在RAM中开辟页状态区TR_RAM、在EEPROM中开辟当前页状态区TR_EEPROM和页状态影子区TR_EEPROM_SHADOW,用于存放页状态信息;用2个bit来映射EEPROM的页状态;每个页的状态由对应页状态区TR_RAM中的两位标记,“高位”表示当前页,“低位”表示影子页中是否有被处理的数据:00:当前页为PA,影子页PB中无被处理的“新数据”;01:当前页为PA,影子页PB中有被处理的“新数据”;10:当前页为PB,影子页PA中无被处理的“新数据”;11:当前页为PB,影子页PA中有被处理的“新数据”;步骤3、当发生EEPROM写操作时,CPU根据TR_RAM中的页状态信息将新数据写入影子页中,并修改页状态区TR_RAM的信息,将低位设置为1,当发生EEPROM读操作时,CPU根据TR_RAM中的页状态信息将“最新”的数据返回;步骤4、判断逻辑是否需要提交所有事务处理数据(CommitTransaction),若是,转到步骤5,若否,转到步骤12;步骤5、对TR_RAM中的页状态信息做相应变换,并保存在页状态区TR_RAM:对TR_RAM中数据做如下变换(若由运行的系统处理,则需TR_RAM可见):00à00(不变);01à10(置换当前页,并清除“已缓数据”标记);10à10(不变);11à00(置换当前页,并清除“已缓数据”标记);“已缓数据”就是变换之前影子页里面的数据,这个标记即为低位(01中的那个1变成0);(注本文档来自技高网...
利用空间冗余减少事务处理过程中对EEPROM页擦写次数的方法

【技术保护点】
一种利用空间冗余减少事务处理过程中对EEPROM页擦写次数的方法,其特征在于,该方法包含以下步骤:步骤1、使EEPROM中需要受事务处理机制保护的空间中的每一页在物理上对应两个页,其中一页作为当前页PA,另外一页作为影子页PB;步骤2、分别在RAM中开辟页状态区TR_RAM、在EEPROM中开辟当前页状态区TR_EEPROM和页状态影子区TR_EEPROM_SHADOW,用于存放页状态信息;步骤3、当发生EEPROM写操作时,CPU根据TR_RAM中的页状态信息将新数据写入影子页中,并修改页状态区TR_RAM的信息,将低位设置为1,当发生EEPROM读操作时,CPU根据TR_RAM中的页状态信息将“最新”的数据返回;步骤4、判断?逻辑是否需要提交所有事务处理数据,若是,转到步骤5,若否,转到步骤12;步骤5、对TR_RAM中的页状态信息做相应变换,并保存在页状态区TR_RAM:步骤6、计算TR_RAM中高字节数据的CRC16值,并将该值写入TR_RAM中低字节开始处;?步骤7、将TR_RAM中的数据复制入TR_EEPROM_SHADOW;步骤8、设置一寄存器R用来表征新的TR_EEPROM,使TR_EEPROM与TR_EEPROM_SHADOW的地位互换;步骤9、将TR_RAM中的CRC清零;步骤10、擦除TR_EEPROM_SHADOW中的页数据;步骤11、将TR_EEPROM的高字节信息复制入TR_RAM的高字节,TR_RAM的低字节置零;步骤12、判断?逻辑是否需要丢弃所有事务处理数据,若是,转到步骤13;步骤13、将TR_EEPROM的高字节数据复制入TR_RAM,TR_RAM的低字节清零。...

【技术特征摘要】
1.一种利用空间冗余减少事务处理过程中对EEPROM页擦写次数的方法,其特征在于,该方法包含以下步骤:步骤1、使EEPROM中需要受事务处理机制保护的空间中的每一页在物理上对应两个页,其中一页作为当前页PA,另外一页作为影子页PB;步骤2、分别在RAM中开辟页状态区TR_RAM、在EEPROM中开辟当前页状态区TR_EEPROM和页状态影子区TR_EEPROM_SHADOW,用于存放页状态信息;步骤3、当发生EEPROM写操作时,CPU根据TR_RAM中的页状态信息将新数据写入影子页中,并修改页状态区TR_RAM的信息,将低位设置为1,当发生EEPROM读操作时,CPU根据TR_RAM中的页状态信息将“最新”的数据返回;步骤4、判断逻辑是否需要提交所有事务处理数据,若是,转到步骤5,若否,转到步骤12;步骤5、对TR_RAM中的页状态信息做相应变换,并保存在页状态区TR_RAM:步骤6、计算TR_RAM中高字节数据的CRC16值,并将该值写入TR_RAM中低字节开始处;步骤7、将TR_RAM中的数据复制入TR_EEPROM_SHADOW;步骤8、设置一寄存器R用来表征新的TR_EEPROM,使TR_EEPROM与TR_EEPROM_SHADOW的地位互换;步骤9、将TR_RAM中的CRC清零;步骤10、擦除TR_EEPROM_SHADOW中的页数据;步骤11、将TR_EEPROM的高字节信息复制入TR_RAM的高字节,TR_RAM的低字节置零;步骤...

【专利技术属性】
技术研发人员:邬佳希王元彪陈安新李清张纲谢懿
申请(专利权)人:上海复旦微电子集团股份有限公司
类型:发明
国别省市:

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

1