Date post: | 27-May-2018 |
Category: |
Documents |
Upload: | nguyennhan |
View: | 238 times |
Download: | 0 times |
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