Professional Documents
Culture Documents
Lecture 3: Branch
Prediction
Young Cho
Cycles Per Instructions
Data Memory
Instruction Memory
3X Increase in
Productivity!!!
With large number of sets, the each
load takes average of ~35 min to wash
ALU
Ifetch Reg DMem Reg
ALU
14: and r2,r3,r5 Ifetch Reg DMem Reg
ALU
18: or r6,r1,r7 Ifetch Reg DMem Reg
ALU
22: add r8,r1,r9 Ifetch Reg DMem Reg
ALU
36: xor r10,r1,r11 Ifetch Reg DMem
branch instruction
sequential successor1
sequential successor2 Branch delay of length n
........
sequential successorn
branch target if taken
FP/int Multiply
IF ID m1 m2 m3 m4 m5 m6 m7 MEM WB
FP adder
a1 a2 a3 a4
FP/int divider
Div (lat = 25,
Init inv=25)
T
NT
Predict Taken Predict Taken
T
T NT
NT
Predict Not Predict Not
T Taken
Taken
NT
18%
16%
Unlimited Entries 2-bit BHT
14%
1024 Entries (2,2) BHT
of Mispredictions
12%
11%
10%
Frequency
8%
Frequency
6% 6% 6%
6%
5% 5%
4%
4%
2%
1% 1%
0%
0%
nasa7 matrix300 tomcatv doducd spice fpppp gcc espresso eqntott li
addr
Predictor A Predictor B
8%
7%
Local
6%
5%
Correlating
4%
3%
2%
Tournament
1%
0%
0 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120 128
Yes: instruction is
=? Extra
branch and use
prediction state
predicted PC as
No: branch not bits
next PC
predicted, proceed normally
(Next PC = PC+4)