Configurable per-task state counters for processing cores in multi-tasking processing systems
First Claim
1. A method for operating a multi-tasking processing system, comprising:
- assigning multiple tasks to each of a plurality of processing cores for a multi-tasking processing system, each processing core being configured to process the multiple tasks using a plurality of processing states;
at each processing core;
concurrently processing the multiple tasks using the plurality of processing states; and
for each of the multiple tasks;
enabling counting of processing of cycles for two or more of the plurality of processing states and disabling counting of processing cycles for one or more of the plurality of processing states, wherein the plurality of processing states for which counting is selectively enabled and disabled comprises at least a waiting state, an inhibit state, and an executing state; and
generating a per-task state count value for the task, wherein the per-task state count value represents a number of processing cycles spent in the two or more processing states for which counting is enabled and does not represent an overall time for the task from initiation to completion;
assigning new tasks to each of the plurality of processing cores based upon the per-task state count values generated by the plurality of processing cores; and
processing the new tasks using the plurality of processing cores.
15 Assignments
0 Petitions
Accused Products
Abstract
Configurable per-task state counters for processing cores in multi-tasking processing systems are disclosed along with related methods. In part, the disclosed embodiments include a work scheduler and a plurality of processing cores. The work scheduler assigns tasks to the processing cores, and the processing cores concurrently process multiple assigned tasks using a plurality of processing states. Further, task state counters are provided for each assigned task, and these task state counters are incremented for each cycle that the task stays within selected processing states to generate per-task state count values for the assigned tasks. These per-task state count values are reported back to the work scheduler when processing for the task ends. The work scheduler can then use one or more of the per-task state count values to adjust how new tasks are assigned to the processing cores.
10 Citations
19 Claims
-
1. A method for operating a multi-tasking processing system, comprising:
-
assigning multiple tasks to each of a plurality of processing cores for a multi-tasking processing system, each processing core being configured to process the multiple tasks using a plurality of processing states; at each processing core; concurrently processing the multiple tasks using the plurality of processing states; and for each of the multiple tasks; enabling counting of processing of cycles for two or more of the plurality of processing states and disabling counting of processing cycles for one or more of the plurality of processing states, wherein the plurality of processing states for which counting is selectively enabled and disabled comprises at least a waiting state, an inhibit state, and an executing state; and generating a per-task state count value for the task, wherein the per-task state count value represents a number of processing cycles spent in the two or more processing states for which counting is enabled and does not represent an overall time for the task from initiation to completion; assigning new tasks to each of the plurality of processing cores based upon the per-task state count values generated by the plurality of processing cores; and processing the new tasks using the plurality of processing cores. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A multi-tasking processing system, comprising:
-
a plurality of processing cores, each processing core being configured to concurrently process multiple tasks using a plurality of processing states; and a work scheduler processor configured to assign multiple tasks to each of the plurality of processing cores and to assign new tasks to each of the plurality of processing cores based upon per-task state count values generated by the plurality of processing cores; wherein each processing core comprises; a core task scheduler configured to schedule processing of the multiple tasks within the processing core; a plurality of task state counters, each task state counter being associated with one of the multiple tasks; and a task state tracker configured to enable counting of processing of cycles for two or more of the plurality of processing states and to disable counting of processing cycles for one or more of the plurality of processing states, wherein the plurality of processing states for which counting is selectively enabled and disabled comprises at least a waiting state, an inhibit state, and an executing state; wherein the task state tracker is further configured to generate a per-task state count value for each task using the plurality of task state counters, the per-task state count value for each task representing a number of processing cycles spent in the two or more processing states for which counting is enabled and does not represent an overall time for the task from initiation to completion; and wherein the plurality of processing cores are further configured to process the new tasks. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
Specification