mshr.cc (11742:3dcf0b891749) mshr.cc (11744:5d33c6972dda)
1/*
2 * Copyright (c) 2012-2013, 2015-2016 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

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

226 s = "FromPrefetcher";
227 break;
228 default:
229 s = "";
230 break;
231 }
232 ccprintf(os, "%s%s: ", prefix, s);
233 t.pkt->print(os, verbosity, "");
1/*
2 * Copyright (c) 2012-2013, 2015-2016 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

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

226 s = "FromPrefetcher";
227 break;
228 default:
229 s = "";
230 break;
231 }
232 ccprintf(os, "%s%s: ", prefix, s);
233 t.pkt->print(os, verbosity, "");
234 ccprintf(os, "\n");
234 }
235}
236
237
238void
239MSHR::allocate(Addr blk_addr, unsigned blk_size, PacketPtr target,
240 Tick when_ready, Counter _order, bool alloc_on_fill)
241{

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

338 targets.add(pkt, whenReady, _order, Target::FromCPU, !inService,
339 alloc_on_fill);
340 }
341}
342
343bool
344MSHR::handleSnoop(PacketPtr pkt, Counter _order)
345{
235 }
236}
237
238
239void
240MSHR::allocate(Addr blk_addr, unsigned blk_size, PacketPtr target,
241 Tick when_ready, Counter _order, bool alloc_on_fill)
242{

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

339 targets.add(pkt, whenReady, _order, Target::FromCPU, !inService,
340 alloc_on_fill);
341 }
342}
343
344bool
345MSHR::handleSnoop(PacketPtr pkt, Counter _order)
346{
346 DPRINTF(Cache, "%s for %s addr %#llx size %d\n", __func__,
347 pkt->cmdString(), pkt->getAddr(), pkt->getSize());
347 DPRINTF(Cache, "%s for %s\n", __func__, pkt->print());
348
349 // when we snoop packets the needsWritable and isInvalidate flags
350 // should always be the same, however, this assumes that we never
351 // snoop writes as they are currently not marked as invalidations
352 panic_if(pkt->needsWritable() != pkt->isInvalidate(),
348
349 // when we snoop packets the needsWritable and isInvalidate flags
350 // should always be the same, however, this assumes that we never
351 // snoop writes as they are currently not marked as invalidations
352 panic_if(pkt->needsWritable() != pkt->isInvalidate(),
353 "%s got snoop %s to addr %#llx where needsWritable, "
354 "does not match isInvalidate", name(), pkt->cmdString(),
353 "%s got snoop %s where needsWritable, "
354 "does not match isInvalidate", name(), pkt->print(),
355 pkt->getAddr());
356
357 if (!inService || (pkt->isExpressSnoop() && downstreamPending)) {
358 // Request has not been issued yet, or it's been issued
359 // locally but is buffered unissued at some downstream cache
360 // which is forwarding us this snoop. Either way, the packet
361 // we're snooping logically precedes this MSHR's request, so
362 // the snoop has no impact on the MSHR, but must be processed

--- 233 unchanged lines hidden ---
355 pkt->getAddr());
356
357 if (!inService || (pkt->isExpressSnoop() && downstreamPending)) {
358 // Request has not been issued yet, or it's been issued
359 // locally but is buffered unissued at some downstream cache
360 // which is forwarding us this snoop. Either way, the packet
361 // we're snooping logically precedes this MSHR's request, so
362 // the snoop has no impact on the MSHR, but must be processed

--- 233 unchanged lines hidden ---