Patent ID: 7865701

Claim:
A method for attempting to execute a set of one or more instructions speculatively, comprising: executing a speculative execution command to directly cause the set of one or more instructions to be executed speculatively, wherein the speculative execution command does not read any value from any memory location and does not write any value to any memory location; reading data from at least one memory location after executing the speculative execution command and before executing the set of instructions, wherein the read data can be used to determine whether a synchronization mechanism has been exclusively acquired; speculatively executing the set of one or more instructions, the set of one or more instructions including at least one store to a memory location; receiving a commit command that is an instruction indicating that the speculative execution is successful and at least one store is ready to be committed or an abort command that is an instruction indicating that an abort condition of the speculative execution command is detected; in the event that the commit command is received, committing the store to the memory location; and in the event that the abort command is received, reverting the store to the memory location.