01Overview
In 1956 magnetic-core memory replaced delay lines as reliable main memory. In 1965 Wilkes proposed the cache: keep recently used data in a small fast store near the CPU. The hierarchy has deepened ever since — registers, L1/L2/L3, DRAM, SSD, disk, network storage.
The structure works because programs show temporal and spatial locality. Cache lines, prefetching, write-back policies and coherence protocols are all engineering around locality. Today a memory access can be two orders of magnitude slower than an arithmetic operation, so understanding the memory hierarchy often matters more than understanding the instruction set.
02History
- 1956
Magnetic-core memory
Random-access main memory becomes real.
- 1965
The cache idea
Wilkes proposes a small, fast buffer memory.
- 1968
DRAM is invented
One transistor per bit.
- 1980
Multi-level caches
L1 and L2 become standard on processors.
- 2000
NUMA and the memory wall
The coherence challenge of the multicore era.
03Core concepts
Locality
Programs tend to reuse recent data and nearby addresses.
Cache line
The smallest unit moved between cache and memory, usually 64 bytes.
Coherence protocol
Rules that keep caches consistent across cores, such as MESI.
04Hands-on
Do it once — it beats reading it ten times
Measure the access time of an array with stride 1 versus stride 64, and plot the cliff when entries stop fitting in cache
05Self-check
Say it in your own words first, then open the answer. Whatever you cannot explain is what to review next.
Can you explain "Locality"?
Programs tend to reuse recent data and nearby addresses.
Can you explain "Cache line"?
The smallest unit moved between cache and memory, usually 64 bytes.
Can you explain "Coherence protocol"?
Rules that keep caches consistent across cores, such as MESI.
What problem did it solve, and why was there nothing better at the time?
Go back to the history section: how was this done before, and what did it cost?
If you had to build it today, how would you break it down?
Use the hands-on task above: write a plan of at most three steps before you start.
06Key people
Maurice Wilkes
1913 – 2010
Proposed the cache and microprogramming.
Robert Dennard
1932 –
Inventor of DRAM.
07Further reading
- Computer Systems: A Programmer’s Perspective
- Cache design notes