Accelerated atomic resource allocation on a multiprocessor platform
First Claim
1. A method, carried out by a resource allocation engine, for allocating one or more resources for a plurality of processors, the method comprising:
- counting available units for each of the one or more resources;
parsing a multi-resource ticket (MRT) for a processor, wherein the parsing identifies one or more requested resource types, each resource type being paired with one or more requested resource units;
comparing the multi-resource ticket to one or more resource queues for the requested resource types, wherein the comparing determines an availability status of at least one the requested resource types; and
based on the availability status, calculating whether or not all of the requested resource types can be allocated for the processor, wherein the calculating is completed before allocating a next requested resource for a next processor wherein the calculating further includes determining all of the requested resource types can be allocated for the processor; and
allocating the requested resource types for the processor before allocating a next requested resource for a next processor wherein the allocating comprises;
pushing a pointer from a resource queue to the multi-resource ticket and then sending the multi-resource ticket to an allocation queue for the processor, wherein the allocation queue is a first-in-first-out;
executing, with the processor, the multi-resource ticket from the allocation queue.
7 Assignments
0 Petitions
Accused Products
Abstract
A method, system, and apparatus are provided for accelerated atomic resource allocation on a multiprocessor platform. In particular, a resource allocation engine (RAE) performs the following: counting available units for each of the one or more resources; parsing a multi-resource ticket (MRT) for a processor, wherein the parsing identifies one or more requested resource types, each resource type being paired with a requested resource units; comparing the multi-resource ticket to one or more resource queues for the requested resource types, wherein the comparing determines an availability status of at least one the requested resource types; and based on the availability status, calculating whether or not all of the requested resource types can be allocated for the processor, wherein the calculating is completed before allocating a next requested resource for a next processor.
14 Citations
17 Claims
-
1. A method, carried out by a resource allocation engine, for allocating one or more resources for a plurality of processors, the method comprising:
-
counting available units for each of the one or more resources; parsing a multi-resource ticket (MRT) for a processor, wherein the parsing identifies one or more requested resource types, each resource type being paired with one or more requested resource units; comparing the multi-resource ticket to one or more resource queues for the requested resource types, wherein the comparing determines an availability status of at least one the requested resource types; and based on the availability status, calculating whether or not all of the requested resource types can be allocated for the processor, wherein the calculating is completed before allocating a next requested resource for a next processor wherein the calculating further includes determining all of the requested resource types can be allocated for the processor; and allocating the requested resource types for the processor before allocating a next requested resource for a next processor wherein the allocating comprises; pushing a pointer from a resource queue to the multi-resource ticket and then sending the multi-resource ticket to an allocation queue for the processor, wherein the allocation queue is a first-in-first-out; executing, with the processor, the multi-resource ticket from the allocation queue. - View Dependent Claims (2, 4, 5, 6, 7, 8, 9)
-
-
3. The method of 1, further comprising:
receiving, from the processor, an updated multi-resource ticket having an operation code set to free, indicating the one or more requested resource types are free from allocation.
-
10. A resource allocation engine (RAE) for allocating one or more resources for a plurality of processors, the resource allocation engine comprising:
-
a processor to execute instructions; and a memory device coupled to the processor, the memory device storing instructions for execution by the processor to cause the processor to perform; counting available units for each of the one or more resources; parsing a multi-resource ticket (MRT) for a processor, wherein the parsing identifies one or more requested resource types, each resource type being paired with one or more requested resource units; comparing the multi-resource ticket to one or more resource queues for the requested resource types, wherein the comparing determines an availability status of at least one the requested resource types; and based on the availability status, calculating whether or not all of the requested resource types can be allocated for the processor, wherein the calculating is completed before allocating a next requested resource for a next processor; allocating the requested resource types for the processor before allocating a next requested resource for a next processor wherein the allocating comprises; pushing a pointer from a resource queue to the multi-resource ticket and then sending the multi-resource ticket to an allocation queue for the processor, wherein the allocation queue is a first-in-first-out (FIFO) queue; executing, with the processor, the multi-resource ticket from the allocation queue. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A computer-readable product for allocating one or more resources for a plurality of processors, the computer-readable product including a non-transitory computer-readable storage medium storing instructions that when executed perform the functions comprising:
-
counting available units for each of the one or more resources; parsing a multi-resource ticket (MRT) for a processor, wherein the parsing identifies one or more requested resource types, each resource type being paired with one or more requested resource units; comparing the multi-resource ticket to one or more resource queues for the requested resource types, wherein the comparing determines an availability status of at least one the requested resource types; and based on the availability status, calculating whether or not all of the requested resource types can be allocated for the processor, wherein the calculating is completed before allocating a next requested resource for a next processor wherein the functions further comprise; wherein the calculating further includes determining all of the requested resource types can be allocated for the processor; and allocating the requested resource types for the processor before allocating the next requested resource for the next processor wherein the allocating comprises; pushing a pointer from a resource queue to the multi-resource ticket and then sending the multi-resource ticket to an allocation queue for the processor, wherein the allocation queue is a first-in-first-out (FIFO) queue; executing, with the processor, the multi-resource ticket from the allocation queue. - View Dependent Claims (16, 17)
-
Specification