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