一种应用于智能卡虚拟机运行的控制装置及智能卡虚拟机,所述控制装置包括:取指控制单元、取指缓冲单元和预译码单元,所述取指控制单元输出各种控制信号控制取指缓冲单元进行读、写操作,所述取指缓冲单元的主要功能是实现字节码的缓冲,为预译码单元提供字节码,所述预译码单元完成从原指令集到新指令集的预译码功能。通过所述控制装置可以将智能卡虚拟机的基于堆栈操作的原指令转换为基于寄存器操作的新指令,所述控制装置可以有效提高智能卡指令执行速度,提高系统的处理性能,所述控制装置的可移植性、通用性更强。
【技术实现步骤摘要】
【专利摘要】一种应用于智能卡虚拟机运行的控制装置及智能卡虚拟机,所述控制装置包括:取指控制单元、取指缓冲单元和预译码单元,所述取指控制单元输出各种控制信号控制取指缓冲单元进行读、写操作,所述取指缓冲单元的主要功能是实现字节码的缓冲,为预译码单元提供字节码,所述预译码单元完成从原指令集到新指令集的预译码功能。通过所述控制装置可以将智能卡虚拟机的基于堆栈操作的原指令转换为基于寄存器操作的新指令,所述控制装置可以有效提高智能卡指令执行速度,提高系统的处理性能,所述控制装置的可移植性、通用性更强。【专利说明】应用于智能卡虚拟机运行的控制装置及智能卡虚拟机
本专利技术涉及智能卡领域,尤其涉及一种应用与智能卡虚拟机运行的控制装置及智 能卡虚拟机。
技术介绍
Java技术凭借其平台无关性、灵活性以及安全性等优势被广泛的应用在嵌入式系 统中,同时智能卡也已经被广泛应用在手机、音乐播放器、数字电视等各种产品中,Java卡 是在智能卡硬件系统基础上,在卡内通过软件构建的一个支持Java程序下载、安装和运行 的软硬件系统,Java卡作为Java技术与智能卡技术融合的产物,已被广泛的应用在智能卡 领域。 Java卡本身具有Java语言的特点,其通过Java卡虚拟机(JCVM,Java Card Virtual Machine)对指令进行解释执行,Java卡虚拟机为智能卡带来了 Java语言的多 种显而易见的优点,但同时,Java卡虚拟机也存在一个阻碍Java卡持续发展的缺点,由于 Java卡虚拟机并不是一种物理结构,而是一种解释用于硬件平台的字节码的独立的操作环 境,软件实现的Java虚拟机存在指令处理速度慢、效率低等问题,直接影响Java卡的运行 速度。 Java卡虚拟机在执行指令处理时是基于堆栈的处理模式,即在指令处理的时候, 在没有特别指定参数的情况下默认执行栈顶的操作数,而操作数并不总是在栈顶,因此会 带来很多额外的操作,例如,在执行load、push等操作时,需要先将存放在局部变量区的操 作数置于操作数栈顶,在执行store等操作时,需要将在操作数栈顶的操作数再写回局部 变量区等。根据统计,这些l〇ad、push和store等的操作在程序执行中频率相当高,使得基 于堆栈处理模式的java卡虚拟机的指令处理效率非常低。 目前解决基于堆栈处理模式的java卡虚拟机的指令处理效率低的问题的方法是 利用指令折叠原理对java程序进行优化。目前常用的方法是通过硬件实施指令折叠,即当 程序在java卡上运行的时候,判断一组指令是否可以折叠,若可以折叠,则通过相应的硬 件实现对于这组指令的后续处理,例如对所述指令组中的参数进行分离、处理以及存储等 操作,最后生成一条等价的本地指令去让本地CPU执行。 但现有技术中采用硬件实施指令折叠的方式也存在很多问题,采用硬件实施指令 折叠的方式增加了硬件的复杂度,硬件上需要支持指令的预取功能、指令是否可以折叠的 判断功能、以及从执行中分离参数等功能,硬件设计的复杂度会提升,从而带来硬件时钟周 期、硬件面积和系统功耗增加的问题。而且所述硬件实施指令折叠的方式只能针对当前CPU 具体型号进行相应的处理,即对应不同的CPU需要定制不同的硬件指令折叠方案,所述硬 件指令折叠方案大多是成套的方案,都是高度定制的,指令折叠后只能继续按照方案既定 方式解释执行,无法轻易将指令折叠实施部分进行通用性的移植,其通用性受到很大限制。
技术实现思路
本专利技术解决的问题是基于堆栈处理模式的java卡虚拟机的指令处理效率低的问 题。 为解决上述问题,本专利技术提供一种应用于智能卡虚拟机运行的控制装置,所述装 置包括:包括取指控制单元、取指缓冲单元和预译码单元,其中 : 所述取指控制单元适于输出取指指针至程序存储器,还适于输出读指针、写指针 和写使能信号至所述取指缓冲单元;所述程序存储器包括复数个指令存储区,组成第一指 令的字节码分配存储于至少一个所述指令存储区,所述第一指令为基于堆栈操作的指令集 中的指令; 所述取指缓冲单元包括复数个缓冲存储区;所述取指缓冲单元适于在所述写使能 信号有效时将所述取指指针指向的指令存储区中的字节码写入所述写指针指向的缓冲存 储区,还适于读取所述读指针指向的缓冲存储区中的字节码至所述预译码单元; 所述预译码单元包括指令转换单元,所述指令转换单元适于在已读取的第一指令 满足第一条件时将所述已读取的第一指令转换为第二指令,所述第二指令为基于寄存器操 作的指令集中的指令;所述已读取的第一指令为由所述取指缓冲单元读取的字节码组成的 第一指令,所述第一条件包括已读取的第一指令为预定类型组合的指令组。 可选的,所述第一指令包括第一操作码和第一操作数;所述预译码单元还包括参 数分离单元,所述参数分离单元适于对所述第一指令中的第一操作数进行处理以获得匹配 于第二指令的第二操作数。所述应用于智能卡虚拟机运行控制的装置还包括复数个寄存 器,所述寄存器适于存储所述第二操作数。 可选的,所述装置还包括译码执行单元,所述预译码单元还适于在指令转换完成 后输出有效的预译码完成信号至所述译码执行单元;所述译码执行单元适于在接收到所述 有效的预译码完成信号后读取所述预译码单元转换得到的第二指令,以执行译码操作 可选的,所述装置还包括译码执行单元,所述预译码单元还适于在指令转换和第 二操作数存储完成后输出有效的预译码完成信号至所述译码执行单元;所述译码执行单元 适于在接收到所述有效的预译码完成信号后读取所述预译码单元转换得到的第二指令和 存储于对应的寄存器中的第二操作数,以执行译码操作。 可选的,所述预译码单元还包括: 判断单元,适于判断所述已读取的第一指令是否可能与后续的第一指令构成预定 类型组合的指令组;所述第一条件还包括所述判断单元的判断结果为否; 字节读取信号输出单元,适于输出读字节数信号和转换字节数信号,所述读字节 数信号携带的信息为每次读取的字节数,所述转换字节数信号携带的信息为本次被转换的 第一指令包含的字节码的总数; 读指针控制信号输出单元,适于在指令转换后输出追踪信号和回退信号,在本次 被转换的第一指令包含的字节码的总数与已读取的第一指令包含的字节码的总数相等时 将所述追踪信号设置为有效,否则将所述回退信号设置为有效; 所述指令转换单元还适于在已读取的第一指令不为预定类型组合的指令组时将 部分已读取的第一指令转换为第二指令;所述部分已读取的第一指令为预定类型组合的指 令组。 可选的,所述取指控制单元包括: 取指指针控制单元,适于程序指针确定所述取指指针的初始值,还适于在读取所 述取指指针指向的指令存储区中的子节码后将所述取指指针的值加1 ; 写指针控制单元,适于在写入所述写指针指向的缓冲存储区后将所述写指针的值 加1 ; 读指针控制单元,适于在读取所述读指针指向的缓冲存储区后将所述读指针的值 加1,还适于在所述追踪信号有效时将参照读指针的值设置为所述读指针的值,还适于在所 述回退信号有效时根据读字节数信号和转换字节数信号重置所述读指针和参照读指针的 值; 写使能信号输出单元,适于本文档来自技高网...
【技术保护点】
一种应用于智能卡虚拟机运行的控制装置,其特征在于,包括取指控制单元、取指缓冲单元和预译码单元,其中:所述取指控制单元适于输出取指指针至程序存储器,还适于输出读指针、写指针和写使能信号至所述取指缓冲单元;所述程序存储器包括复数个指令存储区,组成第一指令的字节码分配存储于至少一个所述指令存储区,所述第一指令为基于堆栈操作的指令集中的指令;所述取指缓冲单元包括复数个缓冲存储区;所述取指缓冲单元适于在所述写使能信号有效时将所述取指指针指向的指令存储区中的字节码写入所述写指针指向的缓冲存储区,还适于读取所述读指针指向的缓冲存储区中的字节码至所述预译码单元;所述预译码单元包括指令转换单元,所述指令转换单元适于在已读取的第一指令满足第一条件时将所述已读取的第一指令转换为第二指令,所述第二指令为基于寄存器操作的指令集中的指令;所述已读取的第一指令为由所述取指缓冲单元读取的字节码组成的第一指令,所述第一条件包括已读取的第一指令为预定类型组合的指令组。
【技术特征摘要】
【专利技术属性】
技术研发人员:孙慧盈,陆继承,张志敏,李清,俞军,
申请(专利权)人:上海复旦微电子集团股份有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。