mem: Fix Best Offset Prefetcher (BOP) learning phase code.

According to the DPC paper : "If the best score is less
than or equal to a fixed value BADSCORE, we turn prefetchoff
during the next phase"

However, the current code will turn prefetch off if the best
*offset* of the learning phase is less than BADSCORE, which
is incorrect.

Change-Id: Ib5790fe1341f2dd6328ec3b018bc52012e376723
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/46259
Reviewed-by: Nathanael Premillieu <nathanael.premillieu@huawei.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Arthur Perais
2021-05-31 17:20:04 +02:00
committed by Arthur Perais
parent e2edde5cd5
commit efc9a68620

View File

@@ -217,7 +217,7 @@ BOP::bestOffsetLearning(Addr x)
phaseBestOffset = 0;
resetScores();
issuePrefetchRequests = true;
} else if (phaseBestOffset <= badScore) {
} else if (bestScore <= badScore) {
issuePrefetchRequests = false;
}
}