Some very interesting research has been happening in the area of Persistent Memory and more is emerging. While the examples provided here are meant as introductory and simple, some publications cover the topic in much more depth and include complete transaction systems, compiler/language enhancements, etc. Here are some of the most important publications in this space (please send links to more and we’ll include them).
One of the most impressive bodies of work in this area is Mnemosyne. Read the paper:
- Haris Volos, Andres Jaan Tack, Michael M. Swift: Mnemosyne: Lightweight Persistent Memory, The 16th ACM Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2011), March 2011, Newport Beach, California.
and explore the website, which includes full source and documentation:
Another very relevant project is NV-Heaps. Read the paper:
- J. Coburn, et al.: NV-Heaps: Making Persistent Objects Fast and Safe with Next Generation, Non-Volatile Memories, The 16th ACM Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2011), March 2011, Newport Beach, Ca.
The June 2013 issue of USENIX ;login: contains an article that discusses the NVM Programming Model, including a discussion of Persistent Memory.
The NVM Programming Technical Work Group (TWG) in SNIA has over 35 companies working together on NVM programming models, including Persistent Memory. You can read more about the TWG and see the programming model specification here:
The basics of NVDIMM at Wikipedia, with lots of additional links: