A quantitative study for Java microprocessor architectural requirements. Part I: Instruction set design

Abstract Java was designed for network programming. This imposes certain requirements on its virtual machine instruction set architecture and on designs that support Java. The purpose of this study is to carry out a behavioral analysis of the different aspects of Java instruction set architecture. This will help in establishing the hardware requirements for executing Java bytecodes. First, the bytecode interpreter was instrumented to include performance counters and statistics collectors. Then performance metrics were collected through benchmarking. Analyzing these data helps to identify performance-critical aspects that are candidates for hardware support, while less critical aspects can be left for software implementations. In this first part of our two-part paper, we study access patterns for data types, addressing modes, and instruction encoding. Recommendations for architectural requirements for Java processors will be made throughout this study.

[1]  J. E. Godderz The most significant bits , 1975, MINI.

[2]  Andrew S. Tanenbaum,et al.  Structured Computer Organization , 1976 .

[3]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[4]  R. Grehan,et al.  JAVASOFT'S EMBEDDED SPECIFICATION OVERDUE, BUT MANY TOOL VENDORS AREN'T WAITING , 1998 .

[5]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[6]  Peter Wayner How to soup up Java: part II: nine recipes for fast, easy Java , 1998 .

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

[8]  M.W. El-Kharashi,et al.  Java microprocessors: computer architecture implications , 1997, 1997 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing, PACRIM. 10 Years Networking the Pacific Rim, 1987-1997.

[9]  Bill Venners,et al.  Inside the Java Virtual Machine , 1997 .

[10]  John C. Gyllenhaal,et al.  Optimizing NET Compilers for Improved Java Performance , 1997, Computer.

[11]  John C. Gyllenhaal,et al.  Java bytecode to native code translation: the Caffeine prototype and preliminary results , 1996, Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29.

[12]  W. Paul,et al.  Computer Architecture , 2000, Springer Berlin Heidelberg.

[13]  James Gosling,et al.  Java Intermediate Bytecode , 1995, Intermediate Representations Workshop.

[14]  Tom R. Halfhill How to soup up Java, part I , 1998 .

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

[16]  Troy Downing,et al.  Java Virtual Machine , 1997 .

[17]  J. Michael O'Connor,et al.  picoJava-I: the Java virtual machine in hardware , 1997, IEEE Micro.

[18]  James A. Gosling,et al.  The java language environment: a white paper , 1995 .