Resistive Content Addressable Memory for Configurable Approximation

Associative memory, as a form of computing-with-memory, reduces energy of the processing elements by eliminating redundant computations [2], [8], [11]–[15], [17]–[20]. An associative memory can quickly recall responses of a function for a subset of input patterns to save energy by avoiding the actual function execution on the processing element. An associative memory is typically composed of a ternary content-addressable memory (TCAM) to store input patterns and an output memory to return the pre-stored output. The operation of a TCAM goes beyond retrieving logic “0” and “1” and it has capability to store and search wildcard [5]. This feature opens the application of the TCAMs for approximate computing domain, and a wide range of applications in query processing [2], [14], text processing [26], search engine [9], [28], image processing [1], [7], [16], pattern recognition and classification [10], [21], [23]. Associative memories can be implemented on both software and hardware. Software solutions are based on hashing where a frequent data can be stored and retrieved from hash function by keys [3], [22]. In hardware, the associative memory is being implemented by TCAMs. Conventional TCAM with two SRAM cells suffers from high power dissipation and low density [?], [6]. The cost perbit of CMOS-based TCAM is 8× more than SRAM [4]. These limit the application of TCAMs to network applications [24]. Low leakage power of non-volatile memory make them appropriate as a replacement for CMOS-based TCAMs [29].

[1]  Teuvo Kohonen,et al.  Associative memory. A system-theoretical approach , 1977 .

[2]  Teuvo Kohonen,et al.  Content-addressable memories , 1980 .

[3]  Ramakrishnan Srikant,et al.  Fast algorithms for mining association rules , 1998, VLDB 1998.

[4]  George Varghese,et al.  Tree bitmap: hardware/software IP lookups with incremental updates , 2004, CCRV.

[5]  Anand Rangarajan,et al.  Algorithms for advanced packet classification with ternary CAMs , 2005, SIGCOMM '05.

[6]  Christoforos E. Kozyrakis,et al.  Evaluating MapReduce for Multi-core and Multiprocessor Systems , 2007, 2007 IEEE 13th International Symposium on High Performance Computer Architecture.

[7]  Divyakant Agrawal,et al.  Fast data stream algorithms using associative memories , 2007, SIGMOD '07.

[8]  Jung Ho Ahn,et al.  McPAT: An integrated power, area, and timing modeling framework for multicore and manycore architectures , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[9]  Ashish Goel,et al.  Small subset queries and bloom filters using ternary associative memories, with applications , 2010, SIGMETRICS '10.

[10]  David R. Kaeli,et al.  Multi2Sim: A simulation framework for CPU-GPU computing , 2012, 2012 21st International Conference on Parallel Architectures and Compilation Techniques (PACT).

[11]  Eby G. Friedman,et al.  AC-DIMM: associative computing with STT-MRAM , 2013, ISCA.

[12]  Mohsen Imani,et al.  A Low Power And Reliable 12T SRAM Cell Considering Process Variation In 16nm CMOS , 2014 .

[13]  Weisheng Zhao,et al.  A High-Speed Robust NVM-TCAM Design Using Body Bias Feedback , 2015, ACM Great Lakes Symposium on VLSI.

[14]  Tajana Simunic,et al.  Processing Acceleration with Resistive Memory-based Computation , 2016, MEMSYS.

[15]  Tajana Simunic,et al.  Resistive configurable associative memory for approximate computing , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[16]  Tajana Simunic,et al.  ReMAM: Low energy Resistive Multi-stage Associative Memory for energy efficient computing , 2016, 2016 17th International Symposium on Quality Electronic Design (ISQED).

[17]  Tajana Simunic,et al.  MASC: Ultra-low energy multiple-access single-charge TCAM for approximate computing , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[18]  Tajana Simunic,et al.  ACAM: Approximate Computing Based on Adaptive Associative Memory with Online Learning , 2016, ISLPED.

[19]  Tajana Simunic,et al.  CAP: Configurable resistive associative processor for near-data computing , 2017, 2017 18th International Symposium on Quality Electronic Design (ISQED).

[20]  Tajana Simunic,et al.  ORCHARD: Visual object recognition accelerator based on approximate in-memory processing , 2017, 2017 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[21]  Jan M. Rabaey,et al.  Exploring Hyperdimensional Associative Memory , 2017, 2017 IEEE International Symposium on High Performance Computer Architecture (HPCA).

[22]  Tajana Simunic,et al.  MPIM: Multi-purpose in-memory processing using configurable resistive memory , 2017, 2017 22nd Asia and South Pacific Design Automation Conference (ASP-DAC).

[23]  Tajana Simunic,et al.  Efficient neural network acceleration on GPGPU using content addressable memory , 2017, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2017.

[24]  Mohsen Imani,et al.  Multi-Stage Tunable Approximate Search in Resistive Associative Memory , 2018, IEEE Transactions on Multi-Scale Computing Systems.

[25]  Tajana Rosing,et al.  Nvalt: Nonvolatile Approximate Lookup Table for GPU Acceleration , 2018, IEEE Embedded Systems Letters.

[26]  Mohsen Imani,et al.  Approximate Computing Using Multiple-Access Single-Charge Associative Memory , 2018, IEEE Transactions on Emerging Topics in Computing.

[27]  Tajana Rosing,et al.  Resistive CAM Acceleration for Tunable Approximate Computing , 2019, IEEE Transactions on Emerging Topics in Computing.