[发明专利]虚拟机指令的优化字节码解释器无效
申请号: | 00802974.1 | 申请日: | 2000-09-13 |
公开(公告)号: | CN1347525A | 公开(公告)日: | 2002-05-01 |
发明(设计)人: | F·里卡迪 | 申请(专利权)人: | 皇家菲利浦电子有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 中国专利代理(香港)有限公司 | 代理人: | 吴立明,王忠忠 |
地址: | 荷兰艾*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 虚拟机 指令 优化 字节 解释 | ||
发明领域
本发明涉及被解释程序运行时间的优化。特别是涉及将被解释程序优化的方法,该方法是借助于用新的宏操作码将其自身重新动态配置的虚拟机而实现的。本发明适用于任何字节代码为基础的程序设计语言。
发明背景
作为编译程序以及与机器无关的可执行程序表示的中间语言,采用程序员可见的堆栈的以字节码为基础的语言是普遍的。这类语言对网络计算提供明显的优点。作者L.Piumanta和F.Riccardi的“用选择性排队将直接线程代码优化”的文章在其开始段落即对被解释程序的优化描述了一种技术,该文章发表在1998年6月17日在加拿大Montreal召开的程序语言设计和执行(PLDI)98会议“ACMSIGPLAN”文集的第291-300页。采用虚拟机(VM)解释程序应归功于VM解释器。VM是代表虚拟处理器体系结构的一种软件执行程序,在这种虚拟处理器上执行专为这种体系结构而编译的应用程序。该虚拟处理器/机的指令被称之为字节码。VM解释程序是代表字节码执行机制的VM的那部份。该字节码被说成是由VM解释程序所解释。字节码执行机制当今是以带开关事件块的无穷环路实现的。上述文章中所描述的技术适用于直接线程解释程序。线程代码解释程序按行执行字节码。每一字节码的翻译包含对下一字节码的引用。因此,以线程解释程序执行的字节码翻译不涉及无穷环路。尽管线程解释程序具有其性能优点,但太慢且要求太多的存储器而不适合多数嵌入系统在上述文章所提到的直接线程代码解释程序中,采用它们的执行地址表示VM字节码,所以每个字节码可直接跳到下一字节码的执行。在翻译操作之前,用该应用程序的每一字节码的地址将一表启动,使之当字节码翻译发生时能快速访问字节码执行的物理地址。该表允许从一字节码切换到另一字节码。直接线程解释程序虽然相当快,但它们包含代码扩展。将字节码改变成直接线程代码,其代码大小增加约150%,这是因为操作码被它们的执行码的地址所取代。一般而言,地址需要4字节,而操作码仅需1字节。因此,直接线程解释程序增大存储器消耗而不十分适合嵌入系统。
发明概述
本发明旨在提供一种方法以优化被解释的程序的运行时间,该方法十分适合于嵌入系统。例如,这种系统可以是卫星或电缆传输系统,它嵌入数字视频接收器内,通常叫做机顶盒。但是本发明同样适合于其操作系统是基于字节码的程序设计语言的任何产品。本发明也可以节省存储器和CPU资源,因而可改善系统的性能。
按照本发明,描述一种对基于字节码语言的虚拟机解释器内的被解释的程序进行优化的方法,其中虚拟机在动态上用新的宏字节码(或操作码)将自身重新配置以取代简单字节码序列,同时为将字节码翻译成它们的执行代码虚拟机解释器被编码成线程代码(threadedcode)解释器。按照本发明,线程代码解释器被编码成间接线程代码解释器,这应归功于参考表,这种参考表含有字节码的执行地址使之在一字节码翻译期间可提取下一字节码的地址而达到能跳到下一字节码的目的。
附图简述
参照下面附图对本发明及其可选择性地用来实现本发明的其他特点可一目了然。
图1是方块图,显示按本发明的一种方法的特点。
图2是方块图,显示按本发明优选实施方案的一种方法的特点。
图3是原理图,显示按本发明的一种接收器的例子。
发明详述
现在对本发明给以详细解释,以Java语言为例,显示适合于任何基于字节码语言的新颖(novel)机运行时间优化策略。
通常适时(JIT)编译程序所采用的方法是整个舍弃Java虚拟机(VM)解释程序,并在执行之前(所以命名为JIT)将应用程序的字节码翻译成本机代码。这种方法包括对原应用程序语义学的理解和将它重新表示为更方便的本机形式。尽管这种方法可以是一种获取其性能的有效途径,但一方面它要以大的存储消耗为代价,因为基于字节码的语言较之于本机代码更为紧凑;另一方面,必要消耗大量的CPU(中央处理单元)资源,因为在目标机器上重新变换Java字节码的任务并非轻而易举。
本发明同时还基于某类动态代码生成,但是它的目的不是将应用程序的Java字节码翻译成本机代码,而是将Java VM动态适配到应用程序特定的字节码序列的执行。因此原应用程序Java字节码被保留,而VM则用新颖字节码或改善其执行效率的操作码(opcodes)动态上加以充实。
这种方法有几种优点:
它不增大可执行代码的大小:其应用程序变成节省存储器的Java字节编码表示,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于皇家菲利浦电子有限公司,未经皇家菲利浦电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/00802974.1/2.html,转载请声明来源钻瓜专利网。