Loosely-biased heterogeneous reconfigurable arrays
First Claim
1. A heterogeneous reconfigurable array, comprising:
- a general-purpose routing network, a plurality of clusters connected to the general-purpose routing network, each cluster comprising a plurality of processing elements, each plurality of processing elements comprising;
a first processing element, and a second processing element;
wherein the first processing element is of a first type and the second processing element is of a second type;
wherein the first processing element comprises a first input, a second input, a first output and a second output;
wherein the first input and first output are adapted to be connected to the general-purpose routing network without passing through any processing elements;
wherein the second output is adapted to be connected to the second processing element without connecting to the general-purpose routing network;
wherein the second processing element comprises a third input, a fourth input and a third output; and
wherein the third input and third output are adapted to be connected to the general-purpose routing network without passing through any processing elements.
4 Assignments
0 Petitions
Accused Products
Abstract
A heterogeneous array includes clusters of processing elements. The clusters include a combination of ALUs and multiplexers linked by direct connections and various general-purpose routing networks. The multiplexers are controlled by the ALUs in the same cluster, or alternatively by ALUs in other clusters, via a dedicated multiplexer control network. Components of applications configured onto the array are selectively implemented in either multiplexers or ALUs, as determined by the relative efficiency of implementing the component in one or the other type of processing element, and by the relative availability of the processing element types. Multiplexer control signals are generated from combinations of ALU status signals, and optionally routed to control multiplexers in different clusters.
48 Citations
90 Claims
-
1. A heterogeneous reconfigurable array, comprising:
-
a general-purpose routing network, a plurality of clusters connected to the general-purpose routing network, each cluster comprising a plurality of processing elements, each plurality of processing elements comprising;
a first processing element, and a second processing element;
wherein the first processing element is of a first type and the second processing element is of a second type;
wherein the first processing element comprises a first input, a second input, a first output and a second output;
wherein the first input and first output are adapted to be connected to the general-purpose routing network without passing through any processing elements;
wherein the second output is adapted to be connected to the second processing element without connecting to the general-purpose routing network;
wherein the second processing element comprises a third input, a fourth input and a third output; and
wherein the third input and third output are adapted to be connected to the general-purpose routing network without passing through any processing elements. - 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, 24, 25, 26, 27, 28)
-
-
29. A heterogeneous reconfigurable array, comprising:
-
a general-purpose routing network; and
a plurality of clusters;
each cluster comprising an arithmetic logic unit (“
ALU”
) and a multiplexer;
the multiplexer comprising;
a plurality of multiplexer inputs comprising;
a multiplexer select input, and a first multiplexer input; and
a multiplexer output;
the ALU comprising;
a plurality of ALU inputs, comprising;
a first ALU data input, a second ALU data input, and an ALU instruction input; and
an ALU output wherein the multiplexer select input is adapted to receive a multiplexer select signal generated by the ALU; and
wherein the multiplexer and the ALU are connected to the general-purpose routing network;
- View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
-
-
61. A method of configuring an heterogeneous reconfigurable array, the heterogeneous reconfigurable array comprising a plurality of clusters, each cluster comprising a first processing element and a second processing element, the method comprising:
-
receiving an application, selecting a first portion of the application, selecting a second portion of the application, selecting a third portion of the application, implementing the first portion in the plurality of first processing elements, implementing the second portion in the plurality of second processing elements, and selectively implementing the third portion in either the plurality of first processing elements, the plurality of second processing elements, or a combination thereof, based upon an availability criterion. - View Dependent Claims (62, 63, 64, 65, 66, 67, 68)
-
-
69. A heterogeneous reconfigurable array comprising:
-
a plurality of arithmetic logic units (“
ALU”
), each comprising an ALU output and a plurality of ALU inputs;
a plurality of multiplexers, each comprising a multiplexer control input;
a general-purpose routing network adapted to form connections between selected ones of the plurality of ALUs and plurality of multiplexers, and a multiplexer control circuit connecting one of the plurality of ALU outputs to one of the plurality of multiplexer control inputs;
wherein the multiplexer control circuit is adapted to derive a multiplexer control signal from one or more ALU output signals. - View Dependent Claims (70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85)
-
-
86. A reconfigurable array comprising:
-
a first general purpose routing network comprising a first plurality of input terminals and a first plurality of output terminals;
a second general purpose routing network comprising a second plurality of input terminals and a second plurality of output terminals; and
a plurality of processing elements, each adapted to be connected to at least one terminal belonging to either the first plurality of input terminals, the first plurality of output terminals, the second plurality of input terminals, or the second plurality of output terminals;
- View Dependent Claims (87, 88, 89, 90)
-
Specification