Carnegie Mellon. 16 th Lecture, Mar. 20, Instructors: Todd C. Mowry & Anthony Rowe

Similar documents
Carnegie Mellon. Bryant and O Hallaron, Computer Systems: A Programmer s Perspective, Third Edition

Computer Systems. Virtual Memory. Han, Hwansoo

Virtual Memory: Concepts

CSE 153 Design of Operating Systems

14 May 2012 Virtual Memory. Definition: A process is an instance of a running program

Processes and Virtual Memory Concepts

Virtual Memory: Concepts

This lecture. Virtual Memory. Virtual memory (VM) CS Instructor: Sanjeev Se(a

Virtual Memory: Concepts

Understanding the Design of Virtual Memory. Zhiqiang Lin

Systems Programming and Computer Architecture ( ) Timothy Roscoe

198:231 Intro to Computer Organization. 198:231 Introduction to Computer Organization Lecture 14

Lecture 19: Virtual Memory: Concepts

Virtual Memory. CS61, Lecture 15. Prof. Stephen Chong October 20, 2011

Virtual Memory. Alan L. Cox Some slides adapted from CMU slides

Roadmap. Java: Assembly language: OS: Machine code: Computer system:

VM as a cache for disk

Virtual Memory II. CSE 351 Autumn Instructor: Justin Hsia

Virtual Memory II CSE 351 Spring

University of Washington Virtual memory (VM)

Virtual Memory II. CSE 351 Autumn Instructor: Justin Hsia

Virtual Memory. Motivations for VM Address translation Accelerating translation with TLBs

Virtual Memory Oct. 29, 2002

Motivations for Virtual Memory Virtual Memory Oct. 29, Why VM Works? Motivation #1: DRAM a Cache for Disk

CISC 360. Virtual Memory Dec. 4, 2008

Foundations of Computer Systems

virtual memory. March 23, Levels in Memory Hierarchy. DRAM vs. SRAM as a Cache. Page 1. Motivation #1: DRAM a Cache for Disk

Virtual Memory Nov 9, 2009"

CSE 351. Virtual Memory

A Few Problems with Physical Addressing. Virtual Memory Process Abstraction, Part 2: Private Address Space

virtual memory Page 1 CSE 361S Disk Disk

Random-Access Memory (RAM) Systemprogrammering 2007 Föreläsning 4 Virtual Memory. Locality. The CPU-Memory Gap. Topics

VIRTUAL MEMORY: CONCEPTS

Random-Access Memory (RAM) Systemprogrammering 2009 Föreläsning 4 Virtual Memory. Locality. The CPU-Memory Gap. Topics! The memory hierarchy

Virtual Memory I. CSE 351 Spring Instructor: Ruth Anderson

Virtual Memory. Physical Addressing. Problem 2: Capacity. Problem 1: Memory Management 11/20/15

@2010 Badri Computer Architecture Assembly II. Virtual Memory. Topics (Chapter 9) Motivations for VM Address translation

Virtual Memory. Computer Systems Principles

Virtual Memory. Samira Khan Apr 27, 2017

CS 153 Design of Operating Systems

18-447: Computer Architecture Lecture 16: Virtual Memory

Virtual Memory I. CSE 351 Winter Instructor: Mark Wyse

Virtual Memory: Systems

Virtual Memory: Systems

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 24

Virtual Memory. Spring Instructors: Aykut and Erkut Erdem

Memory Management! Goals of this Lecture!

Memory Management! How the hardware and OS give application pgms:" The illusion of a large contiguous address space" Protection against each other"

CSE 120 Principles of Operating Systems

P6/Linux Memory System Nov 11, 2009"

Memory Management. Goals of this Lecture. Motivation for Memory Hierarchy

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 23

Recall: Address Space Map. 13: Memory Management. Let s be reasonable. Processes Address Space. Send it to disk. Freeing up System Memory

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2015 Lecture 23

Memory System Case Studies Oct. 13, 2008

University*of*Washington*

Virtual Memory. Patterson & Hennessey Chapter 5 ELEC 5200/6200 1

Pentium/Linux Memory System March 17, 2005

Virtual Memory. Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T. November 15, MIT Fall 2018 L20-1

Another View of the Memory Hierarchy. Lecture #25 Virtual Memory I Memory Hierarchy Requirements. Memory Hierarchy Requirements

CSE 560 Computer Systems Architecture

CS 261 Fall Mike Lam, Professor. Virtual Memory

CS 61C: Great Ideas in Computer Architecture. Lecture 23: Virtual Memory. Bernhard Boser & Randy Katz

CS 61C: Great Ideas in Computer Architecture. Lecture 23: Virtual Memory

Memory Hierarchy Requirements. Three Advantages of Virtual Memory

CS 153 Design of Operating Systems Winter 2016

CSE 120 Principles of Operating Systems Spring 2017

Virtual Memory. CS 3410 Computer System Organization & Programming

CS 153 Design of Operating Systems

Address Translation. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

CS162 Operating Systems and Systems Programming Lecture 10 Caches and TLBs"

Virtual Memory: From Address Translation to Demand Paging

Chapter 8. Virtual Memory

Virtual Memory. Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T. April 12, 2018 L16-1

Virtual Memory. CS 3410 Computer System Organization & Programming. [K. Bala, A. Bracy, E. Sirer, and H. Weatherspoon]

Memory Hierarchy. Mehran Rezaei

CS 318 Principles of Operating Systems

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi

Paging! 2/22! Anthony D. Joseph and Ion Stoica CS162 UCB Fall 2012! " (0xE0)" " " " (0x70)" " (0x50)"

VIRTUAL MEMORY II. Jo, Heeseung

Chapter 5B. Large and Fast: Exploiting Memory Hierarchy

Recap: Memory Management

EECS 470. Lecture 16 Virtual Memory. Fall 2018 Jon Beaumont

CSE 451: Operating Systems Winter Page Table Management, TLBs and Other Pragmatics. Gary Kimura

Cache Performance and Memory Management: From Absolute Addresses to Demand Paging. Cache Performance

Learning Outcomes. An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory.

Learning Outcomes. An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory.

Handout 4 Memory Hierarchy

CS252 S05. Main memory management. Memory hardware. The scale of things. Memory hardware (cont.) Bottleneck

Virtual Memory Virtual memory first used to relive programmers from the burden of managing overlays.

Agenda. CS 61C: Great Ideas in Computer Architecture. Virtual Memory II. Goals of Virtual Memory. Memory Hierarchy Requirements

Computer Architecture Lecture 13: Virtual Memory II

Page 1. Review: Address Segmentation " Review: Address Segmentation " Review: Address Segmentation "

Virtual Memory: From Address Translation to Demand Paging

Lecture 21: Virtual Memory. Spring 2018 Jason Tang

This Unit: Main Memory. Virtual Memory. Virtual Memory. Other Uses of Virtual Memory

Computer Science 146. Computer Architecture

Memory Allocation. Copyright : University of Illinois CS 241 Staff 1

Memory Management. Kevin Webb Swarthmore College February 27, 2018

CS162 Operating Systems and Systems Programming Lecture 14. Caching (Finished), Demand Paging

Transcription:

Virtual Memory: Concepts 5 23 / 8 23: Introduction to Computer Systems 6 th Lecture, Mar. 2, 22 Instructors: Todd C. Mowry & Anthony Rowe

Today Address spaces VM as a tool lfor caching VM as a tool for memory management VMas a toolformemory protection Address translation 2

Recall: Byte Oriented Memory Organization Programs refer to data by address Conceptually, envision it as a very large array of bytes In reality, it s not, but can think of it that way An address is like an index into that array and, a pointer variable stores an address Note: system provides private address spaces to each process Think of a process as a program being executed So, a program can clobber its own data, but not that of others 3

Recall: Simple Addressing Modes Carnegie Mellon Normal (R) Mem[Reg[R]] Register R specifies memory address movl (%ecx),%eax Displacement D(R) Mem[Reg[R]+D] Register R specifies start of memory region Constant displacement D specifies offset movl 8(%ebp),%edx 4

Why Virtual Memory? There are three motivations for Virtual Memory (VM):. Allow main memory (DRAM) to act as a cache for disk 2. Simplifying memory management 3. Protecting address spaces But VM works very differently from SRAM caches. Why? To understand why, let s begin with the first motivation (Once we understand that, the other aspects of VM will make more sense.) 5

Motivation : DRAM a Cache for Disk Carnegie Mellon The full address space is quite large: 32 bit addresses: ~4,,, (4 billion) bytes 64 bit addresses: ~6,,,,,, (6 quintillion) bytes Disk storage is ~X cheaper than DRAM storage 2 TB of DRAM: ~ $, 2 TB of disk: ~ $ To access very large amounts of data in a cost effective manner, the bulk of the data must be stored on disk 8 MB: ~$ SRAM 6 GB: ~$ DRAM 2 TB: ~$ Disk 6

An Example Memory Hierarchy (Review) Carnegie Mellon L: Registers CPU registers hold words retrieved from L cache Smaller, faster, costlier per byte Larger, slower, cheaper per byte L4: L3: L2: L: L cache (SRAM) L2 cache (SRAM) Main memory (DRAM) Local secondary storage (local disks) L cache holds cache lines retrieved from L2 cache L2 cache holds cache lines retrieved from main memory Main memory holds disk blocks retrieved from local disks Local disks hold files retrieved from disks on remote network servers L5: Remote secondary storage (tapes, distributed file systems, Web servers) 7

DRAM vs. SRAM as a Cache DRAM vs. disk is more extreme than SRAM vs. DRAM access latencies: DRAM is ~X slower than SRAM disk is ~,X slower than DRAM importance of exploiting spatial locality: first byte is ~,X slower than successive bytes on disk vs. ~4X improvement for page mode vs. regular accesses to DRAM cache size: main memory is ~X larger than an SRAM cache addressing for disk is based on sector address, not memory address 8 MB: ~$ SRAM 6 GB: ~$ DRAM 2 TB: ~$ Disk 8

Impact of These Properties on Design If DRAM was to be organized similar to an SRAM cache, how would we set the following design parameters? Line size? Associativity? Replacement policy (if associative)? Write through or write back? What would the impact of these choices be on: miss rate hit time miss latency tag overhead 9

Locating an Object in a Cache. Search for matching tag Cache Tag Data SRAM cache Object Name : D 243 X = X? : X 7 N-: J 5 2. Use indirection to look up actual object location Virtual Memory Object Name X Lookup Table Location D: J: N- X: : : N-: Cache Data 243 7 5

Motivations for VM Revisited Physical Memory #: How does everything fit? (We just talked about this.) 32 bit addresses: ~4,,, (4 billion) bytes 64 bit addresses: ~6,,,,,,,,,,, (6 quintillion) bytes #2: How to decide which memory to use in your program? What about after a fork()? #3: What if another process stores data into your memory? How could you debug your program?

Indirection solves all three problems Each process gets its own private image of memory appears to be a full sized private memory range This fixes how to choose and others shouldn t mess w/yours in addition to making everything fit Implementation: translate addresses transparently add a mapping function to map private (i.e. virtual ) addresses to physical addresses do the mapping on every load or store This mapping trick is the heart of virtual memory 2

Address Spaces Linear address space: Ordered set of contiguous non negative integer addresses: {,, 2, 3 } Virtual address space: Set of N = 2 n virtual addresses {,, 2, 3,, N } Physical address space: Set of M = 2 m physical addresses {,, 2, 3,, M } Clean distinction i i between data (bytes) and their attributes (dd (addresses) Each datum can now have multiple addresses Every byte in main memory: one physical address, one (or more) virtual addresses 3

A System Using Physical Addressing CPU Physical address (PA) 4 Main memory : : 2: 3: 4: 5: 6: 7: 8:.... M : Data word Used in some simple systems, like embedded microcontrollers in cars, elevators, and digital picture frames 4

A System Using Virtual Addressing CPU Chip CPU Virtual address (VA) 4 : : 2: Physical address 3: MMU (PA) 4 4: 5: 6: 7: 8: Main memory... M : Data word Used in all modern servers, desktops, and laptops One of the great ideas in computer science 5

Why Virtual Memory? (Further Details) () VM allows efficient use of limited main memory (RAM) Use RAM as a cache for the parts of a virtual address space some non cached hdparts stored on disk some (unallocated) non cached parts stored nowhere Keep only active areas of virtual address space in memory transfer data back and forth as needed dd (2) VM simplifies memory management for programmers Each process gets a full, private linear address space (3) VM isolates address spaces One process can t interfere with another s memory because they operate in different address spaces User process cannot access privileged information different sections of address spaces have different permissions 6

Today Address spaces () VM as a tool lfor caching (2) VM as a tool for memory management (3) VM as a toolformemory protection Address translation 7

() VM as a Tool for Caching Virtual memory is an array of N contiguous bytes stored on disk. The contents of the array on disk are cached in physical memory (DRAM cache) These cache blocks are called pages (size is P = 2 p bytes) Virtual memory Physical memory VP VP Unallocated Cached Uncached Unallocated Empty Empty PP PP Cached VP 2 n p Uncached Cached Uncached N M Empty PP 2 m p Virtual pages (VPs) stored on disk Physical pages (PPs) cached in DRAM 8

Enabling data structure: Page Table A page table is an array of page table entries (PTEs) that maps virtual pages to physical pages. Per process kernel data structure in DRAM Valid PTE Physical page number or disk address null null Physical memory (DRAM) VP VP 2 VP 7 VP 4 Virtual memory (disk) PTE 7 VP Memory resident VP 2 page table VP 3 (DRAM) VP 4 VP 6 VP 7 PP PP 3 9

Page Hit Page hit: reference to VM word that is in physical memory (DRAM cache hit) Virtual address Valid PTE Physical page number or disk address null null Physical memory (DRAM) VP VP 2 VP 7 VP 4 Virtual memory (disk) PTE 7 VP Memory resident VP 2 page table VP 3 (DRAM) VP 4 VP 6 VP 7 PP PP 3 2

Page Fault Page fault: reference to VM word that is not in physical memory (DRAM cache miss) Virtual address Valid PTE Physical page number or disk address null null Physical memory (DRAM) VP VP 2 VP 7 VP 4 Virtual memory (disk) PTE 7 VP Memory resident VP 2 page table VP 3 (DRAM) VP 4 VP 6 VP 7 PP PP 3 2

Handling Page Fault Page miss causes page fault (an exception) Virtual address Valid PTE Physical page number or disk address null null Physical memory (DRAM) VP VP 2 VP 7 VP 4 Virtual memory (disk) PTE 7 VP Memory resident VP 2 page table VP 3 (DRAM) VP 4 VP 6 VP 7 PP PP 3 22

Handling Page Fault Page miss causes page fault (an exception) Page fault handler selects a victim to be evicted (here VP 4) Virtual address Valid PTE Physical page number or disk address null null Physical memory (DRAM) VP VP 2 VP 7 VP 4 Virtual memory (disk) PTE 7 VP Memory resident VP 2 page table VP 3 (DRAM) VP 4 VP 6 VP 7 PP PP 3 23

Handling Page Fault Page miss causes page fault (an exception) Page fault handler selects a victim to be evicted (here VP 4) Virtual address Valid PTE Physical page number or disk address null null Physical memory (DRAM) VP VP 2 VP 7 VP 3 Virtual memory (disk) PTE 7 VP Memory resident VP 2 page table VP 3 (DRAM) VP 4 VP 6 VP 7 PP PP 3 24

Handling Page Fault Page miss causes page fault (an exception) Page fault handler selects a victim to be evicted (here VP 4) Offending instruction is restarted: page hit! Virtual address Valid PTE Physical page number or disk address null null Physical memory (DRAM) VP VP 2 VP 7 VP 3 Virtual memory (disk) PTE 7 VP Memory resident VP 2 page table VP 3 (DRAM) VP 4 VP 6 VP 7 PP PP 3 25

Locality to the Rescue Again! Virtual memory works because of locality At any point in time, programs tend to access a set of active virtual pages called the working set Programs with better temporal locality will have smaller working sets If (working set size < main memory size) Good performance for one process after compulsory misses If ( SUM(working set sizes) > main memory size ) Thrashing: Performance meltdown where pages are moved (copied) in and out continuously 26

Today Address spaces () VM as a tool lfor caching (2) VM as a tool for memory management (3) VM as a toolformemory protection Address translation 27

(2) VM as a Tool for Memory Management Key idea: each process has its own virtual address space It can view memory as a simple linear array Mapping function scatters addresses through physical memory Well chosen mappings simplify memory allocation and management Virtual Address Space for Process : VP VP 2... Address translation PP 2 Physical Address Space (DRAM) N Virtual Address Space for Process 2: VP PP 6 PP 8 VP 2...... (e.g., read only library code) N M 28

Simplifying allocation and sharing Memory allocation Each virtual page can be mapped to any physical page A virtual page can be stored in different physical pages at different times Sharing code and data among processes Mapmultiple virtual pagestothesame the same physical page (here: PP 6) Virtual Address Space for Process : VP VP 2... Address translation PP 2 Physical Address Space (DRAM) N Virtual Address Space for Process 2: VP PP 6 PP 8 VP 2...... (e.g., read only library code) N M 29

Simplifying Linking and Loading Linking Each program has similar virtual address space Code, stack, and shared libraries always start at the same address Loading execve() allocates virtual pages for.text and.data sections = creates PTEs marked as invalid The.text and.data sections are copied, page by page, on demand by the virtual memory system xc x4 x848 Kernel virtual memory User stack (created at runtime) Memory mapped region for shared libraries Run time heap (created by malloc) ) Read/write segment (.data,.bss) Read only segment (.init,.text,.rodata) Unused Memory invisible to user code %esp (stack pointer) brk Loaded from the executable file 3

Today Address spaces () VM as a tool lfor caching (2) VM as a tool for memory management (3) VM as a toolformemory protection Address translation 3

VM as a Tool for Memory Protection Extend PTEs with permission bits Page fault handler checks these before remapping If violated, send process SIGSEGV (segmentation fault) Process i: VP : VP : VP 2: SUP No No Yes READ Yes Yes Yes WRITE No Yes Yes Address PP 6 PP 4 PP 2 Physical Address Space PP 2 PP 4 Process j: PP 6 SUP READ WRITE Address PP 8 VP : No Yes No PP 9 PP 9 VP : Yes Yes Yes PP 6 VP 2: No Yes Yes PP PP 32

Today Address spaces () VM as a tool lfor caching (2) VM as a tool for memory management (3) VM as a toolformemory protection Address translation 33

VM Address Translation Virtual Address Space V = {,,, N } Physical Address Space P = {,,, M } Address Translation MAP: V P U { } For virtual it address a: MAP(a) = a if data at virtual address a is at physical address a in P MAP(a) = if data at virtual address a is not in physical memory Either invalid or stored on disk 34

Summary of Address Translation Symbols Basic Parameters N = 2 n : Number of addresses in virtual address space M = 2 m : Number of addresses in physical address space P = 2 p : Page size (bytes) Components of the virtual address (VA) VPO: Virtual page offset VPN: Virtual page number TLBI: TLB index TLBT: TLB tag Components of the physical address (PA) PPO: Physical page offset (same as VPO) PPN: Physical page number CO: Byte offset within cache line CI: Cache index CT: Cache tag 35

Address Translation With a Page Table Virtual address Page table base register it (PTBR) n p p Virtual page number (VPN) Virtual page offset (VPO) Page table address for process Page table Valid Physical page number (PPN) Valid bit = : page not in memory (page fault) m p Physical page number (PPN) Physical address p Physical page offset (PPO) 36

Address Translation: Page Hit CPU Chip CPU VA MMU 2 PTEA PTE 3 PA Cache/ Memory 4 Data 5 ) Processor sends virtual address to MMU 2 3) MMU fetches PTE from page table in memory 4) MMU sends physical address to cache/memory 5) Cache/memory sends data word to processor 37

