1# Copyright (c) 2012 ARM Limited 2# All rights reserved. 3# 4# The license below extends only to copyright in the software and shall 5# not be construed as granting a license to any other intellectual 6# property including but not limited to intellectual property relating 7# to a hardware implementation of the functionality of the software 8# licensed hereunder. You may use the software subject to the license --- 31 unchanged lines hidden (view full) --- 40 41from ClockedObject import ClockedObject 42from m5.params import * 43from m5.proxy import * 44 45class BasePrefetcher(ClockedObject): 46 type = 'BasePrefetcher' 47 abstract = True |
48 cxx_header = "mem/cache/prefetch/base.hh" |
49 size = Param.Int(100, 50 "Number of entries in the hardware prefetch queue") 51 cross_pages = Param.Bool(False, 52 "Allow prefetches to cross virtual page boundaries") 53 serial_squash = Param.Bool(False, 54 "Squash prefetches with a later time on a subsequent miss") 55 degree = Param.Int(1, 56 "Degree of the prefetch depth") 57 latency = Param.Cycles('1', "Latency of the prefetcher") 58 use_master_id = Param.Bool(True, 59 "Use the master id to separate calculations of prefetches") 60 data_accesses_only = Param.Bool(False, 61 "Only prefetch on data not on instruction accesses") 62 sys = Param.System(Parent.any, "System this device belongs to") 63 64class GHBPrefetcher(BasePrefetcher): 65 type = 'GHBPrefetcher' 66 cxx_class = 'GHBPrefetcher' |
67 cxx_header = "mem/cache/prefetch/ghb.hh" |
68 69class StridePrefetcher(BasePrefetcher): 70 type = 'StridePrefetcher' 71 cxx_class = 'StridePrefetcher' |
72 cxx_header = "mem/cache/prefetch/stride.hh" |
73 74class TaggedPrefetcher(BasePrefetcher): 75 type = 'TaggedPrefetcher' 76 cxx_class = 'TaggedPrefetcher' |
77 cxx_header = "mem/cache/prefetch/tagged.hh" |
78 79 80 81 |