mem-cache: Add getter for the number of valid sub-blks
authorDaniel R. Carvalho <odanrc@yahoo.com.br>
Thu, 22 Aug 2019 12:15:46 +0000 (14:15 +0200)
committerDaniel Carvalho <odanrc@yahoo.com.br>
Fri, 17 Jan 2020 20:41:39 +0000 (20:41 +0000)
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>

src/mem/cache/tags/sector_blk.cc
src/mem/cache/tags/sector_blk.hh

index 7e4468dc35681d6a8f2a83f24ccf8cc84dfb6dc7..13c90b68caa00c20731303050874d99bb2e1e32f 100644 (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
 {
index a30fb817c7af08c3db68308a283df2ddd40f83ba..cfe67729cdf8e586635f7fbe60b68055dcd70ed3 100644 (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