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 --- |