Enhanced Branch Prediction

Enhanced Static Branch Predictor

The Static Branch Predictor (see “The Static Branch Predictor” on page 911) is consulted when a miss occurs on the Front-End BTB (i.e., the BTB doesn't have any execution history on a conditional branch instruction). In the earlier versions of the processor, it would predict a backward relative conditional branch as taken and a forward branch as not taken. This approach works well for a backward branch at the end of a loop, but not all backward-relative branches reside at the bottom of a loop.

The 90nm processor's Static Branch Predictor uses the distance that the branch jumps backward as well as the condition on which the branch depends to try and determine if the branch resides at the bottom of a loop or not:

  • Intel®'s studies indicated that there is a threshold for the distance between a backward branch and its branch target address. If the distance of the branch is more than the threshold value, the branch is deemed unlikely to reside at the bottom of a loop. The Static Branch Predictor only predicts a branch as taken if the branch distance is less than the threshold value.

  • Intel®'s studies also indicated that branches based on certain conditions are, more often than not, not taken (regardless of the branch's direction and/or distance). These conditions are not common loop-ending conditions, so the Static Branch Predictor predicts them as not taken.

Dynamic Branch Prediction Enhanced

The dynamic branch predictor (i.e., the BTB) added an indirect branch predictor. Note that the Pentium® M processor also implements the indirect branch predictor (see “The Indirect Branch Predictor” on page 1436 for more information).

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.139.62.103