WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Self configuring terminal which polls loop network and generates list of connected devices for use in selectively downloading control programs    
United States Patent5109484   
Link to this pagehttp://www.wikipatents.com/5109484.html
Inventor(s)Hughes; David R. (Raleigh, NC); Posey; Hollis P. (Cary, NC)
AbstractApparatus and method for defining I/O devices connected to terminals of a distributive data processing system and for downloading programs from a control computer into said terminals. A global listing containing identities of all devices that can be coupled to the terminal is prepared at each terminal. A configuration list of devices which are actually coupled to the terminal is derived from the global list. The configuration list is stored at the terminal and at the control computer. Thereafter, only programs that are required for controlling the devices that are actually coupled to the terminal are downloaded into the terminal.
   














 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 5109484
Self configuring terminal which polls loop network and generates list of

     connected devices for use in selectively downloading control programs - US Patent 5109484 Drawing
Self configuring terminal which polls loop network and generates list of connected devices for use in selectively downloading control programs
Inventor     Hughes; David R. (Raleigh, NC); Posey; Hollis P. (Cary, NC)
Owner/Assignee     International Business Machines Corporation (Armonk, NY)
Patent assignment
All assignments
Publication Date     April 28, 1992
Application Number     06/849,641
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     April 9, 1986
US Classification     709/222 709/228 709/251 710/16
Int'l Classification     G06F 013/22 G06F 003/14 G06F 013/38
Examiner     Lee; Thomas C.
Assistant Examiner     Coleman; Eric
Attorney/Law Firm     Cockburn; Joscelyn G.
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/200 MS File 364/900 MS File 340/825.08 370/90 370/86
Patent Tags     self configuring terminal which polls loop network generates list of connected devices selectively downloading control programs
   
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
4864492
Blakely-Fogel
706/45
Sep,1989

[0 after 0 votes]
4777330
Nakayashiki
178/69R
Oct,1988

[0 after 0 votes]
4766590
Hamada
370/407
Aug,1988

[0 after 0 votes]
4751648
Sears, III
702/6
Jun,1988

[0 after 0 votes]
4747100
Roach

May,1988

[0 after 0 votes]
4723208
Chadima, Jr.

Feb,1988

[0 after 0 votes]
4707825
Amstutz
370/384
Nov,1987

[0 after 0 votes]
4695946
Andreasen
714/31
Sep,1987

[0 after 0 votes]
4683531
Kelch
710/109
Jul,1987

[0 after 0 votes]
4683563
Rouse
370/224
Jul,1987

[0 after 0 votes]
4669044
Houser
709/213
May,1987

[0 after 0 votes]
4665501
Saldin
710/8
May,1987

[0 after 0 votes]
4639916
Boutterin
714/27
Jan,1987

[0 after 0 votes]
4595921
Wang
340/825.52
Jun,1986

[0 after 0 votes]
4570259
Ishii
370/458
Feb,1986

[0 after 0 votes]
4547851
Kurland
705/15
Oct,1985

[0 after 0 votes]
4545013
Lyon
714/712
Oct,1985

[0 after 0 votes]
4543626
Bean
709/201
Sep,1985

[0 after 0 votes]
4468750
Chamoff
709/251
Aug,1984

[0 after 0 votes]
4441160
Azcua
705/25
Apr,1984

[0 after 0 votes]
4403303
Howes
703/27
Sep,1983

[0 after 0 votes]
4360912
Metz
370/449
Nov,1982

[0 after 0 votes]
4354229
Davis
710/104
Oct,1982

[0 after 0 votes]
4268901
Subrizi
710/104
May,1981

[0 after 0 votes]
4194349
Lane
57/265
Mar,1980

[0 after 0 votes]
4195351
Barner
370/223
Mar,1980

[0 after 0 votes]
4177512
Moggia
710/46
Dec,1979

[0 after 0 votes]
4075693
Fox
710/104
Feb,1978

[0 after 0 votes]
4071908
Brophy
710/46
Jan,1978

