Kaffe虚拟机在龙芯2E上的移植研究


Autoria(s): 辛博坤
Contribuinte(s)

王永吉

Data(s)

27/05/2009

Resumo

Java虚拟机作为Java运行环境的核心,已成为现代计算机平台不可缺少的组成部分。Java虚拟机和平台间的兼容性直接决定了上层Java程序的运行的稳定性。龙芯2E是由中科院计算机研究所自主研发的高性能微处理器。由于采用MIPS指令集,现有Java虚拟机对龙芯的支持并不理想,这极大地限制了龙芯平台的上层应用。 针对这一问题,本文对现有虚拟机进行了分析,选择了移植性较强的Kaffe虚拟机作为移植对象,力求在龙芯2E上建立一个稳定的Java运行环境。以此为目的,本文整理了龙芯2E相关的内容,包括龙芯2E的指令集特点,龙芯下参数传递的方式,龙芯下函数栈的组织等等;研究了Java虚拟机规范中,一般Java虚拟机的体系结构;分析了Kaffe虚拟机的代码结构,确定了移植需要修改的三个主要模块:本地代码调用接口,Trampoline技术和JIT3引擎;给出了移植方案。其中,JIT3引擎作为整个虚拟机的核心,是整个移植工作的重点。本文对其编译过程,寄存器分配策略,Java栈的组织方式,以及标签,常量池等平台相关机制进行了深入的分析。在此基础上,修改了Java栈向本地栈的映射方式,实现了标签机制中平台相关部分的代码,重新描述了寄存器信息并重新实现了本地汇编指令。 针对Java虚拟机调试困难的问题,本文总结了龙芯平台下Kaffe虚拟机的调试方法。在调试过程中发现了Kaffe原有代码中的编码错误,并给出了修改方案。 最后采用第三方的评测工具对移植后的虚拟机进行测试,验证了移植的有效性。

Identificador

http://ir.iscas.ac.cn/handle/311060/212

http://www.irgrid.ac.cn/handle/1471x/68087

Idioma(s)

中文

Fonte

辛博坤.Kaffe虚拟机在龙芯2E上的移植研究[硕士论文].中科院软件所.中科院软件所.2009

Tipo

学位论文