summaryrefslogtreecommitdiff
path: root/src/mem/cache/base.hh
diff options
context:
space:
mode:
authorDaniel R. Carvalho <odanrc@yahoo.com.br>2018-12-04 16:29:16 +0100
committerDaniel Carvalho <odanrc@yahoo.com.br>2019-03-07 13:07:09 +0000
commit6d8694a5fb5cfb905186249581cc6a3fde6cc38a (patch)
tree600d99f68c6dd99e39eea60a9d69859676693664 /src/mem/cache/base.hh
parent9a234836396d547494abf2c370ea773abfac3fed (diff)
downloadgem5-6d8694a5fb5cfb905186249581cc6a3fde6cc38a.tar.xz
mem-cache: Allow tag-only accesses on latency calculation
Some accesses only need to search for a tag in the tag array, with no need to touch the data array. This is the case for CleanEvicts, evicts that don't find a corresponding block entry (since a write cannot be done in parallel with tag lookup), and maintenance operations. Change-Id: I7365a915500b5d7ab636d49a9acc627072a7f58e Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/14878 Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Diffstat (limited to 'src/mem/cache/base.hh')
-rw-r--r--src/mem/cache/base.hh10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mem/cache/base.hh b/src/mem/cache/base.hh
index 7bf741144..a7b25ff2f 100644
--- a/src/mem/cache/base.hh
+++ b/src/mem/cache/base.hh
@@ -422,6 +422,16 @@ class BaseCache : public MemObject
Addr regenerateBlkAddr(CacheBlk* blk);
/**
+ * Calculate latency of accesses that only touch the tag array.
+ * @sa calculateAccessLatency
+ *
+ * @param delay The delay until the packet's metadata is present.
+ * @param lookup_lat Latency of the respective tag lookup.
+ * @return The number of ticks that pass due to a tag-only access.
+ */
+ Cycles calculateTagOnlyLatency(const uint32_t delay,
+ const Cycles lookup_lat) const;
+ /**
* Calculate access latency in ticks given a tag lookup latency, and
* whether access was a hit or miss.
*