coherent_xbar.hh (11190:0964165d1857) | coherent_xbar.hh (11334:9bd2e84abdca) |
---|---|
1/* 2 * Copyright (c) 2011-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 --- 259 unchanged lines hidden (view full) --- 268 269 /** A snoop filter that tracks cache line residency and can restrict the 270 * broadcast needed for probes. NULL denotes an absent filter. */ 271 SnoopFilter *snoopFilter; 272 273 /** Cycles of snoop response latency.*/ 274 const Cycles snoopResponseLatency; 275 | 1/* 2 * Copyright (c) 2011-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 --- 259 unchanged lines hidden (view full) --- 268 269 /** A snoop filter that tracks cache line residency and can restrict the 270 * broadcast needed for probes. NULL denotes an absent filter. */ 271 SnoopFilter *snoopFilter; 272 273 /** Cycles of snoop response latency.*/ 274 const Cycles snoopResponseLatency; 275 |
276 /** Is this crossbar the point of coherency? **/ 277 const bool pointOfCoherency; 278 |
|
276 /** 277 * Upstream caches need this packet until true is returned, so 278 * hold it for deletion until a subsequent call 279 */ 280 std::unique_ptr<Packet> pendingDelete; 281 282 /** Function called by the port when the crossbar is recieving a Timing 283 request packet.*/ --- 95 unchanged lines hidden (view full) --- 379 * excluding one of the connected coherent masters to avoid 380 * sending a packet back to where it came from. 381 * 382 * @param pkt Packet to forward 383 * @param exclude_slave_port_id Id of slave port to exclude 384 */ 385 void forwardFunctional(PacketPtr pkt, PortID exclude_slave_port_id); 386 | 279 /** 280 * Upstream caches need this packet until true is returned, so 281 * hold it for deletion until a subsequent call 282 */ 283 std::unique_ptr<Packet> pendingDelete; 284 285 /** Function called by the port when the crossbar is recieving a Timing 286 request packet.*/ --- 95 unchanged lines hidden (view full) --- 382 * excluding one of the connected coherent masters to avoid 383 * sending a packet back to where it came from. 384 * 385 * @param pkt Packet to forward 386 * @param exclude_slave_port_id Id of slave port to exclude 387 */ 388 void forwardFunctional(PacketPtr pkt, PortID exclude_slave_port_id); 389 |
390 /** 391 * Determine if the crossbar should sink the packet, as opposed to 392 * forwarding it, or responding. 393 */ 394 bool sinkPacket(const PacketPtr pkt) const; 395 |
|
387 Stats::Scalar snoops; 388 Stats::Distribution snoopFanout; 389 390 public: 391 392 virtual void init(); 393 394 CoherentXBar(const CoherentXBarParams *p); 395 396 virtual ~CoherentXBar(); 397 398 virtual void regStats(); 399}; 400 401#endif //__MEM_COHERENT_XBAR_HH__ | 396 Stats::Scalar snoops; 397 Stats::Distribution snoopFanout; 398 399 public: 400 401 virtual void init(); 402 403 CoherentXBar(const CoherentXBarParams *p); 404 405 virtual ~CoherentXBar(); 406 407 virtual void regStats(); 408}; 409 410#endif //__MEM_COHERENT_XBAR_HH__ |