throbber
08
`(11) Patent Number:
`5,553,291
`United States Patent
`Tanakaet al.
`[45] Date of Patent:
`Sep. 3, 1996
`
`
`[54] VIRTUAL MACHINE CONTROL METHOD
`AND VIRTUAL MACHINE SYSTEM
`
`[75]
`
`Inventors: Shunji Tanaka, Sagamihara; Hidenori
`Umeno, Hadano; Nobuyoshi Sugama,
`Chigasaki; Masaru Sato, Izumi-ku,all
`of Japan
`.
`.
`.
`[73] Assignee: Hitachi, Ltd., Tokyo, Japan
`
`4,964,035 10/1990 Aoyama et dl. oes 364/200
`..
`... 395/400
`5,088,031
`2/1992 Takasaki et al.
`
`7/1992 Yamagata et ab. owe 395/400
`5,129,071
`FOREIGN PATENT DOCUMENTS
`
`Japan .
`57-212680 12/1982
`Japan .
`64-54542
`3/1989
`Primary Examiner—Kevin A. Kriess
`Attorney, Agent, or Firm—Fay, Sharpe, Beall, Fagan, Min-
`nich & McKee
`ABSTRACT
`[57]
`[21] Appl. No.: 120,472
`A virtual machine control method for a supercomputer
`[22]
`Filed:
`Sep. 14, 1993
`enables a plurality of virtual machines to use a vector
`[30]
`Foreign Application Priority Data
`processor. Control of the use of the vector processor is
`through the scalar processor. When a virtual machine
`Sep. 16,1992
`[JP]
`Japan acsestsseeneneenses 4-246730
`
`(51D Tint, Co anneeeassscaseesscntnneesanseeensene GO6F 9/44—requires use of the vector processor, il is first determined
`[52] US. C1. acccccccsscsssscseeussssssseessen 395/700; 364/DIG. 1;|whether oneofthe other virtual machines operating systems
`364/280; 364/232.1; 364/232.21; 395/406;
`is using the vector processor. If not, the scalar processoris
`395/800
`dispatched to the operating system requesting use of the
`[58] Field of Search ....sncssensnnensneen 395/700, 800,|Vector processor. If another virtual machine operating sys-
`395/325
`tem is using the vector processor, then the operating system
`requesting use of the vector processor is placed in a wait
`state until the vector processor becomes free, whereupon the
`scalar processor is dispatched to the operating system that
`had been in the wait state. The condition of the vector
`Processor being free can be communicated directly to the
`scalar processor without the intervention of the virtual
`machine monitor.
`
`[56]
`
`References Cited
`
`U.S, PATENT DOCUMENTS
`7/1984 Kaneda ct al. caermmneenrneee 364/200
`4,459,661
`9/1988 Miyadera etal.
`.. 364/200
`4,769,770
`4,787,026 11/1988 Barneset al.
`.....
`... 364/200
`4,812,967
`3/1989 Hirosawaetal.
`.. 364/200
`4,912,628
`3/1990 Briggs ......csescsescseesesescesness 364/200
`
`
`
`33 Claims, 12 Drawing Sheets
`
`100
`
`INSTRUCTION!
`
`VECTOR
`ADDRESS
`EXECUTION
`
`
`
`INSTRUCTION
`TRANS-
`UNIT
`
`
`
`
`EXECUTION
`LATION
`
`
`
`UNIT
`UNIT
`INTER-
`
`
`
`
`RUPTION
`
`EXECUTION
`UNIT
`
`
`
`
`
`
`
`
`400
`
`VIRTUAL MACHINE
`MONITOR
`
`
`MAIN
`MEMORY
`
`
`440
`
`450
`
`VM-1
`
`VIRTUAL
`
`SPACE
`
`
`VM-2
`VIRTUAL
`SPACE
`
`\
`
`\
`
`\
`
`
`
`
`Google Exhibit 1035
`Google Exhibit 1035
`Google v. Valtrus
`Google v. Valtrus
`
`

`

`U.S. Patent
`
`Sep. 3, 1996
`
`Sheet 1 of 12
`
`5,553,291
`
`100
`
`220
`
`200,
`
`VECTOR PROCESSOR
`
`
`ADDRESS
`EXECUTION
`UNIT
`TRANS-
`
`LATION
`
`EXECUTION
`UNIT
`
`4o0<
`
`GAA
`
`MAIN
`MEMORY
`
`VIRTUAL MACHINE
`MONITOR
`
`410
`
`SPACE
`
`450
`
`\
`
`\N
`
`VM-2
`VIRTUAL
`
`UNIT
`
`
`
`440
`
`GLA
`
`VM-1
`VIRTUAL
`SPACE
`
`

`

