summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorArthur Perais <arthur.perais@inria.fr>2016-12-21 15:06:13 -0600
committerArthur Perais <arthur.perais@inria.fr>2016-12-21 15:06:13 -0600
commit34065f8d5f51e165b56d12a6d88092332809f0b9 (patch)
tree533d80ea87d3378c822e4f98680b4a078f0c37e8 /src
parent1664625db89c3c9054434b5dc97a9f1c1bfad244 (diff)
downloadgem5-34065f8d5f51e165b56d12a6d88092332809f0b9.tar.xz
cpu: correct comments in tournament branch predictor
The tournament predictor is presented as doing speculative update of the global history and non-speculative update of the local history used to generate the branch prediction. However, the code does speculative update of both histories. Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'src')
-rw-r--r--src/cpu/pred/tournament.cc4
-rw-r--r--src/cpu/pred/tournament.hh5
2 files changed, 4 insertions, 5 deletions
diff --git a/src/cpu/pred/tournament.cc b/src/cpu/pred/tournament.cc
index 319606871..96f03eb30 100644
--- a/src/cpu/pred/tournament.cc
+++ b/src/cpu/pred/tournament.cc
@@ -222,8 +222,8 @@ TournamentBP::lookup(ThreadID tid, Addr branch_addr, void * &bp_history)
assert(local_history_idx < localHistoryTableSize);
- // Commented code is for doing speculative update of counters and
- // all histories.
+ // Speculative update of the global history and the
+ // selected local history.
if (choice_prediction) {
if (global_prediction) {
updateGlobalHistTaken(tid);
diff --git a/src/cpu/pred/tournament.hh b/src/cpu/pred/tournament.hh
index 3aa17e030..0febd21bc 100644
--- a/src/cpu/pred/tournament.hh
+++ b/src/cpu/pred/tournament.hh
@@ -57,9 +57,8 @@
* used in the 21264. It has a local predictor, which uses a local history
* table to index into a table of counters, and a global predictor, which
* uses a global history to index into a table of counters. A choice
- * predictor chooses between the two. Only the global history register
- * is speculatively updated, the rest are updated upon branches committing
- * or misspeculating.
+ * predictor chooses between the two. Both the global history register
+ * and the selected local history are speculatively updated.
*/
class TournamentBP : public BPredUnit
{