cpu: correct comments in tournament branch predictor
authorArthur Perais <arthur.perais@inria.fr>
Wed, 21 Dec 2016 21:06:13 +0000 (15:06 -0600)
committerArthur Perais <arthur.perais@inria.fr>
Wed, 21 Dec 2016 21:06:13 +0000 (15:06 -0600)
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>
src/cpu/pred/tournament.cc
src/cpu/pred/tournament.hh

index 319606871291812b85c0ef59011cc71cb36fc611..96f03eb30902f3015ac8ef3434a1947c804761a8 100644 (file)
@@ -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);
index 3aa17e03041f36b0ca694813ba7801c4bf333bc1..0febd21bc91d510dcff03463dc6676417aa998b8 100644 (file)
@@ -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
 {