Level 4 — ApplicationMemory Technologies

Memory Technologies

60 minutes75 marksprintable — key stays hidden on paper

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 81928192 rows must have every row refreshed within a retention time of 64 ms64\text{ ms}. Each refresh operation (one row) occupies the memory for 75 ns75\text{ ns}, 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 tret=CΔVIleakt_{ret} = \dfrac{C \cdot \Delta V}{I_{leak}} where ΔV\Delta V is the tolerable voltage droop. Assuming ΔV\Delta V 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 VDD=1.0 VV_{DD} = 1.0\text{ V} and then asserting the wordline.

(a) During a read, the cell node storing logic '0' rises above 0 V0\text{ V} 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 100 mV\ge 100\text{ mV}. The effective bitline capacitance is 200 fF200\text{ fF} and the cell sinks a read current of 40 μA40\ \mu\text{A}. 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 256256 pages; each page stores 16 KiB16\text{ KiB} 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 4.0 V4.0\text{ V}. 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 30003000 program/erase (P/E) cycles per block. A workload writes 40 GB40\text{ GB} per day to a 256 GB256\text{ GB} drive. Assuming a write amplification factor of 3.23.2 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 1600 MHz1600\text{ MHz} (I/O clock), transfers data on both clock edges, and has a 6464-bit data bus.

(a) Compute the peak theoretical bandwidth in GB/s (use 1 GB=1091\text{ GB} = 10^9 bytes). (4)

(b) The module's data-sheet timings are CL=22\text{CL}=22, 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: tRCD+tCL+burst transfer timet_{RCD} + t_{CL} + \text{burst transfer time}, with tRCD=22t_{RCD}=22 cycles, tCL=22t_{CL}=22 cycles, and a burst length of 8 transfers. Compute the total latency in nanoseconds. (Bus clock 1600 MHz1600\text{ MHz}; each transfer takes half a clock cycle.) (5)

(d) A system needs 50 GB/s50\text{ GB/s} 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 101410^{-14} errors per bit per hour. With 64 GiB64\text{ GiB} 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: t=64 ms8192=7.8125 μst = \dfrac{64\text{ ms}}{8192} = 7.8125\ \mu\text{s}. (3)

  • Correct division (2), value with units (1).

(b) Total refresh time per window =8192×75 ns=614,400 ns=0.6144 ms= 8192 \times 75\text{ ns} = 614{,}400\text{ ns} = 0.6144\text{ ms}. Overhead =0.614464=0.0096=0.96%= \dfrac{0.6144}{64} = 0.0096 = 0.96\%. (4)

  • Total refresh time (2), ratio (1), percentage (1).

(c) tretCt_{ret}\propto C. Halving CC halves trett_{ret}: new tret=32 mst_{ret}=32\text{ ms}. 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 1.92%1.92\%. (5)

  • tret=32t_{ret}=32 ms (2), reasoning overhead doubles (2), value 1.92%1.92\% (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) t=CΔVI=200 fF×100 mV40 μA=200×1015×0.140×106t=\dfrac{C\,\Delta V}{I}=\dfrac{200\text{ fF}\times 100\text{ mV}}{40\ \mu\text{A}}=\dfrac{200\times10^{-15}\times0.1}{40\times10^{-6}} =2×10144×105=5×1010 s=0.5 ns=\dfrac{2\times10^{-14}}{4\times10^{-5}}=5\times10^{-10}\text{ s}=0.5\text{ ns}. (5)

  • Formula (2), substitution (2), 0.50.5 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 β\beta (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 → 23=82^3 = 8 levels; distinguishing 8 levels needs 81=78-1 = 7 read reference voltages. (3)

(b) TLC: 4.081=4.07=0.571 V\dfrac{4.0}{8-1}=\dfrac{4.0}{7}=0.571\text{ V} between adjacent centers. MLC (4 levels): 4.041=4.03=1.333 V\dfrac{4.0}{4-1}=\dfrac{4.0}{3}=1.333\text{ V}. MLC spacing is 2.33×\approx 2.33\times wider, giving much larger margin. (4)

  • TLC 0.5710.571 V (2), MLC 1.3331.333 V (1), comparison (1).

(c) Total bytes that can be written = 256 GB×3000=768,000 GB256\text{ GB}\times 3000 = 768{,}000\text{ GB} (host-visible endurance before WAF). Effective daily flash writes =40 GB×3.2=128 GB/day= 40\text{ GB}\times 3.2 = 128\text{ GB/day}. Flash write budget =256×3000=768,000 GB= 256\times3000 = 768{,}000\text{ GB}. Lifetime =768,000128=6000 days=600036516.4 years=\dfrac{768{,}000}{128}=6000\text{ days}=\dfrac{6000}{365}\approx 16.4\text{ years}. (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 =1600×106×2=3.2×109= 1600\times10^6 \times 2 = 3.2\times10^9 (DDR). Bandwidth =3.2×109×8 bytes=25.6×109 B/s=25.6 GB/s= 3.2\times10^9 \times 8\text{ bytes} = 25.6\times10^9\text{ B/s}=25.6\text{ GB/s}. (4)

  • DDR doubling (2), ×8 bytes (1), value (1).

(b) Clock period =11600 MHz=0.625 ns=\dfrac{1}{1600\text{ MHz}}=0.625\text{ ns}. tCL=22×0.625=13.75 nst_{CL}=22\times0.625=13.75\text{ ns}. (3)

(c) tRCD+tCL=(22+22)×0.625=44×0.625=27.5 nst_{RCD}+t_{CL}=(22+22)\times0.625=44\times0.625=27.5\text{ ns}. Burst of 8 transfers, each half a cycle =8×0.6252=8×0.3125=2.5 ns=8\times\dfrac{0.625}{2}=8\times0.3125=2.5\text{ ns}. Total =27.5+2.5=30.0 ns=27.5+2.5=30.0\text{ ns}. (5)

  • RCD+CL (2), burst time (2), total (1).

(d) 50/25.6=1.95=2\lceil 50/25.6\rceil = \lceil1.95\rceil = 2 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 2kn+k+12^k \ge n+k+1 with n=64n=64. k=7k=7: 12872128 \ge 72 ✓ (and k=6k=6: 647164\ge71 ✗). So SEC needs 7 check bits. SECDED adds one overall parity bit → 8 check bits, total 64+8=7264+8=72 bits. (5)

  • Inequality (2), k=7k=7 (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 =64 GiB×8=64×230×8=5.4976×1011=64\text{ GiB}\times 8 = 64\times2^{30}\times8 = 5.4976\times10^{11} bits 5.498×1011\approx 5.498\times10^{11}. Expected single-bit errors/hr =1014×5.498×1011=5.498×103=10^{-14}\times5.498\times10^{11}=5.498\times10^{-3} per hour. (≈ 0.00550.0055 corrected errors/hour, i.e. about one every 182182 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"}
]