`U.S. Patent
`
`Sep.3, 1996
`
`Sheet 2 of 12
`
`5,553,291
`
`FIG. 2
`
`FROM 210
`
`I
`
`221 ADDRESS CROSS
`MAPPING TABLE
`
`9990 ADDRESS
`
`—=
`
`229
`
`S TRANSLATION 225
`
`TO 210
`
`

`

`U.S. Patent
`
`Sep. 3, 1996
`
`Sheet 3 of 12
`
`5,553,291
`
`SET WAIT STATE
`
`DISPATCH
`
`
`
`
`
`
`STATE
`
`
`TIME SLICE
`
`
`
`
`
`VPUNUSED: VPBUSY
`
`VP WAIT
`STATE
`
`

`

`U.S. Patent
`
`Sep. 3, 1996
`
`Sheet 4 of 12.
`
`5,553,291
`
`FIG. 4(A)
`
`sooa
`
`IS THERE A VIRTUAL MACHINE INA
`READY STATE?
`
`SELECT READY STATE VIRTUAL
`MACHINE
`
`TO FIG 4(B)
`
`4020
`
`DOES SELECTED VIRTUAL MACHINE
`USE VECTOR PROCESSOR?
`
`
`STEP 4050
`
`
`
`
`
`
`IS ANOTHER VIRTUAL MACHINE
`USING VECTOR PROCESSOR?
`
`YES
`
`NO
`
`-
`
`4040
`
`GIVE SP TO SELECTED VIRTUAL
`MACHINE AND START IT
`
`CONTINUE RUNNING
`
`4042
`
`—-<TRoFtesu=
`
`4046
`
`YES
`
`4048
`
`RETURN SELECTED VIRTUAL MACHINE
`TO READY STATE
`
`END
`
`

`

`U.S. Patent
`
`Sep. 3, 1996
`
`Sheet 5 of 12
`
`5,553,291
`
`FIG. 4(B)
`
`FROMFIG 4(A)
`
`STEP 4030
`
`4050
`
`PUT SELECTED VIRTUAL MACHINE INTO
`VP WAIT STATE
`
`
`
`4060
`
`READY STATE DETERMINATION MADE
`FOR ALL VIRTUAL MACHINES?
`
`
`
`
`PUT SCALAR PROCESSOR INTO WAIT
`STATE
`
`
`
`INTERRUPTION GENERATED TO VMM
`
`
`IF VIRTUAL MACHINE IN SP WAIT STATE
`
`HAS BEEN RELEASED,PUT INTO READY
`STATE
`
`
`VECTOR PROCESSOR
`FREE?
`
`
`PUT VIRTUAL MACHINE IN VP WAIT
`STATE INTO READY STATE
`
`

`

`U.S. Patent
`
`Sep. 3, 1996
`
`Sheet 6 of 12
`
`5,553,291
`
`FIG. 5
`
`SIE
`INSTRUCTION
`
`STATE DESCRIPTION
`VIRTUAL MACHINE
`START-UP INFORMATION
`VIRTUAL MACHINE
`UNLOAD INFORMATION
`
`VIRTUAL MACHINE MONITOR
`
`412
`
`
`
`MOPrmyoxdaiwn2-PE
`
`REGISTER
`
`INSTRUCTION
`EXECUTION
`UNIT
`
`EXECUTION
`CIRCUIT
`
`L~
`
`VP BUSY VM
`
`IDENTIFICATION
`
`TO VECTOR
`PROCESSOR 200
`
`FROM VECTOR
`PROCESSOR 200
`
`

`

`US. Patent
`
`Sep. 3, 1996
`
`Sheet 7 of 12
`
`5,553,291
`
`FIG. 6
`
`SP WAIT
`STATE
`
`
`
`SET WAIT STATE
`
`
`
`
`
`
` DISPATCH
`
`RELEASE WAIT
`STATE
`
`STATE
`
`VP WAIT
`STATE
`
`
`
`VP BUSY
`
`

`

