Emerging Non-Volatile Memory (NVM) technologies offer more capacity
and energy efficiency than DRAM, but their write endurance
is lower and latency is higher. Hybrid memories seek the best of both
worlds — scalability, efficiency, and performance — by combining
DRAM and NVM. Our work proposes modifying a standard managed
language runtime to allocate objects either in DRAM or NVM
to maximize the use of NVM capacity without wearing it out. The
key to our approach is correctly predicting highly mutated objects
and allocating them in DRAM and allocating rarely mutated objects
in NVM. We explore write-intensity prediction based on object (1)
size, (2) class type, and (3) allocation site. We find predictions using
allocation site are the most accurate.
Our memory manager for hybrid memories consists of (1) an
offline profiling phase that produces placement advice on a per
allocation-site basis, and (2) a garbage collector that allocates mature
objects in DRAM or NVM based on this advice and that allocates
highly mutated nursery objects in DRAM. We explore two
heuristics for classifying sites as write-intensive (DRAM) or rarely
written (NVM). Write-Frequency (FREQ) uses the number of writes
to objects allocated by each site. Although it can limit writes to
NVM up to 1% and 3%, it allocates just 50% to 20% of mature objects
in DRAM. Write-Density (DENS) computes number of writes to
objects relative to object size. Write-Density is a better predictor.
When it limits NVM writes to 2%, it can allocate 88% of mature objects
to NVM. Pareto optimal configurations may increase writes to
10% and store 99% of mature objects in NVM. Using write-intensity
predictors to proactively place objects in hybrid DRAM and NVM
memory systems prolongs NVM’s lifetime while exploiting its capacity.
Original languageEnglish
Title of host publicationProgramming Across the Stack (PASS) Workshop
ISBN (Electronic)978-1-4503-5513-1
StatePublished - Apr 2018
EventProgramming Across the System Stack - Nice, France
Duration: 10 Apr 201810 Apr 2018


WorkshopProgramming Across the System Stack
Internet address

ID: 38409697