A Survey of Software Techniques for Using Non-Volatile Memories for Storage and Main Memory Systems | IEEE Journals & Magazine | IEEE Xplore