`U.S. Patent
`
`Sep. 3, 1996
`
`Sheet 8 of 12
`
`5,553,291
`
`rnou ster
`
`FIG. 7(A)
`7000
`
`
`
`IS THERE A VIRTUAL MACHINE IN A
`
`READY STATE?
`
`
`7010
`YES
`GIVE SP TO READY STATE VIRTUAL
`MACHINE AND START IT ON SP
`
`
`
` 7020
`NO
`OS REQUEST TO USE VECTOR
`
`PROCESSOR (EXVP INSTRUCTION)?
`
`
`
`
`YES
`
`
`OTHER VIRTUAL MACHINE USIN
`VECTOR PROCESSOR?
`
`NO
`7040
`
`7030
`
`YES
`
`SET VMID OF RUNNING VM IN VP BUSY
`VM IDENTIFICATION REGISTER
`
`
`
`CONTINUE VIRTUAL MACHINE
`OPERATION
`.
`
`7050
`
`
`7052
`
`NO
`
`YES
`
`7054
`
`RETURN TO READY STATE
`
`END
`
`PASS CONTROL TO VIRTUAL MACHINE|4129
`MONITOR
`
`7130
`
`PUT VIRTUAL MACHINE THAT WAS
`RUNNING INTO VP WAIT STATE
`
`TO STEP
`7000
`
`

`

`USS. Patent
`
`Sep. 3, 1996
`
`Sheet 9 of 12
`
`5,553,291
`
`FIG. 7(B)
`
`
`
`FROM FIG 7(A)
`STEP 7000
`
`IF THERE IS INTERRUPTION FROM
`VECTOR PROCESSOR, RESET VP BUSY
`VM IDENTIFICATION REGISTER
`
`
`
`
`IF VIRTUAL MACHINE IN SP WAIT STATE
`
`HAS BEEN RELEASED, PUT INTO READY
`STATE
`
`
`
`
`
`
`IS VECTOR PROCESSOR FREE?
`
`PUT VIRTUAL MACHINE IN VP WAIT
`STATE INTO READY STATE
`
`TO FIG 7(A)
`STEP7000
`
`

`

`U.S. Patent
`
`Sep. 3, 1996
`
`Sheet 10 of 12
`
`5,553,291
`
`FIG. 8
`
`SP WAIT
`STATE
`
`EXVP INSTRUCTION
`
`VPUNUSED| | Grave
`
`
`
`
` SET WAIT STATE
`
` DISPATCH
`
`END
`INTERRUPTION
`
`VP WAIT
`STATE
`
` VP FREE
`
`STATE
`
`TIME SLICE
`
`EXECUTE STATE
`
`

`

`U.S. Patent
`
`Sep. 3, 1996
`
`Sheet 11 of 12
`
`5,553,291
`
`
`
`FROM STEP
`9120
`
`FIG. 9(B)
`
`FIG. 9(A) 9000
`
` IS THERE A VIRTUAL MACHINE INA
`
`READY STATE?
`
`
`YES
`
`GIVE SP TO READY STATE VIRTUAL
`MACHINE AND STARTIT ON SP
`
`NO
`
`9020
`
`OS REQUEST TO USE VECTOR
`PROCESSOR (EXVP INSTRUCTION)?
`
`
`
`
`
`
`
`YES
`
`IS ANOTHER VIRTUAL MACHINE
`USING VECTOR PROCESSOR?
`
`NO
`
`SET VMID OF RUNNING VM IN VP BUSY
`VM IDENTIFICATION REGISTER
`
`START USING VECTOR PROCESSOR
`
`9050
`
`,
`CONTINUEVIRTUALMACHINE
`
`
`OFMMESU9062
`9130
`
`OPERATION
`
`NO
`
`RETURN TO READY STATE
`
`9060
`
`9064
`
`FROM FIG
`9(B) STEP
`
`9030
`
`
`
`YES
`
` 9040
`
`

`

`U.S. Patent
`
`Sep. 3, 1996
`
`Sheet 12 of 12
`
`5,553,291
`
`FIG. 9(B)
`
`
`
` FROMFIG 9(A)
`
`STEP 9000
`
`
`
`
`IF THERE IS INTERRUPTION FROM
`
`
`
`VECTOR PROCESSOR, RESET VP BUSY
`VM IDENTIFICATION REGISTER
`
`
`
`IF VIRTUAL MACHINE IN SP WAIT STATE
`
`HAS BEEN RELEASED, PUT INTO READY
`
`IS VECTOR PROCESSOR FREE?
`
`STATE
`
`
`
`
`INFORM VIRTUAL MACHINES THAT
`
`
`RECEIVED A BUSY STATUS REPORT
`THAT VECTOR PROCESSOR IS FREE
`
`FROM FIG
`
`9030
`9(A) STEP
`
`
`
`INFORM OS THAT VECTOR PROCESSOR
`IS BUSY
`
`
`
`TO FIG 9(A)
`STEP9060
`
`
`
`

`

