persistent memory nvm fast byte addr nonvolatile

12
PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATI LE

Upload: rosa-hensley

Post on 17-Jan-2018

248 views

Category:

Documents


0 download

DESCRIPTION

WHAT HAPPENS WHEN WE RUN AN APPLICATION? void hashtable_update (hashtable_t* ht, void *key, void *data) { list_t* chain = get_chain (ht, key); pair_t* pair; pair_t updatePair; updatePair.first = key; pair = (pair_t*) list_find (chain, &updatePair); pair->second = data; }

TRANSCRIPT

Page 1: PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

PERSISTENT MEMORY

NVMFAST

BYTE ADDRNONVOLATILE

Page 2: PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

PERSISTENT MEMORYCPU

PERSISTENTM

EMO

RY

Provides an opportunity to manipulate persistent data directly

Ld/St

NVMFAST

BYTE ADDRNONVOLATILE

Page 3: PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

WHAT HAPPENS WHEN WE RUN AN APPLICATION?

void hashtable_update (hashtable_t* ht, void *key, void *data){ list_t* chain = get_chain (ht, key); pair_t* pair; pair_t updatePair; updatePair.first = key; pair = (pair_t*) list_find (chain,

&updatePair); pair->second = data;}

Page 4: PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

RUN THE CODE…

Persistent Memory System

System crash can result in permanent data corruption in NVM

void hashtable_update(hashtable_t* ht, void *key, void *data){ list_t* chain = get_chain(ht, key); pair_t* pair; pair_t updatePair; updatePair.first = key; pair = (pair_t*) list_find(chain,

&updatePair); pair->second = data;}

Page 5: PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

CURRENT SOLUTION

void TMhashtable_update (TMARCGDECL hashtable_t* ht, void *key, void*data){ list_t* chain = get_chain (ht, key); pair_t* pair; pair_t updatePair; updatePair.first = key; pair = (pair_t*) TMLIST_FIND (chain,

&updatePair); pair->second = data;}

Page 6: PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

CURRENT SOLUTION

void TMhashtable_update (TMARCGDECL hashtable_t* ht, void *key, void*data){ list_t* chain = get_chain (ht, key); pair_t* pair; pair_t updatePair; updatePair.first = key; pair = (pair_t*) TMLIST_FIND (chain,

&updatePair); pair->second = data;}

Manual declaration of persistent components

Needs a new implementation

Third party code can be inconsistent

ProhibitedOperation

Page 7: PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

CURRENT SOLUTION

void TMhashtable_update (TMARCGDECL hashtable_t* ht, void *key, void*data){ list_t* chain = get_chain (ht, key); pair_t* pair; pair_t updatePair; updatePair.first = key; pair = (pair_t*) TMLIST_FIND (chain,

&updatePair); pair->second = data;}

Manual declaration of persistent components

Needs a new implementation

Third party code can be inconsistent

ProhibitedOperation

Burden on the programmers

Page 8: PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

Our Solution:ThyNVM

Page 9: PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

NO MODIFICATION IN THE CODEvoid hashtable_update (hashtable_t* ht, void *key, void *data){ list_t* chain = get_chain (ht, key); pair_t* pair; pair_t updatePair; updatePair.first = key; pair = (pair_t*) list_find (chain,

&updatePair); pair->second = data;}

Page 10: PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

RUN THE EXACT SAME CODE…

Persistent Memory System

Software transparent memory crash consistency

void hashtable_update(hashtable_t* ht, void *key, void *data){ list_t* chain = get_chain(ht, key); pair_t* pair; pair_t updatePair; updatePair.first = key; pair = (pair_t*) list_find(chain,

&updatePair); pair->second = data;}

Page 11: PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

ThyNVMA new hardware-based

checkpointing mechanism

• Checkpoints at multiple granularities to minimize both latency and metadata

• Overlaps checkpointing and execution

• Adapts to DRAM and NVM characteristics

Performs within 4.9% of an idealized DRAM with zero cost consistency

Page 12: PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

ThyNVMEnabling Software-Transparent

Crash Consistency in Persistent MemoryJinglei Ren, Jishen Zhao, Samira Khan,

Jongmoo Choi, Yongwei Wu, and Onur Mutlu

WEDNESDAY 10:20 am