mem: Make the XBar responsible for tracking response routing
authorAndreas Hansson <andreas.hansson@arm.com>
Thu, 22 Jan 2015 10:01:14 +0000 (05:01 -0500)
committerAndreas Hansson <andreas.hansson@arm.com>
Thu, 22 Jan 2015 10:01:14 +0000 (05:01 -0500)
commit072f78471d11c31b6009beb572296f704912d0f7
treee1f4e5dcb97c36a650ba4597390494dde7bdc66d
parentfc8cb1fa7680a92c5ac6cedd0e1cac6888e933f4
mem: Make the XBar responsible for tracking response routing

This patch removes the need for a source and destination field in the
packet by shifting the onus of the tracking to the crossbar, much like
a real implementation. This change in behaviour also means we no
longer need a SenderState to remember the source/dest when ever we
have multiple crossbars in the system. Thus, the stack that was
created by the SenderState is not needed, and each crossbar locally
tracks the response routing.

The fields in the packet are still left behind as the RubyPort (which
also acts as a crossbar) does routing based on them. In the succeeding
patches the uses of the src and dest field will be removed. Combined,
these patches improve the simulation performance by roughly 2%.
src/mem/coherent_xbar.cc
src/mem/coherent_xbar.hh
src/mem/noncoherent_xbar.cc
src/mem/xbar.hh