Patent US5553291A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5553291A Expired / Lapsed US ⏱️ 0.0 years remaining

Virtual machine control method and virtual machine system

Assignee: Hitachi Ltd
•
Filing: 1993-09-14
•
Granted: 1996-09-03
•
Expires: 2013-09-14
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A virtual machine control method for a supercomputer enables a plurality of virtual machines to use a vector processor. Control of the use of the vector processor is through the scalar processor. When a virtual machine requires use of the vector processor, it is first determined whether one of the other virtual machines operating systems is using the vector processor. If not, the scalar processor is dispatched to the operating system requesting use of the vector processor. If another virtual machine operating system 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.

Inventors

  • 👤 Shunji Tanaka
  • 👤 Hidenori Umeno
  • 👤 Nobuyoshi Sugama
  • 👤 Masaru Sato

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 12:26
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/455; G06F9/45533; G06F9/46; G06F9/52; G06F9/526

Claims Analysis

Total Claims: 38
Claim 1
Independent Claim 198 words
A virtual machine control method for a computer on which a plurality of operating systems are available to be run on virtual machines under control of a virtual machine monitor running on the computer, said computer having scalar and vector processors wherein the vector processor starts executing vector processor instructions in accordance with an execution instruction which the scalar processor sends to the vector processor in response to an execute vector processor instruction issued by an operating system whereby a virtual machine to which the operating system is assigned uses the vector processor, said method executed by the virtual machine monitor comprising the steps of: selecting one of the operating systems for running on the computer; determining whether any of the virtual machines other than a virtual machine to which the selected operating system is assigned is using the vector processor; suspending the running of the selected operating system on the scalar processor when it is determined that one of the other virtual machines is using the vector processor; and dispatching the scalar processor for exclusive use by the selected operating system when it is determined that none of the other virtual machines is using the vector processor.
Claim 2
Dependent Claim 198 words
A virtual machine control method for a computer on which a plurality of operating systems are available to be run on virtual machines under control of a virtual machine monitor running on the computer, said computer having scalar and vector processors wherein the vector processor starts executing vector processor instructions in accordance with an execution instruction which the scalar processor sends to the vector processor in response to an execute vector processor instruction issued by an operating system whereby a virtual machine to which the operating system is assigned uses the vector processor, said method executed by the virtual machine monitor comprising the steps of: selecting one of the operating systems for running on the computer; determining whether any of the virtual machines other than a virtual machine to which the selected operating system is assigned is using the vector processor; suspending the running of the selected operating system on the scalar processor when it is determined that one of the other virtual machines is using the vector processor; and dispatching the scalar processor for exclusive use by the selected operating system when it is determined that none of the other virtual machines is using the vector processor.
Claim 3
Dependent Claim 38 words
A virtual machine control method according to claim 1, wherein in said determining step, the virtual machine monitor executes a test vector processor instruction to determine if any of the other virtual machines is using the vector processor.
Claim 4
Dependent Claim 31 words
A virtual machine control method according to claim 1, further comprising the step of executing said selecting step again when an externally supplied interruption is received by the virtual machine monitor.
Claim 5
Dependent Claim 43 words
A virtual machine control method according to claim 1, wherein in said selecting the virtual machine monitor checks whether any of the operating systems is in a ready state and selects an operating system in a ready state as the selected operating system.
Claim 6
Dependent Claim 64 words
A virtual machine control method according to claim 1, wherein each of the virtual machines has a use attribute indicating whether the virtual machine will ever use the vector processor, and said selecting step includes a step of checking the use attribute of the virtual machine to which the selected operating system is assigned to determine if use of the vector processor is required.
Claim 7
Dependent Claim 51 words
A virtual machine control method according to claim 5, wherein in said selecting step, if it is determined that the virtual machine to which the selected operating system is assigned does not require use of the vector processor, the virtual machine monitor dispatches the scalar processor to the selected operating system.
Claim 8
Dependent Claim 42 words
A virtual machine control method according to claim 1, including the step of communicating an end-of-execution instruction from said vector processor to said scalar processor upon termination of execution of the vector instructions by said vector processor after executing the suspending step.
Claim 9
Dependent Claim 44 words
A virtual machine control method according to claim 4, wherein following said dispatching said selected operating system is in an execute state until a predetermined time interval elapses whereupon the selected operating system is put in the ready state by the virtual machine monitor.
Claim 10
Dependent Claim 245 words
A virtual machine control method for a computer on which a plurality of operating systems are available to be run on virtual machines under control of a virtual machine monitor running on the computer, said computer having scalar and vector processors wherein the vector processor starts executing vector processor instructions in accordance with an execution instruction which the scalar processor sends to the vector processor in response to an execute vector processor instruction issued by an operating system whereby a virtual machine to which the operating system is assigned uses the vector processor, said method executed by the virtual machine monitor comprising the steps of: selecting one of the operating systems for running on the computer and dispatching the scalar processor to the selected operating system; in response to the selected operating system running on the scalar processor requesting the use of the vector processor, determining whether any of the virtual machines other than the virtual machine to which the selected operating system is assigned is using the vector processor; suspending the running of the selected operating system on the scalar processor when it is determined that one of the other virtual machines is using the vector processor; and continuing the running of the selected operating system on the scalar processor when it is determined that none of the other virtual machines is using the vector processor whereupon the virtual machine to which the selected operating system is assigned starts to use the vector processor.
Claim 11
Dependent Claim 245 words
A virtual machine control method for a computer on which a plurality of operating systems are available to be run on virtual machines under control of a virtual machine monitor running on the computer, said computer having scalar and vector processors wherein the vector processor starts executing vector processor instructions in accordance with an execution instruction which the scalar processor sends to the vector processor in response to an execute vector processor instruction issued by an operating system whereby a virtual machine to which the operating system is assigned uses the vector processor, said method executed by the virtual machine monitor comprising the steps of: selecting one of the operating systems for running on the computer and dispatching the scalar processor to the selected operating system; in response to the selected operating system running on the scalar processor requesting the use of the vector processor, determining whether any of the virtual machines other than the virtual machine to which the selected operating system is assigned is using the vector processor; suspending the running of the selected operating system on the scalar processor when it is determined that one of the other virtual machines is using the vector processor; and continuing the running of the selected operating system on the scalar processor when it is determined that none of the other virtual machines is using the vector processor whereupon the virtual machine to which the selected operating system is assigned starts to use the vector processor.
Claim 12
Dependent Claim 57 words
A virtual machine control method according to claim 9, further comprising assigning each of said virtual machines with virtual machine identification data (VMID); and storing a VMID of the virtual machine to which the selected operating system is assigned in a SP busy VMID register in response to dispatching the scalar processor to the selected operating system.
Claim 13
Dependent Claim 65 words
A virtual machine control method according to claim 10, further comprising loading virtual machine identification data (VMID) of the virtual machine to which the selected operating system is assigned in a VP busy VM identification register of the scalar processor for identifying the virtual machine using the vector processor in response to the starting of the use of the vector processor by the virtual machine.
Claim 14
Dependent Claim 51 words
A virtual machine control method according to claim 11, wherein in said determining step includes the step of checking a mismatch of the contents of the VP busy VM identification register and the SP busy VMID register to determine if any of the other virtual machines is using the vector processor.
Claim 15
Dependent Claim 31 words
A virtual machine control method according to claim 9, further comprising the steps of executing said selecting step again when an externally supplied interruption is received by the virtual machine monitor.
Claim 16
Dependent Claim 43 words
A virtual machine control method according to claim 9, wherein in said selecting the virtual machine monitor checks whether any of the operating systems is in a ready state and selects an operating system in a ready state as the selected operating system.
Claim 17
Dependent Claim 43 words
A virtual machine control method according to claim 9, including the step of communicating an end-of-execution instruction from said vector processor to said scalar processor upon termination of execution of the vector processor instructions by said vector processor after executing the suspending step.
Claim 18
Dependent Claim 44 words
A virtual machine control method according to claim 14, wherein following said dispatching said selected operating system is in an execute state until a predetermined time period elapses whereupon the selected operating system is put in the ready state by the virtual machine monitor.
Claim 19
Dependent Claim 286 words
A virtual machine control method for a computer on which a plurality of operating systems are available to be run on virtual machines under control of a virtual machine monitor running on the computer, said computer having scalar and vector processors wherein the vector processor starts executing vector processor instructions in accordance with an execution instruction which the scalar processor sends to the vector processor in response to an execute vector processor instruction issued by an operating system whereby a virtual machine to which the operating system is assigned uses the vector processor, comprising the steps of: selecting one of the operating systems by the virtual machine monitor for running on the computer and dispatching the scalar processor to the selected operating system; in response to the selected operating system running on the scalar processor requesting use of the vector processor, communicating with the scalar processor to the selected operating system whether any of the virtual machines other than the virtual machine to which the selected operating system is assigned is using the vector processor; suspending, by the selected operating system, the use of the vector processor by the virtual machine to which the selected operating system is assigned when it is communicated that one of the other virtual machines is using the vector processor whereupon the virtual machine to which the selected operating system is assigned uses only the scalar processor; and continuing the running of the scalar processor by the selected operating system that requests use of the vector processor when it is communicated that none of the other operating systems is using the vector processor whereupon the virtual machine to which the selected operating system is assigned starts to use the vector processor.
Claim 20
Dependent Claim 286 words
A virtual machine control method for a computer on which a plurality of operating systems are available to be run on virtual machines under control of a virtual machine monitor running on the computer, said computer having scalar and vector processors wherein the vector processor starts executing vector processor instructions in accordance with an execution instruction which the scalar processor sends to the vector processor in response to an execute vector processor instruction issued by an operating system whereby a virtual machine to which the operating system is assigned uses the vector processor, comprising the steps of: selecting one of the operating systems by the virtual machine monitor for running on the computer and dispatching the scalar processor to the selected operating system; in response to the selected operating system running on the scalar processor requesting use of the vector processor, communicating with the scalar processor to the selected operating system whether any of the virtual machines other than the virtual machine to which the selected operating system is assigned is using the vector processor; suspending, by the selected operating system, the use of the vector processor by the virtual machine to which the selected operating system is assigned when it is communicated that one of the other virtual machines is using the vector processor whereupon the virtual machine to which the selected operating system is assigned uses only the scalar processor; and continuing the running of the scalar processor by the selected operating system that requests use of the vector processor when it is communicated that none of the other operating systems is using the vector processor whereupon the virtual machine to which the selected operating system is assigned starts to use the vector processor.
Claim 21
Dependent Claim 57 words
A virtual machine control method according to claim 17, further comprising assigning each of said virtual machines with virtual machine identification data (VMID); and storing a VMID of the virtual machine to which the selected operating system is assigned in a SP busy VMID register in response to dispatching the scalar processor to the selected operating system.
Claim 22
Dependent Claim 62 words
A virtual machine control method according to claim 18, further comprising loading said VMID of the virtual machine to which the selected operating system is assigned in a VP busy VM identification register of the scalar processor for identifying the virtual machine using the vector processor in response to the starting of the use of the vector processor by the virtual machine.
Claim 23
Dependent Claim 51 words
A virtual machine control method according to claim 19, wherein in said determining step includes the step of checking a mismatch of the contents of the VP busy VM identification register and the SP busy VMID register to determine if any of the other virtual machines is using the vector processor.
Claim 24
Dependent Claim 44 words
A virtual machine control method according to claim 17, wherein in said selecting by the virtual machine monitor checks whether any of the operating systems is in a ready state and selects an operating system in a ready state as the selected operating system.
Claim 25
Dependent Claim 43 words
A virtual machine control method according to claim 17, further including the step of notifying an end-of-execution instruction from said vector processor to said scalar processor upon termination of execution of the vector instructions by said vector processor after executing the suspending step.
Claim 26
Dependent Claim 44 words
A virtual machine control method according to claim 21, wherein following said dispatching said selected operating system is in an execute state until a predetermined time interval elapses whereupon the selected operating system is put in the ready state by the virtual machine monitor.
Claim 27
Dependent Claim 50 words
A virtual machine control method according to claim 19, wherein an interruption execution circuit clears said VMID of the virtual machine to which the selected operating system is assigned that is stored in the VP BUSY VM identification register when the vector processor completes execution of the vector processor instructions.
Claim 28
Dependent Claim 60 words
A virtual machine control method according to claim 17, wherein said communicating includes setting a busy report bit for indicating that the selected operating system has been communicated a busy status of the vector processor in a busy report register of the scalar processor when it is determined that one of the other virtual machines is using the vector processor.
Claim 29
Dependent Claim 74 words
A virtual machine control method according to claim 25, further comprising the steps of: generating, by the Vector processor, an interruption to the scalar processor in response to termination of execution of the vector processor instructions; and executing, by the scalar processor, the interruption to all operating systems, which have been communicated the busy status to communicate that the vector processor is free and to reset the VP busy VM identification register to zero.
Claim 30
Dependent Claim 55 words
A virtual machine control method according to claim 17 further comprising the steps of: generating, by the vector processor, an interruption to the scalar processor in response to termination of execution of the vector processor instructions; and executing, by the scalar processor, the interruption to all operating systems, which have been communicated a busy status.
Claim 31
Dependent Claim 257 words
A memory access method for a computer on which a plurality of operating systems are available to be run on virtual machines under control of a virtual machine monitor running on the computer, said computer having scalar and vector processors wherein the vector processor starts executing vector processor instructions in accordance with an execution instruction which the scalar processor sends to the vector processor in response to an execute vector processor instruction issued by an operating system whereby a virtual machine to which the operating system is assigned uses the vector processor, comprising the steps of: registering, by said virtual machine monitor, main memory address mapping information in said vector processor for translating a logical address designated by vector instructions in virtual memory space to absolute main computer storage for each of the virtual machines on the basis of virtual machine identification data for identifying each of the virtual machines; communicating from the scalar processor to the vector processor the virtual machine identification data of a virtual machine for an operating system being run on the scalar processor; selecting the main memory mapping information on the basis of the virtual machine identification data communicated from the scalar processor when the vector processor requests access to the main memory of the computer; translating the main memory address of the operating system for which access from the vector processor has been requested to a corresponding main storage address using the selected memory address mapping information; and using the address resulting from the translation to access the computer main storage.
Claim 32
Dependent Claim 257 words
A memory access method for a computer on which a plurality of operating systems are available to be run on virtual machines under control of a virtual machine monitor running on the computer, said computer having scalar and vector processors wherein the vector processor starts executing vector processor instructions in accordance with an execution instruction which the scalar processor sends to the vector processor in response to an execute vector processor instruction issued by an operating system whereby a virtual machine to which the operating system is assigned uses the vector processor, comprising the steps of: registering, by said virtual machine monitor, main memory address mapping information in said vector processor for translating a logical address designated by vector instructions in virtual memory space to absolute main computer storage for each of the virtual machines on the basis of virtual machine identification data for identifying each of the virtual machines; communicating from the scalar processor to the vector processor the virtual machine identification data of a virtual machine for an operating system being run on the scalar processor; selecting the main memory mapping information on the basis of the virtual machine identification data communicated from the scalar processor when the vector processor requests access to the main memory of the computer; translating the main memory address of the operating system for which access from the vector processor has been requested to a corresponding main storage address using the selected memory address mapping information; and using the address resulting from the translation to access the computer main storage.
Claim 33
Dependent Claim 230 words
A virtual machine control system for a computer having scalar and vector processors, wherein the vector processor starts executing vector processor instructions in accordance with an execution instruction from the scalar processor, comprising: a virtual machine monitor running on the computer for controlling the running of a plurality of virtual machines on the computer so that a plurality of operating systems are available to be run on the computer, each of the virtual machines having one of said operating systems with and a virtual machine identification data for identifying each virtual machine; said scalar processor having means for sending virtual machine identification data of a virtual machine for an operating system running on the scalar processor to the vector processor; said vector processor having a vector instruction execution unit and an address translation unit, which includes address mapping information having start addresses and end addresses of main storage assigned to each of the virtual machines and means for selecting address mapping information on the basis of the virtual machine identification data received from said scalar processor, for translating a logical address designated by vector instructions in virtual memory to an absolute address in the main storage on the basis of the selected address mapping information; and said virtual machine monitor having means for selecting one of the operating systems and dispatching of the vector processor to the selected operating system.
Claim 34
Dependent Claim 230 words
A virtual machine control system for a computer having scalar and vector processors, wherein the vector processor starts executing vector processor instructions in accordance with an execution instruction from the scalar processor, comprising: a virtual machine monitor running on the computer for controlling the running of a plurality of virtual machines on the computer so that a plurality of operating systems are available to be run on the computer, each of the virtual machines having one of said operating systems with and a virtual machine identification data for identifying each virtual machine; said scalar processor having means for sending virtual machine identification data of a virtual machine for an operating system running on the scalar processor to the vector processor; said vector processor having a vector instruction execution unit and an address translation unit, which includes address mapping information having start addresses and end addresses of main storage assigned to each of the virtual machines and means for selecting address mapping information on the basis of the virtual machine identification data received from said scalar processor, for translating a logical address designated by vector instructions in virtual memory to an absolute address in the main storage on the basis of the selected address mapping information; and said virtual machine monitor having means for selecting one of the operating systems and dispatching of the vector processor to the selected operating system.
Claim 35
Dependent Claim 85 words
A virtual machine control system according to claim 29, wherein said scalar processor sends the virtual machine identification data when the scalar processor executes a vector processor execution instruction to activate the vector processor for the virtual machine to which the selected operating system is assigned, said address translation unit selecting a starting address and an end address in main storage that is assigned to a virtual machine identified by the virtual machine identification data received from the scalar processor for executing the vector instructions.
Claim 36
Dependent Claim 52 words
A virtual machine control system according to claim 30, said address translation unit having means for comparing an absolute address in virtual memory with the end address and executing an interruption signal to the vector processor when the absolute address in virtual memory is outside the main storage for the virtual machine.
Claim 37
Dependent Claim 137 words
A virtual machine control system according to claim 29, wherein the virtual machine monitor determines, when a virtual machine to which the selected operating system is assigned requires use of the vector processor, whether any of the virtual machines other than the virtual machine to which the selected operating system is assigned is using the vector processor, and said virtual machine monitor suspends the running of the selected operating system when the virtual machine to which the selected operating system is assigned requires use of the vector processor and it is determined that one of the other virtual machines is using the vector processor; and said virtual machine monitor dispatches the scalar processor for exclusive use by the selected operating system when it is determined that none of the other virtual machines is using the vector processor.
Claim 38
Dependent Claim 49 words
A virtual machine control method according to claim 29, wherein said scalar processor includes a busy report register connected with the scalar instruction execution unit in which a busy report bit is set when a virtual machine requests use of the vector processor and the vector processor is busy.

References Cited (Backward Citations)

US4459661A Cited
JPS57212680A Cited
US4769770A Cited
US5088031A Cited
US4812967A Cited
US4787026A Cited
US4964035A Cited
US4912628A Cited
US5129071A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-09-03 2000-03-04 2000-09-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-09-03 2004-03-04 2004-09-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-09-03 2008-03-04 2008-09-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag