The use of magnetism for data storage dates back to the early days of computers when magnetic core memories were popular. Magnetic core memories were built of tiny magnetic toroids (commonly called cores). The memories exhibited hysteresis characteristics that enabled them to store 1 and 0 along two stable states of magnetization [1–3]. The magnetic core memories were rewritable, non-volatile, and radiation hard. However, they were bulky and slow. On the other hand, the semiconductor memories, static RAM (SRAM), and dynamic RAM (DRAM) that replaced the magnetic core memories are fast, rewritable, and compact. However, they are volatile [4] and require constant voltage supply. In addition, the DRAM requires periodic refreshing to retain data. With the introduction of semiconductor memories, both data storage and logic computation became electronic in nature. But the storage and computation continued to remain in separate regions inside a computer. Any logic operations inside the central processing unit (CPU) required data to be fetched from memory, which in turn posed a bottleneck to high-speed computing. To resolve this issue, researchers started focusing on ways to embed logic and memory into a single plane and various logic-in-memory architectures were developed. Various devices were also studied as potential candidates 752for logic-in-memory applications. Further discussion on these previous studies in logic-in-memory is scheduled for Section 60.5.1.