ACM Home Page
Please provide us with feedback. Feedback
Exploiting FPGA concurrency to enhance JVM performance
Full text PdfPdf (221 KB)
Source ACSC; Vol. 56 archive
Proceedings of the 27th Australasian conference on Computer science - Volume 26 table of contents
Dunedin, New Zealand
Pages: 223 - 232  
Year of Publication: 2004
Authors
James Parnis  The University of Western Australia, Crawley, W.A., Australia
Gareth Lee  The University of Western Australia, Crawley, W.A., Australia
Publisher
Australian Computer Society, Inc.  Darlinghurst, Australia, Australia
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 20,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Review this Article  

ABSTRACT

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Anderson, J. A. & Bell, J. M. (1997), Number Theory with Applications, Prentice Hall.
 
2
Celoxica (n.d.), 'Handel-C overview'. (Retrieved May 8, 2003 from the World Wide Web: http://www.celoxica.com/tech/handelc/default.asp).
 
3
 
4
Digital Communication Technologies (n.d.), 'Xilinx alliance core'. (Retrieved May 10, 2003 from the World Wide Web: http://www.xilinx.com/products/logicore/alliance/digital_comm_tech/ dct_lighfoot_32bit_processor.pdf).
 
5
ej-technologies (n.d.), 'jclasslib'. (Retrieved September 22, 2003 from the World Wide Web: http://www.ej-technologies.com/products/jclasslib/overview.html).
 
6
7
 
8
 
9
IEEE (1994), IEEE Standard VHDL Language Reference Manual: ANSI/IEEE Standard 1076-1993, IEEE Press.
 
10
 
11
Kreuzinger, J., Brinkschulte, U., Pfeffer, M., Uhrig, S. & Ungerer, T. (2003), 'Real-time event-handling and scheduling on a multithreaded Java micro-controller', Microprocessors and Microsystems27(1), 19--31.
 
12
13
 
14
Schoeberl, M. (2003), Using JOP at an early design stage in a real world application, in 'Proceedings of the workshop on Intelligent Solutions in Embedded Systems'. *http://www.vmars.tuwien.ac.at/wises/
 
15

Collaborative Colleagues:
James Parnis: colleagues
Gareth Lee: colleagues