Memory Technologies
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 at a full-cell voltage . Leakage through the access transistor and junction is modeled as an exponential decay through an effective resistance : The sense amplifier reliably distinguishes a stored "1" only while the cell voltage stays above the reference threshold (midpoint).
(a) Derive the maximum retention time (time for to fall from to ). Give a symbolic expression, then a numeric value in ms. (5)
(b) A device has rows that must each be refreshed within the retention window. If the whole array must be refreshed within using distributed refresh (one row refresh command every ), compute the refresh interval in ns. (4)
(c) Each refresh operation busies the data bus for (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 is independent of , and explain the physical significance for scaling given that both and leakage-limited 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 into one of 4 levels. The programmed distributions are Gaussian with means at V and common standard deviation . 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 -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 bit errors per 512-byte (4096-bit) codeword. Using a Poisson model with mean , derive the uncorrectable-codeword probability . Give the formula and evaluate for . (6)
(d) Explain quantitatively why moving from MLC → TLC → QLC forces stronger ECC: relate the number of levels to the mean-spacing (fixed voltage window ) and hence to RBER. Derive how scales with 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 on a 64-bit bus. Compute the peak theoretical bandwidth in GB/s (use bytes). Then, if the memory controller sustains only 68% of peak due to / 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 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 : . (2 marks derivation) . (1) . (1) . (1)
(b) All rows in : one row every . (4) (This is comparable to the JEDEC figure scaled for row count / margin.)
(c) With all-bank refresh covering 8 rows/command, number of commands per window . Time busy . (2) Overhead . (2) Scaling comment: as shrinks, stored charge drops, retention worsens (shorter ), so falls and 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), , a ratio of voltages only — no or . Thus the number of time constants is fixed by the voltage margin, independent of . (3) Physical significance: absolute still depends on the product . As nodes scale, decreases but leakage also changes (often decreasing due to thinner oxides / higher fields), so typically shrinks → retention degrades even though the fractional margin form is invariant. Designers must preserve the product, not just the voltage ratio. (2)
Question 2
(a) Reference sits at midpoint, so distance from a level mean to nearest ref is where V spacing, i.e. distance V. Error when a Gaussian sample crosses: (3) . (1) . . (2) (Levels adjacent on both sides double for interior levels, but use this as per-bit bound.)
(b) RBER . Expected errors per 32768-bit page bit errors. (4)
(c) Poisson mean . (1) (3) For , : . (2) Interpretation: is far too weak here () → almost every codeword fails; MLC needs much stronger ECC (or lower RBER). (bonus insight)
(d) Fixed window split into levels: mean spacing . So MLC (): ; TLC (): ; QLC (): . (3) RBER . Since decays like , halving roughly squares-then-worse the error. Going MLC→TLC more than doubles (3→7), so shrinks by ~2.3×, and the exponent 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 . Requires cell ratio (typically –): pull-down stronger than access. (3)
(b) Peak . (2) Sustained . (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 . (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: entries bits bit-comparisons (each an XNOR/XOR) activated per lookup 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"}
]