IP Library Granted Patent US 8,966,490
Granted Patent B2
US 8,966,490 · App. 12/994,027 · Granted Feb 24, 2015

System, method and computer program product for scheduling a processing entity task by a scheduler in response to a peripheral task completion indicator

Inventors: Hillel Avni (Tel Aviv, IL); Dov Levenglick (Herut, IL); Avishay Moskowiz (Tel Aviv, IL)
Assignee: Freescale Semiconductor, Inc.
G06F9/4881G06F2209/483G06F2209/484
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 8,966,490
App. No.
12/994,027
Granted
Feb 24, 2015
Kind
B2
Abstract

A system, computer program and a method for scheduling a processing entity task in a multiple-processing entity system, the method includes initializing a scheduler; receiving a task data structure indicative that a pre-requisite to an execution of task to be executed by a processing entity is a completion of a peripheral task that is executed by a peripheral; wherein the peripheral updates a peripheral task completion indicator once the peripheral task is completed; wherein the peripheral task completion indicator is accessible by the scheduler; and scheduling, by the scheduler, the task in response to the peripheral task completion indicator.

Claims (30)

1. A method for scheduling a processing entity task for execution by a processing entity of multiple processing entities in a multiple-processing entity system, the multiple-processing entity system comprising a scheduler, the method comprising:

initializing the scheduler by performing initialization selected from a group consisting of: powering up the multiple-processing entity system, resetting the scheduler, and providing initializing information to the scheduler;

receiving at the scheduler a task data structure comprising a pre-requisite indicator indicative that a pre-requisite to an execution of the processing entity task to be executed by the processing entity is a completion of a peripheral task that is executed by a hardware peripheral, wherein the hardware peripheral updates a peripheral task completion indicator once the peripheral task is completed, wherein the peripheral task completion indicator is stored in a memory unit accessible to the scheduler and to the hardware peripheral;

scheduling by the scheduler, the processing entity task in response to the peripheral task completion indicator; and

updating a compact pre-requisite completion data structure stored in the memory unit, wherein a first portion of the compact pre-requisite completion data structure is accessible by the hardware peripheral and wherein another portion of the compact pre-requisite completion data structure is accessible by at least one processing entity of the multiple-processing entities of the multiple-processing entity system.

2. The method according to claim 1 comprising accessing, by the scheduler, the peripheral task completion indicator, in a non-interruptible manner.

3. The method according to claim 1 comprising scheduling the task in response to the peripheral task completion indicator and in response to at least one processing entity responsive pre-requisite indicator, wherein the at least one processing entity responsive pre-requisite indicator is responsive, directly or indirectly, to updating by at least one processing entity of the multiple-processing entity system.

4. The method according to claim 1 comprising disabling the scheduler from performing a non-scheduler task during the scheduling of the processing entity task, wherein the scheduler is a multiple-purpose entity.

5. A multiple-processing entity system comprising:

a memory unit, being a physical device, configured to store a task data structure comprising a pre-requisite indicator indicative that a pre-requisite to an execution of a processing entity task to be executed by a processing entity of multiple processing entities of the multiple-processing entity system is a completion of a peripheral task that is executed by a hardware peripheral;

wherein the hardware peripheral updates a peripheral task completion indicator stored in the memory unit once the peripheral task is completed; and

a scheduler, configured to schedule the processing entity task for execution by the processing entity in response to the peripheral task completion indicator; wherein the peripheral task completion indicator is accessible by the scheduler and by the hardware peripheral, wherein the system is configured to update a compact pre-requisite completion data structure stored in the memory unit, wherein a first portion of the compact pre-requisite completion data structure is accessible by the hardware peripheral and wherein another portion of the compact pre-requisite completion data structure is accessible by at least one processing entity of the multiple-processing entity of the multiple-processing entity system.

6. The system of claim 5 wherein the scheduler is configured to access the peripheral task completion indicator, in a non-interruptible manner.

