WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for automatically configuring computer system hardware and software    
United States Patent5675748   
Link to this pagehttp://www.wikipatents.com/5675748.html
Inventor(s)Ross; Patrick Delaney (Sunnyvale, CA)
AbstractA 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 Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5675748
Method and apparatus for automatically configuring computer system

     hardware and software - US Patent 5675748 Drawing
Method and apparatus for automatically configuring computer system hardware and software
Inventor     Ross; Patrick Delaney (Sunnyvale, CA)
Owner/Assignee     Object Technology Licensing Corp. (Cupertino, CA)
Patent assignment
All assignments
Publication Date     October 7, 1997
Application Number     08/608,326
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     March 8, 1996
US Classification     710/104 713/1
Int'l Classification     G06F 015/16
Examiner     Harvey; Jack B.
Assistant Examiner     Myers; Paul R.
Attorney/Law Firm     Bookstein & Kudirka
Address
Parent Case     This is a continuation of application Ser. No. 08/171,542 filed on Dec. 21, 1993, now abandoned.
Priority Data    
USPTO Field of Search     395/651 395/652 395/653 395/284
Patent Tags     automatically configuring computer system hardware software
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5386567
Lien
713/100
Jan,1995

[0 after 0 votes]
5327553
Jewett

Jul,1994

[0 after 0 votes]
5297262
Cox

Mar,1994

[0 after 0 votes]
5287531
Rogers, Jr.
710/109
Feb,1994

[0 after 0 votes]
5265238
Canova, Jr.
713/1
Nov,1993

[0 after 0 votes]
5257387
Richek
713/600
Oct,1993

[0 after 0 votes]
5257350
Howard
345/501
Oct,1993

[0 after 0 votes]
5249270
Stewart
709/222
Sep,1993

[0 after 0 votes]
5237688
Calvert
717/121
Aug,1993

[0 after 0 votes]
5181162
Smith
715/530
Jan,1993

[0 after 0 votes]
5161102
Griffin

Nov,1992

[0 after 0 votes]
5151987
Abraham
714/20
Sep,1992

[0 after 0 votes]
5136705
Stubbs
714/27
Aug,1992

[0 after 0 votes]
5133075
Risch
707/201
Jul,1992

[0 after 0 votes]
5125091
Staas, Jr.
718/101
Jun,1992

[0 after 0 votes]
5119475
Smith
715/866
Jun,1992

[0 after 0 votes]
5093914
Coplien
717/129
Mar,1992

[0 after 0 votes]
5075848
Lai

Dec,1991

[0 after 0 votes]
5060276
Morris
382/151
Oct,1991

[0 after 0 votes]
5050090
Golub
700/217
Sep,1991

[0 after 0 votes]
5041992
Cunningham
345/641
Aug,1991

[0 after 0 votes]
5014193
Garner
710/10
May,1991

[0 after 0 votes]
4953080
Dysart
707/103R
Aug,1990

[0 after 0 votes]
4891630
Friedman
345/156
Jan,1990

[0 after 0 votes]
4885717
Beck
717/125
Dec,1989

[0 after 0 votes]
4821220
Duisberg
703/2
Apr,1989

[0 after 0 votes]
4660141
Ceccon
710/9
Apr,1987

[0 after 0 votes]
4649514
Berger
710/301
Mar,1987

[0 after 0 votes]
4622633
Ceccon
713/1
Nov,1986

[0 after 0 votes]
4589063
Shah
710/8
May,1986

[0 after 0 votes]
4562535
Vincent
710/104
Dec,1985

[0 after 0 votes]
5367640
Hamilton
710/9
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


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.
 Description Submit all comments and votes
 


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