PicoJava
Encyclopedia
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. 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
.
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 open-source, 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.
Microprocessor
A microprocessor incorporates the functions of a computer's central processing unit on a single integrated circuit, or at most a few integrated circuits. It is a multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and...
specification dedicated to native execution of Java bytecode
Java bytecode
Java bytecode is the form of instructions that the Java virtual machine executes. Each bytecode opcode is one byte in length, although some require parameters, resulting in some multi-byte instructions. Not all of the possible 256 opcodes are used. 51 are reserved for future use...
without the need for an interpreter
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...
or just-in-time compilation
Just-in-time compilation
In computing, just-in-time compilation , also known as dynamic translation, is a method to improve the runtime performance of computer programs. Historically, computer programs had two modes of runtime operation, either interpreted or static compilation...
. The aim is to speed bytecode execution up by up to 20 times, compared to standard Intel CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
with a Java Virtual Machine
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...
. picoJava-based microprocessors can also execute C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
/C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
code as efficiently as comparable RISC CPU architectures. This approach results in the fastest Java runtime performance with a small memory footprint
Memory footprint
Memory footprint refers to the amount of main memory that a program uses or references while running.This includes all sorts of active memory regions like code, static data sections , heap, as well as all the stacks, plus memory required to hold any additional data structures, such as symbol...
and competitive performance on code not written in the Java language.
The picoJava specification does not include any memory or I/O interface
Input/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...
logic, so that developers can add their own logic to customize memory and an interface
Interface (computer science)
In the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...
.
Products
picoJava was originally designed to be used in consumer electronic products that run Java applications.Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...
never released a product based on this technology; however, Sun have licensed the technology to companies such as Fujitsu, NEC and Siemens. The Verilog
Verilog
In the semiconductor and electronic design industry, Verilog is a hardware description language used to model electronic systems. Verilog HDL, not to be confused with VHDL , is most commonly used in the design, verification, and implementation of digital logic chips at the register-transfer level...
code of picoJava was later released under open-source, but the download page is currently not available.
In 2000 Fujitsu
Fujitsu
is a Japanese multinational information technology equipment and services company headquartered in Tokyo, Japan. It is the world's third-largest IT services provider measured by revenues....
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.
External links
- picoJava at Sun Community Source Licensing (SCSL)
- Release announcement (Fujitsu)