Method and apparatus to implement software to hardware thread priority
First Claim
1. A method for execution scheduling of program thread of an application and executing the scheduled program thread on a data processing system, the method comprising:
- providing an application program thread priority assigned by the application to a thread execution scheduler;
normalizing the application program thread priority using an increment function to identify a relative priority of the program thread from a plurality of program threads provided to the thread execution scheduler, wherein the increment function is executed by the thread execution scheduler;
decoding the normalized application program thread priority into a data processor priority count using a decoder, wherein the decoder is programmable to achieve a desired thread performance based on the data processor priority count;
inserting the program thread into a thread execution queue within the thread execution scheduler when the data processing priority count associated with the program thread reaches zero;
setting a program thread bit in the thread execution queue, wherein the program thread bit is uniquely associated with the program thread and identifies the program thread being ready to be selected for execution;
selecting for execution the program thread from a plurality of program threads inserted into the thread execution queue, wherein the program thread is selected for execution using a round-robin selection scheme from the plurality of program threads having associated program thread bit in the thread execution queue;
placing the selected program thread in a data processing execution queue within the data processing system; and
removing the program thread from the thread execution queue after a successful execution of the program thread by the data processing system.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention relates to a method and apparatus for execution scheduling of a program thread of an application program and executing the scheduled program thread on a data processing system. The method includes: providing an application program thread priority to a thread execution scheduler; selecting for execution the program thread from a plurality of program threads inserted into the thread execution queue, wherein the program thread is selected for execution using a round-robin selection scheme, and wherein the round-robin selection scheme selects the program thread based on an execution priority associated with the program thread bit; placing the program thread in a data processing execution queue within the data processing system; and removing the program thread from the thread execution queue after a successful execution of the program thread by the data processing system.
27 Citations
1 Claim
-
1. A method for execution scheduling of program thread of an application and executing the scheduled program thread on a data processing system, the method comprising:
-
providing an application program thread priority assigned by the application to a thread execution scheduler; normalizing the application program thread priority using an increment function to identify a relative priority of the program thread from a plurality of program threads provided to the thread execution scheduler, wherein the increment function is executed by the thread execution scheduler; decoding the normalized application program thread priority into a data processor priority count using a decoder, wherein the decoder is programmable to achieve a desired thread performance based on the data processor priority count; inserting the program thread into a thread execution queue within the thread execution scheduler when the data processing priority count associated with the program thread reaches zero; setting a program thread bit in the thread execution queue, wherein the program thread bit is uniquely associated with the program thread and identifies the program thread being ready to be selected for execution; selecting for execution the program thread from a plurality of program threads inserted into the thread execution queue, wherein the program thread is selected for execution using a round-robin selection scheme from the plurality of program threads having associated program thread bit in the thread execution queue; placing the selected program thread in a data processing execution queue within the data processing system; and removing the program thread from the thread execution queue after a successful execution of the program thread by the data processing system.
-
Specification