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

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

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

CS162 Operating Systems and Systems Programming Lecture 13. Address Translation (con t) Caches and TLBs

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

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

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

CS162 Operating Systems and Systems Programming Lecture 12. Protection (continued) Address Translation

CS162 Operating Systems and Systems Programming Lecture 12. Protection (continued) Address Translation

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

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

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

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

Operating Systems (1DT020 & 1TT802) Lecture 9 Memory Management : Demand paging & page replacement. Léon Mugwaneza

CS162 Operating Systems and Systems Programming Lecture 12. Address Translation. Page 1

COSC 6385 Computer Architecture. - Memory Hierarchies (I)

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

Memory Hierarchy Review

Modern Computer Architecture

Midterm 1. Administrivia. Virtualizing Resources. CS162 Operating Systems and Systems Programming Lecture 12. Address Translation

Page 1. Goals for Today" Virtualizing Resources" Important Aspects of Memory Multiplexing" CS162 Operating Systems and Systems Programming Lecture 20

14:332:331. Week 13 Basics of Cache

14:332:331. Week 13 Basics of Cache

Memory Hierarchy. Maurizio Palesi. Maurizio Palesi 1

Memory Hierarchy. Maurizio Palesi. Maurizio Palesi 1

CS162 Operating Systems and Systems Programming Lecture 11. Protection: Address Spaces. Page 1. Review

Page 1. Goals for Today" TLB organization" CS162 Operating Systems and Systems Programming Lecture 11. Page Allocation and Replacement"

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

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

EE 4683/5683: COMPUTER ARCHITECTURE

CS162 Operating Systems and Systems Programming Lecture 11 Page Allocation and Replacement"

Course Administration

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 13: Address Translation

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

Chapter 5. Large and Fast: Exploiting Memory Hierarchy

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

Chapter 5. Large and Fast: Exploiting Memory Hierarchy

Handout 4 Memory Hierarchy

EECS151/251A Spring 2018 Digital Design and Integrated Circuits. Instructors: John Wawrzynek and Nick Weaver. Lecture 19: Caches EE141

CS 318 Principles of Operating Systems

ECE468 Computer Organization and Architecture. Memory Hierarchy

Page 1. Goals for Today" Important Aspects of Memory Multiplexing" Virtualizing Resources" CS162 Operating Systems and Systems Programming Lecture 9

Address spaces and memory management

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

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

Introduction to Operating Systems

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

CPE 631 Lecture 04: CPU Caches

CS152 Computer Architecture and Engineering Lecture 17: Cache System

Memory Hierarchy. Goal: Fast, unlimited storage at a reasonable cost per bit.

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

Chapter 8. Virtual Memory

CS 153 Design of Operating Systems Winter 2016

LECTURE 11. Memory Hierarchy

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 23

Lecture 13: Address Translation

CSE 120 Principles of Operating Systems Spring 2017

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

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

Memory Hierarchy, Fully Associative Caches. Instructor: Nick Riasanovsky

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

CSC Memory System. A. A Hierarchy and Driving Forces

CS61C : Machine Structures

Page 1. CS194-3/CS16x Introduction to Systems. Lecture 10. Protection: Address Spaces. Goals for Today

Textbook: Burdea and Coiffet, Virtual Reality Technology, 2 nd Edition, Wiley, Textbook web site:

Computer Systems Architecture I. CSE 560M Lecture 18 Guest Lecturer: Shakir James

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2015 Lecture 23

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

Memory hierarchy review. ECE 154B Dmitri Strukov

Virtual Memory. Lecture for CPSC 5155 Edward Bosworth, Ph.D. Computer Science Department Columbus State University

Transistor: Digital Building Blocks

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