Address Translation: Page Fault Exception 4 Page fault handler CPU Chip CPU VA 7 MMU 2 PTEA PTE 3 Cache/ Memory Victim page 5 New page Disk 6 ) Processor sends virtual address to MMU 2 3) MMU fetches PTE from page table in memory 4) Valid bit is zero, so MMU triggers page fault exception 5) Handler identifies victim (and, if dirty, pg pages it out to disk) 6) Handler pages in new page and updates PTE in memory 7) Handler returns to original process, restarting faulting instruction 38

Views of virtual memory Programmer s view of virtual memory Each process has its own private linear address space Cannot be corrupted by other processes System view of virtual memory Uses memory efficiently by caching virtual memory pages Efficient i only because of localitylit Simplifies memory management and programming Simplifies protection by providing a convenient interpositioning point to check permissions 39

Integrating gvm and Cache PTE CPU Chip CPU VA MMU PTEA PA PTEA hit PTEA miss PA miss PTE PTEA PA Memory PA hit Data Data L cache VA: virtual address, PA: physical address, PTE: page table entry, PTEA = PTE address 4

Speeding up Translation with a TLB Page table entries (PTEs) are cached in L like any other memory word PTEs may be evicted by other data references PTE hit still requires a small L delay Solution: Translation Lookaside Buffer (TLB) Small hardware cache in MMU Maps virtual page numbers to physical page numbers Contains complete page table entries for small number of pages 4

TLB Hit CPU Chip TLB 2 PTE VPN 3 CPU VA MMU PA 4 Cache/ Memory Dt Data 5 A TLB hit eliminates a memory access 42

TLB Miss CPU Chip 2 TLB 4 PTE VPN CPU VA MMU 3 PTEA PA 5 Cache/ Memory Dt Data 6 A TLB miss incurs an additional memory access (the PTE) Fortunately, TLB misses are rare. Why? 43