AN INITIAL PROGRAM LOAD CONTROL SYSTEM IN A MULTIPROCESSOR SYSTEM

Abstract: A method and apparatus for executing an initial program load (IPL) control in a multiprocessor system, the multiprocessor system having a global storage unit (GSU) and a plurality of clusters (CLUSTER 1,...), each of the clusters having at least one or more processors (CPUO,...) and a local storage unit (LSU1), and one of the clusters having a direct access storage device (DASD), the method comprising: executing the IPL from the processor belonging to the cluster having the direct access storage device to the local storage unit belonging to that cluster; transferring the IPL information from the local storage unit executing the IPL to the global storage unit; and transferring the IPL information from the global storage unit to the other local storage unit in another cluster not having the direct access storage device.

Description: The present invention relates to an initial program load (IPL) control system in a multiprocessor system and, more particularly, to a method and apparatus for executing the IPL in a multiprocessor system divided into a plurality of clusters. A multiprocessor system is constituted by a plurality of processors, and for a cluster control, the plurality of processors is divided into a plurality of groups, each of which is called a "cluster", and then a control of an access between processors is performed through each cluster. Namely, each cluster is an elemental for carrying out access control of the processors. The IPL is an initial setting procedure for loading a program, to start an operation of an operating system (OS) from an auxiliary storage (for example, a direct access storage device (DASD)) to a main memory or a local storage unit. It is desirable to provide an initial program load control system in a multiprocessor system which can enable a reduction of a time required for a transfer of the initial program to a local storage unit included in each of the clusters. An example of a system for performing IPL in a multiprocessor system is disclosed in EP-A-0 222 370; however, in this system single processors constitute individual information processing units rather than being grouped in clusters. According to one aspect of the present invention, there is provided an apparatus for executing an initial program load IPL between processors constituting a multiprocessor system, the processors being divided into a plurality of clusters, each cluster having one or more of said processors and a local storage unit for storing data, and the system including a direct access storage device for storing IPL information used in the cluster IPL; characterised in that the apparatus comprises:- a global storage unit; a global control unit connected to each of said clusters through a corresponding bus line and to the global storage unit, for controlling reception and transmission of cluster reset and IPL orders for the clusters and for accessing said global storage unit; each cluster further comprising a service processor and a memory control unit; the service processor being connected to the memory control unit and operable to perform the cluster reset and cluster IPL; the memory control unit being connected between the global control unit and each of said processors belonging to the cluster, for controlling transmission and reception of said cluster reset and IPL orders between any sending processor of the cluster and the global control unit, or between the global control unit and the receiving service processor of the cluster; the local storage unit being connected to the memory control unit; and at least one of the clusters further comprising said direct access storage device connected to the memory control unit; wherein, in use, the IPL information is transferred from the direct access storage device to the local storage unit of the same cluster, transferred from said local storage unit to the global storage unit, and transferred from the global storage unit to the local storage unit of each cluster not having a direct access storage device. Further, according to another aspect of the present invention, there is provided a method for executing an initial program load IPL control in a multiprocessor system, the multiprocessor system having a plurality of clusters, each of said clusters having one or more processors and a local storage unit, and said system having a direct access storage device storing IPL information; characterised by the steps of:- providing the system with a global storage unit and a global control unit connected to each of said clusters through a corresponding bus line and to the global storage unit; providing each cluster with a service processor for executing a cluster reset and IPL operation for the cluster, and in at least a first of said clusters said direct access storage device; the steps of executing IPL control comprising:- in said first cluster, sending the IPL information from the direct access storage device to the local storage unit by command from a processor of the cluster; transferring the IPL information from said local storage unit to the global storage unit; generating an IPL order from said processor of said first cluster to a second one of the clusters; resetting all devices in the second cluster by a command from its service processor, and transferring the IPL information from a predetermined area in the global storage unit to the local storage unit of the other cluster by a command from said service processor; generating in succession IPL orders from said processor of said first cluster to each of the other clusters; and executing the IPL operation in each other cluster when its service processor receives the IPL order. Apparatus and methods embodying the present invention can be advantageous for large-scale numerical simulations in scientific and technical fields in which high-speed calculations are necessary. Reference is made, by way of example, to the accompanying drawings, in which:- Fig. 1 is a schematic block diagram of a previously-proposed multiprocessor system; Figure 2 is a basic block diagram of an apparatus for a cluster control in the multiprocessor system; Figure 3 is a schematic block diagram of each cluster according to an embodiment of the present invention; Figure 4 is one example of a format of an order; Figure 5 is a flowchart for explaining a CLUSTER-SENSE order; Figure 6 is a flowchart for explaining a CLUSTER-SYNCHRONOUS-CALL order; Figure 7 is a flowchart for explaining an IPL control method embodying the present invention; Figure 8 is a flowchart for explaining a basic IPL control method embodying the present invention; Figures 9A and 9B are schematic block diagrams of a global control unit embodying the present invention; and Figure 10 is a schematic block diagram of a memory control unit embodying the present invention. Before describing the preferred embodiments, an explanation will be given of a previously-proposed multiprocessor system. Figure 1 is a schematic block diagram of a previously-proposed multiprocessor system. In Figure 1, the multiprocessor system is constituted by, for example, processors CPU0 to CPU5, and each processor is connected in parallel to another processor through a bus line BUS and a mutual control is carried out between one processor and the other. In this multiprocessor system, each processor is set to one of four states having an exclusive relationship therebetween; i.e., any one of four states ("STOP", "OPERATION", "LOAD" and "CHECK-STOP") is set in each processor. When carrying out an access, one processor outputs a sense signal to the other processor, to recognize the state of other processor, receives a response from the other processor involving one of the above four states, and carries out a mutual control in accordance with the above four states. In this system, however, much time is necessary for the management of access steps between the processors, and thus it is difficult to achieve a high speed processing in the multiprocessor system. Further, the control program is complicated due to the large number of access steps. Figure 2 is a basic block diagram of an apparatus for the cluster control in the multiprocessor system. In Fig. 2, a plurality of processors CPU1 to CPUn are divided into "m" groups (1 to m) each having three processors, and each group is called a "cluster". MCU1 to MCUm are a memory control unit provided in each cluster and connected between the processor and a global control unit GCU. The global control unit GCU controls the access between clusters, as explained in detail hereinafter, and is contained in a global storage unit GSU. The state of each cluster is defined by the memory control unit MCU based on the state of the processors belonging to that cluster. Further, the global control unit GCU sets up an order for each cluster and controls the processor, based on the order for each cluster, through the memory control unit MCU. In the above structure, since the access between processors is controlled through the cluster, it is possible to reduce the control time between processors. Further, it is possible to simplify the control program since the access is performed between clusters. Figure 3 is a schematic block diagram of each cluster according to an embodiment of the present invention. In Fig. 3, the multiprocessor system is constituted by sixty four processors, which are divided into sixteen clusters (CLUSTER1 to CLUSTER16) each having four processors CPU0 to CPU3. Therefore, the global control unit GCU controls only sixteen clusters 1 to 16 through the bus line BUS. In this case, the clusters 2 to 16 have the same structure and the cluster 1 has a structure different from that of the other clusters 2 to 16. As shown in the drawing, the cluster 1 comprises a memory control unit MCU1, four processors CPU0 to CPU3, a local storage unit LSU1, a direct access storage device DASD, a service processor SVP1, an input/output processor IOP, and a channel element CHE connected between the IOP and the DASD. And each of the clusters 2 to 16 comprises a memory control unit MCU, four processors CPU0 to CPU3, a local storage unit LSU, and a service processor SVP. The global control unit GCU is used in common for all clusters 1 to 16, and connected to each cluster through the bus line BUS. The processor belonging to each cluster is defined by the four states "STOP", "OPERATION", "LOAD" and "CHECK-STOP", and these four states are exclusive therebetween and change under the following conditions. (1) When an operator uses an operating facility. (2) When the processor receives a specified "SIGNAL-PROCESSOR (SIGP)" order for that processor. (3) When the cluster having that processor receives a specified "GLOBAL SIGNAL PROCESSOR (GSIGP)" order for that cluster. Further, the state of the cluster is based on the state of the processors belonging to that cluster, as follows. CLUSTER-STOP None of the processors in the cluster is in the OPERATION or LOAD state and at least one processor in the cluster is in the STOP state. CLUSTER-CHECK-STOP None of the processors is in the STOP, OPERATION or LOAD states. These states further include the states wherein the processor are not connected to each other or none of the processor is supplied with power. SUBSYSTEM-DAMAGE When a channel subsystem damage is found in the cluster, the cluster is placed in the SUBSYSTEM-DAMAGE state. When the SUBSYSTEM-DAMAGE state is set, the CLUSTER-STOP and CLUSTER-CHECK-STOP states are simultaneously set in the cluster. In this embodiment, when one processor commands another processor to process an order, the command is sent to the cluster to which the other processor belongs, not directly to the other processor. Three main orders are sent to each cluster, defined as follows. Namely, the CLUSTER-SENSE order, the CLUSTER-SYNCHRONOUS-CALL order (floating interruption order), and the CLUSTER-RESET and LOAD order (RESET and IPL order). Further, for example, the CLUSTER-BROADCAST-INTERRUPTION order for accessing the same order to all clusters and the CLUSTER-ASYNCHRONOUS-INTERRUPTION order are used, and these orders are called as a whole a GSIGP order. The GSIGP order is mainly used for a floating interruption between the processors, as explained hereinafter. The operation of these orders is explained in detail hereinafter. CLUSTER-SENSE order The flowchart of these steps is shown in Fig. 5 (1) The processor 1 (CPU1) in the cluster 1 decodes and recognizes the GSIGP order. (2) The processor 1 sends the GSIGP order to the memory control unit MCU. The GSIGP order includes a CLUSTER-ID portion and an ORDER portion. (3) The memory control unit MCU sends the GSIGP order to the global control unit GCU. The GSIGP order includes a SENSE command, a CLUSTER-ID, and a parameter, as shown in Fig. 4. (4) The global control unit GCU interprets the CLUSTER-ID. When the correct cluster (connected to the cluster) is designated, the flow proceeds to the next step. When the designated cluster is incorrect, the GSIGP order is returned to the cluster at the transmission side with the information "incorrect destination". (5) The global control unit GCU sends the GSIGP order to the memory control unit MCU of the target cluster. (6) When the memory control unit MCU at the reception side interprets the SENSE order, it generates the state of that cluster as the status information based on the states of the processors, the information from the input/output processor IOP, and the states of the synchronous call (floating interruption order)in the MCU. (7) The memory control unit MCU in the cluster at the reception side sends the status information of that cluster to the global control unit GCU. (8) The global control unit GCU sends the received status information to the memory control unit MCU in the cluster at the transmission side. (9) The memory control unit MCU sends the received status information and a condition code (CC) to the processor CPU1 which generated the GSIGP order. (10) When the processor CPU1 receives the status information and the condition code CC, it interprets this as a termination of the GSIGP order, and proceeds to the next order. In the case of an "incorrect destination" mentioned in step (4), as shown in steps (4)-1, (4)-2 and (4)-3, the global control unit GCU returns the GSIGP order including the incorrect destination to the memory control unit MCU at the transmission side in the same order as the GSIGP order sent from other cluster. In this case, a flag bit indicating the incorrect destination is added to the order. When the memory control unit MCU at the transmission side recognizes the flag bit in the GSIGP order received, the MCU returns the same GSIGP order as above to the global control unit GCU as the status information. At that time, the content of the GSIGP order is ignored. The global control unit GCU sends the returned status information to the memory control unit MCU at the transmission side as the status information, and the status information received from the destination side in the case of a normal GSIGP order. The interface lines between the MCU and the GCU include a signal line for discriminating either the status information or the order from the transferred information. As explained above, in the case of an incorrect destination, the GSIGP order is sent to the memory control unit MCU as the order and that order is returned to the global control unit GCU, and then that order is again returned to the memory control unit MCU as the status information. This is because these procedures make the operation procedures at the GCU and the MCU almost identical regardless of the correctness of the cluster ID. CLUSTER-SYNCHRONOUS-CALL order The flowchart of this step is shown in Fig. 6. Since the procedures from step (1) to step (5) are the same as for the steps shown in Fig. 5, an explanation thereof is omitted. The following step follows step (5). (6)′ When the memory control unit MCU of the reception side interprets the CLUSTER-SYNCHRONOUS-CALL order, it determines whether or not an interruption pending latch of that memory control unit MCU is turned ON. When the latch is turned ON, the memory control unit MCU writes the "turned ON state" to the status information as shown by step (6)′-1. When the latch is turned OFF, the memory control unit MCU writes the "turned OFF state" to the status information, and then the interruption pending latch of the memory control unit MCU is turned ON as shown by steps (6)′-2 and (6)′-3. The same procedures as for step (7) to step (10) are carried out after the above step (6)′. Further, when the interruption enabled processor exists in the cluster at the reception side, the interruption is made to that processor. The procedures of an IPL control method embodying the present invention are expressed as follows. The flowchart of this step is shown in Fig. 7. The encircled numbers in Fig. 3 correspond to the following steps. 1 ○ In the cluster 1 having the direct access storage device DASD, the processor CPU0, for example, commands that IPL information be sent from the DASD to the local storage unit LSU1 through the channel element CHE, the input/output processor IOP and the memory control unit MCU1, and stores it in the LSU1. 2 ○ The processor CPU0 transfers the IPL information from the LSU1 to the global storage unit GSU through the global control unit GCU. 3 ○ The processor CPU0 generates a reset and IPL order to the cluster 2. 4 ○ The service processor SVP2 belonging to the cluster 2 resets all devices in the cluster 2 and transfers the IPL information from a predetermined area in the GSU to the LSU 2 in the cluster 2. 5 ○ The processor CPU0 belonging to the cluster 1 generates the IPL order to the other clusters 3 to 16, in succession. 6 ○ When each cluster receives the IPL order, the service processor SVP belonging to each cluster executes the same IPL operation as in step 4 ○. In this case, the IPL order is independently generated in succession from the cluster 1, regardless of the IPL operation at the other clusters, and the IPL operation in each cluster is independently executed in parallel in each cluster. In accordance with an embodiment of the present invention, since it is not necessary to provide the direct storage access device DASD storing the IPL information, at every cluster, it is possible to reduce the number of DASD. Further, it is possible to reduce a transfer time for the IPL order since the IPL operation at each cluster is independently executed in every cluster. Still further, a cluster can be directly re-IPL operated from the global storage unit GSU after an occurrence of errors or an activity of maintenance. Figure 8 is a basic flowchart of a method embodying the present invention. In this flowchart, the IPL operation is executed from the DASD to the LSU in one cluster (step A), the IPL information is transferred from the LSU to the GSU (step B) and the IPL information is transferred from the GCU to the LSU's in the other clusters not having the DASD (step C). Figure 9A is a schematic block diagram of a global control unit GCU according to an embodiment of the present invention. The global control unit GCU includes means for transferring the GSIGP orders and means for controlling the access to the global storage unit GSU. In Fig. 9A, RCV represents a receiver, PRT a priority circuit, LRCL a logical-to-real cluster translation logic circuit, LRCT a logical-to-real cluster translation table, CCNT a cluster connecting table, CPON a cluster power-ON table, MPX a multiplexer, ECD an encoder, OR an order and DRV a driver. The order OR1 comprises a CLUSTER-INVALID (IV), a LOGICAL-CLUSTER-ID (LCI), a command (COM), and a parameter (PRM). Further, the order OR2 comprises a LOGICAL-DRIVE-CLUSTER-ID (LDCI) instead of the LOGICAL-CLUSTER-ID (LCI). RDCI is a REAL-DRIVE-CLUSTER-ID and RRCI is a REAL-RECEIVE-CLUSTER-ID. The cluster connecting table CCNT indicates the state of connection of the clusters; the command COM designates the order of the GSIGP; the cluster power-ON table CPON indicates a power-ON/OFF state of the clusters; the driver DRV transfers the order to the cluster; and the encoder ECD encodes the IV bit and the RRCI bit and determines the destination of the processor transferring the order. The bit IV indicates the invalidity of the cluster, and is normally "0" when generating the command request and turned ON when the designated cluster does not exist or the power is not turned ON; the bit LCI is a logical identifier and the target of the request is designated by the logical cluster number; and the bit LDCI is a logical processor number of the processor generating the request and sets the output of the circuit LRCL. The circuit LRCL is a logical block converting a logical cluster number to a physical cluster number. The circuit LRCL inputs the bit LCI and outputs the bit RRCI by referring to the table LRCT. In the conversion, the circuit LRCL checks whether or not the designated real cluster is connected and the power of the designated real cluster is turned ON. If the designated cluster is incorrect, the bit IV is turned ON. Further, the circuit LRCL converts the bit RDCI to the bit LDCI. The table LRCT refers to the relationship between the logical cluster number and the physical cluster number. The multiplexer MPX selects the target cluster. The parameter PRM is an additional information to the command COM. The priority circuit PRT determines the cluster competition state and gives the priority right to the request. The receiver RCV receives the request from the cluster CLU0 to CLU3. The bit RDCI is a real cluster number which generated the request and is set by the output of the priority circuit PRT. The bit RRCI is a real cluster number indicating the destination of the transferred order and is set by the output of the circuit LRCL. Fig. 9B shows means for controlling the access to the GSU and having receivers RCV, a priority circuit PRT, a data access control circuit DACC, a multiplexer MPX, and drivers DRV. The detailed structure and the operation will be readily understood by an ordinary skilled person, and therefore, the explanation is omitted. Figure 10 is a schematic block diagram of the memory control unit MCU according to an embodiment of the present invention. The MCU also includes means for transferring the GSIGP orders and means for controlling the storage access. In Fig. 10, GORV represents a GSIGP order receiver, SCGE a status and condition code generator, GARV a GSIGP acknowledge receiver, GRDV a GSIGP request driver, GRRV a GSIGP request receiver, COEX a command executer, ITPL a interruption pending latch, IOP a I/O processor, SGE a status generator, and GADV a GSIGP acknowledge driver. The GSIGP acknowledge receiver GARV is a circuit receiving the acknowledge ACK from the global control unit GCU; the status and condition code generator SCGE is a circuit generating the STATUS and CC based on the acknowledge ACK; the GSIGP request driver GRDV is a circuit generating the request of the GSIGP to the GCU; the priority circuit PRT is a circuit determining the priority of the request when sent from the processor CPU; the GSIGP order receiver GORV is a circuit receiving the GSIGP request from the processor CPU and generating the request to the global control unit GCU; and the command executer COEX executes the request sent from the GCU through the GSIGP request receiver GRRV. In the SENSE order, the command executer COEX requests the status generator SGE to generate the status information, and in the reset and IPL order, the command executer COEX requests the service processor SVP to generate the status information and to execute the IPL operation, and requests the status generator SGE to also generate the status information. In the case of an interruption, the command execute COEX checks the state of the interruption pending latch ITPL. If the interruption pending latch ITPL is turned OFF, the command executer COEX turns ON the interruption pending latch ITPL and informs the status generator SGE that the ITPL is turned OFF. If the interruption pending latch ITPL is turned ON, the command executer COEX informs the status generator SGE that the ITPL is turned ON. The interruption pending latch ITPL is turned ON by a request from the command executer COEX. Further, the interruption pending latch ITPL supervises the interruption mask to enable the interruption from the processor CPU, detects the processor CPU for which the interrupt mask is turned ON, and interrupts that processor. The I/O processor IOP carries out he input/output processing. When a fault occurs at the I/O processor IOP, a SUBSYSTEM-DAMAGE signal is sent to the status generator SGE. The service processor SVP carries out a reset of the cluster and the IPL processing, and further, the service processor SVP processes the operator function. The status generator SGE generates the status information in accordance with the request from the command executer COEX, and further, takes in the information sent from the service processor SVP and the I/O processor IOP. The GSIGP request receiver GRRV receives the GSIGP request from the global control unit GCU, and the GSIGP acknowledge driver GADV returns the generated status information to the cluster which generated the order. The lower part of Fig. 10 shows means for transferring the GSIGP orders and means for controlling the storage access, and having drivers DRV, receivers RCV, a multiplexer MPX, a priority circuit PRT and a data access control circuit DACC. In case of an access request from the CPU to the GSU, the request is transferred to the GCU through the DACC in the MCU. The transfer of the IPL information between the LSU and the GSU is carried out by using the above-mentioned data access control circuits which are similar to those of conventional data processing system.

