1/*
2 * Copyright (c) 2013-2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

85 * requesting MSHRs track order between local requests and remote snoops
86 */
87class SnoopFilter : public SimObject {
88 public:
89 typedef std::vector<QueuedSlavePort*> SnoopList;
90
91 SnoopFilter (const SnoopFilterParams *p) :
92 SimObject(p), reqLookupResult(cachedLocations.end()), retryItem{0, 0},
93 linesize(p->system->cacheLineSize()), lookupLatency(p->lookup_latency)
93 linesize(p->system->cacheLineSize()), lookupLatency(p->lookup_latency),
94 maxEntryCount(p->max_capacity / p->system->cacheLineSize())
95 {
96 }
97
98 /**
99 * Init a new snoop filter and tell it about all the slave ports of the
100 * enclosing bus.
101 *
102 * @param bus_slave_ports Vector of slave ports that the bus is attached to.

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

250 */
251 SnoopItem retryItem;
252 /** List of all attached slave ports. */
253 SnoopList slavePorts;
254 /** Cache line size. */
255 const unsigned linesize;
256 /** Latency for doing a lookup in the filter */
257 const Cycles lookupLatency;
258 /** Max capacity in terms of cache blocks tracked, for sanity checking */
259 const unsigned maxEntryCount;
260
261 /** Statistics */
262 Stats::Scalar totRequests;
263 Stats::Scalar hitSingleRequests;
264 Stats::Scalar hitMultiRequests;
265
266 Stats::Scalar totSnoops;
267 Stats::Scalar hitSingleSnoops;

--- 32 unchanged lines hidden ---