Virtual Memory. Study Chapters Recap: Memory Hierarchy of a Modern Computer System

Similar documents
Virtual Memory. Study Chapters something I understand. Finally! A lecture on PAGE FAULTS! doing NAND gates. I wish we were still

Virtual Memory Fall /19/0. L21 Virtual Memory 1

Virtual Memory. Study Chapter Finally! A lecture on something I understand PAGE FAULTS! I wish we were still doing NAND gates

Modern Computer Architecture

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

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

COSC 6385 Computer Architecture. - Memory Hierarchies (I)

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

Memory Hierarchy Review

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

Virtual Memory. Stefanos Kaxiras. Credits: Some material and/or diagrams adapted from Hennessy & Patterson, Hill, online sources.

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

Handout 4 Memory Hierarchy

EE 4683/5683: COMPUTER ARCHITECTURE

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

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

Time. Who Cares About the Memory Hierarchy? Performance. Where Have We Been?

14:332:331. Week 13 Basics of Cache

Course Administration

CSF Cache Introduction. [Adapted from Computer Organization and Design, Patterson & Hennessy, 2005]

CSE 120 Principles of Operating Systems

CS3350B Computer Architecture

14:332:331. Week 13 Basics of Cache

ECE468 Computer Organization and Architecture. Virtual Memory

ECE4680 Computer Organization and Architecture. Virtual Memory

Memory Hierarchy. Mehran Rezaei

CS162 Operating Systems and Systems Programming Lecture 14. Caching and Demand Paging

CPS104 Computer Organization and Programming Lecture 16: Virtual Memory. Robert Wagner

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

CS152 Computer Architecture and Engineering Lecture 18: Virtual Memory

CS152 Computer Architecture and Engineering Lecture 17: Cache System

Page 1. CS162 Operating Systems and Systems Programming Lecture 14. Caching and Demand Paging

CPS 104 Computer Organization and Programming Lecture 20: Virtual Memory

CSE 120 Principles of Operating Systems Spring 2017

Virtual Memory: From Address Translation to Demand Paging

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

CSE 141 Computer Architecture Spring Lectures 17 Virtual Memory. Announcements Office Hour

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

CS 318 Principles of Operating Systems

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

Virtual Memory. Virtual Memory

