基于FPGA的Java指令折叠器的研究与设计
An Instruction Folding Solution to a Java Processor Based on FPGA
-
摘要: Java虚拟机的设计是基于堆栈的, 它的性能由数据相关性而被限制.为了提高JVM的性能, 于是sun公司提出了堆栈操作折叠机制并且用于picoJava Ⅰ、Ⅱ处理器, 它折叠了42.3%的堆栈操作.通过把连续的字节码与预先定义的类型在指令译码器中对比, 那么push、pop操作的数量就能被减少.文中为Java处理器设计了一种简单的指令折叠器, 最终在FPGA上加以实现, 从而大大地提高了JVM的性能.Abstract: The execution performance of a stack-based Java virtual machine (JVM) is limited by the true data dependency.To enhance the performance of the JVM, a stack operations folding mechanism for the picoJava-Ⅰ/Ⅱ processor was proposed by Sun Microsystems to fold 42.3% stack operations.By comparing the continuous bytecodes with predefined folding patterns in instruction decoder, the number of push/pop operations in between the operand stack and the local variable could be reduced.In this paper, a simple instruction folding algorithm is proposed for a Java processor.It is achieved on the FPGA, which greatly improve the performance of JVM.