Enhanced Control of CPU Parking and Thread Rescheduling for Maximizing the Benefits of Low-Power State
First Claim
1. A method for scheduling tasks to execute on a plurality of processing units, the method comprising:
- determining whether any of the plurality of processing units are available for executing scheduled tasks;
in response to determining that at least one of the plurality of processing units is available for executing the scheduled tasks, assigning the scheduled tasks to execute on the at least one of the plurality of processing units;
determining whether additional processing units are required for executing the scheduled tasks;
in response to determining that additional processing units are required for executing the scheduled tasks, executing an instruction to trigger an inter-processor interrupt;
in response to the inter-processor interrupt, waking up selected one or more of remaining ones of the plurality of processing units; and
assigning the scheduled tasks to also execute on the selected one or more of the remaining ones of the plurality of processing units.
7 Assignments
0 Petitions
Accused Products
Abstract
A system may comprise a plurality of processing units and a scheduler configured to maintain a record for each respective processing unit. Each respective record may comprise entries which may indicate 1) how long the respective processing unit has been residing in an idle state, 2) a present power-state in which the respective processing unit resides, and 3) whether the respective processing unit is a designated default (bootstrap) processing unit. The scheduler may select one or more of the plurality of processing units according to their respective records, and assign impending instructions to be executed on the selected one or more processing units. Where additional processing units are required, the scheduler may also insert an instruction to trigger an inter-processor interrupt to transition one or more processing units out of idle-state. The scheduler may then assign some impending instructions to these one or more processing units.
65 Citations
20 Claims
-
1. A method for scheduling tasks to execute on a plurality of processing units, the method comprising:
-
determining whether any of the plurality of processing units are available for executing scheduled tasks; in response to determining that at least one of the plurality of processing units is available for executing the scheduled tasks, assigning the scheduled tasks to execute on the at least one of the plurality of processing units; determining whether additional processing units are required for executing the scheduled tasks; in response to determining that additional processing units are required for executing the scheduled tasks, executing an instruction to trigger an inter-processor interrupt; in response to the inter-processor interrupt, waking up selected one or more of remaining ones of the plurality of processing units; and assigning the scheduled tasks to also execute on the selected one or more of the remaining ones of the plurality of processing units. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system comprising:
-
a plurality of processing units configured to execute computer instructions; and a memory element configured to store a table comprising; a respective first entry for each respective processing unit of at least a subset of the plurality of processing units, wherein the first entry is indicative of how long the respective processing unit has been residing in an idle state; wherein the system is configured to check the respective first entries in the table to identify which of the at least a subset of the plurality of processing units do not reside in an idle state; wherein the system is further configured to assign impending computer instructions to execute on one or more of the at least a subset of the plurality of processing units identified as not residing in an idle state when the respective first entries in the table are checked. - View Dependent Claims (7, 8, 9)
-
-
10. A system comprising:
-
a plurality of processing units configured to execute computer instructions; and a scheduler configured to maintain a table for tracking and managing idle-state residency of each respective processing unit of the plurality of processing units, wherein the table comprises; a respective first entry for each respective processing unit, wherein the first entry is indicative of how long the respective processing unit has been residing in an idle state; a respective second entry for each respective processing unit, wherein the second entry is indicative of a power-state in which the respective processing unit presently resides; and a respective third entry for each respective processing unit, wherein the third entry is indicative of whether the respective processing unit is a designated default (bootstrap) processing unit. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A method for tracking and managing idle-state residency of each respective processing unit of a plurality of processing units, the method comprising:
-
maintaining a respective record for each respective processing unit, wherein each respective record comprises; first information indicative of a present power-state in which the respective processing unit resides; second information indicative of whether the respective processing unit resides in an idle state; and third information indicative of whether the respective processing unit is specified as a default (bootstrap) processing unit; selecting one or more processing units of the plurality of processing units according to the respective records; and assigning impending instructions to execute on the selected one or more processing units. - View Dependent Claims (18, 19, 20)
-
Specification