JVM '02 Abstract
A Lightweight Java Virtual Machine
for a Stack-Based Microprocessor
Mirko Raner, PTSC
The large majority of modern JVM implementations are either pure software VMs on top of
standard general purpose microprocessors (e.g., Insignia's Jeode or IBM's Jalape~ no VM) or Java-specic microprocessors with supportive software
layers (e.g., Fujitsu's MB86799 or aJile's aJ-100).
In this paper a somewhat different approach is pre
sented: a lightweight software VM on top of a general purpose stack-based microprocessor. Said microprocessor is not a "hardware JVM", but its architecture is very similar to the JVM. Being truly a general purpose processor, it is not entirely dedicated to execute Java bytecode but can at the same time run C or FORTH applications.
This paper describes the implementation of a
lightweight Java Virtual Machine for the Ignite
family of stack-based microprocessors. To achieve
an optimal Java performance this JVM uses a com
bination of standard techniques, such as ahead-of-time (AOT) compilation, class hierarchy analysis (CHA), lazy class loading and binary rewriting,
complemented by new optimizations like executable method access structures (XMAS) and lazy argument passing.
The unusual architecture of the target processor also often posed unusual problems that had to be solved.
- View the full text of this paper in
PostScript. Until August 2003, you will need your USENIX membership identification in order to access the full papers.
The Proceedings are published as a collective work, © 2002 by the USENIX Association. All Rights Reserved. Rights to individual papers remain with the author or the author's employer. Permission is granted for the noncommercial reproduction of the complete work for educational or research purposes. USENIX acknowledges all trademarks within this paper.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.