I/O Subsystem


The V-Series Input/Output operation is based on the handling of I/O Control Blocks (IOCB). The IOCB implementation provides the following main features:

  1. All the information needed by an I/O operation (I/O Descriptor, Result Descriptor, tec.) is found in one continuous memory structure.
  2. Multiple I/O initiates per channel
  3. I/O Complete Queues to directly locate IOCBs with completed I/O's.

The instructions used to interface to the I/O subsystem (IOS) are:

I/O Subsystem Initialization

To initialize the I/O subsystem, a WHR (BF=05) is executed. This establishes the location of the System IOCB Memory Area. The System IOCB memory area contains all the descriptors for all the I/OI's to be fired. It also contains other data structures which are used by the software and IOS.

I/O Handling

The basic I/O communication consists of firing an I/O with a SPIO. Any time subsequent to the SPIO, a PIQ is executed to determine which and when an I/O has completed.

Although CIO and IOC are not required to interact with the IOS, they are used to facilitate the communication. During normal operation, the sequence CIO, SPIO, {interrupt], PIQ, IOC is performed.

The IOCB is an integral part of the interface to the IOS. It is built by software. CIO may or may not be used to contribute to its construction. An IOCB is used by the processor during SPIO and by the IOS while the I/O is executing. Once the I/O completes, software may reference it to determine the status of the completed I/O. Finally, the IOC instruction references it to unnail the Memory Area associated with the I/O Buffer.

Three is one IOCB for each I/O that is executing. An IOCB for an I/O that is executing MUST NOT be disturbed by software to prevent unpredictable results. All the IOCB's reside in the System IOCB Memory Area; they are located on modulo 100 boundaries.

The notification to the software of an I/O completion is done via one of two asynchronous interrupts. They are:

  • Normal I/O Complete includes Normal I/O's that complete with or without exceptions.
  • Real Time I/O Complete includes Real Time I/O's that ocmplete with or without exceptions.

With each of these two types of I/O complete is associated a FIFO Queue. When an I/O complete interrupt occurs, an entry is pushed into the corresponding I/O Complete Queue (Normal or Real Time). The entry in each case is a pointer to the IOCB for an I/O that was fired. The PIQ instruction is used to pop these Queues.

instructions/iosubsystem.txt · Last modified: 2009/05/11 05:35 by scott
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki