S-Space College of Engineering/Engineering Practice School (공과대학/대학원) Dept. of Computer Science and Engineering (컴퓨터공학부) Others_컴퓨터공학부
Java Client Ahead-of-Time Compiler for Embedded Systems
- Hong, Sunghyun; Kim, Jin-Chul; Shin, Jin Woo; Moon, Soo-Mook; Oh, Hyeong-Seok; Lee, Jaemok; Choi, Hyung-Kyu
- Issue Date
- LCTES'07 : 2007 ACM SIGPLAN-SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems, San Diego, CA , ETATS-UNIS, 2007.
- J2ME CDC; Java ahead-of-time compiler; Java virtual machine; early binding; just-in-time compiler; relocation
- Language, Compiler and Tool Support for Embedded Systems
Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
San Diego, California, USA
- The performance of embedded Java virtual machine can be improved by ahead-of-time compiler (AOTC), which translates bytecode into machine code in the server and installs the machine code on the client device. Although AOTC is more advantageous than just-in-time compiler (JITC) due to its absence of the translation overhead, AOTC cannot be applicable to dynamically downloaded classes at runtime. This paper proposes client-AOTC (c-AOTC) which performs AOTC on the client device using the JITC module installed on the device, complementing the server-AOTC. The machine code of a method translated by JITC is cached on a persistent memory of the device, and when the method is invoked again in a later run of the program, the machine code is loaded and executed directly without the translation and interpretation overhead. One of major issues in c-AOTC is relocation because some of the addresses used by the cached machine code are not correct when the machine code is loaded and used in a different run; those addresses should be corrected before they are used. Constant pool resolution and inlining complicate the relocation problem and we propose our solutions. We developed a c-AOTC on Sun's CDC VM reference implementation (RI) and our evaluation results indicate that c-AOTC can improve the performance significantly, as much as an average of 12%. We also experiment with the issue of reducing the number of c-AOTC methods to be cached when the persistent space is tight, with a graceful degradation of performance.
- Files in This Item: There are no files associated with this item.