diff options
author | Arthur Perais <arthur.perais@inria.fr> | 2016-12-21 15:25:13 -0600 |
---|---|---|
committer | Arthur Perais <arthur.perais@inria.fr> | 2016-12-21 15:25:13 -0600 |
commit | c9d933efb04ec8bb167b8405f56283804b12c0fe (patch) | |
tree | d8976cc527a9d06b520fe0639a954e1549799928 /src/cpu/pred/BranchPredictor.py | |
parent | 497cc2d373d1559aaae0263635b88f670fd239cd (diff) | |
download | gem5-c9d933efb04ec8bb167b8405f56283804b12c0fe.tar.xz |
cpu: implement an L-TAGE branch predictor
This patch implements an L-TAGE predictor, based on André Seznec's code
available from CBP-2
(http://hpca23.cse.tamu.edu/taco/camino/cbp2/cbp-src/realistic-seznec.h).
Signed-off-by Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'src/cpu/pred/BranchPredictor.py')
-rw-r--r-- | src/cpu/pred/BranchPredictor.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/cpu/pred/BranchPredictor.py b/src/cpu/pred/BranchPredictor.py index 2d7d0d0e2..1b400c2b7 100644 --- a/src/cpu/pred/BranchPredictor.py +++ b/src/cpu/pred/BranchPredictor.py @@ -86,3 +86,19 @@ class BiModeBP(BranchPredictor): choicePredictorSize = Param.Unsigned(8192, "Size of choice predictor") choiceCtrBits = Param.Unsigned(2, "Bits of choice counters") +class LTAGE(BranchPredictor): + type = 'LTAGE' + cxx_class = 'LTAGE' + cxx_header = "cpu/pred/ltage.hh" + + logSizeBiMP = Param.Unsigned(14, "Log size of Bimodal predictor in bits") + logSizeTagTables = Param.Unsigned(11, "Log size of tag table in LTAGE") + logSizeLoopPred = Param.Unsigned(8, "Log size of the loop predictor") + nHistoryTables = Param.Unsigned(12, "Number of history tables") + tagTableCounterBits = Param.Unsigned(3, "Number of tag table counter bits") + histBufferSize = Param.Unsigned(2097152, + "A large number to track all branch histories(2MEntries default)") + minHist = Param.Unsigned(4, "Minimum history size of LTAGE") + maxHist = Param.Unsigned(640, "Maximum history size of LTAGE") + minTagWidth = Param.Unsigned(7, "Minimum tag size in tag tables") + |