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