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