Patent ID: 7114060

Claim:
A method for deferring execution of instructions with unresolved data dependencies as they are issued for execution in program order, comprising: issuing instructions for execution in program order during a normal execution mode; and upon encountering an unresolved data dependency during execution of an instruction, generating a checkpoint that can subsequently be used to return execution of the program to the point of the instruction, and executing subsequent instructions in an execute-ahead mode, wherein instructions that cannot be executed because of an unresolved data dependency are deferred, and wherein other non-deferred instructions are executed in program order; wherein if a non-data-dependent stall condition is encountered while executing in normal mode or execute-ahead mode, the method further comprises; moving to a scout mode, wherein instructions are speculatively executed to prefetch future loads, but wherein results are not committed to the architectural state of the processor; and when the launch point stall condition (the unresolved data dependency or the non-data dependent stall condition that originally caused the system to move out of normal execution mode) is finally resolved, using the checkpoint to resume execution in normal mode from the launch point instruction (the instruction that originally encountered the launch point stall condition).