|
Claims  |
|
|
What is claimed is:
1. In a local area network (LAN) comprising a communication medium commonly
connecting a plurality of Nodes, LAN interface means at each Node for
controlling access to the medium and communicating LAN packets between
predetermined selected source and destination Nodes, each LAN data packet
including a LAN data field and a LAN header field containing characters
which control the interface means to achieve Node to Node communications
in accordance with a predetermined LAN communication protocol; and in
combination therewith,
a character I/O channel for communicating byte stream data and control
administrative information in single IONET network level data packet
messages from source to destination Devices connected at the Nodes, each
Device including a device interface which connects to a device which is
separate from the Device, the device being one of either an I/O device
which conducts I/O data transfers or a computer device including a memory
and a processor means and a program code for operating the computer
device, said character I/O channel comprising:
point of use (POU) means included in the Device and connected to the LAN
interface means at each Node, the POU means connected to each I/O device
including a microcomputer means including a memory and a program code for
operating the microcomputer means;
the program codes for the processor means and the microcomputer means
defining a predetermined IONET communication protocol for communicating
with Devices and their connected device interfaces and devices, the IONET
communication protocol being separate from the LAN communication protocol;
the POU means inserting characters in the data field of LAN data packets to
form the IONET network level data packet messages which have an IONET
header field and an administrative field and byte stream data field, the
IONET header characters including a function code specifying one of a
plurality of control functions, the administrative field characters
including an administrative information code for use in accomplishing the
specified control function to be performed by one of the Device or its
device interface, the byte stream data characters originating from a
device at the source Node; and
the POU means of the destination Node directly interpreting the function
code and the administrative information code characters (a) to establish a
session between the source and destination Devices for communicating IONET
data packet messages therebetween without acceptance of and interference
from other IONET data packet messages for the duration of the session, and
(b) to perform a corresponding control function on one of the destination
Device or its device interface during the session, while (c)
simultaneously transferring the byte stream data characters in unmodified
form directly to the device connected to the device interface of the
destination Device.
2. An invention as defined in claim 1 wherein one control function is a
disconnect control function which terminates an established session.
3. An invention as defined in claim 1 wherein the IONET header characters
include a length code specifying an arbitrary length for each of the
administrative and byte stream data fields.
4. An invention as defined in claim 1 wherein the IONET header characters
include an immediate code, and the POU means of the destination Device
immediately performs the control function specified by the function code
and the administrative information code upon receipt of the IONET message
containing the immediate code.
5. An invention as defined in claim 1 wherein the LAN interface means
inserts source Node identifying information in each LAN data packet, and
wherein:
the microcomputer means of one POU means prohibits the responsive
communication of IONET messages to a Device connected at a Node which has
identifying information which does not correspond to the Node identifying
information of the Devices with which the session is established.
6. An invention as defined in claim 1 wherein the LAN interface means
inserts source Node identifying information in each LAN data packet, and
wherein:
the microcomputer means of one POU means includes password information
identifying the source Node of each Device capable of initiating a session
with the Device of the one POU means, and the microcomputer means of the
one POU means prohibits the communication of IONET messages unless the
source information associated with the received IONET message during one
half session corresponds to the source Node identifying information of the
Device which supplied the password information to initiate the session.
7. An invention as defined in claim 6 wherein the microcomputer means of
the one POU means further includes lock means for preventing the password
information from being changed by IONET messages received from other
Devices.
8. An invention as defined in claim 1 wherein an IONET message specifying a
command function is followed by the communication of a reply IONET message
which contains function code and an administrative information code
specifying whether the requested command function has been successfully
performed.
9. An invention as defined in claim 8 wherein each session is established
by the communication of a first IONET message which contains a function
code and an administrative information code specifying a connect control
function between two Devices and by the responsive communication of a
reply IONET message which contains a function code and an administrative
information code specifying whether the session has been successfully
established.
10. An invention as defined in claim 9 wherein each session consists of two
half sessions, the first IONET message establishing one half session, and
the reply IONET message establishing the other half session.
11. An invention as defined in claim 10 wherein the function code and the
administrative information code of the reply IONET message are directly
interpreted by one of the microcomputer means or the computer device of
one Device of the established session to prohibit the communication of
further IONET messages to the other Device of the established session
until further IONET messages can be received in memory of the POU means of
the other Device.
12. An invention as defined in claim 10 wherein:
an IONET data packet message containing multiple data packets which is
communicated in one half session includes IONET header characters which
specify sequential ordering information of the multiple data packets; and
each other half session reply IONET message includes IONET header
characters which specify acknowledgement information by which to determine
those ones of data packets which were not successfully received.
13. An invention as defined in claim 12 wherein all data packets which were
not successfully received are retransmitted in response to the reply IONET
message containing the acknowledgement information.
14. An invention as defined in claim 12 wherein all data packets which were
not successfully received are retransmitted in response to the expiration
of a predetermined time period during which no reply IONET message was
received.
15. An invention as defined in claim 13 wherein the reply IONET message
contains characters in its IONET header which specify replies including:
successful completion of the control function;
non-support of the control function by the destination Device;
rejection by the destination Device of the control function due to the
state of a receiver means at the destination Device;
rejection of the control function because the destination Device is not in
session;
rejection of the control function because the destination Device is in
session with another Device;
rejection of the control function because a configuration lock associated
with the destination Device is set; and
rejection of the control function because there is an error in the control
command character information in the control command IONET message.
16. An invention as defined in claim 8 herein the control commands specify
control functions including:
report device parameters, which causes the generation of a control reply
IONET message containing information relating to the type and
predetermined attributes of the device connected to the Device;
report statistics, which causes the generation of a control reply IONET
message containing statistics relating to medium communication;
report interface parameters, which causes the generation of a control reply
IONET message relating to the interface control and related modal state of
the Device;
set device parameters, which causes the one Device to store new parameter
information regarding the other Device of the session; and
set interface parameters, which causes the destination Device to set new
values for interface control and the related modal state.
17. An invention as defined in claim 8 wherein the control functions
include:
flush buffers, which causes all previous information communicated in IONET
messages to the memory of the recipient Device to be discarded;
run extended diagnostics, which causes the Device to perform diagnostic
functions and report on the results of those functions; and
report status, which causes the Device to generate a control reply IONET
message describing the status of an device interface of the device.
18. An invention as defined in claim 8 wherein the reply IONET messages
include information specifying:
the state of the device interface input signals and an indication of
generic power on/off and generic ready/not-ready status;
selection of those input status changes which result in communicating
control reply IONET messages containing status information; and
specification of settings of device interface output control signals.
19. An invention as defined in claim 1 wherein the control commands for the
device interface include:
a command to transfer the data packet message;
a command to stop receiving data packet messages; and
a command for communicating keep alive messages to maintain the session in
the absence of communicated data packet messages.
20. For use with a local area network (LAN) comprising a communication
medium commonly connecting a plurality of Nodes, LAN interface means at
each Node for controlling access to the medium and communicating LAN
packets between predetermined selected source and destination Nodes, each
LAN data packet including a LAN data field and a LAN header field
containing characters which control the interface means to achieve Node to
Node communications in accordance with a predetermined LAN communication
protocol;
a method for communicating byte stream data and control administrative
information in single IONET network level data packet messages from source
to destination Devices connected at the Nodes by communicating LAN data
packets between source and destination odes in accordance with the LAN
communication protocol, each Device including a device interface which
connects to a device which is separate from the Device, the device being
one of either an I/O device which conducts I/O data transfers or a
computer device including a memory and a processor means and a program
code for operating the computer device, said method being useful for
communicating characters as an I/O channel and comprising:
including a point of use (POU) means in the Device and connecting the POU
means to the LAN interface means at each Node;
including a microcomputer means including a memory and a program code for
operating the microcomputer means in each POU means;
implementing an IONET communication protocol separately from the LAN
communication protocol in the program codes of each computer device and
microcomputer means, and thereby:
forming the IONET network level data packet messages in accordance with the
IONET communication protocol by inserting characters in the LAN data field
of each LAN data packet communicated between the Nodes;
forming an IONET header field and an administrative field and a byte stream
data field in each IONET data packet message by the inserted characters,
the IONET header characters including a function code specifying one of a
plurality of control functions, the administrative field characters
including an administrative information code for use in accomplishing the
specified control function to be performed by the one of Device or its
device interface, the byte stream data characters originating from a
device at the source Node; and
directly interpreting the function code and administrative information code
characters at the destination Node in accordance with the IONET
communication protocol, and thereby (a) establishing a session between the
source and destination Devices for communicating IONET data packet
messages therebetween without acceptance of and interference from other
IONET data packet messages for the duration of the session, and (b)
performing a corresponding control function on one of the destination
Device or its device interface during the session, while (c)
simultaneously transferring the byte stream data characters in unmodified
form directly to the device connected to the device interface of the
destination Device.
21. A method as defined in claim 20 further comprising:
establishing a session to communicate byte stream data in IONET messages,
each session consisting of two half sessions;
communicating a first IONET message from a first Device to a second Device
in one half session; and
communicating a reply IONET message from the second Device to the first
device in the other half session.
22. A method as defined in claim 21 further comprising:
communicating status information regarding the present and previous half
sessions with each reply IONET message.
23. A method as defined in claim 21 further comprising:
communicating an IONET message to maintain the continuance of an
established session when byte stream data is unavailable to communicate by
IONET data packet messages.
24. A method as defined in claim 21 further comprising:
interpreting the function code and administrative information code and
performing a corresponding control function on one of the Device or device
interface while the session is established; and
communicating a reply IONET message to indicate whether the control
function was successfully accomplished.
25. A method as defined in claim 21 further comprising:
including ordering information in an IONET data packet message of one half
session which specifies the sequential order of multiple data packets; and
acknowledging in a replay IONET message in the other half session those
ones of the data packets which have been unsuccessfully received.
26. A method as defined in claim 25 further comprising:
retransmitting those ones of the data packets which have been acknowledged
as unsuccessfully received.
27. A method as defined in claim 21 further comprising:
retransmitting IONET data packet messages which have been previously
transmitted after the expiration of a predetermined time period after
which a reply IONET message acknowledging the successful receipt of those
messages has not been received.
28. A method as defined in claim 20 further comprising:
establishing a session between only those Devices which are preselected to
allow communication of IONET messages therebetween.
29. A method as defined in claim 20 further comprising:
dividing the administrative and byte stream data fields of each IONET
message into arbitrary lengths, either of which may contain no
information; and
specifying the length of each of the administrative and byte stream data
fields by inserting characters in the IONET header field which form a
length code.
30. A method as defined in claim 20 further comprising:
communicating multiple IONET data packet messages; and
limiting the number of IONET data packet messages communicated in a group
to a number which is at least one less than the number of IONET data
packet messages which can be received in the memory of a destination
Device without inhibiting a receiver means of a destination Node. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
This invention relates to improving the input/output (I/O) of a computer
system, and is particularly useful for economically connecting to the
computer system a relatively large number of low or medium speed I/O
devices or peripherals of mixed types over a relatively large geographic
area to achieve efficient time sharing of the computer system resources
and effective communication between the I/O devices and the computer
system.
BACKGROUND OF THE INVENTION
The increasing demand for the time sharing of computer resources among a
plurality of different, relatively low speed, external I/O devices has
caused a number of evolutionary changes in computer system architecture
over the years. Many of these changes have centered around the I/O
subsystem. I/O channel controllers have been devised to avoid restricting
the processing speed available from modern central processors and to
attempt to accommodate increasing numbers of I/O devices. I/O channel
controllers are usually of either a bulk storage type or a character type.
A bulk storage I/O channel controller is used for controlling high speed
transfers of relatively large amounts of data from one or more external
bulk storage devices, such as disk drives, over the bus of the computer
system to the system main memory. Due to the relatively small numbers of
bulk data transfers and the relatively large amount of data transferred
during each single continuous high speed transfer operation, the
efficiency of operation of bulk storage channel controllers is not usually
considered to be a major limiting factor. However, substantial limitations
have been caused by attempting to transfer relatively small amounts of
data, usually characters, a relatively large number of times on an
intermittent basis, as is the case with a relatively large number of
relatively low and medium speed I/O devices such as terminals and
printers. The character I/O channel controllers which have evolved in
response to the increased use of low and medium speed I/O devices have
continued to increase in complexity and may be reaching the point of
diminished effectiveness relative to the improvements attempted to be
gained.
The most common version of a character I/O channel controller uses its own
relatively complex processor to multiplex data to and from a fixed number
(e.g. 8, 16 or 32) of I/O devices connected to it. The character channel
controller's I/O ports may be limited to a specific type of device for
strictly local connection. If the character channel controller is not
device specific, a similarly complex I/O adapter is required to
communicate between the I/O channel controller and each device or group of
devices. The operating functions of the I/O channel controller, the I/O
adapter, the host computer, and the I/O devices are shared between all of
these components. The communication and control protocol used to
accomplish such communication is usually complex, requires substantial
overhead in the operating system, generally complicates the transfer of
I/O data, and usually limits the data throughput.
The majority of the cost incurred in connecting devices to the computer
systems is created as a result of the relatively complex operating nature
of the I/O processors in the channel controllers and adapters and the
protocol which is required. In order to defray some of this relatively
high cost, it is typical to provide a multiplicity of ports at each I/O
adapter for the purpose of connecting a multiplicity of I/O devices. The
I/O devices must usually be located in close physical proximity to the I/O
adapter because cable lengths can restrict the speed at which reliable
data transfers can be accomplished. To connect a new I/O device to the
computer system in cases where an unused port on a multiport I/O adapter
is unavailable, another multiport I/O adapter must be connected to the
channel controller. The user incurs connection costs which are not
necessarily related to the addition of each new I/O device on the system,
because the addition of each new multiport adapter involves paying for the
capability of connecting a multiplicity of I/O devices, whether or not all
of these connection ports are utilized. In some situations, the cost of
connecting an I/O device to the system may exceed the cost of the I/O
device itself.
The type of multiplexing used in character I/O channel controllers and
adapters may also create limitations. One type of multiplexing is known as
centralized polling. With centralized polling, the central processor sends
signals which interrogate each I/O device in order and regardless of
whether or not it has data to send. Another form of polling, known as
induced polling or polling on demand, initiates this type of centralized
polling only when an adapter sends a change of status signal. Induced
polling avoids the processing burden or overhead of continuously polling
all of the adapters and I/O devices, but requires all of the adapters to
be polled in order once during any polling sequence. Polling requires
considerable software functionality at either the central processor or
channel controller, and wastes time in polling both the active and
inactive I/O devices, and in interpreting the results of the polling.
Another type of multiplexing is generally referred to as access on demand.
Access on demand multiplexing usually involves a request from an adapter
for access to the communication link and some form of arbitration for
resolving competing requests from different adapters. Signal propagation
delays in arbitration systems can create significant adverse influences.
Because signal propagation delays increase with greater physical cable
lengths, arbitration techniques utilizing the central processor or system
bus controller to resolve competing requests, known as centralized
arbitration schemes, are usually limited to computer busses and other
applications where the distances between the I/O adapters generating the
requests and the arbitration logic extend no more than a few feet.
Token passing is a technique of distributed control or arbitration which
has been used with success in local area networks (LAN).
BRIEF SUMMARY OF THE INVENTION
The present invention is designated as an I/O network (IONET) channel for a
computer system. In general, the IONET channel is for means of highly
effective character and other communication between a plurality of low and
medium speed devices of the same or mixed types connected directly to the
I/O subsystem of a computer system, by using arbitration over LAN-type
communication medium, relatively low cost point of use adapters with
microcomputers distributed over the medium and connected to each I/O
device individually or to a relatively small number of I/O devices, and a
communication and control protocol which efficiently controls the
microcomputers and to control communication of the data between the I/O
devices and the computer system memory. The LAN-type communication medium,
the protocol and the distributed low cost point of use adapters
cooperatively function as an improved I/O channel controller, but without
the significant limitations previously discussed.
The I/O devices can be attached at substantially greater distances from the
central processor than for typical I/O channels because the arbitration
control permits such connections without the attendant reduction in data
throughput, and because LAN technology provides reliable data
communication at longer distances than other schemes compatible with low
cost cables. The communication and control protocol is relatively simple,
does not require substantial overhead, and is conducive to efficient data
throughput. The point of use adapters are relatively simply implemented
and respond directly and effectively to the commands of the protocol to
control data transfers. The user incurs relatively low, fixed
per-connection connection costs to attach each new I/O device to the
system, thereby avoiding the large costs of single expensive shared logic
multiplexing adapters and the physical placement restrictions associated
with connecting the I/O devices to such shared logic multiplexing
adapters. The I/O devices can be positioned at widely distributed
locations. The data throughput capabilities do not require real time
sharing of the much faster central processor, despite the fact that
communication is occurring with considerably slower I/O devices. The user
of each I/O device has access to the resources of a complete computer
system without placing a complete computer system at each I/O device or
terminal.
The protocol of the present invention achieves significant conservation of
network bandwidth because it incorporates transport level flow control.
Packets of data are not attempted to be sent until it is established that
the packets can be received. The protocol is generally immune from the
loss or duplication of any one packet at any time. If a packet is
duplicated or omitted the system will inherently recover at the transport
level. Data messages can be forwarded between separate network segments.
The invention can also provide the appearance of a privately connected
local device even in a multiprocessor environment, which is very useful
for security considerations and restricting access to information. A
significant part of the multiplexing function and the network control
function has been moved into the protocol.
The present invention can be better understood from the following detailed
description of a preferred embodiment of the present invention, which is
also illustrated in the accompanying drawings that are briefly described
below. The actual scope of the invention is defined by the appended
claims, and the description of the invention above should be considered
only as a generalized summary of certain features.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a generalized block diagram of a typical prior art computer
system to which a bulk storage I/O channel, a character I/O channel and a
local area network are connected.
FIG. 2 is a generalized block diagram of a computer system utilizing the
IONET channel of the present invention.
FIG. 3 is a block diagram illustrating the connection of a plurality of I/O
devices by a plurality of IONET channels to a single computer system.
FIG. 4 is a block diagram illustrating the connection of a plurality of
computer systems by one IONET channel to a plurality of I/O devices.
FIG. 5 is a block diagram illustrating a plurality of computer systems
interconnected by an LAN and with each computer system having an IONET
channel connecting a plurality of I/O devices to each computer system.
FIG. 6 is a block diagram of a point of use (POU) adapter of the IONET
channel interconnecting an I/O device to a cable of the IONET channel.
FIG. 7 is a block diagram of a computer system connected to the cable of
the IONET channel.
FIG. 8 is a block diagram of an exemplary POU adapter using an RS 232
serial device interface.
FIG. 9 is an illustration of the seven layer Open System Interface (OSI)
architecture of the International Standards Organization reference model
for communication.
FIG. 10 is an illustration of an IONET packet of information communicated
over the IONET channel, shown in sequential byte form,
FIG. 11 is an illustration of the IONET packet shown in FIG. 10 which is
broken down into the hierarchical levels corresponding to the physical,
link, network, transport and session levels of the OSI model.
FIG. 12 is a chart which illustrates in greater detail the bit layout and
other details of some of the individual bytes of the IONET packet shown in
FIG. 10.
FIG. 13 is an illustration of a generalized state transition diagram for a
transmitter state machine of the POU adapter of the present invention.
FIG. 14 is an illustration of a generalized state transition diagram for a
receiver state machine of the POU adapter of the present invention.
FIG. 15 is a chart which characterizes the operation of the transmitter
state machine in a normal mode.
FIG. 16 is a chart which characterizes the operation of the transmitter
state machine in an immediate mode.
FIG. 17 is a chart which characterizes the operation of a receiver state:
machine in the normal mode.
FIG. 18 is a chart which characterizes the operation of a receiver state
machine in the immediate mode.
DETAILED DESCRIPTION
The present invention can be better understood by reference to a typical
prior art computer system 100 which is illustrated in FIG. 1. The computer
system 100 includes the typical processor 102 which is connected to and
communicates with the typical system main memory components 104. A typical
I/O subsystem 106 is provided for communicating data to and from the main
memory 104. The processor 102, the main memory 104 and the I/O subsystem
106 are all capable of communicating with each other at the high internal
capacities or bandwidths that typify a modern computer system.
The I/O subsystem 106 will have one or more external interconnections for
external peripherals. These external connections are typically called I/O
channels. In most modern computer systems two types of I/O channels are
employed. One type of I/O channel is a bulk storage I/O channel 108. The
bulk storage I/O channel 108 is typified by supporting the high bandwidth
transfers typical of disk 110 and tape 112 storage devices. A bulk storage
I/O channel 108 is typically limited in length to tens of feet. A bulk
storage channel 108 is able to perform data transfer to and from only one
I/O device at a time, although some bulk storage I/O channels are capable
of handling overlapping operations where different devices are accessing
data simultaneously but only one is only physically transferring data at a
time. In general, a bulk storage channel is not optimally suited for
handling lower speed or less continuous duty cycle data transfers between
system memory and I/O peripherals because of, among other things,
relatively expensive cabling requirements relatively extensive interface
circuitry, physical distance restrictions, and the optimization of the
bulk storage I/O channel 108 for transfers of relatively large blocks of
data with each transfer.
To accommodate a relatively large number of individual transfers of
relatively short amounts of data, most computer systems also incorporate a
character I/O channel 114. The term "character" describes its most
predominant use, transferring data entities representating alphanumeric
and special characters to and from external peripherals. However, the term
"character" is in no way indicative of a restriction that only characters
may be transferred. Graphics data, arbitrary binary data and other
encodings of information may be transferred over the character I/O channel
114. The character I/O channel 114 is typified by a parallel or serial
data bit transmission occurring at a speed generally lower than that of
the bulk storage I/O channel 108, but at a speed faster than any of the
individual peripherals attached to the character I/O channel 114. The
character I/O channel 114 is optimized for short transfers to a relatively
large number of peripherals rather than long transfers to a small number
of peripherals.
In medium and small sized computer systems, the most common connection
arrangement to connect an I/O device is one or more multiport interface or
adapter 116 attached to the channel 114. Typically the adapter 116 will be
a part of the overall computer system 100. A number of low speed serial or
parallel communication interfaces 118 exit the enclosure for the computer
system 100 and electrically connect to and communicate with peripherals
such as terminals 120, printer 122 and modems 124, for example. The
interfaces 118 are typically low speed communication cables which tend to
be severely limited in length unless modems are used, are limited in speed
normally to a few tens of kilobits per second at most, and limit the
computer system capacity because each one of the cables 118 takes a
noticeable amount of space on the back panel of the computer system 100
enclosure. Often, the number of external cables 118 which a modern
computer system can support is more constrained by the amount of back
panel space rather than the actual available I/O bandwidth of the computer
system.
It is also typical practice to directly connect the multiport adapter 116
to the I/O character channel 114 within or immediately adjacent to the
computer system enclosure. However, such direct connection is limited to a
relatively short distance, thereby placing the multiport adapter 116 at a
distance not significantly removed from the location of the computer
system itself.
In most large scale computer systems, the multiport adapter 116 actually
includes a dedicated processor, often referred to as a front end
processor, to actually control the communication and multiplexing between
the various peripherals and the computer system 100. The functionality of
the adapter 116 tends to be rather complex, thereby requiring a relatively
complex and expensive processor of its own to prevent the processing
requirements for the control of low speed I/O devices from placing an
excessive load on the control processor 102. Furthermore, the
communication and control protocol between the I/O subsystem 106 and the
multiport adapter 116 tends to be complex and to require considerable
internal communication overhead to and from system memory 104, in order to
accomplish the multiplexing between the peripherals.
The expense of the shared logic and relatively complex hardware required to
be incorporated in each of the multiport adapters 116 has required that
they have the ability to connect to a plurality of peripherals, typically
at least 4, usually 8 or 16, and sometimes 32 peripherals. Cost
effectiveness is thereby gained, provided that there are actually a large
number of peripherals to be connected to each adapter 116. Should all of
the interfaces or cables 118 be occupied, it is necessary for the user to
attach another multiport adapter 116 to the computer system to accommodate
the next additional peripheral. The incremental cost for attaching such an
additional peripheral can be extremely high and/or prohibitive, and may
very well exceed the cost of the peripheral itself. Furthermore, because
of the distance limitations of the character I/O channel 114 and the
length limitations of the interface cables 118, all of the peripherals
must be physically located at relatively close distance to the multiport
adapter 116.
Devices having essentially the same general functionality as the multiport
adapters 116 described above are sometimes referred to as I/O channel
controllers.
In many cases, a local area network (LAN), designated 126, is also attached
to the computer system 100. Typically a LAN adapter 125 is used between
the LAN medium 128 and the I/O subsystem 106. This LAN adapter most
frequently attaches to the character I/O channel 114. A LAN 126 typically
includes a network communication medium or cable 128 to which a plurality
of computer systems are connected for the purpose of sharing information.
Each of the computer systems is connected to the LAN cable 128 at a tap or
drop 130. Each system connected to the LAN cable 128 at a tap 130 is
referred to as a Node. A variety of different conventional configurations
of LANs are available, such as token rings, token busses, contention
arbitrated busses and the like. The most significant differences between
various conventional LANs is based on the sophistication of the networking
software, thereby providing different degrees of resource sharing and
functionality.
The network cable 128 can extend relatively long distances from the host or
main computer system 100 to other Nodes. Some of these Nodes are other
general purpose computer systems 100'. Some Nodes of the LAN may be
special purpose devices known as front end processors 132. Front end
processors are sometimes called cluster servers. The front end processors
132 do not provide general computing services, but serve as transparent
interface elements to permit the attachment of terminals 134 or other
non-computer I/O devices. Although connected by the LAN 126 to the I/O
subsystem 106 through a LAN adapter 125, the disadvantages discussed in
conjunction with the multiport adapter 116, which relate to the complex
processing functionality, cumbersome overhead, and shared logic for
multiplexing, generally applies to each of the cluster servers 132 as
well. Certainly the cost effectiveness of each cluster server 132 is
dependent upon connecting a relatively large number of I/O devices 134 to
it at relatively short distances. The incremental cost for attaching
additional terminals to the LAN is usually magnified, however, because
typically not all of the terminals can be located physically close to the
cluster server. As a consequence, more cluster servers or other front end
processors must be used than are actually needed just to accommodate the
physical spacing of the I/O devices. This requirement contributes
significantly to the cost of adding additional I/O devices.
In contrast to a typical prior art computer system, the present invention
is illustrated generally in FIG. 2. An input/output network (IONET)
channel 140 is provided for connecting the computer system 100 to a
plurality of I/O devices, for example, terminals 142, printers 144,
personal computers 146, miscellaneous data collection equipment 148,
modems 150, and statistical multiplexers 152. The modem 150 communicates
over telephone lines 154 with a remote computer system 156, for example.
The statistical multiplexer 152 communicates over telephone lines 158 to a
physically similar remote unit 160. A plurality of remote terminals 162
are connected to the remote statistical multiplexer 160. The statistical
multiplexers 152 and 160 reduce telephone line costs by combining the
aggregate input/output going to and from the several, co-located remote
terminals 162 on a single telephone line 158. As used herein an "I/O
device" is a peripheral which cannot operate autonomously and requires
some type of interface adapter to attach to a computer system, and is to
be distinguished from a "Device" which does contain its own processor as
is defined in greater detail below. An I/O device performs I/O information
transfers.
The IONET channel 140 combines certain features of a token passing LAN and
the character I/O channel to achieve significant improvements in attaching
a relatively large number of low and medium speed I/O devices to the
computer system while avoiding many of the significant limitations present
in the prior art. Although the IONET channel 140 is primarily a character
channel, arbitrary byte streams may be transferred over this channel and
its use is not restricted to character transfer situations.
The IONET channel 140 comprises a communication medium or cable 170, a
plurality of point of use (POU) means or adapters 172 connected to the
cable 170, and means for connecting the computer system 100 at a node 174.
The term "node" refers to the electrical connection to the cable, and is
to be distinguished from the term "Node" which generally refers to all the
equipment connected at a node, as is defined in more detail below. The
IONET channel 140 can become the interface means by which the computer 100
is connected to the various I/O devices. An I/O device is intended to
encompass all the variety of different types of non-processor, non-bulk
storage peripherals which might be attached to the IONET channel, such as
the terminals 142, printers 144, personal computers 146, data collection
equipment 148, modems 150, statistical multiplexers 152, and the like.
The computer system 100 is simplified because it does not require separate
LAN, multiport adapter, and miscellaneous other capabilities in its own
character I/O channel interface repertoire. Furthermore, the computer
system does not require the functionality of a network Node in the LAN
protocol in order to communicate with peripheral devices, thereby allowing
the computer system to avoid having to support a LAN protocol unless LAN
communication with other computer systems is necessary. In contrast, a
protocol suitable for use in conjunction with the IONET channel 140 is
primarily for I/O device interfacing, and is not for resource sharing or
remote operating system functions. As a result, the IONET protocol is
relatively simply implemented at each of the remote I/O devices by the POU
adapters 172.
The POU adapters 172 need not be physically located in relatively close
proximity to the computer system 100 but rather, may be removed to
considerable distances. For example, in the preferred embodiment of the
present invention, the I/O devices can be located as much as 22,000 feet
from the computer system 100. The data going to and from the I/O devices
is multiplexed on the single serial cable 170. | | |