| CPC G06F 9/45558 (2013.01) [G06F 9/4812 (2013.01); G06F 2009/4557 (2013.01)] | 20 Claims |

|
1. A host computer for virtualizing a target multicore processor, the host computer comprising:
a host memory including a first section of memory storing a virtual time object, and a second section storing a virtual machine (VM), wherein the VM includes target code comprises a plurality of threads, wherein each thread includes a plurality of instructions configured to execute on the target multicore processor; and
a host central processing unit (CPU) configured to execute the VM to virtualize the target multicore processor, the VM configured to:
execute the plurality of threads in parallel on corresponding virtual cores, including a first thread having a first plurality of instructions executing on a first virtual core and a second thread having a second plurality of instructions executing on a second virtual core;
assign a designation to increment the virtual time object to the first virtual core;
increment, by the first virtual core, the virtual time object by a first count of the first plurality of instructions executed in the first thread over a first duration;
move the designation to increment the virtual time object to the second virtual core in response to detecting an event that defines an end of the first duration; and
increment, by the second virtual core, the virtual time object by a second count of the second plurality of instructions executed in the second thread over a second duration.
|