mem-cache: Add getter for the number of valid sub-blks

Add a getter function so that the number of valid sub-blocks can be
retrieved. As a side effect, make the respective counter private.

Change-Id: Icef8b51164c8e165872dcaebc65f5c330f16cb29
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22605
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
This commit is contained in:
Daniel R. Carvalho
2019-08-22 14:15:46 +02:00
committed by Daniel Carvalho
parent 62dfa5a1fb
commit 6eabbd49eb
2 changed files with 21 additions and 7 deletions

View File

@@ -116,7 +116,7 @@ SectorSubBlk::print() const
}
SectorBlk::SectorBlk()
: ReplaceableEntry(), _tag(MaxAddr), _validCounter(0), _secureBit(false)
: ReplaceableEntry(), _validCounter(0), _tag(MaxAddr), _secureBit(false)
{
}
@@ -127,6 +127,12 @@ SectorBlk::isValid() const
return _validCounter > 0;
}
uint8_t
SectorBlk::getNumValid() const
{
return _validCounter;
}
bool
SectorBlk::isSecure() const
{

View File

@@ -144,18 +144,19 @@ class SectorSubBlk : public CacheBlk
*/
class SectorBlk : public ReplaceableEntry
{
protected:
/**
* Sector tag value. A sector's tag is the tag of all its sub-blocks.
*/
Addr _tag;
private:
/**
* Counter of the number of valid sub-blocks. The sector is valid if any
* of its sub-blocks is valid.
*/
uint8_t _validCounter;
protected:
/**
* Sector tag value. A sector's tag is the tag of all its sub-blocks.
*/
Addr _tag;
/**
* Whether sector blk is in secure-space or not.
*/
@@ -177,6 +178,13 @@ class SectorBlk : public ReplaceableEntry
*/
bool isValid() const;
/**
* Get the number of sub-blocks that have been validated.
*
* @return The number of valid sub-blocks.
*/
uint8_t getNumValid() const;
/**
* Checks that a sector block is secure. A single secure block suffices
* to imply that the whole sector is secure, as the insertion proccess