1989 · 64 citations · 11 references
EngineeringComputer EngineeringComputer ScienceComputer ArchitectureHardware-software Co-designLow-power DesignHardware AccelerationMicroarchitecture DesignPerformance OptimizationPipeline ParallelismProcessor Core DesignBranch InstructionsExecution Cost AnalysisInstruction Fetch UnitInstruction PipeliningPipeline ArchitecturePipeline DesignPipeline Performance ModelingPipelining
Pipelining has become a common technique to increase throughput of the instruction fetch, instruction decode, and instruction execution portions of modern comput-ers. 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 gen-eral 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/branch (best hard-ware scheme) for a moderately pipelined processor (5-stage pipeline). 1
11
A study of branch prediction strategies
James E. Smith · 1998 · 794 citations · Full text
Branch Prediction Strategies and Branch Target Buffer Design
Scott McFarling, J. Hennesey · ACM SIGARCH Computer Architecture News · 1986 · 263 citations
David A. Patterson, Carlo H. Séquin · 1998 · 183 citations