Branch Prediction using SimpleScalar
In this lab, you will investigate the effects of various branch prediction schemes on the branch address prediction rate as well as CPI/IPC for ALPHA benchmarks that you worked with in the first lab. You will be sim-bpred simulator to conduct this lab.
Quick
fact about sim-bpred
simulator
It is a branch predictor simulator. This tool can simulate difference branch
prediction schemes and reports results such as prediction hit and miss rates.
All the
simulators including sim-bpred are available
in the home/simplesim-3.0 directory.
home/simplesim-3.0$./sim-bpred
–h
1) Execute the benchmarks and fill in Table 1.
Benchmark | Taken
Branch Address Prediction Rate |
Not
Taken
Branch Address Prediction Rate |
Bimod(2bit
prediction)
Branch Add Prediction Rate |
anagram.alpha |
|||
go.alpha |
|||
compress.alpha |
|||
gcc.alpha |
Plot a histogram for all the four benchmarks and draw conclusion? Does your conclusion agree with your intuition?
2) Use sim-outorder to calculate CPI for the two of the above four benchmarks. The other two take very long time to simulate and hence they are being skipped here. Note that you will have to modify the default.cfg configuration file according to the configuration in Table 1. Fill Table 2.
Benchmark | Taken (CPI) | Not Taken (CPI) | Bimod (CPI) |
anagram.alpha | |||
compress.alpha |
Plot a histogram for the two benchmarks for the three schemes.
Bonus Part
Write, compile and run a C program targeted towards PISA ISA which contains a for loop that iterates 10 million times. Please see bonus lab1 to know how to install gcc for PISA ISA. Calculate Branch address pred-Rate for the three case Taken, Not Taken and bimod