|
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
|
Michael G. Burke , Jong-Deok Choi , Stephen Fink , David Grove , Michael Hind , Vivek Sarkar , Mauricio J. Serrano , V. C. Sreedhar , Harini Srinivasan , John Whaley, The Jalapeño dynamic optimizing compiler for Java, Proceedings of the ACM 1999 conference on Java Grande, p.129-141, June 12-14, 1999, San Francisco, California, United States
[doi> 10.1145/304065.304113]
|
| |
15
|
D. Griswold. The Java HotSpot Virtual Machine Architecture, March 1998. See whitepaper at http://www.javasoft.com/products/hotspot.
|
| |
16
|
|
 |
17
|
D. J. Kuck , R. H. Kuhn , D. A. Padua , B. Leasure , M. Wolfe, Dependence graphs and compiler optimizations, Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.207-218, January 26-28, 1981, Williamsburg, Virginia
[doi> 10.1145/567532.567555]
|
| |
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
|
Lee-Ren Ton , Lung-Chung Chang , Min-Fu Kao , Han-Min Tseng , Shi-Sheng Shang , Ruey-Liang Ma , Dze-Chaung Wang , Chung-Ping Chung, Instruction Folding in Java Processor, Proceedings of the 1997 International Conference on Parallel and Distributed Systems, p.138-143, December 11-13, 1997
|
| |
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
|
Derek Rayside , Evan Mamas , Erik Hons, Compact Java binaries for embedded systems, Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research, p.9, November 08-11, 1999, Mississauga, Ontario, Canada
|
 |
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.
|
CITED BY
|
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
|
|