Prediction of data values read from memory by a microprocessor using a dynamic confidence threshold
First Claim
Patent Images
1. A method for predicting a data value that will result from a load operation to be executed by a microprocessor, the method comprising:
- accessing an entry in a load value prediction table that stores a predicted data value corresponding to the load operation;
providing the predicted data value as a result of the load operation without waiting for execution of the load operation to complete a confidence parameter stored in the entry exceeds a current value of a dynamic confidence threshold;
adjusting the confidence parameter based on a first pre-determined criterion, wherein the first pre-determined criterion comprises an actual data value from executing the load operation to the predicted data value;
determining a new value of the dynamic confidence threshold based on a second pre-determined criterion, wherein the second pre-determined criterion comprises calculating a prediction parameter representing statistical accuracy of predicting the data value;
accessing another entry in the load value prediction table that stores another predicted data value corresponding to another load operation, wherein the load value prediction table is accessed, at least in part, from recent branch history prior to an instruction that triggers the load operation;
providing said another predicted data value as a result of said another load operation without waiting for execution of said another load operation to complete another confidence parameter stored in said another entry compared to exceeds the new value of the dynamic confidence threshold; and
wherein the new value is determined to adjust the dynamic confidence by an amount proportional to a difference between the confidence parameter and the dynamic confidence threshold.
3 Assignments
0 Petitions
Accused Products
Abstract
Prediction of data values to be read from memory by a microprocessor for load operations. In one aspect, a method for predicting a data value that will result from a load operation to be executed by the microprocessor includes accessing an entry in a load value prediction table that stores a predicted data value corresponding to the load operation. The predicted data value is provided as a result of the load operation without waiting for execution of the load operation to complete based on a confidence parameter stored in the entry compared to a dynamic confidence threshold.
33 Citations
28 Claims
-
1. A method for predicting a data value that will result from a load operation to be executed by a microprocessor, the method comprising:
-
accessing an entry in a load value prediction table that stores a predicted data value corresponding to the load operation; providing the predicted data value as a result of the load operation without waiting for execution of the load operation to complete a confidence parameter stored in the entry exceeds a current value of a dynamic confidence threshold; adjusting the confidence parameter based on a first pre-determined criterion, wherein the first pre-determined criterion comprises an actual data value from executing the load operation to the predicted data value; determining a new value of the dynamic confidence threshold based on a second pre-determined criterion, wherein the second pre-determined criterion comprises calculating a prediction parameter representing statistical accuracy of predicting the data value; accessing another entry in the load value prediction table that stores another predicted data value corresponding to another load operation, wherein the load value prediction table is accessed, at least in part, from recent branch history prior to an instruction that triggers the load operation; providing said another predicted data value as a result of said another load operation without waiting for execution of said another load operation to complete another confidence parameter stored in said another entry compared to exceeds the new value of the dynamic confidence threshold; and wherein the new value is determined to adjust the dynamic confidence by an amount proportional to a difference between the confidence parameter and the dynamic confidence threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A microprocessor operative to predict a data value that will result from a load operation to be executed by the microprocessor, the microprocessor comprising:
-
a mechanism operative to access an entry in a load value prediction table that stores a predicted data value corresponding to the load operation; a mechanism operative to provide the predicted data value as a result of the load operation without waiting for execution of the load operation to complete if a confidence parameter stored in the entry exceeds a current value of a dynamic confidence threshold; a mechanism operative to adjust the confidence parameter based on a first pre-determined criterion, wherein the first pre-determined criterion comprises comparing an actual data value from executing the load operation to the predicted data value; a mechanism operative to determine a new value of the dynamic confidence threshold based on a second pre-determined criterion, wherein the second pre-determined criterion comprises calculating a prediction parameter representing statistical accuracy of predicting the data value; a mechanism operative to access another entry in the load value prediction table that stores another predicted data value corresponding to another load operation, wherein the load value prediction table is accessed, at least in part, from recent branch history prior to an instruction that triggers the load operation; a mechanism operative to provide said another predicted data value as a result of said another load operation without waiting for execution of said another load operation to complete if another confidence parameter stored in said another entry exceeds the new value of the dynamic confidence threshold; and wherein the new value is determined to adjust the dynamic confidence by an amount proportional to a difference between the confidence parameter and the dynamic confidence threshold. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A tangible non-transitory computer readable medium including program instructions to be implemented by a computer and for predicting a data value that will result from a load operation to be executed by the microprocessor, the program instructions for:
-
accessing an entry in a load value prediction table that stores a predicted data value corresponding to the load operation; providing the predicted data value as a result of the load operation without waiting for execution of the load operation to complete if a confidence parameter stored in the entry exceeds a current value of a dynamic confidence threshold; adjusting the confidence parameter based on a first pre-determined criterion, wherein the first pre-determined criterion comprises comparing an actual data value from executing the load operation to the predicted data value; determining a new value of the dynamic confidence threshold based on a second pre-determined criterion, wherein the second pre-determined criterion comprises calculating a prediction parameter representing statistical accuracy of predicting the data value, accessing another entry in the load value prediction table that stores another predicted data value corresponding to another load operation, wherein the load value prediction table is accessed, at least in part, from recent branch history prior to an instruction that triggers the load operation; providing said another predicted data value as a result of said another load operation without waiting for execution of said another load operation to complete if another confidence parameter stored in said another entry exceeds the new value of the dynamic confidence threshold; and wherein the new value is determined to adjust the dynamic confidence by an amount proportional to a difference between the confidence parameter and the dynamic confidence threshold.
-
Specification