DYNAMIC RECONFIGURATION OF PROGRAMMABLE HARDWARE
First Claim
1. A method for dynamically assigning coprocessor regions in a Field Programmable Gate Array (FPGA), the method comprising:
- executing a placement algorithm to determine at least one efficient arrangement of a plurality of coprocessor regions within the FPGA;
executing a path finding algorithm to determine one or more path finding operations from a starting arrangement of coprocessor regions to the efficient arrangement of coprocessor regions, each path finding operation comprising;
establishing a reconfiguration region of the FPGA, wherein at least one coprocessor region is outside the reconfiguration region, and wherein at least one coprocessor region is inside the reconfiguration region;
disabling coprocessors having coprocessor regions in the reconfiguration region while allowing coprocessors having coprocessor regions outside the reconfiguration region to continue to operate;
assigning one or more new coprocessor regions in the reconfiguration region; and
loading coprocessors in each of the new coprocessor regions; and
performing the one or more path finding operations to transition the FPGA from the starting arrangement of coprocessor regions to the efficient arrangement of coprocessor regions.
3 Assignments
0 Petitions
Accused Products
Abstract
Technologies related to dynamic reconfiguration of programmable hardware are generally described. In some examples, coprocessor regions in programmable hardware such as a Field Programmable Gate Array (FPGA) may be dynamically assigned to transition the FPGA from a starting arrangement of coprocessor regions to an efficient arrangement. A placement algorithm may be executed to determine the efficient arrangement, and a path finding algorithm may be executed to determine path finding operations leading from the starting arrangement to the efficient arrangement. The path finding operations may be performed to implement the transition.
-
Citations
37 Claims
-
1. A method for dynamically assigning coprocessor regions in a Field Programmable Gate Array (FPGA), the method comprising:
-
executing a placement algorithm to determine at least one efficient arrangement of a plurality of coprocessor regions within the FPGA; executing a path finding algorithm to determine one or more path finding operations from a starting arrangement of coprocessor regions to the efficient arrangement of coprocessor regions, each path finding operation comprising; establishing a reconfiguration region of the FPGA, wherein at least one coprocessor region is outside the reconfiguration region, and wherein at least one coprocessor region is inside the reconfiguration region; disabling coprocessors having coprocessor regions in the reconfiguration region while allowing coprocessors having coprocessor regions outside the reconfiguration region to continue to operate; assigning one or more new coprocessor regions in the reconfiguration region; and loading coprocessors in each of the new coprocessor regions; and performing the one or more path finding operations to transition the FPGA from the starting arrangement of coprocessor regions to the efficient arrangement of coprocessor regions. - View Dependent Claims (2, 3, 4, 10, 11, 12)
-
-
5-9. -9. (canceled)
-
13. A non-transitory computer readable storage medium having computer executable instructions executable by a processor, the instructions that, when executed by the processor, implement a programmable hardware optimizer, which causes the processor to:
-
execute a placement algorithm to determine at least one efficient arrangement of a plurality of coprocessor regions within a Field Programmable Gate Array (FPGA); execute a path finding algorithm to determine one or more path finding operations from a starting arrangement of coprocessor regions to the efficient arrangement of coprocessor regions, each path finding operation comprising; establishing a reconfiguration region of the FPGA, wherein at least one coprocessor region is outside the reconfiguration region, and wherein at least one coprocessor region is inside the reconfiguration region; disabling coprocessors having coprocessor regions in the reconfiguration region while allowing coprocessors having coprocessor regions outside the reconfiguration region to continue to operate; assigning one or more new coprocessor regions in the reconfiguration region; and loading coprocessors in each of the new coprocessor regions; and perform the one or more path finding operations to transition the FPGA from the starting arrangement of coprocessor regions to the efficient arrangement of coprocessor regions.
-
-
14-24. -24. (canceled)
-
25. A computing device configured to provide a programmable hardware optimizer, comprising:
-
a processor; a memory; and a programmable hardware optimizer stored in the memory and executable by the processor, wherein the programmable hardware optimizer is configured to; execute a placement algorithm to determine at least one efficient arrangement of a plurality of coprocessor regions within a Field Programmable Gate Array (FPGA); execute a path finding algorithm to determine one or more path finding operations from a starting arrangement of coprocessor regions to the efficient arrangement of coprocessor regions, each path finding operation comprising; establishing a reconfiguration region of the FPGA, wherein at least one coprocessor region is outside the reconfiguration region, and wherein at least one coprocessor region is inside the reconfiguration region; disabling coprocessors having coprocessor regions in the reconfiguration region while allowing coprocessors having coprocessor regions outside the reconfiguration region to continue to operate; assigning one or more new coprocessor regions in the reconfiguration region; and loading coprocessors in each of the new coprocessor regions; and perform the one or more path finding operations to transition the FPGA from the starting arrangement of coprocessor regions to the efficient arrangement of coprocessor regions. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37-53. -53. (canceled)
Specification