FPGA coprocessing system
First Claim
15. A method for executing a compiled software application, comprising (a) providing a processor coupled to a memory, the memory including a compiled software application, the compiled software application including a first plurality of functions and a second plurality of function calls, at least one of the second plurality of function calls corresponding to a compiled user function;
- (b) executing the first plurality of functions and second plurality of function calls on the processor; and
(c) in response to the at least one of the plurality of function calls, executing the compiled user function on a field programmable gate array (FPGA) coupled to the processor.
0 Assignments
0 Petitions
Accused Products
Abstract
A system is provided which includes a host computing environment and a field programmable gate array (“FPGA”). The host computing environment includes a compiled software application which, in turn, includes a first plurality of functions and a second plurality of function calls. The FPGA is coupled to the host computing environment, and includes a compiled user function which is executed in response to one of the second plurality of function calls.
217 Citations
48 Claims
-
15. A method for executing a compiled software application, comprising
(a) providing a processor coupled to a memory, the memory including a compiled software application, the compiled software application including a first plurality of functions and a second plurality of function calls, at least one of the second plurality of function calls corresponding to a compiled user function; -
(b) executing the first plurality of functions and second plurality of function calls on the processor; and
(c) in response to the at least one of the plurality of function calls, executing the compiled user function on a field programmable gate array (FPGA) coupled to the processor. - View Dependent Claims (16, 17, 18)
-
-
19. A method for executing a compiled software application, comprising
(a) in a host computing environment including a compiled software application, the compiled software application including a first plurality of functions and a second plurality of function calls, at least one of the second plurality of function calls corresponding to a compiled user function: -
passing arguments for a compiled user function to a Field Programmable Gate Arrary (FPGA) coupled to the host computing environment, requesting initiation of the compiled user function, receiving a notification from the FPGA that indicate an end of execution of the compiled user function, and retrieving return data from the compiled user function via the FPGA;
(b) on the FPGA;
receiving the arguments passed from the host computing environment, executing of the compiled user function on the FPGA, and upon the end of execution of the compiled user function, configuring the return data and transmitting the notification to the host computing environment indicating the end of execution of the compiled user function. - View Dependent Claims (20)
-
-
21. A system comprising:
-
a host computing environment, the host computing environment including a compiled software application, the compiled software application including a first plurality of functions and a second plurality of function calls;
a field programmable gate array (FPGA) coupled to the host computing environment, the FPGA including a compiled user function, the compiled user function corresponding to at least one of the plurality of function calls;
a host application program interface (API) on the host computing environment; and
a client API on the FPGA, wherein the host API passes arguments for the compiled user function to the client API, requests execution of the compiled user function, receives signals from the client API that indicate an end of execution of the compiled user function, and retrieves return data from the compiled user function via the client API, and wherein client API receives the arguments passed from the host API, forwards the received arguments to the compiled user function, begins execution of the compiled user function, and, upon the end of execution of the compiled user function, configures the return data and transmits a signal the host API indicating the end of execution of the compiled user function. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A system comprising:
-
a host computing environment, the host computing environment including a compiled software application, the compiled software application including a first plurality of functions and a second plurality of function calls; and
a field programmable gate array (FPGA) coupled to the host computing environment, the FPGA including a plurality of compiled user functions, a first one of the plurality of compiled user functions being executed in response to one of the second plurality of function calls, and a second one of the plurality of compiled user functions being executed in response to an instruction from the first one of the plurality of compiled user functions. - View Dependent Claims (32, 33, 34)
-
-
35. A method for providing an interface between a processor and an FPGA, the processor being operable to execute a compiled software application, the compiled software application including a first plurality of functions and a second plurality of function calls, at least one of the second plurality of function calls corresponding to the compiled user function, the method comprising the steps of:
-
passing arguments for a compiled user function to a Field Programmable Gate Arrary (FPGA) coupled to a processor, requesting execution of the compiled user function, receiving a notification from the FPGA that indicates an end of execution of the compiled user function, and retrieving return data from the compiled user function via the FPGA;
- View Dependent Claims (43)
-
-
36. A method for providing an FPGA interface to a processor, the processor being operable to execute a compiled software application, the compiled software application including a first plurality of functions and a second plurality of function calls, at least one of the second plurality of function calls corresponding to a compiled user function on an FPGA, the method comprising the steps of:
on the FPGA;
receiving arguments for a compiled user function from the processor, passing at least a portion of the received arguments to the compiled user function, and upon receiving an indication of an end of execution of the compiled user function, configuring the return data and transmitting a notification to the processor indicating the end of execution of the compiled user function. - View Dependent Claims (44)
-
37. A method for executing a compiled software application, comprising
(a) in a host computing environment including a compiled software application, the compiled software application including a first plurality of functions and a second plurality of function calls, at least one of the second plurality of function calls corresponding to a compiled user function: -
passing arguments for a plurality of compiled user functions to a Field Programmable Gate Arrary (FPGA) coupled to the host computing environment, requesting execution of the plurality of compiled user functions, receiving a notification from the FPGA that indicates an end of execution of one of the compiled user functions, sending a query to the FPGA requesting identification of the one of the compiled user functions;
receiving a function index corresponding to the one of the compiled user functions from the FPGA, the function index having a corresponding return function address;
sending a read call to the FPGA, the read call including the return function address;
(b) on the FPGA;
receiving the arguments passed from the host computing environment, executing of the plurality of compiled user functions on the FPGA, and upon the end of execution of the one of the compiled user functions, configuring the return data and transmitting a notification to the host computing environment indicating the end of execution of the one of the compiled user function;
receiving the query from the host computing environment;
transmitting the function index to the host computing environment;
receiving the read call, and, in response thereto, transmitting the return data to the host computing environment. - View Dependent Claims (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 38, 39, 41, 47, 48)
-
-
39-1. The method of claim 37, wherein the steps of passing arguments for a plurality of compiled user functions to a Field Programmable Gate Arrary (FPGA) and requesting execution of the plurality of compiled user functions comprises issuing an WriteData function call.
- 40. The method of claim 40, wherein the step of sending a read call includes issuing a ReadData function call.
-
45. A system comprising:
-
a processor coupled to a memory, the memory storing a compiled software application, the compiled software application including a first plurality of functions and a second plurality of function calls; and
a gate array coupled to the processor, the gate array including a compiled user function, the compiled user function executable in response to one of the second plurality of function calls. - View Dependent Claims (46)
-
Specification