[0 after 0 votes]
4070704
Calle
713/100
Jan,1978

[0 after 0 votes]
4055808
Holsinger
375/222
Oct,1977

[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 and desired to secure as Letters Patent is as follows:

1. In a distributive data processing system wherein a computer with an operating system having a boot load module is coupled through a loop communications network to a plurality of terminals and each terminal is connected by a serial channel to a plurality of I/O devices a method for providing an operating system within each terminal comprising the steps of:

(a) generating, at each terminal, with the boot load module a first list including identifying indicia for all devices that can be coupled to the terminal;

(b) transmitting a status message from the terminal to each of the devices recorded in said list;

(c) transmitting a response message to the terminal from a device that is active in response to receiving the status message;

(d) generating in said terminal a second list including the identifying indicia of only those devices that have responded to the status message;

(e) providing in said computer a plurality of program support modules, with each module including support programs that control a particular I/O device and indicia identifying the particular I/O device that it controls;

(f) transmitting from the computer to the loop communications network the plurality of program support modules;

(g) receiving and loading in the memory of said terminal only the program support modules whose identifying indicia matches identifying indicia in the second list.

2. In a distributive data processing system wherein a computer, having an operating system with a boot load driver module, is coupled through a loop communications network to a plurality of terminals and each terminal is connected by a serial channel to a plurality of I/O devices a method for providing an operating system within each terminal comprising the steps of:

(a) using the boot load driver module for generating at each terminal a first list including identifying indicia for all devices that can be coupled to the terminal;

(b) transmitting a status message from the terminal to each of the devices recorded in said list;

(c) transmitting a response message to the terminal from a device that is active in response to receiving the status message;

(d) generating in said terminal a second list including the identifying indicia of only those devices that have responded to the status message;

(e) providing in said computer a plurality of program support modules, with each module including support programs that control a particular I/O device and indicia identifying the particular I/O device that it controls;

(f) transmitting from the computer to the loop communications network the plurality of program support modules;

(g) receiving and loading in the memory of said terminal only the program support modules whose identifying indicia matches identifying indicia in the second list;

(h) displaying, to a user, a visual listing of devices which are connected to the terminal;

prompting the user to adjust and verify the correctness of the visually displayed list; and

storing at each terminal a copy of a verified list of devices that are connected to the terminal.

3. The method of claim 2 further including the steps of

transmitting the verified list to the computer; and

setting an indicator in said terminal thereby signifying that the operating system is loaded.

4. The method of claim 1 further including the steps of electronically erasing stored program support modules in the terminal;

requesting a complete program load from the computer; and

receiving and loading in the terminal only the program support modules that control active devices connected to said terminal.

5. A method for providing operating systems to processors of a data processing system comprising the steps of:

(a) arranging a hierarchical structure having a control processor with an operating system which includes a boot load module coupled by a loop communications network to a plurality of second order processors and each second order processor coupled through a second communications network to a plurality of third order processors with each third order processor designated to control an I/O device;

(b) generating, at each second order processor, with the boot load module a first list including an identifying indicia of all possible third order processors that can be connected to said each second order processor;

(c) transmitting a first message including the identifying indicia from said each second order processor to all third order processors recorded in said list;

(d) receiving and copying, at each attached third order processor, said message only if the identifying indicia matches that of the third order processor;

(e) transmitting to the second order processor a response message from each active third order processor whose identifying indicia was in the first message;

(f) generating, at each said second order processor, a second list including the identifying indicia of only the third order processors responding to the first message;

(g) issuing from each said second order processor to the control processor a message requesting said control processor to download program support modules, and

(h) loading, at each second order processor only those program support modules whose identifying indicia are recorded in the second list.

6. The method set forth in claim 5 wherein the identifying indicia includes an address for each third order processor.

7. In a data processing system arranged in a hierarchical structure with a control processor having an operating system with at least one boot load driver module coupled by a loop communications network to a plurality of second order processors and each second order processor coupled through a serial communications network to a plurality of third order processors with each third order processor designated to control an I/O device a method for providing an operating system in each second order processor comprising the steps of:

generating, at each second order processor, with the boot load driver module a first list including an address for each of all possible third order processors that can be connected to said second order processor;

transmitting a first message including the address from said each second order processor to all third order processors recorded in said list;

receiving and copying, at each third order processor, said message only if the address matches that of the third order processor;

transmitting to the second order processor a response message from each third order processor whose address was in the first message;

generating, at each said second order processor, a second list including addresses of only the third order processors responding to the first message;

requesting program support modules from the control processor;

loading, at each second order processor, only those programs which are required to control the attached third order processor;

displaying to a user a configuration table that includes said second list;

prompting the user to verify the configuration table;

storing a copy of a verified configuration table;

utilizing said verified configuration table for loading said second order processor; and

thereafter polling only third order processors whose addresses appear in the second list.

8. In a data processing system having

a control processor, with an operating system which includes a boot load module, coupled by a looped communications network to a plurality of second order processors and each second order processor coupled through a serial communications network to a plurality of third order processors which control I/O devices a device for providing an operating system within a second order processor comprising:

means, including the boot load module, for generating at each second order processor, a first list including an identity indicia of all possible third order processors that can be connected to said each second order processor;

means for transmitting a first message including the identity indicia from said each second order processor to all third order processors recorded in said list;

means for receiving and copying, at each attached third order processor, said message if the identity indicia matches that of the third order processor;

means, at each third order processor, for transmitting a response message to said second order processor;

means for generating, at each said second order processor, a second list including the identity indicia of only the third order processors responding to the first message;

means, at the control processor, for transmitting modules including identifying indicia for controlling the third order processor; and

means at the second order processor for receiving the modules and for correlating the identifying indicia on each module with the identifying indicia of each entry in the second list and loading only modules whose identifying indicia matches an identifying indicia in said second list.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to data processing systems in general and, more particularly, to methods for initial program loading (IPL) terminals in said data processing systems.

2. Prior Art

A typical data processing system usually includes a host computer which is coupled by a communications network to a plurality of terminals. Each terminal is connected to one or more I/O devices. Such I/O devices may include keyboards, printers, displays, etc. In order for the system to function satisfactorily, the host computer must know the system configuration. This means that the host computer must know the addresses of each terminal, controller and/or I/O devices connected to particular terminals. This information is used by the host computer to download programs into the controllers and/or the terminals. These programs provide the interface through which data can be exchanged between a terminal and an attached I/O device.

In the past, several techniques have been used to provide the host computer with information on the system configuration. In one such prior art technique the system configuration is defined manually, by an operator, at the host computer. The operator uses macro instructions to effectively build an operating system load image for each type of terminal to be loaded by the controller. The operating system is subsequently transferred to the terminals. Although the technique works well, it is time-consuming and laborious. It also requires a host computer and an experienced programmer to enter the configuration profiles.

Other techniques such as automatic address assignment of different stations of the network and entering a serial number into a remove device are set forth in U.S. Pat. Nos. 4,423,414 and 4,424,573, respectively.

SUMMARY OF THE INVENTION

It is therefore a general object of the present invention to provide a method which enables a terminal to determine its attached I/O devices and to download its operating systems for controlling operation of the terminal.

The self-configuration process is automatic and works as follows. At Initial Program Load (IPL) time a section of the operating system called "Boot Load Image" is downloaded into the terminal and prepares a poll list containing the addresses of all devices which can be attached to the terminal. The terminal then sequentially polls each device on the list. If a device is attached, it will respond with a message which indicates its presence. Devices that are not attached will not respond. Non-responding devices are striken from the list. Thus, a new poll list containing only addresses of attached (i.e., responding) devices is now available at the terminal).

