Browse Prior Art Database

Virtual Input Output Channels for a Digital Computer

IP.com Disclosure Number: IPCOM000088412D
Original Publication Date: 1977-Jun-01
Included in the Prior Art Database: 2005-Mar-04
Document File: 3 page(s) / 43K

Publishing Venue

IBM

Related People

Boggs, Jr., JK: AUTHOR

Abstract

An input/output (I/O) mechanism is described for enabling a digital data processor to operate with logical or virtual I/O channel addresses which are different from the physical or real I/O channel addresses used by the I/O channel apparatus. A unit control word (UCW) directory is used to map the virtual addresses onto the real addresses or vice versa. The mechanism is flexible enough to support shared subchannels as well as nonshared subchannels.

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 52% of the total text.

Page 1 of 3

Virtual Input Output Channels for a Digital Computer

An input/output (I/O) mechanism is described for enabling a digital data processor to operate with logical or virtual I/O channel addresses which are different from the physical or real I/O channel addresses used by the I/O channel apparatus. A unit control word (UCW) directory is used to map the virtual addresses onto the real addresses or vice versa. The mechanism is flexible enough to support shared subchannels as well as nonshared subchannels.

The Fig. 1 example is for the case where the data processor operating system can address any of channels 0-3, while the channel apparatus can recognize only channel addresses 1-3. In this case, Channel 0 is a virtual channel because it has no real counterpart.

Assuming the case of 256 possible subchannels per channel, the UCW directory includes a set of 256 entries for each channel which can be addressed by the operating system. Each directory entry is two bytes in length but, as indicated in Figs. 2 and 3, the virtual channel entries differ somewhat from the real channel entries. Figs. 2 and 3 are for the representative case where Channel 0 subchannel addresses can be mapped or transformed into either Channel 2 or Channel 3 addresses. If bit 14 in Fig. 2 is on, the Channel 0 address is transformed into a Channel 2 address. Alternatively, if bit 15 is on, it is transformed into a Channel 3 address.

There is a separate UCW for each subchannel which is recognized by the channel apparatus. As is known, each UCW contains the control information needed to sustain an I/O operation in its associated channel. For present purposes, each UCW must also include space to store both the I/O address issued by the operating system and the physical I/O address actually used by the channel apparatus. To sustain shared subchannel operations, each UCW should also include apace to store the operating system base address for shared subchannels, the channel apparatus base address for shared subchannels, and a flag indicating whether or not the UCW is for a shared subchannel.

When an I/O operation is initiated by the operating system, the I/O address from the machine instruction is doubled, and the doubled value is used as an index to the UCW directory. The doubling takes into account the two-byte length of each directory entry. If the addressed channel is a real channel, for example, Channel 1 as indicated by the broken line path in Fig. 1, the UCW address displacement taken from the directory entry is added to the UCW base address, and the thus identified UCW is fetched from storage for use in controlling the ensuing I/O operation for the subchannel in question. The channel apparatus then initiates the I/O operation for the physical I/O address contained in the UCW.

If the I/O address issued by the operating system is for a virtual channel, in this example Channel 0, then...