7. The system of claim 5 wherein the scheduler is configured to schedule the task in response to the peripheral task completion indicator and in response to at least one processing entity responsive pre-requisite indicator, wherein the at least one processing entity responsive pre-requisite indicator is responsive, directly or indirectly, to updating by at least one processing entity of the multiple-processing entity system.

8. The system of claim 6 wherein the scheduler is configured to update a pre-requisite completion vector in the pre-requisite completion data structure, wherein a first portion of the vector is accessible by the hardware peripheral and wherein another portion of the vector is accessible by at least one processing entities out of the multiple-processing entity of the multiple-processing entity system.

9. The system of claim 6 wherein the scheduler configured to move the task data structure from a pending task queue to a ready for execution task queue once all pre-requisites to the execution of the task are fulfilled.

10. The system of claim 6 wherein the scheduler is a multiple-purpose entity that is disabled from performing a non-scheduler task during the scheduling of the processing entity task.

11. The system of claim 6 wherein a processing entity is configured to instruct the hardware peripheral to update the peripheral task completion indicator once the peripheral task is completed.

12. The system of claim 6 wherein the processing entity is a core.

13. The multiple-processing entity system of claim 5 , wherein the hardware peripheral is selected from a group consisting of a Direct Memory Access engine and a Digital Signal Processing accelerator.

14. A computer program product comprising a non-transitory computer readable medium that stores instructions executable on a processor for:

receiving a task data structure comprising a pre-requisite indicator indicative that a pre-requisite to an execution of a processing entity task to be executed by a processing entity is a completion of a peripheral task that is executed by a hardware peripheral; wherein the hardware peripheral updates a peripheral task completion indicator once the peripheral task is completed; wherein the peripheral task completion indicator is accessible by a scheduler and by the hardware peripheral;

scheduling, by the scheduler, the processing entity task in response to the peripheral task completion indicator; and

updating a compact pre-requisite completion data structure, wherein a first portion of the compact pre-requisite completion data structure is accessible by the hardware peripheral and wherein another portion of the compact pre-requisite completion data structure is accessible by at least one processing entity of a multiple-processing entity of a multiple-processing entity system.

15. The computer program product according to claim 14 comprising instructions for accessing, by the scheduler, the peripheral task completion indicator, in a non-interruptible manner.

16. The computer program product according to claim 14 comprising instructions for scheduling the task in response to the peripheral task completion indicator and in response to at least one processing entity responsive pre-requisite indicator, wherein the at least one processing entity responsive pre-requisite indicator is responsive, directly or indirectly, to updating by at least one processing entity of the multiple-processing entity system.

17. The computer program product according to claim 14 comprising instructions for updating, by the scheduler, a pre-requisite completion vector, wherein a first portion of the vector is accessible by the hardware peripheral and wherein another portion of the vector is accessible by at least one processing entities out of the multiple-processing entity of the multiple-processing entity system.

18. The computer program product according to claim 14 comprising instructions for moving task data structure from a pending task queue to a ready for execution task queue once all pre-requisites to the execution of the task are fulfilled.

19. The computer program product according to claim 14 comprising instructions for instructing the hardware peripheral to update the peripheral task completion indicator once the peripheral task is completed.

20. The computer program product according to claim 14 comprising instructions for disabling the scheduler from performing a non-scheduler task during the scheduling of the processing entity task, wherein the scheduler is a multiple-purpose entity.

Assignments (22)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
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 TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040632 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Sep 21, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 044209/0047 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040632/0001 →
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 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0285 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0334 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0387 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0477 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0075 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027621/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2010
From: AVNI, HILLEL; LEVENGLICK, DOV; MOSKOWIZ, AVISHAY
To: FREESCALE SEMICONDUCTOR INC.
Reel/Frame 025392/0365 →
Continuity (1)
Related Publication 20110072434A1 · Mar 24, 2011