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.