Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms
First Claim
1. A method of forming a unified executable comprising:
- partitioning a control-data flow graph into an instruction processor portion and a reconfigurable hardware portion;
converting the reconfigurable hardware portion of the control-data flow graph into a hardware definition language portion and the instruction processor portion into an instruction processor object file;
converting the hardware definition language portion into a reconfigurable hardware bitstream;
converting the reconfigurable hardware bitstream into a bitstream object file that is readable by an instruction processor; and
integrating the bitstream object file with the instruction processor object file to form the unified executable.
8 Assignments
0 Petitions
Accused Products
Abstract
A system and method for compiling computer code written to conform to a high-level language standard to generate a unified executable containing the hardware logic for a reconfigurable processor, the instructions for a traditional processor (instruction processor), and the associated support code for managing execution on a hybrid hardware platform. Explicit knowledge of writing hardware-level design code is not required since the problem can be represented in a high-level language syntax. A top-level driver invokes a standard-conforming compiler that provides syntactic and semantic analysis. The driver invokes a compilation phase that translates the CFG representation being generated into a hybrid controlflow-dataflow graph representation representing optimized pipelined logic which may be processed into a hardware description representation. The driver invokes a hardware description language (HDL) compiler to produce a netlist file that can be used to start the place-and-route compilation needed to produce a bitstream for the reconfigurable computer. The programming environment then provides support for taking the output from the compilation driver and combining all the necessary components together to produce a unified executable capable of running on both the instruction processor and reconfigurable processor.
-
Citations
9 Claims
-
1. A method of forming a unified executable comprising:
-
partitioning a control-data flow graph into an instruction processor portion and a reconfigurable hardware portion;
converting the reconfigurable hardware portion of the control-data flow graph into a hardware definition language portion and the instruction processor portion into an instruction processor object file;
converting the hardware definition language portion into a reconfigurable hardware bitstream;
converting the reconfigurable hardware bitstream into a bitstream object file that is readable by an instruction processor; and
integrating the bitstream object file with the instruction processor object file to form the unified executable. - View Dependent Claims (2, 3)
-
-
4. A system for forming a unified executable that is executable on a hybrid reconfigurable hardware-instruction processor computer, said system comprising:
-
a partitioner to partition control-dataflow graph representations into a reconfigurable hardware portion and an instruction processor portion;
a control-dataflow graph to hardware definition language converter to convert the reconfigurable hardware portion of the control-dataflow graph representations to a hardware definition language file;
a hardware definition language to bitstream converter to convert the hardware definition language file to a bitstream file;
a bitstream to object file converter to convert the bitstream file into a bitstream object file; and
a linker to integrate the bitstream object file into the unified executable. - View Dependent Claims (5, 6)
-
-
7. A computer program product comprising:
-
a computer usable medium having computer readable program code embodied therein for causing a formation of a unified executable, the computer readable program code comprising;
computer readable program code for causing the computer to partition a control-data flow graph into an instruction processor portion and a reconfigurable hardware portion;
computer readable program code for causing the computer to convert the reconfigurable hardware portion of the control-data flow graph into a hardware definition language portion and the instruction processor portion into an instruction processor object file;
computer readable program code for causing the computer to convert the hardware definition language portion into a reconfigurable hardware bitstream;
computer readable program code for causing the computer to convert the reconfigurable hardware bitstream into a bitstream object file that is readable by an instruction processor; and
computer readable program code for causing the computer to integrate the bitstream object file with the instruction processor object file to form the unified executable. - View Dependent Claims (8, 9)
-
Specification