An analysis of hard to predict branches

Branch prediction accuracy remains to be critical for high performance and low power. Prior work has studied causes of branch mispredictions in order to provide insights into how better branch predictors can be designed. However, most of the previous works have only considered run-time classificatio...

Full description

Saved in:
Bibliographic Details
Published in2010 IEEE International Symposium on Performance Analysis of Systems & Software (ISPASS) pp. 213 - 222
Main Authors Ozturk, Celal, Sendag, Resit
Format Conference Proceeding
LanguageEnglish
Published IEEE 01.03.2010
Subjects
Online AccessGet full text
ISBN1424460239
9781424460236
DOI10.1109/ISPASS.2010.5452016

Cover

More Information
Summary:Branch prediction accuracy remains to be critical for high performance and low power. Prior work has studied causes of branch mispredictions in order to provide insights into how better branch predictors can be designed. However, most of the previous works have only considered run-time classification of branch mispredictions, leaving a large number of mispredictions in an unknown category. For more comprehensive analysis, in this paper, we present a detailed source code analysis of branch mispredictions for SPEC CPU 2000 and Mibench benchmarks. Our analysis show that constant loop exits, insufficient history lengths, wrong-type history, array access/pointer references, complex linked list data structures, changing function inputs, and varying loop counts are the major causes for most of the branch mispredictions. We further show that most mispredictions have repetitive patterns that suggest different design strategies for future branch predictors.
ISBN:1424460239
9781424460236
DOI:10.1109/ISPASS.2010.5452016