一种实现事务与掉电保护统一管理的方法及装置制造方法及图纸

技术编号:18114859 阅读:33 留言:0更新日期:2018-06-03 08:10
本发明专利技术公开了一种实现事务与掉电保护统一管理的方法及装置,属于信息安全领域。本发明专利技术将Java卡上的非易失存储器芯片的整个备份区域划分为三块,分别为第一块区、第二块区和第三块区,当Java卡执行写数据操作时,先进行数据备份并设置事务标记,在进行数据备份时包括将原始数据备份写入第三块区中,计算出记录数据并写入第二块区中,将待写数据写入目标页后,根据事务标记识别是否是事务的写操作,是事务则不需要清除记录,否则需要清除记录。本发明专利技术利用非易失存储器芯片的整个备份区域来统一管理事务与掉电从而达到减少占用芯片空间、节省执行时间的目的,提高了卡片的执行效率,同时兼顾芯片的磨损平衡,大大延长了芯片的使用寿命。

【技术实现步骤摘要】
一种实现事务与掉电保护统一管理的方法及装置
本专利技术涉及信息安全领域,尤其涉及一种实现事务与掉电保护统一管理的方法及装置。
技术介绍
Java卡是一种可以运行Java程序的CPU智能卡,使用Java卡平台创建的智能卡上存有Java应用。Java应用被下载到微处理器的内存里,由Java虚拟机来运行,在Java卡执行应用的过程中,Java卡中的非易失存储器(Non-volatilememory-NVM,包括EEPROM、FLASH等)的擦写耗时都大大制约了智能卡执行效率,另外,Java卡芯片内部资源的匮乏,致使用户可用的空间被严格限制。因此,大空间、速度快的智能卡已成为各大卡商追求的目标。现在的Java卡对于NVM的擦写管理,事务与掉电保护功能彼此相对独立、关联性小,这样不仅增加了对EEPROM/FLASH的擦写次数,影响了智能卡执行效率,而且需要更大的备份区空间来保证数据的完整性、可靠性,从而导致用户可用空间被缩减。
技术实现思路
鉴于现有技术的不足,为了提高Java卡的性能,本专利技术提供了一种实现事务与掉电保护统一管理的方法及装置。本专利技术的技术方案如下:一种实现事务与掉电保护统一管理的方法,包括:当Java卡执行写数据操作时,执行以下步骤:步骤S1:所述Java卡获取当前目标页和待写数据;步骤S2:所述Java卡根据备份区域的第二块区中的内容判断当前目标页是否已备份,是则置位事务标记并执行步骤S5,否则执行步骤S3;步骤S3:所述Java卡将当前目标页的原始数据写入备份区域的第三块区中,并判断当前写数据操作是否为原子写操作,是则置位事务标记,执行步骤S4,否则复位事务标记,执行步骤S4;步骤S4:所述Java卡计算与所述原始数据对应的记录数据,将计算得到的记录数据写入所述备份区域的第二块区中;步骤S5:所述Java卡将所述待写数据写入当前目标页;步骤S6:所述Java卡根据所述事务标记判断是否需要清除记录,是则执行步骤S7,否则写数据操作结束;步骤S7:所述Java卡清除写入所述第二块区的所述记录数据,写数据操作结束。优选的,上述步骤S2之前还包括,所述Java卡判断是否为首次写操作,是则执行掉电初始化,执行所述步骤S2,否则直接执行所述步骤S2。所述执行掉电初始化包括:初始化所述记录区游标和所述数据区游标,清除所述首次写标记。优选的,上述步骤S2具体为,所述Java卡遍历备份区域的第二块区中存储的记录数据,判断是否存在与当前目标页对应的记录数据,是则置位事务标记,执行步骤S5,否则根据遍历结果确定记录区游标,执行步骤S3。优选的,上述步骤S6具体为,所述Java卡判断所述事务标记是否置位,是则不需要清除记录,写数据操作结束;否则需要清除记录,执行步骤S7。优选的,上述判断当前写数据操作是否为原子写操作具体为,获取原子写标记并判断是否置位,是则当前写数据操作为原子写操作,否则当前写数据操作为非原子写操作。相应的,本方法还包括:当Java卡执行开启事务操作时,置位原子写标记;上述步骤S3之前还包括,当所述Java卡监测到数据区游标异常时,复位所述原子写标记。优选的,所述第二块区中存储的记录数据结构如下:每条记录数据长度是四个字节,其中第一个字节数据组成备份标记,第二个字节数据组成校验值,第三和第四个字节数据组成页号索引;上述步骤S2还包括,根据当前目标页地址计算出页号索引,遍历备份区域的第二块区中存储的记录数据并根据遍历结果确定记录区游标;所述步骤S3与步骤S4之间还包括,若所述Java卡判断当前写数据操作为非原子写操作则将所述页号索引的最高位置位;所述步骤S4具体为,所述Java卡将备份标记设置为预设值,根据所述备份标记和所述页号索引计算得到校验值,根据所述备份标记、所述校验值和所述页号索引组成记录数据,根据所述记录区游标将所述记录数据写入所述第二块区中;所述步骤S4之前,若所述Java卡判断当前写数据操作为原子写操作则所述步骤S4还包括将数据区游标后移一页。优选的,本专利技术的方法还包括:当Java卡执行取消事务操作时,执行以下步骤:步骤R1:所述Java卡从所述备份区域的第二块区中获取一条记录数据作为当前记录数据;步骤R2:所述Java卡判断当前记录数据是否对应有备份页,是则执行步骤R3,否则所述Java卡清除备份区域的第二块区的内容,取消事务操作结束;步骤R3:所述Java卡判断当前记录数据中包含的校验值是否正确,是则执行步骤R4,否则所述Java卡返回错误信息给上层,取消事务操作结束;步骤R4:所述Java卡判断是否需要执行数据回滚,是则执行步骤R5,否则返回执行步骤R1;步骤R5:所述Java卡根据当前记录数据中包含的页号索引找到目标页,从所述备份区域的第三块区中找到与所述目标页对应的备份页,将所述备份页中的原始数据恢复到所述目标页,返回执行步骤R1。上述步骤R1之前还包括:步骤R0:所述Java卡复位记录区游标和数据区游标;所述步骤R5中所述返回执行步骤R1之前还包括,将记录区游标更新为指向第二块区的下一条记录数据,将数据区游标更新为指向第三块区的下一备份页。上述步骤R2具体为:所述Java卡判断当前记录数据中包含的备份标记是否等于预设值,是则执行步骤R3,否则所述Java卡清除所述备份区域的第二块区的内容,复位数据区游标,取消事务操作结束。上述步骤R3具体为:所述Java卡将当前记录数据的第一、第三和第四字节数据做异或运算,判断异或运算结果是否与当前记录数据的第二字节数据相等,是则执行步骤R4,否则Java卡返回错误信息给上层,取消事务操作结束。上述步骤R4具体为,所述Java卡判断是否满足当前记录数据的第三字节的最高位等于0或者纯掉电标记等于1,是则执行步骤R5,否则返回执行步骤R1。优选的,本专利技术的方法还包括:当Java卡执行提交事务操作时,执行以下步骤:所述Java卡清除备份区域的第二块区的内容,复位记录区游标。本专利技术还提供了一种实现事务与掉电保护统一管理的装置,包括非易失存储器芯片、写操作模块和事务处理模块,其中,所述非易失存储器芯片的备份区域包括第一块区、第二块区和第三块区;所述写操作模块包括获取单元、第一判断单元、数据备份单元、第二判断单元、计算单元、写入单元、第三判断单元和清除单元;所述获取单元,用于获取当前目标页和待写数据;所述第一判断单元,用于根据所述第二块区中的内容判断所述获取单元获取的当前目标页是否已备份,是则置位事务标记并触发所述数据备份单元,否则触发所述写入单元;所述数据备份单元,用于将所述获取单元获取的当前目标页的原始数据写入所述第三块区中,并触发第二判断单元;所述第二判断单元,用于判断当前写数据操作是否为原子写操作,是则置位事务标记,触发所述计算单元,否则复位事务标记,触发所述计算单元;所述计算单元,用于计算与所述原始数据对应的记录数据,将计算得到的记录数据写入所述第二块区中,并触发所述写入单元;所述写入单元,用于将所述获取单元获取的所述待写数据写入当前目标页,触发所述第三判断单元;所述第三判断单元,用于根据事务标记判断是否需要清除记录;所述清除单元,用于当所述第三判断单元判断结果为是时清除所述计算单元写入到所述第二块区的所述记录数据。优选的,上述写操作模本文档来自技高网...
一种实现事务与掉电保护统一管理的方法及装置

