Legal claims defining the scope of protection, as filed with the USPTO.
1. A processor comprising: a decoder to decode a first speculative conditional move instruction; a prediction storage to store prediction data related to previously executed speculative conditional move instructions; and execution circuitry to read first prediction data associated with the first speculative conditional move instruction and to execute the first speculative conditional move instruction either speculatively or non-speculatively based on the first prediction data; wherein the execution circuitry is to read a first entry in the prediction storage associated with the first speculative conditional move instruction containing at least one value indicating a confidence level and to speculatively execute the first speculative conditional move instruction if the confidence level is above a threshold; wherein the execution circuitry is further to determine whether the first speculative conditional move instruction was speculated correctly and to responsively update the prediction storage; wherein if the first speculative condition move instruction was not speculated correctly, then the first speculative conditional move instruction is to be re-executed non-speculatively and the execution circuitry is to query a control register to determine whether a condition has been met for performing a move operation.
2. The processor of claim 1 wherein the prediction storage comprises a table having a plurality of entries, each entry associated with one or more previously executed speculative conditional move instructions.
3. The processor of claim 2 wherein an entry is to be associated with a particular address or portion thereof associated with the one or more previously executed speculative conditional move instructions.
4. The processor of claim 1 wherein the execution circuit is to perform the move operation in response to detecting the condition.
5. The processor of claim 4 wherein the control register comprises an EFLAGS register and the condition comprises one or more bits being set in the EFLAGS register.
6. A method comprising: decoding a first speculative conditional move instruction; storing prediction data related to previously executed speculative conditional move instructions in a prediction storage; and reading the first prediction data associated with the speculative conditional move instruction, the reading comprising reading a first entry in the prediction storage associated with the first speculative conditional move instruction containing at least one value indicating a confidence level; speculatively executing the speculative conditional move instruction if the confidence level is above a threshold; determining whether the speculatively conditional move instruction was speculated correctly and responsively updating the prediction storage; re-executing the speculative conditional move instruction non-speculatively if the speculative conditional move instruction was not speculated correctly; and querying a control register to determine whether a condition has been met for performing a move operation.
7. The method of claim 6 wherein the prediction storage comprises a table having a plurality of entries, each entry associated with one or more previously executed speculative conditional move instructions.
8. The method of claim 7 wherein an entry is to be associated with a particular address or portion thereof associated with the one or more previously executed speculative conditional move instructions.
9. The method of claim 6 further comprising: performing the move operation in response to detecting the condition.
10. The method of claim 9 wherein the control register comprises an EFLAGS register and the condition comprises one or more bits being set in the EFLAGS register.
11. A non-transitory machine-readable medium having program code stored thereon which, when executed by a machine, causes the machine to perform the operations of: decoding a first speculative conditional move instruction; storing prediction data related to previously executed speculative conditional move instructions in a prediction storage; and reading the first prediction data associated with the speculative conditional move instruction, the reading comprising reading a first entry in the prediction storage associated with the first speculative conditional move instruction containing at least one value indicating a confidence level; speculatively executing the speculative conditional move instruction if the confidence level is above a threshold; determining whether the speculatively conditional move instruction was speculated correctly and responsively updating the prediction storage; re-executing the speculative conditional move instruction non-speculatively if the speculative conditional move instruction was not speculated correctly; and querying a control register to determine whether a condition has been met for performing a move operation.
12. The machine-readable medium of claim 11 wherein the prediction storage comprises a table comprising a plurality of entries, each entry associated with one or more previously executed speculative conditional move instructions.
13. The machine-readable medium of claim 12 wherein an entry is to be associated with a particular address or portion thereof associated with the one or more previously executed speculative conditional move instructions.
14. The machine-readable medium of claim 11 wherein the operations further comprise: performing the move operation in response to detecting the condition.
15. The machine-readable medium of claim 14 , wherein the control register comprises an EFLAGS register and the condition comprises one or more bits being set in the EFLAGS register.
Unknown
April 14, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.