`5,953,291
`
`1
`VIRTUAL MACHINE CONTROL METHOD
`AND VIRTUAL MACHINE SYSTEM
`
`FIELD OF THE INVENTION
`
`The present invention relates to a virtual machine control
`method, and moreparticularly to a virtual machine control
`method for enabling a plurality of virtual machines to use a
`second processor of a supercomputer.
`
`BACKGROUND OF THE INVENTION
`
`Asdescribed in published Japanese patent application no.
`JP-A-57-212680,a virtual machine system (VMS) generates
`multiple virtual machines (VM), which are logical comput-
`ers, On a real computer and enables one operating system
`(OS) to be run for each virtual machine. In this virtual
`machine system, functions such as virtual machine sched-
`uling and simulation processing of those instructions issued
`by a virtual machine operating system that cannotbe directly
`executed by a real computer (hereinafter referred to simply
`as a “computer”) are carried out by a virtual machine
`monitor (VMM). A virtual machine system is utilized
`mainly for running multiple operating systems used for
`different purposes on one computer. For example, both an
`old and a new operating system can be run on one computer
`by using a virtual machine system, which may occur during
`a transition from the old operating system to the new
`operating system. As another example, a virtual machine
`system can be used as a tool for implementing operating
`system tests in parallel] on one computer.
`Supercomputers constituted by scalar and second proces-
`sors are used for high-speed scientific and technical calcu-
`lations. The scalar processor activates the second processor
`and then performs other processing. When the second pro-
`cessor is activated it receives, and executes, a second job
`from the scalar processor. The second processor uses an
`interruption to communicate the termination of this second
`job to the scalar processor. Japanese published patent appli-
`cation no. JP-A-64-54542 discloses a virtual machine sys-
`tem in which one virtual machine (VM) has exclusive
`possession of a second processor(called a second unit, in the
`disclosure) and multiple virtual machines are able to share
`the scalar processor (called a scalar unit, in the disclosure),
`
`SUMMARYOF THE INVENTION
`
`There are the following problems in running a virtual
`machine system on a supercomputer and enablinga plurality
`of virtual machines to use the second processor.
`(1) The first problem that arises when multiple virtual
`machines share a second processor concernsthe scheduling
`of the virtual machines. In the prior art the second processor
`was used exclusively by one virtual machine so there was no
`particular problem with scheduling use of the second pro-
`cessor by the virtual machines. However,
`the following
`problem arises when multiple virtual machines attempt to
`share a second processor. Once a virtual machine has been
`created it is run for an extended period, and the virtual
`machine that wants to use the second processor next has to
`wait for an extended period of time until the termination of
`the virtual machine using the second processor.
`(2) The second problem relates to processing the inter-
`ruption used to communicate to the scalar processor that
`execution by the second processor has ended. One waythis
`can be done is by having a virtual machine monitor (VMM)
`intervene to simulate the interruption, but this imposes an
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`overhead that degrades the overall performance of the
`system.
`(3) The third problem relates to the address translation
`process in the second processor. In the virtual machine
`system disclosed in JP-A-64-54542, a virtual machine that
`uses the second processoris assigned an exclusive region of
`main storage extending from a designated address to the
`highest address, The numberof virtual machinesthat can use
`the second processoris therefore limited to one. Moreover,
`with a supercomputerthat has a plurality of second proces-
`sors, the method according to the above disclosure does not
`allow each of a plurality of operating systems to have
`exclusive use of a second processor.
`Anobject of the present inventionis to efficiently control
`a virtual machine system on a supercomputer having second
`and scalar processors.
`Another object of the present invention is to provide a
`virtual machine scheduling method that enables multiple
`virtual machines to share a second processor.
`A further object of the present invention is to provide an
`interruption execution method whereby an instruction
`execution termination interruption can be executed directly
`on the operating system of the virtual machinethat activated
`the second processor, without the intervention of a virtual
`machine monitor.
`
`A further object of the present invention is to provide an
`address translation method in a second processor which
`enables a virtual machine having an arbitrary continuous
`region in main storage to use a second processor.
`These and other objects of the invention are achieved in
`accordance with a method and system representcd by the
`following arrangement, for example.
`The virtual machine system of the present invention runs
`multiple operating systems under the supervisionofa virtual
`machine monitor on a computerhavinga first processor, and
`a second processor which starts instruction execution in
`accordance with an indication from thefirst processor and
`uses an interruption to communicate an end-of-execution to
`the first processor. The virtual machine control method of
`the present invention includes the steps of, when the virtual
`machine monitor starts the running of a first operating
`system, determining whether or not a second operating
`system is using the second processor. If so, the running of
`the first operating system is put on hold,andif not, the first
`operating system is providedwith the first processor and the
`second processor for starting the running thereof.
`The virtual machine system according to the present
`invention runs multiple operating systems under the super-
`vision of a virtual machine monitor on a computer having a
`first processor, and a second processor whichstarts instruc-
`tion execution in accordance with an indication from thefirst
`processor and uses an interruption to communicate an end-
`of-execution to the first. processor. The virtual machine
`system in one embodiment includes scheduling means for
`determining how to allocate the first and second processors
`to the multiple operating systems, means provided in the
`second processor for storing mapping information that
`defines the memory address correspondence between main
`memory of the multiple operating systems and main storage
`of the computer, means for transferring to the second pro-
`cessor an identification of an operating system running on
`the first processor in accordance with the scheduling by the
`scheduling means, selection means that, when there is a
`request from the second processor to access the main
`memory of an operating system, uses operating system
`identification information sent from the first processor to
`
`

