On the Design and Evaluation of a Real Time Operating System for Cache Coherent Multicore Architectures
The uncontrolled use of the cache hierarchy in a multicore processor by real time tasks may impact their worst case execution times. Several operating system techniques have been recently proposed to deal with caches in a multiprocessor in order to improve predictability, such as cache partitioning, cache locking, and real time scheduling. However, the contention caused by the cache coherence protocol and its implication for real time tasks is still an open problem. In this paper, we present the design and evaluation of a real time operating system for cache coherent multicore architectures. The real time operating system infrastructure includes real time schedulers, cache partitioning, and cache coherence contention detection through hardware performance counters. We evaluate the real time operating system in terms of run time overhead, schedulability of realtime tasks, cache partitioning performance, and hardware performance counters usability. Our results indicate that: (i) a real time operating system designed from scratch reduces the run time overhead, and thus improves the realtime schedulability, when compared to a patched operating system; (ii) cache partitioning reduces the contention in the shared cache and provides safe real time bounds; and (iii) hardware performance counters can detect when real time tasks interfere with each other at the shared cache level. Scheduling, cache partitioning, and hardware performance counters together are a step forward to provide real time bounds in cache coherent architectures.
OPSR