Value prediction is used for overcoming the performance barrier of instruction-level parallelism imposed by data dependencies.
Correct predictions allow dependent instructions to be executed earlier. On the other hand mispredictions affect the performance
due to a penalty for undoing the speculation meanwhile consuming processor resources that can be used better by non-speculative
instructions. A confidence mechanism performs speculation control by limiting the predictions to those that are likely to
be correct.
When designing a value predictor, hashing functions are useful for compactly representing prediction information but suffer
from collisions or hash-aliasing. This hash-aliasing turns out to account for many mispredictions. Our new confidence mechanism has its origin in detecting
these aliasing cases through a second, independent, hashing function. Several mispredictions can be avoided by not using predictions
suffering from hash-aliasing.
Using simulations we show a significant improvement in confidence estimation over known confidence mechanisms, whereas no
additional hardware is needed. The combination of independent hashing with saturating counters performs better than pattern
recognition, the best confidence mechanism in literature, and it does not need profiling.