mem: Move the point of coherency to the coherent crossbar
authorAndreas Hansson <andreas.hansson@arm.com>
Wed, 10 Feb 2016 09:08:25 +0000 (04:08 -0500)
committerAndreas Hansson <andreas.hansson@arm.com>
Wed, 10 Feb 2016 09:08:25 +0000 (04:08 -0500)
commit92f021cbbed84bc1d8ceee80b78fb9be1086819c
treed65dbb57bc3443e0cd19f30012c43d268f428c63
parentf84ee031ccdb63d016c6f55b578085a2e5af4a4b
mem: Move the point of coherency to the coherent crossbar

This patch introduces the ability of making the coherent crossbar the
point of coherency. If so, the crossbar does not forward packets where
a cache with ownership has already committed to responding, and also
does not forward any coherency-related packets that are not intended
for a downstream memory controller. Thus, invalidations and upgrades
are turned around in the crossbar, and the memory controller only sees
normal reads and writes.

In addition this patch moves the express snoop promotion of a packet
to the crossbar, thus allowing the downstream cache to check the
express snoop flag (as it should) for bypassing any blocking, rather
than relying on whether a cache is responding or not.
configs/example/memtest.py
src/mem/XBar.py
src/mem/bridge.cc
src/mem/cache/cache.cc
src/mem/coherent_xbar.cc
src/mem/coherent_xbar.hh
src/mem/dram_ctrl.cc
src/mem/simple_mem.cc