Varying firmware for virtualized device

US10459751B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10459751-B2
Application numberUS-201715639971-A
CountryUS
Kind codeB2
Filing dateJun 30, 2017
Priority dateJun 30, 2017
Publication dateOct 29, 2019
Grant dateOct 29, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10459751B2 cover?
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), …
Who is the assignee on this patent?
Ati Technologies Ulc
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 29 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).