diff options
Diffstat (limited to 'src/mem/cache/prefetch/tagged.cc')
-rw-r--r-- | src/mem/cache/prefetch/tagged.cc | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/mem/cache/prefetch/tagged.cc b/src/mem/cache/prefetch/tagged.cc index f34b28b14..59c489a28 100644 --- a/src/mem/cache/prefetch/tagged.cc +++ b/src/mem/cache/prefetch/tagged.cc @@ -35,32 +35,30 @@ #include "mem/cache/prefetch/tagged.hh" -TaggedPrefetcher::TaggedPrefetcher(const Params *p) - : BasePrefetcher(p) +TaggedPrefetcher::TaggedPrefetcher(const TaggedPrefetcherParams *p) + : QueuedPrefetcher(p), degree(p->degree) { + } void -TaggedPrefetcher:: -calculatePrefetch(PacketPtr &pkt, std::list<Addr> &addresses, - std::list<Cycles> &delays) +TaggedPrefetcher::calculatePrefetch(const PacketPtr &pkt, + std::vector<Addr> &addresses) { Addr blkAddr = pkt->getAddr() & ~(Addr)(blkSize-1); for (int d = 1; d <= degree; d++) { Addr newAddr = blkAddr + d*(blkSize); - if (pageStop && !samePage(blkAddr, newAddr)) { - // Spanned the page, so now stop + if (!samePage(blkAddr, newAddr)) { + // Count number of unissued prefetches due to page crossing pfSpanPage += degree - d + 1; return; } else { addresses.push_back(newAddr); - delays.push_back(latency); } } } - TaggedPrefetcher* TaggedPrefetcherParams::create() { |