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

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

Memory Management! Goals of this Lecture!

Storage Management 1

Princeton University. Computer Science 217: Introduction to Programming Systems. The Memory/Storage Hierarchy and Virtual Memory

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2014 Lecture 14

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

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

CS3350B Computer Architecture

Chapter 8. Virtual Memory

Lecture 15: Caches and Optimization Computer Architecture and Systems Programming ( )

Systems Programming and Computer Architecture ( ) Timothy Roscoe

Locality. CS429: Computer Organization and Architecture. Locality Example 2. Locality Example

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

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

+ Random-Access Memory (RAM)

Computer Systems. Virtual Memory. Han, Hwansoo

Processes and Virtual Memory Concepts

Operating Systems and Protection CS 217

Donn Morrison Department of Computer Science. TDT4255 Memory hierarchies

CPE300: Digital System Architecture and Design

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

CSE 153 Design of Operating Systems

Memory hierarchies: caches and their impact on the running time

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

CMPSC 311- Introduction to Systems Programming Module: Caching

CS 31: Intro to Systems Virtual Memory. Kevin Webb Swarthmore College November 15, 2018

Chapter 6 Caches. Computer System. Alpha Chip Photo. Topics. Memory Hierarchy Locality of Reference SRAM Caches Direct Mapped Associative

Memory Hierarchy. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

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

Computer Architecture and System Software Lecture 09: Memory Hierarchy. Instructor: Rob Bergen Applied Computer Science University of Winnipeg

CMPSC 311- Introduction to Systems Programming Module: Caching

CSE 431 Computer Architecture Fall Chapter 5A: Exploiting the Memory Hierarchy, Part 1

F28HS Hardware-Software Interface: Systems Programming

Problem: Processor- Memory Bo<leneck

Introduction to OpenMP. Lecture 10: Caches

Chapter 5B. Large and Fast: Exploiting Memory Hierarchy

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

Computer Systems C S Cynthia Lee Today s materials adapted from Kevin Webb at Swarthmore College

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

Virtual Memory: Concepts

ECE331: Hardware Organization and Design

virtual memory Page 1 CSE 361S Disk Disk

Caches and Memory Hierarchy: Review. UCSB CS240A, Winter 2016

CHAPTER 6 Memory. CMPS375 Class Notes Page 1/ 16 by Kuo-pao Yang

CS 61C: Great Ideas in Computer Architecture. The Memory Hierarchy, Fully Associative Caches

CS 61C: Great Ideas in Computer Architecture. Direct Mapped Caches

Reducing Hit Times. Critical Influence on cycle-time or CPI. small is always faster and can be put on chip

Lecture 19: Virtual Memory: Concepts

Chapter 6 Memory 11/3/2015. Chapter 6 Objectives. 6.2 Types of Memory. 6.1 Introduction

COEN-4730 Computer Architecture Lecture 3 Review of Caches and Virtual Memory

211: Computer Architecture Summer 2016

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

Memory. Objectives. Introduction. 6.2 Types of Memory

Course Administration

Chapter 5. Large and Fast: Exploiting Memory Hierarchy

Locality. Cache. Direct Mapped Cache. Direct Mapped Cache

CS 31: Intro to Systems Caching. Kevin Webb Swarthmore College March 24, 2015

Caches and Memory Hierarchy: Review. UCSB CS240A, Fall 2017

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

ECE468 Computer Organization and Architecture. Virtual Memory

EE 4683/5683: COMPUTER ARCHITECTURE

