Communicating sequential processes
Communicating sequential processes
Programming in Occam
Estimation of average switching activity in combinational and sequential circuits
DAC '92 Proceedings of the 29th ACM/IEEE Design Automation Conference
Operating systems (2nd ed.): design and implementation
Operating systems (2nd ed.): design and implementation
Virtual Java/FPGA interface for networked reconfiguration
Proceedings of the 2001 Asia and South Pacific Design Automation Conference
Improving Java performance using hardware translation
ICS '01 Proceedings of the 15th international conference on Supercomputing
Java Virtual Machine Specification
Java Virtual Machine Specification
IEEE Micro
CODES+ISSS '09 Proceedings of the 7th IEEE/ACM international conference on Hardware/software codesign and system synthesis
Hi-index | 0.00 |
The Java Programming Language has been praised for its platform independence and portability, but because of its slow execution speed on a software Java Virtual Machine (JVM), some people decide to use faster languages such as C. Building a JVM in hardware is an obvious solution to this problem. Several approaches have been taken to try to achieve the best solution. One approach is by reducing the number of Java instructions a program has to execute along with directly executing instructions in hardware, for example on a Field Programmable Gate Array (FPGA), to increase the execution speed. Another approach is the translation of Java Byte Codes into native code by a FPGA and then executing the native code on a conventional CPU. Others have developed a multi-threaded JVM and exploited the parallelism offered by a FPGA and have specifically designed the JVM for real-time systems. This paper compares and contrasts all these approaches and then argues that the parallelism of a FPGA should be exploited in the most general way possible by not restricting the threads of execution to a specific task. It gives a method for building such a JVM and also some results from a JVM that was built using this method. The paper concludes that this approach should be taken to build a system that is capable of running threads of a Java program in parallel.