  Hybrid memory systems comprised of dynamic random access memory (DRAM) and
non-volatile memory (NVM) have been proposed to exploit both the capacity
advantage of NVM and the latency and dynamic energy advantages of DRAM. An
important problem for such systems is how to place data between DRAM and NVM to
improve system performance.
  In this paper, we devise the first mechanism, called UBM (page Utility Based
hybrid Memory management), that systematically estimates the system performance
benefit of placing a page in DRAM versus NVM and uses this estimate to guide
data placement. UBM's estimation method consists of two major components.
First, it estimates how much an application's stall time can be reduced if the
accessed page is placed in DRAM. To do this, UBM comprehensively considers
access frequency, row buffer locality, and memory level parallelism (MLP) to
estimate the application's stall time reduction. Second, UBM estimates how much
each application's stall time reduction contributes to overall system
performance. Based on this estimation method, UBM can determine and place the
most critical data in DRAM to directly optimize system performance.
Experimental results show that UBM improves system performance by 14% on
average (and up to 39%) compared to the best of three state-of-the-art
mechanisms for a large number of data-intensive workloads from the SPEC CPU2006
and Yahoo Cloud Serving Benchmark (YCSB) suites.
