|
|
|
| United States Patent | 5675748 |
| Link to this page | http://www.wikipatents.com/5675748.html |
| Inventor(s) | Ross; Patrick Delaney (Sunnyvale, CA) |
| Abstract | A hardware configuration system for enabling automatic configuration of
hardware in a computer system. First, at system ipl, the particular
computer system is identified based on its identification number. Then, a
specific software component object is instantiated based on the computer
system. All of the details of the standard computer system are predefined
in the software component object based on supported hardware and
peripherals for the specific hardware. Then a test is performed to
determine if additional hierarchies are present. Each hierarchy has an
associated identification number. If so, then for each hierarchy, the
hierarchy is processed as discussed above. The result is a set of
instantiated objects completely specifying the hardware environment. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5675748 |
|
|
Method and apparatus for automatically configuring computer system
hardware and software |
|
|
|
|
|
| Publication Date |
October 7, 1997 |
|
|
|
|
|
| Filing Date |
March 8, 1996 |
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
This is a continuation of application Ser. No. 08/171,542 filed on Dec. 21,
1993, 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 | 5386567 Lien 713/100 Jan,1995 |      Your vote accepted [0 after 0 votes] | | 5327553 Jewett
Jul,1994 |      Your vote accepted [0 after 0 votes] | | 5297262 Cox
Mar,1994 |      Your vote accepted [0 after 0 votes] | | 5287531 Rogers, Jr. 710/109 Feb,1994 |      Your vote accepted [0 after 0 votes] | | 5265238 Canova, Jr. 713/1 Nov,1993 |      Your vote accepted [0 after 0 votes] | | 5257387 Richek 713/600 Oct,1993 |      Your vote accepted [0 after 0 votes] | | 5257350 Howard 345/501 Oct,1993 |      Your vote accepted [0 after 0 votes] | | 5249270 Stewart 709/222 Sep,1993 |      Your vote accepted [0 after 0 votes] | | 5237688 Calvert 717/121 Aug,1993 |      Your vote accepted [0 after 0 votes] | | 5181162 Smith 715/530 Jan,1993 |      Your vote accepted [0 after 0 votes] | | 5161102 Griffin
Nov,1992 |      Your vote accepted [0 after 0 votes] | | 5151987 Abraham 714/20 Sep,1992 |      Your vote accepted [0 after 0 votes] | | 5136705 Stubbs 714/27 Aug,1992 |      Your vote accepted [0 after 0 votes] | | 5133075 Risch 707/201 Jul,1992 |      Your vote accepted [0 after 0 votes] | | 5125091 Staas, Jr. 718/101 Jun,1992 |      Your vote accepted [0 after 0 votes] | | 5119475 Smith 715/866 Jun,1992 |      Your vote accepted [0 after 0 votes] | | 5093914 Coplien 717/129 Mar,1992 |      Your vote accepted [0 after 0 votes] | | 5075848 Lai
Dec,1991 |      Your vote accepted [0 after 0 votes] | | 5060276 Morris 382/151 Oct,1991 |      Your vote accepted [0 after 0 votes] | | 5050090 Golub 700/217 Sep,1991 |      Your vote accepted [0 after 0 votes] | | 5041992 Cunningham 345/641 Aug,1991 |      Your vote accepted [0 after 0 votes] | | 5014193 Garner 710/10 May,1991 |      Your vote accepted [0 after 0 votes] | | 4953080 Dysart 707/103R Aug,1990 |      Your vote accepted [0 after 0 votes] | | 4891630 Friedman 345/156 Jan,1990 |      Your vote accepted [0 after 0 votes] | | 4885717 Beck 717/125 Dec,1989 |      Your vote accepted [0 after 0 votes] | | 4821220 Duisberg 703/2 Apr,1989 |      Your vote accepted [0 after 0 votes] | | 4660141 Ceccon 710/9 Apr,1987 |      Your vote accepted [0 after 0 votes] | | 4649514 Berger 710/301 Mar,1987 |      Your vote accepted [0 after 0 votes] | | 4622633 Ceccon 713/1 Nov,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] | | 5367640 Hamilton 710/9 Dec,1969 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
Having thus described our invention, what we claim as new and desire to
secure as letters patent is:
1. An apparatus for configuring a computer system in response to a
configuration request, the computer system having a memory means and a
plurality of hardware components connected in a hardware hierarchy having
a root component, a plurality of first lower level components and at least
one second lower level component, the apparatus comprising:
(a) means for storing in the memory means class information defining a
plurality of machine classes, each of the plurality of machine classes
corresponding to one of the plurality of hardware components;
(b) first means responsive to the configuration request and to an
identification number stored in the computer system for instantiating for
the root component a machine-specific object from a first one of the
plurality of machine classes;
(c) means using the machine-specific object to configure the mot component
and to generate an identity for each of the plurality of first lower level
components;
(d) second means responsive to the identity for instantiating a hardware
module object from one of the machine classes for each of the plurality of
first lower level components;
(e) means using each of the hardware module objects to configure the
corresponding first lower level component and to generate a hardware
signature for the second lower level component; and
(f) third means responsive to the hardware signature for instantiating a
hardware module object from one of the machine classes for the second
lower level component;
(g) means for storing in the memory class information defining a plurality
of software classes, each of the plurality of software classes
corresponding to one of the plurality of hardware components;
(h) means responsive to the configuration request cooperating with the
first second and third instantiating means for instantiating a software
object for each of the machine-specific object and hardware module
objects, the software objects being arranged in a software hierarchical
tree structure extending from a root software object; and
(i) means in the root software object responsive to a hardware interrupt
generated by one of the hardware components for passing the hardware
interrupt down the hierarchical tree structure to a software object
corresponding to the hardware component.
2. The apparatus as recited in claim 1, further comprising:
(j) object-oriented processing means for instantiating a software object
for each hardware module object instantiated by the second and the third
instantiating means.
3. The apparatus as recited in claim 2, wherein the second instantiating
means further comprises means for identifying one of the plurality of
first lower level components based on an identification number stored in
the one first lower level component.
4. The apparatus as recited in claim 3, wherein each of the plurality of
hardware components comprises means for storing an identification number
in logic gates located on the each hardware component.
5. The apparatus as recited in claim 4, wherein the second instantiating
means creates:
a first one of the hardware module objects to represent a monitor;
a second one of the hardware module objects to represent a printer;
a third one of the hardware module objects to represent a keyboard;
a fourth one of the hardware module objects to represent a pointing device;
a fifth one of the hardware module objects to represent a modem;
a sixth one of the hardware module objects to represent a card;
a seventh one of the hardware module objects to represent a disk drive;
an eighth one of the hardware module objects to represent a scanner; and
a ninth one of the hardware module objects to represent a facsimile.
6. The apparatus as recited in claim 1, wherein the hardware hierarchy has
a plurality of root components corresponding to processors and the
apparatus further comprises means for configuring each of the root
components.
7. The apparatus as recited in claim 1, wherein the hardware hierarchy has
a plurality of root components corresponding to computer network nodes end
the apparatus further comprises means for configuring each of the root
components.
8. The apparatus as recited in claim 1, wherein the second lower level
component has further hardware components connected thereto and the
apparatus further comprises means for processing the further hardware
components.
9. A method for configuring a computer system in response to a
configuration request, the computer system having a memory means and a
plurality of hardware components connected in a hardware hierarchy having
a root component, a plurality of first lower level components and at least
one second lower level component, the method comprising the steps of:
(a) storing in the memory means class information defining a plurality of
machine classes, each of the plurality of machine classes corresponding to
one of the plurality of hardware components;
(b) instantiating for the root component, a machine-specific object from a
first one of the plurality of machine classes based on an identification
number stored in the computer system;
(c) using the machine-specific object to configure the root component and
to generate an identity for each of the plurality of first lower level
components;
(d) instantiating a hardware module object from one of the machine classes
for each of the plurality of first lower level components using the first
lower level component identities;
(e) using each of the hardware module objects to configure the
corresponding first lower level component and to generate a hardware
signature for the second lower level component; and
(f) instantiating a hardware module object from one of the machine classes
for the second lower level component using the hardware signature;
(g) storing in the memory class information defining a plurality of
software classes, each of the plurality of software classes corresponding
to one of the plurality of hardware components;
(h) instantiating a software object for each of the machine-specific object
and hardware module objects, the software objects being arranged in a
software hierarchical tree structure extending from a root software
object; and
(i) passing a hardware interrupt down the hierarchical tree structure to a
software object corresponding to the hardware component.
10. The method as recited in claim 9, further comprising the step of:
(j) instantiating a software object for each hardware module object
instantiated in steps (d) and (f).
11. The method as recited in claim 9, wherein step (c) comprises the step
of:
(c1) identifying one of the plurality of first lower level components based
on an identification number stored in the one first lower level component.
12. The method as recited in claim 11 further comprising the step of:
(k) storing the identification number in logic gates located on the each
hardware component.
13. The method as recited in claim 9, wherein the hardware hierarchy has a
plurality of root component corresponding to multiple processors and the
method further comprises the step of configuring each of the root
components.
14. The method as recited in claim 9, wherein the hierarchy has a plurality
of root components corresponding to computer network nodes and the method
further comprises the step of configuring each of the root components.
15. A computer program product comprising:
a computer usable medium having a computer program thereon for
automatically configuring a computer system having a plurality of hardware
components connected in a hardware hierarchy having a root component, a
plurality of first lower level components and at least one second lower
level component, the computer program including:
(a) class information defining a plurality of machine classes, each of the
plurality of machine classes corresponding to one of the plurality of
hardware components and having code defining a first function for
configuring the one hardware component and a second function for
identifying hardware components connected to the one hardware component;
(b) first means for instantiating for the root component a machine-specific
object from a first one of the plurality of machine classes from an
identification number stored on the computer system;
(c) means for calling the first function in the machine-specific object to
configure the root component and for calling the second function in the
machine-specific object to generate an identity for each of the plurality
of first lower level components;
(d) second means responsive to the identity for instantiating a hardware
module object from one of the machine classes for each of the plurality of
first lower level components;
(e) means for calling the first function in each of the hardware module
objects to configure the corresponding first lower level component and for
calling the second function in each of the hardware module objects to
generate a hardware signature for the second lower level component; and
(f) third means responsive to the hardware signature for instantiating a
hardware module object from one of the machine classes for the second
lower level component;
(g) means for storing in the memory class information defining a plurality
of software classes, each of the plurality of software classes
corresponding to one of the plurality of hardware components;
(h) means responsive to the configuration request and cooperating with the
first second and third instantiating means for instantiating a software
object for each of the machine-specific object and hardware module
objects, the software objects being arranged in a software hierarchical
tree structure extending from a root software object; and
(i) means in the root software object responsive to a hardware interrupt
generated by one of the hardware components for passing the hardware
interrupt down the hierarchical tree structure to a software object
corresponding to the hardware component.
16. The computer program product of claim 15 wherein the class information
includes a machine class corresponding to the root component and having
data defining a particular baseline computer system having a type of input
bus included in the baseline computer system; data defining a type of
output bus included in the baseline computer system; and data defining
hardware devices included in the baseline computer system. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention is generally directed to configuring hardware in a
computer system, and more particularly to a system and method for
automatically configuring hardware in a computer system.
2. Related Art
The phrase "hardware configuration" has many meanings. In the user domain
of a computer system, hardware configuration refers to configuring
computer components which are generally visible to users (this is called
user-oriented hardware configuration). This includes tasks such as setting
the double-click speed of a mouse, formatting a disk drive, connecting a
modem to a serial port, or changing an existing connection.
In the input/output (I/O) domain of a computer system, hardware
configuration refers to low-level services which control or regulate
access to integrated circuits (ICs) and other low-level hardware resources
(this is called I/O hardware configuration).
The present invention is primarily directed to automatic, low-level,
hardware configuration, but can be applied to other types of hardware
configuration, such as I/O hardware configuration.
Conventional computer systems distribute hardware configuration tasks among
many different applications. For example, on the well-known Apple
Macintosh computer, the Chooser application must be used to connect a
StyleWriter printer to a modem port. To connect a modem to the modem port,
a communication application (e.g. MacTerminal) must be used. To set up an
Apple SCSI drive, the "Apple HD SC Setup" application must be used. To set
the double-click speed of the mouse, the mouse control panel in the
control panels folder must be used. As will be appreciated, it is
difficult for users to keep track of where these configuration
applications are maintained. Also, it is difficult for users to remember
which configuration applications are required for the configuration of
particular resources.
Users must inform the computer of the location of some devices (that is,
tell the computer how and where the devices are connected to the
computer). These devices are called manually connected devices or manually
configured devices, and require special attention with regard to hardware
configuration.
When a manually connected device is attached to a computer, the computer
cannot sense its presence. As an aspect of hardware configuration, some
entity in the computer must be told (by a user) what kind of device it is
and where it is connected.
On the well-known Apple Macintosh System 7, the entity that is told depends
on the type of the device in question. For example, the "Comm Toolbox" is
used for modems and the Chooser is used for printers. Furthermore, the
Comm Toolbox is port centric, not device centric (that is, the information
saved by a document is about a port, not a device). If a user moves his
modem to a different port, all of the terminal documents using that modem
will not properly transmit when asked to do so, because they will expect
the modem to be connected to the original port.
Thus, what is required is a system and method for hardware configuration
that does not suffer from the problems discussed above.
SUMMARY OF THE INVENTION
The present invention is directed to a hardware configuration system for
enabling automatic configuration of hardware in a computer system. First,
at system Initial Program Load (IPL), the particular computer system is
identified based on its identification number. Then, a specific software
component object is instantiated based on the computer system. All of the
details of the standard computer system are predefined in the software
component object based on supported hardware and peripherals for the
specific hardware. Then a test is performed to determine if additional
hierarchies are present. Each hierarchy has an associated identification
number. If so, then for each hierarchy, the hierarchy is processed as
discussed above. The result is a set of instantiated objects completely
specifying the hardware environment.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a computer system in which the hardware
configuration system in accordance with a preferred embodiment operates;
FIG. 2 is a class diagram of a hardware configuration framework according
to a preferred embodiment in accordance with a preferred embodiment;
FIG. 3 is a diagram used to illustrate the operation of a
THardwareConfiguration object in accordance with a preferred embodiment;
FIG. 4 is a diagram used to illustrate the operation of a THardwareModule
object in accordance with a preferred embodiment;
FIG. 5 is a diagram used to illustrate the operation of a
THardwareInterface object in accordance with a preferred embodiment;
FIG. 6 is a diagram used to illustrate the operation of a
THardwareInterfaceIdentifier object in accordance with a preferred
embodiment;
FIGS. 7A-7E are diagrams used to illustrate the manner in which a preferred
embodiment operates during an example hardware configuration scenario; and
FIG. 8 is a block diagram of a network of processors in accordance with the
subject invention.
DETAILED DISCUSSION OF THE PREFERRED EMBODIMENTS
The present invention is directed to an object-oriented system and method
for configuring the hardware of a computer system. Since it is
object-based, the present invention will be described herein using
object-oriented terms and concepts. Such object-oriented terms and
concepts are well known, and are discussed in many publicly available
documents, such as Object-Oriented Design by Grady Booch (Benjamin
Cummings 1991).
FIG. 1 illustrates a high-level block diagram of a computer system 102 in
which the object-oriented configuration system in accordance with a
preferred embodiment operates. It should be noted that the present
invention alternatively encompasses the configuration system in
combination with the computer system 102.
The computer system 102 includes hardware components 104, such as a random
access memory (RAM) 108 and a central processing unit (CPU) 106. It should
be noted that the CPU 106 may represent a single processor or multiple
processors operating in parallel.
The computer system 102 also includes peripheral devices which are
connected to the hardware components 104. These peripheral devices include
an input device or devices (such as a keyboard, a mouse, a light pen,
etc.) 110, a data storage device 112 (such as a hard disk or floppy disk),
a display 114, a printer 116, and a network adapter 118. The computer
system 102 could be connected to other peripheral devices.
The computer system 102 also includes an operating system 122, and may
include microinstruction code 120 (also called firmware). The operating
system 122 may represent a substantially full-function operating system,
such as the Disk Operating System (DOS) and the UNIX operating system. The
operating system 122 may alternatively represent other types of operating
systems. Preferably, the operating system 122 represents a limited
functionality operating system, such as the Mach micro-kernel developed by
Carnegie Mellon University (CMU), which is well-known to those skilled in
the relevant art.
In a preferred embodiment in accordance with a preferred embodiment, the
computer system 102 is an International Business Machines (IBM) computer
or an IBM-compatible computer. In an alternate embodiment in accordance
with a preferred embodiment, the computer system 102 is | | |