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 &ampm;
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