数据处理方法、装置及存储介质与流程

文档序号:17235667发布日期:2019-03-30 08:20阅读:109来源:国知局
数据处理方法、装置及存储介质与流程

本发明涉及智能卡技术领域,尤其涉及一种数据处理方法、装置及存储介质。



背景技术:

智能卡(smartcard)是内部嵌有微芯片的卡。智能卡卡内的集成电路包括:中央处理器(centralprocessingunit,cpu)、电可擦除可编程读写存储器(electricallyerasableprogrammablereadonlymemory,eeprom)、随机存储器(randomaccessmemory,ram)和固化在只读存储器(read-onlymemory,rom)中的卡内操作系统(chipoperatingsystem,cos)。智能卡可自行处理数据而不会干扰到主机cpu的工作,广泛应用在金融、交通、社会保障和物联网等领域。

很多的行业应用对智能卡cos的指令处理速度提出了要求,因此cos的设计在保证安全的同时要尽快的提升指令的处理速度。cos在处理指令时,有时需要把数据保存在eeprom上。芯片厂商设计的eeprom一次擦写操作时长基本在3毫秒至5毫秒左右,一次完整的交易通常需要多次进行eeprom的擦写操作。

cos在指令处理中启动一次eeprom擦写操作的过程如下:cpu将待保存的数据(源数据)复制到缓冲区,将缓冲区中的数据写入到eeprom;在将缓冲区中的数据写入到eeprom的过程中,循环判读eeprom的擦写标志位,等待eeprom擦写操作完成,该段时间为芯片厂商设计的eeprom一次擦写操作时长(3毫秒至5毫秒左右)。

在cpu等待eeprom擦写操作完成的时间段内,cpu不能处理其他cos指令,cpu利用率较低,影响cos指令处理速度。



技术实现要素:

本发明实施例提供一种数据处理方法、装置及存储介质,能够提高cpu利用率,提高cos指令处理速度。

一方面,本发明实施例提供了一种数据处理方法,方法包括:

当执行到擦写指令时,获得与擦写指令对应的待写入数据;

调用目标函数,将待写入数据写入到缓存区,以使待写入数据由缓存区写入到存储器中;阻塞目标函数以及记录目标函数的阻塞位置;

顺序执行其他指令,直到满足再次调用目标函数的条件;

再次调用目标函数,从阻塞位置继续执行目标函数,直至存储器完成待写入数据写入。

在本发明的一个实施例中,本发明实施例提供的数据处理方法还包括:

校验写入到存储器中数据的准确性。

在本发明的一个实施例中,满足再次调用目标函数的条件,包括:

其他指令执行完成。

在本发明的一个实施例中,满足再次调用目标函数的条件,包括:

执行到其他数据对应的擦写指令。

在本发明的一个实施例中,满足再次调用目标函数的条件,包括:

用于再次调用目标函数的计时器计时时间到。

另一方面,本发明实施例提供了一种数据处理装置,装置包括:

获得模块,用于当执行到擦写指令时,获得与擦写指令对应的待写入数据;

第一调用模块,用于调用目标函数,将待写入数据写入到缓存区,以使待写入数据由缓存区写入到存储器中;阻塞目标函数以及记录目标函数的阻塞位置;

执行模块,用于顺序执行其他指令,直到满足再次调用目标函数的条件;

第二调用模块,用于再次调用目标函数,从阻塞位置继续执行目标函数,直至存储器完成待写入数据写入。

在本发明的一个实施例中,本发明实施例提供的数据处理装置还包括:

校验模块,用于校验写入到存储器中数据的准确性。

在本发明的一个实施例中,满足再次调用目标函数的条件,包括:

其他指令执行完成。

在本发明的一个实施例中,满足再次调用目标函数的条件,包括:

执行到其他数据对应的擦写指令。

在本发明的一个实施例中,满足再次调用目标函数的条件,包括:

用于再次调用目标函数的计时器计时时间到。

再一方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现本发明实施例提供的数据处理方法。

本发明实施例的数据处理方法、装置及存储介质,cpu没有等待存储器擦写操作完成,而是在存储器擦写操作的时间段内,处理其他指令,提高了cpu利用率较低,并且提高了指令处理速度。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例提供的数据处理方法的流程示意图;

图2示出了本发明实施例提供的数据处理装置的结构示意图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

图1示出了本发明实施例提供的数据处理方法的流程示意图。数据处理方法可以包括:

s101:当执行到擦写指令时,获得与擦写指令对应的待写入数据。

s102:调用目标函数,将待写入数据写入到缓存区,以使待写入数据由缓存区写入到存储器中;阻塞目标函数以及记录目标函数的阻塞位置。

s103:顺序执行其他指令,直到满足再次调用目标函数的条件。

s104:再次调用目标函数,从阻塞位置继续执行目标函数,直至存储器完成待写入数据写入。

本发明实施例的数据处理方法,cpu没有循环判读存储器的擦写标志位,即没有等待存储器擦写操作完成再处理其他指令,而是在存储器擦写操作的时间段内,处理其他指令,提高了cpu利用率较低,并且提高了指令处理速度。

在本发明的一个实施例中,本发明实施例中所提到的存储器优选为智能卡中的eeprom,相应的,上述指令均为cos指令。

