System for restructuring input/output control system

Abstract: A system for restructuring an input/output control system having a first (10) and a second (20) input/output controllers each of which respectively connects a first (15) or a second (25) group of peripheral devices in a lower level and a data processing apparatus in an upper level, and controls data transfer operation between each of the corresponding group of peripheral devices and the data processing apparatus, wherein each of the first (15) and second (25) group of peripheral devices is also connected to the input/output controller corresponding to the other group of peripheral devices (25,15) so as to realize a cross call function. Each of the first and second input/output controllers (10,20) respectively holds its own control data, which is used for controlling a data transfer operation between the corresponding peripheral devices (15,25) and the data processing apparatus. When a situation which requires one of the input/output controllers to be in an off-line state arises, that fact is notified to the other input/output controller and the control data held in the one input/output controller is transferred to the other input/output controller. The other input/output controller receives the transferred conrol data and restructures the control data so that the other input/output controller can control the data transfer operation between the data processing apparatus, and all the peripheral devices which were originally under its control and all the devices originally under the control of the one input/output controller wherein the above situation has arisen.

Description: The present invention relates to a system for restructuring (reconstructing) an input/output control system having a plurality of input/output controllers. In an information processing system, an input/output control system is provided to control the data transfer operation between the data processing apparatus (or system) and the peripheral devices which handle data used for the data processing apparatus (or system), e.g., magnetic disk devices or magnetic tape devices as external memory devices. Often, a considerably large number of external memory devices are connected to one or more data processing apparatuses (or systems) as, for example, shown in US-A-4 697 232, or in GB-A-2 020 456 and, therefore, a plurality of input/output controllers is provided to constitute an input/output control system. Further, a cross call function is used in the input/output control system to improve the efficiency of access to the external memory devices. The cross call function enables the data processing apparatus (or system) to access a peripheral device through an input/output controller other than the input/output controller by which the peripheral device is usually controlled, when the input/output controller which usually controls the peripheral device is busy with a control operation for the other peripheral device. Figure 1 shows an example of the construction of an input/output control system. In Fig. 1, reference numerals 10 and 20 each denotes a magnetic tape device controller as an input/output controller, 11₁, 11₂, 11₃, ... , 21₁, 21₂, 21₃, ... each denotes a port which connects to an input/output channel (not shown) of one or a plurality of data processing apparatuses (or systems) in the upper level, e. g. a host computer, reference numeral 3 denotes a data path between the magnetic tape device controllers 10 and 20, reference numeral 4 denotes control lines connecting the magnetic tape device controllers 10 and 20, reference numeral 15₁, 15₂, 15₃, ... 25₁, 25₂, 25₃, ... denotes a magnetic tape device as an external memory device, 13 denotes a bus connecting the magnetic tape device controller 10 and the magnetic tape devices 15₁, 15₂, 15₃, ... , reference numeral 23 denotes a bus connecting the magnetic tape device controller 20 and the magnetic tape devices 25₁, 25₂, 25₃, ... , reference numeral 14 denotes a bus connecting the magnetic tape device controller 10 and the magnetic tape devices 25₁, 25₂, 25₃, ... , reference numeral 24 denotes a bus connecting the magnetic tape device controller 20 and the magnetic tape devices 15₁, 15₂, 15₃, ... , reference numerals 12 and 22 each denote a port which connects the corresponding magnetic tape device controller to the magnetic tape devices. In the construction as shown in Fig. 1, usually, the magnetic tape devices 15₁, 15₂, 15₃, ... are under the control of the magnetic tape device controller 10, and the magnetic tape devices 25₁, 25₂, 25₃, ... are under the control of the magnetic tape device controller 20, and therefore, the magnetic tape device controller 10 holds control data which is used for the input/output control of the magnetic tape devices 15₁, 15₂, 15₃, ... , and the magnetic tape device controller 20 holds control data which is used for the input/output control of the magnetic tape devices 25₁, 25₂, 25₃, ... . The cross call function operates in the above construction as follows. When a magnetic tape device controller 10 or 20 receives an input/output (I/O) command to access a magnetic tape device controller which is usually under the control of the magnetic tape device controller 10 or 20 from an input/output channel of a data processing apparatus (or system) in the upper level through one of the plurality of ports 11₁, 11₂, 11₃, ... , 21₁, 21₂, 21₃, ... , the magnetic tape device controller sets a flag indicating the magnetic tape device is accessed, and starts an operation of input/output control for the input/output (I/O) command. While a magnetic tape device controller is in operation of input/output control for an input/output (I/O) command, the magnetic tape device controller can not carry out other control operations for the other input/output (I/O) command. In the above situation, the cross call function operates. Namely, if a request to access a magnetic tape device under the magnetic tape device controller 10 which is busy with the control operation for the other input/output (I/O) command arises in an input/output channel of a data processing apparatus (or system), the input/output channel sends an input/output (I/O) command to the other magnetic tape device controller 20. When the magnetic tape device controller 20 receives the input/output (I/O) command, the magnetic tape device controller 20 realizes that the input/output (I/O) command is not requesting the magnetic tape devices under its own magnetic tape device controller 20, and inquires of the other magnetic tape device controller 10 whether or not the magnetic tape device requested for access is busy. When the magnetic tape device controller 10 receives the above inquiry from the other magnetic tape device controller, the magnetic tape device controller checks a flag table which includes flags indicating whether or not each magnetic tape device under the control of its own magnetic tape device controller is busy, and if the magnetic tape device requested is not busy, the magnetic tape device controller sets the flag of the magnetic tape device, and then informs the other magnetic tape device controller which has output the inquiry, that the requested magnetic tape device is available. When the magnetic tape device controller 20 receives the above information of the availability of the magnetic tape device, it starts an input/output control operation for the input/output (I/O) command using necessary control data for the magnetic tape device, which is usually held in the magnetic tape device controller 10 and is sent from the magnetic tape device controller 10 to the magnetic tape device controller 20. When the above control operation by the magnetic tape device controller 20 is completed, the magnetic tape device controller 20 informs the other magnetic tape device controller 10 of the completion of the operation, and the magnetic tape device controller 10 resets the flag for the magnetic tape device, and thus the cross call operation is completed. As mentioned above, in the existing input/output control system, while one (called first) input/output controller (magnetic tape device controller) controls data transfer between a data processing apparatus (or system) in the upper level and a peripheral device (magnetic tape device) which is usually under the control of the other (called second) input/output controller (magnetic tape device controller), the cooperation of the second input/output controller (magnetic tape device controller) is necessary at some phase, e. g., checking, setting and resetting the flag for the requested peripheral device (magnetic tape device), and communicating with the first input/output controller (magnetic tape device controller). The above cooperation is possible only when the input/output controller (magnetic tape device controller) which holds control data including the above-mentioned flags for the peripheral device (magnetic tape device), is in an ON state during the cross call operation. However, sometimes a situation may arise that requires its own input/output controller to be in an off-line state, for example, when a malfunction has occurred in its own input/output controller, when its own input/output controller is ordered to be in an off-line state, or when its own input/output controller is ordered to power off. Thus, at present, the cross call function cannot operate in the above situation, and therefore, an access to a peripheral device under the control of the input/output controller which is in an off-line state is impossible. Accordingly, it is desirable to provide a system for restructuring (reconstructing) an input/output control system having a plurality of input/output controllers when a situation which requires one of the input/output controllers to be in an off-line state arises. More specifically, it is desirable to provide a system for restructuring an input/output control system wherein a data processing apparatus in the upper level can access a peripheral device which was originally under the control of an input/output controller which is in an off-line state, so that the useability of an input/output control system is improved. According to the present invention as claimed, there is provided a system for restructuring an input/output control system having first and second input/output controllers each of which respectively connects a first or a second group of peripheral devices in a lower level and a data processing apparatus in an upper level, and controls a data transfer operation between each of the corresponding groups of peripheral devices and the data processing apparatus, wherein each of the first and second groups of peripheral devices is also connected to the input/output controller corresponding to the other group of peripheral devices; each of the first and second plurality of input/output controllers respectively comprising: a first or second memory means each for usually holding first or second control data, respectively, each of which control data is used for controlling a data transfer operation between the corresponding peripheral devices and the data processing apparatus; a first or second off-line situation notifying means each for notifying an arising of a situation which requires its own input/output controller to be in an off-line state, to the other input/output controller; a first or second no-response status indicating means each for indicating a no-response status of its own input/output controller to said data processing apparatus, when the situation which requires its own input/output controller to be in an off-line state arises; a first and second temporary stopping means each for temporarily stopping reception of a new I/O command in its own input/output controller, when its own input/output controller receives the notification of an arising of the above situation from the other input/output controller; a first and second temporary stop notifying means each for notifying a state of the temporary stop of its own input/output controller to the other input/output controller; a first and second control data transfer means each for transferring the control data held in the corresponding one of the first and second memory means to the other one of the first and second memory means, when its own input/output controller receives the notification of the temporary stop from the other input/output controller; a first and second off-line means each for carrying out an off-line operation of its own input/output controller after the completion of the transfer of the first or second control data; and a first and second restructuring means each for receiving the control data transferred from the other input/output controller, and restructuring the control data held in its own memory means and the control data transferred, so that its own input/output controller can control both the first and second peripheral devices. Thus, the system according to the present invention is applicable to an input/output control system having a plurality of input/output controllers, wherein each input/output controller respectively connects a group of peripheral devices in a lower level and a data processing apparatus in an upper level, and controls data transfer operation between each of the corresponding groups of peripheral devices and the data processing apparatus, and each group of peripheral devices corresponding to the corresponding one of the input/output controllers is also connected to the other input/output controller, so as to realize a cross call function. Reference is made, by way of example, to the accompanying drawings in which:- Figure 1 shows an example of the construction of an input/output control system; Figure 2 shows a basic sequence of the operation carried out in a system embodying the present invention; Figure 3 shows the construction of the input/output controller in an embodiment of the present invention; Figure 4 shows an example of the assignment of the region of the buffer memory 56 in the construction of Fig. 3 in a normal state; Figure 5 shows an example of the content of the RAM 55; Figure 6 shows an example of the assignment of the region of the buffer memory 56 in the construction of Fig. 3 in an off-line state; Figures 7 to 10 show operations which are carried out in an input/output controller in an embodiment of the present invention when a situation which requires its own input/output controller to be in an off-line state arises; and Figures 11 to 14 shows operations which are carried out in an input/output controller in an embodiment of the present invention, wherein a new input/output control system is to be restructured for accessing the peripheral devices under the control of the other input/output controller which is required to be in an off-line state. Figure 2 shows the basic sequence of the operation for restructuring an input/output control system which is carried out by the input/output controllers constituting the input/output control system embodying the present invention. In Fig. 2, two input/output controllers No. 1 and No. 2 are shown, where the input/output controller No. 1 is an input/output controller wherein a situation which requires its own input/output controller to be in an off-line state arises, and input/output controller No. 2 is an input/output controller wherein a new input/output control system is to be restructured for accessing the peripheral devices under the control of the other input/output controller which is required to be in an off-line state, in an embodiment of the present invention. The steps of the operation carried out by the input/output controller No. 1, are denoted by S1, S2, ... S5, and the steps of the operation carried out by the input/output controller No. 2, is denoted by C1, C2, ... C5. In the first step S1, when a situation which requires its own input/output controller to be in an off-line state has arisen in the input/output controller No. 1, the input/output controller No. 1 notifies that fact to the input/output controller No. 2, in other words, notifies a start of an operation to convert the state of the input/output controller No. 1 to an off-line state according to the present invention, to the input/output controller No. 2. In the second step S2, after the above operation of the step S1, the input/output controller No. 1 indicates a no-response status so that a data processing apparatus which potentially has a request to access a peripheral device under the control of the input/output controller No. 1, can recognize that the input/output controller No. 1 is in an off-line state. In the step C1, when the input/output controller No. 2 receives the notification made in the step S1 of the input/output controller No. 1, next, in the step C2, the input/output controller No. 2 indicates that the input/output controller No. 2 temporarily stops a reception of a new input/output (I/O) command from a data processing apparatus, so that the data processing apparatus can recognize that the input/output controller No. 2 is busy. In the step C3, after the above operation of the step C2, the input/output controller No. 2 notifies the arising of the above situation to the input/output controller No. 2, in other words, notifies the completion of the indication of the temporary stop to the input/output controllers No. 1. In the step S3, when the input/output controller No. 1 receives the notification made in the step C3 of the input/output controller No. 2, next, in the step S4, the input/output controller No. 1 transfers the control data used for the cross call operation (data necessary for the input/output controller No. 2 to control the peripheral devices which are originally under the control of the input/output controller No. 1) to the input/output controller No. 2. Then, in the step S5, the input/output controller No. 1 carries out the off-line operation of its own input/output controller. When the input/output controller No. 2 receives the cross call control data transferred in the step S4 from the input/output controller No. 1, in the step C4, the input/output controller No. 2 restructures all of the control data including the transferred cross call data and control data held in its own controller for controlling the peripheral devices which are originally under the control of the input/output controller No. 2, so that the input/output controller No. 2 can control both peripheral devices which are originally under the control of the input/output controller No. 1 and the peripheral devices which are originally under the control of the input/output controller No. 2. Then, in the step C5, the input/output controller No. 2 cancels the indication of the temporary stop, and re-starts the operation of input/output control of both of the peripheral devices which are originally under the control of the input/output controller No. 1 and the peripheral devices which are originally under the control of the input/output controller No. 2. According to the above operation, a data processing apparatus in the upper level can access a peripheral device which was originally under the control of an input/output controller which is in an off-line state, and the useability of an input/output control system is improved. Each of the input/output controllers which constitute the system for restructuring an input/output control system embodying the present invention has a construction which realizes the above functions of the input/output controllers No. 1 and No. 2, i.e., each input/output controller can function as the input/output controller No. 1 when a situation which requires its own input/output controller to be in an off-line state arises, or can function as the input/output controller No. 2 when the above situation in the other input/output controller. Figure 3 shows the construction of the input/output controller, which realizes the magnetic tape device controller 10 or 20, in an embodiment of the present invention. In Fig. 3, reference numeral 51 denotes a microprocessor, 52 denotes a bus, 53 denotes a ROM, 54 denotes a power supply circuit, 55 denotes a RAM, 56 denotes a data buffer memory, 57 denotes an interface control portion for one or a plurality of data processing apparatuses connected in the upper level, 58 denotes an interface control portion for peripheral (input/output) devices connected in the lower level, 59 denotes an operator panel, 60 denotes an interface control portion for the other input/output controller, 61 denotes a control line to control the electric power supply circuit 54, 3 denotes a data path between the other input/output controller, and 4 denotes control lines between the other input/output controller. In the embodiment shown in Figs. 1 and 3, the input/output controllers 10 and 20 each have eight input/output ports in each of the upper level side and the lower level side, i.e., the input/output controller 10 and 20 can be connected to eight input/output channels of one or a plurality of data processing apparatuses (or systems), and can be connected to eight peripheral devices in the lower level side. In the construction of Fig. 3, the microprocessor 51 operates in accordance with a microprogram which is held in the ROM 53, and controls the whole operation of the input/output controller of Fig. 3. The interface control portion 57 controls the data input/output operation with the data processing apparatus (or system) in the upper level, and has eight ports connected with the input/output channel of the data processing apparatus (or system). The interface control portion 58 controls the data input/output operation with the peripheral devices in the lower level, and has eight ports each connected with an peripheral device. The interface control portion 60 controls the data input/output operation with the other input/output controller. The power supply circuit 54 supplies electric power to the whole construction of the input/output controller, and the ON and OFF operation is controlled by the microprocessor 51. The operator panel 59 is used by the operator to manually input various commands, for example, to command to the input/output controller to be in an off-line state, or to command to the input/output controller to be in an on-line state. The data buffer memory 56 is used for temporarily holding data which has been sent from one side (the upper level or the lower level) until sending it out to the other side, for example, when magnetic tape devices are connected as peripheral devices, the data which is to be written on the magnetic tape is received and held in the data buffer memory 56 in advance of being written on the magnetic tape in the streaming mode, and the data read from the magnetic tape is held in the data buffer memory 56 in advance of being transferred to the data processing apparatus (or system) in the upper level. The region of the data buffer memory 56 is assigned to each of the peripheral devices which are originally (normally) under the control of its own input/output controller, and an example of the assignment of the region is shown in Figure 4, wherein the divided region denoted by I/O 15₁, 15₂, 15₃, ... corresponds to the peripheral devices 15₁, 15₂, 15₃, ... which are originally under the control of input/output controller (magnetic tape device controller) in Fig. 1. The RAM 55 stores various control data for the input/output controller to operate, and the typical contents of the RAM 55 are shown in Figure 5, wherein reference numeral 71 denotes a temporary off-line flag, 72 denotes an off-line flag, 73 denotes a no-response flag table, 74 denotes a CUBUSY flag table, 75 denotes a table of the operation status indication flags for I/O devices, 76 denotes a table of the I.D. numbers of the I/O devices under the control of the input/output controller, and 77 denotes a buffer control table. The temporary off-line flag 71 indicates whether or not the input/output controller is required to be in a temporary off-line state. The off-line flag 72 indicates whether or not the input/output controller is required to be in an off-line state. The no-response flag table 73 has a bit for each of the ports which connect the input/output controller with the data processing apparatus (or system) in the upper level, and each bit indicates whether or not an off-line signal is output through the corresponding one of the ports, where the off-line signal is a code signal which indicates that the input/output controller is in an off-line state, and therefore, the input/output channel of the data processing apparatus (or system) in the upper level which channel is connected through the port, recognizes that the input/output controller is in an off-line state. Similarly, the CUBUSY flag table 74 has a bit for each of the ports which connect the input/output controller with the data processing apparatus (or system) in the upper level, and each bit indicates whether or not a CUBUSY signal is output through the corresponding one of the ports, where the CUBUSY signal is a code signal which indicates that the input/output controller is in a CUBUSY state, and therefore, the input/output channel of the data processing apparatus (or system) in the upper level which channel is connected through the port, recognizes that the input/output controller is busy with an operation for the other input/output (I/O) command which has been last received. When the data processing apparatus (or system) in the upper level detects the CUBUSY signal, the data processing apparatus (or system) waits a predetermined time, and sends the input/output (I/O) command again. The table of operation status indicating flags for I/O devices 76 indicates whether or not each peripheral device which is under the control of the input/output controller, is in use (is accessed). The buffer control table 77 holds the control data to use the assigned region of the data buffer memory 56 for each of the I/O devices under the control of the input/output controller, for example, the top element address of the assigned region, the capacity of the assigned region, and the available (not occupied) region in the assigned region, or the like. Figures 7 to 14 show operations which are carried out in the input/output controller having the construction of Fig. 3. The operations are carried out, for example, when a malfunction occurs in the input/output controller, when the input/output controller receives a power-off command, or when the processor realizes that an off-line command is input from the operator panel. Further, the above operations are carried out under the control of the microprocessor in accordance with a microprogram, and the operations shown in each of Figs. 7 to 14 define a routine. First, the operations of the input/output controller in an embodiment of the present invention when a situation which requires its own input/output controller to be in an off-line state arises, are explained with reference to Figs. 7 to 10. The flow of the operation shown in Fig. 7 starts when a situation which requires its own input/output controller to be in an off-line state, arises. In the step 701 shown in Fig. 1, the input/output controller sets the off-line flag. In the step 702, the input/output controller notifies the other input/output controller of the start of the converting operation to an off-line state, for example, through the interface control portion 60 and the control line 4 shown in Fig. 3. In the step 703, the input/output controller determines whether or not the operation for an input/output (I/O) command is carried out at the time. If it is determined that an operation for an input/output (I/O) command is carried out in the input/output controller at the step 703, the input/output controller sets no-response flags for all the ports connecting with the data processing apparatus (or system) in the upper level, except for the port through which the operation for the input/output (I/0) command is carried out, at the step 704, and then the operation of Fig. 7 is completed. If it is determined that no operation for an input/output (I/O) command is carried out in the input/output controller at the step 703, the input/output controller sets no-response flags for all the ports connecting with the data processing apparatus (or system) in the upper level, at the step 705, and then the operation goes to the stop 101 shown in Fig. 10. In the above steps 704 and 705, the no-response flags exist in the no-response flag table in Fig. 1, and when the no-response flag is set for a port, in practice, a signal indicating the no-response state is output through the port to the input/output channel of the data processing apparatus (or system) in the upper level, and therefore, the input/output channel realizes that the input/output controller is in the no-response state, and the input/output does not send an input/output (I/O) command to the input/output controller while the signal is output. Fig. 8 shows the operation of the input/output controller when the input/output controller receives an input/output (I/O) command. In the step 801 shown in Fig. 8, the input/output controller determines whether or not the input/output controller received an input/output (I/O) command. If it is determined that an input/output (I/O) command is received in the step 801, the operation goes to the step 802, or if it is determined that an input/output (I/O) command is not received at the step 801, the input/output controller awaits reception of an input/output (I/O) command at the step 801. In the step 802, the input/output controller determines whether or not the off-line flag 72 in the RAM 55 in the input/output controller is ON. If it is determined that the off-line flag 72 is ON, the operation goes to the step 803. Or if it is determined that the off-line flag 72 is OFF, the operation goes to the step 804. In the step 803, the input/output controller does not answer the input/output (I/O) command, while the input/output controller is sending the aforementioned signal indicating a no-response state corresponding to the ON state of the no-response flag, and then the operation of Fig. 8 is completed. In the step 804, the input/output controller carries out a normal operation for the input/output (I/O) command, as the no-response flag is OFF, and then the operation of Fig. 8 is completed. Fig. 9 shows the operation of the input/output controller after the aforementioned operation for the input/output (I/O) command of the step 703 of Fig. 7 is completed. The input/output (I/0) command generally has a form wherein a series of input/output (I/O) commands are chained. In the above operation, the series of input/output (I/O) commands which are chained to each other are deemed as one input/output (I/O) command. When the above mentioned operation for the input/output (I/O) command through the port is completed, in the step 901 shown in Fig. 9, the input/output controller sets the no-response flag for the port, and then the operation goes to the step 902. In the step 902, the input/output controller determines whether or not the operations for all the input/output (I/O) commands which has been received are completed. This determination is carried out by checking the no-response flags for all the ports in the no-response flag table 73. If it is determined that the operations for all the input/output (I/O) commands which has been received are completed, the operation goes to the step 101 of Fig. 10. Or if it is determined that an operation for all the input/output (I/O) commands which has been received is not completed, the operation of Fig. 9 is completed. Fig. 10 shows the off-line operation of the input/output controller after all the operations for the input/output (I/O) commands are completed. After the operations at the step 705 in Fig. 7 and step 902 of Fig. 9, in the step 101 of Fig. 10, the input/output controller notifies the other input/output controller that all the operations for all the input/output (I/O) commands which have been received are completed, and then, at the step 102, waits for a notification (signal) which indicates that the other input/output controller can receive the cross call (control) data, which is to be sent from the other input/output controller. If it is determined that the above notification (signal) which indicates that the other input/output controller can receive the cross call (control) data, sent from the other input/output controller, is received, at the step 102, the operation goes to the step 103, and then the input/output controller transfers a set of cross call control data including the contents of the table of the I.D. numbers of the I/O devices under the control of the input/output controller 76 and the buffer control table 77, to the other input/output controller. In the step 104, the input/output controller carries out an off-line operation, i.e., controls the power supply circuit 54 by sending a power-off signal from the microprocessor 51 to the power supply circuit 54, or, if a power-off is unnecessary, the microprocessor controls the operator panel 59 to display that the input/output controller is in an off-line state. Figure 11 to 14 shows an operation which is carried out in an input/output controller in the embodiment of the present invention, wherein a new input/output control system is to be restructured for accessing the peripheral devices under the control of the other input/output controller which is required to be in an off-line state. The operation of the input/output controller shown in Fig. 11 starts when the input/output controller receives the aforementioned notification which is made at the step 702 of Fig. 7 by the other input/output controller (the input/output controller which carries out the operation of Figs. 7 to 10). In the step 111 of Fig. 11, when the input/output controller receives the above notification, the input/output controller sets the temporary off-line flag in the RAM 55 shown in Fig. 3. The above notification is received at the microprocessor through the control line 4 and the interface control portion 60 shown in Fig. 3 as an interrupt. In the step 112, the input/output controller determines whether or not an operation for an input/output (I/O) command is carried out at the time. If it is determined that an operation for an input/output (I/O) command is carried out in the input/output controller at the step 112, the input/output controller sets the CUBUSY flags for all the ports connecting with the data processing apparatus (or system) in the upper level, except the port command which the operation for the input/output (I/O) command is carried out, in the step 113, and then the operation of Fig. 11 is completed. As mentioned before in the explanation of the CUBUSY flags with reference to Fig. 5, when the CUBUSY flag is ON, the CUBUSY signal is output through the corresponding one of the ports, and therefore, the input/output channel of the data processing apparatus (or system) in the upper level detects the CUBUSY signal, waits a predetermined time, and sends the input/output (I/O) command again. If it is determined that no operation for an input/output (I/O) command is carried out in the input/output controller at the step 112, the input/output controller sets the CUBUSY flags for all the ports connecting with the data processing apparatus (or system) in the upper level, at the step 114, and then the operation goes to the step 141 shown in Fig. 14. Fig. 12 shows the operation of the input/output controller wherein the temporary off-line flag is ON, when the input/output controller receives an input/output (I/O) command. In the step 121 shown in Fig. 12, the input/output controller determines whether or not the input/output controller received an input/output (I/O) command. If it is determined that an input/output (I/O) command is received in the step 121, the operation goes to the step 122, or if it is determined that an input/output (I/O) command is not received in the step 121, the input/output controller waits for a reception of an input/output (I/O) command in the step 121. In the step 122, the input/output controller determines whether or not the temporary off-line flag 71 in the RAM 55 in the input/output controller is ON. If it is determined that the temporary off-line flag 71 is ON, the operation goes to the step 123. Or if it is determined that the temporary off-line flag 71 is OFF, the operation goes to the step 124. In the step 123, the input/output controller sends the CUBUSY signal to the other input/output controller against the input/output (I/O) command due to the ON state of the temporary off-line flag, and then the operation of Fig. 12 is completed. In the step 124, the input/output controller carries out a normal operation for the input/output (I/O) command, as the temporary off-line flag is OFF, and then the operation of Fig. 12 is completed. Fig. 13 shows the operation of the input/output controller wherein the temporary off-line flag is ON, after the aforementioned operation for the input/output (I/O) command of the step 112 of Fig. 11 is completed. As mentioned before, in the above operation, the series of input/output (I/O) commands which are chained to each other are deemed as one input/output (I/O) command. When the above-mentioned operation for the input/output (I/O) command through the port is completed, in the step 131 shown in Fig. 13, the input/output controller sets the CUBUSY flag for the port, and then the operation goes to the step 132. In the step 132, the input/output controller determines whether or not the operations for all input/output (I/O) commands which have been received are completed. This determination is carried out by checking the CUBUSY flags for all the ports in the CUBUSY flag table 73. If it is determined that the operations for all the input/output (I/O) commands which have been received are completed, the operation goes to the step 141 of Fig. 14. Or if it is determined that an operation for an input/output (I/O) command which has been received is not completed, the operation of Fig. 13 is completed. Fig. 14 shows the operation for restructuring the input/output control system in the input/output controller, so that the input/output controller can control the both the peripheral devices which is originally (normally) under the control of the other input/output controller which is required to be in an off line state, and the peripheral devices under the control of its own input/output controller. After the operations in the step 114 in Fig. 11 and step 132 of Fig. 13, in the step 141 of Fig. 14, the input/output controller notifies the other input/output controller that the preparation for receiving the cross call control data is completed, and then, in the step 142, waits for transfer of the cross call control data from the other input/output controller, by the operation of the step 103 of Fig. 10. If it is determined that the above cross call control data is transferred from the other input/output controller through the data path 3 and the interface control portion 60 as shown in Fig. 3, at the step 142, the operation goes to the step 143, and then the input/output controller carries out a receiving operation of the transferred cross call control data, i.e., the transferred cross call control data is temporarily stored in a predetermined work area in the RAM 55. In the step 144, restructuring of the input/output control system including restructuring of the above cross call control data is carried out as follows. First, the I. D. numbers of the peripheral devices which were originally under the control of the other input/output controller are stored as a part of the I. D. numbers of the peripheral devices under the control of its own input/output controller. For example, the I. D. numbers of the I/O devices 15₁, 15₂, 15₃, ... originally under the input/output controller 10 in Fig . 1 are stored as a part of I. D. numbers of the peripheral devices under the control of its own input/output controller 20, in the RAM 55 of the input/output controller 20, so that the input/output controller 20 controls the data transfer operation between the data processing apparatus (or system) in the upper level and the peripheral devices 15₁, 15₂, 15₃, ... , 25₁, 25₂, 25₃, ... . Secondly, the data region of the data buffer memory 56 must be re-assigned. An example of the re-assignment of the data region is shown in Fig. 6, where it is assumed that each of the input/output controllers 10 and 20 originally controls eight peripheral devices 15₁, 15₂, 15₃, ... 15₈ and 25₁, 25₂, 25₃, ... 25₈, respectively, as in Fig. 4. The re-assigned area to each input/output controller shown in Fig. 6 is a half of the originally assigned area shown in Fig. 4. Corresponding with the above re-assignment of the data region of the data buffer memory 56, the buffer control table must also be re-written. In addition, the other data used for input/output control including the data for controlling the bus 52, is re-set for restructuring the input/output control system. Thus, the input/output controller wherein the above input/output control system is restructured can control a data transfer operation between a data processing apparatus (or system) and the peripheral devices which was originally under control of the other input/output controller which is required to be in an off-line state. In the step 145, the temporary off-line flag in the RAM 55 is reset as the restructuring of the input/output control system system is completed. In addition, the CUBUSY flag is reset at the step 146, and therefore, normal input/output control operations on the restructured input/output control system start.