`

`5,553,291
`
`3
`select the main memory mapping information of the oper-
`ating system concerned,and translation meansthat in accor-
`dance with the selected mapping information translates the
`address of the operating system main memory to which
`access is requested for a corresponding main storage
`address.
`
`Implementation of the present invention on a computer
`having a scalar processorasthe first processor and a second
`processor as the second processor is as follows.
`(1) In a virtual machine system running multiple operat-
`ing systems on a supercomputer having scalar and second
`processors, the virtual machine monitor schedulesthe virtual
`machinesas follows.First it is determined whether ornotthe
`second processor is being used by a second operating system
`that is other than the first operating system which is to be
`run. If the second processor is being used by a second
`operating system, the operation ofthe first operating system
`is put on hold. When the second operating system finishes
`using the second processor the virtual machine monitor
`reschedules the first operating system. Also, when the sec-
`ond processoris not being used by any operating system or
`is being used bythefirst operating system itself, the scalar
`processor and second processor are both given to the first
`operating system and the first operating system is started.
`Thus, at the point at which the first operating system is
`started the second processoris either free or is being used by
`the first operating system itself. Also, the second processor
`is only activated by an instruction issued by the scalar
`processor. As such, there is no activation of the second
`processor by another operating system while the first oper-
`ating system is running on the scalar processor.
`Also provided is another method in accordance with
`which the scalar processor is given to the first operating
`system regardless of whether the second processoris busy or
`not, and whenthere is a request to use the second processor
`FIGS. 9(A) and 9(B)taken together are a flow chart of the
`it is determined whetheror not the second processoris busy.
`third embodiment scheduling method.
`Thus, as described above, a virtual machine scheduling
`1. Supercomputer configuration
`method can be provided that enables multiple virtual
`FIG. 1 is a block diagram of a virtual machine system
`40
`machine operating systems to share the second processor.
`(VMS)ofthe present invention implemented with a super-
`(2) Inavirtual machine system running multiple operat-
`computer. In the drawing, 100 is a scalar processor (SP) that
`ing systems on a supercomputer having scalar and second
`performsscalar processing, 200 is a second processor (VP)
`processors, when the second processor finishes instruction
`that performs second processing, and 300 is a storage
`execution,an interruption for the operating system that used
`controller (SC) that references or refreshes main storage
`the second processor is put on hold. The interruption is
`(MS) 400 in accordance with instructions from the scalar
`exccuted latcr at a point at which the operating system
`processor 100 or second processor 200.
`_
`running on the scalar processor can be interrupted. By thus
`Thescalar processor 100 is provided with a scalar instruc-
`holding an interruption for each operating system, the sec-
`tion execution circuit 110 and an interruption execution
`ondprocessor end of execution interruption can be executed
`circuit 120. Also, the second processor 200 is provided with
`without the intervention of the virtual machine monitor. This
`a second instruction execution circuit 210 and an address
`translation circuit 220. When the scalar instruction execu-
`makesit possible to decrease the overhead that accompanies
`the intervention of the virtual machine monitor.
`tion circuit 110 in the scalar processor 100 executes an
`EXVP (Execute Second Processor) instruction, the second
`instruction execution circuit 210 starts executing second
`instructions in the main storage 400. Also, termination of the
`execution of the second instructions by the second instruc-
`tion execution circuit 210 is intercepted by the interruption
`execution circuit 120 in the scalar processor 100. For
`controlling the second processor 200, in addition to the
`EXVPinstruction the scalar processor 100 is also provided
`with a TVP (Test Sccond Processor) instruction to determine
`whether or not the second processor 200 is busy.
`Arranged on the main storage 400 is a virtual machine
`monitor (VMM) 410 that performs virtual machine (VM)
`scheduling and the like. The main memory 420 of virtual
`machine (VM-1) resides in a region of the main storage 400
`extending from address 0 upto, but not including, address o,
`
`(3) In a virtual machine system running multiple operat-
`ing systems on a supercomputer having scalar and second
`processors, the virtual machine monitor provides each of the
`virtual machines beforehand with a continuous region in the
`main storage of a real computer. First, memory address
`mapping information between the main memory of multiple
`operating systems and main storage on a real computer is
`registered in the second processor by the virtual machine
`monitor. When a virtual machine operating system in the
`scalar processor requests the second processor, the identifi-
`cation of that operating system is sent from the scalar
`processorto the second processor. When there is a request by
`the second processor to access operating system main
`memory, the memory address mapping information of the
`operating system concerned is selected from the said oper-
`
`4
`ating system identification. The second processor then uses
`the selected memory address mapping information to trans-
`late the main memory address of the operating system to
`which access has been requested, to an address in the main
`storage of the real computer. The address obtained by this
`translation is then used to access the real computer main
`storage area corresponding to the main memory areaof that
`operating system.
`In accordance with the above, virtual machines that have
`been allocated an arbitrary continuous region of the main
`storage of a real computer are able to utilize a second
`processor.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a schematic diagram of a system embodimentof
`the present invention implemented on a supercomputer.
`FIG. 2 is a schematic diagram of the addresstranslation
`circuit shown in FIG. 1.
`
`FIG.3 is an explanatory diagram ofstate transitions in a
`scheduling method of a first embodiment of the invention.
`FIGS. 4(A) and 4(B)taken togetherare a flow chart of the
`first embodiment scheduling method.
`FIG. 5 is a schematic diagram of the scalar processor
`shownin FIG. 1.
`
`FIG.6 is an explanatory diagram of state transitions in a
`scheduling method of a second embodimentof the inven-
`tion.
`
`FIGS. 7(A) and 7(B) taken togetherare a flow chart of the
`scheduling method according to the second embodiment.
`FIG.8 is an explanatory diagram of state transitions in a
`scheduling method according to a third embodimentof the
`invention.
`
`20
`
`25
`
`30
`
`35
`
`45
`
`30
`
`55
`
`60
`
`65
`
`

