Fix how upgrades work.
Remove some dead code. src/mem/cache/cache_impl.hh: Upgrades don't need a response. Moved satisfied check into bus so removed some dead code. src/mem/cache/coherence/coherence_protocol.cc: src/mem/packet.hh: Upgrades don't require a response --HG-- extra : convert_revision : dee0440ff19ba4c9e51bf9a47a5b0991265cfc1d
This commit is contained in:
parent
13ac9a419d
commit
e03b9c9939
8
src/mem/cache/cache_impl.hh
vendored
8
src/mem/cache/cache_impl.hh
vendored
|
@ -63,9 +63,8 @@ doTimingAccess(Packet *pkt, CachePort *cachePort, bool isCpuSide)
|
||||||
if (pkt->isWrite() && (pkt->req->isLocked())) {
|
if (pkt->isWrite() && (pkt->req->isLocked())) {
|
||||||
pkt->req->setScResult(1);
|
pkt->req->setScResult(1);
|
||||||
}
|
}
|
||||||
if (!(pkt->flags & SATISFIED)) {
|
access(pkt);
|
||||||
access(pkt);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -204,9 +203,8 @@ Cache<TagStore,Buffering,Coherence>::access(PacketPtr &pkt)
|
||||||
pkt->getAddr() & (((ULL(1))<<48)-1),
|
pkt->getAddr() & (((ULL(1))<<48)-1),
|
||||||
pkt->getAddr() & ~((Addr)blkSize - 1));
|
pkt->getAddr() & ~((Addr)blkSize - 1));
|
||||||
|
|
||||||
//@todo Should this return latency have the hit latency in it?
|
|
||||||
// respond(pkt,curTick+lat);
|
|
||||||
pkt->flags |= SATISFIED;
|
pkt->flags |= SATISFIED;
|
||||||
|
//Invalidates/Upgrades need no response if they get the bus
|
||||||
// return MA_HIT; //@todo, return values
|
// return MA_HIT; //@todo, return values
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -271,7 +271,7 @@ CoherenceProtocol::CoherenceProtocol(const string &name,
|
||||||
}
|
}
|
||||||
|
|
||||||
Packet::Command writeToSharedCmd = doUpgrades ? Packet::UpgradeReq : Packet::ReadExReq;
|
Packet::Command writeToSharedCmd = doUpgrades ? Packet::UpgradeReq : Packet::ReadExReq;
|
||||||
Packet::Command writeToSharedResp = doUpgrades ? Packet::UpgradeResp : Packet::ReadExResp;
|
Packet::Command writeToSharedResp = doUpgrades ? Packet::UpgradeReq : Packet::ReadExResp;
|
||||||
|
|
||||||
//@todo add in hardware prefetch to this list
|
//@todo add in hardware prefetch to this list
|
||||||
if (protocol == "msi") {
|
if (protocol == "msi") {
|
||||||
|
|
|
@ -194,8 +194,7 @@ class Packet
|
||||||
HardPFResp = IsRead | IsResponse | IsHWPrefetch | NeedsResponse,
|
HardPFResp = IsRead | IsResponse | IsHWPrefetch | NeedsResponse,
|
||||||
InvalidateReq = IsInvalidate | IsRequest,
|
InvalidateReq = IsInvalidate | IsRequest,
|
||||||
WriteInvalidateReq = IsWrite | IsInvalidate | IsRequest,
|
WriteInvalidateReq = IsWrite | IsInvalidate | IsRequest,
|
||||||
UpgradeReq = IsInvalidate | IsRequest | NeedsResponse,
|
UpgradeReq = IsInvalidate | IsRequest
|
||||||
UpgradeResp = IsInvalidate | IsResponse | NeedsResponse,
|
|
||||||
ReadExReq = IsRead | IsInvalidate | IsRequest | NeedsResponse,
|
ReadExReq = IsRead | IsInvalidate | IsRequest | NeedsResponse,
|
||||||
ReadExResp = IsRead | IsInvalidate | IsResponse | NeedsResponse
|
ReadExResp = IsRead | IsInvalidate | IsResponse | NeedsResponse
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue