src/mem/cache/base_cache.cc:
src/mem/cache/base_cache.hh:
src/mem/cache/cache_impl.hh:
Outstanding blocking updates for cache
--HG--
extra : convert_revision :
3a7b4aa4921de8239f604f1852f262a2305862c0
bool
BaseCache::CachePort::recvTiming(Packet *pkt)
{
+ if (blocked)
+ {
+ mustSendRetry = true;
+ return false;
+ }
return cache->doTimingAccess(pkt, this, isCpuSide);
}
void
BaseCache::CachePort::clearBlocked()
{
+ if (mustSendRetry)
+ {
+ mustSendRetry = false;
+ sendRetry();
+ }
blocked = false;
}
bool blocked;
+ bool mustSendRetry;
+
bool isCpuSide;
};
else
snoop(pkt);
}
- return true; //Deal with blocking....
+ return true;
}
template<class TagStore, class Buffering, class Coherence>