Firmware socket module for FPGA-based pipeline processing
First Claim
1. A method of interfacing at least one firmware application module that is deployed on a reconfigurable logic device with a computer system, the computer system comprising a processor and a memory space that are in communication with each other, wherein the at least one firmware application module is configured to perform a data processing operation on any target data that it receives, the method comprising:
- within a firmware module that is deployed on the reconfigurable logic device and that interfaces the at least one firmware application module to the computer system memory space, (1) reading from a buffer within the memory space to identify a plurality of commands and target data that are to be provided to the at least one firmware application module, wherein the buffer defines an order in which the commands and target data are to be provided to the at least one firmware application module, each command controlling the data processing operation that the at least one firmware application module is to perform on any target data that it receives, and (2) transferring commands and target data from the computer system memory to the at least one firmware application module in accordance with the defined order.
4 Assignments
0 Petitions
Accused Products
Abstract
A firmware socket module is deployed on a reconfigurable logic device, wherein the firmware socket module has a communication path between itself and an entry point into a data processing pipeline, wherein the firmware socket module is configured to provide both commands and target data to the entry point in the data processing pipeline via the same communication path, wherein each command defines a data processing operation that is to be performed by the data processing pipeline, and wherein the target data corresponds to the data upon which the data processing pipeline performs its commanded data processing operation. Preferably, the firmware socket module is configured to provide the commands and target data in a predetermined order that is maintained throughout the data processing pipeline. Also, the firmware socket module may be configured to (1) access an external input descriptor pool buffer that defines the order in which commands and target data are to be provided to the data processing pipeline, and (2) transfer the commands and target data from an external memory to the data processing pipeline in accordance with the identified defined order. Results of the processing by the data processing pipeline are also returned to external memory by the firmware socket module, whereupon those results can be subsequently used by software executing on a computer system.
220 Citations
49 Claims
-
1. A method of interfacing at least one firmware application module that is deployed on a reconfigurable logic device with a computer system, the computer system comprising a processor and a memory space that are in communication with each other, wherein the at least one firmware application module is configured to perform a data processing operation on any target data that it receives, the method comprising:
within a firmware module that is deployed on the reconfigurable logic device and that interfaces the at least one firmware application module to the computer system memory space, (1) reading from a buffer within the memory space to identify a plurality of commands and target data that are to be provided to the at least one firmware application module, wherein the buffer defines an order in which the commands and target data are to be provided to the at least one firmware application module, each command controlling the data processing operation that the at least one firmware application module is to perform on any target data that it receives, and (2) transferring commands and target data from the computer system memory to the at least one firmware application module in accordance with the defined order. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
16. A method for controlling the flow of data and commands to at least one firmware application module that is deployed on a re-configurable logic device, the commands comprising instructions for controlling the processing of the data by the at least one firmware application module, the method comprising:
-
providing a common communication path to said at least one firmware application module; and
delivering both the commands and data over the common communication path to said at least one firmware application module. - View Dependent Claims (17, 18)
-
-
19. A data processing device comprising:
a firmware socket module in communication with a data processing pipeline, said data processing pipeline being deployed on at least one reconfigurable logic device, and wherein the firmware socket module is configured to control the propagation of both commands and target data to the data processing pipeline via a communication path common to both the commands and the target data, wherein each command controls a data processing operation that is to be performed by the data processing pipeline, and wherein the target data corresponds to the data upon which the data processing pipeline performs its commanded data processing operation. - View Dependent Claims (20, 21, 22, 23, 24)
-
25. A data processing system comprising:
-
a processor;
a memory space that is managed by the processor;
a reconfigurable logic device, the reconfigurable logic device comprising at least one firmware application module that is deployed thereon and a firmware socket module that interfaces the at least one firmware application module with the processor and the memory, the firmware socket module and the at least one firmware application module being in communication with each other via a communication path; and
a bus through which the reconfigurable logic device communicates with the processor and the memory space; and
wherein the firmware application module is configured to perform a data processing operation on a data stream that it receives;
wherein the firmware socket module is configured to receive both a plurality of commands and target data from the memory space;
wherein the firmware socket module is configured provide both the commands and the target data to the at least one firmware application module via the same communication path between itself and the at least one firmware application module, wherein each command controls the data processing operation that is performed by the at least one firmware application module, and wherein the target data comprises the data upon which the at least one firmware application module'"'"'s data processing operation is performed. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A data processing card for connection with a bus of a computer system, the data processing card comprising:
-
a reconfigurable logic device, the reconfigurable logic device having deployed thereon a firmware application module pipeline and a firmware module;
wherein the firmware module is configured to interface the firmware application module pipeline with at least one external source of target data and commands, wherein the commands control how the firmware application module pipeline processes target data;
wherein the firmware application module pipeline comprises a plurality of firmware application modules arranged in a sequence, each firmware application module being configured to perform a data processing operation on target data, the firmware application module pipeline having an entry communication path from the firmware module to a first one of the firmware application modules in the sequence;
wherein the firmware module is further configured to control how the firmware application module pipeline processes target data by providing, through the entry communication path, the first one of the firmware application modules in the sequence with a stream of interleaved commands and target data, wherein the commands and target data have a defined order within the stream;
wherein the firmware module is configured to read entries that are stored in an external buffer to determine the commands and the target data that are to be provided to the firmware application module pipeline, wherein the order of entries in the external buffer defines the order of commands and target data within the stream; and
wherein the firmware application module pipeline is configured to sequentially process the commands and target data of the stream through the sequence of firmware application modules in the same order in which those commands and target data were ordered within the stream. - View Dependent Claims (36, 37, 38, 39, 40, 41)
-
-
42. A system controlling the processing of data through a reconfigurable logic device via software, the system comprising:
-
device driver software for execution by a processor, the device driver software being configured to manage a memory space in which data is stored at a plurality of memory addresses; and
a reconfigurable logic device for communicating with the device driver software and the memory space over a bus;
wherein at least one firmware application module and a firmware socket module are deployed on the reconfigurable logic device;
wherein the at least one firmware application module is configured to perform a data processing operation on any target data that it receives;
wherein the device driver software is configured to store a plurality of commands in the memory space, each command for controlling a data processing operation that is to be performed by the at least one firmware application module;
wherein the device driver software is further configured to maintain an input descriptor pool buffer in the memory space that defines an order in which commands and data are to be processed through the at least one firmware application module; and
wherein the firmware socket module is configured to (1) access the input descriptor pool buffer to identify the ordered commands and data that are to be processed through the at least one firmware application module, and (2) access the memory space to transfer the commands and data to the at least one firmware application module in accordance with the defined order. - View Dependent Claims (43, 44, 45, 46, 47)
-
-
48. A device for interfacing a pipeline of firmware application modules that are deployed on at least one reconfigurable logic device with a memory space that is external to the reconfigurable logic device, the device comprising:
a firmware module that is deployed the at least one reconfigurable logic device, wherein the firmware module is configured to (1) serially access the external memory space to retrieve a plurality of commands and a plurality of groups of target data in an order and (2) deliver both the retrieved commands and target data groups to an entry point in the pipeline as a single interleaved stream in the same order over a common communication path that connects the firmware module with the entry point into the pipeline, wherein each firmware application module in the pipeline is configured to perform a data processing operation on any target data that it receives, and wherein each command is configured to control the data processing operation of at least one firmware application module in the pipeline. - View Dependent Claims (49)
Specification