PicoJava
From JopWiki
picoJava is a native bytecode execution microprocessor from Sun Microsystems. It can execute up to four bytecodes in one cycle through instruction folding. Its source code is available under the Sun Community Source License, meaning that it can be used for research without any license fee.
The processor is currently ported by Wolfgang Puffitsch to an Altera Cyclone FPGA. The appropriate package, Harvey, is still under development, but benchmarks are already working.
[edit] Benchmark Results
The benchmarks, which belong to the JavaBenchEmbedded benchmark suite, have been conveyed on the DE2 board from Altera. On this board, JOP runs at 100 MHz while picoJava runs at 40 MHz. The iload_3 iadd and if_icmplt benchmarks return no result because they run too fast and do not create a measurable overhead.
| JOP | picoJava | |
|---|---|---|
| iload_3 iadd | 2 clocks | no result |
| iinc | 4 clocks | 3 clocks |
| ldc | 11 clocks | 3 clocks |
| if_icmplt taken | 6 clocks | 3 clocks |
| if_icmplt not taken | 6 clocks | no result |
| getfield | 26 clocks | 3 clocks |
| getstatic | 19 clocks | 5 clocks |
| iaload | 17 clocks | 3 clocks |
| invoke | 133 clocks | 28 clocks |
| invokestatic | 103 clocks | 22 clocks |
| invokeinterface | 153 clocks | 164 clocks |
| Sieve | 5410 1/s | 7656 1/s |
| Kfl | 16094 1/s | 23322 1/s |
| UdpIp | 7049 1/s | 11736 1/s |
| Lift | 14173 1/s | 25244 1/s |
