Claims
- 1. A method of executing a sequence of instructions comprising:
determining a predicted predicate value for a predicate; and conditionally executing a predicated instruction depending on the predicted predicate value.
- 2. The method of claim 1, further comprising:
executing a COMPARE instruction to determine an actual predicate value for the predicate; comparing the actual predicate value to the predicted predicate value; and flushing a pipeline if the predicted predicate value and the actual predicate value are unequal.
- 3. The method of claim 2, further comprising executing the predicated instruction after flushing the pipeline.
- 4. The method of claim 2, wherein flushing the pipeline consists of flushing only a backend portion of the pipeline.
- 5. The method of claim 2, further comprising updating historical information using the actual predicate value corresponding to the predicate in a predicate table.
- 6. The method of claim 1, further comprising storing the predicted predicate value in a file after determining the predicted predicate value and before conditionally executing the predicated instruction.
- 7. The method of claim 1, wherein determining the predicted predicate value includes calculating the predicted predicate value using historical information corresponding to the predicate.
- 8. The method of claim 6, wherein determining the predicted predicate value includes reading the historical information corresponding to the predicate in a predicate table.
- 9. The method of claim 1, wherein conditionally executing the predicated instruction includes executing the predicated instruction if the predicted predicate value is true.
- 10. The method of claim 1, wherein conditionally executing the predicated instruction includes treating the predicated instruction like a no-op if the predicted predicate value is false.
- 11. A processor comprising:
a predicate table; and a predicate prediction calculator having an input coupled to an output of the predicate table.
- 12. The processor of claim 11, further comprising a speculative predicate register file having an input coupled to an output of the calculator.
- 13. The processor of claim 12, further comprising a pipeline having a predicted predicate value input coupled to an output of the file and an actual predicate value output coupled to an input of the predicate table.
- 14. The processor of claim 13, further comprising an XOR gate having a first input coupled to the actual predicate value output of the pipeline, a second input coupled to an output of the file, and an output coupled to a flush input of the pipeline.
- 15. A processor comprising:
a predicate table to store historical information corresponding to a predicate; and a pipeline coupled to the table, the pipeline to receive a predicted predicate value calculated from the historical information, and to conditionally execute a predicated instruction depending on the predicted predicate value.
- 16. The processor of claim 15, further comprising a predicate prediction calculator to calculate the predicted predicate value.
- 17. The processor of claim 15, further comprising a speculative predicate register file to store the predicted predicate value.
- 18. The processor of claim 15, wherein the pipeline includes an actual predicate value output coupled to the predicate table to provide an actual predicate value to the predicate table.
- 19. The processor of claim 18, wherein the pipeline includes a flush input to receive a flush signal if the predicted predicate value and the actual predicate value are unequal.
- 20. The processor of claim 15, wherein the predicate table is to further store historical information corresponding to a plurality of predicates.
Parent Case Info
[0001] This is a continuation-in-part of application Ser. No. 09/129,141, filed Aug. 4, 1998.
Divisions (1)
|
Number |
Date |
Country |
Parent |
09224406 |
Dec 1998 |
US |
Child |
09884718 |
Jun 2001 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09129141 |
Aug 1998 |
US |
Child |
09224406 |
Dec 1998 |
US |