IP Library › Granted Patent US 9,286,118
Granted Patent B2
US 9,286,118 · App. 13/524,918 · Granted Mar 15, 2016

System and method for improved job processing to reduce contention for shared resources

Inventors: Timothy G. Boland (Phoenix, AZ); Anne C. Harris (Chandler, AZ); Steven D. Millman (Gilbert, AZ)
Assignee: Freescale Semiconductor, Inc.
G06F9/4881G06F9/52G06F2209/485H04Q11/04
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,286,118
App. No.
13/524,918
Granted
Mar 15, 2016
Kind
B2
Abstract

A method of processing a job is presented. A packet selector determines a candidate job list including an ordered listing of candidate jobs. Each candidate job in the ordered listing belongs to a communication stream. One or more shared resources required for execution of a first job in the candidate job list are identified. Whether the first job is eligible for execution is determined by determining an availability of the one or more shared resources required for the first job, and, when the one or more shared resource required for the first job are unavailable and no jobs executing within the data processor are from the same communication stream as the first job, determining that the first job is not eligible for execution.

Claims (40)

1. A method of processing candidate jobs with a data processor having a plurality of processors, the method comprising:

maintaining, by a queue manager, one or more queues that each contain multiple candidate jobs that are to be executed by the data processor, wherein the queue manager associates each candidate job with one of a plurality of communication streams;

issuing, by a packet selector, a dequeue request to the queue manager, to deliver a number of candidate jobs for processing to the packet selector;

receiving, by the packet selector, a number of dequeued candidate jobs from the queue manager;

determining, by the packet selector, an ordered listing of candidate jobs, wherein the ordered listing of candidate jobs is a listing of candidate jobs in the order in which they are received from the queue manager;

identifying, by the packet selector, one or more snared resources of a plurality of shared resources required by any of the plurality of processors when executing a first candidate job in the ordered listing of candidate jobs, wherein each of the plurality of shared resources may be used by any of the plurality of processors when executing candidate jobs and when the one or more shared resources are used by a first of the plurality of processors to execute the first candidate job, the one or more shared resources are unavailable to the others of the plurality of processors; and

determining, by the packet selector, whether the first candidate job is eligible for execution, by:

determining an availability of the one or more shared resources required for the first candidate job,

when the one or more shared resources required for the first candidate job are unavailable and no candidate jobs executing within the data processor are from the same communication stream as the first candidate job,

determining that the first candidate job is not eligible for execution by any of the plurality of processors of the data processor, and

when the one or more shared resources required for the first candidate job are available or one or more candidate jobs executing within the data processor are from the same communication stream as the first candidate job;

determining that the first candidate job is eligible for execution by any one of the plurality of processors of the data processor,

executing, by the data processor, the eligible candidate job, and

incrementing a usage counter for each of the one or more shared resources.

2. The method of claim 1 , including, when each of the candidate jobs in the ordered listing of candidate jobs requires snared resources that are unavailable, determining that an oldest candidate job in the ordered listing of candidate jobs is eligible for execution.

3. The method of claim 1 , wherein the one or more shared resources include a cryptographic engine.

4. The method of claim 1 , including when the first candidate job does not require a shared resource, determining that the first candidate job is eligible for execution.

5. The method of claim 1 , wherein executing the first candidate job includes retrieving ancillary data used in executing the first candidate job.

6. The method of claim 5 , wherein the ancillary data includes commands and context for executing the first candidate job.

7. The method of claim 5 , wherein the ancillary data includes an encryption key.

8. The method of claim 1 , wherein the data processor includes a security processor.

9. A data processor, comprising: a plurality of processors, each processor in the plurality of processors being configured to execute jobs,

a queue manager, configured to:

maintain one or more queues that each contain multiple candidate jobs that are to be executed by the data processor, wherein the queue manager associates each candidate job with one of a plurality of communication streams;

a packet selector, configured to:

issue a dequeue request to the queue manager, to deliver a number of candidate fobs for processing to the packet selector;

receive a number of dequeued candidate jobs from the queue manager;

determine an ordered listing of candidate jobs, wherein the ordered listing of candidate jobs is a listing of candidate jobs in the order in which they are received from the queue manager;

identify one or more shared resources of a plurality of shared resources required by any of the plurality of processors when executing a first candidate job in the ordered listing of candidate jobs, wherein each of the plurality of shared resources may be used by any of the plurality of processors to execute the first candidate job, and when the one or more shared resources are used by a first of the plurality of processors to execute the first candidate job, the one or more shared resources are unavailable to the others of the plurality of processors; and

determine whether the first candidate job is eligible for execution by:

determining an availability of the one or more shared resources required for the first candidate job,

when the one or more shared resources required for the first candidate job are unavailable and no candidate jobs executing within the data processor are from the same communication stream as the first candidate job, determining that the first candidate job is not eligible for execution by any of the plurality of processors of the data processor, and

when the one or more shared resources required for the first candidate job are available or one or more candidate jobs executing within the data processor are from the same communication stream as the first candidate job, determining that the first candidate job is eligible for execution by any one of the plurality of processors of the data processor,

executing, by the data processor, the eligible candidate job, and

incrementing a usage counter for each of the one or more shared resources.

10. The data processor of claim 9 , wherein executing the first candidate job includes retrieving ancillary data used in executing the first candidate job.

11. The data processor of claim 10 , wherein the ancillary data includes commands and context for executing the first candidate job.

12. The data processor of claim 10 , wherein the ancillary data includes an encryption key.

13. The data processor of claim 9 , wherein the data processor includes a security processor.

14. The data processor of claim 9 , wherein the one or more shared resources include a cryptographic engine.

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 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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0241. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 5, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041260/0850 →
MERGER Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040652/0241 →
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/0555 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0535 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0575 →
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 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 22, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030258/0501 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 22, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030258/0479 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 030256/0706 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2012
From: BOLAND, TIMOTHY G.; HARRIS, ANNE C.; MILLMAN, STEVEN D.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 028724/0054 →
Continuity (1)
Related Publication 20130339971A1 · Dec 19, 2013