projects
/
gem5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mem: Add clean evicts to improve snoop filter tracking
[gem5.git]
/
src
/
mem
/
cache
/
cache.hh
diff --git
a/src/mem/cache/cache.hh
b/src/mem/cache/cache.hh
index 24a067eced2475edeb8a2e5a2c6f2edfea14b3dc..4c70d3a4040436812c05af586b602663249d0e87 100644
(file)
--- a/
src/mem/cache/cache.hh
+++ b/
src/mem/cache/cache.hh
@@
-245,6
+245,11
@@
class Cache : public BaseCache
*/
bool recvTimingReq(PacketPtr pkt);
*/
bool recvTimingReq(PacketPtr pkt);
+ /**
+ * Insert writebacks into the write buffer
+ */
+ void doWritebacks(PacketList& writebacks, Tick forward_time);
+
/**
* Handles a response (cache line fill/write ack) from the bus.
* @param pkt The response packet
/**
* Handles a response (cache line fill/write ack) from the bus.
* @param pkt The response packet
@@
-308,6
+313,13
@@
class Cache : public BaseCache
*/
PacketPtr writebackBlk(CacheBlk *blk);
*/
PacketPtr writebackBlk(CacheBlk *blk);
+ /**
+ * Create a CleanEvict request for the given block.
+ * @param blk The block to evict.
+ * @return The CleanEvict request for the block.
+ */
+ PacketPtr cleanEvictBlk(CacheBlk *blk);
+
void memWriteback();
void memInvalidate();
void memWriteback();
void memInvalidate();
@@
-358,6
+370,12
@@
class Cache : public BaseCache
*/
MSHR *getNextMSHR();
*/
MSHR *getNextMSHR();
+ /**
+ * 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;
+
/**
* Selects an outstanding request to service. Called when the
* cache gets granted the downstream bus in timing mode.
/**
* Selects an outstanding request to service. Called when the
* cache gets granted the downstream bus in timing mode.