IP Library Granted Patent US 7,266,673
Granted Patent B2
US 7,266,673 · App. 10/429,159 · Granted Sep 4, 2007

Speculation pointers to identify data-speculative operations in microprocessor

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,266,673
App. No.
10/429,159
Granted
Sep 4, 2007
Kind
B2
Abstract

A microprocessor may include a retire queue and one or more data speculation verification units. The data speculation verification units are each configured to verify data speculation performed on operations. Each data speculation verification unit generates a respective speculation pointer identifying outstanding operations on which data speculation has been verified by that data speculation verification unit. The retire queue is configured to selectively retire operations dependent on the speculation pointer received from each of the data speculation verification units.

Claims (51)

1. A microprocessor, comprising:

one or more data speculation verification units configured to verify data speculation performed on operations and to generate a respective speculation pointer identifying outstanding operations on which data speculation has been verified by that one of the one or more data speculation verification units; and

a retire queue coupled to receive a speculation pointer from each of the one or more data speculation verification units and configured to selectively retire operations dependent on the speculation pointer received from each of the one or more data speculation verification units, wherein the retire queue is configured to determine whether an operation is retirable by determining whether the operation is not younger than a youngest operation identified as being non-data-speculative by each of the speculation pointers received from the one or more data speculation verification units.

2. The microprocessor of claim 1 , wherein a load store unit includes one of the one or more data speculation verification units, wherein the data speculation verification unit included in the load store unit is configured to verify dependency predictions.

3. The microprocessor of claim 2 , wherein the data speculation verification unit included in the load store unit is configured to verify a dependency prediction predicting that a younger load operation is not dependent on an older store operation with an uncomputed address.

4. The microprocessor of claim 2 , wherein the data speculation verification unit included in the load store unit is configured to verify a dependency prediction predicting that a result of a younger load operation will equal a source of an older store operation.

5. The microprocessor of claim 1 , wherein a functional unit configured to execute non-memory operations includes one of the one or more data speculation verification units, wherein the data speculation verification unit included in the functional unit is configured to verify a data prediction predicting a result of a non-memory operation.

6. The microprocessor of claim 1 , wherein the retire queue is included in a reorder buffer.

7. The microprocessor of claim 1 , wherein one of the one or more data speculation verification units is configured to receive information identifying each one of a plurality of outstanding operations for which a type of data speculation verified by that one of the one or more data speculation verification units has been performed; and

wherein that one of the one or more data speculation verification units is configured to identify which outstanding operations have been verified by that one of the one or more data speculation verification units by advancing a respective speculation pointer to identify an operation younger than the youngest outstanding operation on which data speculation has been verified and not younger than the oldest outstanding operation on which the type of data speculation has been performed.

8. The microprocessor of claim 1 , wherein in response to the retire queue receiving a plurality of speculation pointers, the retire queue is configured to determine whether an operation is retirable by determining whether the operation is not younger than a youngest operation identified as being non-data-speculative by all of the plurality of speculation pointers.

9. The microprocessor of claim 1 , wherein one of the one or more data speculation verification units is configured to set a value of a respective speculation pointer to indicate that no currently outstanding operations are data-speculative with respect to that one of the one or more speculation verification units if no operation currently outstanding within the one of the one or more data speculation verification units is data-speculative.

10. The microprocessor of claim 1 , further comprising a memory controller, wherein one of the one or more data speculation verification units is comprised in the memory controller and configured to verify memory prediction.

11. A computer system, comprising:

a memory; and

a processor coupled to the memory, the processor comprising:

one or more data speculation verification units configured to verify data speculation performed on operations and to generate a respective speculation pointer identifying outstanding operations on which data speculation has been verified by that one of the one or more data speculation verification units; and

a retire queue coupled to receive a speculation pointer from each of the one or more data speculation verification units and configured to selectively retire operations dependent on the speculation pointer received from each of the one or more data speculation verification units, wherein the retire queue is configured to determine whether an operation is retirable by determining whether the operation is not younger than a youngest operation identified as being non-data-speculative by each of the speculation pointers received from the one or more data speculation verification units.

12. The computer system of claim 11 , wherein a load store unit includes one of the one or more data speculation verification units, wherein the data speculation verification unit included in the load, store unit is configured to verify dependency predictions.

13. The computer system of claim 12 , wherein the data speculation verification unit included in the load store unit is configured to verify a dependency prediction predicting that a younger load operation is not dependent on an older store operation with an uncomputed address.

14. The computer system of claim 12 , wherein the data speculation verification unit included in the load store unit is configured to verify a dependency prediction predicting that a result of a younger load operation will equal a source of an older store operation.

15. The computer system of claim 11 , wherein a functional unit configured to execute non-memory operations includes one of the one or more data speculation verification units, wherein the data speculation verification unit included in the functional unit is configured to verify a data prediction predicting a result of a non-memory operation.

