Adaptive wear-leveling algorithm for PRAM main memory with a DRAM buffer

Phase Change RAM (PRAM) is a candidate to replace DRAM main memory due to its low idle power consumption and high scalability. However, its latency and endurance have generated problems in fulfilling its main memory role. The latency can be treated with a DRAM buffer, but the endurance problem remains, with three critical points that need to be improved despite the use of, existing wear-leveling algorithms. First, existing DRAM buffering schemes do not consider write count distribution. Second, swapping and shifting operations are performed statically. Finally, swapping and shifting operations are loosely coupled with a DRAM buffer. As a remedy to these drawbacks, we propose an adaptive wear-leveling algorithm that consists of three novel schemes for PRAM main memory with a DRAM buffer. The PRAM-aware DRAM buffering scheme reduces the write count and prevents skewed writing by considering the write count and clean data based on the least recently used (LRU) scheme. The adaptive multiple swapping and shifting scheme makes the write count even with the dynamic operation timing, the number of swapping pages being based on the workload pattern. Our DRAM buffer-aware swapping and shifting scheme reduces overhead by curbing additional swapping and shifting operations, thus reducing unnecessary write operations. To evaluate the wear-leveling effect, we have implemented a PIN-based wear-leveling simulator. The evaluation confirms that the PRAM lifetime increases from 0.68 years with the previous wear-leveling algorithm to 5.32 years with the adaptive wear-leveling algorithm.

[1]  André Seznec A Phase Change Memory as a Secure Main Memory , 2010, IEEE Computer Architecture Letters.

[2]  Jin-Soo Kim,et al.  FAB: flash-aware buffer management policy for portable media players , 2006, IEEE Transactions on Consumer Electronics.

[3]  Engin Ipek,et al.  Dynamically replicated memory: building reliable systems from nanoscale resistive memories , 2010, ASPLOS XV.

[4]  Rami G. Melhem,et al.  Increasing PCM main memory lifetime , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[5]  Hyunjin Lee,et al.  Flip-N-Write: A simple deterministic technique to improve PRAM write performance, energy and endurance , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[6]  Onur Mutlu,et al.  Architecting phase change memory as a scalable dram alternative , 2009, ISCA '09.

[7]  Huiyang Zhou,et al.  Improving privacy and lifetime of PCM-based main memory , 2010, 2010 IEEE/IFIP International Conference on Dependable Systems & Networks (DSN).

[8]  Sungjin Lee,et al.  Buffer-Aware Garbage Collection for NAND Flash Memory-Based Storage Systems , 2008 .

[9]  Joonwon Lee,et al.  CFLRU: a replacement algorithm for flash memory , 2006, CASES '06.

[10]  Vijayalakshmi Srinivasan,et al.  Enhancing lifetime and security of PCM-based Main Memory with Start-Gap Wear Leveling , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[11]  Kyu Ho Park,et al.  Power-aware memory management for hybrid main memory , 2011, The 2nd International Conference on Next Generation Information Technology.

[12]  Ricardo Bianchini,et al.  Page placement in hybrid memory systems , 2011, ICS '11.

[13]  Mahmut T. Kandemir,et al.  Scheduler-based DRAM energy management , 2002, DAC '02.

[14]  Tao Li,et al.  Characterizing and mitigating the impact of process variations on phase change based memory systems , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[15]  Jun Yang,et al.  A durable and energy efficient main memory using phase change memory technology , 2009, ISCA '09.

[16]  Kyu Ho Park,et al.  PRAM wear-leveling algorithm for hybrid main memory based on data buffering, swapping, and shifting , 2012, SAC '12.

[17]  Kyu Ho Park,et al.  Linux kernel support to exploit phase change memory , 2010 .

[18]  Trevor N. Mudge,et al.  Using non-volatile memory to save energy in servers , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[19]  Seung-Ho Lim,et al.  PFFS: a scalable flash memory file system for the hybrid architecture of phase-change RAM and NAND flash , 2008, SAC '08.

[20]  Sunggu Lee,et al.  Power management of hybrid DRAM/PRAM-based main memory , 2011, 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC).

[21]  Sangyeun Cho,et al.  A content-aware block placement algorithm for reducing PRAM storage bit writes , 2010, 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST).

[22]  Tei-Wei Kuo,et al.  Improving Flash Wear-Leveling by Proactively Moving Static Data , 2010, IEEE Transactions on Computers.

[23]  Peiquan Jin,et al.  CFDC: a flash-aware replacement policy for database buffer management , 2009, DaMoN '09.

[24]  Vijayalakshmi Srinivasan,et al.  Scalable high performance main memory system using phase-change memory technology , 2009, ISCA '09.

[25]  Seung-Yun Lee,et al.  A Low Power Phase-Change Random Access Memory using a Data-Comparison Write Scheme , 2007, 2007 IEEE International Symposium on Circuits and Systems.

[26]  Yiran Chen,et al.  Low cost power failure protection for MLC NAND flash storage systems with PRAM/DRAM hybrid buffer , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[27]  YangJun,et al.  A durable and energy efficient main memory using phase change memory technology , 2009 .

[28]  Connie M. Borror,et al.  EWMA forecast of normal system activity for computer intrusion detection , 2004, IEEE Transactions on Reliability.

[29]  Xiaowei Li,et al.  Wear rate leveling: Lifetime enhancement of PRAM with endurance variation , 2011, 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC).

[30]  Moinuddin K. Qureshi,et al.  Improving read performance of Phase Change Memories via Write Cancellation and Write Pausing , 2010, HPCA - 16 2010 The Sixteenth International Symposium on High-Performance Computer Architecture.

[31]  Tajana Simunic,et al.  PDRAM: A hybrid PRAM and DRAM main memory system , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[32]  Harish Patil,et al.  Pin: building customized program analysis tools with dynamic instrumentation , 2005, PLDI '05.