Book contents
- Frontmatter
- Contents
- Preface
- 1 Introduction
- 2 The Basics
- 3 Superscalar Processors
- 4 Front-End: Branch Prediction, Instruction Fetching, and Register Renaming
- 5 Back-End: Instruction Scheduling, Memory Access Instructions, and Clusters
- 6 The Cache Hierarchy
- 7 Multiprocessors
- 8 Multithreading and (Chip) Multiprocessing
- 9 Current Limitations and Future Challenges
- Bibliography
- Index
- References
4 - Front-End: Branch Prediction, Instruction Fetching, and Register Renaming
Published online by Cambridge University Press: 05 June 2012
- Frontmatter
- Contents
- Preface
- 1 Introduction
- 2 The Basics
- 3 Superscalar Processors
- 4 Front-End: Branch Prediction, Instruction Fetching, and Register Renaming
- 5 Back-End: Instruction Scheduling, Memory Access Instructions, and Clusters
- 6 The Cache Hierarchy
- 7 Multiprocessors
- 8 Multithreading and (Chip) Multiprocessing
- 9 Current Limitations and Future Challenges
- Bibliography
- Index
- References
Summary
In this chapter, we revisit the actions that are taken during the front-end of the instruction pipeline: instruction fetch, instruction decode, and, for out-of-order processors, register renaming.
A large part of this chapter will be devoted to branch prediction, which in turn governs instruction fetch. We have already seen in previous chapters the importance of branch prediction in that (i) branch instructions, or more generally transfer of control flow instructions, occur very often (once every five instructions on average), and (ii) branch mispredictions are extremely costly in lost instruction issue slots. The performance penalty of misprediction increases with the depth and the width of the pipelines. In other words, the faster the processor (the greater the depth) and the more it can exploit instruction-level parallelism (the greater the width), the more important it is to have accurate branch predictors.
We shall start our study of branch prediction by examining the anatomy of a branch predictor, an instance of a general prediction model. This model will highlight the decision points: when we predict, what we predict, how we predict, and how to provide feedback to the predictor. For the two types of prediction, branch direction and branch target address, the emphasis will first be on the “how.” Because there have been hundreds of papers devoted to branch direction prediction, the highlight will be on what may be considered to be the most important schemes, historically and performancewise.
- Type
- Chapter
- Information
- Microprocessor ArchitectureFrom Simple Pipelines to Chip Multiprocessors, pp. 129 - 176Publisher: Cambridge University PressPrint publication year: 2009