Patent ID: 7401207

Claim:
A method for controlling the cycle-by-cycle interleaving of instructions between a number of instruction threads in a simultaneous multithreading processor, each respective instruction thread being stored in a respective queue of the simultaneous multithreading processor and being made up of instructions that have previously been fetched by a fetcher unit of the processor for execution, 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; (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, the interleave rule specifying a relative frequency at which instructions are to be taken from each of the number of instruction threads; and (e) applying the thread selection control signal to control a selection multiplexer having a respective input for each one of the number of instruction threads.