Memory-Centric Computing: Solving Computing's Memory Problem
Journal:
arXiv
Published Date:
May 1, 2025
Abstract
Computing has a huge memory problem. The memory system, consisting of
multiple technologies at different levels, is responsible for most of the
energy consumption, performance bottlenecks, robustness problems, monetary
cost, and hardware real estate of a modern computing system. All this becomes
worse as modern and emerging applications become more data-intensive (as we
readily witness in e.g., machine learning, genome analysis, graph processing,
and data analytics), making the memory system an even larger bottleneck. In
this paper, we discuss two major challenges that greatly affect computing
system performance and efficiency: 1) memory technology & capacity scaling (at
the lower device and circuit levels) and 2) system and application performance
& energy scaling (at the higher levels of the computing stack). We demonstrate
that both types of scaling have become extremely difficult, wasteful, and
costly due to the dominant processor-centric design & execution paradigm of
computers, which treats memory as a dumb and inactive component that cannot
perform any computation. We show that moving to a memory-centric design &
execution paradigm can solve the major challenges, while enabling multiple
other potential benefits. In particular, we demonstrate that: 1) memory
technology scaling problems (e.g., RowHammer, RowPress, Variable Read
Disturbance, data retention, and other issues awaiting to be discovered) can be
much more easily and efficiently handled by enabling memory to autonomously
manage itself; 2) system and application performance & energy efficiency can,
at the same time, be improved by orders of magnitude by enabling computation
capability in memory chips and structures (i.e., processing in memory). We
discuss adoption challenges against enabling memory-centric computing, and
describe how we can get there step-by-step via an evolutionary path.