Claims
- 1. A processor, comprising:
an instruction pipeline having a plurality of stages, including a first and a second stage; a result pipeline having a plurality of stages, including an first and a second stage; first and second execution units, wherein the first and second execution units are connected to the first and second stages, respectively, of the instruction pipeline and the result pipeline, wherein each execution unit includes an operand input and a result output, wherein the operand input receives an operand from its respective stage of the instruction pipeline and wherein the result output transmits a result to its respective stage of the result pipeline as a function of the operand received by the operand input; and first and second reorder buffers, wherein the first reorder buffer supplies instructions and operands to the first stage of the instruction pipeline and receives results from the first stage of the result pipeline and wherein the second reorder buffer supplies instructions and operands to the second stage of the instruction pipeline and receives results from the second stage of the result pipeline.
- 2. The processor of claim 1, wherein each execution unit includes a plurality of stages, wherein each stage operates under control of a clock.
- 3. The processor of claim 1, wherein one of the execution units is a wavefront processor.
- 4. In a computer system having a plurality of threads, including a first and second thread, a method of executing more than one thread at a time, the method comprising:
providing a first and a second reorder buffer; reading first instructions and first operands associated with the first thread from the first reorder buffer; executing one of the first instructions and storing a result in the first reorder buffer, wherein storing the result includes marking the result with a tag associating the result with the first thread; reading second instructions and second operands associated with the second thread from the second reorder buffer; and executing one of the second instructions and storing a result in the second reorder buffer, wherein storing the result includes marking the result with a tag associating the result with the second thread.
- 5. In a counterflow pipeline processing system having an instruction pipeline and a data pipeline, both of which feed back into a reorder buffer, a method of recovering from incorrect speculations, wherein the method comprises:
detecting a mispredicted branch, wherein the mispredicted branch includes a first instruction; invalidating, in the reorder buffer, all instructions after the mispredicted branch; if the first instruction is in the instruction pipeline and can execute, executing the instruction and invalidating results associated with that instruction when they reach the reorder buffer; and if the instruction reaches the end of the instruction pipeline, deleting the instruction.
Parent Case Info
[0001] This application is a Divisional of U.S. patent application Ser. No. 10/054,632, filed Jan. 22, 2002, which is a Divisional of U.S. application Ser. No. 09/792,781, filed Feb. 23, 2001, now issued as U.S. Pat. No. 6,351,805, which is a Divisional of U.S. application Ser. No. 09/638,974 filed Aug. 15, 2000, now issued as U.S. Pat. No. 6,247,115, which is a Divisional of U.S. application Ser. No. 09/164,016 filed Sep. 30, 1998, now issued as U.S. Pat. No. 6,163,839, all of which are incorporated herein by reference.
Divisions (4)
|
Number |
Date |
Country |
| Parent |
10054632 |
Jan 2002 |
US |
| Child |
10391241 |
Mar 2003 |
US |
| Parent |
09792781 |
Feb 2001 |
US |
| Child |
10054632 |
Jan 2002 |
US |
| Parent |
09638974 |
Aug 2000 |
US |
| Child |
09792781 |
Feb 2001 |
US |
| Parent |
09164016 |
Sep 1998 |
US |
| Child |
09638974 |
Aug 2000 |
US |