Title :
Exploiting Java instruction/thread level parallelism with horizontal multithreading
Author :
Watanabe, Kenji ; Chu, Wanming ; Li, Yamin
Author_Institution :
Dept. of Comput. Hardware, Aizu Univ., Japan
Abstract :
Java bytecodes can be executed with the following three methods: a Java interpreter running on a particular machine interprets bytecodes; a Just-in-Time (JIT) compiler translates bytecodes to the native primitives of the particular machine and the machine executes the translated codes; and a Java processor executes bytecodes directly. The first two methods require no special hardware support for the execution of Java bytecodes and are widely used currently. The last method requires an embedded Java processor, picoJavaI or picoJavaII for instance. The picoJavaI and picoJavaII are simple pipelined processors with no ILP (instruction level parallelism) and TLP (thread level parallelism) supports. A so-called MAJC (microprocessor architecture for Java computing) design can exploit ILP and TLP by using a modified VLIW (very long instruction word) architecture and vertical multithreading technique, but it has its own instruction set and cannot execute Java bytecodes directly. In this paper, we investigate a processor architecture which can directly execute Java bytecodes meanwhile can exploit Java ILP and TLP simultaneously. The proposed processor consists of multiple slots implementing horizontal multithreading and multiple functional units shared by all threads executed in parallel. Our architectural simulation results show that the Java processor could achieve an average 20 IPC (instructions per cycle), or 7.33 EIPC (effective IPC), with 8 slots and a 4-instruction scheduling window for each slot. We also check other configurations and give the utilization of functional units as well as the performance improvement with various kinds of working loads
Keywords :
Java; computer architecture; microprocessor chips; multi-threading; program compilers; program interpreters; Java bytecodes; Java instruction/thread level parallelism; Java interpreter; Java processor; architectural simulation; bytecodes; functional units; horizontal multithreading; just-in-time compiler; microprocessor architecture; performance improvement; picoJavaI; picoJavaII; pipelined processors; vertical multithreading; very long instruction word; Computer aided instruction; Computer architecture; Hardware; Java; Microprocessors; Multithreading; Parallel processing; Processor scheduling; VLIW; Yarn;
Conference_Titel :
Computer Systems Architecture Conference, 2001. ACSAC 2001. Proceedings. 6th Australasian
Conference_Location :
Gold Coast, Qld.
Print_ISBN :
0-7695-0954-1
DOI :
10.1109/ACAC.2001.903373