mem: Rework the structuring of the prefetchers
authorMitch Hayenga <mitch.hayenga@arm.com>
Tue, 23 Dec 2014 14:31:18 +0000 (09:31 -0500)
committerMitch Hayenga <mitch.hayenga@arm.com>
Tue, 23 Dec 2014 14:31:18 +0000 (09:31 -0500)
commitdf82a2d00311b96ec7fefc901232ba01bbf26d39
treeef7d4ac6cc316d9a67eada5df423d32cef97173d
parent6cb58b2bd2ffd19a667e3b9473ff4a0ccfd14c81
mem: Rework the structuring of the prefetchers

Re-organizes the prefetcher class structure. Previously the
BasePrefetcher forced multiple assumptions on the prefetchers that
inherited from it. This patch makes the BasePrefetcher class truly
representative of base functionality. For example, the base class no
longer enforces FIFO order. Instead, prefetchers with FIFO requests
(like the existing stride and tagged prefetchers) now inherit from a
new QueuedPrefetcher base class.

Finally, the stride-based prefetcher now assumes a custimizable lookup table
(sets/ways) rather than the previous fully associative structure.
src/mem/cache/cache_impl.hh
src/mem/cache/prefetch/Prefetcher.py
src/mem/cache/prefetch/SConscript
src/mem/cache/prefetch/base.cc
src/mem/cache/prefetch/base.hh
src/mem/cache/prefetch/queued.cc [new file with mode: 0644]
src/mem/cache/prefetch/queued.hh [new file with mode: 0644]
src/mem/cache/prefetch/stride.cc
src/mem/cache/prefetch/stride.hh
src/mem/cache/prefetch/tagged.cc
src/mem/cache/prefetch/tagged.hh