A Holistic System Support for Persistent Memory

Author: ORCID icon orcid.org/0000-0001-9706-6177
Liu, Sihang, Computer Science - School of Engineering and Applied Science, University of Virginia
Khan, Samira, EN-Comp Science Dept, University of Virginia

Persistent memory (PM) technologies, such as Intel’s Optane memory, unify memory and storage and deliver both data persistence and high-performance. PM systems allow programs to directly manage their persistent data in memory, as opposed to the conventional way that goes through the file system. Though performant, integrating this new memory technology would require significant changes throughout the system stack. First, programs that directly manage persistent data need to guarantee data recovery after a failure, as the file system is bypassed. However, it is hard and error-prone to ensure failure-recovery as programs need to carefully manage writes to PM. Second, PM is both a memory and a storage device, which requires various memory and storage supports, such as memory encryption and integrity verification that secure the data and memory deduplication for better bandwidth. Among these supports, the security guarantees are critical but can significantly increase the access latency. Moreover, these supports should also follow the existing crash consistency guarantees. Third, even with data encryption and integrity verification, there can be other vulnerabilities in a real PM system. For example, Intel’s Optane PM uses multiple levels of caches and buffers to improve performance, which can lead to new side channels.

My thesis aims to provide system supports to overcome these new challenges. We hypothesize that a whole-system-level redesign, from programming support to hardware, that ensures correctness, security, and high-performance, is necessary in order to integrate persistent memory into practical systems. On the software side, to ensure the failure-recovery correctness, we have developed testing tools, PMTest and XFDetector, to help programmers detect failure-recovery issues; and a test case generator, PMFuzz, to generate high-coverage test cases. On the hardware side, we have proposed efficient and crash-consistent secured hardware-software co-designs for PM systems. Further on, we have reverse-engineered the commercial Optane PM from Intel, and exploited its covert and side-channel vulnerabilities.

PHD (Doctor of Philosophy)
Computer Architecture, Computer Systems, Persistent Memory, Non-volatile Memory, Software Testing, Security
All rights reserved (no additional license for public reuse)
Issued Date: