Emerging Non-Volatile Memory (NVM) technologies offer high capacity and energy efficiency compared to DRAM, but suffer from limited write endurance and longer latencies. Prior work seeks the best of both technologies by combining DRAM and NVM in hybrid memories to attain low latency, high capacity, energy efficiency, and durability. Coarsegrained hardware and OS optimizations then spread writes out (wear-leveling) and place highly mutated pages in DRAM to extend NVM lifetimes. Unfortunately even with these coarse-grained methods, popular Java applications exact impractical NVM lifetimes of 4 years or less. This paper shows how to make hybrid memories practical, without changing the programming model, by enhancing garbage collection in managed language runtimes. We find object write behaviors offer two opportunities: (1) 70% of writes occur to newly allocated objects, and (2) 2% of objects capture 81% of writes to mature objects. We introduce write-rationing garbage collectors that exploit these fine-grained behaviors. They extend NVM lifetimes by placing highly mutated objects in DRAM and read-mostly objects in NVM. We implement two such systems. (1) Kingsguard-nursery places new allocation in DRAM and survivors in NVM, reducing NVM writes by 5× versus NVM only with wear-leveling. (2) Kingsguard-writers (KG-W) places nursery objects in DRAM and survivors in a DRAM observer space. It monitors all mature object writes and moves unwritten mature objects from DRAM to NVM. Because most mature objects are unwritten, KG-W exploits NVM capacity while increasing NVM lifetimes by 11×. It reduces the energy-delay product by 32% over DRAM-only and 29% over NVM-only. This work opens up new avenues for making hybrid memories practical.

Original languageEnglish
Title of host publicationPLDI 2018 - Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation
EditorsJeffrey S. Foster, Dan Grossman, Jeffrey S. Foster
Number of pages16
ISBN (Electronic)978-1-4503-5698-5
ISBN (Print)978-1-4503-5698-5
Publication statusPublished - Apr 2018
EventACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) - Philadelphia, United States
Duration: 18 Jun 201822 Jun 2018

Publication series

ISSN (Print)0362-1340


ConferenceACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
CountryUnited States
Internet address

    Research areas

  • Garbage collection, Hybrid DRAM-NVM memories, Managed runtimes, Nonvolatile memory (NVM)

ID: 37472248