semiconductor cim
**Compute-in-memory (CIM) and processing-in-memory (PIM)** are semiconductor architecture paradigms that perform arithmetic operations inside or directly beside the memory array, eliminating the dominant energy and latency cost of moving data between memory and a separate processor. In conventional Von Neumann architectures, 60-70% of inference energy is consumed reading neural network weights from DRAM — CIM/PIM attacks this directly.
```svg
```
**The memory wall is the fundamental problem.** In autoregressive LLM inference and most edge AI workloads, the compute units are starved waiting for weight data. DRAM bandwidth is limited by off-chip signaling and pin count; on-chip SRAM bandwidth is limited by array size. The Von Neumann model requires every weight to traverse the memory bus to the ALU on every inference step, regardless of how fast the arithmetic can run. CIM eliminates this bus entirely by making the memory array itself perform the multiply-accumulate (MAC) operation.
**SRAM CIM works by performing analog computation on the bitlines.** In a conventional SRAM read, activating a word-line drives all bitcells in a row onto shared bitlines, and a sense amplifier detects the bit value. In analog CIM, multiple rows are activated simultaneously with partial word-line voltages corresponding to input activation values. Each bitcell contributes a current proportional to its stored weight times the applied voltage. The bitline current sums these contributions — performing a dot product in the physics of the wire, not in a separate multiplier. An ADC at the bottom of each bitline column converts the analog sum to a digital partial result.
**Digital CIM variants** place a small digital accumulator in the periphery of each bitcell column rather than using analog current summation. This avoids ADC noise and the analog precision limitations but sacrifices some energy efficiency. MIT, Stanford, TSMC, and ARM have all published silicon results for both approaches, with digital CIM achieving 10-100 TOPS/W at INT4 precision versus 1-3 TOPS/W for a GPU doing the same inference task.
**Near-memory PIM** takes a different path: rather than computing inside the array, it places a digital processor die on top of or beside the DRAM stack. Samsung's HBM-PIM (Aquabolt-PIM) adds a programmable AI core on the logic die of an HBM stack, giving the processor access to DRAM bandwidth without the off-chip bottleneck. UPMEM places RISC cores inside DRAM rows, targeting genomics and database workloads that are purely memory-bandwidth-limited.
**Key challenges** limit deployment. Analog CIM precision tops out at 4-8 bits, which is adequate for INT4/INT8 inference but not for FP16 training. Each bitline column requires an ADC, and ADC arrays are area-intensive. NVM-based CIM (Flash, RRAM, PCM) stores weights non-volatitely — eliminating DRAM access entirely — but write endurance limits in-situ retraining and analog device variability reduces effective precision. The programming model is non-standard: existing GPU software stacks cannot directly target CIM hardware.
**Commercial CIM products** include Mythic's M1108 AMP (Flash-based analog MAC, 25 TOPS at 3W), Syntiant's NDP (SRAM CIM for always-on keyword detection at sub-mW), and IBM's phase-change memory CIM research chips for transformer inference. Samsung and SK Hynix both have PIM roadmaps targeting HBM4 and beyond.