IP Library › Granted Patent US 9,785,473
Granted Patent B2
US 9,785,473 · App. 14/330,331 · Granted Oct 10, 2017

Configurable per-task state counters for processing cores in multi-tasking processing systems

Inventors: William C. Moyer (Dripping Springs, TX); John F. Pillar (Ottawa, CA)
Assignee: NXP USA, Inc.
G06F9/5027G06F9/4843
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,785,473
App. No.
14/330,331
Granted
Oct 10, 2017
Kind
B2
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.

Claims (35)

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.

2. The method of claim 1 , wherein at each processing core, the method further comprises reporting the per-task state count values to a work scheduler for the multi-tasking processing system.

3. The method of claim 1 , further comprising for each processing core selecting processing states to track for that processing core.

4. The method of claim 3 , further comprising adjusting the selected processing states for each processing core based upon at least one of an operational state of the multi-tasking processing system or performance of the multi-tasking processing system.

5. The method of claim 3 , wherein the selecting step comprises setting one or more bits within a configuration register for each processing core to select the processing states.

6. The method of claim 5 , further comprising setting one or more bits within the configuration register for each processing core to enable or disable task state counting.

7. The method of claim 1 , wherein the plurality of processing states for which counting is selectively enabled and disabled further comprises at least one of an unassigned state and an accelerating state.

8. The method of claim 1 , further comprising storing the per-task state count values from the plurality of processing cores in a data storage medium.

9. The method of claim 1 , wherein the generating step for each task comprises incrementing a value within a counter field for a count register for each task being concurrently processed by the processing core.

10. The method of claim 9 , further comprising setting one or more bits within the count register to indicate an overflow condition and to disable further counting.

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.

12. The multi-tasking system of claim 11 , wherein each processing core is further configured to report the per-task state count values from the task state counters to the work scheduler processor.

13. The multi-tasking processing system of claim 12 , further comprising a data storage medium configured to store the per-task state count values from the plurality of processing cores.

14. The multi-tasking processing system of claim 11 , wherein each of the plurality of processing cores is further configured to allow programmable selection of the processing states to track for that processing core.

15. The multi-tasking processing system of claim 14 , further comprising a configuration register associated with each core task scheduler, and wherein one or more bits within the configuration register are used to select the processing states.

16. The multi-tasking processing system of claim 15 , wherein one or more bits within the configuration register are used to enable or disable task state counting.

17. The multi-tasking processing system of claim 11 , wherein the plurality of task state counters each comprise a count register having a counter field.

18. The multi-tasking processing system of claim 17 , wherein one or more bits within each count register are used to indicate an overflow condition and to disable further counting.

19. The multi-tasking processing system of claim 11 , wherein the plurality of processing states for which counting is selectively enabled and disabled further comprises at least one of an unassigned state and an accelerating state.

Assignments (15)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0460 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0502 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0921 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Nov 4, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 034160/0370 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Nov 4, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 034160/0351 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Nov 4, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 034153/0027 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2014
From: MOYER, WILLIAM C.; PILLAR, JOHN F.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 033305/0411 →
Continuity (1)
Related Publication 20160011907A1 · Jan 14, 2016