mem-cache: Move tagsInUse to children
Move tagsInUse to children, as sector caches have different tag invalidation and insertion, and thus they must handle updating this variable. Change-Id: I875c9b7364a909c76daf610d1e226c4e82063870 Reviewed-on: https://gem5-review.googlesource.com/10721 Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
This commit is contained in:
committed by
Daniel Carvalho
parent
62db2c46f4
commit
f89fe7049d
1
src/mem/cache/tags/base.cc
vendored
1
src/mem/cache/tags/base.cc
vendored
@@ -99,7 +99,6 @@ BaseTags::insertBlock(PacketPtr pkt, CacheBlk *blk)
|
||||
blk->insert(extractTag(addr), pkt->isSecure(), master_id,
|
||||
pkt->req->taskId());
|
||||
|
||||
tagsInUse++;
|
||||
if (!warmedUp && tagsInUse.value() >= warmupBound) {
|
||||
warmedUp = true;
|
||||
warmupCycle = curTick();
|
||||
|
||||
1
src/mem/cache/tags/base.hh
vendored
1
src/mem/cache/tags/base.hh
vendored
@@ -253,7 +253,6 @@ class BaseTags : public ClockedObject
|
||||
assert(blk);
|
||||
assert(blk->isValid());
|
||||
|
||||
tagsInUse--;
|
||||
occupancies[blk->srcMasterId]--;
|
||||
totalRefs += blk->refCount;
|
||||
sampledRefs++;
|
||||
|
||||
3
src/mem/cache/tags/base_set_assoc.cc
vendored
3
src/mem/cache/tags/base_set_assoc.cc
vendored
@@ -113,6 +113,9 @@ BaseSetAssoc::invalidate(CacheBlk *blk)
|
||||
{
|
||||
BaseTags::invalidate(blk);
|
||||
|
||||
// Decrease the number of tags in use
|
||||
tagsInUse--;
|
||||
|
||||
// Invalidate replacement data
|
||||
replacementPolicy->invalidate(blk->replacementData);
|
||||
}
|
||||
|
||||
7
src/mem/cache/tags/base_set_assoc.hh
vendored
7
src/mem/cache/tags/base_set_assoc.hh
vendored
@@ -122,8 +122,8 @@ class BaseSetAssoc : public BaseTags
|
||||
virtual ~BaseSetAssoc() {};
|
||||
|
||||
/**
|
||||
* This function updates the tags when a block is invalidated but does
|
||||
* not invalidate the block itself. It also updates the replacement data.
|
||||
* This function updates the tags when a block is invalidated. It also
|
||||
* updates the replacement data.
|
||||
*
|
||||
* @param blk The block to invalidate.
|
||||
*/
|
||||
@@ -252,6 +252,9 @@ class BaseSetAssoc : public BaseTags
|
||||
// Insert block
|
||||
BaseTags::insertBlock(pkt, blk);
|
||||
|
||||
// Increment tag counter
|
||||
tagsInUse++;
|
||||
|
||||
// Update replacement policy
|
||||
replacementPolicy->reset(blk->replacementData);
|
||||
}
|
||||
|
||||
7
src/mem/cache/tags/fa_lru.cc
vendored
7
src/mem/cache/tags/fa_lru.cc
vendored
@@ -122,6 +122,9 @@ FALRU::invalidate(CacheBlk *blk)
|
||||
{
|
||||
BaseTags::invalidate(blk);
|
||||
|
||||
// Decrease the number of tags in use
|
||||
tagsInUse--;
|
||||
|
||||
// Move the block to the tail to make it the next victim
|
||||
moveToTail((FALRUBlk*)blk);
|
||||
|
||||
@@ -169,7 +172,6 @@ FALRU::accessBlock(Addr addr, bool is_secure, Cycles &lat,
|
||||
return blk;
|
||||
}
|
||||
|
||||
|
||||
CacheBlk*
|
||||
FALRU::findBlock(Addr addr, bool is_secure) const
|
||||
{
|
||||
@@ -215,6 +217,9 @@ FALRU::insertBlock(PacketPtr pkt, CacheBlk *blk)
|
||||
// Do common block insertion functionality
|
||||
BaseTags::insertBlock(pkt, blk);
|
||||
|
||||
// Increment tag counter
|
||||
tagsInUse++;
|
||||
|
||||
// New block is the MRU
|
||||
moveToHead(falruBlk);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user