Browse Prior Art Database

I/O Control Block Structure for Concurrent Operations on an I/O Device

IP.com Disclosure Number: IPCOM000039924D
Original Publication Date: 1987-Aug-01
Included in the Prior Art Database: 2005-Feb-01
Document File: 3 page(s) / 52K

Publishing Venue

IBM

Related People

Bourke, DG: AUTHOR [+3]

Abstract

This article descibes a technique which provides input/output (I/O) devices with concurrent operations compatible with program views of the device. Conventional notions of an I/O device always being in a slave relationship to the program have resulted in limitations on the concurrency of operations possible with the device. For example, the IBM Series/1 control block structure for an I/O device consisted of one device control block (DCB) in execution at a time, supplemented with an attention-interrupt capability to shoulder tap the program of the presence of data not solicited from the viewpoint of the program.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 50% of the total text.

Page 1 of 3

I/O Control Block Structure for Concurrent Operations on an I/O Device

This article descibes a technique which provides input/output (I/O) devices with concurrent operations compatible with program views of the device. Conventional notions of an I/O device always being in a slave relationship to the program have resulted in limitations on the concurrency of operations possible with the device. For example, the IBM Series/1 control block structure for an I/O device consisted of one device control block (DCB) in execution at a time, supplemented with an attention-interrupt capability to shoulder tap the program of the presence of data not solicited from the viewpoint of the program. In order for the program to input unsolicited data, a DCB had to be used, but frequently a DCB was already in execution because of prior program commitment to a solicited operation, because of the more time critical need to input unsolicited data, and then to restart the aborted operation. This resulted in undue need to abort/restart operations and in excessive interrupt activity. The opening of a tape drive door, an I/O device going to the ready conditions, and an external request to transmit when a device was in transmit state are cases of simple unsolicited events where the amount of data needed by the program to resolve or clarify the action required was minimal. In contemporary environments, the amount of unsolicited data viewed from a program perspective has grown dramatically. Shared resources, dynamic configuration, auto-configuration, and emphasis on telecommunications and networking have been primary contributors to this growth. Such environments call for a greater balance of concurrency. One method of achieving this balance in the device involves departing from notions that a device is always a slave to the program, and recognizing program views of data. An I/O device is provided the means to run concurrent I/O operations by an I/O control block (IOCB) structure that recognizes two major program views of a device: 1. The first type of IOCB is called the solicited control block (SCB), supporting the view that the device is a

slave to the program and is capable of executing

operations solicited by the program in the role of

device master. 2. The second type of IOCB is called an unsolicited

control block (UCB), supporting the view that the

device is a source of, or a pass through for,

information that is of an asynchronous nature to the

program controlling the device, thus placing the

program in a slave relationship to the device. The drawing illustrates a representative set of essential command parameters for starting an asynchronous I/O operation. The sizes of fields chosen for illustration are arbitrary. The parameters are: The command, called generically a Start command.

Two modifiers serve to distinguish the start of

solicited and unsolicited operations.

The I/O Address, specifying the address of the

target device.

1

Page 2 of 3

A Storage Ad...