Neuromorphic Computing Blog

In-Memory Computing: Bringing Memory and Processing Together

One of the biggest bottlenecks in today’s computers isn’t how fast they can calculate — it’s how often they have to move data between the processor and the memory. This constant back-and-forth, known as the von Neumann bottleneck, wastes time and energy.

In-memory computing aims to solve this by doing something radically different:
💡 Perform the computation directly where the data is stored.


Why Moving Data is a Problem

In a traditional computer:

  1. Data is stored in memory (RAM, cache, or storage).
  2. The processor fetches the data from memory.
  3. The processor processes the data.
  4. Results are sent back to memory.

For small tasks, this works fine. But modern AI workloads deal with billions of data points. Fetching and writing data over and over wastes huge amounts of energy.


How In-Memory Computing Works

Instead of separating memory and logic:

Diagram comparing von Neumann architecture versus computational memory
von-Neumann-vs-computational-memory.png

Why It’s Important for Neuromorphic Computing

Neuromorphic chips mimic the brain’s neuron–synapse structure. In biology:

In-memory computing is the hardware counterpart to that idea — the “synapse” stores and processes at the same location. This:

ReRAM offers high-density non-volatile storage and the potential for efficient in-memory computing, while ReRAM-enabled accelerators can mitigate the von Neumann bottleneck.


ReRAM (ReRAM/Memristor)-Based In-Memory Computing

What it is: Resistive RAM (ReRAM) — often implemented with memristive devices — stores information as different resistance states. By applying voltages across crossbar arrays, large numbers of multiply–accumulate (MAC) operations can be performed in parallel using Ohm’s and Kirchhoff’s laws. ReRAM offers high-density non-volatile storage and the potential for efficient in-memory computing, while ReRAM-enabled accelerators can solve the von Neumann bottleneck

Memristor-based in-memory computing crossbar array
Memristor-based in-memory computing array.
Review of memristor devices in neuromorphic computing — Li et al., J. Phys. D, 2018.

SRAM-Based In-Memory Computing

What it is: Digital/bitline compute primitives are embedded into standard SRAM arrays (e.g., 6T/8T/10T cells) to perform operations like bitline summation, XNOR–popcount, and approximate MACs without moving data to external ALUs.

SRAM-based in-memory computing diagram with multiple-cell operation
SRAM-based computing
SRAM-based computing

Quick Comparison: ReRAM vs. SRAM for In-Memory Compute


Optimization


Putting In-Memory Computing Togther with a NoSQL DB

No One-Size-Fits-All Solution. Putting our entire data purely in-memory can be too costly, especially for data that were not going to access frequently.

  • The Challenge: Complexity associated with synchronising two separate data systems.
  • The Solution: Have an implicit plug-in.

Real-World Examples


2D Materials in In-Memory Computing

Recent research has explored the use of two-dimensional (2D) materials, such as graphene, transition metal dichalcogenides (TMDs), and hexagonal boron nitride, in developing next-generation in-memory computing devices. These materials offer exceptional electrical, optical, and mechanical properties, enabling ultra-thin, high-density, and energy-efficient memory arrays. Their atomic-scale thickness allows for precise control over charge transport, making them promising candidates for scalable neuromorphic hardware.

Studies have evaluated various 2D memory technologies for performance, endurance, and compatibility with in-memory processing architectures, showing strong potential for both AI acceleration and edge computing applications.

Reference: Sun, Yibo; Wang, Shuiyuan; Zhang, Qiran; Zhou, Peng. Evaluation of different 2D memory technologies for in-memory computing, Device, 2(12), 2024. Elsevier.