ReplacementPolicies.py revision 12627:33d3bb6f19a5
14484Sbinkertn@umich.edu# Copyright (c) 2018 Inria 24484Sbinkertn@umich.edu# All rights reserved. 34484Sbinkertn@umich.edu# 44484Sbinkertn@umich.edu# Redistribution and use in source and binary forms, with or without 54484Sbinkertn@umich.edu# modification, are permitted provided that the following conditions are 64484Sbinkertn@umich.edu# met: redistributions of source code must retain the above copyright 74484Sbinkertn@umich.edu# notice, this list of conditions and the following disclaimer; 84484Sbinkertn@umich.edu# redistributions in binary form must reproduce the above copyright 94484Sbinkertn@umich.edu# notice, this list of conditions and the following disclaimer in the 104484Sbinkertn@umich.edu# documentation and/or other materials provided with the distribution; 114484Sbinkertn@umich.edu# neither the name of the copyright holders nor the names of its 124484Sbinkertn@umich.edu# contributors may be used to endorse or promote products derived from 134484Sbinkertn@umich.edu# this software without specific prior written permission. 144484Sbinkertn@umich.edu# 154484Sbinkertn@umich.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 164484Sbinkertn@umich.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 174484Sbinkertn@umich.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 184484Sbinkertn@umich.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 194484Sbinkertn@umich.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 204484Sbinkertn@umich.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 214484Sbinkertn@umich.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 224484Sbinkertn@umich.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 234484Sbinkertn@umich.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 244484Sbinkertn@umich.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 254484Sbinkertn@umich.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 264484Sbinkertn@umich.edu# 274484Sbinkertn@umich.edu# Authors: Daniel Carvalho 284484Sbinkertn@umich.edu 294484Sbinkertn@umich.edufrom m5.params import * 304484Sbinkertn@umich.edufrom m5.proxy import * 314484Sbinkertn@umich.edufrom m5.SimObject import SimObject 324484Sbinkertn@umich.edu 334484Sbinkertn@umich.educlass BaseReplacementPolicy(SimObject): 344484Sbinkertn@umich.edu type = 'BaseReplacementPolicy' 354484Sbinkertn@umich.edu abstract = True 364484Sbinkertn@umich.edu cxx_header = "mem/cache/replacement_policies/base.hh" 374484Sbinkertn@umich.edu 384484Sbinkertn@umich.educlass FIFORP(BaseReplacementPolicy): 394484Sbinkertn@umich.edu type = 'FIFORP' 404484Sbinkertn@umich.edu cxx_class = 'FIFORP' 414484Sbinkertn@umich.edu cxx_header = "mem/cache/replacement_policies/fifo_rp.hh" 424484Sbinkertn@umich.edu 434484Sbinkertn@umich.educlass LRURP(BaseReplacementPolicy): 444484Sbinkertn@umich.edu type = 'LRURP' 454484Sbinkertn@umich.edu cxx_class = 'LRURP' 464484Sbinkertn@umich.edu cxx_header = "mem/cache/replacement_policies/lru_rp.hh" 474484Sbinkertn@umich.edu 484484Sbinkertn@umich.educlass MRURP(BaseReplacementPolicy): 494484Sbinkertn@umich.edu type = 'MRURP' 504484Sbinkertn@umich.edu cxx_class = 'MRURP' 514484Sbinkertn@umich.edu cxx_header = "mem/cache/replacement_policies/mru_rp.hh" 524484Sbinkertn@umich.edu 534484Sbinkertn@umich.educlass RandomRP(BaseReplacementPolicy): 544484Sbinkertn@umich.edu type = 'RandomRP' 554484Sbinkertn@umich.edu cxx_class = 'RandomRP' 564484Sbinkertn@umich.edu cxx_header = "mem/cache/replacement_policies/random_rp.hh" 574484Sbinkertn@umich.edu 584484Sbinkertn@umich.educlass BRRIPRP(BaseReplacementPolicy): 594484Sbinkertn@umich.edu type = 'BRRIPRP' 604484Sbinkertn@umich.edu cxx_class = 'BRRIPRP' 614484Sbinkertn@umich.edu cxx_header = "mem/cache/replacement_policies/brrip_rp.hh" 624484Sbinkertn@umich.edu max_RRPV = Param.Unsigned(3, "Maximum RRPV possible") 634484Sbinkertn@umich.edu hit_priority = Param.Bool(False, 644484Sbinkertn@umich.edu "Prioritize evicting blocks that havent had a hit recently") 654484Sbinkertn@umich.edu btp = Param.Percent(3, 664484Sbinkertn@umich.edu "Percentage of blocks to be inserted with long RRPV") 674484Sbinkertn@umich.edu 684484Sbinkertn@umich.educlass RRIPRP(BRRIPRP): 694484Sbinkertn@umich.edu btp = 0 704484Sbinkertn@umich.edu