Branch prediction mechanisms are becoming commonplace within modern microprocessors. For developers of real-time control systems, the mechanisms present predictability problems. The reasons are they increase the difficulty in analysing software for its Worst-Case Execution Time without introducing unmanageable pessimism and they increase the variability of the software's execution times. In this paper, we improve upon existing branch prediction analysis by taking into account the semantic context of the branches in the source code in order to classify them as either being easy-to-predict or hard-to-predict. Based on this classification we provide a static analysis approach for bimodal and global-history branch prediction schemes. The analysis is applied to a previously published example with the benefit that a more detailed explanation of its results is obtained.

BibTex Entry

@inproceedings{Bate2004a,
 address = {Catania, Italy},
 author = {I. Bate and R. Reutemann},
 booktitle = {Proceedings of the 16th Euromicro Conference on Real-Time Systems},
 month = {July},
 organization = {IEEE Computer Society},
 pages = {215--222},
 publisher = {IEEE},
 title = {Worst-Case Execution Time Analysis for Dynamic Branch Predictors},
 year = {2004}
}