Stopping replay tornadoes
AssigneeIntel Corporation
InventorsDavid J. Sager, Stephan Jourdan, Per Hammarlund
Life of this patent
Estimating the term…
Abstract
A method for stopping replay tornadoes in a processor. The method of one embodiment comprises scheduling an instruction for execution speculatively. A determination is made whether the instruction executed correctly. The instruction is routed to a replay mechanism if the instruction did not execute correctly. A determination is made whether a replay tornado exists. The instruction is routed for re-execution if the instruction executed incorrectly and no replay tornado exists. Breaking the replay tornado if the replay tornado exists. Replay safe instructions in the pipeline are retired. Non-replay safe instructions in the pipeline are marked for re-execution. The non-replay safe instructions are rescheduled for re-execution.
Claims27
A method comprising:
- scheduling an instruction for execution;
- speculatively executing said instruction;
- determining whether said instruction executed correctly;
- routing said instruction to a replay mechanism if said instruction did not execute correctly;
- determining whether a replay tornado exists;
- routing said instruction for re-execution if said instruction executed incorrectly and no replay tornado exists;
- and
- breaking said replay tornado if said replay tornado exists, said breaking comprising:
- retiring replay safe instructions in said pipeline;
- marking non-replay safe instructions in said pipeline for re-execution;
- and
- rescheduling said non-replay safe instructions for re-execution.
A method comprising:
- scheduling an instruction for execution;
- speculatively executing said instruction;
- determining whether said instruction executed correctly;
- routing said instruction to a replay mechanism if said instruction did not execute correctly;
- and
- choosing a replay mechanism that will not put said instruction back into execution immediately said instruction cannot be executed successfully for a relatively long time.
A method comprising:
- storing an instruction in a queue, said queue to store a plurality of instructions and information related to each of said instructions, said information comprising a set of status bits for each of said instructions;
- scheduling said instruction;
- speculatively executing said instruction;
- checking whether said instruction executed correctly;
- flagging said instruction for replay if said instruction did not execute correctly;
- determining whether a replay tornado exists and if said instruction is part of said replay tornado;
- retiring replay safe instructions and
- rescheduling said non-replay safe instructions for re-execution.
A processor comprising:
- a scheduler to dispatch instructions, said scheduler comprising a scheduler queue to store said instructions and a status associated to each of said instructions, said scheduler to store each instruction until that instruction is indicated to be replay safe;
- an execution unit coupled to said scheduler, said execution unit to execute said instructions;
- a checker coupled to said execution unit, said checker to determine whether each instruction has executed correctly;
- and
- a replay mechanism coupled to said checker, said replay mechanism to receive an indication from said checker for each instruction that has not executed correctly, said replay mechanism further comprising logic to determine whether a replay tornado exists and whether said incorrectly executed instruction is part of said replay tornado, said replay mechanism further comprising a tornado stopping mechanism to break said replay tornado.
A system comprising:
- a memory coupled to a bus;
- a processor coupled to said bus, said processor comprising:
- a scheduler to dispatch instructions, said scheduler comprising a scheduler queue to store said instructions and a status associated to each of said instructions, said scheduler to store each instruction until that instruction is indicated to be replay safe;
- an execution unit coupled to said scheduler, said execution unit to execute said instructions;
- a checker coupled to said execution unit, said checker to determine whether each instruction has executed correctly;
- and
- a replay mechanism coupled to said checker, said replay mechanism to receive an indication from said checker for each instruction that has not executed correctly, said replay mechanism further comprising logic to determine whether a replay tornado exists and whether said incorrectly executed instruction is part of said replay tornado, said replay mechanism further comprising a tornado stopping mechanism to break said replay tornado.
Dependencies are inferred from the claim text.