Thereafter, a controller transmits, to all terminals attached to it, programming support for all possible devices (e.g., keyboard scanner, display, etc.) However, each terminal will only load those programs which are required to support its attached devices. Following the loading routine, the terminal will display or print a list of all attached devices and prompts an operator to verify that the list is correct. At this point the operator may notify (via an input sequence) the terminal that the listing is correct or modify the listing by adding and/or deleting devices. The verified configuration is stored at each terminal and an indicator that the terminal is configured is set. The configuration can also be transmitted to the controller and/or host computer for subsequent use. Thereafter, on each subsequent IPL, the terminal will select only the operator-approved program support which is required to control its attached devices. In one feature of the invention the "Boot Load Image" prepares a list of only a subset of all the possible devices that can be attached to the terminal. Preferably, the list contains the addresses of essential devices such as keyboards, printers, etc.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a schematic for a point of sale data processing system.

FIG. 2 shows a hardware configuration of a terminal connected to the system of FIG. 1.

FIG. 3 is a conceptual representation of a program structure for the terminal in FIG. 2.

FIGS. 4A and 4B show flow charts of the process which allows a terminal to self-configure.

DESCRIPTION OF THE PREFERRED EMBODIMENT

The present invention to be described hereinafter can be used to configure any data processing system. It works well with a point of sale data processing system and, as such, will be described in that environment. However, this should not be construed as a limitation on the scope of the present invention since it is well within the skills of one skilled in the art to make minor changes and adapt the teaching of the present invention to configure other types of data processing systems.

