X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmem%2Fcache%2Fcache.hh;h=4c70d3a4040436812c05af586b602663249d0e87;hb=a262908acc0a641700a03fcea89c48133f0467cd;hp=24a067eced2475edeb8a2e5a2c6f2edfea14b3dc;hpb=5287945a8bb98476a9326c5d9c51491cdc7212f2;p=gem5.git diff --git a/src/mem/cache/cache.hh b/src/mem/cache/cache.hh index 24a067ece..4c70d3a40 100644 --- a/src/mem/cache/cache.hh +++ b/src/mem/cache/cache.hh @@ -245,6 +245,11 @@ class Cache : public BaseCache */ 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 @@ -308,6 +313,13 @@ class Cache : public BaseCache */ 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(); @@ -358,6 +370,12 @@ class Cache : public BaseCache */ 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.