Out-of-order processor executing speculative-load instructions
OwnerDale Morris, Matthew Howard Reillyinventors
Life of this patent
Estimating the term…
Abstract
In addition to speculatively executing normal (non-speculative) load instructions in advance of their program order, an out-of-order processor executes the speculative (advanced) load instructions originally compiled for in-order processors. Both the speculative-load instructions and the corresponding check instructions can be executed out-of-order. The speculative-load instructions are treated like normal-load instructions while in the instruction queue. When a speculative-load instruction is retired from the instruction queue, it is transferred to a speculative load instruction manager. Execution of the corresponding check instruction can then check the validity of the speculative-load instruction.
Claims11
A data processor for executing instructions:
- an instruction handler for holding a series of said instructions for execution;
- an instruction manager for determining an order for executing the instructions in said instruction handler, said instruction manager providing for out-of-order execution of said instructions;
- and
- an execution unit for executing said instructions, said execution unit providing for execution of a speculative-load instruction and an associated subsequent check instruction that determines whether or not said speculative-load instruction has failed.
A method of executing a computer program of instructions, each of said instructions having an associated program order, defining an instruction order, said instructions including an advanced-load instruction and an associated check instruction, said method comprising:
- executing said advanced-load instruction in advance of its program order;
- and
- subsequently executing said check instruction.
A data processor comprising:
- an instruction handler for receiving program instructions having a program order;
- said program instructions including an advanced load instruction and a corresponding check instruction;
- and
- an execution unit for executing said advanced-load instruction in advance of its program order.
Dependencies are inferred from the claim text.