From 92f021cbbed84bc1d8ceee80b78fb9be1086819c Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Wed, 10 Feb 2016 04:08:25 -0500 Subject: 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 | 1 + 1 file changed, 1 insertion(+) (limited to 'configs/example/memtest.py') diff --git a/configs/example/memtest.py b/configs/example/memtest.py index a3298890b..97bf79dff 100644 --- a/configs/example/memtest.py +++ b/configs/example/memtest.py @@ -299,6 +299,7 @@ make_cache_level(cachespec, cache_proto, len(cachespec), None) # Connect the lowest level crossbar to the memory last_subsys = getattr(system, 'l%dsubsys0' % len(cachespec)) last_subsys.xbar.master = system.physmem.port +last_subsys.xbar.point_of_coherency = True root = Root(full_system = False, system = system) if options.atomic: -- cgit v1.2.3