markInServiceInternal(mshr, pending_dirty_resp);
}
-
-void
-Cache::squash(int threadNum)
-{
- bool unblock = false;
- BlockedCause cause = NUM_BLOCKED_CAUSES;
-
- if (noTargetMSHR && noTargetMSHR->threadNum == threadNum) {
- noTargetMSHR = NULL;
- unblock = true;
- cause = Blocked_NoTargets;
- }
- if (mshrQueue.isFull()) {
- unblock = true;
- cause = Blocked_NoMSHRs;
- }
- mshrQueue.squash(threadNum);
- if (unblock && !mshrQueue.isFull()) {
- clearBlocked(cause);
- }
-}
-
/////////////////////////////////////////////////////
//
// Access path: requests coming in from the CPU side
*/
bool invalidateVisitor(CacheBlk &blk);
- /**
- * Squash all requests associated with specified thread.
- * intended for use by I-cache.
- * @param threadNum The thread to squash.
- */
- void squash(int threadNum);
-
/**
* Generate an appropriate downstream bus request packet for the
* given parameters.