mshr.cc (10503:94d58056729f) mshr.cc (10571:c848de089432)
1/*
2 * Copyright (c) 2012-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

--- 352 unchanged lines hidden (view full) ---

361 // 1. We're awaiting an exclusive copy, so ownership is pending,
362 // and we need to respond after we receive data.
363 // 2. It's an invalidation (e.g., UpgradeReq), and we need
364 // to forward the snoop up the hierarchy after the current
365 // transaction completes.
366
367 // Actual target device (typ. a memory) will delete the
368 // packet on reception, so we need to save a copy here.
1/*
2 * Copyright (c) 2012-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

--- 352 unchanged lines hidden (view full) ---

361 // 1. We're awaiting an exclusive copy, so ownership is pending,
362 // and we need to respond after we receive data.
363 // 2. It's an invalidation (e.g., UpgradeReq), and we need
364 // to forward the snoop up the hierarchy after the current
365 // transaction completes.
366
367 // Actual target device (typ. a memory) will delete the
368 // packet on reception, so we need to save a copy here.
369 PacketPtr cp_pkt = new Packet(pkt, true);
369
370 // Clear flags and also allocate new data as the original
371 // packet data storage may have been deleted by the time we
372 // get to send this packet.
373 PacketPtr cp_pkt = new Packet(pkt, true, true);
370 targets.add(cp_pkt, curTick(), _order, Target::FromSnoop,
371 downstreamPending && targets.needsExclusive);
372
373 // WriteInvalidates must writeback and should not be inhibited on
374 // account of its snoops discovering MSHRs wanting exclusive access
375 // to what it wrote. We don't want to push this check higher,
376 // however, because we want to be sure to add an invalidating
377 // Target::FromSnoop, above.

--- 123 unchanged lines hidden ---
374 targets.add(cp_pkt, curTick(), _order, Target::FromSnoop,
375 downstreamPending && targets.needsExclusive);
376
377 // WriteInvalidates must writeback and should not be inhibited on
378 // account of its snoops discovering MSHRs wanting exclusive access
379 // to what it wrote. We don't want to push this check higher,
380 // however, because we want to be sure to add an invalidating
381 // Target::FromSnoop, above.

--- 123 unchanged lines hidden ---