(19)
(11) EP 0 412 269 A2

(12) EUROPEAN PATENT APPLICATION

(43) Date of publication:
13.02.1991 Bulletin 1991/07

(21) Application number: 90111968.5

(22) Date of filing: 23.06.1990
(51) International Patent Classification (IPC)5G06F 13/12
(84) Designated Contracting States:
DE FR GB

(30) Priority: 11.08.1989 US 392629

(71) Applicant: International Business Machines Corporation
Armonk, N.Y. 10504 (US)

(72) Inventors:
  • Carey, Maurice Edward
    Troy, New York 12181 (US)
  • Miracle, Gerald Holt
    Pleasant Valley, New York 12569 (US)
  • Moyer, James Theodore
    Endwell, New York 13760 (US)
  • Neuner, Richard Andrew
    Port Ewen, New York 12466 (US)

(74) Representative: Jost, Ottokarl, Dipl.-Ing. 
IBM Deutschland Informationssysteme GmbH, Patentwesen und Urheberrecht
D-70548 Stuttgart
D-70548 Stuttgart (DE)


(56) References cited: : 
   
       


    (54) Channel and extender unit operable with byte mode or non-byte mode control units


    (57) In a data processing system in which an extender unit (22) interconnects the parallel bus (24) of a control unit (19) and a serial link (18, 20) of an extender channel, the channel and the extender unit (22) send and receive serial frames that permit the extender unit (22) to operate under the protocol of the parallel bus (24) with either byte mode devices or non-byte mode devices. The control unit (19) can be modified to operate with a byte mode device in data streaming, a high speed data transfer mode.




    Description

    Related Applications



    [0001] An US patent application of Casper, Flanagan, Miracle, Neuner and Potvin entitled Apparatus for Interconnecting a Control Unit having a Parallel Bus with a Channel having a Serial Link (Serial Number 392 754), filed on the same day as this application, describes a serial frame protocol that is used by the extender channel and extender unit of this invention. This application is incorporated by reference.

    [0002] An US patent application of Minassian, Miracle, Neuner and Potvin (Serial Number 392 867), filed on the same day as this application, is also related.

    Field of the Invention



    [0003] This invention relates to data processing apparatus and more specifically to an extender unit that interconnects a control unit and a channel.

    Overview of an I/O Subsystem with an Extender Unit



    [0004] The general organization of an I/O subsystem is well known, and the extender unit is described in Casper et al., but it will be helpful to summarize the features and terminology that particularly apply to this invention. In a system without an extender unit, the path for data transfers between an I/O device and main processor memory, traced from the device to memory, includes a control unit, a serial link or a parallel bus, a channel, a data stager, and a component that connects the data stager and the central processors to the memory. The memory holds the data of a data transfer, and it also holds a channel program and control blocks with information about an I/O device and about a current data transfer. The control unit adapts the general command structure of the channel to the specific requirements of a particular device.

    [0005] If the channel and the control unit are interconnected by a serial link, the link carries serial frames with data and control information. If the channel and control unit are interconnected by a parallel bus, data transfers proceed according to a protocol that is called the OEMI protocol (the term is from a related publication cited in Casper et al.) An extender unit is connectable between the serial link of a channel and the parallel bus of a control unit.) The parallel bus has two sets of lines for transferring bytes between the channel and the control unit and other lines, called tag lines, that control these transfers. The protocol of the extender unit bridges the serial frame protocol of a serial channel and the OEMI protocol of a parallel bus control unit.

    [0006] In the terminology of Casper et al., a channel that is connected to a control unit by the parallel bus is called a parallel channel, and a channel that is connected to a control unit by a serial link is called a serial channel. A channel becomes a serial channel or an extender channel when the appropriate microcode is loaded.

    [0007] This summary of the extender channel and the extender unit should be sufficient for understanding the preferred embodiment of this invention. See Casper et al. for a discussion of prior art parallel bus extenders, citations to publications about the OEMI bus and the architecture of the I/O subsystem, and a detailed description of the structure of all of the frames used by the extender channel and extender unit, including particular frame structures that are part of this invention.

    Byte Mode and Non-Byte Mode Devices



    [0008] From the standpoint of this specification, devices and their control units are characterized in two ways: how they connect to and disconnect from the parallel bus and how data bytes are transferred on the parallel bus. Control units and devices ordinarily remain physically connected; in an operation called initial selection, one of several devices and an associated control unit become logically connected to a bus and the associated channel. When the device and its control unit disconnect, some other device can connect to the same bus and channel.

    [0009] Byte mode devices (also called byte multiplex devices) can disconnect after a byte has been transferred or after initial selection (and before any byte has been transferred). Typically a byte mode device transfers one byte and then disconnects. Non-byte mode devices (some of which are called burst mode devices) remain connected through an entire operation.

    Data Transfer Modes



    [0010] Some data transfers on the parallel bus are interlocked. For each byte, the control unit raises a tag called Service In (or a related tag called Data In) and the channel raises a tag called Service Out (or the related tag Data Out). In a data transfer mode called data streaming, the control unit and the channel raise these tags when a byte is sent or received, but the tags are not required to overlap in time. In data streaming, these tags are counted by the control unit and the counts for in tags and out tags are compared to check that no byte has been lost and the result is sent to the channel.

    [0011] Commonly, a slow device such as a card punch operates in byte mode and in interlocked mode. A fast device such as a magnetic disk drive commonly operates in non-byte mode and data streaming mode. Other combinations are useful with some devices. For example, a byte mode device might connect to receive a command, disconnect to perform a preliminary operation such as filling a buffer for a read operation, and then reconnect to transfer data at a high rate in data streaming mode.

    Summary of the Invention



    [0012] One object of this invention is to provide an extender unit that operates with either byte mode or non-byte mode devices, as some parallel channels have operated in the prior art. Some of the frame structure which is set out in Casper et al. will be described here for operations of the extender channel and the extender unit that permit the extender unit to operate in either byte mode or non-byte mode.

    [0013] Another object of this invention is to provide an extender unit that can operate a byte mode device in data streaming mode. Some prior art parallel channels have operated in data streaming mode with byte mode devices. In this invention, the parallel control unit is modified (using a known technique) to delay data streaming while the channel and the extender unit perform operations that are delayed by the time to propogate frames on the serial link.

    [0014] Other features and objects of the invention will be apparent from the description of our preferred embodiment.

    The Drawing



    [0015] 

    Fig. 1 is a diagram showing the extender channel, the extender unit, and the control unit of this invention.


    The Preferred Embodiment


    The system of Fig. 1



    [0016] Fig. 1, which is identical to Fig. 1 of Casper et al., shows a representative central processor 12, a main memory 13, a representative channel 15, a data stager 16 that interconnects channel 15 and other channels (not shown) with main memory, representative I/O devices 17a, 17b, 17c, representative control units 19a, 19b connected to the devices, and the extender unit 22. The extender unit is connected to the control units by a parallel bus 24 and is connected to the channel by a bidirectional serial link 18, 20.

    [0017] It will be helpful to assign arbitrary connection types and data transfer types to the devices and their control units. Control unit 19a and its devices 17a and 17b operate in byte mode and control unit 19b and its device 17c operate in non-byte mode. (Byte mode control units typically operate with more than one device, but the number of devices connected to each control unit in the drawing is not significant.) Byte mode devices 17a operates in interlocked mode and byte mode device 17b operates in data streaming modes. Control unit 19a is preferably modified for operation in data streaming mode, as will be described later, but the devices and their control units are otherwise conventional according to the OEMI protocol.

    The serial frame format



    [0018] A frame on serial link 18, 20 has one or more bytes called frame contents bytes, and appropriate start-of-frame bytes and end-of-frame bytes. Both the channel and the extender unit transmit idle characters when they are not transmitting frames. One of the frame contents bytes identifies the frame as one of several frame types: a Data frame, a Control frame, a Test frame a Command frame, and a Status frame. Some bytes carry flags or codes, and some bytes carry other information. The frame structure is defined in detail in the application of Casper et al. but the frames will be described as they appear in the examples of data transfers under this protocol.

    Initial Selection and Disconnect



    [0019] A series of steps are performed on the parallel bus to select a particular I/O device for a data transfer or other operation. In this sequence, the control unit receives a command byte from a CCW and it returns a status byte which tells whether the device can perform the command. As part of the initial selection sequence, Select Out and Hold Out are raised on the bus and the control unit raises Operational In. After the device has been selected, it can not disconnect until Select Out and Hold Out fall. Conventionally, a channel operating with a byte mode device drops Hold Out and Select Out after initial selection, and the device may disconnect. A channel operating with a non-byte mode device does not drop these tags until the data transfer has been completed and the control unit presents the device ending status.

    [0020] For initial selection, the extender channel and the extender unit cooperate to produce this conventional operation on the parallel bus. Casper et al. gives a detailed example.

    Device reconnection



    [0021] At the beginning of this sequence of steps, the channel is idle -- it does not have a Start Subchannel or corresponding instruction to execute. The channel sends an outbound Control frame with the code (hex 0A) for Enable Polling. The following sequence of steps is then performed if a byte mode device is ready to reconnect to continue a byte mode operation.

    1. The extender unit raises Select Out and Hold Out, as is standard in the OEMI protocol, and sends the channel an inbound Control frame with the code (hex 82) for Response Executed.
    In this example, the device is ready to reconnect. It performs the standard steps of blocking Select Out, raising Operational In, putting the device address on Bus In, and raising the tag Address In.

    2. The extender unit sends the channel a Control frame with the code for Control Unit Connected (hex 8A) and with the device address in the third byte. (Note that the extender unit does not know why the device is connecting. A device can connect on a polling sequence to start a device-initiated operation, to continue an operation in byte mode, or to present secondary status.)

    3. The channel accesses main memory to fetch a control block for the device identified by the address in the Control frame.

    4. Continuing from step 2, the extender unit puts a byte of all 0 bits on Bus Out and raises Command Out to acknowledge the device address. The control unit drops Address In and the extender unit drops Command Out.

    5. The control unit raises Service In or Data In to continue the data transfer. (Service In starts a data transfer in interlocked mode and Data In starts a data transfer in data streaming mode.) The device and control unit are now connected.

    6. In response to Service In or Data In, the extender unit sends the channel an inbound Control frame with the code (hex 9A) for Data Reconnect. Note that the tag from the control unit does not by itself establish that the device is reconnecting. If the device is not reconnecting, the channel will take appropriate action as described later.
    After the channel receives the Data Reconnect frame, it performs the following steps.

    7. The channel tests a control block in main memory to confirm that the device is a byte mode device. (If the device is not a byte mode device, there is an error in the configuration tables used by the channel and the operation cannot continue until it is corrected.)

    8. If the device is a byte mode device, the channel tests the subchannel for the data transfer mode. If the device is not now in data transfer mode, the channel performs a conventional operation called a selective reset (using a Control frame with code hex 72).

    9. If the device is in data transfer mode, then the channel sends the extender unit a Command Update frame containing the active command byte from the subchannel with the device address the flags, and the parameters that were used when the device was originally selected. One parameter, Byte Mode, is set to show that the device is a byte mode device. If the data transfer is a read operation, then a request for read data can be passed to the extender unit in this Command Update frame or in a subsequent Read Data Request frame. If the data transfer is a write operation, the channel then sends one or more Write Data frames.

    10. After the extender unit receives the Command Update frame plus ability to transfer at least one byte of data or END flag, then the extender unit will respond to Service In or Data In with Service Out or Data Out or Command Out (stop).

    11. After the device disconnects, the extender sends a Control frame with the code for Control Unit Disconnected (code hex 92). (A byte mode device does not submit ending status until the data transfer has been completed.) The channel then updates the control block for the device so that the operation can proceed when the device again reconnects. These operations by the extender channel are conventional for parallel channels that are configured to operate with byte mode devices.


    Reconnection for Data Streaming



    [0022] In step 6 the control unit raises Service In to begin the data transfer in interlocked mode or Data In to begin in data streaming mode. In a read operation, the control unit puts the first byte on Bus In. In interlocked mode, the control unit waits until the tag Service Out rises and it then drops Service In. When Service Out falls on the parallel bus, the control unit can put the next byte on Bus In and raise Service In to continue the data transfer. Thus in interlocked mode, the tag sequence provides the delay for steps 6 through 9.

    [0023] In a read operation in data streaming mode, the control unit puts the second byte on the bus and raises Service In a timed interval after the first byte without waiting for the rise of Data Out on the bus. Preferably the read data transfer does not begin until the steps have been completed as described for the interlocked operation. Consequently, the control unit is modified to transfer the first byte in interlocked mode, as is known in other data transfers.


    Claims

    1. A data processing system having control units (19) operable with byte mode devices and non-byte mode devices, a parallel bus (24) connected to a control unit (19) for data transfers according to a predetermined protocol, and a channel (15) for executing a channel program for data transfers, and an extender unit (22) having means for connecting to the serial link of the channel and for sending and receiving frames on the link and means for connecting to the parallel bus and for handling data transfers and related operations on the parallel bus,
    wherein the improvement comprises, in the extender unit 22),
    means for initially selecting a byte mode device according to a protocol that permits the device to disconnect as a byte mode device,
    means for reconnecting the device including means responsive to a frame from the channel (15) to begin a polling sequence on the parallel bus (24),
    means for sending a Control frame to the channel (15) with the device address in response to the device address on the parallel bus (24) during the polling sequence,
    means responsive to a subsequent frame from the channel (15) containing the active command and related flags and parameters to continue the data transfer,
    means responsive to disconnecting by the control unit (19) for sending the channel (15) a frame signifying that the control unit (19) has disconnected, whereby the channel (15) can update a control block for the data transfer to enable the operation to continue when the device (17) reconnects,
    and means for sending the channel (15) a frame signifying that the data transfer has been completed.
     
    2. The extender unit (22) of claim 1 wherein the extender unit (22) includes means for detecting a parameter (Byte Mode) in a Command frame from the channel (15) and for operating tag lines on the bus to allow the control unit (19) to disconnect after initial selection if the parameter indicates that the device (17) is a byte mode device and to prevent the control unit (19) from disconnecting after initial selection if the parameter indicates that the device (17) is a non-byte mode device.
     




    Drawing