Please use this identifier to cite or link to this item:
https://hdl.handle.net/20.500.11851/10312
Title: | PiDRAM: A Holistic End-to-end FPGA-based Framework for Processing-in-DRAM | Authors: | Olgun, Ataberk Luna, Juan Gomez Kanellopoulos, Konstantinos Salami, Behzad Hassan, Hasan Ergin, Oguz Mutlu, Onur |
Keywords: | Processing-using-memory processing-in-memory RISC-V FPGA DRAM memory controllers Logic Operations Latency Dram Memory Cpu |
Publisher: | Assoc Computing Machinery | Abstract: | Commodity DRAM-based processing-using-memory (PuM) techniques that are supported by off-the-shelf DRAM chips present an opportunity for alleviating the data movement bottleneck at low cost. However, system integration of these techniques imposes non-trivial challenges that are yet to be solved. Potential solutions to the integration challenges require appropriate tools to develop any necessary hardware and software components. Unfortunately, current proprietary computing systems, specialized DRAM-testing platforms, or system simulators do not provide the flexibility and/or the holistic system view that is necessary to properly evaluate and deal with the integration challenges of commodity DRAM-based PuM techniques. We design and develop Processing-in-DRAM (PiDRAM), the first flexible end-to-end framework that enables system integration studies and evaluation of real, commodity DRAM-based PuM techniques. PiDRAM provides software and hardware components to rapidly integrate PuM techniques across the whole system software and hardware stack. We implement PiDRAM on an FPGA-based RISC-V system. To demonstrate the flexibility and ease of use of PiDRAM, we implement and evaluate two state-of-the-art commodity DRAMbased PuM techniques: (i) in-DRAM copy and initialization (RowClone) and (ii) in-DRAM true random number generation (D-RaNGe). We describe how we solve key integration challenges to make such techniques work and be effective on a real-system prototype, including memory allocation, alignment, and coherence. We observe that end-to-end RowClone speeds up bulk copy and initialization operations by 14.6x and 12.6x, respectively, over conventional CPU copy, even when coherence is supported with inefficient cache flush operations. Over PiDRAM's extensible codebase, integrating both RowClone and D-RaNGe end-to-end on a real RISC-V system prototype takes only 388 lines of Verilog code and 643 lines of C++ code. | URI: | https://doi.org/10.1145/3563697 https://hdl.handle.net/20.500.11851/10312 |
ISSN: | 1544-3566 1544-3973 |
Appears in Collections: | Scopus İndeksli Yayınlar Koleksiyonu / Scopus Indexed Publications Collection WoS İndeksli Yayınlar Koleksiyonu / WoS Indexed Publications Collection |
Show full item record
CORE Recommender
SCOPUSTM
Citations
2
checked on Nov 2, 2024
WEB OF SCIENCETM
Citations
7
checked on Oct 5, 2024
Page view(s)
80
checked on Nov 4, 2024
Google ScholarTM
Check
Altmetric
Items in GCRIS Repository are protected by copyright, with all rights reserved, unless otherwise indicated.