Compiler Support for Software-Based Cache Partitioning
- Publication date
- 1995
- Publisher
Abstract
Cache memories have become an essential part of modern processors to bridge the increasing gap between fast processors and slower main memory. Until recently, cache memories were thought to impose unpredictable execution time behavior for hard real-time systems. But recent results show that the speedup of caches can be exploited without a significant sacrifice of predictability. These results were obtained under the assumption that real-time tasks be scheduled non-preemptively. This paper introduces a method to maintain predictability of execution time within preemptive, cached real-time systems and discusses the impact on compilation support for such a system. Preemptive systems with caches are made predictable via softwarebased cache partitioning. With this approach, the cache is divided into distinct portions associated with a realtime task, such that a task may only use its portion. The compiler has to support instruction and data partitioning for each task. Instruction partition..