Collaborative Hardware-Software Management of Hybrid Main Memory
Santiago Bock · D-Scholarship@Pitt (University of Pittsburgh) · 2018
DRAM has long been the preferred technology choice for main memory. With new challenges of high energy and scalability of DRAM, emerging non-volatile memory technologies, such as phase-change memory (PCM), are being considered. Typically, PCM is used in conjunction with DRAM to form a hybrid main memory. Exposing both the PCM and DRAM to the system software and managing it through the operating system (OS) is a viable architecture. The advantage of this organization is that current systems are more easily adapted to support a partitioned DRAM/PCM address space with only small changes to their design. In addition, this architecture is the easiest path forward to incorporate persistence in the main memory hierarchy by reserving part of PCM for storage. However, the performance of software-managed hybrid memory is not on par with hardware-only approaches, such as the DRAM cache. This is caused by the large granularity at which data is migrated (OS pages) and the low visibility that the OS has of the access patterns of applications. This thesis proposes an experimental framework for studying software-managed hybrid memory and uses it to understand the causes of its low performance. In addition, this thesis proposes and evaluates several hardware-software co-designed mechanisms to alleviate the performance impacts of managing hybrid memory in software. Lastly, this thesis proposes a new migration policy specifically designed to take advantage of the new hardware support. These contributions show that software-managed hybrid memory with specialized hardware support for migration and monitoring is a viable architecture for PCM-based hybrid main memory.