1from m5.SimObject import SimObject 2from m5.params import *
| 1from m5.SimObject import SimObject 2from m5.params import *
|
| 3from m5.proxy import * 4
|
3class BasePrefetcher(SimObject): 4 type = 'BasePrefetcher' 5 abstract = True 6 size = Param.Int(100, 7 "Number of entries in the hardware prefetch queue") 8 cross_pages = Param.Bool(False, 9 "Allow prefetches to cross virtual page boundaries") 10 serial_squash = Param.Bool(False, 11 "Squash prefetches with a later time on a subsequent miss") 12 degree = Param.Int(1, 13 "Degree of the prefetch depth") 14 latency = Param.Latency('10t', 15 "Latency of the prefetcher")
| 5class BasePrefetcher(SimObject): 6 type = 'BasePrefetcher' 7 abstract = True 8 size = Param.Int(100, 9 "Number of entries in the hardware prefetch queue") 10 cross_pages = Param.Bool(False, 11 "Allow prefetches to cross virtual page boundaries") 12 serial_squash = Param.Bool(False, 13 "Squash prefetches with a later time on a subsequent miss") 14 degree = Param.Int(1, 15 "Degree of the prefetch depth") 16 latency = Param.Latency('10t', 17 "Latency of the prefetcher")
|
16 use_cpu_id = Param.Bool(True, 17 "Use the CPU ID to separate calculations of prefetches")
| 18 use_master_id = Param.Bool(True, 19 "Use the master id to separate calculations of prefetches")
|
18 data_accesses_only = Param.Bool(False, 19 "Only prefetch on data not on instruction accesses")
| 20 data_accesses_only = Param.Bool(False, 21 "Only prefetch on data not on instruction accesses")
|
| 22 sys = Param.System(Parent.any, "System this device belongs to")
|
20 21class GHBPrefetcher(BasePrefetcher): 22 type = 'GHBPrefetcher' 23 cxx_class = 'GHBPrefetcher' 24 25class StridePrefetcher(BasePrefetcher): 26 type = 'StridePrefetcher' 27 cxx_class = 'StridePrefetcher' 28 29class TaggedPrefetcher(BasePrefetcher): 30 type = 'TaggedPrefetcher' 31 cxx_class = 'TaggedPrefetcher' 32 33 34 35
| 23 24class GHBPrefetcher(BasePrefetcher): 25 type = 'GHBPrefetcher' 26 cxx_class = 'GHBPrefetcher' 27 28class StridePrefetcher(BasePrefetcher): 29 type = 'StridePrefetcher' 30 cxx_class = 'StridePrefetcher' 31 32class TaggedPrefetcher(BasePrefetcher): 33 type = 'TaggedPrefetcher' 34 cxx_class = 'TaggedPrefetcher' 35 36 37 38
|