CS3350B Computer Architecture Winter 2015 Lecture 3.2: Exploiting Memory Hierarchy: How? Marc Moreno Maza www.csd.uwo.ca/Courses/CS3350b [Adapted from.

Slides:



Advertisements
Similar presentations
1 Lecture 13: Cache and Virtual Memroy Review Cache optimization approaches, cache miss classification, Adapted from UCB CS252 S01.
Advertisements

Lecture 8: Memory Hierarchy Cache Performance Kai Bu
Cs 325 virtualmemory.1 Accessing Caches in Virtual Memory Environment.
1 Copyright © 2012, Elsevier Inc. All rights reserved. Chapter 2 (and Appendix B) Memory Hierarchy Design Computer Architecture A Quantitative Approach,
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Caches Part 2 Instructors: Krste Asanovic & Vladimir Stojanovic
331 Week13.1Spring :332:331 Computer Architecture and Assembly Language Spring 2006 Week 13 Basics of Cache [Adapted from Dave Patterson’s UCB CS152.
1  1998 Morgan Kaufmann Publishers Chapter Seven Large and Fast: Exploiting Memory Hierarchy.
Computer Systems Organization: Lecture 11
Cache Memory Adapted from lectures notes of Dr. Patterson and Dr. Kubiatowicz of UC Berkeley.
1 COMP 206: Computer Architecture and Implementation Montek Singh Mon, Oct 31, 2005 Topic: Memory Hierarchy Design (HP3 Ch. 5) (Caches, Main Memory and.
Chapter 7 Large and Fast: Exploiting Memory Hierarchy Bo Cheng.
Memory Chapter 7 Cache Memories.
331 Lec20.1Fall :332:331 Computer Architecture and Assembly Language Fall 2003 Week 13 Basics of Cache [Adapted from Dave Patterson’s UCB CS152.
1  1998 Morgan Kaufmann Publishers Chapter Seven Large and Fast: Exploiting Memory Hierarchy.
ENEE350 Ankur Srivastava University of Maryland, College Park Based on Slides from Mary Jane Irwin ( )
1 COMP 206: Computer Architecture and Implementation Montek Singh Wed, Nov 9, 2005 Topic: Caches (contd.)
331 Lec20.1Spring :332:331 Computer Architecture and Assembly Language Spring 2005 Week 13 Basics of Cache [Adapted from Dave Patterson’s UCB CS152.
Review: The Memory Hierarchy
Lecture 33: Chapter 5 Today’s topic –Cache Replacement Algorithms –Multi-level Caches –Virtual Memories 1.
Memory Hierarchy and Cache Design The following sources are used for preparing these slides: Lecture 14 from the course Computer architecture ECE 201 by.
CPE432 Chapter 5A.1Dr. W. Abu-Sufah, UJ Chapter 5A: Exploiting the Memory Hierarchy, Part 3 Adapted from Slides by Prof. Mary Jane Irwin, Penn State University.
Computer Architecture and Design – ECEN 350 Part 9 [Some slides adapted from M. Irwin, D. Paterson. D. Garcia and others]
1 CMPE 421 Advanced Computer Architecture Caching with Associativity PART2.
CSE331 W15.1Irwin&Li Fall 2006 PSU CSE 331 Computer Organization and Design Fall 2006 Week 15 Section 1: Mary Jane Irwin (
CMPE 421 Parallel Computer Architecture
Caching & Virtual Memory Systems Chapter 7  Caching l To address bottleneck between CPU and Memory l Direct l Associative l Set Associate  Virtual Memory.
Lecture 10 Memory Hierarchy and Cache Design Computer Architecture COE 501.
CPE432 Chapter 5A.1Dr. W. Abu-Sufah, UJ Chapter 5B:Virtual Memory Adapted from Slides by Prof. Mary Jane Irwin, Penn State University Read Section 5.4,
The Memory Hierarchy 21/05/2009Lecture 32_CA&O_Engr Umbreen Sabir.
10/18: Lecture topics Memory Hierarchy –Why it works: Locality –Levels in the hierarchy Cache access –Mapping strategies Cache performance Replacement.
CSIE30300 Computer Architecture Unit 9: Improving Cache Performance Hsin-Chou Chi [Adapted from material by and
CS.305 Computer Architecture Improving Cache Performance Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005, and from slides kindly.
CS1104 – Computer Organization PART 2: Computer Architecture Lecture 10 Memory Hierarchy.
CSIE30300 Computer Architecture Unit 08: Cache Hsin-Chou Chi [Adapted from material by and
CPE432 Chapter 5A.1Dr. W. Abu-Sufah, UJ Chapter 5A: Exploiting the Memory Hierarchy, Part 2 Adapted from Slides by Prof. Mary Jane Irwin, Penn State University.
1  1998 Morgan Kaufmann Publishers Recap: Memory Hierarchy of a Modern Computer System By taking advantage of the principle of locality: –Present the.
1 CMPE 421 Parallel Computer Architecture PART4 Caching with Associativity.
1Chapter 7 Memory Hierarchies (Part 2) Outline of Lectures on Memory Systems 1. Memory Hierarchies 2. Cache Memory 3. Virtual Memory 4. The future.
Additional Slides By Professor Mary Jane Irwin Pennsylvania State University Group 3.
Caches Where is a block placed in a cache? –Three possible answers  three different types AnywhereFully associativeOnly into one block Direct mappedInto.
Lecture 08: Memory Hierarchy Cache Performance Kai Bu
Computer Organization CS224 Fall 2012 Lessons 45 & 46.
1 Chapter Seven. 2 Users want large and fast memories! SRAM access times are ns at cost of $100 to $250 per Mbyte. DRAM access times are ns.
Nov. 15, 2000Systems Architecture II1 Machine Organization (CS 570) Lecture 8: Memory Hierarchy Design * Jeremy R. Johnson Wed. Nov. 15, 2000 *This lecture.
CS.305 Computer Architecture Memory: Caches Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005, and from slides kindly made available.
CPE232 Cache Introduction1 CPE 232 Computer Organization Spring 2006 Cache Introduction Dr. Gheith Abandah [Adapted from the slides of Professor Mary Irwin.
Review °We would like to have the capacity of disk at the speed of the processor: unfortunately this is not feasible. °So we create a memory hierarchy:
CS224 Spring 2011 Computer Organization CS224 Chapter 5A: Exploiting the Memory Hierarchy, Part 1 Spring 2011 With thanks to M.J. Irwin, D. Patterson,
1 CMPE 421 Parallel Computer Architecture PART3 Accessing a Cache.
1 Chapter Seven. 2 Users want large and fast memories! SRAM access times are ns at cost of $100 to $250 per Mbyte. DRAM access times are ns.
CPE232 Improving Cache Performance1 CPE 232 Computer Organization Spring 2006 Improving Cache Performance Dr. Gheith Abandah [Adapted from the slides of.
1 Chapter Seven. 2 SRAM: –value is stored on a pair of inverting gates –very fast but takes up more space than DRAM (4 to 6 transistors) DRAM: –value.
CS 61C: Great Ideas in Computer Architecture Lecture 15: Caches, Part 2 Instructor: Sagar Karandikar
CSE431 L20&21 Improving Cache Performance.1Irwin, PSU, 2005 CSE 431 Computer Architecture Fall 2005 Lecture 20&21. Improving Cache Performance Mary Jane.
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Set-Associative Caches Instructors: Randy H. Katz David A. Patterson
CS 61C: Great Ideas in Computer Architecture Caches Part 2 Instructors: Nicholas Weaver & Vladimir Stojanovic
CS 110 Computer Architecture Lecture 15: Caches Part 2 Instructor: Sören Schwertfeger School of Information Science and Technology.
Memory Hierarchy— Five Ways to Reduce Miss Penalty.
CMSC 611: Advanced Computer Architecture
Virtual Memory Use main memory as a “cache” for secondary (disk) storage Managed jointly by CPU hardware and the operating system (OS) Programs share main.
Cache Memory Presentation I
Mary Jane Irwin ( ) CSE 431 Computer Architecture Fall 2005 Lecture 19: Cache Introduction Review Mary Jane Irwin (
Lecture 08: Memory Hierarchy Cache Performance
CPE 631 Lecture 05: Cache Design
Morgan Kaufmann Publishers
Morgan Kaufmann Publishers Memory Hierarchy: Cache Basics
Cache - Optimization.
Cache Memory Rabi Mahapatra
CS Computer Architecture Spring Lecture 19: Cache Introduction
10/18: Lecture Topics Using spatial locality
Presentation transcript:

CS3350B Computer Architecture Winter 2015 Lecture 3.2: Exploiting Memory Hierarchy: How? Marc Moreno Maza [Adapted from lectures on Computer Organization and Design, Patterson & Hennessy, 5 th edition, 2014] 0

How is the Hierarchy Managed?  registers  cache memory l by compiler (programmer?)  cache  main memory l by the cache controller hardware  main memory  disks l by the operating system (virtual memory) l virtual to physical address mapping assisted by the hardware (TLB) l by the programmer (files) 1

Cache Design Questions Q1: How best to organize the memory blocks (lines) of the cache? Q2: To which block (line) of the cache does a given main memory address map? Since the cache is a subset of memory, multiple memory addresses can map to the same cache location Q3: How do we know if a block of main memory currently has a copy in cache? Q4: How do we find this copy quickly? 2

General Organization of a Cache Memory B–110 B–110 valid tag set 0: B = 2 b bytes per data block N lines per set (N-way) R = 2 s sets t tag bits per line 1 valid bit per line Cache size: C = B x N x R data bytes B–110 B–110 valid tag set 1: B–110 B–110 valid tag set R-1: Cache is an array of sets Each set contains one or more lines Each line holds a block of data Set # ≡ hash code (index) Tag ≡ hash key 3

Addressing Caches (Memory-Cache Mapping) t bitss bits b bits 0m-1 Address A (m bits): B–110 B–110 v v tag set 0: B–110 B–110 v v tag set 1: B–110 B–110 v v tag set R-1: The data word at address A is in the cache if the tag bits in one of the lines in set match The word contents begin at offset bytes from the beginning of the block Address mapping: set# = (block address) modulo (R) block address = concatenate lw $t0,0($s1) #$t0=Mem($s1) sw $t0,0($s1) #Mem($s1)=$t0 b = log 2 (B) R = C/(B*N) s = log 2 (R) t = m-s-b N-way 4

Types of Cache Organization  Direct-mapped l N = 1 -one line per set -each memory block is mapped to exactly one line in the cache) l b = log 2 (B), R = C/B, s = log 2 (R), t = m-s-b  Fully associative l R = 1 (allow a memory block to be mapped to any cache block) l b = log 2 (B), N = C/B, s = 0, t = m-b  n-way set associative l N = n (2, 4, 8, or 16) l A memory block maps to a unique set (specified by the index field) and can be placed in any way of that set (so there are n choices) l b = log 2 (B), R = C/(B*n), s = log 2 (R), t = m-s-b 5

Example: Eight-Block Cache with Different Organizations Total size of $ in blocks is equal to *. For fixed $ size, increasing associativity decreases number of sets while increasing number of elements per set. With eight blocks, an 8-way set-associative $ is same as a fully associative $. 6

Direct Mapped Cache Example (1 word data block)  Consider the sequence of memory address accesses 0, 1, 2, 3, 4, 3, 4, 15 Start with an empty cache – all blocks initially marked as not valid 8 requests, 2 hits, 6 misses = 25% hit rate , 0001, 0010, 0011, 0100, 0011, 0100, 1111 set Mem(0) 00 Mem(1) 00 Mem(0) 00 Mem(1) 00 Mem(2) miss hit!!! 00 Mem(0) 00 Mem(1) 00 Mem(2) 00 Mem(3) 01 Mem(4) 00 Mem(1) 00 Mem(2) 00 Mem(3) 01 Mem(4) 00 Mem(1) 00 Mem(2) 00 Mem(3) 01 Mem(4) 00 Mem(1) 00 Mem(2) 00 Mem(3) Mem(1) 00 Mem(2) 00 Mem(3) tag bits of tag, 2-bit of set address (index), (2-bit of byte offset to data word is ignored) tag data block (1 word)

Why Use Middle Bits as Index?  High-Order Bit Indexing l Adjacent memory lines would map to same cache entry l Poor use of spatial locality  Middle-Order Bit Indexing l Consecutive memory lines map to different cache lines l Can hold C-byte region of address space in cache at one time l What type of locality? 4-line Cache High-Order Bit Indexing Middle-Order Bit Indexing 00x 01x 10x 11x 0000x 0001x 0010x 0011x 0100x 0101x 0110x 0111x 1000x 1001x 1010x 1011x 1100x 1101x 1110x 1111x 0000x 0001x 0010x 0011x 0100x 0101x 0110x 0111x 1000x 1001x 1010x 1011x 1100x 1101x 1110x 1111x 8

One word (4 Byte) data blocks, cache size = 1K words (or 4KB) Direct Mapped Cache Example 20 Tag 10 Index Data Set/Index TagValid Byte offset What kind of locality are we taking advantage of? 20 Data 32 Hit = 2 10

Taking Advantage of Spatial Locality  Let cache block hold more than one word (say, two) 0, 1, 2, 3, 4, 3, 4, Mem(1) Mem(0) miss 00 Mem(1) Mem(0) hit 00 Mem(3) Mem(2) 00 Mem(1) Mem(0) miss hit 00 Mem(3) Mem(2) 00 Mem(1) Mem(0) miss 00 Mem(3) Mem(2) 00 Mem(1) Mem(0) hit 00 Mem(3) Mem(2) 01 Mem(5) Mem(4) hit 00 Mem(3) Mem(2) 01 Mem(5) Mem(4) 00 Mem(3) Mem(2) 01 Mem(5) Mem(4) miss Start with an empty cache - all blocks initially marked as not valid 8 requests, 4 hits, 4 misses = 50% hit rate! , 0001, 0010, 0011, 0100, 0011, 0100, bits of tag, 1-bit of set address (index), 1-bit of word-in-block select 0 1 tag data block (2 words)

Multiword Block Direct Mapped Cache Four data words/block, cache size = 1K words (256 blocks, 4KB total data) 8 Index Data IndexTagValid Byte offset 20 Tag HitData 32 Block offset What kind of locality are we taking advantage of? 11

Miss Rate vs Block Size vs Cache Size Miss rate goes up if the block size becomes a significant fraction of the cache size because the number of blocks that can be held in the same size cache is smaller (increasing capacity misses) 12

Exp: 4 Word Direct-Mapped $ for a Worst-Case Reference String  Consider the main memory word reference string 0, 4, 0, 4, 0, 4, 0, 4 Start with an empty cache - all blocks initially marked as not valid  Ping pong effect due to conflict misses – two memory locations that map into the same cache block miss 00 Mem(0) Mem(4) Mem(0) Mem(0) Mem(0) Mem(4) Mem(4) 0 00 l 8 requests, 8 misses 0000,

Exp: 4-Word 2-Way SA $ for the Same Reference String Start with an empty cache - all blocks initially marked as not valid 0404 miss hit 000 Mem(0) 010 Mem(4) 000 Mem(0) 010 Mem(4)  Solves the ping pong effect in a direct mapped cache due to conflict misses since now two memory locations that map into the same cache set can co-exist! l 8 requests, 2 misses  Consider the main memory word reference string 0, 4, 0, 4, 0, 4, 0, ,

Four-Way Set Associative Cache  2 8 = 256 sets each with four ways (each with one block) Byte offset Data TagV Data TagV Data TagV Index Data TagV Index 22 Tag HitData 32 4x1 select Way 0Way 1Way 2Way 3 15

Range of Set Associative Caches  For a fixed size cache, each increase by a factor of two in associativity doubles the number of blocks per set (i.e., the number of ways) and halves the number of sets – decreases the size of the index by 1 bit and increases the size of the tag by 1 bit Block offsetByte offsetIndexTag Decreasing associativity Fully associative (only one set) Tag is all the bits except block and byte offset Direct mapped (only one way) Smaller tags, only a single comparator Increasing associativity Selects the setUsed for tag compareSelects the word in the block 16

Benefits of Set Associative Caches  The choice of direct mapped or set associative depends on the cost of a miss versus the cost of implementation Data from Hennessy & Patterson, Computer Architecture, 2003  Largest gains are in going from direct mapped to 2-way (20%+ reduction in miss rate)

Further Reducing Cache Miss Rates Use multiple levels of caches  With advancing technology have more than enough room on the die for bigger L1 caches or for a second level of caches – normally a unified L2 cache (i.e., it holds both instructions and data) and in some cases even a unified L3 cache  New AMAT Calculation: AMAT = L1 Hit Time + L1 Miss Rate * L1 Miss Penalty, L1 Miss Penalty = L2 Hit Time + L2 Miss Rate * L2 Miss Penalty, and so forth (final miss penalty is Main Memory access time)  Example: 1 cycle L1 hit time, 2% L1 miss rate, 5 cycle L2 hit time, 5% L2 miss rate,100 cycle main memory access time l Without L2 cache: AMAT = *100 = 3 l With L2 cache: AMAT = *(5 +.05*100) =

Intel Pentium Cache Hierarchy Processor Chip L1 Data 1 cycle latency 16 KB 4-way assoc Write-through 32B lines L1 Instruction 16 KB, 4-way 32B lines Regs. L2 Unified 128KB–2 MB 4-way assoc Write-back Write allocate 32B lines L2 Unified 128KB–2 MB 4-way assoc Write-back Write allocate 32B lines Main Memory Up to 4GB Main Memory Up to 4GB 19

Multilevel Cache Design Considerations  Design considerations for L1 and L2 caches are very different l Primary cache should focus on minimizing hit time in support of a shorter clock cycle -Smaller with smaller block sizes l Secondary cache(s) should focus on reducing miss rate to reduce the penalty of long main memory access times -Larger with larger block sizes -Higher levels of associativity  The miss penalty of the L1 cache is significantly reduced by the presence of an L2 cache – so it can be smaller (i.e., faster) but have a higher miss rate  For the L2 cache, hit time is less important than miss rate l The L2$ hit time determines L1$’s miss penalty l L2$ local miss rate >> than the global miss rate 20

What parameters do you not know by far? Intel NehalemAMD Barcelona L1 cache organization & size Split I$ and D$; 32KB for each per core; 64B blocks Split I$ and D$; 64KB for each per core; 64B blocks L1 associativity4-way (I), 8-way (D) set assoc.; ~LRU replacement 2-way set assoc.; LRU replacement L1 write policywrite-back, write-allocate L2 cache organization & size Unified; 256MB (0.25MB) per core; 64B blocks Unified; 512KB (0.5MB) per core; 64B blocks L2 associativity8-way set assoc.; ~LRU16-way set assoc.; ~LRU L2 write policywrite-back L2 write policywrite-back, write-allocate L3 cache organization & size Unified; 8192KB (8MB) shared by cores; 64B blocks Unified; 2048KB (2MB) shared by cores; 64B blocks L3 associativity16-way set assoc.32-way set assoc.; evict block shared by fewest cores L3 write policywrite-back, write-allocatewrite-back; write-allocate 21

 Read hits (I$ and D$) l this is what we want!  Write hits (D$ only) l require the cache and memory to be consistent -always write the data into both the cache block and the next level in the memory hierarchy (write-through) -writes run at the speed of the next level in the memory hierarchy – so slow! – or can use a write buffer and stall only if the write buffer is full l allow cache and memory to be inconsistent -write the data only into the cache block (write-back the cache block to the next level in the memory hierarchy when that cache block is “evicted”) -need a dirty bit for each data cache block to tell if it needs to be written back to memory when it is evicted – can use a write buffer to help “buffer” write-backs of dirty blocks Handling Cache Hits 22

Sources of Cache Misses  Compulsory (cold start or process migration, first reference): l First access to a block, “cold” fact of life, not a whole lot you can do about it. If you are going to run “millions” of instruction, compulsory misses are insignificant l Solution: increase block size (increases miss penalty; very large blocks could increase miss rate)  Capacity: l Cache cannot contain all blocks accessed by the program l Solution: increase cache size (may increase access time)  Conflict (collision): l Multiple memory locations mapped to the same cache location l Solution 1: increase cache size l Solution 2: increase associativity (may increase access time) 23

Handling Cache Misses (Single Word Blocks)  Read misses (I$ and D$) l stall the pipeline, fetch the block from the next level in the memory hierarchy, install it in the cache and send the requested word to the processor, then let the pipeline resume  Write misses (D$ only) 1. stall the pipeline, fetch the block from next level in the memory hierarchy, install it in the cache (which may involve having to evict a dirty block if using a write-back cache), write the word from the processor to the cache, then let the pipeline resume or 2. Write allocate – just write the word into the cache updating both the tag and data, no need to check for cache hit, no need to stall or 3. No-write allocate – skip the cache write (but must invalidate that cache block since it will now hold stale data) and just write the word to the write buffer (and eventually to the next memory level), no need to stall if the write buffer isn’t full 24

Handling Cache Misses (Multiword Blocks)  Read misses (I$ and D$) l Processed the same as for single word blocks – a miss returns the entire block from memory l Miss penalty grows as block size grows. To reduce miss penalty: -Early restart – processor resumes execution as soon as the requested word of the block is returned -Requested word first – requested word is transferred from the memory to the cache (and processor) first l Non-blocking cache – allows the processor to continue to access the cache while the cache is handling an earlier miss  Write misses (D$) l If using write allocate must first fetch the block from memory and then write the word to the block (or could end up with a “garbled” block in the cache (e.g., for 4 word blocks, a new tag, one word of data from the new block, and three words of data from the old block) 25

Extra Costs of Set Associative Caches  When a miss occurs, which way’s block do we pick for replacement? l Least Recently Used (LRU): the block replaced is the one that has been unused for the longest time -Must have hardware to keep track of when each way’s block was used relative to the other blocks in the set -For 2-way set associative, takes one bit per set → set the bit when a block is referenced (and reset the other way’s bit)  N-way set associative cache costs l N comparators (delay and area) l MUX delay (set selection) before data is available l Data available after set selection (and Hit/Miss decision). In a direct mapped cache, the cache block is available before the Hit/Miss decision -So its not possible to just assume a hit and continue and recover later if it was a miss 26

Summary: Improving Cache Performance 0. Reduce the time to hit in the cache l smaller cache l direct mapped cache l smaller blocks l for writes -no write allocate – no “hit” on cache, just write to write buffer -write allocate – to avoid two cycles (first check for hit, then write) pipeline writes via a delayed write buffer to cache 1. Reduce the miss rate l bigger cache l more flexible placement (increase associativity) l larger blocks (16 to 64 bytes typical) l victim cache – small buffer holding most recently discarded blocks 27

Summary: Improving Cache Performance 2. Reduce the miss penalty l smaller blocks l use a write buffer to hold dirty blocks being replaced so don’t have to wait for the write to complete before reading l check write buffer (and/or victim cache) on read miss – may get lucky l for large blocks fetch critical word first l use multiple cache levels – L2 cache not tied to CPU clock rate l faster backing store/improved memory bandwidth -wider buses -memory interleaving, DDR SDRAMs 28

Summary: The Cache Design Space  Several interacting dimensions l cache size l block size l associativity l replacement policy l write-through vs write-back l write allocation  The optimal choice is a compromise l depends on access characteristics -workload -use (I-cache, D-cache, TLB) l depends on technology / cost  Simplicity often wins Associativity Cache Size Block Size Bad Good LessMore Factor AFactor B 29

Takeaway  The Principle of Locality: l 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: l Compulsory misses: sad facts of life. Example: cold start misses l Conflict misses: increase cache size and/or associativity Nightmare Scenario: ping pong effect! l Capacity misses: increase cache size  Cache design space l total size, block size, associativity (replacement policy) l write-hit policy (write-through, write-back) l write-miss policy (write allocate, write buffers) 30

Self-review Questions for the Memory Hierarchy Q1: Where can a entry be placed in the upper level? (Entry placement) Q2: How is a entry found if it is in the upper level? (Entry identification) Q3: Which entry should be replaced on a miss? (Entry replacement) Q4: What happens on a write? (Write strategy) 31

Q1&Q2: Where can an entry be placed/found? # of setsEntries per set Direct mapped# of entries1 Set associative(# of entries)/ associativityAssociativity (typically 2 to 16) Fully associative1# of entries Location method# of comparisons Direct mappedIndex1 Set associativeIndex the set; compare set’s tags Degree of associativity Fully associativeCompare all entries’ tags Separate lookup (page) table # of entries 0

Q3: Which entry should be replaced on a miss?  Easy for direct mapped – only one choice  Set associative or fully associative l Random l LRU (Least Recently Used)  For a 2-way set associative, random replacement has a miss rate about 1.1 times higher than LRU  LRU is too costly to implement for high levels of associativity (> 4-way) since tracking the usage information is costly 33

Q4: What happens on a write?  Write-through – The information is written to the entry in the current memory level and to the entry in the next level of the memory hierarchy l Always combined with a write buffer so write waits to next level memory can be eliminated (as long as the write buffer doesn’t fill)  Write-back – The information is written only to the entry in the current memory level. The modified entry is written to next level of memory only when it is replaced. l Need a dirty bit to keep track of whether the entry is clean or dirty l Virtual memory systems always use write-back of dirty pages to disk  Pros and cons of each? l Write-through: read misses don’t result in writes (so are simpler and cheaper), easier to implement l Write-back: writes run at the speed of the cache; repeated writes require only one write to lower level 34