Publication | Closed Access
Programming for Non-Volatile Main Memory Is Hard
24
Citations
26
References
2017
Year
Unknown Venue
Non-volatile MemoryEngineeringComputer ArchitectureSoftware EngineeringMemory Model (Programming)Software AnalysisHardware SecurityNon-volatile Main MemorySystems EngineeringLatest NvmmParallel ComputingMemory ManagementComputer EngineeringComputer ScienceVirtual MemoryMemory ArchitectureSoftware DesignProgram AnalysisSoftware TestingObject-oriented ProgrammingParallel ProgrammingSystem Software
Using non-volatile memory as main memory (NVMM) can largely improve the performance of applications, but adds to the challenge of programming -- it turns out to be very error-prone to write real-world NVMM programs, especially with object-oriented programming. This paper presents a field study of erroneous NVMM programs written by programmers who are trained to use a general NVMM programming interface. We performed the field study in a training workshop of 30 participants. Our observations and derived best practices offer a reference for future NVMM programming techniques design. Toward that end, we propose a taxonomy of latest NVMM programming techniques and, accordingly, a set of paradigms that can reduce the risk of NVMM-specific bugs. The paradigms incorporate a minimal NVMM library interface design and a new design pattern inspired by the field study.
| Year | Citations | |
|---|---|---|
Page 1
Page 1