16. The computer system of claim 11 , wherein the retire queue is included in a reorder buffer.

17. The computer system of claim 11 , wherein one of the one or more data speculation verification units is configured to receive information identifying each one of a plurality of outstanding operations for which a type of data speculation verified by that one of the one or more data speculation verification units has been performed; and

wherein that one of the one or more data speculation verification units is configured to identify which outstanding operations have been verified by that one of the one or more data speculation verification units by advancing a respective speculation pointer to identify an operation younger than the youngest outstanding operation on which data speculation has been verified and not younger than the oldest outstanding operation on which the type of data speculation has been performed.

18. The computer system of claim 11 , wherein in response to the retire queue receiving a plurality of speculation pointers, the retire queue is configured to determine whether an operation is retirable by determining whether the operation is not younger than a youngest operation identified as being non-data-speculative by all of the plurality of speculation pointers.

19. The computer system of claim 11 , wherein one of the one or more data speculation verification units is configured to set a value of a respective speculation pointer to indicate that no currently outstanding operations are data-speculative with respect to that one of the one or more speculation verification units if no operation currently outstanding within the one of the one or more data speculation verification units is data-speculative.

20. The computer system of claim 11 , wherein the microprocessor includes a memory controller configured to control accesses to the memory, wherein one of the one or more data speculation verification units is comprised in the memory controller and configured to verify memory prediction.

21. A method, comprising:

performing data speculation for an operation;

a verification unit verifying the data speculation performed for the operation;

the verification unit generating a speculation pointer indicating that the operation is not data-speculative with respect to the verification unit in response to said verifying; and

in response to receiving the speculation pointer indicating that the operation is not data-speculative with respect to the verification unit, a retire queue selectively retiring the operation, wherein said generating the speculation pointer indicating that the operation is not data-speculative with respect to the verification unit depends on the operation being a youngest operation on which any type of data speculation verified by the verification unit has been performed.

22. The method of claim 21 , further comprising an other verification unit verifying data speculation performed on an other operation and generating an other speculation pointer indicating that the other operation is not data-speculative with respect to the other verification unit;

wherein said retiring the operation is dependent on both the speculation pointer and the other speculation pointer.

23. The method of claim 22 , wherein the other verification unit verifies a different type of data speculation than the verification unit.

24. The method of claim 21 , further comprising retiring an older operation than the operation in response to said generating.

25. The method of claim 21 , further comprising providing the verification unit information identifying outstanding operations on which any type of data speculation verified by the verification unit has been performed.

26. The method of claim 25 , wherein said generating the speculation pointer depends on the information identifying outstanding operations indicating that the operation is a youngest operation on which any type of data speculation verified by the verification unit has been performed.

27. The method of claim 21 , wherein the verification unit is comprised in a load store unit; and wherein said verifying comprises verifying a dependency prediction performed for the operation.

28. The method of claim 27 , wherein said verifying comprises verifying that the operation is not dependent on an older store operation with an uncomputed address.

29. The method of claim 27 , wherein said verifying comprises verifying that a result of the operation will equal a source of an older store operation.

30. The method of claim 21 , wherein the verification unit is comprised in a functional unit configured to execute non-memory operations, wherein said verifying comprises the functional unit verifying a data prediction predicting a result of the operation.

31. The method of claim 21 , wherein said retiring comprises a reorder buffer retiring the operation.

32. The method of claim 21 , wherein said retiring depends on a plurality of speculation pointers.

33. The method of claim 21 , wherein if data speculation verified by the verification unit has not been performed on any other outstanding operation, said generating comprises setting a value of the speculation pointer to indicate that no currently outstanding operations are data speculative with respect to verification unit.

34. The method of claim 21 , wherein the verification unit is included in a memory controller; and wherein said verifying comprises verifying a memory prediction performed for the operation.

35. A microprocessor, comprising:

means for performing data speculation on operations;

one or more means for verifying the data speculation performed for at least some of the operations, wherein each of the one or more means for verifying is configured to generate a respective speculation pointer indicating which operations are data-speculative with respect to that means for verifying; and

means for retiring operations dependent on the speculation pointers generated by the one or more means for verifying by determining whether the operations are not younger than a youngest operation identified as being non-data-speculative by each of the generated speculation pointers.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2021
From: GLOBALFOUNDRIES US INC.
To: MEDIATEK INC.
Reel/Frame 055173/0781 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2020
From: GLOBALFOUNDRIES INC.
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 054633/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
AFFIRMATION OF PATENT ASSIGNMENT Recorded Aug 18, 2009
From: ADVANCED MICRO DEVICES, INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 023119/0083 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2003
From: FILIPPO, MICHAEL A.; PICKETT, JAMES K.; SANDER, BENJAMIN T.
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 014041/0935 →