Skip to content

Commit e518409

Browse files
committed
update memory map
1 parent e6a34f2 commit e518409

1 file changed

Lines changed: 29 additions & 15 deletions

File tree

docs/memory.md

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -184,26 +184,28 @@ throughput of 16 INT32 lanes when doing element-wise operations (1 OP/byte).
184184
| `0x0000_0000` | `0x20000` | Shared memory cluster local |
185185
| `0x0004_0000` | `0x40000` | Requantized shared memory |
186186
| `0x0008_0000` | `0x200` | Shared print and perf buffer |
187-
| `0x0008_0200` | `0x100` | Core 0 L0d flush MMIO |
188-
| `0x0008_0300` | `0x100` | Core 1 L0d flush MMIO |
187+
| `0x0008_0200` | `0x100` | Core 0 L0i flush MMIO |
188+
| `0x0008_0300` | `0x100` | Core 0 L0d flush MMIO |
189+
| `0x0008_0400` | `0x100` | Core 1 L0i flush MMIO |
190+
| `0x0008_0500` | `0x100` | Core 1 L0d flush MMIO |
189191
| `0x0008_4000` | `0x100` | Gemmini MMIO |
190192
| `0x0008_8000` | `0x4000` | Gemmini scaling factor memory |
191193

192194
Gemmini MMIO has the following address map:
193195

194-
| Address | Bits | Description |
195-
|---------|------|-------------------|
196-
| `0x00` | 32 | RoCC instruction |
197-
| `0x10` | 32 | RoCC RS1 LSB |
198-
| `0x14` | 32 | RoCC RS1 MSB |
199-
| `0x18` | 32 | RoCC RS2 LSB |
200-
| `0x1c` | 32 | RoCC RS2 MSB |
201-
| `0x20` | 32 | Busy |
202-
| `0x28` | 32 | Num running loops |
203-
| `0x30` | 32 | CISC instruction |
204-
| `0x40` | 32 | LUT word 0 |
205-
| `0x44` | 32 | LUT word 1 |
206-
| `0x48` | 32 | LUT word 2 (RV) |
196+
| Address | Bytes | Description |
197+
|---------|-------|-------------------|
198+
| `0x00` | 4 | RoCC instruction |
199+
| `0x10` | 4 | RoCC RS1 LSB |
200+
| `0x14` | 4 | RoCC RS1 MSB |
201+
| `0x18` | 4 | RoCC RS2 LSB |
202+
| `0x1c` | 4 | RoCC RS2 MSB |
203+
| `0x20` | 4 | Busy |
204+
| `0x28` | 4 | Num running loops |
205+
| `0x30` | 4 | CISC instruction |
206+
| `0x80` | 384 | LUT table 0 |
207+
| `0x200` | 384 | LUT table 1 |
208+
| `0x380` | 384 | LUT table 2 |
207209

208210

209211
GPU to requantizer: fp16 in, fp8 out; addressing scheme: magnify by 2x.
@@ -227,13 +229,25 @@ Requantizer will only see data intended to be requantized and not passthroughed.
227229
|-----------------|---------------|---------------------------------|
228230
| `0x4000_0000` | `0x100000` | Cluster 0 SMEM (inc. Gemmini) |
229231
| `0x4010_0000` | `0x100000` | Cluster 1 SMEM (inc. Gemmini) |
232+
| `0x4100_0000` | `0x100` | GPU reset aggregator |
230233
| `0x6000_0000` | `0x10000` | GPU device command processor |
231234
| `0x8000_0000` | `0x8000_0000` | CPU-only DRAM (2GB) |
232235
| `0x1_0000_0000` | `0x8000_0000` | GPU DRAM (2GB), CPU addressable |
233236

234237
GPU will live in the illusion that addresses start at 0; when its requests leave
235238
unified L1, it will be rewritten to append the 33rd bit before arriving at L2.
236239

240+
Reset aggregator has the following address map:
241+
242+
| Address | Bytes | Description |
243+
|---------|-------|---------------------------|
244+
| `0x00` | 4 | GPU reset |
245+
| `0x08` | 4 | GPU all finished |
246+
| `0x10` | 4 | Cluster 0 core 0 finished |
247+
| `0x14` | 4 | Cluster 0 core 1 finished |
248+
| `0x18` | 4 | Cluster 1 core 0 finished |
249+
| `0x1c` | 4 | Cluster 1 core 1 finished |
250+
237251
<!--
238252
The Command Processor will need to have its own BootROM to act as failsafe when
239253
the CPU fails to schedule work on the SIMT cores.

0 commit comments

Comments
 (0)