comment on this article

The next big thing

Java processor designs are in progress, with products expected next year.

The ramp up of Java in embedded applications is becoming obvious. The technology is already embedded within consumer devices such as pdas and set top boxes, while on the horizon other portable applications will include multimedia electronic products, such as digital cameras, cellular handsets and internet appliances. Further commitments from hardware and software companies are likely to widen its implementation.

Arm is reporting brisk business in its ARM926EJ-S core, incorporating Jazelle technology, Arm's architecture extensions for Java and which is optimised for Java applications. Just last month, Fujitsu joined existing ARM926EJ-S licensees, including LSI Logic; Sanyo and Samsung, among others.

It claims it has licensed the core in response to customer needs for a combination of accelerated Java execution and the ability to run platform operating systems such as Symbian OS, microITRON, Windows CE, Linux and Palm. Despite the flurry of licence announcements, devices based on the core are not expected before Q2 2002.

In developing Jazelle, Arm examined the pros and cons (see box) and according to Steve Steele, Arm's Java program manager, the company dismissed the dedicated processor approach, primarily because it does not support existing applications or established operating systems. The coprocessor approach, too, was avoided, because it would offer lower performance and be difficult to accelerate. "And it still means integrating two processors," he added.

Jazelle is a further extension of Arm's existing architecture, running Java byte code as a finite state machine rather than a traditional microcoded engine. It runs alongside the Arm 32bit instruction set and the compressed 16bit Thumb instruction set. Importantly, Java is implemented inside the cache. The top four elements of the Java stack are remapped to Arm registers, avoiding the translation stage, improving performance and saving on hardware (requiring only 12k extra gates). "Jazelle is particularly appropriate for a resource constrained environment," Steel said, "as it requires little extra power, memory and gate count. And we have achieved this because we have control of the device architecture."

But Arm has had to make some compromises. Not all Java bytecode is directly executed. In the ARM926EJ, for example, 134 instructions (of 201) are executed directly in hardware, the remainder are emulated. Despite the use of optimised instructions, implementing an emulated instruction will slow down the processor. "In hardware, typically an instruction will execute in 4 clock cycles," Steele said, "in software it can take 50 to 60 cycles."
Through application profiling (albeit using SPEC JVM98), and a careful study of the types of applications for which Jazelle processors are likely to be selected (such as games and 3G functions), Arm has selected the bytecode for direct execution. "We reckon that typically, for the applications we envisage, emulated instructions will be in use for less than 5% of the time.

However, Arm offers a floating point option, increasing the number of directly executed bytecodes to 149. There are further tuning and optimising options, Steele explained. "Designers can allocate some of the zero wait state memory, in the device, to lock down certain bytecodes into the tightly coupled memory interfaces."

Arm is already working on next generation devices with Java support. Steele admits that the Jazelle approach is not ideal for every application, particularly for products that are less memory constrained.

Alternatives
But while becoming a major force in the embedded Java world, Arm's Jazelle is not the only contender. A UK based firm, Digital Communication Technologies, has developed a Java bytecode processor based on an ARCtangent, 32bit risc core from Arc. The company already offers a Java and C-language processor based on a stack architecture, for downloading to an fpga. The latest design is likely to result in microcontrollers based on the Arc core early next year.

Details are emerging from Infineon of a 32bit microcontroller architecture to support Java Card, the software implementation of Java on smart cards. It adds instructions for virtual machines that depend on a stack architecture but does not work as a hardware bytecode interpreter. Java Card is based on stack based virtual machine architecture. And the development of Hitachi's latest 32bit microcontroller has taken into account the needs of supporting the virtual machine operating system, with instructions that are not translations of the Java bytecodes but are close equivalents. Both devices have been optimised with memory and instruction enhancements to improve Java Card applications performance and security aspects.

Enabling technology
Earlier in the year, Aplix, a Japanese provider of consumer and embedded Java technology, announced it had licensed the Arm Jazelle technology enabling kit, for inclusion in future versions of its Java software called JBlend.

JBlend includes a high performance, small footprint Java virtual machine, various configurations and profiles, extensions, porting tools and test suites.

Aplix is virtually a veteran in the Java world. Customers' products using the existing JBlend include the Sony MD Discam video camera, Sanyo Digital Photo Album and wireless mobile 'phones from Sony, Sharp, Toshiba, Mitsubishi and Hitachi.

With Jazelle, it expects its JBlend customers to exploit the interactive Java technology in more powerful, (yet low power consumption) embedded devices, such as graphics intensive games, online ticketing, home shopping and banking systems.

Meanwhile, London based OneEighty Software is working on implementing the complete Java virtual machine (jvm) on smartcards to replace the existing limited function Java Card. The aim is to install a version of Java2 Standard Edition (J2SE) into less than 55kbyte of on chip memory, running on existing, popular 8bit microcontrollers such as the 8051 or HC08.

While considered superior to the current Java Card, which does not support threads nor many of the standard Java data types, this version of jvm still only supports some basic classes, not the usual class libraries found in the full J2SE release. Applications developers will need to optimise the remaining microcontroller memory to add custom or special classes.

Finally, despite the fact that the real time specification for Java (rtsj) still lacks a complete reference implementation and testing compatibility kit, 'real' real time programming in Java is possible via the processors from aJile Systems, for example, which support many of the features recommended by the draft rtsj spec.

{box}
Pros and cons
Java has become popular not only because graduates over recent years have adopted it as a more modern alternative to the decades-old C and even C++. Its write once run anywhere (wora) structure, theoretically makes it ideal not only for portable applications, but also gives it portability to any platform. Programmers like it because it can be used to develop high performance applications rapidly, and it is robust and secure. The downside of Java, on its own, is that it does not support legacy software.
Java presents further challenges for use in embedded applications. The portable, byte code instruction set architecture can be implemented physically, which requires memory, processing capability and power – typically far more than an embedded device has available. Alternatively, it can be emulated, which also requires memory and is inherently inefficient and slow. Integrating a Java virtual machine into a dedicated processor or coprocessor solves the performance issues, but few portable and embedded applications can afford the extra space or power resource required. Selecting or limiting the Java classes installed can help, but generally has to be predetermined, along with the amount of memory provided.

Author
Graham Pitcher

Comment on this article


This material is protected by MA Business copyright See Terms and Conditions. One-off usage is permitted but bulk copying is not. For multiple copies contact the sales team.

What you think about this article:


Add your comments

Name
 
Email
 
Comments
 

Your comments/feedback may be edited prior to publishing. Not all entries will be published.
Please view our Terms and Conditions before leaving a comment.

Related Articles