Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
First Claim
1. An adaptable computing engine comprising:
- a plurality of configurable computing nodes on an integrated circuit, each configurable computing node having a plurality of computational elements coupled to an interconnection network to exchange data to and from the nodes, the node being configurable to perform a task by changing the interconnections between the plurality of computational elements via the interconnection network;
a plurality of hardware node wrappers, each of the plurality of hardware node wrappers corresponding to one of the plurality of computing nodes, each of the node wrappers providing an interface between the computing node and the node interconnection network, each node wrapper comprising a hardware task manager having hardware to schedule a task to be performed by the computing node, configure the computing node to perform the task and control the flow of data to and from the computing node by assigning ports on the node to perform the task; and
wherein the node interconnection network to allow the exchange of configuration information to and from the computing nodes, the node wrapper to read the configuration information to configure the corresponding computing node to perform a first function and the node wrapper to read the configuration information to reconfigure the corresponding computing node to perform a second function.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides an adaptive integrated circuit. The various embodiments include a plurality of heterogeneous computational elements coupled to an interconnection network. The plurality of heterogeneous computational elements include corresponding computational elements having fixed and differing architectures, such as fixed architectures for different functions such as memory, addition, multiplication, complex multiplication, subtraction, configuration, reconfiguration, control, input, output, and field programmability. In response to configuration information, the interconnection network is operative in real time to configure and reconfigure the plurality of heterogeneous computational elements for a plurality of different functional modes, including linear algorithmic operations, non-linear algorithmic operations, finite state machine operations, memory operations, and bit-level manipulations.
18 Citations
20 Claims
-
1. An adaptable computing engine comprising:
-
a plurality of configurable computing nodes on an integrated circuit, each configurable computing node having a plurality of computational elements coupled to an interconnection network to exchange data to and from the nodes, the node being configurable to perform a task by changing the interconnections between the plurality of computational elements via the interconnection network; a plurality of hardware node wrappers, each of the plurality of hardware node wrappers corresponding to one of the plurality of computing nodes, each of the node wrappers providing an interface between the computing node and the node interconnection network, each node wrapper comprising a hardware task manager having hardware to schedule a task to be performed by the computing node, configure the computing node to perform the task and control the flow of data to and from the computing node by assigning ports on the node to perform the task; and wherein the node interconnection network to allow the exchange of configuration information to and from the computing nodes, the node wrapper to read the configuration information to configure the corresponding computing node to perform a first function and the node wrapper to read the configuration information to reconfigure the corresponding computing node to perform a second function. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computing engine comprising:
-
a configurable computing node having a plurality of computational elements coupled to an interconnection network, the node being configurable to perform a task by changing the interconnections between the plurality of computational elements via the interconnection network; a node interconnection network coupling the computing node to other components of the computing engine, the node interconnection network to allow configuration information to be received by and transmitted from the computing node; a hardware node wrapper coupled to the computing node, the node wrapper providing an interface between the computing node and the node interconnection network, the node wrapper comprising a hardware task manager having hardware to schedule a task to be performed by the computing node, hardware to control the flow of configuration information to the computing node to configure the computing node to perform the task via changing connections of the interconnection network between computational elements of the computing node, and hardware to control the input and output of data from the computing node to perform the task by assigning ports of the computing node. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A method of performing a task with a computing node having a plurality of computational elements and an interconnection network, the computing node configurable by changing the interconnections between the plurality of computational elements via the interconnection network to perform a function, the method comprising:
-
sending configuration information via a computing node interconnection network to a hardware node wrapper coupled to the computing node; receiving the configuration information and configuring the computing node via the node wrapper by changing the interconnections between the plurality of computation elements via the interconnection network; scheduling a task for the computing node to perform via hardware of a hardware task manager in the node wrapper; assigning input and output ports in the node for data necessary to perform the task via the hardware task manager in the node wrapper; and performing the task via the configured computing node.
-
Specification