A Java processor is the implementation of the
Java virtual machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descr ...
(JVM) in hardware. In other words, the
Java bytecode
Java bytecode is the instruction set of the Java virtual machine (JVM), the language to which Java and other JVM-compatible source code is compiled. Each instruction is represented by a single byte, hence the name bytecode, making it a compact ...
that makes up the instruction set of the abstract machine becomes the instruction set of a concrete machine. These were the most popular form of a
high-level language computer architecture A high-level language computer architecture (HLLCA) is a computer architecture designed to be targeted by a specific high-level programming language (HLL), rather than the architecture being dictated by hardware considerations. It is accordingly al ...
, and were "an attractive choice for building embedded and real-time systems that are programmed in Java".
However, as of 2017, embedded Java is no longer common and no realtime Java chip vendors exist.
Implementations
There are several research Java processors tested on
FPGA
A field-programmable gate array (FPGA) is a type of configurable integrated circuit that can be repeatedly programmed after manufacturing. FPGAs are a subset of logic devices referred to as programmable logic devices (PLDs). They consist of a ...
, including:
*
picoJava was the first attempt to build a Java processor, by
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
. Its successor picoJava-II was freely available under the
Sun Community Source License,
[ and is still available from some archives.
* provides hardware support for object-oriented functions
* Java Optimized Processor for ]FPGA
A field-programmable gate array (FPGA) is a type of configurable integrated circuit that can be repeatedly programmed after manufacturing. FPGAs are a subset of logic devices referred to as programmable logic devices (PLDs). They consist of a ...
s. A PhD thesis i
available
and it has been used in several commercial applications.[ In 2019 it was extended to be energy aware (EAJOP).
Some commercial implementations included:
* The aJile processor was the most successful ]ASIC
An application-specific integrated circuit (ASIC ) is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in a digital voice recorder or a high-efficien ...
Java processor.[
* Cjip from Imsys Technologies. Available on boards and with wireless radios from AVIDwireless]["Imsys hedges bets on Java: rewritable-microcode chip has instruction sets for Java, Forth, C/C++"]
by Tom R. Halfhil]
* ARM9E, ARM926EJ-S was an ARM processor able to run Java bytecode, this technology being named ''Jazelle
Jazelle DBX (direct bytecode execution) is an extension that allows some ARM processors to execute Java bytecode in hardware as a third execution state alongside the existing ARM and Thumb modes. Jazelle functionality was specified in the ARMv5TE ...
''.
See also
* Java Card
Java Card is a software technology that allows Java platform, Java-based applications (applets) to be run securely on smart cards and more generally on similar secure small memory footprint devices which are called "secure elements" (SE). Today ...
References
{{Reflist
Java virtual machine
High-level language computer architecture