Johnny Cache: the End of DRAM Cache Conflicts in Tiered Main Memory Systems
Baptiste Lepers, Université de Neuchâtel
Abstract
We demonstrate that hardware management of a tiered memory system offers better performance for many applications than current methods of software management. Hardware management treats the fast tier as a cache on the slower tier. The advantages are that caching can be done at cache line granularity and that data appears in fast memory as soon as it is accessed. The potential for cache conflicts has, however, led previous works to conclude these hardware methods generally perform poorly.
In this talk, we show that low-overhead conflict avoidance techniques eliminate conflicts almost entirely and thereby address the above limitation. We explore two techniques. The static technique tries to avoid conflicts between pages at page allocation time. The dynamic technique relies on monitoring memory accesses to distinguish between hot and cold pages. It uses this information to avoid conflicts between hot pages, both at page allocation time and by dynamic remapping at runtime.
We have implemented these techniques in the Linux kernel on an Intel Optane machine in a system called Johnny Cache (JC). We use HPC applications, key-value stores and databases to compare JC to the default Linux tiered memory management implementation and to HeMem, a state-of-the-art software management approach.
Our measurements show that JC outperforms Linux and HeMem for most applications, in some cases by up to 5x. A surprising conclusion of this paper is that a cache can provide close-to-optimal performance by minimizing conflicts purely at page allocation time, without any access monitoring or dynamic page remapping.
About the speaker
Baptiste Lepers is a Maître Assistant at the Université de Neuchâtel. His current focus is on proving and improving the performance of concurrent systems. He has previously worked on finding bugs in Linux, optimizing the performance of storage, memory, graph engines, and schedulers.