[发明专利]一种基于缓存操作的flash快速读写方法及系统在审
申请号: | 201510444228.4 | 申请日: | 2015-07-27 |
公开(公告)号: | CN104978154A | 公开(公告)日: | 2015-10-14 |
发明(设计)人: | 丁峰;江俊 | 申请(专利权)人: | 武汉天喻信息产业股份有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F12/08 |
代理公司: | 北京捷诚信通专利事务所(普通合伙) 11221 | 代理人: | 王卫东 |
地址: | 430223 湖北省武汉*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 缓存 操作 flash 快速 读写 方法 系统 | ||
技术领域
本发明涉及Java卡领域,具体来讲是一种基于缓存操作的flash快速读写方法及系统。
背景技术
Java卡是Java平台中最小的成员,其设定的执行环境为智能卡上的芯片或是有严格硬件限制的环境。Java卡的问世,一方面是为了推展Java的应用层次,一方面也是为了将Java平台的特性以及Java的好处带到智能卡上,由于在Java卡之上开发应用的平台无关性和安全性,Java卡已经被用于金融和通讯等多个领域中。
Java卡体系中,基于flash工艺的Java卡,Code段和用户空间都在flash中;对于flash而言,写操作时每一bit位只能从1更新成0,而不能从0更新成1,最小写单元是1个字节,擦操作时,可以将一页或者一个扇区全部bit位更新成1,最小擦单元是一页。如果要写入的地址原始值不是全0xFF,那么需要先将目的地址所在页擦除,然后再进行写操作;而flash的擦除必须是整页、整个扇区(多页)擦除,所以即使更新一个字节,也会导致需要将整页擦除,然后更新数据,导致读写效率低下,降低基于flash工艺的Java卡的应用性能。
基于flash工艺的Java卡,由于更新对象的时候,还需要考虑到flash的页备份,所以对对象的一次赋值,需要双重备份、以及更新对象域,至少需要三次的flash操作,flash产品更新非易失性数据,操作比较繁琐,性能上会受到很大影响。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于缓存操作的flash快速读写方法及系统,简化flash操作读写操作,提高Java卡的读写效率,进而提高基于flash工艺的Java卡的应用性能。
为达到以上目的,本发明采取一种基于缓存操作的flash快速读写方法,包括:在基于flash工艺的Java卡内建立一个flash缓冲区;写flash操作,将每次写flash操作形成一条log,保存到flash缓冲区中;当缓冲区存满或者Java卡异常时,把flash缓冲区中的数据一次性更新到目的flash中;读flash操作,根据目的flash的地址数据,判断所述flash缓冲区中是否存在对应的log,若是,读取该log对应的数据,若否,从目的flash的地址数据中读取。
在上述技术方案的基础上,所述Java卡包括Java卡虚拟机和Java卡应用程序编程接口,写flash操作,包括对Java卡虚拟机中对象、数组、静态对象进行更新操作,以及Java卡应用程序编程接口中的拷贝操作。
在上述技术方案的基础上,所述读flash操作中,对应log的数据判断依据为,判断flash缓冲区是否存在有效log,如果有,判断一条log的数据与目的flash的地址数据是否一致,若是,说明存在对应的log,访问该条log的数据,若否,继续查找下一条log,直至轮询所有log,如果没有,直接从目的flash的地址数据中读取。
在上述技术方案的基础上,所述flash缓冲区初始值为全0xFF,保证为全擦状态,每一条log对应一个有效标记相关信息,当有效标记相关信息为全FF,则log从开始记录。
在上述技术方案的基础上,当重新写入一次flash操作时,判断目的flash的地址数据是否和flash缓冲区中已有log的数据相交叉或重叠,若否,在flash缓冲区中新增一条log,若是,将原log的数据和目的flash的地址数据取合集,将所述合集新增一条log记录在flash缓冲区中,并设置原log无效。
在上述技术方案的基础上,重新写入一次flash操作时,从log起始地址开始,判断其启动标记是否有效,若否,则flash缓冲区的起始地址为本次log的地址,若是,根据log中的信息,查找本次log的起始地址,所述启动标记为第一条log的有效标记。
在上述技术方案的基础上,判断目的flash的地址数据是否和flash缓冲区中已有log的数据相交叉或重叠之前,先判断flash缓冲区剩余log空间是否够存储本次log的数据,若是,则重新计算本次log的实际地址与长度,继续判断flash缓冲区剩余log空间是否足够;若否,把flash缓冲区中的数据一次性更新到目的flash中,并清空之前的log数据,将本次log作为第一条log记录;所述已有log的数据相交叉或重叠,是判断之前的有效log是否与本次log的地址有交叉或重叠。
在上述技术方案的基础上,所述把flash缓冲区中的数据一次性更新到目的flash中,具体为,对每条log对应的物理页进行实际的更新操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉天喻信息产业股份有限公司,未经武汉天喻信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510444228.4/2.html,转载请声明来源钻瓜专利网。