BLP: Applying ILP Techniques to Bytecode Execution

K. Scott and K. Skadron
In Proc. of the Second Annual Workshop on Hardware Support for Objects and Microarchitectures for Java, in conjunction with ICCD 2000, Sept. 2000.

The popularity of Java has resulted in a flurry of engineering and research activity to improve performance of Java Virtual Machine (JVM) implementations. This paper explores the concept of bytecode-level parallelism (BLP): data- and control- independent bytecodes that can be executed concurrently, just as conventional machine instructions are executed concurrently to exploit instruction-level parallelism (ILP). Quantifying the degree of BLP available is an important first step in finding ways to exploit it. This paper presents measurements for the SPECjvm98 suite that show levels of BLP are high even within basic blocks--with an average BLP degree of 5.6--and that levels of BLP are very large--19.8--when speculating past control flow. This suggests that techniques designed to exploit BLP can yield substantial speedups in the performance of a JVM and other interpreters.

Available in postscript or pdf