【技术保护点】
一种实现事务与掉电保护统一管理的方法,其特征在于:当Java卡执行写数据操作时,执行以下步骤:步骤S1:所述Java卡获取当前目标页和待写数据;步骤S2:所述Java卡根据备份区域的第二块区中的内容判断当前目标页是否已备份,是则置位事务标记并执行步骤S5,否则执行步骤S3;步骤S3:所述Java卡将当前目标页的原始数据写入备份区域的第三块区中,并判断当前写数据操作是否为原子写操作,是则置位事务标记,执行步骤S4,否则复位事务标记,执行步骤S4;步骤S4:所述Java卡计算与所述原始数据对应的记录数据,将计算得到的记录数据写入所述备份区域的第二块区中;步骤S5:所述Java卡将所述待写数据写入当前目标页;步骤S6:所述Java卡根据所述事务标记判断是否需要清除记录,是则执行步骤S7,否则写数据操作结束;步骤S7:所述Java卡清除写入所述第二块区的所述记录数据,写数据操作结束。

【技术特征摘要】
1.一种实现事务与掉电保护统一管理的方法,其特征在于:当Java卡执行写数据操作时,执行以下步骤:步骤S1:所述Java卡获取当前目标页和待写数据;步骤S2:所述Java卡根据备份区域的第二块区中的内容判断当前目标页是否已备份,是则置位事务标记并执行步骤S5,否则执行步骤S3;步骤S3:所述Java卡将当前目标页的原始数据写入备份区域的第三块区中,并判断当前写数据操作是否为原子写操作,是则置位事务标记,执行步骤S4,否则复位事务标记,执行步骤S4;步骤S4:所述Java卡计算与所述原始数据对应的记录数据,将计算得到的记录数据写入所述备份区域的第二块区中;步骤S5:所述Java卡将所述待写数据写入当前目标页;步骤S6:所述Java卡根据所述事务标记判断是否需要清除记录,是则执行步骤S7,否则写数据操作结束;步骤S7:所述Java卡清除写入所述第二块区的所述记录数据,写数据操作结束。2.根据权利要求1所述的方法,其特征在于:所述步骤S2之前还包括,所述Java卡判断是否为首次写操作,是则执行掉电初始化,执行所述步骤S2,否则直接执行所述步骤S2。3.根据权利要求2所述的方法,其特征在于:所述Java卡判断是否为首次写操作具体为:所述Java卡判断是否存在首次写标记,是则执行掉电初始化,执行步骤S2;否则获取记录区游标和数据区游标,执行步骤S2;所述执行掉电初始化包括:初始化所述记录区游标和所述数据区游标,清除所述首次写标记。4.根据权利要求3所述的方法,其特征在于:所述初始化所述记录区游标和所述数据区游标具体为,通过遍历备份区域的第一块区的内容计算得到记录区游标初值和数据区游标初值,并根据计算得到的记录区游标初值和数据区游标初值分别初始化所述记录区游标和所述数据区游标。5.根据权利要求1所述的方法,其特征在于:所述步骤S2具体为,所述Java卡遍历备份区域的第二块区中存储的记录数据,判断是否存在与当前目标页对应的记录数据,是则置位事务标记,执行步骤S5,否则根据遍历结果确定记录区游标,执行步骤S3。6.根据权利要求5所述的方法,其特征在于:所述Java卡遍历备份区域的第二块区中存储的记录数据,判断是否存在与当前目标页对应的记录数据,具体为:所述Java卡根据当前目标页地址计算出页号索引,遍历第二块区中的记录数据,判断是否存在满足如下条件的记录数据:记录数据的第一个字节数据等于预设值,并且记录数据的第三、第四个字节数据与根据当前目标页地址计算出的页号索引相同,若存在满足上述条件的记录数据则表示当前目标页已备份,否则表示当前目标页未备份。7.根据权利要求1所述的方法,其特征在于:所述步骤S6具体为,所述Java卡判断所述事务标记是否置位,是则不需要清除记录,写数据操作结束;否则需要清除记录,执行步骤S7。8.根据权利要求1所述的方法,其特征在于:所述判断当前写数据操作是否为原子写操作具体为,获取原子写标记并判断是否置位,是则当前写数据操作为原子写操作,否则当前写数据操作为非原子写操作。9.根据权利要求8所述的方法,其特征在于,所述方法还包括:当Java卡执行开启事务操作时,置位原子写标记;所述步骤S3之前还包括,当所述Java卡监测到数据区游标异常时,复位所述原子写标记。10.根据权利要求1所述的方法,其特征在于:所述第二块区中存储的记录数据结构如下:每条记录数据长度是四个字节,其中第一个字节数据组成备份标记,第二个字节数据组成校验值,第三和第四个字节数据组成页号索引;所述步骤S2还包括,根据当前目标页地址计算出页号索引,遍历备份区域的第二块区中存储的记录数据并根据遍历结果确定记录区游标;所述步骤S3与步骤S4之间还包括,若所述Java卡判断当前写数据操作为非原子写操作则将所述页号索引的最高位置位;所述步骤S4具体为,所述Java卡将备份标记设置为预设值,根据所述备份标记和所述页号索引计算得到校验值,根据所述备份标记、所述校验值和所述页号索引组成记录数据,根据所述记录区游标将所述记录数据写入所述第二块区中;所述步骤S4之前,若所述Java卡判断当前写数据操作为原子写操作则所述步骤S4还包括将数据区游标后移一页。11.根据权利要求1所述的方法,其特征在于,所述方法还包括:当Java卡执行取消事务操作时,执行以下步骤:步骤R1:所述Java卡从所述备份区域的第二块区中获取一条记录数据作为当前记录数据;步骤R2:所述Java卡判断当前记录数据是否对应有备份页,是则执行步骤R3,否则所述Java卡清除备份区域的第二块区的内容,取消事务操作结束;步骤R3:所述Java卡判断当前记录数据中包含的校验值是否正确,是则执行步骤R4,否则所述Java卡返回错误信息给上层,取消事务操作结束;步骤R4:所述Java卡判断是否需要执行数据回滚,是则执行步骤R5,否则返回执行步骤R1;步骤R5:所述Java卡根据当前记录数据中包含的页号索引找到目标页,从所述备份区域的第三块区中找到与所述目标页对应的备份页,将所述备份页中的原始数据恢复到所述目标页,返回执行步骤R1。12.根据权利要求11所述的方法,其特征在于,所述步骤R1之前还包括:步骤R0:所述Java卡复位记录区游标和数据区游标;所述步骤R5中所述返回执行步骤R1之前还包括,将记录区游标更新为指向第二块区的下一条记录数据,将数据区游标更新为指向第三块区的下一备份页。13.根据权利要求11所述的方法,其特征在于,所述步骤R2具体为:所述Java卡判断当前记录数据中包含的备份标记是否等于预设值,是则执行步骤R3,否则所述Java卡清除所述备份区域的第二块区的内容,复位数据区游标,取消事务操作结束。14.根据权利要求11所述的方法,其特征在于,所述步骤R3具体为:所述Java卡将当前记录数据的第一、第三和第四字节数据做异或运算,判断异或运算结果是否与当前记录数据的第二字节数据相等,是则执行步骤R4,否则Java卡返回错误信息给上层,取消事务操作结束。15.根据权利要求11所述的方法,其特征在于,所述步骤R4具体为,所述Java卡判断是否满足当前记录数据的第三字节的最高位等于0或者纯掉电标记等于1,是则执行步骤R5,否则返回执行步骤R1。16.根据权利要求1所述的方法,其特征在于,所述方法还包括:当Java卡执行提交事务操作时,执行以下步骤:所述Java卡清除备份区域的第二块区的内容,复位记录区游标。17.一种实现事务与掉电保护统一管理的装置,包括非易失存储器芯片、写操作模块和事务处理模块,其特征在于:所述非易失存储器芯片的备份区域包括第一块区、第二块区和第三块区;所述写操作模块包括获取单元、第一判断单元、数据备份单...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:北京,11

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

1