Safety-Critical Java on a Time-Predictable Processor

For real-time systems the whole execution stack needs to be time-predictable and analyzable for the worst-case execution time (WCET). This paper presents a time-predictable platform for safety-critical Java. The platform consists of (1) the Patmos processor, which is a time-predictable processor; (2) a C compiler for Patmos with support for WCET analysis; (3) the HVM, which is a Java-to-C compiler; (4) the HVM-SCJ implementation which supports SCJ Level 0, 1, and 2 (for both single and multicore platforms); and (5) a WCET analysis tool. We show that real-time Java programs translated to C and compiled to a Patmos binary can be analyzed by the AbsInt aiT WCET analysis tool. To the best of our knowledge the presented system is the second WCET analyzable real-time Java system; and the first one on top of a RISC processor.

[1]  James J. Hunt,et al.  Using global data flow analysis on bytecode to aid worst case execution time analysis for real-time Java programs , 2008, JTRES '08.

[2]  Benedikt Huber,et al.  The T-CREST approach of compiler and WCET-analysis integration , 2013, 16th IEEE International Symposium on Object/component/service-oriented Real-time distributed Computing (ISORC 2013).

[3]  Jan Vitek,et al.  A real-time Java virtual machine with applications in avionics , 2007, TECS.

[4]  Martin Schoeberl,et al.  Towards a Time-predictable Dual-Issue Microprocessor: The Patmos Approach , 2011, PPES.

[5]  Benedikt Huber,et al.  Compiling for Time Predictability , 2012, SAFECOMP Workshops.

[6]  Jan Gustafsson,et al.  Automatic Derivation of Loop Bounds and Infeasible Paths for WCET Analysis Using Abstract Execution , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[7]  Martin Schoeberl,et al.  Static analysis of worst-case stack cache behavior , 2013, RTNS '13.

[8]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

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

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

[11]  Benedikt Huber,et al.  Worst‐case execution time analysis for a Java processor , 2010, Softw. Pract. Exp..

[12]  Jan Vitek,et al.  Real time Java on resource-constrained platforms with Fiji VM , 2009, JTRES '09.

[13]  Daniel Prokesch,et al.  Combined WCET analysis of bitcode and machine code using control-flow relation graphs , 2013, LCTES '13.

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

[15]  Paul Lokuciejewski,et al.  A compiler framework for the reduction of worst-case execution times , 2010, Real-Time Systems.

[16]  Martin Schoeberl,et al.  A Method Cache for Patmos , 2014, 2014 IEEE 17th International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing.

[17]  Anders P. Ravn,et al.  Safety-critical Java for low-end embedded platforms , 2012, JTRES '12.

[18]  Martin Schoeberl,et al.  The embedded Java benchmark suite JemBench , 2010, JTRES '10.

[19]  Martin Schoeberl,et al.  Comparison of ILP and Model Checking based WCET Analysis Research Report 72/2008 , 2008 .

[20]  Heung Seok Chae,et al.  An adaptive load balancing management technique for RFID middleware systems , 2010 .

[21]  Jan Gustafsson,et al.  WCET TOOL CHALLENGE 2011: REPORT , 2011, WCET 2011.

[22]  Benedikt Huber,et al.  Scope-Based Method Cache Analysis , 2014, WCET.

[23]  Martin Schoeberl,et al.  Safety-critical Java on a Java processor , 2012, JTRES '12.

[24]  Reinhold Heckmann,et al.  Worst case execution time prediction by static program analysis , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[25]  Martin Schoeberl,et al.  A time-predictable stack cache , 2013, 16th IEEE International Symposium on Object/component/service-oriented Real-time distributed Computing (ISORC 2013).

[26]  Florian Brandner,et al.  Splitting functions into single-entry regions , 2014, 2014 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES).

[27]  Jan Vitek,et al.  Developing safety critical Java applications with oSCJ/L0 , 2010, JTRES '10.

[28]  Bent Thomsen,et al.  HVMTP: A time predictable and portable java virtual machine for hard real‐time embedded systems , 2014, JTRES '14.

[29]  Peter P. Puschner,et al.  A Generator for Time-Predictable Code , 2015, 2015 IEEE 18th International Symposium on Real-Time Distributed Computing.

[30]  Jiri Gaisler A portable and fault-tolerant microprocessor based on the SPARC v8 architecture , 2002, Proceedings International Conference on Dependable Systems and Networks.

[31]  Wolfgang Schröder-Preikschat,et al.  KESO: an open-source multi-JVM for deeply embedded systems , 2010, JTRES '10.

[32]  Martin Schoeberl,et al.  A Modular Worst-case Execution Time Analysis Tool for Java Processors , 2008, 2008 IEEE Real-Time and Embedded Technology and Applications Symposium.

[33]  Benedikt Huber,et al.  T-CREST: Time-predictable multi-core architecture for embedded systems , 2015, J. Syst. Archit..