Dynamic hardware resource manager for software-defined communications system
First Claim
1. A method for managing hardware resources of a multi-channel software-defined communications system, comprising:
- tracking available system hardware resources;
creating a specification of required hardware resources necessary for executing a system application;
creating a list of candidate hardware resources in response to the tracking of available system hardware resources and the creating of a specification of required hardware resources; and
mapping each required hardware resource on the specification of required hardware resources to a least functional and most available candidate hardware resource on the list of candidate hardware resources in a manner that maximally preserves most functional and least available candidate hardware resources on the list of candidate hardware resources.
7 Assignments
0 Petitions
Accused Products
Abstract
A hardware resource manager (18) dynamically allocates hardware resources in a software-defined communications system. The hardware resource manager (18) creates a specification of required hardware resources (300) necessary for executing a system application. The hardware resource manager (18) then creates a list of candidate hardware resources (306) from the plurality of available hardware resources in response to an application creating its own abstract resource specification (78) of required hardware resources. The hardware resource manager (18) then maps each required hardware resource on the specification of required hardware resources to a least functional and most available candidate hardware resource on the list of candidate hardware resources in a manner that maximally preserves most functional and least available candidate hardware resources on the list of candidate hardware resources (316-326).
149 Citations
20 Claims
-
1. A method for managing hardware resources of a multi-channel software-defined communications system, comprising:
-
tracking available system hardware resources;
creating a specification of required hardware resources necessary for executing a system application;
creating a list of candidate hardware resources in response to the tracking of available system hardware resources and the creating of a specification of required hardware resources; and
mapping each required hardware resource on the specification of required hardware resources to a least functional and most available candidate hardware resource on the list of candidate hardware resources in a manner that maximally preserves most functional and least available candidate hardware resources on the list of candidate hardware resources. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
performing a non-negotiable hardware resource mapping of a required hardware resource from the specification of required hardware resources to a candidate hardware resource on the list of candidate hardware resources if the required hardware resource from the specification of the required hardware resources can only be mapped to the candidate hardware resource on the list of candidate hardware resources;
performing an independent negotiable optimized mapping of the candidate hardware resource on the list of candidate hardware resources to the required hardware resource from the specification of required hardware resources if the candidate hardware resource on the list of the candidate hardware resources satisfies only the required hardware resource from the specification of required hardware resources; and
performing an interdependent negotiable optimized mapping of a first found candidate hardware resource on the list of candidate hardware resources to the required hardware resource from the specification of required hardware resources if the required hardware resource remains to be mapped after the performing of a non-negotiable hardware resource mapping and the performing of an independent negotiable optimized mapping.
-
-
3. The method of claim 2, further comprising removing the candidate hardware resource from the list of candidate hardware resources after the performing of a non-negotiable hardware resource mapping;
- and
updating the list of candidate hardware resources.
- and
-
4. The method of claim 2, further comprising removing the candidate hardware resource from the list of candidate hardware resources after the performing of an independent negotiable optimized mapping;
- and
updating the list of candidate hardware resources.
- and
-
5. The method of claim 2, further comprising removing the candidate hardware resource from the list of candidate hardware resources after the performing of an interdependent negotiable optimized mapping;
- and
updating the list of candidate hardware resources.
- and
-
6. The method of claim 1, further comprising defaulting to a failed resource allocation mode if a total number of required hardware resources on the specification of required hardware resources is greater than a total number of available hardware resources, or if no anchor resources are found.
-
7. The method of claim 1, further comprising defaulting to a failed resource allocation mode if a ratio of a total number of candidate hardware resources to a total number of required hardware resources is greater than or equal to 1, if two or more required hardware resources need a single candidate hardware resource, or if a total number of required hardware resources is less than or equal to a total number of candidate hardware resources.
-
8. The method of claim 1, wherein the creating of a list of candidate hardware resources further comprises factoring in anchor resource limitations into the list of candidate hardware resources.
-
9. The method of claim 1, wherein the creating of a list of candidate hardware resources further comprises factoring in platform specific hardware resource mapping limitations into the list of candidate hardware resources.
-
10. The method of claim 1, wherein the mapping of each required hardware resource on the specification of required hardware resources comprises:
-
performing a non-negotiable hardware resource mapping of a required hardware resource from the specification of required hardware resources to a candidate hardware resource on the list of candidate hardware resources if the required hardware resource from the specification of the required hardware resources can only be mapped to the candidate hardware resource on the list of candidate hardware resources;
performing an independent negotiable optimized mapping of the candidate hardware resource on the list of candidate hardware resources to the required hardware resource from the specification of required hardware resources if the candidate hardware resource on the list of the candidate hardware resources satisfies only the required hardware resource from the specification of required hardware resources; and
using cost functions to optimize otherwise equal choices if the required hardware resource remains to be mapped after the performing of a non-negotiable hardware resource mapping and the performing of an independent negotiable optimized mapping.
-
-
11. A method for allocating hardware resources in a software-defined communications system, comprising:
-
computing a virtual hardware resource group list of hardware resources necessary to execute an application;
computing a candidate hardware resource group list from available hardware resource groups in response to the computing of a virtual hardware resource group list;
assigning a virtual hardware resource group to a candidate hardware resource group if the virtual hardware resource group list has only one candidate hardware resource group;
assigning a candidate hardware resource group to a virtual hardware resource group if the candidate hardware resource group list satisfies only a single virtual hardware resource group;
locating a virtual hardware resource group with a least number of candidate hardware resource groups; and
assigning a first candidate hardware resource group to the virtual hardware resource group in response to the locating of a virtual hardware resource group with a least number of candidate hardware resource groups. - View Dependent Claims (12, 13, 14, 15, 16, 17)
removing the candidate hardware resource group from the candidate hardware resource group list after the assigning of a candidate hardware resource group to a virtual hardware resource group; and
updating the candidate hardware resource group list after the removing of the candidate hardware resource group from the candidate hardware resource group list.
-
-
13. The method of claim 11, further comprising:
-
removing the candidate hardware resource group from the candidate hardware resource group list after the locating of a virtual hardware resource group with a least number of candidate hardware resource groups and the assigning of a first candidate hardware resource group to the virtual hardware resource group; and
updating the candidate hardware resource group list after the removing of the candidate hardware resource group from the candidate hardware resource group list.
-
-
14. The method of claim 11, further comprising repeating the computing of a candidate hardware resource group list from available hardware resource groups, the assigning of a virtual hardware resource group to a candidate hardware resource group if the virtual hardware resource group has only one candidate hardware resource group, the assigning of a candidate hardware resource group to a virtual hardware resource group if the candidate hardware resource group list satisfies only a single virtual hardware resource group, the locating of a virtual hardware resource group with a least number of candidate hardware resource groups, and the assigning of a first candidate hardware resource group to the virtual hardware resource group until all of the virtual hardware resource groups are mapped.
-
15. The method of claim 11, further comprising defaulting to a failed resource allocation mode if after the computing of a candidate hardware resource group list it is determined that a ratio of a number of candidate hardware resource groups to a number of virtual hardware resource groups is greater than or equal to one, two virtual hardware resource groups simultaneously require a single candidate hardware resource group, or a total number of virtual hardware resource groups is less than or equal to a total number of candidate hardware resource groups.
-
16. The method of claim 11, further comprising defaulting to a failed resource allocation mode if after the computing of a virtual hardware resource group list necessary to execute an application it is determined that a number of virtual hardware resource groups on the virtual hardware resource group list is less than or equal to a number of available hardware resource groups, or that no anchor resources have been found.
-
17. The method of claim 11, wherein the assigning of a first candidate hardware resource group to the virtual hardware resource group is realized through use of a cost function.
-
18. A software-defined communications system, comprising:
-
a plurality of defined hardware resources for use, either singly or in a specified combination, in carrying out a system application;
a hardware resource manager for creating a specification of required hardware resources necessary for carrying out the system application;
the hardware resource manager also for creating a list of candidate hardware resources from the plurality of defined hardware resources after creating the specification of required hardware resources; and
the hardware resource manager further for mapping each required hardware resource in the specification of required hardware resources to a least functional and most available candidate hardware resource on the list of candidate hardware resources in a manner that maximally preserves most functional and least available candidate hardware resources on the list of candidate hardware resources. - View Dependent Claims (19, 20)
-
Specification