Abstract
The non-volatile memory (NVM) has the merits of byte-addressability, fast speed, persistency and low power consumption, which make it attractive to be used as main memory. Commonly, user process dynamically acquires memory through memory allocators. However, traditional memory allocators designed with in-place data writes are not appropriate for the non-volatile main memory (NVRAM) due to the limited endurance. In this article, first, we quantitatively analyze the wear-oblivious of DRAM-oriented designed allocator—glibc malloc and the inefficiency of wear-conscious allocator NVMalloc. Then, we propose WAlloc, an efficient wear-aware manual memory allocator designed for NVRAM: (1) decouples metadata and data management; (2) distinguishes metadata with volatility; (3) redirects the data writes around to achieve wear-leveling; (4) redesigns an efficient and effective NVM copy mechanism, bypassing the CPU cache partially and prefetching data explicitly. Finally, experimental results show that the wear-leveling of WAlloc outperforms that of NVMalloc about 30% and 60% under random workloads and well-distributed workloads, respectively. Besides, WAlloc reduces the average data memory writes in 64 bytes block by 1.5 times comparing with glibc malloc. With the fulfillment of data persistency, cache bypassing NVM copy is better than cache line flushing NVM copy with performance improvement circa 14%.
- Berk Atikoglu, Yuehai Xu, Eitan Frachtenberg, Song Jiang, and Mike Paleczny. 2012. Workload analysis of a large-scale key-value store. ACM SIGMETRICS Perform. Eval. Rev. 40, 1, 53--64. Google ScholarDigital Library
- Luiz André Barroso, Jimmy Clidaras, and Urs Hölzle. 2013. The datacenter as a computer: An introduction to the design of warehouse-scale machines. Synth. Lect. Comput. Architect. 8, 3, 1--154. Google ScholarCross Ref
- Bill Blunden. 2003. Memory Management: Algorithms and Implementation in C/C++. Wordware Publishing.Google Scholar
- Hung-Sheng Chang, Yuan-Hao Chang, Pi-Cheng Hsiu, Tei-Wei Kuo, and Hsiang-Pang Li. 2015. Marching-based wear-leveling for PCM-based storage systems. ACM Trans. Des. Automat. Electron. Syst. (TODAES) 20, 2, 25.Google ScholarDigital Library
- Li-Pin Chang and Li-Chun Huang. 2011. A low-cost wear-leveling algorithm for block-mapping solid-state disks. SIGPLAN Not. 46, 5, 31--40. Google ScholarDigital Library
- Yuan-Hao Chang, Hsieh Jen-Wei, and Kuo Tei-Wei. 2007. Endurance enhancement of flash-memory storage systems: An efficient static wear leveling design. In Proceedings of the 2007 44th ACM/IEEE Design Automation Conference (DAC). ACM, 212--217.Google ScholarDigital Library
- Feng Chen, Michael P. Mesnier, and Scott Hahn. 2014. A protected block device for persistent memory. In Proceedings of the 2014 30th Symposium on Mass Storage Systems and Technologies (MSST). IEEE, 1--12. Google ScholarCross Ref
- Shimin Chen and Qin Jin. 2015. Persistent b+-trees in non-volatile main memory. In Proceedings of the VLDB Endowment, 8, 7, 786--797. Google ScholarDigital Library
- Joel Coburn, Adrian M. Caulfield, Ameen Akel, Laura M. Grupp, Rajesh K. Gupta, Ranjit Jhala, and Steven Swanson. 2011. NV-Heaps: Making persistent objects fast and safe with next-generation, non-volatile memories. ACM SIGARCH Comput. Architect. News 39, 1, 105--118. Google ScholarDigital Library
- Jeremy Condit, Edmund B. Nightingale, Christopher Frost, Engin Ipek, Benjamin Lee, Doug Burger, and Derrick Coetzee. 2009. Better I/O through byte-addressable, persistent memory. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles. ACM, 133--146. Google ScholarDigital Library
- Brian F. Cooper, Adam Silberstein, Erwin Tam, Raghu Ramakrishnan, and Russell Sears. 2010. Benchmarking cloud serving systems with YCSB. In Proceedings of the 1st ACM Symposium on Cloud Computing. ACM, 143--154. Google ScholarDigital Library
- B. Dieny, R. Sousa, G. Prenat, and U. Ebels. 2008. Spin-dependent phenomena and their implementation in spintronic devices. In Proceedings of the International Symposium on VLSI Technology, Systems and Applications (VLSI-TSA 2008). IEEE, 70--71. Google ScholarCross Ref
- Subramanya R. Dulloor, Sanjay Kumar, Anil Keshavamurthy, Philip Lantz, Dheeraj Reddy, Rajesh Sankaran, and Jeff Jackson. 2014. System software for persistent memory. In Proceedings of the 9th European Conference on Computer Systems. ACM, 15. Google ScholarDigital Library
- Alexandre P. Ferreira, Miao Zhou, Santiago Bock, Bruce Childers, Rami Melhem, and Daniel Mossé. 2010. Increasing PCM main memory lifetime. In Proceedings of the Conference on Design, Automation and Test in Europe. European Design and Automation Association, 914--919. Google ScholarDigital Library
- Yenpo Ho, Garng M. Huang, and Peng Li. 2009. Nonvolatile memristor memory: Device characteristics and design implications. In Proceedings of the 2009 International Conference on Computer-Aided Design. ACM, 485--490. Google ScholarDigital Library
- Jingtong Hu, Wei-Che Tseng, Chun Jason Xue, Qingfeng Zhuge, Yingchao Zhao, and Edwin H. M. Sha. 2011. Write activity minimization for nonvolatile main memory via scheduling and recomputation. IEEE Trans. Comput.-Aided Des. Integrat. Circ. Syst. 30, 4, 584--592. Google ScholarDigital Library
- Jingtong Hu, Chun Jason Xue, Wei-Che Tseng, Yi He, Meikang Qiu, and Edwin H. M. Sha. 2010. Reducing write activities on non-volatile memories in embedded CMPs via data migration and recomputation. In Proceedings of the 2010 47th ACM/IEEE Design Automation Conference (DAC). ACM/IEEE, 350--355. Google ScholarDigital Library
- Jingtong Hu, Qingfeng Zhuge, Chun Jason Xue, Wei-Che Tseng, and Edwin H. M. Sha. 2013. Software enabled wear-leveling for hybrid PCM main memory on embedded systems. In Proceedings of the Design, Automation 8 Test in Europe Conference 8 Exhibition (DATE 2013). IEEE, 599--602. Google ScholarCross Ref
- Soojun Im and Dongkun Shin. 2014. Differentiated space allocation for wear leveling on phase-change memory-based storage device. IEEE Trans. Consum. Electron. 60, 1, 45--51. Google ScholarCross Ref
- Jaeyong Jeong, Sangwook Shane Hahn, Sungjin Lee, and Jihong Kim. 2014. Lifetime improvement of NAND flash-based storage systems using dynamic program and erase scaling. In Proceedings of FAST 2014. 61--74.Google Scholar
- Lei Jiang, Bo Zhao, Youtao Zhang, Jun Yang, and Bruce R. Childers. 2012. Improving write operations in MLC phase change memory. In Proceedings of the 2012 IEEE 18th International Symposium on High Performance Computer Architecture (HPCA). IEEE, 1--10. Google ScholarDigital Library
- Benjamin C. Lee, Engin Ipek, Onur Mutlu, and Doug Burger. 2009. Architecting phase change memory as a scalable DRAM alternative. In Proceedings of ISCA. ACM, New York, 2--13. Google ScholarDigital Library
- Charles Lefurgy, Karthick Rajamani, Freeman Rawson, Wes Felter, Michael Kistler, and Tom W. Keller. 2003. Energy management for commercial servers. Computer 36, 12, 39--48. Google ScholarDigital Library
- Qingan Li, Yanxiang He, Yong Chen, Chun Jason Xue, Nan Jiang, and Chao Xu. 2014. A wear-leveling-aware dynamic stack for PCM memory in embedded systems. In Proceedings of the Conference on Design, Automation 8 Test in Europe, 89. European Design and Automation Association.Google Scholar
- Xu Li, Kai Lu, and Xu Zhou. 2012a. NV-TS: A fault tolerance transaction system based on persistent memory. In Proceedings of the 2012 International Conference on Computer Science and Electronics Engineering (ICCSEE). IEEE, 2, 221--224. Google ScholarDigital Library
- Xu Li, Kai Lu, Xiaoping Wang, and Xu Zhou. 2012b. NV-process: A fault-tolerance process model based on non-volatile memory. In Proceedings of the Asia-Pacific Workshop on Systems. ACM, 1. Google ScholarDigital Library
- Duo Liu, Tianzheng Wang, Yi Wang, Zili Shao, Qingfeng Zhuge, and Edwin Sha. 2013. Curling-PCM: Application-specific wear leveling for phase change memory based embedded systems. In Proceedings of the 2013 18th Asia and South Pacific Design Automation Conference (ASP-DAC). IEEE, 279--284.Google Scholar
- Chi-Keung Luk, Robert Cohn, Robert Muth, Harish Patil, Artur Klauser, Geoff Lowney, Steven Wallace, Vijay Janapa Reddi, and Kim Hazelwood. 2005. Pin: Building customized program analysis tools with dynamic instrumentation. In ACM SIGPLAN Not. 40, 6, 190--200. Google ScholarDigital Library
- Jack A. Mandelman, Robert H. Dennard, Gary B. Bronner, John K. DeBrosse, Rama Divakaruni, Yujun Li, and Carl J. Radens. 2002. Challenges and future directions for the scaling of dynamic random-access memory (DRAM). IBM J. Res. Develop. 46, 2.3, 187--212.Google ScholarDigital Library
- Iulian Moraru, David G. Andersen, Michael Kaminsky, Niraj Tolia, Parthasarathy Ranganathan, and Nathan Binkert. 2013. Consistent, durable, and safe memory management for byte-addressable non volatile main memory. In Proceedings of the 1st ACM SIGOPS Conference on Timely Results in Operating Systems. ACM. Google ScholarDigital Library
- W. Mueller, G. Aichmayr, W. Bergner, E. Erben, T. Hecht, C. Kapteyn, A. Kersch, S. Kudelka, F. Lau, J. Luetzen, and A. Orth. 2005. (December). Challenges for the DRAM cell scaling to 40nm. In Proceedings of the IEEE International Electron Devices Meeting. (IEDM Technical Digest.)Google Scholar
- Moinuddin K. Qureshi, John Karidis, Michele Franceschini, Vijayalakshmi Srinivasan, Luis Lastras, and Bulent Abali. 2009. Enhancing lifetime and security of PCM-based main memory with start-gap wear leveling. In Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture. ACM, 14--23. Google ScholarDigital Library
- Moinuddin K. Qureshi, Andre Seznec, Luis A. Lastras, and Michele M. Franceschini. 2011. Practical and secure PCM systems by online detection of malicious write streams. In Proceedings of the 2011 IEEE 17th International Symposium on High Performance Computer Architecture (HPCA). IEEE, 478--489. Google ScholarCross Ref
- Moinuddin K. Qureshi, Vijayalakshmi Srinivasan, and Jude A. Rivers. 2009. Scalable high performance main memory system using phase-change memory technology. In Proceedings of ISCA. ACM, New York, 24--33. Google ScholarDigital Library
- Simone Raoux, Geoffrey W. Burr, Matthew J. Breitwisch, Charles T. Rettner, Y. C. Chen, Robert M. Shelby, Martin Salinga, Daniel Krebs, S. H. Chen, H. L. Lung, and C. H. Lam. 2008. Phase-change random access memory: A scalable technology. IBM J. Res. Develop. 52, 4.5, 465--479.Google ScholarDigital Library
- R. Rodríguez-Rodríguez, F. Castro, D. Chaver, R. Gonzalez-Alberquilla, L. Piñuel, and F. Tirado. 2015. Write-aware replacement policies for PCM-based systems. The Computer J. 58, 9, 2000--2025. Google ScholarCross Ref
- Stephen M. Rumble, Ankita Kejriwal, and John Ousterhout. 2014. Log-structured memory for dram-based storage. In Proceedings of the 12th USENIX Conference on File and Storage Technologies (FAST'14). 1--16.Google ScholarDigital Library
- Andre Seznec. 2010. A phase change memory as a secure main memory. Comput. Architect. Lett. 9, 1, 5--8.Google ScholarDigital Library
- Zili Shao, Naehyuck Chang, and Nikil Dutt. 2012. (August). PTL: PCM translation layer. In VLSI (ISVLSI), 2012 IEEE Computer Society Annual Symposium on, 380--385. IEEE.Google ScholarDigital Library
- Shivaram Venkataraman, Niraj Tolia, Parthasarathy Ranganathan, and Roy H. Campbell. 2010. Redesigning data structures for non-volatile byte-addressable memory. In Proceedings of USENIX Conference on File and Storage Technologies (FAST’10).Google Scholar
- Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight persistent memory. ACM SIGPLAN Notices 46, 3, 91--104. Google ScholarDigital Library
- Chundong Wang and Weng-Fai Wong. 2012. Observational wear leveling: An efficient algorithm for flash memory management. In Design Automation Conference (DAC). 2012, 235--242. Google ScholarDigital Library
- Chundong Wang and Weng-Fai Wong. 2013. SAW: System-assisted wear leveling on the write endurance of NAND flash devices. In Design Automation Conference (DAC). 2013, 1--9. Google ScholarDigital Library
- Xiaojian Wu and A. L. Reddy. 2011. SCMFS: A file system for storage class memory. In Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, 39. ACM. Google ScholarDigital Library
- Chun Jason Xue, Youtao Zhang, Yiran Chen, Guangyu Sun, J. Jianhua Yang, and Hai Li. 2011. Emerging non-volatile memories: Opportunities and challenges. In Proceedings of the 7th IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis. ACM, 325--334. Google ScholarDigital Library
- Jun Yang, Qingsong Wei, Cheng Chen, Chundong Wang, Khai Leong Yong, and Bingsheng He. 2015. Nv-tree: Reducing consistency cost for NVM-based single level systems. In Proceedings of the 13th USENIX Conference on File and Storage Technologies (FAST 15). 167--181.Google Scholar
- Songping Yu, Nong Xiao, Mingzhu Deng, Yuxuan Xing, Fang Liu, Zhiping Cai, and Wei Chen. 2015. (December). WAlloc: An efficient wear-aware allocator for non-volatile main memory. In Proceedings of the 34th IEEE International Performance Computing and Communications Conference (IPCCC). December 14th-16th, 2015, Nanjing, China.Google Scholar
- Ping Zhou, Bo Zhao, Jun Yang, and Youtao Zhang. 2009. A durable and energy efficient main memory using phase change memory technology. ACM SIGARCH Computer Architecture News 37, 3, 14--23. ACM. Google ScholarDigital Library
Index Terms
- Redesign the Memory Allocator for Non-Volatile Main Memory
Recommendations
Managing Non-Volatile Memory in Database Systems
SIGMOD '18: Proceedings of the 2018 International Conference on Management of DataNon-volatile memory (NVM) is a new storage technology that combines the performance and byte addressability of DRAM with the persistence of traditional storage devices like flash (SSD). While these properties make NVM highly promising, it is not yet ...
Makalu: fast recoverable allocation of non-volatile memory
OOPSLA 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsByte addressable non-volatile memory (NVRAM) is likely to supplement, and perhaps eventually replace, DRAM. Applications can then persist data structures directly in memory instead of serializing them and storing them onto a durable block device. ...
Preliminary Analysis of a Write Reduction Method for Non-volatile Main Memory on Jikes RVM
CANDAR '13: Proceedings of the 2013 First International Symposium on Computing and NetworkingThere are many researches and developments on byte accessible non-volatile memory (NVM). Byte accessible NVM can be used as not only storage but also main memory. Non-volatile main memory has two significant merits: reducing power consumption of main ...
Comments