Abstract:
An interrupt control system having a plurality of access paths includes a control memory for storing control information for controlling all of the access paths. When an error occurs on a path, a control unit controlling the respective access paths refers to and updates the control memory to execute a channel reconnection without using the path on which the error has occurred, and then executes a retry command to carry out an error recovery operation.

Description:
This application is a continuation of application Ser. No. 766,942, filed Aug. 19, 1985, now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     1. FIELD OF THE INVENTION 
     The present invention relates to an interrupt control system, and in particular, to an interrupt control system applicable to an error recovery to be conducted in an input/output system having a plurality of access paths. 
     2. DESCRIPTION OF THE PRIOR ART 
     Conventionally, in a system in which a plurality of central processing units, CPU&#39;s access a plurality of shared units such as input/output units or external storage devices, a shared unit to be accessed by a CPU is connected via a dedicated path to the CPU. If the same CPU desires to access the same shared unit via another path so as to establish a connection therebetween, a Start I/O instruction must be executed. For the execution of the Start I/O instruction, a considerable processing time is required for each instruction. To overcome this difficulty, there has been proposed a system in which a map reflecting the network state is generated and stored in a control unit, and when executing a series of instructions, the control unit disconnects a shared unit from a channel and thereafter connects the disconnected unit to another channel based on the information contained in the map (Japanese Patent Examined Publication No. 58-38818). 
     FIG. 4 is a schematic diagram illustrating the configuration of an input/output system utilizing the interrupt control method of above-mentioned system. 
     The system of FIG. 4 comprises disk control units 11-12, channel switches 16-17, string controllers 13-14, a control memory 18, and disk drive units 15 (shared devices #1-#N). 
     The disk control units 11-12 are each connected to a plurality of channels via the channel switches 16 and 17, respectively, and are also connected to the string controllers 13 and 14, respectively. The string controllers are connected to a plurality of disk drive units 15. The control memory 18 is shared between the string controllers 13 and 14. 
     In this case, when path #j (j = 1, 2, . . . , m) of the channel switch 16 and path #k (k = 1, 2, . . . , n) of the channel switch 17 are connected to the same CPU, if the state of the channel selection is notified to the disk control units 11 and 12 by use of specific commands, the path #j of the channel switch 16 and the #k of the path channel switch 17 form a path group. The information that the path #j and #k are of the same path group is recorded in the control memory 18 by the disk control unit 11 or 12. In the operation after this point, the disk control units 11-12 check the control memory 18 to confirm the information of the path group. 
     In FIG. 4, a command chain issued to the device #i (i = 1, 2, . . . , N) of the disk drive unit 15 via the path #j of the channel switch 16 is processed as follows. 
     (i) First, the disk control unit 11 receives a Seek and Set Sector command via the path #j of the channel switch 16 and directs the instruction of the command to the disk drive unit 15 through the string controller 13. 
     (ii) The disk control unit 11 records in the control memory 18 the information that the Seek and Set Sector instruction has been issued to the device #i of the disk drive unit 15 through the path group including the path #j of the channel switch 16 and the path #k of the channel switch 17. 
     (iii) The disk control unit 11 disconnects the linkage between the channel and the string controller 13. In this operation, the linkage to the channel is disconnected by reporting a status code including only &#34;the channel end&#34; information to the channel. The disconnection is recorded in the control memory 18. 
     (iv) The string controller 14 reports the change in the contents of the control memory 18 to the disk control unit 12. 
     (v) The disk control unit 12 reads the control memory 18 and recognizes that the Seek and Set Sector command has been specified to the device #i of the disk drive unit 15 through the path group comprising the path #j of the channel switch 16 and the path #k of the channel switch 17. 
     (vi) On the other hand, when the device #i of the disk drive unit 15 completes the Seek and Set Sector commands initiated according to the operation of step (i) described above, it causes an interrupt to be sent to the string controllers 13-14 to indicate the completion. 
     (vii) The string controllers 13-14 cause an interrupt to the disk control units 11 and 12, respectively, to report the completion of the operation. 
     (viii) To report the completion of the path #j of the channel switch 16 or to the path #k of the channel switch 17, the disk control unit 11 issues a request for the reconnection to the channel via the path #j of the channel switch 16. 
     (ix), Since the disk control unit 12 must also indicate the completion to the path #j of the channel switch 16 or the path #k of the channel switch 17, it issues a request for the reconnection to the channel via the path #k of the channel switch 17. 
     In this case, the path #j of the channel switch 16 or the path #k of the channel switch 17 is reconnected. If the path #k of the channel switch 17 is reconnected, a path is established from the path #k of the channel switch 17 via the disk control unit 12 and the string controller 14 to the device #i of the disk drive unit. Since the Seek and Set Sector operation has been completed on the device #i of the disk drive unit 15, the completion is reported through the path #k of the channel switch 17. 
     (xi) Data transfer from the channel to the device #i of the disk drive unit 15 is carried out via the path established in step (x) described above. 
     In the conventional method, the reconnection has been conducted only by use of the channel switch actuated (the path #j of the channel switch 16 in the system of FIG. 4); however, the control method described above enables the reconnection to be performed via a channel switch belonging to a path group initiated (the path #j of the channel switch 16 or the #k of the channel switch 17 of FIG. 4). In the control method of FIG. 4, therefore, the possibility of successful connections is increased, thereby greatly reducing the number of unsuccessful Set Sector operations which have long remained unsolved. In general, since the linkage to a channel is disconnected by reporting a status only containing &#34;the channel end&#34; only when a simple multioperation is carried out, the function for establishing a reconnection path by use of an arbitrary channel switch in the path group brings forth an advantageous effect. 
     In the control method, however, a path for which a linkage in the path group has been disconnected may be used again to establish the reconnection path. For example, if an error which has occurred on an activated path is to be recovered by a command retry, the reconnection should not be carried out by use of the activated path. The Japanese Patent Examined Publication No. 58-38818 has not disclosed any ideas applicable to such a case, and hence the error cannot be recovered. 
     SUMMARY OF THE INVENTION 
     It is therefore an object of the present invention to provide an interrupt control system which solves the above-mentioned problem and executes the reconnection request for a channel without using the path on which an error has occurred, thereby improving the probability of a successful error recovery. 
     To achieve the stated object, there is provided an interrupt control system in an input/output system having a plurality of access paths in accordance with the present invention wherein said interrupt control system comprises a control memory for storing control information for controlling all of said plurality of access paths and a control unit for controlling each path refers to and updates the control memory, when an error occurs on a path, to perform a reconnection of a channel without using the path on which the error has occurred, and then executes a retry command to achieve an error recovery. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a flowchart of operations of the present invention involving detection of an error in subsystem operation and the instruction of a retry; 
     FIGS. 2A and 2B are flowcharts of operations of the present invention by respective disc control units involving disconnection and reconnection of the channel and the reporting of the status of a command retry request following the operations illustrated in FIG. 1; 
     FIG. 3 is a flowchart of operations of the present invention by the respective disc control units following the operations illustrated in FIGS. 2A and 2B; and 
     FIG. 4 is a schematic configuration diagram of an external storage subsystem having a plurality of access paths. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring to the accompanying drawings, embodiments of the present invention will be described in detail. 
     In a system in which at least two paths exist between a CPU and a disk drive, unit 15, as shown in FIG. 4, if an error occurs in a device such as a disk control unit, a string controller, or the like connected to a path being used, the error can be recovered by executing an error recovery operation through another path. In accordance with the present invention, the changeover of the path is carried out by a command retry, not by use of the operating system (OS). This can be accomplished in the system of FIG. 4 simply by modifying the control programs in the disk control units 11-12 without necessitating any hardware changes. 
     As an example, let us assume that during execution of a command chain issued to the device #i (i = 1, 2, . . . , N) of the disk drive unit 15 via the path #j (j = 1, 2, . . . , m) of the channel switch 16 of FIG. 4, an error occurs in the disk control unit 11, the controller 13, or the device #i of the disc drive unit 15. 
     In this case, a command retry is performed to execute the command again for the error recovery in general. The following paragraphs describe the interrupt control system for the command retry to be executed to recover the error in accordance with the present invention. 
     First, the command retry (for the disk control unit) is defined by use of vectors as follows. ##EQU1## Where, the value of e li  (i = 1, 2, . . . , N) is &#34;1&#34; if the command retry for the device #l of the disk drive unit 15 is to be conducted through the disk control unit 11; otherwise, it is &#34;0&#34;. Similarly; the value of e 2i  is &#34;1&#34; if the command retry is to be performed via the disk control unit 12; otherwise, it is &#34;0&#34;. 
     As a consequence, there exist three types of command retries as follows. 
     (i) For e li  = e 2i  = 1, either one of disk control units 11 and 12 may be used. 
     (ii) For e li  = 1 and e 2i  = 0, the command retry can be carried out only through the disk control unit 11. 
     (iii) For e 1i  = 0 and e 2i  = 1, only the disk control unit 12 can be used. 
     Next, the command retry (for the channel switch) is defined in terms of vectors as follows. ##EQU2## Where, the value of r lj  (j = 1, 2, . . . , m) is &#34;1&#34; if the channel reconnection is carried out by use of a command retry via the path #j of the channel switch 16; otherwise, it is &#34;0&#34;. In a similar fashion, the value of r 2k  (k = 1, 2, . . . , n) is &#34;1&#34; if the channel reconnection is to be executed through the path #k of the channel switch 17; otherwise, it is &#34;0&#34;. 
     Consequently, the elements of which the values are &#34;1&#34; in the vectors r 1  and r 2  represent channel switches 16 and 17 belonging to the same path group as that of the channel switch 16 or 17 which has activated the operation for the device #i of the disk drive unit 15. 
     Next, the interrupt report (interrupt from the string controller to the disk control unit) is defined by use of the concept of a vector as follows. 
     
         P=(P.sub.1, P.sub.2)                                       (3) 
    
     Where, the value of P 1  is &#34;1&#34; if the string controller 13 must issue an interrupt report when the disk control unit 11 sends a polling sequence to the string controller 13; otherwise, it is &#34;0&#34;. Similarly, the value of P 2  is &#34;1&#34; if the string controller 14 must issue an interrupt report when the disk control unit 12 sends a polling sequence to the string controller 14; otherwise, it is &#34;0&#34;. The disk control unit 11 sets P 2  to &#34;1&#34; to cause the string controller 14 to interrupt the disk control unit 12, thereby indicating to the disk control unit 12 that the contents of the control memory have been changed. Similarly, the indicating notification from the disk control unit 12 to the disk control unit 11 is effected when the disk control unit 12 sets P 1  to &#34;1&#34;. These vectors e 1 , e 2 , r 1 , r 2 , and P are written into or read from the control memory 18 by the disk control units 11 and 12. 
     FIGS. 1, 2A-2B and 3 are operation flowcharts illustrating an embodiment of the present invention. 
     In FIGS. 1, 2A-2B and 3, there are shown operations of the disk control units, DKC&#39;s 11-12 and the control memory (ARRAY) 18. It has been assumed as an example that the path #j of the channel switch 16 and the path #k of the channel switch 17 belong to the same path group and that an error occurs after the path #j of the channel switch 16 activates the device #i of the disk drive unit 15. 
     In FIG. 1, when the disk control unit 11 receives an initiation of the device #i of the disk drive unit 15 issued from the path #j of the channel switch 16 (step 101), it selects the device #i of the disk drive unit 15, then the selected device #i is connected via the path #j of the channel switch 16, the disk control unit 11, and the string controller 13 (step 102). Here, an error is detected in the disk control unit 11, the controller 13, or the disk drive unit 15 (step 103). Next, it is determined whether or not the path is limited for the retry (step 104). If the path is to be limited, it is determined whether or not the threshold value is exceeded by the number of occurrences of the error (step 105). If a retry is to be conducted without limiting the path, the vectors e 1i  and e 2i  are each set to &#34;1&#34; to allow the reconnection to be established through either one of the disk control units 11-12 (step 107), and the vectors r 1j  and r 2k  are each set to &#34;1&#34; to specify that the path #j of the channel switch 16 and the path #k of the channel switch 17 belong to the same path group (step 109). 
     Next, the vector P 2  is set to &#34;1&#34; to indicated the condition to the other disk control unit 12 (step 110). Then, data is written in the control memory 18 (steps 111-112). 
     On the other hand, if the error count does not exceed the threshold value, the vectors e 1i  and e 2i  are set to &#34;1&#34; and &#34;0&#34;, respectively, to allow the reconnection to be established only through the disk control unit 11, so that the retry is carried out by use of the same path (step 108). If the threshold value is exceeded by the error count, the vectors e 1i  and e 2i  are set to &#34;0&#34; and &#34;1&#34;, respectively to limit the path so as to allow the reconnection to be achieved only via the disk control unit 12 (step 106). When the path is limited, steps 109-112 are also processed as indicated above. 
     In FIG. 2A, the disk control unit 11 reports to the channel the status for a command retry request to disconnect the channel (steps 121-122), then determines whether or not the vector e 1i  has been set to &#34;1&#34;. If this is not the case, the reconnection is not executed via the disk control unit 11, and hence the control memory 18 is disconnected from the device #i of the disk drive unit 15 (steps 123, 131, and 132). If e 1i  has been set to &#34;1&#34;, the device #i of the disk drive unit 15 is instructed to take a preparatory action for the error recovery (steps 123-124). Next, it is checked whether or not the vector e 2i  has been set to &#34;1&#34;. If this is the case, the control memory 18 is separated from the device #i of the disk drive unit 15 (steps 125, 131, and 132). On the otherhand, if e 1i  and e 2i  are set to &#34;1&#34; and &#34;0&#34;, respectively, a reconnection request is issued to the path #j of the channel switch 16 after the preparatory action is finished, then the channel reconnection is achieved (steps 125-128). When the channel reconnection is completed, the status for a retry command request is reported to execute the retry command (steps 129-130). 
     On the other hand, the disk control unit 12 operates as follows with reference to FIG. 2B. The control unit 12 in the idling state receives an interrupt from the control memory 18, selects this memory 18, and reads the vectors e 1 , e 2 , r 1 , r 2 , and P (steps 141-145). Among the vectors read, if e 2i  = &#34;0&#34; or/and e 1i  = &#34;1&#34; has/have been set, the control memory 18,is disconnected (steps 146, 147, and 160). On the other hand, if e 2i  = &#34;1&#34; and e 1i  =&#34;0&#34; have been set, the device #i of the disk drive unit 15 is selected and is instructed to take a preparatory action for the error recovery (steps 146-149). When the preparatory action is finished, the disk control unit 12 issues a reconnection request for the path #k of the channel switch 17 by use of r 2  (steps 150-151). When the channel is reconnected, the status for a retry command request is reported to execute the retry command (steps 152-154). 
     FIG. 3 is a flowchart illustrating the operation to be conducted after the control memory 18 is disconnected from the disk drive unit 15 (#i) as shown in FIGS. 2A and 2B. 
     First, the disk control unit 11 is in the state of e 1i  = &#34;0&#34; or e 2i  = &#34;1&#34;, and hence the control memory 18 is disconnected from the device #i of the disk drive unit 15, then the idling state is established (step 171). When the device #i of the disk drive unit 15 issues an interrupt request, the disk control unit 11 detects the interrupt request and checks whether or not e 1i  has been set to &#34;1&#34;. If this is not the case, the reconnection must be performed only through the disk control unit 12, and hence the ordinary interrupt processing is executed (steps 172, 173, and 178). If e 1i  is &#34;1&#34; when the interrupt is detected, the retry can be achieved by use of the disk control unit 11, so a reconnection request for the path #j of the channel switch 16 is issued by use of r 1 . After the channel is reconnected, the status for a retry command request is reported (steps 172-176), thereby executing the retry command (step 178). 
     Next, an entirely identical operation (steps 161-168) is carried out in the disk control unit 12 so as to execute the retry command. 
     As described above, when an error occurs in an ordinary case, it cannot be clearly identified whether the error has occurred in the disk control unit 11 or 12, the string controller 13 or 14, or the disk drive unit 15. If the error source is found to be the disk drive unit 15, the probability of successful error recovery cannot be improved even if the path is altered. However, if the error source is the disk control unit 11 or 12 or the string controller 13 or 14, the error can be generally recovered only by a retry if the path is changed. There are two methods for changing the path, namely, the path to be activated by the operating system is changed or the path for the command retry is changed. In the former method, an input/output interrupt to the operating system takes place. This is not the case in the latter method, which is therefore advantageous over the former. In addition, as can be seen from step 105 of FIG. 1, the path adopted for the error recovery can be changed when the number of errors of a specific type becomes equal to or greater than a predetermined value. This provision makes it possible to reduce the number of unnecessary path changes. Moreover, the present invention can be applied to the general input/output systems. 
     In accordance with the present invention as described above, the error recovery is achieved without using the path on which an error has occurred in an input/output system having a plurality of access paths, thereby increasing the possibility of a successful error recovery. Especially, if an error occurs in a device on a path, not in an input/output unit, the error can be recovered by one retry. Furthermore, since the error recovery is carried out by a command retry, the overhead due to the input/output interrupts is reduced as compared with the recovery by use of the operating system.