Presentation is loading. Please wait.

Presentation is loading. Please wait.

PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE.

Similar presentations


Presentation on theme: "PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE."— Presentation transcript:

1 PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

2 PERSISTENT MEMORY CPU PERSISTENT MEMORY Provides an opportunity to manipulate persistent data directly Ld/St NVM FAST BYTE ADDR NONVOLATILE

3 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; }

4 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; }

5 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; }

6 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 Prohibited Operation

7 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 Prohibited Operation Burden on the programmers

8 Our Solution: ThyNVM

9 NO MODIFICATION IN THE CODE 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; }

10 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; }

11 ThyNVM A new hardware-based checkpointing mechanism A 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

12 ThyNVM Enabling Software-Transparent Crash Consistency in Persistent Memory Jinglei Ren, Jishen Zhao, Samira Khan, Jongmoo Choi, Yongwei Wu, and Onur Mutlu Jinglei Ren, Jishen Zhao, Samira Khan, Jongmoo Choi, Yongwei Wu, and Onur Mutlu WEDNESDAY 10:20 am


Download ppt "PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE."

Similar presentations


Ads by Google