picoJava is a microprocessor specification dedicated to native execution of Java bytecode without the need for an interpreter or just-in-time compilation. The aim is to speed bytecode execution up by up to 20 times, compared to standard Intel CPU with a Java Virtual Machine.
picoJava-based microprocessors can also execute C/C++ code as efficiently as comparable RISC CPU architectures. GNU Compiler Collection has been available until version 3.2.3 as machine definition 'pj,' probably first patch was for version 2.9. GNU Binutils is still available as machine definition 'pj,' as of Binutil version 2.28. GNU Debugger was once implemented, but code might be lost. Sun Microsystems provided instruction set simulator workd with GDB as SCSL open source code.
This approach results in the fastest Java runtime performance with a small memory footprint and competitive performance on code not written in the Java language.
picoJava was originally designed to be used in consumer electronic products that run Java applications.
Sun Microsystems never released a product based on this technology; however, Sun have licensed the technology to companies such as Fujitsu, NEC and Siemens. The Verilog code of picoJava was later released under SCSL open source code, but the download page is currently not available.
In 2000 Fujitsu released the J-Starter Kit, a development system featuring a picoJava Architecture processor.
The open-source version of picoJava has been implemented in an FPGA.
- McGhan, Harlan; O’Connor, Mike (October 1998). "PicoJava: A Direct Execution Engine For Java Bytecode". Computer, Volume 31, Issue 10: pp. 22–30.
- O’Connor, J. Michael; Tremblay, Marc (March/April 1997). "picoJava-I: The Java Virtual Machine in Hardware". IEEE Micro, Volume 17, Issue 2: pp. 45–53.
- Hangal, Sudheendra; O'Connor, J. Michael (May/June 1999). "Performance analysis and validation of the picoJava processor." IEEE Micro, Volume 19, Issue 3.