Hi Davesh,

 1.  The promoteDeferredTargets is a “trick” used in the classic memory system 
where MSHR targets gets put “on hold” if we already have a target outstanding 
that will e.g. give us a block in modified or owned state. Once the first chunk 
of targets are resolved, and all caches agree on the new state, we then 
continue with the deferred targets (after promoting them). Thus, the deferred 
targets are serialised with respect to the normal targets, simplifying any 
intermittent states.
 2.  When the queue is full, we block the cpu-side port. This is quite crude, 
as there could be hits that would have been fine. However, at the moment we 
take the easy way out.Have a look at setBlocked and recvTimingReq.

I hope that helps.

Andreas

From: gem5-users 
<gem5-users-boun...@gem5.org<mailto:gem5-users-boun...@gem5.org>> on behalf of 
Davesh Shingari <shingaridav...@gmail.com<mailto:shingaridav...@gmail.com>>
Reply-To: gem5 users mailing list 
<gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Date: Tuesday, 14 July 2015 18:59
To: gem5 users mailing list <gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Subject: [gem5-users] MSHR Queue Full Handling

Hi

In cache_impl.hh, I can see that

MSHRQueue *mq = mshr->queue;
bool wasFull = mq->isFull();

But wasFull is used only in following code:

    if (mshr->promoteDeferredTargets()) {
        // avoid later read getting stale data while write miss is
        // outstanding.. see comment in timingAccess()
        if (blk) {
            blk->status &= ~BlkReadable;
        }
        mq = mshr->queue;
        mq->markPending(mshr);
        requestMemSideBus((RequestCause)mq->index, clockEdge() +
                          pkt->lastWordDelay);
    } else {
        mq->deallocate(mshr);
        if (wasFull && !mq->isFull()) {
            clearBlocked((BlockedCause)mq->index);
        }

I have 2 questions:

 1.  What does promoteDeferredTargets function do?
 2.  What happens when the queue is full.  For eg. In Caches.py I can see that 
mshr for L2 is 20. What happens when the misses number exceeds 20? Can someone 
point me to the handling code?


--
Have a great day!

Thanks and Warm Regards
Davesh Shingari
Master's in Computer Engineering [EE]
Arizona State University

dshin...@asu.edu<mailto:dshin...@asu.edu>
[https://mailfoogae.appspot.com/t?sender=ac2hpbmdhcmlkYXZlc2hAZ21haWwuY29t&type=zerocontent&guid=e27518a8-bc81-44ec-9b38-b67dc2b02b09]ᐧ

-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered 
in England & Wales, Company No: 2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, 
Registered in England & Wales, Company No: 2548782
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to