← Back to Patent Explorer
US4435755A Expired / Lapsed US ⏱️ 0.0 years remaining

Balanced channel finding method

Assignee: International Business Machines Corp
•
Filing: 1981-12-28
•
Granted: 1984-03-06
•
Expires: 2001-12-28
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract For a CPU I/O request, the disclosed methods find a physical channel path within a logical channel (LCH) likely to be connectable to a requested device by using channel path count (CAT count) fields. The CAT counts respectively indicate the current number of uncompleted requests accepted by the respective physical channels in the data processing system. An available physical channel in the LCH with the smallest CAT count is found as the candidate channel path for a connection attempt to the requested device. If the lowest CAT count is equal for plural available channel paths, any of these plural channel paths may be selected as the candidate channel path. The CAT count for a channel path is incremented for each successful connection of any device to that channel path. The CAT count for a channel path is decremented upon receiving a signal indicating that a successfully connected I/O device has completed the operation for a request. CAT counts indicate the current load on each physical channel across all LCHs in which the physical channels may be contained. The CAT counts indicate the relative likelihood of the physical channels within a LCH being non-busy relative to each other in order to find the channel path most likely to be non-busy and thereby avoid a RPS miss when a requested DASD record is reached during disk rotation. Choosing the channel paths with the lowest available CAT counts balances the load among the physical channels across all LCHs containing the same physical channel.

