Komodo
| Start date: | 16.08.2001 |
| Funded by: | DFG (Deutsche Forschungsgemeinschaft) |
| Local project leader: | Prof. Dr. Theo Ungerer, Dr. Sascha Uhrig |
| Local scientists: |
Matthias Pfeffer Sascha Uhrig |
| External scientists / cooperations: |
Uwe Brinkschulte, Florentin Picioroaga, Etienne Schneider (Department for Process Control, Automation and Robotics, University of Karlsruhe) |
| Publications: | Publication list |
Abstract
Description
Real-time Java Based on a Multithreaded Java-microcontroller
State-of-the-art embedded systems are programmed in assembly or C/C++ languages. Java features several advantages with respect to real-time systems: The object orientation of Java language supports easy programming, reusability, and robustness. Java bytecode is portable, of small size, and secure due to the bytecode verifier in the Java-Virtual-Machine (JVM). However, the use of Java is hardly possible because of its high hardware requirements and unpredictable real-time behavior. Both problems are solved with the design of a real-time, multithreaded Java-microcontroller. A Java-microcontroller executes Java bytecode instructions directly in hardware raising the performance of Java applications and decreasing the hardware requirements compared to a Java interpreter or Just-In-Time (JIT) compiler.
Contemporary microcontrollers activate Interrupt-Service-Routines (ISRs) for event handling. A multithreaded processor provides several register sets and program counters on a chip and enables overlapped execution of different threads. Assuming a multithreaded processor core in a microcontroller allows to trigger so-called Interrupt-Service-Threads (ISTs) instead of ISRs for event handling. Thread activation is extremely fast due to the multiple register sets on the multithreaded processor chip, thus enabling single-cycle event reaction. Because of the parallel execution, ISTs are not blocked by ISTs with higher priority, in contrast to ISRs. |
![]() |
![]() |
Our Komodo* microcontroller combines multithreading with a pipelined Java processor core similar to the picoJava of Sun. Besides the usual priority scheme (highest priority first) a so-called guaranteed percentage scheme is supported. In the real-time application, the priorities of the ISTs are given in percentage of the microcontroller's computing power. Several different real-time conditions can be fulfilled simultaneously. In the Komodo microcontroller, a priority manager selects in a very fine-grained manner between instructions of different threads for execution. The selection depends on a counter that keeps track of the number of instructions in a period of time. |
Together with Prof. Dr. Uwe Brinkschulte, Dipl.-Inform. Florentin Picioroaga, and Dipl.-Inform. Etienne Schneider of the Department for Process Control, Automation and Robotics a complete system with hardware, operating system (JVM), middleware and application (automated guided vehicles) is under development. |
![]() |
The following table shows the task distribution among the members of the research group:
| Prof. Dr. Theo Ungerer Dipl.-Inform. Jochen Kreuzinger Dipl.-Inform. Matthias Pfeffer |
Prof. Dr. Uwe Brinkschulte Dipl.-Inform. Florentin Picioroaga Dipl.-Inform. Etienne Schneider |
| Hardware design of the Komodo microcontroller - Software simulator - VHDL description - Synthesis and FPGA prototype Real-time Komodo JVM |
Design and
implementation of the middleware - Impact of the IST concept - Evaluation of scheduling strategies Design of real-time benchmarks Evaluation with application examples |
| Integration of
hardware and software Evaluation of the real-time Java, the interrupt service thread, and the guaranteed percentage scheduling concepts |
|
(*) Komodo: island close to Java, which is famous for its Komodo dragons eating cavilers (Image).




