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") |
|