  Processing-in-memory (PIM) turns out to be a promising solution to
breakthrough the memory wall and the power wall. While prior PIM designs yield
successful implementation of bitwise Boolean logic operations locally in
memory, it is difficult to accomplish the multiplication (MUL) instruction in a
fast and efficient manner. In this paper, we propose a new stochastic computing
(SC) design to perform MUL with in-memory operations. Instead of using the
stochastic number generators (SNGs), we harness the inherent stochasticity in
the memory write behavior of the magnetic random access memory (MRAM). Each
memory bit serves as an SC engine, performs MUL on operands in the form of
write voltage pulses, and stores the MUL outcome in-situ. The proposed design
provides up to 4x improvement in performance compared with conversational SC
approaches, and achieves 18x speedup over implementing MUL with only in-memory
bitwise Boolean logic operations.
