基于软硬件协同设计的解释器指令分派方法①
2016-12-05靳国杰章隆兵
傅 杰 靳国杰 章隆兵* 王 剑*
(*中国科学院大学 北京 100049)(**计算机系统结构国家重点实验室 北京 100190)(***中国科学院计算技术研究所 北京 100190)(****龙芯中科技术有限公司 北京 100095)
基于软硬件协同设计的解释器指令分派方法①
傅 杰②******靳国杰****章隆兵*****王 剑*****
(*中国科学院大学 北京 100049)(**计算机系统结构国家重点实验室 北京 100190)(***中国科学院计算技术研究所 北京 100190)(****龙芯中科技术有限公司 北京 100095)
为了降低指令分派造成的运行开销以提高解释器的性能,提出了一种采用软硬件协同设计的解释器指令分派方法。其核心思想是在软件层面通过对指令分派表进行优化以消除了代价较高的地址常量加载操作,在硬件层面通过扩展处理器的访存指令进一步实现基于硬件支持的访存加速。软硬件协同设计可以最大限度地降低由指令分派引入的运行时开销,从而提升解释执行的效率。试验结果表明,该方法能够显著提升解释器的性能。对于SPECjvm98和DaCapo测试集,解释器总体性能提升了11.5%,且单项性能的最大提升幅度高达15.4%。该方法通用性强,实现代价低,适用于现代主流处理器平台上高性能解释器的设计和优化。
解释器, 指令分派, 软硬件协同设计, 虚拟机, 优化
0 引 言
解释器(interpreter)是一种处理计算机语言的系统软件,常用于高级编程语言的实现[1-3]。从20世纪60年代著名的Lisp语言到新兴的Java、Python及JavaScript等编程语言,均使用解释器构建其执行引擎。由于具有结构简单、易于实现以及运行时资源消耗少等优势[4],解释器被广泛应用于各种实际系统中。……
