Abstract
The need for modern processors is based on fast and precise branch predictors to improve the execution of instructions in the pipeline. In a parallel processor, the pipeline cannot execute the conditional instructions with the next clock cycle, leading to a pipeline stall. To address this issue, this paper suggests a variety of branch prediction techniques for improving the execution speed of conditional instructions. Firstly, a simple branch prediction and a dynamic branch prediction are applied to the trace files using saturating counters. Among these two, dynamic branch prediction provides better results by enhancing the accuracy rate of 2.01% than the static branch prediction. Further, the perceptron branch predictor predicts the implementation by using a table of perceptron and train function. This prediction scheme reduces the difficulties in dynamic branch predictor schemes such as reduces the complexity in history length table and improves the accuracy rate by 5.36%. For accuracy, a novel model based on global perceptron branch predictor is developed, which uses both global and per branch information. Trace-driven simulations have been performed by varying the range of hardware budget, traces file size, and the length of history register to increase the accuracy rate of each branch prediction technique. The obtained results suggest that the proposed global perceptron branch predictor provides an increased accuracy rate of 10.47% at 4 kb hardware budget and 8.06% at 4-bit history length than the perceptron branch predictor.
Similar content being viewed by others
References
Abudalfa S et al (2019) Comparative study on behavior-based dynamic branch prediction using machine learning. Int J Comput Digit Syst 8(1):33–41. https://doi.org/10.12785/ijcds/080104
Chang PY, Hao E, Yeh TY, Patt Y (1994) Branch classification: a new mechanism for improving branch predictor performance. Prof Eng 7(21):22–31. https://doi.org/10.1109/MICRO.1994.717404
Changela A (2016) Hazard detection and data forwarding scheme for 5-stage pipeline structure of RISC processor. Int J Innov Res Comput Commun Eng 4(6):11693–21169. https://doi.org/10.15680/IJIRCCE.2016
Deibel N, Sikorski K (2003) Exploring perceptrons in branch prediction. pp. 1–11. Retrieved from https://scholar.googleusercontent.com/scholar
Goyal S, Singh J (2017) Two-level alloyed branch predictor based on genetic algorithm for deep pipelining processors. Int J Mod Educ Comput Sci 9(5):27–33
Habibizad Navin A, Lahouti E, Lotfi Anhar M, Mirnia MK (2010) A new method to prevent control hazard in pipeline processor by using an auxiliary processing unit. 2010 2nd International Conference on Advanced Computer Control, pp 596–599. https://doi.org/https://doi.org/10.1109/ICACC.2010.5487130
Heil TH, Smith Z, Smith, JE (1999) Improving branch predictors by correlating on data values. Proceedings of the 32nd Annual ACM/IEEE International Symposium on Microarchitecture, pp 28–37
Ho CY, Chong KF, Yau CH, Fong ASS (2007) A study of dynamic branch predictors: counter versus perceptron. Fourth International Conference on Information Technology (ITNG’07), pp 528–536
Kalla B, Santhi N, Badawy AHA, Chennupati G, Eidenbenz S (2017) A probabilistic monte carlo framework for branch prediction. 2017 IEEE Int Conf Clust Comput (CLUSTER) 3:651–652. https://doi.org/10.1109/CLUSTER.2017.29
Kulkarni KN, Mekala VR (2016) A review of branch prediction schemes and a study of branch predictors in modern microprocessors.
Loh GH, Henry DS (2002) Predicting conditional branches with fusion-based hybrid predictors. Parallel Architectures and Compilation Techniques - Conference Proceedings, PACT, Jan 2002, pp 165–176. https://doi.org/https://doi.org/10.1109/PACT.2002.1106015
Mao Y, Zhou H, Gui X, Shen J (2020) Exploring convolution neural network for branch prediction. IEEE Access 8:1–1. https://doi.org/10.1109/access.2020.3017196
Mittal, S. (2018). A survey of techniques for dynamic branch prediction. pp 1–37. https://doi.org/https://doi.org/10.1145/2893356
Pandey A (2016) Study of data hazard and control hazard resolution techniques in a simulated five stage pipelined RISC processor. Int Conf Invent Comput Technol (ICICT) 2:1–4
Panwar N, Kaur M, Singh G (2015) Performance analysis of branch prediction unit for pipelined processors. Int J Comput Appl 128(16):6–12
Patel R, Kumar S (2018) A study of various existing techniques to deal with pipeline hazards. Res J Eng Technol 9(4):304–306. https://doi.org/10.5958/2321-581X.2018.00041.7
Porter L, Tullsen DM (2009) Creating artificial global history to improve branch prediction accuracy. Proceedings of the 23rd International Conference on Supercomputing. pp 266–275. https://doi.org/https://doi.org/10.1145/1542275.1542315
Rao S, Sudhakar PK (2018) An analysis to improve branch prediction accuracy by using neural branch prediction. Int J Mod Trends Sci Technol 3(5):1–7
Seznec A, Jourdan S, Sainrat P, Michaud P, Seznec A, Jourdan S, Sainrat P, Michaud P, Branch MA (2006) Multiple-block ahead branch predictors
Shah PZ, Prabhu SU (2014) Hybrid learning-based branch predictor. Int J Eng Res Technol 3(8):1135–1139
Skadron K, Martonosi M, Clark DW (2000) A taxonomy of branch mispredictions, and alloyed prediction as a robust solution to wrong-history mispredictions. Proceedings International Conference on Parallel Architectures and Compilation Techniques. pp 1–8
Starke RA, Carminati A, de Oliveira RS (2017) Evaluation of a low overhead predication system for a deterministic VLIW architecture targeting real-time applications. Microprocess Microsyst 49:1–8. https://doi.org/10.1016/j.micpro.2016.11.017
Su X, Wu H, Yang Q (2016) An efficient wcet-aware hybrid global branch prediction approach. Proceedings-2016 IEEE 22nd International Conference on Embedded and Real-Time Computing Systems and Applications, RTCSA 2016. pp 195–201. https://doi.org/https://doi.org/10.1109/RTCSA.2016.46
Sweety N, Chaudhary P (2021) Towards the improving branch instructions identification in high-performance processors issues, challenges and techniques. Recent advances in computer science and communications. https://www.eurekaselect.com/node/191298/article/towards-the-improving-branch-instructions-identification-in-high-performance-processors-issues-challenges-and-techniques
Sweety N, Chaudhary P (2018) Branch prediction techniques used in pipeline processors: a review. Int J Pure Appl Math 119(15):2843–2851
Tripathy AK, Mishra P (2011) A novel approach for branch prediction using SVM. Int J Adv Res Comput Sci 2(1)
Zhang L, Wu N, Ge F, Zhou F, Yahya MR (2020) A dynamic branch predictor based on parallel structure of SRNN. IEEE Access 8:86230–86237. https://doi.org/10.1109/ACCESS.2020.2992643
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Sweety, Chaudhary, P. An efficient branch predictor for improved accuracy of instruction level parallelism. J Supercomput 77, 12098–12120 (2021). https://doi.org/10.1007/s11227-021-03778-5
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-021-03778-5