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__