Prefetcher.py (13735:52ab3bab4f28) Prefetcher.py (13772:31b71dadc472)
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

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

137
138class TaggedPrefetcher(QueuedPrefetcher):
139 type = 'TaggedPrefetcher'
140 cxx_class = 'TaggedPrefetcher'
141 cxx_header = "mem/cache/prefetch/tagged.hh"
142
143 degree = Param.Int(2, "Number of prefetches to generate")
144
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

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

137
138class TaggedPrefetcher(QueuedPrefetcher):
139 type = 'TaggedPrefetcher'
140 cxx_class = 'TaggedPrefetcher'
141 cxx_header = "mem/cache/prefetch/tagged.hh"
142
143 degree = Param.Int(2, "Number of prefetches to generate")
144
145class IndirectMemoryPrefetcher(QueuedPrefetcher):
146 type = 'IndirectMemoryPrefetcher'
147 cxx_class = 'IndirectMemoryPrefetcher'
148 cxx_header = "mem/cache/prefetch/indirect_memory.hh"
149 pt_table_entries = Param.MemorySize("16",
150 "Number of entries of the Prefetch Table")
151 pt_table_assoc = Param.Unsigned(16, "Associativity of the Prefetch Table")
152 pt_table_indexing_policy = Param.BaseIndexingPolicy(
153 SetAssociative(entry_size = 1, assoc = Parent.pt_table_assoc,
154 size = Parent.pt_table_entries),
155 "Indexing policy of the pattern table")
156 pt_table_replacement_policy = Param.BaseReplacementPolicy(LRURP(),
157 "Replacement policy of the pattern table")
158 max_prefetch_distance = Param.Unsigned(16, "Maximum prefetch distance")
159 max_indirect_counter_value = Param.Unsigned(8,
160 "Maximum value of the indirect counter")
161 ipd_table_entries = Param.MemorySize("4",
162 "Number of entries of the Indirect Pattern Detector")
163 ipd_table_assoc = Param.Unsigned(4,
164 "Associativity of the Indirect Pattern Detector")
165 ipd_table_indexing_policy = Param.BaseIndexingPolicy(
166 SetAssociative(entry_size = 1, assoc = Parent.ipd_table_assoc,
167 size = Parent.ipd_table_entries),
168 "Indexing policy of the Indirect Pattern Detector")
169 ipd_table_replacement_policy = Param.BaseReplacementPolicy(LRURP(),
170 "Replacement policy of the Indirect Pattern Detector")
171 shift_values = VectorParam.Int([2, 3, 4, -3], "Shift values to evaluate")
172 addr_array_len = Param.Unsigned(4, "Number of misses tracked")
173 prefetch_threshold = Param.Unsigned(2,
174 "Counter threshold to start the indirect prefetching")
175 stream_counter_threshold = Param.Unsigned(4,
176 "Counter threshold to enable the stream prefetcher")
177 streaming_distance = Param.Unsigned(4,
178 "Number of prefetches to generate when using the stream prefetcher")
179
145class SignaturePathPrefetcher(QueuedPrefetcher):
146 type = 'SignaturePathPrefetcher'
147 cxx_class = 'SignaturePathPrefetcher'
148 cxx_header = "mem/cache/prefetch/signature_path.hh"
149
150 signature_shift = Param.UInt8(3,
151 "Number of bits to shift when calculating a new signature");
152 signature_bits = Param.UInt16(12,

--- 223 unchanged lines hidden ---
180class SignaturePathPrefetcher(QueuedPrefetcher):
181 type = 'SignaturePathPrefetcher'
182 cxx_class = 'SignaturePathPrefetcher'
183 cxx_header = "mem/cache/prefetch/signature_path.hh"
184
185 signature_shift = Param.UInt8(3,
186 "Number of bits to shift when calculating a new signature");
187 signature_bits = Param.UInt16(12,

--- 223 unchanged lines hidden ---