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