[发明专利]一种基于MIPS的JAVA虚拟机硬件无关化平台及其无关化改进方法在审
申请号: | 201310723797.3 | 申请日: | 2013-12-25 |
公开(公告)号: | CN103777997A | 公开(公告)日: | 2014-05-07 |
发明(设计)人: | 王定健;陈鲁;符兴斌;李锁在;刘向军;黄明;李亮;胡坚升;李贺;徐志亮;刘国强;韩鹏;郑永飞;孙树刚;胡春玲;鲁振;王伟;刘涛;张志刚;孟璐 | 申请(专利权)人: | 中软信息系统工程有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 102299 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 mips java 虚拟机 硬件 无关 平台 及其 改进 方法 | ||
技术领域
本发明涉及一种基于MIPS的JAVA虚拟机硬件无关化平台及其无关化改进方法。
背景技术
Java源程序经过编译器编译后生成由字节码组成的类文件class,执行时首先由类装载器装入来自类文件的字节码,经过检验器安全验证后,由Java虚拟机读取字节码,转换为特定的平台指令,并在相应的CPU中运行。
Java虚拟机是Java程序运行的心脏,Java的许多优异特性都来源于Java虚拟机的概念和实现,Java虚拟机是一种建立在实际处理器基础上的抽象的计算机,Java虚拟机运行的是从Class类文件中读入的字节码,所以Java虚拟机也可以看成是以Java字节码为指令集的软件CPU。
在Java平台的结构中,Java虚拟机处在核心的位置,它的下方是移植接口,移植接口有2部分,其中依赖于平台的部分为适配器,Java虚拟机通过移植接口在具体的平台和操作系统上实现。
在最初的Java代码是解释执行的,当虚拟机发现某个方法或代码块运行特别频繁,就会把这些代码认定为“热点代码”(Hot Spot Code),为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器JIT。
在现有的Hotspot编译器中,Client Compiler实现的是一个简单的快速三段式编译器,主要的关注点在于局部性的优化,而放弃了许多耗时较长的全局优化手段。
在第一个阶段,一个平台独立的前端将字节码构造成一种高级中间代码表示HIR。HIR使用静态单分配SSA的形式来代表代码值,这可以使得一些在HIR的构造过程之中和之后进行的优化动作更容易实现。在此之前编译器会在字节码上完成一部分基础优化,如方法内联,常量传播等优化将会在字节码被构造成HIR之前完成。
在第二阶段,一个平台相关的后端从HIR中产生低级中间代码表示LIR,而在此之前会在HIR上完成另外一些优化,如空值检查消除,范围检查消除等,以便让HIR达到更高效的代码表示形式。
最后的阶段是在平台相关的后端使用线性扫描算法在LIR上分配寄存器,并在LIR上做窥孔优化,然后产生机器代码。
在传统的虚拟机设计中,这3个阶段的代码和处理器的汇编指令集密切相关,有大量的处理器相关代码集中于CPU和OS_CPU目录中,经粗略统计,涉及的代码量达到110776行。这造成了针对一款新的CPU移植的工作量非常巨大,移植后的代码鲁棒性和健壮性都有巨大的隐患。
发明内容
本发明的目的在于:通过有针对性的对传统虚拟机移植方案进行研究,针对传统的hotspot历史遗留代码多,各个代码块之间耦合程度相当高,涉及到CPU细节多,且汇编代码量大,代码之间调用关系复杂造成的移植工作量大、移植难度大且移植后鲁棒性降低的问题,在MIPS平台的移植中,提供一种基于MIPS的JAVA虚拟机硬件无关化平台及其无关化改进方法,解决现有技术存在的缺憾。
本发明采用如下技术方案实现:
一种基于MIPS的JAVA虚拟机硬件无关化平台,其特征在于,该平台包括:
处理器抽象引擎模块:包括基于堆栈的处理器和基于寄存器的处理器,所述处理器抽象引擎模块遵循基于堆栈的传统,提供基于寄存器的执行引擎来模拟具体硬件的实现,提供堆栈调用的抽象接口;
内存管理接口模块:用于负责内存的分配和回收;
任务调度和本地调用模块:采取适配策略,直接实现抽象接口和原hotspot的代码适配器;
编译引擎:该编译引擎提取编译接口,使用固定的IR中间码来代替原有的HIR和LIR,最后根据新的接口,把编译部分单独提取出来编译成一个独立的模块来调用。
进一步的,还包括输入/输出模块,所述输入/输出模块采取适配策略,直接实现抽象接口和原hotspot代码的适配器。
一种基于MIPS的JAVA虚拟机硬件无关化平台改进方法,其特征在于,该方法包括如下步骤:
虚拟机从读入Class文件到执行完毕的全过程为一个生命周期,该周期按功能不同,可分为五个阶段:
1、启动虚拟机,并处理命令行输入;
2、初始化虚拟机运行环境;
3、调入并加载Class文件;
4、格式化内存存储frame;
5、执行Java程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中软信息系统工程有限公司,未经中软信息系统工程有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310723797.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:硬盘磁头分隔器
- 下一篇:一种高效紧凑型耦合水处理装置及其处理方法