Allocation of differently sized memory address ranges to input/output endpoints in memory mapped input/output fabric based upon determined locations of input/output endpoints
First Claim
Patent Images
1. A method of allocating memory addresses to a plurality of input/output (IO) resources coupled to a plurality of IO endpoints in a memory mapped IO fabric, the method comprising:
- determining a location in the memory mapped IO fabric for each IO endpoint among the plurality of endpoints; and
non-uniformly allocating memory address ranges to the plurality of IO endpoints based upon the determined locations of the IO endpoints in the memory mapped IO fabric, wherein non-uniformly allocating memory address ranges to the plurality of IO endpoints includes allocating differently sized memory address ranges to first and second IO endpoints among the plurality of IO endpoints based upon the determined locations of the first and second IO endpoints.
0 Assignments
0 Petitions
Accused Products
Abstract
An apparatus, program product and method in which a memory address space is allocated non-uniformly to IO resources in a memory mapped IO fabric based upon the locations of individual IO endpoints to which such IO resources are coupled. In a PCI-based environment, for example, PCI adapters are allocated memory address ranges in a PCI bus address space based upon the locations of the particular slots within which the PCI adapters are mounted.
-
Citations
30 Claims
-
1. A method of allocating memory addresses to a plurality of input/output (IO) resources coupled to a plurality of IO endpoints in a memory mapped IO fabric, the method comprising:
-
determining a location in the memory mapped IO fabric for each IO endpoint among the plurality of endpoints; and non-uniformly allocating memory address ranges to the plurality of IO endpoints based upon the determined locations of the IO endpoints in the memory mapped IO fabric, wherein non-uniformly allocating memory address ranges to the plurality of IO endpoints includes allocating differently sized memory address ranges to first and second IO endpoints among the plurality of IO endpoints based upon the determined locations of the first and second IO endpoints. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. An apparatus, comprising:
-
at least one processor; program code configured to be executed by the at least one processor to allocate memory address space to a plurality of input/output (IO) resources coupled to a plurality of IO endpoints in a memory mapped IO fabric by determining a location in the memory mapped IO fabric for each IO endpoint among the plurality of endpoints, and non-uniformly allocating memory address ranges to the plurality of IO endpoints based upon the determined locations of the IO endpoints in the memory mapped IO fabric, wherein the program code is configured to non-uniformly allocate memory address ranges to the plurality of IO endpoints by allocating differently sized memory address ranges to first and second IO endpoints among the plurality of IO endpoints based upon the determined locations of the first and second IO endpoints. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A program product, comprising:
-
program code configured to allocate a memory address space to a plurality of input/output (IO) resources coupled to a plurality of IO endpoints in a memory mapped IO fabric by determining a location in the memory mapped IO fabric for each IO endpoint among the plurality of endpoints, and non-uniformly allocating memory address ranges to the plurality of IO endpoints based upon the determined locations of the IO endpoints in the memory mapped IO fabric, wherein the program code is configured to non-uniformly allocate memory address ranges to the plurality of IO endpoints by allocating differently sized memory address ranges to first and second IO endpoints among the plurality of IO endpoints based upon the determined locations of the first and second IO endpoints; and a tangible computer readable medium bearing the program code. - View Dependent Claims (30)
-
Specification