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

[email protected]
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to