Javier Bueno Hedo has submitted this change and it was merged. ( https://gem5-review.googlesource.com/c/public/gem5/+/14735 )

Change subject: mem-cache: allow prefetchers to emit page crossing references
......................................................................

mem-cache: allow prefetchers to emit page crossing references

QueuedPrefetcher takes the responsability to check for page
crossing references.

Change-Id: I0ae6bf8be465118990d9ea1cac0da8f70e69aeb1
Reviewed-on: https://gem5-review.googlesource.com/c/14735
Reviewed-by: Nikos Nikoleris <nikos.nikole...@arm.com>
Maintainer: Nikos Nikoleris <nikos.nikole...@arm.com>
---
M src/mem/cache/prefetch/queued.cc
M src/mem/cache/prefetch/stride.cc
M src/mem/cache/prefetch/tagged.cc
3 files changed, 14 insertions(+), 22 deletions(-)

Approvals:
  Nikos Nikoleris: Looks good to me, approved; Looks good to me, approved



diff --git a/src/mem/cache/prefetch/queued.cc b/src/mem/cache/prefetch/queued.cc
index f48ea18..bce6fbb 100644
--- a/src/mem/cache/prefetch/queued.cc
+++ b/src/mem/cache/prefetch/queued.cc
@@ -93,14 +93,20 @@
         // Block align prefetch address
         addr_prio.first = blockAddress(addr_prio.first);

-        PrefetchInfo new_pfi(pfi,addr_prio.first);
+        if (samePage(pfi.getAddr(), addr_prio.first)) {
+            PrefetchInfo new_pfi(pfi,addr_prio.first);

-        pfIdentified++;
-        DPRINTF(HWPrefetch, "Found a pf candidate addr: %#x, "
-                "inserting into prefetch queue.\n", new_pfi.getAddr());
+            pfIdentified++;
+            DPRINTF(HWPrefetch, "Found a pf candidate addr: %#x, "
+                    "inserting into prefetch queue.\n", new_pfi.getAddr());

-        // Create and insert the request
-        insert(pkt, new_pfi, addr_prio.second);
+            // Create and insert the request
+            insert(pkt, new_pfi, addr_prio.second);
+        } else {
+            // Record the number of page crossing prefetches generate
+            pfSpanPage += 1;
+            DPRINTF(HWPrefetch, "Ignoring page crossing prefetch.\n");
+        }
     }
 }

diff --git a/src/mem/cache/prefetch/stride.cc b/src/mem/cache/prefetch/stride.cc
index 5d00901..caddc75 100644
--- a/src/mem/cache/prefetch/stride.cc
+++ b/src/mem/cache/prefetch/stride.cc
@@ -195,15 +195,7 @@
             }

             Addr new_addr = pf_addr + d * prefetch_stride;
-            if (samePage(pf_addr, new_addr)) {
- DPRINTF(HWPrefetch, "Queuing prefetch to %#x.\n", new_addr);
-                addresses.push_back(AddrPriority(new_addr, 0));
-            } else {
-                // Record the number of page crossing prefetches generated
-                pfSpanPage += degree - d + 1;
-                DPRINTF(HWPrefetch, "Ignoring page crossing prefetch.\n");
-                return;
-            }
+            addresses.push_back(AddrPriority(new_addr, 0));
         }
     } else {
         // Miss in table
diff --git a/src/mem/cache/prefetch/tagged.cc b/src/mem/cache/prefetch/tagged.cc
index a360cc6..1623817 100644
--- a/src/mem/cache/prefetch/tagged.cc
+++ b/src/mem/cache/prefetch/tagged.cc
@@ -51,13 +51,7 @@

     for (int d = 1; d <= degree; d++) {
         Addr newAddr = blkAddr + d*(blkSize);
-        if (!samePage(blkAddr, newAddr)) {
-            // Count number of unissued prefetches due to page crossing
-            pfSpanPage += degree - d + 1;
-            return;
-        } else {
-            addresses.push_back(AddrPriority(newAddr,0));
-        }
+        addresses.push_back(AddrPriority(newAddr,0));
     }
 }


--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/14735
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: I0ae6bf8be465118990d9ea1cac0da8f70e69aeb1
Gerrit-Change-Number: 14735
Gerrit-PatchSet: 3
Gerrit-Owner: Javier Bueno Hedo <javier.bu...@metempsy.com>
Gerrit-Reviewer: Andreas Sandberg <andreas.sandb...@arm.com>
Gerrit-Reviewer: Daniel Carvalho <oda...@yahoo.com.br>
Gerrit-Reviewer: Giacomo Travaglini <giacomo.travagl...@arm.com>
Gerrit-Reviewer: Javier Bueno Hedo <javier.bu...@metempsy.com>
Gerrit-Reviewer: Nikos Nikoleris <nikos.nikole...@arm.com>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to