Configurable branch prediction for a processor performing specul

Boots – shoes – and leggings

Patent

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

395375, 364DIG1, 3642617, 3642318, G06F 938

Patent

active

054541174

ABSTRACT:
In a first aspect of the invention, branch prediction hardware, comprising logic and interconnect, is configurable via a control line to alter the manner in which the branch prediction is generated. The configuration can be done programmatically in software. Or, the configuration can be done by hardware in response to processor events. Such processor events include the loading of the CS register and changes in the instruction workload. In a second aspect of the invention, related to speculative execution, the directions of a plurality of branches are predicted based partly on resolved branch history information. Tentative branch history information is then stored for each of the predicted branches. When a predicted branch is resolved, the resolved branch history information is updated based on the stored tentative branch history information for the branch most recently resolved. Additionally, the predictions may be partly based on preceding unresolved branch predictions if any are outstanding. In a third aspect of the invention, Hit/Miss information from a Branch Prediction Cache (BPC) can optionally be used in formulating the next state value of an addressed two-bit counter stored in a correlation-based branch history table. Since a Miss in the BPC may indicate that this branch has not been encountered recently, whatever state currently exists can be optionally forced to a state that is based solely on whether the branch is resolved taken or not. This feature may be enabled and disabled under software control. In a fourth aspect of the invention, information from the instruction decoder is optionally used to override the correlation-based branch history table based prediction for select branch instructions. This feature may be enabled and disabled under software or hardware control.

REFERENCES:
patent: 5093778 (1992-03-01), Favor et al.
patent: 5142634 (1992-08-01), Fite et al.
patent: 5163140 (1992-11-01), Stiles et al.
patent: 5226126 (1993-07-01), McFarland et al.
patent: 5226130 (1993-07-01), Favor et al.
patent: 5228131 (1993-07-01), Ueda et al.
patent: 5230068 (1993-07-01), Van Dyke et al.
patent: 5265213 (1993-11-01), Weiser et al.
Peter M. Kogge; "The Architecture of Pipelined Computers"; McGraw-Hill; 1981; Section 6.6.2.
J. L. Hennessy and D. A. Patterson; "Computer Architecture, A Quantitiative Approach"; Morgan Kaufmann; 1990; Chapter 6 Section 6.7.
D. R. Ditzel and H. R. McLellan; "Branch folding in the CRISP microprocessor: Reducing the branch delay to zero"; Proceedings of the 14th Symposium on Computer Architecture; Jun. 1987; Pittsburg; pp. 2-7.
J. K. F. Lee and A. J. Smith; "Branch Prediction Strategies and Branch Target Buffer Design"; IEEE Computer; vol. 17; Jan. 1984; pp. 6-22.
Harvey G. Cragon; "Branch Strategy Taxonomy and Performance Models"; IEEE Computer Society Press; 1992; Chapter 4.
C. O. Stjernfeldt, E. W. Czeck, and D. R. Kaeli; "Survey of Branch Prediction Strategies"; Northeastern University technical report CE-TR-93-05; Jul. 28, 1993.
Shien-Tai Pan et al.; "Improving the Accuracy of Dynamic Branch Prediction using Branch Correlation"; ACM ASPLOS V Conference Proceedings; Jun. 1992; pp. 76-84.
Shien-Tai Pan, Kimming So, and Joseph T. Rahmeh; "Correlation-Based Branch Prediction"; University of Texas at Austin technical report, UT-CERC-TR-JTR91-01; Aug. 1991.
T. Yeh and Y. N. Patt; "Alternative Implementations of Two-level Adaptive Branch Prediction"; Proceedings to the 19th Annual International Symposium on Computer Architecture; May 1992; pp. 124-134.
T. Yeh and Y. N. Patt; "A Comparison of Dynamic Branch Predictors that use Two Levels of Branch History"; Proceedings to the 20th Annual International Symposium on Computer Architecture; May 1993; pp. 257-266.
Anderson, Earle, Goldschmidt, Powers; "The IBM System/360 Model 91: Floating-Point Execution Unit"; Jan. 1967; The IBM Journal of Research and Development; pp. 34-53.
Anderson, Sparacio, Tomasulo; "The IBM System/360 Model 91: Machine Philosophy and Instruction-Handling"; Jan. 1967; The IBM Journal of Research and Development; pp. 8-24.
Bolan, Granito, Marcotte, Messina, Smith; "The IBM System/360 Model 91: Storage System"; Jan. 1967; The IBM Journal of Research and Development; pp. 54-58.
Flynn, Low; "The IBM System/360 Model 91: Some Remarks on System Development"; Jan. 1967; The IBM Journal of Research and Development; pp. 2-7.
Tomasulo; "An Efficient Algorithm for Exploiting Multiple Arithmetic Units"; Jan. 1967; The IBM Journal of Research and Development; pp. 25-33.
John Levine; "Why Programmers Hate the 8086 and 286"(Aug. 8, '90); Understanding x86 Microprocessors; ZD Press; 1993 Section 2; pp. 2-4 thru 2-9.
Lilja; "Reducing the Branch Penalty in Pipelined Processors"; IEEE; 1988; pp. 47-55.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Configurable branch prediction for a processor performing specul does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Configurable branch prediction for a processor performing specul, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Configurable branch prediction for a processor performing specul will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-1558128

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.