Send Orders for Reprints to reprints@benthamscience.net
Recent Advances in Computer Science and Communications, XXXX, XX, 1-7 1
RESEARCH ARTICLE
2666-2558/XX $65.00+.00 © XXXX Bentham Science Publishers
A Hybrid Branch Prediction Approach For High-Performance Processors
Sweety Nain
1,*
and Prachi Chaudhary
2
1
Department of Electronics and Communication, Research Scholar, D.C.R.U.S.T, Sonipat, India;
2
Department of
Electronics and Communication, Assistant Professor, D.C.R.U.S.T, Sonipat, India
Abstract: Background: In a parallel processor, the pipeline cannot fetch the conditional
instructions with the next clock cycle, leading to a pipeline stall. Therefore, conditional
instructions create a problem in the pipeline because the proper path can only be known after the
branch execution. To accurately predict branches, a significant predictor is proposed for the
prediction of the conditional branch instruction.
Method: In this paper, a single branch prediction and a correlation branch prediction scheme are
applied to the different trace files by using the concept of saturating counters. Further, a hybrid
branch prediction scheme is proposed, which uses both global and local branch information,
providing more accuracy than the single and correlation branch prediction schemes.
Results: Firstly, a single branch prediction and correlation branch prediction technique are applied
to the trace files using saturating counters. By comparison, it can be observed that a correlation
branch prediction technique provides better results by enhancing the accuracy rate of 2.25% than
the simple branch prediction. Further, a hybrid branch prediction scheme is proposed, which uses
both global and local branch information, providing more accuracy than the single and correlation
branch prediction schemes. The results suggest that the proposed hybrid branch prediction schemes
provide an increased accuracy rate of 3.68% and 1.43% than single branch prediction and
correlation branch prediction.
Conclusion: The proposed hybrid branch prediction scheme gives a lower misprediction rate and
higher accuracy rate than the simple branch prediction scheme and correlation branch prediction
scheme.
A R T I C L E H I S T O R Y
Received: June 07, 2020
Revised: November 15, 2020
Accepted: December 22, 2020
DOI:
10.2174/2666255814666210210163616
Keywords: Pipeline, branch prediction, static branch prediction, dynamic branch prediction, accuracy rate.
1. INTRODUCTION
In computer architecture, a branch predictor is a unit in a
processor that determines whether a conditional branch in
the instruction flow of a program is likely to be taken or not.
Branch target prediction speculates the target of the branch
or unconditional jump before it is computed by parsing the
instruction itself. Thus, Branch prediction increases the
number of instructions available for the scheduler to issue
and helps exploit the available instruction-level parallelism
(ILP). In a highly parallel computer system, since
conditional branch instructions can break the normal flow of
instruction fetching and execution (by causing pipeline
disruptions), there has been a mounting pressure on
microprocessor architects to improve the predictability of the
conditional branches. Pipeline disruption reduces the
effective instruction throughput by introducing extra delays
in the pipeline. Since branches constitute a significant
*Address correspondence to this author at the Department of Electronics
and Communication, Research Scholar, Deenbandhu Chhotu Ram
University of Science and Technology Sonipat, India; Tel: +919810878194;
E-mail: sweetynain28@gmail.com
fraction of the instruction mix, the efficiency of handling
branches is essential. Recent work in branch prediction has
led to the development of both hardware and software
schemes that achieve acceptable prediction accuracy. Branch
prediction addresses two fundamental problems: 1)
predicting the direction of conditional branches and 2)
calculating the branch target address.
The branch prediction method falls into two categories of
prediction.
1.1. Static Branch Prediction
This technique is the simplest of all methods as it has a
predetermined branch action during the entire program [4].
The prediction is set during the compile-time; once's the
prediction is fixed, it cannot be changed [5]. These
predictions include methods such as
• Branch taken or not taken
• Backward taken forward, not taken
• Profile-based prediction
• Heuristic-based prediction