Inventors

  • 👤 Allan S. Meritt

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 02:46
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/38; G06F13/40; G06F13/4004; G06F13/4022; G06F13/10; G06F13/12; G06F13/122

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 174 words
A method in a data processing system for quickly finding a data path for a requested I/O device, the data path including a channel path and a control unit, the data path being provided between the requested I/O device and a main storage under the control of an I/O request from a central processing unit (CPU) to a channel processor, the method comprising: generating an outstanding request (CAT) count for each channel path useable by the system, obtaining a set of channel path identifiers (CH IDs) for all channel paths capable of connecting to the requested I/O device, finding a candidate channel path identifier (CH ID) for an available CH ID having the lowest CAT count in the set provided by the obtaining step, attempting to connect the requested I/O device with the candidate channel path CH ID found by the finding step to obtain a data path, repeating the finding step if the attempting step is unsuccessful in connecting the candidate channel path to a data path by finding another candidate channel path.
Claim 2
Independent Claim 174 words
A method in a data processing system for quickly finding a data path for a requested I/O device, the data path including a channel path and a control unit, the data path being provided between the requested I/O device and a main storage under the control of an I/O request from a central processing unit (CPU) to a channel processor, the method comprising: generating an outstanding request (CAT) count for each channel path useable by the system, obtaining a set of channel path identifiers (CH IDs) for all channel paths capable of connecting to the requested I/O device, finding a candidate channel path identifier (CH ID) for an available CH ID having the lowest CAT count in the set provided by the obtaining step, attempting to connect the requested I/O device with the candidate channel path CH ID found by the finding step to obtain a data path, repeating the finding step if the attempting step is unsuccessful in connecting the candidate channel path to a data path by finding another candidate channel path.
Claim 3
Dependent Claim 75 words
A method as defined in claim 1, the finding step further comprising: indicating a subset of currently available CH IDs from the set of CH IDs defined by the obtaining step, selecting the CAT counts for the subset of CH IDs provided by the indicating step, sorting the subset of CH ID provided by the indicating step in CAT count order to find the lowest CAT count available CH ID as the candidate channel path.
Claim 4
Dependent Claim 87 words
A method as defined in claim 1, the finding step further comprising: selecting the CAT counts for the CH IDs obtained by the obtaining step, sorting the obtained CH IDs in CAT count order into a sequence of CH IDs for the set, and testing a channel path for connection availability to the requested I/O device beginning with the CH ID having the lowest CAT count in the set, for finding a candidate channel path as the lowest CAT count available CH ID tested to be connectable.
Claim 5
Dependent Claim 54 words
A method as defined in claim 1, further comprising: again repeating the finding step in the process of finding a data path when the control unit in an attempted data path is busy with another request if the attempting step finds that the requested I/O device cannot be connected to the candidate channel path.
Claim 6
Dependent Claim 49 words
A method as defined in claim 1, further comprising: again repeating the finding step in the process of finding a data path when the I/O device is busy if the attempting step finds that the requested I/O device is busy and cannot be connected to the candidate channel path.
Claim 7
Dependent Claim 87 words
A method as defined in claim 3, the testing step further comprising: determining if any CH ID in the set has not been tested by the testing step, providing an address to a next CH ID having the next higher CAT count in the sequence of CH IDs provided by the sorting step, repeating the testing step with the CH ID located at the address of the providing step, whereby the first available CH ID found by the repeating step is the candidate channel path CH ID.
Claim 8
Dependent Claim 69 words
A method as defined in claim 1, further comprising: the finding step finding a plurality of available CH ID's with the same lowest available CAT count, tie-breaking the plurality of available CH ID's found by the finding step by selecting any one CH ID from the plurality as the candidate channel path, whereby the tie-breaking step can use any technique to select one of the plurality of CH ID's.
Claim 9
Dependent Claim 174 words
A method as defined in claim 3, in which the method further comprises: the obtaining step obtaining the CH IDs in the set in reverse CH ID order in a forward sequence field and a backward sequence field, in which a maximum of two CH ID's exist in the set, the sorting step selecting and comparing the CAT counts for both CH IDs to find the CH ID with the lowest CAT count, the testing step testing the availability of the CH ID found by the sorting step having the lowest CAT count and if availability exists this CH ID being the candidate channel path, repeating the testing step on the other CH ID if the CH ID with the lowest CAT count is found not available by the testing step and then selecting the other CH ID as the candidate channel path if the other CH ID is available, and executing a queuing step if neither CH ID is available to put the I/O request on a logical channel queue for the set.
Claim 10
Dependent Claim 103 words
A method as defined in claim 1, further comprising: signalling if a successful connection to a data path is made for the candidate channel path by the attempting step, whereby the candidate channel path becomes a connected channel path and the requested I/O device becomes a connected device, incrementing the CAT count for the connected channel path when the signalling step signals the I/O device has been successfully connected to a data path and has become a connected device, whereby no CAT count is incremented when the signalling step indicates an unsuccessful connection of the requested I/O device to the candidate channel path.
Claim 11
Dependent Claim 147 words
A method as defined in claim 9, further comprising: also signalling completion status signals for the connected device to the channel processor when the connected device completes an operation, analyzing the completion status signals in the channel processor for a successful or unsuccessful connection to a data path by the requested I/O device that caused the sending of the status signals by the signalling step in order to identify a related prior channel path subjected to a connection attempt by the attempting step, decrementing the CAT count for the related prior channel path after the analyzing step identifying the related prior channel path, whereby no CAT count is decremented if the signalling step sends completion status signals to the channel processor for which the analyzing step analyzes the status signals and determines an unsuccessful connection was attempted by the attempting step to the related prior channel path.
Claim 12
Dependent Claim 73 words
A method as defined in claim 10, further comprising: queuing the I/O request on a logical channel queue for the set of channel paths obtained by the obtaining step if the repeating step finds no data path that includes any channel path that is currently available in the set, whereby the queued I/O request can later be activated for initiating another attempt to find a data path for connecting the requested I/O device.
Claim 13
Dependent Claim 36 words
A method as defined in claim 11, further comprising: activating the finding step for each request existing in the logical channel queue when the also signalling step sends completion status signals for a prior connection attempt.
Claim 14
Independent Claim 118 words
A method as defined in claims 4 or 5, in which the method is contained in a program executable by the CPU, the attempting step further comprising: generating a start I/O (SIO) or start I/O fast (SIOF) instruction by the CPU and inserting into the SIO or SIOF instruction identifiers for the requested I/O device and a control unit identifier and the CH ID of the candidate channel path found by the testing step, and the attempting step being provided by the CPU executing the SIO or SIOF instruction in an attempt to connect the requested I/O device to the control unit and the candidate channel path, whereby the executed SIO or SIOF instruction defines a data path.
Claim 15
Dependent Claim 67 words
A method as defined in claim 13, further comprising: transmitting an I/O interrupt signal from the channel processor to the CPU to signal either (1) the completion of a successful connection or (2) unavailability of the requested I/O device or the control unit which was not available to a previously executed related SIO or SIOF instruction which obtained an unsuccessful connection and caused the I/O interrupt signal.
Claim 16
Dependent Claim 95 words
A method as defined in claim 14, in which the repeating step further comprises: queuing the I/O request on a logical channel queue for the set of channel paths obtained by the obtaining step if the repeating step finds no data path that includes any channel path that is currently available in the set, initiating an IOS routine in response to the I/O interrupt signal in the transmitting step, whereby any other request to the same CH ID in every logical channel queue will again initiate the finding step in response to the initiating step.
Claim 17
Dependent Claim 59 words
A method as defined in claim 12, in which the method is contained in the channel processor, further comprising: issuing by the CPU a start subchannel instruction identifying the requested I/O device but not identifying any channel path, entering the generating step in the channel processor which executes succeeding steps, whereby the method is executed by the channel processor.
Claim 18
Dependent Claim 72 words
A method as defined in claim 16, in which the analyzing step is executed in the channel processor, the method further comprising: transmitting an I/O interrupt signal from the channel processor to the CPU after the channel processor determines a successful completion of operations for a successful connection in response to the signalling step sending the channel processor a completion status signal which the analyzing step analyzes as a successful connection signal.
Claim 19
Dependent Claim 49 words
A method as defined in claim 17, further comprising: initiating the channel processor to execute the queuing step if the repeating step finds no data path that includes any channel path in the set obtained by the obtaining step, whereby the channel processor then goes into an idle state.
Claim 20
Dependent Claim 48 words
A method as defined in claim 18, further comprising: starting the channel processor from the idle state in response to a completion status signal sent by the signalling step, whereby any other request to the same CH ID in every logical channel queue again initiates the finding step.
Claim 21
Dependent Claim 18 words
A method as defined in claim 19, further comprising: executing the method in microcode in the channel processor.

References Cited (Backward Citations)

US3810105A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1987-03-06 1987-09-05 1988-03-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1991-03-06 1991-09-05 1992-03-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1995-03-06 1995-09-05 1996-03-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag