Intel® Optane™ DC Persistent Memory Overview

This video provides an introduction to Intel® Optane™ DC Persistent Memory.

Welcome. My name is Eduardo Berrocal from Intel. In this video I give you an introduction to the new Intel® Optane™ DC Persistent memory. A new class of memory for the next generation of Intel® Xeon® processors for servers.

Intel Optane DC Persistent Memory is a new type of persistent memory sometimes called a storage class memory. This new memory has two main properties. First, it is persistent. This means that data is maintained even when the system power is off.

In addition, this memory is byte-addressable. Like in regular DRAM, programs can access data structures in place at cache line granularity, avoiding the need to access data in large blocks as it clearly happens in traditional I/O. Optane technology reduces access latency substantially, so much so that software which usually contributes at very more proportion relative to the overall access latency for NAND such as this start to be the major bottleneck in the case of Optane SSDs.

Persistent memory connects directly to the memory box of the CPU, in effect, getting rid of any software bottleneck. You can see how low the latency is for a cache line read of 64 bytes. For a fair comparison, the latency for a block read of 4 kilobytes is also shown. Persistent memory can be used in three modes, memory mode, application direct, or app-direct mode, and mixed mode, which is a combination of the two.

Memory mode allows the system to use persistent memory as main memory. In this case, DRAM is used as a cache and cannot be explicitly managed by the operating system. This mode is appealing for use cases where applications need more memory, but expanding the system's memory with only DRAM becomes either very expensive or right away impossible due to scaling problems.

The advantage of memory mode for applications is that no code modifications are necessary, however, data is not persistent in this mode. In app-direct mode, persistent memory is exposed as a special block devices to the OS. And applications can use such devises for data persistent. In this case, DRAM is still used as main memory.

The advantages for applications are twofold. First, you get persistence for your data structures without the need of traditional I/O. Second, and in the case where persistent is not a requirement, applications can control the way data is stored in these different memory tiers. For example, we can put so-called hot objects those that are used the most in DRAM, while leaving warm objects for persistent memory. You can also use persistent memory in app-direct as a regular block device and put a regular file system on it as if it were an SSD.

It is even possible to boot an operating system from it, which allows you to configure systems with no disks are all. In terms of security, data in Intel Optane DC Persistent memory is protected at all times with xts aes 256 encryption, with the key safely store in the controller of each module. For app-direct, a passphrase is required after every power cycle to unlock the key.

In the case of memory mode, keys are cleared and regenerated in every power cycle to make the data appear volatile. Before you can start using persistent memory you need to have several hardware and software components in place. First, you need a server with either a gold or a platinum model of the next generation Intel® Xeon® processors for servers. Be aware that there are some restrictions in the way persistent memory can be used, depending on the CPU model.

Second, you need an operating system with the proper drivers installed on it. Fortunately, the most common operating systems used in the data center today such as Windows* Server and Linux* distributions such as Red Hat*, CentOS*, Ubuntu*, and Suse*, as well as Hypervisors, such as VMware*, ESXi, or Hyper-V* are ready support persistent memory out of the box. Finally, and only if you plan to use app-direct, you will need a persistent memory aware file system. You will be glad to know that the most common file systems such as ext2, ext4, and xfs in Linux* and NTFS in Windows* are already enabled for persistent memory.

At this point, you might be wondering why do we need a file system? After all, the whole point of putting persistent memory on the memory bus was to get rid of the software stack in the first place, which of course, includes a file system. The reason for the need of a persistent memory aware file system is tightly coupled with the programming model used for system memory. To expand on the information covered in this video, please read the documentation provided in the links.