[发明专利]一种Java Card虚拟机执行引擎及执行方法在审
申请号: | 202011128496.2 | 申请日: | 2020-10-21 |
公开(公告)号: | CN112306632A | 公开(公告)日: | 2021-02-02 |
发明(设计)人: | 张麒 | 申请(专利权)人: | 成都融微软件服务有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/448 |
代理公司: | 北京科石知识产权代理有限公司 11595 | 代理人: | 徐红岗 |
地址: | 610041 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java card 虚拟机 执行 引擎 方法 | ||
本公开提供了一种Java Card虚拟机执行引擎及执行方法,执行引擎包括:字节码指令模板,被配置为与字节码在Java Card虚拟机规范中的值相对应的汇编指令集合;字节码解释器,被配置为从运行环境中获取待执行字节码指令,并通过查询所述字节码指令模板,将待执行字节码指令解释为对应的汇编指令并执行。该执行引擎和执行方法具有执行效率高,可移植性和扩展性良好等优点,特别适合安全芯片等嵌入式系统。
技术领域
本发明涉及嵌入式计算机技术领域,特别涉及一种Java Card虚拟机执行引擎及执行方法。
背景技术
Java Card虚拟机系统是安全元件(Security Element)的开放应用平台,它能够使得安全模块,譬如智能卡或者其他的防篡改安全芯片,支持Java技术的各类应用,它提供了在单个资源受限的设备上存储和更新多个应用程序的安全且共通的执行平台。在PC机上由JAVA语言编写的Applet的函数,通过编译器编译成字节码,然后字节码下载到安全元件中,在需要执行时由执行引擎执行。
在当前的国内环境中,Java Card技术的供应商相对较少,Java Card技术核心之一的Java Card虚拟机执行引擎的实现方式,更多的是采用在安全芯片和智能卡原有的Native COS上直接对字节码进行解释执行或采用类似的方式,此类方式实现的Java Card虚拟机执行引擎执行效率较低,可移植和可扩展性较差。
发明内容
本公开提供一种Java Card虚拟机执行引擎,提升其解释执行的效率及其可移植性和可扩展性,降低与Java Card虚拟机系统中其他组成部份的功能重合度和耦合度,尤其适用于各类安全芯片和密码卡等。
本公开提供的Java Card虚拟机执行引擎,包括:
字节码指令模板,被配置为与字节码在Java Card虚拟机规范中的值相对应的汇编指令集合;
字节码解释器,被配置为从运行环境中获取待执行字节码指令,并通过查询所述字节码指令模板,将待执行字节码指令解释为对应的汇编指令并执行,以及将执行结果返回到运行环境。
进一步地,所述字节码指令模板以列表方式预置在安全元件的非失易性存储器中,当字节码指令需要解释执行时,通过查表直接使用。
进一步地,所述执行引擎在获取待执行字节码指令的同时获取栈帧地址及大小,然后根据所述栈帧地址和大小,进行数据的操作,而不再对硬件内存进行分配。
进一步地,所述执行引擎对来自多个不同Applet的字节码指令进行分时运行。
进一步地,对于分时运行的多个不同Applet的字节码指令,所述执行引擎根据获取的栈帧地址,动态切换需要操作的虚拟机栈帧,而对字节码指令的解释执行则不考虑其来自哪个Applet。
进一步地,所述执行引擎具有多个所述字节码指令模板,用于支持底层不同种类的硬件。
进一步地,所述执行引擎支持不同种类的解释性语言。
本公开还提供了一种应用以上执行引擎的Java Card虚拟机执行方法,包括以下步骤:
从运行环境中获取待执行字节码指令及相关信息,包括操作数、栈帧地址及大小;
查询所述字节码指令模板,将所述待执行字节码指令解释为对应的汇编指令并执行;
将执行结果返回到运行时环境。
进一步地,执行过程中根据从运行环境中获取的栈帧地址和大小,直接对栈帧内的数据和执行过程中产生的数据进行操作,而不再对硬件内存进行分配。
进一步地,其中所述查询所述字节码指令模板,将所述待执行字节码指令解释为对应的汇编指令并执行的步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都融微软件服务有限公司,未经成都融微软件服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011128496.2/2.html,转载请声明来源钻瓜专利网。