Retiring instructions that meet the early-retirement criteria to improve computer operation throughput
View Patent ↗Techniques are provided for retiring instructions that typically complete early as compared to most instructions. In an embodiment, all instructions are processed normally until the instruction queue is full. At that time, the system is frozen, e.g., all units stop processing instructions. For each instruction in the instruction queue, if the instruction meets the criteria for early retirement, then the instruction is terminated and the system is updated to reflect that the instruction has been terminated. The system is then unfrozen, and all units resume their functions.
1. A method for retiring instructions processed through various processing stages including an instruction queue, comprising the steps of:
after processing the instructions until the instruction queue is full,
performing the following steps,
stopping processing the instructions in the various processing stages, and
for each instruction in the instruction queue, if the instruction meets the criteria for early retirement, then
terminating the instruction, and
updating a system processing the instruction to reflect that the instruction has been terminated,
wherein the criteria for early retirement is met when at least one of the following conditions is met; continued processing of the instruction does not change the architectural state of the system processing the instruction; continued processing of the instruction has no effect on the behavior of a program running the instruction; the instruction has completed its function without completing its full pipeline.
2. The method of claim 1 , after the instruction queue is full, further comprising the step of requesting that instructions not be sent to the instruction queue.
3. The method of claim 1 wherein the step of terminating includes the step of removing the instruction from the instruction queue.
4. The method of claim 1 wherein the various processing stages include one or more of the following stages: fetching, issuing, sorting, executing, queuing, and retiring.
5. The method of claim 1 wherein the instruction capable of early retirement includes an identification tag for identifying whether the instruction is capable of early retirement.
6. The method of claim 1 wherein NO-OP instructions, pre-fetch instructions, branch instructions, nullified instructions, and predicated-false instructions are identified as instructions capable of early retirement.
7. A computer-readable medium embodying instructions that cause a computer to perform a method for retiring instructions processed through various processing stages including an instruction queue, the method comprising the steps of:
after processing the instructions until the instruction queue is full,
performing the following steps,
stopping processing the instructions in the various processing stages, and
for each instruction in the instruction queue, if the instruction meets the criteria for early retirement, then
terminating the instruction, and
updating a system processing the instruction to reflect that the instruction has been terminated,
wherein the criteria for early retirement is met when at least one of the following conditions is met; continued processing of the instruction does not change the architectural state of the system processing the instruction; continued processing of the instruction has no effect on the behavior of a program running the instruction; the instruction has completed its function without completing its full pipeline.
8. The computer-readable medium of claim 7 wherein the method, after the instruction queue is full, further comprising the step of requesting that instructions not be sent to the instruction queue.
9. The computer-readable medium of claim 7 herein the step of terminating includes the step of removing the instruction from the instruction queue.
10. The computer-readable medium of claim 7 wherein the various processing stages include one or more of the following stages: fetching, issuing, sorting, executing, queuing, and retiring.
11. The computer-readable medium of claim 7 wherein the instruction capable of early retirement includes an identification tag for identifying whether the instruction is capable of early retirement.
12. The computer-readable medium of claim 7 wherein NO-OP instructions, pre-fetch instructions, branch instructions, nullified instructions, and predicated-false instructions are identified as instructions capable of early retirement.
13. A system for retiring instructions processed through various processing stages including an instruction queue, comprising:
first processing means;
stopping means; and
second processing means;
wherein;
the first processing means processes the instructions until the instruction queue is full; and
after the instruction queue is full
the stopping means causes processing of the instructions to be stopped in the various processing stages; and
for each instruction in the instruction queue if the instruction meets the criteria for early retirement, then the second processing means causes;
the instruction to be terminated; and
the system to be updated to reflect that the instruction has been terminated; the criteria for early retirement for the instruction is met when at least one of the following conditions is met; continued processing of the instruction does not change the architectural state of the system processing the instruction; continued processing, of the instruction has no effect on the behavior of a program running the instruction; the instruction has completed its function without completing its full pipeline.
14. The system of claim 13 further comprising requesting means for, after the instruction queue is full, requesting that instructions not be sent to the instruction queue.
15. The system of claim 13 wherein terminating the instruction includes removing the instruction from the instruction queue.
16. The system of claim 13 wherein the various processing stages include one or more of the following stages: fetching, issuing, sorting, executing, queuing, and retiring.
17. The system of claim 13 wherein an instruction capable of early retirement includes an identification tag for identifying whether that instruction is capable early retirement.
18. The system of claim 13 wherein NO-OP instructions, pre-fetch instructions, branch instructions, nullified instructions, and predicated-false instructions are identified as instructions capable of early retirement.