DDR memory controller (MPMC)
RM0082
120/844
Doc ID 018672 Rev 1
If the page for the new transaction is already open, the current transaction will be interrupted
at the next natural burst boundary of the DRAM device. If the page is not currently open
instead, the new request will be placed at the top of the command queue while its page is
prepared.
There are a fixed number of latency cycles in the memory controller, based on the pipeline
through the memory controller logic. These steps are:
●
Command passing through the port interface. (fixed)
●
Arbitration through the Arbiter. (fixed)
●
Placement into the Command Queue. (fixed)
●
Memory Command Generation. (variable)
●
Sending of control signals from the core logic to flip-flops near the I/O drivers. (fixed)
●
Flight time to the DRAM device. (variable)
●
Flight time from the DRAM device. (variable)
●
For READs, synchronization of READ data from the data strobe domain. (fixed)
●
For READs, data pass through the port interface. (fixed)
For asynchronous AHB interfaces, additional 4-5 cycles are included for the round-trip
transaction to synchronize to the Database core clock. Some typical scenarios for a Multi-
Port AHB interface and their effects on latency are:
●
Read latency with a page hit and empty queue.
●
(9) + Cas Latency
●
Read latency with a page miss to a closed page and an empty queue.
●
Trcd + Cas l (9)
●
Read latency with a page miss to an open page and an empty queue.
●
Trp+Trcd+Cas 9
●
Read latency with a page hit and a currently executing transaction.
●
TBurst end+Cas 9
●
Read latency with a page miss to a closed bank and a currently executing transaction.
The page open command will be executed while the current burst is completing if
possible.
●
MAX(Trcd, TBurst end)+ Cas L 9
●
Read latency with a page miss to an open page and an empty queue. The page close
command will be executed while the current burst is completing if possible.
●
MAX(Trp+Trcd,TBurst end)+Cas 9
TBurst end equals the time to complete the current burst in progress. The maximum value
here is 3 for a READ command and 3 + twr for a WRITE command if the burst count is
configured to 8 for DDR DRAM devices. The minimum value is 0.
10.5 Multi-port
arbiter
The Arbiter manages arbitrating requests from the ports and sending requests to the
Memory Controller core. Each transaction received by the Arbiter logic has an associated
priority, which works with each port's arbitration logic to determine how ports issue requests
to the Memory Controller core. The Memory Controller supports the Weighted Round-Robin
arbitration scheme.