throbber
19;
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket