Level 5 — MasteryMemory Technologies

Memory Technologies

90 minutes60 marksprintable — key stays hidden on paper

Level 5 — Mastery (cross-domain: physics, math, coding, proof) Time limit: 90 minutes Total marks: 60

Instructions: Answer all three questions. Show all derivations. Where code is requested, pseudocode or Python is acceptable but must be logically complete. Use ...... for math.


Question 1 — DRAM Charge Leakage & Refresh (20 marks)

A DRAM 1T1C cell stores charge on a capacitor C=25 fFC = 25\ \text{fF} at a full-cell voltage VDD=1.2 VV_{DD} = 1.2\ \text{V}. Leakage through the access transistor and junction is modeled as an exponential decay through an effective resistance R=8×1012 ΩR = 8\times10^{12}\ \Omega: V(t)=VDDet/(RC).V(t) = V_{DD}\, e^{-t/(RC)}. The sense amplifier reliably distinguishes a stored "1" only while the cell voltage stays above the reference threshold Vref=0.6 VV_{ref} = 0.6\ \text{V} (midpoint).

(a) Derive the maximum retention time trett_{ret} (time for VV to fall from VDDV_{DD} to VrefV_{ref}). Give a symbolic expression, then a numeric value in ms. (5)

(b) A device has 2162^{16} rows that must each be refreshed within the retention window. If the whole array must be refreshed within trett_{ret} using distributed refresh (one row refresh command every tREFIt_{REFI}), compute the refresh interval tREFIt_{REFI} in ns. (4)

(c) Each refresh operation busies the data bus for tRFC=350 nst_{RFC} = 350\ \text{ns} (using all-bank refresh covering 8 rows per command). Compute the refresh overhead (fraction of time the array is unavailable due to refresh). Comment on how this scales as capacitor size shrinks with technology nodes. (6)

(d) Prove that for the exponential model the fractional retention time tret/(RC)t_{ret}/(RC) is independent of CC, and explain the physical significance for scaling given that both CC and leakage-limited RR change with node. (5)


Question 2 — Multi-Level Cell Flash & Error Correction (22 marks)

An MLC NAND flash cell stores 2 bits by placing the floating-gate threshold voltage VTV_T into one of 4 levels. The programmed VTV_T distributions are Gaussian with means at {0.4,1.2,2.0,2.8}\{0.4, 1.2, 2.0, 2.8\} V and common standard deviation σ=0.15 V\sigma = 0.15\ \text{V}. Read reference voltages are placed at the midpoints between adjacent means.

(a) For two adjacent levels, derive the raw bit-error probability that a cell drifts across the nearest reference. Express it using the QQ-function / erfc, then evaluate numerically. (6)

(b) A page is 4 KiB (32768 bits). Using your per-level error probability as an upper bound on the raw per-bit error rate (RBER), estimate the expected number of bit errors per page. (4)

(c) A BCH ECC scheme corrects up to tt bit errors per 512-byte (4096-bit) codeword. Using a Poisson model with mean λ=RBER×4096\lambda = \text{RBER}\times 4096, derive the uncorrectable-codeword probability Puc=P(X>t)P_{uc} = P(X > t). Give the formula and evaluate for t=8t = 8. (6)

(d) Explain quantitatively why moving from MLC → TLC → QLC forces stronger ECC: relate the number of levels LL to the mean-spacing Δ\Delta (fixed voltage window WW) and hence to RBER. Derive how Δ\Delta scales with LL and argue the exponential impact on error rate. (6)


Question 3 — SRAM, CAM & Memory Bandwidth (18 marks)

(a) Draw/describe the 6T SRAM cell and prove the read stability condition: show why the two cross-coupled inverters hold state, and derive the constraint on the pull-down-to-access transistor strength ratio (cell ratio) needed to keep the read "0" node below the switching threshold. State the qualitative condition. (6)

(b) A DDR5 module runs at an effective data rate of 6400 MT/s6400\ \text{MT/s} on a 64-bit bus. Compute the peak theoretical bandwidth in GB/s (use 1 GB=1091\ \text{GB} = 10^9 bytes). Then, if the memory controller sustains only 68% of peak due to tRASt_{RAS}/tRPt_{RP} overheads and refresh, give the sustained bandwidth. (4)

(c) A CAM (content-addressable memory) is used as a fully-associative cache tag store with 1024 entries, each 40-bit tags. Explain how a match line + priority encoder resolves a lookup in O(1)O(1) time, and contrast the energy/area cost of CAM vs SRAM. Then compute how many 2-input XOR/comparison gates (order of magnitude) are activated per lookup. (8)

