A time-predictable VLIW processor and its compiler support

Abstract Time predictability is an important requirement for real-time embedded application domains such as automotive, air transportation, and multimedia processing. However, the architectural design of modern microprocessors mainly concentrates on improving the average-case performance, which can significantly compromise the time predictability and can make accurate worst-case performance analysis extremely difficult if not impossible. This paper studies the time predictability of VLIW (Very Long Instruction Word) processors and its compiler support. We analyze the impediments to time predictability for VLIW processors and propose compiler-based techniques to address these problems with minimal disturbance on the VLIW hardware design. The VLIW compiler is enhanced to support full if conversion, hyperblock scheduling, and intra-block nop insertion to enable efficient WCET (Worst Case Execution Time) analysis for VLIW processors. Our experiments indicate that the time-predictability of VLIW processor can be improved significantly.

[1]  Kemal Ebcioglu,et al.  Compilers for Instruction-Level Parallelism , 1997, Computer.

[2]  Jakob Engblom,et al.  Analysis of the execution time unpredictability caused by dynamic branch prediction , 2003, The 9th IEEE Real-Time and Embedded Technology and Applications Symposium, 2003. Proceedings..

[3]  Jean-François Deverge,et al.  Safe measurement-based WCET estimation , 2005, WCET.

[4]  M. Schlansker,et al.  On Predicated Execution , 1991 .

[5]  Peter P. Puschner,et al.  Computing Maximum Task Execution Times — A Graph-Based Approach , 2004, Real-Time Systems.

[6]  Alan Burns,et al.  Guest Editorial: A Review of Worst-Case Execution-Time Analysis , 2000, Real-Time Systems.

[7]  B. Ramakrishna Rau,et al.  Region-based compilation: Introduction, motivation, and initial experience , 2007, International Journal of Parallel Programming.

[8]  B. Ramakrishna Rau,et al.  The Cydra 5 departmental supercomputer: design philosophies, decisions, and trade-offs , 1989, Computer.

[9]  David B. Whalley,et al.  Bounding worst-case instruction cache performance , 1994, 1994 Proceedings Real-Time Systems Symposium.

[10]  Alan C. Shaw,et al.  Experiments with a program timing tool based on source-level timing schema , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[11]  Jakob Engblom,et al.  Pipeline timing analysis using a trace-driven simulator , 1999, Proceedings Sixth International Conference on Real-Time Computing Systems and Applications. RTCSA'99 (Cat. No.PR00306).

[12]  Scott Mahlke,et al.  Effective compiler support for predicated execution using the hyperblock , 1992, MICRO 1992.

[13]  N. Seshan High VelociTI processing [Texas Instruments VLIW DSP architecture] , 1998 .

[14]  Jakob Engblom,et al.  Requirements for and Design of a Processor with Predictable Timing , 2004, Design of Systems with Predictable Behaviour.

[15]  B. Ramakrishna Rau,et al.  Achieving high levels of instruction-level parallelism with reduced hardware complexity , 1997 .

[16]  Isabelle Puaut,et al.  A modular and retargetable framework for tree-based WCET analysis , 2001, Proceedings 13th Euromicro Conference on Real-Time Systems.

[17]  Hans Mulder,et al.  Introducing the IA-64 Architecture , 2000, IEEE Micro.

[18]  Andreas Steininger,et al.  Processor support for temporal predictability - the SPEAR design example , 2003, 15th Euromicro Conference on Real-Time Systems, 2003. Proceedings..

[19]  Wolfgang A. Halang,et al.  Architectural support for predictability in hard real time systems , 1992 .

[20]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[21]  Sang Lyul Min,et al.  An accurate worst case timing analysis technique for RISC processors , 1994, 1994 Proceedings Real-Time Systems Symposium.

[22]  Peter Puschner Is Worst-Case Execution-Time Analysis a Non-Problem? — Towards New Software and Hardware Architectures , 2002 .

[23]  Lothar Thiele,et al.  Design for Time-Predictability , 2004, Design of Systems with Predictable Behaviour.

[24]  B. R. Rau,et al.  The Cydra 5 Departmental Supercomputer: design philosophies, decisions and trade-offs , 1989, [1989] Proceedings of the Twenty-Second Annual Hawaii International Conference on System Sciences. Volume 1: Architecture Track.

[25]  Microsystems Sun,et al.  Jini^ Architecture Specification Version 2.0 , 2003 .

[26]  Reinhard Wilhelm,et al.  The influence of processor architecture on the design and the results of WCET tools , 2003, Proceedings of the IEEE.

[27]  Richard E. Hank,et al.  Region-based compilation: an introduction and motivation , 1995, MICRO 1995.

[28]  Christine Rochange Code padding to Improve the WCET Calculability , 2006 .

[29]  Jakob Engblom,et al.  Processor Pipelines and Their Properties for Static WCET Analysis , 2002, EMSOFT.

[30]  Ken Kennedy,et al.  Conversion of control dependence to data dependence , 1983, POPL '83.

[31]  Neil C. Audsley,et al.  Predictable and efficient virtual addressing for safety-critical real-time systems , 2001, Proceedings 13th Euromicro Conference on Real-Time Systems.

[32]  Per Stenström,et al.  Timing anomalies in dynamically scheduled microprocessors , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[33]  Sharad Malik,et al.  Performance analysis of embedded software using implicit path enumeration , 1997, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[34]  Alan Burns,et al.  Writing temporally predictable code , 2002, Proceedings of the Seventh IEEE International Workshop on Object-Oriented Real-Time Dependable Systems. (WORDS 2002).

[35]  Eric Rotenberg,et al.  Virtual simple architecture (VISA): exceeding the complexity limit in safe real-time systems , 2003, ISCA '03.

[36]  B. R. Rau,et al.  HPL-PD Architecture Specification:Version 1.1 , 2000 .

[37]  David B. Whalley,et al.  Integrating the timing analysis of pipelining and instruction caching , 1995, Proceedings 16th IEEE Real-Time Systems Symposium.

[38]  Paolo Faraboschi,et al.  Embedded Computing: A VLIW Approach to Architecture, Compilers and Tools , 2004 .