The dynamic memory manager (DMM) module is typically located immediately in front of the SDRAM controllers (EMIFs), as shown in Figure 15-1, Memory Subsystem Functional Diagram.
In a broad sense, the DMM manages various aspects of memory accesses such as:
- Initiator-indexed priority generation
- Multizone SDRAM interleaving configuration
- Block object transfer optimization – tiling
- Centralized low-latency page translation – MMU-like feature
The dynamic qualifier for memory management highlights the software configurability, and hence the runtime nature, of the four aspects of memory management handled by the DMM.
From a functional perspective, the role of the DMM is to:
- Add initiator-based priority to any incoming requests
- Perform to/from tiling conversions of tiled requests
- Make on-the-fly basic transforms, such as quadrant rotations and mirroring
- Optionally, provide a low-latency page-based translation to handle memory fragmentation – MMU
- Distribute the traffic on all attached memory controllers according to the interleaving configuration
The main features of the DMM are:
- Programmable multizone DRAM mapping and interleaving configuration
- Programmable initiator-based request priority extension
- Multichannel memory transfer optimization
- Single SDRAM page request generation
- Low-latency interconnect port
- Page-grained address translation to manage memory fragmentation
- Automatic synchronized reloading of the address translation table