LRR-TUM-Logo Department of Informatics
Technische Universität München
Informatik X: Rechnertechnik und Rechnerorganisation / Parallelrechnerarchitektur
Prof. Dr. Arndt Bode , Prof. Dr. Hans Michael Gerndt
abakus50x50.gif
 Home  | Addresses  | Staff  | Research  | Lectures 
Search 

LRR-TUM
Institut für InformatikTU-München
Lehr- und Forschungseinheit Informatik X
Lehrstuhl für Rechnertechnik und Rechnerorganisation/Parallelrechner
Prof. Dr. A. Bode
TUM-INFO


 
FaRM

FPGA based
Rconfigurable Microprozessors

Dr. Carsten Trinitis, Georg Acher

Objectives Projects Tools Staff
Publications
Student´s
Information

 
Objectives

The FaRM-project investigates in the use of Field Programmable Gate Arrays (FPGAs) as accelerators for microprocessors and rapid prototyping.
 

Projects

JIFFY: Java Just-In-Time-Compiler in FPGAs

The Java programming language (and its processor Java Virtual Machine, JVM) from Sun Microsystems Inc. allows system independent execution of programs. In the heterogenous World Wide Web (WWW) it became quickly a pseudo standard, because nearly all computers can now run the same program without modifications. The key to the system independency is also the biggest drawback of Java, its very low execution speed: The host processor has to interprete the JVM code (the bytecode). So Java can be 60 times slower than comparable native programs.

One improvement is the just-in-time compilation (JIT) of the code, here the microprocessor translates the bytecode before execution in native instructions, giving a speedup factor of 5-20. However, it is still significantly slower than native written programs. Unfortunately JIT compiliation is only feasible for well-equipped computers, because the translated code needs 3 to 4 times more memory and the JIT compiler itself is CPU and memory consuming. Additionally, the compilation is also time consuming, so JIT compilation for one-time-used modules is very ineffecient. So the 'pure' JIT-approach is not usable for embedded Java applications ('microcontrollers') and for 'small' network computers (NCs).

A solution for this problem is the development of a silicon-based JVM, a processor that can run the bytecode directly without interpretation. Such chips are already announced or introduced by Sun and Rockwell. Sun's implementation, the picoJava processor, has some optimizations for running the bytecode, like a stack cache and different levels of execution (hardcoded, microcode and emulation).

However, a standard processor is needed anyway in a cheap NC to run the operating system and other non-Java applications. Addionally, the extra cost of a totally new environment (eg. developing new hardware drivers) makes the silicon-based JVM not very attractive.

To make JIT compilation for NCs faster and easier, the possibilities for JIT in FPGAs are being investigated.
There are some requirements that make this task complex if full versatility should be achieved:

Project State:
A very lowlevel (ie. HW-related) C-based model of the translation process is being developed. It is embedded as an JDK1.2 JIT plugin. For x86-CPUs, some smaller benchmarks gave 40-70% C-Speed. For Alpha(21164) the results are between 30-50%. Only simple optimizsations are done, so this results have the potential to improve. However, the concept will not reach the runtime performance of state-of-the-art JIT compilers (like Symantec JIT or MSIE-JIT). The advantage of the FPGA-JIT is in another area: The instrumentation of the C-based model indicated, that with a moderately 30MHz clock  an FPGA can achieve a translation rate of more than 500000-600000 JVM-instructions per second. This is the rate of the very fast CACAO JIT-compiler on an 500MHz-21164. This estimation doesn't include any possible accelerations due to pipelining in FPGA, so the translation rate is likely to increase in the final version. this makes JIT compilation so fast, that on systems with small memory a aggressive cleanup of already JITed methods would be possible.
 
Staff
Publications
Student´s Information



Georg Acher

Last modified: Mon May 3 13:54:36 CEST 1999
(none) Webmaster