prophet/critic hybrid branch prediction
DESCRIPTION
Prophet/Critic Hybrid Branch Prediction. B90902051 B90902124 B90902011. Outline. Motivation Prophet/critic hybrid branch prediction Filtering the critic A prophet/critic hybrid implementation Simulation methodology Evaluation The theory Conclusion. Outline. Motivation - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/1.jpg)
Prophet/Critic Hybrid Branch Prediction
B90902051B90902124B90902011
![Page 2: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/2.jpg)
Outline Motivation Prophet/critic hybrid branch prediction Filtering the critic A prophet/critic hybrid implementation Simulation methodology Evaluation The theory Conclusion
![Page 3: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/3.jpg)
Outline Motivation Prophet/critic hybrid branch prediction Filtering the critic A prophet/critic hybrid implementation Simulation methodology Evaluation The theory Conclusion
![Page 4: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/4.jpg)
Motivation
This paper introduces the prophet/critic hybrid conditional branch predictor, which has two component predictors that play the role of either prophet or critic.
They are actually a prophecy, or predicted branch future. The critic uses both the branch’s history and future to give a critique of the prophet’s prediction for the current branch.
![Page 5: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/5.jpg)
Motivation (Cont.)
Traffic vs. Branch predictor Taxi as processor Driver as branch predictor Passenger as pipeline Intersections as branches
Goal: to navigate the taxi through the system of roads, making the correct turns at intersections, to get to the destination; i.e., the end of the program.
![Page 6: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/6.jpg)
Motivation (cont.)
Conventional predictors are analogous to a taxi with just one driver.
Prophet/critic hybrids are analogous to a taxi with two drivers: the front-seat and the back-seat. Prophet is like front-seat driver. He uses his knowl
edge to decide the way to turn. Critic is like back-seat driver. she waits until he’s
made a few more turns to be certain they are lost.
![Page 7: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/7.jpg)
Motivation (cont.)
The way to recover from mistake : backtrack to the intersection where she believes
the wrong-turn was made and try a different direction.
![Page 8: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/8.jpg)
Motivation (cont.)
Related works McFarling first proposed hybrid branch predictors. Chang et al. proposed a mechanism to classify branches. Loh and Henry improved prediction accuracy by replacing t
he selection mechanism traditionally used in hybrids with a fusion mechanism.
Jim’enez et al. explain how predictor overriding provides fast and accurate predictions.
Grunwald et al. show that using the prediction for the current branch in the history of the JRS confidence estimator improves speculation control.
![Page 9: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/9.jpg)
Motivation (cont.)
The prophet/critic hybrid combines and builds upon this related work—it is a hybrid, and it does use overriding, and it does use future bits.
They claimed that it greatly increases the prediction accuracy for the branch.
![Page 10: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/10.jpg)
Outline Motivation Prophet/critic hybrid branch prediction Filtering the critic A prophet/critic hybrid implementation Simulation methodology Evaluation The theory Conclusion
![Page 11: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/11.jpg)
Current branch predictors make predictions using history information. Once a branch has been predicted, the predictor can not use information from subsequent predictions to re-predict the branch.
Prophet/critic hybrid can effectively use these subsequent predictions.
![Page 12: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/12.jpg)
![Page 13: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/13.jpg)
The components of the prophet/critic hybrid can be any existing predictors.
Once a prediction for a branch is made, the prophet goes on along the predicted path generating new predictions.
This prediction and the new predictions form the branch future. As in current history-based predictors, the prediction of the current branch is determined by the history, and that prediction determines the branch’s future.
![Page 14: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/14.jpg)
While the prophet generates the branch’s future, the critic collects this future information, inserting the prophet predictions into its branch outcome register (BOR).
BOR contains two kinds of branch outcomes: outcomes of branches before the one being predicted, whic
h are branch history, and allow the predictor to correlate on the past, and
outcomes of the branch being predicted and those after it, which are branch future, and allow the predictor to correlate on the future.
![Page 15: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/15.jpg)
The prophet/critic hybrid takes advantage of the fact that the prophet and critic operate autonomously, predicting the same branch at different times.
In the prophet/critic hybrid, although both prophet and critic predict the same branch, the predictions are not initiated at the same time. Since the critic initiates its prediction some cycles later, it can incorporate information about future code behavior (i. e., the branch future provided by the prophet) into its prediction.
![Page 16: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/16.jpg)
![Page 17: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/17.jpg)
Updating the predictors
Updating branch history registers (BHRs) and BORs. The prophet BHR is updated speculatively with the prophet’s pre
dicted branch outcome at the prediction stage. BHRs should be speculatively updated instead of waiting for the branches to resolve.
The critic BOR is filled with the predicted outcomes from the prophet.
Updating pattern tables. The prophet and critic pattern tables are updated non-speculative
ly, at commit time, when the real outcomes of the branches are known.
![Page 18: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/18.jpg)
Recovering from a mispredict When the prophet predicts a branch, a copy o
f the current BHR and the current BOR are assigned to the branch.
If a mispredict is detected for the branch, the BHR and BOR are restored from the values assigned to the branch, the mispredicted branch’s correct outcome is inserted into the BHR and BOR, and fetch is directed to the correct path.
![Page 19: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/19.jpg)
Recovering from a mispredict It is the instructions that follow it that are on the wrong path. Suc
h a branch is not flushed from the pipeline when the mispredict is detected. It continues down the pipeline, and when it commits, it trains the critic using the same BOR value that was used to generate the critic prediction.
This BOR value has a single (mispredicted) future bit that corresponds to the branch, plus future bits for the branches on the wrong path that were flushed. If the BOR value did not contain the future bits for the wrong path, the critic would never be trained to recognize when the prophet has mispredicted a branch and gone down the wrong path.
![Page 20: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/20.jpg)
Outline Motivation Prophet/critic hybrid branch prediction Filtering the critic A prophet/critic hybrid implementation Simulation methodology Evaluation The theory Conclusion
![Page 21: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/21.jpg)
Filtering the critic
The critic’s accuracy can be limited by multiple branches contending for the same prediction resources; that is, by conflicts.
Conflicts can be reduced by filtering easy-to-predict branches from a predictor.
Only the difficult branches were predicted with the original predictor, for which conflicts were a problem.
![Page 22: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/22.jpg)
![Page 23: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/23.jpg)
Outline Motivation Prophet/critic hybrid branch prediction Filtering the critic A prophet/critic hybrid implementation Simulation methodology Evaluation The theory Conclusion
![Page 24: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/24.jpg)
Outline Motivation Prophet/critic hybrid branch prediction Filtering the critic A prophet/critic hybrid implementation Simulation methodology Evaluation The theory Conclusion
![Page 25: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/25.jpg)
Use a cycle-accurate IA32, uop based, execution driven simulator that executes Long Instruction Traces (LITs). A LIT is not actually a trace. But a snapshot of of the processor state, inc
luding memory.
contains a list of system interrupts needed to simulate system events such as DMA.
![Page 26: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/26.jpg)
Simulated Benchmark Suites
![Page 27: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/27.jpg)
Simulation Parameters
![Page 28: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/28.jpg)
Predictor Simulated
Any predictor can play the role of prophet or critic.
Predictors they used Gshare 2Bc-gskew Percetron
![Page 29: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/29.jpg)
Prophet and critic configurations
![Page 30: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/30.jpg)
Outline Motivation Prophet/critic hybrid branch prediction Filtering the critic A prophet/critic hybrid implementation Simulation methodology Evaluation The theory Conclusion
![Page 31: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/31.jpg)
The importance of future bits.
![Page 32: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/32.jpg)
Adding some future bits always helps, but more is not always better.
![Page 33: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/33.jpg)
The mispredictrate increases when more than 8 future bits are used.
![Page 34: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/34.jpg)
Solution to this problem is to filter the critic. With a filter, the critic only provides critiques for branches that the
prophet previously mispredicted.
![Page 35: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/35.jpg)
![Page 36: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/36.jpg)
![Page 37: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/37.jpg)
Distribution of critiques
Ideally, the critic disagrees when the prophet mispredicts (incorrect_disagree).
When the critic agrees with the prophet (correct agree if the prophet didn’t mispredict; incorrect agree if it did), the final prediction does not change, so there is neither gain nor harm.
In fact?
![Page 38: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/38.jpg)
![Page 39: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/39.jpg)
Increasing the filter size allows more contexts to be stored in its tag table.
Increasing the number of future bits is also beneficial to the filter, as it is better able to identify the contexts where the prophet mispredicted a branch.
![Page 40: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/40.jpg)
Processor performance
![Page 41: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/41.jpg)
![Page 42: Prophet/Critic Hybrid Branch Prediction](https://reader035.vdocuments.us/reader035/viewer/2022062502/56815963550346895dc69f88/html5/thumbnails/42.jpg)