summaryrefslogtreecommitdiff
path: root/src/cpu/pred/BranchPredictor.py
diff options
context:
space:
mode:
authorArthur Perais <arthur.perais@inria.fr>2016-12-21 15:25:13 -0600
committerArthur Perais <arthur.perais@inria.fr>2016-12-21 15:25:13 -0600
commitc9d933efb04ec8bb167b8405f56283804b12c0fe (patch)
treed8976cc527a9d06b520fe0639a954e1549799928 /src/cpu/pred/BranchPredictor.py
parent497cc2d373d1559aaae0263635b88f670fd239cd (diff)
downloadgem5-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.py16
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")
+