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

14
Processor Support for NVM Programming Andy Rudoff Intel Corporation NVM Summit January 20 th 2015 1

Upload: nguyennhan

Post on 27-May-2018

239 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

Processor Support for NVM Programming

Andy Rudoff Intel Corporation NVM Summit January 20th 2015

1

Page 2: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

NVM Summit

Challenges Introduced by NVM Programming

2

Page 3: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

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

Page 4: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

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()

Page 5: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

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

Page 6: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

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

Page 7: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

NVM Summit

Instruction-Level Support

7

Page 8: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

NVM Summit

Two Levels of Flushing Writes

8

NVDIMM NVDIMM

CLFLUSH, CLFLUSHOPT, CLWB

PCOMMIT

Page 9: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

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

Page 10: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

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

Page 11: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

NVM Summit

How to Use This

11

Page 12: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

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

Page 13: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

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

Page 14: Processor Support for NVM Programming - SNIA · Processor Support for NVM Programming Andy Rudoff Intel Corporation . NVM Summit . January 20 th 2015 . 1

NVM Summit 14