PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE.

Slides:



Advertisements
Similar presentations
Transactions and Recovery Checkpointing Souhad Daraghma.
Advertisements

Monitoring Data Structures Using Hardware Transactional Memory Shakeel Butt 1, Vinod Ganapathy 1, Arati Baliga 2 and Mihai Christodorescu 3 1 Rutgers University,
Loose-Ordering Consistency for Persistent Memory
MICRO-47, December 15, 2014 FIRM: Fair and HIgh-PerfoRmance Memory Control for Persistent Memory Systems Jishen Zhao Onur Mutlu Yuan Xie.
G Robert Grimm New York University Sprite LFS or Let’s Log Everything.
1 MPEG-21 : Goals and Achievements Ian Burnett, Rik Van de Walle, Keith Hill, Jan Bormans and Fernando Pereira IEEE Multimedia, October-November 2003.
SECTIONS 13.1 – 13.3 Sanuja Dabade & Eilbroun Benjamin CS 257 – Dr. TY Lin SECONDARY STORAGE MANAGEMENT.
331 Lec20.1Spring :332:331 Computer Architecture and Assembly Language Spring 2005 Week 13 Basics of Cache [Adapted from Dave Patterson’s UCB CS152.
The SNIA NVM Programming Model
Silberschatz, Galvin and Gagne  Operating System Concepts Common System Components Process Management Main Memory Management File Management.
1.2 Language Processing Activities The fundamental language processing activities divided into two parts. 1. Program generation activities 2. Program execution.
Checkpoint Based Recovery from Power Failures Christopher Sutardja Emil Stefanov.
Fundamentals Computing Components 01/23/15. Hardware Physical Components Bit  Open or Closed Switch  High or Low Signal  Zero or One Byte  Eight bits.
SECTIONS 13.1 – 13.3 Sanuja Dabade & Eilbroun Benjamin CS 257 – Dr. TY Lin SECONDARY STORAGE MANAGEMENT.
A Case for Efficient Hardware/Software Cooperative Management of Storage and Memory Justin Meza *, Yixin Luo *, Samira Khan *†, Jishen Zhao §, Yuan Xie.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
NVM Programming Model. 2 Emerging Persistent Memory Technologies Phase change memory Heat changes memory cells between crystalline and amorphous states.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Course ILT Memory systems Unit objectives Describe the function of memory and differentiate between different types of memory chips Differentiate between.
ECE 526 – Network Processing Systems Design Network Processor Architecture and Scalability Chapter 13,14: D. E. Comer.
Configuration.
Introduction CSE 410, Spring 2008 Computer Systems
Intro to Architecture – Page 1 of 22CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Introduction Reading: Chapter 1.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
COMPUTER SCIENCE QUESTIONS… BY JACK. WHAT IS THE CPU? The cpu is the central processing unit.
Lecture 8 February 29, Topics Questions about Exercise 4, due Thursday? Object Based Programming (Chapter 8) –Basic Principles –Methods –Fields.
Log-structured Memory for DRAM-based Storage Stephen Rumble, John Ousterhout Center for Future Architectures Research Storage3.2: Architectures.
Boot Sequence, Internal Component & Cisco 3 Layer Model 1.
File Systems in Real-Time Embedded Applications March 6th Eric Julien Balancing Performance, Safety and Resource Usage in an Embedded File System 1.
OPERATING SYSTEMS Frans Sanen.  Recap of threads in Java  Learn to think about synchronization problems in Java  Solve synchronization problems in.
Memory Hierarchy Adaptivity An Architectural Perspective Alex Veidenbaum AMRM Project sponsored by DARPA/ITO.
Design Patterns Software Engineering CS 561. Last Time Introduced design patterns Abstraction-Occurrence General Hierarchy Player-Role.
Programmability Hiroshi Nakashima Thomas Sterling.
Multilevel Caches Microprocessors are getting faster and including a small high speed cache on the same chip.
Gather-Scatter DRAM In-DRAM Address Translation to Improve the Spatial Locality of Non-unit Strided Accesses Vivek Seshadri Thomas Mullins, Amirali Boroumand,
31 Oktober 2000 SEESCOASEESCOA STWW - Programma Work Package 5 – Debugging Task Generic Debug Interface K. De Bosschere e.a.
ThyNVM Enabling Software-Transparent Crash Consistency In Persistent Memory Systems Jinglei Ren, Jishen Zhao, Samira Khan, Jongmoo Choi, Yongwei Wu, and.
EJB Replication Graham, Iman, Santosh, Mark Newcastle University.
Quantifying and Controlling Impact of Interference at Shared Caches and Main Memory Lavanya Subramanian, Vivek Seshadri, Arnab Ghosh, Samira Khan, Onur.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
System Components Operating System Services System Calls.
Samira Khan University of Virginia Jan 21, 2016 COMPUTER ARCHITECTURE CS 6354 The content and concept of this course are adapted from CMU ECE 740.
Welcome to Intro to Operating Systems Course Website:
Transparent Offloading and Mapping (TOM) Enabling Programmer-Transparent Near-Data Processing in GPU Systems Kevin Hsieh Eiman Ebrahimi, Gwangsun Kim,
ThyNVM Software-Transparent Crash Consistency for Persistent Memory
Process Synchronization
Topic: Difference b/w JDK, JRE, JIT, JVM
Understanding Latency Variation in Modern DRAM Chips Experimental Characterization, Analysis, and Optimization Kevin Chang Abhijith Kashyap, Hasan Hassan,
Concurrent Data Structures for Near-Memory Computing
Samira Khan University of Virginia Oct 23, 2017
Write-hotness Aware Retention Management: Efficient Hot/Cold Data Partitioning for SSDs Saugata Ghose ▪ joint.
Computer Architecture & Operations I
Rachata Ausavarungnirun GPU 2 (Virginia EF) Tuesday 2PM-3PM
Hasan Hassan, Nandita Vijaykumar, Samira Khan,
Sanuja Dabade & Eilbroun Benjamin CS 257 – Dr. TY Lin
HyperLoop: Group-Based NIC Offloading to Accelerate Replicated Transactions in Multi-tenant Storage Systems Daehyeok Kim Amirsaman Memaripour, Anirudh.
Filesystems 2 Adapted from slides of Hank Levy
5.1 Graphing Systems of Equations
Application Slowdown Model
Address-Value Delta (AVD) Prediction
Session 1A at am MEMCON Detecting and Mitigating
Samira Khan University of Virginia Aug 29, 2018
Chapter 2: Operating-System Structures
Chapter 2: Operating-System Structures
Distributed Systems and Concurrency: Distributed Systems
Computer Architecture Lecture 14a: Emerging Memory Technologies II
Janus Optimizing Memory and Storage Support for Non-Volatile Memory Systems Sihang Liu Korakit Seemakhupt, Gennady Pekhimenko, Aasheesh Kolli, and Samira.
Testing Persistent Memory Applications
Saugata Ghose Carnegie Mellon University
Presentation transcript:

PERSISTENT MEMORY NVM FAST BYTE ADDR NONVOLATILE

PERSISTENT MEMORY CPU PERSISTENT MEMORY Provides an opportunity to manipulate persistent data directly Ld/St 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; }

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

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

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

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

Our Solution: ThyNVM

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

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

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

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