SNIA Announces Release of its Non-Volatile Memory Programming Model

For Release: 

The SNIA NVM Programming Model:

  • Recommends behavior for operating system and driver developers enabling software to utilize Non-Volatile Memory (NVM) specific features
  • Defines programming models allowing application developers to use these NVM features
  • Provides a path for NVM device vendors to enable software-oriented features
  •  Defines a new programming model for emerging memory-based NVM

 San Francisco, CA (Jan. 22, 2014) - The Storage Networking Industry Association (SNIA) today announced that its NVM Programming Model has been released to the public. The NVM Programming Model provides abstractions to operating system (OS) components (such as file systems) and applications accessing persistent memory (PM) hardware. The Programming Model is hardware agnostic and does not compete with command set standards such as Small Computer System Interface (SCSI), Advanced Technology Attachment (ATA) or NVM Express. The NVM Programming Model may be downloaded from this web page:

“NVM is any type of non-volatile memory, which includes disk form factor and PCI Express (PCIe) card Solid State Disks (SSDs), and PM hardware. PM is byte-addressable, uses load/store access (is not demand paged), operates near Dynamic Random-Access Memory(DRAM) speeds, and allows for Direct Memory Access,” said Paul von Behren of Intel, co-chair of the SNIA NVM Programming Technical Work Group.

The Programming Model defines common behavior allowing applications to use NVM by providing extensions to existing block-addressable NVM software stacks and a new approach for PM.

The extensions for block-addressable NVM software relate to atomicity capabilities, device granularities and thin provisioning management. The new approach for PM utilizes existing memory mapped file abstractions that can act as a bridge to higher value from PM and limits the scope of required application reinvention.

Importantly, this is a Programming Model, not an application programming interface (API). The Programming Model includes descriptions of required behavior in terms of actions and promotes discovery of capabilities using attributes. Use cases show how the modes are used in real-world programming contexts. Implementations will use the Programming Model to map actions and attributes to API elements.

 “Defining a standard interface to NVM through the NVM Programming Model has the potential to reduce storage costs and provide new levels of storage performance for applications and the operating system.  Microsoft is working with the storage industry to combine our groundbreaking Software Defined Storage (SDS) capabilities in Windows Server 2012 R2 with value hardware to create a reliable, available, storage solution that can be dynamically reconfigured in software,” said Jim Pinkerton, Lead Partner Architect, Microsoft.

"Persistent Memory can allow databases and other services to run faster and recover more quickly," says Garret Swart, Architect at Oracle. "PM-aware engineered systems can provide instruction-latency logging and reduced recovery time, as the content of caches and in-memory data structures can be validated and retained rather than rebuilt after a reboot."

“This work has benefited from the breadth of participation that SNIA brings to technical work. It reflects SNIA’s understanding of the importance of software as an essential component of NVM solutions,” said Doug Voigt of HP, co-chair of the NVM Programming Technical Working Group.

Hear from the NVM experts at SNIA’s Storage Industry Summit on NVM themed The Future of Computing – The Convergence of Memory and Storage through Non-Volatile Memory. This summit takes place on January 28, 2014 in San Jose, CA and is free to attend

Industry Support for the NVM Programming Model

Bob Beauchamp, Distinguished Engineer and Director Hardware Technology and Architecture, EMC:

“Within 3-5 years we expect the next generation NVM, based on new media such as Spin-Torque MRAM (ST-MRAM), Resistive random-access memory (ReRAM) or Phase-change memory(PCM) to offer better density, price and power per bit than DRAM. It is this expectation that has been a powerful driver behind the creation of this new programming model.”

Nisha Talagala, Lead Architect, Fusion-io

“We have been participating in the Non-Volatile Memory Programming Technical Working Group (NVMP TWG) almost from its beginning, and are very excited to see this work start to emerge in the public forum. The NVM Programming Model adds an important element to storage memory convergence by standardizing abstract primitives that can then be converted by software into APIs and system designs. Fusion-io has begun this software conversion through its interfaces published at in conjunction with the Open Compute Project.”

Ric Wheeler, Director of File Systems Engineering Red Hat:

“SSDs initially appeared to the kernel as disks and plugged in seamlessly to the existing stack. However, the advent of PCIe-based SSDs pushed the boundaries of the Linux I/O stack and offered performance challenges. Looking to the future, wide-spread adoption of NVM technologies will require the adoption of a standards-based solution, such as this programming model.”


About the NVM Programming Technical Work Group

The SNIA Non-Volatile Memory (NVM) Programming Technical Work Group (TWG)comprises engineers from across the storage, systems software, and application software industries, whose goal is to enable a common ecosystem for NVM-enabled software without limiting the ability to innovate.  With the publication of the SNIA NVM Programming Model, the TWG describes the behavior of a common set of software interfaces that provide access to non-volatile memory (NVM).

About the SNIA

The Storage Networking Industry Association (SNIA) is a not–for–profit global organization, made up of some 400 member companies spanning virtually the entire storage industry. SNIA’s mission is to lead the storage industry worldwide in developing and promoting standards, technologies, and educational services to empower organizations in the management of information. To this end, the SNIA is uniquely committed to delivering standards, education, and services that will propel open storage networking solutions into the broader market. For additional information, visit the SNIA web site at

About the SNIA Solid State Storage Initiative (SSSI)

The SNIA Solid State Storage Initiative (SSSI) fosters the growth and success of the market for solid state storage in both enterprise and client environments. Members of the SSSI work together to promote the development of technical standards and tools, educate the IT communities about solid state storage, perform market outreach that highlights the virtues of solid state storage, and collaborate with other industry associations on solid state storage technical work. SSSI member companies represent a variety of segments in the IT industry.

Follow SNIA SSSI developments at: