Daniel Carvalho has uploaded this change for review. ( https://gem5-review.googlesource.com/8884

Change subject: mem-cache: Use replacement candidates to find block
......................................................................

mem-cache: Use replacement candidates to find block

Use replacement candidates to find block to make it placement policy
independent.

Change-Id: I4c9d9e1e1ff91ce12e85ca1970f927d8f4f5a93b
---
M src/mem/cache/tags/base_set_assoc.cc
1 file changed, 14 insertions(+), 3 deletions(-)



diff --git a/src/mem/cache/tags/base_set_assoc.cc b/src/mem/cache/tags/base_set_assoc.cc
index 0ab0bc6..bd39e1a 100644
--- a/src/mem/cache/tags/base_set_assoc.cc
+++ b/src/mem/cache/tags/base_set_assoc.cc
@@ -111,10 +111,21 @@
 CacheBlk*
 BaseSetAssoc::findBlock(Addr addr, bool is_secure) const
 {
+    // Extract block tag
     Addr tag = extractTag(addr);
-    unsigned set = extractSet(addr);
-    BlkType *blk = sets[set].findBlk(tag, is_secure);
-    return blk;
+
+    // Find possible locations for the given address
+    ReplacementCandidates cands = getCandidates(addr);
+
+    // Search for block
+    for (auto blkIt = cands.begin(); blkIt != cands.end(); ++blkIt) {
+        if ((*blkIt)->tag == tag && (*blkIt)->isValid() &&
+            (*blkIt)->isSecure() == is_secure)
+            return *blkIt;
+    }
+
+    // Did not find block
+    return nullptr;
 }

 CacheBlk*

--
To view, visit https://gem5-review.googlesource.com/8884
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I4c9d9e1e1ff91ce12e85ca1970f927d8f4f5a93b
Gerrit-Change-Number: 8884
Gerrit-PatchSet: 1
Gerrit-Owner: Daniel Carvalho <oda...@yahoo.com.br>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to