| Virtual machine showdown: stack versus registers |
| Full text |
Pdf
(215 KB)
|
| Source
|
ACM/Usenix International Conference On Virtual Execution Environments
archive
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
table of contents
Chicago, IL, USA
SESSION: Language representations
table of contents
Pages: 153 - 163
Year of Publication: 2005
ISBN:1-59593-047-7
|
|
Authors
|
|
Yunhe Shi
|
University of Dublin, Trinity College, Dublin 2, Ireland
|
|
David Gregg
|
University of Dublin, Trinity College, Dublin 2, Ireland
|
|
Andrew Beatty
|
University of Dublin, Trinity College, Dublin 2, Ireland
|
|
M. Anton Ertl
|
TU Wien, Wien, Austria
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 7, Downloads (12 Months): 67, Citation Count: 4
|
|
|
ABSTRACT
Virtual machines (VMs) are commonly used to distribute programs in an architecture-neutral format, which can easily be interpreted or compiled. A long-running question in the design of VMs is whether stack architecture or register architecture can be implemented more efficiently with an interpreter. We extend existing work on comparing virtual stack and virtual register architectures in two ways. Firstly, our translation from stack to register code is much more sophisticated. The result is that we eliminate an average of more than 47% of executed VM instructions, with the register machine bytecode size only 25% larger than that of the corresponding stack bytecode. Secondly we present an implementation of a register machine in a fully standard-compliant implementation of the Java VM. We find that, on the Pentium 4, the register architecture requires an average of 32.3% less time to execute standard benchmarks if dispatch is performed using a C switch statement. Even if more efficient threaded dispatch is available (which requires labels as first class values), the reduction in running time is still approximately 26.5% for the register architecture.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Spec release spec jvm98, first industry-standard benchmark for measuring java virtual machine performance. Press Release, page http://www.specbench.org/osg/jvm98/press.html, August 19 1998.
|
| |
2
|
|
| |
3
|
M. Bull, L. Smith, M. Westhead, D. Henty, and R. Davey. Benchmarking java grande application. In Second Ineternational Conference and Exhibtion on the Practical Application of Java. Manchester, UK, April 2000.
|
| |
4
|
K. Casey, D. Gregg, M. A. Ertl, and A. Nisbet. Towards superinstructions for java interpeters. In Proceedings of the 7th International Workshoop on Software and Compilers for Embedded Systems (SCOPES 03), pages 329--343, September 2003.
|
 |
5
|
Brian Davis , Andrew Beatty , Kevin Casey , David Gregg , John Waldron, The case for virtual register machines, Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators, p.41-49, June 12-12, 2003, San Diego, California
[doi> 10.1145/858570.858575]
|
 |
6
|
|
| |
7
|
|
| |
8
|
L. George and A. W. Appel. Iterated register coalescing. Technical Report TR-498-95, Princeton University, Computer Science Department, Aug. 1995.
|
 |
9
|
|
| |
10
|
D. Gregg, A. Beatty, K. Casey, B. Davis, and A. Nisbet. The case for virtual register machines. Science of Computer Programming, Special Issue on Interpreters Virtual Machines and Emulators, 2005. To appear.
|
| |
11
|
B. McGlashan and A. Bower. The interpreter is dead (slow). Isn't it? In OOPSLA'99 Workshop: Simplicity, Performance and Portability in Virtual Machine design., 1999.
|
 |
12
|
|
| |
13
|
J. Park and S. mook Moon. Optimistic register coalescing, Mar. 30 1999.
|
 |
14
|
|
 |
15
|
|
| |
16
|
Sean Dorward , Rob Pike , David Leo Presotto , Dennis Ritchie , Howard Trickey , Phil Winterbottom, Inferno, Proceedings of the 42nd IEEE International Computer Conference, p.241, February 23-26, 1997
|
CITED BY 4
|
|
|
|
|
|
|
|
Carmen Badea , Alexandru Nicolau , Alexander V. Veidenbaum, A simplified java bytecode compilation system for resource-constrained embedded processors, Proceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systems, September 30-October 03, 2007, Salzburg, Austria
|
|
|
|
|