Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
First Claim
1. An integrated circuit comprising:
- a plurality of computational elements, a first computational element of the plurality of computational elements having a first fixed architecture and a second computational element of the plurality of computational elements having a second fixed architecture, the first fixed architecture being different than the second fixed architecture;
a plurality of switching elements coupled to the plurality of computational elements, the plurality of switching elements capable of configuring the plurality of computational elements for performance of a first function of a plurality of functions in response to first configuration information, and the plurality of switching elements further capable of reconfiguring the plurality of computational elements for performance of a second function of the plurality of functions in response to second configuration information, the first function being different than the second function.
5 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.
180 Citations
83 Claims
-
1. An integrated circuit comprising:
-
a plurality of computational elements, a first computational element of the plurality of computational elements having a first fixed architecture and a second computational element of the plurality of computational elements having a second fixed architecture, the first fixed architecture being different than the second fixed architecture;
a plurality of switching elements coupled to the plurality of computational elements, the plurality of switching elements capable of configuring the plurality of computational elements for performance of a first function of a plurality of functions in response to first configuration information, and the plurality of switching elements further capable of reconfiguring the plurality of computational elements for performance of a second function of the plurality of functions in response to second configuration information, the first function being different than the second function. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. An adaptive system comprising:
-
a plurality of adaptive nodes, a first node of the plurality of nodes having a first adaptive execution unit and a second node of the plurality of nodes having a second adaptive execution unit, a first architecture of the first adaptive execution unit being different than a second architecture of the second adaptive execution unit, wherein the first adaptive execution unit is capable of being adapted for a first plurality of algorithms and the second adaptive execution unit is capable of being adapted for a second plurality of algorithms; and
an interconnection network coupled to the plurality of nodes, the interconnection network having a plurality of routing elements to selectively route a data packet to a selected node of the plurality of nodes. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. An integrated circuit comprising:
-
an input pipeline register to receive an input data packet;
a memory capable of storing the input data packet;
a hardware task manager capable of processing a plurality of tasks and determining that a first task from the plurality of tasks is capable of being performed and that a second task from the plurality of tasks is capable of being performed, the first task being different than the second task;
a data distributor coupled to the input pipeline register, to the memory, and to the hardware task manager, the data distributor capable of distributing the input data packet to the hardware task manager and further capable of distributing the input data packet to the memory;
an adaptive execution unit coupled to the hardware task manager and to the memory, the adaptive execution unit capable of configuring to perform the first task and capable of performing the first task using the input data packet, the adaptive execution unit further capable of reconfiguring to perform the second task and capable of performing the second task, the adaptive execution unit further capable of generating an output data packet from the performance of the first task and the second task;
a data selector coupled to the hardware task manager, to the adaptive execution unit and to the memory, the data selector capable of determining routing for the output data packet; and
an output pipeline register coupled to the data selector to receive the output data packet. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49)
-
-
50. An adaptive computing integrated circuit, comprising:
-
a plurality of heterogeneous computational elements, a first computational element of the plurality of heterogeneous computational elements having a first fixed architecture and a second computational element of the plurality of heterogeneous computational elements having a second fixed architecture, the first fixed architecture being different than the second fixed architecture; and
an interconnection network coupled to the plurality of heterogeneous computational elements, the interconnection network capable of configuring the plurality of heterogeneous computational elements for performance of a first algorithmic element of a plurality of algorithmic elements in response to first configuration information, and the interconnection network further capable of reconfiguring the plurality of heterogeneous computational elements for performance of a second algorithmic element of the plurality of algorithmic elements in response to second configuration information, the first algorithmic element being different than the second algorithmic element. - View Dependent Claims (51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
-
-
61. An adaptive computing integrated circuit, comprising:
-
a plurality of heterogeneous computational elements, a first computational element of the plurality of heterogeneous computational elements having a first fixed architecture and a second computational element of the plurality of heterogeneous computational elements having a second fixed architecture, the first fixed architecture being different than the second fixed architecture;
an interconnection network coupled to the plurality of heterogeneous computational elements, the interconnection network capable of configuring the plurality of heterogeneous computational elements for a first functional mode of a plurality of functional modes in response to first configuration information, and the interconnection network further capable of reconfiguring the plurality of heterogeneous computational elements for a second functional mode of the plurality of functional modes in response to second configuration information, the first functional mode being different than the second functional mode; and
a fixed function node coupled to the interconnection network, the fixed function node having a third fixed architecture, the fixed function node capable of performing a predetermined application. - View Dependent Claims (62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73)
-
-
74. A method for adaptive computing, the comprising:
-
in response to first configuration information, configuring through an interconnection network a plurality of heterogeneous computational elements for performance of a first algorithmic element of a plurality of algorithmic elements, a first computational element of the plurality of heterogeneous computational elements having a first fixed architecture and a second computational element of the plurality of heterogeneous computational elements having a second fixed architecture, the first fixed architecture being different than the second fixed architecture; and
in response to second configuration information, reconfiguring through the interconnection network the plurality of heterogeneous computational elements for performance of a second algorithmic element of the plurality of algorithmic elements, the first algorithmic element being different than the second algorithmic element. - View Dependent Claims (75, 76, 77, 78, 79, 80, 81)
-
-
82. An integrated circuit comprising:
-
an input pipeline register to receive an input data packet;
a memory capable of storing the input data packet;
a hardware task manager capable of processing a plurality of tasks and determining that a first task from the plurality of tasks is capable of being performed and that a second task from the plurality of tasks is capable of being performed, the first task being different than the second task;
a data distributor coupled to the input pipeline register, to the memory, and to the hardware task manager, the data distributor capable of distributing the input data packet to the hardware task manager and further capable of distributing the input data packet to the memory;
an adaptive execution unit coupled to the hardware task manager and to the memory, the adaptive execution unit comprising a plurality of computational elements and a plurality of switching elements coupled to the plurality of computational elements, wherein a first computational element of the plurality of computational elements has a first fixed architecture and a second computational element of the plurality of computational elements has a second fixed architecture, the first fixed architecture being different from the second fixed architecture;
wherein the plurality of switching elements are capable of configuring the plurality of computational elements for performance of the first task in response to first configuration information, and the plurality of switching elements further capable of reconfiguring the plurality of computational elements for performance of the second task in response to second configuration information; and
wherein the plurality of computational elements are further capable of using the input data packet and generating an output data packet from the performance of the first task and the second task;
a data selector coupled to the hardware task manager, to the adaptive execution unit and to the memory, the data selector capable of determining routing for the output data packet; and
an output pipeline register coupled to the data selector to receive the output data packet.
-
-
83. An adaptive computing integrated circuit, comprising:
-
a plurality of heterogeneous computational elements, a first computational element of the plurality of heterogeneous computational elements having a first fixed architecture of a plurality of fixed architectures and a second computational element of the plurality of heterogeneous computational elements having a second fixed architecture of the plurality of fixed architectures, the first fixed architecture being different than the second fixed architecture, the plurality of fixed architectures comprising at least two of the following corresponding functions;
memory, addition, multiplication, complex multiplication, subtraction, synchronization, queuing, over sampling, under sampling, adaptation, configuration, reconfiguration, control, input, output, and field programmability;
an interconnection network coupled to the plurality of heterogeneous computational elements, the interconnection network capable of configuring the plurality of heterogeneous computational elements for performance of a first algorithmic element of a plurality of algorithmic elements in response to first configuration information, and the interconnection network further capable of reconfiguring the plurality of heterogeneous computational elements for performance of a second algorithmic element of the plurality of algorithmic elements in response to second configuration information, the first algorithmic element being different than the second algorithmic element; and
wherein the plurality of algorithmic elements comprises at least two of the following algorithmic elements;
a radix-2 Fast Fourier Transformation (FFT), a radix-4 Fast Fourier Transformation (FFT), a one-dimensional Discrete Cosine Transformation (DCT), a multi-dimensional Discrete Cosine Transformation (DCT), finite impulse response (FIR) filtering, convolutional encoding, scrambling, puncturing, interleaving, modulation mapping, Golay correlation, OVSF code generation, Haddamard Transformation, Turbo Decoding, bit correlation, Griffiths LMS algorithm, variable length encoding, uplink scrambling code generation, downlink scrambling code generation, downlink despreading, uplink spreading, uplink concatenation, Viterbi encoding, Viterbi decoding, cyclic redundancy coding (CRC), complex multiplication, data compression, motion compensation, channel searching, channel acquisition, multipath correlation.
-
Specification