In-memory computing

What Is In-Memory Computing?

In-memory computing, also called compute-in-memory or CIM, is a computer architecture approach in which arithmetic and logic operations are performed inside or immediately adjacent to the memory array that holds the data, rather than in a separate processor that must first fetch the data across a bus. It is a deliberate departure from the von Neumann organization that has governed general-purpose computing since the 1940s, in which a physically distinct processing unit and memory exchange operands over a shared channel. The term also has an older, looser sense in data management, where it refers to keeping a working dataset in DRAM rather than on disk, but in computer architecture it now denotes the hardware technique.

The motivating problem is the memory wall. Processor throughput has grown far faster than memory bandwidth and latency have improved, so for data-intensive workloads the machine spends most of its time and energy moving operands rather than computing on them. In deep learning inference, where the dominant operation is multiplying a large weight matrix by an activation vector, data movement can account for the large majority of total energy consumption. In-memory computing responds by shortening or eliminating that movement rather than by making the arithmetic unit faster.

Analog Crossbar Computation

The most studied form of in-memory computing uses a crossbar array of resistive memory devices to perform vector-matrix multiplication in a single step. Matrix weights are stored as device conductances at each crosspoint, input values are applied as voltages on the rows, and Ohm's law produces a current at each junction proportional to the product of voltage and conductance. Kirchhoff's current law then sums those products along each column, so the array computes an entire matrix product in the analog domain in the time it takes the currents to settle. Work on mixed-mode logic processing in memristive crossbar arrays describes the transistor-and-resistor cell structures used to make this practical, along with the peripheral digital-to-analog and analog-to-digital converters that dominate area and power in real designs.

Analog operation brings analog problems. Sneak path currents through unselected devices corrupt read accuracy, device conductance drifts with time and temperature, cycle-to-cycle and device-to-device variability limits effective precision to a few bits, and converter overhead can erode the energy advantage if the array is too small. Reviews of memristor-accelerated machine learning hardware survey the circuit and algorithmic countermeasures, including differential cell pairs, on-chip calibration, and training methods that make networks tolerant of weight noise.

Device Technologies

Several memory technologies serve as the compute element. Resistive RAM stores state as a conductive filament in a metal oxide. Phase-change memory uses the resistance contrast between amorphous and crystalline chalcogenide. Magnetoresistive RAM stores state in magnetic tunnel junctions and offers strong endurance at lower resistance contrast. Ferroelectric field-effect transistors and floating-gate flash cells also support multilevel conductance. SRAM-based designs sacrifice density for full CMOS compatibility and are the closest to commercial deployment. Editorial surveys of memristor computing for neuromorphic systems note that the same crossbar primitive supports both conventional neural network inference and spiking architectures that encode information in event timing.

Digital and Near-Memory Approaches

Not every design computes in the analog domain. Bitwise in-memory logic performs AND, OR, and XOR operations using the sense amplifiers of a standard DRAM or SRAM array, which suits database filtering, encryption, and bioinformatics string matching. Processing-near-memory places conventional logic on the base die of a high-bandwidth memory stack, capturing much of the bandwidth benefit while preserving digital precision and existing programming models.

Applications

In-memory computing has applications in a range of areas, including:

  • Deep neural network inference at the edge, where energy budgets are tight
  • Neuromorphic and spiking neural network hardware
  • Signal processing tasks dominated by matrix multiplication, such as beamforming
  • Database scan, filter, and encryption acceleration
  • Scientific computing kernels including sparse linear algebra
  • Hardware security primitives built on device-level randomness
Loading…