Method for increasing the speed of speculative execution
AssigneeTransmeta Corporation
InventorsRichard Johnson, Guillermo Rozas
Life of this patent
Estimating the term…
Abstract
A method for increasing the speed of execution by a processor including the steps of selecting a sequence of instructions to optimize, optimizing the sequence of instructions, creating a duplicate of instructions from the sequence of instructions which has been selected to optimize, executing the optimized sequence of instructions, and responding to an error during the execution of the optimized sequence of instructions by rolling back to the duplicate of instructions from the sequence of instructions.
Claims19
A method for code optimizing by a microprocessor which speculates on the execution of sequences of instructions comprising the steps of
- duplicating a portion of an original sequence of instructions from which an exit may be taken,
- optimizing the original sequence of instructions presuming a preferred path will be taken by the sequence of instructions,
- executing the optimized sequence of instructions, and
- providing correct state and then executing the portion of the original sequence of instructions if the preferred path is exited.
A method for optimizing execution of instructions by a processor comprising the steps of:
- selecting a sequence of instructions to optimize,
- creating a duplicate of instructions from the sequence of instructions
- which has been selected to optimize,
- optimizing the sequence of instructions,
- saving state and then executing the optimized sequence of instructions, and
- responding to an asynchronous event occurring during the execution of the optimized sequence of instructions by exiting from the optimized sequence of instructions to the saved state and commencing the execution of the duplicate of instructions from the sequence of instructions which has been selected to optimize.
A method for use by a microprocessor which speculates on the execution of sequences of instructions comprising the steps of duplicating an original sequence of instructions which includes a branch operation, optimizing the original sequence of instructions presuming a particular branch path of the branch operation will be taken, executing the optimized sequence of instructions, and branching to begin the duplicated sequence of instructions if the particular branch of the branch operation is not taken.
A method for optimizing sequences of instructions for execution comprising the steps of:
- duplicating the sequence of instructions,
- replacing the target of all branch operations in the sequence with the duplicate of the sequence, and
- optimizing the sequence of instructions without regard to branches.
Dependencies are inferred from the claim text.