Reconfigurable hardware structures for functional pipelining of on-chip special purpose functions
First Claim
1. A device comprising:
- a first streaming functional unit, wherein the first streaming functional unit is specialized circuitry configured to perform a first particular function;
a first multiplexer operatively coupled between the first streaming functional unit and a first plurality of potential input sources;
wherein the first multiplexer is dynamically configurable to pass streaming input from a selected one of the first plurality of potential input sources to the first streaming functional unit;
a second streaming functional unit, wherein the second streaming functional unit is specialized circuitry configured to perform a second particular function;
a second multiplexer operatively coupled between the second streaming functional unit and a second plurality of potential input sources;
wherein the second multiplexer is dynamically configurable to pass streaming input from a selected one of the second plurality of potential input sources to the second streaming functional unit;
wherein output of the first streaming functional unit is one potential input source, of the second plurality of potential input sources;
a scheduler configured to;
receive data indicating an execution plan to be processed;
determine how to configure the first multiplexer and second multiplexer to make use of the first streaming functional unit and the second streaming functional unit in processing the execution plan; and
send signals to dynamically configure the first multiplexer and second multiplexer to make use of the first streaming functional unit and the second streaming functional unit in processing the execution plan.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for reconfiguring hardware structures to pipeline the execution of multiple special purpose hardware implemented functions, without saving intermediate results to memory, is provided. Pipelining functions in a program is typically performed by a first function saving its results (the “intermediate results”) to memory, and a second function subsequently accessing the memory to use the intermediate results as input. Saving and accessing intermediate results stored in memory incurs a heavy performance penalty, requires more power, consumes more memory bandwidth, and increases the memory footprint. Due to the ability to redirect the input and output of the hardware structures, intermediate results are passed directly from one special purpose hardware implemented function to another without storing the intermediate results in memory. Consequently, a program that utilizes the method or apparatus, reduces power consumption, consumes less memory bandwidth, and reduces the program'"'"'s memory footprint.
63 Citations
20 Claims
-
1. A device comprising:
-
a first streaming functional unit, wherein the first streaming functional unit is specialized circuitry configured to perform a first particular function; a first multiplexer operatively coupled between the first streaming functional unit and a first plurality of potential input sources; wherein the first multiplexer is dynamically configurable to pass streaming input from a selected one of the first plurality of potential input sources to the first streaming functional unit; a second streaming functional unit, wherein the second streaming functional unit is specialized circuitry configured to perform a second particular function; a second multiplexer operatively coupled between the second streaming functional unit and a second plurality of potential input sources; wherein the second multiplexer is dynamically configurable to pass streaming input from a selected one of the second plurality of potential input sources to the second streaming functional unit; wherein output of the first streaming functional unit is one potential input source, of the second plurality of potential input sources; a scheduler configured to; receive data indicating an execution plan to be processed; determine how to configure the first multiplexer and second multiplexer to make use of the first streaming functional unit and the second streaming functional unit in processing the execution plan; and send signals to dynamically configure the first multiplexer and second multiplexer to make use of the first streaming functional unit and the second streaming functional unit in processing the execution plan. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
-
a planner configured to; receive a query; generate an execution plan; and a specialized coprocessor, wherein the specialized coprocessor comprises; a first streaming functional unit, wherein the first streaming functional unit is specialized circuitry configured to perform a first particular function; a first multiplexer operatively coupled between the first streaming functional unit and a first plurality of potential input sources; wherein the first multiplexer is dynamically configurable to pass streaming input from selected one of the first plurality of potential input sources to the first streaming functional unit; a second streaming functional unit, wherein the second streaming functional unit is specialized circuitry configured to perform a second particular function; a second multiplexer operatively coupled between the second streaming functional unit and a second plurality of potential input sources; wherein the second multiplexer is dynamically configurable to pass streaming input from selected one of the second plurality of potential input sources to the second streaming functional unit; wherein output of the first streaming functional unit is one potential input source, of the second plurality of potential input sources; a scheduler configured to; receive data indicating the execution plan to be processed; determine how to configure the first multiplexer and the second multiplexer to make use of the first streaming functional unit and the second streaming functional unit in processing the execution plan; and send signals to dynamically configure the first multiplexer and the second multiplexer to make use of the first streaming functional unit and the second streaming functional unit in processing the execution plan. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A method comprising performing a machine-executed operation involving a plurality of software instructions, wherein the plurality of software instructions which, when executed by one or more computing devices, cause performance of certain steps comprising:
-
transmitting a particular execution plan to a specialized coprocessor for processing; wherein the specialized coprocessor is configured to; receive an execution plan; determine how to configure a first multiplexer and a second multiplexer to make use of a first streaming functional unit and a second streaming functional unit in processing the execution plan; send signals to dynamically configure the first multiplexer and the second multiplexer to make use of the first streaming functional unit and the second streaming functional unit in processing the execution plan; processing the particular execution plan. - View Dependent Claims (17, 18, 19, 20)
-
Specification