论文部分内容阅读
虚拟机能够更加方便地进行运行时刻优化,是编程语言转换和程序运行的重要方式。Java程序在可移植性、安全性等方面表现出色,在桌面计算和移动终端领域均有非常广泛的应用。支持Java需要有相应的Java运行环境(JRE,Java RuntimeEnvironment),而Java虚拟机是Java运行环境的核心。 PKUnity-3(65)系统芯片采用北大众志自主指令系统标准的UniCore-2处理器。目前,UniCore-2处理器平台已经支持GCJ和Zero解释器搭建的Java运行环境,但其兼容性和性能并不能满足需求,为改善UniCore-2处理器平台对Java运行环境的支持,需要为UniCore-2处理器平台提供更加高效的Java运行环境。 本文面向UniCore-2处理器实现了HotSpot解释器。在具体移植前,首先研究了Java虚拟机相关技术,分析比较了开源Java虚拟机项目,选择了OpenJDK作为UniCore-2处理器平台的Java运行环境的实现基础。进而重点对HotSpot解释器的分析与移植工作进行了论述,其中首先阐述了HotSpot解释器的逻辑框架,设计了适合UniCore-2处理器平台的寄存器使用策略和栈帧布局,然后对其中各个模块的分析和实现进行了讨论,包括对象模型、代码动态生成支持、字节码模板、解释器主体和运行时环境等,最后对OpenJDK的构建方法进行了阐述。 为保证HotSpot解释器的正确性,本文设计了正确性回归测试环境和比对调试环境,并针对Java虚拟机代码动态生成的特点,在正确性调试中对相应的调试策略进行了总结。本文还对HotSpot解释器进行了性能评测,实验结果表明,面向UniCore-2处理器实现的HotSpot解释器相对于Zero解释器可获得43.4%的性能提升。