`

`5,553,291
`
`5
`while the main memory 430 of virtual machine (VM-2)
`resides in a region extending from address & up to, but not
`including, address B. To differentiate the virtual machine
`main memories 420 and 430, main storage 400 is referred to
`as real computer main storage. The address translation
`circuit 220 translates a logical address
`(guest
`logical
`address: GLA) designated by second instructions in virtual
`spaces 440 and 450 (indicated in the drawing as Multiple
`Virtual Space), created by the operating systems on the
`virtual machines,
`to an absolute address (guest absolute
`address: GAA)in virtual machine main memory, and, fur-
`thermore, translates this guest absolute address to an abso-
`lute address (host absolute address: HAA) in the main
`storage 400. The virtual machine monitor 410 performs
`virtual machine scheduling to enable multiple virtual
`machines to use the second processor 200. Also, the end of
`execution interruption of the second processor 200 can be
`directly executed on the operating system that activated the
`second processor 200, by the interruption execution circuit
`120, without the intervention of the virtual machine monitor
`410.
`When virtual machines are created, each is given an
`attribute indicating whether or-not it uses the second pro-
`cessor 200. That is, a virtual machine that has an attribute
`indicating that it uses the second processor 200 will have a
`virtual machine configuration with a second processor, and
`a supercomputer operating system will operate under that
`virtual machine. Also, a virtual machinethat has an attribute
`indicating non-use of the second processor 200 will have a
`virtual machine configuration that does not have a second
`processor, and a general-purpose computer operating system
`will operate under that virtual machine.
`One example of address translation processing in the
`second processor 200, three examples relating to virtual
`machine scheduling methods and one example of a method
`of processing an end-of-executioninterruption by the second
`processor 200 will now be described in detail with reference
`to the respective drawings.
`2. Address translation in the second processor
`FIG. 2 showsdetails of the configuration of the address
`translation unit 220 shown in FIG. 1. In FIG. 2, an address
`cross-mapping table 221 provided in accordance with the
`present invention holds the starting address and end address
`of the virtual machine main memory in the main storage
`400. For example,
`the first entry in the address cross-
`mapping table 221 showsthat the region from address 0 to
`address a (not including address «) in the main storage 400
`is the main memory 420 of VM-1, and the second entry
`shows that the region from address a to address B (not
`including address B) in the main storage 400 is the main
`memory 430 of VM-2. The address cross-mapping table 221
`may be established with the scalar instructions used when
`the virtual machine monitor 410 creates a virtual machine.
`A logical address (guest logical address) 226 in the virtual
`space of a virtual machine, designated by second instruc-
`tions, is translated to an absolute address (guest absolute
`address) 229 in virtual machine main memory by a VP
`address translation circuit of unit 222. The addresstransla-
`tion unit 220 is also provided with an adder (ADD) 223 and
`comparator (COMP) 224.
`The secondinstruction execution circuit 210 inputs to the
`address translation unit 220 a VMID signal 225 that indi-
`cates the identification of the virtual machine that issued the
`instruction to execute the secondinstructions. This VMIDis
`the VMIDof the virtual machine that was running on the
`scalar processor 100 when the EXVPinstructionto activate
`the second processor 200 was executedby the scalar instruc-
`
`10
`
`15
`
`20
`
`25
`
`30
`
`40
`
`45
`
`50
`
`35
`
`60
`
`65
`
`6
`tion execution unit 110. Based on this VMID, the address
`translation unit 220 selects a starting address 231 and end
`address 232.in the main storage 400 main memory of the
`virtual machine that issued the instruction to execute the
`second instructions from the address cross-mapping table
`221. In the VP address translation circuit 222 the guest
`logical address 226 input from the second instruction execu-
`tion circuit 210 is converted to a guest absolute address 229.
`This guest absolute address 229 is then output as host
`absolute address 227 to which the starting address 231 has
`been added by the adder (ADD) 223. The secondinstruction
`execution circuit 210 uses this output to execute the second
`instruction.
`However, when the result of the determination by the
`comparator 224 is that the guest absolute address 229 is
`larger than the end address 232 (indicating that guest abso-
`lute address 229 is outside the main memory area of the
`virtual machine), an interruption signal 228 is output to the
`secondinstruction execution circuit 210. This forms a check
`mechanism to ensure that the main memory contents of the
`other virtual machine are not destroyed. When the second
`instruction execution circuit 210 receives the interruption
`signal 228, the second instruction execution circuit 210 halts
`execution of the second instructions and sends an interrup-
`tion signal to the interruption execution circuit 120 in the
`scalar processor 100.
`in accordance with the above procedure, address transla-
`tion in the second processor 200 enables virtual machines
`having an arbitrary continuous region of the main storage
`400 to use the second processor 200.
`3. Embodiments of virtual machine scheduling method
`3.1 First embodiment scheduling method
`Virtual machine scheduling state transitions will now be
`described, first with reference to FIG. 3, In accordance with
`the first scheduling method, under the virtual machine
`monitor 410 there are four virtual machine scheduling states,
`which are a scalar processor wait state (SP wait state), a
`ready state, an execute state, and a second processor wait
`state (VP wait state). Only a virtual machine in an execute
`state can start executing second processor 200 instructions in
`accordance with an EXVP instruction ofthe scalar processor
`100.
`When an SP wait state is released by the virtual machine
`monitor 410 as a result of an interruption or suchlike
`simulation performed with respect to a virtual machine, the
`virtual machine assumes a ready state. In accordance with
`sequence dispatching by the virtual machine monitor 410, a
`ready state virtual machine assumes an execute state. Dis-
`patching means giving the scalar processor to the operating
`system of the designated virtual machine. In the execute
`state, when the operating system running on the virtual
`machine issues a wait state set
`instruction the virtual
`machine assumes an SP wait state. On the other hand, when
`in the execute state a time slice (a predetermined small time
`period) elapses the virtual machine reverts to a ready state.
`This is to implement sequential operation of multiple virtual
`machines on a time sharing basis. Moreover, when the
`virtual machine monitor 410 detects that the second proces-
`sor 200 is busy, a virtual machine VM that has a second
`processor 200 use attribute and is not presently using the
`second processor 200 is changed to a VP ready state to avoid
`conflict over use of second processor 200. When the second
`processor 200 assumes a free state these wait state virtual
`machines VM revert to a ready state. However, virtual
`machines that are in a ready state and have a second
`processor 200 non-use attribute do not shift to a VP wait
`state. This is to ensure that even when dispatching is used to
`
`

`

`5,553,291
`
`7
`put this virtual machine into an execute state, a virtual
`machine that is using the second processor 200 will not be
`affected and, also, a virtual machine that is not able to use
`the second processor 200 will not be affected by a virtual
`machine that is using the second processor 200.
`A first virtual machine scheduling method by the virtual
`machine monitor 410 will now be described with reference
`to the flow chart of FIG. 4.
`The virtual machine monitor 410 first determines whether
`or notthere is a virtual machine in a ready state (Step 4000),
`and if there is not puts the scalar processor 100 into a wait
`state (Step 4070). If there is a virtual machine in a ready
`state, ready state virtual machine selection is carried out in
`accordance with a dispatching cue (Step 4010), and it is
`determined whether or not the selected virtual machine has
`a second processor 200 use attribute (Step 4020). In the
`absence of a use attribute the selected virtual machine is
`started on the scalar processor 100 (Step 4040). If during the
`running of the virtual machine (Step 4042)a time slice ends
`(Step 4046),the virtual machine concernedis returnedto the
`ready state (Step 4048).
`In Step 4020, when the selected virtual machine has a
`second processor 200 use attribute the virtual machine
`monitor 410 executes the TVP (Test Second Processor)
`instruction and determines whether or not second processor
`200 is being used by another virtual machine (Step 4030),
`andif it is not, the selected virtual machineis started on the
`scalar processor 100 (Step 4040).
`With this scheduling method dispatching is implemented
`to give the scalar processor 100 and second processor 200 to
`the same virtual machine. Therefore if the TVP instruction
`is executed and second processor 200 is busy, it is estab-
`lished that of the virtual machines that have been given a
`second processor 200 useattribute, the virtual machine most
`recently dispatched by the virtual machine monitor 410 is
`using the second processor 200.
`Virtual machine operation on the scalar processor 100 is
`effected in accordance with the SIE (Start Interpretive
`Exccution) instruction described below. The operating sys-
`tem on this virtual machine is able to use the second
`processor 200 and scalar instruction execution circuit 110
`and can directly cxecute an EXVPinstruction issued by the
`operating system without applying an interruption (simu-
`lated by the virtual machine monitor 410) to the virtual
`machine monitor 410.
`When in Step 4030 it is determined that the second
`processor 200 is being used by another virtual machine,the
`virtual machine monitor 410 holds the operation of the
`selected virtual machine on the scalar processor 100 as a VP
`wait state (Step 4050). It is checked whether the above
`determination has been made with respect to all virtual
`machines (Step 4060), and if some remain, process execu-
`tion returns to Step 4010 and the virtual machine to be run
`is again selected. When the determination of the ready state
`has been completed for all virtual machines, the virtual
`machine monitor 410 puts scalar processor 100 into an SP
`wait state (Step 4070). Followingthis, if a designated virtual
`machineis released from the SP wait state by the generation
`of an interruption (Step 4080) from an input/output device or
`the like to the virtual machine monitor 410,
`the virtual
`machine goes from an SP wait state to a ready state (Step
`4090). Then, the virtual machine monitor 410 uses the TVP
`instruction to determine whether, owing to the aboveinter-
`ruption, second processor 200 has assumeda free state (Step
`4100). If it has not, the execution again goes to Step 4010
`and the virtual machine to be run is selected. If it has
`assumed a free state, the virtual machine monitor 410 puts
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`30
`
`55
`
`60
`
`65
`
`8
`virtual machines in a VP wait state into a ready state, moves
`execution to Step 4010 and selects the virtual machine to be
`run.
`
`Th

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