- Search

- Kontakt

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

Whithin the Komodo project a real-time capable multithreaded Java microcontroller and the dedicated Java Virtual Machine (JVM) and the Application Programming Interface (API) were developed. The microcontroller is available as an abstract software simulator (written in Java) as well as a VHDL model. The VHDL model was used for the implementation of a FPGA prototype. The current version realises six hardware thread slots with altogether four different scheduling algorithms. Along with the processor core, the prototype also contains additional peripheral units for data transmission and signal processing. Also, an informal synthesis was accomplished with a 0.18 micron ASIC technology and 16 thread slots.

Description

Real-time Java Based on a Multithreaded Java-microcontroller

Komodo dragon

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.

Komodo microcontroller
Komodo project

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.

autonomous vehicle (8797 Byte)

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
    - Trap routines for complex instructions
    - Class loader
    - real-time garbage collection

Design and implementation of the middleware
    - Impact of the IST concept
    - Evaluation of scheduling strategies

Design of real-time benchmarks

Evaluation with application examples
    - autonomous guided vehicle (AGV)

Integration of hardware and software

Evaluation of the real-time Java, the interrupt service thread, and the guaranteed percentage scheduling concepts
    - Benchmarking
      (Execution speed, number of missed deadlines)
    - Comparing a conventional with a Komodo-based AGV implementation
      (performance, development effort, reliability and maintainability)

(*) Komodo: island close to Java, which is famous for its Komodo dragons eating cavilers (Image).

Trennlinie 2

Publications