Virtualizing the execution of homogeneous parallel systems on heterogeneous multiprocessor platforms
AssigneeInternational Business Machines Corporation
InventorRavi Nair
Life of this patent
Estimating the term…
Abstract
An embodiment of the invention is a virtual machine monitor that is executable by computer processor. The virtual machine monitor runs a virtual processor. When the virtual processor encounters a faulting instruction the virtual processor is unmapped from the physical processor, and generates a list of other physical processors that could execute the instruction. The virtual machine monitor determines if one of the other of the physical processors in the list is currently idle, and when one of the other of the physical processors in the list is determined to be currently idle, the virtual processor is mapped to a second physical processor, which is the one of the other of the physical processors in the list that was determined to be currently idle.
Claims10
A system of virtual processing, comprising:
- a computer processor;
- and
- a virtual machine monitor executable by the computer processor, the system configured to perform a method comprising:
- running a virtual processor (1), which when the virtual processor (1) encounters an instruction that is not implemented in a physical processor (A) results in an exception that is intercepted by the virtual machine monitor, the virtual processor (1) is mapped to the physical processor (A), the virtual processor (1) is one of a plurality of virtual processors, the physical processor (A) is one of a plurality of non-identical physical processors, each of the plurality of non-identical physical processors implementing a subset of an instruction set architecture, at least some of the non-identical physical processors implementing subsets which are different from one another;
- unmapping the virtual processor (1) from the physical processor (A) responsive to intercepting the exception;
- generating a list of other of the physical processors that could execute the instruction;
- determine if one of the other of the physical processors in the list is currently idle;
- and
- when one of the other of the physical processors in the list is determined to be currently idle, mapping the virtual processor (1) to a physical processor (B) which is the one of the other of the physical processors in the list that was determined to be currently idle.
A system of virtual processing, comprising:
- a computer processor;
- and
- a virtual machine monitor executable by the computer processor, the system configured to perform a method comprising:
- collecting information about a plurality of virtual processors which are mapped to a plurality of non-identical physical processors while the virtual processors are executing normally, each of the plurality of non-identical physical processors implementing a subset of an instruction set architecture, at least some of the non-identical physical processors implementing subsets which are different from one another, wherein the information comprises at least one of:
- a profile type of instruction being executed by the virtual processors, a cache activity of the virtual processors, and resource utilization of the virtual processors;
- interrupting operation of the plurality of virtual processors in response to an interrupt signal initiated by a timer;
- executing a matching algorithm, utilizing the information, to match each of the plurality of the virtual processors to the non-identical physical processors;
- unmapping each of the virtual processors that is running and that is not mapped to a non-identical physical processor assigned to the virtual processor by the matching algorithm, responsive to the executing;
- and
- mapping each of the virtual processors that is unmapped and that has been assigned one of the non-identical physical processors by the matching algorithm to the assigned one of the non-identical physical processors.
Dependencies are inferred from the claim text.