Lecture 3

DRAM Access Patterns

Rule Ideal Values Description
Granularity 6 - 64 B Amount of data transferred in a single request
Reading smaller sizes is very inefficient
Locality 1- 4kB If you use an address now, you will likely use it again soon (fetch from cache, not memory)
If you use an address now, you will likely use one close to it soon (In same cache line, if realated objects are stored too far away from eachother, the cache line can be flushed causing a memory read (inefficient)
L1, L2 caching 64-256 kB Set of bytes read/written repeatedly is stored here until replaced, subsequent reads and writes hit the cache not memory, much faster. Shared between 2 threads
L3 Caching 8-20MB ""__"". Shared between all cores

Hit Ratio

Cache Flushing/ Re-filling

Cache Topologies

Fully Associative Caches

Direct Mapped Cache

K-Way Set Associative Cache

Cache Coherence

MESI
Write-through Caches
Write-back Caches