mem: Update DRAM command scheduler for bank groups
authorWendy Elsasser <wendy.elsasser@arm.com>
Fri, 3 Jul 2015 14:14:46 +0000 (10:14 -0400)
committerWendy Elsasser <wendy.elsasser@arm.com>
Fri, 3 Jul 2015 14:14:46 +0000 (10:14 -0400)
commit31f901b69dd2cdc6b6bafa11cfb0af477de57607
tree2b83f9b29ca3aaf81cb671ce6af58e984b9b19e5
parentb56167b68214581857ffae5c25f7945d75cee6b3
mem: Update DRAM command scheduler for bank groups

This patch updates the command arbitration so that bank group timing
as well as rank-to-rank delays will be taken into account. The
resulting arbitration no longer selects commands (prepped or not) that
cannot issue seamlessly if there are commands that can issue
back-to-back, minimizing the effect of rank-to-rank (tCS) & same bank
group (tCCD_L) delays.

The arbitration selects a new command based on the following priority.
Within each priority band, the arbitration will use FCFS to select the
appropriate command:

1) Bank is prepped and burst can issue seamlessly, without a bubble

2) Bank is not prepped, but can prep and issue seamlessly, without a
bubble

3) Bank is prepped but burst cannot issue seamlessly. In this case, a
bubble will occur on the bus

Thus, to enable more parallelism in subsequent selections, an
unprepped packet is given higher priority if the bank prep can be
hidden. If the bank prep cannot be hidden, the selection logic will
choose a prepped packet that cannot issue seamlessly if one exist.
Otherwise, the default selection will choose the packet with the
minimum bank prep delay.
src/mem/dram_ctrl.cc
src/mem/dram_ctrl.hh