Have cpus send snoop ranges
--HG-- extra : convert_revision : 2a1fba141e409ee1d7a0b69b5b21d236e3d4ce68
This commit is contained in:
parent
095d5991f5
commit
bc732b59fd
|
@ -96,7 +96,7 @@ class DefaultFetch
|
||||||
/** Returns the address ranges of this device. */
|
/** Returns the address ranges of this device. */
|
||||||
virtual void getDeviceAddressRanges(AddrRangeList &resp,
|
virtual void getDeviceAddressRanges(AddrRangeList &resp,
|
||||||
AddrRangeList &snoop)
|
AddrRangeList &snoop)
|
||||||
{ resp.clear(); snoop.clear(); }
|
{ resp.clear(); snoop.clear(); snoop.push_back(RangeSize(0,-1)); }
|
||||||
|
|
||||||
/** Timing version of receive. Handles setting fetch to the
|
/** Timing version of receive. Handles setting fetch to the
|
||||||
* proper status to start fetching. */
|
* proper status to start fetching. */
|
||||||
|
|
|
@ -311,7 +311,7 @@ class LSQ {
|
||||||
/** Returns the address ranges of this device. */
|
/** Returns the address ranges of this device. */
|
||||||
virtual void getDeviceAddressRanges(AddrRangeList &resp,
|
virtual void getDeviceAddressRanges(AddrRangeList &resp,
|
||||||
AddrRangeList &snoop)
|
AddrRangeList &snoop)
|
||||||
{ resp.clear(); snoop.clear(); }
|
{ resp.clear(); snoop.clear(); snoop.push_back(RangeSize(0,-1)); }
|
||||||
|
|
||||||
/** Timing version of receive. Handles writing back and
|
/** Timing version of receive. Handles writing back and
|
||||||
* completing the load or store that has returned from
|
* completing the load or store that has returned from
|
||||||
|
|
|
@ -92,7 +92,7 @@ class FrontEnd
|
||||||
/** Returns the address ranges of this device. */
|
/** Returns the address ranges of this device. */
|
||||||
virtual void getDeviceAddressRanges(AddrRangeList &resp,
|
virtual void getDeviceAddressRanges(AddrRangeList &resp,
|
||||||
AddrRangeList &snoop)
|
AddrRangeList &snoop)
|
||||||
{ resp.clear(); snoop.clear(); }
|
{ resp.clear(); snoop.clear(); snoop.push_back(RangeSize(0,-1)); }
|
||||||
|
|
||||||
/** Timing version of receive. Handles setting fetch to the
|
/** Timing version of receive. Handles setting fetch to the
|
||||||
* proper status to start fetching. */
|
* proper status to start fetching. */
|
||||||
|
|
|
@ -260,7 +260,7 @@ class OzoneLWLSQ {
|
||||||
|
|
||||||
virtual void getDeviceAddressRanges(AddrRangeList &resp,
|
virtual void getDeviceAddressRanges(AddrRangeList &resp,
|
||||||
AddrRangeList &snoop)
|
AddrRangeList &snoop)
|
||||||
{ resp.clear(); snoop.clear(); }
|
{ resp.clear(); snoop.clear(); snoop.push_back(RangeSize(0,-1); }
|
||||||
|
|
||||||
virtual bool recvTiming(PacketPtr pkt);
|
virtual bool recvTiming(PacketPtr pkt);
|
||||||
|
|
||||||
|
|
|
@ -104,9 +104,9 @@ class AtomicSimpleCPU : public BaseSimpleCPU
|
||||||
|
|
||||||
virtual void getDeviceAddressRanges(AddrRangeList &resp,
|
virtual void getDeviceAddressRanges(AddrRangeList &resp,
|
||||||
AddrRangeList &snoop)
|
AddrRangeList &snoop)
|
||||||
{ resp.clear(); snoop.clear(); }
|
{ resp.clear(); snoop.clear(); snoop.push_back(RangeSize(0,-1)); }
|
||||||
};
|
|
||||||
|
|
||||||
|
};
|
||||||
CpuPort icachePort;
|
CpuPort icachePort;
|
||||||
CpuPort dcachePort;
|
CpuPort dcachePort;
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ class TimingSimpleCPU : public BaseSimpleCPU
|
||||||
|
|
||||||
virtual void getDeviceAddressRanges(AddrRangeList &resp,
|
virtual void getDeviceAddressRanges(AddrRangeList &resp,
|
||||||
AddrRangeList &snoop)
|
AddrRangeList &snoop)
|
||||||
{ resp.clear(); snoop.clear(); }
|
{ resp.clear(); snoop.clear(); snoop.push_back(RangeSize(0,-1)); }
|
||||||
|
|
||||||
struct TickEvent : public Event
|
struct TickEvent : public Event
|
||||||
{
|
{
|
||||||
|
|
16
src/mem/cache/base_cache.hh
vendored
16
src/mem/cache/base_cache.hh
vendored
|
@ -156,7 +156,7 @@ class BaseCache : public MemObject
|
||||||
if (status == Port::RangeChange){
|
if (status == Port::RangeChange){
|
||||||
if (!isCpuSide) {
|
if (!isCpuSide) {
|
||||||
cpuSidePort->sendStatusChange(Port::RangeChange);
|
cpuSidePort->sendStatusChange(Port::RangeChange);
|
||||||
if (topLevelCache && !snoopRangesSent) {
|
if (!snoopRangesSent) {
|
||||||
snoopRangesSent = true;
|
snoopRangesSent = true;
|
||||||
memSidePort->sendStatusChange(Port::RangeChange);
|
memSidePort->sendStatusChange(Port::RangeChange);
|
||||||
}
|
}
|
||||||
|
@ -568,14 +568,14 @@ class BaseCache : public MemObject
|
||||||
{
|
{
|
||||||
//This is where snoops get updated
|
//This is where snoops get updated
|
||||||
AddrRangeList dummy;
|
AddrRangeList dummy;
|
||||||
if (!topLevelCache)
|
// if (!topLevelCache)
|
||||||
{
|
// {
|
||||||
cpuSidePort->getPeerAddressRanges(dummy, snoop);
|
cpuSidePort->getPeerAddressRanges(dummy, snoop);
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
snoop.push_back(RangeSize(0,-1));
|
// snoop.push_back(RangeSize(0,-1));
|
||||||
}
|
// }
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue