mem: Move the point of coherency to the coherent crossbar
Review Request #3271 - Created Jan. 1, 2016 and submitted
Information | |
---|---|
Andreas Hansson | |
gem5 | |
default | |
Reviewers | |
Default | |
Changeset 11297:bcef70bdf6e3 --------------------------- 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.
Any input? It would be good to get this out along with http://reviews.gem5.org/r/3294/.
I would like to review this more closely, but am having trouble finding the time, so perhaps there's no need to wait on me. I do have a couple of higher-level questions though:
1. What are the topology constraints for this? Does it assume that there's one global crossbar that has this flag set, and any other crossbars do not? Or could you have multiple crossbars serving disjoint parts of the address space?
2. Qualitatively, does this create another set of hierarchy variants that increase the amount of testing required for coherence protocol changes, or is it sufficiently orthogonal to the protocol itself that you don't think this is a big deal?
Ship It!