System and method for regulating access to direct access storage devices in data processing systems
Abstract
A data processing system regulating access from a plurality of host computers to a plurality of direct access storage devices. The data processing system has a storage controller connected for data communication to the host computers by one or more channels per host computer. The storage controller is further connected to direct access storage devices used to provide auxiliary storage. The storage controller, responsive to host computer request, selectively establishes a communication link for data transfer between the host computers and the direct access storage devices. Channels are temporarily disqualified from obtaining control of the storage controller or a storage device during periods of contention for access to the storage devices or the storage controller. Transmission of device end and control unit end signals is also selective by channel. Override conditions are specified to allow for host computer or channel failure without disabling the data processing system.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method in a data processing system of regulating communication between a plurality of host computers and a plurality of storage devices during periods of contention between host computers for access to a storage device or to a storage controller, wherein the storage controller is connected for data communication to each of the host computers by one of a plurality of channels and is further connected to each of the storage devices for selective establishment of communication between the storage devices and the host computer, the method comprising the steps of: initializing an access request block for the storage controller; initializing a control counter for each channel; responsive to a channel release of the storage controller, indexing the control counter for each channel having a record in the access request block; responsive to a channel being denied access after a request for access, entering a record of the request for access in the access request block; responsive to a channel obtaining access to the storage controller, reinitializing the control counter for that channel; comparing the control counter for each channel against a plurality of thresholds; and responsive to results from the comparing step, establishing a mode of operation of the data system relating to preference in access to the storage controller by each channel.
2. A method as set forth in claim 1, further comprising the steps of: generating for each storage device a front queue listing channels owed a device end signal for a storage device and a back queue listing channels owed a device end signal for a storage device; generating a call list listing channels allowed access to each storage device; responsive to receipt by the storage controller of a start input/output signal for a storage device over a particular channel, determining if said particular channel is on the call list; responsive to a determination that said particular channel is not on the call list, presenting a device busy signal and listing said particular channel on the back queue for a storage device; responsive to a determination that said particular channel is on the call list, further determining if a storage device is available for access; responsive to a determination that a storage device is not available for access, listing said particular channel on the front queue for a storage device; and responsive to determination that a storage device is available for access, granting access to a storage device by said particular channel.
3. A method as set forth in claim 2, wherein the plurality of thresholds includes three index levels, reached in order of a preferred level, a block demand level and a failure level.
4. A method as set forth in claim 3, wherein the step of establishing a mode of operation of the data system relating to preference in access to the storage controller by a channel further comprises the steps of: responsive to the control counter for a particular channel reaching the preferred level, qualifying said particular channel for receipt of a control unit end signal; responsive to the control counter for said particular channel reaching the block demand level, blocking access to the storage controller by any channel for which a control counter does not meet the block demand level; and responsive to the control counter for said particular channel reaching the failure level, reinitializing the channel counter.
5. A method as set forth in claim 4, further comprising: responsive to qualification of a channel for receipt of a control unit end signal, blocking transmission of control unit end signals to channels listed in the access request block.
6. A method as set forth in claim 5, and further comprising: responsive to completion of an input/output chain over a selected channel, examining the front queue for each storage device to determine its contents; responsive to a front queue for a particular storage-device listing no channels, listing in the front queue for said particular storage device any channels listed in the back queue for said particular storage device, clearing the back queue for said particular storage device and resetting the call list to allow all channels access to said particular storage device; responsive to the front queue for said particular storage device listing channels, removing said selected channel completing the input/output chain from the call list; and raising an interrupt on all channels listed in the for said particular storage device front queue.
7. A method as set forth in claim 6, and further comprising the steps of: presenting a device end signal to a channel responding to the interrupt; removing the channel to which the device end was presented from the front queue for said particular storage device; and raising an interrupt on all channels listed in the front queue for said particular storage device.
8. A method as set forth in claim 7, wherein sets of channels associated with a host computer are identified to the storage controller by the host computer as a path group and wherein removal of a channel from the front queue for said particular storage device or from the call list results in removal from the front and back queues for said particular storage device or the call list, respectively, of all channels of the path group.
9. A method as set forth in claim 4, and further comprising the steps of: counting consecutive occurrences of start input/output requests without subsequent execution of an input/output chain; and responsive to said counting reaching a selected threshold, reinitializing all control counters.
10. A method as set forth in claim 2, and further comprising: responsive to completion of an input/output chain over a selected channel, examining the front queue for each storage device to determine its contents; responsive to a front queue for a particular storage device listing no channels, listing in the front queue for said particular storage device any channels listed in the back queue for said particular storage device, clearing the back queue for said particular storage device and resetting the call list to allow all channels access to said particular storage device; and responsive to the front queue for said particular storage device listing channels, removing said selected channel completing the input/output chain from the call list.
11. A method as set forth in claim 1, wherein the plurality of thresholds includes three index levels, reached in order of a preferred level, a block demand level and a failure level.
12. A method as set forth in claim 3, wherein the step of establishing a mode of operation of the data system relating to preference in access to the storage controller by a channel further comprises the steps of: responsive to the control counter for a particular channel reaching the preferred level, qualifying said particular channel for receipt of a control unit end signal; responsive to the control counter for said particular channel reaching the block demand level, blocking access to the storage controller by any channel for which a control counter does not meet the block demand level; and responsive to the control counter for said particular channel reaching the failure level, reinitializing the channel counter.
13. A method in a data processing system of regulating communication between a plurality of host computers and a plurality of storage devices during periods of contention between host computers for access to a storage device or to the a storage controller, wherein the a storage controller is connected for data communication to each of the host computers by at least a first channel and is further connected to each of the storage devices for selective establishment of communication between the storage devices and the host computer, the method comprising the steps of: generating a front queue listing channels owed a device end signal for each storage device and a back queue listing channels owed a device end signal for each storage device; generating a call list listing channels allowed access to each storage device; responsive to receipt by the storage controller of a start input/output signal for a selected storage device over a particular channel, determining if said particular channel is on the call list; responsive to a determination that said particular channel is not on the call list, presenting a device busy signal and listing said particular channel on the back queue for said selected storage device; responsive to a determination that said particular channel is on the call list, further determining if said selected storage device is available for access; responsive to a determination that said selected storage device is not available for connection, listing said particular channel on the front queue for said selected storage device; and responsive to determination that said selected storage device is available for access, granting access to said selected storage device by said particular channel.
14. A method as set forth in claim 13, further comprising the steps of: initializing an access request block for the storage controller; initializing a control counter for each channel; responsive to a channel releasing the storage controller, indexing the control counter for each channel having a record in the access request block; responsive to a channel being denied access after a request for access, listing the channel in that access request block; responsive to a channel obtaining access to the storage controller, reinitializing the control counter for that channel; comparing the control counter for each channel against a plurality of thresholds; and responsive to results from the comparing step, establishing a mode of operation of the data system relating to preference in access to the storage controller by each channel.
15. A method as set forth in claim 14, and further comprising the steps of: responsive to completion of an input/output chain over a selected channel, examining the front queue for each storage device queue to determine its contents; responsive to the front queue for a particular storage device listing no channels, listing in the front queue for said particular storage device any channels listed in the back queue for said particular storage device, clearing the back queue for said particular storage device and resetting the call list to allow all channels access to said particular storage device; responsive to said selected front queue for said particular storage device listing channels, removing the channel completing the input/output chain from the call list; and raising an interrupt for all channels listed in said front queue for said particular storage device.
16. A method as set forth in claim 15, and further comprising the steps of: presenting a device end signal to a channel first responding to the interrupt; removing the channel to which the device end was presented from the front queue for said particular storage device; and raising an interrupt on all channels listed in the front queue for said particular storage device.
17. A method as set forth in claim 16, wherein sets of channels associated with a host computer are identified to the storage controller by the host computer as a path group and wherein removal of a channel from the front queue for said particular storage device or from the call list results in removal from the front and back queues for said particular storage device or the call list, respectively, of all channels of the path group.
18. A method as set forth in claim 7, wherein the plurality of thresholds includes three index levels, reached in order of a preferred level, a block demand level and a failure level.
19. A method as set forth in claim 18, wherein the step of establishing a mode of operation of the data system relating to preference in access to the storage controller by a channel further comprises the steps of: responsive to the control counter for a particular channel reaching the preferred level, qualifying the said particular channel for receipt of a control unit end signal; responsive to the control counter for said particular channel reaching the block demand level, denying access to the storage controller by any channel for which a control counter does not meet the block demand level; and responsive to the control counter for said particular channel reaching the failure level, reinitializing the channel counter.
20. A method as set forth in claim 14, wherein the plurality of thresholds includes three index levels, reached in order of a preferred level, a block demand level and a failure level.
21. A method as set forth in claim 20, wherein the step of establishing a mode of operation of the data system relating to preference in access to the storage controller by a channel further comprises the steps of: responsive to the control counter for a particular channel reaching the preferred level, qualifying said particular channel for receipt of a control unit end signal; responsive to the control counter for said particular channel reaching the block demand level, denying access to the storage controller from any channel for which a control counter does not meet the block demand level; and responsive to the control counter for said particular channel reaching the failure level, reinitializing the channel counter.
22. A method as set forth in claim 21, comprising the steps: responsive to qualification of a channel for receipt of a control unit end signal, blocking transmission of control unit end signals to channels listed in the access request block.
23. A method as set forth in claim 14, and further comprising the steps of: responsive to completion of an input/output chain over a selected channel, examining the front queue for each storage device to determine its contents; responsive to a front queue for a particular storage device listing no channels, listing in the front queue for said particular storage device any channels listed in the back queue for said particular storage device, clearing the back queue for said particular storage device and resetting the call list to allow all channels access to said particular storage device; responsive to the front queue for said particular storage device listing channels, removing said selected channel completing the input/output chain from the call list; and raising an interrupt on all channels listed in the front queue for said particular storage device.
24. A method as set forth in claim 14, and further comprising the steps of: counting consecutive occurrences of start input/output requests without subsequent execution of an input/output chain; and responsive to said counting reaching a selected threshold, reinitializing all control counters.
25. A data processing system for regulating access to system resources, the data processing system comprising: a storage controller; a plurality of storage devices connected to the storage controller; a plurality of host computers, each host computer being connected for data communication to the storage controller by at least a first channel; memory storing an access request block and a control counter for each channel; means responsive to a channel releasing access to the storage controller for indexing the control counter for each channel having a record in the access request block; means responsive to a channel being denied access to the storage controller after a request for access for entering a record of that channel in the access request block; means responsive to a channel obtaining access to the storage controller for reinitializing the control counter for that channel and removing the record of that channel from the access request block; means for comparing the control counter for each channel against a plurality of thresholds; and means responsive to results from the means for comparing for establishing preference for access by channels to the storage controller.
26. A data processing system as set forth in claim 25, further comprising: means for generating a front queue listing channels owed a device end signal for each storage device; means for generating a back queue listing channels owed a device end signal for each storage device; means for listing channels allowed access to each storage device; means responsive to receipt by the storage controller of a start input/output signal for a storage device over a particular channel for determining from the listing if said particular channel is allowed access to said particular storage device; means responsive to a determination that said particular channel is not on the list of channels allowed access to each storage device for listing said particular channel on the back queue for a selected storage device; means responsive to a determination that said particular channel is on the list of channels allowed access to each storage device for determining said selected storage device is available for access; means responsive to a determination that said selected storage device is unavailable for access for listing said selected channel on the front queue for said selected storage device; and means responsive to determination that said selected storage device is available for access for establishing access to said selected storage device by said particular channel.
27. A data processing system as set forth in claim 26, wherein the plurality of thresholds includes three index levels progressing from a preferred level to a block demand level and a lastly to a failure level.
28. A data processing system as set forth in claim 27, wherein the means for establishing preference for access further comprises: means responsive to the control counter for a particular channel reaching the preferred level for qualifying a particular channel for receipt of a control unit end signal; means responsive to the control counter for said particular channel reaching the block demand level for denying access to the storage controller by any channel for which a control counter does not meet the block demand level; and means responsive to the control counter for the channel reaching the failure level for reinitializing the channel counter.
29. A data processing system as set forth in claim 28, and further comprising: means responsive to completion of an input/output chain over a selected channel for reading the front queue for each storage device; means responsive to a front queue for a particular storage device listing no channels for moving to the front queue for said particular storage device any channels listed in the back queue for said particular storage device, clearing the back queue for said particular storage device and resetting the list of channels allowed access to each storage device to allow all channels; means responsive to the front queue for said particular storage device listing channels for removing said selected channel completing the input/output chain from the list of channels allowed access to each storage device; and means for raising an interrupt on all channels listed in the front queue for said particular storage device.
30. A method as set forth in claim 29, and further comprising: means for presenting a device end signal to a channel responding to the interrupt; means for removing the channel to which the device end was presented from the front queue for said particular storage device and the back queue for said particular storage device; and means for raising an interrupt on all channels listed in the front queue for said particular storage device.
31. A data processing system as set forth in claim 30, wherein sets of channels associated with a host computer are identified to the storage controller by the host computer as a path group and wherein removal of a channel from the front queue for said particular storage device or from the list of channels allowed access to each storage device results in removal from the front and back queues for said particular storage device or the list of channels allowed access to each storage device, respectively, of all channels of the path group.
32. A method as set forth in claim 28, and further comprising the steps of: means for counting consecutive occurrences of start input/output requests without subsequent execution of an input/output chain; and means responsive to said counting reaching a selected threshold for reinitializing all control counters.
33. A data processing system as set forth in claim 26, and further comprising: means responsive to completion of an input/output chain over a selected channel for reading the front queue for each storage device; means responsive to a front queue for a particular storage device listing no channels for moving any channels listed in the back queue for said particular storage device to the front queue for said particular storage device, clearing the back queue for said particular storage device and resetting the list of channels allowed access to each storage device to allow all channels access to said particular storage device; and means responsive to the front queue listing channels for removing said selected channel just completing the input/output chain from the list of channels allowed access to each storage device.
34. The data processing system of claim 30 and further comprising means responsive to a reset allegiance command for clearing the front queue for said particular storage device, then moving the back queue for said particular storage device into the front queue for said particular storage device and setting the list of channels allowed access to each storage device to allow all channels access to said particular storage device.
35. A data processing system as set forth in claim 25, wherein the plurality of thresholds includes three index levels progressing from a preferred level to a block demand level and lastly to a failure level.
36. A data processing system as set forth in claim 35, wherein the means for establishing preference for access further comprises: means responsive to the control counter for a particular channel reaching the preferred level for qualifying said particular channel for receipt of a control unit end signal; means responsive to the control counter for said particular channel reaching the block demand level for denying access to the storage controller by any channel for which a control counter does not meet the block demand level; and means responsive to the control counter for said particular channel reaching the failure level for reinitializing the channel counter.
37. A method in a data processing system of regulating communication between a plurality of host computers and a plurality of shared devices during periods of contention between host computers for access to a shared device or to shared device controller, wherein the a shared device controller is connected for data communication to each of the host computers by a plurality of channels and is further connected to each of the shared devices for selective establishment of communication between the shared devices and the host computer, the method comprising the steps of: responsive to a request for access to the shared device controller during a period of contention for access, aging a request for access to the shared device controller from each channel generating such a request which is denied access to the shared device controller among said plurality of channels by accumulating a count of occasions of denial of access to the shared device controller for each channel among said plurality of channels during a period of contention for access to the shared device controller; responsive to said aging of each request, giving preference for access to the shared device controller to the channel among said plurality of channels having requests of greater age responsive to said accumulated count of occasions of denial of access to the shared device controller for each channel among said plurality of channels for giving preference for access to the shared device controller to those channels among said plurality of channels having higher accumulated counts; and responsive to occurrence of a period of contention for access to a shared device, peremptorily denying access to channels with prior access until all channels requesting access have been served.
38. A method as set forth in claim 37, wherein access of those channels among said plurality of channels having higher accumulated counts is unordered.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.