Improving The Performance Of Hybrid Main Memory Through System Aware Management Of Heterogeneous Resources