Claims: A system for restructuring an input/output control system having first and second input/output controllers (10, 20) each of which respectively connects a first or a second group of peripheral devices (15₁, 15₂, 15₃, ... , 25₁, 25₂, 25₃, ... ) in a lower level and a data processing apparatus in an upper level, and controls a data transfer operation between each of the corresponding groups of peripheral devices (15₁, 15₂, 15₃, ... , 25₁, 25₂, 25₃, ... ) and said data processing apparatus, wherein each of said first and second group of peripheral devices (15₁, 15₂, 15₃, ... , 25₁, 25₂, 25₃, ... ) is also connected to the input/output controller (20, 10) corresponding to the other group of peripheral devices (25₁, 25₂, 25₃, ... , 15₁, 15₂, 15₃, ... ); each of said first and second plurality of input/output controllers (10, 20) respectively comprising: a first or second memory means (55) each for usually holding first or second control data, respectively, each of which control data is used for controlling a data transfer operation between the corresponding peripheral devices (15₁, 15₂, 15₃, ... , 25₁, 25₂, 25₃, ... ) and said data processing apparatus; a first or second off-line situation notifying means each for notifying an arising of a situation which requires its own input/output controller (10, 20) to be in an off-line state, to the other input/output controller (20, 10); a first or second no-response status indicating means each for indicating a no-response status of its own input/output controller (10, 20) to said data processing apparatus, when said situation which requires its own input/output controller (10, 20) to be in an off-line state arises; a first and second temporary stopping means each for temporarily stopping reception of a new I/O command in its own input/output controller (10, 20), when its own input/output controller (10, 20) receives said notification of an arising of said situation from the other input/output controller (20, 10); a first and second temporary stop notifying means each for notifying a state of said temporary stop of its own input/output controller (10, 20) to the other input/output controller (20, 10); a first and second control data transfer means each for transferring said control data held in the corresponding one of said first and second memory means (55) to the other one of said first and second memory means (55), when its own input/output controller (10, 20) receives said notification of the temporary stop from the other input/output controller (20, 10); a first and second off-line means each for carrying out an off-line operation of its own input/output controller after the completion of said transfer of said first or second control data; and a first and second restructuring means each for receiving said control data transferred from the other input/output controller (20, 10), and restructuring the control data held in its own memory means (55) and said control data transferred, so that its own input/output controller (10, 20) can control both the first and second peripheral devices (15₁, 15₂, 15₃, ... , 25₁, 25₂, 25₃, ... ). A system according to claim 1, wherein each of said input/output controllers (10, 20) further comprises a data buffer memory means (56) for buffering said data transferred between said data processing apparatus and the corresponding one of said first or second group of peripheral devices (15₁, 15₂, 15₃, ... , 25₁, 25₂, 25₃, ... ); and each of said first or second restructuring means further re-assigns the region of said data buffer memory means (56), so that each of said first or second restructuring means further can carry out a buffering operation of said data transferred between said data processing apparatus and the other than said corresponding one of said first or second group of peripheral devices (15₁, 15₂, 15₃, ... , 25₁, 25₂, 25₃, ... ). A system according to claim 1 or 2, wherein each of said input/output controllers (10, 20) has a plurality of ports (11₁, 11₂, 11₃, ... , 21₁, 21₂, 21₃, ... ) which are used for data transfer between said plurality of peripheral devices (15₁, 15₂, 15₃, ... , 25₁, 25₂, 25₃, ... ) and a plurality of channels of said data processing apparatus; and each of said first and second temporary stop means indicates a no-response status of its own input/output controller (10, 20) for a part of said plurality of ports through each of which a data transfer operation for an I/O command is not carried out when said situation of its own input/output controller (10, 20) arises, immediately after the situation arises, and indicates a no-response status of its own input/output controller (10, 20) for the other part of said plurality of ports through each of which a data transfer operation for an I/O command is carried out when said situation of its own input/output controller (10, 20) arises, after the data transfer operation is completed. A system according to claim 1 or 2, wherein each of said input/output controllers (10, 20) has a plurality of ports (11₁, 11₂, 11₃, ... , 21₁, 21₂, 21₃, ... ) which are used for data transfer between said plurality of peripheral devices (15₁, 15₂, 15₃, ... , 25₁, 25₂, 25₃, ... ) and a plurality of channels of said data processing apparatus; and each of said first and second temporary stop means temporarily stops a reception of a new I/O command at a part of said plurality of ports through each of which a data transfer operation for an I/O command is not carried out when its own input/output controller (10, 20) receives said notification of an arising of said situation from the other input/output controller (20, 10), immediately after the notification is received, and temporarily stops a reception of a new I/O command at the other part of said plurality of ports through each of which a data transfer operation for an I/O command is carried out when its own input/output controller (10, 20) receives said notification of an arising of said situation from the other input/output controller (20, 10), after the data transfer operation is completed. A system according to claim 1,2,3, or 4, wherein said situation which requires its own input/output controller (10, 20) to be in an off-line state, includes a situation when a malfunction has arisen in its own input/output controller (10, 20), a situation when its own input/output controller (10, 20) is ordered to be in an off-line state, and a stuation when its own input/output controller (10, 20) is ordered to power off.

Inventors: KOYAMA SUSUMU, KOYAMA, SUSUMU
Applicants: FUJITSU LTD, FUJITSU LIMITED
Application year: 1989
Main classification: G06F13
IPC codes: G06F13