Claims: An apparatus for executing an initial program load IPL between processors constituting a multiprocessor system, the processors being divided into a plurality of clusters, each cluster having one or more of said processors (CPU0, CPU1, ...) and a local storage unit (LSU) for storing data, and the system including a direct access storage device (DASD) for storing IPL information used in the cluster IPL; characterised in that the apparatus comprises:- a global storage unit (GSU); a global control unit (GCU) connected to each of said clusters through a corresponding bus line and to the global storage unit, for controlling reception and transmission of cluster reset and IPL orders for the clusters and for accessing said global storage unit; each cluster further comprising a service processor (SVP) and a memory control unit (MCU); the service processor being connected to the memory control unit and operable to perform the cluster reset and cluster IPL; the memory control unit being connected between the global control unit and each of said processors (CPU0, CPU1, ...) belonging to the cluster, for controlling transmission and reception of said cluster reset and IPL orders between any sending processor of the cluster and the global control unit, or between the global control unit and the receiving service processor of the cluster; the local storage unit being connected to the memory control unit; and at least one of the clusters further comprising said direct access storage device (DASD) connected to the memory control unit; wherein, in use, the IPL information is transferred from the direct access storage device (DASD) to the local storage unit (LSU) of the same cluster, transferred from said local storage unit to the global storage unit (GSU), and transferred from the global storage unit to the local storage unit of each cluster not having a direct access storage device. An apparatus as claimed in claim 1, wherein said global control unit (GCU) comprises a priority circuit (PRT) for determining the priority of orders sent from each of said clusters, a logical-to-real cluster translation logic circuit (LRCL) for converting a logical cluster number to a physical cluster number, a logical-to-real cluster translation table (LRCT) for finding the relationship between the logical cluster number and the physical cluster number, a cluster connection table (CCNT) for indicating a connection state of the cluster, and a cluster power-on table (CPON) for indicating a power ON/OFF state of the cluster. An apparatus as claimed in claim 1, wherein said memory control unit (MCU) comprises a priority circuit (PRT) for determining the priority of requests sent from the processors (CPU0, CPU1, ...), a command executor (COEX) for executing requests sent from the global control unit (GCU), a status generator (SGE) for generating status information in accordance with a request from the command executer, and an interruption pending latch circuit (ITPL) for turning ON an interruption pending latch. A method for executing an initial program load IPL control in a multiprocessor system, the multiprocessor system having a plurality of clusters, each of said clusters having one or more processors (CPU0, CPU1, ...) and a local storage unit (LSU), and said system having a direct access storage device (DASD) storing IPL information; characterised by the steps of:- providing the system with a global storage unit (GSU) and a global control unit (GCU) connected to each of said clusters through a corresponding bus line and to the global storage unit; providing each cluster with a service processor (SVP) for executing a cluster reset and IPL operation for the cluster, and in at least a first of said clusters said direct access storage device (DASD); the steps of executing IPL control comprising:- in said first cluster, sending the IPL information from the direct access storage device (DASD) to the local storage unit (LSU1) by command from a processor (CPU0) of the cluster; transferring the IPL information from said local storage unit (LSU1) to the global storage unit (GSU); generating an IPL order from said processor (CPU0) of said first cluster (CLUSTER1) to a second one of the clusters (CLUSTER2); resetting all devices in the second cluster (CLUSTER2) by a command from its service processor (SVP2), and transferring the IPL information from a predetermined area in the global storage unit (GSU) to the local storage unit (LSU2) of the other cluster (CLUSTER2) by a command from said service processor (SVP2); generating in succession IPL orders from said processor (CPU0) of said first cluster to each of the other clusters (CLUSTER3 to CLUSTER15); and executing the IPL operation in each other cluster when its service processor receives the IPL order.

Inventors: IKEDA, MASAYUKI, UEDA, KOICHI
Applicants: FUJITSU LIMITED
Application year: 1988
Main classification: G06F9
IPC codes: G06F9, G06F15