Real-Time Systems

, Volume 48, Issue 2, pp 166–197 | Cite as

Instruction cache locking for multi-task real-time embedded systems

  • Tiantian LiuEmail author
  • Minming Li
  • Chun Jason Xue


In a multi-task embedded system, a cache is shared by different tasks, which increases the complexity of cache management and the unpredictability of cache behavior. This unpredictability in turn brings an overestimation of application’s worst-case execution time (WCET) and worst-case CPU utilization (WCU) which are two of the most important criteria for real-time embedded systems. Modern processors often provide cache locking capability, which can be applied statically and dynamically to manage cache in a predictable manner. The selection of instructions to be locked in the instruction cache (I-Cache) has dramatic influence on the system performance. This paper focuses on applying cache locking techniques to the shared I-Cache to minimize WCU for multi-task embedded systems. We analyze and compare three different strategies to perform I-Cache locking: static locking, semi-dynamic locking, and dynamic locking. Different algorithms are proposed utilizing the foreknown information of embedded applications. Experimental results show that the proposed algorithms can reduce WCU compared to previous techniques.


Real-time and embedded systems Worst-case analysis Cache memories 


  1. Arnaud A, Puaut I (2006) Dynamic instruction cache locking in hard real-time systems. In: The 14th international conference on real-time and network systems Google Scholar
  2. Asaduzzaman A, Limbachiya N, Mahgoub I, Sibai FN (2007) Evaluation of I-Cache locking technique for real-time embedded systems. In: Innovations in information technology 2007, pp 342–346 CrossRefGoogle Scholar
  3. Campoy AM, Ivars AP, Busquets-Mataix JV (2001b) Static use of locking caches in multitask, preemptive real-time systems. In: IEEE real-time embedded system workshop Google Scholar
  4. Campoy AM, Ivars AP, Busquets-Mataix JV (2001a) Using genetic algorithms in content selection for locking-caches. In: The international symposium on applied informatics, pp 271–276 Google Scholar
  5. Campoy AM, Ivars AP, Rodriguez F, Busquets-Mataix JV (2003) Static use of locking caches vs dynamic use of locking caches for real-time systems. In: IEEE Canadian conference on electrical and computer engineering, pp 1283–1286 Google Scholar
  6. Campoy AM, Puaut I, Ivars AP, Busquets-Mataix JV (2005) Cache contents selection for statically-locked instruction caches: an algorithm comparison. In: The 17th Euromicro conference on real-time systems, pp 49–56 Google Scholar
  7. Campoy AM, Ivars AP, Busquets-Mataix JV (2007) Dynamic use of locking caches in multitask, preemptive real-time systems. In: The 15th world congress of the international federation of automatic control Google Scholar
  8. Chakraborty S, Mitra T, Roychoudhury A, Thiele L (2009) Cache-aware timing analysis of streaming applications. Real-Time Syst 41:52–85 zbMATHCrossRefGoogle Scholar
  9. Falk H, Plazar S, Theiling H (2007) Compile-time decided instruction cache locking using worst-case execution paths. In: The 5th IEEE/ACM international conference on CODES+ISSS07, pp 143–148 Google Scholar
  10. Gordon-Ross A, Vahid F, Dutt N (2005) A first look at the interplay of code reordering and configurable caches. In: The 15th ACM Great Lakes symposium on VLSI, pp 416–421 CrossRefGoogle Scholar
  11. Guillon C, Rastello F, Bidault T, Bouchez F (2004) Procedure placement using temporal-ordering information: dealing with code size expansion. J Embed Comput 1(4):437–459 Google Scholar
  12. Kandemir M, Ramanujam J, Irwin MJ, Vijaykrishnan N, Kadayil I, Parikh A (2001) Dynamic management of scratchpad memory space. IN: DAC01, pp 690–695 Google Scholar
  13. Lee C-G et al. (2001) Bounding cache-related preemption delay for real-time systems. IEEE Transactions on Software Engineering 27(9):805–826 CrossRefGoogle Scholar
  14. Liu JWS (2000) Real-time systems. Prentice-Hall, New York, pp 40–41 Google Scholar
  15. Liu T, Li M, Xue CJ (2009a) Instruction cache locking for real-time embedded systems with multi-tasks. In: RTCSA09, pp 494–499 Google Scholar
  16. Liu T, Li M, Xue CJ (2009b) Minimizing WCET for real-time embedded systems via static instruction cache locking. In: RTAS09, pp 35–44 Google Scholar
  17. Puaut I, Decotigny D (2002) Low-complexity algorithms for static cache locking in multitasking hard real-time systems. In: RTSS02, pp 114–123 Google Scholar
  18. Puaut I, Pais C (2007) Scratchpad memories vs locked caches in hard real-time systems: a quantitative comparison. In: DATE07, pp 1484–1489 Google Scholar
  19. Udayakumaran S, Barua R (2003) Compiler-decided dynamic memory allocation for scratch-pad based embedded systems. In: The international conference on compilers, architectures and synthesis for embedded systems, pp 276–286 CrossRefGoogle Scholar
  20. Zhao W, Whalley D, Healy C, Mueller F (2005) Improving WCET by applying a WC code-positioning optimization. ACM Trans Archit Code Optim 2(4):335–365 CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  1. 1.Department of Computer ScienceCity University of Hong KongKowloonHong Kong

Personalised recommendations