Abstract

In order to fetch a large number of instructions per cycle from a sequential program, wide-issue superscalar processors have to predict the outcome of multiple branches in a cycle, and fetch instructions from non-contiguous portions of code. Past research has developed schemes that predict the outcome of multiple branches by means of a single prediction. That is, instead of predicting the outcome of every conditional branch, a tree-like subgraph of the control flow graph of the executed program is considered as a single prediction unit, and a path is predicted through the tree, thereby allowing the superscalar fetch mechanism to go past multiple branches per cycle. This paper investigates the potential of dynamically modifying the tree structure by pruning the rarely seen paths and extending the frequently seen paths, so as to increase the average fetch size. It discusses the procedure used for tree modifications, and presents the path length and prediction accuracy obtainable with this approach using the SPEC '95 integer benchmarks and the MIPS instruction set.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.