Claims
- 1. A method for controlling the cycle-by-cycle interleaving of instructions between a number of instruction threads in a simultaneous multithreading processor, the method including the steps of:
(a) receiving a first priority signal indicating a first base input processing priority associated with a first instruction thread included in the number of instruction threads; (b) receiving a feedback signal associated with one of the instruction threads; (c) adjusting the first base input processing priority to generate a first adjusted input processing priority in response to the feedback signal; and (d) applying an interleave rule to the first adjusted input processing priority and at least one other thread processing priority to generate a thread selection control signal for controlling the interleaving of instructions from the number of instruction threads.
- 2. The method of claim 1 further including the step of selecting between the first base input processing priority and the first adjusted input processing priority in response to the feedback signal.
- 3. The method of claim 1 wherein the step of receiving the feedback signal includes receiving a signal associated with a long-latency event.
- 4. The method of claim 3 wherein the long-latency event is associated with the first instruction thread and the step of adjusting the first base input processing priority includes decreasing the first base input processing priority.
- 5. The method of claim 3 wherein the long-latency event is associated with an instruction thread other than the first instruction thread and the step of adjusting the first base input processing priority includes increasing the first base input processing priority.
- 6. The method of claim 1 further including the steps of:
(a) receiving a second priority signal indicating a second base input processing priority associated with a second instruction thread included in the number of instruction threads; (b) adjusting the second base input processing priority to generate a second adjusted input processing priority in response to the feedback signal; and (c) applying the interleave rule to the first adjusted input processing priority and at least the second adjusted input processing priority to generate the thread selection control signal for controlling the interleaving of instructions from the number of instruction threads.
- 7. A circuit for use in controlling the cycle-by-cycle interleaving of instructions between a number of instruction threads in a simultaneous multithreading processor, the circuit including:
(a) a first priority input for receiving a priority signal indicating a first base input processing priority associated with a first instruction thread included in the number of instruction threads; (b) a feedback input for receiving a feedback signal associated with one of the instruction threads; (c) first adjustment logic including a first input coupled to the first priority input, a second input coupled to the feedback input, and an output, the first adjustment logic for adjusting the first base input processing priority to generate a first adjusted input processing priority signal in response to the feedback signal; and (d) an interleave rule enforcement circuit for receiving the first adjusted input processing priority and at least one additional processing priority and for generating a thread interleave control signal based in part upon the first adjusted input processing priority.
- 8. The circuit of claim 7 wherein the first adjustment logic includes an output selection circuit for selecting between the first base input processing priority and the first adjusted input processing priority of the instruction thread.
- 9. The circuit of claim 8 wherein the output selection circuit includes a multiplexer and a multiplexer control.
- 10. The circuit of claim 7 wherein the feedback input is for receiving a feedback signal associated with a long-latency event.
- 11. The circuit of claim 10 wherein:
(a) the long-latency event is associated with the first instruction thread; and (b) the first adjustment logic includes a subtraction device for decreasing the first base input processing priority.
- 12. The circuit of claim 10 wherein:
(a) the long-latency event is associated with an instruction thread other than the first instruction thread; and (b) the first adjustment logic includes an addition device for increasing the first base input processing priority.
- 13. The circuit of claim 7 further including:
(a) a second priority input for receiving a second priority signal indicating a second base input processing priority associated with a second instruction thread included in the number of instruction threads; (b) second adjustment logic including a first input coupled to the second priority input, a second input coupled to the feedback input, and an output, the second adjustment logic for adjusting the second base input processing priority to generate a second adjusted input processing priority in response to the feedback signal; and wherein (c) the interleave rule enforcement circuit is for receiving the second adjusted input processing priority and for generating the thread interleave control signal based in part upon the second adjusted input processing priority.
- 14. A circuit for controlling the cycle-by-cycle interleaving of instructions between a number of instruction threads in a simultaneous multithreading processor, the circuit including:
(a) first adjustment logic including a first input for receiving a first priority signal indicating a first base input processing priority associated with a first instruction thread included in the number of instruction threads, and an output for providing a first adjusted priority signal indicating a first adjusted input processing priority associated with the first instruction thread; (b) a first multiplexer including a control input for receiving a control signal, a base priority input coupled to the first input of the first adjustment logic for receiving the first priority signal, an adjusted priority input coupled to the output of the first adjustment logic for receiving the first adjusted priority signal, and an output for providing a first final adjusted priority signal including a selected one of the first priority signal or the first adjusted priority signal; (d) a first controller including an input for receiving a feedback signal associated with one of the number of instruction threads and an output coupled to the control input of the first multiplexer to provide a control signal for selecting either the first priority signal or the first adjusted priority signal; and (e) a rule enforcement circuit including a first input coupled to the output of the multiplexer and an output to provide a thread selection control signal, the rule enforcement circuit for applying an interleave rule to the first final adjusted priority signal and at least one other priority signal to generate a thread selection control signal for controlling the interleaving of instructions from the number of instruction threads.
- 15. The circuit of claim 14 wherein the feedback signal is associated with a long-latency event.
- 16. The circuit of claim 15 wherein:
(a) the long-latency event is associated with the first instruction thread; and (b) the adjustment logic includes a subtraction device for decreasing the first base input processing priority.
- 17. The circuit of claim 15 wherein:
(a) the long-latency event is associated with an instruction thread other than the first instruction thread; and (b) the adjustment logic includes an addition device for increasing the first base input processing priority.
- 18. The circuit of claim 14 wherein the adjustment logic further includes an adjustment input for receiving an adjustment signal indicating an amount by which the first base input processing priority is to be adjusted to generate the first adjusted input processing priority.
- 19. The circuit of claim 14 further including:
(a) second adjustment logic including an input for receiving a second priority signal indicating a second base input processing priority associated with a second instruction thread included in the number of instruction threads, and an output for providing a second adjusted priority signal indicating a second adjusted input processing priority associated with the second instruction thread; (b) a second multiplexer including a control input for receiving a control signal, a base priority input coupled to the input of the second adjustment logic for receiving the second priority signal, an adjusted priority input coupled to the output of the second adjustment logic for receiving the second adjusted priority signal, and an output for providing a second final adjusted priority signal including a selected one of the second priority signal or the second adjusted priority signal; (c) a controller including an input for receiving a feedback signal associated with one of the instruction threads, and an output coupled to the control input of the second multiplexer to provide a control signal for selecting either the first priority signal or the first adjusted priority signal; and wherein (d) the rule enforcement circuit includes a second input coupled to the output of the second multiplexer, and wherein the rule enforcement circuit is further for applying the interleave rule to the first final adjusted priority signal and at least the second final adjusted priority signal to generate the thread selection control signal for controlling the interleaving of instructions from the number of instruction threads.
RELATED APPLICATIONS
[0001] This application is related to application Ser. No. ______, entitled “METHOD AND APPARATUS FOR RANDOMIZING INSTRUCTION THREAD INTERLEAVING IN A MULTI-THREAD PROCESSOR” and application Ser. No. ______, entitled “METHOD AND APPARATUS FOR SELECTING AN INSTRUCTION THREAD FOR PROCESSING IN A MULTI-THREAD PROCESSOR,” each filed simultaneously herewith. The entire content of each of these related applications is hereby incorporated by reference into the present application.