Methods and systems for re-ordering commands to access memory are disclosed.
Embodiments may receive a first command to access a memory bank of the memory and
determine a penalty associated with the first command based upon a conflict with
an access to the memory bank. The penalty, in many embodiments, may be calculated
so the penalty expires when the memory bank and a data bus associated with the
memory bank are available to process the first command. Then, the first command
is queued and dispatched to an available sequencer after the penalty expires. After
the first command is serviced, unexpired penalties of subsequent commands may be
updated to reflect a conflict with the first command. Further embodiments select
a command to dispatch from the commands with expired penalties, based upon priorities
associated with the commands such as the order in which the commands were received
and the command types.