Deleted Added
sdiff udiff text old ( 13554:f16adb9b35cc ) new ( 13700:56fa28e6fab4 )
full compact
1/**
2 * Copyright (c) 2018 Metempsy Technology Consulting
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

39
40#ifndef __MEM_CACHE_PREFETCH_ACCESS_MAP_PATTERN_MATCHING_HH__
41#define __MEM_CACHE_PREFETCH_ACCESS_MAP_PATTERN_MATCHING_HH__
42
43#include "mem/cache/base.hh"
44#include "mem/cache/prefetch/associative_set.hh"
45#include "mem/cache/prefetch/queued.hh"
46#include "mem/packet.hh"
47
48struct AccessMapPatternMatchingPrefetcherParams;
49
50class AccessMapPatternMatchingPrefetcher : public QueuedPrefetcher
51{
52 /** Maximum number of prefetch generated */
53 const unsigned startDegree;
54 /** Amount of memory covered by a hot zone */
55 const uint64_t hotZoneSize;
56 /** A prefetch coverage factor bigger than this is considered high */
57 const double highCoverageThreshold;
58 /** A prefetch coverage factor smaller than this is considered low */
59 const double lowCoverageThreshold;

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

168 * This event constitues the epoch of the statistics that keep track of
169 * the prefetcher accuracy, when this event triggers, the prefetcher degree
170 * is adjusted and the statistics counters are reset.
171 */
172 void processEpochEvent();
173 EventFunctionWrapper epochEvent;
174
175 public:
176 AccessMapPatternMatchingPrefetcher(
177 const AccessMapPatternMatchingPrefetcherParams* p);
178 ~AccessMapPatternMatchingPrefetcher() {}
179 void calculatePrefetch(const PrefetchInfo &pfi,
180 std::vector<AddrPriority> &addresses) override;
181};
182#endif//__MEM_CACHE_PREFETCH_ACCESS_MAP_PATTERN_MATCHING_HH__