Patent ID: 7624257

Claim:
A method for dispatching threads to a multithreaded processor in a data processing system, said multithreaded processor containing a plurality of register sets for supporting the maintenance of thread state and concurrent execution of a plurality of threads, each register set of said plurality of register sets corresponding to a respective thread being concurrently executed by said multithreaded processor and containing a respective plurality of processor registers for storing processor execution state of the corresponding respective thread, said method comprising the steps of: identifying a first subset of threads dispatchable to said multithreaded processor as threads of a special class, said first subset comprising a plurality of threads dispatchable to said multithreaded processor and being fewer than all threads dispatchable to said multithreaded processor; dispatching said dispatchable threads to said multithreaded processor for execution; wherein said dispatching step comprises, with respect to each instance of dispatching a dispatchable thread to said multithreaded processor for execution, identifying a corresponding register set from among said plurality of register sets for exclusive use by the respective dispatchable thread being dispatched for the duration of a time the respective dispatchable thread being dispatched is active in said multithreaded processor, wherein at least one register set of said plurality of register sets is reserved for use by dispatchable threads of said special class, and can be identified by said dispatching step as a corresponding register set from among said plurality of register sets for exclusive use by the respective dispatchable thread being dispatched only for dispatchable threads of said special class; wherein, if none of said dispatchable threads of said special class is available for dispatch to said multithreaded processor and a register set which is reserved for use by dispatchable threads of said special class is not being used by any thread executing in said multithreaded processor, then the register set which is reserved for use by dispatchable threads of said special class remains unused until a dispatchable thread of said special class is available for dispatch to said multithreaded processor, notwithstanding that one or more dispatchable threads not of said special class is available for dispatch to said multithreaded processor.