69 lines
1.1 KiB
Markdown
69 lines
1.1 KiB
Markdown
---
|
|
layout: figure
|
|
figureUrl: /dramsys.svg
|
|
figureCaption: The PIM-HBM model integrated into DRAMSys
|
|
---
|
|
|
|
## Virtual Prototype
|
|
### Processing Units
|
|
<hr/>
|
|
|
|
---
|
|
layout: figure-side
|
|
figureUrl: /data_structures.svg
|
|
figureCaption: The PIM-HBM model integrated into DRAMSys
|
|
---
|
|
|
|
## Virtual Prototype
|
|
### Software Library
|
|
<hr/>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
- 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
|
|
<hr/>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
- 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
|
|
|
|
---
|
|
|
|
<hr/>
|
|
|
|
<br>
|
|
<br>
|
|
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
|
|
```
|
|
|