Sharing information to reduce redundancy in hybrid branch prediction
First Claim
Patent Images
1. A branch predictor system, comprising:
- a plurality of a first kind of storage elements to store prediction aiding information, the prediction aiding information including outcome information of prior branch predictions;
a plurality of branch predictors to provide a plurality of branch predictions, each of the branch predictors corresponding to each of the first kind of storage elements to store prior prediction outcomes of each of the branch predictors, and each predictor to make a corresponding prediction based on at least a portion of a branch instruction pointer and contents of a corresponding one of said plurality of said first kind of storage elements;
a plurality of a second kind of storage elements each corresponding to the plurality of branch predictors, each of the branch predictors to make a determination on the corresponding prediction for a branch location of an instruction, each one of said second kind of storage elements to hold less than full extent of said corresponding prediction, but sharing information among said plurality of said second kind of storage elements to enable extraction of said full extent of said corresponding prediction, wherein a first one of said second kind of storage elements, corresponding to an indirect branch predictor of said plurality of branch predictors, is to store a portion of a target address, and a second one of said second kind of storage elements, corresponding to another predictor of said plurality of branch predictors, is to supply a remainder of said target address; and
a selection mechanism to select a prediction from said plurality of said second kind of storage elements based on prediction scores of the plurality of branch predictors collected based on prior predictions performed by the branch predictors, wherein for each branch instruction, the plurality of branch predictors are configured to perform branch predictions substantially concurrently, and wherein the selection mechanism is configured to select a branch prediction from one of the plurality of branch predictors having the highest prediction score.
9 Assignments
0 Petitions
Accused Products
Abstract
A hybrid branch predictor is disclosed. The predictor includes prediction aiding information, a plurality of branch predictors to provide a plurality of branch predictions, a plurality of storage elements to hold less than full extent of the branch predictions, but sharing information among said plurality of storage elements enables extraction of said full extent of the prediction. The predictor also includes a selection mechanism to select a prediction from the plurality of branch predictions.
-
Citations
20 Claims
-
1. A branch predictor system, comprising:
-
a plurality of a first kind of storage elements to store prediction aiding information, the prediction aiding information including outcome information of prior branch predictions; a plurality of branch predictors to provide a plurality of branch predictions, each of the branch predictors corresponding to each of the first kind of storage elements to store prior prediction outcomes of each of the branch predictors, and each predictor to make a corresponding prediction based on at least a portion of a branch instruction pointer and contents of a corresponding one of said plurality of said first kind of storage elements; a plurality of a second kind of storage elements each corresponding to the plurality of branch predictors, each of the branch predictors to make a determination on the corresponding prediction for a branch location of an instruction, each one of said second kind of storage elements to hold less than full extent of said corresponding prediction, but sharing information among said plurality of said second kind of storage elements to enable extraction of said full extent of said corresponding prediction, wherein a first one of said second kind of storage elements, corresponding to an indirect branch predictor of said plurality of branch predictors, is to store a portion of a target address, and a second one of said second kind of storage elements, corresponding to another predictor of said plurality of branch predictors, is to supply a remainder of said target address; and a selection mechanism to select a prediction from said plurality of said second kind of storage elements based on prediction scores of the plurality of branch predictors collected based on prior predictions performed by the branch predictors, wherein for each branch instruction, the plurality of branch predictors are configured to perform branch predictions substantially concurrently, and wherein the selection mechanism is configured to select a branch prediction from one of the plurality of branch predictors having the highest prediction score. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-implemented method, comprising:
-
storing in a plurality of a first kind of storage elements prediction aiding information, the prediction aiding information including outcome information of prior branch predictions; performing a plurality of branch predictions using a plurality of branch predictors, each of the branch predictors corresponding to each of the first kind of storage elements to store prior prediction outcomes of each of the branch predictors, each predictor to make a corresponding prediction based on at least a portion of a branch instruction pointer and contents of a corresponding one of the plurality of the first kind of storage elements; storing in a plurality of a second kind of storage elements each corresponding to the plurality of branch predictors, each of the branch predictors making a determination on the corresponding prediction for a branch location of an instruction, each to hold less than full extent of the corresponding prediction, but sharing information among the plurality of the second kind of storage elements to enable extraction of the full extent of the corresponding prediction, wherein a first one of the second kind of storage elements, corresponding to an indirect branch predictor of the plurality of branch predictors, is to store a portion of a target address, and a second one of the second kind of storage elements, corresponding to another predictor of the plurality of branch predictors, is to supply a remainder of the target address; and selecting a prediction from the plurality of the second kind of storage elements based on prediction scores of the plurality of branch predictors collected based on prior predictions performed by the branch predictors, wherein for each branch instruction, the plurality of branch predictors are configured to perform branch predictions substantially concurrently, and wherein the selection mechanism is configured to select a branch prediction from one of the plurality of branch predictors having the highest prediction score. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A machine-readable medium having instructions which, when executed by a machine, cause the machine to perform a method, the method comprising:
-
storing in a plurality of a first kind of storage elements prediction aiding information, the prediction aiding information including outcome information of prior branch predictions; performing a plurality of branch predictions using a plurality of branch predictors, each of the branch predictors corresponding to each of the first kind of storage elements to store prior prediction outcomes of each of the branch predictors, and each predictor to make a corresponding prediction based on at least a portion of a branch instruction pointer and contents of a corresponding one of the plurality of the first kind of storage elements; storing in a plurality of a second kind of storage elements each corresponding to the plurality of branch predictors, each of the branch predictors making a determination on the corresponding prediction for a branch location of an instruction, each to hold less than full extent of the corresponding prediction, but sharing information among the plurality of the second kind of storage elements to enable extraction of the full extent of the corresponding prediction, wherein a first one of the second kind of storage elements, corresponding to an indirect branch predictor of the plurality of branch predictors, is to store a portion of a target address, and a second one of the second kind of storage elements, corresponding to another predictor of the plurality of branch predictors, is to supply a remainder of the target address; and selecting a prediction from the plurality of the second kind of storage elements based on prediction scores of the plurality of branch predictors collected based on prior predictions performed by the branch predictors, wherein for each branch instruction, the plurality of branch predictors are configured to perform branch predictions substantially concurrently, and wherein the selection mechanism is configured to select a branch prediction from one of the plurality of branch predictors having the highest prediction score.
-
Specification