This Article 
 Bibliographic References 
 Add to: 
Branch Strategies: Modeling and Optimization (Pipeline Processing)
October 1991 (vol. 40 no. 10)
pp. 1159-1167

The authors provide a common platform for modeling different schemes for reducing the branch-delay penalty in pipelined processors as well as evaluating the associated increased instruction bandwidth. Their objective is twofold: to develop a model for different approaches to the branch problem and to help select an optimal strategy after taking into account additional i-traffic generation by branch strategies. The model presented provides a flexible tool for comparing different branch strategies in terms of the reduction it offers in average branch delay and also in terms of the associated cost of wasted instruction fetches. This additional criterion turns out to be a valuable consideration in choosing between two strategies that perform almost equally. More importantly, it provides a better insight into the expected overall system performance. Simple compiler-support-based low-implementation-cost strategies can be very effective under certain conditions. An active branch prediction scheme based on loop buffers can be as competitive as a branch-target-buffer based strategy.

[1] P. K. Dubey and M. Flynn, "Optimal pipelining,"J. Parallel Distributed Comput., pp. 10-19, Jan. 1990.
[2] L. C. Garcia and T. Huynh, "Storage fetch contention reduction using instruction branch prediction,"IBM Tech. Disclos. Bull., vol. 23, no. 6, 1980.
[3] J. K. Lee and A. J. Smith, "Branch prediction strategies and branch target buffer design,"IEEE Comput. Mag., vol. 17, no. 1, Jan. 1984.
[4] S. McFarling and I. Hennessey, "Reducing the cost of branches," inProc. 13th Annu. Symp. Comput. Architecture, June 1986, pp. 396-403.
[5] E. Riseman and C. Foster, "The inhibition of potential parallelism by conditional jumps,"IEEE Trans. Comput., vol. C-21, Dec. 1972.
[6] J. E. Smith, "A study of branch prediction strategies," inProc. 8th Annu. Symp. Comput. Architecture, May 1981.
[7] G. S. Tjaden and M. Flynn, "Representation of concurrency with ordering matrices,"IEEE Trans. Comput., pp. 752-761, Aug. 1973.
[8] G. S. Tjaden and M. Flynn, "Detection and parallel execution of independent instructions,"IEEE Trans. Comput., pp. 889-895, Oct. 1970.
[9] B. L. Peuto and L. J. Shustek, "Current issues in the architecture of microprocessors,"IEEE Comput. Mag., pp. 20-25, Feb. 1977.
[10] T. R. Gross and J. Hennessey, "Optimizing delayed branches," inProc. 15th Workshop Microprogramming, 1986.
[11] P. Y. T. Hsu and E. S. Davidson, "Highly concurrent scalar processing," inProc. 13th Annu. Symp. Comput. Architecture, June 1986, pp. 386-395.
[12] P. Dubey and M. Flynn, "Branch strategies: Modelling and optimization," Tech. Rep. CSL TR 90-411, Comput. Syst. Lab., Stanford Univ., Feb. 1990.
[13] J. A. DeRosa and H. M. Levy, "An evaluation of branch architectures," inProc. 14th Annu. Symp. Comput. Architecture, June 1987, pp. 10-16.
[14] T. Gross, "Code optimizations of pipeline constraints," Tech. Rep. CSL TR 83-255, Comput. Syst. Lab., Stanford Univ., Dec. 1983.
[15] D. R. Ditzel and H. R. McLellan, "Branch folding in CRISP microprocessor," inProc. 14th Annu. Symp. Comput. Architecture, June 1987, pp. 2-9.
[16] G. F. Grohoski, J. A. Kahle, L. E. Thatcher, and C. R. Moore, "Branch and fixed-point instruction execution units," IBM RISC System/6000 Technology, Publication SA 23-2619, IBM Corp., 1990.
[17] M. Smith, M. Johnson, and M. Horowitz, "Limits on Multiple Instruction Issue,"Symp. Architectural Support Programming Languages and Operating Systems, IEEE CS Press, Los Alamitos, CA, Order No. 1,936, 1989, pp. 290-302.
[18] J. A. Fisher, "Trace scheduling: A technique for global microcode compaction,"IEEE Trans. Comput., vol. C-30, pp. 478-490, July 1981.

Index Terms:
compilers; branch-delay penalty; pipelined processors; instruction bandwidth; i-traffic; wasted instruction fetches; active branch prediction; loop buffers; branch-target-buffer; parallel programming; pipeline processing; program compilers.
P.K. Dubey, M.J. Flynn, "Branch Strategies: Modeling and Optimization (Pipeline Processing)," IEEE Transactions on Computers, vol. 40, no. 10, pp. 1159-1167, Oct. 1991, doi:10.1109/12.93749
Usage of this product signifies your acceptance of the Terms of Use.