Answer keyMark scheme & solutions

Question 1

(a) Set V(tret)=VrefV(t_{ret}) = V_{ref}: Vref=VDDetret/RCV_{ref} = V_{DD}e^{-t_{ret}/RC}. tret=RCln ⁣(VDDVref).t_{ret} = RC\ln\!\left(\frac{V_{DD}}{V_{ref}}\right). (2 marks derivation) RC=8×1012×25×1015=0.2 sRC = 8\times10^{12}\times25\times10^{-15} = 0.2\ \text{s}. (1) ln(1.2/0.6)=ln2=0.6931\ln(1.2/0.6)=\ln 2 = 0.6931. (1) tret=0.2×0.6931=0.13863 s=138.6 mst_{ret} = 0.2\times0.6931 = 0.13863\ \text{s} = 138.6\ \text{ms}. (1)

(b) All 216=655362^{16}=65536 rows in trett_{ret}: one row every tREFI=tret/65536=0.13863/65536=2.1153×106 s2115 nst_{REFI} = t_{ret}/65536 = 0.13863/65536 = 2.1153\times10^{-6}\ \text{s} \approx 2115\ \text{ns}. (4) (This is comparable to the JEDEC 7.8 μs7.8\ \mu s figure scaled for row count / margin.)

(c) With all-bank refresh covering 8 rows/command, number of commands per window =65536/8=8192= 65536/8 = 8192. Time busy =8192×350 ns=2.8672 ms= 8192\times350\ \text{ns} = 2.8672\ \text{ms}. (2) Overhead =2.8672/138.63=0.020682.07%= 2.8672/138.63 = 0.02068 \approx 2.07\%. (2) Scaling comment: as CC shrinks, stored charge Q=CVQ=CV drops, retention worsens (shorter trett_{ret}), so tREFIt_{REFI} falls and tRFCt_{RFC} grows with row count → refresh overhead rises, eating bandwidth and power. This drives temperature-compensated refresh and larger cells / trench capacitors. (2)

(d) From (a), tret/(RC)=ln(VDD/Vref)t_{ret}/(RC) = \ln(V_{DD}/V_{ref}), a ratio of voltages only — no CC or RR. Thus the number of time constants is fixed by the voltage margin, independent of CC. (3) Physical significance: absolute tret=RCln()t_{ret}=RC\ln(\cdot) still depends on the product RCRC. As nodes scale, CC decreases but leakage RR also changes (often decreasing due to thinner oxides / higher fields), so RCRC typically shrinks → retention degrades even though the fractional margin form is invariant. Designers must preserve the RCRC product, not just the voltage ratio. (2)


Question 2

(a) Reference sits at midpoint, so distance from a level mean to nearest ref is Δ/2\Delta/2 where Δ=0.8\Delta = 0.8 V spacing, i.e. distance =0.4=0.4 V. Error when a Gaussian sample crosses: Pe=Q ⁣(Δ/2σ)=12erfc ⁣(Δ/2σ2).P_e = Q\!\left(\frac{\Delta/2}{\sigma}\right) = \tfrac12\,\text{erfc}\!\left(\frac{\Delta/2}{\sigma\sqrt2}\right). (3) Δ/2σ=0.40.15=2.6667\frac{\Delta/2}{\sigma} = \frac{0.4}{0.15} = 2.6667. (1) Q(2.6667)=12erfc(2.6667/2)=12erfc(1.8856)Q(2.6667) = \tfrac12\text{erfc}(2.6667/\sqrt2)=\tfrac12\text{erfc}(1.8856). 3.83×103\approx 3.83\times10^{-3}. (2) (Levels adjacent on both sides double for interior levels, but use this as per-bit bound.)

(b) RBER 3.83×103\approx 3.83\times10^{-3}. Expected errors per 32768-bit page =32768×3.83×103125.5= 32768\times3.83\times10^{-3} \approx 125.5 bit errors. (4)

(c) Poisson mean λ=RBER×4096=3.83×103×4096=15.69\lambda = \text{RBER}\times4096 = 3.83\times10^{-3}\times4096 = 15.69. (1) Puc=P(X>t)=1k=0tλkeλk!.P_{uc}=P(X>t)=1-\sum_{k=0}^{t}\frac{\lambda^k e^{-\lambda}}{k!}. (3) For t=8t=8, λ=15.69\lambda=15.69: Puc=1k=0815.69ke15.69k!0.978P_{uc}=1-\sum_{k=0}^{8}\frac{15.69^k e^{-15.69}}{k!}\approx 0.978. (2) Interpretation: t=8t=8 is far too weak here (λt\lambda\gg t) → almost every codeword fails; MLC needs much stronger ECC (or lower RBER). (bonus insight)

