| |||
| Home > Functional Overview > MPMC functional description > Memory controller state machine | |||
The memory controller state machine comprises two functional blocks:
a static memory controller
a dynamic memory controller.
Low transaction latency and high memory bandwidth are conflicting design parameters.
A memory controller designed to support high bandwidth has logic to reorder transactions to maximize memory efficiency. This logic increases transaction latency.
A memory controller designed to reduce latency has less logic for the transaction to pass through, reducing the amount of logic used to maximize the transaction efficiency. This decreases the supported memory bandwidth.
The memory controllers have been designed with both these parameters in mind, and have both good latency and memory bandwidth.
Providing multiple AHB memory ports in the memory controller enables the memory bandwidth to be shared over multiple AHB buses. This reduces the load on performance-critical buses.
To make full use of dynamic memory bandwidth a multiple-port design is required so that:
the transaction order can be rearranged to maximize the number of in page accesses
the dynamic memory transactions can be pipelined
the dynamic memory transactions can be interleaved.