processor support for nvm programming - snia · processor support for nvm programming andy rudoff...

Post on 27-May-2018

239 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Processor Support for NVM Programming

Andy Rudoff Intel Corporation NVM Summit January 20th 2015

1

NVM Summit

Challenges Introduced by NVM Programming

2

NVM Summit 3

NVDIMM

User Space

Kernel Space

Standard File API

NVDIMM Driver

Application

File System

Application Application

Standard Raw Device

Access

Block File Memory

Load/Store

Management Library

Management UI

Standard File API

Mgmt.

PM-Aware File System

MMU Mappings

NVM Summit

Where Writes are Cached

4

NVDIMM

User Space

Kernel Space

Application

Load/Store Standard File API

PM-Aware File System

MMU Mappings

No Page Cache

msync() FlushViewOfFile()

pmem_persist()

NVM Summit

The Road to Persistence

5

Core

L1 L1

L2

L3

Core

L1 L1

L2

Core

L1 L1

L2

Core

L1 L1

L2

NVDIMM NVDIMM

NVDIMM NVDIMM

Memory Controller Memory Controller

MOV

NVM Summit

Hiding Places

6

Core

L1 L1

L2

L3

Core

L1 L1

L2

Core

L1 L1

L2

Core

L1 L1

L2

NVDIMM NVDIMM

NVDIMM NVDIMM

Memory Controller Memory Controller

MOV

NVM Summit

Instruction-Level Support

7

NVM Summit

Two Levels of Flushing Writes

8

NVDIMM NVDIMM

CLFLUSH, CLFLUSHOPT, CLWB

PCOMMIT

NVM Summit

Flushing Writes from Caches

Instruction Meaning

CLFLUSH addr Cache Line Flush: Available for a long time

CLFLUSHOPT addr Optimized Cache Line Flush: New to allow concurrency

CLWB addr Cache Line Write Back: Leave value in cache

for performance of next access

WBINVD Heavy Hammer:

used by OS to flush entire cache Privileged

9

NVM Summit

Flushing Writes from Memory Controller

Instruction Meaning

PCOMMIT Persistent Commit:

Flush stores accepted by memory subsystem

Asynchronous DRAM Refresh Flush outstanding writes

on power failure Platform-Specific Feature

10

NVM Summit

How to Use This

11

NVM Summit

NVM Library: pmem.io 64-bit Linux Initially

12

NVDIMM

User Space

Kernel Space

Application

Load/Store Standard File API

PM-Aware File System

MMU Mappings

Library

• Open Source • http://pmem.io

• Libpmem • Libpmemobj • Libpmemblk • Libpmemlog • Libvmem

Transactional

NVM Summit

Summary

• New Instructions Emerging – Support the SNIA NVM Programming Model

• Stay Tuned… more to come…

– But you probably want to use a library: http://pmem.io

• Intel Architecture Instruction Set Extensions Programming Reference – https://software.intel.com/en-us/intel-isa-extensions

13

NVM Summit 14

top related