Network interface device
AssigneeXilinx, Inc.
InventorsSteven Leslie Pope, Neil Turton, David James Riddoch, Dmitri Kitariev, Ripduman Sohan, Derek Edward Roberts
Life of this patent
Estimating the term…
Abstract
A method comprises receiving at a compiler a bit file description and a program, said bit file description comprising a description of routing of a part of a circuit. The method comprises compiling the program using said bit file description to output a bit file for said program.
Claims18
A method performed in a device comprising a programmable logic device, the method comprising:
- receiving, at a compiler, a bit file description and a program, the bit file description comprising a description of a plurality of available routes between a plurality of processing units of a part of the programmable logic device, wherein:
- the bit file description comprises, for at least one of the plurality of processing units, one or more of the plurality of processing units to which the at least one processing unit can output data or one or more of the plurality of processing units from which the at least one processing unit can receive data;
- each of at least some of the plurality of available routes comprises a route between at least two of the plurality of processing units;
- and
- the compiler can select from the plurality of available routes to interconnect two or more of the plurality of processing units, wherein each of the plurality of processing units is configured to perform a respective operation;
- and
- compiling, at the compiler, the program at least in part by selecting one or more of the plurality of available routes of the bit file description to output an output bit file for the program, the output bit file describing interconnection of a first set of at least some processing units of the plurality of processing units of the part of the programmable logic device using the one or more routes selected by the compiler, wherein:
- the output bit file comprises information indicating, for a respective one of the first set of the at least some processing units, one or more processing units from which an input is to be provided to the respective processing unit or one or more processing units to which an output is to be provided from the respective processing unit;
- and
- the interconnection of the first set of the at least some processing units provides a first data processing pipeline for processing one or more data packets with the programmable logic device when the output bit file is used to configure the programmable logic device.
An apparatus comprising:
- a programmable logic device;
- at least one processor;
- and
- at least one memory including computer code for one or more programs that, when executed by the at least one processor, causes the at least one processor to:
- receive a bit file description and a program, the bit file description comprising a description of a plurality of available routes between a plurality of processing units of a part of the programmable logic device, wherein:
- the bit file description comprises, for at least one of the plurality of processing units, one or more processing units to which the at least one processing unit can output data or one or more processing units from which the at least one processing unit can receive data;
- each of at least some of the plurality of available routes comprises a route between at least two of the plurality of processing units;
- and
- the compiler can select from the plurality of available routes to interconnect two or more of the at least some processing units, wherein each of the plurality of processing units is configured to perform a respective operation;
- and
- compile the program at least in part by selecting one or more of the plurality of available routes of the bit file description to output an output bit file for the program, the output bit file describing an interconnection of a first set of at least some processing units of the plurality of processing units of the part of the programmable logic device using the one or more routes selected by the compiler, wherein:
- the output bit file comprises information indicating, for a respective one of the first set of the at least some processing units, one or more processing units from which an input is to be provided to the respective processing unit or one or more processing units to which an output is to be provided from the respective processing unit;
- and
- the interconnection of the first set of the at least some processing units provides a first data processing pipeline for processing one or more data packets with the programmable logic device when the output bit file is used to configure the programmable logic device.
A network interface device comprising:
- a first interface, the first interface being configured to receive a plurality of data packets;
- a programmable logic device comprising a plurality of processing units, each processing unit being associated with a predefined type of operation executable in a single step;
- and
- a compiler, wherein the compiler is configured to:
- receive a bit file description and a program, the bit file description comprising a description of a plurality of available routes between the plurality of processing units of the programmable logic device, wherein:
- the bit file description comprises, for at least one of the plurality of processing units, one or more processing units to which the at least one processing unit can output data or one or more processing units from which the at least one processing unit can receive data;
- each of at least some of the plurality of available routes comprises a route between at least two of the plurality of processing units;
- and
- compile the program using the bit file description to output a bit file for the program, wherein:
- the compiling comprises selecting one or more routes from the plurality of available routes of the bit file description to output an output bit file for the program, the output bit file describing interconnection of a first set of at least some processing units of the plurality of processing units of the programmable logic device using the one or more routes selected by the compiler;
- the output bit file comprises information indicating, for a respective one of the first set of the at least some processing units, one or more processing units from which an input is to be provided to the respective processing unit or one or more processing units to which an output is to be provided from the respective processing unit;
- and
- the interconnection of the first set of the at least some processing units provides a first data processing pipeline for processing one or more data packets with the programmable logic device when the output bit file is used to configure the programmable logic device.
A method comprising:
- determining routing information for at least a part of a programmable logic device comprising a plurality of processing units, wherein:
- each processing unit is associated with a predefined type of operation executable in a single step;
- each of at least some of the plurality of processing units is associated with a different respective predefined type of operation;
- the routing information provides information as to a plurality of available routes between the plurality of processing units of the part of the programmable logic device, wherein:
- the routing information comprises, for at least one of the plurality of processing units, one or more processing units to which the at least one processing unit can output data or one or more processing units from which the at least one processing unit can receive data;
- and
- each of at least some of the plurality of available routes comprises a route between at least two of the plurality of processing units;
- and
- the routing information can be used by a compiler to select one or more of the plurality of available routes of the routing information to output an output bit file for a program, the output bit file describing interconnection of a first set of at least some processing units of the plurality of processing units of the part of the programmable logic device using the one or more routes selected by the compiler, wherein:
- the output bit file comprises information indicating, for a respective one of the first set of the at least some processing units, one or more processing units from which an input is to be provided to the respective processing unit or one or more processing units to which an output is to be provided from the respective processing unit;
- and
- the interconnection of the first set of the at least some processing units provides a first data processing pipeline for processing one or more data packets with the programmable logic device when the output bit file is used to configure the programmable logic device that can be used to interconnect at least some of the plurality of processing units.
A non-transitory computer readable medium comprising program instructions for:
- determining routing information for at least a part of a programmable logic device comprising a plurality of processing units, wherein:
- each processing unit is associated with a predefined type of operation executable in a single step;
- each of the plurality of processing units is associated with a different respective predefined type of operation;
- and
- the routing information provides information as to available routes between the plurality of processing units of the part of the programmable logic device, wherein:
- the routing information comprises, for at least one of the plurality of processing units, one or more processing units to which the at least one processing unit can output data or one or more processing units from which the at least one processing unit can receive data;
- and
- each of at least some of the plurality of available routes comprises a route between at least two of the plurality of processing units;
- and
- the routing information can be used by a compiler to select one or more of the plurality of available routes of the routing information to output an output bit file for a program, the output bit file describing interconnection of a first set of at least some processing units of the plurality of processing units of the part of the programmable logic device using the one or more routes selected by the compiler, wherein:
- the output bit file comprises information indicating, for a respective one of the first set of the at least some processing units, one or more processing units from which an input is to be provided to the respective processing unit or one or more processing units to which an output is to be provided from the respective processing unit;
- and
- the interconnection of the first set of the at least some processing units provides a first data processing pipeline for processing one or more data packets with the programmable logic device when the output bit file is used to configure the programmable logic device.
Dependencies are inferred from the claim text.