§10.2.2–10.2.3Processing in Memory: SRAM & DRAM

Part III Sze et al. pp. 251–255 · ~11 min read

  • current-based PIM
  • charge-based PIM
  • read disturb
  • sense amplifier
  • bit-serial DRAM logic

The previous page used exotic devices — memristors, floating gates. This page shows the same in-memory computing idea built from the two mainstream memory cells: SRAM (10.2.2) and DRAM (10.2.3). The physics changes (currents → charge), and with it the failure modes and the shape of the parallelism.

10.2.2 SRAM bit cells that multiply

SRAM-PIM designs split into the same two families introduced for NVM:

Current-based: ride the pull-down network

Encode the input activation as a voltage amplitude on the word line. That voltage controls the current through the bit cell’s pull-down network (IBC), producing a bit-line voltage drop ΔVBL proportional to the word-line voltage. Weights are ±1: storing a 0 (weight −1) steers the drop onto BL, storing a 1 (weight +1) onto BLB — and the currents of all cells on a column add (the current-based accumulation again).

two 6T cells on one column (Fig. 10.5a)WL₁ = V(in₁)stores 1|0 → w = −1I_BC,1 pulls down BLWL_N = V(in_N)stores 0|1 → w = +1I_BC,N pulls down BLBBLBLBΔV_BL / ΔV_BLB ∝ Σ of the column’s products — the dot product, differentiallythe catch: the transfer curveWLDAC code (input)ΔV_BLideal (linear)nominal — bowed + variation barsnonlinear + device-to-device spread → representing weights precisely is hard

Figure 10.5(a), distilled. Left: word-line voltage × stored ±1 weight becomes a current that drops BL or BLB; a column’s currents sum. Right: the voltage-to-current transfer curve is nonlinear and varies device to device — the current-based family’s precision ceiling.

Charge-based: compute with capacitor ratios

The transfer-curve problem motivates the charge-based family: perform the multiplication by charge sharing, where results depend on capacitance ratios — much more linear and less variation-sensitive. Figure 10.5(b)‘s 8T multiplying bit cell does a digital binary multiplication — an XNOR between the stored weight and the input activation (an AND mode also exists: hold IA high) — and conditionally charges a local capacitor; the analog accumulation then happens by charge sharing across the local capacitors of all cells on the column, producing the pre-activation value. Variants multiply directly with the bit line, or charge-share across different bit lines to accumulate.

IA1W stored (1 bit)digital XNOR(IA, W)localcap ±qIA2W stored (1 bit)digital XNOR(IA, W)localcap ±qcolumncharge sharing across caps→ pre-activation PA (analog sum)1. multiplication is DIGITAL (XNOR gate) — immune to the transfer-curve problem    2. accumulation is ANALOG (capacitance ratio) — linear

Figure 10.5(b), distilled: the 8T multiplying bit cell separates concerns — digital multiplication, analog (charge-ratio) accumulation.

The stability tax

SRAM-PIM’s characteristic hazard: read disturb . The bit-line swing must stay small or reading can flip the cross-coupled storage node — an accidental write. But PIM wants many accumulated levels on that same bit line (conventional SRAM resolves exactly one bit there). The two escapes both cost: keep the swing low (fewer psum bits), or add isolation transistors (the 8T route — bigger cell, lower area density).

Reality check — and what SRAM-PIM is actually for

SRAM-PIM results come from fabricated test chips — ahead of NVM there — but demonstrate MNIST-scale models with layer-by-layer weight updates, and often with DNN layer shapes custom-designed to fit the array for utilization: the §3.5 flexibility concern again. And the book’s footnote 10 keeps the scope honest: SRAM is less dense than DRAM, so these designs don’t attack the off-chip memory wall — they reduce on-chip data movement.

10.2.3 DRAM: logic by majority vote

DRAM-PIM computes with the humblest element of all: the bit-cell capacitor. Activate three rows at once and the bit line settles on the average of the three capacitors’ charge. If cells X, Y, Z store logical values, the sense amplifier resolves the majority function XY + YZ + ZX — and the third input is the opcode: Z = 1 makes it OR(X, Y); Z = 0 makes it AND(X, Y). Step through Figure 10.6:

Figure 10.6, step by step — compute-in-DRAM via triple-row charge sharing
X=1 cap V_DD off Y=1 cap V_DD off Z=0 cap 0 off BL = V_DD/2 SA t = 0
X=1 (V_DD), Y=1 (V_DD), Z=0 (0V). Two of three caps charged.

1t = 0 — precharge (case: Z=0, AND(X=1, Y=1))

Each bit cell’s capacitor holds V_DD for a stored one, 0 for a zero. The bit line is precharged to the midpoint V_DD/2. Access transistors are still off. Note this computation will DESTROY the stored values — real designs copy the operands first.

step 1 / 6

Why DRAM-PIM’s parallelism looks different

The book contrasts the architecture against NVM/SRAM-PIM on two axes:

  1. Operands per op: a DRAM bit-wise op consumes three storage elements from different rows; NVM/SRAM do a MAC in one element.
  2. Where accumulation happens: DRAM performs one op per bit line, accumulating over time; NVM/SRAM accumulate many MACs on the bit line at once.

So DRAM parallelism exists only across bit lines (A) — not across rows (B) too — and each MAC takes multiple cycles to assemble from bit-wise ops. The design challenge: enough bit-line parallelism (A) to still win on throughput. Further practical hurdles: capacitance variation between cells, charge leaking over time, sensing tiny bit-line excursions, and the extra memory-controller hardware to activate multiple rows and orchestrate the bit-serial MAC assembly — all energy/area overhead.

The off-the-shelf demonstration

While most DRAM-PIM results are simulated, AND/OR operation has been demonstrated on unmodified commercial DRAM — by violating the nominal timing specification: activating multiple rows in rapid succession leaves them open simultaneously, and the bit line’s charge sharing does the rest. The compute primitive is latent in the commodity part.

The three technologies, side by side

PIM by memory technology — what multiplies, what accumulates, what parallelizes (click cells)
NVM (10.2.1)SRAM (10.2.2)DRAM (10.2.3)
Multiplicationdevice physics: I = V·G (or floating-gate I-V)current: pull-down I-V · charge: digital XNORbit-wise AND/OR via 3-row majority
Accumulationcurrent summing on BL (Kirchhoff)current summing or cap charge sharingover time, across cycles
ParallelismA × B (rows and columns)A × B (rows and columns)A only (across bit lines)
Characteristic hazardwrite cost · variation · no negative Gread disturb ↔ swing ↔ arealeakage · cap variation · destructive ops
Demonstrated (at book time)sim: VGG/ImageNet · fab: MNIST, ≤32 rows, 1b cellsfabricated chips — MNIST, layer-by-layermostly sim; AND/OR shown on commodity DRAM
Dotted-underlined cells have explanations — click one.

Design takeaway

Across all three technologies the pattern repeats: the multiply is almost free, and the entire engineering fight is over the read-out path — swing, disturb, noise, converters. That fight is priced item by item in the next two pages, Design Challenges I and II.

Check yourself

Check yourself — SRAM & DRAM PIM

1.Why do charge-based SRAM designs exist at all, given current-based ones came first?

2.What is 'read disturb', and what does it cost SRAM-PIM designs?

3.In DRAM triple-row activation, three cells X, Y, Z charge-share onto the bit line. What logic function does the sense amplifier resolve, and how does Z select the operation?

4.Predict the parallelism consequence of DRAM-PIM's architecture versus NVM/SRAM-PIM.

5.What did the 'unmodified commercial DRAM' demonstration show, and how?

5 questions