A Software Managed Stack Cache for Real-Time Systems

Research output: Chapter in Book/Report/Conference proceedingArticle in proceedings – Annual report year: 2016Researchpeer-review


View graph of relations

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.
Original languageEnglish
Title of host publicationProceedings of the 24th International Conference on Real-Time Networks and Systems (RTNS'16)
PublisherAssociation for Computing Machinery
Publication date2016
ISBN (Print)978-1-4503-4787-7
Publication statusPublished - 2016
Event24th International Conference on Real-Time Networks and Systems - Brest, France
Duration: 19 Oct 201621 Oct 2016
Conference number: 24


Conference24th International Conference on Real-Time Networks and Systems
Internet address
CitationsWeb of Science® Times Cited: No match on DOI

    Research areas

  • Real-time systems, Stack caching, WCET analysis, Scratch-pad memory

ID: 127327538