--- layout: figure figureUrl: /dramsys.svg figureCaption: The PIM-HBM model integrated into DRAMSys --- ## Virtual Prototype ### Processing Units
--- layout: figure-side figureUrl: /data_structures.svg figureCaption: The PIM-HBM model integrated into DRAMSys --- ## Virtual Prototype ### Software Library


- Software support library written in Rust - Provides data structures for PIM-HBM - Adhering special memory layout requirements - Executes programmed microkernels --- layout: figure-side figureUrl: /bare_metal.svg --- ## Virtual Prototype ### Platform


- Bare-metal kernel executes on ARM processor model - Custom page table configuration - Non-PIM DRAM region mapped as cacheable memory - PIM DRAM region mapped as non-cacheable memory ---


GEMV Microkernel ```asm{none|1-8|9,10|11|all}{lines:true} MOV GRF_A #0, BANK MOV GRF_A #1, BANK MOV GRF_A #2, BANK MOV GRF_A #3, BANK MOV GRF_A #4, BANK MOV GRF_A #5, BANK MOV GRF_A #6, BANK MOV GRF_A #7, BANK MAC(AAM) GRF_B, BANK, GRF_A JUMP -1, 7 FILL BANK, GRF_B #0 EXIT ```