A time-predictable branch predictor

Long pipelines need good branch predictors to keep the pipeline running. Current branch predictors are optimized for the average case, which might not be a good fit for real-time systems and worst-case execution time analysis. This paper presents a time-predictable branch predictor co-designed with the associated worst-case execution time analysis. The branch predictor uses a fully-associative cache to track branch outcomes and destination addresses. The fully-associative cache avoids any false sharing of entries between branches. Therefore, we can analyze program scopes that contain a number of branches lower than or equal to the number of branches in the prediction table. Experimental results show that the worst-case execution time bounds of programs using the proposed predictor are lower than using static branch predictors at a moderate hardware cost.

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

[2]  Damien Hardy,et al.  The Heptane Static Worst-Case Execution Time Estimation Tool , 2017, WCET.

[3]  Isabelle Puaut,et al.  Traceability of Flow Information: Reconciling Compiler Optimizations and WCET Estimation , 2014, RTNS.

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

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

[6]  Benedikt Huber,et al.  Patmos: a time-predictable microprocessor , 2018, Real-Time Systems.

[7]  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..

[8]  Jan Reineke,et al.  Branch Target Buffers: WCET Analysis Framework and Timing Predictability , 2009, 2009 15th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications.

[9]  Pascal Sainrat,et al.  A case for static branch prediction in real-time systems , 2005, 11th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA'05).

[10]  Isabelle Puaut,et al.  Worst Case Execution Time Analysis for a Processor with Branch Prediction , 2004, Real-Time Systems.

[11]  Jakob Engblom,et al.  The worst-case execution-time problem—overview of methods and survey of tools , 2008, TECS.

[12]  Tulika Mitra A Framework to Model Branch Prediction for Worst Case Execution Time Analysis , 2002 .

[13]  Christine Rochange,et al.  A contribution to branch prediction modeling in WCET analysis , 2005, Design, Automation and Test in Europe.

[14]  Tulika Mitra,et al.  A Framework to Model Branch Prediction for WCET Analysis , 2002 .

[15]  François Bodin,et al.  A WCET-oriented static branch prediction scheme for real time systems , 2005, 17th Euromicro Conference on Real-Time Systems (ECRTS'05).

[16]  Stefan M. Petters,et al.  Experimental evaluation of code properties for WCET analysis , 2003, RTSS 2003. 24th IEEE Real-Time Systems Symposium, 2003.

[17]  John Wawrzynek,et al.  Chisel: Constructing hardware in a Scala embedded language , 2012, DAC Design Automation Conference 2012.

[18]  Wolfgang Puffitsch Efficient Worst-Case Execution Time Analysis of Dynamic Branch Prediction , 2016, 2016 28th Euromicro Conference on Real-Time Systems (ECRTS).

[19]  Xavier Leroy,et al.  Formal verification of a realistic compiler , 2009, CACM.

[20]  Peter Marwedel,et al.  WCET-driven branch prediction aware code positioning , 2011, 2011 Proceedings of the 14th International Conference on Compilers, Architectures and Synthesis for Embedded Systems (CASES).

[21]  Iain Bate,et al.  Worst-case execution time analysis for dynamic branch predictors , 2004, Proceedings. 16th Euromicro Conference on Real-Time Systems, 2004. ECRTS 2004..