This program implements a number of different branch prediction schemes using C++. It was tested using trace files ranging from 2 million to 10 million branch instructions.
Branch prediction schemes used:
- Always assumes taken
- Always assumes not-taken
- Bimodal predictor with single bit of memory
- Bimodal predictor with two bits of memory
- GShare
- Tournament (combined GShare and bimodal-two-bit)
- Branch Target Buffer
This program was written for CS320: Advanced Computer Architecture at Binghamton University.