A predecoding technique for ILP exploitation in Java processors

see the original item page
in the repository's web site and access all digital files if the item*



A predecoding technique for ILP exploitation in Java processors (EN)

Sideris, I (EN)
Economakos, G (EN)
Pekmestzi, K (EN)

journalArticle (EN)

2014-03-01T01:27:47Z
2008 (EN)


Java processors have been introduced to offer hardware acceleration for Java applications. They execute Java bytecodes directly in hardware. However, the stack nature of the Java virtual machine instruction set imposes a limitation on the achievable execution performance. In order to exploit instruction level parallelism and allow out of order execution, we must remove the stack completely. This can be achieved by recursive stack folding algorithms, such as OPEX, which dynamically transform groups of Java bytecodes to RISC like instructions. However, the decoding throughputs that are obtained are limited. In this paper, we explore microarchitectural techniques to improve the decoding throughput of Java processors. Our techniques are based on the use of a predecoded cache to store the folding results, so that it could be reused. The ultimate goal is to exploit every possible instruction level parallelism in Java programs by having a superscalar out of order core in the backend being fed at a sustainable rate. With the use of a predecoded cache of 2 x 2048 entries and a 4-way superscalar core we have from 4.8 to 18.3 times better performance than an architecture employing pattern based folding. (c) 2008 Elsevier B.V. All rights reserved. (EN)

Computer Science, Hardware & Architecture (EN)

Out of order (EN)
Java Virtual Machine (JVM) (EN)
Stack folding (EN)
JAVA applications (EN)
Java programming language (EN)
Throughput (EN)
ILP (EN)
Java processor (EN)
Elsevier (CO) (EN)
Program processors (EN)
Reduced instruction set computing (EN)
Java processors (EN)
hardware accelerations (EN)
Predecoded cache (EN)
Stack folding algorithms (EN)
Mathematical transformations (EN)
Computer programming languages (EN)
Execution performance (EN)
Decoding (EN)
Instruction-level parallelism (ILP) (EN)
Java bytecodes (EN)
super scalar (EN)
JAVA programs (EN)
In order (EN)
Out-of-order execution (EN)

Journal of Systems Architecture (EN)

English

ELSEVIER SCIENCE BV (EN)




*Institutions are responsible for keeping their URLs functional (digital file, item page in repository site)