Mixed mode execution with context threading

Mixed mode execution with context threading
复制标题

具有上下文线程的混合模式执行

DOI:
--
复制
发表时间:
2005
期刊:
Conference of the Centre for Advanced Studies on Collaborative Research
影响因子:
--
通讯作者:
Angela Demke Brown
Angela Demke Brown
中科院分区:
--
文献类型:
--
作者:
Mathew Zaleski;Marc Berndl;Angela Demke Brown

文献摘要

被引文献

相似文献

解释器被广泛用于实现可移植的语言运行时环境。用这些语言编写的程序可能会从性能上受益,而不仅仅是通过优化解释来获得。现代高性能混合模式虚拟机(VM)包括基于方法的即时(JIT)编译器。然而,基于方法的JIT需要在实现任何性能优势之前预先开发复杂的编译基础设施。理想情况下,混合模式VM的架构可以检测并执行虚拟程序的各种形状的热区。我们的VM架构基于上下文线程。它支持强大、高效的插装和简单的动态代码生成框架。它有可能直接支持全方位的混合模式执行:从解释的字节码主体,到运行时生成的专用字节码,再到跟踪,再到编译方法。此外,它还提供了必要的工具来检测这些区域在运行时。我们扩展了两个虚拟机,SableVM和OCaml解释器与我们的基础设施上的P4和PPC。为了展示我们的基础设施的能力和灵活性,我们比较了三种常见的区域形状的选择和调度的有效性:整体方法,部分方法和SPECL轨迹。我们报告的结果,我们的代码生成器的初步版本编译成一个区域的直接调用字节码机构的序列。
Interpreters are widely used to implement portable language runtime environments. Programs written in these languages may benefit from performance beyond that obtainable by optimizing interpretation alone. A modern high-performance mixed-mode virtual machine (VM) includes amethod-based Just In Time (JIT) compiler. A method-based JIT, however, requires the up-front development of a complex compilation infrastructure before any performance benefits are realized.Ideally, the architecture for a mixed-mode VM could detect and execute a variety of shapes of hot regions of a virtual program. Our VM architecture is based on context threading. It supports powerful, efficient instrumentation and a simple framework for dynamic code generation. It has the potential to directly support a full spectrum of mixed-mode execution: from interpreted bytecode bodies, to specialized bytecode generated at runtime, to traces, to compiled methods. Further, it provides the necessary tools to detect these regions at runtime.We extended two VMs, SableVM and the OCaml interpreter with our infrastructure on both the P4 and PPC. To demonstrate the power and flexibility of our infrastructure we compare the selection and dispatch effectiveness for three common region shapes: whole methods, partial methods, and SPECL traces. We report results for a preliminary version of our code generator which compiles a region into a sequence of direct calls to bytecode bodies.