DocumentCode
1742176
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
fYear
2001
fDate
2001
Firstpage
122
Lastpage
129
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;
fLanguage
English
Publisher
ieee
Conference_Titel
Computer Systems Architecture Conference, 2001. ACSAC 2001. Proceedings. 6th Australasian
Conference_Location
Gold Coast, Qld.
ISSN
1530-0927
Print_ISBN
0-7695-0954-1
Type
conf
DOI
10.1109/ACAC.2001.903373
Filename
903373
Link To Document