By-Software Branch Prediction in Loops

05/15/2023
by   Maziar Goudarzi, et al.
0

Load-Dependent Branches (LDB) often do not exhibit regular patterns in their local or global history and thus are inherently hard to predict correctly by conventional branch predictors. We propose a software-to-hardware branch pre-resolution mechanism that allows software to pass branch outcomes to the processor frontend ahead of fetching the branch instruction. A compiler pass identifies the instruction chain leading to the branch (the branch backslice) and generates the pre-execute code that produces the branch outcomes ahead of the frontend observing them. The loop structure helps to unambiguously map the branch outcomes to their corresponding dynamic instances of the branch instruction. Our approach also allows for covering the loop iteration space selectively, with arbitrarily complex patterns. Our method for pre-execution enables important optimizations such as unrolling and vectorization, in order to substantially reduce the pre-execution overhead. Experimental results on select workloads from SPEC CPU 2017 and graph analytics workloads show up to 95 up to 3x improvement on IPC (23 TAGE-SC-L-64KB branch predictor.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/18/2020

Load Driven Branch Predictor (LDBP)

Branch instructions dependent on hard-to-predict load data are the leadi...
research
07/14/2017

Variable Instruction Fetch Rate to Reduce Control Dependent Penalties

In order to overcome the branch execution penalties of hard-to-predict i...
research
02/10/2022

Learning Branch Probabilities in Compiler from Datacenter Workloads

Estimating the probability with which a conditional branch instruction i...
research
05/17/2020

A Lightweight Isolation Mechanism for Secure Branch Predictors

Recently exposed vulnerabilities reveal the necessity to improve the sec...
research
06/24/2020

Fetch-Directed Instruction Prefetching Revisited

Prior work has observed that fetch-directed prefetching (FDIP) is highly...
research
07/28/2022

Identifying and Exploiting Sparse Branch Correlations for Optimizing Branch Prediction

Branch prediction is arguably one of the most important speculative mech...
research
01/10/2023

A Storage-Effective BTB Organization for Servers

Many contemporary applications feature multi-megabyte instruction footpr...

Please sign up or login with your details

Forgot password? Click here to reset