CN101295239A - Java卡虚拟机的指令执行方法 - Google Patents
Java卡虚拟机的指令执行方法 Download PDFInfo
- Publication number
- CN101295239A CN101295239A CNA2007100278568A CN200710027856A CN101295239A CN 101295239 A CN101295239 A CN 101295239A CN A2007100278568 A CNA2007100278568 A CN A2007100278568A CN 200710027856 A CN200710027856 A CN 200710027856A CN 101295239 A CN101295239 A CN 101295239A
- Authority
- CN
- China
- Prior art keywords
- instruction
- virtual machine
- java card
- card virtual
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及Java卡虚拟机的指令执行方法,其包括以下步骤:步骤一,处理器执行指令集中需要被执行的当前指令,同时通过处理器通知加速器对当前指令进行解析;步骤二,加速器解析当前指令的属性,得到下一指令的字节码地址;步骤三,将下一指令的地址码地址通知处理器,并在执行完当前指令后由处理器跳转至此下一指令。本发明所提供的Java卡虚拟机的指令执行方法通过加速器对当前指令进行解析,得到下一指令的字节码地址,使得处理器在执行完当前指令后能够立即直接跳转到下一需要执行的指令,具有高效率、高稳定性的优点。
Description
技术领域
本发明涉及智能卡领域,尤其涉及一种Java卡虚拟机的指令执行方法。
背景技术
智能卡已经被广泛应用在手机、音乐播放器、数字电视等各类产品中,智能卡可以实现身份识别、数据的存储、信息处理等多种功能。Java卡是一项新兴的智能卡,是一个开放的多应用平台,通过Java卡可以实现下载各种应用程序。
由于Java卡本身具有Java语言的特点,因此其通过Java卡虚拟机对指令进行解释执行。Java卡虚拟机并不是一种物理结构,而是一种解释用于硬件平台的字节码的独立的操作环境,其中对于字节码的解释是通过选择存储于存储器或CPU中的原始机器语言指令而得以实现的。对于Java卡而言,其在工作过程中的指令处理速度将直接影响到Java卡的运行速度。
图1中揭示了一种现有的Java卡虚拟机的指令执行方法,图1中所示的指令寄存器11中存储由四条指令P1、P2、P3、P4组成的指令集,CPU12通过顺序执行的方法依次解释(即按照P1、P2、P3、P4的顺序)、执行每条指令,然而,这种指令的执行方式非常浪费时间,例如,如果执行完指令P1后,CPU12需要执行下一条指令P4,那么CPU12仍然需要解释指令P2、P3直至P4,即,采用遍历的方式对指令进行解释,直至找到需要执行的指令,这种方法会很大的影响Java卡的运行速度,效率非常低。另一方面,如果某一条指令在执行过程中出现了异常或者错误,那么CPU12无法继续执行下一条指令,将造成死机,导致Java卡的稳定性不高。
针对现有技术的上述缺陷,本发明就是要提供一种高效率、高稳定性的Java卡虚拟机的指令执行方法。
发明内容
本发明的目的是提供一种高效率、高稳定性的Java卡虚拟机的指令执行方法。
为实现上述发明目的,本发明提供的Java卡虚拟机的指令执行方法包括以下步骤:
步骤一,处理器执行指令集中需要被执行的当前指令,同时通过处理器通知加速器对当前指令进行解析;
步骤二,加速器解析当前指令的属性,得到下一指令的字节码地址;
步骤三,将下一指令的地址码地址通知处理器,并在执行完当前指令后由处理器跳转至此下一指令。
本发明所提供的Java卡虚拟机的指令执行方法通过加速器对当前指令进行解析,得到下一指令的字节码地址,使得处理器在执行完当前指令后能够立即直接跳转到下一需要执行的指令,避免了指令顺序解析、执行所带来的时间浪费,具有高效率的优点;同时在当前指令出现异常或错误时,处理器可以提示异常并继续执行下一指令,避免了死机现象,使得Java卡的稳定性得到提高。
为了使得本发明Java卡虚拟机的指令执行方法更加优化,还可以在执行完所述步骤一之后,执行一个判断所有指令是否执行完毕的判断步骤,如果判断出所有指令均执行完毕,则结束程序;如果指令未执行完毕,则执行所述步骤二。
详细的内容将在具体实施例中作更清楚的介绍。
附图说明
图1是现有的Java卡虚拟机的指令执行方法示意图;
图2是本发明Java卡虚拟机的指令执行方法示意图;
图3是本发明Java卡虚拟机的指令执行方法的第一实施例的流程图;
图4是本发明Java卡虚拟机的指令执行方法的另一实施例的流程图;
以下结合实施例及其附图作进一步的详细说明。
具体实施方式
参见图2中所示,图2中揭示了本发明的Java卡虚拟机的指令执行方法,图2中所示的Java卡虚拟机包括存储指令集的指令寄存器21、执行指令的CPU22以及解释指令的加速器23。指令寄存器21中存储由四条指令P1、P2、P3、P4组成的指令集,CPU22在执行某一指令的同时,将需要被执行的当前指令送入加速器23中进行解析,加速器23解析出当前指令的属性后,可以得到下一指令的字节码地址,并将此地址通知CPU22,CPU22执行完当前指令后,将直接执行下一指令,而不是顺序解析、执行指令集中的指令。
图3示出了本发明Java卡虚拟机的指令执行方法的较佳实施例的流程图,其包括以下几个步骤:
步骤31,CPU22执行指令集中需要被执行的当前指令,同时通过CPU22通知加速器23对当前指令进行解析;
步骤32,加速器23通过解析当前指令的属性,得到下一指令的字节码地址;
步骤33,将下一指令的地址码地址通知CPU22,并在执行完当前指令后由CPU22跳转至此下一指令;
在CPU22直接跳转到下一指令后,重新执行步骤一,执行此指令。如果下一指令为结束指令,即所有的指令已经执行完毕,那么***将结束此次指令的执行。当然,也可以在上述较佳实施例的基础上,增加一个判断程序是否结束的步骤,如图4中所示,在步骤31与步骤32之间增加一个判断步骤34,判断所有指令是否执行完毕,如果所有步骤均执行完毕,则解释程序;如果未执行完毕,则继续执行步骤32。
显然,本发明所述的Java卡虚拟机的指令执行方法通过加速器23对当前指令进行解析,得到下一指令的字节码地址,使得CPU22在执行完当前指令后能够立即直接跳转到下一需要执行的指令,避免了指令顺序解析、执行所带来的时间浪费,具有高效率的优点;同时在当前指令出现异常或错误时,CPU22可以提示异常并继续执行下一指令,避免了死机现象,使得Java卡的稳定性提高。
当然本发明并不限于上述实施例,本领域内的一般技术人员可以根据上述描述作一些等效的变化,例如,指令集并不局限于存储在指令寄存器21中,还可以是其它形式的指令存储器;CPU22也可以采取MCU(微控制器)等形式的处理器。诸如此类的等效变换都应该包含在权利要求限定的范围内。
Claims (5)
1、Java卡虚拟机的指令执行方法,所述Java卡虚拟机包括存储指令集的指令存储器,执行指令的CPU以及解析指令的加速器,所述Java卡虚拟机的指令执行方法包括以下步骤:
步骤一,处理器执行指令集中需要被执行的当前指令,同时通过处理器通知加速器对当前指令进行解析;
步骤二,加速器解析当前指令的属性,得到下一指令的字节码地址;
步骤三,将下一指令的地址码地址通知处理器,并在执行完当前指令后由处理器跳转至此下一指令。
2、根据权利要求1所述的Java卡虚拟机的指令执行方法,其特征在于:
在执行完所述步骤一之后,执行一个判断所有指令是否执行完毕的判断步骤,如果判断出所有指令均执行完毕,则结束程序;如果指令未执行完毕,则执行所述步骤二。
3、根据权利要求1所述的Java卡虚拟机的指令执行方法,其特征在于:
所述指令存储器为指令寄存器。
4、根据权利要求1所述的Java卡虚拟机的指令执行方法,其特征在于:
所述处理器为CPU。
5、根据权利要求1所述的Java卡虚拟机的指令执行方法,其特征在于:
所述处理器为MCU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100278568A CN101295239A (zh) | 2007-04-26 | 2007-04-26 | Java卡虚拟机的指令执行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100278568A CN101295239A (zh) | 2007-04-26 | 2007-04-26 | Java卡虚拟机的指令执行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101295239A true CN101295239A (zh) | 2008-10-29 |
Family
ID=40065543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100278568A Pending CN101295239A (zh) | 2007-04-26 | 2007-04-26 | Java卡虚拟机的指令执行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101295239A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102903001A (zh) * | 2012-09-29 | 2013-01-30 | 上海复旦微电子集团股份有限公司 | 指令的处理方法和智能卡 |
CN107179935A (zh) * | 2016-03-11 | 2017-09-19 | 华为技术有限公司 | 一种指令执行方法及虚拟机 |
CN110704108A (zh) * | 2019-08-30 | 2020-01-17 | 阿里巴巴集团控股有限公司 | 解释执行字节码指令流的方法及装置 |
US10802854B2 (en) | 2019-08-30 | 2020-10-13 | Alibaba Group Holding Limited | Method and apparatus for interpreting bytecode instruction stream |
CN112256331A (zh) * | 2020-12-22 | 2021-01-22 | 鹏城实验室 | 虚拟机指令解析加速方法、装置和计算机存储介质 |
-
2007
- 2007-04-26 CN CNA2007100278568A patent/CN101295239A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102903001A (zh) * | 2012-09-29 | 2013-01-30 | 上海复旦微电子集团股份有限公司 | 指令的处理方法和智能卡 |
CN102903001B (zh) * | 2012-09-29 | 2015-09-30 | 上海复旦微电子集团股份有限公司 | 指令的处理方法和智能卡 |
CN107179935A (zh) * | 2016-03-11 | 2017-09-19 | 华为技术有限公司 | 一种指令执行方法及虚拟机 |
CN107179935B (zh) * | 2016-03-11 | 2021-01-29 | 华为技术有限公司 | 一种指令执行方法及虚拟机 |
CN110704108A (zh) * | 2019-08-30 | 2020-01-17 | 阿里巴巴集团控股有限公司 | 解释执行字节码指令流的方法及装置 |
US10802854B2 (en) | 2019-08-30 | 2020-10-13 | Alibaba Group Holding Limited | Method and apparatus for interpreting bytecode instruction stream |
TWI743698B (zh) * | 2019-08-30 | 2021-10-21 | 開曼群島商創新先進技術有限公司 | 解譯執行位元組碼指令流的方法及裝置 |
CN112256331A (zh) * | 2020-12-22 | 2021-01-22 | 鹏城实验室 | 虚拟机指令解析加速方法、装置和计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI730654B (zh) | 部署和執行智能合約的方法及裝置 | |
CN101398845B (zh) | 一种Web应用中的多语言绑定方法及*** | |
CN103020176A (zh) | Xml解析中数据块划分方法和xml解析方法 | |
RU2015151114A (ru) | Устройство и способ для ускорения операций сжатия и распаковки | |
CN101295239A (zh) | Java卡虚拟机的指令执行方法 | |
KR101407629B1 (ko) | 자바 변환 가속 장치 및 방법 | |
CN104182234A (zh) | 一种业务处理方法和业务*** | |
CN103188267B (zh) | 一种基于dfa的协议解析方法 | |
CN101884025A (zh) | 用于使过程返回序列加速的方法和*** | |
CN106020920A (zh) | 一种jcvm解释器的预处理方法及*** | |
CN104049947A (zh) | 基于动态重命名的矢量寄存器堆的寄存器重新配置 | |
US7228527B1 (en) | Method and system for structuring a procedure | |
CN112487092B (zh) | 一种基于区块链的智能合约调用方法及装置 | |
CN117785723A (zh) | 动态接口参数关联方法、装置及电子设备 | |
CN105022667A (zh) | 一种基于嵌入式浏览器css引擎并行化方法 | |
CN104503733A (zh) | 一种状态机的合并方法和装置 | |
CN106293862B (zh) | 一种可扩展标记语言xml数据的解析方法和装置 | |
CN109324838B (zh) | 单片机程序的执行方法、执行装置及终端 | |
CN109240701B (zh) | 一种面向谓词执行高性能dsp的指令依赖关系分析方法 | |
CN107566316A (zh) | 一种报文解析方法、装置及网络处理器 | |
CN105302557A (zh) | 线程建立及处理的方法及装置 | |
CN102236576A (zh) | 一种支持混合模式执行的Java虚拟机执行引擎 | |
JPS62226231A (ja) | プロセツサ | |
CN102799434B (zh) | 一种利用软件保护装置实现自动代码移植的方法 | |
CN102724591B (zh) | 一种机顶盒的页面显示方法及机顶盒设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20081029 |