mem: Separate waiting for the bus and waiting for a peer
authorAndreas Hansson <andreas.hansson@arm.com>
Tue, 26 Mar 2013 18:46:47 +0000 (14:46 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Tue, 26 Mar 2013 18:46:47 +0000 (14:46 -0400)
commit93a8423dea8f8194d83df85a5b3043f9beaf0a1e
treeec1ea615c270a0e8524d4bc3ab442781a0c4f043
parent362f6f1a16a68a99c962628bcda00c7c576f935c
mem: Separate waiting for the bus and waiting for a peer

This patch splits the retryList into a list of ports that are waiting
for the bus itself to become available, and a map that tracks the
ports where forwarding failed due to a peer not accepting the
packet. Thus, when a retry reaches the bus, it can be sent to the
appropriate port that initiated that transaction.

As a consequence of this patch, only ports that are really ready to go
will get a retry, thus reducing the amount of redundant failed
attempts. This patch also makes it easier to reason about the order of
servicing requests as the ports waiting for the bus are now clearly
FIFO and much easier to change if desired.
src/mem/bus.cc
src/mem/bus.hh
src/mem/coherent_bus.cc
src/mem/coherent_bus.hh
src/mem/noncoherent_bus.cc
src/mem/noncoherent_bus.hh