INPUT/OUTPUT SYSTEM AND METHOD OF COMMUNICATION FOR PERIPHERAL DEVICES IN DATA PROCESSING SYSTEM

Abstract: A data processing system including processing elements (22) and a central memory (10) has an input/output system for handling high data transmission rates comprising an I/O processor (23) providing serial lines (31) to a plurality of peripheral subsystems (30) each of which comprises a peripheral adapter (40) and a plurality of peripheral devices (41), the peripheral adapter including a first means providing serial/parallel data conversion from the serial line (31), a second means providing control functions and information transfer to the peripheral devices, and third means for responding to the I/O processor in accordance with a message protocol. The message protocol involves interrogating an input signal indicating the end of a message from I/O processor (23), determining the message type, transmitting a response message and causing the peripheral adapter to enter an operating state which may involve further exchange of messages with the I/O processor.

Description: INPUT/OUTPUT SYSTEM AND METHOD OF COMMUNICATION FOR PERIPHERAL DEVICES IN DATA PROCESSING SYSTEM Technical Field This invention relates to an input/output system and method of communication for peripheral de¬ vices in a data processing system. This application is related to an internation¬ al application filed by the present Applicants on the same day as the present application entitled "Input/ Output Processor and Method of Communication for Data Processing System". Background Art Where it is desired to connect a multiplicity of peripheral devices in a data processing system, as for example a multi-user system, various techniques such as polling, interrupts, direct memory access and message switching (see "Introduction to Operating System Design", A. N. Habermann - SRA-1976) have been employed in an effort to provide an efficient means of communi- cation between the peripheral devices and the main memory and central processor. U.S. Patent 4,079,452 discloses a means of coupling a large number of peripheral devices having various communications protocols to a data processor, comprising connecting groups of peripheral devices to respective interface adapters, and connecting the inter¬ face adapters in parallel to a programmer controller module, the controller module being coupled via a direct memory access module to a data processor. The controller module includes a special purpose computer having a program of subroutines for implementing the specific communications protocols. * The problem with such a means of communication is that it is not sufficiently flexible nor of sufficient capacity to handle the high data flow requirements of a large and fast main frame data processing system which OM may have among other features several central processor elements. Disclosure of the Invention It is therefore an object of the invention to provide a means and method of communicating between a multiplicity of peripheral devices and a data processing system, which method and means are capable of efficient operation under high rates of data flow. In one aspect, the invention provides a data processing system having at least one processing element, a central memory coupled to said processing element, and an I/O processor coupled to said central memory, and wherein said I/O processor has a channel port for providing a transmission path for communicating information to a plurality of peripheral subsystems, and wherein each of said peripheral subsystems has in¬ cluded a peripheral adapter interfacing with a plurality of peripheral devices, characterized in that said I/O processor has a plurality of bit serial channel ports for providing a transmission path in a bit serial link format to each of said peripheral subsystems, and in that each said peripheral adapter comprises first means, having an input adapter to receive information from said I/O processor and having an output adapted to transmit information to said I/O processor, for per¬ forming a serial-to-parallel or parallel-to-serial transformation on the information from said I/O proces¬ sor or to. said I/O processor, respectively; second means, having a plurality of input-output terminals adapted to interface with said peripheral devices, for providing peripheral controller logic .functions for controlling said peripheral devices, and for the trans¬ fer of information with said peripheral devices; and third means, operatively connected to said first means and to said second means, for generating response trans- missions to said I/O processor in accordance with a defined message protocol, in conjunction with controlling the transfer of information between said first means and said second means. In another aspect, the invention provides a data processing system having at least one processing element, a central memory coupled to said processing element, and an I/O processor coupled to said central memory, and wherein said I/O processor has a channel port for providing a transmission path for communicating information to a plurality of peripheral subsystems, and wherein each of said peripheral subsystems has included a peripheral adapter interfacing with a plurality of peripheral devices, characterized in that said I/O processor has a plurality of bit serial channel ports for providing a transmission path in a bit serial line format to each of said subsystems, and in that each said peripheral adapter in combination with said I/O processor implements a method of communication charac¬ terized by the steps of: a) interrogating continuously an input signal indicating the end of an input message from said I/O processor, said input message having an identifier for indicating one of a plurality of message types; b) determining the message type, when said input signal indicates the end of the input message; c) transmitting a first response, said first response being of a message type corresponding to the message type of the input message of step (b); d) entering one of a plurality of operating states; and e) performing the functions of said operating state, said peripheral adapter causing a response for each input message re- ceived in accordance with a defined message protocol, returning to step (a) when the functions of the opera¬ tion state are completed. By providing a data processing system wherein data communications between the peripheral devices and the I/O processor are carried out in accordance with a message protocol by means of a peripheral adapter, a speedy and effective method of communication is provided which can deal with high data transmission rates. Brief Description of the Drawings One embodiment of the invention will now be described by way of example with reference to the accom¬ panying drawings, in which: Fig. 1 is a block diagram of a data processing system having a preferred structure; Fig. 2 depicts the format of the central memory I/O task structure; Fig. 3 is a block diagram showing the switch- able data paths through a dynamic channel exchange; Fig. 4 is a block diagram of the peripheral adapter according to the invention; Fig. 5 is a block diagram of the message protocol module of the peripheral adapter; Figs. 6A and 6B are a flowchart illustrating the operation of the system; Fig. 6C shows the relationship of Figs. 6A and 6B; Fig. 7 depicts a typical message sequence; Fig. 8 shows the message formats; Fig. 9 shows the command messages in a typical data output sequence; Fig. 10 shows the command messages in a typical data input sequence; and Fig. 11A through HE is a flow diagram of the microinstruction sequences of the message protocol module. Best Mode for Carrying Out the Invention Referring to Fig. 1, the data processing system includes an Input/Output Subsystem (IOSS)l. The IOSS architecture -1 comprises the I/O Task Structure (IOTS) shown as the central memory 10, the serial channel control processor (SCCP) 20, the dynamic channel ex¬ change (DCX) 21, and includes the peripheral subsystems 30, 30', 30' ', which further include the peripheral adapters (PA) 40, 40', 40' ' and the associated periph¬ eral devices 41A-41G. In a data processing system, at least one processing element, 22, 22' is coupled to the OM central memory 10. The SCCP 20 and the DCX 21 together form what is more generally known as an I/O processor 23, the I/O processor being coupled to the central memory 10. The coupling of the IOSS elements is shown in Fig. 1 utilizing an internal transfer bus 24, al¬ though it will be understood by those skilled in the art that any standard coupling means may be used. The DCX 21 interfaces with the peripheral subsystems 30 utili¬ zing bit serial channels 32 connected to peripheral adapter 40 by bit serial lines 31. The message protocol module is an element of the peripheral adapter 40. A message protocol is de¬ fined for the transmission of information between the processing element 22 and the peripheral devices 41A- 41G. The message protocol module is implemented to generate the control signal sequences required to effect the peripheral device information transfer in accordance with the defined protocol. The implementation is achieved by the use of a ROM and associated control logic within the peripheral adapter 40' and will be described here- inunder ' . The serial channel control processor 20 forms part of the I/O processor 23. The SCCP 20 is the over¬ all I/O controller of the data processing system and interfaces with the peripheral adapter 40 for peripheral device information transfer, the SCCP 20 performing the various control, transmission initiation, and termina¬ tion functions in accordance with the defined protocol. The SCCP functions are implemented in the SCCP 20 uti- lizing a ROM and associated control logic, which is more fully described in the aforementioned co-pending appli¬ cation. A. IOSS System Overview Before describing the overall IOSS system operation, it will be advantageous to give a brief description of the individual elements of the IOSS system. Referring to Fig. 2, the I/O task structure (IOTS) of central memory 10 is a memory resident set of tables and lists, denoted herein as I/O Field (IOF), that permit communication between the I/O software of the processing elements 22 and the serial channel control processor 20. The tables and lists of the IOTS of central memory 10 make up the control information uti¬ lized by SCCP 20. The Peripheral Address Fields (PAFs) indicate the specific peripheral to be addressed, and the function to be performed, the number of PAF bytes of the preferred embodiment can be as many as twelve de¬ pending on the peripheral subsystem 30. The Starting Memory Address specifies the central memory 10 starting location of the data to be transmitted or received, the Total Byte Count indicates the number of words to be transmitted or received, and the Final Byte Count indi¬ cates the number of bytes transmitted at the end of a transfer sequence. The C field is utilized to check that the SCCP is communicating with the correct periph¬ eral. The Status word is utilized to indicate the current state of the communication. Referring to Fig. 3, the DCX 21 is shown interfacing with SCCPs 20 through standard interface SCCP ports 34, and interfacing the peripheral subsystems 30 through bit serial channels 32 via bit serial lines 31. -There are m-SCCP ports 34 and n-bit serial channels (BSC) 32, with the number being less than the number n. In the preferred embodiment, m is four and n is eight, expandable up to 8 and 32 respectively. The SCCP ports 34 and the bit serial channels 32 each connect to the switching logic 35. The switching logic 35 thereby allows an SCCP 20 to communicate with any peripheral adapter 40 by providing a data path between the SCCP 20 and the desired peripheral adapter 40. As mentioned above, the peripheral subsystem 30 includes a peripheral adapter 40 and a peripheral device 41. The peripheral adapter 40 of the IOSS per¬ forms the controller function for the peripheral device O 41 exchanging the control messages and data with the SCCP 20 in accordance with the defined message protocol. The message exchanges of the peripheral adapter 40 are implemented by the use of a ROM and associated control logic which is more fully described hereinunder. The serial channel control processor 20 is a small device-independent processor used to control the input and output of data between the processing element 22 and the peripheral subsystem 30. Still referring to Fig. 3, the SCCP 20 communicates with the I/O software of the processing element 22 via the I/O task structure of central memory 10 and the internal transfer bus 24. Each SCCP 20 occupies one bus position on the internal transfer bus 24 and is connected to an associated SCCP port 34 of the DCX 21. An SCCP 20 can request com¬ munication to any bit serial channel 32 through switch¬ ing logic 35 of DCX 21, but the requesting SCCP 20 may connect to and control only one BSC 32 at a" time. Thus, the services between all the BSCs 32 are time shared, thereby permitting an SCCP 20 to control the I/O trans¬ fer between a processing element 22 and a peripheral subsystem 30. The control functions of the SCCP 20 are described in detail in the aforementioned co-pending application. Data transmission is via bit serial channel 32 at a fixed transmission speed. The transmission speed utilized in the preferred embodiment being sixteen megabits per second (two megabytes per second). Trans¬ mission between the SCCP 20 and the peripheral adapter 40, via the DCX 21, is independent of the transfer rate of the peripheral subsystem 30 or of the central memory 10. The SCCP 20 and the peripheral adapter 40 of periph¬ eral subsystem 30 both contain buffers to facilitate this isolation. Communications over the BSC lines 31 is message oriented, so as to comply with a defined message protocol and a defined transmission protocol. In the preferred embodiment, up to 256, 8-bit bytes of data can be transferred in one direction as a block. BSC 32 connections are ordinarily maintained between SCCP 20/DCX 21 as long as information transfer is occurring. By polling the BSC 32 when no I/O transmissions are taking place, the SCCP 20/DCX 21 is available to serve a waiting peripheral subsystem 30. In this way maximum bit serial channel 32 utilization is achieved and where multiple SCCPs 20 are available, load sharing is ac¬ complished. The SCCP 20/DCX 21 is peripheral inde- pendent and therefore can serve any peripheral sub¬ system 30. I/O system bandwidth can be increased by adding additional SCCPs 20. B. Peripheral Adapter Hardware Description Referring to Fig. 4, a block diagram of the peripheral adapter 40 is shown comprising a link control module (LCM) 401, coupled to the message control module (MPM) 402, which in turn is coupled to the peripheral adapter (PA) nucleus 403. The LCM 401 interfaces with the I/O processor 23 via bit serial line 31 and performs the bit-to-byte or byte-to-bit translation. The PA nucleus 403 interfaces with a peripheral device 41 and comprises a data buffer and the logic for controlling the functions of the peripheral device 41. Peripheral controller logic functions are well known by those skilled in the art; hence, the functions are not dis- cus'sed herein. The data buffer of PA nucleus 403 pro¬ vides for isolating the peripheral device transfer rate from the BSC 32 transfer rate. The message protocol module 402 generates and receives control signals to and from the PA nucleus 403 for controlling the I/O with the processing element 22, the control being administered by interfacing with the SCCP 20 in accordance with the defined message protocol. Referring to Fig. 5, a block diagram of the MPM 402 is shown. A sequence controller 410 provides the overall OM control of MPM 402. The sequence controller 410 com¬ prises, in part, a ROM, a ROM sequencer, and a state register, not shown. The ROM sequencer cause the micro¬ instructions of the ROM to be executed, the execution of the microinstructions generating the control signals such that the MPM 402 can perform a defined operation. The ROM is configured such that the microinstruction words perform the defined operations upon execution, the defined operations being responses to the SCCP 20 in accordance with the defined message protocol which will be described hereinunder. The ROM sequencer is well known by those skilled in the art and will not be dis¬ cussed further here. Sequence controller 410 interfaces with the LCM 401 for receiving a message control byte. Logic within the sequence controller 410 operates to initiate a branch to the appropriate routine stored within the ROM, based on the configuration of the state register and • the message control byte of the message received. Command and results inputs which are trans- f rred between a CS-RAM 420 and central memory 10, are controlled by the sequence controller 410. Data trans¬ fers between the PA nucleus 403 and central memory 10 are also controlled by the sequence controller 410. The Service Information Control Interface (SICI) 430 provides the interface control to the PA nucleus 403. The SICI also provides sequencer con¬ troller 410 timing and CS-RAM 420 timing. SICI 430 also interfaces with LCM Interface Logic 440 for transferring various control signals between the LCM 401 and the PA nucleus 403. A PA nucleus service request signal re¬ ceived from the PA nucleus 403 is transferred to the LCM 401 via LCM Interface Logic 440 causing the LCM 401 to transmit a Service Needed signal to the SCCP 20 which will be discussed in detail hereinunder. The SICI 430 also provides data read and write signals to the PA nucleus 403 for reading from or writing into the PA nucleus data buffer. An interrupt to the PA nucleus 403 is also provided to indicate a transmission sequence, which was prompted by the PA nucleus 403, is properly completed. A transmission sequence includes the trans¬ fer of data or the transfer of status, and will be described in detail hereinunder. The Command Status RAM (CS-RAM) 420 is a read- write scratchpad memory for providing temporary storage. Information required by PA 40 to communicate with SCCP 20 in accordance with the defined message protocol is stored in CS-RAM 420. The CS-RAM 420 serves as an information exchange point between the sequence con¬ troller 410 and the PA nucleus 403. The CS-RAM 420 is organized to store the command and control information, including the PAFs, received from the SCCP 20. The CS- RAM stores peripheral service type information'received from PA nucleus 403, including a data output ready indication, data input ready indication, results input ready indication, and information to be contained in the service setup information field of the literal appended message discussed hereinunder. The CS-RAM also stores the peripheral status information received from PA nucleus 403, including peripheral ready, peripheral busy, or peripheral absent indications. The CS-RAM Control Logic 450 provides the administering and multiplexing of CS-R,?-M address and data between the sequence controller 410 and the PA nucleus 403. Access to the CS-RAM 420 is divided equally between the sequence controller 410 and the PA nucleus 403 by a timing control signal. When the timing control signal is in a first state, the sequence controller can read or write data in the CS-RAM 420. When the timing control signal is in a second state, the PA nucleus 403 can read or write data in the CS-RAM 420. Separate CS- RAM address counters and data registers are provided for the sequence controller 410 and the PA nucleus 403 so that continuity of address and data is maintained for both elements with the multiplexing scheme. The LCM interface logic 440 contains the logic for providing the handshake control to pass serial bytes between LCM 401 and MPM 402 and between LCM 401 and the data buffer of the PA nucleus 403. An End of Message 5 signal from the LCM 401 is a control signal inputted to the MPM 402 via the LCM interface logic 410 indicating the termination of a transmission sequence from the SCCP 20. C. IOSS Systems Operation 10 The systems operation will now be described with the aid of the flowcharts of Figs. 6A and 6B taken together as shown by Fig. 6C. Figs. 6A and 6B show a generalized function flow of the operations performed by the individual elements, namely the processing element 15 22, the SCCP 20, the peripheral adapter 40, and the peripheral device 41, in the overall I/O operation, the dotted lines indicating "control type" information transferred between elements. When the processor element 22 desires to 20 communicate to a peripheral 41, the Process Initiate I/O routine (block 600) of the I/O software of the processor element 22 is executed which creates the I/O fields (IOF) and places these fields within the I/O task struc¬ ture of central memory 10 (block 601), the I/O task ' 25 structure being an area of central memory 10 allocated for storing the lists and tables utilized in perform¬ ing the I/O function in accordance with the defined message protocol. After the IOFs and the data to be transferred to the peripheral 41 are stored within the 30 proper locations of central memory ' 10, a message is sent to SCCP 20 (block 605) which indicates a check of the IOF of .central memory 10 is to be performed (dotted line from block 605), the PE 22 continuing to execute it's assigned task. The processor element 22 plays no further 35 role in the transfer of information between central memory 10 and peripheral adapter 40. The I/O software of PE 22 reads the status word of the I/O task structure when the data transfer is complete (block 610), the I/O completion indicated to the I/O software via a message from the SCCP 20 or the I/O software times out the I/O 5 if no termination has occurred. If the status signifies that the data transfer is completed, the next data transfer with that peripheral can be set up and ini¬ tiated. If the status indicates an incomplete or a busy, a retry may be attempted or some other appropriate 10 action may be taken by the I/O software. When no I/O transmissions are taking place, the SCCP 20 is in an interrogation ' loop (block 620) testing for a Check IOF (CIOF) message from PE 20 (dot¬ ted line from block 605) or a Service Needed (SN) mes- 15 sage (dotted line from block 670). When an input is received, the SCCP determines the specific request (block 625). (Assume for the present that a "Check IOF" message was received from PE 20.) When a check IOF message is received by the SCCP 20, the IOFs are read 20 from central memory 10 (block 630). (The data contained in the .IOFs is used by SCCP 20 to instruct the DCX 21 to connect the appropriate BSC 32.) The SCCP 20 then passes initiating command (or enabling) information (block 635) to the peripheral adapter 40 (dotted line ■25 from block 635) in accordance with the defined message protocol which is described in detail hereinunder. The " peripheral adapter 40 responds to the SCCP 20 that the initiating command was received (dotted line from block 660). The SCCP 20 waits a specified amount of time for 30 the response from the peripheral adapter 40 that the initiating (or enabling) command was received (block 640). The initial command transfer performed between CM 10 and PA 40 includes the transfer of command in¬ formation (i.e., the command appended message exchange 35 to be described in detail hereinunder) required by the PA 40 to properly communicate with any SCCP 20 which might subsequently service the PA 40 to handle the actual data exchange message sequence. When the initial transfer sequence is complete, the SCCP 20 disconnects from the PA 40, status information is stored in central memory 10 (block 650) and the SCCP 20 returns to inter- rogating loop (block 620). If the peripheral adapter 40 is busy or does not respond, the SCCP 20 stores the busy status in the appropriate location of the IOF and the transmission is terminated (block 650). The SCCP 20 then returns to the interrogating loop (block 620). After the initial transfer sequence, the SCCP 20 res¬ ponds to the service needed indication. For output transfers (from the PE 22) initiated by the PE 22, the peripheral adapter 40 sends service needed after the peripheral device 41 has completed the command operation (e.g., slewing or skipping) specified in the initial transfer sequence. *» When the peripheral device 41 desires to communicate to the central memory 10, the peripheral indicates this by informing the peripheral adapter (dotted line from block 695) which may be by an inter¬ rupt, a signal line, etc., the indication being a func¬ tion of the peripheral 41. When no I/O transmissions are taking place, the peripheral adapter is essentially in an idle mode, depicted by block 680, as being in a loop awaiting a transmission initiation request. When the transmission initiation request is received, the peripheral adapter 40 determines the request is from the peripheral device (PER) (block 690), and if the peripheral adapter had been previously enabled (block 675), a Service Needed message is sent (block 670) to the BSC 32 of DCX 21. During quiescent periods, the SCCPs 20 poll BSCs 32 for Service Needed. The first SCCP 20 to poll that BSC will service the peripheral adapter. In this manner the SCCP 20 receives the Service Needed message (dotted line from block 670). The SCCP 20 detects the Service Needed and indicates to the PA 40 that the SCCP 20 is ready (block OMPI 655), dotted line from block 655) and proceeds to trans¬ fer information in accordance with the defined message protocol (block 645). Meanwhile, upon receipt that the SCCP 20 is ready (block 665) the PA 40 proceeds to its transfer counterpart (block 660) and begins the transfer of information between central memory 10 and the periph¬ eral adapter 40 (block 660) in accordance with the defined message protocol. When the transfer is completed (block 685), the peripheral adapter 40 enters the idle state (block 680). When the transmission initiation request is from the SCCP 20, the peripheral adapter 40 makes that determination (block 690) and proceeds to transfer information in accordance with the defined message protocol (block 660). The SCCP initiated trans- mission request includes the enabling command which may not be followed by any subsequent information transfer from the SCCP 20. The peripheral adapter 40 then re¬ turns to the idle loop (block 680) in accordance with the defined* essage protocol. D. Protocol A message protocol is defined for the orderly transfer of information between the SCCP 20 and the peripheral adapters 40. The SCCP 20 can initiate an information transfer to a peripheral adapter 40 by issuing an appropriate control rr.essage. The message protocol, as defined, does not allow a peripheral adapter 40 to initiate an information transfer to the central system (i.e., to the SCCP 20). (A data processing system comprising the central memory 10, processing element 22, and the I/O processor 23, is sometimes referred to herein as the central system. ) A peripheral adapter 40 must wait for a command from the SCCP 20 before it can transfer information. The information transfer is on a transmit-response basis. The SCCP 20 issues a message to a peripheral adapter 40 and waits for a response from the peripheral adapter 40 before OMPI issuing another message. A peripheral adapter 40 issues a message only in response to a received message. Recovery procedures are defined within the message protocol of the preferred embodiment to allow for the retransmission of any message found to be in error. Error sequences are not described herein. Many al¬ ternative approaches to error sequences, which include retry, recovery, etc., are well known and may be im¬ plemented by those skilled in the art without departing from the true spirit of the invention. The defined message protocol is message ori¬ ented. The basic unit of information grouping is a message, the message being the vehicle for every com¬ mand, every response, and all information that is trans- mitted. Referring to Fig. 7, a typical message sequence is depicted. A message sequence is initiated by the SCCP 20 by transmitting a sequence starting message „to which the peripheral adapter 40 answers with response X, the response being a response message. Message 1 from . SCCP 20 is followed by a Response 1 from peripheral adapter 40, the sequence of Message-Response continuing until all the data exchange has occurred. The SCCP 20 then terminates the transmission by initiating a Se¬ quence Ending Message to which the peripheral adapter responds with response Y. A message sequence between the SCCP 20 and a peripheral adapter 40 comprises one or more exchanges, an exchange being defined as a message sent by the SCCP 20 and an appropriate response message returned by the peripheral adapter 40. Referring to Fig. 8, the message formats can be seen. Fig. 8A shows the message format from the SCCP 20 to the PA 40, and Fig. 8B shows the message format from the PA 40 to the SCCP 20. Eight-bit bytes are shown with the arrowhead showing the direction of trans- mission, bit 8 of the control byte being the first bit transmitted. Each message contains a control byte for specifying the command and responses required to control OMPI the message transfer, bits 5-8 containing the command and bits 1-4 containing a modifier. A message may or may not contain information bytes, depending on the control byte. The number of information bytes present is variable and not fixed, up to a maximum number of 256 eight-bit bytes in a single message transmission. The defined message protocol calls for the SCCP 20 to issue I/O commands to the peripheral adapters 40, to poll peripheral adapters 40 for I/O data transfer servicing, to abort I/O operations in progress on the peripheral adapters 40 upon command from the processing element 22, and to abort information exchanges between the central system and the peripheral adapters 40 upon command from the processing element 22. In order to implement these I/O control functions, 4 basic initiation commands are defined. They are, command offer (CO), service offer (SO), abort order (AO), and reset (RS). During a message sequence, control byte commands issued by the SCCP 20 include, send information (SI), data appended (DA), command appended (CA) , terminate (TRM), continue (CON), message error (MER) , and break connection (BC) . Control byte commands issued by the peripheral adapter during a message sequence include, send information (SI), literal appended (LA), data appended (DA), status appended (SA) , message error (MER), wait (W ) , and break (BRK) . A typical output (from the central system) sequence will now be described. Referring to Fig. 9, the complete output sequence is shown. The discussion begins with the operations of the SCCP 20. (Recall that the PE 22 causes the SCCP 20 to start with the CIOF message after having set up central memory 10.) The SCCP 20 connects to the proper BSC 32 as specified in the PAF (peripheral address field) and sends a command offer message to the PA 40 along with 2 bytes of control information contained in the PAFs, the CO message being defined as a 3 byte message. The modifier SIDN is a source identifier. The PA 40 responds with a send information message, the modifier CCT of the control byte indicating a control/ command count. This response indicates additional command bytes are required. The SCCP 20 sends the addition control information to the PA 40 via the com¬ mand appended message, the zero modifier (sometimes denoted NULL) indicating the modifier is not used. The PA 40 accepts and stores the control information and returns a break message terminating this part of the transmission. The SCCP 20 breaks the BSC 32 connection and continues to scan for Service Needed messages. Any SCCP 20 which next determines while scanning BSC 32 that the PA 40 requires service will connect to the proper BSC 32 and start a new message sequence with a Service Offer message, containing the source ID modifier. The PA 40 responds with a literal appended message, in¬ dicating it is ready to accept the data by the data output ready modifier (DOR), and containing service setup information required by the SCCP 20. The service setup information is the memory address of IOF, which indicates the address of CM in which the data is to be stored, denoted as "L" field, and the peripheral iden¬ tifier, which permits verification by the SCCP 20 that the proper IOF fields are being utilized for the periph- eral device, denoted as check field or "C" field. The transfer to the L field and C field in the literal appended message by the peripheral adapter 40 allows any SCCP 20 to service the PA 40. The data appended-send information message exchanges continue until all the data has been outputted. The SCCP 20 then ends the sequence with a terminate message, the PA 40 responding with a break (BRK) , thereby releasing the SCCP 20. When a BRK message is received, the SCCP 20 updates the IOF Final Byte Count to contain the number of bytes trans- mitted thus far, thereby providing the necessary informa¬ tion to calculate the next available memory address if the total data transfer has not been completed. OMPI The SCCPs continue the interrogation, the SCCP 20 determining an incomplete transfer connects to the BSC 32. The SO message transferred out is responded to by an LA message with the result input ready (RIR) modifier and any service setup information. The SCCP 20 sends an SI message which is responded to by a status appended (SA) message with the result (or status) which may be a status register of the peripheral indicating the results of the transferred data. The SCCP 20 then sends the break connection message and the PA 40 re¬ sponds with a break, thereby releasing the SCCP 20, completing the data output transfer. For a peripheral to input data to the central system, the peripheral must first be "enabled" by the PE 22. The PE 22 must set aside an IOF area in central memory and cause a command offer sequence to take place. The PA 40 stores the necessary control information (e.g., memory address of IOF in which the address for data is to be stored) and can pass this information to the SCCP 20 which' will subsequently service the PA 40, thereby allowing any SCCP 20 to service the PA 40. When the peripheral desires to communicate with the central memory 10, the peripheral causes the PA 40 to raise the Service Needed signal. The first SCCP 20 to detect the Service Needed signal (or flag) con¬ nects to the BSC 32 and initiates the service offer sequence as shown in Fig. 10. Referring to Fig. 10, the SCCP 20 sends the service offer message. The PA 40 responds with a literal appended message with a data input ready (DIR) modifier. The message also contains information which the SCCP will need to communicate with central memory 10, such as the IOF address. The SCCP 20 then transfers a send information message, the modi¬ fier DLI specifying the maximum number of appended bytes the central system can accept in a message from the PA 40. The PA sends the data appended message with the input data, the SI/DA message exchange continuing until OMP the transfer is terminated. The transfer can typically be terminated in one of two ways. The first way shown in Fig. 10, the termination is by the PA by sending a break response to a SI message. The second way the termination is ended is initiated by the central system sending a terminate message with a break response from the PA 40. The status sequence can then take place as in the data output case described above to complete the transfer. E. MPM Operation The operation of the MPM 402 is achieved by the execution of the microinstructions stored in the ROM of the sequence controller 410. The execution of the microinstructions, which serve to configure the ROM of sequence controller 410, implement the functions of the defined message protocol performed by the PA 40 as described above. The MPM 402 has five defined states, the idle state, the command output state, the data input state, the data output state, and the result input state, denoted herein as state A, state B, state C, state D, and state E respectively. Referring to Fig. HA through HE, the flow diagrams depicting typical transmission sequences of each of the five states are shown. In the normal transfer of information as defined by the message protocol, each MPM state is expecting one of a par¬ ticular message type in order to perform an orderly completion of the transfer sequence. If one of the expected message types is not received, an error con- dition exists. Each state performs a response or a plurality of responses with SCCP 20 corresponding to the current state of MPM 402. In each state, the MPM 402 waits for the input message from the SCCP 20 to com¬ plete, determines the message type from the control byte, and responds accordingly. This structure is due primarily to the message-response exchange of the de- fined message protocol described above in which the PA 40 is essentially slave to the SCCP 20. Fig. HA shows the flow diagram for the idle state. When the PA 40 is powered, the normal equipment initialization occurs and the MPM 402 starts operation by entering the idle state in a loop waiting for the end of message signal from LCM 401 (block 501) . When the end of message signal is detected, the control byte is checked to determine if the message is a service offer (SO) message (block 502). If the message is not an SO message, a check is performed to determine if the mes¬ sage is a command offer (CO) message (block 503). If the message is not a CO message, an error condition is present and error procedures are entered. If the mes- sage is a CO message (block 503), the MPM determines if the peripheral is busy, absent or not ready (block 504) by checking the appropriate status flag in CS-RAM 420. If the peripheral is busy, absent, or not ready, the MPM 402 causes the PA 40 to respond with a break message BRK, with a busy modifier BSY, an absent modifier ABS, or a not ready modifier NRDY (block 505), to the SCCP 20. If the peripheral is not busy (block 504), the MPM 402 causes the PA 40 to respond with a send information message having a control/command count modifier, SI-CCT (block 506), to the SCCP 20 indicating the number of PAFs to be transmitted, and then enters the command output state (block 507). If the message is determined to be an SO message (block 502), the MPM 402 determines the service type (block 508) by fetching information in CS-RAM 420 set up by the PA nucleus 403. The information is uti¬ lized to determine if the service type is data input (block 509). If the service type is not data input, a check is made for a data output service type (block 510). If the service type is not data output, a check is made for a result input service type (block 511). If the service type is not results input an error condition exists and error recovery procedures are entered. If the service type is results input, the MPM 402 cause the PA 40 to respond with a literal appended message with a results input ready modifier, LA-RIR (block 512), to the SCCP 20. The LA-RIR message also contains literal information, i.e. information which the SCCP 20 will need to communicate with central memory 10, which is stored in CS-RAM 420. The MPM 402 then enters the results input state (block 513). If the service type is determined to be data output (block 510), the MPM 402 causes the PA 40 to respond with a literal appended message and a data output ready modifier, LA-DOR (block 514) to the SCCP 20, the message also containing lit¬ eral information obtained from CS-RAM 420. The MPM 402 then enters the data output state (block 5 * 15). If the service type is determined to be data input (block 509), •the MPM 402 causes the PA 40 to respond to SCCP 20 with a literal appended message, the modifier being data input ready, LA-DIR (block 516), along with the literal information from CS-RAM 420. The MPM 402 then enters the data input state (block 517). The flow diagram of the command output state is shown in Fig. 11B. The MPM 402 waits for the command appended message, CA (block 520), from SCCP 20 by con- tinuously checking the end of message signal from LCM 401. When the end of message signal is detected, the message type is checked (block 521). If the message type is not CA, an error condition exists and error recovery procedures are entered. If the message type is CA, the command bytes appended to the control byte are stored in the allocated locations of CS-RAM 420, and the status of the peripheral is updated to BUSY (block 522). The MPM 402 responds to the SCCP 20 by transmitting a break message, BRK (block 523), and enters the idle state (block 524) completing the initial transmission se¬ quence. The flow diagram of the data input state is shown in Fig. IIC. The MPM 402 waits for a message from ' the SCCP 20 to complete by continuously checking the end of message signal (block 530). When the end of message signal is detected, the MPM 402 checks to determine if the message type (block 531) is send information, SI. If the message type is not SI, a check is made to de¬ termine if the message type is terminate, TRM (block 532). If the message type is not TRM, an error con¬ dition exists and error recovery procedures are entered. If the message type is TRM, the SCCP 20 is indicating no more data is to be inputted and is terminating the sequence. The MPM 402 interrupts the PA nucleus 403 (block 533) indicating to the peripheral that the trans¬ fer of data is properly completed. The MPM 402 causes - the PA 40 to respond to the SCCP 20 with a break mes¬ sage, BRK (block 534), and then returns to the idle state (block 535). If the message type is determined to be SI (block 531), the MPM 402 cheς s to determine if the PA nucleus is "ready for transferring data by testing a READY control signal at the MPM 402-PA nucleus 403 interface (block 536). If the READY control signal is not present, the MPM 402 causes the PA 40 to transmit a BRK response (block 537) to SCCP 20 and then enters the idle state (block 538). If the READY control signal is present (block 536), the MPM 402 causes the data .ap¬ pended message to be transmitted to SCCP 20 (block 539). The MPM 402 remains in the data input state, returning to checking for the end of message signal from LCM 401 (block 530). In this manner, the SI/DA message-response sequence continues until all the data is inputted. The flow diagram of the data output state is shown in Fig. 11D. The MPM 402 waits for a message from the SCCP 20 to complete by continuously checking the end of message signal (block 540). When the end of message signal is detected, the MPM 402 checks to determine if the message type (block 541) is data appended, DA. If the message type is not DA, a check is made to determine if the message type is terminate, TRM (block 542). If the message type is not TRM, an error condition exists and error recovery procedures are entered. If the message type is TRM, the SCCP 20 is indicating no more data is to be outputted and is terminating the sequence. The MPM 402 interrupts the PA nucleus 403 (block 543) indicating to the peripheral that the transfer of data is properly completed. The MPM 402 causes the PA 40 to respond to the SCCP 20 with a break message, BRK (block 544), and then returns to the idle state (block 545). If the message type is determined to be DA (block 541), the MPM 402 checkr. to determine if the PA nucleus 403 is ready for receiving data by testing . the READY control signal at the MPM 402-PA nucleus 403 interface (block 546). If the READY control signal is not present, the MPM 402 causes the PA 40 to transmit a BRK response (block 547) to SCCP 20 and then enters the idle state (block 548). If the READY control signal is present (block 546), the MPM 402 causes the -send information message to be transmitted to SCCP 20 (block 549). The MPM 402 remains in the data output state, returning to checking for the end of message signal from LCM 401 (block 540). In this manner, the DA/SI message-response sequence continues until all the data is outputted. ' The flow diagram of the result input state is shown in Fig. HE. The MPM 402 waits for the send information message, SI (block 550), from SCCP 20 by continuously checking the end of message signal from LCM 401. When the end of message signal is detected, the message type is checked (block 551). If the message type is not SI, an error condition exists and error recovery procedures are entered. If the message type is SI, the MPM 402 causes the PA 40 to transmit a status appended message, SA (block 552) to the SCCP 20 with the result information appended to the control byte. The MPM 402 interrupts the PA nucleus 403 (block 553) in¬ dicating to the peripheral that the status transfer sequence is properly completed, and then enters the idle state, (block 554) . While there has been shown what is considered to be the preferred embodiment of the invention, it will be manifest that many changes and modifications can be made therein without departing from the essential spirit and scope of the invention. It is intended, therefore, in the annexed claims, to cover all such changes and modifications which fall within the true scope of the invention.

