mem: Avoid DRAM write queue iteration for merging and read lookup
authorAndreas Hansson <andreas.hansson@arm.com>
Fri, 3 Jul 2015 14:14:45 +0000 (10:14 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Fri, 3 Jul 2015 14:14:45 +0000 (10:14 -0400)
commitb56167b68214581857ffae5c25f7945d75cee6b3
treec0d9d30d659a8e8bd6d27b9a4bcbd4438e413025
parentdb85ddca1a3c81fb7c513216fa08bb1f6dd580b7
mem: Avoid DRAM write queue iteration for merging and read lookup

This patch adds a simple lookup structure to avoid iterating over the
write queue to find read matches, and for the merging of write
bursts. Instead of relying on iteration we simply store a set of
currently-buffered write-burst addresses and compare against
these. For the reads we still perform the iteration if we have a
match. For the writes, we rely entirely on the set. Note that there
are corner-cases where sub-bursts would actually not be mergeable
without a read-modify-write. We ignore these cases and opt for speed.
src/mem/dram_ctrl.cc
src/mem/dram_ctrl.hh