mem-cache: schedule already ready pf next cycle
Fix a bug where a ready prefetch request was not sent directly because the schedMemSideSendEvent was not called with the right time. This fix mimics what is done in recvTimingResp. Change-Id: Ib11f8003ca1b006d976c8cc8ea541434b8902beb Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/67473 Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> Maintainer: Jason Lowe-Power <power.jg@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
This commit is contained in:
3
src/mem/cache/base.cc
vendored
3
src/mem/cache/base.cc
vendored
@@ -464,7 +464,8 @@ BaseCache::recvTimingReq(PacketPtr pkt)
|
|||||||
|
|
||||||
if (prefetcher) {
|
if (prefetcher) {
|
||||||
// track time of availability of next prefetch, if any
|
// track time of availability of next prefetch, if any
|
||||||
Tick next_pf_time = prefetcher->nextPrefetchReadyTime();
|
Tick next_pf_time = std::max(
|
||||||
|
prefetcher->nextPrefetchReadyTime(), clockEdge());
|
||||||
if (next_pf_time != MaxTick) {
|
if (next_pf_time != MaxTick) {
|
||||||
schedMemSideSendEvent(next_pf_time);
|
schedMemSideSendEvent(next_pf_time);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user