Cache-Related Preemption Delays and Real-Time Scheduling : A Survey for Uniprocessor Systems

The trend in nowadays real-time embedded systems is to use commercial off-the-shelf components, and in particular CPUs with cache memories. But because of the way the cache is working, additional delays known as Cache-Related Preemption Delays (CRPDs) might occur as soon as preemptive scheduling is considered. These CRPDs make the predictability problem more complex and may even threaten the system schedulability. This article presents different existing strategies to deal with CRPD issues. These strategies can focus on reducing the CRPDs at the cache level or can work at the scheduling level to control the number of preemptions. Combinations between those different methods are also presented.

[1]  Sebastian Altmeyer,et al.  WCET Analysis for Preemptive Scheduling , 2008, WCET.

[2]  Tullio Vardanega,et al.  A rapid cache-aware procedure positioning optimization to favor incremental development , 2013, 2013 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

[3]  Sebastian Altmeyer,et al.  Cache-Related Preemption Delay Computation for Set-Associative Caches - Pitfalls and Solutions , 2009, WCET.

[4]  Johan J. Lukkien,et al.  Worst-case response time analysis of real-time tasks under fixed-priority scheduling with deferred preemption , 2007, 19th Euromicro Conference on Real-Time Systems (ECRTS'07).

[5]  Manas Saksena,et al.  Scheduling fixed-priority tasks with preemption threshold , 1999, Proceedings Sixth International Conference on Real-Time Computing Systems and Applications. RTCSA'99 (Cat. No.PR00306).

[6]  Giorgio C. Buttazzo,et al.  Feasibility Analysis under Fixed Priority Scheduling with Fixed Preemption Points , 2010, 2010 IEEE 16th International Conference on Embedded and Real-Time Computing Systems and Applications.

[7]  Minming Li,et al.  Instruction cache locking for multi-task real-time embedded systems , 2011, Real-Time Systems.

[8]  J. H. Patel,et al.  Use of preferred preemption points in cache-based real-time systems , 1995, Proceedings of 1995 IEEE International Computer Performance and Dependability Symposium.

[9]  Robert I. Davis,et al.  Accounting for Cache Related Pre-emption Delays in Hierarchical Scheduling , 2014, RTNS '14.

[10]  Frank Mueller,et al.  Tightening the Bounds on Feasible Preemption Points , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[11]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[12]  Björn B. Brandenburg,et al.  Cache-Related Preemption and Migration Delays : Empirical Approximation and Impact on Schedulability ∗ , 2010 .

[13]  Stefan M. Petters Bounding the execution time of real-time tasks on modern processors , 2000, Proceedings Seventh International Conference on Real-Time Computing Systems and Applications.

[14]  Giorgio C. Buttazzo,et al.  Optimal Selection of Preemption Points to Minimize Preemption Overhead , 2011, 2011 23rd Euromicro Conference on Real-Time Systems.

[15]  Yudong Tan,et al.  WCRT analysis for a uniprocessor with a unified prioritized cache , 2005, LCTES '05.

[16]  Christine Rochange,et al.  On the Complexity of Modeling Dynamic Branch Predictors when Computing Worst-Case Execution Times , 2007 .

[17]  Jörn Schneider Cache and pipeline sensitive fixed priority scheduling for preemptive real-time systems , 2000, Proceedings 21st IEEE Real-Time Systems Symposium.

[18]  Irving L. Traiger,et al.  Evaluation Techniques for Storage Hierarchies , 1970, IBM Syst. J..

[19]  Isabelle Puaut,et al.  Scratchpad memories vs locked caches in hard real-time systems: a quantitative comparison , 2007 .

[20]  Frank Mueller,et al.  Bounding Worst-Case Response Time for Tasks with Non-Preemptive Regions , 2008, 2008 IEEE Real-Time and Embedded Technology and Applications Symposium.

[21]  M. Campoy,et al.  Static Use of Locking Caches in Multitask Preemptive Real-Time Systems , 2001 .

[22]  Sebastian Altmeyer,et al.  Computing the Maximum Blocking Time for Scheduling with Deferred Preemption , 2009, 2009 Software Technologies for Future Dependable Distributed Systems.

[23]  Jay K. Strosnider,et al.  SMART (strategic memory allocation for real-time) cache design using the MIPS R3000 , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[24]  Sanjoy K. Baruah,et al.  Limited Preemption EDF Scheduling of Sporadic Task Systems , 2010, IEEE Transactions on Industrial Informatics.

[25]  Gerhard Fohler,et al.  Reducing the number of preemptions in fixed priority scheduling , 2004, Proceedings. 16th Euromicro Conference on Real-Time Systems, 2004. ECRTS 2004..

[26]  James H. Anderson,et al.  Cache-Aware Real-Time Scheduling on Multicore Platforms: Heuristics and a Case Study , 2008, 2008 Euromicro Conference on Real-Time Systems.

[27]  Robert I. Davis,et al.  Integrating Cache-Related Pre-Emption Delays into Analysis of Fixed Priority Scheduling with Pre-Emption Thresholds , 2014, 2014 IEEE Real-Time Systems Symposium.

[28]  Robert I. Davis,et al.  Cache Related Pre-emption Delay Aware Response Time Analysis for Fixed Priority Pre-emptive Systems , 2011, RTSS.

[29]  Geoffrey Nelissen,et al.  A context aware cache controller to bridge the gap between theory and practice in real-time systems , 2014, 2014 IEEE 20th International Conference on Embedded and Real-Time Computing Systems and Applications.

[30]  Chang-Gun Lee,et al.  Analysis of Cache-Related Preemption Delay in Fixed-Priority Preemtive Scheduling , 1998, IEEE Trans. Computers.

[31]  James H. Anderson,et al.  Optimizing Preemption-Overhead Accounting in Multiprocessor Real-Time Systems , 2014, RTNS.

[32]  Stefan M. Petters,et al.  Preemption delay analysis for floating non-preemptive region scheduling , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[33]  Andreas Ermedahl,et al.  The Mälardalen WCET Benchmarks: Past, Present And Future , 2010, WCET.

[34]  Jan Reineke,et al.  Caches in WCET Analysis: Predictability - Competitiveness - Sensitivity , 2008 .

[35]  Frank Mueller,et al.  Compiler support for software-based cache partitioning , 1995, Workshop on Languages, Compilers, & Tools for Real-Time Systems.

[36]  Stefan M. Petters,et al.  An improved preemption delay upper bound for floating non-preemptive region , 2012, 7th IEEE International Symposium on Industrial Embedded Systems (SIES'12).

[37]  Kelvin D. Nilsen,et al.  Cache Issues in Real-Time Systems , 1994 .

[38]  Lui Sha,et al.  Impact of Cache Partitioning on Multi-tasking Real Time Embedded Systems , 2008, 2008 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications.

[39]  Jeffrey C. Mogul,et al.  The effect of context switches on cache performance , 1991, ASPLOS IV.

[40]  Yudong Tan,et al.  WCRT analysis for a uniprocessor with a unified prioritized cache , 2005, LCTES.

[41]  Hiroyuki Tomiyama,et al.  Code placement techniques for cache miss rate reduction , 1997, TODE.

[42]  Damien Hardy,et al.  Estimation of Cache Related Migration Delays for Multi-Core Processors with Shared Instruction Caches , 2009 .

[43]  David B. Whalley,et al.  Timing analysis for data caches and set-associative caches , 1997, Proceedings Third IEEE Real-Time Technology and Applications Symposium.

[44]  Johan J. Lukkien,et al.  Using fixed-priority scheduling with deferred preemption to exploit fluctuating network bandwidth , 2008 .

[45]  Wei Zhang,et al.  Accurately Estimating Worst-Case Execution Time for Multi-core Processors with Shared Direct-Mapped Instruction Caches , 2009, 2009 15th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications.

[46]  Robert I. Davis,et al.  OUTSTANDING PAPER: Evaluation of Cache Partitioning for Hard Real-Time Systems , 2014, 2014 26th Euromicro Conference on Real-Time Systems.

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

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

[49]  Yun Liang,et al.  Integrated instruction cache analysis and locking in multitasking real-time systems , 2013, 2013 50th ACM/EDAC/IEEE Design Automation Conference (DAC).

[50]  Minming Li,et al.  Minimizing WCET for Real-Time Embedded Systems via Static Instruction Cache Locking , 2009, 2009 15th IEEE Real-Time and Embedded Technology and Applications Symposium.

[51]  Sebastian Altmeyer,et al.  Resilience analysis: tightening the CRPD bound for set-associative caches , 2010, LCTES '10.

[52]  Johan J. Lukkien,et al.  Generalized Fixed-Priority Scheduling with Limited Preemptions , 2012, 2012 24th Euromicro Conference on Real-Time Systems.

[53]  David B. Whalley,et al.  Bounding Pipeline and Instruction Cache Performance , 1999, IEEE Trans. Computers.

[54]  Sebastian Altmeyer,et al.  A New Notion of Useful Cache Block to Improve the Bounds of Cache-Related Preemption Delay , 2009, 2009 21st Euromicro Conference on Real-Time Systems.

[55]  Wang Yi,et al.  Cache-aware scheduling and analysis for multicores , 2009, EMSOFT '09.

[56]  Erik Hagersten,et al.  StatCache: a probabilistic approach to efficient and accurate data locality analysis , 2004, IEEE International Symposium on - ISPASS Performance Analysis of Systems and Software, 2004.

[57]  Peter J. Denning,et al.  The working set model for program behavior , 1968, CACM.

[58]  Giorgio Buttazzo,et al.  Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications , 1997 .

[59]  Chang-Gun Lee,et al.  Enhanced analysis of cache-related preemption delay in fixed-priority preemptive scheduling , 1996, Proceedings Real-Time Systems Symposium.

[60]  Pascal Richard,et al.  Complexity of scheduling real-time tasks subjected to cache-related preemption delays , 2015, 2015 IEEE 20th Conference on Emerging Technologies & Factory Automation (ETFA).

[61]  Yun Liang,et al.  WCET-Centric dynamic instruction cache locking , 2014, 2014 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[62]  Heiko Falk,et al.  WCET-driven cache-aware code positioning , 2011, 2011 Proceedings of the 14th International Conference on Compilers, Architectures and Synthesis for Embedded Systems (CASES).

[63]  Marco Caccamo,et al.  Toward the Predictable Integration of Real-Time COTS Based Systems , 2007, 28th IEEE International Real-Time Systems Symposium (RTSS 2007).

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

[65]  Kang G. Shin,et al.  Preempt a Job or Not in EDF Scheduling of Uniprocessor Systems , 2014, IEEE Transactions on Computers.

[66]  Jochen Liedtke,et al.  OS-controlled cache predictability for real-time systems , 1997, Proceedings Third IEEE Real-Time Technology and Applications Symposium.

[67]  Johan J. Lukkien,et al.  Exact response-time analysis for fixed-priority preemption-threshold scheduling , 2010, 2010 IEEE 15th Conference on Emerging Technologies & Factory Automation (ETFA 2010).

[68]  F. Rodriguez,et al.  Static use of locking caches vs. dynamic use of locking caches for real-time systems , 2003, CCECE 2003 - Canadian Conference on Electrical and Computer Engineering. Toward a Caring and Humane Technology (Cat. No.03CH37436).

[69]  Paul Lokuciejewski,et al.  WCET-driven Cache-based Procedure Positioning Optimizations , 2008, 2008 Euromicro Conference on Real-Time Systems.

[70]  Mathai Joseph,et al.  Finding Response Times in a Real-Time System , 1986, Comput. J..

[71]  Robert I. Davis,et al.  Pre-emption cost aware response time analysis for fixed priority pre-emptive systems , 2011 .

[72]  Sanjoy K. Baruah,et al.  The limited-preemption uniprocessor scheduling of sporadic task systems , 2005, 17th Euromicro Conference on Real-Time Systems (ECRTS'05).

[73]  Nathan Fisher,et al.  Minimizing Cache Overhead via Loaded Cache Blocks and Preemption Placement , 2015, 2015 27th Euromicro Conference on Real-Time Systems.

[74]  Yudong Tan,et al.  Timing analysis for preemptive multi-tasking real-time systems with caches , 2004 .

[75]  Tulika Mitra,et al.  Accurate estimation of cache-related preemption delay , 2003, First IEEE/ACM/IFIP International Conference on Hardware/ Software Codesign and Systems Synthesis (IEEE Cat. No.03TH8721).

[76]  Andrew Wolfe,et al.  Software-based cache partitioning for real-time applications , 1994 .

[77]  Stefan M. Petters,et al.  Temporal isolation with preemption delay accounting , 2014, Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA).

[78]  Frank Mueller,et al.  Bounding Preemption Delay within Data Cache Reference Patterns for Real-Time Tasks , 2006, 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06).

[79]  Stéphane Rubini,et al.  Addressing cache related preemption delay in fixed priority assignment , 2015, 2015 IEEE 20th Conference on Emerging Technologies & Factory Automation (ETFA).

[80]  Sebastian Altmeyer,et al.  Selfish-LRU: Preemption-aware caching for predictability and performance , 2014, 2014 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

[81]  Giorgio C. Buttazzo,et al.  Limited Preemptive Scheduling for Real-Time Systems. A Survey , 2013, IEEE Transactions on Industrial Informatics.

[82]  Rodolfo Pellizzoni,et al.  Hiding memory latency using fixed priority scheduling , 2014, 2014 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

[83]  Björn Lisper,et al.  Data caches in multitasking hard real-time systems , 2003, RTSS 2003. 24th IEEE Real-Time Systems Symposium, 2003.

[84]  Pascal Sainrat,et al.  PapaBench: a Free Real-Time Benchmark , 2006, WCET.

[85]  Robert I. Davis,et al.  A Comparison between Fixed Priority and EDF Scheduling accounting for Cache Related Pre-emption Delays , 2014, Leibniz Trans. Embed. Syst..

[86]  Jan Reineke,et al.  Relative competitive analysis of cache replacement policies , 2008, LCTES '08.

[87]  Henrik Theiling,et al.  Compile-time decided instruction cache locking using worst-case execution paths , 2007, 2007 5th IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[88]  Andy J. Wellings,et al.  Adding instruction cache effect to an exact schedulability analysis of preemptive real-time systems , 1996, Proceedings of the Eighth Euromicro Workshop on Real-Time Systems.

[89]  Sebastian Altmeyer,et al.  Optimal task placement to improve cache performance , 2007, EMSOFT '07.

[90]  Nikil D. Dutt,et al.  Program path analysis to bound cache-related preemption delay in preemptive real-time systems , 2000, Proceedings of the Eighth International Workshop on Hardware/Software Codesign. CODES 2000 (IEEE Cat. No.00TH8518).

[91]  Robert I. Davis,et al.  Optimising task layout to increase schedulability via reduced cache related pre-emption delays , 2012, RTNS '12.

[92]  Chao Wang,et al.  Integration of Cache Partitioning and Preemption Threshold Scheduling to Improve Schedulability of Hard Real-Time Systems , 2015, 2015 27th Euromicro Conference on Real-Time Systems.

[93]  R. Wilhelm,et al.  Predictability Considerations in the Design of Multi-Core Embedded Systems ∗ , 2010 .

[94]  Paul Lokuciejewski,et al.  WCET-aware Software Based Cache Partitioning for Multi-Task Real-Time Systems , 2009, WCET.

[95]  Bernd Becker,et al.  A Definition and Classification of Timing Anomalies , 2006, WCET.

[96]  Alan Burns,et al.  The Olympus Attitude and Orbital Control System: A Case Study in Hard Real-Time System Design and Implementation , 1993, Ada-Europe.

[97]  I. Lee,et al.  Bounding Preemptions under EDF and RM Schedulers Technical Report: MS-CIS-06-07 , 1998 .

[98]  Rolf Ernst,et al.  Scalable precision cache analysis for real-time software , 2007, TECS.

[99]  D. B. Kirk,et al.  SMART (strategic memory allocation for real-time) cache design , 1989, [1989] Proceedings. Real-Time Systems Symposium.

[100]  Giorgio C. Buttazzo,et al.  Preemption Points Placement for Sporadic Task Sets , 2010, 2010 22nd Euromicro Conference on Real-Time Systems.

[101]  Isabelle Puaut,et al.  WCET-centric software-controlled instruction caches for hard real-time systems , 2006, 18th Euromicro Conference on Real-Time Systems (ECRTS'06).

[102]  Bo Peng,et al.  Explicit Preemption Placement for Real-Time Conditional Code , 2014, 2014 26th Euromicro Conference on Real-Time Systems.

[103]  Robert I. Davis,et al.  Integrating cache related pre-emption delay analysis into EDF scheduling , 2013, 2013 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

[104]  Andy J. Wellings,et al.  Adding instruction cache effect to schedulability analysis of preemptive real-time systems , 1996, Proceedings Real-Time Technology and Applications.

[105]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[106]  Stephan Thesing,et al.  Safe and precise WCET determination by abstract interpretation of pipeline models , 2004 .