51 lines
1.8 KiB
Markdown
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.
|