CS6600 : Computer Architecture
Assignment 3 : Design your own Branch Predictor
Submission Deadline: End of Semester
In this assignment you are required to implement your own branch predictor using the
ChampSim simulator. ChampSim has 4 branch predictors implemented in the branch/ folder:
bimodal, gshare, perceptron and hashed perceptron. You are encouraged to look into the
source code and understand how they interact with the simulator. You can also look at the
following branch predictors for reference:
1. TAGE-SC-L Branch Predictors Again: https://jilp.org/cbp2016/paper/AndreSeznecLimited.
pdf
2. Dynamically Sizing the TAGE Branch Predictor: https://jilp.org/cbp2016/paper/
StephenPruettFinal.pdf
3. Multiperspective Perceptron Predictor: https://jilp.org/cbp2016/paper/DanielJimenez1.
pdf
4. Multiperspective Perceptron Predictor with TAGE: https://jilp.org/cbp2016/paper/
DanielJimenez2.pdf
The number of warmup instructions and simulation instructions should both be 50 million. The
traces to be used will be released by the weekend.
For the final evaluation, your policy would be compared with other submissions and ranked
based on the MPKI values achieved.
Rules:
1. The default Champsim simulator configuration is to be followed, which can be found in
champsim config.json file.
2. There is no constraint on the storage and hardware budget that your branch predictor
requires. But the feasibility of your storage requirements would be considered to resolve
tie-breakers.
3. Your predictors cannot use future information to predict the current branch. Furthermore,
the predictors should not ”profile” the traces.
Submission guidelines:
1. This is a team-based assignment: 2 members per team.
2. Submit only file: RollNumber1 RollNumber2 A3.tar.gz file, containing the following:
1
(a) Your report in RollNumber1 RollNumber2 A3.pdf format. The report should contain
the following:
i. Details of your branch prediction policy, its advantages and limitations.
(b) Implementation folders:
i. mybpred, which contains a single source file mybpred.c, containing your branch
predictor.
You are not required to submit the entire Champsim framework. Make sure that all
the above source codes are compatible with the latest version of Champsim simulator.
(c) Folder: tests, which contains all the scripts/commands used to benchmark the branch
predictor.