Switching CPU execution path during firmware execution using a system management mode
US-10055234-B1 · Aug 21, 2018 · US
US10459751B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10459751-B2 |
| Application number | US-201715639971-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 30, 2017 |
| Priority date | Jun 30, 2017 |
| Publication date | Oct 29, 2019 |
| Grant date | Oct 29, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
What is claimed is: 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. 2. The method of claim 1 , further comprising performing the virtualization context switch by: stopping operations on the virtualized device for the current function; and starting operations on the virtualized device for the subsequent function. 3. The method of claim 1 , wherein: the virtualized device is incorporated within a virtualized computing device including a processor that executes a plurality of virtual machines; and virtualization context switches on the virtualized device are performed asynchronously with respect to virtualization context switches for the processor that executes the plurality of virtual machines. 4. The method of claim 1 , wherein: the first firmware and the second firmware include instructions for controlling a hardware accelerator of the virtualized device. 5. The method of claim 4 , wherein: the first firmware and the second firmware include instructions to process data for the virtualized device. 6. The method of claim 1 , further comprising: configuring the virtualized device by storing addresses corresponding to the first firmware and the second firmware at memory locations associated with the virtualized device. 7. The method of claim 6 , wherein causing the virtualized device to execute the second firmware comprises causing the virtualized device to read the memory locations to obtain the address corresponding to the second firmware and to execute instructions at that address. 8. The method of claim 1 , wherein the virtualized device performs work at the request of either or both of a virtual machine and an accelerated processing device. 9. The method of claim 1 , wherein the virtualized device includes a hardware-accelerated video encoder. 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. 11. The virtualized device of claim 10 , wherein the virtualization scheduler is configured to perform the virtualization context switch by: stopping operations on the virtualized device for the current function; and starting operations on the virtualized device for the subsequent function. 12. The virtualized device of claim 10 , wherein: the virtualized device is incorporated within a virtualized computing device including a processor that executes a plurality of virtual machines; and virtualization context switches on the virtualized device are performed asynchronously with respect to virtualization context switches for the processor that executes the plurality of virtual machines. 13. The virtualized device of claim 10 , further comprising: a hardware accelerator, wherein the first firmware and the second firmware include instructions for controlling the hardware accelerator. 14. The virtualized device of claim 13 , wherein: the first firmware and the second firmware include instructions to process data for the virtualized device. 15. The virtualized device of claim 10 , further comprising: memory storing addresses corresponding to the first firmware and the second firmware. 16. The virtualized device of claim 15 , wherein the virtualization scheduler is configured to cause the microcontroller to execute the second firmware by: causing the virtualized device to read the memory locations to obtain the address corresponding to the second firmware and to execute instructions at that address. 17. The virtualized device of claim 10 , wherein: the microcontroller is configured to perform work at the request of either or both of a virtual machine and an accelerated processing device. 18. The virtualized device of claim 10 , further comprising: a hardware-accelerator configured to perform video encoding operations at the direction of the microcontroller. 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 pe
Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title
Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title
Hypervisor-specific management and integration aspects · CPC title
Starting, stopping, suspending or resuming virtual machine instances · CPC title
Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.