ACM Home Page
Please provide us with feedback. Feedback
A simplified java bytecode compilation system for resource-constrained embedded processors
Full text PdfPdf (440 KB)
Source
International Conference on Compilers, Architecture and Synthesis for Embedded Systems archive
Proceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systems table of contents
Salzburg, Austria
SESSION: Compilation/code generation table of contents
Pages: 218 - 228  
Year of Publication: 2007
ISBN:978-1-59593-826-8
Authors
Carmen Badea  University of California: Irvine
Alexandru Nicolau  University of California: Irvine
Alexander V. Veidenbaum  University of California: Irvine
Sponsors
ACM: Association for Computing Machinery
SIGBED: ACM Special Interest Group on Embedded Systems
SIGMICRO: ACM Special Interest Group on Microarchitectural Research and Processing
SIGDA: ACM Special Interest Group on Design Automation
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 62,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1289881.1289920
What is a DOI?

ABSTRACT

Embedded platforms are resource-constrained systems in whichperformance and memory requirements of executed code are ofcritical importance. However, standard techniques such as full just-in-time(JIT) compilation and/or adaptive optimization (AO) may not be appropriate for this type of systems due to memory and compilation overheads.

The research presented in this paper proposes a technique that combines some of the main benefits of JIT compilation, superoperators(SOs) and profile-guided optimization, in order to deliver a lightweight Java bytecode compilation system, targeted for resource-constrained environments, that achieves runtime performance similar to that of state-of-the-art JIT/AO systems, while having a minimal impact on runtime memory consumption.The key ideas are to use profiler-selected, extended bytecode basic blocks as superoperators (new bytecode instructions) and to perform few, but very targeted, JIT/AO-like optimizations at compile time only on the superoperators. bytecode, as directed by compilation .hints. encoded as annotations. As such, our system achieves competitive performance to a JIT/AO system, but witha much lower impact on runtime memory consumption. Moreover,it is shown that our proposed system can further improveprogram performance by selectively inlining method calls embedded in the chosen superoperators, as directed by runtime profiling data and with minimal impact on classfile size.

For experimental evaluation, we developed three Virtual Machines(VMs) that employ the ideas presented above. The customized VMs are first compared (w.r.t. runtime performance) to a simple, fast-to-develop VM (baseline) and then to a VM that employs JIT/AO. Our best-performing system attains speedups ranging from a factor of 1.52 to a factor of 3.07, w.r.t. to the baseline VM. When compared to a state-of-the-art JIT/AO VM, our proposed system performs better for three of the benchmarks and worse by less than a factor of 2 for three others. But our SO-extended VM outperforms the JIT/AO system by a factor of 16, on average, w.r.t. runtime memory consumption.


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
2
3
 
4
Ana Lucia Velloso Azevedo. Annotation-aware dynamic compilation and interpretation. PhD thesis, 2002. Chair-Alexandru Nicolau.
5
6
7
 
8
Diarmuid O'Donoghue and James F. Power. Identifying and evaluating a generic set of superinstructions for embedded java programs. In ESA/VLSI, pages 192--198, 2004.
 
9
Kevin Casey, David Gregg, M. Anton Ertl, and Andrew Nisbet. Towards superinstructions for java interpreters. In SCOPES, pages 329--343, 2003.
 
10
Etienne Gagnon and Laurie Hendren. Effective inline-threaded interpretation of Java bytecode using preparation sequences. In Compiler Construction (CC '03), volume 2622 of LNCS, pages 170--184. Springer, 2003.
 
11
M. Anton Ertl, Christian Thalinger, and Andreas Krall. Superinstructions and replication in the Cacao JVM interpreter. Journal of .NET Technologies, 4:25--32, 2006. Journal papers from .NET Technologies 2006 conference.
 
12
 
13
 
14
Sun Microsystems Inc. Picojava I microprocessor core architecture, 1999. http://solutions.sun.com/embedded/databook/pdf/ whitepapers/WPR-0014-01.pdf.
 
15
Sun Microsystems Inc. Picojava-II programmer's reference manual, March 1999.
 
16
Standard Performance Evaluation Corporation. www.spec.org.
 
17
ej-TECHNOLOGIES. JProfiler. http://www.ej-technologies.com/products/jprofiler/ overview.html.
 
18
Jikes Research Virtual Machine. http://jikesrvm.sourceforge.net/.
 
19
PNG Software. http://www.sixlegs.com/software/png/.
 
20
The Legion of the Bouncy Castle. http://www.bouncycastle.org/.
 
21
Mikael Pettersson. Linux performance monitoring counters driver. http://www.csd.uu.se/ mikpe/linux/perfctr/.
 
22
Javassist Toolkit. http://www.jboss.org/products/javassist.


Collaborative Colleagues:
Carmen Badea: colleagues
Alexandru Nicolau: colleagues
Alexander V. Veidenbaum: colleagues