Object-oriented global resource conflict resolver formatting resource requirements into a predetermined standard format and iteratively computing a resource assignment for each I/O function
First Claim
1. In a computer system having a plurality of expansion cards and a memory, a method of assigning system I/O resources comprising the steps of:
- (a) creating a single global conflict resolver for resolving all resource conflicts in the computer system;
(b) automatically identifying each I/O function in the computer system and obtaining resource requirements therefor;
(c) formatting the resource requirements into a predetermined standard format;
(d) providing the formatted resource requirements to the global conflict resolver;
(e) using the conflict resolver to iteratively compute a resource assignment for each I/O function which resource assignment does not conflict with other resource assignments; and
(f) storing the computed each resource assignment in the memory in a standard format together with a corresponding resource requirement.
2 Assignments
0 Petitions
Accused Products
Abstract
A single, global resource manager assigns system resources to all hardware devices in the computer system, including hardware devices that are both "plug and play" software programmable, hardware devices that are manually-configurable and the system motherboard. The resource manager includes a conflict resolver module which resolves conflicts which arise in the computer system over the allocation of system resources. Such system resources include, but are not limited to, memory ranges, input-output (I/O) register ranges, interrupt request lines and direct memory access (DMA) channels. Resource requirements for each device are obtained by recognizer objects which are customized versions of standardized objects that are part of the resource resolver framework and all resource requirements are encapsulated in resource usage objects which have a standard interface that works with the global resource resolver. The resource usage objects also encapsulate resource assignments generated by the global conflict resolver and thus contain complete information regarding resources for each device. The resource usage objects are stored in a hardware configuration database by recorder objects which are specialized for each device. The stored resource usage objects can be used both during system booting and during manual system reconfiguration.
52 Citations
44 Claims
-
1. In a computer system having a plurality of expansion cards and a memory, a method of assigning system I/O resources comprising the steps of:
-
(a) creating a single global conflict resolver for resolving all resource conflicts in the computer system; (b) automatically identifying each I/O function in the computer system and obtaining resource requirements therefor; (c) formatting the resource requirements into a predetermined standard format; (d) providing the formatted resource requirements to the global conflict resolver; (e) using the conflict resolver to iteratively compute a resource assignment for each I/O function which resource assignment does not conflict with other resource assignments; and (f) storing the computed each resource assignment in the memory in a standard format together with a corresponding resource requirement. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. In a computer system having a plurality of expansion cards and a memory, apparatus for assigning system I/O resources comprising:
-
(a) a single global conflict resolver for resolving all resource conflicts in the computer system; (b) a plurality of recognizers for automatically identifying each I/O function in the computer system and obtaining resource requirements therefor; (c) a plurality of encapsulators for formatting the resource requirements into a predetermined standard format; (d) means for providing the formatted resource requirements to the global conflict resolver; (e) a method in the conflict resolver for iteratively computing a resource assignment for each I/O function which resource assignment does not conflict with other resource assignments; and (f) a storage mechanism for storing the computed each resource assignment in the memory in a standard format together with a corresponding resource requirement. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A computer program product for use in a computer system having a plurality of expansion cards and a memory, a computer program product assigning system I/O resources and comprising a computer usable medium having computer readable program code thereon, including:
-
(a) program code for creating a single global conflict resolver for resolving all resource conflicts in the computer system; (b) program code for automatically identifying each I/O function in the computer system and obtaining resource requirements therefor; (c) program code for formatting the resource requirements into a predetermined standard format; (d) program code for providing the formatted resource requirements to the global conflict resolver; (e) program code for using the conflict resolver to iteratively compute a resource assignment for each I/O function which resource assignment does not conflict with other resource assignments; and (f) program code for storing the computed each resource assignment in the memory in a standard format together with a corresponding resource requirement. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. An apparatus for resolving a resource conflict which occurs while adding an expansion card to a computer system, the apparatus comprising:
-
(a) a processor; (b) a storage device, coupled to and under the control of the processor, the storage having a plurality of storage locations; (c) at least one manually-configured expansion card coupled to the processor, each of the at least one manually-configured expansion cards for providing at least one I/O function; (d) a computer hardware configuration database stored in the storage device, the computer hardware configuration database having a database entry for each of the at least one manually-configured expansion cards coupled to the processors each of the database entries having a list of computer resources required by the corresponding manually-configured expansion card; (e) a card recognizer for identifying each of the at least one manually-configured I/O expansion cards, for retrieving computer resource requirements for each of the manually-configured I/O expansion cards from the hardware configuration database, and for formatting the computer resource requirements into a predetermined standard format; and (f) a resource conflict resolver module for receiving the computer resource requirements for each of the manually-configured I/O expansion cards from the card recognizer and for determining whether a conflict in resource assignments exists. - View Dependent Claims (35, 36)
-
-
37. A resource manager comprising:
-
means for identifying each of a plurality of expansion cards coupled to a computer system; means for maintaining information on I/O functions on each of the plurality of expansion cards; means for assigning a computer resource to each of the plurality of expansion cards; means for formatting the computer resource assignments into a predetermined standard format; means for identifying a conflict in the formatted computer resource assignments; and means for resolving conflicts in the computer resource assignments. - View Dependent Claims (38, 39, 40, 41)
-
-
42. A method of initializing a computer system comprising the steps of:
-
(a) loading a computer operating system into the computer system; (b) instantiating a boot conductor object from a booting system; (c) instantiating, via the boot conductor object, a manual recorder registry object from a manual recorder registry class; (d) instantiating, via the manual recorder registry object, a motherboard configuration recorder object from a motherboard configuration recorder class; (e) instantiating, via the manual recorder registry object, a second level recognizer object for a motherboard; (f) instantiating, via the manual recorder registry object, a second level recognizer object for each of a plurality of manual expansion cards; (g) registering, via the motherboard configuration recorder object, resource requirements for I/O functions which are provided as an integral part of the motherboard with a resource conflict resolver; (h) instantiating, via a motherboard configuration recorder object, a card recognizer object for each expansion bus provided as part of the motherboard; (i) for each expansion bus, identifying, via the respective card recognizer object, each expansion card on the expansion bus; (j) identifying, via the card recognizer, I/O functions for each expansion card identified in the identifying each expansion card step; (k) identifying, via the card recognizer, resource requirements for each of the I/O functions I/O functions for each expansion card identified in the identifying each expansion card step; (l) formatting the identified computer resource assignments into a predetermined standard format; (m) registering, via the card recognizer, the resource requirements for the I/O functions on each expansion card with the conflict resolver; and (n) computing, via the conflict resolver, a conflict-free resource assignment from the resource requirements registered therein by the card recognizer. - View Dependent Claims (43, 44)
-
Specification