There are two NoC Slave ports to access the Memory Controller. The slave ports sort the commands to the appropriate command queue based on their QoS class. An arbiter then pulls commands from the queues based on priority and bandwidth requirements and pushes them to the Memory Controller. The Memory Controller reorders the commands to optimize for efficiency and then sends them to the Physical Layer which handles the DRAM interface timing and sequencing. The controller can be configured to act as two separate memory channels of up to 16-bit data width per channel.
Figure 1. Memory Controller Block Diagram