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. [1]

GNU Compiler Collection has been available until version 3.2.3 as machine definition 'pj,' probably first patch was for version 2.9.[2] 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 worked 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.

The picoJava specification does not include any memory or I/O interface logic, so that developers can add their own logic to customize memory and an interface.


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.[3]

See also


  1. ^ a b "What is picoJava? Webopedia Definition". www.webopedia.com. Retrieved 2017-06-04.
  2. ^ a b "Patch: Support for picoJava". gcc-patches (Mailing list). 22 Oct 1999.
  3. ^ a b Puffitsch, W. and Schoeberl, M. 2007. picoJava-II in an FPGA. In Proceedings of the 5th international Workshop on Java Technologies For Real-Time and Embedded Systems (Vienna, Austria, September 26–28, 2007). JTRES '07, vol. 231. ACM, New York, NY, 213-221. http://doi.acm.org/10.1145/1288940.1288972


  • 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.