diff options
author | Daniel R. Carvalho <odanrc@yahoo.com.br> | 2019-08-22 14:15:46 +0200 |
---|---|---|
committer | Daniel Carvalho <odanrc@yahoo.com.br> | 2020-01-17 20:41:39 +0000 |
commit | 6eabbd49ebe47f4ba77b75d5b3913cdf85401430 (patch) | |
tree | 953b11b86399e7a58aa87cb874e56170a88a69ba | |
parent | 62dfa5a1fb90d3559c2f2604c1a2fb7693bb8dc2 (diff) | |
download | gem5-6eabbd49ebe47f4ba77b75d5b3913cdf85401430.tar.xz |
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>
-rw-r--r-- | src/mem/cache/tags/sector_blk.cc | 8 | ||||
-rw-r--r-- | src/mem/cache/tags/sector_blk.hh | 20 |
2 files changed, 21 insertions, 7 deletions
diff --git a/src/mem/cache/tags/sector_blk.cc b/src/mem/cache/tags/sector_blk.cc index 7e4468dc3..13c90b68c 100644 --- a/src/mem/cache/tags/sector_blk.cc +++ b/src/mem/cache/tags/sector_blk.cc @@ -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 { diff --git a/src/mem/cache/tags/sector_blk.hh b/src/mem/cache/tags/sector_blk.hh index a30fb817c..cfe67729c 100644 --- a/src/mem/cache/tags/sector_blk.hh +++ b/src/mem/cache/tags/sector_blk.hh @@ -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. */ @@ -178,6 +179,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 * asserts that different secure spaces can't coexist in the same sector. |