`United States Patent
`Ohtsu
`
`000
`
`{11] Patent Number:
`
`[45] Date of Patent:
`
`5,574,913
`Nov. 12, 1996
`
`[54] CONTROL UNIT FOR A COMPUTER
`SYSTEM COMPRISING A PLURALITY OF
`CPU’S HAVING DIFFERENT INSTRUCTION
`PROPERTIES
`
`[75]
`
`Inventor: Toshiyuki Ohtsu, Tokyo, Japan
`
`[73] Assignee: NEC Corporation, Tokyo, Japan
`
`[21] Appl. No.: 253,068
`
`[22] Filed:
`
`Jun. 2, 1994
`
`[30]
`
`Foreign Application Priority Data
`
`Jun. 4, 1993
`
`[JP]
`
`Japan weeeeeessseeessenseseeesseeees 5-160121
`
`Hwanget al. “Computer Architecture and Parallel Process-
`ing”, McGraw-Hill, 1985, pp. 589 to 613 and 684 to 687.
`Alford, Roger C., “Adding the Right Math Co processor”,
`Computer Craft, May 1991, vol. 1, No. 2, pp. 14,18,20,21,
`22,24,25,.
`Reiss, Levi, Joseph Radin, “Unix System Administration
`Guide”, Osborne McGraw-Hill, pp. 426-430,446-456.
`Bahr, James, “Architecture, Design, and Performance of
`Application System/400” IBM Journal of Research and
`Development Nov. 1992 V36 p. 1001 (14).
`Primary Examiner—Kevin A. Kriess
`Assistant Examiner—St. John Courtenay, III
`Attorney, Agent, or Firm—Young & Thompson
`(57]
`ABSTRACT
`
`Tint, Chocecccccccccccccssssssnnasssssensvssoseseeseesas GO06F 9/00
`[51]
`
`[52] WLS. C1. ce eeceesccnee 395/561; 364/281.3; 364/281.4;
`364/281; 364/DIG. 1; 364/281.6; 364/281.8;
`364/281.9
`(58] Field Of Search oo...esecssesssesosesseesseesseeenes 395/650
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`« 395/650
`
`
`CPUsare groupedinto a plurality of groups of CPUs. CPUs
`of a particular group have a similar instruction configura-
`tion, but their instruction properties are different. The CPUs
`of one group may be capable of executing at high speed
`instructions related to scientific computation processing,
`whereas the CPUs within another group may be capable of
`executing at high speed instructions related to character
`processing. When execution of a program prepared by
`program preparation unit is requested, a CPU group desig-
`nation from the user is communicated to a CPU group
`3/1991 Ely et db. wc cssecasseeneenes 364/200
`5,003,464
`4/1992 Bahr et al.
`..
`5,109,512
`selection execution unit through a program execution indi-
`.» 395/650
`...
`5/1992 Bishop et al.
`5,115,505
`cation unit. In compliance with the CPU designation, the
`.. 395/800
`..
`4/1994 Yalamanchili
`$,301,104
`CPU group selection execution unit requests execution of
`w- 395/650
`4/1994 Seino etal. ......
`5,307,495
`the program to CPU assignment unit of the designated
`w 395/500
`7/1994 Lemaire et al.
`.
`5,333,297
`group, and the CPU assignment unit carries out the execu-
`
`5,381,534—W/1995 Shi wes seeseeee w 395/200
`tion by assigning the requested program to CPUswithin its
`5,408,658
`4/1995 Rechtschaffen et al. we 395/650
`own CPU group. For a program which does not designate a
`CPUgroup, the CPU group selection execution unit requests
`execution by assigning the program to the CPU assignment
`unit of an arbitrary CPU group.
`
`OTHER PUBLICATIONS
`
`NEC Corporation, “ACOS—4/XVP Supervisor Reference
`Manuel”, ACOS Software, DDA82E-2, 1992, pp. 3-33 to
`3-50 and 9-7 to 9-12.
`
`28 Claims, 9 Drawing Sheets
`
`1 COMPUTER SYSTEM
`
`2
`
`
`CPU GROUP
`
`OFFICE PROCESSING ORIENTED
`
`3
`
`CPU GROUP
`
`CPU ASSIGNMENT MEANS
`
`CPU ASSIGNMENT MEANS
`
`CPU GROUP SELECTION EXECUTION MEANS
`
`PROGRAM EXECUTION
`INDICATION MEANS
`
`SCIENTIFIC COMPUTATION ORIENTED X
`
`
`
`CPU FAULT PROCESSING MEANS
`CPU FAULT PROCESSING MEANS
`||
`er
`
`ora)
`CPU
`cpu}=[cpu}=[CPU
`
`
`
`
`
`
`
`
`
`
`EXECUTION RESULT
`TASK STATUS_-
`PROGRAM PREPARATION
`OUTPUT MEANS
`MONITORING MEANS
`
`Google Exhibit 1029
`Google Exhibit 1029
`Google v. Valtrus
`Google v. Valtrus
`
`
`
`U.S. Patent
`
`Nov. 12, 1996
`
`Sheet 1 of 9
`
`5,574,913
`
`¥i
`
`vl)
`
`[5](no)al”
`
`
`
`WALSASYaLNdNOD|
`
` SI
`dnNOudNdd¢dNOYydNddoeZQ3IN3IYO
`
`
`
`
`SNVINONISSIOONdLINVSNdoSNV3NONISSIOONdLINVsNdd
`
`
`
`ONISSIIONd391440\Q3LN3INONOLVINdNODSI4ILN3IOS
`
`
`SNV3NINSNNOISSYddSNV3NIN3ANOISSYNdd
`
`
`
`
`
`
`
`SNV3NNOILNDIXNOWIITISdNOYDNdo
`
`glil91
`
`
`
`NOILNDSX3SWYI0Nd
`
`
`
`SNVAN_NOILVOIGNI
`
`SNV3NLNdLNOSNVZNSNIROLINONSNVIN
`
`
`
`
`
`
`LINSSYNOWNDIXISNLVLSASVLNOUVYVd3edWYYDONd
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Nov. 12, 1996
`
`Sheet 2 of 9
`
`5,574,913
`
`TO BE EXECUTED.
`
`REQUESTS THE CPU ASSIGNMENT
`MEANS 5 OR 6 IN THE DESIGNATED
`CPU GROUP EXECUTION OF A
`PROGRAM RUN UNITS REQUESTED
`
`ASSIGNS THE PROGRAM
`RUN UNITS TO AN
`AVAILABLE CPU.
`
`
`
`SELECTS EFFECTIVE CPU IN ITS
`
`OWN CPU GROUP STARTING WITH
`
`ONE WITH SMALL LOAD.
`
`
`
`ASSIGNS THE PROGRAM RUN UNIT
`
`
`REQUESTED FOR EXECUTION TO THE
`SELECTED CPU AND REQUESTS
`EXECUTION.
`
`
`
`
`INFORMS THE CPU GROUP
`SELECTION EXECUTION MEAN 4 OF
`
`
`THE ASSIGNMENT OF PROGRAM RUN
`
`
`UNITS TO CPUS.
`
`
`
`FIG. 2
`
`
`
`U.S. Patent
`
`Nov. 12, 1996
`
`Sheet 3 of 9
`
`5,574,913
`
`CPU GROUP|CURRENTLY
`TASK|INDICATING|ASSIGNMENT CPU UTILIZATION
`NAME|WEORMATION|GROUP AND CPU
`
`
`
`PROGRAMNAME
`
`
`
`
`
`
`
`
`
`
`
`FIG. 3
`
` CPUGROUP3CPUGROUP2
`
`
`
`
`
`
`
`SLSINDAY
`
`U.S. Patent
`
`LYVLS
`
` LUVIS
`
`
`NNWWVYS0UdGANSISSVJHSNOISSV
`
`
`NddTWANYMONAYVULIGYYNVOLLINA
`
`“NOILNOAX3SLIANNILNOOOL
`
`SMIWLSdNOYSNddSHLNIdNOW9
`NddSHL40SALVISFHLSALVOdN
`
`YANNOLVIVOLNIWISVNVIN
`
`JONIYNIIOSLOILIG
`
`‘Linv4Nd40
`
`
`
`“SNLVLSONILVIOSI
`
`Nov. 12, 1996
`
`Sheet 4 of 9
`
`5,574,913
`
`
`
`WVY90Ud3HL40NOILNDSX3
`
`
`
`JiNV4AdGAWHOINISLINANAY
`
`W3H1SNINSISSVASNOLLVANYOINI
`
`AddSHLSAMddNs
`
`dNOYSNddY3AHLO-
`
`4O9SNVAWLNSWNDISSYNddFHLOL
`
`NOLWWHOANILINV4HLIMSSNVIW
`
`
`INSWNDISSY
`
`Nd9dAHLS3LV10SI
`
`VS‘Sls
`
`WVY90udNONOLLVAYOSNI
`
`ONIGNTONI
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Nov. 12, 1996
`
`Sheet 5 of 9
`
`5,574,913
`
`INTERNALLY ISOLATED.
`
`MANAGES THE STATE OF THE GPU
`INFORMED BY THE CPU FAULT
`PROCESSING MEANS7 TO
`
`
`
`55
`
`NO
`
`
`
`
`WAS THE
`
`UNDER ASSIGNMENT TO THE
`PROGRAM RUN UNIT
`
`
`CPU DESIGNaTeD ITS
`
`
`YES
`
`
`IS THERE
`
`AVAILABLE CPU IN
`iTS OWN CPU
`GROUP?
`
`
`NO
`
`YES
`
`57
`
`CONTINUES EXECUTION OF THE
`PROGRAM RUN UNIT BY
`ASSIGNING IT TO A REMAINING
`
`NORMNAL CPU.
`
`59
`
`REQUESTS EXECUTION BY
`INFOMING THE CPU GROUP
`SELECTION EXECUTION MEANS4
`ABOUT FAULT INFORMATION
`INFORMED BY THE CPU FAULT
`
`PROCESSING MEANS7.
`
`58
`
`
`
`INFORMS THE CPU GROUP
`SELECTION EXECUTION MEANS 4
`
`
`THE FAULT INFORMATION
`
`
`INFORMED BY THE CPU FAULT
`PROCESSING MEANS 7 AND THAT
`
`
`CPUSIN ITS OWN CPU GROUP IS
`UNAVAILABLE.
`
`
`FIG.
`
`5B
`
`
`
`62
`
`
`
`
`
`EXECUTION MEANS4.
`INCLUDES THAT THE CPU IS EXECUTES THE PROGRAM
`
`SUPPLIES THE TRANSFER
`INFORMATION GONCERNING THE
`PROGRAM RUN UNITS PROVIDED BY
`THE GPU ASSIGNMENT MEANS6 TO
`THE CPU ASSIGNMENT MEANS5 OF
`THE CPU GROUP 2, AND INDICATES
`THE EXECUTION OF THE PROGRAM
`RUN UNITS.
`
`Sheet 6 of 9
`5,574,913
`
`
`
`STOPS EXECUTION OF THE
`PROGRAM RUN UNITS INDICATED
`
`
`BY THE
`
`
`CPU GROUP SELECTION
`EXECUTION MEANS 4.
`
`
`HANDS OVER TRANSFER
`OF RESTORATION INFORMATION THAT THE||'NFORMATIONCONCERNINGTHE
`GPU IS RESTORED.
`CPU GROUP SELECTION
`
`U.S. Patent
`
`Nov. 12, 1996
`
`INFORMS THE GPU ASSIGNMENT MEANS 5
`
`UPDATES THE STATUS OF A CPU
`INFORMED BY THE CPU FAULT
`PROCESSING MEANS 7 TO AVAILABLE
`|
`STATUS.
`
`INFORMS THE GPU GROUP
`SELECTION EXECUTION MEANS4 OF
`RESTORATION INFORMATION
`
`
`RUN UNIT WHICH HAD
`BEEN EXECUTED IN OTHER
`
`CPU GROUP, IN THE
`
`
`RECOVERED CPU.
`
`IS
`
`
`THERE THE
`
`PROGRAM RUN UNIT BEING
`
`EXECUTED IN THE OTHER
`GPU GROUP?
`
`
`
` FIG. 6
`
`
`
`U.S. Patent
`
`Noy. 12, 1996
`
`THE CONSOLE SCREEN OR THE LIKE.
`
`REQUESTS THE CPU GROUP
`SELECTION EXECUTION MEANS 4 T0
`PROVIDE CURRENT INFORMATION
`ON PROGRAM RUN UNITS IN THE
`DESIGNATED PROGRAM.
`
`EXTRACTS NECESSARYPIECES OF
`INFORMATION FROM THE PROVIDED
`INFORMATION ON THE PROGRAM
`RUN UNITS, EDITS THE
`INFORMATION, AND DISPLAYSIT ON
`
`Sheet 7 of 9
`
`5,574,913
`
`REQUESTS THE CPU GROUP
`SELECTION EXECUTION MEANS 4 TO
`
`
`
`
`PROVIDE INFORMATION ON ALL
`
`
`
`EXTRACTS AND EDITS NECESSARY
`
`
`PIECES OF INFORMATION FROM THE
`PROVIDED INFORMATION ON ALL
`
`
`CPUS, AND DISPLAYS THE RESULT
`ON THE CONSOLESCREEN OR THE
`
`
`
`FETCHES INFORMATION ON THE
`
`
`DESIGNATED PROGRAM RUN UNITS
`
` THE INFORMATION TO THE TASK
`STATUS MONITORING MEANS 17.
`
`
`
`
`
`REQUESTS THE GPU GROUP
`
`SELECTION EXECUTION MEANS4 TO
`
`
`PROVIDE CURRENT INFORMATION
`
`
`ON ALL THE PROGRAM RUN UNITS.
`
`
`
`EXTRACTS AND EDITS NECESSARY
`
`PIECES OF INFORMATION FROM THE
`
`
`PROVIDED INFORMATION ON ALL
`
`
`THE PROGRAM RUN UNITS, AND
`
`
`DISPLAYS THE RESULT ON THE
`
`
`CONSOLE SCREEN OR THE LIKE.
`
`
`
`
`
`
`
`
`
`
`FETCHES INFORMATION ON ALL
`CPUS FROM THE CPU STATUS
`MANAGEMENTDATA, AND PROVIDES
`THE TASK STATUSMONITORING
`MEANS 17 WITH THE INFORMATION.
`
`FETCHES INFORMATION ON ALL THE
`PROGRAM RUN UNITS FROM THE
`TASK EXECUTION STATUS DATA AND
`PROVIDES THE TASK STATUS
`
`
`
`
`
`
`MONITORING MEANS 17 WITH THE
`
`
` INFORMATION.
`
`
`
`
`
`U.S. Patent
`
`Nov. 12, 1996
`
`Sheet 8 of 9
`
`5,574,913
`
` 177
`
`
`INFORMS THE CPU GROUP
`
`SELECTION EXECUTION MEANS 4
`
`
`OF A REQUEST FOR SETTING A
`
`
`CPU GROUP FOR A PROGRAM
`RUN UNIT WITH NO
`
`
`DESIGNATION OF A CPU GROUP.
`
`
`
`
`
`179
`
`
`
`INFORMS THE CPU GROUP
`
`SELECTION EXECUTION MEANS 4
`
`
`OF A MODIFICATION REQUEST TO
`DESIGNATE ANOTHER GPU
`GROUP FOR A PROGRAM RUN
`
`UNIT WITH NO DESIGNATION OF
`A CPU GROUP.
`
`
`
`
`
`
`
`4K
`
`
`
`
`
`- UPDATES THE TASK STATUS
`UPDATES THE TASK STATUS
`
`
`
`MANAGEMENTDATA OF THE
`MANAGEMENT DATA OF THE
`DESIGNATED PROGRAM RUN
`DESIGNATED PROGRAM RUN
`
`UNIT BY THE DESIGNATED CPU
`UNIT BY THE DESIGNATED CPU
`GROUP.
`GROUP.
`
`
`IS
`THE DESIGNATED
`
`
`
`
`CPU GROUP DIFFERENT
`
`
`
`
`
`
`IS
`THE DESIGNATED
`CPU GROUP DIFFERENT
`FROM THE CURRENTLY
`EXECUTING CPU
`GROUP
`
`EXECUTING GPU
`GROUP
`
`FROM THE CURRENTLY
`
`STOPS THE PROCESSING OF
`THE DESIGNATED PROGRAM
`RUN UNIT IN THE CURRENTLY
`EXECUTING CPU GROUP.
`
`
`
`
`
`
`
`
`CONTINUES EXECUTION OF
`THE PROGRAM RUN UNITIN
`THE DESIGNATED GPU GROUP.
`
`
`
`
`
`STOPS THE PROCESSING OF
`
`
`THE DESIGNATED PROGRAM
`RUN UNIT IN THE CURRENTLY
`EXECUTING CPU GROUP.
`
`
`
`CONTINUES EXECUTION OF
`
`THE PROGRAM RUN UNITIN
`
`
`
`THE DESIGNATED GPU GROUP.
`
`
`
`U.S. Patent
`
`Nov. 12, 1996
`
`Sheet 9 of 9
`
`|
`
`5,574,913
`
`
`
`4N
`
`
`
`
`INFORMS THE EXECUTION RESULT OUTPUT
`
`
`MEANS 18 OF THE INFORMATION INCLUDES
`
`
`THE NAMEOF THE TASK, THE TOTAL
`UTILIZATION TIME FOR VARIOUS ASSIGNED
`CPU GROUPS OR THE LIKE THAT ARE
`MANAGED BY THE TASK EXECUTION STATUS
`MANAGEMENT oN FOFEACH PROGRAM
`
`
`
`
`
`
`
`
`
`181
`
`
`
`EDITS THE NOTIFIED PROGRAM EXECUTION
`RESULT ACCORDING TO A PREDETERMINED
`FORMAT, AND OUTPUT THE RESULT.
`
`
`
`178
`
`
`
`
`INFORMS THE CPU GROUP SELECTION
`EXECUTION MEANS4 OF A REQUEST FOR
`
`RELEASING THE DESIGNATION OF THE CPU
`
`GROUP OF APROGRAM RUN UNIT FOR
`
`WHICH A CPU GROUP WAS DESIGNATED.
`
`
`
`
`
`
`
`
`DESIGNATION OF THE GPU GROUP. FIG. 8B
`
`UPDATES THE TASK EXECUTION STATUS
`MANAGEMENT DATA OF THE DESIGNATED
`PROGRAM RUN UNIT TO RELEASE THE
`
`
`
`5,574,913
`
`1
`CONTROL UNIT FOR A COMPUTER
`SYSTEM COMPRISING A PLURALITY OF
`CPU’S HAVING DIFFERENT INSTRUCTION
`PROPERTIES
`
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`
`The present invention relates to a computer system with
`a multiprocessor configuration and more particularly to a
`control unit for a computer system comprising a plurality of
`CPUs having different instruction properties.
`2. Description of Related Art
`In a conventional computer system with a multiprocessor
`configuration, all the CPUs have equivalent functions and
`properties and these CPUsare utilized without discrimina-
`tion by an operating system according to the dispatching
`function, as in the technique disclosed in “ACOS-4/KVP
`Supervisor Reference Manual”, DDA82E-2, NEC Corpora-
`tion, 1992, pp. 3-33 to 3-34.
`Moreover, in the technique disclosed in pp. 9~7 to 9-12
`of the above-mentioned “Supervisor Reference Manual”,all
`the CPUsare treated equivalently also in the fault recovery
`processing of the CPUs.
`Furthermore, there exists an asymmetric system mode, as
`disclosed in Hwanget al., “Computer Architecture Parallel
`Processing”, McGraw-Hill, 1985, pp. 684-692, in which an
`attached processing unit having a role different from that of
`the CPUsis utilized as an attached processor.
`In the aforementioned conventional computer system
`consisting of CPUs having an equivalent instruction prop-
`erty, it is not possible to execute at high speed, both of, for
`example, a program aimed mainly at scientific computations
`and a program aimed mainly at office processing, which
`leads to a drawback in that it
`is necessary to prepare
`dedicated computer systems for respective programs.
`In addition, in the computer system with the attached
`processor mode,it has a drawbackin that it can execute only
`specific functions and since a program to be executed by
`means of attached processors is described in an instruction
`configuration of CPUs suitable for the property concerned,
`it has a problem in that when an attached processor becomes
`unusable due to a fault, the program becomes inoperative
`even if other CPUs are operating normally.
`
`SUMMARYAND OBJECTS OF THE
`INVENTION
`
`It is accordingly an object of the invention to provide a
`computer system comprising a plurality of CPUs having
`differentinstruction properties, which is capable of execut-
`ing at high speed different programs of various properties,
`such as a program aimed mainly at scientific computations
`and a program aimed mainly at office processing, by using
`CPUssuitable for execution of the respective programs.
`It is another object of the invention to provide a computer
`system comprising a plurality of CPUs having different
`instruction properties, which is capable of operating with
`high efficiency even if different programs of various prop-
`erties, such as a program aimed mainly at scientific com-
`putations and a program aimed mainly at office processing,
`are described in the same instruction configuration.
`It is still another object of the invention to provide a
`computer system comprising a plurality of CPUs having
`different instruction properties, which makesit possible to
`execute programsof different properties, such as a program
`
`20
`
`25
`
`30
`
`40
`
`45
`
`50
`
`35
`
`60
`
`65
`
`2
`aimed mainly at scientific computations and a program
`aimed mainly at office processing, by any one of CPUs.
`A first embodiment of the control unit for a computer
`system composed of a plurality of CPUs having different
`instruction properties has the following configuration:
`CPU assignment means for classifying by instruction
`property a plurality of CPUs having the same instruction
`configuration but different instruction properties, for form-
`ing a collection of CPUs with a same property into a CPU
`group and for controlling execution of program run units
`tequested to be executedin a particular CPU group to CPUs
`within said CPU group;
`ACPUgroupselection execution meansfor requesting,at
`the time of program execution, the CPU assignment means
`to carry out execution of program run units whose execution
`was requested to be performed by a designated CPU group
`and for requesting the CPU assignment means to assign
`arbitrary CPU groups for execution of program run units
`with no designation of CPU groups; and
`A program execution indication means for additionally
`designating particular CPU groups to execute program run
`units, upon indicating program execution to the CPU group
`selection execution means.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`This invention will become more apparent when other
`features, actions and effects of this invention are described
`in conjunction with the accompanying drawings, wherein:
`FIG. 1 is a block diagram for an embodiment of the
`invention; |
`FIG. 2 shows flow charts for the processing of a CPU
`group selection execution means 4 and a CPU assignment
`means 5 in an embodimentof the invention;
`FIG. 3 is a diagram showing an example oftask execution
`status management data managed by the CPU groupselec-
`tion execution means 4 in an embodimentofthe invention;
`FIG. 4 is a diagram showing a list of CPU status man-
`agement data managed by the CPU group selection execu-
`tion means 4 of an embodimentof the invention;
`FIGS. 5A and 5B show flow charts for the processing of
`a CPU fault processing means 7, the CPU assignment means
`5, the CPU group selection execution means 4 and a CPU
`assignment means 6 in an embodiment of the invention.
`FIG. 6 shows flow charts depicting the steps taken when
`a faulty CPU is reinstated to normalcy by maintenance or the
`like according to an embodimentof the invention;
`FIG. 7 shows flow charts for the processing of a task
`status monitoring means 17 and the CPU group selection
`execution means 4 in an embodimentof the invention; and
`FIGS. 8A and 8B show flow charts for the processing of
`the task status monitoring means 17, the CPU groupselec-
`tion execution means 4 and an execution result output means
`18 in an embodimentof the invention.
`
`In the drawings,
`similar components.
`
`identical reference numerals indicate
`
`DETAILED DESCRIPTION OF PREFERRED
`EMBODIMENTS
`
`Next, referring to the drawings, an embodiment of the
`invention will be described in detail.
`
`Referring to FIG. 1, a computer system 1 according to a
`first embodiment of the invention is one type of tightly
`coupled multiprocessor system, and it comprises two CPU
`
`
`
`5,574,913
`
`3
`groups 2 and 3, CPU group selection execution means 4
`connected thereto, program execution indication means 15
`connected to the CPU group selection execution means 4,
`task status monitoring means 17 and execution result output
`means 18 and program preparation means 16 connected to
`the program execution indication means 15.
`The CPU group 2 is a scientific computation oriented
`CPU group and consists of three CPUs 9, 10 and 11, CPU
`fault processing means 7 connected to them, and CPU
`assignment means 5 connected to the CPUs 9 to 11, the CPU
`fault processing means 7 and the CPU groupselection
`execution means 4.
`
`The CPU group 3 is an office processing oriented CPU
`group andconsists of three CPUs 12, 13 and 14, CPU fault
`processing means 8 connected to them, and CPU assignment
`means 6 connected to the CPUs 12 to 14, CPU fault
`processing means 8 and CPU group selection execution
`means 4.
`
`Here, the CPUs 9 to 11 and the CPUs 12 to 14 have the
`same instruction configuration, but their instruction struc-
`tures are different. Namely, the CPUs 9 to 11 can executeat
`high speed arithmetic operation instructions or the like
`related to scientific computation processing by carrying
`them out, for example, by hardware dedicated to those
`purposes, whereas the CPUs 12 to 14 can execute at high
`speed character processing instructions orthe like related to
`office processing by carrying them out, for example, by
`hardware dedicated to those purposes.
`It should be noted that this embodimentis applicable not
`only to tightly coupled multiprocessor systems, but also to
`loosely coupled multiprocessor systems, and the number of
`CPUgroups and the number of CPUsincluded in each CPU
`group are needless to say not limited to those in the
`illustrative examples.
`More detailed functions of various parts in the embodi-
`ment shown in FIG. 1 will be described in the following
`discussion of the overall operation of the system.
`In FIG.1, the program preparation means 16 is a means
`for preparing programs to be executed in the computer
`system 1 and is composed of, for example, compilers,
`linkers or the like. A user prepares a program executable in
`the computer system 1 by utilizing the program preparation
`means 16 and requests the CPU groupselection execution
`means 4 to execute the program through the program
`execution indication means 15. Here, the program execution
`indication means 15 is functional means composed of a JCL
`or instructions which cause execution of a JCL itself.
`
`In this embodiment, for the program prepared by the
`program preparation means16,the user can designate a CPU
`group which executes the program, in the unit of program or
`in the unit of task (these will be referred to as program run
`units herein) if the program has a multi-task structure. When
`a CPU groupis designated for a program to be executed, the
`program execution indication means 15 designates the CPU
`group together with the CPU group selection execution
`means4 at the time of requesting the means4 to execute the
`program. In this embodiment, the designation of the appro-
`priate CPU group can be doneselectively according to the
`following two methods.
`(1) Separately designating a CPU groupto be usedfor the
`execution of the relevant program by the user throughthe
`use of the program execution indication means15 at the time
`of execution of the program by means of the program
`execution indication means 15. In this case, the program
`execution indication means 15 designates the CPU group to
`the CPU group selection execution means 4 by recognizing
`the separately indicated CPU group.
`
`20
`
`25
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`(2) Including CPU group designation information in the
`execution program. Namely, the program preparation means
`16 has a function of adding CPU group designation infor-
`mation to every program mun unit in a program prepared, and
`the user can designate a CPU group for each program run
`unit at the time of program preparation, by utilizing this
`function. In this case,
`the program execution indication
`means 15 designates to the CPU group sclection execution
`means 4 a CPU group, by recognizing CPU group designa-
`tion information described in an execution program.
`It is to be noted that the CPU group need not necessarily
`be designated and there exists cases where its designation
`can be omitted.
`
`Now,the CPU group selection execution means 4 which
`is requested to execute a program from the program execu-
`tion indication means 15,
`identifies whether there exists
`designation of the CPU group for every program run unit
`(step 41 in FIG. 2), and available CPUs are assigned for
`program run units with no designation of the CPU group
`(step 42). The assignment of available CPUs in the process-
`ing step 42 is done with all the CPU groups 2 and 3 as the
`assignment object of execution request, and arbitrary CPU
`groups are selected among them by considering the balance
`of loadsor the like, and the execution of program run units
`for which execution was requested is required to the CPU
`assignment means 5 and 6 of the selected CPU groups.
`On the other hand, as regards the program run units to
`which CPU groups are designated, the CPU groupselection
`execution means 4 judges whether the designated CPU
`groups arc currently available or not (step 43), and if they
`turn out to be available, requests the CPU assignment means
`5 and 6 in the designated CPU groups to execute the
`program run units for which execution request exists (step
`44). When the designated CPU groupis not available for
`such a reason asits being blocked, an available CPU group
`is assigned in the processing step 42 similar to the case when
`there is no designation of CPU group, by disregarding
`designation of the CPU group.
`The CPU assignment means 5 and 6 requested by the CPU
`group selection execution means 4 to execute program run
`units, select effective (unblocked) CPUs from among CPUs
`9 to 11 and CPUs 12 to 14 included in their own groups
`preferentially, for example, in the order of small load (step
`51), and assign program run units requested to be executed
`to the selected CPUs and cause them to carry out
`the
`execution (step 52). In this case, the CPU assignment means
`5 and 6 informs the CPU groupselection execution means
`4 of the manner in which execution was done by assigning
`which program run unit to which CPU (step 53).
`Bycontrolling the system as described in the above, when
`both CPU groups 2 and 3 are normal without being blocked,
`the program run units which are requested to be executed
`onc after another by the program execution indication means
`15 are executed in CPUs on designated CPU groups for
`those with CPU group designation and are executed on
`CPUs of some of the CPU groups for those with no CPU
`group designation.
`Accordingly, if a program run unit in a prepared program
`is suchthat it can be executed at higher speed when executed
`on a scientific computation oriented CPU, execution on one
`of the CPUs 9 to 11 in the scientific computation oriented
`CPU group 2 will become available by designating the
`scientific computation oriented CPU group 2. On the other
`hand,if a program rununit is such that it can be executed at
`higher speed when it is executed on an office processing
`oriented CPU, execution on one of the CPUs 12 to 14 in the
`
`
`
`5,574,913
`
`5
`office processing oriented CPU group 3 will becomeavail-
`able by designating the office processing oriented CPU
`group 3. In either case, faster program execution becomes
`feasible.
`
`Moreover, when a program run unit of a prepared program
`does not match the property of either group 2 or 3, or when
`execution at high speed is not necessarily required, it is
`possible to omit the designation of the CPU group to carry
`out a simple program execution, which makes a special
`designation unnecessary.
`FIG. 3 and FIG. 4 show examples of data managedbythe
`CPU group selection execution means 4, wherein FIG. 3
`showsa task execution status management data and FIG. 4
`shows a CPU status management data. The task execution
`status management data in FIG.3 includes for each program
`run unit (task) of each program, CPU group designation
`information, CPU groups and CPUscurrently under assign-
`ment, utilized CPU group and CPU utilization time on
`assignment,or the like. Further, the CPU status management
`data in FIG. 4 includes for each CPU in each CPU group, a
`state that shows whether the CPU is being blocked and
`information on tasks under execution such as the names of
`assigned tasks.
`Next, operation of this embodiment during a CPU fault
`will be described with reference to FIG. 5.
`
`If it is assumed that during execution of a certain program
`run unit
`in, for example, CPU 9 of, for example,
`the
`scientific computation oriented CPU group 2, operation is
`interrupted due to a fault such as a failure in CPU 9, then the
`CPU fault processing means 7 detects the generation of the
`fault (step 71).
`:
`When the CPU fault processing means 7 detects the
`generation of a fault in CPU 9, it blocks CPU 9 (step 72) and
`supplies the CPU assignment means 5 with fault information
`which includes information on the program run unit under
`execution in CPU 9 (step 73).
`The CPU assignment means 5 causesthe state of CPU 9
`to be internally blocked (step 54) and thereafter excludes
`CPU 9 from the assignment object of program run units and
`carries out the following processing in order to transfer to
`another CPU the program run unit which was under execu-
`tion in CPU 9.
`
`First, the CPU assignment means 5 confirms whether the
`program run unit under assignment to CPU 9 designated its
`own CPUgroup, namely, the scientific computation oriented
`CPU group 2 (step 55). If it was a program run unit
`designating its own CPU group 2,
`it further confirms
`whether there exists an available (normal) CPU withinits
`own CPU group (step 56). If there exists an available CPU
`within its own CPU group2, it assigns the program run unit
`concernedto the remaining normal CPU 16 or 11 to continue
`the execution of the program run unit (step 57).
`Tf in step 56, all CPUs 9 to 11 within its own CPU group
`are blocked and no available CPU can be found, execution
`within its own CPU groupis unfeasible so thatit informs the
`CPU group selection execution means 4 of the fault infor-
`mation notified by the CPU fault processing means7 and the
`fact that all the CPUs within its own CPU group have
`become unavailable (step 58).
`Upon receipt of such a notice, the CPU group selection
`execution means 4 updates the state of the CPU group 2 in
`the CPU status management data to that of blockage (step
`45) and thereafter excludes the CPU group 2 from the
`assignment object. The CPU group selection execution
`means 4 assigns a program run unit under execution in the
`CPU group 2 as shownin the fault information notified by
`
`25
`
`30
`
`35
`
`50
`
`55
`
`60
`
`65
`
`6
`the CPU assignment means 5 to the CPU assignment means
`6 of the CPU group 3,in order to let another CPU group take
`over the execution by disregarding the designation of the
`CPU group and requests the execution of the run unit (step
`46).
`The CPU assignment means 6 assigns the assigned pro-
`gram run unit to an arbitrary normal CPU among CPUs 12
`to 14, to continue its execution (step 61). In this way, it
`becomespossible to continue the execution of a program run
`unit which designated the scientific computation oriented
`CPU group without abnormally terminating the execution,
`thoughthe efficiency is reduced to someextent.
`When execution of a new program run unit which desig-
`nates the CPU group 2 is requested by the program execu-
`tion indication means 15 after the CPU group 2 was blocked
`and excluded from the assignment object, the CPU group
`selection execution means4 assigns an available CPU in the
`processing step 42 by disregarding the designation of the
`CPU group, in a way similar to the case of no designation
`of CPU group, as described above with reference to FIG.2.
`On the other hand, when a program mn unit under
`execution in CPU 9 was one whichdid not designate its own
`CPUgroup, the CPU assignment means 5 provides the CPU
`group selection execution means4 with the fault information
`supplied by the CPU fault processing means 7 in order to
`choose an executing CPU without being limited by the
`framework of the CPU groups and requests its execution
`(step 59).
`Whensucha notification exists, the CPU group selection
`execution means 4 selects an arbitrary CPU group according
`to the method described in connection with the processing
`step 42 in FIG.2, that is, by taking all the CPU groups 2 and
`3 as the assignment object of the execution request and
`requests the CPU assignment means 5 or 6 of the selected
`CPU group to execute the program run unit for which an
`execution request was placed. Note, however, that when the
`CPU group 2 was blocked due to blockageofall the CPUs
`of the CPU group 2 becauseofthe fault of the CPU 9, the
`CPU group 2 is excluded, needless to say, from the assign-
`ment object.
`Next, operation of this embodiment whena faulty CPU is
`reinstated to normalcy by maintenance orthe like will be
`described with reference to FIG. 6.
`
`is corrected by
`When a faulty CPU 9, for example,
`maintenanceor the like, the CPU fault processing means 7
`detects this recovery (step 74). Upon detection of recovery
`of CPU 9 the CPU fault processing means 7 incorporates
`CPU9 into the system to makeit available (step 74) and then
`provides the CPU assignmcnt means 5 with restoration
`information indicating the recovery of CPU 9 (step 76).
`The CPU assignment means 5 internally changes the
`status of CPU 9 from being under blockage to the available
`status (step 5A) and thereafter incorporates CPU 9 in the
`assignment object for programs or tasks. At the same time,
`it provides the CPU group selection execution means 4 with
`restoration information which includes a message of resto-
`ration of CPU 9 (step 5B).
`Uponreceiptof the restoration information from the CPU
`assignment means 5 which includes a message that CPU 9
`was recovered,
`the CPU selection execution means 4
`changesthe status of CPU 9 in the CPU status management
`data from being under blockage to the available status (step
`47). In addition, the CPU group selection execution means
`4 examines, when the CPU group 2 is recovered through
`recovery of CPU 9, whetherthere exists a program run unit
`which has been executed in another CPU group,
`for
`
`
`
`5,574,913
`
`20
`
`25
`
`30
`
`8
`7
`The program list display (2), in response to a program list
`example, in the CPU group 3, in spite of the program run
`unit being one which originally designated the CPU group 2,
`display request command,displays the name of the execut-
`by referring to the task execution status management data
`ing CPU group and the name of the executing CPU,or the
`inside the means 4 and shown in FIG.3 (step 48). If any
`like for every program run unit under execution in the
`existed, the means 4 instructs the CPU assignment means 6
`computer system 1.
`of the CPU group 3 to stop the execution ofall or a part of
`At the time of introduction of a program list display
`the program run units (step 49).
`request command,
`the task status monitoring means 17
`The CPU assignment means 6 stops the execution of
`requests the CPU group selection execution means 4 to
`program run units indicated by the CPU group selection
`provide current information on all the program run units
`execution means 4 (step 62) and hands over transfer infor-
`(step 173).
`The CPUselection execution means 4 fetches information
`mation concerning the program min units to the CPU group
`selection execution means 4 (step 63).
`on all the program run units from the task execution status
`The CPU group selection execution means4 supplies the
`data and provides the task status monitoring means 17 with
`transfer information concerning the program run units pro-
`the information (step 4C).
`vided by the CPU assignment means 6 to the CPU assign-
`The task status monitoring means 17 extracts and edits
`ment means 5 of the CPU group 2 and indicates the
`ne