diff options
author | Ali Jafri <ali.jafri@arm.com> | 2015-09-25 07:26:57 -0400 |
---|---|---|
committer | Ali Jafri <ali.jafri@arm.com> | 2015-09-25 07:26:57 -0400 |
commit | ceec2bb02c87829f29aa1ebb4573051162264ae8 (patch) | |
tree | 32977c2548bb77f64368a7d92218be4e662183f1 /src/mem/cache/cache.hh | |
parent | 6ac356f93b897c8a80378f114865240cba96b693 (diff) | |
download | gem5-ceec2bb02c87829f29aa1ebb4573051162264ae8.tar.xz |
mem: Add snoops for CleanEvicts and Writebacks in atomic mode
This patch mirrors the logic in timing mode which sends up snoops to
check for cached copies before sending CleanEvicts and Writebacks down
the memory hierarchy. In case there is a copy in a cache above,
discard CleanEvicts and set the BLOCK_CACHED flag in Writebacks so
that writebacks do not reset the cache residency bit in the snoop
filter below.
Diffstat (limited to 'src/mem/cache/cache.hh')
-rw-r--r-- | src/mem/cache/cache.hh | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mem/cache/cache.hh b/src/mem/cache/cache.hh index 577eab664..26c9637f0 100644 --- a/src/mem/cache/cache.hh +++ b/src/mem/cache/cache.hh @@ -252,6 +252,11 @@ class Cache : public BaseCache void doWritebacks(PacketList& writebacks, Tick forward_time); /** + * Send writebacks down the memory hierarchy in atomic mode + */ + void doWritebacksAtomic(PacketList& writebacks); + + /** * Handles a response (cache line fill/write ack) from the bus. * @param pkt The response packet */ @@ -375,7 +380,7 @@ class Cache : public BaseCache * Send up a snoop request and find cached copies. If cached copies are * found, set the BLOCK_CACHED flag in pkt. */ - bool isCachedAbove(const PacketPtr pkt) const; + bool isCachedAbove(PacketPtr pkt, bool is_timing = true) const; /** * Selects an outstanding request to service. Called when the |