From 91178600947e174041f46f54e4241cedd01bbb34 Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Sat, 21 Jul 2007 13:45:17 -0700 Subject: Several more fixes for multi-level timing coherence. - Add "deferred snoop" flag to Packet so upper-level caches can distinguish whether lower-level cache request was in-service or not at the time of the original snoop. - Revamp response handling to properly handle deferred snoops on non-cache-fill requests (i.e. upgrades). - Make sure forwarded writebacks are kept in write buffer at lower-level caches so they get snooped properly. --HG-- extra : convert_revision : 17f8a3772a1ae31a16991a53f8225ddf54d31fc9 --- src/mem/packet.hh | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/mem/packet.hh') diff --git a/src/mem/packet.hh b/src/mem/packet.hh index 036bd3fd7..8063c7ae7 100644 --- a/src/mem/packet.hh +++ b/src/mem/packet.hh @@ -257,6 +257,7 @@ class Packet : public FastAlloc Shared, // Special control flags ExpressSnoop, + DeferredSnoop, NUM_PACKET_FLAGS }; @@ -322,6 +323,8 @@ class Packet : public FastAlloc // Special control flags void setExpressSnoop() { flags[ExpressSnoop] = true; } bool isExpressSnoop() { return flags[ExpressSnoop]; } + void setDeferredSnoop() { flags[DeferredSnoop] = true; } + bool isDeferredSnoop() { return flags[DeferredSnoop]; } // Network error conditions... encapsulate them as methods since // their encoding keeps changing (from result field to command -- cgit v1.2.3