Title :
Caching and predicting branch sequences for improved fetch effectiveness
Author :
Onder, Soner ; Xu, Jun ; Gupta, Rajiv
Author_Institution :
Dept. of Comput. Sci., Michigan Technol. Univ., Houghton, MI, USA
Abstract :
A sequence of branch instructions in the dynamic instruction stream forms a branch sequence if at most one non-branch instruction separates each consecutive pair of branches in the sequence. We propose a branch prediction scheme in which branch sequence history is explicitly maintained to identify frequently encountered branch sequences at runtime and when the first branch in the sequence is encountered, the outcomes of the all of the branches in the sequence are predicted. We have designed an implementation of a branch sequence predictor which provides overall mis-prediction rates that are comparable with the gshare single branch predictor. Using this branch sequence predictor, we have devised a novel instruction fetch mechanism. By saving the instructions following the first branch belonging to a branch sequence in a sequence table, the proposed mechanism eliminates fetches of nonconsecutive instruction cache lines containing these instructions and therefore delays associated with their fetching are avoided. Experiments comparing the proposed fetch mechanism with a simple fetch mechanism based upon a single branch prediction for Spec95 benchmarks demonstrate that the total number of I-cache lines fetched during execution decreases by as much as 15%, the number of useful instructions per fetched cache line increases by as much as 18%, and the overall IPCs achieved on a superscalar processor increase by as much as 17% for some benchmarks
Keywords :
cache storage; instruction sets; parallel architectures; I-cache lines; Spec95 benchmarks; branch instructions; branch sequence caching; branch sequence history; branch sequence predictor; dynamic instruction stream; fetch effectiveness; fetched cache line; gshare single branch predictor; instruction fetch mechanism; non-branch instruction; nonconsecutive instruction cache lines; overall IPCs; overall mis-prediction rates; sequence table; single branch prediction; superscalar processor; Bandwidth; Computer science; Delay; History; Performance loss; Prediction algorithms; Runtime;
Conference_Titel :
Parallel Architectures and Compilation Techniques, 1999. Proceedings. 1999 International Conference on
Conference_Location :
Newport Beach, CA
Print_ISBN :
0-7695-0425-6
DOI :
10.1109/PACT.1999.807575