A Wear Leveling Aware Memory Allocator for Both Stack and Heap Management in PCM-based Main Memory Systems

Wei Li1,a, Ziqi Shuai1,b, Chun Jason Xue2, Mengting Yuan1,c and Qingan Li1,d
1School of Computer Science, Wuhan University, China
aweili@whu.edu.cn
bszq@whu.edu.cn
cymt@whu.edu.cn
dqingan@whu.edu.cn
2Department of Computer Science, City University of Hong Kong, Hong Kong
jasonxue@cityu.edu.hk

ABSTRACT


Phase change memory (PCM) has been considered as a replacement of DRAM, due to its potentials in high storage density and low leakage power. However, the limited write endurance presents critical challenges. Various wear leveling techniques have been proposed to mitigate this issue from different perspectives, including both hardware and software levels. This paper proposes a wear leveling aware memory allocator, which (1) always prefers allocating memory blocks with less writes upon memory requests, and (2) leaves blocks allocated more than a threshold value unallocable temporarily. Furthermore, for the first time, this allocator provides a uniform management scheme for both stack and heap areas, thus could better balance writes in stack and heap areas. Experimental evaluations show that, compared to state-of-the-art memory allocators (i.e., glibc malloc, NVMalloc and Walloc), the proposed memory allocator improves the PCM wear leveling, in terms of CoV (a wear leveling indicator) by 41.9%, 30.3%, and 35.8%, respectively.

Keywords: PCM, Wear leveling, Memory allocator, Stack and heap.



Full Text (PDF)