A Modular Worst-case Execution Time Analysis Tool for Java Processors

Recent technologies such as the real-time specification for Java promise to bring Java's advantages to real-time systems. While these technologies have made Java more predictable, they lack a crucial element: support for determining the worst-case execution time (WCET). Without knowledge of WCET, the correct temporal behavior of a Java program cannot be guaranteed. Although considerable research has been applied to the theory of WCET analysis, implementations are much less common, particularly for Java. Recognizing this deficiency, we have created an open-source, extensible tool that supports WCET analysis of Java programs. Designed for flexibility, it is built around a plug- in model that allows features to be incorporated as needed. Users can plug in various processor models, loop bound detectors, and WCET analysis algorithms without having to understand or alter the tool's internals.

[1]  Raimund Kirner,et al.  Classification of WCET analysis techniques , 2005, Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'05).

[2]  Peter Altenbernd,et al.  On the false path problem in hard real-time programs , 1996, Proceedings of the Eighth Euromicro Workshop on Real-Time Systems.

[3]  Martin Schoeberl,et al.  Modeling the Function Cache for Worst-Case Execution Time Analysis , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[4]  Paulo Abadie Guedes,et al.  On the Design of an Extensible Platform for Flow Analysis of Java using Abstract Interpretation , 2003, WCET.

[5]  Raymond Klefstad,et al.  Interactive Back-annotation of Worst-case Execution Time Analysis for Java Microprocessors , 2007, 13th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA 2007).

[6]  Jan Gustafsson,et al.  Code Analysis for Temporal Predictability , 2005, Real-Time Systems.

[7]  Martin Schoeberl,et al.  JOP: A Java Optimized Processor for Embedded Real-Time Systems , 2008 .

[8]  Martin Schoeberl,et al.  A Time Predictable Instruction Cache for a Java Processor , 2004, OTM Workshops.

[9]  David Hardin Real-time objects on the bare metal: an efficient hardware realization of the Java/sup TM/ Virtual Machine , 2001, Fourth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISORC 2001.

[10]  Albert F. Niessner,et al.  Experiences in Adopting Real-Time Java for Flight-Like Software , 2003, OTM Workshops.

[11]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[12]  Jakob Engblom,et al.  Processor Pipelines and Static Worst-Case Execution Time Analysis , 2002 .

[13]  Alan Burns,et al.  Portable worst-case execution time analysis using Java Byte Code , 2000, Proceedings 12th Euromicro Conference on Real-Time Systems. Euromicro RTS 2000.

[14]  Peter P. Puschner,et al.  Calculating the maximum execution time of real-time programs , 1989, Real-Time Systems.

[15]  Martin Schoeberl,et al.  A Java processor architecture for embedded real-time systems , 2008, J. Syst. Archit..

[16]  Martin Schoeberl,et al.  Design and implementation of an efficient stack machine , 2005, 19th IEEE International Parallel and Distributed Processing Symposium.

[17]  J. Michael O'Connor,et al.  picoJava-I: the Java virtual machine in hardware , 1997, IEEE Micro.

[18]  Sharad Malik,et al.  Performance Analysis of Embedded Software Using Implicit Path Enumeration , 1995, 32nd Design Automation Conference.

[19]  Martin Schoeberl,et al.  WCET analysis for a Java processor , 2006, JTRES '06.

[20]  Alan C. Shaw,et al.  Reasoning About Time in Higher-Level Language Software , 1989, IEEE Trans. Software Eng..

[21]  Raymond Klefstad,et al.  Toward a Unified Standard for Worst-Case Execution Time Annotations in Real-Time Java , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.