Trainable apparatus for predicting instruction outcomes in pipelined processors
AssigneeDigital Equipment Corporation
InventorsScott McFarling, Simon C. Steely, Jr., Joel Emer, Edward McLellan
Life of this patent
Estimating the term…
Abstract
A predictor which chooses between two or more predictors is described. The predictor includes a first component predictor which operates according to a first algorithm to produce a prediction of an action and a second component predictor which operates according to a second algorithm to produce a prediction of said action. The predictor also includes means, coupled to each of said first and second predictors, for choosing between predictions provided from said predictors to provide a prediction of the action from the predictor. The predictor can be used to predict outcomes of branches, cache hits, prefetched instruction sequences, and so forth.
Claims31
A predictor for generating a prediction of an instruction outcome from prior instruction outcomes, comprising:
- a first component predictor which operates on said prior instruction outcomes according to a first algorithm to produce a prediction of said instruction outcome;
- a second component predictor which operates on said prior instruction outcomes according to a second algorithm to produce a prediction of said instruction outcome;
- and
- means, coupled to each of said first and second component predictors, for choosing between predictions provided from said component predictors to provide a prediction of said instruction outcome from said predictor.
A choosing branch predictor, comprising:
- a first component branch predictor which operates according to a past history branch algorithm to produce a prediction of whether an instruction will or will not take a branch;
- a second component branch predictor which operates according to a global path history algorithm to produce a prediction of whether said instruction will or will not take a branch;
- and
- means, coupled to each of said first and second component predictors, for choosing between predictions provided from said first and second component predictors to provide a prediction of the branch from the choosing branch predictor.
A tournament predictor, comprising:
- a first choosing predictor, comprising:
- a first component predictor which operates according to a first algorithm to produce a prediction of an action;
- a second component predictor which operates according to a second algorithm to produce a prediction of said action;
- and
- means, coupled to each of said first and second predictors, for choosing between predictions provided from said predictors to provide a prediction of the action from the first choosing predictor;
- a second choosing predictor, comprising:
- a third component predictor which operates according to a third algorithm to produce a prediction of an action;
- a fourth component predictor which operates according to a fourth algorithm to produce a prediction of said action;
- and
- means, coupled to each of said third and fourth predictors, for choosing between predictions provided from said predictors to provide a prediction of the action from the second choosing predictor;
- and
- means, coupled to each of said first and second choosing predictors, for choosing between predictions provided from said choosing predictors to provide a prediction of the action from said tournament choosing predictor.
Trainable apparatus for predicting an outcome of an instruction in a pipelined processor, said apparatus comprising:
- a first component predictor which is responsive to a previous outcome of said instruction for producing a prediction of said instruction outcome;
- a second component predictor which is responsive to a previous outcome of an instruction other than said instruction for producing a prediction of said instruction outcome;
- and
- training means, coupled to each of said first and second component predictors and responsive to a plurality of previous instruction outcomes for choosing between predictions provided from said component predictors to provide a predicted outcome from said apparatus.
A pipelined computer processor having a branch predictor for predicting whether a conditional branch will be taken as a result of a conditional branch instruction, said branch predictor comprising:
- a first component predictor which operates according to a first algorithm to produce a first prediction of whether said conditional branch will taken;
- a second component predictor which operates according to a second algorithm to produce a second prediction of whether said conditional branch will be taken;
- and
- means, coupled to each of said first and second component predictors, for choosing one of said first and second predictions.
Trainable apparatus for predicting an outcome of an instruction in an instruction stream in a pipelined processor, said apparatus comprising:
- a first component predictor which is responsive to a location in said instruction stream of said instruction for producing a prediction of said instruction outcome;
- a second component predictor which is responsive to a location in said instruction stream of an instruction other than said instruction for producing a prediction of said instruction outcome;
- and
- training means, coupled to each of said first and second component predictors and responsive to a plurality of previous instruction outcomes for choosing between predictions provided from said component predictors to provide a predicted outcome from said apparatus.
Trainable apparatus for predicting an outcome of an instruction in an instruction stream in a pipelined processor, said apparatus comprising:
- a first component predictor which is responsive to an outcome of said instruction for producing a prediction of said instruction outcome;
- a second component predictor which is responsive to a location in said instruction stream of an instruction other than said instruction for producing a prediction of said instruction outcome;
- and
- training means, coupled to each of said first and second component predictors and responsive to a plurality of previous instruction outcomes for choosing between predictions provided from said component predictors to provide a predicted outcome from said apparatus.
Dependencies are inferred from the claim text.