Deterministic memory hierarchy and virtualization for modern multi-core embedded systems
MetadataShow full item record
Citation (published version)Tomasz Kloda, Marco Solieri, Renato Mancuso, Nicola Capodieci, Paolo Valente, Marko Bertogna. 2019. "Deterministic Memory Hierarchy and Virtualization for Modern Multi-Core Embedded Systems." Proceedings of the IEEE Real-Time and Embedded Technology and Applications Symposium, RTAS. IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS). Montreal, Canada, 2019-04-16 - 2019-04-18. https://doi.org/10.1109/RTAS.2019.00009
One of the main predictability bottlenecks of modern multi-core embedded systems is contention for access to shared memory resources. Partitioning and software-driven allocation of memory resources is an effective strategy to mitigate contention in the memory hierarchy. Unfortunately, however, many of the strategies adopted so far can have unforeseen side-effects when practically implemented latest-generation, high-performance embedded platforms. Predictability is further jeopardized by cache eviction policies based on random replacement, targeting average performance instead of timing determinism. In this paper, we present a framework of software-based techniques to restore memory access determinism in high-performance embedded systems. Our approach leverages OS-transparent and DMA-friendly cache coloring, in combination with an invalidation-driven allocation (IDA) technique. The proposed method allows protecting important cache blocks from (i) external eviction by tasks concurrently executing on different cores, and (ii) internal eviction by tasks running on the same core. A working implementation obtained by extending the Jailhouse partitioning hypervisor is presented and evaluated with a combination of synthetic and real benchmarks.