4.1.6Memory Technologies

SDRAM and DDR (DDR2 - 3 - 4 - 5) evolution

2,193 words10 min readdifficulty · medium

WHY does SDRAM/DDR exist at all?


SDR SDRAM: the starting point

  • If the bus clock is fclkf_{clk} and the bus is ww bits wide, the peak transfer rate is:

The DDR trick: both clock edges

But there's a catch that drives the whole generation story:


The generations — same core, faster interface

Gen Prefetch (bits) I/O clock ÷ core Voltage Typical data rate
SDR 1n 3.3 V 100–166 MT/s
DDR 2n 1× (both edges) 2.5 V 200–400 MT/s
DDR2 4n 1.8 V 400–1066 MT/s
DDR3 8n 1.5 V 800–2133 MT/s
DDR4 8n (+ bank groups) 1.2 V 1600–3200 MT/s
DDR5 16n (2× 8n subchannels) 1.1 V 3200–8400 MT/s
Figure — SDRAM and DDR (DDR2 - 3 - 4 - 5) evolution

Worked examples


Common mistakes (steel-manned)


Active recall

Recall Test yourself (hide the answers)
  • What single physical fact forces all the "interface trickery"? → the DRAM array's ~15 ns access time barely improves.
  • What does the "D" in DDR give you? → data on both clock edges = 2× transfers.
  • Prefetch of DDR3? → 8n.
  • Why did prefetch stop doubling after DDR3? → burst would get too large / wasteful; used bank groups & subchannels instead.
  • Convert DDR4-3200, 64-bit → GB/s? → 3200×8/1000=25.63200\times8/1000 = 25.6 GB/s.
Recall Feynman: explain to a 12-year-old

Imagine a well with slow-to-fill water buckets (the memory) and a fast conveyor belt (the wires to the CPU). You can't fill buckets faster, so you fill lots of buckets at the same time and run the belt faster, and you put a bucket on the belt every time the belt-arm goes up AND down (that's the "double" in DDR). Each new DDR just fills more buckets at once and runs the belt faster — but the well itself never got faster. That's the whole secret.


Connections

What is the key physical bottleneck driving DDR evolution?
The DRAM array access time (~15 ns) barely improved, so speed gains come from the interface, not the core.
What does DDR (Double Data Rate) do?
Transfers data on both the rising and falling clock edges, doubling transfers per clock cycle.
How is data rate (MT/s) related to bus clock (MHz)?
Data rate = 2 × clock frequency (both edges).
What is the prefetch width for SDR, DDR, DDR2, DDR3?
1n, 2n, 4n, 8n respectively.
Why did prefetch stay at 8n from DDR3 to DDR4?
Larger prefetch means larger minimum burst = wasted bandwidth; DDR4 used bank groups instead.
How does DDR5 effectively reach 16n prefetch?
It splits each channel into two independent 32-bit subchannels, each with 8n prefetch.
Compute peak bandwidth of DDR4-3200 on a 64-bit channel.
3200 MT/s × 8 bytes = 25.6 GB/s.
What does "PC3-12800" mean?
DDR3 module with 12800 MB/s peak bandwidth (= DDR3-1600).
What core clock does DDR3-1600 actually run at?
200 MHz (1600 ÷ 2 for edges ÷ 4 for 8n prefetch).
How did operating voltage evolve SDR→DDR5?
3.3 → 2.5 → 1.8 → 1.5 → 1.2 → 1.1 V (drops each generation to save power).
Why can DDR5 and DDR4 at the same MT/s differ in real performance?
DDR5's dual subchannels give more parallelism/concurrency, reducing stalls despite equal peak bandwidth.

Concept Map

too slow to feed

reads chunk once, streams fast

clocked, once per cycle

adds falling edge

2x transfers per clock

BW = fclk x w/8

needs to avoid starving

width doubles each gen

same slow core, faster IO

DRAM array slow ~15ns

IO interface fast

SDRAM synchronous

SDR one edge

DDR both edges

Prefetch buffer n bits

Peak bandwidth

DDR2 3 4 5 generations

Hinglish (regional understanding)

Intuition Hinglish mein samjho

Dekho, DDR ki poori kahani ek simple fact pe tiki hai: DRAM ke andar jo capacitor cells hain, woh slow hain aur pichle 25 saal mein bilkul fast nahi hue — inka access time abhi bhi ~15 ns hai. Toh speed badhane ke liye engineers ne memory core ko touch hi nahi kiya, sirf interface (jo wires CPU tak data bhejti hain) ko tez banaya. Yehi asli trick hai.

Do main tricks hain. Pehla: DDR (Double Data Rate) — clock ek square wave hai jo upar-neeche jaata hai; SDR sirf rising edge pe data bhejta tha, DDR dono edges (rising + falling) pe bhejta hai, toh ek hi clock pe 2x transfers. Isliye "DDR-400" ka matlab clock 200 MHz hai, par data rate 400 MT/s (MT/s = MHz × 2, yaad rakhna). Dusra trick: prefetch — slow array se ek saath bahut saare bits parallel mein utha lo (SDR=1n, DDR=2n, DDR2=4n, DDR3=8n), phir fast bus pe stream kar do. Har generation prefetch double karti gayi.

DDR3 ke baad prefetch 8n pe ruk gaya. Kyun? Kyunki prefetch jitna bada, minimum burst utna bada — matlab tum aisa data bhi fetch kar loge jo chahiye hi nahi, bandwidth waste. Isliye DDR4 ne bank groups add kiye aur DDR5 ne channel ko do independent 32-bit subchannels mein tod diya (effective 16n), taaki parallelism badhe. Isliye DDR5 aur DDR4 same MT/s pe bhi, real life mein DDR5 tez lagta hai — kyunki concurrency zyada hai.

Bandwidth nikaalna easy hai: naam mein diya number hi MT/s hai, use bytes-per-transfer se multiply karo. Jaise DDR4-3200, 64-bit = 8 bytes → 3200 × 8 = 25600 MB/s = 25.6 GB/s. Aur voltage har generation mein girta gaya (3.3 → 1.1 V) taaki power aur heat bache. Bas yehi core intuition hai — baaki sab isi ke variations hain.

Go deeper — visual, from zero

Test yourself — Memory Technologies

Connections