Current-domain vs charge-domain
In current-domain analog CIM, weights are stored as conductances (resistances) in a crossbar; applying input voltages produces currents that sum on a wire (Ohm’s law + Kirchhoff’s law = analog MAC). The problem: the devices draw continuous static current, conductance is hard to set precisely and drifts, and device-to-device variability injects noise. RRAM, PCM, and floating-gate flash (Mythic) all live here, and all fought variability and endurance.
Two implementations
Both share the charge-domain advantage (precision, linearity, low static power); they differ on the storage element (dedicated non-volatile device vs standard volatile SRAM) and therefore on density and process complexity.
The catch
Charge-domain makes the multiply nearly free, but the result still has to be read out of the analog domain into digital — and the analog-to-digital converters do not get cheaper just because the MAC moved to the charge domain. The ADC Bottleneck (analog in-memory compute) is the binding constraint on all analog CIM, charge-domain included. Charge-domain moves the energy bottleneck from the array to the periphery; whether it removes it at scale is the open question.