|
|
|
| United States Patent | 5257387 |
| Link to this page | http://www.wikipatents.com/5257387.html |
| Inventor(s) | Richek; Martin D. (Houston, TX);
Gready; Robert S. (Houston, TX);
Jones, Jr.; Curtis R. (Cypress, TX) |
| Abstract | A computerized system for dynamically and automatically configuring circuit
boards to carry out functions from various manufacturers and a computer
system without the user intervention. A single computer system may
include, for example, a modem board, a video board, a disk controller
board, and a multiple function board, each circuit board from a different
manufacturer and each circuit board requires a computer resources for
operation. These resources may include interrupt request (IRQ) lines,
direct memory access (DMA) channels, I/O port addresses, memory address
ranges and circuit board slot locations. The computerized system
determines the type of slot required for each circuit board to be inserted
in the computer by reading the circuit board configuration file for each
board. The system will assign a circuit board to an available slot
locations of the required type. Based on the information contained within
the circuit board configuration files, the system attempts to allocate the
common computer resources required by each circuit board based on the
primary or default resource requirements set forth in each circuit board's
configuration file. And, overlapping manufacturer default resource
requirement may result in resource allocation conflict; and then, the
system attempts to resolve conflicts by determining if the conflicting
request may be assigned an alternate resource, as specified in the circuit
board configuration file. The system stores the resource allocation
information as part of a system configuration file which may then be used
when the system is rebooted. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5257387 |
|
|
Computer implemented method and apparatus for dynamic and automatic
configuration of a computer system and circuit boards including
computer resource allocation conflict resolution |
|
|
|
|
|
| Publication Date |
October 26, 1993 |
|
|
|
|
|
| Filing Date |
September 5, 1989 |
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
This is a continuation-in-part of copending application Ser. No. 293,315,
filed Jan. 4, 1989, which is a continuation-in-part of copending
application Ser. No. 242,734, filed Sep. 9, 1988, now abandoned. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5161102 Griffin
Nov,1992 |      Your vote accepted [0 after 0 votes] | | 5014193 Garner 710/10 May,1991 |      Your vote accepted [0 after 0 votes] | | 4992976 Yonekura
Feb,1991 |      Your vote accepted [0 after 0 votes] | | 4951248 Lynch 711/2 Aug,1990 |      Your vote accepted [0 after 0 votes] | | 4905182 Fitch 710/301 Feb,1990 |      Your vote accepted [0 after 0 votes] | | 4885482 Sharp 326/47 Dec,1989 |      Your vote accepted [0 after 0 votes] | | 4803623 Klashka 710/8 Feb,1989 |      Your vote accepted [0 after 0 votes] | | 4760553 Buckley 714/45 Jul,1988 |      Your vote accepted [0 after 0 votes] | | 4750136 Arpin 710/10 Jun,1988 |      Your vote accepted [0 after 0 votes] | | 4727475 Kiremidjian 710/104 Feb,1988 |      Your vote accepted [0 after 0 votes] | | 4701878 Gunkel 710/104 Oct,1987 |      Your vote accepted [0 after 0 votes] | | 4635192 Ceccon 710/301 Jan,1987 |      Your vote accepted [0 after 0 votes] | | 4622633 Ceccon 713/1 Nov,1986 |      Your vote accepted [0 after 0 votes] | | 4590557 Lillie 713/1 May,1986 |      Your vote accepted [0 after 0 votes] | | 4590556 Berger 713/1 May,1986 |      Your vote accepted [0 after 0 votes] | | 4589063 Shah 710/8 May,1986 |      Your vote accepted [0 after 0 votes] | | 4562535 Vincent 710/104 Dec,1985 |      Your vote accepted [0 after 0 votes] | | 4403303 Howes 703/27 Sep,1983 |      Your vote accepted [0 after 0 votes] | | 4250563 Struger 710/63 Feb,1981 |      Your vote accepted [0 after 0 votes] | | 4070704 Calle 713/100 Jan,1978 |      Your vote accepted [0 after 0 votes] | | 4014005 Fox 710/317 Mar,1977 |      Your vote accepted [0 after 0 votes] | | 3787816 Hauck 714/3 Jan,1974 |      Your vote accepted [0 after 0 votes] | | 3680052 Arulpragasam 710/104 Jul,1972 |      Your vote accepted [0 after 0 votes] | | 3675083 White 361/683 Jul,1972 |      Your vote accepted [0 after 0 votes] | | 5056060 Fitch 710/3 Dec,1969 |      Your vote accepted [0 after 0 votes] | | 4931923 Fitch 710/104 Dec,1969 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
Claims  |
|
|
We claim:
1. For use with a computer system that provides for circuit boards to be
interchangeably inserted in a plurality of system slot locations, with the
circuit boards having the capability to be configured to utilize one or
more common computer resources, the common computer resources comprising
slot locations, interrupt request lines, direct memory access channels,
input/output port addresses and memory address ranges, a method for
dynamically and automatically configuring the computer system and the
circuit boards without user intervention comprising the computer
implemented steps of:
determining based upon a configuration of each of said circuit boards the
common computer resources capable of being utilized by the circuit boards
to be installed in the computer system;
allocating the common computer resources to be utilized by the circuit
boards based on said determination of the common computer resources
capable of being utilized by the circuit boards to be installed in the
computer system;
detecting conflicts as to the common computer resources allocated to the
circuit boards to be installed in the computer system;
resolving conflicts as to the common computer resources to be utilized by
the circuit boards to be installed in the computer system and
re-allocating the common computer resources based upon said resolution of
said common computer resource conflicts; and
storing configuration information as part of a system configuration for
each of the circuit boards and the computer system based on said
allocation of the common computer resources to be utilized by the circuit
boards.
2. The method of claim 1, further including the computer implemented step
of determining values for initializing selected circuit board operational
features and storing the circuit board and the computer system
configuration information based on said initialization values.
3. The method of claim 1, further including the computer implemented step
of determining the slot location in which a circuit board is inserted and
storing said circuit board configuration information based on said slot
location.
4. The method of claim 1, wherein the computer implemented step of
determining the common computer resources capable of being utilized by the
circuit boards to be installed in the computer system includes the
computer implemented steps of:
identifying the circuit boards to be installed in the computer system; and
obtaining information on the common computer resources capable of being
utilized by said identified circuit boards from a source of configuration
information.
5. The method of claim 1, wherein the computer implemented step of
determining the common computer resources includes utilizing a circuit
board configuration file format for indicating the common computer
resources capable of being utilized by the circuit board and for
indicating the identification of the circuit board.
6. The method of claims 1, 4, or 5, wherein the computer implemented step
of determining the common computer resources capable of being utilized by
the circuit boards to be installed in the computer system includes
utilizing a circuit board configuration file having various statements
which follow a defined configuration file format for indicating the common
computer resources capable of being utilized by the circuit boards.
7. The method of claim 4, wherein the computer implemented step of
determining the common computer resources capable of being utilized by the
circuit boards to be installed in the computer system includes the
computer reading said circuit board configuration information from a mass
storage device.
8. The method of claim 4, wherein the computer implemented step of
determining the common computer resources capable of being utilized by the
circuit boards to be installed in the computer system includes the
computer reading said circuit board configuration information from a
battery-powered CMOS random access memory.
9. The method of claim 4, wherein the computer implemented step of
determining the common computer resources capable of being utilized by the
circuit boards to be installed in the computer system includes the
computer reading a circuit board configuration file, said configuration
file having various statements which follow a defined file format and
creating a sorted array of said statements from all of said circuit board
configuration files for all of the circuit boards to be installed in the
computer system in a statement hierarchical order.
10. The method of claim 9, wherein the computer implemented step of
detecting conflicts as to the common computer resources allocated to the
circuit boards to be installed in the computer system further includes the
computer implemented steps of:
determining whether a requested common computer resource has been
previously allocated to another circuit board, thereby creating a conflict
resource request;
identifying said circuit board configuration film statement containing said
conflicting resource request, known as a conflicting allocation; and
identifying said circuit board configuration file statement to which the
requested common computer resource was previously allocated, known as a
prior allocation.
11. The method of claim 10, wherein the computer implemented step of
identifying said circuit board configuration files containing said
conflicting and prior allocations further includes the computer
implemented steps of:
identifying said circuit board configuration file statement which
references said conflicting allocation, known as a conflicting allocation
parent;
identifying said circuit board configuration file statement which
references said conflicting allocation parent, known as a conflicting
allocation grandparent;
identifying said circuit board configuration file statement which
references said prior allocation, know as a prior allocation parent; and
identifying said circuit board configuration file statement which
references said prior allocation parent, known as a prior allocation
grandparent.
12. The method of claim 11, wherein the computer implemented step of
resolving said conflicts includes the computer implemented steps of:
determining if an alternate common computer resource is specified for said
conflicting allocation; and
allocating said alternate common computer resource to said conflicting
allocation when an alternate common computer resource is specified.
13. The method of claim 12, wherein the computer implemented step of
resolving said conflicts includes the computer implemented steps of:
determining if an alternate common computer resource is specified for said
conflicting allocation parent; and
allocating said alternate common computer resource to said conflicting
allocation parent when an alternate common computer resource is specified.
14. The method of claim 13, wherein the computer implemented step of the
computer resolving said conflicts includes the computer implemented steps
of:
determining if an alternate common computer resource is specified for said
conflicting allocation grandparent; and
allocating said alternate common computer resource to said conflicting
allocation grandparent when an alternate common computer resource is
specified.
15. The method of claim 11, wherein the computer implemented step of
resolving said conflicts further includes the computer implemented steps
of:
determining if an alternate common computer resource is specified for said
prior allocation; and
allocating said alternate common computer resource to said prior allocation
when an alternate common computer resource is specified.
16. The method of claim 15, wherein the computer implemented step of
resolving said conflicts includes the computer implemented steps of:
determining if an alternate common computer resource is specified for said
prior allocation parent; and
allocating said alternate common computer resource to said prior allocation
parent when an alternate common computer resource is specified.
17. The method of claim 16, wherein the computer implemented step of
resolving said conflicts includes the computer implemented steps of:
determining if an alternate common computer resource is specified for said
prior allocation grandparent; and
allocating said alternate common computer resource to said prior allocation
grandparent when an alternate common computer resource is specified.
18. The method of claim 11, wherein the computer implemented step of
resolving said conflicts includes the computer implemented steps of:
determining if said conflicting allocation and said prior allocation, said
prior allocation parent or said prior allocation grandparent are capable
of sharing said requested common computer resource; and
allocating said requested common computer resource to said conflicting
allocation when sharing is specified.
19. The method of claim 18, wherein the computer implemented step of
resolving said conflicts includes the computer implemented steps of:
determining if said conflicting allocation parent and said prior
allocation, said prior allocation parent or said prior allocation
grandparent are capable of sharing said requested common computer
resource; and
allocating said requested common computer resource to said conflicting
allocation parent when sharing is specified.
20. The method of claim 19, wherein the computer implemented step of
resolving said conflicts includes the computer implemented steps of:
determining if said conflicting allocation grandparent and said prior
allocation, said prior allocation parent or said prior allocation
grandparent are capable of sharing said requested common computer
resource; and
allocating said requested common computer resource to said conflicting
allocation grandparent when sharing is specified.
21. The method of claims 1 or 4, further including the computer implemented
step of displaying the common computer resources capable of being utilized
by the circuit boards to be installed in the computer system.
22. The method of claims 1, 2, 3, 4, or 5, wherein the computer implemented
step of storing said configuration information includes storing said
configuration information as a file on a mass storage device.
23. The method of claims 1, 2, 3, 4, or 5, wherein the computer implemented
step of storing said configuration information includes storing said
configuration information in battery-powered CMOS random access memory in
the computer system and in a mass storage device file.
24. The method of claim 11, wherein the computer implemented step of
resolving said conflicts includes the computer implemented steps of:
determining if said circuit board configuration file containing said
conflicting allocation specifies said conflicting allocation is capable of
being disabled; and
disabling said conflicting allocation when disabling is specified.
25. The method of claim 24, wherein the computer implemented step of
resolving said conflicts includes the computer implemented steps of:
determining if said circuit board configuration file containing said
conflicting allocation parent specifies said conflicting allocation parent
is capable of being disabled; and
disabling said conflicting allocation parent when disabling is specified.
26. The method of claim 25, wherein the computer implemented step of
resolving said conflicts includes the computer implemented steps of:
determining if said circuit board configuration file containing said
conflicting allocation grandparent specifies said conflicting allocation
grandparent is capable of being disabled; and
disabling said conflicting allocation grandparent when disabling is
specified.
27. The method of claim 11, wherein the computer implemented step of
resolving said conflicts includes the computer implemented steps of:
determining if said circuit board configuration file containing said prior
allocation specifies said prior allocation is capable of being disabled;
and
disabling said prior allocation when disabling is specified.
28. The method of claim 27, wherein the computer implemented step of
resolving said conflicts includes the computer implemented steps of:
determining if said circuit board configuration file containing said prior
allocation parent specifies said prior allocation parent is capable of
being disabled; and
disabling said prior allocation parent when disabling is specified.
29. The method of claim 28, wherein the computer implemented step of
resolving said conflicts includes the computer implemented steps of:
determining if said circuit board configuration file containing said prior
allocation grandparent specifies said prior allocation grandparent is
capable of being disabled; and
disabling said conflicting allocation grandparent when disabling is
specified.
30. The method of claim 11, wherein the computer implemented step of
resolving said conflicts further includes not allocating the common
computer resources to be utilized by said conflicting allocation, thereby
deactivating the circuit board corresponding to said circuit board
configuration file which includes said conflicting allocation.
31. The method of claim 30, further including the computer implemented step
of displaying the deactivation of circuit boards installed in the computer
system.
32. The method of claim 1, further including the computer implemented step
of system displaying the common computer resources allocated to the
circuit boards to be installed in the computer system.
33. An apparatus for dynamically and automatically configuring a computer
system without user intervention that provides for circuit boards to be
interchangeably inserted in a plurality of computer system slot locations,
with the circuit boards having the capability to be configured to utilize
one or more common computer resources, the common computer resources
comprising slot locations, interrupt request lines, direct memory access
channels, input/output port addresses and memory address ranges,
comprising:
means for determining based upon a configuration of each of said circuit
boards the common computer resources capable of being utilized by the
circuit boards to be installed in the computer system;
means for allocating the common computer resources capable of being
utilized by the circuit boards to be installed in the computer system
based on said determination of the common computer resources capable of
being utilized by the circuit boards;
means for detecting conflicts as to the common computer resources allocated
to the circuit boards to be installed in the computer system;
means for resolving said conflicts as to the common computer resources
allocated to the circuit boards to be installed in the computer system and
re-allocating the common computer resources to the circuit boards based
upon said resolution of said common computer resource conflicts; and
means for storing configuration information as part of a system
configuration for each of the circuit boards to be installed in the
computer system based on said allocation of the common computer resources.
34. The apparatus of claim 33, further including means for displaying the
common computer resources allocated to the circuit boards installed in the
computer system.
35. The apparatus of claim 33, including means for determining values for
initializing selected circuit board operational features and storing said
configuration information based on said initialization values.
36. The apparatus of claim 33, including means for determining the computer
system slot location in which a circuit board is inserted and storing said
configuration information based on said slot location.
37. The apparatus of claim 33, wherein said means for determining the
common computer resources capable of being utilized by the circuit boards
to be installed in the computer system includes:
means for identifying the circuit boards to be installed in the computer
system; and
means for obtaining information on the common computer resources capable of
being utilized by the identified circuit boards from a source of
configuration information.
38. The apparatus of claim 33, wherein said means for determining the
common computer resources capable of being utilized by the circuit boards
to be installed in the computer system includes means for utilizing a
circuit board configuration file format for indicating the common computer
resources capable of being utilized by the circuit board and means for
indicating the identification of the circuit board.
39. The apparatus of claim 37, wherein said means for determining the
common computer resources capable of being utilized by the circuit boards
to be installed in the computer system includes the computer reading said
circuit board configuration information from a mass storage device.
40. The apparatus of claim 37, wherein said means for determining the
common computer resources capable of being utilized by the circuit boards
to be installed in the computer system includes the computer reading said
circuit board configuration information from a battery-powered CMOS random
access memory.
41. The apparatus of claims 33, 37, or 38, wherein said means for
determining the common computer resources capable of being utilized by the
circuit boards to be installed in the computer system includes the
computer reading said circuit board configuration file, said configuration
file having various statements which follow a defined configuration file
format for indicating the common computer resources capable of being
utilized by the circuit boards.
42. The apparatus of claims 33, 35, 36, 37 or 38, wherein said means for
storing said configuration information includes storing said configuration
information as a file on a mass storage device.
43. The apparatus of claims 33, 35, 36, 37 or 38, wherein said means for
storing said configuration information in battery-powered CMOS random
access memory in the computer system and in a mass storage device file.
44. The apparatus of claim 37, wherein said means for determining the
common computer resources capable of being utilized by the circuit boards
to be installed in the computer system includes the computer reading a
circuit board configuration file, said configuration file having various
statements which follow a defined file format and the computer system
creating a sorted array of said statements from all of said circuit board
configuration files for all of the circuit boards to be installed in the
computer system in a statement hierarchical order.
45. The apparatus of claim 44, wherein said means for detecting said
conflicts as to the common computer resources allocated to the circuit
boards to be installed in the computer system further includes:
means for determining whether the requested common computer resource has
been previously allocated to another circuit board, thereby creating a
conflicting resource request;
means for identifying said circuit board configuration file containing said
conflicting resource request, known as a conflicting allocation; and
means for identifying said circuit board configuration file to which the
common computer resource to be utilized was previously allocated, known as
a prior allocation.
46. The apparatus of claim 45, wherein said means for identifying said
circuit board configuration files containing said conflicting and said
prior allocations further includes:
means for identifying said circuit board configuration file statement which
references said conflicting allocation, known as a conflicting allocation
parent;
means for identifying said circuit board configuration file statement which
references said conflicting allocation parent, known as a conflicting
allocation grandparent;
means for identifying said circuit board configuration file statement which
references said prior allocation, known as a prior allocation parent; and
means for identifying said circuit board configuration file statement which
references said prior allocation parent, known as a prior allocation
grandparent.
47. The apparatus of claim 46, wherein said means for resolving said
conflicts includes:
means for determining if an alternate common computer resource is specified
for said conflicting allocation; and
means for allocating said alternate common computer resource to said
conflicting allocation when an alternate common computer resource is
specified.
48. The apparatus of claim 47, wherein said means for resolving said
conflicts includes:
means for determining if an alternate common computer resource is specified
for said conflicting allocation parent; and
means for allocating said alternate common computer resource to said
conflicting allocation parent when an alternate common computer resource
is specified.
49. The apparatus of claim 48, wherein said means for resolving said
conflicts includes:
means for determining if an alternate common computer resource is specified
for said conflicting allocation grandparent; and
means for allocating said alternate common computer resource to said
conflicting allocation grandparent when an alternate common computer
resource is specified.
50. The apparatus of claim 46, wherein said means for resolving said
conflicts further includes:
means for determining if an alternate common computer resource is specified
for said prior allocation; and
means for allocating said alternate common computer resource to said prior
allocation when an alternate common computer resource is specified.
51. The apparatus of claim 50, wherein said means for resolving said
conflicts includes:
means for determining if an alternate common computer resource is specified
for said prior allocation parent; and
means for allocating said alternate common computer resource to said prior
allocation parent when an alternate common computer resource is specified.
52. The apparatus of claim 51, wherein said means for resolving said
conflicts includes:
means for determining if an alternate common computer resource is specified
for said prior allocation grandparent; and
means for allocating said alternate common computer resource to said prior
allocation grandparent when an alternate common computer resource is
specified.
53. The apparatus of claim 46, wherein said means for resolving said
conflicts includes:
means for determining if said conflicting allocation and said prior
allocation, said prior allocation parent or said prior allocation
grandparent are capable of sharing said requested common computer
resource; and
means for allocating said requested common computer resource to said
conflicting allocation when sharing is specified.
54. The apparatus of claim 53, wherein said means for resolving said
conflicts includes:
means for determining if said conflicting allocation parent and said prior
allocation, said prior allocation parent or said prior allocation
grandparent are capable of sharing said requested common computer
resource; and
means for allocating said requested common computer resource to said
conflicting allocation parent when sharing is specified.
55. The apparatus of claim 54, wherein said means for resolving said
conflicts includes:
means for determining if said conflicting allocation grandparent and said
prior allocation, said prior allocation parent or said prior allocation
grandparent are capable of sharing said requested common compute | | |