The Multicore Shared Memory Controller (MSMC) forms the heart of the compute cluster (COMPUTE_CLUSTER0) providing high-bandwidth resource access both to and from all of the connected processing elements and the rest of the system. MSMC serves as the data-movement backbone of the compute cluster.
Table 8-1 shows MSMC modules allocation within device domains.
Table 8-1 MSMC Modules Allocation within Device DomainsModule Instance | Domain |
---|
WKUP | MCU | MAIN |
---|
MSMC | - | - | ✓ |
Figure 8-1 shows an overview of the MSMC and its surrounding modules.
MSMC supports the following features:
- 4MB (4 banks x 1MB) SRAM with ECC:
- Shared coherent level
2/level 3 memory-mapped SRAM
- Shared coherent level
3 cache
- 512-bit processor port bus and 40-bit physical address bus
- Coherent unified bi-directional interfaces to connect to processors or device masters
- One infrastructure master interface
- Dual
external memory master interface
- Supports distributed virtual system
- Supports internal DMA engine – DRU (Data Routing Unit)
- DMA in/out L2 SRAM, MSMC, DDR and system
- L2, L3 cache pre-warming and post flushing
- Bandwidth management with starvation bound
- Two-level QoS support for real-time/nonreal-time split
- Security firewall flush support for SRAM/cache and external memory
- Functional reliability:
- SEC/DED protection on all data and tag memories with hardware scrubbing
- SEC/DED protection on all data pipelines
- Data memory address hamming protection
- Coherent interconnect transaction metadata parity protection
- One interconnect messaging interface that supports DMA/prefetch requests to DRU
- Trace and debugging support
- Supports dynamic clock gating on all logic units
- MSMC is always on when VD_CORE is on
- MSMC R50+ Features
- CMMU Compression support
- FFI support between A72/C7x and R5F
- DDR Interleaving
- Way group optimization