summaryrefslogtreecommitdiff
path: root/src/mem/packet.hh
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2007-07-21 13:45:17 -0700
committerSteve Reinhardt <stever@eecs.umich.edu>2007-07-21 13:45:17 -0700
commit91178600947e174041f46f54e4241cedd01bbb34 (patch)
treec1e52d85a4187597cfa71a7efab2641362ca0965 /src/mem/packet.hh
parenta67a0025b3da9605f1cd41c75bff5dba2175a0dd (diff)
downloadgem5-91178600947e174041f46f54e4241cedd01bbb34.tar.xz
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
Diffstat (limited to 'src/mem/packet.hh')
-rw-r--r--src/mem/packet.hh3
1 files changed, 3 insertions, 0 deletions
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