Multidimensional FPGA virtualization
A network device includes processing circuitry configured to: determine whether to initiate a temporal reconfiguration or a spatial reconfiguration of a partial reconfiguration slot on a programmable device, and initiate the temporal reconfiguration or the spatial reconfiguration of the partial reconfiguration slot in response to determining that the temporal reconfiguration or the spatial reconfiguration is to be initiated.
1. A network device comprising:
processing circuitry configured to
determine whether to initiate a temporal reconfiguration or a spatial reconfiguration of a partial reconfiguration slot on a programmable device, and
initiate the temporal reconfiguration or the spatial reconfiguration of the partial reconfiguration slot in response to determining that the temporal reconfiguration or the spatial reconfiguration is to be initiated.
2. The network device of claim 1 , wherein
the partial reconfiguration slot includes a plurality of spatio-temporal slots configured to perform logical functions, and
the temporal reconfiguration includes switching from a first of the plurality of spatio-temporal slots to a second of the plurality of spatio-temporal slots.
3. The network device of claim 1 , wherein the spatial reconfiguration includes a physical reprogramming of the partial reconfiguration slot or a spatio-temporal slot within the partial reconfiguration slot.
4. The network device of claim 3 , wherein the physical reprogramming includes loading a bitstream onto the partial reconfiguration slot or the spatio-temporal slot.
5. The network device of claim 1 , further comprising:
the programmable device, wherein the programmable device includes a plurality of partial reconfiguration slots including the partial reconfiguration slot, and wherein
the processing circuitry is configured to load balance traffic between the plurality of partial reconfiguration slots.
6. The network device of claim 1 , further comprising:
the programmable device, wherein the programmable device includes a plurality of spatio-temporal slots nested in the partial reconfiguration slot.
7. The network device of claim 1 , wherein the programmable device is a field-programmable gate array (FPGA).
8. A method comprising:
determining whether to perform a temporal reconfiguration or a spatial reconfiguration of a partial reconfiguration slot on a programmable device; and
performing the temporal reconfiguration or the spatial reconfiguration of the partial reconfiguration slot in response to determining that the temporal reconfiguration or the spatial reconfiguration is to be initiated.
9. The method of claim 8 , wherein
the partial reconfiguration slot includes a plurality of spatio-temporal slots configured to perform logical functions, and
the performing the temporal reconfiguration includes switching from a first of the plurality of spatio-temporal slots to a second of the plurality of spatio-temporal slots.
10. The method of claim 8 , wherein the performing the spatial reconfiguration includes physically reprogramming the partial reconfiguration slot or a spatio-temporal slot within the partial reconfiguration slot.
11. The method of claim 10 , wherein the physically reprogramming includes loading a bitstream onto the partial reconfiguration slot or the spatio-temporal slot.
12. The method of claim 8 , wherein
the programmable device includes a plurality of partial reconfiguration slots including the partial reconfiguration slot, and
the method further includes load balancing traffic between the plurality of partial reconfiguration slots.