• Start date: 16.08.2001
  • End date: 31.12.2004
  • Funded by: DFG (Deutsche Forschungsgemeinschaft)
  • Local head of project: Prof. Dr. Theo Ungerer
  • Local scientists: Sascha Uhrig
  • External scientists / cooperations: Uwe Brinkschulte, Florentin Picioroaga, Etienne Schneider (Department for Process Control, Automation and Robotics, University of Karlsruhe)


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.


Real-time Java Based on a Multithreaded Java-microcontroller

© University of Augsburg

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. 

© University of Augsburg

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.


© University of Augsburg

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.


© University of Augsburg

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
    - 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 





  • Energy Management for Embedded Multithreaded Processors with Integrated EDF Scheduling
    Sascha Uhrig, Theo Ungerer 
    18th International Conference on Architecture of Computing Systems, Hall in Tirol/Innsbruck, Austria, pages 1-17, March 2005.


  • Real-Time Garbage Collection for a Multithreaded Java Microcontroller 
    Matthias Pfeffer, Theo Ungerer, Stephan Fuhrmann, Jochen Kreuzinger, Uwe Brinkschulte 
    Journal of Real Time Systems, volume 26, number 1, pages 89-106, 2004
  • Dynamic Real-Time Reconfiguration on a Multithreaded Java-Microcontroller 
    M. Pfeffer, Th. Ungerer 
    International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2004), Vienna, Austria, pages 86-92, May 2004
  • Fine-Grained Power Management for Multithreaded Processor Cores 
    S. Uhrig, Th. Ungerer 
    ACM Symposium on Applied Computing (SAC 2004), Nicosia, Cyprus, March 2004
  • Fine-Grained Power Management for Real-Time Embedded Processors 
    S. Uhrig, Th. Ungerer 
    RTS Embedded Systems, Paris, France, pages 129-146, March 2004
  • Optimierung des Energieverbrauchs in echtzeitfähigen, mehrfädigen Prozessoren 
    Sascha Uhrig 
    Dissertation, Universität Augsburg.
    Erstgutachter: Professor Dr. Theo Ungerer
    Zweitgutachter: Professor Dr. Uwe Brinkschulte, Universität Karlsruhe
  • Ein echtzeitfähiges Java-System für einen mehrfädigen Java-Mikrocontroller 
    Matthias Pfeffer 
    Dissertation, Universität Augsburg.
    Erstgutachter: Professor Dr. Theo Ungerer
    Zweitgutachter: Professor Dr. Uwe Brinkschulte, Universität Karlsruhe


  • Hardware-based Power Management for Real-Time Applications 
    S. Uhrig, Th. Ungerer 
    Second International Symposium on Parallel and Distributed Computing (ISPDC), Ljubljana, Slovenia, October 2003
  • Real-time event-handling and scheduling on a multithreaded Java microcontroller 
    J. Kreuzinger, U. Brinkschulte, M. Pfeffer, S. Uhrig, Th. Ungerer 
    Microprocessors and Microsystems, volume 27, number 1, pages 19-31, 2003
  • Der Komodo Mikrocontroller 
    Sascha Uhrig 
    Technical Report, Institute of Computer Science, University of Augsburg, July 2003 


  • Implementing Real-time Scheduling Within a Multithreaded Java Microcontroller 
    S. Uhrig, C. Liemke, M. Pfeffer, J. Becker, U. Brinkschulte, Th. Ungerer 
    Proceedings of the 6th Workshop on Multithreaded Execution, Architecture and Compilation MTEAC-6 in Association with the 35th International Symposium on Microarchitecture (Micro-35), Istanbul, Turkey, pages 57-64, 2002
  • A Real-time Java System on a Multithreaded Java Microcontroller 
    M. Pfeffer, S. Uhrig, Th. Ungerer, U. Brinkschulte 
    International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2002), Washington D.C., USA, April/May 2002
  • Connecting Peripheral Interfaces to a Multithreaded Java Microcontroller 
    S. Uhrig, U. Brinkschulte, M. Pfeffer, Th. Ungerer 
    Workshop on Java in Embedded Systems, ARCS 2002, Karlsruhe, Germany, April 2002
  • A Scheduling Technique Providing a Strict Isolation of Real-time Threads 
    U. Brinkschulte, J. Kreuzinger, M. Pfeffer, Th. Ungerer 
    Seventh IEEE International Workshop on Object-oriented Real-time Dependable Systems, WORDS 2002, San Diego, USA, January 2002


  • A Microkernel Middleware Architecture for Distributed Embedded Real-Time Systems 
    U. Brinkschulte, A. Bechina, F. Picioroaga, E. Schneider, Th. Ungerer, J. Kreuzinger, M. Pfeffer 
    20th Symposium on Reliable Distributed Systems, New Orleans, USA, October 2001
  • Real-time Garbage Collection for a Multithreaded Java Microcontroller 
    S. Fuhrmann, M. Pfeffer, J. Kreuzinger, Th. Ungerer, U. Brinkschulte 
    The Fourth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC), Magdeburg, Germany, pages 69-76, May 2001.
    Reprinted in: Real-Time Systems Journal, 26, 1, Januar 2004, 89-106.
    Reprinted in: Real-Time Systems Journal (Kluwer Pub.) 2003.


  • Real-time Scheduling on Multithreaded Processors 
    J. Kreuzinger, A. Schulz, M. Pfeffer, T. Ungerer, U. Brinkschulte, C. Krakowski 
    Real-Time Computing Systems and Applications (RTCSA), Cheju Island, South Korea, pages 155-159, December 2000
  • Echtzeitfähige Ereignisbehandlung mit Hilfe eines mehrfädigen Java-Prozessorkerns für Systems-on-a-Chip 
    J. Kreuzinger, M. Pfeffer, S. Uhrig, T. Ungerer, U. Brinkschulte 
    Mikroelektronik für die Informationstechnik, ITG Workshop, Darmstadt, Germany, pages 259-263, November 2000
  • Performance Evaluations and Chip-Space Requirements of a Multithreaded Java Microcontroller 
    J. Kreuzinger, R. Zulauf, A. Schulz, Th. Ungerer, M. Pfeffer, U. Brinkschulte, C. Krakowski 
    Second Annual Workshop on Hardware Support for Objects and Microarchitectures for Java in conjunction with ICCD '00, Austin, TX, USA, pages 32-36, September 2000
  • A Microkernel Architecture for a Highly Scalable Real-Time Middleware 
    U. Brinkschulte, C. Krakowski, J. Riemschneider, J. Kreuzinger, M. Pfeffer, T. Ungerer 
    Real-TimeTechnology and Applications Symposium (RTAS) wip, Washington D.C., USA, May/June 2000
  • Performance Evaluations of a Multithreaded Java Microcontroller 
    J. Kreuzinger, M. Pfeffer, A. Schulz, T. Ungerer, U. Brinkschulte, C. Krakowski 
    Parallel and Distributed Processing Techniques and Applications (PDPTA) 2000, Las Vegas, Nevada, USA, pages 95-99, June 2000


  • Interrupt Service Threads - A New Approach to Handle Multiple Hard Real-Time Events on a Multithreaded Microcontroller 
    U. Brinkschulte, C. Krakowski, J. Kreuzinger, T. Ungerer 
    Real-Time Systems Symposium (RTSS), Phoenix, AZ, USA, pages 11-15, December 1999
  • Ein mehrfädiger Java-Mikrocontroller für eingebettete Systeme 
    U. Brinkschulte, C. Krakowski, J. Kreuzinger, T. Ungerer 
    Architektur von Rechnersystemen (ARCS) Workshop 99, Jena, Germany, pages 35-42, October 1999
  • A Multithreaded Java Microcontroller for Thread-Oriented Real-Time Event-Handling 
    U. Brinkschulte, C. Krakowski, J. Kreuzinger, T. Ungerer
    Parallel Architectures and Compilation Techniques (PACT), Newport Beach, USA, pages 34-39, October 1999
  • The Komodo Project: Thread-based Event Handling Supported by a Multithreaded Java Microcontroller 
    U. Brinkschulte, C. Krakowski, J. Kreuzinger, R. Marston, T. Ungerer 
    25th EUROMICRO Conference, Milano, Italy, pages 122-128, September 1999


  • Thread-basierte Ereignisbehandlung auf Java-Prozessoren in eingebetteten Systemen 
    U. Brinkschulte, T. Ungerer 
    Workshop JAVA und Eingebettete Systeme, Karlsruhe, Germany pages 45-54, September 1998