Affiliation:
1. Trinity College Dublin, Dublin, Ireland
2. TU Wien
Abstract
Interpreters designed for efficiency execute a huge number of indirect branches and can spend more than half of the execution time in indirect branch mispredictions. Branch target buffers (BTBs) are the most widely available form of indirect branch prediction; however, their prediction accuracy for existing interpreters is only 2%--50%. In this article we investigate two methods for improving the prediction accuracy of BTBs for interpreters: replicating virtual machine (VM) instructions and combining sequences of VM instructions into superinstructions. We investigate static (interpreter build-time) and dynamic (interpreter runtime) variants of these techniques and compare them and several combinations of these techniques. To show their generality, we have implemented these optimizations in VMs for both Java and Forth. These techniques can eliminate nearly all of the dispatch branch mispredictions, and have other benefits, resulting in speedups by a factor of up to 4.55 over efficient threaded-code interpreters, and speedups by a factor of up to 1.34 over techniques relying on dynamic superinstructions alone.
Publisher
Association for Computing Machinery (ACM)
Reference35 articles.
1. Threaded code
2. Bell T. C. Cleary J. G. and Witten I. H. 1990. Text Compression. Prentice-Hall. Bell T. C. Cleary J. G. and Witten I. H. 1990. Text Compression. Prentice-Hall.
3. Context Threading: A Flexible and Efficient Dispatch Technique for Virtual Machine Interpreters
4. Calder B. and Grunwald D. 1994. Reducing branch costs via branch alignment. In Architectural Support for Programming Languages and Operating Systems (ASPLOS-VI). 242--251. 10.1145/195473.195553 Calder B. and Grunwald D. 1994. Reducing branch costs via branch alignment. In Architectural Support for Programming Languages and Operating Systems (ASPLOS-VI). 242--251. 10.1145/195473.195553
5. Casey K. Ertl A. and Gregg D. 2005. Optimizations for a Java interpreter using instruction set enhancement. Tech. rep. TCD-CS-2005-61 Department of Computer Science University of Dublin Trinity College Dublin Ireland. Casey K. Ertl A. and Gregg D. 2005. Optimizations for a Java interpreter using instruction set enhancement. Tech. rep. TCD-CS-2005-61 Department of Computer Science University of Dublin Trinity College Dublin Ireland.
Cited by
15 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Optimizing the Order of Bytecode Handlers in Interpreters using a Genetic Algorithm;Proceedings of the 38th ACM/SIGAPP Symposium on Applied Computing;2023-03-27
2. A fast in-place interpreter for WebAssembly;Proceedings of the ACM on Programming Languages;2022-10-31
3. Accidental Choices—How JVM Choice and Associated Build Tools Affect Interpreter Performance;Computers;2022-06-14
4. An efficient interpreter for Datalog by de-specializing relations;Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2021-06-18
5. A Methodology for Optimization of Interpreters;2018 Symposium on High Performance Computing Systems (WSCAD);2018-10