snoop_filter.hh (10399:0644819fc32f) | snoop_filter.hh (10403:b3231fc8ae9d) |
---|---|
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 | 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 |
|
191 protected: 192 typedef uint64_t SnoopMask; 193 /** 194 * Per cache line item tracking a bitmask of SlavePorts who have an 195 * outstanding request to this line (requested) or already share a cache line 196 * with this address (holder). 197 */ 198 struct SnoopItem { --- 23 unchanged lines hidden (view full) --- 222 /** Simple hash set of cached addresses. */ 223 m5::hash_map<Addr, SnoopItem> cachedLocations; 224 /** List of all attached slave ports. */ 225 SnoopList slavePorts; 226 /** Cache line size. */ 227 const unsigned linesize; 228 /** Latency for doing a lookup in the filter */ 229 const Cycles lookupLatency; | 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; |
|
230}; 231 232inline SnoopFilter::SnoopMask 233SnoopFilter::portToMask(const SlavePort& port) const 234{ 235 unsigned id = (unsigned)port.getId(); 236 assert(id != (unsigned)InvalidPortID); 237 assert((int)id < 8 * sizeof(SnoopMask)); --- 23 unchanged lines hidden --- | 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 --- |