In order devices
requests
several
l:locks
types:
to centrol the activity of the I/O of the system and schedule I/O uFon them, I/O control uses tYFes cf control blocks. These
can l:e separated into two basic Static blocks that describe the
components of the I/O system. Dynamic l:lccks that represent active and pending requests for I/O operations.
The I/O cemponents of the real system
are described by one control block for each
channel, control unit, and device available to the control program. Units present but
not represented by control blocks are not
available for either user-initiated or
centrol program-initiated operations.
REAL CHANNEL CONTROL BLOCKS For each channel attached to the system
there exists a Real Channel Control Block (RCHELOK) which contains: The channel Fortion of the address of
its attached units, Status flags indicating the channel's ayailability for scheduling. A two-way queue anchor pointing to the
list of I/O requests waiting to use the
channel.
In additien, each RCHBLOK contains 32
halfword indexes, arranged in ascending
address order, that represent the
displacement into the Real Central Unit table of the control blocks for the control
units attached to the channel. The 32
entries are required because the control
unit address may be made up of five bits
from the unit address. To locate the
control tlock for a given unit:
1. Index into the table
displacement equal
control unit address.
2. Load the index value.
in the RCHBLOK a
to twice the
3. Add the value to the base address of
the Real Control Unit Table. Real I/O Control Blocks BEAL CONTROL UNIT BLCCKS The Real Control Unit Table is composed of Real Control Unit Blocks (RCUBLOK), one for
each control unit on the system. These
blecks are similar to the RCHELOK in that
they contain the control unit portion of
the address and status flags, and a peinter
to a queue of I/O requests. In addition,
the RCUBIOK contains a pointer te the RCEELOK for the channel to which it is
attached. The RCOBLOK ccntains a table of
16 halfwerd entries that represent the
displacment into the Real Device Table of its attached devices. This table is
referenced in the same manner as the table
in the RCEBLOK. REAL DEVICE CCNTROL BLCCKS Each device and 3270 remote communications
line in the system is represented by a Real tevice Control Block (REEVELCK), contains
the device portion of the unit address and
status flags similar to those in RCHBLCK and RCUELCK. There is alse a pointer fer
those operations that are waiting fer the
device to become available. Fields that
appear in the RDEVBLOK and not in the othe';c blocks include a pointer te the I/O that is currently active en the device, SIC counts, and a pointer te error and sense
information. The RDEVELCK contains a
pointer to the RCUELCK for the control unit to which it is attached and fields of
device dependent information which do net
affect the operation of I/C If the RDEVBLOK is associated with 3270 remote communications line, then the REEVELOK contains a pointer to NICBLCKs that represents the resources on that line. INPUT/OUTFUT BLOCKS I/O requests that are active in the system
are represented Input/Output Elocks (ICELOK) There 1S one ICELOK for each
operation (that is, channel program) to te executed. The IOBLOK is ccnstructed by the
requesting task and contains such
information as: The identity of the requestor The address of the channel program to be
executed Section 1. CP Data Areas and Centrel Elocks 79
The address to which centrol is
returned upon coapletion of operation to be
the
In addition, the IOBLOK contains status
flags that indicate the current state of
the operation (such as, whether or not an
error has occurred, if an errcr recovery (ERP) is in and the
condition returned fro. the 510) and the CSW associated with the interrupt that
signals the end of the operation. Since IOBLOKS are queued off various I/O control
tlocks, they also contain forward and
backward queue pOinters. DMKIOS builds in thea the real device address of the unit on
which the operation is started.
In general, the IOBLOK representing a
given operation progresses through the
system by being queued, in turn, from device, control unit, and channel blocks
until a path is at last free to the device.
A 510 is then issued. After the operation
is complete, the IOBLOK is dequeued fro.
the RDEVBLOK and stacked on a queue maintained in the dispatcher, D!KDSP. Each tiae the dispatcher is entered, the entries
on the queue are unstacked and control is
passed to the point sFecified in the
Interrupt Return Address (IOEIBA). After
I/e contrel stacks the ICELCK for the given task, it attempts to restart all of the
components that have been freed by the completion of the operation. NEiWOBK INTERFACE CONTBOL fLOCK There is one Network Interface Centrol Elock (NICBLOK) for each defined 370% and
each resource attached to a 3270 bisynchronous line. The NICELOK provides
the correspondence between the line or
device address and the Fhysical resource
connected to that line. This block not
only defines the identity of the terminal type, line, or control unit but it also
contains flags and status information pertaining to that resource. If the
defined resource is a remote 3270 component, the NICELOK ccntains the current
line coordinates
l polling and selection
characters information as veIl.
The remainder of this secticn describes
the real I/O control blocks.
80 IBM VM/370 Data Areas and Control Block Logic
Previous Page Next Page