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

文档序号:6753252阅读:140来源:国知局
专利名称:智能卡的非易失性存储器数据更新方法
技术领域
本发明涉及智能卡领域,尤其是涉及智能卡的非易失性存储器数据更新方法。
背景技术
随着智能卡的普及,智能卡已经广泛应用于移动通信、电子商务等领域,而随着应用领域不断扩展,智能卡存储的信息也越来越多,作为智能卡主要存储设备的非易失性存储器的存储容量也越来越大,
从原来的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,判断智能卡是否在事务处理程 序中,由于智能卡并未进入事务处理程序,判断结果为否。最后,在 修改后再次记录本次写操作类型,即执行步骤S12。
若本次写操作对应的目标区不是存储区12,例如是存储区13, 则智能卡执行步骤S4的判断结果为否,进而执行步骤S5,进一步判 断本次写操作类型是否为非原子性写操作,则判断结果为是,执行步 骤S7,将緩存区16中的数据写回非易失性存储器11的存储区12 中,然后执行步骤S8,将本次写操作对应的目标区,即存储区13的 数据读入緩存区16中,再执行步骤S9,对緩存区16中的数据进行 修改,并执行步骤S10后执行步骤S12,记录本次写操作类型,等待 下次写操作。
由此可见,若智能卡连续执行两次针对同 一存储区的非原子性写 操作,只需要在执行两次写操作后将緩存区16中的数据写回非易失 性存储器对应的目标区中,这样可大大减少多次写操作所消耗的时 间,提高智能卡的运行效率。
并且,若第二次写操作对应的目标区并不在緩存区16中,可增 加一个步骤,在执行步骤S5后,增加判断将第二次写操作对应的目 标区数据读入緩存区16后是否超出緩存区16的存储空间的步骤,若 未超出緩存区16的存储空间,则不需要将緩存区16中的数据写回非 易失性存储器11中,而是直接将第二次写操作对应的目标区,如存 储区13的数据读入緩存区16中,待修改后, 一并将两次写操作修改 后的数据写回各自对应的目标区中,这样也能减少多次写操作所消耗 的时间,提高智能卡的运行效率。
当然,若第二次写操作类型发生改变,则需要将緩存区16中的 数据写回非易失性存储器11,以保证不同类型写操作之间的独立 性,也是保证非易失性存储器11中数据的完整性。
8例如第二次写操作类型为原子性写操作,则执行步骤S2时,判 断结果为否,执行步骤S3,清除緩存区16中的数据,具体流程如图 5所示。
清除緩存区16的数据时,首先判断上次写操作是否为非原子性 写操作,即执行步骤S21,若判断结果为是,则执行步骤S23,将緩 存区16中的数据写回非易失性存储器11中对应的目标区中,如存储 区12,然后执行步骤S24,判断上次写操作是否为原子性写操作,由 于判断结果为否,则清除緩存区16数据流程结束。执行该流程后, 即将緩存区16的数据写回相应的目标区中,緩存区16的数据得以清 除。
回看图3、图4,清除緩存区16的数据后,执行步骤S8,将本 次写操作目标区中的数据读入緩存区,并执行步骤S9,对緩存区16 中的数据进行修改,修改后执行步骤S10以及S12,记录本次写操作 的类型,并执行步骤S13,判断所有写操作是否结束,若未结束,则 返回步骤Sl,等待下次写操作。
若第二次写操作为原子性写操作,且第三次写操作也为原子性写 操作,则执行第三次写操作时,首先执行步骤Sl的判断,由于原子 性写操作并非处于事务处理程序中,判断结果为否,执行步骤S2的 判断,其判断结果为是,则进一步执行步骤S4的判断。
若本次写操作对应的目标区已经在緩存区16中,则执行步骤 S9,对緩冲区16中的数据进行修改。若本次写操作对应的目标区不 在緩存区16中,则执行步骤S5,进一步判断本次写操作是否为非原 子性写操作,判断结构为否,执行步骤S6,将本次写操作对应的目 标区中的数据写入备份区20中,然后执行步骤S7,将緩存区16中 的数据写回非易失性存储器11相应的目标区中,再将本次写操作对 应目标区中的数据读入緩存区16,对緩存区16中的数据进行修改, 即执行步骤S8、 S9。执行步骤S9后,智能卡顺序执行步骤SIO、 S12、 S13,这些与第二次写操作过程相同,在此不再赘述。由此可见,若连续两次写操作均为原子性写l乘作,智能卡将緩存
区16的数据修改后,并未清除备份区20中的数据,而是等到写操作 类型发生改变才清除备份区20的数据。
例如,第三次写操作为原子性写操作,对应的目标区为存储区
12, 而第四次写操作为非原子性写搡作,对应的目标区为存储区
13。 则执行第四次写操作时,首先执行步骤Sl、 S2的判断,再执行 步骤S3,清除緩存区16中的数据,具体步骤如图5所示。
清除緩存区16数据时,首先执行步骤S21,判断上次写操作是 否为非原子性写操作,由于判断结构为否,执行步骤S22,将上次写 操作对应目标区中的数据写入备份区20中,即将存储区12存储的旧 数据写入备份区20中。
然后,执行步骤S23,将緩存区16中的数据写回非易失性存储 器11对应的目标区,即存储区12中,再执行步骤S14,判断上次写 操作是否为原子性写操作,判断结果为是,执行步骤S25,将备份区 20中的数据清除,即将原存储在存储区12中的旧数据清除。
这样, 一旦智能卡在将緩存区16的数据写回存储区12过程中掉 电,智能卡也能将备份区20的数据写回存储区12,以确保非易失性 存储器11中数据的完整性。
同时,由于连续两次写操作类型发生改变,因此需要将备份区 20中的数据清除,避免占用备份区20的空间。
回看图3、图4,清除緩存区16数据后,智能卡执行步骤S8, 将第四次写操作对应的目标区,即存储区13的数据读入緩存区16, 并执行步骤S9,对緩存区16中的数据进行修改。之后,智能卡执行 步骤SIO、 S12,并执行步骤S13,判断所有写操作是否结束,若结束 则执行步骤S14,将緩存区16中的数据写回非易失性存储器11对应 的目标区中,若未结束则返回执行步骤S1。
若此时智能卡进入事务处理程序,则智能卡所有写操作均为事务 性写操作,则第五次写操作为事务性写操作。智能卡执行步骤Sl 后,判断结果为是,执行步骤S4,判断本次写操作对应的目标区是 否在緩存区16中,若在执行步骤S9,对緩存区16中的数据进行修改,若不在,则执行步骤S5,其判断为否,并执行步骤S6,将本次
写操作对应的目标区的数据写入备份区20中。
然后,智能卡执行步骤S7,将緩存区16对应的数据写回对应的 目标区中,即将第四次写操作修改后的緩存区16的数据写回第四次 写操作对应的目标区中。接着,执行步骤S8,将本次写操作对应的 目标区的数据读入緩存区16中,并执行步骤S9,对緩存区16中的 数据进行修改。
接着,智能卡执行步骤SIO,判断智能卡是否在事务处理程序 中,判断结果为是,则执行步骤Sll,进一步判断事务处理程序是否 结束,若未结束,则返回执行步骤Sl,等待下一次事务性写操作。 若事务处理程序结束,执行步骤S15,将缓存区16对应目标区中的 数据写入备份区20中,并将緩存区16中的数据写回非易失性存储器 11对应的存储区中,最后将备份区20中的所有数据清除,并返回步 骤S1,等待下一次写操作。
不管下一次写操作是非原子性写操作还是原子性写操作,事务处 理程序结束后的第 一 次写操作中,智能卡均按照 一 次全新的写操作处 理,具体的写操作流程与前述非原子性写操作及原子性写操作相同,
在此不再赘述。
由此可见,在连续多次的事务性写操作过程中,若针对同一目标 区的数据进行修改,则只在事务处理程序结束时将緩存区16的数据 写回相应的目标区,以节省多次向非易失性存储器11写数据的时间。
当然,即使多次写操作对应的目标区不相同,仍可以在步骤S5 后增加一个步骤,判断将新的目标区中数据读入緩存区16后是否超 出緩存区16的存储空间,若未超出,则可直接将新的目标区中数据 读入緩存区16中,并对緩存区16的数据进行修改,待事务处理程序 结束后, 一并将緩存区16中的数据写回非易失性存储器11对应多个 目标区中。
并且, 一旦智能卡进入事务处理程序,待所有写操作完毕后才将 备份区20中的数据清除,避免多次清除备份区20数据消耗的时间。当然, 一旦备份区20中存储数据已满,应当及时清除备份区20的数据。
由上迷的方案可见,应用本发明对智能卡非易失性存储器更新数 据,可节省连续多次类型相同写操作所消耗的时间,从而提高智能卡 的运行效率。
应用本发明时,由于修改后的数据存储在緩存区16中,而并未 及时写回非易失性存储器11。若此时智能卡读取非易失性存储器11 的数据,则会导致读取的数据不正确。因此,为了保证智能卡能正确 读出非易失性存储器11的数据,需要在读操作前增加一个步骤,判 断读操作对应的目标区是否在緩存区16中,若在緩存区16中,则从
緩存区16中读取对应目标区的数据。
当然,本发明在实际应用时还可以有更多的变化,例如智能卡可 在保证不同类型的写操作之间相互独立的前提下设置更多的写操作类 型;或者,将写操作标记设置在非易失性存储器中等,这些不影响本 发明的实施。
最后,需要强调的是,本发明不限于上述实施方式,诸如非易失 性存储器中设置存储区数量的改变、写操作标记格式的改变、緩存区 存储空间的改变等微小变化也应该包括在本发明的保护范围内。
1权利要求
1、智能卡的非易失性存储器数据更新方法,所述智能卡具有非易失性存储器以及易失性存储器,所述易失性存储器中设置缓存区,并有二种或二种以上向所述非易失性存储器写入数据的写操作类型,该方法包括将需要写入数据的目标区内数据读入所述缓存区中,对缓存区中的数据进行修改,并记录写操作类型;再次执行写操作时,判断是否与上次写操作类型相同,若相同,则对缓存区中的数据进行修改,记录本次写操作类型;否则,将缓存区中的数据写回非易失性存储器对应的目标区中,并将本次需要写入数据的目标区内数据读入缓存区中,对缓存区中的数据进行修改,记录本次写操作类型;判断所有写操作是否结束,如是,则将缓存区中的数据写回非易失性存储器相应的目标区中。
2、 根据权利要求1所述的数据更新方法,其特征在于再次执行写操作步骤中,还包括在判断与上次写操作类型相同 后,进一步判断本次写操作对应的目标区是否存在緩存区中,如是则 对緩存区中的数据进行修改,否则将本次写操作对应的目标区内数据 读入缓存区后对緩存区内数据进行修改。
3、 根据权利要求2所述的数据更新方法,其特征在于 将本次写操作对应的目标区内数据读入緩存区前,判断读入本次写操作对应的目标区内数据后是否超出緩存区的存储容量,如是将緩 存区内的数据写回非易失性存储器中对应的目标区中。
4、 根据权利要求1至3任一项所述的数据更新方法,其特征在于所述非易失性存储器设有备份区,且所述写操作类型包括有原子 性写操作以及事务性写操作;再次执行写操作步骤中,还包括判断本次写操作类型是否为原子 性写操作或事务性写操作,如是则将緩存区中的数据写回非易失性存 储器对应的目标区前,将该目标区内的数据写入所述备份区。
5、 根据权利要求4所述的数据更新方法,其特征在于智能卡执行原子性写操作后,再次执行写操作步骤中,还包括判 断本次写操作类型是否仍为原子性写操作,如否,将緩存区内的数据 写回非易失性存储器对应的目标区后,清除备份区的数据。
6、 根据权利要求4所述的数据更新方法,其特征在于所述智能卡设有事务处理程序,所述事务性写操作为事务处理程 序中所执行的写操作;每次事务性写操作过程中,修改緩存区内的数据后,智能卡判断 事务处理程序是否结束,如是则緩存区中的数据写回非易失性存储器 对应的目标区中,并清除备份区的全部数据。
7、 根据权利要求1至3任一项所述的数据更新方法,其特征在于在所述易失性存储器中设置一个写操作类型标记; 每次写操作结束后,智能卡根据本次写操作类型修改所述写操作 标记。
全文摘要
本发明提供一种智能卡的非易失性存储器数据更新方法,该智能卡具有非易失性存储器以及易失性存储器,易失性存储器中设置缓存区,并设有多种写操作类型,该方法包括将目标区内数据读入缓存区,并对缓存区的数据进行修改,记录写操作类型;再次执行写操作时,判断本次写操作类型是否与上次写操作类型相同,若相同,对缓存区的数据进行修改,记录写操作类型;否则,将缓存区的数据写回对应的目标区中,并将目标区内数据读入缓存区中,对缓存区中的数据进行修改,记录写操作类型;判断所有写操作是否结束,如是将缓存区中的数据写回相应的目标区中。本发明可减少多次执行写操作所消耗的时间,提高智能卡的运行效率。
文档编号G11C16/06GK101650972SQ200910040299
公开日2010年2月17日 申请日期2009年6月12日 优先权日2009年6月12日
发明者孙梦赛, 施伟周, 辉 汪 申请人:东信和平智能卡股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1