Top Banner
Xuan ‘Silvia’ Zhang Washington University in St. Louis http:// classes.engineering.wustl.edu /ese566/ Lecture 14 Fundamental Memory Concepts (Part 2)
32

Lecture 14 Fundamental Memory Concepts (Part 2)

Apr 16, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lecture 14 Fundamental Memory Concepts (Part 2)

Xuan ‘Silvia’ Zhang Washington University in St. Louis

http://classes.engineering.wustl.edu/ese566/

Lecture 14 Fundamental Memory Concepts (Part 2)

Page 2: Lecture 14 Fundamental Memory Concepts (Part 2)

Memory Structure and Technology

•  Register Files

2

Page 3: Lecture 14 Fundamental Memory Concepts (Part 2)

Memory Structure and Technology

•  SRAM (cache, on-chip)

3

Page 4: Lecture 14 Fundamental Memory Concepts (Part 2)

Memory Structure and Technology

•  DRAM

4

Page 5: Lecture 14 Fundamental Memory Concepts (Part 2)

Memory Structure and Technology

•  DRAM

5

Page 6: Lecture 14 Fundamental Memory Concepts (Part 2)

Memory Structure and Technology

•  Disk –  magnetic hard drives require rotating platters resulting

in long random access times with have hardly improved over several decades

•  Flash –  solid-state drives using flash have 100x lower latencies,

but also lower density and higher cost

6

Page 7: Lecture 14 Fundamental Memory Concepts (Part 2)

Memory Technology Trade-offs

7

Page 8: Lecture 14 Fundamental Memory Concepts (Part 2)

Latency Numbers: every programmers (architect) should know

8

find updated at https://people.eecs.berkeley.edu/~rcs/research/interactive_latency.html

Page 9: Lecture 14 Fundamental Memory Concepts (Part 2)

Cache Memories in Computer Architecture

•  Three key questions –  how much data is aggregated in a cache line –  how do we organize multiple lines in cache –  what data is replaced to make room for new data when

cache is full

•  Categorizing misses •  Write policies •  Multi-level cache

9

Page 10: Lecture 14 Fundamental Memory Concepts (Part 2)

Typical Access Pattern instruction vs data access, temporal vs spatial locality

10

Page 11: Lecture 14 Fundamental Memory Concepts (Part 2)

Understand Locality

11

Page 12: Lecture 14 Fundamental Memory Concepts (Part 2)

Q1: How Much Data is Stored in a Cache Line?

12

Page 13: Lecture 14 Fundamental Memory Concepts (Part 2)

Q2: How to Organize Multiple Lines in the Cache?

13

Page 14: Lecture 14 Fundamental Memory Concepts (Part 2)

Increase Cache Associativity

14

Page 15: Lecture 14 Fundamental Memory Concepts (Part 2)

Increase Cache Line Size

15

Page 16: Lecture 14 Fundamental Memory Concepts (Part 2)

Q3: What Data to be Replaced When Cache is Full?

•  No choice in a direct-mapped cache •  Random

–  good average case performance, but difficult to implement

•  Least recently used (LRU) –  replace cache line which has not been accessed recently –  exploits temporal locality –  LRU cache state must be updated on every access –  two-way cache can use a single “last used bit” –  pseudo-LRU uses binary tree to approximate LRU for higher

associativity

•  First-In First-Out (FIFO, Round Robin) –  simpler implementation without exploiting temporal locality –  potentially useful in large fully-associative caches

16

Page 17: Lecture 14 Fundamental Memory Concepts (Part 2)

Categorize Misses: The Three C’s

•  Compulsory –  first-reference to a block

•  Capacity –  cache is too small to hold all of the data

•  Conflict –  collisions in a specific set

17

Page 18: Lecture 14 Fundamental Memory Concepts (Part 2)

Classify Misses as a Sequence of Three Questions

•  Q1: would this miss occur in a cache with infinite capacity? –  if “yes”, then this is a compulsory miss –  if “no”, consider Q2

•  Q2: would this miss occur in a fully-associate cache with the desired capacity? –  if “yes”, then this is a capacity miss –  if “no”, then consider Q3

•  Q3: would this miss occur in a cache with the desired capacity and associativity? –  if “yes”, then this is a conflict miss –  if “no”, then this is not a miss—it is a hit!

18

Page 19: Lecture 14 Fundamental Memory Concepts (Part 2)

Examples

19

Page 20: Lecture 14 Fundamental Memory Concepts (Part 2)

Write Policies

•  Write-through with no write allocate –  on write miss, write memory but do not bring line into

cache –  on write hit, write both cache and memory –  require more memory bandwidth, but simpler

implementation

•  Write-back with write allocate –  on write miss, bring cache line into cache then write –  on write hit, only write cache, do not write memory –  only update memory when a dirty cache line is evicted –  more efficient, but more complicated to implement

20

Page 21: Lecture 14 Fundamental Memory Concepts (Part 2)

Translation, Protection, and Virtualization

•  Translation –  mapping of virtual address to physical address

•  Protection –  permission to access address in memory

•  Virtualization –  transparent extension of memory space using disk

21

Most modern systems provide support for all three functions with a single paged-based memory management unit (MMU).

Page 22: Lecture 14 Fundamental Memory Concepts (Part 2)

Analyze Memory Performance

•  mem access/sequence depends on program and translation

•  time/cycle depends on microarchitecture and implementation

•  also known as average memory access latency (AMAL)

22

Page 23: Lecture 14 Fundamental Memory Concepts (Part 2)

Analyze Memory Performance

•  average cycles/hit is called the hit latency; it depends on microarchitecture

•  number of misses/number of access is called the miss rate; it depends on microarchitecture

•  average extra cycles/miss is called the miss penalty; it depends on microarchitecture, rest of memory system

23

Page 24: Lecture 14 Fundamental Memory Concepts (Part 2)

Analyze Memory Performance

24

Page 25: Lecture 14 Fundamental Memory Concepts (Part 2)

Transactions and Steps, Now for Memory

•  Executing a memory access involves a sequence of steps –  check tag: check one or more tags in cache –  select victim: select victim line from cache using

replacement policy –  evict victim: evict victim line from cache and write

victim to memory –  refill: refill requested line by reading line from memory –  write mem: write requested word to memory –  access data: read or write requested word in cache

25

Page 26: Lecture 14 Fundamental Memory Concepts (Part 2)

Memory Microarchitecture Overview

26

Page 27: Lecture 14 Fundamental Memory Concepts (Part 2)

High-level Idea for FSM Cache

27

Page 28: Lecture 14 Fundamental Memory Concepts (Part 2)

FSM Cache Datapath

28

Page 29: Lecture 14 Fundamental Memory Concepts (Part 2)

High-level Idea for Pipelined Cache

29

Page 30: Lecture 14 Fundamental Memory Concepts (Part 2)

Pipeline Cache Datapath

30

Page 31: Lecture 14 Fundamental Memory Concepts (Part 2)

Questions?

Comments?

Discussion?

31

Page 32: Lecture 14 Fundamental Memory Concepts (Part 2)

Acknowledgement

Cornell University, ECE 4750

32