EP1535394B1

Loosely-biased heterogeneous reconfigurable arrays

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.

EP1535394B1, drawing sheet 1
Sheet 1 of 28

Term

Term ended

Expired 2 June 2023, 3.3 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

43 claims: 1 independent, 42 dependent

  1. 1
    A heterogeneous reconfigurable array, comprising:a general-purpose routing network comprising multiple input terminals and multiple output terminals each carrying data values of the same word length, a plurality of clusters (1910, 1920) connected to the general-purpose routing network, each cluster comprising a plurality of processing elements (1910 (a) (g), 1 920 (a) (g)), each plurality of processing elements comprising: a first processing element (1910 (a), 1920 (b)) comprising an arithmetic logic unit ALU (100), the ALU (100) comprising: a plurality of ALU inputs comprising a first input (110), a second ALU data input (120), and a second input (130);and a plurality of ALU outputs comprising a first output and a second output: wherein the first input comprises a first ALU data input (110) and the second input comprises an ALU instruction input (130);wherein the first output comprises an ALU output (160);and the second output comprises a multiplexer select output (170);wherein the first processing element (1910 (a), 1920 (b)) comprises a first input (110), a second input (120), a first output (160) and a second output;wherein the first input (110) and first output (160) are adapted to be connected to the general-purpose routing network without passing through any processing elements (1910 (a) (g), 1920 (a) (g));wherein the second output is adapted to be connected to the second processing element (1910 (b), 1920 (a)) without connecting to the general-purpose routing network;and a second processing element (1910 (b), 1920 (a)) comprising a multiplexer (200);wherein the second processing element (1910 (b), 1920 (a)) comprises a third input, a fourth input and a third output;wherein the third input comprises a first multiplexer input (210), the fourth input comprises a multiplexer select input (240);and the third output comprises a multiplexer output (230);and wherein the multiplexer select input (240) is adapted to receive a multiplexer select signal from the multiplexer select output (230);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 (1910 (a) (g), 1920 (a) (g) (f));characterized in that the first processing element (1910 (a), 1920 (b)) is adapted to be configured for use either combined with the second processing element (1910 (b), 1920 (a)) or independent of the second processing element (1910 (b), 1920 (a));and the second processing element (1910 (b), 1920 (a)) is adapted to be configured for use either combined with the first processing element (1910 (a), 1920 (b)) or independent of the first processing element (1910 (a), 1920 (b));and that the first and second processing elements (1910 (a), 1920 (a), 1910 (b), 1920 (b)), when configured for use in combination, each may propagate a result to the general-purpose routing network simultaneously.