  Main memory (DRAM) significantly impacts the power and energy utilization of
the overall server system. Non-Volatile Memory (NVM) devices, such as Phase
Change Memory and Spin-Transfer Torque RAM, are suitable candidates for main
memory to reduce energy consumption. But unlike DRAM, NVMs access latencies are
higher than DRAM and NVM writes are more energy sensitive than DRAM write
operations. Thus, Hybrid Main Memory Systems (HMMS) employing DRAM and NVM have
been proposed to reduce the overall energy depletion of main memory while
optimizing the performance of NVM. This paper proposes eMap, an optimal heap
memory object placement planner in HMMS. eMap considers the object-level access
patterns and energy consumption at the application level and provides an ideal
placement strategy for each object to augment performance and energy
utilization. eMap is equipped with two modules, eMPlan and eMDyn. Specifically,
eMPlan is a static placement planner which provides one time placement policies
for memory object to meet the energy budget while eMDyn is a runtime placement
planner to consider the change in energy limiting constraint during the runtime
and shuffles the memory objects by taking into account the access patterns as
well as the migration cost in terms of energy and performance. The evaluation
shows that our proposed solution satisfies both the energy limiting constraint
and the performance. We compare our methodology with the state-of-the-art
memory object classification and allocation (MOCA) framework. Our extensive
evaluation shows that our proposed solution, eMPlan meets the energy constraint
with 4.17 times less costly and reducing the energy consumption up to 14% with
the same performance. eMDyn also satisfies the performance and energy
requirement while considering the migration cost in terms of time and energy.
