Predicting indirect branches via data compression
- 27 November 2002
- proceedings article
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
Branch prediction is a key mechanism used to achieve high pe$ormance on multiple issue, deeply pipelined pro- cessors. By predicting the branch outcome at the instruction fetch stage of the pipeline, superscalar processors become able to exploit Instruction Level Parallelism (ILP) by pro- viding a larger window of instructions. However, when a branch is mispredicted, instructions from the mispredicted path must be discarded. Therefore, branch prediction ac- curacy is critical to achieve high performance. Existing branch prediction schemes can accurately predict the direc- tion of conditional branches, but have dificulties predicting the correct targets of indirect branches. Indirect branches occur frequently in Object-Oriented Languages (OOL), as well as in Dynamically-Linked Libraries (DLLs), two pro- gramming environments rapidly increasing in popularity In addition, certain language constructs such as multi-way control transfers (e.g., switches), and architecturalfeatures such as 64-bit address spaces, utilize indirect branching. In this paper, we describe a new algorithmforpredicting unconditional indirect branches called Prediction by Par- tial Matching (PPM). We base our approach on techniques proven to work optimally in the field of data compression. We combine a viable implementation of the PPM algorithm with dynamic per-branch selection of path-based correla- tion and compare its prediction accuracy against a variety of predictors. Our results show that, for approximately the same hardware budget, the combined predictor can achieve a misprediction ratio of 9.47%, as compared to 11.48% for the previously published most accurate indirect branchpre- dictorKeywords
This publication has 18 references indexed in Scilit:
- A Comparison Of Dynamic Branch Predictors That Use Two Levels Of Branch HistoryPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Characterizing the impact of predicated execution on branch predictionPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Accurate indirect branch predictionPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Execution characteristics of desktop applications on Windows NTPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Target prediction for indirect jumpsPublished by Association for Computing Machinery (ACM) ,1997
- Improving the accuracy of history-based branch predictionIEEE Transactions on Computers, 1997
- Analysis of branch prediction via data compressionPublished by Association for Computing Machinery (ACM) ,1996
- Implementing the PPM data compression schemeIEEE Transactions on Communications, 1990
- Data Compression Using Adaptive Coding and Partial String MatchingIEEE Transactions on Communications, 1984
- Branch Prediction Strategies and Branch Target Buffer DesignComputer, 1984