mem-cache: Encapsulate CacheBlk's task_id

Encapsulate this variable to facilitate polymorphism.

- task_id was renamed to _taskId and was privatized.
- The task id should only be modified at 2 specific moments:
  insertion and invalidation of the block; thus, its setter
  is not public.

Change-Id: If9c49c22117ef5d7f25163ec94bf8b174f221e39
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/34956
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>
diff --git a/src/mem/cache/base.cc b/src/mem/cache/base.cc
index c52d2c6..4b7333c 100644
--- a/src/mem/cache/base.cc
+++ b/src/mem/cache/base.cc
@@ -1497,7 +1497,7 @@
     if (blk->isSecure())
         req->setFlags(Request::SECURE);
 
-    req->taskId(blk->task_id);
+    req->taskId(blk->getTaskId());
 
     PacketPtr pkt =
         new Packet(req, blk->isDirty() ?
@@ -1539,7 +1539,7 @@
     if (blk->isSecure()) {
         req->setFlags(Request::SECURE);
     }
-    req->taskId(blk->task_id);
+    req->taskId(blk->getTaskId());
 
     PacketPtr pkt = new Packet(req, MemCmd::WriteClean, blkSize, id);
 
@@ -1609,7 +1609,7 @@
         RequestPtr request = std::make_shared<Request>(
             regenerateBlkAddr(&blk), blkSize, 0, Request::funcRequestorId);
 
-        request->taskId(blk.task_id);
+        request->taskId(blk.getTaskId());
         if (blk.isSecure()) {
             request->setFlags(Request::SECURE);
         }
diff --git a/src/mem/cache/cache.cc b/src/mem/cache/cache.cc
index 4ecda83..a46404b 100644
--- a/src/mem/cache/cache.cc
+++ b/src/mem/cache/cache.cc
@@ -917,7 +917,7 @@
     if (blk->isSecure())
         req->setFlags(Request::SECURE);
 
-    req->taskId(blk->task_id);
+    req->taskId(blk->getTaskId());
 
     PacketPtr pkt = new Packet(req, MemCmd::CleanEvict);
     pkt->allocate();
diff --git a/src/mem/cache/cache_blk.cc b/src/mem/cache/cache_blk.cc
index 4b3325c..1b44371 100644
--- a/src/mem/cache/cache_blk.cc
+++ b/src/mem/cache/cache_blk.cc
@@ -63,7 +63,7 @@
     srcRequestorId = src_requestor_ID;
 
     // Set task ID
-    task_id = task_ID;
+    setTaskId(task_ID);
 
     // Set insertion tick as current tick
     tickInserted = curTick();
diff --git a/src/mem/cache/cache_blk.hh b/src/mem/cache/cache_blk.hh
index 1de5a81..77fd4b8 100644
--- a/src/mem/cache/cache_blk.hh
+++ b/src/mem/cache/cache_blk.hh
@@ -85,9 +85,6 @@
 class CacheBlk : public ReplaceableEntry
 {
   public:
-    /** Task Id associated with this block */
-    uint32_t task_id;
-
     /**
      * Contains a copy of the data in this block for easy access. This is used
      * for efficient execution when the data could be actually stored in
@@ -210,7 +207,7 @@
     virtual void invalidate()
     {
         setTag(MaxAddr);
-        task_id = ContextSwitchTaskId::Unknown;
+        setTaskId(ContextSwitchTaskId::Unknown);
         status = 0;
         whenReady = MaxTick;
         refCount = 0;
@@ -301,6 +298,9 @@
         whenReady = tick;
     }
 
+    /** Get the task id associated to this block. */
+    uint32_t getTaskId() const { return _taskId; }
+
     /**
      * Checks if the given information corresponds to this block's.
      *
@@ -452,9 +452,16 @@
         }
     }
 
+  protected:
+    /** Set the task id value. */
+    void setTaskId(const uint32_t task_id) { _taskId = task_id; }
+
   private:
     /** Data block tag value. */
     Addr _tag;
+
+    /** Task Id associated with this block */
+    uint32_t _taskId;
 };
 
 /**
diff --git a/src/mem/cache/tags/base.cc b/src/mem/cache/tags/base.cc
index 985a1eb..19b6200 100644
--- a/src/mem/cache/tags/base.cc
+++ b/src/mem/cache/tags/base.cc
@@ -148,8 +148,9 @@
 BaseTags::computeStatsVisitor(CacheBlk &blk)
 {
     if (blk.isValid()) {
-        assert(blk.task_id < ContextSwitchTaskId::NumTaskId);
-        stats.occupanciesTaskId[blk.task_id]++;
+        const uint32_t task_id = blk.getTaskId();
+        assert(task_id < ContextSwitchTaskId::NumTaskId);
+        stats.occupanciesTaskId[task_id]++;
         assert(blk.tickInserted <= curTick());
         Tick age = curTick() - blk.tickInserted;
 
@@ -165,7 +166,7 @@
         } else
             age_index = 4; // >10ms
 
-        stats.ageTaskId[blk.task_id][age_index]++;
+        stats.ageTaskId[task_id][age_index]++;
     }
 }