SPIMulator: A Spintronic Processing-In-Memory Simulator for Racetracks

Pavia Bera,Stephen Cahoon,Sanjukta Bhanja,Alex Jones
DOI: https://doi.org/10.1145/3645112
2024-02-08
ACM Transactions on Embedded Computing Systems
Abstract:In-memory processing is becoming a popular method to alleviate the memory bottleneck of the von Neumann computing model. With the goal of improving both latency and energy cost associated with such in-memory processing, emerging non-volatile memory technologies, such as Spintronic magnetic memory, are of particular interest as they can provide a near-SRAM read/write performance and eliminate nearly all static energy without experiencing any endurance limitations. Spintronic Racetrack Memory (RM) further addresses density concerns of spin-transfer torque memory (STT-MRAM). Moreover, it has recently been demonstrated that portions of RM nanowires can function as a polymorphic gate, which can be leveraged to implement multi-operand bulk bitwise operations. With more complex control, they can also be leveraged to build arithmetic integer and floating point processing in memory (PIM) primitives. This paper proposes SPIMulator, a Spintronic PIM sim ulator that can simulate the storage and PIM architecture of executing PIM commands in Racetrack memory. SPIMulator functionally models the polymorphic gate properties recently proposed for Racetrack memory, which allows transverse access that determines the number of ‘1’s in a segment of each Racetrack nanowire. From this simulation, SPIMulator can report real-time performance statistics such as cycle count and energy. Thus, SPIMulator simulates the multi-operand bit-wise logic operations recently proposed and can be easily extended to implement new PIM operations as they are developed. Due to the functional nature of SPIMulator, it can serve as a programming environment that allows development of PIM-based codes for verification of new acceleration algorithms. We demonstrate the value of SPIMulator through the modeling and estimations of performance and energy consumption of a variety of example applications, including the Advanced Encryption Standard (AES) for encryption primarily based on logical and look-up operations; multiplication of matrices, a frequent requirement in scientific, signal processing, and machine learning algorithms; and bitmap indices a common search table employed for database lookups.
computer science, software engineering, hardware & architecture
What problem does this paper attempt to address?
### Problems the paper attempts to solve The main problem that this paper attempts to solve is the **memory wall problem**, which is a side - effect of the von Neumann architecture that separates the processor from the independent memory. As the size of the data set grows, the speed difference between the processor and the memory leads to a significant bottleneck. To alleviate this bottleneck, the **Processing - In - Memory (PIM)** technology has been proposed to reduce the need for the memory bus. Specifically, the paper proposes **SPIMulator**, an emulator for simulating Spintronic Processing - In - Memory (Spintronic PIM), especially for Racetrack Memory (RM). The main objectives of SPIMulator are: 1. **Functional simulation**: SPIMulator is able to functionally simulate the RM storage and PIM architecture at the cycle level and execute PIM commands. 2. **Performance evaluation**: Through simulation, SPIMulator can report real - time performance statistics, such as the number of cycles and energy consumption. 3. **Programming environment**: SPIMulator provides a programming environment that allows the development of PIM - based code and the verification of new acceleration algorithms. 4. **Multi - operand logical operations**: SPIMulator simulates the recently proposed multi - operand bit - level logical operations and can be easily extended to implement new PIM operations. 5. **Application examples**: The paper demonstrates the value of SPIMulator by modeling and estimating the performance and energy consumption of various example applications, including the Advanced Encryption Standard (AES), matrix multiplication, and bitmap indexing. ### Main contributions 1. **Functions and features**: The functions and features of SPIMulator are described in detail, as well as how to express PIM algorithms using RM. 2. **Fault modeling**: It is described how SPIMulator models shift faults in RM and shows methods for detecting single - bit and multi - bit errors, including parity check, error correction, and shift - fault recovery. 3. **Algorithm implementation**: It is shown how SPIMulator implements multiplication, arithmetic reduction, and bitmap indexing. 4. **AES encryption algorithm**: Each step of the 128 - bit AES encryption algorithm is demonstrated step by step using SPIMulator. 5. **Experimental analysis**: Experimental analysis is provided by reporting the performance and energy consumption of these algorithms tested on SPIMulator. Through these contributions, SPIMulator provides researchers with a powerful tool for designing and verifying spintronics - based in - memory processing algorithms, thereby further promoting research on solving the memory wall problem.