An Energy-Efficient Branch Prediction with Grouped Global History

Branch prediction has been playing an increasingly important role in improving the performance and energy efficiency for modern microprocessors. The state-of-the-art branch predictors, such as the perceptron and TAGE predictors, leverage novel prediction algorithms to explore longer branch history for higher prediction accuracy. We observe that as the branch history is becoming longer, the efficiency of global history is degraded by the interference of different branch instructions. In order to mitigate the excessive influence of the branch history interference, we propose the Grouped Global History (GGH) based branch predictor, a lightweight yet efficient branch predictor. Unlike existing branch predictors that make use of a unified global history for prediction, GGH divides the global history into a set of subgroups such that the interference resulted by frequently executed branch instructions could be restricted. With subgroups of global history, GGH also enables us to track even longer effective branch correlation without introducing hardware storage overhead. Our experimental results based on SPEC CINT 2006 workloads demonstrate that our approach can significantly reduce the branch mispredictions per kilo instructions (MPKI) by 4.76 over the baseline perceptron predictor, with a simple control logic extension.

[1]  Norman P. Jouppi,et al.  CACTI 6.0: A Tool to Model Large Caches , 2009 .

[2]  Narayanan Vijaykrishnan,et al.  Understanding and improving operating system effects in control flow prediction , 2002, ASPLOS X.

[3]  Daniel A. Jiménez,et al.  Piecewise linear branch prediction , 2005, 32nd International Symposium on Computer Architecture (ISCA'05).

[4]  Trevor N. Mudge,et al.  The YAGS branch prediction scheme , 1998, Proceedings. 31st Annual ACM/IEEE International Symposium on Microarchitecture.

[5]  Margaret Martonosi,et al.  A taxonomy of branch mispredictions, and alloyed prediction as a robust solution to wrong-history mispredictions , 2000, Proceedings 2000 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00622).

[6]  Xu Cheng,et al.  An energy-efficient branch prediction technique via global-history noise reduction , 2013, International Symposium on Low Power Electronics and Design (ISLPED).

[7]  Trevor N. Mudge,et al.  The bi-mode branch predictor , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[8]  Dean M. Tullsen,et al.  Accurate branch prediction for short threads , 2008, ASPLOS.

[9]  Pierre Michaud,et al.  A case for (partially) TAgged GEometric history length branch prediction , 2006, J. Instr. Level Parallelism.

[10]  James E. Smith,et al.  Path-based next trace prediction , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[11]  Daniel A. Jiménez,et al.  Dynamic branch prediction with perceptrons , 2001, Proceedings HPCA Seventh International Symposium on High-Performance Computer Architecture.

[12]  André Seznec,et al.  A new case for the TAGE branch predictor , 2011, 2011 44th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[13]  Xu Cheng,et al.  Energy-efficient branch prediction with Compiler-guided History Stack , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[14]  James E. Smith,et al.  A study of branch prediction strategies , 1981, ISCA '98.

[15]  Somayeh Sardashti,et al.  The gem5 simulator , 2011, CARN.

[16]  Y.N. Patt,et al.  Using Hybrid Branch Predictors to Improve Branch Prediction Accuracy in the Presence of Context Switches , 1996, 23rd Annual International Symposium on Computer Architecture (ISCA'96).

[17]  Yale N. Patt,et al.  A comparison of dynamic branch predictors that use two levels of branch history , 1993, ISCA '93.

[18]  Koen De Bosschere,et al.  2FAR: A 2bcgskew Predictor Fused by an Alloyed Redundant History Skewed Perceptron Branch Predictor , 2005, J. Instr. Level Parallelism.

[19]  Andrew A. Chien,et al.  The future of microprocessors , 2011, Commun. ACM.

[20]  Yale N. Patt,et al.  Alternative Implementations of Two-Level Adaptive Branch Prediction , 1992, [1992] Proceedings the 19th Annual International Symposium on Computer Architecture.

[21]  Yale N. Patt,et al.  A two-level approach to making class predictions , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

[22]  Dean M. Tullsen,et al.  Creating artificial global history to improve branch prediction accuracy , 2009, ICS '09.

[23]  Mikko H. Lipasti,et al.  Bias-Free Branch Predictor , 2014, 2014 47th Annual IEEE/ACM International Symposium on Microarchitecture.

[24]  Natalie D. Enright Jerger,et al.  Wormhole: Wisely Predicting Multidimensional Branches , 2014, 2014 47th Annual IEEE/ACM International Symposium on Microarchitecture.

[25]  Xu Cheng,et al.  CVP: an energy-efficient indirect branch prediction with compiler-guided value pattern , 2012, ICS '12.

[26]  André Seznec,et al.  Genesis of the O-GEHL Branch Predictor , 2005, J. Instr. Level Parallelism.

[27]  Yale N. Patt,et al.  Improving branch prediction accuracy by reducing pattern history table interference , 2007, International Journal of Parallel Programming.

[28]  S. McFarling Combining Branch Predictors , 1993 .