The Non-Predictability of Mispredicted Branches using Timing Information
Ioannis Constantinou, Arthur Perais, Yiannakis Sazeides
TL;DR
The paper investigates whether microarchitectural timing information can augment traditional branch prediction to reduce mispredictions. It introduces Speculative Branch Resolution (SBR), an overriding backend mechanism that re-predicts branches using a Timing Information Vector built from commit, older ROB, and younger ROB timing data. Across 92 hard-to-predict branches from SPEC2017 rate benchmarks, SBR largely fails to beat an unbounded TAGE-SC predictor, though timing information helps in a small subset of cases, with in-depth analysis provided for one motivating example. The findings suggest limited general usefulness of post-fetch timing vectors for broad MPKI reductions, but indicate potential value for tailored microarchitectural information vectors in specific branches or architectures. The work points to future research directions in isolating delay sources and designing more selective, high-value timing signals for overriding predictors.
Abstract
Branch misprediction latency is one of the most important contributors to performance degradation and wasted energy consumption in a modern core. State-of-the-art predictors generally perform very well but occasionally suffer from high Misprediction Per Kilo Instruction due to hard-to-predict branches. In this work, we investigate if predicting branches using microarchitectural information, in addition to traditional branch history, can improve prediction accuracy. Our approach considers branch timing information (resolution cycle) both for older branches in the Reorder Buffer (ROB) and recently committed, and for younger branches relative to the branch we re-predict. We propose Speculative Branch Resolution (SBR) in which, N cycles after a branch allocates in the ROB, various timing information is collected and used to re-predict. Using the gem5 simulator we implement and perform a limit-study of SBR using a TAGE-Like predictor. Our experiments show that the post-alloc timing information we used was not able to yield performance gains over an unbounded TAGE-SC. However, we find two hard to predict branches where timing information did provide an advantage and thoroughly analysed one of them to understand why. This finding suggests that predictors may benefit from specific microarchitectural information to increase accuracy on specific hard to predict branches and that overriding predictions in the backend may yet yield performance benefits, but that further research is needed to determine such information vectors.
