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