智能卡的非易失性存储器数据更新方法技术

技术编号:3797913 阅读:145 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种智能卡的非易失性存储器数据更新方法,该智能卡具有非易失性存储器以及易失性存储器,易失性存储器中设置缓存区,并设有多种写操作类型,该方法包括将目标区内数据读入缓存区,并对缓存区的数据进行修改,记录写操作类型;再次执行写操作时,判断本次写操作类型是否与上次写操作类型相同,若相同,对缓存区的数据进行修改,记录写操作类型;否则,将缓存区的数据写回对应的目标区中,并将目标区内数据读入缓存区中,对缓存区中的数据进行修改,记录写操作类型;判断所有写操作是否结束,如是将缓存区中的数据写回相应的目标区中。本发明专利技术可减少多次执行写操作所消耗的时间,提高智能卡的运行效率。

【技术实现步骤摘要】

本专利技术涉及智能卡领域,尤其是涉及。
技术介绍
随着智能卡的普及,智能卡已经广泛应用于移动通信、电子商务等领域,而随着应用领域不断扩展,智能卡存储的信息也越来越多,作为智能卡主要存储设备的非易失性存储器的存储容量也越来越大,从原来的16K字节增加至64K字节,甚至128K字节。现有智能卡的存储器结构框图如图1所示,存储器10包括有非易失性存储器11,如闪速存储器(Flash)或电可擦除只读存储器(EEPR0M)等,并设有易失性存储器15,如随机存储器(RAM),用于存储临时性的数据。非易失性存储器11中设置有多个存储区,如图1中的存储区12、 13、 14,分别用于存储不同的数据,并且还设有一个备份区20,用于存储备份的数据。现有的智能卡设有多种向非易失性存储区11写入数据的写操作类型,如非原子性写操作、原子性写操作以及事务性写操作等。每次执行写操作时,将非易失性存储器11中需要写入数据的目标区中的数据读入易失性存储器15中,如需要向存储区12写入数据,则存储区12为本次写操作的目标区,将存储区12的数据读入易失性存储器15中,并在易失性存储器15中对数据进行修改,修改后将易失性存储器15的数据写回非易失性存储器11相应的目标区,即存储区12中,完成一次写操作。执行非原子性写操作不需要确保写操作成功,因此执行非原子性写操作时不需要将目标区中的数据写入备份区20。而执行原子性写操作以及事务性写操作则需要确保写操作的成功,因此执行原子性写操作以及事务性写操作时,需要将目标区中的数据写入备份区20,在写操作完毕后清除备份区20中的数据。这样,即使写操作过程中智能卡突然掉电,也能将备份区20中的数据写回目标区,确保非易失性存储器11数据的完整性。事务性写操作是智能卡处于事务处理程序中的写操作类型, 一旦智能卡进入事务处理程序,其所有写操作均为事务性写操作。但是,现有智能卡每次写操作过程中,均需要将在易失性存储器15中修改后的数据写回非易失性存储器11中,即使多次同一类型的写操作对同 一存储区进行的数据更新也需要执行相同的多次写操作,而多次的写操作消耗较长的时间,这严重影响智能卡的运行速度,导致现有智能卡的运行效率较低。
技术实现思路
本专利技术的主要目的是提供一种提高智能卡运行效率的智能卡非易失性存储器数据更新方法;本专利技术的另 一 目的是提供一种减少写操作消耗时间的智能卡非易失性存储器数据更新方法。为实现上述的主要目的,本专利技术提供的中,智能卡具有非易失性存储器以及易失性存储器,易失性存储器中设有緩存区,并设有二种或二种以上向非易失性存储器写入数据的写操作类型,该方法包括将需要写入数据的目标区内数据读入緩存区中,对緩存区中的数据进行修改,记录本次写操作类型;再次执行写操作时,判断本次写操作类型是否与上次写操作类型相同,若相同,则对緩存区中的数据进行修改,记录本次写操作类型;否则,将緩存区中的数据写回非易失性存储器对应的目标区中,并将本次需要写入数据的目标区内数据读入緩存区中,对緩存区中的数据进行修改,记录本次写操作类型;判断所有写操作是否结束,如是,则将緩存区中的数据写回非易失性存储器相应的目标区中。由上述方案可见,若连续多次执行的写操作类型相同,对緩存区中的数据进行多次修改后,只需要执行一次将緩存区中的数据写回非5易失性存储器,而不需要每执行一次写操作即将易失性存储器中修改后的数据写回非易失性存储器中,这样可避免多次执行的相同类型的写操作需要多次向非易失性存储器写回数据的情况,减少多次执行写操作所消耗的时间,从而提高智能卡的运行效率。一个优选的方案是,上述的再次执行写操作步骤中,在判本次写操作类型与上次写操作类型相同后,进一步判断本次写操作对应的目标区是否存在緩存区中,如在緩存区中,则对緩存区中的数据进行修改,否则,将本次写操作对应的目标区内数据读入緩存区后对緩存区内数据进行修改。由此可见,针对同一目标区多次相同类型的写操作,每次写操作时需要对緩存区的数据进行修改,待所有相同类型的写操作完毕后再将緩存区中的数据写入目标区中,这样可大大减少写操作所消耗的时间。即使针对不同目标区的多次相同类型的写操作,也是将多个目标区中的数据读入緩存区,并在緩存区进行修改,待所有相同类型的写操作完毕后, 一并将緩存区中的数据写回多个目标区中。由此,可避免每次写操作均向非易失性存储器写回数据所消耗的时间,提高智能卡的运行效率。附图说明图1是现有智能卡存储器的结构示意框图2是应用本专利技术实施例的智能卡存储器结构示意框图3是本专利技术实施例的流程图的第一部分;图4是本专利技术实施例的流程图的第二部分;图5是本专利技术实施例中清除緩存区过程的流程图。以下结合附图及实施例对本专利技术作进一 步说明。具体实施例方式应用本专利技术向非易失性存储器更新数据,需要在智能卡的存储器中设置一个緩存区,并设置一个写操作类型标记,智能卡的存储器结构框图如图2所示。与现有智能卡相同,智能卡的存储器10具有一个非易失性存储器ll,非易失性存储器11包括有多个存储区,如存储区12、 13、 14 等,并且非易失性存储器11中还设有一个备份区20,用于存储目标 区的备份数据。应用本专利技术的方法时,首先需要在易失性存储器15中设置一个 緩存区16,緩存区16的存储器空间大小可才艮据情况设定。緩存区16 由软件,如智能卡的操作系统进行管理,其具有很强的灵活性。并 且,本专利技术的緩存区16是使用软件在易失性存储器15中划分的虚拟 存储空间,而并非存储器中单独设置的硬件存储装置。在易失性存储器15中还设有一个写操作类型标记,该标记可使 用两位二进制数据表示,如"01"表示非原子性写操作,"10"表示 原子性写操作,"11"表示事务性写操作等。下面结合图3、图4与图5说明非原子性写操作、原子性写操作 以及事务性写操作的工作流程。参见图3、图4,若初次向非易失性存储器11的存储区12写入 数据的写操作类型为非原子性写操作,首先执行步骤Sl,判断智能 卡当前是否处于事务处理程序中,由于本次写操作类型为非原子性写 操作,因此智能卡并未进入事务处理程序,因此执行步骤S2,判断 本次写操作类型是否与上次写操作类型相同。由于当前写操作为初次 写操作,因此判断结果为否,执行步骤S3,清除緩存区16中数据。 由于緩存区16并未存储有任何数据,因此执行步骤S8,将目标区中 的数据读入緩存区16,即将存储区12中的数据读入緩存区16,然后 执行步骤S9,对緩存区16中的数据进行修改。接着,智能卡执行步骤S10,判断是否在事务处理程序中,由于 当前智能卡写操作类型为非原子性写操作,因此判断结果为否,执行 步骤S12,将本次写操作类型记录到易失性存储器15中,即将写操 作标记17修改为非原子性写操作。最后执行步骤S13,判断所有写操作是否结束,若未结束,则返 回执行步骤S1,等待下次写操作。7若下次写操作仍为非原子性写操作,智能卡进入第二次写操作流 程后,首先执行步骤Sl、 S2,并在相应判断后执行步骤S4,进一步判断本次写操作对应的目标区是否已经在缓存区16中。例如,本次 写操作对应的目标区仍为存储区12,则执行步骤S9,对緩存区16中 的数据进行修改。然后执行步骤S10,判断智能卡是否在事务处理程 序中,由本文档来自技高网
...

【技术保护点】
智能卡的非易失性存储器数据更新方法,所述智能卡具有非易失性存储器以及易失性存储器,所述易失性存储器中设置缓存区,并有二种或二种以上向所述非易失性存储器写入数据的写操作类型,该方法包括 将需要写入数据的目标区内数据读入所述缓存区中,对缓 存区中的数据进行修改,并记录写操作类型; 再次执行写操作时,判断是否与上次写操作类型相同,若相同,则对缓存区中的数据进行修改,记录本次写操作类型;否则,将缓存区中的数据写回非易失性存储器对应的目标区中,并将本次需要写入数据的目标区内数 据读入缓存区中,对缓存区中的数据进行修改,记录本次写操作类型; 判断所有写操作是否结束,如是,则将缓存区中的数据写回非易失性存储器相应的目标区中。

【技术特征摘要】

【专利技术属性】
技术研发人员:汪辉孙梦赛施伟周
申请(专利权)人:东信和平智能卡股份有限公司
类型:发明
国别省市:44[]

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

1
相关领域技术
  • 暂无相关专利