Persistent Memory
Description
In this project, we seek to explore how persistency can be integrated into computer systems. Persistent Memory (PM) provides memory that can store data in a non-volatile manner, whether through new memory fabric (e.g. Intel Pmem, STT RAM), traditional memory fabric with batttery backing (e.g. battery-backed DRAM), or traditional NVM repurposed for memory interface (e.g. memory-semantic SSD). PM provides tremendous potentials, where users can place data in the form of data structures persistently in memory. This requires a new OS abstraction. New issues that need to be considered including crash consistency, persistency performance, new security threats and mitigation, fragmentation, and how to support Trusted Execution Environment that utilizes PM.
ARPERS research group has worked on PM research since 2011 for 12+ years and published 30 papers. We have identified new problems, contributed new concepts, new approaches to solving problems, new techniques (hardware, software, and their interface).
Funding
We are grateful for support from ONR, NSF, Intel, that support our research in this area.
Publications (30 and counting)
[DAC 23] Khan Shaikhul Hadi, Naveed Ul Mustafa, Mark Heinrich, Yan Solihin, Hardware Support for Durable Atomic Instructions for Persistent Parallel Programming. Design Automation Conference (DAC), San Francisco, July 9-13, 2023.
[IEEE MICRO] Naveed ul Mustafa and Yan Solihin, Persistent Memory Security Threats to Inter-Process Isolation, IEEE MICRO, April 10, 2023.
[ASPLOS 23] Chencheng Ye, Yuanchao Xu, Xipeng Shen, Yan Sha, Xiaofei Liao, Hai Jin, and Yan Solihin, SpecPMT: Speculative Logging for Resolving Crash Consistency Overhead of Persistent Memory, to appear, in Proc of. the 28th ACM International Conference on Architecture Support for Programming Languages and Operating Systems (ASPLOS), Vancouver, March 25-29, 2023.
[HPCA 23] Chencheng Ye, Yuanchao Xu, Xipeng Shen, Yan Sha, Xiaofei Liao, Hai Jin, and Yan Solihin, Reconciling Selective Logging and Hardware Persistent Memory Transaction, in Proc. of the 29th IEEE International Symposium on High-Performance Computer Architecture (HPCA), Montreal, Feb 25 - March 1, 2023.
[HPCA 23] Alexander Freij, Huiyang Zhou, and Yan Solihin, SecPB: Architectures for Secure Non-Volatile Memory with Battery-Backed Persist Buffers, in Proc. of the 29th IEEE International Symposium on High-Performance Computer Architecture (HPCA), Montreal, Feb 25 - March 1, 2023.
[SEED 22] Derrick Greenspan, Naveed ul Mustafa, Zoran Kolega, Mark Heinrich, and Yan Solihin, Improving the Security and Programmability of Persistent Memory Objects, in Proc. of the 2nd IEEE International Symposium on Secure and Private Execution Environment Design (SEED), Sep 26-27, Virtual, 2022.
[ISCA 22] Yuanchao Xu, Chencheng Ye, Yan Solihin, Xipeng Shen, FFCCD: Fence-Free Crash-Consistent Concurrent Defragmentation for Persistent Memory, ACM/IEEE International Symposium on Computer Architecture (ISCA), New York City, June 11-15, 2022.
[TACO 22] Chencheng Ye, Yuanchao Xu, Xipeng Shen, Xiaofei Liao, Hai Jin, and Yan Solihin, Preserving Addressability Upon GC-Triggered Data Movements on Non-Volatile Memory, ACM Transactions on Architectures and Code Optimizations (TACO), 2022.
[HPCA 22] Yuanchao Xu, Chencheng Ye, Xipeng Shen, and Yan Solihin, Temporal Exposure Reduction Protection for Persistent Memory, in Proc. of the IEEE International Symposium on High-Performance Computer Architecture, Seoul (virtual), April 2-6, 2022.
[MICRO 21] Alex Freij, Huiyang Zhou, and Yan Solihin, Bonsai Merkle Forests: Efficiently Achieving Crash Consistency in Secure Persistent Memory, in Proc of the 54th ACM/IEEE Symposium on Microarchitecture (MICRO), Athens (Virtual), Oct 18-22, 2021.
[SEED 21] Naveed Ul Mustafa, Yuanchao Xu, Xipeng Shen, and Yan Solihin, New Security Challenges for Persistent Memory, in Proc of the 1st IEEE Symposium on Secure Execution Design (SEED), Virtual, Sep 2021.
[ISCA 21] Chencheng Ye, Yuanchao Xu, Xipeng Shen, Xiaofei Liao, Hai Jin, and Yan Solihin. Supporting Legacy Libraries on Non-Volatile Memory: A User-Transparent Approach, in Proc. of the 48th ACM/IEEE International Symposium on Computer Architecture, Virtual, June 2021.
[HPCA 21] Mohammad Alshboul, Prakash Ramrakhyani, William Wang, James Tuck, and Yan Solihin, BBB: Simplifying Persistent Programming using Battery-Backed Buffers, in Proc. of the 27th IEEE International Symposium on High-Performance Computer Architecture (HPCA), Seoul (Virtual), Feb-March, 2021.
[IISWC 20] Ardhi Yudha, Keiji Kimura, Huiyang Zhou, and Yan Solihin, Scalable and Fast Lazy Persistency on GPUs, in Proc. of 2020 IEEE International Symposium on Workload Characterization, 2020.
[MICRO 20] Alexander Freij, Shougang Yuan, Huiyang Zhou, Yan Solihin, Persist-Level Parallelism: Streamlining Integrity Tree Updates for Secure Persistent Non-Volatile Memory, in Proc. of the 53rd IEEE/ACM International Symposium on Microarchitecture (MICRO), Athens (Virtual), Oct, 2020.
[TACO 20] Reem Elkhouly, Mohammad Alshboul, Akihiro Hayashi, Yan Solihin, and Keiji Kimura, Compiler-support for Critical Data Persistence in NVM, ACM Transactions on Architectures and Code Generation (TACO), 54:1-54:25, 2020.
[ISCA 20] Yuanchao Xu, Chencheng Ye, Yan Solihin, and XIpeng Shen, Hardware-Based Domain Virtualization for Intra-Process Isolation of Persistent Memory Objects, in Proc. of the ACM/IEEE International Symposium on Computer Architecture (ISCA), Valencia, June 2020.
[DAC 20] Mohammad Alshboul, James Tuck, and Yan Solihin, WET: Write Efficient Loop Tiling for Non-Volatile Main Memory, in Proc. of the 57th ACM/EDAC/IEEE Design Automation Conference (DAC), San Francisco (Virtual), July 2020.
[ASPLOS 20] Yuanchao Xu, Yan Solihin, and Xipeng Shen, Improving Security of Persistent Memory Objects via Efficient Memory Exposure Reduction, in Proc of. the 25th ACM International Conference on Architecture Support for Programming Languages and Operating Systems (ASPLOS), Lausanne (Virtual), March 2020.
[PACT 19] Zhen Lin, Mohammad Alshboul, Yan Solihin, and Huiyang Zhou, Exploring Memory Persistency Models for GPUs, in Proc of International Conference on Parallel Architectures and Compilation Techniques (PACT), Seattle, Sep 2019. (link)
[TACO 19] Mohammad Alshboul, Hussein Elnawawy, Reem Elkhouly, Keiji Kimura, James Tuck, and Yan Solihin, Efficient Checkpointing with Recompute Scheme for Non-volatile Main Memory, ACM Transactions on Architectures and Code Generation (TACO), 16(2), May, 2019.
[IEEE MICRO 19] Yan Solihin, Persistent memory: Abstractions, abstractions, and abstractions, IEEE MICRO, Vol. 39, Issue 1, Pages 65-66, 2019.
[ISCA 19] Amro Awad, Mao Ye, Yan Solihin, Laurent Njilla and Kazi Abu Zubair, Triad-NVM: Persistency for Integrity-Protected and Encrypted Non-Volatile Memories, Proc. of the 46th International Symposium on Computer Architecture (ISCA), Phoenix, June 2019.
[ISCA 18] Mohammad Alshboul, James Tuck, and Yan Solihin, Lazy Persistency: a High-Performing and Write-Efficient Software Persistency Technique, Proc. of the 45th International Symposium on Computer Architecture (ISCA), June 2018. (pdf) (slides)
[NVMW 18] Seunghee Shin, Satish Kumar Tirukkovalluri, James Tuck, and Yan Solihin, Proteus: A Flexible and Fast Software Supported Hardware Logging approach for NVM, Proc. of the 9th Annual Non-Volatile Memories Workshop (NVMW), March 2018.
[MICRO 17] Seunghee Shin, Satish Kumar Tirukkovalluri, James Tuck, and Yan Solihin, Proteus: A Flexible and Fast Software Supported Hardware Logging approach for NVM, in Proc. of the International Symposium on Microarchitecture (MICRO), Oct 2017. (pdf)
[MICRO 17] Tiancong Wang, Sakthikumaran Sambasivam, Yan Solihin, and James Tuck, Hardware Supported Persistent Object Translation, in Proc. of the International Symposium on Microarchitecture (MICRO), Oct 2017. Received Best Paper Runner-Up Award.
[PACT 17] Hussein Elnawawy*, Mohammad Alshboul*, James Tuck, and Yan Solihin. Efficient Checkpointing of Loop-Based Codes for Non-volatile Main Memory, in Proc. of the International Conference on Parallel Architectures and Compilation Techniques (PACT), Sep 2017. * contributed equally to the work.
[ISCA 17] Seunghee Shin, James Tuck, and Yan Solihin. Hiding the Long Latency of Persist Barriers Using Speculative Execution, in Proc. of the International Symposium on Computer Architecture (ISCA), June 2017. (pdf)
[ISCA 11] Siddhartha Chhabra and Yan Solihin. i-NVMM: A Secure Non-Volatile Main Memory System with Incremental Encryption, Proc. of the International Symposium on Computer Architecture (ISCA), San Jose, June 2011. (pdf) (ppt slides)