Patent ID: 7877583

Claim:
In a multi-threaded processor for at least first and second threads, a method of assigning thread priority comprising: assigning priority to said first thread; loading a preliminary value to a thread precedence counter wherein the preliminary value is based on a value stored in a first starting counter associated with said first thread; assigning priority to said second thread in response to expiration of said thread precedence counter; determining if there is an indication of approaching instruction side starvation for said first thread wherein instruction fetching for said first thread would be blocked due to processing one or more instructions from another thread and wherein the determination is made by satisfying a plurality of conditions, said conditions including elapsed time; incrementing said value stored in said first starting counter in response to an indication of approaching instruction side starvation for said first thread; and resetting the value stored in said first starting counter in response to withdrawal of an indication of approaching instruction side starvation for said first thread.