JIST: just-in-time scheduling translation for parallel processors

The application fields of bytecode virtual machines and VLIW processors overlap in the area of embedded and mobile systems, where the two technologies offer different benefits, namely high code portability, low power consumption and reduced hardware cost. Dynamic compilation makes it possible to bridge the gap between the two technologies, but special attention must be paid to software instruction scheduling, a must for the VLIW architectures. We have implemented JIST, a Virtual Machine and JIT compiler for Java Bytecode targeted to a VLIW processor. We show the impact of various optimizations on the performance of code compiled with JIST through the experimental study on a set of benchmark programs. We report significant speedups, and increments in the number of instructions issued per cycle up to 50% with respect to the non-scheduling version of the JIT compiler. Further optimizations are discussed.

[1]  Erik R. Altman,et al.  Daisy: Dynamic Compilation For 10o?40 Architectural Compatibility , 1997, Conference Proceedings. The 24th Annual International Symposium on Computer Architecture.

[2]  Geoffrey Brown,et al.  Lx: a technology platform for customizable VLIW embedded processing , 2000, ISCA '00.

[3]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[4]  Samuel P. Midkiff,et al.  The NINJA project , 2001, CACM.

[5]  Paolo Faraboschi,et al.  An analysis of dynamic scheduling techniques for symbolic applications , 1993, Proceedings of the 26th Annual International Symposium on Microarchitecture.

[6]  Evelyn Duesterwald Dynamic Compilation , 2002, The Compiler Design Handbook.

[7]  Bantwal R. Rau Dynamically scheduled VLIW processors , 1993, MICRO 1993.

[8]  Priti Shankar,et al.  The Compiler Design Handbook: Optimizations and Machine Code Generation , 2002, The Compiler Design Handbook.

[9]  K. Ebcioglu,et al.  Daisy: Dynamic Compilation For 10o?40 Architectural Compatibility , 1997, Conference Proceedings. The 24th Annual International Symposium on Computer Architecture.

[10]  David J. Lilja,et al.  Techniques for obtaining high performance in Java programs , 2000, CSUR.

[11]  Erik R. Altman,et al.  A JAVA ILP Machine Based on Fast Dynamic Compilation , 1997 .

[12]  John H. Hartman,et al.  Toba: Java for Applications - A Way Ahead of Time (WAT) Compiler , 1997, COOTS.

[13]  John Aycock,et al.  A brief history of just-in-time , 2003, CSUR.

[14]  Joseph A. Fisher,et al.  Trace Scheduling: A Technique for Global Microcode Compaction , 1981, IEEE Transactions on Computers.

[15]  Paolo Faraboschi,et al.  DELI: a new run-time control point , 2002, MICRO.

[16]  Scott A. Mahlke,et al.  The superblock: An effective technique for VLIW and superscalar compilation , 1993, The Journal of Supercomputing.

[17]  Erik R. Altman,et al.  LaTTe: a Java VM just-in-time compiler with fast and efficient register allocation , 1999, 1999 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00425).

[18]  Siddhartha Chatterjee,et al.  An evaluation of Java for numerical computing , 1999 .

[19]  Geoffrey C. Fox,et al.  Java for parallel computing and as a general language for scientific and engineering simulation and modeling , 1997 .

[20]  Saumya K. Debray,et al.  Alias analysis of executable code , 1998, POPL '98.

[21]  Geoffrey C. Fox,et al.  Java for parallel computing and as a general language for scientific and engineering simulation and modeling , 1997, Concurr. Pract. Exp..

[22]  Mike O'Connor,et al.  PicoJava: A Direct Execution Engine For Java Bytecode , 1998, Computer.

[23]  Kunle Olukotun,et al.  Targeting Dynamic Compilation for Embedded Environments , 2002, Java Virtual Machine Research and Technology Symposium.

[24]  Douglas C. Schmidt,et al.  Evaluating real-time Java features and performance for real-time embedded systems , 2002, Proceedings. Eighth IEEE Real-Time and Embedded Technology and Applications Symposium.

[25]  K. J. Gough Stacking them up: a comparison of virtual machines , 2001 .

[26]  Einar J. Aas,et al.  On the Utilization of Java Technology in Embedded Systems , 2003, Des. Autom. Embed. Syst..