News

Wireless Java from Tao drives Sendo Smartphone

by Guy Kewney | posted on 27 March 2002


It could be a big breakthrough for several people; for Microsoft, in getting one of its first Smartphones into the market, and for Sun too, for getting Java into a Microsoft Smartphone. But the secret breakthrough is for a little known British software invention, Taos, which speeds up Java and reduces its size at the same time ...

Guy Kewney

Much to Microsoft's dismay, one of its star product wins has somewhat polluted the purity of the triumph: British startup phone maker Sendo has decided that Microsoft's "dotNet" (.Net) is all very good, but the market wants to see Java on its Microsoft-designed Z100 Smartphone as well. Now, Sendo can offer wireless developers the opportunity to write applications for the Z100 Smartphone.

But the announcement of Java isn't just Java; rather, it's the "Tao intent" package, based on the Tao virtual processor, which substantially speeds up the Java engine - while at the same time, packing it into a smaller amount of memory.

Taos was hailed as a breakthrough some years ago, when it was first created by a UK games programmer working in his mother's front room, but it couldn't compete with other mainstream networking platforms. However, the virtual processor (VP) which is the basis of Taos has survived, and by using it as an operating platform, it can now be sold as a way of optimising multimedia.

The Smartphone, of course, is far more suited to multimedia than previous generation phones, but still faces problems of size and battery weight, which makes every advantage critical.

Sendo has announced a partership with Tao to use the "intent" multimedia Java platform on the Z100 Multimedia Smartphone, which uses Microsoft Windows Powered Smartphone 2002 software.

For Sendo, this isn't quite the risk it may seem - because, oddly, this isn't the first high-spec phone to use Taos.

Motorola, one of Tao Group's backers, produced early samples of a very desirable portable last year, but then killed the project as part of internal cost-cutting exercises. The initial production run went to insiders, and you can still find senior Motorola executives with Tao-based phones that never shipped officially.

It's worth taking some of Tao's tech info on board here, in an attempt to understand what this might mean. Tao has developed its own implementation of both the Java Virtual Machine and the libraries.

"All of the core libraries have been re-written in portable machine code and use many of Tao's own unique techniques to improve performance, memory efficiency and behavioural consistency across platforms," says Tao. However, as a Java licensee Tao provides specification conformant solutions.

So the idea is that Tao's clients get the benefits of being both a standard Sun licensee and receiving a whole raft of added value from Tao.

The Tao Virtual Processor (VP) is the foundation of the intent JTE system. The VP is a specification for a logical or "virtual processor". Unlike the Java virtual machine, VP is much more like a real processor chip; for example, it is based on the usual concept of register-based processing and manipulation. Like a real processor, VP has a binary "executable" encoding and an assembly language based on familiar mnemonics. "The VP encoding is compact, being smaller than most RISC binaries by a ratio, typically, of 1:1.5," claims Tao - and it has benchmarks to prove it.

If code is in Java Byte Code, then it is converted to VP code by the intent jcode Translator. Once code is in VP, it is then in the common binary portable format upon which intent depends. VP code is executed by using a Tao "Translator" to translate code from the VP format to the appropriate native code and then executing the native code directly.

"Note that this technique is radically different from interpretation (in the same way that JIT-compiled code in a JVM is executed directly, not interpreted)," comments the Tao documentation. "Translation can occur in a 'just in time' fashion (i.e. code is translated to native when it is required), or VP code can be pre-translated. Any combination of the two approaches can be employed in a system depending on the relative priorities of ROM footprint, latency and other memory considerations."

VP includes a number or features not normally seen on real processors, that allow particular operations to be optimised easily for a given processor or platform. One of the most important of these is a mechanism for making calls to named methods in an object-oriented style (including virtual calls in the C++ sense). This particular mechanism is powerful yet does not have the RAM footprint overheads of a traditional C++ V-table mechanism. This gives intent significant footprint advantages over traditional JIT systems.

The VP to native translators are a core part of the VP technology. Translators are very compact and execute with minimal memory overhead. This means that dynamic translation is a practical possibility for quite small and low powered embedded devices. For the smallest devices, however, static translation is normally a more suitable approach. There is a VP to native translator for each target processor family and, in many cases, for individual processor types. This allows intent JTE to take advantage easily of new capabilities in later generation processors whilst retaining full binary compatibility with older generation processors in the same family. Translated code can therefore execute more efficiently than hand-coded native assembler where the latter is written generically for a processor family.

The translators are themselves written in VP Assembler. This means that translation for one processor can be performed on any processor type. It is possible to build heterogeneous networks where dynamic translation of code for one processor can be performed on a separate processor.

The jcode translator extends the VP to native translator technology into the Java technology space. This translator is fully integrated into Tao's dynamic binding mechanism which means that classes or even just individual methods can be dynamically linked and translated on an as-required basis, or classes or methods can be pre-translated and/or statically bound.

Since the Java code is translated to native prior to being executed, performance of the intent Java language runtime is favourably comparable to a JIT. It additionally is extremely compact (fitting an entire PersonalJavaTM compliant system into less than a couple of MB, even in native code form) and has the feature that the translators run with a very low memory overhead, making the system usable in embedded environments unsuitable for traditional JITs. Since the libraries have been rewritten from scratch in Tao's portable machine code (standard implementations from 3rd parties use a combination of C, C++ and the Java language) there are a range of consequential benefits. The libraries are compact (see the footprint figures), they are also completely [binary] portable, and such portability assures consistent behaviour across platforms, irrespective of the hardware or operating system lying underneath. The intent JTE has the ability to work with any standard, compliant Java development environment that produces Java classes in the standard byte code format.

Tao's intent application runtime environment is compliant with Sun's J2ME (Java 2 Platform, Micro Edition) specification for a mobile phone Java environment. The intent system provides a fast Virtual Machine fully compatible with Sun's KVM (Kilobyte Virtual Machine) specification. Full support is also provided for Sun's CLDC and MIDP specifications, which enhance the KVM to provide mobile phone specific features, such as standard user interface, persistent storage and networking.

Tao's Java system includes an enhanced high-performance graphics library to allow Z100 specific Java applications to take advantage of the Sendo handset's large TFT colour display screen and fast graphics processing capability.

"The global adoption of Java technology-enabled handsets by mobile operators has attracted content developers for wireless devices such as entertainment, media, and enterprise access," said Hugh Brogan, CEO of Sendo. "This agreement emphasises Sendo's core commitment to offer operators and consumers mobile devices and services, which are flexible and have a high level of personalisation."