SPF: Selective Pipeline Flush

Branch mispredictions are inevitable in modern processors, but their high penalty in power and performance can be alleviated by selectively flushing the pipeline. In this paper, we present a practical technique to opportunistically determine the presence of correct path instructions in the processor pipeline and preserve those instructions instead of throwing them away. In our experiments, selective pipeline flush reduced the fetched instruction count by 7% (up to 26%), while increasing the performance by 2% (up to 15%).

[1]  Haitham Akkary,et al.  A dynamic multithreading processor , 1998, Proceedings. 31st Annual ACM/IEEE International Symposium on Microarchitecture.

[2]  Eric Rotenberg,et al.  Control independence in trace processors , 1999, MICRO-32. Proceedings of the 32nd Annual ACM/IEEE International Symposium on Microarchitecture.

[3]  Kothinti Naresh,et al.  Express Misprediction Recovery , 2014 .

[4]  David A. Patterson,et al.  The GAP Benchmark Suite , 2015, ArXiv.

[5]  James O. Bondi,et al.  The Misprediction Recovery Cache , 2004, International Journal of Parallel Programming.

[6]  Simha Sethumadhavan,et al.  Late-binding: enabling unordered load-store queues , 2007, ISCA '07.

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

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

[9]  David M. Koppelman,et al.  The effects on branch prediction when utilizing control independence , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum (IPDPSW).

[10]  Brad Calder,et al.  Automatically characterizing large scale program behavior , 2002, ASPLOS X.

[11]  Eric Rotenberg,et al.  Transparent control independence (TCI) , 2007, ISCA '07.

[12]  Amir Roth,et al.  Ginger: control independence using tag rewriting , 2007, ISCA '07.

[13]  Haitham Akkary,et al.  Reducing branch misprediction penalty via selective branch recovery , 2004, 10th International Symposium on High Performance Computer Architecture (HPCA'04).

[14]  Chen-Yong Cher,et al.  Skipper: a microarchitecture for exploiting control-flow independence , 2001, MICRO.

[15]  André Seznec,et al.  SYRANT: SYmmetric resource allocation on not-taken and taken paths , 2012, TACO.

[16]  Quinn Jacobson,et al.  A study of control independence in superscalar processors , 1999, Proceedings Fifth International Symposium on High-Performance Computer Architecture.

[17]  John Paul Shen,et al.  Reducing branch misprediction penalties via dynamic control independence detection , 1999, ICS '99.