Prefetcher.py (13551:f352df8e2863) Prefetcher.py (13553:047def1fa787)
1# Copyright (c) 2012, 2014 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

--- 26 unchanged lines hidden (view full) ---

35# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38#
39# Authors: Ron Dreslinski
40# Mitch Hayenga
41
42from ClockedObject import ClockedObject
1# Copyright (c) 2012, 2014 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

--- 26 unchanged lines hidden (view full) ---

35# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38#
39# Authors: Ron Dreslinski
40# Mitch Hayenga
41
42from ClockedObject import ClockedObject
43from IndexingPolicies import *
43from m5.SimObject import *
44from m5.params import *
45from m5.proxy import *
46from ReplacementPolicies import *
47
48class HWPProbeEvent(object):
49 def __init__(self, prefetcher, obj, *listOfNames):
50 self.obj = obj

--- 83 unchanged lines hidden (view full) ---

134 "Replacement policy")
135
136class TaggedPrefetcher(QueuedPrefetcher):
137 type = 'TaggedPrefetcher'
138 cxx_class = 'TaggedPrefetcher'
139 cxx_header = "mem/cache/prefetch/tagged.hh"
140
141 degree = Param.Int(2, "Number of prefetches to generate")
44from m5.SimObject import *
45from m5.params import *
46from m5.proxy import *
47from ReplacementPolicies import *
48
49class HWPProbeEvent(object):
50 def __init__(self, prefetcher, obj, *listOfNames):
51 self.obj = obj

--- 83 unchanged lines hidden (view full) ---

135 "Replacement policy")
136
137class TaggedPrefetcher(QueuedPrefetcher):
138 type = 'TaggedPrefetcher'
139 cxx_class = 'TaggedPrefetcher'
140 cxx_header = "mem/cache/prefetch/tagged.hh"
141
142 degree = Param.Int(2, "Number of prefetches to generate")
143
144class SignaturePathPrefetcher(QueuedPrefetcher):
145 type = 'SignaturePathPrefetcher'
146 cxx_class = 'SignaturePathPrefetcher'
147 cxx_header = "mem/cache/prefetch/signature_path.hh"
148
149 signature_shift = Param.UInt8(3,
150 "Number of bits to shift when calculating a new signature");
151 signature_bits = Param.UInt16(12,
152 "Size of the signature, in bits");
153 signature_table_entries = Param.MemorySize("1024",
154 "Number of entries of the signature table")
155 signature_table_assoc = Param.Unsigned(2,
156 "Associativity of the signature table")
157 signature_table_indexing_policy = Param.BaseIndexingPolicy(
158 SetAssociative(entry_size = 1, assoc = Parent.signature_table_assoc,
159 size = Parent.signature_table_entries),
160 "Indexing policy of the signature table")
161 signature_table_replacement_policy = Param.BaseReplacementPolicy(LRURP(),
162 "Replacement policy of the signature table")
163
164 max_counter_value = Param.UInt8(7, "Maximum pattern counter value")
165 pattern_table_entries = Param.MemorySize("4096",
166 "Number of entries of the pattern table")
167 pattern_table_assoc = Param.Unsigned(1,
168 "Associativity of the pattern table")
169 strides_per_pattern_entry = Param.Unsigned(4,
170 "Number of strides stored in each pattern entry")
171 pattern_table_indexing_policy = Param.BaseIndexingPolicy(
172 SetAssociative(entry_size = 1, assoc = Parent.pattern_table_assoc,
173 size = Parent.pattern_table_entries),
174 "Indexing policy of the pattern table")
175 pattern_table_replacement_policy = Param.BaseReplacementPolicy(LRURP(),
176 "Replacement policy of the pattern table")
177
178 prefetch_confidence_threshold = Param.Float(0.5,
179 "Minimum confidence to issue prefetches")
180 lookahead_confidence_threshold = Param.Float(0.75,
181 "Minimum confidence to continue exploring lookahead entries")