Patent ID: 7725683

Claim:
A method comprising: issuing a first instruction from a queue; in response to detecting a blocking condition that prevents the first instruction from being completed, determining whether the blocking condition is a non-transient blocking condition or a transient blocking condition, a transient blocking condition having a shorter duration relative to a non-transient blocking condition; in response to the blocking condition being a non-transient blocking condition, enqueuing the first instruction within a recirculation queue, setting a state of the first instruction in the recirculation queue to a blocked state to prevent the first instruction from being reissued from the recirculation queue, and in response to detecting that the non-transient blocking condition no longer exists, changing the state of the first instruction in the recirculation queue to an unblocked state to permit the first instruction to be reissued from the recirculation queue; and in response to the blocking condition being a transient blocking condition, enqueuing the first instruction within the recirculation queue, and setting the state of the first instruction in the recirculation queue to the unblocked state to permit the first instruction to be reissued from the recirculation queue, wherein the blocking condition corresponds to a hazard in which the first instruction cannot execute until completion of a second instruction issued prior to the first instruction.