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

  1. 1956

    Magnetic-core memory

    Random-access main memory becomes real.

  2. 1965

    The cache idea

    Wilkes proposes a small, fast buffer memory.

  3. 1968

    DRAM is invented

    One transistor per bit.

  4. 1980

    Multi-level caches

    L1 and L2 become standard on processors.

  5. 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

M

Maurice Wilkes

1913 – 2010

Proposed the cache and microprogramming.

R

Robert Dennard

1932 –

Inventor of DRAM.

07Further reading

  • Computer Systems: A Programmer’s PerspectiveBryant & O’Hallaron · 2003
  • Cache design notesHennessy & Patterson · 2011