|
|
|
| United States Patent | 5109484 |
| Link to this page | http://www.wikipatents.com/5109484.html |
| Inventor(s) | Hughes; David R. (Raleigh, NC);
Posey; Hollis P. (Cary, NC) |
| Abstract | Apparatus 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  |
|
|
|
|
|
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 |
|
|
|
|
|
| Publication Date |
April 28, 1992 |
|
|
|
|
|
| Filing Date |
April 9, 1986 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 | 4864492 Blakely-Fogel 706/45 Sep,1989 |      Your vote accepted [0 after 0 votes] | | 4777330 Nakayashiki 178/69R Oct,1988 |      Your vote accepted [0 after 0 votes] | | 4766590 Hamada 370/407 Aug,1988 |      Your vote accepted [0 after 0 votes] | | 4751648 Sears, III 702/6 Jun,1988 |      Your vote accepted [0 after 0 votes] | | 4747100 Roach
May,1988 |      Your vote accepted [0 after 0 votes] | | 4723208 Chadima, Jr.
Feb,1988 |      Your vote accepted [0 after 0 votes] | | 4707825 Amstutz 370/384 Nov,1987 |      Your vote accepted [0 after 0 votes] | | 4695946 Andreasen 714/31 Sep,1987 |      Your vote accepted [0 after 0 votes] | | 4683531 Kelch 710/109 Jul,1987 |      Your vote accepted [0 after 0 votes] | | 4683563 Rouse 370/224 Jul,1987 |      Your vote accepted [0 after 0 votes] | | 4669044 Houser 709/213 May,1987 |      Your vote accepted [0 after 0 votes] | | 4665501 Saldin 710/8 May,1987 |      Your vote accepted [0 after 0 votes] | | 4639916 Boutterin 714/27 Jan,1987 |      Your vote accepted [0 after 0 votes] | | 4595921 Wang 340/825.52 Jun,1986 |      Your vote accepted [0 after 0 votes] | | 4570259 Ishii 370/458 Feb,1986 |      Your vote accepted [0 after 0 votes] | | 4547851 Kurland 705/15 Oct,1985 |      Your vote accepted [0 after 0 votes] | | 4545013 Lyon 714/712 Oct,1985 |      Your vote accepted [0 after 0 votes] | | 4543626 Bean 709/201 Sep,1985 |      Your vote accepted [0 after 0 votes] | | 4468750 Chamoff 709/251 Aug,1984 |      Your vote accepted [0 after 0 votes] | | 4441160 Azcua 705/25 Apr,1984 |      Your vote accepted [0 after 0 votes] | | 4403303 Howes 703/27 Sep,1983 |      Your vote accepted [0 after 0 votes] | | 4360912 Metz 370/449 Nov,1982 |      Your vote accepted [0 after 0 votes] | | 4354229 Davis 710/104 Oct,1982 |      Your vote accepted [0 after 0 votes] | | 4268901 Subrizi 710/104 May,1981 |      Your vote accepted [0 after 0 votes] | | 4194349 Lane 57/265 Mar,1980 |      Your vote accepted [0 after 0 votes] | | 4195351 Barner 370/223 Mar,1980 |      Your vote accepted [0 after 0 votes] | | 4177512 Moggia 710/46 Dec,1979 |      Your vote accepted [0 after 0 votes] | | 4075693 Fox 710/104 Feb,1978 |      Your vote accepted [0 after 0 votes] | | 4071908 Brophy 710/46 Jan,1978 |      Your vote accepted [0 after 0 votes] | | 4070704 Calle 713/100 Jan,1978 |      Your vote accepted [0 after 0 votes] | | 4055808 Holsinger 375/222 Oct,1977 |      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 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. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
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 | | |