mem-cache: Fix recvTimingReq doWritebacks tick
Before being sent to the writebuffer, the evicted blocks must be selected for replacement, and therefore the access latency must be applied. The forward latency is then applied on top of that delay. Change-Id: I16a25a8bf6051f63eb7a02fe66acb6af26d434fc Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/14736 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
This commit is contained in:
committed by
Daniel Carvalho
parent
97281129c9
commit
7770e6a972
7
src/mem/cache/base.cc
vendored
7
src/mem/cache/base.cc
vendored
@@ -355,9 +355,10 @@ BaseCache::recvTimingReq(PacketPtr pkt)
|
||||
// access() will set the lat value.
|
||||
satisfied = access(pkt, blk, lat, writebacks);
|
||||
|
||||
// copy writebacks to write buffer here to ensure they logically
|
||||
// precede anything happening below
|
||||
doWritebacks(writebacks, forward_time);
|
||||
// After the evicted blocks are selected, they must be forwarded
|
||||
// to the write buffer to ensure they logically precede anything
|
||||
// happening below
|
||||
doWritebacks(writebacks, clockEdge(lat + forwardLatency));
|
||||
}
|
||||
|
||||
// Here we charge the headerDelay that takes into account the latencies
|
||||
|
||||
Reference in New Issue
Block a user