Patent ID: 7469334

Claim:
A method for facilitating a fast restart of a processor after speculative execution, comprising: executing code in a non-speculative mode in a pipeline in the processor; and upon encountering a stall condition, checkpointing a state of the processor, and executing the code in a speculative mode from a point of the stall in the pipeline, wherein, along with speculatively executing a predetermined number of the instructions initially encountered during execution in the speculative mode, storing all of the predetermined number of instructions, which are ready to be executed, regardless of the dependencies of the instructions, into a recovery queue; when the stall condition is resolved, recommencing execution in non-speculative mode in the pipeline, wherein recommencing execution initially involves using instructions from the recovery queue to load an execution unit, thereby not having to wait for instructions to propagate through fetch and decode pipeline stages; and subsequently executing instructions that follow instructions from the recovery queue in the pipeline, wherein the subsequently executed instructions propagated through the fetch and decode stages of the pipeline after non-speculative execution recommenced.