Lines Matching refs:mshr

59 #include "mem/cache/mshr.hh"
241 BaseCache::handleTimingReqMiss(PacketPtr pkt, MSHR *mshr, CacheBlk *blk,
250 if (mshr) {
285 mshr->allocateTarget(pkt, forward_time, order++,
287 if (mshr->getNumTargets() == numTarget) {
288 noTargetMSHR = mshr;
290 // need to be careful with this... if this mshr isn't
293 // mshrQueue.moveToFront(mshr);
433 MSHR *mshr = dynamic_cast<MSHR*>(pkt->popSenderState());
434 assert(mshr);
436 if (mshr == noTargetMSHR) {
443 QueueEntry::Target *initial_tgt = mshr->getTarget();
459 bool is_fill = !mshr->isForward &&
461 mshr->wasWholeLineWrite);
463 // make sure that if the mshr was due to a whole line write then
465 assert(!mshr->wasWholeLineWrite || pkt->isInvalidate());
473 const bool allocate = (writeAllocator && mshr->wasWholeLineWrite) ?
474 writeAllocator->allocate() : mshr->allocOnFill();
489 mshr->promoteReadable();
496 mshr->promoteWritable();
499 serviceMSHRTargets(mshr, pkt, blk);
501 if (mshr->promoteDeferredTargets()) {
507 mshrQueue.markPending(mshr);
510 // while we deallocate an mshr from the queue we still have to
514 mshrQueue.deallocate(mshr);
629 MSHR *mshr = mshrQueue.findMatch(blk_addr, is_secure);
649 (mshr && mshr->inService && mshr->isPendingModified()));
1046 // create and mark as in service the mshr for the downstream
1115 // MSHR. As of now assume a mshr queue search takes as long as
1718 BaseCache::sendMSHRQueuePacket(MSHR* mshr)
1720 assert(mshr);
1723 PacketPtr tgt_pkt = mshr->getTarget()->pkt;
1732 if (!mshr->isWholeLineWrite()) {
1736 if (writeAllocator->delay(mshr->blkAddr)) {
1740 mshrQueue.delay(mshr, delay);
1746 writeAllocator->resetDelay(mshr->blkAddr);
1750 CacheBlk *blk = tags->findBlock(mshr->blkAddr, mshr->isSecure);
1754 PacketPtr pkt = createMissPacket(tgt_pkt, blk, mshr->needsWritable(),
1755 mshr->isWholeLineWrite());
1757 mshr->isForward = (pkt == nullptr);
1759 if (mshr->isForward) {
1769 pkt->pushSenderState(mshr);
1800 markInService(mshr, pending_modified_resp);
2329 .desc("mshr miss rate for " + cstr + " accesses")
2342 .desc("mshr miss rate for demand accesses")
2352 .desc("mshr miss rate for overall accesses")
2367 .desc("average " + cstr + " mshr miss latency")
2381 .desc("average overall mshr miss latency")
2391 .desc("average overall mshr miss latency")
2406 .desc("average " + cstr + " mshr uncacheable latency")
2420 .desc("average overall mshr uncacheable latency")