ACM SIGPLAN Notices · 1995 · 126 citations · 12 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureReal-time SystemsCachingCpu SchedulingInstruction SchedulingReal-time SchedulingReal-time Systems ArchitectureReal-time Systems DesignCache PartitioningCompiler DesignCompiler SupportExecution Time AnalysisPartitioning For Real-time SystemsProcessor PartitioningReal-time Task SchedulingSoftware Partitioning
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 software-based cache partitioning. With this approach, the cache is divided into distinct portions associated with a real-time task, such that a task may only use its portion. The compiler has to support instruction and data partitioning for each task. Instruction partitioning involves non-linear control-flow transformations, while data partitioning involves code transformations of data references. The impact on execution time of these transformations is also discussed.
12
A case for direct-mapped caches
An Architectural Overview of QNX
Dan Hildebrand · 1992 · 201 citations
* Bounding Worst-case Instruction Cache Performance
Robert D. Arnold, Frank Mueller, David Whalley et al. · 1994 · 189 citations