在本发明的一个实施例中,本发明实施例提供的数据处理方法还可以包括:校验写入到存储器中数据的准确性。

通过对写入到存储器中的数据进行准确性校验,能够保证写入到存储器中数据的准确性。

在本发明的一个实施例中,满足再次调用目标函数的条件,可以包括:其他指令执行完成。

在本发明的一个实施例中,满足再次调用目标函数的条件,可以包括:

执行到其他数据对应的擦写指令。

在本发明的一个实施例中,满足再次调用目标函数的条件,可以包括:

用于再次调用目标函数的计时器计时时间到。

在本发明的一个实施例中,考虑到芯片厂商设计的eeprom一次擦写操作时长为3毫秒至5毫秒左右,基于此,本发明实施例可以将计时器的计时时间设置为6毫秒,以保证eeprom一次擦写操作完成。

也就是说,当其他指令完成或执行到其他数据对应的擦写指令或用于再次调用目标函数的计时器计时时间到时,再次调用目标函数,从阻塞位置继续执行目标函数,直至存储器完成待写入数据写入。

下面通过具体实施例对本发明实施例提供的数据处理方法进行详细说明。

首先在cos中声明并分配一个字节全局变量gcrunline,该gcrunline变量用来保存每次调用目标函数后,在目标函数内执行到的位置(即目标函数的阻塞位置),初始值为0。

目标函数代码如下:

其中,上述代码中,eepromthread为目标函数名称;src为待写入数据的源地址;dest为待写入数据的目标地址;length为待写入数据的长度,yieldflag为目标函数的阻塞标志位,初始值为0;writedata(src,dest,length)用于将待写入数据写入缓存区;__line__为目标函数当前执行到的位置;waitutileepromcomplete()用于循环判读eeprom的擦写标志位,以eeprom确定完成待写入数据写入;memcmp(src,des,length)为比较从src开始长度为length的字节与从des开始长度为length的字节是否相同,即用于验证写入到eeprom中数据的准确性。switch为多分支选择,case为分支。

cos指令顺序执行,当执行到cos擦写指令时,初始化gcrunline和yieldflag,即将gcrunline和yieldflag均设置为0。

调用目标函数eepromthread,此时,gcrunline=0,执行case0:writedata(src,dest,length),将待写入数据写入缓存区;再执行yiledflag=1,将目标函数的阻塞标志位置为1;再执行do—while循环gcrunline=__line__,记录目标函数当前执行到的位置(目标函数的阻塞位置);判断yieldflag当前是否为1,当前yieldflag为1,则返回0,此时while条件为0,do—while循环结束,此时,函数返回值为0,跳出目标函数eepromthread。

cpu继续顺序执行其他cos指令,当其他cos指令完成或执行到其他数据对应的cos擦写指令或用于再次调用目标函数的计时器计时时间到时,将yieldflag设置为0,再次调用目标函数eepromthread,此时gcrunline=__line__,执行case__line__:;即目标函数eepromthread通过switch直接跳到上次阻塞位置继续执行,判断yieldflag当前是否为1,当前yieldflag为0,继续执行目标函数eepromthread内的后续操作;执行waitutileepromcomplete()循环判读eeprom的擦写标志位,以eeprom确定完成待写入数据写入;当eeprom完成待写入数据写入时,执行gcrunline=0,对字节全局变量gcrunline重新赋值为0,以便后续的擦写操作。然后执行if(memcmp(src,des,length)==false)以验证写入到eeprom中数据的准确性,若写入到eeprom中的数据准确,则返回1,否则,则返回0。

本发明实施例的数据处理方法,cpu没有循环判读存储器的擦写标志位,即没有等待存储器擦写操作完成再处理其他指令,而是在存储器擦写操作的时间段内,处理其他指令,提高了cpu利用率较低,并且提高了指令处理速度。

与上述的方法实施例相对应,本发明实施例还提供一种数据处理装置。如图2所示,图2示出了本发明实施例提供的数据处理装置的结构示意图。数据处理装置可以包括:

获得模块201,用于当执行到擦写指令时,获得与擦写指令对应的待写入数据。

第一调用模块202,用于调用目标函数,将待写入数据写入到缓存区,以使待写入数据由缓存区写入到存储器中;阻塞目标函数以及记录目标函数的阻塞位置。

执行模块203,用于顺序执行其他指令,直到满足再次调用目标函数的条件。

第二调用模块204,用于再次调用目标函数,从阻塞位置继续执行目标函数,直至存储器完成待写入数据写入。

在本发明的一个实施例中,本发明实施例提供的数据处理装置还可以包括:校验模块,用于校验写入到存储器中数据的准确性。

在本发明的一个实施例中,满足再次调用目标函数的条件,可以包括:

其他指令执行完成。

在本发明的一个实施例中,满足再次调用目标函数的条件,可以包括:

执行到其他数据对应的擦写指令。

在本发明的一个实施例中,满足再次调用目标函数的条件,可以包括:

用于再次调用目标函数的计时器计时时间到。

本发明实施例的数据处理装置,cpu没有循环判读存储器的擦写标志位,即没有等待存储器擦写操作完成再处理其他指令,而是在存储器擦写操作的时间段内,处理其他指令,提高了cpu利用率较低,并且提高了指令处理速度。

本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的数据处理方法。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1