FIG. 1 shows a schematic of a point of sale data processing system. The data processing system includes a controller identified by numeral 10. Although any type of conventional computer can be used as the controller, in the preferred embodiment of this invention the controller is an IBM PC/AT. The PC/AT is a well-known computer and details will not be given. Suffice it to say the controller supplies disk services and host communications access to a plurality of terminals 12. The terminals are coupled through loop communications network 14 and loop adapter 16 to controller 10. File controller 18 interconnects controller 10 to a file facility identified by numeral 20. Data which is stored on the file facility 20 can be brought into controller 10 whenever it is needed. Host adapter 22 and communications link 24 interconnects controller 10 to a host computer (not shown).

Both controller 10 and terminals 12 are controlled by programs stored in their respective RAMs. Because the RAMs are volatile, the programs are permanently stored on a disk 20 in the controller. The controller acquires its program to operate by transferring it from the disk to its RAM. Likewise, the terminals acquire their operating programs from the controller over loop communications network 14.

In order to acquire their respective operating programs, each terminal performs a configuration routine in which it determines the I/O devices which are attached to it and downloads the appropriate programs for running (that is, operating the terminal). The controller 10 uses the well-known SDLC message format for communicating with the terminal. The SDLC message format is well known and as such, details will not be given in this application. However, if one is not familiar with the SDLC message format, an example of the well-known format can be found in U.S. Pat. No. 3,872,430. The program which is downloaded into the terminals is comprised of three distinctive load segments. The load segments include an operating system boot load which is common to every terminal and provides the terminal with the capability to load further unique code from the controller; loadable drivers which are modules of code which control specific devices such as keyboards, displays, printers, etc. and application program which determines the operation of the terminal as it proceeds through each transaction.

FIG. 2 shows a terminal hardware configuration. The configuration includes microprocessor 26 which processes the program and controls the terminal operation. RAM 28 is coupled to the microprocessor and stores the programs for execution and data. Loop adapter 30 interfaces the terminal with loop communications network 14 (FIG. 1). It provides the communication path between the terminal and the controller. Hard totals module 32 is a battery-powered RAM and is able to store data whenever power to the terminal is disconnected. Microprocessor 26 writes information into the hard totals module. Serial I/O channel adapter 34 interconnects the serial I/O channel 36 to the terminal. The serial I/O channel is a multi-point communications link and provides a communication path between the terminal and its attached devices. The attached I/O devices may include keyboards, displays, printers, scanners, etc. A satellite terminal identified by numeral 38 is coupled over conductor 40 to serial I/O channel 36. Although not shown in FIG. 2, a set of I/O devices similar to those connected to serial I/O channel 36 are also connected to satellite terminal 38. A sub-set of the SDLC protocol is