ACM Home Page
Please provide us with feedback. Feedback
High performance annotation-aware JVM for Java cards
Full text PdfPdf (158 KB)
Source International Conference On Embedded Software archive
Proceedings of the 5th ACM international conference on Embedded software table of contents
Jersey City, NJ, USA
SESSION: Languages table of contents
Pages: 52 - 61  
Year of Publication: 2005
ISBN:1-59593-091-4
Authors
Ana Azevedo  University of California at Irvine
Arun Kejariwal  University of California at Irvine
Alex Veidenbaum  University of California at Irvine
Alexandru Nicolau  University of California at Irvine
Sponsors
SIGBED: ACM Special Interest Group on Embedded Systems
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 53,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1086228.1086240
What is a DOI?

ABSTRACT

Early applications of smart cards have focused in the area of personal security. Recently, there has been an increasing demand for networked, multi-application cards. In this new scenario, enhanced application-specific on-card Java applets and complex cryptographic services are executed through the smart card Java Virtual Machine (JVM). In order to support such computation-intensive applications, contemporary smart cards are designed with built-in microprocessors and memory. As smart cards are highly area-constrained environments with memory, CPU and peripherals competing for a very small die space, the VM execution engine of choice is often a small, slow interpreter. In addition, support for multiple applications and cryptographic services demands high performance VM execution engine. The above necessitates the optimization of the JVM for Java Cards.In this paper we present the concept of an annotation-aware interpreter that optimizes the interpreted execution of Java code using Java bytecode SuperOperators (SOs). SOs are groups of bytecode operations that are executed as a specialized VM instruction. Simultaneous translation of all the bytecode operations in an SO reduces the bytecode dispatch cost and the number of stack accesses (data transfer to/from the Java operand stack) and stack pointer updates. Furthermore, SOs help improve native code quality without hindering class file portability. Annotation attributes in the class files mark the occurrences of valuable SOs, thereby dispensing the expensive task of searching and selecting SOs at runtime. Besides, our annotation-based approach incurs minimal memory overhead as opposed to just-in-time (JIT) compilers.We obtain an average speedup of 18% using an interpreter customized with the top SOs formed from operation folding patterns. Further, we show that greater speedups could be achieved by statically adding to the interpreter application-specific SOs formed by top basic blocks. The effectiveness of our approach is evidenced by performance improvements of (upto) 131% obtained using SOs formed from optimized basic blocks.


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
O. Potonniée. Ubiquitous personalization: A smart card based approach. In Proceedings of the 4th Gemplus Developer Conference, November 2002.
 
2
Smart card: A primer. http://www.javaworld.com/javaworld/ jw-12-1997/jw-12-javadev.html.
 
3
 
4
 
5
H. Pietiläinen. Elliptic curve cryptography on smart cards. Master's thesis, Helsinki University of Technology, October 2000.
 
6
 
7
G. Grimaud and J.-J. Vandewalle. Introducing research issues for next generation Java-based smart card platforms. In Proceedings of the Smart Objects Conference, pages 138--141, Grenoble, France, May 2003.
 
8
Java card technology. http://java.sun.com/products/javacard/.
 
9
A Java card primer. http://www.developer.com/java/other/article.php/910261.
 
10
 
11
LaTTe. http://latte.snu.ac.kr/.
 
12
13
14
 
15
D. Griswold. The Java HotSpot Virtual Machine Architecture, March 1998. See whitepaper at http://www.javasoft.com/products/hotspot.
 
16
17
 
18
 
19
W. El-Kharashi, F. ElGuibaly, and K. F. Li. An operand extraction-based stack folding algorithm for Java processors. Proceedings of the 2nd Annual Workshop on Hardware Support for Objects and Microarchitectures for Java, 2000.
 
20
 
21
J. Hummel, A. Azevedo, D. Kolson, and A. Nicolau. Annotating the java bytecodes in support of optimization. Journal Concurrency:Practice and Experience, 9(11):1003--1016, November 1997.
 
22
23
 
24
M. A. Ertl. A Portable Forth Engine. In EuroForth '93 conference proceedings, Mariánské Láznè (Marienbad), 1993.
25
 
26
M. Anton Ertl. Threaded Code Variations. In EuroForth '93 conference proceedings, pages 49--55, 1993.
27
 
28
 
29
 
30
31
 
32
 
33
Sun Microsystems Inc. Picojava I microprocessor core architecture, 1999. See http://solutions.sun.com/embedded/databook/pdf/whitepapers/WPR-0014-01.pdf.
 
34
Sun Microsystems Inc. Picojava-II programmer's reference manual, March 1999.
 
35
L. C. Chang, L. R. Ton, M. F. Kao, and C. P. Chung. Stack operations folding in Java processors. IEEE Computers and Digital Techniques, 145(5):333--340, September 1998.
 
36
 
37
A. Kim, Y. Qian, and Morris Chang. Designing a memory system using a static loader for embedded Java architectures. Proceedings of the 2nd International Workshop on Compiler and Architecture Support for Embedded Systems, pages 565--566, October 1999.
 
38
39
 
40
K. Casey, D. Gregg, M. A. Ertl, and A. Nisbet. Towards superinstructions for java interpreters. In Proceedings of the 7th International Workshop on Software and Compilers for Embedded Systems, pages 329--343, Vienna, Austria, 2003.
 
41
D. O'Donoghue and J. F. Power. Identifying and evaluating a generic set of superinstructions for embedded java programs. In Proceedings of the International Conference on Embedded Systems and Applications, pages 192--198, 2004.
42
 
43
E. Gagnon and L. J. Hendren. Effective inline-threaded interpretation of java bytecode using preparation sequences. In Proceedings of the 12th International Conference on Compiler Construction, pages 170--184, Warsaw, Poland, 2003.


Collaborative Colleagues:
Ana Azevedo: colleagues
Arun Kejariwal: colleagues
Alex Veidenbaum: colleagues
Alexandru Nicolau: colleagues