slim_ampm.hh revision 13700
16019Shines@cs.fsu.edu/** 26019Shines@cs.fsu.edu * Copyright (c) 2018 Metempsy Technology Consulting 312763Sgiacomo.travaglini@arm.com * All rights reserved. 47101Sgblack@eecs.umich.edu * 57101Sgblack@eecs.umich.edu * Redistribution and use in source and binary forms, with or without 67101Sgblack@eecs.umich.edu * modification, are permitted provided that the following conditions are 77101Sgblack@eecs.umich.edu * met: redistributions of source code must retain the above copyright 87101Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer; 97101Sgblack@eecs.umich.edu * redistributions in binary form must reproduce the above copyright 107101Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer in the 117101Sgblack@eecs.umich.edu * documentation and/or other materials provided with the distribution; 127101Sgblack@eecs.umich.edu * neither the name of the copyright holders nor the names of its 137101Sgblack@eecs.umich.edu * contributors may be used to endorse or promote products derived from 147101Sgblack@eecs.umich.edu * this software without specific prior written permission. 156019Shines@cs.fsu.edu * 166019Shines@cs.fsu.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 176019Shines@cs.fsu.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 186019Shines@cs.fsu.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 196019Shines@cs.fsu.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 206019Shines@cs.fsu.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 216019Shines@cs.fsu.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 226019Shines@cs.fsu.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 236019Shines@cs.fsu.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 246019Shines@cs.fsu.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 256019Shines@cs.fsu.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 266019Shines@cs.fsu.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 276019Shines@cs.fsu.edu * 286019Shines@cs.fsu.edu * Authors: Javier Bueno 296019Shines@cs.fsu.edu */ 306019Shines@cs.fsu.edu 316019Shines@cs.fsu.edu#ifndef __MEM_CACHE_PREFETCH_SLIM_AMPM_HH__ 326019Shines@cs.fsu.edu#define __MEM_CACHE_PREFETCH_SLIM_AMPM_HH__ 336019Shines@cs.fsu.edu 346019Shines@cs.fsu.edu#include "mem/cache/prefetch/access_map_pattern_matching.hh" 356019Shines@cs.fsu.edu#include "mem/cache/prefetch/delta_correlating_prediction_tables.hh" 366019Shines@cs.fsu.edu#include "mem/cache/prefetch/queued.hh" 376019Shines@cs.fsu.edu 386019Shines@cs.fsu.edu/** 396019Shines@cs.fsu.edu * The SlimAMPM Prefetcher 406019Shines@cs.fsu.edu * Reference: 416019Shines@cs.fsu.edu * Towards Bandwidth-Efficient Prefetching with Slim AMPM. 426019Shines@cs.fsu.edu * Young, Vinson, and A. Krishna. 436019Shines@cs.fsu.edu * The 2nd Data Prefetching Championship (2015). 446019Shines@cs.fsu.edu * 456019Shines@cs.fsu.edu * This prefetcher uses two other prefetchers, the AMPM and the DCPT. 466019Shines@cs.fsu.edu */ 476019Shines@cs.fsu.edu 486019Shines@cs.fsu.edustruct SlimAMPMPrefetcherParams; 4910611SAndreas.Sandberg@ARM.com 5012763Sgiacomo.travaglini@arm.comclass SlimAMPMPrefetcher : public QueuedPrefetcher 5110611SAndreas.Sandberg@ARM.com{ 526268Sgblack@eecs.umich.edu /** AMPM prefetcher object */ 536251Sgblack@eecs.umich.edu AccessMapPatternMatching &m; 546269Sgblack@eecs.umich.edu /** DCPT prefetcher object */ 556269Sgblack@eecs.umich.edu DeltaCorrelatingPredictionTables &dcpt; 566749Sgblack@eecs.umich.edu public: 577105Sgblack@eecs.umich.edu SlimAMPMPrefetcher(const SlimAMPMPrefetcherParams *p); 587161Sgblack@eecs.umich.edu ~SlimAMPMPrefetcher() 596251Sgblack@eecs.umich.edu {} 606251Sgblack@eecs.umich.edu 616251Sgblack@eecs.umich.edu void calculatePrefetch(const PrefetchInfo &pfi, 627105Sgblack@eecs.umich.edu std::vector<AddrPriority> &addresses) override; 637105Sgblack@eecs.umich.edu}; 647105Sgblack@eecs.umich.edu#endif//__MEM_CACHE_PREFETCH_SLIM_AMPM_HH__ 657105Sgblack@eecs.umich.edu