CS152: Computer Architecture and Engineering Caches and Virtual Memory. October 31, 1997 Dave Patterson (http.cs.berkeley.

Time. Recap: Who Cares About the Memory Hierarchy? Performance. Processor-DRAM Memory Gap (latency)

EEC 170 Computer Architecture Fall Cache Introduction Review. Review: The Memory Hierarchy. The Memory Hierarchy: Why Does it Work?

CS162 Operating Systems and Systems Programming Lecture 13. Caches and TLBs. Page 1

Virtual Memory. Kevin Webb Swarthmore College March 8, 2018

Virtual Memory Nov 9, 2009"

virtual memory Page 1 CSE 361S Disk Disk

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

LECTURE 4: LARGE AND FAST: EXPLOITING MEMORY HIERARCHY

CS162 - Operating Systems and Systems Programming. Address Translation => Paging"

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

CSE 153 Design of Operating Systems

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

10/7/13! Anthony D. Joseph and John Canny CS162 UCB Fall 2013! " (0xE0)" " " " (0x70)" " (0x50)"

Chapter 5B. Large and Fast: Exploiting Memory Hierarchy

Address Translation. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

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

Processes and Virtual Memory Concepts

CS 152 Computer Architecture and Engineering. Lecture 8 - Address Translation

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

CS 152 Computer Architecture and Engineering. Lecture 9 - Address Translation

Virtual Memory Oct. 29, 2002

Virtual Memory. CS 3410 Computer System Organization & Programming

UCB CS61C : Machine Structures

CS 152 Computer Architecture and Engineering. Lecture 11 - Virtual Memory and Caches

Performance! (1/latency)! 1000! 100! 10! Capacity Access Time Cost. CPU Registers 100s Bytes <10s ns. Cache K Bytes ns 1-0.

Topics: Memory Management (SGG, Chapter 08) 8.1, 8.2, 8.3, 8.5, 8.6 CS 3733 Operating Systems

Virtual Memory, Address Translation

CS 152 Computer Architecture and Engineering. Lecture 9 - Address Translation

CS 153 Design of Operating Systems Winter 2016

Chapter 5. Large and Fast: Exploiting Memory Hierarchy

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

CS5460: Operating Systems Lecture 14: Memory Management (Chapter 8)

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

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

Chapter 5. Large and Fast: Exploiting Memory Hierarchy

Recall: Paging. Recall: Paging. Recall: Paging. CS162 Operating Systems and Systems Programming Lecture 13. Address Translation, Caching

CS 152 Computer Architecture and Engineering. Lecture 8 - Address Translation

Topic 18 (updated): Virtual Memory

CSE 502 Graduate Computer Architecture. Lec 6-7 Memory Hierarchy Review

Chapter 5 (Part II) Large and Fast: Exploiting Memory Hierarchy. Baback Izadi Division of Engineering Programs

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

Memory Hierarchy. Maurizio Palesi. Maurizio Palesi 1

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

John Wawrzynek & Nick Weaver

Memory Hierarchy Technology. The Big Picture: Where are We Now? The Five Classic Components of a Computer

Lecture 33 Caches III What to do on a write hit? Block Size Tradeoff (1/3) Benefits of Larger Block Size

Memory Hierarchy. Maurizio Palesi. Maurizio Palesi 1

Virtual Memory. Main memory is a CACHE for disk Advantages: illusion of having more physical memory program relocation protection.

UCB CS61C : Machine Structures

CISC 662 Graduate Computer Architecture Lecture 16 - Cache and virtual memory review


Virtual Memory, Address Translation

Page 1. Memory Hierarchies (Part 2)

Memory Technologies. Technology Trends

Computer Systems. Virtual Memory. Han, Hwansoo

ECE331: Hardware Organization and Design

LECTURE 10: Improving Memory Access: Direct and Spatial caches

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

Transcription:

Comp 120, Spring 2005 4/14 Lecture page 1 Virtual Memory I wish we were still doing NAND gates Finally! A lecture on something I understand PAGE FAULTS! Study Chapters 7.4-7.6 L21 Virtual Memory 1 Recap: Memory Hierarchy of a Modern Computer System By taking advantage of the principle of locality: Present the user with as much memory as is available in the cheapest technology. Provide access at the speed offered by the fastest technology. Processor Virtual Memory Datapath Control Registers On-Chip Cache Caching Second Level Cache (SRAM) Main Memory (DRAM) Secondary Storage (Disk) Tertiary Storage (Disk) Speed (ns): 1s 10s 100s Size (bytes): 100s Ks Ms 10,000,000s (10s ms) Gs 10,000,000,000s (10s sec) Ts DAP Fa97, U.CB L21 Virtual Memory 2

Comp 120, Spring 2005 4/14 Lecture page 2 You can never have too much memory! Now that we ve learned how to FAKE a FAST memory, we ll turn our attention to FAKING a large memory. L21 Virtual Memory 3 Top 10 Reasons for a BIG Address Space 10. Keeping Micron s memory division in business. 9. Unique addresses within every internet host. 8. Generates good Comp 120 Final problems. 7. Performing ADD via table lookup 6. Support for meaningless advertising hype 5. Emulation of a Turning Machine s tape. 4. Supporting lazy programmers. 3. Isolating ISA from IMPLEMENTATION details of HW configuration shouldn t enter into SW design 2. Usage UNCERTAINTY provides for run-time expansion of stack and heap 1. Programming CONVENIENCE create regions of memory with different semantics: read-only, shared, etc. avoid annoying bookkeeping L21 Virtual Memory 4

Comp 120, Spring 2005 4/14 Lecture page 3 Lessons from History There is only one mistake that can be made in computer design that is difficult to recover from not having enough address bits for memory addressing and memory management. Gordon Bell and Bill Strecker speaking about the PDP-11 in 1976 A partial list of successful machines that eventually starved to death for lack of address bits includes the PDP 8, PDP 10, PDP 11, Intel 8080, Intel 8086, Intel 80186, Intel 80286, Motorola 6800, AMI 6502, Zilog Z80, Cray-1, and Cray -MP. Hennessy & Patterson Why? Address size determines minimum width of anything that can hold an address: PC, registers, memory words, HW for address arithmetic (branches/jumps, loads/stores). When you run out of address space it s time for a new ISA! L21 Virtual Memory 5 Squandering Address Space Address Space STACK: How much to reserve? (consider RECURSION!) HEAP: N variable-size data records... Bound N? Bound Size? OBSERVATIONS: Can t BOUND each usage... without compromising use. Actual use is SPARSE Working set even MORE sparse CODE, large monolithic programs (eg, Office, Netscape)... only small portions might be used add-ins and plug-ins shared libraries/dlls L21 Virtual Memory 6

Comp 120, Spring 2005 4/14 Lecture page 4 Extending the Memory Hierarchy 3x-20x 10 4 x-10 5 x CPU FAST STATIC DYNAMIC RAM DISK "CACHE" "MAIN MEMORY" "Secondary Storage" So far, we ve used SMALL fast memory + BIG slow memory to fake a BIG FAST memory. Can we combine RAM and DISK to fake DISK sized at near RAM speeds? VIRTUAL MEMORY use use of of RAM RAM as as cache cache to to much much larger larger storage storage pool, pool, on on slower slower devices devices TRANSPARENCY TRANSPARENCY --VM VM locations locations "look" "look" the the same same to to program program whether whether on on DISK DISK or or in in RAM. RAM. ISOLATION ISOLATION of of RAM RAM size size from from software. software. L21 Virtual Memory 7 Virtual Memory trade-offs Memory: 40 cycles latency, then 1 word every 0.5 cycles (80/1) Harddisk: 10ms latency, 50MB/s BW 10M cycles latency, then 1 word every 80 cycles (125,000/1) Impact? Bad Bad Good Factor A Less Factor B More Good Factor A Less Factor B More L21 Virtual Memory 8

Comp 120, Spring 2005 4/14 Lecture page 5 Virtual Memory ILLUSION: Huge memory (2 32 bytes? 2 64 bytes?) Memory Management Unit ACTIVE USAGE: small fraction (2 24 bytes?) Actual HARDWARE: 2 26 (64M) bytes of RAM 2 35 (32G) bytes of DISK...... maybe more, maybe less! CPU VA MMU PA RAM ELEMENTS OF DECEIT: Partition memory into Pages (2K-4K-8K) MAP a few to RAM, others to DISK Keep HOT pages in RAM. VIRTUAL MEMORY PAGES PHYSICAL MEMORY PAGES L21 Virtual Memory 9 Simple Page Map Design Page Map Page Index Virtual Page # Physical Page # FUNCTION: Given Virtual Address, Map to PHYSICAL address OR Cause PAGE FAULT allowing page replacement Why use HIGH address bits to select page?... LOCALITY. Keeps related data on same page. Virtual Memory DR PPN Physical Memory Why use LOW address bits to select cache line?... LOCALITY. Keeps related data from competing for same cache lines. PAGEMAP L21 Virtual Memory 10

Comp 120, Spring 2005 4/14 Lecture page 6 Virtual Memory vs. Cache TAG A B DATA Mem[A] Mem[B] MAIN MEMORY CACHE: Relatively short blocks Few lines: scarce resource miss time: 3x-20x hit time =? VPAGE NO. OFFS PAGEMAP PHYSICAL MEMORY VIRTUAL MEMORY: Disk: long latency, fast xfer miss time: ~10 5 x hit time write-back essential! large pages in RAM Lots of lines: one for each page Tags in page map, data in physical memory L21 Virtual Memory 11 Virtual Memory: An EE s view Virtual Memory DR PPN 1 1 0 0 1 1 0 Physical Memory PAGEMAP Pagemap Characteristics: One entry per virtual page! RESIDENT bit = 1 for pages stored in RAM, or 0 for non-resident (disk or unallocated). Page fault when R = 0. Contains PHYSICAL page number (PPN) of each resident page DIRTY bit says we ve changed this page since loading it from disk (and therefore need to write it to disk when it s replaced) More bits possible to determine access, e.g. read-only L21 Virtual Memory 12

Comp 120, Spring 2005 4/14 Lecture page 7 Virtual Memory: A CS s view Problem: Translate VIRTUAL ADDRESS to PHYSICAL ADDRESS Virtual Page # int VtoP(int VPageNo,int PO) { if (R[VPageNo] == 0) PageFault(VPageNo); return (PPN[VPageNo] << p) PO; } /* Handle a missing page... */ void PageFault(int VPageNo) { int i; i = SelectLRUPage(); if (D[i] == 1) WritePage(DiskAdr[i],PPN[i]); R[i] = 0; Physical Page # PPN[VPageNo] = PPN[i]; ReadPage(DiskAdr[VPageNo],PPN[i]); R[VPageNo] = 1; D[VPageNo] = 0; } L21 Virtual Memory 13 The HW/SW Balance IDEA: devote HARDWARE to high-traffic, performance-critical path use (slow, cheap) SOFTWARE to handle exceptional cases hardware int VtoP(int VPageNo,int PO) { if (R[VPageNo] == 0)PageFault(VPageNo); return (PPN[VPageNo] << p) PO; } software /* Handle a missing page... */ void PageFault(int VPageNo) { int i = SelectLRUPage(); if (D[i] == 1) WritePage(DiskAdr[i],PPN[i]); R[i] = 0; PA[VPageNo] = PPN[i]; ReadPage(DiskAdr[VPageNo],PPN[i]); R[VPageNo] = 1; D[VPageNo] = 0; } HARDWARE performs address translation, detects page faults: running program interrupted ( suspended ); PageFault( ) is forced; On return from PageFault; running program continues L21 Virtual Memory 14

Comp 120, Spring 2005 4/14 Lecture page 8 Page Map Arithmetic p VPageNo m PPageNo v PO PO D R PPN 1 1 1 0 1 PAGEMAP PHYSICAL MEMORY (v + p) bits in virtual address (m + p) bits in physical address 2 v number of VIRTUAL pages 2 m number of PHYSICAL pages 2 p bytes per physical page 2 v+p bytes in virtual memory 2 m+p bytes in physical memory (m+2)2 v bits in the page map Typical page size: 1K 8K bytes Typical (v+p): 32 (or more) bits Typical (m+p): 26 30 bits (64 1024 MB) L21 Virtual Memory 15 Example: Page Map Arithmetic Virtual Page # SUPPOSE... 32-bit Virtual address 2 13 page size (8 KB) 2 26 RAM (64 MB) Physical Page # THEN: # Physical Pages = 2 (26-13) = 2 13 = 8192 # Virtual Pages = 2 (32-13) = 2 19 # Page Map Entries = 524,288 Use SRAM for page map??? OUCH! L21 Virtual Memory 16

Comp 120, Spring 2005 4/14 Lecture page 9 RAM-Resident Page Maps SMALL page maps can use dedicated RAM but, gets expensive for big ones! SOLUTION: Move page map into MAIN MEMORY: Virtual Address Physical Memory virtual page number physical page number PROBLEM: Each Each memory memory reference now now takes takes 2 accesses to to physical memory! Physical memory pages that hold page map entries L21 Virtual Memory 17 Translation Look-aside Buffer (TLB) PROBLEM: 2x performance hit each memory reference now takes 2 accesses! SOLUTION: CACHE the page map entries Virtual Address First, look in TLB On miss, do translation and store result On hit, skip translation virtual page number Physical Memory TLB: small, usually fully-associative cache for mapping VPN PPN physical page number IDEA: IDEA: LOCALITY in in memory memory reference patterns SUPER SUPER locality locality in in references to to page page map map VARIATIONS: sparse sparse page page map map storage storage paging paging the the page page map map (next (next slides) slides) L21 Virtual Memory 18

Comp 120, Spring 2005 4/14 Lecture page 10 Optimizing Sparse Page Maps Virtual Address Physical Memory virtual page number TLB physical page number On TLB miss: look up VPN in sparse data structure (e.g., a list of VPN-PPN pairs) use hash coding to speed search only have entries for ALLOCATED pages Should we we do do allocate new entries on demand this this in in HW HW or or time penalty? LOW if TLB hit rate is high SW? SW? L21 Virtual Memory 19 Multilevel Page Maps Given a HUGE virtual memory, the cost of storing all of the page map entries in RAM may STILL be too expensive SOLUTION: A hierarchical page map take advantage of the observation that while the virtual memory address space is large, it is generally sparsely populated with clusters of pages. Consider a machine with a 32-bit virtual address space and 64 MB (26-bit) of physical memory that uses 4 KB pages. Assuming 4 byte page-table entries, a single-level page map requires 4MB ( >6% of the available memory). Of these, more than 98% will reference nonresident pages (Why?). A 2-level look-up increases the size of the worse-case page table slightly. However, if a first level entry is non-resident bit it saves large amounts of memory. PTBL 32-bit virtual address 10 10 12 Usually, an on-chip register Level 1 Level 2 A clever designer will notice that if the 2 nd level tables are pagesized they can be paged out (stored on Data disk) Doesn t that mean we now have to do 3 accesses to get what we want? L21 Virtual Memory 20

Comp 120, Spring 2005 4/14 Lecture page 11 Example: Mapping VAs to PAs Suppose virtual memory of 2 32 (4G) bytes physical memory of 2 30 (1G) bytes page size is 2 14 (16 K) bytes VPN R D PPN ----+-------- 0 0 0 2 1 1 1 7 2 1 0 0 3 1 0 5 4 0 0 5 5 1 0 3 6 1 1 2 7 1 0 4 8 1 0 1 1. How many pages can be stored in physical memory at once? 2 30-14 = 2 16 = 64K 2. How many entries are there in the page table? 2 32-14 = 2 18 = 256K 3. How many bits are necessary per entry in the page table? (Assume each entry has PPN, resident bit, dirty bit) 16 (PPN) + 2 = 18 4. How many pages does the page table require? 2 18 /(2 14-2 ) = 2 6 = 64 5. A portion of the page table is given to the left. What is the physical address for virtual address 0x0000c120?...010100000100110000 0x00014120 L21 Virtual Memory 21 Contexts A context is a complete set of mappings from VIRTUAL to PHYSICAL locations, as dictated by the full contents of the page map: We might like to support multiple VIRTUAL to PHYSICAL Mappings and, thus, multiple Contexts. Virtual Memory DR PAGEMAP Physical Memory Several programs may be simultaneously loaded into main memory, each in its separate context: Can we still Virtual Physical Virtual share? Memory 1 Memory Memory 2 Context Switch : Reload the page map! map map L21 Virtual Memory 22

Comp 120, Spring 2005 4/14 Lecture page 12 Contexts: A Sneak Preview Virtual Memory 1 Physical Memory Virtual Memory 2 Every application can be written as if it has access to all of memory, without considering where other applications reside. First Glimpse at a VIRTUAL MACHINE 1. TIMESHARING among several programs -- Separate context for each program OS loads appropriate context into pagemap when switching among pgms 2. Separate context for OS Kernel (eg, interrupt handlers)... Kernel vs User contexts Switch to Kernel context on interrupt; Switch back on interrupt return. HARDWARE SUPPORT: 2 HW pagemaps L21 Virtual Memory 23 Huge 64-bit address space (only 44-bits implemented) 2 64 Example: UltraSPARC II MMU 2 43 Virtual Address C# 51 13 C# C# C# 2 43 C# = context 48 16 45 19 42 22 64 (44 used) 4 page sizes: 8KB, 64KB, 512KB, 4MB ITLB DTLB 64 64 TSB (direct-mapped) Physical Address 41 (2200 GB) TLB miss: SW refills TLB from TSB cache (HW helps compute address) TSB Translation Storage Buffer L21 Virtual Memory 24

Comp 120, Spring 2005 4/14 Lecture page 13 Using Caches with Virtual Memory CPU Virtual Cache Tags Tags match match virtual virtual addresses CACHE MMU DYNAMIC RAM CPU Physical Cache Tags Tags match match physical addresses These TAGs are physical, they hold addresses after translation. MMU CACHE DYNAMIC RAM These TAGs are virtual, they represent addresses before translation. Problem: cache invalid after context switch FAST: No MMU time on HIT DISK DISK Avoids stale cache data after context switch SLOW: MMU time on HIT Counter intuitively perhaps, physically addressed Caches are the trend, because they better support parallel processing L21 Virtual Memory 25 Reducing Translation Time Machines with TLBs go one step further to reduce # cycles/cache access They overlap the cache access with the TLB access Works because high order bits of the VA are used to look in the TLB, while low order bits are used as index into cache MMU DISK CPU DYNAMIC RAM CACHE DAP Fa97, U.CB L21 Virtual Memory 26

Comp 120, Spring 2005 4/14 Lecture page 14 Overlapped Cache & TLB Access 32 TLB assoc lookup index Cache 1 K 10 2 00 4 bytes PA Hit/ Miss 20 12 page # disp PA Data Hit/ Miss IF cache hit AND (cache tag = PA) then deliver data to CPU ELSE IF [cache miss OR (cache tag = PA)] and TLB hit THEN access memory with the PA from the TLB ELSE do standard VA translation = DAP Fa97, U.CB L21 Virtual Memory 27 Problems With Overlapped TLB Access Overlapped access only works as long as the address bits used to index into the cache do not change as the result of VA translation This usually limits things to small caches, large page sizes, or high n-way set associative caches if you want a large cache Example: suppose everything the same except that the cache is increased to 8 K bytes instead of 4 K: 11 2 cache index 00 This bit is changed by VA translation, but 20 12 is needed for cache virt page # disp lookup Solutions: go to 8K byte page sizes; go to 2 way set associative cache; or SW guarantee VA[13]=PA[13] 10 4 4 1K 2 way set assoc cache DAP Fa97, U.CB L21 Virtual Memory 28

Comp 120, Spring 2005 4/14 Lecture page 15 Memory hierarchy summary (1/4) The Principle of Locality: Program likely to access a relatively small portion of the address space at any instant of time. Temporal Locality: Locality in Time Spatial Locality: Locality in Space Three Major Categories of Cache Misses: Compulsory Misses: sad facts of life. Example: cold start. Conflict Misses: increase cache size and/or associativity. Nightmare Scenario: ping pong effect! Capacity Misses: increase cache size Cache Design Space total size, block size, associativity replacement policy write-hit policy (write-through, write-back) write-miss policy DAP Fa97, U.CB L21 Virtual Memory 29 Memory hierarchy summary (2/4) Several interacting dimensions cache size block size associativity replacement policy write-through vs write-back write allocation The optimal choice is a compromise depends on access characteristics workload use (I-cache, D-cache, TLB) depends on technology / cost Simplicity often wins Bad Good Cache Size Associativity Block Size Factor A Factor B Less More DAP Fa97, U.CB L21 Virtual Memory 30

Comp 120, Spring 2005 4/14 Lecture page 16 Memory hierarchy summary (3/4) Caches, TLBs, Virtual Memory all understood by examining how they deal with 4 questions: 1. Where can block be placed? 2. How is block found? 3. What block is replaced on miss? 4. How are writes handled? Page tables map virtual address to physical address TLBs are important for fast translation TLB misses are significant in processor performance: (funny times, as most systems can t access all of 2nd level cache without TLB misses!) DAP Fa97, U.CB L21 Virtual Memory 31 Memory hierarchy summary (4/4) Virtual memory was controversial at the time: can SW automatically manage 64KB across many programs? 1000 DRAM growth removed the controversy Today VM allows many processes to share single memory without having to swap all processes to disk; VM protection is more important than memory hierarchy Today CPU time is a function of (ops, cache misses) vs. just f(ops): What does this mean to Compilers, Data structures, Algorithms? DAP Fa97, U.CB L21 Virtual Memory 32