Description:
Summary
Microelectronic chips have found home in a plethora of
embedded applications such as handheld devices, set top boxes, process
automation, automotive and medical devices. Due to a rapid growth in consumer
electronic applications, the focus of technology is shifting towards mobile
applications with emphasis on System on Chip (SoC) implementations.
The design space in such applications is characterised by fast
growing demand of functionality and performance, while still experiencing severe
power constraints. Time to market becomes even more important, making the
reduction of design costs a formidable task. This has compelled designers to use
computing solutions which allow extensive reuse of hardware and software
components in a system level co-design environment.
Simplicity and portability offered by Java improves productivity resulting in
reduced development time and cost. This has fuelled its use in a range of
embedded applications, but issues such as slow performance and unpredictable
execution characteristics are still limiting its adoption in real-time embedded
applications. The principal problem lies in the interpreted/emulated nature of
Java execution hosted on traditional processors. This project aims at developing
a direct execution Java processor platform which offers real-time execution
characteristics with application specific configurability offering on-demand
performance.
The Science and Innovation
This project involves the development of a standalone
Native Java Processor (NJP) platform which enables deterministic execution of
Java programs while offering high overall performance. The target architecture
accommodates Java’s complex instruction set (CISC) style opcodes as well as
simple stack based instructions in a single pipelined execution engine. The
execution unit also defines extended instructions to support native application
programmers interfaces (APIs) for low level functions such as memory and
hardware access. The architecture is further enhanced by providing native
support Java specific primitives for context switching, multithreading,
automatic memory management etc.
The project includes development of a complete tool chain for
automating: compilation of native code and Java API, profiling for static and
dynamic metrics, bytecode transformation, system optimisation, coverage
verification and linking of the runtime image for deployment.
Application specific configurability incorporated in the system allows
efficient utilisation of hardware resources which enable power and performance
tuning.
The Intellectual Property
Australian Provisional patent 2012900708 (27/2/2012)