Zynq-7000 AP SoC and 7 Series FPGAs MIS v4.1
591
UG586 November 30, 2016
Chapter 4:
LPDDR2 SDRAM Memory Interface Solution
Not all requests require an activate. If a preceding request has activated the same rank,
bank, or row, a subsequent request might inherit the bank machine state and avoid the
precharge/activate penalties.
After the necessary rank, bank, or row is activated and the RAS to CAS delay timing is met,
the bank machine tries to issue the CAS-READ or CAS-WRITE command. Unlike the row
command, all requests issue a CAS command. Before arbitrating to send a CAS command,
the bank machine must look at the state of the DRAM, the state of the DQ bus, priority, and
ordering. Eventually, all these factors assume their favorable states and the bank machine
arbitrates to send a CAS command. In a manner similar to row commands, a round-robin
arbiter uses a priority scheme and selects the next column command.
The round-robin arbiter itself is a source of reordering. Assume for example that an
otherwise idle Memory Controller receives a burst of new requests while processing a
refresh. These requests queue up and wait for the refresh to complete. After the DRAM is
ready to receive a new activate, all waiting requests assert their arbitration requests
simultaneously. The arbiter selects the next activate to send based solely on its round-robin
algorithm, independent of request order. Similar behavior can be observed for column
commands.
The controller supports three ordering modes:
•
STRICT
– In this mode the controller always issues commands to the memory in the
exact order received at the native interface. This mode can be useful in situations that
do not benefit from reordering and the lowest latency is desired. Because the read data
comes back in order, the user interface layer might not be needed thus reducing
latency. This mode is also useful for debugging.
•
NORM
– In this mode the controller reorders reads but not writes as needed to
improve efficiency. All write requests are issued in the request order relative to all other
write requests, and requests within a given rank-bank retire in order. This ensures that it
is not possible to observe the result of a later write before an earlier write completes.
Note:
This reordering is only visible at the native interface. The user interface reorders the read
requests back into the original request order.
•
RELAXED
– This is the most efficient mode of the controller. Writes and reads can be
reordered as needed for maximum efficiency between rank-bank queues. Thus in this
mode it is possible to observe the reordering of writes. However, this behavior is not
observable at the user interface layer because the requests are retired in order within a
rank-bank and the user interface layer returns the read requests in order. Therefore the
RELAXED mode is recommended for use with the user interface layer.
Note:
This option is not selectable in the MIG GUI. To enable, generate the design with the
synthesis options "Global" in the
Generate Output Products
settings. After generating the
design, the design top-level RTL file should be edited and the ORDERING parameter should be
changed to "RELAXED."