Claims
- 1. Apparatus for implementing thread replacement for optimal performance in a two-tiered multithreading structure comprising:
a first tier thread state storage for storing a limited number of runnable thread register states; a second tier thread storage facility for storing a second number of thread states; said second number of thread states being greater than greater than the limited number of runnable thread register states; each stored thread state including predefined selection data; said predefined selection data including specific thread usage data; and a runnable thread selection logic coupled between the first tier thread state storage and the second tier thread storage facility, for selectively exchanging thread states between the first tier limited number of runnable thread register states and the second tier thread storage facility using said stored predefined selection data.
- 2. Apparatus for implementing thread replacement for optimal performance in a two-tiered multithreading structure as recited in claim 1 wherein said predefined selection data includes processor cycle usage efficiency data for each specific thread.
- 3. Apparatus for implementing thread replacement for optimal performance in a two-tiered multithreading structure as recited in claim 1 wherein said predefined selection data includes a time value since a particular thread ran on the processor, said time value being used to signal a starvation condition when said time value exceeds a threshold value.
- 4. Apparatus for implementing thread replacement for optimal performance in a two-tiered multithreading structure as recited in claim 1 wherein said predefined selection data includes a thread system priority; said thread system priority used by said runnable thread selection logic for selecting threads having high system priority before threads having lower system priority.
- 5. Apparatus for implementing thread replacement for optimal performance in a two-tiered multithreading structure as recited in claim 1 wherein said predefined selection data includes a ready-to-run indicator, said ready-to-run indicator used by said runnable thread selection to prevent threads in a stalled state from being moved from said secondary thread storage facility to the first tier thread register states for runnable threads until the stalled state is resolved.
- 6. Apparatus for implementing thread replacement for optimal performance in a two-tiered multithreading structure as recited in claim 1 includes ranking logic for ranking runnable threads in said first tier thread state storage; and said ranking logic using said stored predefined selection data for selecting a next eligible, runnable thread to be executed on the processor run next when a currently executing processor state is changed at idle events.
- 7. A method for implementing thread replacement for optimal performance in a two-tiered multithreading structure comprising:
utilizing first-tier state storage logic optimized for the high clock rate, storing a limited number of runnable thread register states; utilizing a second tier storage facility, storing state and predefined selection data for a second number of thread states; said second number of thread states being greater than said limited number of runnable thread register states and equal to all threads to run on a processor; said predefined selection data including specific thread usage data; and utilizing runnable thread selection logic, processing said stored predefined selection data for each of said threads; and selectively exchanging thread states between said first tier state storage logic and said second tier storage facility based upon said predefined selection data.
- 8. A method for implementing thread replacement for optimal performance in a two-tiered multithreading structure as recited in claim 7 wherein the step utilizing said second tier storage facility, of storing said state and said predefined selection data for a second number of thread states includes the steps of storing said predefined selection data including processor cycle usage efficiency data for each specific thread.
- 9. A method for implementing thread replacement for optimal performance in a two-tiered multithreading structure as recited in claim 7 wherein the step utilizing said second tier storage facility, of storing said state and said predefined selection data for a second number of thread states includes the steps of storing said predefined selection data including a time value since a particular thread ran on the processor, said time value being used to signal a starvation condition when said time value exceeds a threshold value.
- 10. A method for implementing thread replacement for optimal performance in a two-tiered multithreading structure as recited in claim 7 wherein the step utilizing said second tier storage facility, of storing said state and said predefined selection data for a second number of thread states includes the steps of storing said predefined selection data including a thread system priority; said thread system priority used by said runnable thread selection logic to enable selecting threads having high system priority over threads having lower system priority.
- 11. A method for implementing thread replacement for optimal performance in a two-tiered multithreading structure as recited in claim 7 wherein the step utilizing said second tier storage facility, of storing said state and said predefined selection data for a second number of thread states includes the steps of storing said predefined selection data including a ready-to-run indicator, said ready-to-run indicator used by said runnable thread selection logic to prevent threads in a stalled state from being moved from said secondary thread storage facility to the first tier thread register states for runnable threads until the stalled state is resolved.
- 12. A method for implementing thread replacement for optimal performance in a two-tiered multithreading structure as recited in claim 7 includes the step of ranking runnable threads in said first tier runnable thread register states using said predefined selection data to select a runnable thread to be executed next on the processor when a currently executing processor state is changed at idle events.
RELATED APPLICATION
[0001] A related U.S. patent application Ser. No. ______, entitled “METHOD AND APPARATUS FOR IMPLEMENTING TWO-TIERED THREAD STATE MULTITHREADING SUPPORT WITH HIGH CLOCK RATE” by Harold F. Kossman, and Timothy John Mullins, and assigned to the present assignee is being filed on the same day as the present patent application.