|Title||A Survey of Software Techniques for Using Non-Volatile Memories for Storage and Main Memory Systems|
|Publication Type||Journal Article|
|Year of Publication||2016|
|Authors||Mittal, Sparsh, and Vetter Jeffrey S.|
|Journal||IEEE Transactions on Parallel and Distributed Systems (TPDS)|
|Keywords||classification, flash memory, Non-volatile Memory, NVM, NVRAM, PCM, PCRAM, phase change RAM, ReRAM, resistive RAM, Review, RRAM, SCM, Solid State Drive, spin transfer torque RAM, SSD, storage class memory, STT-MRAM, STT-RAM|
Non-volatile memory (NVM) devices, such as Flash, phase change RAM, spin transfer torque RAM, and resistive RAM, offer several advantages and challenges when compared to conventional memory technologies, such as DRAM and magnetic hard disk drives (HDDs). In this paper, we present a survey of software techniques that have been proposed to exploit the advantages and mitigate the disadvantages of NVMs when used for designing memory systems, and, in particular, secondary storage (e.g., solid state drive) and main memory. We classify these software techniques along several dimensions to highlight their similarities and differences. Given that NVMs are growing in popularity, we believe that this survey will motivate further research in the field of software technology for NVMs.