Some more code cleanup

src/mem/cache/base_cache.cc:
    Add sanity checks
src/mem/cache/base_cache.hh:
    Fix for retry mechanism

--HG--
extra : convert_revision : 9298e32e64194b1ef3fe51242595eaa56dcbbcfd
This commit is contained in:
Ron Dreslinski 2006-10-10 17:25:50 -04:00
parent 995146ead7
commit aff3d92c00
2 changed files with 3 additions and 1 deletions

View file

@ -221,6 +221,7 @@ BaseCache::CacheEvent::process()
} }
else if (!cachePort->isCpuSide) else if (!cachePort->isCpuSide)
{ {
assert(cachePort->cache->doMasterRequest());
//MSHR //MSHR
pkt = cachePort->cache->getPacket(); pkt = cachePort->cache->getPacket();
MSHR* mshr = (MSHR*) pkt->senderState; MSHR* mshr = (MSHR*) pkt->senderState;
@ -238,6 +239,7 @@ BaseCache::CacheEvent::process()
} }
else else
{ {
assert(cachePort->cache->doSlaveRequest());
//CSHR //CSHR
pkt = cachePort->cache->getCoherencePacket(); pkt = cachePort->cache->getCoherencePacket();
bool success = cachePort->sendTiming(pkt); bool success = cachePort->sendTiming(pkt);

View file

@ -467,7 +467,7 @@ class BaseCache : public MemObject
*/ */
void setMasterRequest(RequestCause cause, Tick time) void setMasterRequest(RequestCause cause, Tick time)
{ {
if (!doMasterRequest() && memSidePort->drainList.empty()) if (!doMasterRequest() && !memSidePort->waitingOnRetry)
{ {
BaseCache::CacheEvent * reqCpu = new BaseCache::CacheEvent(memSidePort); BaseCache::CacheEvent * reqCpu = new BaseCache::CacheEvent(memSidePort);
reqCpu->schedule(time); reqCpu->schedule(time);