2014 · 125 citations · 11 references
EngineeringComputer EngineeringComputer ScienceParallel ComputingPerformance MeasurementSoftware EngineeringBranch PredictionCache Behavior AnalysisHardware AccelerationInstruction Set ArchitecturePerformance EvaluationBranch Prediction AnalysisBranch Prediction In Multicore ProcessorsInstruction Fetch BandwidthInstruction Fetch Unit
High performance computer implementation today is increasingly directed toward parallelism in the hard-ware. Superscalar machines, where the hardware can issue more than one instruction each cycle, are being adopted by more implementations. As the trend toward wider issue rates continues, so too must the ability to fetch more instructions each cycle. Although compilers can improve the situation by increasing the size of basic blocks, hardware mechanisms to fetch multiple possibly non-consecutive basic blocks are also needed. Viable mechanisms for fetching multiple non-consecutive basic blocks have not been previously investigated. We present a mechanism for predicting multiple branches and fetching multiple non-consecutive basic blocks each cycle which is both viable and eective. We measured the eectiveness of the mechanism in terms of the IPC f, the number of instructions fetched per clock for a machine front-end. For one, two, and three basic blocks, the IPC f of integer benchmarks went from 3.0 to 4.2 and 4.9, respectively. For \noating point bench-marks, the IPC f went from from 6.6 to 7.1 and 8.9. 1
11
A study of branch prediction strategies
James E. Smith · 1998 · 794 citations · Full text
Branch Prediction Strategies and Branch Target Buffer Design
Two-level adaptive training branch prediction
Tse-Yu Yeh, Yale N. Patt · 1991 · 569 citations · Full text