Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem

into  zizzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-o3

--HG--
extra : convert_revision : be8b295ebf54a7c6bf720a20ab6aa9f02aee8060
This commit is contained in:
Korey Sewell
2006-07-07 16:19:13 -04:00
2 changed files with 34 additions and 5 deletions

View File

@@ -59,7 +59,7 @@ void
BaseCache::CachePort::getDeviceAddressRanges(AddrRangeList &resp,
AddrRangeList &snoop)
{
cache->getAddressRanges(resp, snoop);
cache->getAddressRanges(resp, snoop, isCpuSide);
}
int
@@ -166,6 +166,14 @@ BaseCache::getPort(const std::string &if_name, int idx)
else panic("Port name %s unrecognized\n", if_name);
}
void
BaseCache::init()
{
if (!cpuSidePort || !memSidePort)
panic("Cache not hooked up on both sides\n");
cpuSidePort->sendStatusChange(Port::RangeChange);
}
void
BaseCache::regStats()
{

View File

@@ -143,9 +143,19 @@ class BaseCache : public MemObject
fatal("No implementation");
}
virtual void recvStatusChange(Port::Status status, bool isCpuSide)
void recvStatusChange(Port::Status status, bool isCpuSide)
{
fatal("No implementation");
if (status == Port::RangeChange)
{
if (!isCpuSide)
{
cpuSidePort->sendStatusChange(Port::RangeChange);
}
else
{
memSidePort->sendStatusChange(Port::RangeChange);
}
}
}
virtual Packet *getPacket()
@@ -320,6 +330,8 @@ class BaseCache : public MemObject
memSidePort = NULL;
}
virtual void init();
/**
* Query block size of a cache.
* @return The block size
@@ -519,9 +531,18 @@ class BaseCache : public MemObject
*/
void rangeChange() {}
void getAddressRanges(AddrRangeList &resp, AddrRangeList &snoop)
void getAddressRanges(AddrRangeList &resp, AddrRangeList &snoop, bool isCpuSide)
{
panic("Unimplimented\n");
if (isCpuSide)
{
AddrRangeList dummy;
memSidePort->getPeerAddressRanges(resp, dummy);
}
else
{
//This is where snoops get updated
return;
}
}
};