[发明专利]一种指令安装方法、装置、电子设备及存储介质有效
申请号: | 201910234150.1 | 申请日: | 2019-03-26 |
公开(公告)号: | CN109918132B | 公开(公告)日: | 2021-04-16 |
发明(设计)人: | 傅杰;敖琪;高翔 | 申请(专利权)人: | 龙芯中科技术股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/455;G06F8/41 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 指令 安装 方法 装置 电子设备 存储 介质 | ||
本发明实施例提供了一种指令安装方法和装置,所述方法包括:根据处理器的固定区域最大值和虚拟机中存放本地指令序列的缓冲区大小的比较结果,从内存地址空间中分配至少一个固定区域作为缓冲区,将虚拟机指令序列中的目标跳转指令编译为本地指令序列中的区域跳转指令,将本地指令序列安装到所述缓冲区的目标固定区域中,实现了以固定区域为单位对缓冲区的分配进行控制,进而可以控制本地指令序列的编译与安装,确保区域跳转指令的跳转指令地址和跳转目标地址位于同一个固定区域内,避免了生成区域跳转指令带来的安全性风险,实现自动编译生成区域跳转指令,继而提高了编译生成跳转指令的质量,优化了虚拟机上跳转指令的执行性能。
技术领域
本发明涉及计算机技术领域,特别是涉及一种指令安装方法、一种指令安装装置、一种电子设备以及一种可读存储介质。
背景技术
虚拟机(VM,Virtual Machine)主要通过软件(或者辅以少量硬件支持)的方法来虚拟出一台计算机,并且这台虚拟的计算机通常还支持一套对应的指令集,称为虚拟机指令集。虚拟机依托于本地的物理机(Host Machine),通过其执行引擎对给定的虚拟机指令序列(目标程序)在本地机器上模拟执行。
虚拟机的执行引擎可以由解释器来实现。由于解释器具有可移植性高、实现代价低和内存占用少等特点,大多数虚拟机的执行引擎都包含解释器。解释器以一条虚拟机指令为单位进行取指令、指令分派、取操作数和执行。但单纯的解释执行性能低下,因此虚拟机中引入动态编译系统来提高其性能。
编译器是动态编译系统的核心。编译器以一组连续的虚拟机指令序列(基本块、函数或方法)为单位整体编译成本地CPU指令序列,称为本地方法,然后由硬件直接执行编译后的本地方法。编译器由于消除了重复的取指令和指令分派等过程,同时又在编译时进行大量卓有成效的优化,因此其性能往往是解释器的10倍以上。由于编译器是在程序运行期间进行动态编译的,故又被称为即时编译器(JIT,Just-in-time Compiler)。动态编译是决定虚拟机性能的关键。
和传统C/C++等静态编译不同,动态编译行为发生在程序运行期间,会引入额外的编译开销。研究表明,程序运行的时间分布具有明显的局部性特征,即程序执行的大部分时间集中在小部分代码上。为了尽可能降低由动态编译产生的额外开销,现代虚拟机的动态编译系统通常依据“选择性编译”(selective compilation)理论进行设计和实现。其核心思想是:仅编译程序中频繁执行的部分(称为热点),未被编译部分则解释执行。
方法编译后将生成对应的本地方法。随后,本地方法将被拷贝到代码缓冲区中等待被执行。代码缓冲区是虚拟机中用于存放本地方法的专用存储区域。本地方法拷贝到代码缓冲区的过程又称为本地方法的安装。
经申请人研究发现,动态编译过程中,跳转指令的生成是影响虚拟机性能的重要因素。充分利用硬件支持的跳转指令是编译生成高效跳转指令的前提。通常,硬件直接支持的跳转指令可分为如下三类:
第一,PC相对跳转(PC-relative branch),该类指令的一般模式为:branch-opcode condition offset,其典型代表为MIPS(Microprocessor without interlockedpiped stages,无内部互锁流水级的微处理器)架构的beq/bne指令,以及x86的jcc类指令。这类指令的特点是当且仅当条件满足时才进行跳转,并且跳转的目标地址是相对于当前跳转指令(或当前跳转指令的下一条指令)的偏移。例如,在MIPS机器上,beq s0,s1,32表示当且仅当寄存器s0和寄存器s1的值相等时才进行跳转,跳转的目标地址为该条指令的下一条指令地址加上偏移量32。不同架构PC相对跳转的偏移量offset的编码范围差异较大。例如,x86机器支持8位、16位和32位三种长度的offset编码,而MIPS仅支持16位的offset编码长度。Offset的编码长度越短,PC相对跳转的范围也越窄,该指令的可用范围也越小。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术股份有限公司,未经龙芯中科技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910234150.1/2.html,转载请声明来源钻瓜专利网。