CoSy compiler development platform chosen as basis for European research initiative on high-performance Java for embedded systems

ACE Press Release

San Jose, California, USA 3 November, 1998

A consortium of four of Europe's leading universities and two of its largest electronics companies has adopted ACE Associated Compiler Experts' CoSy compiler development platform as the foundation stone for new research into compiler technologies that will allow the generation of highly efficient code for Java-based embedded systems. The computer science departments of the universities of Delft (The Netherlands), Linköping (Sweden), Karlsruhe (Germany) and Saarland (Germany), which are staffed by some of the world's most eminent compiler researchers, will work closely together to develop enabling technologies that will allow Java to be applied to highly parallel, heterogeneous, real-time embedded systems such as those required in the next generation of telecommunications and consumer electronics products. Divisions of Ericsson and Philips, both world leaders in embedded system applications, will provide industrial liaison, while ACE, as the developer of the CoSy compiler development platform, will act as the consortium's co-ordinator.

"In a world where short time-to-market for new product designs is critical to profitability, high-volume consumer electronics manufacturers regard the inherent portability of the Java programming language as the most effective way of achieving the levels of IP (Intellectual Property) re-use necessary to avoid having to re-invent their software each time they switch to a newer and faster processor architecture," said Rob Kurver, managing director of ACE Associated Compiler Experts bv. "Java programs, in the form of Java Beans, are also seen as the key to inter-operability between systems," he added.

To these ends, the new consortium has two main objectives. The first of these is to develop innovative techniques for high-performance Java execution that take into account the special requirements of embedded systems. Its second objective is to develop new optimisation strategies that will significantly accelerate Java execution on heterogeneous parallel multi-processor embedded system architectures. The results of this research will be judged by the production of a new CoSy-based Java compiler and a new set of benchmarks that reflect embedded system requirements. Both Philips and Ericsson will evaluate generated code efficiency in real applications. In addition to a new Java compiler, the consortium will also develop a Java Virtual Machine (JVM) interpreter that is tuned to embedded applications. All of these tools will fit seamlessly into the existing Java development environment.

There is an increasing tendency for embedded systems to employ heterogeneous multi-processor architectures, in which a standard CPU (for example, a 32-bit RISC core) is supported by one or more dedicated processors, such as a DSP, graphics accelerator or media processor. In the past, each of these processors has been programmed separately to perform distinctly different tasks. For example, the general purpose CPU might be dedicated to control-flow tasks and programmed in a high-level language such as C, while its associated DSP is dedicated to real-time digital signal filtering and programmed in assembler.

However, the next generation of embedded systems will require much closer co-operation between processors, necessitating both fine and coarse grained parallelism to be introduced at the programming level and taken care of by the compiler. This parallel processing may need to be extended to the point where individual tasks are dynamically allocated to whichever processor has appropriate resources available at a particular point in time — requiring processors with essentially different architectures to be able to run the same program. Tasks may even need to be transferred from one processor to another part way through execution. CoSy is the ideal platform on which to base compilers for these systems because it was designed from the outset to address the needs of complex parallel processor architectures in a very flexible way.

Because of the limited memory available to systems-on-silicon, the efficient use of memory is also a critical issue in embedded systems. Although Java relieves the programmer from the task of memory management by dynamically allocating memory usage, part of the consortium's work will be the development of much more efficient 'garbage collection' algorithms that can quickly reclaim areas of memory as they become available for re-use. Cache allocation algorithms represent another area of compiler technology that needs additional research in order to ensure the most efficient use of limited memory.

In addition to developing CoSy to the point where it will be able to generate highly efficient Java compilers for embedded systems, the consortium will also address the problem of compiling existing programming languages such as C to run on the JVM. For OEMs that have significant investment in existing software, this will be crucial to allowing them to modify and re-use this software for future applications. Example applications where this migration path will be essential include wireless communications, electronic 'smartcard' banking, WebTV and set-top-boxes for digital cable/satellite/terrestrial TV broadcast reception.

There are a number of reasons why CoSy was chosen as the preferred vehicle on which to base this research. Firstly, its highly modular structure allows new optimisers and generators to be integrated easily into the CoSy framework. "With its proven modular approach, CoSy is an ideal vehicle in which to integrate the different research components from the four universities," said Professor Reinhard Wilhem of Saarland University. "Being a production quality compiler platform, it will also ensure a smooth migration path from research work to industrial usage," he added.

Secondly, CoSy already supports the development of highly efficient code for superscalar and VLIW parallel processing architectures. "We have already used CoSy successfully in several compiler related R&D projects, ranging from massively parallel processing using HPF to C language programming for general-purpose and proprietary DSP processors," commented Peter Fritzson, Director of PELAB (the Programming Environment Laboratory) at Linköping University.

The ability of Cosy to allow dynamic interaction between its various optimisers and generators, and to allow compiler developers to run optimisers in different combinations and sequences, is also important. "Only a proven flexible compiler development framework such as CoSy can meet the additional requirements of embedded, real-time, heterogeneous Java solutions by enabling all the necessary complex optimisations to be included," said Henk Sips, Professor of Computer Science at the University of Delft.

Finally, Assistant Professor Uwe Assmann of Karlsruhe University highlights an important feature of CoSy that mirrors the short 'time-to-market' requirement of the consumer oriented applications to which the consortium's embedded Java research will be applied. "In research, time-to-experiment is the major key to success," he said. "CoSy's powerful data and architecture description languages allow us to construct our research prototypes in a very flexible and extensible way." As a result of this flexibility and extensibility, the embedded Java consortium aims to incorporate 20 man-years of research effort into the CoSy compiler development platform in a period of just two years.

ACE Associated Compiler Experts bv (a wholly owned subsidiary of ACE Associated Computer Experts, Amsterdam, The Netherlands) is a world leader in the production of compiler development tools for professional compiler developers. Its open CoSy compiler development platform gives compiler developers the ability to achieve a similar leading edge position in the construction of better and faster optimising compilers for architectures ranging from 4-bit DSPs to 256-bit VLIW processors. CoSy already supports a wide range of programming languages including C, Fortran and Java.