Varying firmware for virtualized device
First Claim
1. A method for executing a first firmware and a second firmware differing from the first firmware on a virtualized device, the method comprising:
- detecting a virtualization context switch for the virtualized device from a current function to a subsequent function, wherein the virtualization context switch comprises a switch from performing work for a first virtual machine to performing work for a second virtual machine, wherein the work for the first virtual machine is performed with the first firmware, wherein the work for the second virtual machine is performed with the second firmware, wherein the first virtual machine is associated with the current function, and wherein the second virtual machine is associated with the subsequent function;
in response to the virtualization context switch, stopping the first firmware on the virtualized device for the current function; and
in response to the virtualization context switch, causing the virtualized device to execute the second firmware for the subsequent function, wherein the current function is different than the subsequent function, the first virtual machine is different than the second virtual machine, and the work performed for the first virtual machine is different than the work performed for the second virtual machine.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique for varying firmware for different virtual functions in a virtualized device is provided. The virtualized device includes a hardware accelerator and a microcontroller that executes firmware. The virtualized device is virtualized in that the virtualized device performs work for different virtual functions (with different virtual functions associated with different virtual machines), each function getting a “time-slice” during which work is performed for that function. To vary the firmware, each time the virtualized device switches from performing work for a current virtual function to work for a subsequent virtual function, one or more microcontrollers of the virtualized device examines memory storing addresses for firmware for the subsequent virtual function and begins executing the firmware for that subsequent virtual function. The addresses for the firmware are provided by a corresponding virtual machine at configuration time.
32 Citations
20 Claims
-
1. A method for executing a first firmware and a second firmware differing from the first firmware on a virtualized device, the method comprising:
-
detecting a virtualization context switch for the virtualized device from a current function to a subsequent function, wherein the virtualization context switch comprises a switch from performing work for a first virtual machine to performing work for a second virtual machine, wherein the work for the first virtual machine is performed with the first firmware, wherein the work for the second virtual machine is performed with the second firmware, wherein the first virtual machine is associated with the current function, and wherein the second virtual machine is associated with the subsequent function; in response to the virtualization context switch, stopping the first firmware on the virtualized device for the current function; and in response to the virtualization context switch, causing the virtualized device to execute the second firmware for the subsequent function, wherein the current function is different than the subsequent function, the first virtual machine is different than the second virtual machine, and the work performed for the first virtual machine is different than the work performed for the second virtual machine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A virtualized device, comprising:
-
a microcontroller; and a virtualization scheduler configured to; detect a virtualization context switch for the virtualized device from a current function to a subsequent function, wherein the virtualization context switch comprises a switch from performing work for a first virtual machine to performing work for a second virtual machine, wherein the work for the first virtual machine is performed with a first firmware, wherein the work for the second virtual machine is performed with a second firmware differing from the first firmware, wherein the first virtual machine is associated with the current function, and wherein the second virtual machine is associated with the subsequent function; in response to the virtualization context switch, stop the first firmware on the microcontroller for the current function; and in response to the virtualization context switch, cause the microcontroller to execute the second firmware for the subsequent function, wherein the current function is different than the subsequent function, the first virtual machine is different than the second virtual machine, and the work performed for the first virtual machine is different than the work performed for the second virtual machine. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A device comprising:
-
a processor; and a virtualized device configured to perform request work at the work request of the processor, the virtualized device comprising; a microcontroller; and a virtualization scheduler configured to; detect a virtualization context switch for the virtualized device from a current function to a subsequent function, wherein the virtualization context switch comprises a switch from performing work for a first virtual machine to performing work for a second virtual machine, wherein the work for the first virtual machine is performed with a first firmware, wherein the work for the second virtual machine is performed with a second firmware differing from the first firmware, wherein the first virtual machine is associated with the current function, and wherein the second virtual machine is associated with the subsequent function; in response to the virtualization context switch, stop the first firmware on the microcontroller for the current function; and in response to the virtualization context switch, cause the microcontroller to execute the second firmware for the subsequent function, wherein the current function is different than the subsequent function, the first virtual machine is different than the second virtual machine, and the work performed for the first virtual machine is different than the work performed for the second virtual machine. - View Dependent Claims (20)
-
Specification