Hardware Reference
In-Depth Information
shown that changing the input so that the profile is for a different run leads to only a small
change in the accuracy of profile-based prediction.
FIGURE C.17 Misprediction rate on SPEC92 for a profile-based predictor varies widely
but is generally better for the floating-point programs, which have an average mispre-
diction rate of 9% with a standard deviation of 4%, than for the integer programs, which
have an average misprediction rate of 15% with a standard deviation of 5% . The actual
performance depends on both the prediction accuracy and the branch frequency, which vary
from 3% to 24%.
The effectiveness of any branch prediction scheme depends both on the accuracy of the
scheme and the frequency of conditional branches, which vary in SPEC from 3% to 24%. The
fact that the misprediction rate for the integer programs is higher and such programs typic-
ally have a higher branch frequency is a major limitation for static branch prediction. In the
next section, we consider dynamic branch predictors, which most recent processors have em-
ployed.
Dynamic Branch Prediction And Branch-Prediction Buffers
The simplest dynamic branch-prediction scheme is a branch-prediction bufer or branch history
table . A branch-prediction buffer is a small memory indexed by the lower portion of the ad-
dress of the branch instruction. The memory contains a bit that says whether the branch was
recently taken or not. This scheme is the simplest sort of buffer; it has no tags and is useful
only to reduce the branch delay when it is longer than the time to compute the possible target
PCs.
With such a buffer, we don't know, in fact, if the prediction is correct—it may have been put
there by another branch that has the same low-order address bits. But this doesn't mater. The
 
Search WWH ::




Custom Search