K. Casey, D. Gregg, M. Ertl, and A. Nisbet. Software and Compilers for Embedded Systems, page 329--343. Berlin, Heidelberg, Springer, (2003)
Abstract
The Java Virtual Machine (JVM) is usually implemented by an interpreter or just-in-time (JIT) compiler. JITs provide the best performance, but interpreters have a number of advantages that make them attractive, especially for embedded systems. These advantages include simplicity, portability and lower memory requirements. Instruction dispatch is responsible for most of the running time of efficient interpreters, especially on pipelined processors. Superinstructions are an important optimisation to reduce the number of instruction dispatches. A superinstruction is a new Java instruction which performs the work of a common sequence of instructions. In this paper we describe work in progress on the design and implementation of a system of superinstructions for an efficient Java interpreter for connected devices and embedded systems. We describe our basic interpreter, the interpreter generator we use to automatically create optimised source code for superinstructions, and discuss Java specific issues relating to superinstructions. Our initial experimental results show that superinstructions can give large speedups on the SPECjvm98 benchmark suite.
Description
Towards Superinstructions for Java Interpreters | SpringerLink
%0 Conference Paper
%1 Casey:2003:JvmSuperInstructions
%A Casey, Kevin
%A Gregg, David
%A Ertl, M. Anton
%A Nisbet, Andrew
%B Software and Compilers for Embedded Systems
%C Berlin, Heidelberg
%D 2003
%E Krall, Andreas
%I Springer
%K Bytecode InstructionSet Interpreters Optimizations SuperInstructions
%P 329--343
%T Towards Superinstructions for Java Interpreters
%U http://mural.maynoothuniversity.ie/10194/1/KC-Superinstructions-2003.pdf
%X The Java Virtual Machine (JVM) is usually implemented by an interpreter or just-in-time (JIT) compiler. JITs provide the best performance, but interpreters have a number of advantages that make them attractive, especially for embedded systems. These advantages include simplicity, portability and lower memory requirements. Instruction dispatch is responsible for most of the running time of efficient interpreters, especially on pipelined processors. Superinstructions are an important optimisation to reduce the number of instruction dispatches. A superinstruction is a new Java instruction which performs the work of a common sequence of instructions. In this paper we describe work in progress on the design and implementation of a system of superinstructions for an efficient Java interpreter for connected devices and embedded systems. We describe our basic interpreter, the interpreter generator we use to automatically create optimised source code for superinstructions, and discuss Java specific issues relating to superinstructions. Our initial experimental results show that superinstructions can give large speedups on the SPECjvm98 benchmark suite.
%@ 978-3-540-39920-9
@inproceedings{Casey:2003:JvmSuperInstructions,
abstract = {The Java Virtual Machine (JVM) is usually implemented by an interpreter or just-in-time (JIT) compiler. JITs provide the best performance, but interpreters have a number of advantages that make them attractive, especially for embedded systems. These advantages include simplicity, portability and lower memory requirements. Instruction dispatch is responsible for most of the running time of efficient interpreters, especially on pipelined processors. Superinstructions are an important optimisation to reduce the number of instruction dispatches. A superinstruction is a new Java instruction which performs the work of a common sequence of instructions. In this paper we describe work in progress on the design and implementation of a system of superinstructions for an efficient Java interpreter for connected devices and embedded systems. We describe our basic interpreter, the interpreter generator we use to automatically create optimised source code for superinstructions, and discuss Java specific issues relating to superinstructions. Our initial experimental results show that superinstructions can give large speedups on the SPECjvm98 benchmark suite.},
added-at = {2021-08-30T16:52:35.000+0200},
address = {Berlin, Heidelberg},
author = {Casey, Kevin and Gregg, David and Ertl, M. Anton and Nisbet, Andrew},
biburl = {https://www.bibsonomy.org/bibtex/235be1c591f9666b9ea3f1c0113fbcb60/gron},
booktitle = {Software and Compilers for Embedded Systems},
description = {Towards Superinstructions for Java Interpreters | SpringerLink},
editor = {Krall, Andreas},
interhash = {a11491b952e0ae1d98ec47a7dff2d4d8},
intrahash = {35be1c591f9666b9ea3f1c0113fbcb60},
isbn = {978-3-540-39920-9},
keywords = {Bytecode InstructionSet Interpreters Optimizations SuperInstructions},
pages = {329--343},
publisher = {Springer},
timestamp = {2021-08-30T16:52:35.000+0200},
title = {{Towards Superinstructions for Java Interpreters}},
url = {http://mural.maynoothuniversity.ie/10194/1/KC-Superinstructions-2003.pdf},
year = 2003
}