From 7e104a1af235823e3d641a972ea920937f7ec67d Mon Sep 17 00:00:00 2001 From: Mrinmoy Ghosh Date: Sun, 12 Feb 2012 16:07:38 -0600 Subject: prefetcher: Make prefetcher a sim object instead of it being a parameter on cache --- src/mem/cache/prefetch/Prefetcher.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/mem/cache/prefetch/Prefetcher.py (limited to 'src/mem/cache/prefetch/Prefetcher.py') diff --git a/src/mem/cache/prefetch/Prefetcher.py b/src/mem/cache/prefetch/Prefetcher.py new file mode 100644 index 000000000..c2c17fa96 --- /dev/null +++ b/src/mem/cache/prefetch/Prefetcher.py @@ -0,0 +1,35 @@ +from m5.SimObject import SimObject +from m5.params import * +class BasePrefetcher(SimObject): + type = 'BasePrefetcher' + abstract = True + size = Param.Int(100, + "Number of entries in the hardware prefetch queue") + cross_pages = Param.Bool(False, + "Allow prefetches to cross virtual page boundaries") + serial_squash = Param.Bool(False, + "Squash prefetches with a later time on a subsequent miss") + degree = Param.Int(1, + "Degree of the prefetch depth") + latency = Param.Latency('10t', + "Latency of the prefetcher") + use_cpu_id = Param.Bool(True, + "Use the CPU ID to separate calculations of prefetches") + data_accesses_only = Param.Bool(False, + "Only prefetch on data not on instruction accesses") + +class GHBPrefetcher(BasePrefetcher): + type = 'GHBPrefetcher' + cxx_class = 'GHBPrefetcher' + +class StridePrefetcher(BasePrefetcher): + type = 'StridePrefetcher' + cxx_class = 'StridePrefetcher' + +class TaggedPrefetcher(BasePrefetcher): + type = 'TaggedPrefetcher' + cxx_class = 'TaggedPrefetcher' + + + + -- cgit v1.2.3