Prefetcher.py (13669:24ef552b4d6d) Prefetcher.py (13700:56fa28e6fab4)
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

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

199 global_history_register_indexing_policy = Param.BaseIndexingPolicy(
200 SetAssociative(entry_size = 1,
201 assoc = Parent.global_history_register_entries,
202 size = Parent.global_history_register_entries),
203 "Indexing policy of the global history register")
204 global_history_register_replacement_policy = Param.BaseReplacementPolicy(
205 LRURP(), "Replacement policy of the global history register")
206
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

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

199 global_history_register_indexing_policy = Param.BaseIndexingPolicy(
200 SetAssociative(entry_size = 1,
201 assoc = Parent.global_history_register_entries,
202 size = Parent.global_history_register_entries),
203 "Indexing policy of the global history register")
204 global_history_register_replacement_policy = Param.BaseReplacementPolicy(
205 LRURP(), "Replacement policy of the global history register")
206
207class AccessMapPatternMatchingPrefetcher(QueuedPrefetcher):
208 type = 'AccessMapPatternMatchingPrefetcher'
209 cxx_class = 'AccessMapPatternMatchingPrefetcher'
207class AccessMapPatternMatching(ClockedObject):
208 type = 'AccessMapPatternMatching'
209 cxx_class = 'AccessMapPatternMatching'
210 cxx_header = "mem/cache/prefetch/access_map_pattern_matching.hh"
211
210 cxx_header = "mem/cache/prefetch/access_map_pattern_matching.hh"
211
212 block_size = Param.Unsigned(Parent.block_size,
213 "Cacheline size used by the prefetcher using this object")
214
215 limit_stride = Param.Unsigned(0,
216 "Limit the strides checked up to -X/X, if 0, disable the limit")
212 start_degree = Param.Unsigned(4,
213 "Initial degree (Maximum number of prefetches generated")
214 hot_zone_size = Param.MemorySize("2kB", "Memory covered by a hot zone")
215 access_map_table_entries = Param.MemorySize("256",
216 "Number of entries in the access map table")
217 access_map_table_assoc = Param.Unsigned(8,
218 "Associativity of the access map table")
219 access_map_table_indexing_policy = Param.BaseIndexingPolicy(

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

233 high_cache_hit_threshold = Param.Float(0.875,
234 "A cache hit ratio bigger than this is considered high")
235 low_cache_hit_threshold = Param.Float(0.75,
236 "A cache hit ratio smaller than this is considered low")
237 epoch_cycles = Param.Cycles(256000, "Cycles in an epoch period")
238 offchip_memory_latency = Param.Latency("30ns",
239 "Memory latency used to compute the required memory bandwidth")
240
217 start_degree = Param.Unsigned(4,
218 "Initial degree (Maximum number of prefetches generated")
219 hot_zone_size = Param.MemorySize("2kB", "Memory covered by a hot zone")
220 access_map_table_entries = Param.MemorySize("256",
221 "Number of entries in the access map table")
222 access_map_table_assoc = Param.Unsigned(8,
223 "Associativity of the access map table")
224 access_map_table_indexing_policy = Param.BaseIndexingPolicy(

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

238 high_cache_hit_threshold = Param.Float(0.875,
239 "A cache hit ratio bigger than this is considered high")
240 low_cache_hit_threshold = Param.Float(0.75,
241 "A cache hit ratio smaller than this is considered low")
242 epoch_cycles = Param.Cycles(256000, "Cycles in an epoch period")
243 offchip_memory_latency = Param.Latency("30ns",
244 "Memory latency used to compute the required memory bandwidth")
245
246class AMPMPrefetcher(QueuedPrefetcher):
247 type = 'AMPMPrefetcher'
248 cxx_class = 'AMPMPrefetcher'
249 cxx_header = "mem/cache/prefetch/access_map_pattern_matching.hh"
250 ampm = Param.AccessMapPatternMatching( AccessMapPatternMatching(),
251 "Access Map Pattern Matching object")
252
241class DeltaCorrelatingPredictionTables(SimObject):
242 type = 'DeltaCorrelatingPredictionTables'
243 cxx_class = 'DeltaCorrelatingPredictionTables'
244 cxx_header = "mem/cache/prefetch/delta_correlating_prediction_tables.hh"
245 deltas_per_entry = Param.Unsigned(20,
246 "Number of deltas stored in each table entry")
247 delta_bits = Param.Unsigned(12, "Bits per delta")
248 delta_mask_bits = Param.Unsigned(8,

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

304 sp_address_map_cache_indexing_policy = Param.BaseIndexingPolicy(
305 SetAssociative(entry_size = 1,
306 assoc = Parent.address_map_cache_assoc,
307 size = Parent.address_map_cache_entries),
308 "Indexing policy of the Structural-to-Physical Address Mao Cache")
309 sp_address_map_cache_replacement_policy = Param.BaseReplacementPolicy(
310 LRURP(),
311 "Replacement policy of the Structural-to-Physical Address Map Cache")
253class DeltaCorrelatingPredictionTables(SimObject):
254 type = 'DeltaCorrelatingPredictionTables'
255 cxx_class = 'DeltaCorrelatingPredictionTables'
256 cxx_header = "mem/cache/prefetch/delta_correlating_prediction_tables.hh"
257 deltas_per_entry = Param.Unsigned(20,
258 "Number of deltas stored in each table entry")
259 delta_bits = Param.Unsigned(12, "Bits per delta")
260 delta_mask_bits = Param.Unsigned(8,

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

316 sp_address_map_cache_indexing_policy = Param.BaseIndexingPolicy(
317 SetAssociative(entry_size = 1,
318 assoc = Parent.address_map_cache_assoc,
319 size = Parent.address_map_cache_entries),
320 "Indexing policy of the Structural-to-Physical Address Mao Cache")
321 sp_address_map_cache_replacement_policy = Param.BaseReplacementPolicy(
322 LRURP(),
323 "Replacement policy of the Structural-to-Physical Address Map Cache")
324
325class SlimAccessMapPatternMatching(AccessMapPatternMatching):
326 start_degree = 2
327 limit_stride = 4
328
329class SlimDeltaCorrelatingPredictionTables(DeltaCorrelatingPredictionTables):
330 table_entries = "256"
331 table_assoc = 256
332 deltas_per_entry = 9
333
334class SlimAMPMPrefetcher(QueuedPrefetcher):
335 type = 'SlimAMPMPrefetcher'
336 cxx_class = 'SlimAMPMPrefetcher'
337 cxx_header = "mem/cache/prefetch/slim_ampm.hh"
338
339 ampm = Param.AccessMapPatternMatching(SlimAccessMapPatternMatching(),
340 "Access Map Pattern Matching object")
341 dcpt = Param.DeltaCorrelatingPredictionTables(
342 SlimDeltaCorrelatingPredictionTables(),
343 "Delta Correlating Prediction Tables object")