Claims: CLAIMS : 1. A data processing system having at least one processing element (22), a central memory (10) coupled to said processing element (22), and an I/O pro¬ cessor (23) coupled to said central memory (10), and wherein said I/O processor (23) has a channel port (32) for providing a transmission path for communicating in¬ formation to a plurality of peripheral subsystems (30), and wherein each of said peripheral subsystems (30) has included a peripheral adapter (40) interfacing with a plurality of peripheral devices (41), characterized in that said I/O processor has a plurality of bit serial channel ports for providing a transmission path in a bit serial link format to each of said peripheral sub¬ systems, and in that each said peripheral adapter co - prises first means (401) having an input adapter to receive information from said I/O processor (23) and having an output adapted to transmit information to said I/O processor (23), for performing a serial-to- parallel or parallel-to-serial transformation on the information from said I/O processor (23) or to said I/O processor (23), respectively, second means (403), having a plurality of input-output terminals adapted to interface with said peripheral devices (41), for providing peripheral controller logic functions for controlling said peripheral devices (41), and for the transfer of information with said peripheral devices (41), and third means (402), operatively connected to said first means and to said second means, for gener¬ ating response transmissions to said I/O processor (23) in accordance with a defined message protocol, in con¬ junction with controlling the transfer of information between said first means (401) and said second means (402). 2. A data processing system according to claim 1, wherein said third means (402) is characterized 2. ( concluded) by: memory means (420, 450) for providing temporary storage of command and control information; coupling means (430, 440), operatively connected to said memory means (420, 450), for providing interface logic between said first (401) and said second means (403); and con¬ troller means (410)', operatively connected to said mem¬ ory means (420, 450) and to said coupling means (430, 440), having a control store configured to store a plurality of routines for implementing a defined message protocol, said control store causing the generation of control signals thereby controlling said memory means (420, 450) and said coupling means (430, 440), and further causing the generation of response transmissions to said I/O processor (23) in conjunction with the con¬ trolling of said memory means (420, 450) * and said coupling " means (430, 440) in accordance with said de- fined message protocol. * 3. A data processing system having at least one processing element (22), a central memory (10) coupled to said processing element (22), and an I/O processor (23) coupled to said central memory (10), and wherein said I/O processor (23) has a channel port (32) for providing a transmission path for communicating information to a plurality of peripheral subsystems (30), and wherein each of said peripheral subsystems (30) has included a peripheral adapter (40) interfacing with a plurality of peripheral devices (41), character¬ ized in that said I/O processor has a plurality of bit serial channel ports for providing a transmission path in a bit serial line format to each of said subsystems, and in that each said peripheral adapter in combination with said I/O processor implements a method of communi¬ cation characterized by the steps of: a) interrogating continuously an input signal indicating the end of an input message from said I/O processor (23), said input message having an 3. ( concluded ) identifier for indicating one of a plurality of message types; b) determining the message type, when said input signal indicates the end of the input mes¬ sage; c) transmitting a first response, said first response being of a message type corresponding to the message type of the input message of step (b); d) entering one of a plurality of oper¬ ating states; and e) performing the functions of said operating state, said peripheral adapter (40) causing a response for each input message received in accordance with a defined message protocol, returning to step (a) when the functions of the operation state are completed. 4. A data processing system according to claim 3, * herein said step (e) of performing is charac¬ terized by the steps of: a) checking continuously said input signal indicating the end of the input message from the I/O processor (23); b) decoding the message type when said input signal indicates the end of the input message; and c) transmitting an appropriate response to the input message received in step (b), the appro¬ priate response includes control information, data, or status in accordance with the defined message protocol, and if the transmission sequence is completed returning to the interrogating step, otherwise returning to the checking step.

Inventors: CHARI V, COSTA J
Applicants: NCR CO, NCR CORP
Application year: 1981
Main classification: G06F3
IPC codes: G06F9, G06F13, H04L29