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), 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 --- |