Comparing Software And Hardware Schemes For Reducing The Cost Of Branches
- 24 August 2005
- proceedings article
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
Pipelining has become a common technique to increase throughput of the instruction fetch, instruction decode, and instruction execution portions of modern computers. Branch instructions disrupt the flow of instructions through the the pipeline, increasing the overall execution cost of branch instructions. Three schemes to reduce the cost of branches are presented in the context of a general pipeline model. Ten realistic Unix domain programs are used to directly compare the cost and performance of the three schemes and the results are in favor of the software-based scheme. For example, the software-based scheme has a cost of 1.65 cycles/branch vs. a cost of 1.68 cycles/branch of the best hardware scheme for a highly pipelined processor (11-stage pipeline). The results are 1.19 (software scheme) vs. 1.23 cycles/braiich (best hard- ware scheme) for a moderately pipelined processor (5- stage pipeline)Keywords
This publication has 8 references indexed in Scilit:
- A study of branch prediction strategiesPublished by Association for Computing Machinery (ACM) ,1998
- Reducing the branch penalty in pipelined processorsComputer, 1988
- An evaluation of branch architecturesPublished by Association for Computing Machinery (ACM) ,1987
- Branch folding in the CRISP microprocessor: reducing branch delay to zeroPublished by Association for Computing Machinery (ACM) ,1987
- A Characterization of Processor Performance in the vax-11/780Published by Association for Computing Machinery (ACM) ,1984
- Branch Prediction Strategies and Branch Target Buffer DesignComputer, 1984
- Trace Scheduling: A Technique for Global Microcode CompactionIEEE Transactions on Computers, 1981
- An Efficient Algorithm for Exploiting Multiple Arithmetic UnitsIBM Journal of Research and Development, 1967