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:
10
src/mem/cache/base_cache.cc
vendored
10
src/mem/cache/base_cache.cc
vendored
@@ -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()
|
||||
{
|
||||
|
||||
29
src/mem/cache/base_cache.hh
vendored
29
src/mem/cache/base_cache.hh
vendored
@@ -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;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user