The design of tailored hardware has proven a successful strategy to reduce the timing analysis overhead for (hard) real-time systems. The stack cache is an example of such a design that has been proven to provide good average-case performance, while being easy to analyze.   So far, however, the analysis of the stack cache was limited to individual tasks, ignoring aspects related to multitasking. A major drawback of the original stack cache design is that, due to its simplicity, it cannot hold the data of multiple tasks at the same time. Consequently, the  entire  cache content needs to be  saved  and  restored  when a task is preempted.   We propose (a) an analysis exploiting the simplicity of the stack cache to bound the overhead induced by task preemption and (b) an extension of the design that allows to (partially) hide the overhead by  virtualizing  stack caches.
['Sahar Abbaspour', 'Florian Brandner', 'Amine Naji', 'Mathieu Jan']
Efficient context switching for the stack cache: implementation and analysis