initial commit for open source NoC IP
This commit is contained in:
50
doc/system_memory_map.md
Normal file
50
doc/system_memory_map.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user