(d) Fixed window WW split into LL levels: mean spacing Δ=W/(L1)\Delta = W/(L-1). So MLC (L=4L=4): Δ=W/3\Delta=W/3; TLC (L=8L=8): Δ=W/7\Delta=W/7; QLC (L=16L=16): Δ=W/15\Delta=W/15. (3) RBER =Q(Δ/2σ)=Q(\Delta/2\sigma). Since QQ decays like ex2/2e^{-x^2/2}, halving Δ\Delta roughly squares-then-worse the error. Going MLC→TLC more than doubles L1L-1 (3→7), so Δ\Delta shrinks by ~2.3×, and the exponent Δ2\propto \Delta^2 collapses → RBER rises by orders of magnitude, demanding LDPC / stronger BCH. (3)


Question 3

(a) 6T cell: two cross-coupled inverters (M1/M2 pull-down NMOS, M3/M4 pull-up PMOS) storing complementary nodes Q, Q̄; two access NMOS (M5/M6) gated by the word line connecting Q/Q̄ to bit lines BL/BL̄. (2) Hold: positive feedback — if Q high, it turns off the opposite pull-down keeping Q̄ low, which keeps Q high; a stable bistable latch. (1) Read stability: during read both BL precharged high; the "0" storage node (say Q=0) is pulled up through the access transistor M5 while the pull-down M1 tries to keep it low. The node voltage rises to a divider value set by M5 (access) vs M1 (pull-down). To avoid flipping, this bump must stay below the inverter trip point VtripV_{trip}. Requires cell ratio β=(W/L)pulldown(W/L)access>1\beta = \frac{(W/L)_{pulldown}}{(W/L)_{access}} > 1 (typically 1.2\approx1.222): pull-down stronger than access. (3)

(b) Peak =6400×106 transfers/s×64 bits÷8=6400×106×8 B= 6400\times10^6\ \text{transfers/s}\times64\ \text{bits} \div 8 = 6400\times10^6\times8\ \text{B} =51.2×109 B/s=51.2 GB/s= 51.2\times10^9\ \text{B/s} = 51.2\ \text{GB/s}. (2) Sustained =0.68×51.2=34.816 GB/s= 0.68\times51.2 = 34.816\ \text{GB/s}. (2)

(c) Each CAM entry compares its 40-bit tag against the search word in parallel via a match line: any mismatching bit pulls the precharged match line low; a fully matching row keeps it high. All 1024 rows compare simultaneously → constant time. A priority encoder converts the (one-hot) match lines to an address in O(1)O(1). (3) Cost: CAM cells are ~2–3× the transistors of SRAM (extra compare logic per bit), match-line precharge/discharge every cycle → high dynamic energy; area and power scale with entries×width. SRAM only reads one addressed row. (2) Gate count: 10241024 entries ×40\times 40 bits =40960= 40960 bit-comparisons (each an XNOR/XOR) activated per lookup O(4×104)\Rightarrow \mathcal{O}(4\times10^4) comparison gates. (3)

[
 {"claim":"DRAM retention time = RC ln(VDD/Vref) = 138.6 ms","code":"R=8e12; C=25e-15; VDD=1.2; Vref=0.6; tret=R*C*log(VDD/Vref); result = abs(float(tret)-0.13863)<1e-4"},
 {"claim":"Refresh interval tREFI ~ 2115 ns","code":"R=8e12; C=25e-15; tret=R*C*log(2); trefi=tret/65536; result = abs(float(trefi)*1e9-2115)<5"},
 {"claim":"Refresh overhead ~ 2.07%","code":"R=8e12;C=25e-15;tret=R*C*log(2);busy=(65536/8)*350e-9;ov=busy/tret; result = abs(float(ov)-0.0207)<5e-4"},
 {"claim":"MLC raw error prob Q(0.4/0.15) ~ 3.83e-3","code":"from sympy import erfc,sqrt,Rational; x=Rational(4,10)/Rational(15,100); Pe=(erfc(x/sqrt(2))/2).evalf(); result = abs(float(Pe)-3.83e-3)<1e-4"},
 {"claim":"DDR5 6400MT/s x64bit peak = 51.2 GB/s","code":"bw=6400e6*64/8; result = abs(bw-51.2e9)<1e6"},
 {"claim":"Sustained 68% = 34.816 GB/s","code":"result = abs(0.68*51.2-34.816)<1e-6"},
 {"claim":"CAM lookup activates ~40960 comparisons","code":"result = 1024*40==40960"}
]