  Von Neumann architecture based computers isolate/physically separate
computation and storage units i.e. data is shuttled between computation unit
(processor) and memory unit to realize logic/ arithmetic and storage functions.
This to-and-fro movement of data leads to a fundamental limitation of modern
computers, known as the memory wall. Logic in-Memory (LIM) approaches aim to
address this bottleneck by computing inside the memory units and thereby
eliminating the energy-intensive and time-consuming data movement. However,
most LIM approaches reported in literature are not truly "simultaneous" as
during LIM operation the bitcell can be used only as a Memory cell or only as a
Logic cell. The bitcell is not capable of storing both the Memory/Logic outputs
simultaneously. Here, we propose a novel 'Simultaneous Logic in-Memory' (SLIM)
methodology that allows to implement both Memory and Logic operations
simultaneously on the same bitcell in a non-destructive manner without losing
the previously stored Memory state. Through extensive experiments we
demonstrate the SLIM methodology using non-filamentary bilayer analog OxRAM
devices with NMOS transistors (2T-1R bitcell). Detailed programming scheme,
array level implementation and controller architecture are also proposed.
Furthermore, to study the impact of introducing SLIM array in the memory
hierarchy, a simple image processing application (edge detection) is also
investigated. It has been estimated that by performing all computations inside
the SLIM array, the total Energy Delay Product (EDP) reduces by ~ 40x in
comparison to a modern-day computer. EDP saving owing to reduction in data
transfer between CPU Memory is observed to be ~ 780x.
