Adapting Tomasulo's algorithm for bytecode folding based Java processors

A novel processor architecture for hardware execution of Java bytecodes is presented. Stack dependency is resolved by the use of a hardware bytecode folding algorithm coupled with Tomasulo's scheduling algorithm. In this paper, we present a framework for adapting Tomasulo's algorithm for bytecode folding based Java processors. We discuss a set of architectural features that are tailored for Java execution as well as for general-purpose Java-independent codes. A comprehensive example is included to illustrate these features graphically.

[1]  Guy L. Steele,et al.  Java Language Specification, Second Edition: The Java Series , 2000 .

[2]  Péter Kacsuk,et al.  Advanced Computer Architectures , 1997 .

[3]  Ramesh Radhakrishnan,et al.  Microarchitectural techniques to enable efficient java execution , 2000 .

[4]  Ramesh Radhakrishnan,et al.  Allowing for ILP in an embedded Java processor , 2000, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).

[5]  Gurindar S. Sohi,et al.  Instruction Issue Logic for High-Performance Interruptible, Multiple Functional Unit, Pipelines Computers , 1990, IEEE Trans. Computers.

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

[7]  Stamatis Vassiliadis,et al.  The Delft-Java Engine: An Introduction , 1997, Euro-Par.

[8]  Ramesh Radhakrishnan,et al.  Characterization of Java applications at bytecode and ultra-SPARC machine code levels , 1999, Proceedings 1999 IEEE International Conference on Computer Design: VLSI in Computers and Processors (Cat. No.99CB37040).

[9]  Kin F. Li,et al.  A quantitative study for Java microprocessor architectural requirements. Part II: high-level language support , 2000, Microprocess. Microsystems.

[10]  Jr. Philip J. Koopman,et al.  Stack computers: the new wave , 1989 .

[11]  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.

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

[13]  Kin Fun Li,et al.  Quantitative Analysis for Java Microprocessor Architectural Require-ments: Instruction Set Design , 1999 .

[14]  Péter Kacsuk,et al.  Advanced computer architectures - a design space approach , 1997, International computer science series.

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

[16]  S SohiGurindar Instruction Issue Logic for High-Performance, Interruptible, Multiple Functional Unit, Pipelined Computers , 1990 .

[17]  R. M. Tomasulo,et al.  An efficient algorithm for exploiting multiple arithmetic units , 1995 .

[18]  F. ElGuibaly,et al.  A quantitative study for Java microprocessor architectural requirements. Part I: Instruction set design , 2000, Microprocess. Microsystems.

[19]  Kin F. Li,et al.  A robust stack folding approach for Java processors: an operand extraction-based algorithm , 2001, J. Syst. Archit..