Will Non-Volatile Memory Change How Operating Systems Work?

Will Non-Volatile Memory Change How Operating Systems Work?

Introduction

Non-volatile memory (NVM), also known as storage class memory, is an emerging technology that combines the benefits of conventional DRAM memory and solid state drives. NVM is memory that retains data even when power is lost. This means it provides the fast read and write speeds of DRAM, but with the non-volatility of SSDs.

The potential of NVM has huge implications for the future of operating systems and how they manage data and memory. In this article, I will explore the key ways that the rise of NVM could fundamentally change and improve how operating systems work.

How NVM Improves Performance

One of the major benefits of NVM is that it has near-DRAM speeds while also being non-volatile. This means operating systems can treat NVM like system memory but get the added advantage of persistence.

This should provide a performance boost for a few key reasons:

Faster Boot Times

With NVM, critical boot data can be stored and accessed faster than traditional hard drives. The operating system can load data from NVM as fast as loading from DRAM. This should dramatically speed up boot sequences.

Faster Access to Storage

Since NVM is directly accessible as memory address space, the OS can read and write storage at near memory speeds. There is no need for the relatively slow process of accessing a separate block storage device like with HDDs or SSDs.

More Efficient Caching

Operating systems use various caching mechanisms to keep frequently accessed data in faster memory. NVM improves this because even cached data is persistent if power is lost. Nothing needs to be written back to disk.

Potential for Single Level Storage

With persistent memory, separate tiers of memory hierarchy may not be needed. The OS could use NVM for both system memory and storage. This simplifies architecture and removes inefficiencies of moving data between storage layers.

Rethinking Data Structures and Algorithms

Many operating system data structures and algorithms are designed with the assumption of volatile DRAM and separate disk storage. With NVM, some of these may need rethinking:

File system changes

File systems organize data storage and access. With integrated NVM, many OS file system operations like journaling, indexing, caching, and buffering may need redesigned for optimal performance.

Memory allocation changes

The OS memory manager allocates portions of memory to applications. NVM provides an opportunity to rethink memory allocation algorithms and policies.

Data integrity improvements

NVM eliminates the risk of data loss due to power failure during write operations. This means OS design can focus less on resiliency concerns and more on performance.

Security improvements

Information persisted in non-volatile memory remains even after systems are powered down. The OS can leverage this to improve certain security capabilities. For example, sensitive keys or credentials that today are wiped after use could now persist.

Challenges for Operating Systems

While promising, NVM also introduces some new challenges:

Unique programming model

Applications need to be rewritten to best leverage non-volatile memory. The OS needs to create the right abstractions for this new tier of memory. The traditional load/store model may need expanded.

Handling vast amounts of data

The massive data capacity of NVM requires OS improvements for managing and providing access to all that data efficiently. Virtual memory management may need rethought.

Greater need for encryption

With persistent memory, encryption and cryptography become much more important for data security. The OS needs to encrypt data at rest and manage keys safely.

Rethinking wear leveling

NVM technologies typically have limited program-erase cycles. The OS needs effective ways to ensure wear leveling across memory sectors.

The Future with Non-Volatile Memory

In summary, the emergence of performant non-volatile memory has the potential to transform how operating systems function. They can take advantage of persistence and memory-like speeds to improve boot times, storage access, caching, and more. However, OS designs need rethinking to address new challenges like massive data capacity, encryption needs, and wear leveling. Overall, NVM removes many of the constraints around volatile memory that OS algorithms and data structures were designed for. This creates an exciting opportunity to rearchitect systems and achieve dramatically better efficiency and performance. The coming decade will reveal the full impact as non-volatile memory sees increased adoption across consumer and enterprise devices and platforms.

Facebook
Pinterest
Twitter
LinkedIn