Title: 1' Improving Branch Predictors by Correlating on Data Values 2' A Language for Describing Predictors
11. Improving Branch Predictors by Correlating on
Data Values2. A Language for Describing
Predictors and its Application to Automatic
Synthesis
2First Generation
Feedback
PC
history
Prediction
PC CondJmpEq Ra, Rb, Target
3Improvement 1
Feedback
history
PC CondJmpEq Ra, Rb, Target
4Improvement 2
history
Prediction
history
PC
Feedback
PC CondJmpEq Ra, Rb, Target
5Improvement 3
PC CondJmpEq Ra, Rb, Target
Reduce table interference through more
intelligent table indexing scheme.
6Input to the Predictor
- PC, GBH
- What else?
- PC CondJmpEq Ra, Rb, Target
- Ra, Rb?
- What is the main obstacle to this strategy?
- Solution predict the values of Ra and Rb.
- Still impractical?
- Solution predict the difference between Ra and
Rb. - Still impractical?
- Solution store only a few bits of the difference
values.
7Branch Difference Predictor
8Rare Event Predictor
REP
PC
Prediction
value pattern
counter
GBH
value pattern
VHT
PC CondJmpEq Ra, Rb, Target
9Value Pattern
Value Pattern Branch count, Branch difference
10Experimental Results
- REP
- 6K bytes
- VHT
- BCT, 64 bytes
- BDC, 100 bytes
11(No Transcript)
12(No Transcript)
13Discussion
- BDP can be used with other predictors.
- Why?
- Significant improvement?
- BDP removes 13 to 9 of the misprediction over
gShare. - and 12 to 8 of the misprediction over Bi-Mode.
- 1 of overall improvement?
- Can BDP be applied to any architecture?
- Set instructions in the MIPS-based SimpleScalar
- BEQ Ra, Target in the Alpha family.