Assignment 1 due Mon (Feb 4pm

Handout 4 Memory Hierarchy

CS 240 Stage 3 Abstractions for Practical Systems

ECE4680 Computer Organization and Architecture. Virtual Memory

Chapter 5. Large and Fast: Exploiting Memory Hierarchy

Computer Science 432/563 Operating Systems The College of Saint Rose Spring Topic Notes: Memory Hierarchy

Chapter 5. Large and Fast: Exploiting Memory Hierarchy

Computer Organization and Structure. Bing-Yu Chen National Taiwan University

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 26, FALL 2012

CS 61C: Great Ideas in Computer Architecture (Machine Structures) Caches Part 1

LECTURE 11. Memory Hierarchy

The Memory Hierarchy 10/25/16

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

Memory Hierarchy, Fully Associative Caches. Instructor: Nick Riasanovsky

COSC 6385 Computer Architecture. - Memory Hierarchies (I)

CS161 Design and Architecture of Computer Systems. Cache $$$$$

Cray XE6 Performance Workshop

!! What is virtual memory and when is it useful? !! What is demand paging? !! When should pages in memory be replaced?

LECTURE 12. Virtual Memory

Memory Hierarchy. Slides contents from:

V. Primary & Secondary Memory!

Carnegie Mellon. Cache Lab. Recitation 7: Oct 11 th, 2016

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

CS3350B Computer Architecture

Page 1. Multilevel Memories (Improving performance using a little cash )

Algorithm Performance Factors. Memory Performance of Algorithms. Processor-Memory Performance Gap. Moore s Law. Program Model of Memory I

Most common example today: wireless (cell) phones

Computer Architecture. Memory Hierarchy. Lynn Choi Korea University

Memory Management. Kevin Webb Swarthmore College February 27, 2018

CHAPTER 6 Memory. CMPS375 Class Notes (Chap06) Page 1 / 20 Dr. Kuo-pao Yang

Memory Hierarchy: Motivation

CS 261 Fall Mike Lam, Professor. Virtual Memory

ECE232: Hardware Organization and Design

VIRTUAL MEMORY: CONCEPTS

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 26, SPRING 2013

NEXT SET OF SLIDES FROM DENNIS FREY S FALL 2011 CMSC313.

EITF20: Computer Architecture Part 5.1.1: Virtual Memory

Page 1. Memory Hierarchies (Part 2)

Modern Computer Architecture

Transcription:

Memory Management Goals of this Lecture Help you learn about: The memory hierarchy Spatial and temporal locality of reference Caching, at multiple levels Virtual memory and thereby How the hardware and OS give application pgms: The illusion of a large contiguous address space Protection against each other Virtual memory is one of the most important concepts in systems programming Motivation for Memory Hierarchy Faster storage technologies are more costly Cost more money per byte Have lower storage capacity Require more power and generate more heat The gap between processing and memory is widening Processors have been getting faster and faster Main memory speed is not improving as dramatically Well-written programs tend to exhibit good locality Across time: repeatedly referencing the same variables Across space: often accessing other variables located nearby Want the speed of fast storage at the cost and capacity of slow storage. Key idea: memory hierarchy!

Simple Three-Level Hierarchy Registers Usually reside directly on the processor chip Essentially no latency, referenced directly in instructions Low capacity (e.g., -5 bytes) Main memory Around times slower than a clock cycle Constant access time for any memory location Modest capacity (e.g., 5 MB-GB typical) Disk Around, times slower than main memory Faster when accessing many bytes in a row High capacity (e.g., -5 GB typical) Now starting to see solid-state disks Higher I/O rates, no mechanical limits Widening Processor/Memory Gap Gap in speed increasing from 986 to CPU speed improved ~55% per year Main memory speed improved only ~% per year Main memory as major performance bottleneck Many programs stall waiting for reads and writes to finish Changes in the memory hierarchy Increasing the number of registers 8 integer registers in the x86 vs. 8 in the Itanium Adding caches between registers and main memory On-chip level- cache and on/off-chip level- cache 5 An Example Memory Hierarchy Smaller, faster, and costlier (per byte) storage devices Larger, slower, and cheaper (per byte) storage devices L5: L: L: L: L: registers L: on-chip L cache (SRAM) on/off-chip L cache (SRAM) main memory (DRAM) local secondary storage (local disks) CPU registers hold words retrieved from L cache. remote secondary storage (tapes, distributed file systems, Web servers) L cache holds cache lines retrieved from the L cache memory. L 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.

Locality of Reference Two kinds of locality Temporal locality: recently referenced items are likely to be referenced in near future Spatial locality: Items with nearby addresses tend to be referenced close together in time. Locality example Program data Temporal: the variable sum sum = ; for (i = ; i < n; i++) sum += a[i]; return sum; Spatial: variable a[i+] accessed soon after a[i] Instructions Temporal: cycle through the for-loop repeatedly Spatial: reference instructions in sequence 7 Locality Makes Caching Effective Cache Smaller, faster storage device that acts as a staging area for a subset of the data in a larger, slower device Caching and the memory hierarchy Storage device at level k is a cache for level k+ Registers as cache of L/L cache and main memory Main memory as a cache for the disk Disk as a cache of files from remote storage Locality of access is the key Most accesses satisfied by first few (faster) levels Very few accesses go to the last few (slower) levels 8 Caching in a Memory Hierarchy Level k: 9 Smaller, faster, more expensive device at level k caches a subset of the blocks from level k+ Data copied between levels in block-sized transfer units Level k+: 5 6 7 8 9 Larger, slower, cheaper storage device at level k+ is partitioned into blocks. 5

Cache Block Sizes Fixed vs. variable size Fixed-sized blocks are easier to manage (common case) Variable-sized blocks make more efficient use of storage Block size Depends on access times at the level k+ device Larger block sizes further down in the hierarchy E.g., disk seek times are slow, so disk are larger Examples CPU registers: -byte words L/L cache: -byte blocks Main memory: KB Disk: entire files Cache Hit and Miss Cache hit Program accesses a block available in the cache Satisfy directly from cache E.g., request for Cache miss Program accesses a block not available in the cache Bring item into the cache E.g., request for Where to place the item? Which item to evict? Level k: Level k+: 8 9 5 6 7 8 9 5 Three Kinds of Cache Misses Cold (compulsory) miss Cold misses occur because the block hasnʼt been accessed before E.g., first time a segment of code is executed E.g., first time a particular array is referenced Capacity miss Set of active cache blocks (the working set ) is larger than cache E.g., manipulating a -byte array within a -byte cache Conflict miss Some caches limit the locations where a block can be stored E.g., block i must be placed in cache location (i mod ) Conflicts occur when multiple blocks map to the same location(s) E.g., referencing blocks, 8,, 8,, 8,... would miss every time

Cache Replacement Evicting a block from the cache New block must be brought into the cache Must choose a victim to evict Optimal eviction policy Evict a block that is never accessed again Evict the block accessed the furthest in the future Impossible to implement without knowledge of the future Using the past to predict the future Evict the least recently used (LRU) block Assuming it is not likely to be used again soon But, LRU is often expensive to implement Need to keep track of access times So, simpler approximations of LRU are used Who Manages the Cache? Registers Cache of L/L cache and main memory Managed explicitly by the compiler By determining which data are brought in and out of registers Using relatively sophisticated code-analysis techniques L/L cache Cache of main memory Managed by the hardware Using relatively simple mechanisms (e.g., i mod ) Main memory Cache of the disk Managed (in modern times) by the operating system Using relatively sophisticated mechanisms (e.g., LRU-like) Since reading from disk is extremely time consuming Manual Allocation: Segmentation In the olden days (aka before the mid 95s ) Programmers incorporated storage allocation in their programs whenever the total information exceeded main memory Segmentation Programmers would divide their programs into segments Which would overlay (i.e., replace) one another in main memory Advantages Programmers are intimately familiar with their code And can optimize the layout of information in main memory Disadvantages Immensely tedious and error-prone Compromises the portability of the code 5 5

Automatic Allocation: Virtual Memory Give programmer the illusion of a very large memory Large: GB of memory with -bit addresses Uniform: contiguous memory locations, from to - Independent of The actual size of the main memory The presence of any other processes sharing the computer Key idea #: separate address from physical location Virtual addresses: generated by the program Memory locations: determined by the hardware and OS Key idea #: caching Swap virtual between main memory and the disk One of the greatest ideas in computer systems! 6 Making Good Use of Memory and Disk Good use of the disk Read and write data in large to amortize the cost of seeking on the disk E.g., page size of KB Good use of main memory Even though the address space is large programs usually access only small portions at a time Keep the working set in main memory Demand paging: only bring in a page when needed Page replacement: selecting good page to swap out Goal: avoid thrashing Continually swapping between memory and disk 7 Virtual Address for a Process Virtual page number Number of the page in the virtual address space Extracted from the upper bits of the (virtual) address and then mapped to a physical page number Offset in a page Number of the byte within the page Extracted from the lower bits of the (virtual) address and then used as offset from start of physical page Example: KB -bit page number: virtual -bit offset: bytes to - 8 6

Virtual Memory for a Process virtual page number Translate virtual page number to physical page number offset in page physical page number offset in page -bit address Virtual Address Space Physical Address Space 9 Page Table to Manage the Cache Current location of each virtual page Physical page number, or Disk address (or null if unallocated) Example Page : at location xx on disk Page : at physical page Page : not yet allocated Page hit handled by hardware Compute the physical address Map virtual page # to physical page # Concatenate with offset in page Read or write from main memory Using the physical address Page miss triggers an exception virtual 7 physical Miss Triggers Page Fault Accessing page not in main memory V Physical or disk address xx yy null movl, %eax Virtual page # at location yy on disk! virtual 7 physical 7

OS Handles the Page Fault Bringing page in from disk If needed, swap out old page (e.g., #) Bring in the new page (page #) Update the page table entries V Physical or disk address xx yy null zz virtual 7 physical VM as a Tool for Memory Protection Memory protection Prevent process from unauthorized reading or writing of memory User process should not be able to Modify the read-only text section in its own address space Read or write operating-system code and data structures Read or write the private memory of other processes Hardware support Permission bits in page-table entries (e.g., read-only) Separate identifier for each process (i.e., process-id) Switching between unprivileged mode (for user processes) and privileged mode (for the operating system) Sharing Physical Memory Process Virtual Address Space Process Virtual Address Space Physical OS Address Space V.A.S. 8

Process-ID and Page Table Entries Page tables 6 5 Physical Memory Process ID address offset in page virtual page number 5 6 5 Page Tables in OS Memory... Process Virtual Address Space Process Virtual Address Space OS V.A.S. 6 5 Physical Address Space 6 Measuring the Memory Usage Virtual memory usage Physical memory usage ( resident set size ) CPU time used by this process so far % ps l F UID PID PPID PRI VSZ RSS STAT TIME COMMAND 5 76 76 7 76 SN : -csh 5 79 76 7 58 9 SN 5:5 emacs 5 8 76 86 8 RN : ps l Unix Windows 7 9

VM as a Tool for Memory Management Simplifying linking Same memory layout for each process E.g., text section always starts at x88 E.g., stack always grows down from xbfffffff Linker can be independent of physical location of code Simplifying sharing User processes can share some code and data E.g., single physical copy of stdio library code (like printf) Mapped in to the virtual address space of each process Simplifying memory allocation User processes can request additional memory from the heap E.g., using malloc() to allocate, and free() to deallocate OS allocates contiguous virtual and scatters them anywhere in physical memory 8 Summary Memory hierarchy Memory devices of different speed, size, and cost Registers, on-chip cache, off-chip cache, main memory, disk, tape Locality of memory accesses making caching effective Virtual memory Separate virtual address space for each process Provides caching, memory protection, and memory management Implemented via cooperation of the address-translation hardware and the OS (when page faults occur) In Dynamic Memory Management lectures: Dynamic memory allocation on the heap Management by user-space software (e.g., malloc() and free()) 9