Files
OpenExSys_NoC/doc/system_memory_map.md
2023-11-26 14:59:34 +01:00

51 lines
1.8 KiB
Markdown

# System Memory Map
## 1 Home Node to Memory Channel
### 1.1 Range-based: non-hashed SN target ID
use reg to direct assign a range of memory address to specific memory channel or io device
### 1.2 Range-based: hashed SN target ID
#### 1.2.1 UMA mode
use reg to assign a range of memory address, for 4 home node, 4 memory channel:
1. use PA[7:6] to interleave among memony channels (cache line interleave)
2. for unbalanced memory size among memory channels, use to smallest size channel to interleave, and other memory use direct assign
| PA bit num | msb | ... | 8 | 7 | 6 | 5 - 0 |
| ----------------- | --- | --- | --- | --- | --- | ----------- |
| Interleaving type | | | | CH | CH | line offest |
CH: Channel interleaving
#### 1.2.2 NUMA mode
use reg to assign a range of memory address, for 4 home node, 4 memory channel:
1. use PA[6] to interleave among memony channels (cache line interleave)
2. use PA[msb] to interleave among nodes
3. for unbalanced memory size among memory channels, use to smallest size channel to interleave, and other memory use direct assign
| PA bit num | msb | ... | 8 | 7 | 6 | 5 - 0 |
| ----------------- | --- | --- | --- | --- | --- | ----------- |
| Interleaving type | ND | | | CH | CH | line offest |
ND: Node interleaving, CH: Channel interleaving
## 2 Request Node to Home Node
### 2.1 Non-hashed regions
A given memory partition is assigned to an individual targetID (non-hashed), for:
1. PLIC(highest priority);
2. IO space;
3. Directly assigned memory range
### 2.2 Hashed memory region or non-hashed mode of hashed memory region
#### 2.2.1 NUCA mode
use reg to assign a range of memory address for one core/cluster to its nearest home node,
it can be configured at reset.