Methods and systems for sharing common job information
First Claim
1. A method for utilizing a plurality of processing units, the method comprising:
- obtaining, by a first processing unit of the plurality of processing units, a first shared descriptor segment of first job information for a first job assigned to the first processing unit from a memory communicatively coupled to the plurality of processing units via an interface;
obtaining, by a job control module, a subset of second job information for a second job;
selecting, by the job control module, the second job from a plurality of unassigned jobs to be assigned to a second processing unit of the plurality of processing units by identifying the second job as a parallel pending job when a second shared descriptor segment of the second job information matches the first shared descriptor segment for the first job and sharing criteria for the first job indicates that the first shared descriptor segment is available for sharing in parallel;
providing, by the job control module, the subset of second job information to the second processing unit;
obtaining, by the second processing unit, the first shared descriptor segment from the first processing unit assigned the first assigned job by copying the first shared descriptor segment from the first processing unit to the second processing unit, resulting in an obtained segment of information; and
performing, by the second processing unit, the second job based at least in part on the subset of second job information and the obtained segment of information.
27 Assignments
0 Petitions
Accused Products
Abstract
Apparatus and methods are provided for utilizing a plurality of processing units. A method comprises selecting a pending job from a plurality of unassigned jobs based on a plurality of assigned jobs for the plurality of processing units and assigning the pending job to a first processing unit. Each assigned job is associated with a respective processing unit, wherein the pending job is associated with a first segment of information that corresponds to a second segment of information for a first assigned job. The method further comprises obtaining the second segment of information that corresponds to the first segment of information from the respective processing unit associated with the first assigned job, resulting in an obtained segment of information and performing, by the first processing unit, the pending job based at least in part on the obtained segment of information.
-
Citations
21 Claims
-
1. A method for utilizing a plurality of processing units, the method comprising:
-
obtaining, by a first processing unit of the plurality of processing units, a first shared descriptor segment of first job information for a first job assigned to the first processing unit from a memory communicatively coupled to the plurality of processing units via an interface; obtaining, by a job control module, a subset of second job information for a second job; selecting, by the job control module, the second job from a plurality of unassigned jobs to be assigned to a second processing unit of the plurality of processing units by identifying the second job as a parallel pending job when a second shared descriptor segment of the second job information matches the first shared descriptor segment for the first job and sharing criteria for the first job indicates that the first shared descriptor segment is available for sharing in parallel; providing, by the job control module, the subset of second job information to the second processing unit; obtaining, by the second processing unit, the first shared descriptor segment from the first processing unit assigned the first assigned job by copying the first shared descriptor segment from the first processing unit to the second processing unit, resulting in an obtained segment of information; and performing, by the second processing unit, the second job based at least in part on the subset of second job information and the obtained segment of information. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of obtaining information for a first processing unit of one or more processing units, each processing unit of the one or more processing units being associated with a respective assigned job, the method comprising:
-
obtaining job information for a first assigned job from memory communicatively coupled to the one or more processing units, resulting in obtained job information for the first assigned job; obtaining a burst of second job information for a second job; selecting the second job to be assigned to the first processing unit when the burst of second job information indicates a first segment of the second job information in memory matches a subset of the obtained job information for the first assigned job, wherein selecting the second job comprises selecting a first unassigned job from a plurality of unassigned jobs maintained in a plurality of registers, each register maintaining a respective burst of job information for a respective unassigned job of the plurality of unassigned jobs; assigning the second job to the first processing unit by providing the burst of second job information for the first unassigned job from a first register of the plurality of registers to the first processing unit; obtaining the subset of the obtained job information for the first assigned job from a respective processing unit associated with the first assigned job; and performing, by the first processing unit, the second job based at least in part on the subset of the obtained job information for the first assigned job and the burst of second job information. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A system comprising:
-
an interface for coupling to a memory; a job source; and an acceleration architecture communicatively coupled to the job source and communicatively coupled to the memory via the interface obtain a plurality of jobs from the job source, obtain job information for a first job of the plurality of jobs from the memory, resulting in obtained job information for the first job, perform the first job based on the obtained job information for the first job, obtain a burst of second job information for a second job of the plurality of jobs from the job source or the memory, and when a segment of the second job information corresponds to a subset of the obtained job information for the first job, perform the second job based at least in part on the subset of the obtained job information for the first job and the burst of the second job information, wherein the acceleration architecture includes; a plurality of processing units, the first job being assigned to a respective processing unit of the plurality of processing units, the respective processing unit associated with the first job being configured to obtain job information for the first job from the memory; and a control module coupled to the plurality of processing units, the control module being configured to; identify a first processing unit of the plurality of processing units as being available; and assign the second job to the first processing unit, wherein the first processing unit is configured to obtain the subset of the obtained job information for the first job corresponding to the segment of information for the second job from the respective processing unit associated with the first job. - View Dependent Claims (13, 14, 15)
-
-
16. A method for utilizing a plurality of processing units, the method comprising:
-
obtaining, by a first processing unit of the plurality of processing units, a first shared descriptor segment of first job information for a first job assigned to the first processing unit from a memory communicatively coupled to the plurality of processing units via an interface; obtaining, by a job control module, a subset of second job information for a second job; selecting, by the job control module, the second job from a plurality of unassigned jobs to be assigned to a second processing unit of the plurality of processing units based on a second shared descriptor segment of the second job information, the plurality of unassigned jobs being maintained in a plurality of registers, each register maintaining a burst of job information for a respective unassigned job of the plurality of unassigned jobs, wherein selecting the second job comprises selecting a first unassigned job of the plurality of unassigned jobs when the burst of job information for the first unassigned job indicates the second shared descriptor segment matches first shared descriptor segment, the burst of job information for the first unassigned job being maintained in a first register of the plurality of registers and comprising the subset of second job information; providing, by the job control module, the burst of job information for the first unassigned job maintained the first register to the second processing unit; obtaining, by the second processing unit, the first shared descriptor segment from the first processing unit assigned the first assigned job, resulting in an obtained segment of information; and performing, by the second processing unit, the second job based on the burst of information for the first unassigned job and the obtained segment of information. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A method for utilizing a plurality of processing units, the method comprising:
-
obtaining, by a first processing unit of the plurality of processing units, a first shared descriptor segment of first job information for a first job assigned to the first processing unit from a memory communicatively coupled to the plurality of processing units via an interface; obtaining, by a job control module, a subset of second job information for a second job; selecting, by the job control module, the second job from a plurality of unassigned jobs to be assigned to a second processing unit of the plurality of processing units based on a pointer for a second shared descriptor segment of the second job in memory being equal to a pointer for the first shared descriptor segment for the first job; providing, by the job control module, the subset of second job information to the second processing unit; obtaining, by the second processing unit, the first shared descriptor segment from the first processing unit assigned the first assigned job, resulting in an obtained segment of information; and performing, by the second processing unit, the second job based at least in part on the subset of second job information and the obtained segment of information.
-
Specification