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.