Back to results
US 7,600,103 B2Granted
Speculatively scheduling micro-operations after allocation
AssigneeIntel Corporation
InventorsAvinash Sodani, Rahul Kulkarni, David K. Li
Life of this patent
Estimating the term…
Abstract
Apparatus, systems and methods for speculative scheduling of uops after allocation are disclosed including an apparatus having logic to schedule a micro-operation (uop) for execution before source data of the uop is ready. The apparatus further includes logic to cancel dispatching of the uop for execution if the source data is invalid. Other implementations are disclosed.
Claims18
An apparatus, comprising:
- logic to speculatively schedule a micro-operation (uop) for execution before any determination of whether source data of the uop is ready if the logic does not have a previously allocated uop ready for scheduling and responsive to a speculative scheduling indication for the uop received from an allocator, and without regard to availability of the source data, and to read the source data in parallel with the speculative scheduling;
- logic to determine whether the source data is available and if so, to dispatch the uop to an execution stage and to write a ready status to the speculative scheduling logic in parallel with the dispatch;
- and
- logic to cancel dispatching of the uop for execution if the source data is invalid.
1 more element
A system, comprising:
- memory to store an instruction, the instruction including a micro-operation (uop);
- and
- a processor including logic to schedule a micro-operation (uop) for execution before receiving confirmation of the validity of source data associated with the uop and without regard to availability of the source data, and to read the source data in parallel with the speculative scheduling, if the logic does not have a previously allocated uop ready for scheduling and responsive to a speculative scheduling indication for the uop, logic to determine whether the source data is available and if so, to dispatch the uop to an execution stage and to write a ready status to the speculative scheduling logic in parallel with the dispatch, the processor further including logic to cancel dispatching of the uop for execution if the source data is invalid.
A method comprising:
- allocating a uop for scheduling;
- scheduling the uop for execution regardless of when source data associated with the uop may become available responsive to an indication received in a scheduler from an allocator that the uop is to be speculatively scheduled and if no previously allocated uops in the scheduler are ready for scheduling, and to read the source data in parallel with the speculative scheduling;
- determining whether the source data is available and if so, to dispatch the uop to an execution stage and to write a ready status to the scheduler in parallel with the dispatch;
- and
- canceling the uop before execution if the source data associated with the uop is not available.
2 more elements
An apparatus comprising:
- a processor including:
- a front end stage to generate decoded micro-operations (uops);
- an out-of order stage coupled to the front end stage to receive a first uop and allocate the first uop for scheduling including provision of a speculative scheduling indication associated with the first uop, responsive to the speculative scheduling indication to determine whether a previous uop is ready for scheduling and if so to terminate speculative scheduling of the first uop, and otherwise to speculatively schedule the first uop regardless of when source data for the first uop may become available, to read the source data in parallel with the speculative scheduling, dispatch the first uop to an execution stage in parallel with writing a ready status, and to subsequently cancel the first uop if the source data is not available or valid;
- and
- the execution stage to execute the first uop dispatched from the out-of-order stage.
2 more elements
Dependencies are inferred from the claim text.