1/* 2 * Copyright (c) 2013 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 --- 174 unchanged lines hidden (view full) --- 183 return std::make_pair(slave_ports, latency); 184 } 185 std::pair<SnoopList, Cycles> snoopDown(Cycles latency) const 186 { 187 SnoopList empty; 188 return std::make_pair(empty , latency); 189 } 190 |
191 virtual void regStats(); 192 |
193 protected: 194 typedef uint64_t SnoopMask; 195 /** 196 * Per cache line item tracking a bitmask of SlavePorts who have an 197 * outstanding request to this line (requested) or already share a cache line 198 * with this address (holder). 199 */ 200 struct SnoopItem { --- 23 unchanged lines hidden (view full) --- 224 /** Simple hash set of cached addresses. */ 225 m5::hash_map<Addr, SnoopItem> cachedLocations; 226 /** List of all attached slave ports. */ 227 SnoopList slavePorts; 228 /** Cache line size. */ 229 const unsigned linesize; 230 /** Latency for doing a lookup in the filter */ 231 const Cycles lookupLatency; |
232 233 /** Statistics */ 234 Stats::Scalar totRequests; 235 Stats::Scalar hitSingleRequests; 236 Stats::Scalar hitMultiRequests; 237 238 Stats::Scalar totSnoops; 239 Stats::Scalar hitSingleSnoops; 240 Stats::Scalar hitMultiSnoops; |
241}; 242 243inline SnoopFilter::SnoopMask 244SnoopFilter::portToMask(const SlavePort& port) const 245{ 246 unsigned id = (unsigned)port.getId(); 247 assert(id != (unsigned)InvalidPortID); 248 assert((int)id < 8 * sizeof(SnoopMask)); --- 23 unchanged lines hidden --- |