US 7,490,230 B2
Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor
Michael Gottlieb Jensen, Cambridgeshire (United Kingdom); and Soumya Banerjee, San Jose, Calif. (US)
Assigned to MIPS Technologies, Inc., Mountain View, Calif. (US)
Filed on Mar. 22, 2005, as Appl. No. 11/87,063.
Prior Publication US 2006/0179276 A1, Aug. 10, 2006
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/50 (2006.01)
U.S. Cl. 712—245  [718/103] 37 Claims
OG exemplary drawing
 
1. An apparatus for selecting one of N fetch addresses associated with N corresponding threads for providing to an instruction cache for fetching instructions therefrom in a multithreading microprocessor that concurrently executes the N threads, wherein a subset of the N threads may request to fetch instructions in a selection cycle, the apparatus comprising:
a first input, for receiving a first corresponding N-bit value specifying which of the N threads was last selected to fetch instructions, wherein only one of said N bits of said first value corresponding to said last selected thread is true;
a second input, for receiving a second corresponding N-bit value, each of said N bits of said second value being false if said corresponding one of the N threads is requesting to fetch instructions;
a barrel incrementer, coupled to said first and second inputs, configured to add said second value to a 1-bit left-rotated version of said first value to generate a sum and a carry-out bit, wherein said barrel incrementer includes said carry-out bit as a carry-in bit of the add to generate the sum; and
combinational logic, coupled to said barrel incrementer, configured to generate a third corresponding N-bit value specifying which of the N threads is selected next to fetch instructions, said third value comprising a Boolean AND of said sum and an inverted version of said second value, wherein only one of said N bits of said third value corresponding to said next selected one of the N threads is true.