IP Library › Granted Patent US 10,042,659
Granted Patent B1
US 10,042,659 · App. 14/067,721 · Granted Aug 7, 2018

Caching virtual contexts for sharing of physical instances of a hardware resource

Inventors: Ashish Gupta (San Jose, CA); Hanh Hoang (Hayward, CA); Siva Prasad Gadey (Fremont, CA); Kiran S. Puranik (Fremont, CA)
Assignee: XILINX, INC.
G06F9/45533
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,042,659
App. No.
14/067,721
Granted
Aug 7, 2018
Kind
B1
Abstract

A method for providing access by a virtual context to a physical instance includes receiving a request to access a physical instance of a plurality of physical instances of a hardware resource of a device. The request is associated with a virtual machine of a plurality of virtual machines. The method next determines that one of the physical instances is available, and assigns a virtual context associated with the virtual machine to access the one of the physical instances when the one of the physical instances is available. The assigning comprises retrieving the virtual context from a memory of the device and loading the virtual context into the one of the physical instances. The method then stores the virtual context in the memory after the one of the physical instances is accessed by the virtual context.

Claims (61)

1. A method of providing access to a hardware device in a computing system among a plurality of virtual machines managed by a hypervisor executing in the computing system, the method comprising:

receiving, at a processor of the hardware device, a request to access a physical instance of a plurality of physical instances of a hardware resource of the hardware device, wherein the hardware device includes a memory and the plurality of physical instances, and each physical instance of the plurality of physical instances includes a logic gate and a physical storage that is separate from the memory;

wherein the request is associated with a virtual machine of the plurality of virtual machines;

determining, at the processor of the hardware device, that one of the plurality of physical instances is available; and

assigning, by the processor of the hardware device, a virtual context associated with the virtual machine to access the one of the plurality of physical instances when the one of the plurality of physical instances is available;

wherein the assigning comprises retrieving, by the processor of the hardware device, the virtual context from the memory of the hardware device, loading the virtual context into the physical storage of the one of the plurality of physical instances to enable logic of the one of the plurality of physical instances to manipulate a data value of the virtual context, and moving, by the processor of the hardware device, the virtual context from the physical storage of the one of the plurality of physical instances into the memory when the logic of the one of the plurality of physical instances is not manipulating a data value of the virtual context.

2. The method of claim 1 , wherein the request is received at the processor of the hardware device from the virtual machine.

3. The method of claim 1 , further comprising:

notifying, by the processor of the hardware device, the virtual machine that the virtual context has been stored in the memory.

4. The method of claim 1 , wherein:

the virtual context is one of a plurality of virtual contexts; and

a number of the plurality of virtual contexts is greater than a number of the plurality of physical instances of the hardware resource.

5. The method of claim 1 , wherein each virtual context of the plurality of virtual contexts is assigned to one of the plurality of virtual machines.

6. The method of claim 5 , wherein each virtual machine of the plurality of virtual machines accesses the hardware device without passing communications via the hypervisor.

7. The method of claim 1 , wherein the assigning is based on at least one of:

a time at which the request is received;

a frequency of previous accesses for the virtual context;

a priority associated with the request;

a priority associated with the virtual context; or

an anticipated duration of the access.

8. The method of claim 1 , wherein the assigning is based on at least one of:

a number of pending requests to access physical instances of the plurality of physical instances;

a number of the plurality of physical instances that are currently occupied; or

a number of the plurality of physical instances that are scheduled to be occupied.

9. The method of claim 1 , further comprising:

switching off a power signal to at least one of the plurality of physical instances when a number of requests for access to physical instances of the plurality of physical instances is below a threshold.

10. A device, comprising:

a processor;

a memory;

a plurality of physical instances of a hardware resource, each of the plurality of physical instances including a logic gate and a physical storage that is separate from the memory;

a computer-readable medium storing instructions which, when executed by the processor, cause the processor to perform operations, the operations comprising:

receiving a request to access a physical instance of the plurality of physical instances of the hardware resource;

wherein the request is associated with a virtual machine of a plurality of virtual machines;

determining that one of the plurality of physical instances is available;

assigning a virtual context associated with the virtual machine to access the one of the plurality of physical instances when the one of the plurality of physical instances is available;

wherein the assigning comprises retrieving the virtual context from the memory, loading the virtual context into the physical storage of the one of the plurality of physical instances to enable logic of the one of the plurality of physical instances to manipulate a data value of the virtual context, and moving the virtual context from the physical storage of the one of the plurality of physical instances into the memory when the logic of the one of the plurality of physical instances is not manipulating a data value of the virtual context.

11. The device of claim 10 , wherein the request is received from the virtual machine.

12. The device of claim 10 , wherein the operations further comprise:

notifying the virtual machine that the virtual context has been stored in the memory.

13. The device of claim 10 , wherein:

the virtual context is one of a plurality of virtual contexts; and

a number of the plurality of virtual contexts is greater than a number of the plurality of physical instances of the hardware resource.

14. A device, comprising:

a plurality of physical instances of a hardware resource, wherein each physical instance of the plurality of physical instances includes a logic gate and a physical storage for temporarily storing one of a plurality of virtual contexts when logic of the physical instance is manipulating a data value of the one of the plurality of virtual contexts;

a scheduler, for scheduling access to the plurality of physical instances by the plurality of virtual contexts; and

a dense memory storing the plurality of virtual contexts when the logic of the physical instance is not manipulating the data value, wherein the dense memory is separate from the physical storage;

wherein each virtual context of the plurality of virtual contexts is assigned to a different virtual machine of a plurality of virtual machines.

15. The device of claim 14 , wherein:

the device comprises a direct memory access logic device; and

the hardware resource comprises a data mover.

16. The device of claim 14 , wherein:

the device comprises a network interface card; and

the hardware resource comprises a network processing unit.

17. The device of claim 14 , wherein:

the device comprises an application specific integrated circuit;

the plurality of physical instances of the hardware resource comprises random logic; and

the memory comprises static random access memory.

18. The device of claim 14 , wherein:

the device comprises a field programmable gate array;

the plurality of physical instances of the hardware resource comprises look-up tables; and

the memory comprises block random access memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2013
From: GUPTA, ASHISH; HOANG, HANH; GADEY, SIVA PRASAD; PURANIK, KIRAN S.
To: XILINX, INC.
Reel/Frame 031513/0811 →
Cited By (2)
US 12,248,802 US 12,438,853