Lecture 17 Introduction to Memory Hierarchies" Why it s important " Fundamental lesson(s)" Suggested reading:" (HP Chapter

Lecture 4: Memory Management & The Programming Interface

CSE 120 Principles of Operating Systems

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

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

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

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

CS61C Review of Cache/VM/TLB. Lecture 26. April 30, 1999 Dave Patterson (http.cs.berkeley.edu/~patterson)

Chapter 5. Large and Fast: Exploiting Memory Hierarchy

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

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

CSE 153 Design of Operating Systems

CS3350B Computer Architecture

CS61C : Machine Structures

Chapter 5B. Large and Fast: Exploiting Memory Hierarchy

Virtual Memory. CS 3410 Computer System Organization & Programming

Memory Hierarchy Requirements. Three Advantages of Virtual Memory

Let!s go back to a course goal... Let!s go back to a course goal... Question? Lecture 22 Introduction to Memory Hierarchies

Processes and Virtual Memory Concepts

COSC 6385 Computer Architecture - Memory Hierarchies (I)

The Memory Hierarchy & Cache Review of Memory Hierarchy & Cache Basics (from 350):

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

Chapter Seven. Memories: Review. Exploiting Memory Hierarchy CACHE MEMORY AND VIRTUAL MEMORY

COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface

CS152 Computer Architecture and Engineering Lecture 18: Virtual Memory

CMPT 300 Introduction to Operating Systems

Multi-level Translation. CS 537 Lecture 9 Paging. Example two-level page table. Multi-level Translation Analysis

CS 333 Introduction to Operating Systems. Class 11 Virtual Memory (1) Jonathan Walpole Computer Science Portland State University

Virtual or Logical. Logical Addr. MMU (Memory Mgt. Unit) Physical. Addr. 1. (50 ns access)

Transcription:

CS162 Operating Systems and Systems Programming Lecture 13 Address Translation, Caching March 7 th, 218 Profs. Anthony D. Joseph & Jonathan Ragan-Kelley http//cs162.eecs.berkeley.edu Recall Paging Page Table memory view 11111 1111 1111 1111 1111 111 1111 1111 null 111 null 1111 null 111 null 11 111 null 11 null 1111 null 111 null 111 null 11 null 1 111 null 11 1 11 1111 1 111 1111 null 111 null 111 null 11 null 1 111 111 11 11 11 111 1 11 111 null 11 null 11 null 1 null page # offset 11 11 1 1 3/7/19 1 11 CS162 UCB Fall 218 1 111 1111 memory view 111 11 1 Lec 13.2 Recall Paging Recall Paging Page Table memory view 11111 1111 1111 1111 1111 111 1111 null 111 null 1111 null 111 null 111 null 11 11 null What happens if 1111 null grows to 111 null 111 null? 11 null 1 111 null 11 1 11 1111 1 111 1111 null 111 null 111 null 11 null 1 111 111 11 11 11 111 1 11 111 null 11 null 11 null 1 null page # offset 11 11 1 1 3/7/19 1 11 CS162 UCB Fall 218 1 memory view 111 11 1 Lec 13.3 Page Table memory view 11111 1111 1111 1111 1111 111 1111 1111 111 111 1111 null 111 null 11 111 null 11 null 1111 null 111 null 111 null 11 null 1 111 null 11 1 11 1111 1 111 1111 null 111 null 111 null 11 null 1 111 111 11 11 11 111 1 11 111 null 11 null 11 null 1 null page # offset 11 11 1 1 3/7/19 1 11 CS162 UCB Fall 218 1 memory view Allocate new pages where room! 111 11 1 Lec 13.4

Page Table Discussion What needs to be switched on a context switch? Page table pointer and limit Analysis Pros» Simple memory allocation» Easy to share Con What if address space is sparse?» E.g., on UNIX, starts at, starts at (2 31-1)» With 1K pages, need 2 million page table entries! Con What if table really big?» Not all pages used all the time Þ would be nice to have working set of page table in memory How about multi-level paging or combining paging and segmentation? Lec 13.5 Fix for sparse address space The two-level page table Address PageTablePtr 1 bits 1 bits 12 bits P1 index P2 index 4 bytes Tree of Page Tables Tables fixed size (124 entries) On context-switch save single PageTablePtr register Valid bits on Page Table Entries Don t need every 2 nd -level table Even when exist, 2 nd -level tables can reside on disk if not in use Address 4 bytes 4KB Lec 13.6 memory view 1111 1111 1111 11 1 1 Summary Two-Level Paging Page Table (level 1) 111 11 null 11 null 1 11 null 1 1 null Page Tables (level 2) 11 1111 1 111 1 1111 111 11 null 1 1 1 1111 111 11 111 1 11 1 111 11 memory view 111 11 11 (x9) memory view Summary Two-Level Paging Page Table (level 1) 111 11 null 11 null 1 11 null 1 1 null Page Tables (level 2) 11 1111 1 111 1 1111 111 11 null 1 1 1 1111 111 11 111 1 11 1 111 11 memory view 1 (x8) page2 # 11 11 1 1 1 11 1 1 11 11 1 1 1 11 1 1 page1 # offset Lec 13.7 Lec 13.8

Multi-level Translation Segments + Pages What about a tree of tables? Lowest level page table Þ memory still allocated with bitmap Higher levels often segmented Could have any number of levels. Example (top segment) Address Seg # Base Limit V Base1 Limit1 V Base2 Limit2 V Base3 Limit3 N Base4 Limit4 V Base5 Limit5 N Base6 Limit6 N Base7 Limit7 V > page # page #1 page #2 page #3 page #4 page #5 Access Error What must be saved/restored on context switch? Contents of top-level segment registers (for this example) Pointer to top-level table (page table) N Address Check Permissions Access Error Lec 13.9 What about Sharing (Complete Segment)? Process A Process B Seg # Base Limit V Base1 Limit1 V Base2 Limit2 V Base3 Limit3 N Base4 Limit4 V Base5 Limit5 N Base6 Limit6 N Base7 Limit7 V Seg # Base Limit V Base1 Limit1 V Base2 Limit2 V Base3 Limit3 N Base4 Limit4 V Base5 Limit5 N Base6 Limit6 N Base7 Limit7 V page # page #1 page #2 page #3 page #4 page #5 N Shared Segment Lec 13.1 Multi-level Translation Analysis Pros Only need to allocate as many page table entries as we need for application» In other words, sparse address spaces are easy Easy memory allocation Easy Sharing» Share at segment or page level (need additional reference counting) Cons One pointer per page (typically 4K 16K pages today) Page tables need to be contiguous» However, previous example keeps tables to exactly one page in size Two (or more, if >2 levels) lookups per reference» Seems very expensive! Lec 13.11 What is in a Page Table Entry What is in a Page Table Entry (or PTE)? Pointer to next-level page table or to actual page Permission bits valid, read-only, read-write, write-only Example Intel x86 architecture PTE Address same format previous slide (1, 1, 12-bit offset) Intermediate page tables called Directories Page Frame Number ( Page Number) Free (OS) 31-12 11-9 8 7 6 5 4 3 P Present (same as valid bit in other architectures) W Writeable U User accessible PWT Page write transparent external cache write-through PCD Page cache disabled (page cannot be cached) A Accessed page has been accessed recently D Dirty (PTE only) page has been modified recently L L=1Þ 4MB page (directory only). Bottom 22 bits of virtual address serve as offset L D A PWT PCD U W P 2 1 Lec 13.12

How is the Translation Accomplished? CPU Addresses MMU What, exactly happens inside MMU? One possibility Hardware Tree Traversal For each virtual address traverses the page table in hardware Generates a Page Fault if it encounters invalid PTE» Fault handler will decide what to do» More on this next lecture Pros Relatively fast (but still many memory accesses!) Cons Inflexible, Complex hardware Another possibility Software Each traversal done in software Pros Very flexible Cons Every translation must invoke Fault! In fact, need way to cache translations for either case! Addresses Lec 13.13 Recall Dual-Mode Operation (1/2) Can a process modify its own translation tables? NO! If it could, could get access to all of physical memory Has to be restricted somehow To Assist with Protection, hardware provides at least two modes (Dual-Mode Operation) Kernel mode (or supervisor or protected ) User mode (Normal program mode) Mode set with bits in special control register only accessible in kernel-mode Lec 13.14 Recall Dual-Mode Operation (2/2) Intel processor actually has four rings of protection PL (Privilege Level) from 3» PL has full access, PL3 has least Privilege Level set in segment descriptor (CS) Mirrored IOPL bits in condition register gives permission to programs to use the I/O instructions Typical OS kernels on Intel processors only use PL ( kernel ) and PL3 ( user ) Lec 13.15 How to get from Kernel User What does the kernel do to create a new user process? Allocate and initialize address-space control block Read program off disk and store in memory Allocate and initialize translation table» Point at in memory so program can execute» Possibly point at statically initialized Run Program» Set machine registers» Set hardware pointer to translation table» Set processor status word for user mode» Jump to start of program How does kernel switch between processes? Same saving/restoring of registers as before Save/restore PSL (hardware pointer to translation table) Lec 13.16

Recall User Kernel (System Call) Can t let inmate (user) get out of padded cell on own Would defeat purpose of protection! So, how does the user program get back into kernel? Recall System Call Continued (1/2) What are some system calls? I/O open, close, read, write, lseek Files delete, mkdir, rmdir, truncate, chown, chgrp,.. Process fork, exit, wait (like join) Network socket create, set options System call Voluntary procedure call into kernel Hardware for controlled User Kernel transition Can any kernel routine be called?» No! Only specific ones. System call ID end into system call instruction» Index forces well-defined interface with kernel Lec 13.17 Are system calls constant across operating systems? Not entirely, but there are lots of commonalities Also some standardization attempts (POSIX) Lec 13.18 Recall System Call Continued (2/2) What happens at beginning of system call?» On entry to kernel, sets system to kernel mode» Handler address fetched from table/handler started System call argument passing In registers (not very much can be passed) Write into user memory, kernel copies into kernel mem» User addresses must be translated!» Kernel has different view of memory than user Every argument must be explicitly checked! Recall User Kernel (Exceptions Traps & Interrupts) A system call instruction causes a synchronous exception (or trap ) In fact, often called a software trap instruction Other sources of Synchronous Exceptions ( Trap ) Divide by zero, Illegal instruction, Bus error (bad address, e.g. unaligned access) Segmentation Fault (address out of range) Page Fault (for illusion of infinite-sized memory) Interrupts are Asynchronous Exceptions Examples timer, disk ready, network, etc. Interrupts can be disabled, traps cannot! Lec 13.19 Lec 13.2

Recall User Kernel (Exceptions Traps & Interrupts) On system call, exception, or interrupt Hardware enters kernel mode with interrupts disabled Saves PC, then jumps to appropriate handler in kernel For some processors (x86), processor also saves registers, changes, etc. Actual handler typically saves registers, other CPU state, and switches to kernel Closing thought Protection without Hardware (1/2) Does protection require hardware support for translation and dual-mode behavior? No Normally use hardware, but anything you can do in hardware can also do in software (possibly expensive) Protection via Strong Typing Restrict programming language so that you can t express program that would trash another program Loader needs to make sure that program produced by valid compiler or all bets are off Example languages LISP, Ada, Modula-3 and Java Lec 13.21 Lec 13.22 Closing thought Protection without Hardware (2/2) Protection via software fault isolation Language independent approach have compiler generate object that provably can t step out of bounds» Compiler puts in checks for every dangerous operation (loads, stores, etc). Again, need special loader.» Alternative, compiler generates proof that cannot do certain things (Proof Carrying Code) Or use virtual machine to guarantee safe behavior (loads and stores recompiled on fly to check bounds) Administrivia jrk out next week (no office hours) Anthony (hopefully!) returning Likely guest lecturer(s) Lec 13.23 Lec 13.24

Caching Concept BREAK Lec 13.25 Cache a repository for copies that can be accessed more quickly than the original Make frequent case fast and infrequent case less dominant Caching underlies many techniques used today to make computers fast Can cache memory locations, address translations, pages, file blocks, file names, network routes, etc Only good if Frequent case frequent enough and Infrequent case not too expensive Important measure Average Access time = (Hit Rate x Hit Time) + (Miss Rate x Miss Time) Lec 13.26 Performance 1 1 1 1 Why Bother with Caching? Processor-DRAM Memory Gap (latency) Moore s Law (really Joy s Law) Less Law? µproc CPU 6%/yr. (2X/1.5yr) Processor-Memory Performance Gap (grows 5% / year) DRAM 198 1981 1982 1983 1984 1985 1986 1987 1988 1989 199 1991 1992 1993 1994 1995 1996 1997 1998 1999 2 Time DRAM 9%/yr. (2X/1 yrs) Lec 13.27 Address Another Major Reason to Deal with Caching Seg # Base Base1 Limit Limit1 V V page # page #1 page #2 Base2 Limit2 V page #3 Base3 Limit3 N page #4 Base4 Limit4 V page #5 Base5 Limit5 N Base6 Limit6 N Base7 Limit7 V Access > Error Cannot afford to translate on every access At least three DRAM accesses per actual DRAM access Or perhaps I/O if page table partially on disk! Even worse What if we are using caching to make memory access faster than DRAM access? Solution? Cache translations! Translation Cache TLB ( Translation Lookaside Buffer ) N Address Check Perm Access Error Lec 13.28

Why Does Caching Help? Locality! Probability of reference Memory Hierarchy of a Modern Computer System Take advantage of the principle of locality to Present as much memory as in the cest technology Provide access at speed offered by the fastest technology 2 Address Space n - 1 Temporal Locality (Locality in Time) Keep recently accessed items closer to processor Spatial Locality (Locality in Space) Move contiguous blocks to the upper levels To Processor From Processor Upper Level Memory Blk X Lower Level Memory Blk Y Datapath Processor Control Registers On-Chip Cache Second Level Cache (SRAM) Main Memory (DRAM) Speed (ns) 1s 1s-1s 1s Size (bytes) 1s Ks-Ms Ms-Gs Secondary Storage (Disk) 1,,s (1s ms) Gs-Ts Tertiary Storage (Tape) 1,,,s (1s sec) Ts-Ps Lec 13.29 Lec 13.3 A Summary on Sources of Cache Misses Compulsory (cold start or process migration, first reference) first access to a block Cold fact of life not a whole lot you can do about it Note If you are going to run billions of instruction, Compulsory Misses are insignificant Capacity Cache cannot contain all blocks access by the program Solution increase cache size Conflict (collision) Multiple memory locations mapped to the same cache location Solution 1 increase cache size Solution 2 increase associativity Coherence (Invalidation) other process (e.g., I/O) updates memory How is a Block found in a Cache? Tag Block Address Index Set Select Block offset Data Select Index Used to Lookup Candidates in Cache Index identifies the set Tag used to identify actual copy If no candidates match, then declare cache miss Block is minimum quantum of caching Data select field used to select within block Many caching applications don t have select field Lec 13.31 Lec 13.32

Valid Bit Review Direct Mapped Cache Direct Mapped 2 N byte cache The uppermost (32 - N) bits are always the The lowest M bits are the Byte Select (Block Size = 2 M ) Example 1 KB Direct Mapped Cache with 32 B Blocks Index chooses potential block Tag checked to verify block Byte select chooses byte within block 31 x5 Ex x5 9 Cache Index Ex x1 Byte 31 Byte 63 Byte 123 Cache Data Byte 1 Byte 33 Byte 32 1 4 Byte Select Ex x Byte Byte 992 2 3 31 Lec 13.33 Review Set Associative Cache N-way set associative N entries per Cache Index N direct mapped caches operates in parallel Example Two-way set associative cache Cache Index selects a set from the cache Two tags in the set are compared to input in parallel Valid Data is selected based on the tag result 31 Cache Data Cache Block Compare Sel1 1 OR Cache Index 3/7/19 Hit CS162 UCB Cache Fall 218 Block 8 Mux Sel Cache Data Cache Block 4 Byte Select Compare Valid Lec 13.34 Review Fully Associative Cache Fully Associative Every block can hold any line Address does not include a cache index Compare s of all Cache Entries in Parallel Example Block Size=32B blocks We need N 27-bit comparators Still have byte select to choose from within block 31 = = = = = (27 bits long) Valid Bit Byte 31 Byte 63 4 Cache Data Byte Select Ex x1 Byte 1 Byte 33 Byte Byte 32 Example Block 12 placed in 8 block cache Block no. Where does a Block Get Placed in a Cache? Block no. Direct mapped block 12 can go only into block 4 (12 mod 8) 1 2 3 4 5 6 7 32-Block Address Space 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 Block no. Set associative block 12 can go anywhere in set (12 mod 4) 1 2 3 4 5 6 7 Set Set Set Set 1 2 3 Block no. Fully associative block 12 can go anywhere 1 2 3 4 5 6 7 Lec 13.35 Lec 13.36

Review Which block should be replaced on a miss? Easy for Direct Mapped Only one possibility Set Associative or Fully Associative Random LRU (Least Recently Used) Miss rates for a workload 2-way 4-way 8-way Size LRU Random LRU Random LRU Random 16 KB 5.2% 5.7% 4.7% 5.3% 4.4% 5.% 64 KB 1.9% 2.% 1.5% 1.7% 1.4% 1.5% 256 KB 1.15% 1.17% 1.13% 1.13% 1.12% 1.12% Review What happens on a write? Write through The information is written to both the block in the cache and to the block in the lower-level memory Write back The information is written only to the block in the cache Modified cache block is written to main memory only when it is replaced Question is block clean or dirty? Pros and Cons of each? WT» PRO read misses cannot result in writes» CON Processor held up on writes unless writes buffered WB» PRO repeated writes not sent to DRAM processor not held up on writes» CON More complex Read miss may require writeback of dirty Lec 13.37 Lec 13.38 Caching Applied to Address Translation CPU Address TLB Cached? Yes No Translate (MMU) Save Result Data Read or Write (untranslated) Question is one of page locality does it exist? Instruction accesses spend a lot of time on the same page (since accesses sequential) Stack accesses have definite locality of reference Data accesses have less page locality, but still some Can we have a TLB hierarchy? Sure multiple levels at different sizes/speeds Address Memory Lec 13.39 What Actually Happens on a TLB Miss? (1/2) Hardware traversed page tables On TLB miss, hardware in MMU looks at current page table to fill TLB (may walk multiple levels)» If PTE valid, hardware fills TLB and processor never knows» If PTE marked as invalid, causes Page Fault, after which kernel decides what to do afterwards Software traversed Page tables (like MIPS) On TLB miss, processor receives TLB fault Kernel traverses page table to find PTE» If PTE valid, fills TLB and returns from fault» If PTE marked as invalid, internally calls Page Fault handler Lec 13.4

What Actually Happens on a TLB Miss? (2/2) Most chip sets provide hardware traversal Modern operating systems tend to have more TLB faults since they use translation for many things Examples» shared segments» user-level portions of an operating system What happens on a Context Switch? Need to do something, since TLBs map virtual addresses to physical addresses Address Space just changed, so TLB entries no longer valid! Options? Invalidate TLB simple but might be expensive» What if switching frequently between processes? Include ProcessID in TLB» This is an architectural solution needs hardware What if translation tables change? For example, to move page from memory to disk or vice versa Must invalidate TLB entry!» Otherwise, might think that page is still in memory! Lec 13.41 Lec 13.42 Summary 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 (+1) Major Categories of Cache Misses Compulsory Misses sad facts of life. Example cold start misses. Conflict Misses increase cache size and/or associativity Capacity Misses increase cache size Coherence Misses Caused by external processors or I/O devices Cache Organizations Direct Mapped single block per set Set associative more than one block per set Fully associative all entries equivalent Lec 13.43