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 DRAM-based 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.6× and 12.6×, 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. Show more
Permanent link
https://doi.org/10.3929/ethz-b-000601590Publication status
publishedExternal links
Journal / series
ACM Transactions on Architecture and Code OptimizationVolume
Pages / Article No.
Publisher
Association for Computing MachinerySubject
Processing-using-memory; processing-in-memory; RISC-V; FPGA; DRAM; memory controllersOrganisational unit
09483 - Mutlu, Onur / Mutlu, Onur
More
Show all metadata