System for dynamic association of a variable number of device addresses with input/output devices to allow increased concurrent requests for access to the input/output devices
First Claim
1. A data processing system for allocating unit control blocks and associated subchannels on a dynamic basis among input/output devices thereby allowing increased presentation of concurrent requests for access to multiple exposure input/output devices, the data processing system comprising:
- a plurality of peripheral input/output devices;
a computer system having a plurality of unit control blocks for use in controlling input/output operations between main storage of the computer and the peripheral input/output devices;
a controller providing an interface for connection of the computer system and the plurality of peripheral input/output devices;
association tables accessible to the controller for listing device address and indicating whether each device address is valid or invalid, is an actual device or an alias device address, and to which actual device the alias device is bound;
means for dividing unit control blocks between first and second groups where the first group comprises base unit control blocks having a one to one correspondence with and dedicated to the peripheral input/output devices and the second group comprises alias unit control blocks available for association with selected peripheral input/output devices on demand;
the alias unit control blocks each having a unique alias;
means for linking in a free pool, alias unit control blocks which are not associated with a peripheral input/output device; and
means responsive to access of an alias unit control block for an input/output operation to a target peripheral input/output device for removing the alias unit control block from the free pool and dynamically linking the alias unit control block to an exposure chain depending from the base unit control block dedicated to target peripheral input/output device.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed is a data processing system for presenting concurrent requests for access to peripheral devices up to the number of subchannels available for handling input/output operations. A computer system provides a plurality of subchannels and affiliated unit control blocks for input/output operations between main storage and the peripheral devices. The unit control blocks comprise two groups, including a first dedicated to the peripheral devices and a second group available for dynamic association with the peripheral devices on a demand basis. The unit control blocks are termed base unit control blocks and alias unit control blocks, respectively. Upon system initialization, alias unit control blocks for a given logical subsystem are linked in a free pool. To initiate an input/output operation a program executing on the CPU first queries a base unit control block for a target peripheral device to determine its availability. If available, the base unit control block and associated base subchannel are used for the input/output operation. If not, determination is made if an alias unit control block may be used and if any are available. Responsive to affirmative determinations, an alias unit control block is removed from the free pool and is linked to the base unit control device for the target peripheral device in an exposure chain. The CPU then places a channel program in main storage including a prefix channel command for binding an alias address for the alias unit control block with a particular device. This is done by passing the binding command to a controller for the target peripheral device which maintains tables of affiliations between aliases and peripheral devices on a path group basis. After binding, the input/output operation proceeds in conventional fashion.
-
Citations
20 Claims
-
1. A data processing system for allocating unit control blocks and associated subchannels on a dynamic basis among input/output devices thereby allowing increased presentation of concurrent requests for access to multiple exposure input/output devices, the data processing system comprising:
-
a plurality of peripheral input/output devices; a computer system having a plurality of unit control blocks for use in controlling input/output operations between main storage of the computer and the peripheral input/output devices; a controller providing an interface for connection of the computer system and the plurality of peripheral input/output devices; association tables accessible to the controller for listing device address and indicating whether each device address is valid or invalid, is an actual device or an alias device address, and to which actual device the alias device is bound; means for dividing unit control blocks between first and second groups where the first group comprises base unit control blocks having a one to one correspondence with and dedicated to the peripheral input/output devices and the second group comprises alias unit control blocks available for association with selected peripheral input/output devices on demand;
the alias unit control blocks each having a unique alias;means for linking in a free pool, alias unit control blocks which are not associated with a peripheral input/output device; and means responsive to access of an alias unit control block for an input/output operation to a target peripheral input/output device for removing the alias unit control block from the free pool and dynamically linking the alias unit control block to an exposure chain depending from the base unit control block dedicated to target peripheral input/output device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of presenting concurrent requests for access to multiple exposure peripheral devices for a data processing system having a plurality of peripheral input/output devices and a computer, wherein the computer has a plurality of subchannels available for handling input/output operations to the peripheral devices, the method comprising the steps of:
-
dividing the subchannels into a first group comprising base subchannels having a one to one correspondence with and dedicated to the peripheral devices and a second group comprises alias subchannels which are available for dynamic association with the multiple exposure peripheral devices on a demand basis; binding base unit control blocks permanently to the particular peripheral devices to which they are dedicated; upon system initialization, placing subchannel identifiers of the alias subchannels for a given logical subsystem in a linked free pool; to initiate an input/output operation to a target peripheral device, interrogating a base subchannel for a target peripheral device to determine its availability; if the base subchannel is available, utilizing it to handle the input/output operation; if the base subchannel is not available, determining from the free pool if an alias subchannel is available and if it may be used; if a base subchannel is available and may be used, utilizing the alias subchannel for the input/output operation by; removing a unit block for a subchannel from the free pool and linking it to a unit control block of the base subchannel for the target peripheral device in an exposure chain; placing a channel program in main storage of the computer including a prefix channel command for binding the alias for the alias subchannel with a particular device; upon execution of the prefix channel command, passing a binding command to a controller for the target peripheral device and placing record of the binding in a table of affiliations between aliases and peripheral devices; and responsive to unavailability of either base subchannel or alias subchannel, queuing the input/output operation. - View Dependent Claims (16, 17)
-
-
18. A data processing system for allocating unit control blocks and associated subchannels on a dynamic basis among input/output devices thereby allowing increased presentation of concurrent requests for access to multiple exposure input/output devices, the data processing system comprising:
-
a plurality of peripheral input/output devices; a computer having a plurality of logical subsystems each comprising at least a first unit control block for use in controlling input/output operations between main storage of the computer and the peripheral input/output devices, with each unit control block on the computer having a unique alias address, and wherein the peripheral input/output devices are each associated to a particular logical subsystem of the computer; means for retrieving an operand used to identify a target input/output device; means for retrieving all descriptors using any device address; means for associating a unit control block of a logical subsystem with a peripheral input/output device associated with the same logical subsystem on demand; means for linking in a free pool any unit control blocks for a logical subsystem when not associated with a peripheral input/output device; and means responsive to access of a unit control block for an input/output operation to a target peripheral input/output device for removing the unit control block from the free pool and dynamically linking the unit control block to an exposure chain for the target peripheral input/output device. - View Dependent Claims (19, 20)
-
Specification