Memory Technologies
Level 4 — Application (novel problems, no hints) Time limit: 60 minutes Total marks: 75
Answer all questions. Show all working. Use for mathematics. State assumptions clearly.
Question 1 — DRAM Refresh Budget (15 marks)
A DRAM chip organized as rows must have every row refreshed within a retention time of . Each refresh operation (one row) occupies the memory for , during which no normal access can occur.
(a) If refreshes are distributed evenly across the retention window, compute the time interval between successive refresh commands. (3)
(b) Compute the fraction of total time the chip is unavailable due to refresh (the "refresh overhead"). Express as a percentage. (4)
(c) A new process shrink halves the storage capacitance but leaves the leakage current unchanged. The retention time is set by where is the tolerable voltage droop. Assuming is unchanged, what is the new retention time, and what is the new refresh overhead (row count unchanged)? (5)
(d) State one architectural technique DRAM vendors use to reduce refresh overhead as row counts grow, and explain in one sentence why it helps. (3)
Question 2 — SRAM Read Stability (14 marks)
A 6T SRAM cell is read by pre-charging both bitlines to and then asserting the wordline.
(a) During a read, the cell node storing logic '0' rises above due to the access transistor connecting it to the pre-charged bitline. Explain qualitatively why this "read disturb" can flip the stored bit, and name the cell parameter that quantifies robustness against it. (4)
(b) The sense amplifier can reliably resolve a bitline differential of . The effective bitline capacitance is and the cell sinks a read current of . Compute the minimum time the wordline must stay high for the sense amplifier to fire. (5)
(c) A designer proposes increasing the access-transistor width to speed up reads. Explain the trade-off this creates with read stability, referencing the cell-ratio concept. (5)
Question 3 — NAND Flash MLC/TLC and Wear (16 marks)
A NAND flash die uses TLC cells (3 bits/cell). A block contains pages; each page stores of user data.
(a) How many distinct threshold-voltage levels must each TLC cell distinguish, and how many read reference voltages are needed to fully decode one cell? (3)
(b) The full usable window for the floating-gate threshold is . Assuming levels are placed with equal spacing including guard bands, compute the nominal voltage spacing between adjacent level centers for TLC, and compare it to MLC (2 bits/cell) over the same window. (4)
(c) The die is rated for program/erase (P/E) cycles per block. A workload writes per day to a drive. Assuming a write amplification factor of and ideal wear leveling, compute the expected drive lifetime in years. (6)
(d) Explain in two sentences why TLC endurance is lower than MLC endurance for the same process. (3)
Question 4 — Memory Bandwidth & DDR (16 marks)
A DDR4 module runs at a bus clock of (I/O clock), transfers data on both clock edges, and has a -bit data bus.
(a) Compute the peak theoretical bandwidth in GB/s (use bytes). (4)
(b) The module's data-sheet timings are , and it operates at the clock above. Compute the CAS latency in nanoseconds. (3)
(c) A CPU issues a random read whose total latency is: , with cycles, cycles, and a burst length of 8 transfers. Compute the total latency in nanoseconds. (Bus clock ; each transfer takes half a clock cycle.) (5)
(d) A system needs sustained. Given the peak per-module figure from (a), how many channels (each one module) are minimally required, and why will real sustained bandwidth fall short of peak? (4)
Question 5 — ECC (14 marks)
A memory uses a single-error-correcting, double-error-detecting (SECDED) Hamming code on 64-bit data words.
(a) Determine the minimum number of parity/check bits required to SEC-correct a 64-bit data word, then state how many total bits SECDED needs. Show the inequality you solve. (5)
(b) A 64-bit word is protected with 8 check bits (SECDED). The receiver computes a non-zero syndrome and finds the overall parity check passes (even). What does the controller conclude, and what action does it take? (4)
(c) A DRAM system has a raw single-bit error rate of errors per bit per hour. With of data bits protected by SECDED (per 64-bit word), estimate the expected number of uncorrectable (double-bit within one word) events over the array is negligible for single bits — instead compute the expected number of single-bit errors corrected per hour across the array. (5)
Answer keyMark scheme & solutions
Question 1 (15)
(a) Even distribution: . (3)
- Correct division (2), value with units (1).
(b) Total refresh time per window . Overhead . (4)
- Total refresh time (2), ratio (1), percentage (1).
(c) . Halving halves : new . The same 8192 rows must now be refreshed twice as often, so refresh time per window is unchanged per window but windows are half as long → overhead doubles to . (5)
- ms (2), reasoning overhead doubles (2), value (1).
(d) Any valid: e.g. Per-bank / distributed refresh or temperature-compensated refresh (extending interval at low temp) or bank-grouping so other banks serve requests during a bank's refresh. Why: it overlaps refresh with useful access / reduces number/frequency of forced-idle refreshes. (3)
Question 2 (14)
(a) During read, the access transistor forms a voltage divider between the pre-charged bitline (pulling the '0' node up) and the driver transistor (pulling it down). If the '0' node rises above the switching threshold of the opposite inverter, the cross-coupled feedback can regeneratively flip the state. The robustness metric is the Static Noise Margin (SNM) (read SNM). (4)
- Divider/disturb mechanism (2), regenerative flip (1), SNM named (1).
(b) . (5)
- Formula (2), substitution (2), ns (1).
(c) Wider access transistor increases read current (faster) but also strengthens its pull-up effect on the '0' storage node, raising that node's voltage during read → lower cell ratio (driver-to-access strength) → reduced read SNM → higher probability of read-disturb flip. It is a speed-vs-stability trade-off. (5)
- Faster read (1), raises '0' node (2), cell ratio & SNM degrade (2).
Question 3 (16)
(a) TLC = 3 bits → levels; distinguishing 8 levels needs read reference voltages. (3)
(b) TLC: between adjacent centers. MLC (4 levels): . MLC spacing is wider, giving much larger margin. (4)
- TLC V (2), MLC V (1), comparison (1).
(c) Total bytes that can be written = (host-visible endurance before WAF). Effective daily flash writes . Flash write budget . Lifetime . (6)
- WAF applied (2), total budget (2), days→years (2).
(d) TLC packs 8 levels in the same threshold window, so voltage margins between levels are much smaller; oxide degradation and trapped charge from cycling shift thresholds enough to cross narrower margins far sooner, so fewer P/E cycles are tolerated. (3)
Question 4 (16)
(a) Transfers/s (DDR). Bandwidth . (4)
- DDR doubling (2), ×8 bytes (1), value (1).
(b) Clock period . . (3)
(c) . Burst of 8 transfers, each half a cycle . Total . (5)
- RCD+CL (2), burst time (2), total (1).
(d) channels. (2) Real sustained falls short because of refresh cycles, bank/row activation overhead, read-write bus turnaround, and access-pattern non-idealities that prevent 100% bus utilization. (2)
Question 5 (14)
(a) SEC Hamming needs with . : ✓ (and : ✗). So SEC needs 7 check bits. SECDED adds one overall parity bit → 8 check bits, total bits. (5)
- Inequality (2), (1), SECDED +1 (1), total 72 (1).
(b) Non-zero syndrome but overall parity even ⇒ an even number of errors (two bit errors) occurred → double-bit error detected, uncorrectable. Controller flags an uncorrectable error (UE) — logs/raises a machine-check, does not attempt (mis)correction. (4)
(c) Total data bits bits . Expected single-bit errors/hr per hour. (≈ corrected errors/hour, i.e. about one every hours.) (5)
- Bit count (2), multiply by rate (2), value (1).
[
{"claim":"Q1a refresh interval = 7.8125 us","code":"interval=Rational(64,1000)/8192; result = abs(float(interval)-7.8125e-6)<1e-12"},
{"claim":"Q1b refresh overhead = 0.96%","code":"ov=(8192*75e-9)/(64e-3); result = abs(ov*100-0.96)<1e-6"},
{"claim":"Q2b wordline time = 0.5 ns","code":"t=(200e-15*0.1)/(40e-6); result = abs(t-0.5e-9)<1e-15"},
{"claim":"Q3c lifetime approx 16.4 years","code":"days=(256*3000)/(40*3.2); yrs=days/365; result = abs(yrs-16.438)<0.01"},
{"claim":"Q4a DDR4-3200 bandwidth = 25.6 GB/s","code":"bw=1600e6*2*8; result = abs(bw-25.6e9)<1"},
{"claim":"Q4c total random latency = 30.0 ns","code":"per=1/1600e6; lat=(22+22)*per + 8*(per/2); result = abs(lat*1e9-30.0)<1e-6"},
{"claim":"Q5a SEC needs 7 check bits for 64 data bits","code":"k=next(k for k in range(1,20) if 2**k>=64+k+1); result = (k==7)"},
{"claim":"Q5c single-bit corrected errors per hour approx 5.498e-3","code":"bits=64*2**30*8; e=1e-14*bits; result = abs(e-5.498e-3)<1e-4"}
]