Prefetcher.py revision 8831
14202Sbinkertn@umich.edufrom m5.SimObject import SimObject
24202Sbinkertn@umich.edufrom m5.params import *
34202Sbinkertn@umich.educlass BasePrefetcher(SimObject):
44202Sbinkertn@umich.edu    type = 'BasePrefetcher'
54202Sbinkertn@umich.edu    abstract = True
64202Sbinkertn@umich.edu    size = Param.Int(100,
74202Sbinkertn@umich.edu         "Number of entries in the hardware prefetch queue")
84202Sbinkertn@umich.edu    cross_pages = Param.Bool(False,
94202Sbinkertn@umich.edu         "Allow prefetches to cross virtual page boundaries")
104202Sbinkertn@umich.edu    serial_squash = Param.Bool(False,
114202Sbinkertn@umich.edu         "Squash prefetches with a later time on a subsequent miss")
124202Sbinkertn@umich.edu    degree = Param.Int(1,
134202Sbinkertn@umich.edu         "Degree of the prefetch depth")
144202Sbinkertn@umich.edu    latency = Param.Latency('10t',
154202Sbinkertn@umich.edu         "Latency of the prefetcher")
164202Sbinkertn@umich.edu    use_cpu_id = Param.Bool(True,
174202Sbinkertn@umich.edu         "Use the CPU ID to separate calculations of prefetches")
184202Sbinkertn@umich.edu    data_accesses_only = Param.Bool(False,
194202Sbinkertn@umich.edu         "Only prefetch on data not on instruction accesses")
204202Sbinkertn@umich.edu
214202Sbinkertn@umich.educlass GHBPrefetcher(BasePrefetcher):
224202Sbinkertn@umich.edu    type = 'GHBPrefetcher'
234202Sbinkertn@umich.edu    cxx_class = 'GHBPrefetcher'
244202Sbinkertn@umich.edu
254202Sbinkertn@umich.educlass StridePrefetcher(BasePrefetcher):
264202Sbinkertn@umich.edu    type = 'StridePrefetcher'
274202Sbinkertn@umich.edu    cxx_class = 'StridePrefetcher'
284202Sbinkertn@umich.edu
294202Sbinkertn@umich.educlass TaggedPrefetcher(BasePrefetcher):
304202Sbinkertn@umich.edu    type = 'TaggedPrefetcher'
314202Sbinkertn@umich.edu    cxx_class = 'TaggedPrefetcher'
324202Sbinkertn@umich.edu
334202Sbinkertn@umich.edu
344202Sbinkertn@umich.edu
354202Sbinkertn@umich.edu
364486Sbinkertn@umich.edu