Processing in Storage Class Memory

Storage and memory technologies are experiencing unprecedented transformation. Storage-class memory (SCM) delivers near-DRAM performance in non-volatile storage media and became commercially available in 2019. Unfortunately, software is not yet able to fully benefit from such highperformance storage. Processing-in-memory (PIM) aims to overcome the notorious memory wall; at the time of writing, hardware is close to being commercially available. This paper takes a position that PIM will become an integral part of future storage-class memories, so data processing can be performed in-storage, saving memory bandwidth and CPU cycles. Under that assumption, we identify typical data-processing tasks poised for in-storage processing, such as compression, encryption and format conversion. We present evidence supporting our assumption and present some feasibility experiments on new PIM hardware to show the potential.

[1]  Bruce Jacob,et al.  Memory Systems: Cache, DRAM, Disk , 2007 .

[2]  Kiyoung Choi,et al.  A scalable processing-in-memory accelerator for parallel graph processing , 2015, 2015 ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA).

[3]  Peter Bailis,et al.  Filter Before You Parse: Faster Analytics on Raw Data with Sparser , 2018, Proc. VLDB Endow..

[4]  Mohamad Towfik Krounbi,et al.  Basic principles of STT-MRAM cell operation in memory arrays , 2013 .

[5]  Dean M. Tullsen,et al.  Software data-triggered threads , 2012, OOPSLA '12.

[6]  Mike Ignatowski,et al.  TOP-PIM: throughput-oriented programmable processing in memory , 2014, HPDC '14.

[7]  R. Waser,et al.  Nanoionics-based resistive switching memories. , 2007, Nature materials.

[8]  Tor M. Aamodt,et al.  EDGE: Event-Driven GPU Execution , 2019, 2019 28th International Conference on Parallel Architectures and Compilation Techniques (PACT).

[9]  Maya Gokhale,et al.  Processing in Memory: The Terasys Massively Parallel PIM Array , 1995, Computer.

[10]  S. Lai,et al.  Current status of the phase change memory and its future , 2003, IEEE International Electron Devices Meeting 2003.

[11]  Fabrice Devaux,et al.  The true Processing In Memory accelerator , 2019, 2019 IEEE Hot Chips 31 Symposium (HCS).

[12]  Angelos Bilas,et al.  ZBD: Using Transparent Compression at the Block Level to Increase Storage Space Efficiency , 2010, 2010 International Workshop on Storage Network Architecture and Parallel I/Os.

[13]  Vassilis J. Tsotras,et al.  Massively parallel skyline computation for processing-in-memory architectures , 2018, PACT.

[14]  Evangelos Vlachos,et al.  A Many-core Architecture for In-Memory Data Processing , 2017, 2017 50th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[15]  Ken Takeuchi,et al.  Application-oriented wear-leveling optimization of 3D TSV-integrated storage class memory-based solid state drives , 2018, 2018 International Conference on Electronics Packaging and iMAPS All Asia Conference (ICEP-IAAC).

[16]  Ran Ginosar,et al.  From Processing-in-Memory to Processing-in-Storage , 2017, Supercomput. Front. Innov..

[17]  A. Gupta,et al.  Exploring the benefits of multiple hardware contexts in a multiprocessor architecture: preliminary results , 1989, ISCA '89.

[18]  Mingyu Gao,et al.  HRL: Efficient and flexible reconfigurable logic for near-data processing , 2016, 2016 IEEE International Symposium on High Performance Computer Architecture (HPCA).

[19]  Ran Ginosar,et al.  PRINS: Processing-in-Storage Acceleration of Machine Learning , 2018, IEEE Transactions on Nanotechnology.

[20]  Dudley Allen Buck,et al.  Ferroelectrics for Digital Information Storage and Switching , 1952 .

[21]  Hyunjin Lee,et al.  Flip-N-Write: A simple deterministic technique to improve PRAM write performance, energy and endurance , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[22]  Harold S. Stone,et al.  A Logic-in-Memory Computer , 1970, IEEE Transactions on Computers.

[23]  Rainer Buchty,et al.  Data-Centric Computing Frontiers: A Survey On Processing-In-Memory , 2016, MEMSYS.

[24]  David Wentzlaff,et al.  ComputeDRAM: In-Memory Compute Using Off-the-Shelf DRAMs , 2019, MICRO.

[25]  Geoff Langdale,et al.  Parsing gigabytes of JSON per second , 2019, The VLDB Journal.