summaryrefslogtreecommitdiff
path: root/src/mem/cache/cache.hh
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@gmail.com>2008-02-16 14:58:03 -0500
committerSteve Reinhardt <stever@gmail.com>2008-02-16 14:58:03 -0500
commit4597a71cef808969c442fca73ae662efe75550d7 (patch)
treef674856f086d7fea06df0fb7767a5cc615c3bed5 /src/mem/cache/cache.hh
parent69ce7f953b96834ec52d3340f375317ac5858b43 (diff)
downloadgem5-4597a71cef808969c442fca73ae662efe75550d7.tar.xz
Make L2+ caches allocate new block for writeback misses
instead of forwarding down the line. --HG-- extra : convert_revision : b0d6e7862c92ea7a2d21f817d30398735e7bb8ba
Diffstat (limited to 'src/mem/cache/cache.hh')
-rw-r--r--src/mem/cache/cache.hh8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mem/cache/cache.hh b/src/mem/cache/cache.hh
index 073ce5ecb..6f5428c13 100644
--- a/src/mem/cache/cache.hh
+++ b/src/mem/cache/cache.hh
@@ -170,6 +170,14 @@ class Cache : public BaseCache
void cmpAndSwap(BlkType *blk, PacketPtr pkt);
/**
+ * Find a block frame for new block at address addr, assuming that
+ * the block is not currently in the cache. Append writebacks if
+ * any to provided packet list. Return free block frame. May
+ * return NULL if there are no replaceable blocks at the moment.
+ */
+ BlkType *allocateBlock(Addr addr, PacketList &writebacks);
+
+ /**
* Populates a cache block and handles all outstanding requests for the
* satisfied fill request. This version takes two memory requests. One
* contains the fill data, the other is an optional target to satisfy.