WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Input/output network for computer system    
United States Patent4941089   
Link to this pagehttp://www.wikipatents.com/4941089.html
Inventor(s)Fischer; Michael A. (San Antonio, TX)
AbstractAn I/O network channel achieves relatively high rates of data communication between a plurality of widely physically dispersed devices interconnected by a LAN-type media. A processor connected to each node of the media controls the data and functions of a receiver and transmitter at each node to establish network level, transport level and session level data communication and control functions.



 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 4941089
Input/output network for computer system - US Patent 4941089 Drawing
Input/output network for computer system
Inventor     Fischer; Michael A. (San Antonio, TX)
Owner/Assignee     Datapoint Corporation (San Antonio, TX)
Patent assignment
All assignments
Publication Date     July 10, 1990
Application Number     06/941,084
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     December 12, 1986
US Classification     709/231 370/419 370/463 370/473 709/236
Int'l Classification     G06F 013/38
Examiner     Clark; David L.
Assistant Examiner    
Attorney/Law Firm     Ley; John R.
Address
Parent Case    
Priority Data    
USPTO Field of Search     371/32 371/33 340/825.06 340/825.07 340/825.08 340/825.5 340/825.54 370/60 370/13 370/14 370/15 370/16 370/17 370/85 370/94 370/946 370/85.1 370/85.9 370/85.13 370/94.1 370/94.2 370/99 370/85.4
Patent Tags     input/output network computer
   
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
4706080
Sincoskie
340/825.02
Nov,1987

[0 after 0 votes]
4692918
Elliott
370/401
Sep,1987

[0 after 0 votes]
4680581
Kozlik
340/3.44
Jul,1987

[0 after 0 votes]
4574284
Feldman
340/825.52
Mar,1986

[0 after 0 votes]
4549297
Nishimoto
714/749
Oct,1985

[0 after 0 votes]
4495493
Segarra
340/825.5
Jan,1985

[0 after 0 votes]
4423414
Bryant
340/825.52
Dec,1983

[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
 


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


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.