diff options
Diffstat (limited to 'src/mem/cache/tags/base.hh')
-rw-r--r-- | src/mem/cache/tags/base.hh | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mem/cache/tags/base.hh b/src/mem/cache/tags/base.hh index 167364ff1..27771982a 100644 --- a/src/mem/cache/tags/base.hh +++ b/src/mem/cache/tags/base.hh @@ -262,12 +262,20 @@ class BaseTags : public ClockedObject } /** - * Find replacement victim based on address. + * Find replacement victim based on address. If the address requires + * blocks to be evicted, their locations are listed for eviction. If a + * conventional cache is being used, the list only contains the victim. + * However, if using sector or compressed caches, the victim is one of + * the blocks to be evicted, but its location is the only one that will + * be assigned to the newly allocated block associated to this address. + * @sa insertBlock * * @param addr Address to find a victim for. + * @param evict_blks Cache blocks to be evicted. * @return Cache block to be replaced. */ - virtual CacheBlk* findVictim(Addr addr) = 0; + virtual CacheBlk* findVictim(Addr addr, std::vector<CacheBlk*>& evict_blks) + const = 0; virtual CacheBlk* accessBlock(Addr addr, bool is_secure, Cycles &lat) = 0; |