mem-cache: Encapsulate CacheBlk's srcRequestorId
authorDaniel R. Carvalho <odanrc@yahoo.com.br>
Mon, 21 Sep 2020 15:51:04 +0000 (17:51 +0200)
committerDaniel Carvalho <odanrc@yahoo.com.br>
Tue, 6 Oct 2020 09:05:49 +0000 (09:05 +0000)
Encapsulate this variable to facilitate polymorphism.

- requestorId was renamed to _requestorId and was privatized.
- The requestor ID should only be modified on insertion and
  invalidation; thus, its setter is not public.

Change-Id: I5bab21a6c21e9d912fb5194bb44ff785d44999f4
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/34959
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/mem/cache/cache_blk.cc
src/mem/cache/cache_blk.hh
src/mem/cache/tags/base.hh

index 26ad4afccf6f17305cc1169085e515ec51299571..01b71c5b7c410b1c120a34a0b23558c8c4ab76cb 100644 (file)
@@ -60,7 +60,7 @@ CacheBlk::insert(const Addr tag, const bool is_secure,
     setTag(tag);
 
     // Set source requestor ID
-    srcRequestorId = src_requestor_ID;
+    setSrcRequestorId(src_requestor_ID);
 
     // Set task ID
     setTaskId(task_ID);
index 448b89593ae8806fc7b443238e77c0e95cabefe2..0ad355c37a5c2f0c09a737d83d683992e4a57986 100644 (file)
@@ -107,9 +107,6 @@ class CacheBlk : public ReplaceableEntry
      */
     Tick whenReady;
 
-    /** holds the source requestor ID for this block. */
-    int srcRequestorId;
-
   protected:
     /**
      * Represents that the indicated thread context has a "lock" on
@@ -203,7 +200,7 @@ class CacheBlk : public ReplaceableEntry
         status = 0;
         whenReady = MaxTick;
         setRefCount(0);
-        srcRequestorId = Request::invldRequestorId;
+        setSrcRequestorId(Request::invldRequestorId);
         lockList.clear();
     }
 
@@ -293,6 +290,9 @@ class CacheBlk : public ReplaceableEntry
     /** Get the task id associated to this block. */
     uint32_t getTaskId() const { return _taskId; }
 
+    /** Get the requestor id associated to this block. */
+    uint32_t getSrcRequestorId() const { return _srcRequestorId; }
+
     /** Get the number of references to this block since insertion. */
     unsigned getRefCount() const { return _refCount; }
 
@@ -466,6 +466,9 @@ class CacheBlk : public ReplaceableEntry
     /** Set the task id value. */
     void setTaskId(const uint32_t task_id) { _taskId = task_id; }
 
+    /** Set the source requestor id. */
+    void setSrcRequestorId(const uint32_t id) { _srcRequestorId = id; }
+
     /** Set the number of references to this block since insertion. */
     void setRefCount(const unsigned count) { _refCount = count; }
 
@@ -479,6 +482,9 @@ class CacheBlk : public ReplaceableEntry
     /** Task Id associated with this block */
     uint32_t _taskId;
 
+    /** holds the source requestor ID for this block. */
+    int _srcRequestorId;
+
     /** Number of references to this block since it was brought in. */
     unsigned _refCount;
 
index 700edcb92775f2933d48b0d9ed13defaef1d9d24..35e984ac2328cdb99afb9be70d1b5f41b926ae5a 100644 (file)
@@ -253,7 +253,7 @@ class BaseTags : public ClockedObject
         assert(blk);
         assert(blk->isValid());
 
-        stats.occupancies[blk->srcRequestorId]--;
+        stats.occupancies[blk->getSrcRequestorId()]--;
         stats.totalRefs += blk->getRefCount();
         stats.sampledRefs++;