[发明专利]应用于智能卡虚拟机运行的控制装置及智能卡虚拟机有效
申请号: | 201310345328.2 | 申请日: | 2013-08-08 |
公开(公告)号: | CN104346132B | 公开(公告)日: | 2017-06-09 |
发明(设计)人: | 孙慧盈;陆继承;张志敏;李清;俞军 | 申请(专利权)人: | 上海复旦微电子集团股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/45;G06F9/455 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 骆苏华 |
地址: | 200433 上海市杨浦区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用于 智能卡 虚拟机 运行 控制 装置 | ||
技术领域
本发明涉及智能卡领域,尤其涉及一种应用与智能卡虚拟机运行的控制装置及智能卡虚拟机。
背景技术
Java技术凭借其平台无关性、灵活性以及安全性等优势被广泛的应用在嵌入式系统中,同时智能卡也已经被广泛应用在手机、音乐播放器、数字电视等各种产品中,Java卡是在智能卡硬件系统基础上,在卡内通过软件构建的一个支持Java程序下载、安装和运行的软硬件系统,Java卡作为Java技术与智能卡技术融合的产物,已被广泛的应用在智能卡领域。
Java卡本身具有Java语言的特点,其通过Java卡虚拟机(JCVM,Java Card Virtual Machine)对指令进行解释执行,Java卡虚拟机为智能卡带来了Java语言的多种显而易见的优点,但同时,Java卡虚拟机也存在一个阻碍Java卡持续发展的缺点,由于Java卡虚拟机并不是一种物理结构,而是一种解释用于硬件平台的字节码的独立的操作环境,软件实现的Java虚拟机存在指令处理速度慢、效率低等问题,直接影响Java卡的运行速度。
Java卡虚拟机在执行指令处理时是基于堆栈的处理模式,即在指令处理的时候,在没有特别指定参数的情况下默认执行栈顶的操作数,而操作数并不总是在栈顶,因此会带来很多额外的操作,例如,在执行load、push等操作时,需要先将存放在局部变量区的操作数置于操作数栈顶,在执行store等操作时,需要将在操作数栈顶的操作数再写回局部变量区等。根据统计,这些load、push和store等的操作在程序执行中频率相当高,使得基于堆栈处理模式的java卡虚拟机的指令处理效率非常低。
目前解决基于堆栈处理模式的java卡虚拟机的指令处理效率低的问题的方法是利用指令折叠原理对java程序进行优化。目前常用的方法是通过硬件实施指令折叠,即当程序在java卡上运行的时候,判断一组指令是否可以折叠,若可以折叠,则通过相应的硬件实现对于这组指令的后续处理,例如对所述指令组中的参数进行分离、处理以及存储等操作,最后生成一条等价的本地指令去让本地CPU执行。
但现有技术中采用硬件实施指令折叠的方式也存在很多问题,采用硬件实施指令折叠的方式增加了硬件的复杂度,硬件上需要支持指令的预取功能、指令是否可以折叠的判断功能、以及从执行中分离参数等功能,硬件设计的复杂度会提升,从而带来硬件时钟周期、硬件面积和系统功耗增加的问题。而且所述硬件实施指令折叠的方式只能针对当前CPU具体型号进行相应的处理,即对应不同的CPU需要定制不同的硬件指令折叠方案,所述硬件指令折叠方案大多是成套的方案,都是高度定制的,指令折叠后只能继续按照方案既定方式解释执行,无法轻易将指令折叠实施部分进行通用性的移植,其通用性受到很大限制。
发明内容
本发明解决的问题是基于堆栈处理模式的java卡虚拟机的指令处理效率低的问题。
为解决上述问题,本发明提供一种应用于智能卡虚拟机运行的控制装置,所述装置包括:包括取指控制单元、取指缓冲单元和预译码单元,其中:
所述取指控制单元适于输出取指指针至程序存储器,还适于输出读指针、写指针和写使能信号至所述取指缓冲单元;所述程序存储器包括复数个指令存储区,组成第一指令的字节码分配存储于至少一个所述指令存储区,所述第一指令为基于堆栈操作的指令集中的指令;
所述取指缓冲单元包括复数个缓冲存储区;所述取指缓冲单元适于在所述写使能信号有效时将所述取指指针指向的指令存储区中的字节码写入所述写指针指向的缓冲存储区,还适于读取所述读指针指向的缓冲存储区中的字节码至所述预译码单元;
所述预译码单元包括指令转换单元,所述指令转换单元适于在已读取的第一指令满足第一条件时将所述已读取的第一指令转换为第二指令,所述第二指令为基于寄存器操作的指令集中的指令;所述已读取的第一指令为由所述取指缓冲单元读取的字节码组成的第一指令,所述第一条件包括已读取的第一指令为预定类型组合的指令组。
可选的,所述第一指令包括第一操作码和第一操作数;所述预译码单元还包括参数分离单元,所述参数分离单元适于对所述第一指令中的第一操作数进行处理以获得匹配于第二指令的第二操作数。所述应用于智能卡虚拟机运行控制的装置还包括复数个寄存器,所述寄存器适于存储所述第二操作数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海复旦微电子集团股份有限公司,未经上海复旦微电子集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310345328.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种跨平台转换应用代码的方法及装置
- 下一篇:一种信息处理方法及电子设备