System and method for scheduling operations using speculative data operands
First Claim
1. A system, comprising:
- a scheduler configured to store a speculative source tag and a non-speculative source tag for an operand of an operation; and
an execution core configured to execute operations issued by the scheduler and to output result tags identifying operands generated by executing the operations;
wherein the scheduler comprises circuitry with a first input port and a second input port configured to receive the speculative source tag and the non-speculative source tag, respectively, and an output port coupled to a third input port of a comparator, the output port configured to convey an output value corresponding to either the first or the second input port at any given time, wherein a fourth input port of the comparator is configured to receive result tags output by the execution core, wherein the scheduler is configured to;
determine whether the operation is ready to issue by;
comparing the speculative source tag, but not the non-speculative source tag, to the result tags output by the execution core unless an incorrect speculation has been detected; and
comparing the non-speculative source tag, but not the speculative source tag, to the result tags output by the execution core if the incorrect speculation has been detected; and
wherein the scheduler is further configured to issue the operation to the execution core subsequent to determining the operation is ready to issue.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for scheduling operations using speculative data operands. In one embodiment, a system may include a scheduler configured to store a speculative source tag and a non-speculative source tag for an operand of an operation and an execution core configured to execute operations issued by the scheduler and to output result tags identifying operands generated by executing the operations. The scheduler may be configured to determine whether the operation is ready to issue by comparing the speculative source tag, but not the non-speculative source tag, to the result tags output by the execution core unless an incorrect speculation has been detected. If an incorrect speculation has been detected, the scheduler may be configured to determine whether the operation is ready to issue by comparing the non-speculative source tag, but not the speculative source tag, to the result tags output by the execution core.
-
Citations
22 Claims
-
1. A system, comprising:
-
a scheduler configured to store a speculative source tag and a non-speculative source tag for an operand of an operation; and an execution core configured to execute operations issued by the scheduler and to output result tags identifying operands generated by executing the operations; wherein the scheduler comprises circuitry with a first input port and a second input port configured to receive the speculative source tag and the non-speculative source tag, respectively, and an output port coupled to a third input port of a comparator, the output port configured to convey an output value corresponding to either the first or the second input port at any given time, wherein a fourth input port of the comparator is configured to receive result tags output by the execution core, wherein the scheduler is configured to; determine whether the operation is ready to issue by; comparing the speculative source tag, but not the non-speculative source tag, to the result tags output by the execution core unless an incorrect speculation has been detected; and comparing the non-speculative source tag, but not the speculative source tag, to the result tags output by the execution core if the incorrect speculation has been detected; and wherein the scheduler is further configured to issue the operation to the execution core subsequent to determining the operation is ready to issue. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method, comprising:
-
storing a speculative source tag and a non-speculative source tag for an operand of an operation; generating output result tags identifying operands produced by executing operations; providing circuitry with a first input port and a second input port configured to receive the speculative source tag and the non-speculative source tag, respectively, and an output port coupled to a third input port of a comparator, the output port configured to convey an output value corresponding to either the first or the second input port at any given time, wherein a fourth input port of the comparator is configured to receive result tags output by the execution core; determining whether the operation is ready to issue by; comparing the speculative source tag, but not the non-speculative source tag, to the result tags in response to generating the output result tags if no incorrect speculation has been detected; and comparing the non-speculative source tag, but not the speculative source tag, to the result tags in response to generating the output result tags if an incorrect speculation has been detected; and issuing the operation to the execution core subsequent to determining the operation is ready to issue. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification