Managing peripheral device address space resources using a tunable bin-packing/knapsack algorithm
First Claim
1. A method for allocating address space for a computer platform, comprising:
- gathering resource requests for a plurality of PCI (Peripheral Component Interconnect) peripheral devices hosted by the computer platform;
determining a resource allocation scheme to support the resource requests of the peripheral devices, the scheme to minimize an amount of allocated address space, the resource allocation scheme implemented via operations includingaggregating the resource requests for PCI devices at a given level of a PCI hierarchy for the computer platform into respective resource request objects, each resource request object having a size corresponding to the aggregated resource requests of the PCI devices to which it corresponds,defining a bin size comprising an address space aperture corresponding to a resource type of the resource requests, andsorting, via a bin-packing algorithm, the resource request objects into appropriate bins to minimize the number of bins required to support the resource requests for all of the PCI devices hosted by the computer platform; and
allocating address space for respective peripheral devices based on the resource allocation scheme that is determined.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems for allocating address space resources to resource requesting peripheral devices in an efficient manner. Resource requests are gathered for enumerated peripheral devices host by a computer platform. A map containing resource alignment requirements is built, and a virtual resource allocation map is computed based on aggregated resource requests and the alignment requirements. The resource aggregations are, in turn, based on a hierarchy of the peripheral devices. A bin-packing algorithm is employed to determine allocation of the resource requests so as to minimize resource address space allocations. The virtual resource map is then used to perform actual resource allocations. The resources include peripheral device I/O address allocation and peripheral device memory address allocations.
30 Citations
10 Claims
-
1. A method for allocating address space for a computer platform, comprising:
-
gathering resource requests for a plurality of PCI (Peripheral Component Interconnect) peripheral devices hosted by the computer platform; determining a resource allocation scheme to support the resource requests of the peripheral devices, the scheme to minimize an amount of allocated address space, the resource allocation scheme implemented via operations including aggregating the resource requests for PCI devices at a given level of a PCI hierarchy for the computer platform into respective resource request objects, each resource request object having a size corresponding to the aggregated resource requests of the PCI devices to which it corresponds, defining a bin size comprising an address space aperture corresponding to a resource type of the resource requests, and sorting, via a bin-packing algorithm, the resource request objects into appropriate bins to minimize the number of bins required to support the resource requests for all of the PCI devices hosted by the computer platform; and allocating address space for respective peripheral devices based on the resource allocation scheme that is determined. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
Specification