A memory controller for managing memory requests from a plurality of
requesters to a plurality of memory banks is disclosed. The memory
controller includes an arbiter, a first path controller, a second path
controller, and a synchronizer. The arbiter is configured to receive the
memory requests from the plurality of requesters and identify requests
for processing responsive to the requested memory banks. The first and
second path controllers are coupled to the arbiter and the plurality of
memory banks with the first path controller configured to process the
first memory request and the second path controller configured to process
the second memory request. The synchronizer is coupled between the first
path controller and the second path controller for synchronizing the
first and second path controllers such that the first and second memory
requests processed by the first and second path controllers,
respectively, do not conflict.