Achieving strong real-time guarantees in multi-core platforms is challenging due to the extensive hardware resource sharing in the memory hierarchy. Modern platforms and OS's, however, provide no means to appropriately handle memory regions that are crucial for real-time performance . In this paper, we  propose a new OS-level abstraction, namely Deterministic Memory, to define memory regions that are specially handled by the OS and the hardware to exhibit strong real-time guarantees . We show that the deterministic memory abstraction can be introduced in the OS at the granularity of single memory pages by exploiting existing hardware support. When deterministic memory pages are accessed, the attribute is propagated through all the levels of the memory hierarchy. Clearly, the hardware needs to be designed to ensure real-time handling of deterministic memory requests. To illustrate the potentialities of the new abstraction, we also propose a novel design for a shared cache controller that takes advantage of deterministic memory. Minimum cache space is guaranteed for deterministic memory, while unused cache space is left available to non-real-time applications. We implemented OS support for deterministic memory in the Linux kernel; and we evaluated the proposed hardware modifications in a cycle-accurate full-system simulator. We study the effectiveness of our approach on a set of synthetic and real benchmarks. Results show that it is possible to achieve (i) temporal determinism as strong as with traditional way-based cache partitioning ; and (ii) giving 50\% of the private partition space, on average, to the non-real-time applications .
Poor timing predictability of multicore processors has been a long-standing challenge in the real-time systems community . In this paper, we make a case that a fundamental problem that prevents efficient and predictable real-time com- puting on multicore is the lack of a proper memory abstraction to express memory criticality, which cuts across various layers of the system: the application, OS, and hardware. We therefore propose a new holistic resource management approach driven by a new memory abstraction, which we call Deterministic Memory. The key characteristic of deterministic memory is that the platform - the OS and hardware - guarantees small and tightly bounded worst-case memory access timing. In contrast, we call the conventional memory abstraction as best-effort memory in which only highly pessimistic worst-case bounds can be achieved. We present how the two memory abstractions can be realized with small extensions to existing OS and hardware architecture. In particular, we show the potential benefits of our approach in the context of shared cache management, by presenting a deterministic memory-aware cache architecture and its manage- ment scheme. We evaluate the effectiveness of the deterministic memory-aware cache management approach compared with a conventional way-based cache partitioning approach, using a set of synthetic and real benchmarks. The results show that our approach achieves (i) the same degree of temporal determinism of traditional way-based cache partitioning for deterministic memory, (ii) while freeing up to 49\% of additional cache space, on average, for best-effort memory, and consequently improving the cache hit rate by 39\%, on average, for non-real-time workloads. We also discuss how the deterministic memory abstraction can be leveraged in other parts of the memory hierarchy, particularly in the memory controller .
R
Achieving strong
Poor timing predictability of multicore processors has been a long-standing challenge in the
R
guarantees in multi-core platforms is challenging due to the extensive hardware resource sharing in the memory hierarchy. Modern platforms and OS's, however, provide no means to appropriately handle memory regions that are crucial for real-time performance
systems community
A
make a case that a fundamental problem that prevents efficient and predictable real-time com- puting on multicore is the lack of a proper memory abstraction to express memory criticality, which cuts across various layers of the system: the application, OS, and hardware. We therefore
R
OS-level abstraction, namely Deterministic Memory, to define memory regions that are specially handled by the OS and the hardware to exhibit strong real-time guarantees . We show that the deterministic memory abstraction can be introduced in the OS at the granularity of single memory pages by exploiting existing
holistic resource management approach driven by a new memory abstraction, which we call Deterministic Memory. The key characteristic of deterministic memory is that the platform - the OS and
R
support. When deterministic memory pages are accessed,
- guarantees small and tightly bounded worst-case memory access timing. In contrast, we call the conventional memory abstraction as best-effort memory in which only highly pessimistic worst-case bounds can be achieved. We present how the two memory abstractions can be realized with small extensions to existing OS and hardware architecture. In particular, we show the potential benefits of our approach in the context of shared cache management, by presenting a deterministic memory-aware cache architecture and its manage- ment scheme. We evaluate
D
attribute is propagated through all the levels of the memory hierarchy. Clearly, the hardware needs to be designed to ensure real-time handling of deterministic memory requests. To illustrate the potentialities of the new abstraction, we also propose a novel design for a shared cache controller that takes advantage of deterministic memory. Minimum cache space is guaranteed for deterministic memory, while unused cache space is left available to non-real-time applications. We implemented OS support for deterministic memory in the Linux kernel; and we evaluated the proposed hardware modifications in a cycle-accurate full-system simulator. We study the
R
our approach on a
the deterministic memory-aware cache management approach compared with a conventional way-based cache partitioning approach, using a
R
Results show that it is possible to achieve
The results show that our approach achieves
R
temporal determinism as strong as with
the same degree of temporal determinism of
R
; and
for deterministic memory,
R
giving 50\% of the private partition
while freeing up to 49\% of additional cache
R
to the
for best-effort memory, and consequently improving the cache hit rate by 39\%, on average, for
R
applications
workloads. We also discuss how the deterministic memory abstraction can be leveraged in other parts of the memory hierarchy, particularly in the memory controller