Conference paper
A Software Managed Stack Cache for Real-Time Systems
In a real-time system, the use of a scratchpad memory can mitigate the difficulties related to analyzing data caches, whose behavior is inherently hard to predict. We propose to use a scratchpad memory for stack allocated data. While statically allocating stack frames for individual functions to scratchpad memory regions aids predictability, it is limited to non-recursive programs and static allocation has to take different calling contexts into account.
Using a stack cache that dynamically spills data to and fills data from external memory avoids these problems, while its simple design allows for efficiently deriving worst-case bounds through static analysis. In this paper we present the design and implementation of software managed caching of stack allocated data in a scratchpad memory.
We demonstrate a compiler-aided implementation of a stack cache using the LLVM compiler framework and report on its efficiency. Our evaluation encompasses stack management overhead and impact on worst-case execution time analysis. The state-of-the-art worst-case execution time analysis tool aiT is able to correctly classify all stack cache accesses as accesses to the scratchpad memory.
Language: | English |
---|---|
Publisher: | Association for Computing Machinery |
Year: | 2016 |
Pages: | 319-326 |
Proceedings: | 24th International Conference on Real-Time Networks and Systems |
ISBN: | 1450347878 and 9781450347877 |
Types: | Conference paper |
DOI: | 10.1145/2997465.2997488 |
ORCIDs: | Schoeberl, Martin |
Real-time systems SDG 3 - Good Health and Well-being Scratch-pad memory Stack caching WCET analysis